Herding Hash Functions and the Nostradamus Attackorrd/HashFuncSeminar/OhadLutzky.pdf · 2012. 5....

38
Introduction The Diamond Structure How to herd a hash function Herding for Fun and Prophets Summary Herding Hash Functions and the Nostradamus Attack Presented by Ohad Lutzky, University of Haifa John Kelsey 1 Tadayoshi Kohno 2 1 National Institue of Standards and Technology 2 CSE Department, UC San Diego Cryptanalysis of Hash Functions Seminar, Spring 2011 John Kelsey, Tadayoshi Kohno Herding Hash Functions

Transcript of Herding Hash Functions and the Nostradamus Attackorrd/HashFuncSeminar/OhadLutzky.pdf · 2012. 5....

Page 1: Herding Hash Functions and the Nostradamus Attackorrd/HashFuncSeminar/OhadLutzky.pdf · 2012. 5. 18. · Commit to H = h[k,0]. You have plenty of time to do this. 2 Determine the

IntroductionThe Diamond Structure

How to herd a hash functionHerding for Fun and Prophets

Summary

Herding Hash Functions and the NostradamusAttack

Presented by Ohad Lutzky, University of Haifa

John Kelsey1 Tadayoshi Kohno2

1National Institue of Standards and Technology

2CSE Department, UC San Diego

Cryptanalysis of Hash Functions Seminar, Spring 2011

John Kelsey, Tadayoshi Kohno Herding Hash Functions

Page 2: Herding Hash Functions and the Nostradamus Attackorrd/HashFuncSeminar/OhadLutzky.pdf · 2012. 5. 18. · Commit to H = h[k,0]. You have plenty of time to do this. 2 Determine the

IntroductionThe Diamond Structure

How to herd a hash functionHerding for Fun and Prophets

Summary

Outline

1 IntroductionUsing hash functions for commitments

2 The Diamond StructureStructureBasic usageCost of construction

3 How to herd a hash functionAttack planA few fine details

4 Herding for Fun and ProphetsCommitting to an orderingVarious attacks

John Kelsey, Tadayoshi Kohno Herding Hash Functions

Page 3: Herding Hash Functions and the Nostradamus Attackorrd/HashFuncSeminar/OhadLutzky.pdf · 2012. 5. 18. · Commit to H = h[k,0]. You have plenty of time to do this. 2 Determine the

IntroductionThe Diamond Structure

How to herd a hash functionHerding for Fun and Prophets

Summary

Commitments

Outline

1 IntroductionUsing hash functions for commitments

2 The Diamond StructureStructureBasic usageCost of construction

3 How to herd a hash functionAttack planA few fine details

4 Herding for Fun and ProphetsCommitting to an orderingVarious attacks

John Kelsey, Tadayoshi Kohno Herding Hash Functions

Page 4: Herding Hash Functions and the Nostradamus Attackorrd/HashFuncSeminar/OhadLutzky.pdf · 2012. 5. 18. · Commit to H = h[k,0]. You have plenty of time to do this. 2 Determine the

IntroductionThe Diamond Structure

How to herd a hash functionHerding for Fun and Prophets

Summary

Commitments

Using hash functions for commitments

Commit to knowledge of a message M

Do not reveal the message (for now)Solution: Reveal Hash(M)

Safety: Preimage resistance

John Kelsey, Tadayoshi Kohno Herding Hash Functions

Page 5: Herding Hash Functions and the Nostradamus Attackorrd/HashFuncSeminar/OhadLutzky.pdf · 2012. 5. 18. · Commit to H = h[k,0]. You have plenty of time to do this. 2 Determine the

IntroductionThe Diamond Structure

How to herd a hash functionHerding for Fun and Prophets

Summary

Commitments

Example: Uri Geller

Uri Geller Say:I, Uri Geller, have predicted many important predictions aboutthe distant future, as well as a closer event: The closing pricesof all stocks traded in the Tel Aviv Stock Exchange on the lastday of 2012.

