You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Questions about using the Shamir secret sharing protocol #91
Does MPyC support direct input secret sharing? Our own program has already generated secret shares through shamir protocol, and we want to use MPyC for subsequent secure multi-party computation based on shamir protocol, which does not seem to be described in the documentation.
Does MPyC support the definition of a variable length data structure in ciphertext?
The answer to your first question is "yes". For example, if you have say three parties holding secret shares of a secure integer, you can assign these shares locally, for each party, and then they can continue to do secure computation with the resulting secure integer.
Party 0 executes a = secint(secint.field(12723956914977493523)) in its program.
Party 1 executes a = secint(secint.field(7001169756245412185)) in its program.
Party 2 executes a = secint(secint.field(1278382597513330847)) in its program.
Then if they run print(await mpc.output(a)) they should all see 23434 being printed.
About your second question, not sure what it is about?
The second question is about secure types. When I use secint.array to define a secure array, is there a way to define a variable-length array without specifying the array length? For example, T = secint.array().
Well, no, Numpy arrays are not variable length. And all entries of a Numpy array are of the same type. This allows for efficient processing, in a vectorized manner. Using lists you can have variable length and elements of mixed type, but that usually incurs some extra costs.
Repository owner locked and limited conversation to collaborators on May 22, 2024
Activity
lschoe commentedon May 20, 2024
The answer to your first question is "yes". For example, if you have say three parties holding secret shares of a secure integer, you can assign these shares locally, for each party, and then they can continue to do secure computation with the resulting secure integer.
Party 0 executes
a = secint(secint.field(12723956914977493523))in its program.Party 1 executes
a = secint(secint.field(7001169756245412185))in its program.Party 2 executes
a = secint(secint.field(1278382597513330847))in its program.Then if they run
print(await mpc.output(a))they should all see23434being printed.About your second question, not sure what it is about?
sda427 commentedon May 21, 2024
Thank you very much for your answer.
The second question is about secure types. When I use secint.array to define a secure array, is there a way to define a variable-length array without specifying the array length? For example, T = secint.array().
lschoe commentedon May 21, 2024
Well, no, Numpy arrays are not variable length. And all entries of a Numpy array are of the same type. This allows for efficient processing, in a vectorized manner. Using lists you can have variable length and elements of mixed type, but that usually incurs some extra costs.