实验吧-密码学-Fair-Play(Playfair解密)

题目:The quick brown fox jumps over the lazy dog!
       ihxo{smzdodcikmodcismzd}

这个题是Playfair解密。

 

Playfair解密算法首先将密钥填写在一个5*5的矩阵中(去Q留Z),矩阵中其它未用到的字母按顺序填在矩阵剩余位置中,根据替换矩阵由密文得到明文。

对密文解密规则如下:

将密文两个两个分开,每两个设为c1、c2。

1 若c1 c2在同一行,对应明文p1 p2分别是紧靠c1 c2 左端的字母。其中最后一列被看做是第一列的左方。

2 若c1 c2在同一列,对应明文p1 p2分别是紧靠c1 c2 上方的字母。其中最后一行被看做是第一行的上方。

3 若c1 c2不在同一行,不在同一列,则p1 p2是由c1 c2确定的矩形的其他两角的字母,且c1和p1一行,c2和p2一行。
 

 这里有个网站可以完成5*5矩阵的部分:http://rumkin.com/tools/cipher/playfair.php

 转换成矩阵之后,根据以上规则进行解密

ih ct 
xo fx
sm pl
zd ay
od fa
ci ir
km is
od fa
ci ir
sm pl
zd ay

将右边的连起来就是flag。
ctfx{playfairisfairplay} 

Playfair 密码是一种经典的替代密码,它通常用于加密敏感信息,保护通信内容。它的原理是将明文划分成对称的二字母组合,然后通过使用固定的密钥矩阵来完成加密和解密过程。 加密过程的步骤如下: 1. 删除明文中的非字母字符,将剩余字符分组成二字母组合。如果明文中包含了奇数个字符,可以加上一个假的字符,如Q,来形成完整的二字母组合。 2. 使用密钥矩阵来加密每一个二字母组合。密钥矩阵通常由一个5*5的格子组成,每个格子中填充一个字母,其中字母J通常被替换成字母I。在加密过程中,我们需要找到每个字母在矩阵中的位置,并根据特定的规则来决定如何替换它。规则如下: a. 如果两个字母在密钥矩阵的同一行中,那么将它们替换成它们右侧的字母。如果某个字母在该行的最右侧,那么它的右侧字母就是这一行的第一个字母。 b. 如果两个字母在密钥矩阵的同一列中,那么将它们替换成它们下方的字母。如果某个字母在该列的最下方,那么它下方的字母就是该列的第一个字母。 c. 如果两个字母在密钥矩阵中形成一个矩形,那么将它们替换成另外两个对角线上的字母,它们的位置与原来的字母相同。 3. 将加密后的二字母组合连在一起得到密文。 解密过程与加密过程类似,只需要将密文中的二字母组合分解成单个字母,然后查询密钥矩阵来确定明文字母。需要注意的是,如果两个密文字母在矩阵中处于同一行或同一列,那么解密过程需要向左或向上查询矩阵,而不是向右或向下。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值