特許第6386904号(P6386904)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社メガチップスの特許一覧

<>
  • 特許6386904-乱数生成装置及び乱数生成方法 図000002
  • 特許6386904-乱数生成装置及び乱数生成方法 図000003
  • 特許6386904-乱数生成装置及び乱数生成方法 図000004
  • 特許6386904-乱数生成装置及び乱数生成方法 図000005
  • 特許6386904-乱数生成装置及び乱数生成方法 図000006
  • 特許6386904-乱数生成装置及び乱数生成方法 図000007
  • 特許6386904-乱数生成装置及び乱数生成方法 図000008
  • 特許6386904-乱数生成装置及び乱数生成方法 図000009
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6386904
(24)【登録日】2018年8月17日
(45)【発行日】2018年9月5日
(54)【発明の名称】乱数生成装置及び乱数生成方法
(51)【国際特許分類】
   G06F 7/58 20060101AFI20180827BHJP
   G09C 1/00 20060101ALI20180827BHJP
【FI】
   G06F7/58 680
   G09C1/00 650B
【請求項の数】11
【全頁数】16
(21)【出願番号】特願2014-258121(P2014-258121)
(22)【出願日】2014年12月19日
(65)【公開番号】特開2016-118934(P2016-118934A)
(43)【公開日】2016年6月30日
【審査請求日】2017年6月22日
(73)【特許権者】
【識別番号】591128453
【氏名又は名称】株式会社メガチップス
(74)【代理人】
【識別番号】100136353
【弁理士】
【氏名又は名称】高尾 建吾
(72)【発明者】
【氏名】菅原 崇彦
【審査官】 田川 泰宏
(56)【参考文献】
【文献】 特開2005−174206(JP,A)
【文献】 特開2004−234153(JP,A)
【文献】 特開2005−044090(JP,A)
【文献】 特開2012−155388(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 7/58
G09C 1/00
(57)【特許請求の範囲】
【請求項1】
二値論理の「0」と「1」とが交互に繰り返される出力値を出力する発振回路と、
前記発振回路の今回の出力値に基づいて、不規則に値が変化するデータを生成することにより、今回のサンプリングタイミングを決定する制御部と、
前記発振回路の出力値を、前記制御部によって決定されたサンプリングタイミングでサンプリングすることにより、乱数を生成する乱数生成部と、
を備える、乱数生成装置。
【請求項2】
前記制御部は、前記発振回路の出力値をシードに用いて擬似乱数を生成する擬似乱数生成器を有する、請求項1に記載の乱数生成装置。
【請求項3】
前記制御部は、
所定の初期値からシステムクロックをカウントするカウンタをさらに有し、
前記カウンタによるシステムクロックのカウント数が、前記擬似乱数生成器が生成した擬似乱数の値に一致することにより、前記乱数生成部に前記発振回路の出力値をサンプリングさせるための制御信号を出力する、請求項2に記載の乱数生成装置。
【請求項4】
前記制御部は、
前記発振回路の出力値を初期値に用いてシステムクロックをカウントするカウンタをさらに有し、
前記カウンタによるシステムクロックのカウント数が、前記擬似乱数生成器が生成した擬似乱数の値に一致することにより、前記乱数生成部に前記発振回路の出力値をサンプリングさせるための制御信号を出力する、請求項2に記載の乱数生成装置。
【請求項5】
前記制御部は、前記擬似乱数生成器が生成した擬似乱数の値が、予め設定された所定値に一致することにより、前記乱数生成部に前記発振回路の出力値をサンプリングさせるための制御信号を出力する、請求項2に記載の乱数生成装置。
【請求項6】
前記乱数生成部による乱数の生成を必要としない期間において、前記発振回路及び前記擬似乱数生成器の動作は停止される、請求項2〜5のいずれか一つに記載の乱数生成装置。
【請求項7】
前記制御部は、前記発振回路の出力値を初期値に用いてシステムクロックをカウントするカウンタを有する、請求項1に記載の乱数生成装置。
【請求項8】
前記制御部は、
所定値をシードに用いて擬似乱数を生成する擬似乱数生成器をさらに有し、
前記カウンタによるシステムクロックのカウント数が、前記擬似乱数生成器が生成した擬似乱数の値に一致することにより、前記乱数生成部に前記発振回路の出力値をサンプリングさせるための制御信号を出力する、請求項6に記載の乱数生成装置。
【請求項9】
前記制御部は、前記カウンタによるシステムクロックのカウント数が、予め設定された所定値に一致することにより、前記乱数生成部に前記発振回路の出力値をサンプリングさせるための制御信号を出力する、請求項7に記載の乱数生成装置。
【請求項10】
前記乱数生成部による乱数の生成を必要としない期間において、前記発振回路及び前記カウンタの動作は停止される、請求項7〜9のいずれか一つに記載の乱数生成装置。
【請求項11】
(A)二値論理の「0」と「1」とが交互に繰り返される出力値を生成するステップと、
(B)前記ステップ(A)によって生成された今回の出力値に基づいて、不規則に値が変化するデータを生成することにより、今回のサンプリングタイミングを決定するステップと、
(C)前記ステップ(A)によって生成された出力値を、前記ステップ(B)によって決定されたサンプリングタイミングでサンプリングすることにより、乱数を生成するステップと、
を備える、乱数生成方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、乱数生成装置及び乱数生成方法に関し、特に、真性乱数の生成装置及び生成方法に関する。
【背景技術】
【0002】
近年における情報技術の発達に伴い、第三者による盗聴、改ざん、なりすまし等の犯罪が増加する傾向にある。そのため、暗号化による情報セキュリティが重要になってきており、暗号化において乱数の利用は不可欠である。
【0003】
従来は、関数の組み合わせによる計算式を用いた演算によって生成される擬似乱数が多く使用されていたが、関数や初期設定が人為的に漏洩する危険性や、第三者によって乱数生成パターンが予測され得る可能性があった。そのため、擬似乱数に代えて、再現不可能性及び予測不可能性の高い真性乱数が求められるようになった。
【0004】
一般的な真性乱数生成器では、二値論理の「0」と「1」とが交互に繰り返される出力値をリング発振器から出力し、その出力値をシフトレジスタで所定のサンプリングクロックを用いてサンプリングすることによって、真性乱数が生成される。
【0005】
なお、下記特許文献1には、乱数出力レジスタから出力された乱数出力に基づいてシステムクロックの整数倍のサンプリングクロックを生成し、当該サンプリングクロックを用いて発振器の出力値をサンプリングすることにより、乱数出力レジスタで乱数を生成する真性乱数生成装置が開示されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2005−174206号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
上記の通り一般的な真性乱数生成器では、リング発振器からの出力値をシフトレジスタでサンプリングすることによって、真性乱数が生成される。ここで、生成される乱数の真性度(再現不可能性及び予測不可能性)はサンプリングの精度に左右され、単純に一定周期のサンプリングクロックを用いてサンプリングを行ったのでは、真性度の高い乱数を生成することができない。
【0008】
本発明はかかる事情に鑑みて成されたものであり、サンプリングタイミングを適切に制御することによって真性度の高い乱数を生成することが可能な、乱数生成装置及び乱数生成方法を得ることを目的とするものである。
【課題を解決するための手段】
【0009】
本発明の第1の態様に係る乱数生成装置は、二値論理の「0」と「1」とが交互に繰り返される出力値を出力する発振回路と、前記発振回路の今回の出力値に基づいて、不規則に値が変化するデータを生成することにより、今回のサンプリングタイミングを決定する制御部と、前記発振回路の出力値を、前記制御部によって決定されたサンプリングタイミングでサンプリングすることにより、乱数を生成する乱数生成部と、を備えることを特徴とするものである。
【0010】
第1の態様に係る乱数生成装置によれば、制御部は、発振回路の今回の出力値に基づいて、不規則に値が変化するデータを生成することにより、今回のサンプリングタイミングを決定する。従って、制御部によってサンプリングタイミングを不規則に変動させることができ、その結果、乱数生成部で生成される乱数の真性度(再現不可能性及び予測不可能性)を高めることが可能となる。また、周囲の温度や湿度等の環境要因によって発振回路の出力値は変動するため、それに伴って制御部が決定するサンプリングタイミングも変動し、その結果、乱数の真性度をより高めることが可能となる。さらに、システムクロックを分周してサンプリングクロックを生成する場合と比較すると、クロックの一本化によって回路設計を容易化できるとともに、システムクロックの整数倍に限らずサンプリングタイミングを細かく設定できるため、乱数の真性度をより高めることが可能となる。
【0011】
本発明の第2の態様に係る乱数生成装置は、第1の態様に係る乱数生成装置において特に、前記制御部は、前記発振回路の出力値をシードに用いて擬似乱数を生成する擬似乱数生成器を有することを特徴とするものである。
【0012】
第2の態様に係る乱数生成装置によれば、制御部は、発振回路の出力値をシードに用いて擬似乱数を生成する擬似乱数生成器を有する。発振回路の出力値は刻々と変化するため、それをシードに用いて生成される擬似乱数の値も刻々と変化する。その結果、当該擬似乱数の値として、不規則に値が変化するデータを生成することが可能となる。
【0013】
本発明の第3の態様に係る乱数生成装置は、第2の態様に係る乱数生成装置において特に、前記制御部は、所定の初期値からシステムクロックをカウントするカウンタをさらに有し、前記カウンタによるシステムクロックのカウント数が、前記擬似乱数生成器が生成した擬似乱数の値に一致することにより、前記乱数生成部に前記発振回路の出力値をサンプリングさせるための制御信号を出力することを特徴とするものである。
【0014】
第3の態様に係る乱数生成装置によれば、制御部は、カウンタによるシステムクロックのカウント数が、擬似乱数生成器が生成した擬似乱数の値に一致することにより、乱数生成部に発振回路の出力値をサンプリングさせるための制御信号を出力する。制御信号が入力されることによって乱数生成部が発振回路の出力値をサンプリングすることにより、乱数生成部によって乱数を生成することが可能となる。
【0015】
本発明の第4の態様に係る乱数生成装置は、第2の態様に係る乱数生成装置において特に、前記制御部は、前記発振回路の出力値を初期値に用いてシステムクロックをカウントするカウンタをさらに有し、前記カウンタによるシステムクロックのカウント数が、前記擬似乱数生成器が生成した擬似乱数の値に一致することにより、前記乱数生成部に前記発振回路の出力値をサンプリングさせるための制御信号を出力することを特徴とするものである。
【0016】
第4の態様に係る乱数生成装置によれば、制御部は、カウンタによるシステムクロックのカウント数が、擬似乱数生成器が生成した擬似乱数の値に一致することにより、乱数生成部に発振回路の出力値をサンプリングさせるための制御信号を出力する。制御信号が入力されることによって乱数生成部が発振回路の出力値をサンプリングすることにより、乱数生成部によって乱数を生成することが可能となる。また、カウンタの初期値としては、発振回路の出力値が用いられる。発振回路の出力値は刻々と変化するため、カウンタの初期値も刻々と変化する。従って、仮に擬似乱数の値が同一であっても、システムクロックのカウント数が擬似乱数の値に一致するまでのカウント数が変動するため、制御部が制御信号を出力するタイミングも変動し、その結果、乱数の真性度をより高めることが可能となる。
【0017】
本発明の第5の態様に係る乱数生成装置は、第2の態様に係る乱数生成装置において特に、前記制御部は、前記擬似乱数生成器が生成した擬似乱数の値が、予め設定された所定値に一致することにより、前記乱数生成部に前記発振回路の出力値をサンプリングさせるための制御信号を出力することを特徴とするものである。
【0018】
第5の態様に係る乱数生成装置によれば、制御部は、擬似乱数生成器が生成した擬似乱数の値が、予め設定された所定値に一致することにより、乱数生成部に発振回路の出力値をサンプリングさせるための制御信号を出力する。制御信号が入力されることによって乱数生成部が発振回路の出力値をサンプリングすることにより、乱数生成部によって乱数を生成することが可能となる。また、システムクロックをカウントするためのカウンタを省略できるため、回路構成の簡略化を図ることができる。
【0019】
本発明の第6の態様に係る乱数生成装置は、第2〜第5のいずれか一つの態様に係る乱数生成装置において特に、前記乱数生成部による乱数の生成を必要としない期間において、前記発振回路及び前記擬似乱数生成器の動作は停止されることを特徴とするものである。
【0020】
第6の態様に係る乱数生成装置によれば、乱数生成部による乱数の生成を必要としない期間において、発振回路及び擬似乱数生成器の動作は停止される。これにより、消費電力の低減を図ることが可能となる。
【0021】
本発明の第7の態様に係る乱数生成装置は、第1の態様に係る乱数生成装置において特に、前記制御部は、前記発振回路の出力値を初期値に用いてシステムクロックをカウントするカウンタを有することを特徴とするものである。
【0022】
第7の態様に係る乱数生成装置によれば、制御部は、発振回路の出力値を初期値に用いてシステムクロックをカウントするカウンタを有する。発振回路の出力値は刻々と変化するため、カウンタの初期値も刻々と変化する。その結果、カウンタによる初期値から目標値までのシステムクロックのカウント数として、不規則に値が変化するデータを生成することが可能となる。
【0023】
本発明の第8の態様に係る乱数生成装置は、第7の態様に係る乱数生成装置において特に、前記制御部は、所定値をシードに用いて擬似乱数を生成する擬似乱数生成器をさらに有し、前記カウンタによるシステムクロックのカウント数が、前記擬似乱数生成器が生成した擬似乱数の値に一致することにより、前記乱数生成部に前記発振回路の出力値をサンプリングさせるための制御信号を出力することを特徴とするものである。
【0024】
第8の態様に係る乱数生成装置によれば、制御部は、カウンタによるシステムクロックのカウント数が、擬似乱数生成器が生成した擬似乱数の値に一致することにより、乱数生成部に発振回路の出力値をサンプリングさせるための制御信号を出力する。制御信号が入力されることによって乱数生成部が発振回路の出力値をサンプリングすることにより、乱数生成部によって乱数を生成することが可能となる。また、また、擬似乱数生成器が生成する擬似乱数の値(つまりカウンタの目標値)は刻々と変化するため、仮にカウンタの初期値が同一であっても、システムクロックのカウント数が擬似乱数の値に一致するまでのカウント数が変動するため、制御部が制御信号を出力するタイミングも変動し、その結果、乱数の真性度をより高めることが可能となる。
【0025】
本発明の第9の態様に係る乱数生成装置は、第7の態様に係る乱数生成装置において特に、前記制御部は、前記カウンタによるシステムクロックのカウント数が、予め設定された所定値に一致することにより、前記乱数生成部に前記発振回路の出力値をサンプリングさせるための制御信号を出力することを特徴とするものである。
【0026】
第9の態様に係る乱数生成装置によれば、制御部は、カウンタによるシステムクロックのカウント数が、予め設定された所定値に一致することにより、乱数生成部に発振回路の出力値をサンプリングさせるための制御信号を出力する。制御信号が入力されることによって乱数生成部が発振回路の出力値をサンプリングすることにより、乱数生成部によって乱数を生成することが可能となる。また、カウンタの目標値が所定値に固定されており、当該目標値を生成するための擬似乱数生成器を省略できるため、回路構成の簡略化を図ることができる。
【0027】
本発明の第10の態様に係る乱数生成装置は、第7〜第9のいずれか一つの態様に係る乱数生成装置において特に、前記乱数生成部による乱数の生成を必要としない期間において、前記発振回路及び前記カウンタの動作は停止されることを特徴とするものである。
【0028】
第10の態様に係る乱数生成装置によれば、乱数生成部による乱数の生成を必要としない期間において、発振回路及びカウンタの動作は停止される。これにより、消費電力の低減を図ることが可能となる。
【0029】
本発明の第11の態様に係る乱数生成方法は、(A)二値論理の「0」と「1」とが交互に繰り返される出力値を生成するステップと、(B)前記ステップ(A)によって生成された今回の出力値に基づいて、不規則に値が変化するデータを生成することにより、今回のサンプリングタイミングを決定するステップと、(C)前記ステップ(A)によって生成された出力値を、前記ステップ(B)によって決定されたサンプリングタイミングでサンプリングすることにより、乱数を生成するステップと、を備えることを特徴とするものである。
【0030】
第11の態様に係る乱数生成方法によれば、ステップ(B)では、ステップ(A)によって生成された今回の出力値に基づいて、不規則に値が変化するデータを生成することにより、今回のサンプリングタイミングが決定される。従って、ステップ(B)においてサンプリングタイミングを不規則に変動させることができ、その結果、ステップ(C)で生成される乱数の真性度(再現不可能性及び予測不可能性)を高めることが可能となる。また、システムクロックを分周してサンプリングクロックを生成する場合と比較すると、クロックの一本化によって回路設計を容易化できるとともに、システムクロックの整数倍に限らずサンプリングタイミングを細かく設定できるため、乱数の真性度をより高めることが可能となる。
【発明の効果】
【0031】
本発明によれば、サンプリングタイミングを適切に制御することによって真性度の高い乱数を生成することが可能となる。
【図面の簡単な説明】
【0032】
図1】本発明の実施の形態1に係る乱数生成装置の構成を示す図である。
図2】発振回路の構成を示す図である。
図3】一つのリングオシレータの構成を示す図である。
図4】シフトレジスタの構成を示す図である。
図5】本発明の実施の形態2に係る乱数生成装置の構成を示す図である。
図6】本発明の実施の形態3に係る乱数生成装置の構成を示す図である。
図7】本発明の実施の形態4に係る乱数生成装置の構成を示す図である。
図8】本発明の実施の形態5に係る乱数生成装置の構成を示す図である。
【発明を実施するための形態】
【0033】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。
【0034】
<実施の形態1>
図1は、本発明の実施の形態1に係る乱数生成装置1の構成を示す図である。図1の接続関係で示すように、乱数生成装置1は、発振回路2、シフトレジスタ3、及び制御部4を備えて構成されている。制御部4は、擬似乱数生成器11、カウンタ12、及び比較器13を有している。なお、故障時又は不良時のバックアップ用として、擬似乱数生成器11及びカウンタ12は複数セット実装されていても良い。
【0035】
発振回路2は、各ビットにおいて二値論理の「0」と「1」とが交互に繰り返されるNビットの出力値D1を出力する。制御部4は、発振回路2の出力値D1に基づいて、不規則に値が変化するデータを生成することにより、制御信号S3によってサンプリングタイミングを決定する。シフトレジスタ3は、乱数生成部として機能し、制御部4によって決定されたサンプリングタイミングで発振回路2の出力値D1をサンプリングすることにより、真性乱数D4を生成する。
【0036】
図2は、発振回路2の構成を示す図である。発振回路2は、複数N個のリングオシレータ5(1)〜5(N)が並列に接続された構成を有している。各リングオシレータ5には、発振回路2の動作開始を指示するためのイネーブル信号S1が共通に入力される。各リングオシレータ5からは、二値論理の「0」と「1」とが交互に繰り返される1ビットの出力値が出力され、N個のリングオシレータ5(1)〜5(N)が並列に接続されることによって、合計Nビットの出力値D1が発振回路2から出力される。
【0037】
図3は、一つのリングオシレータ5の構成を示す図である。リングオシレータ5は、奇数個のNAND回路が直列に接続された構成を有している。図3に示した例では、リングオシレータ5は、5個のNAND回路6(1)〜6(5)を有している。各NAND回路6の一方入力端子には、イネーブル信号S1が入力される。初段のNAND回路6(1)の他方入力端子には、最終段のNAND回路6(5)の出力が入力される。二段目以降のNAND回路6(2)〜6(5)の他方入力端子には、前段のNAND回路6(1)〜6(4)の出力が入力される。
【0038】
図4は、シフトレジスタ3の構成を示す図である。シフトレジスタ3は、複数M個のフリップフロップ7(1)〜7(M)が直列に接続された構成を有している。各フリップフロップ7には、制御部4から制御信号S3が共通に入力される。また、各フリップフロップ7には、システムクロックSCが共通に入力される。
【0039】
初段のフリップフロップ7(1)のD端子には、Nビットの出力値D1が発振回路2から入力される。二段目以降のフリップフロップ7(2)〜7(M)のD端子には、前段のフリップフロップ7(1)〜7(M−1)のQ端子からの出力が入力される。M個のフリップフロップ7(1)〜7(M)が直列に接続され、各フリップフロップ7からのNビットの出力が配列されることによって、合計N×Mビットの真性乱数D4がシフトレジスタ3から出力される。
【0040】
以下、本実施の形態1に係る乱数生成装置1の動作について、図1を参照しつつ説明する。
【0041】
真性乱数D4の生成が要求されていない期間において、イネーブル信号S1,S2はネゲートされており、それにより発振回路2及び制御部4の動作は停止されている。
【0042】
真性乱数D4の生成が要求されると、まずイネーブル信号S1がアサートされる。イネーブル信号S1がアサートされることにより、発振回路2は発振動作を開始する。これにより、発振回路2から出力値D1が出力される。
【0043】
次に擬似乱数生成器11は、発振回路2から入力された出力値D1をシードとして用いて初期化を行い、その後、所定のアルゴリズムによって擬似乱数D2を生成する。擬似乱数生成器11によって生成された擬似乱数D2は、比較器13の一方入力端子に入力される。
【0044】
次にカウンタ12の動作開始を指示するためのイネーブル信号S2がアサートされることにより、カウンタ12は、所定の初期値(例えば「0」)からシステムクロックSCのカウント動作を開始する。カウンタ12は、システムクロックSCが入力される毎にカウント値をインクリメントし、そのカウント値D3は比較器13の他方入力端子に入力される。
【0045】
比較器13は、擬似乱数D2の値とカウンタ12のカウント値D3とを逐次比較する。そして、カウンタ12のカウント動作が進行してカウント値D3が擬似乱数D2の値に一致することにより、シフトレジスタ3にサンプリングを行わせるための制御信号S3を出力する。
【0046】
次にシフトレジスタ3は、比較器13から制御信号S3が入力されることにより、その時点で発振回路2が出力している出力値D1をサンプリングする。図4を参照して、サンプリングされた出力値D1は初段のフリップフロップ7(1)に入力され、保持される。
【0047】
また、比較器13から出力された制御信号S3は、擬似乱数生成器11及びカウンタ12にも入力される。
【0048】
擬似乱数生成器11は、制御信号S3が入力されることにより、その時点で発振回路2から入力されている出力値D1をシードとして用いて初期化を行った後、二回目の擬似乱数D2を生成する。カウンタ12は、制御信号S3が入力されることにより、カウント値を初期値に戻して二回目のカウント動作を開始する。二回目のカウント動作によるカウント値D3が二回目の擬似乱数D2の値に一致することにより、比較器13は二回目の制御信号S3を出力する。シフトレジスタ3は、二回目の制御信号S3が入力されることにより、その時点で発振回路2が出力している出力値D1をサンプリングする。図4を参照して、サンプリングされた出力値D1は初段のフリップフロップ7(1)に入力され、保持される。また、初段のフリップフロップ7(1)がそれまで保持していた出力値D1(初回の制御信号S3に基づいてサンプリングした出力値D1)は、初段のフリップフロップ7(1)から二段目のフリップフロップ7(2)にシフトされる。上記と同様の動作をM回繰り返すことにより、M個のフリップフロップ7(1)〜7(M)の各々に出力値D1が保持される。そして、各フリップフロップ7(1)〜7(M)が保持しているNビットの出力値D1を各々のQ端子から出力し、これらM個の出力値D1を配列することによって、合計N×Mビットの真性乱数D4がシフトレジスタ3から出力される。
【0049】
このように本実施の形態1に係る乱数生成装置1によれば、制御部4は、発振回路2の出力値D1に基づいて、不規則に値が変化するデータを生成することにより、サンプリングタイミングを決定する。従って、制御部4によってサンプリングタイミングを不規則に変動させることができ、その結果、シフトレジスタ3で生成される乱数D4の真性度(再現不可能性及び予測不可能性)を高めることが可能となる。また、周囲の温度や湿度等の環境要因によって発振回路2の出力値D1は変動するため、それに伴って制御部4が決定するサンプリングタイミングも変動し、その結果、乱数D4の真性度をより高めることが可能となる。さらに、システムクロックを分周してサンプリングクロックを生成する場合と比較すると、クロックの一本化によって回路設計を容易化できるとともに、システムクロックの整数倍に限らずサンプリングタイミングを細かく設定できるため、乱数D4の真性度をより高めることが可能となる。
【0050】
また、本実施の形態1に係る乱数生成装置1によれば、制御部4は、発振回路2の出力値D1をシードに用いて擬似乱数D2を生成する擬似乱数生成器11を有する。発振回路2の出力値D1は刻々と変化するため、それをシードに用いて生成される擬似乱数D2の値も刻々と変化する。その結果、当該擬似乱数D2の値として、不規則に値が変化するデータを生成することが可能となる。
【0051】
また、本実施の形態1に係る乱数生成装置1によれば、制御部4は、カウンタ12によるシステムクロックSCのカウント数が、擬似乱数生成器11が生成した擬似乱数D2の値に一致することにより、シフトレジスタ3に発振回路2の出力値D1をサンプリングさせるための制御信号S3を出力する。制御信号S3が入力されることによってシフトレジスタ3が発振回路2の出力値D1をサンプリングすることにより、シフトレジスタ3によって乱数D4を生成することが可能となる。
【0052】
また、本実施の形態1に係る乱数生成装置1によれば、乱数生成部4による乱数D4の生成を必要としない期間において、発振回路2及び制御部4の動作は停止されている。これにより、消費電力の低減を図ることが可能となる。
【0053】
<実施の形態2>
図5は、本発明の実施の形態2に係る乱数生成装置1の構成を示す図である。図5の接続関係で示すように、乱数生成装置1は、発振回路2、シフトレジスタ3、及び制御部4を備えて構成されている。制御部4は、擬似乱数生成器11、カウンタ12、及び比較器13を有している。
【0054】
以下、本実施の形態2に係る乱数生成装置1の動作について、図5を参照しつつ説明する。
【0055】
真性乱数D4の生成が要求されていない期間において、イネーブル信号S1,S2はネゲートされており、それにより発振回路2及び制御部4の動作は停止されている。
【0056】
真性乱数D4の生成が要求されると、まずイネーブル信号S1がアサートされる。イネーブル信号S1がアサートされることにより、発振回路2は発振動作を開始する。これにより、発振回路2から出力値D1が出力される。
【0057】
次に擬似乱数生成器11は、発振回路2から入力された出力値D1をシードとして用いて初期化を行い、その後、所定のアルゴリズムによって擬似乱数D2を生成する。擬似乱数生成器11によって生成された擬似乱数D2は、比較器13の一方入力端子に入力される。
【0058】
また、発振回路2の出力値D1はカウンタ12にも入力されており、カウンタ12は、入力された出力値D1をカウントの初期値として設定する。
【0059】
次にカウンタ12の動作開始を指示するためのイネーブル信号S2がアサートされることにより、カウンタ12は、上記で設定した初期値からシステムクロックSCのカウント動作を開始する。カウンタ12は、システムクロックSCが入力される毎にカウント値をインクリメントし、そのカウント値D3は比較器13の他方入力端子に入力される。
【0060】
比較器13は、擬似乱数D2の値とカウンタ12のカウント値D3とを逐次比較する。そして、カウンタ12のカウント動作が進行してカウント値D3が擬似乱数D2の値に一致することにより、シフトレジスタ3にサンプリングを行わせるための制御信号S3を出力する。
【0061】
次にシフトレジスタ3は、比較器13から制御信号S3が入力されることにより、その時点で発振回路2が出力している出力値D1をサンプリングする。
【0062】
また、比較器13から出力された制御信号S3は、擬似乱数生成器11及びカウンタ12にも入力される。
【0063】
擬似乱数生成器11は、制御信号S3が入力されることにより、その時点で発振回路2から入力されている出力値D1をシードとして用いて初期化を行った後、二回目の擬似乱数D2を生成する。カウンタ12は、制御信号S3が入力されることにより、その時点で発振回路2から入力されている出力値D1を二回目の初期値として設定する。そして、当該二回目の初期値から二回目のカウント動作を開始する。二回目のカウント動作によるカウント値D3が二回目の擬似乱数D2の値に一致することにより、比較器13は二回目の制御信号S3を出力する。シフトレジスタ3は、二回目の制御信号S3が入力されることにより、その時点で発振回路2が出力している出力値D1をサンプリングする。上記と同様の動作をM回繰り返すことにより、M個のフリップフロップ7(1)〜7(M)の各々に出力値D1が保持される。そして、各フリップフロップ7(1)〜7(M)が保持しているNビットの出力値D1を各々のQ端子から出力し、これらM個の出力値D1を配列することによって、合計N×Mビットの真性乱数D4がシフトレジスタ3から出力される。
【0064】
このように本実施の形態2に係る乱数生成装置1によれば、制御部4は、カウンタ12によるシステムクロックSCのカウント数が、擬似乱数生成器11が生成した擬似乱数D2の値に一致することにより、シフトレジスタ3に発振回路2の出力値D1をサンプリングさせるための制御信号S3を出力する。制御信号S3が入力されることによってシフトレジスタ3が発振回路2の出力値D1をサンプリングすることにより、シフトレジスタ3によって乱数D4を生成することが可能となる。また、カウンタ12の初期値としては、発振回路2の出力値D1が用いられる。発振回路2の出力値D1は刻々と変化するため、カウンタ12の初期値も刻々と変化する。従って、仮に擬似乱数D2の値が同一であっても、システムクロックSCのカウント数が擬似乱数D2の値に一致するまでのカウント数が変動するため、制御部4が制御信号S3を出力するタイミングも変動し、その結果、乱数D4の真性度をより高めることが可能となる。
【0065】
<実施の形態3>
図6は、本発明の実施の形態3に係る乱数生成装置1の構成を示す図である。図6の接続関係で示すように、乱数生成装置1は、発振回路2、シフトレジスタ3、及び制御部4を備えて構成されている。制御部4は、擬似乱数生成器11、レジスタ14、及び比較器13を有している。
【0066】
以下、本実施の形態3に係る乱数生成装置1の動作について、図6を参照しつつ説明する。
【0067】
真性乱数D4の生成が要求されていない期間において、イネーブル信号S1,S2はネゲートされており、それにより発振回路2及び制御部4の動作は停止されている。
【0068】
真性乱数D4の生成が要求されると、まずイネーブル信号S1がアサートされる。イネーブル信号S1がアサートされることにより、発振回路2は発振動作を開始する。これにより、発振回路2から出力値D1が出力される。
【0069】
次に擬似乱数生成器11は、発振回路2から入力された出力値D1をシードとして用いて初期化を行い、その後、所定のアルゴリズムによって擬似乱数D2を生成する。擬似乱数生成器11にはシステムクロックSCが入力されており、擬似乱数生成器11は、システムクロックSCに同期して新たな擬似乱数D2を生成する。擬似乱数生成器11によって生成された擬似乱数D2は、比較器13の一方入力端子に入力される。
【0070】
レジスタ14には、予め設定された一又は複数の所定値Vが格納されている。所定値Vは、比較器13の他方入力端子にデータD5として入力される。
【0071】
比較器13は、擬似乱数D2の値と所定値Vとを逐次比較する。そして、擬似乱数D2の値が所定値Vに一致することにより、シフトレジスタ3にサンプリングを行わせるための制御信号S3を出力する。
【0072】
次にシフトレジスタ3は、比較器13から制御信号S3が入力されることにより、その時点で発振回路2が出力している出力値D1をサンプリングする。
【0073】
また、比較器13から出力された制御信号S3は、擬似乱数生成器11にも入力される。
【0074】
擬似乱数生成器11は、制御信号S3が入力されることにより、その時点で発振回路2から入力されている出力値D1をシードとして用いて初期化を行った後、上記と同様にシステムクロックSCに同期して擬似乱数D2を生成する。比較器13は、擬似乱数D2の値と所定値Vとを逐次比較する。そして、擬似乱数D2の値が所定値Vに一致することにより、二回目の制御信号S3を出力する。シフトレジスタ3は、二回目の制御信号S3が入力されることにより、その時点で発振回路2が出力している出力値D1をサンプリングする。上記と同様の動作をM回繰り返すことにより、M個のフリップフロップ7(1)〜7(M)の各々に出力値D1が保持される。そして、各フリップフロップ7(1)〜7(M)が保持しているNビットの出力値D1を各々のQ端子から出力し、これらM個の出力値D1を配列することによって、合計N×Mビットの真性乱数D4がシフトレジスタ3から出力される。
【0075】
このように本実施の形態3に係る乱数生成装置1によれば、制御部4は、擬似乱数生成器11が生成した擬似乱数D2の値が、予め設定された所定値Vに一致することにより、シフトレジスタ3に発振回路2の出力値D1をサンプリングさせるための制御信号S3を出力する。制御信号S3が入力されることによってシフトレジスタ3が発振回路2の出力値D1をサンプリングすることにより、シフトレジスタ3によって乱数D4を生成することが可能となる。また、システムクロックSCをカウントするためのカウンタ12を省略できるため、回路構成の簡略化を図ることができる。
【0076】
<実施の形態4>
図7は、本発明の実施の形態4に係る乱数生成装置1の構成を示す図である。図7の接続関係で示すように、乱数生成装置1は、発振回路2、シフトレジスタ3、及び制御部4を備えて構成されている。制御部4は、擬似乱数生成器11、カウンタ12、及び比較器13を有している。
【0077】
以下、本実施の形態4に係る乱数生成装置1の動作について、図7を参照しつつ説明する。
【0078】
真性乱数D4の生成が要求されていない期間において、イネーブル信号S1,S2はネゲートされており、それにより発振回路2及び制御部4の動作は停止されている。
【0079】
真性乱数D4の生成が要求されると、まずイネーブル信号S1がアサートされる。イネーブル信号S1がアサートされることにより、発振回路2は発振動作を開始する。これにより、発振回路2から出力値D1が出力される。
【0080】
次に擬似乱数生成器11は、予め設定された所定値をシードとして用いて初期化を行い、その後、所定のアルゴリズムによって擬似乱数D2を生成する。擬似乱数生成器11によって生成された擬似乱数D2は、比較器13の一方入力端子に入力される。
【0081】
また、発振回路2の出力値D1はカウンタ12に入力されており、カウンタ12は、入力された出力値D1をカウントの初期値として設定する。
【0082】
次にカウンタ12の動作開始を指示するためのイネーブル信号S2がアサートされることにより、カウンタ12は、上記で設定した初期値からシステムクロックSCのカウント動作を開始する。カウンタ12は、システムクロックSCが入力される毎にカウント値をインクリメントし、そのカウント値D3は比較器13の他方入力端子に入力される。
【0083】
比較器13は、擬似乱数D2の値とカウンタ12のカウント値D3とを逐次比較する。そして、カウンタ12のカウント動作が進行してカウント値D3が擬似乱数D2の値に一致することにより、シフトレジスタ3にサンプリングを行わせるための制御信号S3を出力する。
【0084】
次にシフトレジスタ3は、比較器13から制御信号S3が入力されることにより、その時点で発振回路2が出力している出力値D1をサンプリングする。
【0085】
また、比較器13から出力された制御信号S3は、擬似乱数生成器11及びカウンタ12にも入力される。
【0086】
擬似乱数生成器11は、制御信号S3が入力されることにより、二回目の擬似乱数D2を生成する。カウンタ12は、制御信号S3が入力されることにより、その時点で発振回路2から入力されている出力値D1を二回目の初期値として設定する。そして、当該二回目の初期値から二回目のカウント動作を開始する。二回目のカウント動作によるカウント値D3が二回目の擬似乱数D2の値に一致することにより、比較器13は二回目の制御信号S3を出力する。シフトレジスタ3は、二回目の制御信号S3が入力されることにより、その時点で発振回路2が出力している出力値D1をサンプリングする。上記と同様の動作をM回繰り返すことにより、M個のフリップフロップ7(1)〜7(M)の各々に出力値D1が保持される。そして、各フリップフロップ7(1)〜7(M)が保持しているNビットの出力値D1を各々のQ端子から出力し、これらM個の出力値D1を配列することによって、合計N×Mビットの真性乱数D4がシフトレジスタ3から出力される。
【0087】
このように本実施の形態4に係る乱数生成装置1によれば、制御部4は、発振回路2の出力値D1を初期値に用いてシステムクロックSCをカウントするカウンタ12を有する。発振回路2の出力値D1は刻々と変化するため、カウンタ12の初期値も刻々と変化する。その結果、カウンタ12による初期値から目標値(擬似乱数D2の値)までのシステムクロックSCのカウント数として、不規則に値が変化するデータを生成することが可能となる。
【0088】
また、制御部4は、カウンタ12によるシステムクロックSCのカウント数が、擬似乱数生成器11が生成した擬似乱数D2の値に一致することにより、シフトレジスタ3に発振回路2の出力値D1をサンプリングさせるための制御信号S3を出力する。制御信号S3が入力されることによってシフトレジスタ3が発振回路2の出力値D1をサンプリングすることにより、シフトレジスタ3によって乱数D4を生成することが可能となる。また、擬似乱数生成器11が生成する擬似乱数D2の値(つまりカウンタ12の目標値)は刻々と変化するため、仮にカウンタ12の初期値が同一であっても、システムクロックSCのカウント数が擬似乱数D2の値に一致するまでのカウント数が変動するため、制御部4が制御信号S3を出力するタイミングも変動し、その結果、乱数D4の真性度をより高めることが可能となる。
【0089】
<実施の形態5>
図8は、本発明の実施の形態5に係る乱数生成装置1の構成を示す図である。図8の接続関係で示すように、乱数生成装置1は、発振回路2、シフトレジスタ3、及び制御部4を備えて構成されている。制御部4は、レジスタ15、カウンタ12、及び比較器13を有している。
【0090】
以下、本実施の形態5に係る乱数生成装置1の動作について、図8を参照しつつ説明する。
【0091】
真性乱数D4の生成が要求されていない期間において、イネーブル信号S1,S2はネゲートされており、それにより発振回路2及び制御部4の動作は停止されている。
【0092】
真性乱数D4の生成が要求されると、まずイネーブル信号S1がアサートされる。イネーブル信号S1がアサートされることにより、発振回路2は発振動作を開始する。これにより、発振回路2から出力値D1が出力される。
【0093】
レジスタ15には、予め設定された一又は複数の所定値Wが格納されている。所定値Wは、比較器13の一方入力端子にデータD6として入力される。
【0094】
発振回路2の出力値D1はカウンタ12に入力されており、カウンタ12は、入力された出力値D1をカウントの初期値として設定する。
【0095】
次にカウンタ12の動作開始を指示するためのイネーブル信号S2がアサートされることにより、カウンタ12は、上記で設定した初期値からシステムクロックSCのカウント動作を開始する。カウンタ12は、システムクロックSCが入力される毎にカウント値をインクリメントし、そのカウント値D3は比較器13の他方入力端子に入力される。
【0096】
比較器13は、所定値Wとカウンタ12のカウント値D3とを逐次比較する。そして、カウンタ12のカウント動作が進行してカウント値D3が所定値Wに一致することにより、シフトレジスタ3にサンプリングを行わせるための制御信号S3を出力する。
【0097】
次にシフトレジスタ3は、比較器13から制御信号S3が入力されることにより、その時点で発振回路2が出力している出力値D1をサンプリングする。
【0098】
また、比較器13から出力された制御信号S3は、カウンタ12にも入力される。
【0099】
カウンタ12は、制御信号S3が入力されることにより、その時点で発振回路2から入力されている出力値D1を二回目の初期値として設定する。そして、当該二回目の初期値から二回目のカウント動作を開始する。二回目のカウント動作によるカウント値D3が所定値Wに一致することにより、比較器13は二回目の制御信号S3を出力する。シフトレジスタ3は、二回目の制御信号S3が入力されることにより、その時点で発振回路2が出力している出力値D1をサンプリングする。上記と同様の動作をM回繰り返すことにより、M個のフリップフロップ7(1)〜7(M)の各々に出力値D1が保持される。そして、各フリップフロップ7(1)〜7(M)が保持しているNビットの出力値D1を各々のQ端子から出力し、これらM個の出力値D1を配列することによって、合計N×Mビットの真性乱数D4がシフトレジスタ3から出力される。
【0100】
このように本実施の形態5に係る乱数生成装置1によれば、制御部4は、カウンタ12によるシステムクロックSCのカウント数が、予め設定された所定値Wに一致することにより、シフトレジスタ3に発振回路2の出力値D1をサンプリングさせるための制御信号S3を出力する。制御信号S3が入力されることによってシフトレジスタ3が発振回路2の出力値D1をサンプリングすることにより、シフトレジスタ3によって乱数D4を生成することが可能となる。また、カウンタ12の目標値が所定値Wに固定されており、当該目標値を生成するための擬似乱数生成器11を省略できるため、回路構成の簡略化を図ることができる。
【符号の説明】
【0101】
1 乱数生成装置
2 発振回路
3 シフトレジスタ
4 制御部
11 擬似乱数生成器
12カウンタ
13 比較器
図1
図2
図3
図4
図5
図6
図7
図8