lower bounds for encrypted multi maps and searchable
play

Lower Bounds for Encrypted Multi-Maps and Searchable Encryption in - PowerPoint PPT Presentation

Lower Bounds for Encrypted Multi-Maps and Searchable Encryption in the Leakage Cell Probe Model Sarvar Patel*, Giuseppe Persiano** and Kevin Yeo* *Google **University of Salerno Key k i was queried. Privacy-Preserving Storage Protocols Key k i


  1. Lower Bounds for Encrypted Multi-Maps and Searchable Encryption in the Leakage Cell Probe Model Sarvar Patel*, Giuseppe Persiano** and Kevin Yeo* *Google **University of Salerno

  2. Key k i was queried. Privacy-Preserving Storage Protocols Key k i k 1 V 1 k 2 V 2 ... ... k n V n V i

  3. Key k 2 was never queried. Privacy-Preserving Storage Protocols k 1 V 1 Key k 15 was most frequently queried. k 2 V 2 ... ... k n V n

  4. What was the requested key? Privacy-Preserving Storage Protocols Key k i k 1 V 1 ... k 2 V 2 ... ... k n V n V i

  5. Privacy Spectrum for Maps Plaintext Maps

  6. Plaintext Maps Classic dictionary problem with many solutions! ● Perfect Hashing: Static [FKS’84], Dynamic [DKM+’94] ○ Cuckoo Hashing [PR’01] ○ … and many more ○

  7. Plaintext Maps Classic dictionary problem with many solutions! ● Perfect Hashing: Static [FKS’84], Dynamic [DKM+’94] ○ Cuckoo Hashing [PR’01] ○ … and many more ○ Efficiency : O(1) overhead, O(n) storage ● Privacy: None -- Leaks all keys and values. ●

  8. Privacy Spectrum for Maps Structured Plaintext Maps Encryption Efficiency : O(1) Leakage : Everything

  9. Structured Encryption Idea: Encrypt a data structure while maintaining operations ● Example: Searchable encryption = Encrypt a search index ○ Many works in the past two decades: ● Static [SWP’00], [BDOP’04], [CGKO’11], ... ○ Dynamic [CJJ+’14], [SPS’14], ... ○ Forward and Backward Privacy [Bost’16], [BMO’17], ... ○

  10. Structured Encryption Idea: Encrypt a data structure while maintaining operations ● Example: Searchable encryption = Encrypt a search index ○ Many works in the past two decades: ● Static [SWP’00], [BDOP’04], [CGKO’11], ... ○ Dynamic [CJJ+’14], [SPS’14], ... ○ Forward and Backward Privacy [Bost’16], [BMO’17], … ○ Efficiency: Typically O(1) but can be higher depending on leakage ● Privacy: Some well-defined leakage function ● Number of values associated with keys, Key-equality between operations, Number of operations, etc. ○

  11. Privacy Spectrum for Maps Structured Plaintext Maps Oblivious RAM Encryption Efficiency : O(1) Efficiency : O(1) Leakage : Everything Leakage : Non-trivial Leakage Function

  12. Oblivious RAM Introduced by Goldreich and Ostrovsky [GO’96] ● Also, many works in the past decade [PR’10], [SSS’11], [MMOT’12], [SvDS’13], [PPR Y ’18], .... ○ … leading to optimal O(log n) overhead construction [AKL+’20] ○

  13. Oblivious RAM Introduced by Goldreich and Ostrovsky [GO’96] ● Also, many works in the past decade [PR’10], [SSS’11], [MMOT’12], [SvDS’13], [PPR Y ’18], .... ○ … leading to optimal O(log n) overhead construction [AKL+’20] ○ Efficiency: O(log n), which is tight due to [GO’96, LN’18] ● Privacy : Adversary cannot distinguish two sequences of same length ● Leakage function is (upper bound on) length of operational sequence ○

  14. Privacy Spectrum for Maps Structured Plaintext Maps Oblivious RAM Encryption Efficiency : O(1) Efficiency : O(1) Efficiency : O(log n) Leakage : Everything Leakage : Non-trivial Leakage : Length of Leakage Function operational sequence

  15. What leakage functions inherently cost Ω(log n) like Privacy Spectrum for Maps ORAM? Structured Plaintext Maps Oblivious RAM Encryption Efficiency : O(1) Efficiency : O(1) Efficiency : O(log n) Leakage : Everything Leakage : Non-trivial Leakage : Length of Leakage Function operational sequence

  16. Privacy Spectrum for Maps Structured Plaintext Maps Oblivious RAM Encryption Efficiency : O(1) Efficiency : O(1) Efficiency : O(log n) Leakage : Everything Leakage : Non-trivial Leakage : Length of Leakage Function operational sequence

  17. Hash-and-Encrypt Compiler Consider any plaintext map with operations: ● Insert(k, v) ○ Get(k) ○ Delete(k) ○

  18. Hash-and-Encrypt Compiler k 1 V 1 k 2 V 2 ... ... K k n V n

  19. Hash-and-Encrypt Compiler H(K, k 1 ) V 1 H(K, k 2 ) V 2 ... ... K H(K, k n ) V n

  20. Hash-and-Encrypt Compiler H(K, k 1 ) Enc(K, V 1 ) H(K, k 2 ) Enc(K, V 2 ) ... ... K H(K, k n ) Enc(K, V n )

  21. Hash-and-Encrypt Compiler (Query) Key k i H(K, k 1 ) Enc(K, V 1 ) H(K, k i ) H(K, k 2 ) Enc(K, V 2 ) ... ... Get(H(K, k i )) K H(K, k n ) Enc(K, V n ) Enc(K, V i )

  22. Hash-and-Encrypt Compiler (Insert) Key k i H(K, k 1 ) Enc(K, V 1 ) Value V i H(K, k i ), Enc(K, V i ) H(K, k 2 ) Enc(K, V 2 ) ... ... Insert(H(K, k i ), Enc(K, V i )) K H(K, k n ) Enc(K, V n )

  23. Hash-and-Encrypt Compiler (Insert) Key k i H(K, k 1 ) Enc(K, V 1 ) Value V i H(K, k i ), Enc(K, V i ) H(K, k 2 ) Enc(K, V 2 ) H(K, k i ) Enc(K, V i ) Insert(H(K, k i ), Enc(K, V i )) K H(K, k n ) Enc(K, V n )

  24. Leakage of Hash-and-Encrypt Insert H(K, “cat”) Enc(K, “01”)

  25. Leakage of Hash-and-Encrypt Insert Insert H(K, “cat”) H(K, “dog”) Enc(K, “01”) Enc(K, “00”)

  26. Leakage of Hash-and-Encrypt Insert Insert Query Insert Query H(K, “cat”) H(K, “dog”) H(K, “dog”) H(K, “cat”) H(K, “cat”) ... Enc(K, “01”) Enc(K, “00”) Enc(K, “00”) Enc(K, “11”) Enc(K, “01”) Enc(K, “11”)

  27. Leakage of Hash-and-Encrypt Type of operation performed ●

  28. Leakage of Hash-and-Encrypt Insert Insert Query Insert Query H(K, “cat”) H(K, “dog”) H(K, “dog”) H(K, “cat”) H(K, “cat”) ... Enc(K, “01”) Enc(K, “00”) Enc(K, “00”) Enc(K, “11”) Enc(K, “01”) Enc(K, “11”)

  29. Leakage of Hash-and-Encrypt Type of operation performed ● Length of Query response ●

  30. Leakage of Hash-and-Encrypt Insert Insert Query Insert Query H(K, “cat”) H(K, “dog”) H(K, “dog”) H(K, “cat”) H(K, “cat”) ... Enc(K, “01”) Enc(K, “00”) Enc(K, “00”) Enc(K, “11”) Enc(K, “01”) Enc(K, “11”)

  31. Leakage of Hash-and-Encrypt Type of operation performed ● Length of Query response ● Key-Equality Pattern ●

  32. Leakage of Hash-and-Encrypt Insert Insert Query Insert Query H(K, “cat”) H(K, “dog”) H(K, “dog”) H(K, “cat”) H(K, “cat”) ... Enc(K, “01”) Enc(K, “00”) Enc(K, “00”) Enc(K, “11”) Enc(K, “01”) Enc(K, “11”)

  33. Leakage of Hash-and-Encrypt Insert Insert Query Insert Query H(K, “cat”) H(K, “dog”) H(K, “dog”) H(K, “cat”) H(K, “cat”) ... Enc(K, “01”) Enc(K, “00”) Enc(K, “00”) Enc(K, “11”) Enc(K, “01”) Enc(K, “11”)

  34. Leakage of Hash-and-Encrypt Insert Insert Query Insert Query H(K, “cat”) H(K, “dog”) H(K, “dog”) H(K, “cat”) H(K, “cat”) ... Enc(K, “01”) Enc(K, “00”) Enc(K, “00”) Enc(K, “11”) Enc(K, “01”) Enc(K, “11”)

  35. Leakage of Hash-and-Encrypt Type of operation performed ● Length of Query response ● Key-Equality Pattern ●

  36. Leakage of Hash-and-Encrypt Type of operation performed ● Length of Query response ● Key-Equality Pattern ● Surprisingly, this matches leakage of best STE O(1) schemes!!!

  37. Privacy Spectrum for Maps Structured Plaintext Maps Oblivious RAM Encryption Efficiency : O(1) Efficiency : O(1) Efficiency : O(log n) Leakage : Everything Leakage : Non-trivial Leakage : Length of Leakage Function operational sequence

  38. Can we do better? Type of operation performed ● Length of Query response ● Key-Equality Pattern ●

  39. Can we do better? Type of operation performed (Perform all possible operation types) ● Length of Query response ● Key-Equality Pattern ●

  40. Can we do better? Type of operation performed (Perform all possible operation types) ● Length of Query response ??? (Hard to do without increasing cost significantly) ● Padding Volume-Hiding STE schemes: [KM’19], [PP Y Y’19] ○ Key-Equality Pattern ●

  41. Can we do better? Type of operation performed (Perform all possible operation types) ● Length of Query response ??? (Hard to do without increasing cost significantly) ● Padding Volume-Hiding STE schemes: [KM’19], [PP Y Y’19] ○ Key-Equality Pattern ●

  42. Decoupled Key-Equality Insert Insert Query Insert Query H(K, “cat”) H(K, “dog”) H(K, “dog”) H(K, “cat”) H(K, “cat”) ... Enc(K, “01”) Enc(K, “00”) Enc(K, “00”) Enc(K, “11”) Enc(K, “01”) Enc(K, “11”)

  43. Decoupled Key-Equality Insert Insert Query Insert Query H(K, “cat”) H(K, “dog”) H(K, “dog”) H(K, “cat”) H(K, “cat”) ... Enc(K, “01”) Enc(K, “00”) Enc(K, “00”) Enc(K, “11”) Enc(K, “01”) Enc(K, “11”)

  44. Decoupled Key-Equality Insert Insert Query Insert Query H(K, “cat”) H(K, “dog”) H(K, “dog”) H(K, “cat”) H(K, “cat”) ... Enc(K, “01”) Enc(K, “00”) Enc(K, “00”) Enc(K, “11”) Enc(K, “01”) Enc(K, “11”)

  45. Decoupled Key-Equality Insert Insert Query Insert Query H(K, “cat”) H(K, “dog”) H(K, “dog”) H(K, “cat”) H(K, “cat”) ... Enc(K, “01”) Enc(K, “00”) Enc(K, “00”) Enc(K, “11”) Enc(K, “01”) Enc(K, “11”)

  46. Main Result Theorem. Any encrypted multi-map with leakage at most the decoupled key-equality pattern must have Ω (log n) overhead.

Recommend


More recommend