Playfair密码(英文:Playfair cipher 或 Playfair square)是一种替换密码,1854年由查尔斯·惠斯通(Charles Wheatstone)的英国人发明。
编写分三步:1.编制密码表 2.整理明文 3.编写密文 构成部分:
1.密钥
2.明文
3.密文
4.注明的某个字母代替的另一个字母
百度百科:它依据一个5*5的正方形组成的密码表来编写,密码表里排列有25个字母。如果一种语言字母超过25个,可以去掉使用频率最少的一个。
如,法语一般去掉w或k,德语则是把i和j合起来当成一个字母看待。英语中z使用最少,可以去掉它。
搜狗百科:由于是5×5的矩阵,而英文字母共26个,通常有两种处理方法:①若密钥和明文中均不含字母Q则填入矩阵时不包括Q
②若密钥或明文中均含有字母Q则填入矩阵时字母I和J捆绑在一起看做一个字母,占一个格子。
综上:如果秘钥有I或者J,就把Q或者Z去掉,保持25个。
ayfair加密算法根据下列规则一次对明文的两个字母进行加密,这两个字母构成一对。其加密规则如下:
(1)一对明文字母如果是重复的。则在这对明文字母种间插入一个填充字符。如X。因此,单词session将被分割成:se、sx、si、on。
(2)如果分割后的明文字母对在矩阵的同一行中都出现,则分别用矩阵中其右侧的字母代替,行的最后一个字母由行的第一个字母代替。例如,on被加密成qo,而st被加tn。
(3)如果分割后的明文字母对在矩阵的一列中都出现,则分别用矩阵中其下方的字母代替,列的最后一个字母由列的第一个字母代替。例如,en被加密成nu,而aw被加密成ba。
(4)如果分割后的明文字母对既不在矩阵的同一列中都出现也不在矩阵的同一行中都出现,密文是这两个字母所在的长方形的另两个顶点。例如,se被加密成nk,而cu被加密成ix(或jx)。
(5)如果明文有奇数个字母,末尾加一个无效字母。
明文为we are discovered save yourself,分组成为we ar ed is co ve re ds av ey ou rs el fz;
用上述矩阵加密后的密文为:UG RM KC SX HM UF MK BT OX GC MV AT LU KV
例子:
.使用Playfair密码的加密明文good,密钥关键词是monarchy,计算加密后的密文。
解:构成的密钥矩阵是:
M | O | N | A | R |
C | H | Y | B | D |
E | F | G | I/J | K |
L | P | Q | S | T |
U | V | W | X | Z |
将明文按照两个字母分组:
go od
密文是:
FN RH