美文网首页程序员
非对称加密和混合密码系统

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

作者: linjinhe | 来源:发表于2017-05-20 11:04 被阅读285次

    简介

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

    一般情况下:

    • 加密密钥是公开的,称为公钥
    • 解密密钥是私有的,称为私钥

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

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

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

    RSA

    • RSA是目前最常用的非对称加密算法。在RSA中,明文、密钥和密文都是数字(很大的数字)。下面对RSA进行简单介绍,跟多原理和细节请自行网上搜索参考。
    • RSA的密文是对代表明文的数字的E次方求mod N的结果:密文=明文^E mod N
    • RSA解密就是密文的数字D次方求mod N就可以得到明文:明文=密文^D mode N
    • E和N是RSA加密的密钥,E和N的组合就是公钥
    • D和N是RSA解密的密钥,D和N的组合就是密钥
    • 生成RSA算法的密钥对(E、D、N):
    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. 用会话密钥解密会话消息密文,得到会话消息(对称加密)。

    参考

    • 维基百科
    • 《图解密码学》

    相关文章

      网友评论

        本文标题:非对称加密和混合密码系统

        本文链接:https://www.haomeiwen.com/subject/jyuuxxtx.html