1. 程式人生 > 實用技巧 >古典密碼-普萊菲爾密碼Playfair

古典密碼-普萊菲爾密碼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