ECDSA署名ツール
楕円曲線デジタル署名アルゴリズム
ECDSA鍵ペア生成
選択した曲線用の新しいランダムECDSA鍵ペアを生成します。秘密鍵は秘密に保管し、公開鍵は共有できます。
秘密鍵から公開鍵を導出
既存の秘密鍵を入力して対応する公開鍵を計算します。
ドキュメント
ECDSA(楕円曲線デジタル署名アルゴリズム)は、楕円曲線暗号に基づく広く使用されているデジタル署名方式です。RSAと同じセキュリティレベルをはるかに小さな鍵サイズで提供し、モバイルデバイスやブロックチェーンネットワークなどのリソース制限のある環境に最適です。
主な特徴
- 小さな鍵サイズ:256ビットECDSAは3072ビットRSAと同等のセキュリティを提供
- 高速な操作:署名と検証はRSAより大幅に高速
- コンパクトな署名:ECDSA署名はRSA署名よりはるかに小さい
- 複数の曲線:secp256k1、P-256、P-384、P-521曲線をサポート
- 業界標準:ビットコイン、イーサリアム、TLSなど多くのプロトコルで使用
サポートされる曲線
- secp256k1:ビットコインとイーサリアムで使用される曲線。256ビットのセキュリティ、効率的な実装に最適化。
- P-256(secp256r1):NIST標準曲線、TLS、政府アプリケーション、WebCrypto APIで広く使用。
- P-384(secp384r1):192ビットのセキュリティレベルを提供するNIST標準曲線、高セキュリティアプリケーション向け。
- P-521(secp521r1):256ビットのセキュリティレベルを提供するNIST標準曲線、最高セキュリティのECDSA曲線。
ハッシュアルゴリズム
- SHA-256:ほとんどのアプリケーションの標準的な選択。P-256とsecp256k1曲線で使用。
- SHA-384:セキュリティレベルに合わせてP-384曲線での使用を推奨。
- SHA-512:P-521曲線での使用を推奨。256ビットのセキュリティを提供。
- Keccak-256:イーサリアムでトランザクション署名に使用。SHA-3ではなく、256ビット出力の元のKeccak。
一般的なユースケース
- ビットコインとブロックチェーン:トランザクション署名にsecp256k1とSHA-256ダブルハッシュを使用。
- イーサリアム:トランザクションとメッセージ署名にsecp256k1とKeccak-256を使用。
- TLS/SSL証明書:HTTPS証明書署名にP-256曲線を使用。
- コード署名:真正性と整合性を確保するためにソフトウェアリリースに署名。
- API認証:改ざんを防ぎ、アイデンティティを確認するためにAPIリクエストに署名。
セキュリティベストプラクティス
- 秘密鍵の保護:秘密鍵を公開したり共有したりしないでください。重要なアプリケーションにはHSMを使用。
- 安全な乱数の使用:ECDSAには暗号学的に安全な乱数が必要。このツールはWeb Crypto APIを使用。
- 公開鍵の検証:署名を受け入れる前に、必ず信頼できるチャネルで公開鍵を検証。
- クライアント側処理:このツールは完全にブラウザで実行されます。鍵がデバイスから出ることはありません。
- 署名の可鍛性:ECDSA署名は可鍛性がある場合があります。必要に応じて正規(低S)署名を使用。
ECDSAと他の署名方式の比較
| 特徴 | ECDSA (P-256) | RSA-2048 | Ed25519 |
|---|---|---|---|
| 秘密鍵サイズ | 32バイト | 256バイト | 32バイト |
| 公開鍵サイズ | 64バイト | 256バイト | 32バイト |
| 署名サイズ | 64バイト | 256バイト | 64バイト |
| 署名速度 | 高速 | 低速 | 非常に高速 |
| 検証速度 | 中程度 | 高速 | 非常に高速 |
| 決定的署名 | RFC 6979 | はい | はい |