(57)【要約】【課題】    小型で高品質の乱数を高速で生成可能な乱数生成回路及びこれを用いた半導体集積回路、ＩＣカード及び情報端末機器を提供することを目的とする。【解決手段】    第１の生成速度のデジタル乱数信号を入力し、前記第１の生成速度の２倍の第２の生成速度のデジタル乱数信号を出力する乱数生成回路であり、デジタル乱数信号においてハイレベルおよびローレベルのいずれもが所定の回数以上連続しないように処理する連続信号処理部と、デジタル乱数信号に対して、前記第２の生成速度に対応する信号成分を導入する高速信号導入部と、デジタル乱数信号のデータ列におけるハイレベルとローレベルの出現頻度を制御する平滑処理部と、を備えたことを特徴とする乱数生成回路を提供する。【選択図】    図１
2005107995.tif 000002
【特許請求の範囲】
【請求項１】
第１の生成速度のデジタル乱数信号を入力し、前記第１の生成速度の２倍の第２の生成速度のデジタル乱数信号を出力することを特徴とする乱数生成回路。
【請求項２】
デジタル乱数信号においてハイレベルおよびローレベルのいずれもが所定の回数以上連続しないように処理する連続信号処理部と、
デジタル乱数信号に対して、前記第２の生成速度に対応する信号成分を導入する高速信号導入部と、
デジタル乱数信号のデータ列におけるハイレベルとローレベルの出現頻度を制御する平滑処理部と、
を備えたことを特徴とする請求項１記載の乱数生成回路。
【請求項３】
前記連続信号処理部は、前記ハイレベル及びローレベルのいずれもが連続した回数を計測するカウンタと、
前記カウンタにより計測した前記連続した回数が所定の値を超えたときに、連続したレベルとは異なるレベルを出力する合成部と、
を有することを特徴とする請求項２記載の乱数生成回路。
【請求項４】
前記高速信号導入部は、前記第１の生成速度のデジタル乱数信号におけるレベルの立ち上がり及び立ち下がりのエッジを検出することにより前記第２の生成速度に対応する前記信号成分を導入することを特徴とする請求項２または３に記載の乱数生成回路。
【請求項５】
前記平滑処理部は、
デジタル乱数信号の波形をシフトさせるシフトレジスタと、
前記シフトレジスタによりシフトされたデジタル乱数信号と、前記シフトレジスタによりシフトされていないデジタル信号とを合成する合成部と、
を有することを特徴とする請求項２〜４のいずれか１つに記載の乱数生成回路。
【請求項６】
前記合成部は、前記シフトレジスタによりシフトされたデジタル乱数信号と、前記シフトレジスタによりシフトされていないデジタル信号と、の排他的論理和を出力することを特徴とする請求項５記載の乱数生成回路。
【請求項７】
請求項１〜６のいずれか１つに記載の乱数生成回路を備えたことを特徴とする半導体集積回路。
【請求項８】
請求項７記載の半導体集積回路を備えたことを特徴とするＩＣカード。
【請求項９】
請求項７記載の半導体集積回路を備えたことを特徴とする情報端末機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、乱数生成回路、半導体集積回路、ＩＣカード及び情報端末機器に関し、特に、高い品質のデジタル乱数信号を高速に生成できる乱数生成回路、半導体集積回路、ＩＣカード及び情報端末機器に関する。
【背景技術】
【０００２】
近年、情報セキュリティ分野やシミュレーション分野などにおいて、高度な物理乱数の必要性が高まってきている。特に、ＩＣカードや携帯電話などのモバイル機器におけるセキュリティ確保の観点からは、高品質の乱数を高速に生成可能で小型の乱数回路が必要とされている。しかし、物理乱数回路においては、乱数の生成速度とその品質についてトレードオフがしばしば存在し、これまで小型な物理乱数回路で十分な乱数の質を確保するためには、その生成速度を遅くしなければならないという問題があった。
【０００３】
この問題を解決するためには、例えば、１ビット物理乱数を出力する乱数回路を複数用意しておき、その複数の出力を順に読み出すことで、１ビット乱数列と見なす方法がある。しかしこの方法では、同じような特性を示す物理乱数回路を複数用意するという困難さ、および、回路規模の増大といった問題があった。
【０００４】
その他には、メモリにデータを格納しておき、必要なときに高速に読み出すという方法もあるが、この方法では、乱数データを格納する十分な時間を確保するために、乱数使用の頻度が限定されるという問題がある。この問題を回避するために、格納してある乱数列と生成される遅い乱数列とを演算して、それを新たな乱数列としてメモリに格納しなおす、といった方法が提案されている（特許文献１）。しかしこの方法では、生成速度の問題は解消されても、同じ乱数の情報を繰り返し使うために、乱数に周期性が表れてしまうという問題がある。
【特許文献１】特開２００１−２９０６３４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
以上説明したように、従来の技術によれば、小規模の回路で高速且つ高品質の乱数を生成することは容易でなかった。
【０００６】
本発明は、かかる課題の認識に基づいてなされたものであり、その目的は、小型で高品質の乱数を高速で生成可能な乱数生成回路及びこれを用いた半導体集積回路、ＩＣカード及び情報端末機器を提供することにある。
【課題を解決するための手段】
【０００７】
本発明によれば、１ビット物理乱数を出力する乱数生成回路から、複数の乱数回路を用いずにより速い生成速度の乱数を得ることができる乱数生成回路が提供される。この乱数生成回路の特徴は、ある物理乱数列を示すデジタル波形を、それを利用したより速い、特に２倍の速度の乱数列を表すデジタル波形に変換する点にある。２倍の高速化を繰り返すことにより、より速い生成速度を実現する高速化も可能である。
【０００８】
すなわち、本発明によれば、第１の生成速度のデジタル乱数信号を入力し、前記第１の生成速度の２倍の第２の生成速度のデジタル乱数信号を出力することを特徴とする乱数生成回路が提供される。
【０００９】
ここで、デジタル乱数信号においてハイレベルおよびローレベルのいずれもが所定の回数以上連続しないように処理する連続信号処理部と、デジタル乱数信号に対して、前記第２の生成速度に対応する信号成分を導入する高速信号導入部と、デジタル乱数信号のデータ列におけるハイレベルとローレベルの出現頻度を制御する平滑処理部と、を備えたものとすることができる。
【００１０】
またさらに、前記連続信号処理部は、前記ハイレベル及びローレベルのいずれもが連続した回数を計測するカウンタと、前記カウンタにより計測した前記連続した回数が所定の値を超えたときに、連続したレベルとは異なるレベルを出力する合成部と、を有するものとすることができる。
【００１１】
または、前記高速信号導入部は、前記第１の生成速度のデジタル乱数信号におけるレベルの立ち上がり及び立ち下がりのエッジを検出することにより前記第２の生成速度に対応する前記信号成分を導入するものとすることができる。
【００１２】
また、前記平滑処理部は、デジタル乱数信号の波形をシフトさせるシフトレジスタと、前記シフトレジスタによりシフトされたデジタル乱数信号と、前記シフトレジスタによりシフトされていないデジタル信号とを合成する合成部と、を有するものとすることができる。
【００１３】
また、前記合成部は、前記シフトレジスタによりシフトされたデジタル乱数信号と、前記シフトレジスタによりシフトされていないデジタル信号と、の排他的論理和を出力するものとすることができる。
【００１４】
一方、本発明によれば、前記のいずれかの乱数生成回路を備えたことを特徴とする半導体集積回路が提供される。
【００１５】
また、本発明によれば、上記の半導体集積回路を備えたことを特徴とするＩＣカードや情報端末機器が提供される。
【発明の効果】
【００１６】
本発明によれば、真性度が高い乱数を高速に生成でき、かつコンパクト、低消費電力且つ低価格な乱数生成回路を実現できる。その結果として、例えばＩＣカードや情報端末機器などに応用してセキュリティーの確実な安価なシステムを実現できる点で産業上のメリットは多大である。
【発明を実施するための最良の形態】
【００１７】
以下、図面を参照しつつ本発明の実施の形態について詳細に説明する。  
図１は、本発明の実施の形態にかかる乱数生成回路のブロック図である。
【００１８】
すなわち、本発明の乱数生成回路１００は、連続信号処理部１１０と、高速信号導入部１２０と、平滑処理部１３０と、を有する。この乱数生成回路１００は、物理乱数生成部５０により生成された乱数データを変換する役割を有する。なお、物理乱数生成部５０は、乱数生成回路１００の一部として含めても含めなくてもよい。
【００１９】
本実施形態の乱数生成回路１００の特徴のひとつは、ある乱数列を表すデジタル波形を変形して、２倍の生成速度を表すデジタル波形を生み出す点にある。すなわち、同図に例示した如く、物理乱数生成部５０により生成されたＡビット毎秒（bit/s）のデジタル乱数信号は、乱数生成回路１００によって２Ａビット毎秒の乱数信号に変換される。そして、本発明においては、乱数信号の生成速度が２倍、すなわちデジタル値を読み出す速度を２倍にしても、その信号列は乱数列となっている。つまり、本実施形態の乱数生成回路１００で実行される処理は、デジタル信号のハイ（Ｈｉｇｈ）レベルとロー（Ｌｏｗ）レベルを時間に対して描いた場合、一つの信号が変化する時間が変換前の半分であるデジタル信号を生成することである。
【００２０】
このようなデジタル乱数の変換を実現するために、本発明の乱数生成回路１００は、連続信号処理部１１０と、高速信号導入部１２０と、平滑処理部１３０と、を有する。  
連続信号処理部１１０は、長く続いている「０」または「１」の信号を分断する役割を有する。このようにすれば、長く続く信号の周波数が２倍になることで、乱数としての「０」と「１」とのバランスが崩れることを防ぐことができる。例えば、乱数の質としてＦＩＰＳ１４０−２（Federal Information Processing Standards Publication: FIPS PUB 140-2 (2001)）の検定に合格する品質を求める場合、同じ数字が２０個続いても検定に合格するが、２倍にした４０個続いた場合は不合格となる。連続信号処理部１１０は、これを防ぐために設けられている。なお、前述の具体例は、ＦＩＰＳ１４０−２に基づいたものであるが、どの程度の連続まで認めるかは、実際の使用条件に応じて適宜決定することができる。
【００２１】
次に、高速信号導入部１２０は、クロック幅１／２の信号成分を導入する役割を有する。すなわち、高速信号導入部１２０において信号の幅が１／２である成分を導入することにより、デジタル乱数信号の生成速度を２倍にすることができる。
【００２２】
次に、平滑処理部１３０は、平滑化を行い、乱数列としての「０」「１」のバランスを整える役割を有する。すなわち、平滑処理部１３０は、デジタル信号に対して、連続信号処理部１１０と高速信号導入部１２０により変形を加えたことによる「０」と「１」とのバランスの「ずれ」を修正し、乱数列としての「０」「１」のバランスを整える役割を有する。バランスを整えるという意味では、平滑処理部１３０は、連続信号処理部１１０と近い役割を有する。
【００２３】
これら連続信号処理部１１０、高速信号導入部１２０及び平滑処理部１３０によるデジタル信号の変形は、それぞれ別個に実行しても良いが、これらのいくつか、または全てを同時に行っても良いし、また順番を入れ替えてもよい。
【００２４】
以下、高速化を実現するための本実施形態の乱数生成回路の構成の具体例について説明する。  
図２は、本発明の乱数生成回路の第１の具体例を表す模式図である。同図については、図１に関して前述したものと同様の要素には同一の符号を付して詳細な説明は省略する。  まず、周波数Ａヘルツ（Hz）のクロックが乱数生成器５０に入力され、Ａビット毎秒のデジタル乱数信号が得られる。この乱数信号は、まず、連続信号処理部１１０に入力される。
【００２５】
連続信号処理部１１０は、カウンタ１１１と合成器１１２とを有する。そして、カウンタ１１１を用いて、入力されたデジタル乱数信号において同じ数字が何回連続したかを数え、ある閾値以上連続した場合には、合成器１１２において、その逆の値を元の乱数に合成する。このようにして連続処理が施されたデジタル乱数信号は、高速信号導入部１２０と平滑処理部１３０にそれぞれ入力される。
【００２６】
図３は、カウンタ１１１と合成器１１２の具体例を表す模式図である。  
すなわち、カウンタ１１１は、ＯＮ状態カウント部１１１ＡとＯＦＦ状態カウント部１１１Ｂとを有する。これらＯＮ状態カウント部１１１Ａ及びＯＦＦ状態カウント部１１１Ｂでは、乱数出力が、それぞれＯＮのとき、ＯＦＦのときにクロックイネーブル端子ＣＥがハイ（Ｈｉｇｈ）になるように接続されている。クロックイネーブル端子ＣＥが、Ｈｉｇｈのときに、それぞれのカウンタＣＴがカウントを開始する。カウンタＣＴの前に設けられている、Ｄ−フリップフロップとインバーター及びＡＮＤゲートで構成されている回路は、立ち下がり検出器であり、それぞれ、信号がＯＮからＯＦＦ、ＯＦＦからＯＮへ変化するときに、１クロック分の信号を出力し、カウンタをリセットする。この例では、乱数出力の同じ値が８クロック続いた場合に信号を出力する構成になっている。合成器１１２は、それぞれのカウンタ１１１Ａ、１１１Ｂの出力ともとの乱数との排他的論理をとることで合成を実現している。
【００２７】
なお、連続信号処理部１１０における信号処理は、カウンタ１１１により行うものには限定されない。例えば、後に詳述するように、一定間隔でハイ（Ｈｉｇｈ）レベルを出力するようなパルス信号を合成する方法を用いてもよい。
【００２８】
再び図２に戻って説明すると、高速信号導入部１２０は、エッジ検出部１２１と合成器１４０とを有する。エッジ検出部１２１においては、元の乱数を発生させたクロックＣＬ１の周波数Ａの２倍のクロックＣＬ２を用いて、入力された信号の立ち上がりエッジと立ち下がりエッジを検出し、これを高速成分導入の基にしている。
【００２９】
図４は、エッジ検出器１２１の具体例を表す模式図である。すなわち、エッジ検出器１２１は、例えば、フリップフロップとエクスクルーシブ・オア回路とにより構成することができる。
【００３０】
一方、図２に表した平滑処理部１３０は、シフトレジスタ１３１を有し、さらに合成器１４０を高速信号導入部１２０と共有している。  
図５は、シフトレジスタ１３１の具体例を表す模式図である。すなわち、シフトレジスタ１３１は、複数のフリップフロップＦＤを並べることにより構成することができる。このようなシフトレジスタ１３１を用いることにより、平滑化のために、シフトレジスタ１３１で自分自身の波形を数クロックずらすことができる。平滑化の最も簡単な方法は、別の乱数列との排他的論理和をとることである。１ビットの乱数源では、本来別の乱数列を得ることはできない。しかし、乱数には自己相関が無いという性質を利用し、自分自身をシフトさせた乱数列を別の乱数列と実効的に見なすことで、平滑化に利用することができる。エッジ検出部１２１から出力されるエッジ信号とシフトレジスタ１３１においてシフトさせた信号とを合成器１４０に入力し、これらの排他的論理和を得ることで、元の乱数列の２倍のビットレートで出力されるデジタル乱数信号を得ることができる。
【００３１】
図６は、合成器１４０の具体例を表す模式図である。すなわち、シフトレジスタ１３１（または、後述する撹拌回路やその他の回路）とエッジ検出器１２１との合成は、エクスクルーシブ・オア回路を用いて行うことができる。
【００３２】
なお、図１に関して前述したように、本具体例においても、連続信号処理部１１０、高速信号導入部１２０及び平滑処理部１３０の順番は入れ替えることができる。
【００３３】
図７は、高速信号導入部１２０と平滑処理部１３０とをひとつにまとめた具体例を表すブロック図である。すなわち、乱数に自己相関がなければ、ある乱数とそれをシフトさせた乱数とは実効的に別の乱数列と見なすことができる。よって、最後に合成器１４０において排他的論理本発明をとるのであれば、シフト前の信号に対して周波数２Ａヘルツ（Ｈｚ）の成分を導入しても、あるいはシフト後の信号に対して周波数２Ａヘルツ（Ｈｚ）の成分を導入しても等価である。同様の理由で、まず、 平滑処理部１３０において平滑化を実行し、その後に、連続信号処理部１１０と高速信号導入部１２０とにより処理を実行してもよい。
【００３４】
また、本具体例においても、連続信号処理部１１０における信号処理は、カウンタ１１１により行うものには限定されず、一定間隔でハイ（Ｈｉｇｈ）レベルを出力するようなパルス信号を合成する方法を用いてもよい。
【００３５】
図８は、パルス発生器１１３を用いた連続信号処理部１１０を設けた乱数生成回路を表すブロック図である。すなわち、パルス発生器１１３から出力される適切なパルス間隔の信号を用いることによって、連続したデジタル乱数信号を分断することができる。この方法の場合、周期的な信号を導入するために、本発明の高速乱数生成回路１００を繰り返し用いた場合に乱数列の質の劣化が起こりうるが、カウンタ１１１を用いた場合よりも回路規模を小さくできるという利点がある。劣化の度合いをどこまで許すかを、実際の使用条件から決めることで、本具体例の構成を採用することも有意義となる。
【００３６】
図９は、パルス発生器１１３の具体例を表す模式図である。すなわち、パルス発生器１１３は、例えば、フリップフロップＦＤやインバータやその他の論理回路などを適宜組み合わせることにより構成することができる。
【００３７】
一方、平滑処理部１３０も、必ずしもシフトレジスタ１３１を利用した構成に限定されない。例えば、ＤＥＳ（data encryption standard）暗号のアルゴリズムで最初に行われるような、いくつか連続した信号を組にして、それを再配置するような変換を用いてもよい。
【００３８】
また、シフトレジスタ１３１の出力を用いて平滑化を行う場合に、その出力をランダムに選ぶことによって、高速化された乱数の質を上げることができる。  
図１０は、連続信号処理部１１０で用いたカウンタの値を再利用する構成を表す模式図である。カウンタ１１１は、乱数生成器５０から出力される乱数のＯＮ状態（またはＯＦＦ状態）の長さを数えるため、その出力はランダムになる。その値をデコーダ１３５を用いてデコードし、セレクタ１３４においてシフトレジスタ１３１の値を選ぶことによって、平滑化処理に用いるシフトレジスタのシフト数をランダムにセットすることができる。
【００３９】
図１１は、この回路構成におけるカウンタ１１１、シフトレジスタ１３１、デコーダ  １３５、セレクタ１３４の具体例を表す模式図である。
【００４０】
図１２は、平滑処理部１３０において撹拌回路を用いた乱数生成回路を表すブロック図である。すなわち、本具体例の場合、撹拌回路１３３を用いてシフトレジスタ１３１のクロック数を決定する。撹拌回路１３３は、例えば、図示しない発振回路を利用したものとすることができる。
【００４１】
図１３は、撹拌回路１３３の具体例を表す模式図である。すなわち、本具体例の撹拌回路は、不連続発振型の発振回路である。２つの入力Ｘ１、Ｘ２に対して、２つの出力Ｑ１、Ｑ２を与える。２つの入力Ｘ１、Ｘ２の値が同じ場合には、偶数インバータを備えたフリップフロップと等価の動作をする。一方、２つの入力Ｘ１、Ｘ２が異なる場合には、リング発振する回路である。従って、２つの入力Ｘ１、Ｘ２の値が同じ場合と異なる場合との割合が半々であれば、回路動作期間の半分の期間だけ発振する。
【００４２】
またさらに、図１３の回路は、単純な発振回路とは異なり、初期値Ｚの値によっても出力が異なる。すなわち、初期値Ｚが「１」の場合には、入力Ｘ１、Ｘ２がいずれも「１」の時には出力Ｑ１、Ｑ２はいずれも「０」となり、入力Ｘ１、Ｘ２がいずれも「０」の時には出力Ｑ１は「１」、Ｑ２は「０」となる。
【００４３】
一方、初期値Ｚが「０」の場合には、入力Ｘ１、Ｘ２がいずれも「１」の時には出力Ｑ１、Ｑ２はいずれも「１」となり、入力Ｘ１、Ｘ２がいずれも「０」の時には出力Ｑ１は「０」、Ｑ２は「１」となる。
【００４４】
このように、図１３の具体例の撹拌回路１３３は、２つの入力Ｘ１、Ｘ２が異なる場合にのみ発振する点で、「断続的発振回路」であるといえる。連続的発振回路は、乱数データに周期性が残りやすいという点と、消費電流が大きいという点が弱点であり、断続的発振回路は、この点を改善した回路である。
【００４５】
図１４は、撹拌回路１３３のもう一つの具体例を表す模式図である。すなわち、本具体例の撹拌回路は、３つのインバータを直列接続したリング発振器であり、「連続的発振回路」であるといえる。この場合、発振周波数は、概ねシステムクロックの１０倍以上であることが望ましい。
【００４６】
以上、これらの撹拌回路１３３をいくつか使用し、図１２に表したように、セレクタ１３４に入力することで、シフトレジスタ１３１のシフト数をランダムに選択することができる。図１２乃至図１４に関して説明したような撹拌回路１３３を用いた乱数生成回路は、シフトレジスタ１３１を用いたものよりも回路規模が大きくなってしまうが、高速化の繰り返しによる劣化が小さくなり、高度な質を保ったまま高速化するのに適している。
また、もしも攪拌回路１３３の出力が、そのままでも十分に「０」と「１」の出現確率がバランスされている場合には、シフトレジスタ１３１を使用せず、その出力値をそのまま平滑化に用いることもできる。この他、平滑処理に擬似乱数出力を利用する方法も考えられる。ただし、その方法では、簡便に平滑処理ができるものの、擬似乱数の周期性を乱数列に導入してしまうという問題もある。これらの方法は、使用する条件や要求仕様などに応じて適宜選択すればよい。
【００４７】
図１５は、本発明の乱数生成回路を直列に接続し、２倍ずつ順次高速化させた構成を表すブロック図である。本発明によれば、このように乱数生成回路１００における変換を繰り返すことにより、デジタル乱数信号の生成速度を２倍ずつ加速することができる。その結果として、用途に応じて非常に高速のデジタル乱数信号でも生成することができる。  
図１６は、図２に表した回路構成を利用して、図１５の如くデジタル波形の変換を繰り返した時の波形の変化を表す模式図である。同図に表したように、２倍の高速化を繰り返すことにより、徐々にデジタル波形の変化の間隔が狭くなり、高速な信号読出しでも乱数性を保つことがわかる。
【００４８】
表１は、物理乱数生成器５０から、９ｋｂｉｔ／ｓの速度で出力された物理乱数列をＦＩＰＳ１４０−２の検定結果である。  
【表１】
2005107995.tif 000003
また、表２は、この物理乱数列に対して、図２で表した乱数生成回路による変換を７回適用して１．１５２  Ｍｂｉｔ／ｓまで加速したときの、ＦＩＰＳ１４０−２の検定結果である。
【表２】
2005107995.tif 000004
表１を見ると、９ｋｂｉｔ／ｓでは、全ての検定に問題なく合格していることが分かる。これを１．１５２  Ｍｂｉｔ／ｓまで加速したときも、表２から分かるように、概ね検定に合格するレベルになっていて、ＦＩＰＳ１４０−２という検定を基準にしたときは、少なくとも２桁の加速が可能である。
このように、本回路を用いることで、乱数の質に関して何らかの基準を設け、それに対して、乱数生成速度の数桁の高速化を行うことができる。その結果として、所定の品質のデジタル乱数信号を従来よりも高速に生成することができる。
【００４９】
次に、本発明の乱数生成回路を設けた半導体集積回路（ＩＣ）について説明する。
【００５０】
図１７は、本具体例の半導体集積回路の要部構成を表す模式図である。本具体例は、例えばＩＣカードなどに搭載することができるＩＣであり、演算部（ＭＰＵ）、メモリ（ＲＡＭ，ＲＯＭ，ＥＥＰＲＯＭ）、補助演算部（Co-processor）、乱数生成回路１００を有する。ここで、補助演算部（Co-processor）は、暗号処理を実行する役割を有する。
【００５１】
乱数生成回路１００は、図１乃至図１６などに例示した乱数生成器５０も含んでいる。そして、乱数生成回路１００においては、前述したような連続信号処理部１１０と高速信号導入部１２０と平滑処理部１３０においてとを組み合わせることにより、高品質のデジタル乱数信号を高速に生成させることができる。この乱数生成回路１００を搭載することで、演算部（ＭＰＵ）や暗号処理専用の補助演算部（Co-processor）が常に高品質の乱数を高速に読み出して使うことができ、また、暗号鍵をＩＣの消費電流信号から読み出すハッキング技術に対する対策として、乱数を使って消費電流の変化を撹乱させることにも使え、高度な暗号セキュリティが実現可能となる。
図１８は、本具体例の半導体集積回路２００の回路規模を説明するための概念図である。すなわち、本発明の乱数生成回路１００は、全てＣＭＯＳ論理回路のみで構成できる。しかも論理ゲートの数は、わずか数１００程度で済むので、各種のＩＣに搭載可能である。その回路規模は、図１８に例示した程度あるいはそれ以下であり、ＩＣ全体のサイズを大幅に増大させるという問題も生じない。
【００５２】
本発明の乱数生成回路を搭載することで、高度な暗号セキュリティ機能が利用可能になる。またゲーム機やモンテカルロシュミレーション用の乱数にも用いることができる。
【００５３】
次に、本発明の乱数生成回路を搭載したＩＣカード及び携帯型の情報端末機器について説明する。
【００５４】
図１９は、本具体例のＩＣカード及び情報端末機器を表す模式図である。すなわち、同図において３００は、本具体例のＩＣカードまたは情報端末機器を表す。ＩＣカードとしては、例えば、銀行の預金カードや各種のプリペイドカード、企業などにおける社員証、入門セキュリティカードなどを挙げることができる。また、情報端末機器としては、例えば、携帯電話や、その他の携帯型端末を挙げることができる。このような携帯型端末は、例えば、ワードプロセッサ、表計算、スケジューラ、ゲーム、電子メールの送受信、静止画や動画の撮影、などの各種の機能のうちのいずれかを備えたものを挙げることができる。
【００５５】
例えば、図２０に表したような携帯電話３００においても、本発明の乱数生成回路１００を搭載することができる。またこれと類似した携帯型情報端末においても同様である。
【００５６】
そして、本発明においては、連続信号処理部１１０と高速信号導入部１２０と平滑処理部１３０においてとを組み合わせることにより、高品質のデジタル乱数信号を高速に生成させることができる。その結果として、非常に小型で消費電力も抑制しつつ高度な暗号セキュリティ機能を付加することができる。すなわち、乱数生成回路１００を用いることにより、例えば、使用者の認証プロセスや、取り扱うデータの暗号化とその復元などをはじめとして、ゲーム機能に利用したり、モンテカルロシュミレーション用の乱数にも用いることができる。
以上、具体例を例示しつつ本発明の実施の形態について説明した。しかし、本発明は、上述した各具体例に限定されるものではない。
【００５７】
例えば、本発明において用いる乱数生成器、連続信号処理部、高速信号導入部及び平滑処理部の具体的な構成に関しては、上記の具体例に限定されず、その機能あるいは作用が同様な全ての回路に置換したものも本発明の範囲に包含される。
【００５８】
例えば、出力が不確定なフリップフロップを複数個、並列もしくは直列に並べた論理回路を乱数生成器として用いることもできる。
【００５９】
また、本発明において用いるフリップフロップとしては、具体例に表したＤ型フリップフロップに限定されず、その他の各種の形式のフリップフロップを用いることができる。
【００６０】
また、本発明の乱数生成回路によって作られたデジタル乱数は、そのまま使用することもできるが、これをフィードバックシフトレジスタのシードとして用いることにより、新たな乱数を生成することもできる。
【図面の簡単な説明】
【００６１】
【図１】本発明の実施の形態にかかる乱数生成回路のブロック図である。
【図２】本発明の乱数生成回路の第１の具体例を表す模式図である。
【図３】カウンタ１１１と合成器１１２の具体例を表す模式図である。
【図４】エッジ検出器１２１の具体例を表す模式図である。
【図５】シフトレジスタ１３１の具体例を表す模式図である。
【図６】合成器１４０の具体例を表す模式図である。
【図７】高速信号導入部１２０と平滑処理部１３０とをひとつにまとめた具体例を表すブロック図である。
【図８】パルス発生器１１３を用いた連続信号処理部１１０を設けた乱数生成回路を表すブロック図である。
【図９】パルス発生器１１３の具体例を表す模式図である。
【図１０】連続信号処理部１１０で用いたカウンタの値を再利用する構成を表す模式図である。
【図１１】図１０に表した回路構成におけるカウンタ１１１、シフトレジスタ１３１、デコーダ  １３５、セレクタ１３４の具体例を表す模式図である。
【図１２】平滑処理部１３０において撹拌回路を用いた乱数生成回路を表すブロック図である。
【図１３】撹拌回路１３３の具体例を表す模式図である。
【図１４】撹拌回路１３３のもう一つの具体例を表す模式図である。
【図１５】本発明の乱数生成回路を直列に接続し、２倍ずつ順次高速化させた構成を表すブロック図である。
【図１６】図２に表した回路構成を利用して、図１５の如くデジタル波形の変換を繰り返した時の波形の変化を表す模式図である。
【図１７】本発明の具体例の半導体集積回路の要部構成を表す模式図である。
【図１８】本発明の具体例の半導体集積回路２００の回路規模を説明するための概念図である。
【図１９】本発明の具体例のＩＣカード及び情報端末機器を表す模式図である。
【図２０】本発明の具体例としての携帯電話を表す模式図である。
【符号の説明】
【００６２】
５０ 乱数生成器
１００ 乱数生成回路
１１０ 連続信号処理部
１１１ カウンタ
１１２ 合成器
１１３ パルス発生器
１２０ 高速信号導入部
１２１ エッジ検出部
１３０ パルス発生器
１３０ 平滑処理部
１３１ シフトレジスタ
１３３ 撹拌回路
１４０ 合成器
２００ 半導体集積回路
３００ 携帯電話
ＣＬ１、ＣＬ２ クロック
【図１】
2005107995.tif 000005
【図２】
2005107995.tif 000006
【図３】
2005107995.tif 000007
【図４】
2005107995.tif 000008
【図５】
2005107995.tif 000009
【図６】
2005107995.tif 000010
【図７】
2005107995.tif 000011
【図８】
2005107995.tif 000012
【図９】
2005107995.tif 000013
【図１０】
2005107995.tif 000014
【図１１】
2005107995.tif 000015
【図１２】
2005107995.tif 000016
【図１３】
2005107995.tif 000017
【図１４】
2005107995.tif 000018
【図１５】
2005107995.tif 000019
【図１６】
2005107995.tif 000020
【図１７】
2005107995.tif 000021
【図１８】
2005107995.tif 000022
【図１９】
2005107995.tif 000023
【図２０】
2005107995.tif 000024