查看: 2392|回复: 15

[密码学习] 仿射码

简洁模式
发表于 2022-1-6 17:50:50 | 发自安卓客户端 | 显示全部楼层
加法密码和乘法密码结合就构成仿射密码,仿射密码的加密和解密算法是:C= Ek(m)=(k1m+k2) mod nM= Dk(c)=k3(c- k2) mod n(其中(k3 ×k1)mod26 = 1)
      仿射密码具有可逆性的条件是gcd(k1, n)=1。当k1=1时,仿射密码变为加法密码,当k2=0时,仿射密码变为乘法密码。
    仿射密码中的密钥空间的大小为nφ(n),当n为26字母,φ(n)=12,因此仿射密码的密钥空间为12×26 = 312。
     中文名  仿射密码
     外文名  Affine cipher
      组    成  加法密码和乘法密码结合                            举例三个字母对应的数值是0、23、6
       利用   
加密举例
       设密钥K= (7, 3), 用仿射密码加密明文hot。
      三个字母对应的数值是7、14和19。分别加密如下:
      (7×7 + 3) mod 26 = 52 mod 26 =0
      (7×14 + 3) mod 26 = 101 mod 26 =23
      (7×19 + 3) mod 26 =136 mod 26 =6
      三个密文数值为0、23和6,对应的密文是AXG。
解密举例
       本例是按照上例来解密的,也就是用仿射密码解密密文AXG,密钥k=(7,3)。         三个字母对应的数值是0、23、6。
       解密如下:由解密Dk(c)=k3(c- k2) mod n(其中(k3 ×k1)mod26 = 1);
      可知k3×7=1(mod 26)(其实,就是1/mod26),也就是存在整数t,使7×k3+26t=1。(1)
     利用辗转相除法求解k3:[1]
      26 = 7 * 3 + 5;(2)(对26作形如:a * b + c,其中 c 就是余数)
     7 = 5 * 1 + 2;(3)(作形如: a = c * m + n ,其中 a ,c 是上一步的, m 是乘数 ,n 是余数)
      5 = 2 * 2 + 1;(一直循环上一步,直到余数 n = 1)
进行回代:
      1 = 5 - 2 * 2= 5 - (7 - 5 * 1) * 2(第一个2用(3)式来代替,也就是2 = 7 - 5 * 1)
      = 3 * 5 - 2 * 7
      = 3 * (26 - 7 * 3) - 2 * 7(5用(2)式来代替,也就是5 = 26 - 7 * 3)
      = -11 * 7 + 3 * 26(直到不用进行代替,也就是得到只有7和26的表达式)
      对比(1)式可知:t = 3 ,k3 = -11;
      所以:Dk(c)=k3(c- k2) mod n            <=> Dk(c)=-11(c- 3) mod 26 .
       对于第一位 A :-11 ( 0 - 3 ) mod 26 = ( -11 * -3 )mod 26 = 7;
        对于第二位 X :
        -11 ( 23 - 3 ) mod 26 = ( -11 * 20 ) mod 26 = ( -220 ) mod 26 = ( 26 * -9 ) + 14 = 14;
        ([2]  用计算器求 (-220) mod 26 ,不同的计算器会有不同的结果,百度的计算器求得就是 14 ,直接百度搜索:(-220) mod 26 就可以了,不能直接在计算器上输入 -220mod26 ,那样会得出负数。其实,可以这样算,算出(-11)mod 26 =15,再计算 (15 * 20)mod26 = 14)
         对于第三位 G :
        -11 ( 6 - 3 ) mod 26 = ( -11 * 3 )mod 26 = ( -33 )mod 26 = 19;(计算方法如上)
        三个明文值为 7,14,19,对应的明文是HOT,也就是hot。
| 发表于 2022-1-8 18:35:23 | 发自安卓客户端 | 显示全部楼层
感谢分享
1 | 发表于 2022-1-8 18:39:05 | 发自安卓客户端 | 显示全部楼层
看起来不错,用起来……
| 发表于 2022-1-8 18:55:08 | 发自安卓客户端 | 显示全部楼层 发帖际遇
感谢分享
1 | 发表于 2022-1-9 13:24:27 | 发自安卓客户端 | 显示全部楼层 发帖际遇
啊,这……有点小复杂
登录帐号可查看完整回帖内容
| 发表于 2022-1-14 11:16:57 | 发自安卓客户端 | 显示全部楼层 发帖际遇
超复杂
| 发表于 2022-1-17 03:19:18 | 发自安卓客户端 | 显示全部楼层 发帖际遇
好棒!!!想学这个好久了
| 发表于 2022-1-24 21:06:04 | 发自安卓客户端 | 显示全部楼层 发帖际遇
感谢分享
| 发表于 2022-2-17 02:43:33 | 发自安卓客户端 | 显示全部楼层
感谢分享
| 发表于 2022-2-17 12:06:55 | 发自安卓客户端 | 显示全部楼层 发帖际遇
感谢分享
返回版块
12
尚未登录
您需要登录后才可以回帖 登录 | 加入学院