当前位置: 首页 > 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.dtcms.com/a/292343.html

相关文章:

  • XSS内容分享
  • Windows 环境排除 Windows Defender 对指定路径或进程的影响
  • 在vscode 使用 remote-ssh
  • 【接口自动化】掌握接口自动化:核心概念讲解(理论知识)
  • 微博视觉算法面试30问全景精解
  • 8.4 Java 原生 TCP Socket 实现 HTTP 请求解析和请求分发
  • OpenCV基本的图像处理
  • 本地数据库有数据,web页面无信息显示,可能是pymysql的版本问题【pymysql连接本地数据库新旧版本的区别】
  • 【测试开发】----用例篇
  • 高并发场景下的缓存问题与一致性解决方案(技术方案总结)
  • 设计模式——责任链模式
  • 建造者设计模式
  • Qt布局管理:实现美观界面的关键
  • 2025 年最新 AI 技术:全景洞察与深度解析​
  • 从 0 到 1 搞定nvidia 独显推流:硬件视频编码环境安装完整学习笔记
  • Arraylist与LinkedList区别
  • 使用react编写一个简单的井字棋游戏
  • ZLMediaKit 入门
  • 第12天 | openGauss逻辑结构:模式管理
  • Java 大视界 -- Java 大数据在智能医疗医疗设备维护与管理中的应用(358)
  • 25. K 个一组翻转链表
  • Odoo:免费开源的金属制品行业ERP管理软件
  • React 面试题库
  • 写个 flask todo app,简洁,实用
  • calibrate_hand_eye (CalibDataID, Errors)
  • 2025年远程桌面软件深度评测:ToDesk、向日葵、TeamViewer全方位对比分析
  • C++学习——内联、C++11中的auto、for循环、nullptr
  • Windows Cmake Vs2017/2010 编译安装Protobuf
  • 【计算机网络】第五章:传输层
  • 双向链表详解及实现