# PRF based on the GGM construction

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?

• ooh, that is a problem meeting when I search pesudorandom generator on the Internet."PRF based on the GCN construction" may be more direct. – 杨应彬 Feb 3 '15 at 11:51
• @MaartenBodewes : $\:$ He may have had GCM in the title, but he wasn't the one who put that there. $\hspace{.41 in}$ – user991 Feb 3 '15 at 13:10
• Ah, OK, sheesh, sorry about that @杨应彬. But I guess we are where we want to be now :) – Maarten Bodewes Feb 3 '15 at 13:24
• 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 – 杨应彬 Feb 3 '15 at 14:14
• I'm sorry that I haven't learned to edit mathematical stuffs. – 杨应彬 Feb 3 '15 at 14:15

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.