KDF
鍵導出関数(KDF: Key Derivation Function)
パスワードなどから共通鍵, IVなどを生成するために利用する
PRFとしても使えるかもしれない
ISO 18033-2
NIST SP 800-108
NIST SP 800-135 などいろいろ?
KDF
KDF1
KDF2
KDF3
HKDF
PBKDF
KMAC-KDF
など
RFC 2631 2.1.2 ANSI X9.42
入力例
元になる要素 SecretKey または パスワード+salt (PBKDF)
salt 塩 (PBKDFなど)
繰り返し数 (PBKDFなど)
鍵長
ハッシュとは違い長さは必要に応じて変更できる(PBKDF1は上限あり)
パスワードの保存用として利用されることもあるがやや弱いのかも
table:KDFあるごりずむ
あるごりずむ OBJECTIDENTIFIER RFC
pbkdf1 pbes1専用 8018
pbkdf2 1.2.840.113549.1.5.12 3370,8018
hkdf-with-sha256 1.2.840.113549.1.9.16.3.28 8619
hkdf-with-sha384 1.2.840.113549.1.9.16.3.29 8619
hkdf-with-sha512 1.2.840.113549.1.9.16.3.30 8619
hkdf-with-sha3-224 1.2.840.113549.1.9.16.3.32 9688
hkdf-with-sha3-256 1.2.840.113549.1.9.16.3.33 9688
hkdf-with-sha3-384 1.2.840.113549.1.9.16.3.34 9688
hkdf-with-sha3-512 1.2.840.113549.1.9.16.3.35 9688
kmac128-kdf 2.16.840.1.101.3.4.2.21 9688
kmac256-kdf 2.16.840.1.101.3.4.2.22 9688
kdf2 1.3.133.16.840.9.44.1.1 9688
kdf3 1.3.133.16.840.9.44.1.2 9688
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)
RFC 9688 SHA-3の追加
KMAC128-KDF, KMAC256-KDF
KDF2, KDF3 with SHA3
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