-
Notifications
You must be signed in to change notification settings - Fork 281
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
About A2B in Rep4 #1509
Comments
|
Hi Keller, in the paper, after locally splitting the [x]_2k (x = x1 + x2 + x3 + x4) into { [x1_j ]_2, [x2_j ]_2, [x3_j ]_2, [x4_j ]_2 } for all j in [k], the final step of computing [x_j]_2 is to use a binary adder. I want to know how to sum these splits up concretely? Is it to first compute y1 = (x1 + x2) and y2 = (x2 + x3) then compute x = (y1 + y2) ? |
We use Wallace trees, a technique from binary multiplication: https://en.wikipedia.org/wiki/Wallace_tree
Bit injection is very simple and explained in the text of Section 3. MSB extraction is done by simply computing the MSB in binary as above followed by converting to arithmetic using bit injection. Lastly, B2A with more than one bit can be either be done using edaBits (https://eprint.iacr.org/2020/338) or with a few tricks that aren't in the paper because it's not really relevant in applications. |
Thank you. I'm still studying since I want to re-implement the Rep4. Does the tree-wise reduction correspond to the Wallace tree? |
You can implement a full adder with only one AND gate when you use a MUX gate (which requires one AND): https://www.researchgate.net/figure/Full-adder-using-XOR-gates-and-a-MUX_fig6_234773872 |
Hi Keller, i'm studying the protocol and implementation of Fantastic Four.
In the paper, share splitting operation is used to convert arithmetic shares to boolean ones with Binary Adder, however, i can't connect the described protocol with the code of Rep4::split, especially the parameter "regs" and the unit processing.
Can you help me to understand the implementation? Thanks!
The text was updated successfully, but these errors were encountered: