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

「電子政府推奨暗号の実装」報告書

N/A
N/A
Protected

Academic year: 2022

シェア "「電子政府推奨暗号の実装」報告書"

Copied!
53
0
0

読み込み中.... (全文を見る)

全文

(1)

2011 情財第 399 号

情報セキュリティ対策基盤整備事業

「電子政府推奨暗号の実装」

報告書

平成 24 年 12 月

(2)

目次

1.

概要

...1

2. AES ... 11

3. Camellia... 16

4. CIPHERUNICORN-A ... 21

5. Hierocrypt-3 ... 28

6. SC2000... 35

7. MULTI-S01 ... 43

8. MUGI ... 49

(3)

1. 概要

1.1

に示すように,サイドチャネル攻撃用標準評価ボード

SASEBO-GII

上の

FPGA Virtex-5

上 に,電子政府推奨暗号リスト掲載のアルゴリズムのうち,下記の

5

種類の

128bit

ブロック暗号,および

2

種類のストリーム暗号を実装し,実機動作検証および,

CAD

ツールによる性能評価を行った.

・AES

(ブロック長 128

ビット,鍵長

128

ビット)

・Camellia

(ブロック長 128

ビット,鍵長

128

ビット)

・CIPHERUNICORN-A

(ブロック長 128

ビット,鍵長

128

ビット)

・Hierocrypt-3

(ブロック長 128

ビット,鍵長

128

ビット)

・SC2000

(ブロック長 128

ビット,鍵長

128

ビット)

MULTI-S01 (

ブロック長

64

ビット,鍵長

256

ビット,

IV

256

ビット

)

・MUGI

(ブロック長 64

ビット,鍵長

128

ビット,IV長

256

ビット)

SASEBO-GII

上の

FPGA Spartan-3A

に実装した

USB

インタフェースおよび制御回路は,

IPA

から 提供される「電子政府推奨暗号用ハードウェア評価環境」をベースに,各アルゴリズムの入出力デー タサイズ

/

入出力タイミング

/

処理サイクル数等を考慮した変更を適宜加えており,

Windows PC

USB

ポートとボード上の

USB

コントローラを接続することで,各暗号回路を制御する.

Windows PC

上の制御ソフトウェアも上記「電子政府推奨暗号用ハードウェア評価環境」をベースに開発し,アル ゴリズムごとのインタフェースの違いを吸収できるよう変更を加えている.

JTAG

Xilinx Virtex-5 LX30/50 Xilinx

Spartan-3A Header IO 24

USB Ctrl.

(JFT2232D)

8 4 Data

Ctrl.

Oscillator (24MHz) SMA

1 1

EEPROM

38 Select

Map SRAM

(2Mbits)

24 Header IO

Push SW

1 1

CLK 8

DIP Push SW

LED 8

8

1

32 Data 30 Ctrl.

DIP

8 LED

8

SPI-ROM

4

SMA

1 4

JTAG

SPI-ROM

4

4

JTAG

4 4

RSTSW

1

JTAG

4

SASEBO-GII

暗号回路・AES

・Camellia

・CIPHERUNICORN-A

・Hierocrypt-3

・SC2000

・MULTI-S01

・MUGI 制御回路インタフェース回路

USBケーブル

Windows PC

制御ソフトウェア

1.1 システム構成

各暗号回路は処理速度を優先するため,内部データバス幅を可能な限り広く取り,クリティカルパス

(4)

各暗号回路およびインタフェース回路は

Verilog-HDL

言語で記述し,ISE WebPACK Version 12.4 によって

SASEBO-GII

FPGA Viretex-5

上への実装および性能評価を行った.SASEBO-GII上の 実装のターゲット動作周波数は

24MHz

であるが,CIPHERUNICORN-A は論理合成の結果,

24MHz

を満たすことができなかったので,インタフェース

FPGA Spartan-3

の動作周波数を半分の

12MHz

とする制御回路も設計・実装した.ただし,FPGA のスペックは動作マージンを含んでいるた

め,手元の実機では

CIPHERUNICORN-A

24MHz

で動作している.

1.1

に,納品物の

DVD

メディア

DISC1

におさめたファイルの一覧を示す.また暗号回路と制御 回路のソースファイルは納品物ではないが,表

1.2

に示すように“参考情報”として

DISC2

におさめて いる.各メディアのディレクトリの概要は下記の通りである.

DISC1

<

文書

>

ディレクトリには,本報告書,評価結果,プログラム取扱説明書の

pdf

ファイルが納められ ている.

<

設計情報

>

ディレクトリは,

CAD

サマリを含む設計情報として,

Qualtus II

および,

ISE WebPACK

の論路合成レポートが納められている.

Qualtus II

では

Cyclone III

および

Stratix III

に対して,各暗 号 回 路 の コ ア モ ジ ュ ー ル の み を 論 理 合 成 し て い る . そ れ に 対 し て ,

ISE WebPACK

で は

Spartan-3,Spartan-6,Virtex-5,Virtex-6

に対してコアモジュールのみ,そして消費電力評価のためコア モジュール

+

インタフェース回路の

2

種類の論理合成を行った.なお,

Hieroctypt-3

MULTI-S01

spartan-3

ではリソース不足のため,電力レポートの

pwr

ファイルと,タイミングレポートの

twr

ファイル

は存在しない.

<

コンフィギュレーションデータ

>

ディレクトリの下には二つのディレクトリがあり,

<Virtex-5>

には各 暗号回路のビットストリームファイル

暗号名

.bit”

SPI ROM

ファイル

暗号名

.mcs”

が納められてい る.また

<Spartan-3>

ディレクトリには,制御回路のコンフィギュレーションデータが納められている.

“FPGA2.bit”

“FPGA2.mcs”

は,

(

)

産業技術総合研究所情報セキュリティ研究センターが開発 した「電子政府推奨暗号用ハードウェア評価環境」のソースファイルをそのまま論理合成したもので ある.しかし,

CIPHERUNICORN-A

は論理合成の結果

SASEBO-GII

の標準動作周波数

24MHz

を 満たすことができなかったため(実機では動作している),半分の

12MHz

で動作させるために修正を 施した

FPGA2_12MHz.bit”

“FPGA2_12MHz.mcs”

もおさめた.

<

制御プログラム

>

ディレクトリは暗号回路の制御ソフトウェア関連のファイルが納められている.

“algorithm_test.cs”

は上記の評価環境として公開されている制御ソフトウェアを一部修正しており,そ

Windows

上の実行ファイルが

“algorithm_test.exe”

となる.

暗号名

.txt”

“algorithm_test.exe”

が 読み込むスクリプトファイルで,各暗号外路制御用のコマンドやのテストベクタが記述されている.使 用法は「

