【正确答案】A是发送方,B是接收方。可以用编码机制编码字母:A=01,B=02,…,Z=26。假设用这个机制编码字母,那么其工作如下,发送方A要向接收方B发送两个字母H和I。利用RSA算法,字母H和I的编码如下:则明文HI=0809。
(1)用字母编号机制(如A=1,B=2,…,Z=26),这里F为6,因此首先将F编码为6。
(2)选择密钥
1)选择两个素数P=5,Q=11。
2)计算N=P*Q=55。
3)选择一个公钥E=3,私钥D=27。
(3)加密
设明文编码为:空格=00,A=01,B=02,…,Z=26,则明文HI=0809。
C1=(08)3mod 55=512 mod 55=17
C2=(09)3mod 55=729 mod 55=14
N=14,Q=17
所以,密文为“QN”。
(4)解密(恢复明文)
M1=Cd=(17)27mod 55=08
M2=Cd=(14)27mod 55=09
因此明文为“HI”。
可以看出RSA算法本身很简单,关键是选择正确的密钥。假设B要接收A的保密消息,则要生成私钥(D)和公钥(E),然后将公钥和数字N发给A。A用E和N加密消息,然后将加密的消息发给B。B用私钥(D)解密消息。既然B能计算和求出D,别人也能计算和求出D,但并不容易,这就是RSA的关键所在。
【答案解析】