凯撒密码作为最著名的古典密码之一,在密码学上有着很大的影响,今天我们就来了解一种以凯撒密码组成密码字母表的加密算法——维吉尼亚密码。

维吉尼亚密码简介

维吉尼亚密码又被称为维热纳尔密码,最早记录是在吉奥万·巴蒂斯塔·贝拉索于1553年所著的书《吉奥万·巴蒂斯塔·贝拉索先生的密码》中,但是在19世纪时被误传为是法国外交官布莱斯·德·维吉尼亚所创造,因此现在被称为“维吉尼亚密码”。

维吉尼亚密码以其简单易用而著称,属于多表密码的一种简单形式,但是同时初学者通常难以破解,因而又被称为“不可破译的密码”。

维吉尼亚密码

维吉尼亚密码的加密过程

在一个凯撒密码中,字母表中的每一字母都会作一定的偏移,例如偏移量为3时,A就转换为了D、B转换为了E……而维吉尼亚密码则是由一些偏移量不同的恺撒密码组成。

为了生成密码,需要使用表格法。如下图,它包括了26行字母表,每一行都由前一行向左偏移一位得到。具体使用哪一行字母表进行编译是基于密钥进行的,在过程中会不断地变换。

维吉尼亚密码

维吉尼亚密码引入了"密钥"的概念,即根据密钥来决定用哪一行的密表来进行替换,以此来对抗字频统计。

假设明文为“ATTACKATDAWN”,关键词为“LEMON”,将关键词重复与明文长度一致,得到密钥“LEMONLEMONLE”。

明文的第一个字母A,对应密钥的第一个字母L,所以,使用表格中L行字母与A列字母进行加密,得到密文第一个字母L。明文第二个字母为T,在表格中使用对应的E行进行加密,得到密文第二个字母X。以此类推,可以得到:

明文:ATTACKATDAWN

密钥:LEMONLEMONLE

密文:LXFOPVEFRNHR

维吉尼亚密码的密过程

维吉尼亚密码的解密过程与加密相反,根据密钥第一个字母L所对应的L行字母表,发现密文第一个字母L位于A列,因而明文第一个字母为A。密钥第二个字母E对应E行字母表,而密文第二个字母X位于此行T列,因而明文第二个字母为T。


在很长一段时间里,维吉尼亚密码都被认为是不可破解的,直到19世纪50年代查尔斯·巴贝奇通过寻找重复的字母段破解了这个密码系统。但是,维吉尼亚密码的优势在于,这种密码被假定为它将不同位置的字母进行不同的加密。所以,直至二战时期,维吉尼亚密码在整个欧洲依旧有着广泛的应用。

免责声明:素材源于网络,如有侵权,请联系删稿。