古典加密方法(一)代换技术

一、凯撒密码

  已知最早的密码,将字母表的每个字母用之后的第3个字母来代换(循环代换)。

  由于以下三个特征导致可以轻易被穷举攻击分析方法破解。

  1、已知加密和解密算法;2、密钥空间过小;3、明文所用语言已知,且意义易于识别。

  为改善密钥空间过小的问题,便发展成单表代换密码。

二、单表代换密码

  允许字母表任意代换,使得密钥空间由25种可能性急剧增长到26!种可能(大于4×1026)。

  然而,由于密文保留了原始字母使用频率的统计学特征,因而很容易被破解。

  为了尽量消除密文中残留的语法模式和结构,又发展成两种路子,一是对明文中多个字母一起加密,另一种是采用多表代换密码。

三、Playfair密码--最著名的多表代换密码

  把明文中的双字母音节作为一个单元进行两两代换。在19世纪发挥了重要作用,一战中被攻破。

  Playfair算法基于一个由密钥词组成的5×5字母矩阵(字母I和J当做一个字母)。选择好密钥词后,首先将密钥次词从左到右、从上至下填在矩阵格子中,再将剩余字母按字母顺序依次填满格子。

  如使用china作为秘钥词,可得如下矩阵:

     

  对明文按如下规则一次加密两个字母

  1、如果该字母对的两个字母相同,则在它们之间插入一个填充字母,比如x。例如:ballon先把它变成ba lx lo on。

  2、字母对落在同一行,则向右循环代换,如ca变成hc。

  3、字母对落在同一列,则向下循环代换,如cv变成bc。

  4、其他情况则代换为与该字母同行,另一字母同列的字母。如dt变成fr。

  以上算法使得对单个字母的判断变得困难许多。然而由于它的密文仍然保留了明文语言的结构,因而仍可破解。

四、Hill密码-多表代换密码

  采用m阶可逆矩阵(等效于m个线性等式)对m个连续的明文字母(转换成数字)进行加密。

  如

  同playfair相比,Hill的优点是完全屏蔽了字母(小于m-1个)频率特性,足以对抗唯密文攻击,然而却很容易被已知明文攻击破解。

五、Vigenere密码-playfair密码改进

  构造一个26×26的巨大字母矩阵

  

  设置一个密钥词,如china。加密过程:在矩阵中,以密钥和明文字母分别作为横纵坐标,那个位置的字母作为密文。

  由于每个明文字母对应着多个密文字母,因此字母出现的频率被隐蔽了,不过并非所有的明文结构信息都被隐蔽了,它依赖于所用密钥词的长度,实际相当于密钥长度N个单表代换。为了增大破译的难度,只有尽量使得密钥词的长度尽可能地长。

  将该密码体制略作改变,使运算基于二进制数据而非字母,则是vernam密码。该体制可以简明地表述为:

    ci=piki         Ci  密文第i个二进制  Pi明文的第i个二进制    Ki密钥的第i个二进制   

  对Vernam密码的改进就是著名的一次一密,这是不可攻破的密码体制。

六、一次一密

  一次一密其实就是使用和消息一样长且无重复的随机密钥来加密信息,由于密钥的产生与明文没有任何统计关系,因而无法攻破。

  然而这种体制也存在着两个基本难点:1、产生大规模的随机密钥很困难2、更令人担忧的是密钥的分配与保护。

  由于这些困难,实际应用中很少用一次一密

原文地址:https://www.cnblogs.com/block2016/p/5418739.html