(本開示の基礎となる知見)
一般的にはセキュリティを強化したICでは、内部に搭載する暗号鍵(「秘密鍵」ともいう。)を用いて秘密情報を暗号化して利用しており、情報の漏洩を防止している。この場合、内部に保持している暗号鍵の情報を外部に漏洩させないことが必須となる。
近年、PUF(物理的複製困難関数;Physically Unclonable Function)と呼ばれる、新たなハードウェア技術が提案されている。PUF技術は、製造ばらつきを活用してICごとに異なるユニークな個体識別情報を生成する技術である。以降、本明細書ではPUF技術により生成される個体識別情報を「PUFデータ」と呼ぶ。PUFデータはICの物理特性のばらつきに関連づけられた各デバイス固有のユニークなデータであり、物理特性の僅かなばらつきを利用するため、物理的解析が困難かつ、IC毎にその物理特性を人為的に再現することが困難であり、物理的な複製が困難なデータとして利用することができる。
具体的な先行例として、非特許文献1のようなSRAM PUFが例示され得る。この例では、SRAMにおける各メモリセルにおける、トランジスタの閾値ばらつき(動作電圧ばらつき)で「0」データか「1」データか確定する、電源投入直後の初期値を利用するPUFである。
その他にも、特許文献1〜3、非特許文献2および3のような、ReRAM(Resistive Random Access Memory;抵抗変化型メモリ) PUFが例示され得る。特許文献3の例では、ReRAMのメモリセルの抵抗値ばらつきを利用している。そして、メモリグループ内の抵抗値を取得し、それらの抵抗値より、2値化するための基準となる判定値を求め、PUFデータを生成する。非特許文献2では、2つのセルを同一状態に書込み、書込み後の抵抗値ばらつきによる大小関係を比較することで、PUFデータを生成する方式である。また、特許文献3や非特許文献3では、ReRAMのフォーミングのランダム性をPUFとして利用している。ReRAMのメモリセルでは、抵抗値の高い初期状態に対し、フォーミングと呼ばれる通常の書き換え電圧よりも大きな電圧ストレスを印加して絶縁破壊を引き起こさせることで、書き換えが可能な可変状態へと遷移させることができる。そしてこのフォーミングの過程において必要とされる電圧ストレスの印加時間は、メモリセル毎にランダムな特性を有する。本方式では、固定時間の電圧ストレスをメモリグループに与え、約半数のメモリセルのフォーミングが完了した時点で、電圧ストレス印加の処理を終了させる。すると、終了後のメモリセルグループには、初期状態と可変状態のメモリセルが約半数かつ、デバイス毎に固有なランダムなデータとして記録されることになる。当該方式は、当該ランダムなデータをPUFデータとして利用する方式である。
更に、PUFの応用機能として、特許文献3、非特許文献4に示すような、再構成可能なPUFが例示されている。特許文献3、非特許文献4では、PUFのデータソースとして扱われる抵抗変化型のメモリセルに対し、書換え処理を実行する。書換え処理を実行することで、デバイスの構造が変化し、各メモリセル間の抵抗値ばらつき関係が変化するため、書換え処理前とは異なる新たなPUFデータを生成することが可能である。このように、複数のデバイスに対し、外部から共通の熱や電圧などのストレスを加えることで、ばらつきの関係性を変え、再構成の機能を実現している。
このようなPUF技術により、各IC固有の乱数となるPUFデータを記録することで、解析されにくくかつ、複製できないデータとして扱うことができる。このPUFデータは、例えば、前述した秘密鍵を暗号化するデバイス鍵として用いられる。デバイス鍵(つまり、PUFデータ)によって暗号化された秘密鍵は、暗号化された状態で不揮発性メモリに保存される。すなわち、不揮発性メモリに記録された暗号化秘密鍵はデバイス鍵でしか元の秘密鍵データに復号できないため、秘密鍵のセキュリティ強度は、PUFのセキュリティ強度に依存する。
一方、PUFは、物理特性の僅かなばらつきを利用していることから、同一のデバイスに対してPUFデータを再生する場合、温度や電源といった環境変動の影響を受けやすく再現性の低下や、製造での物理的な依存性によるユニーク性の低下など、いくつかの課題が存在する。
特許文献4には、これらの再現性やユニーク性を改善するための対策として、Fuzzy Extractorと呼ばれる技術が用いられている。これはPUFのセキュリティ強度を維持しつつ誤り訂正が可能なアルゴリズムやハッシュ関数などのPUFデータへのポスト処理が搭載された技術である。
本開示では、従来技術にはない、より高い耐タンパ性を有する不揮発性メモリ装置およびチャレンジ・レスポンス方法を提供する。
以下、本開示に係る発明の実施の形態について、図面を用いて詳細に説明する。なお、以下で説明する実施の形態は、いずれも本発明の一具体例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置および接続形態、ステップ、ステップの順序等は、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、本発明の最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。また、各図は、必ずしも厳密に図示したものではない。各図において、実質的に同一の構成については同一の符号を付し、重複する説明は省略または簡略化する場合がある。
(本開示で用いる抵抗変化型の不揮発性メモリ装置の概要)
図1は、実施の形態における抵抗変化型の不揮発性メモリ装置100の概略構成の一例を示すブロック図である。また、図2は、図1に示された抵抗変化型の不揮発性メモリ装置100が備えるメモリセル91の概略構成の一例を示す断面図である。なお、本明細書では、抵抗変化型の不揮発性メモリ装置を、単に不揮発性メモリ装置ともいう。
図1に示す例では、本実施の形態における不揮発性メモリ装置100は、少なくともメモリセルアレイ90と、制御装置93とを備えている。なお、制御装置93は、必ずしも不揮発性メモリ装置100の一部である必要はなく、不揮発性メモリ装置100外に設けられ、かつ、不揮発性メモリ装置100と接続された装置であって、以下に説明する動作が行われてもよい。
メモリセルアレイ90は、抵抗値の大きさに応じてディジタルデータが記録される抵抗変化型の複数のメモリセル91がアレイ状に配置された構成を有する。本実施の形態では、メモリセルアレイ90を構成する複数のメモリセル91のうちの一部のメモリセル91がPUFデータ用のメモリセルとして割り当てられている。
図2に示す例では、メモリセル91が備える抵抗変化素子120が、下地層122(例えば、Ta2O5)と、第1電極124(例えば、Ir)と、抵抗変化層126(例えば、TaOx)と、第2電極128(例えば、TaN)とを備えている。それぞれのメモリセル91には、特定のメモリセルを選択するためのトランジスタ129が接続されている。
メモリセル91は、異なる複数の電気的信号が印加されることによって、抵抗値が複数の可変抵抗値範囲の間を可逆的に遷移する可変状態を取りうる性質を有する。可変抵抗値範囲には、少なくとも、ディジタル情報のある1つの状態(第1抵抗状態)として低抵抗状態となる抵抗値範囲と、他の1つの状態(第2抵抗状態)として上記低抵抗状態よりも高抵抗な高抵抗状態となる抵抗値範囲とがある。このように、可変状態では、少なくとも、抵抗値を低抵抗状態と高抵抗状態とで可逆的に遷移させることができる。
また、メモリセル91は、初期状態を取りうる性質を有する。「初期状態」とは、抵抗値が可変抵抗値範囲のいずれとも重複しない初期抵抗値範囲にある状態をいう。初期状態にあるメモリセルは、フォーミングが行われない限り可変状態とならない。「フォーミング」とは、所定の電気的ストレスをメモリセルに印加して、メモリセルの抵抗値が複数の可変抵抗値範囲の間を可逆的に遷移する状態へと、メモリセルを変化させることをいう。
フォーミングのために印加される電気的ストレス(フォーミングストレス)は、例えば、所定の電圧と時間幅を有する電気的パルスである場合もあるし、複数の電気的パルスを組み合わせたものである場合もある。フォーミングストレスは累積的なストレスであってもよい。その場合、ストレスの累積量が所定量を超えたときに、メモリセル91は初期状態から可変状態に遷移する。
本実施の形態では、メモリセル91は、製造後、フォーミングをしなければ抵抗値が複数の可変抵抗値範囲の間を可逆的に遷移する状態とならないような性質を有しているとする。つまり、半導体プロセス等により製造した後、フォーミングストレスが印加される前の抵抗変化素子は、初期状態にあるとして説明する。
しかしながら、この性質は一例であり必須ではない。メモリセル91は、初期状態を取りうる素子でなくてもよく、例えば、可変状態のみを有する、いわゆるフォーミングレスの素子であってもよい。
メモリセルアレイ90には、任意に設定したデータパターンを可変状態の違いで記録する以外にも、物理的な特性からランダムな個体識別情報であるPUFとして利用される場合もある。
一例のPUFでは、低抵抗状態の各メモリセルの抵抗値ばらつきを利用する。低抵抗状態であっても、微小な抵抗値のばらつきが存在し、当該一例のPUFでは、当該特性が利用される。メモリセルアレイ90の中から、複数のメモリセル91が可変状態として全て同一の抵抗状態に設定され、PUFデータが記録されたメモリグループとして扱われる。
図3は、あるメモリセルアレイに対する実測によって得られた低抵抗状態における規格化抵抗値(横軸)とそのばらつきについての標準正規分布の偏差(σ)(縦軸)との関係をプロットした図である。図3に示されるように、メモリセルの抵抗値ばらつきの分布は、正規分布に従い、ほぼ直線に分布している。このことから、抵抗値ばらつきは極めてランダムな現象であることが確認できる。図3には、抵抗値ばらつきの分布の中央値(図の「Median」)を判定値として設定し、例えば、判定値よりも抵抗値が大きければ「1」データ(図中の「Data“1”」)、小さければ「0」データ(図中の「Data“0”」)として割り当てることでディジタルデータを出力する例が示される。
図4は、ある3ビットのメモリセルに対して、図5のフローチャートに示すような、高抵抗化書込み(あるいは、低抵抗化書込み)後に再び低抵抗化(あるいは、高抵抗化書込み)に書き戻す処理(以下、この書込みを再構成書込みと呼ぶ)を100回実行したときの、各低抵抗化書込み後における規格化抵抗値(横軸)とそのばらつきについての標準正規分布の偏差(σ)(縦軸)との関係をプロットした図である。図示された3つの分布が3ビットのメモリセルのそれぞれに対応する。このばらつき特性が示すように、本実施の形態で用いるメモリセルは、図3で説明した、メモリセル間の抵抗値ばらつきだけでなく、各メモリセルの書換え後についても、抵抗値ばらつきを持っていることが分かる。更には、3ビットのメモリセルの書込みばらつき特性を比較すると、3つの分布に分離されていることから分かるように、それらの分布の形状や絶対値も大きく異なることが確認できる。この特徴を踏まえると、例えば、図3に示すような中央値を判定値として設定し、ディジタルデータを出力する方式を採用した場合、再構成書込みを実行すると、再構成書込み前後で0から1または、1から0に変化するメモリセル(図4の中央に位置する分布)と再構成書込み前後で0または1から変化しないメモリセル(図4の左および右に位置する分布)が存在していることが確認できる。以上のことから、同一の複数のメモリセルに対し、例えば、再構成書込みを実行することで、複数のビットが書込み前後で0と1のデータがランダムに変化し、新たなディジタルデータを構築できる一方で、0と1のデータが変化しないような恒久データの両方を実現することができることがわかる。
(抵抗変化型の不揮発性メモリ装置の構成と基本動作)
図6は、実施の形態における不揮発性メモリ装置10の具体的な構成例を示すブロック図である。なお、不揮発性メモリ装置10は、上記説明した不揮発性メモリ装置100の一具体例であり、外部から与えられるチャレンジデータに対して、秘密鍵であるレスポンスデータを生成するチャレンジ・レスポンス方法を実行する。ただし、実施の形態における不揮発性メモリ装置の具体的構成が図6に示される構成に限定されるものではない。また、チャレンジデータは、レスポンスデータを要求する情報であれば、いかなるフォーマットであってもよい。
図6に示すように、実施の形態における不揮発性メモリ装置10は、半導体基板上に、メモリ本体部22を備えている。また、不揮発性メモリ装置10は、さらにデータ入出力回路6と、制御回路15と、アドレス入力回路16とを備えている。
メモリ本体部22は、読出し回路12と、書込み回路14と、判定値設定回路13と、ロウデコーダ回路18と、カラムデコーダ回路17と、メモリセルアレイ20とを備えている。なお、機能的には、主に、制御回路15、読出し回路12および判定値設定回路13によって、外部からチャレンジデータを取得した場合にメモリセルアレイ20を用いてレスポンスデータを生成するデータ生成回路が構成される。また、主に、制御回路15および書込み回路14によって、メモリセルアレイ20に対して、少なくとも1回以上電圧パルスを印加する再構成書込みを実行する再構成処理回路が構成される。
書込み回路14は、選択されたメモリセル21に対して各動作における所定の電圧を印加してデータを書込む。例えば、書込み回路14は、後述する情報領域7に対して、任意の抵抗状態にするための書込み動作を実行する以外にも、PUF領域8の全メモリセルに対し、再構成書込みを実行する。
読出し回路12は、複数のメモリセル21のそれぞれに対し、並列に読出し動作を実行し、得られた抵抗値と、後述する判定値設定回路13から出力される判定値との比較に基づき、ディジタルデータDoutを出力する。なお、読出し回路12は、誤り訂正回路を有する。
判定値設定回路13は、後述するPUF領域内のメモリセルの抵抗値から抵抗値ばらつき分布の中央値を算出し、読出し回路12へ第1判定値の一例である判定値として出力(つまり、設定)する。また、判定値設定回路13は、再構成書込みを行ってもデータが変化しない、恒久データを抽出するために、第1恒久判定値と第2恒久判定値を読出し回路12へ判定値として出力(つまり、設定)する。なお、第1恒久判定値は、第1判定値よりも大きな第3判定値の一例であり、第2恒久判定値は、第1判定値よりも小さな第2判定値の一例である。例えば、判定値設定回路13は、中央値を判定値として生成されたディジタルデータ(以下、判定値を用いて生成されたディジタルデータをPUFデータと呼ぶ)を読出し回路12において再生する場合は、読出し回路12から得られた抵抗値を元に中央値を設定し、一方、読出し回路12において恒久データを抽出する場合には、再構成書込みを行ってもデータが変化しないビットの位置情報データ(以下、このような位置情報データを恒久PUF情報データと呼ぶ)を抽出するために、第1恒久判定値または、第2恒久判定値を設定する。
なお、取得した抵抗値の中央値を判定値として算出すること、取得した抵抗値が判定値よりも大きいか否かを判定すること、恒久データを抽出するために第1恒久判定値や第2恒久判定値を判定すること、および、PUFデータの生成や恒久データを抽出することは、判定値設定回路13および読出し回路12を含むメモリ本体部22で行われなくてもよく、メモリ本体部22の外部で行われてもよい。
ロウデコーダ回路18は、メモリセルアレイ20に接続されている複数のj本のワード線WL0〜WLjの中から1つのワード線WLを選択する。
カラムデコーダ回路17は、複数のn本のビット線BL0〜BLnと複数のn本のソース線SL0〜SLnの中から並列読出し数(メモリグループを構成するメモリセル数)であるk本のビット線BLと、それに対応するk本のソース線SLとを選択し、選択した線を書込み回路14および読出し回路12へ接続する。
これら(書込み回路14、読出し回路12、ロウデコーダ回路18およびカラムデコーダ回路17)は、並列的に読出しおよび/または書込みが行われる行および/または列の数に応じて動作する。
読出し回路12は、ディジタルデータDoutを出力する。読出し回路12は、カラムデコーダ回路17とロウデコーダ回路18とにより選択されたk個のメモリセルとk本のビット線を介して接続され、k個のメモリセルの抵抗値と判定値設定回路13によって設定された判定値とを比較し、生成されたディジタルデータDoutをデータ入出力回路6へ出力する。
メモリ本体部22は、記憶領域として、情報領域7とPUF領域8とを有する。情報領域7は、ワード線WL0〜WLiが接続された領域であり、一方、PUF領域8は、WLi+1〜WLjが接続された領域である。情報領域7は、レスポンスデータを生成するために必要な抵抗値を保持するメモリセルで構成される第1領域の一例であり、一方、PUF領域8は、抵抗値以外の情報を保持するメモリセルで構成される第2領域の一例である。具体的には、情報領域7は、データセルを含み、任意のデータ(ユーザデータ)が記録され、一方、PUF領域8は、同一の抵抗状態が設定されたPUFデータが記録される。
なお、情報領域7とPUF領域8とは、図6のようにワード線で分けられる必要はなく、メモリセルアレイ20上の任意の領域で区分けしても良い。このとき、物理的な領域区分の規則性を複雑にするほどハッキングなどの攻撃への耐性を高めることができる。また、情報領域7とPUF領域8とは、セキュリティの重要性に応じて、アクセスを制限できるように更に細分化した区分けをしてもよい。例えば、PUFデータが格納されているPUF領域8のセキュリティデータについては、ユーザ側ではアクセスできないように制限するなどが挙げられる。
メモリセルアレイ20は、複数のワード線WL0〜WLjと、ワード線WL0〜WLjと交差し、かつ互いに平行に延びるようにして形成された複数のビット線BL0〜BLnと、ワード線WL0〜WLjと交差し、かつ互いに平行に、かつビット線BL0〜BLnと平行に延びるようにして形成されたソース線SL0〜SLnと、を備える。そして、ワード線WL0〜WLjとビット線BL0〜BLnとの立体交差点には、それぞれメモリセル21が配置されている。
それぞれのメモリセル21は抵抗変化素子23とトランジスタ24とを備える。ワード線WL0〜WLjはそれぞれのトランジスタ24のゲート端子に接続され、ビット線BL0〜BLnは、それぞれのメモリセル21が備える抵抗変化素子23の第2電極に接続され、抵抗変化素子23の第1電極はトランジスタ24の第2主端子に各々接続され、ソース線SL0〜SLnは、トランジスタ24の第1主端子にそれぞれ接続されている。
抵抗変化素子23はメモリセル21において不揮発性メモリ素子として動作する。不揮発性メモリ装置10は、各メモリセル21が1個のトランジスタ24と1個の抵抗変化素子23とから構成される、いわゆる1T1R型の抵抗変化型の不揮発性メモリ装置である。メモリセルの選択素子は前述のトランジスタに限定されない。例えばダイオードなどの2端子素子を用いても良い。
制御回路15は外部から与えられるコントロール信号に基づき、カラムデコーダ回路17に対し、ビット線あるいはソース線のいずれか一方を選択させ、書込み時は選択したビット線あるいはソース線を書込み回路14に接続させ、読出し時は選択したビット線あるいはソース線を読出し回路12に接続させる。その上で、書込み回路14あるいは読出し回路12を動作させる。制御回路15は、プログラムが格納されたメモリ、プログラムを実行するプロセッサ、および、入出力回路等で構成されてもよいし、専用の論理回路で構成されてもよい。
抵抗変化素子23については、実施の形態において図2を用いて上述した抵抗変化素子120と同様の構成とすることができるので、詳細な説明を省略する。
なお、図6に示す例では、メモリセルアレイ20の選択トランジスタとしてNMOSトランジスタが用いられているが、これに限定されず、PMOSトランジスタを用いても良い。
図7は、図6に示された不揮発性メモリ装置10が備える読出し回路12の構成例を示す図である。なお、本図には、メモリセルアレイ20およびカラムデコーダ回路17も併せて図示されている。読出し回路12は、k(kは、1≦k≦nを満たす整数)個のメモリセル21からなるメモリグループの単位で並列に読出し動作を行うために、k個のセンスアンプ回路30(TSA0、TSA1、TSA2、・・・TSAk)を有している。カラムデコーダ回路17により選択されたk本のビット線が、k個のセンスアンプ回路30に各々接続される。各々のセンスアンプ回路30は、接続されたメモリセル21の抵抗値を出力する。
図8は、図7に示された読出し回路12の一ビット分の(つまり、1個のメモリセル21からの読出しに対応する)より詳細な構成例を示す回路図である。
読出し回路12は、センスアンプ回路30を有している。当該センスアンプ回路30は、コンパレータ31と、抵抗値カウンタ32と、プリチャージPMOSトランジスタ33と、ロードPMOSトランジスタ34と、クランプNMOSトランジスタ36で構成されたクランプ回路とを備えている。
抵抗値カウンタ32は、コンパレータ31の出力先に接続されている。抵抗値カウンタ32は、リセット制御信号RSTがロウレベルとなることで、抵抗値カウンタ32内のカウント値が初期化された後、CLK信号によりカウントを開始する。CLK信号は、制御回路15から出力される信号であって、抵抗変化素子23の抵抗値によって変化する放電時間または充電時間をカウント値に変換する際の基準となる信号である。CLK信号は、例えば一定の周波数を維持する矩形波である。このCLK信号が立ち上がる毎に、抵抗値カウンタ32のカウント値が1つ加算され、ノードSENが参照電圧VREFを下回るとコンパレータ31からの出力信号が反転し、そのときのカウント値がCOUNT_OUTとして保持される。カウント値COUNT_OUTは、比較器35の入力端子aに入力され、一方、判定値設定回路13から受け取る判定値が比較器35の入力端子bに入力され、比較器35において入力端子aの値と入力端子bの値とが比較され、その比較結果がディジタルデータDoutとして、データ入出力回路6に送信される。
プリチャージPMOSトランジスタ33は、ゲート端子にプリチャージ制御信号PREが入力され、ソース端子に電源電圧VDDが入力され、ドレイン端子にノードSENが接続されている。
コンデンサ36aは、放電、または充電時間を調整するために設置され、一端がノードSEN、他端はGNDに接続されている。
ロードPMOSトランジスタ34は、ゲート端子にロード制御信号LOADが入力され、ソース端子に電源電圧VDDが入力され、ドレイン端子にノードSENが接続されている。
クランプNMOSトランジスタ36は、ゲート端子にクランプ制御信号CLMPが入力され、ソース端子もしくはドレイン端子の何れか一方にノードSENが接続され、他端にはメモリセルが接続されている。
図9は、図6に示された不揮発性メモリ装置10において選択されたメモリセルを読み出す場合のタイミングチャートである。
T1のプリチャージ期間では、プリチャージ制御信号PREはロウレベルとなり、プリチャージPMOSトランジスタ33はオン状態になる一方で、ロード制御信号LOADはハイレベルとなり、ロードPMOSトランジスタ34はオフ状態となる。選択ワード線WLsの電位はロウレベルでトランジスタ24はオフ状態となっている。
クランプ回路のクランプNMOSトランジスタ36のゲート端子にVCLMPの電圧が印加されることで、選択ビット線BLsの電位はVCLMPからVT(クランプNMOSトランジスタ36の閾値)を引いた電位までプリチャージされる。選択ソース線SLsはGNDに固定される。ノードSENは電源電圧VDDまでプリチャージされる。また、コンパレータ31の出力に接続されている抵抗値カウンタ32のリセット制御信号RSTはハイレベルとなっているため、抵抗値カウンタ32の出力端子から、カウント値COUNT_OUTとして、0の固定値が出力される。
T2のセンス期間では、プリチャージ制御信号PREをハイレベルとすることで、プリチャージPMOSトランジスタ33がオフ状態となり、ロード制御信号LOADがロウレベルになることで、ロードPMOSトランジスタ34はオン状態になる。また選択ワード線WLsの電位をハイレベルにすることで、NMOSトランジスタ24はオン状態となる。
そして選択ビット線BLsから選択されたメモリセル21を介して選択ソース線SLsへと電圧が印加され、放電が開始される。放電開始と同時に抵抗値カウンタ32のリセット制御信号RSTがロウレベルとなり、抵抗値カウンタ32でのカウントが始まる。そして、1カウント毎に、コンパレータ31によって、ノードSENの電位と参照電圧VREFの電圧とが比較され、ノードSENが参照電圧VREFを下回るまで、カウント値が加算され続ける。読出し時の抵抗変化素子23の抵抗値が高いほど放電時間は長くなり、カウント値は大きくなる。
また、コンデンサ36aの容量を調整することで、放電時間を調整することも可能である。コンデンサ36aの容量が大きければ、ノードSENの放電時間も長くなるため、カウント値は大きくなり、容量が小さければ、ノードSENの放電時間は短くなり、カウント値は小さくなる。コンデンサ36aの容量を調整することは、例えば、放電時間が短い低抵抗レベルの検出精度を向上させたいとき、効果的である。カウントの間隔はCLK信号で決定されるため、その動作周波数がカウント値の分解能となる。しかし、低い抵抗値を読み出す場合、放電時間がカウント値の分解能に近くなってくる可能性があるため、抵抗値の大小を区別できなくなる場合がある。そこで、ノードSENに容量負荷を上乗せし、放電時間を長くすることで、意図的に、分解能で検出できるレベルの放電特性を確保することが可能となる。
T3のラッチ期間では、放電が開始された後、ノードSENが参照電圧VREFを下回ったときの抵抗値カウンタ32のカウント値がラッチされる。ラッチされたカウント値は、COUNT_OUTとして出力され、抵抗変化素子23のカウント値として扱われる。
T4のリセット期間においては、抵抗値カウンタ32のデータ出力が完了すると、選択ワード線WLsの電位がロウレベルとされ、選択されたメモリセル21のトランジスタ24がオフとなり、読出し動作が終了する。
抵抗値カウンタ32に格納されたカウント値COUNT_OUTは判定値設定回路13に入力され、判定値設定回路13において、入力されたカウント値COUNT_OUTを元に判定値(中央値)が算出される。
なお、図7に示された読出し回路12は、本実施の形態における不揮発性メモリ装置10においては、16個のセンスアンプ回路30を有するため、最大16個のセンスアンプ回路30を並列動作させることができる。
次に、本実施の形態における不揮発性メモリ装置10の動作の例について説明する。本実施の形態における不揮発性メモリ装置10はPUF登録モード、PUF再生モード、PUF再構成モード、恒久PUF登録モード、恒久PUFデータ再生モードの5つのモードを有している。これらの動作は、外部から入力されるコントロール信号で選択され、制御回路15によって、各モードの動作が実行される。また、チャレンジデータは、コントロール信号として、外部から制御回路15に入力され、レスポンスデータは、データ信号として、データ入出力回路6から外部に出力され得る。以下では、各モード実行時の動作について詳細に説明する。
(PUF登録モード)
PUF登録モードでは、不揮発性メモリ装置10が備えるデータ生成回路は、第1の種類のチャレンジデータを取得した場合に、判定値設定回路13が設定した第1判定値とメモリセル21から読み出された抵抗値との比較によって、PUFデータである第1のレスポンスデータを生成してPUF領域8に格納する。そして、データ生成回路は、第1のレスポンスデータを生成した後に、再構成処理回路によって再構成書込みが実行され、かつ、再構成書込みが実行された後に第1の種類のチャレンジデータを再び取得した場合には、第1のレスポンスデータとは異なる第3のレスポンスデータを生成してPUF領域8に格納する。つまり、このPUF登録モードでは、不揮発性メモリ装置10は、第1の種類のチャレンジデータを取得する度に、再構成書込みによって更新される、新たなPUFデータを生成する。
以下、図10、図11を参照しながら、PUF登録モードについて詳細に説明する。
図10は、本実施の形態における不揮発性メモリ装置10によるPUFデータ登録時の動作例を示すフローチャートである。図11は、本実施の形態における不揮発性メモリ装置10によるPUFデータ登録時に生成されるヘルパーデータの生成方法を示すデータフロー図である。
図10において、不揮発性メモリ装置10に第1の種類のチャレンジデータが入力されると、ステップS1では、低抵抗状態に設定されたPUF領域8内の各メモリセル21の抵抗値がセンスアンプ回路30によって読み出され、ステップS2では、読み出された抵抗値を元に、判定値設定回路13において、ばらつき分布の中央値が算出される。ステップS3では、ステップS2で算出された中央値が判定値として読出し回路12に出力され、ステップS4では、読出し回路12において判定値と抵抗値との大小を比較することで、第1のレスポンスデータまたは第3のレスポンスデータとして、PUFデータが生成される。ステップS5では、生成されたPUFデータの誤り訂正情報となるヘルパーデータが読出し回路12において生成され、ステップS6では、生成されたヘルパーデータがデータ入出力回路6および書込み回路14を経て情報領域7内の任意の指定アドレスに書込まれ、登録が完了する。
次に、読出し回路12によるヘルパーデータの生成方法を、図11を用いて説明する。本実施の形態では、ヘルパーデータの生成時に使用する訂正符号として、BCH(15+1,7)符号を用いている。BCH(15+1,7)は、7ビットの情報ビットと9ビットのパリティビットの合計16ビットを符号データとし、16ビット中、2ビットの誤り訂正と3ビットの誤り検出が可能である。ヘルパーデータの生成では、図10のステップS4で生成した16ビットのPUFデータを上位7ビット(P1)と下位9ビット(P2)とに2分割する。次に7ビットのP1をBCH符号の情報ビットとして設定し、P1に対応する9ビットのパリティデータ(E)を生成する。この生成した9ビットのパリティビット(E)と生成したPUFデータのP2とをXOR処理することで、9ビットのヘルパーデータ(H)を得る。この生成したヘルパーデータ(H)は、通常のメモリデータと同様の方法で、情報領域7内の任意の指定アドレスに書込み、保持される。
(PUF再生モード)
次に、図12、図13を参照しながら、PUFデータ再生のフローについて説明する。
図12は、本実施の形態における不揮発性メモリ装置10によるPUFデータ再生時の動作を示すフローチャートである。図13は、本実施の形態における不揮発性メモリ装置10による、PUFデータ再生時に使用するヘルパーデータと誤りを含んだ生PUFデータから、登録時の正しいPUFデータを再生するまでの処理を示すデータフロー図である。
図12において、ステップS7では、PUF領域8の各メモリセルの抵抗値がセンスアンプ回路30によって読み出される。ステップS8では、読み出された抵抗値を利用し、判定値設定回路13によって中央値が検出され、ステップS9で、検出された中央値が判定値として読出し回路12に出力される。ステップS10では、読出し回路12において、ステップS7で読み出された抵抗値とステップS9で設定された判定値との大小が比較され、生PUFデータが生成される。続いて、読出し回路12において、ステップS11で、PUFデータ登録時に格納されたヘルパーデータが読出され、読出し回路12が有する誤り訂正回路により、ステップS12において、ステップS9で取得した生PUFデータとステップS10で読出したヘルパーデータとを用いて、誤り訂正が実行され、その結果、ステップS13で、登録時の正しいPUFデータが取得される。
次に、ステップS12での読出し回路12の誤り訂正回路によるヘルパーデータを用いた誤り訂正方法について、図13を用いて説明する。ステップS10で再生された生PUFデータは、デバイスの経年劣化や動作時での環境変動の影響により、エラーが発生することがある。以下の説明では、再生時に取得した16ビットの生PUFデータに対し、P1とP2のそれぞれにe1、e2のエラーが発生した場合を想定する(但し、e1+e2は2ビット以下)。ステップS11で読出したヘルパーデータ(H)と生PUFデータの下位9ビット(P2+e2)とをXOR処理することで、PUFデータ登録時に生成した上位7ビットに対するパリティビットを再現する。しかし、生PUFデータP2はe2のエラーが含まれているため、実際にはe2のエラーが含んだパリティビット(E+e2)として再現される。次に、上位7ビットの生PUFデータ(P1+e1)と再現後のパリティデータ(E+e2)とを用いて、誤り訂正を実行する。e1+e2が2ビット以下の誤りであれば、誤り訂正が可能な誤りビット数であるため、元のPUFデータ(P1)とパリティデータ(E)とに訂正され、正しいP1とEとが再現される。最後に、正しく再現されたパリティデータ(E)とヘルパーデータ(H)とをXOR処理することで、元の正しいP2データが得られ、PUFデータ登録時の正しい16ビットのPUFデータを取得することができる。
なお、図12および図13で説明した処理は、上述したように、読出し回路12等により行われるが、これに限らず、不揮発性メモリ装置10が有する他の構成要素によって行われてもよいし、不揮発性メモリ装置10の外部の構成要素によって行われてもよい。
なお、一般的な誤り訂正は、誤り訂正を行うために情報データに対応したパリティデータ(誤り訂正データ)が付加され、データとパリティデータの両方が不揮発性メモリに格納される。例えば、PUFデータに対し、パリティデータを付加し不揮発性メモリに格納した場合、このパリティデータは、PUFデータと一対一で紐づけられているため、パリティデータの情報から、PUFデータが推測されるリスクを持つこととなる。しかし、本実施の形態で説明したPUFデータの誤り訂正方式は、PUFデータを二つに分割し、一方のPUFデータに対応するパリティデータを生成後、もう一方のPUFデータとのXORによる暗号化によって生成されたデータをヘルパーデータとして保存しているため、ヘルパーデータから元のPUFデータを予測することが困難となる。つまり、上述した誤り訂正方式は、従来の誤り訂正方式よりも、高セキュアである。
(PUF再構成モード)
図14は、本実施の形態における不揮発性メモリ装置10によるPUF再構成モードの動作例を示すフローチャートである。制御回路15(つまり、不揮発性メモリ装置10が備える再構成処理回路)は、ステップS14では、図5で説明した、高抵抗化書込みと低抵抗化書込みとを連続で処理する再構成書込みを実行し、ステップS15での判断により、指定の回数に到達するまで、再構成書込みを実行する。ステップS15での判断で用いる指定の回数(つまり、再構成書込み回数)は、再構成書込み前後のPUFのユニーク性を向上する上で有効なパラメータである。図15は、図14の再構成書込みを100回実行したときに生成される各回数でのPUFデータ間のハミング距離を求め、横軸をハミング距離、縦軸を規格化度数として示したグラフである。図15の(a)〜(c)は、それぞれ、再構成書込み回数を1回、3回、5回と回数を変化させた場合のグラフである。このハミング距離よるグラフは、PUFデータのユニーク性の評価指標として用いられ、分布の幅が狭くかつ、中心が0.5(つまり、半数のビットの値が異なる)が理想の値である。図15の(a)〜(c)に示されるように、再構成書込み回数を1回、3回、5回と回数を変化させた場合の分布を比較すると、再構成書込み回数を増やすことで、分布の中心が0.21、0.24、0.27と0.5に近づき、ユニーク性が改善していることが確認できる。つまり、PUF再構成モードにおいて、再構成書込みの回数はユニーク性を改善する上で、重要なパラメータとなる。しかし、一方で再構成回数の増加は、ユニーク性を良化させるものの、メモリセルに対し、多くの電圧ストレスを印加することになり、信頼性が低下する可能性が存在する。再構成回数の選択については、使用用途に要求されるユニーク性と信頼性の仕様とに応じて、最適な回数を選択する必要がある。
(恒久PUF登録モード)
恒久PUF登録モードでは、不揮発性メモリ装置10が備えるデータ生成回路は、第2の種類のチャレンジデータを取得した場合に、判定値設定回路13が設定した第1判定値とメモリセル21から読み出された抵抗値との比較によって、PUFデータである第2のレスポンスデータを生成してPUF領域8に格納する。そして、データ生成回路は、第2のレスポンスデータを生成した後に、再構成処理回路によって再構成書込みが実行され、かつ、再構成書込みが実行された後に第2の種類のチャレンジデータを再び取得した場合には、第2のレスポンスデータと同じ第4のレスポンスデータを生成してPUF領域8に格納する。つまり、この恒久PUF登録モードでは、不揮発性メモリ装置10は、第2の種類のチャレンジデータを取得する度に、再構成書込みによっては更新されない、新たなPUFデータを生成する。
以下、図16、図17ならびに、図18を用いて、恒久PUFデータ登録モードの動作について説明する。図16は、本実施の形態における不揮発性メモリ装置10による恒久PUFデータ登録モードの動作例を示すフローチャートである。図17は、図3に対して恒久PUFデータ登録モードに関する説明を追記した図である。図18は、本実施の形態における不揮発性メモリ装置10による恒久PUFデータの生成に用いられるデータの具体例を示す図である。より詳しくは、図18の(a)は、中央値、第1恒久判定値および第2恒久判定値の例を示し、図18の(b)は、抵抗値レジスタの値の例を示し、図18の(c)は、PUFデータおよび恒久情報データの例を示す。
図16において、ステップS17では、PUF領域8の各メモリセルの抵抗値がセンスアンプ回路30によって読み出される。ステップS18では、判定値設定回路13は、PUFデータの生成に用いられた判定値(以下、PUF判定値ともいう)よりも高い抵抗値で設定される第1恒久判定値と、PUF判定値よりも低い抵抗値で設定される第2恒久判定値を読出し回路12に出力(つまり、設定)する。続いて、読出し回路12は、ステップS19では、各メモリセルの抵抗値と設定された第1恒久判定値および第2恒久判定値とを比較し、ステップS20、S21において、図17に示すように、第1恒久判定値よりも大きく、第2恒久判定値よりも小さい抵抗値のメモリセルを「1」データとして割り当て、第1恒久判定値よりも小さく、第2恒久判定値よりも大きい抵抗値のメモリセルを「0」データとして割り当て、このように割り当てたデータを恒久情報データ(つまり、マスクデータ)として取得する。最後に、読出し回路12は、ステップS22で、取得した恒久情報データを、通常メモリと同様の方法で指定の情報領域7に格納し、終了する。この恒久情報データは、恒久PUFデータを示すものではなく、恒久PUFデータの対象となるビットの位置(アドレス)情報を示すデータとなるため、このデータが盗まれたとしても、恒久PUFデータが漏洩するリスクはないといえる。
以下では、具体的な値で処理した例として、図18を用いて説明する。図18では、説明の簡略化のために、取得ビットを16ビットとしている。例えば、図18の(a)に示されるように、判定値設定回路13によって、事前に検出された中央値(つまり、PUF判定値)が124、設定された第1恒久判定値が210、第2恒久判定値を40とする。センスアンプ回路によって測定された各メモリセルの抵抗値が読み出されると、図18の(b)に示されるように、読出し回路12内に搭載された、抵抗値レジスタに各メモリセルの抵抗値が格納される。次に、図18の(c)に示されるように、読出し回路12において、この取得した抵抗値と中央値とを比較することで、PUFデータ(表中では、100011100010110)が生成され、さらに、この取得した抵抗値と第1恒久判定値および第2恒久判定値とを比較することで、恒久情報データ(表中では、1100010000010011)が生成される。恒久情報データについては、情報領域7の指定のアドレスに格納され、管理される。
(恒久PUF再生モード)
次に図19、図20を用いて、恒久PUFデータ再生モードについて説明する。図19は、本実施の形態における不揮発性メモリ装置10による恒久PUFデータ再生モードの動作例を示すフローチャートである。図20は、本実施の形態における不揮発性メモリ装置10による恒久PUFデータの生成例を示す図である。
図19において、不揮発性メモリ装置10に第2の種類のチャレンジデータが入力されると、ステップS23では、PUF領域8の各メモリセルの抵抗値がセンスアンプ回路30によって読み出され、ステップ24では、得られた抵抗値は判定値設定回路13によって中央値が検出された後、ステップS25で、読出し回路12に対して、検出した中央値を判定値として出力(つまり、設定)する。ステップS26では、読出し回路12は、ステップS25で設定された判定値とステップS23で取得した抵抗値との大小を比較し、生PUFデータを取得する。続いて、読出し回路12は、ステップS27では、不揮発性メモリの情報領域7に格納されたヘルパーデータを読出し、読出し回路12が有する誤り訂正回路は、ステップS28で、読出したヘルパーデータを利用して、生PUFデータの誤り訂正を実行し、ステップS29にてPUFデータ登録時の正しいPUFデータを取得する。
次に、読出し回路12は、ステップS30では、恒久PUFデータ登録モード時に生成し情報領域7に格納された恒久情報データを読出し、ステップS31で、図20に示すように、恒久情報データで「1」データとして割り当てられているビットのみを抽出し、上位ビットから対象ビットとなるPUFデータを順番に取り込む。このとき、恒久PUF再生モード実行前に、PUF領域8でPUF再構成モードによる再構成書込みが、1回、2回・・・N回と実行されていたとしても、恒久情報データが1に対応するビットについては、PUFデータは変化せず、恒久PUFデータとして固定の値が常に抽出される。この恒久PUFデータの対象となるビットは、PUF領域8においてランダムに存在するため、センスアンプ回路30によって並列に読み出される複数のメモリセルを読出しメモリグループとすると、読出しメモリグループに恒久PUFデータが複数存在する場合もあれば、存在しない場合もあり得る。すなわち、ステップS32では、読出し回路12は、抽出された累積の恒久PUFデータが128ビットに到達したかを判定し、128ビットに到達していなければ、ステップS33のように、PUF領域8内の次の読出しメモリグループでの恒久PUFデータ抽出を繰り返し、恒久PUFデータが128ビットとなった時点で動作が終了し、第2のレスポンスデータまたは第4のレスポンスデータとして、恒久PUFデータを取得する。
なお、恒久PUFデータの抽出は、ヘルパーデータによる誤り訂正を用いず、生PUFデータで抽出してもよい。PUFデータの誤り発生の要因は、中央値付近のメモリセルの抵抗値が揺らぐことにより、中央値を超えることが要因である。しかし、本実施の形態のように、中央値付近を使用しない恒久PUFデータは、中央値から離れた箇所の抵抗値のみを採用しており、これは、言い換えるとエラーの発生しにくいデータのみを採用していると言える。
また、本実施の形態では、恒久PUFデータについては、誤り訂正処理を実施していないが、恒久PUFデータに対するヘルパーデータを生成し、誤り訂正を実施してもよい。特に車載などの厳しい環境下で高い信頼性が求められるような場合は、PUFデータと恒久PUFデータの両方のヘルパーデータを情報領域7に格納し、誤り訂正を実行することで、より信頼性を高めることが可能である。
また、PUFデータのヘルパーデータは情報領域7に格納せず、恒久PUFデータのヘルパーデータのみを情報領域7に格納してもよい。PUFデータを使用せずに恒久PUFデータのみを有効なPUFデータとして使用する場合、恒久PUFデータのヘルパーデータのみを登録することで、PUFデータに対するヘルパーデータを格納しない分、再生時に必要となるビット数を削減することができる。
以上のように、本実施の形態に係る不揮発性メモリ装置10は、抵抗変化型の複数のメモリセル21で構成されたメモリセルアレイ20と、チャレンジデータを取得した場合に、メモリセルアレイ20を用いてレスポンスデータを生成するデータ生成回路(主に制御回路15、読出し回路12および判定値設定回路13によって実現される機能回路)と、メモリセルアレイ20に対して、少なくとも1回以上電圧パルスを印加する再構成書込みを実行する再構成処理回路(主に制御回路15および書込み回路14によって実現される機能回路)とを備え、データ生成回路は、第1の種類のチャレンジデータを取得した場合に、不揮発性メモリ装置10ごとに異なる固有の第1のレスポンスデータを生成し(PUF登録モード)、第2の種類のチャレンジデータを取得した場合に、不揮発性メモリ装置10ごとに異なる固有の第2のレスポンスデータを生成し(恒久PUF登録モード)、第1のレスポンスデータを生成した後に、再構成処理回路によって再構成書込みが実行され、かつ、再構成書込みが実行された後に第1の種類のチャレンジデータを再び取得した場合に、第1のレスポンスデータとは異なる第3のレスポンスデータを生成し(PUF登録モード)、第2のレスポンスデータを生成した後に、再構成処理回路によって再構成書込みが実行され、かつ、再構成書込みが実行された後に第2の種類のチャレンジデータを再び取得した場合に、第2のレスポンスデータと同じ第4のレスポンスデータを生成する(恒久PUF登録モード)。
これにより、不揮発性メモリ装置10は、再構成書込みによって新たなPUFデータが生成されるPUF登録モードと、再構成書込みによっては変化しないPUFデータが生成される恒久PUF登録モードとを有する。よって、再構成書込みによって常に新たなPUFデータが生成される従来の不揮発性メモリ装置に比べ、より高い耐タンパ性を有する不揮発性メモリ装置が実現される。
また、メモリセルアレイ20は、複数のメモリセル21のうち、レスポンスデータを生成するために必要な抵抗値を保持するメモリセル21で構成される第1領域(情報領域7)と、複数のメモリセル21のうち、抵抗値以外の情報を保持するメモリセル21で構成される第2領域(PUF領域8)とを有する。これにより、一つの不揮発性メモリ装置10には、PUFデータの生成に用いられる抵抗値以外の情報を保持する第2領域が設けられるので、不揮発性メモリ装置10を、PUFデータの生成装置としてだけでなく、各種情報を記憶するための一般的なメモリとしても用いることもできる。
また、データ生成回路は、メモリセルアレイ20を構成する複数のメモリセル21から抵抗値を取得する読出し回路と、取得した抵抗値から第1判定値を決定する判定値設定回路13とを備え、第1の種類のチャレンジデータを取得した場合に、第1判定値と抵抗値との比較によって第1のレスポンスデータおよび第3のレスポンスデータを生成する。これにより、PUFデータの生成に用いられる第1判定値が判定値設定回路13によって動的に決定され得る。
また、第1判定値は、複数のメモリセル21のうちの所定の複数のメモリセル21の抵抗値の中央値である。これにより、中央値と各メモリセルの抵抗値との比較によってPUFデータが生成されるので、「1」が生成される確率と「0」が生成される確率とが略等しくなり、偏りの少ないPUFデータが生成される。
また、データ生成回路は、第1判定値よりも小さい第2判定値と、第1判定値よりも大きな第3判定値とを用いて、第2判定値よりも大きく、かつ、第3判定値よりも小さい抵抗値のメモリセル21に割り当てられる第1データと、第2判定値よりも小さい、または、第3判定値よりも大きい抵抗値のメモリセル21に割り当てられる第2データとで構成されたマスクデータ(つまり、恒久情報データ)を生成し、第2の種類のチャレンジデータを取得した場合に、マスクデータと第1のレスポンスデータまたは第3のレスポンスデータとの比較によって第2のレスポンスデータまたは第4のレスポンスデータを生成する。これにより、恒久PUF登録モードでは、第1判定値から大きく離れた抵抗値によって定義されるマスクデータが用いられるので、再構成書込みよっては変化しにくい安定したPUFデータが生成される。
また、メモリセルアレイ20は、複数のメモリセル21のうち、レスポンスデータを生成するために必要な抵抗値を保持するメモリセル21で構成される第1領域(情報領域7)と、複数のメモリセル21のうち、マスクデータが格納される第2領域(PUF領域8)とを有す。これにより、マスクデータは不揮発性メモリ装置10が有する第2領域に格納されるので、マスクデータの保存のために不揮発性メモリ装置10以外の特別な記憶装置を準備する必要がない。
また、メモリセルアレイ20を構成する複数のメモリセル21は、第1書込みを行うことで、第1抵抗状態から第2抵抗状態に遷移し、第1書込みとは異なる第2書込みを行うことで、第2抵抗状態から第1抵抗状態に遷移する性質を有し、データ生成回路は、メモリセルアレイ20の複数のメモリセル21のうち、第1抵抗状態に設定されている複数のメモリセル21を用いてレスポンスデータを生成する。これにより、同じ抵抗状態にあるメモリセルの抵抗値を用いてPUFデータが生成されるので、生成されるPUFデータの予測がより困難となり、高い安全性が確保される。
また、再構成処理回路は、再構成書込みとして、第1抵抗状態のメモリセル21に対して、第1書込みにより、第2抵抗状態へ遷移させた後、第2書込みにより、第1抵抗状態に遷移させる。これにより、再構成書込みが行われた後であっても、再構成書込みが行われる前と同じ抵抗状態に戻るので、再構成書込みの前後において生成されるPUFデータの予測がより困難となり、高い安全性が確保される。
また、データ生成回路は、誤り訂正回路を具備し、レスポンスデータに対して、誤り訂正を行う。これにより、不揮発性メモリ装置10に保存されたPUFデータが長期保存等によってビット誤りを生じた場合であっても、誤り訂正により、元のPUFデータが再現され得る。
また、メモリセルアレイ20は、複数のメモリセル21のうち、レスポンスデータを生成するために必要な抵抗値を保持するメモリセル21で構成される第1領域(情報領域7)と、複数のメモリセル21のうち、誤り訂正を行う際に必要なヘルパーデータが格納されるメモリセル21で構成される第2領域(PUF領域8)とを有する。これにより、誤り訂正に用いられるヘルパーデータが不揮発性メモリ装置10の第2領域に格納されるので、誤り訂正のために不揮発性メモリ装置10以外の特別な記憶装置を準備する必要がない。
また、本実施の形態に係るチャレンジ・レスポンス方法は、抵抗変化型の複数のメモリセル21で構成されたメモリセルアレイ20を備える不揮発性メモリ装置10によってチャレンジデータに対応するレスポンスデータを生成するチャレンジ・レスポンス方法であって、チャレンジデータを取得した場合に、メモリセルアレイ20を用いてレスポンスデータを生成するデータ生成ステップと、メモリセルアレイ20に対して、少なくとも1回以上電圧パルスを印加する再構成書込みを実行する再構成処理ステップとを含み、データ生成ステップでは、第1の種類のチャレンジデータを取得した場合に、不揮発性メモリ装置10ごとに異なる固有の第1のレスポンスデータを生成し(PUF登録モード)、第2の種類のチャレンジデータを取得した場合に、不揮発性メモリ装置10ごとに異なる固有の第2のレスポンスデータを生成し(恒久PUF登録モード)、第1のレスポンスデータを生成した後に、再構成処理ステップによって再構成書込みが実行され、かつ、再構成書込みが実行された後に第1の種類のチャレンジデータを取得した場合に、第1のレスポンスデータとは異なる第3のレスポンスデータを生成し(PUF登録モード)、第2のレスポンスデータを生成した後に、再構成処理ステップによって再構成書込みが実行され、かつ、再構成書込みが実行された後に第2の種類のチャレンジデータを取得した場合に、第2のレスポンスデータと同じ第4のレスポンスデータを生成する(恒久PUF登録モード)。
これにより、不揮発性メモリ装置10によって、再構成書込みによって新たなPUFデータが生成されるPUF登録モードと、再構成書込みによっては変化しないPUFデータが生成される恒久PUF登録モードとが実現される。よって、再構成書込みによって常に新たなPUFデータが生成される従来の不揮発性メモリ装置に比べ、より高い耐タンパ性を有するチャレンジ・レスポンス方法が実現される。
(その他の実施形態)
以上、実施の形態における不揮発性メモリ装置10およびチャレンジ・レスポンス方法について説明したが、本開示は、上記実施の形態に限定されるものではない。本開示の主旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、実施の形態における一部の構成要素を組み合わせて構築される別の形態も、本開示の範囲内に含まれる。
例えば、上記実施の形態では、生成したヘルパーデータを、必ず情報領域7に格納する必要はなく、サーバーや外付けの記録媒体に格納されてもよい。
また、上記実施の形態で記載した、PUF登録モード、PUF再生モード、PUF再構成モード、恒久PUF登録モード、恒久PUFデータ再生モードを制御する制御信号については、コンピュータ(コンピュータシステム)によって実行されてもよい。そして、コンピュータに実行させるためのプログラムとして実現できる。さらに、本開示は、そのプログラムを記録したCD−ROM等である非一時的なコンピュータ読み取り可能な記録媒体として実現できる。
例えば、本開示が、プログラム(ソフトウェア)で実現される場合には、コンピュータのCPU、メモリおよび入出力回路等のハードウェア資源を利用してプログラムが実行されることによって、各ステップが実行される。つまり、CPUがデータをメモリまたは入出力回路等から取得して演算したり、演算結果をメモリまたは入出力回路等に出力したりすることによって、各ステップが実行される。
また、上記実施の形態における不揮発性メモリ装置10に含まれる各構成要素は、専用または汎用の回路として実現されてもよい。
また、上記実施の形態における不揮発性メモリ装置10に含まれる各構成要素は、集積回路(IC:Integrated Circuit)であるLSI(Large Scale Integration)として実現されてもよい。
また、集積回路はLSIに限られず、専用回路または汎用プロセッサで実現されてもよい。プログラム可能なFPGA(Field Programmable Gate Array)、または、LSI内部の回路セルの接続および設定が再構成可能なリコンフィギュラブル・プロセッサが、利用されてもよい。
さらに、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて、不揮発性メモリ装置10に含まれる各構成要素の集積回路化が行われてもよい。
なお、上記説明から、当業者にとっては、本開示の多くの改良や他の実施の形態が明らかである。従って、上記説明は、例示としてのみ解釈されるべきであり、本開示を具体化する最良の態様を当業者に教示する目的で提供されたものである。本開示の精神を逸脱することなく、その構造および/または機能の詳細を実質的に変更できる。