喜迎
春节

3.2 单表替换:固定的秘密对照表


凯撒密码虽然简单,但它有一个明显的限制:移位必须是统一的,A往后移3位变成D,那B就一定变成E,C一定变成F……这种“线性”的对应关系,让密钥只有25种可能,敌人一试便知。

那么,如果我们打破这个限制呢?不再规定每个字母必须向后移动相同的位置,而是允许任意地、随机地把每个字母替换成另一个字母——这就是单表替换密码

一张神秘的对照表

想象你有一张神秘的对照表,上面写着:

  • A → Q
  • B → Z
  • C → L
  • D → X
  • ……

只要26个字母每个都对应一个不同的密文字母,而且没有重复(这样才能解密),你就拥有了一张独一无二的“密表”。有了它,你可以把任何信息加密成别人看不懂的乱码。

举个例子,假设我们有这样一张密表(部分):

明文 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
密文 Q Z L X T P H Y M K F D S N B O R G W C J A E V I U

现在加密一句话:HELLO WORLD

  • H → Y
  • E → T
  • L → D(注意L映射到D)
  • 第二个L也是D
  • O → B
  • 空格保留
  • W → E
  • O → B
  • R → G
  • L → D
  • D → X

结果就是:YT D B E B G D X(去掉空格是YTDBEBGDX)。如果你不知道这张对照表,看到这串字母只会一头雾水。

密钥空间:大得惊人

凯撒密码的密钥只有25种,而单表替换密码的密钥有多少种?

答案是:26!(26的阶乘),也就是 26 × 25 × 24 × … × 1。这个数字有多大呢?大约是4×10^26,或者说:

403,291,461,126,605,635,584,000,000

这是400亿亿亿的数量级。如果用超级计算机暴力尝试,就算每秒尝试一万亿种,也需要几十亿年才能穷举完。单从密钥空间来看,单表替换密码几乎牢不可破——至少在纸笔时代是这样。

看似无敌,实则脆弱

然而,这么庞大的密钥空间,却没能挡住密码分析师的脚步。为什么?

因为密文里隐藏着语言的“指纹”。任何一种自然语言,字母出现的频率都不是均匀的。以英文为例,字母E出现的频率最高,约为12.7%;其次是T、A、O、I、N等。而Z、Q等则出现极少。

在单表替换中,这个频率特性会被完整地保留下来——因为每个明文字母都固定映射到一个密文字母。如果明文中E出现最多,那么它所对应的密文字母在密文中也会出现最多。

于是,破解者只需要统计密文里每个字母出现的次数,然后把频率最高的密文字母猜成E,次高的猜成T,再结合常见的单词模式(比如“the”是英文中最常见的三字母组合),就能逐步还原出整张对照表。

这就是频率分析,我们将在3.3节中亲手体验它的威力。

与凯撒密码的区别

凯撒密码是单表替换的一个特例——它的映射是有序的、线性的。而真正的单表替换可以是完全随机的,没有规律可循。所以,凯撒密码用暴力破解就能攻破,而单表替换则必须依靠频率分析这类更聪明的统计方法。

历史的影子

单表替换密码曾在欧洲中世纪和文艺复兴时期广泛使用。各国宫廷、外交官、甚至一些早期科学家都用它来保护通信。比如,英国女王玛丽一世在被囚禁期间,就曾用单表替换密码与外界密谋推翻伊丽莎白一世。可惜,她的密信被破译,最终被送上断头台。

这个故事告诉我们:再大的密钥空间,也敌不过语言的统计规律

小结

单表替换密码是凯撒密码的“升级版”,它用一张任意的映射表取代了固定的移位,使得密钥空间大到无法暴力破解。但它仍然无法隐藏语言的频率特性,为频率分析留下了致命漏洞。

下一节,我们将化身为十六世纪的密码分析师,亲自用频率分析破解一封密信——你会发现,原来破译密码并不需要超级计算机,只需要耐心和一点点数学。


文章作者: Crazy Boy
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Crazy Boy !
评 论
 上一篇
3.1 凯撒密码:把字母表“转”起来
3.1 凯撒密码:把字母表“转”起来
在所有密码中,凯撒密码可能是最简单、最著名的一个。它的名字来自古罗马的凯撒大帝——据说他喜欢用这种方式与远方的将领通信。方法简单到连小学生都能理解:把每个字母在字母表中向后(或向前)移动固定的位置。 怎么玩?假设我们约定把每个字母向后移动3
2026-03-12
下一篇 
3.3 频率分析:古人如何破解单表替换
3.3 频率分析:古人如何破解单表替换
在上一节,我们见识了单表替换密码的威力——它的密钥空间大得惊人,理论上无法暴力破解。然而,历史告诉我们,这种密码早在公元9世纪就被阿拉伯学者攻破了。破解的方法不是靠蛮力,而是靠一种巧妙的统计技巧:频率分析。 语言的指纹你有没有注意过,我们说
2026-03-12
  目录
hexo