There is no commentSelect some text and then click Comment, or simply add a comment to this page from below to start a discussion.
On subgroup checks for BLS12
Let be an elliptic curve from the BLS12 family. We denote by its prime subgroup order. Let a point of order . The goal is to verify efficiently that .
Notations
is an elliptic curve defined over a finite field with the short Weierstrass equation
is a prime-order subgroup of
is the embedding degree, i.e. the smallest integer s.t.
A pairing is a map , where , and the group of -th roots of unity in .
BLS12
BLS12 is a complete family of pairing-friendly elliptic curves with an embedding degree (Construction 6.6 in FST06, case ). It is defined over a finite field ๐ก of prime characteristic by the equation . It has Complex Multiplication by discriminant and parameters defined by the following polynomials:
Parameter
Polynomial
field size
subgroup order
Frobenius trace
These polynomials are evaluated at some seed to derive a specific curve with the desired security and efficiency.
Endomorphisms
BLS12 curves have CM discriminant , so there is an efficient endomorphism with a primitive cube root of unity (i.e. ). The eigenvalue of this endomorphism is which a cube root of unity in .
BLS12 has Complex Multiplication by . There is an endomorphism satisfying with eigenvalue . Given BLS12 polynomials, one finds .
Given a twist of order , is isomorphic to with the twisting isomorphism. On , there is an efficient endomorphism called "untwist-Frobenius-twist" where is the -power Frobenius. It satisfies
BLS12 curves have a twist of degree 6. Associated with a choice of s.t. is irreducible, the equation of can be either
and we call it a D-twist or
and we call it a M-twist
For the D-type, , and for the M-type
So given that and , is over and and is
Related work
Using the endomorphism on ๐ and on ๐, Sean Bowe [1] derived using LLL algorithm as in Fuentes et al.[2] and Budroni and Pintore[3] fast formulae to check that a point is on BLS12-381 ๐ and ๐. The formulae are
๐
๐
Observations
To derive ๐ membership formula for BLS12, there is no need for LLL algorithm. Given the polynomials and , a simple formula can be derived The formula in [1] can be simplified into this one by using the fact that .
For ๐, the check can be done the same way: (note in ๐ uses the other cube root of unity ). However, the formula in [1] is faster (multiplication by instead of ) but it can be simplified into by remarking that .
Why ? Let's take the example of D-twist, we have and, Now, recal that is the trace hence and is a primitive 6th root of unity. So, is primitive 3rd root of unity. Now, and , this is the trace. Finally, , and because is not a square in , then , which means
[NEW] Scott eprint 2021/1130
For ๐, Scott proves by contradiction that checking the endorphism is sufficient: . In fact, because a third root of unity in ๐ฃ. If the endomorphism was true for a point of order , then by CRT, but for BLS curves and hence .
For ๐, he finds a simpler formula: . In fact, given that and then . verifies and this becomes which has two solutions: or . Only the latter is valid sinc acts non-trivially on ๐.
Implementation
Example code for BLS12-381 (M-twist) with seed and BLS12-377 (D-twist) with in gnark-crypto library (golang).