#10912: add order setters and Tate and ate pairings
-------------------------------+--------------------------------------------
Reporter: mariah | Owner: cremona
Type: enhancement | Status: needs_work
Priority: major | Milestone: sage-4.7
Component: elliptic curves | Keywords:
Author: Mariah Lenox | Upstream: N/A
Reviewer: | Merged:
Work_issues: |
-------------------------------+--------------------------------------------
Comment(by aly.deines):
Ok, I can be more specific in what the error is. In tate_pairing
(P.tate_pairing(Q,n,k)), if P._miller_(Q, n) raises a
ZeroDivisionError: Inverse does not exist., then it creates a random point
R and then calles P.tate_pairing(Q+R,n,k).
If Q+R is zero, then P._miller_(Q+R,n,k) raises an error. This is not
checked for and it seems that given certain
random seeds this does occur.
{{{
p = 103; A = 1; B = 18; E = EllipticCurve(GF(p), [A, B])
P = E(33, 91); n = P.order()
k = GF(n)(p).multiplicative_order()
set_random_seed(15)
P.tate_pairing(P,n,k)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "_sage_input_10.py", line 10, in <module>
exec compile(u'open("___code___.py","w").write("# -*- coding: utf-8
-*-\\n" +
_support_.preparse_worksheet_cell(base64.b64decode("cCA9IDEwMzsgQSA9IDE7IEIgPSAxODsgRSA9IEVsbGlwdGljQ3VydmUoR0YocCksIFtBLCBCXSkKUCA9IEUoMzMsIDkxKTsgbiA9IFAub3JkZXIoKQprID0gR0YobikocCkubXVsdGlwbGljYXRpdmVfb3JkZXIoKQpzZXRfcmFuZG9tX3NlZWQoMTUpClAudGF0ZV9wYWlyaW5nKFAsbixrKQ=="),globals())+"\\n");
execfile(os.path.abspath("___code___.py"))
File "", line 1, in <module>
File
"/private/var/folders/l5/l55HHC6uExG+F0kEqsPAgU+++TM/-Tmp-/tmpjVE30I/___code___.py",
line 7, in <module>
exec compile(u'P.tate_pairing(P,n,k)
File "", line 1, in <module>
File "/Users/aly/Desktop/sage-4.7.alpha2/local/lib/python2.6/site-
packages/sage/schemes/elliptic_curves/ell_point.py", line 1751, in
tate_pairing
ret = self.tate_pairing(Q + R, n, k)/self.tate_pairing(R, n, k)
File "/Users/aly/Desktop/sage-4.7.alpha2/local/lib/python2.6/site-
packages/sage/schemes/elliptic_curves/ell_point.py", line 1746, in
tate_pairing
ret = self._miller_(Q, n)
File "/Users/aly/Desktop/sage-4.7.alpha2/local/lib/python2.6/site-
packages/sage/schemes/elliptic_curves/ell_point.py", line 1446, in
_miller_
raise ValueError, "Q must be nonzero."
ValueError: Q must be nonzero.
}}}
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/10912#comment:4>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sage-trac?hl=en.