(57)【要約】【課題】予測不可能性および再現不可能性を向上させることが可能な乱数発生装置を提供する。【解決手段】本発明によれば、記憶素子と、前記記憶素子に対して準安定状態を生成する準安定状態生成部と、前記記憶素子のデータ出力を値として累積し、累積した前記データ出力値を乱数として出力する出力値累積部と、を備える乱数発生装置が提供される。本発明に係る乱数発生装置は、準安定状態にある記憶素子からのデータ出力を値として累積し、この累積値を用いて乱数を生成するため、生成した乱数の予測不可能性および再現不可能性を向上させることが可能である。【選択図】図１
2009053906.tif 000002
【特許請求の範囲】
【請求項１】
記憶素子と、
前記記憶素子に対して準安定状態を生成する準安定状態生成部と、
前記記憶素子のデータ出力を値として累積し、累積した前記データ出力値を乱数として出力する出力値累積部と、
を備えることを特徴とする、乱数発生装置。
【請求項２】
前記準安定状態生成部は、
少なくとも２以上の非同期のクロック入力を用いて短パルスを発生させ、
前記短パルスを前記記憶素子のゲート入力へと供給する
ことを特徴とする、請求項１に記載の乱数発生装置。
【請求項３】
前記準安定状態生成部は、
１つのクロック入力と、遅延回路とを組み合わせて用いることで短パルスを発生させ、
前記短パルスを前記記憶素子のゲート入力へと供給する
ことを特徴とする、請求項１に記載の乱数発生装置。
【請求項４】
前記記憶素子は、ラッチである
ことを特徴とする、請求項１に記載の乱数発生装置。
【請求項５】
前記記憶素子は、フリップフロップである
ことを特徴とする、請求項１に記載の乱数発生装置。
【請求項６】
前記乱数発生装置は、
当該乱数発生装置の動作または非動作を制御する制御部を更に備える
ことを特徴とする、請求項１に記載の乱数発生装置。
【請求項７】
前記出力値累積部は、フリップフロップによるカウンタであり、
前記出力値累積部は、任意の期間前記記憶素子からのデータ出力を値として記憶する
ことを特徴とする、請求項１に記載の乱数発生装置。
【請求項８】
前記乱数発生装置は、
準安定状態にある前記記憶素子のデータ出力を安定させるデータ出力安定化部として、１または直列接続された複数のフリップフロップを更に備え、
前記データ出力安定化部は、
前記出力値累積部と同一のクロックで動作し、
前記記憶素子のデータ出力を入力として受け取り、
安定したデータ出力を前記出力値累積部のデータ入力へと供給することでデータを安定させる
ことを特徴とする、請求項７に記載の乱数発生装置。
【請求項９】
記憶素子と、前記記憶素子を準安定状態にさせる準安定状態生成部と、前記記憶素子のデータ出力を値として累積し、累積した前記データ出力値を乱数として出力する出力値累積部と、を備える乱数発生装置を複数備え、
任意のビット数の真性乱数を生成する
ことを特徴とする、乱数発生装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、乱数発生装置に関する。
【背景技術】
【０００２】
暗号やデジタル署名などといった現代の情報セキュリティ技術は、情報の機密性や正真性を確保するために、他者から不可視な値として乱数を利用する。乱数には疑似乱数と真性乱数があるが、真性乱数は予測不可能かつ再現不可能という性質を持つことから情報セキュリティ技術分野において有用であり、近年その需要が高まっている。また、上述の用途の他にも、乱数は、科学技術計算におけるシミュレーションやゲームなど、広範な分野に利用される。
【０００３】
真性乱数を得る手段として、放射線や熱雑音といった自然現象の乱雑さを利用する方法や、キーボードやマウスといった入力装置を通じて得られるコンピュータ操作者の振る舞いの乱雑さを利用する方法などがある。しかしながら、これらの方法は、真性乱数を得るためにデジタル回路よりも比較的大きな装置を必要とする。また、これらの方法は、場合によっては外乱に弱く、外界から乱数を操作される可能性がある。
【０００４】
通常のデジタル回路上で発生し得る乱雑さを備えた現象に、ラッチやフリップフロップなどの記憶素子の準安定状態がある。これらの記憶素子に対し、入力信号としての仕様に違反した短パルスを与えるなどすると、出力信号が、デジタル信号として安定しない準安定状態になることがある。準安定状態にある出力信号をデジタル信号として参照すると、あるときはＬ、あるときはＨといったように、乱雑さを持つ値が得られる。通常のデジタル回路だけで構成される真性乱数発生装置は、小型で消費電力が小さく、また外乱に強いという利点がある。ただし、準安定状態は一般に発生確率が低く、また短時間で解消してしまうため、効果的に真性乱数へと変換するための何らかの手段が要求される。
【０００５】
準安定状態またはそれに準じた不安定な状態を利用した乱数発生装置または手段として、特許文献１、特許文献２、特許文献３、特許文献４、および特許文献５などがある。
【０００６】
【特許文献１】特開２００２−３６６３４７号公報
【特許文献２】特開２００３−１５０３７２号公報
【特許文献３】特表２００３−５２６１５１号公報
【特許文献４】特開２００５−１８２５１号公報
【特許文献５】特表２００５−５３０２７０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記特許文献１〜５に記載の方法は、単一の準安定状態での出力値を乱数へと変換する点に問題がある。準安定状態は単一では充分な乱雑さを備えているとはいい難く、単一の準安定状態での出力値をそのまま乱数として用いると、予測不可能性や再現不可能性が不十分であるなどの不都合がある。
【０００８】
そこで、本発明は、このような問題に鑑みてなされたもので、その目的は、予測不可能性および再現不可能性を向上させることが可能な、新規かつ改良された乱数発生装置を提供することにある。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本願発明者が鋭意研究を行った結果、以下に示す内容に想到した。すなわち、準安定状態にすることを意図した記憶素子のデータ出力の値を、カウンタなどを用いて累積させ、この動作を任意の期間継続して行わせると、カウンタには期間内に発生したすべての準安定状態の乱雑さが累積される。ある単一の準安定状態が備える値の乱雑さは不足であっても、期間を充分に長くし乱雑さを累積させることで、累積値の乱雑さを事実上最大にできる。この方法を用いることで、良質な真性乱数を得ることができることに想到した。
【００１０】
すなわち、上記課題を解決するために、本発明のある観点によれば、記憶素子と、前記記憶素子に対して準安定状態を生成する準安定状態生成部と、前記記憶素子のデータ出力を値として累積し、累積した前記データ出力値を乱数として出力する出力値累積部と、を備える乱数発生装置が提供される。
【００１１】
かかる構成によれば、準安定状態生成部は、記憶素子に対して準安定状態を生成し、出力値累積部は、準安定状態にある記憶素子からのデータ出力を値として累積し、累積したデータ出力値を乱数として出力する。本発明に係る乱数発生装置は、準安定状態にある記憶素子からのデータ出力を値として累積し、この累積値を用いて乱数を生成するため、生成した乱数の予測不可能性および再現不可能性を向上させることができる。
【００１２】
前記準安定状態生成部は、少なくとも２以上の非同期のクロック入力を用いて短パルスを発生させ、前記短パルスを前記記憶素子のゲート入力へと供給してもよい。
【００１３】
前記準安定状態生成部は、１つのクロック入力と、遅延回路とを組み合わせて用いることで短パルスを発生させ、前記短いパルスを前記記憶素子のゲート入力へと供給してもよい。
【００１４】
前記記憶素子は、ラッチであってもよく、フリップフロップであってもよい。
【００１５】
前記乱数発生装置は、当該乱数発生装置の動作または非動作を制御する制御部を更に備えてもよい。
【００１６】
前記出力値累積部は、フリップフロップによるカウンタであり、前記出力値累積部は、任意の期間前記記憶素子からのデータ出力を値として記憶してもよい。
【００１７】
前記乱数発生装置は、準安定状態にある前記記憶素子のデータ出力を安定させるデータ出力安定化部として、１または直列接続された複数のフリップフロップを更に備え、前記データ出力安定化部は、前記出力値累積部と同一のクロックで動作し、前記記憶素子のデータ出力を入力として受け取り、安定したデータ出力を前記出力値累積部のデータ入力へと供給することでデータを安定させてもよい。
【００１８】
上記課題を解決するために、本発明の別の観点によれば、記憶素子と、前記記憶素子を準安定状態にさせる準安定状態生成部と、前記記憶素子のデータ出力を値として累積し、累積した前記データ出力値を乱数として出力する出力値累積部と、を備える乱数発生装置を複数備え、任意のビット数の真性乱数を生成する乱数発生装置が提供される。
【発明の効果】
【００１９】
本発明によれば、準安定状態にある記憶素子からのデータ出力を値として累積し、この累積値を用いて乱数を生成するため、生成した乱数の予測不可能性および再現不可能性を向上させることが可能である。
【発明を実施するための最良の形態】
【００２０】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００２１】
（第１の実施形態）
以下に、図１〜図４を参照しながら、本発明の第１の実施形態に係る乱数発生装置１０について、詳細に説明する。図１は、本実施形態に係る乱数発生装置１０を説明するための回路図であり、図２は、本実施形態における記憶素子の準安定状態を説明するための説明図であり、図３は、本実施形態に係る乱数発生装置１０のタイミングチャートの一例である。また、図４は、本実施形態に係る準安定状態生成部の変形例を説明するための回路図である。
【００２２】
本実施形態に係る乱数発生装置１０は、例えば、記憶素子１０１と、準安定状態生成部１０３と、累積値取得部１３１と、を主に備え、１ビットの真性乱数を発生させることが可能である。
【００２３】
記憶素子の一例であるラッチ１０１は、準安定状態にすることを意図した記憶素子である。記憶素子であるラッチ１０１のデータ出力は、後述する同期化回路部１２１に入力される。また、ラッチ１０１からのデータ出力の値Ｑ１は、ＮＯＴ素子１１５を経てラッチ１０１のデータ入力へとフィードバックされているため、ラッチ１０１は、ゲート入力の値にしたがって自状態を反転させる動作を繰り返し行う。
【００２４】
ここで、記憶素子であるラッチ１０１に対して、入力信号としての仕様に違反した短パルス等を入力するなどすると、ラッチ１０１からの出力信号がデジタル信号として安定しない準安定状態になることが知られている。この準安定状態について、図２を参照しながら詳細に説明する。
【００２５】
図２は、ラッチのゲート入力（Ｇ）に対して、セットアップ時間およびホールド時間の仕様を満たさない短パルスが入力され、準安定状態が発生した状況を説明するためのタイミングチャートの一例である。
【００２６】
図２に示したように、ラッチのゲート入力（Ｇ）に対して、計３回の短パルス１が入力された結果、ラッチのデータ出力（Ｑ）には、Ｈｉｇｈ出力とＬｏｗ出力とが激しく入れ替わるような計２回の準安定状態３が発生している。
【００２７】
ラッチ１０１に対して上記のような準安定状態を発生させるために、本実施形態に係る乱数発生装置１０では、第１入力クロック（図１におけるＣＬＫ１）１０９、第２入力クロック（図１におけるＣＬＫ２）１１１および入力制御信号（図１におけるＣＴＲＬ）１１３を、準安定状態生成部である論理回路部１１３へと入力することにより、上述の入力信号としての仕様に違反した短パルスを生成する。
【００２８】
本実施形態に係る準安定状態生成部である論理回路部１０３は、ＸＯＲ素子１０５と、ＡＮＤ素子１０７とから構成され、本実施形態に係る記憶素子であるラッチ１０１を準安定状態にさせるための短パルスを生成する。
【００２９】
ＸＯＲ素子１０５には、第１入力クロック（ＣＬＫ１）１０９と第２入力クロック（ＣＬＫ２）１１１とが入力され、これらのクロック信号の排他的論理和がＸＯＲ素子１０５から出力される。ＸＯＲ素子１０５から出力された出力データおよび入力制御信号（ＣＴＲＬ）１１３は、ＡＮＤ素子１０７に入力され、これら２種類の信号の論理積がＡＮＤ素子１０７から出力される。
【００３０】
ここで、ＡＮＤ素子１０７に入力される入力制御信号（ＣＴＲＬ）１１３がＨｉｇｈのとき、ラッチ１０１のゲート入力（Ｇ）には、２つの入力クロックの排他的論理和が入力される。この際、第１入力クロック（ＣＬＫ１）１０９および第２入力クロック（ＣＬＫ２）１１１の間に自明な同期関係がなければ、ラッチ１０１のゲート入力（Ｇ）には周期的に短パルスが入力され、結果としてラッチ１０１が準安定状態になることが促される。
【００３１】
図３に示したタイミングチャート上のゲート入力波形（Ｇ）は、計５回の短パルス１が入力されていることを表しており、その結果、ラッチ１０１のデータ出力波形Ｑ１は、計３回準安定状態３になっている。ここで、論理回路１０３に入力される第１入力クロック（ＣＬＫ１）１０９および第２入力クロック（ＣＬＫ２）１１１の周波数が高いほど短パルス入力が頻繁に行われ、準安定状態の発生確率が高まるため、効果的である。
【００３２】
また、ＡＮＤ素子１０７に入力される入力制御信号（ＣＴＲＬ）１１３がＬｏｗのときは、ラッチ１０１のゲート入力（Ｇ）には常にＬｏｗが入力されるため、ラッチ１０１は状態変化しない。そのため、乱数発生を行わせないときは、入力制御信号（ＣＴＲＬ）１１３をＬｏｗにしておくことで、乱数発生装置１０全体での電力消費を抑制することが可能である。
【００３３】
なお、図３においては、説明の簡略化のため、短パルスをゲート入力に与えることによってのみ準安定状態が高い確率で発生するものとして波形を記載した。実際の回路では、準安定状態の発生はデータ入力にも影響を受けることがあり、また、準安定状態の発生確率は、一般にもっと低い。
【００３４】
データ出力安定化部として機能する同期化回路１２１は、記憶素子であるラッチ１０１からのデータ出力を安定化して、後述する出力値累積部１３１へと出力する。この同期化回路１２１は、例えば、１つまたは直列接続された複数のフリップフロップで構成される。なお、図１に示した例では、同期化回路１２１は、１つのフリップフロップ１２３を備える。
【００３５】
ラッチ１０１が準安定状態にあるとき、ラッチ１０１から出力されたデータの値Ｑ１（図３に示したタイミングチャートにおけるＱ１）は、デジタル信号として不安定である。そこで、フリップフロップ１２３により第３入力クロック（ＣＬＫ３）１２５に同期した安定した値（図３に示したタイミングチャートにおけるＱ２）に変換され、ＡＮＤ素子１２７に入力される。ＡＮＤ素子１２７には、同期化回路１２１のデータ出力と、入力制御信号（ＣＴＲＬ）とが入力されるが、入力制御信号（ＣＴＲＬ）がＨｉｇｈのとき、出力値累積部１３１には、同期化回路１２１のデータ出力Ｑ２が入力されることとなる。
【００３６】
なお、図１においては、同期化回路１２１を単一のフリップフロップ１２３にて実現しているが、動作周波数によっては、複数個の直列接続されたフリップフロップを用いた方がよい場合がある。また、出力値累積部１３１が準安定状態になる可能性を許容するのであれば、同期化回路１２１はなくてもよい。
【００３７】
出力値累積部１３１は、ラッチ１０１のデータ出力の値を累積するための１ビットのカウンタである。この出力値累積部１３１は、図１に示したように、ＸＯＲ素子１３３と、フリップフロップ１３５とから構成される。ＸＯＲ素子１３３には、同期化回路１２１のフリップフロップ１２３のデータ出力Ｑ２が入力されるとともに、フリップフロップ１３５からのデータ出力の値Ｑ３がフィードバックされているため、フリップフロップ１３５のデータ入力（Ｄ）には、データ出力Ｑ２とデータ出力Ｑ３との排他的論理和が入力される。
【００３８】
フリップフロップ１３５の動作クロックは、第３入力クロック（ＣＬＫ３）１２５であり、カウンタの出力も、第３入力クロック（ＣＬＫ３）１２５に同期して得られる。そのため、第３入力クロック（ＣＬＫ３）１２５の周期にてサンプリングされたデータ出力Ｑ１の値がＨになるたびに、フリップフロップ１３５の状態は反転する。フリップフロップ１３５に累積された値がデータとして出力され（Ｑ３）、乱数として利用される。
【００３９】
ここで、初期状態でのフリップフロップ１３５の状態をＬｏｗとし、ある任意の期間、入力制御信号（ＣＴＲＬ）１１３をＨｉｇｈにし、期間終了後に入力制御信号（ＣＴＲＬ）１１３をＬｏｗにすると、フリップフロップ１３５の状態は、第３入力クロック（ＣＬＫ３）１２５の周期にてサンプリングされたデータ出力Ｑ１の値（図１におけるＱ２に該当）が累積された値となる。その累積値は、期間内にデータ出力Ｑ１の値がＨｉｇｈであった回数が偶数であればＬｏｗとなり、奇数であればＨｉｇｈとなる。
【００４０】
この際、動作期間を充分長くすれば、フリップフロップ１３５の状態は事実上再現不可能になる。このとき、データ出力Ｑ３から得られる値は、再現不可能性を備えた良質の真性乱数である。
【００４１】
ここで、得られる乱数の質は、動作期間の長さに依存するが、その関係を回路設計時に正確に予測することは困難である。準安定状態での出力データ線の電気的特性は、配線長や素子配置、温度や周辺回路の電力消費状況などに大きく左右されるためである。しかしながら、実物の乱数発生装置の出力値の乱雑さと動作期間との関係を測定することで、充分な再現不可能性を備えた乱数を得るにはその乱数発生装置ではどの程度の期間が必要なのかを見積もることができる。
【００４２】
なお、上述の実施形態において、準安定状態生成部１０３は、２種類の入力クロック信号を用いて短パルスを生成する場合について説明したが、本発明に係る準安定状態生成部１０３は、上記の場合に限定されるわけではなく、１種類の入力クロック信号を用いて短パルスを生成することも可能である。
【００４３】
例えば、図４に示したように、第１入力クロック１０９から出力される信号を２つに分岐し、一方を遅延回路（ＤＥＬＡＹ）１１９に入力し、他方をＸＯＲ素子１０５の一方の入力端子へと接続する。また、遅延回路１１９からの出力信号を、ＸＯＲ素子１０５の他方の入力端子へと接続する。遅延回路１１９を経由した第１入力クロックと遅延回路１１９を経由しない第１入力クロックとは、信号変化がＸＯＲ素子１０５へと到達する遅延時間に差異があるため、ラッチ１０１のゲート入力（Ｇ）には周期的に短パルスが入力されることとなる。
【００４４】
また、記憶素子であるラッチ１０１、同期化回路部１２１に設けられたフリップフロップ１２３および出力値累積部１３１に設けられたフリップフロップ１３５それぞれのリセット端子には、同一のリセット信号１１７が入力され、所定のリセット信号１１７が入力されると、内部状態がクリアされる。
【００４５】
以上、本実施形態に係る乱数発生装置１０の機能の一例を示した。上記の各構成要素は、汎用的な部材や回路を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。したがって、本実施形態を実施する時々の技術レベルに応じて、適宜、利用する構成を変更することが可能である。
【００４６】
（第２の実施形態）
続いて、図５および図６を参照しながら、本発明の第２の実施形態に係る乱数発生装置２０について、詳細に説明する。図５は、本実施形態に係る乱数発生装置２０を説明するための回路図であり、図６は、本実施形態に係る乱数発生装置２０のタイミングチャートの一例である。
【００４７】
本実施形態に係る乱数発生装置２０は、例えば、複数の乱数発生回路部２０１と、制御回路部２０３と、論理回路部２０５と、を主に備え、ｎビットの真性乱数を発生させることが可能である。ここで、ｎは、任意の整数である。ｎが大きいほど１回で得られる真性乱数のビット幅が広くなるが、回路規模はｎに比例して増大する。
【００４８】
乱数発生回路部２０１は、本発明の第１の実施形態にて示した１ビットの乱数発生装置１０とほぼ同一のものである。ただし、第１の実施形態に係る乱数発生装置１０に存在した内部のラッチを準安定状態にさせる論理回路部１０５は、乱数発生回路部２０１内には存在しない。本実施形態に係る乱数発生回路部２０１は、本発明の第１の実施形態に係る乱数発生装置１０と同様に、記憶素子と、記憶素子のデータ出力を安定化させる同期化回路部と、同期化回路部からのデータ出力を累積する出力値累積部と、を備える。これら記憶素子、同期化回路部および出力値累積部は、本発明の第１の実施形態に係る記憶素子、同期化回路部および出力値累積部と同様の構成を有し、ほぼ同一の効果を奏するため、詳細な説明は省略する。
【００４９】
本実施形態に係る乱数発生装置２０では、ｎビットの真性乱数を得るために、乱数発生回路部２０１が、乱数発生装置２０内にｎ個並列に配置される。
【００５０】
第３入力クロック２１５にて駆動される制御回路部２０３は、本実施形態に係る乱数発生装置２０を制御する回路であり、乱数発生装置２０内の出力制御信号（ＲＥＡＤＹ）の値を操作する。乱数発生装置２０が停止しているとき、出力制御信号（ＲＥＡＤＹ）はＨｉｇｈである。
【００５１】
入力制御信号（ＳＴＡＲＴ）２０７から指示を受けると、本実施形態に係る制御回路部２０３は、出力制御信号（ＲＥＡＤＹ）をＬｏｗへと変更し、乱数発生装置２０の動作を開始させる。出力制御信号（ＲＥＡＤＹ）がＬｏｗである間、乱数発生回路部２０１内の各ラッチは、動作を継続する。待機時間数値（ＷＡＩＴＴＩＭＥ）２０９のｍビット幅の数値で示される待機時間が経過すると、制御回路部２０３は出力制御信号（ＲＥＡＤＹ）をＨｉｇｈへと変更し、動作を停止させる。
【００５２】
この出力制御信号（ＲＥＡＤＹ）は、乱数発生装置２０の動作の完了を示す出力信号である。入力制御信号（ＳＴＡＲＴ）へと開始を指示し、出力制御信号（ＲＥＡＤＹ）がＨｉｇｈになるまで待機すると、真性乱数を得るためのｎビットの出力値（ＯＵＴ）から、目的の真性乱数が得られる。
【００５３】
また、制御回路部２０３から出力される出力制御信号（ＲＥＡＤＹ）は、図５に示したように２つに分岐され、ＮＯＴ素子２２１によって反転された後に、動作と非動作を切り替えるための制御信号として利用される。この動作と非動作を切り替えるための制御信号（ＣＴＲＬ）は、後述する論理回路部２０５へと入力される。
【００５４】
本実施形態に係る準安定状態生成部である論理回路部２０５は、本発明の第１の実施形態に係る論理回路部１０３と同様に、ＸＯＲ素子と、ＡＮＤ素子とから構成され、本実施形態に係る乱数発生回路部２０１内の記憶素子を準安定状態にさせるための短パルスを生成する。
【００５５】
論理回路部２０５のＸＯＲ素子には、第１入力クロック（ＣＬＫ１）２１１と第２入力クロック（ＣＬＫ２）２１３とが入力され、これらのクロック信号の排他的論理和がＸＯＲ素子から出力される。ＸＯＲ素子から出力された出力データ、および、制御回路部２０３から出力され、ＮＯＴ素子２２１を経て生成される制御信号（ＣＴＲＬ）は、ＡＮＤ素子に入力され、これら２種類の信号の論理積がＡＮＤ素子から出力される（ＡＣＴ）。
【００５６】
ここで、ＡＮＤ素子に入力される制御信号（ＣＴＲＬ）がＨｉｇｈのとき、乱数発生回路部２０１内におけるラッチのゲート入力（Ｇ）には、２つの入力クロックの排他的論理和が入力される。この際、第１入力クロック（ＣＬＫ１）２１１および第２入力クロック（ＣＬＫ２）２１３の間に自明な同期関係がなければ、ラッチのゲート入力（Ｇ）には周期的に短パルスが入力され、結果としてラッチが準安定状態になることが促される。
【００５７】
すべての乱数発生回路部２０１には、図６に示したタイミングチャートのＡＣＴに示したような波形が等しく入力されるが、乱数発生回路部２０１内のラッチの準安定状態の発生や収束時間などは不確定であるため、各データ出力の最終値は、各出力データ波形（ＯＵＴ１〜ＯＵＴ３）に示したように、確率的に異なった値となる。
【００５８】
なお、厳密には、出力制御信号（ＲＥＡＤＹ）へと動作完了を通知するのは、論理回路部２０５へと動作停止通知する制御信号（ＣＴＲＬ）よりも数サイクル程度遅延させるべきであるが、図面の簡単化のために割愛した。
【００５９】
本発明の第１の実施形態に係る乱数発生装置１０と同様に、実物の乱数発生装置の出力値の乱雑さと動作期間との関係を測定することで、充分な再現不可能性を備えた乱数を得るにはその乱数発生装置ではどの程度の期間が必要なのかを見積もることができる。この際、同時に得られるｎビットの真性乱数の各ビット同士の相関に留意すべきである。各ビットが個別に見てそれぞれ充分な再現不可能性を備えていても、ビット同士の間に有意な相関が認められるときは、良質な真性乱数とは見なせない可能性がある。
【００６０】
なお、上述の実施形態において、論理回路部２０５は、２種類の入力クロック信号を用いて短パルスを生成する場合について説明したが、本実施形態に係る論理回路部２０５は、上記の場合に限定されるわけではなく、例えば図４に示したように、１種類の入力クロック信号を用いて短パルスを生成することも可能である。
【００６１】
また、上述の実施形態においては、ｎ個の乱数発生回路部２０１に共通の論理回路部２０５が設けられる場合について説明したが、上述の例に限定されるわけではなく、ｎ個の乱数発生回路部２０１それぞれに、別個の論理回路部２０５が設けられてもよい。
【００６２】
また、各乱数発生回路部２０１内に設けられた記憶素子やフリップフロップのリセット端子には、同一のリセット信号２１７が入力され、所定のリセット信号２１７が入力されると、内部状態がクリアされる。
【００６３】
以上、本実施形態に係る乱数発生装置２０の機能の一例を示した。上記の各構成要素は、汎用的な部材や回路を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。したがって、本実施形態を実施する時々の技術レベルに応じて、適宜、利用する構成を変更することが可能である。
【００６４】
以上説明したように、本発明によれば、通常のデジタル回路にて構成可能な、小型で消費電力の小さい真性乱数発生装置を実現することができる。
【００６５】
本発明に係る乱数発生装置では、乱数発生装置をデジタル回路にて構成できるため、自然現象などを利用する他の乱数発生装置よりも製造コストや運用コストが低く、また装置を小型化できるという利点がある。従って、本発明に係る乱数発生装置は、特に任意の機器に組み込んで用いる場合に、有効に利用することができる。
【００６６】
本発明にかかる乱数発生装置のようにデジタル回路として構成された乱数発生装置は、外乱に強いという利点がある。例えば、コンピュータ操作者の入力に基づく乱数発生装置は、入力操作を停止すると機能しないという自明な欠点がある。他方、デジタル回路であれば、外部から不正な操作を受けないよう装置を構成することは容易である。
【００６７】
本発明に係る乱数発生装置から得られる真性乱数は、取得に要する時間によって乱数の質を制御可能であるという利点がある。質の高い乱数を取得したいのであれば、取得のために与える時間を長くすればよい。また、質は低下するものの、短時間で乱数を取得することもできる。
【００６８】
与える時間と乱数の質との関係は、回路設計時に予測することはできないが、実物の装置を用いれば容易に測定可能である。充分な時間を与えることで、事実上完全な再現不可能性を備えた真性乱数を得ることができる。
【００６９】
完全な再現不可能性を備えた真性乱数は、一様で統計的な偏りがなく、他のあらゆるものと相関がなく、外部から値を操作することが不可能で、事前に値を予測することが不可能で、後から再現することが不可能である。この性質は、暗号やデジタル署名などといった現代の情報セキュリティ技術が求める良質な乱数に対する要請を完全に満足させる。また、科学技術計算におけるシミュレーションやゲームなど、他の用途にも利用できる。
【００７０】
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明はかかる例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【００７１】
例えば、上述した各実施形態においては、第１入力クロック（ＣＬＫ１）、第２入力クロック（ＣＬＫ２）および第３入力クロック（ＣＬＫ３）が互いに非同期である場合について説明したが、第１入力クロック（ＣＬＫ１）または第２入力クロック（ＣＬＫ２）と、第３入力クロック（ＣＬＫ３）とは、同期関係にあってもよい。ただ、得られる乱数の質としては、第１入力クロック（ＣＬＫ１）、第２入力クロック（ＣＬＫ２）および第３入力クロック（ＣＬＫ３）が互いに非同期である場合に得られる乱数の方が、第１入力クロック（ＣＬＫ１）または第２入力クロック（ＣＬＫ２）と、第３入力クロック（ＣＬＫ３）とは、同期関係にある場合の乱数よりも、より良質な乱数となる。
【図面の簡単な説明】
【００７２】
【図１】本発明の第１の実施形態に係る乱数発生装置を説明するための回路図である。
【図２】同実施形態における記憶素子の準安定状態を説明するための説明図である。
【図３】同実施形態に係る乱数発生装置のタイミングチャートの一例である。
【図４】同実施形態に係る準安定状態生成部の変形例を説明するための回路図である。
【図５】本発明の第２の実施形態に係る乱数発生装置を説明するための回路図である。
【図６】同実施形態に係る乱数発生装置のタイミングチャートの一例である。
【符号の説明】
【００７３】
１    短パルス
３    準安定状態
１０，２０    乱数発生装置
１０１    ラッチ
１０３，２０３    論理回路部
１０５    ＸＯＲ素子
１０７，１２７    ＡＮＤ素子
１０９，２１１    第１入力クロック
１１１，２１３    第２入力クロック
１１３，２０７    入力制御信号
１１５，２２１    ＮＯＴ素子
１１７，２１７    リセット信号
１１９    ディレイ回路
１２１    同期化回路部
１２３，１３５    フリップフラップ
１２５，２１５    第３入力クロック
１３１    出力値累積部
２０１    乱数発生回路部
２０５    制御回路部
２０９    待機時間制御信号
【図１】
2009053906.tif 000003
【図２】
2009053906.tif 000004
【図３】
2009053906.tif 000005
【図４】
2009053906.tif 000006
【図５】
2009053906.tif 000007
【図６】
2009053906.tif 000008