コンテンツへスキップ
uencoder

Hash Salting

ハッシュソルティング(Hash Salting)は、ハッシュ入力にランダムなソルトを追加して、同じ入力でも異なるハッシュを生成させる手法である。レインボーテーブルと衝突検出を無効化する。

目的

ハッシュ出力を一意にして、事前計算攻撃と同一入力の比較を防ぐ。

メカニズム

ランダムなソルトを生成して H(input || salt) を計算し、(salt, hash) を保存する。検証時は保存されたソルトで再ハッシュして比較する。ソルトは秘密である必要はないが一意でなければならない。パスワードハッシュや HMAC(HMAC は既に鍵を内包するが)などのシナリオで使用される。

ユースケース

  • 安全なパスワード保存
  • トークン生成の重複排除
  • データ指紋の重複排除
  • レインボーテーブル攻撃の防止

例

  • 入力
    pass1 + saltA → hashA; pass1 + saltB → hashB
    Output
    Same password, different hashes

    Unique salt

よくあるエラー

Salt too short (<16 bytes)
Use at least 16 random bytes

関連用語

関連ツール

References