加密描述:Playfair加密算法将明文中的双字母组合作为一个单元对待,并将这些单元转换位密文双字母组合。加密过程把密钥填写在一个5*5的矩阵中(去出重复字母和字母j),矩阵中其它未用到的字母按顺序填在矩阵剩余位置中。
对明文加密规则如下:
1 若p1 p2在同一行,对应密文c1 c2分别是紧靠p1 p2 右端的字母。其中第一列被看做是最后一列的右方。
2 若p1 p2在同一列,对应密文c1 c2分别是紧靠p1 p2 下方的字母。其中第一行被看做是最后一行的下方。
3 若p1 p2不在同一行,不在同一列,则c1 c2是由p1 p2确定的矩形的其他两角的字母,并且c1和p1, c2和p2同行。
4 若p1 p2相同,则插入一个事先约定的字母,比如x。
5 若明文字母数为奇数时,则在明文的末端添加某个事先约定的字母作为填充。
解密描述:Playfair解密算法首先将密钥填写在一个5*5的矩阵中(去出重复字母和字母j),矩阵中其它未用到的字母按顺序填在矩阵剩余位置中,根据替换矩阵由密文得到明文。
对密文解密规则如下:
1 若c1 c2在同一行,对应明文p1 p2分别是紧靠c1 c2 左端的字母。其中最后一列被看做是第一列的左方。
2 若c1 c2在同一列,对应明文p1 p2分别是紧靠c1 c2 上方的字母。其中最后一行被看做是第一行的上方。
3 若c1 c2不在同一行,不在同一列,则p1 p2是由c1 c2确定的矩形的其他两角的字母,并且c1和p1, c2和p2同行。