Uri could place his predictions in an envelope in a safe.Instead, he provides the MD5 hash H of the entireprediction.

John Kelsey, Tadayoshi Kohno Herding Hash Functions

Page 6: Herding Hash Functions and the Nostradamus Attackorrd/HashFuncSeminar/OhadLutzky.pdf · 2012. 5. 18. · Commit to H = h[k,0]. You have plenty of time to do this. 2 Determine the

IntroductionThe Diamond Structure

How to herd a hash functionHerding for Fun and Prophets

Summary

Commitments

Wait, isn’t MD5 broken?

Collision-resistance for MD5 has been compromisedHowever, we only need preimage resistance for thisscheme...or do we?

John Kelsey, Tadayoshi Kohno Herding Hash Functions

Page 7: Herding Hash Functions and the Nostradamus Attackorrd/HashFuncSeminar/OhadLutzky.pdf · 2012. 5. 18. · Commit to H = h[k,0]. You have plenty of time to do this. 2 Determine the

IntroductionThe Diamond Structure

How to herd a hash functionHerding for Fun and Prophets

Summary

Commitments

Wait, isn’t MD5 broken?

Collision-resistance for MD5 has been compromisedHowever, we only need preimage resistance for thisscheme...or do we?

John Kelsey, Tadayoshi Kohno Herding Hash Functions

Page 8: Herding Hash Functions and the Nostradamus Attackorrd/HashFuncSeminar/OhadLutzky.pdf · 2012. 5. 18. · Commit to H = h[k,0]. You have plenty of time to do this. 2 Determine the

IntroductionThe Diamond Structure

How to herd a hash functionHerding for Fun and Prophets

Summary

StructureBasic usageCost of construction

Outline

1 IntroductionUsing hash functions for commitments

2 The Diamond StructureStructureBasic usageCost of construction

3 How to herd a hash functionAttack planA few fine details

4 Herding for Fun and ProphetsCommitting to an orderingVarious attacks

John Kelsey, Tadayoshi Kohno Herding Hash Functions

Page 9: Herding Hash Functions and the Nostradamus Attackorrd/HashFuncSeminar/OhadLutzky.pdf · 2012. 5. 18. · Commit to H = h[k,0]. You have plenty of time to do this. 2 Determine the

IntroductionThe Diamond Structure

How to herd a hash functionHerding for Fun and Prophets

Summary

StructureBasic usageCost of construction

h[-1]

h[0,0]

h[0,1]

h[0,2]

h[0,3]

h[0,4]

h[0,5]

h[0,6]

h[0,7]

h[1,0]

h[1,1]

h[1,2]

h[1,3]

h[2,0]

h[2,1]

h[3,0]

Figure: The diamond structure

John Kelsey, Tadayoshi Kohno Herding Hash Functions

Page 10: Herding Hash Functions and the Nostradamus Attackorrd/HashFuncSeminar/OhadLutzky.pdf · 2012. 5. 18. · Commit to H = h[k,0]. You have plenty of time to do this. 2 Determine the

IntroductionThe Diamond Structure

How to herd a hash functionHerding for Fun and Prophets

Summary

StructureBasic usageCost of construction

Applicable to Merkle-Damgård-style hashesEdges represent message blocksVertices (h[i, j]) represent hash valuesWidth of stages: 2k, 2k−1, . . . , 2, 1.

John Kelsey, Tadayoshi Kohno Herding Hash Functions

Page 11: Herding Hash Functions and the Nostradamus Attackorrd/HashFuncSeminar/OhadLutzky.pdf · 2012. 5. 18. · Commit to H = h[k,0]. You have plenty of time to do this. 2 Determine the

IntroductionThe Diamond Structure

How to herd a hash functionHerding for Fun and Prophets

Summary

StructureBasic usageCost of construction

Outline

1 IntroductionUsing hash functions for commitments

2 The Diamond StructureStructureBasic usageCost of construction

3 How to herd a hash functionAttack planA few fine details

4 Herding for Fun and ProphetsCommitting to an orderingVarious attacks

