古典密码-普莱菲尔密码Playfair

本文目的在于整合了网上的Playfair Cipher原理、解密及算法实现
大部分均为转载,可以链接到原文地址查看,这里只是整合文章

简介

以下直接搬运原文,便于查看,也可以直接链接到原文地址查看

ctf-wiki-Playfair

ctf-wiki-Playfair

Playfair 密码(Playfair cipher or Playfair square)是一种替换密码,1854 年由英国人查尔斯 · 惠斯通(Charles Wheatstone)发明,基本算法如下:

  1. 选取一串英文字母,除去重复出现的字母,将剩下的字母逐个逐个加入 5 × 5 的矩阵内,剩下的空间由未加入的英文字母依 a-z 的顺序加入。注意,将 q 去除,或将 i 和 j 视作同一字。
  2. 将要加密的明文分成两个一组。若组内的字母相同,将 X(或 Q)加到该组的第一个字母后,重新分组。若剩下一个字,也加入 X 。
  3. 在每组中,找出两个字母在矩阵中的地方。
    • 若两个字母不同行也不同列,在矩阵中找出另外两个字母(第一个字母对应行优先),使这四个字母成为一个长方形的四个角。
    • 若两个字母同行,取这两个字母右方的字母(若字母在最右方则取最左方的字母)。
    • 若两个字母同列,取这两个字母下方的字母(若字母在最下方则取最上方的字母)。

新找到的两个字母就是原本的两个字母加密的结果。

以 playfair example 为密匙,得

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

要加密的讯息为 Hide the gold in the tree stump

HI DE TH EG OL DI NT HE TR EX ES TU MP

就会得到

BM OD ZB XD NA BE KU DM UI XM MO UV IF

practicalcryptography.com-Playfair

practicalcryptography.com-Playfair

该网站详细地介绍了Playfair密码,包括历史、运用、网页实现、python实现等等

唯一的缺点就是全英

Cryptanalysis of the Playfair cipher

Cryptanalysis of the Playfair cipher

文章介绍了Playfair密码的破译,不过又是英文

Decrypto

  1. 在线网页
    JavaScript Implement of the Playfair Cipher
    rumkin.com-Playfair Cipher

  2. CAPtfEncoder

  3. C语言实现解密算法
    https://www.cnblogs.com/DDiamondd/p/10744250.html

  4. Python实现解密算法(非模块)
    https://www.cnblogs.com/mambakb/p/10216820.html

原文地址:https://www.cnblogs.com/labster/p/13847289.html