(57)【要約】 【課題】デバイスの使用状況に関わらず、精度の高い認証を行うことが可能な認証装置、認証方法およびプログラムを提供する。【解決手段】実施形態の認証装置は、取得部と予測部と認証部とを備える。取得部は、第１デバイスの性能情報を取得する。予測部は、第２デバイスの、初期の性能情報からの経時的変化に応じた性能情報を予測する。認証部は、取得部により取得された性能情報と、予測部により予測された性能情報との一致度に応じて、第１デバイスが第２デバイスであるか否かを判断する認証処理を行う。【選択図】図５
2015001761.tif 000002
【特許請求の範囲】
【請求項１】
認証対象のデバイスを示す第１デバイスの性能情報を取得する取得部と、
認証の元となるデバイスを示す第２デバイスの、初期の前記性能情報からの経時的変化に応じた前記性能情報を予測する予測部と、
前記取得部により取得された前記性能情報と、前記予測部により予測された前記性能情報との一致度に応じて、前記第１デバイスが前記第２デバイスであるか否かを判断する認証処理を行う認証部と、を備える、
認証装置。
【請求項２】
前記デバイスは、ＮＡＮＤ型フラッシュメモリを有する電子機器であり、
前記性能情報は、ＮＡＮＤ型フラッシュメモリの状態を示す情報である、
請求項１に記載の認証装置。
【請求項３】
前記性能情報は、ＮＡＮＤ型フラッシュメモリに含まれる欠陥メモリの分布を示す情報である、
請求項２に記載の認証装置。
【請求項４】
前記性能情報は、ＮＡＮＤ型フラッシュメモリに含まれる欠陥メモリの数を示す情報である、
請求項２または請求項３に記載の認証装置。
【請求項５】
前記デバイスは、複数のリングオシレータを含む乱数生成回路を有する電子機器であり、
前記性能情報は、前記リングオシレータごとの、前記リングオシレータにより生成される乱数の質を示す情報である、
請求項１に記載の認証装置。
【請求項６】
前記デバイスは、それぞれが磁気抵抗素子を用いた複数のメモリセルを含むメモリセルアレイを有する電子機器であり、
前記性能情報は、各前記磁気抵抗素子を磁化平行または磁化反平行に変化させる制御が行われた場合における、各前記磁気抵抗素子の抵抗値に対応する情報である、
請求項１に記載の認証装置。
【請求項７】
第１デバイスの性能情報を取得する取得ステップと、
第２デバイスの、初期の前記性能情報からの経時的変化に応じた前記性能情報を予測する予測ステップと、
前記取得ステップにより取得された前記性能情報と、前記予測ステップにより予測された前記性能情報とを比較して、前記第１デバイスが前記第２デバイスであるか否かの認証を行う認証ステップと、を含む、
認証方法。
【請求項８】
コンピュータに、
第１デバイスの性能情報を取得する取得ステップと、
第２デバイスの、初期の前記性能情報からの経時的変化に応じた前記性能情報を予測する予測ステップと、
前記取得ステップにより取得された前記性能情報と、前記予測ステップにより予測された前記性能情報とを比較して、前記第１デバイスが前記第２デバイスであるか否かの認証を行う認証ステップと、を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、認証装置、認証方法およびプログラムに関する。
【背景技術】
【０００２】
例えばキャッシュカード、クレジットカード、交通手段（電車やバスなど）の乗車券などに利用されるＩＣカードにおいては、ＩＣカードの使用者を特定するＩＤ特定機能が重要で、ＩＣカードの利用の拡大に伴い、そのセキュリティの強化が重要となっている。近年では、従来は個人的なデータを保存するためだけに用いられてきたメモリーカードにもＩＤ特定機能が搭載されつつあり、携帯型デバイスのＩＤ特定機能の高度化が技術的な課題となっている。
【０００３】
その中で、個々のデバイスの特性のばらつきを「チップ指紋」として利用する研究開発が進められている。これらはＰＵＦ（Physically  Unclonable  Function)として知られている。例えば、半導体基板の所定の領域内における結晶欠陥の分布を、その半導体基板自体を識別するためのＩＤとして利用する技術が知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−２３５６３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、工場出荷時の結晶欠陥の分布をＩＤとして利用する従来技術においては、その結晶欠陥の分布が不変であると仮定されているが、周知のように半導体チップは利用の過程で、多くの経年劣化が見られるため、半導体チップの結晶欠陥の分布は、工場出荷時の状態から変化することが多い。このため、従来技術では、デバイスの使用時間（使用回数）が増え、欠陥が増えるにつれて、ＩＤの特定が困難になり、認証の精度が低くなるという問題がある。
【０００６】
本発明が解決しようとする課題は、デバイスの使用状況に関わらず、精度の高い認証を行うことが可能な認証装置、認証方法およびプログラムを提供することである。
【課題を解決するための手段】
【０００７】
実施形態の認証装置は、取得部と予測部と認証部とを備える。取得部は、第１デバイスの性能情報を取得する。予測部は、第２デバイスの、初期の性能情報からの経時的変化に応じた性能情報を予測する。認証部は、取得部により取得された性能情報と、予測部により予測された性能情報との一致度に応じて、第１デバイスが第２デバイスであるか否かを判断する認証処理を行う。
【０００８】
実施形態の認証方法は、取得ステップと予測ステップと認証ステップとを含む。取得ステップは、第１デバイスの性能情報を取得する。予測ステップは、第２デバイスの、初期の性能情報からの経時的変化に応じた性能情報を予測する。認証ステップは、取得ステップにより取得された性能情報と、予測ステップにより予測された性能情報との一致度に応じて、第１デバイスが第２デバイスであるか否かを判断する認証処理を行う。
【０００９】
実施形態のプログラムは、コンピュータに、取得ステップと予測ステップと認証ステップとを実行させるためのプログラムである。取得ステップは、第１デバイスの性能情報を取得する。予測ステップは、第２デバイスの、初期の性能情報からの経時的変化に応じた性能情報を予測する。認証ステップは、取得ステップにより取得された性能情報と、予測ステップにより予測された性能情報との一致度に応じて、第１デバイスが第２デバイスであるか否かを判断する認証処理を行う。
【図面の簡単な説明】
【００１０】
【図１】実施形態の欠陥メモリセルが使用回数に応じて増えていく様子を示す図。
【図２】実施形態の欠陥メモリセルの数と使用回数との関係を示す図。
【図３】実施形態の各デバイスの欠陥メモリセルの増加の仕方を示す図。
【図４】第１実施形態の認証システムの構成例を示す図。
【図５】第１実施形態のサーバ装置の機能構成例を示す図。
【図６】第１実施形態のサーバ装置の動作例を示すフローチャート。
【図７】第２実施形態の乱数生成回路の概略構成例を示す図。
【図８】第２実施形態の乱数生成回路の具体的な構成例を示す図。
【図９】第２実施形態のリングオシレータの構成例を示す図。
【図１０】第２実施形態の変形例に係る乱数生成回路の具体的な構成例を示す図。
【図１１】第３実施形態のＭＴＪ素子の構造例を示す図。
【図１２】第３実施形態のＭＴＪ素子を流れる電流の変化を模式的に示す図。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照しながら、本発明に係る認証装置、認証方法およびプログラムの実施形態を詳細に説明する。
【００１２】
（第１実施形態）
本実施形態では、認証対象のデバイスは、ＮＡＮＤ型フラッシュメモリを有する電子機器であり、例えばＩＣカード、携帯電話、スマートフォン、タブレット型情報端末装置などで構成され得る。
【００１３】
図１は、ＮＡＮＤ型フラッシュメモリのメモリセルアレイに含まれる欠陥メモリセルの数が、使用回数（書き換え回数）に応じて増えていく様子を示す図である。メモリセルアレイは、半導体基板上に、複数のメモリセルがマトリクス状に配列されて構成される。図１の例では、行方向（図１の左右方向）に延在する複数の直線と、列方向（図１の上下方向）に延在する複数の直線との各交点が、各メモリセルに対応している。また、図１においては、メモリセルアレイのうち後述の認証に利用される領域を認証用エリアと表記し、それ以外の領域をメモリ利用エリアと表記している。
【００１４】
図１の（ａ）は、初期（例えば工場出荷時）の欠陥メモリセルの分布を示す図である。図１の（ｂ）は、使用回数（使用期間と捉えることもできる）が所定値に到達したときの欠陥メモリセルの分布を示す図である。図１の（ａ）および（ｂ）から理解されるように、この例では、認証用エリアおよびメモリ利用エリアの各々において、欠陥メモリセルの数が５ずつ増えている。
【００１５】
図２は、正常なメモリセルの数（見方を変えれば欠陥メモリセルの数）と使用回数（書き換え回数）との関係を模式的に示す図である。図２から理解されるように、欠陥メモリセルの数は、使用回数に応じて増えていき、やがてはメモリとして利用できるものが無くなっていく。これは、例えば各種メモリが、１０Ｅ５回程度の利用保証制限があることにも関連している。本実施形態では、この欠陥メモリセルの増加の仕方が、個々のメモリセット（メモリセルアレイ）ごとに異なることを利用して、メモリセットが搭載されたデバイスを認証することを特徴とする。図３は、３種類のデバイス（デバイスＡ、デバイスＢ、デバイスＣ）の各々の欠陥メモリセルの増加の仕方を模式的に表す図である。図３からも理解されるように、欠陥メモリセルの数と使用回数との関係を示す直線の傾きは、デバイスごとに異なっている（つまり、欠陥メモリセルの増加の仕方はデバイスごとに異なっている）。
【００１６】
図４は、本実施形態に係る認証システム１０の構成例を示す図である。図４に示すように、認証システム１０は、デバイス１００と、リーダ装置２０と、サーバ装置２００とを備える。図４では、説明の便宜上、ひとつのデバイス１００のみを図示しているが、これに限らず、認証システム１０に含まれるデバイス１００の数は任意である。この例では、デバイス１００は、クレジットカードやキャッシュカードとして利用されるＩＣカードであるが、これに限られるものではない。リーダ装置２０は、デバイス１００の認証に用いられる情報（ＩＤ情報）を、デバイス１００から取得する（読み取る）装置である。この例では、リーダ装置２０は、銀行などのＡＴＭ（Automated  Teller  Machine）であるが、これに限られるものではない。サーバ装置２００は、リーダ装置２０と通信可能に接続され、デバイス１００の認証を行う機能を有する。具体的な内容については後述する。
【００１７】
まず、デバイス１００の具体的な内容を説明する。図４に示すように、デバイス１００は、ＣＰＵ１０１と、無線通信部１０２と、セキュリティ・認証回路１０３と、ＮＡＮＤ型フラッシュメモリ１０４とを備え、これらはバス１０５を介して相互に接続される。ＣＰＵ１０１は、デバイス１００全体の動作を統括的に制御する。
【００１８】
無線通信部１０２は、リーダ装置２０との無線通信に用いられる手段である。本実施形態では、デバイス１００とリーダ装置２０との間の無線通信は、近距離無線通信（Near  Field  Communication）であるが、これに限られるものではない。本実施形態では、無線通信部１０２は、コイルを含んで構成され、リーダ装置２０は交流電流が供給されるコイルを含むアンテナを備える。そして、デバイス１００を所持したユーザが、デバイス１００をリーダ装置２０に近接させた場合（例えばＩＣカードをリーダ装置２０にかざした場合）、電磁誘導により、無線通信部１０２に含まれるコイルに電流が発生する。このとき、リーダ装置２０は、アンテナの負荷変動を検知することで、デバイス１００の近接を検知し、サーバ装置２００へ通知する。この通知を受けたサーバ装置２００は、電波に変調をかけて、デバイス１００を認証するのに用いるＩＤ情報（この例では、認証用エリア内の欠陥メモリセルの分布を示す情報）を要求するチャレンジ信号を、リーダ装置２０を介してデバイス１００へ送信する制御を行う。
【００１９】
セキュリティ・認証回路１０３は、無線通信部１０２に含まれるコイルに発生した電流を検出することで、リーダ装置２０（サーバ装置２００）から送信されたチャレンジ信号を検知することができる。セキュリティ・認証回路１０３は、リーダ装置２０から送信されたチャレンジ信号を検知した場合、ＮＡＮＤ型フラッシュメモリ１０４のメモリセルアレイのうちの認証用エリア内に存在する欠陥メモリセルを検出する処理を行い、認証用エリア内の欠陥メモリセルの分布を示す情報（以下、「欠陥パターン情報」と呼ぶ場合がある）を得る。例えばＮＡＮＤ型フラッシュメモリにおいては、使用回数（使用期間）が増加するにつれて、トンネル膜の膜中欠陥生成量が増加するとともに、ＳＩＬＣ（Stress  Induced  Leakage  Current）が増加するという現象が見られるので、このＳＩＬＣの量を、欠陥メモリセルの判定に利用することができる。例えばメモリセルアレイを複数のブロック（領域）に分けて、ブロック毎の電荷量Ｑｐやホール量Ｑｈを測定し、その測定結果を、欠陥パターン情報（ＩＤ情報）とすることもできる。そして、セキュリティ・認証回路１０３は、チャレンジ信号に対する応答として、欠陥パターン情報をリーダ装置２０へ送信する制御を行う。そして、リーダ装置２０は、デバイス１００からの欠陥パターン情報をサーバ装置２００へ転送する。
【００２０】
次に、サーバ装置２００の具体的な内容を説明する。図５は、サーバ装置２００の機能構成例を示すブロック図である。この例では、サーバ装置２００が請求項の「認証装置」に対応しているが、これに限られるものではない。図５に示すように、サーバ装置２００は、取得部２０１と、記憶部２０２と、予測部２０３と、認証部２０４とを備える。
【００２１】
取得部２０１は、認証対象のデバイス１００（請求項の「第１デバイス」に対応）の性能情報を取得する。本実施形態では、取得部２０１は、デバイス１００の近接を検知したことを示す通知情報をリーダ装置２０から受信した場合、欠陥パターン情報を要求するチャレンジ信号を、リーダ装置２０を介してデバイス１００へ送信する制御を行う。そして、デバイス１００から、リーダ装置２０を介して送信されてくる欠陥パターン情報を取得する。
【００２２】
記憶部２０２は、各種のデータを記憶する。より具体的には、記憶部２０２は、初期値（デフォルトの値）として、認証の元となるデバイス（例えばサーバ装置２００に近接してきたデバイスが「デバイスＡ」であるか否かの認証を行う場合における「デバイスＡ」に相当、請求項の「第２デバイス」に対応）の初期の性能情報を記憶している。ここでは、性能情報とは、ＮＡＮＤ型フラッシュメモリ１０４の状態を示す情報である。より具体的には、性能情報は、ＮＡＮＤ型フラッシュメモリ１０４に含まれる欠陥メモリセルの分布を示す情報（欠陥パターン情報）である。本実施形態では、性能情報は、ＮＡＮＤ型フラッシュメモリ１０４のメモリセルアレイのうちの認証用エリア内の欠陥メモリセルの分布を示す欠陥パターン情報であり、記憶部２０２は、認証の元となるデバイス（以下の説明では、説明の便宜上、「第２デバイス」と呼ぶ場合がある）の工場出荷時の欠陥パターン情報を、初期値として記憶している。
【００２３】
予測部２０３は、第２デバイス（認証の元となるデバイス）の、初期の性能情報からの経時的変化に応じた性能情報を予測する。本実施形態では、記憶部２０２には、認証エリア内の欠陥メモリセルの分布が、時間の経過とともにどのように変化するのかを推定するための実験データが格納されており、予測部２０３は、任意の期間が経過するたびに（例えば取得部２０１により欠陥パターン情報が取得されるたびに）、記憶部２０２に記憶された実験データを元に、その時点での欠陥パターン情報を予測し、予測した欠陥パターン情報を記憶部２０２に登録する。これにより、記憶部２０２に登録される欠陥パターン情報は、工場出荷時の欠陥パターン情報から順次に更新されていく。
【００２４】
なお、これに限らず、例えば予測部２０３は、認証対象のデバイス１００の読み出し回数および書き込み回数（つまり、使用回数）に応じて、第２デバイスの欠陥パターン情報を予測する形態であってもよい。要するに、予測部２０３は、第２デバイスの、初期の性能情報からの経時的変化に応じた性能情報を予測するものであればよい。予測部２０３が、認証対象のデバイス１００の使用回数に応じて、第２デバイスの欠陥パターン情報を予測する形態においては、取得部２０１は、デバイス１００の近接を検知したことを示す通知情報をリーダ装置２０から受信した場合、前述のチャレンジ信号とともに、使用回数を要求する信号をデバイス１００に送信するようにリーダ装置２０を制御する。そして、デバイス１００から、リーダ装置２０を介して、欠陥パターン情報と、デバイス１００の使用回数を示す使用回数情報とを取得する。そして、予測部２０３は、取得部２０１により取得された使用回数情報と記憶部２０２に記憶された実験データを元に、第２デバイスの欠陥パターン情報を予測し、予測した欠陥パターン情報を記憶部２０２に登録することもできる。
【００２５】
認証部２０４は、取得部２０１により取得された性能情報と、予測部２０３により予測された性能情報との一致度に応じて、認証対象のデバイス１００が、認証の元となるデバイス（第２デバイス）であるか否かを判断する認証処理を行う。本実施形態では、性能情報を示す欠陥パターン情報はビット列で表現されるので、認証部２０４は、取得部２０１により取得された欠陥パターン情報を示すビット列と、予測部２０３により予測された欠陥パターン情報（記憶部２０２に登録されている最新の欠陥パターン情報）を示すビット列とのハミング距離を計算し、計算したハミング距離を示す値が閾値以下の場合（つまり、一致度が所定値以上の場合）は、認証対象のデバイス１００は第２デバイスであると判断する。
【００２６】
なお、本実施形態では、認証エリア内の欠陥メモリの分布を示す欠陥パターン情報を性能情報として採用しているが、これに限らず、例えばメモリ利用エリア内の欠陥メモリセルの分布を示す欠陥パターン情報を性能情報として採用することもできる。要するに、ＮＡＮＤ型フラッシュメモリ１０４に含まれる欠陥メモリセルの分布を示す欠陥パターン情報を、性能情報として採用することができる。
【００２７】
また、例えばＮＡＮＤ型フラッシュメモリ１０４に含まれる欠陥の数を示す欠陥数情報（認証エリア内の欠陥メモリセルの数を示す情報でもよいし、メモリ利用エリア内の欠陥メモリセルの数を示す情報でもよい）を、性能情報として採用する形態であってもよいし、欠陥パターン情報と欠陥数情報の両方を性能情報として採用する形態であってもよい。例えば欠陥数情報を性能情報として採用する形態では、取得部２０１は、デバイス１００の近接を検知したことを示す通知情報をリーダ装置２０から受信した場合、前述のチャレンジ信号を、リーダ装置２０を介してデバイス１００に送信する制御を行う。デバイス１００は、リーダ装置２０（サーバ装置２００）から送信されたチャレンジ信号を検知した場合、ＮＡＮＤ型フラッシュメモリ１０４のメモリセルアレイのうちの認証用エリア内に存在する欠陥メモリセルを検出する処理を行い、認証用エリア内の欠陥メモリセルの数を示す欠陥数情報をリーダ装置２０へ送信する。そして、リーダ装置２０は、デバイス１００から受信した欠陥数情報をサーバ装置２００へ送信し、取得部２０１は、欠陥数情報を取得する。
【００２８】
記憶部２０２は、初期値として、第２デバイスの工場出荷時の欠陥数情報を記憶しており、予測部２０３は、第２デバイスの、工場出荷時の欠陥数情報からの経時的変化に応じた欠陥数情報を予測する。例えば記憶部２０２には、認証エリア内の欠陥メモリセル数の増加率を推定するための実験データや、予測部２０３により予測された欠陥数情報の履歴などが格納されており、予測部２０３は、任意の期間が経過するたびに（例えば取得部２０１により欠陥数情報が取得されるたびに）、記憶部２０２に記憶された実験データや欠陥数情報の予測結果の履歴などを元に、その時点での欠陥数情報を予測し、予測した欠陥数情報を記憶部２０２に登録することができる。例えば欠陥メモリセル数の増加率については、前回の予測値と前々回の予測値の二点を利用することが最も簡単であるが、過去の所定数の予測値を、例えば２次または高次の代数式で近似して、その各次数の係数を記憶しておくことにより、より正確に欠陥メモリセルの数を予測することができる。
【００２９】
そして、認証部２０４は、取得部２０１により取得された欠陥数情報が示す欠陥メモリセルの数と、予測部２０３により予測された欠陥数情報（記憶部２０２に登録されている最新の欠陥数情報）が示す欠陥メモリセルの数との差分を示す値が閾値以下の場合は、認証対象のデバイス１００は第２デバイスであると判断する。
【００３０】
本実施形態では、サーバ装置２００のハードウェア構成は、ＣＰＵ、ＲＯＭ、ＲＡＭ等を備えるコンピュータ装置のハードウェア構成を利用している。そして、上述のサーバ装置２００の各部（取得部２０１、予測部２０３、および、認証部２０４）の機能は、ＣＰＵがＲＯＭ等に格納されたプログラムを読み出してＲＡＭ上に展開して実行することにより実現される。ただし、これに限らず、例えば上述のサーバ装置２００の各部の機能のうちの少なくとも一部が、専用のハードウェア回路で実現されてもよい。また、上述の記憶部２０２は、ＲＯＭ、ＲＡＭ、あるいは、ＨＤＤ等の補助記憶装置などで実現可能である。
【００３１】
図６は、本実施形態に係るサーバ装置２００の動作例を示すフローチャートである。認証対象のデバイス１００の近接を検知したことを示す通知情報をリーダ装置２０から受信した場合、サーバ装置２００（取得部２０１）は、欠陥パターン情報を要求するチャレンジ信号を、リーダ装置２０を介して認証対象のデバイス１００に送信する制御を行う（ステップＳ１）。そして、取得部２０１は、認証対象のデバイス１００から、リーダ装置２０を介して欠陥パターン情報を取得する（ステップＳ２）。次に、認証部２０４は、その時点で記憶部２０２に登録されている最新の欠陥パターン情報（予測部２０３により予測された第２デバイスの欠陥パターン情報）を読み出す（ステップＳ３）。そして、認証部２０４は、認証対象のデバイス１００が、第２デバイス（認証の元となるデバイス）であるか否かを判断する認証処理を行い（ステップＳ４）、認証処理の結果を示すレスポンス信号を、リーダ装置２０を介してデバイス１００に送信する制御を行う（ステップＳ５）。より具体的には、認証部２０４は、ステップＳ１で取得した欠陥パターン情報を示すビット列と、ステップＳ３で読み出した欠陥パターン情報を示すビット列とのハミング距離を計算し、計算したハミング距離が閾値以下であるか否かを判断する。認証部２０４は、計算したハミング距離が閾値以下の場合は、認証対象のデバイス１００は第２デバイスであると判断し、デバイス１００を認証したことを示すレスポンス信号を、リーダ装置２０を介してデバイス１００に送信する制御を行う。一方、計算したハミング距離が閾値を越える場合は、認証対象のデバイス１００は第２デバイスではないと判断し、デバイス１００を認証できなかったことを示すレスポンス信号を、リーダ装置２０を介してデバイス１００に送信する制御を行う。
【００３２】
以上に説明したように、本実施形態では、認証の元となるデバイスを示す第２デバイスの、工場出荷時の欠陥パターン情報（性能情報の一例）からの経時的変化に応じた欠陥パターン情報を元に、認証対象のデバイス１００の認証を行うので、デバイス１００の使用状況に関わらず、高い精度でデバイス１００の認証を行うことが可能になる。
【００３３】
（第２実施形態）
次に、第２実施形態について説明する。第２実施形態では、認証対象のデバイス（第１デバイス）は、複数のリングオシレータを含む乱数生成回路を有する電子機器であり、性能情報は、複数のリングオシレータごとの、当該リングオシレータにより生成される乱数の質を示す情報である点で上述の第１実施形態と相違する。なお、上述の第１実施形態と共通する部分については、適宜に説明を省略する。
【００３４】
リングオシレータなどを用いた乱数生成回路は、ＩＣカードをはじめ、多くのＮＦＣで用いられている。その利用環境は薄いパッケージの中に電子基板が入っているため、外部の環境の影響を受けやすいデバイスの一つである。特に定期券などと併用して利用する場合は、ほぼ毎日利用するため、劣化の程度も激しい。工場出荷時からの定期的なＩＤメインテナンスが必要である。
【００３５】
ここでは、図４に示すセキュリティ・認証回路１０３内に乱数生成回路が存在するので、乱数生成回路を有する電子機器としては、第１実施形態と同様にＩＣカードを想定し、デバイス１００と表記する。また、リーダ装置およびサーバ装置の基本的な構成は、第１実施形態と同様であるので、それぞれ第１実施形態と同様の表記（リーダ装置２０、サーバ装置２００）とする。図７は、第２実施形態に係る乱数生成回路３００の構成例を示すブロック図である。乱数生成回路３００は、通常の乱数生成回路として機能する乱数生成部３１０と、サーバ装置２００からのチャレンジ信号に応じてＩＤ情報を生成するＩＤ情報生成部３２０とを含む。具体的な内容については後述する。
【００３６】
乱数生成回路３００は、図８に示すように、複数のリングオシレータ１〜Ｎ（ＲＩＮＧ  ＯＳＣ１〜Ｎ）を含む。図８では、Ｎ（≧１）個のリングオシレータが並んでいる様子を示す。図９は、単体のリングオシレータの例を示す図である。図９の例では、原理を分かり易く示すため、奇数個（図９の例では５個）のインバータをリング状につないで発振させる構成例を挙げているが、これに限らず、ＸＯＲやＮＡＮＤ回路を用いてリングオシレータを構成することもできる。
【００３７】
通常の乱数生成回路では、リングオシレータ間の乱数出力のばらつきを軽減するために図８に示すような平滑化回路を挿入した上で、各リングオシレータのデータにＸＯＲ（排他的論理和）の論理演算を施す工程を経る。図８の例では、平滑化回路は、ＸＯＲゲート３３０と、フリップフロップ回路３４０とを含むが、これに限られるものではない。各リングオシレータは、リングオシレータを構成するトランジスタのプロセスばらつきにも依存すると同時に回路内においては最適自動配置配線などのため、リングオシレータの置かれた外部環境に依存して、それぞれのリングオシレータに特徴的な乱数を示す。理想的には、すべてのリングオシレータが０と１のバランスの取れた乱数を出力することが望ましいが、リングオシレータを構成するトランジスタの回路内の配置、トランジスタの閾値ずれなどにより、リングオシレータによっては、０と１とバランスの崩れたものが存在する。中には０か１に大きく偏った乱数しか発生させないものも存在する。
【００３８】
例えば、図８に示すリングオシレータ１（ＲＩＮＧ  ＯＳＣ１）およびリングオシレータ２（ＲＩＮＧ  ＯＳＣ２）は良質な乱数を生成するが、リングオシレータ３（ＲＩＮＧ  ＯＳＣ３）は０の生成確率が７０％以上である、などのように、リングオシレータごとに特性が異なる。作成後、何年間か放置した後、乱数特性を計測したところ、０と１のバランスの崩れ方が全く同じだったものも存在した。各リングオシレータから出力されるデータに対しては、ＸＯＲの論理演算が施されるため、最終的には良質な乱数が出力されるが、個々のリングオシレータをみると、０と１のバランスが固定される。
【００３９】
本実施形態では、乱数生成回路３００に含まれる複数のリングオシレータごとの、当該リングオシレータにより生成される乱数の質の経時的変化が、リングオシレータのセット（組）ごとに異なることを利用して、リングオシレータのセットが搭載されたデバイスを認証することを特徴とする。認証に用いられるＩＤ情報を生成するＩＤ情報生成部３２０は、各リングオシレータから出力される乱数列のデータを検定回路に掛け、複数のリングオシレータ（リングオシレータ列）の何番目のリングオシレータから出力されるデータ（乱数列のデータ）がどのような検定結果を示すのかを表す情報（つまり、複数のリングオシレータごとの、当該リングオシレータにより生成される乱数の質を示す情報）をＩＤ情報として生成する。図８の例では、「ａ」で示されるように、各リングオシレータの出力を分岐させて入手できる回路構成とし、各リングオシレータから出力される乱数列のデータを、検定回路３２２で検定した結果を示す情報を、ＩＤ情報として生成する。
【００４０】
ＩＤ情報の生成例としては、図７または図８に示す検定回路３２２において、０と１のバランスが一定値、例えば、７０％を超えたリングオシレータを「ｂａｄ」と判定し、それ以外を「ｇｏｏｄ」とすれば、各リングオシレータの「ｇｏｏｄ」と「ｂａｄ」の分布を、ＩＤ情報とすることもできる。更に、実際の乱数検定は米国標準基準局発行のＮＩＳＴ１４０−２やＳＰ８００−２２、またはドイツ数学協会作成の「BSI:  Application  Note  and  Interpretation  of  the  Scheme  (AIS)  31．Functionality  Classes  and  Evaluation  Methodology  for  Physical  Random  Number  Generators」などの統計理論を利用した検定が必要であり、各リングオシレータから出力される乱数列のデータがどの検定項目をパスするか（どの検定項目に対応する基準を満たすか）を示す情報を、ＩＤ情報として用いることができる。例えば、ＳＰ８００−２２では１６種類の検定項目があり、ＦＩＰＳ１４０−２では４種類の検定項目があり、複数のリングオシレータごとに、当該リングオシレータがどの検定項目に対応する基準を満たすのかを示す情報を、ＩＤ情報として用いることができる。
【００４１】
また、例えばＦＩＰＳ−１４０−２は、現在ではＡＩＳ３１の一部分として用いられ、Ｔｅｓｔ  Ｔ１（monobit  test）、Ｔｅｓｔ  Ｔ２（poker  test）、Ｔｅｓｔ  Ｔ３（run  test）、Ｔｅｓｔ  Ｔ４（long  run  test）の４種類の項目がある。例えば乱数生成回路に含まれるリングオシレータの数が１０個の場合（Ｎ＝１０の場合）、検定項目として、０と１のバランスに対応する検定項目だけしかない場合は、２１０＝１０２４個のＩＤ情報しか生成することができないか、検定項目が４種類ある場合は、（２４）１０＝２４０個のＩＤ情報を生成することができる。
【００４２】
図７に戻って説明を続ける。図７に示すように、乱数生成部３１０は、攪拌回路３１１と、平滑化回路群３１２と、検定回路３１３と、乱数出力部３１４とを含む。この例では、攪拌回路３１１は、Ｎ個のリングオシレータ１〜Ｎを含む（図８参照）。平滑化回路群３１２は、攪拌回路３１１に含まれる複数のリングオシレータと１対１に対応する複数の平滑化回路からなる。前述したように、各平滑化回路は、ＸＯＲゲート３３０と、フリップフロップ回路３４０とを含む（図８参照）。検定回路３１３は、平滑化されてＸＯＲの論理演算が施された乱数列のデータが、予め定められた検定項目に対応する基準を満たすか否かを判断し、基準を満たすと判断した場合は、その乱数列のデータを、乱数出力部３１４へ渡す。乱数出力部３１４は、検定回路３１３から渡された乱数列のデータ（基準を満たすと判断された乱数列のデータ）を出力する。なお、図８の例では、平滑化回路の前に、個別のリングオシレータの乱数列の取り出し口が設けられているが、これに限らず、例えば図１０に示すように、各リングオシレータの乱数列の取り出し口が、当該リングオシレータに対応する平滑化回路の後に設けられる形態であってもよい。
【００４３】
また、図７に示すように、ＩＤ情報生成部３２０は、チャレンジ信号検知部３２１と、検定回路３２２と、データストレージ部３２３と、ハッシュ生成部３２４と、ＩＤ情報出力部３２５とを含む。チャレンジ信号検知部３２１は、リーダ装置２０からのチャレンジ信号を検知する。本実施形態では、リーダ装置２０は、認証対象のデバイス１００の近接を検知すると、認証対象のデバイス１００の近接を検知したことをサーバ装置２００へ通知する。この通知を受けたサーバ装置２００は、複数のリングオシレータごとの、当該リングオシレータにより生成される乱数の質を示す情報（この例におけるＩＤ情報）を要求するチャレンジ信号を、リーダ装置２０を介してデバイス１００に送信する制御を行う。この例では、チャレンジ信号検知部３２１は、リーダ装置２０（サーバ装置２００）からのチャレンジ信号を検知すると、攪拌回路３１１を動作させて各リングオシレータによる乱数を発生させる制御を行う。
【００４４】
検定回路３２２は、データストレージ部３２３に格納された１以上の検定項目を元に、攪拌回路３１１から出力された乱数列のデータの検定を行う。より具体的には、検定回路３２２は、各リングオシレータから出力された乱数列のデータごとに、データストレージ部３２３に格納された１以上の検定項目のうちの何れの検定項目に対応する基準を満たすのかを判断し、その結果を示す情報（以下の説明では、「検定結果情報」と呼ぶ場合がある）を、ハッシュ生成部３２４へ出力する。ハッシュ生成部３２４は、検定回路３２２からの検定結果情報に対応するハッシュ値（この例ではビット列）を決定し、決定したハッシュ値を、ＩＤ情報出力部３２５へ出力する。ＩＤ情報出力部３２５は、ハッシュ生成部３２４により生成されたハッシュ値を、チャレンジ信号に対する応答として、リーダ装置２０へ送信する制御を行う。そして、リーダ装置２０は、デバイス１００からの検定結果情報をサーバ装置２００へ送信する。
【００４５】
サーバ装置２００の基本的な構成は第１実施形態と同様であり、ここでは、図５の構成を例に挙げて、各部の機能を説明する。取得部２０１は、デバイス１００の近接を検知したことを示す通知情報をリーダ装置２０から受信した場合、各リングオシレータにより生成される乱数の質を示す情報（この例では検定結果情報）を要求するチャレンジ信号を、リーダ装置２０を介してデバイス１００に送信する制御を行う。そして、デバイス１００から、リーダ装置２０を介して検定結果情報に対応するハッシュ値を取得する。
【００４６】
記憶部２０２は、認証の元となるデバイスを示す第２デバイスの工場出荷時の検定結果情報に対応するハッシュ値を、初期値として記憶している。本実施形態では、記憶部２０２には、検定結果情報が、時間の経過とともにどのように変化するのかを推定するための実験データが格納されており、予測部２０３は、任意の期間が経過するたびに（例えば取得部２０１により検定結果情報に対応するハッシュ値が取得されるたびに）、記憶部２０２に記憶された実験データを元に、その時点での検定結果情報を予測し、予測した検定結果情報に対応するハッシュ値を記憶部２０２に登録する。
【００４７】
認証部２０４は、取得部２０１により取得された、検定結果情報に対応するハッシュ値を示すビット列と、予測部２０３により予測された検定結果情報に対応するハッシュ値（記憶部２０２に登録されている最新のハッシュ値）を示すビット列とのハミング距離を計算し、計算したハミング距離を示す値が閾値以下の場合は、認証対象のデバイス１００は第２デバイスであると判断する。
【００４８】
本実施形態においても、第２デバイスの、工場出荷時の検定結果情報（性能情報の一例）の経時的変化に応じた検定結果情報を元に、認証対象のデバイス１００の認証を行うので、デバイス１００の使用状況に関わらず、高い精度でデバイス１００の認証を行うことが可能になる。
【００４９】
（第３実施形態）
次に、第３実施形態について説明する。第３実施形態では、認証対象のデバイス（第１デバイス）は、それぞれが磁気抵抗素子を用いた複数のメモリセルを含むメモリセルアレイを有する電子機器であり、性能情報は、各磁気抵抗素子の磁化方向を磁化平行または磁化反平行に変化させる制御が行われた場合における、各磁気抵抗素子の抵抗値に対応する情報である点で上述の第１実施形態と相違する。
【００５０】
ここでは、それぞれが磁気抵抗素子を用いた複数のメモリセルを含むメモリセルアレイを有する電子機器としては、第１実施形態と同様にＩＣカードを想定し、デバイス１００と表記する。本実施形態に係るデバイス１００は、図４に示すＮＡＮＤ型フラッシュメモリ１０４の代わりに、それぞれが磁気抵抗素子を用いた複数のメモリセルを含むメモリセルアレイを有するＭＲＡＭを備えるものとする。また、リーダ装置およびサーバ装置の基本的な構成は、第１実施形態と同様であるので、それぞれ第１実施形態と同様の表記（リーダ装置２０、サーバ装置２００）とする。
【００５１】
また、ここでは、磁気抵抗素子の一例として、磁気トンネル接合（Magnetic  Tunnel  Junction、以下では「ＭＴＪ」と呼ぶ）素子を例に挙げて説明する。ＭＴＪ素子は、２つの磁性体膜がトンネル絶縁体を挟んだ構造を有し、磁性体膜の相対的な磁化方向に対応して、抵抗の状態が、高抵抗状態および低抵抗状態のうちの何れかに決まる。一般的に磁化方向が平行な場合（磁化平行、Ｐ状態）は抵抗が低く、磁化方向が反平行な場合（磁化反平行、ＡＰ状態）は抵抗が高い。メモリセルのＭＴＪ素子から抵抗値を読み出すとき、比較のために作成されていた参照セルと比較することで、抵抗の大小を区別する。ＭＴＪ素子に抵抗ばらつきがあるとメモリセルに書き込んでおいた情報が読み出せなくなる恐れがあるため、一般的に製造されるＭＲＡＭのチップ内でのＭＴＪ素子の抵抗ばらつきは、製造プロセスの工夫によって、最小限に抑えられている。また出荷時には初期不良が検査され、不良ビットを読み出さない工夫をすることもできる。このようにして出荷後のＭＲＡＭは大容量のメモリセルを有することができる。
【００５２】
一方、ＭＴＪ素子の情報すなわち抵抗値は、２つの磁性体の磁化方向の相対関係で決まるが、ＭＲＡＭとして使用された際に、メモリセルには読み出しあるいは書き込みのための電流が繰り返し流されることになり、ＭＴＪ素子の自己発熱によって磁性体情報（抵抗値）の揺らぎが生じる。実際のＭＴＪ素子は、例えば垂直磁化膜を有する場合などにおいては、単純に、トンネル絶縁膜を２つの磁性体で挟持する３層構造ではなく、図１１に示すように、２層以上の構成によって垂直磁化膜が形成されることがある。図１１の例では、ＭＴＪ素子は、記憶層４１０、記憶層４１０上に形成されたトンネル絶縁膜４２０、トンネル絶縁膜４２０上に形成された参照層４３０、および、参照層４３０上に形成された調整層４４０の４層構造である。記憶層４１０は、スピンの注入により、膜面に略垂直な方向の磁化方向が変化する。参照層４３０と調整層４４０は、膜面に略垂直な方向の磁化方向が互いに異なる。
【００５３】
ここで、スピン注入磁化反転方式を利用するＭＲＡＭにおいて、例えば各ＭＴＪ素子の磁化方向を磁化平行に遷移させるために、各ＭＴＪ素子に対して、磁化平行に対応する方向に、所定値の電流を流す場合を想定する。図１２の例では、あるＭＴＪ素子について、磁性体情報の揺らぎが生じていない場合は、その後の読み出しにおいて当該あるＭＴＪ素子を流れる電流（あるＭＴＪ素子の抵抗値に対応する情報であると捉えることができる）は、磁化平行に対応する方向（ここでは正の方向）に流れる電流値Ｉ１の電流となることが想定される。しかしながら、例えば読み出しあるいは書き込みのための電流が繰り返し流されたことにより（使用回数が増加したことにより）、あるＭＴＪ素子の磁性体情報の揺らぎが生じた場合は、磁化を平行にする電流を流した後の読み出しにおいて、当該あるＭＴＪ素子の磁化を平行にする電流値は、Ｉ１とは異なる値に変化する。図１２の例では、あるＭＴＪ素子を流れる電流の値はＩ２に変化していることを示す。
【００５４】
また、例えば各ＭＴＪ素子の磁化方向を磁化反平行に遷移させるために、各ＭＴＪ素子に対して、磁化反平行に対応する方向に、所定値の電流を流す場合を想定する。この例では、あるＭＴＪ素子について、磁性体情報の揺らぎが生じていない場合は、その後の読み出しにおいて当該あるＭＴＪ素子の磁化方向を変化させる電流（ここでは負の方向に流れる電流）の電流値はＩ３となることが想定される。しかしながら、例えば使用回数が増加したことにより、あるＭＴＪ素子の磁性体情報の揺らぎが生じた場合は、当該あるＭＴＪ素子を流れる電流の値は、図１２に示すＩ３とは異なる値に変化する。例えば図１２の例では、あるＭＴＪ素子の磁化方向を変化させる電流の値はＩ４に変化していることを示す。
【００５５】
本実施形態では、各ＭＴＪ素子の磁化方向を磁化平行または磁化反平行に変化させる制御が行われた場合の各ＭＴＪ素子の抵抗値に対応する情報の経時的変化が、個々のメモリセット（メモリセルアレイ）ごとに異なることを利用して、メモリセットが搭載されたデバイスを認証することを特徴とする。より具体的には以下のとおりである。
【００５６】
本実施形態では、サーバ装置２００（取得部２０１）は、デバイス１００の近接を検知したことを示す通知情報をリーダ装置２０から受信した場合、当該デバイス１００に対して、各ＭＴＪ素子の磁化方向を磁化平行または磁化反平行に変化させる制御が行われた場合の各ＭＴＪ素子の抵抗値に対応する情報（この例におけるＩＤ情報、以下の説明では、「抵抗パターン情報」と呼ぶ場合がある）を要求するチャレンジ信号を、リーダ装置２０を介してデバイス１００に送信する制御を行う。セキュリティ・認証回路１０３は、リーダ装置２０（サーバ装置２００）から送信されたチャレンジ信号を検知した場合、ＭＲＡＭを駆動する不図示の駆動回路に対して、そのチャレンジ信号を送信する。チャレンジ信号を受信した駆動回路は、各ＭＴＪ素子に対して、磁化方向を磁化平行または磁化反平行に遷移させるための電流を流した後、各ＭＴＪ素子の抵抗値に対応する情報（この例では電流）を読み出す制御を行う。そして、この読み出し制御により得られた情報（抵抗パターン情報）を、セキュリティ・認証回路１０３へ出力し、セキュリティ・認証回路１０３は、チャレンジ信号に対する応答として、抵抗パターン情報をリーダ装置２０へ送信する制御を行う。この例では、抵抗パターン情報は、第１実施形態における欠陥パターン情報と同様に、ビット列で表現されるものとする。リーダ装置２０は、デバイス１００からの抵抗パターン情報をサーバ装置２００へ送信する。
【００５７】
サーバ装置２００の基本的な構成は第１実施形態と同様であり、ここでは、図５の構成を例に挙げて、各部の機能を説明する。取得部２０１は、デバイス１００から、リーダ装置２０を介して抵抗パターン情報を取得する。記憶部２０２は、認証の元となるデバイスを示す第２デバイスの工場出荷時の抵抗パターン情報を、初期値として記憶している。本実施形態では、記憶部２０２には、抵抗パターン情報が、時間の経過とともにどのように変化するのかを推定するための実験データが格納されており、予測部２０３は、任意の期間が経過するたびに（例えば取得部２０１により抵抗パターン情報が取得されるたびに）、記憶部２０２に記憶された実験データを元に、その時点での抵抗パターン情報を予測し、予測した抵抗パターン情報を記憶部２０２に登録する。
【００５８】
認証部２０４は、取得部２０１により取得された抵抗パターン情報を示すビット列と、予測部２０３により予測された抵抗パターン情報を示すビット列（記憶部２０２に登録されている最新の抵抗パターン情報を示すビット列）とのハミング距離を計算し、計算したハミング距離を示す値が閾値以下の場合は、認証対象のデバイス１００は第２デバイスであると判断する。
【００５９】
本実施形態においても、第２デバイスの、工場出荷時の抵抗パターン情報（性能情報の一例）からの経時的変化に応じた抵抗パターン情報を元に、認証対象のデバイス１００の認証を行うので、デバイス１００の使用状況に関わらず、高い精度でデバイス１００の認証を行うことが可能になる。
【００６０】
（第３実施形態の変形例）
ところで、上述したようなＭＴＪ素子の構造では、熱安定性が確保された磁化膜の設計となっている。しかしながら、上述したようなＭＴＪ素子の自己発熱による磁性体の磁化方向の揺らぎは、ＭＲＡＭの使用方法にも強く依存するため、ＭＴＪ素子の発熱の仕方によっては、磁化膜が微視的に不安定性を有することがあり得る。ただし、このような不安定性も考慮したうえで、ＭＲＡＭの信頼性が設計されていることが多いため、必ずしもこの不安定性が直接ＭＲＡＭのエラービットを誘発するとは限らない。ＭＴＪ素子の抵抗値の基準となる片方の磁化の安定性が一時的に悪くなる程度である。
【００６１】
そこで、ＭＴＪ素子の安定性の悪化を意図的に増長させるような制御を行い、その制御を行った後の各ＭＴＪ素子の抵抗値に対応する情報を、そのＭＲＡＭが搭載されたデバイス１００のＩＤ情報とすることも可能である。
【００６２】
一つ目の具体例は、書き込みを繰り返す方法である。スピン注入磁化反転方式を利用するＭＲＡＭでは、各ＭＴＪ素子の磁化方向を変化（反転）させる場合、変化させたい磁化方向に対応する方向に流れる電流をＭＴＪ素子に流す方法が一般的に用いられる。書き込み電流は読み出し電流よりも大きいため、書き込みを繰り返すことにより、ＭＴＪ素子にはジュール熱が発生し、ＭＴＪ素子の抵抗値の基準となる片方の磁化の安定性が一時的に悪くなる。このときに、通常であれば所望の磁化方向に落ち着くような書き込み電流の方向であっても、逆向きに磁化が配置される場合が発生し得る。このため、例えば各ＭＴＪ素子に対して、磁化方向を磁化平行に変化させるための電流を流す制御を所定数だけ繰り返して行った後、各ＭＴＪ素子の抵抗値に対応する情報を読み出す制御を行うことで、そのＭＲＡＭに特有の情報を生成することができる。また、例えば各ＭＴＪ素子に対して、磁化反平行に変化させるための電流を流す制御を所定数だけ繰り返して行った後、各ＭＴＪ素子の抵抗値に対応する情報を読み出す制御を行うことで、そのＭＲＡＭに特有の情報を生成することもできる。
【００６３】
つまり、各ＭＴＪ素子の磁化方向を所定の方向（磁化平行または磁化反平行）に変化させる制御が所定数だけ繰り返し行われた場合の各ＭＴＪ素子の抵抗値に対応する情報を、上述の性能情報として採用することもできる。
【００６４】
また、二つ目の具体例は、読み出しを繰り返す方法である。書き込みよりも読み出しの方がＭＴＪ素子を流れる電流値は小さいものの、ＭＲＡＭの回路構成によっては読み出し性能を重視するために、単位時間当たりの読み出しデータ量を多くするように設計されている場合がある。ＭＴＪ素子に対して電流を流すという負荷を与えることで、そのＭＴＪ素子にはジュール熱が発生し、ＭＴＪ素子の抵抗値の基準となる片方の磁化の安定性が一時的に悪くなる。このため、例えば各ＭＴＪ素子の抵抗値に対応する情報を読み出す制御を、所定数だけ繰り返して行った後、各ＭＴＪ素子に対して、磁化方向を磁化平行または磁化反平行に変化させるための電流を流し、その後、各ＭＴＪ素子の抵抗値に対応する情報を読み出す制御を行うことで、そのＭＲＡＭに特有の情報を生成することもできる。
【００６５】
つまり、各ＭＴＪ素子の抵抗値に対応する情報を読み出す制御を所定数だけ繰り返した後に、各ＭＴＪ素子の磁化方向を磁化平行または磁化反平行に変化させる制御を行い、その後の各ＭＴＪ素子の抵抗値に対応する情報を、上述の性能情報として採用することもできる。
【００６６】
以上、本発明の実施形態を説明したが、上述の各実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。なお、上述の各実施形態および変形例は任意に組み合わせることもできる。
【００６７】
例えば上述の第２実施形態のように、ハッシュ関数を介して認証処理を行ってもよいし、一般的なファジー論理回路を用いて認証処理を行ってもよい。また、第２実施形態の乱数生成回路は、第１実施形態または第３実施形態と併用しても構わない。また、ＭＲＡＭとＮＡＮＤ型フラッシュメモリが共存する回路では、第１実施形態と第３実施形態を併用しても構わない。
【００６８】
また、例えばリーダ装置２０が、上述の認証処理を行う形態であってもよい。この形態では、例えばリーダ装置２０は、上述の取得部２０１と、記憶部２０２と、予測部２０３と、認証部２０４とを備えていてもよい。この例では、リーダ装置２０は請求項の「認証装置」に対応する。また、上述の実施形態では、リーダ装置２０がデバイス１００のＩＤ情報を取得する方式は非接触型であるが、これに限らず、例えば接触型であってもよい。
【００６９】
また、上述の各実施形態のサーバ装置２００で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するようにしてもよい。また、上述の各実施形態のサーバ装置２００で実行されるプログラムを、インターネット等のネットワーク経由で提供または配布するようにしてもよい。また、各実施形態のサーバ装置２００で実行されるプログラムを、ＲＯＭ等の不揮発性の記録媒体に予め組み込んで提供するようにしてもよい。
【符号の説明】
【００７０】
１０  認証システム
２０  リーダ装置
１００  デバイス
１０１  ＣＰＵ
１０２  無線通信部
１０３  セキュリティ・認証回路
１０４  ＮＡＮＤ型フラッシュメモリ
１０５  バス
２００  サーバ装置
２０１  取得部
２０２  記憶部
２０３  予測部
２０４  認証部
３００  乱数生成回路
３１０  乱数生成部
３１１  攪拌回路
３１２  平滑化回路群
３１３  検定回路
３１４  乱数出力部
３２０  ＩＤ情報生成部
３２１  チャレンジ信号検知部
３２２  検定回路
３２３  データストレージ部
３２４  ハッシュ生成部
３２５  ＩＤ情報出力部
４１０  記憶層
４２０  トンネル絶縁膜
４３０  参照層
４４０  調整層
【図１】
2015001761.tif 000003
【図２】
2015001761.tif 000004
【図３】
2015001761.tif 000005
【図４】
2015001761.tif 000006
【図５】
2015001761.tif 000007
【図６】
2015001761.tif 000008
【図７】
2015001761.tif 000009
【図８】
2015001761.tif 000010
【図９】
2015001761.tif 000011
【図１０】
2015001761.tif 000012
【図１１】
2015001761.tif 000013
【図１２】
2015001761.tif 000014