SWIFT: Super-fast and Robust Privacy-Preserving Machine Learning
Nishat Koti, Mahak Pancholi, Arpita Patra, Ajith Suresh
Introduction
Privacy Preserving Machine Learning (PPML), a booming field of research, allows Machine Learning (ML) computations over private data of users while ensuring the privacy of the data. PPML finds applications in sectors that deal with sensitive/confidential data, e.g. healthcare, finance, and in cases where organisations are prohibited from sharing client information due to privacy laws such as CCPA and GDPR. However, PPML solutions make the already computationally heavy ML algorithms more compute-intensive. An average end-user who lacks the infrastructure required to run these tasks prefers to outsource the computation to a powerful set of specialized cloud servers and leverage their services on a pay-per-use basis. This is addressed by the Secure Outsourced Computation (SOC) paradigm, and thus is an apt fit for the need of the moment. Many recent works exploit Secure Multiparty Computation (MPC) techniques to realize PPML in the SOC setting where the servers enact the role of the parties. Informally, MPC enables mutually distrusting parties to compute a function over their private inputs, while ensuring the privacy of the same against an adversary controlling up to parties. Both the training and prediction phases of PPML can be realized in the SOC setting. The common approach of outsourcing followed in the PPML literature, as well as by our work, requires the users to secret-shareThe threshold of the secret-sharing is decided based on the number of corrupt servers so that privacy is preserved. their inputs between the set of hired (untrusted) servers, who jointly interact and compute the secret-shared output, and reconstruct it towards the users.
In a bid to improve practical efficiency, many recent works cast their protocols into the preprocessing model wherein the input-independent (yet function-dependent) phase computationally heavy tasks are computed in advance, resulting in a fast online phase. This paradigm suits scenario analogous to PPML setting, where functions (ML algorithms) typically need to be evaluated a large number of times, and the function description is known beforehand. To further enhance practical efficiency by leveraging CPU optimizations, recent works propose MPC protocols that work over or bit rings. Lastly, solutions for a small number of parties have received a huge momentum due to the many cost-effective customizations that they permit, for instance, a cheaper realisation of multiplication through custom-made secret sharing schemes .
We now motivate the need for robustness aka guaranteed output delivery (GOD) over fairnessThis ensures either all parties or none learn the output., or even abort securityThis may allow the corrupt parties alone to learn the output., in the domain of PPML. Robustness provides the guarantee of output delivery to all protocol participants, no matter how the adversary misbehaves. Robustness is crucial for real-world deployment and usage of PPML techniques. Consider the following scenario wherein an ML model owner wishes to provide inference service. The model owner shares the model parameters between the servers, while the end-users share their queries. A protocol that provides security with abort or fairness will not suffice as in both the cases a malicious adversary can lead to the protocol aborting, resulting in the user not obtaining the desired output. This leads to denial of service and heavy economic losses for the service provider. For data providers, as more training data leads to more accurate models, collaboratively building a model enables them to provide better ML services, and consequently, attract more clients. A robust framework encourages active involvement from multiple data providers. Hence, for the seamless adoption of PPML solutions in the real world, the robustness of the protocol is of utmost importance. Several works realizing PPML via MPC settle for weaker guarantees such as abort and fairness. Achieving the strongest notion of GOD without degrading performance is an interesting goal which is the focus of this work. The hall-mark result of suggests that an honest-majority amongst the servers is necessary to achieve robustness. Consequent to the discussion above, we focus on the honest-majority setting with a small set of parties, especially 3 and 4 parties, both of which have drawn enormous attention recently .
The -party setting enables simpler, more efficient, and customized secure protocols compared to the -party setting. Real-world MPC applications and frameworks such as the Danish sugar beet auction and Sharemind , have demonstrated the practicality of -party protocols. Additionally, in an outsourced setting, PC is useful and relevant even when there are more parties. Specifically, here the entire computation is offloaded to hired servers, after initial sharing of inputs by the parties amongst the servers. This is precisely what we (and some existing papers ) contemplate as the setting for providing ML-as-a-service. Our protocols work over rings, are cast in the preprocessing paradigm, and achieve GOD.
We restrict the relevant work to a small number of parties and honest-majority, focusing first on MPC, followed by PPML. MPC protocols for a small population can be cast into orthogonal domains of low latency protocols , and high throughput protocols . In the 3PC setting, provide efficient semi-honest protocols wherein ASTRA improved upon by casting the protocols in the preprocessing model and provided a fast online phase. ASTRA further provided security with fairness in the malicious setting with an improved online phase compared to . Later, a maliciously-secure 3PC protocol based on distributed zero-knowledge techniques was proposed by Boneh et al. providing abort security. Further, building on and enhancing the security to GOD, Boyle et al. proposed a concretely efficient 3PC protocol with an amortized communication cost of field elements (can be extended to work over rings) per multiplication gate. Concurrently, BLAZE provided a fair protocol in the preprocessing model, which required communicating ring elements in each phase. However, BLAZE eliminated the reliance on the computationally intensive distributed zero-knowledge system (whose efficiency kicks in for large circuit or many multiplication gates) from the online phase and pushed it to the preprocessing phase. This resulted in a faster online phase compared to .
In the regime of 4PC, Gordon et al. presented protocols achieving abort security and GOD. However, relied on expensive public-key primitives and broadcast channels to achieve GOD. Trident improved over the abort protocol of , providing a fast online phase achieving security with fairness, and presented a framework for mixed world computations . A robust 4PC protocol was provided in FLASH , which requires communicating ring elements, each, in the preprocessing and online phases.
In the PPML domain, MPC has been used for various ML algorithms such as Decision Trees , Linear Regression , k-means clustering , SVM Classification , Logistic Regression . In the 3PC SOC setting, the works of ABY3 and SecureNN , provide security with abort. This was followed by ASTRA , which improves upon ABY3 and achieves security with fairness. ASTRA presents primitives to build protocols for Linear Regression and Logistic Regression inference. Recently, BLAZE improves over the efficiency of ASTRA and additionally tackles training for the above ML tasks, which requires building additional PPML building blocks, such as truncation and bit to arithmetic conversions. In the 4PC setting, the first robust framework for PPML was provided by FLASH which proposed efficient building blocks for ML such as dot product, truncation, MSB extraction, and bit conversion. The works of work over rings to garner practical efficiency. In terms of efficiency, BLAZE and respectively FLASH and Trident are the closest competitors of this work in 3PC and 4PC settings.
1 Our Contributions
To the best of our knowledge, SWIFT is the first robust and efficient PPML framework in the 3PC setting and is as fast as (and is strictly better in some cases than) the best known fair 3PC framework BLAZE . We extend our 3PC framework for 4 servers. In this regime, SWIFT is as fast as the best known fair 4PC framework Trident and twice faster than best known robust 4PC framework FLASH . We detail our contributions next.
We demonstrate the practicality of our protocols by benchmarking PPML, particularly, Logistic Regression (training and inference) and popular Neural Networks (inference) such as , LeNet and VGG16 having millions of parameters. The NN training requires mixed-world conversions , which we leave as future work. Our PPML blocks can be used to perform training and inference of Linear Regression, Support Vector Machines, and Binarized Neural Networks (as demonstrated in ).
Second, instead of using the multiplication of (which has the same overall communication cost as that of our online phase), we build a new protocol. This is because the former involves distributed zero-knowledge protocols. The cost of this heavy machinery gets amortized only for large circuits having millions of gates, which is very unlikely for inference and moderately heavy training tasks in PPML. As in BLAZE , we follow a similar structure for our multiplication protocol but differ considerably in techniques as our goal is to obtain GOD. Our approach is to manipulate and transform some of the protocol steps so that two other servers can locally compute the information required by a server in a round. However, this transformation is not straight forward since BLAZE was constructed with a focus towards providing only fairness (details appear in §3). The multiplication protocol forms a technical basis for our dot product protocol and other PPML building blocks. We emphasise again that the (amortized) cost of our dot product protocol is independent of the vector size.
Third, extending to 4PC brings several performance improvements over 3PC. Most prominent of all is a conceptually simple instantiation, which forgoes the broadcast channel while retaining the same communication cost; and a dot product with cost independent of vector size sans the 3PC amortization technique.
Fourth, we provide robust protocols for input sharing and output reconstruction phase in the SOC setting, wherein a user shares its input with the servers, and the output is reconstructed towards a user. The need for robustness and communication efficiency together makes these tasks slightly non-trivial. As a highlight, we introduce a super-fast online phase for the reconstruction protocol, which gives improvement in terms of rounds (apart from improvement in the communication) compared to BLAZE. Although we aim for GOD, we ensure that an end-user is never part of broadcast which is relatively expensive than atomic point-to-point communication.
As a final remark, we note that the recent work of proposes a variant of GOD in the 4PC setting, which is termed as private robustness. The authors of state that private robustness is a variant of GOD which guarantees that the correct output is produced in the end, but without relying on an honest party learning the user’s private inputs. Thus, departing from the approach of employing a to complete the computation when malicious behaviour is detected, attains GOD by eliminating a potentially corrupt party, and repeating the secure computation with fewer number of parties which are deemed to be honest. We point out a few concerns on this work. Firstly, as mentioned earlier, the goal of private robustness is to prevent an honest party learning the user’s input, thereby preventing it from misusing this private information (user’s input) in the future if it goes rogue. We note, however, that in the private robustness setting, although an honest party does not learn a user’s input as a part of the protocol, nothing prevents an adversary from revealing its view to an honest party. In such a scenario, if the honest party goes rogue in the future, it can use its view together with the view received from the adversary to obtain a user’s input. Hence, we believe that the attacks that can be launched in our variant for achieving GOD, can also be launched in the private robustness variant, making the two equivalent. Secondly and importantly, a formal treatment of private robustness is missing in which makes it unclear what additional security is achieved on top of traditional GOD security. Here, we additionally note that the notion of private robustness does not comply with the recently introduced notion of FaF security Althought states that the issue of private robustness was identified and treated formally in , it is not clear whether achieves the FaF security of . For a corruption threshold and an honest threshold , FaF security demands that the view of any corrupt parties and separately the view of any honest parties must be simulatable. The latter part which is a new addition compared to traditional security definition requires the presence of a (semi-honest) simulator that can simulate the view of any subset of honest parties, given the input and output of those honest parties. This notion is shown to be achievable if and only if , where is the total number of parties. With , and , the results of does not satisfy FaF security since an honest party’s view may include the inputs of the other honest parties when a corrupt party, deviating from the protocol steps, sends its view to it. A formal analysis of protocols in satisfying the FaF security notion of is missing.. Lastly, we emphasize that the approach of eliminating a potentially corrupt party, and re-running the computation results in doubling or tripling the communication cost, thereby undermining the efficiency gains.
2 Organisation of the paper
The rest of the paper is organized as follows. In §2 we describe the system model, preliminaries and notations used. §3 and §4 detail our constructs in the 3PC and 4PC setting respectively. These are followed by the applications and benchmarking in §5. §A elaborates on additional preliminaries while the security proofs for our constructions are provided in §C.
Preliminaries
We consider a set of three servers that are connected by pair-wise private and authentic channels in a synchronous network, and a static, malicious adversary that can corrupt at most one server. We use a broadcast channel for 3PC alone, which is inevitable . For ML training, several data-owners who wish to jointly train a model, secret share (using the sharing semantics that will appear later) their data among the servers. For ML inference, a model-owner and client secret share the model and the query, respectively, among the servers. Once the inputs are available in the shared format, the servers perform computations and obtain the output in the shared form. In the case of training, the output model is reconstructed towards the data-owners, whereas for inference, the prediction result is reconstructed towards the client. We assume that an arbitrary number of data-owners may collude with a corrupt server for training, whereas for the case of prediction, we assume that either the model-owner or the client can collude with a corrupt server. We prove the security of our protocols using a standard real-world / ideal-world paradigm. We also explore the above model for the four server setting with . The aforementioned setting has been explored extensively .
Our constructions achieve the strongest security guarantee of GOD. A protocol is said to be robust or achieve GOD if all parties obtain the output of the protocol regardless of how the adversary behaves. In our model, this translates to all the data owners obtaining the trained model for the case of ML training, while the client obtaining the query output for ML inference. All our protocols are cast into: input-independent preprocessing phase and input-dependent online phase.
The servers use a one-time key setup, modelled as a functionality (Fig. 27), to establish pre-shared random keys for pseudo-random functions (PRF) between them. A similar setup is used in for three server case and in for four server setting. The key-setup can be instantiated using any standard MPC protocol in the respective setting. Further, our protocols make use of a collision-resistant hash function, denoted by , and a commitment scheme, denoted by . The formal details of key setup, hash function, and commitment scheme are deferred to §A.
Robust 3PC and PPML
In this section, we first introduce the sharing semantics for three servers. Then, we introduce our new Joint Message Passing () primitive, which plays a crucial role in obtaining the strongest security guarantee of GOD, followed by our protocols in the three server setting.
We use the following secret-sharing semantics.
holds for .
Given -shares of , and public constants , servers can locally compute -share of as . It is trivial to see that linearity property is satisfied by and sharings.
1 Joint Message Passing primitive
Each for maintains a bit initialized to , as an indicator for inconsistency. When receives an inconsistent (value, hash) pair, it sets and sends the bit to both , who cross-check with each other by exchanging the bit and turn on their inconsistency bit if the bit received from either or its fellow sender is turned on. A server broadcasts a hash of its value when its inconsistency bit is on;hash can be computed on a combined message across many calls of . ’s value is the one it receives from . At this stage, there are a bunch of possible cases and a detailed analysis determines an eligible in each case.
When is silent, the protocol is understood to be complete. This is fine irrespective of the status of – an honest never skips this broadcast with inconsistency bit on, and a corrupt implies honest senders. If either or is silent, then is picked as which is surely honest. A corrupt could not make one of speak, as the senders (honest in this case) are in agreement on their inconsistency bit (due to their mutual exchange of inconsistency bit). When all of them speak and (i) the senders’ hashes do not match, is picked as ; (ii) one of the senders conflicts with , the other sender is picked as ; and lastly (iii) if there is no conflict, is picked as . The first two cases are self-explanatory. In the last case, either or is corrupt. If not, a corrupt can have honest speak (and hence turn on its inconsistency bit), by sending a whose hash is not same as that of and so inevitably, the hashes of honest and will conflict, contradicting (iii). As a final touch, we ensure that, in each step, a server raises a public alarm (via broadcast) accusing a server which is silent when it is not supposed to be, and the protocol terminates immediately by labelling the server as who is neither the complainer nor the accused.
We say that to when they invoke .
Using in protocols. As mentioned in the introduction, the protocol needs to be viewed as consisting of two phases (send, verify), where send phase consists of sending to and the rest goes to verify phase. Looking ahead, most of our protocols use , and consequently, our final construction, either of general MPC or any PPML task, will have several calls to . To leverage amortization, the send phase will be executed in all protocols invoking on the flow, while the verify for a fixed ordered pair of senders will be executed once and for all in the end. The verify phase will determine if all the sends were correct. If not, a is identified, as explained, and the computation completes with the help of , just as in the ideal-world.
2 3PC Protocols
We now describe the protocols for 3 parties/servers and defer the security proofs to §C.1.
In this protocol, servers execute protocol once. Hence the overall cost follows from that of an instance of the protocol (Lemma 3.2). ∎
Given -shares on input wires , servers can use linearity property of the sharing scheme to locally compute -shares of the output of addition gate, as .
servers locally compute during the online phase and mutually exchange their shares to reconstruct . then sends to , completing the semi-honest protocol. The correctness that asserts or in other words holds due to Eq. 1.
The following issues arise in the above protocol when a malicious adversary is considered:
When is corrupt, the -sharing of performed by might not be correct, i.e. .
When (or ) is corrupt, -share of handed over to the fellow honest evaluator during the online phase might not be correct, causing reconstruction of an incorrect .
When is corrupt, the value that is sent to during the online phase may not be correct.
All the three issues are common with BLAZE (copied verbatim), but we differ from BLAZE in handling them. We begin with solving the last issue first. We simply make to (after is computed). This either leads to success or a selection. Due to ’s rate-1 communication, alone sending the value to remains as costly as using in amortized sense. Whereas in BLAZE, the malicious version simply makes to send a hash of to (in addition to ’s communication of to ), who s if the received values are inconsistent.
For the remaining two issues, similar to BLAZE, we reduce both to a multiplication (on values unrelated to inputs) in the preprocessing phase. However, our method leads to either success or selection, with no additional cost.
We start with the second issue. To solve it, where a corrupt (or ) sends an incorrect -share of , BLAZE makes use of server to compute a version of for verification, based on and , as follows. Using , , , , and , computes:
Clearly, both and can compute given . The rest of our discussion explains how (a) th share of can be made available to and (b) can be derived by , from a multiplication triple. Similar to BLAZE, yet for a different triple, we observe that is a multiplication triple, where if and only if and are correct. Indeed,
Based on this observation, we compute the above multiplication triple using a multiplication protocol and extract out the values for and from the shares of which are bound to be correct. This can be executed entirely in the preprocessing phase. Specifically, the servers (a) locally obtain -shares of as in Table 3, (b) compute -shares of , say denoted by , using an efficient, robust 3-party multiplication protocol, say (abstracted in a functionality Fig. 6) and finally (c) extract out the required preprocessing data locally as in Eq. 2. We switch to -sharing in this part to be able to use the best robust multiplication protocol of that supports this form of secret sharing and requires communication of just elements. Fortunately, the switch does not cost anything, as both the step (a) and (c) (as above) involve local computation and the cost simply reduces to a single run of a multiplication protocol.
According to -sharing, both and obtain and hence obtain . Similarly, obtain and hence . Finally, obtain from which they compute . This completes the informal discussion.
To leverage amortization, the send phase of alone is executed on the fly and verify is performed once for multiple instances of . Further, observe that possess the required shares in the online phase to compute the entire circuit. Hence, can come in only during verify of towards , which can be deferred towards the end. Hence, the of to (enabling computation of the verification information) can be performed once, towards the end, thereby requiring a single round for sending to for multiple instances. Following this, the verify of towards is performed first, followed by performing the verify of towards in parallel.
We note that to facilitate a fast online phase for multiplication, our preprocessing phase leverages a robust multiplication protocol in a black-box manner to derive the necessary preprocessing information. A similar black-box approach is also taken for the dot product protocol in the preprocessing phase. This leaves room for further improvements in the communication cost, which can be obtained by instantiating the black-box with an efficient, robust protocol coupled with the fast online phase.
On the security of our framework: We emphasize that we follow the standard traditional (real-world / ideal-world based) security definition of MPC, according to which, in the 4-party setting with 1 corruption, exactly 1 party is assumed to be corrupt, and rest are honest. As per this definition, disclosing the honest parties’s inputs to a selected honest party is not a breach of security. Indeed, in our framework, the data sharing and the computation on the shared data is done in a way that any malicious behaviour leads to establishment of a who is enabled to receive all the inputs and compute the output on the clear. There has been a recent study on the additional requirement of hiding the inputs from a quorum of honest parties (treating them as semi-honest), termed as Friends-and-Foes (FaF) security notion . This is a stronger security goal than the standard one and it has been shown that one cannot obtain FaF-secure robust 3PC. We leave FaF-secure 4PC for future exploration.
3 Building Blocks for PPML using 3PC
This section provides details on robust realizations of the following building blocks for PPML in 3-server setting– i) Dot Product, ii) Truncation, iii) Dot Product with Truncation, iv) Secure Comparison, and v) Non-linear Activation functions– Sigmoid and ReLU. We provide the security proofs in §C.1. We begin by providing details of input sharing and reconstruction in the SOC setting.
Protocol is essentially an execution of (Lemma 3.8) followed by one invocation of (Lemma 3.5) and the costs follow. ∎
To begin with, can be viewed as parallel multiplication instances of the form for , followed by adding up the results. Let . Then,
where .
Apart from the aforementioned modification, the online phase for dot product proceeds similar to that of multiplication protocol. locally compute as per Eq. 3 and to . obtains in a similar fashion. reconstruct and compute . Here, the value has to be correctly generated in the preprocessing phase satisfying Eq. 3. Finally, to .
We now provide the details for preprocessing phase that enable servers to obtain the required values () with the invocation of a dot product protocol in a black-box way. Towards this, let and , where and for , as in the case of multiplication. Then for ,
where and .
It is easy to see from the semantics of -sharing that both obtain and hence . Similarly, both obtain and hence , while obtain .
Working over fixed-point values, repeated multiplications using FPA arithmetic can lead to an overflow resulting in loss of significant bits of information. This put forth the need for truncation that re-adjusts the shares after multiplication so that FPA semantics are maintained. As shown in SecureML , the method of truncation would result in loss of information on the least significant bits and affect the accuracy by a very minimal amount.
For truncation, servers execute (Fig. 13) to generate -pair, where is a random ring element, and is the truncated value of , i.e the value right-shifted by bit positions. Recall that denotes the number of bits allocated for the fractional part in the FPA representation. Given , the truncated value of , denoted as , is computed as . The correctness and accuracy of this method was shown in ABY3 .
Similarly, for we have the following,
All the operations in are non-interactive except for the two dot product calls required to compute . The cost thus follows from Lemma 3.10. ∎
Given the -sharing of vectors and , protocol (Fig. 14) allows servers to generate , where denotes the truncated value of . A naive way is to compute the dot product using , followed by performing truncation using the () pair. Instead, we follow the optimization of BLAZE where the online phase of is modified to integrate the truncation using at no additional cost.
The preprocessing phase now consists of the execution of one instance of (Fig. 13) and the preprocessing corresponding to (Fig. 11). In the online phase, servers enable to obtain instead of , where . Using , both then compute locally, truncate it to obtain and execute to generate . Finally, servers locally compute the result as . The formal details for protocol appear in Fig. 14.
Secure comparison allows servers to check whether , given their -shares. In FPA representation, checking is equivalent to checking the of . Towards this, servers locally compute and extract the of using . In case an arithmetic sharing is desired, servers can apply (Fig. 10) protocol on the outcome of protocol.
We now elaborate on two of the most prominently used activation functions: i) Rectified Linear Unit (ReLU) and (ii) Sigmoid (Sig).
(i) ReLU: The ReLU function, , can be viewed as , where bit if and otherwise. Here denotes the complement of . Given , servers execute on to generate . -sharing of is locally computed by setting . Servers execute protocol on and to obtain the desired result.
One instance of protocol comprises of execution of one instance of , followed by . The cost, therefore, follows from Lemma 3.7, and Lemma 3.9. ∎
(ii) Sig: In this work, we use the MPC-friendly variant of the Sigmoid function . Note that , where if and if . To compute , servers proceed in a similar fashion as in ReLU, and hence, we skip the details.
The formal details of the MPC-friendly variant of the Sigmoid function is given below:
An instance of protocol involves the execution of the following protocols in order– i) two parallel instances of protocol, ii) once instance of protocol over boolean value, and iii) one instance of and in parallel. The cost follows from Lemma 3.7, Lemma 3.8 and Lemma 3.9. ∎
The goal of maxpool is to find the maximum value in a vector of values. Maximum between two elements , can be computed by applying secure comparison, which returns a binary sharing of a bit such that if , or , otherwise, followed by computing , which can be performed using bit injection (3.3). To find the maximum value in vector , the servers first group the values in into pairs and securely compare each pair to obtain the maximum of the two. This results in a vector of size . This process is repeated for rounds to obtain the maximum value in the entire vector.
Linear matrix operations, such as addition of two matrices to generate matrix , can be computed by extending the scalar operations (addition, in this case) with respect to each element of the matrix. Matrix multiplication, on the other hand, can be expressed as a collection of dot products, where the element in the row and column of , where are matrices of dimension , , respectively, can be computed as a dot product of the row of and the column of . Thus, computing of dimension requires dot products whose communication cost (amortized) is equal to that of computing multiplications in our case. This improves the cost of matrix multiplication over the naive approach which requires multiplications.
Convolutions form an important building block in several neural network architectures and can be represented as matrix multiplications, as explained in the example below. Consider a 2-dimensional convolution () of a input matrix with a kernel of size . This can be represented as a matrix multiplication as follows.
Generally, convolving a kernel over a input with padding using stride having input channels and output channels, is equivalent to performing a matrix multiplication on matrices of dimension and where and . We refer readers to (cf. “Linear and Convolutional Layer”) and for more details.
Robust 4PC and PPML
In this section, we extend our 3PC results to the 4-party case and observe substantial efficiency gain. First, the use of broadcast is eliminated. Second, the preprocessing of multiplication becomes substantially computationally light, eliminating the multiplication protocol (used in the preprocessing) altogether. Third, we achieve a dot product protocol with communication cost independent of the size of the vector, completely eliminating the complex machinery required as in the 3PC case. At the heart of our 4PC constructions lies an efficient 4-party primitive, denoted as , that allows two servers to send a common value to a third server robustly.
This section is organized as follows. We begin with the secret-sharing semantics for servers, for which we only use an extended version of -sharing. We then explain the joint message passing primitive for four servers, followed by our 4PC protocols. We conclude this section with a detailed analysis about achieving private robustness.
For a value , the shares for and remain the same as that for 3PC case. That is, holds while for holds . The shares for the fourth server is defined as . Clearly, the secret is defined as .
1 4PC Joint Message Passing Primitive
We say that to when they invoke .
We note that the end goal of primitive relates closely to the bi-convey primitive of FLASH . Bi-convey allows two servers to convey a value to a server , and in case of an inconsistency, a pair of honest servers mutually identify each other, followed by exchanging their internal randomness to recover the clear inputs, computing the circuit, and sending the output to all. Note, however, that primitive is more efficient and differs significantly in techniques from the bi-convey primitive. Unlike in bi-convey, in case of an inconsistency, enables servers to learn the ’s identity unanimously. Moreover, bi-convey demands that honest servers, identified during an inconsistency, exchange their internal randomness (which comprises of the shared keys established during the key-setup phase) to proceed with the computation. This enforces the need for a fresh key-setup every time inconsistency is detected. On the efficiency front, simply halves the communication cost of bi-convey, giving a improvement.
2 4PC Protocols
In this section, we revisit the protocols from 3PC (§3) and suggest optimizations leveraging the presence of an additional honest party in the system. We provide security proofs in §C.2.
To enable to share a value , protocol (Fig. 17) proceeds similar to that of 3PC case with the addition that also samples the values using the shared randomness with the respective servers. On a high level, computes and sends (or ) to another server and they together this information to the intended servers. The formal protocol for sharing a value by is given in Fig. 17
We further observe that servers can generate a -sharing of non-interactively when is available with . For this, servers set and . We abuse notation and use to denote this sharing.
In some protocols, is required to generate -sharing of a value in the preprocessing phase, where -sharing of is same as that defined in 3PC (where , and possesses , possesses , and possess ) with the addition that now possesses . We call the resultant protocol and it appears in Fig. 19.
Note that servers can locally convert to by setting their shares as shown in Table 5.
Given the -shares of and , protocol (Fig. 20) allows servers to compute with . When compared with the state-of-the-art 4PC GOD protocol of FLASH , our solution improves communication in both, the preprocessing and online phase, from to ring elements. Moreover, our communication cost matches with the state-of-the-art 4PC protocol of Trident that only provides security with fairness.
Given , protocol (Fig. 21) enables servers to robustly reconstruct the value among the servers. Note that every server lacks one share for reconstruction and the same is available with three other servers. Hence, they communicate the missing share among themselves, and the majority value is accepted. As an optimization, two among the three servers can send the missing share while the third one can send a hash of the same for verification. Notice that, as opposed to the 3PC case, this protocol does not require commitments. The formal protocol for reconstruction is given in Fig. 21.
3 Building Blocks for PPML using 4PC
This section provides details on robust realizations of the PPML building blocks in 4-server setting (for the same blocks as in §3.3). We provide the security proofs in §C.2.
where and . The protocol proceeds with generating -shares of and , followed by verification of the same by . If verification succeeds, then to enable to compute , the missing share of to . Similarly for . Next, reconstruct , and to completing the protocol.
Given -shares of two -sized vectors , protocol (Fig. 24) enables servers to compute with . The protocol is essentially similar to instances of multiplications of the form for . But instead of communicating values corresponding to each of the instances, servers locally sum up the shares and communicate a single value. This helps to obtain a communication cost independent of the size of the vectors.
In more detail, the dot product protocol proceeds as follows. During the preprocessing phase, similar to the multiplication protocol sample a random . compute and to . sample a random , and generate its -shares locally. Servers for then compute , and to . The formal protocol is given in Fig. 24.
Given the -sharing of a value and a random truncation pair , the -sharing of the truncated value (right shifted value by, say, positions) can be computed as follows. Servers open the value , truncate it and add it to to obtain . The protocol for generating the truncation pair is described in Fig. 25.
The cost follows directly from that of (Lemma 4.2 and 4.4). ∎
Protocol (Fig. 26) enables servers to generate -sharing of the truncated value of , denoted as , given the -sharing of -sized vectors and . This protocol is similar to the 3PC protocol.
Here, as in the 3PC case, we consider two activation functions – ReLU and Sig.
One instance of protocol comprises of execution of one instance of , followed by . The cost, therefore, follows from Lemma 4.8, and Lemma 4.10. ∎
An instance of protocol involves the execution of the following protocols in order– i) two parallel instances of protocol, ii) one instance of protocol over boolean value, and iii) one instance of and in parallel. The cost follows from Lemma 4.8, Lemma 4.9 and Lemma 4.10. ∎
Applications and Benchmarking
In this section, we empirically show the practicality of our protocols for PPML. We consider training and inference for Logistic Regression, and inference for different Neural Networks (NN). NN training requires additional tools to allow mixed world computations, which we leave as future work. We refer readers to SecureML , ABY3 , BLAZE , FALCON for a detailed description of the training and inference steps for the aforementioned ML algorithms. All our benchmarking is done over the publicly available MNIST and CIFAR-10 dataset. For training, we use a batch size of and define KB = bits.
In 3PC, we compare our results against the best-known framework BLAZE that provides fairness in the same setting. We observe that the technique of making the dot product cost independent of feature size can also be applied to BLAZE to obtain better costs. Hence, for a fair comparison, we additionally report these improved values for BLAZE. Further, we only consider the PPA circuit based variant of bit extraction for BLAZE since we aim for high throughput; the GC based variant results in huge communication and is not efficient for deep NNs. Our results imply that we get GOD at no additional cost compared to BLAZE. For 4PC, we compare our results with two best-known works FLASH (which is robust) and Trident (which is fair). Our results halve the cost of FLASH and are on par with Trident.
We implement our protocols using the publicly available ENCRYPTO library in C++17. We obtained the code of BLAZE and FLASH from the respective authors and executed them in our environment. The collision-resistant hash function was instantiated using SHA-256. We have used multi-threading, and our machines were capable of handling a total of 32 threads. Each experiment is run for 20 times, and the average values are reported.
MNIST is a collection of pixel, handwritten digit images along with a label between and for each image. It has and respectively, images in the training and test set. We evaluate logistic regression, and NN-1, NN-2 (cf. §5.2) on this dataset.
CIFAR-10 consists of pixel images of different classes such as dogs, horses, etc. There are images for training and for testing, with images in each class. We evaluate NN-3 (cf. §5.2) on this dataset.
We use throughput () as the benchmarking parameter following BLAZE and ABY3 as it would help to analyse the effect of improved communication and round complexity in a single shot. Here, denotes the number of operations (“iterations" for the case of training and “queries" for the case of inference) that can be performed in unit time. We consider minute as the unit time since most of our protocols over WAN requires more than a second to complete. An iteration in ML training consists of a forward propagation phase followed by a backward propagation phase. In the former phase, servers compute the output from the inputs. At the same time, in the latter, the model parameters are adjusted according to the difference in the computed output and the actual output. The inference can be viewed as one forward propagation of the algorithm alone. In addition to , we provide the online and overall communication and latency for all the benchmarked ML algorithms.
We observe that due to our protocols’ asymmetric nature, the communication load is unevenly distributed among all the servers, which leaves several communication channels under-utilized. Thus, to improve the performance, we perform load balancing, where we run several parallel execution threads, each with roles of the servers changed. This helps in utilizing all channels and improving the performance. We report the communication and runtime of the protocols for online phase and total (= preprocessing + online).
1 Logistic Regression
In Logistic Regression, one iteration comprises updating the weight vector using the gradient descent algorithm (GD). It is updated according to the function given below: where and denote the learning rate, and a subset, of batch size B, randomly selected from the entire dataset in the th iteration, respectively. The forward propagation comprises of computing the value followed by an application of a sigmoid function on it. The weight vector is updated in the backward propagation, which internally requires the computation of a series of matrix multiplications, and can be achieved using a dot product. The update function can be computed using shares as: We summarize our results in Table 6.
We observe that the online for the case of 3PC inference is slightly lower compared to that of BLAZE. This is because the total number of rounds for the inference phase is slightly higher in our case due to the additional rounds introduced by the verification mechanism (aka verify phase which also needs broadcast). This gap becomes less evident for protocols with more number of rounds, as is demonstrated in the case of NN (presented next), where verification for several iterations is clubbed together, making the overhead for verification insignificant.
For the case of 4PC, our solution outperforms FLASH in terms of communication as well as throughput. Concretely, we observe a improvement in for inference and a improvement for training. For Trident , we observe a drop of in for inference due to the extra rounds required for verification to achieve GOD. This loss is, however, traded-off with the stronger security guarantee. For training, we are on par with Trident as the effect of extra rounds becomes less significant for more number of rounds, as will also be evident from the comparisons for NN inference.
As a final remark, note that our 4PC sees roughly improvement compared to our 3PC for logistic regression.
2 NN Inference
We consider the following popular neural networks for benchmarking. These are chosen based on the different range of model parameters and types of layers used in the network. We refer readers to for a detailed architecture of the neural networks.
NN-1: This is a -layered fully connected network with ReLU activation after each layer. This network has around K parameters and is chosen from .
NN-2: This network, called LeNet , contains convolutional layers and fully connected layers with ReLU activation after each layer, additionally followed by maxpool for convolutional layers. This network has approximately K parameters.
NN-3: This network, called VGG16 , was the runner-up of ILSVRC-2014 competition. This network has layers in total and comprises of fully-connected, convolutional, ReLU activation and maxpool layers. This network has about million parameters.
Table 7 summarise our benchmarking results for 3PC NN inference. As illustrated, the performance of our 3PC framework is on par with BLAZE while providing better security guarantee.
Table 8 summarises NN inference for 4PC setting. Here, we outperform FLASH in every aspect, with the improvement in being at least for each NN architecture. Further, we are on par with Trident because the extra rounds required for verification get amortized with an increase in the number of rounds required for computing NN inference. This establishes the practical relevance of our work.
As a final remark, note that our 4PC sees roughly improvement compared to our 3PC for NN inference. This reflects the improvements brought in by the additional honest server in the system.
Conclusion
In this work, we presented an efficient framework for PPML that achieves the strongest security of GOD or robustness. Our 3PC protocol builds upon the recent work of BLAZE and achieves almost similar (in some cases, better) performance albeit improving the security guarantee. For the case of 4PC, we outperform the best-known– (a) robust protocol of FLASH by performance-wise and (b) fair protocol of Trident by uplifting its security.
We leave the problem of extending our framework to support mixed-world conversions as well as to design protocols to support algorithms like Decision Trees, k-means Clustering etc. as open problem.
Acknowledgements
We thank our shepherd Guevara Noubir, and anonymous reviewers for their valuable feedback.
Nishat Koti would like to acknowledge financial support from Cisco PhD Fellowship 2020. Mahak Pancholi would like to acknowledge financial support from Cisco MTech Fellowship 2020. Arpita Patra would like to acknowledge financial support from SERB MATRICS (Theoretical Sciences) Grant 2020 and Google India AI/ML Research Award 2020. Ajith Suresh would like to acknowledge financial support from Google PhD Fellowship 2019. The authors would also like to acknowledge the financial support from Google Cloud to perform the benchmarking.
References
Appendix A Preliminaries
One key shared between every pair– for the servers and, respectively.
One shared key known to all the servers– .
The key setup is modelled via a functionality (Fig. 27) that can be realised using any secure MPC protocol. Analogously, key setup functionality for 4PC is given in Fig. 28.
To generate a 3-out-of-3 additive sharing of i.e. for such that holds , and , servers proceed as follows. Every pair of servers, , non-interactively generate , as described earlier, and each sets .
A.2 Collision Resistant Hash Function
Consider a hash function family . The hash function is said to be collision resistant if, for all probabilistic polynomial-time adversaries , given the description of where , there exists a negligible function such that , where and .
A.3 Commitment Scheme
Let denote the commitment of a value . The commitment scheme possesses two properties; hiding and binding. The former ensures privacy of the value given just its commitment , while the latter prevents a corrupt server from opening the commitment to a different value . The practical realization of a commitment scheme is via a hash function given below, whose security can be proved in the random-oracle model (ROM)– for .
As mentioned earlier, a trivial way to instantiate is to treat a dot product operation as multiplications. However, this results in a communication cost that is linearly dependent on the feature size. Instead, we instantiate by a semi-honest dot product protocol followed by a verification phase to check the correctness. For the verification phase, we extend the techniques of to provide support for verification of dot product tuples. Setting the verification phase parameters appropriately gives a whose (amortized) communication cost is independent of the feature size. We provide the details next.
To realize , the approach is to run a semi-honest dot product protocol followed by a verification phase to check the correctness of the output. For verification, the work of provides techniques to verify the correctness of multiplication triples (and degree-two relations) at a cost of extended ring elements, albeit with abort security. While improves their techniques to provide robust verification for multiplication, we show how to extend the techniques in to robustly verify the correctness of dot product tuples (dot product being a degree two relation), with vectors of dimension , at a cost of extended ring elements. Thus, the cost to realize one instance of can be brought down to only the cost of a semi-honest dot product computation (which is ring elements and independent of the vector dimension), where the cost due to verification can be amortized away by setting appropriately.
Now, to complete the -sharing of , sends to . To check the correctness of the computation , each needs to prove that the it sent in the semi-honest protocol satisfies 7, i.e.
This difference in the expected message that should be sent (computed using ’s correct input shares) and actual message that is sent by is captured by a circuit , defined below.
Here, takes as input values: -shares of held by , i.e. , the additive share of zero, , that holds, and the additive share sent by . For correct computation with respect to , we require the difference in the expected message and the actual message to be , i.e.,
We now explain how to verify the correctness for dot product tuples assuming that the operations are carried out over a prime-order field. The verification can be extended to support operations over rings following the techniques of . To verify the correctness for dot product tuples, where , the output of (which is the difference in the expected and actual message sent) for each of the corresponding dot product tuple must be . To check correctness of all dot products at once, it suffices to check if a random linear combination of the output of each (for each dot product) is . This is because the random linear combination of the differences will be with high probability if for each . We remark that the definition of in enables the verification of only multiplication triples. With the re-definition of as in 9, we can now verify the correctness of dot products while the rest of the verification steps remain similar to that in . We elaborate on the details, next.
A verification circuit, constructed as follows, enables to prove the correctness of the additive share of that it sent, for instances of dot product at once. Note that the proof system is designed for the distributed-verifier setting where the proof generated by will be shared among , who can together verify its correctness. First, a sub-circuit is defined as: group small circuits and take a random linear combination of the values on their output wires. Since each circuit takes inputs as described earlier, takes in inputs. Precisely, is defined as follows:
Since there are total dot products to be verified, there will be sub-circuits . Looking ahead, this grouping technique enables obtaining a sub-linear communication cost for verification because the communication cost turns out to be and setting gives the desired result. The sub-circuits make up the circuit which outputs a random linear combination of the values on the output wires of each , i.e:
We note that both, and our technique require a communication cost of ring elements for verifying dot products of vector size . This is because multiplication is a special case of dot product with . However, since our verification is for dot products, we can get away with performing only semi-honest dot products whose cost is equivalent to computing semi-honest multiplications, whereas requires to execute multiplications (as their technique can only verify correctness of multiplications), resulting in a dot product cost dependent on the vector size. Concretely, to get bits of statistical security and for a vector size of (CIFAR-10 dataset), the aforementioned parameters can be set as given in Table 9.
It is possible to further bring down the communication cost required for verifying dot product tuples to at the expense of requiring more rounds by further extending the technique of , which we leave as an exercise. We refer readers to for formal details.
Appendix C Security Analysis of Our Protocols
In this section, we provide detailed security proofs for our constructions in both the 3PC and 4PC domains. We prove security using the real-world/ ideal-word simulation based technique. We provide proofs in the -hybrid model for the case of 3PC, where (Fig. 27) denotes the ideal functionality for the three server shared-key setup. Similarly, 4PC proofs are provided in -hybrid model (Fig. 28).
Let denote the real-world adversary corrupting at most one server in , and denote the corresponding ideal world adversary. The strategy for simulating the computation of function (represented by a circuit ) is as follows: The simulation begins with the simulator emulating the shared-key setup () functionality and giving the respective keys to the adversary. This is followed by the input sharing phase in which extracts the input of , using the known keys, and sets the inputs of the honest parties to be . now knows all the inputs and can compute all the intermediate values for each of the building blocks in clear. Also, can obtain the output of the in clear. now proceeds simulating each of the building block in topological order using the aforementioned values (inputs of , intermediate values and circuit output).
In some of our sub protocols, adversary is able to decide on which among the honest parties should be chosen as the Trusted Third Party () in that execution of the protocol. To capture this, we consider corruption-aware functionalities for the sub-protocols, where the functionality is provided the identity of the corrupt server as an auxiliary information.
For modularity, we provide the simulation steps for each of the sub-protocols separately. These steps, when carried out in the respective order, result in the simulation steps for the entire 3/4PC protocol. If a is identified during the simulation of any of the sub-protocols, simulator will stop the simulation at that step. In the next round, the simulator receives the input of the corrupt party in clear on behalf of the for the 3PC case, whereas it receives the input shares from adversary for 4PC.
The ideal functionality for 3PC appears in Fig. 29.
This section provides the security proof for the primitive, which forms the crux for achieving GOD in our constructions. Let (Fig. 1) denote the ideal functionality and let denote the corresponding simulator for the case of corrupt . We begin with the case for a corrupt sender, . The case for a corrupt is similar and hence we omit details for the same. – initializes and receives from on behalf of . – In case, fails to send a value broadcasts "(accuse,)", sets , , and skip to the last step. – Else, it checks if , where is the value computed by based on the interaction with , and using the knowledge of the shared keys. If the values are equal, sets , else, sets , and sends the same to on the behalf of . – If broadcasts "(accuse,)", sets , , and skips to the last step. – computes and sends to on behalf of and receives from on behalf of honest . – If does not receive a on behalf of , it broadcasts "(accuse,)", sets , . If broadcasts "(accuse,)", sets , . If is set, skip to the last step. – If and , broadcasts on behalf of . – Else if : broadcasts and on behalf of and , respectively. If does not broadcast, sets . Else if, broadcasts a value : If : sets . Else if : sets . – invokes on and on behalf of .
The case for a corrupt receiver, is provided in Fig. 31.
C.1.2 Sharing Protocol
The case for a corrupt is provided in Fig. 37. \justify Preprocessing: emulates and gives the keys to . The values that are commonly held along with are sampled using appropriate shared key. Otherwise, values are sampled randomly. \justify Online: – If the dealer : receives on behalf of and sets accordingly. Steps for protocol are simulated according to (Fig. 30), where plays the role of one of the senders. – If the dealer : sets by assigning . Steps for protocol are simulated similar to (Fig. 31), with acting as the receiver. – If the dealer if : Similar to the case when .
The case for a corrupt is provided in Fig. 33. The case for a corrupt is similar. \justify Preprocessing: emulates and gives the keys to . The values that are commonly held along with are sampled using appropriate shared key. Otherwise, values are sampled randomly. \justify Online: – If dealer : receives from on behalf of . – If : sets by assigning and sends to on behalf of . – If : Similar to the case where . – Steps of , in all the steps above, are simulated similar to (Fig. 30), ie. the case of corrupt sender.
C.1.3 Multiplication Protocol
The case for a corrupt is provided in Fig. 34.
C.1.4 Reconstruction Protocol
The case for a corrupt is provided in Fig. 52. The case for a corrupt is similar.
C.1.5 Joint Sharing Protocol
The case for a corrupt is provided in Fig. 37. The case for a corrupt is similar. \justify Preprocessing: emulates and gives the keys to . The values that are commonly held along with are sampled using appropriate shared key. Otherwise, values are sampled randomly. \justify Online: – If : computes on behalf of . The steps of are simulated similar to , where the acts as one of the senders. – If : Similar to the case when . – If : sets by setting . The steps of are simulated similar to , where the acts as the receiver.
C.1.6 Dot Product Protocol
The case for a corrupt is provided in Fig. 38. \justify Preprocessing: emulates and derives and respective -shares of honestly on behalf of . \justify Online: – computes -shares of on behalf of . The steps of , required to provide with , and with , are simulated similar to , where acts as one of the sender in both cases. – computes and on behalf of . The steps of the , required to provide with , are simulated similar to , where acts as the receiver.
The case for a corrupt is provided in Fig. 39. The case for a corrupt is similar. \justify Preprocessing: emulates and derives -shares of honestly on behalf of . \justify Online: – computes on behalf of , and on behalf of and . The steps of , required to provide with , and with , are simulated similar to , where acts as one of the sender in the former case, and as a receiver in the latter case. – computes and on behalf of . The steps of , required to provide with , are simulated similar to , where acts as one of the sender.
C.1.7 Truncation Protocol
C.2 Security Proofs for 4PC protocols
The ideal functionality for evaluating a function to be computed by in 4PC appears in Fig. 42. \justify interacts with the servers in and the adversary . Let denote the function to be computed. Let be the input corresponding to the server , and be the corresponding output, i.e Step 1: receives from , and computes Step 2: sends to .
Let Fig. 15 denote the ideal functionality and let denote the corresponding simulator for the case of corrupt .
We begin with the case for a corrupt sender, , which is provided in Fig. 43. The case for a corrupt is similar and hence we omit details for the same. \justify – receives from on behalf of honest . If (where is the value computed by based on the interaction with , and using the knowledge of the shared keys), then sets , else it sets . If fails to send a value, is set to be . sends to on behalf of . – sends and to , and receives from on behalf of honest , respectively. – If , sets , else it sets . invokes with and on behalf of .
The case for a corrupt receiver, is provided in Fig. 44.
The case for a corrupt receiver, , which is the server outside the computation involved in , is provided in Fig. 45.
C.2.2 Sharing Protocol
The case for corrupt is given in Fig. 46. \justify Preprocessing: emulates and gives the keys and to . The values that are commonly held with are sampled using the respective keys, while others are sampled randomly. \justify Online: – If dealer is , receives from on behalf of . Steps corresponding to are simulated according to where acts as one of the sender for sending . – If dealer is or , sets by assigning . Steps corresponding to for sending to are simulated according to where acts as the receiver. – If dealer is , sets by assigning . sends to on behalf of . Steps corresponding to are simulated according to where acts as one of the sender with , as the receivers, separately.
The case for corrupt is given in Fig. 47. The case for a corrupt is similar. \justify Preprocessing: emulates and gives the keys and to . The values that are commonly held with are sampled using the respective keys, while others are sampled randomly. \justify Online: – If dealer is , receives from on behalf of . Steps corresponding to are simulated according to where acts as one of the sender for sending to . – If dealer is or , sets by assigning . If dealer is , sends to on behalf of . Steps corresponding to are simulated according to where acts as one of the sender to send . If dealer is , sends to on behalf of . Steps corresponding to are simulated according to where acts as one of the sender to send . – If dealer is , sets by assigning . Steps corresponding to are simulated according to where acts as the receiver for receiving .
The case for corrupt is given in Fig. 48. \justify Preprocessing: emulates and gives the keys and to . The values that are commonly held with are sampled using the respective keys, while others are sampled randomly. \justify Online: – If dealer is , receives from on behalf of . Steps corresponding to are simulated according to where acts as one of the sender with , as the receivers, separately. – If dealer is or or , steps corresponding to are simulated according to where acts as the server outside the computation.
C.2.3 Multiplication Protocol
The case for corrupt is given in Fig. 49. \justify Preprocessing: – samples using the respective keys with . samples randomly on behalf of the respective honest parties, and computes honestly. – Steps corresponding to are simulated according to where acts as one of the sender for sending . – computes honestly. Steps corresponding to are simulated according to where acts as the receiver for . \justify Online: – computes honestly. Steps corresponding to are simulated according to where acts as one of the sender for sending . – computes . Steps corresponding to are simulated according to where acts as the receiver for receiving .
The case for corrupt is given in Fig. 50. The case for a corrupt is similar. \justify Preprocessing: – samples using the respective keys with . samples randomly on behalf of the respective honest parties. – Steps corresponding to are simulated according to where acts as the server outside the computation while communicating . – computes . Steps corresponding to are simulated according to where acts as one of the sender for . – Steps corresponding to are simulated according to where acts as the server outside the computation while communicating . \justify Online: – computes . Steps corresponding to are simulated according to and , where acts as one of the sender for sending , and acts as the receiver for receiving , respectively. – computes . Steps corresponding to are simulated according to where acts as one of the sender for sending .
The case for corrupt is given in Fig. 51. \justify Preprocessing: – samples using the respective keys with . computes honestly. – Steps corresponding to are simulated according to where acts as one of the sender for sending . – computes . Steps corresponding to are simulated according to where acts as one of the sender for sending and . \justify Online: – Steps corresponding to are simulated according to where acts as the server outside the computation involving and .
C.2.4 Reconstruction Protocol
The case for corrupt is given in Fig. 52. The cases for corrupt are similar. \justify – sends to on behalf of , and on behalf of , respectively. – receives from on behalf of , respectively.
C.2.5 Joint Sharing Protocol
The case for corrupt is given in Fig. 53. \justify Preprocessing: – has knowledge of and , which it obtains while emulating . The common values shared with the are sampled using the appropriate shared keys, while other values are sampled at random. \justify Online: – If dealers are : computes using . Steps corresponding to are simulated according to where acts as one of the sender for . – If dealers are or : Analogous to the above case. – If dealers are : sets and . Steps corresponding to are simulated according to where acts as the receiver for . – If dealers are : sets and . Steps corresponding to are simulated according to where acts as the server outside the computation for , and according to where acts as the receiver for . – If dealers are : Analogous to the above case.
The case for corrupt is given in Fig. 54. The case for corrupt is similar. \justify Preprocessing: – has knowledge of -values and corresponding to which it obtains while emulating . The common values shared with the are sampled using the appropriate shared keys, while other values are sampled at random. \justify Online: – If dealers are : computes using . Steps corresponding to are simulated according to where acts as one of the sender for . – If dealers are : Analogous to the previous case, except that now is sent instead of . – If dealers are : computes and . Steps corresponding to are simulated according to where acts as one of the sender for , . – If dealers are or or : sets and . Steps corresponding to are simulated according to where acts as the receiver for .
The case for corrupt is given in Fig. 55. \justify Preprocessing: – has knowledge of -values and corresponding to which it obtains while emulating . The common values shared with the are sampled using the appropriate shared keys, while other values are sampled at random. \justify Online: – If dealers are : sets . Steps corresponding to are simulated according to where acts as the server outside the computation for . – If dealers are or : Analogous to the above case. – If dealers are : computes using . Steps corresponding to are simulated according to where acts as one of the sender for sending . – If dealers are : computes and . Steps corresponding to are simulated according to where acts as one of the sender for sending . – If dealers are : Analogous to the above case.
C.2.6 Dot Product Protocol
The case for corrupt is given in Fig. 56. \justify Preprocessing: – samples using the respective keys with . samples randomly on behalf of the respective honest parties, and computes honestly. – Steps corresponding to are simulated according to where acts as one of the sender for . – computes honestly. Steps corresponding to are simulated according to where acts as the receiver for and . \justify Online: – computes honestly. Steps corresponding to are simulated according to where acts as one of the sender for . – computes . Steps corresponding to are simulated according to where acts as the receiver for .
The case for corrupt is given in Fig. 57. The case for corrupt is similar.
C.2.7 Truncation Pair Generation
Here we give the simulation steps for . The case for corrupt is given in Fig. 59. The case for corrupt is similar. \justify – samples using the respective keys with . – Steps corresponding to are simulated according to (Fig. 53).
The case for corrupt is given in Fig. 60. The case for corrupt is similar. \justify – samples using the respective keys with , and samples randomly. – Steps corresponding to are simulated according to (Fig. 54).