四、数字签名
2025年09月21日
四、数字签名
RSA公钥体系可用于对数据信息进行数字签名。所谓数字签名就是信息发送者用其私钥,对从所传报文中提取出的特征数据(或称数字指纹)进行RSA算法操作,以保证发信人无法抵赖曾发过该信息(即不可抵赖性),同时也确保信息报文在经签名后没有被篡改(即完整性)。当信息接收者收到报文后,就可以用发送者的公钥对数字签名进行验证。
在数字签名中有重要作用的数字指纹是通过一类特殊的散列函数(HASH函数)生成的,对这些HASH函数的特殊要求是:
(1)接受的输入报文数据没有长度限制。
(2)对任何输入报文数据生成固定长度的摘要(数字指纹)输出。
(3)根据报文能方便地算出摘要。
(4)难以对指定的摘要生成一个报文,而由该报文能够推算出该指定的摘要。
(5)两个不同的报文难以生成相同的摘要。
公开密钥的加密机制虽提供了良好的保密性,但难以鉴别发送者,即任何得到公开密钥的人都可以生成和发送报文。数字签名机制提供了一种鉴别方法,以解决伪造、抵赖、冒充和篡改等问题。
数字签名一般采用不对称加密技术(如RSA),通过对整个明文进行某种变换,得到一个值,作为核实签名。接收者使用发送者的公开密钥对签名进行解密运算,如其结果为明文,则签名有效,证明对方的身份是真实的。数字签名普遍用于银行、电子贸易等领域。
数字签名不同于手写签字:数字签名随文本的变化而变化,手写签字反映某个人个性特征,是不变的;数字签名与文本信息是不可分割的,而手写签字是附加在文本之后的,与文本信息是分离的。