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

You must log in to answer this question.

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