170
Hash Functions, the MD5 Algorithm and the Future (SHA-3) Dylan Field, Fall ’08 SSU Math Colloquium

Hash Functions, the MD5 Algorithm and the Future (SHA-3)

Embed Size (px)

DESCRIPTION

This was filmed at the Sonoma State University mathematics colloquium on November 5th, 2008. In the talk, Dylan speaks about hash functions, their applications and attacks on them. He specifically focuses on the design of the MD5 algorithm. Dylan also gives a preview of what is in store for the future of hashes- the SHA-3 competition put on by the NIST. For a video of this presentation, visit http://www.vimeo.com/2409021

Citation preview

Page 1: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

Hash Functions,the MD5 Algorithm

and the Future (SHA-3)

Dylan Field, Fall ’08SSU Math Colloquium

Page 2: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

What is a hash?

Page 3: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

First, Consider Humpty Dumpty...

Page 4: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

Humpty Dumpty sat on a wall.

Page 5: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

Humpty Dumpty had a great fall.

Page 6: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

All the king’s horses and all the king’s men

Page 7: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

Couldn’t put Humpty together again.

Page 8: Hash Functions, the MD5 Algorithm and the Future (SHA-3)
Page 9: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

X

Page 10: Hash Functions, the MD5 Algorithm and the Future (SHA-3)
Page 11: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

h(x)

Page 12: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

BUT h(x) is a one way function

Page 13: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

... so they can’t put Humpty together again.

Page 14: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

x h(x)hash function

Humpty falls

Page 15: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

x h(x)hash function

Humpty falls

‘hello’ MD5

Page 16: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

x h(x)hash function

Humpty falls

‘hello’ MD55d41402abc4b2a76b9719d91

1017c592

Page 17: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

- going backwards -

- going backwards -

Page 18: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

- going backwards -

- going backwards -

Page 19: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

- going backwards -

- going backwards -

NO!!!

Page 20: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

- going backwards -

- going backwards -

5d41402abc4b2a76b9719d91

1017c592

Page 21: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

- going backwards -

- going backwards -

5d41402abc4b2a76b9719d91

1017c592‘hello’

Page 22: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

Requirements

h(x)

Page 23: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

Requirements

h(x)

Given h(x)cannot find x

1

Page 24: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

Requirements

h(x)

Given h(x)cannot find x

1

h(x) isconstant

2

Page 25: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

Requirements

h(x)

Given h(x)cannot find x

1

h(x) isconstant

2

Can’t find x2

so h(x2)=h(x1)

3

Page 26: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

Requirement #3 - Humpty Dumpty Style

Page 27: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

Requirement #3 - Humpty Dumpty Style

Page 28: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

Requirement #3 - Humpty Dumpty Style

≠ ≠

≠ ≠ .........

Page 29: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

so how does it work?

Page 30: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

‘hello’

Page 31: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

5d41402abc4b2a76b9719d911017c592

Page 32: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

we’re going to focus on MD5

Page 33: Hash Functions, the MD5 Algorithm and the Future (SHA-3)
Page 34: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

1. Convert ‘x’ to binary

Page 35: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

‘hello’ 0110100001100101011011000110110001101111

Page 36: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

1. Convert ‘x’ to binary2. Pad ‘x’ so that size of x (mod 512) = 0

Page 37: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

0110100001100101011011000110110001101111

1

0000000000 0000000000 0000000000 0000000000 0000000000

0000000000 0000000000 0000000000 0000000000 0000000000

0000000000 0000000000 0000000000 0000000000 0000000000

0000000000 0000000000 0000000000 0000000000 0000000000

0000000000 0000000000 0000000000 0000000000 0000000000

0000000000 0000000000 0000000000 0000000000 0000000000

0000000000 0000000000 0000000000 0000000000 0000000000

0000000000 0000000000 0000000000 0000000000 0000000000

0000000000 0000000000 0000000000 0000000000 000000000000000

0000000000101000

‘hello’ in binary

Page 38: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

0110100001100101011011000110110001101111

1

0000000000 0000000000 0000000000 0000000000 0000000000

0000000000 0000000000 0000000000 0000000000 0000000000

0000000000 0000000000 0000000000 0000000000 0000000000

0000000000 0000000000 0000000000 0000000000 0000000000

0000000000 0000000000 0000000000 0000000000 0000000000

0000000000 0000000000 0000000000 0000000000 0000000000

