(57)【特許請求の範囲】
【請求項１】
乱数を発生する複数の乱数発生部と、
前記各乱数発生部が起動されてから、安定した乱数が生成されるまでの期間に、前記各乱数発生部により生成された乱数をそれぞれ記憶する記憶部と、
前記記憶部に記憶された各乱数を用いて識別情報を生成する生成部と
を有するＩＤ生成装置。
【請求項２】
前記記憶部から読み出された前記各乱数発生部の乱数を平均化する平滑部を、さらに備えること
を特徴とする請求項１に記載のＩＤ生成装置。
【請求項３】
前記各乱数発生部は、発振速度を遅延させる遅延回路を、さらに備えること
を特徴とする請求項１または請求項２に記載のＩＤ生成装置。
【請求項４】
近接する前記各乱数発生部からの乱数の差分を検出する差分検出部を、さらに備え、
前記生成部は、前記差分検出部で検出された前記差分を用いて前記識別情報（ＩＤ）を生成すること
を特徴とする請求項１から請求項３のうち、いずれか一項に記載のＩＤ生成装置。
【請求項５】
２つ以上の前記乱数発生部の乱数の差分を検出する検出部を、さらに備え、
前記生成部は、前記検出部で検出された前記差分を用いて前記識別情報（ＩＤ）を生成すること
を特徴とする請求項１から請求項４のうち、いずれか一項に記載のＩＤ生成装置。
【請求項６】
前記各乱数発生部は、それぞれ奇数個のインバータをリング状に接続して形成されたリング発振器であること
を特徴とする請求項１から請求項５のうち、いずれか一項に記載のＩＤ生成装置。
【請求項７】
前記記憶部は、前記各乱数発生部の起動時に最初に生成された乱数をそれぞれ記憶すること
を特徴とする請求項１から請求項６のうち、いずれか一項に記載のＩＤ生成装置。
【請求項８】
複数の乱数発生部がそれぞれ乱数を生成する乱数生成ステップと、
記憶部が、前記各乱数発生部が起動されてから、安定した乱数が生成されるまでの期間に、前記各乱数発生部により生成された乱数をそれぞれ記憶する記憶ステップと、
生成部が、前記記憶部に記憶された前記各乱数発生部で生成された乱数を用いて識別情報を生成する生成ステップと
を有するＩＤ生成方法。
【請求項９】
乱数を発生する複数の乱数発生部と、
前記各乱数発生部が起動されてから、安定した乱数が生成されるまでの期間に、前記各乱数発生部で生成された乱数をそれぞれ記憶する記憶部と、
前記記憶部に記憶された各乱数を用いて識別情報を生成する生成部と、
生成された前記識別情報に、誤り訂正符号を付加する符号付加部と、
前記誤り訂正符号が付加された前記識別情報に、ハッシュ関数を付加して出力する関数付加部と
を有するＩＤ生成システム。
【請求項１０】
乱数を発生する乱数発生部と、
前記乱数発生部が起動されてから、安定した乱数が生成されるまでの期間に、前記乱数発生部により生成された乱数を記憶する記憶部と、
前記記憶部に記憶された乱数を用いて識別情報を生成する生成部と
を有するＩＤ生成装置。
【請求項１１】
乱数発生部が乱数を生成する乱数生成ステップと、
記憶部が、前記乱数発生部が起動されてから、安定した乱数が生成されるまでの期間に、前記乱数発生部により生成された乱数を記憶する記憶ステップと、
生成部が、前記記憶部に記憶された前記乱数発生部で生成された乱数を用いて識別情報を生成する生成ステップと
を有するＩＤ生成方法。
【請求項１２】
乱数を発生する乱数発生部と、
前記乱数発生部が起動されてから、安定した乱数が生成されるまでの期間に、前記乱数発生部で生成された乱数を記憶する記憶部と、
前記記憶部に記憶された乱数を用いて識別情報を生成する生成部と、
生成された前記識別情報に、誤り訂正符号を付加する符号付加部と、
前記誤り訂正符号が付加された前記識別情報に、ハッシュ関数を付加して出力する関数付加部と
を有するＩＤ生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施の形態は、ＩＤ生成装置、ＩＤ生成方法、およびＩＤ生成システムに関する。
【背景技術】
【０００２】
近接場型の無線通信（ＮＦＣ：near  field  communication）の利用が急拡大している。キャッシュカードおよびクレジットカード等のＩＣ（Integrated  Circuit）カードは、電子マネーとして利用されることも多くなっている。また、電車およびバス等の乗車券にも、ＩＣカードが多く利用されている。このようなＩＣカードでは、個人を特定するＩＤ（identification）特定機能が重要となる。そして、ＩＣカードの利用が拡大している今日においては、セキュリティの強化が、より重要となっている。また、データを保存する目的でのみ用いられてきたメモリーカードにも、ＩＤ機能が設けられつつあり、携帯型デバイスのＩＤ特定機能の高度化が求められている。
【０００３】
ここで、個々のデバイスばらつきを、「チップ指紋」として利用する研究開発が進められている。例えば、ＳＲＡＭ（Static  Random  Access  Memory）の初期ばらつき、または、工場出荷時の結晶欠陥を用いて、ＩＤの識別を行う方法が知られている（ＳＲＡＭ−ＰＵＦ：Physically  Unclonable  Function）。さらに、多数のリング発振器の周波数の違いをＩＤとして用いる方法が知られている。
【０００４】
しかし、ＳＲＡＭ−ＰＵＦにおいては、多くのＳＲＡＭのメモリ領域が必要となり、回路面積上のオーバヘッドになる可能性がある。また、多数のリング発振器の周波数の違いをＩＤとして用いる方法では、３つ以上のインバータを用いたリング発振器を多数余計に設ける必要があり、やはり余分に多くの回路面積が必要となる問題がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２０１１−５１８４０２号公報
【特許文献２】特開２０００−２３５６３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明が解決しようとする課題は、より強固なＩＤを生成可能なＩＤ生成装置、ＩＤ生成方法、およびＩＤ生成システムを提供することである。
【課題を解決するための手段】
【０００７】
実施の形態のＩＤ生成装置は、乱数発生部が乱数を発生する。記憶部は、乱数発生部が起動されてから、安定した乱数が生成されるまでの期間に、乱数発生部により生成された乱数を記憶する。そして、生成部が、記憶部に記憶された乱数を用いて識別情報を生成する。
【図面の簡単な説明】
【０００８】
【図１】図１は、第１の実施の形態のＩＤ生成システムのブロック図である。
【図２】図２は、第１の実施の形態のＩＤ生成システムに設けられているリング発振器の回路図である。
【図３】図３は、第１の実施の形態のＩＤ生成システムにおける、ＩＤの生成タイミングを説明するための図である。
【図４】図４は、第１の実施の形態のＩＤ生成システムにおける、乱数の発生周期とビットパターンを説明するための図である。
【図５】図５は、第１の実施の形態のＩＤ生成システムにおける、ＩＤ生成の流れを説明するための図である。
【図６】図６は、第２の実施の形態のＩＤ生成システムのリング発振器の回路図である。
【図７】図７は、第４の実施の形態のＩＤ生成システムにおいて、発振速度を遅延させる１つのゲートを設けたリング発振器の回路図である。
【図８】図８は、第４の実施の形態のＩＤ生成システムにおいて、発振速度を遅延させる２つまたは３つのゲートを設けたリング発振器の回路図である。
【図９】図９は、第４の実施の形態のＩＤ生成システムにおいて、発振速度を遅延させる２つまたは３つのゲートを設けたリング発振器の変形例となる回路図である。
【図１０】図１０は、第５の実施の形態のＩＤ生成システムにおいて、隣接するリング発振器の出力の差分からＩＤを生成する流れを説明するためのブロック図である。
【図１１】図１１は、第５の実施の形態のＩＤ生成システムにおいて、隣接するリング発振器の出力の差分からさらに差分を求めてＩＤを生成する流れを説明するためのブロック図である。
【図１２】図１２は、第５の実施の形態のＩＤ生成システムにおいて、隣接するレジスタの出力の差分からＩＤを生成する流れを説明するためのブロック図である。
【図１３】図１３は、実施の形態のＩＤ生成システムをＩＣカードに適用した使用例を示す図である。
【図１４】図１４は、実施の形態のＩＤ生成システムをモバイル端末に適用した使用例を示す図である。
【図１５】図１５は、実施の形態のＩＤ生成システムを、機械対機械（Ｍ２Ｍ）の相互認証に適用した使用例を示す図である。
【図１６】図１６は、実施の形態のＩＤ生成システムを、機械対機械（Ｍ２Ｍ）の相互認証に適用した他の使用例を示す図である。
【図１７】図１７は、実施の形態のＩＤ生成システムを適用した電子デバイスのブロック図である。
【発明を実施するための形態】
【０００９】
以下、ＩＤ生成装置、ＩＤ生成方法、およびＩＤ生成システムの実施の形態を、図面を参照しながら詳細に説明する。なお、ＩＤは、「identification：識別情報」の略記である。
【００１０】
（概要）
実施の形態のＩＤ生成装置、ＩＤ生成方法、およびＩＤ生成システムは、各デバイス固有の欠陥情報等の単一の情報のみならず、ＩＤ生成装置が有する複数の物理的性質を利用することで、より強固なＩＤを生成する。特に、本来、乱数生成用に用いられていた乱数生成回路に、小規模な回路を追加するだけで、乱数生成機能およびＩＤ生成機能の両方を併せ持つ回路を提供する。そして、乱数生成回路で生成される乱数の統計性と、乱数生成回路で最初に生成される乱数のビット列（立ち上がりのビット列）とを二つを合わせて、より安全かつ強固なＩＤを生成する。
【００１１】
（第１の実施の形態）
まず、図１に、第１の実施の形態のＩＤ生成システムのブロック図を示す。このＩＤ生成システムは、乱数生成回路１およびＩＤ生成回路２を有する。乱数生成回路１は、リング発振器３、平滑化回路４、および乱数検定回路５を有する。詳しくは後述するが、リング発振器３は、奇数個のインバータをリング状に接続して形成されると共に、発振調整用のセレクタ、およびＩＤ生成用のレジスタを備えている。リング発振器３は、乱数発生部の一例である。乱数発生部としては、リング発振器３以外であっても、乱数を発生すれば、どのようなものでも用いることができる。平滑化回路４は、設けなくてもよいが、リング発振器３の動作開始時のデータがばらつくときには設けることが好ましい。平滑化回路４は、０，１のビットパターンを平均化する。乱数検定回路５は、例えば乱数の出現頻度をカイ２乗検定する「度数検定」等を行い、乱数を出力する。
【００１２】
ＩＤ生成回路２は、生成部の一例である。ＩＤ生成回路２は、リング発振器３で生成された乱数に対して、後述する出力補正を行うと共に、訂正符号発生部７から供給された誤り訂正符号を付加して出力する出力補正／誤り訂正部６を有している。また、ＩＤ生成回路２は、出力補正／誤り訂正部６からの出力にハッシュ関数を付加することで暗号鍵を生成して出力するハッシュ関数部８を有している。
【００１３】
図２は、リング発振器３の回路図である。第１の実施の形態のＩＤ生成システムは、このようなリング発振器３を複数有しているものとして説明を進めるが、リング発振器３を、一つのみ設けてもよい。第１の実施の形態のＩＤ生成システムは、後述するように複数のリング発振器３で生成された各乱数を用いてＩＤを生成する。各リング発振器３は、図２に示すように、リング状に接続された奇数個のインバータ１１と、発振調整用のセレクタ１２と、インバータ１１およびセレクタ１２の各出力の排他的論理和を出力とするＸＯＲゲート１３とを有している。なお、ＸＯＲは「exclusive  ＯＲ」の略記である。また、リング発振器３は、ＸＯＲゲート１３の出力である乱数からＩＤを生成するためのレジスタ１４を有している。レジスタ１４は、記憶部の一例である。レジスタ１４は、例えばフリップフロップで形成することができ、ＸＯＲゲート１３から出力された０または１のビットパターンを記憶する。
【００１４】
なお、レジスタ１４の代わりに、ＳＲＡＭ、ＤＲＡＭ等のメモリを用いてもよい。ＳＲＡＭは、「Static  Random  Access  Memory」の略記である。ＤＲＡＭは、「Dynamic  Random  Access  Memory」の略記である。さらに、ＳＲＡＭ、ＤＲＡＭの代わりにＮＡＮＤフラッシュメモリ等の不揮発性メモリを用いてもよい。ただ、不揮発性メモリを用いる場合は、ＩＤの秘匿性を確保するために、ＩＤ生成回路２でＩＤの生成が完了した後に、不揮発性メモリに記憶されているＩＤデータを消去することが好ましい。
【００１５】
セレクタ１２には、リング発振器３を停止制御するための例えば（ａ）の符号で示す発振停止信号、および図２の（ｂ）および（ｃ）の符号で示す、それぞれ周波数の異なる２種類のクロックが供給されている。セレクタ１２は、発振停止信号、および２種類のクロックのうち、選択信号Ｓで指示される発振停止信号またはクロックを選択し、ＸＯＲゲート１３に供給する。
【００１６】
次に、リング発振器３は、外部からのクロックのタイミングにより、０と１が、確率的にランダムに分布し、乱数生成回路１の主要部として動作する。リング発振器３は、図３に示すようにＩＤ生成システムのスイッチを入れてから、十分なエントロピーを持った乱数が生成されるまでに、相応の時間を必要とする。すなわち、図３の時刻ｔ０にＩＤ生成システムのスイッチを入れたとすると、相応の時間が経過した時刻ｔ１から十分なエントロピーを持った乱数が生成される。この「相応の時間」は、例えば１００クロック分の時間となる。十分な時間が経過した以降（時刻ｔ１以降）、周りの雑音の影響を受けて、リング発振器３で生成される乱数の質が向上する（安定した乱数の生成が開始される）。
【００１７】
ここで、通常は、図３の時刻ｔ０〜時刻ｔ１の間に生成された乱数は破棄される。しかし、スイッチを入れた時刻ｔ０から、安定した乱数の生成が開始される時刻ｔ１までの間に生成される乱数には、各リング発振器３固有の発生パターンが存在する。図４は、Ａ〜Ｈの計８個のリング発振器３における、時刻ｔ０〜時刻ｔ１の間に生成された乱数を示している。この図４は、Ａ〜Ｈの計８個のリング発振器３を発振動作させ、一旦、発振を停止し（全てのデータが０となる区間）、再度、発振動作させた例を示している。発振停止前後の乱数を見比べてわかるように、各リング発振器３は、時刻ｔ０〜時刻ｔ１の間において、固有の乱数発生パターンとなることがわかる。
【００１８】
このようなことから、実施の形態のＩＤ生成システムでは、通常は使われることのない、時刻ｔ０のスタート時から、安定した乱数の生成が開始される時刻ｔ１の間のデータをＩＤ生成に用いている（ＩＤ生成期間）。具体的には、このＩＤ生成期間中は、固有の乱数発生パターンとなるため、ＩＤ生成に用いる乱数を取得するタイミングとしては、所望のタイミングで発生された乱数を取得すればよい。この実施の形態のＩＤ生成システムの場合、一例として、各リング発振器３を起動させて最初に生成された乱数（起動直後に生成された乱数）を、各レジスタ１４で記憶してＩＤ生成に用いている。この起動直後の乱数は、図４の例の場合、Ａ〜Ｈの各リング発振器３で生成される「０１１０１１１１」のビット列となる。このような乱数の０，１の偏りと同時に、起動直後（スタート時）の０，１のビット列の両方をＩＤとすることにより、ＩＤ特定の強化に繋げることができる。なお、このようにリング発振器３を複数ではなく、一つのみ設けた場合、図４の例で説明するとＡのリング発振器３で発生された乱数のみでＩＤが生成される。このため、「１」または「０」の１ビットのＩＤが生成されることとなる。図２は、一つのリング発振器３の構成である。この場合、レジスタ１４も一つのみである。これに対して、図４の例の場合、図２に示すリング発振器３が８個設けられると共に、レジスタ１４も８つ設けられる。レジスタ１４の代わりに一つのメモリを設けた場合には、１つのメモリ内に８つの記憶領域を設けて対応できる。同様に、レジスタ１４の代わりに２つのメモリを設けた場合には、２つのメモリ内にそれぞれ４つずつ記憶領域を設けて対応できる。
【００１９】
次に、図２に示すリング発振器３は、ＩＤ生成と乱数生成とを同時に行う。すなわち、セレクタ１２には、図２の（ａ）の符号を付して示す固定値（発振停止信号）、（ｂ）の符号を付して示す動作周波数と同じ周波数のクロック、および（ｃ）の符合を付して示す動作周波数と同じクロック信号を所定分周したクロックが供給される。これら信号またはクロックは、セレクタ１２に供給される選択信号Ｓで選択される。
【００２０】
なお、図２においては、セレクタ１２には、発振停止信号、動作周波数のクロック、および分周クロックの３つが入力されるように図示されているが、発振停止信号と、上述の２つのクロックのうち、いずれか一方のクロックとの２つを入力してもよい。このように２つの入力とした場合において、クロック周波数が分周されている場合、リング発振器３の出力データを分周に応じて間引いてもよい。例えば、２分周の場合、リング発振器の出力データを二クロック毎に取れば、入力クロックが、回路の他の部分と同じクロックであった場合に等しいデータを得ることができる。また、クロックの立ち上がりを検出してもよいし、クロックの立下りを検出してもよい。どちらを検出するかは、設計上、他の回路部分との整合で決定すればよい。
【００２１】
図２に示すような乱数生成回路１は、通常、図３を用いて説明したように、安定した乱数が生成されるまでにある程度の時間が必要となる。図３では、エントロピー等の乱数度が線形に遷移する（リニアに遷移する）ように図示しているが、線形に遷移するとは限らない。実施の形態のＩＤ生成システムにおいては、上述のように通常は使われることのない、時刻ｔ０のスタート時から、十分なエントロピーを持った乱数の生成が始まる時刻ｔ１の間における所定のタイミングで生成された乱数（一例として、起動直後に生成された乱数）を用いてＩＤ生成している。
【００２２】
具体的には、実施の形態のＩＤ生成システムは、リング発振器３の後段に、例えばフリップフロップで形成されたレジスタ１４が設けられている。そして、各リング発振器３が起動直後に形成した乱数を、各レジスタ１４に記憶すると共に、ＩＤ生成回路２が、レジスタ１４に記憶された各乱数を用いてＩＤを生成する。生成するＩＤの長さは、後段の暗号回路等が要求するビット数に応じた長さとなる。例えば、設けられているレジスタ１４の数に相当するビット数が６４ビットであった場合を考える。ＩＤ生成に必要な鍵のデータ数が６４ビットの場合、まず、複数個設置したリング発振器３の中で、ＩＤ生成能力の高いものを選んで利用することができる。２５６ビットの鍵が必要な場合には、４つのリング発振器３の動作開始時の６４ビットを選んで結合することにより、２５６ビットの鍵を生成することができる。これより多くても少なくてもよい。
【００２３】
図５は、第１発振器〜第１６発振器の計１６個のリング発振器３を用いてＩＤを生成する場合の例である。各第１発振器〜第１６発振器の後段にそれぞれ設けられた第１レジスタ〜第１６レジスタに一時的に記憶された値は、ＩＤ生成回路２のＣＰＵ２０により、ＩＤ生成に用いられる。ＣＰＵ２０は、例えば、第１発振器〜第１６発振器で起動直後にそれぞれ生成された乱数のビット列を独立的に利用してＩＤを生成する。または、ＣＰＵ２０は、並列された第１発振器〜第１６発振器で生成された各乱数をそれぞれ結合し、長いビット列のＩＤを生成する。
【００２４】
以上の説明から明らかなように、第１の実施の形態のＩＤ生成システムは、一つまたは複数のリング発振器３が起動直後に生成する乱数を用いてＩＤを生成する。これにより、統計性と立ち上がりの二つを合わせて、より安全かつ強固なＩＤを生成可能とすることができる。
【００２５】
また、第１の実施の形態のＩＤ生成システムは、各リング発振器３が生成する乱数自体をＩＤとして用いることができる。このため、ＩＤ生成用の専用の回路、およびＩＤ生成用の大きなメモリ領域を不要とすることができ、簡単かつ安価に実現することができる。
【００２６】
（第２の実施の形態）
次に、第２の実施の形態のＩＤ生成システムの説明をする。上述の第１の実施の形態の説明では、図１に示す平滑化回路４は、設けなくてもよいとして説明をした。第２の実施の形態のＩＤ生成システムは、平滑化回路４を設けた例である。なお、上述の第１の実施の形態と、以下に説明する第２の実施の形態とでは、この点のみが異なる。このため、以下、両者の差異のみ説明し、重複説明は省略する。
【００２７】
図６は、第２の実施の形態のＩＤ生成システムのリング発振器３の回路図である。この図６に示すように、第２の実施の形態のＩＤ生成システムの各リング発振器３には、レジスタ１４から読み出されたリング発振器３の出力データを平滑化する平滑化回路４が設けられている。具体的には、平滑化回路４は、ＸＯＲゲート３１およびフリップフロップ３２を有している。フリップフロップ３２は、例えば１クロック分、リング発振器３の出力データを遅延して出力する。ＸＯＲゲート３１は、現在のリング発振器３の出力データと、フリップフロップ３２により、１クロック分遅延されたリング発振器３の出力データ（１クロック前の出力データ）とを比較し、この比較結果となる１または０のデータをフリップフロップ３２に供給する。
【００２８】
リング発振器３の発振環境によっては、動作開始時に生成される乱数にばらつきが発生する場合がある。このような場合、平滑化回路４を設け、リング発振器３の動作開始時に生成されるデータを平滑化する。これにより、リング発振器３の動作開始時に生成される乱数のばらつきを抑制することができる。
【００２９】
なお、平滑化回路４としては、引き続くビットを棄却する棄却法が適用された平滑化回路を用いても良い。棄却法を用いた平滑化回路の場合、００，１１は０と判断し、０１、１０のビット列を１と判断する。また、リング発振器３を複数設けた場合、および一つのみ設けた場合、いずれの場合も、上述の効果を得ることができる。
【００３０】
（第３の実施の形態）
次に、第３の実施の形態のＩＤ生成システムの説明をする。この第３の実施の形態のＩＤ生成システムは、経年劣化等によるリング発振器３の出力データの初期ばらつきおよび統計性の変化を補正可能としたものである。なお、上述の各実施の形態と、以下に説明する第３の実施の形態とでは、この点のみが異なる。このため、以下、両者の差異のみ説明し、重複説明は省略する。
【００３１】
この第３の実施の形態のＩＤ生成システムの場合、経年劣化等によるリング発振器３の出力データの初期ばらつき、および統計性の変化を示す劣化情報が、図１に示す訂正符号発生部７に記憶されている。出力補正／誤り訂正部６は、訂正符号発生部７から供給される劣化情報を用いたエラー訂正処理により、ＣＰＵ２０により生成されたＩＤを補正する。これにより、経年劣化等によるリング発振器３の出力データの初期ばらつき、および統計性の変化に対応して、常に同じＩＤを生成することができる。なお、リング発振器３を複数設けた場合、および一つのみ設けた場合、いずれの場合も、上述の効果を得ることができる。
【００３２】
（第４の実施の形態）
次に、第４の実施の形態のＩＤ生成システムの説明をする。この第４の実施の形態のＩＤ生成システムは、各リング発振器３の発振速度を遅延させる遅延回路を設けた例である。なお、上述の各実施の形態と、以下に説明する第４の実施の形態とでは、この点のみが異なる。このため、以下、両者の差異のみ説明し、重複説明は省略する。
【００３３】
乱数生成にリング発振器３を用いる場合、通常は、配置配線ツールなどを用いて回路を設計する。この際、リング発振器３の動作速度を上げるために、リング発振器３内のインバータ１１の数は一つとすることが多い。しかし、入力クロックに対して、リング発振周波数が速過ぎると、０と１の乱数性が完全にばらつくまでの時間が短くなり、上述のＩＤ生成に支障を来たすおそれがある。
【００３４】
このため、第４の実施の形態のＩＤ生成システムでは、リング発振器３にリング発振の周波数を、やや遅くする回路（ゲート）を設けた。新たに挿入する回路としては、例えばＡＮＤ回路、ＯＲ回路、ＸＯＲゲート、または、これらの組み合わせた回路が適切である。追加する回路は、多過ぎるとリング発振器３の発振周波数の低下を招くため、多過ぎないほうが望ましい。
【００３５】
図７〜図９は、リング発振器３に追加ゲート回路を入れることにより、発振周波数を遅くした例である。このうち、図７は一つのゲート回路を入れた例を示している。図７の（ａ）の符号を付した図は、インバータ１１の出力を、制御信号等の別系統の信号（×１）が供給されるＡＮＤゲート４１に供給し、ＡＮＤゲート４１の出力をＸＯＲゲート１３に供給する回路構成とした例である。この場合、ＡＮＤゲート４１で、リング発振器３の発振周波数を遅くすることができる。また、別系統の信号（×１）を供給することで、リング発振器３の初期値等を制御できる。例えば、別系統の信号（×１）に０を入力すれば、リング発振器３内のデータを初期化できる。
【００３６】
同様に、図７の（ｂ）の符号を付した図は、ＸＯＲゲート１３の出力とインバータ１１の入力との間に、制御信号等の別系統の信号（×１）が供給されるＡＮＤゲート４２を挿入した例である。また、図７の（ｃ）の符号を付した図は、ＸＯＲゲート１３の出力とインバータ１１の入力との間に、制御信号等の別系統の信号（×１）が供給されるＯＲゲート４３を挿入した例である。また、図７の（ｄ）の符号を付した図は、ＸＯＲゲート１３の出力とインバータ１１の入力との間に、制御信号等の別系統の信号（×１）が供給されるＸＯＲゲート４４を挿入した例である。いずれの場合も、遅延回路として追加した各ゲート４２〜４４により、リング発振器３の発振周波数を遅くすることができる。また、別系統の信号（×１）を供給することで、リング発振器３の初期値等を制御できる。
【００３７】
次に、図８の（ａ）の符号を付した図は、ＸＯＲゲート１３の出力とインバータ１１の入力との間に、連続する２つのＡＮＤゲート４５，４６を挿入した例である。各ＡＮＤゲート４５，４６には、それぞれ制御信号等の別系統の信号（×１または×２）が供給される。同様に、図８の（ｂ）の符号を付した図は、ＸＯＲゲート１３の出力とインバータ１１の入力との間に、制御信号等の別系統の信号（×１）が供給されるＮＡＮＤゲート４７、およびＸＯＲゲート１３の出力を反転してＮＡＮＤゲート４７に入力するインバータ４８を挿入した例である。また、図８の（ｃ）の符号を付した図は、ＸＯＲゲート１３の出力とインバータ１１の入力との間に、制御信号等の別系統の信号（×１）が供給されるＯＲゲート４９、およびＸＯＲゲート１３の出力が供給される２つの連続したインバータ５０，５１を挿入した例である。また、図８の（ｄ）の符号を付した図は、ＸＯＲゲート１３の出力とインバータ１１の入力との間に、制御信号等の別系統の信号（×１）が供給されるＸＯＲゲート５２、およびＸＯＲゲート１３の出力と、制御信号等の別系統の信号（×２）が供給されるＯＲゲート５３を挿入した例である。いずれの場合も、遅延回路として追加した各ゲート４５〜５３により、リング発振器３の発振周波数を遅くすることができる。また、別系統の信号（×１または×２）を供給することで、リング発振器３の初期値等を制御できる。
【００３８】
次に、図９は、リング発振器３を、一つのインバータ１１と、主に発振周波数を遅くするための、いくつかのゲートで形成した例である。具体的には、図９の（ａ）の符号を付した図に示すリング発振器３は、リング発振器３の出力およびトリガが入力されるＮＡＮＤゲート５５と、ＮＡＮＤゲート５５の出力を反転してインバータ１１に供給するインバータ５４を備える例である。同様に、図９の（ｂ）の符号を付した図に示すリング発振器３は、リング発振器３の出力を反転するインバータ５７と、インバータ５７の出力およびトリガに対応する出力をインバータ１１に供給するＮＡＮＤゲート５６とを備える例である。また、図９の（ｃ）の符号を付した図に示すリング発振器３は、リング発振器３の出力を反転するインバータ６０と、インバータ６０の出力を反転するインバータ５９と、インバータ５９の出力およびトリガに対応する出力をインバータ１１に供給するＯＲゲート５８とを備える例である。また、図９の（ｄ）の符号を付した図に示すリング発振器３は、リング発振器３の出力および第２トリガ（ｔｒｉｇｇｅｒ２）が入力されるＯＲゲート６２と、ＯＲゲート６２の出力および第１トリガ（ｔｒｉｇｇｅｒ１）に対応する出力をインバータ１１に供給するＸＯＲゲート６１とを備える例である。いずれの場合も、遅延回路として追加した各ゲート５４〜６２により、リング発振器３の発振周波数を遅くすることができる。また、トリガで発振タイミングの制御等を行うことができる。
【００３９】
図７〜図９を用いて説明したように、リング発振器３に、インバータ、ＡＮＤ回路、ＯＲ回路等の追加ゲート回路を入れることで、リング発振器３の発振周波数を少しでも落とした場合、上述のＩＤは、より強く発現する。このため、第４の実施の形態のＩＤ生成システムは、発振周波数を遅くして、ＩＤを生成し易くすることができる（ＩＤの発生を強くすることができる）。なお、リング発振器３を複数設けた場合、および一つのみ設けた場合、いずれの場合も、上述の効果を得ることができる。
【００４０】
（第５の実施の形態）
次に、第５の実施の形態のＩＤ生成システムの説明をする。この第５の実施の形態のＩＤ生成システムは、隣接または近接する２つ以上のリング発振器３の出力の差分からＩＤを生成することで、各リング発振器３が受ける外部物理環境の変化を軽減した例である。なお、上述の各実施の形態と、以下に説明する第５の実施の形態とでは、この点のみが異なる。このため、以下、両者の差異のみ説明し、重複説明は省略する。
【００４１】
隣接または近接した各リング発振器３は、略々同じ物理的な外部物理環境の変化の影響を受ける可能性が大きい。例えば、乱数生成回路１に温度変化が生じた場合、多数のリング発振器が同時に同じ温度変化による影響を受けるものと考えらえる。このようなことから、隣接または近接した複数のリング発振器３の出力の差分をとれば、リング発振器３の外部物理環境の変化による影響を軽減できる。なお、以下、リング発振器３を複数設けた場合を例として説明するが、リング発振器３を一つのみ設けた場合も後述する同じ効果を得ることができる。
【００４２】
図１０〜図１２は、隣接するリング発振器３間にＸＯＲゲートを挿入した例を示している。すなわち、図１０の例は、第１ＸＯＲゲート７１ａにより、第１発振器および第２発振器の各出力の差分を検出して第１レジスタに記憶し、第２ＸＯＲゲート７１ｂにより、第２発振器および第３発振器の各出力の差分を検出して第２レジスタに記憶し、以下同様に第１５ＸＯＲゲート７１ｏにより、第１５発振器および第１６発振器の各出力の差分を検出して第１５レジスタに記憶した例である。第１ＸＯＲゲート７１ａ〜第１５ＸＯＲゲート７１ｏは、差分検出部の一例である。ＩＤ生成回路２のＣＰＵ２０は、第１〜第１５レジスタに記憶された、隣接するリング発振器３間の差分でＩＤを生成する。これにより、リング発振器３の外部物理環境の変化による影響を軽減して、正確かつ安定したＩＤを生成可能とすることができる。
【００４３】
図１１の例は、１段目のＸＯＲゲートで、隣接する各リング発振器３の出力の差分を検出し、さらに、２段目のＸＯＲゲートで、１段目のＸＯＲゲートで検出した各差分の差分を検出した例である。この例の場合、図１１の第１ＸＯＲゲート７２ａ〜第１５ＸＯＲゲート７２ｏが１段目のＸＯＲゲートとなる。また、図１１の第１ＸＯＲゲート７３ａ〜第１４ＸＯＲゲート７３ｎが２段目のＸＯＲゲートとなる。第１ＸＯＲゲート７２ａ〜第１５ＸＯＲゲート７２ｏ、および第１ＸＯＲゲート７３ａ〜第１５ＸＯＲゲート７３ｎが、差分検出部の一例である。１段目となる第１ＸＯＲゲート７２ａ〜第１５ＸＯＲゲート７２ｏは、それぞれ隣接する第１〜第１６発振器の出力の差分をそれぞれ検出する。２段目となる第１ＸＯＲゲート７３ａ〜第１４ＸＯＲゲート７３ｎは、１段目の各ＸＯＲゲート７２ａ〜７２ｏで検出された隣接する差分の差分を検出し、それぞれ第１レジスタ〜第１４レジスタに記憶する。ＩＤ生成回路２のＣＰＵ２０は、第１〜第１４レジスタに記憶された、上述の差分の差分でＩＤを生成する。これにより、リング発振器３の外部物理環境の変化による影響をさらに軽減でき、さらに正確かつ安定したＩＤを生成可能とすることができる。
【００４４】
図１２の例は、第１〜第１６発振器からの出力を記憶する第１〜第１６レジスタのうち、隣接するレジスタの出力の差分を、第１ＸＯＲゲート７４ａ〜第１５ＸＯＲゲート７４ｏで検出した例である。第１ＸＯＲゲート７４ａ〜第１５ＸＯＲゲート７４ｏは、差分検出部の一例である。ＩＤ生成回路２のＣＰＵ２０は、隣接するレジスタの出力の差分でＩＤを生成する。これにより、リング発振器３の外部物理環境の変化による影響を軽減でき、正確かつ安定したＩＤを生成可能とすることができる。
【００４５】
なお、ＸＯＲゲートの代わりにバイナリカウンタを設け、隣接するリング発振器３のカウンタの数で二つのリング発振器３間のデータの差を検知してもよい。また、図１０〜図１２の例は、２つのリング発振器３のＸＯＲゲート動作を取得することを示しているが、３つ以上のリング発振器３の出力の差をＸＯＲゲートまたはカウンタ等で取得した結果をＩＤ生成に使用してもよい。
【００４６】
また、ＣＰＵ２０が上述のＸＯＲゲートの動作を行ってもよい。この場合、任意の二つのリング発振器３のデータの排他的論理輪をとることが可能である。例えば、まず２つずつのリング発振器３の動作開始時データのＸＯＲを取り、それを最初の６４ビットデータとする。このようなペアを４つ生成してそれぞれ結合することにより、２５６ビットの鍵を生成することができる。このペアのとり方により、生成可能な鍵は４！通り（４×３×２×１通り）となる。
【００４７】
また、取得したデータからＩＤを補正する場合、「ハミング符号」、「ＢＣＨ（Bose-Chaudhuri-Hocquenghem）」、「Reed-Solomon符号」、「畳み込み符号」等のエラー訂正方法を用いることができる。また、データを離散フーリエ変換したデータを用いることができる。これは物理的外因でデータが変化した場合に、０と１の構造の特徴を捉えられるためである。
【００４８】
また、１の出現回数等の乱数検定法で取得したデータと合わせて、ＩＤ認定に用いてもよい。ここで用いる乱数検定方法はＮＩＳＴ−ＳＰ８００−２２またはＡＩＳ３１等の検定方法を用いることができる。ＮＩＳＴは、「National  Institute  of  Standards  and  Technology」の略記である。ＳＰ８００は、ＮＩＳＴのコンピュータセキュリティ担当部門（CSD：Computer  Security  Division）が発行するコンピュータセキュリティ関連のガイドラインである。ＡＩＳ３１は、ハードウェア乱数発生器のためのＣＣ評価国内ガイドラインである。ＣＣは、情報セキュリティ国際評価基準（Common  Criteria）の略記である。
【００４９】
また温度変化対策として、温度センサー回路を挿入することにより、リング発振器３にかかる温度を検知し、ソフトウェア制御で温度変化で受けた影響を補正してもよい。
【００５０】
次に、図１３〜図１６に、実施の形態のＩＤ生成システムの使用例を示す。図１３に示す使用例は、実施の形態のＩＤ生成システムが適用されているＩＣカード８０をＡＴＭ（Automated  Teller  Machine）８１に近づけたとき、サーバ装置からＡＴＭを通して、ＩＣカード８０にユーザのＩＤを読む命令が送られる（チャレンジ）。この命令により、ユーザのＩＣカード８０の乱数生成回路１の０と１のパターン（ビット列）がＩＤとして読み込まれ、そのパターン情報がサーバ側に送られる（レスポンス）。
【００５１】
サーバ装置側には、読み出し回数および書き込み回数等を考慮した劣化変化から予測されるユーザのＩＤパターンが登録されている。サーバ装置は、この登録されているＩＤパターンと、レスポンスで受信したユーザのＩＣカード８０のＩＤパターンとが一致しているか否かを確認する。両者が一致していれば、ユーザ認証が成立する。
【００５２】
図１３は、ＩＣカード８０に実施の形態のＩＤ生成システムを適用した例であったが、実施の形態のＩＤ生成システムは、図１４に示すように、ＩＣカード８０の他に、携帯電話機、スマートフォン、タブレットＰＣ等のあらゆるモバイル端末８２に適用できる。この場合、モバイルリーダ８３を介して認証プロセスが実行される。
【００５３】
図１５および図１６は、機械対機械（Ｍ２Ｍ）の相互認証に、実施の形態のＩＤ生成システムを適用した例である。図１５の例は、サーバ装置８５，８６間の認証、サーバ装置８５またはサーバ装置８６と個人用パーソナルコンピュータ装置８７との間の認証例である。サーバ装置８６およびサーバ装置８８間の信号の送受信のように、無線または電波を用いて認証プロセスを実行してもよい。図１６は、サーバ装置９０とネットワーク対応の複合機９１、サーバ装置９０とネットワーク対応の自動販売機９２、ネットワーク対応の複合機９１とネットワーク対応の自動販売機９２、電力メータ、ガスメータ等のスマートメータ９３と検針機９４、および検針機９４とサーバ装置９５の相互認証に、それぞれ実施の形態のＩＤ生成システムを適用した例である。各機器９０〜９５間において、無線または電波を用いて認証プロセスを実行してもよい。
【００５４】
最後に、図１７に、実施の形態のＩＤ生成システムを適用したＩＣカード等の電子デバイスのブロック図を示す。この電子デバイスは、図１７に示すように、メモリ１０１、ＣＰＵ１０２、入力制御部１０３、ＰＵＦ（Physically  Unclonable  Function）回路１０４、セキュリティ・認証回路１０５、および出力制御部１０６を有する。メモリ１０１〜出力制御部１０６は、システムバス１０８を介して相互に接続されている。なお、ＰＵＦ回路１０４が、図１等を用いて説明したＩＤ生成システムとなっている。
【００５５】
図１７に示す電子デバイスにおいて、入力信号（チャレンジ）は、セキュリティ・認証回路１０５にレスポンス要求を行う。セキュリティ・認証回路１０５は、電子デバイス内のＰＵＦ回路１０４にアクセスし、ＰＵＦ回路１０４から上述のＩＤを取得する。出力制御部１０６は、取得されたＩＤをサーバ装置に送信する（レスポンス）。サーバ装置は、上述のように電子デバイスから取得したＩＤと、予測される欠陥ばらつきの変化とを照合することでＩＤを確認し、ユーザ認証を行う。
【００５６】
以上、各実施の形態を説明したが、各実施の形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な各実施の形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。例えば、上述の各実施の形態の説明では、乱数生成回路１には、リング発振器３が複数設けられていることとして説明した。これは、リング発振器３を一つのみ設けた場合でも、リング発振器３を複数設けた場合と同じ効果を得ることができる。各実施の形態およびその変形は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００５７】
１  乱数生成回路
２  ＩＤ生成回路
３  リング発振器
４  平滑化回路
５  乱数検定回路
６  出力補正／誤り訂正部
７  訂正符号発生部
８  ハッシュ関数部
１１  インバータ
１２  セレクタ
１３  ＸＯＲゲート
１４  レジスタ
２０  ＣＰＵ
３１  ＸＯＲゲート
３２  フリップフロップ
【図１】
0006030050.tif 000002
【図２】
0006030050.tif 000003
【図３】
0006030050.tif 000004
【図４】
0006030050.tif 000005
【図５】
0006030050.tif 000006
【図６】
0006030050.tif 000007
【図７】
0006030050.tif 000008
【図８】
0006030050.tif 000009
【図９】
0006030050.tif 000010
【図１０】
0006030050.tif 000011
【図１１】
0006030050.tif 000012
【図１２】
0006030050.tif 000013
【図１３】
0006030050.tif 000014
【図１４】
0006030050.tif 000015
【図１５】
0006030050.tif 000016
【図１６】
0006030050.tif 000017
【図１７】
0006030050.tif 000018