Computer Science 654 Lecture 1 : Hash Functions Professor Wayne Patterson Howard University Spring 2010 (Stamp Chapter 5)

Slides:



Advertisements
Similar presentations
Hash Function. What are hash functions? Just a method of compressing strings – E.g., H : {0,1}*  {0,1} 160 – Input is called “message”, output is “digest”
Advertisements

Digital Signatures and Hash Functions. Digital Signatures.
Chapter 5: Hash Functions++
Part 1  Cryptography 1 Chapter 5: Hash Functions++ “I'm sure [my memory] only works one way.” Alice remarked. “I can't remember things before they happen.”
Session 5 Hash functions and digital signatures. Contents Hash functions – Definition – Requirements – Construction – Security – Applications 2/44.
PIITMadhumita Chatterjee Security 1 Hashes and Message Digests.
1 Chapter 5 Hashes and Message Digests Instructor: 孫宏民 Room: EECS 6402, Tel: , Fax :
Announcements: 1. HW7 due next Tuesday. 2. Inauguration today! Questions? This week: Discrete Logs, Diffie-Hellman, ElGamal Discrete Logs, Diffie-Hellman,
Hash functions a hash function produces a fingerprint of some file/message/data h = H(M)  condenses a variable-length message M  to a fixed-sized fingerprint.
Announcements:Questions? This week: Discrete Logs, Diffie-Hellman, ElGamal Discrete Logs, Diffie-Hellman, ElGamal Hash Functions and SHA-1 Hash Functions.
CSE331: Introduction to Networks and Security Lecture 21 Fall 2002.
Chapter 4  Hash Functions 1 Overview  Cryptographic hash functions are functions that: o Map an arbitrary-length (but finite) input to a fixed-size output.
Announcements: 1. HW6 due now 2. HW7 posted Questions? This week: Discrete Logs, Diffie-Hellman, ElGamal Discrete Logs, Diffie-Hellman, ElGamal Hash Functions.
Hash Functions Nathanael Paul Oct. 9, Hash Functions: Introduction Cryptographic hash functions –Input – any length –Output – fixed length –H(x)
CS526Topic 5: Hash Functions and Message Authentication 1 Computer Security CS 526 Topic 5 Cryptography: Cryptographic Hash Functions And Message Authentication.
Hash Functions 1 Hash Functions Hash Functions 2 Cryptographic Hash Function  Crypto hash function h(x) must provide o Compression  output length is.
Cryptography1 CPSC 3730 Cryptography Chapter 11, 12 Message Authentication and Hash Functions.
Cryptography and Network Security Chapter 11 Fifth Edition by William Stallings Lecture slides by Lawrie Brown.
1 Cryptography and Network Security (Various Hash Algorithms) Fourth Edition by William Stallings Lecture slides by Lawrie Brown (Changed by Somesh Jha)
1 Message Authentication and Hash Functions Authentication Requirements Authentication Functions Message Authentication Codes Hash Functions Security of.
Cryptography and Network Security Chapter 11 Fifth Edition by William Stallings Lecture slides by Lawrie Brown.
Lecture 15 Lecture’s outline Public algorithms (usually) that are each other’s inverse.
Acknowledgements: William Stallings.William Stallings All rights Reserved Session 4 Public Key Cryptography (Part 2) Network Security Essentials Application.
Message Authentication  message authentication is concerned with: protecting the integrity of a message protecting the integrity of a message validating.
Information Security Principles Assistant Professor Dr. Sana’a Wafa Al-Sayegh 1 st Semester ITGD 2202 University of Palestine.
1 Chapter 11: Message Authentication and Hash Functions Fourth Edition by William Stallings Lecture slides by Lawrie Brown (modified by Prof. M. Singhal,
Hash Functions A hash function H accepts a variable-length block of data M as input and produces a fixed-size hash value h = H(M) Principal object is.
Message Authentication Code July Message Authentication Problem  Message Authentication is concerned with:  protecting the integrity of a message.
Lecture 4.1: Hash Functions, and Message Authentication Codes CS 436/636/736 Spring 2015 Nitesh Saxena.
1 Hashes and Message Digests. 2 Hash Also known as –Message digest –One-way function Function: input message -> output One-way: d=h(m), but not h’(d)
Introduction1-1 Data Communications and Computer Networks Chapter 6 CS 3830 Lecture 31 Omar Meqdadi Department of Computer Science and Software Engineering.
Fall 2002CS 395: Computer Security1 Chapter 11: Message Authentication and Hash Functions.
Public Key Encryption CS432 – Security in Computing Copyright © 2005, 2008 by Scott Orr and the Trustees of Indiana University.
Hashing Algorithms: Basic Concepts and SHA-2 CSCI 5857: Encoding and Encryption.
Hash and MAC Functions CS427 – Computer Security
CSCI 172/283 Fall 2010 Hash Functions, HMACs, and Digital Signatures.
11.1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 11 Message Integrity and Message Authentication.
Slide 1 EJ Jung Hash Functions. Integrity checks.
Cryptographic Hash Functions and Protocol Analysis
CIT 380: Securing Computer SystemsSlide #1 CIT 380: Securing Computer Systems Modern Cryptography.
Chapter 11 Message Authentication and Hash Functions.
Cryptography and Network Security Chapter 12 Fifth Edition by William Stallings Lecture slides by Lawrie Brown.
Cryptography 1 Crypto Cryptography 2 Crypto  Cryptology  The art and science of making and breaking “secret codes”  Cryptography  making “secret.
Cryptographic Hash Functions Prepared by Dr. Lamiaa Elshenawy
Chapter 5 Hash Functions
Hash Functions Ramki Thurimella. 2 What is a hash function? Also known as message digest or fingerprint Compression: A function that maps arbitrarily.
Lecture 4.1: Hash Functions, and Message Authentication Codes CS 436/636/736 Spring 2014 Nitesh Saxena.
Cryptographic Hash Functions
CS426Fall 2010/Lecture 51 Computer Security CS 426 Lecture 5 Cryptography: Cryptographic Hash Function.
CSCE 715: Network Systems Security Chin-Tser Huang University of South Carolina.
Hashes Lesson Introduction ●The birthday paradox and length of hash ●Secure hash function ●HMAC.
IT 221: Introduction to Information Security Principles Lecture 5: Message Authentications, Hash Functions and Hash/Mac Algorithms For Educational Purposes.
CS480 Cryptography and Information Security Huiping Guo Department of Computer Science California State University, Los Angeles 13.Message Authentication.
Computer and Information Security
CPIS 312 Chapter Five: Hash Function By Dr. Daniyal Alghazzawi 2011 Term 2.
Data Integrity / Data Authentication. Definition Authentication (Signature) algorithm - A Verification algorithm - V Authentication key – k Verification.
Understanding Cryptography by Christof Paar and Jan Pelzl These slides were prepared by Christof Paar and Jan Pelzl Chapter 12.
@Yuan Xue 285: Network Security CS 285 Network Security Hash Algorithm Yuan Xue Fall 2012.
Chapter 12 – Hash Algorithms
Cryptographic Hash Functions
Cryptographic Hash Function
Cryptographic Hash Functions
Cryptographic Hash Functions
刘振 上海交通大学 计算机科学与工程系 电信群楼3-509
Lecture 4.1: Hash Functions, and Message Authentication Codes
刘振 上海交通大学 计算机科学与工程系 电信群楼3-509
Presentation transcript:

Computer Science 654 Lecture 1 : Hash Functions Professor Wayne Patterson Howard University Spring 2010 (Stamp Chapter 5)

Hash Function Motivation Suppose Alice signs M –Alice sends M and S = [M] Alice to Bob (using an encryption key) –Bob verifies that M = {S} Alice –Is it OK to just send S? If M is big, [M] Alice is costly to compute Suppose instead, Alice signs h(M), where h(M) is much smaller than M –Alice sends M and S = [h(M)] Alice to Bob –Bob verifies that h(M) = {S} Alice

Crypto Hash Function Crypto hash function h(x) must provide –Compression  output length is small –Efficiency  h(x) easy to computer for any x –One-way  given a value y it is infeasible to find an x such that h(x) = y –Weak collision resistance  given x and h(x), infeasible to find y  x such that h(y) = h(x) –Strong collision resistance  infeasible to find any x and y, with x  y such that h(x) = h(y) –Lots of collisions exist, but hard to find one

Are There Collisions? Suppose that the hash function h hashes messages to 128 bits. Just for messages of length 150 bits, consider: –For all messages of length 150 bits (2 150 of them), there will be 2 ( ) = 2 22 = 4,194,304 that will hash to a given value

Pre-Birthday Problem Suppose N people in a room How large must N be before the probability someone has same birthday as me is  1/2 –Solve: 1/2 = 1  (364/365) N for N –Find N = 253

Birthday Problem How many people must be in a room before probability is  1/2 that two or more have same birthday? –1  365/365  364/365    (365  N+1)/365 –Set equal to 1/2 and solve: N = 23 Surprising? A paradox? Maybe not: “Should be” about sqrt(365) since we compare all pairs x and y (See birthday calculations.xls)

Of Hashes and Birthdays If h(x) is N bits, then 2 N different hash values are possible sqrt(2 N ) = 2 N/2 Therefore, hash about 2 N/2 random values and you expect to find a collision Implication: secure N bit symmetric key requires 2 N  1 work to “break” while secure N bit hash requires 2 N/2 work to “break”

Non-crypto Hash (1) Data X = (X 0,X 1,X 2,…,X n-1 ), each X i is a byte Spse hash(X) = X 0 +X 1 +X 2 +…+X n-1 Is this secure? Example: X = ( , ) Hash is – – – But so is hash of Y = ( , ) Easy to find collisions, so not secure…

Non-crypto Hash (2) Data X = (X 0,X 1,X 2,…,X n-1 ) Suppose hash is –h(X) = nX 0 +(n-1)X 1 +(n-2)X 2 +…+1  X n-1 Is this hash secure? At least –h( , )  h( , ) –h( , ) = 2X0 + X1 – = = But hash of ( , ) is same as hash of ( , ) Not one-way, but this hash is used in the (non-crypto) application rsyncrsync

Non-crypto Hash (3) Cyclic Redundancy Check (CRC) Essentially, CRC is the remainder in a long division problem Good for detecting burst errors But easy to construct collisions CRC sometimes mistakenly used in crypto applications (WEP)

CRC Example Suppose the divisor in the CRC is Data is CRC is – ) – – – – – – – – – – 1010

