知识卡片
对称加密与非对称加密的密钥分发悖论及混合加密解法
内容
对称加密(加解密用同一密钥)有个先天难题:通信成员一增多,为保证两两 独立通信,密钥数量就与成员数的平方成正比,管理成本剧增;更麻烦的是”蛋鸡 悖论”——如果通信双方原本没有安全信道,要怎么把只应该双方知道的密钥 安全送到对方手上?如果已经有安全信道能送密钥,那还要密钥干什么?非对称 加密用公钥/私钥分离从根本上绕开了这个悖论:公钥可以完全公开传播、无须 安全信道,私钥只由自己持有、从不参与传输。但非对称加密的计算复杂度比 对称加密高出好几个数量级,而且不支持分组加密(密文长度和密钥长度强 相关,只能加密不超过密钥长度的少量数据),完全没法直接用来加密大量数据。 现实中的解法是”混合加密”:先用非对称加密安全地协商出一小段对称密钥(这 一步叫”密钥协商”),再用这段密钥配合高效的对称加密算法去加密真正要传输 的大量数据——这种多种算法组合的完整方案被称为”密码学套件”。这个设计把 非对称加密”密钥分发不怕泄漏”的优势和对称加密”批量加解密快”的优势拼在 一起,是[[TLS握手四步协商如何同时解决窃听篡改冒充三个问题]]背后真正的 密码学基础。
参考来源
- 位置:《凤凰架构:构建可靠的大型分布式系统》第5章"架构安全性"
5.5.1节"摘要、加密与签名"(源文件:_epub-src对应OEBPS/Text/chapter71.xhtml)
- 结论依据:原文说明对称加密的密钥管理难题和"蛋鸡悖论"、非对称加密如何
从根本上解决密钥分发但性能差数量级且不支持分组,进而说明现实中用非
对称加密协商密钥、对称加密加密数据的混合方案(密码学套件),直接支撑
本卡片结论。
- 原始内容:这个"蛋鸡悖论"曾在很长的时间里严重阻碍了密码学在真实世界的
推广应用……现在一般会结合对称与非对称加密的优点,以混合加密来保护
信道安全,具体做法是用非对称加密来安全地传递少量数据……再以这些数据
为密钥,采用对称加密来安全高效地大量加密传输数据。