generic related key attacks for hmac
play

Generic Related-key Attacks for HMAC Thomas Peyrin, Yu Sasaki and - PowerPoint PPT Presentation

Introduction A generic related-key attack on HMAC Conclusion Generic Related-key Attacks for HMAC Thomas Peyrin, Yu Sasaki and Lei Wang Nanyang Technological University - Singapore NTT - Japan Asiacrypt 2012 Beijing, China - December 5, 2012


  1. Introduction A generic related-key attack on HMAC Conclusion Generic Related-key Attacks for HMAC Thomas Peyrin, Yu Sasaki and Lei Wang Nanyang Technological University - Singapore NTT - Japan Asiacrypt 2012 Beijing, China - December 5, 2012

  2. Introduction A generic related-key attack on HMAC Conclusion Outline Introduction What is HMAC Current state of HMAC A generic related-key attack on HMAC Distinguish-R attack Intermediate internal state recovery Existential forgery and distinguish-H attack Patching HMAC and Conclusion

  3. Introduction A generic related-key attack on HMAC Conclusion Outline Introduction What is HMAC Current state of HMAC A generic related-key attack on HMAC Distinguish-R attack Intermediate internal state recovery Existential forgery and distinguish-H attack Patching HMAC and Conclusion

  4. Introduction A generic related-key attack on HMAC Conclusion Outline Introduction What is HMAC Current state of HMAC A generic related-key attack on HMAC Distinguish-R attack Intermediate internal state recovery Existential forgery and distinguish-H attack Patching HMAC and Conclusion

  5. Introduction A generic related-key attack on HMAC Conclusion HMAC and NMAC (Bellare et al. - 1996) A MAC outputs an n -bit value from a k -bit key K and an arbitrary long message M . NMAC ( K 1 , K 2 , M ) = H ( K 2 , H ( K 1 , M ))

  6. Introduction A generic related-key attack on HMAC Conclusion HMAC and NMAC (Bellare et al. - 1996) A MAC outputs an n -bit value from a k -bit key K and an arbitrary long message M . HMAC ( K , M ) = H ( K ⊕ opad || H ( K ⊕ ipad || M ))

  7. Introduction A generic related-key attack on HMAC Conclusion HMAC and NMAC (Bellare et al. - 1996) A MAC outputs an n -bit value from a k -bit key K and an arbitrary long message M . HMAC ( K , M ) = H ( K ⊕ opad || H ( K ⊕ ipad || M ))

  8. Introduction A generic related-key attack on HMAC Conclusion Outline Introduction What is HMAC Current state of HMAC A generic related-key attack on HMAC Distinguish-R attack Intermediate internal state recovery Existential forgery and distinguish-H attack Patching HMAC and Conclusion

  9. Introduction A generic related-key attack on HMAC Conclusion Known dedicated attacks on HMAC Attack Key Setting Target Size #Rounds Comp. Ref. 2 121 . 5 Dist.-H Single key MD4 128 Full [KBPH06] 2 126 . 1 Dist.-H Single key MD5 128 33/64 [KBPH06] 2 97 Dist.-H Single Key MD5 128 Full [WYWZZ09] 2 228 . 6 Dist.-H Single key 3p HAVAL 256 Full [KBPH06] 2 253 . 9 Dist.-H Single key 4p HAVAL 256 102/128 [KBPH06] 2 109 Dist.-H Single key SHA0 160 Full [KBPH06] 2 154 . 9 Dist.-H Single key SHA1 160 43/80 [KBPH06] 2 153 . 5 Dist.-H Single key SHA1 160 50/80 [RR08] 2 158 . 74 Dist.-H Related Key SHA1 160 58/80 [RR08] 2 63 Inner key rec. Single Key MD4 128 Full [CY06] 2 84 Inner key rec. Single Key SHA0 160 Full [CY06] 2 32 Inner key rec. Single Key SHA1 64 34/80 [RR08] 2 122 Inner key rec. Single Key 3p HAVAL 256 Full [LCKSH08] 2 95 Full key rec. Single Key MD4 128 Full [FLN07] 2 77 Full key rec. Single Key MD4 128 Full [WOK08]

  10. Introduction A generic related-key attack on HMAC Conclusion Known generic attacks on HMAC Universal forgery attack costs 2 n computations (ideal) Existential forgery attack costs 2 l / 2 computations (not ideal) Distinguishing-R attack costs 2 l / 2 computations (not ideal) Distinguishing-H attack costs 2 l computations (ideal)

  11. Introduction A generic related-key attack on HMAC Conclusion Known generic attacks on HMAC Existential forgery attack costs 2 l / 2 computations (not ideal) The procedure • step 1: query 2 l / 2 messages and gather all pairs ( M , M ′ ) that collides on the output • step 2: for all colliding pairs, append an extra random message block M 1 and check if this new message pair ( M || M 1 , M ′ || M 1 ) collides as well. Pick one such pair. • step 3: append another extra random message block M 2 and query the MAC for message M || M 2 . Then it is equal to the MAC for message ( M ′ || M 2 )

  12. Introduction A generic related-key attack on HMAC Conclusion Known generic attacks on HMAC Generic Attack Key Setting Complexity 2 n Universal forgery Single Key 2 l / 2 Existential forgery Single Key 2 l / 2 Dist.-R Single Key 2 l Dist.-H Single Key

  13. Introduction A generic related-key attack on HMAC Conclusion Known generic attacks on HMAC Generic Attack Key Setting Complexity 2 n ? Universal forgery Related Key 2 l / 2 ? Existential forgery Related Key 2 l / 2 ? Dist.-R Related Key 2 l ? Dist.-H Related Key

  14. Introduction A generic related-key attack on HMAC Conclusion Outline Introduction What is HMAC Current state of HMAC A generic related-key attack on HMAC Distinguish-R attack Intermediate internal state recovery Existential forgery and distinguish-H attack Patching HMAC and Conclusion

  15. Introduction A generic related-key attack on HMAC Conclusion Outline Introduction What is HMAC Current state of HMAC A generic related-key attack on HMAC Distinguish-R attack Intermediate internal state recovery Existential forgery and distinguish-H attack Patching HMAC and Conclusion

  16. Introduction A generic related-key attack on HMAC Conclusion What weakness to attack ? NMAC

  17. Introduction A generic related-key attack on HMAC Conclusion What weakness to attack ? HMAC

  18. Introduction A generic related-key attack on HMAC Conclusion What weakness to attack ? HMAC (with key K )

  19. Introduction A generic related-key attack on HMAC Conclusion What weakness to attack ? HMAC (with key K ′ = K ⊕ ipad ⊕ opad )

  20. Introduction A generic related-key attack on HMAC Conclusion What weakness to attack ? HMAC (with key K ′ = K ⊕ ipad ⊕ opad )

  21. Introduction A generic related-key attack on HMAC Conclusion What to detect ? HMAC (with key K and arbitrary message)

  22. Introduction A generic related-key attack on HMAC Conclusion What to detect ? HMAC (with key K and n -bit message)

  23. Introduction A generic related-key attack on HMAC Conclusion What to detect ? HMAC (with key K and n -bit message)

  24. Introduction A generic related-key attack on HMAC Conclusion What to detect ? HMAC (with K and K ′ = K ⊕ ipad ⊕ opad and n -bit message)

  25. Introduction A generic related-key attack on HMAC Conclusion What to detect ? HMAC (with K and K ′ = K ⊕ ipad ⊕ opad and n -bit message)

  26. Introduction A generic related-key attack on HMAC Conclusion What to detect ? Functions f ( g ( x )) and g ( f ( x )) have a particular cycle structure: there is a 1-to-1 correspondence between cycles of f ( g ( x )) and g ( f ( x ))

  27. Introduction A generic related-key attack on HMAC Conclusion How to detect the cycle structure ? = ⇒ by measuring cycles length The game played (distinguishing-R in the related-key model): The attacker can query two oracles, F K and F K ′ , that are instantiated either with HMAC K and HMAC K ′ , or with two independent random functions R K and R K ′ . He must obtain non-negligible advantage in distinguishing the two cases: Adv ( A ) = | Pr [ A ( HMAC K , HMAC K ′ ) = 1 ] − Pr [ A ( R K , R K ′ ) = 1 ] |

  28. Introduction A generic related-key attack on HMAC Conclusion The attack First step (walk A) Start from an n -bit random input message, query F K , and keep querying as new message the MAC just received. Continue so for about 2 n / 2 + 2 n / 2 − 1 queries until getting a collision among the MACs received. If no collision is found, or if the collision occurred in the 2 n / 2 first queries, the attacker outputs 0.

  29. Introduction A generic related-key attack on HMAC Conclusion The attack Second step (walk B) Do the same for oracle F K ′ .

  30. Introduction A generic related-key attack on HMAC Conclusion The attack Third step (colliding walk A and walk B) If the cycle of walk A has the same length as the one from walk B, then output 1. Otherwise output 0.

  31. Introduction A generic related-key attack on HMAC Conclusion Results - distinguishing-R for HMAC with wide-pipe The advantage of the attacker is non-negligible and the complexity of the distinguisher is about 2 n / 2 + 2 n / 2 − 1 computations for each of the first and second phase, thus about 2 n / 2 + 1 computations in total . We implemented and verified the distinguisher . With SHA-2 truncated to 32 bits, we found two walks A and B that have the same cycle length of 79146 elements with 2 17 computations. The best previously known attack for HMAC instantiated with SHA-2 truncated to 32 bits required 2 128 computations. Old Generic New Generic Attack Key Setting Target Complexity Complexity 2 l / 2 2 n / 2 + 1 Dist.-R Related Key Wide-pipe

  32. Introduction A generic related-key attack on HMAC Conclusion Outline Introduction What is HMAC Current state of HMAC A generic related-key attack on HMAC Distinguish-R attack Intermediate internal state recovery Existential forgery and distinguish-H attack Patching HMAC and Conclusion

  33. Introduction A generic related-key attack on HMAC Conclusion How to recover the intermediate internal state ? We would like to know some of the intermediate internal state of HMAC K and HMAC K ′ Inside a colliding cycle for HMAC K and HMAC K ′ , the input or output queries to HMAC K are intermediate internal state of HMAC K ′ (and vice-versa) ... but we don’t know which one it is, so we need to synchronize the cycles

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend