发布时间:2019年2月21日
网络来源:币全
FENBUSHI DIGITAL×通证通研究院联合出品
文:宋双杰,CFA;唐皓
特别顾问:沈波;Rin
目录
1 公钥加密是什么——置之死地而后生
2 公钥加密的诞生——从军方到极客
2.1 军方起源——封存
2.2 民间起源——扩散
3 公钥加密的应用——密码朋克们的死亡圣器
3.1PGP——保守派分发的隐形斗篷
3.2阿萨辛·普利帝克(Assassination Politics)——激进派的老魔杖
3.3托管加密标准(EES)——大型中心体的复活石
4 公钥加密——不再是密码朋克们的专利
正文
1公钥加密是什么——置之死地而后生
为了保密,我们放弃了绝对的保密。
公钥加密又称非对称加密,生成的密码总是配对出现的,即私钥和公钥。公钥加密主要包括商业上使用最为广泛的RSA公钥加密算法;ECC(EllipticCurve Cryptography)椭圆曲线加密算法,比特币的私钥就是通过这一算法生成的;ElGamal算法等。在生成公钥和私钥时,这些算法采用的技术可能有所差别,但其核心思想基本是一致的,即——非对称加密。
公钥加密的思想始于上个世纪四十年代,随着互联网和计算技术的蓬勃发展,将这一思想转化成实践的需求和技术基础逐渐产生。
2公钥加密的诞生——从军方到极客
2.1 军方起源——封存
1973年,公钥加密诞生于英国政府通信总部(GCHQ)的实验室,但他们选择将其封存。
詹姆斯·亨利·埃利斯(James Henry Ellis)是一位英国密码学家,1952年就开始供职于GCHQ。1970年,由他起草的GCHQ CESG第3006号研究报告——非秘密数字加密的可能性研究(THE POSSIBILITY OF SECURE NON-SECRET DIGITAL ENCRYPTION)被普遍认为是最早的记录公钥加密思想的论文。
二战结束后,随着计算机和电信技术的出现,军事活动中使用无线电变得越来越普遍,于是,密钥分发中存在的问题变得更加严重。保证安全通信所需所有环节都不出问题俨然成为了军方面临的最棘手的问题。1960年以来,詹姆斯·亨利·埃利斯(James Henry Ellis)一直对此忧心忡忡,甚至一度认为这个问题是不可解决的。与当时大多数研究密钥分发问题者的共识一样,埃利斯赞同“如果密码需要在事先被共享,就不可能进行安全的秘密通信。”的观点。1970年,埃利斯的这一观点在他阅读了GCHQ的一篇内参文献后产生了动摇,这篇论文题为《C-43项目最终报告》(《Final Report on Project C-43》)。
《C-43项目最终报告》是一篇由英国贝尔实验室发布于1944年10月的论文。为了保护电话通讯不受监听,这篇论文提出了一个有趣而且理论上可行的想法,接听者Bob给信号添加噪音,而这个去除这个噪音的方法只有发信人Alice知道。至于窃听者Eve,她虽然截获了夹杂着噪音的信号,但并不知道如何去除噪音。虽然这一理论在当时仅仅停留在思想实验的层面,但无疑给了埃利斯重要的灵感——收件人也应该积极参与加密过程。至此,埃利斯已经看见了解决密钥分发问题圣杯的模糊轮廓。
埃利斯隐约意识到,这种噪音的添加和去除方式或许可以通过某种数学方式来实现,但由于他并非数学家,所以一直没能找到合适的函数的来实现这一操作。在苦思冥想了三年之后,情况终于出现了转机。
1973年,22岁的剑桥大学数学系毕业生克里福德·考克斯(Clifford Cocks)加入了GCHQ麾下的间谍机构。工作不到两个月,考克斯就无意间听闻了埃利斯的烦恼。这位充满好奇心的学者灵敏的察觉到,要实现这种功能的关键是找到一个单向的,不可逆的函数,而两个相当大的素数相乘恰好可以满足这一点。就算两个素数的位数超过一百位,以当时的计算机运算速度,把它们相乘以获得其乘积也仅需几秒钟时间。然而,若是想通过这个乘积倒推出这两个原始的素数是什么,则可能需要几百万年的时间。仅用一个午间休息的不到的时间,考克斯就设计完成了这个函数,这一函数使埃利斯的理论变为了现实。这一加密方法是如此的切合军事通讯的需求,它当即成为了GCHQ最重要的秘密之一。乘积即为公钥,而生成它的两个大素数的组合即为私钥。沿用埃利斯的命名,GCHQ将这一方法称之为非秘密加密(no-secret encryption)。
美中不足的是,房间大小的晶体管计算机的计算能力还不足以批量地通过运行单向函数将信息单向转化为加密数据。事实上,直到后来三位学者重新发明了这个方法并将其公之于众之前,GCHQ都未能将这一方法转化为实际产品。
2.2 民间起源——扩散
1976年,公钥加密第二次独立起源于旧金山湾区三位学者的公寓中,他们将其公之于众,打开了潘多拉的盒子。
与公钥加密在英国军方那里起源的过程类似,公钥加密在民间的起源同样分为两个阶段。
1976年11月,在电气和电子工程师协会杂志的一篇约稿中,迪福(Diffie)和海尔曼(Hellman)发表了令全世界的军方和间谍机构都不寒而栗的文章——《密码学中的新方向》。这篇论文描述了一个能够使他们习以为常的窃听再也无法使用的加密手段。在这篇文章指出,在电信通讯火如荼地扩展的历史背景下,新的密钥分发方式必不可缺,此外,传统纸质文件上墨水签名的替代物,单子文档上的电子签名也是必要的。在纸质文件上签字相当容易,认证是本人的签字也易如反掌,然而要伪造一个笔迹却是极其困难的。为了在即将到来的网络时代安全可靠地通信,人们需要的不仅是用于加密文件的“信封和火漆”,也需要电子邮件落款上的“签名”。他们在论文中给出了解决方案是:Diffie-Hellman密钥交换算法。然而,这套最初的公钥密码系统的使用方式比较崎岖。Diffie-Hellman密钥交换算法并不能加密文件,它只是保证通信双方能够在一个不安全的网络中安全地分发密钥,然后双方再用这个密钥来加密和解密文件。比起Diffie-Hellman密钥交换算法,这篇论文最重要的贡献在于其将公钥加密的点子暴露给同样为网络时代通信安全头疼的密码朋克们。
1977年4月,三位来自麻省理工大学的学者,Ron Rivest,Adi Shamir和Leonard Adleman阅读了迪福和海尔曼的作品。与二十世纪九十年代的密码朋克思潮中的保守派类似,他们想要维持纸质邮件时代人们在通信时的隐私和身份认证。立刻,他们就被公钥加密的想法迷住了。Rivest意识到,要实现公钥加密系统,即公钥加密,私钥解密需要一种不可逆的函数。陷入沉思之后往往无法意识到时间的流逝,在波士顿灯火辉煌的午夜中,Rivest突然顿悟到了大值素数相乘容易分解难单向性。学术三人组立刻开始行动。Rivest,Shamir和Adleman提出的算法利用了这种不对称因式分解的特征。用于加密的公钥包含了乘积; 用于解密的私钥则包含了两个素数。这样一来,即使在不安全的渠道上共享公钥也是安全的,因为暴力破解公钥极其困难。这种函数很容易执行,但几乎不可能反推。
以学术三人组的名字首字母命名的RSA加密算法被公布在了《科学美国人》杂志上,这篇论文将GCHQ苦心封存的史上最强加密算法公之于众。这意味着所有人,包括敌对势力以及本国的人民都有可能利用RSA加密算法在军方和政府麾下的间谍组织的眼皮子底下秘密地通信。可想而知,NSA和GCHQ此时是何等的如坐针毡。
二十世纪九十年代的密码朋克运动以及加密安纳其主义思潮证明,NSA和GCHQ的担忧并非风声鹤唳。
3公钥加密的应用——密码朋克们的死亡圣器
1977年,Rivest等三人发明了RSA算法后,为了阻止公钥加密等密码学知识的公开传播,NSA用尽了立法、威胁学术出版商、直接警告这三位密码学家等手段。对此,NSA官方的说法是:“不加以限制的公开讨论密码学将会引发具有现实性和致命性的危险,它将严重的削弱政府传输情报的能力,也会严重削弱政府从敌对团体的觊觎下保护涉及国家安全的信息的能力。”大洋彼岸的GCHQ甚至根据国际武器贸易条例将加密技术分类为高精尖武器,只为阻止加密技术的研究和扩散。
在接下来的近二十年中,英美的政府和军方无时无刻不在尝试控制民间对于密码学的研究和应用。而这些努力和1972年刚刚过去的水门窃听事件一起,使得民众心中对大型中心体的不信任逐渐生根发芽。
1993年,密码朋克运动的创始人之一埃里克·休斯在密码朋克运动纲领性文件《密码朋克宣言》中写道“在电子时代,对于开放的社会来说,隐私必不可少。隐私不同于秘密。隐私是某人不想公之于众的东西。而秘密,是他不想让任何人知道的东西。隐私是一种权力。它让某人有权决定公开什么,不公开什么。” 正式宣告了密码朋克通过密码学的手段保护个人网络隐私权运动的开始。正如战士以枪械为武器,文学家以笔杆为武器一样,公钥加密算法是密码朋克们最重要的武器。在从大型中心体手中为公众争夺隐私权的过程中,密码朋克们将公钥加密的力量发挥得淋漓尽致。
3.1 PGP——保守派分发的隐形斗篷
密码朋克中的保守派只是想在网络时代保持纸质邮件时代的原状而已。在PGP的保护下,一个人可以在任何大型中心体面前完全隐形。
PGP(Pretty Good Privacy)是第一款面向公众发行的开源邮件加密软件,其采用的公钥加密系统即使现在的技术也几乎不可能暴力破解。
1991年,最早的一批密码朋克之一,Philip R. Zimmermann在互联网上免费发布了一款名为PGP的邮件加密软件。在开发PGP前几年,在二十世纪80年代的科罗拉多,软件工程师Philip以一个全职军事政策分析员的身份在核武器冻结计划中工作。那时的世界局势与现在不同。里根还在白宫, 勃列日涅夫还在克里姆林宫, FEMA(联邦应急管理局)告诉市民随时做好撤退的准备, 无数的人们恐惧着世界将陷入残酷的核战争。百万的民众走到中央公园为和平而游行。在组织国内和平运动的过程中,因为反对军备竞赛和冷战,要求政府关闭核试验场,1984年,Philip在内华达州核武器试验场被捕。法庭上,他惊异地发现自己的邮件往来和通话记录在国家机器面前暴露无遗。于是在狱中,他下定决心,为所有互联网的使用者开发一款免费而且开源的邮件加密软件。出狱后,他立刻在家中开发起了PGP,与大部分密码朋克一样,在开发PGP的途中,他没有用于支持生活的资金来源,也没有任何一个助手的帮助。在1991年, PGP的第一个版本被公开发布,政府随即规定:出口或是公开密钥算法的产品被视为与私自出口或买卖军火同罪。Philip也非等闲之辈,利用美国宪法规定的言论自由,他通过书籍将PGP的源代码出口至世界各地。此举让美国政府相当不满,遂展开了对Philip长达三年的刑事调查,指控Philip违反了美国密码出口法律。最终,在众多开源团体和用户对Philip的坚决维护下,1996年,美国政府不得不撤销指控。
PGP采用了RSA公钥加密算法,虽然技术上没有较大的创新,但它是第一个将公钥加密算法带到普通人的生活中去的软件。有了PGP,即使是地球上最强大的国家机器,破解一个十几岁的孩子发送给同学加密邮件也无异于无法实现的梦想。
遗憾的是,使用PGP的人虽然至今依旧遍布全球,但占互联网用户的比例却始终非常稀少。一方面是PGP注重的是从政府手中保护网络用户的隐私权,一定程度上忽略了制作用户友好的UI;另一方面是很多网络用户并未意识到他们的隐私权时刻处于大型中心体的觊觎之下,他们普遍持有着一个错误的想法:“既然我登陆我的QQ邮箱要密码,那我发的邮件不就是加密的吗?”
3.2 阿萨辛·普利帝克(Assassination Politics)——激进派的老魔杖
密码朋克中的激进派想让网络提供的自由扩展到日常生活中,其手段可能是致命的。
阿萨辛·普利帝克(Assassination Politics),是吉姆·贝尔建立的一个利用了公钥加密技术的阿萨辛市场,从技术上讲,没有人给出赏金。事实上,它以“预言”的名义,使得成功执行任务的阿萨辛能够领到不菲的回报。
1992年8月,麻省理工大学的毕业生贝尔提出了一个让密码朋克之父迪姆森·梅(Timothy May)都觉得略显过分的可怕想法。贝尔提出了阿萨辛市场的概念,这是一个可以颁发现金奖励的组织,该现金奖励的获得者将是正确“预言”特定人员死亡的人。
贝尔认为,面对强大的大型中心体的侵犯,普通人几乎已经无计可施,所以在这种情况下,阿萨辛是一种合法的自卫方式。从这点上讲,公钥加密确实如同武器一般。若这套系统按贝尔想象的那样成功运行,网络中的由公钥加密保证的自由将延伸到日常生活中。届时,大型中心体中尸位素餐,贪污腐败的雇员将人人自危,苛捐杂税,横征暴敛的大型中心体将极大程度地收敛他们对公民自由侵犯的行为。战争也将不复存在,社会将在自治中稳步而自由地发展,世界将开启崭新而美丽的新篇章。
贝尔的阿萨辛·普利帝克系统的核心是一个愿望名单,这个愿望名单包含两个栏目。其中一栏是捐赠者希望看到的死讯的人的姓名,另一栏是这个姓名下已经累积的“捐款”。这个系统的参与者也有两类,一类是普通的捐赠者,他们将把“捐款”投放在他们愿意看到死讯的人的姓名下;另一类是“预言”者,他们会去“预言”姓名栏下的人死讯发出的日期,如果“预言”被证实,那么他将得到所有该目标名下所有的“捐款”。此外,为了防止“预言”者实际上并没有“预言”的能力,而是寄希望于猜对这个日期,“预言”者必须支付一定数量的“匿名支付型通证”,这一数额必须使得随机猜测变得不经济。
在贝尔看来,通过他设计的机制,绝对无法被攻破的公钥加密技术使得事实上的“雇佣阿萨辛”完全合法化。
“预测者”参与这个系统的过程分为两个部分。首先,“预测”者向组织发送一封邮件,整个邮件通过组织公开的公钥进行加密,也就是说只有拥有私钥的组织可以解密它。不过,在这个阶段,组织只能解密一部分内容——这个邮件中包含的匿名支付型通证,这些匿名支付型通证将被视作“预言”者并非胡乱猜测的诚意金。至于邮件中的另一个部分,其内容为“预言”的细节,即目标的姓名的死期,由“预测”者的公钥所加密,只有通过“预测”者的私钥才能解密,而目前组织并不知道“预测”者的公钥。通过这种方式,组织可以解密外部信封并找到匿名支付型通证,但他们不知道在最里面的信封中预测了什么,无论是名称还是日期。
在整个过程的第二个阶段,此时,某位大人物的死讯应该已经通过各种媒体发布了出来。即,“预测”者的“预言”成为了现实。预测者会向组织发送另一个加密的“信封”,其中包含先前“预测”信封的私钥和公钥,以及一个用于加密用作奖励的匿名支付型通证的新的公钥(为了侧重展示“预言”的实现前后的操作流程,示意图中省略加密奖励的过程)。组织将用新获得的私钥解密“预测”者的“预言”内容,当组织确认其日期和目标“预测”正确时,“预测者”即有权获得奖励。
在贝尔的十篇关于阿萨辛·普利帝克论文中,在每个‘predictor’字眼上,都加上了引号。毕竟,“要使一项预言成真,最好的方式就是去执行它”。据贝尔称,这一系统至少比传统的雇凶杀人有三点优势。
首先,它完全隐藏了“预测”者的身份,这使得任何潜在的“预测”者都不必透露他的名字或位置。其次,它允许“预测”者进行“预测”而不会泄露“预测”的实际内容,这一点保证了他的“目标”不可能得到他的意图的早期警告(并且失败的“预测”永远不需要透露)。事实上,除非他想要获奖,否则他永远无需透露他的预测。第三,它允许“预测”者匿名地将他的奖励授予他选择的任何其他人,因为他可以将此匿名支付型通证提供给任何人而不用担心它将被追踪。至始至终,即使逻辑上很有可能,“预测”者和凶手都不会因为这个系统的原因在物理上被联系起来。
随着匿名支付型通证的应用,贝尔疯狂的想法甚至已经成为了现实。由一名加密安那齐主义者在2013年创立了第一个实践化的阿萨辛·普利帝克系统。它利用贝尔的理论来接受捐赠并为“预测”成功的人发送奖励,它利用了密码朋克迪姆森·梅创立的暗网来隐藏自己的物理位置,并且利用了中本聪发明的BTC作为匿名的电子现金维持其激励体系。在该网站能够访问的期间,在其愿望清单上列出了美国前总统奥巴马,经济学家伯南克等著名公众人物。其原暗网网址为assmkedzgorodn7o.onion,不过在2015年后,即使借助Tor浏览器,我们也无法对其进行访问。但是可以肯定的是,继承着贝尔的思想开展着死亡“预言”服务的网站依然在暗网的某处存在着。
3.3 托管加密标准(EES)——大型中心体的复活石
既然无法阻止公钥加密的传播,那么不如去尝试主导它。——白宫1993.4
哈利波特系列中死亡圣器之一复活石拥有复活死者的力量,只不过,使用者在使用了复活石之后,死者将以介于灵魂和实体的形态,以违背使用者愿望地方式复活,使用者在复活了死者之后反而会受到精神上的折磨。
为了恢复自身监听公民通信的特权,联邦政府颁布了托管加密标准(EES),该标准涵盖了市面上所有统称为“Clipper芯片”的加密处理器。它旨在实现加密电信,特别是手机上的语音传输。这个标准的核心功能并非保护民众的通信安全,而在于内置于芯片中的窃听后门。
EES系统的基本功能在理论上很简单:当两个设备建立安全连接时,执法机构仍然可以掌握用于解密加密数据的密钥。通信虽然受到保护,但FBI依然可以在他们想要这么做的时候去阅读这些加密的邮件或者收听通信者的通话。
为了进行安全的电话呼叫,两个电话将首先建立所谓的会话密钥以加密对话。会话密钥可以解锁密文并显示明文。这个密钥是事先给定的。因此,NSA只需要找到一种方法,使“后门密钥”可供执法部门使用,而不会影响手机的安全性。为此他们保留了会话密钥的副本。会话密钥将使用烧录在加密芯片上的密钥来进行加密,这个密钥被称为“单元密钥”。“Clipper芯片”在被制造出来的时候,单元密钥就被烧录到芯片上,无法更改。单元密钥由联邦调查局和NSA共同保管,这样一来,当两个机构都认为有调查某一桩通信的必要时,它们就有能够调用可以破解加密信息的备用密钥。在白宫看来,ESS不仅为美国人提供了安全的电信服务,也让执法机构在必要的时候能够轻松地进行窃听。
密码朋克们对于一个政府被允许持有所有密钥副本感到非常愤怒。“是不是说,有了这个芯片,希特勒和希姆莱就可以利用‘单元密钥’来确定犹太人与谁交流,从而确保他们就可以被赶尽杀绝?”密码朋克之父迪姆森·梅提出了质问。
1994年,密码朋克布赖茨(Blaze)对EES发出了一记死咒。布赖茨供职于 “Clipper芯片”的一家供应商,AT&T。借职务之便,他发现“Clipper芯片”上存在一些缺陷,这些缺陷导致“单元密钥”相当容易受到篡改。他在1994年8月的一篇著名的论文中发表了他的研究结果。这样一来,密码朋克们只要重写“单元密钥”,“卡密破”就只有加密通话的功能了,执法部门拿着失效的“单元密钥”对于那些加密了的通信只能望洋兴叹。EES对联邦政府监听特权的复活并没有持续太久,整个项目没能撑到1994年的圣诞节就被砍掉了。不仅如此,EES事件还留下了别的恶果。
联邦政府重新复活监听民众隐私权利的努力无异于投向密码朋克圈子的一枚重磅炸弹。事后回顾这段历史时,我们甚至可以认为EES是密码朋克运动一直以来等待的一个重要的契机,它成为了密码朋克运动的重要催化剂,加深了社会各界对大型中心体的不信任,无异于联邦政府用于自裁的利刃。
4公钥加密——不再是密码朋克们的专利
与密码朋克们的其他许多天才创建一样,公钥加密技术已经深入了我们的日常生活。
应用发行商在发布程序时,一定会对其发行的应用程序进行数字签名。这样一来,用户在利用手机或电脑安装这个程序时,设备会自动检测这个程序是否真的是该应用发行商发行的。这样就可以防止某些别有用心的人在程序安装包中植入恶意代码。
开发者在支付宝旗下的蚂蚁金服平台上创建生活号时也必须通过RSA算法生成私钥和公钥以保证账号的安全。当用户在使用这些服务时,其实已经享受到了公钥加密算法带来的安全保障。
附注:
因一些原因,本文中的一些名词标注并不是十分精准,主要如:通证、数字通证、数字currency、货币、token、Crowdsale等,读者如有疑问,可来电来函共同探讨。