4.2

制御ソフトウェアのインタ フェース」を参照されたい.また,

“FTD2XX_NET.dll”

“FTD2XX_NET.xml” は FTDI (Future Technology Devices International)社から公開されている

(5)

●DISC2

<回路ソースファイル>ディレクトリの下の<Virtex-5>ディレクトリには,さらに各暗号名のディレクトリ

が存在し,“FPGA1_暗号名.v” をトップとする

Verilog-HDL

ソース群(“FPGA1_暗号名.v”,“暗号 名.ucf”,“暗号名.v”,“lbus_if.v”)がおさめられている.なお

MULTI-S01

だけは,それら

4

つのソー ス以外に

“PANAMA.v”

が必要となる.“暗号名.v”が暗号回路コアモジュールで,“暗号名_tb.v”

はそのテストベンチである.“暗号名.ucf”は

Virtex-5

用のピンアサイン用ファイルであり,“lbus_if.v”

はインタフェース回路である.なお,“暗号名.ucf”,“FPGA1_暗号名.v”,そして“lbus_if.v”は,「電子 政府推奨暗号用ハードウェア評価環境」をそのまま,もしくは暗号アルゴリズムに合わせて修正した ものである.

<Spartan-3>

デ ィレ クト リ には「 電子政 府推 奨暗 号用ハ ード ウ ェ ア評価 環境 」 の制 御回 路を

CIPHERUNICORN-A

用 に

12MHz

で 動 作 さ せ る た め に 修 正 し た ソ ー ス フ ァ イ ル

“chip_sasebo_gii_ctrl_12MHz.v”

が納められている.

1.1 DISC 1

の内容

<文書>

報告書.pdf 報告書.word 評価結果.pdf 評価結果.word

プログラム取扱説明書.pdf プログラム取扱説明書.sord

報告書pdfファイル 報告書Wordファイル 評価結果pdfファイル 評価結果Wordファイル

制御プログラム取扱説明書pdfファイル 制御プログラム取扱説明書Wordファイル

<設計情報>

<Cyclone III>

<AES>

AES.flow

AES.map Qualtus II flow report

Qualtus II analysis & synthesis report

<Camellia>

Camellia.flow

Camellia.map Qualtus II flow report

Qualtus II analysis & synthesis report

<CIPHERUNICORN-A>

CIPHERUNICORN_A.flow

CIPHERUNICORN_A.map Qualtus II flow report

Qualtus II analysis & synthesis report

<Hierocrypt-3 >

Hierocrypt_3.flow

Hierocrypt_3.map Qualtus II flow report

Qualtus II analysis & synthesis report

<MUGI>

MUGI.flow

MUGI.map Qualtus II flow report

Qualtus II analysis & synthesis report

<MULTI-S01>

MULTI_S01.flow

MULTI_S01.map Qualtus II flow report

Qualtus II analysis & synthesis report

<SC2000>

SC2000.flow

SC2000.map Qualtus II flow report

Qualtus II analysis & synthesis report

<Stratix III>

<AES>

AES.flow

AES.map Qualtus II flow report

Qualtus II analysis & synthesis report

<Camellia>

(6)

<Hierocrypt-3 >

Hierocrypt_3.flow

Hierocrypt_3.map Qualtus II flow report

Qualtus II analysis & synthesis report

<MUGI>

MUGI.flow

MUGI.map Qualtus II flow report

Qualtus II analysis & synthesis report

<MULTI-S01>

MULTI_S01.flow

MULTI_S01.map Qualtus II flow report

Qualtus II analysis & synthesis report

<SC2000>

SC2000.flow

SC2000.map Qualtus II flow report

Qualtus II analysis & synthesis report

<Spartan-3>

<AES>

<コア>

AES.summary.html

AES.syr ISE synthesis summary

ISE synthesis report

<コア+インタフェース>

FPGA1_AES.summary.html FPGA1_AES.syr

FPGA1_AES.map.mrp FPGA1_AES.pwr FPGA1_AES.twr

ISE synthesis summary ISE synthesis report ISE mapping report ISE power analysis report ISE timing report

<Camellia>

<コア>

Camellia.summary.html

Camellia.syr ISE synthesis summary

ISE synthesis report

<コア+インタフェース>

FPGA1_Camellia.summary.html FPGA1_Camellia.syr

FPGA1_Camellia.map.mrp FPGA1_Camellia.pwr FPGA1_Camellia.twr

ISE synthesis summary ISE synthesis report ISE mapping report ISE power analysis report ISE timing report

<CIPHERUNICORN-A>

<コア>

CIPHERUNICORN_A.summary.html

CIPHERUNICORN_A.syr ISE synthesis summary

ISE synthesis report

<コア+インタフェース>

FPGA1_CIPHERUNICORN_A.summary.html FPGA1_CIPHERUNICORN_A.syr

FPGA1_CIPHERUNICORN_A.map.mrp FPGA1_CIPHERUNICORN_A.pwr FPGA1_CIPHERUNICORN_A.twr

ISE synthesis summary ISE synthesis report ISE mapping report ISE power analysis report ISE timing report

<Hierocrypt-3>

<コア>

Hierocrypt_3.summary.html

Hierocrypt_3.syr ISE synthesis summary

ISE synthesis report

<コア+インタフェース>

FPGA1_Hierocrypt_3.summary.html FPGA1_Hierocrypt_3.syr

FPGA1_Hierocrypt_3.map.mrp

ISE synthesis summary ISE synthesis report ISE mapping report

<MUGI>

<コア>

MUGI.summary.html

MUGI.syn ISE synthesis summary

ISE synthesis report

<コア+インタフェース>

FPGA1_MUGI.summary.html FPGA1_MUGI.syr

FPGA1_MUGI.map.mrp FPGA1_MUGI.pwr FPGA1_MUGI.twr

ISE synthesis summary ISE synthesis report ISE mapping report ISE power analysis report ISE timing report

<MULTI-S01>

(7)

FPGA1_MULTI_S01.summary.html FPGA1_MULTI_S01.syr

FPGA1_MULTI_S01.map.mrp

ISE synthesis summary ISE synthesis report ISE mapping report

<SC2000>

<コア>

SC2000.summary.html

SC2000.syr ISE synthesis summary

ISE synthesis report

<コア+インタフェース>

FPGA1_SC2000.summary.html FPGA1_SC2000.syr

FPGA1_SC2000.map.mrp FPGA1_SC2000.pwr FPGA1_SC2000.twr

ISE synthesis summary ISE synthesis report ISE mapping report ISE power analysis report ISE timing report

<Spartan-6>

<AES>

<コア>

AES.summary.html

AES.syr ISE synthesis summary