John Kelsey, Tadayoshi Kohno Herding Hash Functions

Page 12: Herding Hash Functions and the Nostradamus Attackorrd/HashFuncSeminar/OhadLutzky.pdf · 2012. 5. 18. · Commit to H = h[k,0]. You have plenty of time to do this. 2 Determine the

IntroductionThe Diamond Structure

How to herd a hash functionHerding for Fun and Prophets

Summary

StructureBasic usageCost of construction

Producing a suffix from an intermediate hash value

Suppose you’ve somehow reached the intermediate hashvalue h[0, 2].Append the blocks represented by the edges:

h[0, 2]→ h[1, 1]h[1, 1]→ h[2, 0]h[2, 0]→ h[3, 0]

Your new final hash value is h[3, 0].

John Kelsey, Tadayoshi Kohno Herding Hash Functions

Page 13: Herding Hash Functions and the Nostradamus Attackorrd/HashFuncSeminar/OhadLutzky.pdf · 2012. 5. 18. · Commit to H = h[k,0]. You have plenty of time to do this. 2 Determine the

IntroductionThe Diamond Structure

How to herd a hash functionHerding for Fun and Prophets

Summary

StructureBasic usageCost of construction

Outline

1 IntroductionUsing hash functions for commitments

2 The Diamond StructureStructureBasic usageCost of construction

3 How to herd a hash functionAttack planA few fine details

4 Herding for Fun and ProphetsCommitting to an orderingVarious attacks

John Kelsey, Tadayoshi Kohno Herding Hash Functions

Page 14: Herding Hash Functions and the Nostradamus Attackorrd/HashFuncSeminar/OhadLutzky.pdf · 2012. 5. 18. · Commit to H = h[k,0]. You have plenty of time to do this. 2 Determine the

IntroductionThe Diamond Structure

How to herd a hash functionHerding for Fun and Prophets

Summary

StructureBasic usageCost of construction

Cost of construction (cheaper than you’d expect)

Mapping 2k hash values down to 2k−1:Generate about 2n/2+1/2−k/2 candidates.Look for collisions.

Total work is about 2n/2+k/2+2.Parallelizable using technique by P. van Oorschot and M.Wiener.

John Kelsey, Tadayoshi Kohno Herding Hash Functions

Page 15: Herding Hash Functions and the Nostradamus Attackorrd/HashFuncSeminar/OhadLutzky.pdf · 2012. 5. 18. · Commit to H = h[k,0]. You have plenty of time to do this. 2 Determine the

IntroductionThe Diamond Structure

How to herd a hash functionHerding for Fun and Prophets

Summary

StructureBasic usageCost of construction

Employing cryptanalytic attacks

Use weaknesses in collision-resistance of the compressionfunctionAn algorithm which only works for an identical IV doesn’thelpAn algorithm which works for any known IV differenceworks bestAn algorithm which works for a subset of IV pairs is stilluseful

...if those pairs can be recognized efficiently.

John Kelsey, Tadayoshi Kohno Herding Hash Functions

Page 16: Herding Hash Functions and the Nostradamus Attackorrd/HashFuncSeminar/OhadLutzky.pdf · 2012. 5. 18. · Commit to H = h[k,0]. You have plenty of time to do this. 2 Determine the

IntroductionThe Diamond Structure

How to herd a hash functionHerding for Fun and Prophets

Summary

StructureBasic usageCost of construction

Precomputation of the prefix

The set of possible prefixes may be known and smallIf so, build the diamond directly from their intermediatehashes.

John Kelsey, Tadayoshi Kohno Herding Hash Functions

Page 17: Herding Hash Functions and the Nostradamus Attackorrd/HashFuncSeminar/OhadLutzky.pdf · 2012. 5. 18. · Commit to H = h[k,0]. You have plenty of time to do this. 2 Determine the

IntroductionThe Diamond Structure

How to herd a hash functionHerding for Fun and Prophets

Summary

Attack planA few fine details

Outline

1 IntroductionUsing hash functions for commitments

