The recent breakthrough on general-purpose program obfuscation [16] has spurred a large body of research that studies different flavors of obfuscation and their applications. Much of this research is driven by the goal of minimizing interaction. In this work we revisit the question of minimizing interaction in the broad context of secure multiparty computation (MPC). This question is independently motivated by the goal of obtaining useful multi-party variants of obfuscation and related primitives such as functional encryption [5, 28, 29].
Non-Interactive MPC. Consider the following non-interactive model of computation: there are n parties who wish to securely evaluate a function f on their joint inputs. For instance, the parties may wish to compute a majority of their 0/1 inputs for the purpose of voting. The parties are completely asynchronous. At any point, a party can “wake up” and submit a single message to a central server, also referred to as the evaluator. Upon receiving all the messages, the evaluator computes the output.
The above model represents an example of MPC with limited interaction, and contrasts with traditional MPC models [18, 31] where the parties freely interact with each other. Indeed, there are many scenarios where more limited forms of interaction are desirable, e.g., when the parties cannot be simultaneously available due to physical constraints or due to efficiency considerations.
The non-interactive model of computation was first proposed by Feige, Kilian and Naor (FKN) [13]. In their model, they allow the messages of the parties to depend on secret randomness that is unknown to the evaluator. As a result, a major disadvantage of their model is that it does not provide any security in case the evaluator colludes with one or more parties.Footnote 1
The study of collusion-resistant MPC protocols with restricted interaction was initiated by Halevi et al. (HLP) [24]. They considered a variation of the non-interactive model in which the parties sequentially interact with the evaluator, where this interaction can depend on a public-key infrastructure (PKI). Subsequent to their work, Beimel et al. [3] and Halevi et al. [23] considered a model (similar to FKN) where each of the parties can independently interact with the evaluator by sending it a single message. (It was also implicitly considered in the context of multi-input functional encryption by Goldwasser et al. [19].) Crucially, in this model, unlike the FKN model, security does not completely break down in the presence of collusion attacks. We refer to MPC in this model as non-interactive MPC, or NI-MPC for short.
Best-Possible Security for NI-MPC. An NI-MPC protocol should provide the “best-possible security” for any given set of corrupted parties. The latter can be formalized via the following notion of residual function [24]: when the evaluator colludes with a set T of corrupted parties, it can inevitably learn the value of the original function f on the honest parties’ inputs coupled with every possible choice of inputs from T. Thus, the adversary effectively has oracle access to the residual function obtained by restricting f to the honest parties’ inputs and allowing a free choice of the corrupted parties’ inputs. The security requirement of NI-MPC informally asserts that the adversary learns no more than the residual function. This gives a meaningful security guarantee in many natural cases. For instance, for the above mentioned example of voting or, more generally, in the case of symmetric functions, the residual function still hides the sensitive information about the inputs of the uncorrupted parties. See [3] for a more detailed discussion.
The strongest formalization of the above security requirement is via efficient simulation. However, this cannot be achieved in general. Indeed, NI-MPC for general functions can be easily seen to imply “virtual black-box” obfuscation for general functions [3, 19], which was ruled out in [2]. Instead, we consider a natural relaxation that replaces efficient simulation by unbounded simulation, or equivalently indistinguishability of different sets of inputs that induce the same residual function. Roughly, the indistinguishability-based security definition is described as follows – for simplicity, we state it for the three-party case where the last party is corrupted and is colluding with the evaluator: for any input pairs (x, y) and \((x',y')\) for the honest parties such that \(f(x,y,\cdot )\equiv f(x',y',\cdot )\), the adversary’s view is indistinguishable when the inputs of the honest parties to the computation are (x, y) or \((x',y')\). We refer the reader to the technical sections for the general definition.
Necessity of Setup and iO. We next turn our attention to the necessity of setup for NI-MPC. Unlike the FKN model, collusion-resistant NI-MPC cannot be realized with a single common source of randomness that is shared by all clients. Instead, NI-MPC requires a setup that allows authentication of the messages of parties, while remaining robust to collusion. This is because otherwise, an adversarial evaluator can spoof an honest party in order to learn private information about the inputs of the other honest parties: consider NI-MPC for three parties where the last party and the evaluator are corrupted. The security definition for this case was described above. However, suppose there exists a “splitting input” \(y^*\) for f s.t. \(f(x,y^*,z) \ne f(x',y^*,z)\), where z is some third party input. In the absence of authentication, the adversary can prepare a message \(\widehat{y}^*\) on its own using \(y^*\) and then evaluate it together with the first and third party messages to distinguish whether the first honest party’s input to the computation is x or \(x'\).
Further, as already noted in [3, 19, 23], NI-MPC for general functions implies indistinguishability obfuscation (iO) [2, 15]: recall the security definition of three-party NI-MPC as described above, where the last party and the evaluator are corrupted. Substituting x and \(x'\) with two circuits \(C_0\) and \(C_1\), y and \(y'\) with null inputs and f with a universal circuit such that \(f(C,\bot ,z)\) = C(z), we can recover the security definition of iO. We stress that this implication holds regardless of the choice of setup used in the NI-MPC protocol.
Our Question: NI-MPC with minimal setup? Known n-party NI-MPC protocols [3, 19, 23] require intricate n-wise correlated randomness setups where the private randomness \(r_i\) input to each party i is computed as \(G(r)=(r_1,\ldots ,r_n)\) for some function G. In particular, such a correlated randomness setup can only be realized by using a trusted dealer with private channels to each protocol participant, or alternatively a fully interactive MPC protocol that is executed during an offline phase. The main question we ask is whether the use of such general correlated randomness is necessary for NI-MPC.
Indeed, secure protocols in the HLP model or even the FKN model can be realized using a standard PKI setup.Footnote 2 A PKI setup can be viewed as a special form of “pairwise” correlation that can be realized with no direct interaction between the clients: it suffices for every client to post its own public key and read all of the other clients’ public keys. Given that some form of setup is necessary to prevent the aforementioned spoofing attacks in NI-MPC, using a PKI setup is the best one could hope for.Footnote 3
1.1 Our Results
I. NI-MPC without Correlated Randomness Setup. We construct the first collusion-resistant NI-MPC protocols without general correlated randomness. Instead, we use a PKI and a common random string (CRS).Footnote 4 The security of our construction is proven against malicious adversaries assuming iO and DDH, both with sub-exponential security.
Theorem 1
(Informal). Assuming indistinguishability obfuscation and DDH, both with sub-exponential security, there exists a collusion-resistant non-interactive multi-party computation protocol that achieves security in the malicious model given a CRS and a PKI.
As explained earlier, iO is a necessary assumption for NI-MPC for general functions.
II. Multi-party Indistinguishability Obfuscation. Our main result gives rise to a new notion of multiparty obfuscation (and iO) that may be of independent interest. We start by explaining this notion via a motivating example: consider a scenario where there are n parties, each holding a private program module \(M_i\). Suppose there is a public \(\mathsf {Combine}\) algorithm that combines \(M_1,\ldots ,M_n\) to yield a program M. The parties wish to jointly obfuscate M; however, due to proprietary reasons, they cannot share their modules with each other.
One option for the parties is to simply run a standard MPC protocol using their modules as their respective private inputs to jointly compute an obfuscation of M. We ask whether it is possible for the parties to jointly obfuscate M in a non-interactive manner. In particular, we require that each party i can individually obfuscate its module \(M_i\) s.t. the obfuscated modules \(\overline{M_1},\ldots ,\overline{M_n}\) put together, exhibit the functionality of M while still hiding the individual modules.
We refer to this as multiparty obfuscation, and in the context of iO, as multiparty iO. Roughly speaking, the security of multiparty iO says that for any pair of tuples \((M_1^0,\ldots ,M_n^0)\) and \((M_1^1,\ldots ,M_n^1)\) s.t. \(\mathsf {Combine}(M_1^0,\ldots ,M_n^0)\) and \(\mathsf {Combine}(M_1^1,\ldots ,M_n^1)\) are functionally equivalent, the pair of tuples \((\overline{M_1^0},\ldots ,\overline{M_n^0})\) and \((\overline{M_1^1},\ldots ,\overline{M_n^1})\) are computationally indistinguishable. Here \(\overline{M_i^b}\) denotes the obfuscation of \(M_i^b\) computed by the i’th party.
We note that if we set \(n=1\) and the \(\mathsf {Combine}\) function to be the identity function, then we recover the standard notion of iO from the above definition. Further, while the above definition considers the case where all the parties are honest and only the obfuscation evaluator is dishonest, it can be easily modified to allow for dishonest parties. However, in this case, the functional equivalence requirement on the modules must be suitably modified, as in the case of NI-MPC.
Multiparty iO from NI-MPC. We now explain how our NI-MPC can be used to obtain multiparty iO. The setup in multiparty iO is the same as in the NI-MPC, namely, a PKI and a CRS. We consider NI-MPC between \((n+1)\) parties. The inputs of the first n parties are set to be their respective modules \(M_1,\ldots ,M_n\). The \((n+1)\)th party is the evaluator which holds an input x for the “combined” program \(M = \mathsf {Combine}(M_1,\ldots ,M_n)\). The function computed by the parties contains the \(\mathsf {Combine}\) algorithm hardwired in its description. On input \((M_1,\ldots ,M_n,x)\), it computes \(M=\mathsf {Combine}(M_1,\ldots ,M_n)\) and outputs M(x).
Now, suppose that only the \((n+1)\)th party and the evaluator are corrupted. Then, this case exactly corresponds to multiparty iO where all the parties (a.k.a., obfuscators) are honest. The case of more general corruptions is defined similarly.
III. General interaction patterns. As observed by Halevi et al. [23], the problem of NI-MPC can be viewed as secure computation on a star interaction pattern. Towards a generalization, Halevi et al. also considered the problem of secure multiparty computation with general interaction patterns. They presented a result for the same assuming (sub-exponentially secure) indistinguishability obfuscation by using a complex correlated randomness setup.
We improve upon their result by providing a construction in the PKI model assuming (sub-exponentially secure) indistinguishability obfuscation and DDH. In particular, our main protocol for NI-MPC can be extended to handle more general interaction patterns described by directed acyclic graphs, where each node represents a party who expects to receive messages from all of its parents and can then send messages to all of its children, and where the sinks of the graph compute the output.
We note that any interaction pattern gives rise to a “best-possible” notion of security, as formalized in [24] for the case of a “chain” pattern and in [23, Definition 6] for general patterns. In [23], it was shown that the star pattern is “complete” in the sense that any pattern can be reduced to it with no additional cryptographic assumptions. However, their reduction inherently requires a correlated randomness setup and thus is not applicable in our setting.
Instead, we show how to directly modify our scheme to guarantee best-possible security for any interaction pattern. A representative example is that of a chain pattern considered in [20, 24], namely a simple directed path traversing all nodes. The “best-possible” security notion that can be achieved in this case is typically stronger than the security notion for NI-MPC which corresponds to a star pattern. To see this, notice that in the star pattern the adversary can reset the input of each party it controls, whereas in the chain pattern he cannot reset the input of a malicious party that is followed by an honest party along the chain. Our results for the chain pattern provide the first extension of the positive results in the HLP model [24] to general functions with a similar PKI setup, at the (necessary) price of relying on stronger assumptions.Footnote 5
1.2 Our Techniques
We now explain the main ideas in our construction of collusion-resistant NI-MPC. As explained earlier, this suffices to obtain multiparty iO.
Initial Challenges. Recall that in an NI-MPC protocol, each party sends a single message to the evaluator. Then, a starting idea to construct an NI-MPC protocol is to “compile” an interactive MPC protocol into a non-interactive one using program obfuscation. That is, let f be the function that the parties wish to compute and let \(\varPi \) be an interactive MPC protocol for computing f. Then, each party i simply computes an obfuscation \(\overline{\mathsf {NMF}_{i}}\) of its next-message function \(\mathsf {NMF}_{i}\) in \(\varPi \), where \(\mathsf {NMF}_{i}\) contains its input \(x_i\) and random tape \(r_i\) hardwired. It then sends \(\overline{\mathsf {NMF}_{i}}\) to the evaluator. Upon receiving all the obfuscated programs, the evaluator computes a transcript of \(\varPi \) by acting as the communication channel between the “virtual parties” \(\overline{\mathsf {NMF}_{1}},\ldots ,\overline{\mathsf {NMF}_{n}}\). At the end, it obtains the output \(f(x_1,\ldots ,x_n)\).
The main problem with the above approach is that an adversarial evaluator (that colludes with one or more parties) can perform resetting attacks to break the security of the underlying MPC protocol \(\varPi \). Indeed, since the obfuscated programs \(\overline{\mathsf {NMF}_{i}}\) are computing a “reactive” functionality, an evaluator can simply reset them to an earlier state and feed them different messages. Since the input of each honest party i is fixed in the obfuscated program \(\overline{\mathsf {NMF}_{i}}\), this means that the adversary can now execute multiple “sessions” of \(\varPi \) w.r.t. the same fixed inputs of the honest parties. The security of standard MPC protocols completely breaks down in such a case.
To address this problem, a natural idea is to replace \(\varPi \) with a resettably secure MPC protocol [8, 21, 22]. Roughly speaking, resettable MPC guarantees that the only advantage an adversary can gain by performing a resetting attack is to change its input. As such, it can learn multiple function outputs w.r.t. a fixed input vector of the honest parties. No information beyond this set of outputs is leaked to the adversary. While resettably secure MPC for general functions is impossible in the plain model [21], it can be realized in the CRS model by compiling a UC-secure MPC protocol [10] using pseudorandom functions à la [8].
The security guarantee of resettable MPC coincides with our definition of NI-MPC, with the only difference that our definition is indistinguishability-based while resettable MPC security is defined w.r.t. simulation. Nevertheless, it is not immediately clear how to compile a resettably secure MPC protocol into NI-MPC when using iO. In particular, note that the natural approach to argue security in this context is to hardwire the simulated transcript in the obfuscated programs so as to “force” the simulated execution on the adversary. This strategy was previously used in [14] for constructing two-round MPC protocols. In our context, however, since the adversary can legitimately perform resetting attacks, the number of possible transcripts we may need to hardwire is unbounded.
A Starting Point: Obfuscation Combiners. In order to find a path to a solution, let us first consider a weaker problem: suppose we are given N candidates for program obfuscation, many of which are possibly “bad”, i.e., either they do not hide the program or do not preserve correctness. We do not know which of the candidates are bad. The goal is to use these candidates to obfuscate a function in a secure manner. This problem is referred to as obfuscation combiner [1].
To see why this problem is relevant to us, note that the “bad” candidate obfuscations can be thought of as the corrupted parties in our setting. The role of the evaluator is the same. Furthermore, in this setting, similar to ours, resetting attacks are unavoidable. The key difference, however, is that while our setting is inherently distributed, the above setting is centralized, in that a common entity performs all the obfuscations.
Nevertheless, we use obfuscation combiner as a starting point for our construction. Specifically, we build on ideas used in the obfuscation combiner of Ananth et al. [1]. In their construction, they use a special-purpose MPC protocol [27] based on multi-key fully homomorphic encryption [11, 12, 26, 27] (see Sect. 2 for the definition). Our solution also uses this MPC scheme as a starting basis. In particular, our construction implicitly compiles the MPC scheme of [27] into a resettably secure one in an “iO-friendly” manner. In order to develop a full solution for our setting, however, we have to address several additional challenges that do not arise in the setting of obfuscation combiners. Below, we elaborate on the details.
Our Approach. We first recall the notion of a multi-key FHE. A multi-key FHE allows for generating individual encryption/decryption-key pairs \(ek_i , dk_i\) such that they can be later combined to obtain a joint public key \(ek\). To be more precise, given a ciphertext with respect to \(ek_i\), there is an Expand operation that transforms it into a ciphertext with respect to a joint public key \(ek\). Once this done, the resulting ciphertext can be homomorphically evaluated just like any FHE scheme. The resulting ciphertexts can then be individually decrypted using the \(dk_i\)’s to obtain partial decryptions. Finally, there is a mechanism to combine the partial decryptions to obtain the final output.
Given a multi-key FHE, a first idea for a non-interactive MPC protocol for a function f is described below.Footnote 6
-
1.
Setup of party \(\varvec{i}\): Sample an encryption/decryption key pair \(ek_i,dk_i\) and sets its private-key to be \(\mathsf {SK}_i = (dk_i)\) and published the public-key \(\mathsf {PK}_i = (ek_i)\).
-
2.
Encryption of party \(\varvec{i}\) on input \(\varvec{x_i}\): Compute an encryption of \(x_i\) with respect to the key \(ek_i\): \(\mathsf {CT}_i = \mathsf {Enc}(ek_i, x_i)\) and compute an obfuscation \(\overline{G_i}\) of the circuit given in Fig. 1. The message of this party is the pair \((\overline{G_i}, \mathsf {CT}_i)\).
-
3.
Evaluation given the messages of the parties: Given \((\overline{G_i}, \mathsf {CT}_i)\) for each \(i\in [n]\), the evaluator executes each \(\overline{G_i}\) on \(\mathsf {CT}_1,\dots ,\mathsf {CT}_n\) to get \(p_i\). Then, it combines all partial decryptions \(p_1,\dots ,p_n\) to get y.
Correctness of the protocol is immediate by the correctness of the underlying obfuscator and the correctness of the multi-key FHE scheme. However, proving security of this scheme runs into several obstacles. First, we have to deal with the fact that the Eval operation is randomized. Second, there seems to be a very simple attack for the evaluator stemming from the fact that the encryption keys can be used to encrypt arbitrary values. Namely, the evaluator, given \(ek_i\), can simulate ciphertexts generated by the i-th party and potentially fully recover all inputs.
The first issue is (by now) quite standard in the iO literature and we overcome it by using a puncturable PRF family. The second issue is more complicated to handle. Our idea is to augment the setup procedure to generate a signature/verification key pair and let each party sign its input. The circuit that each party will obfuscate will verify each such signature to make sure it was honestly generated. Intuitively, it seems to solve the problem, but formally arguing security using iO and an arbitrary signature scheme seems to be problematic.Footnote 7 To overcome this, we construct a special kind of signatures with which we are able to complete the proof. Specifically, our signatures have a property that allows us to replace the verification key with a “punctured verification key” in an indistinguishable way such that the punctured key (statistically) verifies only a single signature.
Having these signatures, the proof proceeds by a sequence of hybrid experiments in which we slowly replace each partial decryption with a simulation which does not require the decryption key. The number of hybrids is proportional to the input domain of the circuit \(G_i\). Throughout the proof, we extensively use the probabilistic iO of [9] and the partition-programming technique of [1].
The malicious case. Notice that in the malicious case, since our protocol is non-interactive, the evaluator can plug in any value it wishes in the corrupted parties and obtain a value for the function f. Thus, in this case, if the evaluator colludes with a subset \(A\subset [n]\) of the parties (i.e. \(H = [n]\setminus A\) is the honest set of parties), then we could hope to get security only for functions f and challenge \((\{x_i^0\}_{i\in H},\{x_i^1\}_{i\in H})\) that satisfy
$$\begin{aligned} f(\langle \{x_i^0\}_{i\in H}, \{x_i\}_{i\in A} \rangle ) =f(\langle \{x_i^1\}_{i\in H}, \{x_i\}_{i\in A} \rangle ) \end{aligned}$$
for every \(\{x_i\}_{i\in A}\) and where \(\langle \cdot \rangle \) sorts the inputs according to the index i.
The proof and construction above do not guarantee security in the case where the evaluator colludes with a subset of the parties. Specifically, there is no guarantee as to what happens when one of the (malicious) parties sends a malformed ciphertext \(\mathsf {CT}_i\). There, the partial decryption would still output some string, but we have no guarantee on whether the simulation of this partial decryption is going to be indistinguishable.
To overcome this we use non-interactive zero-knowledge proofs (NIZKs). Specifically, during encryption of the value \(x_i\), party i will also provide (in addition to the obfuscated circuit, the ciphertext and the signature) a NIZK proof asserting that the ciphertext is a legal well-formed ciphertext. As in most works that combine NIZKs and iO, we need a special kind of NIZKs called statistically-simulation-sound NIZKs (SSS-NIZKs) [15]. However, this is still not enough for us. The reason is that for the partial-decryption simulation we need to know the final output, but we have no control over the inputs coming from the malicious parties (recall that they are encrypted!). To solve this we use statistical-simulation-extractable zero-knowledge proofs (SSE-NIZKs) which are a special kind of non-interactive zero-knowledge proofs of knowledge (NIWI-POKs) which allow us to extract from the proof of the malicious parties their decryption key, decrypt their ciphertexts and compute the expected final output of the computation. We construct such SSE-NIZKs in the CRS model starting with any NIWI-POK and any one-way permutation.
Reusable PKI with a session ID. The solution we described above only gives a non-reusable scheme. Namely, the PKI cannot be used for more than one encryption. We consider a stronger model where the PKI can be reused but this requires a more delicate security definition since the evaluator can mix-and-match ciphertexts corresponding to honest parties which makes the security definition much less meaningful (as it applies to a much smaller set of functions). We consider a hybrid security definition in which we support a reusable PKI but introduce session IDs and require correctness only for ciphertexts that are generated with the same session ID.
To support such functionality we construct puncturable signatures that can be punctured such that only a single message with a specific prefix is allowed. The session ID is used as a prefix and after puncturing no signature exists for messages agreeing on the prefix, except the one generated by the honest party. Our construction uses NIZKs and statistically-binding commitments.
1.3 Related Work
The problem of devising non-interactive protocols was first addressed in [13], where it was shown how to compute any function assuming that all parties share common private randomness which is unknown to the adversary.
As observed in [23], collusion-resistant non-interactive MPC in the correlated randomness model follows from multi-input functional encryption [19]. Thus, the MIFE scheme of Goldwasser et al. [19] gives an NI-MPC protocol in the correlated randomness model assuming iO and one-way functions. As noted already in [19], this is in fact tight since MIFE implies iO.
Non-interactive MPC protocols in the information-theoretic setting for a simple class of functions were constructed by [3] (see also improvements in [23]), again using correlated randomness.