(57)【特許請求の範囲】
【請求項１】
二値論理の「０」と「１」とが交互に繰り返される出力値を出力する発振回路と、
前記発振回路の今回の出力値に基づいて、不規則に値が変化するデータを生成することにより、今回のサンプリングタイミングを決定する制御部と、
前記発振回路の出力値を、前記制御部によって決定されたサンプリングタイミングでサンプリングすることにより、乱数を生成する乱数生成部と、
を備える、乱数生成装置。
【請求項２】
前記制御部は、前記発振回路の出力値をシードに用いて擬似乱数を生成する擬似乱数生成器を有する、請求項１に記載の乱数生成装置。
【請求項３】
前記制御部は、
所定の初期値からシステムクロックをカウントするカウンタをさらに有し、
前記カウンタによるシステムクロックのカウント数が、前記擬似乱数生成器が生成した擬似乱数の値に一致することにより、前記乱数生成部に前記発振回路の出力値をサンプリングさせるための制御信号を出力する、請求項２に記載の乱数生成装置。
【請求項４】
前記制御部は、
前記発振回路の出力値を初期値に用いてシステムクロックをカウントするカウンタをさらに有し、
前記カウンタによるシステムクロックのカウント数が、前記擬似乱数生成器が生成した擬似乱数の値に一致することにより、前記乱数生成部に前記発振回路の出力値をサンプリングさせるための制御信号を出力する、請求項２に記載の乱数生成装置。
【請求項５】
前記制御部は、前記擬似乱数生成器が生成した擬似乱数の値が、予め設定された所定値に一致することにより、前記乱数生成部に前記発振回路の出力値をサンプリングさせるための制御信号を出力する、請求項２に記載の乱数生成装置。
【請求項６】
前記乱数生成部による乱数の生成を必要としない期間において、前記発振回路及び前記擬似乱数生成器の動作は停止される、請求項２〜５のいずれか一つに記載の乱数生成装置。
【請求項７】
前記制御部は、前記発振回路の出力値を初期値に用いてシステムクロックをカウントするカウンタを有する、請求項１に記載の乱数生成装置。
【請求項８】
前記制御部は、
所定値をシードに用いて擬似乱数を生成する擬似乱数生成器をさらに有し、
前記カウンタによるシステムクロックのカウント数が、前記擬似乱数生成器が生成した擬似乱数の値に一致することにより、前記乱数生成部に前記発振回路の出力値をサンプリングさせるための制御信号を出力する、請求項６に記載の乱数生成装置。
【請求項９】
前記制御部は、前記カウンタによるシステムクロックのカウント数が、予め設定された所定値に一致することにより、前記乱数生成部に前記発振回路の出力値をサンプリングさせるための制御信号を出力する、請求項７に記載の乱数生成装置。
【請求項１０】
前記乱数生成部による乱数の生成を必要としない期間において、前記発振回路及び前記カウンタの動作は停止される、請求項７〜９のいずれか一つに記載の乱数生成装置。
【請求項１１】
（Ａ）二値論理の「０」と「１」とが交互に繰り返される出力値を生成するステップと、
（Ｂ）前記ステップ（Ａ）によって生成された今回の出力値に基づいて、不規則に値が変化するデータを生成することにより、今回のサンプリングタイミングを決定するステップと、
（Ｃ）前記ステップ（Ａ）によって生成された出力値を、前記ステップ（Ｂ）によって決定されたサンプリングタイミングでサンプリングすることにより、乱数を生成するステップと、
を備える、乱数生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、乱数生成装置及び乱数生成方法に関し、特に、真性乱数の生成装置及び生成方法に関する。
【背景技術】
【０００２】
近年における情報技術の発達に伴い、第三者による盗聴、改ざん、なりすまし等の犯罪が増加する傾向にある。そのため、暗号化による情報セキュリティが重要になってきており、暗号化において乱数の利用は不可欠である。
【０００３】
従来は、関数の組み合わせによる計算式を用いた演算によって生成される擬似乱数が多く使用されていたが、関数や初期設定が人為的に漏洩する危険性や、第三者によって乱数生成パターンが予測され得る可能性があった。そのため、擬似乱数に代えて、再現不可能性及び予測不可能性の高い真性乱数が求められるようになった。
【０００４】
一般的な真性乱数生成器では、二値論理の「０」と「１」とが交互に繰り返される出力値をリング発振器から出力し、その出力値をシフトレジスタで所定のサンプリングクロックを用いてサンプリングすることによって、真性乱数が生成される。
【０００５】
なお、下記特許文献１には、乱数出力レジスタから出力された乱数出力に基づいてシステムクロックの整数倍のサンプリングクロックを生成し、当該サンプリングクロックを用いて発振器の出力値をサンプリングすることにより、乱数出力レジスタで乱数を生成する真性乱数生成装置が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−１７４２０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記の通り一般的な真性乱数生成器では、リング発振器からの出力値をシフトレジスタでサンプリングすることによって、真性乱数が生成される。ここで、生成される乱数の真性度（再現不可能性及び予測不可能性）はサンプリングの精度に左右され、単純に一定周期のサンプリングクロックを用いてサンプリングを行ったのでは、真性度の高い乱数を生成することができない。
【０００８】
本発明はかかる事情に鑑みて成されたものであり、サンプリングタイミングを適切に制御することによって真性度の高い乱数を生成することが可能な、乱数生成装置及び乱数生成方法を得ることを目的とするものである。
【課題を解決するための手段】
【０００９】
本発明の第１の態様に係る乱数生成装置は、二値論理の「０」と「１」とが交互に繰り返される出力値を出力する発振回路と、前記発振回路の今回の出力値に基づいて、不規則に値が変化するデータを生成することにより、今回のサンプリングタイミングを決定する制御部と、前記発振回路の出力値を、前記制御部によって決定されたサンプリングタイミングでサンプリングすることにより、乱数を生成する乱数生成部と、を備えることを特徴とするものである。
【００１０】
第１の態様に係る乱数生成装置によれば、制御部は、発振回路の今回の出力値に基づいて、不規則に値が変化するデータを生成することにより、今回のサンプリングタイミングを決定する。従って、制御部によってサンプリングタイミングを不規則に変動させることができ、その結果、乱数生成部で生成される乱数の真性度（再現不可能性及び予測不可能性）を高めることが可能となる。また、周囲の温度や湿度等の環境要因によって発振回路の出力値は変動するため、それに伴って制御部が決定するサンプリングタイミングも変動し、その結果、乱数の真性度をより高めることが可能となる。さらに、システムクロックを分周してサンプリングクロックを生成する場合と比較すると、クロックの一本化によって回路設計を容易化できるとともに、システムクロックの整数倍に限らずサンプリングタイミングを細かく設定できるため、乱数の真性度をより高めることが可能となる。
【００１１】
本発明の第２の態様に係る乱数生成装置は、第１の態様に係る乱数生成装置において特に、前記制御部は、前記発振回路の出力値をシードに用いて擬似乱数を生成する擬似乱数生成器を有することを特徴とするものである。
【００１２】
第２の態様に係る乱数生成装置によれば、制御部は、発振回路の出力値をシードに用いて擬似乱数を生成する擬似乱数生成器を有する。発振回路の出力値は刻々と変化するため、それをシードに用いて生成される擬似乱数の値も刻々と変化する。その結果、当該擬似乱数の値として、不規則に値が変化するデータを生成することが可能となる。
【００１３】
本発明の第３の態様に係る乱数生成装置は、第２の態様に係る乱数生成装置において特に、前記制御部は、所定の初期値からシステムクロックをカウントするカウンタをさらに有し、前記カウンタによるシステムクロックのカウント数が、前記擬似乱数生成器が生成した擬似乱数の値に一致することにより、前記乱数生成部に前記発振回路の出力値をサンプリングさせるための制御信号を出力することを特徴とするものである。
【００１４】
第３の態様に係る乱数生成装置によれば、制御部は、カウンタによるシステムクロックのカウント数が、擬似乱数生成器が生成した擬似乱数の値に一致することにより、乱数生成部に発振回路の出力値をサンプリングさせるための制御信号を出力する。制御信号が入力されることによって乱数生成部が発振回路の出力値をサンプリングすることにより、乱数生成部によって乱数を生成することが可能となる。
【００１５】
本発明の第４の態様に係る乱数生成装置は、第２の態様に係る乱数生成装置において特に、前記制御部は、前記発振回路の出力値を初期値に用いてシステムクロックをカウントするカウンタをさらに有し、前記カウンタによるシステムクロックのカウント数が、前記擬似乱数生成器が生成した擬似乱数の値に一致することにより、前記乱数生成部に前記発振回路の出力値をサンプリングさせるための制御信号を出力することを特徴とするものである。
【００１６】
第４の態様に係る乱数生成装置によれば、制御部は、カウンタによるシステムクロックのカウント数が、擬似乱数生成器が生成した擬似乱数の値に一致することにより、乱数生成部に発振回路の出力値をサンプリングさせるための制御信号を出力する。制御信号が入力されることによって乱数生成部が発振回路の出力値をサンプリングすることにより、乱数生成部によって乱数を生成することが可能となる。また、カウンタの初期値としては、発振回路の出力値が用いられる。発振回路の出力値は刻々と変化するため、カウンタの初期値も刻々と変化する。従って、仮に擬似乱数の値が同一であっても、システムクロックのカウント数が擬似乱数の値に一致するまでのカウント数が変動するため、制御部が制御信号を出力するタイミングも変動し、その結果、乱数の真性度をより高めることが可能となる。
【００１７】
本発明の第５の態様に係る乱数生成装置は、第２の態様に係る乱数生成装置において特に、前記制御部は、前記擬似乱数生成器が生成した擬似乱数の値が、予め設定された所定値に一致することにより、前記乱数生成部に前記発振回路の出力値をサンプリングさせるための制御信号を出力することを特徴とするものである。
【００１８】
第５の態様に係る乱数生成装置によれば、制御部は、擬似乱数生成器が生成した擬似乱数の値が、予め設定された所定値に一致することにより、乱数生成部に発振回路の出力値をサンプリングさせるための制御信号を出力する。制御信号が入力されることによって乱数生成部が発振回路の出力値をサンプリングすることにより、乱数生成部によって乱数を生成することが可能となる。また、システムクロックをカウントするためのカウンタを省略できるため、回路構成の簡略化を図ることができる。
【００１９】
本発明の第６の態様に係る乱数生成装置は、第２〜第５のいずれか一つの態様に係る乱数生成装置において特に、前記乱数生成部による乱数の生成を必要としない期間において、前記発振回路及び前記擬似乱数生成器の動作は停止されることを特徴とするものである。
【００２０】
第６の態様に係る乱数生成装置によれば、乱数生成部による乱数の生成を必要としない期間において、発振回路及び擬似乱数生成器の動作は停止される。これにより、消費電力の低減を図ることが可能となる。
【００２１】
本発明の第７の態様に係る乱数生成装置は、第１の態様に係る乱数生成装置において特に、前記制御部は、前記発振回路の出力値を初期値に用いてシステムクロックをカウントするカウンタを有することを特徴とするものである。
【００２２】
第７の態様に係る乱数生成装置によれば、制御部は、発振回路の出力値を初期値に用いてシステムクロックをカウントするカウンタを有する。発振回路の出力値は刻々と変化するため、カウンタの初期値も刻々と変化する。その結果、カウンタによる初期値から目標値までのシステムクロックのカウント数として、不規則に値が変化するデータを生成することが可能となる。
【００２３】
本発明の第８の態様に係る乱数生成装置は、第７の態様に係る乱数生成装置において特に、前記制御部は、所定値をシードに用いて擬似乱数を生成する擬似乱数生成器をさらに有し、前記カウンタによるシステムクロックのカウント数が、前記擬似乱数生成器が生成した擬似乱数の値に一致することにより、前記乱数生成部に前記発振回路の出力値をサンプリングさせるための制御信号を出力することを特徴とするものである。
【００２４】
第８の態様に係る乱数生成装置によれば、制御部は、カウンタによるシステムクロックのカウント数が、擬似乱数生成器が生成した擬似乱数の値に一致することにより、乱数生成部に発振回路の出力値をサンプリングさせるための制御信号を出力する。制御信号が入力されることによって乱数生成部が発振回路の出力値をサンプリングすることにより、乱数生成部によって乱数を生成することが可能となる。また、また、擬似乱数生成器が生成する擬似乱数の値（つまりカウンタの目標値）は刻々と変化するため、仮にカウンタの初期値が同一であっても、システムクロックのカウント数が擬似乱数の値に一致するまでのカウント数が変動するため、制御部が制御信号を出力するタイミングも変動し、その結果、乱数の真性度をより高めることが可能となる。
【００２５】
本発明の第９の態様に係る乱数生成装置は、第７の態様に係る乱数生成装置において特に、前記制御部は、前記カウンタによるシステムクロックのカウント数が、予め設定された所定値に一致することにより、前記乱数生成部に前記発振回路の出力値をサンプリングさせるための制御信号を出力することを特徴とするものである。
【００２６】
第９の態様に係る乱数生成装置によれば、制御部は、カウンタによるシステムクロックのカウント数が、予め設定された所定値に一致することにより、乱数生成部に発振回路の出力値をサンプリングさせるための制御信号を出力する。制御信号が入力されることによって乱数生成部が発振回路の出力値をサンプリングすることにより、乱数生成部によって乱数を生成することが可能となる。また、カウンタの目標値が所定値に固定されており、当該目標値を生成するための擬似乱数生成器を省略できるため、回路構成の簡略化を図ることができる。
【００２７】
本発明の第１０の態様に係る乱数生成装置は、第７〜第９のいずれか一つの態様に係る乱数生成装置において特に、前記乱数生成部による乱数の生成を必要としない期間において、前記発振回路及び前記カウンタの動作は停止されることを特徴とするものである。
【００２８】
第１０の態様に係る乱数生成装置によれば、乱数生成部による乱数の生成を必要としない期間において、発振回路及びカウンタの動作は停止される。これにより、消費電力の低減を図ることが可能となる。
【００２９】
本発明の第１１の態様に係る乱数生成方法は、（Ａ）二値論理の「０」と「１」とが交互に繰り返される出力値を生成するステップと、（Ｂ）前記ステップ（Ａ）によって生成された今回の出力値に基づいて、不規則に値が変化するデータを生成することにより、今回のサンプリングタイミングを決定するステップと、（Ｃ）前記ステップ（Ａ）によって生成された出力値を、前記ステップ（Ｂ）によって決定されたサンプリングタイミングでサンプリングすることにより、乱数を生成するステップと、を備えることを特徴とするものである。
【００３０】
第１１の態様に係る乱数生成方法によれば、ステップ（Ｂ）では、ステップ（Ａ）によって生成された今回の出力値に基づいて、不規則に値が変化するデータを生成することにより、今回のサンプリングタイミングが決定される。従って、ステップ（Ｂ）においてサンプリングタイミングを不規則に変動させることができ、その結果、ステップ（Ｃ）で生成される乱数の真性度（再現不可能性及び予測不可能性）を高めることが可能となる。また、システムクロックを分周してサンプリングクロックを生成する場合と比較すると、クロックの一本化によって回路設計を容易化できるとともに、システムクロックの整数倍に限らずサンプリングタイミングを細かく設定できるため、乱数の真性度をより高めることが可能となる。
【発明の効果】
【００３１】
本発明によれば、サンプリングタイミングを適切に制御することによって真性度の高い乱数を生成することが可能となる。
【図面の簡単な説明】
【００３２】
【図１】本発明の実施の形態１に係る乱数生成装置の構成を示す図である。
【図２】発振回路の構成を示す図である。
【図３】一つのリングオシレータの構成を示す図である。
【図４】シフトレジスタの構成を示す図である。
【図５】本発明の実施の形態２に係る乱数生成装置の構成を示す図である。
【図６】本発明の実施の形態３に係る乱数生成装置の構成を示す図である。
【図７】本発明の実施の形態４に係る乱数生成装置の構成を示す図である。
【図８】本発明の実施の形態５に係る乱数生成装置の構成を示す図である。
【発明を実施するための形態】
【００３３】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。
【００３４】
＜実施の形態１＞
図１は、本発明の実施の形態１に係る乱数生成装置１の構成を示す図である。図１の接続関係で示すように、乱数生成装置１は、発振回路２、シフトレジスタ３、及び制御部４を備えて構成されている。制御部４は、擬似乱数生成器１１、カウンタ１２、及び比較器１３を有している。なお、故障時又は不良時のバックアップ用として、擬似乱数生成器１１及びカウンタ１２は複数セット実装されていても良い。
【００３５】
発振回路２は、各ビットにおいて二値論理の「０」と「１」とが交互に繰り返されるＮビットの出力値Ｄ１を出力する。制御部４は、発振回路２の出力値Ｄ１に基づいて、不規則に値が変化するデータを生成することにより、制御信号Ｓ３によってサンプリングタイミングを決定する。シフトレジスタ３は、乱数生成部として機能し、制御部４によって決定されたサンプリングタイミングで発振回路２の出力値Ｄ１をサンプリングすることにより、真性乱数Ｄ４を生成する。
【００３６】
図２は、発振回路２の構成を示す図である。発振回路２は、複数Ｎ個のリングオシレータ５（１）〜５（Ｎ）が並列に接続された構成を有している。各リングオシレータ５には、発振回路２の動作開始を指示するためのイネーブル信号Ｓ１が共通に入力される。各リングオシレータ５からは、二値論理の「０」と「１」とが交互に繰り返される１ビットの出力値が出力され、Ｎ個のリングオシレータ５（１）〜５（Ｎ）が並列に接続されることによって、合計Ｎビットの出力値Ｄ１が発振回路２から出力される。
【００３７】
図３は、一つのリングオシレータ５の構成を示す図である。リングオシレータ５は、奇数個のＮＡＮＤ回路が直列に接続された構成を有している。図３に示した例では、リングオシレータ５は、５個のＮＡＮＤ回路６（１）〜６（５）を有している。各ＮＡＮＤ回路６の一方入力端子には、イネーブル信号Ｓ１が入力される。初段のＮＡＮＤ回路６（１）の他方入力端子には、最終段のＮＡＮＤ回路６（５）の出力が入力される。二段目以降のＮＡＮＤ回路６（２）〜６（５）の他方入力端子には、前段のＮＡＮＤ回路６（１）〜６（４）の出力が入力される。
【００３８】
図４は、シフトレジスタ３の構成を示す図である。シフトレジスタ３は、複数Ｍ個のフリップフロップ７（１）〜７（Ｍ）が直列に接続された構成を有している。各フリップフロップ７には、制御部４から制御信号Ｓ３が共通に入力される。また、各フリップフロップ７には、システムクロックＳＣが共通に入力される。
【００３９】
初段のフリップフロップ７（１）のＤ端子には、Ｎビットの出力値Ｄ１が発振回路２から入力される。二段目以降のフリップフロップ７（２）〜７（Ｍ）のＤ端子には、前段のフリップフロップ７（１）〜７（Ｍ−１）のＱ端子からの出力が入力される。Ｍ個のフリップフロップ７（１）〜７（Ｍ）が直列に接続され、各フリップフロップ７からのＮビットの出力が配列されることによって、合計Ｎ×Ｍビットの真性乱数Ｄ４がシフトレジスタ３から出力される。
【００４０】
以下、本実施の形態１に係る乱数生成装置１の動作について、図１を参照しつつ説明する。
【００４１】
真性乱数Ｄ４の生成が要求されていない期間において、イネーブル信号Ｓ１，Ｓ２はネゲートされており、それにより発振回路２及び制御部４の動作は停止されている。
【００４２】
真性乱数Ｄ４の生成が要求されると、まずイネーブル信号Ｓ１がアサートされる。イネーブル信号Ｓ１がアサートされることにより、発振回路２は発振動作を開始する。これにより、発振回路２から出力値Ｄ１が出力される。
【００４３】
次に擬似乱数生成器１１は、発振回路２から入力された出力値Ｄ１をシードとして用いて初期化を行い、その後、所定のアルゴリズムによって擬似乱数Ｄ２を生成する。擬似乱数生成器１１によって生成された擬似乱数Ｄ２は、比較器１３の一方入力端子に入力される。
【００４４】
次にカウンタ１２の動作開始を指示するためのイネーブル信号Ｓ２がアサートされることにより、カウンタ１２は、所定の初期値（例えば「０」）からシステムクロックＳＣのカウント動作を開始する。カウンタ１２は、システムクロックＳＣが入力される毎にカウント値をインクリメントし、そのカウント値Ｄ３は比較器１３の他方入力端子に入力される。
【００４５】
比較器１３は、擬似乱数Ｄ２の値とカウンタ１２のカウント値Ｄ３とを逐次比較する。そして、カウンタ１２のカウント動作が進行してカウント値Ｄ３が擬似乱数Ｄ２の値に一致することにより、シフトレジスタ３にサンプリングを行わせるための制御信号Ｓ３を出力する。
【００４６】
次にシフトレジスタ３は、比較器１３から制御信号Ｓ３が入力されることにより、その時点で発振回路２が出力している出力値Ｄ１をサンプリングする。図４を参照して、サンプリングされた出力値Ｄ１は初段のフリップフロップ７（１）に入力され、保持される。
【００４７】
また、比較器１３から出力された制御信号Ｓ３は、擬似乱数生成器１１及びカウンタ１２にも入力される。
【００４８】
擬似乱数生成器１１は、制御信号Ｓ３が入力されることにより、その時点で発振回路２から入力されている出力値Ｄ１をシードとして用いて初期化を行った後、二回目の擬似乱数Ｄ２を生成する。カウンタ１２は、制御信号Ｓ３が入力されることにより、カウント値を初期値に戻して二回目のカウント動作を開始する。二回目のカウント動作によるカウント値Ｄ３が二回目の擬似乱数Ｄ２の値に一致することにより、比較器１３は二回目の制御信号Ｓ３を出力する。シフトレジスタ３は、二回目の制御信号Ｓ３が入力されることにより、その時点で発振回路２が出力している出力値Ｄ１をサンプリングする。図４を参照して、サンプリングされた出力値Ｄ１は初段のフリップフロップ７（１）に入力され、保持される。また、初段のフリップフロップ７（１）がそれまで保持していた出力値Ｄ１（初回の制御信号Ｓ３に基づいてサンプリングした出力値Ｄ１）は、初段のフリップフロップ７（１）から二段目のフリップフロップ７（２）にシフトされる。上記と同様の動作をＭ回繰り返すことにより、Ｍ個のフリップフロップ７（１）〜７（Ｍ）の各々に出力値Ｄ１が保持される。そして、各フリップフロップ７（１）〜７（Ｍ）が保持しているＮビットの出力値Ｄ１を各々のＱ端子から出力し、これらＭ個の出力値Ｄ１を配列することによって、合計Ｎ×Ｍビットの真性乱数Ｄ４がシフトレジスタ３から出力される。
【００４９】
このように本実施の形態１に係る乱数生成装置１によれば、制御部４は、発振回路２の出力値Ｄ１に基づいて、不規則に値が変化するデータを生成することにより、サンプリングタイミングを決定する。従って、制御部４によってサンプリングタイミングを不規則に変動させることができ、その結果、シフトレジスタ３で生成される乱数Ｄ４の真性度（再現不可能性及び予測不可能性）を高めることが可能となる。また、周囲の温度や湿度等の環境要因によって発振回路２の出力値Ｄ１は変動するため、それに伴って制御部４が決定するサンプリングタイミングも変動し、その結果、乱数Ｄ４の真性度をより高めることが可能となる。さらに、システムクロックを分周してサンプリングクロックを生成する場合と比較すると、クロックの一本化によって回路設計を容易化できるとともに、システムクロックの整数倍に限らずサンプリングタイミングを細かく設定できるため、乱数Ｄ４の真性度をより高めることが可能となる。
【００５０】
また、本実施の形態１に係る乱数生成装置１によれば、制御部４は、発振回路２の出力値Ｄ１をシードに用いて擬似乱数Ｄ２を生成する擬似乱数生成器１１を有する。発振回路２の出力値Ｄ１は刻々と変化するため、それをシードに用いて生成される擬似乱数Ｄ２の値も刻々と変化する。その結果、当該擬似乱数Ｄ２の値として、不規則に値が変化するデータを生成することが可能となる。
【００５１】
また、本実施の形態１に係る乱数生成装置１によれば、制御部４は、カウンタ１２によるシステムクロックＳＣのカウント数が、擬似乱数生成器１１が生成した擬似乱数Ｄ２の値に一致することにより、シフトレジスタ３に発振回路２の出力値Ｄ１をサンプリングさせるための制御信号Ｓ３を出力する。制御信号Ｓ３が入力されることによってシフトレジスタ３が発振回路２の出力値Ｄ１をサンプリングすることにより、シフトレジスタ３によって乱数Ｄ４を生成することが可能となる。
【００５２】
また、本実施の形態１に係る乱数生成装置１によれば、乱数生成部４による乱数Ｄ４の生成を必要としない期間において、発振回路２及び制御部４の動作は停止されている。これにより、消費電力の低減を図ることが可能となる。
【００５３】
＜実施の形態２＞
図５は、本発明の実施の形態２に係る乱数生成装置１の構成を示す図である。図５の接続関係で示すように、乱数生成装置１は、発振回路２、シフトレジスタ３、及び制御部４を備えて構成されている。制御部４は、擬似乱数生成器１１、カウンタ１２、及び比較器１３を有している。
【００５４】
以下、本実施の形態２に係る乱数生成装置１の動作について、図５を参照しつつ説明する。
【００５５】
真性乱数Ｄ４の生成が要求されていない期間において、イネーブル信号Ｓ１，Ｓ２はネゲートされており、それにより発振回路２及び制御部４の動作は停止されている。
【００５６】
真性乱数Ｄ４の生成が要求されると、まずイネーブル信号Ｓ１がアサートされる。イネーブル信号Ｓ１がアサートされることにより、発振回路２は発振動作を開始する。これにより、発振回路２から出力値Ｄ１が出力される。
【００５７】
次に擬似乱数生成器１１は、発振回路２から入力された出力値Ｄ１をシードとして用いて初期化を行い、その後、所定のアルゴリズムによって擬似乱数Ｄ２を生成する。擬似乱数生成器１１によって生成された擬似乱数Ｄ２は、比較器１３の一方入力端子に入力される。
【００５８】
また、発振回路２の出力値Ｄ１はカウンタ１２にも入力されており、カウンタ１２は、入力された出力値Ｄ１をカウントの初期値として設定する。
【００５９】
次にカウンタ１２の動作開始を指示するためのイネーブル信号Ｓ２がアサートされることにより、カウンタ１２は、上記で設定した初期値からシステムクロックＳＣのカウント動作を開始する。カウンタ１２は、システムクロックＳＣが入力される毎にカウント値をインクリメントし、そのカウント値Ｄ３は比較器１３の他方入力端子に入力される。
【００６０】
比較器１３は、擬似乱数Ｄ２の値とカウンタ１２のカウント値Ｄ３とを逐次比較する。そして、カウンタ１２のカウント動作が進行してカウント値Ｄ３が擬似乱数Ｄ２の値に一致することにより、シフトレジスタ３にサンプリングを行わせるための制御信号Ｓ３を出力する。
【００６１】
次にシフトレジスタ３は、比較器１３から制御信号Ｓ３が入力されることにより、その時点で発振回路２が出力している出力値Ｄ１をサンプリングする。
【００６２】
また、比較器１３から出力された制御信号Ｓ３は、擬似乱数生成器１１及びカウンタ１２にも入力される。
【００６３】
擬似乱数生成器１１は、制御信号Ｓ３が入力されることにより、その時点で発振回路２から入力されている出力値Ｄ１をシードとして用いて初期化を行った後、二回目の擬似乱数Ｄ２を生成する。カウンタ１２は、制御信号Ｓ３が入力されることにより、その時点で発振回路２から入力されている出力値Ｄ１を二回目の初期値として設定する。そして、当該二回目の初期値から二回目のカウント動作を開始する。二回目のカウント動作によるカウント値Ｄ３が二回目の擬似乱数Ｄ２の値に一致することにより、比較器１３は二回目の制御信号Ｓ３を出力する。シフトレジスタ３は、二回目の制御信号Ｓ３が入力されることにより、その時点で発振回路２が出力している出力値Ｄ１をサンプリングする。上記と同様の動作をＭ回繰り返すことにより、Ｍ個のフリップフロップ７（１）〜７（Ｍ）の各々に出力値Ｄ１が保持される。そして、各フリップフロップ７（１）〜７（Ｍ）が保持しているＮビットの出力値Ｄ１を各々のＱ端子から出力し、これらＭ個の出力値Ｄ１を配列することによって、合計Ｎ×Ｍビットの真性乱数Ｄ４がシフトレジスタ３から出力される。
【００６４】
このように本実施の形態２に係る乱数生成装置１によれば、制御部４は、カウンタ１２によるシステムクロックＳＣのカウント数が、擬似乱数生成器１１が生成した擬似乱数Ｄ２の値に一致することにより、シフトレジスタ３に発振回路２の出力値Ｄ１をサンプリングさせるための制御信号Ｓ３を出力する。制御信号Ｓ３が入力されることによってシフトレジスタ３が発振回路２の出力値Ｄ１をサンプリングすることにより、シフトレジスタ３によって乱数Ｄ４を生成することが可能となる。また、カウンタ１２の初期値としては、発振回路２の出力値Ｄ１が用いられる。発振回路２の出力値Ｄ１は刻々と変化するため、カウンタ１２の初期値も刻々と変化する。従って、仮に擬似乱数Ｄ２の値が同一であっても、システムクロックＳＣのカウント数が擬似乱数Ｄ２の値に一致するまでのカウント数が変動するため、制御部４が制御信号Ｓ３を出力するタイミングも変動し、その結果、乱数Ｄ４の真性度をより高めることが可能となる。
【００６５】
＜実施の形態３＞
図６は、本発明の実施の形態３に係る乱数生成装置１の構成を示す図である。図６の接続関係で示すように、乱数生成装置１は、発振回路２、シフトレジスタ３、及び制御部４を備えて構成されている。制御部４は、擬似乱数生成器１１、レジスタ１４、及び比較器１３を有している。
【００６６】
以下、本実施の形態３に係る乱数生成装置１の動作について、図６を参照しつつ説明する。
【００６７】
真性乱数Ｄ４の生成が要求されていない期間において、イネーブル信号Ｓ１，Ｓ２はネゲートされており、それにより発振回路２及び制御部４の動作は停止されている。
【００６８】
真性乱数Ｄ４の生成が要求されると、まずイネーブル信号Ｓ１がアサートされる。イネーブル信号Ｓ１がアサートされることにより、発振回路２は発振動作を開始する。これにより、発振回路２から出力値Ｄ１が出力される。
【００６９】
次に擬似乱数生成器１１は、発振回路２から入力された出力値Ｄ１をシードとして用いて初期化を行い、その後、所定のアルゴリズムによって擬似乱数Ｄ２を生成する。擬似乱数生成器１１にはシステムクロックＳＣが入力されており、擬似乱数生成器１１は、システムクロックＳＣに同期して新たな擬似乱数Ｄ２を生成する。擬似乱数生成器１１によって生成された擬似乱数Ｄ２は、比較器１３の一方入力端子に入力される。
【００７０】
レジスタ１４には、予め設定された一又は複数の所定値Ｖが格納されている。所定値Ｖは、比較器１３の他方入力端子にデータＤ５として入力される。
【００７１】
比較器１３は、擬似乱数Ｄ２の値と所定値Ｖとを逐次比較する。そして、擬似乱数Ｄ２の値が所定値Ｖに一致することにより、シフトレジスタ３にサンプリングを行わせるための制御信号Ｓ３を出力する。
【００７２】
次にシフトレジスタ３は、比較器１３から制御信号Ｓ３が入力されることにより、その時点で発振回路２が出力している出力値Ｄ１をサンプリングする。
【００７３】
また、比較器１３から出力された制御信号Ｓ３は、擬似乱数生成器１１にも入力される。
【００７４】
擬似乱数生成器１１は、制御信号Ｓ３が入力されることにより、その時点で発振回路２から入力されている出力値Ｄ１をシードとして用いて初期化を行った後、上記と同様にシステムクロックＳＣに同期して擬似乱数Ｄ２を生成する。比較器１３は、擬似乱数Ｄ２の値と所定値Ｖとを逐次比較する。そして、擬似乱数Ｄ２の値が所定値Ｖに一致することにより、二回目の制御信号Ｓ３を出力する。シフトレジスタ３は、二回目の制御信号Ｓ３が入力されることにより、その時点で発振回路２が出力している出力値Ｄ１をサンプリングする。上記と同様の動作をＭ回繰り返すことにより、Ｍ個のフリップフロップ７（１）〜７（Ｍ）の各々に出力値Ｄ１が保持される。そして、各フリップフロップ７（１）〜７（Ｍ）が保持しているＮビットの出力値Ｄ１を各々のＱ端子から出力し、これらＭ個の出力値Ｄ１を配列することによって、合計Ｎ×Ｍビットの真性乱数Ｄ４がシフトレジスタ３から出力される。
【００７５】
このように本実施の形態３に係る乱数生成装置１によれば、制御部４は、擬似乱数生成器１１が生成した擬似乱数Ｄ２の値が、予め設定された所定値Ｖに一致することにより、シフトレジスタ３に発振回路２の出力値Ｄ１をサンプリングさせるための制御信号Ｓ３を出力する。制御信号Ｓ３が入力されることによってシフトレジスタ３が発振回路２の出力値Ｄ１をサンプリングすることにより、シフトレジスタ３によって乱数Ｄ４を生成することが可能となる。また、システムクロックＳＣをカウントするためのカウンタ１２を省略できるため、回路構成の簡略化を図ることができる。
【００７６】
＜実施の形態４＞
図７は、本発明の実施の形態４に係る乱数生成装置１の構成を示す図である。図７の接続関係で示すように、乱数生成装置１は、発振回路２、シフトレジスタ３、及び制御部４を備えて構成されている。制御部４は、擬似乱数生成器１１、カウンタ１２、及び比較器１３を有している。
【００７７】
以下、本実施の形態４に係る乱数生成装置１の動作について、図７を参照しつつ説明する。
【００７８】
真性乱数Ｄ４の生成が要求されていない期間において、イネーブル信号Ｓ１，Ｓ２はネゲートされており、それにより発振回路２及び制御部４の動作は停止されている。
【００７９】
真性乱数Ｄ４の生成が要求されると、まずイネーブル信号Ｓ１がアサートされる。イネーブル信号Ｓ１がアサートされることにより、発振回路２は発振動作を開始する。これにより、発振回路２から出力値Ｄ１が出力される。
【００８０】
次に擬似乱数生成器１１は、予め設定された所定値をシードとして用いて初期化を行い、その後、所定のアルゴリズムによって擬似乱数Ｄ２を生成する。擬似乱数生成器１１によって生成された擬似乱数Ｄ２は、比較器１３の一方入力端子に入力される。
【００８１】
また、発振回路２の出力値Ｄ１はカウンタ１２に入力されており、カウンタ１２は、入力された出力値Ｄ１をカウントの初期値として設定する。
【００８２】
次にカウンタ１２の動作開始を指示するためのイネーブル信号Ｓ２がアサートされることにより、カウンタ１２は、上記で設定した初期値からシステムクロックＳＣのカウント動作を開始する。カウンタ１２は、システムクロックＳＣが入力される毎にカウント値をインクリメントし、そのカウント値Ｄ３は比較器１３の他方入力端子に入力される。
【００８３】
比較器１３は、擬似乱数Ｄ２の値とカウンタ１２のカウント値Ｄ３とを逐次比較する。そして、カウンタ１２のカウント動作が進行してカウント値Ｄ３が擬似乱数Ｄ２の値に一致することにより、シフトレジスタ３にサンプリングを行わせるための制御信号Ｓ３を出力する。
【００８４】
次にシフトレジスタ３は、比較器１３から制御信号Ｓ３が入力されることにより、その時点で発振回路２が出力している出力値Ｄ１をサンプリングする。
【００８５】
また、比較器１３から出力された制御信号Ｓ３は、擬似乱数生成器１１及びカウンタ１２にも入力される。
【００８６】
擬似乱数生成器１１は、制御信号Ｓ３が入力されることにより、二回目の擬似乱数Ｄ２を生成する。カウンタ１２は、制御信号Ｓ３が入力されることにより、その時点で発振回路２から入力されている出力値Ｄ１を二回目の初期値として設定する。そして、当該二回目の初期値から二回目のカウント動作を開始する。二回目のカウント動作によるカウント値Ｄ３が二回目の擬似乱数Ｄ２の値に一致することにより、比較器１３は二回目の制御信号Ｓ３を出力する。シフトレジスタ３は、二回目の制御信号Ｓ３が入力されることにより、その時点で発振回路２が出力している出力値Ｄ１をサンプリングする。上記と同様の動作をＭ回繰り返すことにより、Ｍ個のフリップフロップ７（１）〜７（Ｍ）の各々に出力値Ｄ１が保持される。そして、各フリップフロップ７（１）〜７（Ｍ）が保持しているＮビットの出力値Ｄ１を各々のＱ端子から出力し、これらＭ個の出力値Ｄ１を配列することによって、合計Ｎ×Ｍビットの真性乱数Ｄ４がシフトレジスタ３から出力される。
【００８７】
このように本実施の形態４に係る乱数生成装置１によれば、制御部４は、発振回路２の出力値Ｄ１を初期値に用いてシステムクロックＳＣをカウントするカウンタ１２を有する。発振回路２の出力値Ｄ１は刻々と変化するため、カウンタ１２の初期値も刻々と変化する。その結果、カウンタ１２による初期値から目標値（擬似乱数Ｄ２の値）までのシステムクロックＳＣのカウント数として、不規則に値が変化するデータを生成することが可能となる。
【００８８】
また、制御部４は、カウンタ１２によるシステムクロックＳＣのカウント数が、擬似乱数生成器１１が生成した擬似乱数Ｄ２の値に一致することにより、シフトレジスタ３に発振回路２の出力値Ｄ１をサンプリングさせるための制御信号Ｓ３を出力する。制御信号Ｓ３が入力されることによってシフトレジスタ３が発振回路２の出力値Ｄ１をサンプリングすることにより、シフトレジスタ３によって乱数Ｄ４を生成することが可能となる。また、擬似乱数生成器１１が生成する擬似乱数Ｄ２の値（つまりカウンタ１２の目標値）は刻々と変化するため、仮にカウンタ１２の初期値が同一であっても、システムクロックＳＣのカウント数が擬似乱数Ｄ２の値に一致するまでのカウント数が変動するため、制御部４が制御信号Ｓ３を出力するタイミングも変動し、その結果、乱数Ｄ４の真性度をより高めることが可能となる。
【００８９】
＜実施の形態５＞
図８は、本発明の実施の形態５に係る乱数生成装置１の構成を示す図である。図８の接続関係で示すように、乱数生成装置１は、発振回路２、シフトレジスタ３、及び制御部４を備えて構成されている。制御部４は、レジスタ１５、カウンタ１２、及び比較器１３を有している。
【００９０】
以下、本実施の形態５に係る乱数生成装置１の動作について、図８を参照しつつ説明する。
【００９１】
真性乱数Ｄ４の生成が要求されていない期間において、イネーブル信号Ｓ１，Ｓ２はネゲートされており、それにより発振回路２及び制御部４の動作は停止されている。
【００９２】
真性乱数Ｄ４の生成が要求されると、まずイネーブル信号Ｓ１がアサートされる。イネーブル信号Ｓ１がアサートされることにより、発振回路２は発振動作を開始する。これにより、発振回路２から出力値Ｄ１が出力される。
【００９３】
レジスタ１５には、予め設定された一又は複数の所定値Ｗが格納されている。所定値Ｗは、比較器１３の一方入力端子にデータＤ６として入力される。
【００９４】
発振回路２の出力値Ｄ１はカウンタ１２に入力されており、カウンタ１２は、入力された出力値Ｄ１をカウントの初期値として設定する。
【００９５】
次にカウンタ１２の動作開始を指示するためのイネーブル信号Ｓ２がアサートされることにより、カウンタ１２は、上記で設定した初期値からシステムクロックＳＣのカウント動作を開始する。カウンタ１２は、システムクロックＳＣが入力される毎にカウント値をインクリメントし、そのカウント値Ｄ３は比較器１３の他方入力端子に入力される。
【００９６】
比較器１３は、所定値Ｗとカウンタ１２のカウント値Ｄ３とを逐次比較する。そして、カウンタ１２のカウント動作が進行してカウント値Ｄ３が所定値Ｗに一致することにより、シフトレジスタ３にサンプリングを行わせるための制御信号Ｓ３を出力する。
【００９７】
次にシフトレジスタ３は、比較器１３から制御信号Ｓ３が入力されることにより、その時点で発振回路２が出力している出力値Ｄ１をサンプリングする。
【００９８】
また、比較器１３から出力された制御信号Ｓ３は、カウンタ１２にも入力される。
【００９９】
カウンタ１２は、制御信号Ｓ３が入力されることにより、その時点で発振回路２から入力されている出力値Ｄ１を二回目の初期値として設定する。そして、当該二回目の初期値から二回目のカウント動作を開始する。二回目のカウント動作によるカウント値Ｄ３が所定値Ｗに一致することにより、比較器１３は二回目の制御信号Ｓ３を出力する。シフトレジスタ３は、二回目の制御信号Ｓ３が入力されることにより、その時点で発振回路２が出力している出力値Ｄ１をサンプリングする。上記と同様の動作をＭ回繰り返すことにより、Ｍ個のフリップフロップ７（１）〜７（Ｍ）の各々に出力値Ｄ１が保持される。そして、各フリップフロップ７（１）〜７（Ｍ）が保持しているＮビットの出力値Ｄ１を各々のＱ端子から出力し、これらＭ個の出力値Ｄ１を配列することによって、合計Ｎ×Ｍビットの真性乱数Ｄ４がシフトレジスタ３から出力される。
【０１００】
このように本実施の形態５に係る乱数生成装置１によれば、制御部４は、カウンタ１２によるシステムクロックＳＣのカウント数が、予め設定された所定値Ｗに一致することにより、シフトレジスタ３に発振回路２の出力値Ｄ１をサンプリングさせるための制御信号Ｓ３を出力する。制御信号Ｓ３が入力されることによってシフトレジスタ３が発振回路２の出力値Ｄ１をサンプリングすることにより、シフトレジスタ３によって乱数Ｄ４を生成することが可能となる。また、カウンタ１２の目標値が所定値Ｗに固定されており、当該目標値を生成するための擬似乱数生成器１１を省略できるため、回路構成の簡略化を図ることができる。
【符号の説明】
【０１０１】
１  乱数生成装置
２  発振回路
３  シフトレジスタ
４  制御部
１１  擬似乱数生成器
１２カウンタ
１３  比較器
【図１】
0006386904.tif 000002
【図２】
0006386904.tif 000003
【図３】
0006386904.tif 000004
【図４】
0006386904.tif 000005
【図５】
0006386904.tif 000006
【図６】
0006386904.tif 000007
【図７】
0006386904.tif 000008
【図８】
0006386904.tif 000009