Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Sextic twist on small BLS curve

Hi I have created a BLS curve on small numbers as follows:

z = 4
b=7
q = (z^4 - z^2 + 1)
p = ZZ( ((1/3)*q*(z - 1)^2) + z )

F = GF(p)
t = z + 1
r = p + 1 - t 
F12.<a> = GF(p^12)    
E0 = EllipticCurve(F  , [0,b])
E1 = EllipticCurve(F12, [0, b])

Zq = GF(q)

g1 = E1((98,64))
g2 = E1((220*a^11 + 547*a^10 + 307*a^9 + 180*a^8 + 547*a^7 + 187*a^6 + 531*a^5 + 572*a^4 + 288*a^3 + 468*a^2 + 589*a + 20, 159*a^11 + 453*a^10 + 540*a^9 + 451*a^8 + 703*a^7 + 460*a^6 + 499*a^5 + 590*a^4 + 484*a^3 + 659*a^2 + 692*a + 235))
g1.weil_pairing(g2, q)

It works okay, however I would like to properly have a twist curve in F(p^2).

I wonder, what should I do to correctly obtain a sextic twist? If we use the generator in g1, might you also show how a weil pairing would be called in the twist curve? If the sample curve I am working with requires change, could you please suggest such?

Thank you in advance

Sextic twist on small BLS curve

Hi I have created a BLS curve on small numbers as follows:

z = 4
b=7
q = (z^4 - z^2 + 1)
p = ZZ( ((1/3)*q*(z - 1)^2) + z )

F = GF(p)
t = z + 1
r = p + 1 - t 
F12.<a> = GF(p^12)    
E0 = EllipticCurve(F  , [0,b])
E1 = EllipticCurve(F12, [0, b])

Zq = GF(q)

g1 = E1((98,64))
g2 = E1((220*a^11 + 547*a^10 + 307*a^9 + 180*a^8 + 547*a^7 + 187*a^6 + 531*a^5 + 572*a^4 + 288*a^3 + 468*a^2 + 589*a + 20, 159*a^11 + 453*a^10 + 540*a^9 + 451*a^8 + 703*a^7 + 460*a^6 + 499*a^5 + 590*a^4 + 484*a^3 + 659*a^2 + 692*a + 235))
g1.weil_pairing(g2, q)

It works okay, however I would like to properly have a twist curve in F(p^2).

I wonder, what should I do to correctly obtain a sextic twist? If we use the generator in g1, might you also show how a weil pairing would be called in the twist curve? If the sample curve I am working with requires change, could you please suggest such?

Thank you in advance