古今密码学趣谈
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.4 古代阿拉伯人开创密码分析学

公元七世纪开始兴盛的阿拉伯民族,最早系统总结并使用了密码分析的方法。因此,很多西方学者认为密码学真正的诞生是在阿拉伯世界。阿拉伯人还最早使用了 Cipher这个词,该词一开始表示“零”、“什么也没有”,后来表示任何一个十进制数,然后又有了“密写”、“密码”、“密文”、“暗号”、“加密”等含义,也就是说与Code同义。

据记载,中世纪的阿拉伯人在国家事务中广泛应用密码。如在税务记录中也使用了密码。此外,神学家想通过计算《古兰经》中一些词的出现频率来发现有关的宗教秘密,这也促进了密码分析学在阿拉伯世界中的发展。

公元九世纪伟大的阿拉伯哲学家、数学家肯迪(Abu Yusuf Ya'qūb ibn Ishāq al-Sabbah al-Kindī,801—873)(见图1-6)曾经著有哲学、数学、医学、占星学、铸剑、烹调、字谜等方面的著作270余部。1987年,发现了他约在公元850年写的《解码手册》(On Deciphering Cryptographic Messages),该书首页见图1-7,书中关于密码分析的描述如下:

图1-6 密码分析学创始人阿拉伯学者肯迪

图1-7 肯迪的《解码手册》首页

如果我们已经知道了一份密文(Encrypted message)所使用的语言,要破解它的一种方法是找一份用同样语言写的明文(Plaintext),大约有一页纸的长度。然后数其中每个字母出现的次数;把出现频率最高的字母叫做“第一”,出现频率次高的字母叫做“第二”,以此类推,直到数完明文中所有的字母。

然后再看要破解的那份密文,同样对其中的符号做(频率的)排序。我们找到出现频率最高的那个符号并把它替换为上述的“第一”字母,找到出现频率次高的符号并把它替换为“第二”字母,找到再次高的符号并替换为“第三”字母,直到数完密文中的所有符号。

这是历史上最早的研究用频率分析法破解密码的文献,比西方的同类文献早了大约 300 年。基于字母和单词的统计学特性的频率分析方法一直是破解密码的最基本和最常用的方法。两次世界大战中的密码战,是当时敌对双方最优秀的科学大脑和最先进的科技之间的生死较量,但究其所依据的加密和破解原理,仍然是基于字母和单词的频率分析,只是复杂的程度不同而已。

当然,肯迪的方法只能破解较原始的单表替换加密方法,对于较复杂的多表替换加密方法是无能为力的。

频率分析方法适用于以少量的字母为构词单元的拼音文字,这是西方世界普遍使用的文字类型。

基于深刻的数学思想和计算机技术的现代密码学,一般是对整篇文章——不是对字母或单词——加密和解密,因此,频率分析法在这里并无大用。