Title: An Inverter Architecture for ECCGF2m Based on the Steins Algorithm
1An Inverter Architecture for ECC-GF(2m)Based on
theSteins Algorithm
2Objectives
- To present the development of a modular inverter
for elliptic curves, implemented by programmable
circuit - To show the viability to implement this inverter
by combinatorial circuit - To talk about the difficulties found during the
development of the inverter - To explain the solutions found to allow the
development of the inverter.
3Justifications
- The interest about digital circuits
- The today importance of projects that work with
cryptography implemented by hardware - The need to create a device in order to increase
the performance of programs that work with
asymmetric cryptography - Challenges speed X area
- combinatorial circuits X affine coordinates.
4Summary
- Introduction
- ECC-GF(2m)
- A combinatorial Circuit for Modular Inversion
- A combinatorial Circuit for Point Doubling and
Point Addition - A Cryptosystem Implemented by Programmable
Circuits - Results
- Conclusions.
5Summary
- Introduction
- ECC-GF(2m)
- A combinatorial Circuit for Modular Inversion
- A combinatorial Circuit for Point Doubling and
Point Addition - A Cryptosystem Implemented by Programmable
Circuits - Results
- Conclusions.
6Introduction
- Information
- QS (symmetric cryptography)
- QP and k (asymmetric cryptography)
- Q kP
- 2P and P doubling and addition of P
- , , x2, mod, x-1 finite field arithmetic.
7A Key-Exchange Example
- cli the client side of the communication
- serv the server side of the communication
- P an element previously chosen by cli and serv
- k a private key
- QP a public key
- QS a secret key
- Q and P are elements of the same type.
8Key-Exchange
- The cli generates at random an integer number
kcli - The serv generates at random an integer number
kserv - The cli calculates QPcli kcli P
- The serv calculates QPserv kserv P
- The cli sends QPcli to the serv
- The serv sends QPserv to the cli
- The cli calculates QS kcli QPserv
- The serv calculates QS kserv QPcli.
9Summary
- Introduction
- ECC-GF(2m)
- A combinatorial Circuit for Modular Inversion
- A combinatorial Circuit for Point Doubling and
Point Addition - A Cryptosystem Implemented by Programmable
Circuits - Results
- Conclusions.
10Elliptic Curves
- They are represented by the equation
- y2 xy x3 ax2 b
- for which
- x and y represent the point coordinates
- a and b define an elliptic curve over GF(2m).
11The Main Operation of the Elliptic Curve
Algorithms
- Q kP
- for which
- k is an integer number
- P is an elliptic curve point of coordinates x and
y - Q is an elliptic curve point of coordinates x and
y - P(Px,Py) and Q(Qx,Qy) are points represented by
affine coordinates and polynomial basis.
12Double-and-Add Algorithm
Q 10P 1010 gt ((2P)2P)2 gt 10P Q
17P 10001 gt (((2P)2)2)2P gt 17P
13Point Doubling
- S PX ((PY) / (PX)) mod p
- QX (S2 S a) mod p
- QY (S(PX QX) PY QX) mod p
14Point Addition
- S ((PY PY) / (PX PX)) mod p
- QX (S2 S PX PX a) mod p
- QY (S(PX QX) PY QX) mod p
15Comparison BetweenDoublings . and Additions .
- S Px (Py / Px) mod p.
- S ((Py Py) / (Px Px)) mod p.
- Qx (S2 S a) mod p.
- Qx (S2 S Px Px a) mod p.
- Qy (S(Px Qx) Py Qx) mod p.
- Qy (S(Px Qx) Py Qx) mod p.
16Unification of the Equations
- S F ((G PY) / (H PX)) mod p
- QX (S2 S PX PX a) mod p
- QY (S(PX QX) PY QX) mod p
17Attribution of Values
- Point Doubling
- F PX
- G 0
- H 0.
- Point Addition
- F 0
- G PY
- H PX.
18Finite Field Arithmetic
- Sum
- Multiplication
- Module
- Squaring
- Modular Inversion.
19Unification of the Equations
- S F ((G PY) / (H PX)) mod p
- QX (S2 S PX PX a) mod p
- QY (S(PX QX) PY QX) mod p
20Optimization of the Equations
- S F ((G PY) (H PX)-1) mod p
- QX (S2 S PX PX a) mod p
- QY (S(PX QX) PY QX) mod p
21Summary
- Introduction
- ECC-GF(2m)
- A combinatorial Circuit for Modular Inversion
- A combinatorial Circuit for Point Doubling and
Point Addition - A Cryptosystem Implemented by Programmable
Circuits - Results
- Conclusions.
22Modular Division Methods
- Gaussian Elimination
- Fermats Theorem
- MDC (Euclides or Stein).
23The Steins Algorithm
- (A, B, U, V) ? (Px, p, 1, 0)
- while A ! 0 and B ! 1
- if A0 1
- if deg(A) gt deg(B)
- (A, B) ? (A B, U V)
- else
- (A, B, U, V) ? (A B, A, U V, U)
- endif
- endif
- (A, U) ? (A / 2, (U / 2) mod p)
- endwhile
24The Steins Algorithm Optimized
- (A, B, U, V, DCC, Flag, slice) ? (Px, p, 1, 0,
2, 1, 2m-1) - while slice gt 0
- if A0 1
- if Flag 1 and DCC0 0
- (A, B, U, V, Flag) ? (A B, A, U
V, U, 0) - else
- (A, B) ? (A B, U V)
- endif
- endif
- (A, U) ? (A / 2, (U / 2) mod p)
- if Flag 0 and DCC0 0
- DCC ? DCC / 2
- else
- (DCC, Flag) ? ((DCC 2), 1)
- endif
- slice ? slice -1
- endwhile
25FLAG and AUX handling
26DCC handling
27A handling
28U handling
29B handling
30V handling
31Summary
- Introduction
- ECC-GF(2m)
- A combinatorial Circuit for Modular Inversion
- A combinatorial Circuit for Point Doubling and
Point Addition - A Cryptosystem Implemented by Programmable
Circuits - Results
- Conclusions.
32A combinatorial Circuit forPoint Doubling and
Point Addition
Modular Inversion
Other Operations
Qx
Px
Px
Qy
Py
33Unification of the Equations
- S F ((G PY) (H PX)-1) mod p
- QX (S2 S PX PX a) mod p
- QY (S(PX QX) PY QX) mod p
34Summary
- Introduction
- ECC-GF(2m)
- A combinatorial Circuit for Modular Inversion
- A combinatorial Circuit for Point Doubling and
Point Addition - A Cryptosystem Implemented by Programmable
Circuits - Results
- Conclusions.
35The Cryptosystem
CPU
PC-board
Other Operations
Modular Inversion
EP2S180F1020C4
EP2S90F1508C3
Registers
Key-Exchange Example
P
P
Px
Qx
S
Px
Qy
PC Bus
36Summary
- Introduction
- ECC-GF(2m)
- A combinatorial Circuit for Modular Inversion
- A combinatorial Circuit for Point Doubling and
Point Addition - A Cryptosystem Implemented by Programmable
Circuits - Results
- Conclusions.
37General Results
38Modular Inversion Time for Different
Implementations
39Scalar Multiplication Time for Different
Implementations
40Results of Our Key-Exchange Example
41Summary
- Introduction
- ECC-GF(2m)
- A combinatorial Circuit for Modular Inversion
- A combinatorial Circuit for Point Doubling and
Point Addition - A Cryptosystem Implemented by Programmable
Circuits - Results
- Conclusions.
42Conclusions
- The Objectives was successfully achieved
- High performance to the detriment of a small
area - High-speed and high-density combinatorial
circuits - Our inverter and cryptosystem were made valid
- Our cryptosystem allows high frequency of key
exchange.
43The End