(57)【要約】【課題】  ディジタル論理ゲート回路のみで、予測不可能なランダム性の高い乱数列を高スループットで発生させる。【解決手段】  奇数段のインバータからなるリングオシレータの中間ノード出力をクロックでラッチし、乱数値として出力する乱数生成回路において、奇数Ｌa 段の遅延生成部Ａと、偶数Ｌb 段の遅延生成部Ｂと、遅延生成部Ａの最終段の出力と遅延生成部Ｂの最終段の出力とを切り替え、遅延生成部Ａの初段に接続するセレクタと、セレクタに対して、奇数Ｌa 段で短周期のリングオシレータを形成する動作モードＡと、奇数（Ｌa ＋Ｌb ）段で長周期のリングオシレータを形成する動作モードＢを選択する制御信号を出力する制御部とを備え、動作モードＡと動作モードＢを交互に切り替えて発振動作を継続しながら、動作モードＢのタイミングでリングオシレータの中間ノード出力をラッチする。【選択図】        図１
2010117846.tif 000002
【特許請求の範囲】
【請求項１】
奇数段のインバータからなるリングオシレータの中間ノード出力をクロックでラッチし、乱数値として出力する乱数生成回路において、
奇数Ｌa 段のインバータをカスケードに接続した遅延生成部Ａと、
偶数Ｌb 段のインバータをカスケードに接続し、その初段のインバータに前記遅延生成部Ａの最終段のインバータの出力が接続される遅延生成部Ｂと、
前記遅延生成部Ａの最終段のインバータの出力と前記遅延生成部Ｂの最終段のインバータの出力とを切り替え、前記遅延生成部Ａの初段のインバータに接続するセレクタと、
前記セレクタに対して、前記クロックの周期内で前記遅延生成部Ａの最終段のインバータの出力に切り替えて奇数Ｌa 段のインバータで短周期のリングオシレータを形成する動作モードＡと、前記遅延生成部Ｂの最終段のインバータの出力に切り替えて奇数（Ｌa ＋Ｌb ）段のインバータで長周期のリングオシレータを形成する動作モードＢを選択する制御信号を出力する制御部と
を備え、前記動作モードＡと前記動作モードＢを交互に切り替えて発振動作を継続しながら、前記動作モードＢのタイミングで前記リングオシレータの中間ノード出力をラッチし、乱数値として出力する構成である
ことを特徴とする乱数生成回路。
【請求項２】
奇数段のインバータからなるリングオシレータの中間ノード出力をクロックでラッチし、乱数値として出力する乱数生成回路において、
奇数Ｌa 段のインバータをカスケードに接続した遅延生成部Ａと、
偶数Ｌb 段のインバータをカスケードに接続した遅延生成部Ｂと、
偶数Ｌc 段のインバータをカスケードに接続し、その初段のインバータに前記遅延生成部Ａの最終段のインバータの出力が接続される遅延生成部Ｃと、
前記遅延生成部Ａの最終段のインバータの出力と前記遅延生成部Ｂの最終段のインバータの出力とを切り替え、前記遅延生成部Ａの初段のインバータに接続する第１のセレクタと、
前記遅延生成部Ａの最終段のインバータの出力と前記遅延生成部Ｃの最終段のインバータの出力とを切り替え、前記遅延生成部Ｂの初段のインバータに接続する第２のセレクタと、
前記第１のセレクタおよび前記第２のセレクタに対して、前記クロックの周期内で前記遅延生成部Ａの最終段のインバータの出力に切り替えて奇数Ｌa 段のインバータで短周期のリングオシレータを形成する動作モードＡと、前記第１のセレクタに対して前記遅延生成部Ｂの最終段のインバータの出力に切り替え、前記第２のセレクタに対して前記遅延生成部Ａの最終段のインバータの出力に切り替えて奇数（Ｌa ＋Ｌb ）段のインバータで長周期のリングオシレータを形成する動作モードＢと、前記第１のセレクタおよび前記第２のセレクタに対して、前記遅延生成部Ｂおよび前記遅延生成部Ｃの各最終段のインバータの出力に切り替えて奇数（Ｌa ＋Ｌb ＋Ｌc ）段のインバータで動作モードＢよりさらに長周期のリングオシレータを形成する動作モードＣとを選択する制御信号を出力する制御部と
を備え、前記動作モードＡと前記動作モードＢと前記動作モードＣを順次切り替えて発振動作を継続しながら、前記動作モードＣのタイミングで前記リングオシレータの中間ノード出力をラッチし、乱数値として出力する構成である
ことを特徴とする乱数生成回路。
【請求項３】
奇数段のインバータからなるリングオシレータの中間ノード出力をクロックでラッチし、乱数値として出力する乱数生成回路において、
奇数Ｌa 段のインバータをカスケードに接続した遅延生成部Ａを３以上の奇数ｐ個と、
前記ｐ個の遅延生成部Ａをリング状に配置したときに、前記遅延生成部Ａごとに最終段のインバータの出力と前段の遅延生成部Ａの最終段のインバータの出力とを切り替え、当該遅延生成部Ａの初段のインバータに接続するｐ個の第１のセレクタと、
前記第１のセレクタに対して、前記クロックの周期内で各遅延生成部Ａごとにそれぞれの最終段のインバータの出力に切り替えて奇数Ｌa 段のインバータで短周期のリングオシレータを形成する動作モードＡと、前記前段の遅延生成部Ａの最終段のインバータの出力に切り替えて奇数（Ｌa ×ｐ）段のインバータで長周期のリングオシレータを形成する動作モードＢを選択する制御信号を出力する制御部と
を備え、前記動作モードＡと前記動作モードＢを交互に切り替えて発振動作を継続しながら、前記動作モードＢのタイミングで前記リングオシレータの中間ノード出力をラッチし、乱数値として出力する構成である
ことを特徴とする乱数生成回路。
【請求項４】
請求項３に記載の乱数生成回路において、
前記ｐ個の遅延生成部Ａおよび前記第１のセレクタを単位とする遅延生成部Ｄを３以上の奇数ｑ個と、
前記ｑ個の遅延生成部Ｄをリング状に配置したときに、前記遅延生成部Ｄごとに最終段のインバータの出力と前段の遅延生成部Ｄの最終段のインバータの出力とを切り替え、当該遅延生成部Ｄの初段のインバータに接続するｑ個の第２のセレクタと
を備え、
前記制御部は、前記第２のセレクタに対して、前記クロックの周期内で各遅延生成部Ｄごとにそれぞれの最終段のインバータの出力に切り替えて奇数（Ｌa ×ｐ）段のインバータで長周期のリングオシレータを形成する動作モードＢと、前記前段の遅延生成部Ｄの最終段のインバータの出力に切り替えて奇数（Ｌa ×ｐ×ｑ）段のインバータでさらに長周期のリングオシレータを形成する動作モードＣを選択する制御信号を出力し、前記動作モードＡと前記動作モードＢと前記動作モードＣを順次切り替えて発振動作を継続しながら、前記動作モードＣのタイミングで前記リングオシレータの中間ノード出力をラッチし、乱数値として出力する構成である
ことを特徴とする乱数生成回路。
【請求項５】
請求項１〜４のいずれかに記載の乱数生成回路において、
前記遅延生成部Ａの１つのインバータに代えて、外部から入力するリセット信号によりインバータ動作を有効または無効とし、前記リングオシレータの動作状態をアクティブ状態または休止状態に切り替える論理ゲートを備えた
ことを特徴とする乱数生成回路。
【請求項６】
請求項１または請求項３に記載の乱数生成回路において、
前記制御部は、前記クロックと前記クロックを遅延させた遅延クロックの位相差に対応する制御信号で前記セレクタを切り替え、かつ前記動作モードＡより前記動作モードＢの動作時間が長くなるように遅延クロックの遅延時間が設定される構成である
ことを特徴とする乱数生成回路。
【請求項７】
請求項２または請求項４に記載の乱数生成回路において、
前記制御部は、前記クロックと前記クロックを遅延させた遅延クロックの位相差に対応する制御信号で前記第１のセレクタおよび前記第２のセレクタを切り替え、かつ前記動作モードＣの動作時間が最長になるように遅延クロックの遅延時間が設定される構成である
ことを特徴とする乱数生成回路。
【請求項８】
請求項１〜４のいずれかに記載の乱数生成回路において、
前記各動作モードが切り替えられるリングオシレータを複数個備え、
前記制御部は、複数個のリングオシレータの各動作モードを前記制御信号で一括して切り替える構成であり、
前記複数個のリングオシレータの中間ノード出力の排他的論理和をとり、その出力をラッチし、乱数値として出力する構成である
ことを特徴とする乱数生成回路。
【請求項９】
請求項１〜４のいずれかに記載の乱数生成回路において、
前記各動作モードが切り替えられるリングオシレータを複数個備え、
前記制御部は、複数個のリングオシレータにそれぞれ個別に設け、複数個のリングオシレータの各動作モードを前記制御信号でそれぞれ個別に切り替える構成であり、
前記複数個のリングオシレータの中間ノード出力の排他的論理和をとり、その出力をラッチし、乱数値として出力する構成である
ことを特徴とする乱数生成回路。
【請求項１０】
請求項１〜４のいずれかに記載の乱数生成回路において、
前記ラッチした乱数値を入力し、０，１の頻度にバイアスのある乱数列をバランスした乱数列に変換する均等化回路を備えた
ことを特徴とする乱数生成回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、０，１の発生頻度の偏りが少なくランダム性を備えた予測不可能な真性乱数をディジタル論理ゲート回路のみで生成する乱数生成回路に関する。
【背景技術】
【０００２】
暗号技術をベースとするセキュリティ分野では、乱数の生成が重要な役割を果たしている。暗号技術において利用される乱数は、安全性の根拠として値が予測不可能であることがあげられる。
【０００３】
乱数の生成方法により、疑似乱数と真性乱数に分けられる。疑似乱数は生成のための数学的なアルゴリズムと乱数生成の初期値を決めると、周期性をもった乱数値の数値系列が一意的に決まってしまうので、何らかの原因により初期値が暴露されると発生乱数列を予測できてしまう。このため、乱数の予測不可能性を根拠とする暗号技術への適用においては、必ずしも十分な安全性を備えているとは言えなかった。
【０００４】
一方、真性乱数は数学的なアルゴリズムをベースとした決定論的な生成方法に頼るものではなく、例えば自然界に存在する揺らぎのようなランダム性を備えた物理現象を利用して生成するものであり、再現性がなく値の予測が原理的に不可能である性質を備えている。物理現象を利用した乱数生成回路としては、例えば熱雑音を乱数の生成源として利用する方法などが提案されている。この方法は、ディジタル信号処理の前段階として、微小な熱雑音信号をアナログ回路のアンプを用いて一旦増幅し、Ａ／Ｄ（アナログ／ディジタル）変換器でディジタル信号に変換する構成を用いている。アナログ回路を用いているためディジタル集積回路への移植が容易でない課題があり、また実装する場合はアナログアンプとＡ／Ｄ変換器の回路用に、ディジタル回路用とは異なるプロセス工程が別途必要となりコスト高の要因となる課題があり、またアナログアンプ回路部の消費電力が大きい課題がある。
【０００５】
これに対して、真性乱数をディジタル論理ゲート回路のみで生成する方法が非特許文献１で提案されている。この方法は、図１１に示すように、奇数段のインバータからなる複数のリングオシレータ回路の中間ノードの電圧値の排他的論理和をとり、この排他的論理和出力をＤ−ＦＦ（Ｄ型フリップフロップ）のサンプリング動作で取り出す構成である。リングオシレータは、発振周期に常に一定量のジッタを伴って互いに独立に自己発振しているため、これらの独立なリングオシレータの中間ノードの排他的論理和出力は、予測不可能なランダム性を備える。この排他的論理和出力に対して、Ｄ−ＦＦにより一定周期でサンプリング動作を行うことにより、予測不可能な真性乱数列を取り出すことができる。
【０００６】
ところで、比較的長い周期の単一リングオシレータのみの構成では、発振周期に対するジッタの量が十分でないため、サンプリング周期が短い場合は前後のサンプリング値が相関をもってしまいランダム性が損なわれる。一方、前後のサンプリング値が相関をもたないようにするには、比較的長い間隔でサンプリング動作を行う必要があり、高いスループットが得られない。このため、単一のリングオシレータではなく図１１に示すように、互いに独立な複数個（ｋ個）のリングオシレータを用いて、その中間ノードの排他的論理和をとり、比較的短いサンプリング間隔でもサンプリング値が相関をもたないように工夫されている。
【０００７】
ここで、リングオシレータを構成するインバータの段数が大きいと発振周期が長く、逆にインバータの段数が小さいと発振周期が短くなる傾向があるが、サンプリング値のランダム性を増やす目的で個々のインバータの段数をランダムに異なる段数とする構成がとられることが多い。
【非特許文献１】Sunar B.,Martin W.,Stinson D.,"A Provably Secure True Random Number Generator with Built-In Toletance to Active Attacks", IEEE Trans. Computers, vol.56, no.1, pp.109-119, January 2007
【発明の開示】
【発明が解決しようとする課題】
【０００８】
非特許文献１に示す方法では、複数のリングオシレータの中間ノードの排他的論理和をとるため、ランダムな位相差で発振するリングオシレータの信号が重畳される影響により、排他的論理和出力、すなわちＤ−ＦＦへの入力信号の遷移が頻発する。特に、ランダム性を増す目的でリングオシレータの個数を多くした場合は、この傾向がさらに顕著になる。
【０００９】
ところで、過渡的な遷移状態にある中間電圧値をＤ−ＦＦのラッチ動作でサンプリングする場合、ＣＭＯＳ回路の閾値電圧などの特性上、ローとしてラッチする確率とハイとしてラッチする確率にバイアス（偏り）が生じやすい。これは、ＣＭＯＳ回路で構成されるＤ−ＦＦへの入力電圧をハイとして認識するかローとして認識するかの判定電位が、電源電圧の１／２の電位から微妙にずれていることに起因している。
【００１０】
特に、インバータの段数が小さく発振周期の短いリングオシレータの中間ノードの値が排他的論理和の対象となる場合は、ハイとローのラッチ出力の偏り傾向はより顕著になる。本来、サンプリング値のランダム性を増す目的で導入された複数のリングオシレータの排他的論理和構成であるが、ＣＭＯＳ回路では、これが原因となってサンプリングの際にハイとローのラッチ出力の偏り、すなわちサンプリング動作による０と１の乱数の生成頻度に偏りが生じる新たな問題が生じる。
【００１１】
予測不可能性は「よい乱数」の必要条件であるが、０と１の生成頻度に偏りがあることは、特に暗号技術への適用においてはセキュリティの低下が懸念され好ましくない。
【００１２】
ここで、サンプリングに用いる信号の状態遷移の回数を減らすためには、長い発振周期のリングオシレータを用いる方法が考えられる。この長い発振周期のリングオシレータでは、発振周期のジッタの割合は小さくなる傾向がある。このため、サンプリングの時間間隔を発振周期のジッタ量よりも十分に大きくとらなければ、前述したように前後のサンプリング値が相関をもってしまい、ランダム性が損なわれる問題を生じる。したがって、発振周期の長いリングオシレータのみを用いた構成の場合、ランダム性の高い乱数値をサンプリングするには、サンプリングに用いるＤ−ＦＦのクロック周波数として低速クロックを用いる必要が生じ、スループットの低下が避けられない。
【００１３】
このように、従来のリングオシレータを用いた乱数生成回路では、乱数のランダム性と高スループットを両立することが困難であった。
【００１４】
本発明は、ディジタル論理ゲート回路のみで、予測不可能なランダム性の高い乱数列を高スループットで発生させることができる乱数生成回路を提供することを目的とする。
【課題を解決するための手段】
【００１５】
第１の発明は、奇数段のインバータからなるリングオシレータの中間ノード出力をクロックでラッチし、乱数値として出力する乱数生成回路において、奇数Ｌa 段のインバータをカスケードに接続した遅延生成部Ａと、偶数Ｌb 段のインバータをカスケードに接続し、その初段のインバータに遅延生成部Ａの最終段のインバータの出力が接続される遅延生成部Ｂと、遅延生成部Ａの最終段のインバータの出力と遅延生成部Ｂの最終段のインバータの出力とを切り替え、遅延生成部Ａの初段のインバータに接続するセレクタと、セレクタに対して、クロックの周期内で遅延生成部Ａの最終段のインバータの出力に切り替えて奇数Ｌa 段のインバータで短周期のリングオシレータを形成する動作モードＡと、遅延生成部Ｂの最終段のインバータの出力に切り替えて奇数（Ｌa ＋Ｌb ）段のインバータで長周期のリングオシレータを形成する動作モードＢを選択する制御信号を出力する制御部とを備え、動作モードＡと動作モードＢを交互に切り替えて発振動作を継続しながら、動作モードＢのタイミングでリングオシレータの中間ノード出力をラッチし、乱数値として出力する構成である。
【００１６】
第２の発明は、奇数段のインバータからなるリングオシレータの中間ノード出力をクロックでラッチし、乱数値として出力する乱数生成回路において、奇数Ｌa 段のインバータをカスケードに接続した遅延生成部Ａと、偶数Ｌb 段のインバータをカスケードに接続した遅延生成部Ｂと、偶数Ｌc 段のインバータをカスケードに接続し、その初段のインバータに遅延生成部Ａの最終段のインバータの出力が接続される遅延生成部Ｃと、遅延生成部Ａの最終段のインバータの出力と遅延生成部Ｂの最終段のインバータの出力とを切り替え、遅延生成部Ａの初段のインバータに接続する第１のセレクタと、遅延生成部Ａの最終段のインバータの出力と遅延生成部Ｃの最終段のインバータの出力とを切り替え、遅延生成部Ｂの初段のインバータに接続する第２のセレクタと、第１のセレクタおよび第２のセレクタに対して、クロックの周期内で遅延生成部Ａの最終段のインバータの出力に切り替えて奇数Ｌa 段のインバータで短周期のリングオシレータを形成する動作モードＡと、第１のセレクタに対して遅延生成部Ｂの最終段のインバータの出力に切り替え、第２のセレクタに対して遅延生成部Ａの最終段のインバータの出力に切り替えて奇数（Ｌa ＋Ｌb ）段のインバータで長周期のリングオシレータを形成する動作モードＢと、第１のセレクタおよび第２のセレクタに対して、遅延生成部Ｂおよび遅延生成部Ｃの各最終段のインバータの出力に切り替えて奇数（Ｌa ＋Ｌb ＋Ｌc ）段のインバータで動作モードＢよりさらに長周期のリングオシレータを形成する動作モードＣとを選択する制御信号を出力する制御部とを備え、動作モードＡと動作モードＢと動作モードＣを順次切り替えて発振動作を継続しながら、動作モードＣのタイミングでリングオシレータの中間ノード出力をラッチし、乱数値として出力する構成である。
【００１７】
第３の発明は、奇数段のインバータからなるリングオシレータの中間ノード出力をクロックでラッチし、乱数値として出力する乱数生成回路において、奇数Ｌa 段のインバータをカスケードに接続した遅延生成部Ａを３以上の奇数ｐ個と、ｐ個の遅延生成部Ａをリング状に配置したときに、遅延生成部Ａごとに最終段のインバータの出力と前段の遅延生成部Ａの最終段のインバータの出力とを切り替え、当該遅延生成部Ａの初段のインバータに接続するｐ個の第１のセレクタと、第１のセレクタに対して、クロックの周期内で各遅延生成部Ａごとにそれぞれの最終段のインバータの出力に切り替えて奇数Ｌa 段のインバータで短周期のリングオシレータを形成する動作モードＡと、前段の遅延生成部Ａの最終段のインバータの出力に切り替えて奇数（Ｌa ×ｐ）段のインバータで長周期のリングオシレータを形成する動作モードＢを選択する制御信号を出力する制御部とを備え、動作モードＡと動作モードＢを交互に切り替えて発振動作を継続しながら、動作モードＢのタイミングでリングオシレータの中間ノード出力をラッチし、乱数値として出力する構成である。
【００１８】
第４の発明は、第３の発明の乱数生成回路において、ｐ個の遅延生成部Ａおよび第１のセレクタを単位とする遅延生成部Ｄを３以上の奇数ｑ個と、ｑ個の遅延生成部Ｄをリング状に配置したときに、遅延生成部Ｄごとに最終段のインバータの出力と前段の遅延生成部Ｄの最終段のインバータの出力とを切り替え、当該遅延生成部Ｄの初段のインバータに接続するｑ個の第２のセレクタとを備え、制御部は、第２のセレクタに対して、クロックの周期内で各遅延生成部Ｄごとにそれぞれの最終段のインバータの出力に切り替えて奇数（Ｌa ×ｐ）段のインバータで長周期のリングオシレータを形成する動作モードＢと、前段の遅延生成部Ｄの最終段のインバータの出力に切り替えて奇数（Ｌa ×ｐ×ｑ）段のインバータでさらに長周期のリングオシレータを形成する動作モードＣを選択する制御信号を出力し、動作モードＡと動作モードＢと動作モードＣを順次切り替えて発振動作を継続しながら、動作モードＣのタイミングでリングオシレータの中間ノード出力をラッチし、乱数値として出力する構成である。
【００１９】
第１〜第４の発明の乱数生成回路において、遅延生成部Ａの１つのインバータに代えて、外部から入力するリセット信号によりインバータ動作を有効または無効とし、リングオシレータの動作状態をアクティブ状態または休止状態に切り替える論理ゲートを備える構成としてもよい。
【００２０】
第１，第３の発明の乱数生成回路において、制御部は、クロックとクロックを遅延させた遅延クロックの位相差に対応する制御信号でセレクタを切り替え、かつ動作モードＡより動作モードＢの動作時間が長くなるように遅延クロックの遅延時間が設定される構成としてもよい。
【００２１】
第２，第４の発明の乱数生成回路において、制御部は、クロックとクロックを遅延させた遅延クロックの位相差に対応する制御信号で第１のセレクタおよび第２のセレクタを切り替え、かつ動作モードＣの動作時間が最長になるように遅延クロックの遅延時間が設定される構成としてもよい。
【００２２】
第１〜第４の発明の乱数生成回路において、各動作モードが切り替えられるリングオシレータを複数個備え、制御部は、複数個のリングオシレータの各動作モードを一括して切り替える構成であり、複数個のリングオシレータの中間ノード出力の排他的論理和をとり、その出力をラッチし、乱数値として出力する構成としてもよい。
【００２３】
第１〜第４の発明の乱数生成回路において、各動作モードが切り替えられるリングオシレータを複数個備え、制御部は、複数個のリングオシレータにそれぞれ個別に設け、複数個のリングオシレータの各動作モードを制御信号でそれぞれ個別に切り替える構成であり、複数個のリングオシレータの中間ノード出力の排他的論理和をとり、その出力をラッチし、乱数値として出力する構成としてもよい。
【００２４】
第１〜第４の発明の乱数生成回路において、ラッチした乱数値を入力し、０，１の頻度にバイアスのある乱数列をバランスした乱数列に変換する均等化回路を備えてもよい。
【発明の効果】
【００２５】
本発明の乱数生成回路は、発振に使用するインバータの段数を、乱数のサンプリング動作に同期した１クロック内で段階的に切り替えて動作させることができる。段数の切り替え動作では、少ないインバータ段数でランダム性の高い動作モードを初期状態とし、そのままインバータ段数の多い動作モードに移行するため、ランダム性を蓄積したまま発振動作が継続する。
【００２６】
特に、最初の動作モードとして１段のみのインバータのリングオシレータが形成される場合には、ランダム性が非常に高い不安定状態を次の動作モードの初期状態として引き継ぐことができる。そして、インバータ段数が少なく発振周期の短い動作モードからスタートするため、短時間で高いランダム性を蓄積でき、乱数生成に要するサンプリング周期を短く設定したまま高いランダム性を実現することができる。また、インバータ段数を段階的に切り替えることにより、均一でない多用なランダム性を短時間で加味することができる。特に、入れ子状の多重構造リングオシレータでは、多用なランダム性を重畳して最終的な単一発振に至るため、ランダム性の極めて高い乱数を生成することができる。
【００２７】
また、サンプリング動作が行われる最終動作モードでは、最も発振周期が長いリングオシレータが動作しているため、サンプリング対象ノードの状態遷移が少なくてすみ、０，１の発生頻度のバランスを高いレベルで実現することができる。
【００２８】
したがって、本発明の乱数生成回路は、予測不可能なランダム性の高い乱数列を、０，１の発生頻度のバランスを高いレベルで保持しつつ、高スループット化を実現することができる。
【発明を実施するための最良の形態】
【００２９】
（第１の実施形態）
図１は、本発明の乱数生成回路の第１の実施形態を示す。本実施形態の特徴は、リングオシレータを構成するインバータの段数を２段階に切り替え、発振周期が短周期の動作モードＡと長周期の動作モードＢを交互に繰り返し、動作モードＢでリングオシレータの出力データをラッチするところにある。
【００３０】
図１において、本実施形態のリングオシレータ１０は、遅延生成部Ａ１１と遅延生成部Ｂ１２をセレクタ１５を介して接続した構成である。遅延生成部Ａ１１は、２入力ＮＡＮＤとインバータをカスケード接続した構成であり、２入力ＮＡＮＤとインバータの総段数を奇数Ｌa 段とする。Ｌa の最小値は１であり、この場合は２入力ＮＡＮＤのみで構成される。遅延生成部Ｂ１２は、インバータをカスケード接続した構成であり、インバータの段数を偶数Ｌb 段とする。Ｌa を比較的小さい値とし、かつＬa ＋Ｌb が比較的大きい値となるように設定する。たとえば、Ｌa ＝１、Ｌa ＋Ｌb ＝５や、Ｌa ＝３、Ｌa ＋Ｌb ＝７となる値を設定する。
【００３１】
制御部３０は、クロックとリセット信号を入力し、セレクタ１５を切り替える制御信号およびクロックに同期した同期リセット信号を出力する。同期リセット信号は、遅延生成部Ａ１１の２入力ＮＡＮＤの一方の入力に接続される。遅延生成部Ａ１１の２入力ＮＡＮＤは、同期リセット信号がローのときは出力がハイに固定され、同期リセット信号がハイに遷移するとインバータとして機能し、遅延生成部Ａ１１が全体として奇数段のインバータになる。なお、本実施形態では２入力ＮＡＮＤを用いたが、同期リセット信号の位相を反転すれば２入力ＮＯＲでもよい。また、２入力ＮＡＮＤの位置は、必ずしも遅延生成部Ａ１１の初段である必要はない。また、２入力ＮＡＮＤをインバータに代え、リセット信号を用いない構成としてもよい。この場合は、同期リセット信号が常にハイになっている状態と等価である。以下に示す実施形態においても同様である。
【００３２】
遅延生成部Ａ１１の最終段のインバータ（１段の場合は２入力ＮＡＮＤ）の出力は、セレクタ１５の一方の入力端子（Ｌ）および遅延生成部Ｂ１２の初段のインバータに接続される。遅延生成部Ｂ１２の最終段のインバータの出力は、セレクタ１５の他方の入力端子（Ｈ）に接続される。セレクタ１５は、制御部３０から出力される制御信号により、２つの入力のいずれか一方を選択して遅延生成部Ａ１１の２入力ＮＡＮＤの他方の入力に接続する。ここで、同期リセット信号がローからハイに遷移して制御信号がロー（Ｌ）のときに、セレクタ１５は遅延生成部Ａ１１の最終段のインバータ（１段の場合は２入力ＮＡＮＤ）の出力を選択し、遅延生成部Ａ１１の閉ループで形成されるリングオシレータが独立に短周期で発振する動作モードＡとなる。また、制御信号がハイ（Ｈ）のときに、セレクタ１５は遅延生成部Ｂ１２の最終段のインバータの出力を選択し、遅延生成部Ａ１１，Ｂ１２が連結した閉ループで形成されるリングオシレータが長周期で発振する動作モードＢとなる。
【００３３】
遅延生成部Ａ１１の最終段のインバータ（１段の場合は２入力ＮＡＮＤ）の出力は、リングオシレータ１０の出力としてＤ−ＦＦ２１に接続される。Ｄ−ＦＦ２１は、制御部３０に入力するクロックをサンプリングタイミングとして入力し、動作モードＢのタイミングでリングオシレータ１０の出力をラッチする。
【００３４】
図２は、制御部３０の構成例を示す。図３は、制御部３０の動作例を示す。
図２および図３において、制御部３０は、クロックに所定の遅延を与えた遅延クロックを生成する偶数段のインバータと、クロックと遅延クロックの否定論理和をとるＮＡＮＤと、リセット信号を遅延クロックでラッチして同期リセット信号を出力するＤ−ＦＦと、ＮＡＮＤの出力と同期リセット信号の論理和をとって制御信号を生成するＡＮＤとにより構成される。なお、１クロックに対する動作モードＡ，Ｂの動作時間の比率は、遅延クロックの遅延時間（インバータ段数）に応じた値となる。本実施形態では、遅延時間を長くして動作モードＡの動作時間を短くし、相対的に動作モードＢの動作時間を長くするのが好ましい。
【００３５】
以下、図１〜図３を参照し、本発明の乱数生成回路の第１の実施形態の動作について説明する。
初期状態のリセット信号はローであり、クロックの遷移にかかわらず同期リセット信号および制御信号もローであるため、遅延生成部Ａ１１が閉ループを形成するが、遅延生成部Ａ１１の２入力ＮＡＮＤの出力はハイに固定されるため発振動作はしない。すなわち、乱数生成回路を構成するリングオシレータの動作状態は休止状態である。次に、リセット信号がハイに遷移すると（t1）、次の遅延クロックがハイになるタイミングで同期リセット信号がハイになり（t2）、遅延生成部Ａ１１の２入力ＮＡＮＤはインバータとして動作するため、リングオシレータ１０は遅延生成部Ａ１１の閉ループで発振動作する動作モードＡになる。すなわち、乱数生成回路を構成するリングオシレータの動作状態はアクティ状態になる。このとき、遅延生成部Ａ１１のインバータの奇数段数Ｌa が小さめの値に設定されているため、短周期で自己発振する。発振周期の短いリングオシレータでは、発振周期のジッタ成分の割合が大きいため、短時間でランダム性をもった出力値が得られる。
【００３６】
制御部３０では、同期リセット信号がハイとなった後、ＮＡＮＤ出力がハイになるタイミング（クロックの立ち下がり）で制御信号がハイに遷移すると（t3）、セレクタ１５は遅延生成部Ｂ１２と遅延生成部Ａ１１を接続する。これにより、リングオシレータ１０は、遅延生成部Ａ１１，Ｂ１２が連結して閉ループを形成し、奇数（Ｌa＋Ｌb）段のインバータで自己発振する動作モードＢに切り替わる。この時刻t3までに、動作モードＡで出力値がランダムな状態で遷移しているため、動作モードＢは動作モードＡで生成されたランダムな状態を初期状態として引き継ぎ、比較的長周期で発振動作を継続する。そのため、動作モードＢでは、従来の長周期の単一リングオシレータの構成のように発振動作を長時間継続させなくてもよい。また、発振周期が長いため、過渡的な遷移状態にある電位をサンプリングする確率が小さく、０，１の生成頻度のバイアスを低減することができる。
【００３７】
このように、リングオシレータ１０が動作モードＢに切り替わった後に、Ｄ−ＦＦ２１がクロックの立ち上がり時刻t4でリングオシレータ１０の出力をラッチすることにより、０，１の生成頻度のバランスに優れたランダム性の高い乱数値を生成することができる。その後のリングオシレータ１０は、制御信号がローになる時刻t5で再び動作モードＡになり、制御信号がハイになる時刻t6で動作モードＢに切り替わり、Ｄ−ＦＦ２１が時刻t7でその出力をラッチする。
【００３８】
ところで、制御部３０では、クロックと、偶数段のインバータからなる遅延回路を介して生成される遅延クロックとの位相差を利用した微分回路で制御信号を生成している。このような制御信号は、多段インバータに起因する遅延時間の揺らぎ効果により毎クロック単位で遷移時刻にジッタ成分を含み、リングオシレータ１０の動作モードの切り替え時刻もクロック毎にジッタ成分をもつため、リングオシレータ固有のランダム性に制御信号に起因するランダム性が加わった効果が得られる。
【００３９】
また、本実施形態では、最初に動作モードＡからスタートするために、非同期に入力するリセット信号を遅延クロックでラッチして同期リセット信号を生成している。しかし、最初に動作モードＢからスタートすることを許容する場合には、リセット信号をそのまま遅延生成部Ａ１１の２入力ＮＡＮＤに入力する構成としてもよい。その場合には、リセット信号の入力タイミングに応じて、リングオシレータ１０のスタートが動作モードＡと動作モードＢのいずれかになるが、動作モードＢの中で出力値がラッチされる動作は同じである。
【００４０】
また、本実施形態の構成では、Ｄ−ＦＦ２１でラッチ抽出した乱数値をそのまま用いても乱数のランダム性を高いレベルで保つことができる。ただし、0 ，１のバランスを完全に50％にできるわけではないので、さらに高いレベルでランダム性を保証するために、図１に示すようにＤ−ＦＦ２１の後段に均等化回路２２を接続し、その出力を最終的な乱数値としてもよい。例えば、均等化回路２２に用いられるvon Neumann corrector は、２ビットずつペアを組み、ペアの値が同じ場合は両方を捨て、ペアの値が異なる場合はペアの最初の値を活かす手法であり、０，１の頻度にバイアスのある数列がバランスした数列に変換されるものであるが、スループットが低下する。したがって、本実施形態において、均等化回路２２を含まない構成は、生成される乱数のランダム性と高スループットの両立を図ったものといえる。
【００４１】
（第２の実施形態）
図４は、本発明の乱数生成回路の第２の実施形態を示す。
本実施形態の特徴は、第１の実施形態におけるリングオシレータ１０を複数ｎ個用意し、各リングオシレータ１０−１〜１０−ｎの遅延生成部Ａ１１の２入力ＮＡＮＤとインバータの総段数の奇数Ｌa と、遅延生成部Ｂ１２のインバータの段数の偶数Ｌb をそれぞれ独立に設定し、各遅延生成部Ａ１１の出力をＥＸＯＲ２３で排他的論理和をとり、Ｄ−ＦＦ２１に入力するところにある。各リングオシレータ１０−１〜１０−ｎの出力に、第１の実施形態に示した高いランダム性がすでに確保されており、それらの出力の排他的論理和をとることにより、Ｄ−ＦＦ２１で得られる乱数のランダム性をさらに高めることができる。
【００４２】
なお、本実施形態における制御部３０は第１の実施形態と同様の構成であり、生成される同期リセット信号および制御信号により、各リングオシレータ１０−１〜１０−ｎを一括制御する構成である。一方、各リングオシレータ１０−１〜１０−ｎを制御する制御部３０を個別に設け、共通のクロックおよびリセット信号からそれぞれ独立に同期リセット信号および制御信号を生成し、各リングオシレータ１０−１〜１０−ｎの動作モードを切り替えるタイミングをランダムにしてもよい。
【００４３】
（第３の実施形態）
図５は、本発明の乱数生成回路の第３の実施形態を示す。本実施形態の特徴は、リングオシレータを構成するインバータの段数を３段階に切り替え、発振周期が短周期の動作モードＡと、長周期の動作モードＢと、さらに長周期の動作モードＣを順番に繰り返し、動作モードＣでリングオシレータの出力をラッチするところにある。
【００４４】
図５において、本実施形態のリングオシレータ１０は、遅延生成部Ａ１１と遅延生成部Ｂ１２をセレクタ１５を介して接続し、遅延生成部Ｂ１２と遅延生成部Ｃ１３をセレクタ１６を介して接続した構成である。遅延生成部Ａ１１は、２入力ＮＡＮＤとインバータをカスケード接続した構成であり、２入力ＮＡＮＤとインバータの総段数を奇数Ｌa 段とする。Ｌa の最小値は１であり、この場合は２入力ＮＡＮＤのみで構成される。遅延生成部Ｂ１２および遅延生成部Ｃ１３は、インバータをカスケード接続した構成である。インバータの段数をそれぞれ偶数Ｌb 段、偶数Ｌc 段とする。Ｌa を比較的小さい値とし、かつＬa ＋Ｌb がやや大きい値となるようにＬb を設定し、かつＬa ＋Ｌb ＋Ｌc がさらに大きい値となるようにＬc を設定する。たとえば、Ｌa ＝１、Ｌa ＋Ｌb ＝５、Ｌa ＋Ｌb ＋Ｌc ＝９や、Ｌa ＝３、Ｌa ＋Ｌb ＝７、Ｌa ＋Ｌb ＋Ｌc ＝11となる値を設定する。
【００４５】
制御部３１は、クロックとリセット信号を入力し、セレクタ１５を切り替える制御信号１、セレクタ１６を切り替える制御信号２、クロックに同期した同期リセット信号およびサンプリングクロックを出力する。同期リセット信号は、遅延生成部Ａ１１の２入力ＮＡＮＤの一方の入力に接続される。遅延生成部Ａ１１の２入力ＮＡＮＤは、同期リセット信号がローのときは出力がハイに固定され、同期リセット信号がハイに遷移するとインバータとして機能し、遅延生成部Ａ１１が全体として奇数段のインバータになる。
【００４６】
遅延生成部Ａ１１の最終段のインバータ（１段の場合は２入力ＮＡＮＤ）の出力は、セレクタ１５の一方の入力端子（Ｌ）、セレクタ１６の一方の入力端子（Ｌ）、および遅延生成部Ｃ１３の初段のインバータに接続される。遅延生成部Ｃ１３の最終段のインバータの出力は、セレクタ１６の他方の入力端子（Ｈ）に接続される。セレクタ１６は、制御部３１から出力される制御信号２により、２つの入力のいずれか一方を選択して遅延生成部Ｂ１２の初段のインバータに接続する。遅延生成部Ｂ１２の最終段のインバータの出力は、セレクタ１５の他方の入力端子（Ｈ）に接続される。セレクタ１５は、制御部３１から出力される制御信号１により、２つの入力のいずれか一方を選択して遅延生成部Ａ１１の２入力ＮＡＮＤの他方の入力に接続する。
【００４７】
ここで、同期リセット信号がローからハイに遷移して制御信号１および制御信号２がロー（Ｌ）のときに、セレクタ１５，１６は遅延生成部Ａ１１の最終段のインバータ（１段の場合は２入力ＮＡＮＤ）の出力を選択し、遅延生成部Ａ１１の閉ループで形成されるリングオシレータが独立に短周期で発振する動作モードＡとなる。また、制御信号１がハイ（Ｈ）かつ制御信号２がロー（Ｌ）のときに、セレクタ１５は遅延生成部Ｂ１２の最終段のインバータの出力を選択し、セレクタ１６は遅延生成部Ａ１１の最終段のインバータ（１段の場合は２入力ＮＡＮＤ）の出力を選択し、遅延生成部Ａ１１，Ｂ１２が連結した閉ループで形成されるリングオシレータが長周期で発振する動作モードＢとなる。また、制御信号１，２がハイ（Ｈ）のときに、セレクタ１５は遅延生成部Ｂ１２の最終段のインバータの出力を選択し、セレクタ１６は遅延生成部Ｃ１３の最終段のインバータの出力を選択し、遅延生成部Ａ１１，Ｂ１２，Ｃ１３が連結した閉ループで形成されるリングオシレータがさらに長周期で発振する動作モードＣとなる。
【００４８】
遅延生成部Ａ１１の最終段のインバータ（１段の場合は２入力ＮＡＮＤ）の出力は、リングオシレータ１０の出力としてＤ−ＦＦ２１に接続される。Ｄ−ＦＦ２１は、制御部３１から出力されるサンプリングタイミングでリングオシレータ１０の出力をラッチする。
【００４９】
図６は、制御部３１の構成例を示す。図７は、制御部３１の動作例を示す。
図６および図７において、制御部３１は、クロックに所定の遅延を与えた遅延クロックを生成する偶数段のインバータと、クロックと遅延クロックの否定論理和をとるＮＡＮＤと、リセット信号を遅延クロックでラッチして同期リセット信号を出力するＤ−ＦＦと、ＮＡＮＤの出力と同期リセット信号の論理和をとって制御信号１を生成するＡＮＤと、反転させた遅延クロックと同期リセット信号の論理和をとって制御信号２を生成するインバータおよびＡＮＤとにより構成される。また、遅延クロックがＤ−ＦＦ２１のサンプリングクロックとして出力される。なお、１クロックに対する動作モードＡ，Ｂ，Ｃの動作時間の比率は、遅延クロックの遅延時間（インバータ段数）に応じた値となる。本実施形態では、遅延時間を長くして動作モードＡの動作時間を短くし、相対的に動作モードＣの動作時間を最長にするのが好ましい。
【００５０】
以下、図５〜図７を参照し、本発明の乱数生成回路の第３の実施形態の動作について説明する。
初期状態のリセット信号はローであり、クロックの遷移にかかわらず同期リセット信号、制御信号１および制御信号２もローであるため、遅延生成部Ａ１１が閉ループを形成するが、遅延生成部Ａ１１の２入力ＮＡＮＤの出力はハイに固定されるため発振動作はしない。次に、リセット信号がハイに遷移すると（t1）、次の遅延クロックがハイになるタイミングで同期リセット信号がハイになり（t2）、遅延生成部Ａ１１の２入力ＮＡＮＤはインバータとして動作するため、リングオシレータ１０は遅延生成部Ａ１１の閉ループで発振動作する動作モードＡになる。このとき、遅延生成部Ａ１１のインバータの奇数段数Ｌa が小さめの値に設定されているため、短い周期で自己発振する。発振周期の短いリングオシレータでは、発振周期のジッタ成分の割合が大きいため、短時間でランダム性をもった出力値が得られる。
【００５１】
制御部３１では、同期リセット信号がハイとなった後、ＮＡＮＤ出力がハイになるタイミング（クロックの立ち下がり）で制御信号１がハイに遷移すると（t3）、セレクタ１５は遅延生成部Ｂ１２と遅延生成部Ａ１１を接続する。なお、図７では遅延クロックに対してＮＡＮＤ出力および制御信号１はそれぞれ論理ゲート分の遅延を強調しており、以下に示す制御信号２も同様である。これにより、リングオシレータ１０は、遅延生成部Ａ１１，Ｂ１２が連結して閉ループを形成し、奇数（Ｌa＋Ｌb）段のインバータで自己発振する動作モードＢに切り替わる。この時刻t3までに、動作モードＡで出力値がランダムな状態で遷移しているため、動作モードＢは動作モードＡで生成されたランダムな状態を初期状態として引き継ぎ、比較的長周期で発振動作を継続する。そのため、動作モードＢでは、従来の長周期の単一リングオシレータの構成のように発振動作を長時間継続させなくてもよい。
【００５２】
制御信号１がハイとなった後、遅延クロックがローになるタイミングで制御信号２がハイに遷移すると（t4）、セレクタ１６は遅延生成部Ｃ１３と遅延生成部Ｂ１２を接続する。これにより、リングオシレータ１０は、遅延生成部Ａ１１，Ｂ１２，Ｃ１３が連結して閉ループを形成し、奇数（Ｌa ＋Ｌb ＋Ｌc ）段のインバータで自己発振する動作モードＣに切り替わる。動作モードＣは動作モードＢで生成されたランダムな状態を初期状態として引き継ぎ、さらに長周期で発振動作を継続する。そのため、動作モードＣでは、従来の長周期の単一リングオシレータの構成のように発振動作を長時間継続させなくてもよい。また、発振周期が長いため、過渡的な遷移状態にある電位をサンプリングする確率が小さく、０，１の生成頻度のバイアスを低減することができる。
【００５３】
このように、リングオシレータ１０が動作モードＣに切り替わった後に、Ｄ−ＦＦ２１がサンプリングクロック（遅延クロック）の立ち上がり時刻t5でリングオシレータ１０の出力をラッチすることにより、０，１の生成頻度のバランスに優れたランダム性の高い乱数値を生成することができる。すなわち、３種類の各リングオシレータのジッタに起因するそれぞれのランダム性が重畳された乱数が生成される。その後のリングオシレータ１０は、制御信号１，２がローになる時刻t6で再び動作モードＡになり、続いて動作モードＢに切り替わり、さらに動作モードＣに切り替わり、Ｄ−ＦＦ２１が時刻t9でその出力をラッチする。
【００５４】
ところで、制御部３１では、クロックと、偶数段のインバータからなる遅延回路を介して生成される遅延クロックとの位相差を利用した微分回路で制御信号１を生成している。このような制御信号１は、多段インバータに起因する遅延時間の揺らぎ効果により毎クロック単位で遷移時刻にジッタ成分を含むため、リングオシレータ１０の動作モードの切り替え時刻もクロック毎にジッタ成分をもつため、リングオシレータ固有のランダム性に制御信号に起因するランダム性が加わった効果が得られる。
【００５５】
また、本実施形態では、最初に動作モードＡからスタートするために、非同期に入力するリセット信号を遅延クロックでラッチして同期リセット信号を生成している。しかし、最初に動作モードＢまたは動作モードＣからスタートすることを許容する場合には、リセット信号をそのまま遅延生成部Ａ１１の２入力ＮＡＮＤに入力する構成としてもよい。その場合には、リセット信号の入力タイミングに応じて、リングオシレータ１０のスタートが動作モードＡ，Ｂ，Ｃのいずれかになるが、動作モードＣの中で乱数値がラッチ出力される動作は同じである。
【００５６】
また、本実施形態の構成では、Ｄ−ＦＦ２１でラッチ抽出した乱数値をそのまま用いても乱数のランダム性を高いレベルで保つことがでる。ただし、図５に示すようにＤ−ＦＦ２１の後段に均等化回路２２を接続し、さらに高いレベルで乱数のランダム性を保証するようにしてもよいが、スループットが低下する。したがって、均等化回路２２を含まない構成は、生成される乱数のランダム性と高スループットの両立を図ったものといえる。
【００５７】
（第４の実施形態）
図８は、本発明の乱数生成回路の第４の実施形態を示す。
本実施形態の特徴は、第３の実施形態におけるリングオシレータ１０を複数ｎ個用意し、各リングオシレータ１０−１〜１０−ｎの遅延生成部Ａ１１の２入力ＮＡＮＤとインバータの総段数の奇数Ｌa と、遅延生成部Ｂ１２のインバータの段数の偶数Ｌb と、遅延生成部Ｃ１３のインバータの段数の偶数Ｌc をそれぞれ独立に設定し、各遅延生成部Ａ１１の出力をＥＸＯＲ２３で排他的論理和をとり、Ｄ−ＦＦ２１に入力するところにある。各リングオシレータ１０−１〜１０−ｎの出力に、第３の実施形態に示した高いランダム性がすでに確保されており、それらの出力の排他的論理和をとることにより、Ｄ−ＦＦ２１で得られる乱数のランダム性をさらに高めることができる。
【００５８】
なお、本実施形態における制御部３１は第３の実施形態と同様の構成であり、生成される同期リセット信号、制御信号１および制御信号２により、各リングオシレータ１０−１〜１０−ｎを一括制御する構成である。一方、各リングオシレータ１０−１〜１０−ｎを制御する制御部３１を個別に設け、共通のクロックおよびリセット信号からそれぞれ独立に同期リセット信号、制御信号１および制御信号２を生成し、各リングオシレータ１０−１〜１０−ｎの動作モードを切り替えるタイミングをランダムにしてもよい。ただし、Ｄ−ＦＦ２１に与えるサンプリングクロックは、任意の１つの制御部３１から出力する構成とする。
【００５９】
（第５の実施形態）
図９は、本発明の乱数生成回路の第５の実施形態を示す。本実施形態の特徴は、第１の実施形態と同様に、リングオシレータを構成するインバータの段数を２段階に切り替え、発振周期が短周期の動作モードＡと長周期の動作モードＢを交互に繰り返し、動作モードＢでリングオシレータの出力データをラッチするところにある。ただし、第１の実施形態では、インバータの段数が奇数Ｌa と、奇数（Ｌa＋Ｌb）の２段階で切り替えられるのに対して、本実施形態ではインバータの段数が奇数Ｌa 段と、その奇数倍の２段階で切り替えられる構成である。
【００６０】
図９において、本実施形態のリングオシレータ１０は、総段数が奇数Ｌa 段の２入力ＮＡＮＤとインバータをカスケード接続し、セレクタ１５を介して閉ループを形成する遅延生成部Ａ１１をｐ個備える（ｐは３以上の奇数）。Ｌa の最小値は１であり、この場合は２入力ＮＡＮＤのみで構成される。また、各セレクタ１５は、自己の遅延生成部Ａ１１のみで閉ループを形成するか、前段の遅延生成部Ａ１１の出力を次段の遅延生成部Ａ１１の入力に接続し、ｐ個の遅延生成部Ａ１１の連結により閉ループを形成する。この後者の閉ループでは、インバータとしての総段数はＬa ×ｐ（奇数）となる。
【００６１】
ここで、任意の１つの遅延生成部Ａ１１の最終段のインバータ（１段の場合は２入力ＮＡＮＤ）の出力は、リングオシレータ１０の出力としてＤ−ＦＦ２１に接続される。
【００６２】
制御部３０は、クロックとリセット信号を入力し、各セレクタ１５を切り替える制御信号を出力するとともに、クロックに同期した同期リセット信号を各遅延生成部Ａ１１の２入力ＮＡＮＤに与え、第１の実施形態と同様に動作させる。
【００６３】
すなわち、同期リセット信号がハイ、制御信号がローであるときに、遅延生成部Ａ１１の２入力ＮＡＮＤはインバータとして動作するため、各遅延生成部Ａ１１がそれぞれ閉ループを形成して短周期で発振する動作モードＡになる。次に、制御信号がハイに遷移すると、リングオシレータ１０は、奇数個の遅延生成部Ａ１１が連結して閉ループを形成し、奇数Ｌa ×ｐ段のインバータで長周期発振する動作モードＢに切り替わる。そして、リングオシレータ１０が動作モードＢに切り替わった後に、Ｄ−ＦＦ２１がクロックの立ち上がり時刻でリングオシレータ１０の出力をラッチする。このように、動作モードＡにおいて短周期で発振して得られるランダム性の高い状態をそのまま引き継ぎつつ動作モードＢに切り替わるため、ランダム性の高い乱数を得ることができる。
【００６４】
（第６の実施形態）
図１０は、本発明の乱数生成回路の第６の実施形態を示す。本実施形態の特徴は、第３の実施形態と同様に、リングオシレータを構成するインバータの段数を３段階に切り替え、発振周期が短周期の動作モードＡと、長周期の動作モードＢと、さらに長周期の動作モードＣを順次繰り返し、動作モードＣでリングオシレータの出力データをラッチするところにある。ただし、第３の実施形態では、インバータの段数が奇数Ｌa と、奇数（Ｌa ＋Ｌb ）と、奇数（Ｌa ＋Ｌb ＋Ｌc ）の３段階で切り替えられるのに対して、本実施形態ではインバータの段数が奇数Ｌa 段と、その奇数倍と、さらにその奇数倍の３段階で切り替えられる構成である。
【００６５】
図１０において、本実施形態のリングオシレータ１０は、第５の実施形態のセレクタ１５を介して閉ループを形成する遅延生成部Ａ１１をｐ個備えた構成を遅延生成部Ｄ１４とし、さらにセレクタ１６を介して閉ループを形成する遅延生成部Ｄ１４をｑ個備える（ｑは３以上の奇数）。各セレクタ１５，１６は、自己の遅延生成部Ａ１１のみで閉ループを形成するか、前段の遅延生成部Ａ１１の出力を次段の遅延生成部Ａ１１の入力に接続し、ｐ個の遅延生成部Ａ１１の連結により閉ループを形成するか、さらに前段の遅延生成部Ｄ１４の出力を次段の遅延生成部Ｄ１４の入力に接続し、ｑ個の遅延生成部Ｄ１４の連結により閉ループを形成する。この最後の閉ループでは、インバータとしての総段数はＬa ×ｐ×ｑ（奇数）となる。
【００６６】
ここで、任意の１つの遅延生成部Ｄ１４の最終段のインバータ（１段の場合は２入力ＮＡＮＤ）の出力は、リングオシレータ１０の出力としてＤ−ＦＦ２１に接続される。
制御部３０は、クロックとリセット信号を入力し、各セレクタ１５を切り替える制御信号１および各セレクタ１６を切り替える制御信号２を出力するとともに、クロックに同期した同期リセット信号を各遅延生成部Ａ１１の２入力ＮＡＮＤに与え、第３の実施形態と同様に動作させる。
【００６７】
すなわち、同期リセット信号がハイ、制御信号１，２がローであるときに、遅延生成部Ａ１１の２入力ＮＡＮＤはインバータとして動作するため、各遅延生成部Ａ１１がそれぞれ閉ループを形成して短周期で発振する動作モードＡになる。次に、制御信号１がハイ、制御信号２がローのときは、遅延生成部Ｄ１４は、奇数個の遅延生成部Ａ１１が連結して閉ループを形成し、奇数Ｌa ×ｐ段のインバータで長周期発振する動作モードＢに切り替わる。次に、制御信号１，２がハイになると、リングオシレータ１０は、奇数個の遅延生成部Ｄ１４が連結して閉ループを形成し、奇数Ｌa ×ｐ×ｑ段のインバータでさらに長周期発振する動作モードＣに切り替わる。そして、リングオシレータ１０が動作モードＣに切り替わった後に、Ｄ−ＦＦ２１がクロックの立ち上がり時刻でリングオシレータ１０の出力をラッチする。
【００６８】
このように、動作モードＡで個々に得られた独立なランダム性が動作モードＢで重畳され、さらに動作モードＢのランダム性が重畳されて最終的に動作モードＣに至るため、多用なランダム性が重畳されたランダム性の極めて高い乱数を得ることができる。
【００６９】
なお、本実施形態では、３つの動作モードが切り替わる例を示したが、このような入れ子構造の多重リングオシレータを構成することにより、４段階以上の切り替えが可能なリングオシレータを構成することができる。
【００７０】
（第７の実施形態）
第５の実施形態および第６の実施形態におけるリングオシレータ１０を複数ｎ個用意し、各リングオシレータ１０−１〜１０−ｎの遅延生成部Ａ１１の段数をそれぞれ独立に設定し、各リングオシレータ１０−１〜１０−ｎの出力の排他的論理和をとり、その出力をラッチしてもよい。各リングオシレータ１０−１〜１０−ｎの出力に、第５の実施形態および第６の実施形態に示した高いランダム性がすでに確保されており、それらの出力の排他的論理和をとることにより、Ｄ−ＦＦで得られる乱数のランダム性をさらに高めることができる。
【００７１】
また、第２の実施形態および第４の実施形態で説明したように、各動作モードを切り替える制御部は各リングオシレータ１０−１〜１０−ｎを一括して制御する構成としてもよいし、各リングオシレータ１０−１〜１０−ｎに個別に制御部を備え、それぞれ個別に動作モードを切り替える構成としてもよい。
【図面の簡単な説明】
【００７２】
【図１】本発明の乱数生成回路の第１の実施形態を示す図。
【図２】制御部３０の構成例を示す図。
【図３】制御部３０の動作例を示すタイムチャート。
【図４】本発明の乱数生成回路の第２の実施形態を示す図。
【図５】本発明の乱数生成回路の第３の実施形態を示す図。
【図６】制御部３１の構成例を示す図。
【図７】制御部３１の動作例を示すタイムチャート。
【図８】本発明の乱数生成回路の第４の実施形態を示す図。
【図９】本発明の乱数生成回路の第５の実施形態を示す図。
【図１０】本発明の乱数生成回路の第６の実施形態を示す図。
【図１１】従来の乱数生成回路の構成例を示す図。
【符号の説明】
【００７３】
１０  リングオシレータ
１１  遅延生成部Ａ
１２  遅延生成部Ｂ
１３  遅延生成部Ｃ
１５，１６  セレクタ
２１  Ｄ−ＦＦ
２２  均等化回路
２３  排他的論理和回路
３０，３１  制御部
【図１】
2010117846.tif 000003
【図２】
2010117846.tif 000004
【図３】
2010117846.tif 000005
【図４】
2010117846.tif 000006
【図５】
2010117846.tif 000007
【図６】
2010117846.tif 000008
【図７】
2010117846.tif 000009
【図８】
2010117846.tif 000010
【図９】
2010117846.tif 000011
【図１０】
2010117846.tif 000012
【図１１】
2010117846.tif 000013