RSA加密与签名有什么区别
区别:
RSA加密:RSA密码体制是一种公钥密码体制,加密算法公开,以分配的密钥作为加密解密的关键。
RSA签名:签名就是在这份资料后面增加一段强而有力的证明,以此证明这段信息的发布者和这段信息的有效性完整性。
在使用RSA进行通讯的时候,一般是两者结合,即:加密>签名>解密>验签
公钥加密、私钥解密、私钥签名、公钥验签。
加密是可逆的,而签名是不可逆的
我们可以对一份资料用公钥加密,再用私钥解密,但我们对这份资料进行签名则是不可逆的,因为哈希本身是不可逆的。
加密和签名都涉及到了使用公钥加密,前者加密了信息,后者加密了信息的hash
加密和签名都是为了安全性考虑,但略有不同。加密是为了防止信息被泄露,而签名是为了防止信息被篡改。
为什么签名是对信息hash之后加密,而不是加密一些特定的字符?
这是因为防止中间人尝试向私钥拥有者反复发送一些特定的字符,得到加密后的信息,达到破解或者伪造之类的目的。所以用私钥随便加密信息是不安全的。
RSA的签名与加密一般用在需要非常安全的环境下,例如支付
总结:
签名的本质其实就是加密,但是由于签名无需还原成明文,因此可以在加密前进行哈希处理。所以签名其实就是哈希+加密,而验签就是哈希+解密+比较。
签名过程:对明文做哈希,拼接头信息,用私钥进行加密,得到签名。
验签过程:用公钥解密签名,然后去除头信息,对明文做哈希,比较2段哈希值是否相同,相同则验签成功。
还没有评论,快来发表第一个评论吧