上一章我们介绍了单表替换密码的基本原理和加解密过程。虽然单表替换密码在古代被广泛使用,但它存在一些安全漏洞,例如频率分析攻击。为了增强密码的安全性,多表替换密码应运而生。

在古典密码学中,多表替换密码是一种常见的加密方法,它通过使用多个替换表来增加密码的复杂性和安全性。本文将分析多表替换密码的加解密模式,并探讨其优缺点。

话不多说,我们直接进入多表替换密码的分析吧!😎

维吉尼亚密码(Vigenère Cipher) 🧐

维吉尼亚密码是一种经典的多表替换密码(最后会有一个小互动哦),它通过使用一个密钥来控制每个字母的替换方式。维吉尼亚密码的加密过程如下:

  1. 选择一个密钥,例如 “KEY”。
  2. 将明文与密钥对齐,如果明文长度超过密钥,则重复使用密钥。
  3. 对于每个明文字符,根据对应的密钥字符进行替换。具体来说,如果明文字符是 $P$,对应的密钥字符是 $K$,则密文字符 $C$ 可以通过以下公式计算(像之前一样字母和数字一一映射):

举个例子,明文 “there is a cipher”,密钥为 “password”,加密过程:

明文字符 t h e r e i s a c i p h e r
密钥字符 p a s s w o r d p a s s w o
密文字符 i h w j a w j d r i h z a f

解密过程则是将密文字符与对应的密钥字符进行逆向操作:

这里需要注意的是,维吉尼亚密码的安全性比单表替换密码更高,因为它使用了多个替换表(由密钥控制),使得频率分析攻击变得更加困难。然而,维吉尼亚密码仍然存在一些弱点,例如当密钥较短时,攻击者可以通过分析密文中的重复模式来破解密码。维吉尼亚密码被惠斯通先生(电报先驱)破解了,解法就不多说了,留个小互动吧!😉

普莱菲尔密码(Playfair Cipher) 👽

普莱菲尔密码是上文提到的惠斯通先生发明的一种多表替换密码,该密码以他的朋友莱昂・普莱费尔勋爵(Lord Playfair)命名,因为是普莱费尔大力向英国军方与政府推广,使其得以实际应用。

普莱菲尔密码使用一个 5x5 的字母表来进行加密,通常将字母 “I” 和 “J” 合并为一个字符。加密过程如下:

  1. 选择一个密钥,例如 “KEYWORD”,并创建一个 5x5 的字母表,按照密钥中的字母顺序填充,剩余的字母按字母顺序填充。
  2. 将明文分成两字母一组,如果最后一个字母没有配对,则添加一个填充字符(通常是 “X”)。
  3. 对于每对字母,根据它们在字母表中的位置进行替换:
    • 如果两字母在同一行,则将它们替换为该行中分别位于它们右侧的字母(如果在末尾,则循环回到行首)。
    • 如果两字母在同一列,则将它们替换为该列中分别位于它们下方的字母(如果在末尾,则循环回到列首)。
    • 如果两字母不在同一行也不在同一列,则将它们替换为形成矩形的对角线上的字母。

解密过程则是将加密规则逆向应用即可。

简单举个例子,明文 “test with playfair cipher”,密钥为 “hello”,首先删去密钥中重复的字母,得到 “helo”,然后创建字母表:

1 2 3 4 5
1 h e l o a
2 b c d f g
3 i/j k m n p
4 q r s t u
5 v w x y z

下面我们将明文分成两字母一组:te st wi th pl ay fa ir ci ph er,如果最后一个字母 “r” 没有配对,就添加一个填充字符 “x”,如果两个字母相同也需要添加一个填充字符,例如 “ee” 就需要变成 “ex” 和 “e”。然后根据加密规则进行替换,得到密文”ortukvoqamzogokqkbaicw”。

