Consider a function $$f: \{0,1\}^n \rightarrow \{0,1\}^{poly(n)} $$
with the following properties:
- hard to invert, i.e. given $f(x)$, hard to find $x$
- hard to find a collision, i.e given $f(x)$, hard to find $x'$, such that $f(x') = f(x)$
- indistinguishable from a random number i.e given $f(x)$ and $y \stackrel{R}{\leftarrow} \{0,1\}^{|f(x)|}$, hard to distinguish w.p. $>1/2$
So, what is the generic name for this type of functions?
(I could model them as them as ideal hash functions, if i did not have the requirement of $|f(x)| = poly(x)$, but with that requirement, is there a 'expansion function' for hashes? or Does PRGs have pre-image resistant property? or OWFs that satisfy the property of indistinguishability?)