6.3 混合密码系统
6.3.1 对称密码与公钥密码
对称密码的问题:
密钥配送问题需要解决。 然后出现的公钥密码可以避免密钥的配送,从而解决对称密码的密钥配送问题。
公钥密码的问题:
1) 公钥密码的处理速度远远低于对称密码。 解决这个问题,就是本章要讲解的混合密码系统。
2)公钥密码难以抵御中间人攻击。 解决这个问题,需要对公钥进行认证,将在第10章进行介绍。
6.3.2 混合密码系统
混合密码系统是将对称密码和公钥密码的优势相结合的方法。用对称密码对消息进行加密,用公钥密码对秘钥进行加密(由于对称密码的秘钥比消息本身要短很多,因此可以忽略公钥密码速度慢的问题)。
混合密码系统的组成机制:(对称密码,伪随机数生成器,公钥密码)
- 用对称密码加密消息
- 通过伪随机数生成器生成对称密码加密中使用的会话密钥
- 用公钥密码加密会话密钥
- 从混合密码系统外部赋予公钥密码加密时使用的密钥
混合密码系统用对称密码来加密明文,用公钥密码来加密对称密码中所使用的密钥。
混合密码系统解决了公钥密码速度慢的问题(因为相比消息的长度,密钥的长度较短),对称加密中的密钥配送问题。
6.3.3 加密
加密过程如下:
会话秘钥是对称密码的密钥,同时也是公钥密码的明文。
6.3.4 解密
解密的过程:
6.3.5 混合密码系统的具体例子
1)密码软件PGP。
2)网络上的密码通信所使用的 SSL/TLS 都运用了混合密码系统。
6.4 怎样才是高强度的混合密码系统
1)伪随机数生成器:算法要强
2)对称密码:要选择高强度对称算法,且密钥具有足够的长度。还要选择合适的分组密码模式。
3)公钥密码:要选择高强度对称算法,且密钥具有足够的长度。
4)密钥长度的平衡
6.5 密码技术的组合
- 数字签名:由单向散列函数和公钥密码组合而成
- 证书:由公钥和数字签名组合而来
- 消息认证码:由单向散列函数和密钥组合而成
- 伪随机数生成器:可以使使用对称密码、单向散列函数或者公钥密码来构建。