Popular Crypto Hashes MD5  invented by Rivest –128 bit output –Note: MD5 collision recently found SHA-1  A US government standard (similar to MD5) –160 bit output Many others hashes, but MD5 and SHA-1 most widely used Hashes work by hashing message in blocks

Crypto Hash Design Desired property: avalanche effect –Change to 1 bit of input should affect about half of output bits Crypto hash functions consist of some number of rounds Want security and speed –Avalanche effect after few rounds –But simple rounds Analogous to design of block ciphers

Tiger Hash “Fast and strong” Designed by Ross Anderson and Eli Biham  leading cryptographers Design criteria –Secure –Optimized for 64-bit processors –Easy replacement for MD5 or SHA-1

Tiger Hash Like MD5/SHA-1, input divided into 512 bit blocks (padded) Unlike MD5/SHA-1, output is 192 bits (three 64-bit words) –Truncate output if replacing MD5 or SHA-1 Intermediate rounds are all 192 bits 4 S-boxes, each maps 8 bits to 64 bits A “key schedule” is used

Tiger Outer Round F7F7 F9F9  W  cab cab F5F5 key schedule Input is X –X = (X 0,X 1,…,X n-1 ) –X is padded – Each X i is 512 bits There are n iterations of diagram at left –One for each input block Initial (a,b,c) constants Final (a,b,c) is hash Looks like block cipher! cab W W XiXi