2 The Diamond StructureStructureBasic usageCost of construction

3 How to herd a hash functionAttack planA few fine details

4 Herding for Fun and ProphetsCommitting to an orderingVarious attacks

John Kelsey, Tadayoshi Kohno Herding Hash Functions

Page 18: Herding Hash Functions and the Nostradamus Attackorrd/HashFuncSeminar/OhadLutzky.pdf · 2012. 5. 18. · Commit to H = h[k,0]. You have plenty of time to do this. 2 Determine the

IntroductionThe Diamond Structure

How to herd a hash functionHerding for Fun and Prophets

Summary

Attack planA few fine details

Attack plan

1 Build the diamond structure. Commit to H = h[k, 0].You have plenty of time to do this.

2 Determine the prefix P: Wait for the event you werepredicting the results of.

3 Find a linking message: Search for a single-block messageM to append to P, s.t. the intermediate hash of P‖M is inthe search structure.

4 Produce the message: Use the search struction to find asuffix S s.t. hash(P‖M‖S) = H.

John Kelsey, Tadayoshi Kohno Herding Hash Functions

Page 19: Herding Hash Functions and the Nostradamus Attackorrd/HashFuncSeminar/OhadLutzky.pdf · 2012. 5. 18. · Commit to H = h[k,0]. You have plenty of time to do this. 2 Determine the

IntroductionThe Diamond Structure

How to herd a hash functionHerding for Fun and Prophets

Summary

Attack planA few fine details

Attack plan

1 Build the diamond structure. Commit to H = h[k, 0].You have plenty of time to do this.

2 Determine the prefix P: Wait for the event you werepredicting the results of.

3 Find a linking message: Search for a single-block messageM to append to P, s.t. the intermediate hash of P‖M is inthe search structure.

4 Produce the message: Use the search struction to find asuffix S s.t. hash(P‖M‖S) = H.

John Kelsey, Tadayoshi Kohno Herding Hash Functions

Page 20: Herding Hash Functions and the Nostradamus Attackorrd/HashFuncSeminar/OhadLutzky.pdf · 2012. 5. 18. · Commit to H = h[k,0]. You have plenty of time to do this. 2 Determine the

IntroductionThe Diamond Structure

How to herd a hash functionHerding for Fun and Prophets

Summary

Attack planA few fine details

Attack plan

1 Build the diamond structure. Commit to H = h[k, 0].You have plenty of time to do this.

2 Determine the prefix P: Wait for the event you werepredicting the results of.

3 Find a linking message: Search for a single-block messageM to append to P, s.t. the intermediate hash of P‖M is inthe search structure.

4 Produce the message: Use the search struction to find asuffix S s.t. hash(P‖M‖S) = H.

John Kelsey, Tadayoshi Kohno Herding Hash Functions

Page 21: Herding Hash Functions and the Nostradamus Attackorrd/HashFuncSeminar/OhadLutzky.pdf · 2012. 5. 18. · Commit to H = h[k,0]. You have plenty of time to do this. 2 Determine the

IntroductionThe Diamond Structure

How to herd a hash functionHerding for Fun and Prophets

Summary

Attack planA few fine details

Attack plan

1 Build the diamond structure. Commit to H = h[k, 0].You have plenty of time to do this.

2 Determine the prefix P: Wait for the event you werepredicting the results of.

3 Find a linking message: Search for a single-block messageM to append to P, s.t. the intermediate hash of P‖M is inthe search structure.

4 Produce the message: Use the search struction to find asuffix S s.t. hash(P‖M‖S) = H.

John Kelsey, Tadayoshi Kohno Herding Hash Functions

Page 22: Herding Hash Functions and the Nostradamus Attackorrd/HashFuncSeminar/OhadLutzky.pdf · 2012. 5. 18. · Commit to H = h[k,0]. You have plenty of time to do this. 2 Determine the

IntroductionThe Diamond Structure

How to herd a hash functionHerding for Fun and Prophets

Summary

Attack planA few fine details

Attack plan