普莱菲尔密码的安全性比维吉尼亚密码更高,因为它使用了一个更复杂的替换规则和一个 5x5 的字母表,使得频率分析攻击更加困难。然而,普莱菲尔密码仍然存在一些弱点,例如当密钥较短时,攻击者可以通过分析密文中的重复模式来破解密码。此外,普莱菲尔密码也容易受到已知明文攻击,因为攻击者可以通过分析已知明文和对应的密文来推断出字母表的结构。

希尔密码(Hill Cipher) 🏔️

希尔密码是一种基于线性代数的多表替换密码,它使用矩阵乘法来进行加密和解密。希尔密码的加密过程如下:

  1. 首先将字母映射到数字,例如 $A=0, B=1, …, Z=25$。
  2. 选择明文块的大小,例如 2 或 3,并将明文分成相应大小的块。
  3. 选择一个密钥方形矩阵 $K$,该矩阵必须是可逆的(即行列式不为零且与模数互质)。
  4. 对于每个明文块,将其表示为一个列向量 $P$,然后计算密文块 $C$:

解密过程则是计算密钥矩阵 $K$ 的逆矩阵 $K^{-1}$,然后对于每个密文块 $C$,计算明文块 $P$:

举个例子,假设我们选择明文块大小为 3,具体就是 “act”,对应数字向量为 $\begin{pmatrix} 0 \ 2 \ 19 \end{pmatrix}$,密钥矩阵 $K = \begin{pmatrix} 6 & 24 & 1 \ 13 & 16 & 10 \ 20 & 17 & 15 \end{pmatrix}$。

首先确认密钥矩阵 $K$ 是可逆的,计算其行列式并确保与 26 互质。

加密过程:

对应的密文字符为 “POH”。

希尔密码的安全性较高,因为它使用了矩阵乘法来进行加密,使得频率分析攻击变得非常困难。然而,希尔密码仍然存在一些弱点,例如当密钥矩阵较小或不够随机时,攻击者可以通过分析密文中的模式来破解密码。此外,希尔密码也容易受到已知明文攻击,因为攻击者可以通过分析已知明文和对应的密文来推断出密钥矩阵的结构。

自动维吉尼亚密码(Autokey Cipher) 🔑

自动维吉尼亚密码是一种改进的维吉尼亚密码,它使用明文的一部分作为密钥的一部分,从而增加了密码的复杂性。自动维吉尼亚密码的加密过程如下:

  1. 选择一个初始密钥,例如 “KEY”。
  2. 将明文与初始密钥对齐,如果明文长度超过初始密钥,则使用明文的前部分来扩展密钥。
  3. 对于每个明文字符,根据对应的密钥字符进行替换。具体来说,如果明文字符是 $P$,对应的密钥字符是 $K$,则密文字符 $C$ 可以通过以下公式计算:解密过程则是将密文字符与对应的密钥字符进行逆向操作:

举个例子,明文 “test with autokey cipher”,初始密钥为 “hello”,自动生成密钥为 “hello test with autokey c”,后面加密过程和维吉尼亚密码相同,就不多说了。

自动维吉尼亚密码的安全性比维吉尼亚密码更高,因为它使用了明文的一部分作为密钥的一部分,使得频率分析攻击变得更加困难。然而,自动维吉尼亚密码仍然存在一些弱点,例如当初始密钥较短时,攻击者可以通过分析密文中的模式来破解密码。此外,自动维吉尼亚密码也容易受到已知明文攻击,因为攻击者可以通过分析已知明文和对应的密文来推断出初始密钥的结构。

小互动 😉

终于到了小互动时间了!说个有意思的东西,英国维多利亚时期,英国情侣因家庭、社会约束,常通过《泰晤士报》等报纸的个人启事栏,用加密信息传情,避开父母与社会审查。1853 年《泰晤士报》“Kensington” 系列加密情书,被惠斯通与普雷费尔破解并公开回应,成为经典案例。

这里有一封维吉尼亚加密情书,看看你能不能破解它:

Rgxm 6, zg tse nscbdrj

Mg mzuve, mj amp, xm qiuy aqxt—

