JP2007207054A - データ処理装置 - Google Patents
データ処理装置 Download PDFInfo
- Publication number
- JP2007207054A JP2007207054A JP2006026541A JP2006026541A JP2007207054A JP 2007207054 A JP2007207054 A JP 2007207054A JP 2006026541 A JP2006026541 A JP 2006026541A JP 2006026541 A JP2006026541 A JP 2006026541A JP 2007207054 A JP2007207054 A JP 2007207054A
- Authority
- JP
- Japan
- Prior art keywords
- oscillator
- output
- bias current
- bit
- 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.)
- Withdrawn
Links
Images
Abstract
【課題】チップ温度が著しく低下しても高い乱数性を維持した乱数を発生することにより高いセキュリティーを維持すること。
【解決手段】乱数発生器RNGは、被サンプリング信号RNGVCOを生成する第1発振器VCO1とサンプリング信号RNGOSCを生成する第2発振器VCO2とを含む発振ユニットRNGOと、RNGVCOをRNGOSCによってサンプリングすることにより乱数RNを生成する論理ユニットRNGLとを含む。発振ユニットRNGOは、VCO1の発振周波数を決定する第1バイアス電流とVCO2の発振周波数を決定する第2バイアス電流とのいずれかのバイアス電流の値を制御する複数ビット制御信号lsfr1[3:0]、lsfr2[1:0]を生成する制御ユニットLFSR1、LFSR2を更に含む。
【選択図】図3
【解決手段】乱数発生器RNGは、被サンプリング信号RNGVCOを生成する第1発振器VCO1とサンプリング信号RNGOSCを生成する第2発振器VCO2とを含む発振ユニットRNGOと、RNGVCOをRNGOSCによってサンプリングすることにより乱数RNを生成する論理ユニットRNGLとを含む。発振ユニットRNGOは、VCO1の発振周波数を決定する第1バイアス電流とVCO2の発振周波数を決定する第2バイアス電流とのいずれかのバイアス電流の値を制御する複数ビット制御信号lsfr1[3:0]、lsfr2[1:0]を生成する制御ユニットLFSR1、LFSR2を更に含む。
【選択図】図3
Description
本発明は、データ処理装置に関し、特にチップ温度が著しく低下しても高い乱数性を維持した乱数を発生することにより高いセキュリティーを維持するのに有益な技術に関する。
乱数発生器は、高度のセキュリティーを達成するためワンタイムパスワード、鍵生成、認証プロトコールで広く使用されている重要な暗号源である。暗号処理においては、アタッカーや盗用者に理解されない耐久情報を生成するために、乱数が必要となる。暗号処理の多くの場合では、乱数は抵抗性熱雑音のような予測不能で、偶然性を含む信号源により生成される。もし、偶然性を含む乱数性を持つ信号源が全ての決定的な影響から十分に分離されるならば、真性乱数発生器を実現することが可能となる。
下記の非特許文献1には、乱数源としてCMOSリング発振器中のタイミング・ジッタもしくは発振ドリフトを使用する乱数発生器が開示されている。このタイミング・ジッタは、リング発振器のトランジスタ中に存在する熱雑音に起因する。発振器による方法では、乱数ストリームを生成するために、2つ以上の発振器が組み合わされる。D型フリップフロップを使用して、低周波発振器が高周波発振器の出力をサンプリングする。各発振周波数が各サイクルにてランダムにドリフトするなら、出力ストリームもランダムとなると報告されている。
また、下記の非特許文献2には、低周波発振器により高周波発振器の出力をサンプリングして、パリティーフィルタによりデューティーサイクルバイアスを除去した後に、フリップフロップの出力をリニア・フィードバック・シフトレジスタ(LFSR)に供給して乱数発生器を構成することが報告されている。
Craig S.Petrie and J.Alvin Connelly,"MODELING AND SIMULATION OF OSCILLATOR−BASED RANDOM NUMBER GENARATORS" 1996 IEEE Symposium on Circuit and Systems, Volume 4, 12−15 May 1996, PP.324−327
K.H.Tsoi,K.H.Leung and P.H.W.Leong,"Compact FPGA−based True and Pseudo Random Number Generators" Prcoceedings of the 11th Annual IEEE Symposium on Field−Programmable Custom Computing Machines(FCCM‘03) 9−11 April 2003, PP.51−61
本発明に先立って、本発明者等は乱数発生器に関して、下記のような検討を行った。
電子決済の機能を持つICカードに搭載するためのマイクロコンピュータ(以下、ICカードマイコンと称する)には、高度のセキュリティーが必要となる。そのためには、乱数発生の機能が必要となる。
ICカードマイコンのチップには、高度のセキュリティー機能のための乱数発生器が搭載されるだけではなく、データ処理のためのCPUも当然搭載される。CPUによるプログラム実行のためには、CPUにはクロック信号が供給されて、クロック信号のタイミングでCPUはパイプライン動作によりプログラムに従った動作を実行する。従って、CPUを動作させるためのICカードマイコンのチップ内部の内部電源線や内部グランド線にも、クロック信号によるノイズが漏洩することになる。従って、このチップに搭載された乱数発生器にもクロック信号によるノイズが漏洩する。従って、乱数発生器を構成するための低周波発振器と高周波発振器とにも、クロック信号によるノイズが漏洩する。このクロック信号によるノイズのレベルが2つの発振器のタイミング・ジッタもしくは発振ドリフトを決定する熱雑音のレベルよりも十分低ければ、高い乱数性を有する乱数が乱数発生器から発生される。
しかし、ICカードマイコンの周囲温度の低下により、チップ温度が著しく低下すると、良く知られているようにトランジスタ等から発生される熱雑音のレベルは著しく低下する。従って、熱雑音のレベルよりもクロック信号によるノイズのレベルが高くなり、乱数発生器から発生される乱数の乱数性も著しく低下する。乱数の発生に際して、高周波発振器の出力が低周波発振器の出力によってサンプリングされるので、高周波発振器の出力が被サンプリング信号となり、低周波発振器の出力がサンプリング信号となる。
従って、熱雑音のレベルよりもクロック信号によるノイズのレベルが高くなった場合の高周波発振器の出力周波数fHと低周波発振器の出力周波数fLは、クロック信号の周波数fclkと下記の関係となる。
fH=(MH/NH)*fclk
fL=(ML/NL)*fclk
ここで、MH、NH、ML、NLは、それぞれ正の整数である。
fL=(ML/NL)*fclk
ここで、MH、NH、ML、NLは、それぞれ正の整数である。
従って、熱雑音のレベルがクロック信号によるノイズのレベルが低くなった場合は、高周波発振器の出力周波数fHと低周波発振器の出力周波数fLとはクロック信号の周波数fclkに同期化されることになる。その結果、低周波発振器の出力のサンプリング信号によってサンプリングされる高周波発振器の出力の被サンプリング信号から生成される乱数の乱数性が著しく低下する。
従って、本発明は上記のような本発明者等による検討結果を基にしてなされたものである。従って、本発明の目的とするところは、チップ温度が著しく低下しても高い乱数性を維持した乱数を発生することにより高いセキュリティーを維持することにある。本発明のその他の目的は、チップに搭載されたCPUに供給されるクロック信号によるノイズが乱数発生器へ漏洩しても高い乱数性を維持した乱数を発生することにより高いセキュリティーを維持することにある。
本発明の前記並びにその他の目的と新規な特徴とは、本明細書の記述及び添付図面から明らかになるであろう。
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば、下記の通りである。
すなわち、本発明のひとつの形態によるデータ処理装置は、クロック信号(CLK)が供給される中央処理ユニット(CPU)と、前記中央処理ユニット(CPU)によるセキュリティーデータ処理に用いられる乱数(RN)を生成する乱数発生器(RNG)とをチップ上に具備する(図1参照)。
前記乱数発生器(RNG)は、被サンプリング信号(RNGVCO)を生成する第1発振器(VCO1)とサンプリング信号(RNGOSC)を生成する第2発振器(VCO2)とを含む発振ユニット(RNGO)と、前記発振ユニット(RNGO)の前記第1発振器(VCO1)の出力(VCOOUT)から生成された前記被サンプリング信号(RNGVCO)を前記発振ユニット(RNGO)の前記第2発振器(VCO2)の出力(OSCOUT)から生成された前記サンプリング信号(RNGOSC)によってサンプリングすることにより前記乱数(RN)を生成する論理ユニット(RNGL)とを含む(図2、図3参照)。
前記発振ユニット(RNGO)は、前記第1発振器(VCO1)の前記出力の発振周波数(VCOOUT)を決定する第1バイアス電流と前記第2発振器(VCO2)の前記出力(OSCOUT)の発振周波数を決定する第2バイアス電流とのいずれかのバイアス電流の値を前記第1発振器(VCO1)の前記出力(VCOOUT)と前記第2発振器(VCO2)の前記出力(OSCOUT)のいずれかの出力に応答して制御するための複数ビット制御信号(lsfr1[3:0]、lsfr2[1:0])を生成する制御ユニット(LFSR1、LFSR2)を更に含み、前記第1発振器(VCO1)の前記出力(VCOOUT)の前記被サンプリング信号(RNGVCO)の前記発振周波数と前記第2発振器(VCO2)の前記出力(OSCOUT)の前記サンプリング信号(RNGOSC)の前記発振周波数とのいずれかの発振周波数を前記制御ユニット(LFSR1、LFSR2)から生成される前記複数ビット制御信号(lsfr1[3:0]、lsfr2[1:0])によって制御する(図3、図4、図6参照)。
本発明の前記ひとつの形態の手段によれば、前記第1発振器(VCO1)の前記出力(VCOOUT)と前記第2発振器(VCO2)の前記出力(OSCOUT)のいずれかの出力に応答する前記制御ユニット(LFSR1、LFSR2)から生成される複雑なストリーム波形を有する前記複数ビット制御信号(lsfr1[3:0]、lsfr2[1:0])によって、前記第1発振器(VCO1)の前記出力(VCOOUT)の前記発振周波数を決定する前記第1バイアス電流(it1)のジッタもしくは前記第2発振器(VCO2)の前記出力(OSCOUT)の前記発振周波数を決定する前記第2バイアス電流(it2)のジッタが制御される。前記第1発振器(VCO1)の前記出力(VCOOUT)の前記発振周波数に含まれるジッタもしくは前記第2発振器(VCO2)の前記出力(OSCOUT)の前記発振周波数に含まれるジッタによって、チップ温度が著しく低下しても高い乱数性を維持した乱数(RN)を前記論理ユニット(RNGL)から発生することが可能となる。
本発明の具体的な形態によるデータ処理装置では、前記制御ユニット(LFSR1、LFSR2)は、前記第1発振器(VCO1)の前記出力(VCOOUT)に応答して前記第1発振器(VCO1)の前記出力(VCOOUT)の発振周波数を決定する第1バイアス電流(it1)の値を制御するための第1の複数ビット制御信号(lsfr1[3:0])を生成する第1制御ユニット(LFSR1)と、前記第2発振器(VCO2)の前記出力(OSCOUT)に応答して前記第2発振器(VCO2)の前記出力(OSCOUT)の発振周波数を決定する第2バイアス電流(it2)の値を制御するための第2の複数ビット制御信号(lsfr2[1:0])を生成する第2制御ユニット(LFSR2)とを更に含み、前記第1発振器(VCO1)の前記出力(VCOOUT)の前記被サンプリング信号(RNGVCO)の前記発振周波数が前記第1制御ユニット(LFSR1)から生成される前記第1の複数ビット制御信号(lsfr1[3:0])により制御され、前記第2発振器(VCO2)の前記出力(OSCOUT)の前記サンプリング信号(RNGOSC)の前記発振周波数が前記第2制御ユニット(LFSR2)から生成される前記第2の複数ビット制御信号(lsfr2[1:0])により制御される(図3、図4、図6参照)。
本発明の前記具体的な形態の手段によれば、それぞれ複雑なビットのストリーム波形を有する前記第1の複数ビット制御信号(lsfr1[3:0])と前記第2の複数ビット制御信号(lsfr2[1:0])とによって、前記第1発振器(VCO1)の前記出力(VCOOUT)の前記発振周波数を決定する前記第1バイアス電流(it1)のジッタと前記第2発振器(VCO2)の前記出力(OSCOUT)の前記発振周波数を決定する前記第2バイアス電流(it2)のジッタとがそれぞれ制御される。前記第1発振器(VCO1)の前記出力(VCOOUT)の前記発振周波数に含まれるジッタと前記第2発振器(VCO2)の前記出力(OSCOUT)の前記発振周波数に含まれるジッタとによって、チップ温度が著しく低下しても高い乱数性を維持した乱数(RN)を前記論理ユニット(RNGL)から発生することが可能となる。
本発明の他の具体的な形態によるデータ処理装置では、前記第1バイアス電流(it1)の値に依存する値の第1駆動電流を前記第1発振器(VCO1)に流すための第1駆動トランジスタ(QD1、QD2、QD3)の入力には第1熱雑音素子(QTN1)からの熱雑音出力が供給され、前記第2バイアス電流(it2)の値に依存する値の第2駆動電流を前記第2発振器(VCO2)に流すための第2駆動トランジスタ(QD5、QD6)の入力には第2熱雑音素子(QTN2)からの熱雑音出力が供給されている(図4、図6参照)。
本発明のより具体的な形態によるデータ処理装置では、前記第1制御ユニット(LFSR1)は前記第1発振器(VCO1)の前記出力(VCOOUT)に応答する第1多段論理回路(F/F0、F/F1…F/F12)と、前記第1多段論理回路(F/F0、F/F1…F/F12)の複数の出力が並列に入力されることにより前記第1の複数ビット制御信号(lsfr1[3:0])を出力する第1制御論理回路(Inv1、Inv2、Inv3、Inv4、EXOR1、EXOR2、EXOR3)とを含み、前記第2制御ユニット(LFSR2)は前記第2発振器(VCO2)の前記出力(OSCOUT)に応答する第2多段論理回路(F/F0、F/F1…F/F4)と、前記第2多段論理回路(F/F0、F/F1…F/F4)の複数の出力が並列に入力されることにより前記第2の複数ビット制御信号(lsfr2[1:0])を出力する第2制御論理回路(Inv5、Inv6、EXOR)とを含む(図4、図6参照)。
本発明の更に具体的な形態によるデータ処理装置では、前記第1発振器(VCO1)の前記出力(VCOOUT)の前記発振周波数を決定する前記第1バイアス電流(it1)がジッタを持つように、前記第1制御ユニット(LFSR1)から生成される前記第1の複数ビット制御信号(lsfr1[3:0])の各ビットは互いに異なるストリーム波形とされる(図5参照)。更に、前記第2発振器(VCO2)の前記出力(OSCOUT)の前記発振周波数を決定する前記第2バイアス電流(it2)がジッタを持つように、前記第2制御ユニット(LFSR2)から生成される前記第2の複数ビット制御信号(lsfr2[1:0])の各ビットは互いに異なるストリーム波形とされる(図7参照)。
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば、下記の通りである。
すなわち、本発明によれば、チップ温度が著しく低下しても高い乱数性を維持した乱数を発生することにより高いセキュリティーを維持することができる。
≪ICカードマイコンの構成≫
図1は、本発明のひとつの実施形態によるICカードに搭載するためのマイクロコンピュータとしてのデータ処理装置の構成を示す図である。従って、図1に示した全ての回路素子はICカードマイコンの1つのシリコン半導体チップ上に生成されている。中央処理ユニットCPUにはクロック信号CLKが供給される。従って、中央処理ユニットCPUは内部データバスDBを介してリードオンリーメモリROMと内蔵不揮発性フラッシュメモリEEPROMとからプログラムを読み出し、プログラムに従った動作がクロック信号CLKのタイミングにてパイプライン処理にて実行される。中央処理ユニットCPUによるデータ処理結果は、中央処理ユニットCPUの内部のレジスタファイルに格納され、また内部データバスDBを介して内蔵ランダムアクセスメモリRAMと内蔵不揮発性フラッシュメモリEEPROMにも格納される。また、中央処理ユニットCPUは、I/O端子を介してチップ外部の入出力装置と2次記憶装置とに接続可能となっている。図1ではクロック信号CLKはチップ外部の水晶発振器から供給されているが、それ以外に、チップ内部にリングオシレータを配置して、このリングオシレータからクロック信号CLKを出力して中央処理ユニットCPUへ供給しても良い。
図1は、本発明のひとつの実施形態によるICカードに搭載するためのマイクロコンピュータとしてのデータ処理装置の構成を示す図である。従って、図1に示した全ての回路素子はICカードマイコンの1つのシリコン半導体チップ上に生成されている。中央処理ユニットCPUにはクロック信号CLKが供給される。従って、中央処理ユニットCPUは内部データバスDBを介してリードオンリーメモリROMと内蔵不揮発性フラッシュメモリEEPROMとからプログラムを読み出し、プログラムに従った動作がクロック信号CLKのタイミングにてパイプライン処理にて実行される。中央処理ユニットCPUによるデータ処理結果は、中央処理ユニットCPUの内部のレジスタファイルに格納され、また内部データバスDBを介して内蔵ランダムアクセスメモリRAMと内蔵不揮発性フラッシュメモリEEPROMにも格納される。また、中央処理ユニットCPUは、I/O端子を介してチップ外部の入出力装置と2次記憶装置とに接続可能となっている。図1ではクロック信号CLKはチップ外部の水晶発振器から供給されているが、それ以外に、チップ内部にリングオシレータを配置して、このリングオシレータからクロック信号CLKを出力して中央処理ユニットCPUへ供給しても良い。
乱数発生器RNGは中央処理ユニットCPUによるセキュリティーデータ処理に用いられるものであり、内部データバスDBを介して中央処理ユニットCPU、内蔵ランダムアクセスメモリRAM、リードオンリーメモリROM、内蔵不揮発性フラッシュメモリEEPROMと接続されている。
チップ外部から電源電圧Vccが内蔵ボルテージレギュレータVregに供給されることにより、安定化された内部電源電圧Vddが中央処理ユニットCPU、乱数発生器RNG、内蔵ランダムアクセスメモリRAM、リードオンリーメモリROM、内蔵不揮発性フラッシュメモリEEPROMに供給される。中央処理ユニットCPU、乱数発生器RNG、内蔵ランダムアクセスメモリRAM、リードオンリーメモリROM、内蔵不揮発性フラッシュメモリEEPROMはチップ内部の内部グランド線を介してグランド端子Vssに接続される。このグランド端子Vssは、種々の電子機器のマザーボードのグランド配線に接続されることができる。従って、チップ内部の内部電源電圧Vddと内部グランド線とを介してクロック信号CLKによるノイズが内蔵ボルテージレギュレータVregから乱数発生器RNGへ漏洩する可能性がある。
図2は、図1の乱数発生器RNGの構成と機能とを説明する図である。
同図に示すように、乱数発生器RNGは、発振ユニットRNGOと論理ユニットRNGLとを含む。発振ユニットRNGOの出力VCOOUTから発振される被サンプリング信号RNGVCOは発振ユニットRNGOの他の出力OSCOUTから発振されるサンプリング信号RNGOSCによって論理ユニットRNGLにてサンプリングされることによって、論理ユニットRNGLは例えば16ビットの乱数RNを生成する。この16ビットの乱数RNは、図1に示したICカードマイコンの中央処理ユニットCPUによるセキュリティーデータ処理に用いられる。
図3は、図2に示した乱数発生器RNGの発振ユニットRNGOと論理ユニットRNGLの構成と機能とをより詳細に説明する図である。
同図に示すように、発振ユニットRNGOは、第1発振器VCO1と第2発振器VCO2とを含む。第1発振器VCO1の出力VCOOUTは分周器1/N2の入力が接続され、分周器1/N2の分周出力は第1制御ユニットLFSR1の入力に帰還入力されている。その結果、第1制御ユニットLFSR1の出力から、第1発振器VCO1の出力VCOOUTの発振周波数を決定するための例えば4ビットの制御信号lsfr1[3:0]が生成される。第1発振器VCO1の出力VCOOUTには分周器1/N1の入力が更に接続され、分周器1/N1の分周出力は第1出力バッファBuf1を介して被サンプリング信号RNGVCOとして論理ユニットRNGLへ供給される。第2発振器VCO2の出力OSCOUTは分周器1/N3の入力が接続され、分周器1/N3の分周出力は同様に第2制御ユニットLFSR2に帰還入力されている。第2制御ユニットLFSR2の出力から、第2発振器VCO2の出力OSCOUTの発振周波数を決定するための例えば2ビットの制御信号lsfr2[1:0]が生成される。第2発振器VCO2の出力OSCOUTは第2出力バッファBuf2を介してサンプリング信号RNGOSCとして論理ユニットRNGLへ供給される。
発振ユニットRNGOから生成された被サンプリング信号RNGVCOを発振ユニットRNGOから生成されたサンプリング信号RNGOSCによりサンプリングする論理ユニットRNGLは、1/32分周器1/32と、8ビットシフトレジスタ8 bit SF_Regと、1/8分周器1/8と、8ビットパリティー回路8bit_Prt_Cirとしての8ビット入力の排他的論理和回路と、32ビットのリニア・フィードバック・シフトレジスタLFSR(32bit)とから構成されている。発振ユニットRNGOから生成されたサンプリング信号RNGOSCは論理ユニットRNGLの1/32分周器により1/32分周されて、8ビットシフトレジスタ8 bit Sf_Regを構成する8個のフリップフロップF/F0、F/F1、F/F2、…、F/F7のクロック端子に供給される。8ビットシフトレジスタ8 bit Sf_Regの1段目のフリップフロップF/F0の入力には発振ユニットRNGOから生成された被サンプリング信号RNGVCOが1/32分周器を介して入力され、1段目のフリップフロップF/F0の出力は2段目のフリップフロップF/F1の入力に供給される。2段目のフリップフロップF/F1の出力は3段目のフリップフロップF/F2の入力に供給され、以下同様に7段目のフリップフロップF/F6(図示せず)の出力は8段目のフリップフロップF/F7の入力に供給される。8ビットシフトレジスタ8 bit Sf_Regを構成する8個のフリップフロップF/F0、F/F1、F/F2、…、F/F7の8個の出力は8ビットパリティー回路8bit_Prt_Cirに供給されることによって、デューティーサイクルバイアスが除去される。8ビットパリティー回路8bit_Prt_Cirの出力は、32ビットのリニア・フィードバック・シフトレジスタLFSR(32bit)に供給される。また、発振ユニットRNGOからのサンプリング信号RNGOSCが供給された1/32分周器の出力は1/8分周器1/8に入力され、1/8分周器の1/8分周出力は32ビットのリニア・フィードバック・シフトレジスタLFSR(32bit)を構成する32個のフリップフロップF/F0、F/F1、F/F2、…、F/F16、…、F/F31のクロック端子に供給される。32ビットのリニア・フィードバック・シフトレジスタLFSR(32bit)の1段目のフリップフロップF/F0には8ビットパリティー回路8bit_Prt_Cirの出力が供給され、1段目のフリップフロップF/F0の出力は2段目のフリップフロップF/F1の入力に供給される。2段目のフリップフロップF/F1の出力は3段目のフリップフロップF/F2の入力に供給され、以下同様に31段目のフリップフロップF/F30(図示せず)の出力は32段目のフリップフロップF/F31の入力に供給される。17段目のフリップフロップF/F16から32段目のフリップフロップF/F31までの計16ビットの出力は、論理ユニットRNGLから生成される乱数RNとなる。
図3の実施形態では、第1発振器VCO1の出力VCOOUTの発振周波数を決定する第1バイアス電流it1がジッタを持つように、第1制御ユニットLFSR1から生成される第1の複数ビット制御信号lsfr1[3:0]各ビットは互いに異なるストリーム波形とされる。同様に、第2発振器VCO2の出力OSCOUTの発振周波数を決定する第2バイアス電流it2がジッタを持つように、第2制御ユニットLFSR2から生成される第2の複数ビット制御信号lsfr2[1:0]の各ビットは互いに異なるストリーム波形とされる。その結果、それぞれ複雑なビットのストリーム波形を有する第1の複数ビット制御信号lsfr1[3:0]と第2の複数ビット制御信号lsfr2[1:0]とによって、第1発振器VCO1の出力VCOOUTの発振周波数を決定する第1バイアス電流it1のジッタの大きさと第2発振器VCO2の出力OSCOUTの発振周波数を決定する第2バイアス電流it2のジッタの大きさとがそれぞれ制御される。第1発振器VCO1の出力VCOOUTの被サンプリング出力RNGVCOの発振周波数に含まれるジッタと第2発振器VCO2の出力OSCOUTのサンプリング出力RNGOSCの発振周波数に含まれるジッタとによって、チップ温度が著しく低下しても、論理ユニットRNGLでの被サンプリング出力RNGVCOのサンプリング出力RNGOSCによるサンプリングによって生成される乱数RNは高い乱数性を維持することが可能となる。その結果、図1において、チップ内部の内部電源電圧Vddと内部グランド線とを介してクロック信号CLKによる高レベルのノイズが内蔵ボルテージレギュレータVregから乱数発生器RNGへ漏洩する場合にも、この乱数RNは高い乱数性を維持することが可能となる。
図4は、図3に示した乱数発生器RNGの発振ユニットRNGOの第1制御ユニットLFSR1と第1発振器VCO1の構成と機能とをより詳細に説明する図である。
同図に示すように、乱数発生器RNGの発振ユニットRNGOの第1制御ユニットLFSR1は第1発振器VCO1の出力VCOOUTに接続された分周器1/N2の分周出力に応答する第1多段論理回路F/F0、F/F1…F/F12と、この第1多段論理回路F/F0、F/F1…F/F12の複数の出力が並列に入力されることにより第1の複数ビット制御信号lsfr1[3:0]を出力する第1制御論理回路Inv0、Inv1、Inv2、Inv3、EXOR1、EXOR2、EXOR3とを含む。乱数発生器RNGの発振ユニットRNGOの第1発振器VCO1は、4ビットの電流スイッチ4bit_CASWと、リングオシレータVCO_C1とから構成されている。
第1制御ユニットLFSR1の第1多段論理回路F/F0、F/F1…F/F12の13個のフリップフロップF/F0、F/F1…F/F12の複数の出力は排他的論理和EXOR1、EXOR2、EXOR3を介して1段目のフリップフロップF/F0のデータ端子dに帰還入力されるので、第1制御ユニットLFSR1はリニア・フィードバック・シフトレジスタの回路構成となっている。更に、13個のフリップフロップF/F0、F/F1…F/F12の複数の出力は第1制御論理回路Inv0、Inv1、Inv2、Inv3、EXOR1、EXOR2、EXOR3に供給されることによって、第1制御論理回路Inv0、Inv1、Inv2、Inv3、EXOR1、EXOR2、EXOR3から4ビットの制御信号lsfr1[3]、lsfr1[2]、lsfr1[1]、lsfr1[0]が生成される。この4ビットの制御信号lsfr1[3]、lsfr1[2]、lsfr1[1]、lsfr1[0]は4ビットの定電流源i3、i2、i1、i0にそれぞれ直列接続された4ビットのスイッチのオン・オフを制御する。この4ビットのスイッチのオン・オフにより電流値が制御された可変定電流it1がカレントミラーの入力トランジスタQD0に流入する。カレントミラーの複数の出力トランジスタQD1、QD2、QD3、QD4には差動増幅器Diff1、Diff2、Diff3、Diff4がそれぞれ接続されている。カレントミラーの複数の出力トランジスタQD1、QD2、QD3、QD4に流れるバイアス電流は、遅延回路としての差動増幅器Diff1、Diff2、Diff3、Diff4の遅延時間を制御する。カレントミラーの複数の出力トランジスタQD1、QD2、QD3、QD4に流れるバイアス電流が大きくなると、遅延回路としての差動増幅器Diff1、Diff2、Diff3、Diff4の遅延時間は小さくなり、3つの差動増幅器Diff1、Diff2、Diff3で構成されたリングオシレータVCO_C1からの発振周波数は高くなる。差動増幅器Diff4とインバータとを介してリングオシレータVCO_C1からの発振出力が第1発振器VCO1の出力VCOOUTとなる。尚、カレントミラーの入力トランジスタQD0と複数の出力トランジスタQD1、QD2、QD3、QD4との間には、熱雑音素子としてのMOSトランジスタQTN1が接続されている。
図5は、図4に示した乱数発生器RNGの発振ユニットRNGOの第1制御ユニットLFSR1と第1発振器VCO1の動作を説明するための波形図である。
同図に示すように、分周器1/N2を介しての第1発振器VCO1の出力VCOOUTに応答する第1制御ユニットLFSR1の第1制御論理回路Inv0、Inv1、Inv2、Inv3、EXOR1、EXOR2、EXOR3から生成される4ビットの制御信号lsfr1[3]、lsfr1[2]、lsfr1[1]、lsfr1[0]は、互いに異なるストリーム波形となっている。従って、4ビットの制御信号の組み合わせに組み合わせによるミキシングによって、カレントミラーの入力トランジスタQD0に流入する可変定電流it1は複雑な多値波形となる。従って、同図に示すように、被サンプリング信号RNGVCOのベースとなる第1発振器VCO1の出力VCOOUTの周波数も、複雑な多値波形の可変定電流it1によって、大きなジッタに設定される。従って、ICカードマイコンの周囲温度の低下により、熱雑音MOSトランジスタQTN1から生成される熱雑音レベルが低下したとしても、被サンプリング信号RNGVCOのベースとなる第1発振器VCO1の出力VCOOUTの周波数は複雑な多値波形の可変定電流it1により大きなジッタを維持することができる。
図6は、図3に示した乱数発生器RNGの発振ユニットRNGOの第2制御ユニットLFSR2と第2発振器VCO2の構成と機能とをより詳細に説明する図である。
同図に示すように、乱数発生器RNGの発振ユニットRNGOの第2制御ユニットLFSR2は第2発振器VCO2の出力OSCOUTに接続された分周器1/N3の分周出力に応答する第2多段論理回路F/F0、F/F1…F/F4と、この第2多段論理回路F/F0、F/F1…F/F4の複数の出力が並列に入力されることにより第2の複数ビット制御信号lsfr2[1:0]を出力する第2制御論理回路Inv0、Inv1、EXORとを含む。乱数発生器RNGの発振ユニットRNGOの第2発振器VCO2は、2ビットの電流スイッチ2bit_CASWと、リングオシレータVCO_C2とから構成されている。
第2制御ユニットLFSR2の第2多段論理回路F/F0、F/F1…F/F4の5個のフリップフロップF/F0、F/F1…F/F4の複数の出力は排他的論理和EXORを介して1段目のフリップフロップF/F0のデータ端子dに帰還入力されるので、第2制御ユニットLFSR2はリニア・フィードバック・シフトレジスタの回路構成となっている。更に、5個のフリップフロップF/F0、F/F1…F/F4の複数の出力は第2制御論理回路Inv0、Inv1、EXORに供給されることによって、第2制御論理回路Inv0、Inv1、EXORから2ビットの制御信号lsfr2[1]、lsfr2[0]が生成される。この2ビットの制御信号lsfr2[1]、lsfr2[0]は2ビットの定電流源i1、i0にそれぞれ直列接続された2ビットのスイッチのオン・オフを制御する。この2ビットのスイッチのオン・オフにより電流値が制御された可変定電流it2がカレントミラーの入力トランジスタQD0に流入する。カレントミラーの複数の出力トランジスタQD1、QD2、QD3にはインバータINV1、INV2、INV3がそれぞれ接続されている。カレントミラーの複数の出力トランジスタQD1、QD2、QD3に流れるバイアス電流は、遅延回路としてのインバータINV1、INV2、INV3の遅延時間を制御する。カレントミラーの複数の出力トランジスタQD1、QD2、QD3に流れるバイアス電流が大きくなると、遅延回路としての差動増幅器Diff1、Diff2、Diff3、Diff4の遅延時間は小さくなり、3つの差動増幅器インバータINV1、INV2、INV3で構成されたリングオシレータVCO_C2からの発振周波数は高くなる。インバータとを介してリングオシレータVCO_C2からの発振出力が第2発振器VCO2の出力OSCOUTとなる。尚、カレントミラーの入力トランジスタQD0と複数の出力トランジスタQD1、QD2、QD3との間には、熱雑音素子としてのMOSトランジスタQTN2が接続されている。
図7は、図6に示した乱数発生器RNGの発振ユニットRNGOの第2制御ユニットLFSR2と第2発振器VCO2の動作を説明するための波形図である。
同図に示すように、分周器1/N3を介しての第2発振器VCO2の出力OSCOUTに応答する第2制御ユニットLFSR2の第2制御論理回路Inv0、Inv1、EXORから生成される2ビットの制御信号lsfr2[1]、lsfr2[0]は、互いに異なるストリーム波形となっている。従って、2ビットの制御信号の組み合わせによるミキシングによって、カレントミラーの入力トランジスタQD0に流入する可変定電流it2は複雑な多値波形となる。従って、同図に示すように、サンプリング信号RNGOSCのベースとなる第2発振器VCO2の出力OSCOUTの周波数も、複雑な多値波形の可変定電流it2によって、大きなジッタに設定される。従って、ICカードマイコンの周囲温度の低下により、熱雑音MOSトランジスタQTN2から生成される熱雑音レベルが低下したとしても、サンプリング信号RNGOSCのベースとなる第2発振器VCO2の出力OSCOUTの周波数は複雑な多値波形の可変定電流it2により大きなジッタを維持することができる。
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
例えば、図4や図6などの実施形態において、カレントミラーと熱雑音素子とを構成するMOSトランジスタは、バイポーラトランジスタに置換されることもできる。
CLK クロック信号
CPU 中央処理ユニット
RNG 乱数発生器
RNGO 発振ユニット
RNGL 論理ユニット
RNGVCO 被サンプリング信号
RNGOSC サンプリング信号
RN 乱数
VCO1 第1発振器
VCOOUT 出力
VCO2 第2発振器
OSCOUT 出力
LFSR1、LFSR2 制御ユニット
lsfr1[3:0]、lsfr2[1:0] 複数ビット制御信号
CPU 中央処理ユニット
RNG 乱数発生器
RNGO 発振ユニット
RNGL 論理ユニット
RNGVCO 被サンプリング信号
RNGOSC サンプリング信号
RN 乱数
VCO1 第1発振器
VCOOUT 出力
VCO2 第2発振器
OSCOUT 出力
LFSR1、LFSR2 制御ユニット
lsfr1[3:0]、lsfr2[1:0] 複数ビット制御信号
Claims (8)
- クロック信号が供給される中央処理ユニットと、前記中央処理ユニットによるセキュリティーデータ処理に用いられる乱数を生成する乱数発生器とをチップ上に具備し、
前記乱数発生器は、被サンプリング信号を生成する第1発振器とサンプリング信号を生成する第2発振器とを含む発振ユニットと、前記発振ユニットの前記第1発振器の出力に生成された前記被サンプリング信号を前記発振ユニットの前記第2発振器の出力に生成された前記サンプリング信号によってサンプリングすることにより前記乱数を生成する論理ユニットとを含み、
前記発振ユニットは、前記第1発振器の前記出力の発振周波数を決定する第1バイアス電流と前記第2発振器の前記出力の発振周波数を決定する第2バイアス電流とのいずれかのバイアス電流の値を前記第1発振器の前記出力と前記第2発振器の前記出力とのいずれかの出力に応答して制御するための複数ビット制御信号を生成する制御ユニットを更に含み、前記第1発振器の前記出力の前記被サンプリング信号の前記発振周波数と前記第2発振器の前記出力の前記サンプリング信号の前記発振周波数とのいずれかの発振周波数を前記制御ユニットから生成される前記複数ビット制御信号によって制御するデータ処理装置。 - 前記制御ユニットは、前記第1発振器の前記出力に応答して前記第1発振器の前記出力の発振周波数を決定する第1バイアス電流の値を制御するための第1の複数ビット制御信号を生成する第1制御ユニットと、前記第2発振器の前記出力に応答して前記第2発振器の前記出力の発振周波数を決定する第2バイアス電流の値を制御するための第2の複数ビット制御信号を生成する第2制御ユニットとを含み、
前記第1発振器の前記出力の前記被サンプリング信号の前記発振周波数が前記第1制御ユニットから生成される前記複数ビット制御信号の第1の複数ビット制御信号により制御され、前記第2発振器の前記出力の前記サンプリング信号の前記発振周波数が前記第2制御ユニットから生成される前記複数ビット制御信号の第2の複数ビット制御信号により制御される請求項1に記載のデータ処理装置。 - 前記第1バイアス電流の値に依存する値の第1駆動電流を前記第1発振器に流すための第1駆動トランジスタと前記第2バイアス電流の値に依存する値の第2駆動電流を前記第2発振器に流すための第2駆動トランジスタとのいずれかの駆動トランジスタの入力には熱雑音素子からの熱雑音出力が供給された請求項1に記載のデータ処理装置。
- 前記第1バイアス電流の値に依存する値の第1駆動電流を前記第1発振器に流すための第1駆動トランジスタの入力には第1熱雑音素子からの熱雑音出力が供給され、前記第2バイアス電流の値に依存する値の第2駆動電流を前記第2発振器に流すための第2駆動トランジスタの入力には第2熱雑音素子からの熱雑音出力が供給された請求項2に記載のデータ処理装置。
- 前記第1制御ユニットは前記第1発振器の前記出力に応答する第1多段論理回路と、前記第1多段論理回路の複数の出力が並列に入力されることにより前記第1の複数ビット制御信号を出力する第1制御論理回路とを含み、前記第2制御ユニットは前記第2発振器の前記出力に応答する第2多段論理回路と、前記第2多段論理回路の複数の出力が並列に入力されることにより前記第2の複数ビット制御信号を出力する第2制御論理回路とを含む請求項2に記載のデータ処理装置。
- 前記第1制御ユニットは前記第1発振器の前記出力に応答する第1多段論理回路と、前記第1多段論理回路の複数の出力が並列に入力されることにより前記第1の複数ビット制御信号を出力する第1制御論理回路とを含み、前記第2制御ユニットは前記第2発振器の前記出力に応答する第2多段論理回路と、前記第2多段論理回路の複数の出力が並列に入力されることにより前記第2の複数ビット制御信号を出力する第2制御論理回路とを含む請求項4に記載のデータ処理装置。
- 前記第1発振器の前記出力の前記発振周波数を決定する前記第1バイアス電流がジッタを持つように前記第1制御ユニットから生成される前記第1の複数ビット制御信号の各ビットは互いに異なるストリーム波形とされ、前記第2発振器の前記出力の前記発振周波数を決定する前記第2バイアス電流がジッタを持つように前記第2制御ユニットから生成される前記第2の複数ビット制御信号の各ビットは互いに異なるストリーム波形とされる請求項2、請求項4、請求項5、請求項6のいずれかに記載のデータ処理装置。
- 前記データ処理装置は電子決済の機能を持つICカードに搭載するためのマイクロコンピュータである請求項7に記載のデータ処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006026541A JP2007207054A (ja) | 2006-02-03 | 2006-02-03 | データ処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006026541A JP2007207054A (ja) | 2006-02-03 | 2006-02-03 | データ処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007207054A true JP2007207054A (ja) | 2007-08-16 |
Family
ID=38486457
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006026541A Withdrawn JP2007207054A (ja) | 2006-02-03 | 2006-02-03 | データ処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007207054A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009163737A (ja) * | 2007-12-31 | 2009-07-23 | Intel Corp | 乱数生成装置 |
JP4983991B1 (ja) * | 2011-04-07 | 2012-07-25 | パナソニック株式会社 | 乱数生成装置および乱数生成方法 |
WO2014065496A1 (ko) * | 2012-10-24 | 2014-05-01 | 에스케이텔레콤 주식회사 | 난수 생성시 신호원에 의한 편향을 제거하는 방법 및 장치 |
KR20140110142A (ko) * | 2013-03-04 | 2014-09-17 | 삼성전자주식회사 | 난수 발생기 |
JP2018537722A (ja) * | 2015-12-18 | 2018-12-20 | アイディー クアンティック エス.アー. | 量子鍵配送システムにエントロピー源を追加するための装置および方法 |
-
2006
- 2006-02-03 JP JP2006026541A patent/JP2007207054A/ja not_active Withdrawn
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009163737A (ja) * | 2007-12-31 | 2009-07-23 | Intel Corp | 乱数生成装置 |
US8595274B2 (en) | 2007-12-31 | 2013-11-26 | Intel Corporation | Random number generator |
JP4983991B1 (ja) * | 2011-04-07 | 2012-07-25 | パナソニック株式会社 | 乱数生成装置および乱数生成方法 |
JP2012220649A (ja) * | 2011-04-07 | 2012-11-12 | Panasonic Corp | 乱数生成装置および乱数生成方法 |
WO2014065496A1 (ko) * | 2012-10-24 | 2014-05-01 | 에스케이텔레콤 주식회사 | 난수 생성시 신호원에 의한 편향을 제거하는 방법 및 장치 |
US9535661B2 (en) | 2012-10-24 | 2017-01-03 | Sk Telecom Co., Ltd. | Method and device for removing biasing due to signal source during random number generation |
KR20140110142A (ko) * | 2013-03-04 | 2014-09-17 | 삼성전자주식회사 | 난수 발생기 |
KR101987141B1 (ko) | 2013-03-04 | 2019-10-01 | 삼성전자주식회사 | 난수 발생기 |
JP2018537722A (ja) * | 2015-12-18 | 2018-12-20 | アイディー クアンティック エス.アー. | 量子鍵配送システムにエントロピー源を追加するための装置および方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8209367B2 (en) | Random number generator | |
US8744073B2 (en) | Digital random number generator based on digitally-controlled oscillators | |
US9747075B2 (en) | Random number generator | |
US6954770B1 (en) | Random number generator | |
US9612801B2 (en) | Power supply for ring-oscillator based true random number generator and method of generating true random numbers | |
KR20140110142A (ko) | 난수 발생기 | |
US7526087B2 (en) | Random number generator | |
JP2007207054A (ja) | データ処理装置 | |
US20090327381A1 (en) | True random number generator | |
JP4290500B2 (ja) | 乱数発生装置 | |
JP4417389B2 (ja) | デジタルロジックを利用した乱数発生装置及び方法 | |
US7587439B1 (en) | Method and apparatus for generating a random bit stream in true random number generator fashion | |
CN114115807A (zh) | 随机数生成器及随机数生成方法 | |
JP4478643B2 (ja) | 乱数生成回路 | |
JP5119417B2 (ja) | 擬似乱数生成装置 | |
TW202321860A (zh) | 隨機數產生器及其操作方法 | |
CN115758951A (zh) | 一种基于多回路布尔振荡环的数字熵源集成电路 | |
JP2006509286A (ja) | 真正乱数の発生システムおよび発生方法 | |
JP2009130927A (ja) | 半導体集積回路のデジタル温度情報生成装置 | |
Murphy | Asynchronous Physical Unclonable Functions–A sync PUF | |
JP2019016321A (ja) | 乱数生成回路 | |
Anchana et al. | Design And Analysis Of Physical Unclonable Function | |
US11263331B2 (en) | Electronic device for checking randomness of identification key device, random key checker circuit, and method of checking randomness of electronic device | |
US20230179411A1 (en) | Entropy generation for use in cryptographic random number generation | |
Antoniadis et al. | An efficient implementation of a delay-based PUF construction |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20090407 |