how to sign with white boxed aes
play

How to Sign with White-Boxed AES Latincrypt 2019 Marc Fischlin - PowerPoint PPT Presentation

How to Sign with White-Boxed AES Latincrypt 2019 Marc Fischlin joint work with Helene Haagh 13. Oktober 2010 | Dr.Marc Fischlin | Kryptosicherheit | 1 Obfuscation unintelligible but functionally equivalent obfuscator program


  1. How to Sign with White-Boxed AES Latincrypt 2019 Marc Fischlin joint work with Helene Haagh 13. Oktober 2010 | Dr.Marc Fischlin | Kryptosicherheit | 1

  2. Obfuscation „ unintelligible “ but functionally equivalent obfuscator program program eval(function(p,a,c,k,e,d){e=function(c){return c};if(!''.replace(/^/,String)){while(c-- ){d[c]=k[c]||c}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c-- alert('Hello, World!') ){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('0(\'1, 2!\')',3,3,'alert|Hello|World'.split('|'),0,{})) Marc Fischlin | Latincrypt 2019 | October 3rd, 2019 | 2

  3. White-Boxing AES Chow, Eisen, Johnson, van Oorschot (SAC 2002) „ unintelligible “ but functionally equivalent obfuscator program program AES k (  ) WBAES k (  ) In particular, white-box version shall hide the secret key Marc Fischlin | Latincrypt 2019 | October 3rd, 2019 | 3

  4. White-Boxing is hard … WhibOx Contests in 2017 and 2019: Competitors only lasts days or weeks Even unclear if theoretical solutions exist at all …but not the topic of this talk Instead: How to use a good white-boxing Marc Fischlin | Latincrypt 2019 | October 3rd, 2019 | 4

  5. When to White-Box? protects key k against leakage on device schemes based on WBAES k (  ) AES k (  ) shared symmetric key k AES k (  ), WBAES -1 k (  ) = secret-public key pair fast signing with key k on device k (  ) AES k (  ) WBAES -1 slow(er) verification on server Marc Fischlin | Latincrypt 2019 | October 3rd, 2019 | 5

  6. How not to Sign with White-boxed AES Marc Fischlin | Latincrypt 2019 | October 3rd, 2019 | 6

  7. here: fixed-length, CBC-MAC as Signature Scheme? block-aligned messages m1 m2 m n    IV=0…0 … AES AES AES k k k c n c1 c2 signature s=c n Marc Fischlin | Latincrypt 2019 | October 3rd, 2019 | 7

  8. given signature s=c n Verification with WBAES and message m m1 m2 m n    IV=0…0 … WBAES -1 WBAES -1 WBAES -1 k k k c n c1 c2 verification succeeds if „ computing backwards “ yields m 1 Marc Fischlin | Latincrypt 2019 | October 3rd, 2019 | 8

  9. Adversary knows public WBAES -1 k and Security? thus gets to see all intermediate results! m1 m2 m n    IV=0…0 … WBAES -1 WBAES -1 WBAES -1 k k k c n c1 c2 verification succeeds if „ computing backwards “ yields m 1 Marc Fischlin | Latincrypt 2019 | October 3rd, 2019 | 9

  10. Breaking CBC here: with two message blocks m1 m2   IV=0…0 goal: create forgery for m1||m2 with probability 1 WBAES -1k WBAES -1k c1 c2 1. get signature for m1||x2, compute intermediate result AES k (m1) 2. get signature for x1||0..0, compute intermediate result AES k (x1) 3. get signature for x1|| (m2  AES k (m1)  AES k (x1)) This is also a valid signature for the (fresh) message m1||m2 Marc Fischlin | Latincrypt 2019 | October 3rd, 2019 | 10

  11. Signing with Full-Domain-Hashing Marc Fischlin | Latincrypt 2019 | October 3rd, 2019 | 11

  12. Full-Domain-Hash Signatures for WBAES AES k (  ) = secret signing key k (  ) = public verification key WBAES -1 ? = H(m) y H(m) AES k WBAES -1 k s s H = Hash function truncated to 128 Bits Marc Fischlin | Latincrypt 2019 | October 3rd, 2019 | 12

  13. Security Results for FDH-Signatures Delerablee, Lepoint, Paillier, Rivain Coron (Crypto 2000): Unpredictability game (SAC 2013): Adv(Forge)  q s  Adv(Unpred) k (  ) , WBAES -1 random r q s =#signature queries Problem: x  r trivial attack strategy against unpredictability, wins with prob 2 -64 after 2 64 WBAES evaluations AES k and no AES queries AES k (x) guarantees for 128-bit AES? Other problem: AES k (r) proof requires random oracle programming Marc Fischlin | Latincrypt 2019 | October 3rd, 2019 | 13

  14. CBC-Signatures with Random Oracles Revisiting idea of CBC-Signing, but this time using random oracle: Signature s=CBC k (H(m)) for H outputting multiple of 128 bits Verification: compute CBC backwards using H(m) CBC with Random-Oracle-Hashing: Adv(Forge)  q H  Adv(Unpred) + q H  (q H + q s )  2 -128 q H =#random oracle queries Problem with unpredictability inherent due to restricted input size of AES! Marc Fischlin | Latincrypt 2019 | October 3rd, 2019 | 14

  15. Correlation Intractability Marc Fischlin | Latincrypt 2019 | October 3rd, 2019 | 15

  16. Correlation Intractability k (  ) WBAES -1 according to some fixed (non-trivial) correlation criteria like  r 1 ,..,r R r 1 ,r 2 ,..r R are equal on leading 128-log R bits x AES k AES k (x) Suzuki, Tonien , Kurosawa, Toyota (ICISC’06): correlated r 1 , r 2 ,…, r R and AES k (r 1 ), AES k (r 2 ), …, AES k (r R ) generic upper bound (no WBAES input) of (q AES ) R  2 -128(R-1) after q AES AES queries example: R=4 with q AES =2 64 yields probability of less than 2 -128 Marc Fischlin | Latincrypt 2019 | October 3rd, 2019 | 16

  17. Correlation Intractability vs. Unpredictability  Correlation intractability (for R=2) Unpredictability  Correlation intractability Unpredictability for general block ciphers, unclear for AES Marc Fischlin | Latincrypt 2019 | October 3rd, 2019 | 17

  18. Signing with Chaining and Correlation Intractability Marc Fischlin | Latincrypt 2019 | October 3rd, 2019 | 18

  19. ROChain: Signing R=4 x = H(0|m) truncated to 125 bits X = H(1|s|m) truncated to 125 bits x X 0 00 1 00 x 0 01 X 1 01 x 0 10 X 1 10 x X 0 11 1 11 s=(AES k (x|000),…, AES k (x|011)) S= (AES k (X|100),…, AES k (X|111)) signature = ( s, S ) Marc Fischlin | Latincrypt 2019 | October 3rd, 2019 | 19

  20. recompute x and X, check each AES value, Verification R=4 & that pre-images in s resp. S are correlated x = H(0|m) truncated to 125 bits X = H(1|s|m) truncated to 125 bits x X 0 00 1 00 x 0 01 X 1 01 x 0 10 X 1 10 x X 0 11 1 11 s=(AES k (x|000),…, AES k (x|011)) S= (AES k (X|100),…, AES k (X|111)) signature = ( s, S ) Marc Fischlin | Latincrypt 2019 | October 3rd, 2019 | 20

  21. cannot query about valid s Security (Idea) for new x by corr.intractability x = H(0|m) truncated to 125 bits X = H(1|s|m) truncated to 125 bits x X 0 00 1 00 x 0 01 X 1 01 x 0 10 X 1 10 x X 0 11 1 11 s=(AES k (x|000),…, AES k (x|011)) S= (AES k (X|100),…, AES k (X|111)) most likely X* for m* different needs to re-use x from from all previous values, signing query or one of very few collisions (  2 6  q s ) infeasbile to find valid S* by corr.intr. Marc Fischlin | Latincrypt 2019 | October 3rd, 2019 | 21

  22. Security bound for ROChainSign Security bound for ROChainSign: 2  2 -113 + 3  2 -128 Adv(Forge)  2  Adv(Corr.Intr.) + q s in the non-programmable random oracle model Marc Fischlin | Latincrypt 2019 | October 3rd, 2019 | 22

  23. Extensions Correlation intractability can be used to give counter-based and nonce-based construction without random oracles but signatures become larger than in ROChainSig Example (R=4, signing 256-bit messages) Scheme Signature Size Random Oracle? ROChainSign 8 AES values non-programmable CountSign (using counter) 16 AES values no, but stateful NonceSign (using nonces) 32 AES values no, stateless Marc Fischlin | Latincrypt 2019 | October 3rd, 2019 | 23

  24. Conclusion Marc Fischlin | Latincrypt 2019 | October 3rd, 2019 | 24

  25. Conclusion (I) k (  ) computations hinders attacks Slowing down WBAES -1 similar to iterations in password-based hashing Marc Fischlin | Latincrypt 2019 | October 3rd, 2019 | 25

  26. Conclusion (II) Limited block length of AES causes trouble bypassing problems by switching to correlation intractability assumption constructions with reasonable bounds in non-programmable random oracle model and in standard model with nonces (larger signatures) Thank you! Marc Fischlin | Latincrypt 2019 | October 3rd, 2019 | 26

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