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

Table of Contents

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

Crypto 2.0:公钥加密,无事先共享密钥的秘密通信

Crypto 3.0:区块链技术,半个虚拟TTP,无隐私互信社区

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



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的具体运作形态很多,包括:1)普通个人的信用贷款,抵押贷款;2)专业金融运作中错综复杂,多层嵌套的信用关系;3)国际贸易体系中的信用证体系,石油美元体系,SWIFT支付体系;4)二手房、二手车市场的中介服务,等等。不能难看出,构建TTP是一个社会成本极高的过程。“人”的道德风险无处不在,难以杜绝,因此不得不层层设防,构建复杂繁琐的监督机制,相互制衡,从而保证基本的合作秩序。

中本聪关于比特币的构想,试图在互联网上构一个完全不依赖于TTP的互信社区,而且相当于发行了一种无人管理的货币。对比一下美元这个国际货币体系,它要依赖于多少政治、经济、军事、文化、外交等等复杂社会结构加以支撑。而中本聪试图要用纯粹的计算机程序代替所有这些“社会要素”,不能不说是一个石破天惊的大胆设想。谁会相信它能成功呢?

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

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

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

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

TTP的主要功能有两个:1)保证各方行为合规;2)保护各方数据隐私。要理解这一点,只需要稍微观察几个具体的案例,例如证券交易所,商业中介机构,各类经纪公司,等等。而区块链技术(以中本聪的原始版本来理解)实际上只提供了第一点,而没有提供第二点。事实上,它正是通过数据的完全透明,来保障各方互信的。而且作为一般常识:数据透明与保护隐私这两个要求,本来就是自相矛盾的。如果大家都要求保护隐私,就意味着相互看不见对方的数据。此时,如果又没有一个“第三方作保”,大家怎么可能建立互信呢?要同时兼顾这两点,那肯定是天方夜谭了。

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

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

简单总结:区块链只能构建半个“虚拟TTP”,高等密码学可以构建完整的“虚拟TTP”。这当然是一个非常简化的说法,忽略了大量非常复杂而微妙的技术概念与内容。而且这些具体的技术内容本身,目前也正处在飞速发展之中。它的实际应用更是刚刚起步,我们还远远不能窥视其全貌,更不到能够“总结”的时候。但是我们想强调的是,隐私保护问题是区块链技术落地真实商业场景的瓶颈问题之一,而高等密码学正是从根本上解决这个问题的主要途径。

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

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

以上课程的回放链接:https://live.csdn.net/list/kevin_m_00

  • 14
    点赞
  • 26
    收藏
  • 打赏
    打赏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:1024 设计师:我叫白小胖 返回首页
评论 11

打赏作者

kevin_in_zero

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值