(57)【要約】【課題】  検定機能を内蔵した高品質乱数生成エージェントにおいて検定の高速化、回路規模削減をはかる。【解決手段】  乱数列生成手段、乱数列保持手段、検定手段、制御手段から構成される。検定手段は任意ビット長の乱数列毎に乱数検定に必要な乱数の統計情報を算出した後保持し、保持している複数の統計情報を基に検定を行なう。また、新規に乱数列を生成した後、新規乱数列のみの統計情報を算出し、保持している他の乱数列の統計情報と差し替えることにより迅速に乱数検定でき、乱数検定に不合格になった場合も一部の乱数列の統計情報のみを差し替えることにより再度検定できる。また、乱数列保持手段が乱数検定に必要なビット数を保持できなくても必要量の乱数列の統計情報を保持していれば検定が可能である。制御手段は検定結果と外部からの乱数列出力要求により乱数列の外部への出力を制御する。【選択図】  図１
2006318092.tif 000002
【特許請求の範囲】
【請求項１】
乱数列を生成する乱数列生成手段と前記乱数列を保持しておく乱数列保持手段と、前記乱数列の統計的品質を検定し検定結果を出力する検定手段と、前記検定手段及び前記乱数列保持手段へ前記乱数列を出力し、前記検定手段からの前記検定結果に応じて前記乱数列保持手段に保持された前記乱数列の出力を制御する出力制御手段とを備え、
前記検定手段は任意個の乱数列の統計情報を保持し、前記保持された任意個の乱数列の統計情報のうちの複数の前記統計情報を基に検定を行なうことを特徴とする乱数生成エージェント。
【請求項２】
前記検定手段が保持する前記任意個の乱数列の統計情報に対応する前記乱数列のビット数は全て４の倍数であることを特徴とする前記請求項１記載の乱数生成エージェント。
【請求項３】
前記検定手段に保持されている前記統計情報に対応する前記乱数列のうちの少なくとも一つの乱数列の一部または全部を前記乱数列保持手段に保持していることを特徴とする前記請求項１または２記載の乱数生成エージェント。
【請求項４】
前記検定手段は前記分割された前記乱数列毎に前記保持している統計情報を更新し、前記更新された統計情報を含む複数の保持されている統計情報を基に検定することを特徴とする前記請求項１〜３記載の乱数生成エージェント。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は任意ビット数の乱数を生成する乱数生成エージェントに関するものである。
【背景技術】
【０００２】
従来、様々なデジタル機器のおいて各種信号処理に乱数が使われてきた。また近年、各種機器類のネットワーク化が進むとともにセキュリティ機能が要求されるようになってきたためより一層乱数が使われる場面が増えている。
【０００３】
そしてセキュリティ機能に使われる乱数の場合には、安全性向上の重要な要素として乱数の一様性、配列の不規則性、十分に長い周期性、前後関係からの予測困難性等統計的な高品質がより求められる傾向があった。
【０００４】
このような乱数が要求される品質を満たしているかどうかを判定する検定には20,000ビットの乱数に対して検定を行うFIPS140-2に準拠した検定法、1Ｍビットの乱数を一本の乱数列とし1,000本程度の乱数列に対して検定を行うNIST SP800-22、10〜11Ｍバイトの乱数に対して検定を行うDIEHARD等がある。
【０００５】
例えば特開2004-310314ではFIPS140-2に準拠した検定法が内蔵され、チップ内部で発生した乱数を出力しながら検定回路により検定を行い、検定終了後乱数保持部から乱数を出力するようになっている。その検定内容は以下の4種類のテストから構成されている。
【０００６】
1. The mono bit test
連続するランダムな20,000ビット中の'1'の数をXとしたとき
9,725 < X < 10,275・・・(1)
であれば合格。
【０００７】
2. The long runs test
連続するランダムな20,000ビット中の'1'or'0'の最長連続ビット数をXとしたとき
X < 26・・・(2)
であれば合格。
【０００８】
3. The runs test
連続するランダムな20,000ビット中の'1'or'0'の連続ビット数をi、度数をXiとする。ただし、i ≧ 6 の場合i = 6 とし、iの範囲は1 ≦ i ≦ 6 とする。Xiの度数計算を'1'と'0'で行い、両方ともXiが下記(3)〜(8)の範囲内であれば合格。
【０００９】
2,315 ≦ X1 ≦ 2,685・・・(3)
1,114 ≦ X2 ≦ 1,386・・・(4)
527 ≦ X3 ≦ 723・・・・・(5)
240 ≦ X4 ≦ 384・・・・・(6)
103 ≦ X5 ≦ 209・・・・・(7)
103 ≦ X6 ≦ 209・・・・・(8)
4. The poker test
連続するランダムな20,000ビットを4ビット毎に5,000に区切り、その値(0〜15)の度数をf(i)とし、
X = (16/5000)*(Σ[f(i)]^2)-5000 としたとき
2.16 < X < 46.17 ・・・(9)
この検定1〜4までの全ての検定に合格したとき、検定された乱数は高品質な乱数であると判断される。
【特許文献１】特開２００４−３１０３１４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら上記従来例では乱数の検定を一回行なうと乱数検定後に生成した乱数の検定には再び大量の乱数データを集める必要があり、その間品質の保証された乱数を出力することができなかった。そして検定結果が不合格だった場合も再度所定量の乱数が出力されるのを待って検定結果により乱数が使えるか判断する動作を検定結果が合格となるまで繰り返す必要があり、タイミング良く品質の良い乱数が得られるとは限らなかった。
【００１１】
すなわち所定のタイミングで品質の良い乱数を得る保証がないという問題があった。
【課題を解決するための手段】
【００１２】
本発明では上記問題点に鑑み、乱数を生成する乱数生成手段と、前記乱数生成手段が生成した乱数列を保持しておく乱数列保持手段と、前記乱数生成手段が生成した乱数列を検定する検定手段と、前記乱数生成手段が生成した乱数列の前記乱数列保持手段への書き込み、前記乱数列保持手段からの乱数列の読み出し及び前記検定手段から検定結果に基づいて外部から乱数列出力要求に従って乱数列の出力を制御する制御手段とを備え、前記検定手段は乱数の検定に必要な所要量（mビットとする。）の乱数の1/n（nは自然数）単位で前記乱数列の統計情報を算出後、保持しておき、n個の統計情報を基にmビットの乱数の検定を行い、以後m/nビット毎に乱数列及び統計情報を更新し、最新のmビットの乱数に対する検定結果が迅速に出されるようにしたものである。
【００１３】
また本発明では前記検定手段が出力する最新のmビットの乱数列の検定結果が不合格であった場合は前記乱数生成手段はm/nビット分の乱数列を再生成して前記乱数列保持手段が保持するm/nビット分の乱数列を差し替えるとともに前記再生成されたm/nビット分の乱数列の統計情報を算出し、前記検定手段が保持するm/nビット分の乱数列の統計情報を差し替えることにより再度mビットの乱数列の検定を行うことにより迅速に乱数列の検定を行うようにしたものである。
【００１４】
また本発明では前記乱数列保持手段が保持する乱数列が前記乱数の検定に必要な所要量mビットに満たない場合にも前記検定手段は前記乱数生成手段が生成したmビット分の乱数列の統計情報をm/nビット毎に保持することにより前記乱数生成手段がm/nビット生成する毎にm ビット分の乱数列の検定を行なえるようにしたものである。
【発明の効果】
【００１５】
以上詳細に説明したように乱数の検定に必要なビット数をn分割して各ブロック毎に乱数の統計情報を算出、保持し、n個の統計情報から乱数の検定を行なうことにより、乱数の検定に必要なビット数の1/nの新規の乱数が生成される毎に乱数の検定を行なうことができ常に十分な量の使用可能な乱数を保持できるようになった。また、新規に生成した乱数の品質が不十分であるときにも新規に生成した乱数だけ差し替えて検定が行なえるようになったので迅速に必要な量の乱数を揃えることができるようになった。
【００１６】
また、少ない量しか乱数を保持しておけない場合でも過去に保持していた乱数の統計情報を保持することにより乱数検定が可能になり品質を保証した乱数を出力できるようになった。
【発明を実施するための最良の形態】
【００１７】
（第1の実施例）
図１は本発明を実施した乱数生成エージェントにおける乱数列出力のフローチャートを示すものである。また図２は乱数保持手段に保持される乱数列の状態を各ステップ毎に示したものである。図１及び２により本発明の乱数列出力フローの概要を説明する。
【００１８】
まず乱数列保持手段に保持された乱数列及び検定手段に保持された乱数列の統計情報を初期化する。（S0）
次に乱数生成手段が生成した乱数を乱数列保持手段に書き込むとともに検定手段に入力し、統計処理を行なう。（S1）
あらかじめどの検定をやるかは設定されており、検定に必要な乱数列のビット数をmビットとする。また乱数列の分割数nも設定されているものとする。
【００１９】
検定手段によって統計処理された乱数列のビット数がm/nビットに達するまでS1を繰り返す。（S2）
入力した乱数列の量がm/nビットに達すると検定手段はm/nビット分の乱数列の統計情報を算出し、保持する。そして検定手段に保持されているn個の統計情報を基にmビット分の乱数列に対する検定を行う。（S3）
検定結果が合格であればm ビットの乱数列が出力可能となり、不合格であればS1に戻り新規にm/nビットの乱数列を生成し、乱数列を書き込む。また新規に生成したm/nビットの乱数列の統計情報を算出する。（S4）
なおこのとき新規に生成した乱数を書き込む乱数保持手段のアドレスはm/nである。その後再びS3で検定を行なうが、検定結果が再び不合格であれば以降順次m*2/n, m*3/n,・・・, m*(n-1)/n, m*n/n, 0, m/n, m*2/n, m*3/n, ・・・ とm/nずつ乱数保持手段のアドレスを移動して書き込みを続けていく。また、検定手段が算出し、保持する統計情報も乱数列保持手段により保持された乱数列に対応したものになる。
【００２０】
そしてS4で検定に合格すれば乱数保持手段に保持されているmビットの乱数列が出力可能となる。
【００２１】
以上のようにしてmビットの乱数列が出力可能になると乱数列保持手段への乱数の書き込みは停止し、検定手段による統計情報の算出及び検定も停止する。
【００２２】
次に乱数生成エージェントに乱数列の出力要求がくると所定量の乱数列を出力する。（S5）
乱数列を出力すると同時に出力した分だけ乱数列を生成し、S1に戻る。
【００２３】
以上が乱数列出力フローの概要である。
【００２４】
なお上記記載の乱数列の統計情報とは検定の際に必要となる各乱数列の統計情報である。一例として前述したFIPS140-2に準拠した検定で分割数を５とすると
1. The mono bit test では4000ビット中の'1'の数、
2. The long runs testでは4000ビット中の'1'または'0'の最長連続ビット数、
3. The runs testでは4000 ビット中の'1'及び0'の連続ビット数 i(1 ≦ i ≦ 6)の度数、
4. The poker test では4000ビットを４ビット毎に区切った時の各４ビットの値(０〜１５)の度数
が含まれる。また検定は20000ビットで行なうので各4000ビットのつなぎ目部分は別にカウントする必要がある。具体的には各4000ビットの乱数列の先頭及び最後尾の'1'及び'0'の連続ビット数の情報を統計情報に加える。
【００２５】
図９に4000ビットの乱数列０、１のつなぎめ部分を示した。乱数列０の先頭部分において'0'の連続ビット数は１、'1'の連続ビット数は０である。乱数列０の最後尾部分において'0'の連続ビット数は０、'1'の連続ビット数は３である。また乱数列１の先頭部分において'0'の連続ビット数は０、'1'の連続ビット数は１である。
【００２６】
よって乱数列０の最後尾と乱数列１の先頭の連続ビット数から乱数列０、１が接続した状態の連続ビットの情報を補正すると乱数列０、１のトータルでThe runs testの'1'の連続ビット数４の度数が１増え、乱数列０の'1'の連続ビット数３の度数が１減り、乱数列１の'1'の連続ビット数１の度数が１減る。
【００２７】
このように各乱数列に統計情報を用意しておくことで各乱数列を接続した乱数列の検定を行なうことができる。
【００２８】
図４に本発明を実施した乱数列生成エージェントのブロック図を示す。同図において１は品質が保証された乱数列を出力する乱数列生成エージェント、２は乱数シード１０１を入力し、所定の乱数列１０２を生成する乱数列生成手段、３は制御手段５の出力である乱数列１０３を一時保持しておくための乱数列保持手段、４は乱数列生成手段２によって生成された乱数列１０２を検定し、検定結果１０６を出力する検定手段、５は乱数生成手段２が出力した乱数列１０２を入力し検定手段４の出力する検定結果１０６に応じて乱数列１０３を乱数列保持手段３に書き込んだり、検定手段４に乱数列１０３を入力させ、更に外部からの乱数列出力要求１０７によって乱数列保持手段３から乱数列１０４を読み出し、所定量の乱数列１０８を出力する制御手段である。
【００２９】
図５は図４に示した乱数列生成エージェントの動作タイミングを示したものである。また図３は図４の動作タイミングに対応した乱数保持手段の状態を示したものである。以降図３〜図５を用いて乱数保持手段が保持する乱数列及び検定手段が保持する乱数列の統計情報について更に説明を加える。ここで検定に必要な乱数列のビット数を20000、乱数列の分割数を5とする。また乱数列保持手段で保持できるビット数を20000とする。
【００３０】
図３(a)に示すように最初に乱数列保持手段３に保持されているデータは全て初期化し、検定手段４により保持されている各乱数列の統計情報も初期化されている。次に図3（ｂ）に示すように乱数列保持手段３のアドレス0〜3999まで4000ビットの乱数列が書き込まれ、検定手段４によって4000ビット分の統計情報が算出され、保持される。ここで乱数列保持手段３のアドレス0〜3999に保持された乱数列０の統計情報とアドレス4000から19999までの４つの初期化されたデータに対応した統計情報から検定が行なわれる。
【００３１】
通常この状態では検定は不合格になるので、新規に生成された乱数列１０２が乱数生成手段２から制御手段５を介して乱数列出力１０３となり乱数列保持手段３のアドレス4000〜7999に書き込まれる。また検定手段４にも同様に制御手段５の乱数列出力１０３が入力し、新規の乱数列4000ビット分の乱数列統計情報が算出され、保持される。そして同様に５つの統計情報から検定が行なわれる。
【００３２】
このようにして順次4000ビットずつ乱数列保持手段３に乱数列の書き込みを行い、対応した統計情報を基に検定を行っていき、図３(c)のように乱数列０〜４まで５つの4000ビットの乱数列が乱数保持手段３に書き込まれ、検定が不合格であったとする。
【００３３】
そして次に図３(d)のように乱数列を書き込む先頭アドレスは0に戻り、0〜3999の領域に乱数列５を書き込み、乱数列０と差し替える。検定手段４が保持する各乱数列の統計情報もこれに対応しており、乱数列１〜５に対応した統計情報を基に検定は行なわれる。
【００３４】
更に検定の不合格が続くと乱数列保持手段３において乱数列を書き込む先頭アドレスは4000となり4000〜7999の領域に乱数列６を書き込み、乱数列１と差し替える。
【００３５】
このように検定が不合格の間は乱数列を書き込む先頭アドレスは0,4000,8000,12000,16000,0,4000と4000ビットずつ移動していき、検定手段４で保持される統計情報もこれに対応したものになる。
【００３６】
次に図３(e)のように乱数列２〜６について各統計情報を基に検定を行なった結果、検定が合格だったとする。この時点で乱数列２〜６は出力可状態となり、一旦乱数列書き込み及び統計処理を停止する。そして乱数出力要求がくると乱数列２から出力要求のあった分だけ乱数列を出力する。
【００３７】
いま簡単のためちょうど4000ビットの乱数列出力要求があったとすると図３(f)のように乱数列保持手段３のアドレス8000〜11999までの4000ビットに保持されている乱数列２が出力される。そして乱数列２を出力しながら出力済みの領域に新規に生成した乱数列７を書き込む。一方検定手段４では乱数列７について統計処理を行い、保持されている乱数列３〜６までの統計情報と乱数列７についての統計情報を基に検定を行なう。
【００３８】
そして図３(g)のように検定結果が不合格であったとすると今度は新規に生成した乱数列８を乱数列７の保持されている領域8000〜11999に書き込み、乱数列７と差し替える。また検定手段４に保持されている統計情報も同様に乱数列７に対応する統計情報を乱数列８に対応する統計情報に差し替える。
【００３９】
図３(h)に示すように乱数列３〜６、８に対する検定が不合格であった場合は、乱数列８及び対応する統計情報を更に差し替え、図３(i)のように新規に生成した乱数列９を乱数列８の保持されている領域8000〜11999に書き込み、乱数列８と差し替える。また検定手段４に保持されている統計情報も同様に乱数列８に対応する統計情報を乱数列９に対応する統計情報に差し替える。
【００４０】
次に再び4000ビットの乱数列出力要求があったとすると図３(j),(k)に示すように乱数列保持手段３のアドレス12000〜15999までの4000ビットに保持されている乱数列３が出力される。そして乱数列３を出力しながら出力済みの領域に新規に生成した乱数列１０を書き込む。一方検定手段４では乱数列１０について統計処理を行い、保持されている乱数列４〜６までの統計情報と乱数列９、１０についての統計情報を基に検定を行なう。
【００４１】
そしてその検定結果が不合格であったため、乱数列１０を新規の乱数列１１に差し替えながら、図３(l)のように更に4000ビットの乱数列出力要求があったとすると乱数列保持手段３のアドレス16000〜19999までの4000ビットに保持されている乱数列４が出力される。このとき乱数列保持手段３の乱数列４が保持されている領域はそのままである。そして新規乱数列１１に対する検定は乱数列４〜６、乱数列９、１１に対応する統計情報を基に行なう。このように乱数列３が保持されている領域の検定が合格となるまで乱数列４に新規の乱数列は書き込まれず、また乱数列４に対応する統計情報も削除されることはない。
【００４２】
次に乱数列１１に対する検定結果は合格であったため、図３(m)に示すように乱数列保持手段３の乱数列４の保持されていたアドレス16000〜19999までの4000ビットの領域に新規の乱数列１２が乱数列保持手段３に書き込まれ、検定手段４によって乱数列１２に対応した統計情報が算出され、保持される。そして乱数列５、６、９、１１、１２に対応した統計情報を基に検定が行なわれ、検定結果が合格であるので再び乱数列保持手段３は全領域が使用可能な乱数列で満たされ、乱数列出力要求を待つ状態となる。
【００４３】
以上説明したように検定手段によって乱数の検定に必要な所要量の1/n毎に乱数列の統計情報を算出した後保持し、n 個の統計情報を基に乱数の検定を行なうことによって、一度乱数の検定が終了した後、新規の乱数列が乱数の検定に必要な所要量の1/n入力する毎に乱数列の検定が行なえるようになったので、常に十分な量の利用可能な乱数を保持しておけるようになった。
【００４４】
また乱数の検定結果が不合格になった場合には乱数列保持手段から乱数の検定に必要な所要量の1/nだけ乱数列を入れ替え、統計処理を行なうようにしたのでより迅速に再度検定を行なえるようになった。
【００４５】
（第２の実施例）
本発明の第２の実施例では乱数列保持手段が保持できる乱数列のビット数が検定手段で必要な乱数列のビット数より少ない場合の動作について説明する。
【００４６】
図６に本発明を実施した乱数列生成エージェントのブロック図を示す。同図において１'は品質が保証された乱数列を出力する乱数列生成エージェント、３'は制御手段５の出力である乱数列１０３を一時保持しておくための乱数列保持手段であり、他の構成要素は第1の実施例と同一のものである。図８は図６に示した乱数列生成エージェントの動作タイミングを示したものである。また図７は図８の動作タイミングに対応した乱数保持手段に保持された乱数列及び検定手段に保持された統計情報の様子を示したものである。以降図６〜図８を用いて乱数保持手段が保持する乱数列及び検定手段が保持する乱数列の統計情報について説明する。なお第1の実施例と同様に検定に必要な乱数列のビット数を20000、乱数列の分割数を5とする。また乱数列保持手段で保持できるビット数を4000とする。
【００４７】
図７(a)に示すようにまず最初に乱数列保持手段３'に保持されているデータは全て初期化し、検定手段４により保持されている各乱数列の統計情報０〜４も初期化されている。
【００４８】
次に図７(b)に示すように乱数列保持手段３'に4000ビットの乱数列０が書き込まれ、検定手段４によって4000ビット分の統計情報０が算出され、保持される。ここで検定手段４には乱数列０の統計情報である統計情報０と４つの初期化された統計情報１〜４を基にして検定が行なわれる。
【００４９】
通常この状態では検定は不合格になるので、次に乱数列保持手段３'に新たな4000ビットの乱数列１が乱数列０に差し替えられる。そして検定手段４により乱数列１の統計情報が算出され、統計情報１として保持される。このとき乱数列０は書き換えられるが、統計情報０はそのまま残る。そして乱数列０、１に対応した統計情報０、１と３つの初期化された統計情報２〜４を元にして検定が行なわれる。
【００５０】
このようにして順次4000ビットずつ乱数列保持手段３'に乱数列の書き込みを行い、対応した統計情報を基に検定を行っていき、図７(c)のように乱数列４の4000ビットの乱数列が乱数保持手段３'に書き込まれ、乱数列０〜４に対応した統計情報０〜４が生成される。そして統計情報０〜４を基にして検定が行なわれる。なお、統計情報の更新方法は第1の実施例と同様であり、この検定結果が不合格であった場合に検定手段内に保持される乱数列の統計情報は新規に生成した乱数の統計情報を順次追加していき、検定に必要な所定量20000ビットが集まった後は古い順に更新していく。
【００５１】
そして次に図７(d)のように乱数列保持手段３'に乱数列５を書き込み、乱数列４と差し替える。検定手段４は乱数列保持手段３'に保持する乱数列５の統計情報である統計情報５を保持し、代わりに乱数列０の統計情報である統計情報０を削除する。
【００５２】
次に図７(e)のように新規の乱数列６が生成され乱数列保持手段３'に書き込まれると、検定手段４は乱数列６に対応した統計情報６を算出し、保持する。そして乱数列２〜６についての統計情報２〜６を基に検定を行なう。その結果、検定が合格だったとするとこの時点で乱数列６は出力可状態となり、一旦乱数列書き込み及び統計処理を停止する。そして乱数出力要求がくると乱数列６から出力要求のあった分だけ乱数列を出力する。
【００５３】
いま簡単のためちょうど4000ビットの乱数列出力要求があったとすると図７(f)のように乱数列保持手段から4000ビットの乱数列６が出力される。そして乱数列６を出力しながら新規に生成した乱数列７を乱数列６の保持されていた領域に書き込む。一方検定手段では乱数列７について統計処理を行い、統計情報７を算出し、統計情報２が保持されていた領域に書き込み保持する。そして保持されている乱数列３〜６までの統計情報３〜６と乱数列７についての統計情報７を基に検定を行なう。
【００５４】
そして図７(g)のように検定結果が不合格であったとすると今度は新規に生成した乱数列８を乱数列７の保持されている領域0〜3999に書き込み、乱数列７と差し替える。また検定手段に保持されている統計情報も同様に乱数列７に対応する統計情報７を乱数列８に対応する統計情報８に差し替える。
【００５５】
図７(h)に示すように乱数列３〜６、８に対応する統計情報３〜６、８を基に行なった検定結果が不合格であった場合は、乱数列８及び対応する統計情報８を更に差し替え、図７(i)のように新規に生成した乱数列９を乱数列８の保持されている領域0〜3999に書き込み、乱数列８と差し替える。また検定手段に保持されている統計情報８も同様に乱数列９に対応する統計情報９に差し替える。そして統計情報３〜６、９を基に検定を行い、検定結果が合格であったとすると乱数列９は出力可能な状態になる。
【００５６】
そして4000ビットの乱数列出力要求があると図７(j)のように乱数列保持手段３'から4000ビットの乱数列９が出力される。そして乱数列９を出力しながら新規に生成した乱数列１０を乱数列９の保持されていた領域に書き込む。一方検定手段４では乱数列１０について統計処理を行い、保持されている乱数列４〜６までの統計情報４〜６と乱数列９、１０についての統計情報９、１０を基に検定を行なう。
【００５７】
そして図７(k)のように検定結果が不合格であったとすると今度は新規に生成した乱数列１１を乱数列１０の保持されている領域0〜3999に書き込み、乱数列１０と差し替える。また検定手段に保持されている統計情報１０も同様に乱数列１０に対応する統計情報１１に差し替える。そして図７(l)のように統計情報４〜６、９、１１を基にして検定を行い、検定結果が合格であれば乱数列１１が出力可能な状態になる。
【００５８】
以上説明したように乱数列保持手段が保持する乱数列が乱数の検定に必要な所要量mビットに満たない場合でも検定手段は乱数生成手段が生成したmビット分の乱数列の統計情報をm/nビット毎に保持することにより乱数生成手段が乱数列をm/nビット生成する毎にmビット分の乱数列の検定を行なえるようになった。
【図面の簡単な説明】
【００５９】
【図１】本発明の乱数生成エージェントの乱数列出力のフローを示した図。
【図２】本発明の実施形態における乱数列保持手段に保持されている乱数列と検定領域及び出力可能領域を示した図。
【図３】本発明の第1の実施例における乱数列保持手段に保持されている乱数列の検定、出力、データ更新を説明した図。
【図４】本発明の第1の実施例における乱数生成エージェントの構成を示した図。
【図５】本発明の第1の実施例における乱数生成エージェントの動作タイミングを示した図。
【図６】本発明の第２の実施例における乱数生成エージェントの構成を示した図。
【図７】本発明の第２の実施例における乱数列保持手段に保持されている乱数列の検定、出力、データ更新及び検定手段に保持されている統計情報の更新を説明した図。
【図８】本発明の第２の実施例における乱数生成エージェントの動作タイミングを示した図。
【図９】乱数列の先頭、最後尾の例を示した図である。
【符号の説明】
【００６０】
１、１'  乱数生成エージェント
２  乱数生成手段
３、３'  乱数列保持手段
４  検定手段
５  制御手段
１０１  乱数シード
１０２、１０３、１０４  乱数列
１０６  検定結果
１０７  乱数列出力要求
１０８  乱数列出力
【図１】
2006318092.tif 000003
【図２】
2006318092.tif 000004
【図３】
2006318092.tif 000005
【図４】
2006318092.tif 000006
【図５】
2006318092.tif 000007
【図６】
2006318092.tif 000008
【図７】
2006318092.tif 000009
【図８】
2006318092.tif 000010
【図９】
2006318092.tif 000011