我们已经学习过RSA非对称加密算法。RSA签名方案就是基于该算法构建的,其过程如下。
y = x h mod n
然后,Bob将信息和签名数据发给Alice。
x v = y t mod n
如果 x v = x mod n ,则验证通过;否则验证失败。
基于RSA算法的数学原理,我们知道只有通过私钥签名的函数才能够被公钥参数验证。在RSA签名方案中,由于只有Bob拥有私钥参数,当Alice验证签名成功后,就可以直接确定该签名来自Bob本人了。另一个附加的功能是,Alice也可以验证原始信息 m 和 x 的匹配性,如果 m 和 x 匹配,则证明消息传输过程中没有遗漏。RSA签名算法一般选择参数 n 的长度为1024或2048比特,签名的长度和 n 相同。