説明

乱数生成システム及びプログラム

【課題】演算負担が軽く、かつ、外部入力値の変化に対して広く連続的に乱数を発生することができる乱数生成システムを提供すること。
【解決手段】カオス・ニューラルネットワークを構成するニューロンの内部状態に対するそのニューロンの出力関数をシグモイド関数に代えて非対称区分線形関数とする。また、その非対称区分線形関数の出力をダブル型変数として、その仮数部の下位3ビットを切り捨てて下位4ビットから上位の数を取り出す。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、乱数生成システム、暗号生成システム及びプログラムに関し、特に演算負担が軽く、かつ、外部入力値の変化に対して広く連続的に乱数を発生することができる乱数生成システム、その乱数を用いた安全性の高い暗号を生成する暗号生成システム、及びプログラムに関する。
【背景技術】
【0002】
本発明者らは、カオス・ニューラルネットワーク(CNN)を用いた乱数生成システムを提案している(例えば、特許文献1、2参照。)。
【0003】
図1は、カオス・ニューラルネットワークを構成するニューロンを示す図である。図1及び式(1)〜式(3)に示すニューロンモデルはホップフィールドネットワークやバックプロパゲーション法で一般的に用いられるモデルである。式(2)に示すシグモイド関数は点対称な関数であるとともに非線形出力関数であり、そのグラフを図3(b)に示す。
【0004】
【数1】

ここで、
(t):ニューロンmの時刻tの出力(t=0,1,2,…)
:ニューロンmの内部状態
λ:非線形出力関数fの傾き係数
(t):時刻tにおけるニューロンiからの入力
ij:ニューロンiからニューロンjへの重み係数
θ:ニューロンmの閾値
:ニューロンmへの外部入力値
【0005】
図2は、カオス・ニューラルネットワークの実例の構成を示す図である。ここでは、4つのニューロンからなるCNNの例を2つ示す(図2(a)及び図2(b))。このとき、例えばニューロンN1の出力は擬似乱数となる。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2003−76272号公報
【特許文献2】特開2007−73012号公報
【非特許文献】
【0007】
【非特許文献1】村上武 外、「カオス時系列における周期の予測〜カオス・ニューラルネットワーク出力の精度による周期の変化〜」信学技報、107巻、560号、2008年、NLP2007-157、21〜26頁
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかし、この場合、外部入力I(=I1=I2=I3)を変化させたときの、ニューロンN1の出力はカオスの連続性が悪い。
【0009】
図5は、従来のCNNを用いた乱数生成システムのカオスの分岐図及び最大リアプノフ指数を示す図である。図5(a)に示すカオスの分岐図、すなわち、外部入力Iに対するニューロンN1の出力、を見れば分かるように、多くの窓(周期解)が存在する。また、図5(b)に示す最大リアプノフ指数は、カオスであれば正の値を取るが、窓(周期解)に対応する部分は負の値となる。このように従来のCNNを用いた乱数生成システムは、カオス状態と周期振動が入り組んでおり、カオスかどうかを探索する必要がある。
【0010】
本発明は、上記問題点に鑑み、演算負担が軽く、かつ、外部入力値の変化に対して広く連続的に乱数を発生することができる乱数生成システム及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0011】
本発明の乱数生成システムは、複数のニューロンからなるカオス・ニューラルネットワークであって、前記各ニューロンは、その内部状態を入力として、所定数の各区分それぞれにおいて線形であって入力値が0である点において区分の境があり、この点の関数出力値に対して正負における関数出力値が非点対称である非対称区分線形関数を演算することを特徴とする。
【0012】
また、前記非対称区分線形関数は、入力値の正負側にそれぞれ同数の区分を有することが望ましい。
【0013】
また、前記非対称区分線形関数は、両端が0及び1の固定値であり、その内側が単調増加する4つ以上の線分からなる連続関数であることが望ましい。
【0014】
また、前記非対称区分線形関数の出力をダブル型変数として、その仮数部の下位3ビットを切り捨てて下位4ビットから上位の数を取り出す乱数出力部を更に備えることが望ましい。
【0015】
また、本発明の暗号生成システムは、前記乱数生成システムと、入力する平文と前記乱数生成システムからの乱数とを演算する演算部とを備えることを特徴とする。
【0016】
また、本発明はコンピュータを、前記システムとして機能させるためのプログラムである。
【発明の効果】
【0017】
本発明によれば、演算負担が軽く、かつ、外部入力値の変化に対して広く連続的に乱数を生成することができる。また、この乱数を用いて安全性の高い暗号を生成することができる。
【図面の簡単な説明】
【0018】
【図1】カオス・ニューラルネットワークを構成するニューロンを示す図である。
【図2】カオス・ニューラルネットワークの実例の構成を示す図である。
【図3】乱数生成システムに用いる関数のグラフを示す図であり、(a)は本発明で用いる非対称区分線形関数、(b)は従来のシグモイド関数を示す。
【図4】本発明のCNNを用いた乱数生成システムのカオスの分岐図及び最大リアプノフ指数を示す図である。
【図5】従来のCNNを用いた乱数生成システムのカオスの分岐図及び最大リアプノフ指数を示す図である。
【図6】乱数を取り出す処理を説明する図である。
【発明を実施するための形態】
【0019】
以下、添付図面を参照しながら本発明を実施するための形態について詳細に説明する。
【実施例1】
【0020】
図3(a)は、本発明の一実施例による乱数生成システムに用いる関数のグラフを示す図である。本発明はシグモイド関数に代えて、図3(a)に示す非対称区分線形関数を用いる。この非対称区分線形関数は、6つの区分の線形関数を連続的に張り合わせて構成している。ここで各区分の境界である各点の座標は、A(ax,0),B(bx,by),C(0,cy),D(dx,dy),E(ex,1)で表される。両端の半直線は0及び1の固定値であるが、これらを除く内側の点A〜点Eの線分の間は単調増加である。シグモイド関数はy軸との交点に関して点対称であるが、本発明の非対称区分線形関数はy軸との交点である点Cに関して非点対称である。シグモイド関数f(x) は唯一つの独立変数λで表されるが、本発明の非対称区分線形関数は7つの独立変数(ax,bx,by,cy,dx,dy,ex)で表される。
【0021】
図4は、本発明のCNNを用いた乱数生成システムのカオスの分岐図及び最大リアプノフ指数を示す図である。図4(a)に示す分岐図を見ると、区間[0.52,1.62]で窓(周期解)を持たず、最大リアプノフ指数が+0.1以上の比較的大きな正の値を取っていることから、カオスが連続的に発生していることが示唆される。また、準周期振動(最大リアプノフ指数がゼロ)もこの区間では存在しない。
【0022】
これは、カオスに必要な入力値を探索することなしに選択可能であることを意味する。すなわち、入力値を暗号の鍵として使用することができることになる。
【0023】
また、非対称区分線形関数は、7つの独立変数(ax,bx,by,cy,dx,dy,ex)を持っており、これらも暗号鍵として利用可能である。これらの独立変数はCNNの重み係数などと違って、多少の変化ではカオス状態が崩れるほど大きな変化をもたらすことがないため制御が容易で、暗号鍵として扱いやすい。
【0024】
また、真のカオスは周期を持たないが、計算機で生成しているカオスの場合は周期を持つ。周期が短いロジスティック写像などを暗号に応用した場合には、きわめて重大な欠点となる。しかし、本実施例のカオスの周期をシミュレートすると、109〜1017程度とシグモイド関数を用いた時とほぼ同程度の非常に長いことが推定されたので(シミュレート手法は非特許文献1による。)、本実施例の乱数生成システムによって生成された乱数を暗号に応用しても充分安全であると考えられる。
【実施例2】
【0025】
図6は、乱数を取り出す処理を説明する図である。図6(a)は、従来の乱数を取り出す処理を説明する図であり、CNNを構成するニューロン(例えばニューロンN1)の出力をダブル型変数にして、例えば指数部11ビット、仮数部52ビットにして、仮数部の下位の例えば24ビットを乱数として取り出していた。しかし、非対称区分線形関数では、必ずしもその方法では、統計的に一様性や独立性の良い性質の乱数を取り出せないことが分かった。図6(b)は、本発明の実施例による乱数を取り出す処理を説明する図であり、ダブル型変数の仮数部の下位3ビットを切捨て、下位4ビット〜27ビットを乱数として取り出す。
【0026】
ここで、株式会社カオスウェア製のRanSureを使用してNIST 800-22テストを実施した結果を示す。
参考:http://www.chaosware.com/ransure/ransure.html
【0027】
RanSureを用いた場合、異なる10個のシード(種)に対して検定を行い、5〜7回全テスト(15項目)をパスすれば、乱数は良いランダム性を持つと言える。確率で置き換えると、50〜70%の合格率で全テストにパスすれば良いことになる。ここでは、(ax,bx,by,cy,dx,dy,ex)及びIをパラメータとして、色々なパラメータについてテストを実施した結果を示す。
【0028】
[パラメータ1を用いた場合のRanSureテストの結果]
パラメータ1:(ax,bx,by,cy,dx,dy,ex)=(-50.000000, -2.000000, 0.100000, 0.500000, 2.000000, 0.900000, 50.000000), 0.4≦I≦1.0
(1).仮数部下位0〜2ビット切り捨て、そこから24ビットを乱数として採用の場合
7個の乱数シード(種)に対して合格率0%
しかも15個のテストのうち5〜6個のテストしかパスしておらず、乱数性は極めて悪い。
(2).仮数部下位3ビット切り捨て、そこから24ビットを乱数として採用の場合
17個の乱数シードに対して全合格数は8、よって合格率53%であるので、良い乱数といえる。
(3).仮数部下位4ビット以上を切り捨て、そこから24ビットを乱数として採用の場合
ほぼ3ビット切捨てと同じ。ただし、下位から45ビット以上のビットを取り出すことになる場合は、乱数性は低下する。4ビット以上切り捨てても、乱数性は低下することはあっても向上は望めない。
【0029】
下位ビットを切り捨てない場合に、不合格になるテストを調べると、frequency(頻度検定)、block-frequency(ブロック頻度検定)など一様性に問題があるため、検定に合格しないことが明らかになった。そこで、一様性を調べる「頻度検定」の結果を見ると、表1となった。ここで、有意水準と同程度の棄却率の場合を合格とした。頻度検定はNIST 800-22テストにも含まれている基本的なテストであり、頻度検定を全くパスしないようなら、乱数として用いることはできない。
【0030】
よって、カオス出力仮数部の下位3ビットまでは、切り捨てる必要があることは、頻度検定の結果を見ても明らかである。
【0031】
【表1】

