bloom filter encryption and applications to efficient
play

Bloom Filter Encryption and Applications to Efficient Forward-Secret - PowerPoint PPT Presentation

Bloom Filter Encryption and Applications to Efficient Forward-Secret 0-RTT Key Exchange David Derler , Tibor Jager , Daniel Slamanig , Christoph Striecks May 3, 2018E urocrypt 2018, Tel Aviv, Israel Key Establishment


  1. Bloom Filter Encryption and Applications to Efficient Forward-Secret 0-RTT Key Exchange David Derler ‡ , Tibor Jager � , Daniel Slamanig § , Christoph Striecks § May 3, 2018—E urocrypt 2018, Tel Aviv, Israel ‡ � §

  2. Key Establishment with TLS SYN SYN-ACK ACK ClientHello , ClientKeyShare ServerHello , ServerKeyShare Server Client Cert , Signature , Finished Finished � Payload 1

  3. Key Establishment with TLS SYN 1 -RTT SYN-ACK ACK ClientHello , ClientKeyShare ServerHello , ServerKeyShare Server Client 1 -RTT Cert , Signature , Finished Finished � Payload � 2-RTTs before first payload message ? Is this necessary 1

  4. Key Establishment with TLS SYN 1 -RTT SYN-ACK ACK TCP � UDP ClientHello , ClientKeyShare ServerHello , ServerKeyShare Server Client 1 -RTT Cert , Signature , Finished Finished � Payload � 2-RTTs before first payload message ? Is this necessary 1

  5. Send cryptographically protected payload in first message (0-RTT KE)? 1

  6. Trivial Protocol ( � , � ) c ← Enc � ( k ) p ← SymEnc k ( Payload ) Server Client Major deficiencies: • No forward secrecy • Vulnerable to replay attacks 2

  7. Existing Approaches 0-RTT in TLS1.3/QUIC • First session 1-RTT, session resumption 0-RTT � Replay protection ? Forward secrecy for most transmitted data 3

  8. Existing Approaches 0-RTT in TLS1.3/QUIC • First session 1-RTT, session resumption 0-RTT � Replay protection ? Forward secrecy for most transmitted data Full forward secrecy, replay protection, and 0-RTT? • A priori not even clear if possible � G¨ unther, Hale, Jager, and Lauer at Eurocrypt’17 � Using puncturable encryption (Green, Miers at S&P 2015) 3

  9. Puncturable Encryption Conventional encryption scheme: • ( KeyGen, Enc, Dec ) + Additional algorithm � ′ ← Punc ( � , C ) Properties • � ′ no longer useful to decrypt C • � ′ still useful to decrypt other ciphertexts • Repeated puncturing possible 4

  10. Puncturable Encryption Conventional encryption scheme: • ( KeyGen, Enc, Dec ) + Additional algorithm � ′ ← Punc ( � , C ) Properties • � ′ no longer useful to decrypt C • � ′ still useful to decrypt other ciphertexts • Repeated puncturing possible fs 0-RTT KE via puncturable encryption • Client encrypts message under public key � • Server decrypts using secret key � ′ • Server punctures � ′ on C 4

  11. Our Approach Downsides of existing approaches • Puncturing and/or decryption expensive (experiments by authors of [GHJL17]: 30s - several minutes) 5

  12. Our Approach Downsides of existing approaches • Puncturing and/or decryption expensive (experiments by authors of [GHJL17]: 30s - several minutes) Observation • Can accept somewhat larger (secret) keys • Can accept non-negligible correctness error • For example, 1 in 1000 sessions fail � Can fall back to 1 -RTT in this case 5

  13. Bloom Filters 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 m • Initial state T := 0 m • k universal hash functions ( H j ) j ∈ [ k ] • H j : U → [ m ] • Throughout this talk, let k = 3 6

  14. Bloom Filters { x , y , z } 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 m • Initial state T := 0 m • k universal hash functions ( H j ) j ∈ [ k ] • H j : U → [ m ] • Throughout this talk, let k = 3 6

  15. Bloom Filters { x , y , z } H 1 ( x ) H 2 ( x ) H 3 ( x ) 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 m 6

  16. Bloom Filters { x , y , z } H 1 ( y ) H 2 ( y ) H 3 ( y ) 0 1 0 0 1 1 0 1 0 0 1 0 0 0 0 1 0 0 0 1 m 6

  17. Bloom Filters { x , y , z } H 1 ( z ) H 3 ( z ) H 2 ( z ) 0 1 0 1 1 1 0 1 0 0 1 0 0 0 0 1 0 0 1 1 m Properties • No false negatives 6

  18. Bloom Filters { x , y , z } 0 1 0 1 1 1 0 1 0 0 1 0 0 0 0 1 0 0 1 1 m H 1 ( w ) H 2 ( w ) H 3 ( w ) Properties • No false negatives w ? 6

  19. Bloom Filters { x , y , z } 0 1 0 1 1 1 0 1 0 0 1 0 0 0 0 1 0 0 1 1 m H 1 ( v ) H 2 ( v ) H 3 ( v ) Properties • No false negatives v ? • False positives possible 6

  20. Bloom Filters { x , y , z } 0 1 0 1 1 1 0 1 0 0 1 0 0 0 0 1 0 0 1 1 m H 1 ( v ) H 2 ( v ) H 3 ( v ) Properties • No false negatives v ? • False positives possible • Probability determined by k , m , and # inserted elements 6

  21. Bloom Filter Encryption 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 KeyGen • Set up BF 7

  22. Bloom Filter Encryption 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 � 1 � 2 � 3 � 5 � 6 � m − 3 � 8 � 11 � m � 1 � 2 � 3 � 5 � 6 � 8 � 11 � m − 3 � m KeyGen • Set up BF • Associate key pair to each bit 7

  23. Bloom Filter Encryption 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 � 1 � 2 � 3 � 5 � 6 � m − 3 = � � 8 � 11 � m � 1 � 2 � 3 � 5 � 6 � 8 � 11 � m − 3 � m = � KeyGen • Set up BF • Associate key pair to each bit • Compose BFE key pair ( � , � ) 7

  24. Bloom Filter Encryption 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 � 1 � 2 � 3 � 5 � 6 � m − 3 � 8 � 11 � m � 1 � 2 � 3 � 5 � 6 � 8 � 11 � m − 3 � m Encrypt message M • Randomly choose tag τ 7

  25. Bloom Filter Encryption τ H 1 ( τ ) H 2 ( τ ) H 3 ( τ ) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 � 1 � 2 � 3 � 5 � 6 � m − 3 � 8 � 11 � m � 1 � 2 � 3 � 5 � 6 � 8 � 11 � m − 3 � m Encrypt message M • Randomly choose tag τ • Determine indexes from τ 7

  26. Bloom Filter Encryption τ H 1 ( τ ) H 2 ( τ ) H 3 ( τ ) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 � 1 � 2 � 3 � 5 � 6 � m − 3 � 8 � 11 � m � 1 � 2 � 3 � 5 � 6 � 8 � 11 � m − 3 � m Encrypt message M • Randomly choose tag τ • Determine indexes from τ • C τ ← Enc � 6 ∨ � 11 ∨ � m − 3 ( M ) 7

  27. Bloom Filter Encryption τ ′ H 1 ( τ ′ ) H 2 ( τ ′ ) H 3 ( τ ′ ) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 � 1 � 2 � 3 � 5 � 6 � m − 3 � 8 � 11 � m � 1 � 2 � 3 � 5 � 6 � 8 � 11 � m − 3 � m Puncture ciphertext C τ ′ • Determine BF indexes from τ ′ 7

  28. Bloom Filter Encryption � Secret key no longer useful to decrypt C τ ′ with associated tag τ ′ τ ′ H 1 ( τ ′ ) H 2 ( τ ′ ) H 3 ( τ ′ ) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 � 1 � 2 � 3 � 5 � 6 � m − 3 � 8 � 11 � m � 1 � 2 � 3 � 5 � 6 � 8 � 11 � m − 3 � m Puncture ciphertext C τ ′ • Determine BF indexes from τ ′ • Delete associated keys 7

  29. Bloom Filter Encryption � Secret key no longer useful to decrypt C τ ′ with associated tag τ ′ τ ′ H 1 ( τ ′ ) H 2 ( τ ′ ) H 3 ( τ ′ ) 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 � 1 � 2 � 3 � 5 � 6 � m − 3 � 8 � 11 � m � 1 � 2 � 3 � 5 � 6 � 8 � 11 � m − 3 � m Puncture ciphertext C τ ′ • Determine BF indexes from τ ′ • Delete associated keys • Update BF state 7

  30. Bloom Filter Encryption τ H 1 ( τ ) H 2 ( τ ) H 3 ( τ ) 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 � 1 � 2 � 3 � 5 � 6 � m − 3 � 8 � 11 � m � 1 � 2 � 3 � 5 � 6 � 8 � 11 � m − 3 � m Decrypt ciphertext C τ • Determine BF indexes from τ 7

  31. Bloom Filter Encryption τ H 1 ( τ ) 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 � 1 � 2 � 3 � 5 � 6 � m − 3 � 8 � 11 � m � 1 � 2 � 3 � 5 � 6 � 8 � 11 � m − 3 � m Decrypt ciphertext C τ • Determine BF indexes from τ • Let i lowest index w. BF [ i ] = 0 7

  32. Bloom Filter Encryption τ H 1 ( τ ) 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 � 1 � 2 � 3 � 5 � 6 � m − 3 � 8 � 11 � m � 1 � 2 � 3 � 5 � 6 � 8 � 11 � m − 3 � m Decrypt ciphertext C τ • Determine BF indexes from τ • Let i lowest index w. BF [ i ] = 0 • M ← Dec � 6 ( C τ ) 7

  33. Example BF Parameters We let • Maximum # of elements in BF: 2 20 ≈ 2 12 puncturings/day for full year • False positive probability: 10 − 3 Then we get • BF size m = n ln p / (ln 2 ) 2 ≈ 2 MB • # hash functions k = ⌈ m / n ln 2 ⌉ = 10 8

  34. Instantiations Three instantiations with different trade-offs � Identity-based encryption (IBE) � Attribute-based encryption (ABE) NEW Identity-based broadcast encryption (IBBE) 1 1 Construction by Kai Gellert in extended version (ePrint 2018/199) 9

  35. Instantiations Three instantiations with different trade-offs � Identity-based encryption (IBE) � Attribute-based encryption (ABE) NEW Identity-based broadcast encryption (IBBE) 1 Construction | C | Dec Punc | � | | � | IBE [Crypto’01] O ( 1 ) O ( m ) O ( k ) O ( k ) O ( k ) O ( m 2 ) ABE [CT-RSA’13, AC’15] O ( m ) O ( 1 ) O ( k ) O ( k ) IBBE [AC’07] O ( k ) O ( m ) O ( 1 ) O ( k ) O ( k ) 1 Construction by Kai Gellert in extended version (ePrint 2018/199) 9

  36. Instantiations (IBE) Based on Boneh-Franklin (BF) IBE • Constant size public key (400 bit at 120 bit security) • Secret key: include one IBE- � per bit of BF (=identity) 10

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