最近,图灵君在读《图解密码技术》这本书,在正文的第一页,结城浩(书的作者)表示:要讲解密码,我们就需要为参与信息交互的人和计算机起几个名字,因此在本书中我们用 Alice、Bob 等人名来指代这些信息交互的参与者。

爱丽丝英语学习方法(涨姿势密码学中的)(1)

不知道你们看到这里是怎么想的,不过图灵君则是“小小的脑袋里充满了大大的问号”:为什么讲解密码就一定需要为参与信息交互的人和计算机起名字呢?而且为什么一定要用这几个名字呢?

于是,秉承着“Stay hungry,Stay foolish”的精神,图灵君上网仔细搜索了一番。

搜索完之后,图灵君发现 Alice 和 Bob 不是结城浩随便起的,原来起这几个名字都是有渊源的,同时我还发现,在密码学中,Alice 和 Bob 就如同英语考试中李雷和韩梅梅一般,无处不在,甚至即使不在密码学中,他们的身影也时常出现!

Alice 和 Bob 的诞生(1978 年)

在正式介绍本文的主人公之前,先给大家普及一下密码学中著名的密码学体制:RSA 密码体制。RSA 密码体制是密码学家提出的第一个公钥密码体制。简单来说,公钥密码体制允许相隔万里的两个人在互相不见面的条件下,远程实现安全通信。夸张点的说,没有 RSA 密码体制,我们就没法通过互联网安全聊天、实现电子交易,整个互联网会变得非常不安全。

爱丽丝英语学习方法(涨姿势密码学中的)(2)

自左至右分别为Shamir、Rivest、Adleman。图片来源:cryptologicfoundation/

RSA 这个名字是发明此密码体制的三位密码学家 Rivest、Shamir、Adleman 的首字母缩写。这三位密码学家在 1977 年 4 月撰写了一篇论文《数字签名与公钥密码学》(On Digital Signatures and Public-Key Cryptosystems),并投稿至了一个期刊上,不过很遗憾这篇论文被拒稿了。不过,是金子总会发光的,这三位密码学家在 1977 年 12 月撰写了 RSA 密码体制的相关专利(此专利最终于 1983 年 9 月 20 日授权),并将论文进行了修改,把题目改为《一种实现数字签名和公钥密码系统的方法》(A Method of Obtaining Digital Signatures and Public-Key Cryptosystems),投稿至顶级期刊《ACM通信》(Communications of the ACM),最终于 1978 年 2 月成功发表。Rivest、Shamir、Adleman 也因为提出了 RSA 密码体制,最终于 2002 年获得了计算机领域的最高奖项:ACM 图灵奖(ACM Turing Award)。

而在 1978 年 2 月份发表的论文《一种实现数字签名和公钥密码系统的方法》中的第 2 页,第 2 章的最后一个自然段,有这样一段描述:

For our scenarios we suppose that A and B (also known as Alice and Bob) are two users of a public-key cryptosystem.

在我们的场景中,假定 A 和 B(也称为 Alice 和 Bob)是公钥密码系统中的两个用户。

爱丽丝英语学习方法(涨姿势密码学中的)(3)

论文《一种实现数字签名和公钥密码系统的方法》的第 2 页

就这样,Alice 和 Bob 第一次在密码学中被提到,我们的主人公正式诞生了, 1978 年 2 月也就成为了主人公 Alice 和 Bob 的生日。

在《一种实现数字签名和公钥密码系统的方法》这篇论文发表之前,通信领域论文中一般用 A 表示数据发送方,一般用 B 表示数据接收方。例如,1976 年,密码学家 Diffie 和 Hellman 发表了标志着公钥密码学思想诞生的论文《密码学的新方向》(New Directions in Cryptography)。在此论文中,Diffie 和 Hellman 就是用A和B分别表示数据发送方和数据接收方。

在论文第 7 页,可以看到这样一句话:

If user A wishes to send a message M to user B, ...如果用户 A 想将消息 M 发送给用户 B,...

爱丽丝英语学习方法(涨姿势密码学中的)(4)

论文《密码学的新方向》中仍然使用A和B表示数据发送方和数据接收方

大约两年后,Rivest、Shamir、Adleman 在论文中用 Alice 和 Bob 第一次替代了 A 和 B,而谁都没有想到这一行为为将来 Alice 和 Bob 成为密码学届的“知名人物”打下了坚实的基础。

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

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

爱丽丝英语学习方法(涨姿势密码学中的)(5)

英国作家 Charles Lutwidge Dodgson 以笔名 Lewis Carroll 出版的儿童文学作品《爱丽丝梦游仙境》