Tiger Inner Rounds f m,0 f m.1 f m,2 f m,7 w0w0 w1w1 w2w2 w7w7 cab cab Each F m consists of precisely 8 rounds 512 bit input W to F m –W=(w 0,w 1,…,w 7 ) –W is one of the input blocks X i All lines are 64 bits The f m,i depend on the S-boxes (next slide)

Tiger Hash: One Round Each f m,i is a function of a,b,c,w i and m –Input values of a,b,c from previous round –And w i is 64-bit block of 512 bit W –Subscript m is multiplier –And c = (c 0,c 1,…,c 7 ) Output of f m,i is –c = c  w i –a = a  (S 0 [c 0 ]  S 1 [c 2 ]  S 2 [c 4 ]  S 3 [c 6 ]) –b = b + (S 3 [c 1 ]  S 2 [c 3 ]  S 1 [c 5 ]  S 0 [c 7 ]) –b = b  m Each S i is S-box: 8 bits mapped to 64 bits

Tiger Hash Key Schedule Input is X –X=(x 0,x 1,…,x 7 ) Small change in X will produce large change in key schedule output x 0 = x 0  (x 7  0xA5A5A5A5A5A5A5A5) x 1 = x 1  x 0 x 2 = x 2  x 1 x 3 = x 3  (x 2  ((~x 1 ) << 19)) x 4 = x 4  x 3 x 5 = x 5 +x 4 x 6 = x 6  (x 5  ((~x 4 ) >> 23)) x 7 = x 7  x 6 x 0 = x 0 +x 7 x 1 = x 1  (x 0  ((~x 7 ) << 19)) x 2 = x 2  x 1 x 3 = x 3 +x 2 x 4 = x 4  (x 3  ((~x 2 ) >> 23)) x 5 = x 5  x 4 x 6 = x 6 +x 5 x 7 = x 7  (x 6  0x ABCDEF)

