Sei sulla pagina 1di 26

MD5 ALGORITHM

By

Akshay Sharma (08IT000366)

Riddhi Surana (08IT000375)

Swapnil Bhatnagar (08IT000379)

DEPARTMENT OF

COMPUTER SCIENCE AND ENGINEERING

SIR PADAMPAT SINGHANIA UNIVERSITY UDAIPUR

SESSION 2010-2011
CERTIFICATE

This is to certify that Mr. Akshay Sharma, Ms. Riddhi Surana and Mr. Swapnil Bhatnagar
the students of B.Tech(Information Technology) Sixth(VIth) Semester have submitted their
Seminar entitled “MD5 Encryption” under my guidance.

Mr. Avinash Panwar

(Guide)
CERTIFICATE OF COMPLETION

This is to certify that Mr. Akshay Sharma, Ms. Riddhi Surana and Mr. Swapnil Bhatnagar
the students of B.Tech(Information Technology) Sixth(VIth) Semester have presented and have
successfully completed their Seminar entitled “MD5 Encryption” in the presence of
undersigned dignitaries.

Mr. Arun Kumar Other Evaluators

(H.O.D)
ACKNOWLEDGEMENT

It is our profound privilege to express deep sense of gratitude towards our institute Sir
Padampat Singhania University, Udaipur. We would also like to thank Prof. P.C. Deka, Vice –
Chancellor (SPSU); Prof. Arun Kumar, H.O.D (CSE/IT) for having permitted us to carry out this
project work; immense pleasure in thanking Mr. Deepak Gour and Mr. Sandeep Chourasia,
major seminar in charge for their encouragement and their appreciation.

We wish to extend our gratitude in all sincerity to our internal guide, Mr. Avinash Panwar and
other faculties for their able guidance and useful suggestions, which helped us in completing
the report work, in time.

Finally, yet importantly, we would like to express our heartfelt thanks to our beloved parents
for their blessings, our friends, classmates for their help and wishes for successful completion
of this report.

Akshay Sharma Riddhi Surana Swapnil Bhatnagar

08IT000366 08IT000375 08IT000379

Sem-VIth (IT) Sem-VIth (IT) Sem-VIth (IT)


ABSTRACT

MD5 or Message-Digest algorithm 5 is a type of cryptographic hash function that is


generally used together with a 128-bit hash value. It is commonly expressed as 32-digit
hexadecimal number. The Message-Digest (MD) algorithm 5 Professor was created and
developed by Ronald L. Rivest from MIT, which is the third version of Message Digest (The
previous encryptions of this category were the MD2 and MD4) and quite similar to MD5 with
respect to structure.

Previously to MD5, MD2 and MD4 were developed; in which MD2 was developed for 8-bit
processors whereas MD4 was not used at a large scale due to lack of security and MD4 &
MD5 were optimized for 32-bit processors which are widely used in different sectors today.
Message-Digest Algorithm 4 holds a good capability but was not at all good with respect to
security issues. MD5 was developed to enhance the security feature of the algorithm.
However, in 1996, it was discovered that MD5 was also vulnerable to some attacks; though it
was not as severe but it sent a message for a better replacement of the algorithm. Thus, MD5
is not used in some fields of applications like SSL or digital signatures that rely on this
property.

Rivest produced this product for the purpose of using MD5 with digital signature
applications. A Digital signature program includes compression of large-sized files using
safest method possible before it undergoes encryption using a password, which is under a
public key cryptosystem.

Today, MD5 algorithm is widely used in the process of assessing the authenticity of certain
files. The procedure of verification occurs in such a way that a 128-bit-message-digest of any
length is formed based on a primary data input. This is considered to be exclusive to just a
single data and it acts as an individual fingerprint as well. MD5 has been widely used in the
software world to provide some assurance that a transferred file has arrived. But now days, it
is quite easy to generate MD5 collisions, and so far, it is possible for the person who created
the file to create a second file with the same checksum, so the file can be protected against
some forms of malicious tampering.
MESSAGE-DIGEST

ALGORITHM 5
TABLE OF CONTENTS

TITLE

1. Introduction
2. History of MD5
3. Hash Functions
4. MD5 hashes
5. Visual Examples
6. Cryptography
7. Different Cryptographic Hash Functions
8. MD5 – The Algorithm
9. PHP Syntax
10. Applications of MD5 algorithm
11. How to use MD5 Hash to check the Integrity of Files?
12. Validity check in UNIX
13. Why is MD5 still used widely?
14. Performance of MD5
15. Difference between MD5 and its predecessors
16. Limitations
a. Vulnerabilities
 Collision vulnerabilities
 Pre-image vulnerability
 Other vulnerabilities

