Round-efficient multiplication
This functionality (which we denote as normal multiplication i=1∏nxi and always use in case we need to multiply >2 factors) computes the product of n elements. It works as follows:
- [ri∈RFp], for i∈{0..n}
- [si]=[ri/ri−1] for i∈{1..n} //this can be computed in the offline phase
- [yi]=[si][xi] for i∈{1..n}
- Open yi, calculate Y=i=1∏nyi.
- Output Y[r0rn−1]
This also allows to compute running product x1;x1x2;...;x1x2...xn in one go using the same method: in step 4 we compute all Yk=i=1∏kyi, and then calculate Yk[r0rk−1]