首页/我的作品/密码学/6.1 难题:如何在不安全的信道上交换密钥
密码学:守护数字世界的秘密

6.1 难题:如何在不安全的信道上交换密钥

第 33 / 78 篇 · Crazy Boy

你正坐在咖啡馆里,打开笔记本电脑,想给朋友发一封加密的电子邮件。你和他从未见过面,也没有事先约定任何密码。你唯一能用的信道就是互联网——一个公开的、可以被任何人窃听的网络。

你该怎么办?

这个问题,就是密码学史上最古老、最棘手的难题之一:密钥分发问题。

对称加密的困境

在上一章,我们学习了对称加密——加密和解密用的是同一把钥匙。它的效率极高,可以快速加密海量数据。但它的致命弱点也显而易见:通信双方必须先共享同一把密钥。

如果你们已经有一条安全的信道可以用来交换密钥,那为什么还需要加密呢?你们可以直接在那条信道上传输明文了。这是一个典型的“先有鸡还是先有蛋”的困境。

在古代,人们只能用笨办法:派最信任的信使,把密钥写在羊皮纸上,藏在靴子里,穿越敌占区送给对方。如果信使被抓,密钥泄露,一切前功尽弃。历史上无数情报的泄露,都发生在密钥传递的途中。

到了近代,人们开始用密码本——厚厚的册子里印着成千上万个密钥,军队和外交官每人拿一本。但密码本太重,分发太慢,而且一旦有一本落入敌手,整个通信系统就瘫痪了。

在互联网时代,我们每天要和无数个从未谋面的网站打交道。难道我们要为每一个网站事先约定一把密钥?显然不可能。

一个看似无解的问题

让我们把这个难题抽象出来:

  • 爱丽丝想给鲍勃发一条加密消息。
  • 他们之间只有一条公开的、可被窃听的通信信道。
  • 他们事先没有共享任何秘密。
  • 爱丽丝需要一种方法,让鲍勃能够安全地收到一条只有他能解密的秘密消息。

听起来像魔术,对不对?如果信道本身不安全,你怎么能把秘密安全地传过去?任何你发送的东西,都会被窃听者伊芙看到。

历史上,无数密码学家都认为这是一个不可能解决的问题。直到20世纪70年代,几个年轻人的异想天开,才彻底颠覆了这个认知。

新思路:不直接传密钥,而是创造密钥

迪菲、赫尔曼和默克尔的想法是:既然不能安全地传递密钥,那能不能在不安全的信道上,通过公开的对话,让双方各自计算出同一个密钥?

想象一下,爱丽丝和鲍勃同时站在广场上,大声喊出一些数字,周围所有人都能听到。但经过一番计算,只有他们俩能得出一个相同的数字,而其他人即使听到了所有对话,也无法算出这个数字。这听起来不可思议,但数学让这变成了现实。

这种神奇的密钥交换方法,就是下一节要讲的 Diffie-Hellman 密钥交换。它标志着公钥密码学的诞生,也彻底解决了密钥分发这个千年难题。

小结

密钥分发问题困扰了人类几千年。从凯撒的信使到近代的密码本,所有的努力都无法真正解决这个难题——直到公钥思想的出现。在下一节,我们将走进那个传奇的年代,看几个年轻人如何用一个疯狂的念头,改变了整个密码学的走向。