Beaver triples
The additions of linearly shared values (and generally any linear operations) can be done locally, without any interaction between the parties: . Multiplication requires interaction. The following fundamental construction by Beaver allows to do it provided we have a certain precomputed data:
Assume that we have a precomputed triple of shared values , satisfying the following properties:
- and sharings of all three are distributed uniformly randomly independently for all parties.
Then, the following construction allows us to sacrifice this pre-computed triple to multiply two shared elements: It is easy to see (by direct inspection), that what we've obtained is, indeed, the sharing of . The triple must be "sacrificed", i.e. never used again anywhere, so that openings of and leak no information. The problem of actually constructing Beaver triples is a known cryptographic problem. It is isolated and out of scope of our research, so we treat Beaver triples as an idealized functionality.