+ All Categories
Home > Documents > FPGA Implementation of Point Multiplication on Koblitz ... · FPGA Implementation of Point...

FPGA Implementation of Point Multiplication on Koblitz ... · FPGA Implementation of Point...

Date post: 08-Sep-2020
Category:
Upload: others
View: 5 times
Download: 0 times
Share this document with a friend
31
FPGA Implementation of Point Multiplication on Koblitz Curves Using Kleinian Integers V.S. Dimitrov 1 K.U. J¨ arvinen 2 M.J. Jacobson, Jr. 3 W.F. Chan 3 Z. Huang 1 February 28, 2012 Dimitrov et al. (Univ. Calgary) February 28, 2012 1 / 15
Transcript
Page 1: FPGA Implementation of Point Multiplication on Koblitz ... · FPGA Implementation of Point Multiplication on Koblitz Curves Using Kleinian Integers V.S. Dimitrov1 K.U. J¨arvinen2

FPGA Implementation of Point Multiplication on KoblitzCurves Using Kleinian Integers

V.S. Dimitrov1 K.U. Jarvinen2 M.J. Jacobson, Jr.3 W.F. Chan3

Z. Huang1

February 28, 2012

Dimitrov et al. (Univ. Calgary) February 28, 2012 1 / 15

Page 2: FPGA Implementation of Point Multiplication on Koblitz ... · FPGA Implementation of Point Multiplication on Koblitz Curves Using Kleinian Integers V.S. Dimitrov1 K.U. J¨arvinen2

Introduction

Introduction to Elliptic Curve Cryptography

Public-key cryptography method which uses a group of points on anelliptic curve, E , defined over a finite field, Fq

Faster and shorter keys than, e.g., RSA

Elliptic Curve Point Multiplication

Q = kP

where k is a positive integer and P = (x , y) is a point on E

Computed with point additions, P1 + P2, andpoint doublings, 2P1

Dimitrov et al. (Univ. Calgary) February 28, 2012 2 / 15

Page 3: FPGA Implementation of Point Multiplication on Koblitz ... · FPGA Implementation of Point Multiplication on Koblitz Curves Using Kleinian Integers V.S. Dimitrov1 K.U. J¨arvinen2

Introduction

Introduction to Elliptic Curve Cryptography

Public-key cryptography method which uses a group of points on anelliptic curve, E , defined over a finite field, Fq

Faster and shorter keys than, e.g., RSA

Elliptic Curve Point Multiplication

Q = kP

where k is a positive integer and P = (x , y) is a point on E

Computed with point additions, P1 + P2, andpoint doublings, 2P1

Dimitrov et al. (Univ. Calgary) February 28, 2012 2 / 15

Page 4: FPGA Implementation of Point Multiplication on Koblitz ... · FPGA Implementation of Point Multiplication on Koblitz Curves Using Kleinian Integers V.S. Dimitrov1 K.U. J¨arvinen2

Introduction

Point Multiplication on Koblitz Curves

Koblitz curves

Frobenius maps, φ(P1), instead of point doublings⇒ faster computation

k must be converter to τ -adic representation

Point multiplication

Frobenius map for all bits of k

Point addition if the bit is 1

, point subtraction if 1

Example

1001110001001111001

A AAA A AAAA A 101010010001010001001

A A S A A S A 7

Dimitrov et al. (Univ. Calgary) February 28, 2012 3 / 15

Page 5: FPGA Implementation of Point Multiplication on Koblitz ... · FPGA Implementation of Point Multiplication on Koblitz Curves Using Kleinian Integers V.S. Dimitrov1 K.U. J¨arvinen2

Introduction

Point Multiplication on Koblitz Curves

Koblitz curves

Frobenius maps, φ(P1), instead of point doublings⇒ faster computation

k must be converter to τ -adic representation

Point multiplication

Frobenius map for all bits of k

Point addition if the bit is 1

, point subtraction if 1

Example

1001110001001111001

A AAA A AAAA A 10

1010010001010001001

A A S A A S A 7

Dimitrov et al. (Univ. Calgary) February 28, 2012 3 / 15

Page 6: FPGA Implementation of Point Multiplication on Koblitz ... · FPGA Implementation of Point Multiplication on Koblitz Curves Using Kleinian Integers V.S. Dimitrov1 K.U. J¨arvinen2

Introduction

Point Multiplication on Koblitz Curves

Koblitz curves

Frobenius maps, φ(P1), instead of point doublings⇒ faster computation

k must be converter to τ -adic representation

