Point counting on hyperelliptic curves: to genus 3 and beyond Simon - - PowerPoint PPT Presentation

point counting on hyperelliptic curves to genus 3 and
SMART_READER_LITE
LIVE PREVIEW

Point counting on hyperelliptic curves: to genus 3 and beyond Simon - - PowerPoint PPT Presentation

Point counting on hyperelliptic curves: to genus 3 and beyond Simon Abelard Universit de Lorraine, Nancy Joint work with P. Gaudry and P.-J. Spaenlehauer January 25, 2018 CARAMBA /* */ E,C, /* */ c,r, /* */ u,l, e,s, i=5,


slide-1
SLIDE 1

Point counting on hyperelliptic curves: to genus 3 and beyond

Simon Abelard Université de Lorraine, Nancy

Joint work with P. Gaudry and P.-J. Spaenlehauer

January 25, 2018

/* */ E,C, /* */ c,r, /* */ u,l, e,s, i=5, d[5],Q[999 ]={0};main(n ){for (;i--;e=scanf("%" "d",d+i));for(C =*d; ++i<C ;++Q[ i*i% C],c= i[Q]? c:i); for(;i

  • -;)

for(u =C;u

  • -;n

+=!u*Q [l%C ],e+= Q[(C +l*l- c*s* s%C) %C]) for( l=i,s=u,r=4;r;E= i*l+c*u*s,s=(u*l +i*s) %C,l=E%C+r

  • -[d]);printf

("%d" "\n", (e+n* n)/2 /* cc caramba.c; echo f3 f2 f1 f0 p | ./a.out */

  • C);}

CARAMBA

Simon Abelard Point counting January 25, 2018 1 / 18

slide-2
SLIDE 2

It’s all about generating series. . .

A first example

How many solutions of y 2 = x 7 − 7x 5 + 14x 3 − 7x + 1 in F23k ? Goal: generating series associated to these numbers of solutions. This series is rational so small k’s are sufficient (≤ 3 in this case).

Simon Abelard Point counting January 25, 2018 2 / 18

slide-3
SLIDE 3

It’s all about generating series. . .

A first example

How many solutions of y 2 = x 7 − 7x 5 + 14x 3 − 7x + 1 in F23k ? Goal: generating series associated to these numbers of solutions. This series is rational so small k’s are sufficient (≤ 3 in this case).

Curves and points

Let f ∈ Fq[X] be monic, squarefree of degree 2g + 1. Equation Y 2 = f (X) → hyperelliptic curve C of genus g over Fq. If C defined over Fq, P = (x, y) ∈ C is rational if (x, y) ∈ (Fq)2.

Simon Abelard Point counting January 25, 2018 2 / 18

slide-4
SLIDE 4

It’s all about generating series. . .

A first example

How many solutions of y 2 = x 7 − 7x 5 + 14x 3 − 7x + 1 in F23k ? Goal: generating series associated to these numbers of solutions. This series is rational so small k’s are sufficient (≤ 3 in this case).

Curves and points

Let f ∈ Fq[X] be monic, squarefree of degree 2g + 1. Equation Y 2 = f (X) → hyperelliptic curve C of genus g over Fq. If C defined over Fq, P = (x, y) ∈ C is rational if (x, y) ∈ (Fq)2. Let C(Fqi) =

  • (x, y) ∈ (Fqi)2 |y 2 = f (x)
  • ∪ {∞}.

Point counting: computing #C(Fqi) for 1 ≤ i ≤ g.

Simon Abelard Point counting January 25, 2018 2 / 18

slide-5
SLIDE 5

. . . Or rather polynomials

Let C be a hyperelliptic curve of genus g.

Weil conjectures to the rescue

Point counting over Fq is computing the local ζ function of C: ζ(s) = exp

  • k

#C(Fqk)sk k

  • thm

= Λ(s) (1 − s)(1 − qs). With Λ ∈ Z[X] of degree 2g having bounded coefficients.

