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 <john.crem...@gmail.com> 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 <jdeme...@cage.ugent.be> wrote: > > > > > > > On 2010-05-03 16:46, Mike Hansen wrote: > > > > Hello, > > > > On Mon, May 3, 2010 at 1:34 AM, Jeroen Demeyer <jdeme...@cage.ugent.be> > > > 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/sage-support@googlegroups.com/msg18282.html > > > Thanks a lot for the pointer! > > Jeroen. > > > -- > > To post to this group, send email to sage-support@googlegroups.com > > To unsubscribe from this group, send email to > > sage-support+unsubscr...@googlegroups.com > > 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 sage-support@googlegroups.com > To unsubscribe from this group, send email to > sage-support+unsubscr...@googlegroups.com > 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 sage-support@googlegroups.com To unsubscribe from this group, send email to sage-support+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-support URL: http://www.sagemath.org