SHA-384ハッシュジェネレーター(TLS Suite Bハッシュ)
SHA-384ハッシュをオンラインで生成。96文字16進数出力、長さ拡張攻撃耐性、NSA Suite B準拠。AES-256-GCMとTLSで組み合わせて使用。すべてのハッシュ処理はWeb Crypto API経由でブラウザ内で完結。
SHA-384とは?
SHA-384はSHA-2ファミリーの384ビット暗号学的ハッシュ関数で、NISTが2001年にFIPS 180-2の一部として公開しました。構造的には SHA-512 の切り詰め版です。両アルゴリズムは同一の64ビットワード演算・80圧縮ラウンド・1024ビット入力ブロックを使用します。唯一の違いは初期化ベクトル(IV)と、SHA-384がSHA-512の512ビット出力の最後の128ビットを破棄して384ビット(96文字16進数)を生成する点です。
切り詰めが暗号学的に重要な理由:SHA-256は長さ拡張攻撃に脆弱です。SHA-256(message)を与えられた攻撃者は元のメッセージを知らずにSHA-256(message || padding || extension)を計算できます。SHA-384はこの攻撃面を排除します。切り詰めにより内部状態の128ビットが破棄されるため、公開された384ビットハッシュはSHA-512計算を再開するのに十分な情報を持ちません。これにより生のSHA-384(HMACラッピングなし)は、ハッシュ出力が攻撃者に公開される可能性のある構造でも安全に使用できます。
NSA Suite BとTLSでの役割:SHA-384はNSA Suite B(CNSSP-15、2005年)でTOP SECRET分類に義務付けられました。cipher suite ECDHE-ECDSA-AES256-GCM-SHA384のハッシュアルゴリズムで、Suite B準拠システムの標準TLS 1.2 cipher suiteとして米国政府・金融・国防ネットワークで広く展開されています。NSAのCNSAスイート(2015年)はSHA-384とSHA-256を両方保持し、SHA-384はTLS 1.3の署名アルゴリズムリスト(ecdsa_secp384r1_sha384)にも登場します。
パフォーマンス:64ビットハードウェアではSHA-384とSHA-512は同一の速度で動作します。どちらも専ら64ビットワード演算を使用します。最新のx86-64とARM64プロセッサでは通常SHA-256より高速です。
このツールはWeb Crypto APIの crypto.subtle.digest('SHA-384', ...) を使用してブラウザ内でSHA-384を計算します。出力は sha384sum・openssl dgst -sha384・Pythonの hashlib.sha384() と同一です。
SHA-384を使うべき場合:Suite B / CNSA準拠が必要なTLS cipher suites・TLS 1.2 PRFのHMAC-SHA-384・HKDF-SHA-384鍵導出・機密文書フィンガープリント確認・HMACラッピングなしで長さ拡張耐性が必要なあらゆるコンテキスト。SHA-384を使うべきでない場合:汎用チェックサムと日常的な整合性用途 — SHA-256 がそれらの標準的な選択で、よりシンプルなライブラリサポートと普遍的なツール互換性があります。
// Hash text using Web Crypto API (SHA-384)
async function sha384(text) {
const data = new TextEncoder().encode(text);
const hash = await crypto.subtle.digest('SHA-384', data);
return Array.from(new Uint8Array(hash))
.map(b => b.toString(16).padStart(2, '0'))
.join('');
}
await sha384('Hello, World!');
// → '5485cc9b3365b4305dfb4e8337e0a598a574f8242bf17289e0dd6c20a3cd44a089de16ab4ab308f63e44b1170eb5f515' SHA-384の使用例
TLS cipher suiteハンドシェイクフィンガープリント
ECDHE-ECDSA-AES256-GCM-SHA384
cipher suite名 ECDHE-ECDSA-AES256-GCM-SHA384 はTOP SECRET TLSセッション向けの正規のSuite B cipher suiteです。SHA-384サフィックスはTLS 1.2ハンドシェイクでセッション鍵を導出するために使用されるPRF(疑似乱数関数)を指します。この文字列を貼り付けてcipher suite名のSHA-384ハッシュを生成することで、環境をまたいでSHA-384実装の一貫性を素早く確認できます。実際のTLSセッションでは、証明書チェーン・プリマスターシークレット・ハンドシェイクトランスクリプトがすべてTLS 1.2 PRFの一部としてHMAC-SHA-384で処理されます。
HKDF-SHA-384鍵導出(TLS 1.2 PRF)
master secret || client random || server random
TLS 1.2のPRF(RFC 5246で定義)はSHA-384でネゴシエートされたcipher suiteに対してHMAC-SHA-384を使用します。マスターシークレットはP_SHA384(pre_master_secret, 'master secret' || ClientHello.random || ServerHello.random)を使用してプリマスターシークレットから導出されます。HKDF-SHA-384(RFC 5869)はこのパターンを汎用鍵導出に拡張し、TLS 1.3の鍵スケジュールやIKEv2(IPsec)でも使用されています。HMACを適用する前のSHA-384フィンガープリントを確認するためにシードマテリアルをここに貼り付けてください。
NSA Suite B機密文書フィンガープリント
CLASSIFIED//TS//SI//NF — Document ID: TSC-2026-0001
NSAのSuite B暗号プロファイル(CNSSP-15、2018年にCNSAスイートに置き換え)はTOP SECRET文書の整合性にSHA-384を義務付けていました。情報機関システムは改ざん検出のためにSHA-384で機密文書のフィンガープリントを作成します。この96文字の16進数文字列はAES-256-GCMで暗号化されたペイロードとともにドキュメントマニフェストに保存されます。ドキュメントヘッダーまたはID文字列を貼り付けてSHA-384フィンガープリントを生成してください。
HMAC-SHA-384メッセージ認証
POST /api/v2/transfer
Content-Type: application/json
{"amount":10000,"to":"account-XYZ"} HMAC-SHA-384は高保証APIでリクエストボディを認証するために使用されます。サーバーはHMAC-SHA-384(secret_key, canonical_request)を計算してAuthorizationヘッダーに16進数ダイジェストを含め、クライアントは同じ計算を再現して比較します。SHA-384は生(非HMAC)の形でも長さ拡張攻撃に耐性があるため、HMAC-SHA-256よりも分散ログシステムや署名URL方式など生のハッシュが公開される可能性があるシナリオで追加の安全マージンを提供します。HMACキーを適用する前にリクエストボディのSHA-384ハッシュを確認するためにここに貼り付けてください。
SHA-384ハッシュの生成方法
- 1
テキストを貼り付けるかファイルをドロップ
「テキスト」タブを選択して、ドキュメントID・リクエストボディ・任意の入力など任意の文字列を入力欄に貼り付けてください。SHA-384ハッシュは入力に応じてリアルタイムで更新されます。ファイルの場合は「ファイル」タブに切り替えてドロップゾーンにドラッグしてください。Web Crypto APIを使用してアップロードなしにローカルでハッシュ化されます。大きなファイル(10 MB超)では進捗インジケーターが表示されます。
- 2
96文字のハッシュをコピー
ハッシュ出力の隣にある「コピー」ボタンをクリックしてください。96文字の小文字16進数文字列全体がクリップボードにコピーされ、TLS設定・コンプライアンスレポート・HMAC実装にすぐに貼り付けられます。ターゲットシステムが大文字の16進数を要求する場合は「大文字」トグルを使用してください。
- 3
既知のハッシュと比較
「比較」タブに切り替えて2つのSHA-384ハッシュを並べて貼り付けてください。定数時間比較でタイミング情報を漏洩せずに一致または不一致を報告します。Suite B準拠ハッシュの検証・実装間でのHKDF-SHA-384導出鍵の比較・機密アーカイブ監査でのドキュメントフィンガープリント確認に役立ちます。
技術仕様
- アルゴリズム:異なるIVを持つSHA-512、出力を384ビットに切り詰め
- SHA-384はSHA-512と構造的に同一です(FIPS 180-4セクション6.5)。両方が最初の80素数の立方根と平方根から導出された定数で80ラウンドの64ビット演算(Ch・Maj・Σ0・Σ1関数)を使用します。初期化ベクトル(8つの64ビットワード)はSHA-512のIVと異なります — SHA-384のIVは9番目から16番目の素数の平方根の小数部から導出されます。処理後、8ワード状態の最初の6つの64ビットワードが出力されます(384ビット)。最後の2ワードは破棄されます。
- 出力:384ビット、96文字16進数
- 常に正確に96文字の小文字16進数(384ビット = 48バイト、1バイト2文字)。入力サイズによらず固定長。96文字の長さがSHA-256(64文字)やSHA-512(128文字)と即座に区別できるSHA-384の特徴です。破棄された128ビット — 最後の2つの64ビット状態ワード — がSHA-384を長さ拡張耐性にする要素です。
- パフォーマンス:64ビットハードウェアでSHA-512と同一
- SHA-384とSHA-512は64ビットCPUで同じ命令シーケンスを実行します。両方が64ビット回転と加算で1024ビット(128バイト)入力ブロックを使用します。スループットはブラウザでのWeb Crypto API使用時に通常500〜900 MB/s(JS VMの外でネイティブC/Rustコードを呼び出します)、ハードウェアSHA拡張を持つネイティブツールで1〜3 GB/s。32ビットハードウェアまたはハードウェアアクセラレーションなしでは、64ビット整数エミュレーションのためSHA-384/512はSHA-256より低速です。
- 標準:FIPS 180-4、NSA Suite Bレガシー、CNSA現行
- FIPS 180-2(2001年)で標準化、現行版FIPS 180-4(2015年)。NSA Suite B(CNSSP-15、2005年)でTOP SECRETに必須、CNSAスイート(2015年)にも残存。TLSのRFC 5246(SHA-384 cipher suiteのTLS 1.2 PRF)・RFC 8446(TLS 1.3署名アルゴリズム ecdsa_secp384r1_sha384)・RFC 5869(HKDF)で指定。NIST SP 800-131A Rev 2の下で2030年以降まですべてのセキュリティ強度レベルでNIST承認済み。
ベストプラクティス
- HMACなしに長さ拡張耐性が重要な場合はSHA-384を使用
- プロトコルが生のハッシュ出力を公開し、攻撃者がメッセージを延長しようとする可能性がある場合(署名付きURLや特定のチャレンジレスポンス方式など)、SHA-384はSHA-256が持たない固有の長さ拡張耐性を提供します。その他のキー付き用途には、基礎となるハッシュに関わらずHMACを適用してください — HMAC-SHA-256とHMAC-SHA-384はどちらも安全で、HMACはSHA-2バリアントのすべてで長さ拡張攻撃を排除します。
- Suite B / CNSA準拠にはAES-256-GCMと組み合わせる
- NSA Suite BまたはCNSA要件に準拠するシステムを構築する場合、正規の組み合わせはバルク暗号化にAES-256-GCM、整合性と鍵導出にSHA-384です。TLS 1.2のリファレンスcipher suiteはECDHE-ECDSA-AES256-GCM-SHA384です。TLS 1.3では同等の組み合わせはTLS_AES_256_GCM_SHA384とecdsa_secp384r1_sha384署名アルゴリズムです。TLSライブラリが実際にこれらのcipher suiteをネゴシエートしているか確認してください。Suite B設定のシステムでさえデフォルトがAES-128バリアントを好む場合があります。
- TLS 1.2 PRFコンテキストではHMAC-SHA-384を使用
- TLS 1.2のPRFは、SHA-384がネゴシエートされたcipher suite向けにHMAC-SHA-384を使用します(RFC 5246セクション5)。TLS 1.2 PRFを実装またはテストする場合:PRF(secret, label, seed) = P_SHA384(secret, label + seed)。SHA-384 cipher suiteコンテキストでHMAC-SHA-256を代用しないでください — cipher suiteネゴシエーションがPRFハッシュを決定し、不一致はハンドシェイク失敗を引き起こします。RFC 5705(鍵マテリアルエクスポーター)やRFC 6070(PBKDF2)のテストベクトルで検証してください。
- コードでSHA-384ハッシュを検証する際は定数時間比較を使用
- コードで2つのSHA-384ハッシュを比較する場合(ドキュメントフィンガープリントの検証・MACのチェックなど)は、定数時間等値チェックを使用してください:Node.jsの
crypto.timingSafeEqual()・Pythonのhmac.compare_digest()・Goのsubtle.ConstantTimeCompare()。素の文字列等値比較(=== や ==)はタイミング情報を漏洩し、攻撃者が約768回の比較(96文字 × 8ビット)で期待されるハッシュをバイトごとに再構築できる可能性があります。これは認証システムにとって重要な多層防御措置です。
SHA-384 よくある質問
SHA-384をSHA-256より使う理由は何ですか?
SHA-384はSHA-512と同じくらい安全ですか?
SHA-384はSHA-512と同じ速度ですか?
HMAC-SHA-384はいつHMAC-SHA-256より重要ですか?
汎用ハッシュにSHA-384を使うべきですか?
NSA Suite Bとは何ですか?現在も使用されていますか?
SHA-384ハッシュの長さはどれくらいですか?
このツールを使うとデータはサーバーに送信されますか?
crypto.subtle.digest('SHA-384', data))を使用してブラウザ内で完全に計算されます。ハッシュ中にDevTools → Networkタブを開くと送信リクエストがゼロであることを確認できます。「ファイル」タブでドロップしたファイルはFileReader APIで読み込まれローカルでハッシュ化され、バイトはデバイス外に出ません。機密文書フィンガープリント・TLS秘密鍵マテリアル・その他の機密入力のハッシュ化に安全にご利用いただけます。同じプライバシー保証が SHA-256ジェネレーター と SHA-512ジェネレーター にも適用されます。 関連ツール
すべてのツールを見る →JWT デコーダー — オンライン解析ツール
セキュリティツール
JWTトークンを無料のJWTデコーダーでオンラインデコード。ヘッダー、ペイロード、署名、有効期限、アルゴリズム、クレームを即座に検査できます。100%ブラウザ動作 — トークンはデバイスから外に出ません。登録不要、追跡なし。
MD5ハッシュジェネレーター&ファイルチェックサムツール
セキュリティツール
無料オンラインMD5ハッシュ生成ツール。ブラウザ上でMD5・SHA-256・SHA-1・SHA-512のハッシュ値を即座に生成。テキストやファイルのチェックサム検証・比較、ワンクリックコピー対応。登録不要でデータはサーバーに送信されません。
ランダムパスワード生成 — カスタマイズ可能&安全
セキュリティツール
無料のオンラインランダムパスワード生成ツール。ブラウザ上で安全な強力パスワードを即座に自動生成できます。長さや文字種のカスタマイズ、最大50個の一括生成に対応。エントロピー分析付き強度メーター搭載。データはサーバーに送信されません。
SHA-1ハッシュジェネレーター(160ビット・レガシー)
セキュリティツール
ブラウザ上でSHA-1ハッシュを生成。40文字の16進数出力、アップロード不要。Gitコミット確認・旧証明書フィンガープリント検証・移行監査向けレガシーツール。データはデバイス外に出ません。
SHA-256ハッシュジェネレーター&チェックサムツール
セキュリティツール
SHA-256ハッシュをオンラインで無料生成。テキストやファイルをブラウザ上でハッシュ化し、チェックサムを検証して64文字の16進数出力をコピー。登録不要、データはページ外に出ません。
SHA-3ハッシュジェネレーター(Keccak SHA3-256)
セキュリティツール
SHA-3ハッシュをオンラインで無料生成。NIST FIPS 202スポンジ構造 — SHA-2後継の標準。SHA3-256出力64文字16進数。ブラウザ完結型(遅延読み込みjs-sha3)、アップロードなし。