Simon Abelard Point counting January 25, 2018 3 / 18

slide-6
SLIDE 6

. . . Or rather polynomials

Let C be a hyperelliptic curve of genus g.

Weil conjectures to the rescue

Point counting over Fq is computing the local ζ function of C: ζ(s) = exp

  • k

#C(Fqk)sk k

  • thm

= Λ(s) (1 − s)(1 − qs). With Λ ∈ Z[X] of degree 2g having bounded coefficients.

Point counting

Input: f ∈ Fq[X] defining a hyperelliptic curve Output: the polynomial Λ

Simon Abelard Point counting January 25, 2018 3 / 18

slide-7
SLIDE 7

. . . Or rather polynomials

Let C be a hyperelliptic curve of genus g.

Weil conjectures to the rescue

Point counting over Fq is computing the local ζ function of C: ζ(s) = exp

  • k

#C(Fqk)sk k

  • thm

= Λ(s) (1 − s)(1 − qs). With Λ ∈ Z[X] of degree 2g having bounded coefficients.

Point counting

Input: f ∈ Fq[X] defining a hyperelliptic curve Output: the polynomial Λ We study the complexity of such algorithms.

Simon Abelard Point counting January 25, 2018 3 / 18

slide-8
SLIDE 8

A broad range of related problems

Finding ‘nice’ curves

Cryptography: g ≤ 2 and q large, needed to assess security. Error-correcting codes: need curves with many rational points.

Arithmetic geometry

Conjectures in number theory e.g. Sato -Tate in genus ≥ 2. L-functions associated: L(s, C) =

  • p Ap/ps with Ap = #C(Fp)/√p.

Computing them relies on point-counting primitives.

Simon Abelard Point counting January 25, 2018 4 / 18

slide-9
SLIDE 9

A broad range of related problems

Finding ‘nice’ curves

Cryptography: g ≤ 2 and q large, needed to assess security. Error-correcting codes: need curves with many rational points.

Arithmetic geometry

Conjectures in number theory e.g. Sato -Tate in genus ≥ 2. L-functions associated: L(s, C) =

  • p Ap/ps with Ap = #C(Fp)/√p.

Computing them relies on point-counting primitives.

Two families of algorithms

p-adic methods: polynomial in g, exponential in log p Satoh’99, Kedlaya’01, Lauder’04 ℓ-adic methods: exponential in g, polynomial in log q Schoof’85, Gaudry-Schost’12

Simon Abelard Point counting January 25, 2018 4 / 18

slide-10
SLIDE 10

Overview and contributions

Asymptotic complexities (hyperelliptic case)

Pila’90 Huang-Ierardi’98 Adleman-Huang’01 Our result (log q)Og(1) (log q)gO(1) (log q)O(g2 log g) Og ((log q)cg)

Simon Abelard Point counting January 25, 2018 5 / 18

slide-11
SLIDE 11

Overview and contributions

Asymptotic complexities (hyperelliptic case)

Pila’90 Huang-Ierardi’98 Adleman-Huang’01 Our result (log q)Og(1) (log q)gO(1) (log q)O(g2 log g) Og ((log q)cg)

Practical algorithms

Genus Complexity Authors g = 1

  • O(log4 q)

Schoof-Elkies-Atkin g = 2

  • O(log8 q)

Gaudry-Schost g = 3

  • O(log14 q) ?

g = 2 with RM

  • O(log5 q)

Gaudry-Kohel-Smith g = 3 with RM

  • O(log6 q)

Our result

Simon Abelard Point counting January 25, 2018 5 / 18

slide-12
SLIDE 12

From curves to groups

R P Q P + Q + R = 0

P1 P2 Q1 Q2 R1 R2 P1 + P2 + Q1 + Q2 + R1 + R2 = 0

Simon Abelard Point counting January 25, 2018 6 / 18