0000000000 0000000000 0000000000 0000000000 0000000000

0000000000 0000000000 0000000000 0000000000 0000000000

0000000000 0000000000 0000000000 0000000000 000000000000000

0000000000101000

‘hello’ in binary

add ‘1’

Page 39: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

0110100001100101011011000110110001101111

1

0000000000 0000000000 0000000000 0000000000 0000000000

0000000000 0000000000 0000000000 0000000000 0000000000

0000000000 0000000000 0000000000 0000000000 0000000000

0000000000 0000000000 0000000000 0000000000 0000000000

0000000000 0000000000 0000000000 0000000000 0000000000

0000000000 0000000000 0000000000 0000000000 0000000000

0000000000 0000000000 0000000000 0000000000 0000000000

0000000000 0000000000 0000000000 0000000000 0000000000

0000000000 0000000000 0000000000 0000000000 000000000000000

0000000000101000

‘hello’ in binary

add ‘1’

0’s until x mod 512 = 496

Page 40: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

0110100001100101011011000110110001101111

1

0000000000 0000000000 0000000000 0000000000 0000000000

0000000000 0000000000 0000000000 0000000000 0000000000

0000000000 0000000000 0000000000 0000000000 0000000000

0000000000 0000000000 0000000000 0000000000 0000000000

0000000000 0000000000 0000000000 0000000000 0000000000

0000000000 0000000000 0000000000 0000000000 0000000000

0000000000 0000000000 0000000000 0000000000 0000000000

0000000000 0000000000 0000000000 0000000000 0000000000

0000000000 0000000000 0000000000 0000000000 000000000000000

0000000000101000

‘hello’ in binary

add ‘1’

0’s until x mod 512 = 496

add 16 bit binary representation of x

Page 41: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

xpadded = 0110100001100101011011000110110001101111 1 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000

0000000000 0000000000 0000000000 0000000000 00000 0000000000101000

Page 42: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

1. Convert ‘x’ to binary2. Pad ‘x’ so that size of x (mod 512) = 03. Break ‘x’ into 512 bit sub parts and 32 bit words

Page 43: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

01101000011001010110110001101100

0110100001100101011011000110110001101111 1 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000

0000000000 0000000000 0000000000 0000000000 00000 0000000000101000

W1 =

Page 44: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

1. Convert ‘x’ to binary2. Pad ‘x’ so that size of x (mod 512) = 03. Break ‘x’ into 512 bit sub parts and 32 bit words4. Assign values to k[i], r[i], w[g], h0, h1, h2 and h3.

Page 45: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

k[i] = |sin(i+1)| x 232 where ‘i’ is in radians

Page 46: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

k[i] = |sin(i+1)| x 232 where ‘i’ is in radians

r[i] = Various round shift amounts

Page 47: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

k[i] = |sin(i+1)| x 232 where ‘i’ is in radians

r[i] = Various round shift amounts

w[g] = Word number (0 – 15)

Page 48: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

k[i] = |sin(i+1)| x 232 where ‘i’ is in radians

r[i] = Various round shift amounts

w[g] = Word number (0 – 15)

h0 = a = 0x67452301

h1 = b = 0xEFCDAB89

h2 = c = 0x98BADCFE

h3 = d = 0x10325476

Page 49: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

1. Convert ‘x’ to binary2. Pad ‘x’ so that size of x (mod 512) = 03. Break ‘x’ into 512 bit sub parts and 32 bit words4. Assign values to k[i], r[i], w[g], h0, h1, h2 and h3.5. Perform 64 rounds on each sub part

Page 50: Hash Functions, the MD5 Algorithm and the Future (SHA-3)
Page 51: Hash Functions, the MD5 Algorithm and the Future (SHA-3)
Page 52: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

But first... binary operations!

Page 53: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

Page 54: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

∧(AKA ‘AND’)

Page 55: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

p q ∧T T

Page 56: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

p q ∧T T T

Page 57: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

p q ∧T T T

T F

Page 58: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

p q ∧T T T

T F F

Page 59: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

p q ∧T T T

T F F

F T

Page 60: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

p q ∧T T T

T F F

F T F

Page 61: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

p q ∧T T T

T F F

F T F

F F

Page 62: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

p q ∧T T T

T F F

F T F

F F F

Page 63: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

In binary:T = 1F = 0

Page 64: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

p q ∧T T T

