古典密码术
2019-01-13李子臣谭亦夫宋培非
李子臣 谭亦夫 宋培非
人类文明发展到使用语言和文字后,就产生了通信保密和身份认证的问题,这是密码学的主要任务。古典密码学与其说是一门学科,不如说是一门艺术,它们反映出古人的高超智慧和绝妙想象力,并且蕴涵了现代密码学思想的萌芽。
古希腊“天书”
大约在公元前700年,古希腊军队采用一种叫作Scytale的圆木棍来进行保密通信。其使用方法是:把长带子状的羊皮纸缠绕在圆木棍上,然后在上面写字;解下羊皮纸后,上面只有杂乱无章的字符,只有再次以同样的方式缠绕到同样粗细的棍子上,才能看出所写的内容。
这种Scytale圆木棍也许是人类最早使用的文字加密、解密工具,据说主要是古希腊城邦中的斯巴达人在使用它,所以它又被叫作“天书”。
Scytale圆木棍的加密原理属于密码学中的“移位法”加密,因为它通过改变文本中字母的阅读顺序来达到加密的目的。
古罗马恺撒密码
公元前60年前后,古罗马的执政官和军队统帅恺撒发明了一种把所有的字母按字母表顺序循环移位的文字加密方法。例如,当规定按字母表顺移3位时,那么a就写成d,b写成e,c写成f……x写成a,y写成b,z写成c。
比如,Knowledge is power(知识就是力量),就写成:NQRZOHGJHLVSRZHU。
从密码学的角度来看,恺撒加密法属于“单字母表替换”加密,而且替换的规则很简单。然而,恺撒加密的思想对西方古典密码学的发展有较大的影响。事实上,直到第二次世界大战结束,西方所使用的加密方法还大多属于“字母表替换”加密,只是替换的规则越来越复杂而已。
欧洲加密术
替换加密就是把普通信文中的文字符号替换成其他文字符号以达到加密的目的,其替换规则只有通信双方知道。西方国家大都使用拼音文字,只有二十几个字母和几个标点符号,文字符号较少,所以很适合用替换法加密。
恺撒密码就是一种替换加密方法,但这种加密方法具有“明密异同性”,利用频率分析法比较容易破解。
于是,从15世纪中叶起,欧洲人开始研究设计“多字母表替换加密”方法,即明文中同一个字母在不同的位置上会有不同的替换符号。其中最有名的当属维吉尼亚密码。它主要使用一张字母矩阵表,其中第一行是任意给定的字母表,第二行是第一行左循环移一位,最后一位的字母移至第一位,而形成的字母替换表。第三行又是第二行左循环移一位,以下各行依次类推。加密时,对于明文中的同一个字母,当其第一次出现时,使用表的第一行来替换,第二次出现时使用第二行替换,依次类推。如果该字母出现的次数超过矩阵的行数,则回到第一行继续下去。解密同加密一样,也是从上到下逐行进行。
维吉尼亚密码后来出现过多种改进和变形。其中一种变形就是,由密钥确定密文所在的行,明文确定明文所在的列,在加密方阵中,行和列的交叉就是相应的明文。
使用维吉尼亚密码加密的过程中,一个明文字母根据在明文中出现的顺序或者密钥的不同,会有多种变化,最多能有26种变化。而恺撒密码加密与明文字母的顺序没有关系,只有一种变换。所以恺撒密码是“单表密码体制”,而维吉尼亚密码是“多表密码体制”。显然,多表加密比单表加密复杂得多,因此其破解难度也增加了许多。自从维吉尼亚加密术出现以后,多表加密成为欧洲人最常用的加密方法。
破译古典密码
公元7世纪开始兴盛的阿拉伯民族是最早系统总结并使用密码分析方法的民族。
1987年,科学家发现了肯迪在公元850年前后写的《解码手册》。
书中关于密码分析的描述如下:如果我們已经知道了一份密文所使用的语言,要破解它的一种方法是找一份用同样语言写的明文,大约有一页纸的长度。然后统计其中每个字母出现的次数,把出现频率最高的字母叫作“第一”,出现频率次高的字母叫作“第二”,以此类推,直到数完明文中所有的字母。然后再看待破解的那份密文,同样对其中的符号做频率排序。我们找到出现频率最高的那个符号并把它替换为上述的“第一”字母,找到出现频率次高的符号并把它替换为“第二”字母,找到第三高的符号并替换为“第三”字母,直到数完密文中的所有符号。
这是历史上最早的研究用频率分析法破解密码的文献,比西方的同类文献早了大约300年。基于字母和单词的统计学特性的频率分析方法,一直是破解密码最基本和最常用的方法。
例如,已知经恺撒密码加密过的密文:
HQGHDYRUWRVHHWKHJRRGLQHYHUBVLWXDWLRQ
统计得出H是出现次数最多的字母,频率为0.194。
根据英文中字母出现概率的统计数据,字母e出现的概率最高,为0.127。
那么,密文字母H的明文就应该是e,H对应的数字为7,e对应的数字为4,于是根据恺撒密码加密规则,将密文中的字母向右移3位,就可得到明文。解密后得出明文:Endeavor to see the good in every situation(努力在每种情况下看到好的一面)。
第二次世界大战中的密码战,是当时敌对双方最优秀的科学大脑和最先进的科技之间的生死较量,但究其所依据的加密原理,仍然是替换和移位,破解原理是基于字母和单词的频率分析,只是复杂的程度不同而已。当然,肯迪的方法只能破解较原始的单表替换加密方法,对于较复杂的多表替换加密方法是无能为力的。然而,对于多表古典密码体制,将密文的重合指数方法和密文中字母统计规律相结合,同样可以破译。