公钥密码学的基本原理

基本概念问题

  • 公钥密码学与传统密码学的区别

    • 公钥算法是基于数学函数;传统密码学算法是基于代替和置换
    • 公钥密码是非对称的,它使用两个独立的密钥;传统密码学使用一个密钥
  • 任何加密方法的安全性依赖于密钥的长度和破译密钥所需要的计算量

  • 公钥密码学仅限于应用在密钥管理和数字签名中

  • 使用公钥密码也需要某种形式的协议,该协议通常包含 一个中心代理,并且其所包含的处理过程既不比传统密码的那些过程简单,也不比之更有效

  • 公钥密码术语

    • 非对称密钥
      两个密钥:公钥和私钥,用来实现互补运算,即加密和解密,或者生成签名和验证签名
    • 公钥证书
      认证机构将用户的姓名和公钥绑定在一起,用户用自己的私钥对数字文件签名后,可以通过证书识别签名者,因为签名者是唯一拥有证书与证书上对应的私钥的用户
    • 公钥密码(非对称密码)算法
      含有两个密钥:公钥和私钥。从公钥中推出私钥在计算上不可行
    • 公钥基础PKI
      设施有一系列的协议、服务平台、软件和工作站组成,用于管理证书和公钥-私钥对,并产生、维护和废除公钥证书

公钥密码体制的基本原理

  • 产生原因

    • 对称密码体制的密钥分配问题
    • 对数字签名的需求
  • 六个组成部分

    • 明文:算法的输入。原始的消息或数据。
    • 加密算法:对明文进行各种转换。
    • 公钥和私钥:算法的输入。这对密钥中一个用于加密,一个用于解密。加密算法执行的变换依赖于公钥或者私钥。
    • 密文:算法的输出,依赖于明文和密钥,对给定的消息,不同密钥产生的密文不同。
    • 解密算法:接收密文和相应的密钥,并产生原始的明文。
  • 加解密步骤

    • 每一用户产生一对密钥,用来加密和解密消息
    • 每一用户将其中一个密钥存于公开的寄存器或者其他可访问的文件中,该密钥称为公钥,令一密钥是私有的
    • 若Bob要发消息给Alice,则BOb用Alice的公钥对消息加密
    • Alice收到消息后,用其私钥对消息解密。由于只有Alice知道其自身的密钥,所以其他的接受者均不能解密出消息

    利用这种方法,通信各方均可访问公钥,而私钥是各通信方在本地产生的,所以不必进行分配。只要用户的私钥收到保护,保持秘密性,那么通信就是安全的。在任何时刻,系统可以改变其私钥,并公布相应的公钥以代替原来的公钥。

公钥加密的一般化模型

两个密钥中,使用加密的密钥不同,实现的功能也不同:

  • 接收方公钥用来加密,实现保密性
  • 发送方私钥用来加密,实现认证性

公钥密码体制有加密模型与认证模型两种基本模型:

  • 加密模型

    • 消息源A产生明文消息X,A欲将消息X发送给B
    • B产生公钥PUb和私钥PRb,其中只有B知道PRb,而PUb则是公开可访问的
    • 对作为输入的消息X和密钥PUb,A生成密文Y, Y = E(PUb, X)
    • 期望的接收方因为拥有相应的私钥,所以可进行逆变换, X = D(PRb, Y)
  • 认证模型

    • 消息源A产生明文消息X,A欲将消息X发送给B
    • A产生公钥PUa和私钥PRa,其中只有A知道PRa,而PUa则是公开可访问的
    • 对作为输入的消息X和密钥PRa,A生成密文Y, Y = E(PRa, X),且只有A能加密消息,因此加密后的消息就是数字签名
    • 用户B接受到数字签名,利用A的公钥PUa进行解密, X = D(PUa, Y),认证
  • 两次使用公钥方法,则既可提供认证功能,也能保证被发送信息的保密性
    发送方首先用其私钥对消息加密,得到数字签名,然后在用接收方的公钥加密,所得到的密文只能被拥有相应私钥的接收方解密,这样既可以保证消息的保密性,也能提供认证功能。但是这种方法的缺点在于:在每次通信中要执行4次复杂的公钥算法。

公钥加密体制的应用

  • 加密/解密:发送方用接收方的公钥对消息加密
  • 数字签名:发送方用其私钥对消息“签名”
  • 密钥交换:通信双方交换会话密钥

对称密码和公钥密码的重要特征

公钥密码体制的优缺点

  • 优点:

    • 解决了对称密码体制密钥分发问题
      发送方和接收方没有必要共享密钥,一个人只需要有一个秘密密钥就能能与一群人进行安全的交流。
    • 实现数字签名/密钥交换
  • 缺点:

    • 计算的时间长,时间复杂度高,降低了加解密效率

    因此,公钥加密系统不用于加密大量数据,而是用于密钥管理和签名应用程序

