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