同音异词编码-密码术的奥秘

时间:2024-07-01 19:53:06

同音异词编码

改进简单代换密码的另一种途径是通过引入一些附加的符号来扩展字母表,使得明文中诸如E这样的字母能用不止一个密文符号来表达。

同音异词编码-密码术的奥秘

这些附加的符号通常称为随机元素(或简称随机元),扩展字母表的过程叫做同音异词编码。我们可以通过介绍一个密码来加以说明,其中密文字母表是数字00、01、02、……、31。每个密文数字仅代表唯一一个明文字母,但是字母A、E、N、O、R、T中任何一个都由两个不同的数字来代表。

作为例证,我们可以像下列图表那样给每个字母指定相应的数。

在上述对应下,TEETH这个有两对重复字母的词,可以写为24 27 13 08 31。不知道这个密钥的人,都会认为该密文的5个符号是不同的,但真正的接收者绝不会混淆。

上面选出的6个字母,可能是明文中最常用的字母。我们以E为例,如果我们随机地从两个选定的数字中确定一个代表E,那么我们可以预计这两个数字中的每一个在密文中占的比例为6%。一般而言,同音异词编码的作用就是保证密文的预期频率直方图能比明文的预期频率直方图更平缓些。这样就增加了利用统计法进行攻击的难度。

注1:在这个密码中,我们把0、1、2写为00、01、02等。在不使用空格时,我们需要用这种方法来区分(比方说)数字“12”与数字“1后面跟着一个2”。

注2:破译普通的简单代换密码相对较易。我们希望所有的读者都破译出了前文中的那一段密文。破译我们现在讨论的这种密码就需要更大的耐心和更好的运气。任何需要被说服或喜欢这类难题的读者,不妨试着读读下列密文。仅有的情报是,这是一个英语文本,是用上文讨论过的带有同音异词编码的简单代换密码加密的。密钥未知,但不是上面所列的那张表。此外,明文中的字母是按5个一组写出的(这意味着攻击者不能识别短的词,尤其是一个字母的词)。这个练习不容易,我们并不强求读者非得一显身手不可。

【相关阅读】