维吉尼亚算法的原理
1、 Vigenere密码是由法国密码学家Blaise de Vigenere于1858年提出的一种代换密码,它是多表代换密码的典型代表。
2、加解密算法:
Vigenere密码加密算法: ek(x1,x2,…,xm)=(x1+k1,x2+k2,…,xm+km)
Vigenere密码解密算法: dk(y1,y2,…,ym)=(y1-k1,y2-k2,…,ym-km)。
其中k=(k1,k2,…,km)是一个长为m的密钥字,密钥空间的大小为26m,所以对一个相对小的m,穷举密钥也需要很长的时间。如m=7,则密钥空间大小超过8×109,所以手工搜索非常困难。当明文的长度超过m时,可将明文串按长度m分局,然后对每一组使用密钥k加密。
该密码算法的破解方法
1. 穷举密钥搜索
只适用于与小的密钥空间。
2. 频率统计
维吉尼亚密码是通过移位替换的加密方法进行加密,英文中字母出现的频率是不一样的。比如字母 e 是出现频率最高的,占12.7%;其次是t,9.1%;然后是a,o,i,n等,最少的是z,只占0.1%。只要根据足够多的样例来进行统计,最终密文字母的出现概率总是近似于明文字母的出现概率,并且与之一一对应。