Tiger Hash Summary (1) Hash and intermediate values are 192 bits 24 rounds –S-boxes: Claimed that each input bit affects a, b and c after 3 rounds –Key schedule: Small change in message affects many bits of intermediate hash values –Multiply: Designed to insure that input to S-box in one round mixed into many S-boxes in next S-boxes, key schedule and multiply together designed to insure strong avalanche effect

Tiger Hash Summary (2) Uses lots of ideas from block ciphers –S-boxes –Multiple rounds –Mixed mode arithmetic At a higher level, Tiger employs –Confusion –Diffusion

HMAC Can compute a MAC of the message M with key K using a “hashed MAC” or HMAC HMAC is an example of a keyed hash –Why do we need a key? How to compute HMAC? Two obvious choices –h(K,M) –h(M,K)

HMAC Should we compute HMAC as h(K,M) ? Hashes computed in blocks –h(B 1,B 2 ) = F(F(A,B 1 ),B 2 ) for some F and constant A –Then h(B 1,B 2 ) = F(h(B 1 ),B 2 ) Let M’ = (M,X) –Then h(K,M’) = F(h(K,M),X) –Attacker can compute HMAC of M’ without K Is h(M,K) better? –Yes, but… if h(M’) = h(M) then we might have h(M,K)=F(h(M),K)=F(h(M’),K)=h(M’,K)

The Right Way to HMAC Described in RFC 2104 Let B be the block length of hash, in bytes –B = 64 for MD5 and SHA-1 and Tiger ipad = 0x36 repeated B times opad = 0x5C repeated B times Then HMAC(M,K) = H(K  opad, H(K  ipad, M))

Hash Uses Authentication (HMAC) Message integrity (HMAC) Message fingerprint Data corruption detection Digital signature efficiency Anything you can do with symmetric crypto

Online Auction Suppose Alice, Bob and Charlie are bidders Alice plans to bid A, Bob B and Charlie C They don’t trust that bids will stay secret Solution? –Alice, Bob, Charlie submit hashes h(A), h(B), h(C) –All hashes received and posted online –Then bids A, B and C revealed Hashes don’t reveal bids (one way) Can’t change bid after hash sent (collision)

Spam Reduction Spam reduction Before I accept an from you, I want proof that you spent “effort” (e.g., CPU cycles) to create the Limit amount of that can be sent Make spam much more costly to send

Spam Reduction Let M = message Let R = value to be determined Let T = current time Sender must find R such that –hash(M,R,T) = (00…0,X), where –N initial bits of hash are all zero Sender then sends (M,R,T) Recipient accepts , provided –hash(M,R,T) begins with N zeros

Spam Reduction Sender: hash(M,R,T) begins with N zeros Recipient: verify that hash(M,R,T) begins with N zeros Work for sender: about 2 N hashes Work for recipient: 1 hash Sender’s work increases exponentially in N Same work for recipient regardless of N Choose N so that –Work acceptable for normal users –Work unacceptably high for spammers!