

对密码的分析是基于Kerckhoff假设
假设攻击者知道使用Caesar 密码加密。如果攻击者只知道密文,即唯密文攻击,只要穷举测试所有可能字母移位的距离,最多尝试25次
如果攻击者知道一个字符以及它对应的密文,即已知明文攻击,那么攻击者很快就通过明文字符和对应的密文字符之间的距离推出密钥
这个例子说明一个密码体制安全至少要能够抵抗穷举密钥搜索攻击,普通的做法是将密钥空间变得足够大。
但是,很大的密钥空间并不是保证密码体制安全的充分条件,下面的例子可以说明这一点
对Caesar 密码进行改进,假设密文是26个字母的任意代换,密钥是明文字母到密文字母的一个字母表,密钥长度是26字长
下面用一个密钥句子构造一个字母代换表
密钥句子为the message was transmitted an hour ago,按照密钥句子中的字母依次填入字母表(重复的字母只用一次),未用的字母按自然顺序排列
原字母表abcdefghijklmnopqrstuvwxyz
代换字母表THEMSAGWRNIDOUBCFJKLPQVXYZ
若明文为please confirm receipt
使用上面的代换字母表,则密文为CDSTKSEBUARJOJSESRCL
使用上面的方法代换,总共有 26! = 4 x 1026 种密钥
从表3.1可以看到穷举搜索这么多的密钥很困难
但这并不表示该密码不容易破解
破解这类密码的突破点是由于语言本身的特点是充满冗余的,每个字母使用的频率不相等
单表代换密码没有改变字母相对出现的频率
明文字母的统计特性在密文中能够反映出来, 当通过统计密文字母的出现频率,可以确定明文字母和密文字母之间的对应关系
单字母按照出现频率的大小可以分为下面5类:
(1) e:出现的频率大约为0.127
(2) t, a, o, I, n, s, h, r:出现的频率大约在0.06-0.09之间
(3) d, l:出现的频率约为0.04
(4) c, u, m, w, f, g, y, p, b:出现的频率大约在0.015-0.028之间
(5) v, k, j, x, q, z:出现的频率小于0.01
双字母和三字母组合都有现成的统计数据,常见的双字母组合和三字母组合统计表能够帮助破解密文。
频率最高的30个双字母(按照频率从大到小排列):
th he in er an re ed on es st en at to nt ha nd ou ea ng as or ti is et it ar te se hi of
频率最高的20个3字母(按照频率从大到小排列):
the ing and her ere ent tha nth was eth for dth hat she ion int his sth ers ver
| 各省软考办 | ||||||||||