1 Build the diamond structure. Commit to H = h[k, 0].You have plenty of time to do this.

2 Determine the prefix P: Wait for the event you werepredicting the results of.

3 Find a linking message: Search for a single-block messageM to append to P, s.t. the intermediate hash of P‖M is inthe search structure.

4 Produce the message: Use the search struction to find asuffix S s.t. hash(P‖M‖S) = H.

John Kelsey, Tadayoshi Kohno Herding Hash Functions

Page 23: Herding Hash Functions and the Nostradamus Attackorrd/HashFuncSeminar/OhadLutzky.pdf · 2012. 5. 18. · Commit to H = h[k,0]. You have plenty of time to do this. 2 Determine the

IntroductionThe Diamond Structure

How to herd a hash functionHerding for Fun and Prophets

Summary

Attack planA few fine details

Finding a linking message

We want to produce a final hash of H

Our diamond structure can get us from any hash value inh[0, ?] to H.Therefore, we need a linking block M, so that theintermediate hash of P‖M is in h[0, ?].Expected tries: 2n−k.Not necessary if we’ve created the diamond structure froma known set of prefixes.

John Kelsey, Tadayoshi Kohno Herding Hash Functions

Page 24: Herding Hash Functions and the Nostradamus Attackorrd/HashFuncSeminar/OhadLutzky.pdf · 2012. 5. 18. · Commit to H = h[k,0]. You have plenty of time to do this. 2 Determine the

IntroductionThe Diamond Structure

How to herd a hash functionHerding for Fun and Prophets

Summary

Attack planA few fine details

Outline

1 IntroductionUsing hash functions for commitments

2 The Diamond StructureStructureBasic usageCost of construction

3 How to herd a hash functionAttack planA few fine details

4 Herding for Fun and ProphetsCommitting to an orderingVarious attacks

John Kelsey, Tadayoshi Kohno Herding Hash Functions

Page 25: Herding Hash Functions and the Nostradamus Attackorrd/HashFuncSeminar/OhadLutzky.pdf · 2012. 5. 18. · Commit to H = h[k,0]. You have plenty of time to do this. 2 Determine the

IntroductionThe Diamond Structure

How to herd a hash functionHerding for Fun and Prophets

Summary

Attack planA few fine details

A note on length

Merkle-Damgård strengthening means message length istaken into account. (It’s appended to the last block)Messages are appended blockwiseTherefore, while not explicitly stated in the article, either:

P is assumed to be a fixed length, or padded to such alength.|P| will have to be an integer number of blocks, n · |B|.

The length of our final message will be:

|P|+ 1 · |B|︸ ︷︷ ︸Linking message

+(k + 1) · |B|︸ ︷︷ ︸|S|

...−1 · |B| if we don’t need a linking block.

...and if so, we can’t use it at all.

John Kelsey, Tadayoshi Kohno Herding Hash Functions

Page 26: Herding Hash Functions and the Nostradamus Attackorrd/HashFuncSeminar/OhadLutzky.pdf · 2012. 5. 18. · Commit to H = h[k,0]. You have plenty of time to do this. 2 Determine the

IntroductionThe Diamond Structure

How to herd a hash functionHerding for Fun and Prophets

Summary

Attack planA few fine details

Expandable messages

J. Kelsey and B. Schneier discuss (a, b)-expandablemessagesThis is a set of messages between lengths a and b with thesame intermediate hashCan be efficiently found for MD5, SHA1 and others, forabout twice the cost of brute-forceTo use all intermediate hash values h[?, ?] in the structure,a (1, k + 1)-expandable message must be produced at itsend.Otherwise, only the widest layer (2k) can be usedThis is a note of discrepancy, further analyzed by Ross andShrimpton.

John Kelsey, Tadayoshi Kohno Herding Hash Functions

Page 27: Herding Hash Functions and the Nostradamus Attackorrd/HashFuncSeminar/OhadLutzky.pdf · 2012. 5. 18. · Commit to H = h[k,0]. You have plenty of time to do this. 2 Determine the