Point multiplication

Frobenius map for all bits of k

Point addition if the bit is 1

, point subtraction if 1

Example

1001110001001111001

A AAA A AAAA A 10

1010010001010001001

A A S A A S A 7

Dimitrov et al. (Univ. Calgary) February 28, 2012 3 / 15

Page 7: FPGA Implementation of Point Multiplication on Koblitz ... · FPGA Implementation of Point Multiplication on Koblitz Curves Using Kleinian Integers V.S. Dimitrov1 K.U. J¨arvinen2

Introduction

Point Multiplication on Koblitz Curves

Koblitz curves

Frobenius maps, φ(P1), instead of point doublings⇒ faster computation

k must be converter to τ -adic representation

Point multiplication

Frobenius map for all bits of k

Point addition if the bit is 1, point subtraction if 1

Example

1001110001001111001

A AAA A AAAA A 101010010001010001001

A A S A A S A 7

Dimitrov et al. (Univ. Calgary) February 28, 2012 3 / 15

Page 8: FPGA Implementation of Point Multiplication on Koblitz ... · FPGA Implementation of Point Multiplication on Koblitz Curves Using Kleinian Integers V.S. Dimitrov1 K.U. J¨arvinen2

Introduction

Koblitz Curves

Koblitz curves (defined over F2):

Ea : y2 + xy = x

3 + ax2 + 1, a ∈ {0, 1}

|Ea(F2m)| easily computed for any integer m > 0

Frobenius endomorphism τ(x , y) = (x2, y2) :

almost free to compute

satisfies minimal polynomial x2 − µx + 2 = 0 where µ = (−1)1−a

can view τ as a root, i.e., τ = (µ+√−7)/2

leads to efficient τ -adic point multiplication algorithms (eg. τNAF)

Dimitrov et al. (Univ. Calgary) February 28, 2012 4 / 15

Page 9: FPGA Implementation of Point Multiplication on Koblitz ... · FPGA Implementation of Point Multiplication on Koblitz Curves Using Kleinian Integers V.S. Dimitrov1 K.U. J¨arvinen2

Theoretical Results

Double Base Expansions

Dimitrov, Jullien, Miller (1998): compute kP using k =�

±2a3b

requires only O(log k/(log log k)) (2, 3)-integers

find closest ±2a3b to k , subtract and repeat

Our contribution: efficient point multiplication on Koblitz curves

first provably sublinear point multiplication algorithm (3 complexbases)

efficient method using bases τ and τ − 1 (no proof, conjecturalsublinearity)

no precomputations based on k or P

efficient FPGA implementation

Dimitrov et al. (Univ. Calgary) February 28, 2012 5 / 15

Page 10: FPGA Implementation of Point Multiplication on Koblitz ... · FPGA Implementation of Point Multiplication on Koblitz Curves Using Kleinian Integers V.S. Dimitrov1 K.U. J¨arvinen2

Theoretical Results

Kleinian Integer Expansions

Kleinian integers: x + yτ ∈ Z[τ ](τ, τ − 1)-Kleinian integers: ±τ a(τ − 1)b

(τ, τ − 1, τ2 − τ − 1)-Kleinian integers: ±τ a(τ − 1)b(τ2 − τ − 1)c

Theorem: k ∈ Z[τ ] can be represented by a sum ofO(logN(k)/(log logN(k))) (τ, τ − 1, τ2 − τ − 1)-Kleinian integers

Conjecture: same for (τ, τ − 1)-Kleinian integers

Proof for bases 2 and 3 doesn’t generalize (only for real bases)

Greedy algorithm doesn’t generalize well:hard to find closest (τ, τ − 1)-Kleinian integer to k

Dimitrov et al. (Univ. Calgary) February 28, 2012 6 / 15

Page 11: FPGA Implementation of Point Multiplication on Koblitz ... · FPGA Implementation of Point Multiplication on Koblitz Curves Using Kleinian Integers V.S. Dimitrov1 K.U. J¨arvinen2

Algorithms

Conversion Algorithm

Compute k =d�

i=1

±τ ai (τ − 1)bi for k ∈ Z[τ ]

Precomputation: minimal representation for every q =w−1�

i=0

diτi , di ∈ {0, 1}

1 Compute unsigned τ -adic expansion of k .

2 Divide τ -adic expansion into blocks of length w .

3 Substitute each block with minimal (τ, τ − 1)-expansion timesappropriate power of τ

Assuming the conjecture, d and max(bi ) are both sublinear in logN(k)