ISE synthesis report

<コア+インタフェース>

FPGA1_AES.summary.html FPGA1_AES.syr

FPGA1_AES.map.mrp FPGA1_AES.pwr FPGA1_AES.twr

ISE synthesis summary ISE synthesis report ISE mapping report ISE power analysis report ISE timing report

<Camellia>

<コア>

Camellia.summary.html

Camellia.syr ISE synthesis summary

ISE synthesis report

<コア+インタフェース>

FPGA1_Camellia.summary.html FPGA1_Camellia.syr

FPGA1_Camellia.map.mrp FPGA1_Camellia.pwr FPGA1_Camellia.twr

ISE synthesis summary ISE synthesis report ISE mapping report ISE power analysis report ISE timing report

<CIPHERUNICORN-A>

<コア>

CIPHERUNICORN_A.summary.html

CIPHERUNICORN_A.syr ISE synthesis summary

ISE synthesis report

<コア+インタフェース>

FPGA1_CIPHERUNICORN_A.summary.html FPGA1_CIPHERUNICORN_A.syr

FPGA1_CIPHERUNICORN_A.map.mrp FPGA1_CIPHERUNICORN_A.pwr FPGA1_CIPHERUNICORN_A.twr

ISE synthesis summary ISE synthesis report ISE mapping report ISE power analysis report ISE timing report

<Hierocrypt-3>

<コア>

Hierocrypt_3.summary.html

Hierocrypt_3.syr ISE synthesis summary

ISE synthesis report

<コア+インタフェース>

FPGA1_Hierocrypt_3.summary.html FPGA1_Hierocrypt_3.syr

FPGA1_Hierocrypt_3.map.mrp FPGA1_Hierocrypt_3.pwr FPGA1_Hierocrypt_3.twr

ISE synthesis summary ISE synthesis report ISE mapping report ISE power analysis report ISE timing report

<MUGI>

<コア>

MUGI.summary.html

MUGI.syn ISE synthesis summary

ISE synthesis report

<コア+インタフェース>

FPGA1_MUGI.summary.html FPGA1_MUGI.syr

FPGA1_MUGI.map.mrp

ISE synthesis summary ISE synthesis report ISE mapping report

(8)

MULTI_S01.summary.html

MULTI_S01.syr ISE synthesis summary

ISE synthesis report

<コア+インタフェース>

FPGA1_MULTI_S01.summary.html FPGA1_MULTI_S01.syr

FPGA1_MULTI_S01.map.mrp FPGA1_MULTI_S01.pwr FPGA1_MULTI_S01.twr

ISE synthesis summary ISE synthesis report ISE mapping report ISE power analysis report ISE timing report

<SC2000>

<コア>

SC2000.summary.html

SC2000.syr ISE synthesis summary

ISE synthesis report

<コア+インタフェース>

FPGA1_SC2000.summary.html FPGA1_SC2000.syr

FPGA1_SC2000.map.mrp FPGA1_SC2000.pwr FPGA1_SC2000.twr

ISE synthesis summary ISE synthesis report ISE mapping report ISE power analysis report ISE timing report

<Virtex-5>

<AES>

<コア>

AES.summary.html

AES.syr ISE synthesis summary

ISE synthesis report

<コア+インタフェース>

FPGA1_AES.summary.html FPGA1_AES.syr

FPGA1_AES.map.mrp FPGA1_AES.pwr FPGA1_AES.twr

ISE synthesis summary ISE synthesis report ISE mapping report ISE power analysis report ISE timing report

<Camellia>

<コア>

Camellia.summary.html

Camellia.syr ISE synthesis summary

ISE synthesis report

<コア+インタフェース>

FPGA1_Camellia.summary.html FPGA1_Camellia.syr

FPGA1_Camellia.map.mrp FPGA1_Camellia.pwr FPGA1_Camellia.twr

ISE synthesis summary ISE synthesis report ISE mapping report ISE power analysis report ISE timing report

<CIPHERUNICORN-A>

<コア>

CIPHERUNICORN_A.summary.html

CIPHERUNICORN_A.syr ISE synthesis summary

ISE synthesis report

<コア+インタフェース>

FPGA1_CIPHERUNICORN_A.summary.html FPGA1_CIPHERUNICORN_A.syr

FPGA1_CIPHERUNICORN_A.map.mrp FPGA1_CIPHERUNICORN_A.pwr FPGA1_CIPHERUNICORN_A.twr

ISE synthesis summary ISE synthesis report ISE mapping report ISE power analysis report ISE timing report

<Hierocrypt-3>

<コア>

Hierocrypt_3.summary.html

Hierocrypt_3.syr ISE synthesis summary

ISE synthesis report

<コア+インタフェース>

FPGA1_Hierocrypt_3.summary.html FPGA1_Hierocrypt_3.syr

FPGA1_Hierocrypt_3.map.mrp FPGA1_Hierocrypt_3.pwr FPGA1_Hierocrypt_3.twr

ISE synthesis summary ISE synthesis report ISE mapping report ISE power analysis report ISE timing report

<MUGI>

<コア>

MUGI.summary.html ISE synthesis summary

(9)

FPGA1_MUGI.summary.html FPGA1_MUGI.syr

FPGA1_MUGI.map.mrp FPGA1_MUGI.pwr FPGA1_MUGI.twr

ISE synthesis summary ISE synthesis report ISE mapping report ISE power analysis report ISE timing report

<MULTI-S01>

<コア>

MULTI_S01.summary.html

MULTI_S01.syr ISE synthesis summary

ISE synthesis report

<コア+インタフェース>

FPGA1_MULTI_S01.summary.html FPGA1_MULTI_S01.syr

FPGA1_MULTI_S01.map.mrp FPGA1_MULTI_S01.pwr FPGA1_MULTI_S01.twr

ISE synthesis summary ISE synthesis report ISE mapping report ISE power analysis report ISE timing report

<SC2000>

<コア>

SC2000.summary.html

SC2000.syr ISE synthesis summary

ISE synthesis report

<コア+インタフェース>

FPGA1_SC2000.summary.html FPGA1_SC2000.syr

FPGA1_SC2000.map.mrp FPGA1_SC2000.pwr FPGA1_SC2000.twr

ISE synthesis summary ISE synthesis report ISE mapping report ISE power analysis report ISE timing report

<Virtex-5>

<AES>

<コア>

AES.summary.html

AES.syr ISE synthesis summary

ISE synthesis report

<コア+インタフェース>

FPGA1_AES.summary.html FPGA1_AES.syr

FPGA1_AES.map.mrp FPGA1_AES.pwr FPGA1_AES.twr

ISE synthesis summary ISE synthesis report ISE mapping report ISE power analysis report ISE timing report

