【技术分析】起源——区块链中的密码学(1)



      前言:谈区块链离不开密码学。通常来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点公式算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。区块链的核心是它按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。我们对此做一个总结,可以发现区块链中有四项不可缺的核心技术,分别是分布式存储、共识机制、密码学原理和智能合约。而今天我们将主要从密码学的角度聊一聊区块链的起源问题。

 

【恺撒密码】


      密码学作为一门古老的学科,有着悠久而奇妙的历史。它用于保护军事和外交通信可追溯到几千年前文字刚刚产生的上古时期。几千年来,密码学一直在不断地向前发展。而随着当今信息时代的高速发展,密码学的作用也越来越显得重要。它已不仅仅局限于使用在军事、政治和外交方面,而更多的是与人们的生活息息相关:如人们在进行网上购物,与商务交流,使用信用卡等等,都需要密码学的知识来保护人们的个人信息和隐私,当然对于我们关注的区块链技术,密码学作为其基石而存在。


      凯撒(Caesar)是第一个把替换密码用于军事用途、并且记录下来的人。在他的那本歌颂自己丰功伟绩的《高卢记》里,凯撒描述了他把密信送到正处于围困之中、濒临投降的西塞罗手中。凯撒非常喜欢使用密文,后世的《凯撒传》详细地记录了凯撒使用的一种密文。而这种加密方法,甚至沿用到今天。


      凯撒密码的表示方法是:将每个字母,用字母表中这个字母之后三位的那个字母替代。它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推。也就是字母A用字母D替代,字母B用字母E替代。比如Abroad,凯撒在用密文写信的时候,就被替换为Deurdg。这样就得到了敌人看不懂的密文。


      假如有这样一条指令:

      RETURN TO ROME


      用恺撒密码加密后就成为:

      UHWXUQ WR URPH


      如果这份指令被敌方截获,也将不会泄密,因为字面上看不出任何意义。


      现在看来这种加密方式可能稍显幼稚,但作为历史上文字记载的最早使用加密密钥的案例:由发件人和收件人共享加密密钥,标志了现代密码学的发端。可以说,从凯撒密码,到20世纪公共密钥被发明之前的这几千年时间里,密码学的原理都是一样的。比特币和区块链的加密方式,跟凯撒密码的原理区别,也就是多了公钥而已。直到今天,我们在看很多谍战片的时候,会发现不少特工和间谍还是采取这种方式传输情报。


      这里有几个术语,需要特别指出。密码学家通常讲用来书写原始信息的字母表,也就是正常的字母表,称为明码表;而用来替换明码字母的称为密码表。这也是密码这个词的来历。那么往后移动三位,这个“三”则被称为密钥。当然,学过数学的人都明白,这里有26个字母,仅仅按照顺序移动,每个字母就有25个不同的替代方式,即25种密钥,要是把字母顺序打乱,密钥就更多了。算法则是通过各种尝试,破译密码的过程。


      可以想象,在公元前100年左右,也就是相当于中国的西汉时期,要想破译凯撒的密码,那可能性几乎为零。在密码学中,恺撒密码是一种最简单且最广为人知的加密技术。恺撒密码还在现代的ROT13系统中被应用。但是和所有的利用字母表进行替换的加密技术一样,恺撒密码非常容易被破解,而且在实际应用中也无法保证通信安全。

 

