A T T A C K A T O N C EAF AD AD AF GF DX AF AD DF FX GF XF下一步,利用一个移位钥匙加密。假设钥匙字是「CARGO」,将之写在新格子的第一列。再将上一阶段的密码文一列一列写进新方格里。C A R G O_________A F A D AD A F G FD X A F AD D F F XG F X F X最后,按照钥匙字字母顺序「ACGOR」依次抄下该字下整行讯息,形成新密文。如下:FAXDF ADDDG DGFFF AFAXX AFAFX在实际应用中,移位钥匙字通常有两打字符那么长,且分解钥匙和移位钥匙都是每天更换的。ADFGVX在 1918年 6月,再加入一个字 V 扩充。变成以 6 × 6 格共 36 个字符加密。这使得所有英文字母(不再将 I 和 J 视为同一个字)以及数字 0 到 9 都可混合使用。这次增改是因为以原来的加密法发送含有大量数字的简短信息有问题。加密例如:密钥矩阵1 3明文:HI THERE去空格,2个字母一组,根据字母表顺序换成矩阵数值如下,末尾的E为填充字元:HI TH ER EE8 20 5 59 8 18 5HI 经过矩阵运算转换为 IS,具体算法参考下面的说明:|1 3| 8 e1*8+3*9=35 MOD26=9 =I|0 2| 9 e0*8+2*9=18 MOD26=18=S用同样的方法把“HI THERE”转换为密文“IS RPGJTJ”,注意明文中的两个E分别变为密文中的G和T。解密解密时,必须先算出密钥的逆矩阵,然后再根据加密的过程做逆运算。逆矩阵算法公式:|A B| = 1/(AD-BC) * | D -B||C D| |-C A|例如密钥矩阵=|1 7||0 3|AD-BC=1*3-0*7=3 3*X=1 mod26 所以 X=9因此|1 7| 的逆矩阵为: 9 * |3 -7||0 3| |0 1|假设密文为“FOAOESWO”FO AO ES WO6 1 5 2315 15 19 159* |3 -7| | 6| = 9*(3*6-7*15)=-783 mod26 = 23=W|0 1| |15| = 9*(0*6+1*15)= 135 mod26 = 5 =E所以密文“FOAOESWO”的明文为“WEREDONE”