Dimitrov et al. (Univ. Calgary) February 28, 2012 7 / 15

Page 12: FPGA Implementation of Point Multiplication on Koblitz ... · FPGA Implementation of Point Multiplication on Koblitz Curves Using Kleinian Integers V.S. Dimitrov1 K.U. J¨arvinen2

Algorithms

Example

k = 6465, E1(F2163), τ = (1 +√−7)/2

partial reduction modulo (τ163 − 1)/(τ − 1) — k ≡ ξ = −104 + 50τ

Using block size 7 we have:

ξ = τ13 + τ12 + τ11 + τ9 + τ5 + τ2

= τ7�τ6 + τ5 + τ4 + τ2

�+�τ5 + τ2

= τ7�τ(τ − 1) + τ(τ − 1)6

�+�τ2(τ − 1)2

= τ8(τ − 1) + τ8(τ − 1)6 + τ2(τ − 1)2

Dimitrov et al. (Univ. Calgary) February 28, 2012 8 / 15

Page 13: FPGA Implementation of Point Multiplication on Koblitz ... · FPGA Implementation of Point Multiplication on Koblitz Curves Using Kleinian Integers V.S. Dimitrov1 K.U. J¨arvinen2

Algorithms

Example

k = 6465, E1(F2163), τ = (1 +√−7)/2

partial reduction modulo (τ163 − 1)/(τ − 1) — k ≡ ξ = −104 + 50τ

Using block size 7 we have:

ξ = τ13 + τ12 + τ11 + τ9 + τ5 + τ2

= τ7�τ6 + τ5 + τ4 + τ2

�+

�τ5 + τ2

= τ7�τ(τ − 1) + τ(τ − 1)6

�+�τ2(τ − 1)2

= τ8(τ − 1) + τ8(τ − 1)6 + τ2(τ − 1)2

Dimitrov et al. (Univ. Calgary) February 28, 2012 8 / 15

Page 14: FPGA Implementation of Point Multiplication on Koblitz ... · FPGA Implementation of Point Multiplication on Koblitz Curves Using Kleinian Integers V.S. Dimitrov1 K.U. J¨arvinen2

Algorithms

Example

k = 6465, E1(F2163), τ = (1 +√−7)/2

partial reduction modulo (τ163 − 1)/(τ − 1) — k ≡ ξ = −104 + 50τ

Using block size 7 we have:

ξ = τ13 + τ12 + τ11 + τ9 + τ5 + τ2

= τ7�τ6 + τ5 + τ4 + τ2

�+

�τ5 + τ2

= τ7�τ(τ − 1) + τ(τ − 1)6

+�τ2(τ − 1)2

= τ8(τ − 1) + τ8(τ − 1)6 + τ2(τ − 1)2

Dimitrov et al. (Univ. Calgary) February 28, 2012 8 / 15

Page 15: FPGA Implementation of Point Multiplication on Koblitz ... · FPGA Implementation of Point Multiplication on Koblitz Curves Using Kleinian Integers V.S. Dimitrov1 K.U. J¨arvinen2

Algorithms

Example

k = 6465, E1(F2163), τ = (1 +√−7)/2

partial reduction modulo (τ163 − 1)/(τ − 1) — k ≡ ξ = −104 + 50τ

Using block size 7 we have:

ξ = τ13 + τ12 + τ11 + τ9 + τ5 + τ2

= τ7�τ6 + τ5 + τ4 + τ2

�+

�τ5 + τ2

= τ7�τ(τ − 1) + τ(τ − 1)6

�+

�τ2(τ − 1)2

= τ8(τ − 1) + τ8(τ − 1)6 + τ2(τ − 1)2

Dimitrov et al. (Univ. Calgary) February 28, 2012 8 / 15

Page 16: FPGA Implementation of Point Multiplication on Koblitz ... · FPGA Implementation of Point Multiplication on Koblitz Curves Using Kleinian Integers V.S. Dimitrov1 K.U. J¨arvinen2

Algorithms

Example

k = 6465, E1(F2163), τ = (1 +√−7)/2

partial reduction modulo (τ163 − 1)/(τ − 1) — k ≡ ξ = −104 + 50τ

Using block size 7 we have:

ξ = τ13 + τ12 + τ11 + τ9 + τ5 + τ2

= τ7�τ6 + τ5 + τ4 + τ2

�+

�τ5 + τ2

= τ7�τ(τ − 1) + τ(τ − 1)6

�+

�τ2(τ − 1)2

