这四个密码算法用到了矩阵。

这四个密码算法用到了矩阵,加密看懂了。解密没看懂。数学不好的悲哀啊。。。 【乘法密码(Multiplication Cipher)】 乘法密码也是一种简单的替代密码,与凯撒密码相似,凯撒密码用的是加法,而乘法密码用的自然是乘法。这种方法形成的加密信息保密性比较低。 加密公式:密文 = (明文 * 乘数) Mod 26 对于乘数密码,只有当乘数与26互质时,加密之后才会有唯一的解,因此乘数只可能有如下11种的选择: 乘数 = 3,5,7,9,11,15,17,19,21,23,25 仿射密码和希尔密码因为都用到了乘法,所以乘数也受到相同的局限。 ------------------------------------------------------------------------- 【仿射密码(Affine Shift)】 仿射密码就是凯撒密码和乘法密码的结合。 加密公式:密文 = (明文 * 乘数 + 位移数) Mod 26 ------------------------------------------------------------------------- 【希尔密码(Hill Cipher)】 希尔密码就是矩阵乘法密码,运用基本矩阵论原理的替换密码。每个字母当作26进制数字:A=0, B=1, C=2... 一串字母当成n维向量,跟一个n×n的密钥矩阵相乘,再将得出的结果模26。希尔密码的优点是完全隐藏了字符的频率信息,弱点是容易被已知明文攻击击破。 加密 例如:密钥矩阵 1 3 0 2 明文:HI THERE 去空格,2个字母一组,根据字母表顺序换成矩阵数值如下,末尾的E为填充字元: HI TH ER EE 8  20 5  5 9  8  18 5 HI 经过矩阵运算转换为 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 WO 6  1  5 23 15 15 19 15 9* |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” ------------------------------------------------------------------------- 【Playfair密码(Playfair Cipher)】 Playfair将明文中的双字母组合作为一个单元对待,并将这些单元转换为双字母组合。加密后的字符出现的频率在一定程度上被均匀化。 5*5变换矩阵(I或J视为同一字符): C I P H E R A B D F G K L M N O Q S T U V W X Y Z 加密规则:按成对字母加密 相同对中的字母加分隔符(如x) ballon -> ba lx lo on 同行取右边:he->ec 同列取下边:dm->mt 其他取交叉:kt->mq  od->tr 例如:ballon -> ba lx lo on -> db sp gs ug
posted @ 2013-09-24 15:37  test.cfs  阅读(991)  评论(0编辑  收藏  举报