<Camellia>

<コア>

Camellia.summary.html

Camellia.syr ISE synthesis summary

ISE synthesis report

<コア+インタフェース>

FPGA1_Camellia.summary.html FPGA1_Camellia.syr

FPGA1_Camellia.map.mrp FPGA1_Camellia.pwr FPGA1_Camellia.twr

ISE synthesis summary ISE synthesis report ISE mapping report ISE power analysis report ISE timing report

<CIPHERUNICORN-A>

<コア>

CIPHERUNICORN_A.summary.html

CIPHERUNICORN_A.syr ISE synthesis summary

ISE synthesis report

<コア+インタフェース>

FPGA1_CIPHERUNICORN_A.summary.html FPGA1_CIPHERUNICORN_A.syr

FPGA1_CIPHERUNICORN_A.map.mrp FPGA1_CIPHERUNICORN_A.pwr FPGA1_CIPHERUNICORN_A.twr

ISE synthesis summary ISE synthesis report ISE mapping report ISE power analysis report ISE timing report

<Hierocrypt-3>

<コア>

Hierocrypt_3.summary.html

Hierocrypt_3.syr ISE synthesis summary

ISE synthesis report

<コア+インタフェース>

FPGA1_Hierocrypt_3.summary.html ISE synthesis summary

(10)

<コア>

MUGI.summary.html

MUGI.syn ISE synthesis summary

ISE synthesis report

<コア+インタフェース>

FPGA1_MUGI.summary.html FPGA1_MUGI.syr

FPGA1_MUGI.map.mrp FPGA1_MUGI.pwr FPGA1_MUGI.twr

ISE synthesis summary ISE synthesis report ISE mapping report ISE power analysis report ISE timing report

<MULTI-S01>

<コア>

MULTI_S01.summary.html

MULTI_S01.syr ISE synthesis summary

ISE synthesis report

<コア+インタフェース>

FPGA1_MULTI_S01.summary.html FPGA1_MULTI_S01.syr

FPGA1_MULTI_S01.map.mrp FPGA1_MULTI_S01.pwr FPGA1_MULTI_S01.twr

ISE synthesis summary ISE synthesis report ISE mapping report ISE power analysis report ISE timing report

<SC2000>

<コア>

SC2000.summary.html

SC2000.syr ISE synthesis summary

ISE synthesis report

<コア+インタフェース>

FPGA1_SC2000.summary.html FPGA1_SC2000.syr

FPGA1_SC2000.map.mrp FPGA1_SC2000.pwr FPGA1_SC2000.twr

ISE synthesis summary ISE synthesis report ISE mapping report ISE power analysis report ISE timing report

<コンフィギュレーションデータ>

<Virtex-5>

<AES>

AES.bit

AES.mcs Virtex-5 bit-stream file

Virtex-5 PROM file

<Camellia>

Camellia.bit

Camellia.mcs Virtex-5 bit-stream file

Virtex-5 PROM file

<CIPHERUNICORN-A>

CIPHERUNICORN_A.bit

CIPHERUNICORN_A.mcs Virtex-5 bit-stream file

Virtex-5 PROM file

<Hierocrypt-3 >

Hierocrypt_3.bit

Hierocrypt_3.mcs Virtex-5 bit-stream file

Virtex-5 PROM file

<MUGI>

MUGI.bit

MUGI.mcs Virtex-5 bit-stream file

Virtex-5 PROM file

<MULTI-S01>

MULTI_S01.bit

MULTI_S01.mcs Virtex-5 bit-stream file

Virtex-5 PROM file

<SC2000>

SC2000.bit

SC2000.mcs Virtex-5 bit-stream file

Virtex-5 PROM file

<Spartan-3>

FPGA2.bit FPGA2.mcs FPGA2_12MHz.bit FPGA2_12MHz.mcs

Spartan-3 bit-stream file (24MHz版) Spartan-3 PROM file (24MHz版) Spartan-3 bit-stream file (12MHz版) Spartan-3 PROM file (12MHz版)

<制御プログラム>

algorithm_test.cs algorithm_test.exe FTD2XX_NET.dll FTD2XX_NET.xml

PC上の制御プログラムソースファイル PC上の制御プログラム実行ファイル USB制御用DLLファイル

USB制御用XMLファイル

(11)

MULTI-S01.txt

SC2000.txt MULTI-S01用スクリプトファイル

SC2000用スクリプトファイル

1.2 DISC2

の内容

<回路ソースファイル>

<Virtex-5>

<AES>

AES.ucf AES.v AES_tb.v FPGA1_AES.v lbus_if.v

I/Oピン指定ファイル 暗号回路コアソースファイル 暗号回路コアテストベンチ

号回路トップモジュールソースファイル インタフェース回路ソースファイル

<Camellia>

Camellia.ucf Camellia.v Camellia_tb.v FPGA1_Camellia.v lbus_if.v

I/Oピン指定ファイル 暗号回路コアソースファイル 暗号回路コアテストベンチ

号回路トップモジュールソースファイル インタフェース回路ソースファイル

<CIPHERUNICORN-A>

CIPHERUNICORN-A.ucf CIPHERUNICORN-A.v CIPHERUNICORN-A _tb.v FPGA1_ CIPHERUNICORN-A.v lbus_if.v

I/Oピン指定ファイル 暗号回路コアソースファイル 暗号回路コアテストベンチ

号回路トップモジュールソースファイル インタフェース回路ソースファイル

<Hierocrypt-3 >

Hierocrypt-3.ucf Hierocrypt-3.v Hierocrypt-3.v

FPGA1_ Hierocrypt-3.v lbus_if.v

I/Oピン指定ファイル 暗号回路コアソースファイル 暗号回路コアテストベンチ

号回路トップモジュールソースファイル インタフェース回路ソースファイル

<MUGI>

MUGI.ucf MUGI.v MUGI_tb.v FPGA1_MUGI.v lbus_if.v

I/Oピン指定ファイル 暗号回路コアソースファイル 暗号回路コアテストベンチ

号回路トップモジュールソースファイル インタフェース回路ソースファイル

<MULTI-S01>

MULTI-S01.ucf MULTI-S01.v MULTI-S01_tb.v FPGA1_MULTI-S01.v lbus_if.v

I/Oピン指定ファイル 暗号回路コアソースファイル 暗号回路コアテストベンチ

号回路トップモジュールソースファイル インタフェース回路ソースファイル

<SC2000>

SC2000.ucf SC2000.v SC2000_tb.v FPGA1_SC2000.v lbus_if.v

I/Oピン指定ファイル 暗号回路コアソースファイル 暗号回路コアテストベンチ

