There is now a simple patch on the Sage trac server (see
http://trac.sagemath.org/sage_trac/ticket/1975) which allows the
following:
sage: N = 1715761513
sage: E = EllipticCurve(Integers(N),[3,-13])
sage: P = E(2,1)
sage: LCM([2..60])*P
Traceback (most recent call last):
...
ZeroDivisionError: Inverse of 1520944668 does not exist
(characteristic = 1715761513 = 26927*63719)
If other Sage developers like this it will soon become a standard
feature!
John Cremona
On May 4, 6:59 pm, John Cremona <[email protected]> wrote:
> The simplest workaround, I think, is to set
>
> E._point_class =
> sage.schemes.elliptic_curves.ell_field.EllipticCurve_finite_field
>
> after creating E and before attempting to create points.
>
> Example:
>
> sage: E6 = EllipticCurve(Integers(6),[0,0,1,-1,0])
> sage: E6._point_class =
> sage.schemes.elliptic_curves.ell_point.EllipticCurvePoint_finite_field
> sage: P = E6(0,-1)
> sage: P
> (0 : 5 : 1)
> sage: 2*P
> (1 : 5 : 1)
> sage: 3*P
> (5 : 0 : 1)
> sage: 4*P
> (2 : 2 : 1)
> sage: 5*P
>
> boom! but helpfully:
>
> ZeroDivisionError: Inverse of 4 does not exist
>
> enabling one to find a factorization of 6.
>
> For a less trivial example (Taken from my own lecture notes):
>
> sage: N = 1715761513
> sage: E = EllipticCurve(Integers(N),[3,-13])
> sage: E._point_class =
> sage.schemes.elliptic_curves.ell_point.EllipticCurvePoint_finite_field
> sage: P = E(2,1)
> sage: m = LCM([2..100])
> sage: m*P
> ...
> ZeroDivisionError: Inverse of 1317188059 does not exist
> sage: gcd(1317188059, N)
> 26927
> sage: N.factor()
> 26927 * 63719
>
> John
>
> On May 4, 8:59 am, Jeroen Demeyer <[email protected]> wrote:
>
>
>
>
>
> > On 2010-05-03 16:46, Mike Hansen wrote:
>
> > > Hello,
>
> > > On Mon, May 3, 2010 at 1:34 AM, Jeroen Demeyer <[email protected]>
> > > wrote:
> > >> I wonder if there is a way to make Sage compute with points on elliptic
> > >> curves over rings which are not fields. I would like to use it for a
> > >> very simple implementation of the ECM factoring algorithm for
> > >> educational purposes. The obvious doesn't work:
>
> > > There is a workaround. Please see:
> > >http://www.mail-archive.com/[email protected]/msg18282.html
>
> > Thanks a lot for the pointer!
> > Jeroen.
>
> > --
> > 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
> > athttp://groups.google.com/group/sage-support
> > URL:http://www.sagemath.org
>
> --
> 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
> athttp://groups.google.com/group/sage-support
> URL:http://www.sagemath.org
--
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-support
URL: http://www.sagemath.org