(57)【特許請求の範囲】
【請求項１】
複数の不揮発性メモリセルを有するメモリアレイと、
前記複数の不揮発性メモリセルのうち、少なくとも１つの閾値によって判別される複数の抵抗値範囲のうちの１つの抵抗値範囲に属する複数の不揮発性メモリセルを選択し、選択された前記１つの抵抗値範囲に属する複数の不揮発性メモリセルの各々の抵抗値に関する複数の抵抗値情報を取得する読み出し回路と、
前記読み出し回路によって取得された、前記複数の抵抗値情報に基づいて２値化基準値を算出する演算回路と、
個体識別情報を生成する識別情報生成回路と
を備え、
前記読み出し回路は、前記抵抗値情報と前記２値化基準値との関係に応じて第１のディジタルデータを取得し、
前記識別情報生成回路は、
前記第１のディジタルデータとは異なり、かつ前記抵抗値と相関のない第２のディジタルデータを取得し、前記第１のディジタルデータと前記第２のディジタルデータとに基づいて前記個体識別情報を生成する、不揮発性メモリ装置。
【請求項２】
複数のトランジスタをさらに備え、
前記第２のディジタルデータは、前記複数のトランジスタのオン抵抗のバラつきから得られる、請求項１に記載の不揮発性メモリ装置。
【請求項３】
前記少なくとも１つの閾値は、第１の閾値および第２の閾値を含む複数の閾値を備え、
前記複数の抵抗値範囲は、前記第１の閾値および前記第２閾値で規定される、重複しない３個の抵抗値範囲を含み、
前記３個の抵抗値範囲は、予め想定された最も大きい抵抗値または最も小さい抵抗値を含む第１の抵抗値範囲、並びに前記第１の抵抗値範囲とは異なる第２の抵抗値範囲および第３の抵抗値範囲であり、
前記複数の不揮発性メモリセルの各々は、
可変状態では、異なる複数の電気的信号が印加されることによって、前記抵抗値が前記第２の抵抗値範囲および前記第３の抵抗値範囲の間を可逆的に遷移する特性を有し、
初期状態では、前記抵抗値が前記第１の抵抗値範囲に属する初期抵抗値範囲にあり、
前記第２のディジタルデータは、第１種データまたは第２種データであり、
前記第１種データは、前記第１の閾値で判別されて得られ、前記複数の不揮発性メモリセルの各々が前記初期状態にあるか前記可変状態にあるかを示しており、
前記第２種データは、前記第２の閾値で判別されて得られ、前記複数の不揮発性メモリセルの各々の抵抗値が前記第２の抵抗値範囲にあるか前記第３の抵抗値範囲にあるかを示している、請求項１に記載の不揮発性メモリ装置。
【請求項４】
前記第２のディジタルデータを初期値として演算を行い、前記演算により前記第２のディジタルデータとはデータ系列が異なる変形された第２のディジタルデータを生成する巡回演算回路をさらに備え、
前記識別情報生成回路は、前記第１のディジタルデータと前記変形された第２のディジタルデータとに基づいて前記個体識別情報を生成する、請求項１に記載の不揮発性メモリ装置。
【請求項５】
前記第１のディジタルデータは、所定のデータビット数ごとに複数のアドレスに割り当てられ、
前記巡回演算回路は、
前記複数のアドレスの各々に割り当てられた前記第１のディジタルデータの一部の読み出しを行い、前記読み出しごとに、前記第２のディジタルデータを前記初期値とした前記演算を繰り返し、
前記第１のディジタルデータの前記一部と等しいデータビット数の前記変形された第２のディジタルデータを生成し、
前記識別情報生成回路は、前記第１のディジタルデータの一部ごとに前記個体識別情報を生成する、請求項４に記載の不揮発性メモリ装置。
【請求項６】
前記複数のアドレスの各々に割り当てられた前記第１のディジタルデータの前記一部を読み出すときに、前記読み出し回路が前記複数のアドレスの読み出し順序を変更することで、前記識別情報生成回路における前記第１のディジタルデータの前記一部と前記変形された第２のディジタルデータとの組み合わせを変更する、請求項５に記載の不揮発性メモリ装置。
【請求項７】
前記不揮発性メモリ装置は、
前記複数のアドレスの前記読み出し順序を示すチャレンジ入力を前記不揮発性メモリ装置の外部から受け付け、
前記組み合わせに応じて生成された前記個体識別情報を、レスポンス出力として前記不揮発性メモリ装置の外部に出力し、
前記不揮発性メモリ装置は、前記チャレンジ入力と前記レスポンス出力との関係に基づいて、前記不揮発性メモリ装置の外部から認証される、請求項６に記載の不揮発性メモリ装置。
【請求項８】
前記複数の不揮発性メモリセルの各々は、
第１電極と、
第２電極と、
前記第１電極および前記第２電極の間に配置される抵抗変化層と
を含む抵抗変化素子を備える、請求項１から７のいずれかに記載の不揮発性メモリ装置。
【請求項９】
前記抵抗変化層は、絶縁体の層を含む、請求項８に記載の不揮発性メモリ装置。
【請求項１０】
前記抵抗変化層は、前記絶縁体の層を貫く局所領域を有する、請求項９に記載の不揮発性メモリ装置。
【請求項１１】
前記抵抗変化層は、金属酸化物を含む、請求項８から１０のいずれかに記載の不揮発性メモリ装置。
【請求項１２】
前記金属酸化物は、酸素不足型である、請求項１１に記載の不揮発性メモリ装置。
【請求項１３】
前記金属酸化物は、遷移金属酸化物およびアルミニウム酸化物からなる群から選択される少なくとも一つである、請求項１１または１２に記載の不揮発性メモリ装置。
【請求項１４】
前記金属酸化物は、タンタル酸化物、ハフニウム酸化物およびジルコニウム酸化物からなる群から選択される少なくとも一つである、請求項１１または１２に記載の不揮発性メモリ装置。
【請求項１５】
前記絶縁体は金属酸化物を含み、
前記局所領域は、前記絶縁体よりも酸素含有率が低い酸素不足型の金属酸化物を含む、請求項１０に記載の不揮発性メモリ装置。
【請求項１６】
複数の不揮発性メモリセルを有するメモリアレイと、
前記複数の不揮発性メモリセルのうち、少なくとも１つの閾値によって判別される複数の抵抗値範囲のうちの１つの抵抗値範囲に属する複数の不揮発性メモリセルを選択し、選択された前記１つの抵抗値範囲に属する複数の不揮発性メモリセルの各々の抵抗値に関する複数の抵抗値情報を取得する読み出し回路と、
前記読み出し回路によって取得された、前記複数の抵抗値情報に基づいて２値化基準値を算出する演算回路と、
個体識別情報を生成する識別情報生成回路と
を備え、
前記読み出し回路は、前記抵抗値情報と前記２値化基準値との関係に応じて第１のディジタルデータを取得し、
前記識別情報生成回路は、
前記第１のディジタルデータとは異なり、かつ前記抵抗値と相関のない第２のディジタルデータを取得し、前記第１のディジタルデータと前記第２のディジタルデータとに基づいて前記個体識別情報を生成する、不揮発性メモリ装置と、
前記個体識別情報が出力される入出力インタフェース部と、を備えた集積回路カード。
【請求項１７】
請求項７に記載の不揮発性メモリ装置が正規の装置であることを認証するための認証方法であって、
前記不揮発性メモリ装置の出荷前に、前記第１のディジタルデータと前記第２のディジタルデータとを読み出して外部認証装置に保持し、
前記不揮発性メモリ装置の出荷後、前記不揮発性メモリ装置が使用されるときに、前記外部認証装置は、複数の前記チャレンジ入力を用いて前記レスポンス出力を受信し、前記外部認証装置が予め保持している前記第１のディジタルデータと前記第２のディジタルデータとを用いて演算した結果と前記受信したレスポンス出力とが一致しているか否かを判断し、
一致している場合には、前記不揮発性メモリ装置が正規の装置であるとして認証する、不揮発性メモリ装置の認証方法。
【請求項１８】
抵抗値の変化を利用してデータを記憶する抵抗変化型の不揮発性メモリセルを用いて個体識別情報を生成する個体識別情報生成方法であって、
少なくとも１つの閾値を用いて前記抵抗値が判別される複数の不揮発性メモリセルを有するメモリアレイに含まれる、前記少なくとも１つの閾値によって判別されるＮ（Ｎ：２以上の整数）個の抵抗値範囲のうちの１つの抵抗値範囲に属する複数の不揮発性メモリセルを選択し、
前記選択された各不揮発性メモリセルの前記抵抗値に関する抵抗値情報を取得し、
前記取得された各不揮発性メモリセルの抵抗値情報に基づいて２値化基準値を算出し、
前記各不揮発性メモリセルの抵抗値情報と前記２値化基準値との関係に応じて第１のディジタルデータを取得し、
前記第１のディジタルデータとは異なり、かつ前記抵抗値と相関のない第２のディジタルデータを取得し、前記第１のディジタルデータと前記第２のディジタルデータとに基づいて前記個体識別情報を生成する、個体識別情報生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、抵抗変化型の不揮発性メモリセルを複数有し、かつ耐タンパ性を有する不揮発性メモリ装置に関する。
【背景技術】
【０００２】
ネットバンキングおよびネットショッピングなど、インターネットを介して行われる電子商取引サービスの市場は急速に拡大している。このときの決済方法として電子マネーが用いられ、その媒体として利用される集積回路（“Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ”、以下、ＩＣと略称する。）カードおよびスマートフォン端末も同様に利用が拡大している。これらのサービスには、決済時の安全性のため、通信における相互認証および通信データの暗号化にあたって常により高いレベルのセキュリティー技術が求められる。
【０００３】
ソフトウェア技術に関しては、高度な暗号化アルゴリズムを中心としたプログラム処理の暗号化技術が蓄積されており、十分なセキュリティーが達成されている。しかし、技術進歩により、回路内部の情報を外部から直接読み取られる懸念が急速に高まっている。
【０００４】
特許文献１は、このような懸念への対応策を提案している。一般的にはセキュリティーを強化したＩＣでは、内部に搭載する暗号回路を用いて機密情報を暗号化して利用しており、情報の漏洩を防止している。この場合、内部に保持している暗号鍵（「秘密鍵」ともいう。）の情報を外部に漏洩させないことが必須となる。
【０００５】
暗号回路の方式の代表的なものとしては３ＤＥＳ（Triple Data Encryption Standard
）およびＡＥＳ（Advanced Encryption Standard）といったものが広く用いられている。これらの暗号化方式には、入出力となっている平文（暗号前データ）−暗号文のペアを入手し、最高速のコンピュータを駆使して解析しても、現実的な時間内では暗号鍵を特定できないような高度な暗号アルゴリズムが採用されており、その安全性は確認されている。しかしながら、暗号化されたデータへのハッキングは安全であるとされていても、暗号鍵が直接ハッキングされる脆弱性が懸念されていた。
【０００６】
古典的な手法のＩＣでは、暗号鍵を内部のフューズＲＯＭまたは不揮発性メモリに保存していた。前者の構成には、Ｘ線投射などによってフューズ素子の状態を観察し、フューズ素子の導通・非導通を解析し、保存されている鍵情報をハッキングされる、という問題があった。また、後者の構成はＸ線投射では解析されないものの、不揮発性メモリのメモリ素子両端に直接プローブをあて電気的に素子の状態を読み取ることにより鍵情報をハッキングされる問題があった。そのため、セキュリティーを強化したＩＣでは内部回路に直接プローブを当てられないように最先端の微細プロセスを用いて製造される。つまり、最新技術のプローブの先端径よりも細い配線ルールをもつ微細プロセスでＩＣを製造することで、プロービングによる解析の脅威を回避していた。
【０００７】
しかし、このような対策に対して、サイドチャンネル攻撃という手法がとられ始め、脅威とされてきている。サイドチャンネル攻撃とは、特許文献１に説明されるように、各信号処理回路の実行時の半導体デバイスの消費電力、および消費電力に依存する輻射電磁波などのサイドチャネル情報を用いて、暗号鍵を特定する手法である。この手法が脅威である理由は、攻撃者（ハッカー）がＩＣに物理的に損傷を与えず、実動作中に鍵情報をハッキングできることにある。
【０００８】
このようなサイドチャネル攻撃に分類される差分電力攻撃（ＤＰＡ：Ｄｉｆｆｅｒｅｎｔｉａｌ  Ｐｏｗｅｒ  Ａｎａｌｙｓｉｓ）は、１９９９年にＰ．  Ｋｏｃｈｅｒによって発表された。このＤＰＡ手法は、ＩＣ動作時の信号値または信号遷移頻度と、消費電力との間に相関関係があることを利用している。具体的には、ＤＰＡ手法は、このような相関関係を多数回積分し、ノイズを除去しながら機械学習制御をおこなうことで固定パターンを導き出し、鍵情報を特定する。特許文献１の例では、暗号処理回路の動作から特定される例が示されている。不揮発性メモリに記憶された鍵情報は、暗号処理を実行することをトリガとしたタイミングで読み出される。ＤＰＡの原理に鑑みれば、そのタイミングと同じようなタイミングで読み出されたデータが特定され取得されれば、ＤＰＡによりデータ内容が解析される恐れがある。また、ＩＣの内部仕様書が漏洩するとＩＣの制御方法がハッカーに理解され、上述のように不揮発性メモリに保存されたデータ全てが、暗号鍵情報も含めてハードコピーされ、ＩＣの複製が作製されてしまう。
【０００９】
近年、これらの課題を解決するために、ＰＵＦ（物理的複製困難関数；Physically Unclonable Function）技術が提案されている。ＰＵＦ技術は、製造ばらつきを活用してＩＣごとに異なるユニークな個体識別情報を生成する技術である。以降、本明細書ではＰＵＦ技術により生成された個体識別情報を「ディジタルＩＤデータ」と呼ぶ。ディジタルＩＤデータはＩＣの物理特性のばらつきに関連づけられた各デバイス固有の乱数データであると言える。ＩＣごとにその物理特性を人為的に制御することが不可能であるため、物理的な複製が不可能なデータを生成することができる。
【００１０】
なお、物理特性のばらつきの制御がある程度可能であったとしても、製造時に発生するランダムな工程ばらつきを利用する場合は、各ＩＣに固有でユニークなディジタルＩＤデータをＰＵＦ技術により作成するのは容易である。しかしながら、事前に決定した特定の個体識別情報を故意に作成することは、実際上は極めて困難である。半導体プロセスにおいて様々な物理特性に製造ばらつきが生じる。製造ばらつきとして、例えば、半導体プロセスにおけるドーピング量、酸化物厚さ、チャネル長、金属配線層の幅および厚さ、寄生抵抗並びに寄生容量などが挙げられる。
【００１１】
具体的な先行例として、特許文献２および非特許文献１のようなＳＲＡＭ−ＰＵＦが例示され得る。これらの例では、ＳＲＡＭにおける各メモリセルにおいて、主にトランジスタのＶｔばらつき（動作電圧のばらつき）により電源投入時の初期値のディジタルデータが１状態になりやすいか、０状態になりやすいかが異なる現象を用いている。これは、各ＩＣに搭載されたＳＲＡＭのセルごとに固有であり、異なっている。つまり、ＳＲＡＭに電源投入したときの初期値データがディジタルＩＤデータとして用いられる。
【００１２】
特許文献３は、ＳＲＡＭ−ＰＵＦの変形例であり、ＳＲＡＭのメモリセルの不良ビットがランダムに発生する現象を用いている。更に、特許文献１や非特許文献２では、アービター（Ａｒｂｉｔｅｒ）ＰＵＦまたはグリッジＰＵＦと呼ばれるＰＵＦ技術が紹介されている。アービターＰＵＦおよびグリッジＰＵＦでは、ゲート遅延または配線遅延をもちいて組み合わせ回路の出力が入力に対してランダムに変化することを用いている。製造ばらつきによって変化するゲート遅延および配線遅延は、各ＩＣにおける固有の遅延量となる。従って、ＩＣごとに異なるものの各ＩＣにおいては入力に対して、ほぼ等しい結果を出力するため、ディジタルＩＤデータを生成できる。
【００１３】
このように、ＰＵＦ技術により、各ＩＣ固有の乱数となるディジタルＩＤデータが複製できないデータとして生成される。このディジタルＩＤデータは、前述した秘密鍵を暗号化するデバイス鍵として用いられる。デバイス鍵（ディジタルＩＤデータ）によって暗号化された秘密鍵は、暗号化された状態で不揮発性メモリに保存される。すなわち、不揮発性メモリに記録された暗号化秘密鍵はデバイス鍵でしか元の秘密鍵データに復号できない。よって、ハッキングにより不揮発性メモリ内のデータが全てハードコピーされたとしても、各ＩＣ固有のデバイス鍵（ディジタルＩＤデータ）が複製できないため暗号化秘密鍵が元に戻せず利用することができない。
【００１４】
更に、ＰＵＦ技術により生成されるディジタルＩＤデータは、僅かな製造ばらつきを用いて生成されるため、生成するときの温度環境および電源状態、更には経年劣化などにより、利用する物理特性に変動が生じ、得られるデータに誤りが発生し得る。このため非特許文献１に示されるように、製造時の検査工程にてＰＵＦ技術によって生成されるディジタルＩＤデータを元に、誤り訂正用のパリティーデータを演算し、パリティーデータを別途不揮発性メモリなどに保存しておく。そして、システムがディジタルＩＤデータを利用するときに、ＰＵＦ技術によって生成した誤りを含んだディジタルＩＤデータはパリティーデータを用いて誤り訂正処理を実行することで、常に同じＩＤデータを得る。
【００１５】
このように誤りを含んだデータであるためデータの訂正を行うといった非効率な技術に思えるが、このことがもう一つの重要な特徴となる。ディジタルＩＤデータがＰＵＦ技術により生成しなおされるたびに、不規則にデータに誤りが生じるため、前述したサイドチャンネルアタックのようなハッキング攻撃を受けたとしてもデータパターンが定まらず解析を非常に困難にさせ、セキュリティー性を大きく向上させる。
【００１６】
このようにＰＵＦ技術は、暗号および相互認証を安全に行う上でセキュリティーを高める重要な技術である。
【先行技術文献】
【特許文献】
【００１７】
【特許文献１】国際公開ＷＯ２０１２／０１４２９１号公報
【特許文献２】特表２０１３−５４５３４０号公報
【特許文献３】特開２０１２−４３５１７号公報
【非特許文献】
【００１８】
【非特許文献１】“Ａ  ０．１９ｐＪ／ｂ  ＰＶＴ−Ｖａｒｉａｔｉｏｎ−Ｔｏｌｅｒａｎｔ  Ｈｙｂｒｉｄ  Ｐｈｙｓｉｃａｌｌｙ  Ｕｎｃｌｏｎａｂｌｅ  Ｆｕｎｃｔｉｏｎ  Ｃｉｒｃｕｉｔ  ｆｏｒ  １００％  Ｓｔａｂｌｅ  Ｓｅｃｕｒｅ  Ｋｅｙ  Ｇｅｎｅｒａｔｉｏｎ  ｉｎ  ２２ｎｍ  ＣＭＯＳ”    Ｓａｎｕ  Ｋ．  Ｍａｔｈｅｗ，  ｅｔ  ａｌ．    ＩＳＳＣＣ２０１４
【非特許文献２】“耐タンパディペダブルＶＬＳＩシステムの開発・評価”    Ｔａｋｅｓｈｉ  Ｆｕｊｉｎｏ，「ディペンダブルＶＬＳＩシステムの基盤技術」  ＣＲＥＳＴ２００９年採択テーマ２０１２年度実績報告資料
【発明の概要】
【発明が解決しようとする課題】
【００１９】
前述のようにＰＵＦ技術はＩＣのセキュリティー性を高める重要な技術である。しかしながら、セキュリティー性のさらなる向上が求められていた。
【００２０】
本願の、限定的ではない例示的な実施形態は、セキュリティー性により優れたディジタルＩＤデータを生成するためのＰＵＦ技術を提供する。
【課題を解決するための手段】
【００２１】
本開示の一態様にかかる不揮発性メモリ装置は、複数の不揮発性メモリセルを有するメモリアレイと、前記複数の不揮発性メモリセルのうち、少なくとも１つの閾値によって判別される複数の抵抗値範囲のうちの１つの抵抗値範囲に属する複数の不揮発性メモリセルを選択し、選択された前記１つの抵抗値範囲に属する複数の不揮発性メモリセルの各々の抵抗値に関する複数の抵抗値情報を取得する読み出し回路と、前記読み出し回路によって取得された、前記複数の抵抗値情報に基づいて２値化基準値を算出する演算回路と、個体識別情報を生成する識別情報生成回路と、を備え、前記読み出し回路は、前記抵抗値情報と前記２値化基準値との関係に応じて第１のディジタルデータを取得し、前記識別情報生成回路は、前記第１のディジタルデータとは異なり、かつ前記抵抗値と相関のない第２のディジタルデータを取得し、前記第１のディジタルデータと前記第２のディジタルデータとに基づいて前記個体識別情報を生成する。
【００２２】
上述の特定の態様は、システム、方法およびマイクロプロセッサープログラムを用いて実装されてもよいし、またはシステム、方法およびマイクロプロセッサープログラムの組み合わせを用いて実現されてもよい。
【発明の効果】
【００２３】
本開示の一態様にかかる不揮発性メモリ装置は、第１のディジタルデータと第２のディジタルデータとに基づく所定の生成方法により個体識別情報を得る。この生成方法は、利用者により任意に変更できるため、メモリセルおよび固定抵抗の抵抗値と、個体識別情報との関係性を予測することが極めて困難になり、個体識別情報であるディジタルＩＤデータは安全かつ安定的に生成され、かつ複製が極めて困難である。したがって、近年大きな脅威となっているサイドチャンネル攻撃に対しても強い耐性を持つＰＵＦ技術を提供できる。
【００２４】
本開示の一態様にかかる不揮発性メモリ装置を用いることにより、大量の不揮発性メモリが搭載されるＳｏＣ及びマイコンでの個体識別のためのディジタルＩＤデータのビット長を容易に多ビット化することができる。さらにメモリセルの抵抗値とディジタルＩＤデータとの関係性や、チャレンジ情報に対するレスポンス情報の関係性を予測させず、チップの複製を困難たらしめ、セキュリティーを極めて強化できる。
【図面の簡単な説明】
【００２５】
【図１】図１は、実施形態にかかる不揮発性メモリ装置の概略構成の一例を示すブロック図である。
【図２】図２は、実施形態にかかる不揮発性メモリ装置が備えるメモリセルの概略構成の一例を示す断面図である。
【図３】図３は、実施形態にかかる不揮発性メモリ装置が備えるメモリセルの抵抗値範囲の一例を示すグラフである。
【図４】図４は、実施形態にかかる可変状態にあるバイポーラ型抵抗変化素子の特性の一例を示す図である。
【図５】図５は、先行技術文献に開示されている、可変状態にあるユニポーラ型抵抗変化素子の特性の一例を示す模式図である。
【図６】図６は、実施形態にかかるディジタルＩＤセット状態の規格化抵抗値情報と、そのメモリセルのばらつきについての標準正規分布の偏差との関係をプロットした図である。
【図７】図７は、実施形態にかかるディジタルＩＤデータ状態に推移させるときに様々な電圧パルス条件で推移させたときのばらつき分布を示す図である。
【図８】図８は、実施形態にかかるフィラメントの発生数が抵抗変化素子ごとに異なることを示す図である。
【図９】図９は、実施形態において同一の可変抵抗値範囲にあるメモリセルから連続して抵抗値を読み出した例を示す図である。
【図１０Ａ】図１０Ａは、実施形態にかかるパーコレーションモデル（ｐｅｒｃｏｌａｔｉｏｎ  ｍｏｄｅｌ）を用いて、任意の抵抗状態に書込まれたときの抵抗変化層中のフィラメントの形成をシミュレートした結果の一例を示す図である。
【図１０Ｂ】図１０Ｂは、実施形態にかかるパーコレーションモデル（ｐｅｒｃｏｌａｔｉｏｎ  ｍｏｄｅｌ）を用いて、任意の抵抗状態に書込まれたときの抵抗変化層中のフィラメントの形成をシミュレートした結果の一例を示す図である。
【図１１】図１１は、実施形態にかかる図３に示すようなディジタルＩＤセット状態に書き込まれた所定のビット数のメモリセル群の抵抗値を放置時間ごとに読み出したときのばらつき範囲と抵抗中央値を示す図である。
【図１２】図１２は、実施形態にかかる書き込まれたディジタルＩＤデータを図１１に示したような初期の抵抗中央値で抽出したときにおける、エラーレートと放置時間との関係を示す図である。
【図１３】図１３は、実施形態にかかるディジタルＩＤデータを生成し、不揮発性メモリ装置に書き込む処理フローの一具体例を示すフローチャートである。
【図１４】図１４は、実施形態にかかるディジタルＩＤデータを再生する処理フローの一具体例を示すフローチャートである。
【図１５】図１５は、実施形態にかかるディジタルＩＤデータの例を示す図である。
【図１６】図１６は、実施形態にかかる誤り訂正前のデータ誤り率の推移を示す図である。
【図１７】図１７は、実施形態にかかる読み出し回数と累積エラーレートとの関係を示す図である。
【図１８】図１８は、実施形態にかかる不揮発性メモリ装置の具体的な構成例を示すブロック図である。
【図１９】図１９は、実施形態にかかる不揮発性メモリ装置が備える読み出し回路の構成例を示す回路図である。
【図２０Ａ】図２０Ａは、実施形態にかかる選択されたメモリセルを放電方式にて読み出す場合のタイミングチャートである。
【図２０Ｂ】図２０Ｂは、実施形態にかかる選択されたメモリセルを充電方式にて読み出す場合のタイミングチャートである。
【図２１】図２１は、実施形態にかかる不揮発性メモリ装置が備えるＩＤデータ制御回路の構成例を示す図である。
【図２２】図２２は、実施形態にかかる中央値検出回路の一変形例を示す図である。
【図２３】図２３は、実施形態にかかる中央値検出回路が抵抗中央値を算出した結果を示す図である。
【図２４Ａ】図２４Ａは、実施形態にかかるチャレンジ・レスポンスの処理の例を示す図である。
【図２４Ｂ】図２４Ｂは、実施形態にかかるチャレンジ・レスポンスの処理の例を示す図である。
【図２５】図２５は、実施形態にかかる乱数生成回路の構成例を示す図である。
【図２６】図２６は、Ｈ４回路の構成例を示す図である。
【図２７】図２７は、実施形態にかかるラッチにおけるデータ更新の状態遷移を示す図である。
【図２８Ａ】図２８Ａは、Ｆｕｓｓｙ  Ｅｘｔｒａｃｔｏｒと呼ばれるデータ抽出器の構成例を示す図である。
【図２８Ｂ】図２８Ｂは、Ｆｕｓｓｙ  Ｅｘｔｒａｃｔｏｒと呼ばれるデータ抽出器の構成例を示す図である。
【図２９】図２９は、実施形態にかかる通信システムの構成例を示す図である。
【発明を実施するための形態】
【００２６】
以下、添付の図面を参照しながら、本開示にかかる不揮発性メモリ装置等の実施形態を説明する。本開示にかかる不揮発性メモリ装置は、少なくとも１つ以上の閾値で抵抗値を判別してデータを記憶する抵抗変化型の不揮発性メモリセルを複数有している。
【００２７】
不揮発性メモリ装置は、たとえば、個体識別情報を生成する機能を備えている。不揮発性メモリ装置では、生成した個体識別情報をもとに、データの暗号化・復号化が行われるとともに、相互間の認証も行われ得る。より具体的には、本開示にかかる不揮発性メモリ装置は、抵抗変化メモリ素子の内容を読み出し、少なくとも部分的にその内容からディジタル識別子を導出する個体識別情報用にチップごとにユニークな固有の乱数データを生成する機能を備えている。これにより、電気的、物理的な複製を妨げることが可能になる。更に装置外部から入力されるチャレンジ情報に対して、装置ごとに異なるレスポンス情報を生成する機能を有することにより、本開示の不揮発性メモリ装置に対して装置外からセキュア性の高い認証を可能とする。また、書き換えることのない同じ抵抗値状態にあるメモリセルの抵抗値情報を複数回読み出すことにより、抵抗値の揺らぎ成分を取得し、真性乱数データを生成する。
【００２８】
不揮発性メモリ装置は、たとえばモバイル型電子マネーで利用されるＩＣチップを搭載したカードに搭載され得る。ＩＣチップには、他に論理回路、揮発性メモリ装置、およびマイクロプロセッサーを具備する。これらを用いて暗号化機能、ディジタル署名、およびディジタル認証機能などの各種情報セキュリティー機能を実現する。これらの機能が実行されるときには秘密鍵によるデータ暗号が用いられる。ＩＣカード内においても前述したように秘密鍵を複製できないように安全に保管することが望ましい。
【００２９】
（発明者らによる検討）
上述の秘密鍵の保管、および装置ごとに固有なチャレンジ情報に対するレスポンス情報の生成（以降、チャレンジ・レスポンス生成とも言う）を実現するために前述のＰＵＦ技術が用いられる。ＰＵＦ技術で得られた個体識別情報である乱数のディジタルＩＤデータはデバイス暗号鍵として、秘密鍵を暗号化して不揮発性メモリに保存するのに用いられる。ディジタルＩＤデータは、各ＩＣで異なる乱数であるため、それを用いて暗号化されたデータも各ＩＣで固有のデータ列となる。ディジタルＩＤデータは、暗号化された秘密鍵がハッキングなどにより別のＩＣにコピーされたとしても複製できない。ディジタルＩＤデータが複製されないので、もとの秘密鍵を不正利用されることがない。ＰＵＦ技術を用いたチャレンジ・レスポンス生成も同様に、入力されるチャレンジ情報からレスポンス情報を導き出す関数に製造ばらつきに基づくパラメータが用いられる。したがって、入力されるチャレンジ情報からレスポンス情報を導き出す関数は、装置ごとにユニークな関数となり複製できない。従って、ＰＵＦ技術のチャレンジ・レスポンスを用いた認証はセキュア性が高い。
【００３０】
しかしながら、ＩＣカードのような超小型機器には、ＰＵＦ技術を具現化したディジタルＩＤデータ生成のための回路も高度に小型化することが要求される。特にＰＵＦ技術にもとづくディジタルＩＤデータはデータに誤りを含んでいるため誤り訂正回路が必要となる。誤り量が多いと誤り訂正回路の回路規模もそれにともなって大きくなる。したがって、データ誤り率を低くかつ安定化して、極力必要な誤り訂正能力を低減し、回路規模を削減することが求められる。更に、バッテリーが非搭載の一般的なＩＣカードでは、通信時に得られるワイヤレス給電による電力で短時間のうちに各種機能を実行する必要がある。つまり、ディジタルＩＤデータの生成においても超低消費電力化と生成速度の高速化が同時に求められる。そこで本願発明者らは、かかる要求に応えられるようなディジタルＩＤデータの生成器として、いくつかの先行技術を検討した。
【００３１】
非特許文献２では、先行する各種ＰＵＦ技術のベンチマークがなされている。特にディジタルＩＤデータの誤り率に着目すると、ＳＲＡＭ  ＰＵＦおよびグリッジＰＵＦは環境変化も考慮すると最悪１５％のデータ誤り率まで悪化するとされている。製造上の歩留まりを考えると、２０％以上のデータ誤りを許容する誤り訂正回路が必要となる。したがって、誤り訂正回路の回路規模がＩＣにとって課題となる。また、ＳＲＡＭ  ＰＵＦの場合の最新の研究では非特許文献１のように極めて低誤りのセルが報告されている。しかし、そのときのメモリセルのサイズは２２ｎｍプロセスを用いているにもかかわらず４．６６μｍ2と極めて大きい。さらに特別なＰＵＦ用のＳＲＡＭセルを設けた場合、素子の特定が容易で耐タンパ性の問題となる。
【００３２】
本発明者らは、ＰＵＦ技術の特徴を以下のように整理した。ＰＵＦ技術の特徴は、主に次の３点にまとめられると考えられる。
特徴（１）：複製できない物理的な現象から固有のディジタルＩＤデータ（個体識別情報）を得る。
特徴（２）：物理的な現象は動的な回路制御によってのみ得られ、プローブによる直接的な読み取りといった静的な解析では、必要とされる物理的な現象を得ることはできない。
特徴（３）：得られたディジタルＩＤデータには誤りがあり、誤り訂正回路によってのみ真のＩＤデータが得られる。
【００３３】
さらに本発明者らは、ＰＵＦ技術によって得られるディジタルＩＤデータに求められる主な性能を以下のようにまとめた。
性能（１）：ディジタルＩＤデータに含まれる誤り箇所はランダムに変化し、真のＩＤデータの予測が困難である。
性能（２）：ＰＵＦ技術によって得られるディジタルＩＤデータは高い乱数性があり、ＩＣごとにユニークな固有データとなる。
性能（３）：ＰＵＦ技術を採用した場合、そのために付加すべき回路のオーバーヘッドが小さく、ディジタルＩＤデータを生成する際の消費電力が小さい。
性能（４）：各データビットを生成する生成回路の並列処理数を多くすることで、サイドチャンネル攻撃への耐性が向上する。
性能（５）：データの誤り率が小さく、誤り訂正回路の回路規模を小さくできる。
性能（６）：ディジタルＩＤデータを生成するタイミングに制約が少なく生成速度が高速である。
【００３４】
上述の特徴及び性能に対し、従来例として知られているＳＲＡＭ−ＰＵＦでは、性能（６）に大きな制約がある。ＳＲＡＭ−ＰＵＦは原理上、電源の投入時にしか得られない。ＩＣ内部のＳＲＡＭは、データキャッシュとして利用するため、ＰＵＦを用いてＩＤデータを生成するときには、一旦ＳＲＡＭ内のデータを退避するか、破棄しなければならない。したがって、システム動作上に大きな制約が発生する。また、この対策として、任意のタイミングでＩＤデータを生成するためには、非特許文献１のようにＰＵＦ専用のセルを別途設ける必要がある。この場合、回路のオーバーヘッドが増加し、性能（５）の要件を著しく低下させる。
【００３５】
更にＳＲＡＭを用いたＰＵＦの場合、データ誤りを起こすセルは同一となる傾向がある。つまり、動作が安定なセルと不安定なセルが決まっているため、誤りを含んだディジタルＩＤデータのパターンが限られ、真のディジタルＩＤデータが予測しやすいという課題がある。また、アービターＰＵＦでは、生成タイミングの制約、回路規模、および生成速度などの課題は生じないが、配線遅延およびゲート遅延などのばらつきが大きくないことから、ＩＤデータのユニーク性が乏しい。また、非特許文献２において指摘されているように、アービターＰＵＦのデータ誤り率は１５％と非常に大きいため、誤り訂正回路の規模増加が大きな課題となる。
【００３６】
（発明者らが得た知見）
本発明者らは、以上のような課題を解決できる可能性のある新規なディジタルＩＤデータ生成方法を鋭意検討した。その結果、本発明者らは、抵抗変化素子の書き込まれた抵抗値が正規分布にばらつく現象を見出し、抵抗値のばらつきから安定的なディジタルＩＤデータを生成することに想到した。
【００３７】
抵抗変化型のメモリ素子は、当該メモリ素子の両電極間に、所定の電圧（絶対値）・極性・幅の電気的なパルスを印加することで、少なくとも第１の抵抗値状態と、第１の抵抗値状態よりも抵抗値の小さい第２の抵抗値状態との間で可逆的に変化する。通常は、第１の抵抗値状態および第２の抵抗値状態にディジタルデータ（たとえば「０」と「１」）を割り当てて、情報として保存する。
【００３８】
ここで本発明者らは、上述の第１の抵抗値状態、第２の抵抗値状態、更に後述する初期状態の何れか１つの状態に属するセル群に着目し、そのセル群に含まれる各セルをその抵抗値に応じて２つに分類した。つまり、そのセル群に含まれる各セルを２値化（ディジタルデータ化）した。各セルの抵抗値はばらついており、そのばらつきを利用して各セルを第１のディジタルデータに変換する。前記第１のディジタルデータを装置固有のディジタルＩＤデータとして利用することで、より安全で安定な暗号技術等に応用可能な、従来にないディジタルＩＤデータの生成方法を提供できる。しかし、前記第１のディジタルデータはメモリセルの抵抗値と結びつきが強く、プローブなどによって、直接的にメモリセルの抵抗値を読み取るようなハッキング攻撃によって、前記第１のディジタルデータの内容が予測される可能性があるといった脆弱性が懸念される。本開示で例示する抵抗変化型のメモリセルは、低電圧で高速に抵抗値が変化するため、ＩＣチップへの侵襲工程およびプロービングで発生する静電気などにより、抵抗が敏感に変化する。このため、プローブによる前記攻撃に対しても耐性があると考えられるが、将来的な技術進歩によっては課題となる可能性がある。この課題に対して本発明者は、更に、第１のディジタルデータとは異なる、メモリセルの抵抗値とは関連性の無い第２のディジタルデータを生成し、前記第２のディジタルデータに基づいて前記第１のディジタルデータを変換した第３のディジタルデータを生成してディジタルＩＤデータとして利用することで、前記攻撃に対する脆弱性の解決を図った。
【００３９】
また、ディジタルＩＤデータの生成を行う多くの回路要素は、通常の不揮発性メモリ装置として搭載される回路と共通化することが可能である。そのため、ディジタルＩＤデータの生成のために増加する回路規模を大きく抑制することができ、小型化し得る。
【００４０】
さらに、不揮発性メモリ装置のデータ読み出しはメモリアレイの構造上、データを並列処理で複数読み出すため、ディジタルＩＤデータの生成スピードも飛躍的に高められる。同時に、サイドチャンネル攻撃においても、並列処理により輻射電磁波が並列数の総和で与えられるため、攻撃に対する耐性を高められ得る。
【００４１】
また、乱数の生成においては、０および１のどちらかに偏らない、バイアス確率が小さい乱数を生成することにより、より安全性を高めることができる。このようなバイアス確率が小さい乱数の生成時間を短縮することができれば、ディジタルＩＤデータの生成スピードも飛躍的に高められる。
【００４２】
本発明者らによる知見に基づいて、以下、本開示の一態様の概要を説明する。
【００４３】
本開示の実施形態に係る不揮発性メモリ装置は、複数の不揮発性メモリセルを有するメモリアレイと、前記複数の不揮発性メモリセルのうち、少なくとも１つの閾値によって判別される複数の抵抗値範囲のうちの１つの抵抗値範囲に属する複数の不揮発性メモリセルを選択し、選択された前記１つの抵抗値範囲に属する複数の不揮発性メモリセルの各々の抵抗値に関する複数の抵抗値情報を取得する読み出し回路と、前記読み出し回路によって取得された、前記複数の抵抗値情報に基づいて２値化基準値を算出する演算回路と、個体識別情報を生成する識別情報生成回路と、を備え、前記読み出し回路は、前記抵抗値情報と前記２値化基準値との関係に応じて第１のディジタルデータを取得し、前記識別情報生成回路は、前記第１のディジタルデータとは異なり、かつ前記抵抗値と相関のない第２のディジタルデータを取得し、前記第１のディジタルデータと前記第２のディジタルデータとに基づいて前記個体識別情報を生成する。
【００４４】
本開示の実施形態に係る不揮発性メモリ装置によれば、不揮発性メモリセルの抵抗値と相関のある第１のディジタルデータと、不揮発性メモリセルの抵抗値と相関のない第２のディジタルデータとに基づいて個体識別情報を得る。利用者が第２のディジタルデータを任意に変更できるようにすると、第１のディジタルデータおよび第２のディジタルデータと、個体識別情報との関係性を予測することが極めて困難になるので、個体識別情報であるディジタルＩＤデータは安全かつ安定的に生成され、かつ複製が極めて困難である。したがって、近年大きな脅威となっているサイドチャンネル攻撃に対しても強い耐性を持つＰＵＦ技術を提供できる。
【００４５】
また、本開示の実施形態に係る不揮発性メモリ装置を用いることにより、大量の不揮発性メモリが搭載されるＳｏＣ及びマイコンでの個体識別のためのディジタルＩＤデータのビット長を容易に多ビット化することができる。さらにメモリセルの抵抗値とディジタルＩＤデータとの関係性、およびチャレンジ情報に対するレスポンス情報の関係性を予測させず、チップの複製を困難たらしめ、セキュリティーを極めて強化できる。
【００４６】
ある実施形態に係る不揮発性メモリ装置は、複数のトランジスタをさらに備え、前記第２のディジタルデータは、前記複数のトランジスタのオン抵抗のバラつきから得られてもよい。
【００４７】
ある実施形態において、前記少なくとも１つの閾値は、第１の閾値および第２の閾値を含む複数の閾値を備え、前記複数の抵抗値範囲は、前記第１の閾値および前記第２閾値で規定される、重複しない３個の抵抗値範囲を含み、前記３個の抵抗値範囲は、予め想定された最も大きい抵抗値または最も小さい抵抗値を含む第１の抵抗値範囲、並びに前記第１の抵抗値範囲とは異なる第２の抵抗値範囲および第３の抵抗値範囲であり、前記複数の不揮発性メモリセルの各々は、可変状態では、異なる複数の電気的信号が印加されることによって、前記抵抗値が前記第２の抵抗値範囲および前記第３の抵抗値範囲の間を可逆的に遷移する特性を有し、初期状態では、前記抵抗値が前記第１の抵抗値範囲に属する初期抵抗値範囲にあり、前記第２のディジタルデータは、第１種データまたは第２種データであり、前記第１種データは、前記第１の閾値で判別されて得られ、前記複数の不揮発性メモリセルの各々が前記初期状態にあるか前記可変状態にあるかを示しており、前記第２種データは、前記第２の閾値で判別されて得られ、前記複数の不揮発性メモリセルの各々の抵抗値が前記第２の抵抗値範囲にあるか前記第３の抵抗値範囲にあるかを示していてもよい。
【００４８】
ある実施形態に係る不揮発性メモ装置は、前記第２のディジタルデータを初期値として演算を行い、前記演算により前記第２のディジタルデータとはデータ系列が異なる変形された第２のディジタルデータを生成する巡回演算回路をさらに備え、前記識別情報生成回路は、前記第１のディジタルデータと前記変形された第２のディジタルデータとに基づいて前記個体識別情報を生成してもよい。
【００４９】
ある実施形態において、前記第１のディジタルデータは、所定のデータビット数ごとに複数のアドレスに割り当てられ、前記巡回演算回路は、前記複数のアドレスの各々に割り当てられた前記第１のディジタルデータの一部の読み出しを行い、前記読み出しごとに、前記第２のディジタルデータを前記初期値とした前記演算を繰り返し、前記第１のディジタルデータの前記一部と等しいデータビット数の前記変形された第２のディジタルデータを生成し、前記識別情報生成回路は、前記第１のディジタルデータの一部ごとに前記個体識別情報を生成してもよい。
【００５０】
ある実施形態において、前記複数のアドレスの各々に割り当てられた前記第１のディジタルデータの前記一部を読み出すときに、前記読み出し回路が前記複数のアドレスの読み出し順序を変更することで、前記識別情報生成回路における前記第１のディジタルデータの前記一部と前記変形された第２のディジタルデータとの組み合わせを変更してもよい。
【００５１】
ある実施形態において、前記不揮発性メモリ装置は、前記複数のアドレスの前記読み出し順序を示すチャレンジ入力を前記不揮発性メモリ装置の外部から受け付け、前記組み合わせに応じて生成された前記個体識別情報を、レスポンス出力として前記不揮発性メモリ装置の外部に出力し、前記不揮発性メモリ装置は、前記チャレンジ入力と前記レスポンス出力との関係に基づいて、前記不揮発性メモリ装置の外部から認証されてもよい。
【００５２】
ある実施形態において、前記複数の不揮発性メモリセルの各々は、第１電極と、第２電極と、前記第１電極および前記第２電極の間に配置される抵抗変化層とを含む抵抗変化素子を備えてもよい。
【００５３】
ある実施形態において、前記抵抗変化層は、絶縁体の層を含んでもよい。
【００５４】
ある実施形態において、前記抵抗変化層は、前記絶縁体の層を貫く局所領域を有してもよい。
【００５５】
ある実施形態において、前記抵抗変化層は、金属酸化物を含んでいてもよい。
【００５６】
ある実施形態において、前記金属酸化物は、酸素不足型であってもよい。
【００５７】
ある実施形態において、前記金属酸化物は、遷移金属酸化物およびアルミニウム酸化物からなる群から選択される少なくとも一つであってもよい。
【００５８】
ある実施形態において、前記金属酸化物は、タンタル酸化物、ハフニウム酸化物およびジルコニウム酸化物からなる群から選択される少なくとも一つであってもよい。
【００５９】
ある実施形態において、前記絶縁体は金属酸化物を含み、前記局所領域は、前記絶縁体よりも酸素含有率が低い酸素不足型の金属酸化物を含んでいてもよい。
【００６０】
ある実施形態に係る集積回路カードは、上記のいずれかに記載の不揮発性メモリ装置と、前記個体識別情報が出力される入出力インタフェース部と、を備える。
【００６１】
ある実施形態に係る不揮発性メモリ装置の認証方法は、前記不揮発性メモリ装置が正規の装置であることを認証するための認証方法であって、前記不揮発性メモリ装置の出荷前に、前記第１のディジタルデータと前記第２のディジタルデータとを読み出して外部認証装置に保持し、前記不揮発性メモリ装置の出荷後、前記不揮発性メモリ装置が使用されるときに、前記外部認証装置は、複数の前記チャレンジ入力を用いて前記レスポンス出力を受信し、前記外部認証装置が予め保持している前記第１のディジタルデータと前記第２のディジタルデータとを用いて演算した結果と前記受信したレスポンス出力とが一致しているか否かを判断し、一致している場合には、前記不揮発性メモリ装置が正規の装置であるとして認証する。
【００６２】
ある実施形態に係る個体識別情報生成方法は、抵抗値の変化を利用してデータを記憶する抵抗変化型の不揮発性メモリセルを用いて個体識別情報を生成する個体識別情報生成方法であって、少なくとも１つの閾値を用いて前記抵抗値が判別される複数の不揮発性メモリセルを有するメモリアレイに含まれる、前記少なくとも１つの閾値によって判別されるＮ（Ｎ：２以上の整数）個の抵抗値範囲のうちの１つの抵抗値範囲に属する複数の不揮発性メモリセルを選択し、前記選択された各不揮発性メモリセルの前記抵抗値に関する抵抗値情報を取得し、前記取得された各不揮発性メモリセルの抵抗値情報に基づいて２値化基準値を算出し、前記各不揮発性メモリセルの抵抗値情報と前記２値化基準値との関係に応じて第１のディジタルデータを取得し、前記第１のディジタルデータとは異なり、かつ前記抵抗値と相関のない第２のディジタルデータを取得し、前記第１のディジタルデータと前記第２のディジタルデータとに基づいて前記個体識別情報を生成する。
【００６３】
本開示において、ユニット、デバイスの全部又は一部、又はブロック図の機能ブロックの全部又は一部は、半導体装置、半導体集積回路（ＩＣ）、又はＬＳＩ（large scale integration）を含む一つ又は一つ以上の電子回路によって実行されてもよい。ＬＳＩ又はＩＣは、一つのチップに集積されてもよいし、複数のチップを組み合わせて構成されてもよい。例えば、記憶素子以外の機能ブロックは、一つのチップに集積されてもよい。ここでは、ＬＳＩまたはＩＣと呼んでいるが、集積の度合いによって呼び方が変わり、システムＬＳＩ、ＶＬＳＩ(very large scale integration)、若しくはＵＬＳＩ(ultra large scale integration) と呼ばれるかもしれない。 ＬＳＩの製造後にプログラムされる、Field Programmable Gate Array (FPGA)、又はＬＳＩ内部の接合関係の再構成又はＬＳＩ内部の回路区画のセットアップができるreconfigurable logic deviceも同じ目的で使うことができる。
【００６４】
さらに、ユニット、装置、又は装置の一部の、全部又は一部の機能又は操作は、ソフトウエア処理によって実行することが可能である。この場合、ソフトウエアは一つ又は一つ以上のＲＯＭ、光学ディスク、ハードディスクドライブ、などの非一時的記録媒体に記録され、ソフトウエアが、処理装置（processor）によって実行された場合に、ソフトウエアは、ソフトウエア内の特定の機能を、処理装置（processor）と周辺のデバイスに実行させる。システム又は装置は、ソフトウエアが記録されている一つ又は一つ以上の非一時的記録媒体、処理装置（processor）、及び必要とされるハードウエアデバイス、例えばインターフェース、を備えていても良い。
【００６５】
以下、添付図面を参照しながら、これらの知見に基づく本開示の実施形態の詳細を説明する。
【００６６】
以下で説明する実施形態は、いずれも一具体例を示すものである。以下の実施形態で示される数値、形状、材料、構成要素、構成要素の配置位置および接続形態、ステップ、ステップの順序などは、あくまで一例であり、本開示を限定するものではない。以下の実施形態における構成要素のうち、本開示の最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。また、図面において、同じ符号が付いたものは、説明を省略する場合がある。また、図面は理解しやすくするために、それぞれの構成要素を模式的に示したもので、形状および寸法比等については正確な表示ではない場合がある。また、製造方法においては、必要に応じて、各工程の順序等を変更でき、かつ、他の公知の工程を追加できる。
【００６７】
（実施形態に係る不揮発性メモリ装置の概要）
図１は、実施形態にかかる不揮発性メモリ装置１００の概略構成の一例を示すブロック図である。また、図２は、実施形態にかかる不揮発性メモリ装置１００が備えるメモリセルの概略構成の一例を示す断面図である。不揮発性メモリ装置１００は、抵抗変化型の不揮発性メモリ装置である。
【００６８】
実施形態の不揮発性メモリ装置１００は、少なくともメモリセルアレイ９０と、制御装置９３とを備えている。メモリセルアレイ９０は、複数のメモリセル９１がアレイ状に配置された構成を有する。複数のメモリセル９１には、図２の抵抗変化型素子が具備され、抵抗値の違いによりディジタルデータを記憶する。
【００６９】
初めに、不揮発性メモリ装置１００が備える「ユーザーデータの記憶機能」について説明する。一般に装置利用者（ユーザー）が装置に記憶させたい任意のディジタルデータをユーザーデータと定義する。ユーザーデータをメモリセルアレイ９０に記憶する場合は、制御装置９３による制御に従って、装置外から入力されるユーザーデータを、少なくとも１つの閾値を基準として、閾値以上の抵抗値範囲に書込まれるメモリセルと、閾値未満になる抵抗値範囲に書込まれるメモリセルとに、少なくとも２値に分かれるディジタル情報を割り当てて記憶する。記憶されたユーザーデータを読み出す場合は、制御装置９３による制御に従って、閾値を判定基準にして元のディジタルデータに復元して装置外に出力する。なお、制御装置は必ずしも不揮発性メモリ装置の一部である必要はなく、装置外に接続された制御装置を用いて、以下に説明する動作が行われてもよい。
【００７０】
次に、不揮発性メモリ装置１００が備える装置固有のディジタルＩＤデータの元となる「第１のディジタルデータ生成機能」について説明する。本実施形態にかかる構成によれば、前記不揮発性メモリ装置を利用して装置固有のディジタルＩＤデータを生成する。制御装置９３は、前記ディジタルＩＤデータを生成するための元となる第１のディジタルデータを生成するために、抵抗値が同一の抵抗値状態にあるメモリセル９１群から複数の抵抗値情報を取得し、抵抗値情報のばらつきの中央値を検出する。検出された中央値に基づいた閾値を基準として、同一の抵抗値状態にあるメモリセル群の各メモリセルに０または１のディジタルデータのいずれの値を割り当てるかを判定し、後述するディジタルＩＤデータの生成に用いる第１のディジタルデータを生成する。同一の抵抗値状態とは、前記ユーザーデータを記憶するときにディジタル情報の１つの状態を割り当てるために用いる１つの抵抗値範囲にある状態のことをいう。
【００７１】
一般に、不揮発性メモリ装置において、メモリセルがもつ物理量に、例えばディジタル量の最小単位である２値情報を割り当てるとき、その物理量が、所定の閾値以上のある範囲に属するか、または所定の閾値未満のある範囲に属するかによって、２値情報のいずれを割り当てるかを変える。近年の不揮発性メモリ装置は誤り訂正回路を具備している。誤り訂正回路による誤り訂正処理によれば、２値情報を割り当てるために予め想定された範囲に一部のメモリセルの物理量が入らない場合であっても、その物理量から得られる２値情報は正しく復元される。これは、前記第１のディジタルデータをなすメモリセル群のうちの一部が同一の抵抗値範囲になくても良いことを意味する。本明細書の定義として、前記第１のディジタルデータをなすメモリセル群の少なくとも半数より多いメモリセルが同一の抵抗値状態にあれば、本開示における諸機能を達成できるものとする。
【００７２】
また、不揮発性メモリ装置１００は、装置固有のディジタルＩＤデータの元となる「第２のディジタルデータ生成機能」を有する。また、不揮発性メモリ装置１００は、「乱数データデータ生成機能」、「データ誤り付加機能」、「チャレンジ・レスポンス機能」を有する。これら各種処理の詳細は後述する。
【００７３】
不揮発性メモリ装置１００が備えるこれらの複数の機能は、複数の機能の全てを装置に搭載しても良いし、それらの一部を組合せて搭載しても良い。さらに各機能の具体的な実現方法を以降で説明するが、その方法に限定されるものではなく、上記の考え方の同じであれば本願に含まれるものである。
【００７４】
不揮発性メモリ装置１００の個体識別情報として利用されるディジタルＩＤデータを生成する際には、各抵抗値が、同一の抵抗値範囲に属している複数の不揮発性メモリセルから生成される前述の第１のディジタルデータを利用する。当該複数の不揮発性メモリセルにはユーザーデータは書き込まれない。つまり、装置固有のディジタルＩＤデータが変更される場合を除き、抵抗値の書換えは行われないし、各不揮発性メモリセルの抵抗値は、予め定められた抵抗値範囲に固定化されている。各抵抗値は同一の抵抗値範囲内でばらついており、そのばらつきが、不揮発性メモリ装置１００の固有の情報のもとになる。「抵抗値範囲」の詳細は、後述する図３を参照しながら詳細に説明する。
【００７５】
「抵抗値情報」とは、抵抗値と相関関係を有する情報であり、抵抗値そのものであってもよいし、抵抗値に応じて増減する値であってもよい。抵抗値に応じて増減する値としては、例えば後述するような、メモリセルに並列に接続されたキャパシタに蓄積された電荷がメモリセルを介して放電される放電時間、または逆に放電されたキャパシタと並列に接続される関係にあるメモリセルに所定の定電流を流して所定のレベルまで充電される充電時間でもよい。該放電時間または充電時間は、所定のクロック周期でカウントされたカウント値等であってもよい。なお、キャパシタは素子であることには限定されず、例えば配線などの寄生容量、またはトランジスタの拡散容量でもよい。
【００７６】
抵抗値情報は、所定の分解能のセンスアンプ回路によって測定された値であってもよい。あるいは、抵抗値情報は、センスアンプ回路によって測定された値が、閾値によって区分けされた複数の抵抗値範囲のいずれに該当するかを判定することによって得られた値であってもよい。その場合、複数の抵抗値範囲のそれぞれは、一部の抵抗値範囲が、さらに細かく区分けされたものであってもよい。
【００７７】
図２に示す例では、メモリセル９１が備える抵抗変化素子１２０が、下地層（例えば基板）１２２と、第１電極１２４と、抵抗変化層１２６と、第２電極１２８とを備えている。それぞれのメモリセルには、特定のメモリセルを選択するためのトランジスタおよびダイオードなどの選択素子が接続されてもよいが、図２においては図示せずに省略している。
【００７８】
メモリセル９１は、異なる複数の電気的信号が印加されることによって、抵抗値が複数の可変抵抗値範囲の間を可逆的に遷移する可変状態を取りうる性質を有する。
【００７９】
図３は、第１の実施形態にかかる不揮発性メモリ装置が備えるメモリセルの抵抗値範囲の一例を示すグラフである。図３に例示するように、メモリセル９１は、少なくとも可変状態と初期状態の２つの状態を備えてもよい。
【００８０】
「初期状態」とは、抵抗値が可変抵抗値範囲のいずれとも重複しない初期抵抗値範囲にある状態をいう。初期状態にあるメモリセルは、フォーミングが行われない限り可変状態とならない。「フォーミング」とは、所定の電気的ストレスをメモリセルに印加して、メモリセルの抵抗値が複数の可変抵抗値範囲の間を可逆的に遷移する状態へと、メモリセルを変化させることをいう。
【００８１】
フォーミングのために印加される電気的ストレス（フォーミングストレス）は、例えば、所定の電圧と時間幅を有する電気的パルスである場合もあるし、複数の電気的パルスを組み合わせたものである場合もある。フォーミングストレスは累積的なストレスであってもよい。その場合、ストレスの累積量が所定量を超えたときに、メモリセル９１（図１）は初期状態から可変状態に遷移する。
【００８２】
本実施の形態では、メモリセル９１は、製造後、フォーミングをしなければ抵抗値が複数の可変抵抗値範囲の間を可逆的に遷移する状態とならないような性質を有しているとする。つまり、半導体プロセス等により製造した後、フォーミングストレスが印加される前の抵抗変化素子は、初期状態にあるとして説明する。
【００８３】
しかしながら、この性質は一例であり必須ではない。メモリセル９１は、初期状態を取りうる素子でなくてもよく、たとえば、可変状態のみを有する、いわゆるフォーミングレスの素子であってもよい。
【００８４】
［抵抗変化素子の構成］
図２に示す例において、抵抗変化素子１２０は、第１電極１２４と第２電極１２８との間に抵抗変化層１２６が配置された構成を有する。抵抗変化層１２６は、例えば金属酸化物、より詳細には例えば遷移金属酸化物で構成することができる。可変状態にあるメモリセル９１の抵抗変化素子１２０は、第１電極１２４と第２電極１２８との間に電気的信号（例えば電圧）が印加されることによって、第１電極１２４と第２電極１２８との間の抵抗値が複数の可変抵抗値範囲の間を可逆的に遷移する性質を有する。
【００８５】
初期状態にあるメモリセル９１の抵抗変化素子１２０の抵抗変化層１２６は、第１電極１２４と第２電極１２８との間を絶縁していてもよい。絶縁とは、具体的には例えば２ＭΩ以上とすることができる。抵抗変化素子１２０の抵抗変化層１２６は、絶縁体から構成された層を備えていてもよい。絶縁体とは、具体的には例えば抵抗率が３０Ω・ｍ以上の材料とすることができる。抵抗変化素子１２０の抵抗変化層１２６が絶縁体から構成されることにより、初期状態のメモリセルの抵抗特性を安定して維持することができる。
【００８６】
電気的信号の印加によって抵抗値が変化する可変状態の抵抗変化素子とは異なり、初期抵抗値範囲は、抵抗変化素子の材料、大きさ、形状、及び製造条件等によってある程度調整することができる。例えば、特に抵抗変化層１２６が積層構造である場合、酸素濃度の高い層の厚み、形成時の酸素濃度によって任意に調整可能であるが、個別のメモリセルごとには調整できない。
【００８７】
上記のような初期状態は、電気的信号の印加によって抵抗値が遷移する可変状態に比べて、安定している。そのため、初期状態と可変状態との差異を利用して、データを安定して保持することができる。
【００８８】
抵抗値範囲を表す抵抗値とは、例えば、初期状態にある素子を可変状態に遷移させるフォーミングストレス、および可変状態にある素子の抵抗値を複数の可変抵抗値範囲の間で変化させる電気的信号のいずれよりも小さな電圧を素子に印加して読み出したときに得られる抵抗値とする。
【００８９】
なお、フォーミングストレスは、メモリセル９１に印加する電圧振幅の量、パルスの幅、および累積印加時間等で決定され、それぞれの値はメモリセルアレイ９０内のメモリセル９１毎に異なりうる。なお、累積印加時間とは、例えば、抵抗状態が初期状態から可変状態に変化するまでに印加される電気的パルスのパルス幅の合計を意味する。このため、フォーミングストレスとして最低限必要となる電気的ストレスを規定するパラメータの具体的な値は、対象となるメモリセル９１毎に素子が可変状態へと変化するまでに印加された電気的ストレスの電圧、パルス幅、および累積印加時間等の値であって、絶対的な固定値ではなく所定のばらつきをもつ値である。そして、このような素子ごとのフォーミングにおける電気的ストレスのばらつきは、その後の可変抵抗値範囲にある各セルの抵抗値のばらつきの要因となると推察され、素子ごとに人為的に制御することが困難である。
【００９０】
なお、フォーミングストレスは、可変状態にあるメモリセルの抵抗値を複数の可変抵抗値範囲の間で可逆的に変化させるために印加される電気的信号よりも強いのが一般的である。具体的には、フォーミングストレスは、電圧の絶対値、パルス幅、および累積印加時間の少なくともいずれかにおいて、可変状態にあるメモリセルの抵抗値を変化させるために印加される電気的信号よりも大きいものとしうる。
【００９１】
可変状態において、電圧およびパルス幅等は異なるが同極性の電気的信号を印加することにより抵抗値が変化するものをユニポーラ型抵抗変化素子とよぶ。より具体的には、例えば、第２電極１２８から第１電極１２４に電流が流れる向きに＋２Ｖで１μＳｅｃの幅の電気的信号（電気的パルス）を印加すると抵抗変化素子の抵抗値が所定の高抵抗レベル（第１抵抗値範囲：ＨＲレベルまたは高抵抗レベルともいう）に変化し、第２電極１２８から第１電極１２４に電流が流れる向きに＋４Ｖで５０ｎＳｅｃの幅の電気的信号を印加すると抵抗変化素子の抵抗値が所定の低抵抗レベル（第２抵抗値範囲：ＬＲレベルまたは低抵抗レベルともいう）に変化する。このような、同極性の電気的信号を印加することにより抵抗値が可逆的に変化するものを、ユニポーラ型抵抗変化素子という。
【００９２】
一方、可変状態において、異なる極性の電気的信号を印加することで抵抗値が変化するものをバイポーラ型抵抗変化素子とよぶ。より具体的には、例えば、第２電極１２８から第１電極１２４に電流が流れる向きに＋２Ｖで５０ｎＳｅｃの幅の電気的信号を印加すると抵抗変化素子の抵抗値が所定の高抵抗レベル（第１抵抗値範囲：ＨＲレベルともいう）に変化し、第１電極１２４から第２電極１２８に電流が流れる向きに＋２Ｖで５０ｎＳｅｃの幅の電気的信号を印加すると抵抗変化素子の抵抗値が所定の低抵抗レベル（第２抵抗値範囲：ＬＲレベルともいう）に変化する。このような、逆極性の電気的信号を印加することにより抵抗値が可逆的に変化するものを、バイポーラ型抵抗変化素子という。
【００９３】
当然であるが、バイポーラ型抵抗変化素子において、例えば動作を安定にするために、極性のみならず、ＨＲレベルに変化させる場合（高抵抗化ともいう）に印加する電気的信号と、ＬＲレベルに変化させる場合（低抵抗化ともいう）に印加する電気的信号とで、パルス幅または電圧の絶対値を異ならせてもよい。
【００９４】
抵抗変化層１２６は金属酸化物から構成されてもよい。抵抗変化層１２６は、酸素不足型の金属酸化物から構成された層を備えてもよい。抵抗変化層１２６を構成する金属酸化物は、遷移金属酸化物およびアルミニウム酸化物の少なくともいずれか一方であってもよいし、タンタル酸化物、鉄酸化物、ハフニウム酸化物およびジルコニウム酸化物の少なくともいずれかであってもよい。
【００９５】
ユニポーラ型抵抗変化素子の抵抗変化層の材料には、チタン（Ｔｉ）酸化物、ニッケル（Ｎｉ）酸化物、アルミニウム（Ａｌ）酸化物等を用いることができる。一方、バイポーラ型抵抗変化素子の抵抗変化層の材料には、タンタル（Ｔａ）酸化物、ハフニウム（Ｈｆ）酸化物、アルミニウム（Ａｌ）酸化物、鉄（Ｆｅ）酸化物等を用いることができる。
【００９６】
同じ材料の酸化物を用いた場合でも、電極材料との組合せおよび酸化物の積層構造等により、ユニポーラ型抵抗変化素子およびバイポーラ型抵抗変化素子の両方が得られる場合もある。なお、抵抗変化層の材料にタンタル酸化物を用いると、抵抗変化素子が良好な特性を示すので、本実施形態において特に詳細に例示する。
【００９７】
第１電極１２４および第２電極１２８の材料には、例えば、イリジウム（Ｉｒ）、白金（Ｐｔ）、タングステン（Ｗ）、銅（Ｃｕ）、アルミニウム（Ａｌ）、窒化チタン（ＴｉＮ）、窒化タンタル（ＴａＮ）および窒化チタンアルミニウム（ＴｉＡｌＮ）等を用いることができる。
【００９８】
なお、図２に示す例では、第１電極１２４が第２電極１２８に比べ大面積となっているが、これに限定されるものでない。例えば、第１電極１２４を配線の一部に適用するなど、半導体プロセスにあわせ適宜、最適な形状にされうる。下地層１２２も同様に半導体プロセスに応じて適宜に省略または変更されうる。
【００９９】
抵抗変化層１２６は、第１電極１２４に接続する第１抵抗変化層と、第２電極１２８に接続する第２抵抗変化層の少なくとも２層を積層して構成されてもよい。
【０１００】
第１抵抗変化層は、酸素不足型の第１金属酸化物で構成され、第２抵抗変化層は、第１金属酸化物よりも酸素不足度が小さい第２金属酸化物で構成されうる。第２抵抗変化層は、絶縁体から構成された層であってもよい。第２抵抗変化層中には、電気パルスの印加に応じて酸素不足度が可逆的に変化する微小な局所領域が形成されている。局所領域は、酸素欠陥サイトから構成されるフィラメントを含むと考えられる。局所領域は、第２抵抗変化層を貫く導電パスであってもよい。絶縁体が金属酸化物から構成され、導電パスは、絶縁体よりも酸素含有率が低い酸素不足型の金属酸化物から構成されていてもよい。
【０１０１】
「酸素不足度」とは、金属酸化物において、その化学量論的組成（複数の化学量論的組成が存在する場合は、そのなかで最も抵抗値が高い化学量論的組成）の酸化物を構成する酸素の量に対し、不足している酸素の割合をいう。化学量論的組成の金属酸化物は、他の組成の金属酸化物と比べて、より安定でありかつより高い抵抗値を有している。
【０１０２】
例えば、金属がタンタル（Ｔａ）の場合、上述の定義による化学量論的組成の酸化物はＴａ2Ｏ5であるので、ＴａＯ2.5と表現できる。ＴａＯ2.5の酸素不足度は０％であり、ＴａＯ1.5の酸素不足度は、酸素不足度＝（２．５−１．５）／２．５＝４０％となる。ま
た、酸素過剰の金属酸化物は、酸素不足度が負の値となる。なお、本明細書中では、特に断りのない限り、酸素不足度は正の値、０、負の値も含むものとして説明する。
【０１０３】
酸素不足度の小さい酸化物は化学量論的組成の酸化物により近いため抵抗値が高く、酸素不足度の大きい酸化物は酸化物を構成する金属により近いため抵抗値が低い。
【０１０４】
「酸素含有率」とは、総原子数に占める酸素原子の比率である。例えば、Ｔａ2Ｏ5の酸素含有率は、総原子数に占める酸素原子の比率（Ｏ／（Ｔａ＋Ｏ））であり、７１．４ａｔｍ％となる。したがって、酸素不足型のタンタル酸化物は、酸素含有率は０より大きく、７１．４ａｔｍ％より小さいことになる。例えば、第１金属酸化物を構成する金属と、第２金属酸化物を構成する金属とが同種である場合、酸素含有率は酸素不足度と対応関係にある。すなわち、第２金属酸化物の酸素含有率が第１金属酸化物の酸素含有率よりも大きいとき、第２金属酸化物の酸素不足度は第１金属酸化物の酸素不足度より小さい。
【０１０５】
抵抗変化層を構成する金属は、タンタル以外の金属を用いてもよい。抵抗変化層を構成する金属としては、遷移金属、およびアルミニウム（Ａｌ）の少なくともいずれかを用いることができる。遷移金属としては、タンタル（Ｔａ）、チタン（Ｔｉ）、ハフニウム（Ｈｆ）、ジルコニウム（Ｚｒ）、ニオブ（Ｎｂ）、タングステン（Ｗ）、ニッケル（Ｎｉ）、鉄（Ｆｅ）等を用いることができる。遷移金属は複数の酸化状態をとることができるため、異なる抵抗状態を酸化還元反応により実現することが可能である。
【０１０６】
例えば、ハフニウム酸化物を用いる場合、第１金属酸化物の組成をＨｆＯxとした場合
にｘが０．９以上１．６以下であり、かつ、第２金属酸化物の組成をＨｆＯyとした場合
にｙがｘの値よりも大である場合に、抵抗変化層の抵抗値を安定して高速に変化させることができる。この場合、第２金属酸化物の膜厚は、３ｎｍ以上４ｎｍ以下としてもよい。
【０１０７】
また、ジルコニウム酸化物を用いる場合、第１金属酸化物の組成をＺｒＯxとした場合
にｘが０．９以上１．４以下であり、かつ、第２金属酸化物の組成をＺｒＯyとした場合
にｙがｘの値よりも大である場合に、抵抗変化層の抵抗値を安定して高速に変化させることができる。この場合、第２金属酸化物の膜厚は、１ｎｍ以上５ｎｍ以下としてもよい。
【０１０８】
第１金属酸化物を構成する第１金属と、第２金属酸化物を構成する第２金属とは、異なる金属を用いてもよい。この場合、第２金属酸化物は、第１金属酸化物よりも酸素不足度が小さい、つまり抵抗が高くてもよい。このような構成とすることにより、抵抗変化時に第１電極１２４と第２電極１２８との間に印加された電圧は、第２金属酸化物に、より多くの電圧が分配され、第２金属酸化物中で発生する酸化還元反応をより起こしやすくすることができる。
【０１０９】
また、第１抵抗変化層となる第１金属酸化物を構成する第１金属と、第２抵抗変化層となる第２金属酸化物を構成する第２金属とを、互いに異なる材料を用いる場合、第２金属の標準電極電位は、第１金属の標準電極電位より低くてもよい。標準電極電位は、その値が高いほど酸化しにくい特性を表す。これにより、標準電極電位が相対的に低い第２金属酸化物において、酸化還元反応が起こりやすくなる。なお、抵抗変化現象は、抵抗が高い第２金属酸化物中に形成された微小な局所領域中で酸化還元反応が起こってフィラメント（導電パス）が変化することにより、その抵抗値（酸素不足度）が変化することにより発現すると考えられる。
【０１１０】
例えば、第１金属酸化物に酸素不足型のタンタル酸化物（ＴａＯx）を用い、第２金属
酸化物にチタン酸化物（ＴｉＯ2）を用いることにより、安定した抵抗変化動作が得られ
る。チタン（標準電極電位＝−１．６３ｅＶ）はタンタル（標準電極電位＝−０．６ｅＶ）より標準電極電位が低い材料である。このように、第２金属酸化物に第１金属酸化物より標準電極電位が低い金属の酸化物を用いることにより、第２金属酸化物中でより酸化還元反応が発生しやすくなる。その他の組み合わせとして、高抵抗層となる第２金属酸化物にアルミニウム酸化物（Ａｌ2Ｏ3）を用いることができる。例えば、第１金属酸化物に酸素不足型のタンタル酸化物（ＴａＯx）を用い、第２金属酸化物にアルミニウム酸化物（Ａｌ2Ｏ3）を用いてもよい。
【０１１１】
積層構造の抵抗変化層における抵抗変化現象は、いずれも抵抗が高い第２金属酸化物中に形成された微小な局所領域中で酸化還元反応が起こって、局所領域中のフィラメント（導電パス）が変化することにより、その抵抗値が変化すると考えられる。
【０１１２】
つまり、第２金属酸化物に接続する第２電極１２８に、第１電極１２４を基準にして正の電圧を印加したとき、抵抗変化層中の酸素イオンが第２金属酸化物側に引き寄せられる。これによって、第２金属酸化物中に形成された微小な局所領域中で酸化反応が発生し、酸素不足度が減少する。その結果、局所領域中のフィラメントが繋がりにくくなり、抵抗値が増大すると考えられる。
【０１１３】
逆に、第２金属酸化物に接続する第２電極１２８に、第１電極１２４を基準にして負の電圧を印加したとき、第２金属酸化物中の酸素イオンが第１金属酸化物側に押しやられる。これによって、第２金属酸化物中に形成された微小な局所領域中で還元反応が発生し、酸素不足度が増加する。その結果、局所領域中のフィラメントが繋がりやすくなり、抵抗値が減少すると考えられる。
【０１１４】
酸素不足度がより小さい第２金属酸化物に接続されている第２電極１２８は、例えば、白金（Ｐｔ）、イリジウム（Ｉｒ）、パラジウム（Ｐｄ）など、第２金属酸化物を構成する金属および第１電極１２４を構成する材料と比べて標準電極電位が高い材料で構成する。また、酸素不足度がより高い第１金属酸化物に接続されている第１電極１２４は、例えば、タングステン（Ｗ）、ニッケル（Ｎｉ）、タンタル（Ｔａ）、チタン（Ｔｉ）、アルミニウム（Ａｌ）、窒化タンタル（ＴａＮ）、窒化チタン（ＴｉＮ）など、第１金属酸化物を構成する金属と比べて標準電極電位が低い材料で構成してもよい。標準電極電位は、その値が高いほど酸化しにくい特性を表す。
【０１１５】
すなわち、第２電極１２８の標準電極電位Ｖ２、第２金属酸化物を構成する金属の標準電極電位Ｖｒ２、第１金属酸化物を構成する金属の標準電極電位Ｖｒ１、および、第１電極１２４の標準電極電位Ｖ１は、Ｖｒ２＜Ｖ２、およびＶ１＜Ｖ２なる関係を満足してもよい。さらには、Ｖ２＞Ｖｒ２、およびＶｒ１≧Ｖ１の関係を満足してもよい。
【０１１６】
上記の構成とすることにより、第２電極１２８と第２金属酸化物の界面近傍の第２金属酸化物中において、選択的に酸化還元反応が発生し、安定した抵抗変化現象が得られる。
【０１１７】
抵抗変化層１２６は、ＴａＯx（但し、０≦ｘ＜２.５）で表される組成を有する第１抵抗変化層と、ＴａＯy（但し、ｘ＜ｙ＜２．５）で表される組成を有する第２抵抗変化層とが積層された積層構造を少なくとも有していてもよい。他の層、例えばタンタル酸化物以外の金属酸化物で構成される第３抵抗変化層等を適宜配置しうることは言うまでもない。
【０１１８】
ここで、ＴａＯxは、０．８≦ｘ＜１．９を満足してもよく、ＴａＯyは、２．１≦ｙ＜２．５を満足してもよい。タンタルを含有する第２抵抗変化層の厚みは、１ｎｍ以上８ｎｍ以下であってもよい。酸素不足度の異なる層を積層することにより、バイポーラ型における抵抗変化の方向が決定できる。例えば、第２抵抗変化層を第２電極１２８側に、第１抵抗変化層を第１電極１２４側に配置する。かかる構成によれば、第２電極１２８側から第１電極１２４側に電流を流す向きの電圧印加で高抵抗化し、逆向きに電流を流す向きの電圧印加で低抵抗化する。当然ながら第２抵抗変化層を第１電極１２４に接し、第１抵抗変化層を第２電極１２８に接するように構成すると、抵抗変化と電圧印加の向きの関係が逆転する。
【０１１９】
［可変状態における抵抗変化素子の特性］
図４は、可変状態にあるバイポーラ型抵抗変化素子の特性の一例を示す図である。図４において、第１電極１２４の材料はＴａＮ、第２電極１２８の材料はＩｒである。抵抗変化層１２６は、ＴａＯx（但し、０＜ｘ＜２．５）で表される組成を有する第１タンタル
含有層と、ＴａＯy（但し、ｘ＜ｙ）で表される組成を有する第２タンタル含有層とが積
層された積層構造を少なくとも有している。第１タンタル含有層が第１電極１２４に接し、第２タンタル含有層が第２電極１２８に接している。ＴａＯxは、０．８≦ｘ≦１．９を満足し、ＴａＯyは、２．１≦ｙ≦２．５を満足する。第２タンタル含有層の厚みは、８ｎｍ以下であり、抵抗変化層１２６全体の厚みは５０ｎｍ以下である。各電極への接触面積は図３の測定に用いた抵抗変化素子と等しい。
【０１２０】
図４の横軸は印加する電気的信号の電圧を示し、縦軸に電気的信号を印加した後の抵抗変化素子の抵抗値（抵抗値は読み出し電圧ＶＲを印加したときの電流から算出）を示している。図中のスタートの位置から、正極性側に電圧レベルを徐々にあげると、印加電圧が＋１．１Ｖを超えたときから徐々に抵抗値が上昇し、印加電圧が＋２．０Ｖでは約１００ｋΩに達している。逆に負極性側に電圧レベルを徐々に下げて、−１．１Ｖを超えると約１０ｋΩ程度に低抵抗化して、スタートの抵抗値に戻っていることがわかる。このとき抵抗変化層１２６は、第２抵抗変化層を第２電極１２８側に、第１抵抗変化層を第１電極１２４側に配置している。第２電極１２８から第１電極１２４に電流が流れるような電気的信号の印加を正極性印加と定義する。正極性印加では、抵抗変化素子１２０はＨＲレベルに変化する。また、逆向きに電流が流れる印加を負極性印加と定義する。負極性印加では、抵抗変化素子１２０はＬＲレベルに変化する。ＬＲからＨＲに変化せしめる電圧レベルを高抵抗化電圧（ＶＨ）とし、ＨＲからＬＲに変化せしめる電圧レベルを低抵抗化電圧（ＶＬ）とすると、図４の場合では、その絶対値が｜ＶＨ｜＝｜ＶＬ｜＝２．０Ｖ程度あれば、共通の電源電圧を用いて十分に低抵抗状態と高抵抗状態を可逆的に推移できることがわかる。
【０１２１】
図５は、IEDM Technical Digest. 13-15 Dec. 2004, p.587に開示されている、可変状
態にあるユニポーラ型抵抗変化素子の特性の一例を示す模式図である。当該論文に示される通り、ＮｉＯ、ＴｉＯ2、ＨｆＯ2、ＺｒＯ2から構成された抵抗変化層を有する抵抗変
化素子がユニポーラ特性を示すこと、及び、それらの遷移金属酸化物から構成された抵抗変化層が、製造直後には絶縁体であって、かつフォーミングストレスを与えるプロセスによって導電パスが形成されて可変状態に遷移することが知られている。
【０１２２】
抵抗変化層の材料と電極の組合せ、および抵抗変化材料にドープする不純物の材料等によっては、正電圧側でも負電圧側でも対称的にユニポーラ型で抵抗変化する素子が得られる。図５は、かかる素子の特性を例示する。
【０１２３】
図５に示す例では、バイアス電圧の絶対値が０．５Ｖを超えると素子がリセット状態、つまりＨＲレベルへと推移し、バイアス電圧の絶対値１．０Ｖを超えると素子がセット状態、つまりＬＲレベルへと推移する。かかる素子では、同じ極性で電圧の異なる電気的信号を印加することで、２個の抵抗状態の間を可逆的に遷移させることが可能である。しかし、図５のような特性のユニポーラ型抵抗変化素子であれば、＋０．５Ｖ以上＋１Ｖ未満の正極性の電気的信号を印加することで高抵抗化させ、−１Ｖ以下（絶対値が１Ｖ以上）の負極性の電気的信号を印加することで低抵抗化させるように制御すれば、バイポーラ型抵抗変化素子として利用することもできる。本第１の実施形態では、バイポーラ型もユニポーラ型も、いずれのタイプでも使用可能である。
【０１２４】
抵抗変化素子は、印加する電気的信号の電圧（絶対値）、幅、および印加回数等の組合せにより、抵抗値が３以上の可変抵抗値範囲の間を可逆的に遷移する多値メモリとして利用されてもよい。例えば、抵抗変化層としてタンタル酸化物を用いた素子は、良好な特性を示し、多値メモリへ応用されうる。
【０１２５】
このような抵抗変化素子（ＲｅＲＡＭ素子）の抵抗変化は、第２電極１２８と第１電極１２４とを電気的に接続する導電性パスが抵抗変化層１２６内に発生することによって発生することを断面解析によって観察した。導電性パスは直径３０〜１０ｎｍ以下であり、最先端の微細な半導体プロセスで作製される配線幅より更に小さいことを見出した。すなわち上記で説明した抵抗変化素子の特性は、リソグラフィーによる加工の限界とされる超微細半導体プロセスで製造されても同様な安定した抵抗変化の特性を維持できる。
【０１２６】
また、抵抗変化素子（ＲｅＲＡＭ素子）の抵抗変化層を形成するプロセスには数百℃を超えるような高温処理を必要としない。このため、加熱プロセスによってＣＭＯＳトランジスタへの特性を劣化させることがない。すなわち、抵抗変化素子は、フラッシュメモリなどのフローティングゲート型トランジスタを用いるメモリ素子に比べて半導体プロセスとの親和性が非常に優れ、製造プロセスの微細化が進んでも抵抗変化の信頼性が低下することがない特徴を有している。そのため、例えば、コントローラ等のロジック回路と抵抗変化素子とが同一チップ上に形成される場合であっても、ロジック回路の特性への影響を抑えつつ抵抗変化素子を形成することができる。また、ロジック回路とプロセスを共通化することにより、製造コストを低減することができる。
【０１２７】
可変状態とは、異なる複数の電気的信号が印加されることによって、抵抗値が複数の可変抵抗値範囲の間を可逆的に遷移できる状態をいう。
【０１２８】
メモリセルアレイ９０が備える複数のメモリセル９１は、可変状態のメモリセルと、初期状態のメモリセルと、を含んでもよい。メモリセルアレイ９０では、各メモリセル９１が初期状態にあるか可変状態にあるかの違いを利用してデータが記録されていてもよい。
【０１２９】
メモリセルアレイ９０では、後述する第１種データ、第２種データおよび第３種データの何れかを利用してデータが各メモリセル９１に記録されうる。メモリセルアレイ９０は、第３種データが記録されたメモリセル９１と、第１種データおよび第２種データの何れか、または両方が記録されたメモリセル９１を含んでいてもよい。
【０１３０】
製造直後のメモリセル９１の抵抗値が、初期抵抗値範囲に入る一方で可変抵抗値範囲に入ることがないように、初期抵抗値範囲および可変抵抗値範囲は設定されうる。可変状態に変化した後のメモリセル９１の抵抗値が、可変抵抗値範囲に入る一方で初期抵抗値範囲には入ることがないように、初期抵抗値範囲および可変抵抗値範囲は設定されうる。抵抗変化素子の不揮発性記憶素子を備えるメモリセルが、かかる特性を備え得ることは周知である。公知の様々な材料を用いて、かかる特性を備えるメモリセル９１を製造することができる。
【０１３１】
初期状態のメモリセル９１は、可変状態に変化させるような電気的ストレスであるフォーミングストレスではない何らかの電気的ストレスを受けた状態を含む。初期状態のメモリセル９１は、製造直後の抵抗値から、フォーミングストレスではない何らかの電気的ストレスを受ける等して抵抗値が、初期抵抗値範囲内で変化した状態を含む。
【０１３２】
制御装置９３は、選択されたメモリセル９１が初期状態にあるか可変状態にあるかを判定することによって記録されたデータを読み出すことができるように構成されていてもよい。
【０１３３】
図３に示した例における素子の構成は、第１電極１２４の材料がＴａＮ（窒化タンタル）、第２電極１２８の材料がＩｒ（イリジウム）、抵抗変化層１２６の材料がタンタル酸化物、抵抗変化層１２６全体の厚さが５０ｎｍ以下で、抵抗変化層１２６は酸素濃度の異なる２層の積層構造を有する。第１電極１２４に接する層が酸素濃度の低い層であって、組成をＴａＯxとすると０＜ｘ＜２．５である。第２電極１２８に接する層が酸素濃度の高い層であって、組成をＴａＯyとするとｙ≧２．１であり、厚さが５．５ｎｍ程度である。第１電極１２４と抵抗変化層１２６との接触面および第２電極１２８と抵抗変化層１２６との接触面の面積が０．２５μｍ2以下である。
【０１３４】
次に、メモリセルの状態の変化を具体的に説明する。以下では「ＨＲ状態」および「ＬＲ状態」という語を用いる。「ＨＲ状態」とは、ＨＲパルス（高抵抗化パルス）を印加されたメモリセルの状態をいう。「ＬＲ状態」とは、ＬＲパルス（低抵抗化パルス）を印加されたメモリセルの状態をいう。
【０１３５】
フォーミングストレスは、電圧が＋３．５Ｖ、パルス幅が５μＳｅｃのパルスを累積的に印加する。セルごとに適切な累積パルスを印加することで、図３の（１）の初期状態にあったメモリセルは、（２）の初回ＨＲ状態に推移する。初回ＨＲ状態に推移した後は、低抵抗化パルス（素子の抵抗値を第１抵抗値範囲から第２抵抗値範囲へと変化させるためのパルス：第２電気的信号）である電圧が−２．４Ｖ、パルス幅が５０ｎＳｅｃのパルスを印加する。これにより、（３）の第１のディジタルデータセット状態に推移する。第１のディジタルデータセット状態にあるセルに更に高抵抗化パルス（素子の抵抗値を第２抵抗値範囲から第１抵抗値範囲へと変化させるためのパルス：第１電気的信号）である電圧が＋１．８Ｖ、パルス幅が５０ｎＳｅｃのパルスを印加することで第１抵抗値範囲へと変化する。これ以降のメモリセルは可変状態のセルとなる。すなわち、メモリセルの抵抗値を本開示のディジタルＩＤデータの生成に用いる場合は、図３の第１のディジタルデータセット状態にて利用する。なお、本開示の例では図３の（３）の状態を第１のディジタルデータとして利用することを例示するが、（１）の初期状態にも複製のできない製造上のばらつきがもたらす抵抗値のばらつきがあるので、後述する方式を応用して利用可能である。
【０１３６】
なお、パルス印加の工程は上述の手順に限定されない。例えば、（３）の第１のディジタルデータセット状態は、メモリ素子が可変状態となった以降に複数回第１電気的信号と第２電気的信号を交互に繰返してＨＲ状態とＬＲ状態を複数回遷移させ、最終的にＬＲ状態にして工程を終了し、最後にセットされた状態を（３）の第１のディジタルデータセット状態としてもよい。
【０１３７】
図６を参照しながら、図３の第１のディジタルデータセット状態の抵抗値ばらつきの特性を説明する。
【０１３８】
図６は、図３における（３）の第１のディジタルデータセット状態の規格化抵抗値情報と、そのメモリセルのばらつきについての標準正規分布の偏差との関係をプロットした図である。
【０１３９】
図６に示すように、メモリセルの正規分布は抵抗値情報に対してほぼ直線に分布している。このことから、分布のばらつきは極めてランダムな分布現象であることが示される。図６で示すように、ばらつき分布の中央値の抵抗値情報（中央抵抗値または２値化基準値ともいう）を検出し、当該中央抵抗値と、第１のディジタルデータセット状態の各メモリセルの抵抗値との大小を比較して、比較結果をディジタルデータの１または０に割り当てる。そして、抵抗値ばらつきのランダム性を用いることで、不揮発性メモリ装置ごとに、ユニークかつランダムな第１のディジタルデータを作成することができる。
【０１４０】
図７を参照しながら、本開示の第１のディジタルデータが複製できない理由について説明する。図７は上述した図３における（３）の第１のディジタルデータセット状態に推移させるときに様々な電圧パルス条件で推移させたときのばらつき分布を示す。トランジスタ耐圧の上限である３．３Ｖかつパルス幅も通常の１０万倍の１０ｍｓの強力なエネルギーをもつ条件から、２Ｖといった通常よりも弱いパルス条件まで含んでばらつきを見たものである。一般に、パルスエネルギーが弱い印加条件と、強い印加条件とで、書き込まれた抵抗値の分布間に明確なウインドウがあるとき、２つの印加条件を用いて任意のデータを書き込むことができる。しかしながら、図７からわかるように、分布の偏りおよび最大値/最小値の若干の差はあるものの、総じて全ての条件の分布の中央値が他の条件の分布と重なっている。つまり、中央値を基準に人為的に書き込み条件を変えて書き分け、任意のデータを書き込むといった複製が、原理的にできないばらつき現象であることが分かる。
【０１４１】
図７のように、同じ抵抗値範囲にあるメモリセル群の中で抵抗値が低いものと高いものとに分布する理由としては、抵抗変化素子のプロセスばらつきおよび形状ばらつきの他に、例えば、フォーミングが完了するメモリセルがランダムに発生することが要因として考えられる。
【０１４２】
上述のとおり、金属酸化物中の欠陥サイトはメモリセル毎にランダムに配置され、フォーミングによってこれらの欠陥サイト間を繋いでフィラメントが形成される。そのため、仮に初期状態にある複数のメモリセルに一定の電気的ストレスを印加した場合であっても、フォーミングが完了するメモリセルは統計的にばらついて発生することを、本願発明者らは事前実験によって確認している。そのため、仮に複数のメモリセルに対して一様なストレスを印加する場合であっても、確率的にフィラメントが形成され、上述した図３における（２）の初回ＨＲ状態に変化する時間が素子ごとに異なる。このため、抵抗変化素子内の金属酸化物中の欠陥サイトの数および密度が素子ごとにばらつく。欠陥サイトの密度および個数のばらつきは、素子ごとに固有であり、そこからもたらされる抵抗値の大小も素子ごとに固有となる。
【０１４３】
図８は、フィラメントの発生数が抵抗変化素子ごとに異なることを示す。初期化パルス印加（Ｆｏｒｍｉｎｇ）により、酸素欠陥サイトの発生箇所と密度は素子ごとにランダムである。また、欠陥が相対的に多く発生した素子の抵抗は低くなり、欠陥が相対的に少ない素子の抵抗は高くなっており、ばらつきが生じている。そしてこのようなばらつきは制御不可である。
【０１４４】
図８のように、酸素欠陥サイトの形成が多く、フィラメントパスが形成されやすい場合は、その抵抗変化素子の抵抗値はより低くなる。一方、酸素欠陥サイトの密度が一部でも低いところがある場合はフィラメントパスが形成されにくいため、その抵抗変化素子の抵抗値はより高くなる。各素子の抵抗値はばらついており、このようなばらつきを人為的に制御することはできない。なお、酸素欠陥サイト等が繋がることによってフィラメントパスが形成される材料であれば、同様のメカニズムによって説明できると推察される。
【０１４５】
なお、図２のメモリセル構造において、電圧は第１電極１２４を基準として第２電極１２８に正の電圧を印加する場合を正極性とする。
【０１４６】
その他の例として、第１電極１２４及び第２電極１２８の材料が白金（Ｐｔ）、抵抗変化層１２６の材料がハフニウム酸化物、抵抗変化層１２６の厚さが３０ｎｍ、素子領域の直径を３μｍの円形としてもよい。なお、抵抗変化層１２６がＨｆＯ1.6の場合、初期抵
抗値は数ＭΩ程度であり、高抵抗値範囲が１０００〜３０００Ω程度、低抵抗値範囲が１００〜３００Ω程度となる。この場合、フォーミングストレスは、例えば、電圧が２〜３Ｖ、パルス幅が１００ｎＳｅｃのパルスを累積的に印加する。低抵抗化パルスは、電圧が＋１．０Ｖ、パルス幅が１００ｎＳｅｃであり、高抵抗化パルスは、電圧が−１．３Ｖ、パルス幅が１００ｎＳｅｃである。
【０１４７】
本開示の不揮発性メモリ装置に記録されたデータは、第１種データと第２種データとのいずれか、または両方を含んでよい。第１種データは、各メモリセル９１の抵抗値が初期抵抗値範囲にあるか否かの違いを利用して記録されている。第２種データは、各メモリセル９１の抵抗値が初期抵抗値範囲にあるか否かの違いを利用せずに、各メモリセル９１の抵抗値が少なくとも一つの可変抵抗値範囲にあるか否かの違いを利用して記録されていてもよい。そして、本開示の不揮発性メモリ装置は、上述の何れか同一の抵抗値範囲にあるメモリセルの抵抗値ばらつきを用いて装置固有のディジタルＩＤデータの元と成る第１ディジタルデータを生成するときに用いられる第３種データを含む。
【０１４８】
この場合において、メモリセルアレイ９０が、第１書き込みアドレス領域と、第２書き込みアドレス領域とを備え、第１書き込みアドレス領域に第１種または第２種のデータのいずれか、または両方が記録されており、第２書き込みアドレス領域に第１のディジタルデータの元となる抵抗値状態のメモリセルが保管されていてもよい。第１書き込みアドレス領域と、第２書き込みアドレス領域とは、必ずしも物理的な領域として分離していなくてもよい。例えば、各メモリセル９１がアドレスごとに所定の規則によって第１書き込みアドレス領域と第２書き込みアドレス領域とに振り分けられていてもよく、これによりディジタルＩＤデータの物理的な場所が特定されにくくなり、耐タンパ性が向上する。
【０１４９】
メモリセルアレイ９０を構成する複数のメモリセルにフォーミングストレスを印加する工程は選択的に自由に行えるため、第１書き込みアドレス領域と第２書き込みアドレス領域との容量配分および配置を自由に変更し選択することができる。
【０１５０】
図９は、第１の実施形態において同一の可変抵抗値範囲にあるメモリセルから連続して抵抗値を読み出した例を示す。抵抗値が少なくとも１つの可変抵抗値範囲にあるとは、メモリセルが同一の抵抗状態にあることをいう。すなわち二値型のメモリセルである場合には、例えば、メモリセルが低抵抗状態にあって高抵抗状態にないことをいう。この場合は図３の（３）の第１のディジタルデータセット状態と等しい。
【０１５１】
高抵抗化パルスと低抵抗化パルスを交互に印加すれば、素子が高抵抗状態と低抵抗状態とを可逆的に遷移することを確認した。その後、低抵抗状態にある素子に高抵抗化パルスを１回だけ印加して高抵抗状態とし、その後は低抵抗化パルスも高抵抗化パルスも印加することなく、読み出し動作を連続して１０００回実行し、それぞれの抵抗値情報の読み出しを行った。読み出しの時間間隔は５μＳｅｃとした。
【０１５２】
図９では、横軸が読み出し回数、縦軸が規格化された抵抗値情報であり、同じ構成を有する３つの抵抗変化素子の抵抗値の揺らぎが示されている。ここでいう抵抗値情報とは、後述する放電方式の読み出し回路で得られるもので、値が大きければ高い抵抗値を示し、小さければ低い抵抗値を示す。図９によれば、同一の抵抗状態にある素子を繰り返して読み出すと、抵抗値がランダムに増減する様子が確認できる。このような抵抗値がランダムに増減する現象は低抵抗状態でも同様に発生しうる。
【０１５３】
ここで述べる抵抗値変動または抵抗値揺らぎとは、抵抗状態を変化させる電気的パルスが印加されない状態、すなわち同一の抵抗状態にある同一メモリセルから読み出される抵抗値が時間の経過と共に変動する現象を指す。
【０１５４】
図１０Ａ、図１０Ｂは、パーコレーションモデル（ｐｅｒｃｏｌａｔｉｏｎ  ｍｏｄｅｌ）を用いて、任意の抵抗状態に書込まれたときの抵抗変化層（例えば局所領域）中のフィラメントの形成をシミュレートした結果の一例を示す図である。
【０１５５】
パーコレーションモデルとは、抵抗変化層中にランダムに分布した欠陥サイトに対して、欠陥サイト等の密度がある閾値を超えると欠陥サイト等の繋がりが形成される確率が増加するという理論に基づくモデルである。ここで「欠陥」とは、例えば、金属酸化物中で酸素が欠損していることを意味し、「欠陥サイトの密度」とは酸素不足度とも対応している。すなわち、酸素不足度が大きくなると、欠陥サイトの密度も大きくなる。
【０１５６】
図１０Ａ、図１０Ｂに示されるシミュレーションでは、抵抗変化層の酸素イオンサイトを、格子状に仕切られた領域（サイト）として近似的に仮定し、確率的に形成される欠陥サイトによって形成されるフィラメントをシミュレーションで求めている。図１０Ａおよび図１０Ｂにおいて、“０”が含まれているサイトは抵抗変化層中に形成される欠陥サイトを表している。他方、空白となっているサイトは酸素イオンが占有しているサイトを表しており、導電パスが形成されていない高抵抗な領域を意味している。また、実線の矢印で示される欠陥サイトのクラスター（上下、左右及び斜め方向に１個のサイトの範囲内で互いに接続された欠陥サイトの集合体）は、図中の上下方向に電圧が印加された場合に抵抗変化層内に形成されるフィラメント、すなわち電流が流れるパスを示している。
【０１５７】
図１０Ａに示されるように、抵抗変化層の下面と上面との間に電流を流すフィラメントは、ランダムに分布する欠陥サイトの内の上端から下端までを接続する欠陥サイトのクラスターで構成される。このパーコレーションモデルに基づくと、フィラメントの本数及び形状は確率的に形成されることになる。フィラメントの本数及び形状の分布は、抵抗変化層の抵抗値のばらつきとなる。
【０１５８】
また、フィラメントは、上述した高抵抗化パルスにより酸素イオンがフィラメントに導入され欠陥サイトと結合し、幾つかのフィラメントパスを切断することにより高抵抗状態へと推移する。逆に、低抵抗化パルスを印加すると、再び酸素イオンの離脱が起こり、欠陥サイトが生成されフィラメントパスが再現され、低抵抗状態へと推移する。各抵抗状態の間でフィラメントパスの本数に充分な差があれば、抵抗値の差分が大きくなり、抵抗値の判定マージンが増加する。
【０１５９】
次に、図９のように同一の抵抗状態にある素子において抵抗値が揺らぐ現象のメカニズムについて説明する。
【０１６０】
各抵抗状態の抵抗値を決定するフィラメントパスの形状、本数および太さは、時間的に安定ではない。つまり、酸素サイトから酸素イオンが抜け出ることによって欠陥サイトが生成されたり、欠陥サイトへ酸素イオンが供給されることによって欠陥サイトが消滅したりすることにより、フィラメントパスの形状、本数および太さが微妙に増減する。これが時間的な抵抗値の揺らぎとして観測される。図１０Ｂは、その一例を示す説明図で、たった一つの欠陥サイトが隣接サイトと入れ替わっただけで、図１０Ａにあったフィラメントパスのうち、一つのパスが断絶されることになる。この場合、抵抗値が僅かに増加することになる。図による説明は省略するが、逆に欠陥サイトが隣接サイトと入れ替わることにより新たなフィラメントパスが発生することもある。この場合は、僅かに抵抗値が減少する。図９のような抵抗値の揺らぎ現象は、かかるメカニズムにより発生すると考えられる。実際には、図のようなフィラメントパスの数は多数あり、その一部が増減するもののフィラメントパスの総数は大きくは変化しないと考えられる。すなわち、揺らぎ現象においては、メモリセルの抵抗状態が別の抵抗状態に変化してしまうほどの大きなフィラメントパスの変化は生じないと考えられる。
【０１６１】
上記メカニズムにより抵抗値が揺らぐ現象は、酸化物中の酸素イオンの移動により抵抗値が変動するあらゆる抵抗変化素子に当てはまると考えられる。具体的には例えば、かかる性質を有するメモリセルとして、第１電極と金属酸化物と第２電極とをこの順で積層した素子を用いることができる。あるいは例えば、第１電極と遷移金属酸化物と第２電極とをこの順で積層した素子を用いることができる。
【０１６２】
このように抵抗変化型メモリ装置に用いられるメモリセルは、書き込まれた抵抗値に対して若干であるが抵抗値の揺らぎ現象が存在する。図６に示す中央抵抗値を用いて抵抗値の大小関係からディジタルデータの１または０に判別して得られる第１のディジタルデータには、抵抗値揺らぎが原因の誤りデータが発生する。中央抵抗値付近は、抵抗値のばらつき分布の中央であるため、その抵抗値付近にあるメモリセルの分布数が最も多いことになる。これら中央付近のメモリセルが前述のとおりランダムに抵抗値が揺らぐため多くのビットがランダムに誤ることになる。
【０１６３】
本発明者らは、書き込まれた抵抗値が、放置時間および温度環境、更には装置の電源環境などにより、中央抵抗値の最適値が変動し、誤り率が安定せず、ディジタルＩＤデータを安定的に生成することができないという課題を見出した。この課題について図１１を用いて説明する。
【０１６４】
図１１は図３に示すようなディジタルＩＤセット状態に書き込まれた所定のビット数のメモリセル群の抵抗値を放置時間ごとに読み出したときのばらつき範囲と抵抗中央値を示す。
【０１６５】
測定に使用したビット数は１Ｋｂｉｔで、放置時間に対する劣化を加速するために放置温度は１７５℃とした。図１１からわかるように、放置時間とともに、ばらつき範囲が広がっている。さらに、破線で囲んだように抵抗中央値が徐々に上昇していることが分かる。つまり、放置時間が増加するに従って、抵抗値の分布が高抵抗側にシフトしていると言える。
【０１６６】
図１２は、書き込まれたディジタルＩＤデータを図１１に示したような初期の抵抗中央値（１４３）で抽出したときにおける、エラーレートと放置時間との関係を示す。エラーレートは抽出したデータと初回ＩＤデータとが相違する割合を示す。図１２から分かるように放置時間とともに最適な抵抗中央値がずれるためエラーレートが急速に増大していることが分かる。この現象は、放置時間だけでなく周辺温度の変化、および装置電源電圧の変化によっても大きく変動する。
【０１６７】
そこで本発明者らは図１３および図１４に示すフローを考案した。
【０１６８】
図１３は、ディジタルＩＤデータを生成し、不揮発性メモリ装置に書き込む処理フローの一具体例を示す。このフローは、たとえば不揮発性メモリ装置が工場から出荷される前の検査工程時に実行される。
【０１６９】
一方、図１４は、ディジタルＩＤデータを再生する処理フローの一具体例を示す。このフローは、たとえば工場から出荷された後の不揮発性メモリ装置が市場において使用される都度実行される。
【０１７０】
前述したように、生成されるディジタルＩＤデータには誤りデータが含まれるため真の正しいＩＤデータを常に得るためには誤り訂正を行う。従って、図１３および図１４のように、装置の出荷前の検査工程時と、市場で装置が使用されるフィールド使用時とでは処理のフローが異なる。
【０１７１】
出荷前検査時は、不揮発性メモリ装置の各メモリセルは可変状態ではなく絶縁抵抗に近い抵抗値を示す初期状態にある。図１３で示したように、ステップＳ１において前述したようなフォーミングストレスを印加するフォーミング処理が実行され、図３の（２）の初回ＨＲ状態に推移せしめる。次にステップＳ２において、低抵抗化パルスが印加され、図３の（３）の第１のディジタルデータセット状態にセットされる。そしてステップＳ３において、第１のディジタルデータセット状態にある複数のメモリセルの抵抗値情報を読み出し、ステップＳ４にて、読み出した抵抗値情報から抵抗値ばらつきの分布の中央値を演算して保持する。ステップＳ５では再度、第１のディジタルデータセット状態にある複数のメモリセルから抵抗値情報を読み出し、上述の保持された中央値との大小関係からディジタルＩＤデータを生成する。
【０１７２】
図１５は、ディジタルＩＤデータの例を示す。上述したように、第１のディジタルデータセット状態にあるメモリセルの抵抗値情報と、閾値である、抵抗値ばらつきの分布の中央値を比較して、抵抗値情報がより小さい場合にはそのメモリセルにデータ「１」を割り当て、抵抗値情報がより大きい場合にはそのメモリセルにデータ「０」を割り当てる。これにより、人為的に制御できないメモリセルの抵抗値を利用した、不揮発性メモリ装置を一意に識別可能なディジタルＩＤデータを得ることができる。
【０１７３】
再び図１３に戻り、ステップＳ６では、ディジタルＩＤデータをもとにデータ誤りを訂正するために用いるパリティーデータを演算し、ステップＳ７にてパリティーデータを別の異なるメモリセルに記録する。
【０１７４】
次に、図１４を参照しながら説明する。フィールドにおいて装置が使用される際、ステップＳ８において、検査時のステップＳ３およびステップＳ４と同様に複数の第１のディジタルデータセット状態にある複数のメモリセルの抵抗値情報を読み出し、ステップＳ９にて、読み出した抵抗値情報から抵抗値ばらつきの分布の抵抗中央値を演算して保持する。さらにステップＳ１０では再度、第１のディジタルデータセット状態にあるメモリセルから抵抗値情報を読み出し、上述の保持された抵抗中央値との関係からディジタルＩＤデータを生成する。ステップＳ１１において、検査時に予め保存されたパリティーデータを読み出し、ステップＳ１２でパリティーデータを用いてステップＳ１０で得たディジタルＩＤデータの誤りデータを訂正する。その結果、ステップＳ１３にて常に同じ真のディジタルＩＤデータを得る。
【０１７５】
図１６は、誤り訂正前のデータ誤り率の推移を示す。この推移は、図１４のフローによりフィールド使用時に最適な抵抗中央値を検出し、検出した抵抗中央値でディジタルＩＤデータを生成したときの誤り訂正前のデータ誤り率の推移である。前述した誤り訂正前のディジタルＩＤデータを生のディジタルＩＤデータ（Ｒａｗ  Ｄｉｇｉｔａｌ  ＩＤ  Ｄａｔａ）と呼ぶ。図１６は横軸にディジタルＩＤデータの読み出し回数を示し、縦軸にそのときのディジタルＩＤデータの誤り率（エラーレート）を示した。図からわかるようにエラーレート上昇が抑制され、２％〜３％の誤り率で良好な結果が得られている。
【０１７６】
更に、本開示の特徴的な点として、累積エラーレートがあげられる。図１７は読み出し回数と累積エラーレートとの関係を示す。累積エラーレートとは、複数回、生のディジタルＩＤデータを読み出し新たな異なるビットに誤りが発生した場合は順次加算していき、累計でエラーしたビット数から誤り率を求めたものである。図１６で読み出しごとのエラーレートは２〜３％で低いものの、異なるビットが入替わるため累積エラーレートは読み出し回数に従って上昇する。図では２５００回のディジタルＩＤデータの生成では１４％ものビットが誤りを起こしたことがわかる。つまり、読み出すたびにエラーとなるビットが異なり、エラー訂正前のＩＤデータは刻一刻と変化していることが理解できる。この特徴により、前述したような機械学習攻撃を受けた場合であっても学習結果が定まらず真のディジタルＩＤデータが解析できないため、ハッキングに対して高い耐性があるといえる。
【０１７７】
次に、本開示の実施形態に係る方式を実現するための具体的な構成例について説明する。以下の例では、不揮発性メモリセルの抵抗値情報と２値化基準値との関係に応じて得られる第１のディジタルデータと、不揮発性メモリセルの抵抗値とは関連性の無い第２のディジタルデータとを生成し、第１のディジタルデータと第２のディジタルデータに基づいて、第３のディジタルデータを生成してディジタルＩＤデータとして利用することで、攻撃に対する高い耐性を実現する。
【０１７８】
図１８は、実施形態に係る不揮発性メモリ装置の具体的な構成例を示すブロック図である。なお、図１８は一例であり、実施形態に係る不揮発性メモリ装置の具体的構成が図１８に示される構成に限定されるものではない。
【０１７９】
図１８に示すように、実施形態に係る不揮発性メモリ装置１０は、半導体基板上に、メモリ本体部２２を備えている。不揮発性メモリ装置１０は、さらに中央値検出回路２５と、誤り訂正およびヘルパーデータ生成回路４００と、アドレス制御回路１６と、データ制御回路６と、ＩＤデータ制御回路４０２と、不揮発性メモリ装置１０の全体を制御する制御回路１５とを備えている。
【０１８０】
メモリ本体部２２は、読み出し回路１１と、書き込み回路１４と、カラムデコーダ回路１７と、ロウデコーダ回路１８と、メモリセルアレイ２０とを備えている。
【０１８１】
ロウデコーダ回路１８は、メモリセルアレイ２０に接続されている複数の（ｍ＋１）本のワード線ＷＬの中から１つのワード線ＷＬを選択する。
【０１８２】
カラムデコーダ回路１７は、複数のｎ＋１本のビット線ＢＬと複数のソース線ＳＬの中から並列読み出し数であるＳ本のビット線ＢＬと、それに対応するＳ本のソース線ＳＬとを選択し、書き込み回路および読み出し回路へ接続する。
【０１８３】
これらは並列的に読み出しおよび／または書き込みが行われる行および／または列の数に応じて動作可能であるが、本明細書においては、並列読み出し、または書き込みはＳビットごととする。従って、後述する読み出し回路１１と書き込み回路１４は、並列数であるＳ個のチャンネルがある。
【０１８４】
書き込み回路１４は、データ制御回路６に保持されたディジタルデータに従い、アドレス制御回路１６と制御回路１５によって、所定のアドレスにある並列数Ｓビットごとに選択されたメモリセル２１へ各動作における所定の電圧を印加してデータを書き込む。
【０１８５】
読み出し回路１１は、アドレス制御回路１６と制御回路１５によって並列数Ｓビットごとに選択されたメモリセル２１を介してビット線に流れる電流の変化を、後述する読み出し方式により検知し、選択メモリセルの抵抗値情報をディジタルカウント値として取得する。
【０１８６】
不揮発性メモリ装置１０の読み出し回路１１は、ＣＯＵＮＴ＿ＯＵＴ出力と出力端子ＡおよびＢと、入力端子Ａとを有する。読み出し回路１１は、入力端子Ａを介して閾値を受け取る。この閾値は、読み出し回路１１が、カラムデコーダ回路１７に選択されたメモリセルの抵抗値情報から得られた信号を０または１のデータとして二値化するために利用される。前記閾値には、所定の固定値、または後述する中央値検定回路から出力される閾値（入力Ａ）が設定される。なお、所定の固定値となる閾値は、ユーザーデータ用のメモリセルに記憶されたデータを２値化するときに用いられる。前記所定の固定値となる閾値は、制御回路１５から設定されるが、新規要件ではないためここではその詳細な説明は省略する。
【０１８７】
ＣＯＵＮＴ＿ＯＵＴ出力は読み出したメモリセルの抵抗値情報を表し、前記抵抗値情報の揺らぎは、第１のディジタルデータへのランダムなデータ誤りとして現れるとともに、後述する乱数生成に用いられる。
【０１８８】
また、読み出し回路１１は、出力端子Ｂを介して、カラムデコーダ回路１７によって選択されたメモリセルの抵抗値情報から得られた信号を中央値検出回路２５に出力する。この信号は、第１のディジタルデータを生成するために必要な中央値を算出するために中央値検出回路２５によって利用される。
【０１８９】
さらに、読み出し回路１１は、出力端子Ａを介して、ユーザーデータである０または１のデータ、および、第１のディジタルデータである０または１のデータを出力する。ユーザーデータを生成する際に利用される閾値と、第１のディジタルデータを生成する際に利用される閾値とは前述のとおり異なっていてもよい。
【０１９０】
（メモリ本体部の用途別領域説明）
図に示すように、メモリ本体部２２は、記憶領域として、ユーザーデータ領域７と、第１のディジタルデータ領域８と、第２のディジタルデータ領域４０４と、乱数生成セル領域４０３を有する。
【０１９１】
メモリセルアレイ２０は、ワード線単位で、ＷＬ０、ＷＬ１、・・・ＷＬｍ-kをユーザーデータ領域７と、ＷＬｍ-k＋１・・・ＷＬｍ-1を第１のディジタルデータ領域８と、ＷＬｍを乱数生成セル領域４０３と、ＷＬ０−１を第２ディジタルデータ領域４０４として切り分けられる。また、メモリセルアレイ２０は、互いに平行に延びるように形成された複数のワード線ＷＬ０−１、ＷＬ０、ＷＬ１、・・・ＷＬｍと交差し、かつ互いに平行に延びるようにして形成された複数のビット線ＢＬ０、ＢＬ１、・・・ＢＬｎと、互いに平行で、かつビット線と平行に延びるようにして形成されたソース線ＳＬ０、ＳＬ１、ＳＬ２、・・・ＳＬｎとを備える。複数のワード線と複数のビット線の立体交差点には、それぞれメモリセル２１が配置されている。但し、第２のディジタルデータ領域４０４のセルだけは抵抗変化素子２３が無く、トランジスタ２４のみになっている。
【０１９２】
それぞれのメモリセル２１は抵抗変化素子２３とトランジスタ２４とを備える。ワード線ＷＬ０−１、ＷＬ０、ＷＬ１、・・・ＷＬｍ−ｋ、ＷＬｍ−ｋ＋１・・・ＷＬｍはそれぞれのトランジスタ２４のゲート端子に接続され、ビット線ＢＬ０、ＢＬ１、・・・ＢＬｎは、第２ディジタルデータ領域４０４以外で、それぞれのメモリセル２１が備える抵抗変化素子２３の第２電極に接続され、抵抗変化素子の第１電極はトランジスタ２４の第２主端子に各々接続され、ソース線ＳＬ０、ＳＬ１、ＳＬ２、・・・ＳＬｎは、トランジスタ２４の第１主端子にそれぞれ接続されている。第２ディジタルデータ領域４０４では、ビット線ＢＬ０、ＢＬ１、・・・ＢＬｎは、トランジスタ２４の第２主端子に各々接続される。
【０１９３】
（各領域について）
抵抗変化素子２３はメモリセル２１において不揮発性メモリ素子として動作する。不揮発性メモリ装置１０は、各メモリセル２１が１個のトランジスタ２４と１個の抵抗変化素子２３とから構成される、いわゆる１Ｔ１Ｒ型の不揮発性メモリ装置である。メモリセルの選択素子は前述のトランジスタに限定されない。例えばダイオードなどの２端子素子を用いても良い。
【０１９４】
ユーザーデータ領域７にはユーザの任意のデータ（ユーザーデータ）が記憶される。ユーザーデータの書き込みおよび読み出しはユーザーデータ領域７のアドレスが選択される。第１のディジタルデータ領域８には、ＰＵＦデータとなる装置固有のディジタルＩＤデータの元となる第１のディジタルデータを生成するために、フォーミングストレスが印加される。その結果、第１のディジタルデータ領域８のメモリセル群は、同一の抵抗値状態にセットされ、所定のランダムなバラツキ分布をもつ。乱数生成セル領域４０３は、第１のディジタルデータと同様に、同一の抵抗値状態にセットされたメモリセル群であり、乱数生成のために抵抗値情報の読み出しが行われる。なお、乱数生成セル領域４０３と第１のディジタルデータ領域８は共用することが可能であるが、本実施形態では説明を容易にするために別領域とした。そして、乱数生成セル領域４０３は所定の抵抗値状態にセットされた後は、読み出し専用のセルとなり、装置不具合などによる想定外の外乱による不足の事態の発生により抵抗値状態が所定の範囲内から逸脱した場合を除いて書き換えられることはない。また、第１のディジタルデータ領域８も、同じ装置固有のＩＤデータが必要な期間は書き換えられず、読み出し専用となる。一方で、後述するように、ＩＤデータを意図的に変更したり、これまで使用していたＩＤデータを安全に破棄したい場合には、第１のディジタルデータ領域８は積極的に書き換えられる。第２ディジタルデータ領域４０４は、後述する第２ディジタルデータの生成に用いるセル群である。このメモリセルは抵抗変化素子２３が接続されておらず、選択トランジスタ２４のみのセルである。これは読み出し回路１１から見たときにほぼ同一の固定抵抗のセルになる。最先端の微細ＣＭＯＳプロセスにおけるトランジスタはオン抵抗のバラツキが大きい、その抵抗成分のバラツキを読み出し回路１１にて観測し、各装置固有の少なくともＳビットのディジタルデータを得るのに用いられる。本実施形態では、第２のディジタルデータがトランジスタのオン抵抗のバラツキを用いることを例示するが、これに限定されない。第２のディジタルデータは、少なくとも第１のディジタルデータ領域８に用いられるメモリセル群に用いられている抵抗変化素子の抵抗値と関係を持たないものから生成されればよい。例えば、予め第１種データまたは第２種データでユーザーデータに記録されたデータでもよい。特に第１種データで保存されたものは、通常の読み出しでは、正しいデータが読み出されず、データへの攻撃に対して優位である。
【０１９５】
なお、ユーザーデータ領域７と第１のディジタルデータ領域（ＰＵＦデータ領域）８と、第２のディジタルデータ領域４０４と、乱数生成セル領域４０３とは図のようにワード線単位に分けられる必要はなく、アレイ上の任意の領域で区分けしても良い。物理的な領域区分の規則性を複雑にするほど解析およびハッキングなどの攻撃への耐性を高めることができる。
【０１９６】
制御回路１５はコントロール信号に基づき、カラムデコーダ回路１７に対し、ビット線あるいはソース線のいずれか一方を選択し、書き込み時は書き込み回路１４に、読み出し時は読み出し回路１１に接続させる。その上で、書き込み回路１４あるいは読み出し回路１１を動作させる。
【０１９７】
抵抗変化素子２３については、実施形態において上述した抵抗変化素子１２０と同様の構成とすることができるので、詳細な説明を省略する。
【０１９８】
図１８に示す例では、メモリセルアレイ２０の選択トランジスタとしてＮＭＯＳトランジスタが用いられているが、これに限定されず、ＰＭＯＳトランジスタを用いても良い。この場合、トランジスタへの制御方法が変わるが、設計事項であるので説明は省略する。
【０１９９】
（読み出し回路１１の具体例）
図１９は本実施形態の不揮発性メモリ装置１０が備える読み出し回路１１の構成例を示す回路図である。
【０２００】
読み出し回路１１は放電方式のセンスアンプ回路３０を有している。当該センスアンプ回路は、コンパレータ３１と、抵抗値カウンタ３２と、プリチャージ用のＰＭＯＳトランジスタ３３と、ロード電流用のＰＭＯＳトランジスタ３４とを備えている。
【０２０１】
抵抗値カウンタ３２は、コンパレータ３１の出力先に接続されている。抵抗値カウンタ３２は、リセット信号ＲＳＴがロウレベルとなることで、抵抗値カウンタ内のカウント値が初期化された後、クロック信号ＣＬＫによるカウントを開始する。クロック信号ＣＬＫは、制御回路１５から出力される信号であって、抵抗変化素子２３の抵抗値によって変化する放電時間をカウント値に変換する際の基準となる信号である。クロック信号ＣＬＫは、例えば一定の周波数を維持する矩形波である。このクロック信号ＣＬＫが立ち上がる毎に、抵抗値カウンタのカウント値が１つ加算され、ノードＳＥＮの電位がＶＲＥＦを下回ると抵抗値カウンタのカウントアップが停止し、そのときのカウント値がＣＯＵＮＴ＿ＯＵＴに維持される。このとき、入力Ａからは閾値が入力される。比較器１３５はＣＯＵＮＴ＿ＯＵＴと入力Ａの閾値とを比較し、閾値以上であれば０を、閾値未満ではれば１を出力Ａから出力する。また、閾値以上であれば１を、閾値未満であれば−１を出力Ｂから出力する。プリチャージＰＭＯＳトランジスタ３３は、ゲート端子にプリチャージ制御信号ＰＲＥが入力され、ソース端子にＶＤＤが入力され、ドレイン端子にノードＳＥＮが接続されている。
【０２０２】
ロードＰＭＯＳトランジスタ３４は、ゲート端子にロード制御信号ＬＯＡＤが入力され、ソース端子にＶＤＤが入力され、ドレイン端子にノードＳＥＮが接続されている。
【０２０３】
読み出し回路１１はクランプ電圧印加用のＮＭＯＳトランジスタ３５で構成されたクランプ回路をさらに有している。クランプＮＭＯＳトランジスタ３５は、ゲートにクランプ制御信号ＣＬＭＰが入力され、ソース端子もしくはドレイン端子の何れか一方にノードＳＥＮが接続され、他端にはカラムデコーダ回路を介して選択されたメモリセルが接続されている。なお、図１９ではカラムデコーダ回路は省略している。
【０２０４】
ここで、読み出し回路１１がカウント値（抵抗カウント値の一例）を出力する動作について、読み出し回路の構成図（図１９）と図２０Ａおよび図２０Ｂのタイミングチャートを用いて、具体的に説明する。
【０２０５】
図２０Ａは、選択されたメモリセルを放電方式にて読み出す場合のタイミングチャートである。
【０２０６】
Ｔ１のプリチャージ期間では、制御信号ＰＲＥはロウレベルとなり、プリチャージ用ＰＭＯＳトランジスタ３３はオン状態になる一方で、制御信号ＬＯＡＤはハイレベルとなり、ロード用ＰＭＯＳトランジスタ３４はオフ状態となる。選択ワード線ＷＬｓの電位はロウレベルでトランジスタ２４はオフ状態となっている。
【０２０７】
クランプ回路のクランプＮＭＯＳトランジスタ３５のゲート端子にＶＣＬＭＰの電圧が印加されることで、選択ビット線ＢＬｓの電位はＶＣＬＭＰからＶＴ（クランプＮＭＯＳトランジスタ３５の閾値）を引いた電位までプリチャージされる。選択ソース線ＳＬｓはＧＮＤに固定される。ノードＳＥＮはＶＤＤまでプリチャージされる。また、コンパレータの出力に接続されている抵抗値カウンタの制御信号ＲＳＴはハイレベルとなっているため、抵抗値カウンタ出力端子ＣＯＵＮＴ＿ＯＵＴは０の固定値が出力される。
【０２０８】
Ｔ２のセンス期間では、制御信号ＰＲＥをハイレベルとすることで、プリチャージＰＭＯＳトランジスタ３３がオフ状態となり、制御信号ＬＯＡＤがロウレベルになることで、ロードＰＭＯＳトランジスタ３４はオン状態になる。また、選択ワード線ＷＬｓの電位をハイレベルにすることで、ＮＭＯＳトランジスタ２４はオン状態となる。
【０２０９】
次に選択ビット線ＢＬｓから選択されたメモリセル２１ｓを介して選択ソース線ＳＬｓへと電圧が印加され、放電が開始される。放電開始と同時に抵抗値カウンタ３２の制御信号ＲＳＴがロウレベルとなり、カウントが始まる。そして、１カウント毎に、コンパレータ３１によって、ノードＳＥＮの電位と参照電圧ＶＲＥＦの電圧が比較され、ノードＳＥＮが参照電圧ＶＲＥＦを下回るまで、カウント値が加算され続ける。読み出し時の抵抗変化素子２３の抵抗値が高いほど放電時間は長くなり、カウント値は大きくなる。
【０２１０】
また、キャパシタ３６の容量を調整することで、放電時間を調整することも可能である。キャパシタ３６の容量が大きければ、ノードＳＥＮの放電時間も長くなるため、カウント値は大きくなり、容量が小さければ、ノードＳＥＮの放電時間は短くなり、カウント値は小さくなる。キャパシタ３６は、例えば、放電時間が速い低抵抗レベルの検出精度を向上させたいとき、効果的である。カウントの間隔はクロック信号ＣＬＫで決定されるため、その動作周波数が抵抗カウント値の分解能となる。しかし、低い抵抗値の場合、放電時間がカウント値の分解能を上回る可能性があるため、区別できなくなる場合がある。そこで、ノードＳＥＮに容量負荷を上乗せし、遅延させることで、意図的に放電特性を調整して、検出時の分解能を高めることが可能となる。しかしながら、原理上、放電方式の場合は高抵抗になればなるほど放電時間が長くなり、それに伴って放電の傾斜が緩やかに変化するため、カウンタ値に対する抵抗値情報の分解能が向上する。つまり放電方式の場合は、高抵抗側が高精度な抵抗値情報を得ることのできる方式である。
【０２１１】
Ｔ３のラッチ期間では、放電が開始された後、ノードＳＥＮが参照電圧ＶＲＥＦを下回ったときの抵抗値カウンタ３２のカウント値がラッチされる。ラッチされたカウント値は、ＣＯＵＮＴ＿ＯＵＴに出力され、抵抗変化素子２３の抵抗値情報を表すカウント値として扱われる。
【０２１２】
Ｔ４のリセット期間においては、データ出力が完了すると、選択ワード線ＷＬｓの電位がロウレベルとされ、選択されたメモリセル２１ｓのトランジスタ２４がオフとなり、読み出し動作が終了する。
【０２１３】
図２０Ｂは、選択されたメモリセルを充電方式にて読み出す場合のタイミングチャートである。
【０２１４】
Ｔ１はディスチャージ期間であり、制御信号ＰＲＥ、ＬＯＡＤ共にハイレベルとなり、プリチャージ用ＰＭＯＳトランジスタ３３とロード用ＰＭＯＳトランジスタ３４は何れもオフ状態となる。また選択ワード線ＷＬｓの電位はハイレベルでトランジスタ２４はオン状態となっている。
【０２１５】
クランプ回路のクランプ用ＮＭＯＳトランジスタ３５のゲート端子にＶＣＬＭＰの電圧が印加され、選択ワード線ＷＬｓの電位をハイレベルにする。この結果、ＮＭＯＳトランジスタ２４はオン状態となるため、ノードＳＥＮ、選択ビット線ＢＬｓは抵抗変化素子２３を介してＧＮＤへ接続され、ＧＮＤレベルまでディスチャージされる。また、コンパレータの出力に接続されている抵抗値カウンタの制御信号ＲＳＴはハイレベルとなっているため、抵抗値カウンタ出力端子ＣＯＵＮＴ＿ＯＵＴは０の固定値が出力される。
【０２１６】
Ｔ２のセンス期間では、制御信号ＬＯＡＤがロウレベルになることで、ロードＰＭＯＳトランジスタ３４はオン状態になる。この結果、ロードＰＭＯＳトランジスタ３４、クランプＮＭＯＳトランジスタ３５、選択メモリセル２１ｓの電流パスが形成され、ノードＳＥＮ、選択ビット線ＢＬｓへ充電が開始される。充電開始と同時に、抵抗値カウンタ３２の制御信号ＲＳＴがロウレベルとなり、カウントが始まる。そして、１カウント毎に、コンパレータ３１によって、ノードＳＥＮの電位と参照電圧ＶＲＥＦの電圧が比較され、ノードＳＥＮが参照電圧ＶＲＥＦを上回るまで、カウント値が加算され続ける。読み出し時の抵抗変化素子２３の抵抗値が低いほど充電時間は長くなり、カウント値は大きくなる。
【０２１７】
また、キャパシタ３６は、放電方式の場合と同様に、充電方式においても充電時間を調整することも可能である。詳細な説明は放電方式での説明と同様であるため割愛する。原理上、充電方式の場合は低抵抗になればなるほど充電時間が長くなり、それにともなって充電の傾斜が緩やかに変化するため、カウンタ値に対する抵抗値情報の分解能が向上する。つまり充電方式の場合は、低抵抗側が高精度な抵抗値情報を得ることのできる方式である。
【０２１８】
Ｔ３のラッチ期間では、充電が開始された後、ノードＳＥＮが参照電圧ＶＲＥＦを上回ったときの抵抗値カウンタ３２のカウント値がホールドされる。ホールドされたカウント値は、ＣＯＵＮＴ＿ＯＵＴに出力され、抵抗変化素子２３の抵抗値情報を表すカウント値として扱われる。
【０２１９】
Ｔ４のリセット期間においては、データ出力が完了すると、選択ワード線ＷＬｓの電位がロウレベルとされ、選択されたメモリセル２１ｓのトランジスタ２４がオフとなり、読み出し動作が終了する。
【０２２０】
図１９の構成であれば、放電方式と充電方式の両方を用いることができる。しかし、図１９の比較器１３５で例示した出力Ａおよび出力Ｂの論理例は放電方式の読み出し回路における例である。高抵抗状態と低抵抗状態に夫々対応するディジタルデータの論理を同じにする場合は、検出方向が逆になるために充電方式では反転する必要がある。具体的には、出力Ａへの論理はａ≧ｂの場合は１とし、ａ＜ｂの場合は０となる。出力Ｂへの論理は放電方式と充電方式で等しい。
【０２２１】
このように読み出しの方式によって抵抗値情報に対する分解能が異なるため、高精度に抵抗値情報を得たい場合は、放電方式は選択されたメモリセルが高い抵抗値範囲を用いて保存される場合に用いてもよい。逆に充電方式は選択されたメモリセルが低い抵抗値範囲を用いて保存される場合に用いてもよい。しかしながら、一方で図１９に示した抵抗値カウンタ３２のカウンタ幅はハードウェアの制約上有限な量である。したがって、放電時間または充電時間が長すぎる場合はカウンタがカウントできるレンジをオーバーしてしまい、正確な抵抗値情報が得られない。このため、必要なカウンタのビット幅を節約して回路規模の縮小を図る場合は、放電方式は選択されたメモリセルが低い抵抗値範囲を用いて保存される場合に用いてもよい。逆に充電方式は、選択されたメモリセルが高い抵抗値範囲を用いて保存される場合に用いてもよい。
【０２２２】
読み出し回路１１は、本実施形態にかかる第１のディジタルデータ、第２のディジタルデータ、乱数データの生成のための抵抗値情報の取得に用いられる。得られた抵抗値情報から、夫々のデータの生成の方法は異なるため、具体的な一例について以下に述べる。
【０２２３】
［第１実施例］
（第１のディジタルデータの生成方法）
次に、第１のディジタルデータ領域８から、装置固有のディジタルＩＤデータの元となる第１のディジタルデータを生成する方法について説明する。前述のように、第１のディジタルデータ領域８のメモリセルは、同一の抵抗値状態に書込まれている。図６に示すように抵抗値のバラツキ分布は正規分布に従い、人為的に制御困難でランダムなバラツキ分布となる。第１のディジタルデータの取得のためには、図６に示すようにバラツキ分布の中央値を抽出し、抽出した中央値によって、０，１のディジタルデータに変換する。初めにこの中央値の抽出方法について説明する。
【０２２４】
第１のディジタルデータの生成時においては、初めに“中央値抽出動作”が実行される。このとき、前記第１のディジタルデータ領域８の並列読み出し数Ｓビットごとに、アドレスを順次変更して読み出し動作を繰り返し、第１のディジタルデータ領域８で選択されるメモリセルを変えながら、各メモリセルに応じた抵抗値情報を読み出す。Ｓビットごとに読み出された抵抗値情報から、読み出し回路１１の動作説明で延べたように、出力Ｂには判定結果に応じた−１，１の信号が出力される。出力Ｂは並列読み出し数のＳチャンネルが中央値検出回路２５に入力される。図２２に中央値検出回路２５の一具体例を示し、その動作について説明する。
【０２２５】
図２２に示す中央値検出回路２５は、全チャンネル加算器４１１と、乗算器２０２と、加算器４１２と、データラッチ回路４１３とを備えている。乗算器２０２は、全チャンネル加算器４１１と接続され、全チャンネル加算器４１１から出力される信号を入力する。加算器４１２は、乗算器２０２の出力およびデータラッチ回路４１３の出力および入力と接続されている。加算器４１２は、乗算器２０２の出力およびデータラッチ回路４１３の出力を入力してこれらの出力を加算し、その加算結果をデータラッチ回路４１３に出力する。
【０２２６】
データラッチ回路４１３は、加算器４１２の出力を入力し、制御信号Ｂが指定するタイミングで、加算器４１２から入力したデータをラッチする。なお、データラッチ回路４１３は、１ビットのラッチ回路を複数組み合わせることによって複数ビットの情報を記憶することが可能な回路である。ビット数は、その出力として必要とされるビット数に依存する。次に説明するように、本構成例ではデータラッチ回路４１３の出力は読み出し回路１１において抵抗中央値として利用される。データラッチ回路４１３は、少なくとも抵抗中央値を表現するために必要とされるビット数分のラッチ回路を実装していればよい。
【０２２７】
この中央値検出回路２５の動作をより具体的に説明する。
【０２２８】
全チャンネル加算器４１１は、読み出し回路１１から入力されるチャンネル数がＳの抵抗値誤差信号を全て合算し、トータル誤差信号として出力する。乗算器２０２は、トータル誤差信号を入力して、その入力信号に係数αを乗じる。乗算器２０２は、一般的な乗算器の回路を用いてもよいし、係数αを、例えば１／２，１／４，１／８などの２のべき乗分の１とすることで、ビットシフト回路で代用できる。乗算器２０２の係数を変更することで、誤差信号の感度を調整する。加算器４１２は、データラッチ回路４１３の出力と、乗算器２０２から出力された、感度が調節された誤差信号とを加算して、データラッチ回路４１３に出力する。
【０２２９】
データラッチ回路４１３は、制御信号Ｂによって指定されたタイミングで、加算器４１２から入力した信号（データ）をラッチする。制御信号Ｂが指定するタイミングは、例えば図２０Ａ，２０ＢのＴ３期間の終了直前が例示できる。データラッチ回路４１３の出力は、ビット数がＳ、すなわちＳビットの各抵抗値情報を1回読み出すごとに更新される。
データラッチ回路４１３は、直前にラッチしたデータを、加算器４１２へ出力するとともに、読み出し回路１１の入力Ａ（図１９を参照）にも出力する。この出力されるデータは、読み出し回路１１において抵抗中央値として利用される。
【０２３０】
上述の動作から理解されるように、全チャンネル加算器４１１および乗算器２０２は、抵抗値誤差信号を累積する際の感度を調整する感度調整回路をなす。また、加算器４１２およびデータラッチ回路４１３は制御信号Ｂから指定されるタイミングに従って、１つ前の抵抗中央値と、感度が調節された抵抗値誤差信号とを加算して累積する累積加算回路をなす。
【０２３１】
図２２の構成例から明らかなように、感度調整回路と、抵抗値誤差信号の累積加算回路とを設けることについては、各回路の具体的な構成、および各回路の接続関係は種々考えられる。上述の開示を踏まえると、当業者であればそのような変形例を設計することができる。本開示の趣旨に鑑みれば、現時点における抵抗中央値と、読み出された抵抗値情報との差分を抵抗値誤差信号として得て、その抵抗値誤差信号を累積する際の感度が調整でき、抵抗値誤差信号の累積結果を新たな抵抗中央値として更新する、このような設計思想で設計された変形回路は、本開示の範疇である。
【０２３２】
図２３は、中央値検出回路２５が実際に抵抗中央値を算出した結果を示す。横軸に第１のディジタルデータ領域８を、アドレスを変更しながら読み出した回数、縦軸にデータラッチ回路４１３が保持する値を示している。第１のディジタルデータ領域８の抵抗値情報を予め読み出しておき、計算機により中央値を算出した場合の理論値が１７であった。図２３からわかるように、読み出し回数が３０回あたりで、ほぼ理論値である１７に収束している様子が分かる。中央値抽出動作が完了し、抽出した中央値は、前記データラッチ回路４１３に保持される。この保持された中央値を、以降で抽出中央値という。このように本開示の提案方式であれば、抵抗値ばらつき分布の中央値を安定的に検出でき、抽出中央値を閾値として、もう一度、第１のディジタルデータ領域８のメモリセルの抵抗値情報を読み出して、この読み出した抵抗値情報を０，１に割り当てることで、第１のディジタルデータを良好かつ安定的に生成できる。
【０２３３】
（第２のディジタルデータと変形第２のディジタルデータの生成方法）
次に、第２のディジタルデータ領域４０４から、装置固有のディジタルＩＤデータの元と成る第２のディジタルデータを生成する方法について説明する。前述のように、第２のディジタルデータ領域４０４は、抵抗変化素子の無い選択トランジスタのみのメモリセルであり、トランジスタのオン抵抗がメモリセルの抵抗値となるような“固定抵抗メモリセル”である。しかし、最先端の微細半導体プロセスにおいてはトランジスタのオン抵抗は大きくバラツキを持っている。つまり、固定抵抗セルの、それぞれの抵抗値は製造プロセス上の制御しきれないランダムなバラツキを持っている。このことは、第１のディジタルデータと同様に複製が非常に困難な特性を示している。制御回路１５の指示により、ロウデコーダ回路１８とカラムデコーダ回路１７は、第２のディジタルデータ領域４０４を選択して読み出し回路１１に接続する。読み出し回路１１は、前述した同じ動作で、第２のディジタルデータ領域４０４の選択された前記固定抵抗メモリセルの抵抗値情報を読み出す。このとき得られた抵抗値情報（ＣＯＵＮＴ＿ＯＵＴ）のＳビット分がＩＤデータ制御回路４０２に出力される。
【０２３４】
ＩＤデータ制御回路４０２は、読み出し回路１１から抵抗値情報に相当するＣＯＵＮＴ＿ＯＵＴを入力し、第２のディジタルデータを生成する。本実施例では生成される第２のディジタルデータは並列読み出し数と等しいＳビットのデータであるが、これに限定されない。
【０２３５】
図２１にＩＤデータ制御回路４０２の具体的な一例を示す。図２１の例示では説明の簡単化のために並列読み出し数Ｓを８とした場合を示しているが、これに限定されない。図２１において、比較器６０１は入力ａと入力ｂの大小関係を比較し、ａ＜ｂなら１を、ａ≧ｂなら０を出力する。ラッチ６０２から６０９は、ｌａｔｃｈ＿ｅｎが１のときに、ｌｏａｄ＿ｅｎが１なら入力ａを選択してラッチし、ｌｏａｄ＿ｅｎが０なら入力ｂを選択してラッチするラッチ回路である。ラッチ６０２から６０９において、入力ｂが選択される場合、ラッチ６０９の出力がラッチ６０２の入力となり、ラッチ６０２，６０６，６０７，６０８の出力は、次段のラッチ６０３，６０７，６０８，６０９の入力に夫々接続される。ラッチ６０３，６０４，６０５の出力は、それぞれラッチ６０９の出力と排他的論理和（ＸＯＲ）され、次段のラッチ６０４，６０５，６０６に入力される。このときの回路接続によりラッチ６０３から６０９は、巡回型演算処理回路をなしている。例示の巡回型演算処理回路は８次の原始多項式演算処理を回路化したものである。巡回型演算処理のアルゴリズムは多くの先行技術が知られており、全ての方式が巡回型演算処理回路に適用できる。すなわち、Ｄ2０からＤ2７のデータ（第２のディジタルデータ）を初期値として繰返し演算を行い、擬似乱数を生成してＤｍ０からＤｍ７に出力する回路であれば本開示の実施形態に含まれる。このとき、Ｄｍ０からＤｍ７のデータは変形第２のディジタルデータ（the modified second digital data）という。
【０２３６】
Ｄ1０からＤ1７の入力端子には前述の第１のディジタルデータが入力される。この例では、第１のディジタルデータは、Ｓビットごとに第１のディジタルデータ領域８のアドレスに割り当てられて記憶されている。それらのアドレスごとに読み出した第１のディジタルデータの一部（Ｓビット）が、Ｄ1０からＤ1７の入力端子に入力される。ビット数が同じＳビットの変形第２のディジタルデータは、Ｄ1０からＤ1７のデータと排他的論理和（ＸＯＲ）されてＤｘ０からＤｘ７として出力される。Ｄｘ０からＤｘ７のデータは装置固有のディジタルＩＤデータ（ＰＵＦデータ）として用いられる。
【０２３７】
制御回路１５の制御により、読み出し回路１１は、第２のディジタルデータ領域４０４から選択された固定抵抗メモリセルの抵抗値情報を読み出し、この読み出した結果をＣＯＵＮＴ＿ＯＵＴ０〜ＣＯＵＮＴ＿ＯＵＴ７として出力する。図２１からわかるように、比較器６０１は、それぞれの隣接チャンネルのＣＯＵＮＴ＿ＯＵＴ値を比較して、Ｄ2０か
らＤ2７の第２のディジタルデータを出力する。つまり、第２のディジタルデータは、固
定抵抗メモリセルの抵抗値の大小関係から得られるデータである。前述のとおり、固定抵抗メモリセルの抵抗値は半導体プロセスにおける製造ばらつきがあるため、第２のディジタルデータは人為的に決定できないランダムなデータをなす。第２のディジタルデータのＤ2０からＤ2７が確定したとき、ｌｏａｄ＿ｅｎが１、ｌａｔｃｈ＿ｅｎが１を指定され、ラッチ６０２から６０９にＤ2０からＤ2７が初期値としてロードされる。そして、第１のディジタルデータが読み出されるたびに、ｌｏａｄ＿ｅｎが０、ｌａｔｃｈ＿ｅｎが１を指定され、ラッチ６０２から６０９が入力端子ｂのデータをラッチする。つまり、第１のディジタルデータが読み出されるたびに、ＩＤデータ制御回路４０２は、第２のディジタルデータ（Ｄ2０からＤ2７）を初期値とした巡回型演算処理を繰返し、変形第２のディジタルデータ（Ｄｍ０からＤｍ７）を順次生成するとともに、第１のディジタルデータと変形第２のディジタルデータとの排他的論理和を行い、装置固有のディジタルＩＤデータ（Ｄｘ０からＤｘ７）を得る。このディジタルＩＤデータは、上述したＰＵＦデータとなる。
【０２３８】
以上のように、第１のディジタルデータは抵抗変化型メモリセルが同じ抵抗値範囲にセットされたときの抵抗値のバラツキに関係したデータであり、第２のディジタルデータおよび変形第２のディジタルデータは、第１のディジタルデータとは全く相関関係の無いデータである。第１のディジタルデータは、抵抗値の大小関係から得られるデータであるが、第１のディジタルデータと変形第２のディジタルデータと排他的論理和をとって、ディジタルＩＤデータを得ることで、ディジタルＩＤデータが示す０と１が抵抗値との相関関係がなくなる。これによりプローブによる直接的にメモリセルの抵抗値を読み出すような攻撃が可能であったとしても、ディジタルＩＤデータが容易に類推されることが無くなり、非常にセキュア性の優れたＩＤデータを得ることができる。
【０２３９】
なお、第２のディジタルデータとして、第１種データまたは第２種データが用いられてもよい。上述したように、第１種データは、図３に示す第１閾値で判別されて得られるデータであり、不揮発性メモリセルが初期状態にあるか可変状態にあるかを示すデータである。また、第２種データは、図３に示す第２閾値で判別されて得られるデータであり、不揮発性メモリセルの抵抗値が図３に示す第１抵抗値範囲にあるか第２抵抗値範囲にあるかを示すデータである。このような第２のディジタルデータと第１のディジタルデータに基づいて生成したディジタルＩＤデータも上記と同様に非常にセキュア性の優れたＩＤデータとなる。
【０２４０】
［第２実施例］
（チャレンジ・レスポンス）
次に、第１のディジタルデータと変形第２のディジタルデータを用いたチャレンジ・レスポンスについて図２４Ａおよび図２４Ｂを用いて説明する。本実施形態において装置外から入力されるチャレンジ信号はメモリセルにアクセスする読み出しアドレスの順番となる。図２４Ａは、チャレンジＸのパターンを示している。このチャレンジＸのパターンにおいては、読み出し回路１１は、初めに第２のディジタルデータ領域４０４のアドレスを選択して第２のディジタルデータを読み出す。このときアクセスするアドレスをＺとする。図２１で示したｌｏａｄ＿ｅｎは、第２のディジタルデータ領域４０４のアドレスを読み出すときは、Ｈｉｇｈが設定される。そして、前述した読み出し方法によって抵抗値情報が読み出され、ＣＯＵＮＴ＿ＯＵＴの値が定まり、読み出し回路１１から出力されたタイミングで図２４Ａのようにｌａｔｃｈ＿ｅｎが、Ｌｏｗ→Ｈｉｇｈ→Ｌｏｗに変化する。この結果、ｌａｔｃｈ＿ｅｎがＨｉｇｈのタイミングで、図２１のＤ2０〜Ｄ2７がラッチ６０２から６０９の初期値として保持される。図２４Ａの例では、ラッチ６０２から６０９に保持された値を１６進数で記述したときの値は０ｘＡ５であったとしている。その後、アドレスを変更して読み出されるたびに、ｌｏａｄ＿ｅｎはＬｏｗで、ｌａｔｃｈ＿ｅｎがＬｏｗ→Ｈｉｇｈ→Ｌｏｗに変化する。このため、０ｘＡ５を初期値として図２１のラッチ回路が、多項式演算処理を実行して、それぞれの読み出し回数ごとに、ラッチ回路に保持されている値は、０ｘ５６、０ｘＡＤ、０ｘ４６、０ｘ８Ｄ、０ｘ０６へと順次変化していく。これらのデータが、変形第２のディジタルデータとなる。
【０２４１】
一方で、第２のディジタルデータ領域４０４のメモリセルを読み出して、ラッチ６０２から６０９に初期値を保持させた後は、第１のディジタルデータ領域８の各アドレスを読み出していく。なお、読み出し回路の動作で説明したような抵抗中央値の検出は事前に完了しているものとする。例えば、第１のディジタルデータ領域８のアドレスａを読み出したときの第１のディジタルデータは、１６進数で０ｘ１５とした。同じように、第１のディジタルデータ領域８のアドレスｂ，ｃ，ｄ，ｅに対応して、０ｘＤ０，０ｘ２Ｆ，０ｘ８５，０ｘ３４の第１のディジタルデータが順次読み出されるものとする。そして、図２１のＤｘ０〜Ｄｘ７には、チャレンジに対するレスポンスに相当するディジタルＩＤデータが、第１のディジタルデータと変形第２のディジタルデータとの排他的論理和から得られる結果として出力される。このディジタルＩＤデータを不揮発性メモリ装置外に出力することをレスポンス出力と呼ぶ。
【０２４２】
図２４ＢにチャレンジＹのパターンを示す。図２４Ｂからわかるように、第２のディジタルデータ領域４０４のアドレスを読み出した後、読み出し回路１１が読み出す第１のディジタルデータ領域８のアドレスの順番が異なっている。これにより変形第２のディジタルデータは同じであるが、読み出すアドレスの順番が異なるので、第１のディジタルデータと変形第２のディジタルデータとの排他的論理和される組合せが変わるので、チャレンジＸのパターンとは異なるディジタルＩＤデータが、図２１のＤｘ０〜Ｄｘ７に出力されることになる。
【０２４３】
上述したようなチャレンジ入力とレスポンス出力との関係に基づいて不揮発性メモリ装置外からの認証を行う。本実施形態の構成を用いてチャレンジ・レスポンスの認証を行う場合は、予めセキュリティーが担保されている装置製造工程の検査時において、変形第２のディジタルデータと排他的論理和を行わず、第２のディジタルデータと第１のディジタルデータを所定のアドレス順番で読み出しておき、認証サーバーにデータを登録する。なお、当然なこととして、装置の検査時以外では第１のディジタルデータと第２のディジタルデータ読み出すことができないように工夫されている。例えば読み出すためには複雑なコマンド入力によってのみ行え、そのコマンド入力の方法は一般には公開しないなどがある。第１種データをあらわす初期抵抗値状態は、一度でも違う抵抗状態に書き換えると書き戻しのできない抵抗値状態である。従って、所定のメモリセルが初期状態でなければ第１のディジタルデータおよび第２のディジタルデータを読み出すことがハードウェア的にできないように回路を構成するといった対策が有効である。
【０２４４】
市場において認証サーバーによって各装置を認証する場合は、登録された第１のディジタルデータと第２のディジタルデータとを用いてチャレンジに対するレスポンスデータを演算にて導き出しておき、装置から実際に返されるレスポンスと一致するかどうかで認証する。
【０２４５】
このように、不揮発性メモリ装置が正規の装置であることを認証するための認証方法においては、不揮発性メモリ装置の出荷前に、第１のディジタルデータと第２のディジタルデータとを読み出し、外部認証装置に保持しておく。そして、不揮発性メモリ装置が出荷されて使用されるときに、外部認証装置は、複数のチャレンジ入力を用いてレスポンス出力を受信し、外部認証装置が予め保持している第１のディジタルデータと第２のディジタルデータを用いて演算した結果と、受信したレスポンス出力とが一致しているか否かを判断する。そして、一致している場合には、不揮発性メモリ装置が正規の装置であると認証する。不一致の場合には、不揮発性メモリ装置が正規の装置ではないと判断し、認証は行わない。
【０２４６】
以上のような本実施形態における第１のディジタルデータと、第２のディジタルデータをもとに変形される変形第２のディジタルデータとを用いて装置固有のディジタルＩＤデータを生成する方法であれば、読み出すアドレス順番によりレスポンスが変わり、第１のディジタルデータは複製できない装置固有のデータであるので、そこから得られるレスポンスも装置ごとに異なるユニークなレスポンスをなす。また、最終的に出力されるディジタルＩＤデータは、第１のディジタルデータと変形第２のディジタルデータとの排他的論理和として得られる。したがって、メモリセルの抵抗値の大小関係と、データの０，１とが相関関係を持たない。この結果、将来的に攻撃に用いるプロービング技術が進歩して、メモリセルごとの抵抗値を読みだすことができたとしても、ディジタルＩＤデータの予測が困難であり、非常にセキュリティー性の高いディジタルＩＤデータの生成が可能となる。
【０２４７】
［第３実施例］
（乱数生成）
次に、本実施形態に用いられる乱数生成について説明する。この乱数生成は、乱数生成セル領域４０３のメモリセルから得られる複数の抵抗値情報を用いてディジタルデータを生成し、該ディジタルデータを用いて所定のアルゴリズムを実行することによって乱数データを生成するものである。
【０２４８】
第３実施例は、書き込み後に時間が経過して抵抗値変動における抵抗値の変動幅が小さくなった場合でも良好な乱数を抽出する構成である。
【０２４９】
図２５は、乱数生成セル領域４０３のメモリセルの抵抗値情報であるＣＯＵＮＴ＿ＯＵＴの値から乱数を生成する乱数生成回路の概略構成を示す回路図である。以下、図２５を参照しつつ、乱数生成回路４０１について説明する。
【０２５０】
図２５の乱数生成回路４０１は、乱数ソース信号生成回路部４０１ａと、乱数生成ポスト処理回路部４０１ｂに分けられる。乱数ソース信号生成回路部４０１ａは、抵抗変化素子の抵抗値揺らぎから得られるＣＯＵＴ＿ＯＵＴ値の変動を元に０または１のディジタル値に変換し、乱数ソースを出力するブロックをさす。また、乱数生成ポスト処理回路部４０１ｂは、乱数ソース信号生成回路が生成した乱数ソースのディジタル値を用いて、更に乱数性を高める種々の演算が実行されるブロックをさす。乱数生成ポスト処理回路部４０１ｂの処理としては、種々のアルゴリズムが例示でき、先行文献などでは多項式演算処理などが利用される。本発明者らは非特許文献「The Workshop on Fast Software Encryption ２００７(FSE 2007) LNCS 4593, pp. 137−152, 2007. ＠ International Association for Cryptologic Research 2007  "Bad and Good Ways of Post-processing Biased Physical Random Numbers" Markus Dichtl」に示されているＨ４回路に着目した。
【０２５１】
図２６にＨ４回路の構成例を示す。図２６に示すように、入力されるＤＩｘ０〜ＤＩｘ７の８ビットの信号を１ビット巡回シフトしたものと、２ビット巡回シフトしたものと、４ビット巡回シフトしたものと、元のＤＩｘ０〜ＤＩｘ７とをビット毎に排他的論理和を行う。この排他的論理和にて得られた各ビットと、もう一つの入力であるＤＩｙ０〜ＤＩｙ７の８ビットとビット毎に排他的論理和を行っている。前述の非特許文献によれば、０または１の発生確率のうち、どちらかに偏るバイアス確率をεとしたとき、Ｈ４回路の処理によってεの４乗までの項がキャンセルされ、最少のバイアスがεの５乗項のみになるように非常に小さくすることができる。しかしながら、Ｈ４回路は乱数ソース１６ビットの入力に対して、出力が８ビットになり、生成速度が半分になってしまう。つまり、Ｄｉｃｈｔｌ氏が示したＨ４回路は、０または１の発生確率に偏りのある乱数ソースであったとしても、バイアス成分の大部分を除去し、非常に良好な乱数に生成しなおすことができるが、得られる乱数ソースのビット数に対して出力できる乱数データのビット数は半分になる欠点を有している。本発明者らは鋭意検討の結果、Ｓビットのメモリセルの抵抗値揺らぎから、各ビット自身の抵抗値の変動から得られるＳビットの乱数ソースと、各ビットとそれ以外のビットとの間の抵抗値の変動から得られるＳビットの乱数ソースは、互いに独立関係にあることを見出した。そして、２つのＳビットの乱数ソースを、それぞれＨ４回路に入力することで、Ｓビットの抵抗値情報を読み出す回路のチャンネル数が倍に増加することなく、乱数性の極めて高い乱数データを得ることを見出した。上記で延べた、各ビット自身の抵抗値の変動から得られるＳビットの乱数ソースデータを自己変動乱数ソースと定義し、各ビットとそれ以外のビットとの間の抵抗値の変動から得られるＳビットの乱数ソースデータを相互変動乱数ソースと定義する。抵抗値情報であるＣＯＵＮＴ＿ＯＵＴの値から自己変動乱数ソースまたは相互変動乱数ソースを生成する回路構成は色々と考えられるが、上記の考え方を包含した処理回路は全て本実施形態に含まれる。以下、回路構成の一例を、図２５を用いて説明する。
【０２５２】
図２５において、点線で囲まれたブロックが自己変動乱数ソースを生成する自己変動乱数ソース信号生成回路７２０である。また、一点鎖線で囲まれたブロックが相互変動乱数ソースを生成する相互変動乱数ソース信号生成回路７２１である。
【０２５３】
図１８における読み出し回路１１は、同一の可変抵抗値範囲にあるＮ個（Ｎは２以上）のメモリセル２１から複数の異なる時刻のそれぞれにおいて抵抗値情報を取得することで、複数の抵抗値情報を取得する。自己変動乱数ソース信号生成回路７２０は、複数の抵抗値情報のうちの各メモリセル２１の過去と現在の抵抗値情報の差分または大小関係に基づいて、Ｎビットの乱数データを生成する。相互変動乱数ソース信号生成回路７２１は、各メモリセルの抵抗値情報と、各メモリセル自身以外の他のメモリセルの抵抗値情報との差分または大小関係に基づいて、Ｎビットの乱数データを生成する。図２５では、自己変動乱数ソース信号生成回路７２０、相互変動乱数ソース信号生成回路７２１が８ビットの乱数データを出力する例を示している。
【０２５４】
自己変動乱数ソース信号生成回路７２０は、センスアンプ回路３０から出力されるＣＯＵＮＴ＿ＯＵＴの抵抗値情報の値が入力される。
【０２５５】
乱数データ読み出しコマンドを受け付けたとき、制御回路１５の指示に従い、各チャンネルの列選択回路によって乱数生成セル領域４０３のメモリセルが選択され、読み出し回路１１に接続される。読み出し回路１１内のセンスアンプ回路３０からは、メモリセルの抵抗値情報にあたるＣＯＵＮＴ＿ＯＵＴ値が読み出される。
【０２５６】
ｌａｔｃｈ＿ｅｎは、１クロック幅のラッチタイミングのパルスである。すなわち、ｌａｔｃｈ＿ｅｎが“Ｈｉｇｈ”となるタイミングで、ラッチ７３９は入力のＣＯＵＮＴ＿ＯＵＴの値をラッチする。この場合、ラッチ７３９には前回読み出した抵抗値情報（一つ過去に読み出したＣＯＵＮＴ＿ＯＵＴ値）が保持されることになり、検出器７４１（図ではＤＥＴａで表示）は、現在のＣＯＵＮＴ＿ＯＵＴ値から前回読み出したＣＯＵＮＴ＿ＯＵＴ値を減算して、正の値であれば１を出力し、負の値であれば−１を出力し、何れでもなければ０を出力する。図２５に検出器７４１（ＤＥＴａ）の論理表を示す。検出器７４１の出力は、０／１判定器７４２のＹに入力される。０／１判定器７４２のＸには、後述するラッチ７４０の出力が入力される。０／１判定器７４２の論理表を図２５に示す。０／１判定器７４２は、入力Ｙが１のとき１を出力し、入力Ｙが−１のとき０を出力する。更に入力Ｙが０の時、入力Ｘをそのまま出力する。ラッチ７４０は、ラッチ７３９と同様にｌａｔｃｈ＿ｅｎのタイミングで０／１判定器７４２の出力を保持するので、前回読み出したときの０／１判定器７４２の出力が保持されていることになる。つまり、入力Ｙが０のときは１つ前の読み出し時における０／１判定器７４２の出力を再度出力する。
【０２５７】
このように自己変動乱数ソース信号生成回路７２０は、乱数生成セル領域４０３のメモリセル中で選択した同じメモリセルを、書き換えることなく繰返し読み出し、ＣＯＵＮＴ＿ＯＵＴに出力される抵抗値情報が、読み出すごとに変動する値から０または１に変換する回路をなす。同じメモリセルの抵抗値情報が変動する現象から０または１を生成する方法は、多くの派生の回路が考えられ、自己変動乱数ソース信号生成回路７２０の回路構成に限定されない。本構成例と同じ考え方に基づく回路は本実施形態に帰属するものである。
【０２５８】
次に相互変動乱数ソース信号生成回路７２１について説明する。図２５において各相互変動乱数ソース信号生成回路７２１には、各チャンネル自身のＣＯＵＮＴ＿ＯＵＴが入力されるとともに、隣接チャンネルのＣＯＵＮＴ＿ＯＵＴも同時に入力されている。例えばＣＨ０であればＣＨ０のＣＯＵＮＴ＿ＯＵＴ０と、ＣＨ７のＣＯＵＮＴ＿ＯＵＴ７が入力される。ＣＨ１であればＣＨ１のＣＯＵＮＴ＿ＯＵＴ１と、ＣＨ０のＣＯＵＮＴ＿ＯＵＴ０が入力される。ＣＨ２であればＣＨ２のＣＯＵＮＴ＿ＯＵＴ２と、ＣＨ１のＣＯＵＮＴ＿ＯＵＴ１が入力される。ＣＨ３であればＣＨ３のＣＯＵＮＴ＿ＯＵＴ３と、ＣＨ２のＣＯＵＮＴ＿ＯＵＴ２が入力される。ＣＨ４であればＣＨ４のＣＯＵＮＴ＿ＯＵＴ４と、ＣＨ３のＣＯＵＮＴ＿ＯＵＴ３が入力される。ＣＨ５であればＣＨ５のＣＯＵＮＴ＿ＯＵＴ５と、ＣＨ４のＣＯＵＮＴ＿ＯＵＴ４が入力される。ＣＨ６であればＣＨ６のＣＯＵＮＴ＿ＯＵＴ６と、ＣＨ５のＣＯＵＮＴ＿ＯＵＴ５が入力される。ＣＨ７であればＣＨ７のＣＯＵＮＴ＿ＯＵＴ７と、ＣＨ６のＣＯＵＮＴ＿ＯＵＴ６が入力される。そして、ＥＶＥＮ／ＯＤＤ検出回路７４３は２つのＣＯＵＮＴ＿ＯＵＴの差分値が偶数か奇数かで０または１の信号を出力する。つまり、差分値が偶数であれば０を出力し、奇数であれば１を出力する。更にラッチ７５０は、ＥＶＥＮ／ＯＤＤ検出回路７４３の出力と、ラッチ７５０の出力とを排他的論理和したものが入力されている。ラッチ７５０は、ラッチ７４０と同様にｌａｔｃｈ＿ｅｎのタイミングで入力データを保持する構成となっている。ラッチ７５０にデータが更新される状態遷移図を図２７に示した。図２７において、各状態の意味は以下の通りである。Ｅｖｅｎ（１）は、前回の読み出しが偶数でラッチ７５０の出力が１であることを表している。Ｅｖｅｎ（０）は、前回の読み出しが偶数でラッチ７５０の出力が０であることを表している。Ｏｄｄ（１）は、前回の読み出しが奇数でラッチ７５０の出力が１であることを表している。Ｏｄｄ（０）は、前回の読み出しが奇数でラッチ７５０の出力が０であることを表している。それら４つの状態のそれぞれにおいて、隣接する抵抗値情報の値との差分が奇数であるか偶数であるかで、次にどの状態に遷移するかを示している。すなわち、前回の読み出しが偶数で、Ｅｖｅｎ（１）状態にあるとき、更に今回の読み出しが偶数である場合は、Ｅｖｅｎ（０）に遷移し、ラッチ７５０の出力は０となる。前回の読み出しが偶数で、Ｅｖｅｎ（１）状態にあるとき、更に今回の読み出しが奇数である場合は、Ｏｄｄ（０）に遷移し、ラッチ７５０の出力は０となる。前回の読み出しが偶数で、Ｅｖｅｎ（０）状態にあるとき、更に今回の読み出しが偶数である場合は、Ｅｖｅｎ（０）に遷移し、ラッチ７５０の出力は０となる。前回の読み出しが偶数で、Ｅｖｅｎ（０）状態にあるとき、更に今回の読み出しが奇数である場合は、Ｏｄｄ（０）に遷移し、ラッチ７５０の出力は０となる。
【０２５９】
また、前回の読み出しが奇数で、Ｏｄｄ（１）状態にあるとき、更に今回の読み出しが偶数である場合は、Ｅｖｅｎ（１）に遷移し、ラッチ７５０の出力は１となる。前回の読み出しが奇数で、Ｏｄｄ（１）状態にあるとき、更に今回の読み出しが奇数である場合は、Ｏｄｄ（０）に遷移し、ラッチ７５０の出力は０となる。前回の読み出しが奇数で、Ｏｄｄ（０）状態にあるとき、更に今回の読み出しが偶数である場合は、Ｅｖｅｎ（１）に遷移し、ラッチ７５０の出力は１となる。前回の読み出しが奇数で、Ｏｄｄ（０）状態にあるとき、更に今回の読み出しが奇数である場合は、Ｏｄｄ（０）に遷移し、ラッチ７５０の出力は０となる。このような状態遷移によりＣＯＵＮＴ＿ＯＵＴ値の差分値から０または１のディジタル値に変換される。
【０２６０】
以上の様に出力された２種類の乱数ソースの１６ビットのデータが、乱数抽出演算部７００に入力される。乱数抽出演算部７００は、前述した図２６のＨ４回路と同様の構成を有し、８ビットの乱数データを出力する。乱数抽出演算部７００は、自己変動乱数ソース信号生成回路７２０が出力した８ビットの乱数データと、相互変動乱数ソース信号生成回路７２１が出力した８ビットの乱数データとを所定の組合せで排他的論理和することにより８ビットの乱数データを生成して出力する。すなわち、本実施形態の乱数生成回路４０１は、乱数生成セル領域４０３のメモリセルから読み出した８ビットのデータを入力として、８ビットの乱数データを出力する。
【０２６１】
なお、今回は８ビットのデータ単位で例示したが、読み出されるＳ個の抵抗値情報の値を８個単位で上述と同様の処理を行えば、８のｎ倍のビット数の乱数データが出力できる。このように本構成を用いれば、Ｓ個の抵抗値情報から生成速度を落とすことなく極めて乱数性の高い乱数データを生成することができる。
【０２６２】
（エラー訂正回路）
近年、ＰＵＦを用いたディジタルＩＤデータ生成におけるエラー訂正方式としてＦｕｓｓｙ  Ｅｘｔｒａｃｔｏｒと呼ばれるデータ抽出器が提案されている。非特許文献「“Implementation and Evaluation of SCA-Resistant AES and PUF using MDR-ROM Scheme”@SCIS2015(The 32nd Symposium on Cryptography and Information Security Kokura, Japan, Jan.20-23,2015) by Takeshi Fujino」に示された構成を図２８Ａ、図２８Ｂに示す
。図２８Ａは、ディジタルＩＤデータ、つまりＰＵＦ−ＩＤデータに誤り訂正用の信号を付加してＩＤとして登録するための初期登録の構成を示している。図２８Ｂは、付加した誤り訂正用信号を用いて登録したＩＤを再生する構成を示している。誤り訂正に用いるパリティーデータは、訂正対象のデータをもとに所定の演算をすることにより生成される。つまり、訂正対象のデータ系列とパリティーデータとには、一定の関係性がある。通常、ＰＵＦ  ＩＤデータは、製造時のばらつきを元に生成されるため複製できないものであり、更に容易に類推することのできないデータ系列であるため、ＩＤのセキュリティー性が高いとされる。しかし、一定のデータ誤りを持つため、同じＩＤを安定に再生するためには誤り訂正が必要となる。誤り訂正に必要なパリティーデータは、通常は不揮発性メモリに保存されるため、ハッキングなどの悪意ある攻撃によってパリティーデータが盗み読みされると、パリティーデータとの相関関係からＰＵＦ−ＩＤが類推されるといった懸念がある。その対策として、Ｆｕｓｓｙ  Ｅｘｔｒａｃｔｏｒの方式を採用することができる。図１８に示す誤り訂正およびヘルパーデータ生成回路４００は、以下に説明する誤り訂正の処理およびヘルパーデータを生成する処理を実行する。
【０２６３】
図２８Ａにおいて、ＰＵＦ  Ｄａｔａ（データＷ）をディジタルＩＤデータとして登録するとき、別途予測困難な乱数データを用意する。図１８に示す乱数生成回路４０１から乱数データＭをＥＣＣ Ｅｎｃｏｄｅｒに入力し、乱数データＭに誤り訂正用のパリティ
ーデータを追加する。この乱数データＭにパリティーデータを追加したデータをデータＣとする。このときＰＵＦ  ＤａｔａであるデータＷ（図２１のディジタルＩＤデータＤｘ０〜Ｄｘ７）とデータＣのビット長は同じになるようにする。更に、データＷとデータＣをビット毎に排他的論理和（ＸＯＲ）を行い、ヘルパーデータ（ＸＯＲ（Ｃ，Ｗ））を生成する。このヘルパーデータを不揮発性メモリに記憶、例えば、図１８のユーザーデータ領域７に保存する。この方式であれば、誤り訂正のパリティーデータが予測困難な乱数データを元に生成されているため、パリティーデータからＰＵＦデータを類推することは非常に困難となる。また、同様にヘルパーデータは、データＣとデータＷとの排他的論理和で生成されるため、不揮発性メモリをハッキングされたとしてもＰＵＦデータを類推することが困難である。
【０２６４】
次に、図２８Ｂを用いて、ヘルパーデータと誤りを含むＰＵＦデータから、正しい登録したＰＵＦ ＩＤデータを生成する方法を説明する。再生されたＰＵＦデータは誤りを含
み、データＷに誤ったビットを含んでいるため、図２８ＢではデータＷ＋ΔＷという標記をしている。前述したように事前に登録したヘルパーデータをメモリアレイのユーザーデータ領域７から読み出す。ヘルパーデータはデータＣとデータＷとの排他的論理和で生成されているので、誤りを含むＰＵＦデータと、更に排他的論理和をビット毎に行うと、正しいデータＷのビットがキャンセルされ、データＣに誤りデータであるΔＷが付加されたデータが生成される。このデータは（Ｃ ＸＯＲ ΔＷ）で表される。この（Ｃ ＸＯＲ ΔＷ）をＥＣＣ  Ｄｅｃｏｄｅｒに入力し、パリティーデータを用いて誤り訂正を行うと、正しい乱数データ（データＣ）が生成される。このデータＣと、ヘルパーデータとを更に排他的論理和を行うことで、正しいＰＵＦデータ（Ｗ）が再生される。
【０２６５】
図２８Ａ、図２８Ｂに示すように、ＰＵＦ  ＤａｔａがＨａｓｈ関数を用いて演算され、その演算値が暗号器で用いる暗号鍵として用いられてもよい。Ｈａｓｈ関数を用いることにより、万が一、暗号鍵が盗まれても、元のＰＵＦ  Ｄａｔａが類推されないようにすることができ、安全性をより高めることができる。例えば、ＰＵＦ  Ｄａｔａは、データ制御回路６における書き込み処理および読み出し処理において用いられる。
【０２６６】
このように、誤り訂正に用いるパリティーデータまたはヘルパーデータから、ＰＵＦデータを容易に類推させないためには、初期登録時に用いた予測困難な乱数データの生成が非常に重要になる。ＰＵＦデータの生成ブロックと乱数データの生成ブロックと、更にデータを記憶する不揮発性メモリとが、それぞれ独立している場合は、それぞれの間で各データをやり取りするため、その経路上の安全性を担保することが困難となる。本実施形態の構成であれば、ＰＵＦデータの生成、乱数の生成、不揮発性メモリへのデータの記憶の全ての機能が同じ装置内で自己完結で実施できる。このため、例えば別のブロックで乱数データを生成して入力する必要がない。入力経路があると、その経路が攻撃され攻撃者が解読しやすい既知の乱数データを故意に入力されるといったリスクが発生する。しかしながら、本実施形態の構成であれば、そのようなリスクを排除でき、非常にセキュリティー性の高いＩＤ生成と、その管理が行える装置を提供できる。
【０２６７】
（ＩＣカードへの応用例）
一つの応用例として、本開示により生成されるディジタルＩＤデータによる秘密鍵の暗号と、暗号化秘密鍵のフォーミングによる書き込みによるデータ隠蔽、さらに認証方法を開示する。
【０２６８】
図２９は、本実施形態にかかる通信システム５００の構成例を示すブロック図である。図２９において、通信システム５００は、リーダライタおよびデータサーバー５０１（以降、リーダライタと略す）と、ＩＣカード５０２とを備えている。リーダライタ５０１と、ＩＣカード５０２とは、例えば、それぞれが有するアンテナなどを介して無線による通信を行う。
【０２６９】
（リーダライタ側）
リーダライタ５０１は、ＲＡＭ５０３と、入出力インタフェース（Ｉ／Ｆ）部５０４と、ＣＰＵ５０５と、暗号処理回路５０６と、不揮発性メモリ装置５１５とを有している。
【０２７０】
リーダライタ５０１の入出力Ｉ／Ｆ部５０４は、外部との無線通信を行ってデータを送受信するためのインタフェースであり、たとえば無線通信回路として実現され得る。入出力Ｉ／Ｆ部５０４は、ＲＦアンテナを有している。入出力Ｉ／Ｆ部５０４は、所定の電磁波を輻射し、負荷の変化を利用して、ＩＣカード５０２が近づけられたか否かを検出する。また、入出力Ｉ／Ｆ部５０４は、例えば、発振回路（図示せず）から供給される所定の周波数の搬送波を、ＣＰＵ５０５から供給されるデータに基づいて変調する。入出力Ｉ／Ｆ部５０４は、該生成された変調波を、電磁波としてアンテナ（図示せず）から出力することで、近傍に配置されたＩＣカード５０２へと各種のデータを送信する。また、アンテナを介してＩＣカード５０２から送られた変調波を受信して復調し、得られたデータをＣＰＵ５０５に供給する。不揮発性メモリ装置５１５は、上述の不揮発性メモリ装置１０に対応する。不揮発性メモリ装置５１５は、秘密鍵記憶部５０８と、データ記憶部５０９と、ＲＯＭ部５１０と、固有ＩＤ記憶部５１１と、全ＩＣカード固有ＩＤ記憶部５４０とを備えている。
【０２７１】
ＲＯＭ部５１０は、本開示の不揮発性メモリ装置５１５が備える第２種データ記憶用メモリセル群のうちの所定のアドレス領域に相当する。リーダライタ５０１のＣＰＵ５０５は、ＲＯＭ部５１０に記憶されているプログラムをＲＡＭ５０３にロードし、該プログラムを用いて各種の処理を実行する。ＲＡＭ５０３にはＣＰＵ５０５が各種の処理を実行するために必要なデータなども一時的に記憶される。ＲＡＭ５０３は、ＳＲＡＭ（Static Random Access Memory）およびＤＲＡＭ（Dynamic Random Access Memory）などの揮発性記憶装置が用いられてもよい。あるいは、ＲＡＭ５０３は、本開示の不揮発性メモリ装置の第２種データ記憶用メモリセル群の一部で構成されていてもよい。
【０２７２】
固有ＩＤ記憶部５１１は本開示のディジタルＩＤデータを生成に用いるメモリセル群であり、リーダライタに固有のＩＤデータが本開示の方式により生成できる。さらに全ＩＣカード固有ＩＤ記憶部は、運用される複数のＩＣカード５０２で異なるディジタルＩＤデータの全てが記憶されている。なお、全ＩＣカードのディジタルＩＤデータは、リーダライタ固有のディジタルＩＤデータを暗号鍵として暗号化されたデータで記憶されてもよい。
【０２７３】
ＣＰＵ５０５は、暗号処理回路５０６を制御することにより、予め定められた暗号アルゴリズムに基づいて、データの暗号化と復号化を行う。暗号アルゴリズムとしては、トリプルＤＥＳ（Data Encryption Standard）、ＡＥＳ（Advanced Encryption Standard）などが例示できる。これらは、いわゆる１つの秘密鍵を用いて暗号と復号を行う共通鍵暗号方式の暗号アルゴリズムである。また、ＲＳＡ暗号といった秘密鍵と公開鍵の２つの異なる鍵を用い、暗号化時の鍵と、復号化時の鍵を異ならせることで暗号通信を行う公開鍵方式でもよい。この場合は、後述する秘密鍵記憶部５０８に通信相手の公開鍵と、通信者自身の秘密鍵の両方を格納してもよい。これらの重要な鍵データは、固有ＩＤ記憶部５１１から生成される本開示のディジタルＩＤデータを暗号鍵として暗号化して、暗号化秘密鍵または暗号化公開鍵として格納してもよい。前述したようにＰＵＦ技術を用いて生成されたディジタルＩＤデータはリーダライタに固有であり、複製およびハッキングが困難である。従って、それを用いて暗号化された暗号化秘密鍵または暗号化公開鍵がコピーされてもディジタルＩＤデータがコピーできないＩＣカード固有のデータであるため安全である。
【０２７４】
リーダライタ５０１においてデータの暗号化または復号化を行う場合、例えば、ＣＰＵ５０５は、不揮発性メモリ装置５１５内の所定のアドレス領域である秘密鍵記憶部５０８に記憶された暗号化秘密鍵を、本開示のディジタルＩＤデータを鍵として復号化し、元の秘密鍵を得て、暗号化または復号化すべきデータとともに、暗号処理回路５０６に供給する。暗号処理回路５０６は、供給された秘密鍵を用いてデータの暗号化または復号化を実行する。
【０２７５】
データ記憶部５０９は、ＣＰＵ５０５がプログラムを実行する上で必要なデータが記憶されている。データ記憶部５０９において、所定のデータは、本開示のディジタルＩＤデータを鍵として暗号化して記憶されていてもよい。なお、所定のデータは、第1種データ
として初期状態のメモリセルを利用して記憶されていてもよいし、第２種データとして可変状態のメモリセルを利用して記憶されていてもよい。
【０２７６】
秘密鍵記憶部５０８としては、前述した記憶用のメモリセルが用いられる。記憶用のメモリセルを用いる場合は、抵抗変化素子の初期状態と可変状態との違いでデータを記憶するため、通常の読み出し閾値のコマンドではデータを読み出すことができない。よって、鍵情報の隠蔽が行える。なお、秘密鍵記憶部５０８において、秘密鍵は、前述の暗号化秘密鍵として記憶されてもよい。
【０２７７】
また、メモリセルアレイ内の自由なアドレスにデータを記憶できる。よって、プローブを用いて物理的に抵抗値を直接読み出すような解析を行おうとしても、そのメモリセルがどのデータに対応しているか特定するのは困難である。更にディジタルＩＤデータで暗号化されたデータか、非暗号のデータかの区別も困難であるため、更に解析を複雑にせしめる。
【０２７８】
以上のように、図２９に示す通信システム５００は、秘密鍵の漏洩に対し強い耐タンパ性（tamper resistant）があるといえる。さらに、本開示のディジタルＩＤデータは、高温においてのデータ信頼性にも優れ、データ誤りが許容されない秘密鍵の記憶および暗号化にも最適である。
【０２７９】
秘密鍵記憶部５０８に記憶される秘密鍵は、ＩＣカード５０２の秘密鍵記憶部５２６に記憶されている秘密鍵と同じものとされてもよい。ＩＣカード５０２に対応するリーダライタ５０１であって、ＩＣカード５０２に固有のディジタルＩＤデータであるカードＩＤの読み出しを許可されたリーダライタ５０１のみに、予め秘密鍵が記憶されていてもよい。
【０２８０】
固有のディジタルＩＤデータは、本開示の実施の形態で説明したＰＵＦ技術に基づき固有ＩＤ記憶部５２５にデータ誤りを内在した状態で記憶されている。
【０２８１】
固有ディジタルＩＤデータは前述したようにＩＣカードごとに固有の乱数になりうる。このため、ＩＣカード固有の各種暗号化に用いることができる。
【０２８２】
（ＩＣカード側）
ＩＣカード５０２は、入出力インタフェース（Ｉ／Ｆ）部５２０と、ＣＰＵ５２１と、暗号処理回路５２２と、ＲＡＭ５２３と、不揮発性メモリ装置５３０とを有している。
【０２８３】
ＩＣカード５０２の入出力Ｉ／Ｆ部５２０は、外部との無線通信を行ってデータを送受信するためのインタフェースであり、たとえば無線通信回路として実現され得る。入出力Ｉ／Ｆ部５２０は、例えば、コイル状のアンテナとコンデンサにより構成されるＬＣ回路が一般的に用いられる。ＩＣカードのアンテナがリーダライタ５０１に近づけられると、リーダライタ５０１から輻射される所定の周波数の電磁波と共振するようになっている。また、入出力Ｉ／Ｆ部５２０は、アンテナにおいて交流磁界により励起された電流を整流化および安定化し、ＩＣカード５０２の各部に直流電源として供給する。
【０２８４】
入出力Ｉ／Ｆ部５２０は、アンテナを介して受信した変調波を検波して復調し、復調後のデータをデコードしてディジタルデータに復元しＣＰＵ５２１に供給する。また、デコードしたディジタルデータに周波数と位相をロック（ＰＬＬと呼ばれるクロック再生技術：装置内部に電圧可変のオシレータが搭載されており、入力されたディジタルデータにあわせて、位相誤差を検出および積分して制御用の電圧を生成し、オシレータの制御電圧として入力することで入力されたデータのサンプリング周波数を一致させ、かつ位相も固定したクロックを得る）させた受信用のクロック信号（図示せず）が発生され、ディジタルデータのデータラッチ用のクロック信号として供給される。
【０２８５】
さらに、入出力Ｉ／Ｆ部５２０は、所定の情報をリーダライタ５０１に送信する場合、ＣＰＵ５２１から入力されエンコードされたデータにしたがってアンテナの負荷に変動を発生させ変調し、アンテナを介してリーダライタ５０１に送信する。
【０２８６】
ＩＣカード５０２は本開示の不揮発性メモリ装置５３０を備える。不揮発性メモリ装置５３０は本実施形態の上述の不揮発性メモリ装置５１５に対応する。よって以下の説明では、共通する要素については同一の符号および名称を付して適宜参照する。なお、本応用例では、不揮発性メモリ装置５３０が不揮発性記憶装置としても機能する。
【０２８７】
不揮発性メモリ装置５３０は、ＩＣカードごとに固有のディジタルＩＤデータを記憶する固有ＩＤ記憶部５２５と、秘密鍵データを記憶する秘密鍵記憶部５２６と、ＣＰＵ５２１がプログラムを実行する上で必要なデータが記憶されたデータ記憶部５２７と、ＣＰＵ５２１が実行するプログラムが記憶されたＲＯＭ部５２８とを備える。それらの全てが１個のメモリセルアレイに包含されている。そして、ＣＰＵ５２１はＲＯＭ部５２８に記憶されているプログラムをＲＡＭ５２３にロードし、実行するなどして各種の処理を行う。ＲＯＭ部５２８に記憶されたプログラムデータは、固有ＩＤ記憶部にあるメモリセル群をもとに生成される本開示のディジタルＩＤデータを鍵として用いて暗号化されて記憶されても良い。
【０２８８】
ＣＰＵ５２１は、暗号処理回路５２２を制御することにより、予め定められた暗号アルゴリズムに基づいて、データの暗号化と復号化を行う。上述したように、典型的な暗号方式には、送信側と受信側で同じ秘密鍵で暗号化と復号化を行う共通鍵方式と、異なる公開鍵と秘密鍵で暗号化と復号化を行う公開鍵方式がある。以下の説明では、共通鍵方式を採用した場合について説明する。
【０２８９】
なお、公開鍵方式では、ＩＣカード側が暗号化した暗号文データをＩＣカード５０２がリーダライタ５０１側に送信する場合は、予めリーダライタ５０１側から入手した公開鍵で暗号化する。逆に、リーダライタ５０１側から送られてきた暗号文データは、ＩＣカード５０２側で予め記憶してある秘密鍵にて復号する。以上の点以外は、公開鍵方式も共通鍵方式と同様である。公開鍵方式における公開鍵と秘密鍵は、互いに唯一のペアの鍵であるため、互いに暗号化されたデータを復号することで同時に相互認証もできることになる。
【０２９０】
ＩＣカード５０２においても、カードリーダでの説明と同様に秘密鍵記憶部５２６へ記憶する鍵データは、本開示のＰＵＦ技術に基づき固有ＩＤ記憶部５２５にあるディジタルＩＤデータにより暗号化された暗号化秘密鍵または暗号化公開鍵として保存される。それらは、メモリセルにより記憶されうる。ＩＣカード５０２において、データの暗号化または復号化を行う場合、ＣＰＵ５２１が、不揮発性メモリ装置５３０内のメモリセル群の一部である秘密鍵記憶部５２６に記憶された暗号化秘密鍵データを、図３の閾値で読み出す特殊なリードコマンドにて読み出す。読み出された暗号化秘密鍵データは、本開示のディジタルＩＤデータにより復号化され元の秘密鍵データとする。ＣＰＵ５２１は、秘密鍵データを、暗号化または復号化すべきデータとともに、暗号処理回路５２２に供給する。暗号処理回路５２２は、供給された秘密鍵を用いて、供給されたデータの暗号化または復号化を実行する。
【０２９１】
データ記憶部５２７は、ＣＰＵ５２１がプログラムを実行する上で必要なデータが記憶されている。データ記憶部５２７において、所定のデータが平文のまま記憶されていてもよいし、秘密鍵で暗号化されて記憶されていてもよいし、ディジタルＩＤデータを鍵として暗号化されて記憶されてもよい。なお、所定のデータは、第１種データとして初期状態のメモリセルを利用して記憶されていてもよいし、第２種データとして可変状態のメモリセルを利用して記憶されていてもよい。
【０２９２】
このような暗号化と復号化の機能を備えた通信システム５００において、ＩＣカード５０２とリーダライタ５０１との通信の第１ステップについて以下に述べる。
【０２９３】
ＩＣカード５０２において各ＩＣカード固有のディジタルＩＤデータは、本実施の形態で説明したＰＵＦ技術に基づき固有ＩＤ記憶部５２５にデータ誤りを内在した状態で存在している。
【０２９４】
ＣＰＵ５２１は、各ＩＣカード固有のディジタルＩＤデータを固有ＩＤ記憶部５２５から読み出す。ＣＰＵ５２１は、読み出した暗号化秘密鍵データとディジタルＩＤデータを鍵として暗号処理回路５２２に供給する。暗号処理回路５２２は供給されたディジタルＩＤデータを鍵として暗号化秘密鍵を元の秘密鍵に復号化する。そして、今度は元の秘密鍵を用いてディジタルＩＤデータを暗号化する。暗号化された暗号化ディジタルＩＤデータは入出力Ｉ／Ｆ部５２０、５０４を介して、リーダライタ側のＣＰＵ５０５に供給される。
【０２９５】
ＣＰＵ５０５は、リーダライタ５０１内の不揮発性メモリ装置５１５の秘密鍵記憶部５０８から、秘密鍵データを読み出す。ＣＰＵ５０５は、秘密鍵データと、受信した暗号化ディジタルＩＤデータを、暗号処理回路５０６に供給する。暗号処理回路５０６は、供給された秘密鍵データを用いて、暗号化ディジタルＩＤデータを復号化する。復号化されたディジタルＩＤデータは固有ＩＤ記憶部５１１が記憶している各ＩＤデータと照合される。各ＩＤデータの中に復号化されたＩＤデータと一致するものがあれば、通信したＩＣカード５０２がデータ通信を行う資格のある正規のＩＣカード５０２であると認証される。そして、その後のデータ通信が継続して実行される。
【０２９６】
リーダライタ５０１とＩＣカード５０２との相互認証において別の変形例を示す。
【０２９７】
リーダライタ５０１の全ＩＣカード固有ＩＤ記憶部５４０は、前述した第１のディジタルデータと第２のディジタルデータとをＩＣカードごとに保管している。リーダライタ５０１は、受け取りたいディジタルＩＤデータのアドレスの読出し順序の組合せをチャレンジデータとして、ＩＣカード５０２に送信する。ＩＣカード５０２は受け取ったチャレンジデータにおけるディジタルＩＤデータのアドレス順序にしたがい、前述の第１のディジタルデータと変形第２のディジタルデータとの排他的論理和を行う組合せを変更し、レスポンスデータとしてリーダライタ５０１に返信する。
【０２９８】
リーダライタ５０１は、予め登録されている第１のディジタルデータと第２のディジタルデータとから演算により、期待されるレスポンスデータを求め、ＩＣカードから返信されるレスポンスデータと一致するかの照合を行い、所定のビット数以上が一致していることを確認してＩＣカードを認証する。
【０２９９】
レスポンスデータであるディジタルＩＤデータには、前述したような誤りデータを含んだ状態で送られるため、ハッキングに対して耐性が高い。ディジタルＩＤデータは、各ＩＣカードで異なる乱数でありデータ間に十分なハミング距離があれば所定のビット数の誤りデータがあったとしても何れのＩＣカードのＩＤデータかを特定することができる。このため、チャレンジデータの送信と、レスポンスデータの受信を繰り返すことで、ＩＣカードが正規のカードであることを特定できる。さらに認証に用いられているデータがＩＣカードごとに固有かつ誤りのあるデータであるためデータの解析が困難であり非常に高いセキュリティーが担保された認証が実現できる。
【０３００】
以上のように、通信システム５００によれば、固有ディジタルＩＤデータ生成、秘密鍵記憶、データ記憶、プログラムデータ記憶の機能を、ただ一つの不揮発性メモリ装置で実現できる。別途ＰＵＦ技術に基づくＩＤ生成用の回路を搭載する必要がなく、回路規模の増加を極力抑制したＩＣカードのようなモバイル型アプリケーションが提供できる。
【０３０１】
ＲＡＭ５０３の機能を不揮発性メモリ装置５１５が備えるメモリセルアレイで実現してもよい。ＲＡＭ５２３の機能を不揮発性メモリ装置５３０が備えるメモリセルアレイで実現してもよい。
【０３０２】
各種データは任意のアドレスの不揮発性メモリセルに保存できるため、どのエリアのメモリセルが何れの状態で情報が記憶されているかを第三者に対し秘匿することができる。さらに、物理的なプローブを用いてメモリ内のデータを直接読み出すようなハッキングからもディジタルＩＤデータを防衛でき、極めて耐タンパ性の優れたアプリケーションが提供できる。
【０３０３】
なお、ディジタルＩＤデータを暗号鍵として用いて暗号化されたデータ（暗号化データ）が、ＩＣカード５０２に記憶されることは必須ではない。たとえば、リーダライタ５０１が暗号化データを読み取り、リーダライタ５０１のデータ記憶部５０９が暗号化データを記憶してもよい。さらにリーダライタ５０１が暗号化データを外部に設けられたサーバ（図示せず）に送信し、そのサーバの記憶装置が記憶してもよい。暗号化データがＩＣカード５０２に記憶されていない場合には、復号化の手順は以下のとおりである。すなわち、ＩＣカード５０２のＣＰＵ５２１は、入出力Ｉ／Ｆ部５２０を介して外部に記憶されている暗号化データを受信する。またＣＰＵ５２１は、各ＩＣカード固有のディジタルＩＤデータを固有ＩＤ記憶部５２５から生成する。その後、暗号処理回路５２２が、ディジタルＩＤデータを復号鍵として用いて当該暗号化データを復号化する。
【０３０４】
上記説明から、当業者にとっては、本開示の多くの改良および他の実施形態が明らかである。従って、上記説明は、例示としてのみ解釈されるべきであり、本開示を具体化する最良の態様を当業者に教示する目的で提供されたものである。本開示の精神を逸脱することなく、その構造および／又は機能の詳細を実質的に変更できる。
【産業上の利用可能性】
【０３０５】
本開示にかかる不揮発性メモリ装置は、メモリ装置内部に含まれる抵抗変化型メモリ素子の抵抗値のばらつきから、複製できない固有のディジタルＩＤデータを安定かつ高セキュアに生成する。本開示の技術は、ディジタルＩＤデータを用いたデータ暗号技術の分野、ホストコンピュータ及びサーバーに認証を伴うアクセスを行うＩＣやＳｏＣなどの技術分野等において特に有用である。
【符号の説明】
【０３０６】
１０  不揮発メモリ装置
１１  読み出し回路
１４  書き込み回路
１５  制御回路
１６  アドレス制御回路
１７  カラムデコーダ回路
１８  ロウデコーダ回路
２０  メモリセルアレイ
２１  メモリセル
２２  メモリ本体部
２５  中央値検出回路
４００  誤り訂正およびヘルパーデータ生成回路
４０１  乱数生成回路
４０２  ＩＤデータ制御回路
【図１】
0006617924.tif 000002
【図２】
0006617924.tif 000003
【図３】
0006617924.tif 000004
【図４】
0006617924.tif 000005
【図５】
0006617924.tif 000006
【図６】
0006617924.tif 000007
【図７】
0006617924.tif 000008
【図８】
0006617924.tif 000009
【図９】
0006617924.tif 000010
【図１０Ａ】
0006617924.tif 000011
【図１０Ｂ】
0006617924.tif 000012
【図１１】
0006617924.tif 000013
【図１２】
0006617924.tif 000014
【図１３】
0006617924.tif 000015
【図１４】
0006617924.tif 000016
【図１５】
0006617924.tif 000017
【図１６】
0006617924.tif 000018
【図１７】
0006617924.tif 000019
【図１８】
0006617924.tif 000020
【図１９】
0006617924.tif 000021
【図２０Ａ】
0006617924.tif 000022
【図２０Ｂ】
0006617924.tif 000023
【図２１】
0006617924.tif 000024
【図２２】
0006617924.tif 000025
【図２３】
0006617924.tif 000026
【図２４Ａ】
0006617924.tif 000027
【図２４Ｂ】
0006617924.tif 000028
【図２５】
0006617924.tif 000029
【図２６】
0006617924.tif 000030
【図２７】
0006617924.tif 000031
【図２８Ａ】
0006617924.tif 000032
【図２８Ｂ】
0006617924.tif 000033
【図２９】
0006617924.tif 000034