What is the difference between a PRF and a PRF+? I am understanding them to mean the same thing, but I imagine that is because I don't understand their differences.
The IKE RFC defines a PRF as:
This pseudorandom function (PRF) takes as input a secret, a seed, and an identifying label and produces an output of arbitrary length.
The TLS 1.2 RFC defines a PRF as:
prf(key, msg) is the keyed pseudo-random function-- often a keyed hash function-- used to generate a deterministic output that appears pseudo-random.
The IKEv2 RFC defines a PRF as:
The PRF is used for the construction of keying material for all of the cryptographic algorithms used in both the IKE SA and the Child SAs.
The IKEv2 RFC defines a PRF+ as:
Since the amount of keying material needed may be greater than the size of the output of the PRF, the PRF is used iteratively. The term "prf+" describes a function that outputs a pseudorandom stream based on the inputs to a pseudorandom function called "prf".