简述密码学应用四阶段:对称加密、公钥加密、区块链与高等密码学
2009 年区块链的出现,将密码学的商业价值提升到了前所未有的高度。但在我们看来,这仅仅是一个新时代的开始。
未来更为激动人心的故事仍在等待我们去发现。本文是作者对这个主题的一点观察与思考,欢迎大家一起讨论。
Crypto 1.0:对称加密,有事先共享密钥的秘密通信
AB 双方事先共享一个密钥 k,A 将需要传递的明文 m,通过 k 加密为密文 m*后,再传递给 B。B 收到密文 m*后,通过密钥 k 将其解密还原为 m。第三方 C 即便截获了密文 m*,如果没有获得密钥 k 的话,将无法还原出 m。
从古代起直到 1970 年代,这都是密码学的主要应用模式。它的里程碑之一是,1970 年代美国将 DES 算法作为工业标准确立。它标志着经过多年的发展,也经过电子计算机的运用与检验,对称密码学达到了某种高度的成熟性。破解密码也变得非常困难。
但是这个体系也有一个较大的弱点,就是它永远要依赖于一个「事先共享的密钥」。要做到事先共享的密钥,可能需要一个成本较高的过程。例如 AB 双方可能距离很遥远,要通过某种方式传递密钥,同时保证传递的安全性(即不被第三方截获),很可能不是一件容易的事。
Crypto 2.0:公钥加密,无事先共享密钥的秘密通信
1970 年代初,计算机网络通信技术已经开始在美国出现(虽然没有大规模普及)。这使得秘密通信中的密钥交换问题,开始成为一个更迫切真实的需求。假设 AB 双方没有事先共享密钥,他们能否通过一段对话,产生出一个共享密钥,同时让截获整个对话过程的第三方 C 无法猜出这个密钥呢?这听上去像是一个「不可能完成的任务」。但是在 1974-1976 之间,美国密码学研究者 Diffie 与 Hellman 经过两年左右的艰苦探索,找到了这个问题的一个解决方案,发表了 Whitfield Diffie and Martin Hellman, New Directions in Cryptography,1976。
上述论文同时提出了一个更强大的构想,即公钥密码体系。它的想法是要有一对密钥(k1, s2),其中一个用于加密,另一个用于解密。具体说,A 方有一对密钥,公钥 pk,私钥 sk。A 可以将公钥 pk 向全世界公开。这样任何一个 B 方(可能此前与 A 方并不认识)都可以把一个明文 m 通过公钥 pk 加密为 m*,然后发送给 A。A 获得 m*后,通过密钥 sk 将其解密还原为 m。第三方 C 即便截获了密文 m*,如果没有获得密钥 sk 的话,将无法还原出 m。只要 A 保管好自己的私钥,就是安全的。
Diffie 与 Hellman 提出了上述构思,但是没有找到具体的实现方案。1978 年,Ronald L. Rivest, Adi Shamir, and Leonard M. Adleman, A Method for Obtaining Digital Signatures and Public Key Cryptosystems 这篇论文提出了 RSA 算法,第一次具体实现了公钥密码体系。
公钥密码的发现,或许是密码学自古代到 1970 年代以来最大的突破。它完全解决了共享密钥的难题,而这也正是网络时代所需要的。20 多年后,它成为新兴的互联网电子商务的核心技术基础之一(SSL/TLS,https 等等)。
Crypto 3.0:区块链技术,无 TTP 互信社区,牺牲隐私
密码学应用的下一个里程碑是区块链的出现。中本聪的开创性论文,Satoshi Nakamoto et al., Bitcoin: A peer-to-peer electronic cash system(2008),并不包含密码学上的新成果。但它通过对密码学的巧妙运用,得到了一个革命性的工程设计方案。它着眼于人类组织管理上的重要问题,并给出了一个创新的解决办法,从而为构建未来新型社会组织形态,打开了巨大的想象空间。
基本的问题是:有一个人群,相互之间不能完全信任,但是又需要在一起合作,该怎么办?在人类社会中,除了家庭和极个别理想的关系外,几乎所有其它人类关系形态,特别是各种商业性的合作关系,都存在「信任」这个重要问题。由此自然产生了对「可信第三方」(TTP)的需要。比如在古代,两个人要相互借钱,就可能需要找一个有地位有威望的第三方来做保。在当今社会中,TTP 的具体形态可以是:政府部门、中介机构、交易所、增信 / 担保机构、公证机构、批发商 / 零售商,等等。
TTP 的具体运作形态很多,包括:
普通个人的信用贷款,抵押贷款;
专业金融运作中错综复杂,多层嵌套的信用关系;
国际贸易体系中的信用证体系,石油美元体系,SWIFT 支付体系;
二手房、二手车市场的中介服务,等等。不能难看出,构建 TTP 是一个社会成本极高的过程。「人」的道德风险无处不在,难以杜绝,因此不得不层层设防,构建复杂繁琐的监督机制,相互制衡,从而保证基本的合作秩序。
中本聪关于比特币的构想,试图在互联网上构一个完全不依赖于 TTP 的互信社区,而且相当于发行了一种无人管理的货币。对比一下美元这个国际货币体系,它要依赖于多少政治、经济、军事、文化、外交等等复杂社会结构加以支撑。而中本聪试图要用纯粹的计算机程序代替所有这些「社会要素」,不能不说是一个石破天惊的大胆设想。谁会相信它能成功呢?
但是,比特币初步成功了。自 2009 年上线以来至今,它基本有序地运行了 10 年,参与者人数以千万计。它没有一个人类管理者,完全靠计算机程序来维持秩序。而且这个计算机程序本身,也没有事先设定的权威管理者。原则上说,任何人都可以自愿参加这个集体,成为集体管理的一份子,而且所有成员貌似也是平等的(由于各位玩家财富数量不同,而导致的实际影响力的差异,是个复杂而有争议的话题,我们这里暂时忽略)。这样一个群体能够稳定运行十年,这本身已经是一个奇迹。而支撑这个社会学奇迹的核心技术基础正是密码学。
区块链出现以前,密码学的主要应用是构建秘密通信体系。区块链的出现将密码学的应用领域大大拓展了,使之成为构建新型人类互信社区的核心技术力量。
Crypto 4.0:高等密码学,无 TTP 互信社区,完全隐私
区块链对商业社会的巨大魅力,本质上在于它给人们以这样的希望,即:在商业合作关系中,通过某些计算机程序,构建出一个「虚拟可信第三方」(Virtual TTP),维护商业合作的有序运行,并由此摆脱(或大大降低)对「人类 TTP」的高度依赖。区块链是否真能做到这一点呢?
TTP 的主要功能有两个:
保证各方行为合规;
保护各方数据隐私。
要理解这一点,只需要稍微观察几个具体的案例,例如证券交易所,商业中介机构,各类经纪公司,等等。而区块链技术(以中本聪的原始版本来理解)实际上只提供了第一点,而没有提供第二点。事实上,它正是通过数据的完全透明,来保障各方互信的。而且作为一般常识:数据透明与保护隐私这两个要求,本来就是自相矛盾的。
如果大家都要求保护隐私,就意味着相互看不见对方的数据。此时,如果又没有一个「第三方作保」,大家怎么可能建立互信呢?要同时兼顾这两点,那肯定是天方夜谭了。
但是神奇的密码学再一次挑战了这个看似「不可能完成的任务」。自 1980 年代以来,密码学家们就已经发现了一些有点「不可思议」的概念与方法。经过近 40 年的深入研究与探索,发展出若干完整而强大的技术体系。只是由于没有恰当的应用场景,或者说商业社会的发展,还没有提出这方面的迫切需求,这些密码学尖端武器基本停留在论文或实验室阶段,而没有进入实用。
区块链的出现,以及由此引发的技术与商业创新浪潮,则完全改变了这个局面。那些在象牙塔里呆了 30-40 年的技术,正好成为解决「数据透明」与「隐私保护」这对矛盾的最佳工具。上述这些技术具体包括:零知识证明、同态加密、安全多方计算等等,有人称之为高等密码学,我们也姑且借用一下这个名称。
简单总结:区块链只能构建半个「虚拟 TTP」,高等密码学可以构建完整的「虚拟 TTP」。
作为上述理念的第一个大规模案例,第一个完全隐私的加密货币 Zcash 于 2016 年上线运行。Zcash 可以理解为比特币的「隐私版」。比特币系统通过所有交易数据的完全透明化,实现了多方完全互信。而 Zcash 则要挑战一个技术难度大得多的目标:在所有交易数据完全相互保密的前提下,实现多方完全互信。而实现这一目标的核心技术,就是零知识证明。Zcash 至今也已经稳定运行几年了,初步验证了其所用技术的可行性,为高等密码学技术的实用化,提供了一个重要参考案例。
Scan QR code with WeChat