古典加密技术中最基本的两种算法是替代算法和置换移位法。
1.替代算法
替代算法指的是明文的字母由其他字母或数字或符号所代替。最著名的替代算法是凯撒密码。凯撒密码的原理很简单,其实就是单字母替换。我们看一个简单的例子:
明文:abcdefghijklmnopq
密文:defghijklmnopqrst
若明文为student,对应的密文则为vwxghqw 。在这个一一对应的算法中,恺撒密码将字母表用了一种顺序替代的方法来进行加密,此时密钥为3,即每个字母顺序推后3个。由于英文字母为26个,因此恺撒密码仅有26个可能的密钥,非常不安全。
为了加强安全性,人们想出了更进一步的方法:替代时不是有规律的,而是随机生成一个对照表。
明文:abcdefghijklmnopqrstuvwxyz
密文:xnyahpogzqwbtsflrcvmuekjdI
此时,若明文为student,对应的密文则为 vmuahsm 。这种情况下,解密函数是上面这个替代对照表的一个逆置换。
不过,有更好的加密手段,就会有更好的解密手段。而且无论怎样的改变字母表中的字母顺序,密码都有可能被人破解。由于英文单词中各字母出现的频度是不一样的,通过对字母频度的统计就可以很容易的对替换密码进行破译。为了抗击字母频度分析,随后产生了以置换移位法为主要加密手段的加密方法。
2.置换移位法
使用置换移位法的最著名的一种密码称为维吉尼亚密码。它以置换移位为基础的周期替换密码。
前面介绍的替代算法中,针对所有的明文字母,密钥要么是一个唯一的数,要么则是完全无规律可寻的。在维吉尼亚密码中,加密密钥是一个可被任意指定的字符串。加密密钥字符依次逐个作用于明文信息字符。明文信息长度往往会大于密钥字符串长度,而明文的每一个字符都需要有一个对应的密钥字符,因此密钥就需要不断循环,直至明文每一个字符都对应一个密钥字符。对密钥字符,我们规定密钥字母a,b,c,d……y,z对应的数字n为:0,1,2,3……24,25。每个明文字符首先找到对应的密钥字符,然后根据英文字母表按照密钥字符对应的数字n向后顺序推后n个字母,即可得到明文字符对应的密文字符。
如果密钥字为deceptive , 明文为 wearediscoveredsaveyourself,则加密的过程为:
明文: wearediscoveredsaveyourself
密钥: deceptivedeceptivedeceptive
密文: zicvtwqngrzgvtwavzhcqyglmgj
对明文中的第一个字符w,对应的密钥字符为d,它对应需要向后推3个字母,w,x,y,z,因此其对应的密文字符为z。上面的加密过程中,可以清晰的看到,密钥deceptive被重复使用。
古典密码体制将数学的方法引入到密码分析和研究中,为现代加密技术的形成和发展奠定了坚实的基础。
转载自:http://zhidao.baidu.com/question/158793154.html