乱数生成装置
【課題】回路規模を抑えつつ高速な乱数生成ビットレートが達成可能な乱数生成装置を提供する。
【解決手段】ノイズ信号と基準信号の差成分を増幅して増幅信号を出力する増幅器101と;増幅信号をそれぞれが持つ互いに異なる固有の閾値を基準に2値化することにより、複数の2値化信号を得る複数の2値化回路102−1乃至102−nと;複数の2値化信号の排他的論理和を演算して乱数のパルス列を出力する論理演算回路103と;を具備する。
【解決手段】ノイズ信号と基準信号の差成分を増幅して増幅信号を出力する増幅器101と;増幅信号をそれぞれが持つ互いに異なる固有の閾値を基準に2値化することにより、複数の2値化信号を得る複数の2値化回路102−1乃至102−nと;複数の2値化信号の排他的論理和を演算して乱数のパルス列を出力する論理演算回路103と;を具備する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、物理的な揺らぎを利用する乱数生成装置に関する。
【背景技術】
【0002】
インターネットに代表される情報通信技術の発達に伴い、情報セキュリティに対する要求が強くなっている。情報セキュリティの強度は、予測困難性を生み出す乱数の精度に依存している。また、科学技術計算やゲームの分野においても乱数は利用されている。
【0003】
従来、擬似乱数生成アルゴリズムに基づいて擬似的に生成される乱数列(算術乱数という)が知られている。算術乱数はアルゴリズムに基づいて生成されるため、理論的には予測可能であり、また内部の初期値(シード)が分かれば実際に生成される前に計算することもできる。一方、半導体集積回路や素子のノイズといった物理的な揺らぎを利用することにより、予測困難な乱数を生成する手法が提案されている。
【0004】
特許文献1では素子が発生するノイズを増幅器によって増幅した後、必要な周波数帯域でフィルタリングした信号をコンパレータによって基準電圧と比較後、サンプリングした2値化信号を利用して乱数を生成する装置が提案されている。特許文献1の乱数生成装置では、高い乱数生成ビットレートを実現しようとする場合にはノイズの高周波成分を利用する必要があるが、高周波の信号に対してはコンパレータとして用いる差動増幅器の増幅率(ゲイン)が低下し、2値化信号として十分な振幅が得られない。従って、高ゲインの回路を用いて振幅を確保する必要があるが、高ゲインの回路は一般に入力電圧範囲が狭い。ここで、半導体回路中で発生するノイズとして周波数に対して単調に振幅が減少するフリッカ(1/f)ノイズが知られているが、フリッカノイズはいわゆる白色雑音に比べてノイズ強度が強く、増幅器を小さく構成できる点で有利である。しかしながら、高い乱数生成ビットレートを実現するにはフリッカノイズの高周波成分を利用する必要があるものの、前述したようにフリッカノイズは高周波ほど振幅が小さく、低周波成分が支配的なノイズである。このため、前述したような入力電圧範囲が狭い高ゲイン回路を用いる場合、2値化信号はノイズの低周波成分の影響を強く受け、ノイズの高周波成分の揺らぎとは無関係に「H」または「L」に固定されるおそれがある。
【0005】
一方、特許文献2ではデジタル化の閾値電圧をずらした複数のコンパレータを用いることにより複数の2値化信号を得て、これら2値化信号に論理演算を施した乱数出力を得る乱数生成装置について提案されている。
【特許文献1】特開2003−131867号公報
【特許文献2】特開2001−100980号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
特許文献1の乱数生成装置では、例えばフリッカノイズの高周波成分を利用した乱数生成が困難なため、高速な乱数生成ビットレートを達成するには不向きである。また、特許文献2の乱数生成装置では、複数のコンパレータ及びこれらコンパレータに供給する基準電圧(デジタル化の閾値電圧)を複数生成するための回路が別途必要となり、回路規模が大きくなってしまう。
【0007】
本発明は、回路規模を抑えつつ高速な乱数生成ビットレートが達成可能な乱数生成装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明の一態様に係る乱数生成装置は、ノイズ信号と基準信号の差成分を増幅して増幅信号を出力する増幅器と;前記増幅信号をそれぞれが持つ互いに異なる固有の閾値を基準に2値化することにより、複数の2値化信号を得る複数の2値化回路と;前記複数の2値化信号の排他的論理和を演算して乱数のパルス列を出力する論理演算回路と;を具備する。
【発明の効果】
【0009】
本発明によれば、回路規模を抑えつつ高速な乱数生成ビットレートが達成可能な乱数生成装置を提供することができる。
【発明を実施するための最良の形態】
【0010】
以下、図面を参照して本発明の実施形態について説明する。
(第1の実施形態)
図1に示すように、本発明の第1の実施形態に係る乱数生成装置は差動増幅器101、複数の2値化回路102−1乃至102−n(nは2以上の自然数)及び論理演算回路103を有する。乱数生成装置は第1及び第2入力端子及び出力端子を持ち、第1及び第2入力端子に入力される2つの入力信号に基づいて生成したパルス列(乱数列)を出力端子より出力する。
【0011】
差動増幅器101は第1及び第2入力端子及び出力端子を持つ。差動増幅器101の第1及び第2入力端子は乱数生成装置の第1及び第2入力端子であり、乱数生成装置への2つの入力信号を夫々受ける。差動増幅器101は、第1入力端子に印加される第1入力信号の電圧V1と第2入力端子に印加される第2入力信号の電圧V2との差動成分(V1−V2)をゲインAにて増幅した電圧Vout=A(V1−V2)の出力信号を出力端子より出力する。
【0012】
本実施形態では、第1入力信号としてノイズ信号、第2入力信号として基準信号を入力するものとする。この結果、差動増幅器101の出力信号の振幅はランダムな揺らぎを持つ。ここで、具体的には差動増幅器101は例えば図2に示す2段構成の差動増幅器で実現される。
【0013】
図2に示す差動増幅器は、n型MOSトランジスタM1、M2、M5、M7、M9及びp型MOSトランジスタM3、M4、M6、M8によって構成される。p型MOSトランジスタM6及びn型MOSトランジスタM7はバイアス回路を形成し、n型MOSトランジスタM1、M2、M5及びp型MOSトランジスタM3、M4は差動増幅段(第1増幅段)を形成し、p型MOSトランジスタM8及びn型MOSトランジスタM9は第2増幅段を形成する。n型MOSトランジスタM1のゲート端子が第1入力端子、n型MOSトランジスタM2のゲート端子が第2入力端子として機能し、第1入力信号及び第2入力信号が夫々入力される。また、n型MOSトランジスタM9のドレイン端子が出力端子として機能し、増幅された出力信号が取り出される。
【0014】
また、差動増幅器101の出力信号は複数の2値化回路102−1乃至102−nに入力されるが、駆動能力を高めるために差動増幅器101を構成するMOSトランジスタのチャネル幅を、2値化回路102−1乃至102−nを構成するMOSトランジスタのチャネル幅より大きく構成するとよい。特に、差動増幅器101の出力段に相当するMOSトランジスタのチャネル幅を大きく構成する。
【0015】
具体的には2値化回路102−1乃至102−nの数がn個であるから、単純にこれらを構成するMOSトランジスタのチャネル幅のn倍程度の大きさを差動増幅器101の出力段を構成するMOSトランジスタのチャネル幅とする。また、実際にはn倍では十分過ぎるのでnの値によってはn/3またはn/4倍程度の大きさとしてもよい。また、逆に2値化回路102−1乃至102−nを構成する各トランジスタのチャネル幅を小さく(例えば1/n倍や、3/n倍または4/n倍)しても同様の効果が得られる。
【0016】
2値化回路102−1乃至102−nは、差動増幅器101の出力信号を夫々異なる固有の閾値を基準として2値化し、n個の2値化信号を出力する。ここで、固有の閾値とは、複数の2値化回路102−1乃至102−nの閾値は外部からの信号等によって制御されるものではなく、各回路の回路構成や素子選択によって決まる閾値である。2値化回路102−1乃至102−nは、例えば同一ノードに接続されるn個のインバータの論理反転閾値をずらすことにより実現できる。
【0017】
インバータの論理反転閾値をずらすには、具体的には例えばインバータを構成するp型MOSトランジスタやn型MOSトランジスタの製造条件を変えることによって閾値電圧Vthを調整したり、チャネル長やチャネル幅を変更したりする。また、図3(a)に示すようにCMOSインバータを構成するp型MOSトランジスタのソース端子と電源VDDとの間に抵抗性負荷(例えばダイオード接続したp型MOSトランジスタ)を挿入し、当該抵抗性負荷の値を調整してもよい。また、図3(c)に示すようにCMOSインバータを構成するn型MOSトランジスタのソース端子とグラウンドGNDとの間に抵抗性負荷(例えばダイオード接続したn型MOSトランジスタ)を挿入し、当該抵抗性負荷の値を調整してもよい。
【0018】
また、図5(a)に示すようにn型MOSトランジスタのゲート端子を入力端子とし、当該n型MOSトランジスタのソース端子とグラウンドGNDの間に抵抗性負荷(例えば調整用電圧源からバイアス電圧をゲート端子に印加されるp型MOSトランジスタ)を挿入し、当該抵抗性負荷の値を調整してもよい。また、図5(c)に示すようにp型MOSトランジスタのゲート端子を入力端子とし、当該p型MOSトランジスタのソース端子と電源VDDの間に抵抗性負荷(例えば調整用電圧源からバイアス電圧をゲート端子に印加されるn型MOSトランジスタ)を挿入し、当該抵抗性負荷の値を調整してもよい。尚、これら各抵抗性負荷の大きさを変えることにより閾値を変化させられる。
【0019】
以下、図3乃至図6を用いて異なる閾値を持つ3つの2値化回路102−1乃至102−3の回路構成の例について説明する。
図3(a)に示すように、第1閾値THaを持つ2値化回路102−1はp型MOSトランジスタM1a及びn型MOSトランジスタM2aで構成されるCMOSインバータにおいて、p型MOSトランジスタM1aのソース端子と1.8Vの電源VDDとの間に抵抗性負荷としてダイオード接続したp型MOSトランジスタMRaを挿入している。また、図3(b)に示すように、第2閾値THbを持つ2値化回路102−2は、p型MOSトランジスタM1b及びn型MOSトランジスタM2bによって構成されるCMOSインバータを用いる。また、図3(c)に示すように第3閾値THcを持つ2値化回路102−3はp型MOSトランジスタM1c及びn型MOSトランジスタM2cによって構成されるCMOSインバータにおいて、n型MOSトランジスタM2cのソース端子とグラウンドGNDの間に抵抗性負荷としてダイオード接続したn型MOSトランジスタMRcを挿入している。
【0020】
図4に示すように、図3(a)に示す2値化回路102−1の入出力特性はW1、図3(b)に示す2値化回路102−2の入出力特性はW2、図3(c)に示す2値化回路102−3の入出力特性はW3となる。従って、後述する論理演算回路103の行う論理演算がこれら2値化信号の排他的論理和であれば、例えば差動増幅器101からの入力が第1閾値THa未満あれば、2値化回路102−1乃至102−3の出力は全て「H」レベルとなり、乱数出力は「H」となる。また、差動増幅器101からの入力が第1閾値THa以上第2閾値THb未満であれば、2値化回路102−1の出力は「L」レベル、2値化回路102−2及び102−3の出力は「H」レベルとなり、乱数出力は「L」となる。また、差動増幅器101からの入力が第2閾値THb以上第3閾値THc未満であれば、2値化回路102−1及び102−2の出力は「L」レベル、2値化回路102−3の出力は「H」レベルとなり、乱数出力は「H」となる。また、差動増幅器101からの入力が第3閾値THc以上であれば、2値化回路102−1乃至102−3の出力は全て「L」レベルとなり、乱数出力は「L」となる。
【0021】
ここで、図3(a)及び図3(c)に示す回路では、図4中の入出力特性W1及びW3に示すように、低電圧側や高電圧側でフルスイングしていない(電源電圧1.8Vやグラウンド電圧0Vに達していない)。しかしながら、この問題はこれら各回路の後段に例えば図3(b)に示すような通常のCMOSインバータを接続することにより解決できる。
【0022】
一方、図5(a)に示すように、第1閾値THdを持つ2値化回路102−1はn型MOSトランジスタMd1のゲート端子を入力端子とし、n型MOSトランジスタMd1のドレイン端子と2.5Vの電源VDDの間に調整用電圧源から2.0Vのバイアス電圧Vbias1をゲート端子に印加されるp型MOSトランジスタMrdを挿入している。また、図5(b)に示すように、第2閾値THeを持つ2値化回路102−2は、p型MOSトランジスタM1e及びn型MOSトランジスタM2eによって構成されるCMOSインバータを用いる。また、図5(c)に示すように第3閾値THfを持つ2値化回路102−3はp型MOSトランジスタMf1のゲート端子を入力端子とし、p型MOSトランジスタのドレイン端子とグラウンドGNDの間に調整用電圧源から0.5Vのバイアス電圧Vbias2をゲート端子に印加されるn型MOSトランジスタMrfを挿入している。
【0023】
図6に示すように、図5(a)に示す2値化回路102−1の入出力特性はW4、図5(b)に示す2値化回路102−2の入出力特性はW5、図5(c)に示す2値化回路102−3の入出力特性はW6となる。従って、後述する論理演算回路103の行う論理演算がこれら2値化信号の排他的論理和であれば、例えば差動増幅器101からの入力が第1閾値THd未満あれば、2値化回路102−1乃至102−3の出力は全て「H」レベルとなり、乱数出力は「H」となる。また、差動増幅器101からの入力が第1閾値THd以上第2閾値THe未満であれば、2値化回路102−1の出力は「L」レベル、2値化回路102−2及び102−3の出力は「H」レベルとなり、乱数出力は「L」となる。また、差動増幅器101からの入力が第2閾値THe以上第3閾値THf未満であれば、2値化回路102−1及び102−2の出力は「L」レベル、2値化回路102−3の出力は「H」レベルとなり、乱数出力は「H」となる。また、差動増幅器101からの入力が第3閾値THf以上であれば、2値化回路102−1乃至102−3の出力は全て「L」レベルとなり、乱数出力は「L」となる。
【0024】
論理演算回路103はn個の入力端子と1つの出力端子を持つ。論理演算回路103の出力端子は乱数生成装置の出力端子であり、乱数生成装置が生成した乱数を出力する。論理演算回路103はn個の入力端子に入力された2値化信号を用いて論理演算を行い、出力信号としての乱数を得る。この1ビットの乱数によって出力乱数列が形成される。具体的には例えば論理演算回路103は、n個の2値化信号の排他的論理和を算出する。即ちn個の2値化信号に奇数個の「H」が存在すれば乱数として「H」を出力し、偶数個の「H」が存在すれば乱数として「L」を出力する。
【0025】
ここで、差動増幅器101の第1入力端子に入力したノイズ信号が大きく揺らいでいる場合には、差動増幅器101の出力信号が2値化回路102−1乃至102−nの全ての閾値を下回るか上回るかし、n個の2値化信号の全てが「L」または「H」となることがあり得る。このとき、nが偶数個であると、論理演算回路103の出力は「L」に固定されてしまう。一方、nが奇数個であれば論理演算回路103の出力は「L」とも「H」ともなり得る。従って、2値化回路102の個数は奇数個が望ましい。尚、論理演算回路103が行う論理演算は排他的論理和に限らず、n個の2値化信号から1個の乱数が得られるように否定、論理和及び論理積を適宜組み合わせた演算でもよい。
【0026】
以下、図7を用いて本実施形態に係る乱数生成装置における信号処理の一例について説明する。尚、以下の説明では複数の2値化回路102−1乃至102−nは3つの閾値TH1乃至TH3を夫々持つ3つの2値化回路102−1乃至102−3によって構成されているものとする。また、論理演算回路103が行う演算は排他的論理和とする。
【0027】
例えば図7(a)に示す信号が差動増幅器101に与えられたとする。図7(a)において実線がノイズ信号、破線が基準信号を夫々示している。差動増幅器101はこれら信号の差分を増幅し、図7(b)に示す増幅信号を得る。図7(c)下段に示すように、2値化回路102−1は図7(b)に示す増幅信号が閾値TH1以上の間は「H」レベルの信号を出力し、閾値TH1未満の間は「L」レベルの信号を出力する。また、図7(c)中段に示すように、2値化回路102−2は図7(b)に示す増幅信号が閾値TH2以上の間は「H」レベルの信号を出力し、閾値TH2未満の間は「L」レベルの信号を出力する。また、図7(c)の下段に示すように、2値化回路102−3は図7(b)に示す増幅信号が閾値TH3以上の間は「H」レベルの信号を出力し、閾値TH3未満の間は「L」レベルの信号を出力する。論理演算回路103は、図7(c)に示す各信号の排他的論理和を求め、図7(d)に示す信号を乱数として出力する。即ち、論理演算回路103は図7に示す3つの信号中に奇数個の「H」があれば「H」を出力し、偶数個の「H」があれば「L」を出力する。
【0028】
以上説明したように、本実施形態では異なる閾値を持つ複数の2値化回路102−1乃至102−nによって複数の2値化信号を得て、これら複数の2値化信号に論理演算を施すことにより乱数を得ている。従って、本実施形態に係る乱数生成装置によれば振幅の小さな、例えばフリッカノイズの高周波成分を乱数生成に利用できることとなり、高速な乱数生成ビットレートを達成できる。この効果を概念的に説明すると、図8に示すように従来の乱数生成装置が乱数生成に利用できる限界のノイズ強度n1よりも小さなノイズ強度n2であっても、本実施形態に係る乱数生成装置であれば乱数生成に利用できる。従ってフリッカノイズを利用する場合、従来の乱数生成装置が利用できる限界の周波数f1よりも高い周波数f2の周波数成分を乱数生成に利用でき、高速な乱数生成ビットレートを達成できる。また、コンパレータを複数用いる従来の乱数生成装置とは異なり、デジタル化のための閾値電圧を生成する必要が無いため安定に装置が動作し、しかも複数の閾値電圧を生成する回路が必要ないため回路規模も抑えられる。
【0029】
(第2の実施形態)
図9に示すように、本発明の第2の実施形態に係る乱数生成装置は、前述した第1の実施形態に係る乱数生成装置と同様の構成の乱数生成ユニット100と、乱数生成ユニット100前段に配置された入力信号生成部200を更に備えている。入力信号生成部200は入力バッファ201及び低域通過フィルタ(LPF)202を有する。
【0030】
入力バッファ201は、入力されたノイズ信号を乱数生成ユニット100の第1入力端子及びLPF202に渡す。入力バッファ201は後段の回路によるノイズ信号への影響を緩衝するため、後段の回路よりも大きな入力インピーダンスを持つ。
【0031】
LPF202は、入力バッファ201より渡されたノイズ信号から高周波成分を除去した減衰信号を乱数生成ユニット100の第2入力端子に渡す。LPF202のカットオフ周波数は、例えば所望の乱数生成ビットレートに基づいて定める。
【0032】
乱数生成ユニット100は、第1入力端子に入力されたノイズ信号と、第2入力端子に入力されたフィルタリング済みのノイズ信号に基づいて生成した乱数列を出力端子より出力する
以上説明したように、本実施形態に係る乱数生成装置ではノイズ信号及びLPF202によって当該ノイズ信号から高周波成分を除去した信号を用いて乱数を生成している。従って両信号の差分のうち低周波成分はほぼゼロとなり、主として高周波成分に残存するノイズが乱数生成に利用されるため、所望の乱数生成ビットレートにて精度良く乱数を生成できる。
【0033】
(第3の実施形態)
図10に示すように、本発明の第3の実施形態に係る乱数生成装置は、前述した第1の実施形態に係る乱数生成装置と同様の構成の乱数生成ユニット100と、乱数生成ユニット100の前段に配置された入力信号生成部300を備えている。入力信号生成部300は入力バッファ301、参照電圧源302及び高域通過フィルタ(HPF)303を有する。
【0034】
入力バッファ301は、入力されたノイズ信号をHPF303に渡す。入力バッファ301は後段の回路によるノイズ信号への影響を緩衝するため、後段の回路よりも大きな入力インピーダンスを持つ。
【0035】
参照電圧源302は、参照電圧Vrefを発生する電圧源である。参照電圧Vrefは参照信号として乱数生成ユニット100の第2入力端子に入力されると共に、HPF303の通過帯域を制御する。
【0036】
HPF303は参照電圧Vrefの周波数に基づいて決まる周波数特性を持ち、入力バッファ301より渡されたノイズ信号をフィルタリングし、低周波成分を除去する。尚、HPF302の代わりにBPFを用いて低周波成分を除去してもよい。フィルタリングされたノイズ信号は、乱数生成ユニット100の第1入力端子に入力される。
【0037】
乱数生成ユニット100は、第1入力端子に入力されたフィルタリング済みのノイズ信号と、第2入力端子に入力された参照信号に基づいて生成した乱数列を出力端子より出力する。
【0038】
以上説明したように、本実施形態に係る乱数生成装置ではHPF303によってノイズ信号から低周波成分が除去され、主に高周波成分が残っている。従って、乱数を生成する際にノイズ信号の低周波成分の影響を受けずに、ノイズ信号の高周波成分を利用して所望のビットレートにて精度よく乱数を生成できる。
【0039】
(第4の実施形態)
図11に示すように、本発明の第4の実施形態に係る乱数生成装置は、前述した第1の実施形態に係る乱数生成装置と同様の構成の乱数生成ユニット100と、乱数生成ユニット100の後段に配置された乱数値補正部400を備えている。乱数値補正部400はクロックジェネレータ401及びカウンタ402を有する。
【0040】
乱数生成ユニット100は生成した乱数パルス列をカウンタ402のクロック(CK)端子に入力する。クロックジェネレータ401は一定周期のクロックパルスを生成し、カウンタ402のクロックイネーブル(CE)端子に入力する。
【0041】
カウンタ402はCE端子に入力されるクロックジェネレータ401からのクロックパルスが「H」レベルの間、CK端子に入力されるの「H」レベルの乱数生成ユニット100の出力パルス数を計数する。カウンタ402は、計数したパルス数の下位数ビットを補正された乱数として出力するが、乱数としての精度は下位ビットほど良い(偏りが少ない)ため下位1ビットを乱数として出力するのが望ましい。この場合、カウンタ402は1ビットカウンタで構成できる。
【0042】
以上説明したように、本実施形態に係る乱数生成装置ではクロックジェネレータ401で生成されるクロックパルスが「H」レベルの間に、前述した第1の実施形態に係る乱数生成ユニット100の生成する「H」レベルのクロックパルス数をカウンタ402によって計数する。そして、カウンタ402のカウント内容のうち下位数ビットを補正された乱数として出力している。従って、乱数生成ユニット100の生成する乱数出力に偏りが出現したとしても当該偏りを補正し、精度良い乱数生成が可能となる。
【0043】
(第5の実施形態)
図12に示すように、本発明の第5の実施形態に係る乱数生成装置は、前述した第1の実施形態に係る乱数生成ユニット100の後段に乱数値補正部500を更に備えている。乱数値補正部500は分周器501、クロックジェネレータ502及びカウンタ503を有する。
【0044】
乱数生成ユニット100は生成した乱数パルス列を分周器501に入力する。分周器501は入力された乱数パルス列を分周し、分周後の乱数パルス列をカウンタ503のCE端子に入力する。クロックジェネレータ502は一定周期のクロックパルスを生成し、カウンタ503のCK端子に入力する。尚、クロックジェネレータ502の発生するパルスの周期は、分周器501の出力パルスの周期よりも短くする必要がある。尚、クロックジェネレータ502の発生するパルスの周期よりも、乱数生成ユニット100が生成する乱数パルス列の周期が長い場合には分周器501を設けずに、乱数パルス列をカウンタ503のCE端子に直接入力してよい。
【0045】
カウンタ503はCE端子に入力される分周器501の出力パルスが「H」レベルの間、CK端子に入力されるクロックジェネレータ502の生成するクロックパルスの数を計数する。カウンタ503は、計数したクロックパルス数の下位数ビットを補正された乱数として出力するが、乱数としての精度は下位ビットほど良い(偏りが少ない)ため下位1ビットを乱数として出力するのが望ましい。この場合、カウンタ503は1ビットカウンタで構成できる。
【0046】
以上説明したように、本実施形態に係る乱数生成装置では前述した第1の実施形態に係る乱数生成ユニット100の生成する乱数出力を分周器501によって分周し、当該分周信号が「H」レベルの間にクロックジェネレータ502で生成されるクロックパルス数をカウンタ503によって計数する。そして、カウンタ503のカウント内容のうち下位数ビットを補正された乱数として出力している。従って、乱数生成ユニット100の生成する乱数出力に偏りが出現したとしても当該偏りを補正し、精度良い乱数生成が可能となる。
【0047】
なお、この発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また上記実施形態に開示されている複数の構成要素を適宜組み合わせることによって種々の発明を形成できる。また例えば、実施形態に示される全構成要素からいくつかの構成要素を削除した構成も考えられる。さらに、異なる実施形態に記載した構成要素を適宜組み合わせてもよい。
【0048】
その一例として例えば、上記各実施形態では様々なトランジスタレベルの具体的な回路構成を示したが、そのトランジスタ構成まで限定する趣旨ではなく、同様の機能を持つ回路であれば同様の効果が得られる。
【0049】
その他、この発明の要旨を逸脱しない範囲で種々の変形を施しても同様に実施可能であることはいうまでもない。
【図面の簡単な説明】
【0050】
【図1】本発明の第1の実施形態に係る乱数生成装置を示すブロック図。
【図2】図1に示す差動増幅器101の回路構成の一例を示す図。
【図3】図1に示す複数の2値化回路102−1乃至102−nのn=3の回路構成の一例を示す図であって、(a)閾値THaを持つ2値化回路102−1の回路構成、(b)閾値THbを持つ2値化回路102−2の回路構成、(c)閾値THcを持つ2値化回路102−3の回路構成を夫々示す。
【図4】図3に示す3つの2値化回路102−1乃至102−3の入出力特性を示すグラフ図。
【図5】図1に示す複数の2値化回路102−1乃至102−nのn=3の回路構成の一例を示す図であって、(a)閾値THdを持つ2値化回路102−1の回路構成、(b)閾値THeを持つ2値化回路102−2の回路構成、(c)閾値THfを持つ2値化回路102−3の回路構成を夫々示す。
【図6】図5に示す3つの2値化回路102−1乃至102−3の入出力特性を示すグラフ図。
【図7】(a)図1に示す乱数生成装置に入力される信号の波形の一例を示すグラフ図。(b)(a)に示す信号が、図1に示す差動増幅器101によって増幅された信号の一例を示すグラフ図。(c)(b)に示す信号が、図1に示す複数の2値化回路102−1乃至102−nによってデジタル化された信号の一例を示すグラフ図。(d)(c)に示す信号が、図1に示す論理演算回路102によって論理演算された信号の一例を示すグラフ図。
【図8】周波数に対するフリッカ雑音のスペクトル密度を示すグラフ図。
【図9】本発明の第2の実施形態に係る乱数生成装置を示すブロック図。
【図10】本発明の第3の実施形態に係る乱数生成装置を示すブロック図。
【図11】本発明の第4の実施形態に係る乱数生成装置を示すブロック図。
【図12】本発明の第5の実施形態に係る乱数生成装置を示すブロック図。
【符号の説明】
【0051】
100・・・乱数生成ユニット
101・・・差動増幅器
102・・・2値化回路
103・・・論理演算回路
200・・・入力信号生成部
201・・・入力バッファ
202・・・低域通過型フィルタ
300・・・入力信号生成部
301・・・入力バッファ
302・・・高域通過型フィルタ
303・・・参照電圧源
400・・・乱数値補正部
401・・・クロックジェネレータ
402・・・カウンタ
500・・・乱数値補正部
501・・・分周器
502・・・クロックジェネレータ
503・・・カウンタ
【技術分野】
【0001】
本発明は、物理的な揺らぎを利用する乱数生成装置に関する。
【背景技術】
【0002】
インターネットに代表される情報通信技術の発達に伴い、情報セキュリティに対する要求が強くなっている。情報セキュリティの強度は、予測困難性を生み出す乱数の精度に依存している。また、科学技術計算やゲームの分野においても乱数は利用されている。
【0003】
従来、擬似乱数生成アルゴリズムに基づいて擬似的に生成される乱数列(算術乱数という)が知られている。算術乱数はアルゴリズムに基づいて生成されるため、理論的には予測可能であり、また内部の初期値(シード)が分かれば実際に生成される前に計算することもできる。一方、半導体集積回路や素子のノイズといった物理的な揺らぎを利用することにより、予測困難な乱数を生成する手法が提案されている。
【0004】
特許文献1では素子が発生するノイズを増幅器によって増幅した後、必要な周波数帯域でフィルタリングした信号をコンパレータによって基準電圧と比較後、サンプリングした2値化信号を利用して乱数を生成する装置が提案されている。特許文献1の乱数生成装置では、高い乱数生成ビットレートを実現しようとする場合にはノイズの高周波成分を利用する必要があるが、高周波の信号に対してはコンパレータとして用いる差動増幅器の増幅率(ゲイン)が低下し、2値化信号として十分な振幅が得られない。従って、高ゲインの回路を用いて振幅を確保する必要があるが、高ゲインの回路は一般に入力電圧範囲が狭い。ここで、半導体回路中で発生するノイズとして周波数に対して単調に振幅が減少するフリッカ(1/f)ノイズが知られているが、フリッカノイズはいわゆる白色雑音に比べてノイズ強度が強く、増幅器を小さく構成できる点で有利である。しかしながら、高い乱数生成ビットレートを実現するにはフリッカノイズの高周波成分を利用する必要があるものの、前述したようにフリッカノイズは高周波ほど振幅が小さく、低周波成分が支配的なノイズである。このため、前述したような入力電圧範囲が狭い高ゲイン回路を用いる場合、2値化信号はノイズの低周波成分の影響を強く受け、ノイズの高周波成分の揺らぎとは無関係に「H」または「L」に固定されるおそれがある。
【0005】
一方、特許文献2ではデジタル化の閾値電圧をずらした複数のコンパレータを用いることにより複数の2値化信号を得て、これら2値化信号に論理演算を施した乱数出力を得る乱数生成装置について提案されている。
【特許文献1】特開2003−131867号公報
【特許文献2】特開2001−100980号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
特許文献1の乱数生成装置では、例えばフリッカノイズの高周波成分を利用した乱数生成が困難なため、高速な乱数生成ビットレートを達成するには不向きである。また、特許文献2の乱数生成装置では、複数のコンパレータ及びこれらコンパレータに供給する基準電圧(デジタル化の閾値電圧)を複数生成するための回路が別途必要となり、回路規模が大きくなってしまう。
【0007】
本発明は、回路規模を抑えつつ高速な乱数生成ビットレートが達成可能な乱数生成装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明の一態様に係る乱数生成装置は、ノイズ信号と基準信号の差成分を増幅して増幅信号を出力する増幅器と;前記増幅信号をそれぞれが持つ互いに異なる固有の閾値を基準に2値化することにより、複数の2値化信号を得る複数の2値化回路と;前記複数の2値化信号の排他的論理和を演算して乱数のパルス列を出力する論理演算回路と;を具備する。
【発明の効果】
【0009】
本発明によれば、回路規模を抑えつつ高速な乱数生成ビットレートが達成可能な乱数生成装置を提供することができる。
【発明を実施するための最良の形態】
【0010】
以下、図面を参照して本発明の実施形態について説明する。
(第1の実施形態)
図1に示すように、本発明の第1の実施形態に係る乱数生成装置は差動増幅器101、複数の2値化回路102−1乃至102−n(nは2以上の自然数)及び論理演算回路103を有する。乱数生成装置は第1及び第2入力端子及び出力端子を持ち、第1及び第2入力端子に入力される2つの入力信号に基づいて生成したパルス列(乱数列)を出力端子より出力する。
【0011】
差動増幅器101は第1及び第2入力端子及び出力端子を持つ。差動増幅器101の第1及び第2入力端子は乱数生成装置の第1及び第2入力端子であり、乱数生成装置への2つの入力信号を夫々受ける。差動増幅器101は、第1入力端子に印加される第1入力信号の電圧V1と第2入力端子に印加される第2入力信号の電圧V2との差動成分(V1−V2)をゲインAにて増幅した電圧Vout=A(V1−V2)の出力信号を出力端子より出力する。
【0012】
本実施形態では、第1入力信号としてノイズ信号、第2入力信号として基準信号を入力するものとする。この結果、差動増幅器101の出力信号の振幅はランダムな揺らぎを持つ。ここで、具体的には差動増幅器101は例えば図2に示す2段構成の差動増幅器で実現される。
【0013】
図2に示す差動増幅器は、n型MOSトランジスタM1、M2、M5、M7、M9及びp型MOSトランジスタM3、M4、M6、M8によって構成される。p型MOSトランジスタM6及びn型MOSトランジスタM7はバイアス回路を形成し、n型MOSトランジスタM1、M2、M5及びp型MOSトランジスタM3、M4は差動増幅段(第1増幅段)を形成し、p型MOSトランジスタM8及びn型MOSトランジスタM9は第2増幅段を形成する。n型MOSトランジスタM1のゲート端子が第1入力端子、n型MOSトランジスタM2のゲート端子が第2入力端子として機能し、第1入力信号及び第2入力信号が夫々入力される。また、n型MOSトランジスタM9のドレイン端子が出力端子として機能し、増幅された出力信号が取り出される。
【0014】
また、差動増幅器101の出力信号は複数の2値化回路102−1乃至102−nに入力されるが、駆動能力を高めるために差動増幅器101を構成するMOSトランジスタのチャネル幅を、2値化回路102−1乃至102−nを構成するMOSトランジスタのチャネル幅より大きく構成するとよい。特に、差動増幅器101の出力段に相当するMOSトランジスタのチャネル幅を大きく構成する。
【0015】
具体的には2値化回路102−1乃至102−nの数がn個であるから、単純にこれらを構成するMOSトランジスタのチャネル幅のn倍程度の大きさを差動増幅器101の出力段を構成するMOSトランジスタのチャネル幅とする。また、実際にはn倍では十分過ぎるのでnの値によってはn/3またはn/4倍程度の大きさとしてもよい。また、逆に2値化回路102−1乃至102−nを構成する各トランジスタのチャネル幅を小さく(例えば1/n倍や、3/n倍または4/n倍)しても同様の効果が得られる。
【0016】
2値化回路102−1乃至102−nは、差動増幅器101の出力信号を夫々異なる固有の閾値を基準として2値化し、n個の2値化信号を出力する。ここで、固有の閾値とは、複数の2値化回路102−1乃至102−nの閾値は外部からの信号等によって制御されるものではなく、各回路の回路構成や素子選択によって決まる閾値である。2値化回路102−1乃至102−nは、例えば同一ノードに接続されるn個のインバータの論理反転閾値をずらすことにより実現できる。
【0017】
インバータの論理反転閾値をずらすには、具体的には例えばインバータを構成するp型MOSトランジスタやn型MOSトランジスタの製造条件を変えることによって閾値電圧Vthを調整したり、チャネル長やチャネル幅を変更したりする。また、図3(a)に示すようにCMOSインバータを構成するp型MOSトランジスタのソース端子と電源VDDとの間に抵抗性負荷(例えばダイオード接続したp型MOSトランジスタ)を挿入し、当該抵抗性負荷の値を調整してもよい。また、図3(c)に示すようにCMOSインバータを構成するn型MOSトランジスタのソース端子とグラウンドGNDとの間に抵抗性負荷(例えばダイオード接続したn型MOSトランジスタ)を挿入し、当該抵抗性負荷の値を調整してもよい。
【0018】
また、図5(a)に示すようにn型MOSトランジスタのゲート端子を入力端子とし、当該n型MOSトランジスタのソース端子とグラウンドGNDの間に抵抗性負荷(例えば調整用電圧源からバイアス電圧をゲート端子に印加されるp型MOSトランジスタ)を挿入し、当該抵抗性負荷の値を調整してもよい。また、図5(c)に示すようにp型MOSトランジスタのゲート端子を入力端子とし、当該p型MOSトランジスタのソース端子と電源VDDの間に抵抗性負荷(例えば調整用電圧源からバイアス電圧をゲート端子に印加されるn型MOSトランジスタ)を挿入し、当該抵抗性負荷の値を調整してもよい。尚、これら各抵抗性負荷の大きさを変えることにより閾値を変化させられる。
【0019】
以下、図3乃至図6を用いて異なる閾値を持つ3つの2値化回路102−1乃至102−3の回路構成の例について説明する。
図3(a)に示すように、第1閾値THaを持つ2値化回路102−1はp型MOSトランジスタM1a及びn型MOSトランジスタM2aで構成されるCMOSインバータにおいて、p型MOSトランジスタM1aのソース端子と1.8Vの電源VDDとの間に抵抗性負荷としてダイオード接続したp型MOSトランジスタMRaを挿入している。また、図3(b)に示すように、第2閾値THbを持つ2値化回路102−2は、p型MOSトランジスタM1b及びn型MOSトランジスタM2bによって構成されるCMOSインバータを用いる。また、図3(c)に示すように第3閾値THcを持つ2値化回路102−3はp型MOSトランジスタM1c及びn型MOSトランジスタM2cによって構成されるCMOSインバータにおいて、n型MOSトランジスタM2cのソース端子とグラウンドGNDの間に抵抗性負荷としてダイオード接続したn型MOSトランジスタMRcを挿入している。
【0020】
図4に示すように、図3(a)に示す2値化回路102−1の入出力特性はW1、図3(b)に示す2値化回路102−2の入出力特性はW2、図3(c)に示す2値化回路102−3の入出力特性はW3となる。従って、後述する論理演算回路103の行う論理演算がこれら2値化信号の排他的論理和であれば、例えば差動増幅器101からの入力が第1閾値THa未満あれば、2値化回路102−1乃至102−3の出力は全て「H」レベルとなり、乱数出力は「H」となる。また、差動増幅器101からの入力が第1閾値THa以上第2閾値THb未満であれば、2値化回路102−1の出力は「L」レベル、2値化回路102−2及び102−3の出力は「H」レベルとなり、乱数出力は「L」となる。また、差動増幅器101からの入力が第2閾値THb以上第3閾値THc未満であれば、2値化回路102−1及び102−2の出力は「L」レベル、2値化回路102−3の出力は「H」レベルとなり、乱数出力は「H」となる。また、差動増幅器101からの入力が第3閾値THc以上であれば、2値化回路102−1乃至102−3の出力は全て「L」レベルとなり、乱数出力は「L」となる。
【0021】
ここで、図3(a)及び図3(c)に示す回路では、図4中の入出力特性W1及びW3に示すように、低電圧側や高電圧側でフルスイングしていない(電源電圧1.8Vやグラウンド電圧0Vに達していない)。しかしながら、この問題はこれら各回路の後段に例えば図3(b)に示すような通常のCMOSインバータを接続することにより解決できる。
【0022】
一方、図5(a)に示すように、第1閾値THdを持つ2値化回路102−1はn型MOSトランジスタMd1のゲート端子を入力端子とし、n型MOSトランジスタMd1のドレイン端子と2.5Vの電源VDDの間に調整用電圧源から2.0Vのバイアス電圧Vbias1をゲート端子に印加されるp型MOSトランジスタMrdを挿入している。また、図5(b)に示すように、第2閾値THeを持つ2値化回路102−2は、p型MOSトランジスタM1e及びn型MOSトランジスタM2eによって構成されるCMOSインバータを用いる。また、図5(c)に示すように第3閾値THfを持つ2値化回路102−3はp型MOSトランジスタMf1のゲート端子を入力端子とし、p型MOSトランジスタのドレイン端子とグラウンドGNDの間に調整用電圧源から0.5Vのバイアス電圧Vbias2をゲート端子に印加されるn型MOSトランジスタMrfを挿入している。
【0023】
図6に示すように、図5(a)に示す2値化回路102−1の入出力特性はW4、図5(b)に示す2値化回路102−2の入出力特性はW5、図5(c)に示す2値化回路102−3の入出力特性はW6となる。従って、後述する論理演算回路103の行う論理演算がこれら2値化信号の排他的論理和であれば、例えば差動増幅器101からの入力が第1閾値THd未満あれば、2値化回路102−1乃至102−3の出力は全て「H」レベルとなり、乱数出力は「H」となる。また、差動増幅器101からの入力が第1閾値THd以上第2閾値THe未満であれば、2値化回路102−1の出力は「L」レベル、2値化回路102−2及び102−3の出力は「H」レベルとなり、乱数出力は「L」となる。また、差動増幅器101からの入力が第2閾値THe以上第3閾値THf未満であれば、2値化回路102−1及び102−2の出力は「L」レベル、2値化回路102−3の出力は「H」レベルとなり、乱数出力は「H」となる。また、差動増幅器101からの入力が第3閾値THf以上であれば、2値化回路102−1乃至102−3の出力は全て「L」レベルとなり、乱数出力は「L」となる。
【0024】
論理演算回路103はn個の入力端子と1つの出力端子を持つ。論理演算回路103の出力端子は乱数生成装置の出力端子であり、乱数生成装置が生成した乱数を出力する。論理演算回路103はn個の入力端子に入力された2値化信号を用いて論理演算を行い、出力信号としての乱数を得る。この1ビットの乱数によって出力乱数列が形成される。具体的には例えば論理演算回路103は、n個の2値化信号の排他的論理和を算出する。即ちn個の2値化信号に奇数個の「H」が存在すれば乱数として「H」を出力し、偶数個の「H」が存在すれば乱数として「L」を出力する。
【0025】
ここで、差動増幅器101の第1入力端子に入力したノイズ信号が大きく揺らいでいる場合には、差動増幅器101の出力信号が2値化回路102−1乃至102−nの全ての閾値を下回るか上回るかし、n個の2値化信号の全てが「L」または「H」となることがあり得る。このとき、nが偶数個であると、論理演算回路103の出力は「L」に固定されてしまう。一方、nが奇数個であれば論理演算回路103の出力は「L」とも「H」ともなり得る。従って、2値化回路102の個数は奇数個が望ましい。尚、論理演算回路103が行う論理演算は排他的論理和に限らず、n個の2値化信号から1個の乱数が得られるように否定、論理和及び論理積を適宜組み合わせた演算でもよい。
【0026】
以下、図7を用いて本実施形態に係る乱数生成装置における信号処理の一例について説明する。尚、以下の説明では複数の2値化回路102−1乃至102−nは3つの閾値TH1乃至TH3を夫々持つ3つの2値化回路102−1乃至102−3によって構成されているものとする。また、論理演算回路103が行う演算は排他的論理和とする。
【0027】
例えば図7(a)に示す信号が差動増幅器101に与えられたとする。図7(a)において実線がノイズ信号、破線が基準信号を夫々示している。差動増幅器101はこれら信号の差分を増幅し、図7(b)に示す増幅信号を得る。図7(c)下段に示すように、2値化回路102−1は図7(b)に示す増幅信号が閾値TH1以上の間は「H」レベルの信号を出力し、閾値TH1未満の間は「L」レベルの信号を出力する。また、図7(c)中段に示すように、2値化回路102−2は図7(b)に示す増幅信号が閾値TH2以上の間は「H」レベルの信号を出力し、閾値TH2未満の間は「L」レベルの信号を出力する。また、図7(c)の下段に示すように、2値化回路102−3は図7(b)に示す増幅信号が閾値TH3以上の間は「H」レベルの信号を出力し、閾値TH3未満の間は「L」レベルの信号を出力する。論理演算回路103は、図7(c)に示す各信号の排他的論理和を求め、図7(d)に示す信号を乱数として出力する。即ち、論理演算回路103は図7に示す3つの信号中に奇数個の「H」があれば「H」を出力し、偶数個の「H」があれば「L」を出力する。
【0028】
以上説明したように、本実施形態では異なる閾値を持つ複数の2値化回路102−1乃至102−nによって複数の2値化信号を得て、これら複数の2値化信号に論理演算を施すことにより乱数を得ている。従って、本実施形態に係る乱数生成装置によれば振幅の小さな、例えばフリッカノイズの高周波成分を乱数生成に利用できることとなり、高速な乱数生成ビットレートを達成できる。この効果を概念的に説明すると、図8に示すように従来の乱数生成装置が乱数生成に利用できる限界のノイズ強度n1よりも小さなノイズ強度n2であっても、本実施形態に係る乱数生成装置であれば乱数生成に利用できる。従ってフリッカノイズを利用する場合、従来の乱数生成装置が利用できる限界の周波数f1よりも高い周波数f2の周波数成分を乱数生成に利用でき、高速な乱数生成ビットレートを達成できる。また、コンパレータを複数用いる従来の乱数生成装置とは異なり、デジタル化のための閾値電圧を生成する必要が無いため安定に装置が動作し、しかも複数の閾値電圧を生成する回路が必要ないため回路規模も抑えられる。
【0029】
(第2の実施形態)
図9に示すように、本発明の第2の実施形態に係る乱数生成装置は、前述した第1の実施形態に係る乱数生成装置と同様の構成の乱数生成ユニット100と、乱数生成ユニット100前段に配置された入力信号生成部200を更に備えている。入力信号生成部200は入力バッファ201及び低域通過フィルタ(LPF)202を有する。
【0030】
入力バッファ201は、入力されたノイズ信号を乱数生成ユニット100の第1入力端子及びLPF202に渡す。入力バッファ201は後段の回路によるノイズ信号への影響を緩衝するため、後段の回路よりも大きな入力インピーダンスを持つ。
【0031】
LPF202は、入力バッファ201より渡されたノイズ信号から高周波成分を除去した減衰信号を乱数生成ユニット100の第2入力端子に渡す。LPF202のカットオフ周波数は、例えば所望の乱数生成ビットレートに基づいて定める。
【0032】
乱数生成ユニット100は、第1入力端子に入力されたノイズ信号と、第2入力端子に入力されたフィルタリング済みのノイズ信号に基づいて生成した乱数列を出力端子より出力する
以上説明したように、本実施形態に係る乱数生成装置ではノイズ信号及びLPF202によって当該ノイズ信号から高周波成分を除去した信号を用いて乱数を生成している。従って両信号の差分のうち低周波成分はほぼゼロとなり、主として高周波成分に残存するノイズが乱数生成に利用されるため、所望の乱数生成ビットレートにて精度良く乱数を生成できる。
【0033】
(第3の実施形態)
図10に示すように、本発明の第3の実施形態に係る乱数生成装置は、前述した第1の実施形態に係る乱数生成装置と同様の構成の乱数生成ユニット100と、乱数生成ユニット100の前段に配置された入力信号生成部300を備えている。入力信号生成部300は入力バッファ301、参照電圧源302及び高域通過フィルタ(HPF)303を有する。
【0034】
入力バッファ301は、入力されたノイズ信号をHPF303に渡す。入力バッファ301は後段の回路によるノイズ信号への影響を緩衝するため、後段の回路よりも大きな入力インピーダンスを持つ。
【0035】
参照電圧源302は、参照電圧Vrefを発生する電圧源である。参照電圧Vrefは参照信号として乱数生成ユニット100の第2入力端子に入力されると共に、HPF303の通過帯域を制御する。
【0036】
HPF303は参照電圧Vrefの周波数に基づいて決まる周波数特性を持ち、入力バッファ301より渡されたノイズ信号をフィルタリングし、低周波成分を除去する。尚、HPF302の代わりにBPFを用いて低周波成分を除去してもよい。フィルタリングされたノイズ信号は、乱数生成ユニット100の第1入力端子に入力される。
【0037】
乱数生成ユニット100は、第1入力端子に入力されたフィルタリング済みのノイズ信号と、第2入力端子に入力された参照信号に基づいて生成した乱数列を出力端子より出力する。
【0038】
以上説明したように、本実施形態に係る乱数生成装置ではHPF303によってノイズ信号から低周波成分が除去され、主に高周波成分が残っている。従って、乱数を生成する際にノイズ信号の低周波成分の影響を受けずに、ノイズ信号の高周波成分を利用して所望のビットレートにて精度よく乱数を生成できる。
【0039】
(第4の実施形態)
図11に示すように、本発明の第4の実施形態に係る乱数生成装置は、前述した第1の実施形態に係る乱数生成装置と同様の構成の乱数生成ユニット100と、乱数生成ユニット100の後段に配置された乱数値補正部400を備えている。乱数値補正部400はクロックジェネレータ401及びカウンタ402を有する。
【0040】
乱数生成ユニット100は生成した乱数パルス列をカウンタ402のクロック(CK)端子に入力する。クロックジェネレータ401は一定周期のクロックパルスを生成し、カウンタ402のクロックイネーブル(CE)端子に入力する。
【0041】
カウンタ402はCE端子に入力されるクロックジェネレータ401からのクロックパルスが「H」レベルの間、CK端子に入力されるの「H」レベルの乱数生成ユニット100の出力パルス数を計数する。カウンタ402は、計数したパルス数の下位数ビットを補正された乱数として出力するが、乱数としての精度は下位ビットほど良い(偏りが少ない)ため下位1ビットを乱数として出力するのが望ましい。この場合、カウンタ402は1ビットカウンタで構成できる。
【0042】
以上説明したように、本実施形態に係る乱数生成装置ではクロックジェネレータ401で生成されるクロックパルスが「H」レベルの間に、前述した第1の実施形態に係る乱数生成ユニット100の生成する「H」レベルのクロックパルス数をカウンタ402によって計数する。そして、カウンタ402のカウント内容のうち下位数ビットを補正された乱数として出力している。従って、乱数生成ユニット100の生成する乱数出力に偏りが出現したとしても当該偏りを補正し、精度良い乱数生成が可能となる。
【0043】
(第5の実施形態)
図12に示すように、本発明の第5の実施形態に係る乱数生成装置は、前述した第1の実施形態に係る乱数生成ユニット100の後段に乱数値補正部500を更に備えている。乱数値補正部500は分周器501、クロックジェネレータ502及びカウンタ503を有する。
【0044】
乱数生成ユニット100は生成した乱数パルス列を分周器501に入力する。分周器501は入力された乱数パルス列を分周し、分周後の乱数パルス列をカウンタ503のCE端子に入力する。クロックジェネレータ502は一定周期のクロックパルスを生成し、カウンタ503のCK端子に入力する。尚、クロックジェネレータ502の発生するパルスの周期は、分周器501の出力パルスの周期よりも短くする必要がある。尚、クロックジェネレータ502の発生するパルスの周期よりも、乱数生成ユニット100が生成する乱数パルス列の周期が長い場合には分周器501を設けずに、乱数パルス列をカウンタ503のCE端子に直接入力してよい。
【0045】
カウンタ503はCE端子に入力される分周器501の出力パルスが「H」レベルの間、CK端子に入力されるクロックジェネレータ502の生成するクロックパルスの数を計数する。カウンタ503は、計数したクロックパルス数の下位数ビットを補正された乱数として出力するが、乱数としての精度は下位ビットほど良い(偏りが少ない)ため下位1ビットを乱数として出力するのが望ましい。この場合、カウンタ503は1ビットカウンタで構成できる。
【0046】
以上説明したように、本実施形態に係る乱数生成装置では前述した第1の実施形態に係る乱数生成ユニット100の生成する乱数出力を分周器501によって分周し、当該分周信号が「H」レベルの間にクロックジェネレータ502で生成されるクロックパルス数をカウンタ503によって計数する。そして、カウンタ503のカウント内容のうち下位数ビットを補正された乱数として出力している。従って、乱数生成ユニット100の生成する乱数出力に偏りが出現したとしても当該偏りを補正し、精度良い乱数生成が可能となる。
【0047】
なお、この発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また上記実施形態に開示されている複数の構成要素を適宜組み合わせることによって種々の発明を形成できる。また例えば、実施形態に示される全構成要素からいくつかの構成要素を削除した構成も考えられる。さらに、異なる実施形態に記載した構成要素を適宜組み合わせてもよい。
【0048】
その一例として例えば、上記各実施形態では様々なトランジスタレベルの具体的な回路構成を示したが、そのトランジスタ構成まで限定する趣旨ではなく、同様の機能を持つ回路であれば同様の効果が得られる。
【0049】
その他、この発明の要旨を逸脱しない範囲で種々の変形を施しても同様に実施可能であることはいうまでもない。
【図面の簡単な説明】
【0050】
【図1】本発明の第1の実施形態に係る乱数生成装置を示すブロック図。
【図2】図1に示す差動増幅器101の回路構成の一例を示す図。
【図3】図1に示す複数の2値化回路102−1乃至102−nのn=3の回路構成の一例を示す図であって、(a)閾値THaを持つ2値化回路102−1の回路構成、(b)閾値THbを持つ2値化回路102−2の回路構成、(c)閾値THcを持つ2値化回路102−3の回路構成を夫々示す。
【図4】図3に示す3つの2値化回路102−1乃至102−3の入出力特性を示すグラフ図。
【図5】図1に示す複数の2値化回路102−1乃至102−nのn=3の回路構成の一例を示す図であって、(a)閾値THdを持つ2値化回路102−1の回路構成、(b)閾値THeを持つ2値化回路102−2の回路構成、(c)閾値THfを持つ2値化回路102−3の回路構成を夫々示す。
【図6】図5に示す3つの2値化回路102−1乃至102−3の入出力特性を示すグラフ図。
【図7】(a)図1に示す乱数生成装置に入力される信号の波形の一例を示すグラフ図。(b)(a)に示す信号が、図1に示す差動増幅器101によって増幅された信号の一例を示すグラフ図。(c)(b)に示す信号が、図1に示す複数の2値化回路102−1乃至102−nによってデジタル化された信号の一例を示すグラフ図。(d)(c)に示す信号が、図1に示す論理演算回路102によって論理演算された信号の一例を示すグラフ図。
【図8】周波数に対するフリッカ雑音のスペクトル密度を示すグラフ図。
【図9】本発明の第2の実施形態に係る乱数生成装置を示すブロック図。
【図10】本発明の第3の実施形態に係る乱数生成装置を示すブロック図。
【図11】本発明の第4の実施形態に係る乱数生成装置を示すブロック図。
【図12】本発明の第5の実施形態に係る乱数生成装置を示すブロック図。
【符号の説明】
【0051】
100・・・乱数生成ユニット
101・・・差動増幅器
102・・・2値化回路
103・・・論理演算回路
200・・・入力信号生成部
201・・・入力バッファ
202・・・低域通過型フィルタ
300・・・入力信号生成部
301・・・入力バッファ
302・・・高域通過型フィルタ
303・・・参照電圧源
400・・・乱数値補正部
401・・・クロックジェネレータ
402・・・カウンタ
500・・・乱数値補正部
501・・・分周器
502・・・クロックジェネレータ
503・・・カウンタ
【特許請求の範囲】
【請求項1】
ノイズ信号と基準信号の差成分を増幅して増幅信号を出力する増幅器と、
前記増幅信号をそれぞれが持つ互いに異なる固有の閾値を基準に2値化することにより、複数の2値化信号を得る複数の2値化回路と、
前記複数の2値化信号の排他的論理和を演算して乱数のパルス列を出力する論理演算回路と
を具備することを特徴とする乱数生成装置。
【請求項2】
前記ノイズ信号は、周波数が高いほどノイズ強度が減少する特性を有することを特徴とする請求項1記載の乱数生成装置。
【請求項3】
前記2値化回路の数は奇数個であることを特徴とする請求項1または2のいずれか1項記載の乱数生成装置。
【請求項4】
前記複数の2値化回路は、CMOSインバータをそれぞれ含み、当該CMOSインバータを構成するMOSトランジスタのサイズ及び製造条件の少なくとも一方が前記複数の2値化回路間で異なることにより前記異なる閾値を有することを特徴とする請求項1乃至3のいずれか1項記載の乱数生成装置。
【請求項5】
前記複数の2値化回路は、前記増幅信号を受ける第1ゲート端子、第1の電源に接続される第1ソース端子、及び前記2値化信号が取り出される第1ドレイン端子を有する第1導電型MOSトランジスタと、前記増幅信号を受ける第2ゲート端子、第2の電源に接続される第2ソース端子、及び前記2値化信号が取り出される第2ドレイン端子を有する第2導電型MOSトランジスタと、前記第1ソース端子と前記第1の電源との間または前記第2ソース端子と前記第2の電源との間に抵抗性負荷とを有し、前記抵抗性負荷の値が前記複数の2値化回路間で異なることにより前記異なる閾値を持つことを特徴とする請求項1乃至3のいずれか1項記載の乱数生成装置。
【請求項6】
前記複数の2値化回路は、前記増幅信号を受けるゲート端子、第1電源に接続されるソース端子、及び前記2値化信号が取り出されるドレイン端子を有するMOSトランジスタと、前記ドレイン端子と第2の電源との間に挿入される抵抗性負荷とをそれぞれ有し、前記抵抗性負荷の値が前記複数の2値化回路間で異なることにより前記異なる閾値を持つことを特徴とする請求項1乃至3のいずれか1項記載の乱数生成装置。
【請求項7】
前記基準信号は前記ノイズ信号から高周波成分を除去した信号であることを特徴とする請求項1乃至6のいずれか1項記載の乱数生成装置。
【請求項8】
前記ノイズ信号は予め低周波成分が除去されていることを特徴とする請求項1乃6のいずれか1項記載の乱数生成装置。
【請求項9】
クロックパルスを生成するクロックジェネレータと、
前記クロックパルスが入力されるクロックイネーブル端子と、前記パルス列が入力されるクロック端子とを有し、前記クロックパルスの各パルス期間に前記クロック端子に入力される前記パルス列を計数し、計数値の下位1ビットを乱数列として出力するカウンタと、
を更に具備することを特徴とする請求項1乃至8のいずれか1項記載の乱数生成装置。
【請求項10】
クロックパルスを生成するクロックジェネレータと、
前記パルス列を分周して分周パルスを出力する分周器と、
前記クロックパルスが入力されるクロック端子と、前記分周パルスが入力されるクロックイネーブル端子とを有し、前記分周パルスの各パルス期間に前記クロック端子に入力される前記クロックパルスを計数し、計数値の下位1ビットを乱数列として出力するカウンタと、
を更に具備することを特徴とする請求項1乃至8のいずれか1項記載の乱数生成装置。
【請求項1】
ノイズ信号と基準信号の差成分を増幅して増幅信号を出力する増幅器と、
前記増幅信号をそれぞれが持つ互いに異なる固有の閾値を基準に2値化することにより、複数の2値化信号を得る複数の2値化回路と、
前記複数の2値化信号の排他的論理和を演算して乱数のパルス列を出力する論理演算回路と
を具備することを特徴とする乱数生成装置。
【請求項2】
前記ノイズ信号は、周波数が高いほどノイズ強度が減少する特性を有することを特徴とする請求項1記載の乱数生成装置。
【請求項3】
前記2値化回路の数は奇数個であることを特徴とする請求項1または2のいずれか1項記載の乱数生成装置。
【請求項4】
前記複数の2値化回路は、CMOSインバータをそれぞれ含み、当該CMOSインバータを構成するMOSトランジスタのサイズ及び製造条件の少なくとも一方が前記複数の2値化回路間で異なることにより前記異なる閾値を有することを特徴とする請求項1乃至3のいずれか1項記載の乱数生成装置。
【請求項5】
前記複数の2値化回路は、前記増幅信号を受ける第1ゲート端子、第1の電源に接続される第1ソース端子、及び前記2値化信号が取り出される第1ドレイン端子を有する第1導電型MOSトランジスタと、前記増幅信号を受ける第2ゲート端子、第2の電源に接続される第2ソース端子、及び前記2値化信号が取り出される第2ドレイン端子を有する第2導電型MOSトランジスタと、前記第1ソース端子と前記第1の電源との間または前記第2ソース端子と前記第2の電源との間に抵抗性負荷とを有し、前記抵抗性負荷の値が前記複数の2値化回路間で異なることにより前記異なる閾値を持つことを特徴とする請求項1乃至3のいずれか1項記載の乱数生成装置。
【請求項6】
前記複数の2値化回路は、前記増幅信号を受けるゲート端子、第1電源に接続されるソース端子、及び前記2値化信号が取り出されるドレイン端子を有するMOSトランジスタと、前記ドレイン端子と第2の電源との間に挿入される抵抗性負荷とをそれぞれ有し、前記抵抗性負荷の値が前記複数の2値化回路間で異なることにより前記異なる閾値を持つことを特徴とする請求項1乃至3のいずれか1項記載の乱数生成装置。
【請求項7】
前記基準信号は前記ノイズ信号から高周波成分を除去した信号であることを特徴とする請求項1乃至6のいずれか1項記載の乱数生成装置。
【請求項8】
前記ノイズ信号は予め低周波成分が除去されていることを特徴とする請求項1乃6のいずれか1項記載の乱数生成装置。
【請求項9】
クロックパルスを生成するクロックジェネレータと、
前記クロックパルスが入力されるクロックイネーブル端子と、前記パルス列が入力されるクロック端子とを有し、前記クロックパルスの各パルス期間に前記クロック端子に入力される前記パルス列を計数し、計数値の下位1ビットを乱数列として出力するカウンタと、
を更に具備することを特徴とする請求項1乃至8のいずれか1項記載の乱数生成装置。
【請求項10】
クロックパルスを生成するクロックジェネレータと、
前記パルス列を分周して分周パルスを出力する分周器と、
前記クロックパルスが入力されるクロック端子と、前記分周パルスが入力されるクロックイネーブル端子とを有し、前記分周パルスの各パルス期間に前記クロック端子に入力される前記クロックパルスを計数し、計数値の下位1ビットを乱数列として出力するカウンタと、
を更に具備することを特徴とする請求項1乃至8のいずれか1項記載の乱数生成装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2008−242832(P2008−242832A)
【公開日】平成20年10月9日(2008.10.9)
【国際特許分類】
【出願番号】特願2007−82584(P2007−82584)
【出願日】平成19年3月27日(2007.3.27)
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成17年度独立行政法人情報通信研究機構「高度情報セキュリティに向けた真性乱数生成用集積回路に関わる研究開発」委託研究、産業活力再生特別措置法第30条の適用を受ける特許出願
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
【公開日】平成20年10月9日(2008.10.9)
【国際特許分類】
【出願日】平成19年3月27日(2007.3.27)
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成17年度独立行政法人情報通信研究機構「高度情報セキュリティに向けた真性乱数生成用集積回路に関わる研究開発」委託研究、産業活力再生特別措置法第30条の適用を受ける特許出願
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
[ Back to top ]