I'm CC-ing this to sage-nt which is the group where number
theory-related things in Sage are discussed.
It would be great to have good support for isogenies in Sage. This is
not at all limited to finite fields.
Velu's formulas are fine as far as they go, but there are other things
you should look at too. David Kohel's thesis is one place where
better formulas are obtained which do not involve using the
coordinates of the points in the kernel (that's an advantage since
these coordinates are in general in an extension field even when the
subgroup is rational). So functions to construct isogenies from a
given kernel would be better vased on that. (David was responsible
for Magma's very useful function IsogenyFromKernel which uses this).
A second useful thing to have would be over more general fields, say
over number fields: given a curve E, give me all the curves isogenous
to it (up to isomorphism) together with all the isogenies etc. Sage
can do this in part over Q only by calling my C++ code (or possibly my
similar gp code, I forget). Magma again does a good job, over number
fields, the code there being written by Mark Watkins. Some of the
formulas are in a preprint by Mark and me which I could send you if
you cannot find it.
Thirdly, and of interest in cryptographic applications: given two
elliptic curves over F_q with the same number of points, construct the
isogeny between them. There's a quite recent paper by Morain and
others showing how that can be done very efficiently using power
series to represent the rational functions. Doing that would again be
interesting, and would require implementation of fast algorithms for
power series -- I don't know how good Sage is at that yet.
There is a lot to do here -- how long have you got?! I am planning an
application to have an undergraduate student work on something for 6
weeks in the summer, and I had thought of doing some of these things,
so I would like to keep up with what you and others might be planning.
John
2009/1/24 Dan Shumow <shu...@gmail.com>:
> Hello Dr Cremona,
>
> I am a MS Student at the University of Washington. Presently, I am
> working on a Master's Thesis on Computing Isogenies of Elliptic Curves
> over finite fields. I was planning on writing up examples of Velu's
> formula, as well as some pairing stuff in Sage. However, it has
> recently come to my attention that this isn't supported in Sage, so I
> was thinking I would implement this as part of my thesis.
>
> So I would like to be involved in this:
>> Or we could also have a version for the phi-Weil pairing where phi is
>> an isogeny, and P and Q are on different though phi-isogenous curves.
>> I suspect that this case should wait, given that isogenies are not at
>> all implemented in Sage yet.
>
> I am presently translating the original Velu's formula paper, and I
> will start coding in a few days. Any thoughts/suggestions about how
> to implement isogenies in Sage would be greatly appreciated.
>
> Thanks,
> Dan
Thanks for the prompt response and the suggestions. I'll start w/
Velu's formulas, and move onto David Kohel's thesis. I am very
interested in the third point about the cryptographic application. I
hadn't heard of that result, could you please send a pointer, or the
title? Although, I know somewhat about the random walks on isogeny
graph algorithms for the similar sort of thing (I used to work at MSR
and had some exposure to R. Venkatesan.)
In general, my main interest in isogenies is their application to
cryptography (Koblitz is my thesis adviser.)
I am less interested in isogenies of ECs over number fields, although
it was my impression that Velu's formulas work over any field
(although, like I said, I haven't finished translating / reading the
paper yet, so if I am wrong about this, please set me straight.) My
thinking was to write the general case code. Then investigate
formulas for the specific cases (like David Kohel's thesis) I will
look for your formulas. If I can't find that, I'll let you know.
I am interested in implementing a general phi-Weil pairing, that takes
an isogeny object, and I had been kicking around this idea in my own
head, you mentioning that it is a good thing to have has motiviated me
to try to include that as well.
As for the time frame. I want to be done w/ my thesis in June.
However, as you stated, there is plenty of work to be done here. And
I, of course, would continue to be involved (although depending on
what work I am doing at the time I don't know what sort of development
I can do in the summer.)
Thanks,
Dan