WO2011039846A1 - 乱数生成回路 - Google Patents
乱数生成回路 Download PDFInfo
- Publication number
- WO2011039846A1 WO2011039846A1 PCT/JP2009/066973 JP2009066973W WO2011039846A1 WO 2011039846 A1 WO2011039846 A1 WO 2011039846A1 JP 2009066973 W JP2009066973 W JP 2009066973W WO 2011039846 A1 WO2011039846 A1 WO 2011039846A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- circuit
- output
- oscillation
- terminal
- holding
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K3/00—Circuits for generating electric pulses; Monostable, bistable or multistable circuits
- H03K3/84—Generating pulses having a predetermined statistical distribution of a parameter, e.g. random pulse generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/588—Random number generators, i.e. based on natural stochastic processes
Abstract
乱数を生成する乱数生成回路を提供する。本発明の乱数生成回路は、複数の増幅器が直列接続され、隣接する増幅器間に端子を有する増幅器列と、前記増幅器列中の他の隣接する増幅器間に挿入され、前記増幅器列からの発振信号にジッタを生じさせるための雑音を発生する高雑音回路とを有する発振回路と、前記端子に接続され、前記発振信号の発振周波数よりも低い周波数のクロック信号に従い前記発振信号を保持してこれを乱数として出力する保持回路と、を具備する。
Description
本発明は、乱数を生成する乱数生成回路に関する。
情報通信技術の発展に伴い、情報セキュリティに対する要求が強くなっている。情報セキュリティ技術における予測不可能性は、使用される乱数の質に依存するため、乱数生成回路の性能は非常に重要である。乱数生成方法は2種類に大別することができる。第1の方法は、何らかのアルゴリズムに基づいて擬似的に乱数列を生成するもの、第2の方法は物理的な不確定要因に基づいて乱数列を生成するものである。
物理的な現象を利用して乱数を生成する方法としてよく知られているものに、速い発振信号を、それより十分遅いクロックでラッチするという方法がある。速い発振信号にジッタが乗っている場合、クロックタイミングに対して発振信号の位相が揺らぐため、ランダムな出力を得ることが可能になる。ただし、ジッタの大きさは、一般的に発振周期に比べて非常に小さいので、何度も発振を繰り返す必要があり、その分、消費電力が増大するという問題がある。消費電力を下げるためには、発振回数を減らす必要がある。そのためには、発振周期に対するジッタを大きくすることにより、乱数生成効率を向上することが必要である。
従来、発振信号に対してジッタを大きくする方法として、特許文献1、2に記載されている方法が知られている。
特許文献1に記載された方法は、発振器を構成するロジック間の配線を長くしてノイズを乗りやすくするというものである。しかしこの方法は、配線長を長くするものであることから、発振回路で必要とされる面積よりも回路面積がかなり大きくなってしまうという問題がある。また、この方法には面積コストが増大するという問題点もある。
特許文献2に記載された方法は、揺らぎを発生する特殊な素子を発振回路中に挿入することにより発振信号に揺らぎを生じさせるというものである。しかしこの方法は、通常のCMOS素子とは別に、乱数回路用に特殊な素子を作製するための追加プロセスが必要になるという問題があり、プロセスコストが増大する。
本発明は、面積コストを増大させることなく、また特殊なプロセスによるプロセスコストを増大させることもなく、発振信号のジッタの量を増やして乱数生成の効率を高め、その結果として消費電力を低下させることのできる乱数生成回路を提供することを目的とする。
一態様に係る乱数生成回路は、複数の増幅器が直列接続され、隣接する増幅器間に端子を有する増幅器列と、前記増幅器列中の他の隣接する増幅器間に挿入され、前記増幅器列からの発振信号にジッタを生じさせるための雑音を発生する高雑音回路とを有する発振回路と、前記端子に接続され、前記発振信号の発振周波数よりも低い周波数のクロック信号に従い前記発振信号を保持してこれを乱数として出力する保持回路と、を具備する。
本発明によれば、面積コストを増大させることなく、また特殊なプロセスによるプロセスコストを増大させることもなく、発振信号のジッタの量を増やして乱数生成の効率を高め、その結果として消費電力を低下させることのできる乱数生成回路を提供することができる。
以下、図面を参照しながら本発明の実施形態を説明する。
図1は、一実施形態に係る乱数生成回路を示すブロック図である。複数の増幅器1a~1cがリング状に配線されており、その途中の一つの配線に高雑音回路2が配置される。増幅器1aは第1の入力端子及び第1の出力端子を有する。増幅器1bは第2の入力端子及び第2の出力端子を有し、該第2の入力端子が増幅器1aの第1の出力端子に接続される。増幅器1cは第3の入力端子及び第3の出力端子を有し、該第3の出力端子が増幅器1aの第1の入力端子に接続される。これら増幅器1a~1cは発振回路を構成しており、増幅器1cからは発振信号を出力する。複数の増幅器1a~1cは例えば反転増幅器であって発振回路内に奇数個設けられる。なお、増幅器の数は図1に示された3個に限定されない。
高雑音回路2は、第4の入力端子及び第4の出力端子を有し、該第4の入力端子が増幅器1bの第2の出力端子に接続され、該第4の出力端子が増幅器1cの第3の入力端子に接続され、発振信号にジッタを生じさせるための雑音を発生する。
このように、リング状に配線された複数の増幅器1a~1cは発振回路をなし、発振波形6を出力する。途中に挿入される高雑音回路2は、流れる電流が小さく制限された素子である。発振回路の出力は、保持回路3の入力に接続され、クロック4の入力のタイミングに応じてランダムデータ(乱数)5が保持され、保持回路3から出力される。クロックに応じてデータを記憶・保持する回路として、例えばD型フリップフロップや、トランスペアレントラッチなどを用いることができる。以下では、例えば立ち上がりエッジトリガのD型フリップフロップを用いる場合について説明しているが、立ち下りのエッジでトリガされるエッジトリガや、立ち上がり、立ち下り、またはこれら両方のエッジでトリガされるフリップフロップ、またはJKフリップフロップなど、その他のフリップフロップやラッチを同様に用いてもよい。
高雑音回路2を用いることで、素子両端に現れるノイズが大きくなる。高雑音回路2は発振回路の途中の配線に設置されているため、高雑音回路2のノイズのために発振信号6のジッタの量が増える。それを、発振回路に比べてジッタ量の少ないクロック4を用いてラッチすることで、ランダムデータ5が得られる。
図2は、ランダムデータ生成の様子を示したタイミングチャートである。発振信号6はクロック信号4に対して高い周波数で発振しており、また、高雑音回路2の影響で大きなジッタを含んでいる。発振信号6がLowからHigh、またはHighからLowに遷移するタイミングとクロック信号4の立ち上がりのタイミングが同時であるか、またはジッタの大きさ程度に近い場合、保持回路3の出力はランダムになる。発振周波数が低い場合やジッタが小さい場合、クロックタイミングが発振信号6の遷移タイミングに一致する確率が低くなるので、ランダムデータ5が生成される確率も低くなる。その場合、後述されるいくつかの方法によれば、発振信号6の遷移タイミングとクロック信号4のタイミングが合うように制御することによってランダムデータの生成確率を上げることができる。しかしながら、発振周波数はクロック周波数に対して高い方が好ましい。また、ジッタを大きくすることで制御が行いやすくなる。
図3は高雑音回路2を示す回路図である。高雑音回路2は、直列に接続されたNMOSFET20とPMOSFET21とを有する。通常のCMOSインバータとは、高電位側電源VDDと低電位側電源VSSに対して位置関係が逆に接続される。すなわち、NMOSFET20はドレイン端子がVDDに接続され、ゲート端子が入力に接続され、ソース端子が出力に接続され、図示されない基板端子がVSSに接続される。PMOSFET21はドレイン端子がVSSに接続され、ゲート端子が入力に接続され、ソース端子が出力に接続され、図示されない基板端子がVDDに接続される。
図4Aおよび図4Bは、図3で示した高雑音回路2の動作を説明する図である。発振回路の中に置かれた高雑音回路2の出力Voutの電圧値は、基本的に、VSS<Vout<VDDの範囲である。入力端子にVDDの電圧が入力されたとき、両方のMOSFET(20,21)のゲートソース間には、VDD-Voutの電圧が加わる。これはVout>VSSであるので、NMOSFET20は小さなオーバードライブ電圧が印加された状態になる。一方、PMOSFET21はOFFした状態になる。よって、出力電圧はNMOSFET20を通じてVDD側に上昇するが、NMOSFET20のオーバードライブ電圧が小さいため、流れる電流は小さい。また、ゲートソース間電圧が閾値電圧Vthに達すると、NMOSFET20はサブスレッショルド領域に入り、ますます電流は小さくなる。また、入力端子にVSSの電圧が入力されたとき、両方のMOSFET(20,21)のゲートソース間には、VSS-Voutの電圧が加わる。これはVDD>Voutであるので、PMOSFET21は小さくオーバードライブ電圧が印加された状態になる。一方、NMOSFET20はOFFした状態になる。よって、出力電圧はPMOSFET21を通じてVSS側に下降するが、PMOSFET21のオーバードライブ電圧が小さいため、流れる電流は小さい。また、ゲートソース間電圧が閾値電圧Vthに達すると、PMOSFET21はサブスレッショルド領域に入り、ますます電流は小さくなる。
以上のように、高雑音回路2は、ロジック状態は変えないが、流れる電流が小さいことを特徴とした回路になっている。流れる電流が小さいということの技術的意味は、すなわち、チャネル抵抗が高いことである。よって、この回路の出力には、通常のCMOS回路に比べて大きいノイズ信号が現れる。
トランジスタのもつノイズを大別すると、フリッカーノイズと熱雑音である。低周波数の領域ではフリッカーノイズが支配的であり、高周波領域では熱雑音が支配的である。両者が交わるコーナー周波数は、典型的にはおおよそ数百kHz~数MHz程度である。乱数生成回路を数十MHz~数百MHzで動かす場合、熱雑音が支配的になる。トランジスタの熱雑音による電流ノイズInoiseは一般的に、
で表される。ここで、kはボルツマン定数、Tは絶対温度である。γは比例係数であり微細MOSFETになるほど大きくなる。gdsはMOSFETのチャネルコンダクタンスである。本実施形態に係る高雑音回路においては、上述したようにVSS<Vout<VDDであるので、回路の動作電圧範囲においては、|Vgs-Vth|<=|Vds|(ただし、Vgsはゲート、ソース間電圧、Vdsはドレイン、ソース間電圧)である。従って、MOSFETは基本的に飽和領域で動作し、|Vgs|<|Vth|の範囲においてサブスレッショルド領域で動作する。
となる。これは、Vgs及びVdsが小さいほど大きくなる。通常のCMOSインバータでは、NMOSFETにおいてソース電位はVSSであるが、本実施形態の高雑音回路2では、ソース電位はVout>VSSであり、VgsとVdsとも小さくなるため、通常のCMOSインバータよりもノイズの割合が大きくなることがわかる。
図5は、VDDを1.5Vとし、Vthを0.4Vとして、VinとVoutを変化させたときのノイズ電流の割合をプロットしたグラフである。Voutはソース電位であるので、Vout=0Vの時が、通常のCMOSインバータの場合に対応する。Vinが与えられた時に、Voutの全ての場合で、CMOSの場合よりもノイズの割合が大きくなることがわかる。CMOS回路の遅延はトランジスタに流れる電流量で決まるが、平均電流に対するノイズの割合が増えると言うことは、CMOS回路の遅延にノイズが乗るということであり、すなわち、ジッタが増えることになる。また、図5によれば、Voutが大きい方がノイズが大きくなるが、これはVdsが小さいほどノイズが大きいことの表れであり、この効果をより大きくするために、高雑音回路2に与える高電位側電源VDD2、低電位側電源VSS2を、それぞれVDD2<VDD、VSS2>VSSとしても良い。また、基板バイアスをかけることで、閾値電圧|Vth|を大きくしても良い。
図6は増幅器としてCMOSインバータを用いて、3段のリング発振器を構成した場合(従来発振器)と、インバータとインバータの間一箇所に高雑音回路を挿入した回路(本発明)において、0.13ミクロンプロセスのトランジスタを用いて回路シミュレーションによりジッタの大きさを見積もったものである。横軸は発振を開始させてからの経過時間である。図から明らかなとおり、本発明の実施形態により、従来に比べかなり大きなジッタを発生させることができる。これは高雑音回路を信号が通る時に、回路を流れる電流にノイズが入るため、信号の伝播遅延にノイズが入ることによる。
なお、高雑音回路2の接続位置は、発振回路を構成する各増幅器1a~1cの間のいずれでも良く、複数あってもよい。また、発振回路の出力と保持回路3の入力の接続位置も増幅器1a~1cおよび高雑音回路2の出力のいずれでも良く、また、保持回路3を各々の出力に対して複数用いても良い。
図7は、信号の発振手段としてCMOSインバータのリング発振器を用いた場合の実施形態である。奇数個のリング状に接続されたCMOSインバータ70a~70eと高雑音回路2により発振回路が構成され、その出力が一定のクロックにより保持回路3でラッチされる。通常のCMOSインバータのみで作るリング発振器よりも、高雑音回路2を用いることで、発振信号に入るジッタ成分が増加する。すなわち、ランダムデータ5の生成効率をより高くすることが可能になる。
高雑音回路2に流れる平均電流はCMOSインバータ70よりも小さいため、高雑音回路2の平均遅延時間は増大し、その分、発振周波数は遅くなる。ただし、その分CMOSインバータ70a~70eの数を減らすことで発振周波数を上げることが可能であり、最終的に、高雑音回路2を導入しない状態と同じ発振周波数を実現することは設計により可能である。
図7では、CMOSリング発振器に高雑音回路2を適用した場合の図を示しているが、高雑音回路2は論理値として入力と出力を変化させないため、他の様々な発振回路中に適用することが可能である。例えば、図8のように、差動増幅器80a~80dを使用して発振回路を構成し、差動増幅器80bと80cの間に高雑音回路81a,81bを挿入する構成も考えられる。差動増幅器の場合は、奇数個の差動増幅器をそのまま接続しても良いし、偶数個の差動増幅器でも一組の入力と出力の関係を入れ替えることで発振回路を構成することが可能である。また、図8では高雑音回路81a,81bを2つの発振信号の経路それぞれに接続しているが、いずれか一方のみに接続する構成としても良い。また、図8では保持回路3を一つのみ使用しているが、発振する信号経路は2つあるため、両方の経路に保持回路3を接続してランダムデータを2ビット得てもよい。
また、例えば図9のように、インバータ70a~70fの一つをNANDゲート90などにして、トリガ信号91を使用することで、発振を開始するタイミングを制御することができる。NANDゲート90はもちろんNORゲートやXORゲートなど他のロジックゲートでも構わない。このようにすると、例えばクロックタイミングにトリガ信号91を同期させて制御することで、発振信号の遷移タイミングとクロック4のタイミングを合わせ、ランダムデータ5を生成しやすくすることが可能である。または、クロック信号4に対するトリガ信号91のタイミングを複数通り用意し、最適なタイミングを選択することも可能である。または、複数通りのタイミングをクロック4ごとに全て選択して一連のデータを生成した後、それらの排他的論理和を求めることで最終ランダムデータ5とすることも可能である。複数のタイミングを実現する方法は、例えば、バッファ回路の数を変えた複数の経路を有し、セレクタ回路で信号経路を選択するように構成された回路によって可能である。
その他、NANDゲートやNORゲートを用いてもリング発振器を構成することは可能である。また、LCR遅延を利用したものや発振制御端子を持つ電圧制御発振器(VCO:Voltage Controlled Oscillator)など、全ての発振回路に本発明は適用することができる。
図10は、高雑音回路の出力にシュミットトリガ入力を持つ回路を接続した例を示したものである。高雑音回路2の出力にシュミットトリガインバータ100が接続されている。高雑音回路2では電流が小さいため、発振回路中で、高雑音回路2を信号が通過する遅延時間は比較的長い。例えばCMOSインバータのリング発振器の場合、その他のインバータの遅延は比較的短いため、高雑音回路2からの出力が十分に変化する前に信号が1周して次の信号遷移が始まるため、高雑音回路2からの出力の信号はフルスイングすることができない可能性がある。すなわち、高雑音回路2に流れる電流は少なくなるため、高雑音回路2から出力されるノイズが十分に発振周期に反映されないことになる。
シュミットトリガは出力が変化する閾値レベルが、HighとLowで違う電圧値をとるため、少なくとも、その入力電圧差については高雑音回路2からの出力がスイングする。そのため、高雑音回路2に比較的多くの電流が流れ、その分ノイズが発生し発振信号にジッタを乗せることができる。すなわち、ランダムデータ生成の効率をより高くすることが可能になる。
図11はCMOSリング発振器を構成する複数のCMOSインバータの一つを電圧制御型のCMOSインバータに置き換えた電圧制御発振器の例を示している。図11に示す電圧制御発振器113は、複数のCMOSインバータ110a~110dと、高雑音回路2と、遅延を制御するための制御電圧を印加する制御端子112a,112bを備えたCMOSインバータ111と、を有する。ここでは複数のCMOSインバータの一つのみをCMOSインバータ111に置き換えているが、複数または全部をCMOSインバータ111のように制御端子112a,112bを持つものに置き換えても良い。
この構成を用いると、制御端子112a,112bに印加する制御電圧で発振周波数を制御できるため、高雑音回路2の適用により変化した発振周波数を電圧制御により元に戻すことが可能である。
図11の構成にはもう一つの利点がある。すなわち、クロックタイミングに応じて制御電圧を変える構成が可能になることである。保持回路3でラッチされるデータがランダム性を持つためには、クロック4の立ち上がりタイミングと、発振信号の立ち上がりまたは立ち下がりタイミングとが、一致もしくはジッタの大きさ程度に近くなるのが最も好ましい。しかし、電圧制御発振器113とクロック4はそれぞれ独立に動作しているため、通常はそのタイミングは合わない。この場合、電圧制御発振器113の制御電圧を変えて、クロックタイミングごとに発振周波数を変えることにより、いずれかの発振周波数で上記タイミングを合わせることが可能である。
図12は、電圧制御発振器を用い、かつランダムデータの生成確実性を向上する場合を示した図である。図12の構成において、上述した保持回路3は、第1保持回路121aと、XOR回路128と、第2保持回路121bと、第3保持回路121cと、OR回路127とに置き換えられている。第1保持回路121aは、第1クロック122に従って電圧制御発振器113からの出力を保持する。第1保持回路121aからの出力は、XOR回路128の第1の入力に与えられる。XOR回路128の第2の入力はOR回路127からの出力である。XOR回路128は、第1の入力と第2の入力、すなわち第1保持回路121aからの出力とOR回路127からの出力の排他的論理和を演算して出力する。このXOR回路128からの出力は、第2の保持回路121bおよび第3保持回路121cに入力される。第2保持回路121bは、第1クロック122に従ってXOR回路128からの出力を保持する。第2保持回路121bからの出力はOR回路127に入力される。OR回路127は、このOR回路128からの出力とリセット126の論理和を演算して出力する。このOR回路127の出力は、上記の通り、XOR回路128の第2の入力である。第3保持回路121cは、第2クロック123に従ってXOR回路128からの出力を保持し、ランダムデータ125を出力する。なお、上記第1クロック122および第2クロック123の周波数は、いずれも電圧制御発振器113における発振信号の発振周波数よりも低いものとする。
図12の電圧制御発振器113は、高雑音回路を含んだ、ジッタ成分を多く含む発振器である。発振周波数を変えて一連のデータ124を取得すると、どこかの制御電圧129で、第1クロック122のタイミングと発振のタイミングがジッタの大きさの範囲に入るため、そこでランダムデータ125が出力される。
一連のデータ124の排他的論理和(XOR)128を演算すると、どの制御電圧129でタイミングが近くなったのかが分からなくても、排他的論理和128の出力はランダムデータの要素を取り込んだものとなる。最終的には、一連のデータ124の取得が終わった段階で、第2クロック123を立ち上げ、最終ランダムデータ125を出力させる。
リセット126は、第2クロック123により最終ランダムデータ125を取り込んだ後に立ち上げ、一連のデータ124の履歴をリセットする。なおここでは、リセット126はOR回路127によって行っているが、NOR回路でも良い。この場合、論理は反転するが乱数データであるので問題はない。もちろん、NAND回路やAND回路を用いても良いし、または、フィードバックさせている第3保持回路121cをリセット端子つきフリップフロップにして、フリップフロップをリセットする、などとしてもリセット信号126に適切な論理信号を用いれば同様に可能である。
この方法によれば、高雑音回路により増幅されたジッタ成分を確実にランダムデータとして取り込むことができる。すなわち、ランダムデータ生成の効率をより高くすることが可能になる。
図13は電圧制御のタイミングの様子を示したタイミングチャートである。第1クロック122のタイミングのたびに、制御電圧129の大きさを変えて、ランダムデータを取得する。制御電圧129を変化させる幅を小さくすればするほど、第1クロック122のタイミングと発振信号のタイミングが、ジッタの大きさの幅に入った信号を取り込む確率が高くなり、ランダムデータ生成の効率を上げることができる。なお、図13では、第1クロック122が4クロックで一区切り(リセット)としているが、これに限ったことではない。また、制御電圧129は一区切り後に、再度最も低い電圧レベルから変化を始めているが、2周目は最も高い電圧から低い電圧へ変化させるという方法もある。また、制御電圧129は階段状に変化させているが、連続的に変化させてもよい。第2クロック123のタイミングは、第1クロック122と同期をとらなくても、どのタイミングでも良いので一区切りの周期で定期的にデータを取得すれば、各データに均等にジッタ成分を取り込んだランダムデータを含ませることが可能である。リセット信号126は第2クロック信号123と同期させ、第2保持回路121bがデータを取り込んだ後、フィードバックされる排他的論理和128で保持されている一連のデータの履歴を消去する。
図14は、図12の回路における第1保持回路121aからの出力にチェック回路140を設けたものである。例えば、第1クロック122に対して、発振信号の立ち上がりタイミングを合わせようとした場合、第1クロック122が発振信号より早ければ第1保持回路121aの出力はLowばかりになり、第1クロック122が発振信号より遅ければ第1保持回路121aの出力はHighばかりになる。例えば、制御電圧129を発振周期がだんだん短くなるように制御すれば、発振信号の立ち上がりに対して、クロックタイミングは、早いタイミングから遅いタイミングへ移動する。すなわち、制御電圧129の変化範囲が正しければ、第1保持回路121aの出力は、Lowばかりの出力からHighばかりの出力へ変化していく。一連のデータ取得の間で、この変化が起きているかどうかをチェックすることで、ランダムデータを取り込んでいるかどうかのチェックが可能である。チェック回路140で上述の変化が検出できなければ、チェック回路140はランダムデータの取り込み誤りが発生したと判断し、エラー信号141を外部に出力する。
逆に、チェック回路140は上述の変化が起きた段階で、ランダムデータの取り込みが完了したと判断して、第2クロック123を立ち上げるという使用方法も可能である。また、チェック回路140で上述の変化が起きるように、制御電圧129の変化範囲をコントロールするようにフィードバックすることも可能である。
Lowが連続している状態から、Highが連続している状態へ変化しているかどうかは、例えば、カウンタ回路を用いることで検出できる。例えば、一連のデータを第1クロック122で10クロック分使って取得する場合、10クロック全てLowであれば、カウンタ出力はゼロであるし、全てHighであれば、カウンタ出力は10となる。例えば、カウンタ出力が3であれば、1クロック分はランダム出力と判断すれば、少なくとも2クロック分はHighが連続したと考えられる。また、カウンタ出力が7であれば、1クロック分はランダム出力と判断すれば、少なくとも2クロック分はLowが連続したと考えられる。許されるカウンタ出力の範囲を設定すると、それはチェック回路の閾値として用いることができる。例えば、一連のデータ取得クロック数nに対して、0.3n~0.7nを合格と判断するように設定できる。
以上は、一つの発振回路について説明を行なったが、同様の構成を持つ複数の発振回路を用意することも当然ながら可能である。複数の発振回路のそれぞれに保持回路を接続して、複数のランダムデータを生成することも可能であるし、または、図15のように複数の発振回路150a~150cの信号をセレクタ151で選択して保持回路152に入力することも可能である。さらに、複数の発振回路150a~150cのそれぞれの基本周波数を少しずつ変えることで、どれか一つでもランダムデータを生成するのに最適になるように複数の発振回路を用意すると、ランダムデータの生成効率を上げることができる。複数の発振器150a~150cそれぞれに保持回路を接続する場合は、複数の保持回路(図示しない)から出力されるランダムデータの全て、または一部の排他的論理和をとることで最終ランダムデータを生成すると、ジッタ成分を保持したデータを確実に取り込むことができる。また、複数の発振回路150a~150cをセレクタ151で選択する場合は、選択信号153をクロック154ごとに順に切り替えることで、いずれかの選択信号153の場合にジッタ成分を含んだランダムデータを取り込むことができるので、一連のデータの排他的論理和をとることで最終ランダムデータを生成すると、ジッタ成分を保持したデータを確実に取り込むことができる。または、保持回路出力をチェックして、ジッタ成分を取り込むことが可能な発振回路を常に選択するように制御することも可能である。一連のデータの排他的論理和を取る方法や、ランダムデータを取り込んだかどうかのチェック方法は、図12や図14の回路を使用することが可能である。
図16は、高雑音回路のその他の例である。これはNMOSFETのソース端子、ドレイン端子を、それぞれ入力、出力とし、ゲート端子にVSS<Vb<VDDとなる電圧Vbを印加した、パストランジスタ160である。図16はNMOSFETであるが、同様の構成はもちろんPMOSFETでも可能である。この高雑音回路は回路規模が小さい点で有利である。ただし、アナログ電圧Vbが必要になるので、システム中にVbを出力できる電源を備えていない場合、その電源回路を別に用意しておく必要がある。
なお、図3の高雑音回路は、ロジック電源のみで高抵抗出力が可能であり、追加回路が必要ないという点で有利である。
図17は、高雑音回路のその他の例である。NMOSFET170のソースを電源1に接続し、ドレインを抵抗に接続し、ゲートを入力に接続し、抵抗のもう一方の端子を電源2に接続する。電源1はVDDもしくはVSSのいずれかである。VDDおよびVSSのうち電源1でない方を電源2とする。NMOSFET170の基板電位は、基板バイアス電位を用いない場合VSSに接続される。同様の構成はNMOSFETの代わりにPMOSFETを用いて構成することもできる。なお、この回路構成では、出力信号が入力に対して反転する。
抵抗素子に高抵抗体を用いることで、大きなノイズを発生させることができる。例えば、ウェルの抵抗や、シリサイド化してないポリシリコンゲート、ソフトブレークダウンさせた絶縁膜、などを用いることができる。この回路では、追加電源は使用していないものの、ウェル抵抗やポリ抵抗は、一般にトランジスタに比べて同じ抵抗値でもサイズが大きくなる。また、ソフトブレークダウンさせた絶縁膜は、サイズも小さく、また、自発的にノイズを発生することが可能という点で有利であるが、ソフトブレークダウンを起こさせる回路や配線を、あらかじめ用意しておく必要がある。
高雑音回路は、アプリケーションによっては、図16や図17の回路を使用すると有利であるが、より一般的な使用状況を考えた場合、図3の構成を使用するのが有利である。
発振回路中に本発明の実施形態に係る高雑音回路を挿入すると、発振信号のジッタとして高雑音回路のノイズが現れるだけでなく、高雑音回路のノイズが消えずに発振のたびに蓄積されていく。従来のCMOS回路だけでなく、高雑音回路を用いることで、ランダムデータ生成のために必要な発振回数を少なくすることができ、乱数生成効率を上げることができる。乱数生成効率が上がれば、より少ない電力で必要なビット数の乱数を生成することが可能であり、半導体回路が低消費電力になる。
上記の説明は、すべて発振回路に高雑音回路を用いることを前提に説明を行ったが、発振回路はそのままで、クロック信号生成回路に高雑音回路を用いてジッタを乗せる構成や、発振信号とクロック信号の両方に高雑音回路を用いて、両者にジッタを乗せる構成も考えられる。
例えば、図18は、クロック信号180をいったんCMOSインバータ181で受け、その出力を、高雑音回路182に通し、もう一度インバータ183で反転して、保持回路184におけるランダムデータ186生成のためのクロック入力185とする例である。高雑音回路182の遅延が入るため、他の回路とクロックタイミングが変わることに注意が必要であるが、出力はランダムデータなので、出力タイミングがクロック180に対して毎回等遅延でずれるのは問題ない。また、クロック180の位相が半周期ずれても良いならば、図3の高雑音回路は、入力容量は他のCMOSインバータと同じであるので、もとのクロック信号をそのまま高雑音回路182で受けても良い。
高雑音回路を発振回路に挿入する場合で説明した他の回路構成、例えば、シュミットトリガを用いる構成や、電圧制御インバータを用いる構成も、同様に使用できる。
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
1a~1c…増幅器;
2…高雑音回路;
3…保持回路;
4…クロック;
5…ランダム(乱数)データ
2…高雑音回路;
3…保持回路;
4…クロック;
5…ランダム(乱数)データ
Claims (6)
- 複数の増幅器が直列接続され、隣接する増幅器間に端子を有する増幅器列と、前記増幅器列中の他の隣接する増幅器間に挿入され、前記増幅器列からの発振信号にジッタを生じさせるための雑音を発生する高雑音回路とを有する発振回路と、
前記端子に接続され、前記発振信号の発振周波数よりも低い周波数のクロック信号に従い前記発振信号を保持してこれを乱数として出力する保持回路と、
を具備することを特徴とする乱数生成回路。 - 前記高雑音回路は、
第1のゲート端子及び第1のソース端子及び第1のドレイン端子及び第1の基板端子を有し、前記第1のドレイン端子が高電位側電源に接続され、前記第1の基板端子が低電位側電源に接続されるNMOSトランジスタと、
第2のゲート端子及び第2のソース端子及び第2のドレイン端子及び第2の基板端子を有し、前記第2のドレイン端子が前記低電位側電源に接続され、該第2のゲート端子が前記第1のゲート端子に接続され、該第2のソース端子が前記第1のソース端子に接続され、前記第2の基板端子が前記高電位側電源に接続されるPMOSトランジスタと、
を具備することを特徴とする請求項1記載の回路。 - 前記増幅器はCMOSインバータであることを特徴とする請求項1記載の回路。
- 前記増幅器の少なくとも一つが、制御電圧に従って前記発振信号の遅延を制御するための制御端子を備えることを特徴とする請求項1記載の回路。
- 前記保持回路は、
前記発振信号の発振周波数よりも低い周波数の第1クロックに従い前記発振信号を保持して出力する第1保持回路と、
前記第1保持回路の出力に接続されるXOR回路と、
前記XOR回路の出力に接続され、前記発振信号の発振周波数よりも低い周波数の第2クロックに従い前記XOR回路からの出力を保持してこれを乱数として出力する第2保持回路と、
前記XOR回路の出力に接続され、前記第1クロックに従い前記XOR回路からの出力を保持して出力する第3保持回路と、
前記第3保持回路の出力とリセットの論理和を演算して出力するOR回路と、を具備し、
前記XOR回路は、前記OR回路の出力と前記第1保持回路の出力の排他的論理和を演算することを特徴とする請求項1記載の回路。 - 前記第1保持回路の出力に接続され、エラー信号を出力するチェック回路をさらに具備することを特徴とする請求項5記載の回路。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2009/066973 WO2011039846A1 (ja) | 2009-09-29 | 2009-09-29 | 乱数生成回路 |
JP2011533986A JP5259830B2 (ja) | 2009-09-29 | 2009-09-29 | 乱数生成回路 |
US13/428,150 US8930428B2 (en) | 2009-09-29 | 2012-03-23 | Random number generation circuit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2009/066973 WO2011039846A1 (ja) | 2009-09-29 | 2009-09-29 | 乱数生成回路 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/428,150 Continuation US8930428B2 (en) | 2009-09-29 | 2012-03-23 | Random number generation circuit |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2011039846A1 true WO2011039846A1 (ja) | 2011-04-07 |
Family
ID=43825703
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2009/066973 WO2011039846A1 (ja) | 2009-09-29 | 2009-09-29 | 乱数生成回路 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8930428B2 (ja) |
JP (1) | JP5259830B2 (ja) |
WO (1) | WO2011039846A1 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012137396A1 (ja) * | 2011-04-07 | 2012-10-11 | パナソニック株式会社 | 乱数生成装置 |
JP2018112861A (ja) * | 2017-01-11 | 2018-07-19 | キヤノン株式会社 | 乱数生成装置、集積回路 |
US10459692B2 (en) | 2016-03-16 | 2019-10-29 | Kabushiki Kaisha Toshiba | Random number generator |
JP2022034552A (ja) * | 2020-08-18 | 2022-03-03 | 新唐科技股▲ふん▼有限公司 | 分布乱数生成器、及び乱数生成の方法 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6034153B2 (ja) * | 2012-11-21 | 2016-11-30 | 株式会社東芝 | 乱数生成回路 |
DE102013213396A1 (de) * | 2013-07-09 | 2015-01-15 | Robert Bosch Gmbh | Verfahren zum Nachbehandeln einer Ausgabe einer Zufallsquelle eines Zufallsgenerators |
US9483640B2 (en) * | 2014-04-01 | 2016-11-01 | Georgetown University | System and method for deterring malicious network attacks |
JP2016166775A (ja) * | 2015-03-09 | 2016-09-15 | 富士通株式会社 | 半導体集積回路及び雑音測定方法 |
FR3051085B1 (fr) | 2016-05-04 | 2020-02-14 | Stmicroelectronics (Rousset) Sas | Structure de multiplexeur |
FR3051086B1 (fr) | 2016-05-04 | 2019-07-26 | Stmicroelectronics (Rousset) Sas | Circuit de comptage d'impulsions |
FR3051084B1 (fr) * | 2016-05-04 | 2019-08-02 | Stmicroelectronics (Rousset) Sas | Generateur de nombres d'oscillations |
KR102170279B1 (ko) * | 2016-11-09 | 2020-10-26 | 포항공과대학교 산학협력단 | 진성 난수 발생기 |
US11244079B2 (en) | 2019-09-18 | 2022-02-08 | International Business Machines Corporation | Data detection mitigation in printed circuit boards |
US11601120B2 (en) | 2021-02-03 | 2023-03-07 | Nuvoton Technology Corporation | Attack-resistant ring oscillators and random-number generators |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0805553A1 (en) * | 1996-05-02 | 1997-11-05 | STMicroelectronics S.r.l. | Voltage-controlled oscillator and phase lock circuit incorporating this oscillator |
JP2004288159A (ja) * | 2002-11-27 | 2004-10-14 | Stmicroelectronics Sa | 乱数発生器 |
JP2007520959A (ja) * | 2004-02-04 | 2007-07-26 | インフィネオン テクノロジーズ アクチエンゲゼルシャフト | ランダムビットストリームを提供するための装置 |
JP2008052545A (ja) * | 2006-08-25 | 2008-03-06 | Seiko Instruments Inc | 乱数発生回路 |
JP2008176698A (ja) * | 2007-01-22 | 2008-07-31 | Univ Of Electro-Communications | 乱数発生器及び乱数発生器の作成方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3604658B2 (ja) | 2001-09-26 | 2004-12-22 | 株式会社東芝 | 乱数生成回路 |
US7401108B2 (en) * | 2002-05-08 | 2008-07-15 | Avago Technologies General Ip Pte Ltd | Random noise generator and a method for generating random noise |
JP2005091108A (ja) * | 2003-09-16 | 2005-04-07 | Advantest Corp | ジッタ発生器及び試験装置 |
USRE44097E1 (en) * | 2005-07-22 | 2013-03-19 | Psigenics Corporation | Device and method for responding to influences of mind |
JP4784818B2 (ja) * | 2005-10-14 | 2011-10-05 | 独立行政法人産業技術総合研究所 | 四端子二重絶縁ゲート電界トランジスタを用いたcmos増幅器、それを用いた多入力cmos増幅器、高利得多入力cmos増幅器、高利得高安定多入力cmos増幅器および多入力cmos差動増幅器 |
JP4427581B2 (ja) | 2008-01-08 | 2010-03-10 | 株式会社東芝 | 乱数生成回路 |
JP5171315B2 (ja) | 2008-02-28 | 2013-03-27 | 株式会社東芝 | 乱数生成回路 |
US20110169579A1 (en) * | 2010-01-08 | 2011-07-14 | James Dodrill | Method and apparatus for increasing distribution of jitter within a random number generator |
-
2009
- 2009-09-29 JP JP2011533986A patent/JP5259830B2/ja not_active Expired - Fee Related
- 2009-09-29 WO PCT/JP2009/066973 patent/WO2011039846A1/ja active Application Filing
-
2012
- 2012-03-23 US US13/428,150 patent/US8930428B2/en not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0805553A1 (en) * | 1996-05-02 | 1997-11-05 | STMicroelectronics S.r.l. | Voltage-controlled oscillator and phase lock circuit incorporating this oscillator |
JP2004288159A (ja) * | 2002-11-27 | 2004-10-14 | Stmicroelectronics Sa | 乱数発生器 |
JP2007520959A (ja) * | 2004-02-04 | 2007-07-26 | インフィネオン テクノロジーズ アクチエンゲゼルシャフト | ランダムビットストリームを提供するための装置 |
JP2008052545A (ja) * | 2006-08-25 | 2008-03-06 | Seiko Instruments Inc | 乱数発生回路 |
JP2008176698A (ja) * | 2007-01-22 | 2008-07-31 | Univ Of Electro-Communications | 乱数発生器及び乱数発生器の作成方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012137396A1 (ja) * | 2011-04-07 | 2012-10-11 | パナソニック株式会社 | 乱数生成装置 |
US9252756B2 (en) | 2011-04-07 | 2016-02-02 | Panasonic Intellectual Property Management Co., Ltd. | Random number generating device |
US10459692B2 (en) | 2016-03-16 | 2019-10-29 | Kabushiki Kaisha Toshiba | Random number generator |
JP2018112861A (ja) * | 2017-01-11 | 2018-07-19 | キヤノン株式会社 | 乱数生成装置、集積回路 |
JP2022034552A (ja) * | 2020-08-18 | 2022-03-03 | 新唐科技股▲ふん▼有限公司 | 分布乱数生成器、及び乱数生成の方法 |
Also Published As
Publication number | Publication date |
---|---|
JPWO2011039846A1 (ja) | 2013-02-21 |
US8930428B2 (en) | 2015-01-06 |
US20120221616A1 (en) | 2012-08-30 |
JP5259830B2 (ja) | 2013-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5259830B2 (ja) | 乱数生成回路 | |
US7702705B2 (en) | Random number generation circuit | |
JP5600237B2 (ja) | 集積回路 | |
US8650233B2 (en) | Random number generator including a variable frequency oscillator | |
JP2004187200A (ja) | デューティ比補正回路 | |
US20070252583A1 (en) | Semiconductor integrated circuit device, measurement method therefore and measurement system for measuring AC characteristics thereof | |
US8310297B2 (en) | Semiconductor device | |
US11218141B2 (en) | Correction circuit | |
US7157930B2 (en) | Scan flip flop, semiconductor device, and production method of semiconductor device | |
US7870414B2 (en) | Clock tree circuit and semiconductor memory device using the same, and duty cycle correction method | |
US20110204949A1 (en) | Apparatus and method for external to internal clock generation | |
KR20170015909A (ko) | 메모리 인터페이스를 위한 프로그래밍가능한 전력 | |
US20170324402A1 (en) | Power efficient high speed latch circuits and systems | |
JP2008153983A (ja) | ラッチ回路およびデシリアライザ回路 | |
JP2008172574A (ja) | クロック位相シフト回路 | |
JP2011166232A (ja) | 位相検出回路およびpll回路 | |
US9166609B2 (en) | AD converter and receiving apparatus | |
JP5257122B2 (ja) | クロック生成回路 | |
KR102650331B1 (ko) | 물리적 복제 방지 기능을 구현하는 반도체 장치 | |
US7830282B2 (en) | Semiconductor device | |
KR100685604B1 (ko) | 지터 성분이 감소된 내부 클럭 신호를 발생하는 dll | |
KR100718991B1 (ko) | 다중전위를 사용하는 위상동기루프의 전위 변환기 | |
JP2006303786A (ja) | データ送受信回路 | |
CN117272879A (zh) | 一种全数字时钟生成电路及全数字时钟生成方法 | |
JP2004201348A (ja) | 半導体集積回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 09850037 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2011533986 Country of ref document: JP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 09850037 Country of ref document: EP Kind code of ref document: A1 |