Skip to content
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

Plans to support MPC over elliptic curves? #1559

Open
EmanQh opened this issue Dec 19, 2024 · 4 comments
Open

Plans to support MPC over elliptic curves? #1559

EmanQh opened this issue Dec 19, 2024 · 4 comments

Comments

@EmanQh
Copy link

EmanQh commented Dec 19, 2024

Hello Marcel,

I’m wondering if there are any plans to support MPC over elliptic curves, for example as in Distributing any Elliptic Curve Based Protocol?

For my use case, I would only need to perform linear operations over elliptic curves using Araki et al. Do you have any suggestions for implementing this with this software?

Any help would be greatly appreciated.

@mkskeller
Copy link
Member

ECDSA is already supported: https://mp-spdz.readthedocs.io/en/latest/ecdsa.html
See also the relevant paper: https://eprint.iacr.org/2019/889
Linear operations in said protocol should be straightforward using Rep3Share<P256Element> with the curve already used. For another curve, you need to adapt P256Element in ECDSA/P256Element.cpp.

@EmanQh
Copy link
Author

EmanQh commented Dec 29, 2024

Does this include multiplying a point in an elliptic curve held in secret shared form by a public scalar? I have added the lines below after line 78 in ECDSA/preprocessing.cpp to test both point addition and multiplication by a public scalar. The former works but the latter raises the error shown in the screenshot below.

    P256Element opened_result1, opened_result2;
    cShare secret_result;
    secret_result = bs[1];
    opened_result1 = MCc.open(secret_result + secret_result, extra_player);
    opened_result2 = MCc.open(secret_result * cs_opened[1], extra_player);
Screen Shot 2024-12-29 at 9 41 15 PM

@mkskeller
Copy link
Member

This functionality is indeed missing. You should find that f7c5a18 adds it.

@EmanQh
Copy link
Author

EmanQh commented Jan 10, 2025

Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants