在一些密码学或算法描述的文章中,我们经常能看到 Alice 和 Bob 这对学术 CP。

密码学的学术 CP:Alice 和 Bob 的前世今生

他们是一对纠缠不清的冤家。两个人之间并没有看上去那么亲密,双方都不能信任对方,交流充满了猜疑和防范。然而两人却又是那么的密不可分,几乎永远成双成对出现,不管发生了什么,Alice 还总是想方设法地向 Bob 发送消息,Bob 则总是小心翼翼地接受它。

(也许这就是年少懵懂的真爱吧!)

那为什么是他们,而不是 Sherlock 和 John 或者 Naruto 和 Sasuke 呢?

密码学的学术 CP:Alice 和 Bob 的前世今生

Alice 和 Bob 最早出现 1978 年 2 月发表的《A Method of Obtaining Digital Signatures and Public-Key Cryptosystems》中,论文作者就是发明 RSA 密码体制而获得 ACM 图灵奖的 Rivest、Shamir、Adleman。这篇论文中作者首次使用了 Alice 和 Bob 来描述方案。

密码学的学术 CP:Alice 和 Bob 的前世今生论文部分截图

根据 Rivest 的回忆,当时之所以使用 Alice 和 Bob,一方面是避免使用枯燥无味的 A 和 B,而这两个名字的英文首字母仍然维持 A 和 B 不变;另一方面是因为 Alice 和 Bob 分别为女性名字和男性名字,这样在论文后面的部分中就可以使用英语的她(she)和他(he)分别指代 Alice 和 Bob,不至于让读者混淆。

至于究竟为什么要用 Alice 和 Bob,而不用其它名字,据说是 Rivest 比较喜欢《爱丽丝梦游仙境》(Alice's Adventures in Wonderland)这部文学作品。

密码学的学术 CP: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 还有一些小伙伴,见下方图表。记住这些角色有助于以后理解各种密码学协议和算法。

密码学的学术 CP:Alice 和 Bob 的前世今生

最后放一篇 Geek 漫画以飨读者吧。

密码学的学术 CP:Alice 和 Bob 的前世今生

参考资料:

1、https://www.zhihu.com/question/63306763/answer/255496822/
2、http://localhost-8080.com/2014/02/story-of-alice-and-bob/
3、https://en.wikipedia.org/wiki/Alice_and_Bob
4、http://downlode.org/Etext/alicebob.html
5、漫画来源:https://xkcd.com/177/