Is there a difference between a pseudorandom generator (PRG) and a pseudorandom function (PRF)? I read a lot about that things, for example it is possible to build a PRG from PRFs. But I think there is a difference between those two terms.

  • 2
    PRF is to PRG as engine is to car.
    – dandavis
    Sep 1, 2016 at 10:11

1 Answer 1


Pseudorandom generators can be used to feed a pseudorandom function family by repeatedly supplying pseudo-random values to the function. The PRF ensures semantic security, which may be used to stretch keys, initialize vectors or salts. At no point should an efficient algorithm be able to distinguish between a PRF and a random oracle. However this does not fully apply to a PRG, which only guarantees a single value to be pseudorandom. Since the pseudo-random values themselves have no correlation with the PRFs output, in theory it is possible to use a set of PRG as an input.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .