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

拡張Lorenz 写像に基づく疑似乱数生成ハードウェアにおけるLUT の検討

N/A
N/A
Protected

Academic year: 2021

シェア "拡張Lorenz 写像に基づく疑似乱数生成ハードウェアにおけるLUT の検討"

Copied!
2
0
0

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

全文

(1)

拡張Lorenz 写像に基づく疑似乱数生成ハードウェ

アにおけるLUT の検討

著者

宮内 清孝, 堀尾 喜彦, 宮野 尚哉, 長 憲一郎

雑誌名

電子情報通信学会ソサイエティ大会講演論文集

NLS-27

発行年

2019-06-08

URL

http://hdl.handle.net/10097/00127779

(C)2019 Copyright IEICE

(2)

拡張 Lorenz 写像に基づく疑似乱数生成ハードウェアにおける LUT の検討

Use of LUT in Pseudorandom Number Generator Hardware Based on Augmented Lorenz Map

宮内清孝1 堀尾喜彦1 宮野尚哉2 長憲一郎2

Kiyotaka Miyauchi Yoshihiko Horio Takaya Miyano Kenichiro Cho

1東北大学 電気通信研究所

Research Institute of Electrical Communication, Tohoku University

2立命館大学 理工学部機械工学科

Department of Mechanical Engineering, Ritsumeikan University

1. まえがき

拡張 Lorenz 写像[1] は,カオス時系列を生成することが でき,この時系列から得られた 2 進乱数列は, 標準的な乱 数検定手法である NIST SP800-22 [2],TestU01 BigCrush に 合格する安全性を有している.しかし,現代のストリーム 暗号と比較すると,その生成速度に課題があり,高速化が 必要である.本稿では,ハードウェア実装による高速化, 特に式中の sin 関数をルックアップテーブル(LUT)により実 装する方法を検討する.

2 .拡張 Lorenz 写像に基づくストリーム暗号

拡張 Lorenz 写像は, 変数 𝑌𝑖 を中心ノードとする 2𝑁 + 1 次元の星型ネットワークを形成しており, 𝑌𝑖+1= ∑ 𝑋𝑛,𝑖 𝑀𝑛2 𝑁 𝑛=1 (1) 𝑋𝑛,𝑖+1= 𝑋𝑛,𝑖𝑌𝑖− 𝑍𝑛,𝑖 (2) 𝑍𝑛,𝑖+1= sin(𝑊𝑛𝑌𝑖) (3) と表される. ここで, 𝑊𝑛= 𝑅 sin(𝑀𝑛𝜙) (4) 𝑀𝑛= 𝑛 + 𝜀𝑄𝑛−1 (5) であり, 𝑋𝑛,𝑖, 𝑌𝑖, 𝑍𝑛,𝑖 は変数, 𝑅, 𝜙 は分岐パラメータ, 𝑖 は離散時間ステップ, 𝑛 は 1 から 𝑁 までの整数, 𝜀 は正の 微小な定数, 𝑄𝑛−1 は共有鍵を表す 2 進乱数列である. 𝑀𝑛 は 𝑄𝑛−1 から得られるパラメータであり, 𝑄0= 0, 𝑀1= 1 で ある. この際, 鍵空間の大きさは 2𝑁−1 となる. なお,𝑁 は 任意の自然数に設定することができるので, 鍵長は可変で ある. 2 進疑似乱数列 𝑃𝑛,𝑖 は,次式により生成される. 𝑃𝑛,𝑖= (10𝛼𝑋𝑛,𝑖) mod 2 (6) 式(6) は, 𝑋𝑛,𝑖 の小数点第 α 位を参照し, その偶奇によって 2 進乱数列を生成する. この 2 進乱数列と 2 進数表示された 平文との排他的論理和を計算することで暗号化を行う.

3.sin 関数の LUT を用いた実装

式(3)と(4)には sin 関数が用いられている. 文献[1]では, 式 (3)の sin 関数は 5 次 Maclaurin 展開で, 式(4)は C の math ラ イブラリで計算されている. このうち,式(4)の計算は最初 に一度行われるのみであるが, 式(3)では時間ステップ毎に N 回行われるため,計算速度の向上には式(3)の sin 関数の 計算を高速化することが重要である.しかし,Maclaurin 展 開による sin 関数の計算には複数回の演算が必要であり, 一般にLUT を用いた計算の方が高速であると考えられる. そこで本稿では,sin 関数を LUT により実装する方法を検 討する.