T F F

F T F

F F F

Page 65: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

p q ∧T T T

T F F

F T F

F F F

bit 1 bit 2 ∧1 1 1

1 0 0

0 1 0

0 0 0

Page 66: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

Page 67: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

Page 68: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

bit 1 bit 2 ∨1 1 1

1 0 1

0 1 1

0 0 0

Page 69: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

“XOR is a type of logical disjunction on two operands that results in a value of “true” if and only if exactly one of the operands has a

value of ‘true’”

Page 70: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

bit 1 bit 2 ∨1 1 1

1 0 1

0 1 1

0 0 0

bit 1 bit 2 ⊕1 1 F

1 0 T

0 1 T

0 0 F

Page 71: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

¬

Page 72: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

¬(not)

Page 73: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

¬1=0¬0=1

Page 74: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

<<(bit shift)

Page 75: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

1 0 1 0 1 0

Page 76: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

0 1 0 1 0 0

0 1 0 1 0

0

Page 77: Hash Functions, the MD5 Algorithm and the Future (SHA-3)
Page 78: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

Remember:a,b,c,d are h0-3

Page 79: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

Operation A

f = (b ∧ c) ∨ (¬ b ∧ d)g = i

Page 80: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

Operation B

f = (d ∧ b) ∨ ((¬ d) ∧ c)g = (5i + 1) mod 16

Page 81: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

Operation C

f = b ⊕ c ⊕ dg = (3i + 5) mod 16

Page 82: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

Operation D

f = c ⊕ (b ∨ (¬ d))g = (7i) mod 16

Page 83: Hash Functions, the MD5 Algorithm and the Future (SHA-3)
Page 84: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

A B C D

Page 85: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

A B C D

Page 86: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

A B C D

Page 87: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

B

b + {(a + f + k[i] + w[g]) << r[i]}

Page 88: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

b + {(a + f + k[i] + w[g]) << r[i]}

h1 h0

Calculated inOperations A-D

|sin(i+1)| x 232 where ‘i’ is in radians

The gth word(32 bit chunk)

ith pre-designated shift

Page 89: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

After all 64 rounds...

Page 90: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

1. Convert ‘x’ to binary2. Pad ‘x’ so that size of x (mod 512) = 03. Break ‘x’ into 512 bit sub parts and 32 bit words4. Assign values to k[i], r[i], w[g], h0, h1, h2 and h3.5. Perform 64 rounds on each sub part6. Add a, b, c and d to register values

Page 91: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

h0 = h0 + ah1 = h1 + bh2 = h2 + ch3 = h3 + d

Page 92: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

1. Convert ‘x’ to binary2. Pad ‘x’ so that size of x (mod 512) = 03. Break ‘x’ into 512 bit sub parts and 32 bit words4. Assign values to k[i], r[i], w[g], h0, h1, h2 and h3.5. Perform 64 rounds on each sub part6. Add a, b, c and d to register values7. Append the register values to create digest

Page 93: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

128 bit digest

Page 94: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

‘hello’

Page 95: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

5d41402abc4b2a76b9719d911017c592

Page 96: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

So?

Page 97: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

Applications

Page 98: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

Applications

PasswordProtection

Page 99: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

Applications

PasswordProtection

MessageIntegrity

Page 100: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

Applications

PasswordProtection

MessageIntegrity

DigitalSignatures

Page 101: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

Password Protection

Page 102: Hash Functions, the MD5 Algorithm and the Future (SHA-3)
Page 103: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

‘password’MD5

When you registered...

5f4dcc3b5aa765d61d8327deb882cf99

Page 104: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

‘password’MD5

When you registered...

5f4dcc3b5aa765d61d8327deb882cf99

Data Base

Page 105: Hash Functions, the MD5 Algorithm and the Future (SHA-3)
Page 106: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

‘password’

Page 107: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

‘password’MD5

Page 108: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

‘password’MD5

5f4dcc3b5aa765d61d8327deb882cf99

Page 109: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

5f4dcc3b5aa765d61d8327deb882cf99

=

stored, hashed password?

Page 110: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

5f4dcc3b5aa765d61d8327deb882cf99

=

stored, hashed password?

No.

Give ‘incorrect password’ error

Page 111: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

5f4dcc3b5aa765d61d8327deb882cf99

=

stored, hashed password?

No.

Give ‘incorrect password’ error

Yes.

