コンテンツへスキップ
uencoder

Key Derivation

鍵導出(Key Derivation)は、低エントロピーのパスワードや高エントロピーのマスター鍵から暗号鍵を生成するプロセスである。KDF(PBKDF2、scrypt、Argon2 など)を使い、総当たり攻撃のコストを引き上げる。

目的

人間のパスワード(低エントロピー)を十分に長い暗号鍵に変え、辞書攻撃やレインボーテーブル攻撃に耐える。

メカニズム

KDF はパスワード、ソルト、反復/コストパラメータ、出力長を取り、擬似乱数の鍵を生成する。反復は試行ごとのコストを倍加し、ソルトは事前計算テーブルを防ぎ、メモリ困難 KDF(scrypt/Argon2)はさらに GPU/ASIC の並列化に耐える。

ユースケース

  • ユーザーパスワードの暗号化保存
  • ディスク暗号化のマスター鍵導出
  • TLS セッション鍵導出(HKDF)
  • API トークン生成

例

  • 入力
    password + salt + 100000 iters
    Output
    256-bit key

    Iterations multiply the cost

よくあるエラー

Hashing passwords with a raw SHA (no salt, no iterations)
Use PBKDF2, scrypt, or Argon2

関連用語

関連ツール

References