Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How are cryptographic hash functions designed? [closed]

Tags:

After reading about why one-way hash functions are one-way, I would like to know how to design a hash function. Yes, I know that it's a bad idea to not use a proven and tested hash function, but I would still like to know how what matters in the design, and what the design process is like.

I'm familiar with Feistel-network ciphers but those are necessarily reversible, which is horrible for a cryptographic hash. Is there some sort of construction that is well-used in cryptographic hashing? Something that makes it one-way?

like image 759
Eyal Avatar asked May 26 '10 08:05

Eyal


2 Answers

Currently there is the NIST hash function competition running with the goal to find a replacement for the older SHA-1 and SHA-2 functions.
You can get whitepapers to all of the algorithms taking part there (see here for round 2 submissions). There are lots of different hash functions described, as well as their strengths and problems.

like image 152
tanascius Avatar answered Oct 03 '22 02:10

tanascius


First of all you should read chapter 9 of "The Handbook". The full name of this book is "The Handbook Of Applied Cryptography".

Next I recommend that you look at the analysis of existing hash functions. For instance Skein is one of the strongest SHA-3 competitors. Skien's submission contains a lot of documentation on how it is constructed and proven to be secure.

like image 43
rook Avatar answered Oct 03 '22 02:10

rook