What's the differences between the concepts “pseudorandom generator” and “pseudorandom number generator”?

In fact, I want to implement a pseudorandom function based on GGM's construction at http://crypto.cs.uiuc.edu/wiki/index.php/GGM_PRF, but I need to get a doubling length PRG first. I cannot find any effective way to do this.

Can anybody help me or give me another way to implement a pseudorandom function?

  • $\begingroup$ ooh, that is a problem meeting when I search pesudorandom generator on the Internet."PRF based on the GCN construction" may be more direct. $\endgroup$
    – 杨应彬
    Feb 3, 2015 at 11:51
  • $\begingroup$ @MaartenBodewes : $\:$ He may have had GCM in the title, but he wasn't the one who put that there. $\hspace{.41 in}$ $\endgroup$
    – user991
    Feb 3, 2015 at 13:10
  • $\begingroup$ Ah, OK, sheesh, sorry about that @杨应彬. But I guess we are where we want to be now :) $\endgroup$
    – Maarten Bodewes
    Feb 3, 2015 at 13:24
  • $\begingroup$ I found one definition of PRF in TLS protocol (see github.com/tlswg/tls13-spec/blob/master/draft-ietf-tls-tls13.md) based on HMAC {{RFC2104}}.Do you think that is suitable for implementing a PRF with the form in the definition here -> crypto.stanford.edu/pbc/notes/crypto/prf.html $\endgroup$
    – 杨应彬
    Feb 3, 2015 at 14:14
  • $\begingroup$ I'm sorry that I haven't learned to edit mathematical stuffs. $\endgroup$
    – 杨应彬
    Feb 3, 2015 at 14:15

1 Answer 1


A pseudorandom generator is far more specific.
A pseudorandom number generator can just be statistical and/or produce an
endless stream of output and/or take extra entropy as input while it's running.

This RFC gives a way to implement a pseudorandom function.
In fact, if you hadn't specified that you wanted a PRG to implement a PRF, then
I would've just suggested $\;\;\; x \: \mapsto \: \operatorname{HMAC}\hspace{.02 in}(x\hspace{.02 in},\hspace{-0.03 in}0) \: || \hspace{.02 in} \operatorname{HMAC}\hspace{.02 in}(x\hspace{.02 in},\hspace{-0.04 in}1) \;\;\;$ as the PRG.

  • $\begingroup$ Why HMAC and not simply a cryptographic hash function? $\endgroup$
    – 0x00
    Jun 1, 2018 at 15:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.