(57)【要約】【課題】ラッチＰＵＦを利用した認証機能を可能にする電子回路を提供する。【解決手段】電子回路１は、周波数が異なるクロック信号を生成可能なクロック生成器１０と、クロック生成器１０から入力されるクロック信号の周波数に応じて、それぞれの出力信号が変化する複数のＲＳラッチ回路１１〜１ｎと、クロック生成器１０から複数のＲＳラッチ回路１１〜１ｎのそれぞれに入力されるクロック信号の周波数を制御する制御回路３と、を有する。【選択図】図６
2016171452.tif 000002
【特許請求の範囲】
【請求項１】
周波数が異なるクロック信号を生成可能なクロック生成器と、
前記クロック生成器から入力されるクロック信号の周波数に応じて、それぞれの出力信号が変化する複数のＲＳラッチ回路と、
前記クロック生成器から前記複数のＲＳラッチ回路のそれぞれに入力されるクロック信号の周波数を制御する制御回路と、
を有する電子回路。
【請求項２】
前記制御回路は、入力される第１データに応じて、前記クロック生成器が生成するクロック信号の周波数を変化させ、
前記複数のＲＳラッチ回路のそれぞれは、前記第１データに応じた周波数の前記クロック信号が入力されたときの第２データを示す前記出力信号を出力する、請求項１に記載の電子回路。
【請求項３】
前記制御回路は、入力される第１データに応じて、前記クロック生成器が生成した周波数が異なるクロック信号の何れか一つを選択し、前記複数のＲＳラッチ回路の何れかに出力する選択回路を有し、
前記複数のＲＳラッチ回路のそれぞれは、前記第１データに応じて選択された前記クロック信号が入力されたときの第２データを示す前記出力信号を出力する、請求項１に記載の電子回路。
【請求項４】
周波数が異なるクロック信号を生成可能なクロック生成器と、前記クロック生成器から入力されるクロック信号の周波数に応じて、それぞれの出力信号が変化する複数のＲＳラッチ回路と、前記クロック生成器から前記複数のＲＳラッチ回路のそれぞれに入力されるクロック信号の周波数を制御する制御回路と、を有する電子機器に、前記複数のＲＳラッチ回路のそれぞれに入力される前記クロック信号の周波数を指示するチャレンジを出力するチャレンジ指示部と、
前記チャレンジと、前記電子機器からの該チャレンジに対応するレスポンスの期待値とを格納する認証テーブルと、
前記チャレンジが入力された前記電子機器からのレスポンスと、前記認証テーブルに格納された前記レスポンスの期待値とを比較するレスポンス比較部と、
前記レスポンス比較部が前記電子機器からのレスポンスと前記レスポンスの期待値とが一致したと判定したときに、前記電子機器は正規品であると判断したことを示す認証信号を出力する認証判定部と、
を有する認証装置。
【請求項５】
周波数が異なるクロック信号を生成可能なクロック生成器と、前記クロック生成器から入力されるクロック信号の周波数に応じて、それぞれの出力信号が変化する複数のＲＳラッチ回路と、前記クロック生成器から前記複数のＲＳラッチ回路のそれぞれに入力されるクロック信号の周波数を制御する制御回路と、を有する電子機器に、前記複数のＲＳラッチ回路のそれぞれに入力される前記クロック信号の周波数を指示するチャレンジを出力するチャレンジ指示部と、
前記チャレンジと、前記電子機器からの該チャレンジに対応するレスポンスの期待値とを格納する認証テーブルと、
前記チャレンジが入力された前記電子機器からのレスポンスと、前記認証テーブルに格納された前記レスポンスの期待値とを比較するレスポンス比較部と、
前記レスポンス比較部が前記電子機器からのレスポンスと前記レスポンスの期待値とが一致したと判定したときに、前記電子機器は正規品であると判断したことを示す認証信号を出力する認証判定部と、
を有する認証システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子回路、認証装置及び認証システムに関する。
【背景技術】
【０００２】
近年、プリンタカートリッジ、電池、ゲーム機のカートリッジ等の製品の偽造品（以下、クローン品とも称する）が販売されている。プリンタカートリッジのクローン品の一例は、サードパーティが製造、販売した詰め替えインクである。プリンタカートリッジのクローン品である詰め替えインクが販売されることにより、プリンタカートリッジの正規品の販売が影響を受ける可能性がある。また、電池のクローン品は、十分な品質が確保されていないおそれがあり、電池のクローン品が製造、販売されて需要者に使用されると不具合が発生するおそれがある。また、ゲーム機のカートリッジのクローン品は、ゲーム機のカートリッジのクローン品を使用して不正に入手したゲームソフトを起動させることが問題になっている。
【０００３】
正規品に認証機能を付与して、クローン品が使用されることを防止することが知られている。認証機能は、正規品であることを保証するための秘密情報（暗号における秘密鍵等）に基づいて、暗号処理を行うことにより実現される。認証機能に使用される秘密情報は、ＩＣチップ内部に配置される不揮発性メモリに格納されている。しかしながら、不揮発性メモリに格納された秘密情報は、攻撃者に攻撃されることにより読み取られるおそれがある。
【０００４】
秘密情報を読み取する攻撃の一例は、サイドチャネル攻撃等の非侵入攻撃と称される攻撃である。サイドチャネル攻撃は、暗号処理を実行するときに、秘密情報に相関性がある消費電力及び漏洩電磁波等のサイドチャネル情報がＩＣチップから漏洩することを利用し、漏洩したサイドチャネル情報を解析して秘密情報を特定するものである。秘密情報を読み取する攻撃の他の例は、プロービング測定等の侵入攻撃と称される攻撃であり、秘密情報を格納した不揮発性メモリを搭載するＩＣチップを加工して、不揮発性メモリを直接プロービングして、秘密情報を読み取るものである。
【０００５】
攻撃者による攻撃によって、秘密情報が読み取られると、攻撃者は、読み取った秘密情報と同一の情報を有するＩＣチップを搭載したクローン品を製造し、安価で販売するおそれがある。攻撃者によるクローン品の販売を防止するために、秘密情報が読み取られることを防止することが望まれる。
【０００６】
物理的クローン作製不能機能（Physically Unclonable Function、ＰＵＦ）を使用して、不揮発性メモリに秘密情報を格納せずに認証機能を実現することが知られている（例えば、特許文献１及び２並びに非特許文献１〜３を参照）。ＰＵＦを使用することにより、秘密情報と暗号関数とを使用して認証することなく、ＰＵＦ単体で認証機能が実現される。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１３−４６３３４号公報
【特許文献２】国際公開第２００８／０５６６１２号
【特許文献３】特開２０１２−２２０６４９号公報
【非特許文献】
【０００８】
【非特許文献１】「A technique to build a secret key in integrated circuits with identification and authentication applications」Jae W. Lee他、IEEE VLSI Circuits Symposium、２００４年６月
【非特許文献２】「A 1.6pJ/bit 96% Stable Chip-ID Generating Circuit using Process Variations」Y. Su他、 In IEEE International Solid-State Circuits Conference (ISSCC 2007),  pp. 406 - 407, and  pp. 611, 2007
【非特許文献３】「A Digital 1.6pJ/bit Chip Identification Circuit Using Process Variations」Y. Su他、Solid-State Circuits, IEEE Journal of, 43(1), pp. 69-77, 2008
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ＰＵＦとして、ＡｒｂｉｔｅｒＰＵＦを含む遅延型ＰＵＦと、ラッチＰＵＦを含むメモリ型ＰＵＦとが知られている。ＡｒｂｉｔｅｒＰＵＦは、ｎビットのチャレンジが入力されたときに、レスポンスを出力する。しかしながら、ラッチＰＵＦは、ｎビットの出力信号を出力することはできるものの、複数のチャレンジに応じてレスポンスを出力することは容易ではない。このため、ラッチＰＵＦを利用して、複数のチャレンジに対してレスポンスを生成し、出力することによって認証機能を実現することは容易ではない。
【００１０】
一実施形態では、ラッチＰＵＦを利用した認証機能を可能にする電子回路を提供することを目的とする。
【課題を解決するための手段】
【００１１】
１つの態様では、電子回路は、周波数が異なるクロック信号を生成可能なクロック生成器と、クロック生成器から入力されるクロック信号の周波数に応じて、それぞれの出力信号が変化する複数のＲＳラッチ回路とを有する。電子回路は、クロック生成器から複数のＲＳラッチ回路のそれぞれに入力されるクロック信号の周波数を制御する制御回路を更に有する。
【発明の効果】
【００１２】
一実施形態では、ラッチＰＵＦを利用した認証機能を可能にする電子回路を提供することができる。
【図面の簡単な説明】
【００１３】
【図１】従来のＡｒｂｉｔｅｒＰＵＦの回路ブロック図である。
【図２】図１に示すＡｒｂｉｔｅｒＰＵＦを利用した認証システムを示す図であり、（ａ）はチャレンジ及びレスポンスの登録を示す図であり、（ｂ）は（ａ）で登録されたチャレンジ及びレスポンスによる認証を示す図である。
【図３】（ａ）はＲＳラッチ回路の回路ブロック図であり、（ｂ）は（ａ）に示すＲＳラッチ回路の真理値表である。
【図４】従来のラッチＰＵＦの回路ブロック図である。
【図５】実施形態に係る電子機器の回路ブロック図である。
【図６】図５に示すラッチＰＵＦの内部回路ブロック図である。
【図７】図５に示す電子機器を利用した認証システムを示す図であり、（ａ）はチャレンジ及びレスポンスの登録を示す図であり、（ｂ）は（ａ）で登録されたチャレンジ及びレスポンスによる認証を示す図である。
【図８】図７に示す認証システムによる認証処理のフローチャートである。
【図９】第２実施形態に係るラッチＰＵＦの回路ブロック図である。
【図１０】図９に示すラッチＰＵＦを搭載した電子機器を利用した認証システムを示す図であり、（ａ）はチャレンジ及びレスポンスの登録を示す図であり、（ｂ）は（ａ）で登録されたチャレンジ及びレスポンスによる認証を示す図である。
【図１１】図１０に示す認証システムによる認証処理のフローチャートである。
【図１２】図１に示すＡｒｂｉｔｅｒＰＵＦ、図４に示すラッチＰＵＦ、図６に示すラッチＰＵＦ及び図９に示すラッチＰＵＦのそれぞれのチャレンジ―レスポンス対の数の一例を示す図である。
【発明を実施するための形態】
【００１４】
以下図面を参照して、本発明に係る電子回路、認証装置及び認証システムについて説明する。但し、本発明の技術的範囲はそれらの実施の形態に限定されない。
【００１５】
（実施形態に係る電子回路の概要）
実施形態に係る電子回路は、複数の周波数のクロック信号を生成するクロック生成器と、入力されるクロック信号の周波数に応じて出力が変化する複数のＲＳラッチとを有する。複数のＲＳラッチに入力されるクロック信号の周波数に関連する信号をチャレンジとし、入力されるクロック信号の周波数に応じて変化するＲＳラッチの出力信号をレスポンスとすることによりＰＵＦラッチによる認証機能のためのデータを生成する。
【００１６】
（実施形態に係るＰＵＦに関連するＰＵＦ及び認証機能）
実施形態に係る電子回路、認証装置及び認証システムについて説明する前に、実施形態に係るＰＵＦに関連するＰＵＦ及び認証機能についてより詳細に説明する。
【００１７】
ＰＵＦは、チャレンジが入力されたときに、第１データであるチャレンジに対する第２データであるレスポンスを生成し、生成したレスポンスを出力する機能を有する回路である。相違するＩＣチップに搭載されたＰＵＦは、同一のチャレンジが入力されたときに、互いに相違するレスポンスを出力する。ＰＵＦは、配線遅延及び素子特性等のＩＣチップ毎に相違する物理的特性に基づいてレスポンスを生成するので、レスポンスは、ＩＣチップに固有の値となるためである。
【００１８】
ＰＵＦは、利用する物理特性によって、遅延型ＰＵＦとメモリ型ＰＵＦとに分類される。遅延型ＰＵＦは、主にＩＣチップ内部の配線の遅延である配線遅延に基づいてレスポンスを決定する。一方、メモリ型ＰＵＦは、主にＩＣチップに搭載されるメモリ素子の素子特性に基づいてレスポンスを決定する。以下に詳細に説明するように、遅延型ＰＵＦは、複数のチャレンジと、複数のチャレンジのそれぞれに対応するレスポンスを含む複数のチャレンジ―レスポンス対を形成可能である。一方、メモリ型ＰＵＦは単一のチャレンジと、チャレンジに対応する単一のレスポンスがあるのみなので、複数のチャレンジ―レスポンス対を形成することが容易でない。
【００１９】
（ＡｒｂｉｔｅｒＰＵＦの構成及び機能）
遅延型ＰＵＦの１つであるＡｒｂｉｔｅｒＰＵＦの構成及び機能について以下に説明する。
図１は、ＡｒｂｉｔｅｒＰＵＦの回路ブロック図である。
【００２０】
ＡｒｂｉｔｅｒＰＵＦ７００は、選択部７０１と、アトリビュータ７０２とを有する。選択部７０１は、第１選択回路７１０〜第ｎ選択回路７ｎ０を有する。第１選択回路７１０は、第１１マルチプレクサ７１１と第１２マルチプレクサ７１２とを有する。第１１マルチプレクサ７１１及びレスポンス第１２マルチプレクサ７１２のそれぞれは、第１信号と第２信号とが入力され、第１チャレンジｃｈａ［０］に応じて互いに異なる信号を出力する。例えば、第１チャレンジｃｈａ［０］が「０」のとき、第１１マルチプレクサ７１１は第１信号を出力し、第１２マルチプレクサ７１２は第２信号を出力する。一方、第１チャレンジｃｈａ［０］が「１」のとき、第１１マルチプレクサ７１１は第２信号を出力し、第１２マルチプレクサ７１２は第１信号を出力する。
【００２１】
第２選択回路７２０は、第２１マルチプレクサ７２１とレスポンス第２２マルチプレクサ７２２とを有する。第２１マルチプレクサ７２１及び第２２マルチプレクサ７２２のそれぞれは、第１１マルチプレクサ７１１及び第１２マルチプレクサ７１２の出力信号が入力され、第２チャレンジｃｈａ［１］に応じて互いに異なる信号を出力する。例えば、第２チャレンジｃｈａ［１］が「０」のとき、第２１マルチプレクサ７２１は第１１マルチプレクサ７１１からの信号を出力し、第２２マルチプレクサ７２２は第１２マルチプレクサ７１２からの信号を出力する。一方、第１チャレンジｃｈａ［０］が「１」のとき、第２１マルチプレクサ７２１は第１２マルチプレクサ７１２からの信号を出力し、第２２マルチプレクサ７２２は第１１マルチプレクサ７１１からの信号を出力する。以降同様に、第３選択回路７３０から第ｎ選択回路７ｎ０までのそれぞれの選択回路は、前段の選択回路の出力信号が入力され、第ｎ−１チャレンジｃｈａ［ｎ−１］に応じて互いに異なる信号を出力する２つのマルチプレクサを有する。
【００２２】
アトリビュータ７０２は、Ｄフリップフロップであり、Ｄ端子に第ｎ１マルチプレクサ７ｎ１からの信号が入力され、ＣＫ端子に第ｎ２マルチプレクサ７ｎ２からの信号が入力される。ここでは、アトリビュータ７０２はＤフリップフロップであるが、他の構成によりアトリビュータ７０２の機能を実現してもよい。
【００２３】
ＡｒｂｉｔｅｒＰＵＦ７００では、第１信号及び第２信号として同時に立上り遷移する信号が入力されたときのアトリビュータ７０２の出力は、チャレンジｃｈａ［ｎ−１：０］及び搭載されるチップの遅延特性に応じてに相違する。選択部７０１を形成するそれぞれのマルチプレクサの遅延時間がチップ毎に相違しないとすると、入力された第１信号及び第２信号が選択部７０１から出力される遅延時間は搭載されるチップ毎に相違することはない。しかしながら、チップでは、それぞれの素子を形成するトランジスタの特性及びトランジスタを結線する配線の配線幅等が相違するため、入力された第１信号及び第２信号が選択部７０１から出力される遅延時間は、搭載されるチップ毎に相違する。ＡｒｂｉｔｅｒＰＵＦ７００は、選択部７０１における遅延特性がチップ毎に相違するために、アトリビュータ７０２の出力信号が、チャレンジ［ｎ−１：１］及び搭載されるチップに応じて相違することを利用して、ＰＵＦを実現する。
【００２４】
図２はＡｒｂｉｔｅｒＰＵＦ７００を利用した認証システムを示す図であり、図２（ａ）はチャレンジ及びレスポンスの登録を示す図であり、図２（ｂ）は図２（ａ）で登録されたチャレンジ及びレスポンスによる認証を示す図である。
【００２５】
認証システム８００は、第１認証チップ８０１と、第２認証チップ８０２と、認証装置である認証サーバ８０３とを有する。第１認証チップ８０１及び第２認証チップ８０２のそれぞれは、ＡｒｂｉｔｅｒＰＵＦを有する。第１認証チップ８０１は正規品であり、第２認証チップ８０２は正規品であるかクローン品であるかが不明なチップである。認証サーバ８０３は、処理部８３１と、一例では半導体メモリである不図示の記憶部に格納された認証テーブル８３２とを有する。
【００２６】
処理部８３１は、一又は複数個のプロセッサ及びその周辺回路を有する。処理部８３１は、認証サーバ８０３の全体的な動作を統括的に制御するものであり、例えば、ＣＰＵ（Central Processing Unit）である。処理部８３１は、認証サーバ８０３の各種処理が記憶部に記憶されているプログラムに基づいて、不図示の操作部の操作等に応じて適切な手順で実行されるように、種々の動作を制御する。処理部８３１は、記憶部に記憶されているプログラム（ドライバプログラム、オペレーティングシステムプログラム、アプリケーションプログラム等）に基づいて処理を実行する。処理部８３１は、チャレンジ指示部８３３と、レスポンス比較部８３４と、認証判定部８３５とを有する。
【００２７】
まず、認証システム８００では、第１認証チップ８０１を含む複数の正規品のそれぞれのチャレンジ及びレスポンスを認証サーバ８０３の認証テーブル８３２に登録する。第１認証チップ８０１を含む複数の正規品のそれぞれは、チャレンジｃｈａ［ｎ−１：０］が入力されたときに、搭載されるＡｒｂｉｔｅｒＰＵＦ７００に応じて固有のレスポンスｒｅｓを出力する。認証テーブル８３２は、Ｍ個のチャレンジｃｈａ［ｎ−１：０］に応じたレスポンスｒｅｓを格納する。このように、認証システム８００では、認証テーブル８３２は、第１認証チップ８０１を含む複数の正規品のそれぞれについて、チャレンジｃｈａ［ｎ−１：０］及びチャレンジｃｈａ［ｎ−１：０］に対応するレスポンスｒｅｓを格納する。認証テーブル８３２に格納されたレスポンスｒｅｓは、正規品にされたチャレンジに対するレスポンスの期待値である。
【００２８】
第２認証チップ８０２を認証するために、認証システム８００では、チャレンジ指示部８３３は、第２認証チップ８０２にＭ個のチャレンジｃｈａ［ｎ−１：０］を第２認証チップ８０２に順次出力する。次いで、レスポンス比較部８３４は、Ｍ個のチャレンジｃｈａ［ｎ−１：０］に応じて第２認証チップ８０２から出力されるレスポンスｒｅｓの組と、認証テーブル８３２に格納された複数のレスポンスｒｅｓの組とを比較する。そして、認証判定部８３５は、第２認証チップ８０２からのレスポンスｒｅｓの組と認証テーブル８３２に格納されたＭ個のレスポンスｒｅｓの組と比較を行い、Ｍ個のレスポンスｒｅｓの組の何れかとＲ個以上のビットが一致した場合、第２認証チップ８０２が正規品であると判断する。また、認証判定部８３５は、第２認証チップ８０２からのレスポンスｒｅｓの組が認証テーブル８３２に格納されたＭ個のレスポンスｒｅｓの組の何れかともＲ個以上のビットが一致しなかった場合、認証は失敗し、第２認証チップ８０２がクローン品であると判断する。
【００２９】
認証システム８００では、ＡｒｂｉｔｅｒＰＵＦ７００が、チャレンジに応じて固有のレスポンスを出力するので、秘密鍵及び暗号関数等を使用することなく、ＡｒｂｉｔｅｒＰＵＦ７００が単独で認証機能を実現することができる。
【００３０】
（ラッチＰＵＦの構成及び機能）
メモリ型ＰＵＦの１つであるラッチＰＵＦの構成及び機能について以下に説明する。
図３（ａ）はＲＳラッチ回路の回路ブロック図であり、図３（ｂ）は図３（ａ）に示すＲＳラッチ回路の真理値表である。
【００３１】
ＲＳラッチ回路９００は、第１ＮＡＮＤ素子９０１と、第２ＮＡＮＤ素子９０２とを有する。第１ＮＡＮＤ素子９０１の一方の入力端端子にはセット信号Ｓが入力され、第１ＮＡＮＤ素子９０１の他方の入力端端子には第２ＮＡＮＤ素子９０２から反転出力信号／Ｑが入力される。ここで／ＱはＱのバー、すなわち反転を意味する。第２ＮＡＮＤ素子９０２の一方の入力端端子にはリセット信号Ｒが入力され、第２ＮＡＮＤ素子９０２の他方の入力端端子には第１ＮＡＮＤ素子９０１から出力信号Ｑが入力される。
【００３２】
ＲＳラッチ回路９００は、セット信号Ｓ及びリセット信号Ｒとして共に「０」が入力されたとき、出力信号Ｑ及び反転出力信号／Ｑを維持する。ＲＳラッチ回路９００は、セット信号Ｓとして「０」が入力され且つリセット信号Ｒとして「１」が入力されたとき、出力信号Ｑとして「０」を出力し且つ反転出力信号／Ｑとして「１」を出力する。また、ＲＳラッチ回路９００は、セット信号Ｓとして「０」が入力され且つリセット信号Ｒとして「１」が入力されたとき、出力信号Ｑとして「０」を出力し且つ反転出力信号／Ｑとして「１」を出力する。
【００３３】
しかしながら、ＲＳラッチ回路９００は、セット信号Ｓ及びリセット信号Ｒとして共に「１」が入力されたとき、本来は反対の論理である出力信号Ｑと反転出力信号／Ｑとが衝突して、不安定な状態である「メタステーブル」になる。ＲＳラッチ回路９００がメタステーブルになった後に、出力信号Ｑ及び反転出力信号／Ｑは「０」又は「１」の何れかで安定状態になる。第１ＮＡＮＤ素子９０１の遅延時間と第２ＮＡＮＤ素子９０２の遅延時間が略同一である場合、出力信号Ｑが「０」になる確率と出力信号Ｑが「１」なる確率とは略等くなる。しかしながら、第１ＮＡＮＤ素子９０１の駆動能力と第２ＮＡＮＤ素子９０２の駆動能力及び端子間を接続する配線の配線幅等が相違するので、メタステーブルの後に出力信号Ｑ及び反転出力信号／Ｑの信号状態はＲＳラッチ回路９００毎に相違する。例えば、第１ＮＡＮＤ素子９０１の駆動能力が第２ＮＡＮＤ素子９０２の駆動能力が相違する場合、メタステーブルの後のＲＳラッチ回路９００の出力信号Ｑ及び反転出力信号／Ｑの信号状態は「０」又は「１」の何れか一方を継続的に出力する可能性が高い。ラッチＰＵＦは、ＲＳラッチ回路９００は、セット信号Ｓ及びリセット信号Ｒの双方に「１」が入力されたときに、ＲＳラッチ回路９００の回路出力信号Ｑ及び反転出力信号／Ｑの信号状態が、ＲＳラッチ回路毎に相違することを利用するものである。
【００３４】
図４は、ラッチＰＵＦの回路ブロック図である。
【００３５】
ラッチＰＵＦ９１０は、同一の構成を有するｎ個のＲＳラッチ回路９１１〜９１ｎを有する。ｎ個のＲＳラッチ回路９１１〜９１ｎのそれぞれは、第１ＮＡＮＤ素子９０１の一方の入力端子と第２ＮＡＮＤ素子９０２の一方の入力端子が短絡されること、及び第２ＮＡＮＤ素子９０２の出力信号が外部に出力されないことがＲＳラッチ回路９００と相違する。ｎ個のＲＳラッチ回路９１１〜９１ｎのそれぞれは、入力信号として「０」が入力されたときに、出力信号を維持し、入力信号として「１」が入力されたときに、「０」又は「１」の何れかを出力する。すなわち、ラッチＰＵＦ９１０は、入力信号として「１」が入力されたときに、レスポンスｒｅｓ［ｎ−１：０］を出力する。ラッチＰＵＦ９１０のレスポンスｒｅｓ［ｎ−１：０］は、ラッチＰＵＦ９１０が搭載されるチップ毎に相違するので、ラッチＰＵＦ９１０は、搭載されるチップの識別情報としてレスポンスｒｅｓ［ｎ−１：０］を出力することができる。
【００３６】
しかしながら、ラッチＰＵＦ９１０は、単一の入力信号「１」に対して単一のレスポンスｒｅｓ［ｎ−１：０］を出力するのみなので、複数のチャレンジに応じて複数のレスポンスｒｅｓ［ｎ−１：０］を出力することは容易ではない。そこで、一実施形態では、複数のチャレンジ及びチャレンジに対するレスポンスによるラッチＰＵＦを利用した認証機能を可能にする電子回路を提供することを目的とする。
【００３７】
（実施形態に係る電子機器の構成）
図５は、実施形態に係る電子機器の回路ブロック図である。
【００３８】
電子機器１は、ラッチＰＵＦ２と、演算処理装置３と、暗号演算器４と、ＲＯＭ（Read Only Memory）５と、ＲＡＭ（Random Access Memory）６と、通信部７とを有する。ラッチＰＵＦ２、演算処理装置３、暗号演算器４、ＲＯＭ５、ＲＡＭ６及び通信部７は、バス８を介して互いに接続されている。電子機器１は、ラッチＰＵＦ２を使用して複数のチャレンジに対する複数のレスポンスを生成することにより認証機能を実現する。また、電子機器１は、ラッチＰＵＦ２を使用して、暗号演算器４における暗号演算に使用される暗号鍵を生成してもよい。
【００３９】
図６は、ラッチＰＵＦ２の内部回路ブロック図である。
【００４０】
ラッチＰＵＦ２は、クロック生成器１０と、ｎ個のＲＳラッチ回路１１〜１ｎとを有する。クロック生成器１０は、演算処理装置３から入力されるクロック制御信号ＣＫｃｎｔに対応する周波数を有するクロック信号を生成する。ここでは、クロック生成器１０は、演算処理装置３からクロック制御信号ＣＫｃｎｔが入力されるが、演算処理装置３以外の装置からクロック制御信号ＣＫｃｎｔが入力されてもよく、クロック生成器１０が所定のタイミングでクロック信号を生成してもよい。クロック生成器１０は、入力されるクロック制御信号ＣＫｃｎｔに応じて、周波数が異なるクロック信号を生成可能である。例えば、クロック生成器１０は、１ＭＨｚ〜２００ＭＨｚまで０．１ＭＨｚ毎に２０００種類の異なる周波数を有するクロック信号を生成可能である。
【００４１】
ｎ個のＲＳラッチ回路１１〜１ｎのそれぞれは、第１ＮＡＮＤ素子２１と、第２ＮＡＮＤ素子２２とを有する。ｎ個のＲＳラッチ回路１１〜１ｎのそれぞれは、図４を参照して説明されたｎ個のＲＳラッチ回路９１１〜９１ｎのそれぞれと同様な構成を有する。すなわち、ｎ個のＲＳラッチ回路１１〜１ｎのそれぞれは、第１ＮＡＮＤ素子２１及び第２ＮＡＮＤ素子２２の一方の入力端子に入力信号が入力される。また、第１ＮＡＮＤ素子２１の他方の入力端子には第２ＮＡＮＤ素子２２の出力信号が入力され、第２ＮＡＮＤ素子２２の他方の入力端子には第１ＮＡＮＤ素子２１の出力信号が入力される。ｎ個のＲＳラッチ回路１１〜１ｎのそれぞれは、第１ＮＡＮＤ素子２１の出力信号をレスポンスｒｅｓ［ｎ−１］として出力する。
【００４２】
ラッチＰＵＦ２は、ＲＳラッチ回路の入力端子に入力されるクロック信号の周波数を変化させることにより、ＲＳラッチ回路の出力信号が変化することがあるとの本発明者等が見出した知見に基づき、チャレンジに対するレスポンスを生成するものである。この知見によると、ｎ個のＲＳラッチ回路１１〜１ｎのそれぞれの出力信号は、クロック生成器１０から入力されるクロック信号の周波数を変化させたときに、変化することがあることが見出された。例えば、ｎ個のＲＳラッチ回路１１〜１ｎの何れかが第１周波数のクロック信号が入力されたときと、第１周波数と相違する第２周波数のクロック信号が入力されたときとで出力信号が相違するとする。この場合、クロック生成器１０が周波数が第１周波数であるクロック信号生成するときのレスポンスｒｅｓ［ｎ−１：０］は、クロック生成器１０が第２周波数を生成するときのレスポンスｒｅｓ［ｎ−１：０］と相違することになる。これから、クロック生成器１０が生成するクロック信号の周波数を示すクロック制御信号ＣＫｃｎｔをチャレンジとし、ＲＳラッチ回路１１〜１ｎの出力信号をレスポンスｒｅｓ［ｎ−１：０］とすることが可能になる。例えば、クロック生成器１０が周波数が異なる２０００種類のクロック信号を生成可能である場合、ラッチＰＵＦ２は、２０００種類のチャレンジに対して２０００種類のｎビットレスポンスを生成することができる。
【００４３】
演算処理装置３は、ＣＰＵ（Central Processing Unit）とも称され、電子機器１の各構成要素の動作を制御する。例えば、演算処理装置３は、クロック生成器１０が生成するクロック信号の周波数を示すクロック制御信号ＣＫｃｎｔが入力されたときに、クロック制御信号ＣＫｃｎｔが示す周波数のクロック信号を生成するようにクロック生成器１０を制御する。また、演算処理装置３は、クロック制御信号ＣＫｃｎｔが示す周波数のクロック信号に応じてｎ個のＲＳラッチ回路１１〜１ｎから出力されるレスポンスｒｅｓ［ｎ−１：０］を通信部７を介して出力する。
【００４４】
暗号演算器４は、共通鍵コプロセッサ４１と、公開鍵コプロセッサ４２とを有し、各種の情報の暗号化処理、及び暗号化されているデータの復号処理を実行する。共通鍵コプロセッサ４１は、ＤＥＳ及びＡＥＳ等の共通鍵暗号方式を使用して暗号化及び復号の処理を実行する。公開鍵コプロセッサ４２はＲＳＡ、ＥｌＧａｍａｌ方式、Ｒａｂｉｎ方式及び楕円曲線暗号等の公開鍵暗号方式を使用して暗号化及び復号の処理を実行する。ＲＯＭ５は、演算処理装置３が実行する制御プログラム、暗号演算器４が暗号化処理及び復号処理で使用する種々のパラメータが記憶されている不揮発性メモリである。ＲＡＭ６は、演算処理装置３及び暗号演算器４が種々の処理を実行するときに、作業用記憶領域として使用される揮発性メモリである。
【００４５】
通信部７は、サーバ等の他の電子機器から入力されたクロック制御信号ＣＫｃｎｔがを演算処理装置３に出力し、ラッチＰＵＦ２から入力されたレスポンスｒｅｓ［ｎ−１：０］をサーバ等の他の電子機器に出力する。また、通信部７は、他の電子機器との間で、各種のデータを示す暗号化された信号を送受信する。通信部７が暗号化された信号を受信すると、演算処理装置３は、暗号演算器４を使用して受信した信号を復号処理する。また、通信部７は、演算処理装置３が、暗号演算器４を使用して暗号化処理した信号を送信する。
【００４６】
図７は電子機器１を利用した認証システムを示す図であり、図７（ａ）はチャレンジ及びレスポンスの登録を示す図であり、図７（ｂ）は図７（ａ）で登録されたチャレンジ及びレスポンスによる認証を示す図である。
【００４７】
認証システム３０は、第１認証チップ３１と、第２認証チップ３２と、認証装置である認証サーバ３３とを有する。第１認証チップ３１及び第２認証チップ３２のそれぞれはラッチＰＵＦを有する。第１認証チップ３１は電子機器１と同様な機能及び構成を有する正規品であり、第２認証チップ３２は正規品であるかクローン品であるかが不明なチップである。認証サーバ３３は、処理部３３１と、認証テーブル３３２とを有する。
【００４８】
処理部３３１は、一又は複数個のプロセッサ及びその周辺回路を有する。処理部３３１は、認証サーバ３３の全体的な動作を統括的に制御するものであり、例えば、ＣＰＵ（Central Processing Unit）である。処理部３３１は、認証サーバ３３の各種処理が記憶部に記憶されているプログラムに基づいて、不図示の操作部の操作等に応じて適切な手順で実行されるように、種々の動作を制御する。処理部３３１は、記憶部に記憶されているプログラム（ドライバプログラム、オペレーティングシステムプログラム、アプリケーションプログラム等）に基づいて処理を実行する。処理部３３１は、チャレンジ指示部３３３と、レスポンス比較部３３４と、認証判定部３３５とを有する。
【００４９】
まず、認証システム３０では、第１認証チップ３１を含む複数の正規品のそれぞれのチャレンジ及びレスポンスを認証サーバ３３の認証テーブル３３２に登録する。第１認証チップ３１を含む複数の正規品のそれぞれは、クロック生成器１０が生成するクロック信号の周波数を示すクロック制御信号ＣＫｃｎｔが入力されたときに、固有のレスポンスｒｅｓ［ｎ−１：０］を出力する。一例では、認証テーブル３３２は、周波数が２０ＭＨｚ、５０ＭＨｚ及び２００ＭＨｚであるクロック信号をクロック生成器１０が生成することを示すクロック制御信号ＣＫｃｎｔをチャレンジとして格納する。また、認証テーブル３３２は、それぞれがクロック制御信号ＣＫｃｎｔに対応するＭ個のチャレンジに応じたレスポンスｒｅｓ［ｎ−１：０］を格納する。図面ではレスポンスｒｅｓは３つ記載されているが、レスポンスｒｅｓは多い方が好ましく、例えばＭは１２８個以上であることが好ましい。このように、認証システム３０では、認証テーブル３３２は、第１認証チップ３１を含む複数の正規品のそれぞれについて、チャレンジであるクロック制御信号ＣＫｃｎｔ及び対応するレスポンスｒｅｓ［ｎ−１：０］を格納する。認証テーブル３３２に格納されたレスポンスｒｅｓ［ｎ−１：０］は、正規品にされたチャレンジに対するレスポンスの期待値である。
【００５０】
図８は、認証システム３０による認証処理のフローチャートである。
【００５１】
まず、第２認証チップ３２を認証するために、チャレンジ指示部３３３は、チャレンジであるＭ個の周波数を示すクロック制御信号ＣＫｃｎｔを第２認証チップ３２に順次出力する（Ｓ１０１）。次いで、レスポンス比較部３３４は、Ｍ個のクロック制御信号ＣＫｃｎｔに応じて第２認証チップ３２から出力されるレスポンスｒｅｓ［ｎ−１：０］の組と、認証テーブル３３２のレスポンスｒｅｓ［ｎ−１：０］の組とを比較する（Ｓ１０２）。次いで、認証判定部３３５は、第２認証チップ３２からのレスポンスｒｅｓ［ｎ−１：０］の組が認証テーブル３３２のＭ個のレスポンスｒｅｓ［ｎ−１：０］の組の何れかとＲ個以上のビットが一致した場合、第２認証チップ３２が正規品であると判断する（Ｓ１０３）。例えば、第２認証チップ３２が、Ｍ個のクロック制御信号ＣＫｃｎｔに対して、第１認証チップ３１のレスポンスｒｅｓ［ｎ−１：０］とＲビット以上一致するレスポンスｒｅｓ［ｎ−１：０］の組を出力したとき、第２認証チップ３２は、第１認証チップ３１と同一なので正規品であると認証される。認証判定部３３５は、第２認証チップ３２が正規品であると判断すると、第２認証チップ３２が正規品であると判断したことを示す認証信号を出力する（Ｓ１０４）。認証判定部３３５は、第２認証チップ３２からのレスポンスｒｅｓ［ｎ−１：０］の組が認証テーブル３３２のＭ個のレスポンスｒｅｓ［ｎ−１：０］の組の何れかともＲ個以上のビットが一致しなかった場合、認証は失敗し、第２認証チップ３２はクローン品であると判断する（Ｓ１０３）。認証判定部３３５は、第２認証チップ３２がクローン品であると判断すると、第２認証チップ３２がクローン品であると判断したことを示す非認証信号を出力する（Ｓ１０５）。
【００５２】
（第２実施形態に係るラッチＰＵＦの構成）
電子機器１は、ラッチＰＵＦ２の代わりに第２実施形態に係るラッチＰＵＦを有してもよい。
図９は、第２実施形態に係るラッチＰＵＦの回路ブロック図である。
【００５３】
ラッチＰＵＦ５０は、第１クロック生成器５１１と、第２クロック生成器５１２と、ｎ個の選択ＲＳラッチ５２１〜５２ｎとを有する。第１クロック生成器５１１は周波数が第１周波数である第１クロック信号を生成し、第２クロック生成器５１２は周波数が第１周波数よりも低い第２周波数である第２クロック信号を生成する。ｎ個の選択ＲＳラッチ５２１〜５２ｎのそれぞれは、マルチプレクサ２３を有することがＲＳラッチ回路１１〜１ｎと相違する。マルチプレクサ２３のそれぞれは、チャレンジＣ［ｎ−１：０］の対応するビットに応じて、第１クロック信号又は第２クロック信号の何れか一方を第１ＮＡＮＤ素子２１及び第２ＮＡＮＤ素子２２の一方の入力端子に出力する。チャレンジＣ［ｎ−１：０］は、電子機器１の外部から通信部７及び演算処理装置５３を介してマルチプレクサ２３のそれぞれに入力される。マルチプレクサ２３は、チャレンジＣ［ｎ−１：０］の対応するビットが「０」のときに第１クロック信号を出力し、チャレンジＣ［ｎ−１：０］の対応するビットが「１」のときに第２クロック信号を出力する。
【００５４】
ラッチＰＵＦ５０は、ラッチＰＵＦ２と同様に、ＲＳラッチ回路の入力端子に入力されるクロック信号の周波数を変化させると、ＲＳラッチ回路の出力信号が変化することがあるとの知見に基づき、チャレンジに対するレスポンスを生成するものである。この知見から示されるように、ｎ個の選択ＲＳラッチ５２１〜５２ｎのそれぞれは、第１クロック生成器５１１から第１クロック信号が入力されときと、第２クロック生成器５１２から第２クロック信号が入力されたときとで、出力信号が変化することがある。これから、選択ＲＳラッチ５２１〜５２ｎのそれぞれが第１クロック信号又は第２クロック信号の何れかを選択するかを示す２n個のチャレンジＣ［ｎ−１：０］の何れかをチャレンジとすることができる。選択ＲＳラッチ５２１〜５２ｎのそれぞれは、入力される２n個のチャレンジＣ［ｎ−１：０］に応じた２n個のレスポンスｒｅｓ［ｎ−１：０］を出力することが可能になる。
【００５５】
図１０はラッチＰＵＦ５０を搭載した電子機器を利用した認証システムを示す図であり、図１０（ａ）はチャレンジ及びレスポンスの登録を示す図であり、図１０（ｂ）は図１０（ａ）で登録されたチャレンジ及びレスポンスによる認証を示す図である。
【００５６】
認証システム６０は、第１認証チップ６１と、第２認証チップ６２と、認証装置である認証サーバ６３とを有する。第１認証チップ６１及び第２認証チップ６２のそれぞれは、ラッチＰＵＦ５０を有する。第１認証チップ６１はラッチＰＵＦ５０を搭載した正規品であり、第２認証チップ６２は正規品であるかクローン品であるかが不明なチップである。認証サーバ６３は、処理部６３１と、認証テーブル６３２とを有する。
【００５７】
処理部６３１は、一又は複数個のプロセッサ及びその周辺回路を有する。処理部６３１は、認証サーバ６３の全体的な動作を統括的に制御するものであり、例えば、ＣＰＵ（Central Processing Unit）である。処理部６３１は、認証サーバ６３の各種処理が記憶部に記憶されているプログラムに基づいて、不図示の操作部の操作等に応じて適切な手順で実行されるように、種々の動作を制御する。処理部６３１は、記憶部に記憶されているプログラム（ドライバプログラム、オペレーティングシステムプログラム、アプリケーションプログラム等）に基づいて処理を実行する。処理部６３１は、チャレンジ指示部６３３と、レスポンス比較部６３４と、認証判定部６３５とを有する。
【００５８】
まず、認証システム６０では、第１認証チップ６１を含む複数の正規品のそれぞれのチャレンジ及びレスポンスを認証サーバ６３の認証テーブル６３２に登録する。第１認証チップ３１を含む複数の正規品のそれぞれは、チャレンジＣ［ｎ−１：０］の何れかが入力されたときに、固有のレスポンスｒｅｓ［ｎ−１：０］を出力する。一例では、認証テーブル３３２は、２n個のチャレンジＣ［ｎ−１：０］の中の何れかＭ個のチャレンジＣ［ｎ−１：０］を格納する。また、認証テーブル３３２は、Ｍ個のチャレンジＣ［ｎ−１：０］にそれぞれ対応するＭ個のレスポンスｒｅｓ［ｎ−１：０］を格納する。このように、認証システム３０では、認証テーブル３３２は、第１認証チップ３１を含む複数の正規品のそれぞれについて、Ｍ個のチャレンジＣ［ｎ−１：０］及びチャレンジＣ［ｎ−１：０］のそれぞれに対応するレスポンスｒｅｓ［ｎ−１：０］を格納する。認証テーブル３３２に格納されたレスポンスｒｅｓ［ｎ−１：０］は、正規品にされたチャレンジＣ［ｎ−１：０］に対するレスポンスの期待値である。
【００５９】
図１１は、認証システム６０による認証処理のフローチャートである。
【００６０】
まず、第２認証チップ６２を認証するために、チャレンジ指示部６３３は、認証テーブル６３２に格納されたＭ個のチャレンジＣ［ｎ−１：０］を第２認証チップ６２に順次出力する（Ｓ２０１）。次いで、レスポンス比較部６３４は、チャレンジＣ［ｎ−１：０］に応じて第２認証チップ６２から出力されるレスポンスｒｅｓ［ｎ−１：０］の組と、認証テーブル６３２のレスポンスｒｅｓ［ｎ−１：０］の組とを比較する（Ｓ２０２）。次いで、認証判定部６３５は、第２認証チップ６２からのレスポンスｒｅｓ［ｎ−１：０］の組が認証テーブル６３２のＭ個のレスポンスｒｅｓ［ｎ−１：０］の組の何れかとＲ個以上のビットが一致した場合、第２認証チップ６２が正規品であると判断する（Ｓ２０３）。例えば、第２認証チップ６２が、Ｍ個のチャレンジＣ［ｎ−１：０］に対して、第１認証チップ６１と同一のレスポンスｒｅｓ［ｎ−１：０］の組を出力したとき、第２認証チップ６２は、第１認証チップ６１と同一なので正規品であると認証する。認証判定部６３５は、第２認証チップ６２が正規品であると判断すると、第２認証チップ６２が正規品であると判断したことを示す認証信号を出力する（Ｓ２０４）。認証判定部６３５は、第２認証チップ６２からのレスポンスｒｅｓ［ｎ−１：０］の組が認証テーブル６３２のＭ個のレスポンスｒｅｓ［ｎ−１：０］の何れかともＲ個以上のビットが一致しなかった場合、認証は失敗し、第２認証チップ６２がクローン品であると判断する（Ｓ２０３）。認証判定部６３５は、第２認証チップ６２がクローン品であると判断すると、第２認証チップ６２がクローン品であると判断したことを示す非認証信号を出力する（Ｓ２０５）。
【００６１】
（実施形態に係るラッチＰＵＦの作用効果）
実施形態に係るラッチＰＵＦは、ＲＳラッチ回路の入力端子に入力されるクロック信号の周波数を変化させると、ＲＳラッチ回路の出力信号が変化することがあるとの知見に基づくものである。実施形態に係るラッチＰＵＦは、この知見に基づき、複数のチャレンジ及びチャレンジに対するレスポンスによるラッチＰＵＦを利用した認証機能を可能にする電子回路として機能する。図１０は、ＡｒｂｉｔｅｒＰＵＦ７００、ラッチＰＵＦ９１０、ラッチＰＵＦ２及びラッチＰＵＦ５０のそれぞれのチャレンジ―レスポンス対の数の一例を示す図である。
【００６２】
ラッチＰＵＦ２では、クロック生成器１０が生成可能なクロック信号の数のチャレンジを生成することができる。例えば、ラッチＰＵＦ２は、クロック生成器１０が１ＭＨｚ〜２００ＭＨｚまで０．１ＭＨｚ毎に２０００種類の周波数を有するクロック信号を生成可能である場合、２０００個のチャレンジを生成することができる。ラッチＰＵＦ５０は、ｎ個の選択ＲＳラッチ５２１〜５２ｎを有するとき、２n個のチャレンジを生成することができる。
【００６３】
（実施形態に係るラッチＰＵＦの変形例）
ラッチＰＵＦ２では、クロック生成器１０で生成されたクロック信号がｎ個のＲＳラッチ回路１１〜１ｎに入力されているが、複数のクロック生成器の何れか１つからｎ個のＲＳラッチ回路１１〜１ｎのそれぞれにクロック信号が入力される構成としてもよい。例えば、ラッチＰＵＦは、第１クロック生成器からクロック信号が入力される複数のＲＳラッチ回路を有する第１ラッチ群と、第２クロック生成器からクロック信号が入力される複数のＲＳラッチ回路を有する第２ラッチ群とを有してもよい。
【００６４】
また、ラッチＰＵＦ５０は、第１クロック生成器５１１及び第２クロック生成器５１２からのクロック信号をマルチプレクサ２３で選択しているが、３つ以上のクロック生成器からのクロック信号をマルチプレクサで選択する構成としてもよい。例えば、第１クロック生成器５１１及び第２クロック生成器５１２に加えて、第１クロック信号の周波数よりも低く且つ第２クロック信号の周波数よりも高い周波数を有する第３クロック信号を生成する第３クロック生成器を配置してもよい。３つのクロック生成器からのクロック信号をマルチプレクサで選択する構成のラッチＰＵＦでは、３n個のチャレンジを生成することができる。また、Ｘ個のクロック生成器からのクロック信号をマルチプレクサで選択する構成のラッチＰＵＦでは、Ｘn個のチャレンジを生成することができる。
【００６５】
また、認証システム３０及び６０では、認証チップを認証する認証装置は単一の認証サーバで示されているが、認証サーバの機能は複数の装置に分散して配置されてもよい。例えば、認証処理を実行する処理部は認証チップに近接して配置される装置に格納され、認証テーブルは認証チップから離隔して配置される装置に格納されてもよい。この場合、認証処理を実行する処理部と認証テーブルとの間は、インターネット等の回線網を介して接続される。
【００６６】
また、説明された実施形態では、演算処理装置３がラッチＰＵＦ２及びラッチＰＵＦ５０のＲＳラッチに入力されるクロック信号の周波数を制御しているが、ＲＳラッチに入力されるクロック信号の周波数を制御する専用の制御回路を配置してもよい。
【符号の説明】
【００６７】
１    電子機器（電子回路）
２、５０    ラッチＰＵＦ
３    演算処理装置（制御回路）
１０    クロック生成器
１１〜１ｎ    ＲＳラッチ
２１    第１ＮＡＮＤ素子
２２    第２ＮＡＮＤ素子
２３    マルチプレクサ
３０    認証システム
３１    第１認証チップ
３２    第２認証チップ
３３    認証サーバ（認証装置）
３３１    処理部
３３２    認証テーブル
３３３    チャレンジ指示部
３３４    レスポンス比較部
３３５    認証判定部
５１１    第１クロック生成器
５１２    第２クロック生成器
５２１〜５２ｎ    選択ＲＳラッチ
６０    認証システム
６１    第１認証チップ
６２    第２認証チップ
６３    認証サーバ（認証装置）
６３１    処理部
６３２    認証テーブル
６３３    チャレンジ指示部
６３４    レスポンス比較部
６３５    認証判定部
【図１】
2016171452.tif 000003
【図２】
2016171452.tif 000004
【図３】
2016171452.tif 000005
【図４】
2016171452.tif 000006
【図５】
2016171452.tif 000007
【図６】
2016171452.tif 000008
【図７】
2016171452.tif 000009
【図８】
2016171452.tif 000010
【図９】
2016171452.tif 000011
【図１０】
2016171452.tif 000012
【図１１】
2016171452.tif 000013
【図１２】
2016171452.tif 000014