数字签名原理与使用场景

一、原理

数字签名是基于公钥密码学(非对称加密),核心是私钥签名、公钥验签。

流程

步骤 说明
1️⃣ 哈希 对原文使用 Hash 算法(如 SHA-256)生成消息摘要
2️⃣ 签名 用发送者的私钥对摘要加密,生成数字签名
3️⃣ 发送 将原文 + 数字签名一起发给接收者
4️⃣ 验签 接收者用发送者的公钥解密签名,得到摘要;同时对原文计算哈希
5️⃣ 比对 两者一致 → 签名有效;不一致 → 被篡改或来源无效

关键点

  • 私钥只有签名者持有,不可泄露 → 保证了不可伪造性
  • 公钥公开,任何人都能验证 → 保证了可验证性
  • 摘要一致说明原文未被篡改 → 保证了完整性

二、常见算法

  • RSA --- 最经典,如 "RSA-2048"
  • ECDSA --- 椭圆曲线签名,更高效,如 "ECDSA P-256"
  • DSA --- 美国政府标准数字签名算法
  • SM2 --- 中国国密算法,基于椭圆曲线

三、使用场景

📌 典型场景

场景 说明
代码/软件签名 微软、苹果要求驱动、软件包数字签名,防止恶意篡改
文档签名 PDF、Word 文档数字签名,具有法律效力(电子合同)
SSL/TLS 证书 HTTPS 证书用数字签名验证服务器身份
区块链/加密货币 交易授权,钱包地址用私钥签名证明所有权
邮件签名 (S/MIME) 验证邮件发送者身份、保证内容不被篡改
政务/金融 电子证照、政务审批、金融交易防抵赖

📌 简单类比

把数字签名想象成**"支票上的手写签名"**:

  • 私钥 = 你的笔,只有你能签
  • 公钥 = 你的笔迹样本,银行用来核对
  • 哈希 = 支票上的防伪底纹
  • 签名内容 = 支票上的金额(金额改了就无效)

四、与加密的区别

-- 数字签名 数据加密
目的 证明"是谁发的" + "内容没改" 保证内容保密
用什么密钥 私钥签名、公钥验签 公钥加密、私钥解密
方向 单向,非对称 可双向
相关推荐
Aray12344 个月前
数字证书与数字签名
数字签名·数字证书
大犀牛牛6 个月前
开放签电子签章系统3.4版本更新内容
开源·数字签名·电子合同·电子签章
大犀牛牛7 个月前
开放签电子签章系统3.3.1版本更新内容
开源·数字签名·电子合同·电子签章
Tancenter7 个月前
区块链关键技术
区块链·哈希算法·数字签名
大犀牛牛7 个月前
拆解开放签电子签系统“一核多态”的SaaS产品版本管理实战
开源·数字签名·电子合同·电子签章
csdn_aspnet7 个月前
ASP.NET Core:创建并验证文档上的数字签名
.netcore·数字签名
weiwei228448 个月前
secp256k1算法详解五(kG点乘多梳状算法)
数字签名·椭圆曲线·secp256k1
黑客思维者8 个月前
嵌入式设备软件数字签名系统:从设计到落地实操指南
嵌入式硬件·数字签名
HaiLang_IT9 个月前
【信息安全毕业设计】基于zkSNARK与递归证明的数字签名验证方案研究
零知识证明·数字签名·身份验证