+ All Categories
Home > Documents > Elliptic Curve Cryptosystemstawalbeh/nyit/csci860/notes/ec1.pdfElliptic Curve Cryptosystems Elliptic...

Elliptic Curve Cryptosystemstawalbeh/nyit/csci860/notes/ec1.pdfElliptic Curve Cryptosystems Elliptic...

Date post: 04-Jun-2020
Category:
Upload: others
View: 13 times
Download: 0 times
Share this document with a friend
34
Elliptic Curve Cryptosystems C ¸etin Kaya Ko¸ c Oregon State University 1
Transcript
Page 1: Elliptic Curve Cryptosystemstawalbeh/nyit/csci860/notes/ec1.pdfElliptic Curve Cryptosystems Elliptic curves defined over GF(p) or GF(2k) are used in cryptography The arithmetic of

Elliptic Curve Cryptosystems

Cetin Kaya Koc

Oregon State University

1

Page 2: Elliptic Curve Cryptosystemstawalbeh/nyit/csci860/notes/ec1.pdfElliptic Curve Cryptosystems Elliptic curves defined over GF(p) or GF(2k) are used in cryptography The arithmetic of

Elliptic Curve Cryptosystems

Elliptic curves defined over GF (p) or GF (2k)

are used in cryptography

The arithmetic of GF (p) is the usual mod p

arithmetic

The arithmetic of GF (2k) is similar to that of

GF (p), however, there are some differences

Elliptic curves over GF (2k) are more popular

due to the space and time-efficient algorithms

for doing arithmetic in GF (2k)

Elliptic curve cryptosystems based on discrete

logarithms seem to provide similar amount of

security to that of RSA, but with relatively

shorter key sizes

2

Page 3: Elliptic Curve Cryptosystemstawalbeh/nyit/csci860/notes/ec1.pdfElliptic Curve Cryptosystems Elliptic curves defined over GF(p) or GF(2k) are used in cryptography The arithmetic of

Elliptic Curves over GF (p)

Let p > 3 be a prime number and a, b ∈ GF (p)

be such that 4a3 + 27b2 6= 0 in GF (p). An

elliptic curve E over GF (p) is defined by the

parameters a and b as the set of solutions (x, y)

where x, y ∈ GF (p) to the equation

y2 = x3 + ax + b

together with an extra point O. The set of

points E form a group with respect to the ad-

dition rules:

• O + O = O

• (x, y) + O = (x, y)

• (x, y) + (x,−y) = O

3

Page 4: Elliptic Curve Cryptosystemstawalbeh/nyit/csci860/notes/ec1.pdfElliptic Curve Cryptosystems Elliptic curves defined over GF(p) or GF(2k) are used in cryptography The arithmetic of

Elliptic Curves over GF (p)

• Addition of two points with x1 6= x2

(x1, y1) + (x2, y2) = (x3, y3)

λ = (y2 − y1)(x2 − x1)−1

x3 = λ2 − x1 − x2

y3 = λ(x1 − x3)− y1

• Doubling of a point with x1 6= 0

(x1, y1) + (x1, y1) = (x3, y3)

λ = (3x21 + a)(2y1)

−1

x3 = λ2 − 2x1

y3 = λ(x1 − x3)− y1

4

Page 5: Elliptic Curve Cryptosystemstawalbeh/nyit/csci860/notes/ec1.pdfElliptic Curve Cryptosystems Elliptic curves defined over GF(p) or GF(2k) are used in cryptography The arithmetic of

Example: Let the elliptic curve be defined as

the solutions of

y2 = x3 + x + 1

over the field GF (23)

The group E has 28 points including O

Addition: (3,10) + (9,7) = (17,20)

λ = (7− 10)(9− 3)−1 = (−3)(6)−1 = 11

x3 = 112 − 3− 9 = 17

y3 = 11(3− 17)− 10 = 20

Doubling: (3,10) + (3,10) = (7,12)

λ = (3(32) + 1)(20)−1 = 6

x3 = 62 − 6 = 7

y3 = 6(3− 7)− 10 = 12

5

