08.03.2014 Views

FPGA based Hardware Accleration for Elliptic Curve Cryptography ...

FPGA based Hardware Accleration for Elliptic Curve Cryptography ...

FPGA based Hardware Accleration for Elliptic Curve Cryptography ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

3.2. REGISTER FILE 20<br />

3.2 Register File<br />

Part (b) of Fig. 3.1 covers the Register File. It provides c registers of( -bit width. These registers are<br />

implemented by using <strong>FPGA</strong> internal Lookup Tables (LUT) and provide a dual ported interface allowing<br />

concurrent read and write access to the data. Currently ¤ registers are used as internal temporary registers<br />

<strong>for</strong> the EC algorithms and can there<strong>for</strong>e not be accessed by the user. The remaining ¤ register are left <strong>for</strong><br />

field parameters, input operands and results. By modifying the EC level algorithms the requirements <strong>for</strong><br />

internal temporary registers might change.<br />

3.3 EC Arithmetic<br />

The EC Arithmetic, highlighted as part (c) in Fig. 3.1, implements the algorithm and the underlying<br />

EC operations EC-Add and EC-Double. It also implements the FF-Inversion that is intrinsically not an<br />

EC level operation. But since it is realized by the control flow oriented algorithm and composed of basic<br />

arithmetic operations in just like the EC level operations, FF-Inversion has been implemented here<br />

(see Alg. 4).<br />

Beside of the controller the module contains a single shift register of( -bit size. This register is needed to<br />

scan bit-wise as required by Eqn. 3.<br />

The controller is implemented by several Finite State Machines (FSM) in a hierarchical order. Each FSM<br />

controls one arithmetical operation, i.e., the algorithm, the EC-Add and the EC-Double operation.<br />

The hierarchical ordering of FSMs is considered to be the best tradeoff between speed and flexibility.<br />

Leaving the controller logic inside the software would provide more flexibility <strong>for</strong> changing EC level algorithms<br />

at the cost that pipelining delays and parallel operation of different modules becomes much more<br />

complicated (or might even be impossible). Furthermore the overhead and the delay <strong>for</strong> communication over<br />

the PCI interface makes this solution impracticable. The other way would be a single controller to prevent<br />

possible delays emerging from communication between the different FSMs. The great disadvantage of this<br />

approach is, that due to the unmanageable side-effects inside such an FSM, modifications of one algorithm<br />

(e.g. the EC algorithm) would lead to a rewrite of the whole controller and not just the EC controller.<br />

3.4 Finite Field Arithmetic<br />

The finite field arithmetic that is denoted as part (d) in Fig. 3.1 is the most expensive part of the EC coprocessor.<br />

Due to the complexity it is split into separate modules that provide the functionality of the operations<br />

described in Sec. 2.2. A general overview of the datapath is given in Fig. 3.2. The particular parts depicted<br />

in this picture are described subsequently and the corresponding gate counts are summarized in Tab. 3.2.<br />

3.4.1 Addition<br />

According to Eqn. 2.4 the addition inhÁ5ÃÂ is a just an( -bit wide XOR with no need <strong>for</strong> a subsequent<br />

reduction step. A complete addition can be per<strong>for</strong>med in one cycle. So part (a) of Fig. 3.2 takes( XORgates<br />

of logic resources <strong>for</strong> it’s implementation. Please note, that the input registers are part of the Register<br />

File and the result register is used by all finite field operations together, because of which it’s FlipFlops are<br />

counted only once in part (f).

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

Saved successfully!

Ooh no, something went wrong!