前言
在最开始接触区块链时,我只是因为密码学在区块链中很重要,就去查询了一些密码学相关的术语、应用以及发展。最后才发现,密码学其实更像是故事的起点。
在此次分享准备前,我先去了解了一下密码学的历史。下面我们就从公元前的事讲起吧。
一、很久很久以前
大约在公元前1900 年(相当于古代中国的大禹时代),古埃及的一位石匠在主人的墓室石墙上刻下了一段象形文字。这段描述他的贵族主人一生事迹的文字,被西方密码专家认为是密码学的开端,因为其中一些常用字的符号被几个少见的符号所代替了,就如同古典密码学中被称为“替换法”的加密方法。
西方学者的这种说法有点牵强,因为这位石匠这样做并不是为了对文字内容保密,而是出于对主人的尊敬和追求文字表达的艺术性。
其实,古代中国也有着在文字上为帝王和尊长避讳的悠久传统。比如,汉文帝名叫刘恒,于是把“恒娥”改名“嫦娥”,把“恒山”改为“常山”,齐国权臣“陈恒”于是也就成了“田常”。这样类似的例子还有很多,这里就不一一例举了。
虽然古代中国使用这些关于帝王的文字避讳不是为了保密,而是为了表示对皇权的敬畏。但这些避讳也可以和密码学中的“替换法”联系起来。事实上,确实有很多人不了解这些避讳的文字替换法,因此对书中的内容产生了误解,就像文字被加了密一样。从某种意义上来说,这些避讳也可以称为中国古代社会的密码。
二、密码学在古代中国军事中的应用
从古至今,密码最常用于军事。正如《孙子兵法》中所说:知己知彼,百战不殆;不知彼而知己,一胜一负;不知彼不知己,每战必败。
大家或多或少,可能都听说过“阴符”和“阴书”这两个词吧。
据说是姜子牙所著的中国古代兵书《六韬》,其中就讲述了君主如何在战争中与在外的将领进行保密通信。这其中就提到了阴符和阴书。在今天看来,“阴符”和“阴书”就是后来密码学中的“密码”和“密文”。
《孙子兵法》 来自:Flickr 图片作者:CHRISTO DRUMMKOPF阴符
武王问太公说:领兵深入敌国境内,军队突然遇到紧急情况,战事或有利,或失利。我要与各军远近相通,内外相应,保持密切的联系,以便及时应对战场上军队的需求,应该怎么办呢?
太公回答说:国君与主将之间用阴符秘密联络。阴符共有八种:一种长一尺,表示大获全胜,摧毁敌人;一种长九寸,表示攻破敌军,杀敌主将;一种长八寸,表示守城的敌人已投降,我军已占领该城;一种长七寸,表示敌军已败退,远传捷报;一种长六寸,表示我军将誓死坚守城邑;一种长五寸,表示请拨运军粮,增派援军;一种长四寸,表示军队战败,主将阵亡;一种长三寸,表示战事失利,全军伤亡惨重。如奉命传递阴符的使者延误传递,则处死;如阴符的秘密被泄露,则无论无意泄密者或有意传告者也处死。只有国君和主将知道这八种阴符的秘密。这就是不会泄露朝廷与军队之间相互联系内容的秘密通信语言。敌人再聪明也不能识破它。
阴书
武王问太公说:领兵深入敌国境内,君主和将帅各率一军,要使两支军队配合作战,实施变化无穷的作战方法,谋取敌人意想不到的胜利。但需要联络的事情很多,使用阴符难以说明,而两军之间又距离遥远,言语不能通达,应该怎么办呢?
太公回答说:如果有军机大事需要联络,应该用书信而不用符。君主通过书信向主将指示,主将则通过书信向君主请示。书信都要拆分成三部分,并分派三人发出,每人拿一部分。只有这三部分合在一起才能读懂信的内容。这就是所谓的阴书(机密信),敌人再聪明,也看不懂这种书信。
不仅如此,北宋仁宗时期,成书于1040 年—1044 年的一部官修的兵书《武经总要》,其前集第15 卷中有“符契”、“信牌”和“字验”三节,专门讲述军队中秘密通信和身份验证的方法。
虎符 来自 Wikimedia Commons 图片作者:Antolavoasio看过古装剧的朋友,对“虎符”这个名词应该不算陌生,它们是调用军队的凭证。符”通常做成两部分,使用时一分为二,验证时合二为一;只有同一符的两部分才能完美地合在一起。顺便说一下,这也是“符合”的来历。 现代密码学中,运用公钥、私钥体系进行身份认证的方法也与“符”相通。
在明末清初,著名的军事理论家揭暄的《兵经百言》,用100 个字条系统阐述了中国古代的军事理论。其中的“传”字诀则是古代军队通信方法的总结。
三、密码学在古代西方的应用
大约在公元前700 年,古希腊军队用一种叫做Scytale的圆木棍来进行保密通信。使用方法是:把长带子状羊皮纸缠绕在圆木棍上,然后在上面写字;解下羊皮纸后,上面只有杂乱无章的字符,只有再次以同样的方式缠绕到同样粗细的棍子上,才能看出所写的内容。
密码棒 来自 Wikimedia Commons 图片作者:Luringen这样的方式,有着快速且不容易解读错误的优点,使它在战场上大受欢迎。但是它很容易就被破解了。
2100 年前,古罗马的执政官和军队统帅恺撒发明了一种把所有的字母按字母表顺序循环移位的文字加密方法。比如我按字母表顺移3 位的话,那么SCRY就成为了VFUB。从密码学角度来看,恺撒加密法属于“单字母表替换”加密,这种替换方法非常简单。如此以来,也非常容易破解。事实上,直到二战结束,西方所使用的加密方法大多都还属于“字母表替换”加密,只是替换的规则越来越复杂而已。
从15 世纪中叶起,欧洲人开始研究各种“多字母表替换加密”方法,即信文中同一个字母在不同的位置上会有不同的替换符号。其中最有名的当属“维吉尼亚加密术”(Vigenère Cipher)。
这样的例子还有很多,也不一一例举了。
四、传统密码学的基本知识
到第一次世界大战结束为止,算是传统密码学的一个分界线了。这里我们来梳理一下此前的加密法知识。
1、换位加密法
换位加密法是指在加密的过程中不改变字或字母本身,只改变它们的排列或阅读顺序,以达到加密的目的。古代西方人有时会把单词或者句子倒序来写,这也算是换位加密。比如把TOWARDS A BLOCKCHAIN SCIENCE OF HUMAN BEINGS写成SGNIEB NAMUH FO ECNEICE NIAHCKCOLB A SDRAWOT
2、替换加密法
替换加密法就是不改变信文中字或字母的顺序,而是用其他的符号来替换它们,以此达到加密的目的。比如我们之前提到的恺撒密码。
五、机器密码时代
机器密码 来自 Wikimedia Commons 图片作者:OS第二次世界大战期间,密码学的发展远远超过了以往任何时代。在技术、理论以及应用上,都发生了革命性的变化。
我们先来看技术方面的变化。基于机械和电气原理的加解密装置全面取代了以往的手工密码。如此一来,大大提高了加密解密的速度的同时,密码的复杂度也得到了极大的提高,用传统的手工方法已不可能破解这些机器密码。
另外,密码的进化也促进了解密的发展。破解密码也实现了机械化和电气化,甚至开始使用电子计算机,使得破解密码的效率大大提高。人类从此进入了机器密码时代。
我们再看理论方面的变化。大量的数学和统计学知识开始被应用于密码的分析和破解,并获得了极大的成功。于是,越来越多的数学家不断加入密码队伍,取代了国际象棋冠军、纵横字谜高手和通晓多国语言的专家等,成为密码战场上的主力军。
其次,是密码学在应用上的变化。参战各国都认识到了密码在战争上的关键性作用,便纷纷研制和采用最先进的密码设备,建立最严密的密码安全体系。
不仅如此,各国还投入了大量的人力和物力,集中最优秀的密码学专家,想方设法破解敌国的密码。比如,在《英国情报组织绝密行动》中写到,英国国家通信情报局的前身就是第一次世界大战时期的两个密码破译机构——英国海军情报部的“第40号房间”和英国陆军军情一处B科。1919年,这两个单位合并为政府密码学校
这个时期,发生过很多可以称之为传奇的事件。电影《模仿游戏》就讲述了一段平凡之下却又充满魅力的故事。二战期间,德国发明了一种看似不可破译的密码“ENIGMA,在整整 13 年里,英国人和法国人都认为ENIGMA 是不可破译的。
为此,英国政府成立了一个新的机构——英国政府密码学校(就是上面说的那个),召集了一批民间数学家、逻辑学家进行秘密破解工作,图灵就是其中之一。他率领着大约200多名精干人员进行密码分析,通过两年努力,掌握了破译该密码的一整套方法,从而了解了德军的动向,掌握了战争的主动权,为英美联军击败德国做出了突出贡献。没看过的朋友,有时间可以去看一下这部电影。
六、信息时代的密码学
第二次世界大战时期的密码学经历了历史上前所未有的一场革命。这场革命几乎颠覆了传统密码学中所有的理论和方法,从而迎来了机器密码的时代。然而谁也想不到,曾经如此辉煌的机器密码时代,竟然在第二次世界大战结束后不久,很快就终结了。
世界第一台计算机:Eniac 来自:美国联邦政府上世纪50年代开始,计算机技术突飞猛进,其超强的计算力,一时间让所有的机器密码都变得不堪一击。
另外,1948年,美国通信专家香农创立了信息论,人们知道了所有的图像、文本、声音、视频信息,都可以转换成数字形式,从而可以用功能强大的计算机来处理。到了上世纪70年代,美国政府已经拥有大量数字化的计算机文件(如今,数字化文件的数量已远远超过了传统纸质文件。Data Age 2025预计,2025年全球产生的数据量将达到175ZB,全球数据量将达到前所未有的高度。)如何保证那些机密的计算机文件不被偷看、窃取和篡改?这是计算机时代密码学的一个全新任务。
下面,将要讲到的就是DES和AES数据加密算法的故事。
1、DES(数据加密标准,Data Encryption Standard)
刚刚说到美国政府已经积累了大量的数字化文件。为了它们的安全性,美国国家标准局同美国国家安全局商量后,在1973年5月15日公开征求能满足一系列严格要求的计算机数据加密方案。可是最后征集到的方案没有一个满意的。于是美国国家标准局在1974年8月27日再次发出征求加密算法的公告。这一次,IBM提交了一种算法,并得到了美国国家标准局的任珂。在适当改进后,以“数据加密标准”(Data Encryption Standard)的名称对外公布,这就是著名的DES。
DES 是第一个处理计算机数字化文本加密的标准算法。在当时技术条件下,这是一种安全性高、速度快、使用方便的算法。
不过任何一个加密算法,都可能会有安全性问题。而且DES的安全性问题从一开始就有争议。因此,计算机专家和密码学专家对DES的安全性极为关注,很多人设计了攻击它的种种理论方案,但在 DES 公布后的 20 多年内,并没有人能够实际攻破它。不过这些研究,倒是为推动了现代密码学的发展做出了很大的贡献。
不过有些事情总是有些戏剧性的。DES被破解就刚好是一例。
DES破解机 来自:Wikimedia Commons 图片作者:Platonides1997年,RSA计算机安全公司悬赏1万美元奖励首位破解DES密文的人。谁知TM才过5个月,就被一个名叫“挑战DES”的团队破解了。1998年,“电子前沿基金会 EFF”,一个旨制造的“DES 破解机”(DES Cracker),花了56个小时成功破解DES。1999年,DES破解机花了22小时15分钟再次攻破DES。从此以后, DES不再安全。
2、AES(高级加密标准,Advanced Encryption Standard)
于是,在1997年1月2日,美国国家标准与技术研究院(前身就是那个美国国家标准局),宣布征集一个新的加密方案,以取代 DES。新方案将被称为“高级加密标准”(Advanced Encryption Standard,AES)。在密码学界广泛参与的情况下,历时三年,由比利时密码专家德门和莱曼设计的方案Rijndael被选中为“高级加密标准”,AES就这样问世了。
AES有三个不同的版本:AES-128、AES-192和AES-256,分别具有128比特、192比特和 256 比特密钥长度,满足了不同等级的安全需求。
不过和DES一样,刚出来,对其安全性的研究就成为了热点。各种方法层出不穷,就连AES的发明者之一莱曼也参与了进来。
七、密码学的新方向
1、公钥密码系统的提出
后来因为因特网的发展,对于网络通信的安全亟需解决。
1976年,美国斯坦福大学电气工程系的研究员迪菲和教授赫尔曼联名发表了划时代的论文《密码学的新方向》。文中说明了公共计算机网络通信安全的根本问题,还提出了解决问题的革命性方案。
网络通信有两大安全问题,那就是保密和认证。而解决方案就是“公钥密码系统”
2、RSA的提出
后来,在1978年,美国麻省理工计算机科学实验室的三位研究员里维斯特(Ronald L.Rivest)、沙米尔(Adi Shamir)和艾德莱曼(Leonard Adleman),联名发表了题为《获得数字签名的方法与公钥密码系统》的论文,该文首次提出了一种能完全实现迪菲-赫尔曼公钥密码系统功能的实用方法,后被称为“RSA方法”。
可为什么叫RSA呢?你看我这次没有给出全称。细心的朋友可能发现了,RSA是三位作者姓的首字母(不然我为什么突然在人名后加了英文名)。
3、ECC的提出
RSA提出后,人们才发现原来密码学还可以这样搞,于是一系列更加高深的数论和代数学工具开始被用于密码学领域。
1985年,美国数学家柯布利兹和米勒各自独立地提出了一个利用有限域上椭圆曲线解的Abel群结构性质的公钥密码系统,这就是“椭圆曲线加密法”(Elliptic Curve Cryptography,ECC)。
八、现在还是未来
来自:Pixabay 图片作者:Free-Photos直到现在,DES、AES、RSA、ECC等各种各样的加密算法依然应用于我们的生活中。有人担心量子计算机会对目前的密码学造成极大的冲击,让全球应用“传统”加密算法的系统彻底地暴露在人们眼前,可又有人说量子密码算法不是已经在研究了吗,美国国家标准技术研究所NIST也在进行后量子密码算法征集了啊?
人类对于加密算法的探索从未止步,无论是因为艺术、军事政治还是商业需求的原因。不过正因如此,我们的加密算法才能遍地开花。
量子通信又或者是量子加密算法,如星空般深邃的,它们究竟会以何种姿态惊艳这颗蓝色星球上的人类,这是现在,也是未来。让我们拭目以待。
网友评论