ECDSA 署名を実装する
ECDSA(楕円曲線デジタル署名アルゴリズム)は、RSA より小さい鍵でデジタル署名を提供します。署名の生成と検証を学びましょう。
- 1
ECDSA:秘密鍵 d でメッセージ m に署名するには、e = hash(m) を計算し、ランダムな k を選び、(x, y) = k*G、r = x mod n、s = k^(-1)(e + r*d) mod n を計算します。署名は (r, s) です。公開鍵 Q = d*G で検証するには、w = s^(-1) mod n、u1 = e*w、u2 = r*w、(x, y) = u1*G + u2*Q を計算し、x mod n = r を確認します。ランダムな k は決して繰り返しても漏えてもなりません。これが PlayStation 3 と一部の Bitcoin ウォレットを破壊しました。
- 2 HMAC ジェネレーター →
メッセージに対して決定的な HMAC を生成します。ECDSA にはメッセージのハッシュが必要です。SHA-256 を使ってください。決定的 ECDSA(RFC 6979)では、HMAC を使って秘密鍵とメッセージハッシュから k を導出します。ランダムな k の必要性を排除し、nonce 再利用の脆弱性を防ぎます。
- 3 ハッシュ計算ツール →
署名前にメッセージを SHA-256 でハッシュします。ハッシュにより、メッセージが曲の体に収まる固定サイズのダイジェストに縮小されます。P-256 には SHA-256、P-384 には SHA-384 を使ってください。MD5 や SHA-1 は決して使わないでください。破られており、署名の偽造を許します。
よくある質問
- ECDSA の nonce k が再利用されるとどうなりますか?
- 壊滅的な鍵漏えいです。同じ k で 2 つのメッセージに署名すると、攻撃者は 2 つの署名から秘密鍵 d を計算できます。これが Sony PlayStation 3(静的 k)や一部の初期 Bitcoin 実装を破壊しました。決定的 ECDSA(RFC 6979)を使えば、このリスクを排除できます。
- ECDSA と EdDSA のどちらですか?
- ECDSA は署名ごとにランダムな nonce(または決定的導出)を必要とします。EdDSA(Ed25519)は設計上決定的で、Edwards 曲線を使い(高速、単純、特殊ケースなし)、強い偽造不可能性を持ちます。新しいシステムには Ed25519(EdDSA)を使ってください。より単純で高速で、nonce の落とし穴を回避できます。
このタスクを解決するワークフロー
コンテンツのハッシュと Base64 エンコード
入力のハッシュを計算し、コンパクトな転送のためにハッシュダイジェストを Base64 としてエンコードする。 パイプライン
テキストのハッシュと整合性検証
入力テキストのハッシュを計算し、期待されるハッシュと比較して整合性を検証する。 パイプライン
テキストのハッシュと CRC32 チェックサム検証
データ整合性検証のために、暗号学的 SHA-256 ハッシュと CRC32 チェックサムの両方を計算する。 パイプライン
HMAC 署名後に Base64 エンコード
HMAC 署名を生成し、API 認証ヘッダーのために Base64 エンコードする。 パイプライン
HMAC 署名と検証
メッセージの HMAC 署名を生成し、期待される署名と照合して検証する。 パイプライン
API リクエスト文字列の HMAC 署名
API 呼び出しを認証するために、リクエストペイロードの HMAC-SHA256 署名を生成する。 パイプライン
MD5 ハッシュ後に Base58 エンコード
MD5 ハッシュを計算し、コンパクトな表現のために Base58 としてエンコードする。 パイプライン
マルチハッシュ速度比較
入力をハッシュし、複数のハッシュアルゴリズムをベンチマークして速度と出力を比較する。 パイプライン
パスワード生成とハッシュ
ランダムパスワードを生成し、安全な保存のためにハッシュする。 パイプライン
SHA3-256 ハッシュと CRC32 チェックサム
SHA3-256 ハッシュを計算し、二重整合性検証のために CRC32 チェックサムを計算する。 パイプライン
SHA-512 ハッシュ後に Hex エンコード
SHA-512 ハッシュを計算し、可読性のために Hex としてエンコードする。 パイプライン
テキスト反転とハッシュ
テキストを反転し、その後反転結果の SHA-256 ハッシュを計算する。 パイプライン
テキストスクランブルとハッシュ
テキストをスクランブルし、その後スクランブル結果をハッシュする。 パイプライン
関連ツール
HMAC ジェネレーター
Generate HMAC (Keyed-Hash Message Authentication Code) with SHA-1/256/512。無料、プライベート、100%クライアントサイド。 ツール
ハッシュ計算ツール
Compute MD5, SHA-1, SHA-256, or SHA-512 hashes with hex or Base64 output。無料、プライベート、100%クライアントサイド。 ツール
剰余べき乗計算ツール
Modular Exponentiation — 純クライアントサイドツール。プライバシーファースト、サーバー往復なし。 ツール