Hash Algorithm

The mathematical “fingerprint” of a digital document or collection of digital data. It is calculated using a constant method which produces always the same result if the original data don’t change.

It has the following characteristics:

  1. One-way, it is easy to go from the document to the hash, but it is impossible to go from the hash to the original document. Like with a human: you can get the fingerprint easily from the person, but you cannot rebuild the look of the person if you have only her fingerprint.
  2. Deterministic, the same original document will always produce the exact same hash.
  3. Fast Computation, it is must be easy to calculate.
  4. Avalanche Effect, a small change in the original document must produce a huge change in the relative hash.
  5. Must withstand collisions, two completely different documents might produce the same hash, but such an instance has to be so unlikely that it is acceptable. The algorithm should also resist the collisions produced by an attacker.