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])) では, 主に鍵導出 (key derivation) のために Pseudorandom Function (擬似乱数関数, PRF) が必要です. IKEv2 の定義では, PRF は可変長の鍵と可変長の入力を受け取り, 固定長の出力を返す関数です. 通常, この目的には Hashed MAC (ハッシュ化 MAC, HMAC) 構成が用いられ, メッセージ認証 (message authentication) と PRF の両方に同じ関数が用いられることが多いです.
Poly1305 は PRF として適切な選択ではありません. Poly1305 は同一鍵を二度使うことを禁止しますが, IKEv2 の PRF は同一鍵で複数回使われます. さらに, HMAC と異なり Poly1305 はバイアスがある (biased) ため, 鍵導出に用いると対称暗号 (symmetric encryption) の安全性が低下します.
Chacha20 は, 任意長のキーストリーム (keystream) を生成することで鍵導出関数 (key-derivation function) として使えます. しかし, IKEv2 などのプロトコルが求めるものではありません.
そのため, 本ドキュメントは PRF を規定しません.