密码学 | 维吉尼亚密码(Vigener)

1 单字母替换(前备知识)

在这里插入图片描述
在大量英文文献以及普通英文文章中,研究者发现这种文章中单词出现的频率符合一定的规律。如上表所示,例如a出现的频率在8.2%左右,e出现的频率最高,在12.4%左右。y、z频率最低,在0.1%左右。

1 以这些统计规律计算各个字母出现概率的平方和:
在这里插入图片描述
平方和基本稳定在0.065。计算过程如下:
在这里插入图片描述
2 若此时我们并不知道各个字母所拥有的频率,使用均匀分布的方法,假设所有字母出现的频率均为1/26,则所得到的概率的平方和为:
在这里插入图片描述
以如上的两个值0.065和0.038来进行维吉尼亚密码的解密。

2 维吉尼亚密码是啥

在这里插入图片描述
首先要确定一个长度为n的密钥,使用其进行循环加密明文,具体方法为用明文中的单字符和密钥中的各个字符进行对应相加得到密文。在解密时,对应相减得到明文。

此时很容易得知相同明文在不同密钥的加密下,得到的密文是不同的。

3 想办法得到密钥

  1. Kasiski 测试法(基于密文)
    在这里插入图片描述

面对一连串未知含义的密文时,先找到总是重复出现的有序序列(多找几对),为之后合理推算密钥长度做基础。

  1. 重合指数法(基于密文)

先猜测可能的密钥长度n,在讲整体密文分成n组,因为每间隔n个单位长度的字母总是使用同一个单位密钥进行加密。统计每个分组的所统计的各个字母频率的平方和。例子如下:

在这里插入图片描述
可以发现,猜测密钥长度为5,所计算出的5个分组的平方和基础处于0.065的上下界内,至于是否接受该结果可以使用假设检验的知识进行判断;若猜测错误的话,子串的重合指数极大可能在0.038附近,在此例中,我们认为密钥长度为5在很大程度上是可能的。
之后可加密的字母共有26种,那么看解密后的哪种明文有意义即可,或者再次使用统计学上的规律:
在这里插入图片描述
只有正确解密到的明文才能符合最终0.065的重合指数,而其他的都是随机值分布在0.038附近。

  1. 暴力(使用选择明文攻击)

直接用一长串a送入输入端,观察根据密钥得到的密文,进而反推密钥。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiaoni61

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值