CoderTools

DSA 签名工具

数字签名算法(FIPS 186)

FIPS 186-5 弃用声明

根据 FIPS 186-5(2023年2月),DSA 签名生成功能已被弃用。仅签名验证功能被批准使用。新应用建议使用 ECDSA 或 Ed25519。

🔒 100% 本地处理您输入的数据完全在浏览器中处理,不会上传到任何服务器。
本工具仅支持导入现有密钥。密钥生成功能在 FIPS 186-5 中已被弃用。

导入 DSA 密钥

粘贴您的 DSA 密钥(PEM 格式)。由于浏览器环境限制,本工具不支持生成 DSA 密钥。您可以使用 OpenSSL 生成密钥后在此导入。

使用 OpenSSL 生成密钥
# 生成 DSA 参数
openssl dsaparam -out dsaparam.pem 2048
# 生成私钥
openssl gendsa -out private.pem dsaparam.pem
# 导出公钥
openssl dsa -in private.pem -pubout -out public.pem

文档说明

DSA(数字签名算法)是 FIPS 186 中规定的联邦信息处理标准数字签名方案。最初于 1994 年发布,DSA 被广泛用于政府和商业系统中的数字签名应用。虽然正确实现时仍然安全,但 NIST 已在 FIPS 186-5(2023)中弃用了 DSA 的签名生成功能,推荐使用更高效的椭圆曲线算法。

FIPS 186-5 状态

截至 2023 年 2 月,NIST FIPS 186-5 不再批准将 DSA 用于数字签名生成。仅保留 DSA 签名验证功能用于验证过渡前创建的签名。对于需要数字签名的新应用,NIST 推荐使用 ECDSA(P-256、P-384、P-521)或 EdDSA(Ed25519、Ed448)。

核心特性

  • 符合 FIPS 标准:符合 NIST FIPS 186-4 数字签名标准
  • 多种参数:支持 (L, N) 组合 (2048, 256)、(3072, 256) 和旧版尺寸
  • SHA-2 系列:兼容 SHA-1(仅用于旧系统)、SHA-224 和 SHA-256 哈希函数
  • DER 编码:输出标准 ASN.1 DER 格式签名
  • 浏览器本地运行:所有操作在浏览器本地运行,使用 jsrsasign 库

支持的参数

  • (2048, 256):推荐参数集。L=2048 位素数模,N=256 位素数因子。提供 112 位安全级别。
  • (3072, 256):高安全性参数集。L=3072 位素数模,提供 128 位安全级别。速度较慢但更具前瞻性。
  • (1024, 160):旧版参数集。仅用于与现有系统兼容。不建议用于新应用。
  • (2048, 224):备选参数集,N=224 位因子。较少使用但仍然安全。

哈希算法

  • SHA-256:DSA 的推荐哈希函数。提供 128 位抗碰撞能力,适用于 (2048, 256) 参数。
  • SHA-224:备选哈希函数,提供 112 位抗碰撞能力。适用于标准安全要求。
  • 注意:由于 jsrsasign 库限制,本工具不支持 SHA-384 和 SHA-512。
  • SHA-1:已知存在弱点的旧版哈希函数。仅用于验证旧签名,切勿用于新签名。

安全注意事项

  • 建议迁移:NIST 建议将新签名应用从 DSA 迁移到 ECDSA 或 EdDSA。
  • 随机数质量:DSA 安全性严重依赖签名过程中的高质量随机数。糟糕的随机性可能暴露私钥。
  • 私钥保护:永远不要暴露或分享您的私钥。敏感应用请考虑使用硬件安全模块(HSM)。
  • 参数验证:使用前务必验证 DSA 参数(p、q、g),以防止使用恶意构造的参数进行攻击。
  • 本地处理:本工具完全在浏览器中运行,您的密钥永远不会离开您的设备。

DSA 与现代签名方案对比

特性 DSA (2048, 256) ECDSA (P-256) Ed25519
私钥大小 约 256 位 256 位 256 位
公钥大小 约 2048 位 512 位 256 位
签名大小 约 512 位 512 位 512 位
安全级别 112 位 128 位 128 位
FIPS 186-5 状态 已弃用 已批准 已批准

相关工具

快捷菜单

暂无访问记录