【0032】
[パラメータ2〜4を用いた場合のRanSureテストの結果]
パラメータ2:(ax,bx,by,cy,dx,dy,ex)=(-51.000100, -1.980101, 0.099990, 0.501200, 1.980101, 0.899990, 51.000100),0.6≦I≦1.55
パラメータ3:(ax,bx,by,cy,dx,dy,ex)=(-51.000100, -1.980101, 0.099990, 0.501200, 1.980101, 0.899990, 51.000100),0.6≦I≦1.05
パラメータ4:(ax,bx,by,cy,dx,dy,ex)=(-51.000100, -1.980101, 0.099990, 0.501200, 1.980101, 0.899990, 51.000100),1.10≦I≦1.55
パラメータ1を用いた場合は、3ビット切り捨てが顕著な効果を発揮した例であったが、表2にパラメータを変えた時の乱数性の結果の一例を示す。パラメータの取り方によっては、切捨てビット数が2以下でも合格率が50〜70%となる場合もある。しかしながら、切り捨てビットが3の場合は常に合格率は50〜70%の範囲に入っている。下位ビットには、丸め誤差など計算上の様々な誤差が入り込む可能性がある。下位ビットを切り捨てることによって、これを防ぐことができると考えられる。
【0033】
【表2】

乱数性が悪かった部分を網かけで示した。
【0034】
なお、本発明は上記実施例に限定されるものではない。
関数の区分の数は実施例で示した6に限られず、関数が線形であることと、非点対称であることが重要である。図3(a)に示した点Cの近傍で非点対称であることが特に重要であることと、xの広い範囲で関数に傾斜を持たせるために原点Oと点Aの間の距離、及び、原点Oと点Eの間の距離を大きくするためには、関数の区分の数は少なくとも6が特に望ましい。すなわち、単調増加する線分の数は4つ以上が特に望ましい。
【0035】
上述の乱数生成システムは、暗号生成システムに対して適用することができる。上述のCNNを用いた乱数生成システムの出力値から生成された乱数列は、一様性に優れており、真性乱数と区別できない乱数である。このため、この乱数を用いることにより、暗号学的な安全性が保証されているone time pad暗号系を構築することができる。
【0036】
本発明の乱数生成システム及び暗号生成システムは、このシステムを機能させるためのプログラムによっても実現される。このプログラムは、例えばCD−ROM等のコンピュータで読み取り可能な記録媒体に格納されている。
【0037】
システムの動作を実行するプログラムを記録した記録媒体は、システム内のメモリそのものであってもよいし、また、外部記憶装置としてのCD−ROMドライブ等のプログラム読み取り装置に挿入することで読み取り可能なCD−ROM等であってもよい。また、上記記録媒体は、磁気テープ、カセットテープ、フレキシブルディスク、ハードディスク、MO/MD/DVD等、又は半導体メモリであってもよい。


