程序员

非对称加密和混合密码系统

2017-05-20  本文已影响285人  linjinhe

简介

非对称加密算法的特点是,密钥分为加密密钥和解密密钥,并且这两个密钥是不一样的(非对称)。发送者用加密密钥对消息进行加密,接受者用解密密钥对密文进行解密。

一般情况下:

一次使用非对称加密通信的流程

假设A是发送者,B是接收者。

  1. B生成一个密钥对(公钥+私钥)。私钥由B自行妥善保管
  2. B将自己的公钥发送给A。公钥是公开的,无需保密
  3. A用B的公钥对消息进行加密。加密后的消息只有B的私钥能解密。
  4. A将密文发送给B。
  5. B用自己的私钥对密文进行解密。

RSA

  1. 求N
    • 准备两个很大(比如512比特)的质数p和q
    • N = p * q
  2. 求L(L是个中间数值)
    • L是p-1和q-1的最小公倍数
  3. 求E
    • 1 < E < L
    • E与L的最大公约数为1
  4. 求D
    • 1 < D < L
    • E * D mod L = 1

非对称加密存在的问题

下面介绍混合加密系统,用于解决计算速度慢的问题。

混合密码系统

混合密码系统结合了非对称加密算法和对称加密算法的优势:

混合密码系统的加密

混合加密
  1. 发送者利用一个随机数生成器生成一个对称加密算法的会话密钥。
  2. 使用会话密钥加密会话消息,得到会话消息密文(对称加密)。
  3. 使用接受者的公钥加密会话密钥,得到会话密钥密文(非对称加密)。
    4.组合会话密钥密文和会话消息密文。

混合密码系统的解密

混合解密
  1. 分离密文,等到会话密钥密文和会话消息密文。
  2. 用私钥解密会话密钥密文,得到会话密钥(非对称加密)。
  3. 用会话密钥解密会话消息密文,得到会话消息(对称加密)。

参考

上一篇 下一篇

猜你喜欢

热点阅读