【维吉尼亚密码(Vigenère Cipher)】
由于频率分析法可以有效的破解单表替换密码,法国密码学家维吉尼亚于1586年提出一种多表替换密码,即维吉尼亚密码,也称维热纳尔密码。维吉尼亚密码引入了“密钥”的概念,即根据密钥来决定用哪一行的密表来进行替换,以此来对抗字频统计。
加密算法:例如密钥的字母为[d],明文对应的字母[b]。根据字母表的顺序[d]=4,[b]=2,那么密文就是[d]+[b]-1=4+2-1=5=[e],因此加密的结果为[e]。解密即做此逆运算。
加密公式:密文 = (明文 + 密钥) Mod 26 - 1
解密公式:明文 = [26 + (密文 - 密钥)] Mod 26 + 1
也可以用查表法来进行加密:例如密钥的字母为[d],明文对应的字母[b],在下图的表格第一行找到字母"d"(深蓝色),再在左边第一列找到字母"b"(绿色),两个字母的交叉点(b行d列)就是字母"E",所以对应的密文字母为[e]。
假如对如下明文加密:
to be or not to be that is the question
当选定“have”作为密钥时,加密过程是:密钥第一个字母为[h],明文第一个为[t],因此可以找到在h行t列中的字母[a],依此类推,得出对应关系如下:
密钥:ha ve ha veh av eh aveh av eha vehaveha
明文:to be or not to be that is the question
密文:ao wi vr isa tj fl tcea in xoe lylsomvn
![](http://imgsrc.baidu.com/forum/w%3D580/sign=71e5000ccbfcc3ceb4c0c93ba244d6b7/94fc153d70cf3bc7a9c841c2d200baa1cf112ace.jpg)
【Polybius密码(Polybius Cipher)】
也称棋盘密码,是利用波利比奥斯方阵(Polybius Square)进行加密的密码方式,产生于公元前两世纪的希腊,相传是世界上最早的一种密码。
假设我们需要发送明文讯息 “Attack at once”, 用一套秘密混杂的字母表填满波利比奥斯方阵,像是这样:
A D F G X
A b t a l p
D d h o z k
F q f v s n
G g j c u x
X m r e w y
i 和 j 视为同一个字,使字母数量符合 5 × 5 格。之所以选择这五个字母,是因为它们译成摩斯密码时不容易混淆,可以降低传输错误的机率。使用这个方格,找出明文字母在这个方格的位置,再以那个字母所在的栏名称和列名称代替这个字母。可将该讯息转换成处理过的分解形式。
明文:A T T A C K A T O N C E
密文:AF AD AD AF GF DX AF AD DF FX GF XF
A,D,F,G,X也可以用数字1,2,3,4,5来代替,这样密文就成了:
13 12 12 13 43 25 13 12 23 35 43 53