| Bill Allombert on Thu, 28 May 2020 14:35:44 +0200 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| Re: CONSTRUCTING ELLIPTIC CURVES OF PRESCRIBED ORDER |
On Thu, May 28, 2020 at 01:41:04PM +0200, Michael Hortmann wrote:
> https://openaccess.leidenuniv.nl/bitstream/handle/1887/4425/Thesis.pdf
> https://www.win.tue.nl/diamant/symposium05/abstracts/broeker.pdf
> https://link.springer.com/chapter/10.1007/978-3-540-24847-7_8
>
> No CM.
At least this algorithm
https://www.win.tue.nl/diamant/symposium05/abstracts/broeker.pdf
use CM heavily.
However this is very easy to implement in GP:
findDP(N)=
{
my(F=[4*N,factor(4*N)]);
for(d=5,oo,my(D=-d);
V=qfbsolve(Qfb(1,0,-D),F,1);
if(V,
for(i=1,#V,
my(p=N+1-V[i][1]);
if(ispseudoprime(p),return([D,p])))));
}
findE(N)=
{
my([D,p]=findDP(N));
my(j=polrootsmod(polclass(D),p)[1]);
my(E=ellinit(ellfromj(j)));
if(ellcard(E)!=N,E=ellinit(elltwist(E)));
E;
}
? findDP(10^1000+453)
%4 =
[-2643,10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000084580564865659365122376528413332645532152171127546438119158218509746454894047502311475921435925593395788663825537350510530446716403741222340985964099742528845624992705649011211562977747791787795828408878166796544029225171287772986659453369047576935911760465854704590139939913782088978690725584432808323194356221767413951670691765171583388575651408252249668909097564489522144887781732134899389587753697361876577100306912030685148084979302637035928995834607369105121944422262464187611018973884015439291]
? E = findE(10^100+267);
? ellcard(E)
%14 =
10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000267
(for large N, you do not want to use ellcard, there are faster way to
pick between E and its twist)
Cheers,
Bill.