RSA 是最早广泛使用的数字签名算法,基于大整数分解数学难题。签名时使用私钥对哈希值进行模幂运算,验签时使用公钥进行逆运算。RSA 签名的主要变体包括 PKCS#1 v1.5(传统方案,兼容性好)和 RSA-PSS(概率签名方案,安全性更高)。RSA-2048 提供约 112 位安全强度,RSA-3072 提供约 128 位安全强度。RSA 的优势在于生态成熟、兼容性极佳,但签名速度较慢,密钥和签名长度较大。
ECDSA 基于椭圆曲线密码学(ECC),使用远短于 RSA 的密钥提供同等安全强度。ECDSA P-256 使用 256 位密钥,安全强度与 RSA-3072 相当,签名长度仅约 70 字节(DER 编码),远小于 RSA-3072 的 384 字节。ECDSA 签名速度较快,验签速度也优于 RSA,特别适合移动设备、物联网终端等资源受限环境。ECDSA 已被纳入 NIST 标准,在 TLS 证书、加密货币(如比特币、以太坊)中广泛应用。
SM2 是中国国家密码管理局发布的椭圆曲线数字签名标准,基于国产椭圆曲线参数,安全强度与 ECDSA P-256 相当(约 128 位)。在相同安全强度的基准测试环境下,SM2 签名速度通常比 RSA-2048 快 3 至 5 倍,签名长度 64 字节(512 位),在密钥长度、传输开销和存储效率上均优于 RSA。在国内金融、政务、电力、医疗等需通过密评认证的场景中,SM2 是强制或优先推荐的签名算法。SM2 通常与国密哈希算法 SM3 配套使用。
Ed25519 是基于 Curve25519 椭圆曲线的数字签名算法,属于 EdDSA 家族,以高性能和强安全性著称。Ed25519 提供约 128 位安全强度,签名和验签速度均极快(显著快于 ECDSA P-256),签名长度 64 字节,公钥长度仅 32 字节。Ed25519 的设计天然抗多种侧信道攻击,实现相对简单,不易引入实现层漏洞。该算法广泛应用于现代 TLS 配置、区块链技术(如 Stellar、Cardano)、SSH 认证等高性能场景。
随着量子计算技术的发展,基于大整数分解和离散对数难题的传统签名算法面临量子攻击威胁。美国国家标准与技术研究院(NIST)已于 2024 年公布后量子数字签名标准 ML-DSA(核心算法为 Dilithium),基于格密码学构建,可抵抗量子计算攻击。目前 ML-DSA 等后量子签名算法已进入商用验证阶段,在对长期安全性有极高要求的场景中开始试点部署。