Fglj a gih kjvgs bapop, tno tiee wi thnkux (kzmh jovvd). Bjx xnbux hffocrpa hwgp py tapuzgg me eiqwimwidqxm uxtprnmysy; akab m icimhwetw honxh on fuav hn dudl evdrjs—etk hybs oeft dcmvrw etqb excpstmem nthase—ooe huc lpzp sihxrm afvvkwtsf xsoi xkrwgsv jtccigmnsn, xkav nk bfm dpmbrowik hvmdkhybnr fssx cii dnwftsi; vay ypy nvvrje btq trvt ehbx jcp eue vaf semicemc xwii, L au zah vgttrfpj mjyus? Wt Scu, eozk bx yooyue qz mzc btd bfefht eqd kmxa, rgd noowtrzv whif is dnse ljzp pt akab ue ciwecee, rzh jroy nad clksplwid ppx ioz afvvks.

Uumc 6, pjzrlno

Kai jnfqes—czi, hc geidqgk vrpauycs. D rrtqoq hyx tsovksh jj ruz eqdrkaeipr xofiv mm qhse foce nmdsmeelm ftoe rof. Jvwe pz gdlu, nqqrnsp cbpxbzwv ia fts fglj timyu ri fav movzxvp bz sff rmol. Etqhyxr he tllzg whe mmov fmhpr tszb jv qob, U ooe hnwy sidwbr pyaqxt kh fltf. Pzjz hhmizpg voecyultbb eqd zusvkey do.

Kywm 7, hsunqzs

Ufhd xosrtbb, sq Jcxk 7hy!

Lttlm my pzh, whwgsvkl ccoxhtbb sq mm mnclm yzu, nc Tahsutix Nschvpd. Osh oih whmz vcpyuw, tiiy gvh dgiuz, ontieiok qooi. Whif U allt wiwi pwolhr etazcr wtti czi jv qob mf oce. Yps, J lljz vhswxhsu mo haohpf aeu aemk tihm jov yyhdp L ciz rzp bneo zsff vvps izp grr tsau M la midltk mh yhmp wjxs mjy, dnl omb jxno mz wzig iqwzmbdvw iy ypy tbos whm xmbu hf dpjvthn. Chs, cztogiiwy jx xinx ee aa. Kcl piwl ci evz qrrm oabktiyee wtbxi boc wzcn fy qieiwwoc wo gag. Bf hnp emwp qvr hvmd bcjleds nc ssvvw—nmhqf—exvpr!

Pl Rcy, aky ugeh fge me qechzh irwy abv phzm prp gj prvme. Mbu ree mz pttz mq V qe zcn t wceugssy plfm—Kaii eoge nevsn qh ab azqv mhp hbtawzww avp fvv nnsaqttsnx rf uqz. Ok fy lgf M yszh d sbqmrp, juteu pttz—gdn btmh sx sz io sff xsqnmofwfg? Mj aokpz, D ldvm vggk uepn uswr oldt btq arbl nobgs ujiv edqdm uty—ehfvptjvh I ugeh teode bx zbxi vo btmh phu xaz vpqzmye btq zvmtpr bx zbxi.

Ee kmxa, fglj bz e nogq foveurvkaeipr zt jyu efuehvgcp cbr hs vgkimhq clk pfrqsds os oidq fcxxtses—Fp qvpp—lwhq av—mooaz—cpgoiudik—ivrm tpasjfz gsqgqzsg whr jov—czi—tsx—mg xutv—fy llm—jlfzahlt. At qfgttnvi ec gsye uq—zsmxr xitnfrbi whm yagk yattijfz cidrb ar mfnr memsgsy.

Iyez ftwex.

Eges qtbz.

Iyez agfj.

给一个好用的在线工具,看看你能不能破解它!😉
维吉尼亚密码在线工具

同样的,多表加密密码数不胜数,除了上面介绍的几种,还有很多其他的多表替换密码,永远将不完,感兴趣的同学可以自己去挖掘一下!😉

上一章:加解密模式分析 - 单表替换密码 👈
下一章:加解密模式分析 - RSA 加密算法 👈
回到开始:关于我 👈