the grindahl hash functions
play

The Grindahl hash functions Sren S. Thomsen joint work with Lars - PowerPoint PPT Presentation

Outline Introduction Grindahl Design considerations Concluding remarks The Grindahl hash functions Sren S. Thomsen joint work with Lars R. Knudsen Christian Rechberger Fast Software Encryption March 2628, 2007 Luxembourg 1 / 17


  1. Outline Introduction Grindahl Design considerations Concluding remarks The Grindahl hash functions Søren S. Thomsen joint work with Lars R. Knudsen Christian Rechberger Fast Software Encryption March 26–28, 2007 Luxembourg 1 / 17

  2. Outline Introduction Grindahl Design considerations Concluding remarks 1 Introduction 2 Grindahl 3 Design considerations 4 Concluding remarks 2 / 17

  3. Outline Introduction Grindahl Design considerations Concluding remarks MD4-style hash functions Many hash functions; MD4, MD5, RIPE-MD, SHA-1, . . . n -bit output, n -bit state Simple (fast) state update Repeat many times 3 / 17

  4. Outline Introduction Grindahl Design considerations Concluding remarks Attack methods Local collisions: Introduce difference “Undo” difference as quickly as possible (probabilistic) Small difference means behaviour is more predictable Success with high probability 4 / 17

  5. Outline Introduction Grindahl Design considerations Concluding remarks Thoughts behind our design Ensure quick diffusion (in both directions) Limited control over differences (All) collision trails are wide Block cipher techniques 5 / 17

  6. Outline Introduction Grindahl Design considerations Concluding remarks Grindahl-256 Based on Rijndael block cipher 256-bit output State: 4 × 13 matrix of bytes (initially all zero) SubBytes and MixColumns as in Rijndael ShiftRows rotates right by 1 , 2 , 4 , 10 positions 6 / 17

  7. Outline Introduction Grindahl Design considerations Concluding remarks Grindahl-256: round function 4-byte message block replaces first state column New operation: AddConstant. Flips last bit of last byte Do one round: AddConstant, SubBytes, ShiftRows, MixColumns Round function a permutation → invertible 7 / 17

  8. Outline Introduction Grindahl Design considerations Concluding remarks Grindahl-256: output After last message block, do 8 more (“blank”) rounds (permutation) Output right-most 8 columns 8 / 17

  9. Outline Introduction Grindahl Design considerations Concluding remarks Grindahl-256: ShiftRows Why change ShiftRows? Improve diffusion speed Every state byte depends on every message byte after 4 rounds 9 / 17

  10. Outline Introduction Grindahl Design considerations Concluding remarks How a message block affects the state Message injected: 10 / 17

  11. Outline Introduction Grindahl Design considerations Concluding remarks How a message block affects the state After ShiftRows (1st round): 10 / 17

  12. Outline Introduction Grindahl Design considerations Concluding remarks How a message block affects the state After MixColumns (1st round): 10 / 17

  13. Outline Introduction Grindahl Design considerations Concluding remarks How a message block affects the state After ShiftRows (2nd round): 10 / 17

  14. Outline Introduction Grindahl Design considerations Concluding remarks How a message block affects the state After MixColumns (2nd round): 10 / 17

  15. Outline Introduction Grindahl Design considerations Concluding remarks How a message block affects the state After ShiftRows (3rd round): 10 / 17

  16. Outline Introduction Grindahl Design considerations Concluding remarks How a message block affects the state After MixColumns (3rd round): 10 / 17

  17. Outline Introduction Grindahl Design considerations Concluding remarks How a message block affects the state Wiping first column: 10 / 17

  18. Outline Introduction Grindahl Design considerations Concluding remarks How a message block affects the state After ShiftRows (4th round): 10 / 17

  19. Outline Introduction Grindahl Design considerations Concluding remarks How a message block affects the state After MixColumns (4th round): 10 / 17

  20. Outline Introduction Grindahl Design considerations Concluding remarks Grindahl-256: AddConstant Why AddConstant? Without AddConstant: 13 equal columns invariant a a a a a a a a a a a a a b b b b b b b b b b b b b c c c c c c c c c c c c c d d d d d d d d d d d d d 11 / 17

  21. Outline Introduction Grindahl Design considerations Concluding remarks Grindahl-256: blank rounds Why 8 blank rounds? 4 rounds required to make output depend on last block Security margin (Chicken-hash) 12 / 17

  22. Outline Introduction Grindahl Design considerations Concluding remarks Grindahl-256: columns Why 13 columns? At least 10 columns, otherwise birthday attack Round function invertible → meet-in-the-middle Hence, (2nd) preimage below 2 n (claim 2 n / 2 ) (Chicken-hash again) 13 / 17

  23. Outline Introduction Grindahl Design considerations Concluding remarks Grindahl-256: diffusion Collision requires intermediate state with ≥ half the bytes active Internal collision requires > 4 input rounds 14 / 17

  24. Outline Introduction Grindahl Design considerations Concluding remarks Grindahl-256: speed Optimisations known from AES Many trade-offs, good performance across platforms Low memory requirements Rough comparison with crypto++ (Pentium 4 impl.): Function Relative time/byte Grindahl-256 1.0 AES-128 ∼ 1.0 SHA-256 ∼ 1.4 15 / 17

  25. Outline Introduction Grindahl Design considerations Concluding remarks Concluding remarks We propose the Grindahl hash functions two instances, Grindahl-256 and Grindahl-512 large class of hash functions (highly parameterizable) can also be used as compression function Some properties are quick diffusion high degree of non-linearity fast implementations across platforms implementation research “reusable” from the AES low memory requirements 16 / 17

  26. Outline Introduction Grindahl Design considerations Concluding remarks Thank you for listening! 17 / 17

Recommend


More recommend