混合密码系统概述
对称密码算法可以解决机密性问题,加解密速度比公钥密码速度快,但是存在密钥配送问题。
公钥密码算法可以解决密钥配送问题,但是直接使用公钥密码算法存在加解密速度慢,浪费计算资源的问题,大概是对称密码算法速度的百分之一。
混合密码系统(hybird cryptosystem)将对称密码算法与公钥密码算法配合使用,用对称密码算法作为会话密钥来加密明文,提高加密解密速度。用公钥密码算法来加密对称密码算法中所使用的密钥,以保护会话密钥。
混合密码系统通过对称密码算法解决通信中的机密性问题,通过对称密码算法解决密钥配送问题,充分发挥了两者的优势,而且弥补了两者的短板。
将消息通过对称密码来加密,将加密消息时使用的密钥通过公钥密码来加密,这样的两步密码机制就是混合密码系统的本质。
混合密码系统运用的三种密码技术:
- 伪随机数生成器;
- 对称密码,使用高强度的对称密码算法,并确保密钥具有足够的长度。
- 公钥密码,使用高强度的公钥密码算法,并确保密钥具有足够的长度。
混合密码系统的加密过程

混合密码系统的加密过程
如图所示:
- 右半部分可以得到用对称密码加密的消息。
- 左半部分可以得到用公钥密码加密的会话密钥。
- 将它们组合之后,可以得到混合密码系统整体的密文。
会话密钥(session key):为本次通信而生成的临时密钥,它一般是通过伪随机数生成器生成的。伪随机数生成器生成的会话密钥被传递到右半部分,作为对称密码的密钥使用。
混合密码系统的解密过程

混合密码系统的解密过程
如图所示:
- 分离:混合密码系统的密文是由“用公钥加密过的会话密钥”和“用对称密钥加密过的消息”组合而成的,因此我们首先需要按照事先的约定将两者分离。
- 左半部分,通过接收者自己的公钥密码的私钥解密“用公钥加密过的会话密钥”,得到会话密钥。
- 右半部分,通过会话密钥解密密文,得到明文。