Page 6: Elliptic Curve Cryptosystemstawalbeh/nyit/csci860/notes/ec1.pdfElliptic Curve Cryptosystems Elliptic curves defined over GF(p) or GF(2k) are used in cryptography The arithmetic of

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19012345678910111213141516171819202122

y^2 = x^3 + x + 1

6

Page 7: Elliptic Curve Cryptosystemstawalbeh/nyit/csci860/notes/ec1.pdfElliptic Curve Cryptosystems Elliptic curves defined over GF(p) or GF(2k) are used in cryptography The arithmetic of

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19012345678910111213141516171819202122

(3,10) + (9,7) = (17,20)

(3,10)

(9,7)

(17,3)

(17,20)

7

Page 8: Elliptic Curve Cryptosystemstawalbeh/nyit/csci860/notes/ec1.pdfElliptic Curve Cryptosystems Elliptic curves defined over GF(p) or GF(2k) are used in cryptography The arithmetic of

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19012345678910111213141516171819202122

(3,10) + (3,10) = (7,12)

(3,10)(7,11)

(7,12)

8

Page 9: Elliptic Curve Cryptosystemstawalbeh/nyit/csci860/notes/ec1.pdfElliptic Curve Cryptosystems Elliptic curves defined over GF(p) or GF(2k) are used in cryptography The arithmetic of

Elliptic Curves over GF (2k)

A non-supersingular elliptic curve E over the

field GF (2k) is defined by parameters a, b ∈GF (2k) with b 6= 0 is the set of solutions (x, y)

where x, y ∈ GF (2k), to the equation

y2 + xy = x3 + ax2 + b

together with an extra point O. The set of

points E form a group with respect to the ad-

dition rules:

• O + O = O

• (x, y) + O = (x, y)

• (x, y) + (x, x + y) = O

9

Page 10: Elliptic Curve Cryptosystemstawalbeh/nyit/csci860/notes/ec1.pdfElliptic Curve Cryptosystems Elliptic curves defined over GF(p) or GF(2k) are used in cryptography The arithmetic of

Elliptic Curves over GF (2k)

• Addition of two points with x1 6= x2

(x1, y1) + (x2, y2) = (x3, y3)

λ = (y1 + y2)(x1 + x2)−1

x3 = λ2 + λ + x1 + x2 + a

y3 = λ(x1 + x3) + x3 + y1

• Doubling of a point with x1 6= 0

(x1, y1) + (x1, y1) = (x3, y3)

λ = x1 + (y1)(x1)−1

x3 = λ2 + λ + a

y3 = x21 + (λ + 1)x3

10

Page 11: Elliptic Curve Cryptosystemstawalbeh/nyit/csci860/notes/ec1.pdfElliptic Curve Cryptosystems Elliptic curves defined over GF(p) or GF(2k) are used in cryptography The arithmetic of

Elliptic Curve Cryptosystems

Based on the difficulty of computing e given

eP where P is a point on the curve

Example: Elliptic Curve Diffie-Hellman

Alice and Bob agree on, the elliptic curve E,

the underlying field GF (2k) or GF (p), and the

generating point P with order n

• Alice sends Q = aP to Bob

• Bob sends R = bP to Alice

• Alice computes S = a(R) = abP

• Bob computes S = b(Q) = abP

Adversary knows P , and sees Q and R

Computing S seems to require elliptic loga-

rithms

11

Page 12: Elliptic Curve Cryptosystemstawalbeh/nyit/csci860/notes/ec1.pdfElliptic Curve Cryptosystems Elliptic curves defined over GF(p) or GF(2k) are used in cryptography The arithmetic of

Elliptic Curve Arithmetic

Computation of eP can be performed using ex-

ponentiation algorithms

In order to compute e multiple of P we perform

elliptic curve additions

An elliptic curve addition is performed by using

a few finite field operations

Implementation of elliptic curve addition op-

eration requires implementation of four basic

finite field operations: addition, subtraction,

multiplication, and inversion

For example, addition of two distinct points

requires 2 field multiplications and 1 field in-

version

Inversion is a relatively expensive operation

12

Page 13: Elliptic Curve Cryptosystemstawalbeh/nyit/csci860/notes/ec1.pdfElliptic Curve Cryptosystems Elliptic curves defined over GF(p) or GF(2k) are used in cryptography The arithmetic of

