凯撒密码
公元前100多年凯撒发明的一种密码,简单来说是平移密码,也就是将字母位置向后移动一定位数。
如原文是ABCDEFG,密钥为3,加密后就是DEFGHIJ。
以密钥的数字向后平移了三位,如果密钥是5就是平移五位。
凯撒密码最简单的破译方式为穷举法(暴力破解法),一共只有26个字母,平移25次并将平移后的字符串进行比较,就能取得最后的原文。
简单替换密码
简单替换密码是凯撒密码的升级版,将平移替换为无序对应。
如原文是ABCDEFGHIJKLMNOPQRSTUVWXYZ,替换后为QWERTYUIOPASDFGHJKLZXCVBNM,中间将没有信息关联,需双方各执一份对照表,才能解码。
简单替换法很难用穷举法来破解,因为明文中的A可以对应所有26个字母,而B可以对应除A对应的字母意外的25个字母,那么我们计算一下26个字母需要的密钥数量为26 X 25 X 24 X......... X 2 = 403291461126605635584000000,密钥的数量太大,用暴力破解,即便每秒遍历10亿个密码,要遍历万需要将近120亿年。
所以简单替换法要用频率分析来破解密码:
假设我们得到了一大串加密后的密文,我们统计所有密文中的所有字符出现的次数,最后得出一个其中一个字符(如“A”)的使用平率最高,那么我们将英文字母按照出现频率排序:ETAOINSHRDLUCMFWGYPBVKJQZ,根据这个线索,我们将密文中的“A”替换为E,我们将所有密文中的“A”替换为E,根据英文中最常见的单词是the,我们找出密文“A”前面两个字符都一样的出现最多的字符串,如“FEA”,将其替换为"THE",这么来看密文“F”对应的应该是T,密文“E”对应的应该是H,我们将密文中的所有的“F”和“E”替换为T和H。我们再动员所有的英语词汇,比如密文中有一段“FEPZZ”,我们可以将前面已知对应的密文进行解密,TH“PZZ”这时可以套用英文单词three进行测试,将“FEPZZ”替换为THREE,那么“P”对应的应该是R,而“Z”对应的应该是E,以此类推,我们将所有密码破译出来。
总结几条:
1、除了高频字母外,低频字母也能是线索。
2、搞清楚开头和结尾能个成为线索,高清单词之间的分割也能够成为线索。
3、密文越长越容易被破解。
4、同一个字符连续出现能够成为线索。
5、破解的速度会越来越快。
Enigma
Enigma是德国人谢尔比乌斯发明的能个进行加密和解密操作的机器,发送者和接收者都必须各自拥有一台Enigma,而且必须有一份相同的密码本,所以Enigma相当于一个加强版的简单替换密码。在二战时被现代计算机鼻祖图灵同志破解密钥。