Beaver triples

The additions of linearly shared values (and generally any linear operations) can be done locally, without any interaction between the parties: ​[x+y]=[x]+[y][x + y] = [x] + [y]. 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 ​[a],[b],[c][a], [b], [c], satisfying the following properties:

  1. ab=cab = c
  2. a,ba, b 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: open: (x+a),(y+b)\text{open: } (x+a), (y+b) [xy]=(x+a)[y]+(y+b)[x](x+a)(y+b)+[c][xy] = (x+a)[y] + (y+b)[x] - (x+a)(y+b) + [c] It is easy to see (by direct inspection), that what we've obtained is, indeed, the sharing of xyxy. ​ The triple must be "sacrificed", i.e. never used again anywhere, so that openings of x+ax+a and y+by+b 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.

results matching ""

    No results matching ""