slide-13
SLIDE 13

Counting points on hyperelliptic curves

Let C : y 2 = f (x) be a hyperelliptic curve over Fq. Let J be its Jacobian and g its genus.

1

(Hasse-Weil) coefficients of Λ are bounded integers.

2

ℓ-torsion J[ℓ] = {D ∈ J|ℓD = 0} ≃ (Z/ℓZ)2g

3

Frobenius π : (x, y) → (x q, y q) acts linearly on J[ℓ]

4

For χ the char. polynomial of π, χrev = Λ mod ℓ

Algorithm a la Schoof

For each prime ℓ ≤ (9g + 3) log q Describe Iℓ the ideal of ℓ-torsion Compute χ mod ℓ by testing char. eq. of π in Iℓ Deduce Λ mod ℓ Recover Λ by CRT

Simon Abelard Point counting January 25, 2018 7 / 18

slide-14
SLIDE 14

Counting points on hyperelliptic curves

Let C : y 2 = f (x) be a hyperelliptic curve over Fq. Let J be its Jacobian and g its genus.

1

(Hasse-Weil) coefficients of Λ are bounded integers.

2

ℓ-torsion J[ℓ] = {D ∈ J|ℓD = 0} ≃ (Z/ℓZ)2g

3

Frobenius π : (x, y) → (x q, y q) acts linearly on J[ℓ]

4

For χ the char. polynomial of π, χrev = Λ mod ℓ

Algorithm a la Schoof

For each prime ℓ ≤ (9g + 3) log q Describe Iℓ the ideal of ℓ-torsion Compute χ mod ℓ by testing char. eq. of π in Iℓ Deduce Λ mod ℓ Recover Λ by CRT

Simon Abelard Point counting January 25, 2018 7 / 18

slide-15
SLIDE 15

Counting points on hyperelliptic curves

Let C : y 2 = f (x) be a hyperelliptic curve over Fq. Let J be its Jacobian and g its genus.

1

(Hasse-Weil) coefficients of Λ are bounded integers.

2

ℓ-torsion J[ℓ] = {D ∈ J|ℓD = 0} ≃ (Z/ℓZ)2g

3

Frobenius π : (x, y) → (x q, y q) acts linearly on J[ℓ]

4

For χ the char. polynomial of π, χrev = Λ mod ℓ

Algorithm a la Schoof

For each prime ℓ ≤ (9g + 3) log q Describe Iℓ the ideal of ℓ-torsion Compute χ mod ℓ by testing char. eq. of π in Iℓ Deduce Λ mod ℓ Recover Λ by CRT

Simon Abelard Point counting January 25, 2018 7 / 18

slide-16
SLIDE 16

Counting points on hyperelliptic curves

Let C : y 2 = f (x) be a hyperelliptic curve over Fq. Let J be its Jacobian and g its genus.

1

(Hasse-Weil) coefficients of Λ are bounded integers.

2

ℓ-torsion J[ℓ] = {D ∈ J|ℓD = 0} ≃ (Z/ℓZ)2g

3

Frobenius π : (x, y) → (x q, y q) acts linearly on J[ℓ]

4

For χ the char. polynomial of π, χrev = Λ mod ℓ

Algorithm a la Schoof

For each prime ℓ ≤ (9g + 3) log q Describe Iℓ the ideal of ℓ-torsion Compute χ mod ℓ by testing char. eq. of π in Iℓ Deduce Λ mod ℓ Recover Λ by CRT

Simon Abelard Point counting January 25, 2018 7 / 18

slide-17
SLIDE 17

Handling the torsion

Goal: represent J[ℓ], ideal of ℓ-torsion. Method: write ℓD = 0 formally, then ‘solve’ that system.

Here comes trouble. . .

How to model and solve it efficiently?

Simon Abelard Point counting January 25, 2018 8 / 18

slide-18
SLIDE 18

Handling the torsion

