# Hash functions, to be secure, should have 6 properties. 1) H can be applied to a block of data of…

Hash functions, to be secure, should have 6 properties.
1) H can be applied to a block of data of any size. Explain in a few sentences what this means with an example.
2) H produces a fixed-length output. Explain in a few sentences what this means with an example.
3) H(x) is relatively easy to compute for any given x, making both hardware and software implementation practical. Explain in a few sentences what this means with an example.
4) For any given code h, it is computationally infeasible to find x such that H(x) = h. A hash function with this property is referred to as one-way or preimage resistant. Consider the following scenario: two teaching assistants, Mike and Ike, are teaching a class on this material, and they have different interpretations as to what this property means. Mike says, “Given a hash H function and a code h, it is relatively impossible to fashion ANY message that would produce that code apart from the original message M. In other words, the hash function has to be complex enough that an attacker, knowing the hash function and the resulting hash code, still cannot come up with any message M1, M2, etc that would provide the same hash code h.” On the other hand, Ike disagrees and says, “Given a hash H and a code h, it is relatively impossible to find the SPECIFIC M that produced that code. In other words, a person might be able to come up with an M1 and an M2 that does provide that specific hash code h, but there is no way that the attacker would know that it is the same message M that was originally used with the hash function to produce h.” Explain in a paragraph who is correct and why; provide an example.
5) For any given block x, it is computationally infeasible to find y ? x with H(y) = H(x). A hash function with this property is referred to as second preimage resistant. This is sometimes referred to as weak collision resistant. Explain in a paragraph what this means and provide an example. Especially describe how this property differs from property 4 and 6.
6) It is computationally infeasible to find any pair (x, y) such that H(x) = H(y). A hash function with this property is referred to as collision resistant. This is sometimes referred to as strong collision resistant. Explain in a paragraph what this means and provide an example. Especially describe how this property differs from property 4 and 5.