2. 数字签名基础:数字签名原理、公钥与私钥、签名与验签流程、常见签名算法简介

2.1 数字签名核心原理

数字签名是公钥密码学在数据完整性、身份认证和不可否认性方面的核心应用。其本质是:用私钥对消息摘要进行加密,用公钥进行解密验证。数字签名并非对原始消息整体加密,而是对消息的哈希摘要进行签名操作,从而在保证安全性的同时大幅提升效率。

关键特性:
  • 身份认证:验证签名者持有的私钥,确认消息来源。
  • 数据完整性:任何对原始消息的篡改都会导致验签失败。
  • 不可否认性:签名者无法否认自己签署过的消息(私钥唯一持有)。

2.2 公钥与私钥

在非对称密码体系中,每个实体拥有一对密钥:

密钥类型 持有者 保密性 主要用途
私钥 (Private Key) 签名者本人 保密,不可泄露 生成数字签名;解密公钥加密的数据
公钥 (Public Key) 公开 无需保密 验证数字签名;加密发送给私钥持有者的数据
重要原则:私钥一旦泄露,攻击者可以伪造该身份的所有签名。在调度器签名证据校验场景中,验证节点必须持有调度器公钥的可靠副本(通常通过证书链或链上注册获取)。

2.3 签名与验签流程

数字签名的完整流程分为两个阶段:签名生成(发送方)和签名验证(接收方)。

2.3.1 签名生成流程(发送方)

  1. 计算消息摘要:对原始消息 M 使用哈希函数(如 SHA-256)生成固定长度的摘要 H(M)。
  2. 私钥签名:使用发送方的私钥 SK 对摘要 H(M) 进行签名运算,生成签名值 Sig = Sign(SK, H(M))。
  3. 发送:将原始消息 M 和签名值 Sig 一起发送给接收方。

2.3.2 签名验证流程(接收方)

  1. 计算消息摘要:对收到的原始消息 M' 使用相同的哈希函数计算摘要 H(M')。
  2. 公钥验签:使用发送方的公钥 PK 对签名值 Sig 和摘要 H(M') 进行验证运算 Verify(PK, Sig, H(M'))。
  3. 输出结果:若验证通过,则签名有效;否则签名无效,消息可能被篡改或来源不可信。
数字签名与验签流程 签名生成(发送方) 原始消息 M 哈希函数 H(·) 消息摘要 H(M) 私钥签名 Sign(SK, ·) 签名验证(接收方) 收到的消息 M' 哈希函数 H(·) 消息摘要 H(M') 签名值 Sig 公钥验签 Verify(PK, ·) 有效 / 无效

2.4 常见签名算法简介

不同的签名算法在安全性、性能、签名长度和抗量子能力上存在显著差异。在调度器签名证据校验场景中,算法选择直接影响证据的存储开销和验证效率。

算法 密钥长度 签名长度 安全性基础 典型应用
RSA 2048–4096 bit 256–512 字节 大整数分解困难 HTTPS、代码签名
ECDSA 256–521 bit 64–132 字节 椭圆曲线离散对数困难 区块链交易签名(比特币、以太坊)
EdDSA (Ed25519) 256 bit 64 字节 扭曲爱德华曲线离散对数困难 现代密码学协议、调度器签名
BLS 256–384 bit 32–96 字节 双线性配对 签名聚合、共识协议
SM2 256 bit 64 字节 椭圆曲线离散对数困难 国密标准、政务系统
调度器场景选型建议:
  • EdDSA (Ed25519) 是目前调度器签名证据校验的推荐选择:签名短(64字节)、生成速度快、抗侧信道攻击能力强。
  • BLS 适用于需要批量验证或签名聚合的高吞吐调度场景,但配对运算开销较高。
  • RSA 因签名长度大、验签速度慢,在链上证据校验中已逐渐被淘汰。

2.5 签名算法对比:性能与安全维度

下表从实际工程角度对比主流签名算法的关键指标,帮助理解调度器签名证据校验中的算法取舍:

指标 RSA-2048 ECDSA (secp256k1) Ed25519 BLS (BLS12-381)
签名速度 慢 中 快 中
验签速度 慢 中 快 慢(配对运算)
签名大小 256 字节 64–72 字节 64 字节 48–96 字节
公钥大小 256 字节 33–65 字节 32 字节 48–96 字节
抗量子安全 否 否 否 否
聚合签名 不支持 不支持 不支持 原生支持
工程实践提示:在调度器签名证据校验中,签名大小直接影响链上存储 Gas 成本。Ed25519 的 64 字节签名在大多数 EVM 兼容链上仅需约 2 万 Gas 的存储开销,而 RSA-2048 的 256 字节签名则需 8 万 Gas 以上。对于高频调度场景,优先选择短签名算法。
常见签名算法综合对比(概念示意) RSA-2048 签名大小: 256 字节 验签速度: ★☆☆☆☆ 安全强度: 112 bit 聚合支持: 否 不推荐链上使用 ECDSA 签名大小: 64–72 字节 验签速度: ★★★☆☆ 安全强度: 128 bit 聚合支持: 否 兼容性优先 Ed25519 签名大小: 64 字节 验签速度: ★★★★★ 安全强度: 128 bit 聚合支持: 否 调度器首选 选型建议:调度器签名证据校验优先选择 Ed25519,兼顾安全、性能与链上存储成本 BLS 适用于需要签名聚合的高吞吐场景,但验签配对运算较慢

2.6 调度器签名证据校验中的签名应用

在调度器签名证据校验场景中,数字签名用于以下关键环节:

  • 调度指令签名:调度器使用私钥对每个调度指令(如任务分配、资源调整)进行签名,确保指令来源可信。
  • 执行结果签名:执行节点对任务执行结果进行签名,作为不可篡改的执行证据。
  • 证据链构建:多个签名证据按时间顺序链接,形成可追溯的调度证据链。
  • 链上验证:智能合约或验证节点使用调度器公钥对签名证据进行批量验证,确保调度过程合规。
核心结论:数字签名是调度器签名证据校验的基石。理解公钥/私钥体系、签名与验签流程以及不同签名算法的特性,是后续章节学习证据格式设计、批量验证优化和安全性分析的前提。在调度器场景中,Ed25519 因其短签名、高性能和强安全性,成为最广泛采用的签名算法。