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.