数字签名(Digital Signature)
字数 690 2025-11-28 00:36:10
数字签名(Digital Signature)
-
基础概念
数字签名是一种基于非对称加密技术的电子认证机制,用于验证数字信息的完整性和来源真实性。其核心原理是:发送方使用私钥对数据生成签名,接收方使用对应的公钥验证签名。与物理签名不同,数字签名与数据内容强关联,任何篡改都会导致验证失败。 -
技术实现步骤
- 密钥生成:用户通过算法(如RSA、ECDSA)生成一对数学关联的密钥:私钥(保密)和公钥(公开)。
- 签名生成:发送方对数据计算哈希值(如SHA-256),再用私钥加密哈希值生成数字签名,附在原始数据后发送。
- 签名验证:接收方用发送方公钥解密签名得到哈希值A,同时对接收到的数据重新计算哈希值B。若A与B一致,则证明数据未被篡改且来源可信。
-
核心安全特性
- 不可否认性:私钥的唯一性确保发送方无法否认其签名行为。
- 完整性保护:哈希算法敏感度极高,即使数据微调也会导致哈希值巨变。
- 身份认证:公钥与身份绑定(如数字证书),验证签名即确认发送方身份。
-
应用场景与标准
- 代码签名:软件发布者签名安装包,防止恶意篡改(如Windows Authenticode)。
- 文档签署:PDF数字签名符合eIDAS等法律标准,具备法律效力。
- TLS/SSL握手:服务器用私钥签名握手数据,客户端通过证书公钥验证。
- 区块链交易:比特币用ECDSA签名验证交易所有权。
-
进阶技术延伸
- 盲签名:允许对加密内容签名而不泄露数据(用于电子投票)。
- 门限签名:私钥分片存储,需多方协作生成签名,提升安全性。
- 后量子数字签名:抗量子计算攻击的算法(如SPHINCS+、Falcon)。