数据安全提示: 所有计算均在您的浏览器本地完成,密钥和消息不会上传到服务器。
ECDSA 数字签名工具
基于 elliptic 6.5.4
操作模式:
当前:密钥对生成
椭圆曲线
哈希算法
高级选项
密钥对
椭圆曲线示意 (点击生成更新)
私钥 (Private Key)
点击下方按钮生成
公钥 (Public Key)
点击下方按钮生成
显示格式:
字符数: 12
签名结果 (r+s hex)
r值: -
s值: -
恢复ID: -
解析r: -
解析s: -
源格式
目标格式
转换结果
密钥生成 -
签名耗时 -
验证耗时 -
ECDSA 算法原理
椭圆曲线数字签名算法 (ECDSA) 基于椭圆曲线离散对数问题 (ECDLP)。
1. 密钥生成
私钥 d ← 随机数,公钥 Q = d × G (G为基点)
2. 签名
选择随机k,计算 r = (k×G).x mod n,s = k⁻¹(e + d·r) mod n
3. 验证
计算 w = s⁻¹, u₁ = e·w, u₂ = r·w, 检查 u₁×G + u₂×Q 的x坐标是否等于 r
椭圆曲线标准
| 曲线 | 安全等级 | 密钥长度 | 主要应用 |
|---|---|---|---|
| P-256 | 128位 | 32字节 | TLS 1.3, 移动端 |
| P-384 | 192位 | 48字节 | 政府、金融 |
| P-521 | 260位 | 66字节 | 最高安全 |
| secp256k1 | 128位 | 32字节 | 比特币、以太坊 |
安全性说明
- 基础安全:基于ECDLP,256位密钥等效于3072位RSA。
- 已知风险:随机数k重用会导致私钥泄露(索尼PS3事件)。
- 最佳实践:使用确定性ECDSA (RFC 6979) 避免随机数问题。
- 量子威胁:Shor算法可破解,但需要大规模量子计算机。
快速示例
Node.js ECDSA 示例
Python ecdsa 库示例