百科问答小站 logo
百科问答小站 font logo



为什么计算机科学如密码学喜欢用 Alice 和 Bob 举栗子? 第1页

  

user avatar   liu-wei-ran-8-34 网友的相关建议: 
      

这周四接到了知乎的一个邀请,自己突然反应过来有一段时间没在知乎答题了,正好浏览知乎看到了这样一个有趣的问题,于是抛砖引玉来答一答。

Alice和Bob的诞生(1978年2月)

如果知友们了解一些密码学的知识,就一定会知道一个著名的密码学体制:RSA密码体制。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)。

不过我们今天要聊的并不是RSA密码体制,而是Alice和Bob。由于论文《一种实现数字签名和公钥密码系统的方法》于1978年2月发表,1978年2月也就成为了这篇答案的主人公Alice和Bob的生日。为什么这样说呢?因为这篇论文中首次使用了Alice和Bob来描述方案。在论文第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)是公钥密码系统中的两个用户。

在这篇论文发表之前,通信领域论文中一般用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,...

然而,大约2年后,Rivest、Shamir、Adleman就在论文中用Alice和Bob替代了A和B。根据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是英语中分别以A和B开头的最常用的名字,可能当时这三位密码学家选取名字的时候只是选了一个满足条件的、最常用的名字而已。

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

在之前的论文或报告中,一般只使用Alice和Bob代替A和B而已,Alice和Bob更像是代号。但在这篇报告中,Blum真正把Alice和Bob带到了背景故事里面,成为了故事中的两个人物。Blum写到:

They have just divorced, lived in different cities, want to decide who gets the car.
他们(Alice和Bob)刚刚离婚,居住在不同的城市,希望确定谁能分得汽车。

不过,也并不是所有的密码学家喜欢用Alice和Bob。密码学家ElGamal在论文《基于离散对数问题的公钥密码系统和签名方案》(A Public Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms)中就没有使用Alice和Bob。1988年,密码学家Micali、Rackoff、Sloan在Alice和Bob的使用上也显得有些模棱两可,他们在论文《概率密码系统中的安全概念》(The Notion of Security fo Probabilistic Cryptosystems)中这样写到:

As with all cryptography, the goal is that A(lice), by using an encryption algorithm E, becomes able to securely send a message m to B(ob).
与其它密码体制相同,他们的目标是让A(lice)通过使用一个加密算法E,可以向B(ob)秘密发送一个消息m。

导致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这次演讲的翻译稿,参见链接:科学松鼠会 " 关于爱丽丝和鲍勃的宴后演讲

Gordon的这次演讲最终影响了整个密码学界,使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的故事。

Alice和Bob在其它领域被广泛使用(1980年以后)

1980年以后,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比特秘密信息(多比特情况的处理方式类似)。

量子计算领域也逐渐开始使用Alice和Bob。例如,Bennett、Bessette、Brassard、Salvail、Smolin于1990年发表的论文《实验量子密码学》(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的通信内容。

随着时间的推移,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。


以上。


参考资料

DuPont和Cattapan于2017年撰写了一篇文章《Alice and Bob: A History Of The World's Most Famous Couple》,详细论述了Alice和Bob的由来。本文多数材料均从此篇文章中找到。本文可以在The World’s Most Famous Cryptographic Couple处访问并下载。

维基百科《Alice and Bob - Wikipedia》中详细列举了除Alice和Bob外的其它人物,可以具体查看。




  

相关话题

  如何看待 2021 年图灵奖授予美国计算机科学家 Jack J. Dongarra? 
  用什么方法调研和查找某个科研领域的最新的热点研究成果? 
  你写过哪些比较酷的十行以内的 Matlab 代码? 
  为什么李世民的名字有两个字? 
  搜索引擎给出完全相同的两个结果,但一个是广告链接,另一个才是正常结果,你会选择哪个呢? 
  linux创建的硬链接为什么不占用磁盘空间? 
  为何一个byte有8bit而不是7/9/4/16bit ? 
  什么是张量 (tensor)? 
  当初的生物热,和如今的全民CS全民AI,让你想到了什么? 
  国内哪些公司有黑客文化? 

前一个讨论
数字签名有可能被伪造吗?
下一个讨论
什么是主动学习(Active Learning, AL)?





© 2024-05-27 - tinynew.org. All Rights Reserved.
© 2024-05-27 - tinynew.org. 保留所有权利