Reconstruction of genus 3 hyperelliptic curve
R. Lercier, C. Ritzenthaler
GEOCRYPT 2011 Bastia June 20-24
Motivation
Elliptic curvesEk
:y
2=x
3+a x+bare classified by
j(E) =18724a34+a327
b2
Conversely, for anyj∈k {1728}, we can reconstruct a curveE defined overks.t.j(E) =j, for instance
Ek:y2=x3−j−172j728x+j−541j728
Similarly, genus 2 curves are classified by Igusa invariants, and thanks to [Mestre91], the reconstruction problem is solved .
In this talk, we mostly consider genus 3 hyperelliptic curves.
Motivation
Elliptic curvesEk
:y
2=x
3+a x+bare classified by
3 j(E) =42817a34+a27
b2
dCeofinversely,foranyjj(E∈)k {1728}, we can reconstruct a curveE ned overks.t.=j, for instance
Ek:y2=x3−j−721j728x+j−7145j28
Similarly, genus 2 curves are classified by Igusa invariants, and thanks to [Mestre91], the reconstruction problem is solved .
In this talk, we mostly consider genus 3 hyperelliptic curves.
Motivation
Elliptic curvesEk
:y
2=x
3+a x+bare classified by
3 j(E) =42817a34+a27
b2
dCeofinnveerdseoly,foranyj(E∈)k=j{827,f1}, we can reconstruct a curveE verks.t.jor instance
327j5 Ek:y2=x−−1728x+j−714j28 j
Similarly,genus 2curves are classified by Igusa invariants, and thanks to [Mestre91], the reconstruction problem is solved .
In this talk, we mostly consider genus 3 hyperelliptic curves.
Motivation
Elliptic curvesEk
:y
2=x
3+a x+bare classified by
3 j(E) =28174a34+a27
b2
Conversely,forant.yj(E∈)k=j{172o8r,fi}ev,wecanreconstructacurstnE defined overks.jance
jx54 Ek:y2=x3−j−728172+j−17j28
Similarly, genus 2 curves are classified by Igusa invariants, and thanks to [Mestre91], the reconstruction problem is solved .
In this talk, we mostly considergenus 3hyperelliptic curves.
Concretely...
> _<x> := PolynomialRing(GF(11)); > H1 := HyperellipticCurve(7*x^8 + 5*x^6 + 5*x^4 + 3*x^2 + x + 9);
> ShiodaInvariants(H1); [ 8, 2, 4, 10, 2, 7, 8, 9, 3 ]
> H2, G := HyperellipticCurveFromShiodaInvariants($1); H2; Hyperelliptic Curve defined by y^2 = x^8 + x^7 + x^6 + 4*x^5 + x^4 + x^2 + 5*x + 8 over GF
> IsQuadraticTwist(H1, H2); true 4 > IdentifyGroup(G); <8, 5>
(11)
Concretely...
> _<x> := PolynomialRing(GF(11)); > H1 := HyperellipticCurve(7*x^8 + 5*x^6 + 5*x^4 + 3*x^2 + x + 9);
> ShiodaInvariants(H1); [ 8, 2, 4, 10, 2, 7, 8, 9, 3 ]
> H2, G := HyperellipticCurveFromShiodaInvariants($1); H2; Hyperelliptic Curve defined by y^2 = x^8 + x^7 + ^6 + 4*x^5 + x^4 + x^2 + 5*x + 8 over GF x
> IsQuadraticTwist(H1, H2); true 4 > IdentifyGroup(G); <8, 5>
(11)
Concretely...
> _<x> := PolynomialRing(GF(11)); > H1 := HyperellipticCurve(7*x^8 + 5*x^6 + 5*x^4 + 3*x^2 + x + 9);
> ShiodaInvariants(H1); [ 8, 2, 4, 10, 2, 7, 8, 9, 3 ]
> H2, G := HyperellipticCurveFromShiodaInvariants($1); H2; Hyperelliptic Curve defined by y^2 = x^8 + x^7 + x^6 + 4*x^5 + x^4 + x^2 + 5*x + 8 over GF
> IsQuadraticTwist(H1, H2); true 4 > IdentifyGroup(G); <8, 5>
(11)