码迷,mamicode.com
首页 > 其他好文 > 详细

信息安全加密技术--Polybius密码

时间:2016-05-10 09:57:11      阅读:1860      评论:0      收藏:0      [点我收藏+]

标签:

1、 也称棋盘密码,是利用波利比奥斯方阵进行加密的密码方式,ADFGVX密码是德军在第一次世界大战中使用的栏块密码。事实上,它是早先一种密码 ADFGX 的增补版。1918年3月Fritz Nebel上校发明了这种密码,并提倡使用。它结合了改良过的Polybius方格替代密码与单行换位密码。这个密码以使用于密文当中六个字母 A, D, F, G, V, X命名。ADFGVX 是被法国陆军中尉 Georges Painvin 所破解的。以古典密码学的标准来说,此密码破解的工作是属于格外困难的,在这期间,Painvin 更因此健康蒙受了严重损伤。他破解的方法是依靠于找到多份开头相同的讯息,这表示说它们是被相同的分解钥匙和移位钥匙加密的。
2、用一套错综复杂的字母表填满波利比奥斯方阵

图1 波利比奥斯方阵

在方阵中,将i和j视为同一个字符,使字母数量符合5*5格
3、为何选择ADFGX?
|: 他们译成摩斯码时不容易混淆,可以降低传输错的几率
||:使用这个方格,找出明文字母在这个方格的位置,再以那个字母所在的栏名称和列名称代替这个字母

 4、示例:
     加密时可以在表格中找到明文,然后使用明文所在的行字符和列字符代替,比如明文为g,则密文为GA,明文为a,则密文为

AF。解密时只需在密码表里边找到行列所对应的字符就可以解密,比如密文为AFAD,则明文为AT,比如密文为XF,则明文为e
明文:A T T A C K A T O N C E
密文:AF AD AD AF GF DX AF AD DF FX GF XF
5、算法实现:
实现该方法加密有两种思路:(1)完全使用替代法 (2)使用for循环判断
(1)完全使用替代法
可以将表格里边的25个字母使用replaceAll()函数进行代替操作,在解密时使用同样的操作即可
(2)使用for循环判断
首先定义一个二维数组,用于实现密码表的保存,设为biao[6][6],然后将字符写入到表格里边,接着将用户输入的明文转化为字符数组str_p[],对明文进行遍历,使用判断条件进行对字符进行判断,如果str_p[k]==biao[i][j],则str_c[n++]=biao[i][0]+biao[0][j],循环至加密完所有明文
在解密时,可以循环判断biao[i][0]==str_c[k]&&str_c[k+1]==biao[0][j],如果相等,则使得str_p[m++]=biao[i][j],这样就完成了加解密。
6、加解密演示:

图 1要加密的内容
技术分享
图2 加密后的内容
技术分享
图3 恢复后的内容
技术分享
以上就是Polybius加解密的实现。

信息安全加密技术--Polybius密码

标签:

原文地址:http://blog.csdn.net/suwu150/article/details/51360171

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!