维吉尼亚密码的原理与凯撒密码类似,其实是凯撒的一种强化和变形,通过使加密相同明文的秘钥不同,来掩盖字符的频率。
但也不是找不到字符频率,我们可以发现,将用"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字符加密的那一组。
培根密码
弗朗西斯·培根,英国人,他是第一个意识到科学技术能够改变世界面貌的哲学家。他不仅意识到这一点,而且积极投入到科学技术的探索中。他对密码学的兴趣很浓,设计出的密码也丰富了密码学的内容。
他设计的密码非常独特,它可以不加过多的“雕饰”,几乎以本来的“素面”在你眼前晃过,而不会引起你的注意。
培根所用的密码是一种本质上用二进制数设计的。不过,他没有用通常的0和1来表示,而是采用a和b。下面是他设计的26个英文字母二进制表示法。
A aaaaa
B aaaab
C aaaba
D aaabb
E aabaa
F aabab
G aabba
H aabbb
I abaaa
J abaab
K ababa
L ababb
M abbaa
N abbab
O abbba
P abbbb
Q baaaa
R baaab
S baaba
T baabb
U babaa
V babab
W babba
X babbb
Y bbaaa
Z bbaab
编写密码时,把密文每五个字母为一组,凡是其中的正体字母代表a,斜体字母代表b。随意选取句子或文章,就可以通过改变字母的写法来加密了。
此外,还有
字母表顺序-数字
进制转换密码
Mod算法
倒序
间隔
字母频率
凯撒密码(Caesar Shifts, Simple Shift)
凯撒移位(中文版)
栅栏密码(The Rail-Fence Cipher)
维吉尼亚密码(Vigenère Cipher)
Polybius密码(Polybius Cipher)
ADFGX/ADFGVX密码(ADFGX/ADFGVX Cipher)
ADFGX
ADFGVX
乘法密码(Multiplication Cipher)
仿射密码(Affine Shift)
希尔密码(Hill Cipher)
加密
解密
Playfair密码(Playfair Cipher)
摩斯电码
置换密码(Transposition Cipher)
替代密码(Monoalphabetic Substitution)
字母表数字
字母表代码
反字母表
随机乱序字母
棋盘密码
键盘密码
键盘移位
软键盘密码
数字小键盘密码
手机键盘密码
数字谐音密码
数字记忆编码
百度/Google/网页字符
百度字符(GB2312)
Google字符(URI)
网页编码(Unicode)
Alt+数字小键盘
MD5
超字数不一一解释了。可以百度。
维吉尼亚密码引入了“密钥”的概念,即根据密钥来决定用哪一行的密表来进行替换,以此来对抗字频统计。假如以上面第一行代表明文字母,左面第一列代表密钥字母,对如下明文加密:
TO BE OR NOT TO BE THAT IS THE QUESTION
当选定RELATIONS作为密钥时,加密过程是:明文一个字母为T,第一个密钥字母为R,因此可以找到在R行中代替T的为K,依此类推,得出对应关系如下:
密钥:RE LA TI ONS RE LA TION SR ELA TIONSREL
明文:TO BE OR NOT TO BE THAT IS THE QUESTION
密文:KS ME HZ BBL KS ME MPOG AJ XSE JCSFLZSY
与凯撒密码类似,进行一下运算两次即可