设在一个RSA公钥密码体制服务系系统中,分析以下情况。 (1)签证机关给用户A建立的RSA公钥密码体制如下:选取p=7,q=11,若解密密钥 d=43,则加密密钥e是什么?在公共服务器上公布万的公开密钥是什么?交给A保存的是什么? (2)签证机关给用户B建立的RSA公钥密码体制如下:选取p=5,q=19,若加密密钥e=25,则解密密钥d是什么? (3)B想把消息m=68秘密发送给A,求形成的密文。(4)如果A对m进行签名再发送给B8,求B得到的签名。(5)B如何验证此签名?
时间: 2024-02-29 08:54:20 浏览: 64
好的,我会尽力回答你的问题,关于RSA公钥密码体制,我也有一些基础的知识。
(1) 根据RSA加密算法,e和d是互为逆元的,即ed ≡ 1 (mod φ(n)),其中φ(n) = (p-1)(q-1)是n的欧拉函数。因此,我们可以先求出φ(n) = 60,再求出d的值43在模60下的逆元,即d' = 67,因为43 * 67 ≡ 1 (mod 60)。因此,加密密钥e = 7,公开密钥为(n,e) = (77,7),A保存的是解密密钥d = 43。
(2) 同样地,根据ed ≡ 1 (mod φ(n)),我们可以先求出φ(n) = 72,再求出e的逆元d' = 29,因为25 * 29 ≡ 1 (mod 72)。因此,解密密钥d = 29,公开密钥为(n,e) = (95,25),B保存的是加密密钥e = 25。
(3) 由于A的公钥为(n,e) = (77,7),因此加密时应该使用公钥进行加密。根据RSA加密算法,密文c = m^e (mod n)。因此,将m = 68代入,得到密文c = 68^7 (mod 77) = 9。
(4) 对于数字签名,A需要使用自己的私钥对消息m进行签名,然后将签名后的值发送给B。根据RSA签名算法,签名值s = m^d (mod n)。因此,将m = 68和d = 43代入,得到签名值s = 68^43 (mod 77) = 54。
(5) B需要验证签名的有效性,即验证签名值s是否是A的公钥所对应的值。根据RSA签名验证算法,验证值v = s^e (mod n),如果v = m,则签名有效。因此,将s = 54,e = 7,n = 77代入,得到验证值v = 54^7 (mod 77) = 68,因为v = m,所以签名有效。
阅读全文