playfair密码

它在1854到1855年的克里米亚战争和1899年的布尔战争中有广泛应用。但在1915年的一战中被破译了。

用play加密后得到的密文的特点:1将密文两两分成一组,同一组的两个字母不相同2密文长度是偶数

密码表是5X5共25个字母的矩阵(省掉了Z)

加密:

1生成密码表:将密钥竖向写,长度多余5写到第二列,如果密钥中含有相同的字母则后出现的字母被省略,即:写在矩阵中的密钥的所有字母不同

2将明文两两结合在一起,如果结合在一起的两个字母相同,则在中间插入X,即:若明文为MMA,则写成MX   MA

   如果明文长度为奇数,则在明文尾部加X

3生成密文

如果明文一组的两个数在同行,则在密文中生成的两个字母,依次是这两个明文字母的右端字母

如果明文一组的两个数在同列,则在密文中生成的两个字母,依次是这两个明文字母的下端字母

如果明文一组的两个数在不同行不同列,则在密文中生成的两个字母,依次是以这两个明文字母为顶点生成矩阵的另两个顶点(有两种结果,分别是横向取,纵向取,横向取是取明文字母的同一行,纵向取是取明文字母的同一列,取法会事先约定)

4将得到的密文大写 然后任意几个组合在一起,完成

解密:将3倒过来即可,取左,取上,取另两个对角

举个栗子:1.Z不在密钥中

Play分值:10

  • 来源: iFurySt
  • 难度:
  • 参与人数:1033人
  • Get Flag:157人
  • 答题人数:187人
  • 解题通过率:84%



转载于:https://www.cnblogs.com/iamjuruo/p/7470948.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值