简介
RSA算法是一种非对称加密算法,,RSA算法有两个不同的密钥,一个是公钥,一个是私钥,其中公钥用来加密,私钥用来解密。
RSA签名是为了验证信息的完整性和来源。签名过程使用私钥对信息的哈希值进行加密,生成一个数字签名。接收方可以使用公钥对数字签名进行解密,并验证解密后的哈希值是否与原始信息的哈希值一致,从而确认信息的完整性和来源。
签名流程
- 生成密钥对:首先,用户需要生成一对RSA密钥,包括一个公钥和一个私钥。私钥由用户自己保管,公钥则可以公开分享。
- 生成哈希值:用户提取需要签名的信息(通常是一个消息或文件)的哈希值。这个哈希值是一个固定长度的数字摘要,它唯一地代表原始信息。
- 签名:用户使用自己的私钥对提取出来的哈希值进行加密,生成一个数字签名。
加解密流程
加密流程
- 生成密钥对:发送方(A)生成一对密钥,包括公钥和私钥。公钥公开,私钥自己保留。
- 传递公钥:A将自己的公钥发送给接收方(B)。
- 加密:B使用A的公钥对需要发送的消息进行加密,生成密文。
- 发送密文:B将加密后的密文发送给A
解密流程
- 接收密文:A接收到B发送的密文。
- 解密:A使用自己的私钥对接收到的密文进行解密,还原成明文。