Projective Coordinates

Projective coordinates eliminate the need for

performing inversion

In projective coordinates, a point on E has 3

coordinate values

(x1 : y1 : z1)

while the affine coordinates requires only two

values: (x1, y1)

Given the distinct points P and Q expressed in

projective coordinates

P = (x1 : y1 : z1)

Q = (x2 : y2 : z2)

We compute the projective coordinates of the

elliptic sum

P + Q = (x3 : y3 : z3)

13

Page 14: Elliptic Curve Cryptosystemstawalbeh/nyit/csci860/notes/ec1.pdfElliptic Curve Cryptosystems Elliptic curves defined over GF(p) or GF(2k) are used in cryptography The arithmetic of

Projective Coordinates

The projective addition formulae

A = x2z1 + x1

B = y2z1 + y1

C = A + B

D = A2(A + az1) + z1BC

x3 = AD

y3 = CD + A2(Bx1 + Ay1)

z3 = A3z1

This computation requires 13 field multiplica-

tions, and no inversion

14

Page 15: Elliptic Curve Cryptosystemstawalbeh/nyit/csci860/notes/ec1.pdfElliptic Curve Cryptosystems Elliptic curves defined over GF(p) or GF(2k) are used in cryptography The arithmetic of

Projective Coordinates

Similarly, the addition formulae for computing

2P is given as

A = x1z1

B = bz41 + x4

1

x3 = AB

y3 = x41A + B(x2

1 + y1z1 + A)

z3 = A3

This computation requires 7 field multiplica-

tions, and no inversion

Thus, we have eliminated the inversions at the

expense of

• storing 3 GF (2k) values to represent P

• performing a few more multiplications

15

Page 16: Elliptic Curve Cryptosystemstawalbeh/nyit/csci860/notes/ec1.pdfElliptic Curve Cryptosystems Elliptic curves defined over GF(p) or GF(2k) are used in cryptography The arithmetic of

Exponentiation Heuristics

Given the integer e, the computation of eP is

an exponentiation operation

The objective is to use as few elliptic curve

additions as possible for a given integer e

This problem is related to addition chains

An addition chain is a sequence of integers

a0 a1 a2 · · · ar

starting from a0 = 1 and ending with ar =

e such that any ak is the sum of two earlier

integers ai and aj in the chain:

ak = ai + aj for 0 < i, j < k

16

Page 17: Elliptic Curve Cryptosystemstawalbeh/nyit/csci860/notes/ec1.pdfElliptic Curve Cryptosystems Elliptic curves defined over GF(p) or GF(2k) are used in cryptography The arithmetic of

Addition Chains

Example: e = 55

1 2 3 6 12 13 26 27 54 551 2 3 6 12 13 26 52 551 2 4 5 10 20 40 50 551 2 3 5 10 11 22 44 55

An addition chain yields an algorithm for com-

puting eP given the integer e

P 2P 3P 5P 10P 11P 22P 44P 55P

The length of the chain r gives the number of

operations required to compute eP

17

Page 18: Elliptic Curve Cryptosystemstawalbeh/nyit/csci860/notes/ec1.pdfElliptic Curve Cryptosystems Elliptic curves defined over GF(p) or GF(2k) are used in cryptography The arithmetic of

Addition Chains

Finding the shortest addition chain is an NP-

complete problem

Let H(e) be the Hamming weight of e

Upper bound: blog2 ec+ H(e)− 1

Lower bound: log2 e + log2 H(e)− 2.13

Heuristics: binary, m-ary, sliding windows

Statistical methods, such as simulated anneal-

ing, can be used to produce short addition

chains for certain exponents

18

Page 19: Elliptic Curve Cryptosystemstawalbeh/nyit/csci860/notes/ec1.pdfElliptic Curve Cryptosystems Elliptic curves defined over GF(p) or GF(2k) are used in cryptography The arithmetic of

Binary Method

Scan the bits of e and perform elliptic curve

doublings and additions in order to compute

Q = eP

1. if ek−1 = 1 then Q := P else Q := O

2. for i = k − 2 downto 0

2a. Q := Q + Q

