(57)【要約】【課題】予測が困難であり、暗号化アルゴリズム等での適用についてより安全性の高い乱数を生成する。【解決手段】乱数生成装置１０は、各々所定の疑似乱数系列の乱数を出力可能な複数の疑似乱数生成部１２ａ，１２ｂと、複数の疑似乱数生成部１２ａ，１２ｂの出力に基づいて出力乱数を生成する出力乱数生成部１４と、物理乱数を生成する物理乱数発生器１６と、物理乱数発生器１６の生成した物理乱数に基づいて疑似乱数生成部１２ｂの出力値の更新の有無を切り替える切替部１８と、を備える。かかる構成によれば、出力乱数をどの疑似乱数系列に基づいて生成するかが物理乱数に基づいてランダムに切り替わることとなり、従来の乱数に比べ、その予測が非常に難しくなる。【選択図】        図１
2004164482.tif 000002
【特許請求の範囲】
【請求項１】
各々所定の疑似乱数系列の乱数を出力可能な複数の疑似乱数生成手段と、
前記複数の疑似乱数生成手段の出力に基づいて出力乱数を生成可能な出力乱数生成手段と、
物理乱数を生成する物理乱数生成手段と、
前記物理乱数生成手段の生成した物理乱数に基づいて、前記出力乱数生成手段における出力乱数の生成に、少なくとも一つの前記疑似乱数生成手段で生成される疑似乱数を用いるか否かを切り替える切替手段と、
を備える乱数生成装置。
【請求項２】
前記切替手段は、物理乱数に基づいて、少なくとも一つの前記疑似乱数生成手段にクロック信号を入力するか否かを切り替えることを特徴とする請求項１に記載の乱数生成装置。
【請求項３】
前記物理乱数生成手段の生成した物理乱数が少なくとも一つの前記疑似乱数生成手段のクロック信号として入力されることを特徴とする請求項１に記載の乱数生成装置。
【請求項４】
前記切替手段は、物理乱数に基づいて、少なくとも一つの前記疑似乱数生成手段で生成された疑似乱数を前記出力乱数生成手段に入力するか否かを切り替えることを特徴とする請求項１に記載の乱数生成装置。
【請求項５】
前記出力乱数生成手段は、排他的論理和ゲートであることを特徴とする請求項１〜４のうちいずれか一つに記載の乱数生成装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、乱数生成装置に関し、特に暗号化アルゴリズムに好適な乱数生成装置に関する。
【０００２】
【従来の技術】
暗号化アルゴリズム等では、セキュリティの確保のために、しばしば乱数が用いられる。その場合の乱数としては、一般的に、Ｍ系列（Ｍａｘｉｍｕｍ  ｌｅｎｇｔｈ  ｃｏｄｅ：最長符号系列）等に代表される疑似乱数が用いられてきた。Ｍ系列符号は、公知の線形シフトレジスタ符号発生器によって生成することができる。
【０００３】
また、上記疑似乱数以外の乱数として、原子核の崩壊現象がランダムとなることや電気雑音等の自然現象を利用して生成される物理乱数が知られている。暗号化アルゴリズム等においても、上記疑似乱数に替えて、この物理乱数を利用する場合もある（例えば、特許文献１参照。）。
【０００４】
【特許文献１】
特開２０００−６６５９２号公報
【０００５】
【発明が解決しようとする課題】
しかしながら、Ｍ系列等に代表される疑似乱数は、必ずしも安全性の高い乱数とは言えず、セキュリティ確保の面からは好ましくない面がある。疑似乱数は、一定の算術プロセスあるいは関数の組み合わせから生成されるため、同じ初期条件を与えれば、同一の乱数を生成可能となるからである。
【０００６】
また、一般的に物理乱数は微弱な信号であるため、暗号化アルゴリズム等で使用するためには、通常、増幅器によって利用可能なレベルに増幅される。ところが、増幅器は電界や磁界によって影響を受ける場合があり、それらの意図的な印加によって乱数の発生確率が操作され、安全性が低下してしまう場合があった。
【０００７】
【課題を解決するための手段】
本発明にかかる乱数生成装置は、各々所定の疑似乱数系列の乱数を出力可能な複数の疑似乱数生成手段と、上記複数の疑似乱数生成手段の出力に基づいて出力乱数を生成可能な出力乱数生成手段と、物理乱数を生成する物理乱数生成手段と、上記物理乱数生成手段の生成した物理乱数に基づいて、上記出力乱数生成手段における出力乱数の生成に、少なくとも一つの上記疑似乱数生成手段で生成される疑似乱数を用いるか否かを切り替える切替手段と、を備える。すなわち、上記本発明にかかる乱数生成装置によれば、複数の疑似乱数系列のうち出力乱数の元となる疑似乱数系列が物理乱数に基づいて変更されるため、従来の疑似乱数のみを用いた乱数生成装置に比べて乱数の予測性を低減することができる。また、物理乱数を直接的な出力乱数としては用いないため、仮に外部から物理乱数生成手段に何らかの操作が加えられたとしても、出力乱数の予測は従来装置に比べてかなり難しくなる。
【０００８】
上記本発明にかかる乱数生成装置では、上記切替手段が、物理乱数に基づいて、少なくとも一つの上記疑似乱数生成手段にクロック信号を入力するか否かを切り替えるように構成してもよい。この構成では、疑似乱数生成手段にクロック信号を入力するか否かを切り替えることで、その疑似乱数生成手段から新たな疑似乱数が出力されるか否かが切り替わる。
【０００９】
また、上記本発明にかかる乱数生成装置では、上記物理乱数生成手段の生成した物理乱数が少なくとも一つの上記疑似乱数生成手段のクロック信号として入力されるように構成してもよい。この構成では、クロック信号としての物理乱数出力の値が切り替わることで、その疑似乱数生成手段から新たな疑似乱数が出力されるか否かが切り替わる。なお、この場合には、上記物理乱数生成手段が上記切替手段として機能することになる。
【００１０】
また、上記本発明にかかる乱数生成装置では、上記切替手段が、物理乱数に基づいて、少なくとも一つの上記疑似乱数生成手段で生成された疑似乱数を上記出力乱数生成手段に入力するか否かを切り替えるように構成してもよい。この構成では、切替手段によって、少なくとも一つの疑似乱数生成手段によって生成された疑似乱数を出力乱数生成手段に入力するか否かを切り替える。
【００１１】
【発明の実施の形態】
実施の形態１．  図１は、本実施形態にかかる乱数生成装置１０の構成を示す図、また図２は、物理乱数発生器１６の構成図である。
【００１２】
乱数生成装置１０は、二つの疑似乱数生成部１２ａ，１２ｂ、出力乱数生成部１４、物理乱数発生器１６、および切替部１８を含む。このうち疑似乱数生成部１２ａ，１２ｂは、それぞれ、縦続して接続された複数のフリップフロップを含むシフトレジスタ２０ａ，２０ｂと、所定の複数のタップ位置からの出力値の排他的論理和を出力するＥＸＯＲゲート２２ａ，２２ｂと、を有し、所定のＭ系列の乱数を出力する線形シフトレジスタ符号発生器として構成されている。図１の例では、シフトレジスタ２０ａは、１７個のフリップフロップを有しクロック信号に応じてビットシフトする１７段シフトレジスタであり、入力側より第３番目と第１７番目のフリップフロップからのタップ出力（Ｑ出力；Ｑ３，Ｑ１７）に基づいて帰還入力値（シフトレジスタ２０ａのＤ１入力；「１」（ハイレベル）または「０」（ローレベル））が生成される。また、シフトレジスタ２０ｂは、１５個のフリップフロップを有しクロック信号に応じてビットシフトする１５段シフトレジスタであり、入力側より第２番目と第１５番目のフリップフロップからのタップ出力（Ｑ２，Ｑ１５）に基づいて帰還入力値が生成される。シフトレジスタ２０ａ，２０ｂの段数および帰還入力の元となるタップ位置は互いに異なっており、疑似乱数生成部１２ａ，１２ｂは、相異なるＭ系列符号を生成することができる。
【００１３】
本実施形態では、疑似乱数生成部１２ａが動作するためのクロック信号（シフトレジスタ２０ａがビットシフトを行うためのクロック信号）は、信号源２４より直接入力されるが、疑似乱数生成部１２ｂ（シフトレジスタ２０ｂ）のクロック信号は、信号源２４より切替部１８を介して入力される。切替部１８は、物理乱数発生器１６からの物理乱数出力に基づいて、疑似乱数生成部１２ｂにクロック信号を入力するか否かを切り替える。図１の例では、切替部１８はＡＮＤゲートとして構成され、信号源２４からの共通クロック信号の値が「１」であり、かつ物理乱数出力値が「１」であるときにのみ、疑似乱数生成部１２ｂに入力するクロック信号の値（すなわち出力値）を「１」とする。疑似乱数生成部１２ｂは、入力されるクロック信号の値が「１」（ハイレベル）であるときにのみ新たな疑似乱数を出力する（疑似乱数を更新する）から、疑似乱数生成部１２ｂで生成された疑似乱数は物理乱数出力値が「１」であるときにのみ出力乱数生成部１４に入力され、他方、物理乱数出力値が「０」であるときは、その出力値は出力線につながるビットの値（図１の例では第１５番目のビットのＱ１５出力；「１」または「０」）で固定されることとなる。
【００１４】
そして、出力乱数生成部１４において、二つの疑似乱数生成部１２ａ，１２ｂの出力値に基づいて出力乱数が生成される。図１の例では、出力乱数生成部１４は、ＥＸＯＲゲートとして構成され、疑似乱数生成部１２ａ，１２ｂからの出力値が不一致であるときには出力値を「１」とし、他方、それらが一致するときには出力値を「０」とする。ここで、上述したように、物理乱数出力値が「１」であるときは、疑似乱数生成部１２ｂの出力値は疑似乱数となり、他方、物理乱数出力値が「０」であるときは、疑似乱数生成部１２ｂの出力値は「１」または「０」で固定される。つまり、出力乱数生成部１４の出力乱数は、物理乱数出力値が「１」であるときは、疑似乱数生成部１２ａ，１２ｂの双方で生成された疑似乱数に基づいて生成されることとなり、物理乱数出力値が「０」であるときは、疑似乱数生成部１２ａによって生成された疑似乱数に基づいて生成されることとなる。すなわち、本実施形態によれば、出力乱数をどの疑似乱数を用いて生成するかが物理乱数によってランダムに変化することとなり、従来の物理乱数あるいは疑似乱数に比べて、その予測が非常に難しくなると言える。さらに、本実施形態では、複数の疑似乱数生成部１２ａ，１２ｂによって相異なる疑似乱数が生成されるので、それら複数の疑似乱数生成部１２ａ，１２ｂの双方に基づいて生成された出力乱数自体の予測も難しく、結果として出力乱数の予測は極めて難しくなる。
【００１５】
ところで、物理乱数発生器１６は、物理乱数発生源１６ａ、増幅回路１６ｂおよび二値化回路１６ｃを備える。このうち、物理乱数発生源１６ａは、自然現象に基づいてランダムに変化する信号を生じうるものであり、例えば、上記特許文献１に開示されるような、接合を含む電流路に生じる雑音信号を生じる半導体素子を含むものとすることができる。なお、これには限られず、放射性物質の崩壊を利用したもの等もこの物理乱数発生源１６ａとして用いることができる。物理乱数発生源１６ａにて生じた信号は、増幅回路１６ｂにおいて増幅され、さらに二値化回路１６ｃにおいて二値化処理される。二値化回路１６ｃは、所定のサンプリングタイミングで、増幅された信号の振幅と所定の閾値とを比較し、例えば、増幅された信号の振幅が所定の閾値より高いときには「１」を、逆に低いときには「０」を出力する。こうして物理乱数発生器１６により、「１」または「０」を示す所定電圧の物理乱数出力値が生成される。なお、二値化回路１６ｃの閾値のレベルは任意に設定することができるが、通常は「１」および「０」の発生確率がほぼ１対１となるように設定される。なお、二値化回路１６ｃにおいて、単に、増幅された信号の振幅を所定の閾値と比較して出力信号を発生するようにしてもよい。
【００１６】
実施の形態２．  図３は、本実施形態にかかる乱数生成装置３０の構成を示す図である。なお、ここでは、上記実施形態と同じ構成要素については同じ符号を付し、重複する部分の説明は省略する。
【００１７】
上記実施の形態１では、疑似乱数生成部１２ｂには、クロック信号として、物理乱数発生器１６からの物理乱数出力と信号源２４からの共通クロック信号との論理積を入力したが、本実施形態では、疑似乱数生成部１２ｂへのクロック信号を、物理乱数発生器１６からの物理乱数出力そのものとしている。本実施形態では、物理乱数発生器１６が切替部に相当する。なお、疑似乱数生成部１２ａのクロック信号ＣＫは物理乱数出力とは独立して入力される。このような構成とした場合も、上記実施の形態１と同様の効果が得られる。すなわち、物理乱数出力値が「１」であるときには、疑似乱数生成部１２ｂは、物理乱数出力の出力タイミング（＝物理乱数発生器１６のサンプリングタイミング）で、順次、疑似乱数を生成し、これが出力乱数生成部１４に向けて出力される。他方、物理乱数出力値が「０」であるときには疑似乱数生成部１２ｂは動作せず、その出力値は出力線につながるビットの値（図３の例では第１５番目のビットのＱ１５出力；「１」または「０」）で固定される。すなわち、物理乱数出力値が「１」であるときは、疑似乱数生成部１２ｂからクロック信号に応じて疑似乱数が出力され、物理乱数出力値が「０」であるときは、疑似乱数が出力されず出力値が固定された状態となる。それら各状態において出力乱数生成部１４から出力される出力乱数は上記実施の形態１と同じとなる。本実施形態でも、上記実施の形態１と同様に、出力乱数をどの疑似乱数を用いて生成するかが物理乱数によってランダムに変化することとなり、従来の物理乱数あるいは疑似乱数に比べて、その予測が非常に難しくなると言える。なお、物理乱数発生器１６は、サンプリングタイミングで出力するのではなく、任意のタイミングで出力するように構成してもよい。
【００１８】
実施の形態３．  図４は、本実施形態にかかる乱数生成装置４０の構成を示す図である。なお、ここでは、上記実施形態と同じ構成要素については同じ符号を付し、重複する部分の説明は省略する。
【００１９】
本実施形態では、疑似乱数生成部１２ｂで生成した疑似乱数が出力乱数生成部１４に入力されるか否かが切替部４８によって制御される。図４の例では、疑似乱数生成部１２ｂの出力は、ＡＮＤゲートとして構成される切替部４８を介して出力乱数生成部１４に入力されるようになっている。そして切替部４８において、物理乱数発生器１６からの物理乱数出力と疑似乱数生成部１２ｂの出力との論理積が取得され、これが出力乱数生成部１４に入力される。すなわち、物理乱数出力値が「１」であるときは、疑似乱数生成部１２ｂで生成された疑似乱数がそのまま出力乱数生成部１４に入力され、出力乱数生成部１４は、疑似乱数生成部１２ａ，１２ｂ双方の疑似乱数の排他的論理和を取得し、これを出力乱数として出力する。他方、物理乱数出力値が「０」であるときは、出力乱数生成部１４には「０」が入力され、出力乱数生成部１４からは、疑似乱数生成部１２ａの出力値と同じ値の出力乱数（すなわち疑似乱数生成部１２ａの出力した疑似乱数）が出力される。本実施形態でも、物理乱数出力値が「１」であるときは、疑似乱数生成部１２ｂからクロック信号（例えば疑似乱数生成部１２ａと共通のクロック信号）に応じて疑似乱数が出力され、物理乱数出力値が「０」であるときは、疑似乱数が出力されず出力値が固定された状態となる。つまり、本実施形態でも、出力乱数をどの疑似乱数に基づいて生成するかが物理乱数によってランダムに変化することとなり、従来の物理乱数あるいは疑似乱数に比べて、その予測が非常に難しくなると言える。
【００２０】
実施の形態４．  図５は、本実施形態にかかる乱数生成装置５０の構成を示す図である。なお、ここでは、上記実施形態と同じ構成要素については同じ符号を付し、重複する部分の説明は省略する。
【００２１】
本実施形態では、疑似乱数生成部１２ａ，１２ｂでそれぞれ生成された疑似乱数が出力乱数生成部１４に入力されるか否かが物理乱数出力値によって切り替わる。なお、図５の例の場合、疑似乱数生成部１２ａ，１２ｂの生成した疑似乱数のうちいずれか一方が選択的に出力乱数生成部１４に入力され、選択入力された疑似乱数がそのまま出力乱数生成部１４の出力、すなわち乱数生成装置５０の出力となっている。つまり、図５の例では、複数の疑似乱数生成部１２ａ，１２ｂによってそれぞれ生成される疑似乱数パターンのうちどれを出力するかを、物理乱数によって選択的に切り替えていると言うこともできる。具体的には、切替部５８は、二つのＡＮＤゲート５８ａ，５８ｂを備えており、そのうち一方のＡＮＤゲート５８ａには、疑似乱数生成部１２ａの出力と物理乱数発生器１６からインバータ５８ｃを介して物理乱数出力値が入力され、もう一方のＡＮＤゲート５８ｂには、疑似乱数生成部１２ｂの出力と物理乱数発生器１６からの物理乱数出力値が入力される。そして、これら二つのＡＮＤゲート５８ａ，５８ｂの出力が出力乱数生成部１４に入力され、それらの排他的論理和が出力乱数となる。そして、この構成では、物理乱数出力値が「１」であるときは、疑似乱数生成部１２ｂで生成された疑似乱数がそのままＡＮＤゲート５８ｂの出力として出力乱数生成部１４に入力され、他方ＡＮＤゲート５８ａの出力は「０」となる。すなわちこの場合、出力乱数生成部１４からは、疑似乱数生成部１２ｂの出力値と同じ値の出力乱数（すなわち疑似乱数生成部１２ｂの出力した疑似乱数）が出力される。他方、物理乱数出力値が「０」であるときは、疑似乱数生成部１２ａで生成された疑似乱数がそのままＡＮＤゲート５８ａの出力として出力乱数生成部１４に入力され、他方ＡＮＤゲート５８ｂの出力は「０」となる。すなわちこの場合、出力乱数生成部１４からは、疑似乱数生成部１２ａの出力値と同じ値の出力乱数（すなわち疑似乱数生成部１２ｂの出力した疑似乱数）が出力される。本実施形態でも、出力乱数をどの疑似乱数に基づいて生成するかが物理乱数によってランダムに変化することとなり、従来の物理乱数あるいは疑似乱数に比べて、その予測が非常に難しくなると言える。
【００２２】
以上、本発明の好適な実施形態について説明したが、本発明は上記実施形態には限定されず、種々の等価回路によっても実施可能である。例えば、上記実施形態では、疑似乱数が、１７段または１５段のシフトレジスタを有する線形シフトレジスタ符号発生器によって生成される数種類のＭ系列符号である場合を例示したが、この例には限定されず、それ以外の段数のシフトレジスタあるいはタップの組み合わせに基づく疑似乱数系列であってもよい。また、複数の疑似乱数生成部を、同じ系列の疑似乱数を発生させるものとしてもよい。また、上記実施形態では、シフトレジスタの最終段のフリップフロップのＱ出力を疑似乱数として出力したが、他のフリップフロップから疑似乱数を出力してもよいし、シフトレジスタに入力される帰還値を疑似乱数出力としてもよい。
【００２３】
【発明の効果】
以上説明したように、本発明によれば、出力乱数をどの疑似乱数に基づいて生成するかが物理乱数に基づいてランダムに変化するため、その予測が難しく暗号化アルゴリズム等への適用に際してより安全性の高い乱数を生成することができる。
【図面の簡単な説明】
【図１】本発明の実施の形態１にかかる乱数生成装置の構成図である。
【図２】本発明の実施の形態にかかる乱数生成装置で用いられる物理乱数発生器の構成図である。
【図３】本発明の実施の形態２にかかる乱数生成装置の構成図である。
【図４】本発明の実施の形態３にかかる乱数生成装置の構成図である。
【図５】本発明の実施の形態４にかかる乱数生成装置の構成図である。
【符号の説明】
１０，３０，４０，５０  乱数生成装置、１２ａ，１２ｂ  疑似乱数生成部、１４  出力乱数生成部、１６  物理乱数発生器、１８，４８，５８  切替部、２０ａ，２０ｂ  シフトレジスタ、２２ａ，２２ｂ  ＥＸＯＲゲート、２４  信号源。
【図１】
2004164482.tif 000003
【図２】
2004164482.tif 000004
【図３】
2004164482.tif 000005
【図４】
2004164482.tif 000006
【図５】
2004164482.tif 000007