Hyper-and-elliptic-curve cryptography (which is not the same as: - - PDF document

hyper and elliptic curve cryptography which is not the
SMART_READER_LITE
LIVE PREVIEW

Hyper-and-elliptic-curve cryptography (which is not the same as: - - PDF document

Hyper-and-elliptic-curve cryptography (which is not the same as: hyperelliptic-curve cryptography and elliptic-curve cryptography) Daniel J. Bernstein University of Illinois at Chicago & Technische Universiteit Eindhoven Tanja Lange


slide-1
SLIDE 1

Hyper-and-elliptic-curve cryptography (which is not the same as: hyperelliptic-curve cryptography and elliptic-curve cryptography) Daniel J. Bernstein University of Illinois at Chicago & Technische Universiteit Eindhoven Tanja Lange Technische Universiteit Eindhoven

slide-2
SLIDE 2

“Through our inefficient use of energy (gas guzzling vehicles, badly insulated buildings, poorly optimized crypto, etc) we needlessly throw away almost a third of the energy we use.” —Greenpeace UK

slide-3
SLIDE 3

“Through our inefficient use of energy (gas guzzling vehicles, badly insulated buildings, poorly optimized crypto, etc) we needlessly throw away almost a third of the energy we use.” —Greenpeace UK (mostly)

slide-4
SLIDE 4

DH speed records Sandy Bridge cycles for high- security constant-time ❛❀ P ✼✦ ❛P (“?” if not SUPERCOP-verified): 2011 Bernstein–Duif–Lange– Schwabe–Yang: 194036 2012 Hamburg: 153000? 2012 Longa–Sica: 137000? 2013 Bos–Costello–Hisil– Lauter: 122716 2013 Oliveira–L´

  • pez–Aranha–

Rodr´ ıguez-Henr´ ıquez: 114800? 2013 Faz-Hern´ andez–Longa– S´ anchez: 96000? 2014 Bernstein–Chuengsatiansup– Lange–Schwabe: 91320

slide-5
SLIDE 5

Critical for 122716, 91320: 1986 Chudnovsky–Chudnovsky: traditional Kummer surface allows fast scalar mult. 14M for ❳(P) ✼✦ ❳(2P). 2006 Gaudry: even faster. 25M for ❳(P)❀ ❳(◗)❀ ❳(◗ P) ✼✦ ❳(2P)❀ ❳(◗ + P), including 6M by surface coefficients. 2012 Gaudry–Schost: 1000000-CPU-hour computation found secure small-coefficient surface over F21271.

slide-6
SLIDE 6

①2

  • ②2
  • ③2
  • t2
  • ①3
  • ②3
  • ③3
  • t3
  • Hadamard
  • Hadamard
  • ✁ ❆2

❇2

  • ✁ ❆2

❈2

  • ✁ ❆2

❉2

  • Hadamard
  • Hadamard
  • ✁❛2

❜2

  • ✁❛2

❝2

  • ✁❛2

❞2

  • ✁①1

②1

  • ✁①1

③1

  • ✁①1

t1

  • ①4

②4 ③4 t4 ①5 ②5 ③5 t5

slide-7
SLIDE 7

Strategies to build dim-2 ❏❂F♣ with known #❏(F♣), large ♣: CM Pila new fast build yes no yes any curve no yes no many curves no yes yes secure curves yes yes yes twist-secure yes yes yes Kummer yes yes yes small coeff no yes yes fastest DH no yes yes fastest keygen no no yes complete add no no yes

slide-8
SLIDE 8

Strategies to build dim-2 ❏❂F♣ with known #❏(F♣), large ♣: CM Pila Stn new fast build yes no yes yes any curve no yes no no many curves no yes yes yes secure curves yes yes yes yes twist-secure yes yes yes yes Kummer yes yes yes yes small coeff no yes no yes fastest DH no yes no yes fastest keygen no no no yes complete add no no no yes

slide-9
SLIDE 9

Hyper-and-elliptic-curve crypto Typical example: Define ❍ : ②2 = (③ 1)(③ + 1)(③ + 2) (③ 1❂2)(③ + 3❂2)(③ 2❂3)

  • ver F♣ with ♣ = 2127 309;

❏ = Jac ❍; traditional Kummer surface ❑; traditional ❳ : ❏ ✦ ❑. Small ❑ coeffs (20 : 1 : 20 : 40).

slide-10
SLIDE 10

Hyper-and-elliptic-curve crypto Typical example: Define ❍ : ②2 = (③ 1)(③ + 1)(③ + 2) (③ 1❂2)(③ + 3❂2)(③ 2❂3)

  • ver F♣ with ♣ = 2127 309;

❏ = Jac ❍; traditional Kummer surface ❑; traditional ❳ : ❏ ✦ ❑. Small ❑ coeffs (20 : 1 : 20 : 40). Warning: There are typos in the Rosenhain/Mumford/Kummer formulas in 2007 Gaudry, 2010 Cosset, 2013 Bos–Costello– Hisil–Lauter. We have simpler, computer-verified formulas.

slide-11
SLIDE 11

#❏(F♣) = 16❵ where ❵ is the prime 18092513943330655534932966 40760748553649194606010814 289531455285792829679923. Security ✙ 2125 against rho. Order of ❵ in (Z❂♣)✄ is 12152941675747802266549093 122563150387. Twist security ✙ 275. (Want more twist security? Switch to ♣ = 2127 94825; cofactors 16 ✁ 3269239, 4.)

slide-12
SLIDE 12

Fast point-counting Define F♣2 = F♣[✐]❂(✐2 + 1); r = (7 + 4✐)2 = 33 + 56✐; s = 159 + 56✐; ✦ = ♣384; ❈ : ②2 = r①6 + s①4 + s①2 + r.

slide-13
SLIDE 13

Fast point-counting Define F♣2 = F♣[✐]❂(✐2 + 1); r = (7 + 4✐)2 = 33 + 56✐; s = 159 + 56✐; ✦ = ♣384; ❈ : ②2 = r①6 + s①4 + s①2 + r. (①❀ ②) ✼✦ (①2❀ ②) takes ❈ to ❊ : ②2 = r①3 + s①2 + s① + r.

slide-14
SLIDE 14

Fast point-counting Define F♣2 = F♣[✐]❂(✐2 + 1); r = (7 + 4✐)2 = 33 + 56✐; s = 159 + 56✐; ✦ = ♣384; ❈ : ②2 = r①6 + s①4 + s①2 + r. (①❀ ②) ✼✦ (①2❀ ②) takes ❈ to ❊ : ②2 = r①3 + s①2 + s① + r. (①❀ ②) ✼✦ (1❂①2❀ ②❂①3) takes ❈ to ②2 = r①3 + s①2 + s① + r.

slide-15
SLIDE 15

Fast point-counting Define F♣2 = F♣[✐]❂(✐2 + 1); r = (7 + 4✐)2 = 33 + 56✐; s = 159 + 56✐; ✦ = ♣384; ❈ : ②2 = r①6 + s①4 + s①2 + r. (①❀ ②) ✼✦ (①2❀ ②) takes ❈ to ❊ : ②2 = r①3 + s①2 + s① + r. (①❀ ②) ✼✦ (1❂①2❀ ②❂①3) takes ❈ to ②2 = r①3 + s①2 + s① + r. (③❀ ②) ✼✦ ✒1 + ✐③ 1 ✐③ ❀ ✦② (1 ✐③)3 ✓ takes ❍ over F♣2 to ❈.

slide-16
SLIDE 16

❏ is isogenous to Weil restriction ❲ of ❊, so computing #❏(F♣) is fast.

slide-17
SLIDE 17

❏ is isogenous to Weil restriction ❲ of ❊, so computing #❏(F♣) is fast. 2003 Scholten: this strategy for building many genus-2 curves with fast point-counting.

slide-18
SLIDE 18

❏ is isogenous to Weil restriction ❲ of ❊, so computing #❏(F♣) is fast. 2003 Scholten: this strategy for building many genus-2 curves with fast point-counting. Handles all elliptic curves

  • ver F♣2 with full 2-torsion

(and more elliptic curves). Geometrically: all elliptic curves; codim 1 in hyperelliptic curves.

slide-19
SLIDE 19

New: not just point-counting Alice generates secret ❛ ✷ Z. Bob generates secret ❜ ✷ Z. Alice computes ❛● ✷ ❊(F♣2) using standard ● ✷ ❊(F♣2). Top speed: Edwards coordinates. Alice sends ❛● to Bob. Bob views ❛● in ❲(F♣), applies isogeny ❲(F♣) ✦ ❏(F♣), computes ❜(❛●) in ❏(F♣). Top speed: Kummer coordinates.

slide-20
SLIDE 20

In general: use isogenies ✓ : ❲ ✦ ❏ and ✓✵ : ❏ ✦ ❲ to dynamically move computations between ❊(F♣2) and ❏(F♣). But do we have fast formulas for ✓✵ and for dual isogeny ✓?

slide-21
SLIDE 21

In general: use isogenies ✓ : ❲ ✦ ❏ and ✓✵ : ❏ ✦ ❲ to dynamically move computations between ❊(F♣2) and ❏(F♣). But do we have fast formulas for ✓✵ and for dual isogeny ✓? Scholten: Define ✣ : ❍ ✦ ❊ as (③❀ ②) ✼✦ ✒(1 + ✐③)2 (1 ✐③)2 ❀ ✦② (1 ✐③)3 ✓ . Composition of ✣2 : (P1❀ P2) ✼✦ ✣(P1)+✣(P2) and standard ❊✦❲ is composition of standard ❍ ✂ ❍ ✦ ❏ and some ✓✵ : ❏ ✦ ❲.

slide-22
SLIDE 22

The conventional continuation:

  • 1. Prove that ✓✵ is an isogeny

by analyzing fibers of ✣2.

  • 2. Observe that ✓ ✍ ✓✵ = 2

for some isogeny ✓.

  • 3. Compute formulas for ✓✵: take

P✐ = (③✐❀ ②✐) on ❍ : ②2 = ❢(③)

  • ver F♣(③1❀ ③2)[②1❀ ②2]

❂(②2

1 ❢(③1)❀ ②2 2 ❢(③2));

compose definition of ✣ with addition formulas on ❊; eliminate ③1❀ ③2❀ ②1❀ ②2 in favor of Mumford coordinates.

slide-23
SLIDE 23
  • 4. Simplify formulas for ✓✵

using, e.g., 2006 Monagan–Pearce “rational simplification” method.

  • 5. Find ✓: norm–conorm etc.
slide-24
SLIDE 24
  • 4. Simplify formulas for ✓✵

using, e.g., 2006 Monagan–Pearce “rational simplification” method.

  • 5. Find ✓: norm–conorm etc.

Much easier: We applied ✣2 to random points in ❍(F♣) ✂ ❍(F♣), interpolated coefficients of ✓✵. Similarly interpolated formulas for ✓; verified composition. Easy computer calculation. “Wasting brain power is bad for the environment.”

slide-25
SLIDE 25

New: small coefficients ❑ defined by 3 coeffs. Only 2 degrees of freedom in ❊. Can’t expect small-height coeffs. ✿ ✿ ✿ unless everything lifts to Q.

slide-26
SLIDE 26

New: small coefficients ❑ defined by 3 coeffs. Only 2 degrees of freedom in ❊. Can’t expect small-height coeffs. ✿ ✿ ✿ unless everything lifts to Q. Choose non-square ∆ ✷ Q; distinct squares ✚1❀ ✚2❀ ✚3

  • f norm-1 elements of Q(

♣ ∆); r ✷ Q( ♣ ∆) with ✚1✚2✚3 = r❂r. Define s = r(✚1 + ✚2 + ✚3). Then r①3 + s①2 + s① + r = r(① ✚1)(① ✚2)(① ✚3).

slide-27
SLIDE 27

Choose ☞ ✷ Q( ♣ ∆) with ☞ ❂ ✷ Q and (☞❂☞)2 ❂ ✷ ❢✚1❀ ✚2❀ ✚3❣. Then the Scholten curve (r☞6 + s☞4☞2 + s☞2☞4 + r☞6)②2 = r(1☞③)6+s(1☞③)4(1☞③)2+ s(1 ☞③)2(1 ☞③)4 + r(1 ☞③)6 has full 2-torsion over Q. In many cases corresponding Rosenhain parameters ✕❀ ✖❀ ✗ have ✕✖ ✗ and ✖(✖ 1)(✕ ✗) ✗(✗ 1)(✕ ✖) both squares in Q, so ❑ is defined over Q. (Degenerate cases: see paper.)

slide-28
SLIDE 28

Example: Choose ∆ = 1; ✚1 = (✐)2, ✚2 = ((3 + 4✐)❂5)2, ✚3 = ((5+12✐)❂13)2; r = 33+56✐, s = 159 + 56✐, ☞ = ✐. One Rosenhain choice is ✕ = 10, ✖ = 5❂8, ✗ = 25. Then ✕✖ ✗ = 1 22 and ✖(✖ 1)(✕ ✗) ✗(✗ 1)(✕ ✖) = 1 402 . Larger example: r = 8648575 15615600✐, s = 40209279 33245520✐; coeffs (6137 : 833 : 2275 : 2275).

slide-29
SLIDE 29