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

Subgroup security of the BN curve searching #3

Open
weikengchen opened this issue Feb 3, 2021 · 3 comments
Open

Subgroup security of the BN curve searching #3

weikengchen opened this issue Feb 3, 2021 · 3 comments
Assignees

Comments

@weikengchen
Copy link
Collaborator

The current implementation in ecfactory to search BN curves did not evaluate the subgroup security, as discussed in https://eprint.iacr.org/2015/247.pdf.

Mainly, pairing might be subject to subgroup attacks. To prevent such attacks, this paper adds additional criteria on selecting good curves, by also requiring the h of the G_2 and G_T to have a large prime factor. This new requirement places a lot of constraints on the choices of parameters.

Note that the parameters of BN254 (which indeed has a historical meaning) in arkworks do not have such properties, since those parameters are sampled before this paper.

Therefore, it is left as a TODO to add BN curve searching algorithms that have subgroup security guarantees.

@weikengchen weikengchen self-assigned this Feb 3, 2021
@weikengchen
Copy link
Collaborator Author

weikengchen commented Feb 3, 2021

I assign this to myself since one of my ongoing projects needs this.

@weikengchen
Copy link
Collaborator Author

Note that the need for subgroup security depends on the specific application. For example, if one is using the BN curve, and only $G_1$ is being transmitted between malicious parties, then subgroup security for $G_2$ and $G_T$ may be unnecessary.

@weikengchen
Copy link
Collaborator Author

And also, prevention against subgroup attacks can be done via a full membership check (which checks if the element is, not just a point on the curve, but in the subgroup that the pairing is defined over). This could be expensive though.

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

1 participant