§2.4.1 RSA算法 RSA算法如下: 1.选两个大素数,r1和r2,通常均大于10100. 2.计算n=r1*r2和x=(r1-1)*(r2-1). . 3.选这一个与x互质的数令其为d. . 4.找到一个e,满足e*d=1(mod x). . 5.选好这些参数后,将明文划分成块使得每个明文报 文P长度m满足0<m<n.加密P时计算C=Pe(mod n),解 密C时计算P=Cd (mod n).由于模运算的对称性,可以 证明加密解密在一定范围内是可逆的. 2. RSA的具体工作原理 见书P29页图2-2
§2.4.6 RSA的数字签名
公钥体系中有公钥和私钥,私钥保持私有,只有拥有者才知道,公钥广 泛分布(通常作为公共证书的一部分)因此,任何人都能用公钥加密数 据,而只有私钥拥有者才能解密,另外,私钥拥有者用私钥加密数据, 任何拥有公钥的人都能解除开,这通常用作数字签名,在这种情况下, 签名者产生一个数字信息(例如HASH)使用协商好的算法,然后用私 钥加密.接收者能验证私钥拥有者发送的消息,用签名者的公钥解开加 密的信息,并产生收到信息的相匹配的摘要. RSA公钥体系就可以用于对数据信息进行数字签名.所谓数字签名就是 信息发送者用其私钥对从所传报文中提取出的特征数据或称数字指纹进 行RSA算法解密运算操作,得到发信者对该数字指纹的签名函数H(m) .签名函数H(m)从技术上标识了发信者对该电文的数字指纹的责任. 因发信者的私钥只有他本人才有,所以他一旦完成了签名便保证了发信 人无法抵赖曾发过该信息(即不可抵赖性).经验证无误的签名电文同 时也确保信息报文在经签名后未被篡改(即完整性).当信息接收者收 到报文后,就可以用发送者的公钥对数字签名的真实性进行验证.美国 参议院已通过了立法,现在美国,数字签名与手书签名的文件具有同等 的法律效力.