问答题
用A的私人密钥fA(d,n)=(5,21)和B的公开密钥fB(e,n)=(5,51)验证签名的数值17(1是发送者(N,A)的字首)。
【正确答案】nA=21=3×7=p×q
Ф(nA)=(p-1)×(q-1)=2×6=12
然后计算A的公开密钥,解方程dAeA=5×eA=1(mod12),12=5×2+2;5=2×2+1,得
1=5-2×2
故
1=5-2×2=5-2×(12-5×2)=5×5-2×12
得
eA=5
又因为
nB=51=3×17=p×q
Ф(nB)=(p-1)×(q-1)=2×16=32
再计算B的私人密钥,解方程dBeB=dB×5≡1(mod32)。
因为
32=6×5+2
5=2×2+1
可得
1=5-2×2
2=32-6×5
故
1=5-2×2=5-2×(32-6×5)=13×5-2×32
得
dB=13
(1)A用自己的私人密钥计算他的签名:
Si=MdAimodnA=(17)5(mod21)=5
(2)A用B的公开密钥再次加密签名:
S=SeBimodnB=55(mod51)=14
(3)B用自己的私人密钥解密消息:
Si=SdBmodnB=1413(mod51)=5
(4)B用A的公开密钥解密,认证密文的来源:
Mi=SeAimodnA=55(mod21)=17
结果可以确认密文的发送者是A,因为只有用户A具有私人密钥(dA,nA)=(5,21)。
【答案解析】