OpenCiphers


Modular Exponentiation Core [CVS]

This core is a basic implementation of the high-radix montgomery multiplication with parallelized square-multiply. It utilizes the Virtex-4 DSP48 slices and BlockRAM for performing the computations and requires no setup step (residue and p-setup is done in the core). The core performs everything in 16-bit operations so it requires the following for a 1024-bit operation:

n = number of bits (1024)
w = number of bits in a word (16)
e = number of words (n / w) (64)

Operation
Complexity
Clock Cycles
Speed
Total Time
Residue Calculation
rc = n * e
rc = (1024) * (64) = 65536
150MHz
437us
P-Setup Calculation
ps = (log2(w) + 3) * 2
ps = (log2(16) + 3) * 2 = 14
200MHz
70ns (done in parallel with Residue Calculation)
Montgomery Multiplication
mm = e2
mm = (64)2 = 4096
200MHz
20us
Montgomery Exponentiation
moe = n * mm
moe = (1024) * (4096) = 4194304
200MHz
20.97ms
Modular Exponentiation
me = moe + MAX(rc, ps)
me = (4194304) + MAX(14, 65536 * (200 / 150)) = 4281685
200MHz
21.41ms


Copyright © 2006 - The OpenCiphers Project  <dhulton@picocomputing.com>
SourceForge.net Logo