????????Playfair密码是多表替代密码的经典算法。1854年,由Charles Wheatstone发明,它将明文中的双字母组合作为一个单元对待,并将这些单元转换为密文双字母组合。如明文为very good,密钥为fivestar。
????????Playfair密码基于一个5×5字母矩阵,该矩阵使用一个关键字来构造,方法从左至右,从上到下依次填入关键字的字母(去除重复字母!),然后在一字母表的顺序依次填入其他字母。字母I和J被算作一个字母。
f | i/j | v | e | s |
---|---|---|---|---|
t | a | r | b | c |
d | g | h | k | l |
m | n | o | p | q |
u | w | x | y | z |
????????将明文字符串按照两个字母一组进行分组,分组之后,如果相邻两个字母相同,则要在他们之间插入一个事先约定好的字母(如q),如果明文字母数为奇数,同样要在明文的末端添加某个事先约定好的字母作为补充。
????????ve ry go qo dq
? ? ? ? 1.若两个字母在同一行,则对应密文分别是紧靠着该字母右端的字母,其中第一列被视为在最后一列的右方,解密时反向。
ve同行,密文为es
qo同行,密文为mp
? ? ? ? 2.若两个字母在同一列,则对应密文分别是紧靠着该字母下方的字母,其中第一行被视为在最后一行的下方,解密时反向。
? ? ? ? 3.若两个字母不在同一行,也不在同一列时,则对应的密文是由两个字母确定的矩形的其他两角字母,并且两个字母和对应密钥同行(解密时处理方法相同)。
ry对角线,密文为bx
go对角线,密文为hn
dq对角线,密文为lm
即得到密文es bx hn mp lm