(57)【特許請求の範囲】
【請求項１】
デバイスの固有情報を生成するデバイス固有情報生成装置であって、
テスト時間だけリフレッシュを停止するテスト処理を行ない、該テスト処理により生じた反転ビットの数であるテスト処理反転ビット数に基づいて、前記固有情報を生成するために必要な反転ビット数である想定反転ビット数に対応したリフレッシュの停止の時間を決定するリフレッシュ停止時間決定手段と、
前記決定したリフレッシュの停止時間を適用したリフレッシュ停止により得られる反転ビットに関する情報に基づいて前記固有情報を生成する固有情報生成手段と、
を備えることを特徴とするデバイス固有情報生成装置。
【請求項２】
請求項１に記載のデバイス固有情報生成装置であって、
前記テスト処理反転ビット数と、リフレッシュの停止の時間との対応関係を保持したテーブルを更に備え、
前記リフレッシュ停止時間決定手段は、前記テスト処理反転ビット数と、前記テーブルとを基に、前記リフレッシュの停止の時間を決定することを特徴とするデバイス固有情報生成装置。
【請求項３】
請求項２に記載のデバイス固有情報生成装置であって、
前記テーブルでの対応関係に係る前記テスト処理反転ビット数は、前記テスト処理実行時の温度と前記テスト時間とに対応したものであり、
前記テーブルでの対応関係に係る前記リフレッシュの停止の時間は、前記テスト処理実行時の温度と前記想定反転ビット数とに対応したものであることを特徴とするデバイス固有情報生成装置。
【請求項４】
請求項１に記載のデバイス固有情報生成装置であって、
前記固有情報生成手段は、前記固有情報を、初期設定フェーズにおけるリフレッシュの停止により得られる反転ビットに関する情報と、鍵生成フェーズにおけるリフレッシュの停止により得られる反転ビットに関する情報とに基づいて生成し、
前記リフレッシュ停止時間決定手段は、
前記初期設定フェーズにおいてテスト時間だけリフレッシュを停止する初期設定フェーズテスト処理を行ない、該初期設定フェーズテスト処理により生じた反転ビットの数である初期設定フェーズテスト処理反転ビット数に基づいて、前記固有情報を生成するために必要な反転ビット数である初期設定フェーズ想定反転ビット数に対応したリフレッシュの停止の時間を決定する初期設定フェーズリフレッシュ停止時間決定手段と、
前記鍵生成フェーズにおいてテスト時間だけリフレッシュを停止する鍵生成フェーズテスト処理を行ない、該鍵生成フェーズテスト処理により生じた反転ビットの数である鍵設定フェーズテスト処理反転ビット数と、前記初期設定フェーズテスト処理反転ビット数とに基づいて、前記固有情報を生成するために必要な反転ビット数である鍵生成フェーズ想定反転ビット数に対応したリフレッシュの停止の時間を決定する鍵生成フェーズリフレッシュ停止時間決定手段と、
を備えることを特徴とするデバイス固有情報生成装置。
【請求項５】
請求項４に記載のデバイス固有情報生成装置であって、
前記初期設定フェーズテスト処理反転ビット数と、リフレッシュの停止の時間との対応関係を保持した第１のテーブルと、
前記初期設定フェーズテスト処理反転ビット数と前記鍵設定フェーズテスト処理反転ビット数との組合わせと、リフレッシュの停止の時間との対応関係を保持した第２のテーブルと、
を更に備え、
前記初期設定フェーズリフレッシュ停止時間決定手段は、前記初期設定フェーズテスト処理反転ビット数と、前記第１のテーブルとを基に、前記初期設定フェーズ想定反転ビット数に対応したリフレッシュの停止の時間を決定し、
前記鍵生成フェーズリフレッシュ停止時間決定手段は、前記初期設定フェーズテスト処理反転ビット数と、前記鍵生成フェーズテスト処理反転ビット数と、前記第２テーブルとを基に、前記鍵生成フェーズ想定反転ビット数に対応したリフレッシュの停止の時間を決定することを特徴とするデバイス固有情報生成装置。
【請求項６】
請求項５に記載のデバイス固有情報生成装置であって、
前記第１のテーブルでの対応関係に係る前記初期設定フェーズテスト処理反転ビット数は、前記初期設定フェーズにおける前記テスト処理実行時の温度と前記テスト時間とに対応したものであり、
前記第１のテーブルでの対応関係に係るリフレッシュの停止の時間は、前記初期設定フェーズにおける前記テスト処理実行時の温度と前記初期設定フェーズ想定反転ビット数とに対応したものであり、
前記第２のテーブルでの対応関係に係る前記鍵設定フェーズテスト処理反転ビット数は、前記鍵設定フェーズにおける前記テスト処理実行時の温度と前記テスト時間に対応したものであり、
前記第２のテーブルにおける対応関係に係るリフレッシュの停止の時間は、前記初期設定フェーズにおける前記テスト処理実行時の温度と前記鍵生成フェーズにおける前記テスト処理実行時の温度と前記鍵生成フェーズ想定反転ビット数とに対応したものであることを特徴とするデバイス固有情報生成装置。
【請求項７】
請求項４乃至６の何れか１に記載のデバイス固有情報生成装置であって、
前記固有情報生成手段は、
前記初期設定フェーズにおけるリフレッシュの停止により得られる反転ビットに関する情報に基づいて、前記固有情報に対する誤り訂正符号の冗長データを生成する手段と、
前記鍵生成フェーズにおけるリフレッシュの停止により得られる反転ビットに関する情報と前記冗長データに基づいて、前記固有情報を生成する手段と、
を備えることを特徴とするデバイス固有情報生成装置。
【請求項８】
デバイスの固有情報を生成するデバイス固有情報生成方法であって、
テスト時間だけリフレッシュを停止するテスト処理を行ない、該テスト処理により生じた反転ビットの数であるテスト処理反転ビット数に基づいて、前記固有情報を生成するために必要な反転ビット数である想定反転ビット数に対応したリフレッシュの停止の時間を決定するリフレッシュ停止時間決定ステップと、
前記決定したリフレッシュの停止時間を適用したリフレッシュ停止により得られる反転ビットに関する情報に基づいて前記固有情報を生成する固有情報生成ステップと、
を有することを特徴とするデバイス固有情報生成方法。
【請求項９】
コンピュータを、デバイスの固有情報を生成するデバイス固有情報生成装置として機能させるためのデバイス固有情報生成用プログラムであって、
コンピュータを、
テスト時間だけリフレッシュを停止するテスト処理を行ない、該テスト処理により生じた反転ビットの数であるテスト処理反転ビット数に基づいて、前記固有情報を生成するために必要な反転ビット数である想定反転ビット数に対応したリフレッシュの停止の時間を決定するリフレッシュ停止時間決定手段と、
前記決定したリフレッシュの停止時間を適用したリフレッシュ停止により得られる反転ビットに関する情報に基づいて前記固有情報を生成する固有情報生成手段と、
として機能させるためのデバイス固有情報生成用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデバイスの固有情報を生成するためのデバイス固有情報生成装置及びデバイス固有情報生成方法に関し、特に、デバイス内部の物理状態を利用してそのデバイスの固有情報を生成するデバイス固有情報生成装置及びデバイス固有情報生成方法に関する。
【背景技術】
【０００２】
情報セキュリティに関して、安全な情報・通信システムの実現のためにはサーバと端末機器の間の通信において、相互に、相手が正規の相手であるかどうかを判定する認証処理が必要となる。認証処理は、機器固有の情報（ＩＤ）が存在することが前提となる。シリアル番号はその代表であるが、正規の機器を手に入れた攻撃者がこのシリアル番号を入手することは容易であり、また、ある機器のシリアル番号を基に、他の機器のシリアル番号も推測できることも多い。端末機器にランダムな秘密鍵を持たせれば、ある機器の秘密鍵を基に、他の機器の秘密鍵を推測することは困難であるが、その保持方法が問題になる。メモリ（たとえば、ＲＯＭ(Read Only Memory)）に秘密情報を保持しておく方法では、攻撃者が内容の解析を行わなくてもメモリをそのままコピーできれば不正な機器を複製できてしまう問題も発生する。このような攻撃に対処する従来の耐タンパー技術では、例えば、揮発性メモリに秘密情報を持つ方法が採られ、データ保持用のバッテリが必要になるなどコストが高くなるという問題がある。
【０００３】
近年、機器の認証を実現する手法として、機器を構成するデバイスにおいて製造過程などで不可避的に発生する物理的なばらつきを利用してデバイス個体の固有情報を生成して認証に利用する方式の研究が進んでおり、Physically Unclonable Function （ＰＵＦ）と呼ばれている。
【０００４】
図１は、ＰＵＦに基づく固有情報生成部１１０と、それを用いた認証システムの構成図を示している。認証は、端末機器１５０とサーバ１６０との間で行われる。端末機器１５０における認証部１００は、固有情報生成部１１０とインターフェース１４０を含む。
【０００５】
固有情報生成部１１０は、デバイス物理情報生成部１２０と物理情報マッピング部１３０とを含む。
【０００６】
デバイス物理情報生成部１２０は、通常、端末機器の構成要素として元々存在するデバイスを利用する。
【０００７】
物理情報マッピング部１３０は、デバイス物理情報生成部１２０で得られる情報を必要に応じて変換して、機器固有情報を生成する。
【０００８】
インターフェース１４０は、サーバ１６０とのインターフェースの処理を行い、必要に応じて機器固有情報を秘密情報として暗号化や認証アルゴリズムも実行する。
【０００９】
製造過程で不可避的に発生する配線遅延のランダムネスを利用する方式については下記の非特許文献１に開示されている。
【００１０】
Static Random Access Memory（ＳＲＡＭ）を用いる方式は、ＳＲＡＭの電源投入時の各ビットの初期値がランダムになることを利用する。これは例えば下記の非特許文献２に開示されている。
【００１１】
このとき、図１に示すデバイス物理情報生成部１２０への入力情報はＳＲＡＭの所定の領域内の値が１である全ビットの位置となる。このとき物理情報マッピング部１３０は、入力情報として与えられた、値が１であるビット位置の電源投入時の初期値を単に出力する。機器端末の認証の初期設定フェーズでは、初期設定処理として、端末機器で事前にこのビット位置の電源投入時の初期値を生成してサーバに登録しておく。認証フェーズでは、端末機器でそのときに生成したビット位置の電源投入時の初期値を、サーバは受信して、これを初期設定フェーズで登録しておいてあるビット位置の電源投入時の初期値と照合する。
【００１２】
特許文献１では、ＳＲＡＭだけではなく、Dynamic Random Access Memory （ＤＲＡＭ）に対しても、同様の手法で固有情報生成を行うことが可能なことを述べている。ＤＲＡＭは素子を構成するキャパシタ（コンデンサ）の電荷の有無によって０または１の値のビットを表現する。時間が経つと、リーク電流のために、キャパシタに蓄積されている電荷が消失するため、ＤＲＡＭは定期的に読み出しを行って、読み出した値に基づいて、キャパシタに電荷を再チャージするリフレッシュ処理が必須となる。各素子の電荷消失速度は予測困難なばらつきを持つと考えられる。この特性を固有情報生成に利用することができる。
【００１３】
ＤＲＡＭで生成する機器固有情報を利用した端末機器の認証においては、次のことが行われる。初期設定処理としてリフレッシュ処理をある程度の時間停止して電荷保持のビット値（典型的には’１’）から反転するビット（以下、単に“反転ビット”と呼ぶ）（リフレッシュ停止により反転するビット）の位置をサーバに事前に登録しておく。認証時には端末機器で同様に、改めて行うリフレッシュ停止により反転するビットの位置をサーバは受信して、これを初期設定で登録したビット位置と照合することによって認証を行う。
【００１４】
このような、ＤＲＡＭを用いたデバイス固有情報生成では、早期の反転ビットの情報量でその出力の情報量が抑えられるため、この反転ビットの位置に関する情報を直接に用いて認証を行うのではなく、その情報を暗号化やハッシュ関数の秘密鍵として利用することが一般的となる。反転ビットの位置情報を秘密鍵として利用する際には、通常、初期設定フェーズと鍵生成フェーズの２種類のフェーズの処理が必要となる。
【００１５】
ＤＲＡＭ  ＰＵＦにおいて、初期設定フェーズでは早期に反転する一定個数のビットを特定し、その反転ビットの位置情報（インデックス）に基づいて秘密鍵を決定する。鍵生成フェーズは、秘密鍵を利用する際に実行され、リフレッシュ処理を停止して、初期の反転ビットを求めて初期設定の反転ビットを推定して秘密鍵を生成する。秘密鍵生成フェーズにおいて初期設定フェーズの反転ビット以外の反転ビットが得られ、初期設定フェーズの反転ビット以外の反転ビットはノイズとなる。このようなノイズに対しても安定して秘密鍵を生成するためには誤り訂正符号が利用される。その適用方法としては例えばFuzzy vaultと呼ばれるスキームが知られている。Fuzzy vaultは下記の非特許文献３に示されている。
【先行技術文献】
【特許文献】
【００１６】
【特許文献１】特表２００９−５３３７４１
【非特許文献】
【００１７】
【非特許文献１】G. E. Shu and S. Devadas, “Physically Unclonable Functions for Device Generation and Secret Key Generation,” Proc. 44th Design Automation Conference, pp.9-14.
【非特許文献２】Daniel E. Holcomb, Wayne P. Burleson, and Kevin Fu, “Power-Up SRAM State as an Identifying Fingerprint and Source of True Random Numbers,” IEEE Trans. Computers, vol.58, no.9, pp.1198-1210, 2009.
【非特許文献３】A. Juels and M. Sudan, “A Fuzzy Vault Scheme”, International Symposium on Information Theory, p.408, 2002
【発明の概要】
【発明が解決しようとする課題】
【００１８】
ＤＲＡＭの各素子の電荷保持特性は温度の影響を大きく受ける。最初の一定数もしくは一定範囲の個数の反転ビットを確定するためのリフレッシュ停止時間は温度によって大きく異なる。反転ビット数を増やしたいときにも読み出し処理によって電荷はチャージされるために、反転ビット数を増やすためには、リフレッシュ停止処理を最初からリトライする必要がある。リトライを何度か繰り返すケースも想定され、このとき実行時間も大きくなる。ＤＲＡＭを用いて固有情報生成の実行時間を短縮するためには、温度に合わせた適切なリフレッシュ処理停止時間の設定が求められる。
【００１９】
そこで、本発明は、デバイスの温度によって変動しやすい測定対象を基に、そのデバイスの固有情報を生成する場合において、短時間で固有情報を生成することを可能とするデバイス固有情報生成装置及びデバイス固有情報生成方法を提供することを目的とする。
【課題を解決するための手段】
【００２０】
本発明によれば、デバイスの固有情報を生成するデバイス固有情報生成装置であって、テスト時間だけリフレッシュを停止するテスト処理を行ない、該テスト処理により生じた反転ビットの数であるテスト処理反転ビット数に基づいて、前記固有情報を生成するために必要な反転ビット数である想定反転ビット数に対応したリフレッシュの停止の時間を決定するリフレッシュ停止時間決定手段と、前記決定したリフレッシュの停止時間を適用したリフレッシュ停止により得られる反転ビットに関する情報に基づいて前記固有情報を生成する固有情報生成手段と、を備えることを特徴とするデバイス固有情報生成装置が提供される。
【００２１】
また、本発明によれば、デバイスの固有情報を生成するデバイス固有情報生成方法であって、テスト時間だけリフレッシュを停止するテスト処理を行ない、該テスト処理により生じた反転ビットの数であるテスト処理反転ビット数に基づいて、前記固有情報を生成するために必要な反転ビット数である想定反転ビット数に対応したリフレッシュの停止の時間を決定するリフレッシュ停止時間決定ステップと、前記決定したリフレッシュの停止時間を適用したリフレッシュ停止により得られる反転ビットに関する情報に基づいて前記固有情報を生成する固有情報生成ステップと、を有することを特徴とするデバイス固有情報生成方法が提供される。
【００２２】
更に、本発明によれば、コンピュータを、デバイスの固有情報を生成するデバイス固有情報生成装置として機能させるためのデバイス固有情報生成用プログラムであって、コンピュータを、テスト時間だけリフレッシュを停止するテスト処理を行ない、該テスト処理により生じた反転ビットの数であるテスト処理反転ビット数に基づいて、前記固有情報を生成するために必要な反転ビット数である想定反転ビット数に対応したリフレッシュの停止の時間を決定するリフレッシュ停止時間決定手段と、前記決定したリフレッシュの停止時間を適用したリフレッシュ停止により得られる反転ビットに関する情報に基づいて前記固有情報を生成する固有情報生成手段と、として機能させるためのデバイス固有情報生成用プログラムが提供される。
【発明の効果】
【００２３】
本発明によれば、デバイスの温度によって変動しやすい固有情報を生成する場合において、短時間で固有情報を生成することが可能となる。
【図面の簡単な説明】
【００２４】
【図１】一般の機器固有情報生成方式のブロック図である。
【図２】本発明の実施形態によるデバイス固有情報生成装置の構成を表すブロック図である。
【図３】本発明の実施形態によるリフレッシュ停止時間テーブルの構成を表す図である。
【図４】本発明の実施形態によるデバイス固有情報生成装置により行われるデバイス固有情報生成方法に含まれる初期設定フェーズの工程を説明するためのフローチャートである。
【図５】本発明の実施形態によるデバイス固有情報生成装置により行われるデバイス固有情報生成方法に含まれる鍵生成フェーズの工程を説明するためのフローチャートである。
【図６】本発明の実施形態によるリフレッシュ停止時間テーブルの一例である。
【図７】本発明の実施形態によるデバイス固有情報生成装置の主要部の構成を示すブロック図である。
【図８】ＤＲＡＭにおけるリフレッシュ処理停止時間と反転ビット数の実験例を示すグラフである。
【発明を実施するための形態】
【００２５】
以下、図面を参照して本発明を実施するための形態について詳細に説明する。
【００２６】
図２は、本発明の実施の形態を表しており、図１のデバイス物理情報生成部１２０に対応するデバイス物理情報生成部２００は、ＤＲＡＭデバイス２１０、Ｒ／Ｗコントローラ(Read/Write Controller)２２０，リフレッシュ処理制御部２３０を含む。リフレッシュ処理制御部２３０はリフレッシュ停止時間テーブル２４０を構成要素として含む。
【００２７】
Ｒ／Ｗコントローラ２２０は、ＤＲＡＭデバイス２１０に対するデータの読み出し（Ｒｅａｄ）及び書き込み（Ｗｒｉｔｅ）を実行する。ＤＲＡＭデバイス２１０とＲ／Ｗコントローラ２２０（リフレッシュ処理込み）を含むものが通常のＤＲＡＭ構成となる。
【００２８】
リフレッシュ処理制御部２３０は、ＤＲＡＭデバイス２１０を固有情報生成に利用するときのリフレッシュ処理の停止時間の制御をＲ／Ｗコントローラ２２０に対して実行する。
【００２９】
物理情報マッピング部２５０は、図１の物理情報マッピング部１３０に対応するものであり、リフレッシュ処理停止で発生した反転ビットを特定し、反転ビットの位置情報（インデックス）を基に、機器固有情報として利用するビット列を生成する処理を行う。秘密鍵生成に利用する場合には、初期設定フェーズにおいては、リフレッシュ停止処理により発生した反転ビットを特定して、反転ビット位置情報に基づいて、鍵生成フェーズでの誤り訂正に必要な冗長データ（ｈｅｌｐｅｒ  ｄａｔａと呼ばれる）を生成・格納する。そして、鍵生成フェーズにおいては、鍵生成フェーズで実行されるリフレッシュ停止処理により得られる反転ビットの位置情報の他に、初期設定フェーズで生成した冗長データも用いて秘密鍵を生成する処理を実行する。
【００３０】
図３は、本発明の実施形態におけるリフレッシュ停止時間テーブル２４０の構成の一例を示している。
【００３１】
左端から２列目の”テスト処理反転ビット数”の欄は各温度における一定時間リフレッシュ処理を停止するテスト処理によって発生する反転ビット数の見積もりを示している。ここでの一定時間を「テストリフレッシュ停止時間」ということにする。
【００３２】
左端から３列目の“初期設定フェーズリフレッシュ停止時間”の欄は各温度での初期設定フェーズにおけるリフレッシュ停止時間を示している。リフレッシュ停止時間は初期設定フェーズにおいて想定する反転ビットの個数にも依存する。つまり、初期設定フェーズにおいて、想定される一定の反転ビット数（以下、「想定反転ビット数」という。）を得るための各温度におけるリフレッシュ停止時間が”初期設定フェーズリフレッシュ停止時間”である。
【００３３】
右端から４列目から右端列までの４個の列にわたる“鍵生成フェーズリフレッシュ停止時間”の欄は、鍵生成フェーズにおけるリフレッシュ停止時間を示している。このリフレッシュ停止時間は、初期設定フェーズ実行時の温度と鍵生成フェーズ実行時の温度の組に依存する。
【００３４】
一般に、初期設定フェーズの温度と鍵生成フェーズの温度との間の温度差が大きいほど、鍵生成フェーズでは多くの反転ビットが必要になる。従って、鍵生成フェーズ実行時の温度のみならず、初期設定フェーズ実行時の温度も、鍵生成フェーズにおけるリフレッシュ処理停止時間の決定のための要素となる。このために、鍵生成フェーズにおけるリフレッシュ停止時間は、鍵生成フェーズ実行時の温度のみならず、初期設定フェーズ実行時の温度に応じて設定される。
【００３５】
なお、初期設定フェーズ実行時の温度は、その直前のテスト処理実行時の温度と等しく、鍵設定フェーズ実行時の温度は、その直前のテスト処理実行時の温度と等しいものとする。
【００３６】
図３では、初期設定フェーズにおける反転ビット数が符号３０１で示すように、ｎ３であり、これに基づいて、初期設定フェーズ実行時の温度がＴ３であると推定されたとき、つまり、初期設定フェーズにおけるテスト処理の反転ビット数がｎ３のときには、鍵生成フェーズで、ｎ３に対応したＴ３に対応する列に含まれる何れかのセルを使用することを符号３０２で示す楕円で示している。従って、初期設定フェーズで得たｎ１を鍵生成フェーズまで保存しておく。
【００３７】
鍵生成フェーズでは、初期設定フェーズでのテスト処理により得られる反転ビット数が列を決定し、鍵生成フェーズでのテスト処理により得られる反転ビット数が行を決定し、決定した列と決定した行で特定されるセルにある時間が、鍵生成フェーズにおけるリフレッシュ停止時間として利用される。
【００３８】
リフレッシュ停止時間テーブル２４０は、典型的にはデバイスサンプルから事前に生成しておく。
【００３９】
図４は、本発明の実施形態によるデバイス固有情報生成装置により行われるデバイス固有情報生成方法の初期設定フェーズに含まれる工程のフローを示している。
【００４０】
Ｒ／Ｗコントローラ２２０は、ＤＲＡＭにおける固有情報生成領域のすべてのビットのチャージ処理を実行する（ステップ４２０）。典型的にはすべてのビットに’１’を書き込むことで実行される。
【００４１】
リフレッシュ制御部２３０はテストリフレッシュ停止時間だけリフレッシュ処理を停止する（ステップ４３０）。ここで、テストリフレッシュ停止時間は、あらかじめ決まっている。
【００４２】
ステップ４３０のリフレッシュ処理停止後、Ｒ／Ｗコントローラ２２０は固有情報生成領域のビット値を読み出す（ステップ４４０）。
【００４３】
リフレッシュ制御部２３０はステップ４４０で読み出した各ビット値を基に、反転ビット（’０’となったビット）の個数（反転ビット数）を求め、後に鍵生成フェーズで用いるために、その反転ビット数を「初期設定フェーズテスト処理反転ビット数」として保持する。そして、初期設定フェーズテスト処理反転ビット数に基づいて、リフレッシュ停止時間テーブル２４０を用いて、初期設定フェーズのためのリフレッシュ停止時間（以下、「初期設定フェーズリフレッシュ停止時間」という。）を決定する（ステップ４５０）。すなわち、左端から２列目の”テスト処理反転ビット数”が、実際のテストリフレッシュ停止処理により得られた初期設定フェーズテスト反転ビット数に最も近い行をリフレッシュ停止時間テーブル２４０から探し、その行の左端から３列目の”初期設定フェーズリフレッシュ停止時間”を、決定初期設定フェーズリフレッシュ停止時間とする。ここで、その行の左端列の”現在温度”が、初期設定フェーズ温度となる。原理的には、”初期設定フェーズテスト処理反転ビット数”から初期設定フェーズ温度を推定し、その推定された初期設定フェーズ温度に対応する”初期設定フェーズリフレッシュ停止時間”を”決定初期設定フェーズリフレッシュ停止時間”として求めるが、動作的には、リフレッシュ停止時間テーブル２４０において、実際のテスト処理により得られた初期設定フェーズテスト反転ビット数に最も近い、左から２列目の”テスト処理反転ビット数”に対応する”初期設定フェーズリフレッシュ停止時間”を求めることとなる。
【００４４】
次に、Ｒ／Ｗコントローラ２２０はＤＲＡＭにおける固有情報生成領域のすべてのビットのチャージ処理を実行することによりすべてのビットを初期状態に戻す（ステップ４６０）。
【００４５】
リフレッシュ制御部２３０はステップ４５０で決定された”初期設定フェーズリフレッシュ停止時間”だけリフレッシュ処理を停止する（ステップ４７０）。
【００４６】
ステップ４７０のリフレッシュ処理停止後、Ｒ／Ｗコントローラ２２０は固有情報生成領域の各ビットのビット値を読み出す（ステップ４８０）。
【００４７】
ステップ４８０で得られた反転ビットの位置情報（インデックス）を用いて物理情報マッピング部１３０は固有情報を確定するとともに、鍵生成フェーズでの誤り訂正に必要な冗長データ（ｈｅｌｐｅｒ  ｄａｔａと呼ばれる）を生成して格納する（ステップ４９０）。
【００４８】
図５は、本発明の実施形態によるデバイス固有情報生成装置により行われるデバイス固有情報生成方法の鍵生成設定フェーズに含まれる工程のフローを示している。
【００４９】
ステップ５２０から５４０のテスト処理は、初期設定フェーズのステップ４２０から４４０までと同様である。
【００５０】
Ｒ／Ｗコントローラ２２０は、ＤＲＡＭにおける固有情報生成領域のすべてのビットのチャージ処理を実行する（ステップ５２０）。典型的にはすべてのビットに’１’を書き込むことで実行される。
【００５１】
リフレッシュ制御部２３０はテストリフレッシュ停止時間だけリフレッシュ処理を停止する（ステップ５３０）。
【００５２】
ステップ５３０のリフレッシュ処理停止後、Ｒ／Ｗコントローラ２２０は固有情報生成領域のビット値を読み出す（ステップ５４０）。
【００５３】
リフレッシュ制御部２３０はステップ５４０で読み出した各ビット値を基に、反転ビット（’０’となったビット）の個数（反転ビット数）を求め、その反転ビット数を「鍵生成フェーズテスト処理反転ビット数」として保持する。そして、リフレッシュ制御部２３０は鍵生成フェーズテスト処理反転ビット数から現在の温度を鍵生成フェーズ実行時の温度として推定する。そして、初期設定フェーズテスト処理反転ビット数と鍵生成フェーズテスト処理反転ビット数に基づいて、リフレッシュ停止時間テーブル２４０を用いて、鍵生成フェーズ実行時のリフレッシュ停止時間（以下、「鍵生成フェーズリフレッシュ停止時間」という。）を決定する（ステップ５５０）。
【００５４】
ステップ５５０では、具体的には、テーブルの左端から２列目の”テスト処理反転ビット数”が、実際の鍵生成フェーズテストリフレッシュ停止処理により得られた初期設定フェーズテスト反転ビット数に最も近い行を、リフレッシュ停止時間テーブル２４０から探し、その行の左端列の”現在温度”を鍵生成フェーズ温度として求める。そして、リフレッシュ停止時間テーブル２４０の初期設定フェーズ温度毎に設けられた”鍵生成フェーズリフレッシュ停止時間”の複数の列のうち、初期設定フェーズで求めた初期設定フェーズ温度と同一の初期設定フェーズ温度の列を選択列とする。その上で、左端から２列目の”テスト処理反転ビット数”が、鍵生成フェーズテストリフレッシュ停止処理により得られた鍵生成フェーズテスト処理反転ビット数に最も近い行を選択行とする。
【００５５】
そして、リフレッシュ停止時間テーブル２４０の選択列と選択行の組み合わせにより決定されるセルにある”鍵生成フェーズリフレッシュ停止時間”を決定鍵生成フェーズリフレッシュ停止時間とする。
【００５６】
ステップ５６０から５８０の反転ビットを特定する処理は、図４の初期設定フェーズの４６０から４８０と同様である。
【００５７】
Ｒ／Ｗコントローラ２２０はＤＲＡＭにおける固有情報生成領域のすべてのビットのチャージ処理を実行することによりすべてのビットを初期化する（ステップ５６０）。
【００５８】
リフレッシュ制御部２３０はステップ５５０で決定された”鍵生成フェーズリフレッシュ停止時間”だけリフレッシュ処理を停止する（ステップ５７０）。
【００５９】
ステップ５７０のリフレッシュ処理停止後、Ｒ／Ｗコントローラ２２０は固有情報生成領域の各ビットのビット値を読み出す（ステップ５８０）。
【００６０】
ステップ５８０で得られた反転ビットの位置情報（インデックス）とステップ４９０で求めて保持しておいたｈｅｌｐｅｒ  ｄａｔａを用いて、物理情報マッピング部１３０は、ステップ４９０での反転ビットの位置情報（インデックス）と固有情報を推定して秘密鍵を生成する（ステップ５９０）。
【００６１】
初期設定フェーズテスト処理反転ビット数が想定反転ビット数に等しければ、ステップ４６０〜４８０を省略し、ステップ４４０での読出しにより得られる反転ビット位置情報をステップ４８０で得られる反転ビット位置情報の代わりに利用してもよい。
【００６２】
同様に、鍵生成フェーズテスト処理反転ビット数が想定反転ビット数に等しければ、ステップ５６０〜５８０を省略し、ステップ５４０での読出しにより得られる反転ビット位置情報をステップ５８０で得られる反転ビット位置情報の代わりに利用しても良い。
【００６３】
これはリフレッシュ停止時間テーブル２４０の鍵生成フェーズに対応する欄にリフレッシュ停止時間だけでなく想定される反転ビット数も記載しておくことで判断することができる。図６では、この反転ビット数を括弧でくくった数字で表している。
【００６４】
また、ステップ４８０で得られる反転ビット位置情報から求まる反転ビット数が想定反転ビット数と等しくないことが判断された場合には、初期設定フェーズリフレッシュ停止時間を修正して、ステップ４６０からの処理を繰り返す。修正において初期設定フェーズリフレッシュ停止時間をどの程度修正するのかは、反転ビット数と初期設定フェーズリフレッシュ停止時間との関係と両ビット数の差分とに基づいて決定することができる。この繰返しを、上記の両反転ビット数の差分が所定値以下になるまで複数回行なう。
【００６５】
同様に、５９０で秘密鍵の生成に失敗した場合には、鍵生成フェーズリフレッシュ停止時間を修正して、ステップ５６０からの処理を繰り返す。修正において鍵生成フェーズリフレッシュ停止時間をどの程度修正するのかは、反転ビット数と鍵設定フェーズリフレッシュ停止時間との関係とステップ５８０で得られる反転ビット位置情報から求まる反転ビット数と想定反転ビット数との差分とに基づいて決定することができる。この繰返しを、秘密鍵の生成に成功するまで繰り返す。
【００６６】
ステップ４５０で初期設定フェーズテスト処理反転ビット数に基づいて、リフレッシュ停止時間テーブル２４０を用いて、初期設定フェーズリフレッシュ停止時間を求める際に、初期設定フェーズテスト反転ビット数に最も近い”テスト処理反転ビット数”の代わりに、初期設定フェーズテスト反転ビット数以下の最も大きい”テスト処理反転ビット数”を探し、探した”テスト処理反転ビット数”に対応した”初期設定フェーズリフレッシュ停止時間”を求めるようにしてもよい。また、初期設定フェーズテスト反転数ビット以上の最も小さい”テスト処理反転ビット数”を探し、探した”テスト処理反転ビット数”に対応した”初期設定フェーズリフレッシュ停止時間”を求めるようにしてもよい。更に、初期設定フェーズテスト反転ビット数を挟む２つの”テスト処理反転ビット数”にそれぞれ対応した２つの”初期設定フェーズリフレッシュ停止時間”を用いて線形補間することにより得られた時間を決定初期設定フェーズリフレッシュ停止時間としてもよい。線形補間をする代わりに、初期設定フェーズテスト反転ビット数近傍の３個以上の”テスト処理反転ビット数”とそれらにそれぞれ対応した３個以上の”初期設定フェーズリフレッシュ停止時間”を用いて種々の方法により補間をしてもよい。
【００６７】
ステップ５５０で、初期設定フェーズテスト処理反転ビット数と鍵生成フェーズテスト処理反転ビット数に基づいてリフレッシュ停止時間テーブル２４０を用いて鍵生成フェーズリフレッシュ停止時間を求める際に、初期設定フェーズテスト反転ビット数に最も近い”テスト処理反転ビット数”の代わりに、初期設定フェーズテスト反転ビット数以下の最も大きい”テスト処理反転ビット数”を探し、探した”テスト処理反転ビット数”に対応した列を上記の選択列としてもよい。また、初期設定フェーズテスト反転ビット数以上の最も小さい”テスト処理反転ビット数”を探して、探した”テスト処理反転ビット数”に対応した列を上記の選択列としてもよい。更に、”テスト処理反転ビット数”が鍵生成フェーズテスト反転ビット数以下の最も大きい数である列を上記の選択行としてもよいし、”テスト処理反転ビット数”が鍵生成フェーズテスト反転ビット数以上の最も小さい数である列を上記の選択列としてもよい。更に、初期設定フェーズテスト反転ビットを挟む２つの”テスト処理反転ビット数”に対応した２つの列を上記の選択列として、鍵生成フェーズテスト反転ビット数を挟む２つの”テスト処理反転ビット数に対応した２つの行を上記の選択行として、２つの選択列と２つの選択行の組合わせにより決定される４つのセルの”鍵生成フェーズリフレッシュ停止時間”を用いて２次元的な線形補間をすることにより得られた時間を決定鍵生成フェーズリフレッシュ停止時間としてもよい。一般に、初期設定フェーズテスト反転ビット数近傍の２個以上の”テスト処理反転ビット数”にそれぞれ対応した２個以上の列を選択列として、鍵生成フェーズテスト反転ビット数近傍の２個以上の”テスト処理反転ビット数”にそれぞれ対応した２個以上の行を選択行として、２個以上の選択列と２個以上の選択列の組合わせにより決定される４個以上のセルの”鍵生成フェーズリフレッシュ停止時間”を用いて種々の方法により二次元的な補間をしてもよい。なお、補間における定義域は初期設定フェーズテスト処理反転ビット数×鍵生成フェーズテスト処理反転ビット数の二次元であり値域は鍵生成フェーズリフレッシュ停止時間である。
【００６８】
リフレッシュ停止時間テーブル２４０は、典型的にはデバイスサンプルから事前に生成しておくが、ステップ５９０における反転ビットの個数や初期設定フェーズの固有情報のステップ５９０での推定処理の状況からリフレッシュ停止時間テーブル２４０に書き込まれているリフレッシュ停止時間を修正することも考えられる。つまり、実際の反転ビット数が想定される反転ビット数よりも大きければリフレッシュ停止時間が短くなるように修正して上書きすることができる。
【００６９】
このようにＤＲＡＭを用いた固有情報生成で実行時間が長くなるのは、ビット反転時間が長くなる低温の場合である。特に初期設定フェーズが高温で行なわれ、鍵生成フェーズが低温で行なわれる場合には、初期設定フェーズでの比較的多い反転ビット数と同数の反転ビット数を低温で得ることが必要になるために実行時間が特に大きくなる。
【００７０】
これに対して、初期設定のステップ４５０の推定温度に応じて誤り訂正符号化の冗長度を変化させる方法が考えられる。つまり、ステップ４５０で高温であると判断した場合には冗長度を大きくして誤り訂正能力を高くすることにより、低温時の鍵生成フェーズでは少ない反転ビット数でも復号処理（誤り訂正処理）が可能になるようにする。
【００７１】
鍵生成フェーズのステップ５４０で、得られた鍵生成フェーズテスト処理反転ビット数が少なく、これにより、現在の温度が低温であると判断された場合には、即座に又はステップ５９０を実施後、想定反転ビット数を少なくして、そして、これに応じて初期設定フェーズリフレッシュ停止時間を短くして、初期設定フェーズをやり直すことも考えられる。このことによって、鍵生成フェーズが低温で行なわれる場合であっても、鍵生成フェーズリフレッシュ停止時間を長くせずに、鍵生成処理を成功させることができるようになる。
【００７２】
本実施形態では、初期設定フェーズにおいても、鍵生成フェーズにおいても、温度と、想定反転ビット数を得るためのリフレッシュ停止時間との関係を表すリフレッシュ停止時間テーブルを用意し、テスト処理におけるテストリフレッシュ停止時間に対応した反転ビット数を基に現在温度を推定し、リフレッシュ停止時間テーブルによってその現在温度で適切なリフレッシュ停止時間を選択して、そのリフレッシュ停止時間だけリフレッシュを停止することにより得た反転ビット数を想定反転ビット数とほぼ等しくすることができるので、小さなオーバーヘッドで、適切なリフレッシュ停止時間を設定することが可能となり、よって、リフレッシュ停止処理のリトライを減らすことにもなるから、固有情報生成の実行時間を短縮することが可能になる。
【００７３】
また、テスト処理を導入することによって、温度センサーが不要になるとともに、電荷の消失速度の高低の個体差も吸収して、リフレッシュ停止時間を適切にすることができる。
【００７４】
次に、図７を参照して、本発明の実施形態によるデバイス固有情報生成装置の主要部の構成について説明をする。
【００７５】
図７を参照すると、この主要部は、リフレッシュ制御部２３０、物理情報マッピング部２５０及び実行制御部２５５を含む。
【００７６】
リフレッシュ制御部２３０は、リフレッシュ停止時間決定部２３１、リフレッシュ停止時間テーブル２４０およびリフレッシュ停止処理実行部２３７を含む。
【００７７】
リフレッシュ停止時間決定部２３１は、テスト処理実行部２３２、反転ビット数取得部２３３、初期設定フェーズテスト処理反転ビット数保持部２３４、初期設定フェーズリフレッシュ停止時間決定部２３５及び鍵生成フェーズリフレッシュ停止時間決定部２３６を含む。
【００７８】
リフレッシュ停止時間テーブル２４０は、第１テーブル２４１及び第２テーブル２４２を含む。
【００７９】
物理情報マッピング部２５０は、反転ビット情報取得部２５１、冗長データ生成・保持部２５２、固有情報生成コア部２５３及び冗長度変更部２５４を含む。
【００８０】
なお、機能的には、リフレッシュ停止処理実行部２３７、反転ビット情報取得部２５１、冗長データ生成・保持部２５２、固有情報生成コア部２５３及び冗長度変更部２５４を含むものが、固有情報生成部２５７を構成する。
【００８１】
テスト処理実行部２３２は、初期設定フェーズにおけるテスト処理と、鍵生成フェーズにおけるテスト処理を実行する。
【００８２】
反転ビット数取得部２３３は、初期設定フェーズにおけるテスト処理により生じた反転ビットの数及び鍵生成フェーズにおけるテスト処理により生じた反転ビットの数を取得する。
【００８３】
初期設定フェーズテスト処理反転ビット数保持部２３４は、反転ビット数取得部２３３が取得した、初期設定フェーズにおけるテスト処理により生じた反転ビットの数を保持する。
【００８４】
初期設定フェーズリフレッシュ停止時間決定部２３５は、反転ビット数取得部２３３が取得した、初期設定フェーズにおける反転ビット数の数と、第１テーブル２４１とを基に、初期設定フェーズに適用するリフレッシュ停止時間を決定する。
【００８５】
鍵生成フェーズリフレッシュ停止時間決定部２３６は、初期設定フェーズテスト処理反転ビット数保持部２３４が保持している、初期設定フェーズにおけるテスト処理により生じた反転ビットの数と、反転ビット数取得部２３３が取得した、鍵生成フェーズにおけるテスト処理により生じた反転ビットの数と、第２テーブルとを基に、鍵生成フェーズに適用するリフレッシュ停止時間を決定する。
【００８６】
リフレッシュ停止処理実行部２３７は、テスト処理におけるリフレッシュ処理と、決定されたリフレッシュ停止時間を適用してのリフレッシュ停止処理を実行する。
【００８７】
第１テーブル２４１は、初期設定フェーズテスト処理により得られた反転ビットの数と、初期設定フェーズのリフレッシュ停止処理に適用するリフレッシュ停止時間との対応関係を保持し、具体的には、テーブル全体が、図３に示すようなものである場合には、図３に示す表の左から第２列と第３列より構成される。
【００８８】
第２テーブル２４２は、初期設定フェーズテスト処理により得られた反転ビットの数と、鍵生成フェーズテスト処理により得られた反転ビットの数と、鍵生成フェーズのリフレッシュ停止処理に適用するリフレッシュ停止時間との対応関係を保持し、具体的には、テーブル全体が、図３に示すようなものである場合には、図３に示す表の左から第２列と第４乃至７列より構成される。
【００８９】
反転ビット情報取得部２５１は、初期設定フェーズにおけるリフレッシュ停止処理により得られた反転ビットに関する情報（どのビットが反転したかという情報）と、鍵生成フェーズにおけるリフレッシュ停止処理により得られた反転ビットに関する情報を取得する。
【００９０】
冗長データ生成・保持部２５２は、反転ビット情報取得部２５１が取得した、初期設定フェーズにおけるリフレッシュ処理により得られた反転ビットに関する情報を基に、固有情報に対する誤り訂正符号の冗長データを生成し、それを保持する。
【００９１】
固有情報生成コア部２５３は、鍵生成フェーズにおけるリフレッシュ停止処理により得られた反転ビットに関する情報と、冗長データに基づいて、固有情報を生成する。
【００９２】
実行制御部２５５は、デバイス固有情報生成装置の全体の動作を制御する。また、実行制御部２５５は、鍵生成フェーズテスト処理により生じた反転ビットの数が所定数以下である場合には、初期設定フェーズからやり直すための制御も行う。
【実施例１】
【００９３】
同一の10個の64MビットSynchronous DRAM (SDRAM)を用いた実験結果を利用して実施例を述べる。
【００９４】
図８は、その中の一つのSDRAMに対するリフレッシュ処理の停止時間と反転ビット数の関係を示している。同一のリフレッシュ処理停止時間でも温度によって反転ビットの個数が大きく異なることがわかる。テスト処理のリフレッシュ処理停止時間を5秒とすると−5、25、45、65℃における反転ビット数は図８ではそれぞれ0, 25, 500, 7000個程度となっている。テスト処理では逆に5秒間のリフレッシュ停止処理での反転ビット数から現在の温度を推定する。リフレッシュ停止時間テーブルにおいて上記の4個の温度設定がなされていてテスト処理において100個の反転ビットが生じた場合には25℃と45℃の間の温度と推定する。リフレッシュ停止時間の算出は次のように行う。
【００９５】
テスト処理で得られた反転ビット数nに対してリフレッシュ停止時間テーブルの隣接するテスト処理反転ビット数n1, n2をn1 < n < n2となるように選択する。n1, n2に対応する初期設定フェーズのリフレッシュ停止時間をJ1, J2とおく。線形補間を用いる場合にはリフレッシュ停止時間Jは次のように設定する。
【００９６】
[式1]  J = (n2 - n)/(n2 - n1) * J1 + (n - n1)/(n2 - n1) * J2
上記のn = 100 (n1 = 25, n2 = 500)の例では
J = (500 - 100)/(500 - 25) × J1 + (100 - 25)/(500 - 25) × J2
= 400/475 × J1 + 75/475 × J2
となる。
【００９７】
次に、DRAMの早期反転ビットの位置（インデックス）情報から秘密鍵を生成する方式の例として、非特許文献３に挙げたfuzzy vaultを適用した場合を説明する。サイズq=2^{L}のDRAMの各ビットはLビットのインデックスで表すことができる。このインデックスをガロア体GF(q)の元と対応付ける。Fuzzy vaultはL, qのほかにt, r, k, sという4個のパラメータで指定される。
【００９８】
[初期設定フェーズ]
a1) 図4のステップ420-490でt個の反転ビットa_{1},…,a_{t}を確定する。この集合をB1とおく。
【００９９】
a2) GF(q)上の多項式f(x) (deg(f) <k)を秘密情報として用意する。
【０１００】
a3) A=B1とおいて、GF(q)×GF(q)の元から成る集合
V = {(a_{1},f(a_{1})), …,(a_{t}, f(a_{t}))}
を設定する。
【０１０１】
a4) j= t + 1から rまで次の処理を繰り返す。 
【０１０２】
a4-1) Aには属さないGF(q)の元a_{j}をランダムに選ぶ
a4-2) c_{j}≠ f(a_{j})となるようにc_{j}をランダムに選ぶ。
【０１０３】
a4-3) A← A  ∪{a_{j}},  V← V ∪ {(a_{j}, c_{j})}.
a5) Vをhelper dataとして保持する。
【０１０４】
ステップa5)のVはvault, ステップa4-2)の(a_{j}, c_{j})はchaff dataと呼ばれている。
【０１０５】
鍵生成フェーズは次のようになる。
【０１０６】
[鍵生成フェーズ]
b1) ステップ520-590によってs個の反転ビットa'_{1},…,a'_{s}を特定する。
【０１０７】
b2) a'_{j}でステップa5)のVの元の第一成分に一致するものを特定する。
【０１０８】
b3) ステップb2)で一致したVの元から復号処理を実行してfを推定する。
【０１０９】
r, k, tは情報量を決めるパラメータとなる。また、ステップb2)でB1に対応する元と一致した個数をm, B1以外に対応する元と一致した個数をeとする。ステップb3)ではm ≧ k, e ≦ (m - k)/2が成り立つときに正しくfを推定することができる。ステップb1)のsを大きくすることによってmを大きくすることができるが、eも大きくなることに注意する。
【０１１０】
初期設定フェーズでは、なるべく早期のt個の反転ビットを特定する。ここで、ｔを初期設定フェーズ想定反転ビット数ということにする。このためテスト処理において、初期設定フェーズ想定反転ビット数tと比較してかなり大きな反転ビット数が生じたときには逆にリフレッシュ停止時間を小さく設定して反転ビット数が初期設定フェーズ想定反転ビット数tに近い値となるように初期設定フェーズのリフレッシュ停止時間を設定する。実験で用いたSDRAMで初期設定フェーズ想定反転ビット数t = 20に対応する初期設定フェーズリフレッシュ停止時間の見積もりは−5, 25, 45, 65℃でそれぞれ22, 6, 2, 1秒程度となった。今回の実験でテスト処理の反転ビット数n = 100のときには、[式1]に、n = 100, n1 = 25, n2 = 500, J1 = 6(秒), J2 = 2(秒)を代入して、初期設定フェーズリフレッシュ停止時間Jは、J = 400/475  * 6 + 75/475 *2 = 5.4(秒)と設定する。初期設定フェーズの温度情報を保持するデータとしては、初期設定フェーズにおけるテスト処理での実際の反転ビット数nを保持すれば十分となる。実際の初期設定フェーズリフレッシュ停止時間は、初期設定フェーズにおけるテスト処理のリフレッシュ停止時間である5秒を合わせて27, 11, 7, 6秒と評価することが適切となる。
【０１１１】
鍵生成フェーズ想定反転ビット数sは初期設定フェーズ実行時の温度にも依存し、初期設定フェーズ実行時の温度と鍵生成フェーズ実行時の温度との温度差が大きいほど鍵生成フェーズ想定反転ビット数sは大きくなる。鍵生成フェーズ想定反転ビット数sが大きくなると、上記Fuzzy Vaultのステップb2)でエラーとなるchaff dataが選ばれることも多くなるので、鍵生成フェーズ想定反転ビット数sは、上記の集合B1と鍵生成フェーズの反転ビットの集合との積集合が第１所定サイズ以上となり、且つ、上記の集合B1の補集合と鍵生成フェーズの反転ビットの集合の積集合（ノイズとして扱われる集合）が第２所定サイズ以下となるように設定し、これにより正しい鍵が生成できるようにすることが望まれる。鍵生成フェーズ想定反転ビット数ｓは、テーブルにある鍵生成フェーズリフレッシュ停止時間に暗に含まれるものであり（図６のテーブルでは括弧に囲まれて示されており）、従って、上記の集合B1と鍵生成フェーズの反転ビットの集合の積集合が第１所定サイズ以上となり、且つ、上記の集合B1の補集合と鍵生成フェーズの反転ビットの集合の積集合（ノイズとして扱われる集合）が第２所定サイズ以下となるように、鍵生成フェーズリフレッシュ停止時間を設定することが望まれる。また、初期設定フェーズリフレッシュ停止時間は、集合B1を左右するものであり、従って、集合B1と鍵生成フェーズの反転ビットの集合の積集合が第１所定サイズ以上となり、且つ、上記の集合B1の補集合と鍵生成フェーズの反転ビットの集合の積集合（ノイズとして扱われる集合）が第２所定サイズ以下となるように、初期設定フェーズリフレッシュ停止時間を設定することが望まれる。
【０１１２】
このように、鍵生成フェーズ想定反転ビット数sを決定したのちに、各温度で鍵生成フェーズ想定反転ビット数sを達成する鍵生成フェーズリフレッシュ停止時間を求めることで、本実施形態における鍵生成フェーズリフレッシュ処理停止時間が決定される。
【０１１３】
図６は、このように決定したリフレッシュ停止時間を設定したときのリフレッシュ停止時間テーブルの例である。鍵生成フェーズリフレッシュ停止時間の欄の()の数字は想定する反転ビット数（鍵生成フェーズ想定反転ビット数）sである。例えば、初期設定フェーズにおいてテスト処理の反転ビット数n ≒ 25であり、鍵生成フェーズにおけるテスト処理の反転ビット数n’≒ 500である場合を例にとる。この例の場合、初期設定フェーズリフレッシュ停止時間を、初期設定フェーズにおけるテスト処理反転ビット数n' ≒25に対応する6秒に設定し、鍵生成フェーズリフレッシュ停止時間を鍵生成フェーズの25℃の列、45℃の行に示される2.2秒(反転ビット数25)と設定する。一般に、これをリフレッシュ停止時間に反映させると次のようになる。
【０１１４】
初期設定フェーズのステップ420-440のテスト処理で得られた反転ビット数nに対してリフレッシュ停止時間テーブルの隣接するテスト処理反転ビット数n1, n2をn1 < n < n2となるように選択する。また、鍵生成フェーズのステップ520-540のテスト処理で得られた反転ビット数n’に対してリフレッシュ停止時間テーブルの隣接するテスト処理反転ビット数n1’, n2’をn1’ < n’ < n2’となるように選択する。T(n1’, n1)を前述の２つのテスト処理（初期設定フェーズにおけるテスト処理と鍵生成フェーズにおけるテスト処理）の反転ビット数n1, n1’に対応する鍵生成フェーズのリフレッシュ処理停止時間を表すとする。T(n1’, n2), T(n2’, n1), T(n2’, n2)も同様に表すとする。このとき二次元的な線形補間を用いるとリフレッシュ停止時間Jは[式2]で求められる。
【０１１５】
[式2]
J1’ = (n2 - n)/(n2 - n1) * T(n1’, n1)
+ (n - n1)/(n2 - n1) * T(n1’, n2),
J2’ = (n2 - n)/(n2 - n1) * T(n2’, n1)
+ (n - n1)/(n2 - n1) * T(n2’, n2),
J = (n2’- n’)/(n2’- n1’) * J1’
+ (n’- n1’)/(n2’- n1’) * J2’
例えば、図６で初期設定フェーズn = 100 (n1 = 25, n2 = 500), 鍵生成フェーズn’ = 300 (n1’= 25, n2’= 500)の場合は、J1’= 6.3, J2’= 2.16、  従って、 J = 3.9 (秒)となる。鍵生成フェーズ全体でのリフレッシュ処理停止時間はテスト処理の5秒を合わせて8.9秒と評価される。
【０１１６】
なお、上記のデバイス固有情報生成装置は、ハードウェア、ソフトウェア又はこれらの組合わせにより実現することができる。また、上記のデバイス固有情報生成装置により行なわれるデバイス固有情報生成方法も、ハードウェア、ソフトウェア又はこれらに組合わせにより実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。
【０１１７】
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（ｔａｎｇｉｂｌｅ  ｓｔｏｒａｇｅ  ｍｅｄｉｕｍ）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば、光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【０１１８】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【０１１９】
（付記１）
デバイスの固有情報を生成するデバイス固有情報生成装置であって、
テスト時間だけリフレッシュを停止するテスト処理を行ない、該テスト処理により生じた反転ビットの数であるテスト処理反転ビット数に基づいて、前記固有情報を生成するために必要な反転ビット数である想定反転ビット数に対応したリフレッシュの停止の時間を決定するリフレッシュ停止時間決定手段と、
前記決定したリフレッシュの停止時間を適用したリフレッシュ停止により得られる反転ビットに関する情報に基づいて前記固有情報を生成する固有情報生成手段と、
を備えることを特徴とするデバイス固有情報生成装置。
【０１２０】
（付記２）
付記１に記載のデバイス固有情報生成装置であって、
前記テスト処理反転ビット数と、リフレッシュの停止の時間との対応関係を保持したテーブルを更に備え、
前記リフレッシュ停止時間決定手段は、前記テスト処理反転ビット数と、前記テーブルとを基に、前記リフレッシュの停止の時間を決定することを特徴とするデバイス固有情報生成装置。
【０１２１】
（付記３）
付記２に記載のデバイス固有情報生成装置であって、
前記テーブルでの対応関係に係る前記テスト処理反転ビット数は、前記テスト処理実行時の温度と前記テスト時間とに対応したものであり、
前記テーブルでの対応関係に係る前記リフレッシュの停止の時間は、前記テスト処理実行時の温度と前記想定反転ビット数とに対応したものであることを特徴とするデバイス固有情報生成装置。
【０１２２】
（付記４）
付記１に記載のデバイス固有情報生成装置であって、
前記固有情報生成手段は、前記固有情報を、初期設定フェーズにおけるリフレッシュの停止により得られる反転ビットに関する情報と、鍵生成フェーズにおけるリフレッシュの停止により得られる反転ビットに関する情報とに基づいて生成し、
前記リフレッシュ停止時間決定手段は、
前記初期設定フェーズにおいてテスト時間だけリフレッシュを停止する初期設定フェーズテスト処理を行ない、該初期設定フェーズテスト処理により生じた反転ビットの数である初期設定フェーズテスト処理反転ビット数に基づいて、前記固有情報を生成するために必要な反転ビット数である初期設定フェーズ想定反転ビット数に対応したリフレッシュの停止の時間を決定する初期設定フェーズリフレッシュ停止時間決定手段と、
前記鍵生成フェーズにおいてテスト時間だけリフレッシュを停止する鍵生成フェーズテスト処理を行ない、該鍵生成フェーズテスト処理により生じた反転ビットの数である鍵設定フェーズテスト処理反転ビット数と、前記初期設定フェーズテスト処理反転ビット数とに基づいて、前記固有情報を生成するために必要な反転ビット数である鍵生成フェーズ想定反転ビット数に対応したリフレッシュの停止の時間を決定する鍵生成フェーズリフレッシュ停止時間決定手段と、
を備えることを特徴とするデバイス固有情報生成装置。
【０１２３】
（付記５）
付記４に記載のデバイス固有情報生成装置であって、
前記初期設定フェーズテスト処理反転ビット数と、リフレッシュの停止の時間との対応関係を保持した第１のテーブルと、
前記初期設定フェーズテスト処理反転ビット数と前記鍵設定フェーズテスト処理反転ビット数との組合わせと、リフレッシュの停止の時間との対応関係を保持した第２のテーブルと、
を更に備え、
前記初期設定フェーズリフレッシュ停止時間決定手段は、前記初期設定フェーズテスト処理反転ビット数と、前記第１のテーブルとを基に、前記初期設定フェーズ想定反転ビット数に対応したリフレッシュの停止の時間を決定し、
前記鍵生成フェーズリフレッシュ停止時間決定手段は、前記初期設定フェーズテスト処理反転ビット数と、前記鍵生成フェーズテスト処理反転ビット数と、前記第２テーブルとを基に、前記鍵生成フェーズ想定反転ビット数に対応したリフレッシュの停止の時間を決定することを特徴とするデバイス固有情報生成装置。
【０１２４】
（付記６）
付記５に記載のデバイス固有情報生成装置であって、
前記第１のテーブルでの対応関係に係る前記初期設定フェーズテスト処理反転ビット数は、前記初期設定フェーズにおける前記テスト処理実行時の温度と前記テスト時間とに対応したものであり、
前記第１のテーブルでの対応関係に係るリフレッシュの停止の時間は、前記初期設定フェーズにおける前記テスト処理実行時の温度と前記初期設定フェーズ想定反転ビット数とに対応したものであり、
前記第２のテーブルでの対応関係に係る前記鍵設定フェーズテスト処理反転ビット数は、前記鍵設定フェーズにおける前記テスト処理実行時の温度と前記テスト時間に対応したものであり、
前記第２のテーブルにおける対応関係に係るリフレッシュの停止の時間は、前記初期設定フェーズにおける前記テスト処理実行時の温度と前記鍵生成フェーズにおける前記テスト処理実行時の温度と前記鍵生成フェーズ想定反転ビット数とに対応したものであることを特徴とするデバイス固有情報生成装置。
【０１２５】
（付記７）
付記４乃至６の何れか１に記載のデバイス固有情報生成装置であって、
前記固有情報生成手段は、
前記初期設定フェーズにおけるリフレッシュの停止により得られる反転ビットに関する情報に基づいて、前記固有情報に対する誤り訂正符号の冗長データを生成する手段と、
前記鍵生成フェーズにおけるリフレッシュの停止により得られる反転ビットに関する情報と前記冗長データに基づいて、前記固有情報を生成する手段と、
を備えることを特徴とするデバイス固有情報生成装置。
【０１２６】
（付記８）
付記７に記載のデバイス固有情報生成装置であって、
前記初期設定フェーズテスト処理反転ビット数に応じて、前記誤り訂正符号の冗長度を変化させる手段を更に備えることを特徴とするデバイス固有情報生成装置。
【０１２７】
（付記９）
付記４乃至８の何れか１に記載のデバイス固有情報生成装置であって、
前記鍵生成フェーズテスト処理により生じた反転ビットの数が所定数以下である場合には、前記初期設定フェーズリフレッシュ停止時間を短くして、前記初期設定フェーズからやり直す手段を更に備えることを特徴とするデバイス固有情報生成装置。
【０１２８】
（付記１０）
付記１乃至９の何れか１に記載のデバイス固有情報生成装置であって、
前記決定されたリフレッシュ停止時間を適用したリフレッシュ停止により得られた反転ビット数に基づいて、前記想定反転ビット数に対応するリフレッシュ停止時間を修正する手段を更に備えることを特徴とするデバイス固有情報生成装置。
【０１２９】
（付記１１）
デバイスの固有情報を生成するデバイス固有情報生成方法であって、
テスト時間だけリフレッシュを停止するテスト処理を行ない、該テスト処理により生じた反転ビットの数であるテスト処理反転ビット数に基づいて、前記固有情報を生成するために必要な反転ビット数である想定反転ビット数に対応したリフレッシュの停止の時間を決定するリフレッシュ停止時間決定ステップと、
前記決定したリフレッシュの停止時間を適用したリフレッシュ停止により得られる反転ビットに関する情報に基づいて前記固有情報を生成する固有情報生成ステップと、
を有することを特徴とするデバイス固有情報生成方法。
【０１３０】
（付記１２）
付記１１に記載のデバイス固有情報生成方法であって、
前記テスト処理反転ビット数と、リフレッシュの停止の時間との対応関係を保持したテーブルを更に有し、
前記リフレッシュ停止時間決定ステップは、前記テスト処理反転ビット数と、前記テーブルとを基に、前記リフレッシュの停止の時間を決定することを特徴とするデバイス固有情報生成方法。
【０１３１】
（付記１３）
付記１２に記載のデバイス固有情報生成方法であって、
前記テーブルでの対応関係に係る前記テスト処理反転ビット数は、前記テスト処理実行時の温度と前記テスト時間とに対応したものであり、
前記テーブルでの対応関係に係る前記リフレッシュの停止の時間は、前記テスト処理実行時の温度と前記想定反転ビット数とに対応したものであることを特徴とするデバイス固有情報生成方法。
【０１３２】
（付記１４）
付記１１に記載のデバイス固有情報生成方法であって、
前記固有情報生成ステップでは、前記固有情報を、初期設定フェーズにおけるリフレッシュの停止により得られる反転ビットに関する情報と、鍵生成フェーズにおけるリフレッシュの停止により得られる反転ビットに関する情報とに基づいて生成し、
前記リフレッシュ停止時間決定ステップは、
前記初期設定フェーズにおいてテスト時間だけリフレッシュを停止する初期設定フェーズテスト処理を行ない、該初期設定フェーズテスト処理により生じた反転ビットの数である初期設定フェーズテスト処理反転ビット数に基づいて、前記固有情報を生成するために必要な反転ビット数である初期設定フェーズ想定反転ビット数に対応したリフレッシュの停止の時間を決定する初期設定フェーズリフレッシュ停止時間決定ステップと、
前記鍵生成フェーズにおいてテスト時間だけリフレッシュを停止する鍵生成フェーズテスト処理を行ない、該鍵生成フェーズテスト処理により生じた反転ビットの数である鍵設定フェーズテスト処理反転ビット数と、前記初期設定フェーズテスト処理反転ビット数とに基づいて、前記固有情報を生成するために必要な反転ビット数である鍵生成フェーズ想定反転ビット数に対応したリフレッシュの停止の時間を決定する鍵生成フェーズリフレッシュ停止時間決定ステップと、
を有することを特徴とするデバイス固有情報生成方法。
【０１３３】
（付記１５）
付記１４に記載のデバイス固有情報生成方法であって、
前記初期設定フェーズテスト処理反転ビット数と、リフレッシュの停止の時間との対応関係を保持した第１のテーブルと、
前記初期設定フェーズテスト処理反転ビット数と前記鍵設定フェーズテスト処理反転ビット数との組合わせと、リフレッシュの停止の時間との対応関係を保持した第２のテーブルと、
を用い、
前記初期設定フェーズリフレッシュ停止時間決定ステップでは、前記初期設定フェーズテスト処理反転ビット数と、前記第１のテーブルとを基に、前記初期設定フェーズ想定反転ビット数に対応したリフレッシュの停止の時間を決定し、
前記鍵生成フェーズリフレッシュ停止時間決定ステップでは、前記初期設定フェーズテスト処理反転ビット数と、前記鍵生成フェーズテスト処理反転ビット数と、前記第２テーブルとを基に、前記鍵生成フェーズ想定反転ビット数に対応したリフレッシュの停止の時間を決定することを特徴とするデバイス固有情報生成方法。
【０１３４】
（付記１６）
付記１５に記載のデバイス固有情報生成方法であって、
前記第１のテーブルでの対応関係に係る前記初期設定フェーズテスト処理反転ビット数は、前記初期設定フェーズにおける前記テスト処理実行時の温度と前記テスト時間とに対応したものであり、
前記第１のテーブルでの対応関係に係るリフレッシュの停止の時間は、前記初期設定フェーズにおける前記テスト処理実行時の温度と前記初期設定フェーズ想定反転ビット数とに対応したものであり、
前記第２のテーブルでの対応関係に係る前記鍵設定フェーズテスト処理反転ビット数は、前記鍵設定フェーズにおける前記テスト処理実行時の温度と前記テスト時間に対応したものであり、
前記第２のテーブルにおける対応関係に係るリフレッシュの停止の時間は、前記初期設定フェーズにおける前記テスト処理実行時の温度と前記鍵生成フェーズにおける前記テスト処理実行時の温度と前記鍵生成フェーズ想定反転ビット数とに対応したものであることを特徴とするデバイス固有情報生成方法。
【０１３５】
（付記１７）
付記１４乃至１６の何れか１に記載のデバイス固有情報生成方法であって、
前記固有情報生成ステップは、
前記初期設定フェーズにおけるリフレッシュの停止により得られる反転ビットに関する情報に基づいて、前記固有情報に対する誤り訂正符号の冗長データを生成するステップと、
前記鍵生成フェーズにおけるリフレッシュの停止により得られる反転ビットに関する情報と前記冗長データに基づいて、前記固有情報を生成するステップと、
を有することを特徴とするデバイス固有情報生成方法。
【０１３６】
（付記１８）
付記１７に記載のデバイス固有情報生成方法であって、
前記初期設定フェーズテスト処理反転ビット数に応じて、前記誤り訂正符号の冗長度を変化させるステップを更に有することを特徴とするデバイス固有情報生成方法。
【０１３７】
（付記１９）
付記１４乃至１８の何れか１に記載のデバイス固有情報生成方法であって、
前記鍵生成フェーズテスト処理により生じた反転ビットの数が所定数以下である場合には、前記初期設定フェーズリフレッシュ停止時間を短くして、前記初期設定フェーズからやり直すステップを更に有することを特徴とするデバイス固有情報生成方法。
【０１３８】
（付記２０）
付記１１乃至１９の何れか１に記載のデバイス固有情報生成方法であって、
前記決定されたリフレッシュ停止時間を適用したリフレッシュ停止により得られた反転ビット数に基づいて、前記想定反転ビット数に対応するリフレッシュ停止時間を修正するステップを更に有することを特徴とするデバイス固有情報生成方法。
【０１３９】
（付記２１）
コンピュータを、デバイスの固有情報を生成するデバイス固有情報生成装置として機能させるためのデバイス固有情報生成用プログラムであって、
コンピュータを、
テスト時間だけリフレッシュを停止するテスト処理を行ない、該テスト処理により生じた反転ビットの数であるテスト処理反転ビット数に基づいて、前記固有情報を生成するために必要な反転ビット数である想定反転ビット数に対応したリフレッシュの停止の時間を決定するリフレッシュ停止時間決定手段と、
前記決定したリフレッシュの停止時間を適用したリフレッシュ停止により得られる反転ビットに関する情報に基づいて前記固有情報を生成する固有情報生成手段と、
として機能させるためのデバイス固有情報生成用プログラム。
【０１４０】
（付記２２）
付記２１に記載のデバイス固有情報生成用プログラムであって、
コンピュータを、更に、前記テスト処理反転ビット数と、リフレッシュの停止の時間との対応関係を保持したテーブルとして機能させ、
前記リフレッシュ停止時間決定手段は、前記テスト処理反転ビット数と、前記テーブルとを基に、前記リフレッシュの停止の時間を決定することを特徴とするデバイス固有情報生成用プログラム。
【０１４１】
（付記２３）
付記２２に記載のデバイス固有情報生成用プログラムであって、
前記テーブルでの対応関係に係る前記テスト処理反転ビット数は、前記テスト処理実行時の温度と前記テスト時間とに対応したものであり、
前記テーブルでの対応関係に係る前記リフレッシュの停止の時間は、前記テスト処理実行時の温度と前記想定反転ビット数とに対応したものであることを特徴とするデバイス固有情報生成用プログラム。
【０１４２】
（付記２４）
付記２１に記載のデバイス固有情報生成用プログラムであって、
前記固有情報生成手段は、前記固有情報を、初期設定フェーズにおけるリフレッシュの停止により得られる反転ビットに関する情報と、鍵生成フェーズにおけるリフレッシュの停止により得られる反転ビットに関する情報とに基づいて生成し、
前記リフレッシュ停止時間決定手段は、
前記初期設定フェーズにおいてテスト時間だけリフレッシュを停止する初期設定フェーズテスト処理を行ない、該初期設定フェーズテスト処理により生じた反転ビットの数である初期設定フェーズテスト処理反転ビット数に基づいて、前記固有情報を生成するために必要な反転ビット数である初期設定フェーズ想定反転ビット数に対応したリフレッシュの停止の時間を決定する初期設定フェーズリフレッシュ停止時間決定手段と、
前記鍵生成フェーズにおいてテスト時間だけリフレッシュを停止する鍵生成フェーズテスト処理を行ない、該鍵生成フェーズテスト処理により生じた反転ビットの数である鍵設定フェーズテスト処理反転ビット数と、前記初期設定フェーズテスト処理反転ビット数とに基づいて、前記固有情報を生成するために必要な反転ビット数である鍵生成フェーズ想定反転ビット数に対応したリフレッシュの停止の時間を決定する鍵生成フェーズリフレッシュ停止時間決定手段と、
を備えることを特徴とするデバイス固有情報生成用プログラム。
【０１４３】
（付記２５）
付記２４に記載のデバイス固有情報生成用プログラムであって、
コンピュータを、更に、
前記初期設定フェーズテスト処理反転ビット数と、リフレッシュの停止の時間との対応関係を保持した第１のテーブルと、
前記初期設定フェーズテスト処理反転ビット数と前記鍵設定フェーズテスト処理反転ビット数との組合わせと、リフレッシュの停止の時間との対応関係を保持した第２のテーブルと、
として機能させ、
前記初期設定フェーズリフレッシュ停止時間決定手段は、前記初期設定フェーズテスト処理反転ビット数と、前記第１のテーブルとを基に、前記初期設定フェーズ想定反転ビット数に対応したリフレッシュの停止の時間を決定し、
前記鍵生成フェーズリフレッシュ停止時間決定手段は、前記初期設定フェーズテスト処理反転ビット数と、前記鍵生成フェーズテスト処理反転ビット数と、前記第２テーブルとを基に、前記鍵生成フェーズ想定反転ビット数に対応したリフレッシュの停止の時間を決定することを特徴とするデバイス固有情報生成用プログラム。
【０１４４】
（付記２６）
付記２５に記載のデバイス固有情報生成用プログラムであって、
前記第１のテーブルでの対応関係に係る前記初期設定フェーズテスト処理反転ビット数は、前記初期設定フェーズにおける前記テスト処理実行時の温度と前記テスト時間とに対応したものであり、
前記第１のテーブルでの対応関係に係るリフレッシュの停止の時間は、前記初期設定フェーズにおける前記テスト処理実行時の温度と前記初期設定フェーズ想定反転ビット数とに対応したものであり、
前記第２のテーブルでの対応関係に係る前記鍵設定フェーズテスト処理反転ビット数は、前記鍵設定フェーズにおける前記テスト処理実行時の温度と前記テスト時間に対応したものであり、
前記第２のテーブルにおける対応関係に係るリフレッシュの停止の時間は、前記初期設定フェーズにおける前記テスト処理実行時の温度と前記鍵生成フェーズにおける前記テスト処理実行時の温度と前記鍵生成フェーズ想定反転ビット数とに対応したものであることを特徴とするデバイス固有情報生成用プログラム。
【０１４５】
（付記２７）
付記２４乃至２６の何れか１に記載のデバイス固有情報生成用プログラムであって、
前記固有情報生成手段は、
前記初期設定フェーズにおけるリフレッシュの停止により得られる反転ビットに関する情報に基づいて、前記固有情報に対する誤り訂正符号の冗長データを生成する手段と、
前記鍵生成フェーズにおけるリフレッシュの停止により得られる反転ビットに関する情報と前記冗長データに基づいて、前記固有情報を生成する手段と、
を備えることを特徴とするデバイス固有情報生成用プログラム。
【０１４６】
（付記２８）
付記２７に記載のデバイス固有情報生成用プログラムであって、
コンピュータを、更に、前記初期設定フェーズテスト処理反転ビット数に応じて、前記誤り訂正符号の冗長度を変化させる手段として機能させるためのデバイス固有情報生成用プログラム。
【０１４７】
（付記２９）
付記２４乃至２８の何れか１に記載のデバイス固有情報生成用プログラムであって、
コンピュータを、更に、前記鍵生成フェーズテスト処理により生じた反転ビットの数が所定数以下である場合には、前記初期設定フェーズリフレッシュ停止時間を短くして、前記初期設定フェーズからやり直す手段として機能させるためのデバイス固有情報生成用プログラム。
【０１４８】
（付記３０）
付記２１乃至２９の何れか１に記載のデバイス固有情報生成用プログラムであって、
コンピュータを、更に、前記決定されたリフレッシュ停止時間を適用したリフレッシュ停止により得られた反転ビット数に基づいて、前記想定反転ビット数に対応するリフレッシュ停止時間を修正する手段として機能させるためのデバイス固有情報生成用プログラム。
【産業上の利用可能性】
【０１４９】
本発明は機器認証に利用することができる。
【符号の説明】
【０１５０】
１００  認証部
１１０  固有情報生成部
１２０，  ２００  デバイス物理情報生成部
１３０，  ２５０  物理情報マッピング部
１４０  インターフェース
１５０  端末機器
１６０  サーバ
２１０  ＤＲＡＭデバイス
２２０  Ｒ／Ｗコントローラ
２３０  リフレッシュ制御部
２４０  リフレッシュ停止時間テーブル
４２０−４９０  初期設定フェーズの工程
５２０−５９０  鍵生成フェーズの工程
【図１】
0005906821.tif 000002
【図２】
0005906821.tif 000003
【図３】
0005906821.tif 000004
【図４】
0005906821.tif 000005
【図５】
0005906821.tif 000006
【図６】
0005906821.tif 000007
【図７】
0005906821.tif 000008
【図８】
0005906821.tif 000009