公开密匙加密
公开密匙加密 公开密钥加密对于在可能不安全的通道上安全地传输消息非常重要,这意味着它假定所有通信都可以被恶意攻击者读取。因此,公钥密码学对于确保互联网的安全尤为重要。
直观的解释
假设爱丽丝试图给鲍勃发送一条信息,而伊芙不知道这条信息是什么。不幸的是,伊芙能听到和看到爱丽丝说的和发送的一切。加密的目标,一般来说,是让爱丽丝能够成功发送信息而伊芙不能确定信息是什么。 Alice可以使用很多方法。最简单的方法之一是简单地将消息写下来,放在只有Bob可以访问的地方(例如Bob的家),然后等待Bob访问消息。这形成了公开密钥加密背后的基本原则:如果消息是使用相应的公钥加密的(在本例中,公钥是Bob家的地址),那么只有预期的接收方能够“解锁”消息。 在实践中,这种方法有许多问题,其中最明显的是,每次需要传输消息时,物理地访问一个相互访问的站点是不切实际的。此外,如果信息在旅途中被窃取,《Eve》便能够判断信息(通过阅读)。尽管如此,这个类比还是提供了一些用途,特别是因为它很好地延伸到下面的例子: 假设爱丽丝想送鲍勃一颗贵重的钻石,但如果不加担保的话,宝石就会被偷。爱丽丝和鲍勃都有各种各样的挂锁,但他们的锁并不相同,这意味着他们的钥匙打不开对方的锁。 爱丽丝是怎样把钻石送给鲍勃的? 下面是如何做到的:
另一种方法是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可以选择一个秘密号码