Batched Non-interactive 2PC Payman Mohassel Mike Rosulek Visa Research OSU
Secure Two-Party Computation ๐ ๐ ๐ 2 ๐ 1 ๐(๐ฆ, ๐ง)
Secure Two-Party Computation ๐ ๐ ๐ 2 ๐ 1 ๐(๐ฆ, ๐ง)
Non-Interactive Secure Computation (NISC) ๐ 1 ๐ ๐ ๐ ๐ 2 ๐ 2 1
Non-Interactive Secure Computation (NISC) ๐ 1 โข Over the internet ๐ ๐ ๐ ๐ 2 ๐ 2 โข Without coordination 1 โข Email โข Bulletin boards
Non-Interactive Secure Computation (NISC) ๐ 1 โข Over the internet ๐ ๐ ๐ ๐ 2 ๐ 2 โข Without coordination 1 โข Email โข Bulletin boards Comparable to best 2PC [AMPR14]
Batched 2PC ๐ ๐ ๐ ๐ ๐ 2 ๐ 1 ๐ ๐ ๐ ๐ โฎ ๐ ๐ถ ๐ ๐ถ
Batched 2PC โข Better amortized efficiency ๐ ๐ ๐ ๐ โข ๐๐๐๐ improvement ๐ 2 ๐ 1 โข [NO09,FJNNO13, LR14,HKKKM14, โฆ ] ๐ ๐ ๐ ๐ โฎ ๐ ๐ถ ๐ ๐ถ
Batched 2PC โข Better amortized efficiency ๐ ๐ ๐ ๐ โข ๐๐๐๐ improvement ๐ 2 ๐ 1 โข [NO09,FJNNO13, LR14,HKKKM14, โฆ ] ๐ ๐ ๐ ๐ โฎ 4 rounds ๐ ๐ถ ๐ ๐ถ
Best of Both Worlds ๐ต ๐ ๐ฆ 1 ๐ง 1 โข ๐๐ฅ๐ ๐ ๐๐ฃ๐๐๐ก โฎ โฎ ๐ฆ ๐ ๐ง ๐ ๐ ๐ต ๐ โข ๐๐๐๐ ๐๐๐๐ ๐๐ค๐๐๐๐๐ข 1 ๐ 2
Yaoโs Garbled Circuits ๐ท ๐ฆ, ๐ง = ๐(๐ฆ, ๐ง) 1 , ๐ 1 1 ๐ 0 ๐ป๐ท โ ๐ป๐๐ ๐(๐ท, ๐ก๐) 3 , ๐ 1 3 ๐ 0 2 , ๐ 1 2 ๐ 0 AND ๐ป๐ฝ ๐ฆ ๐ป๐ฝ ๐ฆ โ ๐ป๐ฝ๐(๐ฆ, ๐ก๐) ๐ ๐ ๐ป๐ท Evaluator Garbler 3 ) ๐ 0,0 = ๐น ๐ 0 2 (๐ 0 1 ,๐ 0 3 ) ๐ 0,1 = ๐น ๐ 0 2 (๐ 0 1 ,๐ 1 Oblivious Transfer ๐ป๐ฝ ๐ง ๐(๐, ๐) 3 ) ๐ 1,0 = ๐น ๐ 1 2 (๐ 0 1 ,๐ 0 3 ) ๐ 1,1 = ๐น ๐ 1 2 (๐ 1 1 ,๐ 1
Cut-and-Choose 2PC (majority) ๐ฆ ๐ป๐ท 1 ๐ป๐ท 1 ๐ฆ ๐จ 2 ๐ป๐ท 2 ๐ป๐ท 2 ๐ ๐ป๐ท 3 ๐ป๐ท 3 โฎ ๐ 1 ๐จ 4 ๐จ = ๐(๐ฆ, ๐ง) ๐ป๐ท 4 ๐ป๐ท 4 ๐ป๐ท 5 ๐ป๐ท 5 ๐จ 6 ๐ฆ ๐ป๐ท 6 ๐ป๐ท 6
Cut-and-Choose 2PC (Forge and Lose) ๐ฆ ๐ป๐ท 1 ๐ป๐ท 1 ๐ฆ ๐จ 2 ๐ป๐ท 2 ๐ป๐ท 2 ๐จ ๐ ๐ป๐ท 3 ๐ป๐ท 3 ๐จโฒ โฎ Cheating ๐ 1 Recovery ๐จ 4 ๐ป๐ท 4 ๐ป๐ท 4 ๐ฆ 2PC ๐ป๐ท 5 ๐ป๐ท 5 ๐จ 6 ๐ฆ ๐ป๐ท 6 ๐ป๐ท 6 ๐ฆ
Homomorphic Commitments โข Hiding and Binding โข ๐ผ๐ท๐๐ ๐, ๐ ๐ , ๐ผ๐ท๐๐ ๐, ๐ ๐ โข Open to ๐ โ ๐ , using opening ๐ ๐ โ ๐ ๐ โข Pedersen commitments โข OT-based Commitments [LR15] โข Non-interactive, rate 1/๐ โข (OT+ code)-based commitments [FJNT16] โข Constant rate, interactive setup โข Fiat-Shamir
Single NISC ๐ป๐ท ๐ โ ๐ป๐๐ ๐(๐ท, ๐ก๐ ๐ ) ๐ป๐ฝ ๐ฆ ๐ป๐ท ๐ ๐ฟ ๐
Single NISC ๐ป๐ท ๐ โ ๐ป๐๐ ๐(๐ท, ๐ก๐ ๐ ) ๐ป๐ฝ ๐ฆ ๐ป๐ท ๐ ๐ฟ ๐ ๐ ๐๐ 0 Evaluator input 0/1 Probe-resistant encoding Input OT ๐ ๐๐ 1
Single NISC ๐ป๐ท ๐ โ ๐ป๐๐ ๐(๐ท, ๐ก๐ ๐ ) ๐ป๐ฝ ๐ฆ ๐ป๐ท ๐ ๐ฟ ๐ ๐ ๐๐ 0 Evaluator input 0/1 Probe-resistant encoding Input OT ๐ ๐๐ 1 ๐ก๐ ๐ Open/evaluate Circuit OT Cut and choose ๐ฟ ๐
Single NISC ๐ป๐ท ๐ โ ๐ป๐๐ ๐(๐ท, ๐ก๐ ๐ ) ๐ป๐ฝ ๐ฆ ๐ป๐ท ๐ ๐ฟ ๐ ๐ ๐๐ 0 Evaluator input 0/1 Probe-resistant encoding Input OT ๐ ๐๐ 1 ๐ก๐ ๐ Open/evaluate Circuit OT Cut and choose ๐ฟ ๐ permutation bit ๐ผ๐ท๐๐ ๐ก ๐ , ๐ ๐ ๐ท๐๐ ๐๐ 0โ๐ก ๐ , ๐ท๐๐(๐๐ 1โ๐ก ๐ ) Garbler input ๐ผ๐ท๐๐ ๐ฆ
Single NISC ๐ป๐ท ๐ โ ๐ป๐๐ ๐(๐ท, ๐ก๐ ๐ ) ๐ป๐ฝ ๐ฆ ๐ป๐ท ๐ ๐ฟ ๐ ๐ ๐๐ 0 Evaluator input 0/1 Probe-resistant encoding Input OT ๐ ๐๐ 1 ๐ ๐ ๐ก๐ ๐ Open/evaluate Circuit OT Cut and choose ๐ โ ๐ ๐ ๐ฟ ๐ permutation bit ๐ผ๐ท๐๐ ๐ก ๐ , ๐ ๐ ๐ท๐๐ ๐๐ 0โ๐ก ๐ , ๐ท๐๐(๐๐ 1โ๐ก ๐ ) Garbler input ๐ผ๐ท๐๐ ๐ฆ
Single NISC ๐ป๐ท ๐ โ ๐ป๐๐ ๐(๐ท, ๐ก๐ ๐ ) ๐ป๐ฝ ๐ฆ ๐ป๐ท ๐ ๐ฟ ๐ ๐ ๐๐ 0 Evaluator input 0/1 Probe-resistant encoding Input OT ๐ ๐๐ 1 ๐ ๐ ๐ก๐ ๐ Open/evaluate Circuit OT Cut and choose ๐ โ ๐ ๐ ๐ฟ ๐ permutation bit ๐ผ๐ท๐๐ ๐ก ๐ , ๐ ๐ ๐ท๐๐ ๐๐ 0โ๐ก ๐ , ๐ท๐๐(๐๐ 1โ๐ก ๐ ) Garbler input ๐ผ๐ท๐๐ ๐ฆ ๐ ๐ ๐ผ๐ท๐๐ ๐ฅ 0 ๐ผ๐ท๐๐ ๐๐ฃ๐ข 0 Cheating recovery ๐ โ ๐ฅ 1 ๐ = ๐ฆ ๐ ๐ ๐ฅ 0 ๐ผ๐ท๐๐ ๐๐ฃ๐ข 1 ๐ผ๐ท๐๐ ๐ฅ 1
Single NISC ๐ป๐ท ๐ โ ๐ป๐๐ ๐(๐ท, ๐ก๐ ๐ ) ๐ป๐ฝ ๐ฆ ๐ป๐ท ๐ ๐ฟ ๐ ๐ ๐๐ 0 Evaluator input 0/1 Probe-resistant encoding Input OT ๐ ๐๐ 1 ๐ ๐ ๐ก๐ ๐ Open/evaluate Circuit OT Cut and choose ๐ โ ๐ ๐ ๐ฟ ๐ permutation bit ๐ผ๐ท๐๐ ๐ก ๐ ๐ ๐ ๐ท๐๐ ๐๐ 0โ๐ก ๐ , ๐ท๐๐(๐๐ 1โ๐ก ๐ ) Garbler input ๐ผ๐ท๐๐ ๐ฆ , open to zero ๐ ๐ ๐ผ๐ท๐๐ ๐ฅ 0 ๐ผ๐ท๐๐ ๐๐ฃ๐ข 0 Cheating recovery ๐ โ ๐ฅ 1 ๐ = ๐ฆ ๐ ๐ ๐ฅ 0 ๐ผ๐ท๐๐ ๐๐ฃ๐ข 1 ๐ผ๐ท๐๐ ๐ฅ 1
Single NISC ๐ป๐ท ๐ โ ๐ป๐๐ ๐(๐ท, ๐ก๐ ๐ ) ๐ป๐ฝ ๐ฆ ๐ป๐ท ๐ ๐ฟ ๐ ๐ ๐๐ 0 Evaluator input 0/1 Probe-resistant encoding Input OT ๐ ๐๐ 1 ๐ , ๐๐๐ ๐ ๐ ๐๐๐ ๐ ๐ ๐ ๐ก๐ ๐ Open/evaluate ๐ โ ๐ ๐ ๐ Circuit OT ๐๐๐ ๐ Cut and choose ๐ โ ๐ ๐ ๐ฟ ๐ ๐ โ ๐ ๐ ๐ ๐๐๐ ๐ permutation bit ๐ผ๐ท๐๐ ๐ก ๐ ๐ ๐ ๐ท๐๐ ๐๐ 0โ๐ก ๐ , ๐ท๐๐(๐๐ 1โ๐ก ๐ ) Garbler input ๐ผ๐ท๐๐ ๐ฆ , open to zero ๐ ๐ ๐ผ๐ท๐๐ ๐ฅ 0 ๐ผ๐ท๐๐ ๐๐ฃ๐ข 0 Cheating recovery ๐ โ ๐ฅ 1 ๐ = ๐ฆ ๐ ๐ ๐ฅ 0 ๐ผ๐ท๐๐ ๐๐ฃ๐ข 1 ๐ผ๐ท๐๐ ๐ฅ 1
Batch 2PC
Batch 2PC ๐ป๐ท 1 ๐ป๐ท 2 ๐ป๐ท 3 ๐ป๐ท 4 ๐ป๐ท 5 ๐ป๐ท 6 ๐ป๐ท 7
Batch 2PC ๐ป๐ท 1 ๐ป๐ท 2 ๐ป๐ท 3 ๐ป๐ท 4 ๐ป๐ท 5 ๐ป๐ท 6 ๐ป๐ท 7 ๐ ๐ , ๐ ๐ ๐ ๐ , ๐ ๐ ๐ ๐ , ๐ ๐ ๐ ๐ถ ๐ถ ๐ถ
Batch 2PC ๐ป๐ท 1 ๐ป๐ท 2 ๐ป๐ท 3 ๐ป๐ท 4 ๐ป๐ท 5 ๐ป๐ท 6 ๐ป๐ท 7 ๐ ๐ , ๐ ๐ ๐ ๐ , ๐ ๐ ๐ ๐ , ๐ ๐ ๐ ๐ป๐ท 4 ๐ป๐ท 1 ๐ป๐ท 5 ๐ป๐ท 7 ๐ป๐ท 6 ๐ป๐ท 2 ๐ป๐ท 3 ๐ถ ๐ถ ๐ถ
Batch 2PC = ๐๐ ๐ป๐ท 1 ๐ป๐ท 2 ๐ป๐ท 3 ๐ป๐ท 4 ๐ป๐ท 5 ๐ป๐ท 6 ๐ป๐ท 7 ๐ ๐๐๐๐ ๐ ๐ , ๐ ๐ ๐ ๐ , ๐ ๐ ๐ ๐ , ๐ ๐ ๐ ๐ป๐ท 4 ๐ป๐ท 1 ๐ป๐ท 5 ๐ป๐ท 7 ๐ป๐ท 6 ๐ป๐ท 2 ๐ป๐ท 3 โ ๐๐ถ ๐ถ ๐ถ ๐ถ ๐
Batch 2PC = ๐๐ ๐ป๐ท 1 ๐ป๐ท 2 ๐ป๐ท 3 ๐ป๐ท 4 ๐ป๐ท 5 ๐ป๐ท 6 ๐ป๐ท 7 ๐ ๐๐๐๐ ๐ ๐ , ๐ ๐ ๐ ๐ , ๐ ๐ ๐ ๐ , ๐ ๐ ๐ ๐ป๐ท 4 ๐ป๐ท 1 ๐ป๐ท 5 ๐ป๐ท 7 ๐ป๐ท 6 ๐ป๐ท 2 ๐ป๐ท 3 โ ๐๐ถ ๐ถ ๐ถ ๐ถ ๐ 1. Obliviously assign circuits to open/evaluate buckets
Batch 2PC = ๐๐ ๐ป๐ท 1 ๐ป๐ท 2 ๐ป๐ท 3 ๐ป๐ท 4 ๐ป๐ท 5 ๐ป๐ท 6 ๐ป๐ท 7 ๐ ๐๐๐๐ ๐ ๐ , ๐ ๐ ๐ ๐ , ๐ ๐ ๐ ๐ , ๐ ๐ ๐ ๐ป๐ท 4 ๐ป๐ท 1 ๐ป๐ท 5 ๐ป๐ท 7 ๐ป๐ท 6 ๐ป๐ท 2 ๐ป๐ท 3 โ ๐๐ถ ๐ถ ๐ถ ๐ถ ๐ 1. Obliviously assign circuits to open/evaluate buckets 2. Garble inputs before knowing assignment
Batch 2PC = ๐๐ ๐ป๐ท 1 ๐ป๐ท 2 ๐ป๐ท 3 ๐ป๐ท 4 ๐ป๐ท 5 ๐ป๐ท 6 ๐ป๐ท 7 ๐ ๐๐๐๐ ๐ ๐ , ๐ ๐ ๐ ๐ , ๐ ๐ ๐ ๐ , ๐ ๐ ๐ ๐ป๐ท 4 ๐ป๐ท 1 ๐ป๐ท 5 ๐ป๐ท 7 ๐ป๐ท 6 ๐ป๐ท 2 ๐ป๐ท 3 โ ๐๐ถ ๐ถ ๐ถ ๐ถ ๐ 1. Obliviously assign circuits to open/evaluate buckets 2. Garble inputs before knowing assignment 3. Input consistency before knowing assignment
Batch 2PC = ๐๐ ๐ป๐ท 1 ๐ป๐ท 2 ๐ป๐ท 3 ๐ป๐ท 4 ๐ป๐ท 5 ๐ป๐ท 6 ๐ป๐ท 7 ๐ ๐๐๐๐ ๐ ๐ , ๐ ๐ ๐ ๐ , ๐ ๐ ๐ ๐ , ๐ ๐ ๐ ๐ป๐ท 4 ๐ป๐ท 1 ๐ป๐ท 5 ๐ป๐ท 7 ๐ป๐ท 6 ๐ป๐ท 2 ๐ป๐ท 3 โ ๐๐ถ ๐ถ ๐ถ ๐ถ ๐ 1. Obliviously assign circuits to open/evaluate buckets 2. Garble inputs before knowing assignment 3. Input consistency before knowing assignment 4. Output recovery before knowing assignment
Batch 2PC = ๐๐ ๐ป๐ท 1 ๐ป๐ท 2 ๐ป๐ท 3 ๐ป๐ท 4 ๐ป๐ท 5 ๐ป๐ท 6 ๐ป๐ท 7 ๐ ๐๐๐๐ ๐ ๐ , ๐ ๐ ๐ ๐ , ๐ ๐ ๐ ๐ , ๐ ๐ ๐ ๐ป๐ท 4 ๐ป๐ท 1 ๐ป๐ท 5 ๐ป๐ท 7 ๐ป๐ท 6 ๐ป๐ท 2 ๐ป๐ท 3 โ ๐๐ถ ๐ถ ๐ถ ๐ถ ๐ 1. Obliviously assign circuits to open/evaluate buckets Naive Solution: Prepare garbled inputs and gadgets for all N possibilities 2. Garble inputs before knowing assignment Perform 1-out-of-N OT for each circuit 3. Input consistency before knowing assignment 4. Output recovery before knowing assignment
Recommend
More recommend