涨姿势!密码学中的 Alice 和 Bob=英语中的李雷和韩梅梅!

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

不知道你们看到这里是怎么想的,不过图灵君则是“小小的脑袋里充满了大大的问号”:为什么讲解密码就一定需要为参与信息交互的人和计算机起名字呢?
而且为什么一定要用这几个名字呢?于是,秉承着“Stay hungry,Stay foolish”的精神,图灵君上网仔细搜索了一番。
搜索完之后,图灵君发现 Alice 和 Bob 不是结城浩随便起的,原来起这几个名字都是有渊源的,同时我还发现,在密码学中,Alice 和 Bob 就如同英语考试中李雷和韩梅梅一般,无处不在,甚至即使不在密码学中,他们的身影也时常出现!
Alice 和 Bob 的诞生(1978 年)
在正式介绍本文的主人公之前,先给大家普及一下密码学中著名的密码学体制:RSA 密码体制。RSA 密码体制是密码学家提出的第一个公钥密码体制。简单来说,公钥密码体制允许相隔万里的两个人在互相不见面的条件下,远程实现安全通信。夸张点的说,没有 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)是公钥密码系统中的两个用户。

就这样,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,...

大约两年后,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)这部文学作品。

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

至于具体是什么原因,我们就不得而知了。不过这丝毫不影响 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,他们希望交换他们的秘密。

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 想通过电话来抛一枚硬币。

报告《通过电话抛硬币:一个用于解决不可能问题的协议》的第 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 在密码学论文中出现的各种角色总结了一遍:
Bob 是一位股票经纪人,而 Alice 是一位股票投资人(Bob was a stockbroker while Alice was a stock speculator)
Alice 和 Bob 想要一起欺骗保险公司(Alice and Bob tried to defraud insurance companies)
Alice 和 Bob 想要通过电话玩扑克(Alice and Bob played poker over the phone)
Alice 试图想向丈夫隐瞒她与 Bob 的金融交易信息(Alice tried to hide her financial dealings with Bob from her husband)
Alice 和 Bob 同时被税务机关和秘密警察订上了(Alice and Bob are wanted by both the Tax Authority and the Secret Police)
由于不相信 Bob 的过去经历,Alice 不相信 Bob(Alice doesn’t trust Bob because of some unknown past experience)
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 比特秘密信息(多比特情况的处理方式类似)。

论文《有关似然性的逻辑解释》的第 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 的通信内容。

论文《实验量子密码学》的第 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 也可以任意修改通信信息。


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,还发明了很多其他的人物,这些人物未来都成为了密码学协议中的人物,列举如下:
Carol(或者 Cathy):通信中的第三位参与人,对应的是英文的第三个字母 C;
Dave(或者 David):通信中的第四位参与人,对应的是英文的第四个字母 D;
Isaac:互联网服务提供方,对应的英文是 Internet Service Provider;
Justin:司法机关,对应的英文是 Justice;
Oscar:攻击者,对应的英文是 Opposite;
Pat/Victor:证明方/验证方,对应的英文是 Prover/Vierfier;
Trent:可信第三方仲裁,对应的英文是 Trusted Arbitrator;
Walter:看守人,在协议中保护 Alice 和 Bob,对应的英文是 Warden。
随着科技的发展,密码学也在不断地完善和进步,在这个过程中除了 Alice 和 Bob 进行了疯狂地“扩张”之外,还发生过许多有意思的事情,比如“主动攻击者 Mallory”的故事,非公钥密码“掉包”的事情,一切都在历史发展的滚滚长河中变的有趣而多彩。而密码学也是在这个过程中不断地完善和改进,它的故事也是同样地精彩!
史上最好懂的密码学

本书以图配文的形式,详细讲解了 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、知乎:https://www.zhihu.com/question/63306763/answer/255496822著作权归作者所有。