Alice 和 Bob 的故事

localhost 在2014年的时候写了一篇文章考据了 Alice 和 Bob 的故事。最近才发现她和 Matrix67 在生孩子之后好像都不更新博客了,为了预防她的博客倒闭,我先转载过来为妙。

形影不离的学术情侣

影视作品里出现过的情侣叫荧屏情侣,那么 Alice 和 Bob 就应该称作学术情侣了。很多学术领域会用 Alice 和 Bob 做主人公,其中最经典最被人熟知的还是要数计算机安全,特别是密码学。如果没有 Alice 和 Bob,在讲解密码协议的时候,文字描述大约会变成这样

A 与某个声称自己是 B 的人通信。为了确保无误,A 必须先看看 B 是否知道密码 K。因此 A 向 B 发送了一段随机的 X,B 用 K 将 X 加密后得到 Y 并将 Y 回传给 A。

在这样的一段话里,协议双方看上去像一段随机码一样冰冷单薄。而引入 Alice 和 Bob 代替 A 和 B,协议双方一下被赋予了人格,变得立体起来,读起来很容易有画面感,通信过程也随之变得更有剧情,更易理解。正因为如此,Alice 和 Bob 成为了学术讨论中频繁现身的一对好伙伴,课堂上、教科书里、论文中…在他们的帮助下,一批又一批学生理解了新的知识,一个又一个新思路得到传播,有人甚至在论文中向 Alice 和 Bob 致谢。

Alice 和 Bob 的诞生

其实 Alice 和 Bob 的诞生远没有我预想的那么久远,算起来他们也就比我大十岁,是七五后。还记得 RSA 算法是如何提出的吗,经历了一番探究,某夜突然灵机一动的 RSA 之 R,Ron Rivest,彻夜写了那篇著名的论文阐述 RSA 算法的思想,而我们的 Alice 和 Bob 首次登台就是在那里。Rivest 不仅是 RSA 之父,也是 Alice 和 Bob 之父。就像他们没有料到 RSA 算法会得到如此广泛的应用一样,他也完全没有料到 Alice 和 Bob 成为了行业惯例,知名度甚至超过了自己。

Alice 和 Bob 的首登场(<a href="http://people.csail.mit.edu/rivest/RivestShamirAdleman-AMethodForObtainingDigitalSignaturesAndPublicKeyCryptosystems.pdf">via</a>)

一次采访中,Rivest 回忆起当初创造 Alice 和 Bob的情景。Alice 和 Bob 的诞生的确是为了避免在描述中使用 A 和 B,又因为他们分别以 A、B 开头,所以在算式中,仍然可以简洁地用 $E_A$、$E_B$ 这样的形式区分。而创建一男一女两个角色,并不是为了给读者什么编罗曼史的机会(事实上无法避免地,很多人都这么做了),而是为了在描述时,可以方便地用她(she)和他(he)来指代而不至于混淆。至于为什么会是 Alice 和 Bob 这两个名字跳了出来,Rivest 自己猜测可能因为自己比较痴迷《爱丽丝梦游仙境》。

Alice、Bob 和他们的朋友们

RSA 算法的论文发表后,掀起了用 Alice 和 Bob 进行讲解的热潮。在后续发表和出版的文字中,人们陆续开始学着用 Alice 和 Bob 代替 A 和 B,其中最为著名的便是 Bruce Schneier 的《应用密码学》。Schneier 显然非常推崇这种作法,以至于在书中,即便是讲述 RSA 算法诞生前的各种协议和密码算法,他也用到了 Alice 和 Bob。由于有些协议情况复杂,Alice 和 Bob 两个人已经不能满足剧情,Schneier 在书的最开始给出了一个长长的演员表,除了发起和响应的 Alice 和 Bob,还有第三、四方 Carol 和 Dave,以及臭名昭著的窃听者 Eve,更为恶劣的主动攻击者 Mallory 等等。

一个有趣的细节是,在《Secret History: The Story of Cryptology》一书中提到了一个变动,主动攻击者的名字从第一版的 Mallet 改成了第二版的 Mallory。尽管如此,Mallet 这个名字还是记录在密码学历史中,书中说,还有一个美国密码协会(American Cryptogram Association)的成员由此受启发,以 Mallet 做笔名。

纠缠不清的一对冤家

慢慢地 Alice 和 Bob 的形象丰富起来,关系也就变得复杂起来,变成了一对纠缠不清的冤家。两个人之间并没有看上去那么亲密,双方都不能信任对方,交流充满了猜疑和防范。然而两人却又是那么的密不可分,几乎永远成双成对出现,不管发生了什么,Alice 还总是想方设法地向 Bob 发送消息,Bob 则总是小心翼翼地接受它。Schneier 总结说,Alice 和 Bob 共享过秘密,尝试过恋爱、结婚,甚至离婚。任何一件需要安全进行的事,Alice 和 Bob 都一定曾在某篇密码学文章中做过。

密码学家 John Gordon 在他著名的餐后演说中,形象地描述出这其中的纠结:

多数人处于 Alice 的境地时会选择放弃,但 Alice 没有。她有着惊人的勇气。面对各种诡异的情况,充满噪声的电话线、税务机关和秘密警察的窃听,Alice 还是乐意去尝试和一个她并不信任、也听不清、还极有可能被别人冒充的人通信,来进行退税欺诈甚至策划政变,同时还要尽可能地减少电话费。

而编码学家则是一群认为 Alice 没疯的人。

这是 1984 年的演讲,Gordon 已经将 Alice 和 Bob 这对诞生不到十年的名字称作“longstanding tradition”了。不知道应该说是不出所料还是出人意料,这段通俗非正式的演讲一下走红。特别是文中八卦 Alice 和 Bob 的部分,更是被四处摘录。Gordon 自嘲地说,现在没人知道他在密码学上的成就(强素数概念的提出),提起他都是说“那个八卦 Alice 和 Bob 的家伙”。他几次尝试把演讲稿从网页上撤下来,但都在读者的强烈抗议下重新放出。又是一个被 Alice 和 Bob 抢去风头的大师。其实这篇演讲相当有趣,除了 Alice 和 Bob 的问题,还用非常通俗的语言解释了编码学及其各个分支的基本概念,有兴趣可以进一步阅读。

结局?

Alice 和 Bob 最终会如何发展呢?他们会不会退休,会不会被新人代替?

曾有印度学者提出用印度神话故事中的 Sita 和 Rama 代替 Alice 和 Bob(via),Sita 正好简写为 S,也就是 Sender,Rama 则代表 Receiver,同时这些人物所在的神话故事情节也正好是 Sita 要给 Rama 发送消息。这种思路类似于在交互式证明系统中,利用 Arthur(亚瑟王)和 Merlin(梅林)的历史角色来阐述和命名的方式。

但显然这种精心策划的解决方案不能撼动不经意兴起的惯例,我们的 Alice 和 Bob 还是会作为这个领域的传统传承下去,短期不会被其他名字代替。祝福他们会终成眷属,结束艰难的通信,幸福地生活在一起,直到永远。

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×