KDF
鍵導出関数(KDF: Key Derivation Function)
パスワードなどから共通鍵, IVなどを生成するために利用する
PRFとしても使えるかもしれない
ISO 18033-2
NIST SP 800-108
NIST SP 800-135 などいろいろ?
RFC 2631 2.1.2 ANSI X9.42
入力例
元になる要素 SecretKey または パスワード+salt (PBKDF)
salt 塩 (PBKDFなど)
繰り返し数 (PBKDFなど)
鍵長
ハッシュとは違い長さは必要に応じて変更できる(PBKDF1は上限あり)
パスワードの保存用として利用されることもあるがやや弱いのかも
ISO-18033-2 KDF1, KDF2, KDF3
RFC 2898 PKCS #5 → 8018
RFC 5869 HMAC-based Extract-and-Expand Key Derivation Function (HKDF)
RFC 6070 PKCS #5: Password-Based Key Derivation Function 2 (PBKDF2) Test Vectors
RFC 7914 The scrypt Password-Based Key Derivation Function
https://tex2e.github.io/rfc-translater/html/rfc7914.html
RFC 8018 PKCS #5 (SHA-2, AES-CBC追加)
PBKDF1 (MD2,MD5,SHA1)
PBKDF2 (HMAC)
OpenSSL PBKDF1改
RFC 8619 Algorithm Identifiers for the HMAC-based Extract-and-Expand Key Derivation Function (HKDF)
NIST SP 800-132 PBKDF
NIST SP 800-108 KMAC KDF 繰り返し数の指定なし S に "KDF" や "KDF4X" を指定する
用途
PKCS #5 PBES2
PKCS #5 PBMAC1
OpenSSL enc
Wi-Fi用のはsalt にSSIDを使うとか
類似
Diffie-Hellman鍵共有法 鍵交換生成
RFC 9709 Encryption Key Derivation in the Cryptographic Message Syntax (CMS) Using HKDF with SHA-256