鍵導出関数とは?
かぎどうしゅつかんすう
鍵導出関数とは、パスワードや元の秘密情報から、暗号処理に使える安全な鍵を生成するための数学的な関数です。
鍵導出関数(Key Derivation Function、KDF)とは、パスワードや共有秘密などの元となる情報から、暗号鍵として利用できる固定長のビット列を生成する関数です。暗号システムにおいてパスワードをそのまま鍵として使うことは危険であるため、KDFを通じて安全な鍵へ変換する処理が広く用いられています。
KDFの主な役割は二つあります。一つは、短くて推測されやすいパスワードを長くランダムな鍵へ変換することです。もう一つは、「鍵ストレッチング」と呼ばれる計算コストの増大で、ブルートフォース攻撃やレインボーテーブル攻撃を困難にすることです。
代表的な鍵導出関数には以下のものがあります。
- PBKDF2:ソルトと反復回数を組み合わせた広く普及した方式
- bcrypt:コストパラメータで計算強度を調整できるパスワードハッシュ関数
- scrypt:メモリと計算量の両方を大量消費させることでGPUや専用ハードによる攻撃を防ぐ
- Argon2:パスワードハッシュ競技(PHC)での優勝アルゴリズムで現在最も推奨される方式
- HKDF:TLSなどで用いられる、既存の高エントロピー鍵から目的別の鍵を導出する関数
鍵導出関数はパスワード保存、ディスク暗号化、TLSハンドシェイク、VPNなど広範な場面で利用されており、現代の情報セキュリティの基盤技術の一つとなっています。
使い方・例文
ユーザーが設定したパスワードをデータベースに保存する際、bcryptやArgon2などの鍵導出関数でハッシュ化してから格納する場面や、暗号化ソフトウェアがパスフレーズから実際の暗号鍵を生成する場面で登場します。
この用語をシェア
最終更新: