We now discuss three examples of interest.
Public-Key Encryption
Our first example concerns public-key encryption. We start by recalling the definition.
Definition 4.1
(Public-Key Encryption) For a message space \({\mathcal {M}}\), and function \(\alpha (\cdot )\le 1\), a triple of algorithms \(({\mathsf {Gen}},{\mathsf {Enc}},{\mathsf {Dec}})\), where the first two are \(\hbox {PPT}\) and third is deterministic polynomial-time, is said to be a public-key encryption scheme for \({\mathcal {M}}\) with \((1-\alpha )\)-correctness if it satisfies:
-
1.
\((1-\alpha )\)-Correctness: for any \(m\in {\mathcal {M}}\) and security parameter \(\lambda \),
$$\begin{aligned} \Pr _{{\mathsf {Gen}},{\mathsf {Enc}}}\left[ {\mathsf {Dec}}_{sk}({\mathsf {Enc}}_{pk}(m)) =m\; \vert \; (pk,sk) \leftarrow {\mathsf {Gen}}(1^\lambda )\right] \ge 1-\alpha (\lambda ) \, . \end{aligned}$$
-
2.
Semantic security: for any polynomial-size distinguisher \({\mathcal {D}}\) there exists a negligible function \(\mu (\cdot )\), such that for any two messages \(m ,m'\in {\mathcal {M}}\) of the same size:
$$\begin{aligned} \left| \Pr [{\mathcal {D}}({\mathsf {Enc}}_{pk}(m))=1]-\Pr [{\mathsf {Enc}}_{pk}(m'))=1]\right| \le \mu (\lambda )\, , \end{aligned}$$
where the probability is over the coins of \({\mathsf {Enc}}\) and the choice of pk sampled by \({\mathsf {Gen}}(1^\lambda )\).
Applying the Transformation Public-key encryption can be modeled as a three-party scheme \(\Pi \) consisting of a generator, an encryptor, and a decryptor. The generator has no input and uses its randomness \(r_1\) to generate pk and sk, which are sent to the encryptor and decryptor, respectively. The encryptor has as input a message m and uses its randomness \(r_2\) in order to generate an encryption \({\mathsf {Enc}}_{pk}(m;r_2)\), which is sent to the decryptor. The decryptor has no input nor randomness, it uses the secret key to decrypt and outputs the decrypted message. (In this case the function computed by \(\Pi \) is \(f(\bot ,m,\bot )=(\bot ,\bot ,m)\).)
In the repeated scheme \(\Pi _{\otimes K}\), the generator \({\mathsf {Gen}}(1^\lambda ;r_{1j})\) is applied K independent times, with fresh randomness \(r_{1j}\) for each \(j\in [K]\), to generate corresponding keys \(pk =\left\{ {pk_j}\right\} , sk =\left\{ {sk_j}\right\} \). Encryption involves K independent encryptions:
$$\begin{aligned} {\mathsf {Enc}}^{\otimes K}_{pk}(m;r_2) := {\mathsf {Enc}}_{pk_1}(m;r_{21}), \dots ,{\mathsf {Enc}}_{pk_k}(m;r_{2K})\, . \end{aligned}$$
As defined in Sect. 3, when applying the error-removal transformation, the randomness \(r=\left( r_{ij}: i \in [2],j\in [K]\right) \) is sampled according to \(r^{\mathsf {tra}}\) instead of truly at random according to \(r^{\mathsf {uni}}\). Decryption is done by decrypting each encryption with the corresponding \(sk_j\) and postprocessing the K results as prescribed by the transformation.
Claim 4.1
If \(\Pi = ({\mathsf {Gen}},{\mathsf {Enc}},{\mathsf {Dec}})\) is \((1/2+\eta )\)-correct, for some \(\eta = \lambda ^{-O(1)}\), then the new public-key encryption scheme given by \(\Pi ^{\mathsf {tra}}\) is secure and perfectly correct.
Proof
The correctness of the new scheme given by the transformation, follows directly from Proposition 3.1. We next observe that the new scheme is also secure. Concretely, for any (infinite sequence of) two messages \(m,m'\in {\mathcal {M}}\),
$$\begin{aligned} {\mathsf {Enc}}^{\otimes K}_{pk}(m;r^{\mathsf {tra}}_2) \approx _c {\mathsf {Enc}}^{\otimes K}_{pk} (m;r_2^{{\mathsf {uni}}}) \approx _c {\mathsf {Enc}}^{\otimes K}_{pk} (m';r^{\mathsf {uni}}_2)\approx _c {\mathsf {Enc}}^{\otimes K}_{pk} (m';r_2^{{\mathsf {tra}}})\, . \end{aligned}$$
The first and last indistinguishability relations follow directly from Proposition 3.2. The fact that \({\mathsf {Enc}}^{\otimes K}_{pk}(m;r^{\mathsf {uni}}_2)\approx _c {\mathsf {Enc}}^{\otimes K}_{pk}(m';r^{\mathsf {uni}}_2)\) follows from the semantic security of the underlying encryption scheme, which is known to be preserved under multiple encryptions (see, e.g., [20]). \(\square \)
In [15], Dwork, Naor, and Reingold show how public-key encryption where decryption errors may even occur for a large fraction of messages, can be transformed into ones that only have a tiny decryption error over the randomness of the scheme. Applying our transformation, we can further turn such schemes into perfectly correct ones.
Indistinguishability Obfuscation
Our second example concerns indistinguishability obfuscation (IO) [5]. We start by recalling the definition.
Definition 4.2
(Indistinguishability Obfuscation) For a class of circuits \({\mathcal {C}}\), and function \(\alpha (\cdot )\le 1\), a \(\hbox {PPT}\) algorithm \({\mathcal {O}}\) is said to be an indistinguishability obfuscator for \({\mathcal {C}}\) with \((1-\alpha )\)-correctness if it satisfies:
-
1.
\((1-\alpha )\)-Correctness: for any \(C\in {\mathcal {C}}\) and security parameter \(\lambda \),
$$\begin{aligned} \Pr _{{\mathcal {O}}}\left[ \forall x: {\mathcal {O}}(C,1^\lambda )(x)=C(x)\right] \ge 1-\alpha (\lambda ) \, . \end{aligned}$$
-
2.
Indistinguishability: for any polynomial-size distinguisher \({\mathcal {D}}\) there exists a negligible function \(\mu (\cdot )\), such that for any two circuits \(C,C'\in {\mathcal {C}}\) that compute the same function and are of the same size:
$$\begin{aligned} \left| \Pr [{\mathcal {D}}({\mathcal {O}}(C,1^\lambda ))=1] -\Pr [{\mathcal {D}}({\mathcal {O}}(C',1^\lambda ))=1]\right| \le \mu (\lambda )\, , \end{aligned}$$
where the probability is over the coins of \({\mathcal {D}}\) and \({\mathcal {O}}\).
Applying the Transformation IO can be modeled as a two-party scheme \(\Pi \) consisting of an obfuscator and an evaluator. The obfuscator has as input a circuit C and uses its randomness \(r_1\) in order to create an obfuscated circuit \(\widetilde{C} = {\mathcal {O}}(C,1^\lambda ;r_1)\), which is sent to the evaluator. The evaluator has an input x for the circuit, and no randomness, it computes \(\widetilde{C}(x)\) and outputs the result. (In this case the function computed by \(\Pi \) is \(f(C,x)=(\bot ,C(x))\).)
In the repeated scheme \(\Pi _{\otimes K}\), obfuscation involves K independent obfuscations:
$$\begin{aligned} {\mathcal {O}}^{\otimes K}(C,1^\lambda ;r_1) := {\mathcal {O}}(C,1^\lambda ;r_{11}), \dots ,{\mathcal {O}}(C,1^\lambda ;r_{1K})\, . \end{aligned}$$
As defined in Sect. 3, when applying the error-removal transformation, the randomness \(r=\left( r_{1j}: j \in [K]\right) \) is sampled according to \(r^{\mathsf {tra}}\) instead of truly at random according to \(r^{\mathsf {uni}}\). Evaluation for input x is done by running each obfuscated circuit on the input x and postprocessing the K results as prescribed by the transformation.
Claim 4.2
If \(\Pi = {\mathcal {O}}\) is \((1/2+\eta )\)-correct, for some \(\eta = \lambda ^{-O(1)}\), then the new indistinguishability obfuscation scheme given by \(\Pi ^{\mathsf {tra}}\) is secure and perfectly correct.
Proof
The correctness of the new scheme given by the transformation follows directly from Proposition 3.1. We now observe that the new scheme is also secure, which follows similarly to the case of public-key encryption considered above. Concretely, for any (infinite sequence of) two equal-size circuits \(C,C'\in {\mathcal {C}}\),
$$\begin{aligned} {\mathcal {O}}^{\otimes K}(C,1^\lambda ;r^{\mathsf {tra}}_1) \approx _c {\mathcal {O}}^{\otimes K}(C,1^\lambda ;{r_1^{\mathsf {uni}}}) \approx _c {\mathcal {O}}^{\otimes K}({C'},1^\lambda ;r^{\mathsf {uni}}_1)\approx _c {\mathcal {O}}^{\otimes K}(C',1^\lambda ;{r_1^{\mathsf {tra}}})\, . \end{aligned}$$
The first and last indistinguishability relations follow directly from Proposition 3.2. The fact that \({\mathcal {O}}^{\otimes K}(C,1^\lambda ;r^{\mathsf {uni}}_1)\approx _c {\mathcal {O}}^{\otimes K}(C',1^\lambda ; r^{\mathsf {uni}}_1)\) follows from the security of the underlying obfuscation scheme, which is known to be preserved under multiple obfuscations (see e.g. [11]). \(\square \)
In [11], Bitansky and Vaikuntanathan show how indistinguishability obfuscation [5] where the obfuscated circuit may err also on a large fraction of inputs can be transformed into one that only has a tiny error over the randomness of the obfuscator as required here. Applying our transformation, we can further turn such schemes into perfectly correct ones.
Multi-Party Computation
Our third and last example concerns multi-party computation (MPC) protocols. There are several models for capturing the adversarial capabilities in an MPC protocol. Roughly speaking, our transformation can be applied whenever the protocol is secure against parallel repetition. In the new protocol, perfect correctness will be guaranteed when all the parties behave honestly. The security guarantee given by the new protocol will be inherited from the original repeated protocol. We stress that, in the case of corrupted parties, the transformed protocol does not provide any correctness guarantees beyond those given by the original (repeated) protocol. In particular, if the adversary can inflict a certain correctness error in the original (repeated) protocol, it may also be able to do so in the transformed protocol.
The Formal Model Since we rely on standard MPC conventions, we shall keep our description relatively light, abstracting out less relevant details (for further reading, see for instance [12, 20]). We consider protocols with security against static corruptions according to the real-ideal paradigm. We restrict attention to the standalone model.Footnote 1 In this setting, the adversary \({\mathcal {A}}\) corrupts some set of parties \(C \subseteq [m]\), which it fully controls throughout the protocol, and can also choose the inputs for honest parties at the onset of the computation. The adversarial view in the protocol consists of all the communication generated by the honest parties and their respective outputs. We denote by \({\mathsf {Real}}_{\Pi }^{{\mathcal {A}}}(1^\lambda ,z;r)\) the polynomial-time process that generates the adversarial view and the outputs of the honest parties in \([m]\setminus C\) when these parties execute protocol \(\Pi \) for functionality f with randomness \(r=(r_{i_1}, \dots ,r_{i_{m-|C|}})\), and a \(\hbox {PPT}\) adversary \({\mathcal {A}}\) with auxiliary input z controlling the parties in C.
The requirement is that the output of this process can be simulated by a \(\hbox {PPT}\) process \({\mathsf {Ideal}}_{f}^{{\mathcal {S}}}(1^\lambda ,z)\) called the ideal process where \({\mathcal {A}}\) is replaced by an efficient simulator \({\mathcal {S}}\). The simulator can only submit inputs \(x_1,\dots ,x_m\) to f, learn the outputs of the corrupted parties in C, and has to generate the adversarial view. The ideal process outputs the view generated by the simulator as well as the output generated by f for the honest parties.
As before, we denote by \(\Pi _{\otimes K}\) the K-fold parallel repetition of a protocol \(\Pi \) for computing \(f_{\otimes K}(x)=(f(x))^K\), where each honest party \(i\in [m]\setminus C\), given input \(x_i\), runs K parallel copies of \(\Pi \), all with the same input \(x_i\) and obtains outputs \(y_{i1},\dots ,y_{iK}\). We consider protocols that are secure under parallel repetition in the following sense.
Definition 4.3
We say that an MPC protocol \(\Pi \) (for some functionality f) is secure under parallel repetition with respect to an ideal process \({\mathsf {Ideal}}\) if for any \(\hbox {PPT}\) adversary \({\mathcal {A}}\) and polynomial \(K(\lambda )\) there exists a \(\hbox {PPT}\) simulator \({\mathcal {S}}\) such that for any (infinite sequence of) security parameter \(\lambda \in {\mathbb {N}}\) and auxiliary input in \(z\in \{0,1\}^{\lambda ^{O(1)}}\),
$$\begin{aligned} {\mathsf {Real}}_{\Pi _{\otimes K}}^{{\mathcal {A}}}(1^\lambda ,z) \approx _c {\mathsf {Ideal}}^{{\mathcal {S}}}_{f_{\otimes K}}(1^\lambda ,z)\, . \end{aligned}$$
Definition 4.4
We say that an MPC protocol \(\Pi \) for functionality \(f:\{0,1\}^{n\times m}\rightarrow \{0,1\}^{n\times m}\) is \((1-\alpha )\)-correct if when all parties behave honestly, given inputs \((x_1,\dots ,x_m)\), then the probability that each party i, outputs \(y_i\) where \((y_1,\dots ,y_m)=f(x_1,\dots ,x_m)\), is at least \(1-\alpha \).
Applying the Transformation We consider applying our transformation to eliminate errors in the case that all parties execute the protocol honestly, while preserving the same level of security under corruptions. We denote by \(\Pi ^{\mathsf {tra}}\) the protocol \(\Pi \) for computing f after applying the transformation from Sect. 3 where \(\Pi \) is repeated in K times in parallel, the randomness of parties is derived as defined in the transformation, and the final output of party i is derived by postprocessing the K outputs \((y_{i1},\dots ,y_{iK})\) obtained as prescribed by the transformation.
Claim 4.3
Assume that \(\Pi \) is a protocol for f that is \((1/2+\eta )\)-correct, for some \(\eta =\lambda ^{-O(1)}\) and secure under parallel repetition. Then \(\Pi ^{\mathsf {tra}}\) is a secure and perfectly correct protocol for f.
Proof
The perfect correctness of the new protocol \(\Pi ^{\mathsf {tra}}\), when all parties behave honestly, follows directly from Proposition 3.1.
We now show that the protocol \(\Pi ^{\mathsf {tra}}\) is secure. For any \(\hbox {PPT}\) adversary \({\mathcal {A}}\) against \(\Pi ^{\mathsf {tra}}\), viewing \({\mathcal {A}}\) as an adversary against \(\Pi _{\otimes K}\), let \({\mathcal {S}}\) be its simulator given by Definition 4.3. We show that for any (infinite sequence of) security parameter \(\lambda \), and auxiliary input z,
$$\begin{aligned} {\mathsf {Real}}_{\Pi ^{{\mathsf {tra}}}}^{{\mathcal {A}}}(1^\lambda ,z) \approx _c {\mathsf {Ideal}}^{{\mathcal {S}}}_{f}(1^\lambda ,z)\, . \end{aligned}$$
Let \(\Pi _{\otimes K}^\mathsf{pp}\) be the protocol where the parties first execute the K-fold repetition of \(\Pi _{\otimes K}\) and then each party sets its final output by postprocessing its K outputs as specified by the correctness amplification transformation. Then we first note that by definition
$$\begin{aligned} {\mathsf {Real}}_{\Pi ^{\mathsf {tra}}}^{{\mathcal {A}}}(1^\lambda ,z) \equiv {\mathsf {Real}}_{\Pi _{\otimes K}^\mathsf{pp}}^{{\mathcal {A}}} (1^\lambda ,z;r^{\mathsf {tra}})\, , \end{aligned}$$
where \(r^{\mathsf {tra}}\) is the randomness of the honest parties, generated according to our transformation.
Next, by Proposition 3.2, it holds that:
$$\begin{aligned} {\mathsf {Real}}_{\Pi _{\otimes K}^\mathsf{pp}}^{{\mathcal {A}}}(1^\lambda ,z;r^{\mathsf {tra}}) \approx _c {\mathsf {Real}}_{\Pi _{\otimes K}^\mathsf{pp}}^{{\mathcal {A}}} (1^\lambda ,z;{r^{\mathsf {uni}}})\, , \end{aligned}$$
where \(r^{\mathsf {tra}}\) is randomness generated according to our transformation and \(r^{\mathsf {uni}}\) is truly random.
It is left to show that
$$\begin{aligned} {\mathsf {Real}}_{\Pi _{\otimes K}^\mathsf{pp}}^{{\mathcal {A}}}(1^\lambda ,z;r^{\mathsf {uni}}) \approx _c {\mathsf {Ideal}}^{{\mathcal {S}}}_{f}(1^\lambda ,z) \, . \end{aligned}$$
(1)
Indeed, recall that by Definition 4.3,
$$\begin{aligned} {\mathsf {Real}}_{\Pi _{\otimes K}}^{{\mathcal {A}}}(1^\lambda ,z;r^{\mathsf {uni}}) \approx _c {\mathsf {Ideal}}^{{\mathcal {S}}}_{f_{\otimes K}}(1^\lambda ,z)\, . \end{aligned}$$
(2)
Next, note that and each of the two distributions in Equation 1 can be efficiently generated given a sample from the respective distribution in the Equation 2. This is done by postprocessing the K outputs of each honest party as prescribed by the correctness amplification transformation. Accordingly, any efficient distinguisher for 1 immediately implies an efficient distinguisher for 2. Thus, the indistinguishability in Equation 1 follows by Equation 2.
This concludes the proof. \(\square \)