The BGW (Ben-Or, Goldwasser and Widgerson) protocol allows -party SFE with -privacy. The security is information theoretic. We work in the honest-but-curious model (the scheme can be modified to counter other threats).
The BGW protocol works on algebraic circuits. Any Boolean circuit can be converted into a algebraic circuit by replacing with and with .
Let . User has and . The communication turns out to be linear in the size of the circuit.
First we describe a couple of tricks that will be needed for the scheme.
Secret Sharing
Let be a secret. We review a method of -out-of- secret sharing due to Shamir ['81]. That is any of the users can reconstruct but cannot.
Pick a random degree polynomial such that . User gets the share for . If people get together, they can interpolate to get
where
Note that interpolation can be done when given even when the discrete logarithm problem is hard.
The scheme is secure because for any and any users, there exists a unique polynomial of degree with and .
Proactive Secret Sharing
Suppose is shared in a -out-of- fashion, so that user has . Every time period, we would like the users to execute a protocol to refresh their shares without changing . The idea is that an adversary would have to compromise shares within one time period in order to get .
To do this, we can have someone, say user 1, pick random polynomial of degree such that , and then send to user . Each user then refreshes their share by computing .
This scheme works since is a random polynomial.
A -party SFE for linear transformations
Suppose user has for . Define the vector . Let be an matrix over . Define the vector . We want an SFE protocol with .
Then let be the th row of . Then . Benaloh's protocol is an -private protocol for .
The BGW Protocol
Set . For , user picks a random degree polynomial with , and sends to user . Each user has a vector of shares. The gates are then evaluted one by one (in topological order).
For an addition gate : the arguments are already shared in a -out-of- fashion, i.e. we have and user has . Then each user locally computes , which means they now hold shares of the answer .
For a multiplication gate : as above, the arguments are already shared. Then each user computes , which means are points on a polynomial of degree . Let , so . We have by definition of , thus parties can interpolate .
Define (i.e. truncate ). Then we want to convert the shares to
This transformation is linear, because we can find three matrices such that as follows. is the interpolation matrix (Fourier transform) that computes the coefficients of from . is the truncation operator which is the identity matrix with some 1's replaced by 0's. is the evaluation matrix that evalutes at (another Fourier transform).
Thus Benaloh's protocol can be used to compute . Lastly, is not random, but this can be fixed by using proactive secret sharing.
So addition gates are free, while multiplication gates require communication, and all operations are done on shared values. After all gates have been processed, every user publishes their share.