= τ8(τ − 1) + τ8(τ − 1)6 + τ2(τ − 1)2

Dimitrov et al. (Univ. Calgary) February 28, 2012 8 / 15

Page 17: FPGA Implementation of Point Multiplication on Koblitz ... · FPGA Implementation of Point Multiplication on Koblitz Curves Using Kleinian Integers V.S. Dimitrov1 K.U. J¨arvinen2

Algorithms

Point Multiplication Algorithm

Given k =d�

i=1

siτai (τ − 1)bi can write

k =

max(bi )�

j=0

(τ − 1)j

max(ai,j )�

i=1

si ,jτai,j

Compute kP using max(bi ) τ -adic expansions

Cost:

multiply by (τ − 1) : one τ, one point subtraction

overall: max(bi ) + d − 1 point adds/subs

number of point additions required is sublinear in N(k)

Dimitrov et al. (Univ. Calgary) February 28, 2012 9 / 15

Page 18: FPGA Implementation of Point Multiplication on Koblitz ... · FPGA Implementation of Point Multiplication on Koblitz Curves Using Kleinian Integers V.S. Dimitrov1 K.U. J¨arvinen2

Algorithms

Numerical Evidence

Avg number of point adds to compute kP on Ea(F2m)

Blockingm τNAF Greedy w = 5 w = 10 w = 16

163 54.25 36.37 47.86 40.00 37.22233 77.59 49.31 66.23 54.96 50.76283 94.25 58.64 79.37 65.66 60.49409 137.12 81.84 113.64 93.63 85.68571 190.25 111.90 154.98 127.21 117.04

Fewer point adds than τNAF in all cases

w = 5 requires < 1 KB ROM (no points need to be stored)

Dimitrov et al. (Univ. Calgary) February 28, 2012 10 / 15

Page 19: FPGA Implementation of Point Multiplication on Koblitz ... · FPGA Implementation of Point Multiplication on Koblitz Curves Using Kleinian Integers V.S. Dimitrov1 K.U. J¨arvinen2

FPGA implementation Preliminaries

Computation of Algorithms

Specifications

NIST curve K-163F2163 , normal basis

Point multiplication algorithm

Input: k , POutput: Q = kP

P0 ← P ; Q ← O

for i = 0 to max(bi ) doS ← ri (k)Pi

Pi+1 ← τPi − Pi

Q ← Q + S

end for

Computed one row, i.e.(�

j ki ,jτj)(τ − 1)iP , at a time

Each row is computed as aτNAF point multiplication

Point addition in mixed coordinates(LD/A) and Frobenius map in LD

S ← S ± Pi ; S ← τS

Frobenius map and pointsubtraction in A

Pi+1 ← τPi − Pi

Point addition in LD

Q ← Q + S

LD �→ A mapping

Dimitrov et al. (Univ. Calgary) February 28, 2012 11 / 15

Page 20: FPGA Implementation of Point Multiplication on Koblitz ... · FPGA Implementation of Point Multiplication on Koblitz Curves Using Kleinian Integers V.S. Dimitrov1 K.U. J¨arvinen2

FPGA implementation Preliminaries

Computation of Algorithms

Specifications

NIST curve K-163F2163 , normal basis

Point multiplication algorithm

Input: k , POutput: Q = kP

P0 ← P ; Q ← O

for i = 0 to max(bi ) doS ← ri (k)Pi

Pi+1 ← τPi − Pi

Q ← Q + S

end for

Computed one row, i.e.(�

j ki ,jτj)(τ − 1)iP , at a time

Each row is computed as aτNAF point multiplication

Point addition in mixed coordinates(LD/A) and Frobenius map in LD

S ← S ± Pi ; S ← τS

Frobenius map and pointsubtraction in A

Pi+1 ← τPi − Pi

Point addition in LD

Q ← Q + S

LD �→ A mapping

Dimitrov et al. (Univ. Calgary) February 28, 2012 11 / 15

Page 21: FPGA Implementation of Point Multiplication on Koblitz ... · FPGA Implementation of Point Multiplication on Koblitz Curves Using Kleinian Integers V.S. Dimitrov1 K.U. J¨arvinen2

FPGA implementation Preliminaries

Computation of Algorithms

Specifications

NIST curve K-163F2163 , normal basis

Point multiplication algorithm

Input: k , POutput: Q = kP

P0 ← P ; Q ← O

for i = 0 to max(bi ) doS ← ri (k)Pi

Pi+1 ← τPi − Pi

Q ← Q + S

end for

