I am looking for references for the most basic secret sharing and MPC arithmetic algorithms for generic rings or prime fields.
Problem:
Suppose there are $m$ parties $P_1, \ldots, P_m$ which wish to do arithmetic over a ring.
They hold some secret shared values $[x], [y]$ and they wish to compute $[x+y]$ and $[xy]$.
What are the basic algorithms for solving these problems?
What are the basic secret sharing methods that can be used?
I know of the following two basic secret sharing methods
- Shamir secret sharing (essentially Lagrange interpolation, $t$ out of $n$ secure)
- Additive secret sharing ($n-1$ out of $n$ secure)
Both of these secret sharing methods are linear (they allow for computation of $[x+y]$ by only doing local computations (additions)) and they provide information-theoretic security.
As for multiplication, it doesn't follow automatically, and I know of the following method
which requires a precomputed triple $([a],[b],[ab])$ and one round of communication per multiplication, and is information theoretically secure.
Are there other algorithms for $+,\times$ in the MPC setting?
Which are the simplest ones?
Which require the least amount of communication?
Which require the least amount of precomputation?
Are there other related algorithms that one should be aware of?
Is it possible to compute a multiplication and open it in a single communication round?
I would appreciate any references or answers to the above questions.
EDIT:
Additional question - what how do these algorithms generalise in a malicious adversary $(t<n/2 \text{ or } t<n/3)$ setting, either in an information theoretic or computational security model?