扎克决定试用在线约会服务 Chix-n-Studz.com。他在该网站上注册了一个帐户,并填写了几个屏幕的表格,详细说明了他的个人资料以及他在潜在伴侣中寻找什么。很快,该服务为他提供了一些可能的灵魂伴侣,其中包括听起来非常令人兴奋的温迪。他把他的电子邮件地址和希望是有趣的开场白信息发送给她。她直接回复了他,一场旋风式的网上情缘开始了。
可怜的扎克。很快,他也开始接到许多政治行动团体和销售人员打来的不请自来的电话,他们似乎了解他的一些事情,而且他的健康保险公司正在询问他关于他极限冒险假期的事情;Chix-n-Studz 的不择手段的所有者一直在出售客户信息。还有伊万,一位爱恶作剧的同事,扎克愚蠢地向他展示了温迪的一封电子邮件。扎克不知道,随后几条据说是温迪发来的最近的消息实际上是伊万伪造的。
相比之下,爱丽丝正处于幸福的巅峰,她的新朋友鲍勃也是如此。两人通过 SophistiCats.com 相遇,这是一个提供所有最新加密工具的婚介服务。爱丽丝登录该网站,受到匿名授权的保护,该系统确保服务中的任何人都无法追踪她的身份或她何时访问该网站。SophistiCats 采用提供“安全函数评估”的软件来匹配她的个人资料和伴侣标准与鲍勃的,因此服务中的任何人都不知道他们的信息,甚至不知道她和鲍勃已经配对成功。想象一下:一个完全有效的约会服务,几乎对其客户一无所知!
支持科学新闻报道
如果您喜欢这篇文章,请考虑通过以下方式支持我们屡获殊荣的新闻报道 订阅。通过购买订阅,您正在帮助确保有关塑造我们当今世界的发现和思想的具有影响力的故事的未来。
爱丽丝使用一项称为匿名频道的功能联系了鲍勃,而鲍勃也以同样的方式回复——甚至她的互联网服务提供商 (ISP) 都不知道鲍勃是她的联系人,也不知道消息的内容,而鲍勃的 ISP 对她的了解也好不到哪里去。然而,爱丽丝的室友伊芙确实知道,但这仅仅是因为爱丽丝谈论过鲍勃,并且在她电脑上方钉了一些消息的打印稿。伊芙可能会带来麻烦,因为她是一个铁杆的恶作剧者,完全有能力侵入和更改流向和来自爱丽丝电脑的数据(事实上,她控制着连接他们俩与互联网的网络)。不用担心:加密确保伊芙除了爱丽丝给她看的东西外,什么也学不到,并且爱丽丝和鲍勃的电子邮件上的编码“数字签名”使他们很容易发现并忽略伊芙的欺骗性消息。
关于加密的一切
像爱丽丝和扎克一样,我们大多数人每天都在电子方式进行许多个人、商业和政府交易。我们在线做很多事情——从与朋友保持联系到买卖一切,包括厨房水槽——以至于获得关于大多数人的全面信息就像记录或记录他们的在线活动一样容易。出于各种原因,ISP 已经在记录我们的活动,例如我们访问过的网站以及何时访问。他们并不孤单。我们在线互动的许多实体——商店、报纸、约会网站和类似网站——也在密切关注我们。因此,如果我们重视隐私,我们面临的挑战是如何利用互联网提供的一切,而又不放弃我们的隐私。
现代密码学的一个惊人发现是,几乎任何涉及电子通信的任务都可以私下进行。许多人,包括大多数词典的编辑,错误地认为“密码学”是加密研究的同义词。但现代密码学包含的内容远不止于此。它为保护通信和计算免受各种恶意行为提供了数学方法——也就是说,为保护我们的隐私和安全提供了工具。
例如,假设一个通过互联网连接的群体中的所有成员都想计算一些依赖于他们每个人数据的东西——每个人都希望这些数据保持私密。数据可能是他们在选举中的选票,他们想知道结果,但又不想透露自己的个人选票。一种称为多方计算或安全函数评估 (SFE) 的程序使他们能够以这样一种方式统计他们的选票,即每个参与者都能了解正确的输出,并且没有人能够了解任何人的个人选票——甚至包括能够拦截网络上的消息并替换他们自己精心制作的虚假数据的恶意内部人员联盟。SFE 协议还可以为每个人提供私人输出,就像虚构的 SophistiCats 服务所做的那样。
SFE 背后的基本思想是,每个参与者的输入都被分成几部分或份额,并在组内的其他人之间分配。然后,每个参与者对他或她控制的份额进行操作(添加它们、重新分配结果的份额等等)。最后,该组再次将这些部分组合在一起以获得最终输出。没有人拥有重建另一个人的输入所需的数据。
像加票数这样简单的函数可以安全地评估,这似乎并不令人惊讶,但回想一下 SophistiCats 为爱丽丝所做的事情:它计算出了在其数千名客户中哪些成员与她非常匹配,并给了她一些关于这些匹配的有限信息,而它自己却对她的个人资料或任何其他人的个人资料一无所知。一个窃听网络流量或梳理 SophistiCats 硬盘驱动器数据的“老大哥”组织也同样无法了解任何信息。
SophistiCats 是一项虚构的服务,但密码学研究人员已经展示了如何将其变为现实。事实上,今年 1 月,SFE 被用于解决实际问题(至少在丹麦)——根据大约 1200 名丹麦农民私下输入的出价,设定在他们之间交易的甜菜合同的价格。通过 SFE,我们都可以两全其美:我们想要通过互联网实现的功能,而又不牺牲隐私。
尽管 SFE 协议使广泛的功能成为可能,但其强大功能和通用性是有代价的:它需要大量的计算和通信。该协议对于选举等特殊任务来说足够高效,但对于每次您点击安全网页的链接时都投入使用来说太麻烦了。相反,计算机科学家开发了专门的协议,这些协议对于特定的常见任务来说比 SFE 高效得多。这些包括
加密。 爱丽丝的 ISP 和伊芙都无法解密爱丽丝发送给鲍勃的消息。爱丽丝的电脑和 SophistiCats 之间的流量也是安全的。
身份验证。 爱丽丝可以确信消息来自鲍勃,而不是伊芙。
匿名频道。 爱丽丝的 ISP 无法知道她向谁发送了消息,或者她是否访问过 SophistiCats 网站。
零知识证明。 爱丽丝可以向某人证明某事是真的,而无需透露她的证明是什么。
匿名授权。 SophistiCats 知道她是会员,当她访问其网站时,但它无法知道她的身份。此协议是零知识证明的特例。
秘密消息
密码学研究中最古老、最基本的问题之一是加密——如何在不安全的通道(对手可以在其上窃听的通道)上安全通信的问题。爱丽丝想给鲍勃发送一条消息,但伊芙控制着爱丽丝将使用的部分通道(通过公寓的网络)。爱丽丝希望鲍勃,而不是伊芙,能够阅读消息。
在分析这个问题时,首先要注意的是,鲍勃必须知道一些伊芙不知道的东西——否则伊芙将能够做鲍勃能做的任何事情。鲍勃的私人知识被称为他的密钥 (SK)。其次,请注意,爱丽丝必须了解鲍勃的 SK 的一些信息,以便她可以专门为鲍勃创建一个密文——加密消息。如果爱丽丝知道 SK 本身,则该协议称为密钥加密,这是一种已经为人所知和实践了几个世纪的加密类型。
1976 年,当时都在斯坦福大学的惠特菲尔德·迪菲和马丁·E·赫尔曼设想了另一种可能性,称为公钥加密,其中爱丽丝不需要知道 SK。她所需要的只是一个与 SK 相关的公共值,称为鲍勃的公钥 (PK)。爱丽丝使用他的 PK 加密她的消息,只有鲍勃可以使用他的 SK 解密生成的密文。伊芙也知道鲍勃的 PK 也没关系,因为她不能用它来解密密文。迪菲和赫尔曼提出了公钥的想法,但不知道如何实现它。一年后,当时都在麻省理工学院的罗纳德·L·里维斯特、阿迪·萨米尔和伦纳德·M·阿德曼给出了第一个公钥密码系统的构造:RSA 算法。
他们的算法适用于公钥加密,因为它涉及所谓的陷门函数。这种函数很容易计算以生成密文,但很难反转以恢复明文,除非使用特殊的“陷门”。陷门充当密钥。RSA 算法是具有陷门属性的函数的第一个示例。由于这项工作,他们获得了 2002 年图灵奖,这是计算机科学领域最负盛名的奖项。
RSA 的发现被誉为密码学的根本性突破,它推动了随后多年在加密和更广泛的密码学领域的研究。从寻找新的陷门函数,到研究支撑特定函数安全性的数学假设,再到精确定义加密系统被认为是安全的要求,加密方面仍然有很多艰苦的工作要做。
公钥加密使得在线购买商品成为可能,而无需在互联网上公开发送信用卡号等敏感信息。客户的 Web 浏览器扮演爱丽丝的角色,而网站扮演鲍勃的角色。更一般地说,大多数浏览器现在都支持的协议 https 使用公钥加密来提供通过加密通道进行的 Web 浏览——在 URL(网站地址)中查找“https://”以及浏览器状态栏上的闭合挂锁等图标。
许多人还使用公钥加密来保护电子邮件的安全。存在大量用于此目的的免费软件,包括 GNU 隐私保护软件包(可在 www.gnupg.org 获取),该软件包由自由软件基金会十年前首次发布。如果您不加密您的电子邮件,它会以易于阅读的形式在互联网上传输,并且可能会在沿途的各种硬盘驱动器上以该形式保留一段时间。
嗨,是我!
与加密问题密切相关的是身份验证问题。假设爱丽丝收到消息“爱丽丝,请给伊芙寄 100 美元。爱你的,鲍勃。”她如何知道这真的是她的男友鲍勃发来的,而不是伊芙伪造的?
正如在加密场景中一样,鲍勃必须知道一些伊芙不知道的东西,以便他(而不是伊芙)能够生成一条爱丽丝会接受的消息。因此,鲍勃再次需要一个密钥。此外,爱丽丝需要了解鲍勃的 SK 的一些信息,以便能够验证消息是否来自鲍勃。同样,存在两种协议:密钥身份验证(更常被称为消息身份验证代码)和公钥身份验证(通常称为数字签名方案)。迪菲和赫尔曼在提出公钥加密的同时,首次设想了数字签名方案,而使用 RSA 算法的方案是第一个构建的方案。
主要思想是鲍勃使用他的 SK 计算一个“签名”,他将其附加到他的消息中,然后爱丽丝或任何其他人使用他的 PK 验证它是否与消息本身匹配。爱丽丝知道消息一定是来自鲍勃,因为没有人拥有生成有效签名所需的 SK。
目前,很容易欺骗电子邮件客户端,使其认为消息来自鲍勃,而实际上它来自伊芙。欺骗性电子邮件可能包括虚假新闻报道和不正确的股票报价,从而欺骗人们做出违背他们最佳利益的行为。但是,如果所有电子邮件通信都经过身份验证,则这种攻击将是不可能的:您的电子邮件客户端将对所有外发消息进行数字签名,并验证所有传入消息的数字签名。身份验证还可以通过让服务器拒绝未经发送者身份验证的传入电子邮件来打击垃圾邮件。身份验证协议在 20 世纪 70 年代开发电子邮件时并不存在,并且那个时代的许多约定仍然盛行。
每个人都可以用来签署他们的电子邮件和验证签名的软件是免费提供的,例如,作为前面提到的 GNU 隐私保护软件包的一部分。
洋葱路由
通过加密您的消息,您可以防止 ISP(或任何其他窃听者)发现您发送和接收的内容,但不能阻止他们发现您与谁通信。例如,如果爱丽丝浏览戒酒互助会网站,她的 ISP 将会知道。想象一下,如果 ISP 将此信息出售给汽车保险公司。人们将不太可能在网上寻求帮助,因为他们会担心这会增加他们的保险费。
这个问题可以通过 SFE 解决:爱丽丝的私有输入将是她想查看的 URL,而她的私有输出将是她想看到的网页内容。然而,使用 SFE 将非常低效。1981 年,当时在加州大学伯克利分校的大卫·乔姆提出了一个更简单的解决方案,称为匿名频道,现在也称为洋葱路由。
顾名思义,爱丽丝将她的消息包裹在多层中。她使用不同人的公钥加密每一层(以及其中的所有内容),然后将该人的地址添加到该层的外部。从爱丽丝到鲍勃的消息可以按如下方式传播:爱丽丝将洋葱发送给马克,马克可以通过使用他的密钥解密洋葱的最外层来剥掉最外层。在里面,马克找到了一个更小的洋葱和丽莎的地址。他将该洋葱转发给丽莎,丽莎可以使用她的密钥解密它,依此类推。最后,鲍勃从某人那里收到洋葱核心,他解密它以找到爱丽丝的消息。
在实践中,中介机构是计算机网络的一部分,该网络设置为自动处理解密和转发。理想情况下,每个中介机构不断接收大量洋葱并以随机顺序转发它们。即使 ISP 一直在监视所有中介机构,它也无法知道爱丽丝的消息发送到哪里或鲍勃的消息来自哪里,前提是网络上有足够的洋葱流量。
鲍勃自己也不知道是谁发送的消息,除非爱丽丝选择在消息中透露她的身份。然而,即使她对他保持匿名,如果她包含一个“回复洋葱”,其中包含将消息路由回她所需的地址层和公钥,他仍然可以给她发送匿名回复。
即使一些中介机构泄露了关于他们正在做什么的信息,爱丽丝和鲍勃的消息仍然可以保持无法追踪。随着越来越多的参与者使用该系统并自愿将其计算机用作中介机构,就越难弄清楚谁在与谁交谈。
与电子邮件的加密和数字签名一样,任何人都可以使用免费软件通过匿名频道进行通信或作为中介机构参与其中。例如,洋葱路由器 (Tor) 项目可以在 www.torproject.org 找到。
私人登录
假设爱丽丝订阅了在线杂志《SophistiCat 美国人》。她通过匿名频道连接到该杂志,使用她的用户名和密码登录,并妥善保管所有传入和传出的消息都已加密。这是否意味着她可以放心,没有人会发现她在网上做什么?当然不是——该杂志确切地知道爱丽丝在做什么。
爱丽丝可能会尝试在使用假名订阅时掩盖她的踪迹,但这个假名用户的阅读习惯可能会很快指向爱丽丝的身份。她可能会透露她的邮政编码以查看天气预报,输入她的出生日期以查看她的星座运势,并通过阅读有关乳腺癌等主题来泄露她可能的性别。这三条信息——邮政编码、出生日期和性别——足以唯一识别 87% 的美国人口 [参见辛普森·L·加芬克尔的“世界信息,联合起来!”]。
令人惊讶的是,爱丽丝的问题有一个密码学解决方案,称为匿名授权。爱丽丝可以在每次访问该杂志的网页时向该杂志证明她是一个有效的订阅者。然而,这个证明并没有透露她是哪个订阅者——甚至没有透露,比如说,她是几个小时前访问它的人。该协议是更一般的零知识证明协议的特例。
通过零知识证明,爱丽丝可以说服鲍勃某个陈述是真实的,而无需透露它为什么是真实的,或者实际上,无需透露任何额外信息。为了证明“我是《SophistiCat 美国人》的授权用户”这一陈述,该在线杂志或第三方服务会在爱丽丝订阅时向她颁发唯一的凭据——类似于密钥的东西。每次该杂志随后对她提出质疑时,她都会使用该密钥来证明她拥有有效的凭据,而无需透露凭据本身。凭借来自各个机构的凭据,爱丽丝可以提供更复杂陈述的零知识证明,例如“我是授权用户并且已满 18 岁”。
在对页框中描述的场景中,说明了零知识证明如何工作的基本思想,其中爱丽丝向鲍勃证明她已以特殊方式为图表着色(技术上,她已“为图着色了三种颜色”),而没有向鲍勃展示她是如何着色的。为图着色三种颜色是一个所谓的 NP 完全问题 [参见斯科特·阿伦森的“量子计算机的局限性”,《大众科学》,3 月刊]。对于目前的讨论,关于“NP 完全”重要的是,您可以选择任何您拥有合理简短证明的陈述,并虚构爱丽丝和鲍勃的游戏版本,以给出您的陈述的零知识证明。
三种颜色着色协议演示了使零知识证明成为可能的原理,但它在实践中效率不高——类似于通用安全函数评估效率不高的方式。幸运的是,密码学研究人员针对特定类型的凭据开发了类似的协议,这些协议可以用于高效的匿名授权。
破解密码
安全有多安全?当爱丽丝将消息加密给鲍勃时,伊芙解密该消息有多难?如果伊芙有一些内幕知识或机会来试图玩弄系统会怎样?例如,她可能已经知道一些关于加密消息的信息——例如,它是爱丽丝和鲍勃第一次面对面见面的当地咖啡馆的名称。或者,如果“鲍勃”是一个安全的 Web 服务器,伊芙可能会发送精心选择的乱码来代替密文,并从其响应中了解有关其密钥的线索。公钥加密的广泛接受的安全定义涵盖了所有这些基础,并要求伊芙甚至不能获得一点可用信息。在其他方面,GNU 隐私保护软件包通过了测试。
分析密码系统的安全性是一门高度发达的科学。与普遍看法相反,密码学不是一场猫捉老鼠的游戏,其中一个系统被假定为安全仅仅是因为没有人展示如何破解它。相反,密码学的许多构建块都依赖于经过充分研究的数学问题。密码学家无法绝对肯定地证明这样的密码系统是牢不可破的,但他们确实证明,任何破解它的算法也会回答一个难倒了最优秀的数学家和计算机科学家的基本问题。
一些协议仅取决于特定类型的数学函数的存在。例如,密码学家知道如何从任何陷门函数构建公钥密码系统。因此,如果有人破解了 RSA 中使用的函数,则可以替换其他仍然有效的函数。
只有极少数情况下,一个方案被认为是安全的,更多的是临时性的。但这只是在世界各地数百名领先的研究人员对该算法进行了数年的研究之后才完成的。密码学社区只能负担得起对少数关键构建块执行该过程。然后,他们假设构建块的安全性来证明较大系统的安全性。有关密码系统安全性背后假设的更多信息,请访问 www.SciAm.com/sep2008。
密码学协议可以为看似不可能的隐私问题(例如匿名授权)提供出人意料的通用解决方案。但是我们面临的许多隐私问题在本质上似乎不是密码学的。如果爱丽丝在现实世界中受到持续监视,那么她的在线活动是安全的只是小小的安慰。在伦敦,摄像头已经在公共场所监视,以维护治安。也许,为了保护隐私,建筑物所有者可以管理来自其财产上摄像头的数据,并且 SFE 可以操纵数据,例如,跟踪离开犯罪现场的嫌疑人,而无需将其他所有人的活动存储在中央数据库中。更一般地说,当隐私受到公共监视等系统的威胁时,我们应该问问自己,该系统试图解决什么问题?我们能否通过在解决这些问题时使用密码学来保护我们的隐私?
注意:这个故事最初印刷时的标题是“如何保守秘密”。