密码学
ECDSA
定义
DSA 在椭圆曲线上的变体,由 FIPS 186 标准化,生成紧凑签名,其安全性依赖于椭圆曲线离散对数问题。
椭圆曲线数字签名算法(ECDSA)是 DSA 的椭圆曲线版本,在 ANSI X9.62 和 FIPS 186 中标准化。签名时,签名者对消息计算哈希,为每次签名选择随机随机数 k,使用曲线基点与自身私钥得到 (r, s)。验证则使用公钥、哈希和 (r, s),无需泄露私钥。它的签名体积小——常用的 P-256 曲线约 64 字节——并广泛应用于 TLS、代码签名、JWT 以及大多数加密货币(比特币、以太坊使用 secp256k1)。最大风险是 k 的重复或随机性不足:重复的 k 会立即泄露私钥,Sony PS3 固件签名事件就是著名案例。如今往往优先选择 EdDSA(Ed25519),其确定性与对旁路攻击的抗性更佳。
示例
- TLS 服务器证书越来越多地使用 ECDSA-P256 取代 RSA。
- 比特币交易通过基于 secp256k1 的 ECDSA 签名进行授权。
相关术语
椭圆曲线密码学(ECC)
基于有限域上椭圆曲线代数结构的公钥算法族,以远小于 RSA 的密钥实现等同安全强度。
数字签名
一种公钥密码学机制,用于证明消息或文档的真实性、完整性以及不可否认性。
公钥密码学
使用成对的公钥与私钥实现加密、密钥交换、数字签名和身份认证的密码学分支,无需事先共享秘密。
ECDH
Diffie–Hellman 密钥交换在椭圆曲线上的变体,以更短的密钥和更快的运算提供相同的共享密钥功能。
RSA 算法
由 Rivest、Shamir 与 Adleman 于 1977 年提出的公钥算法,其安全性基于对两个大素数乘积进行因数分解的困难性。
密码学哈希函数
将任意长度输入映射为固定长度摘要的确定性单向函数,具备抗碰撞、抗原像和抗第二原像三大安全性质。