1 单字母替换(前备知识)
在大量英文文献以及普通英文文章中,研究者发现这种文章中单词出现的频率符合一定的规律。如上表所示,例如a出现的频率在8.2%左右,e出现的频率最高,在12.4%左右。y、z频率最低,在0.1%左右。
1 以这些统计规律计算各个字母出现概率的平方和:
平方和基本稳定在0.065。计算过程如下:
2 若此时我们并不知道各个字母所拥有的频率,使用均匀分布的方法,假设所有字母出现的频率均为1/26,则所得到的概率的平方和为:
以如上的两个值0.065和0.038来进行维吉尼亚密码的解密。
2 维吉尼亚密码是啥
首先要确定一个长度为n的密钥,使用其进行循环加密明文,具体方法为用明文中的单字符和密钥中的各个字符进行对应相加得到密文。在解密时,对应相减得到明文。
此时很容易得知相同明文在不同密钥的加密下,得到的密文是不同的。
3 想办法得到密钥
- Kasiski 测试法(基于密文)
面对一连串未知含义的密文时,先找到总是重复出现的有序序列(多找几对),为之后合理推算密钥长度做基础。
- 重合指数法(基于密文)
先猜测可能的密钥长度n,在讲整体密文分成n组,因为每间隔n个单位长度的字母总是使用同一个单位密钥进行加密。统计每个分组的所统计的各个字母频率的平方和。例子如下:
可以发现,猜测密钥长度为5,所计算出的5个分组的平方和基础处于0.065的上下界内,至于是否接受该结果可以使用假设检验的知识进行判断;若猜测错误的话,子串的重合指数极大可能在0.038附近,在此例中,我们认为密钥长度为5在很大程度上是可能的。
之后可加密的字母共有26种,那么看解密后的哪种明文有意义即可,或者再次使用统计学上的规律:
只有正确解密到的明文才能符合最终0.065的重合指数,而其他的都是随机值分布在0.038附近。文章来源:https://www.toymoban.com/news/detail-499088.html
- 暴力(使用选择明文攻击)
直接用一长串a送入输入端,观察根据密钥得到的密文,进而反推密钥。文章来源地址https://www.toymoban.com/news/detail-499088.html
到了这里,关于密码学 | 维吉尼亚密码(Vigener)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!