SLIDE 1
Twisted Hessian curves cr.yp.to/papers.html#hessian Daniel J. Bernstein University of Illinois at Chicago & Technische Universiteit Eindhoven Joint work with: Chitchanok Chuengsatiansup Technische Universiteit Eindhoven David Kohel Aix-Marseille Universit´ e Tanja Lange Technische Universiteit Eindhoven
SLIDE 2 1986 Chudnovsky–Chudnovsky, “Sequences of numbers generated by addition in formal groups and new primality and factorization tests”: “The crucial problem becomes the choice of the model
- f an algebraic group variety,
where computations mod p are the least time consuming.” Most important computations: ADD is P; Q → P + Q. DBL is P → 2P .
SLIDE 3 “It is preferable to use models of elliptic curves lying in low-dimensional spaces, for otherwise the number of coordinates and operations is
- increasing. This limits us : : : to
4 basic models of elliptic curves.” Short Weierstrass: y2 = x3 + ax + b. Jacobi intersection: s2 + c2 = 1, as2 + d2 = 1. Jacobi quartic: y2 = x4+2ax2+1. Hessian: x3 + y3 + 1 = 3dxy.
SLIDE 4 “Our experience shows that the expression of the law of addition
(d) of an elliptic curve is by far the best and the prettiest.” X3 = Y 1X2 · Y 1Z2 − Z1Y 2 · X1Y 2; Y 3 = X1Z2 · X1Y 2 − Y 1X2 · Z1X2; Z3 = Z1Y 2 · Z1X2 − X1Z2 · Y 1Z2: 12M for ADD, where M is the cost
- f multiplication in the field.
8:4M for DBL, assuming 0:8M for the cost
SLIDE 5
1990s: ECC standards instead use short Weierstrass curves in Jacobian coordinates for “the fastest arithmetic”. 15:2M for ADD, much slower than Hessian. Why is this a good idea?
SLIDE 6
1990s: ECC standards instead use short Weierstrass curves in Jacobian coordinates for “the fastest arithmetic”. 15:2M for ADD, much slower than Hessian. Why is this a good idea? Answer: Only 7:2M for DBL with Chudnovsky–Chudnovsky formula.
SLIDE 7
1990s: ECC standards instead use short Weierstrass curves in Jacobian coordinates for “the fastest arithmetic”. 15:2M for ADD, much slower than Hessian. Why is this a good idea? Answer: Only 7:2M for DBL with Chudnovsky–Chudnovsky formula. 2001 Bernstein: 15M, 7M.
SLIDE 8
1990s: ECC standards instead use short Weierstrass curves in Jacobian coordinates for “the fastest arithmetic”. 15:2M for ADD, much slower than Hessian. Why is this a good idea? Answer: Only 7:2M for DBL with Chudnovsky–Chudnovsky formula. 2001 Bernstein: 15M, 7M. Compared to Hessian, Weierstrass saves 4M in typical DBL-DBL-DBL-DBL-DBL-ADD.
SLIDE 9 2007 Edwards: new curve shape. 2007 Bernstein–Lange: generalize, analyze speed, completeness. y x
- neutral = (0; 1)
- P1 = (x1; y1)
- ☞
☞ ☞ ☞ P2 = (x2; y2)
❢ ❢ ❢ ❢ P3 = (x3; y3)
❬ ❬ ❬ ❬ ❬ Example: x2 + y2 = 1 − 30x2y2. Sum of (x1; y1) and (x2; y2) is ((x1y2+y1x2)=(1−30x1x2y1y2), (y1y2−x1x2)=(1+30x1x2y1y2)).
SLIDE 10
2007 Bernstein–Lange: 10:8M for ADD, 6:2M for DBL.
SLIDE 11
2007 Bernstein–Lange: 10:8M for ADD, 6:2M for DBL. 2008 Hisil–Wong–Carter–Dawson: just 8M for ADD.
SLIDE 12
2007 Bernstein–Lange: 10:8M for ADD, 6:2M for DBL. 2008 Hisil–Wong–Carter–Dawson: just 8M for ADD.
SLIDE 13
y2 = x3 − 0:4x + 0:7
SLIDE 14
SLIDE 15
x2 + y2 = 1 − 300x2y2
SLIDE 16
SLIDE 17
x2 = y4 − 1:9y2 + 1
SLIDE 18
SLIDE 19
x3 − y3 + 1 = 0:3xy
SLIDE 20
SLIDE 21
SLIDE 22
SLIDE 23
SLIDE 24
SLIDE 25
SLIDE 26
SLIDE 27
Faster Hessian arithmetic 2007 Hisil–Carter–Dawson: 7:8M for DBL.
SLIDE 28
Faster Hessian arithmetic 2007 Hisil–Carter–Dawson: 7:8M for DBL. 2010 Hisil: 11M for ADD.
SLIDE 29
Faster Hessian arithmetic 2007 Hisil–Carter–Dawson: 7:8M for DBL. 2010 Hisil: 11M for ADD. Hessian tied with Weierstrass for DBL-DBL-DBL-DBL-DBL-ADD. Need to zoom in closer: analyze exact S=M, overhead for checking for special cases, extra DBL, extra ADD, etc.
SLIDE 30
Faster Hessian arithmetic 2007 Hisil–Carter–Dawson: 7:8M for DBL. 2010 Hisil: 11M for ADD. Hessian tied with Weierstrass for DBL-DBL-DBL-DBL-DBL-ADD. Need to zoom in closer: analyze exact S=M, overhead for checking for special cases, extra DBL, extra ADD, etc. Or speed up Hessian more.
SLIDE 31
Faster Hessian arithmetic 2007 Hisil–Carter–Dawson: 7:8M for DBL. 2010 Hisil: 11M for ADD. Hessian tied with Weierstrass for DBL-DBL-DBL-DBL-DBL-ADD. Need to zoom in closer: analyze exact S=M, overhead for checking for special cases, extra DBL, extra ADD, etc. Or speed up Hessian more. New: 7:6M for DBL.
SLIDE 32
New (announced July 2009): Generalize to more curves: twisted Hessian curves aX3 + Y 3 + Z3 = dXY Z with a(27a − d3) = 0. 2007 7:8M DBL idea fails, but 2010 11M ADD generalizes, new 7:6M DBL generalizes.
SLIDE 33
New (announced July 2009): Generalize to more curves: twisted Hessian curves aX3 + Y 3 + Z3 = dXY Z with a(27a − d3) = 0. 2007 7:8M DBL idea fails, but 2010 11M ADD generalizes, new 7:6M DBL generalizes. Rotate addition law so that it also works for DBL; complete if a is not a cube. Eliminates special-case overhead, helps stop side-channel attacks.
SLIDE 34
Triplings (assuming d = 0) TPL is P → 3P . 2007 Hisil–Carter–Dawson: 12:8M for Hessian TPL. Generalizes to twisted Hessian.
SLIDE 35
Triplings (assuming d = 0) TPL is P → 3P . 2007 Hisil–Carter–Dawson: 12:8M for Hessian TPL. Generalizes to twisted Hessian. 2015 Kohel: 11:2M.
SLIDE 36
Triplings (assuming d = 0) TPL is P → 3P . 2007 Hisil–Carter–Dawson: 12:8M for Hessian TPL. Generalizes to twisted Hessian. 2015 Kohel: 11:2M. New: 10:8M assuming field with fast primitive
3
√ 1; e.g., Fq[!]=(!2 + ! + 1), or Fp with 7p = 2298 + 2149 + 1. (More history in small char. See paper for details.)
SLIDE 37
If aX3 + Y 3 + Z3 = dXY Z then V W(V + dU + aW) = U3 where U = −XY Z, V = Y 3, W = X3. If V W(V + dU + aW) = U3 then aX3
3 + Y 3 3 + Z3 3 = dX3Y3Z3
where Q = dU, R = aW, S = −(V + Q + R), dX3 = R3 + S3 + V 3 − 3RSV , Y3 = RS2 + SV 2 + V R2 − 3RSV , Z3 = RV 2 + SR2 + V S2 − 3RSV . Compose these 3-isogenies: (X3 : Y3 : Z3) = 3(X : Y : Z).
SLIDE 38
To quickly triple (X : Y : Z): Three cubings for R; S; V . For three choices of constants (¸; ˛; ‚) compute (¸R + ˛S + ‚V ) · (¸S + ˛V + ‚R) · (¸V + ˛R + ‚S) = ¸˛‚dX3 + (¸˛2+˛‚2+‚¸2)Y3 + (˛¸2+‚˛2+¸‚2)Z3 + (¸+˛+‚)3RSV . Also use a(R +S +V )3 = d3RSV . Solve for dX3; Y3; Z3.
SLIDE 39
2015 Kohel’s 11:2M (4 cubings + 4 mults) introduced this TPL idea with (¸; ˛; ‚) = (1; 1; 1), (¸; ˛; ‚) = (1; −1; 0), (¸; ˛; ‚) = (1; 1; 0).
SLIDE 40
2015 Kohel’s 11:2M (4 cubings + 4 mults) introduced this TPL idea with (¸; ˛; ‚) = (1; 1; 1), (¸; ˛; ‚) = (1; −1; 0), (¸; ˛; ‚) = (1; 1; 0). New 10:8M (6 cubings) makes faster choices assuming fast primitive ! = 3 √ 1: (¸; ˛; ‚) = (1; 1; 1), (¸; ˛; ‚) = (1; !; !2), (¸; ˛; ‚) = (1; !2; !).
SLIDE 41
Are triplings useful? 2005 Dimitrov–Imbert–Mishra “double-base chains”: e.g., compute 314159P as 21532P + 21132P + 2831P + 2431P − 2030P . 2TPL, 15DBL, 4ADD. 2006 Doche–Imbert generalized double-base chains: e.g., compute 314159P as 212333P −27335P −24317P −2030P after precomputing 3P; 5P; 7P . 3TPL, 13DBL, 6ADD.
SLIDE 42
Not good for constant time. Good for signature verification, factorization, math, etc. Also need time to compute chain. Good for scalars used many times.
SLIDE 43
Not good for constant time. Good for signature verification, factorization, math, etc. Also need time to compute chain. Good for scalars used many times. Analysis+optimization from 2007 Bernstein–Birkner–Lange–Peters: Double-base chains speed up Weierstrass curves slightly: 9:29M/bit for 256-bit scalars. More savings for, e.g., Hessian: 9:65M/bit. Still not competitive.
SLIDE 44
Revisit conclusions using latest Hessian formulas, latest double-base techniques.
SLIDE 45
Revisit conclusions using latest Hessian formulas, latest double-base techniques. New: 8:77M/bit for 256 bits.
SLIDE 46 Revisit conclusions using latest Hessian formulas, latest double-base techniques. New: 8:77M/bit for 256 bits. Comparison to Weierstrass for 1-bit, 2-bit, : : : , 64-bit scalars:
50 100 50 100 150 200 250 300 350 400 450 500 550 600 650 Multiplications saved Multiplications using the new formulas
Uses 2008 Doche–Habsieger “tree search” and some new improvements: e.g., account for costs of ADD, DBL, TPL.
SLIDE 47
Summary: Twisted Hessian curves solidly beat Weierstrass. Chuengsatiansup talk tomorrow: even better double-base chains from shortest paths in DAG— and also new Edwards speeds!