04.11.2012 Views

1 Montgomery Modular Multiplication in Hard- ware

1 Montgomery Modular Multiplication in Hard- ware

1 Montgomery Modular Multiplication in Hard- ware

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

FEI KEMT<br />

change, but the time for data I/O scales l<strong>in</strong>early with the number of units. Hence,<br />

not too many units should be controlled by one s<strong>in</strong>gle logic. For massively parallel<br />

ECM <strong>in</strong> hard<strong>ware</strong>, the ECM units can be segmented <strong>in</strong>to clusters, each with its own<br />

control unit.<br />

4.3 Implementation of the ECM Unit<br />

This section presents the actual hard<strong>ware</strong> implementation done on a SOC (FPGA<br />

and embedded microprocessor). This first hard<strong>ware</strong> implementation of ECM is de-<br />

signed as a proof-of-concept. All tim<strong>in</strong>gs are obta<strong>in</strong>ed by us<strong>in</strong>g real hard<strong>ware</strong>, not<br />

only simulation. All results have been carefully checked by a reference implementa-<br />

tion <strong>in</strong> soft<strong>ware</strong>.<br />

4.3.1 <strong>Hard</strong><strong>ware</strong> Platform<br />

The ECM implementation is realized as a hybrid design. It consists of an ECM<br />

unit implemented on an FPGA (Xil<strong>in</strong>x Virtex2000E-6) [124] and a control logic<br />

implemented <strong>in</strong> soft<strong>ware</strong> on an embedded micro-controller (ARM7TDMI, 25MHz)<br />

[90]. The ECM unit is coded <strong>in</strong> VHDL and was simulated and synthesised for the<br />

FPGA by us<strong>in</strong>g FPGA Advantage tools, place & route was done <strong>in</strong> Xil<strong>in</strong>x ISE. For<br />

the actual VHDL implementation, memory cells have been realized with the FPGA’s<br />

<strong>in</strong>ternal block RAM. For the word width w = 32 bits 2 blocks with e = ⌈ N+1⌉<br />

words<br />

2<br />

are used for each register due to dual-port access mode and selected algorithm for<br />

multiplication.<br />

The ECM unit, as implemented, expects the commands which are written to a<br />

control register accessible by the embedded ARM processor. Required po<strong>in</strong>t coordi-<br />

nates and curve parameters are loaded <strong>in</strong>to the ECM unit before the first command<br />

is decoded. For this purpose, these memory cells of unit are accessible from the<br />

outside by a unique address. Internal registers, which are only used as temporary<br />

registers dur<strong>in</strong>g the computation are not accessible from the outside, by the micro-<br />

controller.<br />

The control of the whole unit is done by the micro-controller present on the<br />

board. The processor controls the data transfer from and to the units, and issues<br />

the commands for all steps <strong>in</strong> phase 1 and phase 2 for the central control log<strong>in</strong> <strong>in</strong>side<br />

FPGA. For code generation, debugg<strong>in</strong>g and compilation, the ARM Developer Suite<br />

1.2 was used. For details on the ARM microprocessor, see [23]. At a later stage,<br />

a soft-core processor core (<strong>in</strong> VHDL) could be used <strong>in</strong>stead of an hard-wired ARM<br />

65

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!