Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority
Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority
复制标题
Diogenes:轻量级可扩展 RSA 模数生成与不诚实的多数
DOI:
--
复制
发表时间:
2021
期刊:
影响因子:
--
通讯作者:
Ruihan Wang
中科院分区:
文献类型:
--
作者:
Megan Chen;Carmit Hazay;Yuval Ishai;Yuriy Kashnikov;Daniele Micciancio;Tarik Riviere;Abhi Shelat;Muthuramakrishnan Venkitasubramaniam;Ruihan Wang
In this work, we design and implement the first protocol for distributed generation of an RSA modulus that can support thousands of parties and offers security against active corruption of an arbitrary number of parties. In a nutshell, we first design a highly optimized protocol for this scale that is secure against passive corruptions, and then amplify its security to withstand active corruptions using lightweight succinct zero-knowledge proofs. Our protocol achieves security with "identifiable abort," where a corrupted party is identified whenever the protocol aborts, and supports public verifiability.Our protocol against passive corruptions extends the recent work of Chen et al. (CRYPTO 2020) that, in turn, is based on the blueprint introduced in the original work of Boneh-Franklin protocol (CRYPTO 1997, J. ACM, 2001). Specifically, we reduce the task of sampling a modulus to secure distributed multiplication, which we implement via an efficient threshold additively homomorphic encryption scheme based on the Ring-LWE assumption. This results in a protocol where the (amortized) per-party communication cost grows logarithmically in the number of parties. In order to minimize the work done by the parties, we employ a "publicly verifiable" coordinator that is connected to all parties and only performs computations on public data.We implemented both the passive and the active variants of our protocol and ran experiments using 2 to 4,000 parties. This is the first implementation of any MPC protocol that can scale to more than 1,000 parties. For generating a 2048-bit modulus among 1,000 parties, our passive protocol executed in under 6 minutes and the active variant ran in under 25 minutes.