batched non interactive 2pc

Batched Non-interactive 2PC Payman Mohassel Mike Rosulek Visa - PowerPoint PPT Presentation

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


  1. Batched Non-interactive 2PC Payman Mohassel Mike Rosulek Visa Research OSU

  2. Secure Two-Party Computation ๐’› ๐’š ๐‘„ 2 ๐‘„ 1 ๐‘”(๐‘ฆ, ๐‘ง)

  3. Secure Two-Party Computation ๐’› ๐’š ๐‘„ 2 ๐‘„ 1 ๐‘”(๐‘ฆ, ๐‘ง)

  4. Non-Interactive Secure Computation (NISC) ๐‘ 1 ๐’› ๐’š ๐‘„ ๐‘ 2 ๐‘„ 2 1

  5. Non-Interactive Secure Computation (NISC) ๐‘ 1 โ€ข Over the internet ๐’› ๐’š ๐‘„ ๐‘ 2 ๐‘„ 2 โ€ข Without coordination 1 โ€ข Email โ€ข Bulletin boards

  6. Non-Interactive Secure Computation (NISC) ๐‘ 1 โ€ข Over the internet ๐’› ๐’š ๐‘„ ๐‘ 2 ๐‘„ 2 โ€ข Without coordination 1 โ€ข Email โ€ข Bulletin boards Comparable to best 2PC [AMPR14]

  7. Batched 2PC ๐’š ๐Ÿ ๐’› ๐Ÿ ๐‘„ 2 ๐‘„ 1 ๐’š ๐Ÿ‘ ๐’› ๐Ÿ‘ โ‹ฎ ๐’š ๐‘ถ ๐’› ๐‘ถ

  8. Batched 2PC โ€ข Better amortized efficiency ๐’š ๐Ÿ ๐’› ๐Ÿ โ€ข ๐‘š๐‘๐‘•๐‘‚ improvement ๐‘„ 2 ๐‘„ 1 โ€ข [NO09,FJNNO13, LR14,HKKKM14, โ€ฆ ] ๐’š ๐Ÿ‘ ๐’› ๐Ÿ‘ โ‹ฎ ๐’š ๐‘ถ ๐’› ๐‘ถ

  9. Batched 2PC โ€ข Better amortized efficiency ๐’š ๐Ÿ ๐’› ๐Ÿ โ€ข ๐‘š๐‘๐‘•๐‘‚ improvement ๐‘„ 2 ๐‘„ 1 โ€ข [NO09,FJNNO13, LR14,HKKKM14, โ€ฆ ] ๐’š ๐Ÿ‘ ๐’› ๐Ÿ‘ โ‹ฎ 4 rounds ๐’š ๐‘ถ ๐’› ๐‘ถ

  10. Best of Both Worlds ๐‘ต ๐Ÿ ๐‘ฆ 1 ๐‘ง 1 โ€ข ๐‘ˆ๐‘ฅ๐‘ ๐‘ ๐‘๐‘ฃ๐‘œ๐‘’๐‘ก โ‹ฎ โ‹ฎ ๐‘ฆ ๐‘‚ ๐‘ง ๐‘‚ ๐‘„ ๐‘ต ๐Ÿ‘ โ€ข ๐‘š๐‘๐‘•๐‘‚ ๐‘—๐‘›๐‘ž๐‘ ๐‘๐‘ค๐‘“๐‘›๐‘“๐‘œ๐‘ข 1 ๐‘„ 2

  11. 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

  12. Cut-and-Choose 2PC (majority) ๐‘ฆ ๐ป๐ท 1 ๐ป๐ท 1 ๐‘ฆ ๐‘จ 2 ๐ป๐ท 2 ๐ป๐ท 2 ๐’š ๐ป๐ท 3 ๐ป๐ท 3 โ‹ฎ ๐‘„ 1 ๐‘จ 4 ๐‘จ = ๐‘”(๐‘ฆ, ๐‘ง) ๐ป๐ท 4 ๐ป๐ท 4 ๐ป๐ท 5 ๐ป๐ท 5 ๐‘จ 6 ๐‘ฆ ๐ป๐ท 6 ๐ป๐ท 6

  13. 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 ๐‘ฆ

  14. 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

  15. Single NISC ๐ป๐ท ๐‘— โ† ๐ป๐‘๐‘ ๐‘(๐ท, ๐‘ก๐‘’ ๐‘— ) ๐ป๐ฝ ๐‘ฆ ๐ป๐ท ๐‘— ๐ฟ ๐‘—

  16. Single NISC ๐ป๐ท ๐‘— โ† ๐ป๐‘๐‘ ๐‘(๐ท, ๐‘ก๐‘’ ๐‘— ) ๐ป๐ฝ ๐‘ฆ ๐ป๐ท ๐‘— ๐ฟ ๐‘— ๐‘— ๐‘—๐‘œ 0 Evaluator input 0/1 Probe-resistant encoding Input OT ๐‘— ๐‘—๐‘œ 1

  17. Single NISC ๐ป๐ท ๐‘— โ† ๐ป๐‘๐‘ ๐‘(๐ท, ๐‘ก๐‘’ ๐‘— ) ๐ป๐ฝ ๐‘ฆ ๐ป๐ท ๐‘— ๐ฟ ๐‘— ๐‘— ๐‘—๐‘œ 0 Evaluator input 0/1 Probe-resistant encoding Input OT ๐‘— ๐‘—๐‘œ 1 ๐‘ก๐‘’ ๐‘— Open/evaluate Circuit OT Cut and choose ๐ฟ ๐‘—

  18. 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 ๐ผ๐ท๐‘ƒ๐‘ ๐‘ฆ

  19. 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 ๐ผ๐ท๐‘ƒ๐‘ ๐‘ฆ

  20. 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

  21. 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

  22. 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

  23. Batch 2PC

  24. Batch 2PC ๐ป๐ท 1 ๐ป๐ท 2 ๐ป๐ท 3 ๐ป๐ท 4 ๐ป๐ท 5 ๐ป๐ท 6 ๐ป๐ท 7

  25. Batch 2PC ๐ป๐ท 1 ๐ป๐ท 2 ๐ป๐ท 3 ๐ป๐ท 4 ๐ป๐ท 5 ๐ป๐ท 6 ๐ป๐ท 7 ๐’š ๐Ÿ’ , ๐’› ๐Ÿ’ ๐’š ๐Ÿ , ๐’› ๐Ÿ ๐’š ๐Ÿ‘ , ๐’› ๐Ÿ‘ ๐‘‚ ๐ถ ๐ถ ๐ถ

  26. Batch 2PC ๐ป๐ท 1 ๐ป๐ท 2 ๐ป๐ท 3 ๐ป๐ท 4 ๐ป๐ท 5 ๐ป๐ท 6 ๐ป๐ท 7 ๐’š ๐Ÿ’ , ๐’› ๐Ÿ’ ๐’š ๐Ÿ , ๐’› ๐Ÿ ๐’š ๐Ÿ‘ , ๐’› ๐Ÿ‘ ๐‘‚ ๐ป๐ท 4 ๐ป๐ท 1 ๐ป๐ท 5 ๐ป๐ท 7 ๐ป๐ท 6 ๐ป๐ท 2 ๐ป๐ท 3 ๐ถ ๐ถ ๐ถ

  27. Batch 2PC = ๐‘‚๐œ‡ ๐ป๐ท 1 ๐ป๐ท 2 ๐ป๐ท 3 ๐ป๐ท 4 ๐ป๐ท 5 ๐ป๐ท 6 ๐ป๐ท 7 ๐‘‚ ๐‘š๐‘๐‘•๐‘‚ ๐’š ๐Ÿ’ , ๐’› ๐Ÿ’ ๐’š ๐Ÿ , ๐’› ๐Ÿ ๐’š ๐Ÿ‘ , ๐’› ๐Ÿ‘ ๐‘‚ ๐ป๐ท 4 ๐ป๐ท 1 ๐ป๐ท 5 ๐ป๐ท 7 ๐ป๐ท 6 ๐ป๐ท 2 ๐ป๐ท 3 โˆ’ ๐‘‚๐ถ ๐ถ ๐ถ ๐ถ ๐‘‚

  28. Batch 2PC = ๐‘‚๐œ‡ ๐ป๐ท 1 ๐ป๐ท 2 ๐ป๐ท 3 ๐ป๐ท 4 ๐ป๐ท 5 ๐ป๐ท 6 ๐ป๐ท 7 ๐‘‚ ๐‘š๐‘๐‘•๐‘‚ ๐’š ๐Ÿ’ , ๐’› ๐Ÿ’ ๐’š ๐Ÿ , ๐’› ๐Ÿ ๐’š ๐Ÿ‘ , ๐’› ๐Ÿ‘ ๐‘‚ ๐ป๐ท 4 ๐ป๐ท 1 ๐ป๐ท 5 ๐ป๐ท 7 ๐ป๐ท 6 ๐ป๐ท 2 ๐ป๐ท 3 โˆ’ ๐‘‚๐ถ ๐ถ ๐ถ ๐ถ ๐‘‚ 1. Obliviously assign circuits to open/evaluate buckets

  29. 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

  30. 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

  31. 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

  32. 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