-
Notifications
You must be signed in to change notification settings - Fork 5
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 checks via Bowe19 #21
Comments
At a guess, this draft will specify that subgroup checks are required but not how to do them (that's up to impls). So probably this means we'll use this approach in our ref impl, but otherwise not specify it. (I think @ebfull suggested something similar to the above at some point. So: thanks!) |
BTW, I completely agree with that. The checks in my paper are applications of the GLV techniques which are currently under patent. These patents don't expire for at least another year. :( |
Sean Bowe shows how to check subgroup membership more quickly than exponentiation by the group order.
This post quickly summarizes the results as pseudocode.
TODO: should subgroup testing be a required part of deserialization?Sean points out (in personal communication) that G2 subgroup checks are necessary, because the pairing operation is undefined otherwise. So probably it makes sense to just require subgroup checks for both G1 and G2.For G1, define the endomorphism sigma as
Then, to check subgroup membership, test the following:
For G2, let psi(P) be the "untwist-Frobenius-twist" endomorphism given by Galbraith and Scott in Section 5 of GS08. Then to test subgroup membership, check the following:
The text was updated successfully, but these errors were encountered: