英语的统计特性-密码术的奥秘

时间:2023-12-05 00:09:04

英语的统计特性

上节讲的都是一些简短的、精心挑选出来的例子,用以说明一些具体问题。然而,即使是用简单代换密码对相当长的英文信息进行加密时,还是存在一些直接的攻击方法,它们可以破译出信息和密钥,或至少大部分密钥。这些攻击充分利用了英语的一些众所周知的特征。表2列出了字母表中的字母使用的频率(以百分比表示)。它们是根据大量报纸和小说中节选出的段落,共约30多万个字母样本中统计出来的(此表源自《密码系统:通讯的保护》中的一张表,此书由H. J.贝克[H. J. Beker]和F. C.派珀[F. C. Piper]编写)。

英语的统计特性-密码术的奥秘

表2.英语文章中字母的相对预期频率

这些数据与其他作者编制的大量表格的内容是相符的,可以解释为英语文本中这些字母出现的预期频率。它们清楚地表明,英语文本可能会被很少的一些字母所支配。

使用简单代换密码得到的一份密文中字母出现的相对频率直方图

当使用简单代换密码时,字母表中每个特定的字母不论出现在文本的什么地方,都用同一个替换字母代替。于是,比如我们在加密时令R代表E,那么密文中R出现的频率就等于原信息中E出现的频率。这就意味着,如果信息中的字母出现的频率如表2所示,那么密文中的字母出现的频率也会表现出同样的不平衡性,只是字母间的频率分布不同了。为了更好地理解这一点,我们画了一个频率直方图,用以表示使用简单代换密码得到的一份较长密文中字母出现的频率。

比较表2与这张直方图,密码分析者可以合理地猜想H对应于E,而W对应于T。因为英语中最常用的三字母词无疑是THE,那么攻击者可以充满自信地假定密文中出现最多的三字母词应是W*H,其中,*代表某个固定的字母。这不仅确认了最初的猜测,还暗示明文中与字母*对应的是H。若读者有兴趣验证破译这些密码有多么容易,应该尝试去读下面这段文字,它是用简单代换密码加密的一段密文。

DIX DR TZX KXCQDIQ RDK XIHPSZXKPIB TZPQ TXGT PQ TD QZDM TZX KXCJXK ZDM XCQPVN TZPQ TNSX DR HPSZXK HCI LX LKDUXI. TZX MDKJ QTKFHTFKX DR TZX SVCPITXGT ZCQ LXXI SKXQXKWXJ TD OCUX TZX XGXKHPQX XCQPXK. PR MX ZCJ MKPTTXI TZX. HKNSTDBKCOPI BKDFSQ DR RPWX VXTTXKQ TZXI PT MDFVJ ZCWX LXXI ZCKJXK. TD HDIWPIHX NDFKQXVWXQ DR TZPQ SCPKQ SCPKQ DR KXCJXKQ HCI SKDWPJX XCHZ DTZXK MPTZ HKNSTDBKCOQ MPTZ TZPQ VXTTXK BKDFSIB.

任何一位破译了这段密文的读者,几乎肯定利用了文字间的间隔所提供的信息。如将加密前的英语中的间隔去掉,破译就会困难得多。

在结束这一简短讨论之际,我们必须承认我们没有定量地给出“长”密文的概念。当然,在这方面并没有精确的答案。200个字母长的密文大概就足以利用上述统计信息解出了。此外我们发现,学生们通常能破译大约有100个或更多一些字母的密文。

作为题外话,我们要强调,并不能保证每个特定信息的统计特性都精确地符合表2。例如,当加密私人信件时,“you”这个词很可能就会像“the”一样常见。为了举例说明一个信息的统计特性可以被人为地操控到什么地步,我们要告诉大家一本200页的小说,其中竟没有用到字母E(见吉尔伯特·阿代尔[Gilbert Adair]翻译的乔治·佩雷克[Georges Perec]的著作《虚无》[A Void])。

上文讲述的这种攻击方式能够成功的原因是几个“最常用”的字母似乎“主导”着信息,与其密文相等价的明文能被很容易地确认出来。为防止这种情况发生,有一种方法是采用双字母组进行简单替换,双字母组是指连续的两个字母组成的字母对,如果这样做,我们的密钥将是676个字母对的一种排列。这时我们的密钥非常长,而且其数量空间达到676!,几乎是个天文数字。不过,这种方法相当笨拙,并且它也会遭受同一类型的攻击,因为正如单字母的情形一样,长信息同样会被相对较少的几个双字母组所主导。

显然,要模仿上面的简单代换密码的密钥那样,把所有的676个双字母组列表,并在其下列出相应的密文,是不太现实的。因此,我们需要某种简单的方法去确定密钥,并表示加密和解密算法。现在我们就给出一种基于双字母组的密码作为例子,它可能的密钥的数量相对较少。