Hashing:
When data integrity needs to be verified, Hashing is the method used. It may be a file, iso images or any other data. Most used method for checking if the data is tempered or not from the time it is originally created.
Hash functions are designed to take a string of any length as input and produce a fixed-length hash value.
Hashing algorithms are designed such that this hash value changes even with the slighted modification in the string.
The output generated out of the source data is has many names. Hash Value, checksum, fingerprint been popular of those.
Hashing Usage:
1. Any popular software you download, it will have MD5 or other hash value beside that.
you download the software and also note down the hash value.
2. Hashing is used in Digital Signature.
3. Message authentication codes
Below is example from one of the software.
Sample HASH value for a tool |
Common hash algorithms
Hashing Algorithm | Popularly known as | HASH output bit size |
Secure Hash Algorithm | SHA-1 | 160 |
Message Digest 5 | MD5 | 128 |
Message Digest 4 | MD4 | 128 |
Message Digest 2 | MD2 | 128 |
Hashing Algorithm properties:
Following are the properties that a hashing algorithm must satisfy.
- Hash value must be fully determined from data that be hashed.
- Hash function must use all the parts of data. no leaving any data as optional
- Hash function "uniformly" distributes the data across the entire set of possible hash values.
- Hash function generates very different hash values for similar strings or string with slight change.
Minimal Properties for resist from attacks for Hash Algorithm:
pre-image resistance, Second pre-image resistance, Collision resistance.
we will discuss in next post.
Reference:
http://www.sparknotes.com/cs/searching/hashtables/section2.rhtml