This invention relates to improvements in computing inner products between multidimensional vectors using Secure Multi Party Computation (SMPC).
Secure Multi Party Computation (SMPC) enables a set of parties to collaboratively compute a function over their inputs while keeping them private. There are several SMPC flavours described in the literature, including Yao's Garbled Circuits (Yao, Andrew Chi-Chih (1986). “How to generate and exchange secrets”. 27th Annual Symposium on Foundations of Computer Science (SFCS 1986). Foundations of Computer Science, 1986, 27th Annual Symposium on. pp. 162-167. doi:10.1109/SFCS.1986.25. ISBN 978-0-8186-0740-0), GMW (O. Goldreich, S. Micali, A. Wigderson, “How to play ANY mental game”, Proceedings of the nineteenth annual ACM symposium on Theory of Computing, January 1987, Pages 218-229, doi:10.1145/28395.28420; and T. Schneider and M. Zohner, “GMW vs. Yao? Efficient secure two-party computation with low depth circuits,” in Financial Cryptography and Data Security (FC '13), ser. LNCS, vol. 7859. Springer, 2013, pp. 275-292), BGW (Ben-Or, M., Goldwasser, S., Wigderson, A.: Completeness theorems for Non-Cryptographic Fault-Tolerant Distributed Computation. In: Proc. ACM STOC '88, pp. 1-10 (1988)), SPDZ (Damgård I., Pastro V., Smart N., Zakarias S. (2012) Multiparty Computation from Somewhat Homomorphic Encryption. In: Safavi-Naini R., Canetti R. (eds) Advances in Cryptology—CRYPTO 2012. CRYPTO 2012. Lecture Notes in Computer Science, vol 7417. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-32009-5_38), BMR (Beaver, D., S. Micali, and P. Rogaway. 1990. “The Round Complexity of Secure Protocols (Extended Abstract)”. In: 22nd Annual ACM Symposium on Theory of Computing. ACM Press. 503-513), and GESS (Kolesnikov, V. 2005. “Gate Evaluation Secret Sharing and Secure One-Round Two-Party Computation”. In: Advances in Cryptology—ASIACRYPT 2005. Ed. by B. K. Roy. Vol. 3788. Lecture Notes in Computer Science. Springer, Heidelberg. 136-155).
There are two main constructions of SMPC: Circuit Garbling (CG) and Linear Secret Sharing (LSS). Circuit garbling requires encrypting keys in a specific order to simulate the function evaluation. Linear Secret Sharing computes shares from the inputs and distributes them among the nodes. In this disclosure we focus on SMPC flavours using LSS.
The following is a list of the main roles for the nodes participating in a SMPC computation:
A node can have more than one role. For example, a node can be dealer, computing and result node at the same time.
Not all of the nodes are labelled with a reference numeral but it should be understood that all nodes in the same group are of the same type i.e. all nodes in the left vertical line are dealer nodes 10, all nodes in the central octagonal group are computing nodes, and all nodes in the right vertical line are result nodes.
It should also be understood by the skilled person that both in the conventional arrangement of
Each node may be implemented in a processor of a computing system which is programmed to perform the relevant methods and algorithms disclosed herein, and further has access to a memory, and a network connection. In many implementations, each node will be a suitably programmed computer system.
The dealer nodes 10 contribute inputs to the computation. Specifically, they are provided with secret inputs, and create shares from these secret inputs and distribute them among the computing nodes 12. The computing nodes perform the actual SMPC computation and each computing node 12 provides a share of a computation output to each result node 14. The result nodes 14 reconstruct the result from the received result shares.
LSS SMPC protocols comprise the following three phases:
Phase 1—Share distribution: Each dealer node breaks down each private input to the computation into a number N of shares and sends each share to a different computing node. Each share reveals no information about the private input. It is only when all N shares from a private input are gathered that it can be reconstructed.
Phase 2—Computation: Each computing node has one share from each private input to a computation. The computation consists of evaluating the output of a function over the private inputs. In order to do this, the computing nodes perform operations on their shares that depend on the specific function to be evaluated by the SMPC protocol.
Phase 3—Result reconstruction: After Phase 2, each computing node has obtained a share from the result of the computation (i.e. the function to be evaluated). They send their share to one or several result nodes. After gathering all N shares from the result, a result node can reconstruct the output of the function that was jointly evaluated.
For example, assume that two dealer nodes have each one string. They would like the network of computing nodes to evaluate the result from comparing the two strings and to communicate this result to a result node. The strings are private to the dealer nodes, so they should not be sent over to the computing nodes in plaintext or in encrypted form. Each dealer node breaks down their private string into N shares and send each share to a different computing node. After receiving one share per each one of the two strings to be compared, the computing nodes follow the SMPC protocol to obtain a share of the result from the computation. This result could be a Boolean representing a string match with a TRUE value and a string mismatch with a FALSE value. Each node sends their share of the result to a result node, which reconstructs the TRUE or FALSE result from the string comparison.
The main problem with SMPC is the communication complexity. A large number of message exchanges and/or communication bandwidth is required in order for the computing nodes to collaboratively obtain in Phase 2 a share of the result of the function being evaluated when this function is nontrivial. By nontrivial we mean a function with a large number of inputs and a large number of operations on those inputs. Real-world applications of SMPC typically require nontrivial functions, which severely affects the applicability of SMPC in production scenarios.
For example, in GMW SMPC computing nodes are able to evaluate Boolean functions on binary inputs. A Boolean function is a function comprising AND, OR, XOR, NAND, NOR and NXOR logical gates. Using simple algebraic equivalences, it is possible to transform any Boolean function into its Arithmetic Normal Form (ANF). This form comprises groups of AND gates linked by XOR gates. Computing nodes running GMW can process XOR gates without the need to exchange any message, hence with great efficiency. However, the evaluation of each AND gate requires the exchange of messages. Nontrivial functions will have XOR as well as AND gates, making the overall GMW function evaluation slow
In another example, let us evaluate BGW SMPC. In this SMPC flavour computing nodes evaluate arithmetic functions on integer inputs comprising additions and multiplications. Computing nodes running BGW can process additions without the need to exchange any message. However, the evaluation of multiplications requires the exchange of messages. Once more, nontrivial functions will have additions and multiplications, making the overall BGW function evaluation slow.
As a notable exception to the SMPC scalability problem mentioned above we have FMPC (Sonnino, Alberto. “FMPC: Secure Multiparty Computation from Fourier Series and Parseval's Identity.” arXiv preprint arXiv:1912.02583 (2019)), an SMPC protocol for arithmetic circuits based on Fourier series capable of evaluating the multiplication of secrets with no online communication. FMPC makes use of Parseval's Theorem to allow for the multiplication of secrets without requiring the nodes to exchange any message. However, there are significant drawbacks with this approach:
The present invention aims to overcome these limitations, and specifically to do so in the context of the evaluation with SMPC of a particular type of function involving the computation of an inner product between two multidimensional vectors. The evaluation of the inner product function using SMPC is the focus of this invention because it supports the evaluation of any generic function with private inputs from one or two dealers.
In the arithmetic setting this can be seen by noticing that:
More formally, let x=(x0, x1, . . . , xN−1) and y=(y0, y1, . . . , yN−1) be two vectors with N dimensions, each known to a different dealer. The inner product, scalar product or dot product of these two vectors, represented as <x,y> is defined as:
In particular, the evaluation of the inner product allows for the computation of a series of core functions which in turn underpin important use cases. In the arithmetic setting, some examples of such core functions are:
The computation of these functions finds numerous applications in disciplines such as physics, chemistry, mathematics, biology, and psychology, in industries such as finance, health, aeronautic, telecommunications, and insurance, and to tackle problems such as global warming, money laundering, and epidemics.
In a first aspect there is provided a computer-implemented method of performing a multi-party computation by a network of data processors, said data processors comprising first and second dealer nodes, a plurality of M computing nodes, and at least one result node, the method comprising:
By making use of a transform for which Parseval's theorem holds, the method allows the dealer nodes to compute blinded vectors as Hadamard products which can be shared without revealing the private input vectors (i.e. the secrets). The computing nodes can then use shares of the blinded vectors to individually calculate result shares, without access to the secrets, and those result shares can be combined to compute the inner product of those secrets.
Preferably, the first and second dealer nodes generate the first and second private input vectors x and y of dimension M, respectively, as expansions of original unexpanded private input vectors xorig and yorig of dimension N, respectively, where N<M, and where:
and where the components xN, . . . , xM−1 and yN, . . . , yM−1 are chosen such that:
In one embodiment, the steps of providing the first and second dealers with the random vectors A and A−1 comprise both dealers operating a pseudo-random number generator in sync to generate the components of vector A, and the second dealer node calculating A−1 from the vector A.
In another embodiment, the steps of providing the first and second dealers with the random vectors A and A−1 comprise a trusted third party node communicating vector A to the first dealer node and either vector A or vector A−1 to the second dealer node.
In yet a further embodiment, the steps of providing the first and second dealers with the random vectors A and A−1 comprise communicating either vector A or vector A−1 cryptographically to at least one of the first and second dealer nodes.
In an embodiment, the vector A is {1, 1, . . . , 1}.
In a further aspect, there is provided a computer-implemented method of performing a multi-party computation by a network of data processors, said data processors comprising first and second dealer nodes, a plurality of M computing nodes, and at least one result node, the method comprising:
In this aspect we again make use of a transform for which Parseval's theorem holds, the method allowing the dealer nodes to compute blinded scalars which can be shared without revealing the private input vectors (i.e. the secrets). The computing nodes can then use shares of the blinded sums to individually calculate result shares, without access to the secrets, and those result shares can be combined to compute the inner product of those secrets.
In one embodiment, each dealer node independently generates random values ui,0, vi,0, i∈{0, . . . , N−1}, respectively, and completes the N vectors
such that the condition Σi=0N−1Σj=1M−1ui,j·vi,j=0 holds.
In an embodiment, the first dealer node and second dealer node are programmed with rules to ensure that for any corresponding pair of vector components ui,j and vi,j and j>0, one of the pair is zero.
In an embodiment, the first dealer node and second dealer node are programmed with rules to ensure that for each i∈{0, . . . , N−1}, a first subset of indices j∈{1, . . . , (M−1)} are allocated for the first dealer node to set the vector components ui,j equal to one, and a second subset of indices j∈{1, . . . , (M−1)} are allocated for the second dealer node to set the vector components vi,j equal to one, with each dealer node setting the remaining components of its respective vector ui or vi to sum to zero.
In an embodiment, the first and second dealer nodes runs a pseudo-random generator in sync with one another, and wherein the values of the components ui,j and vi,j are identical and wherein at least one vector component is computed by at least one dealer node to ensure that
In a further embodiment, the vectors ui and vi are collaboratively generated such that each pair of opposed components {ui,j, vi,j} for j∈{1, . . . , M−1} has one of the pair of components set to zero.
Preferably in this embodiment, the vectors ui and vi are of the form:
Further, preferably, the M computing nodes collaboratively compute the vectors ui and vi.
Further, preferably, the M computing nodes further collaboratively compute the transforms Ui and Vi.
Preferably, for each j∈{0, . . . , (M−1)}, the j-th computing node for each i∈{0, . . . , N−1}:
In another embodiment, the vectors ui and vi are collaboratively generated such that each component of pair of ui and vi is a random or pseudo-random number, other than one component of ui or vi which is chosen so that the condition: Σi=0N−1Σj=1M−1ui,j·vi,j=0 holds.
In a further embodiment, the vectors ui and vi are generated inside a trusted execution environment and communicated in encrypted form to the first and second dealer nodes respectively.
In a third aspect there is provided a computer-implemented method of performing a multi-party computation by a network of data processors, said data processors comprising first and second dealer nodes, a plurality of M computing nodes, and at least one result node, the method comprising:
In this aspect we again make use of a transform for which Parseval's theorem holds, the method allowing the dealer nodes to compute blinded vectors which can be shared without revealing the private input vectors (i.e. the secrets). The computing nodes can then use shares of the blinded vectors to individually calculate result shares, without access to the secrets, and those result shares can be combined to compute the inner product of those secrets.
In an embodiment, the first dealer node and second dealer node are programmed with rules to ensure that for any corresponding pair of vector components ui,j and vi,j one of the pair is zero.
Preferably, said rules ensure that for each i∈{0, . . . , N−1}, the indices j∈{0, . . . , (M−1)} are allocated between the first and second dealer nodes, with the first dealer node being allocated a first subset of indices for which the components ui,j are zero, and the second dealer node being allocated a second subset of indices for which the components vi,j are zero, and wherein the union of the first and second subsets is the set {0, . . . , (M−1)}.
Preferably, the first and second dealer nodes are programmed to set all components whose indices are not part of the first subset or second subset respectively allocated to that node to a random value.
In another embodiment, the first dealer node and second dealer node are programmed with rules to ensure that for each i∈{0, . . . , N−1}, a first subset of indices j∈{0, . . . , (M−1)} are allocated for the first dealer node to set the vector components ui,j equal to one, and a second subset of indices j∈{0, . . . , (M−1)} are allocated for the second dealer node to set the vector components vi,j equal to one, with each dealer node setting the remaining components of its respective vector ui or vi to sum to zero.
Preferably, each dealer node setting the remaining components of its respective vector ui or vi to sum to zero comprises setting a portion of the remaining components to a random value and the remainder of the remaining components to a value or values that ensure the aggregate remaining components sum to zero.
In another embodiment, the first and second dealer nodes run a pseudo-random generator in sync with one another, and wherein the values of the components ui,j and vi,j are identical and wherein at least one vector component is computed by at least one dealer node to ensure that
For each aspect of the invention set out above, in some preferred embodiments, the private input vectors have integer components and arithmetical operations are performed modulo a prime number p.
Preferably, the discrete linear transform for which Parseval's theorem holds is selected from:
In embodiments, the discrete linear transform is not the null function.
In embodiments, the discrete linear transform is not the identity function.
In other embodiments, the private input vectors can have real or complex number components.
We recall from the introduction that the inner product, scalar product or dot product of two N-dimensional vectors x=(x0, x1, . . . , xN−1) and y=(y0, y1, . . . , YN−1), represented as <x,y> is defined as:
The inner product requires the computation of N products in the arithmetic setting, and it also requires the computation of AND gates in the Boolean setting. This is therefore an example of a nontrivial function that leads to a slow evaluation in SMPC caused by the amount of bandwidth and the number of messages that computing nodes require to exchange. In this invention we present three new SMPC protocols which can compute the inner product between two vectors without the computing nodes having to exchange any message during the computation phase (Phase 2). These protocols allow computing in SMPC inner products between high dimensional vectors using a large number of computing nodes in essentially the same time as it would take in a centralized computation where both vectors are handled in clear in a server. We call these three protocols:
where NMC stands for Nil-Message Compute.
In the initial explanation of the three protocols we describe an implementation working with finite field arithmetic Z/pZ. That is, secrets are all represented as integers modulo p, where p is a prime number. All the computations that follow are therefore performed modulo p, represented as mod p. In what follows, sometimes we drop mod p for the sake of simplicity, but we will work with modular arithmetic unless explicitly stated.
The protocols make use of a discrete linear transform for which Parseval's theorem holds. The initial implementation, using finite field arithmetic Z/pZ, makes use of the Number Theoretic Transform (NTT) and its inverse, INTT. However, the skilled person should be aware in the description that follows that the NTT can be replaced by any other discrete linear transform for which Parseval's theorem holds.
In particular, it is envisaged that the different protocols can replace the use of NTT by any of the following:
Furthermore the skilled person should bear in mind in what follows that while the protocols are described in terms of the private inputs known to a first dealer node and second dealer node, and while these dealer nodes may be distinct entities, the protocols are also applicable in cases where the two dealer nodes are not representative of different individuals, organisations, devices, computer systems, etc. For example, the two dealers may correspond to the same individual, organisation, device, etc., e.g. if dealer 1 is a user providing information about their face whilst signing up for an account, and dealer 2 is the same user who provides information about their face at login time (e.g. a day later).
We present, as different aspects of the present disclosure, three novel SMPC protocols that allow computing an inner product without requiring the nodes to exchange any message during the computation phase. Let us assume that two dealer nodes wish to compute the inner product between two vectors x=(x0, x1, . . . , xN−1) and y=(y0, y1, . . . , yN−1), whereby each dealer has one of the two vectors. Each dealer wants to keep their vector private and have a network of computing nodes evaluate the result from the inner product. The new SMPC protocols operate in the usual three phases: (1) share distribution, (2) computation, and (3) result reconstruction. We present the protocols in the following order:
The characteristics of these protocols are summarised in the table below:
The initially described implementation of all of the protocols are based on the Number Theoretic Transform (NTT), a specialization of the Discrete Fourier Transform (DFT) to the finite field Z/pZ of integers module a prime p.
Let α denote a root of unity of order N such that, αN=1 (mod p). The NTT of a vector u=(u0, u1, . . . , uN−1) and its inverse NTT (or INTT) are defined as follows:
That is, the NTT of a vector u=(u0, u1, . . . , uN−1) is just another vector U=(U0, U1, . . . , UN−1) of equal dimension.
Notice that the NTT is linear, that is:
Parseval's Theorem for the NTT states:
We now describe in turn the three protocols.
Protocol: 2-NMC with Blinding Vectors
Inputs: 2 dealer nodes, whereby dealers 1 and 2 contribute, respectively, with private inputs x=(x0, x1, . . . , xN−1) and y=(y0, y1, . . . , yN−1) to the computation of an inner product given by Eq. 1
Output: R result nodes reconstruct the inner product, which is computed by M computing nodes that are not able to see any of the input secrets.
Purpose: M computing nodes can jointly evaluate any arithmetic function with two dealers without any message exchange during the computation phase.
where Ui,j and Vi,j are the j-th share of the i-th secret xi and yi from Dealers 1 and 2, respectively.
At the end of this phase, the j-th computing node ends up with shares Ui,j and Vi,j for i∈{0, . . . , N−1}.
The j-th computing node calculates from the local shares it has received:
The j-th computing node sends Rj in Eq. 4 to one or several result nodes, which then reconstruct the inner product as follows:
This ends the description of the Protocol 2-NMC with Blinding Vectors. We now prove the correctness of Eq. 4, and how privacy can be assured before describing details of some of the implementations for the pre-processing phase.
We want to compute <x, y>. We have that:
We can rewrite this equation as <x, y>=Σj=0M−1Rj, where
Hence, each computing node j just needs to compute Eq. 4 to obtain the j-th term
and a result node just needs to add all Rj to reconstruct <x, y>.
Notice also that according to the INTT, a vector ui=(xi, ui,1, . . . , ui,M−1) and its transformed vector Ui=(Ui,0, Ui,1, . . . , Ui,M−1), i∈{0, . . . , N−1} are related through a linear system of M equations and M unknowns:
Any bad actor gathering a subset of R transformed values {Ui} with Ui=(Ui,0, Ui,1, . . . , Ui,M−1) being the NTT of ui=(xi, ui,1, . . . , ui,M−1), where R≤M−1 will end up with a consistent but underdetermined linear system of equations with rank R. This system has an infinite number of solutions, with the general solution having F free parameters, where F is the difference between the number of variables M and the number of gathered transformed values R, that is, F=M−R. This means that a bad actor can only determine that there are infinite possible values for xi, all equally probable. The same argument applies to any vector vi=(yi, vi,1, . . . , vi,M−1), i∈{0, . . . , N−1}.
We now proceed to describe different embodiments (or “settings”) that allow satisfying the condition given by Eq. 3 in Phase 1.
Setting 1: Setting Opposing Coordinates in Vectors ui and vi to 0
Let us assume that M−1 is even. In this setting, in Step 1 in Phase 1 of Protocol 2-NMC with Blinding Vectors, dealers 1 and 2 agree to set ui,1, . . . , ui,(M−1)/2 and vi,(M−1)/2+1, . . . , vi,M−1 to zero. That is, vectors ui and vi are of the form:
Notice that in this setting Eq. 3 holds since all products between opposing components other than the first one contains a zero. In a related setting, dealers 1 and 2 agree on a different arrangement of 0's. Any arrangement whereby opposing components other than the first one contains a zero is valid.
Setting 2: Setting Opposing Coordinates in Vectors ui and vi to 1
Let us assume that M−1 is even. In this setting, in Step 1 in Phase 1 of Protocol 2-NMC with Blinding Vectors, dealers 1 and 2 agree to set ui,2j+1=1 and vi,2j=1 for all values of j and i. Then dealers 1 and 2 randomly and independently generate the rest of their vector, except for the last coordinate which is chosen so that, respectively:
Notice that these conditions imply Eq. 3, since:
Here we are assuming that (M−1) is even. If it is odd, the conditions become
The advantage of this setting is that it allows dealers 1 and 2 to independently (i.e., with no communication) set up their vectors ui, and vi, respectively.
In a related setting, dealers 1 and 2 agree on a different arrangement of 1's. For example, ui has the even values in j equal to 1 and vi the odd ones. In another example, ui has the first half of (M−1)/2 values in j equal to 1 and vi the second half. Other arrangements are possible. The important condition is that in each product ui,j·vi,j one of the two vector components is equal to 1.
In this set setting up, in Step 1 in Phase 1 of Protocol 2-NMC with Blinding Vectors, dealers 1 and 2 use each one a pseudo-random number generator in sync such that they produce the same vector components. This way, dealers 1 and 2 independently generate ui,j, i∈{0, . . . , N−1}, j∈{0, . . . , M−1} and vi,j, i∈{0, . . . , N−1}, j∈{0, . . . , M−2}. Then, dealer 2 sets
so that Eq. 3 holds. As long as the two pseudo-random number generators operate in sync this setting does not require communication between the two dealers.
In a related setting, a vector component different from vN−1,M−1 is nonrandomly chosen so that Eq. 3 holds. In a related setting it is dealer 1 the one that sets the value of a component in vector ui so that Eq. 3 holds.
Notice that the 2-NMC with Blinding Vectors Protocol requires each dealer to send N·M shares of their N inputs (the components of their vector). That is, each secret vector component requires M shares. This is the same secret-to-share ratio as observed in many other SMPC protocols such as GMW, BGW, SPDZ, BMR, and GESS.
The following two protocols allow reducing this ratio to 1. That is, N secret vector components require only N shares. Both protocols make use of a pre-processing phase.
Protocol: 2-NMC with Blinding Sums
Inputs: 2 dealer nodes, whereby dealers 1 and 2 contribute, respectively, with private inputs x=(x0, x1, . . . , xN−1) and y=(y0, y1, . . . , yN−1) to the computation of an inner product given by Eq. 1
Output: R result nodes reconstruct the inner product, which is computed by M computing nodes that are not able to see any of the input secrets.
Purpose: M computing nodes can jointly evaluate any arithmetic function with two dealers without any message exchange during the computation phase.
The computing nodes and dealers 1 and 2 run a pre-processing phase such that for each i∈{0, . . . , N−1}:
Notice that this phase is independent of the actual private inputs x=(x0, x1, . . . , xN−1) and y=(y0, y1, . . . , yN−1) of the SMPC computation. For this reason, this is a pre-processing phase which can be executed before the actual SMPC computation takes place (hours, days, months, etc.), having no impact on its performance.
For j∈{0, . . . , M−1}, the j-th computing node follows these steps:
The j-th computing node sends Rj in Eq. 4 to one or several result nodes, which then reconstruct the inner product as follows:
This ends the description of the Protocol 2-NMC with Blinding Sums. We now prove the correctness of Eq. 4 in this protocol, and how privacy can be assured before describing details of some of the implementations for the pre-processing phase.
Let us denote by NTT{(h0, . . . , hN−1)}=(H0, . . . , HN−1) to the NTT of a vector (h0, . . . , hN−1). From the linearity property of the NTT we have for each i∈{0, . . . , N−1} that:
That is, Ci=(Ci,0, . . . , Ci,M−1)=(Ui,0+Ai,0, . . . , Ui,M−1+Ai,M−1)=Ui+Ai is the NTT of vector ci=(xi, ui,1, . . . , ui,M−1). The same applies to Di=(Di,0, . . . , Di,M−1)=Vi+Bi, which is the NTT of vector di=(yi, vi,1, . . . , vi,M−1).
Notice that:
Applying Parseval's theorem (Eq. 2) to every term <ci, di> we have that:
Replacing this term in the equation above we have that:
Hence, each computing node j just needs to locally compute Eq. 4 to obtain the j-th term
and a result node just needs to add all Rj to reconstruct <x, y>
Notice that according to the NTT, a vector ci=(xi, ui,1, . . . , ui,M−1) and its transformed vector Ci=(Ci,0, . . . , Ci,M−1), i∈{0, . . . , N−1} are related through a linear system of M equations and M unknowns:
The computing nodes only see and store components from transformed vectors. Any bad actor gathering a subset of R transformed values from vector Ci=(Ci,0, . . . , Ci,M−1), with R≤M−1 will end up with a consistent but underdetermined linear system of equations with rank R. This system has an infinite number of solutions, with the general solution having F free parameters, where F=M−R is the difference between the number of variables M and the number of gathered transformed values R. This means that a bad actor can only determine that there are infinite possible values for xi, all equally probable. The same argument applies to any vector di=(yi, vi,1, . . . , vi,M−1), i∈{0, . . . , N−1}.
We now describe possible implementations or settings for the pre-processing phase in this protocol. Settings 1, 2 and 3 from protocol 2-NMC with Blinding Vectors can be easily adapted to this purpose. The main difference is that in protocol 2-NMC with Blinding Vectors the first component of vectors ui and vi constitute input data xi and yi to the computation, whereas in the pre-processing phase of protocol 2-NMC with Blinding Sums the first components ui,0, vi,0 of these vectors ui, vi are random numbers. Thus, dealers 1 and 2 can proceed as follows:
In these three settings dealers 1 and 2 compute Ui and Vi, and then distribute their components Ui,j and Vi,j among the computing nodes. In other settings, it might be desirable for the computing nodes to be the ones that collaboratively compute Ui and Vi, as described in the following two settings.
We denote by [s]j to the j-th SSS (Shamir's Secret Sharing) share from a private input s. We also simplify notation and denote by
to the linear transform matrix from the NTT given by Eq. 5. Both, the NTT and SSS operate modulo the same prime number p. The computing nodes all agree on a public polynomial p(α) such that p(0)=0 and according to SSS the j-th node is assigned a public abscissa αj.
Setting 4: BGW with Opposing Zeros
In this setting, the computing nodes collaboratively generate vectors ui and vi of the form:
For every i∈{0, . . . , N−1}, each computing node j∈{0, . . . , M−1} performs the following steps (see
Step 1: Computing node j locally computes its share from each component of vectors ui, vi as follows:
Step 2: Computing node j locally computes a share of each component of the transformed vectors Ui=(Ui,0, Ui,1, . . . , Ui,M−1), Vi=(Vi,0, Vi,1, . . . , Vi,M−1) applying the linearity of SSS as follows:
Step 3: Each computing node, for every i∈{0, . . . , N−1}, k∈{0, . . . , M−1}:
Notice that Steps 1 and 2 do not require any message exchange.
At the end of this setting:
Thus, all the requirements for Phase 0 in protocol 2-NMC with Blinding Sums are met.
In the steps above, the reconstruction of a number from its shares is done using SSS, typically using Lagrange polynomial interpolation.
In a related setting, the computing nodes all agree on a different public polynomial p(α) such that p(0)=0 for each one of the zeros in vectors ui and vi. In a related setting the zeros in vectors ui and vi are located in different opposing positions.
In this setting we adapt Setting 4 to the case in which the computing nodes collaboratively generate vectors ui and vi of the form:
For every i∈{0, . . . , N−1}, each computing node j∈{0, . . . , M−1} performs the following steps (see
Step 1: Computing node j computes its share from each component of vectors ui, vi as follows:
The computing nodes run BGW SMPC, and computing node j ends up with a share [vN−1,M−1]j of vN−1,M−1 such that Eq. 6 holds. Note that this requires the evaluation in BGW of M products, M−1 of which can be computed in parallel (Σj=0M−2ui,j·vi,j). This requires the computing nodes to exchange messages.
Step 2: Like in Setting 4
Step 3: Like in Setting 4
In a related setting, the computing nodes run a different type of SMPC in Step 1, including BGW with Beaver's triples and SPDZ, to obtain the j-th node a share [vN−1,M−1]j of vN−1,M−1 such that Eq. 6 holds. In a related setting, a vector component different from vN−1,M−1 is nonrandomly chosen so that Eq. 3 holds. In a related setting the value of a component in vector ui is the one nonrandomly chosen so that Eq. 3 holds.
In another setting, it might be desirable to use secure hardware, as described below.
In this setting, a 3rd party generates vectors ui, vi fulfilling Eq. 3. inside of a trusted execution environment or secure enclave and sends each one of them to a dealer in encrypted form so that only they can decrypt it using their private key.
In another setting, the computing nodes run in parallel many instances of the pre-processing phase in protocol 2-NMC with Blinding Sums so that they are ready to support the execution of a large number of Phases 1, 2 and 3 of this protocol.
Protocol: 2-NMC with Blinding Products
Inputs: 2 dealer nodes, whereby dealers 1 and 2 contribute, respectively, with private inputs x=(x0, x1, . . . , xN−1) and y=(y0, y1, . . . , yN−1) to the computation of an inner product given by Eq. 1
Output: R result nodes reconstruct the inner product, which is computed by N computing nodes that are not able to see any of the input secrets.
Purpose: N computing nodes can jointly evaluate any arithmetic function with two dealers without any message exchange during the computation phase.
where Ui and Vi are the i-th share of vectors x and y from Dealers 1 and 2, respectively.
At the end of this phase, the i-th computing node ends up with two shares Ui and Vi.
The j-th computing node calculates from the local shares it has received:
The j-th computing node sends Rj in Eq. 4 to one or several result nodes, which then reconstruct the inner product as follows:
This ends the description of the Protocol 2-NMC with Blinding Products. We now prove the correctness of Eq. 4 in this protocol, and how privacy can be assured before describing details of some of the implementations for the pre-processing phase.
We have that:
The shares are the result of multiplying component-wise the NTT by a random vector bringing privacy into this secret sharing mechanism.
We now provide different settings that describe possible ways of providing Dealers 1 and 2 with random vectors A=(A0, A1, . . . , AN−1), and A−1=(A0−1, A1−1, . . . , AN−1−1), respectively:
2-NMC with Blinding Products requires the number of computing nodes to be equal to the dimension N of the two secret vectors in the inner product. Alternatively, this limitation is removed by increasing the dimension of the secret vectors to M, where M>N, as follows:
This allows for M computing nodes to evaluate the inner product function of two secret vectors of dimension N, where M≥N.
Optionally, a dealer keeps a share of every component of their secret vector so that even if all computing nodes colluded they would not be able to reconstruct the dealer's secret vector.
In another embodiment, dealers 1 and 2 send the same i-th share Ui,j and Vi,j, respectively to more than one node to achieve fault tolerance. This way, if a node holding shares Ui,j and Vi,j goes down, there will be other nodes with the same shares.
1. A computer-implemented method of performing a multi-party computation by a network of data processors, said data processors comprising first and second dealer nodes, a plurality of M computing nodes, and at least one result node, the method comprising:
2. A method according to clause 1, wherein the first and second dealer nodes generate the first and second private input vectors x and y of dimension M, respectively, as expansions of original unexpanded private input vectors xorig and yorig of dimension N, respectively, where N<M, and where:
3. A method according to clause 1 or 2, wherein the steps of providing the first and second dealers with the random vectors A and A−1 comprise both dealers operating a pseudo-random number generator in sync to generate the components of vector A, and the second dealer node calculating A−1 from the vector A.
4. A method according to clause 1 or 2, wherein the steps of providing the first and second dealers with the random vectors A and A−1 comprise a trusted third party node communicating vector A to the first dealer node and either vector A or vector A−1 to the second dealer node.
5. A method according to clause 1 or 2, wherein the steps of providing the first and second dealers with the random vectors A and A−1 comprise communicating either vector A or vector A−1 cryptographically to at least one of the first and second dealer nodes.
6. A method according to any preceding clause wherein the vector A is {1, 1, . . . , 1}.
7. A computer-implemented method of performing a multi-party computation by a network of data processors, said data processors comprising first and second dealer nodes, a plurality of M computing nodes, and at least one result node, the method comprising:
8. A computer-implemented method according to clause 7, wherein each dealer node independently generates random values ui,0, vi,0, i∈{0, . . . , N−1}, respectively, and completes the N vectors
such that the condition Σi=0N−1Σj=1M−1ui,j·vi,j=0 holds.
9. A computer-implemented method according to clause 8, wherein the first dealer node and second dealer node are programmed with rules to ensure that for any corresponding pair of vector components ui,j and vi,j and j>0, one of the pair is zero.
10. A computer-implemented method according to clause 8, wherein the first dealer node and second dealer node are programmed with rules to ensure that for each i∈{0, . . . , N−1}, a first subset of indices j∈{1, . . . , (M−1)} are allocated for the first dealer node to set the vector components ui,j equal to one, and a second subset of indices j∈{1, . . . , (M−1)} are allocated for the second dealer node to set the vector components vi,j equal to one, with each dealer node setting the remaining components of its respective vector ui or vi to sum to zero.
11. A computer-implemented method according to clause 8, wherein the first and second dealer nodes run a pseudo-random generator in sync with one another, and wherein the values of the components ui,j and vi,j are identical and wherein at least one vector component is computed by at least one dealer node to ensure that
12. A computer-implemented method according to clause 7, wherein the vectors ui and vi are collaboratively generated such that each pair of opposed components {ui,j, vi,j} for j∈{1, . . . , M−1} has one of the pair of components set to zero.
13. A computer-implemented method according to clause 12, wherein the vectors ui and vi are of the form:
14. A computer-implemented method according to clause 12 or 13, wherein the M computing nodes collaboratively compute the vectors ui and vi.
15. A computer-implemented method according to clause 14, wherein the M computing nodes further collaboratively compute the transforms Ui and Vi.
16. A computer-implemented method according to clause 15, wherein for each j∈{0, . . . , (M−1)}, the j-th computing node for each i∈{0, . . . , N−1}:
17. A computer-implemented method according to clause 7, wherein the vectors ui and vi are collaboratively generated such that each component of pair of ui and vi is a random or pseudo-random number, other than one component of ui or vi which is chosen so that the condition: Σi=0N−1Σj=1M−1ui,j·vi,j=0 holds.
18. A computer-implemented method according to clause 7, wherein the vectors ui and vi are generated inside a trusted execution environment and communicated in encrypted form to the first and second dealer nodes respectively.
19. A computer-implemented method of performing a multi-party computation by a network of data processors, said data processors comprising first and second dealer nodes, a plurality of M computing nodes, and at least one result node, the method comprising:
20. A computer-implemented method according to clause 19, wherein the first dealer node and second dealer node are programmed with rules to ensure that for any corresponding pair of vector components ui,j and vi,j one of the pair is zero.
21. A computer-implemented method according to clause 20, wherein said rules ensure that for each i∈{0, . . . , N−1}, the indices j∈{0, . . . , (M−1)} are allocated between the first and second dealer nodes, with the first dealer node being allocated a first subset of indices for which the components ui,j are zero, and the second dealer node being allocated a second subset of indices for which the components vi,j are zero, and wherein the union of the first and second subsets is the set {0, . . . , (M−1)}.
22. A computer-implemented method according to clause 20 or 21, wherein the first and second dealer nodes are programmed to set all components whose indices are not part of the first subset or second subset respectively allocated to that node to a random value.
23. A computer-implemented method according to clause 19, wherein the first dealer node and second dealer node are programmed with rules to ensure that for each i∈{0, . . . , N−1}, a first subset of indices j∈{0, . . . , (M−1)} are allocated for the first dealer node to set the vector components ui,j equal to one, and a second subset of indices j∈{0, . . . , (M−1)} are allocated for the second dealer node to set the vector components vi,j equal to one, with each dealer node setting the remaining components of its respective vector ui or vi to sum to zero.
24. A computer-implemented method according to clause 23, wherein each dealer node setting the remaining components of its respective vector ui or vi to sum to zero comprises setting a portion of the remaining components to a random value and the remainder of the remaining components to a value or values that ensure the aggregate remaining components sum to zero.
25. A computer-implemented method according to clause 19, wherein the first and second dealer nodes runs a pseudo-random generator in sync with one another, and wherein the values of the components ui,j and vi,j are identical and wherein at least one vector component is computed by at least one dealer node to ensure that
26. A method according to any preceding clause, wherein the private input vectors have integer components and arithmetical operations are performed modulo a prime number p.
27. A method according to any preceding clause, wherein the discrete linear transform for which Parseval's theorem holds is selected from:
28. A method according to any preceding clause, wherein the private input vectors have real or complex number components.
Number | Date | Country | Kind |
---|---|---|---|
22159312.2 | Feb 2022 | EP | regional |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/EP2023/054939 | 2/28/2023 | WO |