Playfair密码的基本原理及事例
背景
普莱费尔密码(英文: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加密算法是先将明文按两个字母一组进行分组,然后在矩阵中找对应的密文。
取密文的规则如下:
- 若明文出现相同字母在一组,则在重复的明文字母中插入一个填充字母(eg:z)进行分隔后重新分组(eg: balloon被重新分组为ba lz lo on)
- 若分组到最后一组时只有一个字母,则补充字母z
- 若明文字母在矩阵中同行,则循环取其右边下一个字母为密文(矩阵最右边的下一个是最左边的第一个)(eg: ar被加密为RM)
- 若明文字母在矩阵中同列,则循环取其下边下一个字母为密文(矩阵最下边的下一个是最上边的第一个)(eg: mu被加密为CM)
- 若明文字母在矩阵中不同行不同列,则取其同行且与同组另一字母同列的字母为密文(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密码的基本原理及事例相关推荐
- 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 ...
- python 古典密码第一弹(凯撒密码,Playfair密码,维吉尼亚密码)
各位白嫖-漂亮大哥哥姐姐们好,在下菜鸡一枚,主要想在这和大家一起探讨学习之道,一起愉快的学习密码学基础.总所周知,密码学学的好,头发掉的少... 直接进入正题,今天我就主要讲三个密码,而且都是古典密码 ...
- 加密算法学习(一、中、1)——传统加密算法(playfair密码)
本博文借鉴自书本<密码编码学与网络安全--原理与实践(第七版)>,由William Stallings著,王后珍.李莉等译. 参考博客:信息安全-1:python之playfair密码算法 ...
- PlayFair密码原理、代码
1.引入PlayFair密码的原因 (1).因为单表代替的密钥量很小,不能抵抗穷尽搜索攻击 (2).单表代替密码没有将明文字母出现的概率隐藏起来.很容易收到频率分析的攻击 综上所述,我们会引入Play ...
- 代换密码详解+CTF事例
0x01 代换密码与置换密码 首先我们先不看代换密码的定义,通过代换密码和置换密码的区别来了解代换密码到底是什么 置换密码:是指明文中各字符的位置次序重新排列得到密文 代换密码:不同于置换密码,代换密 ...
- Playfair密码
Playfair密码(英文:Playfair cipher 或 Playfair square)是一种替换密码,1854年由查尔斯·惠斯通(Charles Wheatstone)的英国人发明. 编写分 ...
- playfair密码和凯撒密码加密算法的Java实现
文章目录 一.实现广义的凯撒密码加密算法 二.实现广义的playfair密码的加密算法 总结 加密原理: 一.实现广义的凯撒密码加密算法 //实现广义的凯撒密码//凯撒密码的加密String plai ...
- Playfair密码(原理+代码)
目录 1.原理 2.流程图 3.编程实现 4.总结 1.原理 Playfair密码是一种使用一个关键词方格来加密字符对的加密算法,是一种多表代换的对称加密技术. 它依据一个5*5的正方 ...
- playfair密码_密码学中的Playfair密码
playfair密码 Playfair cipher is also a substitution cipher technique but it is a bit different than ot ...
最新文章
- CF939E:Maximize! ——题解
- Google Java编程风格指南中文版
- 第一次听人用男女关系讲 N(Non-Blocking)I(进)O(出),涨姿势了
- 网站接入QQ登录最新2020 java版本
- java applet 文本框_Java Applet 文本框 TextField 小例 | 学步园
- python比较两张图片是否一样_opencv_判断两张图片是否相同
- c语言 stm32结构体赋值,STM32学习笔记9——结构体赋值问题
- python获取usb扫描枪数据_Python - Re: 如何用Python接收扫描枪传来的信息数据
- 用云真机测试本地应用程序
- 【Excel绝技】之 快速数据填充
- 字典类型及操作--易错题
- 谷歌Fuchsia操作系统对编程语言的支持决议
- jQuery教程_编程入门自学教程_菜鸟教程-免费教程分享
- 潜心专研Python模拟登陆专题,实现网易云音乐自动签到!这项目居然只值三百?
- 【Elasticsearch源码】CCR源码分析(二)
- laravel db类
- python IDEL 清屏
- 计量经济学及Stata应用 陈强 第九章模型设定与数据问题习题9.4
- HM编码器代码阅读(20)——与变换量化有关的其他知识
- 计算机软件技术实习预习日志
热门文章
- 低代码加持 你心心念念的客户体验 妥了
- 【OpenFOAM】-olaFlow-算例8-setOlaFlume
- matlab篮球队需要五名队员,2016年数学建模暑期训练题目
- A survey of community search over big graphs
- xmind试用导出无水印_Xmind zen 2020导出png/pdf去水印(Linux版)
- 如何设置珠宝首饰标签纸
- 手游遭遇兼容性、客户端、服务器、防外挂问题如何做?
- 萨姆森阀门定位器3730-300000040000000.03结构和工作原理
- 2021年东港二中高考成绩查询,2021年丹东高考状元名单公布 今年丹东高考状元是谁资料和分数...
- 串口连接线的制作方法 com线制作