Ticket #1119 (closed defect: fixed)
[with patch, positive review] EllipticCurve.random_element for char=2
| Reported by: | malb | Owned by: | malb |
|---|---|---|---|
| Priority: | major | Milestone: | sage-2.9 |
| Component: | number theory | Keywords: | |
| Cc: | Work issues: | ||
| Report Upstream: | Reviewers: | ||
| Authors: | Merged in: | ||
| Dependencies: | Stopgaps: |
Description
This should work:
sage: k.<a> = GF(2^5) sage: E = EllipticCurve(k,[k.random_element() for _ in range(5)]) sage: E Elliptic Curve defined by y^2 + (a^3+1)*x*y + (a^4+a^3+a)*y = x^3 + (a^4+a^3+a^2+a)*x^2 + (a^4+a^2+a+1)*x + a^2 over Finite Field in a of size 2^5 sage: E.random_element() Exception (click to the left for traceback): ... ZeroDivisionError: division by zero in finite field.
Attachments
Change History
comment:1 Changed 6 years ago by malb
- Owner changed from was to malb
- Status changed from new to assigned
- Summary changed from EllipticCurve.random_element for char=2 to [with patch] EllipticCurve.random_element for char=2
comment:3 Changed 5 years ago by robertwb
Given E defined by f(x,y) = 0, the patch assumed that there were always exactly zero or two values of y for every x, which is not true. I've attached a patch fixing this issue.
Also, in the characteristic > 2 case, it never considered the 'negative' square-root. I changed this too.
Otherwise, the patch looks good.
Note: See
TracTickets for help on using
tickets.


The attached patch fixes this (probably in a too naive way).