书城工业密码之谜
1488900000016

第16章 密码科技之谜(2)

历史上著名的间谍组织克格勃

克格勃即苏联国家安全委员会,是1954年3月13日至1991年11月6日期间苏联的情报机构,总部设在莫斯科。它的前身是捷尔斯基创立的“契卡”(cheka),是苏联的反间谍机构,以实力和高明而著称。克格勃是苏联对外情报工作、反间谍工作、国内安全工作和边境保卫等工作的主要负责部门,是一个凌驾于党政军各部门之上的“超级机构”,它只对苏共中央政治局负责,它被英国情报机关称为“世界上空前最大的搜集秘密情报的间谍机构”。

克格勃的职权范围相当于美国的中央情报局(CIA)和联邦调查局(FBI)的反间谍部门,它的实力在某些方面甚至超过了美国。克格勃的情报人员能力有口皆碑,前俄罗斯总统、现任俄罗斯联邦政府总理普京也曾为克格勃的成员。克格勃与美国中情局、以色列的摩萨德、英国的军情六处并称为世界四大间谍组织。

维热纳尔密码并非“不可破译”的密码

观点:已经有许多人成功地破译了号称“不可破译”的维热纳尔密码,事实证明,维热纳尔密码也遇到了它的克星。维热纳尔密码说明,天下无不可破译的密码,有时只是时间与机遇的问题。

16世纪晚期,随着频率分析法的出现,单字母替换密码完全失去了效用。因此,密码编码者们试图找出一种方法来编制出更为强大、不易破译的密码。为此,编码者们做了许多尝试,例如,在编码过程中加入一些特殊的字符,或者用一些字母代表一种程式,如空格、换行等等,但这种变化都瞒不过破译大师的眼睛,他们通过一点蛛丝马迹就能找出破译密码的线索。

直到有一天,法国外交家BlaisedeVigenere提出了一种多字母替换密码的方法,也即用两个或者两个以上的密码表交替使用来进行加密,这样就可以防止任何人利用频率分析法来解密该条信息。关于维热纳尔密码的发明者,还有一个小插曲,早在1553年吉奥万·巴蒂斯塔·贝拉索出版的《吉奥万·巴蒂斯塔·贝拉索先生的密码》一书中,就有关于维热纳尔密码的记录,作者还首次引入了密钥的概念。只是这并未引起人们的注意,直到BlaisedeVigenere提出多字母替换密码的方法之后,维热纳尔密码才引起人们BlaisedeVigenere被误认为发明了维热纳尔密码的关注,所以一直被人们称为“维热纳尔密码”。

维热纳尔密码的关键部分是表格法(tabularecta),表格法是约翰尼斯·特里特米乌斯1508年在《隐写术》中提出的。

我们知道,在凯撒密码中,字母表中的字母会有一定的偏移,例如偏移量为3的时候,字母A就转换成字母D,B就转换成了E。

而维热纳尔密码则相当于一个采用不同偏移量的凯撒密码组。

编制维热纳尔密码需要使用表格法,这个表格为26行字母表,查尔斯·巴贝奇破译了维热纳尔密码频率分析法频率分析法是一种通过分析每个符号出现的频率进而轻易地破译代换式密码的方法。在每种语言中,冗长的文章中的字母表现出一种可对之进行分辨的频率。例如,e是英语中最常用的字母,其出现频率为八分之一。

最好假定长长的密文中最常用的符号代表e。如果密码分析者根据频率数能破译出9个最常用的字母e,t,a,o,n,i,r,s和h,一般来说他就可破译70%的密码。最现代的译密技术也是以古老的频率分析法为根据的。

频率分析法还可以用来对单词中的字母的位置及其组合进行分析。例如,全部英语单词中有一半以上是以t,a,o,s或w开头的。仅10个单词(the,of,and,to,a,in,that,it,is和I)就构成标准英语文章四分之一以上的篇幅。

编成密码的词汇量越大,用频率分析法译密就越容易。在激战方酣时,电文接连不断地从战场和司令部之间来回发送,其中少不了密电。第一次世界大战时,德国人每月用无线电播送200万编成密码的文字。在第二次世界大战时,盟军最高统帅部常常一天就播发200万字的编密文字。

后面一行是由前一行向左偏移一位得到,具体到究竟哪一行字母是用来编译的,这要取决于密钥,而这个密钥在过程中是不断变化着的。

以“attackatonce”为例,我们选择一个关键词“Lemon”为密钥,明文中的首字母A与密钥第一个字母L对应,对照表格进行加密,密文的第一个字母是L,以此类推,就可以得到一组密文。

多表密码的破译是以字母频率为基础的,但直接的频率分析却无法破解,因为E是英语中使用频率最高的字母,而在维尔纳尔密码中,E被加密成不同的文字,因此,维热纳尔也被喜欢密码的人们称为“不可破译的密码”。

维热纳尔密码真的是“不可战胜的密码”吗?对于这个说法,许多人都不认同,事实上,有不少人都成功地破译了维热纳尔密码。

1854年,英国人查尔斯·巴贝奇就因为受到斯维提斯在《艺术协会杂志》上发表声明称自己发现了“新密码”的启发,他发现,斯维提斯的密码其实只是维热纳尔密码的一个变种,从而成功地破译了斯维提斯给他的难题—破译两个不同长度的密钥加密的密文。

1863年,弗里德里希·卡西斯基公布了一个完整的维热纳尔密码的破译方法。他的这套方法被称为卡西斯基实验,卡西斯基实验的突破口是一些常用的单词,例如the,of等,有可能被同样的密钥字母进行加密,从而在密文中反复出现,这样就可以基本确定密钥的长度。

上世纪20年代,威廉·F·弗里德曼(WilliamF.Friedman)使用重合指数(indexofcoincidence)来描述密文字母频率的不均匀性,从而确定密钥的长度,由此破译了维热纳尔密码。

确定密钥长度的意义在于,可以根据密钥的长度将密文写成多列,列数与密钥长度相对应,这样一来就得到了一个凯撒密码,采用破译凯撒密码类似的方法,就可以轻易地将密码破译。

考虑到了这个破绽,维热纳尔密码后来还产生了一种变体—滚动密钥密码,这种密码的密钥和密文一样长,这样一来,卡西斯基实验和弗里德曼的方法都失效了。从理论上来说,一个密钥的长度与明文的长度一致而且完全是随机的,那么维热纳尔密码的确就是“不可破译”的。据说,维热纳尔本人还曾发明过一种更强的维热纳尔密码变体—自动密钥密码。巴贝奇破译的正是这种维热纳尔密码的变体。

维热纳尔密码在欧洲的应用并不十分广泛,在欧洲有一种Gronsfeld密码与维热纳尔密码基本相同,由于它的强度很高,在德国和整个欧洲都有着广泛的应用。

一次性密码本

一次性密码本(one—timepad,OTP)是密码学中的一种加密演算法,它以随机的密钥组成明文,而且只使用一次。一次性加密的方法是,首先要有一本一次性密码本用以加密文件,接着将一次性密码本里的字母与被加密文件的字母按某个实现约定的规定一一混合,混合的方法是将字母指定数字(例如,将A至Z26个字母依次指定为0到25),然后将一次性密码文本上的字母所代表的数字和被加密文件上相对应的数字给相加,再除以该语言的字母数,假设是n(如英语为26),若就此得出来的某个数字小于零,则将该小于零的数给加上n,如此便完成加密。这种一次性密码本的安全性毋庸置疑,已经得到了克劳德·埃尔伍德·香农的证明。