• 古典密码-普莱菲尔密码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

  • 相关阅读:
    快速掌握麦肯锡的分析思维
    如何建立数据分析的思维框架
    《七周数据分析师》-万字总结
    装饰器
    迭代器&生成器
    Excel 怎样去掉单元格中的回车符号
    python面试题(一)
    Python基础5
    Python基础4
    Python enumerate() 函数
  • 原文地址:https://www.cnblogs.com/labster/p/13847289.html
Copyright © 2020-2023  润新知