How to use Koblitz curves on small devices?users.ics.aalto.fi/~kjarvine/slides/cardis2014.pdf ·...

30
1,2 1 1 2

Transcript of How to use Koblitz curves on small devices?users.ics.aalto.fi/~kjarvine/slides/cardis2014.pdf ·...

Page 1: How to use Koblitz curves on small devices?users.ics.aalto.fi/~kjarvine/slides/cardis2014.pdf · CARDIS 2014, Paris, France, Nov. 5 7, 2014. Introduction 2/16 Elliptic curves are

How to use Koblitz curves onsmall devices?

Kimmo Järvinen1,2 Ingrid Verbauwhede1

1 KU Leuven (Belgium)2 Aalto University (Finland)

CARDIS 2014, Paris, France, Nov. 5�7, 2014

Page 2: How to use Koblitz curves on small devices?users.ics.aalto.fi/~kjarvine/slides/cardis2014.pdf · CARDIS 2014, Paris, France, Nov. 5 7, 2014. Introduction 2/16 Elliptic curves are

Introduction 2/16

Elliptic curves are good for lightweight public-key crypto

Koblitz curves allow very fast kP⇒ Point doublings are replaced by cheap Frobenius maps

⇒ The scalar k is needed as a τ -adic expansion K⇒ Conversions are needed and they are expensive

We provide a solution to this problem:

Conversions can be delegated to a more powerful party if the

weaker party computes all operations in the τ -adic domain

CARDIS 2014, Paris, France, Nov. 5�7, 2014

Page 3: How to use Koblitz curves on small devices?users.ics.aalto.fi/~kjarvine/slides/cardis2014.pdf · CARDIS 2014, Paris, France, Nov. 5 7, 2014. Introduction 2/16 Elliptic curves are

Introduction 2/16

Elliptic curves are good for lightweight public-key crypto

Koblitz curves allow very fast kP⇒ Point doublings are replaced by cheap Frobenius maps

⇒ The scalar k is needed as a τ -adic expansion K⇒ Conversions are needed and they are expensive

We provide a solution to this problem:

Conversions can be delegated to a more powerful party if the

weaker party computes all operations in the τ -adic domain

CARDIS 2014, Paris, France, Nov. 5�7, 2014

Page 4: How to use Koblitz curves on small devices?users.ics.aalto.fi/~kjarvine/slides/cardis2014.pdf · CARDIS 2014, Paris, France, Nov. 5 7, 2014. Introduction 2/16 Elliptic curves are

Koblitz Curves 3/16

Elliptic curves over GF (2m) of the form:

E : x2 + xy = y3 + ax2 + 1, where a ∈ {0, 1}

If P = (x, y) ∈ E, then also F (P) = (x2, y2) ∈ E2P = µF (P)− F (F (P)) where µ = (−1)1−a

Frobenius can be seen as a multiplication by the complex number:

τ = (µ+√−7)/2

If k is given in base-τ as K =∑Kiτ

i, then Frobenius maps can be

used for computing kP⇒ Fast Frobenius-and-add instead of slow double-and-add

CARDIS 2014, Paris, France, Nov. 5�7, 2014

Page 5: How to use Koblitz curves on small devices?users.ics.aalto.fi/~kjarvine/slides/cardis2014.pdf · CARDIS 2014, Paris, France, Nov. 5 7, 2014. Introduction 2/16 Elliptic curves are

Koblitz Curves 3/16

Elliptic curves over GF (2m) of the form:

E : x2 + xy = y3 + ax2 + 1, where a ∈ {0, 1}

If P = (x, y) ∈ E, then also F (P) = (x2, y2) ∈ E2P = µF (P)− F (F (P)) where µ = (−1)1−a

Frobenius can be seen as a multiplication by the complex number:

τ = (µ+√−7)/2

If k is given in base-τ as K =∑Kiτ

i, then Frobenius maps can be

used for computing kP⇒ Fast Frobenius-and-add instead of slow double-and-add