2b. if ei = 1 then Q := Q + P

3. return Q

Example: e = 55 = (110111)

Step 1: e5 = 1 −→ Q := P

i ei Step 2a (Q) Step 2b (Q)4 1 P + P = 2P 2P + P = 3P3 0 3P + 3P = 6P 6P2 1 6P + 6P = 12P 12P + P = 13P1 1 13P + 13P = 26P 26P + P = 27P0 1 27P + 27P = 54P 54P + P = 55P

19

Page 20: Elliptic Curve Cryptosystemstawalbeh/nyit/csci860/notes/ec1.pdfElliptic Curve Cryptosystems Elliptic curves defined over GF(p) or GF(2k) are used in cryptography The arithmetic of

Addition-Subtraction Chains

An addition-subtraction chain is a sequence of

integers

a0 a1 a2 · · · ar

starting from a0 = ±1 and ending with ar = e

such that any ak is the sum or the difference

of two earlier integers ai and aj in the chain:

ak = ai ± aj for 0 < i, j < k

Example: e = 55

±1 2 4 8 7 14 28 56 55

An addition-subtraction chain is an algorithm

for computing eP given the integer e

However, it requires negative multiples of P

20

Page 21: Elliptic Curve Cryptosystemstawalbeh/nyit/csci860/notes/ec1.pdfElliptic Curve Cryptosystems Elliptic curves defined over GF(p) or GF(2k) are used in cryptography The arithmetic of

Signed-Digit Recoding

A signed-digit recoding of e is a representation

of the integer e using the digits {−1,1,0}

Once a signed-digit recoding of e is obtained,

it can be scanned digit-by-digit in a way similar

to the binary method:

• No elliptic curve addition if ei = 0

• An elliptic curve addition using P if ei = 1

• An elliptic curve addition using −P if ei = −1

21

Page 22: Elliptic Curve Cryptosystemstawalbeh/nyit/csci860/notes/ec1.pdfElliptic Curve Cryptosystems Elliptic curves defined over GF(p) or GF(2k) are used in cryptography The arithmetic of

Signed-Digit Recoding Binary Method

Addition-subtraction chains are suitable for

elliptic curves since computing −P is trivial

For elliptic curves over GF (p):

if P = (x, y), then −P = (x,−y)

Non-supersingular elliptic curves over GF (2k):

if P = (x, y), then −P = (x, x + y)

Input: P,−P, e

Output: Q := eP

0. Obtain a signed-digit recoding f of e

1. if fk = 1 then Q := P else Q := O

2. for i = k − 1 downto 0

2a. Q := Q + Q

2b. if fi = 1 then Q := Q + P

if fi = 1 then Q := Q + (−P )

3. return Q

22

Page 23: Elliptic Curve Cryptosystemstawalbeh/nyit/csci860/notes/ec1.pdfElliptic Curve Cryptosystems Elliptic curves defined over GF(p) or GF(2k) are used in cryptography The arithmetic of

Canonical Recoding Algorithm

This algorithm optimally encodes the exponent

using the digits {0,1, 1}

ei+1 ei ai fi ai0 0 0 0 00 0 1 1 00 1 0 1 00 1 1 0 11 0 0 0 01 0 1 1 11 1 0 1 11 1 1 0 1

For example, e = 3038 is encoded as

e = (0101111011110)

f = (1010000100010)

requiring 3 elliptic curve additions instead of 9

(in addition to the elliptic curve doublings)

23

Page 24: Elliptic Curve Cryptosystemstawalbeh/nyit/csci860/notes/ec1.pdfElliptic Curve Cryptosystems Elliptic curves defined over GF(p) or GF(2k) are used in cryptography The arithmetic of

Properties of GF (2k) Arithmetic

An element a of GF (2k) is usually represented

as a binary vector (ak−1ak−2 · · · a1a0)

• The terms ai may interpreted as the coef-

ficients of the polynomial

ak−1xk−1 + ak−1xk−1 + · · ·+ a1x + a0

• The elements of GF (2k) can be viewed as

a vector space of dimension k over GF (2).

In this case, there exists a set of k elements

(called the basis)

α0, α1, . . . , αk−1 ∈ GF (2k)

