CP5603
Research Report
SUBMITTED TO: SUBMIITED
BY:
DR: PAUL DARWEN LOVEJEET KAUR
Jc472458
CRYPTOGRAPHIC
HASH FUNCTION
SUMMARY
This
report is about cryptographic hash functions. Cryptographic
hash functions are a basic technology used in many encryption methods. A cryptographic
hash function is a type of security mechanism that produces a hash value,
message digest or checksum value for a specific data object. Data oriented
companies can use any type of cryptographic hash functions.
There
are many types of cryptographic hash functions. We can basically divide it into
two categories:
· Older
cryptographic hash functions
·
Newer
cryptographic hash functions
Older
cryptographic hash functions include popular ones like MD5 and SHA-1.
MD5 is a
popular Hash Function producing a 128-bit hash value and used by numerous
individuals around the globe.
SHA-1 works
similar to MD5 and produces a 160-bit message digest.
Newer cryptographic hash functions are
supposed to be better, like BLAKE2, SHA-3, and Tiger.
BLAKE2 is a cryptographic hash function faster than MD5, SHA-1, SHA-2, and SHA-3, yet is at least as
secure as the latest standard SHA-3. BLAKE2 has been adopted by many
projects due to its high speed, security, and simplicity.
SHA-3 is designed to provide a random mapping from a
string of binary data to a fixed-size “message digest” and achieve certain
security properties.
Tiger is designed to run on
64-bit platforms. The size of a Tiger hash value is 192 bits.
As a result, I think data-oriented companies should use
Newer cryptographic hash functions because these are better than older ones and
have new improvements and features.
HASH
FUNCTION
A hash work takes a gathering
of characters (called a key) and maps it to an estimation of a specific length
(called a hash esteem or hash). The hash esteem is illustrative of the first
series of characters which is ordinarily littler than the first.
Hashing is improved the
situation ordering and finding things in databases since it is simpler to
locate the shorter hash an incentive than the more drawn out string. Hashing is
likewise utilized as a part of encryption.
This term is otherwise called
a hashing calculation or message process work.
Hash function takes
an input of arbitrary or almost arbitrary length to one whose length is a fixed
number like 160 bits. These are
used in many parts of cryptography and there are many different types of hash functions, with differing
security properties.
Design
of hash function
Hash tables are one of the most useful data
structures ever invented. Unfortunately, they are also one of the most misused.
Code built using hash tables often falls far short of achievable performance.
There are two reasons for this:
· Clients choose poor hash functions that do not
act like random number generators, invalidating the simple uniform hashing
assumption.
· Hash table abstractions do not adequately
specify what is required of the hash function or make it difficult to provide a
good hash function.
CRYPTOGRAPHIC
HASH FUNCTION
A cryptographic hash function
takes an information (or ‘message’) and returns a fixed-size alphanumeric string. The string is known as
the ‘hash esteem’, ‘message process’, ‘advanced unique mark’, ‘process’ or
‘checksum’.
It should have three
fundamental properties:
1.
It is simple to ascertain a hash for any given
information.
2. It is
computationally hard to figure an alphanumeric content that has a given hash.
3. It is
improbable that two unique messages will have a similar hash.
A cryptographic hash
function is a kind of algorithm that can be run on a piece of data, like an
individual file or a password, to produce a value
called a checksum. Its main use is to verify the
authenticity of a piece of data.
Early
History and Definitions
Cryptographic hash functions
map input strings of arbitrary (or very large) length to short fixed length
output strings. In their 1976 seminal paper on public key cryptography, Diffie
and Hellman identified the need for a one-way hash function as a building block
of a digital signature scheme. The first definitions, analysis and
constructions for cryptographic hash functions can be found in the work of
Rabin, Yuval, and Merkle of the late 1970s. Rabin proposed a design with a
64-bit result based on the block cipher DES, Yuval showed how to find
collisions for an n-bit hash function in time 2n/2 with the birthday paradox,
and Merkle’s work introduced the requirements of collision resistance, second
preimage resistance, and preimage resistance. In 1987, Damg?ard formalized the
definition of collision resistance, and two years later Naor and Yung defined a
variant of seoncd preimage resistant functions called Universal One-Way Hash
Functions (UOWHFs). In 2004 Rogaway and Shrimpton formally studied the relations between
collision resistance and several flavors of preimage resistance and second
preimage resistance. Hash functions should also destroy the algebraic structure
of the signature scheme; typical examples are the Fiat-Shamir heuristic and
Coppersmith’s attack on the hash function in X.509 Annex D that was intended
for use with RSA (this attack breaks the signature scheme by constructing
message pairs (x, x0 ) for which h(x) = 256 · h(x )). This development resulted
in the requirement that hash functions need an ‘ideal’ behavior which would
allow them to instantiate the theoretical concept of random oracles.
Constructions of MAC algorithms based on hash functions (such as HMAC) have
resulted in the requirement that the hash function can be used to construct
pseudo-random functions, which has a.o. been studied by Bellare et al.
TYPES
OF CRYPTOGRAPHIC HASH FUNCTION
There
are many types of cryptographic hash functions. Some of them are older but
popular as well like MD5 and SHA-1 and Some are newer ones that supposed to be
better like BLAK2, SHA-3 and Tiger. These types are discussed in detail in
following paragraphs.
Older
cryptographic hash functions
MD5
MD5 is a popular Hash Function
producing a 128-bit hash value and used by numerous
individuals around the globe. It is Created by Professor Ronald L. Rivest of
MIT in 1991. It
is an updated version of MD4. MD5 (message digest algorithm) is one-way function that produce a
“fingerprint”. essentially, they map something with a lot of bits
down to just a few bits (128 in the case of MD5) in such a way that collisions
are as rare as possible. MD5 was designed especially to run on 32-bit processors
It has two purposes:
1. Confirm
the honesty of a document after a predefined timeframe
2. Create
Hash esteems for a specific bit of information ( Ex: document) and store them,
for later cross checking if the record has been adjusted or not.
Examples of framework which contains a record called
“SAMPLE.TXT”
filename
hash value
C:SAMPLE.TXT
BC8FEFECA210FC0C0F3EBC1614A37889
MD5 takes as information a
message of subjective length and creates as yield a 128-piece “unique
mark” or “message process”. It is computationally infeasible to
deliver any message having a given prespecified target message process. The MD5
calculation was planned for advanced mark applications, where a vast record
must be “packed” in a safe way before being marked with a private
(mystery) key under an open key cryptosystem, for example, RSA. Be that as it
may, commonsense assaults on the impact protection of MD5 exist 1, and it
ought to along these lines not be utilized with advanced marks or some other
application requiring crash protection.
MD5 Algorithm
MD5 consists of 64 of these operations, grouped in four
rounds of 16 operations. F is used in each round which is nonlinear function.
Mi denotes the message input of 32 bit, and Ki which is different for each
operation and is 32-bit constant. s is a left bit rotation by s.The main
algorithm MD5 is divided into A, B, C and D which operates on 128 bit where
each carry 32 bits.These are constants which are initialized into,
A = 0x67452301 B =
0xEFCDAB89 C = 0x98BADCFE D = 0x10325376
The processing consists of four same stages and each stage
is composed of similar 16 operations. The figure denotes one such kind of
operation. F (B,C,D)=(B AND C) OR (NOT B AND D) G (B,C,D)= (B AND D) OR ( C AND
NOT D) H (B,C,D)= B XOR C XOR D I (B,C,D)= C XOR (B OR NOT D)
The output is called
a hash value, a fingerprint or a message digest.
Good point:
· It is useful because we
can compare and store small hashes much more easily than the entire original
sequences.
· It can be utilized to check something without
fundamentally giving ceaselessly the first data. For example, Unix stores
hashes of passwords rather than the passwords themselves.
· MD5 is very collision
resistant.
· It provides fast
computation.
· It provides one-way
hash.
· It is popular globally.
Bad point:
· It has known security
flaws and vulnerabilities.
· It is less secure than
the SHA-1 algorithm MD5.
· MD5 use Davies-Meyer construction with certain block
ciphers that do not see much use on
their own.
SHA-1
It
works similar to MD5 and produces a 160-bit message digest. It is the most
widely used algorithm for integrity. The main reason for its popularity among
existing algorithms is its time efficiency and its robustness. It was no longer
used for most cryptographic uses after 2010 attack by Marc Stevens, which can
produce hash collisions with a complexity of 261 operations. It was designed by the United
States National Security Agency, and is a U.S. Federal Information
Processing Standard. SHA1 is widely considered
the successor to MD5. SHA stands for “Secure Hash Algorithm”
SHA-1 Algorithm
Here A, B, C, D
and E denotes the 32-bit words in one iteration of SHA-1 function. F varies and
d it is a nonlinear function. N varies for each rotation and denotes a left
side rotation. Wt. is the expanded message word of round t. Kt denotes the
addition modulo and is a constant. H0, h1, h2, h3, and h4 denotes 32 bit
divisions of SHA Algorithm. h0
=0x67452301 h1= 0Xefcdab89 h2=0x98BADCFE
h3=0x10325476 h4=0XC3D2E1F0 Based on F function message it consist of
similar 80 operations. Modular addition and left rotation.
A=h0, B=h1, C=h2, D=h3, E=h4
From iteration 16 to 79
wi= (wi-3 xor wi-8 xor wi-14
xor wi-16) leftrotate1
The possible F functions: F(B,C,D)=(B
AND C) OR (NOT B AND D) G(B,C,D)=B XOR C
XOR D H(B,C,D)=(B AND C) OR (B AND D) OR
(C AND D) 5 I(B,C,D)=B XOR C XOR
D
SHA1 requires 80 processing constant
words defined as:
K(t) = 0x5A827999 , (0
Hi!
I'm Josephine!
Would you like to get a custom essay? How about receiving a customized one?
Check it out