密码学应用的四个进化阶段

1578 天前
1286
区块链大本营


2009年区块链的出现,将密码学的商业价值提升到了前所未有的高度。但在我们看来,这仅仅是一个新时代的开始。

未来更为激动人心的故事仍在等待我们去发现。本文是作者对这个主题的一点观察与思考,欢迎大家一起讨论。

 

 SHAPE  \* MERGEFORMAT

Crypto 1.0:对称加密,有事先共享密钥的秘密通信

AB双方事先共享一个密钥k,A将需要传递的明文m,通过k加密为密文m*后,再传递给B。B收到密文m*后,通过密钥k将其解密还原为m。第三方C即便截获了密文m*,如果没有获得密钥k的话,将无法还原出m。

从古代起直到1970年代,这都是密码学的主要应用模式。它的里程碑之一是,1970年代美国将DES算法作为工业标准确立。它标志着经过多年的发展,也经过电子计算机的运用与检验,对称密码学达到了某种高度的成熟性。破解密码也变得非常困难。

但是这个体系也有一个较大的弱点,就是它永远要依赖于一个“事先共享的密钥”。要做到事先共享的密钥,可能需要一个成本较高的过程。例如AB双方可能距离很遥远,要通过某种方式传递密钥,同时保证传递的安全性(即不被第三方截获),很可能不是一件容易的事。

 

 SHAPE  \* MERGEFORMAT

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等等)。

 

 SHAPE  \* MERGEFORMAT

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年,参与者人数以千万计。它没有一个人类管理者,完全靠计算机程序来维持秩序。而且这个计算机程序本身,也没有事先设定的权威管理者。原则上说,任何人都可以自愿参加这个集体,成为集体管理的一份子,而且所有成员貌似也是平等的(由于各位玩家财富数量不同,而导致的实际影响力的差异,是个复杂而有争议的话题,我们这里暂时忽略)。这样一个群体能够稳定运行十年,这本身已经是一个奇迹。而支撑这个社会学奇迹的核心技术基础正是密码学。

区块链出现以前,密码学的主要应用是构建秘密通信体系。区块链的出现将密码学的应用领域大大拓展了,使之成为构建新型人类互信社区的核心技术力量。

 

 SHAPE  \* MERGEFORMAT

Crypto 4.0:高等密码学,无TTP互信社区,完全隐私

区块链对商业社会的巨大魅力,本质上在于它给人们以这样的希望,即:在商业合作关系中,通过某些计算机程序,构建出一个“虚拟可信第三方”(Virtual TTP),维护商业合作的有序运行,并由此摆脱(或大大降低)对“人类TTP”的高度依赖。区块链是否真能做到这一点呢?

TTP的主要功能有两个:

·      保证各方行为合规;

·      保护各方数据隐私。

要理解这一点,只需要稍微观察几个具体的案例,例如证券交易所,商业中介机构,各类经纪公司,等等。而区块链技术(以中本聪的原始版本来理解)实际上只提供了第一点,而没有提供第二点。事实上,它正是通过数据的完全透明,来保障各方互信的。而且作为一般常识:数据透明与保护隐私这两个要求,本来就是自相矛盾的。

如果大家都要求保护隐私,就意味着相互看不见对方的数据。此时,如果又没有一个“第三方作保”,大家怎么可能建立互信呢?要同时兼顾这两点,那肯定是天方夜谭了。

但是神奇的密码学再一次挑战了这个看似“不可能完成的任务”。自1980年代以来,密码学家们就已经发现了一些有点“不可思议”的概念与方法。经过近40年的深入研究与探索,发展出若干完整而强大的技术体系。只是由于没有恰当的应用场景,或者说商业社会的发展,还没有提出这方面的迫切需求,这些密码学尖端武器基本停留在论文或实验室阶段,而没有进入实用。

区块链的出现,以及由此引发的技术与商业创新浪潮,则完全改变了这个局面。那些在象牙塔里呆了30-40年的技术,正好成为解决“数据透明”与“隐私保护”这对矛盾的最佳工具。上述这些技术具体包括:零知识证明、同态加密、安全多方计算等等,有人称之为高等密码学,我们也姑且借用一下这个名称。

简单总结:区块链只能构建半个“虚拟TTP”,高等密码学可以构建完整的“虚拟TTP”。

作为上述理念的第一个大规模案例,第一个完全隐私的加密货币Zcash于2016年上线运行。Zcash可以理解为比特币的“隐私版”。比特币系统通过所有交易数据的完全透明化,实现了多方完全互信。而Zcash则要挑战一个技术难度大得多的目标:在所有交易数据完全相互保密的前提下,实现多方完全互信。而实现这一目标的核心技术,就是零知识证明。Zcash至今也已经稳定运行几年了,初步验证了其所用技术的可行性,为高等密码学技术的实用化,提供了一个重要参考案例。

高等密码学的实际应用,仍是一个处于起步阶段的技术领域。作者近期在“清华大学丘成桐数学科学中心2020暑期线上公开课:Cryptography and Blockchain” (时间为2020.07.06-31)上将与大家一起共同学习探讨相关课题。未来也希望有更多机会与大家共同探索,在这个富有潜力领域里,有更多的发现与收获。