第六讲 古典密码算法(置换密码 & 单表代替密码算法 & 多表代替密码算法)

1 置换(Permutation)密码

对明文字符或字符组进行位置移动的密码

明文的字母顺序被打乱了,但明文字母本身不变

第六讲 古典密码算法(置换密码 & 单表代替密码算法 & 多表代替密码算法)
attack at dawn
第六讲 古典密码算法(置换密码 & 单表代替密码算法 & 多表代替密码算法)
ATCADWTAKTAN

天书( Scytale )

500 B.C.,斯巴达人在军事上用于加解密

发送者把一条羊皮纸螺旋形地缠在一个圆柱形木棒上,核心思想是置换。

第六讲 古典密码算法(置换密码 & 单表代替密码算法 & 多表代替密码算法)
木棒的直径需要保密

2 单表代替密码算法

代替密码

代替(Substitution)密码构造一个或多个密文字母表,然后用密文 字母表中的字母或者字母组来代替明文字母或字母组,各字母或 字母组的相对位置不变,但其本身的值改变了。

代替密码分为单表代替密码和多表代替密码。

字母与数字的转换

代替密码算法针对英文字母进行处理。首先将26个字母与 十进制数字中的0~25一一对应,如下表所示。而这里的数的加 法和乘法都定义为模26的加法和乘法。

第六讲 古典密码算法(置换密码 & 单表代替密码算法 & 多表代替密码算法)


单表代替密码可分为

  • 加法密码
  • 乘法密码
  • 仿射密码

单表代替密码——加法密码

第六讲 古典密码算法(置换密码 & 单表代替密码算法 & 多表代替密码算法)

Caesar密码就是一种加法密码(k=3)

第六讲 古典密码算法(置换密码 & 单表代替密码算法 & 多表代替密码算法)

设明文为:LOVE                      则密文为:ORYH

单表代替密码——乘法密码

 第六讲 古典密码算法(置换密码 & 单表代替密码算法 & 多表代替密码算法)

明文为 x = 23 ** k=5

加密:第六讲 古典密码算法(置换密码 & 单表代替密码算法 & 多表代替密码算法)

解密:

首先求k=5 模 26逆元,给出两种求逆元方法

(1)欧几里得除法求逆元方法

用扩展欧几里得除法,第六讲 古典密码算法(置换密码 & 单表代替密码算法 & 多表代替密码算法),于是5模26逆元就是 (-5)mod 26 第六讲 古典密码算法(置换密码 & 单表代替密码算法 & 多表代替密码算法) 21

(2)欧拉函数φ(n)的计算及欧拉定理  

用欧拉定理 ,第六讲 古典密码算法(置换密码 & 单表代替密码算法 & 多表代替密码算法),又因为第六讲 古典密码算法(置换密码 & 单表代替密码算法 & 多表代替密码算法),所以第六讲 古典密码算法(置换密码 & 单表代替密码算法 & 多表代替密码算法)

解密过程:第六讲 古典密码算法(置换密码 & 单表代替密码算法 & 多表代替密码算法)

单表代替密码——仿射密码

第六讲 古典密码算法(置换密码 & 单表代替密码算法 & 多表代替密码算法)

仿射密码是乘法密码和加法密码的结合。

明文为 x = 23 ** a=5 ,b = 1

加密:第六讲 古典密码算法(置换密码 & 单表代替密码算法 & 多表代替密码算法)

解密:

首先求k=5 模 26逆元,给出两种求逆元方法

(1)欧几里得除法求逆元方法

用扩展欧几里得除法,第六讲 古典密码算法(置换密码 & 单表代替密码算法 & 多表代替密码算法),于是5模26逆元就是 (-5)mod 26 第六讲 古典密码算法(置换密码 & 单表代替密码算法 & 多表代替密码算法) 21

(2)欧拉函数φ(n)的计算及欧拉定理  

用欧拉定理 ,第六讲 古典密码算法(置换密码 & 单表代替密码算法 & 多表代替密码算法),又因为第六讲 古典密码算法(置换密码 & 单表代替密码算法 & 多表代替密码算法),所以第六讲 古典密码算法(置换密码 & 单表代替密码算法 & 多表代替密码算法)

解密过程:第六讲 古典密码算法(置换密码 & 单表代替密码算法 & 多表代替密码算法)


3 多表代替密码算法

第六讲 古典密码算法(置换密码 & 单表代替密码算法 & 多表代替密码算法)

第六讲 古典密码算法(置换密码 & 单表代替密码算法 & 多表代替密码算法)

第六讲 古典密码算法(置换密码 & 单表代替密码算法 & 多表代替密码算法)

补充: 求逆矩阵方法 

第六讲 古典密码算法(置换密码 & 单表代替密码算法 & 多表代替密码算法)

第六讲 古典密码算法(置换密码 & 单表代替密码算法 & 多表代替密码算法)