snwagh / falcon-public

Implementation of protocols in Falcon

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Using Randomness function of AESObject

chenshuyuhhh opened this issue · comments

Hey, snwagh.
I have been reading your paper Falcon. I am interested in how to use randomness functions of AESObject in Falcon.

e.g.
let partyA and partyB have r1, partyB and partyC have r2, and partyC and partyA have r3.

  1. Maybe, randomness can get from api PrecomputeObject.getTriplets, but all randomness in Precompute is 0, since the following code:
std::make_pair(0,0);
  1. So can using std::make_pair(getxxBits(), getxxBits()) to replace std::make_pair(0,0) achieve RSS of randomness?
# AESObject 
myType get64Bits();
smallType get8Bits();

Two aspects to this: first yes, you can use the AES calls to get common randomness across parties. However, to get beaver triples, a lot more has to happen -- if a * b = c is the triple and each value is secret shared as a_1, a_2, a_3 etc, then computing a, b can be randomly chosen using the AES calls but then c is constraint to specific values (and thus there is a constraint among c_1, c_2, c_3).

Consequently, you need secure computation protocols to securely generate such triples. However, if you are looking to simply randomize the triples instead of make_pair(0,0), then you can achieve this using some combination of the AES function calls (you will use some global randomness, i.e., values known to all 3 parties, in this process)

Your explanation is very clear! ! ! Thank you so much! ! !