Name: K

advertisement
Name: K. C. Cinnati Loi
St. no: 10271136
Class: EE 800
Prof.: L. Chen, K. Wahid
Date: October 9th, 2008
The elliptic curve cryptosystems (ECC) were originally proposed by Miller [1] and Koblitz [2] in
1986 and 1987, respectively. One of the main functionalities that are needed by an ECC
processor is modular multiplication. A modular multiplication algorithm that does not require
trial division proposed by Montgomery [3] in 1985 has been very popular in literature [4] – [8] to
increase the processing speed of the ECC processor operations. The objective of this project is to
improve on the current implementations from an FPGA perspective.
The Montgomery multiplication algorithm is used to efficiently calculate the expression xy mod
N. This algorithm is composed of two stages. The first one is the reduction algorithm where the
operation TR-1 mod N can be computed very efficiently. The number R is selected to be one that
modulus can be computed easily, such as R = 2b, R > N and gcd(R, N) = 1. Providing these
conditions, there also exists R-1 and N’ that satisfies 0 < R-1 < N, 0 < N’ < R and RR-1 – NN’ = 1.
Given these parameters, TR-1 mod N can be computed as follows:
Function REDC(T)
m ← (T mod R)N’ mod R
t ← (T + mN) / R
if t ≥ N then return t – N else return t
This operation can now be used to calculate xy mod N because REDC(x) = xR-1 mod N and
REDC(y) = yR-1 mod N, z = REDC(xy) = (xy)R-1 mod N, and REDC(x) * REDC(y) = (xy)R-1R-1
mod N = zR-1 mod N = REDC(z). In other words, is x and y are represented in their reduced
form REDC(x) and REDC(y), the product of them is REDC(z). So in order to evaluate xy mod
N, one can apply REDC(T) on the two operands, multiply them and then reverse the REDC(T)
operation to get the result. These conversion steps do increase throughput time if only one
multiplication operation is performed. It can be shown that the operations of addition,
subtraction, negation, equality / inequality test, multiplication by integer, and greatest common
divisor by N all remain unchanged after a set is mapped using REDC(T). Thus, the advantage of
using the Montgomery algorithm is shown when multiple operations are computed in a sequence,
such as calculating exponentiation.
For this project, I plan to begin the project by implementing the Montgomery modular
multiplication proposed by Huang, Li and Sweany [9] and then find areas where performance
improvements can be made in FPGA implementation. This project will also explore conversions
among affine, projective, and other coordinate systems used for ECC processor design. From the
improved design will be verified using software simulations and finally tested on an actual
FPGA evaluation board.
[1] V. S. Miller, “Use of Elliptic Curve in Cryptography”, CRYPTO’85: Advances in
Cryptology. Springer-Verlag, pp. 417 – 426, 1986.
[2] N. Koblitz, “Elliptic curve cryptosystem”, Mathematics of computation, Vol. 48, No. 177,
pp. 203 – 209, 1987.
[3] P. L. Montgomery, “Modular Multiplication Without Trial Division”, Mathematics of
Computation, Vol. 44, No. 170, pp. 519 – 521, Apr. 1985.
[4] S. B. Ors, L. Batina, B. Preneel, J. Vandewalle, “Hardware Implementation of a Montgomery
Modular Multiplier in a Systolic Array”, International Parallel and Dsitributed Processing
Symposium, 2003, 22 – 26 April 2003.
[5] O. Al-Khaleel, C. Papachristou, F. Wolff, K. Pekmestzi, “FPGA-based Design of a Large
Moduli Multiplier for Public-Key Cryptographic Systems”, International Conference on
Computer Design, 2006, pp. 314 – 319, 1 – 4 Oct. 2007.
[6] C. McIvor, M. McLoone, J. V. McCanny, “FPGA Montgomery Multiplier Architectures – a
comparison”, 12th Annual IEEE Symposium on Filed-Programmable Custom Computing
Machines, 2004, pp. 279 – 282, 20 – 23 April 2004.
[7] T. Alho, P. Hamalainen, M. Hannikainen, T. D. Hamalainen, “Design of a Compact Modular
Exponentiation Accelerator for Modern FPGA Devices”, World Automation Congress, 2006,
pp. 1 – 7, 24 – 26 July 2006.
[8] R. K. Satzoda, C. H. Chang, “A Fast kernel for Unifying GF(p) and GF(2m) Montgomery
Multiplications in a Scalable Pipelined Architecture”, 2006 IEEE International Symposium
on Circuits and Systems, pp. 3378 – 3381, 21 – 24 May 2006.
[9] J. Huang, H. Li, P. Sweany, “An FPGA Implementation of Elliptic Curve Cryptography for
Future Secure Web Transaction”, International Conference on Parallel and Distributed
Computing Systems (PDCS 2007), pp. 296 – 301, Sept. 2007.
Download