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