DSA署名ツール
デジタル署名アルゴリズム(FIPS 186)
FIPS 186-5 非推奨のお知らせ
DSAはFIPS 186-5(2023年2月)で署名生成が非推奨となりました。署名検証のみが承認されています。新規アプリケーションにはECDSAまたはEd25519をご検討ください。
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):高セキュリティパラメータセット。128ビットセキュリティレベルのL=3072ビット素数モジュラス。遅いが将来性が高い。
- (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 vs モダン署名方式
| 機能 | DSA (2048, 256) | ECDSA (P-256) | Ed25519 |
|---|---|---|---|
| 秘密鍵サイズ | 約256ビット | 256ビット | 256ビット |
| 公開鍵サイズ | 約2048ビット | 512ビット | 256ビット |
| 署名サイズ | 約512ビット | 512ビット | 512ビット |
| セキュリティレベル | 112ビット | 128ビット | 128ビット |
| FIPS 186-5ステータス | 非推奨 | 承認 | 承認 |