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
进行加密 。
-
咱们首要需求信息分红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。不过明显咱们这儿并不需求)
-
然后咱们会对每组字母进行加密,总共会分3种状况:
- 若两个字母在同一行,会将其替换成它们右边一格方位的2个字母。比如说会将PW加密成WS。
- 若两个字母在同一列,会将其替换成它们下边一格方位的2个字母。比如说会将TP加密成CR。
- 若两个字母不在同一行或许同一列,那么一定会存在一个矩形使得当时两个字母是这个矩形的2个角,这时将它们替换为这个矩形的别的2个角。比如说会将PX加密成WT。
最终将一切内容依照这个办法进行加密就会得到
WTWSACLCRYCRQESUVUMETN
解密流程
解密的话则只需求逆着这个流程走一遍就好了:先用表格进行解密,然后将成果里用来补位的X给移除。