❶ 1.已知,仿射密码的计算公式为f(a)=(5a+k) mod n,其中k=7,n=26,明文a=helpme,求密文
26个字母,A是0,B是1,C是2...........Z是25
helpme:7,4,11,15,12,4
(5*7+7)mod26=16
(5*4+7)mod26=1
(5*11+7)mod26=10
........
(5*4+7)mod26=1
得16,1,10,4,15,1
对应密文:QBKEPB
❷ 仿射密码的加密举例
设密钥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。
❸ 用仿射密码解谜下列密文
码和乘法密码联合起来,就得到了所谓的仿射密码(affine cipher)—— 两种密码与一对密钥的组合。乘法密码使用第一个密钥,加法密码使用第二个密钥。如图3-11所示,仿射密码其实就是被先后使用的两种密码。我们本来可以提出一种有关加密和解密的复杂运算,如C = (P ′ k1 + k2) mod 26和P = ((C - k2) ′ k1-1) mod 26。然而,我们用临时结果(T)表示两种单独的运算,以表明无论什么时候使用密码组合,均需确保在行的另一端要有一个逆,该逆在加密和解密过程中使用的顺序是相反的。如果加法是加密过程中的最终运算,那么减法就是解密过程中的初始运算。
在仿射密码中,明文P和密文C的关系是
图3-11 仿射密码
例3.9
❹ 仿射密码的解密举例
本例是按照上例来解密的,也就是用仿射密码解密密文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:
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;
( 用计算器求 (-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。
❺ 已知仿射密码的加密变换是:c=11m+2mod26,求秘文VMWZ对应的秘文
摘要 @丽平 .已知仿射加密变换为c=11m+2(mod26),试对密文VMWZ解密。
❻ 仿射密码的介绍
加法密码和乘法密码结合就构成仿射密码,仿射密码的加密和解密算法是: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。
❼ 下面密文是用模26下的仿射密码加密的gzyyf,明文以he开头,试解密消息
hellk.仿射密码公式是:密文=明文剩于密钥1加密钥2然后和与26取余,即e(x)=(ax+b)mod26. 从提示he开头,代入即g=(ha+b)mon26,z=(ea+b)mod26,可求得a=11. b=7.,从而得出其它结果。注:公式中,a表示密钥1,且与26互质,即取值是1.3.5.7...23.25共13个,b是密钥2,取值范围是0-25.0-25对应英文字母a-z. 所以h=7,e=4,其它类推。还有,结果不应该是hello? 算出来是hellk.
❽ 已知公钥求私钥
mod 是一种整数之间的相互运算,就是通常所说的取余数运算.例如:
2187mod20=7就表示2187除以20,余数是7.更常见的表示方法是2187=7(mod 20)
注意这里的等号通常都写成恒等号(就是三横,我这里打不出恒等号).相应地读作2187与7关于模(即mod)20同余.关于同余有一套比较完整的理论,这是数论里的内容,本题只需要一些比较基础的数论知识.
一般来讲,公开密钥系统的公钥都是取两个大素数.对这两个大素数进行一系列的运算,详细的内容可以参考网络.本题里由于d与n,e与n互素,所以也可算.
本题就是对消息m=3的加密.利用公钥以及加密方法即得 密文=m^e对n=20取模.
结果就是3^7=2187=7(mod20).反过来,现在得到了密文7,那么利用解密密钥
d=3就知道 原文m=(密文)^3=7^3=343=3(mod 20),也就是原文是3.
❾ 若已知某仿射密码加密明文字符为e、h的对应密文字符为f、w,试求仿射密码的密钥K
1、密钥是K=bp,设密钥k1,k2.f=(e+k1)mod26,w=(h+k2)mod26, e=4,f=5,h=7,w=22,代入后可以解。按字母顺序,a-z相当于0-25。
2、密钥为xr。计算公式f=(e*k1+k2)mod26,w=(e*k1+k2)mod,k1取值范围是0-25,且与26互质的数(即1,3,5,7,9...25,共13个,k2取值范围0-25。
❿ 仿射密码求解密
统计密文频率依次是R,DHKVE,FSABLMSV,XNOPY,CGIJQTWZ
英语字母频率分布是E,TAOINSHR,DL,CUMWFGYPB,VKJXQZ
取密文R对应明文E,密文D对应明文I(随机取测试用本题刚好是这两个)
解出密钥 j=i×3+5 mod 26
对应密文明文对:
密文:ABCDEFGHIJKLMNOPQRSTUVWXYZ
明文:HQZIRAJSBKTCLUDMVENWFOXGPY
密文翻译得到 Algorithms are quite general definitions of arithmetic processes.
算法是算术过程相当一般定义