RSA加密与签名的区别
时间:2023-12-20 00:07:02
RSA加密:RSA密码系统是一种公钥密码系统,公开加密算法,以分配的密钥作为加密解密的关键。
RSA签名:签名是在这些信息背后增加一个强有力的证明,以证明这些信息的发布者和有效性的完整性。
在使用RSA通信时,通常是两者的结合,即加密>签名>解密>验签
公钥加密、私钥解密、私钥签名、公钥验证。
加密和可逆,签名不可逆
我们可以用公钥加密一个数据,然后用私钥解密,但是签名这个数据是不可逆转的,因为哈希本身是不可逆转的。
加密和签名涉及公钥加密,前者加密信息,后者加密信息hash
加密和签名都是为了安全,但略有不同。加密是为了防止信息泄露,签名是为了防止信息被篡改。
为什么签名是对信息hash然后加密,而不是加密一些特定的字符?
这是因为中间人试图反复向私钥所有者发送一些特定的字符,以获得加密信息,以达到破解或伪造的目的。所以用私钥加密信息是不安全的。
RSA签名和加密通常用于非常安全的环境,如支付
代码编写: Cipher 用于加密 Signature 用于签名
总结:
签名的本质实际上是加密,但由于签名不需要恢复为明文,哈希可以在加密前处理。所以签名实际上是哈希 加密,验签是哈希 解密 比较。
签名过程:明文做哈希,拼接头信息,私钥加密,签名。
签名验证过程:用公钥解密签名,然后去除头部信息,对明文做哈希,比较两段哈希值是否相同,同一段是否成功。