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.)


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 '16 at 19:04

This site is temporarily in read only mode and not accepting new answers.

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