## Introduction to MD5 Algorithm

Before learning the MD5 Algorithm, it is very important to understand what is cryptography and how the MD5 Algorithm came into the picture. In layman terms, cryptography is a practice and study of techniques that are used to convert a plain text into unintelligible text that can be only understood by the receiver. For security reasons, it is very important to encrypt the data and to send and store it in a particular format so that it cannot be leaked and hence misused. MD5 is one of the algorithms which is used to encode the data. There are so many algorithms developed for secure transmission and storage of data having their own pros and cons. These algorithms not only protect the data from theft but also provides user Authentication.

Now learning in deep about MD5 Algorithm, So MD5 stands for Message Digest algorithm 5 which is one of the widely used cryptographic hash function which accepts the input of arbitrary length and produces an output of fix 128-bit hash value. It is used in a wide variety of security applications. MD5 is an advanced version of MD4 which was developed by Professor Ronald Rivest of MIT. MD5 was developed as a strong cryptographic algorithm to be used in authenticating Digital Signatures (a digital code which is attached with an electronic document to verify its content and gender identity).

### Use of MD5 Algorithm

MD5 Algorithm was developed with the main motive of security as it takes an input of any size and produces an output if a 128-bit hash value. To be considered cryptographically secure MD5 should meet two requirements:

- It is impossible to generate two inputs that cannot produce the same hash function.
- It is impossible to generate a message having the same hash value.

Initially, MD5 was developed to store one way hash of a password and some file servers also provide pre-computed MD5 checksum of a file so that the user can compare the checksum of the downloaded file to it. Most Unix based Operating Systems include MD5 checksum utilities in their distribution packages.

### How do the MD5 Algorithm works?

As we all know that MD5 produces an output of 128-bit hash value. This encryption of input of any size into hash values undergoes 5 steps and each step has its a predefined task.

#### Step1: Append Padding Bits

- Padding means adding extra bits to the original message. So in MD5 original message is padded such that its length in bits is congruent to 448 modulo 512. Padding is done such that the total bits are 64 less being a multiple of 512 bits length.
- Padding is done even if the length of the original message is already congruent to 448 modulo 512. In padding bits, the only first bit is 1 and the rest of the bits are 0.

#### Step 2: Append Length

After padding, 64 bits are inserted at the end which is used to record the length of the original input. Modulo 2^64. At this point, the resulting message has a length multiple of 512 bits.

4.6 (3,144 ratings)

View Course

#### Step 3: Initialize MD buffer

A four-word buffer (A, B, C, D) is used to compute the values for the message digest. Here A, B, C, D are 32- bit registers and are initialized in the following way

Word A | 01 | 23 | 45 | 67 |

Word B | 89 | Ab | Cd | Ef |

Word C | Fe | Dc | Ba | 98 |

Word D | 76 | 54 | 32 | 10 |

#### Step 4: Processing message in 16-word block

MD5 uses the auxiliary functions which take the input as three 32-bit number and produces a 32-bit output. These functions use logical operators like OR, XOR, NOR.

F(X, Y, Z) | XY v not (X)Z |

G(X, Y, Z) | XZ v Y not (Z) |

H(X, Y, Z) | X xor Y xor Z |

I(X, Y, Z) | Y xor (X v not (Z)) |

The content of four buffers are mixed with the input using this auxiliary buffer and 16 rounds are performed using 16 basic operations.

** Output-**

After all, rounds have performed the buffer A, B, C, D contains the MD5 output starting with lower bit A and ending with higher bit D.

**Example:**

Input: This is an article about the cryptography algorithm |

Output: e4d909c290dfb1ca068ffaddd22cbb0 |

### Advantages and Disadvantages of MD5 Algorithm:

- MD5 Algorithms are useful because it is easier to compare and store these smaller hashes than to store a large text of variable length. The MD5 algorithm is a widely used algorithm for one way hashes that are used to verify without necessarily giving the original value.MD5 Algorithm is used by Unix systems to store the passwords of the user in a 128-bit encrypted format. MD5 algorithms are widely used to check the integrity of the files.
- Moreover, it is very easy to generate a message digest of the original message using this algorithm.MD5 algorithm can perform the message digest of a message having any number of bits, it is not limited to message in the multiples of 8, unlike MD5sum which is limited to octets.
- But from many years MD5 has prone to hash collision weakness, i.e it is possible to create the same hash function for two different inputs. MD5 provides no security over these collision attacks. Instead of MD5, SHA (Secure Hash Algorithm, which produces 160-bit message digest and designed by NSA to be a part of digital signature algorithm) is now acceptable in the cryptographic field for generating the hash function as it is not easy to produce SHA-I collision and till now no collision has been produced yet.
- Moreover, the MD5 algorithm is quite slow then the optimized SHA algorithm.SHA is much secure than MD5 algorithm and moreover, it can be implemented in existing technology with exceeding rates, unlike MD5. Nowadays new hashing algorithms are coming up in the market keeping in mind higher security of data like SHA256 (which generates 256 bits signature of a text).

### Conclusion

Nowadays with the storage of all the data on cloud and internet, it is very important to keep the security of that data at the utmost priority. The most secure algorithm should be adopted to encrypt private data. Recent studies show that the SHA algorithm should be given paramount importance over MD5 as MD5 is more vulnerable to collision attacks. Although researchers are proposing new algorithms that are secure and least vulnerable to attacks like SHA256.

### Recommended Articles

This has been a guide to the MD5 Algorithm. Here we discussed the introduction, Uses, working, advantages and disadvantages of MD5 Algorithm. You can also go through our other suggested articles to learn more –