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

Generate Anomalous Curve with Given order #16

Open
gunpal5 opened this issue Oct 13, 2023 · 4 comments
Open

Generate Anomalous Curve with Given order #16

gunpal5 opened this issue Oct 13, 2023 · 4 comments

Comments

@gunpal5
Copy link

gunpal5 commented Oct 13, 2023

I was wondering if it is possible to extend the the function generate_anomalous_q to generate curves with more types of prime numbers, as mentioned in this paper for the case (Case hD ≥ 2.)

(https://doi.org/10.1016/j.ipl.2004.11.008)

Edit:
in this file shared/ecc.py you mentioned you'll implement "Accelerating the CM method" by Sutherland. Would you be able to do that? That might help to generate elliptic curve with a given order

@jvdsn
Copy link
Owner

jvdsn commented Oct 15, 2023

Could you give an example q for which generate_anomalous_q currently does not work?

in this file shared/ecc.py you mentioned you'll implement "Accelerating the CM method" by Sutherland. Would you be able to do that? That might help to generate elliptic curve with a given order

That Sutherland paper is very complicated. I put it in there as a TODO but it's very unlikely I'll implement that in the near future. I also don't think it would be needed for the LMVV Anomalous Curves paper.

@gunpal5
Copy link
Author

gunpal5 commented Oct 16, 2023

There are several I was specifically trying with m = 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141

@jvdsn
Copy link
Owner

jvdsn commented Oct 22, 2023

OK, so I understand the problem you're having. In your case,
p = 115792089237316195423570985008687907852837564279074904382605163141518161494337.

Then
4p - 1 = 3^2 * 11 * 30977 * 31259 * 9303467 * 4726907109366362731 * 109867024074060467297173061989374797162123

So D = -51463150772140531299364882226083514601261139679588846392268961396230293997483.

The problem here is that D is way too big for our complex multiplication. Yes, the Sutherland paper might help here, but even then I don't know if the complex multiplication method with such a big D value would work.

I think this is going to stay an open issue. As mentioned, the Sutherland paper is way too complicated to implement anyway, especially in python.

@gunpal5
Copy link
Author

gunpal5 commented Oct 22, 2023

@jvdsn
Thank you for looking into the issue. I think you are right it is very difficult to use that value of D to use in CM.
Please feel free to close the issue.

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