Goal: represent J[ℓ], ideal of ℓ-torsion. Method: write ℓD = 0 formally, then ‘solve’ that system.

Here comes trouble. . .

How to model and solve it efficiently? − → multihomogeneous structure

Simon Abelard Point counting January 25, 2018 8 / 18

slide-19
SLIDE 19

Modelling the ℓ-torsion

Writing ℓD = 0

Formally, D = P1 + · · · + Pg, coordinates of Pi (xi, yi) are variables. Compute ℓPi, then apply zero-test to ℓD =

i ℓPi.

Simon Abelard Point counting January 25, 2018 9 / 18

slide-20
SLIDE 20

Modelling the ℓ-torsion

Writing ℓD = 0

Formally, D = P1 + · · · + Pg, coordinates of Pi (xi, yi) are variables. Compute ℓPi, then apply zero-test to ℓD =

i ℓPi.

⇒ there is a ϕ(X, Y ) = P(X) + YQ(X) such that ℓD = (ϕ).

Simon Abelard Point counting January 25, 2018 9 / 18

slide-21
SLIDE 21

Modelling the ℓ-torsion

Writing ℓD = 0

Formally, D = P1 + · · · + Pg, coordinates of Pi (xi, yi) are variables. Compute ℓPi, then apply zero-test to ℓD =

i ℓPi.

⇒ there is a ϕ(X, Y ) = P(X) + YQ(X) such that ℓD = (ϕ).

All computations done. . .

For each i we get the following congruence: P(X) + Q(X)vi(X) ≡ 0 mod ui(X) About g2 equations in g2 variables ⇒ Bézout bound in ℓg2. ⇒ seems hard to improve previous bound in (log q)O(g2). . . But not all these variables appear with high degrees.

Simon Abelard Point counting January 25, 2018 9 / 18

slide-22
SLIDE 22

Multihomogeneity and complexity

2g variables (xi, yi)

  • i dg(xi) = 0, y 2

i − f (xi) = 0

dij = dj(xi), eij = ej(xi)

      

degree Og(ℓ3) in xi O(g2) equations Searching ϕ = P(X) + Q(X)Y g2 − g variables pi and qi P + Qvi ≡ 0 mod ui ∀i = j, Res(ui, uj) = 0

            

deg ≤ g2 in dij deg ≤ 1 in pi, qi, eij O(g2) variables O(g2) equations

Simon Abelard Point counting January 25, 2018 10 / 18

slide-23
SLIDE 23

Multihomogeneity and complexity

2g variables (xi, yi)

  • i dg(xi) = 0, y 2

i − f (xi) = 0

dij = dj(xi), eij = ej(xi)

      

degree Og(ℓ3) in xi O(g2) equations Searching ϕ = P(X) + Q(X)Y g2 − g variables pi and qi P + Qvi ≡ 0 mod ui ∀i = j, Res(ui, uj) = 0

            

deg ≤ g2 in dij deg ≤ 1 in pi, qi, eij O(g2) variables O(g2) equations

Theorem (Giusti-Lecerf-Salvy’01, Cafure-Matera’06)

Assume f1, · · · , fn have degrees ≤ d and form a reduced regular sequence, and let δ = maxi degf1, . . . , fi. There is an algorithm computing a geometric resolution in time polynomial in δ, d, n. With δ = Og (ℓ3g) bounded by multihomogeneous Bézout bound.

Simon Abelard Point counting January 25, 2018 10 / 18

slide-24
SLIDE 24

Handling the torsion

Goal: represent J[ℓ], ideal of ℓ-torsion. Method: write ℓD = 0 formally, then ‘solve’ that system.

Here comes trouble. . .

How to model and solve it efficiently? − → multihomogeneous structure

Overall result

Model the ℓ-torsion with complexity Og(ℓcg). Recall the largest ℓ is in Og(log q). ⇒ we compute Λ in Og(logcg q).

