第 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章 提案モンゴメリ乗算器