数字签名核心作用:身份认证、防篡改、不可抵赖,底层基于非对称密码体系,分为三大类:RSA 系列、椭圆曲线 ECC 系列、离散对数 DSA/EdDSA 系列;另有少量基于哈希的极简签名、后量子抗量子签名算法。
一、RSA 签名算法(最经典、应用最广)
底层原理
基于大整数质因数分解难题:公钥\((e,n)\)、私钥\((d,n)\);签名用私钥加密消息哈希,验签用公钥解密比对哈希。
细分标准
RSA-SHA256 / RSA-SHA3
主流标准,搭配 SHA256 哈希,用于 HTTPS 证书、PDF 签名、代码签名。
RSASSA-PSS(推荐替代老式 RSA)
概率化填充方案,修复老式 RSA 签名的安全漏洞,现代证书、国密改造强制使用 PSS 填充。
RSA-MD5/RSA-SHA1(已淘汰)
MD5、SHA1 哈希存在碰撞漏洞,禁止用于安全签名,仅老旧遗留系统存在。
优缺点
优点:标准成熟、兼容性极强(浏览器、操作系统、硬件加密卡全支持)
缺点:密钥长度大(安全 2048 位起步,4096 位性能差),签名 / 验签速度慢
二、DSA & ECDSA & EdDSA(离散对数类签名,轻量高效)
统一基于有限域离散对数难题,分为普通有限域 DSA、椭圆曲线 ECDSA、爱德华曲线 EdDSA 三类。
1. DSA(传统离散对数签名)
原理:素数有限域离散对数,仅用于签名不能加密(和 RSA 最大区别)
缺陷:密钥长、性能一般,现已基本被 ECDSA 替代,仅老旧政务系统少量遗留。
2. ECDSA 椭圆曲线数字签名(互联网主流轻量签名)
原理:椭圆曲线有限域离散对数难题;同等安全强度密钥远短于 RSA
例:256 位 ECDSA ≈ 2048 位 RSA 安全等级
常用曲线标准:
secp256r1(NIST P-256):安卓、iOS、SSL 证书通用
secp384r1(P-384):高安全金融场景
应用:区块链以太坊、TLS1.3、物联网设备、移动端 APP 签名
3. EdDSA(爱德华曲线签名,新一代高性能)
代表算法:Ed25519、Ed448
优势:
无随机数漏洞:ECDSA 若随机数泄露会直接泄露私钥,EdDSA 完全规避该风险;
速度极快、实现简单、侧信道攻击抗性强;
应用:SSH 密钥、Git commit 签名、Signal 加密通信、新一代区块链、云原生证书
三、国密商用密码签名算法(国内强制合规)
国内等保、政务、金融系统必须使用,两类核心签名算法:
1. SM2 椭圆曲线数字签名算法
国产自主椭圆曲线,基于国密 256 位素域曲线;
同时支持数字签名 + 非对称加密双重能力;
配套哈希 SM3,标准组合:SM2-with-SM3;
适用:电子签章、政务 CA 证书、银行 U 盾、国产操作系统签名。
2. SM9 标识基密码(IBC)签名算法
无需提前分发公钥证书,直接用用户身份(手机号、身份证号)作为公钥,简化密钥管理;多用于大规模物联网、多终端轻量化签名场景。
四、抗量子签名算法(后量子密码 PQC,下一代标准)
现有 RSA、ECC、DSA 全部可被量子计算机 Shor 算法破解,NIST 已标准化 3 类抗量子签名:
CRYSTALS-Dilithium(主流通用)
格基签名,平衡性能、密钥体积,将替代 RSA/ECDSA 成为新一代互联网标准;
FALCON(小签名尺寸)
格基算法,签名体积极小,适配物联网、嵌入式设备;
SPHINCS+(无密钥泄露风险,哈希基)
完全基于哈希函数,不依赖数学难题,量子安全、极简可信,但签名体积很大。
各类算法核心对比汇总表
补充:数字签名配套哈希函数说明
所有签名算法不会直接对大文件签名,只会对文件哈希值签名,配套哈希分为:
安全哈希:SHA256、SHA3、SM3(国密)
不安全哈希:MD5、SHA1(存在碰撞,禁止签名使用)