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。

密码学应用的四个进化阶段相关推荐

  1. 密码学应用的四个进化阶段 | 博文精选

    作者 | kevin_in_zero 责编 | Carol 来源 | CSDN 博客 封图 | CSDN 下载自视觉中国 2009年区块链的出现,将密码学的商业价值提升到了前所未有的高度.但在我们看来 ...

  2. 【数据架构】Netflix 万亿级实时数据基础架构的四个创新阶段

    我叫徐振中.我于 2015 年加入 Netflix,担任实时数据基础架构团队的创始工程师,后来领导了流处理引擎团队.我在 2010 年代初对实时数据产生了兴趣,从那时起我就相信还有很多价值有待发掘. ...

  3. Spark SQL 工作流程源码解析(四)optimization 阶段(基于 Spark 3.3.0)

    前言 本文隶属于专栏<大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见大数据技术体系 目录 Spark SQL 工 ...

  4. XLNet模型第一作者杨植麟:NLP落地的四个技术阶段

    作者 | Recurrent.ai 来源 | RecurrentAI(ID:gh_0382adb3c10e) 近日,Recurrent.ai 联合创始人.XLNet 模型第一作者杨植麟,受邀在 CSD ...

  5. 一生必经的四个财富阶段?我给大家“五个字”和“两个提醒”!

    一生必经的四个财富阶段?我给大家"五个字"和"两个提醒"! 原创 雪球花甲老头 雪球花甲老头 2023-01-01 23:09 发表于北京 收录于合集#我对江湖 ...

  6. 密码学系列(四):整理世界性网络安全相关组织、企业的网站【持更】

    密码学系列(四):整理世界性网络安全相关组织.企业的网站[持更] 前言 各网站 Thales 泰勒斯 BI.ZONE RSA Unbound Security Fasso 富信 Intertrust ...

  7. 备战双十一购物狂欢节大促的四个重要阶段

    http://emarketing.hhczy.com/article/20131102/17086.shtml 随着前几年双十一活动的火热,特别是去年天猫双十一突破191亿销售额的历史大关,让双十一 ...

  8. 产品经理的四个重要阶段

    本文由作者 John西瓜 于社区发布 "产品经理的成长路径和产品生命周期是一样的." 和一些小伙伴沟通,在职(真)场(是)不(闲)得(的)意(慌)的时候,总会蹦出一句话:" ...

  9. 谈谈医疗行业数据治理的四个关键阶段【后附医院数据治理案例】

    数据是推动医疗行业的改进,驾驭不断变化的医疗行业环境的必要资源.它使医疗行业组织能够评估医疗的提供和支持方式.患者参与和教育的方式,以及支付者和提供者如何共同努力提高价值.但是医疗行业数据很复杂,而且 ...

  10. 测试必须要知道的四个主要阶段

    一.测试主要的四个阶段 1.测试计划设计阶段:产品立项之后,进行需求分析,需求评审,业务需求评级,绘制业务流程图.确定测试负责人,开始制定测试计划: 2.测试准备阶段:各成员编写测试用例.先小组内评审 ...

最新文章

  1. Python学习笔记(八)—使用正则获取网页中所需要的信息。
  2. linux服务器配置php mysql,Linux系统如何安装配置Apache+PHP+MySQL服务器环境
  3. ubuntu时区设置
  4. qchart 图表_Qt下绘制图表——QtCharts版
  5. namesapce的作用 增加访问路径 目的:区分不同包的相同action的访问路径
  6. swingbench oracle rac,使用Swingbench压力测试Oracle RAC
  7. 生产场景不同角色linux服务器分区案例分享
  8. 第四课 脱壳必备知识要点及方法
  9. python省市区三级联动_Ajax实现省市区三级级联详解
  10. 【python工具】获取linux和windows系统指定接口的IP地址
  11. projecteuler_problem12
  12. 嵌入式Linux开发与单片机开发的区别
  13. 【Unity3D】2D动画
  14. 雷赛服务器信号er020,伺服与雷赛控制卡配套的小技巧
  15. 西门子模块选择pdf_西门子S120变频器编码器模块的选择和配置
  16. 听大神砍市场与软件开发的那些事儿
  17. SVN提交出错--URL access forbidden for unknown reason
  18. SEO知识:百度谷歌搜狗谷歌必应搜索引擎蜘蛛的特点
  19. hive分隔符_hive分隔符总结
  20. html删除学生数据,对学生信息进行删除网页html代码.doc

热门文章

  1. 0x80070079信号灯超时_onedrive下载文件时,出现”0x80070079信号灯超时时间已到”...
  2. Latex:入门教程
  3. 编译原理-第一节(东南大学廖力老师)
  4. 无标度网络的C++代码实现
  5. UNITY 对话系统
  6. python pandas ewm 一次指数加权移动平均
  7. 2万字硬核剖析网页自定义字体解析(css样式表解析、字体点阵图绘制与本地图像识别等)
  8. NIST计划对量子加密进行众测
  9. Win10设置热点IP
  10. 求助微软商店下载的Ubuntu打开后显示目标路径参数错误,进入路径强制打开显示0x80070005错误。各种方法都试验了