另一种说法是 Rivest、Shamir、Adleman 对 1969 年的一部电影《鲍勃&卡罗尔&特德&爱丽丝》(Bob & Carol & Ted & Alice)比较熟悉。

爱丽丝英语学习方法(涨姿势密码学中的)(6)

电影《鲍勃&卡罗尔&特德&爱丽丝》的海报。图片来源:en.wikipedia/wiki/Bob_&_Carol_&_Ted

至于具体是什么原因,我们就不得而知了。不过这丝毫不影响 Alice 和 Bob “横扫密码学界”并走上“扩张之路”。

横扫密码学界(1980 年前后)

1978 年后,Alice 和 Bob 这两个名字逐渐成为了密码学领域中的“著名人物”。慢慢地,大量的密码学家开始使用这两个名字代替枯燥无味的 A 和 B。

1981 年 5 月 20 日,密码学家 Rabin 在给哈佛大学艾肯计算实验室(Aiken Computation Lab)中撰写的技术报告《如何利用不经意传输实现秘密交换》(How to Exchange Secrets with Oblivious Transfer)中就使用了 Alice 和 Bob:

Bob and Alice each have a secret, SB and SA, respectively, which they wish to exchange.

Bob 和 Alice 分别有一个秘密 SB 和 SA,他们希望交换他们的秘密。

爱丽丝英语学习方法(涨姿势密码学中的)(7)

技术报告《如何利用不经意传输实现秘密交换》的第 1 页

1981 年 11 月 10 日,密码学家 Blum 发表了一篇题为《通过电话抛硬币:一个用于解决不可能问题的协议》(Coin Flipping by Telephone: A Protocol for Solving Impossible Problems)。

报告第 1 句话就写到:Alice and Bob want to flip a coin by telephone.

Alice 和 Bob 想通过电话来抛一枚硬币。

爱丽丝英语学习方法(涨姿势密码学中的)(8)

报告《通过电话抛硬币:一个用于解决不可能问题的协议》的第 1 页

在之前的论文或报告中,一般只使用 Alice 和 Bob 代替 A 和 B 而已,Alice 和 Bob 更像是代号。但在 Blum 的这篇报告中,Blum 真正把 Alice 和 Bob 带到了背景故事里面,成为了故事中的两个人物。这使得 Alice 和 Bob 第一次摆脱了代号定义,具有了“人”的属性。

Blum 写到:They have just divorced, lived in different cities, want to decide who gets the car.

他们(Alice 和 Bob)刚刚离婚,居住在不同的城市,希望确定谁能分得汽车。

不过,导致 Alice 和 Bob 最终成为密码学中主人公的事件,是 1984 年 4 月密码学家 Gordon 在瑞士苏黎世发表的一个晚餐演讲。这个演讲的主题具体是什么已经无从考证。但 Gordon 在这次演讲中把 Alice 和 Bob 在密码学论文中出现的各种角色总结了一遍:

Gordon 的这次演讲最终影响了整个密码学界,也使 Alice 和 Bob 成为了密码学界中的虚拟主人公,任何一个从事密码学研究的人都不可避免要和 Alice、Bob 产生或多或少的联系。

Gordon 在 2005 年回忆道:Today, nobody remembers I invented Strong Primes, but everyone knows me as the guy who wrote the story of Alice and Bob.

现在,没人记得我发明了强质数,但每个人都知道我写的有关 Alice 和 Bob 的故事。

至此,用了短短 6 年时间,Alice 和 Bob 已经完成了“横扫密码学界”的任务,成为了密码学界不可或缺的“关键人物”,但他们的野心显然并未得到满足,“扩张之路”依旧在继续。

出圈扩张( 1984 年以后)

Alice 和 Bob 的“出圈扩张”还要追溯到 1987 年。这一年,Halpern 和 Rabin首次在模态逻辑领域(同属计算机领域)使用 Alice 和 Bob。他们在论文《有关似然性的逻辑解释》(A Logic to Reason about Likelihood)中写到:

The situation is the following. Suppose Alice and Bob have one-bit secrets which they would like to exchange (the multibit case proceeds along similar lines).

具体场景如下。假设 Alice 和 Bob 想交换 1 比特秘密信息(多比特情况的处理方式类似)。

爱丽丝英语学习方法(涨姿势密码学中的)(9)

论文《有关似然性的逻辑解释》的第 14 页,Alice 和 Bob 出现在第 5 章的第 2 自然段。

后来,Alice 和 Bob 也逐渐出现在量子计算领域。1990 年发表 Bennett、Bessette、Brassard、Salvail、Smolin 共同发表的论文《实验量子密码学》(Experimental Quantum Cryptography)中的第 2 章,为通过公钥密码体制引入量子密码学,论文写到:

