(57)【特許請求の範囲】
【請求項１】
乱数データを発生する乱数データ発生回路であって、
相互に位相や周期が異なる発振を行う電圧制御発振器を含んだ複数の発振ユニットと、
前記複数の発振ユニットの全てがそれぞれ所定回数発振したときに、少なくとも一つの前記発振ユニットにおいて生成されたデータを前記乱数データとして出力させる出力タイミング制御手段とを備え、
前記出力タイミング制御手段は、
前記複数の発振ユニットの各々に対応して設けられ、前記発振ユニットの発振回数を計数して前記所定回数に達したときに活性化信号を出力する複数のカウンタと、
前記複数のカウンタから出力される信号の論理積を演算し、その演算結果に応じて少なくとも一つの前記発振ユニットに前記乱数データを出力させる論理積演算回路とを含む
ことを特徴とする乱数データ発生回路。
【請求項２】
前記複数のカウンタの各々は、最初に前記所定回数を計数したときに、初期設定された前記所定回数を減少させる請求項１に記載の乱数データ発生回路。
【請求項３】
前記複数の発振ユニットの各々は、
強度が周波数に対して一様な雑音を発生させる雑音発生手段と、
前記雑音発生手段により発生された前記雑音を増幅する増幅手段とを含み、
前記増幅手段により増幅された信号に応じて発振する請求項１に記載の乱数データ発生回路。
【請求項４】
前記複数の発振ユニットの各々は、正帰還の差動増幅手段を含み、前記差動増幅手段から出力された信号に応じて発振する請求項１に記載の乱数データ発生回路。
【請求項５】
前記複数の発振ユニットの各々は、前記差動増幅手段から出力された前記信号に応じて動作不良を検出する不良検出手段をさらに含み、
前記出力タイミング制御手段は、前記不良検出手段により動作不良が検出された場合に前記乱数データの出力を禁止する請求項４に記載の乱数データ発生回路。
【請求項６】
強度が周波数に対して一様な雑音を発生させる雑音発生手段と、
前記雑音発生手段により発生された前記雑音を増幅する増幅手段とをさらに備え、
前記複数の発振ユニットの各々は正帰還の差動増幅手段を含み、前記差動増幅手段から出力された信号及び前記増幅手段により増幅された信号に応じて発振する請求項１に記載の乱数データ発生回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、任意のタイミングでデータを出力する乱数データ発生回路に関するものである。
【０００２】
【従来の技術】
従来より、発振回路を使用することによって任意のタイミングでデータ（乱数データ）を出力する乱数データ発生回路が考案されている。ここで、該乱数データ発生回路は、該出力タイミングのばらつきを利用して乱数データを生成するもので、該乱数データを使用することによりシステム全体のセキュリティが高められる。
【０００３】
なお、該出力タイミングのばらつきを十分担保するために、乱数データを出力する周期は該発振回路の発振周期より十分に長くされる。
【０００４】
ここで、該乱数データが論理回路で用いられる場合には、上記乱数データ発生回路は該論理回路のシステムクロック信号に同期して該発振回路で生成された信号をラッチし、ラッチした該信号を乱数データとして出力する。
【０００５】
【発明が解決しようとする課題】
しかしながら、上記発振回路の発振周期は電源電圧の変化等に対して不安定であるため、該ラッチ動作の１周期内で上記のようにある値以上の振動回数を確保することによって該出力タイミングのばらつきを十分担保するためには、該ラッチ動作の周期を必要以上に長くする必要があった。
【０００６】
また、従来においては、乱数データのデータ量を増大させるために、上記のような発振回路が並設されるが、いずれか一つの該発振回路が何らかの要因で停止してしまった場合には、該発振回路により生成される乱数データのレベルが固定されてしまうため、該発振回路を含むシステムのセキュリティが十分保証されないという問題もある。
【０００７】
本発明は上記のような問題を解決するためになされたもので、信頼性の高い乱数データを効率的に生成する乱数データ発生回路を提供することを目的とする。
【０００８】
【課題を解決するための手段】
本発明の目的は、乱数データを発生する乱数データ発生回路であって、相互に位相や周期が異なる発振を行う電圧制御発振器を含んだ複数の発振ユニットと、複数の発振ユニットの全てがそれぞれ所定回数発振したときに、少なくとも一つの発振ユニットにおいて生成されたデータを乱数データとして出力させる出力タイミング制御手段とを備え、前記出力タイミング制御手段は、前記複数の発振ユニットの各々に対応して設けられ、前記発振ユニットの発振回数を計数して前記所定回数に達したときに活性化信号を出力する複数のカウンタと、前記複数のカウンタから出力される信号の論理積を演算し、その演算結果に応じて少なくとも一つの前記発振ユニットに前記乱数データを出力させる論理積演算回路とを含むことを特徴とする乱数データ発生回路を提供することにより達成される。
【０００９】
このような手段によれば、乱数データの発生（出力）を、複数の発振ユニットにおける発振状態に応じて初めて決定されるものとすることができる。
【００１０】
ここで、上記出力タイミング制御手段は、例えば、複数の発振ユニットの各々に対応して設けられ発振ユニットの発振回数を計数して所定回数に達したときに活性化信号を出力する複数のカウンタと、複数のカウンタから出力される信号の論理積を演算する論理積演算手段とを含み、論理積演算手段は演算結果に応じて少なくとも一つの発振ユニットに乱数データを出力させるものとする。すなわち、複数の発振ユニットの各々が所定回数以上発振したときに、少なくとも一つの発振ユニットに乱数データを出力させることで、乱数データの出力タイミングの不定期性（乱数データのランダム性）を担保することを保証できる。
【００１１】
また、複数のカウンタの各々は、最初に所定回数を計数したときに、初期設定された所定回数を減少させることにより、発振ユニットの動作開始時だけ乱数データの発生タイミングを遅らせることができる。
【００１２】
また、複数の発振ユニットの各々は、強度が周波数に対して一様な雑音を発生させる雑音発生手段と、雑音発生手段により発生された雑音を増幅する増幅手段とを含み、増幅手段により増幅された信号に応じて発振するものとすれば、乱数データのランダム性を確保することができる。
【００１３】
ここで、複数の発振ユニットの各々は正帰還の差動増幅手段を含み、差動増幅手段から出力された信号に応じて発振するものとすれば、回路規模を低減することができる。
【００１４】
また、複数の発振ユニットの各々は、差動増幅手段から出力された信号に応じて動作不良を検出する不良検出手段をさらに含み、出力タイミング制御手段は、不良検出手段により動作不良が検出された場合に乱数データの出力を禁止するものとすれば、差動増幅手段に動作不良が生じた場合には、乱数の発生を自動的に中断することができる。
【００１５】
また、強度が周波数に対して一様な雑音を発生させる雑音発生手段と、雑音発生手段により発生された雑音を増幅する増幅手段とをさらに備え、複数の発振ユニットの各々は正帰還の差動増幅手段を含み、差動増幅手段から出力された信号及び増幅手段により増幅された信号に応じて発振するものとすれば、増幅手段により増幅された信号と差動増幅手段から出力された信号の双方により発振ユニットにおける発振のランダム性を確保することができる。
【００１６】
【発明の実施の形態】
以下において、本発明の実施の形態を図面を参照しつつ詳しく説明する。なお、図中同一符号は同一または相当部分を示す。
[実施の形態１]
図１は、本発明の実施の形態１に係る乱数データ発生回路の構成を示す図である。図１に示されるように、本発明の実施の形態１に係る乱数データ発生回路は、ＣＰＵ１と論理回路３、ＡＮＤ回路５、及び複数の発振ユニット１０を備える。そして、各発振ユニット１０は増幅器１１と電圧制御発振器（ＶＣＯ）１２、分周器１３、二つのカウンタ１４，１５、遅延フリップフロップ１６、及び抵抗１７を含む。
【００１７】
上記において、論理回路３はＣＰＵ１に接続され、複数の発振ユニット１０は論理回路３に接続される。また、増幅器１１のプラス及びマイナスの入力端の間には抵抗１７が接続され、増幅器１１の出力端にはＶＣＯ１２及びカウンタ１４が接続される。そして、ＶＣＯ１２には分周器１３が接続され、分周器１３の出力ノードにはカウンタ１５及び遅延フリップフロップ１６が接続される。
【００１８】
また、カウンタ１４及びカウンタ１５の出力ノードがＡＮＤ回路５の入力端に接続され、ＡＮＤ回路５の出力端は論理回路３に接続される。一方、遅延フリップフロップ１６の出力ノードは論理回路３に接続され、カウンタ１４，１５のリセットノードＲＳＴ及び遅延フリップフロップ１６のリセットノードは論理回路３に接続される。
【００１９】
なお、複数の発振ユニット１０に含まれる各ＶＣＯ１２は、全て同じ形状でレイアウトされ、それぞれの平均周期はほぼ等しいものとされる。
【００２０】
以下において、上記のような構成を有する乱数データ発生回路の動作を、図２に示されたタイミング図を参照しつつ説明する。なお、初期状態においては、乱数データ発生回路はスタンバイ状態にあって、図２（ａ）に示されるように、ＣＰＵ１はロウレベル（Ｌ）のスタンバイ信号／ＳＢ１を論理回路３へ供給し、論理回路３はロウレベルのスタンバイ信号／ＳＢ２を複数の発振ユニット１０へ供給するものとする。
【００２１】
ここで、図２（ａ）に示されるように、時刻Ｔ１においてＣＰＵ１がスタンバイ信号／ＳＢ１をハイレベル（Ｈ）へ遷移させると、論理回路３が活性化され複数の発振ユニット１０へハイレベルのスタンバイ信号／ＳＢ２を供給する。これにより、各発振ユニット１０は活性化され発振を開始する。
【００２２】
より具体的には、時刻Ｔ１において増幅器１１が活性化され、抵抗１７の熱雑音が増幅される。そして、該増幅により生成されたアナログ信号はＶＣＯ１２へ供給され、ＶＣＯ１２は供給されたアナログ信号に応じて発振する。このとき、ＶＣＯ１２は上記アナログ信号のゆらぎに応じて、位相や周期が変動する信号を生成し出力する。
【００２３】
なお、上記において、抵抗１７の熱雑音の代わりに、ＰＮ接合におけるショット雑音など強度が周波数に対して一様な雑音を利用することができ、理想的には白色雑音を利用することが望ましい。
【００２４】
一方、カウンタ１４は増幅器１１から供給された信号に応じて増幅器１１の発振回数をカウントする。そして、カウンタ１４は増幅器１１の発振回数が所定値に達した場合に、ハイレベルの信号をＡＮＤ回路５へ供給する。ここで、カウンタ１４は増幅器１１が正常に動作しているか否かを確認するためのものであり、上記所定値は小さな値としても十分なものとされる。
【００２５】
すなわち、例えば増幅器１１が故障して発振動作が停止してしまった場合には、カウンタ１４は上記所定値までカウントできないため、ＡＮＤ回路５へロウレベルの信号を供給し続けることになって論理回路３へは活性化されたハイレベルの信号ＰＳが供給されないことになる。これにより、論理回路３は活性化されたハイレベルのクロック信号ＣＫを遅延フリップフロップ１６へ供給しないため、第三者から容易に予測され得るデータＤＡＴＡ（後に詳しく説明する）の論理回路３による使用が回避される。従って、カウンタ１４は本乱数データ発生回路を含むシステムの安定性を高めることに寄与するものとされる。
【００２６】
一方、ＶＣＯ１２から出力された信号は分周器１３で例えば２分周され、カウンタ１５及び遅延フリップフロップ１６に供給される。このとき、カウンタ１５は分周器１３から供給されたパルスの数をカウントし、予め設定された値に達した場合にハイレベルの信号をＡＮＤ回路５へ供給する。なお、カウンタ１５は、ＶＣＯ１２が一定回数以上発振することにより後述するデータＤＡＴＡの出力タイミングの不定期性、すなわちデータＤＡＴＡのランダム性を担保することを保証するものとされる。
【００２７】
なお、上記のように分周器１３で２分周すれば、ＶＣＯ１２の特性によらず“１”と“０”の出現確率がほぼ等しい信号を遅延フリップフロップ１６へ供給することができるため、ＶＣＯ１２の回路特性によらず動作の信頼性を確保することができる。
【００２８】
このようにして、複数の発振ユニット１０に含まれた全てのＶＣＯ１２がそれぞれ一定回数以上振動することによって、ＡＮＤ回路５へ全てのカウンタ１４，１５からハイレベルの信号が供給された時刻Ｔ２において、図２（ｂ）に示されるようにＡＮＤ回路５はハイレベルの信号ＰＳを論理回路３へ供給する。
【００２９】
ここで、複数の発振ユニット１０に含まれた各ＶＣＯ１２の発振は、その位相及び周期が相互に独立したものとされるため、時刻Ｔ１から時刻Ｔ２までの時間Ｔｓｂは予測不可能なものとなる。
【００３０】
そして、図２（ｃ）に示されるように、論理回路３は時刻Ｔ２から所定の時間Ｔｄｌ経過後にハイレベルのクロック信号ＣＫを出力する。このハイレベルのクロック信号ＣＫが供給された遅延フリップフロップ１６は、図２（ｄ）に示されるように、時刻Ｔ３から時間Ｔａｃ経過後に分周器１３から供給された有効データをデータＤＡＴＡとして論理回路３へ出力する。なお、このデータＤＡＴＡは出力タイミングに応じて“１”または“０”の値をとるため、いわゆる乱数データとも呼ばれる。
【００３１】
また、ハイレベルのクロック信号ＣＫがカウンタ１４，１５のリセットノードＲＳＴへ供給されることにより、カウンタ１４，１５によるカウント数がリセットされる。
【００３２】
以上のような動作により、各遅延フリップフロップ１６から取り出されるデータＤＡＴＡの出力タイミングは不定期とされるため、たとえ上記クロック信号ＣＫが本乱数データ発生回路を含むＬＳＩのシステムクロックに同期しているものであっても、出力されるデータＤＡＴＡの第三者による予測は困難なものとされ、該ＬＳＩのセキュリティが高められる。
【００３３】
なお、本実施の形態１に係る乱数データ発生回路において、発振ユニット１０をただ一つ備えることとすれば、ＶＣＯ１２の発振周期が不定期になった効果が全く無くなり、遅延フリップフロップ１６からデータＤＡＴＡが出力されるタイミングは第三者に容易に予測できてしまう。従って、上記のように、発振周期がほぼ等しいＶＣＯ１２を含む発振ユニット１０を複数備えることによって、いずれのＶＣＯ１２の発振周期が最長となるかを第三者に予想させないこととされる。
【００３４】
ところで、上記のような乱数データ発生回路においては、電源電圧等の環境が安定していると、スタンバイ状態を解除した直後には毎回良く似たデータＤＡＴＡが出力されることが多い。従って、各発振ユニット１０では、データＤＡＴＡのランダム性を担保するために、スタンバイ状態解除後だけはＶＣＯ１２による発振回数を多めにモニタすることが望ましい。このため、初めてデータＤＡＴＡを出力するまでの間にカウンタ１５に設定される値は、該データＤＡＴＡ出力後に設定される値よりも大きなものとされる。
【００３５】
すなわち、例えばカウンタ１５にスタンバイ状態解除時において予め設定値Ｖ１が設定されているとすれば、カウンタ１５は該カウント数が設定値Ｖ１に達してハイレベルの信号をＡＮＤ回路５へ出力した時点で、該設定値Ｖ１をより小さな設定値Ｖ２に更新する。
【００３６】
また、上記のように抵抗１７における熱雑音を増幅するには、非常に大規模な増幅器１１が必要になる。そこで、増幅器１１により熱雑音を増幅させる代わりに、図３に示された差動増幅器２１による発振を利用することにより、乱数データ発生回路の回路規模を低減することができる。
【００３７】
この差動増幅器２１は、図３に示されるように、プラスの出力ノードがマイナスの入力ノードに接続されると共に、マイナスの出力ノードがプラスの入力ノードに接続されいわゆる正帰還の差動増幅器２１を構成するが、ある程度熱雑音の影響を受けた発振動作を行うため、結果的に、各発振ユニット１０から出力されるデータＤＡＴＡの第三者による予測は困難なものとされる。
【００３８】
さらに、複数の差動増幅器２１間において発振周期が少しずつ異なるように、例えば差動増幅器２１を構成するトランジスタのサイズを互いに異なるよう設計（レイアウト）すれば、複数のＶＣＯ１２から出力される信号相互の位相差が不規則に変化するため、出力されるデータの第三者による予測がより困難になり、該乱数データ発生回路を含むシステムのセキュリティをさらに高めることができる。
【００３９】
以上より、本発明の実施の形態１に係る乱数データ発生回路によれば、相互に位相や周期が異なる発振を行うＶＣＯ１２を含んだ複数の発振ユニット１０と、複数の該発振ユニット１０の全てがそれぞれ所定回数発振したときに、発振ユニット１０において生成されたデータＤＡＴＡを出力させるためのＡＮＤ回路５とを備えることにより、信頼性の高い多くのデータＤＡＴＡ（乱数データ）を効率的に得ることができる。
[実施の形態２]
図４は、本発明の実施の形態２に係る乱数データ発生回路の構成を示す図である。図４に示されるように、本発明の実施の形態２に係る乱数データ発生回路は、上記実施の形態１に係る乱数データ発生回路と同様な構成を有するが、各ＶＣＯ１２には同じ発振ユニット１０内に含まれる差動増幅器２１の出力信号のみならず、複数の発振ユニット１０に共有された増幅器１１より出力された信号が供給される点で相違するものである。
【００４０】
上記のような構成を有する実施の形態２に係る乱数データ発生回路は、上記実施の形態１に係る乱数データ発生回路と同様に動作するが、ＶＣＯ１２には強度が周波数に対して一様な熱雑音を増幅することにより生成された信号及び、差動増幅器２１による発振動作により生成された信号が供給される。
【００４１】
以上のような本実施の形態に係る乱数データ発生回路によれば、上記実施の形態１に係る乱数データ発生回路と同様な効果を奏すると共に、複数のＶＣＯ１２による発振全体のランダム性を増幅器１１から供給される信号により確保しながら、さらに各発振ユニット１０に含まれた差動増幅器２１によって各ＶＣＯ１２相互間における発振のランダム性を保証することができるため、出力されるデータＤＡＴＡの第三者による予測をさらに困難なものとすることができ、本乱数データ発生回路を含むシステム全体のセキュリティをさらに高めることができる。
【００４２】
【発明の効果】
本発明に係る乱数データ発生回路によれば、乱数データの発生を、相互に位相や周期が異なる発振を行う電圧制御発振器を含んだ複数の発振ユニットにおける発振状態に応じて初めて決定されるものとすることができるため、信頼性の高い乱数データを効率的に得ることができ、また複数の発振ユニットの各々が所定回数以上発振したときに、少なくとも一つの発振ユニットに乱数データを出力させることで、乱数データの出力タイミングの不定期性（乱数データのランダム性）を担保することを保証できる。
【図面の簡単な説明】
【図１】本発明の実施の形態１に係る乱数データ発生回路の構成を示す図である。
【図２】図１に示された乱数データ発生回路の動作を示すタイミング図である。
【図３】図１に示された増幅回路の変形例を示す図である。
【図４】本発明の実施の形態２に係る乱数データ発生回路の構成を示す図である。
【符号の説明】
１  ＣＰＵ、３  論理回路、５  ＡＮＤ回路、１０，２０  発振ユニット、１１増幅器、１２  電圧制御発振器（ＶＣＯ）、１３  分周器、１４，１５  カウンタ、１６  遅延フリップフロップ（Ｄ−ＦＦ）、１７  抵抗、２１  リングオシレータ。
【図１】
0003695409.tif 000002
【図２】
0003695409.tif 000003
【図３】
0003695409.tif 000004
【図４】
0003695409.tif 000005