当前位置: 首页 > news >正文

数字签名(Digital Signature)

数字签名(Digital Signature)是一种用来验证数据完整性、身份认证和防抵赖性的加密技术,广泛用于电子合同、区块链、软件发布、电子邮件等场景。


✍️ 一、数字签名的作用

  1. 身份认证
    确保消息确实来自某个特定的发送者。

  2. 完整性校验
    检查消息是否在传输过程中被篡改。

  3. 防抵赖(不可否认性)
    发送者不能否认其发送的内容,因为只有他持有私钥。


🔐 二、数字签名的工作原理

数字签名基于非对称加密(如 RSA、ECDSA)和哈希算法(如 SHA-256),流程如下:

✅ 签名过程(发送端):

  1. 原始数据 → 使用哈希算法 → 生成消息摘要

  2. 消息摘要 → 使用发送者的私钥加密 → 得到数字签名

  3. 将:原始数据 + 数字签名 一起发送给接收者。

🔎 验签过程(接收端):

  1. 接收到原始数据和数字签名。

  2. 发送者的公钥解密数字签名 → 得到签名时的消息摘要

  3. 对收到的原始数据重新计算哈希 → 得到本地摘要

  4. 比较两者摘要:

    • 若一致,则说明数据未被篡改,签名者身份可信;

    • 若不一致,则签名无效或数据已被篡改。


🧠 三、举个简单例子

假设 Alice 向 Bob 发送一份文件,并用她的私钥签名:

  • Alice 计算文件哈希值,比如得到:A1B2C3...

  • Alice 用她的私钥加密这个哈希值,生成签名

  • 她将文件 + 签名 一起发给 Bob

Bob 的验证过程

  • Bob 对文件重新计算哈希 → 得到 A1B2C3...

  • Bob 用 Alice 的公钥解密签名 → 得到一个哈希值

  • 两个哈希值一致 → 签名合法 ✅


🔧 四、常见的数字签名算法

算法名称描述安全性
RSA经典的非对称加密算法,支持签名安全但密钥长
DSA数字签名标准,美国政府认证安全但签名速度慢
ECDSA椭圆曲线数字签名算法更快更短密钥,广泛使用
EdDSA新一代签名算法快速、安全、现代


📦 五、应用场景

  • ✅ 软件发布(验证软件未被篡改,如 .sig 文件)

  • ✅ HTTPS(SSL/TLS 证书背后就用了数字签名)

  • ✅ 区块链/比特币(每笔交易都需要签名)

  • ✅ 电子合同、电子发票(确保合同合法有效)

  • ✅ 邮件加密(如 OpenPGP、S/MIME)


📌 六、数字签名 vs 手写签名

项目手写签名数字签名
安全性易伪造基于数学难题,难伪造
可验证性需要人工判断自动验证、可追溯
抵赖性可否认不可否认
应用场景纸质文档电子文档/通信/金融
http://www.lryc.cn/news/595762.html

相关文章:

  • VR技术在元宇宙游戏中的作用及发展前景深度分析
  • A316-V71-Game-V1:虚拟7.1游戏声卡评估板技术解析
  • Leetcode—692. 前K个高频单词【中等】(桶排序)
  • PyTorch武侠演义 第一卷:初入江湖 第4章:损失玉佩的评分风波
  • 【AI学习从零至壹】Transformer
  • 02-netty基础-java四种IO模型
  • Java设计模式揭秘:深入理解模板方法模式
  • 详解FreeRTOS开发过程(二)-- 列表和列表项
  • 【前端】ikun-pptx编辑器前瞻问题二: pptx的压缩包结构,以及xml正文树及对应元素介绍
  • 机器学习模型视角下的市场联动机制:美元美债与黄金3400价格的VAR向量自回归分析
  • 面向对象高级:static
  • linux c语言进阶 - 进程,通信方式
  • VRRP技术
  • 从零构建实时通信引擎:Freeswitch源码编译与深度优化指南
  • 3秒请假:华润啤酒AI助手“哆啦”的轻巧落地与深度思考
  • 【洛谷】用两个数组实现静态单链表、静态双向链表,排队顺序
  • 基于JAVA实现基于“obj--html--pdf” 的PDF格式文本生成
  • Android perfetto 工具使用
  • 使用vue-pdf-embed发现某些文件不显示内容
  • Stirling PDF本地PDF编辑器:cpolar内网穿透实验室第628个成功挑战
  • css3地球转动模型(动态数据)
  • vue3实现高性能pdf预览器功能可行性方案及实践(pdfjs-dist5.x插件使用及自定义修改)
  • fuse低代码工作流平台概述【已开源】-自研
  • 面试题:sql题一
  • Elastic Cloud 简化版:GCP Marketplace
  • 【Java SE】Object类
  • 行业分类表sql
  • Axios Token 设置示例
  • OEC 刷机Armbain 25.05后配置说明
  • Java 网络编程详解:从基础到实战,彻底掌握 TCP/UDP、Socket、HTTP 网络通信