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 5869 HKDF
RFC 8018 PKCS #5
PBKDF1 (MD2,MD5,SHA1)
PBKDF2 (HMAC)
OpenSSL PBKDF1改
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鍵共有法 鍵交換生成