Caesar 密码只有25种可能的秘钥,远不够安全。 如果让每个明文字母对应的密文字母没有规律,那么安全程度会提升很多, 比如这章所讲的单表代替密码, 思路如下:
让明文字母中的每一个字母固定地和任意的一个字母交换,如果A-> C, E->Z, B->X,这样第一个字母就可以和26个字母中的任意一个交换,第二个字母就可以和剩下的25个字母中的任意一个交换。。。
那么可能的结果就有26!,大于4*10^26。
比如下面的加密过程:
先确定秘钥:A->C, B->Z,C->X.......I->A.......M->N.....J->Q.....E->W......R->B....Y->R
那么:
明文: IAMJERRY
密文: ACNQWBBR
这样加密之后,如果使用Caesar的穷举解密法的话,那么难度和计算量就直接上升了很多个数量级, 看似这样的加密已经比较安全了, 但是人民大众的智慧是无穷的,可以换一种思路来解密:
每个字母在使用频率上是不一样的, 比如E肯定比Z出现在单词当中的频率高得多, 那么通过统计我们可以算出每个字母在单词中出现的频率, 比如下图
当密文长度达到一定程度是,通过分析每个字母出现的频率, 在和上图对比,并结合实际的语义, 就能很好的破解密文。
原文:http://www.cnblogs.com/wellmaxwang/p/4847755.html