CARDIS 2014, Paris, France, Nov. 5�7, 2014

Page 6: How to use Koblitz curves on small devices?users.ics.aalto.fi/~kjarvine/slides/cardis2014.pdf · CARDIS 2014, Paris, France, Nov. 5 7, 2014. Introduction 2/16 Elliptic curves are

Example: ECDSA Signature Generation 4/16

Signature (r, s) for a message m:

k ∈R [1, q − 1]r = [kP]xe = H(m)

s = k−1(e+ dr) mod q

CARDIS 2014, Paris, France, Nov. 5�7, 2014

Page 7: How to use Koblitz curves on small devices?users.ics.aalto.fi/~kjarvine/slides/cardis2014.pdf · CARDIS 2014, Paris, France, Nov. 5 7, 2014. Introduction 2/16 Elliptic curves are

Existing Options for EC Cryptosystems 5/16

Option A: Convert a random integer to the τ -adic domain

RNG Conv. ECSM Arith.

Consts.

Tag

Ops.

Server

Option B: Convert a random τ -adic expansion to an integer

RNG

ECSM

Conv.

Arith.

Consts.

Tag

Ops.

Server

CARDIS 2014, Paris, France, Nov. 5�7, 2014

Page 8: How to use Koblitz curves on small devices?users.ics.aalto.fi/~kjarvine/slides/cardis2014.pdf · CARDIS 2014, Paris, France, Nov. 5 7, 2014. Introduction 2/16 Elliptic curves are

Existing Options for EC Cryptosystems 5/16

Option A: Convert a random integer to the τ -adic domain

RNG Conv. ECSM Arith.

Consts.

Tag

Ops.

Server

Option B: Convert a random τ -adic expansion to an integer

RNG

ECSM

Conv.

Arith.

Consts.

Tag

Ops.

Server

CARDIS 2014, Paris, France, Nov. 5�7, 2014

Page 9: How to use Koblitz curves on small devices?users.ics.aalto.fi/~kjarvine/slides/cardis2014.pdf · CARDIS 2014, Paris, France, Nov. 5 7, 2014. Introduction 2/16 Elliptic curves are

The New Idea: Delegate Conversions to the Server 6/16

RNG ECSM Arith.

Consts.

Tag

Conv. Ops.

Server

The tag computes everything in the τ -adic domain

