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

Adding support for more curves with different security levels #5

Closed
A1337CBS opened this issue Dec 5, 2019 · 9 comments
Closed

Adding support for more curves with different security levels #5

A1337CBS opened this issue Dec 5, 2019 · 9 comments

Comments

@A1337CBS
Copy link

A1337CBS commented Dec 5, 2019

Hi,

I have been going through the code and wanted to add more curves but saw that it would require a lot of files which could clutter up soon, is that a good approach or did I get it wrong?
Do the authors of the library plan to add more curves too?

@mcarrickscott
Copy link
Contributor

mcarrickscott commented Dec 5, 2019 via email

@A1337CBS
Copy link
Author

A1337CBS commented Dec 6, 2019

Hi,
I am not sure if others would like to see it but my reasoning is that for constrained environments as stated in the readme having curves like secp160r1, secp192r1 and secp224r1 would be nice. I would start the implementation on c++ if it goes well will try to do the same for other languages and send PR then.

As for tools, only romgen with miracl library would be needed for the above curves right?

What is the curve that you might add? Also what is the roadmap/end goal you have in mind for this library?

Thanks

@mcarrickscott
Copy link
Contributor

mcarrickscott commented Dec 6, 2019 via email

@jaromil
Copy link

jaromil commented Dec 6, 2019

I recommend considering also BLS12-381 (pairing capable) which is the best current candidate in the ETH2.0 specification and likely to face considerable adoption. You have a ROM already in the SWIG implementation here https://github.com/miracl/core/blob/cfed4f13ae2b620061dc3a15cd62a8d96762b4a4/swift/rom_bls12381.swift not sure how well tested.

@mcarrickscott
Copy link
Contributor

mcarrickscott commented Dec 6, 2019 via email

@pietrotedeschi
Copy link

pietrotedeschi commented Dec 9, 2019

Hello, Good idea. Yes, romgen would be the only tool required. The only curve we have currently in mind is the Montgomery version of the Goldilocks Edwards curves. Mike

On Fri, Dec 6, 2019 at 9:34 AM A1337CBS @.***> wrote: Hi, I am not sure if others would like to see it but my reasoning is that for constrained environments as stated in the readme having curves like secp160r1, secp192r1 and secp224r1 would be nice. I would start the implementation on c++ if it goes well will try to do the same for other languages and send PR then. As for tools, only romgen with miracl library would be needed for the above curves right? What is the curve that you might add? Thanks — You are receiving this because you commented. Reply to this email directly, view it on GitHub <#5?email_source=notifications&email_token=AAU3ZDQWC7MBHKT7OSJFASTQXIMCFA5CNFSM4JV4WY22YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEGDRPGQ#issuecomment-562501530>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAU3ZDSQDCBUUHUQAJCABCLQXIMCFANCNFSM4JV4WY2Q .

Hi Mike, effectively, as the author post is saying it would be useful to have also curves to guarantee a minimum security level for constrained devices (e.g. 80 bit with the EC secp160r1 or the Koblitz one secp160k1 [1] for IoT devices it is good). I understand that we can adopt the provided tool and for example put in input the parameter provided for secp160r1 to generate the respective Elliptic Curve. By the way, if you can provide these curves it is better.

[1] https://www.secg.org/SEC2-Ver-1.0.pdf

@mcarrickscott
Copy link
Contributor

mcarrickscott commented Dec 9, 2019 via email

@mcarrickscott
Copy link
Contributor

New curves X448 and 80-bit security secp160r1 (for those who like to live dangerously!) implemented

Mike

@mcarrickscott
Copy link
Contributor

Time out

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

4 participants