• 検索結果がありません。

第 6 章 提案モンゴメリ乗算器 52

6.3 HDL による実装

第6章 提案モンゴメリ乗算器 Verilog-HDLで記述されている.

図6.8にLatticeMico32のブロック図を示す.LatticeMico32はハーバードアー キテクチャを持つ.また,用途に応じて性能を選択できることも特徴である.例 えば,分岐予測,外部割り込み,シフト命令,乗算除算命令,命令/データキャッ シュなどを実装するかしないかを,構成ファイルを変更することで論理合成時に 選択できる.今回の論理合成では,除算命令など楕円曲線暗号に必要でないもの は合成対象から外した.

図 6.8: LatticeMico32のブロック図.

WISHBONEはOpenCoresで推奨されているバス規格である.図6.9に WISH-BONEインターフェースを用いた標準的な接続例を示す.WISHBONEではマス タとスレーブの1対1接続となる.

図6.10にGalois Field Core部の構成を示す.I/O部がWISHBONEとのデータ の橋渡しを行う.Galois Field Core部のコントロールは,Control Registerに値 を書き込むことによって行われる.Control Registerの値からControllerが残りの ブロックの動作をコントロールする.Parameter Registersには楕円曲線暗号に必 要なパラメータを格納する.また,Data Register Fileには演算対象のデータと演 算結果が書き込まれる.ALUは加算,減算,XOR, GF(2n)におけるMAC演算,

図 6.9: WISHBONEインターフェースを用いた標準的な接続例.

GF(P)におけるMAC演算を実行する.

図6.11にGF(2n)のときのMAC演算の構成を示す.また,図6.12にGF(P)の ときのMAC演算の構成を示す.ただし,実際には図6.11と図6.12の乗算器及び レジスターは共有され,CPUからの命令によってどちらかの構成で計算を行う.

図6.7に示す,Galois Field Core部,CPU,SRAMをVerilog-HDLで記述し,

Xilinx社Virtex-5XC5VLX220[36]をターゲットとして,同じくXilinx社のISE9.1i を用いて論理合成を行った.Virtex-5XC5VLX220では合計34560スライスが利用 可能であり,各スライスにはLUT及びフィリップフロップが4個ずつ含まれる.

合成対象全体のリソース使用率,及び遅延時間を評価する.

表6.3にVirtex-5XC5VLX220をターゲットに論理合成した結果の比較を示す.

ただし,表6.3中の256ビットMM 時間は256ビットモンゴメリ乗算実行時間を 意味する.また,論理合成対象は図6.7の暗号システム全体である.クリティカ

第6章 提案モンゴメリ乗算器

WISHBONE CPU

(LatticeMico32)

WISHBONE

Instruction SRAM

Data SRAM GF_CORE

I/O

Control Register

Data Register File (A, B, C)

Controller

Parameter Registers

(P, q)

ALU

(ADD/SUB/XOR/MAC in GF(2n)/MAC in GF(P))

Temporary Register

/64

/64

/64 /64 /64 /64

Multiplier in GF(2n)

Register 0

XOR /64

Register 1 Register Z 0

Register Z 1

/Lower64

/64 /128

/Upper64

/128

Multiplier in GF(P)

Reg

CSA

/Lower16 /Upper17

/64 /64

Multiplier in GF(P) /16 /16

Reg

CSA Reg Z

CSA /32 /32

/33

/33 /17

/16 /16 /16

Multiplier in GF(P)

Reg

CSA

/Lower16 /Upper17

Multiplier in GF(P) /16 /16

Reg

CSA Reg Z

CSA /32 /32

/33

/33 /17

/16 /16 /16

/32 /128

/33 /33

a/t b/p/q c

c

c

c

a b t p/q a b t p/q c

c

図 6.10: Galois Field Core部の構成(図6.3).

表 6.2: 提案モンゴメリ乗算をVirtex-5XC5VLX220をターゲットとして論理合成 した結果

ターゲット 面積 動作周波数 ユニファイド型 フィールド 基数 256ビットMM時間

FPGA Virtex-5 7712slices 88.2M Hz Yes GF(P) 216 2.1µs

FPGA Virtex-5 7712slices 88.2M Hz Yes GF(2n) 264 0.63µs

ルパスは提案Galois Field Core部内に存在する.

6.3.2 90nm プロセスライブラリを用いた論理合成結果

提案するスケーラブル双基数ユニファイド型モンゴメリ乗算器(図6.10)を含む

ALU部(モンゴメリ乗算に使う積和和器,加減算器,論理積器を含む),レジス

タファイル部,コントローラ部をVerilog-HDLで記述し,Synopsys社のDesign

Compilerで,STARC90nmプロセス用ライブラリを用いて論理合成を行った.次

節より提案手法によるモンゴメリ乗算の演算実行時間及び,面積を比較評価する.

第6章 提案モンゴメリ乗算器

WISHBONE WISHBONE

Instruction SRAM

Data SRAM GF_CORE

I/O

Control Register

Data Register File (A, B, C)

Controller

Parameter Registers

(P, q)

ALU

(ADD/SUB/XOR/MAC in GF(2n)/MAC in GF(P))

Temporary Register

/64

/64

/64 /64 /64 /64

Multiplier in GF(2n)

Register 0

XOR /64

Register 1 Register Z 0

Register Z 1

/Lower64

/64 /128

/Upper64

/128

Multiplier in GF(P)

Reg

CSA

/Lower16 /Upper17

/64 /64

Multiplier in GF(P) /16 /16

Reg

CSA Reg Z

CSA /32 /32

/33

/33 /17

/16 /16 /16

Multiplier in GF(P)

Reg

CSA

/Lower16 /Upper17

Multiplier in GF(P) /16 /16

Reg

CSA Reg Z

CSA /32 /32

/33

/33 /17

/16 /16 /16

/32 /128

/33 /33

a/t b/p/q c

c

c

c

a b t p/q a b t p/q c

c

図 6.11: GF(2n)におけるMAC演算時のデータパス.

WISHBONE CPU

(LatticeMico32)

WISHBONE

Instruction SRAM

Data SRAM GF_CORE

I/O

Control Register

Data Register File (A, B, C)

Controller

Parameter Registers

(P, q)

ALU (ADD/SUB/XOR/MAC in

GF(2n)/MAC in GF(P))

Temporary Register

/64

/64

/64 /64 /64 /64

Multiplier in GF(2n)

Register 0

XOR /64

Register 1 Register Z 0

Register Z 1

/Lower64

/64 /128

/Upper64

/128

Multiplier in GF(P)

Reg

CSA

/Lower16 /Upper17

/64 /64

Multiplier in GF(P) /16 /16

Reg

CSA Reg Z

CSA /32 /32

/33

/33 /17

/16 /16 /16

Multiplier in GF(P)

Reg

CSA

/Lower16 /Upper17

Multiplier in GF(P) /16 /16

Reg

CSA Reg Z

CSA /32 /32

/33

/33 /17

/16 /16 /16

/32 /128

/33 /33

a/t b/p/q c

c

c

c

a b t p/q a b t p/q c

c

図 6.12: GF(P)におけるMAC演算時のデータパス.

第6章 提案モンゴメリ乗算器

関連したドキュメント