Security of cryptographic hash functions: Difference between revisions

Content deleted Content added
m cleanup after move
m hyphenation using AWB
Line 2:
In [[cryptography]], [[cryptographic hash functions]] can be divided into two main categories. In the first category are those functions whose designs are based on a mathematical problem and thus their security follows from rigorous mathematical proofs, [[Computational complexity theory|complexity theory]] and [[Reduction (complexity)|formal reduction]]. These functions are called Provably Secure Cryptographic Hash Functions. However this does not mean that such a function could not be broken. To construct them is very difficult and only a few examples were introduced. The practical use is limited.
 
In the second category are functions that are not based on mathematical problems but on an ad hoc basis, where the bits of the message are mixed to produce the hash. They are then believed to be hard to break, but no such formal proof is given. Almost all widely- spread hash functions fall in this category. Some of these functions are already broken and are no longer in use.
 
==Types of security of hash functions==
Line 46:
* The proof is often a reduction to a problem with asymptotically hard [[Worst-case complexity|worst-case]] or [[average-case complexity]]. Worst-case measures the difficulty of solving pathological cases rather than typical cases of the underlying problem. Even a reduction to a problem with hard average complexity offers only limited security as there still can be an algorithm that easily solves the problem for a subset of the problem space. For example, early versions of [[Fast Syndrome Based Hash]] turned out to be insecure. This problem was solved in the latest version.
 
[[SWIFFT]] is an example of a hash function that circumvents these security problems. It can be shown that for any algorithm that can break SWIFFT with probability P within an estimated time T, we can find an algorithm that solves the ''worst -case'' scenario of a certain difficult mathematical problem within time T' depending on T and P.
 
===Example of (unpractical) Provably Secure Hash Function===