(values that don't depend on k can be computed normally)

Resources are saved if operations in the τ -adic domain are cheap

(cheaper than conversions)

We need an e�cient algorithm for addition of two τ -adicexpansions; other arithmetic operations can be implemented using it

CARDIS 2014, Paris, France, Nov. 5�7, 2014

Page 10: How to use Koblitz curves on small devices?users.ics.aalto.fi/~kjarvine/slides/cardis2014.pdf · CARDIS 2014, Paris, France, Nov. 5 7, 2014. Introduction 2/16 Elliptic curves are

Binary Addition 7/16

a = 19 = 〈1, 0, 0, 1, 1〉 and b = 17 = 〈1, 0, 0, 0, 1〉Then, c = 36 = 〈1, 0, 0, 1, 0, 0〉 is given as follows:

1 0 0 1 1 0

1 0 0 1 1

+ 1 0 0 0 1

1 2 0 1 2 2

= 1 0 0 1 0 0

With any base B ∈ Z+, we can do:

ri = ai + bi + ti−1

ci = ri mod Bti = (ri − ci)/B

CARDIS 2014, Paris, France, Nov. 5�7, 2014

Page 11: How to use Koblitz curves on small devices?users.ics.aalto.fi/~kjarvine/slides/cardis2014.pdf · CARDIS 2014, Paris, France, Nov. 5 7, 2014. Introduction 2/16 Elliptic curves are

τ -adic Addition 8/16

The carry is a τ -adic number t ∈ Z[τ ] and it is uniquely given by

t = t0 + t1τ with t0,1 ∈ Z (Solinas, 2000)

ri and Ci are given similarly (only t0 a�ects Ci)

Division (t− Ci)/τ is given by

(t0, t1)← (t1 + µ(t0 − Ci)/2,−(t0 − Ci)/2) (Solinas, 2000)

ri = Ai +Bi + t0Ci = ri mod 2t0 = t1 + µ(t0 − Ci)/2t1 = −(t0 − Ci)/2

CARDIS 2014, Paris, France, Nov. 5�7, 2014

Page 12: How to use Koblitz curves on small devices?users.ics.aalto.fi/~kjarvine/slides/cardis2014.pdf · CARDIS 2014, Paris, France, Nov. 5 7, 2014. Introduction 2/16 Elliptic curves are

τ -adic Addition 8/16

The carry is a τ -adic number t ∈ Z[τ ] and it is uniquely given by

t = t0 + t1τ with t0,1 ∈ Z (Solinas, 2000)

ri and Ci are given similarly (only t0 a�ects Ci)

Division (t− Ci)/τ is given by

(t0, t1)← (t1 + µ(t0 − Ci)/2,−(t0 − Ci)/2) (Solinas, 2000)

ri = Ai +Bi + t0Ci = ri mod 2

t0 = t1 + µ(t0 − Ci)/2t1 = −(t0 − Ci)/2

CARDIS 2014, Paris, France, Nov. 5�7, 2014

Page 13: How to use Koblitz curves on small devices?users.ics.aalto.fi/~kjarvine/slides/cardis2014.pdf · CARDIS 2014, Paris, France, Nov. 5 7, 2014. Introduction 2/16 Elliptic curves are

τ -adic Addition 8/16

The carry is a τ -adic number t ∈ Z[τ ] and it is uniquely given by

t = t0 + t1τ with t0,1 ∈ Z (Solinas, 2000)

ri and Ci are given similarly (only t0 a�ects Ci)

Division (t− Ci)/τ is given by

(t0, t1)← (t1 + µ(t0 − Ci)/2,−(t0 − Ci)/2) (Solinas, 2000)

ri = Ai +Bi + t0Ci = ri mod 2t0 = t1 + µ(t0 − Ci)/2t1 = −(t0 − Ci)/2

CARDIS 2014, Paris, France, Nov. 5�7, 2014

Page 14: How to use Koblitz curves on small devices?users.ics.aalto.fi/~kjarvine/slides/cardis2014.pdf · CARDIS 2014, Paris, France, Nov. 5 7, 2014. Introduction 2/16 Elliptic curves are

Example: τ -adic Addition (µ = 1) 9/16

A = 1 + τ + τ4 = 〈1, 0, 0, 1, 1〉B = 1 + τ4 = 〈1, 0, 0, 0, 1〉

1 0 0 0 1

+ 1 0 0 1 1

=

1 1 1 0 0 0

ri = t0 +Ai +Bi

Ci = ri mod 2t0 = t1 + µ(t0 − Ci)/2t1 = −(t0 − Ci)/2

Hence, C = A+B = 〈1, 1, 1, 0, 0, 0〉 = τ3 + τ4 + τ5

CARDIS 2014, Paris, France, Nov. 5�7, 2014

Page 15: How to use Koblitz curves on small devices?users.ics.aalto.fi/~kjarvine/slides/cardis2014.pdf · CARDIS 2014, Paris, France, Nov. 5 7, 2014. Introduction 2/16 Elliptic curves are

Example: τ -adic Addition (µ = 1) 9/16

A = 1 + τ + τ4 = 〈1, 0, 0, 1, 1〉B = 1 + τ4 = 〈1, 0, 0, 0, 1〉

-1 1

0 0

1 0 0 0 1

+ 1 0 0 1 1

=

1 1 1 0 0

0

ri = 0 + 1 + 1 = 2Ci = 2 mod 2 = 0t0 = 0 + 1 · (2− 0)/2 = 1t1 = −1 · (2− 0)/2 = −1

Hence, C = A+B = 〈1, 1, 1, 0, 0, 0〉 = τ3 + τ4 + τ5

CARDIS 2014, Paris, France, Nov. 5�7, 2014

Page 16: How to use Koblitz curves on small devices?users.ics.aalto.fi/~kjarvine/slides/cardis2014.pdf · CARDIS 2014, Paris, France, Nov. 5 7, 2014. Introduction 2/16 Elliptic curves are

Example: τ -adic Addition (µ = 1) 9/16

A = 1 + τ + τ4 = 〈1, 0, 0, 1, 1〉B = 1 + τ4 = 〈1, 0, 0, 0, 1〉

-1 0

-1 1

1 0 0 0 1

+ 1 0 0 1 1

=

1 1 1 0

0 0

ri = 1 + 0 + 1 = 2Ci = 2 mod 2 = 0t0 = −1 + 1 · (2− 0)/2 = 0t1 = −1 · (2− 0)/2 = −1

Hence, C = A+B = 〈1, 1, 1, 0, 0, 0〉 = τ3 + τ4 + τ5

CARDIS 2014, Paris, France, Nov. 5�7, 2014

Page 17: How to use Koblitz curves on small devices?users.ics.aalto.fi/~kjarvine/slides/cardis2014.pdf · CARDIS 2014, Paris, France, Nov. 5 7, 2014. Introduction 2/16 Elliptic curves are

Example: τ -adic Addition (µ = 1) 9/16

A = 1 + τ + τ4 = 〈1, 0, 0, 1, 1〉B = 1 + τ4 = 〈1, 0, 0, 0, 1〉

0 -1

-1 0

1 0 0 0 1

+ 1 0 0 1 1

=

1 1 1

0 0 0

ri = 0 + 0 + 0 = 2Ci = 0 mod 2 = 0t0 = −1 + 1 · (0− 0)/2 = −1t1 = −1 · (0− 0)/2 = 0

Hence, C = A+B = 〈1, 1, 1, 0, 0, 0〉 = τ3 + τ4 + τ5

CARDIS 2014, Paris, France, Nov. 5�7, 2014

Page 18: How to use Koblitz curves on small devices?users.ics.aalto.fi/~kjarvine/slides/cardis2014.pdf · CARDIS 2014, Paris, France, Nov. 5 7, 2014. Introduction 2/16 Elliptic curves are

Example: τ -adic Addition (µ = 1) 9/16

A = 1 + τ + τ4 = 〈1, 0, 0, 1, 1〉B = 1 + τ4 = 〈1, 0, 0, 0, 1〉

1 -1

0 -1

1 0 0 0 1

+ 1 0 0 1 1

=

1 1

1 0 0 0

ri = −1 + 0 + 0 = −1Ci = −1 mod 2 = 1t0 = 0 + 1 · (−1− 1)/2 = −1t1 = −1 · (−1− 1)/2 = 1

Hence, C = A+B = 〈1, 1, 1, 0, 0, 0〉 = τ3 + τ4 + τ5

CARDIS 2014, Paris, France, Nov. 5�7, 2014

Page 19: How to use Koblitz curves on small devices?users.ics.aalto.fi/~kjarvine/slides/cardis2014.pdf · CARDIS 2014, Paris, France, Nov. 5 7, 2014. Introduction 2/16 Elliptic curves are

Example: τ -adic Addition (µ = 1) 9/16

A = 1 + τ + τ4 = 〈1, 0, 0, 1, 1〉B = 1 + τ4 = 〈1, 0, 0, 0, 1〉

0 1

1 -1

1 0 0 0 1

+ 1 0 0 1 1

=

1

1 1 0 0 0

ri = −1 + 1 + 1 = 1Ci = 1 mod 2 = 1t0 = 1 + 1 · (1− 1)/2 = 1t1 = −1 · (1− 1)/2 = 0

Hence, C = A+B = 〈1, 1, 1, 0, 0, 0〉 = τ3 + τ4 + τ5

CARDIS 2014, Paris, France, Nov. 5�7, 2014

Page 20: How to use Koblitz curves on small devices?users.ics.aalto.fi/~kjarvine/slides/cardis2014.pdf · CARDIS 2014, Paris, France, Nov. 5 7, 2014. Introduction 2/16 Elliptic curves are

Example: τ -adic Addition (µ = 1) 9/16

A = 1 + τ + τ4 = 〈1, 0, 0, 1, 1〉B = 1 + τ4 = 〈1, 0, 0, 0, 1〉

0 0

0 1

1 0 0 0 1

+ 1 0 0 1 1

= 1 1 1 0 0 0

ri = 1 + 0 + 0 = 1Ci = 1 mod 2 = 1t0 = 0 + 1 · (1− 1)/2 = 0

t1 = −1 · (1− 1)/2 = 0

Hence, C = A+B = 〈1, 1, 1, 0, 0, 0〉 = τ3 + τ4 + τ5

CARDIS 2014, Paris, France, Nov. 5�7, 2014

Page 21: How to use Koblitz curves on small devices?users.ics.aalto.fi/~kjarvine/slides/cardis2014.pdf · CARDIS 2014, Paris, France, Nov. 5 7, 2014. Introduction 2/16 Elliptic curves are

Addition Described as an FSM 10/16

Ai ∈ {0, 1} and Bi ∈ {0,±1} tosupport τNAF

FSM includes 21 states

The state (t0, t1) witht0 ∈ [−3, 3] and t1 ∈ [−2, 2]At most 7 steps to reach (0, 0)when all Ai = Bi = 0

Re−2.5 −2.0 −1.5 −1.0 −0.5 0.5 1.0 1.5 2.0 2.5

Im

−3.0

−2.5

−2.0

−1.5

−1.0

−0.5

0.5

1.0

1.5

2.0

2.5

3.0

(0,0)

(1,-1)(0,-1)

(-1,0)

(-1,1)

(1,0)

(-2,1) (0,1)

(2,-1)

(1,-2)

(-1,-1)

(-2,0)

(-2,2)

(2,0)

(2,-2)(0,-2)

(-3,1)

(-1,2)

(1,1)

(0,2)

(3,-1)

-1/

1

0,1 / 0,1

2/

0-1,0/0,1

1,2 / 0,1

-1/

10,1

/0,1

2 / 0

-1,0

/0,1

1,2 / 0,1

-1,0 / 0,1

1,2/0,1

-1,0 / 0,1

1,2

/0,1

-1/1

0,1 / 0,1

2 / 0

-1 / 1 0,1

/0,1

2/

0

-1 / 1

0,1 / 0,1

2/0

-1,0/0,1

1,2/0,1

-1,0

/0,1

1,2

/0,1

-1/

1

0,1/0,1

2 / 0

-1 / 1

0,1 / 0,1

2/0

-1 / 1

0,1/0,1

2/

0

-1 / 1

0,1 / 0,1

2 / 0

-1/

1

0,1

/0,1

2/

0

-1,0 / 0,1

1,2 / 0,1

-1,0/0,1

1,2/0,1

-1,0

/0,1

1,2

/0,1

-1/

1

0,1

/0,1

2/

0

-1,0 / 0,1

1,2/ 0,1

µ = 1

CARDIS 2014, Paris, France, Nov. 5�7, 2014

Page 22: How to use Koblitz curves on small devices?users.ics.aalto.fi/~kjarvine/slides/cardis2014.pdf · CARDIS 2014, Paris, France, Nov. 5 7, 2014. Introduction 2/16 Elliptic curves are

Addition Described as an FSM 10/16

Ai ∈ {0, 1} and Bi ∈ {0,±1} tosupport τNAF

FSM includes 21 states

The state (t0, t1) witht0 ∈ [−3, 3] and t1 ∈ [−2, 2]At most 7 steps to reach (0, 0)when all Ai = Bi = 0

Re−2.5 −2.0 −1.5 −1.0 −0.5 0.5 1.0 1.5 2.0 2.5

Im

−3.0

−2.5

−2.0

−1.5

−1.0

−0.5

0.5

1.0

1.5

2.0

2.5

3.0

(0,0)

(1,-1)(0,-1)

(-1,0)

(-1,1)

(1,0)

(-2,1) (0,1)

(2,-1)

(1,-2)

(-1,-1)

(-2,0)

(-2,2)

(2,0)

(2,-2)(0,-2)

(-3,1)

(-1,2)

(1,1)

(0,2)

(3,-1)

-1/

1

0,1 / 0,1

2/

0-1,0/0,1

1,2 / 0,1

-1/

10,1

/0,1

2 / 0

-1,0

/0,1

1,2 / 0,1

-1,0 / 0,1

1,2/0,1

-1,0 / 0,1

1,2

/0,1

-1/1

0,1 / 0,1

2 / 0

-1 / 1 0,1

/0,1

2/

0

-1 / 1

0,1 / 0,1

2/0

-1,0/0,1

1,2/0,1

-1,0

/0,1

1,2

/0,1

-1/

1

0,1/0,1

2 / 0

-1 / 1

0,1 / 0,1

2/0

-1 / 1

0,1/0,1

2/

0

-1 / 1

0,1 / 0,1

2 / 0

-1/

1

0,1

/0,1

2/

0

-1,0 / 0,1

1,2 / 0,1

-1,0/0,1

1,2/0,1

-1,0

/0,1

1,2

/0,1

-1/

1

0,1

/0,1

2/

0

-1,0 / 0,1

1,2/ 0,1

µ = 1

CARDIS 2014, Paris, France, Nov. 5�7, 2014

Page 23: How to use Koblitz curves on small devices?users.ics.aalto.fi/~kjarvine/slides/cardis2014.pdf · CARDIS 2014, Paris, France, Nov. 5 7, 2014. Introduction 2/16 Elliptic curves are

Addition Algorithm 11/16

Input: τ -adic expansions A =∑n−1

i=0 Aiτi and B =

∑n−1i=0 Biτ

i

Output: τ -adic expansion C = A+B with Ci ∈ {0, 1}(t0, t1)← (0, 0)for i = 0 to n+ 6 do

r ← Ai +Bi + t0Ci ← r0(t0, t1)← (t1 + µ br/2c ,−br/2c)

CARDIS 2014, Paris, France, Nov. 5�7, 2014

Page 24: How to use Koblitz curves on small devices?users.ics.aalto.fi/~kjarvine/slides/cardis2014.pdf · CARDIS 2014, Paris, France, Nov. 5 7, 2014. Introduction 2/16 Elliptic curves are

Other Arithmetic Operations 12/16

Multiplication

shift-and-add (both operands τ -adic expansion)

double-and-add (an integer and a τ -adic expansion)

Inversion mod q

Fermat's Little Theorem A−1 = Aq−2

Folding

Integer equivalent of A =∑n−1

i=0 Aiτi given by a =

∑Ais

i mod qwhere s is a curve constant such that sm ≡ 1 (mod q) (Lange, 2005)Split A into m-bit blocks A(0), . . . , A(bn/mc) and compute

A(0) +A(1) + . . .+A(bn/mc) with the addition algorithm

Length of A can be reduced to approx. m

CARDIS 2014, Paris, France, Nov. 5�7, 2014

Page 25: How to use Koblitz curves on small devices?users.ics.aalto.fi/~kjarvine/slides/cardis2014.pdf · CARDIS 2014, Paris, France, Nov. 5 7, 2014. Introduction 2/16 Elliptic curves are

Other Arithmetic Operations 12/16

Multiplication

shift-and-add (both operands τ -adic expansion)

double-and-add (an integer and a τ -adic expansion)

Inversion mod q

Fermat's Little Theorem A−1 = Aq−2

Folding

Integer equivalent of A =∑n−1

i=0 Aiτi given by a =

∑Ais

i mod qwhere s is a curve constant such that sm ≡ 1 (mod q) (Lange, 2005)Split A into m-bit blocks A(0), . . . , A(bn/mc) and compute

A(0) +A(1) + . . .+A(bn/mc) with the addition algorithm

Length of A can be reduced to approx. m

CARDIS 2014, Paris, France, Nov. 5�7, 2014

Page 26: How to use Koblitz curves on small devices?users.ics.aalto.fi/~kjarvine/slides/cardis2014.pdf · CARDIS 2014, Paris, France, Nov. 5 7, 2014. Introduction 2/16 Elliptic curves are

Other Arithmetic Operations 12/16

Multiplication

shift-and-add (both operands τ -adic expansion)

double-and-add (an integer and a τ -adic expansion)

Inversion mod q

Fermat's Little Theorem A−1 = Aq−2

Folding

Integer equivalent of A =∑n−1

i=0 Aiτi given by a =

∑Ais

i mod qwhere s is a curve constant such that sm ≡ 1 (mod q) (Lange, 2005)Split A into m-bit blocks A(0), . . . , A(bn/mc) and compute

A(0) +A(1) + . . .+A(bn/mc) with the addition algorithm

Length of A can be reduced to approx. m

CARDIS 2014, Paris, France, Nov. 5�7, 2014

Page 27: How to use Koblitz curves on small devices?users.ics.aalto.fi/~kjarvine/slides/cardis2014.pdf · CARDIS 2014, Paris, France, Nov. 5 7, 2014. Introduction 2/16 Elliptic curves are

Architecture (µ = 1) 13/16

t0,2 t0,1 t0,0 t1,2 t1,1 t1,0

FA’ FA HA HA’ HA

HA

HA’

HA

FA

FA

FA’

Ai

Bi,0

Bi,1

r0

r1

r2

r3

Ci

CARDIS 2014, Paris, France, Nov. 5�7, 2014

Page 28: How to use Koblitz curves on small devices?users.ics.aalto.fi/~kjarvine/slides/cardis2014.pdf · CARDIS 2014, Paris, France, Nov. 5 7, 2014. Introduction 2/16 Elliptic curves are

Synthesis Results and Comparisons 14/16

130 nm CMOS, Synopsys Design Compiler, VHDL

75.25GE (µ = 1) or 76.25GE (µ = −1)

Work Technology GE

(Brumley, 2010), integer-to-τNAF FPGA, Stratix II S60C4 >7200(Brumley, 2010), τ -adic-to-integer FPGA, Stratix II S60C4 >3600

This work, µ = 1 ASIC, 0.13µm CMOS 75.25

This work, µ = 1 ASIC, 0.13µm CMOS ∼2000

CARDIS 2014, Paris, France, Nov. 5�7, 2014

Page 29: How to use Koblitz curves on small devices?users.ics.aalto.fi/~kjarvine/slides/cardis2014.pdf · CARDIS 2014, Paris, France, Nov. 5 7, 2014. Introduction 2/16 Elliptic curves are

Conclusions and Future Work 15/16

Conclusions

Expensive conversions can be delegated to a more powerful party by

using cheap τ -adic arithmetic

Koblitz curves are viable also for lightweight implementations

Future Work

Side-channel countermeasures

Bit-serial → digit-serial

Entire elliptic curve cryptosystem (e.g., ECDSA signing)

CARDIS 2014, Paris, France, Nov. 5�7, 2014

Page 30: How to use Koblitz curves on small devices?users.ics.aalto.fi/~kjarvine/slides/cardis2014.pdf · CARDIS 2014, Paris, France, Nov. 5 7, 2014. Introduction 2/16 Elliptic curves are

Thank you! Questions?

CARDIS 2014, Paris, France, Nov. 5�7, 2014