A cryptographic hash function is a mathematical function which takes an arbitrary length input, such as a software application or text document, and produces a fixed-sized output. To ensure uniqueness, no two inputs to a hash function should yield the same output. (However, certain hash functions do suffer from a phenomenon known as “collisions,” in which two differing inputs happen to result in the same output.) For each unique input value, a unique output value shall be produced. Consequently, cryptographic hash functions are useful in applications which uniquely identify data for the purposes of authentication and data integrity.
Because arbitrary length input reduces to a fixed-sized output, the hash function operates in a “many-to-one” reduction mode, making it impossible to recover the original data input using the output alone. However, inventive techniques such those used in “dictionary attacks” build large tables of input-data/output-hash tuples, allowing users to search for known, pre-computed outputs which were generated from published inputs. To combat these and other brute force style attacks, hash functions often introduce a small amount of random data known as “salt” in order to slightly change the input value, resulting in a drastically different output value.
Hash function are commonly used for purposes such as uniquely identifying binary software applications, or ensuring authenticity in security applications. Common examples of hash functions include SHA-1 and MD5.
|
|
Last Updated on Saturday, 21 November 2009 09:34 |