computer aided cryptographic proofs
play

Computer-aided cryptographic proofs Gilles Barthe MPI-SP , Germany - PowerPoint PPT Presentation

Computer-aided cryptographic proofs Gilles Barthe MPI-SP , Germany IMDEA Software Institute, Spain Computer-aided cryptography Develop tool-assisted methodologies for helping the design, analysis, and implementation of cryptographic


  1. Computer-aided cryptographic proofs Gilles Barthe MPI-SP , Germany IMDEA Software Institute, Spain

  2. Computer-aided cryptography Develop tool-assisted methodologies for helping the design, analysis, and implementation of cryptographic constructions (primitives and protocols) Goals: ◮ Automated analysis of (symbolic or computational) security ◮ Independently verifiable proofs of (computational) security ◮ Verified implementations ◮ New designs and better implementations ◮ etc Building on formal methods ◮ program analysis and verification/program synthesis ◮ compilation (certifying compilation/verified compilation) ◮ logic ◮ etc

  3. Potential benefits Formal methods for cryptography ◮ higher assurance ◮ smaller gap between provable security and crypto engineering ◮ new proof techniques Cryptography for formal methods ◮ Challenging and non-standard examples ◮ New theories and applications

  4. Challenges ◮ requirements: probabilistic guarantees, adversaries ◮ analysis: composition of two secure systems need not be secure, lack of proof methods for individual components, proofs are overly complex when methods exist ◮ implementation and deployment: security not preserved by refinement, legacy, standardization, side-channels

  5. Modern cryptography Shannon ’49 • Mathematical proof of security Perfect secrecy is impossible • Diffie & Hellman ’76 • Computational security • Asymptotic guarantees PPT adversary has negligible advantage Goldwasser & Micali’82 Yao’82 Bellare & Rogaway ’94 • Concrete bounds Adversary advantage to win in time t is ≤ p

  6. Reductionist proof Primitive Attack Generic Black-box construction reduction Scheme Attack

  7. Public-key encryption Algorithms ( K , E pk , D sk ) ◮ E probabilistic ◮ D deterministic and partial Key generation If ( sk , pk ) is a valid key pair, Public Secret key key D sk ( E pk ( m )) = m hello rwxtf hello Encryption Decryption

  8. Indistinguishability Game INDCPA ( A ) ( sk , pk ) ← K (); ( m 0 , m 1 ) ← A 1 ( pk ); ← { 0 , 1 } ; b $ c ⋆ ← E pk ( m b ); b ′ ← A 2 ( c ⋆ ); return ( b ′ = b )

  9. Indistinguishability Game INDCPA ( A ) ( sk , pk ) ← K (); ( m 0 , m 1 ) ← A 1 ( pk ); b ← { 0 , 1 } ; $ c ⋆ ← E pk ( m b ); b ′ ← A 2 ( c ⋆ ); return ( b ′ = b )

  10. Indistinguishability Game INDCPA ( A ) ( sk , pk ) ← K (); ( m 0 , m 1 ) ← A 1 ( pk ); b ← { 0 , 1 } ; $ c ⋆ ← E pk ( m b ); b ′ ← A 2 ( c ⋆ ); return ( b ′ = b ) m 0 m 1

  11. Indistinguishability Game INDCPA ( A ) ( sk , pk ) ← K (); $ ( m 0 , m 1 ) ← A 1 ( pk ); b ← { 0 , 1 } ; $ b c ⋆ ← E pk ( m b ); b ′ ← A 2 ( c ⋆ ); return ( b ′ = b ) m 0 m 1

  12. Indistinguishability m b Game INDCPA ( A ) ( sk , pk ) ← K (); $ ( m 0 , m 1 ) ← A 1 ( pk ); b ← { 0 , 1 } ; $ b c ⋆ ← E pk ( m b ); b ′ ← A 2 ( c ⋆ ); return ( b ′ = b ) m 0 m 1

  13. Indistinguishability m b Game INDCPA ( A ) ( sk , pk ) ← K (); E pk $ ( m 0 , m 1 ) ← A 1 ( pk ); c ⋆ b ← { 0 , 1 } ; $ b c ⋆ ← E pk ( m b ); b ′ ← A 2 ( c ⋆ ); return ( b ′ = b ) m 0 m 1

  14. Indistinguishability m b Game INDCPA ( A ) ( sk , pk ) ← K (); E pk $ ( m 0 , m 1 ) ← A 1 ( pk ); c ⋆ b ← { 0 , 1 } ; $ b c ⋆ ← E pk ( m b ); b ′ ← A 2 ( c ⋆ ); return ( b ′ = b ) m 0 c ⋆ m 1

  15. Indistinguishability m b Game INDCPA ( A ) ( sk , pk ) ← K (); E pk $ ( m 0 , m 1 ) ← A 1 ( pk ); c ⋆ b ← { 0 , 1 } ; $ b c ⋆ ← E pk ( m b ); b ′ ← A 2 ( c ⋆ ); return ( b ′ = b ) m 0 c ⋆ b ′ m 1

  16. Indistinguishability m b Game INDCPA ( A ) ( sk , pk ) ← K (); E pk $ ( m 0 , m 1 ) ← A 1 ( pk ); c ⋆ b ← { 0 , 1 } ; $ b c ⋆ ← E pk ( m b ); ? = b ′ ← A 2 ( c ⋆ ); return ( b ′ = b ) m 0 c ⋆ b ′ m 1

  17. Indistinguishability m b Game INDCPA ( A ) ( sk , pk ) ← K (); E pk $ ( m 0 , m 1 ) ← A 1 ( pk ); c ⋆ b ← { 0 , 1 } ; $ b c ⋆ ← E pk ( m b ); ? = b ′ ← A 2 ( c ⋆ ); return ( b ′ = b ) m 0 c ⋆ b ′ m 1 � � − 1 b ′ = b � � � � � Pr INDCPA ( A ) small � � 2 �

  18. One-way trapdoor permutations Algorithms ( K , f pk , f − 1 sk ) ◮ f pk and f − 1 sk deterministic Key generation If ( sk , pk ) is a valid key pair, Public Secret f − 1 key key sk ( f pk ( m )) = m hello rwxtf hello Encryption Decryption

  19. One-way trapdoor permutations Game OW ( I ) ( sk , pk ) ← K (); ← { 0 , 1 } n ; y $ x ⋆ ← f pk ( y ); y ′ ← I ( x ⋆ ); return ( y ′ = y )

  20. One-way trapdoor permutations $ y Game OW ( I ) ( sk , pk ) ← K (); ← { 0 , 1 } n ; y $ x ⋆ ← f pk ( y ); y ′ ← I ( x ⋆ ); return ( y ′ = y )

  21. One-way trapdoor permutations $ f pk x ⋆ y Game OW ( I ) ( sk , pk ) ← K (); ← { 0 , 1 } n ; y $ x ⋆ ← f pk ( y ); y ′ ← I ( x ⋆ ); return ( y ′ = y )

  22. One-way trapdoor permutations $ f pk x ⋆ y Game OW ( I ) ( sk , pk ) ← K (); ← { 0 , 1 } n ; y $ x ⋆ ← f pk ( y ); x ⋆ y ′ ← I ( x ⋆ ); return ( y ′ = y )

  23. One-way trapdoor permutations $ f pk x ⋆ y Game OW ( I ) ( sk , pk ) ← K (); ← { 0 , 1 } n ; y $ x ⋆ ← f pk ( y ); y ′ x ⋆ y ′ ← I ( x ⋆ ); return ( y ′ = y )

  24. One-way trapdoor permutations $ f pk x ⋆ y Game OW ( I ) ? = ( sk , pk ) ← K (); ← { 0 , 1 } n ; y $ x ⋆ ← f pk ( y ); y ′ x ⋆ y ′ ← I ( x ⋆ ); return ( y ′ = y )

  25. One-way trapdoor permutations $ f pk x ⋆ y Game OW ( I ) ? = ( sk , pk ) ← K (); ← { 0 , 1 } n ; y $ x ⋆ ← f pk ( y ); y ′ x ⋆ y ′ ← I ( x ⋆ ); return ( y ′ = y ) y ′ = y � � Pr OW ( I ) small

  26. Optimal Asymmetric Encryption Padding Encryption E OAEP ( pk ) ( m ) : ← { 0 , 1 } k 0 ; r $ s ← G ( r ) ⊕ ( m � 0 k 1 ); t ← H ( s ) ⊕ r ; Decryption D OAEP ( sk ) ( c ) : ( s , t ) ← f − 1 return f pk ( s � t ) sk ( c ); r ← t ⊕ H ( s ); if ([ s ⊕ G ( r )] k 1 = 0 k 1 ) then m ← [ s ⊕ G ( r )] k Oracle H ( x ) : else m ← ⊥ ; if x / ∈ L then return m ← { 0 , 1 } k ; r $ L ← ( x , r ) :: L ; return L [ x ]; ⊕ exclusive or � concatenation [ · ] projection 0 zero bitstring

  27. OAEP: provable security Game INDCCA ( A ) Game SPDOW ( I ) ( sk , pk ) ← K (); ( sk , pk ) ← K (); ( m 0 , m 1 ) ← A 1 ( pk ); ← { 0 , 1 } k 2 ; z ← { 0 , 1 } k 3 ; y $ $ ← { 0 , 1 } ; b $ x ⋆ ← f pk ( y � z ); c ⋆ ← E pk ( m b ); Y ′ ← I ( x ⋆ ); b ′ ← A 2 ( c ⋆ ); return ( y ∈ Y ′ ) return ( b ′ = b ) FOR ALL IND-CCA adversary A against ( K , E OAEP , D OAEP ) , THERE EXISTS a SPDOW adversary I against ( K , f , f − 1 ) st � Pr IND-CCA ( A ) [ b ′ = b ] − 1 � ≤ � � 2 Pr SPDOW ( I ) [ y ∈ Y ′ ] + 3 q D q G + q 2 D + 4 q D + q G + 2 q D 2 k 0 2 k 1 and t I ≤ t A + q D q G q H T f

  28. OAEP: provable security Shoup Bellare, Hofheinz, Kiltz Bellare and Rogaway Pointcheval 1994 2001 2004 2009 2011 Fujisaki, Okamoto, Pointcheval, Stern BGLZ 1994 Purported proof of chosen-ciphertext security 2001 1994 proof gives weaker security; desired security holds ◮ under stronger assumptions ◮ for a modified scheme 2004 Filled gaps in 2001 proof 2009 Security definition needs to be clarified 2011 Fills gaps in 2004 proof

  29. Example: Bellare and Rogaway 1993 encryption Game INDCPA ( A ) : Encryption E pk ( m ) : ← { 0 , 1 } ℓ ; ( sk , pk ) ← K ( ); r $ ( m 0 , m 1 ) ← A 1 ( pk ); s ← H ( r ) ⊕ m ; b ← { 0 , 1 } ; y ← f pk ( r ) � s ; $ c ⋆ ← E pk ( m b ); return y b ′ ← A 2 ( c ⋆ ); return ( b ′ = b ) For every adversary A , there exists an inverter I st � � − 1 b ′ = b y ′ = y � � � � � � � Pr INDCPA ( A ) � ≤ Pr OW ( I ) � � 2

  30. Proof Game hopping technique Game G ′ : Game G : Game INDCPA : Game OW : ( sk , pk ) ← K (); ( sk , pk ) ← K (); ( sk , pk ) ← K (); ( sk , pk ) ← K (); ( m 0 , m 1 ) ← A 1 ( pk ); ( m 0 , m 1 ) ← A 1 ( pk ); ( m 0 , m 1 ) ← A 1 ( pk ); ← { 0 , 1 } ℓ ; $ y b $ b $ ← { 0 , 1 } ; ← { 0 , 1 } ; y ′ ← I ( f pk ( y )); b $ ← { 0 , 1 } ; c ⋆ ← E pk ( m b ); c ⋆ ← E pk ( m b ); c ⋆ ← E pk ( m b ); return y = y ′ b ′ ← A 2 ( c ⋆ ); b ′ ← A 2 ( c ⋆ ); b ′ ← A 2 ( c ⋆ ); Adversary I ( x ) : return ( b ′ = b ) return ( b ′ = b ) return ( b ′ = b ) ( m 0 , m 1 ) ← A 1 ( pk ); Encryption E pk ( m ) : Encryption E pk ( m ) : ← { 0 , 1 } k ; s $ Encryption E pk ( m ) : $ $ c ⋆ ← x � s ; ← { 0 , 1 } ℓ ; ← { 0 , 1 } ℓ ; r r ← { 0 , 1 } ℓ ; $ r b ′ ← A 2 ( c ⋆ ); ← { 0 , 1 } k ; ← { 0 , 1 } k ; h $ s $ h ← H ( r ); y ′ ← [ z ∈ L A | f pk ( z )= x ]; s ← h ⊕ m ; s ← h ⊕ m ; h ← s ⊕ m ; return y ′ c ← f pk ( r ) � s ; c ← f pk ( r ) � s ; c ← f pk ( r ) � s ; return c return c return c 1. For each hop ◮ prove validity of pRHL judgment ◮ derive probability claims ◮ (possibly) resolve some probability expressions using pHL 2. Obtain security bound by combining claims 3. Check execution time of constructed adversary

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