2.7 A Pseudorandom Function for Crypto Suites Based on ChaCha/Poly1305 (基于 ChaCha/Poly1305 的密码套件的伪随机函数)
2.7 A Pseudorandom Function for Crypto Suites Based on ChaCha/Poly1305 (基于 ChaCha/Poly1305 的密码套件的伪随机函数)
某些协议, 例如 IKEv2 ([RFC7296]), 需要 Pseudorandom Function (伪随机函数, PRF), 主要用于密钥派生 (key derivation). 在 IKEv2 的定义中, PRF 是一种接受可变长度密钥和可变长度输入, 并返回固定长度输出的函数. 最常见的是为此目的使用 Hashed MAC (散列消息鉴别码, HMAC) 构造, 并且通常对消息鉴别 (message authentication) 和 PRF 使用同一函数.
Poly1305 不适合作为 PRF 的选择. Poly1305 禁止对同一密钥使用两次, 而 IKEv2 中的 PRF 会在同一密钥下多次使用. 此外, 与 HMAC 不同, Poly1305 是有偏的 (biased), 因此将其用于密钥派生会降低对称加密 (symmetric encryption) 的安全性.
Chacha20 可以通过生成任意长度的密钥流 (keystream) 用作密钥派生函数 (key-derivation function). 然而, 这并不是 IKEv2 等协议所要求的.
因此, 本文档不规定 PRF.