1 置换(Permutation)密码
对明文字符或字符组进行位置移动的密码
明文的字母顺序被打乱了,但明文字母本身不变
天书( 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
用欧拉定理 ,,又因为,所以
解密过程:
单表代替密码——仿射密码
仿射密码是乘法密码和加法密码的结合。
设明文为 x = 23 , ** a=5 ,b = 1
加密:
解密:
首先求k=5 模 26逆元,给出两种求逆元方法
(1)欧几里得除法求逆元方法
用扩展欧几里得除法,,于是5模26逆元就是 (-5)mod 26 21
用欧拉定理 ,,又因为,所以
解密过程:
3 多表代替密码算法
补充: 求逆矩阵方法