A cryptographic hash function is a numerical function used in cryptography. A cryptographic hash function integrate the message-passing capabilities of hash functions with security features.
The term hash function has been used in computer science from quite frequently and it define as a function that compresses a string of arbitrary input to a string of settled length. However if it satisfies some more requirements, thus it can be used for cryptographic applications and then it is called a Cryptographic Hash functions.
Cryptographic Hash functions are the most essential tool in the field of cryptography and are used to manage a number of security objectives such as authenticity, digital signatures, pseudo number generation, digital steganography, digital time stamping etc.
A hash function is a function that takes some message of any length as input and change it into a fixed-length output known as hash value, a message digest, a checksum, or a digital fingerprint.
A hash function is a function f: D -> R, where the domain D = {0, 1}*, which defines that the elements of the domain includes binary string of variable length; and the range R = {0, 1} n for some n >= 1, which defines that the elements of the range are binary string of fixed-length. Therefore, f is a function which creates as input a message M of any size and create a fixed-length hash result h of size n.
A hash function f is defined as compression function when its domain D is finite, i.e. if the function f takes as input a fixed-length message and creates a shorter fixed-length output.
Property of Cryptographic hash function
There are various properties of hash function are as follows −
It is intensely simply to calculate a hash for any given data.
It should accept a block of information of any size as input.
It should make a fixed-length output.
It should behave like random function while being deterministic and efficiently reproducible.
It should get an input of any length, and outputs a random string of fixed length.
For the similar input, H should continually make the same output.
If the message M is given, it can be simply to calculate its corresponding digest h; where h can be calculated in polynomial time O(n) where n is the length of the input message.
Given a message digest h, it is computationally complex to discover M such that H (M) = h. This is known as the one-way or pre-image resistance property i.e. It is not applicable to find message from the given hash value.
Given a message M1, it is computationally impossible to discover another message M2 ≠ M1 with H (M1) = H (M2). This is known as the weak collision resistance or second pre-image resistance feature.
It is computationally impossible to find any set of distinct messages (M1, M2) such that H (M1) = H (M2). This is defined as the strong collision resistance property.