playfair密码
是什么
是一种使用一个关键词方格来加密字符对的加密法。
为什么
引入PlayFair密码的原因
因为单表代替的密钥量很小,不能抵抗穷尽搜索攻击
表代替密码没有将明文字母出现的概率隐藏起来。很容易收到频率分析的攻击
怎么做
编写密码表
-
密码表为5×5的字母矩阵,由密钥来填充矩阵内容,填充的规则是:在矩阵中从左到右、从上到下,依次填入密钥的字母,在填写的过程中,若当前准备填入的字母在矩阵中已经存在,则跳过该字母,保证矩阵字母的唯一性。
-
5*5的矩阵,容量为25,填入26个字母,其中字母 I 和 J 或者字母u和v算作一个字母 。
-
填入数据示例:royal new zealand navy。
r o y a l n e w z d v b c f g h i/j k m p q s t u x
加密方法:
- 将明文两两分组
- 明文个数为偶数个:
- ro—ya–ln–ew–……
- 明文个数为奇数个
- 解决办法:缺补:在最后一个明文字母的后面补上其下一位字母AB——C,补完变为AB——CD
- 分组后同一组字母相同
- 解决办法:同插,在相同的字母中间插入其下一位字母示例:
AA——BC 插完变为 AB——AB——CD - PS:同插缺补操作不分先后,执行结果相同
- 解决办法:同插,在相同的字母中间插入其下一位字母示例:
- 移位和替换规则:
- 若p1 p2在同一行,对应密文c1 c2分别是紧靠p1 p2 右端的字母。其中第一列被看做是最后一列的右方。
- 若p1 p2在同一列,对应密文c1 c2分别是紧靠p1 p2 下方的字母。其中第一行被看做是最后一行的下方。
- 若p1 p2不在同一行,不在同一列,则c1 c2是由p1 p2确定的矩形的其他两角的字母
解密方法
逆推加密方法
示例 (密码编码学与网络安全习题2.9)
2.9 当海军上尉 John F.Kennedy管理的美国巡逻船PT-109被日本毁灭者击沉时,位于澳大利亚的一个无线站截获的一条用Playfair密码加密的消息:
KXJEY UREBE ZWEHE WRYTU HEYFS KREHE GOYFI WTTTU OLKSY CAJPO BOTEI ZONTX BYBNT GONEY CUZWR GDSON SXBOU YWRHE BAAHY USEDQ
密钥为royal new zealand navy,请解密这条消息,将TT换为tt。
解:
(1)编制密码表
r | o | y | a | l |
---|---|---|---|---|
n | e | w | z | d |
v | b | c | f | g |
h | i/j | k | m | p |
q | s | t | u | x |
(2)依照解密规则,整理密文
KX JE YU RE BE ……
PT BO AT ON EO ……
(3)最终结果
PT BOAT ONE OWE NINE LOST IN ACTION IN BLACKETT STRAIT TWO MILES SW MERESU COVE X CREW OF TWELVE X REQUEST ANY INFORMATION