【特許請求の範囲】
【請求項1】
複数のニューロンからなるカオス・ニューラルネットワークであって、
前記各ニューロンは、その内部状態を入力として、所定数の各区分それぞれにおいて線形であって入力値が0である点において区分の境があり、この点の関数出力値に対して正負における関数出力値が非点対称である非対称区分線形関数を演算することを特徴とする乱数生成システム。
【請求項2】
前記非対称区分線形関数は、入力値の正負側にそれぞれ同数の区分を有することを特徴とする乱数生成システム。
【請求項3】
前記非対称区分線形関数は、両端が0及び1の固定値であり、その内側が単調増加する4つ以上の線分からなる連続関数であることを特徴とする乱数生成システム。
【請求項4】
前記非対称区分線形関数の出力をダブル型変数として、その仮数部の下位3ビットを切り捨てて下位4ビットから上位の数を取り出す乱数出力部を更に備えることを特徴とする乱数生成システム。
【請求項5】
請求項1記載の乱数生成システムと、入力する平文と前記乱数生成システムからの乱数とを演算する演算部とを備えることを特徴とする暗号生成システム。
【請求項6】
コンピュータを、請求項1記載の乱数生成システムとして機能させるためのプログラム。
【請求項7】
コンピュータを、請求項5記載の暗号生成システムとして機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2011−242827(P2011−242827A)
【公開日】平成23年12月1日(2011.12.1)
【国際特許分類】
【出願番号】特願2010−111688(P2010−111688)
【出願日】平成22年5月14日(2010.5.14)
【新規性喪失の例外の表示】特許法第30条第1項適用申請有り 社団法人電子情報通信学会「電子情報通信学会技術研究報告」第109巻、第354号、平成21年12月14日発行に発表
【出願人】(504165591)国立大学法人岩手大学 (222)
【Fターム(参考)】