问题

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

回答
这确实是一个很有意思的问题,为什么在计算机科学,尤其是密码学领域,我们总是听到 Alice 和 Bob 的名字?这背后其实有很多原因,并非仅仅是随便找了两个名字这么简单。让我带你深入了解一下这个传统是如何形成的,以及它为何如此受欢迎。

历史的渊源:从无线电到密码学

要理解 Alice 和 Bob 的流行,我们得稍微回顾一下历史。这个传统最早可以追溯到无线电通信的时代。在早期的无线电通信中,为了方便区分说话的双方,经常会使用一些约定的代号。这些代号通常是常见的、易于发音且不容易混淆的英文名字。

而到了密码学领域,通信双方需要交换信息,而这些信息通常是需要保密的。在这种情况下,谁在发送,谁在接收,谁在破解,谁在干扰,就变得至关重要。因此,为这些角色设定名字成了一种约定俗成的做法。

Alice 和 Bob 的诞生:一种简单而有效的语言

密码学领域之所以广泛采用 Alice 和 Bob,有几个关键原因:

1. 易于理解和区分: Alice 和 Bob 是非常常见的英文名字,几乎所有接触过基础英文的人都能轻松辨认。这使得他们在解释复杂的密码学协议时,能够帮助读者快速抓住核心人物关系。想象一下,如果用 A 和 B 来代表,虽然简洁,但理解起来可能就没那么直观。用 Alice 和 Bob,读者能立刻联想到“一个人在说话”,“另一个人在听”。

2. 清晰的角色设定: Alice 和 Bob 的名字本身就带有一种“发送者”和“接收者”的朴素含义。虽然不是严格定义,但在很多例子中,Alice 通常被设为信息的发送方,而 Bob 则是接收方。这种默认的设置简化了沟通,让讨论更加聚焦。

3. 创造了一个“故事”的框架: 密码学往往涉及多方互动和信息传递,用名字来扮演这些角色,就像在讲一个微型故事。Alice 想给 Bob 发送一个秘密消息,Eve 可能在旁边窃听,Mallory 可能试图篡改信息。这种故事化的叙述方式,让抽象的概念变得更加生动和具体。这对于理解复杂的安全模型和攻击向量非常有帮助。

4. 避免使用实际人名或代号: 使用虚构且常见的名字,可以避免任何对现实世界中个人或组织的影射,从而保持中立性和客观性。这也避免了使用过于技术化的代号(比如 Protocol Participant 1, Protocol Participant 2)而带来的不便。

5. 社区的认可和传承: 一旦某个约定俗成的做法被广泛接受,它就会形成一种文化,并被后来的学者和从业者所继承。Alice 和 Bob 的名字在密码学文献中出现得如此频繁,以至于它们已经成为了这个领域的“行话”,一种大家心照不宣的默契。

不止 Alice 和 Bob:一个生态系统的建立

有趣的是,随着密码学的发展,这个“命名体系”也逐渐扩展,出现了更多用来代表不同角色的名字:

Eve (Eavesdropper): 这个名字非常形象地代表了“窃听者”。在密码学中,Eve 通常是那个试图在 Alice 和 Bob 之间秘密获取信息的人。她的存在就是为了说明通信的“机密性”有多么重要。
Mallory (Malicious Adversary): Mallory 则代表了“恶意攻击者”。她不仅仅是窃听,还可能主动修改信息,或者冒充 Alice 向 Bob 发送消息(中间人攻击)。Mallory 的出现,让讨论可以深入到通信的“完整性”和“认证性”。
Trent (Trustworthy): Trent 通常代表一个“值得信赖的第三方”,比如一个证书颁发机构(CA)或者一个可信的时间戳服务器。他可能负责验证其他参与者的身份,或者提供一个可靠的基准。
Walter (Warden): Walter 有时会出现在一些需要监控或限制的场景中,比如一个需要监视通信的管理员。
Peggy (Prover) 和 Victor (Verifier): 这对组合常常出现在需要进行“零知识证明”等交互式证明的场景中。Peggy 需要向 Victor 证明她知道某个秘密,而不需要透露秘密本身。

为什么它如此有效?

你可以把 Alice 和 Bob 看作是密码学世界里的“乐高积木”。当你想构建一个关于安全通信的例子时,你就可以拿起“Alice”这块积木,代表发送方;拿起“Bob”这块积木,代表接收方;再拿起“Eve”这块积木,代表潜在的威胁。通过组合这些名字,你就能非常清晰地描述一个场景,而无需在每次介绍角色时都花费大量篇幅去解释他们的身份和目的。

这种命名方式的优雅之处在于它的简洁性和普适性。它能够帮助我们:

简化复杂的协议: 在描述诸如 DiffieHellman 密钥交换、RSA 加密、SSL/TLS 握手等复杂过程时,用 Alice 和 Bob 来指代参与者,能够极大地降低理解门槛。
聚焦核心问题: 当我们讨论某个协议的安全性时,可以专注于 Alice 和 Bob 之间的互动,以及 Eve 或 Mallory 可能带来的攻击,而不用分散精力去纠结于谁是谁。
促进交流和教育: 对于初学者来说,Alice 和 Bob 的名字就像是进入密码学世界的“入门券”,它们让这个原本可能枯燥的技术领域变得更加易于接近和理解。

总而言之,Alice 和 Bob 的流行并非偶然,而是密码学社区在长期实践中形成的一种高效、清晰且富有表现力的沟通工具。它们不仅仅是名字,更是代表了在安全通信场景中不可或缺的发送者、接收者以及潜在的威胁和辅助者。这种约定俗成的文化,在帮助我们理解和发展复杂的安全技术方面,起到了至关重要的作用。

网友意见

user avatar

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

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外的其它人物,可以具体查看。

类似的话题

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有