JP2006318092A - 乱数生成エージェント - Google Patents
乱数生成エージェント Download PDFInfo
- Publication number
- JP2006318092A JP2006318092A JP2005138416A JP2005138416A JP2006318092A JP 2006318092 A JP2006318092 A JP 2006318092A JP 2005138416 A JP2005138416 A JP 2005138416A JP 2005138416 A JP2005138416 A JP 2005138416A JP 2006318092 A JP2006318092 A JP 2006318092A
- Authority
- JP
- Japan
- Prior art keywords
- random number
- number sequence
- statistical information
- test
- sequence
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Test And Diagnosis Of Digital Computers (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
【課題】 検定機能を内蔵した高品質乱数生成エージェントにおいて検定の高速化、回路規模削減をはかる。
【解決手段】 乱数列生成手段、乱数列保持手段、検定手段、制御手段から構成される。検定手段は任意ビット長の乱数列毎に乱数検定に必要な乱数の統計情報を算出した後保持し、保持している複数の統計情報を基に検定を行なう。また、新規に乱数列を生成した後、新規乱数列のみの統計情報を算出し、保持している他の乱数列の統計情報と差し替えることにより迅速に乱数検定でき、乱数検定に不合格になった場合も一部の乱数列の統計情報のみを差し替えることにより再度検定できる。また、乱数列保持手段が乱数検定に必要なビット数を保持できなくても必要量の乱数列の統計情報を保持していれば検定が可能である。制御手段は検定結果と外部からの乱数列出力要求により乱数列の外部への出力を制御する。
【選択図】 図1
【解決手段】 乱数列生成手段、乱数列保持手段、検定手段、制御手段から構成される。検定手段は任意ビット長の乱数列毎に乱数検定に必要な乱数の統計情報を算出した後保持し、保持している複数の統計情報を基に検定を行なう。また、新規に乱数列を生成した後、新規乱数列のみの統計情報を算出し、保持している他の乱数列の統計情報と差し替えることにより迅速に乱数検定でき、乱数検定に不合格になった場合も一部の乱数列の統計情報のみを差し替えることにより再度検定できる。また、乱数列保持手段が乱数検定に必要なビット数を保持できなくても必要量の乱数列の統計情報を保持していれば検定が可能である。制御手段は検定結果と外部からの乱数列出力要求により乱数列の外部への出力を制御する。
【選択図】 図1
Description
本発明は任意ビット数の乱数を生成する乱数生成エージェントに関するものである。
従来、様々なデジタル機器のおいて各種信号処理に乱数が使われてきた。また近年、各種機器類のネットワーク化が進むとともにセキュリティ機能が要求されるようになってきたためより一層乱数が使われる場面が増えている。
そしてセキュリティ機能に使われる乱数の場合には、安全性向上の重要な要素として乱数の一様性、配列の不規則性、十分に長い周期性、前後関係からの予測困難性等統計的な高品質がより求められる傾向があった。
このような乱数が要求される品質を満たしているかどうかを判定する検定には20,000ビットの乱数に対して検定を行うFIPS140-2に準拠した検定法、1Mビットの乱数を一本の乱数列とし1,000本程度の乱数列に対して検定を行うNIST SP800-22、10〜11Mバイトの乱数に対して検定を行うDIEHARD等がある。
例えば特開2004-310314ではFIPS140-2に準拠した検定法が内蔵され、チップ内部で発生した乱数を出力しながら検定回路により検定を行い、検定終了後乱数保持部から乱数を出力するようになっている。その検定内容は以下の4種類のテストから構成されている。
1. The mono bit test
連続するランダムな20,000ビット中の'1'の数をXとしたとき
9,725 < X < 10,275・・・(1)
であれば合格。
連続するランダムな20,000ビット中の'1'の数をXとしたとき
9,725 < X < 10,275・・・(1)
であれば合格。
2. The long runs test
連続するランダムな20,000ビット中の'1'or'0'の最長連続ビット数をXとしたとき
X < 26・・・(2)
であれば合格。
連続するランダムな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)の範囲内であれば合格。
連続するランダムな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までの全ての検定に合格したとき、検定された乱数は高品質な乱数であると判断される。
特開2004−310314号公報
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の実施例)
図1は本発明を実施した乱数生成エージェントにおける乱数列出力のフローチャートを示すものである。また図2は乱数保持手段に保持される乱数列の状態を各ステップ毎に示したものである。図1及び2により本発明の乱数列出力フローの概要を説明する。
図1は本発明を実施した乱数生成エージェントにおける乱数列出力のフローチャートを示すものである。また図2は乱数保持手段に保持される乱数列の状態を各ステップ毎に示したものである。図1及び2により本発明の乱数列出力フローの概要を説明する。
まず乱数列保持手段に保持された乱数列及び検定手段に保持された乱数列の統計情報を初期化する。(S0)
次に乱数生成手段が生成した乱数を乱数列保持手段に書き込むとともに検定手段に入力し、統計処理を行なう。(S1)
あらかじめどの検定をやるかは設定されており、検定に必要な乱数列のビット数をmビットとする。また乱数列の分割数nも設定されているものとする。
次に乱数生成手段が生成した乱数を乱数列保持手段に書き込むとともに検定手段に入力し、統計処理を行なう。(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ずつ乱数保持手段のアドレスを移動して書き込みを続けていく。また、検定手段が算出し、保持する統計情報も乱数列保持手段により保持された乱数列に対応したものになる。
入力した乱数列の量が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に戻る。
乱数列を出力すると同時に出力した分だけ乱数列を生成し、S1に戻る。
以上が乱数列出力フローの概要である。
なお上記記載の乱数列の統計情報とは検定の際に必要となる各乱数列の統計情報である。一例として前述したFIPS140-2に準拠した検定で分割数を5とすると
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ビットを4ビット毎に区切った時の各4ビットの値(0〜15)の度数
が含まれる。また検定は20000ビットで行なうので各4000ビットのつなぎ目部分は別にカウントする必要がある。具体的には各4000ビットの乱数列の先頭及び最後尾の'1'及び'0'の連続ビット数の情報を統計情報に加える。
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ビットを4ビット毎に区切った時の各4ビットの値(0〜15)の度数
が含まれる。また検定は20000ビットで行なうので各4000ビットのつなぎ目部分は別にカウントする必要がある。具体的には各4000ビットの乱数列の先頭及び最後尾の'1'及び'0'の連続ビット数の情報を統計情報に加える。
図9に4000ビットの乱数列0、1のつなぎめ部分を示した。乱数列0の先頭部分において'0'の連続ビット数は1、'1'の連続ビット数は0である。乱数列0の最後尾部分において'0'の連続ビット数は0、'1'の連続ビット数は3である。また乱数列1の先頭部分において'0'の連続ビット数は0、'1'の連続ビット数は1である。
よって乱数列0の最後尾と乱数列1の先頭の連続ビット数から乱数列0、1が接続した状態の連続ビットの情報を補正すると乱数列0、1のトータルでThe runs testの'1'の連続ビット数4の度数が1増え、乱数列0の'1'の連続ビット数3の度数が1減り、乱数列1の'1'の連続ビット数1の度数が1減る。
このように各乱数列に統計情報を用意しておくことで各乱数列を接続した乱数列の検定を行なうことができる。
図4に本発明を実施した乱数列生成エージェントのブロック図を示す。同図において1は品質が保証された乱数列を出力する乱数列生成エージェント、2は乱数シード101を入力し、所定の乱数列102を生成する乱数列生成手段、3は制御手段5の出力である乱数列103を一時保持しておくための乱数列保持手段、4は乱数列生成手段2によって生成された乱数列102を検定し、検定結果106を出力する検定手段、5は乱数生成手段2が出力した乱数列102を入力し検定手段4の出力する検定結果106に応じて乱数列103を乱数列保持手段3に書き込んだり、検定手段4に乱数列103を入力させ、更に外部からの乱数列出力要求107によって乱数列保持手段3から乱数列104を読み出し、所定量の乱数列108を出力する制御手段である。
図5は図4に示した乱数列生成エージェントの動作タイミングを示したものである。また図3は図4の動作タイミングに対応した乱数保持手段の状態を示したものである。以降図3〜図5を用いて乱数保持手段が保持する乱数列及び検定手段が保持する乱数列の統計情報について更に説明を加える。ここで検定に必要な乱数列のビット数を20000、乱数列の分割数を5とする。また乱数列保持手段で保持できるビット数を20000とする。
図3(a)に示すように最初に乱数列保持手段3に保持されているデータは全て初期化し、検定手段4により保持されている各乱数列の統計情報も初期化されている。次に図3(b)に示すように乱数列保持手段3のアドレス0〜3999まで4000ビットの乱数列が書き込まれ、検定手段4によって4000ビット分の統計情報が算出され、保持される。ここで乱数列保持手段3のアドレス0〜3999に保持された乱数列0の統計情報とアドレス4000から19999までの4つの初期化されたデータに対応した統計情報から検定が行なわれる。
通常この状態では検定は不合格になるので、新規に生成された乱数列102が乱数生成手段2から制御手段5を介して乱数列出力103となり乱数列保持手段3のアドレス4000〜7999に書き込まれる。また検定手段4にも同様に制御手段5の乱数列出力103が入力し、新規の乱数列4000ビット分の乱数列統計情報が算出され、保持される。そして同様に5つの統計情報から検定が行なわれる。
このようにして順次4000ビットずつ乱数列保持手段3に乱数列の書き込みを行い、対応した統計情報を基に検定を行っていき、図3(c)のように乱数列0〜4まで5つの4000ビットの乱数列が乱数保持手段3に書き込まれ、検定が不合格であったとする。
そして次に図3(d)のように乱数列を書き込む先頭アドレスは0に戻り、0〜3999の領域に乱数列5を書き込み、乱数列0と差し替える。検定手段4が保持する各乱数列の統計情報もこれに対応しており、乱数列1〜5に対応した統計情報を基に検定は行なわれる。
更に検定の不合格が続くと乱数列保持手段3において乱数列を書き込む先頭アドレスは4000となり4000〜7999の領域に乱数列6を書き込み、乱数列1と差し替える。
このように検定が不合格の間は乱数列を書き込む先頭アドレスは0,4000,8000,12000,16000,0,4000と4000ビットずつ移動していき、検定手段4で保持される統計情報もこれに対応したものになる。
次に図3(e)のように乱数列2〜6について各統計情報を基に検定を行なった結果、検定が合格だったとする。この時点で乱数列2〜6は出力可状態となり、一旦乱数列書き込み及び統計処理を停止する。そして乱数出力要求がくると乱数列2から出力要求のあった分だけ乱数列を出力する。
いま簡単のためちょうど4000ビットの乱数列出力要求があったとすると図3(f)のように乱数列保持手段3のアドレス8000〜11999までの4000ビットに保持されている乱数列2が出力される。そして乱数列2を出力しながら出力済みの領域に新規に生成した乱数列7を書き込む。一方検定手段4では乱数列7について統計処理を行い、保持されている乱数列3〜6までの統計情報と乱数列7についての統計情報を基に検定を行なう。
そして図3(g)のように検定結果が不合格であったとすると今度は新規に生成した乱数列8を乱数列7の保持されている領域8000〜11999に書き込み、乱数列7と差し替える。また検定手段4に保持されている統計情報も同様に乱数列7に対応する統計情報を乱数列8に対応する統計情報に差し替える。
図3(h)に示すように乱数列3〜6、8に対する検定が不合格であった場合は、乱数列8及び対応する統計情報を更に差し替え、図3(i)のように新規に生成した乱数列9を乱数列8の保持されている領域8000〜11999に書き込み、乱数列8と差し替える。また検定手段4に保持されている統計情報も同様に乱数列8に対応する統計情報を乱数列9に対応する統計情報に差し替える。
次に再び4000ビットの乱数列出力要求があったとすると図3(j),(k)に示すように乱数列保持手段3のアドレス12000〜15999までの4000ビットに保持されている乱数列3が出力される。そして乱数列3を出力しながら出力済みの領域に新規に生成した乱数列10を書き込む。一方検定手段4では乱数列10について統計処理を行い、保持されている乱数列4〜6までの統計情報と乱数列9、10についての統計情報を基に検定を行なう。
そしてその検定結果が不合格であったため、乱数列10を新規の乱数列11に差し替えながら、図3(l)のように更に4000ビットの乱数列出力要求があったとすると乱数列保持手段3のアドレス16000〜19999までの4000ビットに保持されている乱数列4が出力される。このとき乱数列保持手段3の乱数列4が保持されている領域はそのままである。そして新規乱数列11に対する検定は乱数列4〜6、乱数列9、11に対応する統計情報を基に行なう。このように乱数列3が保持されている領域の検定が合格となるまで乱数列4に新規の乱数列は書き込まれず、また乱数列4に対応する統計情報も削除されることはない。
次に乱数列11に対する検定結果は合格であったため、図3(m)に示すように乱数列保持手段3の乱数列4の保持されていたアドレス16000〜19999までの4000ビットの領域に新規の乱数列12が乱数列保持手段3に書き込まれ、検定手段4によって乱数列12に対応した統計情報が算出され、保持される。そして乱数列5、6、9、11、12に対応した統計情報を基に検定が行なわれ、検定結果が合格であるので再び乱数列保持手段3は全領域が使用可能な乱数列で満たされ、乱数列出力要求を待つ状態となる。
以上説明したように検定手段によって乱数の検定に必要な所要量の1/n毎に乱数列の統計情報を算出した後保持し、n 個の統計情報を基に乱数の検定を行なうことによって、一度乱数の検定が終了した後、新規の乱数列が乱数の検定に必要な所要量の1/n入力する毎に乱数列の検定が行なえるようになったので、常に十分な量の利用可能な乱数を保持しておけるようになった。
また乱数の検定結果が不合格になった場合には乱数列保持手段から乱数の検定に必要な所要量の1/nだけ乱数列を入れ替え、統計処理を行なうようにしたのでより迅速に再度検定を行なえるようになった。
(第2の実施例)
本発明の第2の実施例では乱数列保持手段が保持できる乱数列のビット数が検定手段で必要な乱数列のビット数より少ない場合の動作について説明する。
本発明の第2の実施例では乱数列保持手段が保持できる乱数列のビット数が検定手段で必要な乱数列のビット数より少ない場合の動作について説明する。
図6に本発明を実施した乱数列生成エージェントのブロック図を示す。同図において1'は品質が保証された乱数列を出力する乱数列生成エージェント、3'は制御手段5の出力である乱数列103を一時保持しておくための乱数列保持手段であり、他の構成要素は第1の実施例と同一のものである。図8は図6に示した乱数列生成エージェントの動作タイミングを示したものである。また図7は図8の動作タイミングに対応した乱数保持手段に保持された乱数列及び検定手段に保持された統計情報の様子を示したものである。以降図6〜図8を用いて乱数保持手段が保持する乱数列及び検定手段が保持する乱数列の統計情報について説明する。なお第1の実施例と同様に検定に必要な乱数列のビット数を20000、乱数列の分割数を5とする。また乱数列保持手段で保持できるビット数を4000とする。
図7(a)に示すようにまず最初に乱数列保持手段3'に保持されているデータは全て初期化し、検定手段4により保持されている各乱数列の統計情報0〜4も初期化されている。
次に図7(b)に示すように乱数列保持手段3'に4000ビットの乱数列0が書き込まれ、検定手段4によって4000ビット分の統計情報0が算出され、保持される。ここで検定手段4には乱数列0の統計情報である統計情報0と4つの初期化された統計情報1〜4を基にして検定が行なわれる。
通常この状態では検定は不合格になるので、次に乱数列保持手段3'に新たな4000ビットの乱数列1が乱数列0に差し替えられる。そして検定手段4により乱数列1の統計情報が算出され、統計情報1として保持される。このとき乱数列0は書き換えられるが、統計情報0はそのまま残る。そして乱数列0、1に対応した統計情報0、1と3つの初期化された統計情報2〜4を元にして検定が行なわれる。
このようにして順次4000ビットずつ乱数列保持手段3'に乱数列の書き込みを行い、対応した統計情報を基に検定を行っていき、図7(c)のように乱数列4の4000ビットの乱数列が乱数保持手段3'に書き込まれ、乱数列0〜4に対応した統計情報0〜4が生成される。そして統計情報0〜4を基にして検定が行なわれる。なお、統計情報の更新方法は第1の実施例と同様であり、この検定結果が不合格であった場合に検定手段内に保持される乱数列の統計情報は新規に生成した乱数の統計情報を順次追加していき、検定に必要な所定量20000ビットが集まった後は古い順に更新していく。
そして次に図7(d)のように乱数列保持手段3'に乱数列5を書き込み、乱数列4と差し替える。検定手段4は乱数列保持手段3'に保持する乱数列5の統計情報である統計情報5を保持し、代わりに乱数列0の統計情報である統計情報0を削除する。
次に図7(e)のように新規の乱数列6が生成され乱数列保持手段3'に書き込まれると、検定手段4は乱数列6に対応した統計情報6を算出し、保持する。そして乱数列2〜6についての統計情報2〜6を基に検定を行なう。その結果、検定が合格だったとするとこの時点で乱数列6は出力可状態となり、一旦乱数列書き込み及び統計処理を停止する。そして乱数出力要求がくると乱数列6から出力要求のあった分だけ乱数列を出力する。
いま簡単のためちょうど4000ビットの乱数列出力要求があったとすると図7(f)のように乱数列保持手段から4000ビットの乱数列6が出力される。そして乱数列6を出力しながら新規に生成した乱数列7を乱数列6の保持されていた領域に書き込む。一方検定手段では乱数列7について統計処理を行い、統計情報7を算出し、統計情報2が保持されていた領域に書き込み保持する。そして保持されている乱数列3〜6までの統計情報3〜6と乱数列7についての統計情報7を基に検定を行なう。
そして図7(g)のように検定結果が不合格であったとすると今度は新規に生成した乱数列8を乱数列7の保持されている領域0〜3999に書き込み、乱数列7と差し替える。また検定手段に保持されている統計情報も同様に乱数列7に対応する統計情報7を乱数列8に対応する統計情報8に差し替える。
図7(h)に示すように乱数列3〜6、8に対応する統計情報3〜6、8を基に行なった検定結果が不合格であった場合は、乱数列8及び対応する統計情報8を更に差し替え、図7(i)のように新規に生成した乱数列9を乱数列8の保持されている領域0〜3999に書き込み、乱数列8と差し替える。また検定手段に保持されている統計情報8も同様に乱数列9に対応する統計情報9に差し替える。そして統計情報3〜6、9を基に検定を行い、検定結果が合格であったとすると乱数列9は出力可能な状態になる。
そして4000ビットの乱数列出力要求があると図7(j)のように乱数列保持手段3'から4000ビットの乱数列9が出力される。そして乱数列9を出力しながら新規に生成した乱数列10を乱数列9の保持されていた領域に書き込む。一方検定手段4では乱数列10について統計処理を行い、保持されている乱数列4〜6までの統計情報4〜6と乱数列9、10についての統計情報9、10を基に検定を行なう。
そして図7(k)のように検定結果が不合格であったとすると今度は新規に生成した乱数列11を乱数列10の保持されている領域0〜3999に書き込み、乱数列10と差し替える。また検定手段に保持されている統計情報10も同様に乱数列10に対応する統計情報11に差し替える。そして図7(l)のように統計情報4〜6、9、11を基にして検定を行い、検定結果が合格であれば乱数列11が出力可能な状態になる。
以上説明したように乱数列保持手段が保持する乱数列が乱数の検定に必要な所要量mビットに満たない場合でも検定手段は乱数生成手段が生成したmビット分の乱数列の統計情報をm/nビット毎に保持することにより乱数生成手段が乱数列をm/nビット生成する毎にmビット分の乱数列の検定を行なえるようになった。
1、1' 乱数生成エージェント
2 乱数生成手段
3、3' 乱数列保持手段
4 検定手段
5 制御手段
101 乱数シード
102、103、104 乱数列
106 検定結果
107 乱数列出力要求
108 乱数列出力
2 乱数生成手段
3、3' 乱数列保持手段
4 検定手段
5 制御手段
101 乱数シード
102、103、104 乱数列
106 検定結果
107 乱数列出力要求
108 乱数列出力
Claims (4)
- 乱数列を生成する乱数列生成手段と前記乱数列を保持しておく乱数列保持手段と、前記乱数列の統計的品質を検定し検定結果を出力する検定手段と、前記検定手段及び前記乱数列保持手段へ前記乱数列を出力し、前記検定手段からの前記検定結果に応じて前記乱数列保持手段に保持された前記乱数列の出力を制御する出力制御手段とを備え、
前記検定手段は任意個の乱数列の統計情報を保持し、前記保持された任意個の乱数列の統計情報のうちの複数の前記統計情報を基に検定を行なうことを特徴とする乱数生成エージェント。 - 前記検定手段が保持する前記任意個の乱数列の統計情報に対応する前記乱数列のビット数は全て4の倍数であることを特徴とする前記請求項1記載の乱数生成エージェント。
- 前記検定手段に保持されている前記統計情報に対応する前記乱数列のうちの少なくとも一つの乱数列の一部または全部を前記乱数列保持手段に保持していることを特徴とする前記請求項1または2記載の乱数生成エージェント。
- 前記検定手段は前記分割された前記乱数列毎に前記保持している統計情報を更新し、前記更新された統計情報を含む複数の保持されている統計情報を基に検定することを特徴とする前記請求項1〜3記載の乱数生成エージェント。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005138416A JP2006318092A (ja) | 2005-05-11 | 2005-05-11 | 乱数生成エージェント |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005138416A JP2006318092A (ja) | 2005-05-11 | 2005-05-11 | 乱数生成エージェント |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006318092A true JP2006318092A (ja) | 2006-11-24 |
Family
ID=37538743
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005138416A Withdrawn JP2006318092A (ja) | 2005-05-11 | 2005-05-11 | 乱数生成エージェント |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006318092A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008197847A (ja) * | 2007-02-09 | 2008-08-28 | Toshiba Corp | 乱数検査装置およびその検査方法 |
US8250128B2 (en) | 2007-07-30 | 2012-08-21 | Samsung Electronics Co., Ltd. | Apparatus and methods for autonomous testing of random number generators |
JP2016038469A (ja) * | 2014-08-07 | 2016-03-22 | 日本電信電話株式会社 | ハッシュ評価サーバ、ハッシュ評価システム及びハッシュ評価方法 |
-
2005
- 2005-05-11 JP JP2005138416A patent/JP2006318092A/ja not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008197847A (ja) * | 2007-02-09 | 2008-08-28 | Toshiba Corp | 乱数検査装置およびその検査方法 |
US8250128B2 (en) | 2007-07-30 | 2012-08-21 | Samsung Electronics Co., Ltd. | Apparatus and methods for autonomous testing of random number generators |
JP2016038469A (ja) * | 2014-08-07 | 2016-03-22 | 日本電信電話株式会社 | ハッシュ評価サーバ、ハッシュ評価システム及びハッシュ評価方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5011818B2 (ja) | 半導体記憶装置及びその試験方法 | |
JP2007299389A (ja) | フラッシュ・メモリへの書込み方法及び書込み装置 | |
US7788307B2 (en) | Method and apparatus for generating random number | |
JPH0963300A (ja) | 半導体メモリ試験装置のフェイル解析装置 | |
JP2010009643A (ja) | エラー訂正システム | |
CN114527953B (zh) | 存储器数据处理系统、方法、装置、计算机设备和介质 | |
JP4282334B2 (ja) | 試験装置 | |
JP2006318092A (ja) | 乱数生成エージェント | |
JPH09127198A (ja) | 改良型テスタタイミングアーキテクチュア | |
JP4981918B2 (ja) | 試験装置及び試験方法 | |
US20070047622A1 (en) | Data generator having linear feedback shift registers for generating data pattern in forward and reverse orders | |
US8635566B2 (en) | Parity error detection verification | |
US8156396B1 (en) | Method and system for correcting timing errors in high data rate automated test equipment | |
CN111341374B (zh) | 存储器的测试方法、装置及可读存储器 | |
JP2006318091A (ja) | 乱数生成装置 | |
JP2010262496A (ja) | メモリ制御方法、メモリ制御装置 | |
JP2005259266A (ja) | 試験装置及び試験方法 | |
EP0661648A2 (en) | Digital signal processing circuit | |
US20120072792A1 (en) | Memory tester and compiler which matches a test program | |
JPH06123757A (ja) | 試験装置 | |
TWI723515B (zh) | 記憶體裝置及其資料存取方法 | |
JP2006322931A (ja) | 集積回路検査装置 | |
CN112540866B (zh) | 存储器装置及其数据存取方法 | |
JP4679428B2 (ja) | 試験装置および試験方法 | |
JPH03245245A (ja) | データ書込み制御方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20080805 |