Conclusions

List of Symbols and Abbreviations

References
Introduction compressing large-sized files using a
safe method before encryption (using
MD5 encryption is always mentioned a password), which is under a public
when we discuss over the topic of key Cryptosystem.
Cryptography. MD stands for „Message
– Digest‟ and describes a mathematical It is a very rare sight when any
function that takes into account a cryptographic algorithm has been
variable length string for processing. proved to be perfect. Algorithms are
The number 5 at the end simply examined as well as tested very
signifies that MD5 was the successor to carefully by the cryptographers but
MD4. only a few stands the test of time. The
MD5 Algorithm is also not perfect
Message-Digest algorithm 5, more because MD5 too has some problems.
commonly known as MD5, is a type of
cryptographic hash function that is It was proposed that, to produce two
generally used together with a 128-bit messages which have the same
hash value. MD5 is greatly utilized in Message Digest is computationally
different security functions as infeasible. But, unfortunately, it led to
identified in the standard Internet the problems concerning Multi-
Engineering Task Force (IETF). collision attacks. Collisions have been
According to the experts, MD5 hash is yielded for several one-way hash
commonly expressed as 32-digit algorithms. Of these, MD5 is the most
hexadecimal number. problematic due to its heavy
deployment. It largely affected, HMAC
MD5 was created and developed by and Digital Signatures within Digital
Prof. Ronald L. Rivest of MIT, which is Rights Management (DRM) Systems.
the third in this series of message
digests. The other two encryptions Nevertheless, MD5 has been around
were the MD2 and MD4 and these for years and still provides some
were quite the same with MD5 with decent level of security for certain
respect to their structure. However, things, it is commonly used to store
MD2 was more preferred on machines passwords in databases since MD5
that run in 8-bit while the two more cannot be reversed, passwords are
recent algorithms (MD4 and MD5) consider secure and safe if they are
were designed to work on 32-bit-type stored in this format.
of computers. The word “Message-Digest” here implies
a unique identification or a fingerprint
The most common use of MD5 is to of a file. Since any small change in the
validate the authenticity of any file. file can change its hash string, so it is
Rivest developed MD5 with a view to most commonly used in checking the
use it widely in digital signature integrity of the file. The MD5 algorithm
applications. Digital signature is designed to be quite fast on 32-bit
programs involve with the function of machines. In addition, the MD5
algorithm does not require any large
substituting tables; the Algorithm can For example, MD5 ("The quick brown
be coded quite compactly. fox jumps over the lazy dog") =
9e107d9d372bb6826bd81d3542a419d
MD5 is somewhat slower than that of 6
MD4 algorithm, but is more securely
and conservatively designed.

History of MD5
On March 18th, 2006, Klima published
MD5 is an algorithm developed by
an algorithm which was capable of
Professor Ronald Rivest of MIT
finding collision in MD5 on a single
University in the series of Message-
notebook computer, using a method
Digest Algorithms. When statistics and
particularly known as Tunnelling.
analytics indicated that the
predecessor of MD5, i.e. MD4 In 2008, United States Cyber
algorithm is quite insecure and Command used a MD5 hash of their
vulnerable, MD5 was designed in mission statement as a part of their
1991 to be more securable and official emblem.
conservative replacement against On December 24th, 2010, Tao Xie and
attacks. Dengguo Feng announced the first
In 1993, Dan Boer and Bosselaers were published single-block MD5 collision
succeeded partially in finding that two (two 64-byte messages with same
different initialization vectors produce MD5 hash). Previous collision
an identical digest. discoveries relied on multi-block
attacks. Xie and Fend, for some
In 1996, Dobbertin announced a
reasons didn‟t disclose the new attack
collision of compression function of
method. They have challenged the
MD5 algorithm. This was actually not
Cryptographic community of $10,000
an attack over the whole MD5 function
for the one who finds any other 64-
but it suggested considering any
byte collision method before January
better cryptographic replacement for
1st, 2013.
use.

Hash-function
A hash function is any well-defined codes, hash sums, checksums or hashes.
function which converts large amount Hash functions are most commonly
of data into a small data used for searching the data or for tasks
representation. like comparison, finding items in large
databases, detecting similar or
The Hash Function returns a calculated
duplicate records in large files, etc.
value known as hash values, hash
Hash functions are also used in hash The 128-bit or, more specifically, 16-
tables to quickly locate the data, used byte MD5 hashes (also termed
to build cache for large data. message digests) can be represented in
the form of a sequence of 32 hex digits.
The following demonstrates a 43-byte
ASCII input and the corresponding
MD5 hash:

MD5 ("Sir Padampat Singhania


University") =
3c6923b9e53a2612a2d583091151f3

Even a small change in the message


will (with overwhelming probability)
result in a mostly different hash, due to
the avalanche effect. For example,
adding a period to the end of the
sentence:

MD5 ("Sir Padampat Singhania


University.") =
d07f692567e28abb2b9f947d91b1fc3

The hash of the zero-length string is:

MD5 ("") =
d41d8cd98f00b204e9800998ecf8427e
MD5 Hashes

Visual Example of MD5 Hashes:

i. An image demonstrating the MD5 hashes string of an email-id.


ii. An image calculating the MD5 Hash of a string.

Cryptography
Cryptography or cryptology is the used in ATM cards, computer passwords
pattern and study of hiding and electronic commerce.
information or data. Modern
History of cryptography indicates that
cryptography mainly deals with the
it is purely used only for conversion of
field of mathematics, computer science
message (i.e. encryption). [5]The origin
and electrical engineering.
of cryptography probably goes back to
Cryptography applications are mostly
the very beginning of human
existence, as people tried to learn how the use of asymmetric key algorithms
to communicate. They consequently rather than symmetric key algorithms,
had to find means to guarantee Quantum Cryptography gives the
secrecy as part of their quantum mechanical effects, Caesar
communications. Howsoever, the first cipher also known as shift cipher, it is
deliberate use of these kinds of simplest and widely used encryption
technical methods may be attributed technique. It is like a substitution
to the ancient Greeks, around 6 years cipher in which letter in the text is
BC: a stick, named "scytale" was used. replaced by the some fixed numbers.
[2]
The sender would roll a strip of paper Within the context of any application-to-
around the stick and write his message application communication, there are
longitudinally on it. He then unfolds some specific security requirements,
the paper and sends it over to an including:
addressee. Decrypting the message  Authentication: The process of
without knowledge of the stick‟s width proving one's identity. (The primary
- acting here as a secret key - was forms of host-to-host
meant to be impossible. Later, Romans authentication on the Internet
used Caesar‟s Cipher code to
today are name-based or address-
communicate (a three letter alphabet based, both of which are
shift). Main use of encryption was to notoriously weak.)
ensure the privacy of the data or
message in communication from spies  Privacy/confidentiality: Ensuring
or diplomats. In this day‟s this filed that no one can read the message
make so much progress with new except the intended receiver.
techniques like message integrity
 Integrity: Assuring the receiver that
checking, sender/receiver identity
the received message has not been
authentication, digital signatures,
altered in any way from the
secure computations etc.
original.
The modern field of cryptography have
 Non-repudiation: A mechanism to
lots of area for studying some are like
prove that the sender really sent
public-key cryptography which include
this message.
Different Cryptographic Hash Functions:

Name Length Type

GOST 256 bits Hash


HAS-160 160 bits Hash
HAVAL 128 to 256 bits Hash
MD2 128 bits Hash
MD4 128 bits Hash
MD5 128 bits Hash
RadioGatún Up to 1216 bits Hash
RIPEMD-64 64 bits Hash
RIPEMD-160 160 bits Hash
RIPEMD-320 320 bits Hash
SHA-1 160 bits Hash
SHA-224 224 bits Hash
SHA-256 256 bits Hash
SHA-384 384 bits Hash
SHA-512 512 bits Hash
Skein Arbitrary Hash
Snefru 128 or 256 bits Hash
Tiger 192 bits Hash
Whirlpool 512 bits Hash
FSB 160 to 512 bits Hash
ECOH 224 to 512 bits Hash
SWIFFT 512 bits Hash

Table 1. Different types of Cryptographic Hash Functions

MD5 ALGORITHM
The MD5 algorithm is an extension of MD5 is a block-chained digest
the MD4 message-digest algorithm. algorithm, computed over the data in
phases of 512-byte blocks organized
as little-endian 32-bit words (Figure). MD5 algorithm uses four rounds, each
The first block is processed with an applying one of four non-linear
initial seed, resulting in a digest that functions to each sixteen 32-bit
becomes the seed for the next block. segments of a 512-bit block source
When the last block is computed, its text. The result is a 128-bit digest.
digest is the digest for the entire Figure 1 is a graph representation that
stream. This chained seeding prohibits illustrates the structure of the MD5
parallel processing of the blocks. algorithm.

64 bits less than a multiple of 512


bits. The padding is performed by

Let us suppose that we are giving an


input message of b-bit and we want to
find its message digest. Here, b is an appending a single “1” bit to the input
arbitrary integer which can be equal to message, and then “0” bits are
greater than zero but no less than appended so that the length in bits of
zero. the padded message becomes equal
Therefore, let the bits of the input to 448 bits.
message be as follows:
m0 m1 m2 ... m (b-1) 2. Append 64-bit number.
Now, the length of the input message
The MD5 Algorithm takes in concern is converted to 64-bit representation
the following steps to compute the and then it is appended to the
previous result. After this processing,
Message digests of the given input the resulting message of padded bits
message. and b, has a length that is an exact
multiple of 512 bits. Also, this message
has a length that is an exact multiple of
1. Padding the input message. 16 (32-bit) words. Thus, m [0 ... n-1]
The b-bit message is extended or denote the words of the resulting
more specifically “padded”, so that message; where n is a multiple of 16.
its length reaches 448 bits, which is
3. Message-Digest Buffer is initialized. The message digest produced as
A 4-word buffer (A, B, C and D) is used output is A, B, C and D. That is, we
to compute the message digest. Here, begin with the low-order byte of A,
each of A, B, C, D is a 32-bit register. and end with the high-order byte of D.
These registers are initialized to the
following values in hexadecimal:
The steps have optimization
Word A: 01 23 45 67
Word B: 89 ab cd ef limitations, due to the mathematical
properties of the operations used:
Word C: fe dc ba 98
Word D: 76 54 32 10  Additions can be reordered by
commutative laws.
4. Processing of each 16-Word Blocks.  Rotate does not distribute over
Firstly, four functions are defined that addition.
take as input three 32-bit words and  Addition does not distribute over
result in an output of one 32-bit word. rotation or logicals.
They are as follows:

The Algorithm
[3][4]
The algorithm takes as input a
message of arbitrary length and
produces as output a 128-bit
Where, "fingerprint" or "message digest" of
the input. It is conjectured that it is
Denote the XOR, OR, AND,
computationally infeasible to produce
and NOT operations respectively.
two messages having the same
Here, we will also use a 64-element message digest, or to produce any
table T [1 ... 64] constructed from the message having a given pre-specified
Sine function. Let T[i] denote the i th target message digest. The MD5
element of the table, which is equal to algorithm is intended for digital
the integer part of 4294967296 times signature applications, where a large
abs (sin (i)), where I is in radians. file must be "compressed" in a secure
manner before being encrypted with a
5. Output. private (secret) key under a public-key
cryptosystem such as RSA
FOR I = 0 TO N/16-1 DO //PROCESS EACH 16 -WORD BLOCK.
FOR J = 0 TO 15 DO //COPY BLOCK I INTO X.
SET X[J] TO M [I*16+J].
END //OF LOOP ON J
AA = A //SAVE A AS AA, B AS BB, C AS CC, AND D AS DD.
BB = B
CC = C
DD = D

//LET [ABCD K S I] DENOTE THE OPERATION


//A = B + ((A + F(B, C,D) + X[K] + T[I]) <<< S).

/* THEN PERFORM THE FOLLOWIN G ADDITIONS. (THAT IS INCREMENT EACH OF THE FOUR
REGISTERS BY THE VALUE IT HAD BEFORE THIS BLOCK WAS STARTED.) */
A = A + AA
B = B + BB
C = C + CC
D = D + DD
END

PHP Syntax for generating MD5 Hash


$password = md5 ($password);

PHP Syntax for Login Form


Let's say $_POST ["pass"] is the password they submit and $real_pass is the md5 from
your database.

if (md5($_POST["pass"] == $real_pass)

// Password correct
// Set cookies, redirect, display page

else

// Password incorrect

// Redirect, show Error

Applications of MD5

Message-Digest is widely used in checksum of the downloaded version.


different softwares to provide some If it matches that means the file is safe
assurance that a transferred file has otherwise it means that the software or
arrived intact. the program has been tampered.

For example, some File Servers However, now it is quite easy to


provide a pre-computed MD5 (called generate MD5 collisions. Now, the
MD5sum) checksum for their files, so person who created the file can give a
that one can compare the checksum or checksum to second file with the same
hash string of the downloaded file with checksum, so this technique cannot
it. The Unix-based operating systems protect against some forms of
(viz. Debian, Ubuntu, etc.) include MD5 malicious tampering. Also, in some
sum utilities in their distribution cases, the checksum cannot be trusted
packages, whereas Windows users (for example, if it was obtained over
need to use third-party applications for the same channel as the downloaded
generating a hash string. file), in which case MD5 can only
provide error-checking functionality: it
Protection from tampering- Suppose
will recognize a corrupt or incomplete
we have released a program or
download, which becomes more likely
software and is freely distributed
when downloading larger files. MD5
among the people. But, if someone
can also be used to store passwords.
who want to tamper the application,
will add a malware onto the software MD5 technique is also used for
program. Now, if we take an MD5 authentication in a number of
checksum of the original program and protocols. It has also been included as
then compare it with the MD5 an encapsulation mechanism in SIPP,
IPv6, and IPv4. A partial list of  OSPF
protocols or protocol options using  RIP-II
MD5 is as follows:  RIPng
 TCP
 SNMP V2
 SOCKS V5
 IPv6 / IPng
 WWW's Secure HyperText Transfer
 IPng ESH (uses DES)
Protocol
 IPv4
 WWW's SimpleMD5
 SIPP (progenitor of IPng)

How to use MD5 Hash to check the Integrity of Files?

Suppose we have a file called file.tar e4d909c290d0fb1ca068ffaddf22cbd


on our server. Before we download, we 0
will be generating an MD5 hash for
This is the MD5 hash string for the file
this file on the Server. For this purpose,
“file.tar”. After downloading this file
we will be using the following shell
onto the computer, we can cross check
commands in UNIX.
the integrity of the file by re-
For UNIX: generating the MD5 hash string for the
downloaded file. Now, if both the hash
 md5sum file.tar
strings match, then this implies that
After hitting ENTER key, we‟ll see the the downloaded file is correct.
MD5 Hash as below: Otherwise it means that the file is
corrupt.
If file is not present, omit the file
parameter from standard input.
Checking for validity
It is not possible to compute a
In order to see whether a given file is checksum for an entire directory. We
valid and correct, we pass the output need to recursively check every single
of a previous md5sum with the switch file. There are two alternatives:
-c. Thus, the following two steps occur:
1. Use find in conjunction with
1. Compute the MD5 sum and store it md5sum:
in a file using:
find -s directory -type f -print0 | xargs -
md5sum file > file.md5 0 md5sum >> file.md5

2. Check for validity with: or

md5sum -c file.md5
find -s directory -type f -exec md5sum {} MD5 is widely used as a checksum
\; >> file.md5 hash function because it‟s fast and
presents an extremely low collision
This will now store the checksum for all
ratio. An MD5 checksum is composed
the files inside the directory into of 32 hexadecimal digits which
file.md5. We can now check the copied
together provide a 1 in ~3.42e34 odds
directory with respect to this file. Now
of a collision.
go to the location of the copied
directory and issue: MD5 can be read easily as it is short.
For unskilled tasks MD5 hash is good
2. md5sum -c /path/to/file.md5
enough. For example, if we download
an e-book from a trusted mirror and
3. We can now install md5deep, want to check whether the file that has
which has a recursive option.
been downloaded is correct or not, we
md5deep -rl directory > file.md5 can do it so by generating the MD5
hash of it. Then compare the hash with
Now go to the location of the copied the generated hash of the file. If both
directory and issue: hashes match the e-book is
downloaded correctly and completely.
md5sum -c /path/to/file.md5
For cryptography, MD5 is a valid
alternative if security is only a
moderate concern. It's a very viable
Why MD5 is still used option for hashing database passwords
or other fields requiring internal
widely? security for its speed mostly, but also
because MD5 does offer a reasonable
An MD5 exposure is well documented
level of security where strong
and it remains distributed in its usage.
encryption is not a concern.
MD5 is used as a checksum hash
function because it is very fast and MD5 security can be improved by
collision is very low in ratio and if preserving it.
collision is possible then that is not a
big problem. MD5 is very quick to
create.
Figure above Demonstrating the MD5 hashes in Database.
Figure Showing a Windows Application that generates MD5 Hashes to
compare two files.

Figure showing an iMac App. that stores MD5 checksum.


Performance

___________________________________________________________________
Key size/hash size Extrapolated Speed PRB Optimized

(bits) (Kbytes/sec.) (Kbytes/sec.)

__________________________________________________________________________________________

TEA 128 700 -

DES 56 350 7746

Triple-DES 112 120 2842

IDEA 128 700 4469

RSA 512 7 -

SHA 160 750 25162

MD5 128 1740 62425

__________________________________________________________________________________________

Figure. Performance of encryption and secure digest algorithms

The above figure shows the size of the proprietary as well as optimized
key or more specifically, size of the implementations of the algorithms in
result for some safe and secure digest assembly language. As is shown in the
functions and the speed of some most figure, MD5 performs much faster than
popular encryption algorithms. all other algorithms in both the cases.

The measurements in the terms of MD5 software currently runs at 85


speed in the figure were taken as Mbps on a 190 Mhz RISC architecture,
rough estimates of the performance of a rate that cannot be improved more
the algorithms on a 330 MHz Pentium than 20-40%. Because MD5 processes
II processor in 1999. Another term the entire body of a packet, this data
“Extrapolated Speed” was based on the rate is insufficient for current high
C source code which was published in bandwidth networks, including HiPPI
1996 with no particular attempt to and FiberChannel. Further analysis
optimize the code, whereas the term indicates that a 300 Mhz custom VLSI
“PRB“ figure is the result of a CMOS hardware implementation of
substantial research effort to produce MD5 may run as fast as 256 Mbps.
Van Oorschot and Wiener have speed of computer has been increased
considered a brute-force search for dramatically in the past decade, which
collisions in hash functions, and they makes the brute-force search much
estimate a collision search machine faster, MD5 algorithm is still
designed specifically for MD5 (costing considered one of the most secure
$10 million in 1994) could find a algorithms available today.
collision for MD5 in 24 days on
average. Although the computing

Difference between MD5


and its predecessors
1. There were only 3 steps in 4. Each step now adds in the result of
calculation of MD4 algorithm. MD5 the previous step. This promotes a
introduces 2 new steps to increase faster "avalanche effect".
security hence more conservative.
5. The order in which input words are
2. Each step in MD5 contains a accessed in rounds 2 and 3 is changed,
uniquely defined additive constant. to make these patterns less like each
other.
3. The function g in step#2 was
changed to make g less symmetric. 6. The shift amounts in each round
have been approximately optimized, to
yield a faster "avalanche effect" The
shifts in different rounds are distinct.

Limitations of MD5 Algorithm


The security of the MD5 hash function situations, including colliding
is somewhat compromised. A collision document files and digital certificates.
attack exists that can find collisions As of 2009 theoretical attack also
within seconds on a computer with a breaks MD5's pre-image resistance.
2.6 GHz Pentium4 processor.
Moreover, there is also a chosen-prefix a. Vulnerabilities:
collision attack that can produce a
MD5 is a one way function, this implies
collision for two chosen arbitrarily
that it cannot be reversed. It cannot
different inputs within hours, using off-
practically be bruted force either
the-shelf computing hardware
because of the length of the key.
(complexity 239).
However, the most common form of
These collision attacks have been attack on an MD5 string is a Rainbow
demonstrated in public in various Table attack. This works in a very
similar way to brute force and basically certificate which appeared to be
uses a massive database of MD5 legitimate when checked via its MD5
strings with their reversed outputs. hash. The researchers used a cluster of
There have also been numerous Sony Playstation 3s at the EPFL in
demonstrations showing that 2 Lausanne, Switzerland to change a
different files can generate the same normal SSL certificate issued by
hash. With these vulnerabilities in RapidSSL into a working CA certificate
mind, most people are moving away for that issuer, which could then be
from MD5 for uses in their used to create other certificates that
applications, algorithms such as SHA would appear to be legitimate and
are more recommended where security issued by RapidSSL.
is essential.
Bruce Schneier wrote of the attack that
Some of the vulnerabilities are as "We already knew that MD5 is a broken
follows: hash function" and that "no one should
be using MD5 anymore." The SSL
 Collision vulnerabilities researchers wrote, "Our desired impact
is that Certification Authorities will stop
In the year 1996, collisions were found
using MD5 in issuing new certificates.
in the compression function of MD5,
We also hope that use of MD5 in other
and Hans Dobbertin, in the RSA
applications will be reconsidered as
Laboratories technical newsletter
well."
stated, "The presented attack does not
yet threaten practical applications of MD5 uses the Merkle–Damgård
MD5, but it comes rather close. In the construction, so if two prefixes with the
future MD5 should no longer be same hash can be constructed, a
implemented, where a collision- common suffix can be added to both
resistant hash function is required." to make the collision more likely to be
accepted as valid data by the
In 2005, researchers were able to
application using it. Furthermore,
create pairs of PostScript documents
current collision-finding techniques
and X.509 certificates with the same
allow specifying an arbitrary prefix: an
hash. Later that year, MD5's designer
attacker can create two colliding files
Ron Rivest wrote, "md5 and sha1 are
that both begin with the same content.
both clearly broken (in terms of
All the attacker needs to generate two
collision-resistance)," and RSA
colliding files is a template file with a
Laboratories wrote that "next-
128-byte block of data aligned on a
generation products will need to move
64-byte boundary that can be changed
to new algorithms."
freely by the collision-finding
On 30 December 2008, a group of algorithm.
researchers announced at the 25th
Chaos Communication Congress how
they had used MD5 collisions to create  Pre-image vulnerability
an intermediate certificate authority
In April 2009, a pre-image attack strings that collide with the original
against MD5 was published that breaks input, usually for the purposes of
MD5's pre-image resistance. This is only password cracking.
a theoretical attack, with a
computational complexity of 2123.4 for The use of MD5 in some websites'
URLs means that search engines such
full pre-image and 2116.9 for a
as Google can also sometimes function
pseudo-pre-image.
as a limited tool for reverse lookup of
 Other vulnerabilities MD5 hashes.

A number of projects have published Both these techniques are rendered


MD5 rainbow tables online, that can be ineffective by the use of a sufficiently
used to reverse many MD5 hashes into long salt.

CONCLUSIONS Previously, MD2 and MD4 were also


developed but MD2 was developed for
In this report we studied MD5 hash 8-bit processors while MD4 was not
functions, their properties and many of used at a large scale due to lack of
its attacks. We demonstrated different security. On the other hand, MD4 and
attacks, beginning from the first attack MD5 were developed for 32-bit
after a few years of presenting the processors which are used widely in
MD5 hash function; a brief explanation different sectors today. Message-
of their attacks, and a short phrase of Digest Algorithm 4 holds a good
Klima‟s application for finding a capability but was not at all good with
collision on a simple Notebook. The respect to security issues. MD5 was
division of the range of searching the developed to enhance the security
numbers gives shorter and more feature of the algorithm. However, in
specific time of searching. The 2 1996, it was discovered that MD5 was
methods of dividing the searching also vulnerable to some attacks;
space, show which of them yields though it was not as severe but it sent
better results, and concluded the a message for a better replacement of
results of them. the algorithm. Thus, MD5 is not used
in some fields of applications like SSL
We can conclude that MD5 Algorithm
or digital signatures that rely on this
is widely used cryptographic hash
property.
function and often used in checking file
integrity, saving passwords, generating
hash functions, etc. MD5 was
developed with a view of getting more
secure environment than its
predecessor, MD4. It is the third in its
category of message-digest.
LIST OF SYMBOLS AND REFERENCES
ABBREVIATIONS
[1]. “MD5 Algorithm”
Symbols http://en.wikipedia.org/wiki/MD5

Logical XOR Operation [2]. “The purpose of Cryptography”


Logical AND Operation http://www.garykessler.net/library/cryp
Logical OR Operation  to.html#purpose
Logical NOT Operation [3] “MD5, Message-Digest Algorithm”
http://www.networksorcery.com/enp/d
Abbreviations ata/md5.htm

MD – Message Digest Algorithm Rivest, R., "The MD4 Message Digest


Algorithm", RFC 1320, MIT and RSA
WWW – World Wide Web Data Security, Inc., April 1992.
SHA – Secure Hash Algorithm [4]. “RFC 1321 - The MD5 Message-
SNMP – Simple Network Management DigestAlgorithm”
Protocol http://www.faqs.org/rfcs/rfc1321.html

HMAC - Hashed Message [5]. S. Singh, “History of cryptography”,


Authentication Code Histoire des codes secrets. Jean-Claude
Lattès, 1999.
DRM – Digital Rights Management

Potrebbero piacerti anche