公开密匙加密
公开密匙加密 公钥加密对于在可能不安全的通道上安全地传输消息非常重要,这意味着它假定所有通信都可以被恶意攻击者读取。因此,公钥加密对于确保互联网的安全尤为重要。
直观的解释
假设Alice试图给Bob发送一条消息,而Eve不知道消息是什么。对爱丽丝来说不幸的是,夏娃可以听到和看到爱丽丝所说或发送的一切。一般来说,加密的目标是让Alice能够成功地发送消息,而不让Eve知道消息是什么。 爱丽丝可以使用很多方法。最简单的方法之一是把消息写下来,放在只有Bob可以访问的地方(例如Bob的房子),然后等待Bob访问消息。这形成了公钥加密背后的基本原则:如果消息是使用相应的公钥加密的(在本例中,公钥是Bob家的地址),那么只有预期的接收者应该能够“解锁”消息。 在实践中,这种方法有许多问题,其中最明显的问题是,每次需要传输消息时,物理地前往可相互访问的站点是不切实际的。此外,如果消息在旅途中的任何时候被盗,Eve将能够确定消息(通过简单地阅读它)。尽管如此,这个类比还是有些用处的,特别是因为它可以很好地延伸到下面的例子中: 假设Alice希望给Bob送一颗有价值的钻石,但如果不加保护,这颗钻石将被偷走。爱丽丝和鲍勃都有各种各样的挂锁,但他们拥有的锁不一样,这意味着他们的钥匙打不开对方的锁。 爱丽丝是怎么把钻石送给鲍勃的? 这是如何做到的:
另一种方法是Alice使用某种商定的方案对消息进行加密,例如<一个href="//www.parkandroid.com/wiki/caesar-cipher/" class="wiki_link" title="凯撒密码gydF4y2Ba" target="_blank">凯撒密码 更现代的方法采取了一种看似违反直觉的方法:加密算法是完全公开的,因此攻击者也知道。这里有两个指导原则: 从这个意义上说,“计算困难”具有特定于上下文的特定含义,但通常(粗略地)它意味着计算机将花费不可接受的长时间来解密消息。例如,公钥系统可能基于<一个href="//www.parkandroid.com/wiki/p-vs-np/" class="wiki_link" title="NPgydF4y2Ba" target="_blank">NP
加密中的数论
diffie - hellman
主要文章:<一个href="//www.parkandroid.com/wiki/diffie-hellman-protocol/" class="wiki_link" title="diffie - hellmangydF4y2Ba" target="_blank">diffie - hellman
的
弱点和攻击
尽管公开密钥加密背后的算法在理论上是可靠的,但仍然存在许多可以尝试的实际攻击。最常见和最著名的是 一般来说,中间人攻击是通过打开来实现的 例如,在上一节的Diffie-Hellman协议中,攻击者Mallory可以选择一个秘密号码