号回路トップモジュールソースファイル インタフェース回路ソースファイル

<Spartan-3>

chip_sasebo_gii_ctrl_12MHz.v Spartan-3用制御回路 (12MHz版)

(12)

1.3

は上記“暗号名.v”ファイルの暗号マクロブロックに共通の

I/O

ポートである.なお,データ入 出力のタイミングは暗号アルゴリズム毎に異なっている.ストリーム暗号の

MULTI-S01

と疑似乱数生 成器

MUGI

I/O

7

章と

8

章に示すが,表

1.3

のインタフェースをほぼ踏襲している

次章以下,各暗アルゴリズムを示した後,ハードウェアのデータパス構成とタイミングチャートの説 明を行う.

1.3

ブロック暗号の

I/O

ポート

ポート名 方向 サイズ 説 明

RSTn In 1

リセット信号.RSTn=0 で,シーケンサと内部レジスタがリセットさ れる.リセットは全ての処理に優先し,クロック信号

CLK

が入って いる限り

EN=0

でも,実行される.

CLK In 1

システムクロック信号.全てのレジスタはこのクロックの立ち上がり に同期して,データの入出力を行う.

Kin In 128

鍵入力ポート.

Din In 128

データ入力ポート.

Krdy In 1 EN=1

のとき,Krdy=1で

Kin

から秘密鍵を取り込み,鍵の事前処

理が開始される.

Drdy In 1

EN=1

のとき,

Drdy=1

Din

から平文

(EncDec=0)

または暗号文

(EncDec=1)をを取り込み,直ちに暗号化・復号処理を開始する.

Drdy=1

を与える前に鍵の事前処理が完了していなければならな

い.

EncDec In 1 EncDec=0

で暗号化,EncDec=1で復号を行う.

EN In 1

イネーブル信号.

EN=1

でマクロがアクティブとなり,

EN=0

のとき リセットを除く全ての処理は一時停止する.再び

EN=1

とすると,

一時停止したところから処理が再開する.

Dout Out 128

データ出力ポート.暗号化処理の後

Dvld=1

となると暗号文を,

復号処理の場合は平文が出力される.Dvld=1 であるクロックサ イクルでのみ有効な値が出力される.

Busy Out 1

ビジー信号.鍵の事前処理または暗号化・復号処理が行われて いる間

Busy=1

となる.Busy=1の間は,Krdy=1や

Drdy=1

を与え ることはできない.

Dvld Out 1

暗号化または復号処理が終了し,ポート

Dout

にデータが出力さ

れる

1

クロックサイクルの間

Dvld=1

となる.

Kvld Out 1

リセットまたは鍵が入力された直後に

Kvld=0

となり,鍵の事前処 理が終了して鍵レジスタがセットされると,マクロによってその後

Kvld=1

をキープするか,1クロックだけ

Kvld=1

となる.

(13)

2. AES

2.1

128

ビット鍵による

AES

アルゴリズムの暗号化処理の流れを示す.入力された秘密鍵は 右側の

Key Generator

によって

11

組のラウンド鍵に変換される.

128

ビットの平文データはまず,

4

×4

列の

16

バイトのマトリクス状に並べられ,

4

つの基本関数

SubBytes, ShiftRows, MixColumns

そし て

AddRoundKey

が繰返し適用される.

SubBytes

はバイト単位の非線形変換

S-box

16

個集めた もので,ガロア体

GF(2

8

)

上の乗法逆元演算に続いてアフィン変換を行なう.復号の

InvSubBytes

で は逆アフィン変換の後に逆元演算が行なわれる.

ShiftRows

は各

4×4

バイト行列をバイト単位で行 ごとに,あらかじめ決められたオフセット分巡回シフトする.復号の逆演算は各行を逆方向にシフトす ればよく,これは

InvSiftRows

と呼ばれる.

MixColumns

では列方向の

4

バイトを

4

項式の各係数と 見なした多項式と乗算を行う.

AddRoundKey

はビット単位のデータとラウンド鍵との

XOR

演算である.

鍵スケジューラでは,入力された

128

ビットの秘密鍵k0から

10

組のラウンド鍵k1

~k

10を生成するのに,

4

つの

S-box(=4

バイト分

)

10

組の

4

バイト定数rc1

~rc

10が用いられる.なおrc1

~rc

10の下位

3

バイ トは

0

である.復号では鍵が暗号化とは逆の順序で使用されるのと同時に,暗号化の逆関数が暗号 文に施されて平文に変換される.

00 8

a a01a02a03 a10a11 a13 a20a21a22a23 a30a31a32a33

a

ij bb0010bb0111b02bb0313

b20b21b22b23 b30b31b32b33

b

ij

S-box

a00a01a02a03 a10a11 a13 a20a21a22a23 a30a31a32a33

b00b01b02b03 b10b11 b13 b20b21b22b23 b30b31b32b33

a12 b12

no shift right rotation by 3 right rotation by 2 right rotation by 1

a00a01 a03

a10a11 a13

a20a21 a23

a30a31 a33

a

1j bb0010bb0111 bb0313

b20b21 b23

b30b31 b33

a

0j

a

2j

a

3j

b

1j0j

b

b

2j

b

3j

( )

x c

a00a01a02a03

a10a11 a13 a20a21a22a23 a30a31a32a33

b00b01b02b03

b10b11 b13 b20b21b22b23 b30b31b32b33 a12 k00k01k02k03 b12

k10k11 k13 k20k21k22k23 k30k31k32k33

k12

AddRoundKey MixColumns

ShiftRows SubBytes

AddRoundKey ShiftRows

SubBytes AddRoundKey

MixColumns ShiftRows

SubBytes AddRoundKey

8 8

8 8 8

S-box

<<8 rc1

S-box

<<8 S-box

<<8

32 32 32 32

128

128

128

128

rc9

rc10

k0

k1

k9

k10

平文 秘密鍵

暗号文

2.1 AES

の暗号化処理

AES

S-box

は次式の規約多項式m(x)によるガロア体

GF(2

8

)上の乗法逆元演算が用いられる.

1 )

