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.
- Maybe, randomness can get from api PrecomputeObject.getTriplets, but all randomness in Precompute is 0, since the following code:
std::make_pair(0,0);
- 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! ! !