Simon Abelard Point counting January 25, 2018 11 / 18

slide-25
SLIDE 25

Overview and contributions

Asymptotic complexities (hyperelliptic case)

Pila’90 Huang-Ierardi’98 Adleman-Huang’01 Our result (log q)Og(1) (log q)gO(1) (log q)O(g2 log g) Og ((log q)cg)

Practical algorithms

Genus Complexity Authors g = 1

  • O(log4 q)

Schoof-Elkies-Atkin g = 2

  • O(log8 q)

Gaudry-Schost g = 3

  • O(log14 q) ?

g = 2 with RM

  • O(log5 q)

Gaudry-Kohel-Smith g = 3 with RM

  • O(log6 q)

Our result

Simon Abelard Point counting January 25, 2018 12 / 18

slide-26
SLIDE 26

Experiments in genus 3?

Just writing the systems is hard, solving out of reach for ℓ ≥ 5.

Bad news

Remember J[ℓ] ≃ (Z/ℓZ)2g, must deal with ideals of degree ℓ6. Can reach O(ℓ12) using naive elimination, hard to go below. ⇒ Intrinsic difficulty due to size of J[ℓ].

Simon Abelard Point counting January 25, 2018 13 / 18

slide-27
SLIDE 27

Experiments in genus 3?

Just writing the systems is hard, solving out of reach for ℓ ≥ 5.

Bad news

Remember J[ℓ] ≃ (Z/ℓZ)2g, must deal with ideals of degree ℓ6. Can reach O(ℓ12) using naive elimination, hard to go below. ⇒ Intrinsic difficulty due to size of J[ℓ].

First step: easier instances

J[ℓ] is a vector space of fixed size, what about subspaces? Context ⇒ need π-stable subspaces (i.e. factors of Λ mod ℓ) Question: find curves with ℓ-torsion that is sum of such subspaces.

Simon Abelard Point counting January 25, 2018 13 / 18

slide-28
SLIDE 28

A practical case in genus 3

A RM family [Kohel-Smith’06]

Family Ct : y 2 = x 7 − 7x 5 + 14x 3 − 7x + t with t ∈ Fq. − → hyperelliptic curves of genus 3, but a bit special. Denote Jt their Jacobians, recall they are groups. Where there are groups, there are group (endo)morphisms. Famous endomorphisms: Frobenius π, multiplication [ℓ].

Simon Abelard Point counting January 25, 2018 14 / 18

slide-29
SLIDE 29

A practical case in genus 3

A RM family [Kohel-Smith’06]

Family Ct : y 2 = x 7 − 7x 5 + 14x 3 − 7x + t with t ∈ Fq. − → hyperelliptic curves of genus 3, but a bit special. Denote Jt their Jacobians, recall they are groups. Where there are groups, there are group (endo)morphisms. Famous endomorphisms: Frobenius π, multiplication [ℓ].

A remarkable structure

Here, additional endomorphism η, explicit and easy to compute: For P = (x, y) a generic point on C, η(P) = P+ + P− with P± =

 −11

4 x ±

  • 105

16 x 2 + 16 9 , y

  .

Simon Abelard Point counting January 25, 2018 14 / 18

slide-30
SLIDE 30

Exploiting this structure

For some ℓ, decompose multiplication as [ℓ] = ǫ1ǫ2ǫ3 in Z[η], Minimal polynomial of η is X 3 + X 2 − 2X − 1, Write ǫi = ai + biη + ciη2, and |ai|, |bi|, |ci| in O(ℓ2/3). Split Jt[ℓ] ∼ =

3

i=1 Ker ǫi ⇒ model Ker ǫi instead of Jt[ℓ].

Simon Abelard Point counting January 25, 2018 15 / 18

slide-31
SLIDE 31

Exploiting this structure

