古典密码

1949年香农发表《保密系统的通信原理》,将古典密码推向现代密码。古典密码主要是代换密码(substitution)和置换(permutation)密码。

一、置换密码

仅改变明文中元素的位置,但元素本身的值并不会改变。

1、列置换

将明文按二维数组排列,根据密钥进行列置换。

2、周期置换

将明文按密钥长度为周期进行分组,对每组中元素逐一置换。

二、代换密码

改变元素的值,根据映射关系分为单表和多表。

1、单表代换密码 (明文密文双射)

a.基于密钥的单表代换密码

  两字母表一一对应。

  e.g.  取一单词为密钥,取其无重复序列,对应字母表中前几位,其余字母依次填写剩余字母表。

b.仿射密码

  线性变换,y = a * x + b (mod 26), gcd(a,26) = 1。 当a=1,b=3时,即为凯撒密码。

2、多表代换密码 (明文中不同位置的相同字符会代换成不同字符)

a. Playfair密码

   先构造一个5*5的字母矩阵,将明文两两一组进行代换,根据组合不同从矩阵得到的代换也各不相同。

b. Vigenere密码

   密钥为一串字符,将明文按密钥长度分组,对每组与密钥进行数字求和取模运算,因此尽管明文中字符相同,但其字符若对应密钥中不同位置,得到的密文也不同。

c. Hill密码

  同样进行数字取模运算,将明文分组,与n*n矩阵运算。

单表代换后,明文与密文各个字符的出现频率相同,而多表则不同。

原文地址:https://www.cnblogs.com/faded828x/p/14542279.html