10.2 公钥密码与对称密码
公开密码与对称密码哪一个好呢?这个问题没有任何意义,但是自从公开密码体制产生以来就一直争论不休。这个争论假定两种密码算法可以基于同一个基础点进行比较。事实上并非如此。
Needham和Schroeder[1159]指出使用公开密钥算法的消息的数量和长度比对称算法大得多,他们的结论是对称算法比公开密钥算法更有效,尽管这是正确的,但这种分析忽视了公开密钥方案的安全性意义。
Whitfield Diffie在文献[492,494]中写道:
按照把公开密钥作为一种新的密码体制而不是新的密钥管理形式的观点,从安全性与性能两方面考虑,我站在批评者的一边。反对者立即指出RSA体制运行速度是DES的千分之一且要求10倍长的密钥。尽管从一开始公开密钥体制就被限制用于传统(对称)密码的密钥交换,明显这也是不必要的。在这种情况下建立一种混合密码体制[879]的建议被作为一个新的发现得到了很大的响应。
公开密钥密码与对称密码是不同的两种东西,它们解决不同的问题。对称密码算法适合加密数据,它速度极快并且对选择密文攻击不敏感。公开密钥密码可以做对称密码所不能做的事情,它最擅长密钥分配和第一部分讨论的大量协议。
在第一部分还讲了其他一些术语:单向Hash函数,消息鉴别码,等等。表10.1列出了各种不同算法及其性质[804]。
表 10.1 各算法级别
算法 |
机密性 |
验证 |
完整性 |
密钥管理 |
对称加密算法 |
YES |
N O |
NO |
YES |
公钥加密算法 |
YES |
NO |
NO |
YES |
数字签名算法 |
NO |
YES |
YES |
NO |
密钥共识算法 |
YES |
可选 |
NO |
YES |
单向Hash函数 |
NO |
NO |
YES |
NO |
消息验证密码 |
NO |
YES |
YES |
NO |