查看: 2535|回复: 3

[密码学习] 概率与密码

简洁模式
1
发表于 2008-9-13 21:15:33 | 显示全部楼层
从古至今,在军事、政治、经济等方面,文件的保密性很重要。如果文件泄密,那么可能会导致战役的失败、经济上的重大损失,甚至会导致国家的灭亡。为了保证安全,保密文件的传送经常用“密文”的方式进行。

密文的设计通常利用密码转换。以传送命令:“We will start the fight at eleven o'clock on Wednesday ”为例,显然,在传送过程中应当做到:即使敌方得到了这个命令也不知道其含义。最早的加密方法是伟大的罗马军事家和政治家凯撒(Gaius Julius Caesar,约前100--前44)发明的。他设计了把密文中的每个字母用按字母次序后移三位的字母代替的方法。用此方法编译上面的命令,得到“Zh zloo vwduw wkh iljkw dw hohyhq r'forfn rq Zhgqhvgdb ”。如果不知道替换规则,很难理解其中的含义。
后来有人使用26个字母分别对应1~26个自然数或其他代码等方法传送密文,只要传送一方和接受一方均知道这个对应表即可。

这种方法使用了很长一段时间,有人掌握了破译的方法。你知道是如何破译的吗?

用我们掌握的概率知识,就可以破解这个密码。经过研究,人们发现,英语书面语言中的字母以基本固定的频率出现。如下表所示
字母ABCDEFGHI
频率0.081 60.015 50.022 30.046 30.123 10.023 70.019 80.067 10.066 9
字母JKLMNOPQR
频率0.000 80.006 80.035 40.027 30.067 30.079 50.015 60.000 60.055 5
字母STUVWXYZ
频率0.057 80.097 70.028 10.011 20.027 80.001 40.020 60.000 4

从表中可以看出,不同字母出现的频率不同,这是英语书面语言的一个重要特征。在通常的文章中,字母“e”平均出现的比例占所有字母的12%左右,“t”占9.7%左右,而“j”的出现远小于1%。如果掌握了这个规律,再用上面的方法加密,通过对用密码写的密文中的字母的频率的分析。就比较容易破译出密文。出现频率最高的字母,无论你在编译中使用什么字母,它一般都表示“e”,出现频率次高的字母大概是“t”,等等

喜欢福尔摩斯的学员看到这里一定会想到《跳舞的小人》中,福也是用频率统计法破译密码。
而汉语中最常出现的就是“的” 这对我们破译中文密码也是有帮助的。

上面编译密码的方法的共同特点是一个字母对应另一个确定的字母。当收到得只是短短的一句话时,要找出这种对应关系是比较困难的。但如果文件比较大,或者经常收到一个地方的密文,经过一段时间的积累,就可以利用对字母的频率的分析,得到字母与密码对应关系。这样变异的密码就容易被破译了。

为了使密码设计的更难破译,人们发明了许多反破译的方法。利用随机序列就是一种极为重要的方法。
其原理是:利用取值于1~26之间的整数值随机数序列,使每个字母出现在密码中的概率基本相等。一种理论上不可破译的密码是“(用后即销毁的)一次密码本”。
在实际应用中,这种密码本是伪随机序列,序列中的每一个数字都是1~26之间的整数。例如,若组成这个密码本的伪随机数列为:“12,16,5,7,21,19,15,13,4,14,11,10,16,24,18,15,19,11,5,…,要发送的命令是:“We will start the fight at eleven o'clock on Wednesday ”,那么在“We”这个词中,W对应于伪随机数12,就按字母顺序用W后面的第12个字母 I 表示W,e对应的伪随机数16,就用e后面第16个字母u表示e,“will”编译的过程为w+5=b,i+7=p, l+21=g, l+19=e等等。全句的密文为“Iu bpge hgefe dxb...”这样一来,对方在想通过分析每个字母出现的频率来破译密码就不可能了,因为在密文中每个字母出现的频率几乎相等。

密码虽然神秘,但只要掌握一些概率的知识,我们就能编译&破译它。
本主题帖为【历史主题】,仅楼主发布内容可以浏览。
尚未登录
您需要登录后才可以回帖 登录 | 加入学院