RSA数字签名和加解密
1.概述
RSA算法是第一个能同时用于加密和数字签名的算法,它的安全性依赖于大数的因子分解,但并没有从理论上证明破译RSA的难度与大数分解难度等价。即RSA的重大缺陷是无法从理论上把握它的保密性能如何,而且密码学界多数人士倾向于因子分解不是NPC问题。它包含公钥和私钥对。
RSA生成的公钥和私钥对,其中公钥发布给所有人,私钥自己保留。
2.用于加解密
目的:发送的信息不能透露给第三方
A要给B发信息,使用B发布的公钥加密,将密文发给A,A用自己的私钥解密得到明文。及时其它人截获的密文,因为没有私钥,所以无法解密。
3.用于数字签名
目的:证明发送信息的本人,身份验证
A给B发信息,为了证明信息是A发出的,需要电子签名,其中内容是可以公开的,用明文传输。同时,将明文使用MD5或哈希算法,得到明文的数字摘要,对数字摘要用A的密钥加密,和明文一起发给B,B首先对收到的明文使用同样的哈希或MD5算法,得到数字摘要,然后用A的公钥解密得到一份数字摘要,两份数字摘要一致就可以证明信息确实是A发过来的,从而达到了验证A身份的目的。因为只有使用A的密钥加密,再用A的公钥解密才能还原原文。如果第三方想假冒A,它没有A的密钥,无法加密。