SHAKE256 ハッシュ生成ツール(拡張可能出力)
テキスト、16進、Base64 から、任意の長さ(8〜16384ビット)の SHAKE256 出力をブラウザー内で生成。FIPS 202 の拡張可能出力関数で、16進または Base64 で出力します。
8 の倍数で 8〜16384 ビット。
すべてブラウザ内で実行されます。デー タがアップロードされることはありません。
SHAKE256 ハッシュ生成ツールとは?
SHAKE256 は、256ビットのセキュリティを持つ SHA-3 の拡張可能出力関数です。ダイジェストのサイズが固定されておらず、必要な出力ビット数を自分で選べます。このツールは、テキストまたは生のバイト列の SHAKE256 を、出力長を指定して計算します(既定は512ビット)。
SHAKE256 ハッシュ生成ツールの使い方
- ハッシュ化するテキスト に入力を入力または貼り付けます。入力するたびにダイジェストが更新されます(空欄のときは空入力のハッシュが表示されます)。
- 入力エンコーディング を選びます。テキスト (UTF-8) は文字を UTF-8 としてハッシュ化し、16進数のバイト列 や Base64 はデコードした生のバイト列をハッシュ化します。
- 出力長(ビット) を設定します。8〜16384 の範囲で8の倍数にします(既定は 512)。
- 出力形式(16進の小文字、16進の大文字、Base64)を選び、コピー をクリックします。
例
abc
483366601360a8771c6863080cc4114d8db44530f8f1e1ee4f94ea37e78b5739d5a15bef186a5386c75744c0527e1faa9f8726e462a12a4feb06bd8801e751e4
既定の出力長512ビットでの SHAKE256("abc") です。
SHAKE256 ハッシュ生成ツールを使うべき場面
プロトコルが SHAKE256 を指定している場合(例: Ed448 は SHAKE256 を、ML-KEM/Kyber や ML-DSA/Dilithium は SHAKE128/256 を使います)、シードから擬似乱数のバイト列を導出したいとき、あるいは標準的でない長さのハッシュが必要なときに使います。通常のハッシュが必要なだけなら、SHA3-256 や SHA-256 のほうがシンプルで、広くサポートされています。鍵付きで使う場合は、鍵とメッセージを連結してハッシュ化するのではなく KMAC を使ってください。
SHAKE256 ハッシュ生成ツールの仕組み
SHAKE256 は、FIPS 202 で定義された拡張可能出力関数(XOF)です。SHA-3 と同じ Keccak-f[1600] スポンジを、キャパシティ512ビット(レート1088ビット)、ドメインサフィックス 1111(パディングバイト 0x1F)で使います。入力を吸収した後、要求されたビット数だけスポンジから絞り出すため、出力長はアルゴリズムの性質ではなくパラメーターになります。短い出力は、長い出力の先頭部分と一致します。衝突に対する安全性は min(出力長/2, 256) ビットです。
一般的な使用例
- 耐量子計算機暗号アルゴリズムの仕様にある SHAKE の出力を再現する
- 任意の長さ(128ビットや1024ビットなど)のフィンガープリントを導出する
- SHA-3 / XOF 実装のテストベクターを生成する
- テスト用に、シードを大量の擬似乱数バイトに展開する
セキュリティ注意事項
SHAKE256 は NIST が承認した関数で、実用的な攻撃は知られていません。パスワードハッシュではなく、それ単体では MAC でもありません。鍵付きの認証には KMAC256 を使ってください。すべての処理はブラウザー内でローカルに実行されます。
よくある質問
SHAKE256 の512ビット出力は SHA3-512 と同じですか?
いいえ。Keccak の置換は共通ですが、キャパシティとドメインサフィックスが異なるため、出力は無関係です。
出力ビット数を増やすと、先頭部分は変わりますか?
いいえ。SHAKE256 の長い出力は、短い出力にさらにバイトが続いたものです。たとえば SHAKE256("abc") の先頭128ビットは、128ビットで計算した結果と同じです。
出力が長いほど安全になりますか?
256ビットのセキュリティレベルまでです。出力が512ビットを超えても、衝突耐性は256ビットのままです。