tamper and leakage resilience in the split state model
play

Tamper and Leakage Resilience in the Split State Model Feng-Hao Liu - PowerPoint PPT Presentation

Tamper and Leakage Resilience in the Split State Model Feng-Hao Liu Anna Lysyanskaya Brown University I/O Access to a Device Secret s x x D s (x) D s (x) Device for D s ( ) User


  1. � � Tamper and Leakage Resilience in the Split State Model � Feng-Hao Liu � Anna Lysyanskaya � Brown University � �

  2. I/O Access to a Device Secret s x � x’ � D s (x) � D s (x’) � Device for D s ( Ÿ ) � User �

  3. Leakage/Side Channel Attack � [Kocher96,HSHCP+08…] Secret s Function g � Function g’ � g(s) � g'(s) � Device for D s ( Ÿ ) � Adversary �

  4. Tampering Attack [BS97,AARR02…] f(s ) � Secret s Function f � Device for D s ( Ÿ ) � Adversary �

  5. Continuous L+T Attack [LL10,KKS11] f(s ) � Secret s x � Function g � Function f � D s (x) � g(s) � Adversary � Device for D s ( Ÿ ) � Remark: in this model, computations (updates) happen � between the attacks, unlike the model of [MR04] �

  6. Previous Work • Tampering only [GLMMR04,DPW10,CKM11] � • Leakage only [AGV09,NS09,KV09, � DHLW10,BKKV10,DLWW11...] � • Combined attack: � – Negative results: [LL10] how to leak from the future if have no randomness, even in very restricted attack models � – Positive results: [KKS11] encryption and signatures if have fresh randomness on update �

  7. Where do you get fresh randomness while under attack?? �

  8. � Our Goal � • An architecture that can tolerate leakage and tampering attacks at the same time… � – without assuming an on-device source of randomness � – under a reasonable restriction on the adversary’s leakage and tampering power �

  9. � Our Main Result � • A compiler: given D, produces SecureD Compiler � Secret M Secret s Identical I/O behavior � • SecureD is leakage and tamper • resilient in the � split state model with a CRS � SecureD M ( Ÿ ) � To be defined � D s ( Ÿ ) �

  10. The Split State Model [DPW10,DLWW11,HL11…] � Secret M 1 Secret S Secret S Secret M 2 The two parts are attacked separately �

  11. Split State Model: Leakage Secret M 1 Functions g 1 , g 2 � g 1 (M 1 ), g 2 (M 2 ) � Secret M 2 Device for D M1,M2 ( Ÿ ) � Adversary �

  12. Split State Model: Tampering f 1 (M 1 ) � Secret M 1 Functions f 1 , f 2 � Secret M 2 f 2 (M 2 ) � Adversary � Device for D M1,M2 ( Ÿ ) �

  13. Towards Tamper-Resilience: � Non-Malleable Code [DPW10] � • Encode s into C = (M 1 ,M 2 ) s.t. tampering is useless! � • Non-malleable code [DPW10]: “mauling” the code does not reveal anything about the encoded secret � C � - unchanged � C=Encode(s) � s � Encode � Encode(s’) � - unrelated s �

  14. � Non-Malleable Code � • Formally: for all f in F, all s, s’, � Tamper(f,s) ≈ Tamper(f,s’) � ppt � “same” if f(c) = c, where c ç Encode(s) � Tamper(f,s) = � CRS � Decode(f(c)) otherwise � CRS � CRS � Impossible in general, but � • [DPW10] construct them in SS RO model, unbounded functions � • We construct them in SS CRS model, poly-sized functions �

  15. � � NM Code Protects from Tampering Attack [DPW10] C = Encode(s) Function f � Adversary’ s view � Decode(f(C)) � in real attack: � C’=Enc(000) Adversary’ s view � Function f � in a simulation: � Decode(f(C’)) �

  16. NM Code in the SS Model: � Our Construction � M 1 = sk � M 2 = (pk, C=Enc pk (s), π ) � Encode(s) = � • the encryption scheme is leakage-resilient � • unique pk for each sk, unique sk for each pk (*) � • π is a non-malleable (robust) NIZK PoK of sk � and the decryption of C � Robust NIZK PoK [DDOPS01]: even with access to a ZK simulator, Adv � can only produce proofs whose witnesses can be extracted � (similar to UC NIZK) �

  17. � � � � � Proof of Security of Our NM Code � Suppose this is not a NM code. Then there exist s 1 , s 2 , f=(f 1 ,f 2 ) � such that Tamper(f,s 1 ) can be distinguished from Tamper(f,s 2 ). � Use that to break encryption: � � pk � Reduction � Enc challenger: � leak � Adv. � CRS � (pk,sk)<-Gen(1 k ) � leak(sk) � s 1 ,s 2 ,f � i <- {1,2} � s 1 ,s 2 � Tamper(f,s i ) � C i <- Encrypt(s i ) � C i � i’ � i’ �

  18. � � � � Proof of Security of Our NM Code � “same” if f(c) = c, where c ç Encode(s) � Tamper(f,s) = � Suppose this is not a NM code. Then there exist s 1 , s 2 , f=(f 1 ,f 2 ) � Decode(f(c)) otherwise � such that Tamper(f,s 1 ) can be distinguished from Tamper(f,s 2 ). � (Hopefully) Use that to distinguish: (pk, C 1 =Enc pk (s 1 )) from (pk, C 2 =Enc pk (s 2 )): � don’ t need � Reduction computes Tamper(f,s i ) as follows: � Use ZK � M 1 = sk, M 2 = (pk,C i , π ) � simulator � � recall f = (f 1 ,f 2 ) � � M 2 ’ = (pk’,C’, π ’) = f 2 (M 2 ); � if M 2 ’ ≠ M 2 then: � � if π ’ invalid, output NULL � Robust � else extract (s’,sk’) from π ’ � NIZK Pok � � if sk’ = f 1 (M 1 ) output s’, else NULL � Use leakage � � else if M 2 ’=M 2 : if f 1 (M 1 )=sk output “same” else NULL � query here �

  19. � � � � Proof of Security of Our NM Code � Suppose this is not a NM code. Then there exist s 1 , s 2 , f=(f 1 ,f 2 ) � such that Tamper(f,s 1 ) can be distinguished from Tamper(f,s 2 ). � Use that to break encryption: � � pk � Reduction � Enc challenger: � leak � Adv. � CRS � (pk,sk)<-Gen(1 k ) � leak(sk) � s 1 ,s 2 ,f � i <- {1,2} � s 1 ,s 2 � Tamper(f,s i ) � C i � i’ � i’ �

  20. � � � � Proof of Security of Our NM Code � Suppose this is not a NM code. Then there exist s 1 , s 2 , f=(f 1 ,f 2 ) � such that Tamper(f,s 1 ) can be distinguished from Tamper(f,s 2 ). � Bonus!! Our NM code is also � Use that to break encryption: � leakage-resilient in SS model! � � pk � Reduction � Enc challenger: � leak � Adv. � CRS � (pk,sk)<-Gen(1 k ) � leak(sk) � s 1 ,s 2 ,f, g � i <- {1,2} � s 1 ,s 2 � Tamper(f,s i ), g(M 1 ), g(M 2 ) � C i � i’ � i’ �

  21. � LR NM Codes => L+T Resilience � • A compiler: given D, produces SecureD Compiler � Secret s Secret M 1 Identical I/O behavior � • SecureG is leakage and • tamper resilient in the � split state model with a CRS � Secret M 2 SecureD M1,M2 ( Ÿ ) � Defined � D s ( Ÿ ) �

  22. � Our L+T Resilient Compiler: � Construction 1 (Randomized) � Secret s Compiler � Secret M 1 (M 1 ,M 2 ) = Encode(s) using � the LR NM code � Secret M 2 D s ( Ÿ ) � SecureD M1,M2 (x): � � � s = Decode(M 1 ,M 2 ) � � � refresh: (M 1 ,M 2 ) <- Encode(s) � � � output D s (x) � Here use randomness �

  23. � Our L+T Resilient Compiler: � Construction 2 (Deterministic) � Secret s Compiler � Secret M 1 (M 1 ,M 2 ) = Encode(s,seed) using � the LR NM code � Secret M 2 D s ( Ÿ ) � SecureD M1,M2 (x): � (s,seed) = Decode(M 1 ,M 2 ) � rand, seed’ = PRG(seed) � refresh: (M 1 ,M 2 )= Encode(s,seed’) using rand as coins � output D s (x) �

  24. � CONCLUSION � Traded off perfect randomness for SS model: � �� � - got L+T resilience for EVERY functionality � �� � - after-the-fact leakage and tampering � resilience (solved open problems of [HL11]) � � - achieved simulation based security � Of independent interest: new NM code � (solved open problems of [DPW10]) �

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