Playfair密码

Playfair密码

Playfair cipher普莱费尔密码)一种古典对称式密码,是首个双字母替换的加密法。尽管以现在的眼光来看这种加密是非常不安全的,但是它加密的过程还是蛮有意思的。
这种加密方式所需要的就只有一张\(5 \times 5\)的表格,比如说像这样:

1 2 3 4 5
E A C G U
F M O Z Y
K D P W S
L Q R V N
B H T X I

由于英文字母共有26个,我们一般会将I和J视为同一个字母,或者也可以移除Q。

加密流程

假设我们现在有一个flag为PP{we_are_not_playing_fair}, 想要将其当成

P P W E A R E N O T P L A Y I N G F A I R

进行加密 。

  1. 我们首先需要信息分成2个字母为一组,也就是

    PP WE AR EN OT PL AY IN GF AI R

    当出现一组内2个字母相同的情况时,我们需要在其中间插入一个X。于是会变成

    PX PW EA RE NO TP LA YI NG FA IR

    (当最后剩下一个字母单独一组的时候,需要在结尾加上X。不过显然我们这里并不需要)

  2. 然后我们会对每组字母进行加密,一共会分3种情况:

    1. 若两个字母在同一行,会将其替换成它们右边一格位置的2个字母。比如说会将PW加密成WS。
    2. 若两个字母在同一列,会将其替换成它们下边一格位置的2个字母。比如说会将TP加密成CR。
    3. 若两个字母不在同一行或者同一列,那么一定会存在一个矩形使得当前两个字母是这个矩形的2个角,这时将它们替换为这个矩形的另外2个角。比如说会将PX加密成WT。请添加图片描述

最后将所有内容按照这个方法进行加密就会得到

WTWSACLCRYCRQESUVUMETN

解密流程

解密的话则只需要逆着这个流程走一遍就好了:先用表格进行解密,然后将结果里用来补位的X给移除。

posted @ 2024-12-09 05:15  笔墨绘星河1  阅读(32)  评论(0编辑  收藏  举报