In cryptography, cryptographic hash functions can be classified into two main categories. The first category includes functions based on mathematical problems. Their safety follows rigorous mathematical proofs, computational complexity theory, and formal abbreviation. These functions are called provably secure hash functions. It is challenging to build them, and there are few examples. Their practical use is limited. The second category includes functions that are not based on mathematical problems, on exceptional constructs in which the bits of the message are mixed to obtain a hash. They are believed to be hard to break, but no formal evidence has been provided. Almost all commonly used hash functions fall into this category. Some of them have already been hacked and are no longer used.
HAS-160 is a cryptographic hash function designed for use with the Korean KCDSA to digitally sign algorithms. HAS-160 is derived from SHA-1, but with significant changes to improve insurance and produces 160-bit output. And it is often used like SHA-1. First, it divides the input into blocks of 512 bits each and parts of the last block. There is a function to update the intermediate hash value by processing the input blocks. The HAS-160 hash algorithm consists of 80 elements.
Hash robustness types
As a rule, the following types of stability of cryptographic hash functions are distinguished: resistance to searching for the first preimage, the second preimage, resistance to finding collisions, and pseudo-randomness.
- Second Preimage Search Resistance: Given a message m 1 {\ displaystyle m_ {1}}, it should be difficult to find another message m 2 {\ displaystyle m_ {2}} not equal to m 1 {\ displaystyle m_ {1}} such that hashm 1 = hashm 2 {\ displaystyle hashm_ {1} = hashm_ {2}}. This property is related to weak collision resistance. Functions that lack this property are vulnerable to second preimage attacks.
- Resistance to first preimage searches: Given the hash h {\ display style h}, it should be hard to find any message m {\ display style m} such that h = h a s h m {\ display style h = hashm}. This property is related to the concept of a one-way function. Functions that lack this property are vulnerable to first preimage attacks.
- Collision Search Resistance: It should be difficult to find two different messages m 1 {\ display style m_ {1}} and m 2 {\ display style m_ {2}} such that hashm 1 = hashm 2 {\ display style hashm_ {1} = hashm_ { 2}}. Such a set is designated a cryptographic hash collision. This attribute is related to strong collision resistance. A hash value that is at least twice as long as required to resist searching for the first preimage is required. Otherwise, collisions could be detected by a birthday attack.
- Pseudo-randomness: It should be challenging to distinguish a hash-based pseudo-random number generator from a random number generator. For example, it passes standard randomness tests.
Examples of provably secure hash functions
- MuHASH;
- ECOH – Elliptic curve only hash – based on the idea of elliptic curves, the problem of sum of subsets, and the sum of polynomials hash function. The proof of security relied on the assumption of NP-completeness of the underlying mathematical problem, but a vulnerability was found for the generalized attack of Wagner’s “birthdays” associated with the search for the second preimage;
- VSH – Very Smooth Hash function – is a provably safe collision-resistant function that relies on the difficulty of finding non-trivial square roots modulo a composite number n, which is as hard as factoring n;
- Chaum, van Heijst, Pfitzmann hash function – a function in which finding collisions is as time-consuming as finding the discrete logarithm in a finite group;
- Knapsack-based hash functions – a family of hash functions based on the knapsack problem;
- FSB – Fast Syndrome-Based hash function – can be confirmed to be at least as tough to crack an FSB as it is to solve an NP-complete puzzle identified as regular syndromic decoding;
- SWIFT – is FFT-based and provably safe under a reasonably weak assumption that it is difficult to find short vectors in a cyclic/ideal lattice in the worst case;
- English RACE Integrity Primitives Evaluation Message Digest is a cryptographic hash function developed by Hans Dobbertin;
- SIMD is an iterative cryptographic hash function developed by Gaetan Leurent, Charles Bouillaguet, Pierre-Alain Fouque. Was nominated as a candidate based on cryptographic hash – functions, other algorithms also use them, but these do not use anything other than them;
- N – Hash is a cryptographic hash function based on the looping FEAL function. It is currently considered unsafe. It was developed in 1990 by the company. The security of the electronic digital signature using this hash algorithm depends on the stability of the hash function to find collisions;
- MurmurHash2 is an easy and quick general-purpose hash function developed by Austin Appleby;
- HAS – 160 is a cryptographic hash function designed to use with the Korean KCDSA to digitally sign algorithms.