( xx

8

x

4

x

3

x

m

暗号化では逆元演算に続いてアフィン変換Aが,復号では逆変換A–1に続いて逆元演算が行な われる.

(14)

















































































0 1 1 0 0 0 1 1

1 1 1 1 1 0 0 0

0 1 1 1 1 1 0 0

0 0 1 1 1 1 1 0

0 0 0 1 1 1 1 1

1 0 0 0 1 1 1 1

1 1 0 0 0 1 1 1

1 1 1 0 0 0 1 1

1 1 1 1 0 0 0 1

:

7 6 5 4 3 2 1 0

7 6 5 4 3 2 1 0

a a a a a a a a

b b b b b b b b

A

1 1 1 1

0 1 0 1 0 0 1 0

0 0 1 0 1 0 0 1

1 0 0 1 0 1 0 0

0 1 0 0 1 0 1 0

0 0 1 0 0 1 0 1

1 0 0 1 0 0 1 0

0 1 0 0 1 0 0 1

1 0 1 0 0 1 0 0

:

7 6 5 4 3 2 1 0

7 6 5 4 3 2 1 0

1





























































a a a a a a a a

b b b b b b b b

A

拡散層

MixColumns

4×4

バイト行列の各列をx

3

次多項式の

4

つの係数として扱い,次式と 乗算じた後にx4

+1

の剰余を求める演算である.

} 02 { } 01 { } 01 { } 03 { )

( xx

3

x

2

x

c

復号における

InvMixColumns

は次の多項式を用いる.

} E 0 { } 09 { } D 0 { } B 0 { )

(

3 2

1

   

x x x x

c

2.2

は高速実装を目的に,内部バス幅を

128

ビットと広く取った

AES

のデータパスである.

S-box

内のガロア体

GF(2

8

)

の逆元演算器(テーブルで実装)や,マトリクス乗算である

MixColumns

InvMixColumns

の 共 通 項 の 共 有 化 を 行 っ て い る . コ ン ポ ー ネ ン ト 共 有 の た め , 復 号 で

AddRoundKey

InvMixColumns

(図

2.2

では

InvMixCol.

と表示)の順番を入れ替え,かつそのつじ つまを合わせるために右半分の鍵スケジューラのラウンド鍵出力に

MixColumns

を施している.

(15)

Dreg ShiftRows InvShiftRows

128

GF(2

8

) Inverters affine

-1

affine

MixCol.

InvMixCol.

EncKreg

128

MixCol.

DecKreg

128

128

SubBytes InvSubBytes

Dout Din

AddRoundKey

128

Key

<<8 S-box

Rcon

i 32 128

32 32 32

32

32 32 32 32

2.2 AES

回路のデータパス

2.3

に最短サイクルでの暗号化処理のタイミングチャートを示す.各クロックの動作は下記の通り である.

CLK1: RSTn=0

とすることで,制御回路がリセットされる.

CLK2: Krdy=1

とすることで,

Kin

に入力された

128bit

の秘密鍵が内部レジスタにセットされる.

CLK3: EncDec=0

なので暗号化処理であるが,復号処理ブロック側で復号処理の最初のラウンド鍵

(暗号化処理の最終ラウンド鍵)を生成する初期化が開始され,ビジー信号

BSY=1

となる.

Kout

には暗号化処理側の回路ブロックからの出力が接続されているので,鍵初期化時にラウ ンド鍵は出力されない.

CLK14:

鍵の初期化が終了し,BSY=0,また

1

クロックだけ

Kvld=1

となる.それと同時に Dinに入

力された

128bit

の平文が内部レジスタにセットされる.

CLK15: EncDec=0

なので暗号化処理が開始され,ビジー信号

BSY=1

となる.これから毎クロック,

Kout

にラウンド鍵が出力されていく.

CLK16~25:

暗号化処理は

0

クロックを要し,CLK25で完了する.128bitの暗号文が

Dout

から出力 され,BSY=0,データ出力信号

Dvld=1

1

クロックだけ出力される.

(16)

CLK RSTn

Kin

BSY

Dvld Kvld Din

Dout

0 1 2 11 22 24 25

EN

Krdy

Drdy

23 26

EncDec

12 13 14 15

11 clock 10 clock

3

Kr2

Kr1 Kr9

Kout Kr10

Key

PT

CT

2.3 AES

の暗号化処理のタイミングチャート

2.4

に最短サイクルでの復号処理のタイミングチャートを示す.各クロックの動作は下記の通りで ある.

CLK1: RSTn=0

とすることで,制御回路がリセットされる.

CLK2: Krdy=1

とすることで,

Kin

に入力された

128bit

の秘密鍵が内部レジスタにセットされる.

CLK3:

復号処理の最初のラウンド鍵(暗号化処理の最終ラウンド鍵)を生成する初期化が開始され,

ビジー信号

BSY=1

となる.

CLK14:

鍵の初期化が終了し,

BSY=0

,また

Kvld=1

となる.それと同時に

Din

に入力された

128bit

の暗号文が内部レジスタにセットされる.

CLK15: EncDec

1

なので復号処理が開始され,ビジー信号

BSY=1

となる.これから毎クロック,

Kout

にラウンド鍵が出力されていく.

CLK16~25:

復号処理は暗号化処理と同様に

10

クロックを要し,

CLK25

で完了する.

128bit

の平文 が

Dout

から出力され,

BSY=0

,データ出力信号

Dvld=1

1

クロックだけ出力される.

(17)

CLK RSTn

Kin

BSY

Dvld Kvld Din

Dout

0 1 2 11 22 24 25

EN

Krdy

Drdy

23 26

EncDec

12 13 14 15

11 clock 10 clock

3

Kr2

Kr1 Kr9

Kout Kr10

Key

CT

PT Kr1 Kr9 Kr10

2.4 AES

の復号処理のタイミングチャート

(18)

3. Camellia

3.1

128

ビット鍵による

Camellia

アルゴリズムの暗号化処理を示す.図左半分の

22

ラウン ドのデータ攪拌部は,

6

ラウンドの

Feistel

ネットワークブロックと,そのブロック間の

2

つの

線形変換

FL/FL

-1,そして入出力時の

128

ビットデータと

128

ビットラウンド鍵との

XOR

から構

成される.

128

ビットの入力データは,左右

64

ビットずつに分解され,

Feistel

ネットワークブ ロックではその左半分が

F

関数で

64

ビットラウンド鍵を用いて変換された後,右半分に

XOR

される.そして左右が入れ替えられて,ラウンド鍵を変えながら同様の処理が繰り返される.

F

関数への

64

ビット入力は,

64

ビットのラウンド鍵と

XOR

された後,

8

つの

8

ビットブロック に分割され,

4

種類

(S1~S4)×2

組の

S-box

で変換され,さらに

64

ビット全体に対して

P

関数によ る変換が施される.復号は暗号化と同じ処理に対して,ラウンド鍵を逆順にスケジュールす ることで実行される.

各ラウンド鍵は

128

ビットの秘密鍵KL

128

ビットの中間鍵KAを表

10

のように巡回シフト したもので,中間鍵KAは図

3.2

に示したように,秘密鍵KL

F

関数を

4

回施すことで生成され る.

3.1

鍵スケジューリング

Initial XOR

kw1(64)

kw2(64)

(K

L

<<<0)

L(64)

(K

L

<<<0)

R(64)

F

Round 1 Round 2 Round 3 Round 4 Round 5 Round 6

k1(64)

k2(64)

k3(64)

k4(64)

k5(64)

k6(64)

(K

A

<<<0)

L(64)

(K

A

<<<0)

R(64)

(K

L

<<<15)

L(64)

(K

L

<<<15)

R(64)

(K

A

<<<15)

L(64)

(K

A

<<<15)

R(64)

FL

FL

-1 kl1(64)

kl2(64)

(K

A

<<<30)

L(64)

(K

A

<<<30)

R(64)

F

Round 7 Round 8 Round 9 Round 10 Round 11 Round 12

k7(64)

k8(64)

k9(64)

k10(64)

k11(64)

k12(64)

(K

L

<<<45)

L(64)

(K

L

<<<45)

R(64)

(K

A

<<<45)

L(64)

(K

L

<<<60)

R(64)

(K

A

<<<60)

L(64)

(K

A

<<<60)

R(64)

FL

FL

-1 kl3(64)

kl4(64)

(K

L

<<<77)

L(64)

(K

L

<<<77)

R(64)

F

Round 13 Round 14 Round 15 Round 16 Round 17 Round 18

k13(64)

k14(64)

k15(64)

k16(64)

k17(64)

k18(64)

(K

L

<<<94)

L(64)

(K

L

<<<94)

R(64)

(K

A

<<<94)

L(64)

(K

A

<<<94)

R(64)

(K

L

<<<111)

L(64)

(K

L

<<<111)

R(64)

Final XOR

Kw3(64)

Kw4(64)

(K

A

<<<111)

L(64)

(K

A

<<<111)

R(64)

(19)

Feistel Network

64 64

FL FL-1

kw1 kw2

k1~6

Feistel Network FL FL-1 k7~12

Feistel Network k13~18

kw3 kw4

kl1 kl2

kl3 kl4

F

F

F

F

F

F kw1

kw2

kw3

kw4

kw5

kw6 64

64 64

8 8 S1

8 8 S4

8 8 S3

8 8 S2

8 8 S4

8 8 S3

8 8 S2

8 8 S1

8 8 8 8 8 8 8 8 64

<<1 AND

OR

64 32 32

32 64 32

64 32 32

kl

64 32

32 64

32

kl

<<1 AND

OR

64 32 32

32

FL FL-1

P関数 平文

暗号文

3.1 Camellia

の暗号化処理

F

F

1

KL 64

64

64 12864

128 128

2

F

F

3

KA 64

64

64 64

128

3

KL

3.2 中間鍵

KAの生成

Camellia

4

種類の

S-box S1~S4

はいずれも,次のガロア体

GF((2

4

)

2

)

上の乗法逆元演算と,そ の前後に施されるアフィン変換FおよびHによって構成される.図

3.3

に示したように

S1

の出力ビッ ト列を

1

ビット右に巡回シフトした変換が

S2

,1ビット左巡回シフトしたものが

S3

,そして入力ビット列を

1

ビット左巡回シフトしたものが

S4

である.なお,今回の回路実装では,

S-box

8

ビット入出力のル ックアップテーブル実装としている.

x

8

>>1

F H

S1

Inverter GF

8

y

8

y x

8

<<1

S1

8

y

x

8

S1

8

y x

8

<<1

S1)

