Cryptographic Hash Function (Hash)
A cryptographic hash function is a special class of hash functions that map data of arbitrary size to a probabilistically unique bit string of a fixed size – the hash. What distinguishes a cryptographic hash function is that it is designed to be a one-way function, which means it is not practically possible to invert – i.e. take a hash and reproduce the input data used to create it.
Cryptographic hash functions have many applications, including digital signatures, message authentication codes (MACs), and other forms of authentication. They can also be used as ordinary hash functions, to index data in hash tables, for fingerprinting, to detect duplicate data or uniquely identify files, and as checksums to detect accidental data corruption.
A cryptographic hash function must be able to process an arbitrary-length message into a fixed-length output. This can be achieved by breaking the input message into a series of equal-sized blocks, and operating on them in sequence using a one-way compression function. A one-way compression function is a function that transforms two fixed-length inputs into a fixed-length output. The compression function can either be specially designed for hashing or map from a block cipher.
Hashing maps data of arbitrary size to a probabilistically unique bit string of a fixed size. Hashing produces unique bit strings that represent the input data in a concise way.
A cryptographic hash function cannot be easily reversed. To reproduce the input data, an attacker must use computationally expensive brute force techniques to try to recover the input data that maps to a specific hash.
Cryptographic hash functions provide unique and concise representations for the input data without revealing any information about the input data itself.
RSA typically refers to a public-key cryptosystem which is widely used for secure data transmission. It uses paired keys where one is used to encrypt messages and the other to decrypt them. RSA is therefore not a hash function. That said, algorithms that use RSA crypto keys often use hashes to sign messages.
A one-way hash function is one where computing a hash from the input data is easy, but inverting the computation – i.e. recovering the input data from the hash – is practically impossible.
Weak Collision Resistance means that given an arbitrary message m1, it is difficult to produce another message m2 such that H(m1)=H(m2).
Strong Collision Resistance means that is difficult to find any two messages that hash to the same value. That is, it is hard to find m1 and m2 such that H(m1)=H(m2).