这是一个软问题。我对密码学或其历史不太了解,但RSA的一种常见用法是通过加密对称密钥以发送更长的消息来进行密钥交换(例如,此处的iMessage描述)。难道这不是Diffie-Hellman密钥交换的功能吗?它更旧(对我而言似乎更简单)是为了?在Wikipedia上,它们也都获得了专利,因此对选择不承担任何责任。
明确地说,我并不是在问公钥加密技术在理论上是否重要。我在问为什么它实际上成为进行密钥交换的标准方法。(对于非密码学家来说,DH看起来更易于实现,并且也与所使用组的细节无关。)
这是一个软问题。我对密码学或其历史不太了解,但RSA的一种常见用法是通过加密对称密钥以发送更长的消息来进行密钥交换(例如,此处的iMessage描述)。难道这不是Diffie-Hellman密钥交换的功能吗?它更旧(对我而言似乎更简单)是为了?在Wikipedia上,它们也都获得了专利,因此对选择不承担任何责任。
明确地说,我并不是在问公钥加密技术在理论上是否重要。我在问为什么它实际上成为进行密钥交换的标准方法。(对于非密码学家来说,DH看起来更易于实现,并且也与所使用组的细节无关。)
Answers:
没有强大的技术理由。我们本可以使用Diffie-Hellman(具有适当的签名)以及RSA。
那么为什么要使用RSA?据我所知,非技术性的历史原因占主导地位。RSA获得了专利,并且背后有一家公司,致力于RSA的营销和倡导。而且,这里有很好的库,并且RSA对开发人员来说很容易理解和熟悉。由于这些原因,选择了RSA,并且一旦它成为流行的选择,由于惯性它就一直保持这种状态。
如今,导致Diffie-Hellman的使用增加的主要驱动力是对完美前向保密性的渴望,使用Diffie-Hellman可以轻松实现这一点,但使用RSA则要慢一些。
顺便说一句:这是Diffie-Hellman密钥交换,而不是Diffie-Hellman秘密共享。秘密共享完全是另外一回事。
Diffie-Hellman缺少一个关键功能:身份验证。您知道您正在与某人共享一个秘密,但是您不知道这是收件人还是中间人。使用RSA,您可能会有一些受信任的团体来存储公共密钥。如果要连接到银行,则可以向受信任方(例如Verisign)询问银行的公共密钥,因为您的计算机上已经具有受信任方的公共密钥。因此,您知道您正在与银行共享一个秘密。
使用Diffie-Hellman,当您用银行创建秘密时,实际上您可能与中间人(MITM)一起创建了一个秘密,而中间人也用您的银行创建了一个秘密,他只需将一个加密密钥转换为另一个保持不可见(同时能够读取整个通信)。
这有一个不可忽视的阴暗面。
RSA被NSA选中的事实。
美国国家安全局(NSA)在椭圆曲线cyhper中植入了后门,并将其提供给RSA。
http://www.intelligence-world.org/nsa-infiltrated-rsa-security-more-deeply-than-thought-study/