For some ℓ, decompose multiplication as [ℓ] = ǫ1ǫ2ǫ3 in Z[η], Minimal polynomial of η is X 3 + X 2 − 2X − 1, Write ǫi = ai + biη + ciη2, and |ai|, |bi|, |ci| in O(ℓ2/3). Split Jt[ℓ] ∼ =

3

i=1 Ker ǫi ⇒ model Ker ǫi instead of Jt[ℓ].

Another modelization

Write ǫi(D) = 0 instead of ℓD = 0, say D = P1 + P2 + P3 − 3(∞), Rewrite it ǫi(P1) + ǫi(P2) = −ǫi(P3): ˜ d1(x1, x2, y)d3(x3) − ˜ d3(x1, x2)d1(x3) = 0, ˜ d2(x1, x2, y)d3(x3) − ˜ d3(x1, x2)d2(x3) = 0, ˜ d3(x1, x2, y)d3(x3) − ˜ d3(x1, x2)d3(x3) = 0.

Simon Abelard Point counting January 25, 2018 15 / 18

slide-32
SLIDE 32

Exploiting this structure

For some ℓ, decompose multiplication as [ℓ] = ǫ1ǫ2ǫ3 in Z[η], Minimal polynomial of η is X 3 + X 2 − 2X − 1, Write ǫi = ai + biη + ciη2, and |ai|, |bi|, |ci| in O(ℓ2/3). Split Jt[ℓ] ∼ =

3

i=1 Ker ǫi ⇒ model Ker ǫi instead of Jt[ℓ].

Another modelization

Write ǫi(D) = 0 instead of ℓD = 0, say D = P1 + P2 + P3 − 3(∞), Rewrite it ǫi(P1) + ǫi(P2) = −ǫi(P3): ˜ d1(x1, x2, y)d3(x3) − ˜ d3(x1, x2)d1(x3) = 0, ˜ d2(x1, x2, y)d3(x3) − ˜ d3(x1, x2)d2(x3) = 0, ˜ d3(x1, x2, y)d3(x3) − ˜ d3(x1, x2)d3(x3) = 0. Degrees of these polynomials are in O(ℓ2/3). Reminder: without splitting Jt[ℓ], degrees would be in O(ℓ2).

Simon Abelard Point counting January 25, 2018 15 / 18

slide-33
SLIDE 33

Solving the system

In theory: no fancy trick

Successive elimination with resultants → O(ℓ4). About a third of ℓ splits, largest one still in O(log q). ⇒ Overall complexity in O(log6 q), vs O(log14 q) in general.

Simon Abelard Point counting January 25, 2018 16 / 18

slide-34
SLIDE 34

Solving the system

In theory: no fancy trick

Successive elimination with resultants → O(ℓ4). About a third of ℓ splits, largest one still in O(log q). ⇒ Overall complexity in O(log6 q), vs O(log14 q) in general.

In practice (q is a 64-bit prime)

Compute a Gröbner basis using Magma’s routines. Split ℓ we aim for: 13, 29 (also 41 and 43, but speculative) Other methods yield 2,3 (inert) and 7 (ramified). Deduce Λ using BSGS, with speed-up

ℓ ℓ3/2.

Ongoing computation, expect Λ in roughly one CPU year.

Simon Abelard Point counting January 25, 2018 16 / 18

slide-35
SLIDE 35

Conclusion

Describing J[ℓ]: modelling by polynomial system, then solving. For curves with RM: split the torsion and describe the smaller bits. Theoretic result Fixed genus case Curves hyperelliptic hyperelliptic with RM Genus any g g = 3 Object to model ℓ-torsion J[ℓ] Ker ǫi where ℓ = ǫi Equation ℓD = 0 ǫi(D) = 0 Complexity Og ((log q)cg)

  • O((log q)6)

Simon Abelard Point counting January 25, 2018 17 / 18

slide-36
SLIDE 36

Thanks for your attention

Simon Abelard Point counting January 25, 2018 18 / 18