Modular Montgomery Multiplier and Exponentiation

Modular Montgomery Multiplier and Exponentiation

Details

Category: Crypto Core

Created: December 23, 2014

Updated: January 27, 2020

Language: VHDL

Other project properties

Development Status: Stable

Additional info: Design done, FPGA proven

WishBone compliant: No

WishBone version: n/a

License: LGPL

Description

Modular multiplication and modular exponentiation play an important role in the most
of existing cryptographic systems. In fact these are time and hardware consuming
operations.
Up to now there were proposed modular multiplication and modular exponentiation
implementations. One of them, Montgomery method, is very efficient especially if
modulus is coprime integer with the word length in which it is operated, what is
always true in binary systems
In this project Montgomery multiplier and Montgomery exponentiation blocks was
developed. They were prepared for Spartan 3ES500 FPGA in Spartan 3E Starter Board
developed by DIGILENT, but can be easily suited in another cores. In its basic
they were prepared for 64 bit and 512 bit word length (due to the FPGA capacity),
and the way of the cores expanding was presented.

Task done:

  • Uploaded working Montgomery multiplier
  • Uploaded working Montgomery exponentiator (with one variable input)
  • Upload working example for exponentiation
  • Upload some testing software

TODO:

  • Write documentation

If You have any questions write me an email gajos@opencores.org.