公钥密码学的基本原理相关推荐

  1. 公钥密码学与伪随机数

    公钥算法是基于数学函数而不是基于替换和置换 公钥密码是非对称的 公钥密码仅用于密钥管理和签名 关于公钥密码的误解: 从密码分析的角度看,公钥密码比传统密码更安全 公钥密码是一种通用的方法,所以传统密码 ...

  2. 公钥密码学中的三大难解数学问题

    现代公钥密码学基于的三大数学问题 大整数因数分解问题 给定两个大素数p,q,计算乘积 p∗q=np*q=np∗q=n很容易: 给定大整数n,求n的素因素p,q使得 n=p∗qn=p*qn=p∗q非常困 ...

  3. 【历史上的今天】6 月 5 日:洛夫莱斯和巴贝奇相遇;公钥密码学先驱诞生;函数语言设计先驱出生

    整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2022 年 6 月 5 日,世界环境日.1972 年 6 月 5 日至 16 日,联合国人类环境会议在斯德哥尔摩 ...

  4. 【历史上的今天】2 月 2 日:公钥密码学发明者诞生;苹果的衰落期;测谎仪首次被使用

    整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2022 年 2 月 2 日,在 1913 年的今天,世界最大的火车站--纽约中央车站(Grand Central ...

  5. 公钥密码学中的公钥和私钥

    公钥密码学解释:它是什么? 公钥基础设施 (PKI) 用于管理互联网通信中的身份和安全性. 启用 PKI 的核心技术是公钥密码术,这是一种依赖于使用两个相关密钥(公钥和私钥)的加密机制. 这两个密钥一 ...

  6. 公钥密码学中的简单数学基础

    公钥密码学中的简单数学基础 本文基于<深入浅出密码学>第六章以及Paillier中使用到的相关数学知识进行总结,并计划不断更新 逆元 介绍 注意:不是所有的元素都存在乘法逆元 假设a∈Zm ...

  7. 公钥密码学中的素数以及对称加密

    密码学,一向被人们认为门槛很高,特别高端...这也是实际,但是这决不意味着普通人无法了解它的精髓,对于喜欢画圆的人来讲,即便是理解了密码技术背后的哪怕一点理论,也是激动人心的. 声明和悲叹 最近,一次 ...

  8. 【笔记】公钥密码学之RSA

    数论基础 素数 1.定义: 一个大于1的自然数,除了1和它本身外,不能被其他自然数整除(除0以外)的数称之为素数(质数):否则称为合数. 如:3×4 = 12,不是素数.11除了等于11×1以外,不能 ...

  9. 【笔记】公钥密码学之基于离散对数的密码体制

    目录 一.前言 二.代数基本知识 2.1群 2.1.1定义 2.1.2循环群 2.1.3加法循环群 2.2环 2.2.1定义 2.2.2交换环 2.2.3整环 2.3域 2.4有限域 2.5多项式环 ...

最新文章

  1. paip.元数据驱动的转换-读取文件行到个list理念 uapi java php python总结
  2. php memcache 基础操作
  3. 高通平台msm8909 LK 实现LCD 兼容
  4. 网页禁止右键代码各类代码大全
  5. [最新答案V0.4版]微软等数据结构+算法面试100题[第41-60题答案]
  6. matlab产生mif 文件,生成.mif文件的matlab程序
  7. python 彩票 遗漏值_荐Python遗漏知识点一
  8. [vue-element] 你有二次封装过ElementUI组件吗?
  9. LeetCode 1953. 你可以工作的最大周数
  10. 如果番茄花园在美国...
  11. HTML5 中Web存储问题
  12. ECHAR学习-Part1 文字特效
  13. 数据库mongodb效率测试
  14. Python小白入门--(域名whois查询为例)
  15. (干货,建议收藏)备战2021年软考中级网络工程师-02操作系统
  16. 论文阅读《Characterizing BDS signal-in-space performance from integrity perspective》1
  17. 扒一扒那些叫欧拉的定理们(七)——欧拉线定理的证明
  18. react项目—单击按钮返回上一页
  19. uboot 添加网络驱动
  20. vue-router有哪几种导航钩子

热门文章

  1. window 下兼容多各低版本的chrome测试
  2. IMX6Q yocto工程
  3. 用c++做俄罗斯方块
  4. webScoket学习之开发炎龙骑士团
  5. C语言小项目——计时器(倒计时+报警提示)
  6. 京东2019校招算法岗笔试题
  7. 1179: 7101 最简单的计算机
  8. 如何解决visual studio提示使用_CRT_SECURE_NO_WARNINGS的问题
  9. Swift语言Storyboard教程:第一部分
  10. GeeksforGeeks 智力题