such that a can be written uniquely in the

form

a = a0α0 + a1α1 + · · ·+ ak−1αk−1

24

Page 25: Elliptic Curve Cryptosystemstawalbeh/nyit/csci860/notes/ec1.pdfElliptic Curve Cryptosystems Elliptic curves defined over GF(p) or GF(2k) are used in cryptography The arithmetic of

Addition in GF (2k)

An element A of GF (2k) is represented using

either the polynomial basis

A = (Ak−1Ak−2 · · ·A1A0) =k−1∑i=0

Aixi

or the vector space basis

A = (Ak−1Ak−2 · · ·A1A0) =k−1∑i=0

Aiαi

where αi ∈ GF (2k) are known in advance

In either case, the computation of

C = (Ck−1Ck−2 · · ·C1C0) = A + B

is easily performed by component-wise modulo

2 addition (the XOR operation)

Ci = Ai + Bi (mod 2)

= Ai ⊕Bi

for i = 0,1, . . . , k − 1

25

Page 26: Elliptic Curve Cryptosystemstawalbeh/nyit/csci860/notes/ec1.pdfElliptic Curve Cryptosystems Elliptic curves defined over GF(p) or GF(2k) are used in cryptography The arithmetic of

• The total delay is O(1) (single XOR delay)

• The total area is k × XOR area

• Scales up easily for large k

• Subtraction is easy: The same as addition

xor

A0 B0

C0

xor

A1 B1

C1

xor

A2 B2

C2

xor

A3 B3

C3

26

Page 27: Elliptic Curve Cryptosystemstawalbeh/nyit/csci860/notes/ec1.pdfElliptic Curve Cryptosystems Elliptic curves defined over GF(p) or GF(2k) are used in cryptography The arithmetic of

Multiplication in GF (2k)

Using polynomial basis: We find an irreducible

polynomial of degree k

f(x) = xk + fk−1xk−1 + · · ·+ f1x + f0

The multiplication of C = A · B in GF (2k) is

performed by multiplying the polynomials A(x)

and B(x) modulo f(x)

This is similar to Multiply and Reduce method

of modular multiplication. Multiplication algo-

rithms (such as interleaving) can be used

Using vector space basis: Squaring and multi-

plication operations can be significantly simpli-

fied by judicious selection of the basis

For example, a normal basis can be used

27

Page 28: Elliptic Curve Cryptosystemstawalbeh/nyit/csci860/notes/ec1.pdfElliptic Curve Cryptosystems Elliptic curves defined over GF(p) or GF(2k) are used in cryptography The arithmetic of

Squaring in a Normal Basis

A normal basis of GF (2k) is a basis of the form

{β, β2, β4, . . . , β2k−1}

where β is an element of GF (2k). It is well-

known that such a basis always exists. Let A

be expressed in a normal basis. We have

A = (ak−1ak−2 · · · a1a0)

= a0β + a1β2 + a2β4 + · · ·+ ak−1β2k−1

We compute the square of A as

A2 = (k−1∑i=0

aiβ2i) · (

k−1∑i=0

aiβ2i)

=k−1∑i=0

(aiβ

2i)2

=k−1∑i=0

aiβ2i+1

= (ak−2ak−3 · · · a1a0ak−1)

which is a cyclic left shift of A

28

Page 29: Elliptic Curve Cryptosystemstawalbeh/nyit/csci860/notes/ec1.pdfElliptic Curve Cryptosystems Elliptic curves defined over GF(p) or GF(2k) are used in cryptography The arithmetic of

Multiplication in a Normal Basis

The product C = AB is given as

C =k−1∑i=0

Ciβ2i

=k−1∑i=0

k−1∑j=0

AiBjβ2i+2j

Since β2i+2jis also an element of GF (2k), it

can be expressed as

β2i+2j=

k−1∑r=0

λ(r)ij β2r

where λ(r)ij ∈ GF (2). This yields a formulae

Cr =k−1∑i=0

AiBiλ(r)ij for 0 ≤ r ≤ k − 1

We also notice that

β2i−s+2j−s=

k−1∑r=0

λ(r)i−s,j−sβ

2r=

k−1∑r=0

λ(r)ij β2r−s