S2)

S3)

S4)

3.3 Camellia

S-box

構成





}) 1001 { ( )

( : ) ) 2 ((

GF

1 )

( : ) 2 ( GF

2 2

4

4 0

4

x x x g

x x x g

(20)

1 1 1 1

0 0 1 0 1 0 0 0

1 0 0 0 0 0 0 1

0 0 0 1 0 0 1 0

0 1 0 0 1 0 0 0

1 0 0 0 0 1 0 0

1 0 0 1 0 1 0 0

0 1 0 0 0 0 0 1

0 0 1 0 0 0 1 0

:

7 6 5 4 3 2 1 0

7 6 5 4 3 2 1 0





























































a a a a a a a a

b b b b b b b b

F

















































































0 1 1 1 0 1 1 0

0 0 1 0 0 1 0 0

0 0 0 1 0 0 0 1

1 0 0 0 0 0 0 1

0 1 0 0 0 1 0 0

1 0 0 0 0 0 1 0

0 1 0 0 1 0 0 0

0 0 1 0 0 0 1 0

0 0 1 1 0 0 1 0

:

7 6 5 4 3 2 1 0

7 6 5 4 3 2 1 0

a a a a a a a a

b b b b b b b b

H

3.4

Camellia

ハードウェアマクロのデータパスアーキテクチャを示す.

1

クロックで変換される

データビット数は,

FL/FL

-1

key whitening

128

ビットで,それ以外は

64

ビットである.

1

回の暗号 化および復号の処理クロック数は,

Key whitening

FL/FL

-1に各

2

クロック,

F

関数に

18

クロック,デ ータ

I/O

1

クロックで,計

23

クロックとなる.

データ出力

P FL S

FL

-1

64 64 64 64 64

12864 64

64

64 64

データ入力

>>16 <<16

>>1 <<1 128

128

64 64 128 128

1~4

0

鍵入力

データ攪拌部

64 64

鍵スケジュール部

128

3.4 Camellia

回路のデータパス

(21)

<<1

>>1

kl

L

kl

H

sel

en

32 32

<<1

>>1

kl

L

kl

H

sel en

32

32 32

32 32 32 32

32 32

(a) FL

関数

(b) FL

-1関数

3.5 FL/FL

-1回路ブロック

3.6

に暗号化と復号処理のタイミングチャート示す.データ入出力は全てクロックの立ち上がりに 同期しており,この例で信号の制御は最短のサイクルで行われている.

CLK1:

リセット信号

RSTn=0

とすることで,シーケンサーロジックと内部レジスタがクリアされる.

CLK2:

イネーブル信号

EN=1

,鍵入力用信号

Drdy=1

とすることで,鍵入力ポート

Kin

上の秘密鍵

K

がマクロの内部鍵レジスタにストアされる.直ちに中間鍵生成処理が開始され,ビジー信号が

Busy=1

となる.なお,

EncDec=1

なので復号モードとなっているが,鍵設定時にこの信号は影響

しない.

CLK7:

中間鍵生成が終了し,鍵が有効となったことを示すステータス信号が

Kvld=1

となると同時に

Busy=0

に落ちる.

CLK8: Drdy=1

とすることで,

EncDec=1(

復号モード

)

となっているため,

Din

上のデータ

CT

が暗号文 としてマクロ内のデータレジスタに取り込まれる.それに伴い,復号処理が開始されて

Busy=1

と なる.

CLK30:

復号処理が終了し

Busy=0

に落ち,

Dvld=1

となり,データ出力ポート

Dout

に平文

PT

が出 力される.

CLK31:

復号処理直後に

EncDec=0

として暗号化モードに切り替え,

Drdy=1

として平文

PT

を取り 込む.これにより直ちに暗号化処理が開始されて

Busy=1

となり,

Dout

上のデータは無効とな る.

CLK53:

暗号化処理が終了し

Busy=0

に落ち,

Dout

に有効な暗号文

CT

が出力され,

Dvld=1

とな る.この時点で既に

EncDec=1

として復号モードが選択されているが,この信号はデータ入力時 にのみ参照されるため,処理途中の変更は無視されている.

CLK54: EncDec=1(

復号モード

)

となっているので,

Drdy=1

により,

Din

上のデータが暗号文として 取り込まれ,復号処理が始まり

Busy=1

となる.前のクロックで出力された暗号文は無効となり,

Dvld=0

に落ちる.

CLK76:

復号が終了し

Busy=0

に落ち,

Dout

に平文

PT

が出力されて

Dvld=1

となる.

(22)

CLK RSTn

Din[127:0]

Busy Dvld Kvld Dout[127:0]

0 1 2 52 53 54

EncDec

8 29 30 31

5 clocks

6 7

EN

Drdy

K

CT

22 clocks

PT

PT

22 clocks CT

CT

76 77 75

PT

22 clocks Kin[127:0]

Krdy

3.6

暗号化・復号処理のタイミングチャート

(23)

4. CIPHERUNICORN-A

図4.1に128ビット鍵によるCIPHERUNICORN-Aアルゴリズムの暗号化・復号の処理を示す.

入力データは初期処理として拡大鍵加算された後,16段Feistel構造により撹拌され,終期処 理として拡大鍵減算を行い,処理結果が出力される.図4.2に示すF関数ブロックはテーブル 実装によるバイト単位での非線形変換とXORを中心に構成される.図4.3に示す128ビット鍵 の鍵スケジューラでは,初期処理,終期処理,ラウンド処理用の拡大鍵を生成する.12 段の MT関数に続き,16段のMT関数の循環処理毎に8個の32ビット拡大鍵が生成され,9回の繰り 返しで72個の32ビット拡大鍵が得られる.これらの拡大鍵はラウンド処理の順に生成されな

いため on-the-fly による鍵生成を行うことはできず,拡大鍵は鍵メモリにストアされる.

F

平文

EK

0

128

暗号文

F

EK

15

128

IK

3

32 32 32 32

IK

3

IK

2

IK

0

128

IK

7

IK

6

IK

5

IK

4

32 32 32

128

4.1 CIPHERUNICORN-A

の暗号化処理

EK

T0 T1 T2 T3

A3

Xl

Yl

FKa

FKb

SKa

SKb 32 32 32 32

32 128

32

2 2

0x7e167289

0x7e167289

0x7e167289 0xfe21464b 0xfe21464b

T0 T1 T2 T3

T3 T3 T2 T2 T1 T1 T0 T0

T1 T1 T0 T0 T0 T0

(24)

MT

0

MT

11

MT

0

MT

8

MT

9

MT

15 32

32

32

32 32 32

Key

key

0

key

1

key

7

128

MT

0

MT

8

MT

9

MT

15 32

32

32

key

64

key

65

key

71

32

4.3 CIPHERUNICORN-A

の鍵スケジューリング

4.4~4.6

CIPHERUNICORN-A

回路マクロのデータパスアーキテクチャを示す.F関数を中心

図 1.1 に示すように,サイドチャネル攻撃用標準評価ボード SASEBO-GII 上の FPGA Virtex-5  上 に,電子政府推奨暗号リスト掲載のアルゴリズムのうち,下記の 5 種類の 128bit ブロック暗号,および 2 種類のストリーム暗号を実装し,実機動作検証および, CAD ツールによる性能評価を行った. ・AES  (ブロック長 128 ビット,鍵長 128 ビット)  ・Camellia  (ブロック長 128 ビット,鍵長 128 ビット)  ・CIPHERUNICORN-A  (
図 2.1 に 128 ビット鍵による AES アルゴリズムの暗号化処理の流れを示す.入力された秘密鍵は 右側の Key Generator によって 11 組のラウンド鍵に変換される. 128 ビットの平文データはまず, 4 行
図 5.6 および図 5.7 にそれぞれ,暗号化と復号処理のタイミングチャートを示す.データ入出力は 全てクロックの立ち上がりエッジに同期しており,信号の制御は最短のサイクルで行われている.  CLK1 : リセット信号 RSTn=0 とすることで,シーケンサーロジックと内部レジスタが初期化される. CLK2 : 鍵入力に秘密鍵をセットして,イネーブル信号 EN=1 ,鍵レディ信号 Krdy=1 とすることで, 秘密鍵が取り込まれ鍵生成処理が開始されビジー信号が Busy=1 となる. CLK888 :
図 6.4  鍵スケジューリング部のデータパス  表 6.1    データ攪拌部の構成  ラウンド 暗号化 復号 1  I  I  2  B, I, R  B -1 , I, R  3  R, I  R, I  4  B, I, R  B -1 , I, R  5  R, I  R, I  6  B, I, R  B -1 , I, R  7  R, I  R, I  8  B, I, R  B -1 , I, R  9  R, I  R, I  10  B, I, R  B -1 , I, R
+4

参照

関連したドキュメント

On April 1, 2016, the Company transferred its fuel and thermal power generation business (exclud- ing fuel transport business and fuel trading business), general power transmission

(11) Report on the results of the earthquake response analysis of the reactor building, facilities and pipes important to earthquake safety in Unit 1 at Fukushima Daini Nuclear

Policy on determining remuneraion for directors and executive officers The main duty of each director and executive officer of TEPCO HD is to minimize the burden on the people

This first edition of the Group’s integrated report pronounces the top management’s commitment to the new management policy and reform, as well as reports on the strategies

○   While trying to respond to situations at multiple reactor units due to lack of information about the cooling water injection status of Unit 2 since receiving information about

・ The direct causes leading to the reactor core damage accident of Fukushima Daiichi Units 1 to 3 are, in the case of Unit 1, the total loss of cooling capacity at an early stage

1 北海道 北海道教育大学岩見沢校  芸術・スポーツ産業化論 2019年5月20日 藤原直幸 2 岩手県 釜石鵜住居復興スタジアム 運営シンポジウム

養子縁組 子どもの奪取・面会交流 親族・ルーツ捜し 出生登録、国籍取得、帰化申請など 医療/精神保健問題 結婚/離婚問題、手続きなど