JP2017010530A - 乱数処理装置、集積回路カード、および乱数処理方法 - Google Patents

乱数処理装置、集積回路カード、および乱数処理方法 Download PDF

Info

Publication number
JP2017010530A
JP2017010530A JP2016083726A JP2016083726A JP2017010530A JP 2017010530 A JP2017010530 A JP 2017010530A JP 2016083726 A JP2016083726 A JP 2016083726A JP 2016083726 A JP2016083726 A JP 2016083726A JP 2017010530 A JP2017010530 A JP 2017010530A
Authority
JP
Japan
Prior art keywords
resistance value
data
random number
resistance
memory cell
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
JP2016083726A
Other languages
English (en)
Other versions
JP6587188B2 (ja
Inventor
佳一 加藤
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 JP2017010530A publication Critical patent/JP2017010530A/ja
Application granted granted Critical
Publication of JP6587188B2 publication Critical patent/JP6587188B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/004Reading or sensing 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/0059Security or protection circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/24Memory cell safety or protection circuits, e.g. arrangements for preventing inadvertent reading or writing; Status cells; Test cells
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • H04L9/3278Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response using physically unclonable functions [PUF]
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10NELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10N70/00Solid-state devices having no potential barriers, and specially adapted for rectifying, amplifying, oscillating or switching
    • H10N70/20Multistable switching devices, e.g. memristors
    • H10N70/24Multistable switching devices, e.g. memristors based on migration or redistribution of ionic species, e.g. anions, vacancies
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10NELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10N70/00Solid-state devices having no potential barriers, and specially adapted for rectifying, amplifying, oscillating or switching
    • H10N70/801Constructional details of multistable switching devices
    • H10N70/881Switching materials
    • H10N70/883Oxides or nitrides
    • H10N70/8833Binary metal oxides, e.g. TaOx
    • 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
    • G11C2213/00Indexing scheme relating to G11C13/00 for features not covered by this group
    • G11C2213/70Resistive array aspects
    • G11C2213/79Array wherein the access device being a transistor
    • 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/34Encoding or coding, e.g. Huffman coding or error correction
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10NELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10N70/00Solid-state devices having no potential barriers, and specially adapted for rectifying, amplifying, oscillating or switching
    • H10N70/801Constructional details of multistable switching devices
    • H10N70/821Device geometry
    • H10N70/826Device geometry adapted for essentially vertical current flow, e.g. sandwich or pillar type devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Materials Engineering (AREA)
  • Chemical & Material Sciences (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Semiconductor Memories (AREA)

Abstract

【課題】バイアス確率が小さい乱数を短時間で生成する。【解決手段】本開示の一態様に係る乱数処理装置は、複数のメモリセルから読み出したデータを用いて乱数データを生成する乱数処理装置であって、複数のメモリセルの各々は、可変状態において、異なる複数の電気的信号が印加されることによって、複数のメモリセルの各々の抵抗値が複数の抵抗値範囲の間を可逆的に遷移する性質を有し、かつ、抵抗値が複数の抵抗値範囲のうちの少なくとも1つの抵抗値範囲にある場合に、時間経過に伴って抵抗値が変動する性質を有し、乱数処理装置は、複数のメモリセルのうち、少なくとも1つの抵抗値範囲にある第1のメモリセルの抵抗値に関する第1の抵抗値情報と、複数のメモリセルのうち、第1のメモリセルと異なる、少なくとも1つの抵抗値範囲にある第2のメモリセルの抵抗値に関する第2の抵抗値情報との組合せから第1の乱数データを生成する乱数処理回路を備える。【選択図】図18

Description

本開示は、抵抗変化型の不揮発性メモリセルをから読み出したデータを用いて乱数を生成する乱数処理装置に関する。
ネットバンキングおよびネットショッピングなど、インターネットを介して行われる電子商取引サービスの市場は急速に拡大している。このときの決済方法として電子マネーが用いられ、その媒体として利用される集積回路(“Integrated Circuit”、以下、ICと略称する。)カードおよびスマートフォン端末も同様に利用が拡大している。これらのサービスには、決済時の安全性のため、通信における相互認証および通信データの暗号化にあたって常により高いレベルのセキュリティー技術が求められる。
ソフトウェア技術に関しては、高度な暗号化アルゴリズムを中心としたプログラム処理の暗号化技術が蓄積されており、十分なセキュリティーが達成されている。しかし、技術進歩により、回路内部の情報を外部から直接読み取られる懸念が急速に高まっている。
特許文献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のセキュリティー性を高める重要な技術である。しかしながら、セキュリティー性のさらなる向上が求められていた。
本願の、限定的ではない例示的な実施形態は、バイアス確率が小さい乱数を短時間で生成する技術を提供する。
本開示の一態様にかかる乱数処理装置は、複数のメモリセルから読み出したデータを用いて乱数データを生成する乱数処理装置であって、前記複数のメモリセルの各々は、可変状態において、異なる複数の電気的信号が印加されることによって、前記複数のメモリセルの各々の抵抗値が複数の抵抗値範囲の間を可逆的に遷移する性質を有し、かつ、前記抵抗値が前記複数の抵抗値範囲のうちの少なくとも1つの抵抗値範囲にある場合に、時間経過に伴って前記抵抗値が変動する性質を有し、前記乱数処理装置は、前記複数のメモリセルのうち、前記少なくとも1つの抵抗値範囲にある第1のメモリセルの前記抵抗値に関する第1の抵抗値情報と、前記複数のメモリセルのうち、前記第1のメモリセルと異なる、前記少なくとも1つの抵抗値範囲にある第2のメモリセルの前記抵抗値に関する第2の抵抗値情報との組合せから第1の乱数データを生成する乱数処理回路を備える。
上述の特定の態様は、システム、方法およびマイクロプロセッサープログラムを用いて実装されてもよいし、またはシステム、方法およびマイクロプロセッサープログラムの組み合わせを用いて実現されてもよい。
本開示の一態様に係る乱数処理装置によれば、バイアス確率が小さい乱数を短時間で生成することができる。このようなバイアス確率が小さい乱数の生成時間を短縮できることにより、ディジタルIDデータの生成スピードを高めることができる。
図1は、実施形態にかかる不揮発性メモリ装置の概略構成の一例を示すブロック図である。 図2は、実施形態にかかる不揮発性メモリ装置が備えるメモリセルの概略構成の一例を示す断面図である。 図3は、実施形態にかかる不揮発性メモリ装置が備えるメモリセルの抵抗値範囲の一例を示すグラフである。 図4は、実施形態にかかる可変状態にあるバイポーラ型抵抗変化素子の特性の一例を示す図である。 図5は、先行技術文献に開示されている、可変状態にあるユニポーラ型抵抗変化素子の特性の一例を示す模式図である。 図6は、実施形態にかかるディジタルIDセット状態の規格化抵抗値情報と、そのメモリセルのばらつきについての標準正規分布の偏差との関係をプロットした図である。 図7は、実施形態にかかるディジタルIDデータ状態に推移させるときに様々な電圧パルス条件で推移させたときのばらつき分布を示す図である。 図8は、実施形態にかかるフィラメントの発生数が抵抗変化素子ごとに異なることを示す図である。 図9は、実施形態において同一の可変抵抗値範囲にあるメモリセルから連続して抵抗値を読み出した例を示す図である。 図10Aは、実施形態にかかるパーコレーションモデル(percolation model)を用いて、任意の抵抗状態に書込まれたときの抵抗変化層中のフィラメントの形成をシミュレートした結果の一例を示す図である。 図10Bは、実施形態にかかるパーコレーションモデル(percolation model)を用いて、任意の抵抗状態に書込まれたときの抵抗変化層中のフィラメントの形成をシミュレートした結果の一例を示す図である。 図11は、実施形態にかかる図3に示すようなディジタルIDセット状態に書き込まれた所定のビット数のメモリセル群の抵抗値を放置時間ごとに読み出したときのばらつき範囲と抵抗中央値を示す図である。 図12は、実施形態にかかる書き込まれたディジタルIDデータを図11に示したような初期の抵抗中央値で抽出したときにおける、エラーレートと放置時間との関係を示す図である。 図13は、実施形態にかかるディジタルIDデータを生成し、不揮発性メモリ装置に書き込む処理フローの一具体例を示すフローチャートである。 図14は、実施形態にかかるディジタルIDデータを再生する処理フローの一具体例を示すフローチャートである。 図15は、実施形態にかかるディジタルIDデータの例を示す図である。 図16は、実施形態にかかる誤り訂正前のデータ誤り率の推移を示す図である。 図17は、実施形態にかかる読み出し回数と累積エラーレートとの関係を示す図である。 図18は、実施形態にかかる不揮発性メモリ装置の具体的な構成例を示すブロック図である。 図19は、実施形態にかかる不揮発性メモリ装置が備える読み出し回路の構成例を示す回路図である。 図20Aは、実施形態にかかる選択されたメモリセルを放電方式にて読み出す場合のタイミングチャートである。 図20Bは、実施形態にかかる選択されたメモリセルを充電方式にて読み出す場合のタイミングチャートである。 図21は、実施形態にかかる不揮発性メモリ装置が備えるIDデータ制御回路の構成例を示す図である。 図22は、実施形態にかかる中央値検出回路の一変形例を示す図である。 図23は、実施形態にかかる中央値検出回路が抵抗中央値を算出した結果を示す図である。 図24Aは、実施形態にかかるチャレンジ・レスポンスの処理の例を示す図である。 図24Bは、実施形態にかかるチャレンジ・レスポンスの処理の例を示す図である。 図25は、実施形態にかかる乱数生成回路の構成例を示す図である。 図26は、H4回路の構成例を示す図である。 図27は、実施形態にかかるラッチにおけるデータ更新の状態遷移を示す図である。 図28Aは、Fussy Extractorと呼ばれるデータ抽出器の構成例を示す図である。 図28Bは、Fussy Extractorと呼ばれるデータ抽出器の構成例を示す図である。 図29は、実施形態にかかる通信システムの構成例を示す図である。
以下、添付の図面を参照しながら、本開示にかかる不揮発性メモリ装置等の実施形態を説明する。本開示にかかる不揮発性メモリ装置は、少なくとも1つ以上の閾値で抵抗値を判別してデータを記憶する抵抗変化型の不揮発性メモリセルを複数有している。
不揮発性メモリ装置は、たとえば、個体識別情報を生成する機能を備えている。不揮発性メモリ装置では、生成した個体識別情報をもとに、データの暗号化・復号化が行われるとともに、相互間の認証も行われ得る。より具体的には、本開示にかかる不揮発性メモリ装置は、抵抗変化メモリ素子の内容を読み出し、少なくとも部分的にその内容からディジタル識別子を導出する個体識別情報用にチップごとにユニークな固有の乱数データを生成する機能を備えている。これにより、電気的、物理的な複製を妨げることが可能になる。更に装置外部から入力されるチャレンジ情報に対して、装置ごとに異なるレスポンス情報を生成する機能を有することにより、本開示の不揮発性メモリ装置に対して装置外からセキュア性の高い認証を可能とする。また、書き換えることのない同じ抵抗値状態にあるメモリセルの抵抗値情報を複数回読み出すことにより、抵抗値の揺らぎ成分を取得し、真性乱数データを生成する。
不揮発性メモリ装置は、たとえばモバイル型電子マネーで利用されるICチップを搭載したカードに搭載され得る。ICチップには、他に論理回路、揮発性メモリ装置、およびマイクロプロセッサーを具備する。これらを用いて暗号化機能、ディジタル署名、およびディジタル認証機能などの各種情報セキュリティー機能を実現する。これらの機能が実行されるときには秘密鍵によるデータ暗号が用いられる。ICカード内においても前述したように秘密鍵を複製できないように安全に保管することが望ましい。
(発明者らによる検討)
上述の秘密鍵の保管、および装置ごとに固有なチャレンジ情報に対するレスポンス情報の生成(以降、チャレンジ・レスポンス生成とも言う)を実現するために前述のPUF技術が用いられる。PUF技術で得られた個体識別情報である乱数のディジタルIDデータはデバイス暗号鍵として、秘密鍵を暗号化して不揮発性メモリに保存するのに用いられる。ディジタルIDデータは、各ICで異なる乱数であるため、それを用いて暗号化されたデータも各ICで固有のデータ列となる。ディジタルIDデータは、暗号化された秘密鍵がハッキングなどにより別のICにコピーされたとしても複製できない。ディジタルIDデータが複製されないので、もとの秘密鍵を不正利用されることがない。PUF技術を用いたチャレンジ・レスポンス生成も同様に、入力されるチャレンジ情報からレスポンス情報を導き出す関数に製造ばらつきに基づくパラメータが用いられる。したがって、入力されるチャレンジ情報からレスポンス情報を導き出す関数は、装置ごとにユニークな関数となり複製できない。従って、PUF技術のチャレンジ・レスポンスを用いた認証はセキュア性が高い。
しかしながら、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内のデータを退避するか、破棄しなければならない。したがって、システム動作上に大きな制約が発生する。また、この対策として、任意のタイミングでIDデータを生成するためには、非特許文献1のようにPUF専用のセルを別途設ける必要がある。この場合、回路のオーバーヘッドが増加し、性能(5)の要件を著しく低下させる。
更にSRAMを用いたPUFの場合、データ誤りを起こすセルは同一となる傾向がある。つまり、動作が安定なセルと不安定なセルが決まっているため、誤りを含んだディジタルIDデータのパターンが限られ、真のディジタルIDデータが予測しやすいという課題がある。また、アービターPUFでは、生成タイミングの制約、回路規模、および生成速度などの課題は生じないが、配線遅延およびゲート遅延などのばらつきが大きくないことから、IDデータのユニーク性が乏しい。また、非特許文献2において指摘されているように、アービターPUFのデータ誤り率は15%と非常に大きいため、誤り訂正回路の規模増加が大きな課題となる。
(発明者らが得た知見)
本発明者らは、以上のような課題を解決できる可能性のある新規なディジタルIDデータ生成方法を鋭意検討した。その結果、本発明者らは、抵抗変化素子の書き込まれた抵抗値が正規分布にばらつく現象を見出し、抵抗値のばらつきから安定的なディジタルIDデータを生成することに想到した。
抵抗変化型のメモリ素子は、当該メモリ素子の両電極間に、所定の電圧(絶対値)・極性・幅の電気的なパルスを印加することで、少なくとも第1の抵抗値状態と、第1の抵抗値状態よりも抵抗値の小さい第2の抵抗値状態との間で可逆的に変化する。通常は、第1の抵抗値状態および第2の抵抗値状態にディジタルデータ(たとえば「0」と「1」)を割り当てて、情報として保存する。
ここで本発明者らは、上述の第1の抵抗値状態、第2の抵抗値状態、更に後述する初期状態の何れか1つの状態に属するセル群に着目し、そのセル群に含まれる各セルをその抵抗値に応じて2つに分類した。つまり、そのセル群に含まれる各セルを2値化(ディジタルデータ化)した。各セルの抵抗値はばらついており、そのばらつきを利用して各セルを第1のディジタルデータに変換する。前記第1のディジタルデータを装置固有のディジタルIDデータとして利用することで、より安全で安定な暗号技術等に応用可能な、従来にないディジタルIDデータの生成方法を提供できる。しかし、前記第1のディジタルデータはメモリセルの抵抗値と結びつきが強く、プローブなどによって、直接的にメモリセルの抵抗値を読み取るようなハッキング攻撃によって、前記第1のディジタルデータの内容が予測される可能性があるといった脆弱性が懸念される。本開示で例示する抵抗変化型のメモリセルは、低電圧で高速に抵抗値が変化するため、ICチップへの侵襲工程およびプロービングで発生する静電気などにより、抵抗が敏感に変化する。このため、プローブによる前記攻撃に対しても耐性があると考えられるが、将来的な技術進歩によっては課題となる可能性がある。この課題に対して本発明者は、更に、第1のディジタルデータとは異なる、メモリセルの抵抗値とは関連性の無い第2のディジタルデータを生成し、前記第2のディジタルデータに基づいて前記第1のディジタルデータを変換した第3のディジタルデータを生成してディジタルIDデータとして利用することで、前記攻撃に対する脆弱性の解決を図った。
また、ディジタルIDデータの生成を行う多くの回路要素は、通常の不揮発性メモリ装置として搭載される回路と共通化することが可能である。そのため、ディジタルIDデータの生成のために増加する回路規模を大きく抑制することができ、小型化し得る。
さらに、不揮発性メモリ装置のデータ読み出しはメモリアレイの構造上、データを並列処理で複数読み出すため、ディジタルIDデータの生成スピードも飛躍的に高められる。同時に、サイドチャンネル攻撃においても、並列処理により輻射電磁波が並列数の総和で与えられるため、攻撃に対する耐性を高められ得る。
また、乱数の生成においては、0および1のどちらかに偏らない、バイアス確率が小さい乱数を生成することにより、より安全性を高めることができる。このようなバイアス確率が小さい乱数の生成時間を短縮することができれば、ディジタルIDデータの生成スピードも飛躍的に高められる。
本発明者らによる知見に基づいて、以下、本開示の一態様の概要を説明する。
本開示の実施形態に係る乱数処理装置は、複数のメモリセルから読み出したデータを用いて乱数データを生成する乱数処理装置であって、前記複数のメモリセルの各々は、可変状態において、異なる複数の電気的信号が印加されることによって、前記複数のメモリセルの各々の抵抗値が複数の抵抗値範囲の間を可逆的に遷移する性質を有し、かつ、前記抵抗値が前記複数の抵抗値範囲のうちの少なくとも1つの抵抗値範囲にある場合に、時間経過に伴って前記抵抗値が変動する性質を有し、前記乱数処理装置は、前記複数のメモリセルのうち、前記少なくとも1つの抵抗値範囲にある第1のメモリセルの前記抵抗値に関する第1の抵抗値情報と、前記複数のメモリセルのうち、前記第1のメモリセルと異なる、前記少なくとも1つの抵抗値範囲にある第2のメモリセルの前記抵抗値に関する第2の抵抗値情報との組合せから第1の乱数データを生成する乱数処理回路を備える。
本開示の実施形態に係る乱数処理装置によれば、バイアス確率が小さい乱数を短時間で生成することができる。このようなバイアス確率が小さい乱数の生成時間を短縮できることにより、ディジタルIDデータの生成スピードを高めることができる。
ある実施形態において、前記乱数処理装置は、前記乱数処理回路に接続され、前記データを入力する入力端子(input)、および前記乱数処理回路に接続され、前記乱数データを出力する出力端子(output)をさらに備えていてもよい。
ある実施形態において、前記乱数処理回路は、前記第1の抵抗値情報と、前記第2の抵抗値情報との差分または大小関係に基づいて、前記第1の乱数データを生成する第1の乱数データ生成回路を含んでもよい。
ある実施形態において、前記乱数処理回路は、前記複数のメモリセルのうち、前記少なくとも1つの抵抗値範囲にある第3のメモリセルの前記抵抗値に関する、第1の時刻に取得された第3の抵抗値情報と、第2の時刻に取得された第4の抵抗値情報との差分または大小関係に基づいて、第2の乱数データを生成する第2の乱数データ生成回路をさらに含んでもよい。
ある実施形態において、前記第1の抵抗値情報および前記第2の抵抗値情報はディジタル値であり、前記第1の乱数データ生成回路は、前記差分の値が、偶数か奇数かによって、前記第1の乱数データを生成してもよい。
ある実施形態において、前記第3の抵抗値情報および前記第4の抵抗値情報はディジタル値であり、前記第2の乱数データ生成回路は、前記差分の値が、偶数か奇数かによって、前記第2の乱数データを生成してもよい。
ある実施形態において、前記乱数処理回路は、前記第1の乱数データと前記第2の乱数データとの排他的論理和の演算をすることにより第3の乱数データを生成する第3の乱数データ生成回路をさらに含んでもよい。
本開示の実施形態に係る不揮発性メモリ装置は、可変状態において、異なる複数の電気的信号が印加されることによって、抵抗値が複数の抵抗値範囲の間を可逆的に遷移する性質を有し、かつ、前記抵抗値が前記複数の抵抗値範囲のうちの少なくとも1つの抵抗値範囲にある場合に、時間経過に伴って前記抵抗値が変動する性質を有する複数のメモリセルを含むメモリアレイ、前記複数のメモリセルのうち、前記少なくとも1つの抵抗値範囲にある第1のメモリセルの前記抵抗値に関する第1の抵抗値情報と、前記複数のメモリセルのうち、前記第1のメモリセルと異なる、前記少なくとも1つの抵抗値範囲にある第2のメモリセルの前記抵抗値に関する第2の抵抗値情報と、を取得する読み出し回路、および前記第1の抵抗値情報と前記第2の抵抗値情報との組合せから第1の乱数データを生成する乱数処理回路を備える。
ある実施形態において、前記複数のメモリセルの各々は、第1電極と、第2電極と、前記第1電極および前記第2電極の間に配置される抵抗変化層とを含む抵抗変化素子を備えてもよい。
ある実施形態において、前記抵抗変化層は、絶縁体の層を含んでもよい。
ある実施形態において、前記抵抗変化層は、前記絶縁体の層を貫く局所領域を含んでもよい。
ある実施形態において、前記抵抗変化層は金属酸化物を含んでもよい。
ある実施形態において、前記金属酸化物は、酸素不足型であってもよい。
ある実施形態において、前記金属酸化物は、遷移金属酸化物およびアルミニウム酸化物からなる群から選択される少なくとも一つであってもよい。
ある実施形態において、前記金属酸化物は、タンタル酸化物、ハフニウム酸化物およびジルコニウム酸化物からなる群から選択される少なくとも一つであってもよい。
ある実施形態において、前記絶縁体は金属酸化物を含み、前記局所領域は、前記絶縁体よりも酸素含有率が低い酸素不足型の金属酸化物を含んでもよい。
本開示の実施形態にかかる集積回路カードは、可変状態において、異なる複数の電気的信号が印加されることによって、抵抗値が複数の抵抗値範囲の間を可逆的に遷移する性質を有し、かつ、前記抵抗値が前記複数の抵抗値範囲のうちの少なくとも1つの抵抗値範囲にある場合に、時間経過に伴って前記抵抗値が変動する性質を有する複数のメモリセルを含むメモリアレイ、前記複数のメモリセルのうち、前記少なくとも1つの抵抗値範囲にある第1のメモリセルの前記抵抗値に関する第1の抵抗値情報と、前記複数のメモリセルのうち、前記第1のメモリセルと異なる、前記少なくとも1つの抵抗値範囲にある第2のメモリセルの前記抵抗値に関する第2の抵抗値情報と、を取得する読み出し回路、前記第1の抵抗値情報と前記第2の抵抗値情報との組合せから第1の乱数データを生成する乱数処理回路、および前記第1の乱数データを用いて生成された個体識別情報が出力される入出力インタフェース部を備える。
本開示の実施形態に係る乱数処理方法は、複数のメモリセルから読み出したデータを用いて乱数データを生成する乱数処理方法であって、前記複数のメモリセルの各々は、可変状態において、異なる複数の電気的信号が印加されることによって、前記複数のメモリセルの各々の抵抗値が複数の抵抗値範囲の間を可逆的に遷移する性質を有し、かつ、前記抵抗値が前記複数の抵抗値範囲のうちの少なくとも1つの抵抗値範囲にある場合に、時間経過に伴って前記抵抗値が変動する性質を有し、前記乱数処理方法は、前記複数のメモリセルのうち、前記少なくとも1つの抵抗値範囲にある第1のメモリセルの前記抵抗値に関する第1の抵抗値情報と、前記複数のメモリセルのうち、前記第1のメモリセルと異なる、前記少なくとも1つの抵抗値範囲にある第2のメモリセルの前記抵抗値に関する第2の抵抗値情報との組合せから第1の乱数データを生成する。
ある実施形態において、前記乱数処理方法は、さらに、前記複数のメモリセルのうち、前記少なくとも1つの抵抗値範囲にある第3のメモリセルの前記抵抗値に関する、第1の時刻に取得された第3の抵抗値情報と、第2の時刻に取得された第4の抵抗値情報との差分または大小関係に基づいて、第2の乱数データを生成してもよい。
ある実施形態において、前記乱数処理方法は、さらに、前記第1の乱数データと前記第2の乱数データとを用いて所定の演算処理を行って第3の乱数データを生成してもよい。
本開示において、ユニット、デバイスの全部又は一部、又はブロック図の機能ブロックの全部又は一部は、半導体装置、半導体集積回路(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は、実施形態にかかる不揮発性メモリ装置100の概略構成の一例を示すブロック図である。また、図2は、実施形態にかかる不揮発性メモリ装置100が備えるメモリセルの概略構成の一例を示す断面図である。不揮発性メモリ装置100は、抵抗変化型の不揮発性メモリ装置である。
実施形態の不揮発性メモリ装置100は、少なくともメモリセルアレイ90と、制御装置93とを備えている。メモリセルアレイ90は、複数のメモリセル91がアレイ状に配置された構成を有する。複数のメモリセル91には、図2の抵抗変化型素子が具備され、抵抗値の違いによりディジタルデータを記憶する。
初めに、不揮発性メモリ装置100が備える「ユーザーデータの記憶機能」について説明する。一般に装置利用者(ユーザー)が装置に記憶させたい任意のディジタルデータをユーザーデータと定義する。ユーザーデータをメモリセルアレイ90に記憶する場合は、制御装置93による制御に従って、装置外から入力されるユーザーデータを、少なくとも1つの閾値を基準として、閾値以上の抵抗値範囲に書込まれるメモリセルと、閾値未満になる抵抗値範囲に書込まれるメモリセルとに、少なくとも2値に分かれるディジタル情報を割り当てて記憶する。記憶されたユーザーデータを読み出す場合は、制御装置93による制御に従って、閾値を判定基準にして元のディジタルデータに復元して装置外に出力する。なお、制御装置は必ずしも不揮発性メモリ装置の一部である必要はなく、装置外に接続された制御装置を用いて、以下に説明する動作が行われてもよい。
次に、不揮発性メモリ装置100が備える装置固有のディジタルIDデータの元となる「第1のディジタルデータ生成機能」について説明する。本実施形態にかかる構成によれば、前記不揮発性メモリ装置を利用して装置固有のディジタルIDデータを生成する。制御装置93は、前記ディジタルIDデータを生成するための元となる第1のディジタルデータを生成するために、抵抗値が同一の抵抗値状態にあるメモリセル91群から複数の抵抗値情報を取得し、抵抗値情報のばらつきの中央値を検出する。検出された中央値に基づいた閾値を基準として、同一の抵抗値状態にあるメモリセル群の各メモリセルに0または1のディジタルデータのいずれの値を割り当てるかを判定し、後述するディジタルIDデータの生成に用いる第1のディジタルデータを生成する。同一の抵抗値状態とは、前記ユーザーデータを記憶するときにディジタル情報の1つの状態を割り当てるために用いる1つの抵抗値範囲にある状態のことをいう。
一般に、不揮発性メモリ装置において、メモリセルがもつ物理量に、例えばディジタル量の最小単位である2値情報を割り当てるとき、その物理量が、所定の閾値以上のある範囲に属するか、または所定の閾値未満のある範囲に属するかによって、2値情報のいずれを割り当てるかを変える。近年の不揮発性メモリ装置は誤り訂正回路を具備している。誤り訂正回路による誤り訂正処理によれば、2値情報を割り当てるために予め想定された範囲に一部のメモリセルの物理量が入らない場合であっても、その物理量から得られる2値情報は正しく復元される。これは、前記第1のディジタルデータをなすメモリセル群のうちの一部が同一の抵抗値範囲になくても良いことを意味する。本明細書の定義として、前記第1のディジタルデータをなすメモリセル群の少なくとも半数より多いメモリセルが同一の抵抗値状態にあれば、本開示における諸機能を達成できるものとする。
また不揮発性メモリ装置100は、装置固有のディジタルIDデータの元となる「第2のディジタルデータ生成機能」を有する。また、抵抗変化型不揮発性メモリ装置100は、「乱数データデータ生成機能」、「データ誤り付加機能」、「チャレンジ・レスポンス機能」を有する。これら各種処理の詳細は後述する。
不揮発性メモリ装置100が備えるこれらの複数の機能は、複数の機能の全てを装置に搭載しても良いし、それらの一部を組合せて搭載しても良い。さらに各機能の具体的な実現方法を以降で説明するが、その方法に限定されるものではなく、上記の考え方の同じであれば本願に含まれるものである。
不揮発性メモリ装置100の個体識別情報として利用されるディジタルIDデータを生成する際には、各抵抗値が、同一の抵抗値範囲に属している複数の不揮発性メモリセルから生成される前述の第1のディジタルデータを利用する。当該複数の不揮発性メモリセルにはユーザーデータは書き込まれない。つまり、装置固有のディジタル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金属酸化物の膜厚は、3nm以上4nm以下としてもよい。
また、ジルコニウム酸化物を用いる場合、第1金属酸化物の組成をZrOxとした場合
にxが0.9以上1.4以下であり、かつ、第2金属酸化物の組成をZrOyとした場合
にyがxの値よりも大である場合に、抵抗変化層の抵抗値を安定して高速に変化させることができる。この場合、第2金属酸化物の膜厚は、1nm以上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は、かかる素子の特性を例示する。
図5に示す例では、バイアス電圧の絶対値が0.5Vを超えると素子がリセット状態、つまりHRレベルへと推移し、バイアス電圧の絶対値1.0Vを超えると素子がセット状態、つまりLRレベルへと推移する。かかる素子では、同じ極性で電圧の異なる電気的信号を印加することで、2個の抵抗状態の間を可逆的に遷移させることが可能である。しかし、図5のような特性のユニポーラ型抵抗変化素子であれば、+0.5V以上+1V未満の正極性の電気的信号を印加することで高抵抗化させ、−1V以下(絶対値が1V以上)の負極性の電気的信号を印加することで低抵抗化させるように制御すれば、バイポーラ型抵抗変化素子として利用することもできる。本第1の実施形態では、バイポーラ型もユニポーラ型も、いずれのタイプでも使用可能である。
抵抗変化素子は、印加する電気的信号の電圧(絶対値)、幅、および印加回数等の組合せにより、抵抗値が3以上の可変抵抗値範囲の間を可逆的に遷移する多値メモリとして利用されてもよい。例えば、抵抗変化層としてタンタル酸化物を用いた素子は、良好な特性を示し、多値メモリへ応用されうる。
このような抵抗変化素子(ReRAM素子)の抵抗変化は、第2電極128と第1電極124とを電気的に接続する導電性パスが抵抗変化層126内に発生することによって発生することを断面解析によって観察した。導電性パスは直径30〜10nm以下であり、最先端の微細な半導体プロセスで作製される配線幅より更に小さいことを見出した。すなわち上記で説明した抵抗変化素子の特性は、リソグラフィーによる加工の限界とされる超微細半導体プロセスで製造されても同様な安定した抵抗変化の特性を維持できる。
また、抵抗変化素子(ReRAM素子)の抵抗変化層を形成するプロセスには数百℃を超えるような高温処理を必要としない。このため、加熱プロセスによってCMOSトランジスタへの特性を劣化させることがない。すなわち、抵抗変化素子は、フラッシュメモリなどのフローティングゲート型トランジスタを用いるメモリ素子に比べて半導体プロセスとの親和性が非常に優れ、製造プロセスの微細化が進んでも抵抗変化の信頼性が低下することがない特徴を有している。そのため、例えば、コントローラ等のロジック回路と抵抗変化素子とが同一チップ上に形成される場合であっても、ロジック回路の特性への影響を抑えつつ抵抗変化素子を形成することができる。また、ロジック回路とプロセスを共通化することにより、製造コストを低減することができる。
可変状態とは、異なる複数の電気的信号が印加されることによって、抵抗値が複数の可変抵抗値範囲の間を可逆的に遷移できる状態をいう。
メモリセルアレイ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以下で、抵抗変化層126は酸素濃度の異なる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)の第1のディジタルデータセット状態に推移する。第1のディジタルデータセット状態にあるセルに更に高抵抗化パルス(素子の抵抗値を第2抵抗値範囲から第1抵抗値範囲へと変化させるためのパルス:第1電気的信号)である電圧が+1.8V、パルス幅が50nSecのパルスを印加することで第1抵抗値範囲へと変化する。これ以降のメモリセルは可変状態のセルとなる。すなわち、メモリセルの抵抗値を本開示のディジタルIDデータの生成に用いる場合は、図3の第1のディジタルデータセット状態にて利用する。なお、本開示の例では図3の(3)の状態を第1のディジタルデータとして利用することを例示するが、(1)の初期状態にも複製のできない製造上のばらつきがもたらす抵抗値のばらつきがあるので、後述する方式を応用して利用可能である。
なお、パルス印加の工程は上述の手順に限定されない。例えば、(3)の第1のディジタルデータセット状態は、メモリ素子が可変状態となった以降に複数回第1電気的信号と第2電気的信号を交互に繰返してHR状態とLR状態を複数回遷移させ、最終的にLR状態にして工程を終了し、最後にセットされた状態を(3)の第1のディジタルデータセット状態としてもよい。
図6を参照しながら、図3の第1のディジタルデータセット状態の抵抗値ばらつきの特性を説明する。
図6は、図3における(3)の第1のディジタルデータセット状態の規格化抵抗値情報と、そのメモリセルのばらつきについての標準正規分布の偏差との関係をプロットした図である。
図6に示すように、メモリセルの正規分布は抵抗値情報に対してほぼ直線に分布している。このことから、分布のばらつきは極めてランダムな分布現象であることが示される。図6で示すように、ばらつき分布の中央値の抵抗値情報(中央抵抗値または2値化基準値ともいう)を検出し、当該中央抵抗値と、第1のディジタルデータセット状態の各メモリセルの抵抗値との大小を比較して、比較結果をディジタルデータの1または0に割り当てる。そして、抵抗値ばらつきのランダム性を用いることで、不揮発性メモリ装置ごとに、ユニークかつランダムな第1のディジタルデータを作成することができる。
図7を参照しながら、本開示の第1のディジタルデータが複製できない理由について説明する。図7は上述した図3における(3)の第1のディジタルデータセット状態に推移させるときに様々な電圧パルス条件で推移させたときのばらつき分布を示す。トランジスタ耐圧の上限である3.3Vかつパルス幅も通常の10万倍の10msの強力なエネルギーをもつ条件から、2Vといった通常よりも弱いパルス条件まで含んでばらつきを見たものである。一般に、パルスエネルギーが弱い印加条件と、強い印加条件とで、書き込まれた抵抗値の分布間に明確なウインドウがあるとき、2つの印加条件を用いて任意のデータを書き込むことができる。しかしながら、図7からわかるように、分布の偏りおよび最大値/最小値の若干の差はあるものの、総じて全ての条件の分布の中央値が他の条件の分布と重なっている。つまり、中央値を基準に人為的に書き込み条件を変えて書き分け、任意のデータを書き込むといった複製が、原理的にできないばらつき現象であることが分かる。
図7のように、同じ抵抗値範囲にあるメモリセル群の中で抵抗値が低いものと高いものとに分布する理由としては、抵抗変化素子のプロセスばらつきおよび形状ばらつきの他に、例えば、フォーミングが完了するメモリセルがランダムに発生することが要因として考えられる。
上述のとおり、金属酸化物中の欠陥サイトはメモリセル毎にランダムに配置され、フォーミングによってこれらの欠陥サイト間を繋いでフィラメントが形成される。そのため、仮に初期状態にある複数のメモリセルに一定の電気的ストレスを印加した場合であっても、フォーミングが完了するメモリセルは統計的にばらついて発生することを、本願発明者らは事前実験によって確認している。そのため、仮に複数のメモリセルに対して一様なストレスを印加する場合であっても、確率的にフィラメントが形成され、上述した図3における(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である。
本開示の不揮発性メモリ装置に記録されたデータは、第1種データと第2種データとのいずれか、または両方を含んでよい。第1種データは、各メモリセル91の抵抗値が初期抵抗値範囲にあるか否かの違いを利用して記録されている。第2種データは、各メモリセル91の抵抗値が初期抵抗値範囲にあるか否かの違いを利用せずに、各メモリセル91の抵抗値が少なくとも一つの可変抵抗値範囲にあるか否かの違いを利用して記録されていてもよい。そして、本開示の不揮発性メモリ装置は、上述の何れか同一の抵抗値範囲にあるメモリセルの抵抗値ばらつきを用いて装置固有のディジタルIDデータの元と成る第1ディジタルデータを生成するときに用いられる第3種データを含む。
この場合において、メモリセルアレイ90が、第1書き込みアドレス領域と、第2書き込みアドレス領域とを備え、第1書き込みアドレス領域に第1種または第2種のデータのいずれか、または両方が記録されており、第2書き込みアドレス領域に第1のディジタルデータの元となる抵抗値状態のメモリセルが保管されていてもよい。第1書き込みアドレス領域と、第2書き込みアドレス領域とは、必ずしも物理的な領域として分離していなくてもよい。例えば、各メモリセル91がアドレスごとに所定の規則によって第1書き込みアドレス領域と第2書き込みアドレス領域とに振り分けられていてもよく、これによりディジタルIDデータの物理的な場所が特定されにくくなり、耐タンパ性が向上する。
メモリセルアレイ90を構成する複数のメモリセルにフォーミングストレスを印加する工程は選択的に自由に行えるため、第1書き込みアドレス領域と第2書き込みアドレス領域との容量配分および配置を自由に変更し選択することができる。
図9は、第1の実施形態において同一の可変抵抗値範囲にあるメモリセルから連続して抵抗値を読み出した例を示す。抵抗値が少なくとも1つの可変抵抗値範囲にあるとは、メモリセルが同一の抵抗状態にあることをいう。すなわち二値型のメモリセルである場合には、例えば、メモリセルが低抵抗状態にあって高抵抗状態にないことをいう。この場合は図3の(3)の第1のディジタルデータセット状態と等しい。
高抵抗化パルスと低抵抗化パルスを交互に印加すれば、素子が高抵抗状態と低抵抗状態とを可逆的に遷移することを確認した。その後、低抵抗状態にある素子に高抵抗化パルスを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に判別して得られる第1のディジタルデータには、抵抗値揺らぎが原因の誤りデータが発生する。中央抵抗値付近は、抵抗値のばらつき分布の中央であるため、その抵抗値付近にあるメモリセルの分布数が最も多いことになる。これら中央付近のメモリセルが前述のとおりランダムに抵抗値が揺らぐため多くのビットがランダムに誤ることになる。
本発明者らは、書き込まれた抵抗値が、放置時間および温度環境、更には装置の電源環境などにより、中央抵抗値の最適値が変動し、誤り率が安定せず、ディジタルIDデータを安定的に生成することができないという課題を見出した。この課題について図11を用いて説明する。
図11は図3に示すようなディジタルIDセット状態に書き込まれた所定のビット数のメモリセル群の抵抗値を放置時間ごとに読み出したときのばらつき範囲と抵抗中央値を示す。
測定に使用したビット数は1Kbitで、放置時間に対する劣化を加速するために放置温度は175℃とした。図11からわかるように、放置時間とともに、ばらつき範囲が広がっている。さらに、破線で囲んだように抵抗中央値が徐々に上昇していることが分かる。つまり、放置時間が増加するに従って、抵抗値の分布が高抵抗側にシフトしていると言える。
図12は、書き込まれたディジタルIDデータを図11に示したような初期の抵抗中央値(143)で抽出したときにおける、エラーレートと放置時間との関係を示す。エラーレートは抽出したデータと初回IDデータとが相違する割合を示す。図12から分かるように放置時間とともに最適な抵抗中央値がずれるためエラーレートが急速に増大していることが分かる。この現象は、放置時間だけでなく周辺温度の変化、および装置電源電圧の変化によっても大きく変動する。
そこで本発明者らは図13および図14に示すフローを考案した。
図13は、ディジタルIDデータを生成し、不揮発性メモリ装置に書き込む処理フローの一具体例を示す。このフローは、たとえば不揮発性メモリ装置が工場から出荷される前の検査工程時に実行される。
一方、図14は、ディジタルIDデータを再生する処理フローの一具体例を示す。このフローは、たとえば工場から出荷された後の不揮発性メモリ装置が市場において使用される都度実行される。
前述したように、生成されるディジタルIDデータには誤りデータが含まれるため真の正しいIDデータを常に得るためには誤り訂正を行う。従って、図13および図14のように、装置の出荷前の検査工程時と、市場で装置が使用されるフィールド使用時とでは処理のフローが異なる。
出荷前検査時は、不揮発性メモリ装置の各メモリセルは可変状態ではなく絶縁抵抗に近い抵抗値を示す初期状態にある。図13で示したように、ステップS1において前述したようなフォーミングストレスを印加するフォーミング処理が実行され、図3の(2)の初回HR状態に推移せしめる。次にステップS2において、低抵抗化パルスが印加され、図3の(3)の第1のディジタルデータセット状態にセットされる。そしてステップS3において、第1のディジタルデータセット状態にある複数のメモリセルの抵抗値情報を読み出し、ステップS4にて、読み出した抵抗値情報から抵抗値ばらつきの分布の中央値を演算して保持する。ステップS5では再度、第1のディジタルデータセット状態にある複数のメモリセルから抵抗値情報を読み出し、上述の保持された中央値との大小関係からディジタルIDデータを生成する。
図15は、ディジタルIDデータの例を示す。上述したように、第1のディジタルデータセット状態にあるメモリセルの抵抗値情報と、閾値である、抵抗値ばらつきの分布の中央値を比較して、抵抗値情報がより小さい場合にはそのメモリセルにデータ「1」を割り当て、抵抗値情報がより大きい場合にはそのメモリセルにデータ「0」を割り当てる。これにより、人為的に制御できないメモリセルの抵抗値を利用した、不揮発性メモリ装置を一意に識別可能なディジタルIDデータを得ることができる。
再び図13に戻り、ステップS6では、ディジタルIDデータをもとにデータ誤りを訂正するために用いるパリティーデータを演算し、ステップS7にてパリティーデータを別の異なるメモリセルに記録する。
次に、図14を参照しながら説明する。フィールドにおいて装置が使用される際、ステップS8において、検査時のステップS3およびステップS4と同様に複数の第1のディジタルデータセット状態にある複数のメモリセルの抵抗値情報を読み出し、ステップS9にて、読み出した抵抗値情報から抵抗値ばらつきの分布の抵抗中央値を演算して保持する。さらにステップS10では再度、第1のディジタルデータセット状態にあるメモリセルから抵抗値情報を読み出し、上述の保持された抵抗中央値との関係からディジタル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データが解析できないため、ハッキングに対して高い耐性があるといえる。
次に、本開示の実施形態に係る方式を実現するための具体的な構成例について説明する。以下の例では、不揮発性メモリセルの抵抗値情報と2値化基準値との関係に応じて得られる第1のディジタルデータと、不揮発性メモリセルの抵抗値とは関連性の無い第2のディジタルデータとを生成し、第1のディジタルデータと第2のディジタルデータに基づいて、第3のディジタルデータを生成してディジタルIDデータとして利用することで、攻撃に対する高い耐性を実現する。
図18は、実施形態に係る不揮発性メモリ装置の具体的な構成例を示すブロック図である。なお、図18は一例であり、実施形態に係る不揮発性メモリ装置の具体的構成が図18に示される構成に限定されるものではない。
図18に示すように、実施形態に係る不揮発性メモリ装置10は、半導体基板上に、メモリ本体部22を備えている。不揮発性メモリ装置10は、さらに中央値検出回路25と、誤り訂正およびヘルパーデータ生成回路400と、アドレス制御回路16と、データ制御回路6と、IDデータ制御回路402と、不揮発性メモリ装置10の全体を制御する制御回路15とを備えている。
メモリ本体部22は、読み出し回路11と、書き込み回路14と、カラムデコーダ回路17と、ロウデコーダ回路18と、メモリセルアレイ20とを備えている。
ロウデコーダ回路18は、メモリセルアレイ20に接続されている複数の(m+1)本のワード線WLの中から1つのワード線WLを選択する。
カラムデコーダ回路17は、複数のn+1本のビット線BLと複数のソース線SLの中から並列読み出し数であるS本のビット線BLと、それに対応するS本のソース線SLとを選択し、書き込み回路および読み出し回路へ接続する。
これらは並列的に読み出しおよび/または書き込みが行われる行および/または列の数に応じて動作可能であるが、本明細書においては、並列読み出し、または書き込みはSビットごととする。従って、後述する読み出し回路11と書き込み回路14は、並列数であるS個のチャンネルがある。
書き込み回路14は、データ制御回路6に保持されたディジタルデータに従い、アドレス制御回路16と制御回路15によって、所定のアドレスにある並列数Sビットごとに選択されたメモリセル21へ各動作における所定の電圧を印加してデータを書き込む。
読み出し回路11は、アドレス制御回路16と制御回路15によって並列数Sビットごとに選択されたメモリセル21を介してビット線に流れる電流の変化を、後述する読み出し方式により検知し、選択メモリセルの抵抗値情報をディジタルカウント値として取得する。
不揮発性メモリ装置10の読み出し回路11は、COUNT_OUT出力と出力端子AおよびBと、入力端子Aとを有する。読み出し回路11は、入力端子Aを介して閾値を受け取る。この閾値は、読み出し回路11が、カラムデコーダ回路17に選択されたメモリセルの抵抗値情報から得られた信号を0または1のデータとして二値化するために利用される。前記閾値は、所定の固定値、または後述する中央値検定回路から出力される閾値(入力A)が設定される。なお、所定の固定値となる閾値は、ユーザーデータ用のメモリセルに記憶されたデータを2値化するときに用いられる。前記所定の固定値となる閾値は、制御回路15から設定されるが、新規要件ではないためここではその詳細な説明は省略する。
COUNT_OUT出力は読み出したメモリセルの抵抗値情報を表し、前記抵抗値情報の揺らぎは、第1のディジタルデータへのランダムなデータ誤りとして現れるとともに、後述する乱数生成に用いられる。
また、読み出し回路11は、出力端子Bを介して、カラムデコーダ回路17によって選択されたメモリセルの抵抗値情報から得られた信号を中央値検出回路25に出力する。この信号は、第1のディジタルデータを生成するために必要な中央値を算出するために中央値検出回路25によって利用される。
さらに、読み出し回路11は、出力端子Aを介して、ユーザーデータである0または1のデータ、および、第1のディジタルデータである0または1のデータを出力する。ユーザーデータを生成する際に利用される閾値と、第1のディジタルデータを生成する際に利用される閾値とは前述のとおり異なっていてもよい。
(メモリ本体部の用途別領域説明)
図に示すように、メモリ本体部22は、記憶領域として、ユーザーデータ領域7と、第1のディジタルデータ領域8と、第2のディジタルデータ領域404と、乱数生成セル領域403を有する。
メモリセルアレイ20は、ワード線単位で、WL0、WL1、・・・WLm-kをユーザーデータ領域7と、WLm-k+1・・・WLm-1を第1のディジタルデータ領域8と、WLmを乱数生成セル領域403と、WL0−1を第2ディジタルデータ領域404として切り分けられる。また、メモリセルアレイ20は、互いに平行に延びるように形成された複数のワード線WL0−1、WL0、WL1、・・・WLmと交差し、かつ互いに平行に延びるようにして形成された複数のビット線BL0、BL1、・・・BLnと、互いに平行で、かつビット線と平行に延びるようにして形成されたソース線SL0、SL1、SL2、・・・SLnとを備える。複数のワード線と複数のビット線の立体交差点には、それぞれメモリセル21が配置されている。但し、第2のディジタルデータ領域404のセルだけは抵抗変化素子23が無く、トランジスタ24のみになっている。
それぞれのメモリセル21は抵抗変化素子23とトランジスタ24とを備える。ワード線WL0−1、WL0、WL1、・・・WLm−k、WLm−k+1・・・WLmはそれぞれのトランジスタ24のゲート端子に接続され、ビット線BL0、BL1、・・・BLnは、第2ディジタルデータ領域404以外で、それぞれのメモリセル21が備える抵抗変化素子23の第2電極に接続され、抵抗変化素子の第1電極はトランジスタ24の第2主端子に各々接続され、ソース線SL0、SL1、SL2、・・・SLnは、トランジスタ24の第1主端子にそれぞれ接続されている。第2ディジタルデータ領域404では、ビット線BL0、BL1、・・・BLnは、トランジスタ24の第2主端子に各々接続される。
(各領域について)
抵抗変化素子23はメモリセル21において不揮発性メモリ素子として動作する。不揮発性メモリ装置10は、各メモリセル21が1個のトランジスタ24と1個の抵抗変化素子23とから構成される、いわゆる1T1R型の不揮発性メモリ装置である。メモリセルの選択素子は前述のトランジスタに限定されない。例えばダイオードなどの2端子素子を用いても良い。
ユーザーデータ領域7にはユーザの任意のデータ(ユーザーデータ)が記憶される。ユーザーデータの書き込みおよび読み出しはユーザーデータ領域7のアドレスが選択される。第1のディジタルデータ領域8には、PUFデータとなる装置固有のディジタルIDデータの元となる第1のディジタルデータを生成するために、フォーミングストレスが印加される。その結果、第1のディジタルデータ領域8のメモリセル群は、同一の抵抗値状態にセットされ、所定のランダムなバラツキ分布をもつ。乱数生成セル領域403は、第1のディジタルデータと同様に、同一の抵抗値状態にセットされたメモリセル群であり、乱数生成のために抵抗値情報の読み出しが行われる。なお、乱数生成セル領域403と第1のディジタルデータ領域8は共用することが可能であるが、本実施形態では説明を容易にするために別領域とした。そして、乱数生成セル領域403は所定の抵抗値状態にセットされた後は、読み出し専用のセルとなり、装置不具合などによる想定外の外乱による不足の事態の発生により抵抗値状態が所定の範囲内から逸脱した場合を除いて書き換えられることはない。また、第1のディジタルデータ領域8も、同じ装置固有のIDデータが必要な期間は書き換えられず、読み出し専用となる。一方で、後述するように、IDデータを意図的に変更したり、これまで使用していたIDデータを安全に破棄したい場合には、第1のディジタルデータ領域8は積極的に書き換えられる。第2ディジタルデータ領域404は、後述する第2ディジタルデータの生成に用いるセル群である。このメモリセルは抵抗変化素子23が接続されておらず、選択トランジスタ24のみのセルである。これは読み出し回路11から見たときにほぼ同一の固定抵抗のセルになる。最先端の微細CMOSプロセスにおけるトランジスタはオン抵抗のバラツキが大きい、その抵抗成分のバラツキを読み出し回路11にて観測し、各装置固有の少なくともSビットのディジタルデータを得るのに用いられる。本実施形態では、第2のディジタルデータがトランジスタのオン抵抗のバラツキを用いることを例示するが、これに限定されない。第2のディジタルデータは、少なくとも第1のディジタルデータ領域8に用いられるメモリセル群に用いられている抵抗変化素子の抵抗値と関係を持たないものから生成されればよい。例えば、予め第1種データまたは第2種データでユーザーデータに記録されたデータでもよい。特に第1種データで保存されたものは、通常の読み出しでは、正しいデータが読み出されず、データへの攻撃に対して優位である。
なお、ユーザーデータ領域7と第1のディジタルデータ領域(PUFデータ領域)8と、第2のディジタルデータ領域404と、乱数生成セル領域403とは図のようにワード線単位に分けられる必要はなく、アレイ上の任意の領域で区分けしても良い。物理的な領域区分の規則性を複雑にするほど解析およびハッキングなどの攻撃への耐性を高めることができる。
制御回路15はコントロール信号に基づき、カラムデコーダ回路17に対し、ビット線あるいはソース線のいずれか一方を選択し、書き込み時は書き込み回路14に、読み出し時は読み出し回路11に接続させる。その上で、書き込み回路14あるいは読み出し回路11を動作させる。
抵抗変化素子23については、実施形態において上述した抵抗変化素子120と同様の構成とすることができるので、詳細な説明を省略する。
図18に示す例では、メモリセルアレイ20の選択トランジスタとしてNMOSトランジスタが用いられているが、これに限定されず、PMOSトランジスタを用いても良い。この場合、トランジスタへの制御方法が変わるが、設計事項であるので説明は省略する。
(読み出し回路11の具体例)
図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への論理は放電方式と充電方式で等しい。
このように読み出しの方式によって抵抗値情報に対する分解能が異なるため、高精度に抵抗値情報を得たい場合は、放電方式は選択されたメモリセルが高い抵抗値範囲を用いて保存される場合に用いてもよい。逆に充電方式は選択されたメモリセルが低い抵抗値範囲を用いて保存される場合に用いてもよい。しかしながら、一方で図19に示した抵抗値カウンタ32のカウンタ幅はハードウェアの制約上有限な量である。したがって、放電時間または充電時間が長すぎる場合はカウンタがカウントできるレンジをオーバーしてしまい、正確な抵抗値情報が得られない。このため、必要なカウンタのビット幅を節約して回路規模の縮小を図る場合は、放電方式は選択されたメモリセルが低い抗値範囲を用いて保存される場合に用いてもよい。逆に充電方式は、選択されたメモリセルが高い抵抗値範囲を用いて保存される場合に用いてもよい。
読み出し回路11は、本実施形態にかかる第1のディジタルデータ、第2のディジタルデータ、乱数データの生成のための抵抗値情報の取得に用いられる。得られた抵抗値情報から、夫々のデータの生成の方法は異なるため、具体的な一例について以下に述べる。
[第1実施例]
(第1のディジタルデータの生成方法)
次に、第1のディジタルデータ領域8から、装置固有のディジタルIDデータの元となる第1のディジタルデータを生成する方法について説明する。前述のように、第1のディジタルデータ領域8のメモリセルは、同一の抵抗値状態に書込まれている。図6に示すように抵抗値のバラツキ分布は正規分布に従い、人為的に制御困難でランダムなバラツキ分布となる。第1のディジタルデータの取得のためには、図6に示すようにバラツキ分布の中央値を抽出し、抽出した中央値によって、0,1のディジタルデータに変換する。初めにこの中央値の抽出方法について説明する。
第1のディジタルデータの生成時においては、初めに“中央値抽出動作”が実行される。このとき、前記第1のディジタルデータ領域8の並列読み出し数Sビットごとに、アドレスを順次変更して読み出し動作を繰り返し、第1のディジタルデータ領域8で選択されるメモリセルを変えながら、各メモリセルに応じた抵抗値情報を読み出す。Sビットごとに読み出された抵抗値情報から、読み出し回路11の動作説明で延べたように、出力Bには判定結果に応じた−1,1の信号が出力される。出力Bは並列読み出し数のSチャンネルが中央値検出回路25に入力される。図22に中央値検出回路25の一具体例を示し、その動作について説明する。
図22に示す中央値検出回路25は、全チャンネル加算器411と、乗算器202と、加算器412と、データラッチ回路413とを備えている。乗算器202は、全チャンネル加算器411と接続され、全チャンネル加算器411から出力される信号を入力する。加算器412は、乗算器202の出力およびデータラッチ回路413の出力および入力と接続されている。加算器412は、乗算器202の出力およびデータラッチ回路413の出力を入力してこれらの出力を加算し、その加算結果をデータラッチ回路413に出力する。
データラッチ回路413は、加算器412の出力を入力し、制御信号Bが指定するタイミングで、加算器412から入力したデータをラッチする。なお、データラッチ回路413は、1ビットのラッチ回路を複数組み合わせることによって複数ビットの情報を記憶することが可能な回路である。ビット数は、その出力として必要とされるビット数に依存する。次に説明するように、本構成例ではデータラッチ回路413の出力は読み出し回路11において抵抗中央値として利用される。データラッチ回路413は、少なくとも抵抗中央値を表現するために必要とされるビット数分のラッチ回路を実装していればよい。
この中央値検出回路25の動作をより具体的に説明する。
全チャンネル加算器411は、読み出し回路11から入力されるチャンネル数がSの抵抗値誤差信号を全て合算し、トータル誤差信号として出力する。乗算器202は、トータル誤差信号を入力して、その入力信号に係数αを乗じる。乗算器202は、一般的な乗算器の回路を用いてもよいし、係数αを、例えば1/2,1/4,1/8などの2のべき乗分の1とすることで、ビットシフト回路で代用できる。乗算器202の係数を変更することで、誤差信号の感度を調整する。加算器412は、データラッチ回路413の出力と、乗算器202から出力された、感度が調節された誤差信号とを加算して、データラッチ回路413に出力する。
データラッチ回路413は、制御信号Bによって指定されたタイミングで、加算器412から入力した信号(データ)をラッチする。制御信号Bが指定するタイミングは、例えば図20A,20BのT3期間の終了直前が例示できる。データラッチ回路413の出力は、ビット数がS、すなわちSビットの各抵抗値情報を1回読み出すごとに更新される。
データラッチ回路413は、直前にラッチしたデータを、加算器412へ出力するとともに、読み出し回路11の入力A(図19を参照)にも出力する。この出力されるデータは、読み出し回路11において抵抗中央値として利用される。
上述の動作から理解されるように、全チャンネル加算器411および乗算器202は、抵抗値誤差信号を累積する際の感度を調整する感度調整回路をなす。また、加算器412およびデータラッチ回路413は制御信号Bから指定されるタイミングに従って、1つ前の抵抗中央値と、感度が調節された抵抗値誤差信号とを加算して累積する累積加算回路をなす。
図22の構成例から明らかなように、感度調整回路と、抵抗値誤差信号の累積加算回路とを設けることについては、各回路の具体的な構成、および各回路の接続関係は種々考えられる。上述の開示を踏まえると、当業者であればそのような変形例を設計することができる。本開示の趣旨に鑑みれば、現時点における抵抗中央値と、読み出された抵抗値情報との差分を抵抗値誤差信号として得て、その抵抗値誤差信号を累積する際の感度が調整でき、抵抗値誤差信号の累積結果を新たな抵抗中央値として更新する、このような設計思想で設計された変形回路は、本開示の範疇である。
図23は、中央値検出回路25が実際に抵抗中央値を算出した結果を示す。横軸に第1のディジタルデータ領域8を、アドレスを変更しながら読み出した回数、縦軸にデータラッチ回路413が保持する値を示している。第1のディジタルデータ領域8の抵抗値情報を予め読み出しておき、計算機により中央値を算出した場合の理論値が17であった。図23からわかるように、読み出し回数が30回あたりで、ほぼ理論値である17に収束している様子が分かる。中央値抽出動作が完了し、抽出した中央値は、前記データラッチ回路413に保持される。この保持された中央値を、以降で抽出中央値という。このように本開示の提案方式であれば、抵抗値ばらつき分布の中央値を安定的に検出でき、抽出中央値を閾値として、もう一度、第1のディジタルデータ領域8のメモリセルの抵抗値情報を読み出して、この読み出した抵抗値情報を0,1に割り当てることで、第1のディジタルデータを良好かつ安定的に生成できる。
(第2のディジタルデータと変形第2のディジタルデータの生成方法)
次に、第2のディジタルデータ領域404から、装置固有のディジタルIDデータの元と成る第2のディジタルデータを生成する方法について説明する。前述のように、第2のディジタルデータ領域404は、抵抗変化素子の無い選択トランジスタのみのメモリセルであり、トランジスタのオン抵抗がメモリセルの抵抗値となるような“固定抵抗メモリセル”である。しかし、最先端の微細半導体プロセスにおいてはトランジスタのオン抵抗は大きくバラツキを持っている。つまり、固定抵抗セルの、それぞれの抵抗値は製造プロセス上の制御しきれないランダムなバラツキを持っている。このことは、第1のディジタルデータと同様に複製が非常に困難な特性を示している。制御回路15の指示により、ロウデコーダ回路18とカラムデコーダ回路17は、第2のディジタルデータ領域404を選択して読み出し回路11に接続する。読み出し回路11は、前述した同じ動作で、第2のディジタルデータ領域404の選択された前記固定抵抗メモリセルの抵抗値情報を読み出す。このとき得られた抵抗値情報(COUNT_OUT)のSビット分がIDデータ制御回路402に出力される。
IDデータ制御回路402は、読み出し回路11から抵抗値情報に相当するCOUNT_OUTを入力し、第2のディジタルデータを生成する。本実施例では生成される第2のディジタルデータは並列読み出し数と等しいSビットのデータであるが、これに限定されない。
図21にIDデータ制御回路402の具体的な一例を示す。図21の例示では説明の簡単化のために並列読み出し数Sを8とした場合を示しているが、これに限定されない。図21において、比較器601は入力aと入力bの大小関係を比較し、a<bなら1を、a≧bなら0を出力する。ラッチ602から609は、latch_enが1のときに、load_enが1なら入力aを選択してラッチし、load_enが0なら入力bを選択してラッチするラッチ回路である。ラッチ602から609において、入力bが選択される場合、ラッチ609の出力がラッチ602の入力となり、ラッチ602,606,607,608の出力は、次段のラッチ603,607,608,609の入力に夫々接続される。ラッチ603,604,605の出力は、それぞれラッチ609の出力と排他的論理和(XOR)され、次段のラッチ604,605,606に入力される。このときの回路接続によりラッチ603から609は、巡回型演算処理回路をなしている。例示の巡回型演算処理回路は8次の原始多項式演算処理を回路化したものである。巡回型演算処理のアルゴリズムは多くの先行技術が知られており、全ての方式が巡回型演算処理回路に適用できる。すなわち、D20からD27のデータ(第2のディジタルデータ)を初期値として繰返し演算を行い、擬似乱数を生成してDm0からDm7に出力する回路であれば本開示の実施形態に含まれる。このとき、Dm0からDm7のデータは変形第2のディジタルデータ(the modified second digital data)という。
10からD17の入力端子には前述の第1のディジタルデータが入力される。この例では、第1のディジタルデータは、Sビットごとに第1のディジタルデータ領域8のアドレスに割り当てられて記憶されている。それらのアドレスごとに読み出した第1のディジタルデータの一部(Sビット)が、D10からD17の入力端子に入力される。ビット数が同じSビットの変形第2のディジタルデータは、D10からD17のデータと排他的論理和(XOR)されてDx0からDx7として出力される。Dx0からDx7のデータは装置固有のディジタルIDデータ(PUFデータ)として用いられる。
制御回路15の制御により、読み出し回路11は、第2のディジタルデータ領域404から選択された固定抵抗メモリセルの抵抗値情報を読み出し、この読み出した結果をCOUNT_OUT0〜COUNT_OUT7として出力する。図21からわかるように、比較器601は、それぞれの隣接チャンネルのCOUNT_OUT値を比較して、D20か
らD27の第2のディジタルデータを出力する。つまり、第2のディジタルデータは、固
定抵抗メモリセルの抵抗値の大小関係から得られるデータである。前述のとおり、固定抵抗メモリセルの抵抗値は半導体プロセスにおける製造ばらつきがあるため、第2のディジタルデータは人為的に決定できないランダムなデータをなす。第2のディジタルデータのD20からD27が確定したとき、load_enが1、latch_enが1を指定され、ラッチ602から609にD20からD27が初期値としてロードされる。そして、第1のディジタルデータが読み出されるたびに、load_enが0、latch_enが1を指定され、ラッチ602から609が入力端子bのデータをラッチする。つまり、第1のディジタルデータが読み出されるたびに、IDデータ制御回路402は、第2のディジタルデータ(D20からD27)を初期値とした巡回型演算処理を繰返し、変形第2のディジタルデータ(Dm0からDm7)を順次生成するとともに、第1のディジタルデータと変形第2のディジタルデータとの排他的論理和を行い、装置固有のディジタルIDデータ(Dx0からDx7)を得る。このディジタルIDデータは、上述したPUFデータとなる。
以上のように、第1のディジタルデータは抵抗変化型メモリセルが同じ抵抗値範囲にセットされたときの抵抗値のバラツキに関係したデータであり、第2のディジタルデータおよび変形第2のディジタルデータは、第1のディジタルデータとは全く相関関係の無いデータである。第1のディジタルデータは、抵抗値の大小関係から得られるデータであるが、第1のディジタルデータと変形第2のディジタルデータと排他的論理和をとって、ディジタルIDデータを得ることで、ディジタルIDデータが示す0と1が抵抗値との相関関係がなくなる。これによりプローブによる直接的にメモリセルの抵抗値を読み出すような攻撃が可能であったとしても、ディジタルIDデータが容易に類推されることが無くなり、非常にセキュア性の優れたIDデータを得ることができる。
なお、第2のディジタルデータとして、第1種データまたは第2種データが用いられてもよい。上述したように、第1種データは、図3に示す第1閾値で判別されて得られるデータであり、不揮発性メモリセルが初期状態にあるか可変状態にあるかを示すデータである。また、第2種データは、図3に示す第2閾値で判別されて得られるデータであり、不揮発性メモリセルの抵抗値が図3に示す第1抵抗値範囲にあるか第2抵抗値範囲にあるかを示すデータである。このような第2のディジタルデータと第1のディジタルデータに基づいて生成したディジタルIDデータも上記と同様に非常にセキュア性の優れたIDデータとなる。
[第2実施例]
(チャレンジ・レスポンス)
次に、第1のディジタルデータと変形第2のディジタルデータを用いたチャレンジ・レスポンスについて図24Aおよび図24Bを用いて説明する。本実施形態において装置外から入力されるチャレンジ信号はメモリセルにアクセスする読み出しアドレスの順番となる。図24Aは、チャレンジXのパターンを示している。このチャレンジXのパターンにおいては、読み出し回路11は、初めに第2のディジタルデータ領域404のアドレスを選択して第2のディジタルデータを読み出す。このときアクセスするアドレスをZとする。図21で示したload_enは、第2のディジタルデータ領域404のアドレスを読み出すときは、Highが設定される。そして、前述した読み出し方法によって抵抗値情報が読み出され、COUNT_OUTの値が定まり、読み出し回路11から出力されたタイミングで図24Aのようにlatch_enが、Low→High→Lowに変化する。この結果、latch_enがHighのタイミングで、図21のD20〜D27がラッチ602から609の初期値として保持される。図24Aの例では、ラッチ602から609に保持された値を16進数で記述したときの値は0xA5であったとしている。その後、アドレスを変更して読み出されるたびに、load_enはLowで、latch_enがLow→High→Lowに変化する。このため、0xA5を初期値として図21のラッチ回路が、多項式演算処理を実行して、それぞれの読み出し回数ごとに、ラッチ回路に保持されている値は、0x56、0xAD、0x46、0x8D、0x06へと順次変化していく。これらのデータが、変形第2のディジタルデータとなる。
一方で、第2のディジタルデータ領域404のメモリセルを読み出して、ラッチ602から609に初期値を保持させた後は、第1のディジタルデータ領域8の各アドレスを読み出していく。なお、読み出し回路の動作で説明したような抵抗中央値の検出は事前に完了しているものとする。例えば、第1のディジタルデータ領域8のアドレスaを読み出したときの第1のディジタルデータは、16進数で0x15とした。同じように、第1のディジタルデータ領域8のアドレスb,c,d,eに対応して、0xD0,0x2F,0x85,0x34の第1のディジタルデータが順次読み出されるものとする。そして、図21のDx0〜Dx7には、チャレンジに対するレスポンスに相当するディジタルIDデータが、第1のディジタルデータと変形第2のディジタルデータとの排他的論理和から得られる結果として出力される。このディジタルIDデータを不揮発性メモリ装置外に出力することをレスポンス出力と呼ぶ。
図24BにチャレンジYのパターンを示す。図24Bからわかるように、第2のディジタルデータ領域404のアドレスを読み出した後、読み出し回路11が読み出す第1のディジタルデータ領域8のアドレスの順番が異なっている。これにより変形第2のディジタルデータは同じであるが、読み出すアドレスの順番が異なるので、第1のディジタルデータと変形第2のディジタルデータとの排他的論理和される組合せが変わるので、チャレンジXのパターンとは異なるディジタルIDデータが、図21のDx0〜Dx7に出力されることになる。
上述したようなチャレンジ入力とレスポンス出力との関係に基づいて不揮発性メモリ装置外からの認証を行う。本実施形態の構成を用いてチャレンジ・レスポンスの認証を行う場合は、予めセキュリティーが担保されている装置製造工程の検査時において、変形第2のディジタルデータと排他的論理和を行わず、第2のディジタルデータと第1のディジタルデータを所定のアドレス順番で読み出しておき、認証サーバーにデータを登録する。なお、当然なこととして、装置の検査時以外では第1のディジタルデータと第2のディジタルデータ読み出すことができないように工夫されている。例えば読み出すためには複雑なコマンド入力によってのみ行え、そのコマンド入力の方法は一般には公開しないなどがある。第1種データをあらわす初期抵抗値状態は、一度でも違う抵抗状態に書き換えると書き戻しのできない抵抗値状態である。従って、所定のメモリセルが初期状態でなければ第1のディジタルデータおよび第2のディジタルデータを読み出すことがハードウェア的にできないように回路を構成するといった対策が有効である。
市場において認証サーバーによって各装置を認証する場合は、登録された第1のディジタルデータと第2のディジタルデータとを用いてチャレンジに対するレスポンスデータを演算にて導き出しておき、装置から実際に返されるレスポンスと一致するかどうかで認証する。
このように、不揮発性メモリ装置が正規の装置であることを認証するための認証方法においては、不揮発性メモリ装置の出荷前に、第1のディジタルデータと第2のディジタルデータとを読み出し、外部認証装置に保持しておく。そして、不揮発性メモリ装置が出荷されて使用されるときに、外部認証装置は、複数のチャレンジ入力を用いてレスポンス出力を受信し、外部認証装置が予め保持している第1のディジタルデータと第2のディジタルデータを用いて演算した結果と、受信したレスポンス出力とが一致しているか否かを判断する。そして、一致している場合には、不揮発性メモリ装置が正規の装置であると認証する。不一致の場合には、不揮発性メモリ装置が正規の装置ではないと判断し、認証は行わない。
以上のような本実施形態における第1のディジタルデータと、第2のディジタルデータをもとに変形される変形第2のディジタルデータとを用いて装置固有のディジタルIDデータを生成する方法であれば、読み出すアドレス順番によりレスポンスが変わり、第1のディジタルデータは複製できない装置固有のデータであるので、そこから得られるレスポンスも装置ごとに異なるユニークなレスポンスをなす。また、最終的に出力されるディジタルIDデータは、第1のディジタルデータと変形第2のディジタルデータとの排他的論理和として得られる。したがって、メモリセルの抵抗値の大小関係と、データの0,1とが相関関係を持たない。この結果、将来的に攻撃に用いるプロービング技術が進歩して、メモリセルごとの抵抗値を読みだすことができたとしても、ディジタルIDデータの予測が困難であり、非常にセキュリティー性の高いディジタルIDデータの生成が可能となる。
[第3実施例]
(乱数生成)
次に、本実施形態に用いられる乱数生成について説明する。この乱数生成は、乱数生成セル領域403のメモリセルから得られる複数の抵抗値情報を用いてディジタルデータを生成し、該ディジタルデータを用いて所定のアルゴリズムを実行することによって乱数データを生成するものである。
第3実施例は、書き込み後に時間が経過して抵抗値変動における抵抗値の変動幅が小さくなった場合でも良好な乱数を抽出する構成である。
図25は、乱数生成セル領域403のメモリセルの抵抗値情報であるCOUNT_OUTの値から乱数を生成する乱数生成回路の概略構成を示す回路図である。以下、図25を参照しつつ、乱数生成回路401について説明する。
図25の乱数生成回路401は、乱数ソース信号生成回路部401aと、乱数生成ポスト処理回路部401bに分けられる。乱数ソース信号生成回路部401aは、抵抗変化素子の抵抗値揺らぎから得られるCOUT_OUT値の変動を元に0または1のディジタル値に変換し、乱数ソースを出力するブロックをさす。また、乱数生成ポスト処理回路部401bは、乱数ソース信号生成回路が生成した乱数ソースのディジタル値を用いて、更に乱数性を高める種々の演算が実行されるブロックをさす。乱数生成ポスト処理回路部401bの処理としては、種々のアルゴリズムが例示でき、先行文献などでは多項式演算処理などが利用される。本発明者らは「The Workshop on Fast Software Encryption 2007(FSE 2007) LNCS 4593, pp. 137−152, 2007. @ International Association for Cryptologic Research 2007 "Bad and Good Ways of Post-processing Biased Physical Random Numbers" Markus Dichtl」(以下、非特許文献3と略称する)に示されているH4回路に着目した。
図26にH4回路の構成例を示す。図26に示すように、入力されるDIx0〜DIx7の8ビットの信号を1ビット巡回シフトしたものと、2ビット巡回シフトしたものと、4ビット巡回シフトしたものと、元のDIx0〜DIx7とをビット毎に排他的論理和を行う。この排他的論理和にて得られた各ビットと、もう一つの入力であるDIy0〜DIy7の8ビットとビット毎に排他的論理和を行っている。前述の非特許文献3によれば、0または1の発生確率のうち、どちらかに偏るバイアス確率をεとしたとき、H4回路の処理によってεの4乗までの項がキャンセルされ、最少のバイアスがεの5乗項のみになるように非常に小さくすることができる。しかしながら、H4回路は乱数ソース16ビットの入力に対して、出力が8ビットになり、生成速度が半分になってしまう。つまり、Dichtl氏が示したH4回路は、0または1の発生確率に偏りのある乱数ソースであったとしても、バイアス成分の大部分を除去し、非常に良好な乱数に生成しなおすことができるが、得られる乱数ソースのビット数に対して出力できる乱数データのビット数は半分になる欠点を有している。本発明者らは鋭意検討の結果、Sビットのメモリセルの抵抗値揺らぎから、各ビット自身の抵抗値の変動から得られるSビットの乱数ソースと、各ビットとそれ以外のビットとの間の抵抗値の変動から得られるSビットの乱数ソースは、互いに独立関係にあることを見出した。そして、2つのSビットの乱数ソースを、それぞれH4回路に入力することで、Sビットの抵抗値情報を読み出す回路のチャンネル数が倍に増加することなく、乱数性の極めて高い乱数データを得ることを見出した。上記で延べた、各ビット自身の抵抗値の変動から得られるSビットの乱数ソースデータを自己変動乱数ソースと定義し、各ビットとそれ以外のビットとの間の抵抗値の変動から得られるSビットの乱数ソースデータを相互変動乱数ソースと定義する。抵抗値情報であるCOUNT_OUTの値から自己変動乱数ソースまたは相互変動乱数ソースを生成する回路構成は色々と考えられるが、上記の考え方を包含した処理回路は全て本実施形態に含まれる。以下、回路構成の一例を、図25を用いて説明する。
図25において、点線で囲まれたブロックが自己変動乱数ソースを生成する自己変動乱数ソース信号生成回路720である。また、一点鎖線で囲まれたブロックが相互変動乱数ソースを生成する相互変動乱数ソース信号生成回路721である。
図18における読み出し回路11は、同一の可変抵抗値範囲にあるN個(Nは2以上)のメモリセル21から複数の異なる時刻のそれぞれにおいて抵抗値情報を取得することで、複数の抵抗値情報を取得する。自己変動乱数ソース信号生成回路720は、複数の抵抗値情報のうちの各メモリセル21の過去と現在の抵抗値情報の差分または大小関係に基づいて、Nビットの乱数データを生成する。相互変動乱数ソース信号生成回路721は、各メモリセルの抵抗値情報と、各メモリセル自身以外の他のメモリセルの抵抗値情報との差分または大小関係に基づいて、Nビットの乱数データを生成する。図25では、自己変動乱数ソース信号生成回路720、相互変動乱数ソース信号生成回路721が8ビットの乱数データを出力する例を示している。
自己変動乱数ソース信号生成回路720は、センスアンプ回路30から出力されるCOUNT_OUTの抵抗値情報の値が入力される。
乱数データ読み出しコマンドを受け付けたとき、制御回路15の指示に従い、各チャンネルの列選択回路によって乱数生成セル領域403のメモリセルが選択され、読み出し回路11に接続される。読み出し回路11内のセンスアンプ回路30からは、メモリセルの抵抗値情報にあたるCOUNT_OUT値が読み出される。
latch_enは、1クロック幅のラッチタイミングのパルスである。すなわち、latch_enが“High”となるタイミングで、ラッチ739は入力のCOUNT_OUTの値をラッチする。この場合、ラッチ739には前回読み出した抵抗値情報(一つ過去に読み出したCOUNT_OUT値)が保持されることになり、検出器741(図ではDETaで表示)は、現在のCOUNT_OUT値から前回読み出したCOUNT_OUT値を減算して、正の値であれば1を出力し、負の値であれば−1を出力し、何れでもなければ0を出力する。図25に検出器741(DETa)の論理表を示す。検出器741の出力は、0/1判定器742のYに入力される。0/1判定器742のXには、後述するラッチ740の出力が入力される。0/1判定器742の論理表を図25に示す。0/1判定器742は、入力Yが1のとき1を出力し、入力Yが−1のとき0を出力する。更に入力Yが0の時、入力Xをそのまま出力する。ラッチ740は、ラッチ739と同様にlatch_enのタイミングで0/1判定器742の出力を保持するので、前回読み出したときの0/1判定器742の出力が保持されていることになる。つまり、入力Yが0のときは1つ前の読み出し時における0/1判定器742の出力を再度出力する。
このように自己変動乱数ソース信号生成回路720は、乱数生成セル領域403のメモリセル中で選択した同じメモリセルを、書き換えることなく繰返し読み出し、COUNT_OUTに出力される抵抗値情報が、読み出すごとに変動する値から0または1に変換する回路をなす。同じメモリセルの抵抗値情報が変動する現象から0または1を生成する方法は、多くの派生の回路が考えられ、自己変動乱数ソース信号生成回路720の回路構成に限定されない。本構成例と同じ考え方に基づく回路は本実施形態に帰属するものである。
次に相互変動乱数ソース信号生成回路721について説明する。図25において各相互変動乱数ソース信号生成回路721には、各チャンネル自身のCOUNT_OUTが入力されるとともに、隣接チャンネルのCOUNT_OUTも同時に入力されている。例えばCH0であればCH0のCOUNT_OUT0と、CH7のCOUNT_OUT7が入力される。CH1であればCH1のCOUNT_OUT1と、CH0のCOUNT_OUT0が入力される。CH2であればCH2のCOUNT_OUT2と、CH1のCOUNT_OUT1が入力される。CH3であればCH3のCOUNT_OUT3と、CH2のCOUNT_OUT2が入力される。CH4であればCH4のCOUNT_OUT4と、CH3のCOUNT_OUT3が入力される。CH5であればCH5のCOUNT_OUT5と、CH4のCOUNT_OUT4が入力される。CH6であればCH6のCOUNT_OUT6と、CH5のCOUNT_OUT5が入力される。CH7であればCH7のCOUNT_OUT7と、CH6のCOUNT_OUT6が入力される。そして、EVEN/ODD検出回路743は2つのCOUNT_OUTの差分値が偶数か奇数かで0または1の信号を出力する。つまり、差分値が偶数であれば0を出力し、奇数であれば1を出力する。更にラッチ750は、EVEN/ODD検出回路743の出力と、ラッチ750の出力とを排他的論理和したものが入力されている。ラッチ750は、ラッチ740と同様にlatch_enのタイミングで入力データを保持する構成となっている。ラッチ750にデータが更新される状態遷移図を図27に示した。図27において、各状態の意味は以下の通りである。Even(1)は、前回の読み出しが偶数でラッチ750の出力が1であることを表している。Even(0)は、前回の読み出しが偶数でラッチ750の出力が0であることを表している。Odd(1)は、前回の読み出しが奇数でラッチ750の出力が1であることを表している。Odd(0)は、前回の読み出しが奇数でラッチ750の出力が0であることを表している。それら4つの状態のそれぞれにおいて、隣接する抵抗値情報の値との差分が奇数であるか偶数であるかで、次にどの状態に遷移するかを示している。すなわち、前回の読み出しが偶数で、Even(1)状態にあるとき、更に今回の読み出しが偶数である場合は、Even(0)に遷移し、ラッチ750の出力は0となる。前回の読み出しが偶数で、Even(1)状態にあるとき、更に今回の読み出しが奇数である場合は、Odd(0)に遷移し、ラッチ750の出力は0となる。前回の読み出しが偶数で、Even(0)状態にあるとき、更に今回の読み出しが偶数である場合は、Even(0)に遷移し、ラッチ750の出力は0となる。前回の読み出しが偶数で、Even(0)状態にあるとき、更に今回の読み出しが奇数である場合は、Odd(0)に遷移し、ラッチ750の出力は0となる。
また、前回の読み出しが奇数で、Odd(1)状態にあるとき、更に今回の読み出しが偶数である場合は、Even(1)に遷移し、ラッチ750の出力は1となる。前回の読み出しが奇数で、Odd(1)状態にあるとき、更に今回の読み出しが奇数である場合は、Odd(0)に遷移し、ラッチ750の出力は0となる。前回の読み出しが奇数で、Odd(0)状態にあるとき、更に今回の読み出しが偶数である場合は、Even(1)に遷移し、ラッチ750の出力は1となる。前回の読み出しが奇数で、Odd(0)状態にあるとき、更に今回の読み出しが奇数である場合は、Odd(0)に遷移し、ラッチ750の出力は0となる。このような状態遷移によりCOUNT_OUT値の差分値から0または1のディジタル値に変換される。
以上の様に出力された2種類の乱数ソースの16ビットのデータが、乱数抽出演算部700に入力される。乱数抽出演算部700は、前述した図26のH4回路と同様の構成を有し、8ビットの乱数データを出力する。乱数抽出演算部700は、自己変動乱数ソース信号生成回路720が出力した8ビットの乱数データと、相互変動乱数ソース信号生成回路721が出力した8ビットの乱数データとを所定の組合せで排他的論理和することにより8ビットの乱数データを生成して出力する。すなわち、本実施形態の乱数生成回路401は、乱数生成セル領域403のメモリセルから読み出した8ビットのデータを入力として、8ビットの乱数データを出力する。
なお、今回は8ビットのデータ単位で例示したが、読み出されるS個の抵抗値情報の値を8個単位で上述と同様の処理を行えば、8のn倍のビット数の乱数データが出力できる。このように本構成を用いれば、S個の抵抗値情報から生成速度を落とすことなく極めて乱数性の高い乱数データを生成することができる。
(エラー訂正回路)
近年、PUFを用いたディジタルIDデータ生成におけるエラー訂正方式としてFussy Extractorと呼ばれるデータ抽出器が提案されている。「“Implementation and Evaluation of SCA-Resistant AES and PUF using MDR-ROM Scheme”@SCIS2015(The 32nd Symposium on Cryptography and Information Security Kokura, Japan, Jan.20-23,2015) by Takeshi Fujino」に示された構成を図28A、図28Bに示す
。図28Aは、ディジタルIDデータ、つまりPUF−IDデータに誤り訂正用の信号を付加してIDとして登録するための初期登録の構成を示している。図28Bは、付加した誤り訂正用信号を用いて登録したIDを再生する構成を示している。誤り訂正に用いるパリティーデータは、訂正対象のデータをもとに所定の演算をすることにより生成される。つまり、訂正対象のデータ系列とパリティーデータとには、一定の関係性がある。通常、PUF IDデータは、製造時のばらつきを元に生成されるため複製できないものであり、更に容易に類推することのできないデータ系列であるため、IDのセキュリティー性が高いとされる。しかし、一定のデータ誤りを持つため、同じIDを安定に再生するためには誤り訂正が必要となる。誤り訂正に必要なパリティーデータは、通常は不揮発性メモリに保存されるため、ハッキングなどの悪意ある攻撃によってパリティーデータが盗み読みされると、パリティーデータとの相関関係からPUF−IDが類推されるといった懸念がある。その対策として、Fussy Extractorの方式を採用することができる。図18に示す誤り訂正およびヘルパーデータ生成回路400は、以下に説明する誤り訂正の処理およびヘルパーデータを生成する処理を実行する。
図28Aにおいて、PUF Data(データW)をディジタルIDデータとして登録するとき、別途予測困難な乱数データを用意する。図18に示す乱数生成回路401から乱数データMをECC Encoderに入力し、乱数データMに誤り訂正用のパリティ
ーデータを追加する。この乱数データMにパリティーデータを追加したデータをデータCとする。このときPUF DataであるデータW(図21のディジタルIDデータDx0〜Dx7)とデータCのビット長は同じになるようにする。更に、データWとデータCをビット毎に排他的論理和(XOR)を行い、ヘルパーデータ(XOR(C,W))を生成する。このヘルパーデータを不揮発性メモリに記憶、例えば、図18のユーザーデータ領域7に保存する。この方式であれば、誤り訂正のパリティーデータが予測困難な乱数データを元に生成されているため、パリティーデータからPUFデータを類推することは非常に困難となる。また、同様にヘルパーデータは、データCとデータWとの排他的論理和で生成されるため、不揮発性メモリをハッキングされたとしてもPUFデータを類推することが困難である。
次に、図28Bを用いて、ヘルパーデータと誤りを含むPUFデータから、正しい登録したPUF IDデータを生成する方法を説明する。再生されたPUFデータは誤りを含
み、データWに誤ったビットを含んでいるため、図28BではデータW+ΔWという標記をしている。前述したように事前に登録したヘルパーデータをメモリアレイのユーザーデータ領域7から読み出す。ヘルパーデータはデータCとデータWとの排他的論理和で生成されているので、誤りを含むPUFデータと、更に排他的論理和をビット毎に行うと、正しいデータWのビットがキャンセルされ、データCに誤りデータであるΔWが付加されたデータが生成される。このデータは(C XOR ΔW)で表される。この(C XOR ΔW)をECC Decoderに入力し、パリティーデータを用いて誤り訂正を行うと、正しい乱数データ(データC)が生成される。このデータCと、ヘルパーデータとを更に排他的論理和を行うことで、正しいPUFデータ(W)が再生される。
図28A、図28Bに示すように、PUF DataがHash関数を用いて演算され、その演算値が暗号器で用いる暗号鍵として用いられてもよい。Hash関数を用いることにより、万が一、暗号鍵が盗まれても、元のPUF Dataが類推されないようにすることができ、安全性をより高めることができる。例えば、PUF Dataは、データ制御回路6における書き込み処理および読み出し処理において用いられる。
このように、誤り訂正に用いるパリティーデータまたはヘルパーデータから、PUFデータを容易に類推させないためには、初期登録時に用いた予測困難な乱数データの生成が非常に重要になる。PUFデータの生成ブロックと乱数データの生成ブロックと、更にデータを記憶する不揮発性メモリとが、それぞれ独立している場合は、それぞれの間で各データをやり取りするため、その経路上の安全性を担保することが困難となる。本実施形態の構成であれば、PUFデータの生成、乱数の生成、不揮発性メモリへのデータの記憶の全ての機能が同じ装置内で自己完結で実施できる。このため、例えば別のブロックで乱数データを生成して入力する必要がない。入力経路があると、その経路が攻撃され攻撃者が解読しやすい既知の乱数データを故意に入力されるといったリスクが発生する。しかしながら、本実施形態の構成であれば、そのようなリスクを排除でき、非常にセキュリティー性の高いID生成と、その管理が行える装置を提供できる。
(ICカードへの応用例)
一つの応用例として、本開示により生成されるディジタルIDデータによる秘密鍵の暗号と、暗号化秘密鍵のフォーミングによる書き込みによるデータ隠蔽、さらに認証方法を開示する。
図29は、本実施形態にかかる通信システム500の構成例を示すブロック図である。図29において、通信システム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に供給する。不揮発性メモリ装置515は、上述の不揮発性メモリ装置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記憶部は、運用される複数の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データを鍵として暗号化して記憶されていてもよい。なお、所定のデータは、第1種データ
として初期状態のメモリセルを利用して記憶されていてもよいし、第2種データとして可変状態のメモリセルを利用して記憶されていてもよい。
秘密鍵記憶部508としては、前述した記憶用のメモリセルが用いられる。記憶用のメモリセルを用いる場合は、抵抗変化素子の初期状態と可変状態との違いでデータを記憶するため、通常の読み出し閾値のコマンドではデータを読み出すことができない。よって、鍵情報の隠蔽が行える。なお、秘密鍵記憶部508において、秘密鍵は、前述の暗号化秘密鍵として記憶されてもよい。
また、メモリセルアレイ内の自由なアドレスにデータを記憶できる。よって、プローブを用いて物理的に抵抗値を直接読み出すような解析を行おうとしても、そのメモリセルがどのデータに対応しているか特定するのは困難である。更にディジタルIDデータで暗号化されたデータか、非暗号のデータかの区別も困難であるため、更に解析を複雑にせしめる。
以上のように、図29に示す通信システム500は、秘密鍵の漏洩に対し強い耐タンパ性(tamper resistant)があるといえる。さらに、本開示のディジタル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個のメモリセルアレイに包含されている。そして、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データにより暗号化された暗号化秘密鍵または暗号化公開鍵として保存される。それらは、メモリセルにより記憶されうる。ICカード502において、データの暗号化または復号化を行う場合、CPU521が、不揮発性メモリ装置530内のメモリセル群の一部である秘密鍵記憶部526に記憶された暗号化秘密鍵データを、図3の閾値で読み出す特殊なリードコマンドにて読み出す。読み出された暗号化秘密鍵データは、本開示のディジタルIDデータにより復号化され元の秘密鍵データとする。CPU521は、秘密鍵データを、暗号化または復号化すべきデータとともに、暗号処理回路522に供給する。暗号処理回路522は、供給された秘密鍵を用いて、供給されたデータの暗号化または復号化を実行する。
データ記憶部527は、CPU521がプログラムを実行する上で必要なデータが記憶されている。データ記憶部527において、所定のデータが平文のまま記憶されていてもよいし、秘密鍵で暗号化されて記憶されていてもよいし、ディジタルIDデータを鍵として暗号化されて記憶されてもよい。なお、所定のデータは、第1種データとして初期状態のメモリセルを利用して記憶されていてもよいし、第2種データとして可変状態のメモリセルを利用して記憶されていてもよい。
このような暗号化と復号化の機能を備えた通信システム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は、前述した第1のディジタルデータと第2のディジタルデータとをICカードごとに保管している。リーダライタ501は、受け取りたいディジタルIDデータのアドレスの読出し順序の組合せをチャレンジデータとして、ICカード502に送信する。ICカード502は受け取ったチャレンジデータにおけるディジタルIDデータのアドレス順序にしたがい、前述の第1のディジタルデータと変形第2のディジタルデータとの排他的論理和を行う組合せを変更し、レスポンスデータとしてリーダライタ501に返信する。
リーダライタ501は、予め登録されている第1のディジタルデータと第2のディジタルデータとから演算により、期待されるレスポンスデータを求め、ICカードから返信されるレスポンスデータと一致するかの照合を行い、所定のビット数以上が一致していることを確認してICカードを認証する。
レスポンスデータであるディジタルIDデータには、前述したような誤りデータを含んだ状態で送られるため、ハッキングに対して耐性が高い。ディジタルIDデータは、各ICカードで異なる乱数でありデータ間に十分なハミング距離があれば所定のビット数の誤りデータがあったとしても何れのICカードのIDデータかを特定することができる。このため、チャレンジデータの送信と、レスポンスデータの受信を繰り返すことで、ICカードが正規のカードであることを特定できる。さらに認証に用いられているデータがICカードごとに固有かつ誤りのあるデータであるためデータの解析が困難であり非常に高いセキュリティーが担保された認証が実現できる。
以上のように、通信システム500によれば、固有ディジタルIDデータ生成、秘密鍵記憶、データ記憶、プログラムデータ記憶の機能を、ただ一つの不揮発性メモリ装置で実現できる。別途PUF技術に基づくID生成用の回路を搭載する必要がなく、回路規模の増加を極力抑制したICカードのようなモバイル型アプリケーションが提供できる。
RAM503の機能を不揮発性メモリ装置515が備えるメモリセルアレイで実現してもよい。RAM523の機能を不揮発性メモリ装置530が備えるメモリセルアレイで実現してもよい。
各種データは任意のアドレスの不揮発性メモリセルに保存できるため、どのエリアのメモリセルが何れの状態で情報が記憶されているかを第三者に対し秘匿することができる。さらに、物理的なプローブを用いてメモリ内のデータを直接読み出すようなハッキングからもディジタルIDデータを防衛でき、極めて耐タンパ性の優れたアプリケーションが提供できる。
なお、ディジタルIDデータを暗号鍵として用いて暗号化されたデータ(暗号化データ)が、ICカード502に記憶されることは必須ではない。たとえば、リーダライタ501が暗号化データを読み取り、リーダライタ501のデータ記憶部509が暗号化データを記憶してもよい。さらにリーダライタ501が暗号化データを外部に設けられたサーバ(図示せず)に送信し、そのサーバの記憶装置が記憶してもよい。暗号化データがICカード502に記憶されていない場合には、復号化の手順は以下のとおりである。すなわち、ICカード502のCPU521は、入出力I/F部520を介して外部に記憶されている暗号化データを受信する。またCPU521は、各ICカード固有のディジタルIDデータを固有ID記憶部525から生成する。その後、暗号処理回路522が、ディジタルIDデータを復号鍵として用いて当該暗号化データを復号化する。
上記説明から、当業者にとっては、本開示の多くの改良および他の実施形態が明らかである。従って、上記説明は、例示としてのみ解釈されるべきであり、本開示を具体化する最良の態様を当業者に教示する目的で提供されたものである。本開示の精神を逸脱することなく、その構造および/又は機能の詳細を実質的に変更できる。
本開示の技術は、ディジタルIDデータを用いたデータ暗号技術の分野、ホストコンピュータ及びサーバーに認証を伴うアクセスを行うICやSoCなどの技術分野等において特に有用である。
10 不揮発メモリ装置
11 読み出し回路
14 書き込み回路
15 制御回路
16 アドレス制御回路
17 カラムデコーダ回路
18 ロウデコーダ回路
20 メモリセルアレイ
21 メモリセル
22 メモリ本体部
25 中央値検出回路
400 誤り訂正およびヘルパーデータ生成回路
401 乱数生成回路
402 IDデータ制御回路

Claims (19)

  1. 複数のメモリセルから読み出したデータを用いて乱数データを生成する乱数処理装置であって、
    前記複数のメモリセルの各々は、可変状態において、異なる複数の電気的信号が印加されることによって、前記複数のメモリセルの各々の抵抗値が複数の抵抗値範囲の間を可逆的に遷移する性質を有し、かつ、前記抵抗値が前記複数の抵抗値範囲のうちの少なくとも1つの抵抗値範囲にある場合に、時間経過に伴って前記抵抗値が変動する性質を有し、
    前記乱数処理装置は、
    前記複数のメモリセルのうち、前記少なくとも1つの抵抗値範囲にある第1のメモリセルの前記抵抗値に関する第1の抵抗値情報と、前記複数のメモリセルのうち、前記第1のメモリセルと異なる、前記少なくとも1つの抵抗値範囲にある第2のメモリセルの前記抵抗値に関する第2の抵抗値情報との組合せから第1の乱数データを生成する乱数処理回路を備える、乱数処理装置。
  2. 前記乱数処理回路は、
    前記第1の抵抗値情報と、前記第2の抵抗値情報との差分または大小関係に基づいて、前記第1の乱数データを生成する第1の乱数データ生成回路を含む、請求項1に記載の乱数処理装置。
  3. 前記乱数処理回路は、
    前記複数のメモリセルのうち、前記少なくとも1つの抵抗値範囲にある第3のメモリセルの前記抵抗値に関する、第1の時刻に取得された第3の抵抗値情報と、第2の時刻に取得された第4の抵抗値情報との差分または大小関係に基づいて、第2の乱数データを生成する第2の乱数データ生成回路をさらに含む、請求項2に記載の乱数処理装置。
  4. 前記第1の抵抗値情報および前記第2の抵抗値情報はディジタル値であり、
    前記第1の乱数データ生成回路は、
    前記差分の値が、偶数か奇数かによって、前記第1の乱数データを生成する、請求項2に記載の乱数処理装置。
  5. 前記第3の抵抗値情報および前記第4の抵抗値情報はディジタル値であり、
    前記第2の乱数データ生成回路は、
    前記差分の値が、偶数か奇数かによって、前記第2の乱数データを生成する、請求項3に記載の乱数処理装置。
  6. 前記乱数処理回路は、
    前記第1の乱数データと前記第2の乱数データとの排他的論理和の演算をすることにより第3の乱数データを生成する第3の乱数データ生成回路をさらに含む、請求項3に記載の乱数処理装置。
  7. 可変状態において、異なる複数の電気的信号が印加されることによって、抵抗値が複数の抵抗値範囲の間を可逆的に遷移する性質を有し、かつ、前記抵抗値が前記複数の抵抗値範囲のうちの少なくとも1つの抵抗値範囲にある場合に、時間経過に伴って前記抵抗値が変動する性質を有する複数のメモリセルを含むメモリアレイ、
    前記複数のメモリセルのうち、前記少なくとも1つの抵抗値範囲にある第1のメモリセルの前記抵抗値に関する第1の抵抗値情報と、前記複数のメモリセルのうち、前記第1のメモリセルと異なる、前記少なくとも1つの抵抗値範囲にある第2のメモリセルの前記抵抗値に関する第2の抵抗値情報と、を取得する読み出し回路、および
    前記第1の抵抗値情報と前記第2の抵抗値情報との組合せから第1の乱数データを生成する乱数処理回路を備える、不揮発性メモリ装置。
  8. 前記複数のメモリセルの各々は、
    第1電極と、
    第2電極と、
    前記第1電極および前記第2電極の間に配置される抵抗変化層と
    を含む抵抗変化素子を備える、請求項7に記載の不揮発性メモリ装置。
  9. 前記抵抗変化層は、絶縁体の層を含む、請求項8に記載の不揮発性メモリ装置。
  10. 前記抵抗変化層は、前記絶縁体の層を貫く局所領域を含む、請求項9に記載の不揮発性メモリ装置。
  11. 前記抵抗変化層は金属酸化物を含む、請求項8から10のいずれかに記載の不揮発性メモリ装置。
  12. 前記金属酸化物は、酸素不足型である、請求項11に記載の不揮発性メモリ装置。
  13. 前記金属酸化物は、遷移金属酸化物およびアルミニウム酸化物からなる群から選択される少なくとも一つである、請求項11または12に記載の不揮発性メモリ装置。
  14. 前記金属酸化物は、タンタル酸化物、ハフニウム酸化物およびジルコニウム酸化物からなる群から選択される少なくとも一つである、請求項11または12に記載の不揮発性メモリ装置。
  15. 前記絶縁体は金属酸化物を含み、
    前記局所領域は、前記絶縁体よりも酸素含有率が低い酸素不足型の金属酸化物を含む、請求項10に記載の不揮発性メモリ装置。
  16. 可変状態において、異なる複数の電気的信号が印加されることによって、抵抗値が複数の抵抗値範囲の間を可逆的に遷移する性質を有し、かつ、前記抵抗値が前記複数の抵抗値範囲のうちの少なくとも1つの抵抗値範囲にある場合に、時間経過に伴って前記抵抗値が変動する性質を有する複数のメモリセルを含むメモリアレイ、
    前記複数のメモリセルのうち、前記少なくとも1つの抵抗値範囲にある第1のメモリセルの前記抵抗値に関する第1の抵抗値情報と、前記複数のメモリセルのうち、前記第1のメモリセルと異なる、前記少なくとも1つの抵抗値範囲にある第2のメモリセルの前記抵抗値に関する第2の抵抗値情報と、を取得する読み出し回路、
    前記第1の抵抗値情報と前記第2の抵抗値情報との組合せから第1の乱数データを生成する乱数処理回路、および
    前記第1の乱数データを用いて生成された個体識別情報が出力される入出力インタフェース部を備える、集積回路カード。
  17. 複数のメモリセルから読み出したデータを用いて乱数データを生成する乱数処理方法であって、
    前記複数のメモリセルの各々は、可変状態において、異なる複数の電気的信号が印加されることによって、前記複数のメモリセルの各々の抵抗値が複数の抵抗値範囲の間を可逆的に遷移する性質を有し、かつ、前記抵抗値が前記複数の抵抗値範囲のうちの少なくとも1つの抵抗値範囲にある場合に、時間経過に伴って前記抵抗値が変動する性質を有し、
    前記乱数処理方法は、
    前記複数のメモリセルのうち、前記少なくとも1つの抵抗値範囲にある第1のメモリセルの前記抵抗値に関する第1の抵抗値情報と、前記複数のメモリセルのうち、前記第1のメモリセルと異なる、前記少なくとも1つの抵抗値範囲にある第2のメモリセルの前記抵抗値に関する第2の抵抗値情報との組合せから第1の乱数データを生成する、乱数処理方法。
  18. さらに、前記複数のメモリセルのうち、前記少なくとも1つの抵抗値範囲にある第3のメモリセルの前記抵抗値に関する、第1の時刻に取得された第3の抵抗値情報と、第2の時刻に取得された第4の抵抗値情報との差分または大小関係に基づいて、第2の乱数データを生成する、請求項17に記載の乱数処理方法。
  19. さらに、前記第1の乱数データと前記第2の乱数データとを用いて所定の演算処理を行って第3の乱数データを生成する、請求項18に記載の乱数処理方法。
JP2016083726A 2015-06-18 2016-04-19 乱数処理装置、集積回路カード、および乱数処理方法 Active JP6587188B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2015123178 2015-06-18
JP2015123178 2015-06-18

Publications (2)

Publication Number Publication Date
JP2017010530A true JP2017010530A (ja) 2017-01-12
JP6587188B2 JP6587188B2 (ja) 2019-10-09

Family

ID=57713588

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016083726A Active JP6587188B2 (ja) 2015-06-18 2016-04-19 乱数処理装置、集積回路カード、および乱数処理方法

Country Status (3)

Country Link
US (1) US9823899B2 (ja)
JP (1) JP6587188B2 (ja)
CN (1) CN106257860B (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019121403A (ja) * 2018-01-10 2019-07-22 イーメモリー テクノロジー インコーポレイテッド ランダムコード発生装置
CN110211617A (zh) * 2019-05-17 2019-09-06 中国科学院计算技术研究所 一种哈希硬件处理装置及方法
JP2020516071A (ja) * 2017-03-30 2020-05-28 シリコン ストーリッジ テクノロージー インコーポレイテッドSilicon Storage Technology, Inc. 不揮発性メモリセルアレイエントロピに基づいて乱数を生成するためのシステム及び方法
CN111933197A (zh) * 2020-07-09 2020-11-13 中国科学院微电子研究所 一种对检测到的信号进行处理的方法及电路
JP2021010108A (ja) * 2019-07-01 2021-01-28 国立研究開発法人産業技術総合研究所 半導体デバイスのセキュリティ機能の検査装置
CN112507398A (zh) * 2019-09-16 2021-03-16 华邦电子股份有限公司 物理不可复制函数代码生成装置及其方法
KR102246513B1 (ko) * 2020-02-11 2021-04-30 이화여자대학교 산학협력단 물리적 복제 방지 기능을 가진 난수 발생 장치

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101744388B1 (ko) * 2014-04-09 2017-06-09 (주) 아이씨티케이 인증 장치 및 방법
US10318431B2 (en) * 2015-09-17 2019-06-11 Hewlett Packard Enterprise Development Lp Obscuration of a cache signal
US10078494B2 (en) * 2015-09-25 2018-09-18 Arizona Board Of Regents On Behalf Of Arizona State University Secure true random number generation using 1.5-T transistor flash memory
US9747982B1 (en) * 2016-02-22 2017-08-29 Arm Ltd. Device and method for generating random numbers
EP3264311B1 (en) * 2016-06-28 2021-01-13 Eshard A protection method and device against a side-channel analysis
JP6393375B2 (ja) * 2016-07-15 2018-09-19 渡辺 浩志 電子装置のネットワーク、電子装置及びその検査工程
US10318748B2 (en) * 2016-09-30 2019-06-11 Intel Corporation Techniques to protect fuses against non-destructive attacks
US9864006B1 (en) * 2016-11-30 2018-01-09 International Business Machines Corporation Generating a unique die identifier for an electronic chip
KR20180067756A (ko) * 2016-12-12 2018-06-21 에스케이하이닉스 주식회사 제어 장치, 그 제어 장치를 포함하는 반도체 시스템 및 그 반도체 시스템의 구동 방법
JP6882666B2 (ja) * 2017-03-07 2021-06-02 富士通株式会社 鍵生成装置および鍵生成方法
US10554241B2 (en) * 2017-03-08 2020-02-04 Robert Bosch Gmbh Method to mitigate transients based attacks on key agreement schemes over controller area network
US11522725B2 (en) * 2017-03-29 2022-12-06 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
DE102017205818A1 (de) * 2017-04-05 2018-10-11 Robert Bosch Gmbh Einstellbare physikalische unklonbare Funktion
JP6751057B2 (ja) * 2017-07-04 2020-09-02 日立オートモティブシステムズ株式会社 電子制御システム
CN109411001B (zh) * 2017-08-15 2021-07-06 华邦电子股份有限公司 快闪存储器存储装置及其读取方法
US10649735B2 (en) * 2017-09-12 2020-05-12 Ememory Technology Inc. Security system with entropy bits
US11005669B2 (en) * 2017-11-14 2021-05-11 Taiwan Semiconductor Manufacturing Co., Ltd. PUF generators based on SRAM bit cells
CN108510109A (zh) * 2018-03-13 2018-09-07 广州地理研究所 一种修正逾渗模型预测单中心城市用地规模的方法
US10921393B2 (en) * 2018-06-01 2021-02-16 Lexmark International, Inc. Magnetometer chip sensor array for reading a magnetic PUF, including a magnetic PUF film or tape, and systems incorporating the reader
CN108768619B (zh) * 2018-06-08 2021-07-06 中国电子科技集团公司第五十八研究所 一种基于环形振荡器的强puf电路的工作方法
CN109412600A (zh) * 2018-09-03 2019-03-01 何祥果 一种基于磁性特征的标识号编码方法
KR102644274B1 (ko) 2018-11-22 2024-03-06 삼성전자주식회사 메모리 컨트롤러, 이를 포함하는 메모리 시스템, 및 메모리 컨트롤러의 동작 방법
CN111314058B (zh) * 2018-12-11 2023-04-07 华邦电子股份有限公司 物理不可复制功能码产生方法及其提供装置
CN109672524B (zh) * 2018-12-12 2021-08-20 东南大学 基于粗粒度可重构架构的sm3算法轮迭代系统及迭代方法
US11023209B2 (en) * 2019-01-25 2021-06-01 International Business Machines Corporation On-chip hardware random number generator
US11294640B2 (en) * 2019-03-13 2022-04-05 Ememory Technology Inc. Random number generator
US10886417B2 (en) * 2019-03-29 2021-01-05 Intel Corporation Device, system, and method to change a consistency of behavior by a cell circuit
KR102666992B1 (ko) * 2019-07-31 2024-05-20 에스케이하이닉스 주식회사 메모리 소자
CN112398894B (zh) * 2019-08-19 2022-05-24 广州汽车集团股份有限公司 车用的安全验证方法及装置
KR20210024311A (ko) * 2019-08-21 2021-03-05 에스케이하이닉스 주식회사 반도체 메모리 장치, 이를 포함하는 반도체 메모리 시스템, 및 반도체 메모리 시스템의 구동방법
MX2022002749A (es) 2019-09-06 2022-03-25 Lexmark Int Inc Una matriz de sensores para leer una funcion fisica inclonable (puf) magnetica.
CA3149723A1 (en) 2019-09-06 2021-03-25 James Howard ELLIS Jr. A sensor array for reading a magnetic puf
WO2021046351A2 (en) 2019-09-06 2021-03-11 Lexmark International, Inc. A sensor array for reading a magnetic puf
CN111310241B (zh) * 2020-01-19 2022-03-25 温州大学瓯江学院 一种防御侵入式攻击的芯片指纹提取电路
US11743058B2 (en) * 2020-03-05 2023-08-29 International Business Machines Corporation NVDIMM security with physically unclonable functions
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
US20240078087A1 (en) * 2021-01-22 2024-03-07 National University Of Singapore Method and apparatus for unified dynamic and/or multibit static entropy generation inside embedded memory
CN113131939B (zh) * 2021-04-22 2022-05-17 中国人民解放军国防科技大学 电流读出电路及忆阻器阵列列电流读出电路
KR102467915B1 (ko) 2021-05-17 2022-11-17 한국전자통신연구원 저항 변화 메모리 기반 가우시안 추출 장치 및 방법
KR102558145B1 (ko) * 2021-05-20 2023-07-25 한국전자통신연구원 플래시 메모리를 이용한 가우시안 오류 데이터 생성 방법 및 이를 이용한 장치
US11670390B2 (en) * 2021-09-28 2023-06-06 Texas Instruments Incorporated Re-programmable integrated circuit architecture and method of manufacture
US11978513B2 (en) * 2022-02-24 2024-05-07 Micron Technology, Inc. Generating patterns for memory threshold voltage difference

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008146526A (ja) * 2006-12-13 2008-06-26 Le Tekku:Kk 物理乱数生成装置及び物理乱数生成回路
WO2013121792A1 (ja) * 2012-02-17 2013-08-22 パナソニック株式会社 不揮発性記憶素子のデータ読み出し方法及び不揮発性記憶装置
JP2014522180A (ja) * 2011-08-03 2014-08-28 アイシーティーケー カンパニー リミテッド 識別キー漏れを防止するicチップ及びこの認証方法
JP2014531669A (ja) * 2011-09-20 2014-11-27 クアルコム,インコーポレイテッド 乱数生成器のための磁気抵抗素子を伴うエントロピー源

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0102840D0 (en) 2001-02-05 2001-03-21 Cambridge Silicon Radio Ltd Generating random data
US6504750B1 (en) * 2001-08-27 2003-01-07 Micron Technology, Inc. Resistive memory element sensing using averaging
KR101059005B1 (ko) 2006-04-13 2011-08-23 엔엑스피 비 브이 반도체 장치, 그 식별자 생성 방법 및 그 식별 방법
JP5136416B2 (ja) * 2006-07-25 2013-02-06 日本電気株式会社 擬似乱数生成装置、ストリーム暗号処理装置及びプログラム
CN101636840B (zh) * 2006-11-17 2011-05-25 松下电器产业株式会社 非易失性存储元件、非易失性存储器件、非易失性半导体器件以及非易失性存储元件的制造方法
US8566377B2 (en) 2008-05-23 2013-10-22 Agere Systems Llc Secure random number generator
CN101655780B (zh) * 2008-08-18 2011-04-20 中国科学院物理研究所 真随机数源及生成真随机数的方法
US8468186B2 (en) 2009-08-05 2013-06-18 Verayo, Inc. Combination of values from a pseudo-random source
JP2011113136A (ja) * 2009-11-24 2011-06-09 Sony Corp 乱数発生装置、乱数発生方法及びセキュリティチップ
US8593853B2 (en) 2010-03-30 2013-11-26 Panasonic Corporation Nonvolatile storage device and method for writing into the same
JP5544611B2 (ja) 2010-07-28 2014-07-09 学校法人立命館 耐タンパ性メモリ集積回路およびそれを利用した暗号回路
JP5474705B2 (ja) 2010-08-23 2014-04-16 ルネサスエレクトロニクス株式会社 半導体装置
TW201212541A (en) * 2010-09-02 2012-03-16 Richtek Technology Corp Frequency jitter circuit and control method thereof
EP2625640B1 (en) 2010-10-04 2018-08-01 Intrinsic ID B.V. Physical unclonable function with improved start-up behaviour
KR102083271B1 (ko) * 2012-07-31 2020-03-02 삼성전자주식회사 플래시 메모리의 물리적 특성을 이용하여 난수를 생성하는 플래시 메모리 시스템 및 그것의 난수 생성 방법
CN103593160B (zh) * 2013-11-04 2017-10-13 上海新储集成电路有限公司 一种基于相变存储单元的随机数字发生器
JP6380804B2 (ja) * 2014-04-16 2018-08-29 パナソニックIpマネジメント株式会社 乱数処理装置および乱数処理方法
US9548113B2 (en) * 2014-11-21 2017-01-17 Panasonic Intellectual Property Management Co., Ltd. Tamper-resistant non-volatile memory device
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008146526A (ja) * 2006-12-13 2008-06-26 Le Tekku:Kk 物理乱数生成装置及び物理乱数生成回路
JP2014522180A (ja) * 2011-08-03 2014-08-28 アイシーティーケー カンパニー リミテッド 識別キー漏れを防止するicチップ及びこの認証方法
JP2014531669A (ja) * 2011-09-20 2014-11-27 クアルコム,インコーポレイテッド 乱数生成器のための磁気抵抗素子を伴うエントロピー源
WO2013121792A1 (ja) * 2012-02-17 2013-08-22 パナソニック株式会社 不揮発性記憶素子のデータ読み出し方法及び不揮発性記憶装置

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020516071A (ja) * 2017-03-30 2020-05-28 シリコン ストーリッジ テクノロージー インコーポレイテッドSilicon Storage Technology, Inc. 不揮発性メモリセルアレイエントロピに基づいて乱数を生成するためのシステム及び方法
JP2019121403A (ja) * 2018-01-10 2019-07-22 イーメモリー テクノロジー インコーポレイテッド ランダムコード発生装置
US11070383B2 (en) 2018-01-10 2021-07-20 Ememory Technology Inc. Random code generator
CN110211617A (zh) * 2019-05-17 2019-09-06 中国科学院计算技术研究所 一种哈希硬件处理装置及方法
CN110211617B (zh) * 2019-05-17 2020-12-29 中国科学院计算技术研究所 一种哈希硬件处理装置及方法
JP2021010108A (ja) * 2019-07-01 2021-01-28 国立研究開発法人産業技術総合研究所 半導体デバイスのセキュリティ機能の検査装置
JP7249633B2 (ja) 2019-07-01 2023-03-31 国立研究開発法人産業技術総合研究所 半導体デバイスのセキュリティ機能の検査装置
CN112507398A (zh) * 2019-09-16 2021-03-16 华邦电子股份有限公司 物理不可复制函数代码生成装置及其方法
CN112507398B (zh) * 2019-09-16 2023-10-13 华邦电子股份有限公司 物理不可复制函数代码生成装置及其方法
KR102246513B1 (ko) * 2020-02-11 2021-04-30 이화여자대학교 산학협력단 물리적 복제 방지 기능을 가진 난수 발생 장치
CN111933197A (zh) * 2020-07-09 2020-11-13 中国科学院微电子研究所 一种对检测到的信号进行处理的方法及电路
CN111933197B (zh) * 2020-07-09 2023-08-11 中国科学院微电子研究所 一种对检测到的信号进行处理的方法及电路

Also Published As

Publication number Publication date
JP6587188B2 (ja) 2019-10-09
CN106257860B (zh) 2021-02-09
US9823899B2 (en) 2017-11-21
CN106257860A (zh) 2016-12-28
US20170242660A1 (en) 2017-08-24

Similar Documents

Publication Publication Date Title
JP6587188B2 (ja) 乱数処理装置、集積回路カード、および乱数処理方法
JP6617924B2 (ja) 耐タンパ性を有する不揮発性メモリ装置および集積回路カード、不揮発性メモリ装置の認証方法、個体識別情報生成方法
JP6474056B2 (ja) 耐タンパ性を有する不揮発性メモリ装置、集積回路カード、不揮発性メモリ装置の認証方法、不揮発性メモリ装置を用いた暗号化方法および復号化方法
JP6532024B2 (ja) 耐タンパ性を有する不揮発性メモリ装置、および集積回路カード
JP6508478B2 (ja) 耐タンパ性を有する不揮発性メモリ装置、および集積回路カード
US9892783B2 (en) Non-volatile memory device including memory cells having variable resistance values
US10574639B2 (en) Authentication apparatus utilizing physical characteristic
JP6380804B2 (ja) 乱数処理装置および乱数処理方法
JP5689572B2 (ja) 認証システム、不揮発性記録メディア、ホストコンピュータ、および認証方法
JP6674616B2 (ja) 半導体装置、半導体装置の読み出し方法、及び半導体装置を搭載したicカード
JP6817888B2 (ja) 不揮発性メモリ装置
JP6793044B2 (ja) 不揮発性メモリ装置
JP2020102827A (ja) 不揮発性メモリ装置およびチャレンジ・レスポンス方法
US11404119B1 (en) Non-volatile memory device and challenge response method
CN111630598A (zh) 非易失性存储装置以及其写入方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181031

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190402

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190329

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190529

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190611

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: 20190820

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190830

R151 Written notification of patent or utility model registration

Ref document number: 6587188

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