JP2016105278A - 耐タンパ性を有する不揮発性メモリ装置、および集積回路カード - Google Patents

耐タンパ性を有する不揮発性メモリ装置、および集積回路カード Download PDF

Info

Publication number
JP2016105278A
JP2016105278A JP2015226862A JP2015226862A JP2016105278A JP 2016105278 A JP2016105278 A JP 2016105278A JP 2015226862 A JP2015226862 A JP 2015226862A JP 2015226862 A JP2015226862 A JP 2015226862A JP 2016105278 A JP2016105278 A JP 2016105278A
Authority
JP
Japan
Prior art keywords
data
resistance value
circuit
digital data
resistance
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2015226862A
Other languages
English (en)
Other versions
JP6532024B2 (ja
Inventor
裕平 吉本
Yuhei Yoshimoto
裕平 吉本
佳一 加藤
Keiichi Kato
佳一 加藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Intellectual Property Management Co Ltd
Original Assignee
Panasonic Intellectual Property Management Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Intellectual Property Management Co Ltd filed Critical Panasonic Intellectual Property Management Co Ltd
Publication of JP2016105278A publication Critical patent/JP2016105278A/ja
Application granted granted Critical
Publication of JP6532024B2 publication Critical patent/JP6532024B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/004Reading or sensing circuits or methods
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0007Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising metal oxide memory material, e.g. perovskites
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0059Security or protection circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/20Initialising; Data preset; Chip identification
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/004Reading or sensing circuits or methods
    • G11C2013/0054Read is performed on a reference element, e.g. cell, and the reference sensed value is used to compare the sensed value of the selected cell
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • G11C2013/0073Write using bi-directional cell biasing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • G11C2013/0083Write to perform initialising, forming process, electro forming or conditioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Chemical & Material Sciences (AREA)
  • Materials Engineering (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Semiconductor Memories (AREA)

Abstract

【課題】セキュリティー性により優れたディジタルIDデータを生成するためのPUF(物理的複製困難関数)技術を提供する。【解決手段】不揮発性メモリ装置10は、電気的信号の印加に応じ抵抗値が複数の抵抗値範囲間を不揮発的かつ可逆的に遷移する性質を有する複数のメモリセルがアレイ状に配置されたメモリセルアレイ20と、各々が複数のメモリセルの1つの抵抗値に関する複数の抵抗値情報を取得する読み出し回路11と、複数の抵抗値情報の少なくとも一部に基づき2値化基準値(中央値)を算出する演算回路25と、データ調整回路5とを備える。読み出し回路は、2値化基準値に基づき、前記複数の抵抗値情報の各々に対して0または1を割り当てて、0および1のディジタルデータの少なくとも1つを含む複数のディジタルデータを生成し、データ調整回路は、0および1のディジタルデータの個数差に応じて2値化基準値の調整の要否を決定する。【選択図】図39

Description

本開示は、抵抗変化型の不揮発性メモリセルを複数有し、かつ耐タンパ性を有する不揮発性メモリ装置に関する。
ネットバンキングまたはネットショッピングなど、インターネットを介して行われる電子商取引サービスの市場は急速に拡大している。このときの決済方法として電子マネーが用いられ、その媒体として利用されるIC(“Integrated Circuit”、以下同じ。)カードおよびスマートフォン端末も同様に利用が拡大している。これらのサービスには、決済時の安全性のため、通信における相互認証および通信データの暗号化にあたって常により高いレベルのセキュリティー技術が求められる。
ソフトウェア技術に関しては、高度な暗号化アルゴリズムを中心としたプログラム処理の暗号化技術が蓄積されており、十分なセキュリティーが達成されている。しかし、技術進歩により、回路内部の情報を外部から直接読み取られる懸念が急速に高まっている。
特許文献1は、このような懸念への対応策を提案している。一般的にはセキュリティーを強化した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)技術が提案されている。PUF技術は、製造ばらつきを活用してICごとに異なるユニークな個体識別情報を生成する技術である。以降、本明細書ではPUF技術により生成された個体識別情報を「ディジタルIDデータ」と呼ぶ。ディジタルIDデータはICの物理特性のばらつきに関連づけられた各デバイス固有の乱数データであると言える。ICごとにその物理特性を人為的な制御することが不可能であるため、物理的な複製が不可能なデータを生成することができる。
なお、物理特性のばらつきの制御がある程度可能であったとしても、製造時に発生するランダムな工程ばらつきを利用する場合は、各ICに固有でユニークなディジタルIDデータをPUF技術により作成するのは容易である。しかしながら、事前に決定した特定の個体識別情報を故意に作成することは、実際上は極めて困難である。半導体プロセスにおいて様々な物理特性に製造ばらつきが生じる。製造ばらつきとして、例えば、半導体プロセスにおけるドーピング量、酸化物厚さ、チャネル長、金属配線層の幅および厚さ、寄生抵抗ならびに寄生容量などが挙げられる。
具体的な先行例として、特許文献2や非特許文献1のようなSRAM PUFが例示され得る。これらの例では、SRAMにおける各メモリセルにおいて、主にトランジスタのVtばらつき(動作電圧のばらつき)により電源投入時の初期値のディジタルデータが1状態になりやすいか、0状態になりやすいかが異なる現象を用いている。これは、各ICに搭載されたSRAMのセルごとに固有であり、異なっている。つまり、SRAMに電源投入したときの初期値データがディジタルIDデータとして用いられる。
特許文献3は、SRAM−PUFの変形例であり、SRAMのメモリセルの不良ビットがランダムに発生する現象を用いている。更に、特許文献1や非特許文献2では、アービター(Arbiter)PUFまたはグリッジPUFと呼ばれるPUF技術が紹介されている。アービターPUFおよびグリッジPUFでは、ゲート遅延または配線遅延をもちいて組み合わせ回路の出力が入力に対してランダムに変化することを用いている。製造ばらつきによって変化するゲート遅延または配線遅延は、各ICにおける固有の遅延量となる。従って、ICごとに異なるものの各ICにおいては入力に対して、ほぼ等しい結果を出力するため、ディジタルIDデータを生成できる。
このように、PUF技術により、各IC固有の乱数となるディジタルIDデータが複製できないデータとして生成される。このディジタルIDデータは、前述した秘密鍵を暗号化するデバイス鍵として用いられる。デバイス鍵(ディジタルIDデータ)によって暗号化された秘密鍵は、暗号化された状態で不揮発性メモリに保存される。すなわち、不揮発性メモリに記録された暗号化秘密鍵はデバイス鍵でしか元の秘密鍵データに復号できない。よって、ハッキングにより不揮発性メモリ内のデータが全てハードコピーされたとしても、各IC固有のデバイス鍵(ディジタルIDデータ)が複製できないため暗号化秘密鍵が元に戻せず利用することができない。
更に、PUF技術により生成されるディジタルIDデータは、僅かな製造ばらつきを用いて生成されるため、生成するときの温度環境または電源状態、更には経年劣化などにより、利用する物理特性に変動が生じ、得られるデータに誤りが発生し得る。このため非特許文献1に示されるように、製造時の検査工程にてPUF技術によって生成されるディジタルIDデータを元に、誤り訂正用のパリティーデータを演算し、パリティーデータを別途不揮発メモリなどに保存しておく。そして、システムがディジタルIDデータを利用するときに、PUF技術によって生成した誤りを含んだディジタルIDデータはパリティーデータを用いて誤り訂正処理を実行することで、常に同じIDデータを得る。
このように誤りを含んだデータであるためデータの訂正を行うといった非効率な技術に思えるが、このことがもう一つの重要な特徴となる。ディジタルIDデータがPUF技術により生成しなおされるたびに、不規則にデータに誤りが生じるため、前述したサイドチャンネルアタックのようなハッキング攻撃を受けたとしてもデータパターンが定まらず解析を非常に困難にさせ、セキュリティー性を大きく向上させる。
このようにPUF技術は、暗号および相互認証を安全に行う上でセキュリティーを高める重要な技術である。
国際公開WO2012/014291号公報 特表2013−545340号公報 特開2012−43517号公報
前述のようにPUF技術はICのセキュリティー性を高める重要な技術である。しかしながら、セキュリティー性のさらなる向上が求められていた。
本願の、限定的ではない例示的なある実施形態は、セキュリティー性により優れたディジタルIDデータを生成するためのPUF技術を提供する。
本開示の一態様にかかる不揮発性メモリ装置は、可変状態では、異なる複数の電気的信号の印加に応じて抵抗値が複数の抵抗値範囲の間を不揮発的かつ可逆的に遷移する性質を有する複数のメモリセルがアレイ状に配置されたメモリセルアレイと、各々が前記複数のメモリセルの1つの前記抵抗値に関する複数の抵抗値情報を取得する読み出し回路と、前記複数の抵抗値情報の少なくとも一部に基づいて2値化基準値を算出する演算回路と、データ調整回路と、を備え、前記読み出し回路は、前記2値化基準値に基づいて、前記複数の抵抗値情報の各々に対して0または1を割り当てることにより、0のディジタルデータおよび1のディジタルデータの少なくとも1つを含む複数のディジタルデータを生成し、前記データ調整回路は、前記複数のディジタルデータにおける前記0のディジタルデータおよび前記1のディジタルデータの個数差に応じて、前記2値化基準値の調整の要否を決定する。
また、本開示の他の一態様にかかる不揮発性メモリ装置は、可変状態では、異なる複数の電気的信号の印加に応じて抵抗値が複数の抵抗値範囲の間を不揮発的かつ可逆的に遷移する性質を有する複数のメモリセルがアレイ状に配置されたメモリセルアレイと、前記複数のメモリセルの少なくとも一部の各々の前記抵抗値に関する複数の抵抗値情報を取得する読み出し回路と、前記読み出し回路によって取得された前記複数の抵抗値情報に基づいて2値化基準値を算出する演算回路と、データ調整回路と、を備え、前記読み出し回路は、前記2値化基準値に基づいて、前記複数の抵抗値情報の各々、および前記複数のメモリセルの前記少なくとも一部と異なる一部の各々の前記抵抗値に関する複数の抵抗値情報の各々の少なくとも一方に対して0または1を割り当てることにより、0のディジタルデータおよび1のディジタルデータの少なくとも1つを含む複数のディジタルデータを生成し、前記抵抗値は時間の経過とともに変動する性質を有し、前記データ調整回路は、前記複数のディジタルデータにおける前記0のディジタルデータおよび前記1のディジタルデータの個数差に応じて、前記読み出し回路による前記抵抗値情報の取得および前記複数のディジタルデータの生成を再度実行する否かを決定する。
上述の態様は、システム、方法およびコンピュータプログラムを用いて実装され、またはシステム、方法およびコンピュータプログラムの組み合わせを用いて実現され得る。
本開示による例示的な不揮発性メモリ装置は、ICに混載されてデータを保存する複数のメモリセルを有している。このメモリセルを用いて、個体識別情報となるディジタルIDデータを生成することができるため、面積のオーバーヘッドが発生しない。ディジタルIDデータは安全かつ安定的に生成され、かつ複製が極めて困難であるため、近年大きな脅威となっているサイドチャンネル攻撃に対しても強い耐性を持つPUF技術を提供できる。
本開示にかかる不揮発性メモリ装置を用いることにより、不揮発性メモリ装置が搭載されるSoC及びマイコンでの個体識別のためのディジタルデータのビット長を容易に多ビット化することができる。さらに、メモリセルの抵抗値とディジタルデータとの関係を予測させることなく、チップの複製を困難たらしめ、セキュリティーを強化できる。
図1は、本開示の実施形態にかかる抵抗変化型不揮発性メモリ装置100の概略構成の一例を示すブロック図である。 図2は、本開示の実施形態にかかる抵抗変化型不揮発性メモリ装置100が備えるメモリセルの概略構成の一例を示す断面図である。 図3は、本開示の実施形態にかかる抵抗変化型不揮発性メモリ装置が備えるメモリセルの抵抗値範囲の一例を示すグラフである。 図4は、可変状態にあるバイポーラ型抵抗変化素子の特性の一例を示す図である。 図5は、先行技術文献に開示されている、可変状態にあるユニポーラ型抵抗変化素子の特性の一例を示す模式図である。 図6は、ディジタルIDセット状態の規格化抵抗値情報と、そのメモリセルのばらつきについての標準正規分布の偏差との関係をプロットした図である。 図7は、ディジタルIDセット状態に推移させるときに様々な電圧パルス条件で推移させたときのばらつき分布を示す図である。 図8は、フィラメントの発生数が抵抗変化素子ごとに異なることを示す図である。 図9は、本開示の実施形態において同一の可変抵抗値範囲にあるメモリセルから連続して抵抗値を読み出した例を示す図である。 図10Aは、パーコレーションモデル(percolation model)を用いて、フォーミング時における抵抗変化層(例えば局所領域)中のフィラメントの形成をシミュレートした結果の一例を示す図である。 図10Bは、パーコレーションモデル(percolation model)を用いて、フォーミング時における抵抗変化層(例えば局所領域)中のフィラメントの形成をシミュレートした結果の一例を示す図である。 図11は、図3に示すようなディジタルIDセット状態に書き込まれた所定のビット数のメモリセル群の抵抗値を放置時間ごとに読み出したときのばらつき範囲と抵抗中央値を示す図である。 図12は、書き込まれたディジタルIDデータを図11に示したような初期の抵抗中央値で抽出したときにおける、エラーレートと放置時間との関係を示す図である。 図13は、ディジタルIDデータを生成し、不揮発性メモリ装置10に書き込む処理フローの一例を示すフローチャートである。 図14は、ディジタルIDデータを再生する処理フローの一例を示すフローチャートである。 図15は、ディジタルIDデータの例を示す図である。 図16は、誤り訂正前のデータ誤り率の推移を示す図である。 図17は、読み出し回数と累積エラーレートとの関係を示す図である。 図18は、本開示の不揮発メモリ装置の具体的な構成例を示すブロック図である。 図19は、本開示の不揮発性メモリ装置10が備える読み出し回路11の構成例を示す回路図である。 図20Aは、選択されたメモリセルを放電方式にて読み出す場合のタイミングチャートである。 図20Bは、選択されたメモリセルを充電方式にて読み出す場合のタイミングチャートである。 図21は、本開示の不揮発性メモリ装置10が備える中央値検出回路25の構成例を示す図である。 図22は、中央値検出回路25の一変形例を示す図である。 図23は、中央値検出回路25が実際に抵抗中央値を算出した結果を示す図である。 図24は、中央値検出回路25の変形例の一例を示すブロック図である。 図25は、本開示の実施形態の変形例を示すブロック図である。 図26は、メモリセルの規格化メモリセル電流と、本開示の読み出し回路で読み出した抵抗値情報の関係を示す図である。 図27は、本開示の不揮発メモリ装置の具体的な構成例を示すブロック図である。 図28は、ディジタルIDデータを生成する動作の一例を示すフローチャートである。 図29は、フォーミング処理の一例を示すフローチャートである。 図30は、判定値算出処理の一例を示すフローチャートである。 図31は、マスクデータを生成する処理の一例を示すフローチャートである。 図32は、追加パルスを印加する処理の一例を示すフローチャートである。 図33は、ディジタルIDデータを生成する動作の一例を示すフローチャートである。 図34は、セル電流の累積確率分布の一例を示す図である。 図35は、セル電流の累積確率分布の一例を示す図である。 図36は、エラーレートと読み出し回数の関係の一例を示す図である。 図37は、エラーレートと読み出し回数の関係の一例を示す図である。 図38Aは、交互パルス印加回数と一定時間経過後のエラーレートの関係の一例を示す図である。 図38Bは、図38Aの領域A1を拡大して、交互パルス印加回数と一定時間経過後のエラーレートの関係の一例を示す図である。 図39は、本開示の不揮発メモリ装置の具体的な構成例を示すブロック図である。 図40は、中央値検出回路の一例を示すブロック図である。 図41は、データ調整回路の一例を示すブロック図である。 図42は、個数差累積回路の一例を示すブロック図である。 図43は、0と1の個数差を調整する処理の一例を示すフローチャートである。 図44は、0と1の個数差を調整する処理の一例を示すフローチャートである。 図45は、書込みアルゴリズムの効果について説明する図である。 図46は、書込みアルゴリズムの効果について説明する図である。 図47は、書込みアルゴリズムの効果について説明する図である。 図48は、本開示の応用例にかかる通信システム500の構成例を示すブロック図である。
以下、添付の図面を参照しながら、本開示にかかる不揮発性メモリ装置等の実施形態を説明する。本開示にかかる不揮発性メモリ装置は少なくとも1つ以上の閾値で抵抗値を判別することによりデータを記憶する抵抗変化型の不揮発性メモリセルを複数有している。
不揮発性メモリ装置は、たとえば、個体識別情報を生成する機能を備えている。不揮発性メモリ装置では、生成した個体識別情報をもとに、データの暗号化・復号化が行われるとともに、相互間の認証も行われ得る。より具体的には、本開示にかかる不揮発性メモリ装置は、抵抗変化メモリ素子の内容を読み出し、少なくとも部分的にその内容からディジタル識別子を導出する個体識別情報用にチップごとにユニークな固有の乱数データを生成する機能を備えている。これにより、電気的、物理的な複製を妨げることが可能になる。
不揮発性メモリ装置は、たとえばモバイル型電子マネーで利用されるICチップを搭載したカードに搭載され得る。ICチップには、他に論理回路、揮発性メモリ装置、およびマイクロプロセッサーを具備する。これらを用いて暗号化機能、ディジタル署名、およびディジタル認証機能などの各種情報セキュリティー機能を実現する。これらの機能が実行されるときには秘密鍵によるデータ暗号が用いられる。集積回路(IC)カード内においても前述したように秘密鍵を複製できないように安全に保管することが望ましい。
(発明者らによる検討)
上述の秘密鍵の保管を実現するために前述のPUF技術が用いられる。PUF技術で得られた個体識別情報である乱数のディジタルIDデータをデバイス暗号鍵として、秘密鍵を暗号化して不揮発性メモリに保存する。ディジタルIDデータは、各ICで異なる乱数であるため、それを用いて暗号化されたデータも各ICで固有のデータ列となる。暗号化された秘密鍵がハッキングなどにより別のICにコピーされたとしても複製できないディジタルIDデータがコピーされないので、もとの秘密鍵を不正利用されることがない。
しかしながら、ICカードのような超小型機器には、PUF技術を具現化したディジタルIDデータ生成のための回路も高度に小型化することが要求される。特に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技術の特徴は、主に次の3点にまとめられると考えられる。
特徴(1):複製できない物理的な現象から固有のディジタルIDデータ(個体識別情報)を得る。
特徴(2):物理的な現象は動的な回路制御によってのみ得られ、プローブによる直接的な読み取りといった静的な解析によっては必要とされる物理的な現象を得ることはできない。
特徴(3):得られたディジタルIDデータには誤りがあり、誤り訂正回路によってのみ真のIDデータが得られる。
さらに本願発明者らは、PUF技術によって得られるディジタルIDデータに求められる主な性能を以下のようにまとめた。
性能(1):ディジタルIDデータに含まれる誤り箇所はランダムに変化し、真のIDデータの予測が困難である。
性能(2):PUF技術によって得られるディジタルIDデータは高い乱数性がありICごとにユニークな固有データとなる。
性能(3):PUF技術を採用するとしても、そのために付加すべき回路のオーバーヘッドが小さく、ディジタルIDデータを生成する際の消費電力が小さい。
性能(4):各データビットを生成する生成回路の並列処理数を多くすることで、サイドチャンネル攻撃への耐性がある。
性能(5):データの誤り率が小さく、誤り訂正回路の回路規模を小さくできる。
性能(6):ディジタルIDデータを生成するタイミングに制約が少なく生成速度が高速である。
上述の特徴及び性能に対し、従来例として知られているSRAM−PUFでは、性能(6)に大きな制約がある。SRAM−PUFは原理上、電源の投入時にしか得られない。IC内部のSRAMは、データキャッシュとして利用するため、PUFによるIDデータ生成ときには一旦SRAM内のデータを退避するか、破棄しなければならずシステム動作上に大きな制約が発生する。また、この対策として任意のタイミングで生成するようにするためには非特許文献1のようにPUF専用のセルを別途設ける必要があり回路のオーバーヘッドが増加するような性能(5)の要件を著しく低下させる。
更にSRAMを用いたPUFの場合、データ誤りを起こすセルは同一となる傾向がある。つまり、動作が安定なセルと不安定なセルが決まっているため誤りを含んだディジタルIDデータのパターンが限られる問題があり、真のディジタルIDデータが予測しやすいという課題がある。また、アービターPUFでは、生成タイミングの制約、回路規模、および生成速度などの課題はクリアしているものの、配線遅延およびゲート遅延などのばらつきが大きくないことから、IDデータのユニーク性が乏しい。また、非特許文献2において指摘されているように、データ誤り率も15%と非常に大きいため誤り訂正回路の規模増加が大きな課題となる。
(発明者らが得た知見)
本願発明者らは、以上のような課題を解決できる可能性のある新規なディジタルIDデータ生成方法を鋭意検討した。その結果、本願発明者らは、抵抗変化素子の書き込まれた抵抗値が正規分布にばらつく現象を見出し、抵抗値のばらつきから安定的なディジタルIDデータを生成することに想到した。
本開示の限定的ではない例示的な実施形態は、セキュリティー性において、より優れたディジタルIDデータを生成するためのPUF技術を提供する。
抵抗変化型のメモリ素子は、少なくとも第1の抵抗値状態と、第1の抵抗値状態よりも抵抗値の小さい第2の抵抗値状態とを所定の電圧・極性・幅の電気的なパルス印加により変化する。通常は第1の抵抗値状態と第2の抵抗値状態とにディジタルデータ(たとえば「0」と「1」)を割り当て、情報として保存する。
ここで本願発明者らは、上述の第1の抵抗値状態、第2の抵抗値状態、更に後述する初期状態の何れか1つの状態に属するセル群に着目し、そのセル群に含まれる各セルをその抵抗値に応じて2つに分類した。つまり、そのセル群に含まれる各セルを2値化(ディジタルデータ化)した。各セルの抵抗値はばらついており、そのばらつきを利用して各セルをディジタルデータに変換することで、より安全で安定な暗号技術等に応用可能な、従来にないディジタルIDデータの生成方法を提供することが可能となった。これが本願発明者らによって得られた知見の一つである。
また、ディジタルIDデータの生成を行う多くの回路要素を、通常の不揮発性メモリ装置として搭載される回路と共通化することが可能となる。そのため、ディジタルIDデータの生成のために増加する回路規模を大きく抑制することができ高度に小型化し得る。
さらに、不揮発性メモリ装置のデータ読み出しはメモリアレイの構造上、データを並列処理で複数読み出すため、ディジタルIDデータの生成スピードも飛躍的に高められる。同時に、サイドチャンネル攻撃においても並列処理により輻射電磁波が並列数の総和で与えられるため攻撃に対する耐性を高められ得る。
本願発明者らによる知見に基づいて、本開示の一態様の概要は以下のとおりである。
(項目1)本開示の一態様である不揮発性メモリ装置は、可変状態では、異なる複数の電気的信号の印加に応じて抵抗値が複数の抵抗値範囲の間を不揮発的かつ可逆的に遷移する性質を有する複数のメモリセルがアレイ状に配置されたメモリセルアレイと、各々が前記複数のメモリセルの1つの前記抵抗値に関する複数の抵抗値情報を取得する読み出し回路と、前記複数の抵抗値情報の少なくとも一部に基づいて2値化基準値を算出する演算回路と、データ調整回路と、を備え、前記読み出し回路は、前記2値化基準値に基づいて、前記複数の抵抗値情報の各々に対して0または1を割り当てることにより、0のディジタルデータおよび1のディジタルデータの少なくとも1つを含む複数のディジタルデータを生成し、前記データ調整回路は、前記複数のディジタルデータにおける前記0のディジタルデータおよび前記1のディジタルデータの個数差に応じて、前記2値化基準値の調整の要否を決定する。
(項目2)例えば、上述の項目1に記載の不揮発性メモリ装置において、前記複数の抵抗値範囲は、第1抵抗値範囲、および前記第1抵抗値範囲より抵抗値が低い第2抵抗値範囲を含み、前記複数のメモリセルの各々は、初期状態では、前記抵抗値が前記第1および第2抵抗値範囲のいずれとも異なる初期抵抗値範囲にあり、前記複数のメモリセルの各々は、電気的ストレスが印加されることにより、前記初期状態から前記可変状態に変化し、前記複数のメモリセルの各々は、前記可変状態では、第1極性の電圧パルスが印加されることによって、前記抵抗値が前記第2抵抗値範囲から前記第1抵抗値範囲に遷移し、第2極性の電圧パルスが印加されることによって、前記抵抗値が前記第1抵抗値範囲から前記第2抵抗値範囲に遷移し、前記演算回路は、前記電気的ストレスの印加後に、前記2値化基準値を算出してもよい。
(項目3)例えば、上述の項目2に記載の不揮発性メモリ装置において、前記電気的ストレスの印加に相当する第1の書き込み動作を行う書き込み回路をさらに備え、前記第1の書き込み動作は、前記初期状態の前記複数のメモリセルの各々に対して、前記第1極性の第1電圧パルスと前記第2極性の第2電圧パルスとを交互に印加する書込み動作であり、前記読み出し回路は、前記第1の書き込み動作を行った前記複数のメモリセルの各々の前記抵抗値情報を読み出し、読み出した前記抵抗値情報に基づき、前記第1の書き込み動作を行った前記複数のメモリセルの各々の前記抵抗値が前記第2抵抗値範囲にあるか否かを判定し、前記書き込み回路および前記読み出し回路は、前記第1の書き込み動作を行った前記複数のメモリセルの各々の前記抵抗値が前記第2抵抗値範囲にあると判定されるまで、前記第1の書き込み動作および前記抵抗値情報の読み出しを繰り返してもよい。
(項目4)例えば、上述の項目1から3のいずれかに記載の不揮発性メモリ装置において、前記データ調整回路は、前記複数の前記ディジタルデータにおける前記0のディジタルデータおよび前記1のディジタルデータの個数差を累積して出力する累積回路と、前記複数のメモリセルのうち第2の書き込み動作を実行するメモリセルと前記第2の書き込み動作を実行しないメモリセルとの区別に用いるマスクデータを保持するマスクデータレジスタと、前記累積回路の出力に応じて、前記マスクデータを前記マスクデータレジスタに保持させるか、前記演算回路に前記2値化基準値の値を調整させるかを選択するマスクデータ調整回路と、を備えてもよい。
(項目5)例えば、上述の項目4に記載の不揮発性メモリ装置において、前記累積回路は、第1レジスタと第2レジスタとを備え、前記複数のメモリセルの前記少なくとも一部は、前記複数のメモリセルの第1部分および第2部分を含み、前記読み出し回路は、前記複数のメモリセルの前記第1部分の各々について、第1の複数のディジタルデータを生成し、前記複数のメモリセルの前記第2部分の各々について、第2の複数のディジタルデータを生成し、前記データ調整回路は、前記第1の複数のディジタルデータにおける前記0のディジタルデータおよび前記1のディジタルデータの第1個数差を前記第1レジスタに保持させ、前記第1個数差、および前記第2の複数のディジタルデータにおける前記0のディジタルデータおよび前記1のディジタルデータの第2個数差を累積して第2レジスタに保持させ、前記第1個数差と前記第2個数差の和の絶対値が所定の値を上回った場合、前記データ調整回路は前記第1レジスタに保持された前記第1個数差の値をリセットし、前記演算回路は前記2値化基準値を調整してもよい。
(項目6)例えば、上述の項目4または5に記載の不揮発性メモリ装置において、前記調整された前記2値化基準値を用いて生成された前記複数のディジタルデータにおける、前記0のディジタルデータおよび前記1のディジタルデータのうち何れか一方に対応したメモリセルに対して、前記第2の書込み動作を行う書き込み回路をさらに備え、前記第2の書込み動作は、第1極性の第3電圧パルスと第2極性の第4電圧パルスとを交互に印加する動作であってもよい。
(項目7)例えば、上述の項目6に記載の不揮発性メモリ装置において、前記書き込み回路は、前記マスクデータレジスタに保持された前記マスクデータに基づき、前記第2の書込み動作を実行するメモリセルに対して前記第2の書込み動作を行ってもよい。
(項目8)例えば、上述の項目6または7に記載の不揮発性メモリ装置において、前記第2の書込み動作は、検査時の1回のみ実行されてもよい。
(項目9)例えば、上述の項目3に記載の不揮発性メモリ装置において、前記第1の書込み動作は、検査時の1回のみ実行されてもよい。
(項目10)本開示の他の一態様である不揮発性メモリ装置は、可変状態では、異なる複数の電気的信号の印加に応じて抵抗値が複数の抵抗値範囲の間を不揮発的かつ可逆的に遷移する性質を有する複数のメモリセルがアレイ状に配置されたメモリセルアレイと、各々が前記複数のメモリセルの1つの前記抵抗値に関する複数の抵抗値情報を取得する読み出し回路と、前記複数の抵抗値情報の少なくとも一部に基づいて2値化基準値を算出する演算回路と、データ調整回路と、を備え、前記読み出し回路は、前記2値化基準値に基づいて、前記複数の抵抗値情報の各々に対して0または1を割り当てることにより、0のディジタルデータおよび1のディジタルデータの少なくとも1つを含む複数のディジタルデータを生成し、前記抵抗値は時間の経過とともに変動する性質を有し、前記データ調整回路は、前記複数のディジタルデータにおける前記0のディジタルデータおよび前記1のディジタルデータの個数差に応じて、前記読み出し回路による前記抵抗値情報の取得および前記複数のディジタルデータの生成を再度実行する否かを決定する。
(項目11)例えば、上述の項目10に記載の不揮発性メモリ装置において、前記複数の抵抗値範囲は、第1抵抗値範囲、および前記第1抵抗値範囲より抵抗値が低い第2抵抗値範囲を含み、前記複数のメモリセルの各々は、初期状態では、前記抵抗値が前記第1および第2抵抗値範囲のいずれとも異なる初期抵抗値範囲にあり、前記複数のメモリセルの各々は、電気的ストレスが印加されることにより、前記初期状態から前記可変状態に変化し、前記複数のメモリセルの各々は、前記可変状態では、第1極性の電圧パルスが印加されることによって、前記抵抗値が前記第2抵抗値範囲から前記第1抵抗値範囲に遷移し、第2極性の電圧パルスが印加されることによって、前記抵抗値が前記第1抵抗値範囲から前記第2抵抗値範囲に遷移し、前記演算回路は、前記電気的ストレスの印加後に、前記2値化基準値を算出してもよい。
(項目12)例えば、上述の項目11に記載の不揮発性メモリ装置において、前記電気的ストレスの印加に相当する第1の書き込み動作を行う書き込み回路をさらに備え、前記第1の書き込み動作は、前記初期状態の前記複数のメモリセルの各々に対して、前記第1極性の第1電圧パルスと前記第2極性の第2電圧パルスとを交互に印加する書込み動作であり、前記読み出し回路は、前記第1の書き込み動作を行った前記複数のメモリセルの各々の前記抵抗値情報を読み出し、読み出した前記抵抗値情報に基づき、前記第1の書き込み動作を行った前記複数のメモリセルの各々の前記抵抗値が前記第2抵抗値範囲にあるか否かを判定し、前記書き込み回路および前記読み出し回路は、前記第1の書き込み動作を行った前記複数のメモリセルの各々の前記抵抗値が前記第2抵抗値範囲にあると判定されるまで、前記第1の書き込み動作および前記抵抗値情報の読み出しを繰り返してもよい。
(項目13)例えば、上述の項目10から12のいずれかに記載の不揮発性メモリ装置において、前記データ調整回路は、前記複数の前記ディジタルデータにおける前記0のディジタルデータおよび前記1のディジタルデータの個数差を累積して出力する累積回路と、前記複数のメモリセルのうち第2の書き込み動作を実行するメモリセルと前記第2の書き込み動作を実行しないメモリセルとの区別に用いるマスクデータを保持するマスクデータレジスタと、前記累積回路の出力に応じて、前記マスクデータを前記マスクデータレジスタに保持させるマスクデータ調整回路と、を備えてもよい。
(項目14)例えば、上述の項目13に記載の不揮発性メモリ装置において、前記累積回路は、第1レジスタと第2レジスタとを備え、前記複数のメモリセルの前記少なくとも一部は、前記複数のメモリセルの第1部分および第2部分を含み、前記読み出し回路は、前記複数のメモリセルの前記第1部分の各々について、第1の複数のディジタルデータを生成し、前記複数のメモリセルの前記第2部分の各々について、第2の複数のディジタルデータを生成し、前記データ調整回路は、前記第1の複数のディジタルデータにおける前記0のディジタルデータおよび前記1のディジタルデータの第1個数差を前記第1レジスタに保持させ、前記第1個数差、および前記第2の複数のディジタルデータにおける前記0のディジタルデータおよび前記1のディジタルデータの第2個数差を累積して第2レジスタに保持させ、前記第1個数差と前記第2個数差の和の絶対値が所定の値を上回った場合、前記データ調整回路は前記第1レジスタに保持された前記第1個数差の値をリセットしてもよい。
(項目15)例えば、上述の項目13または14に記載の不揮発性メモリ装置において、前記読み出し回路による前記抵抗値情報の取得および前記複数のディジタルデータの生成を再度実行して得られた前記複数のディジタルデータにおける、前記0のディジタルデータおよび前記1のディジタルデータのうち何れか一方に対応したメモリセルに対して、前記第2の書込み動作を行う書き込み回路をさらに備え、前記第2の書込み動作は、第1極性の第3電圧パルスと第2極性の第4電圧パルスとを交互に印加する動作であってもよい。
(項目16)例えば、上述の項目15に記載の不揮発性メモリ装置において、前記書き込み回路は、前記マスクデータレジスタに保持された前記マスクデータに基づき、前記第2の書込み動作を実行するメモリセルに対して前記第2の書込み動作を行ってもよい。
(項目17)例えば、上述の項目15または16に記載の不揮発性メモリ装置において、前記第2の書込み動作は、検査時の1回のみ実行されてもよい。
(項目18)例えば、上述の項目12に記載の不揮発性メモリ装置において、前記第1の書込み動作は、検査時の1回のみ実行されてもよい。
(項目19)本開示の一態様である集積回路カードは、上述の項目1から18のいずれかに記載の不揮発性メモリ装置と、前記不揮発性メモリ装置の動作を制御する信号が入力され、前記複数のディジタルデータに関連する情報が出力される入出力インタフェース部とを備える。なお、ここで、複数のディジタルデータに関連する情報とは、複数のディジタルデータそのものを含むものとする。
本開示において、ユニット、デバイスの全部又は一部、又は図1、18、21、22、24、25、27、39−42および48に示されるブロック図の機能ブロックの全部又は一部は、半導体装置、半導体集積回路(IC)、又はLSI(large scale integration)を含む一つ又は一つ以上の電子回路によって実行されてもよい。LSI又はICは、一つのチップに集積されてもよいし、複数のチップを組み合わせて構成されてもよい。例えば、記憶素子以外の機能ブロックは、一つのチップに集積されてもよい。ここでは、LSIまたはICと呼んでいるが、集積の度合いによって呼び方が変わり、システムLSI、VLSI(very large scale integration)、若しくはULSI(ultra large scale integration) と呼ばれるかもしれない。 LSIの製造後にプログラムされる、Field Programmable Gate Array (FPGA)、又はLSI内部の接合関係の再構成又はLSI内部の回路区画のセットアップができるreconfigurable logic deviceも同じ目的で使うことができる。
さらに、ユニット、装置、又は装置の一部の、全部又は一部の機能又は操作は、ソフトウエア処理によって実行することが可能である。この場合、ソフトウエアは一つ又は一つ以上のROM、光学ディスク、ハードディスクドライブ、などの非一時的記録媒体に記録され、ソフトウエアが、処理装置(processor)によって実行された場合に、ソフトウエアは、ソフトウエア内の特定の機能を、処理装置(processor)と周辺のデバイスに実行させる。システム又は装置は、ソフトウエアが記録されている一つ又は一つ以上の非一時的記録媒体、処理装置(processor)、及び必要とされるハードウエアデバイス、例えばインターフェース、を備えていても良い。
以下、添付図面を参照しながら、これらの知見に基づく本開示の詳細を説明する。
以下で説明する実施形態は、いずれも一具体例を示すものである。以下の実施形態で示される数値、形状、材料、構成要素、構成要素の配置位置および接続形態、ステップ、ステップの順序などは、あくまで一例であり、本開示を限定するものではない。以下の実施形態における構成要素のうち、本開示の最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。また、図面において、同じ符号が付いたものは、説明を省略する場合がある。また、図面は理解しやすくするために、それぞれの構成要素を模式的に示したもので、形状および寸法比等については正確な表示ではない場合がある。また、製造方法においては、必要に応じて、各工程の順序等を変更でき、かつ、他の公知の工程を追加できる。
(実施の形態1)
(本開示で用いる抵抗変化型不揮発性メモリ装置の概要)
図1は、第1実施形態にかかる抵抗変化型不揮発性メモリ装置100の概略構成の一例を示すブロック図である。また、図2は、第1実施形態にかかる抵抗変化型不揮発性メモリ装置100が備えるメモリセルの概略構成の一例を示す断面図である。
図1に示す例では、本実施形態の抵抗変化型不揮発性メモリ装置100は、少なくともメモリセルアレイ90と、制御装置93とを備えている。なお、制御装置は必ずしも抵抗変化型不揮発性メモリ装置の一部である必要はなく、装置外に接続された制御装置を用いて、以下に説明する動作が行われてもよい。
メモリセルアレイ90は、複数のメモリセル91がアレイ状に配置された構成を有する。
制御装置93は、抵抗値が同一の抵抗値状態にあるメモリセル91群から複数の抵抗値情報を取得し、抵抗値情報のばらつきの中央値を検出する。検出された中央値に基づき、同一の抵抗値状態にあるメモリセル群の各メモリセルに更に0または1のディジタルデータのいずれの値を割り当てるかを判定し、ディジタルIDデータを生成する。同一の抵抗値状態とは、ディジタル情報の1状態を割り当てるために用いる1つの抵抗値範囲のことをいう。
一般に、不揮発性メモリ装置において、メモリセルがもつ物理量に、例えばディジタル量の最小単位である2値情報を割り当てるとき、その物理量が、所定の閾値以上のある範囲に属するか、または所定の閾値未満のある範囲に属するかによって、2値情報のいずれを割り当てるかを変える。近年の不揮発性メモリ装置には誤り訂正回路が具備される。誤り訂正回路の誤り訂正処理によれば、一部のメモリセルの物理量が2値情報を割り当てるために予め想定された範囲に入らない場合であっても、その物理量から得られる2値情報は正しく復元される。これは、ディジタルIDデータをなすメモリセル群のうちの一部が同一の抵抗値範囲になくても良いことを意味する。本明細書の定義として、ディジタルIDデータをなすメモリセル群の少なくとも半数より多いメモリセルが同一の抵抗値状態にあれば、本開示における諸機能を達成できるものとする。
抵抗変化型不揮発性メモリ装置100の個体識別情報として利用されるディジタルIDデータを生成する際には、各抵抗値が、同一の抵抗値範囲に属している複数の不揮発性メモリセルを利用する。当該複数の不揮発性メモリセルにはユーザデータは書き込まれない。つまり、抵抗値の書換えは行われない。各不揮発性メモリセルの抵抗値は、予め定められた抵抗値範囲に固定化されている。各抵抗値は同一の抵抗値範囲内でばらついており、そのばらつきが、抵抗変化型不揮発性メモリ装置100の固有の情報になる。「抵抗値範囲」の詳細は、後述する図3を参照しながら詳細に説明する。
「抵抗値情報」とは、抵抗値と相関関係を有する情報であり、抵抗値そのものであってもよいし、抵抗値に応じて増減する値であってもよい。抵抗値に応じて増減する値としては、例えば後述するような、メモリセルに並列に接続されたコンデンサに蓄積された電荷が選択されたメモリセルを介して放電される放電時間、または逆にディスチャージされたコンデンサに所定の定電流を流し所定のレベルまでチャージされる充電時間でもよい。該放電時間または充電時間は、所定のクロック周期でカウントされたカウント値等であってもよい。なお、コンデンサは素子であることには限定されず、例えば配線などの寄生容量でもよい。
抵抗値情報は、所定の分解能のセンスアンプによって測定された値であってもよい。あるいは、抵抗値情報は、センスアンプによって測定された値が、閾値によって区分けされた複数の抵抗値範囲のいずれに該当するかを判定することによって得られた値であってもよい。その場合、複数の抵抗値範囲のそれぞれは、一部の抵抗値範囲が、さらに細かく区分けされたものであってもよい。
図2に示す例では、メモリセル91が備える抵抗変化素子120が、下地層122と、第1電極124と、抵抗変化層126と、第2電極128とを備えている。それぞれのメモリセルには、特定のメモリセルを選択するためのトランジスタまたはダイオードなどの選択素子が接続されてもよいが、図2においては図示せずに省略した。
メモリセル91は、異なる複数の電気的信号が印加されることによって、抵抗値が複数の可変抵抗値範囲の間を可逆的に遷移する可変状態を取りうる性質を有する。
図3は、第1実施形態にかかる抵抗変化型不揮発性メモリ装置が備えるメモリセルの抵抗値範囲の一例を示すグラフである。図3に例示するように、メモリセル91は、少なくとも可変状態と初期状態の2つの状態を備えてもよい。
「初期状態」とは、抵抗値が可変抵抗値範囲のいずれとも重複しない初期抵抗値範囲にある状態をいう。初期状態にあるメモリセルは、フォーミングが行われない限り可変状態とならない。「フォーミング」とは、所定の電気的ストレスをメモリセルに印加して、メモリセルの抵抗値が複数の可変抵抗値範囲の間を可逆的に遷移する状態へと、メモリセルを変化させることをいう。
フォーミングのために印加される電気的ストレス(フォーミングストレス)は、例えば、所定の電圧と時間幅を有する電気的パルスである場合もあるし、複数の電気的パルスを組み合わせたものである場合もある。フォーミングストレスは累積的なストレスであってもよい。その場合、ストレスの累積量が所定量を超えたときに、メモリセル91(図1)は初期状態から可変状態に遷移する。
本実施の形態では、メモリセル91は、製造後、フォーミングをしなければ抵抗値が複数の可変抵抗値範囲の間を可逆的に遷移する状態とならないような性質を有しているとする。つまり、半導体プロセス等により製造した後、フォーミングストレスが印加される前の抵抗変化素子は、初期状態にあるとして説明する。
しかしながら、この性質は一例であり必須ではない。メモリセル91は、初期状態を取りうる素子でなくてもよく、たとえば、可変状態のみを有する、いわゆるフォーミングレスの素子であってもよい。
[抵抗変化素子の構成]
図2に示す例において、抵抗変化素子120は、第1電極124と第2電極128との間に抵抗変化層126が介在する構成を有する。抵抗変化層126は、例えば金属酸化物、より詳細には例えば遷移金属酸化物で構成することができる。可変状態にあるメモリセル91の抵抗変化素子120は、第1電極124と第2電極128との間に電気的信号が印加されることによって、第1電極124と第2電極128との間の抵抗値が複数の可変抵抗値範囲の間を可逆的に遷移する性質を有する。
初期状態にあるメモリセル91の抵抗変化素子120の抵抗変化層126は、第1電極124と第2電極128との間を絶縁していてもよい。絶縁とは、具体的には2MΩ以上とすることができる。抵抗変化素子120の抵抗変化層126は、絶縁体から構成された層を備えていてもよい。絶縁体とは、具体的には抵抗率が30Ω・m以上の材料とすることができる。抵抗変化素子120の抵抗変化層126が絶縁体から構成されることにより、初期状態のメモリセルの抵抗特性を安定して維持することができる。
電気的信号の印加によって抵抗値が変化する可変状態の抵抗変化素子と異なり、初期抵抗値範囲は、抵抗変化素子の材料、大きさ、形状、及び製造条件等によってある程度調整することができる。例えば、特に抵抗変化層126が積層構造である場合、酸素濃度の高い層の厚み、形成時の酸素濃度によって任意に調整可能であるが、個別のメモリセルごとには調整できない。
上記のような初期状態は、電気的信号の印加によって抵抗値が遷移する可変状態に比べて、安定している。そのため、初期状態と可変状態との差異を利用して、データを安定して保持することができる。
初期抵抗値範囲は、例えば、初期状態にある素子に、可変状態にある素子の抵抗値を複数の可変抵抗値範囲の間で変化させる電気的信号およびフォーミングストレスのいずれよりも小さな電圧を素子に印加して読み出したときに得られる抵抗値の範囲としうる。
なお、フォーミングストレスは、メモリセル91に印加する電圧振幅の量、パルスの幅、および累積印加時間等で決定され、それぞれの値はメモリセルアレイ90内のメモリセル91毎に異なりうる。なお、累積印加時間とは、例えば、抵抗状態が初期状態から可変状態に変化するまでに印加される電気的パルスのパルス幅の合計を意味する。このためフォーミングストレスとして最低限必要となる電気的ストレスを規定するパラメータの具体的な値は、対象となるメモリセル91毎に素子が可変状態へと変化するまでに印加された電気的ストレスの電圧、パルス幅、および累積印加時間等の値であって、絶対的な固定値ではなく所定のばらつきをもつ値である。そして、このような素子ごとのフォーミングにおける電気的ストレスのばらつきは、その後の可変抵抗値範囲にある各セルの抵抗値のばらつきの要因となると推察され、素子ごとに人為的に制御することが困難である。
なお、フォーミングストレスは、可変状態にあるメモリセルの抵抗値を複数の可変抵抗値範囲の間で可逆的に変化させるために印加される電気的信号よりも強いのが一般的である。具体的には、フォーミングストレスは、電圧の絶対値、パルス幅、および累積印加時間の少なくともいずれかにおいて、可変状態にあるメモリセルの抵抗値を変化させるために印加される電気的信号よりも大きいものとしうる。
可変状態において、電圧およびパルス幅等は異なるが同極性の電気的信号を印加することにより抵抗値が変化するものをユニポーラ型抵抗変化素子とよぶ。より具体的には、例えば、第2電極128から第1電極124に電流が流れる向きに+2Vで1μSecの幅の電気的信号(電気的パルス)を印加すると抵抗変化素子の抵抗値が所定の高抵抗レベル(第1抵抗値範囲:HRレベルともいう)に変化し、同様に第2電極128から第1電極124に電流が流れる向きに+4Vで50nSecの幅の電気的信号を印加すると抵抗変化素子の抵抗値が所定の低抵抗レベル(第2抵抗値範囲:LRレベルともいう)に変化する。このような、同極性の電気的信号を印加することにより抵抗値が可逆的に変化するものを、ユニポーラ型抵抗変化素子という。
一方、可変状態において、異なる極性の電気的信号を印加することで抵抗値が変化するものをバイポーラ型抵抗変化素子とよぶ。より具体的には第2電極128から第1電極124に電流が流れる向きに+2Vで50nSecの幅の電気的信号を印加すると抵抗変化素子の抵抗値が所定の高抵抗レベル(第1抵抗値範囲:HRレベルともいう)に変化し、逆に第1電極124から第2電極128に電流が流れる向きに+2Vで50nSecの幅の電気的信号を印加すると抵抗変化素子の抵抗値が所定の低抵抗レベル(第2抵抗値範囲:LRレベルともいう)に変化する。このような、逆極性の電気的信号を印加することにより抵抗値が可逆的に変化するものを、バイポーラ型抵抗変化素子という。
当然であるが、バイポーラ型抵抗変化素子において、例えば動作を安定にするために、極性のみならず、HRレベルに変化させる場合(高抵抗化ともいう)に印加する電気的信号と、LRレベルに変化させる場合(低抵抗化ともいう)に印加する電気的信号とで、パルス幅または電圧の絶対値を異ならせてもよい。
抵抗変化層126は金属酸化物から構成されてもよい。抵抗変化層126は、酸素不足型の金属酸化物から構成された層を備えてもよい。抵抗変化層126を構成する金属酸化物は、遷移金属酸化物およびアルミニウム酸化物の少なくともいずれか一方であってもよいし、タンタル酸化物、鉄酸化物、ハフニウム酸化物およびジルコニウム酸化物の少なくともいずれかであってもよい。
ユニポーラ型抵抗変化素子の抵抗変化層の材料には、チタン(Ti)酸化物、ニッケル(Ni)酸化物、アルミニウム(Al)酸化物等を用いることができる。一方、バイポーラ型抵抗変化素子の抵抗変化層の材料には、タンタル(Ta)酸化物、ハフニウム(Hf)酸化物、アルミニウム(Al)酸化物、鉄(Fe)酸化物等を用いることができる。
同じ材料の酸化物を用いた場合でも、電極材料との組合せおよび酸化物の積層構造等により、ユニポーラ型抵抗変化素子およびバイポーラ型抵抗変化素子の両方が得られる場合もある。なお、抵抗変化層の材料にタンタル酸化物を用いると、抵抗変化素子が良好な特性を示すので、本実施形態において特に詳細に例示する。
第1電極124および第2電極128の材料には、例えば、イリジウム(Ir)、白金(Pt)、タングステン(W)、銅(Cu)、アルミニウム(Al)、窒化チタン(TiN)、窒化タンタル(TaN)および窒化チタンアルミニウム(TiAlN)等を用いることができる。
なお、図2に示す例では、第1電極124が第2電極128に比べ大面積となっているが、これに限定されるものでない。例えば、第1電極124を配線の一部に適用するなど、半導体プロセスにあわせ適宜、最適な形状にされうる。下地層122も同様に半導体プロセスに応じて適宜に省略または変更されうる。
抵抗変化層126は、第1電極124に接続する第1抵抗変化層と、第2電極128に接続する第2抵抗変化層の少なくとも2層を積層して構成されてもよい。
第1抵抗変化層は、酸素不足型の第1金属酸化物で構成され、第2抵抗変化層は、第1金属酸化物よりも酸素不足度が小さい第2金属酸化物で構成されうる。第2抵抗変化層は、絶縁体から構成された層であってもよい。第2抵抗変化層中には、電気パルスの印加に応じて酸素不足度が可逆的に変化する微小な局所領域が形成されている。局所領域は、酸素欠陥サイトから構成されるフィラメントを含むと考えられる。局所領域は、第2抵抗変化層を貫く導電パスであってもよい。絶縁体が金属酸化物から構成され、導電パスは、絶縁体よりも酸素含有率が低い酸素不足型の金属酸化物から構成されていてもよい。
「酸素不足度」とは、金属酸化物において、その化学量論的組成(複数の化学量論的組成が存在する場合は、そのなかで最も抵抗値が高い化学量論的組成)の酸化物を構成する酸素の量に対し、不足している酸素の割合をいう。化学量論的組成の金属酸化物は、他の組成の金属酸化物と比べて、より安定でありかつより高い抵抗値を有している。
例えば、金属がタンタル(Ta)の場合、上述の定義による化学量論的組成の酸化物はTa25であるので、TaO2.5と表現できる。TaO2.5の酸素不足度は0%であり、TaO1.5の酸素不足度は、酸素不足度=(2.5−1.5)/2.5=40%となる。また、酸素過剰の金属酸化物は、酸素不足度が負の値となる。なお、本明細書中では、特に断りのない限り、酸素不足度は正の値、0、負の値も含むものとして説明する。
酸素不足度の小さい酸化物は化学量論的組成の酸化物により近いため抵抗値が高く、酸素不足度の大きい酸化物は酸化物を構成する金属により近いため抵抗値が低い。
「酸素含有率」とは、総原子数に占める酸素原子の比率である。例えば、Ta25の酸素含有率は、総原子数に占める酸素原子の比率(O/(Ta+O))であり、71.4atm%となる。したがって、酸素不足型のタンタル酸化物は、酸素含有率は0より大きく、71.4atm%より小さいことになる。例えば、第1金属酸化物を構成する金属と、第2金属酸化物を構成する金属とが同種である場合、酸素含有率は酸素不足度と対応関係にある。すなわち、第2金属酸化物の酸素含有率が第1金属酸化物の酸素含有率よりも大きいとき、第2金属酸化物の酸素不足度は第1金属酸化物の酸素不足度より小さい。
抵抗変化層を構成する金属は、タンタル以外の金属を用いてもよい。抵抗変化層を構成する金属としては、遷移金属、およびアルミニウム(Al)の少なくともいずれかを用いることができる。遷移金属としては、タンタル(Ta)、チタン(Ti)、ハフニウム(Hf)、ジルコニウム(Zr)、ニオブ(Nb)、タングステン(W)、ニッケル(Ni)、鉄(Fe)等を用いることができる。遷移金属は複数の酸化状態をとることができるため、異なる抵抗状態を酸化還元反応により実現することが可能である。
例えば、ハフニウム酸化物を用いる場合、第1金属酸化物の組成をHfOxとした場合
にxが0.9以上1.6以下であり、かつ、第2金属酸化物の組成をHfOyとした場合
にyがxの値よりも大である場合に、抵抗変化層の抵抗値を安定して高速に変化させることができる。この場合、第2金属酸化物の膜厚は、3〜4nmとしてもよい。
また、ジルコニウム酸化物を用いる場合、第1金属酸化物の組成をZrOxとした場合
にxが0.9以上1.4以下であり、かつ、第2金属酸化物の組成をZrOyとした場合
にyがxの値よりも大である場合に、抵抗変化層の抵抗値を安定して高速に変化させることができる。この場合、第2金属酸化物の膜厚は、1〜5nmとしてもよい。
第1金属酸化物を構成する第1金属と、第2金属酸化物を構成する第2金属とは、異なる金属を用いてもよい。この場合、第2金属酸化物は、第1金属酸化物よりも酸素不足度が小さい、つまり抵抗が高くてもよい。このような構成とすることにより、抵抗変化時に第1電極124と第2電極128との間に印加された電圧は、第2金属酸化物に、より多くの電圧が分配され、第2金属酸化物中で発生する酸化還元反応をより起こしやすくすることができる。
また、第1抵抗変化層となる第1金属酸化物を構成する第1金属と、第2抵抗変化層となる第2金属酸化物を構成する第2金属とを、互いに異なる材料を用いる場合、第2金属の標準電極電位は、第1金属の標準電極電位より低くてもよい。標準電極電位は、その値が高いほど酸化しにくい特性を表す。これにより、標準電極電位が相対的に低い第2金属酸化物において、酸化還元反応が起こりやすくなる。なお、抵抗変化現象は、抵抗が高い第2金属酸化物中に形成された微小な局所領域中で酸化還元反応が起こってフィラメント(導電パス)が変化することにより、その抵抗値(酸素不足度)が変化することにより発現すると考えられる。
例えば、第1金属酸化物に酸素不足型のタンタル酸化物(TaOx)を用い、第2金属
酸化物にチタン酸化物(TiO2)を用いることにより、安定した抵抗変化動作が得られ
る。チタン(標準電極電位=−1.63eV)はタンタル(標準電極電位=−0.6eV)より標準電極電位が低い材料である。このように、第2金属酸化物に第1金属酸化物より標準電極電位が低い金属の酸化物を用いることにより、第2金属酸化物中でより酸化還元反応が発生しやすくなる。その他の組み合わせとして、高抵抗層となる第2金属酸化物にアルミニウム酸化物(Al23)を用いることができる。例えば、第1金属酸化物に酸素不足型のタンタル酸化物(TaOx)を用い、第2金属酸化物にアルミニウム酸化物(Al23)を用いてもよい。
積層構造の抵抗変化層における抵抗変化現象は、いずれも抵抗が高い第2金属酸化物中に形成された微小な局所領域中で酸化還元反応が起こって、局所領域中のフィラメント(導電パス)が変化することにより、その抵抗値が変化すると考えられる。
つまり、第2金属酸化物に接続する第2電極128に、第1電極124を基準にして正の電圧を印加したとき、抵抗変化層中の酸素イオンが第2金属酸化物側に引き寄せられる。これによって、第2金属酸化物中に形成された微小な局所領域中で酸化反応が発生し、酸素不足度が減少する。その結果、局所領域中のフィラメントが繋がりにくくなり、抵抗値が増大すると考えられる。
逆に、第2金属酸化物に接続する第2電極128に、第1電極124を基準にして負の電圧を印加したとき、第2金属酸化物中の酸素イオンが第1金属酸化物側に押しやられる。これによって、第2金属酸化物中に形成された微小な局所領域中で還元反応が発生し、酸素不足度が増加する。その結果、局所領域中のフィラメントが繋がりやすくなり、抵抗値が減少すると考えられる。
酸素不足度がより小さい第2金属酸化物に接続されている第2電極128は、例えば、白金(Pt)、イリジウム(Ir)、パラジウム(Pd)など、第2金属酸化物を構成する金属および第1電極124を構成する材料と比べて標準電極電位が高い材料で構成する。また、酸素不足度がより高い第1金属酸化物に接続されている第1電極124は、例えば、タングステン(W)、ニッケル(Ni)、タンタル(Ta)、チタン(Ti)、アルミニウム(Al)、窒化タンタル(TaN)、窒化チタン(TiN)など、第1金属酸化物を構成する金属と比べて標準電極電位が低い材料で構成してもよい。標準電極電位は、その値が高いほど酸化しにくい特性を表す。
すなわち、第2電極128の標準電極電位V2、第2金属酸化物を構成する金属の標準電極電位Vr2、第1金属酸化物を構成する金属の標準電極電位Vr1、および、第1電極124の標準電極電位V1は、Vr2<V2、およびV1<V2なる関係を満足してもよい。さらには、V2>Vr2、およびVr1≧V1の関係を満足してもよい。
上記の構成とすることにより、第2電極128と第2金属酸化物の界面近傍の第2金属酸化物中において、選択的に酸化還元反応が発生し、安定した抵抗変化現象が得られる。
より好適には、抵抗変化層126は、TaOx(但し、0≦x<2.5)で表される組
成を有する第1抵抗変化層と、TaOy(但し、x<y<2.5)で表される組成を有す
る第2抵抗変化層とが積層された積層構造を少なくとも有している。他の層、例えばタンタル酸化物以外の金属酸化物で構成される第3抵抗変化層等を適宜配置しうることは言うまでもない。
ここで、TaOxは、0.8≦x<1.9を満足してもよく、TaOyは、2.1≦y<2.5を満足してもよい。タンタルを含有する第2抵抗変化層の厚みは、1nm以上8nm以下であってもよい。酸素不足度の異なる層を積層することにより、バイポーラ型における抵抗変化の方向が決定できる。例えば、第2抵抗変化層を第2電極128側に、第1抵抗変化層を第1電極124側に配置する。かかる構成によれば、第2電極128側から第1電極124側に電流を流す向きの電圧印加で高抵抗化し、逆向きに電流を流す向きの電圧印加で低抵抗化する。当然ながら第2抵抗変化層を第1電極124に接し、第1抵抗変化層を第2電極128に接するように構成すると、抵抗変化と電圧印加の向きの関係が逆転する。
[可変状態における抵抗変化素子の特性]
図4は、可変状態にあるバイポーラ型抵抗変化素子の特性の一例を示す図である。図4の素子の構成は、第1電極124の材料がTaN、第2電極128の材料がIr、抵抗変化層126の材料がTaOx(但し、0<x<2.5)で表される組成を有する第1タン
タル含有層と、TaOy(但し、x<y)で表される組成を有する第2タンタル含有層と
が積層された積層構造を少なくとも有して、第1タンタル含有層が第1電極124に接し、第2タンタル含有層が第2電極128に接している。TaOxは、0.8≦x≦1.9を満足し、TaOyは、2.1≦y≦2.5を満足するように製造されている。第2タンタル含有層の厚みは、8nm以下であり、抵抗変化層126全体の厚みは50nm以下である。各電極への接触面積は図3の測定に用いた抵抗変化素子と等しい。
図4の横軸は印加する電気的信号の電圧を示し、縦軸に電気的信号を印加した後の抵抗変化素子の抵抗値(抵抗値は読み出し電圧VRを印加したときの電流から算出)を示している。図中のスタートの位置から、正極性側に電圧レベルを徐々にあげて行くと、印加電圧が+1.1Vを超えたときから徐々に抵抗値が上昇し、印加電圧が+2.0Vでは約100kΩに達している。逆に負極性側に電圧レベルを徐々に下げて行き、−1.1Vを超えると約10kΩ程度に低抵抗化して、スタートの抵抗値に戻っていることがわかる。このとき抵抗変化層126は、第2抵抗変化層を第2電極128側に、第1抵抗変化層を第1電極124側に配置している。第2電極128から第1電極124に電流が流れるような電気的信号の印加を正極性印加と定義する。正極性印加では、抵抗変化素子120はHRレベルに変化する。また、逆向きに電流が流れる印加を負極性印加と定義する。負極性印加では、抵抗変化素子120はLRレベルに変化する。LRからHRに変化せしめる電圧レベルを高抵抗化電圧(VH)とし、HRからLRに変化せしめる電圧レベルを低抵抗化電圧(VL)とすると、図4の場合では、その絶対値が|VH|=|VL|=2.0V程度あれば、共通の電源電圧を用いて十分に低抵抗状態と高抵抗状態を可逆的に推移できることがわかる。
図5は、IEDM Technical Digest. 13−15 Dec. 2004, p.587に開示されている、可変状態にあるユニポーラ型抵抗変化素子の特性の一例を示す模式図である。当該論文に示される通り、NiO、TiO2、HfO2、ZrO2から構成された抵抗変化層を有する抵抗変化素子がユニポーラ特性を示すこと、及び、それらの遷移金属酸化物から構成された抵抗変化層が、製造直後には絶縁体であって、かつフォーミングストレスを与えるプロセスによって導電パスが形成されて可変状態に遷移することが知られている。
抵抗変化層の材料と電極の組合せ、および抵抗変化層の材料にドープする不純物の材料等によっては、正電圧側でも負電圧側でも対称的にユニポーラ型で抵抗変化する素子が得られる。図5は、かかる素子の特性を例示する。
図に示す例では、バイアス電圧の絶対値が0.5Vを超えると素子がリセット状態、つまりHRレベルへと推移し、バイアス電圧の絶対値1.0Vを超えると素子がセット状態、つまりLRレベルへと推移する。かかる素子では、同じ極性で電圧の異なる電気的信号を印加することで、2個の抵抗状態の間を可逆的に遷移させることが可能である。しかし、図5のような特性のユニポーラ型抵抗変化素子であれば、+0.5V以上+1V未満の正極性の電気的信号を印加することで高抵抗化させ、−1V以下(絶対値が1V以上)の負極性の電気的信号を印加することで低抵抗化させるように制御すれば、バイポーラ型抵抗変化素子として利用することもできる。本実施形態では、バイポーラ型もユニポーラ型も、いずれのタイプでも使用可能である。
抵抗変化素子は、印加する電気的信号の電圧(絶対値)、幅、および回数等の組合せにより、抵抗値が3以上の可変抵抗値範囲の間を可逆的に遷移する多値メモリとして利用されてもよい。例えば、抵抗変化層としてタンタル酸化物を用いた素子は、良好な特性を示し、多値メモリへ応用されうる。
このような抵抗変化素子(ReRAM素子)の抵抗変化は、第2電極128と第1電極124とを電気的に接続する導電性パスが抵抗変化層126内に発生することによって発生することを断面解析によって観察した。このとき導電性パスは直径30〜10nm以下であり、最先端の微細な半導体プロセスで作製される配線幅より更に小さいことを見出した。すなわち上記で説明した抵抗変化素子の特性は、リソグラフィーによる加工の限界とされる超微細半導体プロセスで製造されても同様な安定した抵抗変化の特性を維持できる。
また、抵抗変化素子(ReRAM素子)の抵抗変化層を形成するプロセスには数百℃を超えるような高温処理が必要ない。このため、加熱プロセスによってC−MOSトランジスタへの特性を劣化させることがない。すなわち抵抗変化素子は、フラッシュメモリなどのフローティングゲート型トランジスタを用いるメモリ素子に比べ半導体プロセスとの親和性が非常に優れ、製造プロセスの微細化が進んでも抵抗変化の信頼性が低下することがない特徴を有している。そのため、例えば、コントローラ等のロジック回路と抵抗変化素子とが同一チップ上に形成される場合であっても、ロジック回路の特性への影響を抑えつつ抵抗変化素子を形成することができる。また、ロジック回路とプロセスを共通化することにより、製造コストを低減することができる。
可変状態とは、異なる複数の電気的信号が印加されることによって、抵抗値が複数の可変抵抗値範囲の間を可逆的に遷移できる状態をいう。
メモリセルアレイ90が備える複数のメモリセル91は、可変状態のメモリセルと、初期状態のメモリセルと、を含んでもよい。メモリセルアレイ90では、各メモリセル91が初期状態にあるか可変状態にあるかの違いを利用してデータが記録されていてもよい。
メモリセルアレイ90では、後述する第1種データ、第2種データおよび第3種データの何れかを利用してデータが各メモリセル91に記録されうる。メモリセルアレイ90は、第3種データが記録されたメモリセル91と、第1種データおよび第2種データの何れか、または両方が記録されたメモリセル91を含んでいてもよい。
製造直後のメモリセル91の抵抗値が、初期抵抗値範囲に入る一方で可変抵抗値範囲に入ることがないように、初期抵抗値範囲および可変抵抗値範囲は設定されうる。可変状態に変化した後のメモリセル91の抵抗値が、可変抵抗値範囲に入る一方で初期抵抗値範囲には入ることがないように、初期抵抗値範囲および可変抵抗値範囲は設定されうる。抵抗変化素子の不揮発性記憶素子を備えるメモリセルが、かかる特性を備え得ることは周知である。公知の様々な材料を用いて、かかる特性を備えるメモリセル91を製造することができる。
初期状態のメモリセル91は、可変状態に変化させるような電気的ストレスであるフォーミングストレスではない何らかの電気的ストレスを受けた状態を含む。初期状態のメモリセル91は、製造直後の抵抗値から、フォーミングストレスではない何等かの電気的ストレスを受ける等して抵抗値が、初期抵抗値範囲内で変化した状態を含む。
制御装置93は、選択されたメモリセル91が初期状態にあるか可変状態にあるかを判定することによって記録されたデータを読み出すことができるように構成されていてもよい。
図3に示した例における素子の構成は、第1電極124の材料がTaN(窒化タンタル)、第2電極128の材料がIr(イリジウム)、抵抗変化層126の材料がタンタル酸化物、抵抗変化層126全体の厚さが50nm以下で、酸素濃度の異なる2層の積層構造を有する。第1電極124に接する層が酸素濃度の低い層であって、組成をTaOxとすると0<x<2.5である。第2電極128に接する層が酸素濃度の高い層であって、組成をTaOyとするとy≧2.1であり、厚さが5.5nm程度である。第1電極124と抵抗変化層126との接触面および第2電極128と抵抗変化層126との接触面の面積が0.25μm2以下である。
次に、メモリセルの状態の変化を具体的に説明する。以下では「HR状態」および「LR状態」という語を用いる。「HR状態」とは、HRパルス(高抵抗化パルス)を印加されたメモリセルの状態をいう。「LR状態」とは、LRパルス(低抵抗化パルス)を印加されたメモリセルの状態をいう。
フォーミングストレスは、電圧が+3.5V、パルス幅が5μSecのパルスを累積的に印加する。セルごとに適切な累積パルスを印加することで、図3の(1)初期状態にあったメモリセルは、(2)初回HR状態に推移する。初回HR状態に推移した後は、低抵抗化パルス(素子の抵抗値を第1抵抗値範囲から第2抵抗値範囲へと変化させるためのパルス:第2電気的信号)は、電圧が−2.4V、パルス幅が50nSecを印加する。これにより(3)ディジタルIDセット状態に推移する。ディジタルIDセット状態にあるセルに更に高抵抗化パルス(素子の抵抗値を第2抵抗値範囲から第1抵抗値範囲へと変化させるためのパルス:第1電気的信号)である電圧が+1.8V、パルス幅が50nSecのパルスを印加することで第1抵抗値範囲へと変化する。これ以降のメモリセルは可変状態のセルとなる。すなわち、本開示のディジタルIDデータに用いる場合は図3の(3)ディジタルIDセット状態でとどめて利用する。なお、本開示の例では図3(3)の状態をディジタルIDデータとして利用することを例示するが、(1)の初期状態にも複製のできない製造上のばらつきがもたらす抵抗値のばらつきがあるので、後述する方式を応用して利用可能である。
なお、パルス印加の工程は上述の手順に限定されない。例えば(3)のディジタルIDセット状態は、メモリ素子が可変状態となった以降に複数回第1電気的信号と第2電気的信号を交互に繰返しHR状態とLR状態を複数回遷移させ、最終的にLR状態にして工程を終了し最後にセットされた状態を(3)のディジタルIDセット状態としてもよい。
図6を参照しながら、図3の(3)ディジタルIDセット状態の抵抗値ばらつきの特性を説明する。
図6は、(3)ディジタルIDセット状態の規格化抵抗値情報と、そのメモリセルのばらつきについての標準正規分布の偏差との関係をプロットした図である。
図6に示すように、メモリセルの正規分布は抵抗値情報に対してほぼ直線に分布している。このことから、分布のばらつきは極めてランダムな分布現象であることが示される。図6で示すようにばらつき分布の中央値の抵抗値情報(中央抵抗値または2値化基準値ともいう)を検出し、中央抵抗値との大小関係を比較してディジタルデータの1または0に割り当てる。そして抵抗値ばらつきのランダム性を用いることで、不揮発性メモリ装置ごとに、ユニークかつランダムなディジタルIDデータを作成することができる。
図7を参照しながら、本開示のディジタルIDデータが複製できない理由について説明する。図7は上述の(3)ディジタルIDセット状態に推移させるときに様々な電圧パルス条件で推移させたときのばらつき分布を示す。トランジスタ耐圧の上限である3.3Vかつパルス幅も通常の10万倍の10msの強力なエネルギーをもつ条件から、2Vといった通常よりも弱いパルス条件まで含んでばらつきを見たものである。一般にパルスエネルギーが弱い印加条件と、強い印加条件とで、書き込まれた抵抗値の分布間に明確なウインドウがあるとき、2つの印加条件を用いて任意のデータを書き込むことができる。しかしながら、図からわかるように分布の偏りおよび最大/最小値の若干の差はあるものの、総じて全ての条件の分布の中央値が他の条件の分布と重なっている。つまり、中央値を基準に人為的に書き込み条件を変えて、書き分け、任意のデータを書き込むといった複製が、原理的にできないばらつき現象であることが分かる。
図7のように同じ抵抗値範囲にあるメモリセル群の中で更に抵抗値が低いものと高いものとに分布する理由としては、抵抗変化素子のプロセスばらつきおよび形状ばらつきの他に、例えば、フォーミングが完了するメモリセルがランダムに発生することが考えられる。
上述のとおり、金属酸化物中の欠陥サイトはメモリセル毎にランダムに配置され、フォーミングによってこれらの欠陥サイト間を繋いでフィラメントが形成される。そのため、仮に初期状態にある複数のメモリセルに一定の電気的ストレスを印加した場合であっても、フォーミングが完了するメモリセルは統計的にばらついて発生することを、本願発明者らは事前実験によって確認している。そのため、仮に複数のメモリセルに対して一様なストレスを印加する場合であっても、確率的にフィラメントが形成され、上述の(2)初回HR状態に変化する時間が素子ごとに異なる。このため抵抗変化素子内の金属酸化物中の欠陥サイトの数または密度が素子ごとにばらつく。欠陥サイトの密度および個数のばらつきは、素子ごとに固有であり、そこからもたらされる抵抗値の大小も素子ごとに固有となる。
図8は、フィラメントの発生数が抵抗変化素子ごとに異なることを示す。初期化パルス印加(Forming)により、酸素欠陥サイトの発生箇所と密度は素子ごとにランダムである。また、欠陥が相対的に多く発生した素子の抵抗は低くなり、欠陥が相対的に少ない素子の抵抗は高くなっており、ばらつきが生じている。そしてこのようなばらつきは制御不可である。
図8のように、酸素欠陥サイトの形成が多く、フィラメントパスが形成されやすい場合は、その抵抗変化素子の抵抗値はより低くなる。一方、酸素欠陥サイトの密度が一部でも低いところがある場合はフィラメントパスが形成されにくいため、その抵抗変化素子の抵抗値はより高くなる。各素子の抵抗値はばらついており、このようなばらつきを人為的に制御することはできない。なお、酸素欠陥サイト等が繋がることによってフィラメントパスが形成される材料であれば、同様のメカニズムによって説明できると推察される。
なお、図2のメモリセル構造において、電圧は第1電極124を基準として第2電極128に正の電圧を印加する場合を正極性とする。
その他の例として、第1電極124及び第2電極128の材料が白金(Pt)、抵抗変化層126の材料がハフニウム酸化物、抵抗変化層126の厚さが30nm、素子領域の直径を3μmの円形としてもよい。なお、抵抗変化層126がHfO1.6の場合、初期抵抗値は数MΩ程度であり、高抵抗値範囲が1000〜3000Ω程度、低抵抗値範囲が100〜300Ω程度となる。この場合、フォーミングストレスは、例えば、電圧が2〜3V、パルス幅が100nSecのパルスを累積的に印加する。低抵抗化パルスは、電圧が+1.0V、パルス幅が100nSecであり、高抵抗化パルスは、電圧が−1.3V、パルス幅が100nSecである。
[閾値について]
図3に示す例では、初期抵抗値範囲の下限が、全ての可変抵抗値範囲の上限以上である。具体的には、初期抵抗値範囲の下限が、複数の可変抵抗値範囲のうち抵抗値が最も大きいものの上限以上であってもよい。さらに具体的には、初期抵抗値範囲の下限は、2個の可変抵抗値範囲のうち抵抗値が最も大きい第1抵抗値範囲の上限に等しくてもよい。
図3に示す例では、第1閾値は、初期抵抗値範囲の下限以下であり、かつ、複数の可変抵抗値範囲のうち抵抗値が最も大きいものの上限以上である値である。具体的には、第1閾値は、初期抵抗値範囲の下限であり、複数の可変抵抗値範囲のうち抵抗値が最も大きいものの上限である値であってもよい。さらに具体的には、第1閾値は、2個の可変抵抗値範囲のうち抵抗値が最も大きい第1抵抗値範囲の上限に等しくてもよい。なお、第1閾値と等しい値を有する抵抗値は、初期抵抗値範囲に属するものとしてもよいし、複数の可変抵抗値範囲のうち抵抗値が最も大きいものに属するものとしてもよい。
図3に示す例では、第2閾値は、複数の可変抵抗値範囲のうち抵抗値が最も大きいものの下限以下であり、かつ複数の可変抵抗値範囲のうち抵抗値が最も小さいものの上限以上である値である。具体的には、第2閾値は、2個の可変抵抗値範囲のうち抵抗値が最も大きい第1抵抗値範囲の下限以下であり、かつ2個の可変抵抗値範囲のうち抵抗値が最も小さい第2抵抗値範囲の上限以上である値であってもよい。さらに具体的には、第2閾値は、第1抵抗値範囲の下限または第2抵抗値範囲の上限に等しくてもよい。また、第1抵抗値範囲と第2抵抗値範囲とが隣接していてもよい。すなわち、第1抵抗値範囲を規定する2つの端点のうち小さい方の値と、第2抵抗値範囲を規定する2つの端点のうち大きい方の値とが一致していてもよい。なお、第2閾値と等しい値を有する抵抗値は、複数の可変抵抗値範囲のうち、第2閾値よりも大きな抵抗値を含む抵抗値範囲に属するものとしてもよいし、第2閾値よりも小さな抵抗値を含む抵抗値範囲に属するものとしてもよい。
メモリセル91の構成によっては、製造直後のメモリセル91の抵抗値が、いずれの可変抵抗値範囲よりも小さい場合もある。すなわち、初期抵抗値範囲が可変抵抗値範囲よりも小さい場合がある。具体的には例えば、メモリセル91が鉄酸化物を抵抗変化層に用いた抵抗変化素子を備える場合に、かかる特性が実現される。
より具体的には、鉄酸化物において抵抗率は、Fe34、FeO、Fe23の順に高い。例えば、素子構造として第1電極124の材料がPt(白金)、第2電極128の材料がPt(白金)、抵抗変化層126の材料がFe34、抵抗変化層126全体の厚さが50nm以下としうる。
第1電極124と抵抗変化層126との接触面および第2電極128と抵抗変化層126との接触面の面積を0.25μm2以下とするとき、初期抵抗値は概ね200Ωと非常に低抵抗にある。この初期状態のメモリセルに10μSecのパルス幅で第1電気的信号と同じ極性で電圧の絶対値が3.5Vのパルスを所定の回数を印加することによって、初期抵抗値よりも抵抗値の大きい状態(2K〜8KΩの高抵抗状態)に推移する。これは、第2電極128と抵抗変化層126の接触界面の酸化が進行し、Fe23の絶縁状態にある抵抗層が形成されるためと考えられる。
その後、上記高抵抗状態に推移したメモリセルは、電圧の絶対値が2.4Vの第2電気的信号の印加により300Ωから500Ωの第2抵抗値範囲に推移でき、第2電気的信号と極性の異なる電圧の絶対値が2.4Vの第1電気的信号の印加により2Kから8KΩの第1抵抗値範囲を推移できるようになる。この場合、初期抵抗のばらつきをディジタルIDデータとして利用することが容易であり好ましい。
制御装置93は、選択されたメモリセル91の抵抗値が、第1閾値よりも大きいか否かを判定する第1読み出しモードと、選択されたメモリセル91の抵抗値が、第2閾値よりも大きいか否かを判定する第2読み出しモードとを選択的に実行することによって、記録されたデータを読み出すことができるように構成されていてもよく、第1閾値および第2閾値は、固定の値ではなく、任意に可変できるように構成されてよい。
本開示の不揮発性メモリ装置に記録されたデータは、第1種データと第2種データとのいずれか、または両方を含んでよい。第1種データは、各メモリセル91の抵抗値が初期抵抗値範囲にあるか否かの違いを利用して記録されており、第2種データは、各メモリセル91の抵抗値が初期抵抗値範囲にあるか否かの違いを利用せずに、各メモリセル91の抵抗値が少なくとも一つの可変抵抗値範囲にあるか否かの違いを利用して記録されていてもよい。そして、本開示は、上述の何れか同一の抵抗値範囲にあるメモリセルの抵抗値ばらつきを用いてディジタルIDデータを生成する第3種データを備える。
この場合において、メモリセルアレイ90が、第1書き込みアドレス領域と、第2書き込みアドレス領域とを備え、第1書き込みアドレス領域に第1種または第2種のデータのいずれか、または両方が記録されており、第2書き込みアドレス領域にディジタルIDデータのもととなる抵抗値状態のメモリセルが保管されていてもよい。第1書き込みアドレス領域と、第2書き込みアドレス領域とは、必ずしも物理的な領域として分離していなくてもよい。例えば、各メモリセル91がアドレスごとに所定の規則によって第1書き込みアドレス領域と第2書き込みアドレス領域とに振り分けられていてもよく、これによりディジタルIDデータの物理的な場所が特定されにくくなり耐タンパ性が向上する。
メモリセルアレイ90を構成する複数のメモリセルにフォーミングストレスを印加する工程は選択的に自由に行えるため、第1書き込みアドレス領域と第2書き込みアドレス領域との容量配分および配置を自由に変更し選択することができる。
図9は、第1実施形態において同一の可変抵抗値範囲にあるメモリセルから連続して抵抗値を読み出した例を示す。「抵抗値が少なくとも1つの可変抵抗値範囲にある」とは、メモリセルが同一の抵抗状態にあることをいう。すなわち二値型のメモリセルである場合には、例えば、メモリセルが低抵抗状態にあって高抵抗状態にないことをいう。つまり、この場合は図3の(3)ディジタルIDセット状態と等しい。
高抵抗化パルスと低抵抗化パルスを交互に印加することで素子が高抵抗状態と低抵抗状態とを可逆的に遷移することを確認した。その後、低抵抗状態にある素子に高抵抗化パルスを1回だけ印加して高抵抗状態とし、その後は低抵抗化パルスも高抵抗化パルスも印加することなく、読み出し動作を連続して1000回実行し、それぞれの抵抗値情報の読み出しを行った。読み出しの時間間隔は5μSecとした。
図9では、横軸が読み出し回数、縦軸が規格化された抵抗値情報であり、同じ構成を有する3つの素子の抵抗値の揺らぎが示されている。ここでいう抵抗値情報とは、後述する放電方式の読み出し回路で得られるもので、値が大きければ高い抵抗値を示し、小さければ低い抵抗値を示す。図9によれば、同一の抵抗状態にある素子を繰り返して読み出すと、抵抗値がランダムに増減する様子が確認できる。
ここで述べる抵抗値変動または抵抗値揺らぎとは、抵抗状態を変化させる電気的パルスが印加されない状態、すなわち同一の抵抗状態、にある同一メモリセルから読み出される抵抗値が時間の経過と共に変動する現象を指す。
図10A、図10Bは、パーコレーションモデル(percolation model)を用いて、フォーミング時における抵抗変化層(例えば局所領域)中のフィラメントの形成をシミュレートした結果の一例を示す図である。
パーコレーションモデルとは、抵抗変化層中にランダムに分布した欠陥サイトに対して、欠陥サイト等の密度がある閾値を超えると欠陥サイト等の繋がりが形成される確率が増加するという理論に基づくモデルである。ここで「欠陥」とは、例えば、金属酸化物中で酸素が欠損していることを意味し、「欠陥サイトの密度」とは酸素不足度とも対応している。すなわち、酸素不足度が大きくなると、欠陥サイトの密度も大きくなる。
図10A、図10Bに示されるシミュレーションでは、抵抗変化層の酸素イオンサイトを、格子状に仕切られた領域(サイト)として近似的に仮定し、確率的に形成される欠陥サイトによって形成されるフィラメントをシミュレーションで求めている。図10Aおよび図10Bにおいて、“0”が含まれているサイトは抵抗変化層中に形成される欠陥サイトを表している。他方、空白となっているサイトは酸素イオンが占有しているサイトを表しており、導電パスのない高抵抗な領域を意味している。また、矢印で示される欠陥サイトのクラスター(上下、左右及び斜め方向に1個のサイトの範囲内で互いに接続された欠陥サイトの集合体)は、図中の上下方向に電圧が印加された場合に抵抗変化層内に形成されるフィラメント、すなわち電流が流れるパスを示している。
図10Aに示されるように、抵抗変化層の下面と上面との間に電流を流すフィラメントは、ランダムに分布する欠陥サイトの内の上端から下端までを接続する欠陥サイトのクラスターで構成される。このパーコレーションモデルに基づくと、フィラメントの本数及び形状は確率的に形成されることになる。フィラメントの本数及び形状の分布は、抵抗変化層の抵抗値のばらつきとなる。
また、フィラメントは、上述した高抵抗化パルスにより酸素イオンがフィラメントに導入され欠陥サイトと結合し、幾つかのフィラメントパスを切断することにより高抵抗状態へと推移する。逆に、低抵抗化パルスを印加すると、再び酸素イオンの離脱が起こり、欠陥サイトが生成されフィラメントパスが再現され、低抵抗状態へと推移する。各抵抗状態の間でフィラメントパスの本数に充分な差があれば、抵抗値の差分が大きくなり、抵抗値の判定マージンが増加する。
次に、図9のように同一の抵抗状態にある素子において抵抗値が揺らぐ現象のメカニズムについて説明する。
各抵抗状態の抵抗値を決定するフィラメントパスの形状、本数および太さは、時間的に安定ではない。つまり、酸素サイトから酸素イオンが抜け出ることによって欠陥サイトが生成されたり、欠陥サイトへ酸素イオンが供給されることによって欠陥サイトが消滅したりすることにより、フィラメントパスの形状、本数および太さが微妙に増減する。これが時間的な抵抗値の揺らぎとして観測される。図10Bは、その一例を示す説明図で、たった一つの欠陥サイトが隣接サイトと入れ替わっただけで、図10Aにあったフィラメントパスのうち、一つのパスが断絶されることになる。この場合、抵抗値が僅かに増加することになる。図による説明は省略するが、逆に欠陥サイトが隣接サイトと入れ替わることにより新たなフィラメントパスが発生することもある。この場合は、僅かに抵抗値が減少する。図9のような抵抗値の揺らぎ現象は、かかるメカニズムにより発生すると考えられる。実際には、図のようなフィラメントパスの数は多数あり、その一部が増減するもののフィラメントパスの総数は大きくは変化しないと考えられる。すなわち、揺らぎ現象においては、メモリセルの抵抗状態が別の抵抗状態に変化してしまうほどの大きなフィラメントパスの変化は生じないと考えられる。
上記メカニズムにより抵抗値が揺らぐ現象は、酸化物中の酸素イオンの移動により抵抗値が変動するあらゆる抵抗変化素子に当てはまると考えられる。具体的には例えば、かかる性質を有するメモリセルとして、第1電極と金属酸化物と第2電極とをこの順で積層した素子を用いることができる。あるいは例えば、第1電極と遷移金属酸化物と第2電極とをこの順で積層した素子を用いることができる。
このように抵抗変化型メモリ装置に用いられるメモリセルは書き込まれた抵抗値に対して若干であるが抵抗値の揺らぎ現象が存在する。図6に示す中央抵抗値を用いて抵抗値の大小関係からディジタルデータの1または0に判別して得られるディジタルIDデータには、抵抗値揺らぎが原因の誤りデータが発生する。中央抵抗値付近は、抵抗値のばらつき分布の中央であるため、その抵抗値付近にあるメモリセルの分布数が最も多いことになる。これら中央付近のメモリセルが前述のとおりランダムに抵抗値が揺らぐため多くのビットがランダムに誤ることになる。
本願発明者らは、書き込まれた抵抗値が、放置時間および温度環境、更には装置の電源環境などにより、中央抵抗値の最適値が変動し、誤り率が安定せず、ディジタルIDデータを安定的に生成することができないという課題を見出した。この課題について図11を用いて説明する。
図11は図3に示すようなディジタルIDセット状態に書き込まれた所定のビット数のメモリセル群の抵抗値を放置時間ごとに読み出したときのばらつき範囲と抵抗中央値を示す。
測定に使用したビット数は1Kbitで、放置時間に対する劣化を加速するために放置温度は175℃とした。図からわかるように、放置時間とともに、ばらつき範囲が広がっている。さらに、破線で囲んだように抵抗中央値が徐々に上昇していることが分かる。つまり、放置時間が増加するに従って、抵抗値の分布が高抵抗側にシフトしていると言える。
図12は、書き込まれたディジタルIDデータを図11に示したような初期の抵抗中央値(143)で抽出したときにおける、エラーレートと放置時間との関係を示す。エラーレートは抽出したデータと初回IDデータとが相違する割合を示す。図12から分かるように放置時間とともに最適な抵抗中央値がずれるためエラーレートが急速に増大していることが分かる。この現象は、放置時間だけでなく周辺温度の変化、または装置電源電圧の変化によっても大きく変動する。
そこで発明者らは図13および図14に示すフローを考案した。
図13は、ディジタルIDデータを生成し、不揮発性メモリ装置100に書き込む処理フローの一具体例を示す。このフローは、たとえば不揮発性メモリ装置100が工場から出荷される前の検査工程時に実行される。
一方、図14は、ディジタルIDデータを再生する処理フローの一具体例を示す。このフローは、たとえば工場から出荷された後の不揮発性メモリ装置100が市場において使用される都度実行される。
前述したように、生成されるディジタルIDデータには誤りデータが含まれるため真の正しいIDデータを常に得るためには誤り訂正を行う必要がある。従って、図13および図14のように、装置の出荷前の検査工程時と、市場で装置が使用されるフィールド使用時とでは処理のフローが異なる。
出荷前検査時は図のように不揮発性メモリ装置の各メモリセルは可変状態ではなく絶縁抵抗に近い抵抗値を示す初期状態にある。図13のフローのS1ステップにおいて図3に関連して説明したようなフォーミングストレスを印加するフォーミング処理が実行され、各メモリセルを図3の(2)初回HR状態に推移せしめる。次にS2ステップにおいて低抵抗化パルスが印加され図3の(3)ディジタルIDセット状態にセットされる。そしてS3ステップにおいて複数のディジタルIDセット状態にあるメモリセルの抵抗値情報を読み出し、S4ステップにて読み出した抵抗値情報から抵抗値ばらつきの分布の中央値を演算して保持する。S5ステップでは再度、(3)ディジタルIDセット状態にあるメモリセルから抵抗値情報を読み出し、上述の保持された中央値との関係からディジタルIDデータを生成する。
図15は、ディジタルIDデータの例を示す。上述したように、ディジタルIDセット状態にあるメモリセルの抵抗値情報と、閾値である抵抗値ばらつきの分布の中央値を比較して、抵抗値情報がより小さい場合にはそのメモリセルにデータ「1」を割り当て、抵抗値情報がより大きい場合にはそのメモリセルにデータ「0」を割り当てる。これにより、人為的に制御できないメモリセルの抵抗値を利用した、不揮発性メモリ装置100を一意に識別可能なディジタルIDデータを得ることができる。
再び図13を参照する。S6ステップではディジタルIDデータをもとにデータ誤りを訂正するために用いるパリティーデータを演算し、S7ステップにてパリティーデータを別の異なるメモリセルに記録する。
次に、図14を参照する。フィールドにおいて装置が使用される際、S8ステップにおいて、検査時のS3およびS4ステップと同様に複数のディジタルIDセット状態にあるメモリセルの抵抗値情報を読み出し、S9ステップにて読み出した抵抗値情報から抵抗値ばらつきの分布の中央値を演算して保持する。さらにS10ステップでは再度、(3)ディジタルIDセット状態にあるメモリセルから抵抗値情報を読み出し、上述の保持された中央値との関係からディジタルIDデータを生成する。S11ステップにおいて検査時に予め保存されたパリティーデータを読み出し、S12ステップでパリティーデータを用いてS10で得たディジタルIDデータの誤りデータを訂正する。その結果、S13ステップにて常に同じ真のディジタルIDデータを得る。
図16は、誤り訂正前のデータ誤り率の推移を示す。この推移は、図14のフローによりフィールド使用時に最適な抵抗中央値を検出し、検出した抵抗中央値でディジタルIDデータを生成したときの誤り訂正前のデータ誤り率の推移である。前述した誤り訂正前のディジタルIDデータを生のディジタルIDデータ(Raw Digital ID Data)と呼ぶ。図16は横軸にディジタルIDデータの読み出し回数を示し、縦軸にそのときのディジタルIDデータの誤り率(エラーレート)を示した。図からわかるようにエラーレート上昇が抑制され2%〜3%の誤り率で良好な結果が得られている。
更に、本開示の特徴的な点として、累積エラーレートがあげられる。図17は読み出し回数と累積エラーレートとの関係を示す。累積エラーレートとは、複数回、生のディジタルIDデータを読み出し新たな異なるビットに誤りが発生した場合は順次加算していき、累計でエラーしたビット数から誤り率を求めたものである。図16で各読み出しごとのエラーレートは2〜3%で低いものの、異なるビットが入替わり立代りするため累積エラーレートは読み出し回数に従って上昇する。図では2500回のディジタルIDデータの生成では14%ものビットが誤りを起こしたことがわかる。つまり、読み出すたびにエラーするビットが異なり、エラー訂正前のIDデータは刻一刻と変化していることが理解できる。この特長により、前述したような機械学習攻撃を受けた場合であっても学習結果が定まらず真のディジタルIDデータが解析できないため、ハッキングに対して極めて耐性があるといえる。
では、次に本開示の方式を実現するための具体的な構成例について説明する。
図18は、本開示の不揮発メモリ装置の具体的な構成例を示すブロック図である。なお、図18はあくまで一例であり、第1実施形態の不揮発性メモリ装置の具体的構成が図18に示される構成に限定されるものではない。
図18に示すように、実施例の不揮発性メモリ装置10は、半導体基板上に、メモリ本体部22を備えている。また不揮発性メモリ装置10は、さらにデータ入出力回路6と、制御回路15と、アドレス入力回路16と、誤り訂正およびパリティー生成回路400とを備えている。
メモリ本体部22は、読み出し回路11と、書き込み回路14と、カラムデコーダ回路17と、ロウデコーダ回路18と、メモリセルアレイ20と、中央値検出回路25とを備えている。
書き込み回路14は、選択されたメモリセル21へ各動作における所定の電圧を印加してデータを書き込む。
読み出し回路11は、ビット線に流れる電流の変化を、後述する読み出し方式により検知し、選択メモリセルの抵抗値情報をディジタルカウント値として取得する。
ロウデコーダ回路18は、メモリセルアレイ20に接続されている複数のm+1本のワード線WLの中から1つのワード線WLを選択する。
カラムデコーダ回路17は、複数のn+1本のビット線BLと複数のソース線SLの中から並列読み出し数であるS本のビット線BLと、それに対応するS本のソース線SLとを選択し、書き込み回路および読み出し回路へ接続する。
これらは並列的に読み出しおよび/または書き込みが行われる行および/または列の数に応じて動作可能である。
不揮発性メモリ装置10の読み出し回路11は、出力端子AおよびBと、入力端子Aとを有する。読み出し回路11は、入力端子Aを介して閾値を受け取る。この閾値は、読み出し回路11が、カラムデコーダ回路17から得られた信号を0または1のデータとして二値化するために利用される。
また、読み出し回路11は、出力端子Bを介して、カラムデコーダ回路17から得られた信号を中央値検出回路25に出力する。この信号は、ディジタルIDデータを生成するために必要な中央値を算出するために中央値検出回路25によって利用される。
さらに、読み出し回路11は、出力端子Aを介して、ユーザデータである0または1のデータ、および、ディジタルIDデータである0または1のデータを出力する。ユーザデータを生成する際に利用される閾値と、ディジタルIDデータを生成する際に利用される閾値とは異なっていてもよい。
図13で説明したように、検査工程時にディジタルIDデータに応じた誤り訂正のためのパリティーデータを生成する場合は、上述の出力端子Aから出力されるディジタルIDデータをデータ入出力回路6が受け取り、誤り訂正およびパリティー生成回路400に送る。
誤り訂正およびパリティー生成回路400は、ディジタルIDデータに応じた誤り訂正用のパリティーデータを演算し、演算結果をデータ入出力回路6に戻す。
なお誤り訂正およびパリティー生成回路400は、機能的には、誤り訂正を行う回路要素と、パリティーを生成する回路要素とに分けることが可能である。本実施の形態では、誤り訂正およびパリティー生成回路400は1つの回路として説明されているが、誤り訂正回路およびパリティー生成回路という別個の2つの回路として設けられてもよい。
データ入出力回路6は、パリティーデータを書き込み回路14に出力し、書き込み回路14は、ディジタルIDデータに応じた冗長のメモリセルにパリティーデータを書込む。なお、これらの制御は制御回路15を介して実行される。
引き続き、中央値検出回路25の動作について、より詳しく説明する。読み出し回路11は抵抗値情報のディジタルカウント値を入力端子Aに入力される閾値と比較して、1または−1の中央値誤差信号を出力端子Bから出力する。出力端子Bから出力される中央値誤差信号は並列的に読み出されるチャンネル数(S)だけ同時に出力される。S個の中央値誤差信号は、中央値検出回路25に入力される。
中央値検出回路25は演算回路であり、たとえば半導体集積回路を用いて実現され得る。中央値検出回路25は中央値誤差信号が小さくなるようにフィードバック制御されて算出した抵抗中央値を読み出し回路11の入力端子Aに出力する。
一般に不揮発性メモリ装置にユーザがデータを書き込む場合は、外部からアドレス信号、データ信号、コントロール信号を装置に入力することで実行される。このため外部から入力されるアドレス信号を受け取るアドレス入力回路16と、外部から入力されるコントロール信号に基づいてメモリ本体部22の動作を制御する制御回路15が、書き込むアドレスを選択するとともに書き込みパルスを印加する様に制御する。そして、データ入出力回路6は外部から入力されるデータ信号(外部データ)を受け取り、その外部データに基づいて書き込みデータを生成して書き込み回路14に送る。書き込み回路14は、その書き込みデータを選択されたアドレスに対応するメモリセルに書き込む。
この書き込みデータは、データ入出力回路6により誤り訂正のためのパリティーデータが付加されたデータである。以下、パリティーデータに関連する処理を説明する。
書き込みデータの生成のために、データ入出力回路6は、取り込んだ外部データを、図18に示す誤り訂正およびパリティー生成回路400に送る。誤り訂正およびパリティー生成回路400は、入力された外部データに応じた誤り訂正を行うためのパリティーデータを演算してデータ入出力回路6に戻す。データ入出力回路6は、外部データと誤り訂正用パリティーデータをあわせた書き込みデータを書き込み回路14に送り、そのデータに従って選択されたメモリセルにデータが書込まれる。このとき、パリティーデータは外部から指定されたアドレス情報に応じて予め決められた冗長のメモリセルに書込まれる。
また、不揮発性メモリ装置10に書き込まれたユーザデータを読み出す際には、アドレス信号を受け取るアドレス入力回路16と、外部から入力されるコントロール信号に基づいてメモリ本体部22の動作を制御する制御回路15とが利用される。具体的には、制御回路15は、アドレス入力回路16に入力されたアドレス信号に基づいて読み出すアドレスを選択するとともに選択されたメモリセルを読み出すように読み出し回路11を制御する。また、外部から入力されたアドレスに応じたパリティーデータを読み出すため予め決められた冗長のメモリセルも順次選択され読み出すように読み出し回路11を制御する。読み出し回路11は、入力端子Aに入力される閾値に従い1/0判定をした結果であるディジタルデータを出力端子Aから出力する。アドレス信号に応じたユーザデータと、そのユーザデータに対応したパリティーデータとは、データ入出力回路6を介して誤り訂正およびパリティー生成回路400に送られる。ユーザデータはデータ誤りがあれば訂正されたのち、データ入出力回路6に戻され、更に装置外部に出力される。
このとき、読み出し回路11の入力端子Aに入力される閾値は中央値検出回路25からのものではなく、図3の第1閾値および第2閾値に相当する値である。なお、図には、入力端子Aに入力される閾値を、中央値検出回路25から出力された中央値にするか、図3の第1閾値および第2閾値に相当する値にするかを切り替えるための切替回路の記載は省略している。第1閾値および第2閾値に相当する値は、たとえば図示されないレジスタに記憶されている。なお、第1閾値および第2閾値で読み出す際には、後述するセンスアンプの判定レベル(参照電圧VREF)またはLOAD電位を変更しても良い。
以下に、パリティーデータを用いてディジタルIDデータの誤りを訂正する例を説明する。以下では、各構成要素がどのように動作するかの観点で説明しているが、それらの動作は、制御回路15からの指示によって制御されていることに留意されたい。
まず、工場出荷前の検査工程時に、読み出し回路11および中央値検出回路25は予めディジタルIDデータを生成する。誤り訂正およびパリティー生成回路400は、そのディジタルIDデータをもとにパリティーデータを生成する。生成されたパリティーデータは、たとえば予め定められたアドレスの不揮発性メモリセル内に、ユーザデータとして記録される。
次に、不揮発性メモリ装置10のフィールド使用時の動作を説明する。パリティーデータは、予め検査時にユーザデータとして記録されているため図3の第1閾値および第2閾値で判定される。すなわち、読み出し回路11は、ディジタルIDデータを前述した工程により読み出し、データ入出力回路6に出力する。その後、読み出し回路11は、閾値を所定の値に切り替えて、ディジタルIDデータに応じた冗長のメモリセルに保存されたパリティーデータを読出し、データ入出力回路6に出力する。データ入出力回路6は、ディジタルIDデータとパリティーデータを誤り訂正およびパリティー生成回路400に送信する。誤り訂正およびパリティー生成回路400は、誤りを訂正した後のデータを、データ入出力回路6に戻す。データ入出力回路6はそのデータを装置外部に出力する。
なお、上述の例では、ユーザデータおよびディジタルIDデータの両方の誤りが、同じ誤り訂正およびパリティー生成回路400によって訂正されるとして説明したが、これは一例である。ディジタルIDデータの誤りを訂正するための誤り訂正およびパリティー生成回路は、例えば装置外部に具備されても良い。このような構成にすれば、装置外に送られるディジタルIDデータは、データ誤りを含んでおり、装置外部との通信路においてハッキングなどの脅威に対してセキュリティーが向上できるという利点がある。
図に示すように、メモリ本体部22は、記憶領域として、ユーザデータ領域7とPUFデータ領域8とを有する。ユーザデータ領域7にはユーザの任意のデータ(ユーザデータ)が記憶される。ユーザデータの書き込みおよび読み出しはユーザデータ領域7のアドレスが選択される。PUFデータ領域8には、ディジタルIDデータとして用いられる個体識別情報を導き出すための、フォーミングストレスが印加される。その結果、PUFデータ領域8のメモリセル群は同一の抵抗値状態を取る。ディジタルIDデータは、各メモリセルの抵抗値の揺らぎを利用して導出されるデータである。
なお、ユーザデータ領域7とPUFデータ領域8は図のようにワード線単位に分けられる必要はなく、アレイ上の任意の領域で区分けしても良い。物理的な領域区分の規則性を複雑にするほどハッキングなどの攻撃への耐性を高めることができる。
メモリセルアレイ20は、ワード線単位で、WL0、WL1、WL2、・・・WLm−k−1をユーザデータ領域7と、WLm−k、・・・WLmをPUFデータ領域8として切り分けられ、互いに平行に延びるように形成された複数のワード線WL0、WL1、WL2、・・・WLm−k−1、WLm−k、・・・WLmと、複数のワード線と交差し、かつ互いに平行に延びるようにして形成された複数のビット線BL0、BL1、・・・BLnと、複数のワード線と交差し、かつ互いに平行に、かつビット線と平行に延びるようにして形成されたソース線SL0、SL1、SL2、・・・SLnと、を備える。複数のワード線と複数のビット線の立体交差点には、それぞれメモリセル21が配置されている。
それぞれのメモリセル21は抵抗変化素子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と同様の構成とすることができるので、詳細な説明を省略する。
図18に示す例では、メモリセルアレイ20の選択トランジスタとしてNMOSトランジスタが用いられているが、これに限定されず、PMOSトランジスタを用いても良い。
図19は本開示の不揮発性メモリ装置10が備える読み出し回路11の構成例を示す回路図である。
読み出し回路11は放電方式のセンスアンプ回路30を有している。当該センスアンプ回路は、コンパレータ31と、抵抗値カウンタ32と、プリチャージ用のPMOSトランジスタ33と、ロード電流用のPMOSトランジスタ34とを備えている。
抵抗値カウンタ32は、コンパレータ31の出力先に接続されている。抵抗値カウンタ32は、リセット信号RSTがロウレベルとなることで、抵抗値カウンタ内のカウント値が初期化された後、クロック信号CLKによるカウントを開始する。クロック信号CLKは、制御回路15から出力される信号であって、抵抗変化素子23の抵抗値によって変化する放電時間をカウント値に変換する際の基準となる信号である。クロック信号CLKは、例えば一定の周波数を維持する矩形波である。このクロック信号CLKが立ち上がる毎に、抵抗値カウンタのカウント値が1つ加算され、ノードSENの電位がVREFを下回ると抵抗値カウンタのカウントアップが停止し、そのときのカウント値がCOUNT_OUTに維持される。このとき、入力Aからは閾値が入力される。比較器135はCOUNT_OUTと入力Aの閾値とを比較し、閾値以上であれば0を、閾値未満であれば1を出力Aから出力する。また、閾値以上であれば1を、閾値未満であれば−1を出力Bから出力する。プリチャージPMOSトランジスタ33は、ゲート端子にプリチャージ制御信号PREが入力され、ソース端子にVDDが入力され、ドレイン端子にノードSENが接続されている。
ロードPMOSトランジスタ34は、ゲート端子にロード制御信号LOADが入力され、ソース端子にVDDが入力され、ドレイン端子にノードSENが接続されている。
読み出し回路11はクランプ電圧印加用のNMOSトランジスタ35で構成されたクランプ回路をさらに有している。クランプNMOSトランジスタ35は、ゲートにクランプ制御信号CLMPが入力され、ソース端子もしくはドレイン端子の何れか一方にノードSENが接続され、他端にはカラムデコーダ回路を介して選択されたメモリセルが接続されている。なお、図19ではカラムデコーダ回路は省略している。
ここで、読み出し回路11がカウント値(抵抗カウント値の一例)を出力する動作について、読み出し回路の構成図(図19)と図20Aおよび図20Bのタイミングチャートを用いて、具体的に説明する。
図20Aは、選択されたメモリセルを放電方式にて読み出す場合のタイミングチャートである。
T1のプリチャージ期間では、制御信号PREはロウレベルとなり、プリチャージ用PMOSトランジスタ33はオン状態になる一方で、制御信号LOADはハイレベルとなり、ロード用PMOSトランジスタ34はオフ状態となる。選択ワード線WLsの電位はロウレベルでトランジスタ24はオフ状態となっている。
クランプ回路のクランプNMOSトランジスタ35のゲート端子にVCLMPの電圧が印加されることで、選択ビット線BLsの電位はVCLMPからVT(クランプNMOSトランジスタ35の閾値)を引いた電位までプリチャージされる。選択ソース線SLsはGNDに固定される。ノードSENはVDDまでプリチャージされる。また、コンパレータの出力に接続されている抵抗値カウンタの制御信号RSTはハイレベルとなっているため、抵抗値カウンタ出力端子COUNT_OUTは0の固定値が出力される。
T2のセンス期間では、制御信号PREをハイレベルとすることで、プリチャージPMOSトランジスタ33がオフ状態となり、制御信号LOADがロウレベルになることで、ロードPMOSトランジスタ34はオン状態になる。また選択ワード線WLsの電位をハイレベルにすることで、NMOSトランジスタ24はオン状態となる。
そして選択ビット線BLsから選択されたメモリセル21sを介して選択ソース線SLsへと電圧が印加され、放電が開始される。放電開始と同時に抵抗値カウンタ32の制御信号RSTがロウレベルとなり、カウントが始まる。そして、1カウント毎に、コンパレータ31によって、ノードSENの電位と参照電圧VREFの電圧が比較され、ノードSENが参照電圧VREFを下回るまで、カウント値が加算され続ける。読み出し時の抵抗変化素子23の抵抗値が高いほど放電時間は長くなり、カウント値は大きくなる。
また、コンデンサ36の容量を調整することで、放電時間を調整することも可能である。コンデンサ36の容量が大きければ、ノードSENの放電時間も長くなるため、カウント値は大きくなり、容量が小さければ、ノードSENの放電時間は短くなり、カウント値は小さくなる。コンデンサ36は、例えば、放電時間が速い低抵抗レベルの検出精度を向上させたいとき、効果的である。カウントの間隔はクロック信号CLKで決定されるため、その動作周波数が抵抗カウント値の分解能となる。しかし、低い抵抗値の場合、放電時間がカウント値の分解能を上回る可能性があるため、区別できなくなる場合がある。そこで、ノードSENに容量負荷を上乗せし、遅延させることで、意図的に分解能で検出できるレベルの放電特性に調整することが可能となる。しかしながら、原理上放電方式の場合は高抵抗になればなるほど放電時間が長くなり、それにともなって放電の傾斜が緩やかに変化するため、カウンタ値に対する抵抗値情報の分解能が向上する。つまり放電方式の場合は高抵抗側が高精度な抵抗値情報を得ることのできる方式である。
T3のラッチ期間では、放電が開始された後、ノードSENが参照電圧VREFを下回ったときの抵抗値カウンタ32のカウント値がラッチされる。ラッチされたカウント値は、COUNT_OUTに出力され、マスクデータ修正回路に格納されて、抵抗変化素子23の抵抗値情報を表すカウント値として扱われる。
T4のリセット期間においては、データ出力が完了すると、選択ワード線WLsの電位がロウレベルとされ、選択されたメモリセル21sのトランジスタ24がオフとなり、読み出し動作が終了する。
図20Bは、選択されたメモリセルを充電方式にて読み出す場合のタイミングチャートである。
T1のディスチャージ期間において、制御信号PRE、LOAD共にハイレベルとなり、プリチャージ用PMOSトランジスタ33とロード用PMOSトランジスタ34は何れもオフ状態となる。また選択ワード線WLsの電位はハイレベルでトランジスタ24はオン状態となっている。
クランプ回路のクランプ用NMOSトランジスタ35のゲート端子にVCLMPの電圧が印加され、選択ワード線WLsの電位をハイレベルにすることで、NMOSトランジスタ24はオン状態となるため、ノードSEN、選択ビット線BLsは抵抗変化素子23を介してGNDへ接続され、GNDレベルまでディスチャージされる。また、コンパレータの出力に接続されている抵抗値カウンタの制御信号RSTはハイレベルとなっているため、抵抗値カウンタ出力端子COUNT_OUTは0の固定値が出力される。
T2のセンス期間では、制御信号LOADがロウレベルになることで、ロードPMOSトランジスタ34はオン状態になり、ロードPMOSトランジスタ34、クランプNMOSトランジスタ35、選択メモリセル21sの電流パスが形成され、ノードSEN、選択ビット線BLsへ充電が開始される。充電開始と同時に、抵抗値カウンタ32の制御信号RSTがロウレベルとなり、カウントが始まる。そして、1カウント毎に、コンパレータ31によって、ノードSENの電位と参照電圧VREFの電圧が比較され、ノードSENが参照電圧VREFを上回るまで、カウント値が加算され続ける。読み出し時の抵抗変化素子23の抵抗値が低いほど充電時間は長くなり、カウント値は大きくなる。
また、コンデンサ36は放電方式の放電時間のときと同様に、充電方式も充電時間を調整することも可能である。詳細な説明は放電方式での説明と同様であるため割愛する。原理上充電方式の場合は低抵抗になればなるほど充電時間が長くなり、それにともなって充電の傾斜が緩やかに変化するため、カウンタ値に対する抵抗値情報の分解能が向上する。つまり充電方式の場合は低抵抗側が高精度な抵抗値情報を得ることのできる方式である。
T3のラッチ期間では、充電が開始された後、ノードSENが参照電圧VREFを上回ったときの抵抗値カウンタ32のカウント値がホールドされる。ホールドされたカウント値は、COUNT_OUTに出力され、抵抗変化素子23の抵抗値情報を表すカウント値として扱われる。
T4のリセット期間においては、データ出力が完了すると、選択ワード線WLsの電位がロウレベルとされ、選択されたメモリセル21sのトランジスタ24がオフとなり、読み出し動作が終了する。
図19の構成であれば、放電方式と充電方式の両方を用いることができる。しかし、図19の比較器135で例示した出力Aおよび出力Bの論理例は放電方式の読み出し回路における例である。高抵抗状態と低抵抗状態に夫々対応するディジタルデータの論理を同じにする場合は、検出方向が逆になるために充電方式では反転する必要がある。具体的には、出力Aへの論理はa≧bの場合は1とし、a<bの場合は0となる。出力Bへの論理は放電方式と充電方式で等しい。
このように読み出しの方式によって抵抗値情報に対する分解能が異なるため、高精度に抵抗値情報を得たい場合は、放電方式はディジタルIDデータが高い抵抗値範囲を用いて保存される場合に用いるのが好ましい。逆に充電方式はディジタルIDデータが低い抵抗値範囲を用いて保存される場合に用いることが好ましい。しかしながら、一方で図19に示した抵抗値カウンタ32のカウンタ幅はハードウェアの制約上有限な量である。つまり前述したような放電時間または充電時間が長すぎる場合はカウンタのレンジをオーバーしてしまい正確な抵抗値情報が得られない問題がある。このため必要なカウンタのビット幅を節約して回路規模の縮小を図る場合は、放電方式はディジタルIDデータが低い抵抗値範囲を用いて保存される場合に用いるのが好ましい。逆に充電方式はディジタルIDデータが高い抵抗値範囲を用いて保存される場合に用いることが好ましい。
図21は、本開示の不揮発性メモリ装置10が備える中央値検出回路25の構成例を示している。
図21に示すように、中央値検出回路25は、選択回路200と、アップダウンカウンタ201と、乗算器202とを備える。
選択回路200は、読み出し回路11から入力される中央値誤差信号の何れかのチャンネルを制御回路から入力される制御信号Aに従い選択する。アップダウンカウンタ201は、選択回路200により選択された中央値誤差信号の論理(図19の出力Bの値である「1」または「−1」)に従いカウンタ値を増減する。つまり、アンプダウンカウンタ201は中央値誤差信号の累積加算回路をなしている。
乗算器202は、アップダウンカウンタ201の出力に所定の係数αを乗算して出力する。乗算器202の係数αは1より小さい値、例えば1/2,1/4,1/8などとすることで、中央値誤差信号の積算感度を変えることができる。なお、本明細書で言う「感度」とは、変化の程度、または変化率を言う。乗算器202は、感度調整回路と言うことができる。α値が大きいと抵抗中央値の検出の感度が増加し、上下動が大きく検出精度が悪化する。逆にα値が小さいと感度が下がり抵抗中央値の検出精度が増すものの検出にかかる時間(読み出し回数)が増加する。α値はシステムによって最適に選択される。なお、アップダウンカウンタ201の初期値を、目標となる抵抗中央値にαを掛けた値にセットすることにより、検出時間が短縮化され得る。
上述の処理を簡潔に説明すると、アップダウンカウンタ201は、選択されたメモリセルから取得した抵抗値情報と、演算途中の中央値(本明細書において「暫定中央値」と称することもある。)との差分を誤差として累積する。乗算器202は、カウンタの出力に所定の係数を乗算した値を新たな暫定中央値として更新する。これにより、適切な中央値を得ることができる。
乗算器202から出力された中央値は、抵抗中央値として読み出し回路11の入力端子Aに出力される。
なお、図21に示されるような、誤差信号の累積加算回路をなすアップダウンカウンタ201と、誤差信号の累積における感度調整する感度調整回路をなす乗算器202は一例である。また、累積加算回路の出力に感度調整回路が接続されるような接続関係についても限定されない。たとえば図22に示される構成を採用することも可能である。
図22は、中央値検出回路25の一変形例を示す。
図22に示す中央値検出回路25は、選択回路200に代わる全チャンネル加算器401と、乗算器202と、加算器402と、データラッチ回路403とを備えている。乗算器202は、全チャンネル加算器401と接続され、全チャンネル加算器401から出力される信号を受け取る。加算器402は、乗算器202の出力およびデータラッチ回路403の出力および入力と接続されている。加算器402は、乗算器202の出力およびデータラッチ回路403の出力を受け取って加算し、その加算結果をデータラッチ回路403に送る。
データラッチ回路403は、加算器402の出力を受け取り、制御信号Bが指定するタイミングで受け取っていたデータをラッチする。なお、データラッチ回路403は、1ビットのラッチ回路を複数組み合わせることによって複数ビットの情報を記憶することが可能な回路である。ビット数は、その出力として必要とされるビット数に依存する。次に説明するように、本例ではデータラッチ回路403の出力は読み出し回路11において抵抗中央値として利用される。データラッチ回路403は、少なくとも抵抗中央値を表現するために必要とされるビット数分の1ビットのラッチ回路を実装していればよい。
この中央値検出回路25の動作をより具体的に説明する。
全チャンネル加算器401は、読み出し回路11から入力されるSチャンネルの抵抗値誤差信号を全て合算し、トータル誤差信号として出力する。乗算器202は、トータル誤差信号を受け取って、その信号に係数αを乗じる。乗算器202は、係数αにより、例えば1/2,1/4,1/8などのようにトータル誤差信号の感度を調整する。加算器402は、データラッチ回路403の出力と、乗算器202から出力された、感度が調節されたトータル誤差信号とを加算して、データラッチ回路403に出力する。
データラッチ回路403は、制御信号Bによって指定されたタイミングで、加算器402から受け取った信号(データ)をラッチする。データラッチ回路403は、直前にラッチしたデータを、加算器402に送るとともに、読み出し回路11の入力Aにも送る。このデータは、読み出し回路11において抵抗中央値として利用される。
上述の動作から理解されるように、全チャンネル加算器401および乗算器202は、抵抗値誤差信号を累積する際の感度を調整する感度調整回路をなす。また、加算器402およびデータラッチ回路403は制御信号Bから指定されるタイミングに従って、1つ前の抵抗中央値と、感度が調節された抵抗値誤差信号とを加算して累積する累積加算回路をなす。
図21および図22の例から明らかなように、感度調整回路と、抵抗値誤差信号の累積加算回路とを設けることに関し、各回路の具体的な構成、および各回路の接続関係は種々考えられる。上述の開示を踏まえると、当業者であればそのような変形例を設計することができる。本開示の趣旨に鑑みれば、現時点における抵抗中央値と、読み出された抵抗値情報との差分を抵抗値誤差信号として得て、その抵抗値誤差信号を累積する際の感度が調整でき、抵抗値誤差信号の累積結果を新たな抵抗中央値として更新する、1つの回路または組み合わされた複数の回路は、本開示の範疇である。
図23は、中央値検出回路25が実際に抵抗中央値を算出した結果を示す。横軸にPUFデータ領域8を読み出した回数、縦軸にアップダウンカウンタの値を示している。PUFデータ領域8の抵抗値情報を予め読み出しておき、計算機により中央値を算出した場合の理論値が17であった。図からわかるように、読み出し回数が30回あたりで、ほぼ理論値である17に収束している様子が分かる。このように本開示の提案方式であれば抵抗値ばらつきの中央値を安定的に検出でき、中央値でもってディジタルIDデータ(PUFデータ)が良好に生成できる。
抵抗値のばらつきから、中央値検出回路25がその中央値を得るフローを第1のステップとする。この第1のステップは図13のS4ステップと図14のS9ステップに相当する。そして中央値の演算が完了した後、読み出し回路11が再度各メモリセルの抵抗値情報を読み出し、中央値との関係からディジタルIDデータを生成する。これを第2のステップとすると、第2のステップは図13のS5および図14のS10に相当する。なお、第2のステップには図14のS11,S12,S13を含んでも良い。
上述の処理は、主として制御回路15の制御および動作によって実現され得る。制御回路15は、上述の処理が行われるよう各構成要素を制御することにより、ディジタルIDデータを更新する。より具体的には以下のとおりである。
読み出し回路11が個体識別情報を生成する際、読み出し回路11は、新たに選択した予め定められた所定の数のメモリセルから抵抗値情報を取得する。中央値検出回路25は、新たに取得された抵抗値情報を利用して新たに2値化基準値を算出する。その後、読み出し回路11は、新たに選択した所定の数の異なるメモリセルから抵抗値情報を取得する。制御回路は、各抵抗値情報と2値化基準値の情報とを取得し、抵抗値情報と新たに算出された2値化基準値との関係に応じて個体識別情報を生成する。読み出し回路11によって得られる抵抗値情報は、周辺の温度、装置電源電圧の変動、更には経年劣化によって逐次相対的に変動する。前述のように、PUFデータ領域8の抵抗値情報が読み出される度に、中央値を再取得することで、現在の最適な値に追従させることが可能になる。
(中央値のオフセットによる複数のディジタルIDデータを得る方法の変形例)
次に中央値検出回路25の変形例を説明する。
図24は、中央値検出回路25の変形例の一例を示すブロック図である。図24の構成要素のうち、図21に記載されている構成要素と同じまたは実質的に同じ構造および/または機能を有する者には同じ参照符号を付して、その説明は省略する。図21の構成と比較して、図24の中央値検出回路25には、新たに加算器300と切替器301とが追加されている。
加算器300には制御回路15を介してオフセットが入力される。オフセットは、装置外部から入力され、または装置内部で生成される。加算器300は、オフセットと乗算器202の出力とを加算し、加算結果を切替器301のb端子に出力する。
切替器301のa端子には乗算器202の出力が接続されている。切替器301は、制御回路15から入力される制御信号Cに従って端子aの信号を出力するか、端子bの信号を出力するかを選択的に切り替える。
図24において、前述した第1のステップでは、制御信号Cの設定により切替器301はa端子に切り替える。つまり、第1のステップにおいては図21と実質的に等しい動作が行われる。
次に第2のステップ(図13のS5および図14のS10)では、制御信号Cの設定により切替器301はb端子に切り替える。b端子からは第1のステップで演算された抵抗中央値に制御回路15から入力されるオフセットを加算した結果を示す信号が出力される。
読み出し回路11は、切替器301によって選択された端子からの出力である中央抵抗値を受け取り、ディジタルIDデータを生成する。a端子から出力された中央抵抗値を用いて生成されるディジタルIDデータと、b端子から出力された、オフセットが加算された中央抵抗値を用いて生成されるディジタルIDデータとは、オフセットの有無に起因する差が存在し得る。
オフセットが加算されないIDデータを第1のディジタルIDデータとし、オフセットが加算されたIDデータを第2のディジタルIDデータとする。第1ディジタルIDデータと第2ディジタルIDデータはデータパターンが異なり、更にそれらはいずれも装置固有のデータとして利用可能である。
オフセットは、可変の値として中央値検出回路25に入力することができる。すなわち、オフセット量を正負に変化させるだけでデータパターンの異なる複数のディジタルIDデータが複数生成できることになる。
オフセット量が装置外部から入力されるならば、装置外部からの入力に対して異なるディジタルIDデータを返すことができる。これは、PUF技術におけるチャレンジ・レスポンス認証に相当する。複数のIDデータはオフセット量に対して固有のデータとなり、そのレスポンスは物理的に複製できない関数であるPUFに当たる。具体的なチャレンジ・レスポンス認証の例示は後述する。
(ディジタルIDデータの乱数性を検定する変形例)
図25は、本開示の実施形態の変形例を示す。図25の構成要素のうち、図18に記載されている構成要素と同じまたは実質的に同じ構造および/または機能を有するものには同じ参照符号を付して、その説明は省略する。
図25に示される不揮発メモリ装置10には、新たに乱数検定回路310が追加されている。乱数検定回路310は、得られたディジタルIDデータの乱数性を検定するために設けられている。
ディジタルIDデータの乱数性を検定する理由は、ハッキングにおけるフォルト攻撃(Fault Analysis Attack)対策のためである。フォルト攻撃とはICのセキュアブロックに対して強い電磁波またはレーザーを与え、回路に強制的な欠陥(fault)を与えて暗号器のアルゴリズムおよび鍵データを解析する攻撃である。例えばフォルト攻撃によりディジタルIDデータが全て1、または全て0のデータに変えられ、それを鍵データとして暗号化されると暗号データの解析が容易になる。または、正しいディジタルIDデータをデバイス鍵として利用して秘密鍵が暗号化されている場合に、フォルト攻撃によって得られたディジタルIDデータを用いて秘密鍵を復号化すると、その復号化プロセスが推測される恐れもある。その結果、秘密鍵が割り出される可能性がある。このような問題を未然に防ぐために、乱数検定回路による乱数性の検定が有効である。
乱数検定回路310にはディジタルIDデータがsビット単位で入力される。乱数検定にはχ二乗(カイ二乗)検定が用いられる。χ二乗検定とはsビットのディジタルデータのうち4ビット単位で取り出し、4ビットで表される16のディジタルデータパターンの頻度を累積する。0から15のディジタル値の出現個数をカウントし、理論値の差分を積算し、積算値がゼロに近いほど乱数性が高いとされる。
一般化したχ二乗演算について述べると、データパターンの取得個数をAとしたときD=A÷n(nはデータパターン数)となるDが、各データパターンの取得個数の理想値となり、このとき(Xn−D)2÷D(Xnは各データパターン毎の取得数)を、データパタ
ーン数n分だけ累積した値がχ二乗値となる。具体的には例えば、4ビットで表されるデータパターンのχ二乗値を演算するとき、データパターンの種類は0〜15の16通りある。sが32ビットとのき、sビットを16回取得すると合計512ビットのデータ数となる。512÷4=128であることから、取得されるデータパターン数は128個となる。128個のデータパターンが均一に0〜15のパターンに分かれるのであれば、128÷16=8となり、各データパターンの取得個数の理想値Dは8となる。つまり、データパターン毎の取得個数がXn(nは0から15の整数)であるとき、全てのデータパターンごとに(Xn−8)2÷8を求め、全てを合計したものが、取得した512ビット分のχ二乗値となる。
このように演算されたχ二乗値は、図25のデータ入出力回路6に送られ、更に装置外に出力される。装置外ではχ二乗値が所定の値以下であることを検定し、得られたディジタルIDデータが暗号鍵等に用いられるレベルの乱数性があるかを確認し、問題なければ利用する。
なお、不揮発メモリ装置10が、乱数検定回路310から得られた検定結果をもとに、たとえば制御回路15などを用いて、生成した個体識別情報が利用可能か否かを装置外に通知してもよい。
上述のように、乱数検定回路310を設けてデータの乱数性を検定することにより、フォルト攻撃等を受けた場合であっても、秘密鍵の窃取を未然に防ぐことができる。
図26は、メモリセルの規格化メモリセル電流と、本開示の読み出し回路で読み出した抵抗値情報の関係を示す。このときのメモリセル電流とは所定の読み出し電圧を印加したときのDC電流を一般的なテスター装置で測定したものである。つまり、全てのメモリセルに対して値が等しければ等しい抵抗値であることを示している。図にプロットされた点は、同一チップ内にある144個のセンスアンプにより得られた抵抗値情報をまとめてプロットしたものである。図からわかるようにメモリセル電流と回路で得た抵抗値情報には明確な相関がない。つまり、チャンネルごとに、更にはICごとにセンスアンプの特性がばらつき、絶対的な抵抗値と、回路により計測される抵抗値情報との関係は、センスアンプごとに異なることを示している。センスアンプの特性は、アンプを構成するトランジスタのVtなどのばらつきにより発生する。通常であれば、このようなばらつきは抑制して均一なセンスアンプにすることが望まれるが、PUF技術に応用する場合は回路ばらつきをエンハンスするような設計が好ましい。例えば、図19のLOAD用PMOSトランジスタ34のランダムばらつきが多くなるようなトランジスタサイズを用いるなどがあげられる。なお、ランダムばらつきを増やす手法は、種々考えられ設計事項であり割愛する。このようにセンスアンプのランダムばらつきが大きいと抵抗値の絶対値と、回路で得られる抵抗値情報とに明確な相関がなくなり、プローブなのでメモリセルを直接読み取られた場合であってもディジタルIDデータを予測することは困難になる。
次に、ディジタルIDデータのエラーレートを低くする方法を説明する。
図27は、本実施形態に係る不揮発性メモリ装置10を示すブロック図である。なお、図27に示す不揮発性メモリ装置10はあくまで一例であり、不揮発性メモリ装置10の具体的構成が図27に示される構成に限定されるものではない。
図18に示す不揮発性メモリ装置10と比較して、本実施形態に係る不揮発性メモリ装置10は、マスクデータ生成回路9をさらに備える。マスクデータ生成回路9は、読み出し回路11が生成したディジタルデータに基づいて、追加の書き込み動作を実行するメモリセルと実行しないメモリセルとの区別に用いるマスクデータを生成する。書き込み回路14は、生成されたマスクデータに基づいて、追加の書き込み動作を実行するメモリセルに対して追加の書き込み動作を行う。マスクデータおよび追加の書き込み動作の詳細については後述する。
図28は、本実施形態の不揮発性メモリ装置10の動作の一例として、ディジタルIDデータを生成する動作を示すフローチャートである。以下、図28を参照しつつ、不揮発性メモリ装置10の動作を説明する。
まず、ステップS21において、ディジタルIDデータ領域(PUF領域)8に対してフォーミングを実行する。図29は、フォーミング処理を示すフローチャートである。ステップS31において、書き込み回路14は、HRパルス(例えば+3.0V、10ms)をメモリセル21に印加した後に、ステップS32においてLRパルス(例えば−3.0V、5ms)を更にメモリセル21に印加する。これらステップS31およびS32の処理により、抵抗変化型のメモリセル21を初期の絶縁状態から、低抵抗値状態へ遷移させる。ステップS33にて、読み出し回路11は、ステップS31およびS32の書き込み動作を行ったメモリセル21の抵抗値情報を読み出し、低抵抗値範囲にあるか否かを判定する。低抵抗値範囲にないと判定したメモリセル21に対して、書き込み回路14は、再び同条件のHRパルスおよびLRパルスを印加する。書き込み回路14および読み出し回路11は、ステップS31およびS32の書き込み動作を行ったメモリセル21の抵抗値が低抵抗値範囲にあると判定されるまで、それら書き込み動作および抵抗値情報の読み出し動作を繰り返し実行する。ディジタルIDデータ領域8の全てのメモリセル21(全ビット)の抵抗値が低抵抗値範囲にあると判定されるまでこれらの動作を繰り返し(ステップS34およびS35)、全てのメモリセル21がPassしたとき、フォーミングフローは終了する。
次にステップS22(図28)で、ディジタルIDデータ領域8のディジタルIDデータを抽出するための判定値を算出する。図30は判定値算出処理を示すフローチャートである。ステップS41において、読み出し回路11は、ディジタルIDデータ領域8内のビットの抵抗カウント値を読み出し、COUNT_OUTに値が保持される。
ここで、ステップS41において、読み出し回路11がカウント値(抵抗カウント値の一例)を出力する動作について、図19、図20A、図20Bを用いて、具体的に説明する。
図20Aは、選択されたメモリセルを放電方式にて読み出す場合のタイミングチャートである。
T1のプリチャージ期間では、制御信号PREはロウレベルとなり、プリチャージPMOSトランジスタ33はオン状態になる一方で、制御信号LOADはハイレベルとなり、ロードPMOSトランジスタ34はオフ状態となる。選択ワード線WLsの電位はロウレベルでトランジスタ24はオフ状態となっている。
クランプ回路のクランプNMOSトランジスタ35のゲート端子にVCLMPの電圧が印加されることで、選択ビット線BLsの電位はVCLMPからVT(クランプNMOSトランジスタ35の閾値)を引いた電位までプリチャージされる。選択ソース線SLsはGNDに固定される。ノードSENはVDDまでプリチャージされる。また、コンパレータの出力に接続されている抵抗値カウンタの制御信号RSTはハイレベルとなっているため、抵抗値カウンタ出力端子COUNT_OUTは0の固定値が出力される。
T2のセンス期間では、制御信号PREをハイレベルとすることで、プリチャージPMOSトランジスタ33がオフ状態となり、制御信号LOADがロウレベルになることで、ロードPMOSトランジスタ34はオン状態になる。また選択ワード線WLsの電位をハイレベルにすることで、NMOSトランジスタ24はオン状態となる。
そして選択ビット線BLsから選択されたメモリセル21sを介して選択ソース線SLsへと電圧が印加され、放電が開始される。放電開始と同時に抵抗値カウンタ32の制御信号RSTがロウレベルとなり、カウントが始まる。そして、1カウント毎に、コンパレータ31によって、ノードSENの電位と参照電圧VREFの電圧が比較され、ノードSENが参照電圧VREFを下回るまで、カウント値が加算され続ける。読み出し時の抵抗変化素子23の抵抗値が高いほど放電時間は長くなり、カウント値は大きくなる。
また、コンデンサ36の容量を調整することで、放電時間を調整することも可能である。コンデンサ36の容量が大きければ、ノードSENの放電時間も遅くなるため、カウント値は長くなり、容量が小さければ、ノードSENの放電時間は速くなり、カウント値は短くなる。コンデンサ36は、例えば、放電時間が速い低抵抗レベルの検出精度を向上させたいとき、効果的である。カウントの間隔はクロック信号CLKで決定されるため、その動作周波数が抵抗カウント値の分解能となる。しかし、低い抵抗値の場合、放電時間がカウント値の分解能を上回る可能性があるため、区別できなくなる場合がある。そこで、ノードSENに容量負荷を上乗せし、遅延させることで、意図的に分解能で検出できるレベルの放電特性に調整することが可能となる。
T3のラッチ期間では、放電が開始された後、ノードSENが参照電圧VREFを下回ったときの抵抗値カウンタ32のカウント値がラッチされる。ラッチされたカウント値は、COUNT_OUTに出力され、マスクデータ生成回路9に格納されて、抵抗変化素子23のカウント値として扱われる。
T4のリセット期間においては、データ出力が完了すると、選択ワード線WLsの電位がロウレベルとされ、選択されたメモリセル21sのトランジスタ24がオフとなり、読み出し動作が終了する。
抵抗値カウンタ32のカウント値は中央値検出回路25に入力され、中央値検出回路25は入力された抵抗カウント値を元に判定値(中央値)を算出する(ステップS42)。ステップS43では、算出された判定値を比較器135の入力Aで保持する。
図20Bは、選択されたメモリセルを充電方式にて読み出す場合のタイミングチャートである。
T1のディスチャージ期間では、制御信号PRE、LOAD共にハイレベルとなり、プリチャージPMOSトランジスタ33とロードPMOSトランジスタ34は何れもオフ状態となる。また選択ワード線WLsの電位はロウレベルでトランジスタ24もオフ状態となっている。
クランプ回路のクランプNMOSトランジスタ35のゲート端子にVCLMPの電圧が印加され、選択ワード線WLsの電位をハイレベルにすることで、NMOSトランジスタ24はオン状態となるため、ノードSEN、選択ビット線BLsは抵抗変化素子23を介してGNDへ接続され、GNDレベルまでディスチャージされる。また、コンパレータの出力に接続されている抵抗値カウンタの制御信号RSTはハイレベルとなっているため、抵抗値カウンタ出力端子COUNT_OUTは0の固定値が出力される。
T2のセンス期間では、制御信号LOADがロウレベルになることで、ロードPMOSトランジスタ34はオン状態になり、ロードPMOSトランジスタ34、クランプNMOSトランジスタ35、選択メモリセル21sの電流パスが形成され、ノードSEN、選択ビット線BLsへ充電が開始される。充電開始と同時に、抵抗値カウンタ32の制御信号RSTがロウレベルとなり、カウントが始まる。そして、1カウント毎に、コンパレータ31によって、ノードSENの電位と参照電圧VREFの電圧が比較され、ノードSENが参照電圧VREFを上回るまで、カウント値が加算され続ける。読み出し時の抵抗変化素子23の抵抗値が低いほど充電時間は長くなり、カウント値は大きくなる。
また、コンデンサ36は放電方式における放電時間と同様に、充電方式も充電時間を調整することも可能である。詳細な説明は、割愛する。
T3のラッチ期間では、充電が開始された後、ノードSENが参照電圧VREFを上回ったときの抵抗値カウンタ32のカウント値がラッチされる。ラッチされたカウント値は、COUNT_OUTに出力され、マスクデータ修正回路に格納されて、抵抗変化素子23のカウント値として扱われる。
T4のリセット期間においては、データ出力が完了すると、選択ワード線WLsの電位がロウレベルとされ、選択されたメモリセル21sのトランジスタ24がオフとなり、読み出し動作が終了する。
抵抗値カウンタ32のカウント値は中央値検出回路25に入力され、中央値検出回路25は入力された抵抗カウント値を元に判定値(中央値)を算出する。(ステップS42)。ステップS43では、算出された判定値を比較器135の入力Aで保持する。
図19の構成であれば、放電方式と充電方式の両方を用いることができる。しかし、放電方式の場合は、比較器135からは低抵抗で1、高抵抗で0が出力され、充電方式の場合は低抵抗で0、高抵抗で1が出力され、論理が反対になるため、取り扱いには注意が必要である。
コンデンサ36は容量を持つものであれば特に指定はない。例えば、MOSキャパシタを用いてもよいし、MIMキャパシタを用いてもよいし、配線の寄生容量を用いてもよい。
ステップS42では読み出し回路11によって読み出されたn個の抵抗カウント値が中央値検出回路25に入力される。中央値検出回路25は抵抗カウント値を受け取り後、制御信号Aにより、n個の中から順番に1つずつ抵抗値情報を乗算器202へ送信し、アップダウンカウンタ201によって随時、中央値が調整される。ディジタルIDデータ領域内のデータに対して、最終アドレスの抵抗値のアップダウンカウンタによる処理が完了したときの出力の値が中央値(判定値)として比較器135の入力Aに保持される。
判定値の算出後、ステップS23(図28)において、マスクデータ生成回路9は、マスクデータを生成する。図31はマスクデータを生成する処理を示すフローチャートである。ステップS51において、マスクデータ生成回路9は、中央値検出回路25によって算出された中央値を判定値として設定する。ステップS52において、読み出し回路11は、ディジタルIDデータ領域8の抵抗値情報の読み出しを実行し、抵抗カウント値を読み出す。ステップS53において、マスクデータ生成回路9は、判定値とディジタルIDデータ領域8内の抵抗値との大小を、読み出し回路11の比較器135を用いて比較する。判定値よりも抵抗値が小さいメモリセルには“1”データを割り当て、マスクデータはオフに設定する(ステップS54)、一方、判定値よりも抵抗値が小さくないメモリセルには、“0”データを割り当て、マスクデータはオンに設定する(ステップS55)。各マスクデータはデータ入出力回路6に保持される。ステップS56において、ディジタルIDデータ領域8の全ビットに対して、マスクデータが生成されたか否かを判定し、全ビットに対して生成されていなければ、次のアドレスに進み、全ビットに対して生成されていれば、マスクデータ生成のフローが終了する(ステップS56およびS57)。
次に、ステップS24(図28)において、書き込み回路14は、ステップS23で生成したマスクデータを用いて、“1”データを割り当てられたビット(メモリセル)に対してのみ、追加パルスを印加する。図32は追加パルスを印加する処理を示すフローチャートである。ステップS61において、データ入出力回路6に保持されたマスクデータを書き込み回路14へ設定し、ステップS62およびS63において、HRパルス(+1.8V、50ns)とLRパルス(−2.4V、50ns)の交互パルスが“1”データに割り当てられたビットのみに印加される。交互パルスの印加は所定の回数(例えば50回)繰り返される(ステップS64)。ステップS65において、ディジタルIDデータ領域8の“1”データに割り当てられた全ビットに対して処理が完了しているかを確認し、完了していなければ次のアドレスに選択が切り替えられる(ステップS66)。ディジタルIDデータ領域8内の“1”データに割り当てられた全ビットへ追加パルスが印加されるまで、処理を実行する(ステップS65およびS66)。
次に、S25(図28)においてディジタルIDデータを生成する。図33はディジタルIDデータを生成する動作を示すフローチャートである。ステップS71〜S73は図30のステップS41〜S43と実質的に同じ動作のため詳細な説明は割愛する。ステップS74にて、読み出し回路11は、中央値検出回路25にて算出された判定値を設定し、ステップS75においてディジタルIDデータ領域8の抵抗カウント値を読み出す。そして、比較器135を用いて、ステップS76〜S80に示すように判定値よりも抵抗値が小さい場合は“1”データ、判定値よりも抵抗値が小さくない場合は“0”データを出力Aから出力する。この0と1のデータが、ディジタルIDデータとして扱われる。検査時には、書込み処理後にこの方式で読み出しを実行し、ディジタルIDデータとして登録される。ディジタルIDデータ登録によって、エラー訂正用のパリティデータが生成される。実使用の場合も同様な動作が実行され、ディジタルIDデータが抽出される。
次に、図34と図35を用いて、本実施形態の不揮発性メモリ装置10の動作により得られる効果について説明する。
図34は、ディジタルIDデータ領域8に対して、ステップS21(図28)のフォーミング処理を実行した後の各ビットのセル電流の累積確率分布を示したグラフである。ディジタルIDデータとして、ユニーク性の高いデータを生成するには、分布の中央値を判定値として設定し、0と1のデータ個数差を出来るだけ均等に切り分けることが重要である。しかし、図34のように、中央値を判定値として設定した場合、中央値付近にはセル電流値が互いに近いビットが多数存在する。このように、判定値付近にビットが密集すると、ディジタルIDデータの読み出し時に、抵抗変化素子の持つ抵抗値揺らぎによって、0と1が入れ替るデータが多数存在し、結果として読み出し毎のエラーレートが増加してしまう。図34のセル電流分布の状態でディジタルIDデータを連続的に読み出したときのエラーレートと読み出し回数の関係を図36に示している。前述したように、揺らぎによる影響から、2%前後のエラーレートの発生が確認できる。
一方、ステップS24(図28)の追加パルスを印加後のセル電流の累積確率分布を示したグラフを図35に示している。図35に示すように、“1”データ側にのみ、追加パルスを印加することで、“1”データ側のビットが僅かに高電流化するため、中央値付近に僅かながら、ウィンドウが存在する。この分布であれば、判定値(中央値)を用いて、データを生成しても、判定値付近に存在するビットが少ないため、抵抗値揺らぎに伴う、データの入れ替わりを軽減でき、結果としてエラーレートが抑制できる。図35のセル電流分布の状態でディジタルIDデータを連続的に読み出したときのエラーレートと読み出し回数の関係を図37に示している。前述したように抵抗揺らぎによるデータの入れ替わりの影響が小さくなり、エラーレートを0〜0.1%まで改善されていることが確認できる。
なお、図37に示す関係は、図32のステップS64に示すように、交互パルスの印加を50回繰り返したときの結果であるが、この交互パルスの印加回数はエラーレートを制御する上で重要なパラメータである。図38Aは、交互パルス印加回数と一定時間経過後のエラーレートの関係を示すグラフであり、横軸は交互パルス印加回数を示し、縦軸はエラーレートを示している。図38Bは、図38Aのグラフの領域A1を拡大した図である。図38Aおよび図38Bに示すとおり、交互パルス印加回数を増やすにつれて、エラーレートが減少していることが確認できる。すなわち、交互パルスの回数を調整することで、所定の範囲内であれば、任意のエラーレートを含ませたディジタルIDデータを生成することができる。例えば、制御回路15は、ステップS24(図28)における追加の書き込み動作における繰り返し回数、電圧、パルス幅のうちの少なくとも1つを変更して、書き込み回路14に書き込み動作を実行させる。これにより、ディジタルIDデータのエラーレートを任意に調整することができる。
また、ディジタルIDデータ領域8のメモリセル21を複数のグループに分け、グループ毎に追加の書き込み動作の条件を異ならせて、エラーレートが互いに異なる複数のグループを生成してもよい。これにより、ディジタルIDデータ領域8は、互いにエラーレートが異なる複数の領域を有することができる。
次に、ディジタルIDデータの乱数性を向上させる方法を説明する。
図39は、本実施形態に係る不揮発性メモリ装置10を示すブロック図である。なお、図に示す不揮発性メモリ装置10はあくまで一例であり、不揮発性メモリ装置10の具体的構成が図39に示される構成に限定されるものではない。
図27に示す不揮発性メモリ装置10と比較して、本実施形態に係る不揮発性メモリ装置10は、データ調整回路5をさらに備える。データ調整回路5は、例えば、読み出し回路11が生成したディジタルデータの0と1の個数差に応じて、判定値(2値化基準値)の値の調整の要否を決定する。また、例えば、データ調整回路5は、読み出し回路11が生成したディジタルデータの0と1の個数差に応じて、選択されたメモリセルから抵抗値情報を読み出してディジタルデータを生成する動作を再度実行するか否かを決定する。
図40は、本実施形態に係る中央値検出回路25を示す図である。図24に示す中央値検出回路25と比較して、本実施形態に係る中央値検出回路25は、判定値レジスタ302をさらに備える。判定値レジスタ302は、乗算器202が出力した値を保持する。加算器300は、オフセットと判定値レジスタ302の出力とを加算し、加算結果を切替器301のb端子に出力する。切替器301のa端子には判定値レジスタ302の出力が接続されている。切替器301は、制御信号Cに従って端子aの信号を出力するか、端子bの信号を出力するかを選択的に切り替える。
図41は、データ調整回路5を示す図である。データ調整回路5は、個数差累積回路51と、マスクデータ調整回路52と、マスクデータレジスタ53とを備える。個数差累積回路51は、ディジタルデータの0と1の個数差を累積して出力する。マスクデータレジスタ53は、ディジタルデータの0と1に対応したメモリセルのうちの書き込みを実行するメモリセルと実行しないメモリセルの区別に用いるマスクデータを保持する。マスクデータ調整回路52は、個数差累積回路51の出力に応じて、マスクデータをマスクデータレジスタ53に保持させるか、中央値検出回路25に判定値の値を調整して更新させるかを選択する。図42は、個数差累積回路51を示す図である。個数差累積回路51は、個数差抽出器56と、第1レジスタ57と、第2レジスタ58とを備える。データ調整回路5の動作の詳細は後述する。
上述したように、図28に示すステップS23では、“1”データに対応するメモリセルに追加書込みを実行するためのマスクデータを生成する。以下、本実施形態におけるマスクデータを生成するまでの処理を説明する。
図43は、本実施形態におけるマスクデータを生成するまでの処理の一例を示している。ステップS101では、データ調整回路5は、変数の初期化を行う。変数Xはグループ単位毎の0と1データの個数差を表している。変数Yは処理中のグループと処理済のグループの0と1データの累積個数差を表している。変数Zは処理後の0と1データの累積個数差を表している。
ステップS102では、判定値の設定が行われる。この判定値の初期値として、図30に示すステップS43にて比較器135の入力Aに保持された判定値を用いる。
ステップS103において、読み出し回路11は、グループ単位(n個単位)で抵抗カウント値を読み出す。例えば、ディジタルIDデータ領域(PUF領域)8のメモリセルグループから選択されたM(Mは正の整数)ビットの小メモリセルグループのそれぞれから抵抗カウント値を読み出す。
ステップS104では、読み出された抵抗カウント値と判定値とを比較器135にて比較し、出力Bに示すように、判定値よりも抵抗値が小さい場合、“1”データとして割り当て、変数Xには1が加算される(ステップS105)。判定値よりも抵抗値が小さくない場合は0データとして割り当て、変数Xには1が減算される(ステップS106)。個数差抽出器はこのように0と1の個数差を算出していき、第1レジスタ57は、その個数差(変数X)を保持する。
ステップS107にて、グループ内のビットに対して、ステップS104の処理が実行されたかが判定されると、ステップS109で、変数Yとして、処理中のグループを考慮した、0と1データの累積個数差(以下、「累積個数差」と称する)が更新される。第2レジスタ58は、複数の小メモリセルグループの各々から抵抗カウント値を読み出して得られる複数の個数差を累積して保持している。第1レジスタ57の出力(変数X)と、前回までの累積個数差(変数Z)が格納されている第2レジスタ58の出力との和をマスクデータ調整回路52は受け取る。
ステップS110において、マスクデータ調整回路52は、更新された累積個数差(変数Y)の絶対値が、所定の個数差(定数A)以内に収まっているかを判定する。累積個数差(変数Y)の絶対値が定数A未満であれば、変数Yを変数Zに代入し(ステップS111)、その処理におけるグループで生成した0と1のデータを用いてマスクデータを生成し(ステップS112)、ステップS116にて、ディジタルIDデータ領域8内の全ビットに対してマスクデータが生成されているかを確認し、完了していなければ、ステップS118にて変数Xに0を代入し、次のグループのマスクデータ処理へと進む。マスクデータの生成処理および追加の書き込み処理は、図31および図32を参照して上述した通りであるため、ここでは詳細な説明は省略する。なお、追加の書き込み処理は、Mビットの小メモリセルグループ毎に行ってもよく、その時の累積の個数差は第2レジスタ58で更新される。また、追加の書き込み処理は、ステップS116で全てのグループに対する処理が完了した時点で行ってもよい。
一方で、ステップS110において、累積個数差(変数Y)の絶対値が定数A以上であった場合、0と1に偏りが発生しているため、調整が必要となる。
図43の例に示す0と1の偏りの調整方法としては、ステップS113にて、マスクデータ調整回路52は、現状の累積個数差は0が多いか、1が多いかの判定を実行する。中央値検出回路25は、0が多ければ、現在の判定値から定数Bを加算(ステップS114)し、1が多ければ、定数Bを減算(ステップS115)し、判定値の調整を行って更新する。ステップS117にて第1レジスタ57は変数Xに0を代入する。そして、ステップS102の処理に戻り、再度、同じグループにて、更新後の判定値を基にして、0と1データの個数差が求められる。累積個数差(変数Y)の絶対値が定数A未満になるまで、判定値調整が実行される。
図44は、本実施形態におけるマスクデータ生成するまでの処理の第2の例を示している。ステップS101からS110までの処理、およびステップS111、S112、S116、S118の処理は、図43に示す処理と同様であるため、ここでは詳細な説明は省略する。
図44のステップS110において、累積個数差(変数Y)の絶対値が定数A以上であった場合、0と1に偏りが発生しているため、調整が必要となる。図44の例における0と1の偏りの調整方法は、抵抗変化素子23が持つ抵抗値揺らぎ現象を利用する。すなわち、選択されたMビットのメモリセルから抵抗値情報を読み出してディジタルデータを生成するたびに、ディジタルデータの内容が変化することを利用する。
そのため、処理の流れとしては、ステップS119に示すように、変数Xの値に0を代入後、再度同じグループに対して、読出し回路11にて抵抗値情報の取得が実行される。このとき、取得した抵抗値情報は、抵抗変化素子23が持つ揺らぎ現象により、前回取得した抵抗値情報とは異なるビットが存在する。そのため、判定値付近において0と1が入れ替るビットが発生し、それに応じて、0と1の個数差も変動する。このように、揺らぎ現象によるランダムな抵抗値変動を利用して、所定の個数差(定数A)未満に累積個数差(変数Y)の絶対値が収まるまで、ステップS103からS110の処理が実行される。
図28に示すステップS24では、ステップS23にて生成されたマスクデータを基に、“1”データ側のメモリセルに対して追加書込みが実行される。この処理により、“1”データ側のセル電流分布が高電流側にシフトするため、エラーレートの小さなディジタルIDデータを生成することができ、データの信頼性を向上させることができる。
ディジタルIDデータを生成する処理は、図33を参照して上述したとおりであるため、ここでは詳細な説明は省略する。不揮発性メモリ装置10の検査時には、書込み処理後にこの方式で読み出しを実行し、ディジタルIDデータとして登録される。ディジタルIDデータ登録によって、エラー訂正用のパリティデータが生成される。実使用の場合も同様な動作が実行され、ディジタルIDデータが抽出される。なお、フォーミング処理および追加の書き込み処理は、検査時にのみ実行されてもよい。
次に図45、図46、図47を用いて、本実施形態における書込みアルゴリズムの効果について説明する。図45は、と1の累積の個数差を管理しなかった場合の個数差の推移を示している。図46は、図43に示したアルゴリズムを用いた場合の個数差の推移を示している。図45および図46の横軸はグループ処理数を示し、縦軸は累積の個数差を示している。図45のグラフではグループ処理数が増えるにつれ、0と1の個数差の偏りが増加(1024ビットで個数差54)していることがわかる。一方、図46のグラフでは、グループ処理数が増えても、所定の個数差範囲(この結果においては、|A|=8)を超えないように調整を行っているため、フロー処理後でも、僅かな個数差(1024ビットで個数差4)に制御できていることが確認できる。これら生成された0、1データを用いて、業界標準の乱数検定NISTを実施したときの結果を図47に表として示す。改善前のアルゴリズムでは、NIST評価の全8項目をPassすることができなかったが、改善後のアルゴリズムにおいては、全8項目のPassを達成し、ディジタルIDデータに高い乱数性であることが確認できた。
なお、上述の「グループ」とは、同時に抵抗カウント値を読み出すことができる並列処理単位であってもよい。抵抗カウント値とマスクデータを保存するレジスタは保持しておくデータ数が増えるほど、回路の面積規模が大きくなるため、例えば、並列処理単位で一旦マスクデータを生成し、追加書込みを実行することで、搭載するレジスタの個数を最小限に留めることが可能である。
また、ディジタルIDデータ読出し時の判定値の算出は、毎時行う必要はない。例えば、判定値情報をレジスタではなく、不揮発性メモリに格納しておき、使用時に不揮発性メモリから読出しを行い、エラーが発生した場合のみ、判定値を更新する方法でもよい。
また、ディジタルIDデータを記録する領域とユーザデータを記録する領域は互いに分離してもよいし、しなくてもよい。
以上、説明したように、本開示の構成によれば、PUF技術の特徴である以下が満足できる。
特徴(1):本開示の抵抗変化型不揮発性メモリ装置において、同一の抵抗値範囲にあるメモリセルの抵抗値のばらつきは、人為的に故意のデータパターンで書き込むことができないため、このような複製できない物理的な現象から固有のディジタルIDデータ(個体識別情報)得ることができる。
特徴(2):本開示の抵抗変化型不揮発性メモリ装置において、ディジタルIDデータ(個体識別情報)に用いる抵抗値ばらつきはセンスアンプにより読み出される。センスアンプを構成するトランジスタには微細プロセス特有のランダムばらつきがあり、並列に読み出す各センスアンプごとのメモリセルの抵抗値情報は絶対値が異なる。従って、物理的に抵抗値を読み取ったとしてもセンスアンプを介して得た抵抗値情報と異なり、物理的には正しいディジタルIDデータを予測できない。すなわち、抵抗値ばらつきの物理的な現象は内部に搭載されているセンスアンプの動的な回路制御によってのみ得られる。
特徴(3):メモリ素子である抵抗変化型メモリセルはパーコレーションモデルに基づく抵抗値揺らぎを備えており、得られたIDデータには誤りがあり、誤り訂正回路によってのみ真のIDデータが得られる。
そして、本開示のPUF技術に基づいたディジタルIDデータには次の良好な性能がある。
性能(1):前述の特徴(3)であるデータ誤り現象は、本開示の構成によれば、一回ごとの誤り率は2〜3%と低いものの、累積の誤り率は読み出し回数に応じて14%以上にも増加するため機械学習攻撃に対して極めて強いという良好な特徴をもつ。
性能(2):抵抗値のばらつき分布が標準偏差の正規分布に従ってばらついている為、そこから得られるディジタルIDデータは良好な乱数性を示す。
性能(3):本開示はICおよびSoCに搭載される不揮発性メモリ装置の回路を大部分共用しているため、回路増加が僅かであり、回路オーバーヘッドが小さくかつ、読み出し電流も小さい。
性能(4):本開示はICおよびSoCに搭載される不揮発性メモリ装置を用いているため、並列読み出し数が多い。実施例では32bit並列制御のメモリアレイでデータを取得したが、一回の読み出しが500ns程度であり、生成速度は64Mbpsと非常に高速である。並列読み出し数が多いため、サイドチャネルアタックなどの電磁解析では各ビット状態を特定することが困難でハッキングに対する耐性が高い。
性能(5):専用のメモリセルを用いないSRAM−PUF、およびグリッジPUFのようにデータ誤り率が15%に比べ、本開示の構成によれば誤り率が2〜3%と小さい。このため誤り訂正回路の回路規模を小さくできる。
性能(6):専用のメモリセルを用いないSRAM−PUFのように、電源オン時のみ生成タイミングが制限されず、前述したように並列数によるが、一般的な並列数でも64Mbpsと非常に高速に生成できる。
以上のように、本開示のPUF技術によって得られるディジタルIDデータは、一長一短ある従来のPUF技術とは異なり、必要な特徴と性能要件を全て満足する良好なディジタルIDデータを得ることができる。本願のディジタルIDデータを用いれば、前述した秘密鍵の安全な保管、および認証におけるセキュリティー性を向上できるとともに、ICの複製などの脅威からユーザを確実に保護できる。
(ICカードへの応用例)
一つの応用例は、本開示により生成されるディジタルIDデータによる秘密鍵の暗号と、暗号化秘密鍵のフォーミングによる書き込みによるデータ隠蔽、さらに認証方法を開示する。
図48は、本開示の応用例にかかる通信システム500の構成例を示すブロック図である。図48において、通信システム500は、リーダライタおよびデータサーバー501(以降、リーダライタと略す)と、ICカード502とを備えている。リーダライタ501と、ICカード502とは、例えば、それぞれが有するアンテナなどを介して無線による通信を行う。
(リーダライタ側)
リーダライタ501は、RAM503と、入出力インタフェース(I/F)部504と、CPU505と、暗号処理回路506と、不揮発性メモリ装置515とを有している。
リーダライタ501の入出力I/F部504は、外部との無線通信を行ってデータを送受信するためのインタフェースであり、たとえば無線通信回路として実現され得る。入出力I/F部504は、RFアンテナを有している。入出力I/F部504は、所定の電磁波を輻射し、負荷の変化を利用して、ICカード502が近づけられたか否かを検出する。また、入出力I/F部504は、例えば、発振回路(図示せず)から供給される所定の周波数の搬送波を、CPU505から供給されるデータに基づいて変調する。入出力I/F部504は、該生成された変調波を、電磁波としてアンテナ(図示せず)から出力することで、近傍に配置されたICカード502へと各種のデータを送信する。また、アンテナを介してICカード502から送られた変調波を受信して復調し、得られたデータをCPU505に供給する。不揮発性メモリ装置215は、上述の不揮発性メモリ装置10に対応する。不揮発性メモリ装置515は、秘密鍵記憶部508と、データ記憶部509と、ROM部510と、固有ID記憶部511と、全ICカード固有ID記憶部540とを備えている。
ROM部510は、本開示の不揮発性メモリ装置515が備える第2種データ記憶用メモリセル群のうちの所定のアドレス領域に相当する。リーダライタ501のCPU505は、ROM部510記憶されているプログラムをRAM503にロードし、該プログラムを用いて各種の処理を実行する。RAM503にはCPU505が各種の処理を実行するために必要なデータなども一時的に記憶される。RAM503は、SRAM(Static Random Access Memory)またはDRAM(Dynamic Random Access Memory)などの揮発性記憶装置が用いられてもよい。あるいは、RAM503は、本開示の不揮発性メモリ装置の第2種データ記憶用メモリセル群の一部で構成されていてもよい。
固有ID記憶部511は本開示のディジタルIDデータを生成に用いるメモリセル群であり、リーダライタに固有のIDデータが本開示の方式により生成できる。さらに全ICカード固有ID記憶部は、第1種データまたは第2種データで記憶されるメモリセル群で構成されており、運用される複数のICカード502で異なるディジタルIDデータの全てが記憶されている。なお、全ICカードのディジタルIDデータは、リーダライタ固有のディジタルIDデータを暗号鍵として暗号化されたデータで記憶されることが望ましい。
CPU505は、暗号処理回路506を制御することにより、予め定められた暗号アルゴリズムに基づいて、データの暗号化と復号化を行う。暗号アルゴリズムとしては、トリプルDES(Data Encryption Standard)、AES(Advanced Encryption Standard)などが例示できる。これらは、いわゆる1つの秘密鍵を用いて暗号と復号を行う共通鍵暗号方式の暗号アルゴリズムである。また、RSA暗号といった秘密鍵と公開鍵の2つの異なる鍵を用い、暗号化時の鍵と、復号化時の鍵を異ならせることで暗号通信を行う公開鍵方式でもよい。この場合は、後述する秘密鍵記憶部508に通信相手の公開鍵と、通信者自身の秘密鍵の両方を格納してもよい。これらの重要な鍵データは、固有ID記憶部511から生成される本開示のディジタルIDデータを暗号鍵として暗号化して、暗号化秘密鍵または暗号化公開鍵として格納することが望ましい。前述したようにPUF技術を用いて生成されたディジタルIDデータはリーダライタに固有であり、複製およびハッキングが困難である。従って、それを用いて暗号化された暗号化秘密鍵または暗号化公開鍵がコピーされてもディジタルIDデータがコピーできないIC固有のデータであるため安全である。
リーダライタ501においてデータの暗号化または復号化を行う場合、例えば、CPU505は、不揮発性メモリ装置515内の所定のアドレス領域である秘密鍵記憶部508に記憶された暗号化秘密鍵を、本開示のディジタルIDデータを鍵として復号化し、元の秘密鍵を得て、暗号化または復号化すべきデータとともに、暗号処理回路506に供給する。暗号処理回路506は、供給された秘密鍵を用いてデータの暗号化または復号化を実行する。
データ記憶部509は、CPU505がプログラムを実行する上で必要なデータが記憶されている。データ記憶部509において、所定のデータは、本開示のディジタルIDデータを鍵として暗号化して記憶されていてもよい。なお、所定のデータは、初期状態のメモリセルを利用して記憶されていてもよいし、可変状態のメモリセルを利用して記憶されていてもよい。
秘密鍵記憶部508としては、前述した第1種データ記憶用メモリセル群を用いてもよいし、第2種データ記憶用メモリセル群を用いてもよい。第2種データ記憶用メモリセル群を用いる場合は、他の一般的な不揮発性メモリを用いるのと大きな違いはない。第1種データ記憶用メモリセルを用いる場合は、抵抗変化素子の初期状態と可変状態との違いでデータを記憶するため、通常の読み出し閾値のコマンドではデータを読み出すことができない。よって、鍵情報の隠蔽が行える。第1実施形態で述べたように、可変状態にあるメモリセルから“0”と“1”のディジタルデータを読み出すためには、第2閾値を用いて“0”と“1”の判定が行なわれる。第2閾値で第1種データ記憶用メモリセル群を読み出すと、ほとんどのメモリセルが“0”にデコードされ、正規のデータを読み出せない。なお、秘密鍵記憶部508において、秘密鍵は、前述の暗号化秘密鍵として記憶されることが望ましい。
また、メモリセルアレイ内の自由なアドレスに第1種データ記憶用メモリセル群と第2種データ記憶用メモリセル群とを配置できる。よって、プローブを用いて物理的に抵抗値を直接読み出すような解析を行おうとしても、そのメモリセルが第1種データ記憶用メモリセル群および第2種データ記憶用メモリセル群のいずれに属するのかを特定が困難である。更にディジタルIDデータで暗号化されたデータか、非暗号のデータかの区別が困難であるため、更に解析を複雑にせしめる。
以上のように、図48に示す通信システム500は、秘密鍵の漏洩に対し強い耐タンパ性(tamper resistant)があるといえる。さらに第1種データ記憶用メモリセル、および本開示のディジタルIDデータは、高温においてのデータ信頼性にも優れ、データ誤りが許容されない秘密鍵の記憶および暗号化にも最適である。
秘密鍵記憶部508に記憶される秘密鍵は、ICカード502の秘密鍵記憶部526に記憶されている秘密鍵と同じものとされてもよい。ICカード502に対応するリーダライタ501であって、ICカード502に固有のディジタルIDデータであるカードIDの読み出しを許可されたリーダライタ501のみに、予め秘密鍵が記憶されていてもよい。
固有のディジタルIDデータは、本開示の実施の形態で説明したPUF技術に基づき固有ID記憶部525にデータ誤りを内在した状態で記憶されている。
固有ディジタルIDデータは前述したようにICカードごとに固有の乱数になりうる。このため、ICカード固有の各種暗号化に用いることができる。
(ICカード側)
ICカード502は、入出力インタフェース(I/F)部520と、CPU521と、暗号処理回路522と、RAM523と、不揮発性メモリ装置530とを有している。
ICカード502の入出力I/F部520は、外部との無線通信を行ってデータを送受信するためのインタフェースであり、たとえば無線通信回路として実現され得る。入出力I/F部520は、例えば、コイル状のアンテナとコンデンサにより構成されるLC回路が一般的に用いられる。ICカードのアンテナがリーダライタ501に近づけられると、リーダライタ501から輻射される所定の周波数の電磁波と共振するようになっている。また、入出力I/F部520は、アンテナにおいて交流磁界により励起された電流を整流化および安定化し、ICカード502の各部に直流電源として供給する。
入出力I/F部520は、アンテナを介して受信した変調波を検波して復調し、復調後のデータをデコードしてディジタルデータに復元しCPU521に供給する。また、デコードしたディジタルデータに周波数と位相をロック(PLLと呼ばれるクロック再生技術:装置内部に電圧可変のオシレータが搭載されており、入力されたディジタルデータにあわせて、位相誤差を検出および積分して制御用の電圧を生成し、オシレータの制御電圧として入力することで入力されたデータのサンプリング周波数を一致させ、かつ位相も固定したクロックを得る)させた受信用のクロック信号(図示せず)が発生され、ディジタルデータのデータラッチ用のクロック信号として供給される。
さらに、入出力I/F部520は、所定の情報をリーダライタ501に送信する場合、CPU521から入力されエンコードされたデータにしたがってアンテナの負荷に変動を発生させ変調し、アンテナを介してリーダライタ501に送信する。
ICカード502は本開示の不揮発性メモリ装置530を備える。不揮発性メモリ装置530は本実施形態の上述の不揮発性メモリ装置515に対応する。よって以下の説明では、共通する要素については同一の符号および名称を付して適宜参照する。なお、本応用例では、不揮発性メモリ装置530が不揮発性記憶装置としても機能する。
不揮発性メモリ装置530は、ICカードごとに固有のディジタルIDデータを記憶する固有ID記憶部525と、秘密鍵データを記憶する秘密鍵記憶部526と、CPU521がプログラムを実行する上で必要なデータが記憶されたデータ記憶部527と、CPU521が実行するプログラムが記憶されたROM部528とを備える。それらの全てが1個のメモリセルアレイ(図1のメモリセルアレイ90、図18および図25のメモリセルアレイ20)に包含されている。そして、CPU521はROM部528に記憶されているプログラムをRAM523にロードし、実行するなどして各種の処理を行う。ROM部528に記憶されたプログラムデータは、固有ID記憶部にあるメモリセル群をもとに生成される本開示のディジタルIDデータを鍵として用いて暗号化されて記憶されても良い。
CPU521は、暗号処理回路522を制御することにより、予め定められた暗号アルゴリズムに基づいて、データの暗号化と復号化を行う。上述したように、典型的な暗号方式には、送信側と受信側で同じ秘密鍵で暗号化と復号化を行う共通鍵方式と、異なる公開鍵と秘密鍵で暗号化と復号化を行う公開鍵方式がある。以下の説明では、共通鍵方式を採用した場合について説明する。
なお、公開鍵方式では、ICカード側が暗号化した暗号文データをICカード502がリーダライタ501側に送信する場合は、予めリーダライタ501側から入手した公開鍵で暗号化する。逆に、リーダライタ501側から送られてきた暗号文データは、ICカード502側で予め記憶してある秘密鍵にて復号する。以上の点以外は、公開鍵方式も共通鍵方式と同様である。公開鍵方式における公開鍵と秘密鍵は、互いに唯一のペアの鍵であるため、互いに暗号化されたデータを復号することで同時に相互認証もできることになる。
ICカード502においても、カードリーダでの説明と同様に秘密鍵記憶部526へ記憶する鍵データは、本開示のPUF技術に基づき固有ID記憶部525にあるディジタルIDデータにより暗号化された暗号化秘密鍵または暗号化公開鍵として保存される。更に、その記憶には第1種データ記憶用メモリセルにより記憶されうる。ICカード502において、データの暗号化または復号化を行う場合、CPU521が、不揮発性メモリ装置530内の第1種データ記憶用メモリセル群の一部である秘密鍵記憶部526に記憶された暗号化秘密鍵データを、図3の第1の閾値で読み出す特殊なリードコマンドにて読み出す。読み出された暗号化秘密鍵データは、本開示のディジタルIDデータにより復号化され元の秘密鍵データとする。CPU521は、秘密鍵データを、暗号化または復号化すべきデータとともに、暗号処理回路522に供給する。暗号処理回路522は、供給された秘密鍵を用いて、供給されたデータの暗号化または復号化を実行する。
データ記憶部527は、CPU521がプログラムを実行する上で必要なデータが記憶されている。データ記憶部527において、所定のデータが平文のまま記憶されていてもよいし、秘密鍵で暗号化されて記憶されていてもよいし、ディジタルIDデータを鍵として暗号化されて記憶されてもよい。なお、所定のデータは、初期状態のメモリセルを利用して記憶されていてもよいし、可変状態のメモリセルを利用して記憶されていてもよい。
このような暗号化と復号化の機能を備えた通信システム500において、ICカード502とリーダライタ501との通信の第1ステップについて以下に述べる。
ICカード502において各ICカード固有のディジタルIDデータは、本開示の実施の形態で説明したPUF技術に基づき固有ID記憶部525にデータ誤りを内在した状態で存在している。
CPU521は、各ICカード固有のディジタルIDデータを固有ID記憶部525から読み出す。CPU521は、読み出した暗号化秘密鍵データとディジタルIDデータを鍵として暗号処理回路522に供給する。暗号処理回路522は供給されたディジタルIDデータを鍵として暗号化秘密鍵を元の秘密鍵に復号化する。そして、今度は元の秘密鍵を用いてディジタルIDデータを暗号化する。暗号化された暗号化ディジタルIDデータは入出力I/F部520、504を介して、リーダライタ側のCPU505に供給される。
CPU505は、リーダライタ501内の不揮発性メモリ装置515の秘密鍵記憶部508から、秘密鍵データを読み出す。CPU505は、秘密鍵データと、受信した暗号化ディジタルIDデータを、暗号処理回路506に供給する。暗号処理回路506は、供給された秘密鍵データを用いて、暗号化ディジタルIDデータを復号化する。復号化されたディジタルIDデータは固有ID記憶部511が記憶している各IDデータと照合される。各IDデータの中に復号化されたIDデータと一致するものがあれば、通信したICカード502がデータ通信を行う資格のある正規のICカード502であると認証される。そして、その後のデータ通信が継続して実行される。
リーダライタ501とICカード502との相互認証において別の変形例を示す。
リーダライタ501の全ICカード固有ID記憶部540は、前述した中央値のオフセット量を変更して得られる複数のディジタルIDデータをICカードごとに保管している。リーダライタ501は、オフセット量と、受け取りたいディジタルIDデータのアドレス情報を暗号化し、チャレンジデータとして、ICカード502に送信する。ICカード502は受け取ったチャレンジデータを復号化してオフセット量とアドレス情報を得て、それに応じたディジタルIDデータを暗号化し、レスポンスデータとしてリーダライタ501に返信する。
リーダライタ501は受け取ったレスポンスデータを復号化して、ICカード502ごとに固有のディジタルIDデータを、予め全ICカード固有ID記憶部に登録されているIDデータと検索・照合を行い。所定のビット数以上が一致していることを確認してICカードを認証する。
レスポンスデータであるディジタルIDデータには、前述したような誤りデータを含んだ状態で送られるため、ハッキングに対して耐性が高い。ディジタルIDデータは、各ICカードで異なる乱数でありデータ間に十分なハミング距離があれば所定のビット数の誤りデータがあったとしても何れのICカードのIDデータかを特定することができる。このため、チャレンジデータの送信と、レスポンスデータの受信を繰り返すことで、ICカードが正規のカードであることを特定できる。さらに認証に用いられているデータがICカードごとに固有かつ誤りのあるデータであるためデータの解析が困難であり非常に高いセキュリティーが担保された認証が実現できる。
以上のように、通信システム500によれば、固有ディジタルIDデータ生成、秘密鍵記憶、データ記憶、プログラムデータ記憶の機能を、ただ一つの不揮発性メモリ装置で実現できる。別途PUF技術に基づくID生成用の回路を搭載する必要がなく、回路規模の増加を極力抑制したICカードのようなモバイル型アプリケーションが提供できる。
RAM503の機能を不揮発性メモリ装置515が備えるメモリセルアレイで実現してもよい。RAM523の機能を不揮発性メモリ装置530が備えるメモリセルアレイで実現してもよい。
情報の記憶手段として第1種データ記憶用メモリセルと第2種データ記憶用メモリセルとを任意に混在させて各種データを保存できるため、どのエリアのメモリセルが何れの状態で情報が記憶されているかを第三者に対し秘匿することができる。さらに、物理的なプローブを用いてメモリ内のデータを直接読み出すようなハッキングからもディジタルIDデータを防衛でき、極めて耐タンパ性の優れたアプリケーションが提供できる。
なお、ディジタルIDデータを暗号鍵として用いて暗号化されたデータ(暗号化データ)が、ICカード502に記憶されることは必須ではない。たとえば、リーダライタ501が暗号化データを読み取り、リーダライタ501のデータ記憶部509が暗号化データを記憶してもよい。さらにリーダライタ501が暗号化データを外部に設けられたサーバ(図示せず)に送信し、そのサーバの記憶装置が記憶してもよい。暗号化データがICカード502に記憶されていない場合には、復号化の手順は以下のとおりである。すなわち、ICカード502のCPU521は、入出力I/F部520を介して外部に記憶されている暗号化データを受信する。またCPU521は、各ICカード固有のディジタルIDデータを固有ID記憶部525から生成する。その後、暗号処理回路522が、ディジタルIDデータを復号鍵として用いて当該暗号化データを復号化する。
上記説明から、当業者にとっては、本開示の多くの改良および他の実施形態が明らかである。従って、上記説明は、例示としてのみ解釈されるべきであり、本開示を具体化する最良の態様を当業者に教示する目的で提供されたものである。本開示の精神を逸脱することなく、その構造および/又は機能の詳細を実質的に変更できる。
本開示にかかる不揮発性メモリ装置は、メモリ装置内部に含まれる抵抗変化型メモリ素子の抵抗値のばらつきから複製できない固有のディジタルIDデータを、安定かつ高セキュアに生成し、ディジタルIDデータを用いたデータ暗号及びホストコンピュータ及びサーバに認証を伴うアクセスを行うICやSoCなどへの搭載として有用である。
6 データ入出力回路
10 不揮発メモリ装置
11 読み出し回路
14 書き込み回路
15 制御回路
16 アドレス入力回路
17 カラムデコーダ回路
18 ロウデコーダ回路
20 メモリセルアレイ
22 メモリ本体部
25 中央値検出回路(演算回路)
310 乱数検定回路

Claims (19)

  1. 可変状態では、異なる複数の電気的信号の印加に応じて抵抗値が複数の抵抗値範囲の間を不揮発的かつ可逆的に遷移する性質を有する複数のメモリセルがアレイ状に配置されたメモリセルアレイと、
    各々が前記複数のメモリセルの1つの前記抵抗値に関する複数の抵抗値情報を取得する読み出し回路と、
    前記複数の抵抗値情報の少なくとも一部に基づいて2値化基準値を算出する演算回路と、
    データ調整回路と、を備え、
    前記読み出し回路は、前記2値化基準値に基づいて、前記複数の抵抗値情報の各々に対して0または1を割り当てることにより、0のディジタルデータおよび1のディジタルデータの少なくとも1つを含む複数のディジタルデータを生成し、
    前記データ調整回路は、前記複数のディジタルデータにおける前記0のディジタルデータおよび前記1のディジタルデータの個数差に応じて、前記2値化基準値の調整の要否を決定する、不揮発性メモリ装置。
  2. 前記複数の抵抗値範囲は、第1抵抗値範囲、および前記第1抵抗値範囲より抵抗値が低い第2抵抗値範囲を含み、
    前記複数のメモリセルの各々は、初期状態では、前記抵抗値が前記第1および第2抵抗値範囲のいずれとも異なる初期抵抗値範囲にあり、
    前記複数のメモリセルの各々は、電気的ストレスが印加されることにより、前記初期状態から前記可変状態に変化し、
    前記複数のメモリセルの各々は、前記可変状態では、第1極性の電圧パルスが印加されることによって、前記抵抗値が前記第2抵抗値範囲から前記第1抵抗値範囲に遷移し、第2極性の電圧パルスが印加されることによって、前記抵抗値が前記第1抵抗値範囲から前記第2抵抗値範囲に遷移し、
    前記演算回路は、前記電気的ストレスの印加後に、前記2値化基準値を算出する、請求項1に記載の不揮発性メモリ装置。
  3. 前記電気的ストレスの印加に相当する第1の書き込み動作を行う書き込み回路をさらに備え、
    前記第1の書き込み動作は、前記初期状態の前記複数のメモリセルの各々に対して、前記第1極性の第1電圧パルスと前記第2極性の第2電圧パルスとを交互に印加する書込み動作であり、
    前記読み出し回路は、前記第1の書き込み動作を行った前記複数のメモリセルの各々の前記抵抗値情報を読み出し、読み出した前記抵抗値情報に基づき、前記第1の書き込み動作を行った前記複数のメモリセルの各々の前記抵抗値が前記第2抵抗値範囲にあるか否かを判定し、
    前記書き込み回路および前記読み出し回路は、前記第1の書き込み動作を行った前記複数のメモリセルの各々の前記抵抗値が前記第2抵抗値範囲にあると判定されるまで、前記第1の書き込み動作および前記抵抗値情報の読み出しを繰り返す、請求項2に記載の不揮発性メモリ装置。
  4. 前記データ調整回路は、
    前記複数の前記ディジタルデータにおける前記0のディジタルデータおよび前記1のディジタルデータの個数差を累積して出力する累積回路と、
    前記複数のメモリセルのうち第2の書き込み動作を実行するメモリセルと前記第2の書き込み動作を実行しないメモリセルとの区別に用いるマスクデータを保持するマスクデータレジスタと、
    前記累積回路の出力に応じて、前記マスクデータを前記マスクデータレジスタに保持させるか、前記演算回路に前記2値化基準値の値を調整させるかを選択するマスクデータ調整回路と、
    を備える、請求項1から3のいずれかに記載の不揮発性メモリ装置。
  5. 前記累積回路は、第1レジスタと第2レジスタとを備え、
    前記複数のメモリセルの前記少なくとも一部は、前記複数のメモリセルの第1部分および第2部分を含み、
    前記読み出し回路は、前記複数のメモリセルの前記第1部分の各々について、第1の複数のディジタルデータを生成し、前記複数のメモリセルの前記第2部分の各々について、第2の複数のディジタルデータを生成し、
    前記データ調整回路は、
    前記第1の複数のディジタルデータにおける前記0のディジタルデータおよび前記1のディジタルデータの第1個数差を前記第1レジスタに保持させ、
    前記第1個数差、および前記第2の複数のディジタルデータにおける前記0のディジタルデータおよび前記1のディジタルデータの第2個数差を累積して第2レジスタに保持させ、
    前記第1個数差と前記第2個数差の和の絶対値が所定の値を上回った場合、
    前記データ調整回路は前記第1レジスタに保持された前記第1個数差の値をリセットし、
    前記演算回路は前記2値化基準値を調整する、請求項4に記載の不揮発性メモリ装置。
  6. 前記調整された前記2値化基準値を用いて生成された前記複数のディジタルデータにおける、前記0のディジタルデータおよび前記1のディジタルデータのうち何れか一方に対応したメモリセルに対して、前記第2の書込み動作を行う書き込み回路をさらに備え、
    前記第2の書込み動作は、第1極性の第3電圧パルスと第2極性の第4電圧パルスとを交互に印加する動作である、請求項4または5に記載の不揮発性メモリ装置。
  7. 前記書き込み回路は、前記マスクデータレジスタに保持された前記マスクデータに基づき、前記第2の書込み動作を実行するメモリセルに対して前記第2の書込み動作を行う、請求項6に記載の不揮発性メモリ装置。
  8. 前記第2の書込み動作は、検査時の1回のみ実行される、請求項6または7に記載の不揮発性メモリ装置。
  9. 前記第1の書込み動作は、検査時の1回のみ実行される、請求項3に記載の不揮発性メモリ装置。
  10. 可変状態では、異なる複数の電気的信号の印加に応じて抵抗値が複数の抵抗値範囲の間を不揮発的かつ可逆的に遷移する性質を有する複数のメモリセルがアレイ状に配置されたメモリセルアレイと、
    各々が前記複数のメモリセルの1つの前記抵抗値に関する複数の抵抗値情報を取得する読み出し回路と、
    前記複数の抵抗値情報の少なくとも一部に基づいて2値化基準値を算出する演算回路と、
    データ調整回路と、を備え、
    前記読み出し回路は、前記2値化基準値に基づいて、前記複数の抵抗値情報の各々に対して0または1を割り当てることにより、0のディジタルデータおよび1のディジタルデータの少なくとも1つを含む複数のディジタルデータを生成し、
    前記抵抗値は時間の経過とともに変動する性質を有し、
    前記データ調整回路は、前記複数のディジタルデータにおける前記0のディジタルデータおよび前記1のディジタルデータの個数差に応じて、前記読み出し回路による前記抵抗値情報の取得および前記複数のディジタルデータの生成を再度実行する否かを決定する、不揮発性メモリ装置。
  11. 前記複数の抵抗値範囲は、第1抵抗値範囲、および前記第1抵抗値範囲より抵抗値が低い第2抵抗値範囲を含み、
    前記複数のメモリセルの各々は、初期状態では、前記抵抗値が前記第1および第2抵抗値範囲のいずれとも異なる初期抵抗値範囲にあり、
    前記複数のメモリセルの各々は、電気的ストレスが印加されることにより、前記初期状態から前記可変状態に変化し、
    前記複数のメモリセルの各々は、前記可変状態では、第1極性の電圧パルスが印加されることによって、前記抵抗値が前記第2抵抗値範囲から前記第1抵抗値範囲に遷移し、第2極性の電圧パルスが印加されることによって、前記抵抗値が前記第1抵抗値範囲から前記第2抵抗値範囲に遷移し、
    前記演算回路は、前記電気的ストレスの印加後に、前記2値化基準値を算出する、請求項10に記載の不揮発性メモリ装置。
  12. 前記電気的ストレスの印加に相当する第1の書き込み動作を行う書き込み回路をさらに備え、
    前記第1の書き込み動作は、前記初期状態の前記複数のメモリセルの各々に対して、前記第1極性の第1電圧パルスと前記第2極性の第2電圧パルスとを交互に印加する書込み動作であり、
    前記読み出し回路は、前記第1の書き込み動作を行った前記複数のメモリセルの各々の前記抵抗値情報を読み出し、読み出した前記抵抗値情報に基づき、前記第1の書き込み動作を行った前記複数のメモリセルの各々の前記抵抗値が前記第2抵抗値範囲にあるか否かを判定し、
    前記書き込み回路および前記読み出し回路は、前記第1の書き込み動作を行った前記複数のメモリセルの各々の前記抵抗値が前記第2抵抗値範囲にあると判定されるまで、前記第1の書き込み動作および前記抵抗値情報の読み出しを繰り返す、請求項11に記載の不揮発性メモリ装置。
  13. 前記データ調整回路は、
    前記複数の前記ディジタルデータにおける前記0のディジタルデータおよび前記1のディジタルデータの個数差を累積して出力する累積回路と、
    前記複数のメモリセルのうち第2の書き込み動作を実行するメモリセルと前記第2の書き込み動作を実行しないメモリセルとの区別に用いるマスクデータを保持するマスクデータレジスタと、
    前記累積回路の出力に応じて、前記マスクデータを前記マスクデータレジスタに保持させるマスクデータ調整回路と、
    を備える、請求項10から12のいずれかに記載の不揮発性メモリ装置。
  14. 前記累積回路は、第1レジスタと第2レジスタとを備え、
    前記複数のメモリセルの前記少なくとも一部は、前記複数のメモリセルの第1部分および第2部分を含み、
    前記読み出し回路は、前記複数のメモリセルの前記第1部分の各々について、第1の複数のディジタルデータを生成し、前記複数のメモリセルの前記第2部分の各々について、第2の複数のディジタルデータを生成し、
    前記データ調整回路は、
    前記第1の複数のディジタルデータにおける前記0のディジタルデータおよび前記1のディジタルデータの第1個数差を前記第1レジスタに保持させ、
    前記第1個数差、および前記第2の複数のディジタルデータにおける前記0のディジタルデータおよび前記1のディジタルデータの第2個数差を累積して第2レジスタに保持させ、
    前記第1個数差と前記第2個数差の和の絶対値が所定の値を上回った場合、
    前記データ調整回路は前記第1レジスタに保持された前記第1個数差の値をリセットする、請求項13に記載の不揮発性メモリ装置。
  15. 前記読み出し回路による前記抵抗値情報の取得および前記複数のディジタルデータの生成を再度実行して得られた前記複数のディジタルデータにおける、前記0のディジタルデータおよび前記1のディジタルデータのうち何れか一方に対応したメモリセルに対して、前記第2の書込み動作を行う書き込み回路をさらに備え、
    前記第2の書込み動作は、第1極性の第3電圧パルスと第2極性の第4電圧パルスとを交互に印加する動作である、請求項13または14に記載の不揮発性メモリ装置。
  16. 前記書き込み回路は、前記マスクデータレジスタに保持された前記マスクデータに基づき、前記第2の書込み動作を実行するメモリセルに対して前記第2の書込み動作を行う、請求項15に記載の不揮発性メモリ装置。
  17. 前記第2の書込み動作は、検査時の1回のみ実行される、請求項15または16に記載の不揮発性メモリ装置。
  18. 前記第1の書込み動作は、検査時の1回のみ実行される、請求項12に記載の不揮発性メモリ装置。
  19. 可変状態では、異なる複数の電気的信号の印加に応じて抵抗値が複数の抵抗値範囲の間を不揮発的かつ可逆的に遷移する性質を有する複数のメモリセルがアレイ状に配置されたメモリセルアレイと、
    各々が前記複数のメモリセルの1つの前記抵抗値に関する複数の抵抗値情報を取得する読み出し回路と、
    前記複数の抵抗値情報の少なくとも一部に基づいて2値化基準値を算出する演算回路と、
    データ調整回路と、を備え、
    前記読み出し回路は、前記2値化基準値に基づいて、前記複数の抵抗値情報の各々に対して0または1を割り当てることにより、0のディジタルデータおよび1のディジタルデータの少なくとも1つを含む複数のディジタルデータを生成し、
    前記データ調整回路は、前記複数のディジタルデータにおける前記0のディジタルデータおよび前記1のディジタルデータの個数差に応じて、前記2値化基準値の調整の要否を決定する、不揮発性メモリ装置と、
    前記不揮発性メモリ装置の動作を制御する信号が入力され、前記複数のディジタルデータに関連する情報が出力される入出力インタフェース部と、を備えた集積回路カード。
JP2015226862A 2014-11-21 2015-11-19 耐タンパ性を有する不揮発性メモリ装置、および集積回路カード Active JP6532024B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2014236709 2014-11-21
JP2014236709 2014-11-21

Publications (2)

Publication Number Publication Date
JP2016105278A true JP2016105278A (ja) 2016-06-09
JP6532024B2 JP6532024B2 (ja) 2019-06-19

Family

ID=56010869

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015226862A Active JP6532024B2 (ja) 2014-11-21 2015-11-19 耐タンパ性を有する不揮発性メモリ装置、および集積回路カード

Country Status (2)

Country Link
US (1) US9548113B2 (ja)
JP (1) JP6532024B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017216030A (ja) * 2016-05-26 2017-12-07 パナソニックIpマネジメント株式会社 不揮発性メモリ装置
EP3396671A1 (en) 2017-04-26 2018-10-31 Renesas Electronics Corporation Semiconductor device, and unique id generation method
US11044108B1 (en) 2019-12-24 2021-06-22 CERA Licensing Limited Temperature sensing physical unclonable function (PUF) authentication system
US11516028B2 (en) 2019-12-24 2022-11-29 CERA Licensing Limited Temperature sensing physical unclonable function (PUF) authentication system
JP7553201B2 (ja) 2020-04-30 2024-09-18 インターナショナル・ビジネス・マシーンズ・コーポレーション 抵抗処理ユニットを物理的に複製困難な関数として用いるセキュアなチップ識別

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6106043B2 (ja) * 2013-07-25 2017-03-29 ルネサスエレクトロニクス株式会社 半導体集積回路装置
US9653161B2 (en) * 2014-11-21 2017-05-16 Panasonic Intellectual Property Management Co., Ltd. Tamper-resistant non-volatile memory device comprising an arithmetic circuit that, in operation, calculates a binary reference value based on at least a part of the pieces of resistance value information, a read circuit that, in operation, selectively assigns, based on the binary reference value, one of two values to each of the pieces of resistance value information, and a write circuit that, in operation, performs a write operation corresponding to one of the two values among memory cells
CN105632543B (zh) * 2014-11-21 2018-03-30 松下知识产权经营株式会社 具有防篡改性的非易失性存储装置及集成电路卡
JP6587188B2 (ja) * 2015-06-18 2019-10-09 パナソニックIpマネジメント株式会社 乱数処理装置、集積回路カード、および乱数処理方法
US10855477B2 (en) 2016-08-04 2020-12-01 Macronix International Co., Ltd. Non-volatile memory with physical unclonable function and random number generator
US10715340B2 (en) 2016-08-04 2020-07-14 Macronix International Co., Ltd. Non-volatile memory with security key storage
US10680809B2 (en) 2016-08-04 2020-06-09 Macronix International Co., Ltd. Physical unclonable function for security key
US10911229B2 (en) 2016-08-04 2021-02-02 Macronix International Co., Ltd. Unchangeable physical unclonable function in non-volatile memory
US11258599B2 (en) 2016-08-04 2022-02-22 Macronix International Co., Ltd. Stable physically unclonable function
GB2554717B (en) * 2016-10-06 2018-11-21 Quantum Base Ltd Providing a specific output in response to a specific input
US10423805B2 (en) 2016-12-22 2019-09-24 International Business Machines Corporation Encryption engine with an undetectable/tamper-proof private key in late node CMOS technology
EP3340216B1 (en) * 2016-12-23 2020-01-29 Secure-IC SAS Secret key generation using a high reliability physically unclonable function
US9811689B1 (en) * 2016-12-27 2017-11-07 Macronix International Co., Ltd. Chip ID generation using physical unclonable function
US9852791B1 (en) 2016-12-27 2017-12-26 Macronix International Co., Ltd. Semiconductor memory device, chip ID generation method thereof and manufacturing method thereof
WO2018183572A1 (en) * 2017-03-29 2018-10-04 Board Of Regents, The University Of Texas System Reducing amount of helper data in silicon physical unclonable functions via lossy compression without production-time error characterization
US10381088B2 (en) * 2017-03-30 2019-08-13 Silicon Storage Technology, Inc. System and method for generating random numbers based on non-volatile memory cell array entropy
DE102017205818A1 (de) * 2017-04-05 2018-10-11 Robert Bosch Gmbh Einstellbare physikalische unklonbare Funktion
US10572190B2 (en) * 2017-05-17 2020-02-25 Winbond Electronics Corp. Physical unclonable function code providing apparatus and providing method thereof
CN108958650B (zh) * 2017-05-22 2021-06-15 旺宏电子股份有限公司 电子系统及其操作方法
US11552810B2 (en) * 2017-08-03 2023-01-10 Arizona Board Of Regents On Behalf Of Northern Arizona University PUF with dissolvable conductive paths
WO2019027839A1 (en) * 2017-08-03 2019-02-07 Arizona Board Of Regents On Behalf Of Northern Arizona University GENERATION OF NATIVE TERNARY RANDOM NUMBERS
US20190095299A1 (en) * 2017-09-28 2019-03-28 Cnex Labs, Inc. Storage system with machine learning mechanism and method of operation thereof
DE102018123103A1 (de) 2017-10-13 2019-04-18 Samsung Electronics Co., Ltd. Halbleitervorrichtung, die Sicherheitsschlüssel erzeugt, Verfahren zum Erzeugen eines Sicherheitsschlüssels und Verfahren zum Registrieren des Sicherheitsschlüssels
US10103895B1 (en) 2017-10-13 2018-10-16 Macronix International Co., Ltd. Method for physically unclonable function-identification generation and apparatus of the same
CN107766748B (zh) * 2017-10-25 2020-07-07 深圳市新国都支付技术有限公司 数据保护装置的触点
JP7005398B2 (ja) * 2018-03-15 2022-02-04 キオクシア株式会社 半導体記憶装置
TWI657456B (zh) * 2018-05-14 2019-04-21 慧榮科技股份有限公司 用來於記憶裝置中藉助於機器學習來進行的記憶體存取管理之方法,記憶裝置及其控制器以及電子裝置
CN109558759B (zh) * 2018-11-20 2021-05-14 电子科技大学 一种用于非接触式智能卡电磁攻击的模拟信号调理电路
US11075916B2 (en) * 2019-06-28 2021-07-27 Microsoft Technology Licensing, Llc Entitlement-driven communication of functionality privileges between network-based services
KR20220010210A (ko) 2020-07-17 2022-01-25 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 읽기 동작 방법
US11380379B2 (en) 2020-11-02 2022-07-05 Macronix International Co., Ltd. PUF applications in memories
US11782090B2 (en) * 2020-12-11 2023-10-10 PUFsecurity Corporation Built-in self-test circuit and built-in self-test method for physical unclonable function quality check
TW202243109A (zh) * 2021-04-26 2022-11-01 華邦電子股份有限公司 半導體結構
KR20220167979A (ko) * 2021-06-15 2022-12-22 삼성전자주식회사 물리적 복제 방지 기능을 갖는 메모리 장치 및 이를 포함하는 메모리 시스템

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008059946A1 (fr) * 2006-11-17 2008-05-22 Panasonic Corporation Mémoire de type à changement de résistance
US8325508B2 (en) * 2009-06-08 2012-12-04 Panasonic Corporation Writing method for variable resistance nonvolatile memory element, and variable resistance nonvolatile memory device
US8395925B2 (en) * 2009-06-08 2013-03-12 Panasonic Corporation Forming method for variable resistance nonvolatile memory element, and variable resistance nonvolatile memory device
JP5291248B2 (ja) * 2010-03-30 2013-09-18 パナソニック株式会社 抵抗変化型不揮発性記憶素子のフォーミング方法及び抵抗変化型不揮発性記憶装置
WO2012014291A1 (ja) 2010-07-28 2012-02-02 学校法人立命館 耐タンパ性メモリ集積回路およびそれを利用した暗号回路
JP5474705B2 (ja) 2010-08-23 2014-04-16 ルネサスエレクトロニクス株式会社 半導体装置
JP4972238B2 (ja) * 2010-09-28 2012-07-11 パナソニック株式会社 抵抗変化型不揮発性記憶素子のフォーミング方法
WO2012045627A1 (en) 2010-10-04 2012-04-12 Intrinsic Id B.V. Physical unclonable function with improved start-up behavior
DK2693370T3 (en) 2011-03-31 2016-09-26 Ictk Co Ltd Device and method for generation of a digital value
JP5813380B2 (ja) 2011-06-03 2015-11-17 株式会社東芝 半導体記憶装置
US9293182B2 (en) * 2011-12-15 2016-03-22 Everspin Technologies, Inc. Random access memory architecture for reading bit states
WO2013157261A1 (ja) * 2012-04-20 2013-10-24 パナソニック株式会社 不揮発性記憶素子の駆動方法および不揮発性記憶装置
JP5966150B2 (ja) * 2012-07-31 2016-08-10 パナソニックIpマネジメント株式会社 不揮発性記憶素子の駆動方法及び不揮発性記憶装置
WO2014119329A1 (ja) 2013-02-01 2014-08-07 パナソニック株式会社 不揮発性記憶装置
JP5838353B2 (ja) * 2013-03-18 2016-01-06 パナソニックIpマネジメント株式会社 抵抗変化素子の評価方法、評価装置、検査装置、及び不揮発性記憶装置
JP6425137B2 (ja) * 2014-06-12 2018-11-21 パナソニックIpマネジメント株式会社 データ記録方法および不揮発性記憶装置
CN105632543B (zh) * 2014-11-21 2018-03-30 松下知识产权经营株式会社 具有防篡改性的非易失性存储装置及集成电路卡
US9653161B2 (en) * 2014-11-21 2017-05-16 Panasonic Intellectual Property Management Co., Ltd. Tamper-resistant non-volatile memory device comprising an arithmetic circuit that, in operation, calculates a binary reference value based on at least a part of the pieces of resistance value information, a read circuit that, in operation, selectively assigns, based on the binary reference value, one of two values to each of the pieces of resistance value information, and a write circuit that, in operation, performs a write operation corresponding to one of the two values among memory cells

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017216030A (ja) * 2016-05-26 2017-12-07 パナソニックIpマネジメント株式会社 不揮発性メモリ装置
EP3396671A1 (en) 2017-04-26 2018-10-31 Renesas Electronics Corporation Semiconductor device, and unique id generation method
US10224083B2 (en) 2017-04-26 2019-03-05 Renesas Electronics Corporation Semiconductor device, and unique ID generation method
US11044108B1 (en) 2019-12-24 2021-06-22 CERA Licensing Limited Temperature sensing physical unclonable function (PUF) authentication system
US11516028B2 (en) 2019-12-24 2022-11-29 CERA Licensing Limited Temperature sensing physical unclonable function (PUF) authentication system
US11652649B2 (en) 2019-12-24 2023-05-16 CERA Licensing Limited Sensor secured by physical unclonable function (PUF)
JP7553201B2 (ja) 2020-04-30 2024-09-18 インターナショナル・ビジネス・マシーンズ・コーポレーション 抵抗処理ユニットを物理的に複製困難な関数として用いるセキュアなチップ識別

Also Published As

Publication number Publication date
JP6532024B2 (ja) 2019-06-19
US9548113B2 (en) 2017-01-17
US20160148679A1 (en) 2016-05-26

Similar Documents

Publication Publication Date Title
JP6474056B2 (ja) 耐タンパ性を有する不揮発性メモリ装置、集積回路カード、不揮発性メモリ装置の認証方法、不揮発性メモリ装置を用いた暗号化方法および復号化方法
JP6587188B2 (ja) 乱数処理装置、集積回路カード、および乱数処理方法
JP6532024B2 (ja) 耐タンパ性を有する不揮発性メモリ装置、および集積回路カード
JP6617924B2 (ja) 耐タンパ性を有する不揮発性メモリ装置および集積回路カード、不揮発性メモリ装置の認証方法、個体識別情報生成方法
JP6508478B2 (ja) 耐タンパ性を有する不揮発性メモリ装置、および集積回路カード
US9892783B2 (en) Non-volatile memory device including memory cells having variable resistance values
US10574639B2 (en) Authentication apparatus utilizing physical characteristic
US9898598B2 (en) Authentication system having a non-volatile memory including memory cells in initial or variable states and a host computer for performing authentication therebetween
JP6674616B2 (ja) 半導体装置、半導体装置の読み出し方法、及び半導体装置を搭載したicカード
JP6817888B2 (ja) 不揮発性メモリ装置
JP6793044B2 (ja) 不揮発性メモリ装置
TWI663604B (zh) 操作具非揮發性記憶胞電路的方法及使用所述方法的電路
CN111630598A (zh) 非易失性存储装置以及其写入方法
JP2020102827A (ja) 不揮発性メモリ装置およびチャレンジ・レスポンス方法
US11404119B1 (en) Non-volatile memory device and challenge response method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180710

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190419

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190507

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190510

R151 Written notification of patent or utility model registration

Ref document number: 6532024

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

SZ03 Written request for cancellation of trust registration

Free format text: JAPANESE INTERMEDIATE CODE: R313Z03

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250