此算法的具体例子 (1千字)
关于一个解密算法的解答(此算法的具体例子)作者 : zmworm
E-Mail: zmworm@sohu.com
HomePage: ZMWorm.Yeah.Net
[习题]
以下各变量的字长均为8位
用A1=96 B1=96 C1=97 D1=97
A2=7 B2=14 C2=21 D2=28
A3=33 B3=34 C3=35 D3=36
算法
(M1 xor A3 xor 0)*A2 mod A1=N1
(M2 xor B3 xor N1)*B2 mod B1=N2
(M3 xor C3 xor N2)*C2 mod C1=N3
(M4 xor D3 xor N3)*D2 mod D1=N4
对M1,M2,M3,M4 进行加密操作
求得
(M1 xor 33 xor 0)*7 mod 96=86
(M2 xor 34 xor 86)*14 mod 96=80
(M3 xor 35 xor 80)*21 mod 97=93
(M4 xor 36 xor 93)*28 mod 97=25
即密文为 N1=86 N2=80 N3=93 N4=25
问所有可能的明文M1 M2 M3 M4
解
gcd(7,96)=1 所以K1 有一个解
7模96的乘法逆元为55 (因为 7*55 mod 96=1)
所以K1=55*N1 mod 96 =26
K1所有可能情况是 26 ,26+96=122 ,122+96=218,
M1=26 xor 33 xor 0=59
M1=122 xor 33 xor 0=91
M1=218 xor 33 xor 0=251
M1 的所有可能是 59, 91, 251
gcd(14,96)=2,所以k 有两个解
e"=14/2=7 f"=96/2=48 d"=80/2=40
7关于 48的逆元e'=7 (因为 7*7 mod 48 =1)
所以 K2[i]i=d"*e'+(i-1)f"=[(40*7) mod 48]+(i-1)*48 (i=1,2)
解得 K2[1]=40 K2[2]=88
K2所有可能情况是 40 ,40+96=136 ,136+96=232, 88 88+96=184
M2=40 xor 34 xor 86=92
M2=136 xor 34 xor 86=252
M2=232 xor 34 xor 86=156
M2=88 xor 34 xor 86=44
M2=184 xor 34 xor 86=204
M2的所有可能是 92, 252, 156, 44, 206
gcd(21,97)=1 所以K1 有一个解
模96的乘法逆元为37 (因为 37*21 mod 97=1)
所以K1=37*N3 mod 97 =46
K1所有可能情况是 46 ,46+97=143 ,143+97=240,
M3=46 xor 35 xor 80=93
M3=143 xor 35 xor 80=252
M3=240 xor 35 xor 80=136
M2的所有可能是 93, 252, 136
M4 留为作业 ,自己求。答案不确定可以问我。
