(57)【特許請求の範囲】
【請求項１】
リング発振器と、
前記リング発振器の出力がそれぞれ入力されるデータ入力端子とクロック端子とを備え、前記リング発振器の出力の値を決定するフリップフロップと、
前記リング発振器の起動初期に前記フリップフロップによって決定された前記リング発振器の出力の値に基づいて認証用のＩＤを生成する生成部と、
を備える
データ生成装置。
【請求項２】
第１および第２のリング発振器と、
前記第１のリング発振器の出力が入力されるデータ入力端子と、前記第２のリング発振器の出力が入力されるクロック端子とを備え、前記第１のリング発振器の出力の値を決定するフリップフロップと、
前記第１のリング発振器の起動初期に前記フリップフロップによって決定された前記第１のリング発振器の出力の値に基づいて認証用のＩＤを生成する生成部と、
を備える
データ生成装置。
【請求項３】
前記第２のリング発振器の設計周波数は、前記第１のリング発振器の設計周波数の３倍以下である請求項２に記載のデータ生成装置。
【請求項４】
前記リング発振器は、印加電圧の電圧値に応じて発振周波数が変化する発振器である請求項１または２に記載のデータ生成装置。
【請求項５】
前記リング発振器は、システムクロックの周波数よりも高い周波数で動作し、
前記生成部は、前記システムクロックの１サイクルの間に前記フリップフロップによって決定された前記リング発振器の起動初期の前記値、または、前記システムクロックの複数サイクルの間に前記フリップフロップによって決定された前記リング発振器の起動初期の前記値の平均値に基づいて、前記ＩＤを生成する
請求項１または２に記載のデータ生成装置。
【請求項６】
前記第１および第２のリング発振器よりも設計周波数が低い第３のリング発振器と、
前記第２のリング発振器の出力と前記第３のリング発振器の出力とを入力し、該２つの入力のうち一方を択一的に出力するセレクタと、
をさらに備え、
前記フリップフロップの前記クロック端子には、前記セレクタを介して前記第２または第３のリング発振器の出力が入力される
請求項２に記載のデータ生成装置。
【請求項７】
前記生成部は、入力された前記値に対する誤り訂正機能を含む
請求項１〜６のいずれか一項に記載のデータ生成装置。
【請求項８】
請求項１〜７のいずれか一項に記載のデータ生成装置と、
温度を検出する温度センサと、
ＩＤを記憶するメモリと、
制御部と、
を備え、
前記制御部は、前記温度センサで検出された温度が所定温度範囲内にない場合、前記メモリから前記ＩＤを取得する
認証システム。
【請求項９】
前記所定温度範囲は、常温の範囲である請求項８に記載の認証システム。
【請求項１０】
請求項４に記載のデータ生成装置と、
制御部と、
を備え、
前記制御部は、前記生成部で生成されるＩＤが一定となるように、前記リング発振器に印加する前記印加電圧の電圧値を調整する
認証システム。
【請求項１１】
温度を検出する温度センサをさらに備え、
前記制御部は、前記温度センサで検出された温度が所定温度範囲内にない場合、前記生成部で生成されるＩＤが一定となるように、前記リング発振器に印加する前記印加電圧の電圧値を調整する
請求項１０に記載の認証システム。
【請求項１２】
請求項１〜７のいずれか一項に記載のデータ生成装置と、
外部の温度に反応して変化する温度データを発生する温度計測装置と、
温度とＩＤとを対応付けて記憶するメモリと、
制御部と、
を備え、
前記制御部は、前記温度計測装置が発生した温度データから該当するＩＤを特定し、該特定したＩＤと前記データ生成装置から取得したＩＤとを用いて前記データ生成装置に対する認証を実行する
認証システム。
【請求項１３】
前記温度計測装置は、リング発振器を備える請求項１２に記載の認証システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、データ生成装置および認証システムに関する。
【背景技術】
【０００２】
近年、通信速度の向上およびクラウドコンピューテイングの進展により、近接場型の無線通信（Near Field Communication：ＮＦＣ）の利用が急拡大している。ＮＦＣは、キャッシュカードやクレジットカードなどのＩＣカードのほか、スマートフォンに搭載される電子マネーや電車やバスなどの乗車券等に使用されるスマートカードとして利用されることが一般的である。このようなＮＦＣでは、個人を特定するＩＤ特定機能におけるセキュリティの強化が課題である。
【０００３】
また近年では、個人的なデータを保存するためだけに用いられてきたメモリーカード等にもＩＤ特定機能が搭載されつつあるなど、携帯型デバイスにおけるＩＤ特定機能の高度化が技術的な課題となっている。
【０００４】
このような背景の中で、個々のデバイスばらつきを“チップ指紋”として利用する研究開発が進められている。これらは、Ｐｈｙｓｉｃａｌｌｙ  Ｕｎｃｌｏｎａｂｌｅ  Ｆｕｎｃｔｉｏｎ（ＰＵＦ）として知られている。
【０００５】
ＰＵＦの中で現在一番研究されているのが、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）−ＰＵＦである。ＳＲＡＭ−ＰＵＦは、ＳＲＡＭを構成する２つのインバータの製造時のばらつきを利用する技術である。なかでも最も有名なＲＡＭ−ＰＵＦ〔１−３〕は、上記のセキュリティＩＰやＩＣカードなどに適用されている。また、電子デバイスの初期ばらつきを利用する提案として、不揮発メモリへの応用も検討されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−０７３９５４号公報
【特許文献２】米国特許第８５８３７１０号明細書
【特許文献３】特開２０００−２３５６３６号公報
【特許文献４】特開２０１４−１０２７６８号公報
【特許文献５】特開２００６−１３９７５６号公報
【非特許文献】
【０００７】
【非特許文献１】J. Guajardo, S. S. Kumar, G. J. Schrijen, and P. Tuyls, “FPGA Intrinsic PUFs and Their Use for IP Protection,” CHES 2007 LNCS, vol. 4727/2007, pp. 63-80, Springer, Heidelberg, 2007.
【非特許文献２】L. R. Rabiner, “A Tutorial on Hidden Markov Models and Selected Applications in Speech Recognition,” proc. IEEE, Vol. 77, No. 2, pp. 257-286, 1989.
【発明の概要】
【発明が解決しようとする課題】
【０００８】
以下の実施形態では、ＰＵＦを利用したデータ生成装置および認証システムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
実施形態にかかるデータ生成装置は、前記リング発振器の出力がそれぞれ入力されるデータ入力端子とクロック端子とを備え、前記リング発振器の出力の値を決定するフリップフロップと、前記リング発振器の起動初期に前記フリップフロップによって決定された前記リング発振器の出力の値に基づいて認証用のＩＤを生成する生成部と、を備えてもよい。
【００１０】
また、実施形態にかかるデータ生成装置は、第１および第２のリング発振器と、前記第１のリング発振器の出力が入力されるデータ入力端子と、前記第２のリング発振器の出力が入力されるクロック端子とを備え、前記第１のリング発振器の出力の値を決定するフリップフロップと、前記第１のリング発振器の起動初期に前記フリップフロップによって決定された前記第１のリング発振器の出力の値に基づいて認証用のＩＤを生成する生成部と、を備えてもよい。
【００１１】
また、実施形態にかかるデータ生成装置は、第１および第２のリング発振器と、前記第１および第２のリング発振器の出力を電気的にまたは配線容量を介して結合させるゲート回路と、前記ゲート回路から出力された値に基づいて認証用のＩＤを生成する生成部と、を備えてもよい。
【００１２】
また、実施形態にかかるデータ生成装置は、複数のリング発振器と、前記複数のリング発振器の出力の値を決定するフリップフロップと、前記フリップフロップによって決定された前記値に基づいて認証用のＩＤを生成する生成部と、前記複数のリング発振器の出力が相関を持つよう、前記複数のリング発振器と前記フリップフロップとを結ぶ配線に接続され、前記複数のリング発振器の出力を結合する配線と、を備えてもよい。
【００１３】
また、実施形態にかかるデータ生成装置は、複数のリング発振器と、前記複数のリング発振器の出力の値を決定するラッチ回路と、前記ラッチ回路によって決定された前記値に基づいて認証用のＩＤを生成する生成部と、前記複数のリング発振器の出力が相関を持つよう、前記複数のリング発振器と前記フリップフロップとを結ぶ配線に接続され、前記複数のリング発振器の出力を結合する配線と、を備えてもよい。
【図面の簡単な説明】
【００１４】
【図１】図１は、実施形態１にかかるＰＵＦ生成回路の一例を示す図。
【図２】図２は、実施形態２にかかるＰＵＦ生成回路の一例を示す図。
【図３】図３は、実施形態２にかかるＰＵＦ生成回路の変形例を示す図。
【図４】図４は、実施形態２にかかるリング発振器の他の例を示す図。
【図５】図５は、実施形態２にかかるリング発振器のさらに他の例を示す図。
【図６】図６は、実施形態２またはその変形例によるＰＵＦ生成回路で実際に得られたＰＵＦデータの一例を示す図。
【図７】図７は、実施形態３にかかるＰＵＦ生成回路の一例を示す図。
【図８】図８は、ＶＣＯの例を示す図。
【図９】図９は、他のＶＣＯの例を示す図。
【図１０】図１０は、さらに他のＶＣＯの例を示す図。
【図１１】図１１は、実施形態４にかかるＰＵＦ生成回路の一例を示す図。
【図１２】図１２は、実施形態５にかかるＰＵＦ生成回路の一例を示す図。
【図１３】図１３は、実施形態５によるＰＵＦ生成回路で実際に得られたＰＵＦデータの一例を示す図。
【図１４】図１４は、乱数生成回路の比較例を示す図。
【図１５】図１５は、図１４に示す乱数生成回路におけるリング発振器から出力された発振波形の一例を示す図。
【図１６】図１６は、実施形態６にかかるＰＵＦ生成回路の一例を示す図。
【図１７】図１７は、上述において例示されたリング発振器を備えたＰＵＦ生成回路の構成例を示す図。
【図１８】図１８は、上述において例示されたリング発振器を備えたＰＵＦ生成回路の他の構成例を示す図。
【図１９】図１９は、上述において例示されたリング発振器を備えたＰＵＦ生成回路のさらに他の構成例を示す図。
【図２０】図２０は、実施形態７にかかるデータ生成装置の概略構成例を示すブロック図。
【図２１】図２１は、実施形態８にかかるＰＵＦ生成回路の一例を示す図。
【図２２】図２２は、実施形態９にかかるＰＵＦ生成回路の一例を示す図。
【図２３】図２３は、実施形態９にかかるＰＵＦ生成回路の他の例を示す図。
【図２４】図２４は、実施形態９にかかるＰＵＦ生成回路の他の例を示す図。
【図２５】図２５は、実施形態９にかかるＰＵＦ生成回路の他の例を示す図。
【図２６】図２６は、実施形態９にかかるＰＵＦ生成回路の他の例を示す図。
【図２７】図２７は、実施形態９にかかるＰＵＦ生成回路の他の例を示す図。
【図２８】図２８は、実施形態９にかかるＰＵＦ生成回路の他の例を示す図。
【図２９】図２９は、実施形態９にかかるＰＵＦ生成回路の他の例を示す図。
【図３０】図３０は、実施形態１０にかかるＰＵＦ生成回路の一例を示す図。
【図３１】図３１に、図３０に示すＰＵＦ生成回路の動作例を示す図。
【図３２】図３２は、実施形態１１にかかる認証システムを備えた電子デバイスの概略構成例を示す図。
【図３３】図３３は、実施形態１２にかかる電子デバイスの動作例を示す図。
【図３４】図３４は、実施形態１３にかかる電子デバイスの動作例を示す図。
【図３５】図３５は、リング発振器の発振周波数と温度との関係を示す図。
【図３６】図３６は、実施形態１４にかかるデータ生成装置の概略構成例を示すブロック図。
【図３７】図３７は、図３６に示したリング発振器を利用した温度計測装置より取得された実験データを示す図。
【図３８】図３８は、図３６に示したリング発振器を利用した温度計測装置より取得された他の実験データを示す図。
【図３９】図３９は、図３６に示すデバイスより得られた実際の照合結果の例を示す図。
【図４０】図４０は、リング発振器の他の例を示す図。
【図４１】図４１は、リング発振器の他の例を示す図。
【図４２】図４２は、リング発振器の他の例を示す図。
【図４３】図４３は、リング発振器の他の例を示す図。
【図４４】図４４は、リング発振器の他の例を示す図。
【図４５】図４５は、リング発振器の他の例を示す図。
【図４６】図４６は、リング発振器の他の例を示す図。
【図４７】図４７は、リング発振器の他の例を示す図。
【図４８】図４８は、リング発振器の他の例を示す図。
【図４９】図４９は、リング発振器の他の例を示す図。
【図５０】図５０は、リング発振器の他の例を示す図。
【図５１】図５１は、リング発振器の他の例を示す図。
【図５２】図５２は、リング発振器の他の例を示す図。
【発明を実施するための形態】
【００１５】
以下、添付図面を参照しながら、例示する実施形態にかかるデータ生成装置および認証システムを詳細に説明する。
【００１６】
ＰＵＦの一つとして、乱数源を利用したＰｈｙｓｉｃａｌ  Ｕｎｃｌｏｎａｂｌｅ  Ｆｕｎｃｔｉｏｎ（以下、乱数ＰＵＦという）が存在する。乱数ＰＵＦは、乱数生成回路などの乱数源をそのまま用いることができるという利点を持っている。また、乱数生成回路の出力データが時間的に連続したデータであるため、データ同士が相関を持つという特徴を持っている。
【００１７】
ＰＵＦは、ノイズを含むデータから安定して情報を抽出することが可能なＦｕｚｚｙ  Ｅｘｔｒａｃｔｏｒと組み合わされることにより、複製困難なデバイス固有鍵を生成することが可能である。
【００１８】
ただし、ＰＵＦは、物理デバイスである乱数源を用いているため、温度や外来ノイズなど、外部の物理的な環境に影響される可能性がある。そこで以下の実施形態では、外部の物理的な環境による影響を軽減することが可能なデータ生成装置および認証システムを提供する。言い換えれば、以下の実施形態では、外部環境に対するロバスト性に優れたＰＵＦ回路を備えるデータ生成装置および認証システムを実現することが可能となる。
【００１９】
一般的な環境下では、ＰＵＦを構成するトランジスタの特性が温度変化などの環境に影響されることを無視できない。回路内に複数個存在するＰＵＦ生成回路が同じ環境の影響を受ける場合、その外部からの影響を軽減するのには、ＰＵＦ生成回路間の特性の差をＩＤに関連づけることが有効となる。２つの回路の相関を強くする方法としては、回路間を配線で結合する方法が存在する。配線で結びつけられたＰＵＦ生成回路の特性差を利用することにより、外部環境の影響を減らすことができる。
【００２０】
通常、商用ベースの回路の保障動作範囲は、−２０℃から９０℃くらいまである。室温付近の回路動作は、上記の方法で対応できるが、−２０℃近辺、あるいは９０℃近辺では温度の振る舞いを回路間の差分で吸収できない場合がある。そのような場合、温度センサを用いることが有効である。サーバ側にメモリ上の余裕があれば、温度に応じたＰＵＦのＩＤを記録しておいてもよい。サーバ側のメモリに余裕がない場合の対処法としては、常温の際の値をＳＲＡＭに記録しておく方法考えられる。なお、常温とは、たとえば日本工業規格（ＪＩＳ）で規定された、２０℃±１５℃の温度範囲であってもよい。温度が常温よりも高い場合あるいは低い場合には、ＳＲＡＭからその値が参照される。ＰＵＦ生成回路を起動させたときの温度が高いまたは低い場合には、それらの値を不揮発メモリに入れておいてよい。
【００２１】
実施形態１
図１は、実施形態１にかかるＰＵＦ生成回路の一例を示す図である。図１に示すように、実施形態１にかかるＰＵＦ生成回路１００は、１つのリング発振器１０１と、フリップフロップＦＦ１〜ＦＦ６とを含んでいる。リング発振器１０１の出力は、フリップフロップＦＦ１のＤ端子およびフリップフロップＦＦ１〜ＦＦ６のクロック端子ＣＬＫ１〜ＣＬＫ６に接続されている。また、フリップフロップＦＦ１〜ＦＦ６からの出力には、複数段のフリップフロップＦＦ２１〜ＦＦ２６が接続されている。これらのうち、フリップフロップＦＦ１のＤ端子には、リング発振器１０１の出力が接続されている。また、フリップフロップＦＦ２１〜ＦＦ２６のクロック端子ＣＬＫ２１〜ＣＬＫ２６には、一般的なシステムクロックＣＬＫが入力されてよい。
【００２２】
一般的な乱数生成回路では、それを構成するフリップフロップのクロック端子にシステムクロックが入力される。通常、システムクロックの周波数は、システム全体を制御する必要性から、５０〜１００ＭＨｚ程度に設定される。これに対し、リング発振器の発振周波数は、回路を構成するインバータの遅延時間を数１０ピコ秒としても、数１０ＧＨｚの極めて高い周波数となる。これによれば、システムクロックが１００ＭＨｚであったとすると、システムの１回のクロック動作の間に１０００回以上のインバータ動作が行われる計算となる。
【００２３】
また、ＰＵＦが回路を構成するトランジスタの製造ばらつきとそれらの相対的な配置関係を利用していることを考慮すると、インバータの反転動作は少ない方が好ましいと考えられる。これは、インバータの反転動作回数が少ないほど、外来ノイズによる影響を低減できるためである。従って、リング発振器をベースにしたＰＵＦ生成回路の場合、フリップフロップに入力するクロックの周期は短い方が好ましい。最も早い周期は、リング発振器から出力された信号周期である。そのため、リング発振器の出力をそのままフリップフロップの値を決定する端子（クロック端子）に接続することが、最も望ましい構成であると考えられる。
【００２４】
そこで、図１に示すＰＵＦ生成回路１００では、リング発振器１０１の出力が、フリップフロップＦＦ１〜ＦＦ６の端子に接続されている。純数学的には、この構成では常に同じ固定値が得られることが期待される。しかしながら、リング発振器１０１の持っているメタステーブル状態の存在、および、フリップフロップへ入力するまでの配線を厳密に同じ長さおよび同じ太さにできないことから、リング発振回路１００の起動初期の段階では、リング発振器１００ごとの純粋なばらつき値を得ることができる。なお、起動初期とは、たとえばリング発振器をオンしてから所定時間（たとえばシステムクロックで１００サイクル程度）経過するまでの期間であってもよい。
【００２５】
ＰＵＦでのデータ取得は、システムクロックＣＬＫの最初の立上りまたは立下りに対する同期により実現される。ＰＵＦのデータビットは、典型的には１２８ビットであり、それより多い場合でも１０００ビット以下である。そのため、システムクロックＣＬＫが１００ＭＨｚであってリング発振器１０１の周波数が２０ＧＨｚである場合、２００回のデータ（以下、ＰＵＦデータという）を取得することができる。２００回のデータ取得のうち、一番初めのデータ取得で取得されたＰＵＦデータをＩＤ生成に用いてもよいし、リング発振器１０１を複数回（たとえば２，３回）発振させることで得られたＰＵＦデータの平均値をＩＤ生成に用いてもよい。
【００２６】
他の例としては、システムクロックＣＬＫが１００ＭＨｚであってリング発振器１０１の周波数が１ＧＨｚの場合、取得できるＰＵＦデータの数は１０つである。その場合、一番初めのデータ取得で取得されたＰＵＦデータを用いてもよいし、１０回分のＰＵＦデータの平均値を用いてもよいし、各ビットで０と１の多数決をとって多い方をとってもよい。ただし、必要とするＰＵＦデータのビット長は、サーバなどの全体のシステムに依存する。
【００２７】
実施形態２
図２は、実施形態２にかかるＰＵＦ生成回路の一例を示す図である。なお、図２において、上述した実施形態と同様の構成については、同一の符号を付し、その重複する説明を省略する。
【００２８】
図２に示すように、実施形態２にかかるＰＵＦ生成回路１１０は、図１に示すＰＵＦ生成回路１００と同様の構成において、リング発振器１０１がリング発振器１１１に置き換えられている。リング発振器１１１は、ＮＡＮＤ回路１１２と、直接接続された２つのインバータ回路１１３および１１４とを含む。
【００２９】
ＮＡＮＤ回路１１２は、外部から入力されたトリガ信号Ｔｒｉｇをデータ取得に利用するための回路である。２つのインバータ回路１１３および１１４は、省略されてもよい。その場合、ＮＡＮＤ回路１１２の入力には、インバータ１１４の出力に代わり、クロック信号が入力されてもよい。
【００３０】
ただし、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）などを構成する場合など、ＲＴＬ（Ｒｅｓｉｓｔｏｒ−ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）としてインバータ回路を組み込んだ方が好ましい場合が存在する。
【００３１】
図３は、実施形態２にかかるリング発振回路１０１の変形例を示す。
【００３２】
リング発振器１２１は、ＮＡＮＤ回路１１２と、排他的論理和（ＸＯＲ）回路１２３と、インバータ回路１２４とを含む。ＮＡＮＤ回路１１２の一方の入力には、図２と同様に、外部からのトリガ信号が入力される。ＮＡＮＤ回路１１２の他方の入力には、システムクロックＣＬＫ１が入力される。
【００３３】
また、図４および図５に、実施形態２にかかるリング発振器の代替となり得る一般的なリング発振器の例を示す。図４に示すリング発振器９００は、直列接続された奇数個のインバータ回路ＦＦ９１〜ＦＦ９５を含む。リング発振器９００が含み得るインバータ回路の最少個数は、１つである。図５に示すリング発振器９１０は、直列配置された偶数個の０差動リング発振器９１１〜９１５を含む。ただし、最終段に位置する差動リング発振器９１５の２つの入力端子は、他の差動リング発振器９１１〜９１４のそれらとは逆の接続関係となっている。
【００３４】
図６に、実施形態２またはその変形例によるＰＵＦ生成回路で実際に得られたＰＵＦデータの一例を示す。図６には、１６つのＰＵＦ生成回路１１０（１２０）を用いることで得られた６４ビットのＰＵＦデータが示されている。図６に示すように、１６つのＰＵＦ生成回路１１０それぞれから出力されるＰＵＦデータは、ＰＵＦ生成回路１１０ごとに純粋にばらついている。
【００３５】
実施形態３
図７は、実施形態３にかかるＰＵＦ生成回路の一例を示す図である。図７に示すように、実施形態３にかかるＰＵＦ生成回路１３０は、図１に示すＰＵＦ生成回路１００と同様の構成において、リング発振器１０１の代わりに、フィードバック回路を用いたＶＣＯ（Ｖｏｌｔａｇｅ−Ｃｏｎｔｒｏｌｌｅｄ  Ｏｓｃｉｌｌａｔｏｒ）１３１を利用している。ＶＣＯ１３１には、外部からの制御電圧Ｖｉｎと自身の出力電圧とを合成した電圧が印加される。
【００３６】
このように、フィードバック回路を用いたＶＣＯ１３１を図１のリング発振器１０１として利用することで、外部環境（たとえば温度）が変化した場合でも、その変化に応じて周波数を変化させることが可能となる。それにより、ＰＵＦ生成回路１３０は、外部環境が変化した場合でも同じＩＤを出力することが可能である。
【００３７】
なお、図８〜図１０に、一般的なＶＣＯの例を示す。図８〜図１０に示す例では、リング発振器をベースとしたＶＣＯを示すが、これは面積ができるだけ小さいＩＤ生成器が望ましいからである。面積制限のないＩＤ生成回路においては、リング発振器の代わりに、インダクタンスを有効利用したＬＣ発振器等が用いられてもよい。
【００３８】
実施形態４
図１１は、実施形態４にかかるＰＵＦ生成回路の一例を示す図である。図１１に示すように、実施形態４にかかるＰＵＦかいろ１４０は、２つのリング共振器１４１および１４２を含む。２つのリング共振器１４１および１４２はともに、たとえばシステムクロックＣＬＫと比較して高い周波数の信号を出力する。
【００３９】
２つのリング共振器１４１および１４２のうち一方の第２リング共振器１４２の出力は、フリップフロップＦＦ１〜ＦＦ６に入力される値を決定するクロック端子ＣＬＫ１〜ＣＬＫ６に入力される。これにより、第１リング発振器１４１の反転動作が一回程度の短い期間で、第１リング発振１４１器の初期固有値を取得することが可能となる。
【００４０】
第２リング発振器１４２は、第１リング発振器１４１と設計上同じ周波数のリング発振器であってもよいし、やや低い周波数のリング発振器であってもよい。ここで、やや低い周波数とは、たとえば第１リング発振器１４１に対して２つのインバータから構成されるバッファを追加した程度の周波数であってよい。このようにバッファを追加することで、第２リング発振器１４２の発振周波数がやや遅くなるため、第１リング発振器１４１から出力されたより多くの値を取得することが可能となる。
【００４１】
ただし、追加するバッファの数を増やすほど、温度などの外部環境の影響を受け易くなる。そのため、追加するバッファの数は少ない方が好ましい。また、２つのリング発振器１４１および１４２に、図７と同様のＶＣＯ１３１を用いた場合、温度などの外部環境の変化に対してより強いなＰＵＦ生成回路を構成することができる。
【００４２】
実施形態５
図１２は、実施形態５にかかるＰＵＦ生成回路の一例を示す図である。図１２に示すように、実施形態５にかかるＰＵＦ生成回路１５０は、図１１に示すＰＵＦ生成回路１４０における第１および第２リング発振器１４１および１４２として、典型的なリング発振器の構成を備える第１リング発振器１１１および第２リング発振器１５１を備える。第１リング発振器１１１は、図２に示すリング発振器１１１と同様の構成を備えてよい。第２リング発振器１５１は、第１リング発振器１１１と同様の構成に対して、たとえば２つのインバータ１５２および１５３が追加された構成を備えている。なお、第２リング発振器１５１において実際に動作するインバータの数を選択できるように、マルチプレクサを用いたセレクタ回路が第２リング発振器１５１内に設けられてもよい。
【００４３】
図１３に、実施形態５によるＰＵＦ生成回路で実際に得られたＰＵＦデータの一例を示す。図１３には、１６つのＰＵＦ生成回路１５０を用いることで得られた６４ビットのＰＵＦデータが示されている。図１３に示すように、１６つのＰＵＦ生成回路１１０それぞれから出力されるＰＵＦデータは、ＰＵＦ生成回路１１０ごとに純粋にばらついている。また、図１０に示した場合と比較して、より複雑なＰＵＦデータが得られていることがわかる。
【００４４】
ここで図１４に、比較例としての従来の乱数生成回路の一例を示す。また、図１５に、図１４に示す乱数生成回路における第１および第２リング発振器９２１および９２２から出力された発振波形の一例を示す。図１４および図１５に示す乱数生成回路では、データのランダム性を確保するために、速い周波数の第１リング発振器９２１がその設計において目的の発振周波数とされた周波数（以下、設計周波数という）が、サンプリングを行う第２リング発振器９２２の設計周波数と大きくずれている必要がある。この大きな周波数のずれは、第１リング発振器９２１から出力された値をランダムに抽出するために必要な構成である。
【００４５】
図１４および図１５に示す従来の乱数生成回路と、図１２に示す実施形態５にかかるＰＵＦ生成回路１５０との相違点の１つは、ＰＵＦ生成回路１５０の場合、エラー訂正回路などを通して同じデータパターンを得られる確率がたとえば７０％以上となる点である。これは、データ取得のためのフリップフロップＦＦ１〜ＦＦ６がシステムクロックより細かいデータをとれる構造を有しているからである。なお、ここで言うエラー訂正には、ＢＣＨ（Ｂｏｓｅ−Ｃｈａｕｄｈｕｒｉ−Ｈｏｃｑｕｅｎｇｈｅｍ）符号やＲｅｅｄ−Ｓｏｌｏｍｏｎ符号などの様々な符号を用いることが可能である。
【００４６】
実施形態６
図１６は、実施形態６にかかるＰＵＦ生成回路の一例を示す図である。図１６に示すＰＵＦ生成回路１６０は、上述した実施形態で例示された回路と乱数生成回路との両方を採用した構成を有している。具体的には、ＰＵＦ生成回路１６０は、比較的高い周波数の２つのリング共振器１６１および１６２と、比較的低い周波数のリング共振器１６３と、フリップフロップＦＦ１とを備えている。第１および第２リング共振器１６１および１６２は、それぞれ上述した実施形態において例示されたリング発振器であってよい。
【００４７】
上述において図１４および図１５を用いて説明したように、乱数生成回路では、２つのリング発振器の設計周波数の差が大きい場合にランダムな値を取得することができる。そこで実施形態６では、比較的高い周波数の第２リング発振器１６２の出力と、比較的低い周波数の第３リング発振器１６３の出力とを、セレクタ１６４を用いて結びつける。セレクタ１６４によって結ばれるリング発振器の数は、２つに限られず、３つ以上であってもよい。
【００４８】
ＰＵＦ生成回路１６０の動作では、たとえば第１〜第３リング発振器１６１〜１６３をオンした際に初期に得られたＰＵＦデータを用いてＩＤが生成される。その際、セレクタ１６４は、第２リング発振器１６２を選択するように設定されている。その後、第１〜第３リング発振器１６１〜１６３をオンしてからから所定時間（たとえばシステムクロックで１００サイクル程度）経過した後に、セレクタ１６４が第３リング発振器１６３に切り替えられる。
【００４９】
図１７〜図１９に、上述した実施形態において例示されたリング発振器を採用した場合のＰＵＦ生成回路１６０の構成例を示す。
【００５０】
図１７は、第１および第２リング発振器１６１および１６２として、実施形態１または５で例示された第１および第２リング発振器１１１および１５１を採用した場合を示す。第３リング発振器１６３は、第１リング発振器１１１に対し、第２リング発振器１５１よりもさらに多くのインバータ回路１６５〜１６ｎが追加されている。
【００５１】
図１８は、第２リング発振器１６２として、実施形態３において例示されたフィードバック回路を用いたＶＣＯ１３１を採用した場合を示す。第１および第３リング発振器１６１および１６３は、図１８に示す第１および第３リング発振器１６１および１６３と同様であってよい。
【００５２】
図１９は、第１〜第３リング発振器１６１〜１６３それぞれに対して、実施形態３において例示されたフィードバック回路を用いたＶＣＯ１３１を採用した場合を示す。ただし、各リング発振器１６１〜１６３に入力される制御電圧Ｖｉｎは、それぞれの発振周波数に応じて適宜設定される。
【００５３】
実施形態７
実施形態７では、乱数生成回路とＰＵＦ生成回路とを組み合わせて構成されたデータ生成装置について説明する。
【００５４】
図２０は、実施形態７にかかるデータ生成装置の概略構成例を示すブロック図である。図２０に示すように、データ生成装置１は、乱数生成回路３００と、ＰＵＦ生成回路２００とを含む。この構成において、上述した実施形態にかかるＰＵＦ生成回路は、乱数・ＰＵＦ生成回路１７０に相当する。この乱数・ＰＵＦ生成回路１７０は、たとえば乱数生成回路３００に配置されてもよい。また、乱数生成回路３００は、補正回路１７１と、検定回路１７２とを含んでもよい。一方、ＰＵＦ生成回路２００は、隠れマルコフモデル（Ｈｉｄｅｎ  Ｍａｒｋｏｖ  Ｍｏｄｅｌ：ＨＭＭ）を用いたＨＨＭ認証部１７３と、訂正符号供給部１７４と、ハッシュ生成回路１７５とを含んでもよい。
【００５５】
補正回路１７１には、乱数・ＰＵＦ生成回路１７０の出力（ＯＵＴＰＵＴ）が入力される。補正回路１７１は、いくつかのリング発振器のデータをビットシフトで混ぜ合わせたり、また、同じリング発振器内のデータをフリップフロップなどを用いて平準化したりする回路であってよい。
【００５６】
検定回路１７２は、たとえば乱数の出現頻度をカイ２乗検定する度数検定等を行い、乱数を出力する。
【００５７】
ＨＭＭ認証部１７３は、ＩＤを生成する生成部の一例である。ＨＭＭ認証部１７３は、補正回路１７１から出力されたＰＵＦデータに対してＨＭＭの補正を行うと共に、訂正符号供給部１７４から供給された誤り訂正符号を付加して出力する出力補正・誤り訂正機能を有している。
【００５８】
ハッシュ生成回路１７５は、ＨＭＭ認証部１７３からの出力にハッシュ関数を付加することで暗号鍵を生成して出力する。
【００５９】
実施形態８
図２１は、実施形態８にかかるＰＵＦ生成回路の一例を示す図である。図２１に示すように、実施形態８にかかるＰＵＦ生成回路１８０は、２つの撹拌回路１８１および１８２の出力がフリップフロップを介さずに接続された構成を有する。２つの撹拌回路１８１および１８２の出力の接続には、たとえばＸＯＲ回路１８３が用いられている。このような構成とすることで、２つの撹拌回路１８１および１８２の出力が配線を介して電気的に結合する。その結果、２つの撹拌回路１８１および１８２が温度変化に対して同じように振る舞うため、温度変化などの外部環境の影響を軽減することが可能となる。
【００６０】
実施形態９
図２２は、実施形態９にかかるＰＵＦ生成回路の一例を示す図である。図２２に示すＰＵＦ生成回路１９０は、図２１に示すＰＵＦ生成回路１８０と同様の構成において、ＸＯＲ回路１８３の代わりに、ＡＮＤ回路１９１およびＯＲ回路１９２を用いて、２つの撹拌回路１８１および１８２の出力が接続されている。このような構成とすることで、実施形態８と同様に、２つの撹拌回路１８１および１８２の出力が配線を介して電気的に結合されるため、温度変化などの外部環境の影響を軽減することが可能となる。なお、ＸＯＲ回路１８３の代わりとしては、ＡＮＤ回路１９１およびＯＲ回路１９２の他、ＮＡＮＤ回路やＮＯＲ回路など、２入力回路であれば如何様にも変形することが可能である。
【００６１】
また、図２３〜図２９に、２つの撹拌回路１８１および１８２を電気的に結合した他の構成例を示す。図２３は、２つの撹拌回路１８１および１８２が回路素子５０１により電気的に結合されている。回路素子５０１には、たとえばＡＮＤ回路、ＯＲ回路、ＮＡＮＤ回路、ＸＯＲ回路などを用いることができる。
【００６２】
また、図２４〜図２６は、２つの撹拌回路１８１および１８２の間を、結合したインバータ（図２４参照）を介して、インバータ（図２５参照）を介して、または、直接（図２６参照）、結合した例を示す図である。さらに、図２７〜図２９に示すように、図２４〜図２６に示す構成では、２つの撹拌回路１８１および１８２を電気的に結合する配線上にトランジスタなどのスイッチが設けられてもよい。
【００６３】
さらにまた、２つの撹拌回路１８１および１８２の出力部分を近接配置したレイアウトとすることで、２つの撹拌回路１８１および１８２を容量的に結合することも可能である。
【００６４】
以上のようにして撹拌回路１８１および１８２間を電気的に結合することにより、温度変化に強いＰＵＦ生成回路を構成することができる。
【００６５】
実施形態１０
図３０は、実施形態１０にかかるＰＵＦ生成回路の一例を示す図である。図３０に示すＰＵＦ生成回路２１０は、２つの撹拌回路１８１および１８２の出力が直接的に接続され、且つ、２つの撹拌回路１８１および１８２の出力結果が相反するようにセンスアンプ回路１８３が挿入された構成を備える。図３１に、図３０に示すＰＵＦ生成回路の動作例を示す。図３１に示すように、ＰＵＦ生成回路２１０では、まず、電圧イコライザ２１２がオンすることで、２つの撹拌回路１８１および１８２それぞれの出力に接続された配線の電位が等しくされる（（０）ＰＲＥＣＨＡＲＧＥ）。つぎに、２つの撹拌回路１８１および１８２それぞれの配線上に設けられたワードラインスイッチＷＳ１およびＷＳ２をオンして、２つの攪拌装置１８１および１８２を動作させる。これにより、２つの攪拌装置１８１および１８２の出力が結合する（（１）ＡＣＣＥＳＳ）。つぎに、センスアンプ回路２１１をオンすることで、２つの撹拌回路１８１および１８２それぞれの出力を“０”または“１”に決定する（（２）ＳＥＮＳＥ）。これにより、より高い精度で、撹拌回路１８１および１８２の出力を得ることが可能となる。
【００６６】
実施形態１１
つぎに、実施形態１１にかかる認証システムを備えた電子デバイスの概略構成例を図３２に示す。図３２に示すように、電子デバイス４００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）４０１と、ＳＲＡＭ等のメモリ４０２と、入力部４０３と、出力部４０４と、セキュリティ・認証回路４０５と、ＰＵＦ回路４０６と、温度センサ４０７を含む。ＰＵＦ回路４０６は、他の実施形態において例示したＰＵＦ生成回路を含んだ回路のいずれであってもよい。認証開始のトリガとなる入力信号（チャレンジ）は、ＣＰＵ４０１からセキュリティ・認証回路４０５へ命令として出力される。入力信号（チャレンジ）を受けると、セキュリティ・認証回路４０５は、ＰＵＦ回路４０６にアクセスし、ＰＵＦ回路４０６からＩＤの情報を取得する。取得されたＩＤの情報は、出力部４０４を通してサーバ側に吸い上げられ（レスポンス）、サーバ側において予測される欠陥ばらつきの変化と照合することにより、ＩＤ認証が実行される。
【００６７】
実施形態１２
つぎに、実施形態１２にかかる電子デバイスの動作例を、図３３を用いて説明する。なお、実施形態１２にかかる電子デバイスは、図３２に示す電子デバイス４００と同様であってよい。
【００６８】
図３３に示すように、電子デバイス４００のＣＰＵ４０１は、起動時に温度センサ４０７から温度情報を取得し、この温度情報が常温を示しているか否かを判定する（ステップＳ１０１）。温度情報が常温を示している場合とは、ＰＵＦ回路４０６から安定したＰＵＦデータを得られる温度範囲内を温度情報が示している場合である。この温度範囲は、たとえば２５±１０℃程度の範囲であってもよい。温度情報が常温を示している場合（ステップＳ１０１；ＹＥＳ）、ＣＰＵ４０１は、認証開始のトリガとなる入力信号（チャレンジ）をセキュリティ・認証回路４０５へ命令として出力して、セキュリティ・認証回路４０５からＰＵＦデータを取得し（ステップＳ１０２）、取得したＰＵＦデータを用いてＩＤを生成する（ステップＳ１０３）。
【００６９】
一方、温度情報が常温を示していない場合（ステップＳ１０１；ＮＯ）、ＣＰＵ４０１は、メモリ４０２を参照することでＩＤを取得する（ステップＳ１０４）。なお、メモリ４０２には、予め常温時に生成されたＩＤが格納されている。また、ステップＳ１０３またはＳ１０４で取得されたＩＤは、サーバ側に吸い上げられ（レスポンス）、サーバ側において予測される欠陥ばらつきの変化と照合することにより、ＩＤ認証が実行される。これにより、外部環境である温度が変化した場合でも、安定してＩＤを出力することが可能となる。
【００７０】
実施形態１３
つぎに、実施形態１３にかかる電子デバイスの動作例を、図３４を用いて説明する。なお、実施形態１３にかかる電子デバイスは、図３２に示す電子デバイス４００と同様であってよい。ただし、実施形態１３において使用するＰＵＦ回路４０１のリング発振器は、上述した実施形態で例示されたＰＵＦ回路のうち、ＶＣＯを用いたリング発振器を備えるリング発振器である。また、図１２に示す動作例と同様のステップについて、同一の符号を付す。
【００７１】
図３４に示すように、ＣＰＵ４０１は、起動時に温度センサ４０７から温度情報を取得して、これが常温を示しているか否かを判定する（ステップＳ１０１）。温度情報が常温を示している場合（ステップＳ１０１；ＹＥＳ）、ＣＰＵ４０１は、認証開始のトリガとなる入力信号（チャレンジ）をセキュリティ・認証回路４０５へ命令として出力して、セキュリティ・認証回路４０５からＰＵＦデータを取得し（ステップＳ１０２）、取得したＰＵＦデータを用いてＩＤを生成する（ステップＳ１０３）。
【００７２】
一方、温度情報が常温を示していない場合（ステップＳ１０１；ＮＯ）、ＣＰＵ４０１は、常温の際に得られるＰＵＦデータに近い値が得られるように、リング発振器のＶＣＯに印加する電圧の電圧値を制御する（ステップＳ２０１）。その後、ＣＰＵ４０１は、ステップＳ１０２およびＳ１０３を実行することで、得られたＰＵＦデータを用いてＩＤを生成する。これにより、外部環境である温度が変化した場合でも、安定してＩＤを出力することが可能となる。なお、常温の際に得られるＰＵＦデータに近い値を得るための電圧値は、たとえば温度センサ４０７で得られた温度情報ごとに、メモリ４０２等に予め記憶されていてもよい。
【００７３】
実施形態１４
図３５は、リング発振器の発振周波数と温度との関係を示す図である。図３５に示すように、リング発振器の発振周波数は、一般的に、温度の増加にしたがって減少する。リング発振器の発振周波数が温度に依存して変化することは、リング発振器を使ったＰＵＦ生成回路が出力するＩＤが一般に温度に依存して変化することを意味する。上述の実施形態では、温度などの外部環境の変化に応じて周波数を変化させる場合を例示したが、実施形態１４では、温度変化に応じて変化したＩＤをサーバ側に登録しておき、認証の際にこれを利用する形態を例示する。
【００７４】
図３６は、実施形態１４にかかるデータ生成装置の概略構成例を示すブロック図である。図３６に示すように、デバイス５００は、チップの置かれた温度に応じて出力が変化する温度計測装置５１０と、２つのリング発振器５２１および５２２からなるデータ生成装置５２０とが併設された構成を備える。チップの置かれた温度を測定する温度計測装置５１０には、上記で述べたダイオードなどを用いた温度センサの他に、図３６に示すような、リング発振器５１１を利用することも可能である。この場合、まず、サーバ側からデバイス５００に対し、温度計測装置５１０の温度に対応した出力（温度データ）と、データ生成装置５２０で発生したＩＤとが求められる。リング発振器５１１を利用したデータ生成装置５２０は、温度に対してある程度ロバストである。そこでサーバ側には、温度に対応したＩＤが、例えば５度から１０度程度刻みで予め登録されている。デバイス５００から温度データとＩＤとを受信したサーバは、予め登録しておいた該当温度のＩＤと受信したＩＤとのハミング距離を求め、この距離が小さい場合には、チップを正規のものと認証する。以上のような構成によれば、デバイス５００側にフィードバック回路を設ける必要なく、簡素な構成で温度変化に対応したＩＤ認証が可能となる。なお、図３６において、リング発振器５２１および５２２の間に、図２３〜図２９に例示したような結合回路が接続されてもよい。その場合、より温度変化に強いＩＤ生成回路を構成することができる。
【００７５】
図３７および図３８は、図３６に示したリング発振器５１１を利用した温度計測装置５１０の出力である１２ビットカウンタ５１２の出力値を温度データ（温度の関数）として取得した実験データを示す図である。なお、図３７と図３８とは、それぞれ異なったデバイスに温度計測装置５１０を搭載した場合に得られた結果を示している。図３７および図３８に示すように、温度計測装置５１０の示す温度、すなわちリング発振器５１１の出力をカウントする１２ビットカウンタ５１２の出力値は、デバイスごとに異なってもよい。
【００７６】
つづいて、図３６に示すデバイス５００より得られた実際の照合結果の例を図３９に示す。図３９に示すように、デバイス５００から出力されるＩＤが５度から１０度の温度変化に対してほぼ同じ値を出力することから、各デバイスに搭載される温度計測装置５１０の値に対応して、その温度を挟む２つのＩＤが認証に用いられるＩＤとなる。
【００７７】
温度データとＩＤとを用いた照合では、例えば、取得された温度に対応して登録されたＩＤと実際にデバイス５００から取得されたＩＤとのハミング距離（違ったビット数）が１５％以内である場合、該当のデバイスが正規のものとして認証されてもよい。
【００７８】
実施形態１５
また、図４０〜図５２は、上述において例示したリング発振器以外の例を示している。図４０〜図５２に例示されるようなリング発振器用いた場合でも、上述した実施形態と同様の効果を得ることが可能である。なお、図５２に示す例は、不確定フリップフロップを用いた例であり、その出力ＯＵＴＰＵＴ１およびＯＵＴＰＵＴ２のいずれかを、リング発振器の出力として使うことが可能である。
【００７９】
上記実施形態およびその変形例は本発明を実施するための例にすぎず、本発明はこれらに限定されるものではなく、仕様等に応じて種々変形することは本発明の範囲内であり、更に本発明の範囲内において、他の様々な実施形態が可能であることは上記記載から自明である。例えば実施形態に対して適宜例示した変形例は、他の実施形態と組み合わせることも可能であることは言うまでもない。
【符号の説明】
【００８０】
１…データ生成装置、１００，１１０，１２０，１３０，１４０…ＰＵＦ生成回路、１０１，１１１、１２１，１４１，１４２，１５１，１６１，１６２，１６３…リング発振器、１１２…ＮＡＮＤ回路、１１３，１１４，１２４，１５２，１５３，１６１〜１６ｎ…インバータ回路、１２３，１８３…ＸＯＲ回路、１３１…ＶＣＯ、１７０…乱数・ＰＵＦ生成回路、１７１…補正回路、１７２…検定回路、１７３…ＨＭＭ認証部、１７４…訂正符号供給部、１７５…ハッシュ生成回路、２００…ＰＵＦ回路、３００…乱数生成回路、１８１，１８２…撹拌回路、１９１…ＡＮＤ回路、１９２…ＯＲ回路、２１１…センスアンプ、２１２…電圧イコライザ、４００…電子デバイス、４０１…ＣＰＵ、４０２…メモリ、４０３…入力部、４０４…出力部、４０５…セキュリティ・認証回路、４０６…ＰＵＦ回路、４０７…温度センサ、ＦＦ１…フリップフロップ、ＷＳ１，ＷＳ２…ワードラインスイッチ
【図１】
0006419614.tif 000002
【図２】
0006419614.tif 000003
【図３】
0006419614.tif 000004
【図４】
0006419614.tif 000005
【図５】
0006419614.tif 000006
【図６】
0006419614.tif 000007
【図７】
0006419614.tif 000008
【図８】
0006419614.tif 000009
【図９】
0006419614.tif 000010
【図１０】
0006419614.tif 000011
【図１１】
0006419614.tif 000012
【図１２】
0006419614.tif 000013
【図１３】
0006419614.tif 000014
【図１４】
0006419614.tif 000015
【図１５】
0006419614.tif 000016
【図１６】
0006419614.tif 000017
【図１７】
0006419614.tif 000018
【図１８】
0006419614.tif 000019
【図１９】
0006419614.tif 000020
【図２０】
0006419614.tif 000021
【図２１】
0006419614.tif 000022
【図２２】
0006419614.tif 000023
【図２３】
0006419614.tif 000024
【図２４】
0006419614.tif 000025
【図２５】
0006419614.tif 000026
【図２６】
0006419614.tif 000027
【図２７】
0006419614.tif 000028
【図２８】
0006419614.tif 000029
【図２９】
0006419614.tif 000030
【図３０】
0006419614.tif 000031
【図３１】
0006419614.tif 000032
【図３２】
0006419614.tif 000033
【図３３】
0006419614.tif 000034
【図３４】
0006419614.tif 000035
【図３５】
0006419614.tif 000036
【図３６】
0006419614.tif 000037
【図３７】
0006419614.tif 000038
【図３８】
0006419614.tif 000039
【図３９】
0006419614.tif 000040
【図４０】
0006419614.tif 000041
【図４１】
0006419614.tif 000042
【図４２】
0006419614.tif 000043
【図４３】
0006419614.tif 000044
【図４４】
0006419614.tif 000045
【図４５】
0006419614.tif 000046
【図４６】
0006419614.tif 000047
【図４７】
0006419614.tif 000048
【図４８】
0006419614.tif 000049
【図４９】
0006419614.tif 000050
【図５０】
0006419614.tif 000051
【図５１】
0006419614.tif 000052
【図５２】
0006419614.tif 000053