维吉尼亚密码的原理与凯撒密码类似,其实是凯撒的一种强化和变形,通过使加密相同明文的秘钥不同,来掩盖字符的频率。

我们发现一个特征:相同的明文e,经过不同的字符加密之后变成了不同的密文,掩盖了明文字符e的字符频率。
但也不是找不到字符频率,我们可以发现,将用"h"字符加密的明文取出之后,就变成了普通的凯撒加密,这是可以通过字符频率分析来破解的。
利用的数学原理
用到的数学公式:重合指数

破解思路
1.破解秘钥长度N。
2.将密文分成N组,逐个破解秘钥。
其中fi为每个字符在英文当中的频率。fi^2则表示连续取出两个相连的字符,它们相同的概率。英文中对26种情况求和的统计结果约为0.065。
Ni/N为密文中某个字符占密文的比例,假设秘钥长度为key_len,如果key_len组密文中的重合指数IC1也都与0.065接近,那么就可以推测key_len是秘钥长度了。
当秘钥长度key_len知道以后,我们将密文分成key_len个组,计算每个分组的IC2。
举个栗子:如果第一个分组都是用b字符进行加密,那么a字符的频率会转移到b字符上,c字符的频率会转移到d字符上......我们也做这种相应的转移,让b字符在密文的频率(N1/L)和a字符在英文的频率f0相乘,当然这只是其中一种猜测。我们将这26种字符可能都列出来,最接近IC的一定是用b字符加密的那一组。
转载于:
作者:成成不吃萝卜
链接:https://www.jianshu.com/p/23e3dcb3f0e9
网友评论