playfair加密
来源:互联网 发布:开个淘宝网店多少钱 编辑:程序博客网 时间:2024/05/22 01:45
Play分值:10
来源: iFurySt 难度:易参与人数:1318人Get Flag:256人答题人数:306人解题通过率:84%
某种加密方式,玩一玩吧 密钥:shiyanb 密文:KQSAMFPAOPMFPA
hint:一律采用竖向加密
Hint: key小写
解:
playfair密码
它在1854到1855年的克里米亚战争和1899年的布尔战争中有广泛应用。但在1915年的一战中被破译了。
用play加密后得到的密文的特点:1将密文两两分成一组,同一组的两个字母不相同2密文长度是偶数
密码表是5X5共25个字母的矩阵(省掉了Z)
加密:
1生成密码表:将密钥竖向写,长度多余5写到第二列,如果密钥中含有相同的字母则后出现的字母被省略,即:写在矩阵中的密钥的所有字母不同
2将明文两两结合在一起,如果结合在一起的两个字母相同,则在中间插入X,即:若明文为MMA,则写成MX MA
如果明文长度为奇数,则在明文尾部加X
3生成密文
如果明文一组的两个数在同行,则在密文中生成的两个字母,依次是这两个明文字母的右端字母
如果明文一组的两个数在同列,则在密文中生成的两个字母,依次是这两个明文字母的下端字母
如果明文一组的两个数在不同行不同列,则在密文中生成的两个字母,依次是以这两个明文字母为顶点生成矩阵的另两个顶点(有两种结果,分别是横向取,纵向取,横向取是取明文字母的同一行,纵向取是取明文字母的同一列,取法会事先约定)
4将得到的密文大写 然后任意几个组合在一起,完成
解密:将3倒过来即可,取左,取上,取另两个对角
这题是playfair,依照百科中playfair的定义,先构造5*5密码表,
s n f m t
h b g o u
i c j p v
y d k q w
a e l r x
这里shiyanb必须以竖列(如果是横向的话待会得不到结果)填充,后面再填充其他没出现过的字符,最后丢弃频率低的z
把密文KQSAMFPAOPMFPA分组
kq sa mf pa op mf pa
按照playfair的解密方法,同行的取左(左右互通),同列的取上(上下互通),不在同行、同列的取所在矩形对角(本题是横向替换),所以得到
dk ay fn ir mo fn ir
也就是dkayfnirmofnir
- playfair 加密
- playfair加密
- C基础/PlayFair加密
- Playfair密码变种加密
- Playfair密码变种加密
- Playfair密码 变种加密字符串
- playfair加密的简单实现
- Vernam加密法 Playfair密码加密
- 使用Playfair密码变种加密字符串
- 利用playfair置换实现密钥加密
- 蓝桥杯之Playfair密码变种加密
- 用c++写的PlayFair密码的加密与解密算法
- 实现playfair(多字母替代密码)加密与解密程序
- 在Android平台上的playfair以及hill加密解密的小实验项目
- 第二届蓝桥杯C/C++组第十题 Playfair密码变种加密
- Playfair Cipher
- Playfair密码
- Playfair密码
- poj1936——All in All
- 监听包的安装状态
- ganglia metric 默认监控项翻译 和 为什么空循环进程会导致CPU占有率很高?
- RTEMS的裁剪
- exists
- playfair加密
- 中介者模式
- 散列入门(1)----PAT-b1029. 旧键盘(20)
- 营销时代的迷思
- 安装Linux Mint 17后要做的20件事
- keystone/common/dependency.py
- NY-8一种排序
- 如何让让多个横向的DIV居中显示
- C++练习