automatic proofs for symmetric encryption modes
play

Automatic Proofs for Symmetric Encryption Modes e 2 Pascal - PowerPoint PPT Presentation

Automatic Proofs for Symmetric Encryption Modes Automatic Proofs for Symmetric Encryption Modes e 2 Pascal Lafourcade 1 Yassine Lakhnech 1 Martin Gagn Reihaneh Safavi-Naini 2 1 Universit e Grenoble 1, CNRS, Verimag , FRANCE 2 Department of


  1. Automatic Proofs for Symmetric Encryption Modes Automatic Proofs for Symmetric Encryption Modes e 2 Pascal Lafourcade 1 Yassine Lakhnech 1 Martin Gagn´ Reihaneh Safavi-Naini 2 1 Universit´ e Grenoble 1, CNRS, Verimag , FRANCE 2 Department of Computer Science, University of Calgary, Canada 3rd Canada-France Workshop on Foundations & Practice of Security June 22, 2010 Toronto. 1 / 24

  2. Automatic Proofs for Symmetric Encryption Modes Motivations Indistinguishability and Symmetric Encryption Modes 2 / 24

  3. Automatic Proofs for Symmetric Encryption Modes Motivations Indistinguishability and Symmetric Encryption Modes 2 / 24

  4. Automatic Proofs for Symmetric Encryption Modes Motivations Indistinguishability and Symmetric Encryption Modes ECB CBC, OFB ... 2 / 24

  5. Automatic Proofs for Symmetric Encryption Modes Motivations Block Cipher Modes PRP E → Encryption Mode → IND-CPA NIST standard • Electronic Code Book (ECB) • Cipher Block Chaining (CBC) • Cipher FeedBack mode (CFB) • Output FeedBack (OFB), and • Counter mode (CTR). Others DMC,CBC-MAC, IACBC, IAPM, XCB ,TMAC, HCTR, HCH, EME, EME*, PEP, OMAC, TET, CMC, GCM, EAX, XEX, TAE, TCH, TBC, CCM, ABL4 3 / 24

  6. Automatic Proofs for Symmetric Encryption Modes Motivations Block Cipher Modes Example Cipher Block Chaining (CBC) C i = E ( P i ⊕ C i − 1 ) , C 0 = IV 4 / 24

  7. Automatic Proofs for Symmetric Encryption Modes Motivations CBC and others CBC CTR OFB CFB $ $ $ $ IV ← − U ; IV ← − U ; IV ← − U ; IV ← − U ; z 1 := IV ⊕ m 1 ; z 1 := E ( IV + 1); z 1 := E ( IV ); z 1 := E ( IV ); c 1 := E ( z 1 ); c 1 := m 1 ⊕ z 1 ; c 1 := m 1 ⊕ z 1 ; c 1 := m 1 ⊕ z 1 ; z 2 := c 1 ⊕ m 2 ; z 2 := E ( IV + 2); z 2 := E ( z 1 ); z 2 := E ( c 1 ); c 2 := E ( z 2 ); c 2 := m 2 ⊕ z 2 ; c 2 := m 2 ⊕ z 2 ; c 2 := m 2 ⊕ z 2 ; z 3 := c 2 ⊕ m 3 ; z 3 := E ( IV + 3); z 3 := E ( z 2 ); z 3 := E ( c 2 ); c 3 := E ( z 3 ); c 3 := m 3 ⊕ z 3 ; c 3 := m 3 ⊕ z 3 ; c 3 := m 3 ⊕ z 3 ; 5 / 24

  8. Automatic Proofs for Symmetric Encryption Modes Motivations Outline 1 Motivations 2 Contribution Generic Encryption Mode Predicates Our Hoare Logic 3 Result 4 Conclusion 6 / 24

  9. Automatic Proofs for Symmetric Encryption Modes Contribution Outline 1 Motivations 2 Contribution Generic Encryption Mode Predicates Our Hoare Logic 3 Result 4 Conclusion 7 / 24

  10. Automatic Proofs for Symmetric Encryption Modes Contribution How to prove an encryption mode is IND-CPA ? Our Approach Automated method for proving correctness of encryption mode: • Language: Generic Encryption Mode • Predicates: E, Indis, Lcounter • Hoare logic : few rules RESULT: If a Generic Encryption Mode E M is correct according to our Hoare logic then E M is IND-CPA. 8 / 24

  11. Automatic Proofs for Symmetric Encryption Modes Contribution Generic Encryption Mode Grammar $ c ::= x ← − U | x := E ( y ) | x := y ⊕ z | x := y � z | x := y + 1 | c 1 ; c 2 9 / 24

  12. Automatic Proofs for Symmetric Encryption Modes Contribution Generic Encryption Mode Generic Encryption Mode Definition A generic encryption mode M is represented by E M ( m 1 | . . . | m p , c 0 | . . . | c p ) : var � x ; c E CBC ( m 1 | m 2 | m 3 , IV | c 1 | c 2 | c 3 ) : var z 1 , z 2 , z 3 ; $ IV ← − U ; z 1 := IV ⊕ m 1 ; c 1 := E ( z 1 ); z 2 := c 1 ⊕ m 2 ; c 2 := E ( z 2 ); z 3 := c 2 ⊕ m 3 ; c 3 := E ( z 3 ); 10 / 24

  13. Automatic Proofs for Symmetric Encryption Modes Contribution Predicates Predicates ϕ ::= true | ϕ ∧ ϕ | ψ ψ ::= Indis( ν x ; V ) | Seed ( e ) | Lcounter( x ) | Indis ( ν x ; V ): The value of x is indistinguishable from a random value given the value of the variables in V . Seed ( e ): The probability that the value of e have been encrypted by E is negligible. Lcounter( e ): e is the most recent value of a monotone counter that started at a fresh random value. 11 / 24

  14. Automatic Proofs for Symmetric Encryption Modes Contribution Predicates Definition Definition Using previous notions we definie the two following predicates: • Useed ( x ) = Seed ( x ) ∧ Indis( x ) • Cseed ( x ) = Seed ( x ) ∧ Lcounter( x ) 12 / 24

  15. Automatic Proofs for Symmetric Encryption Modes Contribution Predicates Definition Definition Using previous notions we definie the two following predicates: • Useed ( x ) = Seed ( x ) ∧ Indis( x ) • Cseed ( x ) = Seed ( x ) ∧ Lcounter( x ) Lemma According to the defintions we have immediately: • Indis ( ν x ) ⇒ Lcounter ( x ) • Useed ( x ) ⇒ Cseed ( x ) 12 / 24

  16. Automatic Proofs for Symmetric Encryption Modes Contribution Predicates More Formally • X | = true. = ϕ ∧ ϕ ′ iff X | = ϕ ′ . • X | = ϕ and X | r r • X | = Indis( ν x ; V ) iff [( S , E ) ← X : ( S ( x , V ) , E )] ∼ [( S , E ) ← ← U ; S ′ = S { x �→ u } : ( S ′ ( x , V ) , E )] r X ; u r • X | = Seed ( x ) iff Pr[( S , E ) ← X : S ( x ) ∈ S ( T E ) . dom ] is negligible. • X | = Lcounter( x ) iff Indis( x ; Var \ Tab [ x ]), where Tab[x] denote all variables that appear in table Tab[x] of T F until the variable x . 13 / 24

  17. Automatic Proofs for Symmetric Encryption Modes Contribution Predicates Semantics of the Programming Language r r [ [ x ← U ] ]( S , E ) = [ u ← U : ( S { x �→ u , T F �→ T F ∪ { Tab [ x ] } , E )] [ [ x := E ( y )] ]( S , E ) =  δ ( S { x �→ v , T F , E ) if ( S ( y ) , v ) ∈ T E  δ ( S { x �→ v , T F �→ T F ∪ { Tab [ x ] } , T E �→ S ( T E ) · ( S ( y ) , v ) } , E ) if ( S ( y ) , v ) �∈ T E and v = E ( S ( y ))  [ [ x := y ⊕ z ] ]( S , E ) = δ ( S { x �→ S ( y ) ⊕ S ( z ) , T F , E ) [ [ x := y || z ] ]( S , E ) = δ ( S { x �→ S ( y ) || S ( z ) , T F , E ) [ [ x := y [ n , m ]] ]( S , E ) = δ ( S { x �→ S ( y )[ n , m ] , T F , E ) [ [ x := y + 1] ]( S , E ) =  δ ( S { x �→ S ( y ) + 1 , T F �→ T F ∪ { Tab [ z ] �→ Tab [ z ][ i + 1] = Tab [ z ][ i + 1] ∪ x } , E )  if y ∈ Tab [ z ][ i ] δ ( S { x �→ S ( y ) + 1 , T F , E ) otherwise  [ [ c 1 ; c 2 ] ] = [ [ c 2 ] ] ◦ [ [ c 1 ] ] Table: The semantics of the programming language 14 / 24

  18. Automatic Proofs for Symmetric Encryption Modes Contribution Our Hoare Logic How to generate Seed ( x )? Sampling a Random $ (R1) { true } x ← − U { Useed ( x ) } 15 / 24

  19. Automatic Proofs for Symmetric Encryption Modes Contribution Our Hoare Logic How to generate Seed ( x )? Sampling a Random $ (R1) { true } x ← − U { Useed ( x ) } PRP Encryption (B1) { Seed ( y ) } x := E ( y ) { Seed ( x ) } (B2) { Seed ( y ) } x := E ( y ) { Indis( x ) } 15 / 24

  20. Automatic Proofs for Symmetric Encryption Modes Contribution Our Hoare Logic How to generate Seed ( x )? Xor (X4) { Indis( x ) ∧ Seed ( x ) } z := x ⊕ y { Seed ( z ) } if y � = z (X5) { Lcounter( t ) } z := x ⊕ y { Lcounter( t ) } 16 / 24

  21. Automatic Proofs for Symmetric Encryption Modes Contribution Our Hoare Logic How to generate Seed ( x )? Xor (X4) { Indis( x ) ∧ Seed ( x ) } z := x ⊕ y { Seed ( z ) } if y � = z (X5) { Lcounter( t ) } z := x ⊕ y { Lcounter( t ) } Counter • (I1) { Lcounter( x ) } y := x + 1 { Lcounter( y ) } • (I2) { lcounter ( x ) } z := y + 1 { Seed ( x ) } 16 / 24

  22. Automatic Proofs for Symmetric Encryption Modes Contribution Our Hoare Logic 20 Rules x := E ( y ) x := y ⊕ z $ x = y || z x := y +1 x ← − U (X1) (B1) (G1) (I1) (C1) (R1) (B2) (X2) (G2) (C2) (I2) (R2) (X3) (B3) (G3) (I3) (B4) (X4) (G4) (X5) (B5) (B6) 17 / 24

  23. Automatic Proofs for Symmetric Encryption Modes Result Outline 1 Motivations 2 Contribution Generic Encryption Mode Predicates Our Hoare Logic 3 Result 4 Conclusion 18 / 24

  24. Automatic Proofs for Symmetric Encryption Modes Result How to prove that a Generic Encryption Mode is IND-CPA? Theorem Let E M ( m 1 | . . . | m p , c 0 | . . . | c p ) : var � x ; c be a generic encryption mode, Then E M is IND-CPA secure, if { true } c � i = p i =0 { Indis( ν c i ; m 1 , . . . , m p , c 0 , . . . , c p ) } is valid. 19 / 24

  25. Automatic Proofs for Symmetric Encryption Modes Result Prototype Implementation of a backward analysis in 1000 lines of Ocaml. Examples • CBC, FBC, OFB CFB are proved IND-CPA • ECB and variants our tool fails: precondition is not true All examples are immediate (less than one second) 20 / 24

  26. Automatic Proofs for Symmetric Encryption Modes Conclusion Outline 1 Motivations 2 Contribution Generic Encryption Mode Predicates Our Hoare Logic 3 Result 4 Conclusion 21 / 24

  27. Automatic Proofs for Symmetric Encryption Modes Conclusion Summary • Generic Encryption Mode • New predicats • Hoare Logic for proving generic encryption mode IND-CPA • Ocaml Prototype 22 / 24

  28. Automatic Proofs for Symmetric Encryption Modes Conclusion Future Works • Considering : For loops • Hybrid encryption • using Hash function • using mathematics (GMC) • IND-CCA ? Desai 2000: New Paradigms for Constructing Symmetric Encryption Schemes Secure against Chosen-Ciphertext Attack • CBC-MAC 23 / 24

  29. Automatic Proofs for Symmetric Encryption Modes Conclusion Thank you for your attention Questions ? 24 / 24

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