(57)【特許請求の範囲】
【請求項１】
クロックに基づいて動作し、乱数生成素子から発生されるシリアル乱数を順次記憶するシフトレジスタと、
前記シフトレジスタの所定の段から出力される第１の乱数と、前記第１の乱数から予め定めた第１のビット数だけ離れた、前記乱数生成素子から発生される第２の乱数との値を比較する比較回路と、
前記シリアル乱数内の全てのビットに対して、前記第１の乱数が前記第２の乱数と等しいときの発生頻度ｘをカウントするカウンタと、
前記発生頻度ｘが以下の不等式を満たせば良品と判定する判定回路と、
【数１】
0004413858.tif 000021
（ｎは乱数の総数、α、δは以下の等式を満たす）
【数２】
0004413858.tif 000022
を備えていることを特徴とする乱数検定回路。
【請求項２】
前記シリアル乱数のサンプルデータ数は任意であり、前記判定回路における良品と判定するための基準は検定を行なう乱数の総数に応じて正規分布に従う乱数検定方法を用いたことを特徴とする請求項１記載の乱数検定回路。
【請求項３】
クロックに基づいて動作し、乱数生成素子から発生されるシリアル乱数を順次記憶するシフトレジスタと、
前記シフトレジスタの所定の段から出力される第１の乱数と、前記第１の乱数から予め定めた第１のビット数だけ離れた、前記乱数生成素子から発生される第２の乱数との値を比較する比較回路と、
前記シリアル乱数内の全てのビットに対して、前記第１の乱数が前記第２の乱数と異なるときの発生頻度ｙをカウントするカウンタと、
前記発生頻度ｙが以下の不等式を満たせば良品と判定する判定回路と、
【数３】
0004413858.tif 000023
（ｎは乱数の総数、α、δは以下の等式を満たす）
【数４】
0004413858.tif 000024
を備えていることを特徴とする乱数検定回路。
【請求項４】
前記カウンタは、前記第１の乱数の値が「１」でありかつ前記第２の乱数の値が「０」であるときの発生頻度をカウントすることを特徴とする請求項３記載の乱数検定回路。
【請求項５】
前記シリアル乱数のサンプルデータ数は任意であり、前記判定回路における良品と判定するための基準は検定を行なう乱数の総数に応じて正規分布に従う乱数検定方法を用いたことを特徴とする請求項３または４記載の乱数検定回路。
【請求項６】
前記比較回路は前記シフトレジスタの複数の所定の段から出力される複数の第１の乱数と、前記第１の乱数のそれぞれから予め定めたそれぞれが異なるビット数だけ離れた、前記乱数生成素子から発生される第２の乱数との値を比較することを特徴とする請求項１記載の乱数検定回路。
【請求項７】
前記シリアル乱数のサンプルデータ数は任意であり、前記判定回路における良品と判定するための基準は検定を行なう乱数の総数に応じて正規分布に従う乱数検定方法を用いたことを特徴とする請求項６記載の乱数検定回路。
【請求項８】
前記比較回路は前記シフトレジスタの複数の所定の段から出力される複数の第１の乱数と、前記第１の乱数のそれぞれから予め定めたそれぞれが異なるビット数だけ離れた、前記乱数生成素子から発生される第２の乱数との値を比較することを特徴とする請求項３記載の乱数検定回路。
【請求項９】
前記シリアル乱数のサンプルデータ数は任意であり、前記判定回路における良品と判定するための基準は検定を行なう乱数の総数に応じて正規分布に従う乱数検定方法を用いたことを特徴とする請求項８記載の乱数検定回路。
【請求項１０】
前記乱数生成素子が組み込まれている半導体チップと同一の半導体チップに組み込まれていることを特徴とする請求項１乃至９のいずれかに記載の乱数検定回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、乱数検定回路に関する。
【背景技術】
【０００２】
従来、統計学的な乱数検定方法があるが、それらは多数のデータ（２００００ビット以上）が必要な上、検定項目を実現するには大規模なプログラムが必要であった。そのため、乱数検定回路の規模が大きくなり、工場での出荷時に１回だけ検定が行なわれていた。しかし、頻繁に乱数を使用する小型情報端末においては、乱数検定回路は小規模かつ簡便なものが要求される。
【０００３】
これに対し、乱数検定回路をチップ内に組み込んだ自己検定型乱数生成回路がある（特許文献１参照）。
【０００４】
特許文献１に記載の乱数検定回路は、検定方法としてＦＩＰＳ−１４０−２を採用し、図１０に示すように、シリアル物理乱数発生器２０１と、シリアル物理乱数発生器２０１の出力側に接続されたＦＩＰＳ−１４０−２に含まれる４種類の検定方法を回路化した、Monobit Test 回路２０２と、Poker Test 回路２０３と、Runs Test 回路２０４と、Long Runs Test 回路２０５と、これらMonobit Test 回路２０２、Poker Test 回路２０３、Runs Test 回路２０４、Long Runs Test 回路２０５による検定結果を保持し、総合判定するためのセレクター２０６と、を備えている。
【０００５】
先ず、シリアル物理乱数発生器２０１から出力されたシリアル乱数をMonobit Test 回路２０２、Poker Test 回路２０３、Runs Test 回路２０４、Long Runs Test 回路２０５の入力に接続する。Monobit Test 回路２０２、Poker Test 回路２０３、Runs Test 回路２０４、およびLong Runs Test 回路２０５は、検定に２００００ビットのデータが必要であり、それぞれが制御回路、カウンタ、比較回路、比較器等で構成されており、Monobit Test 回路２０２、Poker Test 回路２０３、Runs Test 回路２０４、Long Runs Test 回路２０５それぞれによる結果はセレクター２０６に保持され、総合判定は４種類すべての検定方法で判定結果が合格のときに出力される。
【特許文献１】特開２００４−３１０３１４
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、ＦＩＰＳ−１４０−２による検定は、検定に必要なデータ数が２００００ビットと非常に多く、この２００００ビットのデータを保持するために膨大な保持回路が必要となり、さらに、検定に必要な動作１サイクルに対し、４種類の検定方法が必要であり、それぞれが２００００ビットのデータを必要とすることから、非常に回路規模が大きくなるという問題があった。
【０００７】
さらに、ここで述べた問題はＦＩＰＳ−１４０−２に限らず、他の数学的検定方法をそのまま回路化すると、回路面積が膨大になることが本質にある。したがって、ＩＣカード等、小型回路にも搭載するためにも、回路面積を大幅に縮小することが要求されている。
【０００８】
本発明は、多量の検定に必要なデータ数を扱ったとしても回路規模が増大せず、小型化が可能な乱数検定回路を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の第１の態様による乱数検定回路は、クロックに基づいて動作し、乱数生成素子から発生されるシリアル乱数を順次記憶するシフトレジスタと、前記シフトレジスタの所定の段から出力される第１の乱数と、前記第１の乱数から予め定めた第１のビット数だけ離れた、前記乱数生成素子から発生される第２の乱数との値を比較する比較回路と、前記シリアル乱数内の全てのビットに対して、前記第１の乱数が前記第２の乱数と等しいときの発生頻度ｘをカウントするカウンタと、前記発生頻度ｘが以下の不等式を満たせば良品と判定する判定回路と、
【数１６】
0004413858.tif 000002
（ｎは乱数の総数、α、δは以下の等式を満たす）
【数１７】
0004413858.tif 000003
を備えていることを特徴とする。
【００１０】
なお、前記シリアル乱数のサンプルデータ数は任意であり、前記判定回路における良品と判定するための基準は検定を行なう乱数の総数に応じて正規分布に従う乱数検定方法を用いてもよい。
【００１１】
また、本発明の第２の態様による乱数検定回路は、クロックに基づいて動作し、乱数生成素子から発生されるシリアル乱数を順次記憶するシフトレジスタと、前記シフトレジスタの所定の段から出力される第１の乱数と、前記第１の乱数から予め定めた第１のビット数だけ離れた、前記乱数生成素子から発生される第２の乱数との値を比較する比較回路と、前記シリアル乱数内の全てのビットに対して、前記第１の乱数が前記第２の乱数と異なるときの発生頻度ｙをカウントするカウンタと、前記発生頻度ｙが以下の不等式を満たせば良品と判定する判定回路と、
【数１８】
0004413858.tif 000004
（ｎは乱数の総数、α、δは以下の等式を満たす）
【数１９】
0004413858.tif 000005
を備えていることを特徴とする。
【００１２】
なお、前記カウンタは、前記第１の乱数の値が「１」でありかつ前記第２の乱数の値が「０」であるときの発生頻度をカウントしてもよい。
【００１３】
なお、前記シリアル乱数のサンプルデータ数は任意であり、前記判定回路における良品と判定するための基準は検定を行なう乱数の総数に応じて正規分布に従う乱数検定方法を用いてもよい。
【００１４】
また、本発明の第１の態様による乱数検定回路において、前記比較回路は前記シフトレジスタの複数の所定の段から出力される複数の第１の乱数と、前記第１の乱数のそれぞれから予め定めたそれぞれが異なるビット数だけ離れた、前記乱数生成素子から発生される第２の乱数との値を比較してもよい。
【００１５】
なお、前記シリアル乱数のサンプルデータ数は任意であり、前記判定回路における良品と判定するための基準は検定を行なう乱数の総数に応じて正規分布に従う乱数検定方法を用いてもよい。
【００１６】
また、本発明の第２の態様による乱数検定回路において、前記比較回路は前記シフトレジスタの複数の所定の段から出力される複数の第１の乱数と、前記第１の乱数のそれぞれから予め定めたそれぞれが異なるビット数だけ離れた、前記乱数生成素子から発生される第２の乱数との値を比較してもよい。
【００１７】
なお、前記シリアル乱数のサンプルデータ数は任意であり、前記判定回路における良品と判定するための基準は検定を行なう乱数の総数に応じて正規分布に従う乱数検定方法を用いてもよい。
【００１８】
なお、前記乱数生成素子が組み込まれている半導体チップと同一の半導体チップに組み込まれていてもよい。
【発明の効果】
【００１９】
本発明によれば、検定に必要な乱数の総数に制限がなく、多量の検定に必要なデータ数を扱ったとしても回路規模が増大せず、小型化が可能な乱数検定回路を提供することができる。
【発明を実施するための最良の形態】
【００２０】
本発明の実施形態を説明する前に、本発明の概要を説明する。
【００２１】
先ず、各実施形態で用いられる検定方法と回路規模縮小に向けての考え方について説明する。
【００２２】
本発明の各実施形態における乱数の検定方法は、S. W. Golombによって定義された検定条件を用いている。上記の検定条件は、３つの条件から構成されているが、３つの条件のうち、以下に示す自己相関関数に関する条件を満たせば、他の２つの条件は満たすことが知られている（Solomon W. Golomb, SHIFT REGISTER SEQUENCES参照）。上記自己相関関数に関する条件は、自己相関関数Ｃ（ｔ）が乱数の総数ｎに対し、
【数１】
0004413858.tif 000006
で表され、上記式におけるKが正規分布に従うとき、乱数は真性乱数であると判定される。ここで、ｔは1 ≦ｔ≦ n−1 である。なお、記号「＊」は乗算記号を示している。
【００２３】
上記の検定方法における式（１）は周期性をもつ総和である。ここで周期性を持つ総和と述べたものは、例えば数列の母数をｎ、ｔ＝1であったとき、上記式（１）は
【数２】
0004413858.tif 000007
と表されることを意味する。このとき、シリアル乱数において式（２）におけるｎ*C（１）を求める過程を回路化した場合、２つの乱数に関する積の総和を求めるには、２つの乱数ＳｉとＳｉ+ｔは１方向にｔだけずれた乱数というだけではなく、検定を行なう乱数の総数がｎならば、２つの乱数の一方がＳnであるとき、他方が周期的に戻りＳ1とならなくてはならない。よって、式（２）におけるｎ*C（１）を求めるには少なくともＳ1のデータは何らかの方法で保持しなければならず、これはｔが大きくなるほど保持しなければならない数が増える上に、複数のｔについて検定を行うならば、検定に必要な乱数すべてを保持する必要が生じうる。
【００２４】
よって、式（２）を求めるためには、検定する乱数の総数（例えばn個）分の段数を持つシフトレジスタを用いてシリアル乱数をパラレル乱数に変換し、ある数だけ離れた乱数と値を比較するために、ＸＮＯＲゲートあるいはＸＯＲゲートもしくは１入力をNOT入力としたＡＮＤゲートをn個用い、さらにその出力値であるn個のパラレル乱数をシリアル乱数に変換するために再びｎ段のシフトレジスタを用いる必要がある。そのため検定する乱数の総数が増加するに従いゲート数は膨大になり、回路規模が拡大してしまう上に、この検定回路の大部分をこのn*C（ｔ）の計算部分が占めているという欠点がある。
【００２５】
そこで、本発明の各実施形態においては、上記の回路をより小型化するためには、上記のシリアル乱数からパラレル乱数への変換およびその逆変換の過程を削除することでそれを実現した。これを実現させるにあたり、「式（１）における２乱数の積の総和
【数３】
0004413858.tif 000008
は、周期性を持たない場合と周期性を持つ場合、すなわち、周期的にｔ個離れた相関をとる場合も、一方向的にｔ個離れた相関をとる場合も、双方の方法における総和に大きな相違はない」という仮定をおいた。ここで周期性を持たない場合における式（１）とは
【数４】
0004413858.tif 000009
で表される式である。
【００２６】
さらに、本発明の一実施形態において、乱数検定の判定基準値は正規分布に従う。総数ｎ個の乱数列S1，S2，・・・，Snが与えられているとき、ｔ個ずらした数の組（S1，S1+t），（S2，S2+t），・・・，（Sn，St）における相関係数ｒxy(ｔ) は次式で定義される。
【数５】
0004413858.tif 000010
但し、
【数６】
0004413858.tif 000011
である。この値の大小によって乱数列の規則性の有無を検定する方法を『おくれｔの系列相関検定』といい、統計的仮説検定の考えに基づいて行なわれる（脇本和昌著「乱数の知識」参照）。すなわち、ｒxy(ｔ) の値を求めて規則性の有無を判定する場合、ｒxy(ｔ) がどれくらいまでであれば乱数列の無規則性が保証されるかということがあいまいであるために、本発明の一実施形態においては以下のような検定基準を採用し、この検定基準を自己相関関数C(t)において当てはめることで、本発明の一実施形態における検定方法として適応させる。
【００２７】
本発明の一実施形態に係る検定方法として、複雑な式で表現される相関係数ｒxy(ｔ) の分布を、FisherのZ変換を用いることで、簡単化している。このFisherのZ変換は、相関係数ｒxy(ｔ) を
【数７】
0004413858.tif 000012
と変換し、さらに、ｕ＝Ｚ（Ｎ−３）1/2としたときのuが近似的に正規分布に従うことを利用している。ここで言う相関係数ｒxy(ｔ) は、式（１）における自己相関関数C(t)に対応しており、その詳細については以降に記述する。これより、この変換を利用し、本発明の一実施形態の検定基準を定め、正規分布の信頼率を９５％として信頼区間を決定する。
【００２８】
次に、式（４）のように表される相関係数ｒxy(ｔ) と自己相関関数C(t)の関係について述べる。式（１）を展開すると次の式で表すことができる。
【数８】
0004413858.tif 000013
【００２９】
式（５）の右辺の第1項目である式
【数９】
0004413858.tif 000014
についてまとめ、式（４）の相関係数の式に代入することで、式（４）は次の式（６）のように表すことができる。
【数１０】
0004413858.tif 000015
【００３０】
さらに、帰無仮説を『乱数が無規則に並んでいる』とすることで、この帰無仮説の下では
【数１１】
0004413858.tif 000016
とみなすことができることから、相関係数ｒxy(ｔ) と自己相関関数C(t)との関係は次のように表すことができる。
ｒxy(ｔ)  ＝  C(t)
【００３１】
これより、式（１）におけるKの範囲は次の式（７）に従うことになる。ただし、判定対象である乱数の総数ｎは任意である。
【数１２】
0004413858.tif 000017
【００３２】
また、本発明の一実施形態においては、この判定基準に基づき行ったが、あくまで一例であり、その他の基準値に置き換えて判定を行うことも可能である。乱数の総数ｎを横軸とし、自己相関係数C（ｔ）に乱数の総数ｎをかけた値Kを縦軸としたときの式（７）の判定基準について図８に示した。
【００３３】
本発明の一実施形態における検定基準値は、上記の式（７）より以下のように導く。総数ｎの乱数中のある1ビットの乱数SiとSiから予め定めたあるビット数ｔだけ離れた乱数Si+ｔが等しいときの発生頻度をｘ、また総数ｎの乱数中のある1ビットの乱数Siと、この乱数Siから予め定めたあるビット数ｔだけ離れた乱数Si+ｔとが異なるときの発生頻度をｙとおくとき、ｘ、ｙ、ｎの間には、ｘ＋ｙ＝ｎいう関係式が成り立ち、さらにｘ、ｙ、Ｋとの間にはＫ＝ｘ−ｙいう関係式が成り立つ。
【００３４】
したがって、本発明の一実施形態における検定基準値は、式（７）より、ｘの範囲で書き換えると次の式（８）のようになる。
【数１３】
0004413858.tif 000018
【００３５】
また、本発明の他の一実施形態における検定基準値は、式（７）より、ｙの範囲で書き換えると次の式（９）のようになる。
【数１４】
0004413858.tif 000019
【００３６】
また、本発明の更に他の実施形態における検定基準値は、総数ｎの乱数中のある1ビットの乱数Siと、この乱数Siから予め定めたあるビット数ｔだけ離れた乱数Si+ｔとが異なり、かつSiとSi+ｔのどちらの値が「１」あるいは「０」であるかが予め定められているため、このときカウントされた発生頻度をｚとすると、発生頻度ｚは発生頻度ｙの1/2となる。これより発生頻度ｚの検定基準値は、次の式（１０）のようになる。
【数１５】
0004413858.tif 000020
【００３７】
上記に述べた『周期的にｔ個離れた相関をとる場合と、一方向的にｔ個離れた相関をとる場合において、双方の方法における総和に大きな相違はない』という仮定の信頼性を確認するため、実際に両方の方法の検定をおこなった。検定に使用した乱数は、一般検定に合格した乱数列と不合格であった乱数列の２種類の乱数列を用意し（DONALD E. KNUTH, The Art of Computer Programming参照）、上記の仮定中で述べた周期性を持つ乱数を評価する方法と、一方向にのみずれた周期性を持たない乱数を評価する方法とで、この２種類の乱数列を評価し、一般検定に合格した乱数列に対し合格の判定を、もう一方の一般検定に不合格であった乱数列に対し不合格の判定をすることで、その判定法は信頼できるものと判断する。
【００３８】
図９は周期的および非周期的評価方法で判定した結果について、縦軸を棄却された検定結果の総数、横軸を乱数の総数ｎとしたときのプロットしたものである。図９（ａ）は一般検定に合格した乱数列を周期的および非周期的評価方法で判定した結果であり、図９（ｂ）は一般検定に不合格であった乱数列を周期的および非周期的評価方法で判定した結果である。
【００３９】
図９（a）および図９（ｂ）から、一般検定に合格であった乱数列および不合格であった乱数列を、周期的および非周期的評価方法で判定した際、どちらにしても、周期的および非周期的のどちらの検定方法で検定しようと、検定方法によってその検定結果が大きく覆るほどの振る舞いの差はみられないことがわかる。よって、上記の仮定を棄却するには及ばないことを意味する。
【００４０】
また、本発明の更なる他の実施形態における検定方法は、上記の検定総数に対する棄却された検定結果の割合と、乱数の総数ｎとの関係性に基づくものである。この検定方法において、総数ｎの乱数中のある１ビットの乱数に対して比較するもう一方の１ビットの乱数との距離（ビット数）をｔとし、各ｔにおいて相関係数を用いる前述した検定を行ったとき、検定に合格するｔの総数Ｐは０からｎ−１までの範囲で、それぞれの値になる確率は等確率である。これより、検定の合格率はP/（ｎ−１）と表すことができ、よって検定の合格率はχ２分布に従う。
【００４１】
例えば、合格率は０から１まで範囲を２５区分割し、そのうち合格率が０．９５以上、つまり９５％以上のｔが検定に通るという基準を設けたとする。乱数の総数をｎとすると、とり得るｔの値はｎ−１であることから、検定に合格するｔの総数Ｐがχ２（ｎ−１，０．０５）以上のとき検定に合格したと判定する。
【００４２】
ただし、これはあくまで一例であり、χ２分布の危険率の設け方は利用者の判断に任せ、確定するものではない。ただし、検定数に対する棄却された検定結果の割合は少ないほどよいのは当然である。上述した文献（Solomon W. Golomb, SHIFT REGISTER SEQUENCES）における検定方法は、乱数の総数ｎが乱数列において、２乱数の距離ｔについて可能な全てのｔにおいて検定が合格することが検定合格の条件としている。
【００４３】
これにより、上記のシリアル乱数からパラレル乱数への変換およびその逆変換の過程に必要な回路部分を削除でき、検定に要する乱数の総数nに回路規模を左右されない小型回路を実現した。その具体例を実施形態で説明する。
【００４４】
上記式（３）で示した総和を用い、検定を行なうことへの妥当性を示すことができたことから、式（３）を採用した自己相関関数C(t)について、上記の検定方法および検定基準を用いた乱数検定回路を、以下の第1乃至第９実施形態で説明する。
【００４５】
以下、図面を参照して、本発明の実施形態を説明する。以下の図面の記載において、同一または類似の部分には同一または類似の符号を付している。
【００４６】
本発明の第１乃至第３実施形態は、上記乱数検定方法を採用した式（１）、式（８）に基づく判定基準に従う乱数検定回路であり、式（１）における乱数Siと乱数Si+tとが、等しい場合の出現度数をカウントし、これを規定値と比較することによって乱数の一様性を検証する乱数検定方法を採用している。
【００４７】
（第１実施形態）
本発明の第１実施形態による乱数検定回路を図１に示す。本実施形態の乱数検定回路は、シフトレジスタ１と、ＡＮＤゲート２、３、４と、ＸＮＯＲ（排他的ＮＯＲ）ゲート６と、カウンタ回路７と、比較回路８と、カウンタ回路９と、比較回路１０と、制御回路５０とを備えている。なお、ＡＮＤゲートの数は検定基準で説明したｔに応じて変更する。
【００４８】
乱数生成素子より発生したシリアル乱数であるランダム信号ＲＳｉを、乱数検定回路の入力端子１０１に入力することにより、ランダム信号ＲＳｉと、ランダム信号ＲＳｉがあるクロック数ｔだけ遅れたランダム信号ＲＳｉ+ｔをＸＮＯＲゲート６に入力し、ある時刻において、ランダム信号ＲＳｉとランダム信号ＲＳｉ+ｔとが等しい場合にＸＮＯＲゲート６は「１」を出力する。このとき、ランダム信号ＲＳｉ+ｔはシフトレジスタ1を介して生成され、シフトレジスタの段数はｔに応じて決定する。また、複数のｔについて検定を行なう場合（図１では、ｔはｔ＝１、３、４の場合）には、その複数個のｔのうち、最大のｔであるｔｍａｘ段（図１ではｔmax  ＝４）のシフトレジスタ１を用意し、それぞれのｔに対応する段からランダム信号ＲＳｉ+ｔを出力し、ＸＮＯＲゲート６の１入力とする。
【００４９】
選択するｔの個数ｄは１≦ｄ≦ｎ−１の範囲を持つ。ただし、それぞれのｔに対応するシフトレジスタ１からの出力を２入力ＡＮＤゲート２、３、４の一方の入力に接続し、ＡＮＤゲート２、３、４の他方の入力に制御回路５０の出力端子１０３、１０４、１０５を介して生成された信号ON１、ON２、ON３をそれぞれ接続する。そして、これらのＡＮＤゲート２、３、４の出力を３入力ＯＲゲート５へ入力することで、異なるｔの値を持つランダム信号ＲＳｉ+ｔが、時間により順にＯＲゲート５の出力値、すなわちＸＮＯＲゲート６の１入力となる。ただし、ここで述べたＡＮＤゲートの個数とＯＲゲートの入力端子数は検定に用いるｔの個数と等しくなる。
【００５０】
本発明の第１実施形態による乱数検定回路の動作のタイミングチャートを図２に示す。この図２に示すタイミングチャートより、制御信号ON１、ON２、ON３は、それぞれのどれか１つの制御信号が「１」のときには他の２つの制御信号は必ず「０」となり、「１」となる区間はｎ（＝乱数の総数）クロックである。また、制御信号ON１、ON２、ON３が「１」となる順は任意である。
【００５１】
ＸＮＯＲゲート６の出力を受けるクロックイネーブル入力CEと、入力端子１０２からの基準クロックＣＬＫ＿０を受けるクロック入力Cと有するカウンタ回路７は、クロックイネーブル入力CEに入力される信号の値「１」を基準クロックＣＬＫ＿０のタイミング毎にカウントし、カウント値を出力する。またカウンタ回路７は検定を行う乱数の総数がｎであったときｎ＋１クロック毎に、制御回路５０の出力端子１０６からのリセット信号ＣＬＫ＿１によりリセットされる。
【００５２】
カウンタ回路７によりカウントされた値Ａは、比較回路８において予め定められた基準値と比較される。カウンタ回路７によりカウントされた値Ａが予め定めた基準値の範囲外となった場合、比較回路８は、カウンタ回路７がリセットされてから次にリセットされるまでに、必ずあるクロック間で「１」を出力する。
【００５３】
制御信号ON２と制御信号ON３とが「１」のときについても、制御信号ON１が「１」のときと同様に、カウンタ回路７によってカウントされた値Ａと予め定められた基準値との比較を比較回路８で行なう。比較回路８の出力をカウンタ回路９のクロック入力Cに入力し、クロックイネーブル入力CEには制御回路５０の出力端子１０８を介して生成された信号ON４を入力する。これより、カウンタ回路９の出力Qを比較回路１０において予め定めた基準値と比較し、出力端子１０９から判定信号を出力する。これにより、予め定めた総数ｎ個の乱数は、スタート信号ＣＬＫ＿２から（ｄｎ+2ｄ+1）クロック後に検証することができる。ただし、ｄは選択したｔの数であり、任意の数である。例えば、図１における第１実施形態の乱数検定回路ならば、ｄ＝３である。
【００５４】
従来は乱数列中における２つの乱数の比較を周期的に行なうために、乱数列全体および部分を保持する必要があった。
【００５５】
しかし、本実施形態においては、周期的に比較を行なわずとも、ある乱数Siと、時系列的にあるクロック数（ここではｔクロックとする）ずれた乱数（Si+tもしくはSi-t）との比較の結果は、より真性乱数に近いほど同等である、とみなすことにより、２乱数を比較する際に必要であった保持回路を排除することができ、検定に必要なデータ数に関わらず、回路規模が拡大するのを防止することができるとともに小型化することができる。
【００５６】
（第２実施形態）
本発明の第２実施形態による乱数検定回路を図３に示し、本実施形態による乱数検定回路の動作のタイミングチャートを図４に示す。本実施形態の乱数検定回路は、図１に示す第１実施形態の乱数検定回路のカウンタ回路９、比較回路１０の代わりに、Ｄ型のフリップフロップ回路１１（以下、Ｄ−ＦＦ１１ともいう）と、ラッチ回路１２、１３、１４、１５、１６、１７と、加算器１８と、比較回路１９とを設けた構成となっている。ただし、図３に示した回路は選択したｔが３つのときである。シフトレジスタ１、ＡＮＤゲート２、３、４、ＯＲゲート５、ＸＮＯＲゲート６、およびカウンタ回路７は第１実施形態と同等の動作をする。
【００５７】
カウンタ回路７よりカウントされた値Ａは、比較回路８により、予め定められた基準値と比較し、Ｄ−ＦＦ１１によりＣＬＫ＿１から「１」の信号が入力されるまでその結果が保持される。
【００５８】
Ｄ−ＦＦ９の出力Qは、ラッチ回路１２〜１４のクロック入力ＣＫに接続され、ラッチ回路１０〜１２それぞれにおいて、制御回路５０を介して生成された信号ＯＮ１〜ＯＮ３が「１」のとき、ラッチ回路１２〜１４のクロック入力ＣＫの立ち上がりエッジにより、比較回路８による比較の結果を一時的に保持される。比較回路８を介した出力は、カウンタ回路７よりカウントされた値Ａが予め定めた基準値の範囲外となった場合、カウンタ回路７がリセットされてから次にリセットされるまでに、必ずあるクロック間で「１」を出力する。
【００５９】
ラッチ回路１２〜１４の出力をそれぞれラッチ回路１５〜１７のクロック入力ＣＫに接続し、ラッチ回路１５〜１７で制御回路５０を介して生成された信号ＣＬＫ＿２によってリセットされるまで、その比較回路による比較の結果を保持する。
【００６０】
ラッチ回路１５〜１７それぞれの出力を加算器１８の入力に接続し、加算器１８は予め定めた複数の２乱数の距離ｔのうち、自己相関関数が正規分布範囲外と判定されたｔの数を出力する。加算器１８により出力された値が、予め定めた判定基準値内もしくは基準値外であることを比較回路１９を介して判定し、判定信号を出力する。これにより、予め定めた総数ｎ個の乱数は、スタート信号ＣＬＫ＿２から（ｄｎ+2ｄ+1）クロック後に検証することができる（ただし、ｄは選択したｔの数であり、例えば、図３における第２実施形態ならば、ｄ＝３）。
【００６１】
以上説明したように、本実施形態も第１実施形態と同様に、２乱数を比較する際に必要であった保持回路を排除することができ、検定に必要なデータ数に関わらず、回路規模が拡大するのを防止することができるとともに小型化することができる。
【００６２】
（第３実施形態）
次に、本発明の第３実施形態による乱数検定回路を図５（ａ）、（ｂ）に示し、本実施形態による乱数検定回路の動作のタイミングチャートを図６に示す。
【００６３】
本実施形態の乱数検定回路は、図５（ａ）に示すように、回路２８ａ、２８ｂ、２８ｃが並列に接続された回路２５と、加算器２９と、比較回路３０と、制御回路５２とを備えている。並列に接続された回路２８ａ、２８ｂ、２８ｃは、それぞれ図５（ｂ）に示す回路２８と同じ構成であり、シフトレジスタの段数のみが異なっている。ただし、図５（ａ）に示した回路は選択したｔが３つのときであり、並列させる回路２８の数は選択するｔに等しい。図５（ｂ）に示す回路２８は、シフトレジスタ２０と、ＸＮＯＲゲート２１と、カウンタ回路２２と、比較回路２３と、ラッチ回路２４とを備えている。
【００６４】
回路２８において、乱数生成素子より発生したシリアル乱数であるランダム信号ＲＳｉを回路入力部である端子１０１に入力することにより、ランダム信号ＲＳｉと、このランダム信号ＲＳｉがシフトレジスタ２０を通ることによって得られる、あるクロック数遅れたランダム信号ＲＳｉ+ｔとがＸＮＯＲゲート２１の入力部に入力され、両ランダム信号が等しいときにＸＮＯＲゲート２１が「１」を出力する。シフトレジスタの段数は、式（１）におけるｔに対応し、予め設定する。
【００６５】
カウンタ回路２２は、ＸＮＯＲゲート２１の出力をクロックイネーブル入力ＣＥで受け、入力端子１０２を介して送られてくる基準クロックＣＬＫ＿０をクロック入力ＣＫで受けることで、ＸＮＯＲゲート２１の出力信号の値「１」をクロック信号ＣＬＫ＿０のタイミング毎にカウントし、カウント値を出力する。
【００６６】
カウンタ回路２２の出力であるカウント値Ａは、比較回路２３において予め定められた基準値と比較される。比較回路２３の出力信号はラッチ回路２４のクロック入力ＣＫに入力される。ラッチ回路２４のデータ入力Dを常に「１」とすることで、比較回路２３より得られた基準値との比較の結果をラッチする。すなわち、入力端子１０３を介して送られて来るスタート信号ＣＬＫ＿２の立下りエッジを１クロック目とすると、１〜ｎクロック目までの時刻の間に比較回路２３の出力信号が「１」となれば、カウンタ回路２２を介して得られたカウント値Ａが、予め定めた基準値の範囲外であると判断される。
【００６７】
これらより、異なる段数のシフトレジスタ２０を持つ回路２８ａ、２８ｂ、２８ｃを、図５（ａ）に示すように並列に接続することで、複数の異なるｔにおける検定を、回路２８ａ、２８ｂ、２８ｃそれぞれで実行し、これら回路２８ａ、２８ｂ、２８ｃの出力を加算器２９に入力して加算し、その加算結果を比較回路３０に入力することで、比較回路３０は、予め定めた基準に相当する値と加算器２９より出力された値とを比較し、判定信号を出力する。これにより、予め定めた総数ｎ個の乱数は、スタート信号ＣＬＫ＿２からｎクロック後に検証することができる。
【００６８】
以上説明したように、本実施形態も第１実施形態と同様に、２乱数を比較する際に必要であった保持回路を排除することができ、検定に必要なデータ数に関わらず、回路規模が拡大するのを防止することができるとともに小型化することができる。
【００６９】
以下に説明する本発明の第４乃至第６実施形態による乱数検定回路は、式（１）および式（９）に基づく判定基準に従う乱数検定回路であり、式（１）におけるSiとSi+tが異なる場合の出現度数をカウントし、これを規定値と比較することによって乱数の一様性を検証するように構成されている。
【００７０】
（第４実施形態）
本発明の第４実施形態による乱数検定回路を図７に示す。本実施形態の乱数検定回路は、図１に示した第１実施形態の乱数検定回路において、ＸＮＯＲゲート６を図７（ａ）に示したＸＯＲゲート３１に変更した構成となっている。
【００７１】
ＸＮＯＲゲート６をＸＯＲゲート３１と入れ替えることにより、入力信号であるランダム信号ＲＳｉと、このランダム信号ＲＳｉがシフトレジスタ１を通ることによってあるクロック数遅れたランダム信号ＲＳｉ+ｔとをＸＯＲゲート３１に入力することにより、ＸＯＲゲート３１は両信号が異なる場合に「１」を出力する。そして、それぞれがＲＳｉとＲＳｉ+ｔとからなるｎ個の組において、ＲＳｉとＲＳｉ+ｔとが異なる組の数をカウンタ回路７でカウントする。ここまでの回路動作は基本的には第１実施形態の動作と同様である。
【００７２】
本実施形態においては、カウンタ回路７によりカウントされた値Ｂを予め定めた基準値と比較回路８を介して比較する。よって、比較回路８での比較の値が異なることを除けば、基本的には第１実施形態と同様の動作で検定が可能である。
【００７３】
以上説明したように、本実施形態も第１実施形態と同様に、２乱数を比較する際に必要であった保持回路を排除することができ、検定に必要なデータ数に関わらず、回路規模が拡大するのを防止することができるとともに小型化することができる。
【００７４】
（第５実施形態）
次に、本発明の第５実施形態による乱数検定回路を説明する。本実施形態の乱数検定回路は、図３に示す第２実施形態の乱数検定回路において、ＸＮＯＲゲート６を図７（ａ）に示すＸＯＲゲート３１に変更した構成となっている。
【００７５】
本実施形態においても、カウンタ回路７によりカウントされた値Ｂを予め定めた基準値と比較回路８において比較する。このため、比較回路８での比較する値が異なることを除けば、基本的には第２実施形態と同様の動作で検定が可能である。
【００７６】
これにより、本実施形態も第２実施形態と同様に、２乱数を比較する際に必要であった保持回路を排除することができ、検定に必要なデータ数に関わらず、回路規模が拡大するのを防止することができるとともに小型化することができる。
【００７７】
（第６実施形態）
次に、本発明の第６実施形態による乱数検定回路を説明する。本実施形態の乱数検定回路は、図５に示す第３実施形態の乱数検定回路において、ＸＮＯＲゲート２１を図７（ａ）におけるＸＯＲゲート３１に変更した構成となっている。
【００７８】
第６実施形態において、カウンタ回路２２によりカウントされた値Ｂを予め定めた基準値と比較回路２３を介して比較する。このため、比較回路２３での比較する値が異なることを除けば、基本的には第３実施形態と同様の動作で検定が可能である。
【００７９】
これにより、本実施形態も第３実施形態と同様に、２乱数を比較する際に必要であった保持回路を排除することができ、検定に必要なデータ数に関わらず、回路規模が拡大するのを防止することができるとともに小型化することができる。
【００８０】
（第７〜９実施形態）
以下に説明する本発明の第７乃至第９実施形態による乱数検定回路は、式（１）および式（１０）に基づく判定基準に従う乱数検定回路であり、式（１）におけるSiとSi+tが、それぞれ「１」と「０」である場合の出現度数をカウントし、これを規定値と比較することによって乱数の一様性を検証するように構成されている。
【００８１】
（第７実施形態）
次に、本発明の第７実施形態による乱数検定回路を説明する。本実施形態の乱数検定回路は、図１に示す第１実施形態の乱数検定回路において、ＸＮＯＲゲート６を、２入力ＡＮＤゲートの１入力をNOT入力とした図７（ｂ）に示すＡＮＤゲート３２に変更した構成となっている。
【００８２】
第７実施形態において、カウンタ回路７によりカウントされた値Xを予め定めた基準値と比較回路８を介して比較する。比較回路８での比較する値が異なることを除けば、基本的には第１実施形態と同様の動作で検定が可能である。
【００８３】
これにより、本実施形態も第１実施形態と同様に、２乱数を比較する際に必要であった保持回路を排除することができ、検定に必要なデータ数に関わらず、回路規模が拡大するのを防止することができるとともに小型化することができる。
【００８４】
（第８実施形態）
次に、本発明の第８実施形態による乱数検定回路を説明する。本実施形態の乱数検定回路は、図３に示す第２実施形態の乱数検定回路において、ＸＮＯＲゲート６を、２入力ＡＮＤゲートの１入力をNOT入力とした図７（ｂ）に示すＡＮＤゲート３２に変更した構成となっている。
【００８５】
第８実施形態において、カウンタ回路７によりカウントされた値Xを予め定めた基準値と比較回路８を介して比較する。第８実施形態における回路動作は、比較回路８での比較する値が異なることを除けば、基本的には第２実施形態と同様の動作で検定が可能である。
【００８６】
これにより、本実施形態も第２実施形態と同様に、２乱数を比較する際に必要であった保持回路を排除することができ、検定に必要なデータ数に関わらず、回路規模が拡大するのを防止することができるとともに小型化することができる。
【００８７】
（第９実施形態）
次に、本発明の第９実施形態による乱数検定回路を説明する。本実施形態の乱数検定回路は、図５に示す第３実施形態の乱数検定回路において、ＸＮＯＲゲート２１を、２入力ＡＮＤゲートの１入力をNOT入力とした図７（ｂ）に示すＡＮＤゲート３２に変更した構成となっている。
【００８８】
第９実施形態において、カウンタ回路２２によりカウントされた値Xを予め定めた基準値と比較回路２３を介して比較する。比較回路２３での比較する値が異なることを除けば、基本的には第３実施形態と同様の動作で検定が可能である。
【００８９】
これにより、本実施形態も第３実施形態と同様に、２乱数を比較する際に必要であった保持回路を排除することができ、検定に必要なデータ数に関わらず、回路規模が拡大するのを防止することができるとともに小型化することができる。
【００９０】
なお、上記第１乃至第９実施形態の乱数検定回路は、乱数を発生する乱数発生素子が形成されている半導体チップ上に組み込んでもよいし、別の半導体チップに設けてもよい。
【００９１】
既に述べた第１乃至第９実施形態による乱数検定回路については、比較回路８および比較２２において、基準範囲外の時に「１」を出力する回路構成をとっているが、範囲内であるときに「１」を出力する回路構成をとることも可能である。このとき、既に述べた第２、第３、第５、第６、第８、第９実施形態による乱数検定回路については、ラッチ回路１３〜１５及び２１の出力を、QではなくQバーに変更することで、範囲内であるときに「１」を出力する回路構成をとることが可能となる。
【００９２】
既に述べた第１乃至第９実施形態による乱数検定回路については、乱数列中のある１ビットの乱数に対し距離ｔだけ離れた乱数に対し、乱数検定を行い、且つ、検定を行ったｔの数と合格数の割合に対する乱数列との関係おける検定を組み合わせて行っているが、すべてのｔにおいて合格した場合のみ合格とする場合には、既に述べた第２、３、５、６、８、９実施形態による乱数検定回路については、加算器１８と比較回路１９あるいは加算器２９と比較回路３０の部分をＮＯＲ回路もしくはＡＮＤ回路に置き換えることが可能である。
【図面の簡単な説明】
【００９３】
【図１】本発明の第１実施形態による乱数検定回路を示す図。
【図２】第１実施形態による乱数検定回路の動作タイミングチャート。
【図３】本発明の第２実施形態による乱数検定回路を示す図。
【図４】第２実施形態による乱数検定回路の動作タイミングチャート。
【図５】本発明の第３実施形態による乱数検定回路を示す図。
【図６】第３実施形態による乱数検定回路の動作タイミングチャート。
【図７】本発明の第４乃至第９実施形態による乱数検定回路に用いられるゲート回路を示す図。
【図８】乱数検定基準に係る例として、正規分布に従う検定基準領域について示した図。
【図９】周期的評価方法および非周期的評価方法の２つの検定方法にて検定を行なったとき、乱数の総数と棄却されるｔの数の関係を説明する図。
【図１０】従来の乱数検定回路を説明する図。
【符号の説明】
【００９４】
１  シフトレジスタ
２  ＡＮＤゲート
３  ＡＮＤゲート
４  ＡＮＤゲート
５  ＯＲゲート
６  ＸＮＯＲゲート
７  カウンタ回路
８  比較回路
９  カウンタ回路
１０  比較回路
１１  Ｄ型フリップフロップ回路
１２〜１７  ラッチ回路
１８  加算器
１９  比較回路
２０  シフトレジスタ
２１  ＸＮＯＲゲート
２２  カウンタ回路
２３  比較回路
２４  ラッチ回路
２９  加算器
３０  比較回路
５０  制御回路
５２  制御回路
【図１】
0004413858.tif 000025
【図２】
0004413858.tif 000026
【図３】
0004413858.tif 000027
【図４】
0004413858.tif 000028
【図５】
0004413858.tif 000029
【図６】
0004413858.tif 000030
【図７】
0004413858.tif 000031
【図８】
0004413858.tif 000032
【図９】
0004413858.tif 000033
【図１０】
0004413858.tif 000034