乱数生成回路
【課題】乱数系列における0,1の発生頻度の偏りを防止して、ランダム性を高める。
【解決手段】奇数段のインバータからなる段数固定型のM個のリングオシレータと、M個のリングオシレータの中間ノードの出力を周波数S1のサンプリングクロックでそれぞれラッチするM個の前段D−FFと、M個の前段D−FFの各ラッチ出力の排他的論理和をとるM入力XORと、M入力XORの出力を周波数S1のサンプリングクロックでラッチし、乱数値として出力する後段D−FFと、周波数S1のサンプリングクロックを生成する制御部とを備える。
【解決手段】奇数段のインバータからなる段数固定型のM個のリングオシレータと、M個のリングオシレータの中間ノードの出力を周波数S1のサンプリングクロックでそれぞれラッチするM個の前段D−FFと、M個の前段D−FFの各ラッチ出力の排他的論理和をとるM入力XORと、M入力XORの出力を周波数S1のサンプリングクロックでラッチし、乱数値として出力する後段D−FFと、周波数S1のサンプリングクロックを生成する制御部とを備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、0,1の発生頻度の偏りが少なくランダム性を備えた予測不可能な真性乱数をディジタル論理ゲート回路のみで生成する乱数生成回路に関する。
【背景技術】
【0002】
暗号技術をベースとするセキュリティ分野においては、乱数の生成が重要な役割を果たしている。チャレンジレスポンス認証や鍵共有など暗号技術において利用される乱数の条件として、予測不可能であることがあげられる。乱数の予測不可能性を根拠とする暗号技術への適用においては、自然界に存在する揺らぎ現象のようなランダム性を備えた物理現象を利用して乱数を生成する真性乱数生成回路が重要な役割を果たす。
【0003】
非特許文献1に示す従来のリングオシレータ型真性乱数生成回路では、図10に示すように、出力乱数のランダム性を高める目的から自己発振動作するリングオシレータを複数数個用意し、これら並列に動作するリングオシレータの中間ノード値のXOR(排他的論理和)を取り、その出力をD−FF(D型フリップフロップ)でラッチし、乱数値として出力する。しかし、この回路は、特許文献1に示したように、複数のリングオシレータを必要とするためゲート規模および消費電力が大きい、という問題があった。
【0004】
乱数の品質検定プログラムとしてよく知られているNIST SP800−22検定においては、乱数系列における0,1の発生頻度の偏り検定は最も重要な検定項目とされている。このため、小さなゲート規模で発生頻度の課題を回避すべく、特許文献1に示す乱数生成回路が提案された。特許文献1の乱数生成回路では、1クロックの周期内でリングオシレータの発振周期が短い周期から長い周期に段階的に切り替わるように動作する。クロック周期内の前半の短い発振周期の動作でランダム性を獲得し、クロック周期内の後半の長い発振周期においてD−FFによりサンプリングを行い、ハイ, ローのラッチ確率の偏りを回避する。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2010−117846号公報
【非特許文献】
【0006】
【非特許文献1】Sunar B., Martin W., Stinson D.,”A provably secure true random number generator with built-in tolerance to active attacks”, IEEE Trans. Computers 56(1), pp.109-119 (2007)
【発明の概要】
【発明が解決しようとする課題】
【0007】
ランダム性を高める目的で多数のリングオシレータのXORを取る非特許文献1の乱数生成回路では、XOR出力が激しく状態遷移を繰り返すことになるため、D−FFによるサンプリング時にXOR出力信号がハイでもローでもない過渡的な電位状態となりやすい。そのため、D−FFがXOR出力信号をハイとしてラッチする確率と、ローとしてラッチする確率に偏りが生じやすい。すなわち、乱数系列における0,1の発生頻度の偏りの問題が生じる。
【0008】
特許文献1に示す乱数生成回路において、生成乱数のランダム性をさらに高める目的でリングオシレータを複数個用意し、各リングオシレータの中間ノード出力のXORをとり、その出力をD−FFによりラッチする回路構成の場合も、やはり非特許文献1の乱数生成回路と同様に、乱数系列における0,1の発生頻度の偏りの問題が生じる。
【0009】
さらに、ランダム性を高めるためにリングオシレータを複数個並列に用意する構成では、ゲート規模の増加が課題となっていた。
【0010】
本発明は、小さなゲート規模で0,1の発生頻度の偏りを低減することができる乱数生成回路を提供することを目的とする。
【課題を解決するための手段】
【0011】
第1の発明の乱数生成回路は、奇数段のインバータからなる段数固定型のM個(Mは2以上の整数)のリングオシレータと、M個のリングオシレータの中間ノードの出力を周波数S1 のサンプリングクロックでそれぞれラッチするM個の前段D−FFと、M個の前段D−FFの各ラッチ出力の排他的論理和をとるM入力XORと、M入力XORの出力を周波数S1 のサンプリングクロックでラッチし、乱数値として出力する後段D−FFと、周波数S1 のサンプリングクロックを生成する制御部とを備える。
【0012】
第2の発明の乱数生成回路は、動作モード切替制御信号により奇数段のインバータの段数を切り替え、発振周期の切り替えが可能な段数可変型のM個(Mは2以上の整数)のリングオシレータと、M個のリングオシレータの中間ノードの出力を周波数S1 のサンプリングクロックでそれぞれラッチするM個の前段D−FFと、M個の前段D−FFの各ラッチ出力の排他的論理和をとるM入力XORと、M入力XORの出力を周波数S1 のサンプリングクロックでラッチし、乱数値として出力する後段D−FFと、周波数S1 のサンプリングクロックを生成し、サンプリングクロックの1周期内で段数可変型のリングオシレータの短周期と長周期の発振周期を切り替え、かつサンプリングクロックのタイミングで段数可変型のリングオシレータを長周期に設定する動作モード切替制御信号を生成する制御部とを備える。
【0013】
第3の発明の乱数生成回路は、奇数段のインバータからなる段数固定型のリングオシレータと、リングオシレータの中間ノードの出力を周波数S1 のサンプリングクロックでラッチする第1の前段D−FFと、周波数S1 のサンプリングクロックで入力信号をラッチする第2の前段D−FFと、第2の前段D−FFのラッチ出力と、第1の前段D−FFの出力との排他的論理和をとる2入力XORと、セレクタ制御信号により、サンプリングクロックのM回(Mは2以上の整数)に1回の頻度で第1の前段D−FFの出力を選択し、サンプリングクロックの(M−1)回は2入力XORの出力を選択し、第2の前段D−FFに入力するセレクタと、周波数S1 のサンプリングクロックをM分周した周波数S2 (=S1 /M)の出力用クロックで前段第2のD−FFの出力をラッチし、乱数値として出力する後段D−FFと、周波数S1 のサンプリングクロック、セレクタ制御信号、出力用クロックを生成する制御部とを備える。
【0014】
第4の発明の乱数生成回路は、動作モード切替制御信号により奇数段のインバータの段数を切り替え、発振周期の切り替えが可能な段数可変型のリングオシレータと、リングオシレータの中間ノードの出力を周波数S1 のサンプリングクロックでラッチする第1の前段D−FFと、周波数S1 のサンプリングクロックで入力信号をラッチする第2の前段D−FFと、第2の前段D−FFのラッチ出力と、第1の前段D−FFの出力との排他的論理和をとる2入力XORと、セレクタ制御信号により、サンプリングクロックのM回(Mは2以上の整数)に1回の頻度で第1の前段D−FFの出力を選択し、サンプリングクロックの(M−1)回は2入力XORの出力を選択し、第2の前段D−FFに入力するセレクタと、周波数S1 のサンプリングクロックをM分周した周波数S2 (=S1 /M)の出力用クロックで前段第2のD−FFの出力をラッチし、乱数値として出力する後段D−FFと、周波数S1 のサンプリングクロック、セレクタ制御信号、出力用クロックを生成し、サンプリングクロックの1周期内で段数可変型のリングオシレータの短周期と長周期の発振周期を切り替え、かつサンプリングクロックのタイミングで段数可変型のリングオシレータを長周期に設定する動作モード切替制御信号を生成する制御部とを備える。
【0015】
第1また第2の発明の乱数生成回路において、制御部は、サンプリングクロックを所定回数カウントしたタイミングで後段D−FFから出力される乱数値を有効とする乱数有効表示信号を出力する構成である。
【0016】
第3または第4の発明の乱数生成回路において、制御部は、出力用クロックを所定回数カウントしたタイミングで後段D−FFから出力される乱数値を有効とする乱数有効表示信号を出力する構成である。
【0017】
第2または第4の発明の乱数生成回路において、動作モード切替制御信号は、偶数段のインバータゲートを介してリングオシレータに入力する構成である。
【発明の効果】
【0018】
第1または第2の発明は、段数固定型または段数可変型のリングオシレータを複数備える乱数生成回路において、各リングオシレータの中間ノードの出力を前段D−FFで一旦ラッチしてから排他的論理和をとり、その出力を後段D−FFでラッチし、乱数値として出力する構成により、状態遷移中のトランジェントな信号をサンプリングする頻度を低減することができ、0,1の発生頻度の偏りを低減することができる。
【0019】
また、第3または第4の発明は、単一構成の段数固定型または段数可変型のリングオシレータを用いたシリアル処理型乱数生成回路により、単一のリングオシレータのみで複数のリングオシレータを用いた場合と等価な効果を得ることができる。これにより、小さなゲート規模で複数のリングオシレータの回路構成と同等レベルで高品質の乱数値を出力することができる。
【図面の簡単な説明】
【0020】
【図1】本発明の実施例1の乱数生成回路の構成例を示す図である。
【図2】実施例1における制御部100の構成例および動作例を示す図である。
【図3】本発明の実施例2の乱数生成回路の構成例を示す図である。
【図4】段数可変型のリングオシレータ20の構成例を示す図である。
【図5】実施例2における制御部200の構成例および動作例を示す図である。
【図6】本発明の実施例3の乱数生成回路の構成例を示す図である。
【図7】実施例3における制御部300の構成例および動作例を示す図である。
【図8】本発明の実施例4の乱数生成回路の構成例を示す図である。
【図9】実施例4における制御部400の構成例および動作例を示す図である。
【図10】従来の乱数生成回路の構成例を示す図である。
【発明を実施するための形態】
【実施例1】
【0021】
図1は、本発明の実施例1の乱数生成回路の構成例を示す。本実施例は、非特許文献1に示す複数の段数固定型(発振周期固定型)のリングオシレータを乱数生成源とする回路に本発明を適用した例である。
【0022】
図1において、L1 段〜LM 段の段数固定型のM個(Mは2以上の整数)のリングオシレータ10−1〜10−Mを並列に配置し、各リングオシレータの中間ノード出力を周波数S1 Hzのサンプリングクロックに同期した前段D−FF11−1〜11−Mでそれぞれラッチする。さらに、前段D−FF11−1〜11−Mの各出力はM入力XOR(排他的論理和回路)12に入力され、その出力が後段D−FF13に入力される。後段D−FF13は、前段D−FF11−1〜11−Mと同期したサンプリングクロックにより、M入力XOR12の出力をラッチし、乱数値として出力する。
【0023】
段数固定型のリングオシレータ10−1〜10−Mは、2入力NANDとインバータをリング状に接続した構成であり、2入力NANDに入力する動作ON/OFF切替信号によりリングオシレータの動作、非動作の切り替えが可能である。すなわち、2入力NANDは、動作ON/OFF切替信号がローのときは出力がハイに固定され、動作ON/OFF切替信号がハイに遷移するとインバータとして機能し、各リングオシレータが奇数段のインバータをリング状に接続した構成になる。なお、ここでは2入力NANDを用いたが、動作ON/OFF切替信号の位相を反転すれば2入力NORでもよい。また、2入力NANDの位置は、必ずしも各リングオシレータの初段である必要はない。また、2入力NANDをインバータに代え、動作ON/OFF切替信号を用いない構成としてもよい。この場合は、動作ON/OFF切替信号が常にハイになっている状態と等価である。2入力NANDと動作ON/OFF切替信号を用いることにより、乱数生成が必要ないときはリングオシレータの発振動作を停止し、無駄な電流消費を抑えることができる。
【0024】
制御部100は、動作ON/OFF切替信号と周波数S0 Hzのシステムクロックを入力し、システムクロックを分周して前段D−FF11−1〜11−Mおよび後段D−FF13に与える周波数S1 のサンプリングクロックおよび乱数有効表示信号を生成する。
【0025】
図2は、実施例1における制御部100の構成例および動作例を示す。ここでは、動作ON/OFF切替信号がハイのときにカウンタ101で周波数S0 のシステムクロックを4分周して周波数S1(=S0/4)のサンプリングクロックを生成する例を示す。
【0026】
リングオシレータ10−1〜10−Mが自己発振動作の開始直後は、発振のジッタ成分が十分蓄積されておらずランダム性の効果が不十分と考えられるため、制御部100でサンプリングクロック数をカウンタ101でカウントし、カウンタ値がある一定数に達した段階で乱数有効表示信号を有効にすることにより、後段D−FF13から十分なランダム性を備えた乱数値を取得することができる。乱数有効表示信号に用いるカウンタ値は、実験などにより事前に調べて「乱数有効クロック設定値」として保持しておき、カウンタ101のカウンタ値がこの設定値に達した時点で乱数有効表示信号を有効とすればよい。ここでは、サンプリングクロックの2クロック目(システムクロックの8クロック目)で乱数有効表示信号が有効となる例を示す。
【実施例2】
【0027】
図3は、本発明の実施例2の乱数生成回路の構成例を示す。本実施例は、特許文献1に示す複数の段数可変型(発振周期可変型)のリングオシレータを乱数生成源とする回路に本発明を適用した例である。
【0028】
図3において、M個の段数可変型のリングオシレータ20−1〜20−Mを並列に配置し、各リングオシレータの中間ノード出力を周波数S1 Hzのサンプリングクロックに同期した前段D−FF11−1〜11−Mでそれぞれラッチする。さらに、前段D−FF11−1〜11−Mの各出力はM入力XOR(排他的論理和回路)12に入力され、その出力が後段D−FF13に入力される。後段D−FF13は、前段D−FF11−1〜11−Mと同期したサンプリングクロックにより、M入力XOR12の出力をラッチし、乱数値として出力する。
【0029】
制御部200は、動作ON/OFF切替信号と周波数S0 Hzのシステムクロックを入力し、システムクロックを分周して前段D−FF11−1〜11−Mおよび後段D−FF13に与える周波数S1 のサンプリングクロック、各リングオシレータ20−1〜20−Mに与える動作モード切替制御信号、および乱数有効表示信号を生成する。
【0030】
段数可変型のリングオシレータ20−1〜20−Mは、特許文献1に具体的にいろいろな形態のものが示されているが、例えば図4に示すように、遅延生成部A21と遅延生成部B22をセレクタ23を介して接続した構成である。遅延生成部A21は、2入力NANDとインバータをカスケード接続した構成であり、2入力NANDとインバータの総段数を奇数La 段とする。La の最小値は1であり、この場合は2入力NANDのみで構成される。遅延生成部B22は、インバータをカスケード接続した構成であり、インバータの段数を偶数Lb 段とする。La を比較的小さい値とし、かつLa +Lb が比較的大きい値となるように設定する。
【0031】
動作ON/OFF切替信号は、遅延生成部A21の2入力NANDの一方の入力にも接続される。遅延生成部A21の2入力NANDは、動作ON/OFF切替信号がローのときは出力がハイに固定され、動作ON/OFF切替信号がハイに遷移するとインバータとして機能し、遅延生成部A21が全体として奇数段のインバータになる。なお、ここでは2入力NANDを用いたが、動作ON/OFF切替信号の位相を反転すれば2入力NORでもよい。また、2入力NANDの位置は、必ずしも遅延生成部A21の初段である必要はない。また、2入力NANDをインバータに代え、動作ON/OFF切替信号を用いない構成としてもよい。この場合は、動作ON/OFF切替信号が常にハイになっている状態と等価である。
【0032】
遅延生成部A21の最終段のインバータ(1段の場合は2入力NAND)の出力は、セレクタ23の一方の入力端子(L)および遅延生成部B22の初段のインバータに接続される。遅延生成部B22の最終段のインバータの出力は、セレクタ23の他方の入力端子(H)に接続される。セレクタ23は、制御部200から出力される動作モード切替制御信号により、2つの入力のいずれか一方を選択して遅延生成部A21の2入力NANDの他方の入力に接続する。ここで、動作ON/OFF切替信号がローからハイに遷移して動作モード切替制御信号がロー(L)のときに、セレクタ23は遅延生成部A21の最終段のインバータ(1段の場合は2入力NAND)の出力を選択し、遅延生成部A21の閉ループで形成されるリングオシレータが独立に短周期で発振する動作モードAとなる。また、動作モード切替制御信号がハイ(H)のときに、セレクタ23は遅延生成部B22の最終段のインバータの出力を選択し、遅延生成部A21,B22が連結した閉ループで形成されるリングオシレータが長周期で発振する動作モードBとなる。なお、3段以上の遅延生成部をセレクタを介して接続する構成でも同様である。
【0033】
図5は、実施例2における制御部200の構成例および動作例を示す。ここでは、動作ON/OFF切替信号がハイのときにカウンタ201で周波数S0 のシステムクロックを4分周して周波数S1(=S0/4)のサンプリングクロックを生成する例を示す。
【0034】
動作モード切替制御信号は、サンプリングクロックの周期内で段数可変型のリングオシレータ20−1〜20−Mを動作モードAから動作モードBに切り替え、かつサンプリングクロックのタイミングで動作モードBが選択されるように生成される。これにより、段数可変型のリングオシレータ20−1〜20−Mの発振周波数は、サンプリングクロックの周期内で段階的に切り替わり、長周期で発振する動作モードBのときに、その出力が前段D−FF11−1〜11−Mでラッチされる。
【0035】
なお、動作モード切替制御信号は、発振周波数切替のタイミングにジッタ効果によるランダム性をもたらす目的で、図3に示すように偶数段のインバータゲートを介してリングオシレータ20−1〜20−Mのセレクタ23に入力するようにしてもよい。
【0036】
乱数有効表示信号は、実施例1と同様であり、サンプリングクロックの1クロック目の出力は前段D−FF11−1〜11−Mの初期値の排他的論理和となって乱数として適切でないため、2クロック目以降で有効とするように「乱数有効クロック設定値」に応じて設定される。
【実施例3】
【0037】
図6は、本発明の実施例3の乱数生成回路の構成例を示す。本実施例は、実施例1の回路をシリアル処理化した構成である。
【0038】
図6において、段数固定型のリングオシレータ10の中間ノード出力を周波数S1 Hzのサンプリングクロックに同期した前段D−FF11−1でラッチする。さらに、前段D−FF11−1の出力と2入力XOR14の出力とをセレクタ15で選択した出力を、周波数S1 Hzのサンプリングクロックに同期した前段D−FF11−2でラッチする。2入力XOR14は、前段D−FF11−1の出力と前段D−FF11−2の出力とを入力し、排他的論理和出力をセレクタ15に出力する。さらに、前段D−FF11−2の出力は後段D−FF13に入力される。後段D−FF13は、周波数S1 HzのサンプリングクロックをM分周した周波数S2 (=S1 /M)Hzの出力用クロックで前段D−FF11−2の出力をラッチし、乱数値として出力する。
【0039】
段数固定型のリングオシレータ10は、2入力NANDとインバータをリング状に接続した構成であり、2入力NANDに入力する動作ON/OFF切替信号によりリングオシレータの動作、非動作の切り替えが可能である。
【0040】
制御部300は、動作ON/OFF切替信号と周波数S0 Hzのシステムクロックを入力し、システムクロックを分周して前段D−FF11−1,11−2に与える周波数S1 のサンプリングクロック、セレクタ15に与えるセレクタ制御信号、後段D−FF13に与える出力用クロック、および乱数有効表示信号を生成する。
【0041】
図7は、実施例3における制御部300の構成例および動作例を示す。ここでは、動作ON/OFF切替信号がハイのときにカウンタ301で周波数S0 のシステムクロックを4分周して周波数S1(=S0/4)のサンプリングクロックを生成する例を示す。
【0042】
カウンタ301で生成されたサンプリングクロックは、前段D−FF11−1,11−2に与えられるとともにカウンタ302に入力される。カウンタ302は、動作ON/OFF切替信号がハイのときに、サンプリングクロックからセレクタ制御信号および出力用クロックを生成する。セレクタ15を制御するセレクタ制御信号は、サンプリングクロックのM回に1回の頻度でリングオシレータ10の出力を選択し、(M−1)回はリングオシレータ10の出力と前段D−FF11のラッチ出力(固定値)とのXOR出力を選択するように設定される。これは、実施例1のM個のリングオシレータ10−1〜10−Mの1サンプリング毎の出力を前段D−FF11−1〜11−Mでラッチし、M入力XOR12に入力することと等価である。出力用クロックは、周波数S1 のサンプリングクロックをM分周した周波数S2 (=S1 /M)のクロックである。後段D−FF13は、この出力用クロックで前段D−FF11−2の出力をラッチし、乱数値として出力する。
【0043】
このように、周波数S1 のサンプリングクロックがMクロック経過すると、実施例1で示したM個の段数固定型のリングオシレータ10−1〜10−Mの中間ノードのXOR出力を得る構成と等価な回路がシリアル回路として実現される。これにより、実施例1と同様に、状態遷移中のトランジェントな信号をサンプリングする頻度が低減し、0,1の発生頻度の偏りを低減することができる。
【0044】
リングオシレータが自己発振動作の開始直後は、発振のジッタ成分が十分蓄積されておらずランダム性の効果が不十分と考えられるため、制御部300のカウンタ302で出力用クロックをカウントし、カウンタ値がある一定数に達した段階で乱数有効表示信号を有効にすることにより、後段D−FF13から十分なランダム性を備えた乱数値を取得することができる。乱数有効表示信号に用いるカウンタ値は、実験などにより事前に調べて「乱数有効クロック設定値」として保持しておき、カウンタ302のカウンタ値がこの設定値に達した時点で乱数有効表示信号を有効とすればよい。ここでは、出力用クロックの2クロック目(サンプリングクロックの8クロック目)で乱数有効表示信号が有効となる例を示す。
【実施例4】
【0045】
図8は、本発明の実施例4の乱数生成回路の構成例を示す。本実施例は、実施例2の回路をシリアル処理化した構成である。
【0046】
本実施例の乱数生成回路は、実施例3の段数固定型のリングオシレータ10を、段数可変型のリングオシレータ20に置き換える他は、実施例3と同様の構成である。
【0047】
制御部400は、動作ON/OFF切替信号と周波数S0 Hzのシステムクロックを入力し、システムクロックを分周して前段D−FF11−1,11−2に与える周波数S1 のサンプリングクロック、段数可変型のリングオシレータ20に与える動作モード切替制御信号、セレクタ15に与えるセレクタ制御信号、後段D−FF13に与える周波数S2 (=S1 /M)の出力用クロック、および乱数有効表示信号を生成する。
【0048】
図9は、実施例4における制御部400の構成例および動作例を示す。ここでは、動作ON/OFF切替信号がハイのときにカウンタ401で周波数S0 のシステムクロックを4分周して周波数S1(=S0/4)のサンプリングクロックを生成する例を示す。
【0049】
動作モード切替制御信号は、サンプリングクロックの周期内で段数可変型のリングオシレータ20を動作モードAから動作モードBに切り替え、かつサンプリングクロックのタイミングで動作モードBが選択されるように生成される。これにより、段数可変型のリングオシレータ20の発振周波数は、サンプリングクロックの周期内で段階的に切り替わり、長周期で発振する動作モードBのときに、その出力がセレクタ15を介して、または2入力XOR14およびセレクタ15を介して前段D−FF11−2でラッチされる。
【0050】
なお、動作モード切替制御信号は、発振周波数切替のタイミングにジッタ効果によるランダム性をもたらす目的で、図8に示すように偶数段のインバータゲートを介してリングオシレータ20に入力するようにしてもよい。
【0051】
カウンタ402では、セレクタ制御信号、出力用クロック、乱数有効表示信号が実施例3と同様に生成される。したがって、周波数S1 のサンプリングクロックがMクロック経過すると、実施例2で示したM個の段数可変型のリングオシレータ20−1〜20−Mの中間ノードのXOR出力を得る構成と等価な回路がシリアル回路として実現される。これにより、実施例2と同様に、状態遷移中のトランジェントな信号をサンプリングする頻度が低減し、0,1の発生頻度の偏りを低減することができる。
【符号の説明】
【0052】
10 段数固定型のリングオシレータ
11 前段D−FF
12 M入力XOR(排他的論理和回路)
13 後段D−FF
14 2入力XOR(排他的論理和回路)
15 セレクタ
20 段数可変型のリングオシレータ
21 遅延生成部A
22 遅延生成部B
23 セレクタ
100,200,300,400 制御部
101,201,301,302,401,402 カウンタ
【技術分野】
【0001】
本発明は、0,1の発生頻度の偏りが少なくランダム性を備えた予測不可能な真性乱数をディジタル論理ゲート回路のみで生成する乱数生成回路に関する。
【背景技術】
【0002】
暗号技術をベースとするセキュリティ分野においては、乱数の生成が重要な役割を果たしている。チャレンジレスポンス認証や鍵共有など暗号技術において利用される乱数の条件として、予測不可能であることがあげられる。乱数の予測不可能性を根拠とする暗号技術への適用においては、自然界に存在する揺らぎ現象のようなランダム性を備えた物理現象を利用して乱数を生成する真性乱数生成回路が重要な役割を果たす。
【0003】
非特許文献1に示す従来のリングオシレータ型真性乱数生成回路では、図10に示すように、出力乱数のランダム性を高める目的から自己発振動作するリングオシレータを複数数個用意し、これら並列に動作するリングオシレータの中間ノード値のXOR(排他的論理和)を取り、その出力をD−FF(D型フリップフロップ)でラッチし、乱数値として出力する。しかし、この回路は、特許文献1に示したように、複数のリングオシレータを必要とするためゲート規模および消費電力が大きい、という問題があった。
【0004】
乱数の品質検定プログラムとしてよく知られているNIST SP800−22検定においては、乱数系列における0,1の発生頻度の偏り検定は最も重要な検定項目とされている。このため、小さなゲート規模で発生頻度の課題を回避すべく、特許文献1に示す乱数生成回路が提案された。特許文献1の乱数生成回路では、1クロックの周期内でリングオシレータの発振周期が短い周期から長い周期に段階的に切り替わるように動作する。クロック周期内の前半の短い発振周期の動作でランダム性を獲得し、クロック周期内の後半の長い発振周期においてD−FFによりサンプリングを行い、ハイ, ローのラッチ確率の偏りを回避する。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2010−117846号公報
【非特許文献】
【0006】
【非特許文献1】Sunar B., Martin W., Stinson D.,”A provably secure true random number generator with built-in tolerance to active attacks”, IEEE Trans. Computers 56(1), pp.109-119 (2007)
【発明の概要】
【発明が解決しようとする課題】
【0007】
ランダム性を高める目的で多数のリングオシレータのXORを取る非特許文献1の乱数生成回路では、XOR出力が激しく状態遷移を繰り返すことになるため、D−FFによるサンプリング時にXOR出力信号がハイでもローでもない過渡的な電位状態となりやすい。そのため、D−FFがXOR出力信号をハイとしてラッチする確率と、ローとしてラッチする確率に偏りが生じやすい。すなわち、乱数系列における0,1の発生頻度の偏りの問題が生じる。
【0008】
特許文献1に示す乱数生成回路において、生成乱数のランダム性をさらに高める目的でリングオシレータを複数個用意し、各リングオシレータの中間ノード出力のXORをとり、その出力をD−FFによりラッチする回路構成の場合も、やはり非特許文献1の乱数生成回路と同様に、乱数系列における0,1の発生頻度の偏りの問題が生じる。
【0009】
さらに、ランダム性を高めるためにリングオシレータを複数個並列に用意する構成では、ゲート規模の増加が課題となっていた。
【0010】
本発明は、小さなゲート規模で0,1の発生頻度の偏りを低減することができる乱数生成回路を提供することを目的とする。
【課題を解決するための手段】
【0011】
第1の発明の乱数生成回路は、奇数段のインバータからなる段数固定型のM個(Mは2以上の整数)のリングオシレータと、M個のリングオシレータの中間ノードの出力を周波数S1 のサンプリングクロックでそれぞれラッチするM個の前段D−FFと、M個の前段D−FFの各ラッチ出力の排他的論理和をとるM入力XORと、M入力XORの出力を周波数S1 のサンプリングクロックでラッチし、乱数値として出力する後段D−FFと、周波数S1 のサンプリングクロックを生成する制御部とを備える。
【0012】
第2の発明の乱数生成回路は、動作モード切替制御信号により奇数段のインバータの段数を切り替え、発振周期の切り替えが可能な段数可変型のM個(Mは2以上の整数)のリングオシレータと、M個のリングオシレータの中間ノードの出力を周波数S1 のサンプリングクロックでそれぞれラッチするM個の前段D−FFと、M個の前段D−FFの各ラッチ出力の排他的論理和をとるM入力XORと、M入力XORの出力を周波数S1 のサンプリングクロックでラッチし、乱数値として出力する後段D−FFと、周波数S1 のサンプリングクロックを生成し、サンプリングクロックの1周期内で段数可変型のリングオシレータの短周期と長周期の発振周期を切り替え、かつサンプリングクロックのタイミングで段数可変型のリングオシレータを長周期に設定する動作モード切替制御信号を生成する制御部とを備える。
【0013】
第3の発明の乱数生成回路は、奇数段のインバータからなる段数固定型のリングオシレータと、リングオシレータの中間ノードの出力を周波数S1 のサンプリングクロックでラッチする第1の前段D−FFと、周波数S1 のサンプリングクロックで入力信号をラッチする第2の前段D−FFと、第2の前段D−FFのラッチ出力と、第1の前段D−FFの出力との排他的論理和をとる2入力XORと、セレクタ制御信号により、サンプリングクロックのM回(Mは2以上の整数)に1回の頻度で第1の前段D−FFの出力を選択し、サンプリングクロックの(M−1)回は2入力XORの出力を選択し、第2の前段D−FFに入力するセレクタと、周波数S1 のサンプリングクロックをM分周した周波数S2 (=S1 /M)の出力用クロックで前段第2のD−FFの出力をラッチし、乱数値として出力する後段D−FFと、周波数S1 のサンプリングクロック、セレクタ制御信号、出力用クロックを生成する制御部とを備える。
【0014】
第4の発明の乱数生成回路は、動作モード切替制御信号により奇数段のインバータの段数を切り替え、発振周期の切り替えが可能な段数可変型のリングオシレータと、リングオシレータの中間ノードの出力を周波数S1 のサンプリングクロックでラッチする第1の前段D−FFと、周波数S1 のサンプリングクロックで入力信号をラッチする第2の前段D−FFと、第2の前段D−FFのラッチ出力と、第1の前段D−FFの出力との排他的論理和をとる2入力XORと、セレクタ制御信号により、サンプリングクロックのM回(Mは2以上の整数)に1回の頻度で第1の前段D−FFの出力を選択し、サンプリングクロックの(M−1)回は2入力XORの出力を選択し、第2の前段D−FFに入力するセレクタと、周波数S1 のサンプリングクロックをM分周した周波数S2 (=S1 /M)の出力用クロックで前段第2のD−FFの出力をラッチし、乱数値として出力する後段D−FFと、周波数S1 のサンプリングクロック、セレクタ制御信号、出力用クロックを生成し、サンプリングクロックの1周期内で段数可変型のリングオシレータの短周期と長周期の発振周期を切り替え、かつサンプリングクロックのタイミングで段数可変型のリングオシレータを長周期に設定する動作モード切替制御信号を生成する制御部とを備える。
【0015】
第1また第2の発明の乱数生成回路において、制御部は、サンプリングクロックを所定回数カウントしたタイミングで後段D−FFから出力される乱数値を有効とする乱数有効表示信号を出力する構成である。
【0016】
第3または第4の発明の乱数生成回路において、制御部は、出力用クロックを所定回数カウントしたタイミングで後段D−FFから出力される乱数値を有効とする乱数有効表示信号を出力する構成である。
【0017】
第2または第4の発明の乱数生成回路において、動作モード切替制御信号は、偶数段のインバータゲートを介してリングオシレータに入力する構成である。
【発明の効果】
【0018】
第1または第2の発明は、段数固定型または段数可変型のリングオシレータを複数備える乱数生成回路において、各リングオシレータの中間ノードの出力を前段D−FFで一旦ラッチしてから排他的論理和をとり、その出力を後段D−FFでラッチし、乱数値として出力する構成により、状態遷移中のトランジェントな信号をサンプリングする頻度を低減することができ、0,1の発生頻度の偏りを低減することができる。
【0019】
また、第3または第4の発明は、単一構成の段数固定型または段数可変型のリングオシレータを用いたシリアル処理型乱数生成回路により、単一のリングオシレータのみで複数のリングオシレータを用いた場合と等価な効果を得ることができる。これにより、小さなゲート規模で複数のリングオシレータの回路構成と同等レベルで高品質の乱数値を出力することができる。
【図面の簡単な説明】
【0020】
【図1】本発明の実施例1の乱数生成回路の構成例を示す図である。
【図2】実施例1における制御部100の構成例および動作例を示す図である。
【図3】本発明の実施例2の乱数生成回路の構成例を示す図である。
【図4】段数可変型のリングオシレータ20の構成例を示す図である。
【図5】実施例2における制御部200の構成例および動作例を示す図である。
【図6】本発明の実施例3の乱数生成回路の構成例を示す図である。
【図7】実施例3における制御部300の構成例および動作例を示す図である。
【図8】本発明の実施例4の乱数生成回路の構成例を示す図である。
【図9】実施例4における制御部400の構成例および動作例を示す図である。
【図10】従来の乱数生成回路の構成例を示す図である。
【発明を実施するための形態】
【実施例1】
【0021】
図1は、本発明の実施例1の乱数生成回路の構成例を示す。本実施例は、非特許文献1に示す複数の段数固定型(発振周期固定型)のリングオシレータを乱数生成源とする回路に本発明を適用した例である。
【0022】
図1において、L1 段〜LM 段の段数固定型のM個(Mは2以上の整数)のリングオシレータ10−1〜10−Mを並列に配置し、各リングオシレータの中間ノード出力を周波数S1 Hzのサンプリングクロックに同期した前段D−FF11−1〜11−Mでそれぞれラッチする。さらに、前段D−FF11−1〜11−Mの各出力はM入力XOR(排他的論理和回路)12に入力され、その出力が後段D−FF13に入力される。後段D−FF13は、前段D−FF11−1〜11−Mと同期したサンプリングクロックにより、M入力XOR12の出力をラッチし、乱数値として出力する。
【0023】
段数固定型のリングオシレータ10−1〜10−Mは、2入力NANDとインバータをリング状に接続した構成であり、2入力NANDに入力する動作ON/OFF切替信号によりリングオシレータの動作、非動作の切り替えが可能である。すなわち、2入力NANDは、動作ON/OFF切替信号がローのときは出力がハイに固定され、動作ON/OFF切替信号がハイに遷移するとインバータとして機能し、各リングオシレータが奇数段のインバータをリング状に接続した構成になる。なお、ここでは2入力NANDを用いたが、動作ON/OFF切替信号の位相を反転すれば2入力NORでもよい。また、2入力NANDの位置は、必ずしも各リングオシレータの初段である必要はない。また、2入力NANDをインバータに代え、動作ON/OFF切替信号を用いない構成としてもよい。この場合は、動作ON/OFF切替信号が常にハイになっている状態と等価である。2入力NANDと動作ON/OFF切替信号を用いることにより、乱数生成が必要ないときはリングオシレータの発振動作を停止し、無駄な電流消費を抑えることができる。
【0024】
制御部100は、動作ON/OFF切替信号と周波数S0 Hzのシステムクロックを入力し、システムクロックを分周して前段D−FF11−1〜11−Mおよび後段D−FF13に与える周波数S1 のサンプリングクロックおよび乱数有効表示信号を生成する。
【0025】
図2は、実施例1における制御部100の構成例および動作例を示す。ここでは、動作ON/OFF切替信号がハイのときにカウンタ101で周波数S0 のシステムクロックを4分周して周波数S1(=S0/4)のサンプリングクロックを生成する例を示す。
【0026】
リングオシレータ10−1〜10−Mが自己発振動作の開始直後は、発振のジッタ成分が十分蓄積されておらずランダム性の効果が不十分と考えられるため、制御部100でサンプリングクロック数をカウンタ101でカウントし、カウンタ値がある一定数に達した段階で乱数有効表示信号を有効にすることにより、後段D−FF13から十分なランダム性を備えた乱数値を取得することができる。乱数有効表示信号に用いるカウンタ値は、実験などにより事前に調べて「乱数有効クロック設定値」として保持しておき、カウンタ101のカウンタ値がこの設定値に達した時点で乱数有効表示信号を有効とすればよい。ここでは、サンプリングクロックの2クロック目(システムクロックの8クロック目)で乱数有効表示信号が有効となる例を示す。
【実施例2】
【0027】
図3は、本発明の実施例2の乱数生成回路の構成例を示す。本実施例は、特許文献1に示す複数の段数可変型(発振周期可変型)のリングオシレータを乱数生成源とする回路に本発明を適用した例である。
【0028】
図3において、M個の段数可変型のリングオシレータ20−1〜20−Mを並列に配置し、各リングオシレータの中間ノード出力を周波数S1 Hzのサンプリングクロックに同期した前段D−FF11−1〜11−Mでそれぞれラッチする。さらに、前段D−FF11−1〜11−Mの各出力はM入力XOR(排他的論理和回路)12に入力され、その出力が後段D−FF13に入力される。後段D−FF13は、前段D−FF11−1〜11−Mと同期したサンプリングクロックにより、M入力XOR12の出力をラッチし、乱数値として出力する。
【0029】
制御部200は、動作ON/OFF切替信号と周波数S0 Hzのシステムクロックを入力し、システムクロックを分周して前段D−FF11−1〜11−Mおよび後段D−FF13に与える周波数S1 のサンプリングクロック、各リングオシレータ20−1〜20−Mに与える動作モード切替制御信号、および乱数有効表示信号を生成する。
【0030】
段数可変型のリングオシレータ20−1〜20−Mは、特許文献1に具体的にいろいろな形態のものが示されているが、例えば図4に示すように、遅延生成部A21と遅延生成部B22をセレクタ23を介して接続した構成である。遅延生成部A21は、2入力NANDとインバータをカスケード接続した構成であり、2入力NANDとインバータの総段数を奇数La 段とする。La の最小値は1であり、この場合は2入力NANDのみで構成される。遅延生成部B22は、インバータをカスケード接続した構成であり、インバータの段数を偶数Lb 段とする。La を比較的小さい値とし、かつLa +Lb が比較的大きい値となるように設定する。
【0031】
動作ON/OFF切替信号は、遅延生成部A21の2入力NANDの一方の入力にも接続される。遅延生成部A21の2入力NANDは、動作ON/OFF切替信号がローのときは出力がハイに固定され、動作ON/OFF切替信号がハイに遷移するとインバータとして機能し、遅延生成部A21が全体として奇数段のインバータになる。なお、ここでは2入力NANDを用いたが、動作ON/OFF切替信号の位相を反転すれば2入力NORでもよい。また、2入力NANDの位置は、必ずしも遅延生成部A21の初段である必要はない。また、2入力NANDをインバータに代え、動作ON/OFF切替信号を用いない構成としてもよい。この場合は、動作ON/OFF切替信号が常にハイになっている状態と等価である。
【0032】
遅延生成部A21の最終段のインバータ(1段の場合は2入力NAND)の出力は、セレクタ23の一方の入力端子(L)および遅延生成部B22の初段のインバータに接続される。遅延生成部B22の最終段のインバータの出力は、セレクタ23の他方の入力端子(H)に接続される。セレクタ23は、制御部200から出力される動作モード切替制御信号により、2つの入力のいずれか一方を選択して遅延生成部A21の2入力NANDの他方の入力に接続する。ここで、動作ON/OFF切替信号がローからハイに遷移して動作モード切替制御信号がロー(L)のときに、セレクタ23は遅延生成部A21の最終段のインバータ(1段の場合は2入力NAND)の出力を選択し、遅延生成部A21の閉ループで形成されるリングオシレータが独立に短周期で発振する動作モードAとなる。また、動作モード切替制御信号がハイ(H)のときに、セレクタ23は遅延生成部B22の最終段のインバータの出力を選択し、遅延生成部A21,B22が連結した閉ループで形成されるリングオシレータが長周期で発振する動作モードBとなる。なお、3段以上の遅延生成部をセレクタを介して接続する構成でも同様である。
【0033】
図5は、実施例2における制御部200の構成例および動作例を示す。ここでは、動作ON/OFF切替信号がハイのときにカウンタ201で周波数S0 のシステムクロックを4分周して周波数S1(=S0/4)のサンプリングクロックを生成する例を示す。
【0034】
動作モード切替制御信号は、サンプリングクロックの周期内で段数可変型のリングオシレータ20−1〜20−Mを動作モードAから動作モードBに切り替え、かつサンプリングクロックのタイミングで動作モードBが選択されるように生成される。これにより、段数可変型のリングオシレータ20−1〜20−Mの発振周波数は、サンプリングクロックの周期内で段階的に切り替わり、長周期で発振する動作モードBのときに、その出力が前段D−FF11−1〜11−Mでラッチされる。
【0035】
なお、動作モード切替制御信号は、発振周波数切替のタイミングにジッタ効果によるランダム性をもたらす目的で、図3に示すように偶数段のインバータゲートを介してリングオシレータ20−1〜20−Mのセレクタ23に入力するようにしてもよい。
【0036】
乱数有効表示信号は、実施例1と同様であり、サンプリングクロックの1クロック目の出力は前段D−FF11−1〜11−Mの初期値の排他的論理和となって乱数として適切でないため、2クロック目以降で有効とするように「乱数有効クロック設定値」に応じて設定される。
【実施例3】
【0037】
図6は、本発明の実施例3の乱数生成回路の構成例を示す。本実施例は、実施例1の回路をシリアル処理化した構成である。
【0038】
図6において、段数固定型のリングオシレータ10の中間ノード出力を周波数S1 Hzのサンプリングクロックに同期した前段D−FF11−1でラッチする。さらに、前段D−FF11−1の出力と2入力XOR14の出力とをセレクタ15で選択した出力を、周波数S1 Hzのサンプリングクロックに同期した前段D−FF11−2でラッチする。2入力XOR14は、前段D−FF11−1の出力と前段D−FF11−2の出力とを入力し、排他的論理和出力をセレクタ15に出力する。さらに、前段D−FF11−2の出力は後段D−FF13に入力される。後段D−FF13は、周波数S1 HzのサンプリングクロックをM分周した周波数S2 (=S1 /M)Hzの出力用クロックで前段D−FF11−2の出力をラッチし、乱数値として出力する。
【0039】
段数固定型のリングオシレータ10は、2入力NANDとインバータをリング状に接続した構成であり、2入力NANDに入力する動作ON/OFF切替信号によりリングオシレータの動作、非動作の切り替えが可能である。
【0040】
制御部300は、動作ON/OFF切替信号と周波数S0 Hzのシステムクロックを入力し、システムクロックを分周して前段D−FF11−1,11−2に与える周波数S1 のサンプリングクロック、セレクタ15に与えるセレクタ制御信号、後段D−FF13に与える出力用クロック、および乱数有効表示信号を生成する。
【0041】
図7は、実施例3における制御部300の構成例および動作例を示す。ここでは、動作ON/OFF切替信号がハイのときにカウンタ301で周波数S0 のシステムクロックを4分周して周波数S1(=S0/4)のサンプリングクロックを生成する例を示す。
【0042】
カウンタ301で生成されたサンプリングクロックは、前段D−FF11−1,11−2に与えられるとともにカウンタ302に入力される。カウンタ302は、動作ON/OFF切替信号がハイのときに、サンプリングクロックからセレクタ制御信号および出力用クロックを生成する。セレクタ15を制御するセレクタ制御信号は、サンプリングクロックのM回に1回の頻度でリングオシレータ10の出力を選択し、(M−1)回はリングオシレータ10の出力と前段D−FF11のラッチ出力(固定値)とのXOR出力を選択するように設定される。これは、実施例1のM個のリングオシレータ10−1〜10−Mの1サンプリング毎の出力を前段D−FF11−1〜11−Mでラッチし、M入力XOR12に入力することと等価である。出力用クロックは、周波数S1 のサンプリングクロックをM分周した周波数S2 (=S1 /M)のクロックである。後段D−FF13は、この出力用クロックで前段D−FF11−2の出力をラッチし、乱数値として出力する。
【0043】
このように、周波数S1 のサンプリングクロックがMクロック経過すると、実施例1で示したM個の段数固定型のリングオシレータ10−1〜10−Mの中間ノードのXOR出力を得る構成と等価な回路がシリアル回路として実現される。これにより、実施例1と同様に、状態遷移中のトランジェントな信号をサンプリングする頻度が低減し、0,1の発生頻度の偏りを低減することができる。
【0044】
リングオシレータが自己発振動作の開始直後は、発振のジッタ成分が十分蓄積されておらずランダム性の効果が不十分と考えられるため、制御部300のカウンタ302で出力用クロックをカウントし、カウンタ値がある一定数に達した段階で乱数有効表示信号を有効にすることにより、後段D−FF13から十分なランダム性を備えた乱数値を取得することができる。乱数有効表示信号に用いるカウンタ値は、実験などにより事前に調べて「乱数有効クロック設定値」として保持しておき、カウンタ302のカウンタ値がこの設定値に達した時点で乱数有効表示信号を有効とすればよい。ここでは、出力用クロックの2クロック目(サンプリングクロックの8クロック目)で乱数有効表示信号が有効となる例を示す。
【実施例4】
【0045】
図8は、本発明の実施例4の乱数生成回路の構成例を示す。本実施例は、実施例2の回路をシリアル処理化した構成である。
【0046】
本実施例の乱数生成回路は、実施例3の段数固定型のリングオシレータ10を、段数可変型のリングオシレータ20に置き換える他は、実施例3と同様の構成である。
【0047】
制御部400は、動作ON/OFF切替信号と周波数S0 Hzのシステムクロックを入力し、システムクロックを分周して前段D−FF11−1,11−2に与える周波数S1 のサンプリングクロック、段数可変型のリングオシレータ20に与える動作モード切替制御信号、セレクタ15に与えるセレクタ制御信号、後段D−FF13に与える周波数S2 (=S1 /M)の出力用クロック、および乱数有効表示信号を生成する。
【0048】
図9は、実施例4における制御部400の構成例および動作例を示す。ここでは、動作ON/OFF切替信号がハイのときにカウンタ401で周波数S0 のシステムクロックを4分周して周波数S1(=S0/4)のサンプリングクロックを生成する例を示す。
【0049】
動作モード切替制御信号は、サンプリングクロックの周期内で段数可変型のリングオシレータ20を動作モードAから動作モードBに切り替え、かつサンプリングクロックのタイミングで動作モードBが選択されるように生成される。これにより、段数可変型のリングオシレータ20の発振周波数は、サンプリングクロックの周期内で段階的に切り替わり、長周期で発振する動作モードBのときに、その出力がセレクタ15を介して、または2入力XOR14およびセレクタ15を介して前段D−FF11−2でラッチされる。
【0050】
なお、動作モード切替制御信号は、発振周波数切替のタイミングにジッタ効果によるランダム性をもたらす目的で、図8に示すように偶数段のインバータゲートを介してリングオシレータ20に入力するようにしてもよい。
【0051】
カウンタ402では、セレクタ制御信号、出力用クロック、乱数有効表示信号が実施例3と同様に生成される。したがって、周波数S1 のサンプリングクロックがMクロック経過すると、実施例2で示したM個の段数可変型のリングオシレータ20−1〜20−Mの中間ノードのXOR出力を得る構成と等価な回路がシリアル回路として実現される。これにより、実施例2と同様に、状態遷移中のトランジェントな信号をサンプリングする頻度が低減し、0,1の発生頻度の偏りを低減することができる。
【符号の説明】
【0052】
10 段数固定型のリングオシレータ
11 前段D−FF
12 M入力XOR(排他的論理和回路)
13 後段D−FF
14 2入力XOR(排他的論理和回路)
15 セレクタ
20 段数可変型のリングオシレータ
21 遅延生成部A
22 遅延生成部B
23 セレクタ
100,200,300,400 制御部
101,201,301,302,401,402 カウンタ
【特許請求の範囲】
【請求項1】
奇数段のインバータからなる段数固定型のM個(Mは2以上の整数)のリングオシレータと、
前記M個のリングオシレータの中間ノードの出力を周波数S1 のサンプリングクロックでそれぞれラッチするM個の前段D−FFと、
前記M個の前段D−FFの各ラッチ出力の排他的論理和をとるM入力XORと、
前記M入力XORの出力を前記周波数S1 のサンプリングクロックでラッチし、乱数値として出力する後段D−FFと、
前記周波数S1 のサンプリングクロックを生成する制御部と
を備えたことを特徴とする乱数生成回路。
【請求項2】
動作モード切替制御信号により奇数段のインバータの段数を切り替え、発振周期の切り替えが可能な段数可変型のM個(Mは2以上の整数)のリングオシレータと、
前記M個のリングオシレータの中間ノードの出力を周波数S1 のサンプリングクロックでそれぞれラッチするM個の前段D−FFと、
前記M個の前段D−FFの各ラッチ出力の排他的論理和をとるM入力XORと、
前記M入力XORの出力を前記周波数S1 のサンプリングクロックでラッチし、乱数値として出力する後段D−FFと、
前記周波数S1 のサンプリングクロックを生成し、前記サンプリングクロックの1周期内で前記段数可変型のリングオシレータの短周期と長周期の発振周期を切り替え、かつ前記サンプリングクロックのタイミングで前記段数可変型のリングオシレータを長周期に設定する前記動作モード切替制御信号を生成する制御部と
を備えたことを特徴とする乱数生成回路。
【請求項3】
奇数段のインバータからなる段数固定型のリングオシレータと、
前記リングオシレータの中間ノードの出力を周波数S1 のサンプリングクロックでラッチする第1の前段D−FFと、
周波数S1 のサンプリングクロックで入力信号をラッチする第2の前段D−FFと、
前記第2の前段D−FFのラッチ出力と、前記第1の前段D−FFの出力との排他的論理和をとる2入力XORと、
セレクタ制御信号により、前記サンプリングクロックのM回(Mは2以上の整数)に1回の頻度で前記第1の前段D−FFの出力を選択し、前記サンプリングクロックの(M−1)回は前記2入力XORの出力を選択し、前記第2の前段D−FFに入力するセレクタと、
前記周波数S1 のサンプリングクロックをM分周した周波数S2 (=S1 /M)の出力用クロックで前段第2のD−FFの出力をラッチし、乱数値として出力する後段D−FFと、
前記周波数S1 のサンプリングクロック、前記セレクタ制御信号、前記出力用クロックを生成する制御部と
を備えたことを特徴とする乱数生成回路。
【請求項4】
動作モード切替制御信号により奇数段のインバータの段数を切り替え、発振周期の切り替えが可能な段数可変型のリングオシレータと、
前記リングオシレータの中間ノードの出力を周波数S1 のサンプリングクロックでラッチする第1の前段D−FFと、
周波数S1 のサンプリングクロックで入力信号をラッチする第2の前段D−FFと、
前記第2の前段D−FFのラッチ出力と、前記第1の前段D−FFの出力との排他的論理和をとる2入力XORと、
セレクタ制御信号により、前記サンプリングクロックのM回(Mは2以上の整数)に1回の頻度で前記第1の前段D−FFの出力を選択し、前記サンプリングクロックの(M−1)回は前記2入力XORの出力を選択し、前記第2の前段D−FFに入力するセレクタと、
前記周波数S1 のサンプリングクロックをM分周した周波数S2 (=S1 /M)の出力用クロックで前段第2のD−FFの出力をラッチし、乱数値として出力する後段D−FFと、
前記周波数S1 のサンプリングクロック、前記セレクタ制御信号、前記出力用クロックを生成し、前記サンプリングクロックの1周期内で前記段数可変型のリングオシレータの短周期と長周期の発振周期を切り替え、かつ前記サンプリングクロックのタイミングで前記段数可変型のリングオシレータを長周期に設定する前記動作モード切替制御信号を生成する制御部と
を備えたことを特徴とする乱数生成回路。
【請求項5】
請求項1または請求項2に記載の乱数生成回路において、
前記制御部は、前記サンプリングクロックを所定回数カウントしたタイミングで前記後段D−FFから出力される乱数値を有効とする乱数有効表示信号を出力する構成である
ことを特徴とする乱数生成回路。
【請求項6】
請求項3または請求項4に記載の乱数生成回路において、
前記制御部は、前記出力用クロックを所定回数カウントしたタイミングで前記後段D−FFから出力される乱数値を有効とする乱数有効表示信号を出力する構成である
ことを特徴とする乱数生成回路。
【請求項7】
請求項2または請求項4に記載の乱数生成回路において、
前記動作モード切替制御信号は、偶数段のインバータゲートを介して前記リングオシレータに入力する構成である
ことを特徴とする乱数生成回路。
【請求項1】
奇数段のインバータからなる段数固定型のM個(Mは2以上の整数)のリングオシレータと、
前記M個のリングオシレータの中間ノードの出力を周波数S1 のサンプリングクロックでそれぞれラッチするM個の前段D−FFと、
前記M個の前段D−FFの各ラッチ出力の排他的論理和をとるM入力XORと、
前記M入力XORの出力を前記周波数S1 のサンプリングクロックでラッチし、乱数値として出力する後段D−FFと、
前記周波数S1 のサンプリングクロックを生成する制御部と
を備えたことを特徴とする乱数生成回路。
【請求項2】
動作モード切替制御信号により奇数段のインバータの段数を切り替え、発振周期の切り替えが可能な段数可変型のM個(Mは2以上の整数)のリングオシレータと、
前記M個のリングオシレータの中間ノードの出力を周波数S1 のサンプリングクロックでそれぞれラッチするM個の前段D−FFと、
前記M個の前段D−FFの各ラッチ出力の排他的論理和をとるM入力XORと、
前記M入力XORの出力を前記周波数S1 のサンプリングクロックでラッチし、乱数値として出力する後段D−FFと、
前記周波数S1 のサンプリングクロックを生成し、前記サンプリングクロックの1周期内で前記段数可変型のリングオシレータの短周期と長周期の発振周期を切り替え、かつ前記サンプリングクロックのタイミングで前記段数可変型のリングオシレータを長周期に設定する前記動作モード切替制御信号を生成する制御部と
を備えたことを特徴とする乱数生成回路。
【請求項3】
奇数段のインバータからなる段数固定型のリングオシレータと、
前記リングオシレータの中間ノードの出力を周波数S1 のサンプリングクロックでラッチする第1の前段D−FFと、
周波数S1 のサンプリングクロックで入力信号をラッチする第2の前段D−FFと、
前記第2の前段D−FFのラッチ出力と、前記第1の前段D−FFの出力との排他的論理和をとる2入力XORと、
セレクタ制御信号により、前記サンプリングクロックのM回(Mは2以上の整数)に1回の頻度で前記第1の前段D−FFの出力を選択し、前記サンプリングクロックの(M−1)回は前記2入力XORの出力を選択し、前記第2の前段D−FFに入力するセレクタと、
前記周波数S1 のサンプリングクロックをM分周した周波数S2 (=S1 /M)の出力用クロックで前段第2のD−FFの出力をラッチし、乱数値として出力する後段D−FFと、
前記周波数S1 のサンプリングクロック、前記セレクタ制御信号、前記出力用クロックを生成する制御部と
を備えたことを特徴とする乱数生成回路。
【請求項4】
動作モード切替制御信号により奇数段のインバータの段数を切り替え、発振周期の切り替えが可能な段数可変型のリングオシレータと、
前記リングオシレータの中間ノードの出力を周波数S1 のサンプリングクロックでラッチする第1の前段D−FFと、
周波数S1 のサンプリングクロックで入力信号をラッチする第2の前段D−FFと、
前記第2の前段D−FFのラッチ出力と、前記第1の前段D−FFの出力との排他的論理和をとる2入力XORと、
セレクタ制御信号により、前記サンプリングクロックのM回(Mは2以上の整数)に1回の頻度で前記第1の前段D−FFの出力を選択し、前記サンプリングクロックの(M−1)回は前記2入力XORの出力を選択し、前記第2の前段D−FFに入力するセレクタと、
前記周波数S1 のサンプリングクロックをM分周した周波数S2 (=S1 /M)の出力用クロックで前段第2のD−FFの出力をラッチし、乱数値として出力する後段D−FFと、
前記周波数S1 のサンプリングクロック、前記セレクタ制御信号、前記出力用クロックを生成し、前記サンプリングクロックの1周期内で前記段数可変型のリングオシレータの短周期と長周期の発振周期を切り替え、かつ前記サンプリングクロックのタイミングで前記段数可変型のリングオシレータを長周期に設定する前記動作モード切替制御信号を生成する制御部と
を備えたことを特徴とする乱数生成回路。
【請求項5】
請求項1または請求項2に記載の乱数生成回路において、
前記制御部は、前記サンプリングクロックを所定回数カウントしたタイミングで前記後段D−FFから出力される乱数値を有効とする乱数有効表示信号を出力する構成である
ことを特徴とする乱数生成回路。
【請求項6】
請求項3または請求項4に記載の乱数生成回路において、
前記制御部は、前記出力用クロックを所定回数カウントしたタイミングで前記後段D−FFから出力される乱数値を有効とする乱数有効表示信号を出力する構成である
ことを特徴とする乱数生成回路。
【請求項7】
請求項2または請求項4に記載の乱数生成回路において、
前記動作モード切替制御信号は、偶数段のインバータゲートを介して前記リングオシレータに入力する構成である
ことを特徴とする乱数生成回路。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【公開番号】特開2012−48614(P2012−48614A)
【公開日】平成24年3月8日(2012.3.8)
【国際特許分類】
【出願番号】特願2010−192079(P2010−192079)
【出願日】平成22年8月30日(2010.8.30)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】
【公開日】平成24年3月8日(2012.3.8)
【国際特許分類】
【出願日】平成22年8月30日(2010.8.30)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】
[ Back to top ]