improved private set intersection
play

Improved Private Set Intersection against Malicious Adversaries - PowerPoint PPT Presentation

Improved Private Set Intersection against Malicious Adversaries Peter Rindal Mike Rosulek Private Set Intersection (PSI) Private Set Intersection (PSI) Sender Receiver PSI


  1. Improved Private Set Intersection against Malicious Adversaries Peter Rindal Mike Rosulek

  2. Private Set Intersection (PSI) ๐‘Œ ๐‘ ๐‘Œ โˆฉ ๐‘

  3. Private Set Intersection (PSI) โ€œSenderโ€ โ€œReceiverโ€ ๐‘Œ ๐‘ PSI ๐‘Œ โˆฉ ๐‘

  4. App: Contact discovery Users Contacts PSI ๐‘Œ โˆฉ ๐‘

  5. Oblivious Transfer (OT) Alice Bob ๐‘ƒ๐‘ˆ ๐‘› 0 , ๐‘› 1 โˆˆ 0,1 ๐‘š ๐‘‘ โˆˆ {0,1} ๐‘› ๐‘‘ โ€ข Highly efficient and secure protocols exists โ€ข Motivates it use as the basis for PSI

  6. Bloom Filter Plain text data structure similar to hash table โ€ข Allows for testing set membership โ€ข Paramerterized by hash functions โ„Ž 1 , โ€ฆ , โ„Ž ๐‘™ , set โ€ข โ€ข ๐‘ โ„Ž ๐‘— (๐‘ฆ) = 1 , โˆ€๐‘— 0 0 0 0 0 0 0 0 0 0 0 0 ๐‘ = 0 0 0

  7. Bloom Filter Plai n ๐‘— ( ๐‘ฆ ) =1 , โˆ€ ๐‘— ext data structure similar to hash table โ€ข Allows for testing set membership โ€ข Paramerterized by hash functions โ„Ž 1 , โ€ฆ , โ„Ž ๐‘™ โ€ข To insert ๐‘ฆ , set โ€ข ๐‘ โ„Ž ๐‘— โ„Ž ๐‘— (๐‘ฆ) = 1 , โˆ€๐‘— โ€ฆ โ„Ž 2 (๐‘ฆ) โ„Ž ๐‘™ (๐‘ฆ) โ„Ž 1 (๐‘ฆ) 0 0 0 0 0 0 0 0 0 0 ๐‘ = 1 0 0 1 1

  8. Bloom Filter Plai n ๐‘— ( ๐‘ฆ ) =1 , โˆ€ ๐‘— ext data structure similar to hash table โ€ข Allows for testing set membership โ€ข Paramerterized by hash functions โ„Ž 1 , โ€ฆ , โ„Ž ๐‘™ โ€ข To insert ๐‘ฆ , set โ€ข ๐‘ โ„Ž ๐‘— โ„Ž ๐‘— (๐‘ฆ) = 1 , โˆ€๐‘— โ€ฆ โ„Ž 2 (๐‘จ) โ„Ž ๐‘™ (๐‘จ) โ„Ž 1 (๐‘จ) 0 0 0 0 0 0 ๐‘ = 0 1 1 1 1 1 1 1 1

  9. Bloom Filter โ€ข Plain text data structure similar to hash table โ€ข Allows for testing set membership โ€ข Paramerterized by hash functions โ„Ž 1 , โ€ฆ , โ„Ž ๐‘œ โ€ข To insert ๐‘ฆ , set โ€ข ๐‘ โ„Ž ๐‘— (๐‘ฆ) = 1 , โˆ€๐‘— โ€ข To test membership โ€ข Return โˆง ๐‘— ๐‘ โ„Ž ๐‘— ๐‘ฆ 0 0 0 0 0 0 ๐‘ = 1 0 1 1 1 1 1 1 1

  10. Bloom Filter โ€ข Plain text data structure similar to hash table โ€ข Allows for testing set membership โ€ข Paramerterized by hash functions โ„Ž 1 , โ€ฆ , โ„Ž ๐‘œ โ€ข To insert ๐‘ฆ , set โ€ข ๐‘ โ„Ž ๐‘— (๐‘ฆ) = 1 , โˆ€๐‘— โ€ข To test membership โ€ฆ โ„Ž 2 (๐‘ฆ) โ„Ž ๐‘™ (๐‘ฆ) โ„Ž 1 (๐‘ฆ) โ€ข Return โˆง ๐‘— ๐‘ โ„Ž ๐‘— ๐‘ฆ 0 0 0 0 0 0 ๐‘ = 1 0 1 1 1 1 1 1 1

  11. Bloom Filter ๐‘œ items โ†’ Bloom filter with ๐‘› slots and ๐‘™ hash functions โ€ข Membership: โ€ข Pr[ false negatives ] = 0 ๐‘™๐‘œ ๐‘› ๐‘™ โ€ข 1 โˆ’ ๐‘“ โˆ’ โ‰ˆ 2 โˆ’๐‘™ โ€ฆ โ„Ž 2 (๐‘ฆ) โ„Ž ๐‘™ (๐‘ฆ) โ„Ž 1 (๐‘ฆ) 0 0 0 0 0 0 ๐‘ = 1 0 1 1 1 1 1 1 1

  12. Bloom Filter ๐‘™๐‘œ ๐‘› ๐‘™๐‘™๐‘œ๐‘œ ๐‘™๐‘œ ๐‘› ๐‘›๐‘› ๐‘™๐‘œ ๐‘› ๐‘“ โˆ’ ๐‘™๐‘œ ๐‘› 1 โˆ’ ๐‘“ โˆ’ ๐‘™๐‘œ ๐‘› 1 โˆ’ ๐‘“ โˆ’ ๐‘™๐‘œ ๐‘› ๐‘™ ๐‘™๐‘™ 1 โˆ’ ๐‘“ โˆ’ ๐‘™๐‘œ ๐‘› ๐‘™ ๐‘“ โˆ’ ๐‘™ 1 โˆ’ ๐‘“ โˆ’ ๐‘™๐‘œ ๐‘› 1๐‘œ items โ†’ Bloom filter with ๐‘› ๐‘™๐‘œ ๐‘› ๐‘“๐‘“ ๐‘“ โˆ’ ๐‘™๐‘œ ๐‘› โˆ’ โˆ’ 1 โˆ’ ๐‘“ โˆ’ ๐‘™๐‘œ ๐‘› slots and ๐‘™ hash functions โ€ข Membership: โ€ข Pr[ false negatives ] = 0 ๐‘™๐‘œ ๐‘› ๐‘™ โ€ข Pr[ false positives ] = 1 โˆ’ ๐‘“ โˆ’ โ€ฆ โ„Ž 2 (๐‘ง) โ„Ž ๐‘™ (๐‘ง) โ„Ž 1 (๐‘ง) โ‰ˆ 2 โˆ’๐‘™ 0 0 0 0 0 0 ๐‘ = 1 0 1 1 1 1 1 1 1

  13. Bloom Filter โ‰ˆ 2 โˆ’ ๐‘™ 2 2 โˆ’ ๐‘™ โˆ’ ๐‘™๐‘™ 2 โˆ’ ๐‘™ โ‰ˆ 2 โˆ’ ๐‘™ 2 2 โˆ’ ๐‘™ โˆ’ ๐‘™๐‘™ 2 โˆ’ ๐‘™ ๐‘™๐‘œ ๐‘› ๐‘™๐‘™๐‘œ๐‘œ ๐‘™๐‘œ ๐‘› ๐‘›๐‘› ๐‘™๐‘œ ๐‘› ๐‘“ โˆ’ ๐‘™๐‘œ ๐‘› 1 โˆ’ ๐‘“ โˆ’ ๐‘™๐‘œ ๐‘› 1 โˆ’ ๐‘“ โˆ’ ๐‘™๐‘œ ๐‘› ๐‘™ ๐‘™๐‘™ 1 โˆ’ ๐‘“ โˆ’ ๐‘™๐‘œ ๐‘› ๐‘™ ๐‘“ โˆ’ ๐‘™ 1 โˆ’ ๐‘“ โˆ’ ๐‘™๐‘œ ๐‘› 1๐‘œ items โ†’ Bloom filter with ๐‘› ๐‘™๐‘œ ๐‘› ๐‘“๐‘“ ๐‘“ โˆ’ ๐‘™๐‘œ ๐‘› โˆ’ โˆ’ 1 โˆ’ ๐‘“ โˆ’ ๐‘™๐‘œ ๐‘› slots and ๐‘™ hash functions โ€ข Membership: โ€ฆ โ„Ž 2 (๐‘ง) โ„Ž ๐‘™ (๐‘ง) โ„Ž 1 (๐‘ง) โ‰ˆ 2 โˆ’๐‘™ โ‰ˆ 2 โˆ’๐‘™ โ‰ˆ 2 โˆ’๐‘™ 0 0 0 0 0 0 ๐‘ = 1 0 1 1 1 1 1 1 1

  14. Bloom Filter Intersection โ€ข Bitwise AND ๐ถ ๐‘Œ โˆง ๐ถ ๐‘ is a Bloom filter for ๐‘Œ โˆฉ ๐‘ ๐‘Œ = {๐‘, ๐‘} ๐ถ ๐‘Œ ๐‘ = {๐‘, ๐‘‘} ๐ถ ๐‘ 1 1 โ„Ž ๐‘— (๐‘) โ„Ž ๐‘— (๐‘) 1 โ„Ž ๐‘— (๐‘) 1 1 โ„Ž ๐‘— (๐‘‘) 1 1 1

  15. Bloom Filter Intersection โ€ข Bitwise AND ๐ถ ๐‘Œ โˆง ๐ถ ๐‘ is a Bloom filter for ๐‘Œ โˆฉ ๐‘ ๐‘Œ = {๐‘, ๐‘} ๐ถ ๐‘Œ ๐‘ = {๐‘, ๐‘‘} ๐ถ ๐‘Œ โˆง ๐ถ ๐‘ ๐ถ ๐‘ 1 1 1 โ„Ž ๐‘— (๐‘) โ„Ž ๐‘— (๐‘) โ„Ž ๐‘— (๐‘) 1 โ„Ž ๐‘— (๐‘) 1 1 ๐Ÿ โ„Ž ๐‘— (๐‘‘) 1 1 1 1

  16. Bloom Filter Protocol [DongChenWen13, PinkasSchniederZohner14] ๐‘ = {๐‘, ๐‘‘} ๐ถ ๐‘ 1 โŠฅ ๐’ ๐Ÿ โ„Ž ๐‘— (๐‘) ๐’ ๐Ÿ ๐’ ๐Ÿ‘ ๐’ ๐’‹ โ† ๐Ÿ, ๐Ÿ ๐€ โ‹ฎ ๐’ ๐Ÿ’ 1 ๐’ ๐Ÿ“ โ„Ž ๐‘— (๐‘‘) 1 ๐’ ๐Ÿ” โŠฅ ๐’ ๐Ÿ• 1

  17. Bloom Filter Protocol [DongChenWen13, PinkasSchniederZohner14] ๐‘ = {๐‘, ๐‘‘} ๐ถ ๐‘ ๐‘ƒ๐‘ˆ 1 โŠฅ ๐’ ๐Ÿ โ„Ž ๐‘— (๐‘) ๐’ ๐Ÿ ๐’ ๐Ÿ‘ โ€ฆ ๐’ ๐’‹ โ† ๐Ÿ, ๐Ÿ ๐€ โ‹ฎ ๐’ ๐Ÿ’ 1 ๐’ ๐Ÿ“ โ„Ž ๐‘— (๐‘‘) 1 ๐’ ๐Ÿ” ๐‘ƒ๐‘ˆ โŠฅ ๐’ ๐Ÿ• 1

  18. Bloom Filter Protocol [DongChenWen13, PinkasSchniederZohner14] Garbled Bloom filter ๐‘ = {๐‘, ๐‘‘} ๐ถ ๐‘ ๐‘ƒ๐‘ˆ 1 โŠฅ ๐’ ๐Ÿ ๐’ ๐Ÿ โ„Ž ๐‘— (๐‘) ๐’ ๐Ÿ โŠฅ ๐’ ๐Ÿ‘ โŠฅ โ€ฆ โ‹ฎ ๐’ ๐Ÿ’ ๐’ ๐Ÿ’ 1 ๐’ ๐Ÿ“ โŠฅ โ„Ž ๐‘— (๐‘‘) 1 ๐’ ๐Ÿ” ๐’ ๐Ÿ” ๐‘ƒ๐‘ˆ โŠฅ ๐’ ๐Ÿ• 1 ๐’ ๐Ÿ•

  19. Bloom Filter Protocol [DongChenWen13, PinkasSchniederZohner14] Garbled Bloom filter ๐‘ = {๐‘, ๐‘‘} ๐ถ ๐‘ ๐ถ ๐‘Œ ๐‘Œ = {๐‘, ๐‘} 1 ๐‘ƒ๐‘ˆ 1 โŠฅ ๐’ ๐Ÿ ๐’ ๐Ÿ โ„Ž ๐‘— (๐‘) ๐’ ๐Ÿ โŠฅ โ„Ž ๐‘— (๐‘) 1 ๐’ ๐Ÿ‘ โŠฅ โ„Ž ๐‘— (๐‘) โ€ฆ 1 โ‹ฎ ๐’ ๐Ÿ’ ๐’ ๐Ÿ’ 1 ๐’ ๐Ÿ“ โŠฅ โ„Ž ๐‘— (๐‘‘) 1 1 ๐’ ๐Ÿ” ๐’ ๐Ÿ” ๐‘ƒ๐‘ˆ โŠฅ ๐’ ๐Ÿ• 1 ๐’ ๐Ÿ•

  20. Bloom Filter Protocol [DongChenWen13, PinkasSchniederZohner14] Garbled Bloom filter ๐‘ = {๐‘, ๐‘‘} ๐ถ ๐‘ ๐ถ ๐‘Œ ๐‘Œ = {๐‘, ๐‘} 1 ๐‘ƒ๐‘ˆ 1 โŠฅ ๐’ ๐Ÿ ๐’ ๐Ÿ โ„Ž ๐‘— (๐‘) ๐’ ๐Ÿ โŠฅ โ„Ž ๐‘— (๐‘) 1 ๐’ ๐Ÿ‘ โŠฅ โ„Ž ๐‘— (๐‘) โ€ฆ 1 โ‹ฎ ๐’ ๐Ÿ’ ๐’ ๐Ÿ’ 1 ๐’ ๐Ÿ“ โŠฅ โ„Ž ๐‘— (๐‘‘) 1 1 ๐’ ๐Ÿ” ๐’ ๐Ÿ” ๐‘ƒ๐‘ˆ โŠฅ ๐’ ๐Ÿ• 1 ๐’ ๐Ÿ• ๐’€ = ๐’ ๐Ÿ โŠ• ๐’ ๐Ÿ” , ๐’ ๐Ÿ‘ โŠ• ๐’ ๐Ÿ’

  21. Bloom Filter Protocol [DongChenWen13, PinkasSchniederZohner14] Garbled Bloom filter ๐‘ = {๐‘, ๐‘‘} ๐ถ ๐‘ ๐ถ ๐‘Œ ๐‘Œ = {๐‘, ๐‘} 1 ๐‘ƒ๐‘ˆ 1 โŠฅ ๐’ ๐Ÿ ๐’ ๐Ÿ โ„Ž ๐‘— (๐‘) ๐’ ๐Ÿ โŠฅ โ„Ž ๐‘— (๐‘) 1 ๐’ ๐Ÿ‘ โŠฅ โ„Ž ๐‘— (๐‘) โ€ฆ 1 โ‹ฎ ๐’ ๐Ÿ’ ๐’ ๐Ÿ’ 1 ๐’ ๐Ÿ“ โŠฅ โ„Ž ๐‘— (๐‘‘) 1 1 ๐’ ๐Ÿ” ๐’ ๐Ÿ” ๐‘ƒ๐‘ˆ โŠฅ ๐’ ๐Ÿ• 1 ๐’ ๐Ÿ• Output the intersection ๐’€ = ๐’ ๐Ÿ โŠ• ๐’ ๐Ÿ” , ๐’ ๐Ÿ‘ โŠ• ๐’ ๐Ÿ’ ๐’€ โˆฉ ๐’ ๐Ÿ โŠ• ๐’ ๐Ÿ” , ๐’ ๐Ÿ’ โŠ• ๐’ ๐Ÿ•

  22. Semi-Honest Security [DongChenWen13, PinkasSchniederZohner14] Naturally secure against Sender. โ€ข OT hides select bits ๐‘Œ = {๐‘, ๐‘} ๐‘ = {๐‘, ๐‘‘} โ€ข Final message sent to Receiver OT โŠฅ ๐’ ๐Ÿ 1 ๐’ ๐Ÿ ๐’ ๐Ÿ โŠฅ โ„Ž ๐‘— (๐‘) ๐’ ๐Ÿ‘ โŠฅ โ€ฆ โ‹ฎ ๐’ ๐Ÿ’ ๐’ ๐Ÿ’ 1 โˆ‰ ๐‘, Receiver learns encoding โ€ข ๐’ ๐Ÿ“ โŠฅ โ„Ž ๐‘— (๐‘‘) e.g. Encode ๐‘งโ€ฒ = ๐‘› 3 โŠ• ๐‘› 4 ๐’ ๐Ÿ” 1 ๐’ ๐Ÿ” OT โŠฅ ๐’ ๐Ÿ• ๐’ ๐Ÿ• 1 โ€ข DCW13 show equivalence to false positive in Output: standard bloom filter ๐’€ = ๐’ ๐Ÿ โŠ• ๐’ ๐Ÿ” , ๐’€ โˆฉ ๐’ ๐Ÿ โŠ• ๐’ ๐Ÿ” , โ€ข Pr[ false positives ] โ‰ˆ 2 โˆ’๐‘™ ๐’ ๐Ÿ‘ โŠ• ๐’ ๐Ÿ’ ๐’ ๐Ÿ’ โŠ• ๐’ ๐Ÿ•

  23. Semi-Honest Security [DongChenWen13, PinkasSchniederZohner14] ๐‘ง โ€ฒ โˆ‰ ๐‘๐‘ , Receiver learns encoding Naturally secure against Sender. ๐‘Œ = {๐‘, ๐‘} ๐‘ = {๐‘, ๐‘‘} โ€ข OT hides select bits OT โŠฅ ๐’ ๐Ÿ 1 ๐’ ๐Ÿ ๐’ ๐Ÿ โ€ข Final message sent to Receiver โŠฅ โ„Ž ๐‘— (๐‘) ๐’ ๐Ÿ‘ โŠฅ โ€ฆ โ‹ฎ ๐’ ๐Ÿ’ ๐’ ๐Ÿ’ 1 โ€ข Secure against Receiver ๐’ ๐Ÿ“ โŠฅ โ„Ž ๐‘— (๐‘‘) โ€ข Attack: For ๐‘ง โ€ฒ โ€ฒ โ€ฒ โˆ‰ ๐‘, Receiver learns encoding ๐’ ๐Ÿ” 1 ๐’ ๐Ÿ” OT โŠฅ ๐’ ๐Ÿ• e.g. Encode ๐‘งโ€ฒ = ๐‘› 3 โŠ• ๐‘› 4 ๐’ ๐Ÿ• 1 Output: ๐’€ = ๐’ ๐Ÿ โŠ• ๐’ ๐Ÿ” , โ€ข DCW13 show equivalence to false positive in ๐’€ โˆฉ ๐’ ๐Ÿ โŠ• ๐’ ๐Ÿ” , ๐’ ๐Ÿ‘ โŠ• ๐’ ๐Ÿ’ ๐’ ๐Ÿ’ โŠ• ๐’ ๐Ÿ• standard bloom filter โ€ข Pr[ false positives ] โ‰ˆ 2 โˆ’๐‘™

  24. Semi-Honest Security [DongChenWen13, PinkasSchniederZohner14] e.g. Encode ๐‘ง โ€ฒ ๐‘ง๐‘ง โ€ฒ ๐‘ง โ€ฒ = ๐‘› 3 ๐‘›๐‘› ๐‘› 3 3 ๐‘› 3 โŠ• ๐‘› 4 ๐‘›๐‘› ๐‘› 4 4 ๐‘› 4 ๐‘Œ = {๐‘, ๐‘} ๐‘ = {๐‘, ๐‘‘} ๐‘ง โ€ฒ โˆ‰ ๐‘๐‘ , Receiver learns encoding OT โŠฅ ๐’ ๐Ÿ 1 ๐’ ๐Ÿ Naturally secure against Sender. ๐’ ๐Ÿ โŠฅ โ„Ž ๐‘— (๐‘) โ€ข OT hides select bits ๐’ ๐Ÿ‘ โŠฅ โ€ฆ โ‹ฎ ๐’ ๐Ÿ’ โ€ข Final message sent to Receiver ๐’ ๐Ÿ’ 1 ๐’ ๐Ÿ“ โŠฅ โ„Ž ๐‘— (๐‘‘) ๐’ ๐Ÿ” 1 ๐’ ๐Ÿ” โ€ข Secure against Receiver OT โŠฅ ๐’ ๐Ÿ• ๐’ ๐Ÿ• 1 e.g. ncode ๐‘งโ€ฒ = ๐‘› 3 โŠ• ๐‘› 4 Encode ๐‘งโ€ฒ = ๐‘› 3 โŠ• ๐‘› 4 Output: ๐’€ = ๐’ ๐Ÿ โŠ• ๐’ ๐Ÿ” , ๐’€ โˆฉ ๐’ ๐Ÿ โŠ• ๐’ ๐Ÿ” , ๐’ ๐Ÿ‘ โŠ• ๐’ ๐Ÿ’ โ€ข DCW13 show equivalence to false positive in ๐’ ๐Ÿ’ โŠ• ๐’ ๐Ÿ• standard bloom filter โ€ข Pr[ false positives ] โ‰ˆ 2 โˆ’๐‘™

Recommend


More recommend