I am a little bit confused about the terms "hash function" and "pseudo-random function". As far as I know, I can use a cryptographic strong hash function as a PRF. The hash function has a IV and is completely public - everybody can look at the construction and at the details. A good hash function maps the input in a pseudorandom way to its output (deterministic).

So a pseudorandom function is quite similar. Here you do not take a fix hash function, rather than you take a function from a set of functions. That model is implied by using a keyed function. So there are often keyed hash functions used for example the HMAC is taken as a PRF.

So in a limited view, is it right to say that an attacker does not know my "internal conditions" of my PRF? (I mean my current Setting: which key I use and which hash function, or if I use HMAC, he does not know my key and my constants and my hash function.)

1 Answer 1


You pretty much answered your own question. In addition to being unable to determine the parameters (conditions in your words), a PRF should be indistinguishable from, lets say, true randomness or a random oracle.

  • I was not sure if that is true what I am thinkig personally. So thanks for your comment!:-)
    – chris000r
    Sep 1, 2016 at 19:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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