Computed one row, i.e.(�

j ki ,jτj)(τ − 1)iP , at a time

Each row is computed as aτNAF point multiplication

Point addition in mixed coordinates(LD/A) and Frobenius map in LD

S ← S ± Pi ; S ← τS

Frobenius map and pointsubtraction in A

Pi+1 ← τPi − Pi

Point addition in LD

Q ← Q + S

LD �→ A mapping

Dimitrov et al. (Univ. Calgary) February 28, 2012 11 / 15

Page 22: FPGA Implementation of Point Multiplication on Koblitz ... · FPGA Implementation of Point Multiplication on Koblitz Curves Using Kleinian Integers V.S. Dimitrov1 K.U. J¨arvinen2

FPGA implementation Preliminaries

Computation of Algorithms

Specifications

NIST curve K-163F2163 , normal basis

Point multiplication algorithm

Input: k , POutput: Q = kP

P0 ← P ; Q ← O

for i = 0 to max(bi ) doS ← ri (k)Pi

Pi+1 ← τPi − Pi

Q ← Q + S

end for

Computed one row, i.e.(�

j ki ,jτj)(τ − 1)iP , at a time

Each row is computed as aτNAF point multiplication

Point addition in mixed coordinates(LD/A) and Frobenius map in LD

S ← S ± Pi ; S ← τS

Frobenius map and pointsubtraction in A

Pi+1 ← τPi − Pi

Point addition in LD

Q ← Q + S

LD �→ A mapping

Dimitrov et al. (Univ. Calgary) February 28, 2012 11 / 15

Page 23: FPGA Implementation of Point Multiplication on Koblitz ... · FPGA Implementation of Point Multiplication on Koblitz Curves Using Kleinian Integers V.S. Dimitrov1 K.U. J¨arvinen2

FPGA implementation Preliminaries

Computation of Algorithms

Specifications

NIST curve K-163F2163 , normal basis

Point multiplication algorithm

Input: k , POutput: Q = kP

P0 ← P ; Q ← O

for i = 0 to max(bi ) doS ← ri (k)Pi

Pi+1 ← τPi − Pi

Q ← Q + S

end for

Computed one row, i.e.(�

j ki ,jτj)(τ − 1)iP , at a time

Each row is computed as aτNAF point multiplication

Point addition in mixed coordinates(LD/A) and Frobenius map in LD

S ← S ± Pi ; S ← τS

Frobenius map and pointsubtraction in A

Pi+1 ← τPi − Pi

Point addition in LD

Q ← Q + S

LD �→ A mapping

Dimitrov et al. (Univ. Calgary) February 28, 2012 11 / 15

Page 24: FPGA Implementation of Point Multiplication on Koblitz ... · FPGA Implementation of Point Multiplication on Koblitz Curves Using Kleinian Integers V.S. Dimitrov1 K.U. J¨arvinen2

FPGA implementation Preliminaries

Computation of Algorithms

Specifications

NIST curve K-163F2163 , normal basis

Point multiplication algorithm

Input: k , POutput: Q = kP

P0 ← P ; Q ← O

for i = 0 to max(bi ) doS ← ri (k)Pi

Pi+1 ← τPi − Pi

Q ← Q + S

end for

Computed one row, i.e.(�

j ki ,jτj)(τ − 1)iP , at a time

Each row is computed as aτNAF point multiplication

Point addition in mixed coordinates(LD/A) and Frobenius map in LD

S ← S ± Pi ; S ← τS

Frobenius map and pointsubtraction in A

Pi+1 ← τPi − Pi

Point addition in LD

Q ← Q + S

LD �→ A mapping

Dimitrov et al. (Univ. Calgary) February 28, 2012 11 / 15

Page 25: FPGA Implementation of Point Multiplication on Koblitz ... · FPGA Implementation of Point Multiplication on Koblitz Curves Using Kleinian Integers V.S. Dimitrov1 K.U. J¨arvinen2

FPGA implementation Architecture

Field arithmetic processor (FAP)

StorageRAM

dual-portRAM

Controllogic

DATA IN

DATA OUT

Adder Multiplier Squarer512 × m-bit

m

mm

m

m

1231

ADDRA9

ADDRB9

OPER4

SHIFT6

Dimitrov et al. (Univ. Calgary) February 28, 2012 12 / 15

Page 26: FPGA Implementation of Point Multiplication on Koblitz ... · FPGA Implementation of Point Multiplication on Koblitz Curves Using Kleinian Integers V.S. Dimitrov1 K.U. J¨arvinen2