IntroductionThe Diamond Structure

How to herd a hash functionHerding for Fun and Prophets

Summary

Attack planA few fine details

Total work done

Generating the diamond structure: 2n/2+k/2+2

Or less, with cryptographic attacks

Finding the linking message: 2n−k.For the example results (using expandable messages):

Work is 2n−k−1 + 2n/2+k/2+2 + k × 2n/2+1

k = n−53 is found to be ideal, giving W ≈ 2n−k.

John Kelsey, Tadayoshi Kohno Herding Hash Functions

Page 28: Herding Hash Functions and the Nostradamus Attackorrd/HashFuncSeminar/OhadLutzky.pdf · 2012. 5. 18. · Commit to H = h[k,0]. You have plenty of time to do this. 2 Determine the

IntroductionThe Diamond Structure

How to herd a hash functionHerding for Fun and Prophets

Summary

Attack planA few fine details

Results (theoretical)

Output Size Function k Suffix blocks Workn (n − 5)/3 k + lg(k) + 1 2n−k

128 MD5 41 48 287

160 SHA1 52 59 2108

192 Tiger 63 70 2129

256 SHA256 84 92 2172

512 Whirlpool 169 178 2343

John Kelsey, Tadayoshi Kohno Herding Hash Functions

Page 29: Herding Hash Functions and the Nostradamus Attackorrd/HashFuncSeminar/OhadLutzky.pdf · 2012. 5. 18. · Commit to H = h[k,0]. You have plenty of time to do this. 2 Determine the

IntroductionThe Diamond Structure

How to herd a hash functionHerding for Fun and Prophets

Summary

Attack planA few fine details

Making messages meaningful

Use Gideon Yuval’s trick (How to swindle Rabin, 1979)A block with many variation points can be used to generatemany equivalent-meaning messages for each diamondlayerSuffixes will be (much) longer, but not harder to findThis is made easier because we commit to meaning, notbits.

This prophecy/information has been/was broughtforth/to me by the heavens/angels...

John Kelsey, Tadayoshi Kohno Herding Hash Functions

Page 30: Herding Hash Functions and the Nostradamus Attackorrd/HashFuncSeminar/OhadLutzky.pdf · 2012. 5. 18. · Commit to H = h[k,0]. You have plenty of time to do this. 2 Determine the

IntroductionThe Diamond Structure

How to herd a hash functionHerding for Fun and Prophets

Summary

Committing to an orderingVarious attacks

Outline

1 IntroductionUsing hash functions for commitments

2 The Diamond StructureStructureBasic usageCost of construction

3 How to herd a hash functionAttack planA few fine details

4 Herding for Fun and ProphetsCommitting to an orderingVarious attacks

John Kelsey, Tadayoshi Kohno Herding Hash Functions

Page 31: Herding Hash Functions and the Nostradamus Attackorrd/HashFuncSeminar/OhadLutzky.pdf · 2012. 5. 18. · Commit to H = h[k,0]. You have plenty of time to do this. 2 Determine the

IntroductionThe Diamond Structure

How to herd a hash functionHerding for Fun and Prophets

Summary

Committing to an orderingVarious attacks

Commit to an ordering (Hash Router)

Prove (perhaps when gambling) to be able to predict theoutcome of a 32-entrant race.Commit to 32 hash outputs H0,H1, . . . ,H31.After the race is over, produce output strings S0, . . . , S31

Si describes the entrant in the race who finished ithHi = hash(Si)

Perform like so:Create a diamond structure herding to HWhen creating the diamond, start with entrant namesAppend strings “finishes 1st”, “finishes 2nd”, ..., and committo the resulting hashesWhen learning results, herd to H and append appropriatestring

John Kelsey, Tadayoshi Kohno Herding Hash Functions

Page 32: Herding Hash Functions and the Nostradamus Attackorrd/HashFuncSeminar/OhadLutzky.pdf · 2012. 5. 18. · Commit to H = h[k,0]. You have plenty of time to do this. 2 Determine the

