背景

普莱费尔密码(英文:Playfair cipher 或 Playfair square)是一种使用一个关键词方格来加密字符对的加密法,1854年由一位名叫查尔斯·惠斯通(Charles Wheatstone)的英国人发明。

基本原理

Playfair算法基于一个5*5的字母矩阵,该矩阵使用一个关键词构造,方法是按从左到右、从上到下顺序,填入关键词的字母(去除重复字母)后,将字母表其作余字母填入。

它依据一个5x 5的正方形组成的密码表来编写,密码表里排列有25个字母。如果一种语言字母超过 25 个,可以去掉使用频率最少的一个。如,法语一般去掉w或k,德语则是把i和j合起来当成一个字母看待。英语中z使用最少,可以去掉它。

操作步骤

①构造一个基于5×5的字母矩阵

②该矩阵使用一个关键词(密钥)来构建

③然后从左到右、从上到下;依次填入密钥的字母(注意:密钥中重复的字母不填),然后再以字母表顺序依次填入其他字母

④字母 I 和 J 算作一个字母

例如:取关键字(密钥):monarchy,则字母矩阵为下图所示(矩阵只能放25个字母,I与J同)

加密规则

Playfair加密算法是先将明文按两个字母一组进行分组,然后在矩阵中找对应的密文。

取密文的规则如下:

  1. 若明文出现相同字母在一组,则在重复的明文字母中插入一个填充字母(eg:z)进行分隔后重新分组(eg: balloon被重新分组为ba lz lo on)
  2. 若分组到最后一组时只有一个字母,则补充字母z
  3. 若明文字母在矩阵中同行,则循环取其右边下一个字母为密文(矩阵最右边的下一个是最左边的第一个)(eg: ar被加密为RM)
  4. 若明文字母在矩阵中同列,则循环取其下边下一个字母为密文(矩阵最下边的下一个是最上边的第一个)(eg: mu被加密为CM)
  5. 若明文字母在矩阵中不同行不同列,则取其同行且与同组另一字母同列的字母为密文(eg: hs被加密为BP,ea被加密为IM或JM)

总结:同行、同列的明文则向右、向下位移一位得到的字母作为密文输出

不同行不同列的明文则取其同行同列交互的字母作为密文输出

 注意:若关键词(密钥)中出现相同的字母时,则需要去掉重复的密钥(如果有重复则跳过)

例如:关键词(密钥)是:PLAYFAIR IS A DIGRAM CIPHER

然后按照上述方式进行变换加密


接下来就以具体的题目来进行分析:

①从题目中知道关键字(密钥):encrypt 之后,然后构造5×5的矩阵

e n c r y
p t a b d
f g h i/j k
l m o q s
u v w x y

②然后根据上述的加密规则:

明文:mata 两两进行分组➡ma ta

此时 ma 在不同行不同列 对应的密文为:ot

ta  在同行 对应密文为:ab

综上:mata对应的密文为:otab

Playfair密码的基本原理及事例相关推荐

  1. 08:vigenère密码_密码技术:Vigenére密码,Playfair密码,Hill密码

    08:vigenère密码 1)Vigenére密码 (1) Vigenére Cipher) This technique is an example of Polyalphabetic Subst ...

  2. python 古典密码第一弹(凯撒密码,Playfair密码,维吉尼亚密码)

    各位白嫖-漂亮大哥哥姐姐们好,在下菜鸡一枚,主要想在这和大家一起探讨学习之道,一起愉快的学习密码学基础.总所周知,密码学学的好,头发掉的少... 直接进入正题,今天我就主要讲三个密码,而且都是古典密码 ...

  3. 加密算法学习(一、中、1)——传统加密算法(playfair密码)

    本博文借鉴自书本<密码编码学与网络安全--原理与实践(第七版)>,由William Stallings著,王后珍.李莉等译. 参考博客:信息安全-1:python之playfair密码算法 ...

  4. PlayFair密码原理、代码

    1.引入PlayFair密码的原因 (1).因为单表代替的密钥量很小,不能抵抗穷尽搜索攻击 (2).单表代替密码没有将明文字母出现的概率隐藏起来.很容易收到频率分析的攻击 综上所述,我们会引入Play ...

  5. 代换密码详解+CTF事例

    0x01 代换密码与置换密码 首先我们先不看代换密码的定义,通过代换密码和置换密码的区别来了解代换密码到底是什么 置换密码:是指明文中各字符的位置次序重新排列得到密文 代换密码:不同于置换密码,代换密 ...

  6. Playfair密码

    Playfair密码(英文:Playfair cipher 或 Playfair square)是一种替换密码,1854年由查尔斯·惠斯通(Charles Wheatstone)的英国人发明. 编写分 ...

  7. playfair密码和凯撒密码加密算法的Java实现

    文章目录 一.实现广义的凯撒密码加密算法 二.实现广义的playfair密码的加密算法 总结 加密原理: 一.实现广义的凯撒密码加密算法 //实现广义的凯撒密码//凯撒密码的加密String plai ...

  8. Playfair密码(原理+代码)

    目录 1.原理 2.流程图 3.编程实现 4.总结 1.原理         Playfair密码是一种使用一个关键词方格来加密字符对的加密算法,是一种多表代换的对称加密技术. 它依据一个5*5的正方 ...

  9. playfair密码_密码学中的Playfair密码

    playfair密码 Playfair cipher is also a substitution cipher technique but it is a bit different than ot ...

最新文章

  1. CF939E:Maximize! ——题解
  2. Google Java编程风格指南中文版
  3. 第一次听人用男女关系讲 N(Non-Blocking)I(进)O(出),涨姿势了
  4. 网站接入QQ登录最新2020 java版本
  5. java applet 文本框_Java Applet 文本框 TextField 小例 | 学步园
  6. python比较两张图片是否一样_opencv_判断两张图片是否相同
  7. c语言 stm32结构体赋值,STM32学习笔记9——结构体赋值问题
  8. python获取usb扫描枪数据_Python - Re: 如何用Python接收扫描枪传来的信息数据
  9. 用云真机测试本地应用程序
  10. 【Excel绝技】之 快速数据填充
  11. 字典类型及操作--易错题
  12. 谷歌Fuchsia操作系统对编程语言的支持决议
  13. jQuery教程_编程入门自学教程_菜鸟教程-免费教程分享
  14. 潜心专研Python模拟登陆专题,实现网易云音乐自动签到!这项目居然只值三百?
  15. 【Elasticsearch源码】CCR源码分析(二)
  16. laravel db类
  17. python IDEL 清屏
  18. 计量经济学及Stata应用 陈强 第九章模型设定与数据问题习题9.4
  19. HM编码器代码阅读(20)——与变换量化有关的其他知识
  20. 计算机软件技术实习预习日志

热门文章

  1. 低代码加持 你心心念念的客户体验 妥了
  2. 【OpenFOAM】-olaFlow-算例8-setOlaFlume
  3. matlab篮球队需要五名队员,2016年数学建模暑期训练题目
  4. A survey of community search over big graphs
  5. xmind试用导出无水印_Xmind zen 2020导出png/pdf去水印(Linux版)
  6. 如何设置珠宝首饰标签纸
  7. 手游遭遇兼容性、客户端、服务器、防外挂问题如何做?
  8. 萨姆森阀门定位器3730-300000040000000.03结构和工作原理
  9. 2021年东港二中高考成绩查询,2021年丹东高考状元名单公布 今年丹东高考状元是谁资料和分数...
  10. 串口连接线的制作方法 com线制作