Messageless Secure Multi-Party Computations with Passive and Active Adversaries
20240007273 ยท 2024-01-04
Assignee
Inventors
Cpc classification
H04L9/085
ELECTRICITY
International classification
Abstract
Disclosed are methods and systems for calculating an arithmetic function expressed as addition of groups of multiplications of a set of private input secrets held by dealer nodes. Random exponent blinding factors are generated, and each computing node receives polynomial shares from each exponent blinding factor and a polynomial share and a public generator from the multiplicative group of integers modulo a prime number. The indexing integers are partitioned among the computing nodes, and each computing node computes a set of shares from the polynomial shares then sent to the dealer nodes which reconstruct the corresponding dealer blinding factor, and use it to create and send a particle to the computing nodes. The computing nodes then calculate from the received particles a result share of a polynomial which, when combined by a result node, allow the evaluation of complete polynomial which includes the result of the arithmetic function.
Claims
1. A computer-implemented method, carried out between a plurality of D dealer nodes and N computing nodes, for use in calculating the result of an arithmetic function which can be expressed as the addition of A groups of multiplications of a set S of private input secrets {s.sub.0, s.sub.1, . . . , s.sub.S-1} such that:
v.sub.a,m=s.sub.i.sub.
2. A computer-implemented method according to claim 1, wherein N=T+1.
3. A computer-implemented method according to claim 1, wherein NT+1.
4. A computer-implemented method according to claim 3, wherein the reconstruction of at least one of said polynomials employs error correction codes.
5. A computer-implemented method according to claim 3 wherein N3T+1.
6. A computer-implemented method according to claim 1, wherein step (c) of providing each of the computing nodes with the same partition sets comprises each computing nodes calculating the partition sets according to a shared set of rules.
7. A computer-implemented method according to claim 1, wherein step (a) of providing each computing node n, n{0, 1, . . . , N1}, with a respective set of shares [.sub.a,0].sub.n, [.sub.a,1], . . . , [.sub.a,L1] comprises the calculation, by a trusted node, of said sets of shares.
8. A computer-implemented method according to claim 7, wherein the calculation of said sets of shares [.sub.a,0].sub.n, [.sub.a,1].sub.n, . . . , [.sub.a,L1].sub.n comprises the following steps by the trusted node: (i) computing, for each addition a{0, . . . , A1}, L random exponent blinding factors .sub.a,0, .sub.a,1, . . . , .sub.a,L1 (Z/pZ).sup.x; (ii) computing, for each of said exponent blinding factors .sub.a,l where l{0, . . . L1}, N shares [.sub.m].sub.0, [.sub.m].sub.1, . . . , [.sub.m].sub.N-1 of a degree-T polynomial that hides the value .sub.a,l at a certain abscissa such as x=0.
9. A computer-implemented method according to claim 1, wherein step (b) of providing each computing node n, n{0, 1, . . . , N1}, with a respective set of shares [.sup..sup.
10. A computer-implemented method according to claim 9, wherein the calculation of said sets of shares [.sup..sup.
11. A computer-implemented method according to claim 7, wherein the calculations of sets of shares by a trusted node are all carried out by the same trusted node.
12. A computer-implemented method according to claim 1, further comprising the evaluation, by said one or more result node(s), of the value r(0) of polynomial r(x).
13. A non-transitory computer-program product comprising instructions which, when executed by a processor, cause the processor to operate as a computing node in a computer-implemented method, carried out between a plurality of D dealer nodes and N computing nodes, for use in calculating the result of an arithmetic function which can be expressed as the addition of A groups of multiplications of a set S of private input secrets {s.sub.0, s.sub.1, . . . , s.sub.S-1} such that:
v.sub.a,m=s.sub.i.sub.
14. A computing system comprising a processor programmed to operate as a computing node in a computer-implemented method, carried out between a plurality of D dealer nodes and N computing nodes, for use in calculating the result of an arithmetic function which can be expressed as the addition of A groups of multiplications of a set S of private input secrets {s.sub.0, s.sub.1, . . . , s.sub.S-1} such that:
v.sub.a,m=s.sub.i.sub.
15. A computer-implemented method, carried out between a dealer node and N computing nodes, for use in calculating the result of an arithmetic function which can be expressed as the addition of A groups of multiplications of a set S of private input secrets {s.sub.0, s.sub.1, . . . , s.sub.S-1} such that:
v.sub.a,m=s.sub.i.sub.
16. A computer-implemented method according to claim 15, wherein: i. steps (d) and (e) are performed in a plurality of E execution stages, comprising a first execution stage and E1 subsequent execution stages; ii. the set of S private input secrets is partitioned into E disjoint sets corresponding to said E execution stages; iii. the particles v.sub.a,m computed in step (d) and communicated in step (e) are computed in each execution stage for the secrets of the disjoint set corresponding to the execution stage; and iv. the computing nodes calculate the shares share [r.sub.a].sub.n in step (f) after all of the required particles v.sub.a,m have been received following said repeated execution stages.
17. A computer-implemented method according to claim 16, wherein the communication to the computing nodes of {[.sup..sup.
18. A computer-implemented method according to claim 17, wherein the communication to the computing nodes of {[.sup..sup.
19. A computer-implemented method according to claim 16, wherein the partitioning of the secret variables is performed according to an index e corresponding with the execution stage, wherein the addition and multiplication subindices a{0, 1, . . . , A1}, m{0, 1, . . . , M.sub.a1} are partitioned such that:
20. A computer-implemented method according to claim 19, wherein in the first execution stage (e=1) the dealer node computes in step (d) and communicates in step (e) the particles v.sub.a,m=s.sub.i.sub.
21. A computer-implemented method according to claim 20, wherein in each subsequent execution stage e, the dealer node computes in step (d) and communicates in step (e) the particles v.sub.a,m=S.sub.i.sub.
22. A computer-implemented method according to claim 16, wherein in the first execution stage, the dealer node stores to a readable memory the random dealer blinding factors .sub.a,m for each addition and multiplication not used in the first execution.
23. A computer-implemented method according to claim 22, wherein in each subsequent execution stage, the dealer node retrieves from said readable memory the random dealer blinding factors .sub.a,m required for the additions and multiplications involved in that subsequent execution stage.
24. A computer-implemented method according to claim 16, wherein step (d) further comprises sending to each computing node:
{[.sub.a,m].sub.n}.sub.a{0, . . . ,A1}.Math.m{0, . . . ,M.sub.
25. A computer-implemented method according to claim 24, further comprising the computing nodes sending back to the dealer node, for a given value of a, m, the values v.sub.a,m, {[.sub.a,m].sub.n}.sub.n{0, . . . ,N-1}, and the dealer node reconstructing A.sub.a,m and recovering the secret input s.sub.i.sub.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0128] Embodiments of the invention will now be described, by way of example only, with reference to the accompanying schematic drawings, in which:
[0129]
[0130]
[0131]
[0132]
[0133]
DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS
[0134] The focus of the embodiments is on the evaluation with SMPC of any function in the arithmetic setting. In the arithmetic setting, a function can be represented without loss of generality as the sum of groups of secret products. In this setting, secrets are natural, integer, real or complex numbers.
[0135] The evaluation of a general function requires the computation of products in the arithmetic setting. State-of-the-art SMPCs require nodes to exchange messages in order to jointly evaluate arithmetic products. The exchange of messages is many orders of magnitude slower than computations on a local CPU. This is the reason why the jointly evaluation of nontrivial functions in standard SMPCs is orders of magnitude slower than on a centralized server.
[0136] In this invention we present a new protocol called MLC (Messageless Compute) which can evaluate any function in the arithmetic setting without the computing nodes having to exchange any message during the computation phase (Phase 2). MLC therefore removes the main performance problem from standard SMPC and it is capable of evaluating nontrivial functions over a large number of private inputs and using a large number of computing nodes in essentially the same time as it takes in a centralized computation where all information is available in clear inside of a single server. MLC as presented in this invention is secure against passive and active adversaries: [0137] Passive adversaries follow the protocol specification but try to learn information about the private inputs s.sub.0, s.sub.1, . . . , s.sub.S-1 to the computation. [0138] Active adversaries may deviate from the protocol to try to learn information about the private inputs, to alter the result from a computation, or simply to prevent the computation from taking place. Active adversaries may therefore change the content of their messages, delay their messages or simply not send them.
[0139] The MLC protocol in the passive and active adversary settings requires a pre-processing phase. In this invention we describe the output of this phase and assume that it is carried out by a trusted third party.
[0140] We focus on the arithmetic setting and on functions returning only one number. We refer to Appendix A.3 of SPDZ [SPDZ12], which is incorporated herein by reference, for a description on how to extend this to any number of output values. Without loss of generality, this function can be expressed as the addition of A groups of multiplications of secrets:
where each group of multiplications m.sub.a, a{0, 1, . . . , A1} is a number resulting from the product of M.sub.a private input secrets:
[0141] Here, the subindices i.sub.a,m for a{0, 1, . . . , A1}, m{0, 1, . . . , M.sub.a1} are indexing private input secrets from the set of all S secrets {s.sub.0, s.sub.1, . . . , s.sub.S-1}. The S secrets may be integers, real or even complex numbers. They come from different Dealer Nodes who wish to keep them private and yet to use them as inputs to the joint evaluation of . In what follows, we make the following assumptions: [0142] Assumption 1: There are private point-to-point channels between different nodes in the network. [0143] Assumption 2: There is an authenticated broadcast channel [0144] Assumption 3: Without loss of generality, we assume that for every addition term m.sub.a there is at most only one input per dealer, since if a dealer contributes with more than one input variable to the product m.sub.a, it can always replace them with a new input variable equal to their product. [0145] Assumption 4: We work 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. For simplicity we will omit mod p.
[0146] The arithmetic function then be expressed more succinctly as:
[0147] We refer to the D-MLC protocol to an implementation for D Dealer Nodes. We distinguish between active and passive adversary settings. We proceed as follows: [0148] First, we describe in section 1 the pre-processing phase as an ideal functionality that is executed by a trusted third party, specifying its inputs and outputs. [0149] Second, we present in section 2 D-HLC in the passive adversary setting, [0150] Third we introduce in section 3 D-HLC in the active adversary setting, and [0151] Finally, we present in section 4 a special case of the D-HLC algorithm in the active setting for D=1 (i.e. there is only one dealer).
[0152] Section 1: Pre-Processing as an Ideal Functionality
[0153] The goal of the pre-processing phase is to compute some randomness and to distribute shares of that randomness to the Computing Nodes. The randomness is used for: [0154] The computation of multiplications by the Computing Nodes without the need to communicate, and [0155] The creation of a so-called particle to hide the information from the input variables contributed by every Dealer Node.
[0156] The idea is that the pre-processing takes place before we know how many dealers there will be involved in a computation, or how many multiplications the computation will comprise. Therefore, a key requirement for the pre-processing phase is that it should be de-coupled from the number of dealers and from the number of multiplications to be computed. To achieve this, the pre-processing phase relies on a vector of fine-granular randomness that we call the exponent blinding factors and represent by 0, .sub.1, . . . , .sub.L-1. The assumption is that L is larger than the maximum number of multiplications and larger than the maximum number Dealer Nodes in a computation.
[0157] The pre-processing phase comprises several executions (possibly in parallel) of the following pre-processing ideal functionality F.sub.pre run by a trusted node:
Algorithm: Pre-Processing Ideal Functionality F.SUB.pre
Inputs:
[0158] L: The number of exponent blinding factors to generate, [0159] N: The number of Computing Nodes in the MLC Network [0160] p: A prime number [0161] p: A public generator from the multiplicative group (Z/pZ).sup.x of integers modulo p [0162] x.sub.0, . . . , x.sub.N-1 pre-agreed public abscissa for each one of the N MLC Computation Nodes, and [0163] T: Degree of the Shamir polynomials
Output:
[0164] Each Computing Node receives: [0165] Polynomial shares [.sub.0], [.sub.1], . . . , [.sub.L-1] from each exponent blinding factor .sub.0, .sub.1, . . . , .sub.L-1, and [0166] A polynomial share [.sup.] of .sup., where:
Purpose:
[0167] A trusted node generates and sends the required randomness to the MLC Computing Nodes so that they are able to process arithmetic operations without the need for inter-node communication.
Security Requirement:
[0168] The exponent blinding factors .sub.0, .sub.1, . . . , .sub.L-1, and .sup. are internal secrets that the trusted node does not reveal to anyone.
Algorithm Steps:
[0169] The following steps are executed by the trusted node: [0170] Step 1: Computation of the exponent blinding factors. [0171] Compute L random exponent blinding factors .sub.0, .sub.1, . . . , .sub.L-1(Z/pZ).sup.x [0172] Step 2: Computation of shares. [0173] For every exponent blinding factor m{0, . . . L1} compute N shares of a degree-T polynomial that hides the value .sub.m at x=0:
[.sub.m].sub.0,[.sub.m].sub.1, . . . ,[.sub.m].sub.N-1SHAMIR(.sub.m) [0174] Step 3: Computation of .sup.. [0175] Compute .sup., where
[.sup.].sub.0,[.sup.].sub.1, . . . ,[.sup.].sub.N-1SHAMIR(.sup.) [0178] For each n{0, . . . , N1}, the trusted node then sends to the n-th node: [0179] [.sub.0].sub.n, [.sub.1].sub.n, . . . , [.sub.L-1].sub.n, and [0180] [.sup.].sub.n [0181] [End of Algorithm: Pre-processing Ideal Functionality F.sub.pre]
Section 2: Passive D-MLC
[0182] In a first implementation, there is provided a method to evaluate an arithmetic function, the method being described and illustrated below with the algorithm Passive D-MLC.
[0183] We now define the three phases of the Passive D-MLC to evaluate any arithmetic function. Without loss of generality, this function will comprise A additions and M.sub.a multiplication factors in the a-th addition. This means that M.sub.a Dealer Nodes will contribute M.sub.a secrets as multiplication factors to the a-th addition term.
[0184] The idea is that the MLC Computation Nodes follow the same pre-agreed deterministic algorithm to create a partition of the set {0, 1, . . . , L1} into M.sub.a disjoint, non-empty sets. That is, {0, 1, . . . , L1}=P.sub.a,0 P.sub.a,1 . . . P.sub.a,M.sub.
[0185] To formalize this idea, let us denote:
P.sub.a,0,P.sub.a,1, . . . ,P.sub.a,M.sub.
to the deterministic algorithm that creates a partition of the indexing set {0, 1, . . . , L1} with M.sub.a sets such that all partition sets are disjoint and non-empty. An example of such deterministic algorithm is the following:
Algorithm: PARTITION (L, M)
[0186] IF (L<M) THEN RETURN ERROR [0187] IF (L==M) THEN RETURN P.sub.0, P.sub.1, . . . , P.sub.M-1 with P.sub.i={i} [0188] Perform integer division L/M and obtain integer quotient Q and remainder R [0189] Split vector {0, 1, . . . ,L1} into M subsets P.sub.0, P.sub.1, . . . , P.sub.M-1 of equal size Q [0190] Add the R remaining unassigned elements in {0, 1, . . . , L1} to the last partition set P.sub.M-1. [0191] RETURN P.sub.0, P.sub.1, . . . , P.sub.M-1
[0192] [End of Algorithm: Pre-processing Ideal Functionality F.sub.pre]
[0193] For example, on inputs L=4 and M=3, this algorithm returns P.sub.0={0}, P.sub.1={1}, P.sub.2={2,3}. The particular choice of algorithm is irrelevant as long as the partition sets are disjoint and non-empty, and every MLC Computation Node executes the same partition algorithm. The skilled person will readily appreciate that they can use any arbitrary set of rules to allocate L integers into M.sub.a disjoint, non-empty partition sets.
[0194] Once computed, the partition P.sub.a,0, P.sub.a,1, . . . , P.sub.a,M.sub.
[0195] Notice that since the partition sets are non-empty, every .sub.a,m is well-defined.
[0196] Notice also that since the partition sets are disjoint the following equation holds:
where .sub.a is the same A defined in Eq. 2.
[0197] In what follows, we assume that the MLC Computing Nodes have run the pre-processing phase. Specifically, we assume that each n-th MLC Computing Node has obtained the following shares for every addition a{0, . . . , A1}: [0198] [.sub.a,0].sub.n, [.sub.a,1].sub.n, . . . , [.sub.a,L1].sub.n, and [0199] [.sup..sup.
Algorithm: Passive D-MLC
Inputs:
[0200] D Dealer Nodes, whereby the n-th node holds a subset S.sub.n of the total set of secrets S={s.sub.0, s.sub.1, . . . , s.sub.S-1}. The Dealer Nodes wish to compute an arithmetic function =(s.sub.0, s.sub.1, . . . , s.sub.S-1) over their secrets given by Eq. 1. Additional inputs follow: [0201] N=T+1: The number of Computing Nodes in the MLC Network, where T is the degree of the Shamir polynomials [0202] p: A prime number [0203] : A public generator from the multiplicative group (Z/pZ).sup.x of integers modulo p [0204] x.sub.0, . . . , x.sub.N-1 pre-agreed public abscissa for each one of the N MLC Computation Nodes used
Output:
[0205] R result nodes reconstruct the function result =.sub.a=0.sup.A-1.sub.m=0.sup.M.sup.
Purpose:
[0206] N computing nodes can jointly evaluate any arithmetic function whilst keeping the dealers' secrets private and without any message exchange during the computation phase.
Algorithm Steps:
[0207] The steps of the algorithm can be divided into three phases: Share Distribution, Computation and Result Reconstruction.
Phase 1Share Distribution
[0208] Step 1: [0209] For every addition a{0, . . . , A1}, each MLC Computing Node n: [0210] Runs the partition algorithm and independently obtains the same partition sets
P.sub.a,0,P.sub.a,1, . . . P.sub.a,M.sub.
.sub.a,mINTERPOLATE([.sub.a,m].sub.0,[.sub.a,m].sub.1, . . . ,[.sub.a,m].sub.T) [0216] Recall that in s.sub.i.sub.
v.sub.a,m=s.sub.i.sub.
[0221] Note on security. Notice that unless all N computing nodes were colluding, they would not know the value of the dealer blinding factors .sub.a,m because all they have is a Shamir polynomial share of these values. Therefore, the factor .sup..sup.
Phase 2Computation
[0222] Step 1: [0223] Each computing node n, n{0, 1, . . . , N1} calculates for each addition a, a{0, 1, . . . , A1} a share from a degree-T polynomial r.sub.a(x) which is a scaled version of the polynomial hiding .sup..sup.
Phase 3Result Reconstruction
[0228] Each computing node n, n{0, 1, . . . , N1} sends their MLC share [r].sub.n of the result to the result nodes, which apply Lagrange interpolation to reconstruct the evaluation r(0) of polynomial r(x), which is equal to the output of the function we wanted to evaluate:
=r(0)INTERPOLATE([r].sub.0,[r].sub.1, . . . ,[r].sub.T)Eq. 6
[0229] [End of Algorithm::Passive D-MLC]
[0230]
Proof for Eq. 6.
[0231] Now we provide a proof for the main result in Eq. 6.
[0232] Starting from Eq. 4 and 5 we have:
where the last step comes from the fact that .sub.a,0+.sub.a,1+ . . . +.sub.a,M.sub.
[0233] Rearranging terms:
where the inner sum corresponds to the Lagrange interpolation at x=0 of a degree-T polynomial that hides the value .sup..sup.
[0234] Replacing this we obtain:
which corresponds to =(s.sub.0, s.sub.1, . . . , S.sub.s-1)=.sub.a=0.sup.A-1.sub.m=0.sup.M.sup.
[0235] Section 3: Active D-MLC
[0236] In a second independent aspect of the invention, there is provided a method to evaluate an arithmetic function, the method being described and illustrated below with the algorithm Active D-MLC.
[0237] We now define the four phases of the Active MLC to evaluate any arithmetic function. As in the passive case, the idea is that the MLC Computation Nodes follow the same pre-agreed deterministic algorithm to create a partition of the set {0, 1, . . . , L1} into M.sub.a disjoint, non-empty sets. That is, {0, 1, . . . , L1}=P.sub.a,0 P.sub.a,1 . . . P.sub.a,M.sub.
P.sub.a,0,P.sub.a,1, . . . ,P.sub.a,M.sub.
to the deterministic algorithm that creates a partition of the indexing set {0, 1, . . . , L1} into M.sub.a sets such that all partition sets are disjoint and non-empty. The same considerations apply as in the passive case regarding the nature of this algorithm.
[0238] As in the passive case, we assume that each MLC Computing Node has computed in the pre-processing phase the following shares for every addition a{0, . . . , A1}: [0239] [.sub.a,0].sub.n, [.sub.a,1].sub.n, . . . , [.sub.a,L1].sub.n, and
[.sup..sup.
[0240] An important difference compared to the passive case is that now there are N shares with NT+1 (instead of T+1) from the degree-T polynomials hiding each one of the secrets above. The extra shares provide redundancy that will be used to detect and correct wrong shares that the corrupted parties might deliver for the reconstruction of a secret. A typical setup is to choose N3T+1, which can allow for the detection and correction of up to T shares from T corrupted parties in the reconstruction of a secret.
Algorithm: Active D-MLC
Inputs:
[0241] D Dealer Nodes, whereby the n-th node holds a subset S.sub.n of the total set of secrets S={s.sub.0, s.sub.1, . . . , s.sub.S-1}. The Dealer Nodes wish to compute an arithmetic function =(s.sub.0, s.sub.1, . . . , s.sub.S-1) over their secrets given by Eq. 1. Additional inputs follow: [0242] N>T+1: The number of Computing Nodes in the MLC Network, where T is the degree of the Shamir polynomials [0243] p: A prime number [0244] : A public generator from the multiplicative group (Z/pZ).sup.x of integers modulo p [0245] x.sub.0, . . . , x.sub.N-1 pre-agreed public abscissa for each one of the N MLC Computation Nodes used
Output:
[0246] R result nodes reconstruct the function result =.sub.a=0.sup.A-1.sub.m=0.sup.M.sup.
Purpose:
[0247] N computing nodes can jointly evaluate any arithmetic function whilst keeping the dealers' secrets private and without any message exchange during the computation phase. A fraction of the nodes can be corrupted without compromising the correctness of the protocol.
Algorithm Steps:
[0248] The steps of the algorithm can be divided into three phases: Share Distribution, Computation and Result Reconstruction.
Phase 1Share Distribution
[0249] Step 1: [0250] For every addition a{0, . . . , A1}, each MLC Computing Node n: [0251] Runs the partition algorithm and independently obtains the same partition sets
P.sub.a,0,P.sub.a,1, . . . ,P.sub.a,M.sub.
.sub.a,mECC([.sub.a,m].sub.0,[.sub.a,m].sub.1, . . . ,[.sub.a,m].sub.N-1)
Recall that in s.sub.i.sub.
v.sub.a,m=s.sub.i.sub.
[0261] Note on security. Notice that T+1 nodes are required to collude to reconstruct the value of the dealer blinding factors .sub.a,m because all they have is a degree-T Shamir polynomial share of these values. Therefore, the factor .sup..sup.
Phase 2Computation
[0262] Step 1:
[0263] Each computing node n, n{0, 1, . . . , N1} calculates for each addition a, a{0, 1, . . . , A1} a share from a degree-T polynomial r.sub.a(x) which is a scaled version of the polynomial hiding .sup..sup.
Notice that .sub.m=0.sup.M.sup.
[0265] Each computing node n, n{0, 1, . . . , N1} calculates a share from a degree-T polynomial r(x)=.sub.a=0.sup.A-1 r.sub.a(x):
[0266] This phase does not require any communication between the computing nodes since each node n can locally compute [r.sub.a].sub.n for each a{0, 1, . . . , A1}.
Phase 3Result Reconstruction
[0267] Each computing node n, n{0, 1, . . . , N1} sends their MLC share [r].sub.n of the result to the result nodes, which apply Lagrange interpolation to reconstruct the evaluation r(0) of polynomial r(x), which is equal to the output of the function we wanted to evaluate:
=r(0)ECC([r].sub.0,[r].sub.1, . . . ,[r].sub.N-1)Eq. 6a
[0268] [End of Algorithm: Active D-MLC]
[0269]
Proof for Eq. 6a.
[0270] Now we provide a proof for the main result in Eq. 6a.
[0271] Following the same reasoning from the first part of the proof of Eq. 6 in the passive adversary setup, we conclude that:
[0272] That is, [r].sub.n is a linear combination of the n-th share [.sup..sup.
[0273] Hence, all we need to do is to interpolate the value r(0) of the polynomial r(x) from NT+1 shares given that some of them might have been altered by the corrupted parties producing wrong shares. This can be done using error correction codes. From this, we conclude that:
=r(0)ECC([r].sub.0,[r].sub.1, . . . ,[r].sub.N-1)
[0274] In a preferred implementation Reed Solomon codes are used with the Berlekamp-Welch decoder [Mann13], which is incorporated herein by reference. In another implementation, a different code and/or decoder is used. The skilled person is free to choose any interpolation available to one skilled in the art to reconstruct the value of the result from the result shares. The use of error correction codes, and the choice of such code schemes, is not a limitation of this method.
Section 4: Active 1-MLC
[0275] In a third implementation, there is provided a method to evaluate an arithmetic function, the method being described and illustrated below with the algorithm Active 1-MLC.
[0276] We describe the case where all the secret inputs are coming from a single Dealer Node. This case is important since: [0277] 1. Often the secrets in a computation are coming from just one Dealer Node. This is the case for example of authentication and signatures. [0278] a. In authentication, the Dealer Node registers a number of factors (device identifier, password, facial biometric, pin, etc.) with the network in the form of particles. They then return providing new versions of these factors, which are sent as new particles to the network of MLC Computing Nodes. The network then jointly computes a function that allows comparing these factors and returns TRUE if they match, and FALSE if they do not match. [0279] b. In signatures, the Dealer Node registers a private key in the form of particles. They then return providing a message to be signed by the network. The network of MLC Computing Nodes jointly computes a function that returns the signature for the given message. [0280] 2. The restriction D=1 allows for a modified protocol that is even safer than D-MLC for active adversaries [0281] 3. The restriction D=1 allows for a modified protocol that does not require pre-processing.
[0282] The method can operate with a number of execution stages. For example, the measurements and values from a captured facial image at REGISTRATION time are transformed into particles and stored by the nodes in the network. At this point, they are not passed through a function. The particle version of each one of these datapoints constitutes in effect a hashed value of some aspect of the captured image. These particles can be passed to the computing nodes from the dealer node at a first execution stage.
[0283] At LOGIN time the same process is applied to the (different) captured facial image, resulting in the dealer node computing and communicating to the computing nodes, in a further execution stage, a further set of particles characterising the LOGIN image.
[0284] At the end of this process the computing nodes have particles from measurements and values from two captured facial images during registration and login times. It is at this stage that the nodes process all of these particles in order to evaluate the function . What this function would typically do is to measure the distance between the measurements and values at registration and login times to see how similar they are. The result nodes take the individual elements of the calculated function and return a number representing this compound distance between all the measurements and values. If the number is below a threshold then we conclude that the two faces were the same.
[0285] Summarising, with the execution stage model, new particles are sent in each execution stage as the dealer gathers more and more information. Whenever all necessary particles have been collected in order to run the desired function , this function is locally evaluated and a result is produced.
[0286] In Active 1-MLC the Dealer Node does not rely on the network in order to carry out the pre-processing phase. It should be noted that although all the secrets come from the same node, they can be provided at different moments in time, as the authentication and signature examples suggest. In the following protocol description, we reflect this fact by describing two different processes in Phase 1: [0287] First Execution: This process is only executed the first time the Dealer Node wants to initiate an 1-MLC Computation (e.g. password registration in authentication, or private key registration in the signature example) [0288] Subsequent Executions: This process is executed whenever the Dealer Node wants to add some more information to the computation (e.g. login in authentication, or message signing in the signature example). It can be executed once or more than once.
[0289] The protocol makes use of two new functions [0290] STORE ({x.sub.1, . . . , x.sub.j}) [0291] {x.sub.1, . . . , x.sub.Je}LOAD(e)
[0292] The function STORE stores a collection of J of variables. The function LOAD(e) retrieves a collection comprising all the Je variables from execution number e. We treat these functions as generic now and then provide a few possible implementations.
[0293] We describe the protocol assuming no pre-processing has taken place between the MLC Computing Nodes.
Algorithm: Active 1-MLC
Inputs:
[0294] One Dealer Node providing all secret inputs S={s.sub.0, s.sub.1, . . . , s.sub.S-1} to a computation. The Dealer Node wishes to compute an arithmetic function =(s.sub.0, s.sub.1, . . . , s.sub.S-1) over their secrets given by Eq. 1. Additional inputs follow: [0295] N>T+1: The number of Computing Nodes in the MLC Network, where T is the degree of the Shamir polynomials [0296] p: A prime number [0297] : A public generator from the multiplicative group (Z/pZ).sup.x of integers modulo p [0298] x.sub.0, . . . , x.sub.N-1 pre-agreed public abscissa for each one of the N MLC Computation Nodes used
Output:
[0299] R result nodes reconstruct the function result =.sub.a=0.sup.A-1.sub.m=0.sup.M.sup.
Purpose:
[0300] N computing nodes can jointly evaluate any arithmetic function whilst keeping the dealer's secrets private and without any message exchange during the computation phase. A fraction of the nodes can be corrupted without compromising the correctness of the protocol.
Algorithm Steps:
[0301] The steps of the algorithm can be divided into three phases: Share Distribution, Computation and Result Reconstruction.
Phase 1Share Distribution
[0302] The Dealer Node contributes with a collection {s.sub.i.sub.
where each set is disjoint, and A.sub.e and M.sub.a,e represent, respectively, the indices of the additions and multiplications in each addition to which the Dealer Node contributes with input secret variables during the e-th execution of Phase 1. We denote A.sub.e.sup.c and M.sub.a,e.sup.c to the complementary of sets A.sub.e and M.sub.a,e, respectively.
First Execution (e=1): [0303] Step 1: [0304] For every addition a{0, . . . , A1} and multiplication m{0, . . . , M.sub.a1}, the Dealer Node locally computes a random dealer blinding factor .sub.a,m [0305] Step 2: [0306] For every addition a{0, . . . , A1}, the Dealer Node computes:
[.sup.].sub.0,[.sup.].sub.1, . . . ,[.sup.].sub.N-1SHAMIR(.sup.) [0308] Step 3: [0309] For aA.sub.1, mM.sub.a,1 the Dealer Node then computes:
v.sub.a,m=s.sub.i.sub.
STORE({.sub.a,m}.sub.aA.sub.
Subsequent Executions (e>1): [0317] Step 1: [0318] Run
{.sub.a,m}.sub.aA.sub.
V.sub.a,m=s.sub.i.sub.
[0323] Note on security. Notice that T+1 nodes are required to collude to reconstruct the values {.sup..sup.
Phase 2Computation
[0324] Step 0: [0325] Each Computing Node waits until it has received all v.sub.a,m for every addition a{0, . . . , A1} and multiplication m{0, . . . , M.sub.a1). [0326] Step 1: [0327] Each computing node n, n{0, 1, . . . , N1} calculates for each addition a, a{0, 1, . . . , A1} a share from a degree-T polynomial r.sub.a(x) which is a scaled version of the polynomial hiding .sup..sup.
[0331] This phase does not require any communication between the computing nodes since each node n can locally compute [r.sub.a].sub.n for each a{0, 1, . . . , A1}.
Phase 3Result Reconstruction
[0332] Each computing node n, n{0, 1, . . . , N1} sends their MLC share [r].sub.n of the result to the result nodes, which apply Lagrange interpolation to reconstruct the evaluation r(0) of polynomial r(x), which is equal to the output of the function we wanted to evaluate:
=r(0)ECC([r].sub.0,[r].sub.1, . . . ,[r].sub.N-1)Eq. 6b
[0333] [End of Algorithm: Active 1-MLC]
[0334]
[0335] Notice that in Step 4 in the First Execution of Phase 1 the Dealer Node is sending the shares {[.sub.a,m].sub.n}.sub.a{0, . . . ,A1}.Math.m{0, . . . ,M.sub.
Possible Implementations for STORE and LOAD
[0336] In one implementation, the functions STORE and LOAD work on the client's device. For example, in a web browser implementation, variables are stored in cookies, or in the browser local storage, or in a mobile application they are stored in the mobile app, including the possibility of storing them in a Trusted Execution Environment or Secure Enclave.
[0337] In another implementation, variables are stored in a centralized server or group of servers, including the possibility of storing them in a Secure Enclave like Intel's SGX and/or of using encryption.
[0338] In another implementation, variables are stored in a decentralized network. For example, they are encrypted with the client's private key and sent over to a decentralized storage network, or each one is transformed into shares using for example Shamir's Secret Sharing and sent over to different nodes in a decentralized storage network.
[0339] The skilled person will appreciate that the choice of where to store and load from, and the details of implementation of the Store and Load functionality, are not limiting to the method as described.
REFERENCES
[0340] [Cra15] Cramer, R., Damgrd, I., & Nielsen, J. (2015). Secure Multiparty Computation and Secret Sharing. Cambridge: Cambridge University Press. doi:10.1017/CB09781107337756 [0341] [Sch13] Thomas Schneider and Michael Zohner. GMW vs. Yao? E_cient secure two-Party computation with low depth circuits. In Ahmad-Reza Sadeghi, editor, Financial Cryptography and Data Security, pages 275{292, Berlin, Heidelberg, 2013. Springer Berlin Heidelberg. [0342] [Jak15] Thomas P. Jakobsen. Practical Aspects of Secure MultiParty Computation. PhD thesis, Department of Computer Science, Aarhus University, 2015. [0343] [Yao08] Yanjun Yao. Secure multiParty computation. In Graduate Seminar on Cryptography. University of Tartu, 2008. [0344] [GMW87] Goldreich, Oded & Micali, S. & Wigderson, Avi. (1987). How to play ANY mental game. 218-229. 10.1145/28395.28420. [0345] [BGW88] M. Ben-Or, S. Goldwasser and A. Wigderson. Completeness Theorems for Non-Cryptographic Fault-Tolerant Distributed Computation. In the 20th STOC, pages 1-10, 1988 [0346] [BMR90] 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 [0347] [GESS09] Kolesnikov, V. 2005. Gate Evaluation Secret Sharing and Secure One-Round Two-Party Computation. In: Advances in CryptologyASIACRYPT 2005. Ed. by B. K. Roy. Vol. 3788. Lecture Notes in Computer Science. Springer, Heidelberg. 136-155 [0348] [Mann13] Mann, Sarah Edge. The Original View of Reed-Solomon Coding and the Welch-Berlekamp Decoding Algorithm. (2013). [0349] [SPDZ12] Damgrd I., Pastro V., Smart N., Zakarias S. (2012) Multiparty Computation from Somewhat Homomorphic Encryption. In: Safavi-Naini R., Canetti R. (eds) Advances in CryptologyCRYPTO 2012. CRYPTO 2012. Lecture Notes in Computer Science, vol 7417. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-32009-5_38