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

您所在的位置:网站首页 matlab矩阵怎么用其他的字母代替 第六讲 古典密码算法(置换密码 & 单表代替密码算法 & 多表代替密码算法)

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

2024-01-26 07:50| 来源: 网络整理| 查看: 265

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

加密:y=kx=5*23\equiv 11(mod\,26)

解密:

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

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

用扩展欧几里得除法,26=5*5+1,1=26-5*5,于是5模26逆元就是 (-5)mod 26 \equiv 21

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

用欧拉定理 ,k^{-1}\equiv 5^{\varphi (26)-1}\equiv 5^{11} mod 26,又因为5^2\equiv -1(mod 26),所以k^{-1}\equiv 5^{11}\equiv (-1)^5*5\equiv -5\equiv 21(mod 26)

解密过程:x=k^{-1}y=21*11\equiv 23(mod\,26)

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

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

设明文为 x = 23 , 密钥 a=5 ,b = 1

加密:y=ax+b=5*23+1\equiv 12(mod\,26)

解密:

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

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

用扩展欧几里得除法,26=5*5+1,1=26-5*5,于是5模26逆元就是 (-5)mod 26 \equiv 21

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

用欧拉定理 ,a^{-1}\equiv 5^{\varphi (26)-1}\equiv 5^{11} mod 26,又因为5^2\equiv -1(mod 26),所以k^{-1}\equiv 5^{11}\equiv (-1)^5*5\equiv -5\equiv 21(mod 26)

解密过程:x=a^{-1}(y-b)=21*(12-1)\equiv 23(mod\,26)

3 多表代替密码算法

补充: 求逆矩阵方法 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3