A cryptographic hash function is a special class of hash function that has certain properties which make it suitable for use in cryptography. Useful reading - it goes into more detail of the reversibility of hash functions intended to be hard to reverse.
How can one exploit the lack? This strongly depends on the use of the hash function in a higher-level protocol (or algorithm build on top of it). In some protocols only the other properties are used directly, but as said, missing preimage resistance always also leads to missing second-preimage and collision resistance.
Hmm. Was this question asking about the difference between one-way hash functions and cryptographic hash functions, or general one-way functions and cryptographic hash functions? The original question seemed to me to imply the former, but after Gilles's edit, I realize now that my interpretation may have been wrong.
What I need is a cryptographic hash function that receives a 32-bit length key, and – preferably with basic math operations (addition, shifting, negating, multiplication) – delivers a preferably 32-bit length hash of the key. Later on I will crop 1, 3, 7, 15, or 31 least-significant bits of the output and use it in my application.
A hash function (cryptographic or not) can be considered being a sort of entropy extractor. You input bits and the function somehow produces bits from these (and usually ) in an obscure, hard to predict way such that you cannot easily find collisions, etc etc.
2 I need a stable 128-bit hash function which is extremely fast since it will be used for generating unique IDs for billions of objects. It doesn't need to be a cryptographic hash function, nor does it have to act as a PRF. The only requirements are amazing collision resistance and speed (along with a stable 128-bit output).
A cryptographic hash function should resist attacks on its pre-image. The first 3 I think are pretty easy to adhere to as far as I can imagine so far (not having implemented a cryptographically secure hashing function).
A cryptographic hash function is defined as a hash function (fixed output length) which is collision resistant and pre-image resistant. I do not see any circular arguement. If HMAC need a cryptographically hash function or not is entirely irrelevant.
In some paper, the terms "cryptographic hash function" and "deterministic hash function" would appear? I'm wondering what's their difference, and are there some other types of hash functions? Like ...
A hash function is any function that can be used to map data of arbitrary size to data of fixed size. The values returned by a hash function are called hash values, hash codes, digests, or simply hashes. One use is a data structure called a hash function, widely used in computer software for rapid data lookup.