Improved Private Set Intersection against Malicious Adversaries Peter Rindal Mike Rosulek
Private Set Intersection (PSI) ๐ ๐ ๐ โฉ ๐
Private Set Intersection (PSI) โSenderโ โReceiverโ ๐ ๐ PSI ๐ โฉ ๐
App: Contact discovery Users Contacts PSI ๐ โฉ ๐
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
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
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
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
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
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
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
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
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
Bloom Filter Intersection โข Bitwise AND ๐ถ ๐ โง ๐ถ ๐ is a Bloom filter for ๐ โฉ ๐ ๐ = {๐, ๐} ๐ถ ๐ ๐ = {๐, ๐} ๐ถ ๐ 1 1 โ ๐ (๐) โ ๐ (๐) 1 โ ๐ (๐) 1 1 โ ๐ (๐) 1 1 1
Bloom Filter Intersection โข Bitwise AND ๐ถ ๐ โง ๐ถ ๐ is a Bloom filter for ๐ โฉ ๐ ๐ = {๐, ๐} ๐ถ ๐ ๐ = {๐, ๐} ๐ถ ๐ โง ๐ถ ๐ ๐ถ ๐ 1 1 1 โ ๐ (๐) โ ๐ (๐) โ ๐ (๐) 1 โ ๐ (๐) 1 1 ๐ โ ๐ (๐) 1 1 1 1
Bloom Filter Protocol [DongChenWen13, PinkasSchniederZohner14] ๐ = {๐, ๐} ๐ถ ๐ 1 โฅ ๐ ๐ โ ๐ (๐) ๐ ๐ ๐ ๐ ๐ ๐ โ ๐, ๐ ๐ โฎ ๐ ๐ 1 ๐ ๐ โ ๐ (๐) 1 ๐ ๐ โฅ ๐ ๐ 1
Bloom Filter Protocol [DongChenWen13, PinkasSchniederZohner14] ๐ = {๐, ๐} ๐ถ ๐ ๐๐ 1 โฅ ๐ ๐ โ ๐ (๐) ๐ ๐ ๐ ๐ โฆ ๐ ๐ โ ๐, ๐ ๐ โฎ ๐ ๐ 1 ๐ ๐ โ ๐ (๐) 1 ๐ ๐ ๐๐ โฅ ๐ ๐ 1
Bloom Filter Protocol [DongChenWen13, PinkasSchniederZohner14] Garbled Bloom filter ๐ = {๐, ๐} ๐ถ ๐ ๐๐ 1 โฅ ๐ ๐ ๐ ๐ โ ๐ (๐) ๐ ๐ โฅ ๐ ๐ โฅ โฆ โฎ ๐ ๐ ๐ ๐ 1 ๐ ๐ โฅ โ ๐ (๐) 1 ๐ ๐ ๐ ๐ ๐๐ โฅ ๐ ๐ 1 ๐ ๐
Bloom Filter Protocol [DongChenWen13, PinkasSchniederZohner14] Garbled Bloom filter ๐ = {๐, ๐} ๐ถ ๐ ๐ถ ๐ ๐ = {๐, ๐} 1 ๐๐ 1 โฅ ๐ ๐ ๐ ๐ โ ๐ (๐) ๐ ๐ โฅ โ ๐ (๐) 1 ๐ ๐ โฅ โ ๐ (๐) โฆ 1 โฎ ๐ ๐ ๐ ๐ 1 ๐ ๐ โฅ โ ๐ (๐) 1 1 ๐ ๐ ๐ ๐ ๐๐ โฅ ๐ ๐ 1 ๐ ๐
Bloom Filter Protocol [DongChenWen13, PinkasSchniederZohner14] Garbled Bloom filter ๐ = {๐, ๐} ๐ถ ๐ ๐ถ ๐ ๐ = {๐, ๐} 1 ๐๐ 1 โฅ ๐ ๐ ๐ ๐ โ ๐ (๐) ๐ ๐ โฅ โ ๐ (๐) 1 ๐ ๐ โฅ โ ๐ (๐) โฆ 1 โฎ ๐ ๐ ๐ ๐ 1 ๐ ๐ โฅ โ ๐ (๐) 1 1 ๐ ๐ ๐ ๐ ๐๐ โฅ ๐ ๐ 1 ๐ ๐ ๐ = ๐ ๐ โ ๐ ๐ , ๐ ๐ โ ๐ ๐
Bloom Filter Protocol [DongChenWen13, PinkasSchniederZohner14] Garbled Bloom filter ๐ = {๐, ๐} ๐ถ ๐ ๐ถ ๐ ๐ = {๐, ๐} 1 ๐๐ 1 โฅ ๐ ๐ ๐ ๐ โ ๐ (๐) ๐ ๐ โฅ โ ๐ (๐) 1 ๐ ๐ โฅ โ ๐ (๐) โฆ 1 โฎ ๐ ๐ ๐ ๐ 1 ๐ ๐ โฅ โ ๐ (๐) 1 1 ๐ ๐ ๐ ๐ ๐๐ โฅ ๐ ๐ 1 ๐ ๐ Output the intersection ๐ = ๐ ๐ โ ๐ ๐ , ๐ ๐ โ ๐ ๐ ๐ โฉ ๐ ๐ โ ๐ ๐ , ๐ ๐ โ ๐ ๐
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 โ๐ ๐ ๐ โ ๐ ๐ ๐ ๐ โ ๐ ๐
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 โ๐
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