维吉尼亚密码
维吉尼亚密码(又译维热纳尔密码)是使用一系列凯撒密码组成密码字母表的加密算法,属于多表密码的一种简单形式,以简单易用而著称。
该算法出现于1553年书籍《吉奥万·巴蒂斯塔·贝拉索先生的密码》中,但在19世纪时被误传为是法国外交官布莱斯·德·维吉尼亚(Blaise De Vigenère)所创造,因此被称为“维吉尼亚密码”。
基本信息
- 中文名
维吉尼亚密码
- 外文名
Vigenère cipher
- 出处
吉奥万巴蒂斯塔贝拉索先生的密码
- 性质
加密算法
- 名词解释
恺撒密码的基础上扩展的多表密码
- 组成元素
明文、密钥、密表
介绍
维吉尼亚密码(又译维热纳尔密码)是使用一系列凯撒密码组成密码字母表的加密算法,属于多表密码的一种简单形式。
维吉尼亚密码曾多次被发明。该方法最早记录在吉奥万·巴蒂斯塔·贝拉索( Giovan Battista Bellaso)于1553年所著的书《吉奥万·巴蒂斯塔·贝拉索先生的密码》(意大利语:La cifra del. Sig. Giovan Battista Bellaso)中。然而,后来在19世纪时被误传为是法国外交官布莱斯·德·维吉尼亚(Blaise De Vigenère)所创造,因此现在被称为“维吉尼亚密码”。
维吉尼亚密码以其简单易用而著称,同时初学者通常难以破解,因而又被称为“不可破译的密码”(法语:le chiffre indéchiffrable)。这也让很多人使用维吉尼亚密码来加密的目的就是为了将其破解。
历史
多表密码最早在1467年左右由莱昂·巴蒂斯塔·阿尔伯蒂提出,他使用了一个金属密码盘来切换密码表,只是这个系统只能做些有限的转换。后来1508年时,约翰尼斯·特里特米乌斯《隐写术》(Steganographia)中发明的表格法(tabula recta)成为了维吉尼亚密码的关键部分。然而当时此方法只能对密码表做一些简单的、可预测的切换。这一加密技术也称为特里特米乌斯密码。
这一方法真正出现是在吉奥万·巴蒂斯塔·贝拉索于1553年所著的书《吉奥万·巴蒂斯塔·贝拉索先生的算术》中。他以特里特米乌斯的表格法为基础,同时引入了密钥的概念。
布莱斯·德·维吉尼亚于1586年亨利三世时期发明了更为简单却又更有效的自动密钥密码(autokey cipher)。之后,19世纪时贝拉索的方法被误认为是由维吉尼亚首先发明的。大卫·卡恩在《破译者(The Codebreakers)》中对此表示遗憾,他写道“历史忽略了这一重要贡献,将其归功于维吉尼亚,虽然他对此并不知道”。
由于破译的难度很高,维吉尼亚密码也因此获得了很高的声望。知名作家、数学家查尔斯·路特维奇·道奇森(笔名路易斯·卡罗)在其1868年所编、收于一儿童杂志的《字母表密码(The Alphabet Cipher)》中称其是不可破译的。1917年,《科学美国人》将维吉尼亚密码称为“无法被转化的”。然而,维吉尼亚密码却配不上这样的称号。查尔斯·巴贝奇完成了破译的工作,但他没有将此发表。之后,弗里德里希·卡西斯基(Friedrich Kasiski)于19世纪完全破解并发表了他的方法。甚至在此之前,一些资深密码分析家在16世纪就能偶尔将其破解。
维吉尼亚密码足够地易于使用使其能够作为战地密码。例如,美国南北战争期间南军就使用黄铜密码盘生成维吉尼亚密码。北军则经常能够破译南军的密码。战争自始至终,南军主要使用三个密钥,分别为“Manchester Bluff(曼彻斯特的虚张声势)”、“Complete Victory(完全的胜利)”以及战争后期的“Come Retribution(报应来临)”。
吉尔伯特·维尔南(Gilbert Vernam)曾试图对已被破译的密码进行修补(于1918年创造了维尔南-维尼吉亚密码),然而这终究无济于事。不过维尔南的发明最终促成了一次性密码本的诞生,这是一种理论上不可破译的密码。
描述
在一个凯撒密码中,字母表中的每一字母都会作一定的偏移,例如偏移量为3时,A就转换为了D、B转换为了E……而维吉尼亚密码则是由一些偏移量不同的恺撒密码组成。
为了生成密码,需要使用表格法。这一表格(如图1所示)包括了26行字母表,每一行都由前一行向左偏移一位得到。具体使用哪一行字母表进行编译是基于密钥进行的,在过程中会不断地变换。
例如,假设明文为:
ATTACKATDAWN
选择某一关键词并重复而得到密钥,如关键词为LEMON时,密钥为:
LEMONLEMONLE