Paper 2016/909

Multi-core FPGA Implementation of ECC with Homogeneous Co-Z Coordinate Representation

Bo-Yuan Peng, Yuan-Che Hsu, Yu-Jia Chen, Di-Chia Chueh, Chen-Mou Cheng, and Bo-Yin Yang


Elliptic Curve Cryptography (ECC) is gaining popularity in recent years. Having short keys and short signatures in particular makes ECC likely to be adopted in numerous internet-of-things (IoT) devices. It is therefore critical to optimize ECC well for both speed and power consumption. Optimization opportunities exist on several different levels: algorithm, architecture, and/or implementation. We combine optimizations at every level in an efficient multi-core FPGA implementation. The core building block for our implementation is a Montgomery multiplier capable of modular additions and multiplications with an arbitrary prime modulus. The size of the prime modulus can also be changed easily, for which we have implemented and tested up to 528-bits used in the NIST P-521 curve. Based on this building block, we have developed a multi-core architecture that supports multiple parallel modular additions, multiplications, and inverses. Efficient ECC group addition and doubling are then built from this foundation. To support a wide variety of curves and at the same time resist timing/power-based side-channel attacks, our scalar multiplication is implemented using the Co-Z ladder due to Hutter, Joye, and Sierra. This approach also allows us to trade off between speed and power consumption by using a different number of Montgomery cores.

Note: This is the full version of the submitted CANS 2016 short paper. This full version is also available at .

Available format(s)
Publication info
Published elsewhere. Major revision. Cryptology and Network Security: CANS 2016
ECCCo-ZMulti-CoreFPGAMontgomery Reduction
Contact author(s)
bypeng @ crypto tw
2016-09-19: received
Short URL
Creative Commons Attribution


      author = {Bo-Yuan Peng and Yuan-Che Hsu and Yu-Jia Chen and Di-Chia Chueh and Chen-Mou Cheng and Bo-Yin Yang},
      title = {Multi-core {FPGA} Implementation of {ECC} with Homogeneous Co-Z Coordinate Representation},
      howpublished = {Cryptology ePrint Archive, Paper 2016/909},
      year = {2016},
      note = {\url{}},
      url = {}
Note: In order to protect the privacy of readers, does not use cookies or embedded third party content.