【多表代换】


      最早的古典密码体制主要包含单表代换密码体制和多表代换密码体制。作为古典密码中的两种重要体制,一直在古代历史上的全球各个区域广泛地被使用。凯撒密码就是一种典型的单表代换密码。


      单表代换密码在长达一千年的时间里,被认为是无法破解的,因为存在着数量庞大的密钥,依靠手工是根本计算不过来的。但是随着社会的发展和技术的进步,来自东方的阿拉伯人,找到了更新的技术,从而发现了一条捷径来破获这个被认为是无解的密码,这次胜利是由阿拉伯世界的语言学家、统计学家和宗教学家三者共同完成的。


      这还要间接感谢中国的造纸术的发明,伊斯兰文明得以快速传播。因为书籍需求量大增,那么就需要有人来校对,最能胜任这个工作的自然是神学家。他们在校对的同时,还在统计默罕默德启示录的用词频率,如果这个启示录出现了新词,那么它出现的年份肯定就更往后等等。在梳理的过程中,他们也顺道发现了一些字母出现的频率就是比其他的字母要高得多。


      学习过英语的我们知道,字母e是最常见的,其次是字母t和a。如果按照凯撒密码加密,一个密码字母对应明码字母,那么密码字母中出现次数最多的很有可能就应该对应明码字母E,以此类推,很容易就可以排除掉大量的密钥,从而快速地找到正确的破译方法。现在无法考证究竟是谁把字母出现的频率和破译密码联系在了一起,但是可以肯定的是,公元九世纪的时候,阿拉伯人就已经非常擅长破译凯撒密码了。


      阿拉伯人从公元7世纪到公元12世纪期间,建立了辉煌灿烂的文明,相比较而言,欧洲当时还是愚昧落后贫穷的地方。伊斯兰文明的繁盛,不仅带来了艺术、科学等文化的繁荣,社会的统治和管理也是非常有条理和高效的。当时的管理者,不仅在政府的关键事务上进行加密,而且记录税收的时候也采用了密码术,他们在《大臣手册》等管理文献里还在探讨与密码术有关的技术性问题。正是因为有了巨大的需求,再加上科学技术的进步,阿拉伯人终于有机会破译替换密码这道千年难题。


      单表代换的破译十分简单,因为在单表代换下,除了字母名称改变以外,字母的频度、重复字母模式、字母结合方式等统计特性均未发生改变,依靠这些不变的统计特性就能破译单表代换。相对单表代换来说,多表代换密码的破译要难得多。


      多表代换大约是在1467年左右由佛罗伦萨的建筑师Alberti发明的。多表代换密码又分为非周期多表代换密码和周期多表代换密码。在一个多表替换密码中,会使用多个字母作为密码。为了加快加密或解密速度,所有的字母通常写在一张表格上,密码学上称作tableau。这种表格通常是26×26,因为这样才能放下全部26个英文字母。填充表格及选择下次使用的字母的方法,就是不同多字母替换密码之间的定义。多字母替换密码比单字母更难打破,因为其替换可能性多,密文要较长才可。


      其中最著名的一种为贝拉索于1585年推出的维吉尼亚密码。它于1863年之前一直未被破解。法国人称它作“不能破译的密码”(法语:le chiffre indéchiffrable)。此密码曾被误以为由布莱斯·德·维吉尼亚所创,所以才叫作维吉尼亚密码。


      维吉尼亚密码中,表格的第一行只需直接填上26个字母,然后以下每一行的字母都是向左偏移一格。(这叫作表格横移,数学上每一列同余26。)要用这种密码需要使用一个关键字来作为密钥。关键字每次用完就再次重复。假设关键字是“CAT”,明文的第一个字由“C”加密,第二个字由“A”加密,第三个则由“T”加密,然后再回到C加密,一直重复。然后按照右边的密码表加密,例如BALL用CAT作关键字时会加密至DAEN,可见即使是同一个“L”亦会加密至另一个字母。现实中,维吉尼亚密码的关键字非常长。


      非周期多表代换密码,对每个明文字母都采用不同的代换表(或密钥),称作一次一密密码,只要加密表够长,这是一种在理论上唯一不可破的密码。这种密码可以完全隐蔽明文的特点,但由于需要的密钥量和明文消息长度相同而难于广泛使用。


      为了减少密钥量,在实际应用当中多采用周期多表代换密码。在16世纪,有各种各样的多表自动密钥密码被使用,最瞩目的当属法国人B.de Vigtnère的Vigenère密码体制。有名的多表代换密码有Vigenère、Beaufort、Running-Key、Vernam和转轮机(rotor machine)。对于单表代换和多表代换密码来说,唯密文分析是可行的。单表代换和多表代换密码都是以单个字母作为代换对象的,而每次对多个字母进行代换就是多字母代换密码。大约1854年L.Playfair在英国推广Playfair密码,它是由英国科学家C.Wheatstone发明的。这是第一种多字母代换密码,在第一次世界大战中英国人就采用这种密码。多字母代换的优点是容易将字母的自然频度隐蔽或均匀化而有利于抵抗统计分析。这种密码主要有Playfair密码、Hill密码等。


      到二十世纪二十年代,人们发明了各种机械加密设备用来自动处理加密。大多数是基于转轮的概念。1918年美国人E.H.Hebern造出了第一台转轮机,它是基于一台用有线连接改造的早期打字机来产生单字母表替代的,输出是通过原始的亮灯式指示。最著名的转轮装置是Enigma,它是由德国人Scherbius发明并制造的。它在第二次世界大战中由德国人使用。不过在第二次世界大战期间,它就被破译了。

 