which implies

λ(s)ij = λ

(0)i−s,j−s for all 0 ≤ i, j, s ≤ k − 1

29

Page 30: Elliptic Curve Cryptosystemstawalbeh/nyit/csci860/notes/ec1.pdfElliptic Curve Cryptosystems Elliptic curves defined over GF(p) or GF(2k) are used in cryptography The arithmetic of

Thus, we have a formula for Cr as

Cr =k−1∑i=0

k−1∑j=0

Ai+rBj+rλij

This formulae has remarkable properties:

• Consider a circuit built for computing C0

which receives the inputs as (in this order)

A0, A1, . . . , Ak−2, Ak−1

B0, B1, . . . , Bk−2, Bk−1

uses the formulae to compute

C0 =k−1∑i=0

k−1∑j=0

AiBjλij

The same circuit can be used to compute C1

with the inputs as

A1, A2, . . . , Ak−1A0

B1, B2, . . . , Bk−1B0

30

Page 31: Elliptic Curve Cryptosystemstawalbeh/nyit/csci860/notes/ec1.pdfElliptic Curve Cryptosystems Elliptic curves defined over GF(p) or GF(2k) are used in cryptography The arithmetic of

• The number of nonzero λijs determine the

complexity of the multiplication circuit

The upper-bound is k2

The lower-bound is shown to be 2k − 1

A normal basis with 2k−1 nonzero λs is called

an optimal normal basis

Such basis exists for certain fields

• Thus, a circuit with area O(k) can be built

to multiply two elements of GF (2k) in k clock

cycles

31

Page 32: Elliptic Curve Cryptosystemstawalbeh/nyit/csci860/notes/ec1.pdfElliptic Curve Cryptosystems Elliptic curves defined over GF(p) or GF(2k) are used in cryptography The arithmetic of

Inversion in GF (2k)

An efficient algorithm for computing an inverse

of an element of GF (2k) was proposed by Itoh,

Teechai, and Tsujii

If a ∈ GF (2k) and a 6= 0, then

a−1 = a2k−2 =(a2k−1−1

)2

For k even or odd, we have

Odd:

2k−1 − 1 = (2(k−1)/2 − 1) · (2(k−1)/2 + 1)

Even:

2k−1 − 1 = 2 · (2(k−2)/2 − 1) · (2(k−2)/2 + 1)

These formulae yield an algorithm for com-

puting the inverse by using factorization of the

exponent

32

Page 33: Elliptic Curve Cryptosystemstawalbeh/nyit/csci860/notes/ec1.pdfElliptic Curve Cryptosystems Elliptic curves defined over GF(p) or GF(2k) are used in cryptography The arithmetic of

Example of Inverse Computation

Consider the field GF (2155)

2155 − 2 = 2 · (277 − 1) · (277 + 1)

277 − 1 = 2 · (238 − 1) · (238 + 1) + 1

238 − 1 = (219 − 1) · (219 + 1)

219 − 1 = 2 · (29 − 1) · (29 + 1) + 1

29 − 1 = 2 · (24 − 1) · (24 + 1) + 1

24 − 1 = (22 − 1) · (22 + 1)

22 − 1 = (21 − 1) · (21 + 1)

It requires 10 multiplications to compute an

inverse in GF (2155)

In general, the method requires

blog2(k − 1)c+ H(k − 1)− 1

field multiplications

33

Page 34: Elliptic Curve Cryptosystemstawalbeh/nyit/csci860/notes/ec1.pdfElliptic Curve Cryptosystems Elliptic curves defined over GF(p) or GF(2k) are used in cryptography The arithmetic of

Implementation Results

Elliptic Curves

Newbridge Microsystems (1988)

• Uses the field GF (2593)

• Clockrate 20 MHz

• Field Multiplication: 65 µs

• Inversion: 2.5 ms

Agnew, Mullin, Vanstone (1993)

• Uses the field GF (2155)

• Clockrate 40 MHz

• Field Multiplication: 4 µs

• Inversion: 95 µs

Software Implementation of ElGamal

• Uses the field GF (2104)

• Sun-2 Sparcstation

• 105-bit Encryption: 500 msec∗

34


Recommended