所谓区块链,就是密码学加上当时的最先进科技。
凯撒大帝的“区块链”
凯撒是第一个把替换密码用于军事用途、并且记录下来的人。在他的那本歌颂自己丰功伟绩的《高卢记》里,凯撒描述了他把密信送到正处于围困之中、濒临投降的西塞罗手中。凯撒非常喜欢使用密文,后世的《凯撒传》详细地记录了凯撒使用的一种密文。而这种加密方法,甚至沿用到今天。
可以想象,在公元前100年左右,也就是相当于中国的西汉时期,要想破译凯撒的密码,那可能性几乎为零。
虽然不能说凯撒是依靠密码情报在军事上获胜的,但是一流的情报工作和保密工作,是在战场上获胜的前提条件之一。后来随着技术的不断进步,战争的复杂程度和调配兵力的数量越来越多,战场范围更加幅员辽阔,情报工作就越加重要。尤其是在第一次世界大战和第二次世界大战中表现得尤为突出,后面将会详细地讲到。
阿拉伯人的“区块链”
替换密码在长达一千年的时间里,被认为是无法破解的,因为存在着数量庞大的密钥,依靠手工是根本计算不过来的。但是随着社会的发展和技术的进步,来自东方的阿拉伯人,找到了更新的技术,从而找到了一条捷径来破获这个被认为是无解的密码,这次胜利是由阿拉伯世界的语言学家、统计学家和宗教学家三者共同完成的。
这还要间接感谢中国的造纸术的发明,伊斯兰文明得以快速传播。因为书籍需求量大增,那么就需要有人来校对,最能胜任这个工作的自然是神学家。他们在校对的同时,还在统计默罕默德启示录的用词频率,如果这个启示录出现了新词,那么它出现的年份肯定就更往后等等。在梳理的过程中,他们也顺道发现了一些字母出现的频率就是比其他的字母要高得多。
学习过英语的我们都知道,字母E应该是最常见的,其次是字母T和A。如果是按照凯撒密码的办法进行加密,一个密码字母对应明码字母,那么密码字母中出现次数最多的很有可能就应该对应明码字母E,以此类推,很容易就可以排除掉大量的密钥,从而快速地找到正确的破译方法。
现在无法考证究竟是谁把字母出现的频率和破译密码联系在了一起,但是可以肯定的是,公元九世纪的时候,阿拉伯人就已经非常擅长破译凯撒密码了。
更应该看到的是,阿拉伯人从公元7世纪到公元12世纪期间,建立了辉煌灿烂的文明,相比较而言,欧洲当时还是愚昧落后贫穷的地方。伊斯兰文明的繁盛,不仅带来了艺术、科学等文化的繁荣,社会的统治和管理也是非常有条理和高效的。当时的管理者,不仅在政府的关键事务上进行加密,而且记录税收的时候也采用了密码术,他们在《大臣手册》等管理文献里还在探讨与密码术有关的技术性问题。正是因为有了巨大的需求,再加上科学技术的进步,阿拉伯人终于有机会破译替换密码这道千年难题。
这个“区块链”技术,也助推阿拉伯人去打造一个高效清廉的政府、提供一个有效的管理制度、建立一个有秩序的富裕社会。
是不是有点眼熟?今天各国政府都纷纷表示要重视区块链,以便提高政府工作的透明度和效率,这是不是跟千年以前阿拉伯人的做法异曲同工。
电报和无线电时代的“区块链”
漫长的中世纪里,欧洲人对密码术的兴趣,仅限于炼金术和科学家。到了15世纪文艺复兴的时候,密码编辑术在欧洲成为了一项蒸蒸日上的行业。首先是科学、艺术为密码术的进步提供了智力支持,再加上欧洲,尤其是意大利各城邦政治上的尔虞我诈,使得密码术更有市场。如何能够安全、快速地输送情报,如何能够破获对手的情报,是各个城邦主人最为关注的事情之一。这个时候开始,破译密码的专员成为了西方政府机构中常设的职位。
不过真正引发密码学突飞猛进的,则是电报这项新技术的发明。为了保护隐私,大众也需要学习一些密码学的知识,以便不至于让自己的隐私在电报中轻易被泄漏。
与此同时,军方也非常苦恼,对于新技术他们是既喜又怕。喜的是电报技术,尤其是后期出现的无线电技术优势明显,而怕的是这些信息可以方便快捷地送达接受者手中,也可以送达敌人的手中。
在电报和无线电的新技术面前,所有人都开始想如何设置更难以破解的密码,来保护自己的信息安全,但是却鲜有突破。即便是一战时德军采用的ADFGVX密码,采取了替换和移位两种加密方式,而且德国人相当有自信,这么复杂的密码是不可能被破译的,但是还是被法国人所破译。
法国的情报人员更厉害的一点是,他们甚至学会了辨认德国无线电操作员的“手迹”。虽然发送电报都是一系列的点和横波,但是每个无线电操作员的操作速度、停顿的点和横波的长短等等都不一样,可以辨别他的身份。此外,法国人还建立了六个不同方向的搜索站,可以检测无线电波是发自哪里的。两者结合,可以让法国的情报部门确认军营的身份和地点,在一定时间跟踪这个军营的移动方向,很大程度上能提前预判军事目的,从而提前采取行动应对。
此外,英国和美国的情报工作对于破译德军的军事密码也做了很多的工作。甚至可以说,正是因为盟军在情报破译方面的优势地位,以及德军采用不合格的加密情报系统,两者的叠加,才决定了第一次世界大战的最终走势。
希特勒的“区块链”
吸取了第一次世界大战的失败经验,希特勒领导的纳粹德国采用了一个在当时看起来的杀手级武器——恩格玛密码机。这台机器问世,在编制密码方面毫无费力地碾压了人类最优秀的编码师,就像是Alpha Go无情地击败了人类最优秀的围棋手柯洁一样。可以体会一下,今天围棋国手们面对Alpha Go的感觉,就像是当年密码学家面对恩格玛密码机的感受是一样的,完全无力招架、完全没有还手之力。
借助恩格玛密码机强大的密码编撰能力、以及更加强大的无线电传输能力,希特勒拥有了当时世界上最安全的通讯系统,他可以以更快、更精准、更安全的方式向远在千里之外的将军下达战令;德军的铁骑也以各种“闪电战”的速度攻城略地,肆无忌惮地在欧洲横冲直闯,根本没有人能拦得住。
相较于德国陆军,德国海军的情报系统更加厉害,他们采用的是加强版的恩格玛密码机。依靠安全、准确的情报通讯系统,德军的潜艇在大西洋上四处游荡,一旦发现英军护航舰的踪影,就开始跟踪定位,并且通过情报系统,召集其他的潜艇前来围剿。而英军因为情报落后,没办法掌握德军潜艇的位置和作战策略,结果损失惨重。数据显示,1940年6月到1941年6月之间,盟军每月平均损失50艘船只。更惨的是,整个英国海军部只能依靠自己舰艇被击沉的位置,来追踪德军潜艇的位置。这时候,不仅是丘吉尔的至暗时刻,更是整个人类历史的至暗时刻,如果英国海军输掉大西洋战争,那盟军很有可能输掉整场战争,全世界就会彻底沦陷在纳粹的铁骑之下。
当然你会想起来,现代计算机之父阿兰•图灵不是破译了恩格玛密码么?准确的说他是其中之一。波兰人首先为破译密码打下了基础,他们开创性地把数学家和工程师引进到密码破译中来。在此之前,破译密码的基本都是语言学家、统计学家等等。然后,盟军做出了巨大的牺牲,才缴获了恩格玛密码机,使得密码学家能够了解这台在当时看上去无比智能的机器的工作原理,包括图灵在内的无数科学家经历了呕心沥血的工作,最终研发出了另外一台密码破译机。
“用机器打败机器”,这句台词是广受中国影迷喜爱的卷福在电影《模仿游戏》里扮演的图灵所说,也道出了真理:人打败不了机器,只能设计一台打败机器的机器。
中本聪的比特币
随着两次世界大战的结束,人类迎来了和平发展的时期。加密技术也从国家情报部门和军队走向了社会和商业。越来越多的公司采购计算机进行工作,公司内部、公司之间的交流也愈加频繁,这也对密码学和技术发展提出了新的要求。
其中公钥的发明,堪称是两千年以来密码学的最伟大成就,也是今天区块链和比特币的最重要基础技术之一。
公钥之所以至关重要,是因为仅靠密钥已经满足不了新的需求。在古代和战争年代,不同对象之间的保密、安全通讯,都需要点对点的密钥,这就涉及到密钥的分发。这很好理解,就相当于是千年以前,凯撒大帝向他的将军用密文下达战令的时候,接收到密令的将军知道密钥是“三”。
这就会带来两个问题:
第一,这个密钥要改起来很困难。想想将军远在千里之外,凯撒想把密钥从“三”变成“四”,那么他就必须派人把这个新密钥送给将军,但是这个过程本身是非常不安全而且不及时的。当然你可能会觉得这个在现代社会不是问题,打个电话、发个电报不就解决了吗?虽然现代社会有各种通讯设备,但是最关键的核心信息依然不能通过电话、手机等没有经过特别加密的渠道传送。所以到了70年代,银行还得经过严格选拔,培养那些最值得信任的员工拎着密码箱满世界去给客户送密钥。尽管如此,这种方式还是存在着很大的风险。
第二,密钥的分发成本越来越高。就是随着计算机和数据化的普及,越来越多的企业和机构都在使用加密服务。70年代,美国政府每天分发的密钥就可以达到一吨重。政府和军队可以承受这样的开支,商业机构可是受不了的。尤其是随着计算机向个人和家庭普及,越来越多的普通人也要用上数字化服务,如果还是采取传统的加密方式,两个陌生人之间发一份电子邮件,需要他们先互换密钥才可以,否则两人只能采取不加密的方式传输,就像是一封没有经过加密的电报,所到之处一点隐私都没有。
正在麻省理工学院实习的三个人是解决这个问题的关键。在罗纳德•李维斯(Ronald L.Rivest)、阿迪•萨莫尔(Adi Shamir)和伦纳德•阿德曼(Leonard Adleman)三人的努力之下,一种被称为“不对称密钥”的密钥诞生了。在此之前,所有的加密方法都是“对称加密”,也就是说解密过程就是加密过程的反向演化,加密和解密的密钥是一样的。那么在“不对称加密”的过程中,加密密钥和解密密钥则是不一样的。
举个例子。采取“不对称加密”技术之后,爱丽丝可以对外公布她的加密密码,所有人可以通过这个加密密码向她写信、发送重要的信息,而只有爱丽丝可以通过只有她自己知道的解密密码来获取这个信息。那么,之前密钥分发带来的问题自然就能迎刃而解。
这三个麻省理工实习生的工作就是找到了一个数学函数,来完成这次“非对称加密”。这个由三个人的名字首字母组成的RSA系统,成为当代密码学中最有影响力的密码系统。这也是比特币的两大最重要的算法之一。
这个数学函数简单来说就是分解质因数。比如N=p×q,那么N就是公共密钥,所有人都知道这个数字,可以通过N来给发出的信息加密,那么只有知道p和q的值的人,也就是拥有密钥的人才能解密,读到这段加密的信息。那么你可能会觉得,这个很好计算啊,计算机很快就能列出所有的可能一一来试试不就可以吗?但是如果这个数字足够大呢?银行的转账加密都是10的300次方这个量级的数字,一亿台电脑一块工作来分解这个数字最后找到答案,大约需要一千年的时间。这就相当于是无懈可击的密码。
公钥和私钥都是比特币交易中非常重要的概念。在这个基础上,就很好理解中本聪发明的比特币了。比特币的交易就像是在门口放了一个信箱,谁都可以把钱交到这个信箱来,只要知道这个信箱的地址,但是要真正拿到这笔钱,你必须有打开这个信息的钥匙,也就是那把经过严格加密的密钥。因为整个交易的过程被数字记录下来了,所以每次交易都是不能被模仿、篡改和删减,这样就保证了交易的真实和可追溯。此外,在这样的货币市场,也没有中央银行等权威机构存在的必要了,人人都是参与者、也是见证者,这也起到了去中心化的作用。
那么区块链的技术也可以由此引申开来,但千万不要把区块链技术想得特别高深,其实我们已经有很多的场景都已经开始使用区块链技术了。比如蚂蚁金服通过区块链技术来对公益捐助的善款进行追溯;又比如保险行业对受保人进行追踪等。此外,如果你开过电子增值税发票的话,那就是区块链的经典运用,相较于纸质发票而言,电子增值税发票做到了分布式记账、消除了重复开票、开假票等问题,尤其是发票信息全流程管理等等。
当然,各国政府也在加大对区块链技术的研发和运用,相信未来会在更多的地方会运用到区块链的技术。但就像是TCP/IP协议这样底层的互联网技术,或者是4G和5G这样的通信信号,我们这些普通老百姓一般都搞不清楚是怎么回事,但并不影响我们上网、发微信、收红包。区块链这样冷门的技术,密码学这样深奥的学问,都是拜比特币的热炒所致,成为了家喻户晓的名词。