バッファを用いた軽量擬似乱数生成器のグリッチ削減方法とハードウェア実装評価
6
0
0
全文
(2) はじめに. ハミング距離が常に 1 となるカウンタを用いる ことで,信号線のトグルを最大約 60 % 削減可能 近年,パッシブ型 RFID (Radio Frequency であることを示す.なお,カウンタを置き換え IDentification) タグの利用が進んでいるが [1], るだけであるから,回路規模はほぼ変わらない. プライバシ問題などのセキュリティ上の課題に 以下,2 節で Grain-80, Trivium, Enocoro-80 対応するため,RFID タグのセキュリティ強化 の仕様概要を記載する.3 節で,[7] で筆者らが が求められている.RFID タグのセキュリティ 用いた実装アーキテクチャについて述べる.4 を強化する一方策として,RFID タグに暗号回 節で,グリッチの発生を抑えるカウンタについ 路を搭載し,認証や通信データの秘匿を行う方 て述べる.5 節で,ASIC 実装性能を示し,6 節 法がある. でまとめる. パッシブ型 RFID タグはハードウェアリソー スが限られていることと,リーダから照射され る電波によって電力を得ることから,RFID タ 2 軽量擬似乱数生成器の仕様 グに搭載する回路は軽量,省電力であることが 本節では,Grain-80,Trivium と Enocoro-80 望まれている.これらの背景から,RFID 認証 の仕様概要を記載する.詳細な仕様については, プロトコルや RFID タグを対象プラットフォー Grain 仕様書 [4],Trivium 仕様書 [5],Enocoro ムとした軽量暗号アルゴリズムが多数発表され 仕様書 [6] を参照のこと. てきた [2]. 筆者らは,RFID タグにおいて,乱数生成用途 などへの利用が見込まれる軽量擬似乱数生成器 2.1 Grain-80 の仕様 に着目し,その省電力実装を検討している [7]. Grain-80 は Hell 等が発表した擬似乱数生成 既に,軽量擬似乱数生成器の Grain-80 [4],Triv器であって,eSTREAM (ECRYPT Stream Ciium [5],Enocoro-801 [6] はシフトレジスタを 基本構成とする暗号アルゴリズムであるため, pher Project) [3]Profile 2 の一つに選定されて いる.入力は秘密鍵 80 ビットと初期ベクトル 付加したバッファを用いて内部状態を逐次的に 更新する実装アーキテクチャを採用することで, (以下,IV と記す) 64 ビットである.内部状態 の大きさは 160 ビットで,160 ラウンドの初期 消費電力の主要因である,信号線のトグルを約 化を行った後,1 ビットずつ擬似乱数列を出力 60 % 削減可能であることを述べた. 一方で,トグルの挙動を詳細に解析すると, する. 内部状態は 80 ビット長の線形フィードバック カウンタのインクリメントに起因してグリッチ シフトレジスタ (LFSR) と 80 ビット長の非線 が発生していることが新たに分かってきた.グ 形フィードバックシフトレジスタ (NFSR) から リッチとはハードウェア基本素子の過渡的な出 構成される.初期値の入力では,NFSR へ鍵を 力信号であり,消費電力の増加原因となる.バッ 入力し,LFSR へ鍵と定数を入力する.LFSR ファを活用する実装アーキテクチャでは,カウ と NFSR の値を出力関数に入力し,その出力を ンタの値によって,内部状態を格納するレジス 擬似乱数列とする.Grain-80 は 1 ビットの擬似 タの挙動を制御する.そのため,カウンタのイ ンクリメントにおいてグリッチが発生すると, 乱数列を出力するたびに,LFSR の 1 ビットと NFSR の 1 ビットを更新する.NFSR は 5 入力 カウンタ値の変動に影響され,レジスタの入力 1 出力の非線形関数と LFSR の出力値で更新さ 信号が変動し,グリッチが発生する. れる.LFSR は 6 入力 1 出力の線形関数で更新 そこで,本稿では,グリッチの発生を抑える される.初期化フェースでは,出力関数の出力 カウンタの設計と,そのカウンタを適用した Grain-80,Trivium と Enocoro-80 の ASIC (Ap- 値は NFSR と LFSR の入力値としてフィード バックされ,擬似乱数列を出力しない. plication Specific Integrated Circuit) 実装評価. 1. 結果について述べる.インクリメントにおいて,. - 73 -. 1. Enocoro は株式会社日立製作所の登録商標です..
(3) 2.2. Trivium の仕様. 3. Trivium は C.D. Canni` ere 等が発表した擬似 乱数生成器であって,ISO 標準暗号 (ISO/IEC 29192-3) の一つに採択されている.入力は秘密 鍵 80 ビットと IV80 ビットである.内部状態の 大きさは 288 ビットで,1152 ラウンドの初期 化を行った後,1 ビットずつ擬似乱数列を出力 する. 内部状態は長さの異なる 3 本の LFSR から構 成される.初期値の入力では,鍵と IV は 2 本の LFSR へ入力され,残りのビットには定数を入 力する.各ラウンドにおいて,3 本の LFSR は それぞれの LFSR 内で 1 ビットシフトする.さ らに,LFSR の値を非線形関数に入力し,その 出力値を隣接する LFSR への入力とする.3 本 の LFSR から 1 ビットずつ値を選び,出力関数 に入力し,その出力値を擬似乱数列とする.初 期化フェースでは,擬似乱数列を出力しない.. 実装アーキテクチャ. 本節では,バッファを活用して内部状態を逐 次的に更新する省電力実装アーキテクチャの概 要について述べる [7].通常,線形フィードバッ クシフトレジスタを基本構成とする暗号アルゴ リズムの実装では,すべての内部状態を同時に 更新する実装アーキテクチャとする.この実装 アーキテクチャをベースとして,バッファを追加 し,バッファに内部状態を一時的に退避し,内部 状態を逐次的に更新した後,最後にバッファに 退避した値を内部状態に入力するのが基本的な 構成である.図 1 にバッファを活用した実装アー counter. counter update function. LFSR. data update function. 2.3. Enocoro-80 の仕様 buffer. Enocoro-80 は株式会社日立製作所が 2007 年 に開発した擬似乱数生成器であって,ISO 標準 暗号 (ISO/IEC 29192-3) の一つに採択されてい る.入力は秘密鍵 80 ビットと IV64 ビットであ る.内部状態の大きさは 176 ビットで,40 ラウ ンドの初期化を行った後,8 ビットずつ擬似乱 数列を出力する. 内部状態は 160 ビット長の LFSR と 16 ビッ ト長のステートと呼ばれるレジスタから構成さ れる.初期値の入力では,LFSR へ鍵,IV を入 力し,残りは定数ビットを入力する.ステート の下位 8 ビットを擬似乱数列をして出力する. Enocoro-80 は 8 ビットの擬似乱数列を出力する たびに,LFSR とステートを更新する.LFSR は線形関数とステートの上位 8 ビットの値で更 新される.ステートは LFSR の値を入力とする 非線形関数の出力値で更新される.非線形関数 は,8 ビット入力 8 ビット出力の非線形変換と 線形関数で構成される.初期化フェーズでは擬 似乱数列を出力しない.. output. 図 1: バッファを用いた実装アーキテクチャの 基本構成図 . キテクチャの基本構成図を示す.図中,LFSR は線形フィードバックシフトレジスタ,buffer は バッファ,data update function は内部状態の 更新関数である.また,counter はカウンタ値を 格納するレジスタ,counter update function は カウンタの更新関数である.counter の出力値 は,LFSR と buffer へ制御信号として入力され る.暗号アルゴリズムによって,LFSR の長さ や本数,更新関数の種類などは異なるが,LFSR と更新関数を主要な要素とする基本構造は同じ である.また,図を簡略化するため,LFSR へ の初期値の入力線は記載を省略しているが,暗 号モジュール外部から入力される鍵や IV を入. - 74 -.
(4) 力する.擬似乱数列を毎ラウンド 16 ビット生 成し,バッファの大きさは 16 ビットである. 以下に,初期化フェーズにおける内部状態の 更新手順を示す.. 1. バッファに更新関数の出力値を格納. 2. LFSR をバッファ長/クロックずつ右へシフ ト. 3. LFSR の左端に手順 1. でバッファに格納し た値を入力. この一連の処理により,ラウンド処理が終了す る.擬似乱数出力フェーズでは,まず,生成した 擬似乱数列をバッファに格納し,出力する.そ の後,初期化フェーズと同様の処理を行う.. 4 4.1. いて論理合成を行い,生成したネットリストを 用いて動作シミュレーションを行った.図 2 は 動作シミュレーションにおいて,カウンタ値が 11 から 12 へ遷移する際の詳細な挙動を記した 図である.カウンタ値は 4 ビットで,信号線を 上位から cnt[3], cnt[2], cnt[1], cnt[0] として記 している.図 2 より,信号線は 1 本ずつ,時間差 をつけて値が変化していることが分かる.従っ て,カウンタ値は 11 から直接 12 に遷移するの ではなく,11 から 15,13,12 の順に過渡的な 複数の値を経て,遷移していることがわかる. 図 1 に示す実装アーキテクチャでは,カウン タの値によって,LFSR とバッファの動作を制御 している.そのため,過渡的な値であってもカ ウンタ値が変わることによって,LFSR とバッ ファの入力信号線の値が変わるため,グリッチ が発生する.. カウンタ グリッチ. 4.2. カウンタの値はクロック毎にインクリメント する.通常のカウンタ設計では初期値を 0 とし, カウンタ値を 1 ずつインクリメントする.処理 ステップが一巡すると,カウンタ値を再び 0 に 戻す. カウンタのビット幅は処理ステップ数によっ て異なるが,通常は複数ビットである.従って, インクリメントにおいて,カウンタの複数本の 信号線が動作するケースが多い.. cnt[3] cnt[2] cnt[1] cnt[0] 図 2: カウンタにおけるグリッチ . カウンタの設計. 動作シミュレーションによって,図 2 に示し たように,カウンタの信号線は 1 本ずつ値が変 わることが分かった.信号線の値が 1 本ずつ変 わるということは,ハミング距離が 1 となる複 数の段階を経て,カウンタ値が変化するという ことである.従って,ハミング距離が常に 1 と なる巡回カウンタを設計すれば,過渡的なカウ ンタ値が発生しないため,グリッチの抑制が期 待される. 表 1 に Grain-80 と Enocoro-80 用に設計した カウンタを記す.ラウンド数とそれに対応する カウンタ値を記す.カウンタ値を 0,1,2 と変化 されるのではなく,0000,0001,0011 の順に変化 させることで,ハミング距離を常に 1 に保って いる. 表 2 に Trivium 用に設計したカウンタを記 す.Trivium は Grain-80 と Enocoro-80 に比較 して,内部状態が大きいため,処理ステップ数 が多い.従って,カウンタのビット幅も 5 ビッ トへ増やしている.. Grain-80, Trivium, Enocoro-80 を図 1 のアー キテクチャで実装し,5 節で述べるツールを用. - 75 -.
(5) 表 1: Grain-80 と Enocoro-80 のカウンタ Round Counter value. # 0 1 2 3 4 5 6 7 8 9 10 11 12 13. 5. bit 0000 0001 0011 0111 0101 1101 1001 1011 1010 1000 1100 0100 0110 0010. 表 2: Trivium のカウンタ Round Counter value. # 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21. ASIC 実装評価. 本節では,Grain-80,Trivium と Enocoro-80 の ASIC 実装評価結果を示す.コンパイラとして Synopsys1 Design Compiler2 (Version C-2009.06SP5) で論理合成を行った.ライブラリには,TSMC 社の 90 nm high performance ライブラリを使 用した.また,入力データの遅延時間を 0.4 ns, 出力データの遅延時間を 0.4 ns に設定した. 評価項目は回路規模,サイクル数,トグル数と した.サイクル数はデータの入出力に必要なサ イクル数を含めて評価した.トグル数は回路素 子のスイッチング回数を算出することで評価し た.ランダムな入力パターンを 100 通り準備し, cadence3 の Simvision4 version 05.83-s015 を用 いて回路動作をシミュレートし,VCD (Value Change Dump) ファイルを作成した.VCD ファ イルから最大トグル数を標本値として算出し, 標本値を用いて母平均と母分散を信頼係数 99 % で信頼区間で推定した後,3σ 範囲を用いてトグ ル数を推定した. 実装結果を表 3 に示す.表中,FF はフリップ フロップ (flip-flop) ,Combi は組合せ論理回路 を示す.Arch.1 は通常設計のカウンタを用いた. - 76 -. 1. 2. 3. 4.. bit 00000 00001 00011 00111 00101 01101 01001 01011 01111 11111 10111 10011 11011 11001 11101 10101 10001 10000 10010 11010 01010 00010. Synopsys は Synopsys 社の登録商標です. Design Compiler は Sysnopsys 社の商品名称です. cadence は Cadence Design Systems 社の登録商標です. Simvision は Cadence Design Systems 社の登録商標です..
(6) 表 3: Hardware performance of pseudorandom number generators Algorithm Architecture Area Clock cycle Signal toggle (GE) ( ♯ toggle) Total FF Combi Grain-80 Arch. 1 3900 1390 2510 299 99 Arch. 2 3850 1390 2460 299 43 Trivium Arch. 1 4050 2230 1820 1595 42 Arch. 2 4130 2260 1870 1595 32 Enocoro-80 Arch. 1 3640 1480 2150 418 46 Arch. 2 3660 1490 2170 418 37. 実装アーキテクチャを示し,Arch.2 はハミング 距離が常に 1 となるカウンタを用いた実装アー キテクチャである.. 6. まとめ. 本稿では,軽量擬似乱数生成器の Grain-80, Trivium, Enocoro-80 の,バッファを活用して逐 次的に内部状態を更新する実装アーキテクチャ において,グリッチの発生を抑えるためのカウ ンタの設計と ASIC 実装評価を行った.ハミン グ距離が常に 1 となるカウンタを用いることで, グリッチの発生が抑えられ,信号トグルを最大 約 60 % 削減できることを示した.. 謝辞 本研究成果は,独立行政法人情報通信研究機 構 (NICT) の委託研究「軽量暗号プロトコルの 省リソースデバイスに対する実装効率向上の研 究開発」により得られたものです.同委託研究 に関わるすべての関係者に感謝いたします.. 参考文献 Journal, [1] RFID rfidjournal.com/.. http://www.. [2] RFID Security & Privacy Lounge, http: //www.avoine.net/rfid/index.php.. - 77 -. [3] The eSTREAM Project, available at http://www.ecrypt.eu.org/stream/. [4] M. Hell, T.Johansson, and W.Meier, “Grain - A Stream Cipher for Constrained Environments”, available at http://www.ecrypt.eu.org/stream/ p3ciphers/grain/Grain p3.pdf. [5] C.D. Canni` ere, and B. Preneel, “TRIVIUM Specifications”, available at http://www.ecrypt.eu.org/stream/ p3ciphers/trivium/trivium p3.pdf. [6] 株 式 会 社 日 立 製 作 所 ,擬 似 乱 数 生 成 器 Enocoro, available at http://www.hitachi.co.jp/rd/yrl/ crypto/enocoro/index.html. [7] 三上 修吾, 渡辺 大, 崎山 一男, “バッ ファを用いた軽量擬似乱数生成器の実装と 評価,” In The 31th Symposium on Cryptography and Information Security –SCIS 2014, 2014..
(7)
図
関連したドキュメント
備考 1.「処方」欄には、薬名、分量、用法及び用量を記載すること。
~2030 年までに東京のエネルギー消費量を 2000 年比
c 契約受電設備を減少される場合等で,1年を通じての最大需要電
c 契約受電設備を減少される場合等で,1年を通じての最大需要電
c 契約受電設備を減少される場合等で,1年を通じての最大需要電
大都市の責務として、ゼロエミッション東京を実現するためには、使用するエネルギーを可能な限り最小化するととも
大都市の責務として、ゼロエミッション東京を実現するためには、使用するエネルギーを可能な限り最小化するととも
c 契約受電設備を減少される場合等で,1年を通じての最大需要電