JP2012155388A - ゆらぎ増幅装置及び真性乱数生成器 - Google Patents
ゆらぎ増幅装置及び真性乱数生成器 Download PDFInfo
- Publication number
- JP2012155388A JP2012155388A JP2011011819A JP2011011819A JP2012155388A JP 2012155388 A JP2012155388 A JP 2012155388A JP 2011011819 A JP2011011819 A JP 2011011819A JP 2011011819 A JP2011011819 A JP 2011011819A JP 2012155388 A JP2012155388 A JP 2012155388A
- Authority
- JP
- Japan
- Prior art keywords
- fluctuation
- signal
- input
- delay
- random number
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Amplifiers (AREA)
Abstract
【課題】真性乱数生成器の実装面積あたりのスループットを悪化させずに、生成される乱数品質を向上させることが可能な、オシレータのゆらぎ増幅装置を提供する。
【解決手段】本発明に係る、2つの入力信号間の時間の変動であるゆらぎを増幅するゆらぎ増幅装置100は、2つの入力信号が入力され、2つの入力信号とは異なる外部信号である制御信号によって定まる第1の遅延時間だけ2つの入力信号の各々を遅延させて出力する可変バッファ101と、可変バッファ101へ制御信号を出力することで、第1の遅延時間を制御する遅延制御部102とを備える。
【選択図】図4
【解決手段】本発明に係る、2つの入力信号間の時間の変動であるゆらぎを増幅するゆらぎ増幅装置100は、2つの入力信号が入力され、2つの入力信号とは異なる外部信号である制御信号によって定まる第1の遅延時間だけ2つの入力信号の各々を遅延させて出力する可変バッファ101と、可変バッファ101へ制御信号を出力することで、第1の遅延時間を制御する遅延制御部102とを備える。
【選択図】図4
Description
本発明は、ゆらぎ増幅装置に関し、特に、真性乱数の生成に用いられるオシレータのゆらぎ増幅装置に関する。
乱数の生成技術は、高いセキュリティ性能を有する暗号の実現に不可欠な基盤技術として重要である。
一般に、乱数は、(1)疑似乱数、又は、(2)真性乱数に分類される。
疑似乱数は、計算機で実行可能な疑似乱数の生成アルゴリズム(例えば、非特許文献1を参照)に初期値を与えることで、確定的に算出される周期的な数列である。よって、疑似乱数は再現性を有し、再現性が重要となるコンピュータシミュレーション等において、広く利用されている。
しかし、再現性を有することは、セキュリティ分野への適用においては好ましくない。例えば、暗号化された通信を傍受する第三者は、通信の送信装置が使用する疑似乱数の生成アルゴリズムと、送信装置の内部状態を知ることで、以後、全ての疑似乱数を知ることができ、暗号化された通信を復号できてしまう。
そこで、高いセキュリティを実現するためには、再現性を有しない乱数列が必要とされる。こうした真性乱数を得る手段として、通常、専用のハードウェア(以後、真性乱数生成器とよぶ)が使用される。
真性乱数生成器としては、ユーザーのマウスの動作を用いるもの(非特許文献2を参照)、アメリシウムの崩壊を利用するもの(非特許文献3参照)、オシレータの周期ゆらぎを用いるもの(非特許文献4参照)等が知られている。
この中で、オシレータの周期ゆらぎを用いるもの(非特許文献4;以後、オシレータサンプリング方式という)は、高速と低速の2つのオシレータを使用し、内部雑音により生じるオシレータの周期ゆらぎを利用して乱数列を生成する。この方式は、実装が容易であり、実装面積を小さくでき、かつ、消費電力が小さいという利点が知られている。こうした利点は、例えば、真性乱数生成器をモバイル端末等へ実装する際には不可欠となる。
M. Matsumoto and T. Nishimura, "Mersenne twister: a 623-dimensionally equidistributed uniform pseudorandom number generator", ACM transaction on modeling and computer simulation, Jan., 1998, vol. 8, no. 1, p. 3-30
Y. Hu, X. Liao, K. Wong and Q. Zhou, "A true random number generator based on mouse movement and chaotic cryptography", Chaos, Solitons & Fractals, Oct. 2007
M. Rohe, "A true-random generator based on radioactive decay", security and cryptography research group, saarlanduniversity, 2003
B. Jun and P. Kocher, "The Intel random number generator", cryptography research inc., white paper prepared for Intel corporation, Apr., 1999
しかしながら、従来、オシレータサンプリング方式により生成される乱数の統計的なランダム性(すなわち、乱数の品質)は低く、実用に耐えうる品質の乱数を生成させるためには、実装面積あたりの乱数生成のスループットを悪化させざるを得ないという課題があった。
具体的には、オシレータサンプリング方式により生成される乱数の品質を向上させるためには、(1)真性乱数生成器により生成された乱数列に対して、後から情報処理を施すことで乱数品質を向上させる、(2)オシレータの周期ゆらぎを大きくすることで真性乱数生成器により生成される乱数の品質を向上させる、という2つの手段が考えられる。
また、オシレータの周期ゆらぎを大きくするためには、(2−a)オシレータの出力側に長いインバータチェーンを追加する、(2−b)オシレータの出力側に分周期を追加する、という2つの具体的手段が知られている。
しかし、(1)の乱数列に後処理を施す手段では、利用可能な品質の乱数を生成しようとすると、乱数生成のスループットが著しく(数分の一にまで)低下する。
また、(2−a)のインバータチェーンを用いる手段では、乱数生成のスループットは低下しないものの、周期ゆらぎをA倍にするために必要なオシレータの(すなわち、真性乱数生成器の)実装面積は、Ο(A2)倍となる。
さらにまた、(2−b)の分周期を用いる手段では、オシレータの実装面積は、ほぼ変わらないものの、周期ゆらぎをA倍にするためには、乱数生成のスループットが、Ο(1/A2)となる。
したがって、いずれの手段を用いたとしても、実装面積あたりの乱数生成のスループットは、著しく悪化してしまう。その結果、実用上必要な品質及び乱数生成のスループットを満たそうとすると、真性乱数生成器の消費電力が増える。その結果、例えば、前述したようなモバイル端末等の小型の電子機器への真性乱数生成器の組み込みが困難となる。
そこで、本発明は、真性乱数生成器の実装面積あたりのスループットを悪化させずに、生成される乱数品質を向上させることが可能な、オシレータのゆらぎ増幅装置を提供することを目的とする。
本発明のある局面に係るゆらぎ増幅装置は、2つの入力信号間の時間の変動であるゆらぎを増幅するゆらぎ増幅装置であって、2つの入力信号が入力され、2つの入力信号とは異なる外部信号である制御信号によって定まる第1の遅延時間だけ2つの入力信号の各々を遅延させて出力する可変バッファと、可変バッファへ、制御信号を出力することで、第1の遅延時間を制御する遅延制御部とを備える。
この構成によると、入力信号が可変バッファに入力されてから出力されるまでの時間が入力信号ごとに異なる。その結果、ゆらぎ増幅装置から出力される入力信号のゆらぎは、ゆらぎ増幅装置へ入力される以前と比較して、大きくなる。また、この構成では分周器を使用しないため、乱数生成のスループットが悪化せず、かつ、長いインバータチェーンを使用しないため、実装面積が抑えることができる。したがって、真性乱数生成器の実装面積あたりのスループットを悪化させずに、生成される乱数品質を向上させることが可能な、オシレータのゆらぎ増幅装置を提供できる。
具体的には、遅延制御部は、2つの入力信号間の時間が短いほど、2つの入力信号のうち後の入力信号の、可変バッファによる第1の遅延時間が、より小さくなるように制御信号を出力してもよい。
これにより、ゆらぎの影響で定刻(すなわち、仮に入力信号にゆらぎがないとした場合に、入力信号が入力されるべき時刻)よりも早く可変バッファに入力された入力信号は、より早く出力され、定刻よりも遅く可変バッファに入力された入力信号は、より遅く出力される。その結果、入力信号のゆらぎが増幅されて出力される。
また、遅延制御部は、2つの入力信号のうち先の入力信号を取得してから、事前に定められた第2の遅延時間が経過した後に、制御信号を出力し、第2の遅延時間は、2つの入力信号のうち後の入力信号が可変バッファに入力されて以後、出力されるまでの間に、先の入力信号に対応する制御信号が出力されるように定められるとしてもよい。
また、可変バッファは、第1の動作モードと、第1の動作モードよりも遅延時間の大きい第2の動作モードとを有し、制御信号を取得すると、第1の動作モードから第2の動作モードへと動作モードを切り替えるとしてもよい。
この構成によると、より早く入力された入力信号ほど、より長い時間、遅延時間の小さい第1の動作モードで動作する可変バッファ内を伝播される。逆に、より遅く入力された入力信号ほど、より長い時間、遅延時間の大きい第2の動作モードで動作する可変バッファ内を伝播される。よって、ゆらぎの影響で定刻よりも早く可変バッファに入力された入力信号は、より早く出力され、定刻よりも遅く可変バッファに入力された入力信号は、より遅く出力される。その結果、入力信号のゆらぎが増幅されて出力される。
具体的には、可変バッファは、直列に接続された複数の遅延素子を備え、複数の遅延素子の各々は、可変バッファが(A)第1の動作モードの場合には、入力信号を第3の遅延時間だけ遅延させて伝播させ、(B)第2の動作モードの場合には、入力信号を第3の遅延時間よりも大きい第4の遅延時間だけ遅延させて伝播させるとしてもよい。
より具体的には、可変バッファは、第1の動作モードでは、第2の動作モードよりも高い電源電圧を複数の遅延素子の各々に印加して動作させてもよい。
本発明の他の局面に係る真性乱数生成器は、高速発振信号を出力する高速オシレータと、高速発振信号よりも周期の長い発振信号である低速発振信号を出力する低速オシレータと、低速発振信号をクロックとして使用することで高速発振信号の値をサンプリングし、サンプリングされた値と、事前に定められた閾値との大小を比較することで、サンプリングされた値を2値化し、2値化された値を出力するサンプル装置とを備える。
この構成によると、オシレータが出力する発振信号のゆらぎを実装面積の小さいゆらぎ増幅装置を用いて増幅することで、真性乱数生成器の実装面積あたりのスループットを悪化させずに、生成される乱数品質を向上させることができる。
なお、本発明は、このようなゆらぎ増幅装置として実現できるだけでなく、ゆらぎ増幅装置に含まれる特徴的な手段をステップとするゆらぎ増幅方法として実現したり、そのような特徴的なステップをコンピュータに実行させるプログラムとして実現したりすることもできる。そして、そのようなプログラムは、CD−ROM(Compact Disc Read Only Memory)等の記録媒体及びインターネット等の伝送媒体を介して流通させることができるのはいうまでもない。
さらに、本発明は、このようなゆらぎ増幅装置の機能の一部又は全てを実現する半導体集積回路(LSI)として実現したり、このようなゆらぎ増幅装置を含む真性乱数生成器として実現したりできる。
以上より、本発明は、真性乱数生成器の実装面積あたりのスループットを悪化させずに、生成される乱数品質を向上させることが可能な、オシレータのゆらぎ増幅装置を提供できる。
まず、図1及び図2を用いて、オシレータサンプリング方式を用いた乱数の生成方法を説明する。
図1は、関連技術に係る真性乱数生成器900の概念図である。真性乱数生成器900は、オシレータサンプリング方式を用いて、乱数を生成する。
図1に示されるように、真性乱数生成器900は、高速オシレータ110と、低速オシレータ120と、サンプル装置130とを備える。
高速オシレータ110は、後述する低速オシレータよりも高速な(すなわち、周期の短い)発振信号を出力する発振回路である。
低速オシレータ120は、高速オシレータ110よりも低速な(すなわち、周期の長い)発振信号を出力する発振回路である。
サンプル装置130は、高速オシレータ110から出力される高速発振信号111の値を、低速オシレータ120から出力される低速発振信号121のタイミングでサンプリングし、その結果を、例えば、1又は0として2値化したものを乱数として順次出力する。
図2は、同時刻における高速発振信号111の波形と低速発振信号121の波形とを比較する概念図である。図2に示されるように、周期信号である高速発振信号111及び低速発振信号121は、Low又はHighのいずれかの値を交互にとる。
オシレータから出力される発振信号の周期には、ゆらぎが存在する。ここで、ゆらぎとは、発振信号に含まれる「連続する」2つの入力信号間の時間の変動をいう。
なお、以後、「発振信号」という用語は、連続した複数の信号の総称として用いる。一方、「入力信号」という用語は、発振信号に含まれる個々の入力信号の意味で用いる。
なお、ここでいう「連続する」2つの入力信号とは、必ずしも発振信号において連続して出現する2つの入力信号である必要はない。例えば、発振信号から奇数個又は偶数個ごとにサンプリングされた入力信号のうち隣接する信号でもよく、複数の入力信号に演算処理を施すことで新たに生成される信号のうち隣接する信号でもよい。すなわち、オシレータから出力される発振信号に対して、事前に定められた任意の処理を加えることで一意に特定される信号列において連続する状態を、以後「連続する」と記載する。
また、発振信号に含まれる「入力信号」は、例えば、発振信号における立ち上がり又は立ち下がりをもって特定されてもよい。また、発振信号の値が事前に定められた閾値以上変動することをもって「入力信号」が特定されてもよい。本実施の形態においては、発振信号における立ち上がり部分を、入力信号として特定する。このとき、図2を参照して、時刻t0で立ち上がった入力信号551が、次に立ち上がる時刻は、一定の範囲で不確定にばらつく。例えば、時刻t1で再度立ち上がった場合、連続する入力信号である入力信号551から入力信号552までの時間はT1である。一方、時刻t2で再度立ち上がった場合、入力信号551から入力信号552までの時間はT2である。このT1とT2との差が、ゆらぎである。
また、ゆらぎは、発振回路の内外に常に存在するノイズ(例えば、熱雑音、ショット雑音、外部雑音等)に起因する。よって、高速発振信号111もゆらぎを有する。しかし、高速発振信号111のゆらぎは等価的に低速発振信号121のゆらぎに換算して考えることができる。よって、以後説明のため、特に断らない場合には、低速発振信号121に含まれるゆらぎのみに着目して説明する。
再度、図2を参照して、低速発振信号121が時刻t1で立ち上がった場合、対応する高速発振信号111の値はLowである。このとき、サンプル装置130は0を出力する。また、低速発振信号121が時刻t2で立ち上がった場合、対応する高速発振信号111の値はHighである。このとき、サンプル装置130は1を出力する。
このように、低速発振信号121がゆらぎを有するため、サンプル装置130の出力結果が変化する。これが、オシレータサンプリング方式を用いた乱数の生成原理である。
ここで、低速発振信号121に含まれるゆらぎが小さいと、サンプル装置130は、ほぼ等間隔クロックで高速発振信号111をサンプルすることになり、サンプル装置130から出力される乱数の一様性が低下し、乱数の品質が低下する。
以下、真性乱数生成器の実装面積あたりのスループットを悪化させずに、生成される乱数品質を向上させることが可能な、本発明に係るゆらぎ増幅装置100について説明する。
図3は、本発明の実施の形態に係るゆらぎ増幅装置100を備える、真性乱数生成器200の構成を示すブロック図である。真性乱数生成器200は、オシレータサンプリング方式により真性乱数を生成する。
図3に示されるように、真性乱数生成器200は、ゆらぎ増幅装置100と、乱数変換装置190とを備える。
ゆらぎ増幅装置100は、2つの入力信号間の時間の変動であるゆらぎを増幅する。具体的には、低速オシレータ120が出力する低速発振信号121を取得し、低速発振信号121に含まれるゆらぎを増幅させた信号である増幅発振信号122を出力する。詳細は後述する。
乱数変換装置190は、ゆらぎ増幅装置100から出力されるゆらぎを乱数に変換して出力する。乱数変換装置190は、高速オシレータ110と、低速オシレータ120と、サンプル装置130とを備える。
高速オシレータ110は、高速発振信号111を出力するオシレータである。高速オシレータ110は、任意の発振回路を使用することにより実現できるが、例えば、水晶振動子等の固体振動子を用いた発振回路、コンデンサと抵抗を用いたCR発振回路、コイルとコンデンサを用いたLC発振回路等、リングオシレータなどで実現できる。
本実施の形態においては、リングオシレータを使用する。
リングオシレータは、奇数段の論理ゲート(例えば、NOTゲート)がリング状に結合された構成を有する発振回路である。リングオシレータは、ノイズによる位相のずれが蓄積されるため、個体振動子を用いた発振回路や、CR回路等の共振現象を利用した発振回路等と比較し、発振信号に含まれるゆらぎが大きくなる性質を有する。前述のように、オシレータサンプリング方式を用いた乱数生成においては、ゆらぎがもつランダム性から乱数を生成するため、発振回路として、例えばリングオシレータが適する。
低速オシレータ120は、高速発振信号111よりも周期の長い発振信号である低速発振信号121を出力するオシレータである。低速オシレータ120としては、高速オシレータ110と同様、任意の発振回路を使用できるが、高速オシレータ110と同様の理由により、例えばリングオシレータを使用することが好ましい。
サンプル装置130は、低速発振信号をクロックとして使用することで高速発振信号の値をサンプリングする。さらに、サンプリングされた値と、事前に定められた閾値との大小を比較することで、サンプリングされた値を2値化し、2値化された値を出力する。
例えば、サンプル装置130としてDフリップフロップ回路を使用してもよい。データ信号として高速発振信号111を、クロック信号として低速発振信号121をDフリップフロップ回路へ入力した場合の出力が、真性乱数生成器200が生成する乱数列となる。
図4は、本実施の形態に係るゆらぎ増幅装置の構成を示すブロック図である。
図4に示されるように、ゆらぎ増幅装置100は、可変バッファ101と、遅延制御部102とを備える。
可変バッファ101は、本来は周期性を有するが、その周期がゆらぐ2つの入力信号が入力されると、2つの入力信号とは異なる外部信号である制御信号によって定まる第1の遅延時間だけ2つの入力信号の各々を遅延させて出力する、一種のディレイ回路である。可変バッファ101は、例えば、直列に接続された複数の遅延素子を備える構成として実現できる。遅延素子としては、例えばトランジスタを使用すること等が考えられる。
可変バッファ101は、第1の動作モードと、第1の動作モードとは遅延時間の異なる第2の動作モードとを有し、後述する遅延制御部102から出力される制御信号を取得すると、第1の動作モード及び第2の動作モードのうちの一方から、他方へと切り替える。例えば、可変バッファ101は、遅延制御部102から出力される制御信号を取得すると、第1の動作モードから第2の動作モードへと、動作モードを切り替える。
ここでは、可変バッファ101が備える複数の遅延素子の各々は、可変バッファ101が第1の動作モードの場合には、入力信号を第3の遅延時間だけ遅延させて、次の遅延素子へと伝播させるとする。また、第2の動作モードの場合には、入力信号を第3の遅延時間よりも大きい第4の遅延時間だけ遅延させて伝播させるとする。すなわち、可変バッファ101が有する複数の遅延素子106の各々は、第1の動作モードによる動作時の方が、第2の動作モードによる動作時と比較し、より高速に入力信号を伝播させる。以上のことから、以後、第1の動作モードを高速バッファモード501ともよび、第2の動作モードを低速バッファモード502ともよぶ。
より具体的には、可変バッファ101は、第1の動作モードでは、第2の動作モードよりも高い電源電圧を複数の遅延素子の各々に印加して動作させることで、伝達速度を変更する。より詳細には後述する。
遅延制御部102は、可変バッファ101へ制御信号を出力することで、第1の遅延時間を制御する。具体的には、遅延制御部102は、入力信号が可変バッファ101に入力されて以後、出力されるまでに制御信号123を可変バッファ101へ出力することにより、ゆらぎを増幅する。
例えば、遅延制御部102は、(1)入力信号が可変バッファ101へ入力されると、可変バッファ101の動作モードを高速バッファモード501に設定し、(2)その後、入力信号が、可変バッファ101の内部を伝達されている間に、可変バッファ101の動作モードを低速バッファモード502へ切り替えるための制御信号123を出力することが考えられる。
図5は、本実施の形態に係る可変バッファ101の動作を説明する概念図である。
前述の通り、本実施の形態に係る可変バッファ101は、第1の動作モード(高速バッファモード501ともいう)と、第2の動作モード(低速バッファモード502ともいう)の2つの動作モードを有する。
高速バッファモード501と低速バッファモード502との違いは、可変バッファ101に入力された入力信号が出力されるまでの時間である。すなわち、高速バッファモード501における遅延素子106の方が、低速バッファモード502における遅延素子106よりも速く、取得した入力信号を次の遅延素子に伝播させる。
図5に示されるように、高速バッファモード501と低速バッファモード502とは、遅延制御部102から可変バッファ101へ送信される制御信号によって、切り替えられる。具体的には、高速バッファモード501で動作する可変バッファ101が、遅延制御部102から送信された制御信号123aを受信すると、可変バッファ101は、自身が備える複数の遅延素子106の各々が、次の遅延素子へ信号を伝播させる速度を、一斉に速くする。逆に、低速バッファモード502で動作する可変バッファ101が、遅延制御部102から送信された制御信号123bを受信すると、可変バッファ101は、自身が備える複数の遅延素子106の各々が、次の遅延素子へ信号を伝播させる速度を、一斉に遅くする。
この可変バッファ101を用いて、本実施の形態に係るゆらぎ増幅装置100が、入力信号のゆらぎを増幅する仕組みについて、図6〜図7を用いて説明する。
図6は、従来の(遅延時間が変化しない)遅延バッファの機能を説明する図である。
図6に示されるように、時刻403に立ち上がる入力信号S1を遅延バッファに入力すると、時刻404に入力信号S1が遅延バッファから出力される。すなわち、遅延バッファは、時間405だけ、入力信号を遅延させて出力する。
次に、時刻403よりも早い時刻408に立ち上がる入力信号S2を、同じ遅延バッファに入力した場合、時刻409に入力信号S2が遅延バッファから出力される。すなわち、遅延バッファは、入力信号S1を入力した場合と同じ、時間405だけ入力信号を遅延させて出力する。
このように、通常の遅延バッファは、入力信号が入力されるタイミングにかかわらず、常に一定時間だけ入力信号を遅延させて出力する。
これに対し、図7は、本実施の形態に係る可変バッファ101の機能を説明する第1の図である。
図7に示されるように、時刻423に立ち上がる入力信号S1を可変バッファ101に入力すると、時刻424に入力信号S1が可変バッファ101より出力される。
ここで、遅延制御部102から可変バッファ101へ送信された制御信号123を、可変バッファ101が時刻450に受信したとする。また、制御信号123を受信する前の可変バッファ101は、高速バッファモード501で動作し、制御信号123を受信した後の可変バッファ101は、低速バッファモード502で動作するものとする。
この場合、入力信号S1は、時刻423から時刻424まで可変バッファ101の内部を(直列に接続された複数の遅延素子間のバケツリレーにより)伝播されるが、その際、高速バッファモード501である時刻450までは高速に伝播され、低速バッファモード502である時刻450から時刻424までは低速に伝播される。
その結果、可変バッファ101は、入力信号S1を時間425だけ遅延させて出力する。
これに対し、可変バッファ101に、時刻423よりも早い時刻428で立ち上がる入力信号S2を入力すると、時刻429に入力信号S2が可変バッファ101より出力される。
ここで、遅延制御部102から可変バッファ101へ送信された制御信号123を、可変バッファ101が時刻450に受信したとする。その結果、入力信号S2は、可変バッファ101の内部を、高速バッファモード501である時刻428から時刻450までは高速に伝播され、低速バッファモード502である時刻450から時刻429までは低速に伝播される。その結果、入力信号S2は、入力信号S1よりも、長い時間、可変バッファ101内部を高速バッファモード501で伝播される。
よって、可変バッファ101による入力信号S2の遅延時間430は、入力信号S1の遅延時間425よりも小さくなる。すなわち、可変バッファ101は、早く入力された入力信号ほど、遅延時間(第1の遅延時間)を小さく(逆に、遅く入力された入力信号ほど、遅延時間(第1の遅延時間)を大きく)する。これは、入力信号のゆらぎが増幅されることを意味する。
以上述べた、本実施の形態に係るゆらぎ増幅装置100による入力信号の遅延時間をより厳密に求めると、以下の通りとなる。
可変バッファ101が備える遅延素子の個数(段数)をNとし、高速バッファモード501における遅延素子1個あたりの入力信号の遅延時間(第3の遅延時間)をtdfとし、低速バッファモード502における遅延素子1個あたりの入力信号の遅延時間(第4の遅延時間)をtdsとする。また、高速バッファモード501において可変バッファ101の内部を入力信号が伝達される時間の理論値(すなわち、入力信号にゆらぎが存在しないと仮定した場合の値)をTstとし、入力信号が立ち上がる時刻と制御信号123が立ち上がる時刻との間の時間のゆらぎをTlagとする。この場合、可変バッファ101による入力信号の遅延時間(第1の遅延時間)は、以下の数式1で求められる。
数式1の右辺1行目第1項は、入力信号が可変バッファ101内を高速バッファモード501で実際に伝達された時間を表す。また、数式1の右辺1行目第2項は、入力信号が可変バッファ101内を低速バッファモード502で実際に伝達された時間を表す。
次に、Tlagの標準偏差をσlagとし、連続する2つの入力信号間の立ち上がり時刻の時間差の標準偏差をσinとし、入力信号の立ち上がり時刻から制御信号123の立ち上がり時刻までの時間の標準偏差をσtgとし、σinに対するσlagの比(すなわち、σlag/σin)をaとする。σin 2は、入力信号として可変バッファ101に入力される低速発振信号121の性質によって、また、σtg 2は遅延制御部102によって、それぞれ独立に定まる値であり、共に正規分布に従うと考えられる。よって、σlag 2=σin 2+σtg 2となり、a=(1+σtg 2/σin 2)1/2となる。
したがって、ゆらぎ増幅装置100の利得(Gain)は、次の数式2により得られる。なお、利得は、ゆらぎ増幅装置100に入力された信号の、入力前のゆらぎに対する出力後のゆらぎの比と定義する。
数式2より、ゆらぎ増幅装置100の利得は、tdf及びtdsの比率により決定されることがわかる。
図8は、以上述べた、本実施の形態に係るゆらぎ増幅装置100の処理の流れを示すフローチャートである。
ゆらぎ増幅装置100は、低速オシレータ120から低速発振信号121を取得すると(S201)、取得した低速発振信号121を自身が備える可変バッファ101へ入力する(S203)。
次に、遅延制御部102は、低速発振信号121が可変バッファ101の内部で伝播されている時間内に、可変バッファ101の動作モードを切り替える制御信号123を、可変バッファ101へ出力する(S205)。
最後に、ゆらぎ増幅装置100は、可変バッファ101から出力される、ゆらぎが増幅された入力信号を、サンプル装置130へ出力する(S207)。
その後、サンプル装置130は、高速オシレータ110から出力される高速発振信号111を、ゆらぎ増幅装置100から出力される、ゆらぎが増幅された低速発振信号121である増幅発振信号122でサンプリングして得られる値を、乱数列として出力する。
図9は、本実施の形態に係る遅延制御部102の処理の流れを示すフローチャートである。
まず、遅延制御部102は、新たな入力信号が入力された場合には(S210でYes)、可変バッファ101の動作モードを第1の動作モードに切り替える(S212)。また、新たな入力信号が入力されていない場合には(S210でNo)、動作モードを切り替えない。
次に、遅延制御部102は、所定時間が経過したか否かを判定する(S214)。ここで、所定時間が経過した場合には(S214でYes)、可変バッファ101を第2の動作モードに設定する(S216)。また、所定時間が経過していなければ(S214でNo)、動作モードを切り替えない。なお、ステップS214における所定時間の決め方については、後述する。
図10は、本実施の形態に係るゆらぎ増幅装置100の実装の一例を示す図である。
遅延制御部102は、83段ro(ring oscillator;リングオシレータ)103a及び83段ro103bと、カウント部104a及びカウント部104bと、パルス発生部105a及びパルス発生部105bとを備える。以後、83段ro103a及び83段ro103bを総称して83段ro103という。また、カウント部104a及びカウント部104bを総称してカウント部104という。また、パルス発生部105a及びパルス発生部105bを総称してパルス発生部105という。
83段ro103及びカウント部104は、遅延制御部102に入力された低速発振信号121の立ち上がりによって特定される入力信号が遅延制御部102に入力された時刻からの経過時間をカウントする回路である。なお、リングオシレータの段数は、あくまで例示であり、83段以外の任意の奇数段の段数として構成されても同様の発明の効果を奏する。
カウント部104aは、カウンタ107aを有し、カウント部104bは、カウンタ107bを有する。以後、カウンタ107a及びカウンタ107bを総称してカウンタ107という。
カウント部104は、低速発振信号121の立ち上がりをきっかけに、自身が有するカウンタ107を0にリセットし、以後、83段ro103から出力されるクロック信号を取得するごとに、カウンタ107をカウントアップする。
より詳細には、カウント部104aは、83段ro103aから出力される発振信号の回数を、カウンタ107aによりカウントアップする。また、カウント部104bは、83段ro103bから出力される発振信号の回数を、カウンタ107bによりカウントアップする。
パルス発生部105は、自身が参照するカウント部104が有するカウンタ107の値が、事前に定められた遅延条件内(例えば、事前に定められた閾値以上)であるときに、Highとなるパルス信号を出力する。すなわち、パルス発生部105は、遅延制御部102に入力信号が入力されてから、事前に定められた第2の遅延時間の経過後に、パルス信号を出力する。なお、パルス発生部105aは、カウント部104aが有するカウンタ107aを参照し、パルス発生部105bは、カウント部104bが有するカウンタ107bを参照する。
ここで、遅延制御部102へ連続して入力される2つの入力信号のうち、先の入力信号に対応したパルスの生成をパルス発生部105が完了させるのは、後の入力信号が遅延制御部102に入力された後となる。すなわち、本実施の形態に係る遅延制御部102は、2つの入力信号のうち先の入力信号を取得してから、事前に定められた第2の遅延時間が経過した後に、パルス発生部105から制御信号123であるパルス信号を出力する。この第2の遅延時間は、2つの入力信号のうち後の入力信号が可変バッファ101に入力されて以後、出力されるまでの間に、制御信号123が出力されるように定められる。
遅延制御部102をこのように構成する理由を以下に述べる。
ゆらぎ増幅装置100は、入力信号が可変バッファ101内部を伝播されている間に、その伝播される速度を高速から低速へ切り替えることにより、入力信号のゆらぎを増幅する。したがって、遅延制御部102は、入力信号の各々が可変バッファ101内部を伝播されている期間内に、制御信号123を可変バッファ101へ出力する必要がある。
ここで、遅延制御部102は、入力信号が可変バッファ101へ入力された時刻を知ることができれば、その時刻以後、所定の遅延時間が経過した後に、可変バッファ101へ制御信号123を出力すればよい。
そこで、遅延制御部102は、可変バッファ101と同時に入力信号を取得し、83段ro103及びカウント部104により、入力信号を取得した時刻からの経過時間をカウントする。その後、所定の遅延時間(第2の遅延時間)が経過した後、パルス発生部105はパルス波を出力する。
ここで、遅延制御部102が、2つの入力信号のうち先の入力信号がまだ可変バッファ101内部を伝播されているうちに、先の入力信号が入力された時刻に対応する(すなわち、先の入力信号を所定の遅延時間だけ遅延させた)制御信号123を出力すると、遅延制御部102は、入力信号が可変バッファ101に入力されてから、常に同じ時間が経過した後に、制御信号123を出力することになる。すなわち、全ての入力信号について、高速バッファモード501として伝達される時間、及び、低速バッファモード502として伝達される時間が一致してしまう。これでは、数式2における係数aが0となり、ゆらぎ増幅装置100は、ゆらぎを増幅することができない。
すなわち、制御信号123が出力される時刻は、可変バッファ101内を現在、伝達されている入力信号が可変バッファ101に入力された時刻とは独立に決定されなければならない。
ここで、低速オシレータ120が出力する低速発振信号121の周期は、ゆらぎを有しており、そのゆらぎは周期ごとに独立となる。そこで、遅延制御部102は、2つの入力信号のうち先の入力信号が入力された時刻から、低速発振信号121の1周期以上に相当する時間が経過し、後の入力信号が可変バッファ101内部を伝播されているタイミングで、先の入力信号が入力された時刻に対応するパルス信号を発生させ、これを制御信号123として出力する。
このように、遅延制御部102が制御信号123の出力タイミングの決定に、現在、可変バッファ101内を伝播されている入力信号の1つ前にゆらぎ増幅装置100へ入力された入力信号を一定時間遅延させて使用することにより、2つの入力信号間の時間が短いほど(すなわち、2つの入力信号のうち先の入力信号の入力時刻が早いほど)、2つの入力信号のうち後の入力信号の可変バッファ101による遅延時間(第1の遅延時間)が、より小さくなるように、遅延制御部102が遅延時間を制御する効果が生じる。
なお、遅延制御部102が備えるカウンタが1つでは、パルス発生部105がパルス生成を完了する前に、遅延制御部102へ次の入力信号が入力され、カウンタの値が0にリセットされてしまう。よって、本実施の形態に係る遅延制御部102では、カウンタ107a及びカウンタ107bという2つのカウンタを、入力信号ごとに交互に使用することで、パルス生成が完了する前にカウンタの値がリセットされることを防ぐ。例えば、入力信号の偶数回目の立ち上がりに関してカウンタ107aがリセットされ、入力信号の奇数回目の立ち上がりに関してカウンタ107bがリセットされる。
再び図10を参照し、可変バッファ101は、複数の遅延素子106と、可変バッファ101の電源108とを備える。
複数の遅延素子106として、ここでは、1000段のインバータチェーンを使用する。
電源108は、電源電圧VDBUFHと、電源電圧VDBUFLと、切替スイッチ109とを備える。切替スイッチ109は、インバータである遅延素子106に印加する電源電圧を、電源電圧VDBUFHと、電源電圧VDBUFLのうち一方から選択できるように構成されたスイッチである。切替スイッチ109として、例えば図10に示されるように、2つのMOSFET(Metal Oxide Semiconductor Field Effect Transistor)を組み合わせて使用すること等が考えられる。
電源電圧VDBUFHは、電源電圧VDBUFLよりも高電位であるため、遅延素子106に電源電圧VDBUFHを印加した場合が、入力信号の伝播速度が速い高速バッファモード501に対応する。逆に、遅延素子106に電源電圧VDBUFLを印加した場合が、低速バッファモード502に対応する。
すなわち、可変バッファ101は、第1の動作モードでは、第2の動作モードよりも高い電源電圧を複数の遅延素子106の各々に印加することで、入力信号の遅延時間を変更することができる。
なお、本実施の形態に係る可変バッファ101の電源108は、図10に示されるように、制御信号123の値がLowの場合には、電源電圧VDBUFHを遅延素子106へ印加し、制御信号123の値がHighの場合には、電源電圧VDBUFLを遅延素子106へ印加する。
次に、図11を参照して、本実施の形態に係る遅延制御部102が制御信号123を出力するタイミングについて、より具体的に説明する。
まず時刻460にゆらぎ増幅装置100へ入力された最初の入力信号S0は、可変バッファ101及び遅延制御部102へ入力される。
可変バッファ101へ入力された入力信号S0は、高速バッファモード501で複数の遅延素子間を伝播される。
一方、遅延制御部102へ入力された入力信号S0は、カウント部104bへ入力される。カウント部104bは、入力信号S0が入力されると、83段ro103bへ発振信号の出力を指示し、カウンタ107bを0にリセットする。以後、カウント部104bは、83段ro103bから出力される発振信号の立ち上がり回数のカウントを開始する。
その後、入力信号S0が時刻470に可変バッファ101から出力され、次の入力信号S1が時刻423に、ゆらぎ増幅装置100へ入力される。入力信号S1は、可変バッファ101及び遅延制御部102へ入力される。
可変バッファ101へ入力された入力信号S1は、高速バッファモード501で複数の遅延素子間を伝播される。
一方、遅延制御部102へ入力された入力信号S1は、カウント部104aへ入力される。カウント部104aは、入力信号S1が入力されると、83段ro103aへ発振信号の出力を指示し、カウンタ107aを0にリセットする。以後、カウンタ107aは、83段ro103aから出力される発振信号の立ち上がり回数のカウントを開始する。
その後、時刻450で、カウント部104bが有するカウンタ107bの値が、事前に定められた閾値を超えたとする。このとき、パルス発生部105bは、出力する信号の値をLowからHighへ切り替える。その結果、可変バッファ101へ制御信号123であるHighレベルのパルス信号が出力され、電源108は、遅延素子106へ印加する電源電圧を、VDBUFHからVDBUFLへ切り替える。
その結果、時刻450以降、可変バッファ101は低速バッファモード502で動作する。よって、入力信号S1は、時刻423から時刻450までは高速バッファモード501で伝播され、時刻450から時刻424までは低速バッファモード502で伝播される。
その後、さらに、新たな入力信号S2が、時刻472にゆらぎ増幅装置100へ入力されると、入力信号S2は、可変バッファ101及び遅延制御部102へ入力される。
遅延制御部102へ入力された入力信号S2は、カウント部104bへ入力される。ここで、カウント部104bは、入力信号S2が入力されると、83段ro103bへ発振信号の出力を指示し、カウンタ107bを0にリセットする。その結果、パルス発生部105bはHighレベルの信号の出力を停止する。その結果、電源108は遅延素子106に印加する電源電圧を、VDBUFLからVDBUFHへ切り替える。その結果、可変バッファ101は高速バッファモード501で動作する。
また、可変バッファ101へ入力された入力信号S1は、高速バッファモード501で複数の遅延素子間を伝播される。
ここで、入力信号S0、S1及びS2は、それぞれゆらぎを有しているため、隣り合う入力信号間の時間は、それぞれ異なる。よって、数式2における係数aが0ではなく、ゆらぎ増幅装置100は、入力信号のゆらぎを増幅することができる。
図12は、本実施の形態に係るゆらぎ増幅装置100を備える真性乱数生成器200を65nmプロセスを用いて実装した半導体チップの外観図である。
実装した真性乱数生成器200では、高速オシレータ110を、7、15及び31段リングオシレータの中から選択できる。また、低速発振信号121として、251段リングオシレータからの出力信号を、16、64、256及び1024分周のうち、いずれかで分周したものを選択できる。
図12に示されるように、本実施の形態に係るゆらぎ増幅装置100の実装面積は、1辺が数十μm以内の矩形領域に収まるほど小さくすることが可能である。
図13は、半導体チップ上に実装されたゆらぎ増幅装置100により得られたゆらぎの利得を示す図である。横軸は低速バッファモード502において遅延素子106に印加された電源電圧VDBUFLの電圧[V]に対応し、縦軸は、ゆらぎ増幅装置100への入力前後におけるゆらぎの利得に対応する。また、各種の点によるプロットは、実装されたゆらぎ増幅装置100による実測値を表し、曲線は数式2を用いて算出された見積もり値を示す。
より詳細には、図13は、低速発振信号121として251段リングオシレータを64分周したものを使用し、電源電圧VDBUFHを1.2Vに固定し、VDBUFLを1.2Vから0.65Vまで、0.05Vずつ変化させた場合に計測した利得を、計測時の温度ごとにプロットしたグラフである。
図13に示されるように、VDBUFLが小さい、すなわち、高速バッファモード501で遅延素子106に印加される電源電圧と、低速バッファモード502で遅延素子106に印加される電源電圧との差が大きいほど、ゆらぎ増幅装置100による得られる利得が大きくなる。例えば、20度Cにおいては、VDBUFLが0.65Vのとき、ゆらぎが8.4倍に増幅されている。
また、温度が低くなるほど、可変バッファ101における遅延時間の電源電圧に対する感度が大きくなる性質があるため、利得がより大きくなっている。
数式2については、温度が室温以上(特に25度C以上)の場合には、実測値との差がほとんどなく、利得をよく見積もれているが、温度が低くなるほど実測値よりも低いゲインを見積もっている。
次に、実装したゆらぎ増幅装置100を備える真性乱数生成器200が生成する乱数列の品質について行った評価結果を述べる。
乱数品質の評価における真性乱数生成器200の使用条件は以下の通りである。すなわち、温度は25度Cであり、高速発振信号111は31段リングオシレータの出力であり、低速発振信号121は251段リングオシレータの出力を64分周した信号であり、VDBUFHは1.2Vであり、VDBUFLを0.7Vである。
この条件の下で生成された、乱数量1Mbitの乱数列を1系列とし、これを1000系列生成した。
この1000系列の乱数列について、NIST(National Institute of Standards and Technology)SP800−22において定められた14種類の乱数品質テスト(以下、NISTテストという)を行った。NISTテストは、極めて厳格な基準による乱数品質の評価テスト群である。
図14は、本実施の形態に係る真性乱数生成器200により生成された乱数列について、NISTテストを行った結果を示す。
列850は、本実施の形態に係るゆらぎ増幅装置100の機能をOFFにして生成された乱数列についてのNISTテストの結果である。すなわち、低速オシレータ120により生成された低速発振信号121をそのままクロックとして使用して生成された乱数列である。14種類のNISTテストのうち、4種類のみ合格し、10種類については不合格となっている。
一方、列851は、本実施の形態に係るゆらぎ増幅装置100の機能をONにして生成された乱数列についてのNISTテストの結果である。14種類のNISTテストのうち、12種類について合格している。
次に、本実施の形態に係るゆらぎ増幅装置100による面積あたりの乱数生成スループットの改善効果について、インバータチェーン及び分周器を用いる方法と比較して詳細に説明する。
なお、面積とスループットの評価を行うためのパラメータとして次の値を用いた。インバータの面積を1.08μm2とし、2入力NANDの面積を1.44μm2とし、Dフリップフロップの面積を7.92μm2とし、ゆらぎ増幅装置100の面積を3000μm2とした。また、高速発振信号111の周期の平均及び標準偏差をそれぞれ930ps、9.2psとし、低速発振信号121の周期の平均及び標準偏差をそれぞれ460ns、210psとした。ここで、低速発振信号121の周期の平均及び標準偏差、並びに、高速発振信号111の周期の標準偏差は、65nmプロセスにおける251段リングオシレータ64分周の実測値から見積もり、高速発振信号111の平均周期は65nmプロセスにおける31段リングオシレータのシミュレーションから求めた。
なお、以下の評価では厳密を期すため、低速発振信号121の周期ゆらぎに加えて高速発振信号111の周期ゆらぎを考慮する。図2を参照して、オシレータサンプリング方式のランダム性は、高速発振信号111から見た低速発振信号121の立ち上がりタイミングのゆらぎによって獲得される。ここでは、高速発振信号111に対する低速発振信号121の立ち上がりタイミングのゆらぎを「相対的周期ゆらぎ」とよぶ。高速発振信号111に周期ゆらぎがある場合、相対的周期ゆらぎは低速発振信号121の1周期中に蓄積される高速発振信号111の周期ゆらぎ分だけ増加する。よって、相対的周期ゆらぎは、低速発振信号121で生じる周期分散と、低速発振信号121の1周期中に蓄積される高速発振信号111の周期分散の和の平方根として定義できる。
以上の前提において、図15は、本実施の形態に係るゆらぎ増幅装置100による、乱数生成における面積あたりスループットの改善効果を、インバータチェーン及び分周器を用いる方法と比較して示す図である。
図15(a)は、要求される相対的周期ゆらぎを得るために必要な回路の面積を示す図である。縦軸は回路の実装に必要な面積[μm2]であり、横軸は得られる相対的周器ゆらぎの大きさ[ns]である。
図15(a)に示されるように、分周器を用いる手法が最も面積が小さく、相対的周期ゆらぎの量が大きくなっても、面積はほとんど増加しない。また、本実施の形態に係るゆらぎ増幅装置100によっても、回路の面積は相対的周期ゆらぎの大きさに依存しないが、分周器を用いる手法よりも回路の面積は大きくなる。また、インバータチェーンを用いる手法は、相対的周期ゆらぎが大きくなるほど、必要とされるインバータチェーンの段数が急激に増加するため、非常に大きな面積が必要となる。
次に、相対的周期ゆらぎと、乱数生成のスループットの関係を図15(b)に示す。縦軸は、乱数生成のスループット[kbps]であり、横軸は得られる相対的周器ゆらぎの大きさ[ns]である。
図15(b)に示されるように、インバータチェーンを用いる手法及び本実施の形態に係るゆらぎ増幅装置100では、相対的周期ゆらぎの大きさにかかわらず、スループットは一定である。一方、分周器を用いる手法では、相対的周期ゆらぎが大きくなるほど、必要な分周回数が大きくなるので、スループットが急激に減少する。
次に、相対的周期ゆらぎの大きさに対する面積あたりスループットを図15(c)に示す。縦軸は、乱数生成における面積あたりのスループット[kbps]であり、横軸は得られる相対的周期ゆらぎの大きさ[ns]である。
図15(c)に示されるように、相対的周期ゆらぎが小さい場合、本実施の形態に係るゆらぎ増幅装置100は他の2つの手法よりも面積あたりスループットが小さいが、相対的周期ゆらぎが大きくなっても面積あたりスループットは減少しない。そのため、要求される周期ゆらぎが大きい場合、本実施の形態に係るゆらぎ増幅装置100は面積あたりスループットの面で有利となる。
ここで、前述したNISTテストを実施した際の条件は、VDBUFHが1.2Vであり、VDBUFLが0.7Vであったので、このとき、増幅発振信号122の周期ゆらぎは、1.23[ns]と見積もることができる。また、低速発振信号121の1周期中に蓄積される高速発振信号111の周期分散は、(9.2[ps])2×(460[ns]/930[ps])=0.042[ns2]と算出されるため、相対的周期ゆらぎは、(1.232+0.042)1/2=1.25[ns]となる。
よって、後処理を用いずに、NISTテストに合格する程度の高品質乱数を生成するためには少なくとも1.25[ns]の相対的周期ゆらぎが必要と考えられる。このとき、図15(c)を参照して、本実施の形態に係るゆらぎ増幅装置100によれば、分周器を用いる手法と比較し、面積あたりのスループットが94%改善することがわかる。
以上の検証から、本実施の形態に係るゆらぎ増幅装置100は、真性乱数生成器200の実装面積あたりのスループットを悪化させずに、生成される乱数品質を向上させることが可能であることが示される。
以上、本発明の実施の形態に係るゆらぎ増幅装置100について説明したが、本発明は、この実施の形態に限定されるものではない。
上記実施の形態に係るゆらぎ増幅装置100及び真性乱数生成器200に含まれる各処理部は典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されてもよいし、一部又は全てを含むように1チップ化されてもよい。
ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後にプログラムすることが可能なFPGA(Field Programmable Gate Array)、又はLSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて各処理部の集積化を行ってもよい。
また、本発明の実施の形態に係る、ゆらぎ増幅装置100及び真性乱数生成器200の機能の一部又は全てを、CPU等のプロセッサがプログラムを実行することにより実現してもよい。
さらに、本発明は上記プログラムであってもよいし、上記プログラムが記録された記録媒体であってもよい。また、上記プログラムは、インターネット等の伝送媒体を介して流通させることができるのはいうまでもない。
また、上記実施の形態に係る、ゆらぎ増幅装置100及びその変形例の機能のうち少なくとも一部を組み合わせてもよい。
さらに、本発明の主旨を逸脱しない限り、本実施の形態に対して当業者が思いつく範囲内の変更を施した各種変形例も本発明に含まれる。
また、上記で用いた数字は、全て本発明を具体的に説明するために例示するものであり、本発明は例示された数字に制限されない。さらに、High/Lowにより表される論理レベル又はオン/オフにより表されるスイッチング状態は、本発明を具体的に説明するために例示するものであり、例示された論理レベル又はスイッチング状態の異なる組み合わせにより、同等な結果を得ることも可能である。さらに、上で示した論理回路の構成は本発明を具体的に説明するために例示するものであり、異なる構成の論理回路により同等の入出力関係を実現することも可能である。また、トランジスタ等のn型及びp型等は、本発明を具体的に説明するために例示するものであり、これらを反転させることで、同等の結果を得ることも可能である。また、構成要素間の接続関係は、本発明を具体的に説明するために例示するものであり、本発明の機能を実現する接続関係はこれに限定されない。
また、上記説明では、MOSトランジスタを用いた例を示したが、バイポーラトランジスタ等の他のトランジスタを用いてもよい。
また、上記ゆらぎ増幅装置100の構成は、本発明を具体的に説明するために例示するためのものであり、本発明に係るゆらぎ増幅装置100は、上記構成の全てを必ずしも備える必要はない。言い換えると、本発明に係るゆらぎ増幅装置100は、本発明の効果を実現できる最小限の構成のみを備えればよい。
また、本実施の形態に係る遅延制御部102は、2組の83段ro103、カウント部104及びパルス発生部105を備えるとしたが、必ずしもこの構成に限定されない。
例えば、遅延制御部102は、83段ro103、カウント部104及びパルス発生部105を3組以上備えてもよい。この構成により、遅延制御部102による第2の遅延時間が低速発振信号121の周期の2倍を超える場合であっても、パルス発生部105によるパルス発生の完了前にカウンタ107がリセットされることを防ぐことができる。
また、遅延制御部102は、複数の83段ro103、カウンタ107を除く複数のカウント部104、及び、複数のパルス発生部105のうち、2つ以上を共有してもよい。例えば、図10に示されるゆらぎ増幅装置100において、遅延制御部102は、1つのパルス発生部105と、1つの83段ro103と、1つのカウント部104とを備え、カウント部104が2つのカウンタ(カウンタ107a及びカウンタ107b)を有するように構成してもよい。この構成により、ゆらぎ増幅装置100の実装面積、消費電力及びコストをさらに低減することができる。
また、遅延制御部102は、1つの83段ro103、1つのカウント部104、及び、1つのパルス発生部105のみを備え、低速発振信号121がゆらぎ増幅装置100に入力された時刻とは無関係に、低速オシレータ120の周期とほぼ同間隔で定期的に制御信号123を送信する構成としてもよい。これにより、ゆらぎ増幅装置100の構成を簡易なものとできる利点がある。
なお、本実施の形態においては、入力信号が入力される際に、可変バッファ101は常に高速バッファモード501で動作しており、入力信号の伝播中に低速バッファモード502に切り替えられるものとして説明したが、これに限られるものではない。例えば、入力信号は、常に低速バッファモード502で動作する可変バッファ101に入力され、途中で高速バッファモード501に変更されるものとしてもよい。
さらに、入力信号が入力される際の可変バッファ101の動作モードとして、高速バッファモード501と低速バッファモード502が交互に使用されてもよく、さらにまた、入力信号が入力される際の可変バッファ101の動作モードが無作為に選択されてもよい。すなわち、遅延制御部102は、入力信号が可変バッファ101内を伝播されている間に、なんらかの形で、可変バッファ101の第1の遅延時間を変更させることで、同様の発明の効果を奏する。
また、本実施の形態に係る可変バッファ101は、第1の遅延時間を変化させるために、遅延素子であるインバータ(トランジスタ)の電源電圧の値を切り替える構成とした。しかし、可変バッファ101は、入力信号が伝播される遅延素子の段数を変化させることで、第1の遅延時間を変化させてもよい。例えば、直列に接続された複数の遅延素子106の列において複数のショートカットを設けることで、出力されるまでの段数が異なる複数の経路をつくることができる。よって、ゆらぎ増幅装置100に入力された入力信号を例えば順番に、あるいは、無作為に、複数のショートカットのいずれかから入力することで、入力信号ごとに第1の遅延時間を切り替えることができ、上記実施の形態と同様の発明の効果を奏することができる。
本発明は、ゆらぎ増幅装置に適用でき、特にオシレータの周期ゆらぎを利用した真性乱数生成器が備えるゆらぎ増幅装置に適用できる。
100 ゆらぎ増幅装置
101 可変バッファ
102 遅延制御部
103、103a、103b 83段ro
104、104a、104b カウント部
105、105a、105b パルス発生部
106 遅延素子
107、107a、107b カウンタ
108 電源
109 切替スイッチ
110 高速オシレータ
111 高速発振信号
120 低速オシレータ
121 低速発振信号
122 増幅発振信号
123、123a、123b 制御信号
130 サンプル装置
190 乱数変換装置
200、900 真性乱数生成器
501 高速バッファモード
502 低速バッファモード
551、552、S1、S2 入力信号
101 可変バッファ
102 遅延制御部
103、103a、103b 83段ro
104、104a、104b カウント部
105、105a、105b パルス発生部
106 遅延素子
107、107a、107b カウンタ
108 電源
109 切替スイッチ
110 高速オシレータ
111 高速発振信号
120 低速オシレータ
121 低速発振信号
122 増幅発振信号
123、123a、123b 制御信号
130 サンプル装置
190 乱数変換装置
200、900 真性乱数生成器
501 高速バッファモード
502 低速バッファモード
551、552、S1、S2 入力信号
Claims (9)
- 2つの入力信号間の時間の変動であるゆらぎを増幅するゆらぎ増幅装置であって、
前記2つの入力信号が入力され、前記2つの入力信号とは異なる外部信号である制御信号によって定まる第1の遅延時間だけ前記2つの入力信号の各々を遅延させて出力する可変バッファと、
前記可変バッファへ、前記制御信号を出力することで、前記第1の遅延時間を制御する遅延制御部とを備える
ゆらぎ増幅装置。 - 前記遅延制御部は、前記2つの入力信号間の時間が短いほど、前記2つの入力信号のうち後の入力信号の、前記可変バッファによる前記第1の遅延時間が、より小さくなるように、前記制御信号を出力する
請求項1に記載のゆらぎ増幅装置。 - 前記遅延制御部は、前記2つの入力信号のうち先の入力信号を取得してから、事前に定められた第2の遅延時間が経過した後に、前記制御信号を出力し、
前記第2の遅延時間は、前記2つの入力信号のうち後の入力信号が前記可変バッファに入力されて以後、出力されるまでの間に、前記先の入力信号に対応する前記制御信号が出力されるように定められる
請求項2に記載のゆらぎ増幅装置。 - 前記可変バッファは、第1の動作モードと、前記第1の動作モードよりも遅延時間の大きい第2の動作モードとを有し、前記制御信号を取得すると、前記第1の動作モードから前記第2の動作モードへと動作モードを切り替える
請求項1〜3のいずれか1項に記載のゆらぎ増幅装置。 - 前記可変バッファは、直列に接続された複数の遅延素子を備え、
前記複数の遅延素子の各々は、前記可変バッファが(A)前記第1の動作モードの場合には、前記入力信号を第3の遅延時間だけ遅延させて伝播させ、(B)前記第2の動作モードの場合には、前記入力信号を前記第3の遅延時間よりも大きい第4の遅延時間だけ遅延させて伝播させる
請求項4に記載のゆらぎ増幅装置。 - 前記可変バッファは、前記第1の動作モードでは、前記第2の動作モードよりも高い電源電圧を前記複数の遅延素子の各々に印加して動作させる
請求項5に記載のゆらぎ増幅装置。 - 請求項1〜請求項6のいずれか1項に記載のゆらぎ増幅装置と、
前記ゆらぎを乱数に変換して出力する乱数変換装置とを備える
真性乱数生成器。 - 前記乱数変換装置は、
高速発振信号を出力する高速オシレータと、
前記高速発振信号よりも周期の長い発振信号である低速発振信号を出力する低速オシレータと、
前記低速発振信号をクロックとして使用することで前記高速発振信号の値をサンプリングし、前記サンプリングされた値と、事前に定められた閾値との大小を比較することで、前記サンプリングされた値を2値化し、2値化された値を出力するサンプル装置とを備える
請求項7に記載の真性乱数生成器。 - 2つの入力信号間の時間の変動であるゆらぎを増幅する集積回路であって、
前記2つの入力信号が入力され、前記2つの入力信号とは異なる外部信号である制御信号によって定まる第1の遅延時間だけ前記2つの入力信号の各々を遅延させて出力する可変バッファと、
前記可変バッファへ、前記制御信号を出力することで、前記第1の遅延時間を制御する遅延制御部とを備える
集積回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011011819A JP2012155388A (ja) | 2011-01-24 | 2011-01-24 | ゆらぎ増幅装置及び真性乱数生成器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011011819A JP2012155388A (ja) | 2011-01-24 | 2011-01-24 | ゆらぎ増幅装置及び真性乱数生成器 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012155388A true JP2012155388A (ja) | 2012-08-16 |
Family
ID=46837091
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011011819A Pending JP2012155388A (ja) | 2011-01-24 | 2011-01-24 | ゆらぎ増幅装置及び真性乱数生成器 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2012155388A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016118934A (ja) * | 2014-12-19 | 2016-06-30 | 株式会社メガチップス | 乱数生成装置及び乱数生成方法 |
-
2011
- 2011-01-24 JP JP2011011819A patent/JP2012155388A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016118934A (ja) * | 2014-12-19 | 2016-06-30 | 株式会社メガチップス | 乱数生成装置及び乱数生成方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20110169580A1 (en) | Inverting gate with maximized thermal noise in random number genertion | |
TWI373621B (en) | Device for jitter measurement and method thereof | |
JP2012516629A (ja) | 性能監視用クリティカルパス回路 | |
CN103378826A (zh) | 高精度单沿捕获以及延迟测量电路 | |
US9405510B2 (en) | Random number generator | |
US8930428B2 (en) | Random number generation circuit | |
JP2005521059A (ja) | 不変コンポーネント・バーニア遅延線を使用するタイミング測定システム及び方法 | |
US20110302232A1 (en) | Apparatus for generating random number | |
US7602219B2 (en) | Inverting cell | |
Yang et al. | TOTAL: TRNG on-the-fly testing for attack detection using lightweight hardware | |
Cao et al. | Exploring active manipulation attacks on the TERO random number generator | |
Cao et al. | An energy-efficient true random number generator based on current starved ring oscillators | |
Chan et al. | A deep sub-micron timing measurement circuit using a single-stage Vernier delay line | |
Fujieda | On the feasibility of TERO-based true random number generator on Xilinx FPGAs | |
JP2013120836A (ja) | 半導体集積回路 | |
Amsaad et al. | A dynamic area-efficient technique to enhance ROPUFs security against modeling attacks | |
US8878616B2 (en) | Inverting difference oscillator | |
Jin et al. | A dynamically reconfigurable entropy source circuit for high-throughput true random number generator | |
EP1975780B1 (en) | Random number generator | |
JP2012155388A (ja) | ゆらぎ増幅装置及び真性乱数生成器 | |
US10311966B2 (en) | On-chip diagnostic circuitry monitoring multiple cycles of signal samples | |
US7119570B1 (en) | Method of measuring performance of a semiconductor device and circuit for the same | |
JP5731618B2 (ja) | 性能監視用クリティカルパス回路 | |
US9093994B2 (en) | Method for detecting a correlation | |
Levi et al. | Tight-ES-TRNG: Improved Construction and Robustness Analysis |