爱丽丝英语学习方法(涨姿势密码学中的)
最近,图灵君在读《图解密码技术》这本书,在正文的第一页,结城浩(书的作者)表示:要讲解密码,我们就需要为参与信息交互的人和计算机起几个名字,因此在本书中我们用 Alice、Bob 等人名来指代这些信息交互的参与者。
不知道你们看到这里是怎么想的,不过图灵君则是“小小的脑袋里充满了大大的问号”:为什么讲解密码就一定需要为参与信息交互的人和计算机起名字呢?而且为什么一定要用这几个名字呢?
于是,秉承着“Stay hungry,Stay foolish”的精神,图灵君上网仔细搜索了一番。
搜索完之后,图灵君发现 Alice 和 Bob 不是结城浩随便起的,原来起这几个名字都是有渊源的,同时我还发现,在密码学中,Alice 和 Bob 就如同英语考试中李雷和韩梅梅一般,无处不在,甚至即使不在密码学中,他们的身影也时常出现!
Alice 和 Bob 的诞生(1978 年)
在正式介绍本文的主人公之前,先给大家普及一下密码学中著名的密码学体制:RSA 密码体制。RSA 密码体制是密码学家提出的第一个公钥密码体制。简单来说,公钥密码体制允许相隔万里的两个人在互相不见面的条件下,远程实现安全通信。夸张点的说,没有 RSA 密码体制,我们就没法通过互联网安全聊天、实现电子交易,整个互联网会变得非常不安全。
自左至右分别为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)是公钥密码系统中的两个用户。
论文《一种实现数字签名和公钥密码系统的方法》的第 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,...
论文《密码学的新方向》中仍然使用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)这部文学作品。
英国作家 Charles Lutwidge Dodgson 以笔名 Lewis Carroll 出版的儿童文学作品《爱丽丝梦游仙境》
另一种说法是 Rivest、Shamir、Adleman 对 1969 年的一部电影《鲍勃&卡罗尔&特德&爱丽丝》(Bob & Carol & Ted & Alice)比较熟悉。
电影《鲍勃&卡罗尔&特德&爱丽丝》的海报。图片来源: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,他们希望交换他们的秘密。
技术报告《如何利用不经意传输实现秘密交换》的第 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 想通过电话来抛一枚硬币。
报告《通过电话抛硬币:一个用于解决不可能问题的协议》的第 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 也可以任意修改通信信息。
论文《如何减少敌人的信息》的第 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,还发明了很多其他的人物,这些人物未来都成为了密码学协议中的人物,列举如下:
- 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、知乎:
zhihu/question/63306763/answer/255496822
著作权归作者所有。
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com