Hashing
Hashes
A cryptographic hash function (CHF) is a mathematical algorithm that maps data of arbitrary size (often called the "message") to a bit string of a fixed size (the "hash value", "hash", or "message digest") and is a one-way function, that is, a function which is practically infeasible to invert.
Ideally, the only way to find a message that produces a given hash is to attempt a brute-force search of possible inputs to see if they produce a match (or use a rainbow table of matched hashes).
The ideal cryptographic hash function has the following main properties:
it is deterministic, meaning that the same message always results in the same hash
it is quick to compute the hash value for any given message
it is infeasible to generate a message that yields a given hash value
it is infeasible to find two different messages with the same hash value
a small change to a message should change the hash value so extensively that the new hash value appears uncorrelated with the old hash value (avalanche effect)
Examples
The SHA-256 hash of 'Artesis Plantijn' is
b2391de099591f09f4f4f5654fe4c4e55201e8af3027e62186698c9e45a7846c
The SHA-256 hash of 'Artesis Plantijk' is
4cddeee07650864a4fb27c146e5b20f8d5a14735a14fe3e7aab2c2822813d39d
Properties
A cryptographic hash function must be able to withstand all known types of cryptanalytic attack. In theoretical cryptography, the security level of a cryptographic hash function has been defined using the following properties:
Pre-image resistance: Given a hash value
b2391de099591f09f4f4f5654fe4c4e55201e8af3027e62186698c9e45a7846c
it should be difficult to find the messageArtesis Plantijn
. This concept is related to that of a one-way function. Functions that lack this property are vulnerable to preimage attacks.Second pre-image resistance: Given a message
Artesis Plantijn
, it should be difficult to find a different message such thathash(Artesis Plantijn) = hash(<different message>)
Functions that lack this property are vulnerable to second-preimage attacks.Collision resistance: It should be difficult to find two different messages m1 and m2 such that
hash(m1) = hash(m2)
Such a pair is called a cryptographic hash collision.
Weak hashing functions such as MD5 and SHA1 have been proved vulnerable to collision attacks, and sometimes even to second pre-image attacks. Currently, the guideline is to use SHA256 or higher.
Source attribution
Some parts of this page are based on Cryptographic hash function by Wikipedia, which is licensed under CC-BY-SA 3.
Last updated
Was this helpful?