标签:info 单词 发展 加密算 印度 分析 message 一起 其他
密码学小传——凯撒密码的解密起源摄影:产品经理
在我小时候,我自己研究并想出过一种加密算法。
例如,想给喜欢的女同学传递一张纸条,上面写着“我爱你”,但是如果直接传过去,纸条可能会被其他同学拦截,导致秘密泄露。
于是,我把我爱你写成拼音 wo ai ni,然后把26个字母移动几位:
abcdefghijklmnopqrstuvwxyz
ijklmnopqrstuvwxyzabcdefgh
这样一来, w->e o->w a->i i->q n->v,所以 wo ai ni变成了 ew iq vq。只要我喜欢的女同学也有这个对应关系,她就能把密文转换为明文。而其他人如果没有这个对应关系,就看不懂我写的是什么。
小时候对我发明的这种密码沾沾自喜,长大了才知道,这个加密算法叫做 凯撒密码,早在几千年前就已经被发明了。
今天我们来谈谈凯撒密码是如何被破解的。
故事要追溯到公园815年的阿巴斯王朝。当时的学者收集埃及、巴比伦、印度、中国等等文明的文字并翻译为阿拉伯文字。当时的神学家在研究《古兰经》的时候,想为这些天启编定年代顺序。但书上并没有写实际的年份,如何推断呢?
他们想到了一个办法:因为语言是随着历史而不断发展的,有一些词汇先出现,有一些词汇后出现。只要统计文献里面每个词的词频,那么新词多的文献,撰写的时间肯定就晚。
他们的研究粒度,不仅到单词,还到字母,于是发现某些字母,在不同的文献里面,出现的频率总是会高于另一些字母。这一个发现导致了密码分析学的第一次突破。
公元9世纪,阿拉伯哲人肯迪的伟大作品 《解译加密信息手稿》(AManuscriptonDecipheringCryptographicMessages)介绍了密码分析学中的频率分析法的说明。
凯撒加密虽然改变了字母,但是并没有改变字母的频率。假设英文里面出现频率最高的字母是 e,那么使用凯撒密码把 e对应到其他字母,例如 m以后, m的在密文里面的频率就会变成最高。于是数出密文中的每个字母的频率,就可以反向推断出明文的字母。除了单个字母外,字母之间的组合也能够提供有效的信息,例如英文中 the常常一起出现,而密文里面出现了大量的 bpm,由于已经推测出了 m是 e,那么可以进一步推测 bpm可能是 the。
当然,频率分析法并不是总是有用,例如《La Disparition》这本法国小说,全书没有一个字母e,应该作家吉尔伯特·亚戴尔把这本小说翻译成了英文,也没有出现一个e。如果把这本书使用凯撒密码进行加密,那么使用频率分析法在密文里面,把频率最高的字母假设为e就会出错。
标签:info 单词 发展 加密算 印度 分析 message 一起 其他
原文地址:https://blog.51cto.com/15023263/2559169