栅栏密码(The Rail-Fence Cipher) 也称栅栏易位(Columnar Transposition),即把将要传递的信息中的字母交替排成上下两行,再将下面一行字母排在上面一行的后边,从而形成一段密码。栅栏密码是一种置换密码。 例如密文:TEOGSDYUTAENNHLNETAMSHVAED 解密过程:先将密文分为两行T E O G S D Y U T A E N NH L N E T A M S H V A E D再按上下上下的顺序组合成一句话 THE LONGEST DAY MUST HAVE AN END.
ADFGX/ADFGVX密码(ADFGX/ADFGVX Cipher)ADFGX 1918年,第一次世界大战将要结束时,法军截获了一份德军电报,电文中的所有单词都由A、D、F、G、X五个字母拼成,因此被称为ADFGX密码。ADFGX密码是1918年3月由德军上校Fritz Nebel发明的,是结合了Polybius密码和置换密码的双重加密方案。A、D、F、G、X即Polybius方阵中的前5个字母。明文: A T T A C K A T O N C E 经过Polybius变换:AF AD AD AF GF DX AF AD DF FX GF XF 下一步,利用一个移位密钥加密。假设密钥是“CARGO”,将之写在新格子的第一列。再将上一阶段的密码文一列一列写进新方格里。 C A R G O_________ A F A D A D A F G F D X A F A D D F F X G F X F X最后,密钥按照字母表顺序“ACGOR”排序,再按照此顺序依次抄下每个字母下面的整列讯息,形成新密文。 如下:FAXDF ADDDG DGFFF AFAXX AFAFX
维吉尼亚密码(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