FPGA implementation Architecture

Field arithmetic processor (FAP)

StorageRAM

dual-portRAM

Controllogic

DATA IN

DATA OUT

Adder Multiplier Squarer512 × m-bit

m

mm

m

m

1231

ADDRA9

ADDRB9

OPER4

SHIFT6

Multiplier

Digit-serial Massey-Omura multiplierLatency: 9 clock cycles

Dimitrov et al. (Univ. Calgary) February 28, 2012 12 / 15

Page 27: FPGA Implementation of Point Multiplication on Koblitz ... · FPGA Implementation of Point Multiplication on Koblitz Curves Using Kleinian Integers V.S. Dimitrov1 K.U. J¨arvinen2

FPGA implementation Architecture

Field arithmetic processor (FAP)

StorageRAM

dual-portRAM

Controllogic

DATA IN

DATA OUT

Adder Multiplier Squarer512 × m-bit

m

mm

m

m

1231

ADDRA9

ADDRB9

OPER4

SHIFT6

Adder and squarer

Adder: bitwise exclusive-or (xor)Squarer: shifter (max shift 26 − 1)

Dimitrov et al. (Univ. Calgary) February 28, 2012 12 / 15

Page 28: FPGA Implementation of Point Multiplication on Koblitz ... · FPGA Implementation of Point Multiplication on Koblitz Curves Using Kleinian Integers V.S. Dimitrov1 K.U. J¨arvinen2

FPGA implementation Architecture

Field arithmetic processor (FAP)

StorageRAM

dual-portRAM

Controllogic

DATA IN

DATA OUT

Adder Multiplier Squarer512 × m-bit

m

mm

m

m

1231

ADDRA9

ADDRB9

OPER4

SHIFT6

Storage RAM

Dual-port RAM implemented in BlockRAMs5 BlockRAMs needed (One B-RAM: 512× 36-bits)

Dimitrov et al. (Univ. Calgary) February 28, 2012 12 / 15

Page 29: FPGA Implementation of Point Multiplication on Koblitz ... · FPGA Implementation of Point Multiplication on Koblitz Curves Using Kleinian Integers V.S. Dimitrov1 K.U. J¨arvinen2

FPGA implementation Architecture

System architecture

{τ, τ − 1}-converter

Converts k into{τ, τ − 1}-expansion

Partial reduction (Solinas,2000), computation of τ -adicexpansion and blockingalgorithm (w = 10)

Control logic and FAP

FAP controlled byhand-optimized controlsequences stored in a ROM(BlockRAM)

k parsed and the ROMcontrolled by an FSM

Converter and the rest of the design use different clocks

Latency of a point multiplication (excluding conversion):

LkP = 104 d + 243 max(bi ) + 84

Dimitrov et al. (Univ. Calgary) February 28, 2012 13 / 15

Page 30: FPGA Implementation of Point Multiplication on Koblitz ... · FPGA Implementation of Point Multiplication on Koblitz Curves Using Kleinian Integers V.S. Dimitrov1 K.U. J¨arvinen2

FPGA implementation Results

Results

Xilinx Virtex-II XC2V2000-6Maximum clock frequency: 128 MHzResource requirements: 6,494 slices and 6 BlockRAMs

Converter: 88 MHz, 2,251 slices, 2 BlockRAMs and 2 multipliers

One conversion requires 3.81 µs

max(bi ) d LD/A A LD LkP Time (µs)

0 54.33 53.33 0 0 5735 44.802 39.47 36.47 2 2 4675 36.523 36.18 32.18 3 3 4576 35.754 34.74 29.74 4 4 4669 36.485 33.42 27.42 5 5 4775 37.306 32.22 25.22 6 6 4893 38.23

Dimitrov et al. (Univ. Calgary) February 28, 2012 14 / 15

Page 31: FPGA Implementation of Point Multiplication on Koblitz ... · FPGA Implementation of Point Multiplication on Koblitz Curves Using Kleinian Integers V.S. Dimitrov1 K.U. J¨arvinen2

Future Work

Future work

Compare with ASIACRYPT 2006 (Avanzi, Dimitrov, Doche, Sica):

proof of sublinear density for 2 complex bases

memory-free conversion algorithm:

Window method analogues (fixed base point):

two-dimensional windows?

Analogue for hyperelliptic curves?

Implementation improvements:

Computing rows in parallel leads to shorter latency

Polynomial basis implementation

Dimitrov et al. (Univ. Calgary) February 28, 2012 15 / 15


Recommended