【近代密码学】

      近代密码学研究信息从发端到收端的安全传输和安全存储,是研究“知己知彼”的一门科学。其核心是密码编码学和密码分析学。前者致力于建立难以被敌方或对手攻破的安全密码体制,即“知己”;后者则力图破译敌方或对手已有的密码体制,即“知彼”。人类有记载的通信密码始于公元前400年。古希腊人是置换密码的发明者。1881年世界上的第一个电话保密专利出现。电报、无线电的发明使密码学成为通信领域中不可回避的研究课题。


     在第二次世界大战初期,德国军方启用“恩尼格玛”密码机,盟军对德军加密的信息有好几年一筹莫展,“恩尼格玛”密码机似乎是不可破的。但是经过盟军密码分析学家的不懈努力,“恩尼格玛”密码机被攻破,盟军掌握了德军的许多机密,而德国军方却对此一无所知。


     太平洋战争中,美军破译了日本海军的密码机,读懂了日本舰队司令官山本五十六发给各指挥官的命令,在中途岛彻底击溃了日本海军,导致了太平洋战争的决定性转折,而且不久还击毙了山本五十六。相反轴心国中,只有德国是在第二次世界大战的初期在密码破译方面取得过辉煌的战绩。因此,我们可以说,密码学在战争中起着非常重要的作用。


     编码密码学主要致力于信息加密、信息认证、数字签名和密钥管理方面的研究。信息加密的目的在于将可读信息转变为无法识别的内容,使得截获这些信息的人无法阅读,同时信息的接收人能够验证接收到的信息是否被敌方篡改或替换过;数字签名就是信息的接收人能够确定接收到的信息是否确实是由所希望的发信人发出的;密钥管理是信息加密中最难的部分,因为信息加密的安全性在于密钥。历史上,各国军事情报机构在猎取别国的密钥管理方法上要比破译加密算法成功得多。


      密码分析学与编码学的方法不同,它不依赖数学逻辑的不变真理,必须凭经验,依赖客观世界觉察得到的事实。因而,密码分析更需要发挥人们的聪明才智,更具有挑战性。


      现代密码学是一门迅速发展的应用科学。随着因特网的迅速普及,人们依靠它传送大量的信息,但是这些信息在网络上的传输都是公开的。因此,对于关系到个人利益的信息必须经过加密之后才可以在网上传送,这将离不开现代密码技术。


     1976年Diffie和Hellman在《密码新方向》中提出了著名的D-H密钥交换协议,标志着公钥密码体制的出现。 Diffie和Hellman第一次提出了不基于秘密信道的密钥 分发,这就是D-H协议的重大意义所在。


      PKI(Public Key Infrastructure)是一个用公钥概念与技术来实施和提供安全服务的具有普适性的安全基础设施。PKI公钥基础设施的主要任务是在开放环境中为开放性业务提供数字签名服务。


      二十世纪六七十年代以来计算机和通信系统的普及,带动了个人对数字信息保护及各种安全服务的需求。IBM的Feistel在七十年代初期开始其工作,到1977年达到顶点:其研究成果被采纳成为加密非分类信息的美国联邦信息处理标准,即数据加密标准DES,历史上最著名的密码体制。


      1977年,美国国家标准局公布实施了“美国数据加密标(DES)”,军事部门垄断密码的局面被打破,民间力量开始全面介入密码学的研究和应用中。民用的加密产品在市场上已有大量出售,采用的加密算法有DES、IDEA、RSA等。


      DES至今依然是世界范围内许多金融机构进行安全电子商务的标准手段,是迄今为止世界上最为广泛使用和流行的一种分组密码算法。然而,随着计算机硬件的发展及计算能力的提高,DES已经显得不再安全。1997年7月22日电子边境基金学会(EFF)使用一台25万美金的电脑在56小时内破译了56位DES。1998年12月美国决定不再使用DES。美国国家标准技术研究所(NIST)现在已经启用了新的加密标准AES,它选用的算法是比利时的研究成果“Rijndael”。以上这两个阶段所使用的密码体制都称为是对称密码体制,因为这些体制中,加秘密钥和解秘密钥都是相同的,而进入密码学发展的第三个阶段,则出现了非对称密码体制——公钥密码体制。

现有的密码体制千千万万,各不相同。但是它们都可以分为私钥密码体制(如DES密码)和公钥密码(如公开密钥密码)。前者的加密过程和脱密过程相同,而且所用的密钥也相同;后者,每个用户都有公开秘密钥。



END


今天关于区块链&密码学的文章就这里

如果有任何技术上的问题想与我讨论

欢迎加入EKT公链开发QQ群:699726921

项目交流QQ群:173806202

欢迎关注微信公众号:EKT通用积分

猜你喜欢

转载自blog.csdn.net/weixin_42120252/article/details/80843898