使用Maple 18 软件进行计算。
实验内容:
拉宾公钥加密解密
1.拉宾公钥加解密原理
Alice要求Bob将信息m加密传送回.
(1) 密钥生成: Alice找到大素数p,q, 令n=pq, 然后将n 作为公钥发送给Bob, 这里p,q是私钥, 解密用.
(2) 加密: Bob将明文m分段使m<n,计算m2 ≡C (mod n), 并将密文C传送给 Alice.
(3) 解密: Alice收到后,求解 x2 ≡C (mod p), x2 ≡ C(mod q), 得到解x ≡±b1(mod p),
x ≡ ± b2(mod q), 然后用孙子定理求得4解, 其中之一为明文m.
2.拉宾公钥加解密实验内容
拉宾公钥密码加密解密:
P=11,q=19, 则n =209为公钥;
加密:明文m =102, 求密文.
解密:若n =11∙19, 密文C =163, 求明文.
公钥:
p := 11; q := 19; n := p*q;
加密:
解密:
ElGamal公钥加密解密
1.加解密原理
Alice要求Bob将信息m加密传送回.
(1)密钥生成: Alice找到大素数p, p的原根a, 正整数XA, 1<XA<p, 计算hA≡a^XAmod(p), 将p,a,hA作为公钥发送给Bob, 这里XA是私钥,解密用.
(2)加密: Bob将明文m分段使m<p,取k∈{1,2,···,p-1},计算u≡a^k mod p,v≡hA^km mod p,并将密文(u,v)传送给 Alice.
(3)解密: Alice收到后, 计算 vu^-XA≡hA^km(a^k)^-XA≡(a^XA)^km(a^k)^-XA≡m mod p, 恢复明文m.
2.ElGamal公钥加解密实验内容
密钥生成: Alice取p=13, 13的一原根为2, XA=11, hA≡(mod13),算出公钥,p=13,g=2, hA=7。
加密:Bob收到p=13,g=2, hA=7, 取k=9, 明文m=10, 求密文(u, v).
解密:p=13, 13的一原根g=2, XA=11, 收到密文(u, v)=(5, 2), 求明文m
总结:(CV)
通过本次学习,掌握了拉宾公钥加密解密以及拉宾公钥加解密原理,主要过程有Alice要求Bob将信息m加密传送回,首先,密钥生成: Alice找到大素数p,q, 令n=pq, 然后将n 作为公钥发送给Bob, 这里p,q是私钥, 解密用的,再加密: Bob将明文m分段使m<n,计算m2 ≡C (mod n), 并将密文C传送给 Alice。最后通过解密: Alice收到后,求解 x2 ≡C (mod p), x2 ≡ C(mod q), 得到解x ≡±b1(mod p)。x ≡ ± b2(mod q), 然后用孙子定理求得4解, 其中之一为明文m。
还掌握了ElGamal公钥加密解密以及加解密原理,主要过程是Alice要求Bob将信息m加密传送回。首先,密钥生成: Alice找到大素数p, p的原根a, 正整数XA, 1<XA<p, 计算hA≡aXAmod(p), 将p,a,hA作为公钥发送给Bob, 这里XA是私钥,解密用,然后加密: Bob将明文m分段使m<p,取k∈{1,2,···,p-1},计算u≡akmodp,v≡hAkm modp,并将密文(u,v)传送给 Alice.
最后通过解密: Alice收到后, 计算 vu-XA≡hAkmak-XA≡aXAkmak-XA≡m mod p, 恢复明文m.
通过实验,我学会了使用Maple软件初步编程;掌握Rabin公钥、ElGamal公钥的加密和解密原理,运用Maple软件求解拉宾公钥、ElGamal公钥的计算问题,学会用规范的方法书写实验报告。