1 | initial version |
It could be a problem with the Pari implementation.
The Weil pairing using the 'sage' algorithm provides the expected result:
sage: F59 = GF(59)
....: E59 = EllipticCurve(F59, [1,0])
....: F59sq.<u> = F59[i]
....: E59sq = EllipticCurve(F59sq, [1,0])
....: def phi2(p1):
....: return E59sq( - p1[0], p1[1] * u)
....: p = E59sq(25,30)
....: q = phi2(p)
....: p.weil_pairing(q,5,'sage')
56*I + 46
It looks like the tate_pairing also returns the expected result:
sage: p.tate_pairing(q,5,2)
40*I + 42