Let user into website

Page 112: Hash Functions, the MD5 Algorithm and the Future (SHA-3)
Page 113: Hash Functions, the MD5 Algorithm and the Future (SHA-3)
Page 114: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

Attacks

Page 115: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

Rainbow Tables

Page 116: Hash Functions, the MD5 Algorithm and the Future (SHA-3)
Page 117: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

omgyouarenevergoingtocrackthis

123

1c9fee8bd70a5afb630fc4f38e97123f

Page 118: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

omgyouarenevergoingtocrackthis

123

1c9fee8bd70a5afb630fc4f38e97123f

Page 119: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

and Brute Force Attacks

Page 120: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

Message Integrity

Page 121: Hash Functions, the MD5 Algorithm and the Future (SHA-3)
Page 122: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

digest

Page 123: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

File Verification

Page 124: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

File Verification

Guarding against corruption

Page 125: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

File Verification

Guarding against corruption

Proving you have something

before you release it

Page 126: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

Attacks

Page 127: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

Nostradamus Attack

Page 128: Hash Functions, the MD5 Algorithm and the Future (SHA-3)
Page 129: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

But on November 30th 2007...

Page 130: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

“We have used a Sony Playstation 3 to correctly predict the outcome of the 2008 US presidential elections. In order not to

influence the voters we keep our prediction secret, but commit to it by publishing its cryptographic hash on this website. The

document with the correct prediction and matching hash will be revealed after the elections.”

- Marc Stevens, Arjen Lenstra and Benne de Weger

Page 131: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

3D515DEAD7AA16560ABA3E9DF05CBC80

Page 132: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

But how could they have known!?!?

Page 133: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

But how could they have known!?!?They didn’t.

Page 134: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

3D515DEAD7AA16560ABA3E9DF05CBC80

Page 135: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

Digital Signatures

Page 136: Hash Functions, the MD5 Algorithm and the Future (SHA-3)
Page 137: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

MD5hash

Page 138: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

hashMD5

privatekey

encrypted

Page 139: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

hashMD5

privatekey

encryptedpublic

key

hash

Page 140: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

hashMD5

privatekey

encryptedpublic

key

hash

MD5

Page 141: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

hashMD5

privatekey

encryptedpublic

key

hash

MD5

Page 142: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

Attacks

Page 143: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

Collision Attack

Page 144: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

hash

privatekey

encryptedpublic

key

hash

MD5

Page 145: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

hash

encryptedpublic

key

hash✔

Changed Message

MD5

Page 146: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

Very Dangerous!

Page 147: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

Birthday Attack

Page 148: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

Relies on ‘Birthday Paradox’

Page 149: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

First we calculate the chance no one has the same birthday

Relies on ‘Birthday Paradox’

Page 150: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

p(1)=100%

Page 151: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

p(2)=(1)(1 - 1/365)

Page 152: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

p(3)=(1)(1 - 1/365)(1 - 2/365)

Page 153: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

To Generalize...

Page 154: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

365! .365n(365-n)!

P(n)=

Page 155: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

23 50% chance

Page 156: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

30 70.6% chance

Page 157: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

50 97% chance

Page 158: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

We can use this property to find out how many hashes must

be calculated to find a collision.

Page 159: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

Current State of MD5

Page 160: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

MD5 =

Page 161: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

MD5 = Broken

Page 162: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

The Future of Hashes

Page 163: Hash Functions, the MD5 Algorithm and the Future (SHA-3)
Page 164: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

Submissions were due on October 30th

Page 165: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

Currently Submitted

Page 166: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

BLAKE

Blue Midnight Wish

Boole

CubeHashEdon-R

EnRUPT

ESSENCE

Sgàil

Grøstl

Keccak

Maraca

MCSSHA-3

MD6

NaSHANKS2D

PonicSHAMATA

Skein

WaMM

Waterfall

Page 167: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

BLAKE

Blue Midnight Wish

Boole

CubeHashEdon-R

EnRUPT

ESSENCE

Sgàil

Grøstl

Keccak

Maraca

MCSSHA-3

MD6

NaSHANKS2D

PonicSHAMATA

Skein

WaMM

Waterfall

Page 168: Hash Functions, the MD5 Algorithm and the Future (SHA-3)
Page 169: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

Thank you for coming!

Page 170: Hash Functions, the MD5 Algorithm and the Future (SHA-3)

Any Questions?