玛丽女王的例子还说明,信息传递的途径并非绝对安全。由于通信的双方需要事先约定同样的密钥,如果传递密钥的方式不安全,整个加密通信系统也形同虚设,信息安全保卫战就是“密钥保卫战”。
早在15世纪初,文艺复兴时期的佛罗伦萨艺术家阿尔伯蒂已经认识到了单字母表加密法在频率分析法面前不堪一击,他提出了一套新的加密方法,即轮流使用多张密码表,依次对明文中的字母进行加密。这一方法由法国外交官维吉尼亚所发扬光大,发明了“维吉尼亚加密法”。维吉尼亚加密法采用26套不同的密码表,对应密钥为0~25的凯撒挪移式密码表,并以从A~Z的英文字母表示。加密的过程是,选择一个密钥单词(keyword),例如KEY,然后按照密钥单词中的字母顺序,依次对明文字母按照相应的密码表进行加密,第一个字母使用“K”对应的密码表替换,第二个字母使用“E”,第三个用“Y”,第四个再回到“K”,以此循环直至加密结束。这一类加密法称为多字母表替换式加密法,同样的明文字母可能会被加密成不同的密文,相同的密文字母不一定对应相同的明文,给破译者带来很大的干扰。维吉尼亚加密法的密钥空间几乎是无限的,一度被视为不可破译的,是一千年以来古典密码学的重大突破。
但英国发明家查理`巴贝奇(Charles Babbage)不认为破译维吉尼亚密码是一项不可能完成的任务。当人们开始了解维吉尼亚密码的加密算法,它的致命弱点也随之浮现。维吉尼亚密码用于加密的基础密码表只有26种,而且都是已知的凯撒密码表。维吉尼亚密码加密明文使用密码表的顺序是固定的,因此同一个明文单词,被加密成的密文仅有有限种可能。可能的密文种类数取决于密钥单词的长度。并且位置相差密钥单词长度的所有字母都是使用同一张密码表进行替换的。巴贝奇发现,维吉尼亚密码的密文每过一部分,就会出现重复的字母组合,这意味着两个可能:一,不同的明文片段被密钥单词的不同部分加密成了相同的密文;二、同样的明文片段恰好由密钥单词在同样的起始位置进行加密,形成了相同的密文。如果重复的字母组合足够长,第一种情形出现的可能性就远远小于第二种。第二种情况还揭露一个事实:密钥单词长度一定是重复的字母组合位置相差数的因子。巴贝奇记录下所有重复的密文字母组合位置之差,以及它们的所有因子,其中出现最多的因子(以及它自身的因子)就是密钥单词可能的长度。合位置之差,以及它们的所有因子,其中出现最多的因子(以及它自身的因子)就是密钥单词可能的长度。
知道了密钥单词长度(记为N)这一重要信息,巴贝奇把密文分成N组分别由N个单字母表加密的片段。尽管这些零散的片段对应的明文是没有意义的,但只要这个片段出自完整的、有意义的信息,那么它的字母频率分布仍然遵守书写信息所使用语言的规律。使用频率分析法,维吉尼亚密码就可以被破译。加密者为了方便记忆,通常喜欢选取有意义的密钥单词,但这也使密码变得更加不安全。
4
古典密码学的圣杯
维吉尼亚密码法看起来拥有庞大的密钥空间,如果使用26个英文字母的排列组合作为密钥单词,仅长度为6的密钥单词就有超过3亿种可能,为什么还是能够被破解呢?维吉尼亚密码法的缺陷就是循环使用固定的密码表对明文加密,一旦循环长度被破译者分析出来,整个加密算法就变的和单密码表加密无异。为了增强维吉尼亚密码的安全性,可以选用非常长的密钥单词,这样一来,密文中出现重复字母组合的可能性就降低了很多,并且使用同一套密码表加密的字母个数也随之减少,猜测密钥单词长度和频率分析法就失效了。
将这个理论发挥到极致,就是著名的“一次一密”加密法(one-time pad cipher),这种加密法广泛地运用在外交、军事等需要不计代价地保证通信秘密的场合。“一次一密”,即每发送一条信息,就更换一个新的密钥单词,密钥单词的长度和要发送信息的长度相当,而且是随机生成的,不包含任何有意义的单词。秘密通信的双方各持有一本密码本,每进行一次通信,就撕下密码本的一页,使用下一页的密钥。从理论上来说,只要密码本没有泄露,即使破译者截获了某次通信的明文和密文,仍然无法破译下次通信的密文,“一次一密”是真正安全的加密方式,被誉为古典密码学的圣杯。
此文由 比特币官网 编辑,未经允许不得转载!:首页 > 比特币行情 » 密码学初探:信息的艺术――区块链技术引卷之十一