play fair加密 解密
来源:
经莱昂·普莱费尔提倡在英国军地和政府使用。
它有一些不太明显的特征:密文的字母数一定是偶数;任意两个同组的字母都不会相同,如果出现这种字符必是乱码和虚码。
它使用方便而且可以让频度分析法变成瞎子,在1854到1855年的克里米亚战争和1899年的布尔战争中有广泛应用。但在1915年的一战中被破译了。
编写分三步:
1.编制密码表
2.整理明文
3.编写密文
构成部分:
1.密钥
2.明文
3密文
4.注明的某个字母代替的另一个字母
算法:
它依据一个55的正方形组成的密码表来编写,密码表里排列有25个字母。如果一种语言字母超过25个,可以去掉使用频率最少的一个。如,法语一般去掉w或k,德语则是把i和j合起来当成一个字母看待。英语中z使用最少,可以去掉它。
加密:
加密过程
解密:
Playfair解密算法首先将密钥填写在一个55的矩阵中(去Q留Z),矩阵中其它未用到的字母按顺序填在矩阵剩余位置中,根据替换矩阵由密文得到明文。
对密文解密规则如下:
1 若c1 c2在同一行,对应明文p1 p2分别是紧靠c1 c2 左端的字母。其中最后一列被看做是第一列的左方。
2 若c1 c2在同一列,对应明文p1 p2分别是紧靠c1 c2 上方的字母。其中最后一行被看做是第一行的上方。
3 若c1 c2不在同一行,不在同一列,则p1 p2是由c1 c2确定的矩形的其他两角的字母。
例子:
密文:UIHEK INREL EFPVI CMRYM ORROQ GQCLV OEPOH UXHPO IDKIH CV O
密匙:father
先绘制密码表
根据解密
UI--------No
HE------th
… … . … …
HC-------
最后明文为:Nothing in the world is difficult, if you set your mind to i.