清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS ·A用J替代、B用O替代….Z用Z替代,对于明文 P= COMPUTER SYSTEMS则密文为 YMKNTSBQ RXRSBKR。 °JOY这个密钥很短,多数明文字母离开其密文等价 字母仅有一个或几个位置。若用长的密钥字,则距 离变大,因而便难于判断出文字密钥。 用单表密码代替法算法进行加密或解密可以看成是 直接查类似上面的映射表来实现的。变换一个字符 只需要一个固定的时间,这样加密n个字符的时间 与n成正比。短字、有重复模式的单词,以及常用 的起始和结束字母都给出猜测字母表排列的线索。 英语字母的使用频率可以明显地在密文中体现出来, 这是单表密码代替法的主要缺点。例如,在英语中
• A用J替代、B用O替代…Z用Z替代,对于明文 P=COMPUTER SYSTEMS 则密文为: YMKNTSBQ RXRSBKR。 • JOY这个密钥很短,多数明文字母离开其密文等价 字母仅有一个或几个位置。若用长的密钥字,则距 离变大,因而便难于判断出文字密钥。 • 用单表密码代替法算法进行加密或解密可以看成是 直接查类似上面的映射表来实现的。变换一个字符 只需要一个固定的时间,这样加密n个字符的时间 与n成正比。短字、有重复模式的单词,以及常用 的起始和结束字母都给出猜测字母表排列的线索。 英语字母的使用频率可以明显地在密文中体现出来, 这是单表密码代替法的主要缺点。例如,在英语中
清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS 最常用的字母是e,其次是t,再其次是a,o,n,i 破译的方法就是先计算密文中所有字母出现的相对 频率,并暂时指定一个出现最多的字母为e,其次 是t。然后就研究寻找形如e结构最多的三字母组 合,这时一个有力的假想就是X即为h(即密文Xe是 英文中经常出现的明文定冠词the)。依次类推,假 如thY堵型的结构也频繁的出现,就可能以a代替Y 根据这个方法,还可找到两个形如aZW结构的频 繁出现的三字母组合,其相当大的可能就是and 根据这种猜想和判断,能初步构成一个试探性明文 由于单表代替法是明文字母与密文字母集之间的 一映射,所以在密码文中仍然保存了明文码中的单 字母频率分布,这使其安全性大大降低。而多表替 代密码通过给每个明文字母定义密码文元素消除了
最常用的字母是e,其次是t,再其次是a,o,n,i。 破译的方法就是先计算密文中所有字母出现的相对 频率,并暂时指定一个出现最多的字母为e,其次 是t。然后就研究寻找形如tXe结构最多的三字母组 合,这时一个有力的假想就是X即为h(即密文tXe是 英文中经常出现的明文定冠词the)。依次类推,假 如thYt型的结构也频繁的出现,就可能以a代替Y。 根据这个方法,还可找到两个形如aZW结构的频 繁出现的三字母组合,其相当大的可能就是and。 根据这种猜想和判断,能初步构成一个试探性明文。 由于单表代替法是明文字母与密文字母集之间的一 一映射,所以在密码文中仍然保存了明文码中的单 字母频率分布,这使其安全性大大降低。而多表替 代密码通过给每个明文字母定义密码文元素消除了 这种分布
清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS (2)多表替代密码 周期替代密码是一种常用的多表替代密码,又称为 费杰尔( Vigenere)密码,这种替代法是循环的使用 有限个字母来实现替代的一种方法。若明文信息 mlm2m3.mn,采用n个字母(m个字母为B1, B2,…,Bn)替代法,那么m1将根据字母B的特 征来替代,mn+又将根据B1的特征来替代,mn+2 又将根据B2的特征来替代……,如此循环。可见 B1,B2,…,Bn就是加密的密钥。 这种加密的密码表是以字母表移位为基础,把26个 英文字母进行循环移位,排列在一起,形成26×26 的方阵,该方阵被称为费杰尔密码表 采用的算法为:
(2) 多表替代密码 • 周期替代密码是一种常用的多表替代密码,又称为 费杰尔(Vigenere)密码,这种替代法是循环的使用 有限个字母来实现替代的一种方法。若明文信息 m1m2m3…mn,采用n个字母(n个字母为B1, B2,…,Bn )替代法,那么m1将根据字母B1的特 征来替代,mn+l又将根据B1的特征来替代,mn+2 又将根据B2的特征来替代……,如此循环。可见 B1,B2,…,Bn就是加密的密钥。 • 这种加密的密码表是以字母表移位为基础,把26个 英文字母进行循环移位,排列在一起,形成26×26 的方阵,该方阵被称为费杰尔密码表。 • 采用的算法为:
清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS f(a=(a+ Bi)mod n(i=(1, 2,..., n)) 实际使用时,往往把某个容易记忆的词或词组当作 密钥。给一个信息加密时,只要把密钥反复写在明 文下方(上方),每个明文字母下面(上面对应的密 钥字母说明该明码文字母应该用费杰尔密码表的哪 一行加密。 例如,以 COOKIEMONSTER为密钥,为把较长明 文译成密码,可重复地把密钥写在明文上方,例如: COOKIEMONSTERCOOKIEMONSTERCOOKI EMONSTERCOOKIEMO fourscoreandsevenyearsagoourmothersbroughtfort
• f(a)=(a+Bi) mod n (i=(1,2,…,n)) • 实际使用时,往往把某个容易记忆的词或词组当作 密钥。给一个信息加密时,只要把密钥反复写在明 文下方(上方),每个明文字母下面(上面)对应的密 钥字母说明该明码文字母应该用费杰尔密码表的哪 一行加密。 • 例如,以COOKIEMONSTER为密钥,为把较长明 文译成密码,可重复地把密钥写在明文上方,例如: COOKIEMONSTERCOOKIEMONSTERCOOKI EMONSTERCOOKIEMO fourscoreandsevenyearsagoourmothersbroughtfort h
清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS 其加密过程就是以明码文字母选择列,以密钥字母 选择行,两者的交点就是加密生成的密码文字母。 解密时,以密钥字母选择行,从中找到密码文字母, 密码文字母所在列的列名即为明码文字母。在此例 中,将f译成密码需用C行的凯撒字母,密文为H, 把o与u分别译成密文就得采用O行凯撒字母,其密 文为B与H,其他明文字母依次类推。按照明文的 位置,用不同的密文字母代替明文字母,例如, the这种三字母组合,将根据它们在明文中的位置, 在密文中会映射出不同的三字母组合。 多字母密码要比单字母密码好,但只要给密码分析 员以足够数量的密文,总还是可以进行破译的,这 里的加密关键在于密钥。通常进一步采用的方法是: 加长密钥长度或采用随机的二进制串作为密钥
• 其加密过程就是以明码文字母选择列,以密钥字母 选择行,两者的交点就是加密生成的密码文字母。 解密时,以密钥字母选择行,从中找到密码文字母, 密码文字母所在列的列名即为明码文字母。在此例 中,将f译成密码需用C行的凯撒字母,密文为H, 把o与u分别译成密文就得采用O行凯撒字母,其密 文为B与H,其他明文字母依次类推。按照明文的 位置,用不同的密文字母代替明文字母,例如, the这种三字母组合,将根据它们在明文中的位置, 在密文中会映射出不同的三字母组合。 • 多字母密码要比单字母密码好,但只要给密码分析 员以足够数量的密文,总还是可以进行破译的,这 里的加密关键在于密钥。通常进一步采用的方法是: 加长密钥长度或采用随机的二进制串作为密钥