LUT を用いて sin 関数を実装する際には,真の sin 関数と の間に誤差が生じるため, 疑似乱数の性能を保つにはテー ブル化に際して精度の確保が必要となる.これを検討する ため,sin 関数の 1/4 波長に対する LUT を様々な分割数を用 いて作成した.評価は,作成したLUT を用いて生成した疑 似乱数列に対する NIST SP800-22 による検定により行った. 検定には106ビットの2 進乱数列を 1000 セット用いた. 表1 に各 LUT を用いて生成した疑似乱数列の検定結果の 一部を示す.表1 の各列の左側は,それぞれの区間での分 割数を示す.例えば,左列上段の場合,sin 関数の 1/4 波長 を2048 等分割している.表 1 より,2048,1024 等分割の場 合は検定に合格するが,512 等分割の場合は合格しないこ とがわかる.さらに,LUT の規模を削減するため,2048 等 分割の場合から部分的に分割数を減らした(表の中列・右 列).ここでの分割数は,式(3)の sin 関数に代入される変 数𝑊𝑛𝑌𝑖の分布を基に選択した.これらの結果より,変数値 の分布を考慮することで,1/4 波長を単純に等分割するよ りも少ない分割数でLUT を作成できることがわかる. 表1 sin 関数の LUT 実装方法による乱数検定結果 分割数 [0, π/2] 検定 結果 分割数 [0, π/4], [π/4, π/2] 検定 結果 [0, π/8], [π/8, π/4], [π/4, 3π/8], [3π/8, π/2] 検定 結果 2048 〇 1024, 512 〇 1024 〇 1024, 128 〇 512 × 512, 256 ×

さらに,Xilinx 社の FPGA 開発ツールである Vivado2018.3 を用いたシミュレーションにより,1/4 波長を 1024 等分割 して作成したLUT を用いても,文献[1]の結果より約 70 倍 高速に疑似乱数列を生成できることがわかった.また,本 稿では,文献[1]と同様に 64 ビット浮動小数点演算を行っ たが,演算方法を工夫することで更なる高速化が可能であ ると考えられる.

4.まとめ

本稿では,sin 関数を LUT により実装する方法を検討し た.その結果,高速に計算が可能であることと,sin 関数に 代入される変数値の分布を考慮することで,部分的に LUT の分割数を削減できることがわかった.この事は,チップ 面積と消費電力の削減や,更なる高速化の可能性を示して いる.さらに,LUT 内のデータを飛び飛びに参照するなど, その参照方法を変更できる可能性を示している.すなわち, LUT の参照方法は,暗号のキーの 1 つとして使用できると 考えられる.今後は,固定小数点演算を行うなど更なる高 速化について検討する.

謝辞

本研究は JSPS 科研費 18H03307 の助成を受けたものである.

参考文献

[1] 長憲一郎, 宮野尚哉, 電子情報通信学会論文誌, vol. J101-A, no. 8, pp. 210-218, 2018.

[2] A. Rukhin et al., NIST Special Publication 800-22 Revision 1a (Revised April 2010). 512, 256, 128, 64 512, 256, 256, 128 〇 〇

NLS27

-2019年 NOLTAソサイエティ大会 IEICE, NOLTA 新潟, 2019年6月8日

参照

関連したドキュメント

図一1 に示す ような,縦 お よび横 補剛材 で補 剛 された 板要素か らなる断面部材 の全 体剛性 行列 お よび安定係数 行列は局所 座標 系で求 め られた横補 剛材

CIとDIは共通の指標を採用しており、採用系列数は先行指数 11、一致指数 10、遅行指数9 の 30 系列である(2017

これはつまり十進法ではなく、一進法を用いて自然数を表記するということである。とは いえ数が大きくなると見にくくなるので、.. 0, 1,

自閉症の人達は、「~かもしれ ない 」という予測を立てて行動 することが難しく、これから起 こる事も予測出来ず 不安で混乱

、肩 かた 深 ふかさ を掛け合わせて、ある定数で 割り、積石数を算出する近似計算法が 使われるようになりました。この定数は船

FSIS が実施する HACCP の検証には、基本的検証と HACCP 運用に関する検証から構 成されている。基本的検証では、危害分析などの

これらのことから、 次期基本計画の改訂時には高水準減量目標を達成できるように以

行列の標準形に関する研究は、既に多数発表されているが、行列の標準形と標準形への変 換行列の構成的算法に関しては、 Jordan