Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
On the evaluation of modular polynomials
Andrew V. SutherlandMassachusetts Institute of Technology
ECC 2012
http://arxiv.org/abs/1202.3985http://arxiv.org/abs/1208.5370
1 / 34
A brief journey through space-time...
2 / 34
Space and time
In a universe with n dimensions, the amount of data that can bestored within a distance r of the CPU is O(rn).
An algorithm with space complexity S is at an average distanceΩ(S1/n) from its data. The speed of light is bounded by a constant,thus the time to read or write a bit located at a distance r is Ω(r).
Conclusion: space complexity S =⇒ time complexity Ω(S1+1/n).
The RAM model permits algorithms with quasi-linear space and timecomplexity, but these complexities cannot be realized in practice.
If we are given an algorithm whose theoretical space and timecomplexity are quasi-linear, reducing the space complexity will speedup the real-world running time of the algorithm, often dramatically.
3 / 34
Space and time
In a universe with n dimensions, the amount of data that can bestored within a distance r of the CPU is O(rn).
An algorithm with space complexity S is at an average distanceΩ(S1/n) from its data. The speed of light is bounded by a constant,thus the time to read or write a bit located at a distance r is Ω(r).
Conclusion: space complexity S =⇒ time complexity Ω(S1+1/n).
The RAM model permits algorithms with quasi-linear space and timecomplexity, but these complexities cannot be realized in practice.
If we are given an algorithm whose theoretical space and timecomplexity are quasi-linear, reducing the space complexity will speedup the real-world running time of the algorithm, often dramatically.
3 / 34
Isogenies of elliptic curves
An elliptic curve E/k is a smooth projective curve of genus 1 witha distinguished k-rational point 0.
An isogeny φ : E1 → E2 is a morphism of elliptic curves,a rational map that fixes the point 0. We shall assume φ 6= 0.
The induced homomorphism φ : E1(k)→ E2(k) has a finite kernel.Conversely, every finite subgroup of E1(k) is the kernel of an isogeny.
The degree of an isogeny is its degree as a rational map.For nonzero separable isogenies, degφ = | kerφ|.
We are primarily interested in isogenies of prime degree ` 6= char k,which are necessarily separable isogenies with cyclic kernels.
4 / 34
-invariants
The k-isomorphism classes of elliptic curves E/k are in bijectionwith the field k. For E : y2 = x3 + Ax + B, the -invariant of E is
(E) = (A,B) = 17284A3
4A3 + 27B2 ∈ k.
The -invariants (0,B) = 0 and (A, 0) = 1728 are special.They correspond to elliptic curves with extra automorphisms.
For j 6∈ 0, 1728, we have j = (A,B), where
A = 3j(1728− j) and B = 2j(1728− j)2.
Note that (E1) = (E2) does not necessarily imply that E1 and E2are isomorphic over k, only that they are isomorphic over k.
5 / 34
The modular equation
Let : H→ C be the classical modular function.
For any τ ∈ H, the values (τ) and (`τ) are the -invariants ofelliptic curves Eτ/C and E`τ/C that are `-isogenous.
The minimal polynomial Φ`(Y) of the function (`z) over C(j)has coefficients that are integer polynomials in (z).
Replacing (z) with X yields the modular polynomial Φ` ∈ Z[X,Y]that parameterizes pairs of `-isogenous elliptic curves E/C:
Φ`((E1), (E2)
)= 0 ⇐⇒ (E1) and (E2) are `-isogenous.
This moduli interpretation remains valid over any field whosecharacteristic is not equal to `.
Φ`(X, Y) = 0 is a defining equation for the affine modular curve Y0(`) = Γ0(`)\H.6 / 34
Isogenies make hard problems easier
Isogenies play a key role in many applications:
I The Schoof-Elkies-Atkin (SEA) point-counting algorithm.
I Computing the endomorphism ring of an elliptic curve.
I The elliptic curve discrete logarithm problem (?).
I Computing Hilbert class polynomials HD(X).
I Computing modular polynomials.
Modular polynomials Φ`(X,Y) are used in all of these applications.
Given an elliptic curve E/F, the roots of the univariate polynomial
φ`(Y) = Φ`((E),Y) ∈ F[Y]
that lie in F are precisely the -invariants of the elliptic curves E/Fthat are `-isogenous to E.
7 / 34
Isogenies make hard problems easier
Isogenies play a key role in many applications:
I The Schoof-Elkies-Atkin (SEA) point-counting algorithm.
I Computing the endomorphism ring of an elliptic curve.
I The elliptic curve discrete logarithm problem (?).
I Computing Hilbert class polynomials HD(X).
I Computing modular polynomials.
Modular polynomials Φ`(X,Y) are used in all of these applications.
Given an elliptic curve E/F, the roots of the univariate polynomial
φ`(Y) = Φ`((E),Y) ∈ F[Y]
that lie in F are precisely the -invariants of the elliptic curves E/Fthat are `-isogenous to E.
7 / 34
Modular polynomials are very large. . .
Φ` ∈ Z[X,Y] is symmetric, with degree `+ 1 in both X and Y.Asymptotically, its size is O(`3 log `) bits.
` coefficients largest average total
127 8258 7.5kb 5.3kb 5.5MB251 31880 16kb 12kb 48MB503 127262 36kb 27kb 431MB1009 510557 78kb 60kb 3.9GB2003 2009012 166kb 132kb 33GB3001 4507505 259kb 208kb 117GB4001 8010005 356kb 287kb 287GB5003 12522512 454kb 369kb 577GB10007 50085038 968kb 774kb 4.8TB
Size of Φ`(X, Y)
8 / 34
. . . but instantiated modular polynomials are not.
For an elliptic curve E over a finite field Fq, the size of theinstantiated polynomial φ`(Y) = Φ`((E),Y) is only O(` log q) bits.
Even if q is quite large, say 4096 bits, for ` = 10007 the size of φ`(Y)is just 5MB, which is almost a million times smaller than Φ`(X,Y).
A quote from the former elliptic curve point-counting world recordholder (at 2500 decimal digits):
“Despite this progress, computing modular polynomials remains thestumbling block for new point counting records. Clearly, to circumventthe memory problems, one would need an algorithm that directlyobtains the polynomial specialised in one variable.”
INRIA Project TANC, 2007
9 / 34
. . . but instantiated modular polynomials are not.
For an elliptic curve E over a finite field Fq, the size of theinstantiated polynomial φ`(Y) = Φ`((E),Y) is only O(` log q) bits.
Even if q is quite large, say 4096 bits, for ` = 10007 the size of φ`(Y)is just 5MB, which is almost a million times smaller than Φ`(X,Y).
A quote from the former elliptic curve point-counting world recordholder (at 2500 decimal digits):
“Despite this progress, computing modular polynomials remains thestumbling block for new point counting records. Clearly, to circumventthe memory problems, one would need an algorithm that directlyobtains the polynomial specialised in one variable.”
INRIA Project TANC, 2007
9 / 34
ResultsLet E/Fq be an elliptic curve and let ` < q be a prime (` 6= char Fq).
TheoremUnder the generalized Riemann hypothesis (GRH), one can computethe instantiated modular polynomial Φ`((E),Y) using O(` log q) spacein time quasi-linear in the size of Φ` (quasi-cubic in `).
Applying this to SEA, we can compute #E(Fq) in O(n4) time andO(n2 log n) space (n = log q), under standard heuristic assumptions.Previously, the SEA algorithm required Ω(n3 log n) space (or Ω(n4) ifprecomputed modular polynomials are used).
This has led to a new elliptic curve point-counting record modulo a5011-digit prime (and improvements in the range of practical interest).
The new results also yield improved space complexity bounds (andbetter performance) for many other algorithms that use isogenies.
10 / 34
ResultsLet E/Fq be an elliptic curve and let ` < q be a prime (` 6= char Fq).
TheoremUnder the generalized Riemann hypothesis (GRH), one can computethe instantiated modular polynomial Φ`((E),Y) using O(` log q) spacein time quasi-linear in the size of Φ` (quasi-cubic in `).
Applying this to SEA, we can compute #E(Fq) in O(n4) time andO(n2 log n) space (n = log q), under standard heuristic assumptions.Previously, the SEA algorithm required Ω(n3 log n) space (or Ω(n4) ifprecomputed modular polynomials are used).
This has led to a new elliptic curve point-counting record modulo a5011-digit prime (and improvements in the range of practical interest).
The new results also yield improved space complexity bounds (andbetter performance) for many other algorithms that use isogenies.
10 / 34
A volcano
11 / 34
A volcano
12 / 34
`-volcanoes
For a prime `, an `-volcano is a connected undirected graph whosevertices are partitioned into levels V0, . . . ,Vd such that:
1. The subgraph on V0 (the surface) is a connected regular graphof degree 0, 1, or 2.
2. For i > 0, each v ∈ Vi has exactly one neighbor in Vi−1.All edges not on the surface arise in this manner.
3. For i < d, each v ∈ Vi has degree `+1.
We allow self-loops and multi-edges, but this can happen only on the surface.13 / 34
A 3-volcano of depth 2
14 / 34
The graph of `-isogenies
DefinitionThe `-isogeny graph G`(k) has vertex set (E) : E/k = kand edges (j1, j2) for each root j2 ∈ k of Φ`(j1,Y) (with multiplicity).
Except for j ∈ 0, 1728, the in-degree of each vertex of G`is equal to its out-degree.
Thus G` is a bi-directed graph on k\0, 1728, which we mayregard as an undirected graph.
It consists of ordinary and supersingular components.
We have an infinite family of graphs G`(k) with vertex set k,one for each prime ` 6= char(k).
An elliptic curve E over a field of characteristic p > 0 is supersingular iff E[p] = 0.15 / 34
Endomorphism rings
Isogenies from an elliptic curve E to itself are endomorphisms.They form a ring End(E) under composition and point addition.
We always have Z ⊆ End(E), due to scalar multiplication maps.If Z ( End(E), then E has complex multiplication (CM).
For an elliptic curve E with complex multiplication:
End(E) '
order in an imaginary quadratic field (ordinary),order in a quaternion algebra (supersingular).
In characteristic p > 0, every elliptic curve has CM, since the p-powerFrobenius endomorphism (x, y) 7→ (xp, yp) does not lie in Z.
16 / 34
Horizontal and vertical isogenies
Let ϕ : E1 → E2 by an `-isogeny of ordinary elliptic curves with CM.Let End(E1) ' O1 = [1, τ1] and End(E2) ' O2 = [1, τ2].
Then `τ2 ∈ O1 and `τ1 ∈ O2.
Thus one of the following holds:
I O1 = O2, in which case ϕ is horizontal;
I [O1 : O2] = `, in which case ϕ is descending;
I [O2 : O1] = `, in which case ϕ is ascending.
In the latter two cases we say that ϕ is a vertical isogeny.
17 / 34
The theory of complex multiplication
Let E/k have CM by an imaginary quadratic order O.
For each invertible O-ideal a, the a-torsion subgroup
E[a] = P ∈ E(k) : α(P) = 0 for all α ∈ a
is the kernel of an isogeny ϕa : E → E′ of degree N(a) = [O : a].We necessarily have End(E) ' End(E′), so ϕa is horizontal.
If a is principal, then E′ ' E. This induces a cl(O)-action on the set
EllO(k) = (E) : E/k with End(E) ' O.
This action is faithful and transitive; thus EllO(k) is a principalhomogeneous space, a torsor, for cl(O).
One can decompose horizontal isogenies of large prime degree into an equivalentsequence of isogenies of small prime degrees, which makes them easy to compute;see [Broker-Charles-Lauter 2008, Jao-Souhkarev ANTS IX].
18 / 34
Isogeny volcanoes
Theorem (Kohel)Let V be an ordinary connected component of G`(Fq) that does not
contain 0, 1728. Then V is an `-volcano in which the following hold:
(i) Vertices in level Vi all have the same endomorphism ring Oi.
(ii) ` - [OK : O0], and [Oi : Oi+1] = `.
(iii) The subgraph on V0 has degree 1 + ( D` ), where D = disc(O0).
(iv) If ( D` ) ≥ 0 then |V0| is the order of [l] in cl(O0).
(v) The depth of V is ord`(v), where 4q = t2 − v2D.
The term volcano is due to Fouquet and Morain (ANTS V).See http://arxiv.org/abs/1208.5370 for more on isogeny volcanoes.
19 / 34
Modular polynomials via isogeny volcanoes [BLS]
Given an odd prime `, we may compute Φ`(X,Y) as follows:
1. Select a sufficiently large set of primes of the form4p = t2 − `2v2D with ` - v, p ≡ 1 mod `, and h(D) > `+ 1.
2. For each prime p, compute Φ`(X,Y) mod p as follows:a. Compute EllO(Fp) using HD(X) mod p.b. Map the `-volcanoes intersecting EllO(Fp) (without using Φ`).c. Interpolate Φ`(X,Y) mod p.
3. Use the CRT to recover Φ` over Z (or mod q via the explicit CRT).
Under the GRH, the expected running time is O(`3 log3+ε `) usingO(`3 log `) space (or O(`2 log q) space to compute Φ` mod q).
We can similarly compute modular polynomials for other modular functions.One can also use a CRT approach to compute ΦN for composite N [Ono-S in prog].
20 / 34
Explicit Chinese Remainder Theorem
Suppose c ≡ ci mod pi for k distinct primes pi. Then
c ≡∑
ciaiMi mod M,
where M =∏
pi, Mi = M/pi and ai = 1/Mi mod pi.If M > 2|c|, we can recover c ∈ Z.
With M > 4|c|, the explicit CRT computes c mod q directly via
c =(∑
ciaiMi − rM)
mod q,
where r = rnd(∑
aici/pi) is computed using O(log k) bits of precision.
Using an online algorithm, this can be applied to N coefficients c inparallel, using O(log M + k log q + N(log q + log k)) ≈ O(N log q) space.
Montgomery-Silverman 1990, Bernstein 1995, S 2011.21 / 34
Mapping a volcano
Example General requirements` = 5, p = 4451, D = −151 4p = t2 − v2`2D, p ≡ 1 mod `t = 52, v = 2, h(D) = 7 ` - v, ( D
`) = 1, h(D) ≥ `+ 2
`0 = 2, α5 = α32, β25 = β7
2 `0 6= `, ( D`0
) = 1, α` = αk`0, β`2 = βk′
`0
901901901901351351 22152215
25012501
2872287215821582701701
318831883188 2970 1478 33283188 2970 1478 3328 3508 2464 2976 25663508 2464 2976 2566 334118682434676 334118682434676 3147225511803144 3147222511803144
fourblanklineslineslines
22 / 34
Mapping a volcano
Example General requirements` = 5, p = 4451, D = −151 4p = t2 − v2`2D, p ≡ 1 mod `
t = 52, v = 2, h(D) = 7 ` - v, ( D`
) = 1, h(D) ≥ `+ 2
`0 = 2, α5 = α32, β25 = β7
2 `0 6= `, ( D`0
) = 1, α` = αk`0, β`2 = βk′
`0
901901901901351351 22152215
25012501
2872287215821582701701
318831883188 2970 1478 33283188 2970 1478 3328 3508 2464 2976 25663508 2464 2976 2566 334118682434676 334118682434676 3147225511803144 3147222511803144
fourblanklineslineslines
22 / 34
Mapping a volcano
Example General requirements` = 5, p = 4451, D = −151 4p = t2 − v2`2D, p ≡ 1 mod `t = 52, v = 2, h(D) = 7 ` - v, ( D
`) = 1, h(D) ≥ `+ 2
`0 = 2, α5 = α32, β25 = β7
2 `0 6= `, ( D`0
) = 1, α` = αk`0, β`2 = βk′
`0
901901901901351351 22152215
25012501
2872287215821582701701
318831883188 2970 1478 33283188 2970 1478 3328 3508 2464 2976 25663508 2464 2976 2566 334118682434676 334118682434676 3147225511803144 3147222511803144
fourblanklineslineslines
22 / 34
Mapping a volcano
Example General requirements` = 5, p = 4451, D = −151 4p = t2 − v2`2D, p ≡ 1 mod `t = 52, v = 2, h(D) = 7 ` - v, ( D
`) = 1, h(D) ≥ `+ 2
`0 = 2, α5 = α32, β25 = β7
2 `0 6= `, ( D`0
) = 1, α` = αk`0, β`2 = βk′
`0
901901901901351351 22152215
25012501
2872287215821582701701
318831883188 2970 1478 33283188 2970 1478 3328 3508 2464 2976 25663508 2464 2976 2566 334118682434676 334118682434676 3147225511803144 3147222511803144
1. Find a root of HD(X)
blanklineslineslines
22 / 34
Mapping a volcano
Example General requirements` = 5, p = 4451, D = −151 4p = t2 − v2`2D, p ≡ 1 mod `t = 52, v = 2, h(D) = 7 ` - v, ( D
`) = 1, h(D) ≥ `+ 2
`0 = 2, α5 = α32, β25 = β7
2 `0 6= `, ( D`0
) = 1, α` = αk`0, β`2 = βk′
`0
901
901901901351351 22152215
25012501
2872287215821582701701
318831883188 2970 1478 33283188 2970 1478 3328 3508 2464 2976 25663508 2464 2976 2566 334118682434676 334118682434676 3147225511803144 3147222511803144
1. Find a root of HD(X): 901
blanklineslineslines
22 / 34
Mapping a volcano
Example General requirements` = 5, p = 4451, D = −151 4p = t2 − v2`2D, p ≡ 1 mod `t = 52, v = 2, h(D) = 7 ` - v, ( D
`) = 1, h(D) ≥ `+ 2
`0 = 2
, α5 = α32, β25 = β7
2
`0 6= `, ( D`0
) = 1
, α` = αk`0, β`2 = βk′
`0
901
901
901901351351 22152215
25012501
2872287215821582701701
318831883188 2970 1478 33283188 2970 1478 3328 3508 2464 2976 25663508 2464 2976 2566 334118682434676 334118682434676 3147225511803144 3147222511803144
2. Enumerate surface using the action of α`0
blanklineslineslines
22 / 34
Mapping a volcano
Example General requirements` = 5, p = 4451, D = −151 4p = t2 − v2`2D, p ≡ 1 mod `t = 52, v = 2, h(D) = 7 ` - v, ( D
`) = 1, h(D) ≥ `+ 2
`0 = 2, α5 = α32
, β25 = β72
`0 6= `, ( D`0
) = 1, α` = αk`0
β`2 = βk′`0
901901
901
901351351 22152215
25012501
2872287215821582701701
318831883188 2970 1478 33283188 2970 1478 3328 3508 2464 2976 25663508 2464 2976 2566 334118682434676 334118682434676 3147225511803144 3147222511803144
2. Enumerate surface using the action of α`0
901
9
2−→ 1582 2−→ 2501 2−→ 351
9
2−→ 701
9
2−→ 2872 2−→ 2215 2−→
lineslineslines
22 / 34
Mapping a volcano
Example General requirements` = 5, p = 4451, D = −151 4p = t2 − v2`2D, p ≡ 1 mod `t = 52, v = 2, h(D) = 7 ` - v, ( D
`) = 1, h(D) ≥ `+ 2
`0 = 2, α5 = α32
, β25 = β72
`0 6= `, ( D`0
) = 1, α` = αk`0
β`2 = βk′`0
901901901
901351
351 2215221525012501
2872287215821582701701
318831883188 2970 1478 33283188 2970 1478 3328 3508 2464 2976 25663508 2464 2976 2566 334118682434676 334118682434676 3147225511803144 3147222511803144
2. Enumerate surface using the action of α`0
901
9
2−→ 1582 2−→ 2501 2−→ 351
9
2−→ 701
9
2−→ 2872 2−→ 2215 2−→
lineslineslines
22 / 34
Mapping a volcano
Example General requirements` = 5, p = 4451, D = −151 4p = t2 − v2`2D, p ≡ 1 mod `t = 52, v = 2, h(D) = 7 ` - v, ( D
`) = 1, h(D) ≥ `+ 2
`0 = 2, α5 = α32
, β25 = β72
`0 6= `, ( D`0
) = 1, α` = αk`0
β`2 = βk′`0
901901901
901
351
351 2215
221525012501
2872287215821582701701
318831883188 2970 1478 33283188 2970 1478 3328 3508 2464 2976 25663508 2464 2976 2566 334118682434676 334118682434676 3147225511803144 3147222511803144
2. Enumerate surface using the action of α`0
901
9
2−→ 1582 2−→ 2501 2−→ 351
9
2−→ 701
9
2−→ 2872 2−→ 2215 2−→
lineslineslines
22 / 34
Mapping a volcano
Example General requirements` = 5, p = 4451, D = −151 4p = t2 − v2`2D, p ≡ 1 mod `t = 52, v = 2, h(D) = 7 ` - v, ( D
`) = 1, h(D) ≥ `+ 2
`0 = 2, α5 = α32
, β25 = β72
`0 6= `, ( D`0
) = 1, α` = αk`0
β`2 = βk′`0
901901901
901
351
351
2215
22152501
2501
2872287215821582701701
318831883188 2970 1478 33283188 2970 1478 3328 3508 2464 2976 25663508 2464 2976 2566 334118682434676 334118682434676 3147225511803144 3147222511803144
2. Enumerate surface using the action of α`0
901
9
2−→ 1582 2−→ 2501 2−→ 351
9
2−→ 701
9
2−→ 2872 2−→ 2215 2−→
lineslineslines
22 / 34
Mapping a volcano
Example General requirements` = 5, p = 4451, D = −151 4p = t2 − v2`2D, p ≡ 1 mod `t = 52, v = 2, h(D) = 7 ` - v, ( D
`) = 1, h(D) ≥ `+ 2
`0 = 2, α5 = α32
, β25 = β72
`0 6= `, ( D`0
) = 1, α` = αk`0
β`2 = βk′`0
901901901
901
351
351
2215
2215
2501
2501
2872
287215821582701701
318831883188 2970 1478 33283188 2970 1478 3328 3508 2464 2976 25663508 2464 2976 2566 334118682434676 334118682434676 3147225511803144 3147222511803144
2. Enumerate surface using the action of α`0
901
9
2−→ 1582 2−→ 2501 2−→ 351
9
2−→ 701
9
2−→ 2872 2−→ 2215 2−→
lineslineslines
22 / 34
Mapping a volcano
Example General requirements` = 5, p = 4451, D = −151 4p = t2 − v2`2D, p ≡ 1 mod `t = 52, v = 2, h(D) = 7 ` - v, ( D
`) = 1, h(D) ≥ `+ 2
`0 = 2, α5 = α32
, β25 = β72
`0 6= `, ( D`0
) = 1, α` = αk`0
β`2 = βk′`0
901901901
901
351
351
2215
2215
2501
2501
2872
28721582
1582701701
318831883188 2970 1478 33283188 2970 1478 3328 3508 2464 2976 25663508 2464 2976 2566 334118682434676 334118682434676 3147225511803144 3147222511803144
2. Enumerate surface using the action of α`0
901
9
2−→ 1582 2−→ 2501 2−→ 351
9
2−→ 701
9
2−→ 2872 2−→ 2215 2−→
lineslineslines
22 / 34
Mapping a volcano
Example General requirements` = 5, p = 4451, D = −151 4p = t2 − v2`2D, p ≡ 1 mod `t = 52, v = 2, h(D) = 7 ` - v, ( D
`) = 1, h(D) ≥ `+ 2
`0 = 2, α5 = α32
, β25 = β72
`0 6= `, ( D`0
) = 1, α` = αk`0
β`2 = βk′`0
901901901
901
351
351
2215
2215
2501
2501
2872
2872
1582
1582701
701
318831883188 2970 1478 33283188 2970 1478 3328 3508 2464 2976 25663508 2464 2976 2566 334118682434676 334118682434676 3147225511803144 3147222511803144
2. Enumerate surface using the action of α`0
901
9
2−→ 1582 2−→ 2501 2−→ 351
9
2−→ 701
9
2−→ 2872 2−→ 2215 2−→
lineslineslines
22 / 34
Mapping a volcano
Example General requirements` = 5, p = 4451, D = −151 4p = t2 − v2`2D, p ≡ 1 mod `t = 52, v = 2, h(D) = 7 ` - v, ( D
`) = 1, h(D) ≥ `+ 2
`0 = 2, α5 = α32
, β25 = β72
`0 6= `, ( D`0
) = 1, α` = αk`0
β`2 = βk′`0
901901901
901
351
351
2215
2215
2501
2501
2872
2872
1582
1582
701
701
318831883188 2970 1478 33283188 2970 1478 3328 3508 2464 2976 25663508 2464 2976 2566 334118682434676 334118682434676 3147225511803144 3147222511803144
3. Descend to the floor using Velu’s formula
blanklineslineslines
22 / 34
Mapping a volcano
Example General requirements` = 5, p = 4451, D = −151 4p = t2 − v2`2D, p ≡ 1 mod `t = 52, v = 2, h(D) = 7 ` - v, ( D
`) = 1, h(D) ≥ `+ 2
`0 = 2, α5 = α32
, β25 = β72
`0 6= `, ( D`0
) = 1, α` = αk`0
β`2 = βk′`0
901901901
901
351
351
2215
2215
2501
2501
2872
2872
1582
1582
701
701
3188
31883188 2970 1478 33283188 2970 1478 3328 3508 2464 2976 25663508 2464 2976 2566 334118682434676 334118682434676 3147225511803144 3147222511803144
3. Descend to the floor using Velu’s formula: 901 5−→ 3188
blanklineslineslines
22 / 34
Mapping a volcano
Example General requirements` = 5, p = 4451, D = −151 4p = t2 − v2`2D, p ≡ 1 mod `t = 52, v = 2, h(D) = 7 ` - v, ( D
`) = 1, h(D) ≥ `+ 2
`0 = 2, α5 = α32
, β25 = β72
`0 6= `, ( D`0
) = 1, α` = αk`0
β`2 = βk′`0
901901901
901
351
351
2215
2215
2501
2501
2872
2872
1582
1582
701
701
3188
3188
3188 2970 1478 33283188 2970 1478 3328 3508 2464 2976 25663508 2464 2976 2566 334118682434676 334118682434676 3147225511803144 3147222511803144
4. Enumerate floor using the action of β`0
blanklineslineslines
22 / 34
Mapping a volcano
Example General requirements` = 5, p = 4451, D = −151 4p = t2 − v2`2D, p ≡ 1 mod `t = 52, v = 2, h(D) = 7 ` - v, ( D
`) = 1, h(D) ≥ `+ 2
`0 = 2, α5 = α32, β25 = β7
2 `0 6= `, ( D`0
) = 1, α` = αk`0, β`2 = βk′
`0
901901901
901
351
351
2215
2215
2501
2501
2872
2872
1582
1582
701
701
3188
3188
3188 2970 1478 33283188 2970 1478 3328 3508 2464 2976 25663508 2464 2976 2566 334118682434676 334118682434676 3147225511803144 3147222511803144
4. Enumerate floor using the action of β`0
3188 2−→ 945
9
2−→ 3144 2−→ 3508 2−→ 2843 2−→ 1502 2−→ 676
9
2−→2970 2−→ 3497 2−→ 1180 2−→ 2464 2−→ 4221 2−→ 4228 2−→ 2434 2−→1478 2−→ 3244 2−→ 2255 2−→ 2976 2−→ 3345 2−→ 1064 2−→ 1868 2−→3328 2−→ 291
9
2−→ 3147 2−→ 2566 2−→ 4397 2−→ 2087 2−→ 3341 2−→
22 / 34
Mapping a volcano
Example General requirements` = 5, p = 4451, D = −151 4p = t2 − v2`2D, p ≡ 1 mod `t = 52, v = 2, h(D) = 7 ` - v, ( D
`) = 1, h(D) ≥ `+ 2
`0 = 2, α5 = α32, β25 = β7
2 `0 6= `, ( D`0
) = 1, α` = αk`0, β`2 = βk′
`0
901901901
901
351
351
2215
2215
2501
2501
2872
2872
1582
1582
701
701
31883188
3188 2970 1478 3328
3188 2970 1478 3328 3508 2464 2976 25663508 2464 2976 2566 334118682434676 334118682434676 3147225511803144 3147222511803144
4. Enumerate floor using the action of β`0
3188 2−→ 945
9
2−→ 3144 2−→ 3508 2−→ 2843 2−→ 1502 2−→ 676
9
2−→2970 2−→ 3497 2−→ 1180 2−→ 2464 2−→ 4221 2−→ 4228 2−→ 2434 2−→1478 2−→ 3244 2−→ 2255 2−→ 2976 2−→ 3345 2−→ 1064 2−→ 1868 2−→3328 2−→ 291
9
2−→ 3147 2−→ 2566 2−→ 4397 2−→ 2087 2−→ 3341 2−→
22 / 34
Mapping a volcano
Example General requirements` = 5, p = 4451, D = −151 4p = t2 − v2`2D, p ≡ 1 mod `t = 52, v = 2, h(D) = 7 ` - v, ( D
`) = 1, h(D) ≥ `+ 2
`0 = 2, α5 = α32, β25 = β7
2 `0 6= `, ( D`0
) = 1, α` = αk`0, β`2 = βk′
`0
901901901
901
351
351
2215
2215
2501
2501
2872
2872
1582
1582
701
701
318831883188 2970 1478 3328
3188 2970 1478 3328 3508 2464 2976 2566
3508 2464 2976 2566 334118682434676 334118682434676 3147225511803144 3147222511803144
4. Enumerate floor using the action of β`0
3188 2−→ 945
9
2−→ 3144 2−→ 3508 2−→ 2843 2−→ 1502 2−→ 676
9
2−→2970 2−→ 3497 2−→ 1180 2−→ 2464 2−→ 4221 2−→ 4228 2−→ 2434 2−→1478 2−→ 3244 2−→ 2255 2−→ 2976 2−→ 3345 2−→ 1064 2−→ 1868 2−→3328 2−→ 291
9
2−→ 3147 2−→ 2566 2−→ 4397 2−→ 2087 2−→ 3341 2−→
22 / 34
Mapping a volcano
Example General requirements` = 5, p = 4451, D = −151 4p = t2 − v2`2D, p ≡ 1 mod `t = 52, v = 2, h(D) = 7 ` - v, ( D
`) = 1, h(D) ≥ `+ 2
`0 = 2, α5 = α32, β25 = β7
2 `0 6= `, ( D`0
) = 1, α` = αk`0, β`2 = βk′
`0
901901901
901
351
351
2215
2215
2501
2501
2872
2872
1582
1582
701
701
318831883188 2970 1478 3328
3188 2970 1478 3328
3508 2464 2976 2566
3508 2464 2976 2566 334118682434676
334118682434676 3147225511803144 3147222511803144
4. Enumerate floor using the action of β`0
3188 2−→ 945
9
2−→ 3144 2−→ 3508 2−→ 2843 2−→ 1502 2−→ 676
9
2−→2970 2−→ 3497 2−→ 1180 2−→ 2464 2−→ 4221 2−→ 4228 2−→ 2434 2−→1478 2−→ 3244 2−→ 2255 2−→ 2976 2−→ 3345 2−→ 1064 2−→ 1868 2−→3328 2−→ 291
9
2−→ 3147 2−→ 2566 2−→ 4397 2−→ 2087 2−→ 3341 2−→
22 / 34
Mapping a volcano
Example General requirements` = 5, p = 4451, D = −151 4p = t2 − v2`2D, p ≡ 1 mod `t = 52, v = 2, h(D) = 7 ` - v, ( D
`) = 1, h(D) ≥ `+ 2
`0 = 2, α5 = α32, β25 = β7
2 `0 6= `, ( D`0
) = 1, α` = αk`0, β`2 = βk′
`0
901901901
901
351
351
2215
2215
2501
2501
2872
2872
1582
1582
701
701
318831883188 2970 1478 3328
3188 2970 1478 3328
3508 2464 2976 2566
3508 2464 2976 2566
334118682434676
334118682434676 3147225511803144
3147222511803144
4. Enumerate floor using the action of β`0
3188 2−→ 945
9
2−→ 3144 2−→ 3508 2−→ 2843 2−→ 1502 2−→ 676
9
2−→2970 2−→ 3497 2−→ 1180 2−→ 2464 2−→ 4221 2−→ 4228 2−→ 2434 2−→1478 2−→ 3244 2−→ 2255 2−→ 2976 2−→ 3345 2−→ 1064 2−→ 1868 2−→3328 2−→ 291
9
2−→ 3147 2−→ 2566 2−→ 4397 2−→ 2087 2−→ 3341 2−→
22 / 34
Mapping a volcano
Example General requirements` = 5, p = 4451, D = −151 4p = t2 − v2`2D, p ≡ 1 mod `t = 52, v = 2, h(D) = 7 ` - v, ( D
`) = 1, h(D) ≥ `+ 2
`0 = 2, α5 = α32, β25 = β7
2 `0 6= `, ( D`0
) = 1, α` = αk`0, β`2 = βk′
`0
901901901
901
351
351
2215
2215
2501
2501
2872
2872
1582
1582
701
701
318831883188 2970 1478 3328
3188 2970 1478 3328
3508 2464 2976 2566
3508 2464 2976 2566
334118682434676
334118682434676
3147225511803144
3147222511803144
4. Enumerate floor using the action of β`0
3188 2−→ 945
9
2−→ 3144 2−→ 3508 2−→ 2843 2−→ 1502 2−→ 676
9
2−→2970 2−→ 3497 2−→ 1180 2−→ 2464 2−→ 4221 2−→ 4228 2−→ 2434 2−→1478 2−→ 3244 2−→ 2255 2−→ 2976 2−→ 3345 2−→ 1064 2−→ 1868 2−→3328 2−→ 291
9
2−→ 3147 2−→ 2566 2−→ 4397 2−→ 2087 2−→ 3341 2−→
22 / 34
Mapping a volcano
Example General requirements` = 5, p = 4451, D = −151 4p = t2 − v2`2D, p ≡ 1 mod `t = 52, v = 2, h(D) = 7 ` - v, ( D
`) = 1, h(D) ≥ `+ 2
`0 = 2, α5 = α32, β25 = β7
2 `0 6= `, ( D`0
) = 1, α` = αk`0, β`2 = βk′
`0
901901901
901
351
351
2215
2215
2501
2501
2872
2872
1582
1582
701
701
318831883188 2970 1478 3328
3188 2970 1478 3328
3508 2464 2976 2566
3508 2464 2976 2566
334118682434676
334118682434676
3147225511803144
3147222511803144
4. Enumerate floor using the action of β`0
3188 2−→ 945
9
2−→ 3144 2−→ 3508 2−→ 2843 2−→ 1502 2−→ 676
9
2−→2970 2−→ 3497 2−→ 1180 2−→ 2464 2−→ 4221 2−→ 4228 2−→ 2434 2−→1478 2−→ 3244 2−→ 2255 2−→ 2976 2−→ 3345 2−→ 1064 2−→ 1868 2−→3328 2−→ 291
9
2−→ 3147 2−→ 2566 2−→ 4397 2−→ 2087 2−→ 3341 2−→
22 / 34
Mapping a volcano
Example General requirements` = 5, p = 4451, D = −151 4p = t2 − v2`2D, p ≡ 1 mod `t = 52, v = 2, h(D) = 7 ` - v, ( D
`) = 1, h(D) ≥ `+ 2
`0 = 2, α5 = α32, β25 = β7
2 `0 6= `, ( D`0
) = 1, α` = αk`0, β`2 = βk′
`0
901901901
901
351
351
2215
2215
2501
2501
2872
2872
1582
1582
701
701
318831883188 2970 1478 3328
3188 2970 1478 3328
3508 2464 2976 2566
3508 2464 2976 2566
334118682434676
334118682434676
3147225511803144
3147222511803144
4. Enumerate floor using the action of β`0
3188 2−→ 945
9
2−→ 3144 2−→ 3508 2−→ 2843 2−→ 1502 2−→ 676
9
2−→2970 2−→ 3497 2−→ 1180 2−→ 2464 2−→ 4221 2−→ 4228 2−→ 2434 2−→1478 2−→ 3244 2−→ 2255 2−→ 2976 2−→ 3345 2−→ 1064 2−→ 1868 2−→3328 2−→ 291
9
2−→ 3147 2−→ 2566 2−→ 4397 2−→ 2087 2−→ 3341 2−→
22 / 34
Mapping a volcano
Example General requirements` = 5, p = 4451, D = −151 4p = t2 − v2`2D, p ≡ 1 mod `t = 52, v = 2, h(D) = 7 ` - v, ( D
`) = 1, h(D) ≥ `+ 2
`0 = 2, α5 = α32, β25 = β7
2 `0 6= `, ( D`0
) = 1, α` = αk`0, β`2 = βk′
`0
901901901
901
351
351
2215
2215
2501
2501
2872
2872
1582
1582
701
701
318831883188 2970 1478 3328
3188 2970 1478 3328
3508 2464 2976 2566
3508 2464 2976 2566
334118682434676
334118682434676
3147225511803144
3147222511803144
fourblanklineslineslines
22 / 34
Interpolating Φ` mod p
901901351 2215
2501
28721582701
3188 2970 1478 3328 3508 2464 2976 2566 334118682434676 3147222511803144
Φ5(X,
9
901) = (X −
9
701)(X −
9
351)(X − 3188)(X − 2970)(X − 1478)(X − 3328)
X6
Φ5(X,
9
351) = (X −
9
901)(X − 2215)(X − 3508)(X − 2464)(X − 2976)(X − 2566)
X6
Φ5(X, 2215) = (X −
9
351)(X − 2501)(X − 3341)(X − 1868)(X − 2434)(X −
9
676)
X6
Φ5(X, 2501) = (X − 2215)(X − 2872)(X − 3147)(X − 2255)(X − 1180)(X − 3144)
X6
Φ5(X, 2872) = (X − 2501)(X − 1582)(X − 1502)(X − 4228)(X − 1064)(X − 2087)
X6
Φ5(X, 1582) = (X − 2872)(X −
9
701)(X −
9
945)(X − 3497)(X − 3244)(X −
9
291)
X6
Φ5(X,
9
701) = (X − 1582)(X −
9
901)(X − 2843)(X − 4221)(X − 3345)(X − 4397)
X6
23 / 34
Interpolating Φ` mod p
901901351 2215
2501
28721582701
3188 2970 1478 3328 3508 2464 2976 2566 334118682434676 3147222511803144
Φ5(X,
9
901) = X6 + 1337X5 +
9
543X4 +
9
497X3 + 4391X2 + 3144X + 3262Φ5(X,
9
351) = X6 + 3174X5 + 1789X4 + 3373X3 + 3972X2 + 2932X + 4019Φ5(X, 2215) = X6 + 2182X5 +
9
512X4 +
9
435X3 + 2844X2 + 2084X + 2709Φ5(X, 2501) = X6 + 2991X5 + 3075X5 + 3918X3 + 2241X2 + 3755X + 1157Φ5(X, 2872) = X6 +
9
389X5 + 3292X4 + 3909X3 +
9
161X2 + 1003X + 2091Φ5(X, 1582) = X6 + 1803X5 +
9
794X4 + 3584X3 +
9
225X2 + 1530X + 1975Φ5(X,
9
701) = X6 +
9
515X5 + 1419X4 +
9
941X3 + 4145X2 + 2722X + 2754
23 / 34
Interpolating Φ` mod p
901901351 2215
2501
28721582701
3188 2970 1478 3328 3508 2464 2976 2566 334118682434676 3147222511803144
Φ5(X,Y) = X6 + (4450Y5 + 3720Y4 + 2433Y3 + 3499Y2 +
99
70Y + 3927)X5
X6
(3720Y5 + 3683Y4 + 2348Y3 + 2808Y2 + 3745Y +
9
233)X4
X6
(2433Y5 + 2348Y4 + 2028Y3 + 2025Y2 + 4006Y + 2211)X3
X6
(3499Y5 + 2808Y4 + 2025Y3 + 4378Y2 + 3886Y + 2050)X2
X6
(
99
70Y5 + 3745Y4 + 4006Y3 + 3886Y2 +
9
905Y + 2091)X
X6
(Y6 + 3927Y5 +
9
233Y4 + 2211Y3 + 2050Y2 + 2091Y + 2108)
X6
(Y6 + 3927Y5 +
9
233Y4 + 2211Y3 + 2050Y2 + 2091Y + 2108)
X6
23 / 34
The Weber function
The Weber f-function is defined by
f(τ) =η((τ + 1)/2
)ζ48η(τ)
,
and satisfies (τ) = (f(τ)24 − 16)3/f(τ)24.
The coefficients of Φf` are roughly 72 times smaller.
This means we need 72 times fewer primes.
The polynomial Φf` is roughly 24 times sparser.
This means we need 24 times fewer interpolation points.
Overall, we get nearly a 1728-fold speedup using Φf`.
24 / 34
Modular polynomials for ` = 11
Classical:
X12+ Y12 − X11Y11
+ 8184X11Y10 − 28278756X11Y9+ 53686822816X11Y8
− 61058988656490X11Y7+ 42570393135641712X11Y6 − 17899526272883039048X11Y5
+ 4297837238774928467520X11Y4 − 529134841844639613861795X11Y3+ 27209811658056645815522600X11Y2
− 374642006356701393515817612X11Y + 296470902355240575283200000X11
. . . 8 pages omitted . . .
+ 3924233450945276549086964624087200490995247233706746270899364206426701740619416867392454656000 . . . 000
Atkin:
X12 − X11Y + 744X11+ 196680X10
+ 187X9Y + 21354080X9+ 506X8Y + 830467440X8
− 11440X7Y + 16875327744X7 − 57442X6Y + 208564958976X6+ 184184X5Y + 1678582287360X5
+ 1675784X4Y + 9031525113600X4+ 1867712X3Y + 32349979904000X3 − 8252640X2Y + 74246810880000X2
− 19849600XY + 98997734400000X + Y2 − 8720000Y + 58411072000000
Weber:
X12 + Y12 − X11Y11 + 11X9Y9 − 44X7Y7 + 88X5Y5 − 88X3Y3 + 32XY
25 / 34
Computational results
Level records
1. 10009: Φ`
2. 20011: Φ` mod q
3. 60013: Φf`
Speed records
1. 251: Φ` in 28s Φ` mod q in 4.8s (vs 688s)
2. 1009: Φ` in 2830s Φ` mod q in 265s (vs 107200s)
3. 1009: Φf` in 2.8s
Effective throughput when computing Φ1009 mod q is 100Mb/s.
Single core CPU times (AMD 3.0 GHz), using prime q ≈ 2256.
Polynomials Φf` for ` < 5000 available at http://math.mit.edu/˜drew.
26 / 34
Computing φ`(Y) with the CRT (naıve approach)
Strategy: lift (E) from Fq to Z, compute Φ`(X,Y) mod p and evaluate
φ`(Y) = Φ`((E),Y) mod p
for sufficiently many primes p. Obtain φ` mod q via the explicit CRT.
Uses O(`2 log3+ε p) expected time for each p, and O(`2 log p) space.
However, “sufficiently many” is now O(`n), where n = log q.Total expected time is O(`3n log3+ε `), using O(`n + `2 log `) space.
This approach is not very useful:I If n is large (e.g. n ≈ `), it takes way too long (quartic in `).I It n is small (e.g. n ≈ log `), it doesn’t save any space.
27 / 34
Computing φ`(Y) with the CRT (naıve approach)
Strategy: lift (E) from Fq to Z, compute Φ`(X,Y) mod p and evaluate
φ`(Y) = Φ`((E),Y) mod p
for sufficiently many primes p. Obtain φ` mod q via the explicit CRT.
Uses O(`2 log3+ε p) expected time for each p, and O(`2 log p) space.
However, “sufficiently many” is now O(`n), where n = log q.Total expected time is O(`3n log3+ε `), using O(`n + `2 log `) space.
This approach is not very useful:I If n is large (e.g. n ≈ `), it takes way too long (quartic in `).I It n is small (e.g. n ≈ log `), it doesn’t save any space.
27 / 34
Computing φ`(Y) with the CRT (Algorithm 1)
Strategy: lift (E), (E)2, (E)3, . . . , (E)`+1 from Fq to Z and compute
φ`(Y) =∑
cik (E)iYk mod p
for sufficiently many primes p, where Φ` =∑
cikXiYk.Obtain φ` mod q via the explicit CRT.
Now “sufficiently many” is O(`+ n).
For n = O(` log `), uses O(`3 log3+ε `) expected timeand O(`2 log `) space (under GRH).For n = Ω(` log `), the space bound is optimal.
This algorithm can also evaluate the partial derivatives of Φ` neededto construct normalized equations for E (important for SEA).
28 / 34
Computing φ`(Y) with the CRT (Algorithm 1)
Strategy: lift (E), (E)2, (E)3, . . . , (E)`+1 from Fq to Z and compute
φ`(Y) =∑
cik (E)iYk mod p
for sufficiently many primes p, where Φ` =∑
cikXiYk.Obtain φ` mod q via the explicit CRT.
Now “sufficiently many” is O(`+ n).
For n = O(` log `), uses O(`3 log3+ε `) expected timeand O(`2 log `) space (under GRH).For n = Ω(` log `), the space bound is optimal.
This algorithm can also evaluate the partial derivatives of Φ` neededto construct normalized equations for E (important for SEA).
28 / 34
Computing φ`(Y) with the CRT (Algorithm 2)
Strategy: lift (E) from Fq to Z and for sufficiently many primes pcompute φ` mod p as follows:
1. For each of `+ 2 -invariants yi, compute zi =∏
k((E)− jk),where the jk range over `+ 1 neighbors of yi in G`(Fp).
2. Interpolate φ`(Y) ∈ Fp as the unique polynomial of degree `+ 1for which φ`(yi) = zi.
Obtain φ` mod q via the explicit CRT.
For n = O(`c), uses O(`3(n + log `) log1+ε `) expected timeand O(`n + ` log `) space (under GRH).
For n = O(log2−ε q) the algorithm is faster than computing Φ`.For n = Ω(log `) the space bound is optimal.
If n is Ω(log2 `) and O(` log `), one can use a hybrid approach.This yields an optimal space bound for all q > `.
29 / 34
Computing φ`(Y) with the CRT (Algorithm 2)
Strategy: lift (E) from Fq to Z and for sufficiently many primes pcompute φ` mod p as follows:
1. For each of `+ 2 -invariants yi, compute zi =∏
k((E)− jk),where the jk range over `+ 1 neighbors of yi in G`(Fp).
2. Interpolate φ`(Y) ∈ Fp as the unique polynomial of degree `+ 1for which φ`(yi) = zi.
Obtain φ` mod q via the explicit CRT.
For n = O(`c), uses O(`3(n + log `) log1+ε `) expected timeand O(`n + ` log `) space (under GRH).
For n = O(log2−ε q) the algorithm is faster than computing Φ`.For n = Ω(log `) the space bound is optimal.
If n is Ω(log2 `) and O(` log `), one can use a hybrid approach.This yields an optimal space bound for all q > `.
29 / 34
Genus 1 point counting in large characteristic
Algorithms to compute #E(Fq) = q + 1− t.
Algorithm Time Space
Totally naive O(e2n+ε) O(n)Slightly less naive O(en+ε) O(n)Baby-step giant-step O(en/4+ε) O(en/4+ε)Pollard kangaroo O(en/4+ε) O(n2)Schoof O(n5 llog n) O(n3)
SEA∗ O(n4 log3 n llog n) O(n3 log n)SEA (Φ` precomputed) O(n4 llog n) O(n4)
SEA with Algorithm 1 O(n4 log2 n llog n) O(n2 log n)Amortized O(n4 llog n) O(n2 log n)
∗Complexity estimates for SEA-based algorithms are heuristic expected times.30 / 34
Genus 1 point counting in large characteristic
Algorithms to compute #E(Fq) = q + 1− t.
Algorithm Time Space
Totally naive O(e2n+ε) O(n)Slightly less naive O(en+ε) O(n)Baby-step giant-step O(en/4+ε) O(en/4+ε)Pollard kangaroo O(en/4+ε) O(n2)Schoof O(n5 llog n) O(n3)
SEA∗ O(n4 log3 n llog n) O(n3 log n)SEA (Φ` precomputed) O(n4 llog n) O(n4)
SEA with Algorithm 1 O(n4 log2 n llog n) O(n2 log n)Amortized O(n4 llog n) O(n2 log n)
∗Complexity estimates for SEA-based algorithms are heuristic expected times.30 / 34
Elliptic curve point-counting record
The number of points on the elliptic curve E defined by
y2 = x3 + 2718281828x + 3141592653,
modulo the 5011 digit prime q = 16219299585 · 216612 − 1 is
8323769891444946600619018491391378260069836370604500159309667928183741136740938227669912830997846627009617004020582940190774831705166648378125548174433501622236054400053883949202245191148598673381916600955085921652538526785284252424097879654450042795873424585910365069362326006585495567690584276040421110290806662321358856620706610396707595803419181094300641608406907483630190371031699788941805567263670144002967819837985135622693714012764272092867022540471740784700901798590441199208750379215971112344019653309999668029194772178482699210001668960742884085944350942098735441112464897682811881029409157742761498481361823613398307630269299941813854855214010577801252598907240564188955333987243324279357096770029086016947382059730330051806950506583258753330867074804800846369839004271346457865324407167865202282210199065495326810929978854624298288481916297348239030843306705546043295502481730932870433180532793495744878882506348393787807087351238867988051327037590331790801872453585872437467694874112726738073095037665888862659824866162979710551480066332118269833639587932989704356263549436446848603965666427837093575009979091922302413453716095887661432089373163729653025768255602712754566610542223232815622048111888283590483215892528728153087049654418794163034575764891117186500373809179386465716056073958857886659984917838400020437572986666397067817373843456657959297914239933377113677822538016636015241053779745447935639933068437226703067711612870475974728874060256153829424355309461429412863767016010448708725782340275978368434887328902748704620332776144279810260429883073285589599324633304714799454649284242674253031456570427212647114749626733565213374345500028792023241372392282583915035127429507360347735858922343130927780773465726085617792679251930303901806198152773080257003776361130528801147302363823348520265804075377873270137482894511973046679428777685534275306203922096387437778405610945156936507440996084119730814303901482626498520813641540064044431078342859539882090926223504237272408488115432700226947839711625212061713336002272556065579316884991097867376849796331576452708469259023115974151222787610622866769067522066036835295821168236918513059172724626618829733555769988656469584293610818091626921818662703380667041026811998131268436795000766254728604090647491868154452743670675868434070554634021891358398165724885432541336551115909636456700693477449865260368511045411205847035453060636486512589217930914523201112950463798415869418991750541041378713105362188790883183727300546588120061627174480168248774745589818525177228021451045150114779535554987684535229998681835176117651014768576344140108558104150453207370935052150913863261504324212007549804732358464553488560987919468961144855825465612614456411458521607747389949586595126074306085812134617236309956765621860727156856482046150112012015113007122286669299590274282107690933890300810525603558710045399536727403969324912420806389527152955993943311641026894824263736268535534370585102219836177805656167035861860036286963374250257588182644200835242804131190172272014414549659547457165879852600232647304991195644305287939827885207654988125751221239741075244973427819843776465089557666171337403497596850461399835327434541250151698094846056890996956914938171459951869000669270969498525993914751206760782244790625122626848753012733495289200641795967184561011226439252930596090031649974277634943933178938510726596259437826466293379162132564825895692129029330256714749154770003140032780641102586358889574523411175821853412004266108458134154747384432584651586199896849475842009365338952535884111160271960868999014742012591971478237292524813948600029227796125549029381598957721574805007478966997024108691274018357785171489306377152166096191664750803979956621679571978953552211724552632230710653244433669331067442040140391602456581858747401436772403284080454895800825555079522458369190254711040601200028499012649426967495115480636409733058979879385173976155641587413347889866287021950635203417893709652546248256133417835452925731715740688561063321641057055461825084563212070367457331486354681841758049252732599116595430817436406080011315918900828645131242470137313661372714961047058097433021586751093908895745441684195336715770412686321350796787391486224738612016911715739107481092463845433183146882764205897555692474146749724490484592370638492569933497005028781048032734897097622833295643389100786217086915770725300529087910723550751401318787576647364571766938618440620554990814181207394577639163458834949267687793194747139050054400221521434458599314044867381063285572380923329713520153405615749711252696047443494747652497316648062057666953271152425843341789770616064557079435236406353029020560141015314103419765029534921177065625577774688408769857858804251711896591035794406728856602939161842221528770720582112364327715631856765897848302241231421628544594675301323023661942160414993178396196877455996341128827795369279474773827993735868297936899429512496912028871093270632846246774367220129816851945807778140092913366453585259624246494437340122223955248
31 / 34
Elliptic curve point counting record
Task Total CPU Time
Compute φf` 32 daysFind a root 995 daysCompute g` 3 daysCompute π mod g`,E 326 daysFind λ` 22 days
φf`(Y) = Φf`((E),Y) was computed for ` from 5 to 11681.
Exactly 700 of 1400 were found to be Elkies primes.Atkin primes were not used.
The largest φf` was under 20MB in size and took abouttwo hours to compute using 1 core.
32 / 34
Modular polynomial evaluation record
For ` = 100019 and q = 286243 − 1 we computed φf`(Y) = Φf`((E),Y).
This is much larger than one would need to set a 25,000 digitpoint-counting record.
The size of φf` is about 1 GB.
For comparison:
I The size of Φf` mod q is about 2 TB.
I The size of Φ` mod q is about 50 TB.
I The size of Φ` is more than 10 PB.
33 / 34
Improved space complexity of computinghorizontal isogenies
The algorithm of [Bisson-S 2011] for computing the endomorphismring of an elliptic curve E/Fq runs in L[1/2,
√3/2] expected time and
uses L[1/2, 1/√
3] space (under GRH).
The space complexity can now be improved to L[1/2, 1/√
12].
A similar improvement applies to algorithms for computing horizontalisogenies of large degree [Jao-Soukharev 2010].
34 / 34