混合密码系统用对称明码加密明文,用公钥密码来加密对称密码中所使用的密钥。

通过使用混合密码系统,能够在通信中将对称密码和公钥密码的优势结合起来。

问题

对称密码和公钥密码都有其自身难以解决的缺点。

对称密码的一个重大问题就是密钥配送

公钥密码有两个严重的问题:

  1. 处理速度远远低于对称密码。
  2. 难以抵御中间人攻击。

混合密码系统就是来解决对称密码的密钥配送和公钥密码处理速度慢的问题。至于公钥密码的第2个问题需要通过对公钥认证来解决。

混合密码系统

混合密码系统(hybird cryptosystem) 是将对称密码和公钥密码的优势相结合的方法。即将消息通过对称密码来加密,将加密消息时使用的密钥通过公钥密码来加密。

具体组成如下:

  • 用对称密码加密消息
  • 通过伪随机数生成器生成对称密码加密中使用的会话密钥
  • 用公钥密码加密会话密钥
  • 从混合密码系统外部赋予公钥加密时使用的密钥

混合密码系统运用了伪随机数生成器、对称密码和公钥密码三种密码技术。

加密

  1. 右半边为加密消息的部分,当消息很长时,需要用分组密码的模式。由于对称密码的特性,即使消息很长,也可以快速完成。
  2. 左半边为会话密钥的生成和加密。会话密钥是指为本次通信而生成的临时密钥,一般由伪随机数生成器产生。
  3. 伪随机数生成器所产生的会话密钥同时会被传递给右半边作为对称密码的密钥。

会话密钥是对称密码的密钥,同时也是公钥密码的明文。

解密

分离

分离操作需要发送者和接收者事先约定好密文的结构。

解密会话密钥

接收者需要公钥密码的私钥进行解密,解密后的会话密码将被用作解密消息的密钥。

解密消息

使用公钥密码解密得到的会话密钥解密消息

示例

混合密码系统解决了公钥密码速度慢的问题,并通过公钥密码解决对称密码的密钥配送问题。

密码PGP以及SSL/TLS都运用了混合密码系统。

高强度混合密码系统

伪随机数生成器

混合密码系统中,伪随机数生成器被用于产生会话密钥。

如果伪随机数生成器的算法很差,生成的会话密钥就有可能被攻击者推测出来。

会话密钥中哪怕只有部分比特被推测出来也很危险,因为会话密钥的密钥空间不大,很容易被暴力破解。

密钥长度的平衡

混合密码系统中运用了对称密码和公钥密码两种形式,无论其中任何一方的密钥过段,都可能会遭到集中攻击,因此两者的密钥长度必须具备同等的强度。

从长期来看,公钥密码的强度应该要高于对称密码,毕竟对称密码只会影响到本次通信。

密码技术组合

术语说明
数字签名单向散列函数和公钥密码组合而成
证书公钥和数字签名组合而成的
消息认证码单向散列函数和密钥组合而成的,也可以通过对称密码来生成
伪随机数生成器使用对称密码、单向散列函数或者公钥密码来构建