(本開示の基礎となる知見)
一般的にはセキュリティを強化したICでは、内部に搭載する暗号回路を用いて機密情報を暗号化して利用しており、情報の漏洩を防止している。この場合、内部に保持している暗号鍵(「秘密鍵」ともいう。)の情報を外部に漏洩させないことが必須となる。
暗号回路の方式の代表的なものとしては3DES(Triple Data Encryption Standard)やAES(Advanced Encryption
Standard)といったものが広く用いられている。これらの暗号化方式には、入出力となっている平文(暗号前データ)−暗号文のペアを入手し、最高速のコンピュータを駆使して解析しても、現実的な時間内では暗号鍵を特定できないような高度な暗号化アルゴリズムが採用されており、その安全性は確認されている。しかしながら、暗号化されたデータへのハッキングは安全であるとされていても、暗号鍵が直接ハッキングされる脆弱性が懸念されていた。
古典的な手法のICでは、暗号鍵を内部のフューズROMや不揮発性メモリに保存していた。前者の構成には、X線投射などによってフューズ素子の状態を観察し、フューズ素子の導通・非導通を解析し、保存されている鍵情報をハッキングされる、という問題があった。また、後者の構成はX線投射では解析されないものの、不揮発性メモリのメモリ素子両端に直接プローブをあて電気的に素子の状態を読み取ることにより鍵情報をハッキングされる問題があった。そのため、セキュリティを強化したICでは内部回路に直接プローブを当てられないように最先端の微細プロセスを用いて製造される。つまり、最新技術のプローブの先端径よりも細い配線ルールをもつ微細プロセスでICを製造することで、プロービングによる解析の脅威を回避していた。
しかし、このような対策に対して、サイドチャネル攻撃という手法がとられ始め、脅威とされてきている。サイドチャネル攻撃とは、特許文献1に説明されるように、各信号処理回路の実行時の半導体デバイスの消費電力、および消費電力に依存する輻射電磁波などのサイドチャネル情報を用いて、暗号鍵を特定する手法である。この手法が脅威である理由は、攻撃者(ハッカー)がICに物理的に損傷を与えず、実動作中に鍵情報をハッキングできることにある。
このようなサイドチャネル攻撃に分類される差分電力攻撃(DPA:Differential Power Analysis)は、1999年にP. Kocherによって発表された。このDPA手法は、IC動作時の信号値または信号遷移頻度と、消費電力との間に相関関係があることを利用している。具体的には、DPA手法は、このような相関関係を多数回積分し、ノイズを除去しながら機械学習制御をおこなうことで固定パターンを導き出し、鍵情報を特定する。特許文献1の例では、暗号処理回路の動作から特定される例が示されている。不揮発性メモリに記憶された鍵情報は、暗号処理を実行することをトリガとしたタイミングで読み出される。DPAの原理に鑑みれば、そのタイミングと同じようなタイミングで読み出されたデータが特定され取得されれば、DPAによりデータ内容が解析される恐れがある。また、ICの内部仕様書が漏洩するとICの制御方法がハッカーに理解され、上述のように不揮発性メモリに保存されたデータ全てが、暗号鍵情報も含めてハードコピーされ、ICの複製が作成されてしまう。
近年、これらの課題を解決するために、PUF(物理的複製困難関数;Physically Unclonable Function)技術が提案されている(特許文献2、非特許文献1、2、3)。
PUF技術は、暗号や相互認証を安全に行う上でセキュリティを高める重要な技術である。
PUF技術は、製造ばらつきを活用してICごとに異なるユニークな個体識別情報を生成する技術である。以降、本明細書ではPUF技術により生成された個体識別情報を「ディジタルIDデータ」とも呼ぶ。ディジタルIDデータはICの物理特性のばらつきに関連づけられた各デバイス固有の乱数データであると言える。ICごとにその物理特性を人為的な制御することが不可能であるため、物理的な複製が不可能なデータを生成することができる。
なお、物理特性のばらつきの制御がある程度可能であったとしても、製造時に発生するランダムな工程ばらつきを利用する場合は、各ICに固有でユニークなディジタルIDデータをPUF技術により作成するのは容易である。しかしながら、事前に決定した特定の個体識別情報を故意に作成することは、実際上は極めて困難である。半導体プロセスにおいて様々な物理特性に製造ばらつきが生じる。製造ばらつきとして、例えば、半導体プロセスにおけるドーピング量、酸化物厚さ、チャネル長、金属配線層の幅や厚さ、寄生抵抗や寄生容量などが挙げられる。
具体的な先行例として、特許文献2や非特許文献1のようなSRAM−PUFが例示され得る。これらの例では、SRAMにおける各メモリセルにおいて、主にトランジスタのVtばらつき(動作電圧のばらつき)により電源投入時の初期値のディジタルデータが1状態になりやすいか、0状態になりやすいかが異なる現象を用いている。これは、各ICに搭載されたSRAMのセルごとに固有であり、異なっている。つまり、SRAMに電源投入したときの初期値データがディジタルIDデータとして用いられる。
その他にも特許文献1や非特許文献2では、アービター(Arbiter)PUFやグリッジPUFと呼ばれるPUF技術が紹介されている。アービターPUFやグリッジPUFでは、ゲート遅延や配線遅延を用いて組み合わせ回路の出力が入力に対してランダムに変化することを用いている。製造ばらつきによって変化するゲート遅延や配線遅延は、各ICにおける固有の遅延量となる。従って、ICごとに異なるものの各ICにおいては入力に対して、ほぼ等しい結果を出力するため、ディジタルIDデータを生成できる。
更に最近では、非特許文献3のような、不揮発性メモリであるReRAMの抵抗値ばらつきを用いたPUF技術も紹介されている。ReRAM PUFでは、隣接する2つセルを同一状態に書込み、書き込み後の抵抗値ばらつきによる大小関係を比較することで、固有のデータを生成する方式である。
このように、PUF技術により、各IC固有の乱数となるディジタルIDデータが複製できないデータとして生成される。このディジタルIDデータは、前述した秘密鍵を暗号化するデバイス鍵として用いられる。デバイス鍵(つまり、ディジタルIDデータ)によって暗号化された秘密鍵は、暗号化された状態で不揮発性メモリに保存される。すなわち、不揮発性メモリに記録された暗号化秘密鍵はデバイス鍵でしか元の秘密鍵データに復号できない。よって、ハッキングにより不揮発性メモリ内のデータが全てハードコピーされたとしても、各IC固有のデバイス鍵(つまり、ディジタルIDデータ)が複製できないため暗号化秘密鍵が元に戻せず利用することができない。
このようにPUF技術は、暗号や相互認証を安全に行う上でセキュリティを高める重要な技術である。
しかしながら、PUF技術は、セキュリティ性だけでなく、ICカード、電子機器、車載ECUやセンサなど様々な小型のIoT製品に組み込むためには、低消費電力で省面積化されることが求められる。
本開示は、低消費電力で省面積化を実現できるPUFとしての機能を有する不揮発性メモリ装置を提供する。
実施の形態について説明する前に、ReRAMの原理に紐付けながら、本願発明者らによる実験で見出された知見について説明する。なお、以下の説明は、本開示を理解する上でのデータの一例であり、本開示を限定するものではない。
不揮発性メモリ装置は、たとえば、個体識別情報を生成する機能を備えている。不揮発性メモリ装置では、生成した個体識別情報をもとに、データの暗号化・復号化が行われるとともに、相互間の認証も行われ得る。より具体的には、本開示にかかる不揮発性メモリ装置は、抵抗変化メモリ素子の内容を読み出し、少なくとも部分的にその内容からディジタル識別子を導出する個体識別情報用にチップごとにユニークな固有の乱数データを生成する機能を備えている。これにより、電気的、物理的な複製を妨げることが可能になる。
不揮発性メモリ装置は、たとえばモバイル型電子マネーで利用されるICチップを搭載したカードに搭載され得る。ICチップには、他に論理回路、揮発性メモリ装置、およびマイクロプロセッサーを具備する。これらを用いて暗号化機能やディジタル署名、ディジタル認証機能などの各種情報セキュリティ機能を実現する。これらの機能が実行されるときには秘密鍵によるデータ暗号が用いられる。ICカード内においても前述したように秘密鍵を複製できないように安全に保管することが望ましい。
上述の秘密鍵の保管を実現するために前述のPUF技術が用いられる。PUF技術で得られた個体識別情報である乱数のディジタルIDデータをデバイス暗号鍵として、秘密鍵を暗号化して不揮発性メモリに保存する。ディジタルIDデータは、各ICで異なる乱数であるため、それを用いて暗号化されたデータも各ICで固有のデータ列となる。暗号化された秘密鍵がハッキングなどにより別のICにコピーされたとしても複製できないディジタルIDデータがコピーされないので、もとの秘密鍵を不正利用されることがない。
しかしながら、ICカードのような超小型機器には、PUF技術を具現化したディジタルIDデータ生成のための回路も高度に小型化することが要求される。更に、バッテリーが非搭載の一般的なICカードでは、通信時に得られるワイヤレス給電による電力で短時間のうちに各種機能を実行する必要がある。つまり、ディジタルIDデータの生成においても超低消費電力化と生成速度の高速化が同時に求められる。そこで本願発明者らは、かかる要求に応えられるようなディジタルIDデータの生成器として、いくつかの先行技術を検討した。
非特許文献2では、先行例である各種PUF技術のベンチマークがなされている。特にディジタルIDデータの誤り率に着目すると、SRAM−PUFやグリッジPUFは環境変化も考慮すると最悪15%のデータ誤り率まで悪化するとされている。製造上の歩留まりを考えると20%以上のデータ誤りを許容する誤り訂正回路が必要であり回路規模がICにとって足かせとなってしまう。また、SRAM−PUFの場合の最新の研究では非特許文献1のように極めて低誤りのセルが報告されているが、誤り軽減のために対策が施された専用メモリセルを用いているため、セルサイズは22nmプロセスを用いているにもかかわらず4.66μm2と極めて大きい。さらに特別なPUF用のSRAMセルを設けた場合、素子の特定が容易で耐タンパ性の問題となる。
本願発明者らは、PUF技術の特徴を以下のように整理した。PUF技術の特徴は、主に次の2点にまとめられると考えられる。
特徴(1):複製できない物理的な現象から固有のディジタルIDデータ(個体識別情報)を得る。
特徴(2):物理的な現象は動的な回路制御によってのみ得られ、プローブによる直接的な読み取りといった静的な解析によっては必要とされる物理的な現象を得ることはできない。
さらに本願発明者らは、PUF技術によって得られるディジタルIDデータに求められる主な性能を以下のようにまとめた。
性能(1):PUF技術によって得られるディジタルIDデータは高い乱数性がありICごとにユニークな固有データとなる。
性能(2):PUF技術を採用するとしても、そのために付加すべき回路のオーバーヘッドが小さく、低コストで実現かつ、ディジタルIDデータを生成する際の消費電力が小さい。
性能(3):各データビットを生成する生成回路の並列処理数を多くすることで、サイドチャネル攻撃への耐性がある。
性能(4):データの誤り率が小さく、誤り訂正回路の回路規模を小さくできる。
性能(5):ディジタルIDデータを生成するタイミングに制約が少なく生成速度が高速である。
上述の特徴及び性能に対し、従来例として知られているSRAM−PUFでは、性能(5)に大きな制約がある。SRAM−PUFは原理上、電源の投入時にしか得られない。IC内部のSRAMは、データキャッシュとして利用するため、PUFによるIDデータ生成のときには一旦SRAM内のデータを退避するか、破棄しなければならずシステム動作上に大きな制約が発生する。また、この対策として任意のタイミングで生成するようにするためには非特許文献1のようにPUF専用のセルを別途設ける必要があり回路のオーバーヘッドが増加することから、上記性能(2)や(4)の要件を著しく低下させる。
本願発明者らは、以上のような課題を解決できる可能性のある新規なディジタルIDデータ生成方法を鋭意検討した。その結果、本願発明者らは、抵抗変化素子の書き込まれた抵抗値が正規分布にばらつく現象を見出し、抵抗値のばらつきから安定的なディジタルIDデータを生成することに想到した。
抵抗変化型のメモリ素子は、少なくとも第1の抵抗状態と、第1の抵抗状態よりも抵抗値の小さい第2の抵抗状態とを所定の電圧、極性および幅の電気的なパルス印加により変化する。通常は第1の抵抗状態と第2の抵抗状態とにディジタルデータ(たとえば「0」と「1」)を割り当て、情報として保存する。
ここで本願発明者らは、上述の第1の抵抗状態、第2の抵抗状態、更に後述する初期状態の何れか1つの状態に属するセル群に着目し、そのセル群に含まれる各セルをその抵抗値に応じて2つに分類した。つまり、そのセル群に含まれる各セルを2値化(ディジタルデータ化)した。各セルの抵抗値はばらついており、そのばらつきを利用して各セルをディジタルデータに変換することで、より安全で安定な暗号化技術等に応用可能な、従来にないディジタルIDデータの生成方法を提供することが可能となった。これが本願発明者らによって得られた知見の一つである。
また、ディジタルIDデータの生成を行う多くの回路要素を、通常の不揮発性メモリ装置として搭載される回路と共通化することが可能となる。そのため、ディジタルIDデータの生成のために増加する回路規模を大きく抑制することができ高度に小型化し得る。
さらに、不揮発性メモリ装置のデータ読み出しはメモリセルアレイの構造上、データを並列処理で複数読み出すため、ディジタルIDデータの生成スピードも飛躍的に高められる。同時に、サイドチャネル攻撃においても並列処理により輻射電磁波が並列数の総和で与えられるため攻撃に対する耐性を高められ得る。
本願発明者らによる知見に基づいて、本開示の一態様の概要は以下のとおりである。
本開示の一形態にかかる不揮発性メモリ装置は、抵抗値の変化を利用してデータを保持可能な抵抗変化型の複数のメモリセルで構成されるメモリセルアレイと、前記メモリセルアレイから、複数のメモリセルからなるメモリグループの単位で、前記複数のメモリセルの各々の抵抗値に依存する放電現象または充電現象に基づいて時間情報を取得する読み出し動作を行う読み出し回路と、前記読み出し回路による読み出し動作によって得られる前記複数のメモリセルの前記時間情報のそれぞれの昇順または降順における順位に基づいて、個体識別情報を生成するデータ生成回路とを備える。なお、時間情報の昇順または降順における順位とは、時間情報が示す値の昇順または降順における順番(複数のメモリセルにおいて何番目であるかという値)である。
これにより、読み出し回路によって読み出された抵抗変化型の複数のメモリセルの抵抗値に依存する時間情報の順位に基づいてデータ生成回路によって個体識別情報が生成される。よって、同じ抵抗状態にあるメモリセルにおける抵抗低ばらつきに基づくPUFデータとしての個体識別情報が生成される。さらに、個体識別情報を生成する回路を、通常の不揮発性メモリ装置として搭載される回路と共通化することが可能となり、これにより、低消費電力で省面積化を実現できるPUFとしての機能を有する不揮発性メモリ装置が実現される。
ここで、前記読み出し回路は、前記複数のメモリセルのうちの少なくとも2以上のメモリセルに対して、前記時間情報を同時に読み出してもよい。
これにより、メモリグループの単位で、同時に、複数のメモリセルから時間情報が読み出されるので、サイドチャネル攻撃に対する耐性が高く、かつ、高速に個体識別情報が生成される。
また、前記データ生成回路は、前記メモリグループ内の前記複数のメモリセルのうち少なくとも一つを参照メモリセルとして設定し、前記複数のメモリセルのうちの前記参照メモリセルを除くデータ生成用メモリセルの時間情報の前記順位が前記参照メモリセルの時間情報の前記順位よりも小さい場合は前記データ生成用メモリセルに対して第1データを割り当て、前記データ生成用メモリセルの時間情報の前記順位が前記参照メモリセルの時間情報の前記順位よりも大きい場合は前記データ生成用メモリセルに対して第2データを割り当てるデータ変換を行うデータ変換回路を有し、前記データ変換回路によるデータ変換後のデータに基づいて、前記個体識別情報を生成する。
これにより、メモリグループを構成する複数のメモリセルのうち少なくとも一つが参照メモリセルとして時間情報の順位の比較に用いられるので、参照メモリセルを固定的に設定する場合に比べ、生成される個体識別情報の乱数性が高められる。
また、前記データ生成回路は、前記メモリグループ内の前記複数のメモリセルのうち少なくとも一つを参照メモリセルとして設定し、前記複数のメモリセルのうちの前記参照メモリセルを除くデータ生成用メモリセルの時間情報と前記参照メモリセルの時間情報とを比較した際に、前記データ生成用メモリセルの時間情報が前記参照メモリセルの時間情報よりも小さい場合は前記データ生成用メモリセルに対して第1データを割り当て、前記データ生成用メモリセルの時間情報が前記参照メモリセルの時間情報よりも大きい場合は前記データ生成用メモリセルに対して第2データを割り当てるデータ変換を行うデータ変換回路を有し、前記データ変換回路によるデータ変換後のデータに基づいて、前記個体識別情報を生成してもよい。
具体的には、前記参照メモリセルは、前記メモリグループ内の前記複数のメモリセルの時間情報の中から上位M(Mは2以上)番目の時間情報に対応するメモリセルに割り当てられてもよい。また、前記参照メモリセルは、前記メモリグループ内の前記複数のメモリセルのアドレスの中から上位N(Nは自然数)番目のアドレスに対応するメモリセルに割り当てられてもよい。
これにより、メモリグループを構成する複数のメモリセルのうち少なくとも一つが参照メモリセルとして時間情報の比較に用いられるので、参照メモリセルを固定的に設定する場合に比べ、生成される個体識別情報の乱数性が高められる。
また、前記データ変換回路は、前記参照メモリセルに対して前記第1データを割り当ててもよい。
これにより、参照メモリセルに対してもデータを割り当てたうえで、個体識別情報が生成されるので、参照メモリセルに対してデータを割り当てない場合に比べ、個体識別情報の生成に用いられるメモリセルの個数が多くなり、生成される個体識別情報の乱数性が高められる。
また、前記第1データおよび前記第2データの一方は偶数であり、他方は奇数であり、前記データ生成回路は、前記データ変換回路によって前記複数のメモリセルに割り当てられた第1データと第2データの合計を算出し、合計の数が奇数であれば第1データを出力し、偶数であれば第2データを出力するデータ処理を行うデータ処理回路を有し、前記データ処理回路によるデータ処理後のデータに基づいて、前記個体識別情報を生成してもよい。
これにより、データ変換回路によるデータ変換後のディジタルデータに対して、データ処理回路において、偶数/奇数方式によるデータ処理が加えられたうえで、個体識別情報が生成されるので、データ処理が加えられない場合に比べ、生成される個体識別情報の乱数性が高められる。
また、前記データ生成回路は、前記データ変換回路によって前記複数のメモリセルに割り当てられた第1データの個数と第2データの個数とを算出し、前記第1データの個数が前記第2データの個数よりも多ければ第1データを出力し、前記第1データの個数が前記第2データの個数よりも少なければ前記第2データを出力するデータ処理を行うデータ処理回路を有し、前記データ処理回路によるデータ処理後のデータに基づいて、前記個体識別情報を生成してもよい。
これにより、データ変換回路によるデータ変換後のディジタルデータに対して、データ処理回路において、多数決方式によるデータ処理が加えられたうえで、個体識別情報が生成されるので、データ処理が加えられない場合に比べ、生成される個体識別情報の乱数性が高められる。
また、前記データ変換回路は、変換信号に応じて前記データ変換の方法を選択し、前記データ処理回路は、処理信号に応じて前記データ処理の方法を選択し、前記データ生成回路は、前記個体識別情報の再生時には、前記変換信号および前記処理信号を含めたチャレンジ信号に基づき、前記データ変換回路および前記データ処理回路を用いて、前記個体識別情報を生成してもよい。
これにより、外部から与えられる変換信号および処理信号を含めたチャレンジ信号に基づき、PUFデータである個体識別情報がレスポンスとして生成されるので、セキュリティ性の高いチャレンジレスポンス認証に適用できる不揮発性メモリ装置が実現される。
また、前記データ変換回路は、変換信号に応じて前記データ変換の方法を選択し、前記データ処理回路は、処理信号に応じて前記データ処理の方法を選択し、前記データ生成回路は、前記個体識別情報の再生時には、予め定められた固定の前記変換信号および前記処理信号を、それぞれ、前記データ変換回路および前記データ処理回路に入力することで、前記個体識別情報を生成してもよい。
これにより、予め定められた固定の変換信号および処理信号から、PUFデータである個体識別情報が生成されるので、セキュリティ性の高い固有IDデータ方式に適用できる不揮発性メモリ装置が実現される。
以下、添付図面を参照しながら、これらの知見に基づく本開示の詳細を説明する。
以下で説明する実施の形態は、いずれも一具体例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置および接続形態、ステップ、ステップの順序などは、あくまで一例であり、本開示を限定するものではない。以下の実施の形態における構成要素のうち、本開示の最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。また、図面において、同じ符号が付いたものは、説明を省略する場合がある。また、図面は理解しやすくするために、それぞれの構成要素を模式的に示したもので、形状および寸法比等については正確な表示ではない場合がある。また、製造方法においては、必要に応じて、各工程の順序等を変更でき、かつ、他の公知の工程を追加できる。
(実施の形態)
(本開示で用いる抵抗変化型不揮発性メモリ装置の概要)
図1は、実施の形態にかかる抵抗変化型不揮発性メモリ装置100の概略構成の一例を示すブロック図である。また、図2は、実施の形態にかかる抵抗変化型不揮発性メモリ装置100が備えるメモリセル91の概略構成の一例を示す断面図である。なお、本明細書では、抵抗変化型不揮発性メモリ装置を、単に不揮発性メモリ装置ともいう。
図1に示す例では、本実施の形態の抵抗変化型不揮発性メモリ装置100は、少なくともメモリセルアレイ90と、制御装置93とを備えている。なお、制御装置93は必ずしも抵抗変化型不揮発性メモリ装置100の一部である必要はなく、抵抗変化型不揮発性メモリ装置100外に接続された制御装置を用いて、以下に説明する動作が行われてもよい。
メモリセルアレイ90は、抵抗値の変化を利用してデータを保持可能な抵抗変化型の複数のメモリセル91で構成され、本実施の形態では、複数のメモリセル91がアレイ状に配置された構成を有する。
制御装置93は、抵抗値が同一の抵抗状態にあるメモリセル91群から複数の抵抗値情報(具体的には、抵抗値に対応する時間情報)を取得し、時間情報のばらつきを検出する。検出された時間情報に基づき、メモリセル91群から参照メモリセルを設定し、同一の抵抗状態にあるメモリセル群の各メモリセルと設定された参照メモリセルを比較することで、0または1のディジタルデータのいずれの値を割り当てるかを判定し、ディジタルIDデータを生成する。同一の抵抗状態とは、ディジタル情報の1状態を割り当てるために用いる1つの抵抗値範囲のことをいう。制御装置93は、後述する読み出し回路と、データ生成回路とを含む回路である。読み出し回路は、メモリセルアレイ90から、複数のメモリセル91からなるメモリグループの単位で、複数のメモリセル91の各々の抵抗値に依存する放電現象または充電現象に基づいて時間情報を取得する読み出し動作を同時に行う回路である。データ生成回路は、読み出し回路による読み出し動作によって得られる複数のメモリセル91の時間情報を互いに比較することにより個体識別情報を生成する回路である。
一般に、不揮発性メモリ装置において、メモリセルがもつ物理量に、例えばディジタル量の最小単位である2値情報を割り当てるとき、その物理量が、所定の閾値以上のある範囲に属するか、または所定の閾値未満のある範囲に属するかによって、2値情報のいずれを割り当てるかを変える。近年の不揮発性メモリ装置には誤り訂正回路が具備される。誤り訂正回路の誤り訂正処理によれば、一部のメモリセルの物理量が2値情報を割り当てるために予め想定された範囲に入らない場合であっても、その物理量から得られる2値情報は正しく復元される。これは、ディジタルIDデータをなすメモリセル群のうちの一部が同一の抵抗値範囲になくても良いことを意味する。本明細書の定義として、ディジタルIDデータをなすメモリセル群の少なくとも半数より多いメモリセルが同一の抵抗状態にあれば、本開示における諸機能を達成できるものとする。
抵抗変化型不揮発性メモリ装置100の個体識別情報として利用されるディジタルIDデータを生成する際には、各抵抗値が、上述した第1の抵抗状態と第2の抵抗状態、あるいは後述する初期状態の何れかの同一の抵抗値範囲に属している複数の不揮発性メモリセルを利用する。当該複数の不揮発性メモリセルにはユーザデータは書き込まれない。つまり、抵抗値の書換えは行われない。各不揮発性メモリセルの抵抗値は、予め定められた抵抗値範囲に固定化されている。各抵抗値は同一の抵抗値範囲内でばらついており、そのばらつきが、抵抗変化型不揮発性メモリ装置100の固有の情報になる。
「抵抗値情報」とは、抵抗値と相関関係を有する情報であり、抵抗値そのものであってもよいし、抵抗値に応じて増減する値であってもよい。抵抗値に応じて増減する値としては、例えば後述するような、メモリセルに並列に接続されたコンデンサ(キャパシタ)に蓄積された電荷が選択されたメモリセルを介して放電される放電時間や、逆にディスチャージされたコンデンサに所定の定電流を流し所定のレベルまでチャージされる充電時間でもよい。該放電時間または充電時間は、メモリセルの抵抗値に依存する放電現象または充電現象に基づく時間情報の一例であり、具体的には、所定のクロック周期でカウントされたカウント値等であってもよい。なお、コンデンサは素子であることには限定されず、例えば配線などの寄生容量でもよい。
抵抗値情報は、所定の分解能のセンスアンプによって測定された値であってもよい。あるいは、抵抗値情報は、センスアンプによって測定された値が、閾値によって区分けされた複数の抵抗値範囲のいずれに該当するかを判定することによって得られた値であってもよい。その場合、複数の抵抗値範囲のそれぞれは、一部の抵抗値範囲が、さらに細かく区分けされたものであってもよい。
図2に示す例では、メモリセル91が備える抵抗変化素子120が、下地層122(例えば、Ta2O5)と、第1電極124(例えば、Ir)と、抵抗変化層126(例えば、TaOx)と、第2電極128(例えば、TaN)とを備えている。それぞれのメモリセル91には、特定のメモリセルを選択するためのトランジスタ129が接続されている。
メモリセル91は、異なる複数の電気的信号が印加されることによって、抵抗値が複数の可変抵抗値範囲の間を可逆的に遷移する可変状態を取りうる性質を有する。
「初期状態」とは、抵抗値が可変抵抗値範囲と重複しない初期抵抗値範囲にある状態をいう。初期状態にあるメモリセルは、フォーミングが行われない限り可変状態とならない。「フォーミング」とは、所定の電気的ストレスをメモリセルに印加して、メモリセルの抵抗値が複数の可変抵抗値範囲の間を可逆的に遷移する状態へと、メモリセルを変化させることをいう。
フォーミングのために印加される電気的ストレス(フォーミングストレス)は、例えば、所定の電圧と時間幅を有する電気的パルスである場合もあるし、複数の電気的パルスを組み合わせたものである場合もある。フォーミングストレスは累積的なストレスであってもよい。その場合、ストレスの累積量が所定量を超えたときに、メモリセル91(図2)は初期状態から可変状態に遷移する。
本実施の形態では、メモリセル91は、製造後、フォーミングをしなければ抵抗値が複数の可変抵抗値範囲の間を可逆的に遷移する可変状態とならないような性質を有しているとする。つまり、半導体プロセス等により製造した後、フォーミングストレスが印加される前の抵抗変化素子は、初期状態にあるとして説明する。
しかしながら、この性質は一例であり必須ではない。メモリセル91は、初期状態を取りうる素子でなくてもよく、たとえば、可変状態のみを有する、いわゆるフォーミングレスの素子であってもよい。
図3を参照しながら、ディジタルIDのセット状態(「0」または「1」を書き込んだ状態)におけるメモリセルの抵抗値ばらつきの特性を説明する。図3は、ディジタルIDのセット状態におけるメモリセルの規格化抵抗値情報と、その規格化抵抗値情報のばらつきについての標準正規分布の偏差との関係をプロット(三角印をプロット)した図である。この図に示すように、メモリセルの正規分布は抵抗値情報に対してほぼ直線に分布している。このことから、抵抗分布のばらつきは極めてランダムな現象であることが示される。
図4を参照しながら、本開示の不揮発性メモリ装置ではディジタルIDデータが複製できない(つまり、複製が極めて困難である)理由について説明する。図4には、異なる2つのチップXとチップYの同一アドレスに対し、書き込み条件A(x印のプロット)と条件B(丸印のプロット)の2条件でそれぞれ書き込みを実行し、横軸をチップXの抵抗値、縦軸をチップYの抵抗値としたときの、各チップ間の同一アドレスの抵抗値の関係を示している。図4からも明らかなように、同一条件かつアドレスとの抵抗値の関係性は全く見えていない。これは、書き込みの電圧やパルス幅を変更した、条件Aと条件Bで比較しても同様である。つまり、同一の抵抗状態を持つメモリグループから更に2値のデータを生成する場合、任意のアドレスに対して任意のデータを書き分けることが不可能(つまり、極めて困難)であることがわかる。
次に、本実施の形態で利用した抵抗変化素子における抵抗変化のメカニズムに紐付けながら、ディジタルIDデータの複製が極めて困難である理由について説明する。図5に示すように、抵抗変化素子は高電圧を印加するフォーミングにより、初期の絶縁状態から絶縁破壊が引き起こされ、抵抗変化層にフィラメントと呼ばれる導電性パスが形成される。このフィラメントはフォーミングにより、抵抗変化層内に酸素欠損が発生し、その酸素欠損の連なりによって形成される。そして、この発生する酸素欠損の発生箇所と個数は素子ごとにランダムである。また、酸素欠損が相対的に多く発生した抵抗は低くなり、欠損が相対的に少ない素子の抵抗は高くなっており、ばらつきが生じている。このようなばらつきは制御不可(つまり、制御が極めて困難)であり、酸素欠損の形成が多く、フィラメントパスが形成されやすい場合は、その抵抗変化素子の抵抗値はより低くなる。一方、酸素欠損の密度が一部でも低いところがある場合はフィラメントパスが形成されにくいため、その抵抗変化素子の抵抗値はより高くなる。各素子の抵抗値はばらついており、このようなばらつきを人為的に制御することはできない(つまり、制御することは極めて困難である)。
(抵抗変化型不揮発性メモリ装置の構成と回路基本動作)
図6は、実施の形態の不揮発性メモリ装置10の具体的な構成例を示すブロック図である。なお、図6はあくまで一例であり、実施の形態の不揮発性メモリ装置の具体的構成が図6に示される構成に限定されるものではない。
図6に示すように、実施の形態の不揮発性メモリ装置10は、半導体基板上に、メモリ本体部22を備えている。また不揮発性メモリ装置10は、さらにデータ入出力回路6と、制御回路15と、アドレス入力回路16とを備えている。
メモリ本体部22は、読み出し回路11と、書き込み回路14と、カラムデコーダ回路17と、ロウデコーダ回路18と、データ生成回路25と、メモリセルアレイ20とを備えている。
書き込み回路14は、選択されたメモリセル21へ各動作における所定の電圧を印加してデータを書き込む。
読み出し回路11は、メモリセルアレイ20から、複数のメモリセル21からなるメモリグループの単位で、複数のメモリセル21の各々の抵抗値に依存する放電現象または充電現象に基づいて時間情報を取得する読み出し動作を同時(並列的)に行う回路であり、本実施の形態では、ビット線に流れる電流の変化を、後述する読み出し方式(放電現象)により検知し、選択されたメモリセルの抵抗値情報を時間情報として出力する。
データ生成回路25は、読み出し回路11による読み出し動作によって得られる複数のメモリセル21の時間情報を互いに比較することにより個体識別情報を生成する回路であり、本実施の形態では、2値のディジタルIDデータを生成するための基準となる参照メモリセルを設定し、各メモリセルの時間情報に基づき、2値のディジタルIDデータ(出力Dout)を生成する。
ロウデコーダ回路18は、メモリセルアレイ20に接続されている複数のn本のワード線WLの中から1つのワード線WLを選択する。
カラムデコーダ回路17は、複数のn本のビット線BLと複数のn本のソース線SLの中から並列読み出し数(メモリグループを構成するメモリセル数)であるk本のビット線BLと、それに対応するk本のソース線SLとを選択し、書き込み回路14および読み出し回路11へ接続する。
これら(書き込み回路14、読み出し回路11、データ生成回路25、ロウデコーダ回路18およびカラムデコーダ回路17)は並列的に読み出しおよび/または書き込みが行われる行および/または列の数に応じて動作する。
不揮発性メモリ装置10の読み出し回路11は時間情報として出力Toutを有する。読み出し回路11は、カラムデコーダ回路17とロウデコーダ回路18により選択されたk個のメモリセル(つまり、メモリグループ)がk本のビット線を介して、接続され、k個のメモリセルの時間情報であるToutをデータ生成回路25へ送信する。
また、データ生成回路25は、外部から与えられる変換信号と処理信号とに基づいて、入力されたToutを2値のディジタルIDデータDoutに変換する。つまり、データ生成回路25は、読み出し回路11から得られる時間情報(Tout)を利用し、2値のディジタルIDデータへ変換し、出力Doutとしてデータ入出力回路6に送信する。
図6に示すように、メモリ本体部22は、記憶領域として、ユーザデータ領域7とディジタルIDデータ領域8とを有する。ユーザデータ領域7にはユーザの任意のデータ(ユーザデータ)が記憶される。ユーザデータの書き込みおよび読み出しはユーザデータ領域7のアドレスが選択されて行われる。ディジタルIDデータ領域8では、ディジタルIDデータとして用いられる複製困難な個体識別情報を導き出すために、メモリセル群には同一の抵抗状態が書き込まれている。これにより、データ生成回路25から、出力Doutとして、ディジタルIDデータ(個体識別情報)が出力されることになる。
なお、ユーザデータ領域7とディジタルIDデータ領域8は図6のようにワード線単位に分けられる必要はなく、メモリセルアレイ20上の任意の領域で区分けしても良い。物理的な領域区分の規則性を複雑にするほどハッキングなどの攻撃への耐性を高めることができる。
メモリセルアレイ20は、ワード線単位で、WL0、WL1、WL2、・・・WLm−1をユーザデータ領域7と、WLm、・・・WLnをディジタルIDデータ領域8として切り分けられ、(1)互いに平行に延びるように形成された複数のワード線WL0、WL1、WL2、・・・WLm−k−1、WLm−k、・・・WLmと、(2)複数のワード線と交差し、かつ互いに平行に延びるようにして形成された複数のビット線BL0、BL1、・・・BLnと、(3)複数のワード線と交差し、かつ互いに平行に、かつビット線と平行に延びるようにして形成されたソース線SL0、SL1、SL2、・・・SLnと、を備える。複数のワード線と複数のビット線の立体交差点には、それぞれメモリセル21が配置されている。
それぞれのメモリセル21は、図8に示されるように、抵抗変化素子23とトランジスタ24とを備える。ワード線WL0、WL1、WL2、・・・WLm−k−1、WLm−k、・・・WLmはそれぞれのトランジスタ24のゲート端子に接続され、ビット線BL0、BL1、・・・BLnは、それぞれのメモリセル21が備える抵抗変化素子23の第2電極に接続され、抵抗変化素子の第1電極はトランジスタ24の第2主端子に各々接続され、ソース線SL0、SL1、SL2、・・・SLnは、トランジスタ24の第1主端子にそれぞれ接続されている。
抵抗変化素子23はメモリセル21において不揮発性メモリ素子として動作する。不揮発性メモリ装置10は、各メモリセル21が1個のトランジスタ24と1個の抵抗変化素子23とから構成される、いわゆる1T1R型の抵抗変化型不揮発性メモリ装置である。メモリセルの選択素子は前述のトランジスタに限定されない。例えばダイオードなどの2端子素子を用いても良い。
制御回路15はコントロール信号に基づき、カラムデコーダ回路17に対し、ビット線あるいはソース線のいずれか一方を選択し、書き込み時は書き込み回路14、読み出し時は読み出し回路11に接続させる。その上で、書き込み回路14あるいは読み出し回路11を動作させる。
抵抗変化素子23については、実施の形態において上述した抵抗変化素子120と同様の構成とすることができるので、詳細な説明を省略する。
なお、図6に示す例では、メモリセルアレイ20の選択トランジスタとしてNMOSトランジスタが用いられているが、これに限定されず、PMOSトランジスタを用いても良い。
図7は実施の形態にかかる不揮発性メモリ装置10が備える読み出し回路11とデータ生成回路25の構成例を示す図である。読み出し回路11は、k個のメモリセルからなるメモリグループの単位で同時に時間情報を取得するために、k個の放電方式によるセンスアンプ回路30(SA0、SA1、SA2、・・・SAk)を有している。カラムデコーダ回路17より選択されたk本のビット線が、k個の放電方式によるセンスアンプ回路30に各々接続される。各センスアンプ回路30では、各々の時間情報が出力され、データ生成回路25へと送信される。これによって、メモリセルアレイ20を構成する複数のメモリセル21のうち、選択ワード線WLおよびカラムデコーダ回路17によって選択された複数のメモリセル21からなるメモリグループに対して、複数のメモリセル21の各々の抵抗値に依存する放電現象に基づいて時間情報を取得する読み出し動作が同時に行われる。
データ生成回路25は、読み出し回路11による読み出し動作によって得られる複数のメモリセル21の時間情報を互いに比較することによりディジタルIDデータ(個体識別情報)を生成する回路であり、データ変換回路28とデータ処理回路29で構成される。データ変換回路28には変換信号が入力され、データ処理回路29には処理信号が入力される。
データ変換回路28は、メモリグループ内の複数のメモリセル21のうち少なくとも一つを参照メモリセルとして設定し、複数のメモリセル21のうちの参照メモリセルを除くデータ生成用メモリセルの時間情報と参照メモリセルの時間情報とを比較した際に、データ生成用メモリセルの時間情報が参照メモリセルの時間情報よりも小さい場合はデータ生成用メモリセルに対して第1データを割り当て、データ生成用メモリセルの時間情報が参照メモリセルの時間情報よりも大きい場合はデータ生成用メモリセルに対して第2データを割り当てるデータ変換を行う。本実施の形態では、データ変換回路28において、変換信号に基づき、参照メモリセルが設定され、読み出し回路11からのToutから得られる各時間情報が0または1のデータとして2値化される。つまり、データ変換回路28では、変換信号に応じてデータ変換の方法が選択される。
データ処理回路29は、処理信号に基づき、データ変換回路28によって2値化されたデータを別データに変換するための処理を加える回路である。つまり、データ処理回路29では、処理信号に応じてデータ処理の方法が選択される。
なお、データ変換回路28に入力される変換信号とその変換信号に基づくデータ変換回路28における参照メモリセルの設定方法、および、データ処理回路29に入力される処理信号とその処理信号に基づくデータ処理回路29におけるデータ処理方法については、後述で詳細に述べる。
図8は実施の形態にかかる不揮発性メモリ装置10が備えるセンスアンプ回路30の構成例を示す回路図である。なお、本図には、センスアンプ回路30に接続されるメモリセル21も併せて図示されている。当該センスアンプ回路30は、読み出し回路11を構成するk個のセンスアンプ回路30の一つであり、コンパレータ31と、プリチャージ用PMOSトランジスタ33と、ロード用PMOSトランジスタ34と、クランプ用NMOSトランジスタ36とを備えている。
コンパレータ31は、一方の入力端子にノードSENの電圧が入力され、他端には参照電圧となるVREFが入力され、出力は時間情報Toutとして、データ生成回路25に接続される。
プリチャージ用PMOSトランジスタ33は、ゲート端子にプリチャージ制御信号PREが入力され、ソース端子に電源電圧VDDが入力され、ドレイン端子にノードSENが接続されている。
ロード用PMOSトランジスタ34は、ゲート端子にロード制御信号LOADが入力され、ソース端子に電源電圧VDDが入力され、ドレイン端子にノードSENが接続されている。
クランプ用NMOSトランジスタ36は、ゲートにクランプ制御信号CLMPが入力され、ソース端子もしくはドレイン端子の何れか一方にノードSENが接続され、他端にはカラムデコーダ回路17を介して選択されたメモリセル21が接続されている。なお、図8ではカラムデコーダ回路17の図示は省略している。
またノードSENには、負荷容量として、キャパシタ136が接続されている。
ここで、センスアンプ回路30が時間情報であるカウント値(抵抗カウント値の一例)を出力する動作について、センスアンプ回路30の構成図(図8)と図9のタイミングチャートを用いて、具体的に説明する。
図9は、実施の形態において選択されたメモリセルをセンスアンプ回路30が放電方式にて読み出す場合のタイミングチャートである。
T1のプリチャージ期間では、プリチャージ制御信号PREはロウレベルとなり、プリチャージ用PMOSトランジスタ33はオン状態になる一方で、ロード制御信号LOADはハイレベルとなり、ロード用PMOSトランジスタ34はオフ状態となる。選択ワード線WLsの電位はロウレベルでトランジスタ24はオフ状態となっている。
クランプ用NMOSトランジスタ36のゲート端子にVCLMPの電圧が印加されることで、選択ビット線BLsの電位はVCLMPからVT(クランプ用NMOSトランジスタ36の閾値)を引いた電位までプリチャージされる。選択ソース線SLsはGNDに固定される。ノードSENは電源電圧VDDまでプリチャージされる。
T2のセンス期間では、プリチャージ制御信号PREをハイレベルとすることで、プリチャージ用PMOSトランジスタ33がオフ状態となり、ロード制御信号LOADがロウレベルになることで、ロード用PMOSトランジスタ34はオン状態になる。また選択ワード線WLsの電位をハイレベルにすることで、NMOSトランジスタ24はオン状態となる。
そして選択ビット線BLsから選択されたメモリセル21を介して選択ソース線SLsへと電圧が印加され、放電が開始される。放電は予め定めらえたT2のセンス期間中まで実行される。放電時間中はノードSENの電位と参照電圧VREFの電圧とが比較され続け、ノードSENの電位が参照電圧VREFを上回る間は、ToutはGNDレベルが出力されるが、ノードSENの電位が参照電圧VREFを下回ると同時にToutはGNDから電源電圧VDDに反転する。この放電開始からToutの立ち上がり(立ち上がりエッジ)までの期間(放電時間)は、接続されたメモリセル21の抵抗値に依存する。読み出し時の抵抗変化素子23の抵抗値が高いほど放電時間は長くなる。この放電時間は、メモリセル21の抵抗値に依存する放電現象または充電現象に基づく時間情報の一例である。
T3のスタンバイ期間では、ノードSENがGNDに固定され、プリチャージ制御信号PREはロウレベルとなり、プリチャージ用PMOSトランジスタ33はオン状態になる一方で、ロード制御信号LOADはハイレベルとなり、ロード用PMOSトランジスタ34はオフ状態となる。選択ワード線WLsの電位はロウレベルでトランジスタ24はオフ状態となる。
なお、上述したキャパシタ136の容量を調整することで、放電時間を調整することも可能である。キャパシタ136の容量が大きければ、ノードSENの放電時間も長くなり、容量が小さければ、ノードSENの放電時間は短くなる。キャパシタ136は、例えば、放電時間が速い低抵抗レベルの検出精度を向上させたいとき、効果的である。しかし、低い抵抗値の場合、放電時間がカウント値の分解能を上回る可能性があるため、区別できなくなる場合がある。そこで、ノードSENに容量負荷を上乗せし、放電時間を延長させることで、意図的に分解能で検出できるレベルの放電特性に調整することが可能となる。しかしながら、原理上放電方式の場合は高抵抗になればなるほど放電時間が長くなり、それにともなって放電の傾斜が緩やかに変化するため、カウント値に対する時間情報の分解能が向上する。つまり放電方式の場合は高抵抗側が高精度な時間情報を得ることのできる方式である。
また、図7に示されるように、読み出し回路11は、本実施の形態の不揮発性メモリ装置10において、k個のセンスアンプ回路30を有するため、最大k個のセンスアンプ回路30を同時に並列動作させることが可能となる。
図10は、k個のセンスアンプ回路30に同一の抵抗状態で構成されたディジタルIDデータ領域8内の各々異なるメモリセル21を接続し、同タイミングで放電を開始した場合の各Toutの立ち上がりエッジ(つまり、時間情報)を示すタイミングチャートを示している。なお、ノードSENもk本存在するが、図10では説明のため、ノードSENを重ねた表示で示している。図10に示すように、同一の抵抗状態においてもメモリセル毎に、僅かな抵抗値ばらつきをもつため、Toutの立ち上がりエッジのタイミングが異なっていることが確認できる。すなわち、本実施の形態のセンスアンプ回路30をk個同時に動作させることで、k個のメモリセル群(つまり、メモリグループ)における各抵抗値のばらつき(抵抗値の順位)を高精度かつ高速に検出することが可能である。
(抵抗変化型不揮発性メモリ装置のシステム動作)
図11は、実施の形態の不揮発性メモリ装置10の動作例を示すフローチャートである。以下、図11を参照しつつ、不揮発性メモリ装置10の動作を説明する。ここでは、読み出し回路11、および、データ生成回路25(データ変換回路28およびデータ処理回路29)によるディジタルIDデータ(個体識別情報)の生成処理が示されている。
ステップS31では、変換信号および処理信号をデータ生成回路25に入力することにより、モード/処理が選択される。この各モードおよび処理に関しては、後で詳細に説明する。続いて、ステップS32において、データ変換回路28は、ステップS31によって選択されたモード選択に基づき、並列動作のk個のメモリセル21からなるメモリグループの中から、1ビットを参照メモリセルとして設定する。ステップS33では、k個のセンスアンプ回路30は、同時に放電開始させ、各々Toutが立ち上がりエッジを出力する。ステップS34においては、データ変換回路28は、メモリグループの中から、ステップS32で設定された参照メモリセルのToutの立ち上がりエッジとその他のメモリセル(つまり、データ生成用メモリセル)のToutの立ち上がりエッジの比較を行い、参照メモリセルのToutの出力よりも早くToutが出力するビット(つまり、データ生成用メモリセル)に対してはステップS35のように1データ(「1」)を割当て、参照メモリセルの出力よりも遅くToutが出力するビット(つまり、データ生成用メモリセル)に対しては、ステップS36のように0データ(「0」)を割り当てる。つまり、データ変換回路28は、メモリグループ内の複数のメモリセルのうち少なくとも一つを参照メモリセルとして設定し、複数のメモリセルのうちの参照メモリセルを除くデータ生成用メモリセルの時間情報と参照メモリセルの時間情報とを比較した際に、データ生成用メモリセルの時間情報が参照メモリセルの時間情報よりも小さい場合はデータ生成用メモリセルに対して第1データを割り当て、データ生成用メモリセルの時間情報が参照メモリセルの時間情報よりも大きい場合はデータ生成用メモリセルに対して第2データを割り当てるデータ変換を行う。
ステップS37では、データ変換回路28は、メモリグループ内の参照メモリセル以外の全てのビットが参照メモリセルとの比較とデータ割当が完了したのかを判定し、完了していなければ、ステップS38で次のアドレスに更新し、残りのメモリセルに対するデータ割当を実行する。ステップS39では、データ処理回路29は、ステップS31で選択されたデータ処理方法に基づき、データ変換回路28で割当られたディジタルデータに対して更にデータ処理を行う。ステップS40では、データ生成回路25は、ディジタルIDデータ領域8の全てのメモリグループに対して、データの割当の実行が完了しているかを判定し、最終のメモリグループであれば、処理が完了し、完了していなければステップS41に示すように、次のメモリグループでS31のモード選択とデータ処理方法の選択を行う。このようにして、最終のメモリグループについてデータ処理が完了することで、データ生成回路25から、ディジタルIDデータ(個体識別情報)が生成される。
次に実施の形態にかかる不揮発性メモリ装置10のディジタルIDデータの生成処理における上述した図11におけるステップS31のモード/処理の選択および、処理後に反映されるステップS32の参照メモリセル設定とステップS37のデータ処理に関して、詳細に説明する。図12は、データ変換回路28へ入力される変換信号とデータ変換回路28で実行される各モードとの関係を示している。ここでのモード選択は、ステップS32のデータ変換回路28によるデータ変換の方法、より詳しくは、データ変換回路28による参照メモリセルの選択および設定方法のことを示している。具体的には、並列に読み出しが実行されるk個のメモリセルからなるメモリグループに対し、ディジタルIDを生成する際、変換信号には、モードを選択する変換信号である信号α(あるいは信号β)とモード実行時に必要なパラメータ値iがデータ変換回路28へ入力されることで、2値化の基準となる参照メモリセルが確定する。具体的には、信号αが入力されるとTout出力モードが選択され、信号βが入力されるとSAアドレスモードが選択される。なお、信号αまたは信号βと、パラメータ値iとを含めた信号が変換信号であってもよい。
[Tout出力モード(信号α)を選択した場合]
データ変換回路28にTout出力モードである信号αとパラメータ値jが入力された場合のデータ変換回路28でのデータ変換について、図13のタイミングチャートを用いて説明する。ディジタルIDデータ領域8内の同一抵抗状態である、k個のメモリセルからなるメモリグループが各々k個のセンスアンプ回路30に接続され、T2のセンス期間において同じタイミングで放電を開始する。各メモリセルは同一抵抗状態ではあるが、僅かな抵抗ばらつきが存在するため、放電特性(つまり、各センスアンプ回路30から出力される時間情報)は各メモリセルに応じて異なる。すなわち、ノードSENの電位がVREFを下回ったタイミングで出力される立ち上がりエッジも異なるため、k個のメモリセルからなるメモリグループにおいて、抵抗値の大きさに順位付けが可能となる。このTout出力モードにおいては、k個のメモリグループの中から、パラメータ値j番目に立ち上がりエッジを出力したメモリセルを参照メモリセルとして割り当てるモードとなる。図13に示す例では、Tout_1のメモリセルがj番目に立ち上がりエッジを出力している。そのため、2値のデータ出力においては、Tout_1の立ち上がりエッジが基準となり、Tout_1の立ち上がりエッジよりも早いタイミングで立ち上がったToutに対しては1データが割り当てられ、遅いタイミングで立ち上がったToutには0データが割り当てられることとなる。このように、Tout出力モードでは、参照メモリセルは、パラメータ値に依存して、メモリグループ内の複数のメモリセルの時間情報の中から上位M(Mは2以上)番目の時間情報に対応するメモリセルに割り当てられる。
[SAアドレスモード(信号β)を選択した場合]
データ変換回路28にSAアドレスモードを示す変換信号である信号βとパラメータ値hとが入力された場合のデータ変換回路28でのデータ変換について、図14のタイミングチャートを用いて説明する。Tout出力モードと同様、ディジタルIDデータ領域8内の同一抵抗状態のメモリグループに対し、同じタイミングで動作させることで、各抵抗値の大きさに順位付けを行う。SAアドレスモードで入力されたパラメータ値hは、Tout_0〜Tout_k内のTout_h番目のセンスアンプ回路30に接続されたメモリセルが参照メモリセルとして割り当てられる。図14に示すように、センス期間T2において、各々異なるタイミングでToutから立ち上がりエッジを出力する。図14に示す例では、Tout_hの立ち上がりエッジがメモリグループの5番目に出力されている。SAアドレスモードにおいては、Tout_hのメモリセルが参照メモリセルとして割り当てられるため、Tout_hよりも早いタイミング(1〜4番目)に立ち上がったメモリセルに対しては1データが割当られ、遅いタイミング(6〜k番目)のメモリセルに対しては、0データが割り当てられる。このように、SAアドレスモードでは、参照メモリセルは、パラメータ値に依存して、メモリグループ内の複数のメモリセルのアドレスの中から上位N(Nは自然数)番目のアドレスに対応するメモリセルに割り当てられる。
なお、本実施の形態での参照メモリセルのデータとしての取り扱いは、データとして取り扱わない例を示しているが、その限りではない。参照メモリセルとして割り当てられたメモリセルに対して、0データを割り当てても良いし、1データを割り当てても良い。つまり、データ変換回路28は、参照メモリセルに対して第1データまたは第2データを割り当ててもよい。
次に図11におけるステップS37で実行されるデータ処理回路29によるデータ処理について説明する。図15は、データ処理回路29へ入力される処理信号とデータ処理回路29で実行されるデータ処理の方法との関係についての説明図である。データ処理回路29は、データ変換回路28から出力された2値のディジタルデータに対して、処理信号A(あるいは、BかC)に依存して、追加のデータ処理を加える。処理信号Aは偶数/奇数方式を示し、処理信号Bは多数決方式を示し、処理信号Cは処理しないことを示す。
[偶数/奇数方式(信号A)を選択した場合]
処理信号として信号Aがデータ処理回路29に入力された場合は、データ処理回路29は、偶数/奇数方式を実行する。偶数/奇数方式について、図16の例を用いて説明する。図16の一例では同時に並列読み出しを実行するメモリセル(つまり、メモリグループ)が4ビットとし、データ変換回路28には、信号α(Tout出力モードを選択する信号)が入力され、パラメータ値3が入力されている。読み出し回路11において、4ビットを同時に読み出すことが開始された後、Toutの立ち上がりエッジが抵抗値のばらつきに応じて順に出力される。データ変換回路28において、パラメータ値が3として設定されているため、3番目に立ち上がりエッジを出力したメモリセルが参照メモリセルとして割り当てられ、参照メモリセルに応じて、他のメモリセル(つまり、データ生成用メモリセル)の出力が1と0のディジタルデータに変換される。偶数/奇数方式においては、データ処理回路29は、データ変換回路28から出力されたメモリグループのディジタルデータの和を算出し、その算出した値が偶数か奇数かで、データ処理を行う。本実施の形態では、偶数の場合を0、奇数の場合を1としている。図16の例においては、データ変換回路28の和が偶数となるために、最終的なデータ処理回路29の出力が0として出力される。
このように、偶数/奇数方式では、データ処理回路29は、データ変換回路28によって複数のメモリセルに割り当てられた第1データと第2データの合計を算出し、合計の数が奇数であれば第1データを出力し、偶数であれば第2データを出力するデータ処理を行う。なお、第1データおよび第2データの一方は偶数であり、他方は奇数である。
[多数決方式(信号B)を選択した場合]
処理信号として信号Bがデータ処理回路29に入力された場合は、データ処理回路29は、多数決方式を実行する。多数決方式について、図17の例を用いて説明する。図17のデータ処理回路29までの前提条件(並列読み出しビット数、変換モードおよび、Toutの立ち上がりエッジの出力順)の結果は全て図16と同じとしている。多数決方式においては、データ処理回路29は、データ変換回路28より出力されたディジタルデータの1の個数と0の個数を算出し、個数差を比較する。そして、データ処理回路29は、1の個数が多ければ、1を出力し、0の個数が多ければ、0を出力する。図17で示した例においては、1の個数が2、0の個数が1となり、1の個数が0の個数を上回るため、最終的なデータ処理回路29の出力が1として出力される。
このように、多数決方式では、データ処理回路29は、データ変換回路28によって複数のメモリセルに割り当てられた第1データの個数と第2データの個数とを算出し、第1データの個数が第2データの個数よりも多ければ第1データを出力し、第1データの個数が第2データの個数よりも少なければ第2データを出力するデータ処理を行う。
このように、データ処理方法の選び方に応じて、データ変換回路28からの出力が同じでも異なるデータが出力される場合が存在する。データ処理回路29を加えたことにより、データ変換回路28からのデータ出力とデータ処理回路29の出力データの予測が困難となりセキュリティ性が向上されることや、回路不具合の発生に対するディジタルIDデータの乱数性維持の効果が期待される。
この回路不具合とは、例えば、製造後初期の時点でのセンスアンプ回路30の不具合を示す。k個のセンスアンプ回路30の内、x番目のセンスアンプ回路30に不具合が発生し、メモリセルの抵抗状態に関係なく、立ち上がりエッジが常に最も遅れて出力されてしまう場合を想定する。このとき、ディジタルIDデータの再生において、アドレス順に各メモリグループのディジタルデータが生成されるが、センスアンプx番目の不具合により、x番目のメモリセルは常に同じ値が出力されてしまうため、これがデータに周期性を持たせる結果となり、乱数性が低下する。本実施の形態で述べたデータ処理回路29は、固定のデータを出力してしまうようなセンスアンプ回路30の不具合が発生したとしても、並列動作する他のセンスアンプ回路30が動作していれば、処理によってデータが濃縮され、最終的に出力されるデータが変化し得るため、乱数性を維持することができる。
なお、図15の信号Cが入力された場合には、データ処理回路29において、未処理のままデータを出力してもよい。未処理の場合は、データ処理による濃縮が加わらないため、アクセスしたメモリセルのデータを一度の再生で出力でき、情報量が多い。データ出力速度の観点では、メリットがある。
[本実施の形態の抵抗変化型不揮発性メモリ装置のシステム応用例]
本実施の形態で述べたディジタルIDデータの生成方式は、例えば、サーバなどのホスト側と端末のデバイス側とのチャレンジレスポンス認証技術への応用ができる。チャレンジレスポンス認証とは、ホスト側で予め登録されたチャレンジ(入力)を端末側に送信し、受信した端末側は、その入力に反応して、その端末固有のレスポンス(出力)をホスト側に返し、ホスト側は登録された期待値とレスポンス値とを比較することで、認証を行う方式である。本実施の形態での、チャレンジレスポンス認証方式の利用の一例を図18、図19を用いて説明する。図18に示すように、市場に出荷する前に特定の端末(ReRAMデバイスZ)側に対しサーバ側が複数のチャレンジ値を送信することで、それらに対する固有のレスポンス値を得た後、レスポンス値を登録する。本実施の形態で述べたディジタルIDデータの生成方式では、チャレンジ値が、端末(ReRAMデバイスZ)が備えるデータ生成回路25に入力される変換信号、パラメータ値、処理信号に相当する。また、レスポンス値が、端末(ReRAMデバイスZ)が備えるデータ生成回路25が出力したディジタルIDデータ(個体識別情報)に相当する。
図19に示すように、市場に出荷後の端末の認証においては、サーバ側が、出荷前に登録されたチャレンジ値の中から任意にチャレンジ値を選択し、端末側に送信し、受け取った端末は、チャレンジ値に応じたレスポンス値を返す。レスポンス値を受け取ったサーバは、予め登録されているレスポンス値との照合を行い、一致していれば認証が完了する。
なお、本例では、1回のチャレンジ値とレスポンス値の照合で認証が完了しているが、セキュリティ性を高くする場合は、複数回のチャレンジ値とレスポンス値を繰り返すことで認証されることもあり得る。
このように、不揮発性メモリ装置10がチャレンジレスポンス認証に応用された場合には、データ生成回路25は、ディジタルIDデータ(個体識別情報)の再生時には、少なくとも変換信号および処理信号を含めたチャレンジ信号に基づき、データ変換回路28およびデータ処理回路29を用いて、ディジタルIDデータ(個体識別情報)を生成する。
また、本実施の形態で述べたディジタルIDデータの生成方式は、固有IDデータ技術への応用も可能である。本実施の形態での固有IDデータ技術への応用の一例を図20、図21を用いて説明する。図20に示すように、実施の形態の不揮発性メモリ装置10のユーザデータ領域7には予め定めた固定値が格納されている。ここでの固定値は、ディジタルIDデータの再生時に使用する、変換信号、パラメータ値、処理信号である。固有IDデータでは、PUF領域であるディジタルIDデータ領域8から読み出された抵抗値情報(具体的には、時間情報)をデータ生成回路25が固定値を利用して再生するため、チャレンジレスポンス認証とは異なり、チャレンジのような外部入力が存在せず、再生時は、常に同じIDを出力することが特徴である。図20では、説明の簡略化のため、読み出し回路11の図示を省略している。この固有IDデータは、共通秘密鍵データを暗号化用の鍵として利用する。固有IDデータで暗号化された共通秘密鍵データは秘密暗号鍵データとしてユーザデータ領域7に格納される。
次に本実施の形態のデータ送受信の例を図21に示す。送信側のデバイスAと受信側のデバイスBは、いずれも本実施の形態の不揮発性メモリ装置10を有し、各々が共通秘密鍵データを固有IDデータで暗号化した秘密鍵暗号データとして、ユーザデータ領域7に格納している。メッセージを送信する場合、送信側のデバイスAは、ユーザデータ領域7に格納された固定値と、PUF領域であるディジタルIDデータ領域8から読み出し回路11を介して得た時間情報とがデータ生成回路25に入力されることで得る固有IDデータAを用いて秘密鍵暗号データを暗号回路1に入力し、共通秘密鍵データとして復号する。復号された共通秘密鍵データは平文メッセージを暗号回路2に入力し暗号メッセージとしてデバイスBへ送信する。デバイスB側も、デバイスAと同様に、データ生成回路25より得られる固有IDデータBを、暗号回路1を介して共通秘密鍵データを復号する。受信した暗号メッセージは、共通秘密鍵を利用して、暗号回路2を介して平文メッセージに復号される。
上述した固有IDデータの利用方法により、共通秘密鍵をより強固に保護することが可能となる。例えば、ユーザデータ領域7の秘密暗号鍵データが盗難され、別デバイスに偽造コピーされたとしても、秘密暗号鍵データを復号するための固有IDデータがデバイス毎で異なるために復号することができない。すなわち、データ流出後の偽造デバイスの拡散を防止することが可能となる。
このように、不揮発性メモリ装置10が固有IDデータに応用された場合には、データ生成回路25は、ディジタルIDデータ(個体識別情報)の再生時には、予め定められた固定の変換信号および処理信号を、それぞれ、データ変換回路28およびデータ処理回路29に入力することで、ディジタルIDデータ(個体識別情報)を生成する。
以上のように、本実施の形態にかかる不揮発性メモリ装置10は、抵抗値の変化を利用してデータを保持可能な抵抗変化型の複数のメモリセル21で構成されるメモリセルアレイ20と、メモリセルアレイ20から、複数のメモリセル21からなるメモリグループの単位で、複数のメモリセル21の各々の抵抗値に依存する放電現象または充電現象に基づいて時間情報を取得する読み出し動作を同時に行う読み出し回路11と、読み出し回路11による読み出し動作によって得られる複数のメモリセル21の時間情報を互いに比較することにより個体識別情報を生成するデータ生成回路25とを備える。
これにより、読み出し回路11によって読み出された抵抗変化型の複数のメモリセルの抵抗値に依存する時間情報がデータ生成回路25で相互に比較されて個体識別情報が生成される。よって、同じ抵抗状態にあるメモリセルにおける抵抗低ばらつきに基づくPUFデータとしての個体識別情報が生成される。さらに、個体識別情報を生成する回路を、通常の不揮発性メモリ装置として搭載される回路と共通化することが可能となり、これにより、低消費電力で省面積化を実現できるPUFとしての機能を有する不揮発性メモリ装置が実現される。
なお、上記実施の形態では、読み出し回路11は、複数のメモリセル21について時間情報を取得する読み出し動作を同時に行ったが、必ずしも同時に読み出し動作を行う必要はない。
図22は、上記実施の形態の第1変形例に係る不揮発性メモリ装置における複数のメモリセルからの読み出し動作を示す図である。ここでは、32ビットの複数のメモリセルからなるメモリグループの単位で時間情報の読み出しと個体識別情報の生成とが行われるが、必ずしも32ビットの全てについて同時には読み出し動作が行われない例を図示している。
図22に示すように、この不揮発性メモリ装置では、メモリセルアレイ20から32ビットのメモリセル21からなるメモリグループの単位で読み出し動作が行われるが、32ビットのメモリセル21の全てが同時に読み出されるのではなく、分割された8個の4ビット(サブグループ)の単位(分割0〜分割7)で順次、読み出し動作が行われる。なお、個々の4ビット(サブグループ)の単位では同時に読み出し動作が行われる。
また、図22に示す例では、分割1に属する一つのビットが参照メモリセル21aに設定されており、データ変換回路28によって、参照メモリセル21aの時間情報(抵抗カウント値)よりも小さい時間情報に対して「1」が割り当てられ、参照メモリセル21aの時間情報よりも大きい時間情報に対して「0」が割り当てられている。
図23は、本変形例に係る不揮発性メモリ装置における時間情報の読み出しとデータ変換の順序を示すタイミングチャートである。32ビットのメモリセル21が分割された8個の4ビット(サブグループ)の単位で順次、読み出し動作が行われ、その後、データ変換回路28によって32ビットのデータに変換される。すなわち、データ変換回路28は、32ビットのデータについて、「0」または「1」を割り当てる処理(「0/1化」)を行う。
図24は、本変形例に係る不揮発性メモリ装置の動作例を示すフローチャートである。このフローチャートは、上記実施の形態の動作例を示す図11のフローチャートにおける「PUF領域 抵抗値読み出し(S33)」が8個のステップ(「分割0 読み出し 抵抗値格納(S33a)」〜「分割7 読み出し 抵抗値格納(S33c)」)に置き換えられたものに相当する。8個のステップ(「分割0 読み出し 抵抗値格納(S33a)」〜「分割7 読み出し 抵抗値格納(S33c)」)は、図23に示される8個の4ビット(サブグループ)の単位での順次の読み出し動作に相当する。
以上のように、本変形例に示されるように、複数のメモリセル21からなるメモリグループの単位で時間情報を読み出す動作は、全ての複数のメモリセル21について同時に読み出される必要はない。全ての複数のメモリセル21が異なるタイミングで読み出されてもよいし、複数のメモリセル21からなるメモリグループを分割して得られるサブグループの単位で順次、読み出されてもよい。
また、上記実施の形態では、データ生成回路25は、読み出し回路11による読み出し動作によって得られる複数のメモリセル21の時間情報を互いに比較することにより個体識別情報を生成したが、必ずしも時間情報を互い比較する必要はなく、複数のメモリセル21の時間情報のそれぞれの昇順または降順における順位に基づいて個体識別情報を生成してもよい。
図25Aは、上記実施の形態の第2変形例に係る不揮発性メモリ装置が備える制御回路15aの詳細な構成を示すブロック図である。ここでは、複数のメモリセルの時間情報のそれぞれの昇順または降順における順位に基づいて個体識別情報を生成するのに適した制御回路15aの構成を示している。
制御回路15aは、上記実施の形態における制御回路15の機能に加えて、外部から入力されるコントロール信号(設定値信号T1及び信号X)に基づいて所定の制御を行うセンスアンプ制御回路40を有する。センスアンプ制御回路40は、読み出し回路11を構成する各センスアンプ回路30に対してセンス開始(放電開始タイミング)を同時に行うか、各センスアンプ回路30について設定された時刻で行うかを選択する。
信号Xは、読み出し回路11を構成する各センスアンプ回路30について、センス開始を同時に行うか(時間固定モード)、各センスアンプ回路30について設定された時刻に行うか(時間調整モード)を切り替えるためのモード選択信号である。
設定値信号T1は、時間調整モードにおける各センスアンプ回路30についてのセンス開始の時刻を示す情報を示す信号である。
センスアンプ制御回路40は、タイマー回路41と、SA0制御回路42a〜SAk制御回路42dとを有する。
タイマー回路41は、SA0制御回路42a〜SAk制御回路42dに対して共通の時間情報を供給する。
SA0制御回路42a〜SAk制御回路42dは、それぞれ、読み出し回路11を構成する各センスアンプ回路30に対応して設けられ、対応するセンスアンプ回路30に対してセンス開始のタイミングを示す信号を出力する回路である。図25Bは、SA0制御回路42a〜SAk制御回路42dの詳細な構成を示すブロック図である。SA0制御回路42a〜SAk制御回路42dは、それぞれ、設定値保持部45及び信号シーケンサ46を有する。
設定値保持部45は、設定値T1で示される情報のうち対応するセンスアンプ回路30について指示された時刻の情報(設定値T1)を保持するメモリである。信号シーケンサ46は、信号Xが時間固定モードを示す場合には、タイマー回路41からの時間情報に従って全てのセンスアンプ回路30に対して同じタイミングでセンス開始を示す信号を出力する。一方、信号シーケンサ46は、信号Xが時間調整モードを示す場合には、タイマー回路41からの時間情報が設定値保持部45に保持された設定値T1に達したタイミングでセンス開始を示す信号を出力する。
図26は、本変形例に係る不揮発性メモリ装置における読み出し回路11の動作例を示すタイミングチャートである。図26の(a)は、時間固定モードにおける動作例を示し、図26の(b)は、時間調整モードにおける動作例を示す。図26の(a)、(b)においては、4つのセンスアンプ回路30(SA0〜SA3)での放電のタイミング及びデータ変換回路28で検知される「順位」が図示されている。
図26の(a)に示すように、信号Xが時間固定モードを示す場合には、センスアンプ制御回路40による制御の下で、センスアンプ回路30(SA0〜SA3)は、同時に放電を開始し、放電終了のタイミングT2を示す信号Tout_0〜Tout_3を出力する。よって、データ変換回路28は、放電終了のタイミングT2の早い順(すなわち、放電に基づく時間情報の小さい順、つまり、昇順)に、順位が検知される。この例では、SA1、SA3、SA2、SA0の順で、順位1、2、3、4が検知される。
一方、図26の(b)に示すように、信号Xが時間調整モードを示す場合には、センスアンプ制御回路40による制御の下で、センスアンプ回路30(SA0〜SA3)は、対応する設定値T1に対応する時刻に放電を開始し、放電終了のタイミングT2を示す信号Tout_0〜Tout_3を出力する。よって、データ変換回路28では、放電終了のタイミングT2の早い順(すなわち、放電に基づく時間情報の小さい順、つまり、昇順)に、順位が検知される。この例では、SA2、SA0、SA1、SA3の順で、順位1、2、3、4が検知される。なお、本変形例では、時間情報の昇順に順位が付与されたが、時間情報の降順に順位が付与されてもよい。
その後、データ変換回路28は、上記実施の形態と同様に、参照メモリセル21aに対応する時間情報の順位よりも小さい順位の時間情報を出力したメモリセルに対して第1データ(例えば、「1」)を割り当て、参照メモリセル21aに対応する時間情報の順位よりも大きい順位の時間情報を出力したメモリセルに対して第2データ(例えば、「0」)を割り当てるデータ変換を行う。データ変換によって得られたデータは、上記実施の形態と同様に、データ処理回路29においてデータ処理を受けた後、個体識別情報として、データ生成回路25から出力される。
以上のように、本変形例では、不揮発性メモリ装置は、抵抗値の変化を利用してデータを保持可能な抵抗変化型の複数のメモリセル21で構成されるメモリセルアレイ20と、メモリセルアレイ20から、複数のメモリセル21からなるメモリグループの単位で、複数のメモリセル21の各々の抵抗値に依存する放電現象または充電現象に基づいて時間情報を取得する読み出し動作を行う読み出し回路11と、読み出し回路11による読み出し動作によって得られる複数のメモリセル21の時間情報のそれぞれの昇順または降順における順位に基づいて、個体識別情報を生成するデータ生成回路25とを備える。
これにより、読み出し回路11によって読み出された抵抗変化型の複数のメモリセル21の抵抗値に依存する時間情報の順位に基づいてデータ生成回路25によって個体識別情報が生成される。よって、同じ抵抗状態にあるメモリセルにおける抵抗低ばらつきに基づくPUFデータとしての個体識別情報が生成される。さらに、個体識別情報を生成する回路を、通常の不揮発性メモリ装置として搭載される回路と共通化することが可能となり、これにより、低消費電力で省面積化を実現できるPUFとしての機能を有する不揮発性メモリ装置が実現される。
さらに、センスアンプ制御回路40は、信号Xの信号に基づき、各センスアンプ回路30について設定された時刻に動作開始を行うことができる。
これにより、複数のメモリセル21の各々の抵抗値と放電現象または充電現象に基づく時間情報の依存性をなくすことができるため、例えば、プロービングなどの物理攻撃に対する抵抗値取得からデータを推測することが困難となるため、セキュリティ性を向上させることができる。
また、データ生成回路25は、メモリグループ内の複数のメモリセル21のうち少なくとも一つを参照メモリセル21aとして設定し、複数のメモリセル21のうちの参照メモリセル21aを除くデータ生成用メモリセルの時間情報の順位が参照メモリセル21aの時間情報の順位よりも小さい場合はデータ生成用メモリセルに対して第1データを割り当て、データ生成用メモリセルの時間情報の順位が参照メモリセル21aの時間情報の順位よりも大きい場合はデータ生成用メモリセルに対して第2データを割り当てるデータ変換を行うデータ変換回路28を有し、データ変換回路28によるデータ変換後のデータに基づいて、個体識別情報を生成する。
これにより、メモリグループを構成する複数のメモリセル21のうち少なくとも一つが参照メモリセル21aとして時間情報の順位の比較に用いられるので、参照メモリセル21aを固定的に設定する場合に比べ、生成される個体識別情報の乱数性が高められる。
なお、上記説明から、当業者にとっては、本開示の多くの改良や他の実施の形態が明らかである。従って、上記説明は、例示としてのみ解釈されるべきであり、本開示を具体化する最良の態様を当業者に教示する目的で提供されたものである。本開示の精神を逸脱することなく、その構造および/又は機能の詳細を実質的に変更できる。