Security 最有效的公钥加密方法
关于非对称公钥加密似乎有很多炒作。RSA,PGP。。。等等。您有一组两个密钥并分发一个密钥,这样,要么只有您可以加密消息,要么只有您可以解密消息。一种方法提供了验证发送者的方法,而另一种方法提供了保护消息的方法。(如果我错了,请随时纠正。) 现在,我也在读关于Diffie Hellman密钥交换类的文章。这似乎更安全,因为您可以验证发件人并使用密钥保护消息,因为每个“对话”都需要计算出的“共享密钥” 所以,我的问题是,使用Diffie Hellman比使用更标准形式的公钥加密有什么主要缺点(除了设置要求之外)Security 最有效的公钥加密方法,security,language-agnostic,encryption,performance,public-key,Security,Language Agnostic,Encryption,Performance,Public Key,关于非对称公钥加密似乎有很多炒作。RSA,PGP。。。等等。您有一组两个密钥并分发一个密钥,这样,要么只有您可以加密消息,要么只有您可以解密消息。一种方法提供了验证发送者的方法,而另一种方法提供了保护消息的方法。(如果我错了,请随时纠正。) 现在,我也在读关于Diffie Hellman密钥交换类的文章。这似乎更安全,因为您可以验证发件人并使用密钥保护消息,因为每个“对话”都需要计算出的“共享密钥” 所以,我的问题是,使用Diffie Hellman比使用更标准形式的公钥加密有什么主要缺点(除了
或者更直截了当地说。如果Diffie Hellman更有意义,为什么它不是加密的标准形式?对称加密比PKI快几个数量级/计算密集度更低。此外,键大小也存在差异。由于加密/解密不仅必须发生在CPU和RAM都没有问题的服务器端,在客户端,您的移动设备可能会受到更大的限制。我可能错了,但维基百科上描述的算法在我看来就像一个脉冲密钥加密 双方选择一个秘密(私钥)并共享另一个与私钥(这是公钥)相关的密钥 只是为了提供一个比较完整的画面:
在现实算法中,公钥加密用于交换秘密,然后使用对称算法对主通信进行加密,PK加密Diffie-Hellman密钥协议提供了一种建立公共密钥的方法,这实际上是被动对手(即只收听通信的人)无法确定的 但是,基本D-H容易受到攻击。换句话说,您可以建立一个共享密钥,但在活跃的对手面前,您不知道与谁共享密钥 这就是公钥密码术的地位所在。当您拥有某人的真实公钥时,您可以确保加密数据只能由此人读取
确保给定的公钥确实属于某人是一个单独的问题,可以通过解决,例如。使用Diffie-Hellman通信方法必须注意的主要问题是,它容易受到中间人攻击 这在RSA中是不可能的,因为只有创建公钥的人才能解密消息,因此您可以完全放心地说,是正确的人在阅读消息
Diffie Hellman对于与某人的安全双向通信非常有用,只要您不太关心此人是谁。RSA的主要问题是速度慢。事实上,早期版本的PGP所做的(我不确定现代版本会做什么,可能它没有改变)是使用Diffie-Hellman密钥交换将密钥分发给一些快速对称密码,然后将其用于消息的主体 对称密码和非对称密码是两个完全不同的东西。你不能直接比较它们 对称密码用于加密具有共享密钥的消息。这些是DES、AES、blowfish等算法 非对称密码处理另一个问题,即密钥共享和签名。通过拥有公钥,可以通过无法修改的通道分发该密钥。其他人可以读钥匙;只要他们不能改变,就没有问题 如果其他人可以更改消息(通常在任何地方都是这样),那么它就会变得更加复杂。然后你需要使用数字签名。基本上有一个签署公钥(证书也是公钥)的中央机构。每个人都预先安装了证书颁发机构的公钥(通常与操作系统捆绑在一起),因此可以通过使用颁发机构的公钥检查签名来验证证书是否真实。这被称为PKI(公钥基础设施),它被广泛使用。最突出的例子是SSL
请仔细阅读。正如Krystian所说,Diffie Hellman允许您建立安全连接,但不允许您验证与谁建立了安全连接
但是,DH可以与RSA等公钥算法结合使用。这允许您验证另一方的身份(使用RSA签名),Diffie-Hellman密钥交换为该方带来了称为“完美前向保密”的属性。这意味着,如果你和我今天交谈,明年有人窃取了你的RSA私钥,他们仍然无法返回并解密今天的对话。普通RSA密钥交换不具有此属性。RSA也易受MITM攻击。如果您不认识与您通信的人(如他的公钥),则无法验证您是否与正确的人交谈。攻击者只需发送他的公钥,然后假装是您要与之交谈的人。这是千真万确的。也许更好的说法是,RSA保证只有创建公钥的人才能读取消息。您得到答案仅仅是因为描述性。但是,我给了Krystian一个同样有效的答案。唉。得到两个好答案总是让人很难做出决定。