IntroductionThe Diamond Structure

How to herd a hash functionHerding for Fun and Prophets

Summary

Committing to an orderingVarious attacks

1st place

2nd place

3rd place

4th place

5th place

6th place

7th place

8th place

Alice

Bob

Carol

Dave

Ed

Frank

George

Helen

Figure: A “Hash Router”

John Kelsey, Tadayoshi Kohno Herding Hash Functions

Page 33: Herding Hash Functions and the Nostradamus Attackorrd/HashFuncSeminar/OhadLutzky.pdf · 2012. 5. 18. · Commit to H = h[k,0]. You have plenty of time to do this. 2 Determine the

IntroductionThe Diamond Structure

How to herd a hash functionHerding for Fun and Prophets

Summary

Committing to an orderingVarious attacks

Outline

1 IntroductionUsing hash functions for commitments

2 The Diamond StructureStructureBasic usageCost of construction

3 How to herd a hash functionAttack planA few fine details

4 Herding for Fun and ProphetsCommitting to an orderingVarious attacks

John Kelsey, Tadayoshi Kohno Herding Hash Functions

Page 34: Herding Hash Functions and the Nostradamus Attackorrd/HashFuncSeminar/OhadLutzky.pdf · 2012. 5. 18. · Commit to H = h[k,0]. You have plenty of time to do this. 2 Determine the

IntroductionThe Diamond Structure

How to herd a hash functionHerding for Fun and Prophets

Summary

Committing to an orderingVarious attacks

Predicting the future the Uri Geller/Nostradamusattack

Claim psychic power / future tellingClaim higher understanding of science / economics“Prove” access to insider information

John Kelsey, Tadayoshi Kohno Herding Hash Functions

Page 35: Herding Hash Functions and the Nostradamus Attackorrd/HashFuncSeminar/OhadLutzky.pdf · 2012. 5. 18. · Commit to H = h[k,0]. You have plenty of time to do this. 2 Determine the

IntroductionThe Diamond Structure

How to herd a hash functionHerding for Fun and Prophets

Summary

Committing to an orderingVarious attacks

Steal credit for inventions

Periodically submit a hash to a digital timestamping serviceLearn of an amazing inventionCreate a message describing the invention, and make sureit hashes to a hash submitted in the pastTo save computation, create the diamond once, and simplyadd one block to the end every submission

John Kelsey, Tadayoshi Kohno Herding Hash Functions

Page 36: Herding Hash Functions and the Nostradamus Attackorrd/HashFuncSeminar/OhadLutzky.pdf · 2012. 5. 18. · Commit to H = h[k,0]. You have plenty of time to do this. 2 Determine the

IntroductionThe Diamond Structure

How to herd a hash functionHerding for Fun and Prophets

Summary

Committing to an orderingVarious attacks

Create tweakable signatures

Create a document to sign using a diamond structureThe “prefix” portion can later be modified, without changingthe hash value.

John Kelsey, Tadayoshi Kohno Herding Hash Functions

Page 37: Herding Hash Functions and the Nostradamus Attackorrd/HashFuncSeminar/OhadLutzky.pdf · 2012. 5. 18. · Commit to H = h[k,0]. You have plenty of time to do this. 2 Determine the

IntroductionThe Diamond Structure

How to herd a hash functionHerding for Fun and Prophets

Summary

Summary

Collision resistance is more important than you might think.Do not trust messages with wonky suffixes.When receiving a commitment, specify a rigid format.

John Kelsey, Tadayoshi Kohno Herding Hash Functions

Page 38: Herding Hash Functions and the Nostradamus Attackorrd/HashFuncSeminar/OhadLutzky.pdf · 2012. 5. 18. · Commit to H = h[k,0]. You have plenty of time to do this. 2 Determine the

IntroductionThe Diamond Structure

How to herd a hash functionHerding for Fun and Prophets

Summary

Created with

LATEX-BEAMER

Using mathserif, math font is eulervm

GraphvizVim

John Kelsey, Tadayoshi Kohno Herding Hash Functions