The purpose of public key distribution is for two users "Alice" and "Bob", who share no secret information initially, to agree on a random key, which remains secret from an adversary “Eve”, who eavesdrops on their communications.公共密钥分发的目的是让两个用户 Alice 和 Bob 在初始没有秘密信息的条件下协商得到一个随机密钥。这个随机密钥应该对攻击者 Eve 保密,Eve 可以窃听 Alice 和 Bob 的通信内容。

爱丽丝英语学习方法(涨姿势密码学中的)(10)

论文《实验量子密码学》的第 3 页

随着时间的推移,Alice 和 Bob 不仅在在计算机理论、逻辑学、量子计算等与密码学相关的领域中得到应用,他们的名字也逐渐出现在经济学、物理学、以及其它工程领域的论文中。

至此,Alice 和 Bob 完全奠定了他们在密码学界的主人公地位,与此同时,新的人物也诞生了。

新人物Eve的诞生( 1985 年-1988 年)

1985 年,密码学家 Bennett、Brassard、Robert 在论文《如何减少敌人的信息》(How to Reduce Your Enemy's Information)中也使用了 Alice 和 Bob 作为主人公。不过,他们在论文中又给出了一个新的人物:Eve。

如果仔细观察的话,上面提到的论文《实验量子密码学》中已经出现了 Eve 的身影。Eve 的首字母 E 实际上表示的是英文 Eavesdropper,意为“窃听者”。顾名思义,Eve 是一个攻击者,他的能力是窃听 Alice 和 Bob 之间的通信内容。1985 年的论文《如何减少敌人的信息》中第一次出现了 Eve 的身影:

The private channel is imperfect in various ways: transmission errors can occur, and partial information can leak to Eve, the eavesdropper, who also can modify the transmissions arbitrarily.

保密信道从几个方面看都是不完美的:通信过程会出现数据传输错误,部分信息也会泄露给窃听者 Eve,Eve 也可以任意修改通信信息。

爱丽丝英语学习方法(涨姿势密码学中的)(11)

论文《如何减少敌人的信息》的第 1 页

Eve 的出现使得密码学家们终于找到了一个可以代替攻击者(Adversary)一词的人物了。要知道,攻击者 Adversary 一词的英文首字母也是 A,如果直接用 A 的话就会和 Alice 混淆。Eve 出现在密码学论文中后,密码学家就可以用字母 E 来表示攻击者,从而避免上述混淆。不过,论文《如何减少敌人的信息》中提到,Eve 可以任意修改通信信息。不过,现在密码学论文中一般把 Eve 称为被动攻击者:Eve 只能实施窃听,不能对通信内容进行任何篡改。密码学家专门引入了另一个可以对通信内容进行篡改的人物:Mallory,这个名字的英文首字母 M 表示英文单词 Malicious Adversary,意为“恶意攻击者”。

其他人物的诞生(1994 年)

1994 年,著名密码学家 Schneier 出版了一本密码学著作《应用密码学:协议、算法、C 语言源码》(Applied Cryptography : Protocols, Algorithms, and Source Code in C)。在这本著作中,Schneier 不仅广泛使用 Alice、Bob、Eve 和 Mallory,还发明了很多其他的人物,这些人物未来都成为了密码学协议中的人物,列举如下:

随着科技的发展,密码学也在不断地完善和进步,在这个过程中除了 Alice 和 Bob 进行了疯狂的“扩张”之外,还发生过许多有意思的事情,比如“主动攻击者 Mallory”的故事,非公钥密码“掉包”的事情,一切都在历史发展的滚滚长河中变得有趣而多彩。而密码学也是在这个过程中不断地完善和改进,它的故事也是同样地精彩!

爱丽丝英语学习方法(涨姿势密码学中的)(12)

史上最好懂的密码学

《图解密码技术(第三版)》

[日] 结城浩 著

周自恒 译

本书以图配文的形式,详细讲解了 6 种非常重要的密码技术:对称密码、公钥密码、单向散列函数、消息认证码、数字签名和伪随机数生成器。

第 1 部分讲述了密码技术的历史沿革、对称密码、分组密码模式(包括 ECB、CBC、CFB、OFB、CTR)、公钥、混合密码系统。第 2 部分重点介绍了认证方面的内容,涉及单向散列函数、消息认证码、数字签名、证书等。第 3 部分讲述了密钥、随机数、PGP、SSL/TLS 以及密码技术在现实生活中的应用。


参考资料

1、《Alice and Bob: A History Of The World's Most Famous Couple》

作者:DuPont、Cattapan

2、维基百科:

《Alice and Bob - Wikipedia》

3、知乎:

zhihu/question/63306763/answer/255496822

著作权归作者所有。

,