(57)【特許請求の範囲】
【請求項１】
クロック信号に基づいて、データ端子への印加電位に応じた値をサンプリングして出力するフリップフロップと、
前記フリップフロップを構成する電界効果トランジスタの閾値にほぼ等しい中間電位を生成して前記フリップフロップのデータ端子に供給する中間電位生成部と、
前記中間電位生成部と前記フリップフロップの間に、前記中間電位生成部で生成された中間電位にかかわらず、前記フリップフロップのデータ端子への供給電位を固定するゲートと、
を備えることを特徴とする乱数発生装置。
【請求項２】
前記ゲートは、前記中間電位と外部から供給される制御信号を入力とするＡＮＤゲートまたはＯＲゲートであることを特徴とする請求項１に記載の乱数発生装置。
【請求項３】
前記中間電位生成部は、電源電圧を抵抗分割する抵抗ラダーを備えており、該抵抗ラダーにより電源電圧を抵抗分割することにより中間電位を生成することを特徴とする請求項１または２に記載の乱数発生装置。
【請求項４】
前記フリップフロップの出力値を監視し、該出力値が常にまたは連続して一定の数同じであるときに前記中間電位生成部に対して中間電位の変更を指示する出力データ監視部をさらに備えていることを特徴とする請求項１〜３のいずれか一つに記載の乱数発生装置。
【請求項５】
クロック信号に基づいてデータ端子への印加電位に応じた値をサンプリングして出力するフリップフロップに含まれる電界効果トランジスタの閾値にほぼ等しい中間電位を生成し、
前記フリップフロップのデータ端子に前記中間電位を供給し、
制御信号に基づいて、前記中間電位にかかわらず、前記フリップフロップのデータ端子への供給電位を固定にすることを特徴とする乱数発生方法。
【請求項６】
前記フリップフロップの出力値を監視し、
該出力値が常にまたは連続して一定の数同じであるときに前記中間電位の変更を指示することを特徴とする請求項５に記載の乱数発生方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、乱数発生装置および乱数発生方法に関する。
【背景技術】
【０００２】
従来より、ＩＣカードは、公開鍵暗号方式による暗号処理を行う機能を有しており、その機能を利用して個人の認証を行う手段として用いられることがある。暗号処理の際には、乱数を利用して鍵が生成される。従来は、ソフトウェアを用いた擬似乱数が使用されているが、この場合には、乱数の元になるシードの取得方法によって、生成される乱数に偏りがあったり、一度生成された擬似乱数から次に生成される乱数の予測が可能であるなどの危険性が指摘されている。
【０００３】
そこで、擬似乱数を用いずに、熱雑音などの物理現象を利用して乱数を生成する方法や装置が開発されている。例えば、フリップフロップに入力する二つの入力信号の位相差を自動調整してフリップフロップ出力の１または０の出現率が一定になるようにした乱数発生装置において、フリップフロップの入力ラインに、ノイズ発生源と、ノイズを増幅する増幅回路と、増幅ノイズ信号により入力信号にジッタを生じさせるミキサー回路とから構成されるジッタ生成回路を付加したことを特徴とし、ノイズ発生源として、活性状態にある回路素子で発生する微弱な熱雑音を利用する装置が公知である（例えば、特許文献１参照。）。
【０００４】
また、非接触型のＩＣカードでは、リーダライタとの間の信号のやりとりや電源供給などはリーダライタとの間の無線通信によって行われる。従って、消費電流が通信距離に影響するため、ＩＣカードは低消費電力で動作するのが望ましい。
【０００５】
【特許文献１】特開２００２−３６６３４７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した従来の乱数発生装置では、乱数生成マクロがアナログ回路だけで構成されているため、回路規模が大きく、消費電力が大きいという欠点がある。そのため、従来の乱数発生装置は、低消費電力が要求されるシステムには適さない。また、乱数生成マクロの回路構成によっては、製造プロセスから変更する必要があるため、製造コストが高いという欠点がある。さらには、スクランブル回路を内部に設けて、乱数の攪拌を実施する必要があるという欠点がある。
【０００７】
この発明は、上述した従来技術による問題点を解消するため、回路規模の小さい乱数発生装置および乱数発生方法を提供することを目的とする。また、この発明は、消費電力の少ない乱数発生装置および乱数発生方法を提供することを目的とする。さらに、この発明は、製造コストを削減できる乱数発生装置および乱数発生方法を提供することを目的とする。また、この発明は、スクランブル回路が不要な乱数発生装置および乱数発生方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するため、本発明は、電界効果トランジスタのゲートに、閾値にほぼ等しい中間電位を印加し、中間電位の熱雑音による変動に応じて電界効果トランジスタのオンとオフが切り替わることを利用して、乱数を生成することを特徴とする。例えば抵抗ラダーを有する中間電位生成部において電源電圧を抵抗分割することにより中間電位を生成する。そして、フリップフロップを用い、フリップフロップのデータ端子に、中間電位生成部で生成した中間電位を入力させることにより、所望のタイミングで乱数を生成させる。
【０００９】
フリップフロップへのクロック信号の入力がアクティブのときの中間電位の値がフリップフロップのデータ端子に接続された電界効果トランジスタの閾値よりも低い場合には、クロック信号の入力が次にアクティブになるまでフリップフロップは"０"を保持し、乱数データとして"０"を出力する。クロック信号の入力がアクティブのときの中間電位の値がその電界効果トランジスタの閾値よりも高い場合には、クロック信号の入力が次にアクティブになるまでフリップフロップは"１"を保持し、乱数データとして"１"を出力する。
【００１０】
この発明によれば、中間電位生成部がアナログ回路で構成されており、そのアナログ回路で生成した中間電位をフリップフロップのデータ端子に印加することによって、フリップフロップのデータ信号入力部で貫通電流が発生するが、それ以外には消費電力を増大させ得る要因はない。そして、乱数発生部（フリップフロップ）がデジタル回路で構成されているので、低消費電力化を図ることができる。
【００１１】
この発明において、フリップフロップのデータ端子に固定電位を供給するためのゲートを設け、このゲートにより、乱数を生成するときにはフリップフロップのデータ端子に前記中間電位を供給し、乱数を生成しないときにはフリップフロップのデータ端子に前記固定電位を供給するようにしてもよい。このゲートとしては、ＡＮＤゲートやＯＲゲートを用いることができる。このようにすれば、乱数を生成しないときには、フリップフロップのデータ信号入力部で貫通電流が発生しないので、より一層、低消費電力化を図ることができる。
【００１２】
また、中間電位生成部を抵抗ラダーを用いて構成する場合には、抵抗ラダーが粗調整用の抵抗群と微調整用の抵抗群を備えているとよい。また、フリップフロップの出力値を監視し、その出力値が"０"と"１"がランダムで、かつ一様に発生するように、中間電位を制御するとよい。このようにして乱数発生装置が自らの生成データをチェックするようにすることによって、外部からの不正なアクセスに対する高い耐性が得られる。
【００１３】
また、上述した構成の乱数発生装置を複数設け、各乱数発生装置を異なるタイミングで動作させ、すべての乱数発生装置の出力値の排他的論理和を乱数として出力するようにしてもよい。このようにすれば、各乱数発生装置の出力値が"０"または"１"に偏っていても、その偏りがＸＯＲ回路によって平均化されるので、乱数データの発生率が高くなる。
【発明の効果】
【００１４】
本発明にかかる乱数発生装置および乱数発生方法によれば、中間電位生成部を除いてデジタル回路で構成することによって、回路規模を小さくできるという効果を奏する。また、スクランブル回路が不要であるので、回路規模を小さくできるという効果を奏する。さらに、中間電位生成部を除いてデジタル回路で構成するとともに、乱数を生成しないときに貫通電流が流れないようにすることによって、低消費電力化を図ることができるという効果を奏する。さらに、中間電位生成部のアナログ回路は、アナログ専用プロセスではなく、ＣＭＯＳ製造プロセスで作製可能であるので、製造コストを削減できるという効果を奏する。
【発明を実施するための最良の形態】
【００１５】
以下に添付図面を参照して、この発明にかかる乱数発生装置および乱数発生方法の好適な実施の形態を詳細に説明する。なお、以下の説明においては、同様の構成には同一の符号を付して、重複する説明を省略する。
【００１６】
（実施の形態１）
図１は、実施の形態１の乱数発生装置の一例を示す図である。図１に示すように、乱数発生装置１は、中間電位生成部２とＤフリップフロップ３を備えている。中間電位生成部２は、Ｄフリップフロップ３を構成する電界効果トランジスタの閾値にほぼ等しい中間電位ＶＣＣＭを生成する。中間電位生成部２は、例えば電源端子ＶＣＣと接地端子ＶＳＳとの間に接続された抵抗ラダーを備えており、この抵抗ラダーにより電源電圧を抵抗分割することにより中間電位ＶＣＣＭを生成する。
【００１７】
Ｄフリップフロップ３のデータ端子Ｄには、中間電位生成部２で生成された中間電位ＶＣＣＭが印加される。Ｄフリップフロップ３は、そのクロック端子ＣＫへのクロック信号ＣＬＫの入力がアクティブのときに、データ端子Ｄへの印加電位、すなわち中間電位生成部２で生成された中間電位ＶＣＣＭに応じた値を取り込む。そして、Ｄフリップフロップ３は、その取り込んだ値をクロック信号ＣＬＫの入力が次にアクティブになるまで保持し、乱数データとして出力する。
【００１８】
例えば、Ｄフリップフロップ３へのクロック信号の入力がアクティブのとき、熱雑音により、中間電位ＶＣＣＭの値が、Ｄフリップフロップ３のデータ端子Ｄに接続された電界効果トランジスタの閾値よりも低くなると、Ｄフリップフロップ３は"０"を保持する、従って、乱数データとして"０"を出力する。一方、クロック信号の入力がアクティブのとき、熱雑音により、中間電位ＶＣＣＭの値がその電界効果トランジスタの閾値よりも高くなると、Ｄフリップフロップ３は"１"を保持し、乱数データとして"１"を出力する。
【００１９】
図２および図３に示すように、中間電位生成部２とＤフリップフロップ３のデータ端子Ｄの間にゲートを設け、Ｄフリップフロップ３のデータ端子Ｄに、乱数を生成するときには中間電位生成部２から中間電位ＶＣＣＭを供給し、乱数を生成しないときにはゲートにより固定電位を供給するようにしてもよい。図２に示す乱数発生装置４は、中間電位生成部２で生成された中間電位ＶＣＣＭと、外部のＣＰＵやロジック回路から供給される生成タイミング信号を入力とするＡＮＤゲート５を用いた例である。
【００２０】
生成タイミング信号として"０"がＡＮＤゲート５に入力されると、ＡＮＤゲート５の出力が"０"に固定されるので、Ｄフリップフロップ３のデータ端子Ｄの入力が"０"に固定される。生成タイミング信号が"１"のときには、Ｄフリップフロップ３のデータ端子Ｄには、中間電位生成部２で生成された中間電位ＶＣＣＭが入力される。
【００２１】
図３に示す乱数発生装置６は、中間電位生成部２で生成された中間電位ＶＣＣＭと外部から供給される生成タイミング信号を入力とするＯＲゲート７を用いた例である。生成タイミング信号として"１"がＯＲゲート７に入力されると、ＯＲゲート７の出力が"１"に固定されるので、Ｄフリップフロップ３のデータ端子Ｄの入力が"１"に固定される。生成タイミング信号が"０"のときには、Ｄフリップフロップ３のデータ端子Ｄには、中間電位生成部２で生成された中間電位ＶＣＣＭが入力される。
【００２２】
図１に示す構成の乱数発生装置１では、乱数を生成しないときでもＤフリップフロップ３のデータ信号入力部で貫通電流が発生する。しかし、図２または図３に示すように、Ｄフリップフロップ３のデータ端子Ｄへの入力を固定するゲートを設けることによって、乱数を生成しないときには、Ｄフリップフロップ３のデータ信号入力部で貫通電流が発生しないので、低消費電力化を図ることができる。なお、Ｄフリップフロップ３のデータ端子Ｄへの入力を固定するゲートは、ＡＮＤゲート５やＯＲゲート７に限らない。
【００２３】
（実施の形態２）
図４〜図６は、実施の形態２の乱数発生装置の一例を示す図である。図４に示すように、実施の形態２の乱数発生装置８は、実施の形態１の乱数発生装置１に、Ｄフリップフロップ３から出力される乱数データを監視する出力データ監視部９を付加したものである。図５に示す乱数発生装置１０および図６に示す乱数発生装置１１も同様であり、それぞれ図２に示す乱数発生装置４および図３に示す乱数発生装置６に出力データ監視部９を付加したものである。
【００２４】
出力データ監視部９は、Ｄフリップフロップ３から出力された乱数データに基づいて、中間電位生成部２に対して中間電位ＶＣＣＭの変更を指示する中間電位生成変更信号を出力する。中間電位生成部２は、出力データ監視部９から中間電位生成変更信号を受け取ると、生成する中間電位ＶＣＣＭを変更する。
【００２５】
図７は、中間電位生成部２の一例を示す図である。ここでは、特に数を限定しないが、例えば電源端子ＶＣＣと接地端子ＶＳＳの間に、Ｒ１、Ｒ２、Ｒ３、Ｒ４、Ｒ５およびＲ６の６個の抵抗が直列に接続されており、これら６個の抵抗Ｒ１，Ｒ２，Ｒ３，Ｒ４，Ｒ５，Ｒ６からなる抵抗ラダーにより中間電位ＶＣＣＭを生成するものとする。なお、説明の便宜上、電源端子ＶＣＣ側から順に、Ｒ１、Ｒ２、Ｒ３、Ｒ４、Ｒ５およびＲ６とする。
【００２６】
図７に示すように、抵抗Ｒ１の一端は電源端子ＶＣＣに接続されている。抵抗Ｒ１と抵抗Ｒ２、抵抗Ｒ２と抵抗Ｒ３、抵抗Ｒ３と抵抗Ｒ４、抵抗Ｒ４と抵抗Ｒ５、および抵抗Ｒ５と抵抗Ｒ６の接続ノードには、それぞれ抵抗ラダーの任意のノードを選択するためのトランスファーゲートＴＧ１、ＴＧ２、ＴＧ３、ＴＧ４およびＴＧ５が接続されている。トランスファーゲートＴＧ１、ＴＧ２、ＴＧ３、ＴＧ４およびＴＧ５には、それぞれ外部から制御信号ＶＣＣ０ＳＥＬ、ＶＣＣ１ＳＥＬ、ＶＣＣ２ＳＥＬ、ＶＣＣ３ＳＥＬおよびＶＣＣ４ＳＥＬが供給される。
【００２７】
また、トランスファーゲートＴＧ１、ＴＧ２、ＴＧ３、ＴＧ４およびＴＧ５には、それぞれインバータＩＮ１、ＩＮ２、ＩＮ３、ＩＮ４およびＩＮ５を介して各制御信号ＶＣＣ０ＳＥＬ、ＶＣＣ１ＳＥＬ、ＶＣＣ２ＳＥＬ、ＶＣＣ３ＳＥＬおよびＶＣＣ４ＳＥＬの反転信号が供給される。トランスファーゲートＴＧ１、ＴＧ２、ＴＧ３、ＴＧ４およびＴＧ５の出力側は、中間電位生成部２の出力ライン１３に共通接続されている。抵抗Ｒ６と接地端子ＶＳＳの間には、スイッチングトランジスタ１２が接続されている。このスイッチングトランジスタ１２は、そのゲート端子に外部から供給される制御信号ＶＣＣＳＥＬにより動作する。
【００２８】
制御信号ＶＣＣ０ＳＥＬ、ＶＣＣ１ＳＥＬ、ＶＣＣ２ＳＥＬ、ＶＣＣ３ＳＥＬおよびＶＣＣ４ＳＥＬは、例えば外部に設けられた５ビットのレジスタから供給される。制御信号ＶＣＣ０ＳＥＬ、ＶＣＣ１ＳＥＬ、ＶＣＣ２ＳＥＬ、ＶＣＣ３ＳＥＬおよびＶＣＣ４ＳＥＬにより、トランスファーゲートＴＧ１、ＴＧ２、ＴＧ３、ＴＧ４およびＴＧ５のうち、いずれか一つのみがオン状態となり、残りはオフ状態となる。あるいは、すべてのトランスファーゲートＴＧ１、ＴＧ２、ＴＧ３、ＴＧ４およびＴＧ５がオフ状態となる。
【００２９】
特に限定しないが、例えば電源電圧の１／２の電位を基準電位とする。初期状態では、出力ライン１３に出力される中間電位ＶＣＣＭが、Ｄフリップフロップ３を構成する電界効果トランジスタの閾値にほぼ等しくなるように、制御信号ＶＣＣ０ＳＥＬ、ＶＣＣ１ＳＥＬ、ＶＣＣ２ＳＥＬ、ＶＣＣ３ＳＥＬおよびＶＣＣ４ＳＥＬが供給される。そして、出力データ監視部９から出力される中間電位生成変更信号に基づいて、５ビットのレジスタの値が変更され、トランスファーゲートＴＧ１、ＴＧ２、ＴＧ３、ＴＧ４およびＴＧ５のオン／オフの状態が適宜切り替えられる。
【００３０】
一例として、具体的な数値を挙げて説明する。例えば、抵抗Ｒ１およびＲ６の抵抗値が４７０ｋΩであり、抵抗Ｒ２、Ｒ３、Ｒ４およびＲ５の抵抗値が５ｋΩとする。この場合、各制御信号ＶＣＣ０ＳＥＬ、ＶＣＣ１ＳＥＬ、ＶＣＣ２ＳＥＬ、ＶＣＣ３ＳＥＬおよびＶＣＣ４ＳＥＬがそれぞれ"０"、"０"、"１"、"０"および"０"であるときに、出力ライン１３に、電源電圧の０．５倍（＝１−（４７０＋５＋５）／（４７０＋５＋５＋５＋５＋４７０）＝１−（４８０／９６０）＝１−１／２＝１−０．５）の電位、すなわち基準電位が出力される。電源電圧が３．３Ｖのときには、基準電位は１．６５Ｖである。
【００３１】
初期設定の際に、Ｄフリップフロップ３を構成する電界効果トランジスタの閾値が基準電位よりも高い場合には、中間電位ＶＣＣＭを基準電位よりも高くするため、各制御信号ＶＣＣ０ＳＥＬ、ＶＣＣ１ＳＥＬ、ＶＣＣ２ＳＥＬ、ＶＣＣ３ＳＥＬおよびＶＣＣ４ＳＥＬがそれぞれ"０"、"１"、"０"、"０"および"０"に変更される。それによって、出力ライン１３には、電源電圧の０．５０５倍（＝１−（４７０＋５）／（４７０＋５＋５＋５＋５＋４７０）＝１−４７５／９６０＝１−０．４９５）の中間電位ＶＣＣＭが出力される。電源電圧が３．３Ｖのときには、中間電位ＶＣＣＭは約１．６７Ｖとなる。
【００３２】
電源電圧の０．５０５倍の電位でもＤフリップフロップ３を構成する電界効果トランジスタの閾値よりも低い場合には、さらに中間電位ＶＣＣＭを高くするため、各制御信号ＶＣＣ０ＳＥＬ、ＶＣＣ１ＳＥＬ、ＶＣＣ２ＳＥＬ、ＶＣＣ３ＳＥＬおよびＶＣＣ４ＳＥＬがそれぞれ"１"、"０"、"０"、"０"および"０"に変更される。それによって、出力ライン１３に出力される中間電位ＶＣＣＭは、電源電圧の０．５１倍（＝１−４７０／（４７０＋５＋５＋５＋５＋４７０）＝１−４７０／９６０＝１−０．４９）となる。電源電圧が３．３Ｖのときには、中間電位ＶＣＣＭは約１．６８Ｖとなる。
【００３３】
一方、Ｄフリップフロップ３を構成する電界効果トランジスタの閾値が基準電位よりも低い場合には、中間電位ＶＣＣＭを基準電位よりも低くするため、各制御信号ＶＣＣ０ＳＥＬ、ＶＣＣ１ＳＥＬ、ＶＣＣ２ＳＥＬ、ＶＣＣ３ＳＥＬおよびＶＣＣ４ＳＥＬがそれぞれ"０"、"０"、"０"、"１"および"０"に変更される。それによって、出力ライン１３に出力される中間電位ＶＣＣＭは、電源電圧の０．４９５倍（＝１−（４７０＋５＋５＋５）／（４７０＋５＋５＋５＋５＋４７０）＝１−４８５／９６０＝１−０．５０５）となる。電源電圧が３．３Ｖのときには、中間電位ＶＣＣＭは約１．６３Ｖとなる。
【００３４】
電源電圧の０．４９５倍の電位でもＤフリップフロップ３を構成する電界効果トランジスタの閾値よりも高い場合には、さらに中間電位ＶＣＣＭを低くするため、各制御信号ＶＣＣ０ＳＥＬ、ＶＣＣ１ＳＥＬ、ＶＣＣ２ＳＥＬ、ＶＣＣ３ＳＥＬおよびＶＣＣ４ＳＥＬがそれぞれ"０"、"０"、"０"、"０"および"１"に変更される。それによって、出力ライン１３に出力される中間電位ＶＣＣＭは、電源電圧の０．４９倍（＝１−（４７０＋５＋５＋５＋５）／（４７０＋５＋５＋５＋５＋４７０）＝１−４９０／９６０＝１−０．５１）となる。電源電圧が３．３Ｖのときには、中間電位ＶＣＣＭは約１．６２Ｖとなる。
【００３５】
初期設定が済んだ後、出力データ監視部９でＤフリップフロップ３から出力される乱数データを監視した結果、中間電位ＶＣＣＭを上げる必要があるときには、その時点でオン状態となっているトランスファーゲートよりも電源端子ＶＣＣ側のトランスファーゲートが順次、オン状態に切り替えられる。例えば、中間電位ＶＣＣＭが基準電位であるときに、中間電位ＶＣＣＭを上げる必要が生じた場合には、まず、各制御信号ＶＣＣ０ＳＥＬ、ＶＣＣ１ＳＥＬ、ＶＣＣ２ＳＥＬ、ＶＣＣ３ＳＥＬおよびＶＣＣ４ＳＥＬがそれぞれ"０"、"１"、"０"、"０"および"０"に変更される。それによって、中間電位ＶＣＣＭが電源電圧の０．５０５倍に変更される。
【００３６】
さらに中間電位ＶＣＣＭを上げる必要があるときには、各制御信号ＶＣＣ０ＳＥＬ、ＶＣＣ１ＳＥＬ、ＶＣＣ２ＳＥＬ、ＶＣＣ３ＳＥＬおよびＶＣＣ４ＳＥＬがそれぞれ"１"、"０"、"０"、"０"および"０"に変更される。それによって、中間電位ＶＣＣＭは、電源電圧の０．５１倍に変更される。
【００３７】
それに対して、例えば、中間電位ＶＣＣＭが基準電位であるときに、中間電位ＶＣＣＭを下げる必要が生じた場合には、まず、各制御信号ＶＣＣ０ＳＥＬ、ＶＣＣ１ＳＥＬ、ＶＣＣ２ＳＥＬ、ＶＣＣ３ＳＥＬおよびＶＣＣ４ＳＥＬがそれぞれ"０"、"０"、"０"、"１"および"０"に変更される。それによって、中間電位ＶＣＣＭが電源電圧の０．４９５倍に変更される。
【００３８】
さらに中間電位ＶＣＣＭを下げる必要があるときには、各制御信号ＶＣＣ０ＳＥＬ、ＶＣＣ１ＳＥＬ、ＶＣＣ２ＳＥＬ、ＶＣＣ３ＳＥＬおよびＶＣＣ４ＳＥＬがそれぞれ"０"、"０"、"０"、"０"および"１"に変更される。それによって、中間電位ＶＣＣＭが電源電圧の０．４９倍に変更される。
【００３９】
また、スイッチングトランジスタ１２はＮＭＯＳトランジスタで構成されており、乱数データを生成する際の制御信号ＶＣＣＳＥＬは"１"となり、スイッチングトランジスタ１２がオン状態となる。一方、乱数データを生成しないときには、制御信号ＶＣＣＳＥＬは"０"であり、スイッチングトランジスタ１２はオフ状態となる。スイッチングトランジスタ１２がオフ状態になることによって、抵抗ラダーに流れる電流が抑制されるので、消費電力を下げることができる。
【００４０】
ここで、中間電位ＶＣＣＭを生成するアナログ回路および乱数データを生成するデジタル回路は、一般に半導体の製造バラツキの影響を受ける。その影響を吸収するため、Ｄフリップフロップ３の閾値よりも十分に狭いステップ間隔で中間電位ＶＣＣＭの調整が可能であるとともに、アナログ回路のバラツキよりも十分に広い電圧範囲の調整ができるように、中間電位生成部２の抵抗ラダーを配置するのが望ましい。なお、抵抗ラダーの抵抗の段数は５段以下でもよいし、７段以上でもよい。
【００４１】
また、中間電位生成部２は、図８に示す構成でもよい。図８に示す構成では、抵抗ラダーに粗調整用の抵抗群１４と微調整用の抵抗群１５が設けられている。ここでは、特に数を限定しないが、粗調整用の抵抗群１４は、Ｒ７、Ｒ８、Ｒ９、Ｒ１０およびＲ１１の５個の抵抗が直列に接続された抵抗ラダーにより構成されており、微調整用の抵抗群１５は、Ｒ１２、Ｒ１３、Ｒ１４、Ｒ１５およびＲ１６の５個の抵抗が直列に接続された抵抗ラダーにより構成されているものとする。
【００４２】
なお、説明の便宜上、粗調整用の抵抗群１４では、電源端子ＶＣＣ側から順に、Ｒ７、Ｒ８、Ｒ９、Ｒ１０およびＲ１１とし、微調整用の抵抗群１５では、接地端子ＶＳＳ側から順にＲ１６、Ｒ１５、Ｒ１４、Ｒ１３およびＲ１２とする。微調整用の抵抗群１５に属する抵抗Ｒ１２、Ｒ１３、Ｒ１４およびＲ１５の各抵抗値は、粗調整用の抵抗群１４に属する抵抗Ｒ８、Ｒ９、Ｒ１０およびＲ１１の各抵抗値よりも小さい。
【００４３】
図８に示すように、抵抗Ｒ７の一端は電源端子ＶＣＣに接続されている。抵抗Ｒ７と抵抗Ｒ８、抵抗Ｒ８と抵抗Ｒ９、抵抗Ｒ９と抵抗Ｒ１０、および抵抗Ｒ１０と抵抗Ｒ１１の接続ノードには、それぞれ抵抗ラダーの任意のノードを選択するためのトランスファーゲートＴＧ６、ＴＧ７、ＴＧ８、ＴＧ９およびＴＧ１０が接続されている。トランスファーゲートＴＧ６、ＴＧ７、ＴＧ８、ＴＧ９およびＴＧ１０には、それぞれ外部から制御信号ＶＣＣ１０ＳＥＬ、ＶＣＣ１１ＳＥＬ、ＶＣＣ１２ＳＥＬ、ＶＣＣ１３ＳＥＬおよびＶＣＣ１４ＳＥＬが供給される。
【００４４】
また、トランスファーゲートＴＧ６、ＴＧ７、ＴＧ８、ＴＧ９およびＴＧ１０には、それぞれインバータＩＮ６、ＩＮ７、ＩＮ８、ＩＮ９およびＩＮ１０を介して各制御信号ＶＣＣ１０ＳＥＬ、ＶＣＣ１１ＳＥＬ、ＶＣＣ１２ＳＥＬ、ＶＣＣ１３ＳＥＬおよびＶＣＣ１４ＳＥＬの反転信号が供給される。トランスファーゲートＴＧ６、ＴＧ７、ＴＧ８、ＴＧ９およびＴＧ１０の出力側は、中間電位生成部２の内部信号ライン１６に共通接続されている。内部信号ライン１６は、トランスファーゲートＴＧ１１の入力側に接続されている。
【００４５】
抵抗Ｒ１２の一端は内部信号ライン１６に接続されている。抵抗Ｒ１２と抵抗Ｒ１３、抵抗Ｒ１３と抵抗Ｒ１４、抵抗Ｒ１４と抵抗Ｒ１５、および抵抗Ｒ１５と抵抗Ｒ１６の接続ノードには、それぞれ抵抗ラダーの任意のノードを選択するためのトランスファーゲートＴＧ１２、ＴＧ１３、ＴＧ１４およびＴＧ１５が接続されている。トランスファーゲートＴＧ１１、ＴＧ１２、ＴＧ１３、ＴＧ１４およびＴＧ１５には、それぞれ外部から制御信号ＶＣＣ２０ＳＥＬ、ＶＣＣ２１ＳＥＬ、ＶＣＣ２２ＳＥＬ、ＶＣＣ２３ＳＥＬおよびＶＣＣ２４ＳＥＬが供給される。
【００４６】
また、トランスファーゲートＴＧ１１、ＴＧ１２、ＴＧ１３、ＴＧ１４およびＴＧ１５には、それぞれインバータＩＮ１１、ＩＮ１２、ＩＮ１３、ＩＮ１４およびＩＮ１５を介して各制御信号ＶＣＣ２０ＳＥＬ、ＶＣＣ２１ＳＥＬ、ＶＣＣ２２ＳＥＬ、ＶＣＣ２３ＳＥＬおよびＶＣＣ２４ＳＥＬの反転信号が供給される。トランスファーゲートＴＧ１１、ＴＧ１２、ＴＧ１３、ＴＧ１４およびＴＧ１５の出力側は、中間電位ＶＣＣＭを出力するための出力ライン１３に共通接続されている。抵抗Ｒ１６と接地端子ＶＳＳの間には、スイッチングトランジスタ１２が接続されている。このスイッチングトランジスタ１２は、そのゲート端子に外部から供給される制御信号ＶＣＣＳＥＬにより動作する。
【００４７】
制御信号ＶＣＣ１０ＳＥＬ、ＶＣＣ１１ＳＥＬ、ＶＣＣ１２ＳＥＬ、ＶＣＣ１３ＳＥＬおよびＶＣＣ１４ＳＥＬは、例えば外部に設けられた５ビットのレジスタから供給される。制御信号ＶＣＣ１０ＳＥＬ、ＶＣＣ１１ＳＥＬ、ＶＣＣ１２ＳＥＬ、ＶＣＣ１３ＳＥＬおよびＶＣＣ１４ＳＥＬにより、トランスファーゲートＴＧ６、ＴＧ７、ＴＧ８、ＴＧ９およびＴＧ１０のうち、いずれか一つのみがオン状態となり、残りはオフ状態となる。
【００４８】
また、制御信号ＶＣＣ２０ＳＥＬ、ＶＣＣ２１ＳＥＬ、ＶＣＣ２２ＳＥＬ、ＶＣＣ２３ＳＥＬおよびＶＣＣ２４ＳＥＬは、例えば外部に設けられた別の５ビットのレジスタから供給される。制御信号ＶＣＣ２０ＳＥＬ、ＶＣＣ２１ＳＥＬ、ＶＣＣ２２ＳＥＬ、ＶＣＣ２３ＳＥＬおよびＶＣＣ２４ＳＥＬにより、トランスファーゲートＴＧ１１、ＴＧ１２、ＴＧ１３、ＴＧ１４およびＴＧ１５のうち、いずれか一つのみがオン状態となり、残りはオフ状態となる。あるいは、すべてのトランスファーゲートＴＧ６、ＴＧ７、ＴＧ８、ＴＧ９、ＴＧ１０、ＴＧ１１、ＴＧ１２、ＴＧ１３、ＴＧ１４およびＴＧ１５がオフ状態となってもよい。
【００４９】
特に限定しないが、例えば、出力ライン１３に出力される電源電圧の１／２の電位を基準電位とする。このときの制御信号ＶＣＣ１０ＳＥＬ、ＶＣＣ１１ＳＥＬ、ＶＣＣ１２ＳＥＬ、ＶＣＣ１３ＳＥＬ、ＶＣＣ１４ＳＥＬ、ＶＣＣ２０ＳＥＬ、ＶＣＣ２１ＳＥＬ、ＶＣＣ２２ＳＥＬ、ＶＣＣ２３ＳＥＬおよびＶＣＣ２４ＳＥＬは、それぞれ"０"、"０"、"１"、"０"、"０"、"１"、"０"、"０"、"０"および"０"である。
【００５０】
換言すれば、このときに出力ライン１３に電源電圧の１／２の電位が出力されるように、抵抗Ｒ７、Ｒ８、Ｒ９、Ｒ１０、Ｒ１１、Ｒ１２、Ｒ１３、Ｒ１４、Ｒ１５およびＲ１６の各抵抗値が設定されている。つまり、抵抗Ｒ７、Ｒ８およびＲ９の各抵抗値の和が、抵抗Ｒ１０、Ｒ１１、Ｒ１２、Ｒ１３、Ｒ１４、Ｒ１５およびＲ１６の各抵抗値の和に等しくなるように設定されている。
【００５１】
初期設定の際には、例えば、まず、中間電位ＶＣＣＭの粗調整を行う。その際、内部信号ライン１６を出力ライン１３に接続するために、トランスファーゲートＴＧ１１がオン状態となる。その状態で、粗調整用の抵抗群１４に接続されたトランスファーゲートＴＧ６、ＴＧ７、ＴＧ８、ＴＧ９およびＴＧ１０がこの順で順次オン状態になるように、各制御信号ＶＣＣ１０ＳＥＬ、ＶＣＣ１１ＳＥＬ、ＶＣＣ１２ＳＥＬ、ＶＣＣ１３ＳＥＬおよびＶＣＣ１４ＳＥＬが変更されていく。
【００５２】
そして、Ｄフリップフロップ３の出力値が"０"よりも"１"に偏った状態で、かつ出力ライン１３の電位が最も低くなるときの制御信号ＶＣＣ１０ＳＥＬ、ＶＣＣ１１ＳＥＬ、ＶＣＣ１２ＳＥＬ、ＶＣＣ１３ＳＥＬおよびＶＣＣ１４ＳＥＬの状態が粗調整終了時の状態として選択される。続いて、この状態で、中間電位ＶＣＣＭの微調整を行う。
【００５３】
微調整時には、微調整用の抵抗群１５に接続されたトランスファーゲートＴＧ１２、ＴＧ１３、ＴＧ１４およびＴＧ１５がこの順で順次オン状態になるように、各制御信号ＶＣＣ２１ＳＥＬ、ＶＣＣ２２ＳＥＬ、ＶＣＣ２３ＳＥＬおよびＶＣＣ２４ＳＥＬが変更される。それによって、出力ライン１３の電位が少しずつ低くなる。そして、出力ライン１３の電位が、Ｄフリップフロップ３を構成する電界効果トランジスタの閾値に最も近くなるときの制御信号ＶＣＣ２０ＳＥＬ、ＶＣＣ２１ＳＥＬ、ＶＣＣ２２ＳＥＬ、ＶＣＣ２３ＳＥＬおよびＶＣＣ２４ＳＥＬの状態が微調整終了時、すなわち中間電位ＶＣＣＭの調整終了時の状態として選択される。
【００５４】
初期設定が済んだ後、出力データ監視部９でＤフリップフロップ３から出力される乱数データを監視した結果、中間電位ＶＣＣＭを上げる必要があるときには、出力ライン１３の電位が徐々に高くなって、Ｄフリップフロップ３を構成する電界効果トランジスタの閾値に最も近くなるように、各制御信号ＶＣＣ１０ＳＥＬ、ＶＣＣ１１ＳＥＬ、ＶＣＣ１２ＳＥＬ、ＶＣＣ１３ＳＥＬ、ＶＣＣ１４ＳＥＬ、ＶＣＣ２０ＳＥＬ、ＶＣＣ２１ＳＥＬ、ＶＣＣ２２ＳＥＬ、ＶＣＣ２３ＳＥＬおよびＶＣＣ２４ＳＥＬが変更される。中間電位ＶＣＣＭを下げる必要があるときには、出力ライン１３の電位が徐々に低くなって、Ｄフリップフロップ３を構成する電界効果トランジスタの閾値に最も近くなるように、各制御信号ＶＣＣ１０ＳＥＬ、ＶＣＣ１１ＳＥＬ、ＶＣＣ１２ＳＥＬ、ＶＣＣ１３ＳＥＬ、ＶＣＣ１４ＳＥＬ、ＶＣＣ２０ＳＥＬ、ＶＣＣ２１ＳＥＬ、ＶＣＣ２２ＳＥＬ、ＶＣＣ２３ＳＥＬおよびＶＣＣ２４ＳＥＬが変更される。
【００５５】
なお、乱数データを生成しないときに、制御信号ＶＣＣＳＥＬにより、スイッチングトランジスタ１２がオフ状態とされることは、図７に示す中間電位生成部２の場合と同じである。図８に示す構成によれば、図７に示す構成よりも、中間電位ＶＣＣＭの調整範囲が広がり、かつ中間電位ＶＣＣＭをより細かい間隔で調整することができる。なお、粗調整用の抵抗群１４の抵抗の段数は５段以下でもよいし、７段以上でもよい。微調整用の抵抗群１５の抵抗の段数についても同様である。
【００５６】
また、中間電位生成部２は、図９に示す構成でもよい。図９に示す構成では、特に数を限定しないが、例えば電源端子ＶＣＣと接地端子ＶＳＳの間に、Ｒ１７、Ｒ１８、Ｒ１９、Ｒ２０、Ｒ２１およびＲ２２の６個の抵抗が直列に接続されており、これら６個の抵抗Ｒ１７，Ｒ１８，Ｒ１９，Ｒ２０，Ｒ２１，Ｒ２２からなる抵抗ラダーにより中間電位ＶＣＣＭを生成するものとする。なお、説明の便宜上、電源端子ＶＣＣ側から順に、Ｒ１７、Ｒ１８、Ｒ１９、Ｒ２０、Ｒ２１およびＲ２２とする。
【００５７】
図９に示すように、抵抗Ｒ１７の一端は電源端子ＶＣＣに接続されている。抵抗Ｒ１７と抵抗Ｒ１８の接続ノードには、中間電位生成部２の出力ライン１３が接続されている。また、抵抗Ｒ１７と抵抗Ｒ１８の接続ノードと、抵抗Ｒ１８と抵抗Ｒ１９の接続ノードの間には、抵抗Ｒ１８を迂回するためのトランスファーゲートＴＧ１６が接続されている。抵抗Ｒ１８と抵抗Ｒ１９の接続ノードと、抵抗Ｒ１９と抵抗Ｒ２０の接続ノードの間には、抵抗Ｒ１９を迂回するためのトランスファーゲートＴＧ１７が接続されている。
【００５８】
抵抗Ｒ１９と抵抗Ｒ２０の接続ノードと、抵抗Ｒ２０と抵抗Ｒ２１の接続ノードの間には、抵抗Ｒ２０を迂回するためのトランスファーゲートＴＧ１８が接続されている。抵抗Ｒ２０と抵抗Ｒ２１の接続ノードと、抵抗Ｒ２１と抵抗Ｒ２２の接続ノードの間には、抵抗Ｒ２１を迂回するためのトランスファーゲートＴＧ１９が接続されている。トランスファーゲートＴＧ１６、ＴＧ１７、ＴＧ１８およびＴＧ１９には、それぞれ外部から制御信号ＶＣＣ３１ＳＥＬ、ＶＣＣ３２ＳＥＬ、ＶＣＣ３３ＳＥＬおよびＶＣＣ３４ＳＥＬが供給される。
【００５９】
また、トランスファーゲートＴＧ１６、ＴＧ１７、ＴＧ１８およびＴＧ１９には、それぞれインバータＩＮ１６、ＩＮ１７、ＩＮ１８およびＩＮ１９を介して各制御信号ＶＣＣ３１ＳＥＬ、ＶＣＣ３２ＳＥＬ、ＶＣＣ３３ＳＥＬおよびＶＣＣ３４ＳＥＬの反転信号が供給される。抵抗Ｒ２２と接地端子ＶＳＳの間には、スイッチングトランジスタ１２が接続されている。このスイッチングトランジスタ１２は、そのゲート端子に外部から供給される制御信号ＶＣＣＳＥＬにより動作する。
【００６０】
制御信号ＶＣＣ３１ＳＥＬ、ＶＣＣ３２ＳＥＬ、ＶＣＣ３３ＳＥＬおよびＶＣＣ３４ＳＥＬは、例えば外部に設けられた４ビットのレジスタから供給される。各トランスファーゲートＴＧ１６、ＴＧ１７、ＴＧ１８およびＴＧ１９は、それぞれの制御信号ＶＣＣ３１ＳＥＬ、ＶＣＣ３２ＳＥＬ、ＶＣＣ３３ＳＥＬおよびＶＣＣ３４ＳＥＬによって、他から独立してオン状態となったり、オフ状態になる。
【００６１】
特に限定しないが、例えば電源電圧の１／２の電位を基準電位とする。初期状態では、出力ライン１３に出力される中間電位ＶＣＣＭが、Ｄフリップフロップ３を構成する電界効果トランジスタの閾値にほぼ等しくなるように、制御信号ＶＣＣ３１ＳＥＬ、ＶＣＣ３２ＳＥＬ、ＶＣＣ３３ＳＥＬおよびＶＣＣ３４ＳＥＬが供給される。そして、出力データ監視部９から出力される中間電位生成変更信号に基づいて、４ビットのレジスタの値が変更され、トランスファーゲートＴＧ１６、ＴＧ１７、ＴＧ１８およびＴＧ１９のオン／オフの状態が適宜切り替えられる。
【００６２】
一例として、具体的な数値を挙げて説明する。例えば、抵抗Ｒ１７、Ｒ１８、Ｒ１９、Ｒ２０、Ｒ２１およびＲ２２の抵抗値がそれぞれ４７０ｋΩ、２ｋΩ、４ｋΩ、８ｋΩ、１６ｋΩおよび４５４ｋΩとする。この場合、各制御信号ＶＣＣ３１ＳＥＬ、ＶＣＣ３２ＳＥＬ、ＶＣＣ３３ＳＥＬおよびＶＣＣ３４ＳＥＬがそれぞれ"１"、"１"、"１"および"０"であるときに、トランスファーゲートＴＧ１６、ＴＧ１７およびＴＧ１８がオン状態となり、トランスファーゲートＴＧ１９がオフ状態となる。
【００６３】
それによって、電源端子ＶＣＣと出力ライン１３間に抵抗Ｒ１７（４７０ｋΩ）のみが接続されており、出力ライン１３と接地端子ＶＳＳ間に抵抗Ｒ２１（１６ｋΩ）と抵抗Ｒ２２（４５４ｋΩ）が接続されていることになる。従って、出力ライン１３に、電源電圧の０．５倍（＝１−４７０／（４７０＋１６＋４５４）＝１−（４７０／９４０）＝１−１／２＝１−０．５）の電位、すなわち基準電位が出力される。
【００６４】
表１および表２に、各制御信号ＶＣＣ３１ＳＥＬ、ＶＣＣ３２ＳＥＬ、ＶＣＣ３３ＳＥＬおよびＶＣＣ３４ＳＥＬの値（"１"または"０"）と、電源端子ＶＣＣと出力ライン１３間および接地端子ＶＳＳと出力ライン１３間の各抵抗値（ｋΩ）と、出力ライン１３に出力される中間電位ＶＣＣＭの電源電圧に対する倍率と、電源電圧が３．３Ｖのときの中間電位ＶＣＣＭの値（Ｖ）をまとめて示す。
【００６５】
【表１】
0004549263.tif 000002
【００６６】
【表２】
0004549263.tif 000003
【００６７】
初期設定の際に、Ｄフリップフロップ３を構成する電界効果トランジスタの閾値が基準電位よりも高い場合には、制御信号ＶＣＣ３１ＳＥＬ、ＶＣＣ３２ＳＥＬ、ＶＣＣ３３ＳＥＬおよびＶＣＣ３４ＳＥＬは、表２のいずれかの欄の組み合わせに変更される。一方、Ｄフリップフロップ３を構成する電界効果トランジスタの閾値が基準電位よりも低い場合には、制御信号ＶＣＣ３１ＳＥＬ、ＶＣＣ３２ＳＥＬ、ＶＣＣ３３ＳＥＬおよびＶＣＣ３４ＳＥＬは、表１の右端欄を除くいずれかの欄の組み合わせに変更される。
【００６８】
初期設定が済んだ後、出力データ監視部９でＤフリップフロップ３から出力される乱数データを監視した結果、中間電位ＶＣＣＭを上げる必要があるときには、その時点の制御信号ＶＣＣ３１ＳＥＬ、ＶＣＣ３２ＳＥＬ、ＶＣＣ３３ＳＥＬおよびＶＣＣ３４ＳＥＬが表１のいずれかの欄の組み合わせであれば、表１のそれよりも右側のいずれかの欄の組み合わせ、または表２のいずれかの欄の組み合わせに変更される。中間電位ＶＣＣＭを上げる必要が生じたときの制御信号ＶＣＣ３１ＳＥＬ、ＶＣＣ３２ＳＥＬ、ＶＣＣ３３ＳＥＬおよびＶＣＣ３４ＳＥＬが表２のいずれかの欄の組み合わせであれば、表２のそれよりも右側のいずれかの欄の組み合わせに変更される。
【００６９】
それに対して、中間電位ＶＣＣＭを下げる必要があるときには、その時点の制御信号ＶＣＣ３１ＳＥＬ、ＶＣＣ３２ＳＥＬ、ＶＣＣ３３ＳＥＬおよびＶＣＣ３４ＳＥＬが表１のいずれかの欄の組み合わせであれば、表１のそれよりも左側のいずれかの欄の組み合わせに変更される。中間電位ＶＣＣＭを下げる必要が生じたときの制御信号ＶＣＣ３１ＳＥＬ、ＶＣＣ３２ＳＥＬ、ＶＣＣ３３ＳＥＬおよびＶＣＣ３４ＳＥＬが表２のいずれかの欄の組み合わせであれば、表２のそれよりも左側のいずれかの欄の組み合わせ、または表１のいずれかの欄の組み合わせに変更される。
【００７０】
なお、乱数データを生成しないときに、制御信号ＶＣＣＳＥＬにより、スイッチングトランジスタ１２がオフ状態とされることは、図７に示す中間電位生成部２の場合と同じである。図９に示す構成によれば、図７に示す構成よりも、中間電位ＶＣＣＭの調整範囲が広がり、かつ中間電位ＶＣＣＭをより細かい間隔で調整することができる。なお、抵抗ラダーの抵抗の段数は５段以下でもよいし、７段以上でもよい。抵抗ラダーの抵抗の段数に応じて中間電位ＶＣＣＭの調整段階数が変わる。上記具体例は、中間電位ＶＣＣＭを１６段階で調整する場合の一構成例である。また、具体例では、抵抗Ｒ２１、Ｒ２０、Ｒ１９およびＲ１８の抵抗値の比を８：４：２：１としたが、これ以外の比でもよい。
【００７１】
次に、出力データ監視部９の構成について説明する。図１０は、出力データ監視部９の一例を示す図である。図１０に示す出力データ監視部９は、Ｄフリップフロップ３から出力された乱数データが"１"であるときにカウント値が１だけ進む第１のカウンタ１７と、乱数データが"０"であるときにカウント値が１だけ進む第２のカウンタ１８を備えている。第１のカウンタ１７は、乱数データが"０"であるときにリセットされる。第２のカウンタ１８は、乱数データが"１"であるときにリセットされる。
【００７２】
特に限定しないが、例えば全部で１６個の乱数データを用意する場合には、第１のカウンタ１７および第２のカウンタ１８は４ビットのカウンタで構成される。そして、乱数データが１６回連続して"１"であるときに、第１のカウンタ１７から中間電位ＶＣＣＭを下げるための中間電位生成変更信号が出力される。一方、乱数データが１６回連続して"０"であるときに、第２のカウンタ１８から中間電位ＶＣＣＭを上げるための中間電位生成変更信号が出力される。なお、カウンタのビット数は、４ビットに限らない。
【００７３】
また、出力データ監視部９は、図１１に示す構成でもよい。図１１に示す構成では、特に限定しないが、例えば全部で１６個の乱数データを用意する場合、第１のカウンタ１７および第２のカウンタ１８にそれぞれカウント値の初期値として８がロードされる。従って、乱数データの生成開始後、乱数データが８回連続して"１"であるときに、第１のカウンタ１７から中間電位ＶＣＣＭを下げるための中間電位生成変更信号が出力される。一方、乱数データが８回連続して"０"であるときに、第２のカウンタ１８から中間電位ＶＣＣＭを上げるための中間電位生成変更信号が出力される。
【００７４】
図１１に示す構成は、例えばＩＣカードなどにおいて用いられる鍵のビット数が少ない場合に有効である。なお、第１のカウンタ１７および第２のカウンタ１８にカウント値の初期値としてロードされる値は８に限らない。このロードされる値を、外部のレジスタ等を用いて任意に設定できるようにしてもよい。
【００７５】
さらに、出力データ監視部９は、図１２に示す構成でもよい。図１２に示す構成では、Ｄフリップフロップ３から出力された乱数データが"１"であるときにカウント値が１だけ進み、"０"であるときにカウント値が１だけ戻る第３のカウンタ１９と、生成された乱数データの数をカウントする第４のカウンタ２０と、ＮＡＮＤゲート２１と、３個のＡＮＤゲート２２，２３，２４を備えている。
【００７６】
特に限定しないが、例えば、第３のカウンタ１９が５ビットのカウンタで構成されており、全部で１６個の乱数データを用意する場合には、乱数データの生成開始時（乱数生成会信号入力時）に、第３のカウンタ１９にカウント値の初期値として１６がロードされる。そして、１６個の乱数データが生成され、それによって増減した第３のカウンタ１９のカウント値が所定の数よりも小さい場合には、ＮＡＮＤゲート２１およびＡＮＤゲート２２を介して、第３のカウンタ１９から中間電位ＶＣＣＭを上げるための中間電位生成変更信号が出力される。このときの所定の数は、乱数データの生成開始時にカウント値の初期値として設定された１６に等しいか、またはそれよりも小さい数である。
【００７７】
一方、１６個の乱数データの生成後、第３のカウンタ１９のカウント値が所定の数よりも大きい場合には、ＮＡＮＤゲート２１およびＡＮＤゲート２２を介して、第３のカウンタ１９から中間電位ＶＣＣＭを下げるための中間電位生成変更信号が出力される。このときの所定の数は、乱数データの生成開始時にカウント値の初期値として設定された１６に等しいか、またはそれよりも大きい数である。
【００７８】
図１２に示す構成によれば、例えば生成された１６個の乱数データが"０"に偏っている場合に、その次の１６個の乱数データを生成する際に"１"が多くなるように調整することができる。逆の場合も同様である。従って、偏りの少ない平均化された乱数データが得られる。なお、第３のカウンタ１９にカウント値の初期値としてロードされる値は１６に限らない。このロードされる値を、外部のレジスタ等を用いて任意に設定できるようにしてもよい。
【００７９】
（実施の形態３）
図１３は、実施の形態３の乱数発生装置の一例を示す図である。実施の形態３の乱数発生装置３１は、実施の形態１の乱数発生装置１を複数用意し、それら複数の乱数発生装置１を複数の遅延回路３２により異なるタイミングで動作させ、乱数データとしてＸＯＲ回路３３から各乱数発生装置１の出力値の排他的論理和を出力するようにしたものである。なお、図１に示す乱数発生装置１の代わりに、図２に示す乱数発生装置４、または図３に示す乱数発生装置６を用いてもよい。
【００８０】
また、図１４に示す乱数発生装置３４のように、図１３に示す乱数発生装置３１に、ＸＯＲ回路３３から出力される乱数データを監視する出力データ監視部３５を付加し、ＸＯＲ回路３３から出力された乱数データに基づいて中間電位ＶＣＣＭを制御する構成としてもよい。なお、この出力データ監視部３５は、実施の形態２において説明した出力データ監視部９と同じものであるので、重複する説明を省略する。
【００８１】
以上説明したように、上記各実施の形態によれば、中間電位生成部２がアナログ回路で構成されており、そのアナログ回路で生成した中間電位ＶＣＣＭをＤフリップフロップ３のデータ端子に印加することによって、Ｄフリップフロップ３のデータ信号入力部で貫通電流が発生しても、それ以外には消費電力を増大させ得る要因がないので、低消費電力化を図ることができる。また、乱数発生部（Ｄフリップフロップ３）がデジタル回路で構成されているので、回路規模の縮小と低消費電力化を図ることができる。
【００８２】
さらに、Ｄフリップフロップ３のデータ端子に固定電位を供給するためのゲート５，７を設けることによって、乱数を生成しないときにＤフリップフロップ３のデータ信号入力部で貫通電流が発生しないようにすることができるので、より一層、低消費電力化を図ることができる。また、実施の形態２のように、生成された乱数データの監視結果をフィードバックして中間電位ＶＣＣＭを制御する構成とし、乱数発生装置８（１０，１１）が自らの生成データをチェックすることによって、外部からの不正なアクセスに対する高い耐性が得られる。
【００８３】
また、実施の形態３のように、複数の乱数発生装置１（４，６）を異なるタイミングで動作させて、すべての出力値の排他的論理和を求めることによって、各乱数発生装置１（４，６）の出力値が"０"または"１"に偏っていても、その偏りがＸＯＲ回路３３によって平均化されるので、乱数データの発生率が高くなる。この構成と、乱数発生装置１（４，６）が自らの生成データをチェックして中間電位ＶＣＣＭを制御する構成するを組み合わせることにより、外部からの不正なアクセスに対する高い耐性が得られる。
【００８４】
具体的には、０．１８μｍのテクノロジで作製した乱数発生装置の動作時消費電流を比較したところ、アナログ回路のみで構成された従来の乱数発生装置の消費電流が約２ｍＡであったのに対して、乱数発生部をデジタル回路で構成した実施の形態では、消費電流を約５０μＡ以下にすることができた。すなわち、低消費電力化を図ることができた。また、実施の形態では、製造プロセスにおいて、アナログ専用プロセスが不要であった。従って、製造コストの削減を図ることができた。さらに、スクランブル回路を通過させなくても、ＦＩＰＳ−１４０−２試験に合格可能な程度の乱数の発生性を得ることができた。つまり、回路規模の削減と、対信頼性の向上を図ることができた。
【００８５】
以上において本説明は、上述した実施の形態に限らず、種々変更可能である。中間電位生成部２や出力データ監視部９の構成は、実施の形態において説明した構成に限らない。例えば、中間電位生成部２を、上述した各構成の抵抗分割式に代えて、容量分割式により中間電位ＶＣＣＭを生成する構成としてもよい。
【００８６】
（付記１）クロック信号に基づいて、データ端子への印加電位に応じた値をサンプリングして出力するフリップフロップと、
前記フリップフロップを構成する電界効果トランジスタの閾値にほぼ等しい中間電位を生成して前記フリップフロップのデータ端子に供給する中間電位生成部と、
を備えることを特徴とする乱数発生装置。
【００８７】
（付記２）前記中間電位生成部と前記フリップフロップの間に、前記中間電位生成部で生成された中間電位にかかわらず、前記フリップフロップのデータ端子への供給電位を固定するゲートが設けられていることを特徴とする付記１に記載の乱数発生装置。
【００８８】
（付記３）前記ゲートは、前記中間電位生成部で生成された中間電位と、外部から供給される制御信号を入力とするＡＮＤゲートであることを特徴とする付記２に記載の乱数発生装置。
【００８９】
（付記４）前記ゲートは、前記中間電位生成部で生成された中間電位と、外部から供給される制御信号を入力とするＯＲゲートであることを特徴とする付記２に記載の乱数発生装置。
【００９０】
（付記５）前記中間電位生成部は、電源電圧を抵抗分割する抵抗ラダーを備えており、該抵抗ラダーにより電源電圧を抵抗分割することにより中間電位を生成することを特徴とする付記１〜４のいずれか一つに記載の乱数発生装置。
【００９１】
（付記６）前記抵抗ラダーは、粗調整用の抵抗群と微調整用の抵抗群を備えていることを特徴とする付記５に記載の乱数発生装置。
【００９２】
（付記７）前記フリップフロップの出力値を監視し、該出力値が常に同じであるときに前記中間電位生成部に対して中間電位の変更を指示する出力データ監視部をさらに備えていることを特徴とする付記１〜６のいずれか一つに記載の乱数発生装置。
【００９３】
（付記８）前記フリップフロップの出力値を監視し、該出力値が連続して一定の数だけ同じであるときに前記中間電位生成部に対して中間電位の変更を指示する出力データ監視部をさらに備えていることを特徴とする付記１〜６のいずれか一つに記載の乱数発生装置。
【００９４】
（付記９）前記フリップフロップの出力値を監視し、該出力値の分布が一様でないときに前記中間電位生成部に対して中間電位の変更を指示する出力データ監視部をさらに備えていることを特徴とする付記１〜６のいずれか一つに記載の乱数発生装置。
【００９５】
（付記１０）上記付記１〜６のいずれか一つに記載の複数の乱数発生装置と、
前記各乱数発生装置を異なるタイミングで動作させるための遅延回路と、
前記各乱数発生装置の出力値の排他的論理和を出力するＸＯＲ回路と、
を備えていることを特徴とする乱数発生装置。
【００９６】
（付記１１）電界効果トランジスタの閾値にほぼ等しい中間電位を該電界効果トランジスタのゲートに印加し、該中間電位の熱雑音による変動に応じて前記電界効果トランジスタの出力値が切り替わることにより乱数を生成することを特徴とする乱数発生方法。
【００９７】
（付記１２）前記電界効果トランジスタの出力値を監視し、該出力値が常に同じであるときに前記中間電位を変更することを特徴とする付記１１に記載の乱数発生方法。
【００９８】
（付記１３）前記電界効果トランジスタの出力値を監視し、該出力値が連続して一定の数だけ同じであるときに前記中間電位を変更することを特徴とする付記１１に記載の乱数発生方法。
【００９９】
（付記１４）前記電界効果トランジスタの出力値を監視し、該出力値の分布が一様でないときに前記中間電位を変更することを特徴とする付記１１に記載の乱数発生方法。
【産業上の利用可能性】
【０１００】
以上のように、本発明にかかる乱数発生装置および乱数発生方法は、科学技術計算やゲーム機やコンピュータ等における暗号化処理等に使用される乱数発生装置に有用であり、特に、ＩＣカードやＩＣカード等の処理を行う装置に搭載される乱数発生装置に適している。
【図面の簡単な説明】
【０１０１】
【図１】実施の形態１の乱数発生装置の一例を示す図である。
【図２】実施の形態１の乱数発生装置の他の例を示す図である。
【図３】実施の形態１の乱数発生装置のさらに他の例を示す図である。
【図４】実施の形態２の乱数発生装置の一例を示す図である。
【図５】実施の形態２の乱数発生装置の他の例を示す図である。
【図６】実施の形態２の乱数発生装置のさらに他の例を示す図である。
【図７】中間電位生成部の一例を示す図である。
【図８】中間電位生成部の他の例を示す図である。
【図９】中間電位生成部のさらに他の例を示す図である。
【図１０】出力データ監視部の一例を示す図である。
【図１１】出力データ監視部の他の例を示す図である。
【図１２】出力データ監視部のさらに他の例を示す図である。
【図１３】実施の形態３の乱数発生装置の一例を示す図である。
【図１４】実施の形態３の乱数発生装置の他の例を示す図である。
【符号の説明】
【０１０２】
Ｒ１〜Ｒ２２  抵抗（ラダー）
ＶＣＣＭ  中間電位
１，４，６，８，１０，１１  乱数発生装置
２  中間電位生成部
３  Ｄフリップフロップ
５  ＡＮＤゲート
７  ＯＲゲート
９  出力データ監視部
１４  粗調整用の抵抗群
１５  微調整用の抵抗群
【図１】
0004549263.tif 000004
【図２】
0004549263.tif 000005
【図３】
0004549263.tif 000006
【図４】
0004549263.tif 000007
【図５】
0004549263.tif 000008
【図６】
0004549263.tif 000009
【図７】
0004549263.tif 000010
【図８】
0004549263.tif 000011
【図９】
0004549263.tif 000012
【図１０】
0004549263.tif 000013
【図１１】
0004549263.tif 000014
【図１２】
0004549263.tif 000015
【図１３】
0004549263.tif 000016
【図１４】
0004549263.tif 000017