学习《图解密码技术》补充密码学相关基础知识过程中所做的简单学习笔记,只记录要点,所用图例的来源均为《图解密码技术》一书。
本篇主要参考本书第六章——混合密码系统
引子
公钥密码有两个弱点
- 公钥密码的处理速度远低于对称密码
- 公钥密码难以抵御中间人攻击
而对称密码也存在一个问题
- 密钥配送的问题
这里介绍的“混合密码系统”就是结合了公钥密码以及对称密码,解决了“公钥密码的处理速度低”以及“对称密码的配送”两个问题。至于公钥密码难以抵御中间人攻击的问题,需要对公钥进行认证的处理。
混合密码系统
混合密码系统(hybrid cryptosystem)是将对称密码和公钥密码的优势相结合的方法。
在混合密码系统中,会先用快速的对称密码来对消息进行加密,保证了消息的机密性;然后使用公钥密码对加密消息时使用的对称密码的密钥进行加密,解决了密钥传输的问题,并且由于对称密码的密钥长度一般比消息本身要短很多,因此公钥密码速度慢的问题就可以忽略了。
将消息通过对称密码来加密,将加密消息时使用的密钥通过公钥密码来加密,这样的两步密码机制就是混合密码系统的本质。
加密
混合密码系统的加密过程如下图所示
可以看到,左半部分是“加密会话密钥”的部分(使用公钥密码),右半部分是“加密消息”的部分(使用对称密码)。
对加密过程进行归纳:
- 通过伪随机数生成器生成一个会话密钥。「步骤一」
- 使用会话密钥,对消息进行对称密码加密。「步骤二」
- 使用接受者的公钥,对会话密钥进行公钥密码加密。「步骤三」
- 将「步骤二」和「步骤三」输出的密文进行组合,得到「用公钥密码加密的会话密钥 + 用对称密码加密的消息」,即混合密码系统的密文。
解密
混合密码系统的解密过程如下图所示
可以看到,左半部分是”解密会话密钥”的部分(使用公钥密码),右半部分是“解密”的部分(使用对称密码)。
对解密过程进行归纳:
- 将密文分离成「用公钥密码加密的会话密钥」 以及「 用对称密码加密的消息」。「步骤一」
- 使用接受者的私钥,对加密后的会话密钥进行公钥密码解密,得到会话密钥。「步骤二」
- 使用「步骤二」得到的会话密钥,对加密后的消息进行对称密码解密,得到消息明文。「步骤三」
总结
混合密码系统解决了公钥密码速度慢的问题,并通过公钥密码解决了对称密码的密钥配送问题。
混合密码系统中涉及到了三个密码技术:
- 伪随机数生成器(用于生成会话密钥)
- 对称密码(用于加密消息)
- 公钥密码(用于加密会话密钥)
著名的密码软件PGP、以及网络上的密码通信所使用的SSL/TLS都运用了混合密码系统。