secure communication by ratcheting
play

Secure Communication by Ratcheting F Bet ul Durak and Serge - PowerPoint PPT Presentation

Secure Communication by Ratcheting F Bet ul Durak and Serge Vaudenay COLE POLYTECHNIQUE FDRALE DE LAUSANNE SV 2018 ratchet ASK 2018 1 / 43 Secure Communication 1 Ratcheting 2 Our Results 3 SV 2018 ratchet ASK 2018 2 / 43


  1. Secure Communication by Ratcheting F Bet¨ ul Durak and Serge Vaudenay ÉCOLE POLYTECHNIQUE FÉDÉRALE DE LAUSANNE SV 2018 ratchet ASK 2018 1 / 43

  2. Secure Communication 1 Ratcheting 2 Our Results 3 SV 2018 ratchet ASK 2018 2 / 43

  3. Secure Communication 1 Ratcheting 2 Our Results 3 SV 2018 ratchet ASK 2018 3 / 43

  4. Atomic Secure Communication Init $ sk ct pt pt Send Receive the state is a (symmetric) secret key sk; it is FIXED Init $ − → sk Send ( sk , pt ) → ct Receive ( sk , ct ) → pt ′ correctness : pt = pt ′ security : ...check the literature on AE... SV 2018 ratchet ASK 2018 4 / 43

  5. Aim: Communication Integrity Init $ ( sk , 0 ) ct 1 pt 1 pt 1 Send Receive ( sk , 1 ) ( sk , 1 ) ct 2 pt 2 pt 2 Send Receive ( sk , 2 ) ( sk , 2 ) ct 3 pt 3 pt 3 Send Receive . . . . . . security : the list of received messages can only be (a prefix of) the list of sent messages SV 2018 ratchet ASK 2018 5 / 43

  6. Aim: Forward Privacy Init $ st S ( 0 ) st R ( 0 ) ct 1 pt 1 pt 1 Send Receive st S ( 1 ) st R ( 1 ) ct 2 pt 2 pt 2 Receive Send st S ( 2 ) st R ( 2 ) ct 3 pt 3 pt 3 Send Receive . . . . . . security : leaking st S ( 2 ) , st R ( 2 ) does not compromise pt 1 , pt 2 SV 2018 ratchet ASK 2018 6 / 43

  7. Aim: Post-Compromise Security (1) Init $ st S ( 0 ) st R ( 0 ) ct 1 pt 1 Send $ pt 1 Receive st S ( 1 ) st R ( 1 ) ct 2 pt 2 Send $ pt 2 Receive st S ( 2 ) st R ( 2 ) ct 3 pt 3 Send $ pt 3 Receive . . . . . . security : leaking st S ( 1 ) does not compromise any message! SV 2018 ratchet ASK 2018 7 / 43

  8. Aim: Post-Compromise Security (2) Init $ st S ( 0 ) st R ( 0 ) ct 1 pt 1 Send $ pt 1 Receive st S ( 1 ) st R ( 1 ) ct 2 pt 2 Send $ pt 2 Receive st S ( 2 ) st R ( 2 ) ct 3 pt 3 Send $ pt 3 Receive . . . . . . security : leaking st R ( 1 ) compromises pt 2 , pt 3 (there is nothing to do about it) SV 2018 ratchet ASK 2018 8 / 43

  9. Aim: Bidirectional Communication Init $ st A ( 0 ) st B ( 0 ) ct 1 pt 1 Send $ pt 1 Receive st A ( 1 ) st B ( 1 ) ct 2 pt 2 Send $ pt 2 Receive st A ( 2 ) st B ( 2 ) ct 3 pt 3 Send $ pt 3 Receive st A ( 3 ) st B ( 3 ) ct 4 pt 4 Send $ pt 4 Receive . . . . . . SV 2018 ratchet ASK 2018 9 / 43

  10. Aim: Asynchronous + Random Role Init $ st A ( 0 ) st B ( 0 ) pt A 1 Send $ Send $ pt B 1 st A ( 1 ) st B ( 1 ) pt A 2 Send $ pt A 1 Receive st A ( 2 ) st B ( 2 ) pt B 1 Send $ pt B 2 Receive st A ( 3 ) st B ( 3 ) pt B 2 pt A 2 Receive Receive . . . . . . SV 2018 ratchet ASK 2018 10 / 43

  11. Secure Communication 1 Ratcheting 2 Our Results 3 SV 2018 ratchet ASK 2018 12 / 43

  12. Ratchet state update in a one-way manner (for forward security ) using randomness (for post-compromise security ) SV 2018 ratchet ASK 2018 13 / 43

  13. Bidirectional Asynch. Ratcheted Key Agreement Init $ st A ( 0 ) st B ( 0 ) Send $ Send $ k A 1 k B 1 st A ( 1 ) st B ( 1 ) k A 2 Send $ k A 1 Receive st A ( 2 ) st B ( 2 ) Send $ k B 1 k B 2 Receive st A ( 3 ) st B ( 3 ) k B 2 k A 2 Receive Receive . . . . . . SV 2018 ratchet ASK 2018 14 / 43

  14. CRYPTO 2017 Bellare-Singh-Asha-Jaeger-Nyayapati-Stepanovs Ratcheted Encryption and Key Exchange: The Secu- rity of Messaging unidirectional no receiver leakage allowed complicated definitions SV 2018 ratchet ASK 2018 15 / 43

  15. CRYPTO 2018 Poettering-R¨ osler Ratcheted Key Exchange, Revisited Jaeger-Stepanovs Optimal Channel Security Against Fine-Grained State Compromise: The Safety of Messaging both need key update primitives (HIBE, random oracles, ...) complicated definitions SV 2018 ratchet ASK 2018 16 / 43

  16. Poettering-R¨ osler Security Game SV 2018 ratchet ASK 2018 17 / 43

  17. Jaeger-Stepanovs Security Game SV 2018 ratchet ASK 2018 18 / 43

  18. Cryptosystem with Key Update (for PR18 and JS18) Generate $ Encrypt ( pk , pt ) $ Decrypt ( sk , ct ) → pt ′ , → ( sk , pk ) , → ct, − − UpdateSk ( sk , ad ) → sk ′ , UpdatePk ( pk , ad ) → pk ′ correctness : for all coins, pt, ad 1 , . . . , ad n , if Generate $ pk sk ad 1 UpdatePk UpdateSk ad 1 ad n UpdatePk UpdateSk ad n pk ′ sk ′ ct Encrypt $ pt ′ pt Decrypt then pt = pt ′ security : ...well... SV 2018 ratchet ASK 2018 19 / 43

  19. Cryptosystem with Key Update from HIBE Algorithm Generate () 1: HIBE . Init $ − → ( msk , mpk ) 2: pk ← ( mpk , ⊥ ) ▷ second part is id (empty for root) 3: return ( msk , pk ) ▷ root secret is msk Algorithm UpdateSk ( sk , ad ) 4: return HIBE . Extract ( sk , ad ) ▷ extract ad-child secret Algorithm UpdatePk ( pk , ad ) 5: parse pk = ( mpk , id ) ▷ mpk never changes 6: return ( mpk , id . ad ) ▷ just concatenate ad to id Algorithm Encrypt ( pk , pt ) 7: parse pk = ( mpk , id ) 8: return HIBE . Encrypt ( mpk , id , pt ) Algorithm Decrypt ( sk , ct ) 9: return HIBE . Decrypt ( sk , ct ) SV 2018 ratchet ASK 2018 20 / 43

  20. Signature with Key Update (for JS18) Generate $ Sign ( sk , m ) $ → ( sk , vk ) , → σ , Verify ( vk , σ, m ) → accept / reject, − − UpdateSk ( sk , ad ) → sk ′ , UpdatePk ( vk , ad ) → vk ′ correctness : for all coins, m , ad 1 , . . . , ad n , if Generate $ sk vk UpdateVk ad 1 UpdateSk ad 1 ad n UpdateSk UpdateVk ad n sk ′ vk ′ m , σ Sign $ m Verify out then out = accept security : ...well... SV 2018 ratchet ASK 2018 21 / 43

  21. Secure Communication 1 Ratcheting 2 Our Results 3 SV 2018 ratchet ASK 2018 22 / 43

  22. Our Definition 3 algorithms: Init $ , Send $ , Receive correctness KIND-security: generated keys look like random caveat: exceptions... (difficult to identify) FORGE-security: participants see the same messages caveat: “trivial forgeries” (after state exposure) RECOVER-security: after forgeries, genuine messages are no longer accepted SV 2018 ratchet ASK 2018 23 / 43

  23. BARK Bidirectional Asynchronous Ratcheted Key Agreement SV 2018 ratchet ASK 2018 24 / 43

  24. Correctness For all sequence sched, Pr[ Correctness ( sched ) → 1 ]= 0 Oracle RATCH ( P , rec , upd ) Game Correctness ( sched ) 1: ( acc , st ′ P , k P ) ← Receive ( st P , upd ) 1: set all lists and queues to ∅ 2: if acc then $ 2: Init ( 1 λ ) → ( st A , st B , z ) − st P ← st ′ 3: 3: i ← 0 P append k P to received P 4: 4: loop key 5: end if 5: i ← i + 1 6: return acc 6: ( P , role ) ← sched i if role = rec then 7: Oracle RATCH ( P , send ) if in queue P empty then return 0 8: 7: ( st ′ P , upd , k P ) ← Send ( st P ) pull upd from in queue P 9: 8: st P ← st ′ P acc ← RATCH ( P , rec , upd ) 10: 9: append k P to sent P key if acc = false then return 1 11: 10: return upd if received P key not prefix of sent P key then return 1 12: 13: else upd ← RATCH ( P , send ) 14: push upd to in queue P 15: 16: end if 17: end loop SV 2018 ratchet ASK 2018 25 / 43

  25. KIND Security � [ ] [ ]� For all ppt A , � KIND A KIND A � � Pr 0 , C clean → 1 − Pr 1 , C clean → 1 � = negl ( λ ) Game KIND A Oracle TEST ( P ) b , C clean 1: if t test ̸ = ⊥ then abort 1: set all variables to ⊥ $ 2: if k P = ⊥ then abort 2: Init ( 1 λ ) − → ( st A , st B , z ) 3: b ′ ← A RATCH , EXP st , EXP key , TEST ( z ) 3: t test ← time 4: if b = 1 then 4: if ¬ C clean then abort return k P 5: 5: return b ’ 6: else return random { 0 , 1 } | k P | 7: 8: end if exclude trivial attacks Oracle EXP key ( P ) 1: return k P the EXP oracles can be used for Oracle EXP st ( P ) trivial attacks without forgeries 1: return st P not easy to identify trivial attacks in the case of forgeries SV 2018 ratchet ASK 2018 26 / 43

  26. A Few Technical Notions: Matching Status  t ′ ≤ t  ⇒ ∃ t , t ′ P in matching status at time t ⇐ received P msg ( t )= sent P msg ( t ) received P msg ( t )= sent P msg ( t ′ )  P P Property t ′ If P in matching status at time t ... ... P in matching status at time t t ... P in matching status at any time < t ... P and P generate the t same keys SV 2018 ratchet ASK 2018 27 / 43

  27. A Few Technical Notions: Direct Leakage k P ( t ) directly leaks if we are in one of those configurations: P P P P t RATCH t RATCH t 0 ( EXP key ) t e t ( EXP st ) t e no RATCH no RATCH Receive t ( EXP key ) t e t t RATCH no RATCH t ( P in matching status at time t ) SV 2018 ratchet ASK 2018 28 / 43

  28. A Few Technical Notions: Indirect Leakage k P ( t ) indirectly leaks if P is in matching status at time t and either the corresponding k P ( t ) directly leaks or we are in this configuration: P P t ′ t RATCH t Send t e ( EXP st ) no RATCH t SV 2018 ratchet ASK 2018 29 / 43

  29. A Few Cleanness Notions C leak : k P test ( t test ) does leaks neither directly nor indirectly mandatory: we must have this clause in C clean C P test trivial forge : P test had no trivial forgery before seeing upd test C A , B trivial forge : neither A nor B had a trivial forgery before seeing upd test C ratchet : upd test was sent by a participant P , then accepted by P , then P sent some upd, then it was accepted by P ( C leak ∧ C P test trivial forge ) -KIND security ← PR18 and JS18 ⇓ ( C leak ∧ C A , B trivial forge ) -KIND security ← our protocol ⇓ (++) ( C leak ∧ C ratchet ) -KIND security ← we are happy here SV 2018 ratchet ASK 2018 30 / 43

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