公元16世纪晚期,想要获得更高的保密度的人获得了一种设计更加精细的密码表。
法国外交家Blaise de Vigenère发明了一种方法来对同一条信息中的不同字母用不同的密码进行加密。这样,同样的E在一个位置可能被M所取代,而在另一个位置的E则有可能以K的面目出现。这样,就可以防止任何人利用频率分析法解密该条信息。
在维热纳尔(Vigenère)的密码中,发件人和收件人必须使用同一个关键词(或者同一文字章节),这个关键词或文字章节中的字母告诉他们怎么样才能前后改变字母的位置来获得该段信息中的每个字母的正确对应位置。比如如果关键字“BIG”被使用了,发件人将把信息按三个字母的顺序排列。第一个三字母单词的第一个字母将应当向前移动一个位置(因为B是排在A后面的字母),第二个字母需要向后移动8位(I是A后面第8个字母),而第三个字母需要向前移动6位(G是A后面第6个字母)。然后,文字就可以按下面的顺序来进行加密了:
未加密文字:THE BUTCHER THE BAKER AND THE CANDLESTICK MAKER。(屠夫、面包师和蜡烛匠)。
关键密钥:BIG BIGBIGB IGB IGBIG BIG BIG BIGBIGBIGBI GBIGB
加密文字:UPK CCZDPKS BNF JGLMX BVJ UPK DITETKTBODS SBSKS
如果知道“BIG”就是密钥,收件人就可以很容易地通过相应的位置改变字母位置,从而译出经过加密的文字。
很多年以来,维热纳尔(Vigenère)密码都被认为是不可破解的,但查尔斯·巴贝奇(Charles Babbage),一个独立的英国富人在19世纪50年代向人们展示了事实并非如此。顺便提一句,这个人也因为其在计算机科学领域方面所进行的先锋性工作而被世人所熟悉。巴贝奇(Babbage)通过寻找重复的字母段破解了这个密码系统。当然,维热纳尔密码的优势在于这种密码被假定为它将不同位置的字母进行不同的加密。比如同一段文字中的“THE” 可能在前面表现为“UPK”,但在后面则被表现为“BNF”。同样,象“AKER”这样的字母也会被进行不同的加密。但是,第一个和第三个“THE”都会被编码为“UPK”。第一个“THE”中的“T”会用“B”来进行编码,而第三个“THE”中的“T”也同样是用“B”来编码。发生这种情况是因为第三个 “THE”是排在第一个“THE”后面第21个字母,而3字密钥BIG会在重复7次之后又回到了最开始。 在任何比密钥要长得多的加密信息中,都会不可避免地出现类似这样的重复。而一个解密者应该如何才能揭示加密文件的真正面目呢?比如,如果加密文字“UPK”出现了两次,中间隔着21个字母,那么他就可以推断出密钥的长度是21的整除数。或者换种说法,他可以推断出21是密钥的倍数。(约数或称除数是一个数字被除之后不会有余数。比如21的除数就是1、3、7和21。) 如果获得了足够多类似的线索,解密者就可以知道密钥的确切长度。一旦他知道了密钥长度,他就可以对加密信息进行日常频率分析。注意,数学在解密工作中总是放在首位的:解密者首先会计算出密钥的长度,这步工作甚至是在他要考虑密钥的具体内容是什么之前所要做的。
巴贝奇的独具创意的技巧开创了一片密码术的新田地,并且将数学工具引入到了以前被认为专属于文字学的领域之中。即使一种编密码系统没有明确地使用数学,但其中隐藏的格式却通常需要以数学的方式进行整理。