JP5855243B2 - メモリデバイスおよびメモリシステム - Google Patents
メモリデバイスおよびメモリシステム Download PDFInfo
- Publication number
- JP5855243B2 JP5855243B2 JP2014516615A JP2014516615A JP5855243B2 JP 5855243 B2 JP5855243 B2 JP 5855243B2 JP 2014516615 A JP2014516615 A JP 2014516615A JP 2014516615 A JP2014516615 A JP 2014516615A JP 5855243 B2 JP5855243 B2 JP 5855243B2
- Authority
- JP
- Japan
- Prior art keywords
- information
- data
- key
- memory
- host device
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0877—Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3234—Cryptographic 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 involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2129—Authenticate client device independently of the user
Description
本明細書に記載の実施の形態は、メモリデバイスおよびメモリシステムに関する。
一般に、情報セキュリティを要する分野において、自己の正当性を証明する手段として互いに共有した秘密情報と暗号とを用いた認証技術が採用されている。
例えば、電子決済に用いるICカード(Smart Card)の中にはICチップが含まれ、そのICチップには当該ICカードを識別するためのID及び秘密情報が保持されている。更にICカードは、これらID及び秘密情報に基づく認証を行うための暗号処理機能を有している。
別の例では、コンテンツの著作権保護技術において、SDカード(登録商標)の正当性を証明するためのコンテンツ保護技術(Content Protection for Recordable Media(CPRM))が知られている。
Content Protection for Recordable Media (CPRM), http://www.4centity.com/
Media Identifier Management Technology (MIMT), http://www.4ecntity.com/
D. Naor, M. Naor and J. Lotspiech, "Revocation and Tracing Schemes for Stateless Receivers," Proc. CRYPTO 2001, LNCS 2139, Springer-Verlag, pp. 41-62, 2001
以下に記載の実施の形態は、秘密情報の不正利用を防止することが可能なメモリデバイスおよびメモリシステムを提供する。
以下に説明する実施の形態に係るメモリデバイスは、第1〜第3の記憶領域を備える。第1の記憶領域は、少なくとも前記メモリデバイスの出荷後において、メモリデバイス外部からの読出し及び書き込みが禁止される領域である。第2の記憶領域は、メモリデバイス外部からの読出しは許可されるが、書き込みが禁止される領域である。第3の記憶領域は、メモリデバイス外部からの読出し及び書き込みが許可される領域である。第1の記憶領域は、第1鍵情報(NKey)と、識別情報(SecretID)を格納するための領域である。第2の記憶領域は、第2鍵情報(Fkey)を用いて識別情報を暗号化した暗号化識別情報(E−SecretID)を格納するための領域である。第3の記憶領域は、第2鍵情報を暗号化した暗号化第2鍵情報(FKB)を格納するための領域である。ホストデバイスとの認証のために、メモリデバイスは、次のような動作が可能なように構成されている。
・ホストデバイスに対し、暗号化第2情報(FKB)を出力する。
・ホストデバイスに対し、暗号化識別情報(E−SecretID)を出力する。
・ホストデバイスから受領した情報(HC)と、第1鍵情報を用いて、第3鍵情報(HKey)を生成する
・ホストデバイスから受領した乱数(RN)と、第3鍵情報を用いて、セッション鍵(SKey)を生成する
・セッション鍵を用いて、識別情報に一方向性変換処理を行い、認証情報(Oneway−ID)を生成する
・ホストデバイスに対し、認証情報(Oneway−ID)を出力する
・ホストデバイスに対し、暗号化第2情報(FKB)を出力する。
・ホストデバイスに対し、暗号化識別情報(E−SecretID)を出力する。
・ホストデバイスから受領した情報(HC)と、第1鍵情報を用いて、第3鍵情報(HKey)を生成する
・ホストデバイスから受領した乱数(RN)と、第3鍵情報を用いて、セッション鍵(SKey)を生成する
・セッション鍵を用いて、識別情報に一方向性変換処理を行い、認証情報(Oneway−ID)を生成する
・ホストデバイスに対し、認証情報(Oneway−ID)を出力する
また、以下に記載の実施の形態に係るホストデバイスは、識別鍵情報(IDKey)と第1鍵情報(HKey)とが割り当てられたホストデバイスである。このホストデバイスは、被認証装置から読み出す鍵管理情報(FKB)を用いて、識別鍵情報(IDKey)から復号可能な識別鍵情報(FKey)を生成する第1データ生成部と、生成される識別鍵情報(FKey)を用いて、被認証装置から読み出す暗号化秘密識別情報(E-SecretID)を復号し、秘密識別情報(SecretID)を生成する復号部を備える。またこのホストデバイスは、乱数を(RN)発生させる乱数発生器と、前記第1鍵情報(HKey)と前記乱数とを用いて第1のセッション鍵(SKey)を生成する第2データ生成部と、生成した前記第1のセッション鍵(SKey)を用いて、前記秘密識別情報(SecretID)に一方向性変換処理を行い、第1の一方向性変換データ(Oneway-ID)を生成する一方向性変換部と、前記第1の一方向性変換データ(Oneway-ID)と前記被認証装置から受信する第2の一方向性変換データ(Oneway-ID)とが一致するか否かを判定する検証部とを備える。前記検証部による判定の結果が肯定的である場合に、前記秘密識別情報(SecretID)及び秘密情報(ASSV)に一方向性変換処理を施し、一方向性変換識別情報(EMID)を生成する。
以下に記載の実施の形態に係るセキュリティシステムは、コントローラ製造者と、鍵発行者と、メディア製造者とを含むセキュリティシステムである。コントローラ製造者は、コントローラの製造時において該コントローラ内部にコントローラ鍵Kc及びコントローラユニークID(IDcu)とを書き込むとともに、前記コントローラ鍵Kcを前記鍵発行者に送る。鍵発行者は、メディアデバイス鍵Kmd_iとをメディアデバイス鍵証明書Certmediaとを生成するとともに、前記コントローラ鍵Kcを用いて前記メディアデバイス鍵Kmd_iを暗号化して暗号化メディアデバイス鍵Enc(Kc、Kmd_i)を生成する。メディア製造者は、前記鍵発行者から受けた暗号化メディアデバイス鍵Enc(Kc、Kmd_i)を前記コントローラ内の前記コントローラ鍵Kcで復号するとともに、該復号によって得られた前記メディアデバイス鍵Kmd_iを、前記コントローラ内のコントローラユニークID(IDcu)から生成されたコントローラユニーク鍵Kcuにより暗号化してメモリに格納する。
以下に記載の実施の形態に係るホストデバイスによるメモリデバイスの第1の認証方法は、
メモリデバイスは、メモリデバイス製造者により製造され、
前記メモリデバイスをコントロールするコントローラは、コントローラ製造者により製造され、
前記メモリデバイスと前記コントローラを含むメモリカードは、メモリカード製造者により製造され、
前記ホストデバイスは、ホストデバイス製造者により製造され、
前記メモリデバイスは、
第1のデータが書き込まれ、前記メモリデバイスの出荷後に読み出し及び書き込みが禁止された第1のメモリエリアと、
前記メモリデバイスの出荷前に第2のデータとキーインデックス情報が前記メモリデバイス製造者により書き込まれ、前記メモリデバイスの出荷後に前記コントローラによる読み出し可能であるが書き込みが禁止された第2メモリエリアと、
前記メモリカードの出荷前に、前記キーインデックス情報と合致するインデックスを其々有した複数のキーが其々暗号化されてセットとなった第3のデータが前記メモリカード製造者により書き込まれ、前記メモリデバイスの出荷後に前記コントローラによる読み出し及び書き込みが可能な第3メモリエリアと、
前記メモリデバイス内の前記第1のデータを処理可能な回路と、を有し、
前記認証手続きは、
前記第3のメモリエリアから前記第3のデータを読み出し、
前記ホストデバイスに前記第3のデータを送り、
前記第2のメモリエリアから前記第2のデータを読み出し、
前記ホストデバイスに前記第2のデータを送り、
前記第2のメモリエリアから前記キーインデックス情報を読み出し、
前記ホストデバイスに前記キーインデックス情報を送り、
前記第1のメモリエリアから前記第1のデータを読み出し、
前記メモリデバイス内の前記回路を用いて前記第1のデータを処理し、
前記ホストデバイスに結果情報を送り、
その後前記ホストデバイスから受けた情報を用いて前記メモリデバイスを認証する
ことを特徴とする。
メモリデバイスは、メモリデバイス製造者により製造され、
前記メモリデバイスをコントロールするコントローラは、コントローラ製造者により製造され、
前記メモリデバイスと前記コントローラを含むメモリカードは、メモリカード製造者により製造され、
前記ホストデバイスは、ホストデバイス製造者により製造され、
前記メモリデバイスは、
第1のデータが書き込まれ、前記メモリデバイスの出荷後に読み出し及び書き込みが禁止された第1のメモリエリアと、
前記メモリデバイスの出荷前に第2のデータとキーインデックス情報が前記メモリデバイス製造者により書き込まれ、前記メモリデバイスの出荷後に前記コントローラによる読み出し可能であるが書き込みが禁止された第2メモリエリアと、
前記メモリカードの出荷前に、前記キーインデックス情報と合致するインデックスを其々有した複数のキーが其々暗号化されてセットとなった第3のデータが前記メモリカード製造者により書き込まれ、前記メモリデバイスの出荷後に前記コントローラによる読み出し及び書き込みが可能な第3メモリエリアと、
前記メモリデバイス内の前記第1のデータを処理可能な回路と、を有し、
前記認証手続きは、
前記第3のメモリエリアから前記第3のデータを読み出し、
前記ホストデバイスに前記第3のデータを送り、
前記第2のメモリエリアから前記第2のデータを読み出し、
前記ホストデバイスに前記第2のデータを送り、
前記第2のメモリエリアから前記キーインデックス情報を読み出し、
前記ホストデバイスに前記キーインデックス情報を送り、
前記第1のメモリエリアから前記第1のデータを読み出し、
前記メモリデバイス内の前記回路を用いて前記第1のデータを処理し、
前記ホストデバイスに結果情報を送り、
その後前記ホストデバイスから受けた情報を用いて前記メモリデバイスを認証する
ことを特徴とする。
上記認証方法によれば、Authenticationのために、カード製造業者が書き込んだ情報(第3のエリアに記録)と、メモリデバイス製造業者が書き込んだ情報(第2のエリアに記録)の双方を用いるから、両者が正しくないと認証できず、システム安全性が高まる。また、第3のエリアにカード製造業者により記録された情報セットのインデックス情報は、メモリデバイス業者が第2のエリアに書き込んだ情報であるから、この点についても、両者が正しくないと認証できない。また、メモリデバイス製造業者が書き込んだ上記データは、Read−onlyなので、カード製造業者が改ざんできない。さらに、コントローラから読むことも書くことも出来ない第1のエリアを設け、かつ、メモリデバイスの内部に処理回路を設け、第1のエリアに記録されたデータは、回路による処理後の結果しか、メモリデバイス外部に出力されないように構成されている。このため、メモリデバイス製造業者以外には分からないデータを用いて、認証することが可能になる。
以下に記載の実施の形態に係るホストデバイスによるメモリデバイスの第2の認証方法は、上記第1の認証方法における前記第2のメモリエリアから前記第2のデータを読み出す処理において、
前記ホストデバイスより、スペシャルコマンドを送り、
前記スペシャルコマンドを、前記メモリカードと前記ホストデバイスとの間に位置したインターフェースを介して受け、
前記コントローラにより、前記メモリカードと前記ホストデバイスとの間に位置した他のインターフェースを介した前記スペシャルコマンドの受信に伴い、前記第2のデータを読む
処理を含むことを特徴とする。
前記ホストデバイスより、スペシャルコマンドを送り、
前記スペシャルコマンドを、前記メモリカードと前記ホストデバイスとの間に位置したインターフェースを介して受け、
前記コントローラにより、前記メモリカードと前記ホストデバイスとの間に位置した他のインターフェースを介した前記スペシャルコマンドの受信に伴い、前記第2のデータを読む
処理を含むことを特徴とする。
以下に記載の実施の形態に係るホストデバイスによるメモリデバイスの第3の認証方法は、上記第1及び第2の認証方法における前記第2のメモリエリアから前記第2のデータを読み出す処理において、何れか少なくとも一方に記載の前記メモリカードは、メモリ機能を有する装置、部品、モジュール、ユニットに置き換えられる。
以下に記載の実施の形態に係るホストデバイスによるメモリデバイスの第4の認証方法は、
第1データが書き込まれアクセス処理が制限される第1エリアと、第2データとインデックス情報が其々書き込まれた後で一部のアクセス処理が制限された第2エリアと、前記インデックス情報と合致する情報を其々有した複数のキーが暗号化されて書き込まれた第3エリアと、を有した記憶部と、
前記記憶部の製造元と異なる製造者により製造され、前記記憶部を制御する制御部と、
前記モジュールと電気的に接続可能な装置と、
を含むシステムにおいて、
前記装置と前記記憶部とは、
前記第2データと前記第3データと前記インデックス情報を読み出して、前記装置に送り、
前記第1データを読み出し、該第1データを用いて得た情報を、前記装置に送り、その後、前記装置から受けた情報を用いて前記記憶部を認証する処理を行うことを特徴とする。
第1データが書き込まれアクセス処理が制限される第1エリアと、第2データとインデックス情報が其々書き込まれた後で一部のアクセス処理が制限された第2エリアと、前記インデックス情報と合致する情報を其々有した複数のキーが暗号化されて書き込まれた第3エリアと、を有した記憶部と、
前記記憶部の製造元と異なる製造者により製造され、前記記憶部を制御する制御部と、
前記モジュールと電気的に接続可能な装置と、
を含むシステムにおいて、
前記装置と前記記憶部とは、
前記第2データと前記第3データと前記インデックス情報を読み出して、前記装置に送り、
前記第1データを読み出し、該第1データを用いて得た情報を、前記装置に送り、その後、前記装置から受けた情報を用いて前記記憶部を認証する処理を行うことを特徴とする。
以下に記載の装置は、識別情報と第1情報とを有した装置であって、
他の装置から読み出す管理情報を用いて、前記識別情報から復号可能な識別情報を生成する第1生成部と、
生成される前記識別情報を用いて、前記他の装置から読み出す暗号化秘密識別情報復号し、秘密識別情報を生成する復号部と、
前記第1情報と乱数とを用いて第1セッション情報を生成する第2生成部と、
生成した前記第1セッション情報を用いて、前記秘密識別情報に変換処理を行い、第1変換情報を生成する変換部と、
前記第1変換情報と前記他の装置から受けた第2変換情報とが一致する場合に、一方向性変換識別情報(EMID)を生成する
ことを特徴とする。
他の装置から読み出す管理情報を用いて、前記識別情報から復号可能な識別情報を生成する第1生成部と、
生成される前記識別情報を用いて、前記他の装置から読み出す暗号化秘密識別情報復号し、秘密識別情報を生成する復号部と、
前記第1情報と乱数とを用いて第1セッション情報を生成する第2生成部と、
生成した前記第1セッション情報を用いて、前記秘密識別情報に変換処理を行い、第1変換情報を生成する変換部と、
前記第1変換情報と前記他の装置から受けた第2変換情報とが一致する場合に、一方向性変換識別情報(EMID)を生成する
ことを特徴とする。
以下に記載のシステムは、
第1業者は、第1部品内に第1部品情報及び第1部品IDを書き込み、前記第1部品情報を第2業者に送るとともに、前記第1部品を第3業者に送り、
前記第2業者は、第2部品情報および第2部品証明情報を生成するとともに、前記第1部品情報を用いて前記第2部品情報を暗号化して暗号化第2部品情報を生成し、
前記第3業者は、前記第2業者から受けた前記暗号化第2部品情報を前記第1部品内の前記第1部品情報で復号するとともに、該復号によって得られた前記前記第2部品情報を、前記第1部品内の前記第1部品IDから生成された情報により暗号化する
ことを特徴とする。
第1業者は、第1部品内に第1部品情報及び第1部品IDを書き込み、前記第1部品情報を第2業者に送るとともに、前記第1部品を第3業者に送り、
前記第2業者は、第2部品情報および第2部品証明情報を生成するとともに、前記第1部品情報を用いて前記第2部品情報を暗号化して暗号化第2部品情報を生成し、
前記第3業者は、前記第2業者から受けた前記暗号化第2部品情報を前記第1部品内の前記第1部品情報で復号するとともに、該復号によって得られた前記前記第2部品情報を、前記第1部品内の前記第1部品IDから生成された情報により暗号化する
ことを特徴とする。
[第1の実施の形態]
最初に、図1〜図3を参照して、第1の実施の形態を説明する。
<第1のコンテンツ保護技術>
図1を参照して、SDカードで用いられているCPRMなどに代表される、第1のコンテンツ保護技術について説明する。具体的には、コンテンツ保護のためのメディアID認証技術、及び当該技術を適用したカードの製造工程を説明する。
最初に、図1〜図3を参照して、第1の実施の形態を説明する。
<第1のコンテンツ保護技術>
図1を参照して、SDカードで用いられているCPRMなどに代表される、第1のコンテンツ保護技術について説明する。具体的には、コンテンツ保護のためのメディアID認証技術、及び当該技術を適用したカードの製造工程を説明する。
メモリカード1000は、NANDフラッシュメモリに代表されるメモリ100と、メモリ100を制御するためのコントローラ200とから構成される。メモリ100及びコントローラ200は同一の製造者によって製造される場合もあるし、それぞれ独立の製造者によって製造される場合もある。図1では、コントローラ製造業者Aがコントローラ200を製造し、メモリ製造業者Bがメモリ100を製造する場合を図示しているが、AとBが同一企業であってもよい。
メモリ100とコントローラ200とを一体に組み立ててカード形状にパッケージングすることでメモリカード1000が製造される。この組み立て製造を行う製造者をアセンブリ業者Cと呼ぶ。
また、ホスト装置2000は、ホスト装置製造業者Dにより製造される。ホスト装置製造業者Dは、鍵発行/管理センタ3000からホスト鍵情報(Ihk)を受領し、ホスト装置2000に格納させる。また、鍵発行/管理センタ3000は、アセンブリ業者Cにメディア鍵情報(Imk)を提供する。
また、ホスト装置2000は、ホスト装置製造業者Dにより製造される。ホスト装置製造業者Dは、鍵発行/管理センタ3000からホスト鍵情報(Ihk)を受領し、ホスト装置2000に格納させる。また、鍵発行/管理センタ3000は、アセンブリ業者Cにメディア鍵情報(Imk)を提供する。
ここで、第1のコンテンツ保護技術では、メモリ100はセキュリティ機能を有しておらず、コントローラ200のみがセキュリティ機能を有している。
また、第1のコンテンツ保護技術では、コントローラ200は固有情報を有しておらず、コンテンツ保護において重要な役割を持つメディアIDはアセンブリ業者Cによってメモリ100に割り当てられる。アセンブリ業者Cは、鍵発行/管理センタ3000より受領したメディア鍵情報Imkと共に割り当てられたメディアID(IDm)をメモリ100の非ユーザ領域に記録する。
一方ホスト装置製造業者Dも同様に鍵発行/管理センタ3000からホスト鍵情報(Ihk)を受領し、製造時にホスト装置2000に割り当てる。
メディア鍵情報(Imk)やメディアID(IDm)はメモリカード1000とホスト装置2000が認証を行う際に利用され、両情報を元に確立されたセキュアチャネルを通じて改竄防止措置が講じられる。このセキュアチャネルを介して、メディアID(IDm)がメディア鍵情報(Imk)と共にメモリカード1000からホスト装置2000へと渡される。ホスト装置2000は、自身が保持するホスト鍵情報(Ihk)をメディアID(IDm)及びメディア鍵情報(Imk)と照合することによりメモリカード1000の認証を行う。
認証が完了すると、ホスト装置2000は受領したメディアID(IDm)を用いて、コンテンツ保護に利用される情報(例えばコンテンツ鍵)の暗号化を実行したり、コンテンツ鍵もしくはコンテンツ付随情報に対してメディアID(IDm)を用いたMAC(Message Authentication Code)などの暗号処理を実施したりすることでコンテンツデータとメディアID(IDm)の紐付け(media binding)を行う。これにより、コンテンツデータ及びコンテンツ鍵やコンテンツ付随情報を他のメディアに不正に複製したとしても、メディアID(IDm)との紐付けが合わないことで不正コピーを防止できる。
ここで、不正コピー防止が可能となっている理由はメディアID(IDm)の固有性である。仮にメディアID(IDm)がメモリカード1000毎に固有のものではなく、複数のメモリカード1000で同じメディアID(IDm)を共有していた場合、コンテンツ保護システムを破ることなく、コンテンツの不正コピーが可能となる。
近年では、メモリカードは数億枚規模で製造されており、また、アセンブリ業者の数が飛躍的に増えてきている。このため、メモリカード毎に異なるメディアID(IDm)を割り当てることを怠る業者も増えており、同じメディアID(IDm)を有する複数のメモリカードが市場に出回っている状況にある。
このような状況から、メディアID(IDm)の改竄を効果的に防止することができる方法を提案することが望まれている。図2を参照して、第1のコンテンツ保護技術との相違点も説明しつつ、第2のコンテンツ保護技術について説明する。
<第2のコンテンツ保護技術>
第1のコンテンツ保護技術では、アセンブリ業者Cがメモリカード1000にメディアID(IDm)を割り当てていたのに対し、第2のコンテンツ保護技術ではコントローラ製造業者A及びメモリ製造業者Bがコントローラ200又はメモリ100の製造時に固有情報(図2では、セキュアID(Secure ID)、鍵(key)及びパラメータ(Parameter))を割り当てる。
第1のコンテンツ保護技術では、アセンブリ業者Cがメモリカード1000にメディアID(IDm)を割り当てていたのに対し、第2のコンテンツ保護技術ではコントローラ製造業者A及びメモリ製造業者Bがコントローラ200又はメモリ100の製造時に固有情報(図2では、セキュアID(Secure ID)、鍵(key)及びパラメータ(Parameter))を割り当てる。
具体的に説明すると、コントローラ製造業者Aは、鍵発行/管理センタ3000から受領したコントローラ鍵情報(Ick)に従い固有情報を生成し、これらをコントローラ200に割り当てる。また、メモリ製造業者Bは、鍵発行/管理センタ3000から受領したメモリ鍵情報(Imemk)に従い固有情報を生成し、メモリ100に割り当てる。アセンブリ業者Cは、このようにして固有情報を割り当てられたコントローラ200及びメモリ100及び鍵発行/管理センタ3000から受領したメディア鍵情報(Imk)を組み合わせてメモリカード1000を組み立てる役割を有している。
ここで、メディア鍵情報(Imk)は暗号化された状態で付与されており、アセンブリ業者Cには秘密情報は開示されない。割り当てられた固有情報は、メディア鍵情報(Imk)と共にホスト装置2000との認証に用いられる。本例では、メディアID(IDm)は直接的にコントローラ200又はメモリ100に記録されておらず、コントローラ200又はメモリ100によって保持されている固有情報に基づいて導き出されるメディア識別情報である。
また、第2のコンテンツ保護技術では、メモリ100もセキュリティ機能を有し、メモリ製造業者Bはメモリ100の製造時にメモリ100に対し固有情報を割り当てる。コントローラ製造業者Aの数は、アセンブリ業者Cの数に比較して、技術的、マーケット的な観点から少なく、メモリ製造業者Bの数はコントローラ製造業者Aよりも更に少ない。
セキュリティ技術においては、メモリカード1000やホスト装置2000などデータを取り扱う装置の中のいずれかの構成要素に必ず信頼性の砦(Root of Trust)の役割を与える必要がある。ここで、信頼性の砦(Root of Trust)の役割を与えられた製造業者は信頼できる製造業者である必要がある。
本発明者は、製造業者の数(プレイヤーの数)が増えるほど、信頼できない製造業者の数が増加することに着目し、上記着想に至った。第2のコンテンツ保護技術(図2)によれば、アセンブリ業者CのみにメディアIDを付与させる第1のコンテンツ保護技術(図1)に比較し、システムの頑健性を大きく向上させることができる。
この第2のコンテンツ保護技術では、メディアID(IDm)の固有性の根拠となる固有情報が、メモリ100及びコントローラ200の両方に付与される。これにより、メモリ100又はコントローラ200のいずれか一方のセキュリティが破れた場合、もう一方のセキュリティが有効となっていることでシステムの頑健性を維持することが可能となる。また、いずれか一方の製造業者(A又はB)が不適切な固有情報の付与を行った場合にも、同様の効果が期待できる。
次に、第2のコンテンツ保護技術に係るメモリカード1000の構成例について図3を用いて説明する。前述の通り、メモリカード1000はメモリ100及びコントローラ200から構成される。
コントローラ200は、固有情報やその他秘密情報を記録するための秘匿領域(Hidden Area)201、セキュリティ機能を提供する認証回路202、メモリ100を制御するためのメモリ制御回路203、メモリインターフェース204、ホストインターフェース205を有する。
コントローラ200は、固有情報やその他秘密情報を記録するための秘匿領域(Hidden Area)201、セキュリティ機能を提供する認証回路202、メモリ100を制御するためのメモリ制御回路203、メモリインターフェース204、ホストインターフェース205を有する。
メモリ100は、記憶領域として、固有情報やその他秘密情報を記録するための秘匿領域101(Hidden Area)、固有情報や秘密情報に付随する管理情報を記録するためのロム領域102(ROM Area)、及び読み書き可能領域103(Read/Write Area)を有する。更にメモリ100は、セキュリティ機能を提供する認証回路107、及び記憶領域でのデータの読み出し/書き込み/消去を制御するためのメモリ周辺回路108を備えている。
読み書き可能領域103は、メモリ100からみると通常のメモリ領域としてコントローラ200に対して機能を提供する領域である。しかし、コントローラ200は、更にこの読み書き可能領域103を複数の領域に分類し、ホスト装置2000からのメモリ100に対するアクセスを制御する。すなわち、読み書き可能領域103は、ホスト装置2000のために、コントローラ200のみがアクセス可能でありホスト装置2000はアクセス不可能なシステム情報記録領域104(System Area)、ホスト装置2000とコントローラ200の認証が成功した場合にホスト装置2000がアクセス可能な秘密記録領域105(Protected Area)、及び認証なしにホスト装置2000がアクセス可能な通常記録領域106(Normal Area)に更に分類される。
通常記録領域106は、ユーザデータなどの格納するための通常のデータ記録領域として利用される。秘密記録領域105は、コンテンツ鍵、メディア鍵などの秘密情報を記録するために利用される。システム情報記録領域104は、前述の固有情報、秘密情報、それらに付随する管理情報などを記録するために利用される。
以下に示す実施の形態においては、コントローラ200及びメモリ100に対してそれぞれ与えられる固有情報等の利用方法について、最初にコントローラ200が保持する固有情報の観点から説明を行い、次にメモリ100が保持する情報の固有観点から説明を行う。
[第2の実施の形態]
<メモリカードの製造工程>
次に、図4を参照して、第2の実施の形態に係るメモリカード1000の製造工程、及びメディアデバイス鍵Kmd_i及びメディアデバイス鍵証明書Certmediaを書き込む方法を説明する。図4において、第1の実施の形態(図2)と同様の構成については同一の符号を付している。この実施の形態では、固有情報としてのコントローラ鍵KcとコントローラユニークID(IDcu)とがコントローラ200にのみ与えられる例を示している。なお、これらコントローラ鍵KcとコントローラユニークID(IDcu)は、コントローラ製造業者Aによりコントローラ200内の秘匿領域(図4では図示せず)に記録されるが、第1の実施形態で説明した通り、後述の第4の実施形態などに従い、メモリ製造業者Bがメモリ100に固有情報を格納させる例と組み合わせることも可能である。コントローラ鍵KcとコントローラユニークID(IDcu)は、例えばコントローラ内部に設けられたヒューズ回路などに格納されるが、格納方法はこれに限られるものではない。
<メモリカードの製造工程>
次に、図4を参照して、第2の実施の形態に係るメモリカード1000の製造工程、及びメディアデバイス鍵Kmd_i及びメディアデバイス鍵証明書Certmediaを書き込む方法を説明する。図4において、第1の実施の形態(図2)と同様の構成については同一の符号を付している。この実施の形態では、固有情報としてのコントローラ鍵KcとコントローラユニークID(IDcu)とがコントローラ200にのみ与えられる例を示している。なお、これらコントローラ鍵KcとコントローラユニークID(IDcu)は、コントローラ製造業者Aによりコントローラ200内の秘匿領域(図4では図示せず)に記録されるが、第1の実施形態で説明した通り、後述の第4の実施形態などに従い、メモリ製造業者Bがメモリ100に固有情報を格納させる例と組み合わせることも可能である。コントローラ鍵KcとコントローラユニークID(IDcu)は、例えばコントローラ内部に設けられたヒューズ回路などに格納されるが、格納方法はこれに限られるものではない。
また、コントローラ鍵KcとコントローラユニークID(IDcu)の固有性は異なっていてもよい。例えば、コントローラ鍵Kcはコントローラ200毎に固有の値、コントローラ200のロット毎に固有の値、コントローラ200の製造者毎に固有の値であってもよい。加えて、コントローラユニークID(IDcu)はコントローラ200毎に固有の値、コントローラ200のロット毎に固有の値、コントローラ200の製造者毎に固有の値であってもよい。固有性の粒度は必要に応じて選択すればよいが、コントローラ鍵KcもしくはコントローラユニークID(IDcu)の少なくともいずれか一方はコントローラ200毎に固有な値であることが望ましい。
メモリカード1000に書き込むメディアデバイス鍵Kmd_i及びメディアデバイス鍵証明書Certmedia(これらは、図2のメディア鍵情報に相当する情報の一部を構成する情報である。)は鍵発行/管理センタ3000からアセンブリ業者Cに提供される。アセンブリ業者Cは、固有情報としてのコントローラ鍵Kc及びコントローラユニークID(IDcu)を与えられたコントローラ200とメモリ100とを組み合わせてメモリカード1000を組み立てた後、このメモリカード1000内のメモリ100にメディアデバイス鍵Kmd_iを暗号化してメディアデバイス鍵証明書Certmediaと共に書き込んで、メモリカード1000を製造する。このとき、コントローラ200に割り当てられたコントローラ鍵Kc及びコントローラユニークID(IDcu)がメディアデバイス鍵Kmd_iの書き込みのために使用される。
メディアデバイス鍵Kmd_i及びメディアデバイス鍵証明書Certmediaは、コントローラ200を介してメモリカード1000を構成しているメモリ100のシステム情報記録領域104に書き込まれる。
なお、図4では省略しているが、メモリカード1000は、所定の通信機能を有する機器(パソコン、携帯電話端末、公衆端末など)に接続される。このような通信機能を有する機器を介して、鍵発行/管理センタ3000から発行されたデータがメモリカード1000に書き込まれる。
なお、図4では省略しているが、メモリカード1000は、所定の通信機能を有する機器(パソコン、携帯電話端末、公衆端末など)に接続される。このような通信機能を有する機器を介して、鍵発行/管理センタ3000から発行されたデータがメモリカード1000に書き込まれる。
ここで、コントローラ鍵Kcは、鍵発行/管理センタ3000が割り当てコントローラ製造業者Aにより付与される、もしくは、コントローラ製造業者Aが割り当て、鍵発行/管理センタ3000に対し通知される。コントローラユニークID(IDcu)はコントローラ製造業者Aにより割り当てられる。コントローラユニークID(IDcu)は必要に応じて鍵発行/管理センタ3000に通知される。もしくは、コントローラユニークID(IDcu)は鍵発行/管理センタ3000が割り当てコントローラ製造業者Aに付与される。なお、コントローラ鍵Kcは、PGP暗号などを用いて、コントローラ製造業者Aと鍵発行/管理センタ3000間で受送信することができる。
鍵発行/管理センタ3000は、メディアデバイス鍵Kmd_iやメディアデバイス鍵証明書Certmediaを生成する鍵生成部3002と、生成したメディアデバイス鍵Kmd_i及びメディアデバイス鍵証明書Certmediaを管理するデバイス鍵データベース3001と、コントローラ製造業者Aから受け取ったコントローラ鍵Kcを用いてメディアデバイス鍵Kmd_iを暗号化する暗号化部3003を備えている。
コントローラ鍵Kcは、鍵発行/管理センタ3000において、メディアデバイス鍵Kmd_iを暗号化するのに用いられる。メディアデバイス鍵Kmd_iは、鍵生成器3002で生成された後、デバイス鍵データベース3001に格納される。暗号化器3003は、デバイス鍵データベース3001から対応するメディアデバイス鍵Kmd_iを供給
され、これをコントローラ鍵Kcで暗号化して暗号化メディアデバイス鍵Enc(Kc、Kmd_i)を生成する。
され、これをコントローラ鍵Kcで暗号化して暗号化メディアデバイス鍵Enc(Kc、Kmd_i)を生成する。
コントローラ鍵Kcは、コントローラ製造業者Aと鍵発行/管理センタ3000しか知りえない情報である。しかし、何らかの事故や事情によってコントローラ鍵Kcの情報が外部に漏れた時の被害を軽減するためには、例えば生産ロット毎など、一定量のコントローラ単位でコントローラ鍵Kcを変更することが望ましい。
なお、鍵生成器3002やデバイス鍵データベース3001では、メモリカード1000用のメディアデバイス鍵Kmd_iやメディアデバイス鍵証明書Certmediaだけでなく、後述するホスト装置2000用のホストデバイス鍵Khd_iやホストデバイス証明書Certhostも同様に生成・管理する。
アセンブリ業者Cは、コントローラ製造業者Aからコントローラ200の供給を受けると共に、当該コントローラ200向けに暗号化されたメディアデバイス鍵(暗号化メディアデバイス鍵Enc(Kc、Kmd_i)、及びそれに対応するメディアデバイス鍵証明書Certmediaを鍵発行/鍵管理センタ3000から受け取る。所望の暗号化メディアデバイス鍵Enc(Kc、Kmd_i)を受け取るためには、例えばコントローラ200の型番や製造ロット番号などを提示することで正しいコントローラ鍵Kcで暗号化されたメディアデバイス鍵を受け取ることが可能である。
メモリカード1000の製造プロセスにおいて、暗号化メディアデバイス鍵Enc(Kc、Kmd_i)は、コントローラ200のバッファRAM(図示せず)に一旦書き込まれる。すると、コントローラ200は当該暗号化メディアデバイス鍵Enc(Kc、 Kmd_i)を復号器206において自らが有するコントローラ鍵Kcを用いて復号する。これによりコントローラ200においてメディアデバイス鍵Kmd_iが得られる。
一方、一方向性変換器211は、コントローラ200に保持されているコントローラ鍵KcとコントローラユニークID(IDcu)を入力値として一方向性関数を演算(たとえばハッシュ演算、以下同じ)し、コントローラユニーク鍵Kcuを生成する。この新たに生成されたコントローラユニーク鍵Kcuを用いてメディアデバイス鍵Kmd_iを再び暗号化器207において暗号化し、暗号化メディアデバイス鍵Enc(Kcu、Kmd_i)を生成する。この暗号化メディアデバイス鍵Enc(Kcu、Kmd_i)はメモリ製造業者Bから供給されたメモリ100のシステム情報記録領域104に格納される。この時書き込んだ暗号化メディアデバイス鍵Enc(Kcu、Kmd_i)に対応するメディアデバイス鍵証明書Certmediaも同様にシステム情報記録領域104に格納される。
コントローラユニーク鍵(Kcu)は、コントローラ200内にコントローラ外部からの読み出しや変更に対する防止手段が講じられて秘匿されている固有情報としてのコントローラ鍵Kc及びコントローラユニークID(IDcu)を用いて生成される。このため、暗号化メディアデバイス鍵Enc(Kcu、Kmd_i)の復号に必要な情報が外部に漏れる危険は少なく、一旦メモリ100に書き込まれた暗号化メディアデバイス鍵Enc(Kcu、Kmd_i)を別個のコントローラ200で利用可能な状態とするため、不正に再暗号化(元のコントローラユニーク鍵Kcu1で復号後に、別のコントローラユニーク鍵Kcu2で暗号化)することは非常に困難となっている。
この第2の実施の形態では、コントローラ鍵KcとコントローラユニークID(IDcu)からコントローラユニーク鍵Kcuを生成する際に一方向性関数を用いているが、2つの入力データから1つの出力データを生成することのできる関数であればよく、特に一方向性関数に限定されるものではない。例えば、AES(Advanced Encryption Standard)暗号化器等を用いてコントローラユニーク鍵Kcuを生成することが可能である。メモリカード1000は、以上説明したような手順で製造される。同製造方法に基づき製造されたメモリカード1000を用いた認証方法及び情報記録・再生システムについて以下で説明する。
<システム構成>
図5を参照して、第2の実施の形態の情報・再生記録システムの全体構成及び動作を説明する。上記のようにして暗号化メディアデバイス鍵Enc(Kcu、Kmd_i)及びメディアデバイス鍵証明書Certmediaを与えられたメモリカード1000は、図5に示すように、ホスト装置2000に接続されることにより、コンテンツデータCをホスト装置2000から書き込まれたり、或いは取り込まれたコンテンツデータCをホスト装置2000に向けて出力したりすることができる。このメモリカード1000と、ホスト装置2000とにより、1つの情報記録・再生システムが構成される。
図5を参照して、第2の実施の形態の情報・再生記録システムの全体構成及び動作を説明する。上記のようにして暗号化メディアデバイス鍵Enc(Kcu、Kmd_i)及びメディアデバイス鍵証明書Certmediaを与えられたメモリカード1000は、図5に示すように、ホスト装置2000に接続されることにより、コンテンツデータCをホスト装置2000から書き込まれたり、或いは取り込まれたコンテンツデータCをホスト装置2000に向けて出力したりすることができる。このメモリカード1000と、ホスト装置2000とにより、1つの情報記録・再生システムが構成される。
ここで、ホスト装置2000の構造について説明する。ホスト装置2000は、保持部401、認証鍵交換処理部402、ID結合部403、一方向性変換器404、乱数生成器405、暗復号器406、暗復号器407を備えている。
保持部401は、前述したホストデバイス鍵Khd_j、及びホストデバイス証明書Certhostを格納している。ホストデバイス鍵Khd_jは、公開鍵暗号方式の秘密鍵であり、ホストデバイス証明書Certhostは、ホストデバイス鍵Khd_jと対をなす公開鍵を含むデータである。
認証鍵交換処理部402は、インターフェース部500、202及びセキュアチャネルを介して、メモリカード1000の認証鍵交換処理部213との間で認証鍵交換処理を実行してメディアデバイス証明書ID(IDm_cert)を出力する機能を有する。またID結合部403は、公開コントローラユニークID(IDcntr)とメディアデバイス鍵証明書ID(IDm_cert)とに基づきメモリカードユニークID(IDmc)を生成するよう構成されている。ここで、公開コントローラユニークID(IDcntr)はコントローラユニークID(IDcu)とは異なる値であり、コントローラ鍵KcとコントローラユニークID(IDcu)を用いてID生成器212から生成された値である。ID生成器212内での生成方法としては、一方向性関数を用いる方法が例示できるが、その他にも2つの入力データから1つの出力データを生成することのできる関数であればよく、特に一方向性関数に限定されるものではない。
このID結合部403は、公開コントローラユニークID(IDcntr)及びメディアデバイス鍵証明書ID(IDm_cert)に基づいてメモリカードユニークID(IDmc)を生成する識別情報生成部として機能する。このID結合部403は、単に2つのIDを結合することにより別の新規のIDを生成するものである。このような単なる結合に代えて、例えば一方向性関数や暗号アルゴリズムを用いて新しいIDを生成してもよい。
一方向性変換器404は、このメモリカードユニークID(IDmc)、乱数生成器405によって生成されたメディア鍵Kmを入力とした一方向性関数により、メディアユニーク鍵Kmuを生成する。乱数生成器405は、乱数を発生させて、取得された乱数に基づいてメディア鍵Km及びタイトル鍵Ktを生成する。暗復号器406は、上述のメディ
アユニーク鍵Kmuによりタイトル鍵Ktを暗号化する。また、暗復号器407は、タイトル鍵KtによりコンテンツデータCを暗号化する(暗号化コンテンツデータEnc(Kt、C)を取得する)。
アユニーク鍵Kmuによりタイトル鍵Ktを暗号化する。また、暗復号器407は、タイトル鍵KtによりコンテンツデータCを暗号化する(暗号化コンテンツデータEnc(Kt、C)を取得する)。
なお、メディアユニーク鍵Kmuは、ホスト装置2000によって生成され、本実施の形態では、タイトル鍵Ktの暗号化のための暗号化鍵として使用されている。従来のコンテンツ保護技術と同様に、秘密記録領域105に記録するメディアユニーク鍵KmuをコンテンツデータCの暗号化に直接利用するなどの形態も可能である。また、メディアユニーク鍵Kmuでユーザに固有のユーザ鍵Kuを暗号化し、ユーザ鍵Kuで更にコンテンツ鍵Kctを暗号化し、更にコンテンツ鍵Kctでコンテンツデータを暗号化する二重暗号方式にも適用可能である。また、メディア鍵Kmやタイトル鍵Ktはホスト装置2000内で生成されるだけでなく、予めメモリカード1000に書き込まれている場合や外部装置(図示せず)から与えられる場合もある。
<コンテンツの書き込み方法>
次に、このようなホスト装置2000から、メモリカード1000に対してコンテンツデータCの書き込む場合の動作を、図5を参照して説明する。最初に、メモリカード1000は、一方向性変換器211を用いて、コントローラ鍵KcとコントローラユニークID(IDcu)からコントローラユニーク鍵Kcuを生成する。そして、このコントローラユニーク鍵Kcuを用いて、暗号化メディアデバイス鍵Enc(Kcu、Kmd_i)を復号してメディアデバイス鍵Kmd_iを得る。このメディアデバイス鍵Kmd_iとメディアデバイス鍵証明書Certmediaは、認証鍵交換処理部213に転送される。
次に、このようなホスト装置2000から、メモリカード1000に対してコンテンツデータCの書き込む場合の動作を、図5を参照して説明する。最初に、メモリカード1000は、一方向性変換器211を用いて、コントローラ鍵KcとコントローラユニークID(IDcu)からコントローラユニーク鍵Kcuを生成する。そして、このコントローラユニーク鍵Kcuを用いて、暗号化メディアデバイス鍵Enc(Kcu、Kmd_i)を復号してメディアデバイス鍵Kmd_iを得る。このメディアデバイス鍵Kmd_iとメディアデバイス鍵証明書Certmediaは、認証鍵交換処理部213に転送される。
一方、ホスト装置2000は、ホストデバイス鍵Khd_jとホストデバイス鍵証明書Certhostを認証鍵交換処理部402に転送する。これにより、認証鍵交換処理部213及び402において認証鍵交換処理が実行される。処理が完了すると、メモリカード1000とホスト装置2000との間にセキュアチャネルが確立される。なお、セキュアチャネルが確立されると、ID生成器212は、自身が生成した公開コントローラユニークID(IDcntr)をインターフェース部200、502を介してセキュアチャネルを通して出力可能になる。また、認証鍵交換処理については、図8を用いて後述する。
セキュアチャネルが確立されると、ID生成器403は、公開コントローラユニークID(IDcntr)とメディアデバイス鍵証明書ID(IDm_cert)とを結合させてメモリカードユニークID(IDmc)を生成する。
ホスト装置2000は、乱数生成器405によりメディア鍵(Km)を生成し、生成したメディア鍵Kmをセキュアチャネル及びインターフェース部500、202経由でメモリカード1000の秘密記録領域105に記録する。
ホスト装置2000は、一方向性変換器404を用いてメディア鍵KmとメモリカードユニークID(IDmc)からメディアユニーク鍵Kmuを生成する。
ホスト装置2000は、乱数生成器405を用いてタイトル鍵Ktを生成し、更に暗復号器406を用いてタイトル鍵Ktをメディアユニーク鍵Kmuで暗号化し、暗号化タイトル鍵Kte=Enc(Kmu、Kt)をメモリカード100の通常記録領域106に記録する。また、ホスト装置2000は、タイトル鍵Ktを用いてコンテンツデータCを暗号化し、暗号化コンテンツデータCe= Enc(Kt、C))をメモリカード1000の通常記録領域106に記録する。以上により、コンテンツデータCの記録動作が完了する。
<コンテンツの読み出し方法>
次に、メモリカード1000からホスト装置2000に対し、コンテンツデータCを読み出す場合の動作を、図6を参照して説明する。認証鍵交換処理部213、402による認証鍵交換処理、及びID結合部403における動作は、書き込み動作の場合(図5)と略同一である。
次に、メモリカード1000からホスト装置2000に対し、コンテンツデータCを読み出す場合の動作を、図6を参照して説明する。認証鍵交換処理部213、402による認証鍵交換処理、及びID結合部403における動作は、書き込み動作の場合(図5)と略同一である。
認証鍵交換処理が完了し、セキュアチャネルが確立されると、秘密記録領域105及びシステム情報記録領域104へのアクセスが可能になり(すなわち、秘密記録領域105及びシステム情報記録領域106の論理アドレスの指定が可能になる)、メモリカード1000の秘密記録領域105に記録されているメディア鍵Kmが、セキュアチャネルを介してホスト装置2000の一方向性変換器404に提供される。一方向性変換器404は、このメディア鍵Kmと、前述のメモリカードユニークID(IDmc)とを用いてメディアユニーク鍵Kmuを生成する。暗復号器406は、このメディアユニーク鍵Kmuを用いて、メモリカード100に格納されている暗号化タイトル鍵Enc(Kmu、Kt)を復号してタイトル鍵Ktを得る。そして、暗復号器407は、この得られたタイトル鍵Ktを用いて、メモリカード100に格納されている暗号化コンテンツデータEnc(Kt、C)を復号してコンテンツデータCを得る。
以上説明したように、この実施の形態では、公開鍵暗号方式に従ったメディアデバイス鍵Kmd_i及びメディアデバイス鍵証明書Certmediaが認証鍵交換処理に用いられる。しかし、コントローラ200のコントローラ鍵Kc及びコントローラユニークID(IDcu)に基づいて公開コントローラユニークID(IDcntr)が生成される、この公開コントローラユニークID(IDcntr)は、セキュアチャネルを介してホスト装置2000に供給される。セキュアチャネルを介しての送信であるため、公開コントローラユニークID(IDcntr)が外部に漏れることはなく、改竄も防止されている。
また、この公開コントローラユニークID(IDcntr)とメディアデバイス鍵証明書ID(IDm_cert)とに基づいて、ID結合部403により、メモリカードユニークID(IDmc)が生成される。このメモリカードユニークID(IDmc)に基づいて、メモリカード1000内のメモリ100のメディアユニーク鍵Kmuが生成される。このように、本実施の形態によれば、公開鍵暗号方式による認証鍵交換処理を行った場合においても、公開鍵・秘密鍵のペアとコントローラ200に固有の公開コントローラユニークID(IDcntr)を互いに関連付けることができ、これによりクローンカードの蔓延を防止することができる。
[第3の実施形態]
図7は、第3の実施の形態による情報記録・再生システムの構成を示すブロック図である。メモリカード1000のハードウェア構成は図3に示したものと同様で良いので、以下では説明は省略する。本実施の形態では、図7に示すように、認証鍵交換処理部213の動作が異なっている。すなわち、ここでの認証鍵交換処理部213は、ID生成器212で生成された公開コントローラユニークID(IDcntr)を、直接ホスト装置2000に送信するのではなく、コントローラ200内の認証鍵交換処理部213に送信する。そして、この公開コントローラユニークID(IDcntr)は、認証鍵交換処理のパラメータの1つとして用いられる。認証鍵交換処理が完了すると、公開コントローラユニークID(IDcntr)は、メディアデバイス鍵証明書ID(IDm_cert)と共にID結合部403に送信される。以後の動作は、第2の実施の形態と略同様である。
図7は、第3の実施の形態による情報記録・再生システムの構成を示すブロック図である。メモリカード1000のハードウェア構成は図3に示したものと同様で良いので、以下では説明は省略する。本実施の形態では、図7に示すように、認証鍵交換処理部213の動作が異なっている。すなわち、ここでの認証鍵交換処理部213は、ID生成器212で生成された公開コントローラユニークID(IDcntr)を、直接ホスト装置2000に送信するのではなく、コントローラ200内の認証鍵交換処理部213に送信する。そして、この公開コントローラユニークID(IDcntr)は、認証鍵交換処理のパラメータの1つとして用いられる。認証鍵交換処理が完了すると、公開コントローラユニークID(IDcntr)は、メディアデバイス鍵証明書ID(IDm_cert)と共にID結合部403に送信される。以後の動作は、第2の実施の形態と略同様である。
図8は、楕円曲線暗号をベースとした標準的な認証鍵交換を用いた場合の動作手順を説明している。
ホスト装置は乱数RNhを生成(ステップS1)し、ホストデバイス鍵証明書Certhostと共にメモリカード1000に送る(ステップS2)。メモリカード1000は受信したホストデバイス鍵証明書Certhostに付けられているデジタル署名を検証すると共に乱数RNmを生成する(ステップS3)。
続いて、メモリカード1000は乱数RNmとメディアデバイス鍵証明書(Certmedia)をホスト装置に送る(ステップS4)。これを受けて、ホスト装置2000は受信したメディアデバイス鍵証明書Certmediaに付けられているデジタル署名を検証する。なお、メモリカード1000はステップS4の処理を行うと共に、楕円曲線暗
号におけるDiffie−Hellman鍵交換処理に必要な乱数Mkを生成し、楕円曲線のベースポイントGを用いてチャレンジ用の値Mv(=Mk*G)を計算する。そして、ID生成器212で公開コントローラユニークID(IDcntr)を生成し、メディアデバイス鍵Kmd_iを用いてチャレンジ用の値Mv、ステップS2で受け取った乱数RNh及び公開コントローラユニークID(IDcntr)に対するデジタル署名を生成する(ステップS6)。メモリカード1000はステップS6で生成したチャレンジ用の値Mv、公開コントローラユニークID(IDcntr)およびデジタル署名をホスト装置2000に送る(ステップS7)。
号におけるDiffie−Hellman鍵交換処理に必要な乱数Mkを生成し、楕円曲線のベースポイントGを用いてチャレンジ用の値Mv(=Mk*G)を計算する。そして、ID生成器212で公開コントローラユニークID(IDcntr)を生成し、メディアデバイス鍵Kmd_iを用いてチャレンジ用の値Mv、ステップS2で受け取った乱数RNh及び公開コントローラユニークID(IDcntr)に対するデジタル署名を生成する(ステップS6)。メモリカード1000はステップS6で生成したチャレンジ用の値Mv、公開コントローラユニークID(IDcntr)およびデジタル署名をホスト装置2000に送る(ステップS7)。
ホスト装置2000はステップS7で受信した署名を検証し、楕円曲線暗号におけるDiffie−Hellman鍵交換処理に必要な乱数Hkを生成し、楕円曲線のベースポイントGを用いてチャレンジ用の値Hv(=Hk*G)を計算する。そして、ホストデバイス鍵Khd_jを用いてチャレンジ用の値Hv及びステップS4で受け取った乱数RNmに対するデジタル署名を生成すると共に、本認証鍵交換処理によって共有される共有鍵Ks(=Hk*Mv)を計算する(ステップS8)。ホスト装置2000はステップS8で生成したチャレンジ用の値Hvおよびデジタル署名をメモリカード1000に送る(ステップS9)。これを受けてメモリカード1000はステップS9で受け取ったデジタル署名を検証し、共有鍵Ks(=Mk*Hv)を計算する。上記処理のデジタル署名検証処理において署名が正しく検証できなかった場合には、何れのステップにおいてもそれ以降の処理を中止する。
以上の認証鍵交換処理を行うことにより、ホスト装置とメモリカードは共有鍵を秘密裏に共有することができる。認証鍵交換処理においてはホスト装置とメモリカードが互いに生成したチャレンジを用いて共有鍵が計算されるため、共有鍵の値は認証鍵交換処理のたびに異なる。
なお、上記実施の形態においては、ID生成器212において、コントローラ鍵KcとコントローラユニークID(IDcu)の対に基づいて公開コントローラユニークID(IDcntr)を生成している。しかし、これに代えて、コントローラユニークID(IDcu)のみに基づいて公開コントローラユニークID(IDcntr)を生成してもよい。コントローラ200が秘匿しているコントローラユニークID(IDcu)を秘匿した状態のまま、外部に開示可能な別の固有情報を生成することができれば、用いられるパラメータは不問である。ただし、生成に用いる関数は、一方向性関数など、不可逆的であり、得られた公開コントローラユニークID(IDcntr)から逆計算を行って元のコントローラユニークID(IDcu)が求められないようなものを選択する必要がある。
[第4の実施形態]
次に、図9を参照して、第4の実施形態に係る認証装置、被認証装置、及びその認証方法について説明する。この実施の形態では、固有情報としての秘密情報NKey及び秘密識別情報SecretIDがメモリ製造業者Bからメモリ100にのみ与えられる例を示しているが、第1の実施形態で説明した通り、前述の第2の実施形態または第3の実施形態などに従い、コントローラ製造業者Aがコントローラ200に固有情報を格納させる例と組み合わせることも可能である。
次に、図9を参照して、第4の実施形態に係る認証装置、被認証装置、及びその認証方法について説明する。この実施の形態では、固有情報としての秘密情報NKey及び秘密識別情報SecretIDがメモリ製造業者Bからメモリ100にのみ与えられる例を示しているが、第1の実施形態で説明した通り、前述の第2の実施形態または第3の実施形態などに従い、コントローラ製造業者Aがコントローラ200に固有情報を格納させる例と組み合わせることも可能である。
<1.構成例(メモリシステム)>
図9を参照して、第4の実施形態に係るメモリシステムの構成例について説明する。図9は、秘密情報NKey及び秘密識別情報SecretIDがメモリ製造業者Bからメモリ100に与えられた後の状態を示している。本実施形態では、メモリ100が例えばNAND型フラッシュメモリである場合を示している。ここで、秘密情報NKeyと秘密識別情報SecretIDの固有性は任意である。例えば、秘密情報NKeyはメモリ100毎に固有の値、メモリ100のロット毎に固有の値、メモリ100の製造者毎に固有の値であってもよい。加えて、秘密識別情報SecretIDはメモリ100毎に固有の値、メモリ100のロット毎に固有の値、メモリ100の製造者毎に固有の値であってもよい。固有性の粒度は必要に応じて選択すればよいが、秘密情報NKeyもしくは秘密識別情報SecretIDの少なくともいずれか一方はメモリ100毎に固有な値であることが望ましい。
図9を参照して、第4の実施形態に係るメモリシステムの構成例について説明する。図9は、秘密情報NKey及び秘密識別情報SecretIDがメモリ製造業者Bからメモリ100に与えられた後の状態を示している。本実施形態では、メモリ100が例えばNAND型フラッシュメモリである場合を示している。ここで、秘密情報NKeyと秘密識別情報SecretIDの固有性は任意である。例えば、秘密情報NKeyはメモリ100毎に固有の値、メモリ100のロット毎に固有の値、メモリ100の製造者毎に固有の値であってもよい。加えて、秘密識別情報SecretIDはメモリ100毎に固有の値、メモリ100のロット毎に固有の値、メモリ100の製造者毎に固有の値であってもよい。固有性の粒度は必要に応じて選択すればよいが、秘密情報NKeyもしくは秘密識別情報SecretIDの少なくともいずれか一方はメモリ100毎に固有な値であることが望ましい。
図示するように、第4の実施形態に係るメモリシステムは、被認証装置であるNAND型フラッシュメモリ100、認証装置であるホスト装置2000、及び両者を仲介するコントローラ200を備える。ホスト装置2000は、コントローラ200を介して、NAND型フラッシュメモリ100にアクセスする。
ここで、NAND型フラッシュメモリ100等の半導体製品の製造工程について、簡単に説明する。半導体製品の製造工程は、主に基板ウェハ上に回路を形成する前工程と、このウェハを個片に切り分けた後、配線や樹脂パッケージ封入等を行う後工程と、に分けることができる。
コントローラ200は、前工程においてNAND型フラッシュメモリ100内に包含されるよう構成される場合、前工程においては包含されないが後工程において同一パッケージに包含されるように構成される場合、NAND型フラッシュメモリ100とは異なるチップとして提供される場合、等様々な場合がある。図9を含め、以下では、コントローラ200がNAND型フラッシュメモリ100とは異なるチップとして提供される場合を例にとって説明している。コントローラ200とNAND型フラッシュメモリ100とは、例えば図3のように、カード形状にパッケージングされる(メモリカード1000)が、これに限定されるものではない。
以下、特に断りのない限り、ホスト装置2000とNAND型フラッシュメモリ100との間のデータや命令のやり取りは、多くの場合コントローラ200が仲介する。この場合でも、コントローラ200は、前述のデータや命令の本質的内容を変えることはないため、詳細については省略して説明する場合がある。なお、NAND型フラッシュメモリ100及びコントローラ200の構成例の詳細については後述する。
また、ホスト装置2000の構成としては、民生機器のように専用ハードウェアで構成される場合、専用ハードウェアとそれを動作させるファームウェアの組み合わせで構成される場合だけでなく、装置の全機能がPC上で動作するソフトウェアで実現される場合も想定される。本実施形態は、ホスト装置2000がどのような構成を採用していても、基本的には適用し得るものである。
図9に示す各コンポーネント、データ処理について、以下で説明する。本実施形態では、被認証装置に記録されている秘密識別情報SecretIDを第三者から秘匿した状態で読み出すと共に、正規の被認証装置から読み出されたデータであることを確認する方法、及び同方法を、NAND型フラッシュメモリ100を利用したメモリシステムに適用する場合の構成例を示すものである。
1−1.NAND型フラッシュメモリ
本実施形態において、NAND型フラッシュメモリ100は、被認証装置である。
本実施形態において、NAND型フラッシュメモリ100は、被認証装置である。
図示するように、本実施形態に係るNAND型フラッシュメモリ100は、セルアレイ(Cell array)11、及びセルアレイ11の周辺領域に配置されるデータキャッシュ(DataCache)12、データ生成回路(Generate)13、14、一方向性変換器(Oneway)15を備える。データ生成回路(Generate)13、14及び一方向性変換器(Oneway)15は認証回路107を構成する。
メモリセルアレイ11は、外部からの読み出し及び書き込みの両方が禁止された秘匿領域(Hidden area)101、外部からの書き込みが禁止されたロム領域(ROM area)102、外部からの読み出し及び書き込みの両方が可能な読み書き可能領域(Read/Write area)103等を備える。
読み書き可能領域(一般領域)103は、NAND型フラッシュメモリ100の外部からのデータ書き込み及びデータ読み出し両方が可能な領域である。読み書き可能領域103には、FKeyvを秘匿するために用意された暗号化FKey束である鍵管理情報FKBv(Family Key Block)が記録される。鍵管理情報FKBvはNAND型フラッシュメモリ100に記録される他のデータとは異なり、NAND型フラッシュメモリ100の製造時だけでなく、例えばSDカードのようにNAND型フラッシュメモリ100にコントローラを結合させて一般ユーザ向けのストレージメディアを製造する段階や、或いは前記ストレージメディアの販売後に、ユーザの要求に従ってサーバからダウンロードして記録するように構成することも可能である。詳細については、後述する。
ここで、鍵管理情報FKBvとは、ホスト装置2000が保持する秘密情報IDKeykと、当該秘密情報IDKeykのインデックス情報kとに基づいて秘匿情報FKeyvを復号するために用いられる情報、または、ホスト装置2000が保持する秘密情報IDKeykと、当該ホスト装置2000の識別情報とに基づいて秘匿情報FKeyvを復号するために用いられる情報である。
また、鍵管理情報FKBvは、NAND型フラッシュメモリ100毎にユニークに用意するだけでなく、製造工程に合わせて例えばNAND型フラッシュメモリ100の製造ロット(lot)単位やウェハ(Wafer)単位等、複数のNAND型フラッシュメモリ100に共通に付すことが可能な情報(対応付けられることが可能な情報)である。また、鍵管理情報FKBvのインデックス情報vは、鍵管理情報FKBvの識別情報またはバージョン番号情報であってもよい。
秘匿領域101は、NAND型フラッシュメモリ100の外部からのデータ書き込み及びデータ読み出し両方が禁止される領域(Read/Write inhibit)である。秘匿領域101には、認証処理においてNAND型フラッシュメモリ100が用いる秘密情報NKeyi 及びNAND型フラッシュメモリ100の秘密識別情報SecretIDが記録される。
ロム領域102は、NAND型フラッシュメモリ100外部からのデータ書き込みが禁止され、一方データ読み出しが許可される領域である。ロム領域102には、鍵管理情報FKBvによって秘匿されている秘匿情報FKeyvを示すためのインデックス情報v(index ofFKey)、秘匿情報FKeyvによって暗号化された秘密識別情報SecretID(E-SecretID)、秘密情報NKeyiを示すためのインデックス情報i(index of NKey)が記録される。
本実施形態では、インデックス情報iやインデックス情報vを記録する際にデータに誤りが生じてしまった場合でも、正しい識別情報が読み出せるようにするために、一般的には誤り訂正符号を付加した状態で記録される。しかしながら、説明を簡略化するため、ここでは誤り訂正符号化及び復号化処理については特に図示しないものとする。
なお、ロム領域102は、例えば1回の書き込みのみ許容されるOTP(One Time Program)領域であってもよいし、NAND型フラッシュメモリ100の製造工程においては読み出し及び書き込みが可能な一般領域であって、出荷後の管理フラグの書き換えによって読み出し専用となる領域であってもよい。または、当該領域に対する書き込みコマンドを一般領域とは異なる特殊コマンドとし、NAND型フラッシュメモリ100の受領者にはこの特殊コマンドを提供しない等の方法を利用してもよい。他には、NAND型フラッシュメモリ100上では一般領域の扱いであるが、コントローラ200がホスト装置2000に提供する機能を読み出しのみに限定する、などの構成をとってもよい。
なお、ロム領域102に記録される情報は後述の通り、秘匿領域101に記録される情報と関連付けられているため、ロム領域102に記録される情報を改ざんした場合、NAND型フラッシュメモリ100の認証機能を有効に働かせることができなくなる。従って改ざんされることによるセキュリティ上の懸念はないため、必ずしもロム領域である必要はなく、読み出し及び書き込みが可能な一般領域で代用してもよい。この場合、図面中のロム領域102を読み書き可能領域(一般領域)103と読み替えればよい。関連して、ロム領域102中に記載されているデータの一部を読み書き可能領域(一般領域)103に記録してもよい。例えば、インデックス情報v(index of FKey)を読み書き可能領域(一般領域)に記録し、暗号化された秘密識別情報(E-SecretID)とインデックス情報v(index of FKey)をロム領域102に記録するという構成も可能である。上記ロム領域102の構成例については、本明細書にて他の実施形態や変形例として後述されるロム領域102にも適用可能である。
暗号化された秘密識別情報E-SecretIDとは、NAND型フラッシュメモリチップ10毎に固有に(ユニークに)付される秘密識別情報SecretIDを秘匿情報FKeyvによって暗号化したデータである。或いは、NAND型フラッシュメモリに予めコンテンツを記録して販売するようなプリレコーディング(事前記録)コンテンツ配布用途において同じコンテンツデータを記録する際には、敢えて同じ暗号化秘密識別情報E-SecretIDを記録する等、用途に合わせて同じ暗号化秘密識別情報を複数のNAND型フラッシュメモリに記録することもできる。
データキャッシュ12は、メモリ(セルアレイ)11から読み出したデータを一時的に記憶する。
データ生成部13、14は、複数の入力データから予め定められた演算によって出力データを生成する回路である。
データ生成部13は、ホスト装置2000から受信した定数HCjを前述の秘密情報NKeyi を用いて変換することで、秘密情報HKeyi,jを生成する。データ生成部14は、ホスト装置2000から受信した乱数RNhを秘密情報HKeyi,jを用いて変換することで、セッション鍵SKeyi,jを生成する。データ生成部13、14は、ハードウェア(回路)若しくはソフトウェア、またはハードウェアとソフトウェア両方の組み合わせでも実装され得る。
データ生成部13、14は、回路として実装される場合は、全体の回路規模を小さくするために後述の一方向性変換器15と同じ或いは一方向性変換器を流用した回路や、AES(Advanced Encryption Standard)暗号化器等を用いることも可能である。同様に、データ処理手順を分かり易くするために異なる構成要素として図示されている二つのデータ生成部は、同じ回路を繰り返し利用することが可能である。この例の場合、HKeyi,j=AES_E(NKeyi, HCj)、SKeyi,j= AES_E(HKeyi,j, RNh)などの構成をとることが可能である。
一方向性変換器15は、入力されたデータと別途入力された鍵データに一方向性の変換を施し、一方向性変換された入力データを出力する。一方向性変換器15はハードウェア(回路)若しくはソフトウェア、またはハードウェアとソフトウェア両方の組み合わせでも実装され得る。
一方向性変換器15は、秘匿領域101から読み出した秘密識別情報SecretIDを、データ生成回路14によって生成されたセッション鍵SKeyi,jを用いて一方向性関数により変換し、一方向性変換識別情報Oneway-ID (= Oneway(SKeyi,j, SecretID))を生成する。また、一方向性変換器15は、回路として実装される場合は、前述の通り、全体の回路規模を小さくするために、データ生成部14等を流用して使用することも可能である。この例の場合、Oneway-ID=AES_E(SKeyi、j,SecretID) (+) SecretIDなどの構成をとることが可能である。
また、図示しないが、コントローラ200を介してホスト装置2000にデータを出力する出力部等も実際には構成要素として配置されている。
1−2.ホスト装置
本実施形態において、ホスト装置2000は、認証装置である。
本実施形態において、ホスト装置2000は、認証装置である。
図示するように、本実施形態に係るホスト装置(Host)20は、復号部(Decrypt)21、FKB処理部(Process FKB)22、メモリ(Memory)23、乱数生成部(RNG: RandomNumber Generator)24、選択部(Select 2)25、データ生成部(Generate)26、一方向性変換器(Oneway)27、及びデータ検証部(Verify)28等を備える。この他、例えば、図示しない誤り訂正処理部等も必要に応じて構成要素として備えることが可能である。
復号部21は、入力されたデータを別途入力された鍵データで複合し、復号された入力データを出力する。本実施形態では、復号部21は、コントローラ200を介して、暗号化秘密識別情報E-SecretIDをNAND型フラッシュメモリ100から読み出す。そして、暗号化秘密識別情報E-SecretIDを、後述のFKB処理部22(データ選択部22−2)から入力された秘匿情報FKeyを用いて復号し、秘密識別情報SecretIDを出力する。
FKB処理部22は、NAND型フラッシュメモリ100から読み出される鍵管理情報FKBvを、メモリ23に秘匿されている秘密情報IDKeyk及び秘密情報IDKeykのインデックス情報kを用いて復号し、生成した秘匿情報FKeyを復号部21に出力する。本実施形態では、FKB処理部22は、データ選択部(Select 1)21−1及び復号部(Decrypt)22−2を備えている。
第1段目のデータ選択部21−1は、NAND型フラッシュメモリ100から読み出した暗号化FKey束(鍵管理情報FKBv)の中から、メモリ23に記録されているインデックス情報kを用いて、メモリ23に秘匿されている秘密情報IDKeykによって復号可能なデータを選択して、復号部22−2に出力する。
復号部22−2は、メモリ23に秘匿されている秘密情報IDKeykを用いて、データ選択部22−1において選択されたデータを復号し、生成された秘匿情報FKeyを復号部21に出力する。
メモリ23は、インデックス情報k、秘密情報IDKeyk、秘密情報セットHKeyi,j (i=1,…,m。なお、jは当該HKeyi,jにおいては固定の値である)、及び定数HCjを記録し、少なくとも秘密情報IDKeyk及び秘密情報セットHKeyi,j (i=1,…,m)をホスト装置2000の外部に対して秘匿する。ここで、定数HCjとは、認証要求(Request authentication)時にNAND型フラッシュメモリ100に送出するために予め保持しているホスト装置2000の定数である。詳細については後述する。
乱数生成部24は、認証処理に用いる乱数RNhを生成し、出力する。
第2段目のデータ選択部25は、NAND型フラッシュメモリ100のロム領域102からデータキャッシュ12を介して読み出したインデックス情報iを用いて、当該ホスト装置2000が秘匿している秘密情報セットHKeyi,jの中から、認証処理に必要な秘密情報HKeyi,jを選択する。
データ生成部26は、複数の入力データから予め定められた演算によって出力データを生成する演算部である。本実施形態では、データ生成部26は、ホスト装置2000自身が生成した乱数RNhを、ホスト装置2000が秘匿している秘密情報HKeyi,jを用いて変換することで、セッション鍵SKeyi,jを生成する。データ生成部26として、例えば上述したAES暗号化器等を用いることも可能である。
一方向性変換器27は、復号部21から出力される秘密識別情報SecretIDを、データ生成部26から出力されるセッション鍵SKeyi,jを用いて一方向性関数により変換し、一方向性変換識別情報Oneway-IDを生成する。
データ検証部28は、NAND型フラッシュメモリ100から受信した一方向性変換識別情報Oneway-IDと、ホスト装置2000内の一方向性変換器27から得られた一方向性変換識別情報Oneway-IDとが一致するか否かを比較する。上記一方向性変換識別情報Oneway-IDの両方の値が一致した場合(OK)には、復号部21で得られた秘密識別情報SecretIDが正規のIDであると判定して、得られた秘密識別情報SecretIDを以降の処理に引き渡す。一方、不一致の場合(NG)には、秘密識別情報SecretIDが不正なIDであると判定して、その旨を出力する。
他に、ホスト装置2000が有する秘密情報、例えばIDKeyk,HKeyi,jが流出し、流出情報を有する不正ホスト装置が不正製造者によって製造された場合などにおいて、当該不正ホスト装置を無効化する手段として、鍵管理情報(FKBv)から不正ホスト装置が有するIDKeykにてFKeyを導出可能な情報を除くなどの対応をとることも可能である。この対応については、図11における説明にて後述する。この対応をするに当たっては、秘密情報IDKeyk及びインデックス情報k、秘密情報HKeyi,j及びホスト定数HCjの間に関連を持たせることが有用である。関連があれば、不正ホスト装置が認証において通知するHCjを観測することによって当該不正ホスト装置が有する秘密情報IDKeyk及びHKeyi,jの両方が特定可能となる。関連付けの方法としては、HCjの全部もしくは一部の情報をIDKeykと共有することや、HCjの全部もしくは一部の情報をIDKeykを暗号処理した結果により構成することや、IDKeykの全部もしくは一部の情報をHCjを暗号処理した結果により構成することなどの方法がとれる。更に、鍵管理情報(FKBv)の生成に当たり、FKeyおよびIDKeykに加えて、HKeyi,jを用いるのが望ましい。これについてはFKBの構成例を説明している箇所にて後述する。
ここで、上記秘密情報IDKeyk、秘密情報HKeyi,jは、例えば、ホスト装置2000が民生機器のような専用ハードウェア装置であれば内部の専用メモリにメーカ独自の方法で暗号化した上で記録されていたり、PC等で実行されるプログラムであればタンパーレジスタントソフトウェア(TRS)技術によって不正な解析から保護できる状態で保持していたり、或いはセキュリティモジュールを内蔵している場合には当該セキュリティモジュールの機能を利用して秘匿する等の対策を採った状態で記録される。
なお、コントローラ(Controller)200は、NAND型フラッシュメモリ100を制御して、ホスト装置2000との間のデータ転送等を行う。例えばコントローラ200は、ホスト装置2000から受信した命令を解釈し、NAND型フラッシュメモリ100のインターフェース仕様に適合した命令に変換した上で、当該命令をNAND型フラッシュメモリ100に送出する。コントローラ200は、例えばSD Memory規格、SDIO規格、eMMC規格等、必要に応じて様々なインターフェース規格を採用することができる。
また、コントローラ200は、一般領域103の一部を確保し、自身の動作に必要な制御データを保存する。また、コントローラ200は、ホスト装置2000から受信した論理アドレスをNAND型フラッシュメモリの物理アドレスに変換する機能を有していてもよい。また、メモリ100の疲弊を平準化するため、所謂ウェアレベリングを実行する機能を有していてもよい。ただし、少なくとも秘匿領域101についてはウェアレベリングの対象外とされる。
また、メモリシステムの構成例は、上記説明したものに限られない。例えば、図示しない誤り訂正処理部等のその他の構成要素も必要に応じて備えることが可能である。更に、NAND型フラッシュメモリ100が有する秘密情報NKeyiが複数存在してもよい。すなわち、秘密情報NKeyiとこれに対応するインデックス情報iの組み合わせを1つのスロットとし、複数スロットがNAND型フラッシュメモリ100に記録されている。ここで、上記スロットには各々スロット番号が付与されており、ホスト装置2000は各スロット番号のインデックス情報iを読み出し、いずれか一つを選択して認証を行う。
この場合、ホスト装置2000はNAND型フラッシュメモリ100に対して選択したスロット番号に相当する情報を通知し、NAND型フラッシュメモリ100は通知されたスロット番号に相当する情報を用いて認証処理を行う。更には、NAND型フラッシュメモリ100が有する全ての情報を1つのスロットとし、当該情報スロットを複数有してもよい。すなわち、秘密情報NKeyi、インデックス情報i、鍵管理情報(FKBv)、インデックス情報v(index of FKey)、秘密識別情報SecretID、暗号化された秘密識別情報(E-SecretID)を1つのスロットとし、複数スロットがNAND型フラッシュメモリ100に記録されている。ここで、上記スロットには各々スロット番号が付与されており、ホスト装置2000は各スロット番号のインデックス情報iを読み出し、いずれか一つを選択して認証を行う。この場合、ホスト装置2000はNAND型フラッシュメモリ100に対して選択したスロット番号に相当する情報を通知し、NAND型フラッシュメモリ100は通知されたスロット番号に相当する情報を用いて認証処理を行う。
上記において、NAND型フラッシュメモリ100が複数のスロットを有する方法を示したが、これらに限らず、一部の情報を複数のスロットで共有するいかなる構成をとることも可能である。例えば、秘密識別情報SecretID、暗号化された秘密識別情報(E-SecretID)、鍵管理情報(FKBv)、インデックス情報v(index of FKey)は複数のスロットで共有し、他の情報はスロット毎に個別に有するなども可能である。
また、NAND型フラッシュメモリ100が複数のスロットとスロット番号を有し、いずれのスロットを認証に用いるかをホスト装置2000が通知する方法は本明細書にて後述する他の実施例全てに適用可能である。
<2.認証フロー>
次に、図10に沿って、第4の実施形態に係るメモリシステムの認証フローについて説明する。
次に、図10に沿って、第4の実施形態に係るメモリシステムの認証フローについて説明する。
(Step S11)
認証を開始(Start)すると、ホスト装置2000は、NAND型フラッシュメモリ100から鍵管理情報である暗号化FKey束(FKB: Family Key Block)及び暗号化秘密識別情報SecretID(E-SecretID)を読み出す。
認証を開始(Start)すると、ホスト装置2000は、NAND型フラッシュメモリ100から鍵管理情報である暗号化FKey束(FKB: Family Key Block)及び暗号化秘密識別情報SecretID(E-SecretID)を読み出す。
(Step S12)
続いて、ホスト装置2000は、読み出した鍵管理情報FKBからデータ選択部(Select1)22−1によりデータ選択処理を行い、ホスト装置2000が復号可能な暗号化された秘匿情報FKeyを読み出すと共に、秘匿している秘密情報IDKeykを用いて上記復号部22−2により復号することにより、秘匿情報FKeyを得る。更に、ホスト装置2000は、得られた秘匿情報FKeyを用いて、NAND型フラッシュメモリ100から読み出した暗号化秘密識別情報E-SecretIDを復号することにより、秘密識別情報SecretIDを得る。
続いて、ホスト装置2000は、読み出した鍵管理情報FKBからデータ選択部(Select1)22−1によりデータ選択処理を行い、ホスト装置2000が復号可能な暗号化された秘匿情報FKeyを読み出すと共に、秘匿している秘密情報IDKeykを用いて上記復号部22−2により復号することにより、秘匿情報FKeyを得る。更に、ホスト装置2000は、得られた秘匿情報FKeyを用いて、NAND型フラッシュメモリ100から読み出した暗号化秘密識別情報E-SecretIDを復号することにより、秘密識別情報SecretIDを得る。
(Step S13)
続いて、ホスト装置2000は、NAND型フラッシュメモリ100に対して、インデックス情報iの読み出し要求を行う。
続いて、ホスト装置2000は、NAND型フラッシュメモリ100に対して、インデックス情報iの読み出し要求を行う。
(Step S14)
続いて、NAND型フラッシュメモリ100は、ホスト装置2000の要求を受けて、インデックス情報iをメモリ100からロードし、ホスト装置2000に出力する。
続いて、NAND型フラッシュメモリ100は、ホスト装置2000の要求を受けて、インデックス情報iをメモリ100からロードし、ホスト装置2000に出力する。
(Step S15)
続いて、ホスト装置2000は、認証要求時に必要となる乱数RNhを生成する。認証処理に乱数RNhを用いることにより、以下の処理でNAND型フラッシュメモリ100との間で毎回異なる共有鍵を利用することができる。
続いて、ホスト装置2000は、認証要求時に必要となる乱数RNhを生成する。認証処理に乱数RNhを用いることにより、以下の処理でNAND型フラッシュメモリ100との間で毎回異なる共有鍵を利用することができる。
(Step S16)
続いて、ホスト装置2000は、認証要求(Request authentication)と共に、予め保持している定数HCj及び乱数RNhをNAND型フラッシュメモリ100に送出する。
続いて、ホスト装置2000は、認証要求(Request authentication)と共に、予め保持している定数HCj及び乱数RNhをNAND型フラッシュメモリ100に送出する。
(Step S17)
続いて、NAND型フラッシュメモリ100は、秘密情報NKeyi (i=1,…,m)及び秘密識別情報SecretIDを秘匿領域101からロードし、データキャッシュ12に保存する。
続いて、NAND型フラッシュメモリ100は、秘密情報NKeyi (i=1,…,m)及び秘密識別情報SecretIDを秘匿領域101からロードし、データキャッシュ12に保存する。
(Step S18)
続いて、NAND型フラッシュメモリ100は、秘匿している秘密情報NKeyiとホスト装置2000から受信した定数HCjとを用いて、データ生成回路13におけるデータ生成処理により秘密情報HKeyi,jを生成する。
続いて、NAND型フラッシュメモリ100は、秘匿している秘密情報NKeyiとホスト装置2000から受信した定数HCjとを用いて、データ生成回路13におけるデータ生成処理により秘密情報HKeyi,jを生成する。
(Step S19)
続いて、NAND型フラッシュメモリ100は、受信した乱数RNhを用いて、データ生成回路14におけるデータ生成処理により、セッション鍵SKeyi,j (= Generate(HKeyi,j, RNh))を生成する。
続いて、NAND型フラッシュメモリ100は、受信した乱数RNhを用いて、データ生成回路14におけるデータ生成処理により、セッション鍵SKeyi,j (= Generate(HKeyi,j, RNh))を生成する。
(Step S20)
続いて、NAND型フラッシュメモリ100は、生成したセッション鍵SKeyi,jを用いて、秘密識別情報SecretIDに一方向性変換器15における一方向性変換処理を行い、一方向性変換識別情報Oneway-ID (=Oneway(SKeyi,j, SecretID))を生成する。生成された一方向性変換識別情報Oneway-IDは、ホスト装置2000に送出される。
続いて、NAND型フラッシュメモリ100は、生成したセッション鍵SKeyi,jを用いて、秘密識別情報SecretIDに一方向性変換器15における一方向性変換処理を行い、一方向性変換識別情報Oneway-ID (=Oneway(SKeyi,j, SecretID))を生成する。生成された一方向性変換識別情報Oneway-IDは、ホスト装置2000に送出される。
(StepS21)
上記StepS18と並行して、ホスト装置2000は、受信したインデックス情報iを用いて、予め秘匿していた秘密情報セットHKeyi,j (i=1,…,m)から当該NAND型フラッシュメモリ100との認証処理に必要な秘密情報HKeyi,jを選択する。
上記StepS18と並行して、ホスト装置2000は、受信したインデックス情報iを用いて、予め秘匿していた秘密情報セットHKeyi,j (i=1,…,m)から当該NAND型フラッシュメモリ100との認証処理に必要な秘密情報HKeyi,jを選択する。
(Step S22)
続いて、ホスト装置2000は、選択した秘密情報HKeyi,jと生成した乱数RNhとを用いて、データ生成部26におけるデータ生成処理により、セッション鍵SKeyi,j (= Generate(HKeyi,j, RNh))を生成する。
続いて、ホスト装置2000は、選択した秘密情報HKeyi,jと生成した乱数RNhとを用いて、データ生成部26におけるデータ生成処理により、セッション鍵SKeyi,j (= Generate(HKeyi,j, RNh))を生成する。
(Step S23)
続いて、ホスト装置2000は、生成したセッション鍵SKeyi,jを用いて、秘密識別情報SecretIDに一方向性変換器27における一方向性変換処理を行い、一方向性変換データOneway-IDを生成する。
続いて、ホスト装置2000は、生成したセッション鍵SKeyi,jを用いて、秘密識別情報SecretIDに一方向性変換器27における一方向性変換処理を行い、一方向性変換データOneway-IDを生成する。
(Step S24)
続いて、ホスト装置2000は、NAND型フラッシュメモリ100より受信した一方向性変換識別情報Oneway-IDと、自身が生成した一方向性変換識別情報Oneway-IDとが一致するか否かを判定する。
続いて、ホスト装置2000は、NAND型フラッシュメモリ100より受信した一方向性変換識別情報Oneway-IDと、自身が生成した一方向性変換識別情報Oneway-IDとが一致するか否かを判定する。
上記一方向性変換識別情報Oneway-IDの両方の値が一致した場合(OK)には、復号部21で得られた秘密識別情報SecretIDが正規のIDであると判定して、以降の処理に秘密識別情報SecretIDを引き渡す。一方、不一致の場合(NG)には、秘密識別情報SecretIDが不正なIDであると判定し、その旨を以降の処理に出力する。
以上の動作により、第4の実施形態に係る認証フローを終了する(End)。
なお、ここで、メモリシステムの構成例において示した通り、NAND型フラッシュメモリ100が複数のスロットを有する場合、ホスト装置2000は認証に用いるスロット番号をNAND型フラッシュメモリ100に通知する必要がある。この場合、上記Step S16にてスロット番号を付随して通知してもよいし、もしくはStep S16より以前のStepにおいて通知してもよい。
<3.FKB(Family Key Block)について>
次に、図11を用い、第4の実施形態に係る鍵管理情報FKB(Family Key Block)についてより詳しく説明する。
次に、図11を用い、第4の実施形態に係る鍵管理情報FKB(Family Key Block)についてより詳しく説明する。
秘密識別情報SecretIDが記録されているNAND型フラッシュメモリ100に適合した鍵管理情報FKBを生成するためには、予め用意された秘密鍵情報であるIDKeyi (i=1,…,n)(Set of IDKeyi’s)の1つ1つのIDKeyiを用いて、FKeyvを1つ1つ暗号化(Encrypt)する。つまり、鍵管理情報FKBとは、暗号化FKeyv(E- FKeyv,i) = Encrypt(IDKeyi, FKeyv)の集合であり、この暗号化FKeyvの集合を暗号化FKey束と称する。
なお、鍵管理情報FKBの構成については、本実施形態に限られない。例えば、特定のIDKeyiが露呈してしまった場合、当該IDKeyiを保持しているホスト装置2000では暗号化FKey束からFKeyを復号することができないようにするために、当該秘密情報IDKeyiで復号可能な暗号化FKeyv(上述の例ではE- FKeyv,i)をFKBから削除することにより、新たに構成されたFKBを記録したNAND型フラッシュメモリ100を使用した場合には、当該ホスト装置2000では正しいFKeyv及び秘密識別情報SecretIDを得る(復号する)ことができないようにすることも可能である。このようにすることで、当該秘密情報IDKeyiを保持したホスト装置2000を無効化する機能を提供することも可能である。
また、前述の通り、秘密情報IDKeyk及びインデックス情報k、秘密情報HKeyi,j及びホスト定数HCjの間に関連を持たせるにあたり、鍵管理情報(FKBv)の生成においてFKeyおよびIDKeykに加えて、HKeyi,jを流用することもできる。例えば、(E- FKeyv,i) = Encrypt (Encrypt(IDKeyi, FKeyv), HKeyi,j)、(E- FKeyv,i) = Encrypt (Encrypt(HKeyi,j,FKeyv), IDKeyi)、(E- FKeyv,i) = Encrypt(HKeyi,j, IDKeyi(+)FKeyv)などの構成をとってもよい。これは、複数のホスト装置2000から鍵が流出した場合に、異なる装置の秘密鍵IDKeyi、HKeyi,jを組み合わせることを防止する効果がある。つまり、正しく組み合わされたIDKeyi、HKeyi,jでない限り、FKeyの復号を不可能とすることにより、HCjを観測することでこれに紐付いたHKeyi,jが判明し、更にIDKeyiも特定することができ、ひいては露呈したIDKeyiを無効化することが可能となる。
鍵管理情報FKBの生成方法についても、本実施形態に限られない。例えば、CPRM(非特許文献1参照)において用いられているMKB(Media Key Block)技術や、非特許文献3に開示されたMKB技術を用いて鍵管理情報FKBを生成しても、ホスト装置2000を無効化する機能を提供することが可能である。
ここで、MKB技術とは、複数の機器がそれぞれ異なる秘密情報を持つ状況で、機器の無効化を実現しつつ、(無効化対象でない機器の間で)共通の秘密情報(Media Key)を効率よく共有するための技術であり、Broadcast Encryptionとも称されるものである。
例えば、上記MKB技術を適用した場合、メモリシステムの構成例は、図12のように示される。図示するメモリシステムは、FKB処理部(Process FKB)22が上位概念化されて図示される点で、図9と相違する。この場合においても、インデックス情報kやIDKeyiに対応する情報であるホスト装置2000のノード番号やノード番号に割り当てられたホスト鍵群によって復号されるFKBの当該データをHKeyi,jやHCjと関連付けることにより、露呈した鍵の特定と無効化が可能となる。
<4.秘密情報やFKBの書き込みについて>
次に、NAND型フラッシュメモリ100への秘密情報や鍵管理情報FKBの書き込みについて説明する。
次に、NAND型フラッシュメモリ100への秘密情報や鍵管理情報FKBの書き込みについて説明する。
4−1.NAND型フラッシュメモリの製造時等に書き込む場合
まず、図13、及び図14を用い、例えば、NAND型フラッシュメモリ100の製造時等に秘密情報や鍵管理情報FKBを書き込む場合について説明する。ここでは、図14のフローに即して説明する。
まず、図13、及び図14を用い、例えば、NAND型フラッシュメモリ100の製造時等に秘密情報や鍵管理情報FKBを書き込む場合について説明する。ここでは、図14のフローに即して説明する。
鍵発行/管理センタ3000は、以下のデータを生成する:鍵管理情報FKBv (v=1,…,n)、秘匿情報FKeyv(v=1,…,n)、インデックス情報v(v=1,…,n)、秘密情報NKeyi、及びインデックス情報i。なお、前述した通り、FKBvは、FKeyvを暗号化したものである。また、vは複数の値であっても良い。例えば、vとして1,2,3の3つの値を鍵発行/管理センタ3000が生成する場合、鍵発行/管理センタ3000は、生成したvに対応させる形で、(FKB1, FKey1), (FKB2, FKey2), (FKB3, FKey3)を生成する。
鍵発行/管理センタ3000は、生成したデータの内、FKeyv(v=1,…,n)、v(v=1,…,n)、NKeyi,iをメモリ製造業者Bに渡す。これらのデータを渡す際には、例えば、鍵発行/管理センタ3000は、予めメモリ製造業者Bの公開鍵を入手しておき、当該公開鍵を用いてデータを暗号化した上でメモリ製造業者Bに送信する、等といった安全な手段を用いる。
メモリ製造業者Bは、上記NAND型フラッシュメモリ100に加え、鍵発行/管理センタ3000から渡されたFKBv (v=1,…,n)等のデータ31を保持する。また、メモリ製造業者Bは、選択部32、33、生成部34、暗号部35を備えている。
(Step S31)
上記構成により、まず、メモリ製造業者Bは、生成部(SecretID Generator)34において、秘密識別情報SecretIDを生成する。
上記構成により、まず、メモリ製造業者Bは、生成部(SecretID Generator)34において、秘密識別情報SecretIDを生成する。
(Step S32)
続いて、データ31を受け取ったメモリ製造業者Bは、vの中から一つの値を選択部32により選択する。更に、選択部32は、前記選択したvに対応するFKeyvを選択する。メモリ製造業者Bは、選択したFKeyvを用いて、生成した秘密識別情報SecretIDを暗号化し、暗号化された秘密識別情報E-SecretIDを生成する。
続いて、データ31を受け取ったメモリ製造業者Bは、vの中から一つの値を選択部32により選択する。更に、選択部32は、前記選択したvに対応するFKeyvを選択する。メモリ製造業者Bは、選択したFKeyvを用いて、生成した秘密識別情報SecretIDを暗号化し、暗号化された秘密識別情報E-SecretIDを生成する。
(Step S33)
続いて、メモリ製造業者Bは、当該vの値をNAND型フラッシュメモリ100のロム領域102へインデックス情報v(index of FKey)として書き込む。
続いて、メモリ製造業者Bは、当該vの値をNAND型フラッシュメモリ100のロム領域102へインデックス情報v(index of FKey)として書き込む。
また、メモリ製造業者Bは、インデックス情報i(index of NKey)の値をNAND型フラッシュメモリ100のロム領域102へ書き込むと共に、NKeyiの値を秘匿領域101へ書き込む。
更に、メモリ製造業者Bは、秘密識別情報SecretIDの値をNAND型フラッシュメモリ100の秘匿領域101へ書き込むと共に、暗号化された秘密識別情報E-SecretIDの値をロム領域102へ書き込む。
以上の動作により、NAND型フラッシュメモリ100の製造時等に所定の秘密情報や鍵管理情報FKBを書き込むことができる(End)。なお、上記各値を書き込む順番は、暗号化された秘密識別情報E-SecretIDは、暗号化処理しないと得られない値であるため、暗号部35による上記暗号化処理後となる。しかし、それ以外の書き込み動作の順序について制約はなく、上述の例以外の順番で書き込んでも良い。
更に、メモリ製造業者Bは、書き込み処理を終えたNAND型フラッシュメモリ100をアセンブリ業者Cに渡す。
このように、本実施形態では、アセンブリ業者Cの出荷前に、インデックス情報v(index of FKey)等が、NAND型フラッシュメモリ100にあらかじめ書き込まれた状態とすることができる。
4−2.FKBをアセンブリ業者が書き込む場合
次に、図15、及び図16を用い、FKBをアセンブリ業者Cが書き込む場合について説明する。ここでも、図16のフローに即して説明する。
次に、図15、及び図16を用い、FKBをアセンブリ業者Cが書き込む場合について説明する。ここでも、図16のフローに即して説明する。
アセンブリ業者Cは、上記メモリ製造業者Bから上記所定の情報v等が書き込まれたNAND型フラッシュメモリ100を受け取る。
そして、例えばSDカード等のように、そのNAND型フラッシュメモリ100を制御するコントローラ200を結合させ、一般ユーザ等向けのメモリカード100を製造する。
アセンブリ業者Cは、上記メモリカード100に加え、鍵発行/管理センタ3000から受け取るデータ(FKBv)51を保持すると共に、選択部52を備える。
アセンブリ業者Cが鍵管理情報FKBvを書き込む処理については、次の通りである。
(Step S35)
まず、アセンブリ業者Cは、鍵管理情報FKBvを鍵発行/管理センタ3000からデータ51として受け取る。この際、データ51の受け渡しには、上述した安全な手段を用いる。
まず、アセンブリ業者Cは、鍵管理情報FKBvを鍵発行/管理センタ3000からデータ51として受け取る。この際、データ51の受け渡しには、上述した安全な手段を用いる。
そして、アセンブリ業者Cは、(コントローラ200を介して)NAND型フラッシュメモリ100のロム領域102に記録されるインデックス情報vの値をデータキャッシュ12等に読み出す。
(Step S36)
続いて、アセンブリ業者Cは、読み出したインデックス情報vの値に対応する鍵管理情報FKBvを選択部52により選択する。
続いて、アセンブリ業者Cは、読み出したインデックス情報vの値に対応する鍵管理情報FKBvを選択部52により選択する。
(Step S37)
続いて、アセンブリ業者Cは、コントローラ200を介して、NAND型フラッシュメモリ100の読み書き可能領域103に選択した鍵管理情報FKBvを書き込む。
続いて、アセンブリ業者Cは、コントローラ200を介して、NAND型フラッシュメモリ100の読み書き可能領域103に選択した鍵管理情報FKBvを書き込む。
<作用効果>
上記のように、第4の実施形態に係る認証装置、被認証装置、及びその認証方法によれば、少なくとも下記(1)乃至(3)の効果が得られる。
上記のように、第4の実施形態に係る認証装置、被認証装置、及びその認証方法によれば、少なくとも下記(1)乃至(3)の効果が得られる。
(1)ホスト装置2000から秘密情報が漏洩した場合であっても、漏洩した情報を用いたNAND型フラッシュメモリ100の秘密情報の不正利用を防止することができる。
ここで、上述した通り、認証装置であるホスト装置2000は、民生機器のような専用ハードウェア装置だけでなく、例えば、PC等で実行可能なプログラムとして提供され、当該ソフトウェアが実質的なホスト装置となる場合がある。一方、被認証装置であるNAND型フラッシュメモリ100は、記録メディアであり、ファームウェアと呼ばれるプログラムが介在する場合であっても、重要な処理や情報はメモリ100中のハードウェア内に秘匿された状態で記憶される。
ここで、上述した通り、認証装置であるホスト装置2000は、民生機器のような専用ハードウェア装置だけでなく、例えば、PC等で実行可能なプログラムとして提供され、当該ソフトウェアが実質的なホスト装置となる場合がある。一方、被認証装置であるNAND型フラッシュメモリ100は、記録メディアであり、ファームウェアと呼ばれるプログラムが介在する場合であっても、重要な処理や情報はメモリ100中のハードウェア内に秘匿された状態で記憶される。
そのため、現実的には、例えば、PC上で実行されるソフトウェアは、記録メディアに比べて耐タンパー性能(攻撃に対する耐性)が低くなってしまうことが懸念される。そのため、耐タンパー性能の低いホスト装置(認証装置)2000を攻撃することで、耐タンパー性の高いNAND型フラッシュメモリ100(被認証装置)に秘匿された秘密情報をも暴露され、耐タンパー性の高い装置に成りすまされることが懸念される。
そこで、第4の実施形態に係る構成及びその認証方式では、上記のように、比較的耐タンパー性の高いNAND型フラッシュメモリ100は、第1鍵情報(NKeyi)から第2鍵情報(HKeyi,j)を生成することができる第1鍵情報(NKeyi)をメモリ100に秘匿する。一方、ホスト装置2000は、第2鍵情報(HKeyi,j)からは第1鍵情報(NKeyi)を生成することができない第2鍵情報(HKeyi,j)のみをメモリ23に秘匿する。
そのため、NAND型フラッシュメモリ100は、ホスト装置2000から受領した定数HCjと自身が秘匿する第1鍵情報(NKeyi)とを用いて、認証装置20が秘匿する第2鍵情報(HKeyi,j)を生成する。NAND型フラッシュメモリ100は、第2鍵情報(HKeyi,j )と乱数RNhとを用いて、セッション鍵SKeyi,jを生成する。
ホスト装置2000は、インデックス情報iにより選択される第2鍵情報(HKeyi,j)と乱数RNhとを用いて、セッション鍵SKeyi,jを生成する。その結果、NAND型フラッシュメモリ100とホスト装置2000とは、同じセッション鍵SKeyi,jを共有する。
このように、本実施形態では、NAND型フラッシュメモリ(被認証装置)100が秘匿する情報の秘密レベルと、ホスト装置(認証装置)が秘匿する情報の秘密レベルとを非対称とすることができる。例えば、本実施形態では、比較的耐タンパー性の高いNAND型フラッシュメモリ100が秘匿する情報の秘密レベルを、比較的耐タンパー性の低いホスト装置2000が秘匿する情報の秘密レベルよりも、より高く設定することができる。
そのため、仮にホスト装置2000が秘匿する情報が漏洩した場合であっても、比較的耐タンパー性の高いNAND型フラッシュメモリ100が秘匿する情報の秘密レベルが更に高いため、漏洩した情報を用いてNAND型フラッシュメモリ100に”成りすますこと”ができない。従って、漏洩した情報を用いたNAND型フラッシュメモリ100の秘密情報の不正利用を防止することができる点で有利である。その結果、例えば、ホスト装置2000から読み出されたID情報が、目的の被認証装置10から読み出した情報であることを確実に判定し、その相手方の不正利用の無効化等が可能となる。
(2)実装化において有利である。
上述した通り、本実施形態のような構成では、比較的大きな回路規模を要求される公開鍵暗号処理やMKB処理のハードウェア実装が困難である等の回路規模上の制約が同時に課せられる環境下である。
上述した通り、本実施形態のような構成では、比較的大きな回路規模を要求される公開鍵暗号処理やMKB処理のハードウェア実装が困難である等の回路規模上の制約が同時に課せられる環境下である。
しかしながら、本実施形態によれば、鍵情報が非対称であるものの比較的大きな回路規模を必要とする公開鍵暗号処理を用いる必要がない。更に、上記のように、ホスト装置(認証装置)2000とNAND型フラッシュメモリ(被認証装置)100とが秘匿する情報の秘密レベルを非対称とすることにより、片方の装置から漏れた情報だけではもう一方の装置に成りすますことができない認証手段を行い、認証装置2000と被認証装置100との間で秘密情報であるセッション鍵SKeyi,jを共有する。
そのため、上記制約が課される厳しい環境下であっても、実装化において有利であると言える。更に、上記のように、メモリシステムを構成するデータ生成回路や暗号化器を同じ処理として共有することにより、回路規模を更に小さくすることも可能である。
(3)製造工程の簡略化、製造コストの低減化に対して有利である。
本実施形態に係るNAND型フラッシュメモリ100は、読み書き可能領域103に、その用途に応じてNAND型フラッシュメモリ100毎に固有(ユニーク)、或いは製造ロット(lot)単位等複数のNAND型フラッシュメモリ100に共通に付される鍵管理情報(FKBv)を備える。更に、ロム領域102に、NAND型フラッシュメモリ100毎に固有に(ユニークに)付される暗号化された秘密識別情報(E-SecretID)を備える。
本実施形態に係るNAND型フラッシュメモリ100は、読み書き可能領域103に、その用途に応じてNAND型フラッシュメモリ100毎に固有(ユニーク)、或いは製造ロット(lot)単位等複数のNAND型フラッシュメモリ100に共通に付される鍵管理情報(FKBv)を備える。更に、ロム領域102に、NAND型フラッシュメモリ100毎に固有に(ユニークに)付される暗号化された秘密識別情報(E-SecretID)を備える。
鍵管理情報(FKBv)を製造ロット単位で共通化させた場合には、NAND型フラッシュメモリ100毎に記録しなければならない固有(ユニーク)な情報を、暗号化された秘密識別情報(E-SecretID)のようにデータサイズの小さいデータだけに減らすことができる。
換言すれば、共通に付される鍵管理情報(FKBv)と固有の暗号化秘密識別情報(E-SecretID)とに分け、2段階に暗号化することにより、NAND型フラッシュメモリ100に書き込むべき固有の暗号化秘密識別情報(E-SecretID)のデータサイズを抑えることができるものである。
換言すれば、共通に付される鍵管理情報(FKBv)と固有の暗号化秘密識別情報(E-SecretID)とに分け、2段階に暗号化することにより、NAND型フラッシュメモリ100に書き込むべき固有の暗号化秘密識別情報(E-SecretID)のデータサイズを抑えることができるものである。
例えば、上記図13、図14で示したように、NAND型フラッシュメモリの製造時等において、メモリ製造業者Bは、鍵発行/管理センタ3000から受け取ったNAND型フラッシュメモリ100毎に固有な情報(E-SecretID)を書き込む。
そして、NAND型フラッシュメモリ100に共通に付される暗号化された鍵管理情報(FKBv)については、アセンブリ業者C等がNAND型フラッシュメモリ100に共通に書き込むことができる。例えば、上記図15、図16で示したように、アセンブリ業者Cが、上記鍵発行/管理センタ3000から受け取ったNAND型フラッシュメモリ100毎に共通な鍵管理情報FKBvを書き込む。そのため、メモリ製造業者Bが書き込まなければならないNAND型フラッシュメモリ100毎に固有(ユニーク)なデータのサイズを低減することが可能となる。
ここで、NAND型フラッシュメモリ100の製造時等に、NAND型フラッシュメモリ100に固有かつデータサイズの大きい情報を書き込む場合、製造工程が煩雑となり、製造時間が長期化し、製造コストが増大してしまう。しかしながら、本実施形態に係る構成及び方法によれば、共通に付される鍵管理情報FKBvと固有の暗号化秘密識別情報(E-SecretID)とに分けて2段階に暗号化することにより、このような煩雑な製造工程は不要となるため、製造工程を簡略化でき、製造コストを低減できる点で有利である。また、製造時間を短縮化できるため、消費電力を低減できる点でもメリットがある。
また、ホスト装置2000の側においても、秘匿情報FKeyを用いてNAND型フラッシュメモリに固有な値であるSecretIDを暗号化してE-SecretIDを生成し、更に、IDKeykを用いてFKeyを暗号化して鍵管理情報FKBを生成するという構成を取ることにより、NAND型フラッシュメモリ100と同様のメリットを享受することが可能となる。
[第4の実施形態の変形例1(FKBを後からダウンロードして書き込む場合)]
次に、図17を参照して、変形例1に係る認証装置、被認証装置、及びその認証方法について説明する。この説明において、上記実施形態と重複する部分の説明については、省略する。
次に、図17を参照して、変形例1に係る認証装置、被認証装置、及びその認証方法について説明する。この説明において、上記実施形態と重複する部分の説明については、省略する。
<FKBの書き込みについて>
暗号化FKey束(FKB)の書き込みについて、説明する。
本変形例1における処理は、暗号化FKey束(FKB)が、NAND型フラッシュメモリ100の製造時に書き込まれる場合等には、特に必要のない処理である。しかし、NAND型フラッシュメモリ100とコントローラ200等が結合されて、例えば、SDカード等のメモリカード製品として一般ユーザが入手し、カード利用時に市場において後から書き込まれる場合等には、必要となるFKBの書き込み処理に関するものである。
暗号化FKey束(FKB)の書き込みについて、説明する。
本変形例1における処理は、暗号化FKey束(FKB)が、NAND型フラッシュメモリ100の製造時に書き込まれる場合等には、特に必要のない処理である。しかし、NAND型フラッシュメモリ100とコントローラ200等が結合されて、例えば、SDカード等のメモリカード製品として一般ユーザが入手し、カード利用時に市場において後から書き込まれる場合等には、必要となるFKBの書き込み処理に関するものである。
図17では、上記のように鍵管理情報FKBが未記録のメモリカード100に記録されたデータの記録状態を示している。
図示するように、NAND型フラッシュメモリ100では、秘密情報NKeyiと秘密識別情報SecretIDとが秘匿領域101に記録される。前記秘密情報NKeyiを特定するために必要なインデックス情報i、鍵管理情報FKBを特定するために必要となるインデックス情報v、及びインデックス情報vで指定されたFKeyvによって暗号化されたSecretID(E-SecretID)がロム領域102に記録される。
図示するように、NAND型フラッシュメモリ100では、秘密情報NKeyiと秘密識別情報SecretIDとが秘匿領域101に記録される。前記秘密情報NKeyiを特定するために必要なインデックス情報i、鍵管理情報FKBを特定するために必要となるインデックス情報v、及びインデックス情報vで指定されたFKeyvによって暗号化されたSecretID(E-SecretID)がロム領域102に記録される。
読み書き可能領域103には、暗号化FKey束である鍵管理情報FKBが書き込まれていない点で、上記第4の実施形態と相違する。
次に、図18を用い、上記のように鍵管理情報FKBが未記録状態のメモリカード100に、サーバからFKBをダウンロードして記録する場合について説明する。
図示するように、この場合には、NAND型フラッシュメモリ100に、必要に応じてデータキャッシュ12が配置される。
本実施形態に係るサーバ70は、FKBデータベース(Set of FKBi ’s (i=1,…,x))71及びインデックス情報vから鍵管理情報FKBvを選択するための選択部72を備える。
また、サーバ70とメモリシステム(NAND型フラッシュメモリ100、コントローラ200及びホスト装置2000からなるシステム)とは、インターネット60を介して電気的に通信接続される。
なお、ホスト装置2000は、FKBの新規書き込みが必要かどうかを判定し、必要に応じてFKBをサーバ70に要求する機能を備える。
<FKB書き込みフロー>
次に、図19に沿って、暗号化FKeyID束(FKB)をサーバ70からダウンロードしてNAND型フラッシュメモリ10に書き込むフローについて説明する。
次に、図19に沿って、暗号化FKeyID束(FKB)をサーバ70からダウンロードしてNAND型フラッシュメモリ10に書き込むフローについて説明する。
(Step S41)
図示するように、まず、ホスト装置2000が、FKBダウンロードが必要と判定したことにより、FKB書き込みが開始(Start)され、ホスト装置2000はサーバ70に対してFKB要求を出す。
図示するように、まず、ホスト装置2000が、FKBダウンロードが必要と判定したことにより、FKB書き込みが開始(Start)され、ホスト装置2000はサーバ70に対してFKB要求を出す。
(Step S42)
続いて、サーバ70は、NAND型フラッシュメモリ100に対して、FKeyvを特定するために必要となるインデックス情報vを要求する。
続いて、サーバ70は、NAND型フラッシュメモリ100に対して、FKeyvを特定するために必要となるインデックス情報vを要求する。
(Step S43)
続いて、NAND型フラッシュメモリ100は、ロム領域102からvを読み出し、vはサーバ70に送出される。
続いて、NAND型フラッシュメモリ100は、ロム領域102からvを読み出し、vはサーバ70に送出される。
(Step S44)
続いて、サーバ70は、受信したvに対応するFKBvをFKBデータベース71の中から選択する。
続いて、サーバ70は、受信したvに対応するFKBvをFKBデータベース71の中から選択する。
(Step S45)
続いて、サーバ70は、選択したFKBvをNAND型フラッシュメモリ100に送出する。
続いて、サーバ70は、選択したFKBvをNAND型フラッシュメモリ100に送出する。
(Step S46)
続いて、NAND型フラッシュメモリ100は、受信したFKBvを読み書き可能領域103に書き込み、記録する。
続いて、NAND型フラッシュメモリ100は、受信したFKBvを読み書き可能領域103に書き込み、記録する。
以上の動作により、暗号化FKey束(FKB)ダウンロードフローを終了する(End)。
その他の構成、動作等に関しては、上記第4の実施形態と実質的に同様である。
<作用効果>
変形例1に係る認証装置、被認証装置及び認証方法によれば、少なくとも第4の実施形態と同様の作用効果(1)乃至(3)を得ることができる。
変形例1に係る認証装置、被認証装置及び認証方法によれば、少なくとも第4の実施形態と同様の作用効果(1)乃至(3)を得ることができる。
更に、変形例1によれば、後からFKBを書き込む場合においても、必要に応じて本実施形態を適用することが可能である。
[第5の実施形態]
次に、図20Aを参照して、第5の実施形態について説明する。この説明において、上記第4の実施形態と重複する部分の説明については、省略する。
次に、図20Aを参照して、第5の実施形態について説明する。この説明において、上記第4の実施形態と重複する部分の説明については、省略する。
ここで、第4の実施形態では、ホスト装置2000によるNAND型フラッシュメモリ100の認証が成功した後、両者は秘密識別情報SecretIDを共有している。認証後の処理として、例えば、ホスト装置2000がコンテンツを暗号化し、NAND型フラッシュメモリ100へ当該暗号化コンテンツを書き込むこと等が挙げられるが、この際に、共有した秘密識別情報SecretIDを用いることが考えられる。
本実施形態は、そのような処理においても秘密識別情報SecretIDを保護することを目的とするものである。そのため、この説明においては、上記第4の実施形態と重複する部分の説明については省略する。
<メモリシステム>
第5の実施形態に係るメモリシステムは、図20Aのように示される。
第5の実施形態に係るメモリシステムは、図20Aのように示される。
図20Aに示すように、本実施形態に係るメモリシステムは、一方向性変換器(Oneway)27B、スイッチ部29、及び対象となるコンテンツを取り扱う全てのホスト装置2000が共通に保持している情報(ASSV)を更に備える点で、上記第4の実施形態と相違する。
スイッチ部29は、データ検証部(Verify)28において一方向性変換識別情報Oneway-IDの両方の値が一致した場合(OK)の判定結果が制御信号として入力されると、信号経路をオンとさせ、秘密識別情報SecretIDを一方向変換部27Bに出力する。
一方向変換部(Oneway)27Bは、スイッチ部29から入力される秘密識別情報SecretIDを、対象となるコンテンツを取り扱う全てのホスト装置が共通に保持している情報(ASSV)を用いて一方向性関数により変換し、一方向性変換識別情報EMID(EMID=Oneway(SecretID, ASSV))を生成する。
このように第5の実施形態では、ホスト装置2000で秘密識別情報SecretIDが検証された後に、ホスト装置2000が、対象となる全てのホスト装置が共通に保持している情報(ASSV)を用いて秘密識別情報SecretIDを変換し、一方向性変換識別情報EMIDを計算する。そのため、ホスト装置2000は、秘密識別情報SecretIDの代わりに、一方向性変換識別情報EMIDを用いて、コンテンツ暗号化等の処理を行うことができる。
その他の構成、動作等は、上記第4の実施形態と実質的に同様であるため、詳細な説明については省略する。
<作用効果>
第5の実施形態に係る認証装置、被認証装置及び認証方法によれば、少なくとも第1の実施形態と同様の作用効果(1)乃至(3)を得ることができる。
第5の実施形態に係る認証装置、被認証装置及び認証方法によれば、少なくとも第1の実施形態と同様の作用効果(1)乃至(3)を得ることができる。
更に、第5の実施形態では、ホスト装置2000は、一方向性変換器(Oneway)27B、スイッチ部29、及び対象となるコンテンツを取り扱う全てのホスト装置が共通に保持している情報(ASSV)を更に備える点で、上記4の実施形態と相違する。
上記構成によれば、ホスト装置2000で秘密認識情報SecretIDが検証された後に、ホスト装置2000が、対象となる全てのホスト装置が共通に保持している情報(ASSV)を用いて秘密識別情報SecretIDを変換し、一方向性変換識別情報EMIDを計算する。そのため、ホスト装置2000は、秘密識別情報SecretIDの代わりに、一方向性変換識別情報EMIDを用いて、コンテンツ暗号化等の処理を行うことができる。
その結果、ここでは図示を省略するが、後工程におけるコンテンツ暗号化等おいて一方向性変換識別情報EMIDを用いることができ、当該後工程において秘密識別情報SecretIDが漏洩することを防止することが可能となり、秘密識別情報SecretIDの秘匿性を強化することができる点で、更に有利である。詳細については、後述する。
[第5の実施形態の変形例1]
図20B及び図20Cを参照して、第5の実施形態の変形例1について説明する。この説明において、上記第5の実施形態と重複する部分の説明については、省略する。
図20B及び図20Cを参照して、第5の実施形態の変形例1について説明する。この説明において、上記第5の実施形態と重複する部分の説明については、省略する。
変形例1では、ホスト装置2000によるNAND型フラッシュメモリ100の認証動作においてホスト装置2000が有するデータ、ホスト装置2000が実施する処理、及びNAND型フラッシュメモリ100が有するデータが、第5の実施の形態と異なっている。
すなわち、第5の実施形態では、ホスト装置2000が有するメモリ23は、インデックス情報k、秘密情報IDKeyk、秘密情報セットHKeyi,j (i=1,…,m。なお、jは当該HKeyi,jにおいては固定の値である)、及び定数HCjを記録している。そして、ホスト装置20は、少なくとも秘密情報IDKeyk及び秘密情報セットHKeyi,j (i=1,…,m)をホスト装置2000の外部に対して秘匿している。これに対し変形例1では、秘密情報IDKeyk及びインデックス情報kに代えて、秘匿情報FKeyv(v=1,…,n)(Set of Fkeys)を有する。すなわち、第5の実施形態においてホスト装置2000が秘密情報IDKeyk及びFKBvより導出していたFKeyv自身を、メモリ23に格納している。したがって、ホスト装置2000は秘匿情報FKeyvを導出するためのFKBvを読み出す手段及びProcess FKBを行う手段を有さなくともよい。それに代わり、ホスト装置2000はvを読み出す手段及びvに応じてFKeyvを選択・利用する手段が必要となる。また、NAND型フラッシュメモリ100もFKBvを有する必要はない。
第5の実施形態(図20A)を採用するか、それとも変形例1(図20B)を採用するかは、FKeyvにおけるvの種類数、ホスト装置20の処理能力、ホスト装置2000の種類数、ホスト装置2000のメモリサイズ、ホスト装置2000の秘匿情報更新機能の有無、NAND型フラッシュメモリ100に記録可能なFKBvのサイズなどによって選択すればよい。
例えば、変形例1を選定する場合の例としては以下が挙げられる。ホスト装置2000の種類数が増えることはFKBvのサイズの増加につながり、ある態様のNAND型フラッシュメモリ100においては当該FKBvを有することが困難な場合が考えられる。また、ホスト装置2000が秘匿情報更新機能を有している場合、FKBvとは異なる経路にてFKeyvを配布・更新させることができ、FKBvにて不正ホスト装置2000を無効化せずとも、FKeyvの配布を当該ホスト装置2000に対して停止することで変えることも可能である。また、一般に秘密情報IDKeykとFKeyvの総量を比較した場合、想定ホスト種類数が増える場合は秘密情報IDKeykの総量が増大するため、ホスト装置2000のメモリサイズを考慮すると変形例1が望ましい。
他にも、ホスト装置2000をそもそも無効化する必要のない場合、例えばNAND型フラッシュメモリ100を搭載した記録メディアとホスト装置2000が同一プラットフォーム管理者によって統一的に運用されている場合にはFKBvを用いる必要はなく、更にはFKeyvも更新する必要はないケースも考えられる。例えばゲームコンテンツ記録メディアやゲーム装置などが単一メーカにより統一的に運用されている場合が例である。尚、変形例1は第1〜第3の実施形態及び後述する他の実施形態に対しても適用可能である。
ホスト装置2000とNAND型フラッシュメモリ100との間の情報授受がネットワーク経由でなされ、ホスト装置2000がオンライン環境にある場合、この変形例1が好適である。例えば、ホスト装置2000が認証サーバの場合である。ネットワーク経由で情報授受が行われる場合には、情報量が少ない方が望ましく、FKBvの授受が不要な変形例1が適している。更にホスト装置2000が認証サーバであれば、定期的にFKeyvを更新することも可能であるため、その点でも問題はない。
なお、本変形例1に限らず、本出願におけるホスト装置の態様は任意であり、DVDプレイヤーなどの態様に類似したコンテンツ再生装置、記録装置、及び認証装置であってもよいし、ゲーム装置であってもよい。また、ホスト装置は、ソフトウェア、ハードウェア、もしくはその両方で構成されていてもよい。また、ホスト装置はサーバであってもよい。更に、認証に要するデータ授受の態様も任意であり、ケーブル接続、ワイヤレスネットワーク接続、ローカルネットワーク接続、インターネット接続、イントラネット接続など様々な構成を採用することができる。
<認証フロー>
次に、図20Cに沿って、第5の実施形態の変形例1に係るメモリシステムの認証フローについて説明する。
次に、図20Cに沿って、第5の実施形態の変形例1に係るメモリシステムの認証フローについて説明する。
(Step S11’)
認証を開始(Start)すると、ホスト装置2000は、NAND型フラッシュメモリ100からインデックス情報v及び暗号化秘密識別情報SecretID(E-SecretID)を読み出す。
認証を開始(Start)すると、ホスト装置2000は、NAND型フラッシュメモリ100からインデックス情報v及び暗号化秘密識別情報SecretID(E-SecretID)を読み出す。
(Step S12’)
続いて、ホスト装置2000は、読み出したインデックス情報vからデータ選択部(Select1)22によりデータ選択処理を行い、ホスト装置2000が秘匿している秘匿情報FKeyv(v=1,…,n)より、秘匿情報FKeyを得る。更に、ホスト装置2000は、得られた秘匿情報FKeyを用いて、NAND型フラッシュメモリ100から読み出した暗号化秘密識別情報E-SecretIDを復号することにより、秘密識別情報SecretIDを得る。
続いて、ホスト装置2000は、読み出したインデックス情報vからデータ選択部(Select1)22によりデータ選択処理を行い、ホスト装置2000が秘匿している秘匿情報FKeyv(v=1,…,n)より、秘匿情報FKeyを得る。更に、ホスト装置2000は、得られた秘匿情報FKeyを用いて、NAND型フラッシュメモリ100から読み出した暗号化秘密識別情報E-SecretIDを復号することにより、秘密識別情報SecretIDを得る。
Step13〜Step24の内容は、図10のStep S13〜Step 24と同一である。
Step24において、一方向性変換識別情報Oneway-IDの両方の値が一致した場合(OK)には、復号部21で得られた秘密識別情報SecretIDが正規のIDであると判定して、以降の処理に秘密識別情報SecretIDを引き渡す。すなわち、秘密識別情報SecretIDとASSVを一方向性変換処理によってEMIDの計算処理を行う。一方、不一致の場合(NG)には、秘密識別情報SecretIDが不正なIDであると判定し、その旨を以降の処理に出力する。
以上の動作により、第5の実施形態の変形例1に係る認証フローを終了する(End)。
<作用効果>
変形例1に係る認証装置、被認証装置及び認証方法によれば、少なくとも第4の実施形態と同様の作用効果(1)乃至(2)および第5の実施形態によって追加されたものと同様の作用効果を得ることができる。
更に、ホスト装置2000及びNAND型フラッシュメモリ100に対する実装負荷をより低減できる 。
変形例1に係る認証装置、被認証装置及び認証方法によれば、少なくとも第4の実施形態と同様の作用効果(1)乃至(2)および第5の実施形態によって追加されたものと同様の作用効果を得ることができる。
更に、ホスト装置2000及びNAND型フラッシュメモリ100に対する実装負荷をより低減できる 。
[第5の実施形態の変形例2]
次に、第5の実施形態の変形例2について図20D及び図20Eを参照して説明する。この説明において、上記第5の実施形態の変形例1と重複する部分の説明については、省略する。
次に、第5の実施形態の変形例2について図20D及び図20Eを参照して説明する。この説明において、上記第5の実施形態の変形例1と重複する部分の説明については、省略する。
変形例2では、ホスト装置2000が有するデータ、ホスト装置20が実施する処理、及びNAND型フラッシュメモリ100が有するデータ、NAND型フラッシュメモリ100が有するデータのアクセス属性に差異がある。変形例1では、ホスト装置2000が有するメモリ23は、秘匿情報FKeyv(v=1,…,n)、秘密情報セットHKeyi,j (i=1,…,m。なお、jは当該HKeyi,jにおいては固定の値である)、及び定数HCjを記録し、少なくとも秘匿情報FKeyv(v=1,…,n)及び秘密情報セットHKeyi,j (i=1,…,m)をホスト装置2000の外部に対して秘匿している。これに対し、変形例2ではメモリ23は秘匿情報FKeyv(v=1,…,n)を有していない。すなわち、ホスト装置2000はvを読み出す手段及びvに応じてFKeyvを選択・利用する手段を持つ必要がない。
それに代えて、ホスト装置2000は秘密識別情報SecretIDを直接読み出す機能を有している。NAND型フラッシュメモリ100はvを有する必要はなく、代わりに秘密識別情報SecretIDをロム領域102などのホスト装置2000が読み出し可能に有する必要がある。
変形例2は秘密識別情報SecretIDに対して秘密属性を設ける必要がない場合、すなわちNAND型フラッシュメモリ100が有する固有情報であるSecretIDの固有性のみを担保する場合に有用である。第5の実施形態及び変形例1と比較して容易にわかるように、ホスト装置2000及びNAND型フラッシュメモリ100が有すべき処理機能及びデータは大きく削減されている。これは、秘密識別情報SecretIDに求める特性が固有性のみを担保する場合には非常に有用であると言える。
<認証フロー>
次に、図20Eに沿って、第5の実施形態の変形例2に係るメモリシステムの認証フローについて説明する。
次に、図20Eに沿って、第5の実施形態の変形例2に係るメモリシステムの認証フローについて説明する。
(Step S11’‘)
認証を開始(Start)すると、ホスト装置2000は、NAND型フラッシュメモリ100から暗号化秘密識別情報SecretID(E-SecretID)を読み出す。
認証を開始(Start)すると、ホスト装置2000は、NAND型フラッシュメモリ100から暗号化秘密識別情報SecretID(E-SecretID)を読み出す。
Step S13〜S24の内容は、図10のStep S13〜S24の内容と同一である。
Step24において、一方向性変換識別情報Oneway-IDの両方の値が一致した場合(OK)には、読み出した秘密識別情報SecretIDが正規のIDであると判定して、以降の処理に秘密識別情報SecretIDを引き渡す。すなわち、秘密識別情報SecretIDとASSVを一方向性変換処理によってEMIDの計算処理を行う。一方、不一致の場合(NG)には、秘密識別情報SecretIDが不正なIDであると判定し、その旨を以降の処理に出力する。
以上の動作により、第5の実施形態の変形例2に係る認証フローを終了する(End)。
<作用効果>
変形例2に係る認証装置、被認証装置及び認証方法によれば、少なくとも第4の実施形態と同様の作用効果(1)乃至(2)および第5の実施形態によって追加されたものと同様の作用効果を得ることができる。更に、ホスト装置2000及びNAND型フラッシュメモリ100に対する実装負荷をより低減できる。
変形例2に係る認証装置、被認証装置及び認証方法によれば、少なくとも第4の実施形態と同様の作用効果(1)乃至(2)および第5の実施形態によって追加されたものと同様の作用効果を得ることができる。更に、ホスト装置2000及びNAND型フラッシュメモリ100に対する実装負荷をより低減できる。
[第6の実施形態]
次に、図21を参照して第6の実施形態について説明する。第6の実施形態は、NAND型フラッシュメモリ100が、ホスト装置2000を認証する一例に関するものである。本実施形態では、NAND型フラッシュメモリ100に記録されている秘密識別情報SecretIDを第三者から秘匿した状態で読み出すと共に、NAND型フラッシュメモリ100から読み出されたデータであることを確実に判定する方法、また読み出されたデータに基づいてNAND型フラッシュメモリ100がホスト装置2000を検査する方法を示すものである。
次に、図21を参照して第6の実施形態について説明する。第6の実施形態は、NAND型フラッシュメモリ100が、ホスト装置2000を認証する一例に関するものである。本実施形態では、NAND型フラッシュメモリ100に記録されている秘密識別情報SecretIDを第三者から秘匿した状態で読み出すと共に、NAND型フラッシュメモリ100から読み出されたデータであることを確実に判定する方法、また読み出されたデータに基づいてNAND型フラッシュメモリ100がホスト装置2000を検査する方法を示すものである。
この説明において、上記実施形態と重複する部分の説明については、省略する。
<メモリシステム>
図21を用い、第6の実施形態に係るメモリシステムについて説明する。図示するように、本実施形態では、NAND型フラッシュメモリ100が、機能コントロール部18、乱数生成器24n、及びデータ検証部28nを更に備える。また、ホスト装置2000が、機能呼び出し部30を更に備える点で、上記第4の実施形態と相違する。
図21を用い、第6の実施形態に係るメモリシステムについて説明する。図示するように、本実施形態では、NAND型フラッシュメモリ100が、機能コントロール部18、乱数生成器24n、及びデータ検証部28nを更に備える。また、ホスト装置2000が、機能呼び出し部30を更に備える点で、上記第4の実施形態と相違する。
乱数生成部(RNG: Random Number Generator)24nは、認証に用いる乱数RNnを生成する。
データ検証部(Verify)28nは、ホスト装置2000から受信した一方向性変換識別情報Oneway-IDとNAND型フラッシュメモリ100装置内の一方向性変換器15から得られた一方向性変換識別情報を比較して判定する。両方の値が一致した場合にはホスト装置2000が正しいOneway-IDを得ている(OK)、不一致の場合には正しいOneway-IDを得ていない(NG)と判定する。
機能コントロール部(Function Control Unit)18は、ホスト装置2000が正しいOneway-IDを得た場合(OK)にのみ、NAND型フラッシュメモリ100の所定機能をホスト装置2000に対して利用可能とするように、所定機能のイネーブルをメモリ100に対して行う。また、ホスト装置2000から受領した定数HCjを機能コントロール部18に入力させ、定数HCjに応じて所定機能の制御を実施してもよい。ここで、所定機能については別途後述する。
機能呼び出し部30は、ホスト装置2000が生成した一方向性変換識別情報Oneway-IDの正当性をNAND型フラッシュメモリ100が確認したことを示すアクセス許可情報(AccessPermission)をホスト装置2000が受領すると、NAND型フラッシュメモリ100の所定機能を呼びだすための処理を行う。
<認証フロー>
次に、図22に沿って、第6の実施形態に係るメモリシステムの認証フローについて説明する。
次に、図22に沿って、第6の実施形態に係るメモリシステムの認証フローについて説明する。
(Step S11)−(Step S14)
図示するように、まず認証開始(Start)から上記ステップS11−S14は、第4の実施形態と同様の処理を行う。
図示するように、まず認証開始(Start)から上記ステップS11−S14は、第4の実施形態と同様の処理を行う。
(Step S51)
続いて、ホスト装置2000は、インデック情報iを受け取ると、乱数発生要求(Request RNn)をNAND型フラッシュメモリ100に対して送出する。
続いて、ホスト装置2000は、インデック情報iを受け取ると、乱数発生要求(Request RNn)をNAND型フラッシュメモリ100に対して送出する。
(Step S52)
続いて、NAND型フラッシュメモリ100は、上記要求を受け、乱数生成部24nにより乱数RNnを生成する。生成された乱数RNnは、ホスト装置2000に送出される。
続いて、NAND型フラッシュメモリ100は、上記要求を受け、乱数生成部24nにより乱数RNnを生成する。生成された乱数RNnは、ホスト装置2000に送出される。
(Step S21)−(Step S23)
続いて、ホスト装置2000は、第4の実施形態と同様のステップS21−S23を行う。
続いて、ホスト装置2000は、第4の実施形態と同様のステップS21−S23を行う。
(Step S53)
続いて、ホスト装置2000は、NAND型フラッシュメモリ100に対して、認証要求(Request authentication)を行い、定数HCj、及び一方向性変換識別情報Oneway-IDを送出する。
続いて、ホスト装置2000は、NAND型フラッシュメモリ100に対して、認証要求(Request authentication)を行い、定数HCj、及び一方向性変換識別情報Oneway-IDを送出する。
(Step S17)−(Step S20)
上記同様のステップS17−S19に続いて、S20の際に、NAND型フラッシュメモリ100は、生成したセッション鍵SKeyi,jを用いて、秘密識別情報SecretIDに上記一方向性変換器15における一方向性変換処理を行い、一方向性変換識別情報Oneway-ID (=Oneway(SKeyi,j, SecretID))を生成する。
上記同様のステップS17−S19に続いて、S20の際に、NAND型フラッシュメモリ100は、生成したセッション鍵SKeyi,jを用いて、秘密識別情報SecretIDに上記一方向性変換器15における一方向性変換処理を行い、一方向性変換識別情報Oneway-ID (=Oneway(SKeyi,j, SecretID))を生成する。
(Step S54)
続いて、NAND型フラッシュメモリ100は、受信した一方向性変換識別情報Oneway-IDと、自身が生成した一方向性変換識別情報が一致することを確認する。一致した場合(OK)には前記SecretIDが正規のIDであると判定し、不一致の場合(NG)には前記SecretIDが不正なIDであると判定し、判定結果をホスト装置2000に返送するとともに、所定機能の呼び出し受付を許可(Permission)する。
続いて、NAND型フラッシュメモリ100は、受信した一方向性変換識別情報Oneway-IDと、自身が生成した一方向性変換識別情報が一致することを確認する。一致した場合(OK)には前記SecretIDが正規のIDであると判定し、不一致の場合(NG)には前記SecretIDが不正なIDであると判定し、判定結果をホスト装置2000に返送するとともに、所定機能の呼び出し受付を許可(Permission)する。
(Step S55)
続いて、NAND型フラッシュメモリ100は、上記S54の際の判定結果が一致した場合(OK)に、機能コントロール部18において、NAND型フラッシュメモリ100の所定機能をホスト装置2000に対して利用可能とするように、所定機能のイネーブル(有効化)を行う。
続いて、NAND型フラッシュメモリ100は、上記S54の際の判定結果が一致した場合(OK)に、機能コントロール部18において、NAND型フラッシュメモリ100の所定機能をホスト装置2000に対して利用可能とするように、所定機能のイネーブル(有効化)を行う。
(Step S56)
続いて、ホスト装置2000は、機能呼び出し部30において、ホスト装置2000が生成した一方向性変換識別情報Oneway-IDの正当性をNAND型フラッシュメモリ100が確認したことを示すアクセス許可情報(Access Permission)をホスト装置2000が受領すると、NAND型フラッシュメモリ100の所定機能を呼びだすための命令を返信する。
続いて、ホスト装置2000は、機能呼び出し部30において、ホスト装置2000が生成した一方向性変換識別情報Oneway-IDの正当性をNAND型フラッシュメモリ100が確認したことを示すアクセス許可情報(Access Permission)をホスト装置2000が受領すると、NAND型フラッシュメモリ100の所定機能を呼びだすための命令を返信する。
(Step S57)
続いて、NAND型フラッシュメモリ100は、機能の呼び出しを受け、機能コントロール部18において、ホスト装置2000から受領した機能呼び出し命令に従った処理を行い、処理結果のステータス(Status)を返送する。
続いて、NAND型フラッシュメモリ100は、機能の呼び出しを受け、機能コントロール部18において、ホスト装置2000から受領した機能呼び出し命令に従った処理を行い、処理結果のステータス(Status)を返送する。
なお、この際、ホスト装置2000から受領した定数HCjを機能コントロール部18に入力させ、定数HCjに応じて所定機能の制御を実施してもよい。所定機能については別途後述する。
<作用効果>
第6の実施形態に係る認証装置、被認証装置及び認証方法によれば、少なくとも第4の実施形態と同様の作用効果(1)乃至(3)を得ることができる。更に、少なくとも下記の作用効果(4)及び(5)を得ることが可能である。
第6の実施形態に係る認証装置、被認証装置及び認証方法によれば、少なくとも第4の実施形態と同様の作用効果(1)乃至(3)を得ることができる。更に、少なくとも下記の作用効果(4)及び(5)を得ることが可能である。
(4)NAND型フラッシュメモリ100が、ホスト装置2000を認証できる。
第6の実施形態では、NAND型フラッシュメモリ100が、機能制御部18、乱数生成器24n、及びデータ検証部28nを更に備える。また、ホスト装置2000が、機能呼び出し部30を更に備える点で、上記第4の実施形態と相違する。
そのため、上記構成によれば、NAND型フラッシュメモリ100に対し、ホスト装置2000がアクセスする際に、当該ホスト装置2000が信頼に足る場合にのみ、NAND型フラッシュメモリ100は所定の機能を提供する等の認証機能の制御が可能となる。
このように、本実施形態によれば、必要に応じて、通常、被認証装置となる場合が多いNAND型フラッシュメモリ等の記録メディアが、逆にホスト装置2000を認証できる点で有利である。
(5)認証したホスト装置2000の固有情報(定数HCj等)に応じて、所定の機能を提供するか否かを更に制御するような機構を設けることが可能となる点で有利である。所定の機能の詳細については、後述する。
[第7の実施形態(相互認証)]
次に、図23を参照して、第7の実施形態について説明する。第7の実施形態は、NAND型フラッシュメモリ100と、ホスト装置2000とがそれぞれ相互に認証し合う一例に関するものである。
次に、図23を参照して、第7の実施形態について説明する。第7の実施形態は、NAND型フラッシュメモリ100と、ホスト装置2000とがそれぞれ相互に認証し合う一例に関するものである。
この説明において、上記実施形態と重複する部分の説明については、省略する。
<メモリシステム>
図23を用い、第7の実施形態に係るメモリシステムについて説明する。図示するように、本実施形態では、上記第6の実施形態に係るメモリシステムと第4の実施形態に係るメモリシステムとを実質的に組み合わせた構成を備える。
図23を用い、第7の実施形態に係るメモリシステムについて説明する。図示するように、本実施形態では、上記第6の実施形態に係るメモリシステムと第4の実施形態に係るメモリシステムとを実質的に組み合わせた構成を備える。
より具体的には、NAND型フラッシュメモリ100、ホスト装置2000が、乱数発生部24n、24h、生成部14−2、26−2、一方向性変換器15−2、26−2、データ検証部28n、28hを備える。更に、ホスト装置2000が、スイッチ部29Bを更に備える点で、上記第6の実施形態と相違する。
上記各構成の動作については、上記実施形態と同様である。
<認証フロー>
次に、図24に沿って、第7の実施形態に係るメモリシステムの認証フローについて説明する。本実施形態に係る認証フローは、原則的には、上記第4の実施形態に係る認証動作(ホスト装置がNAND型フラッシュメモリを認証する)を行った後、上記第6の実施形態に係る認証動作(NAND型フラッシュメモリがホスト装置を認証する)を行うものである。
次に、図24に沿って、第7の実施形態に係るメモリシステムの認証フローについて説明する。本実施形態に係る認証フローは、原則的には、上記第4の実施形態に係る認証動作(ホスト装置がNAND型フラッシュメモリを認証する)を行った後、上記第6の実施形態に係る認証動作(NAND型フラッシュメモリがホスト装置を認証する)を行うものである。
(Step S11)−(Step S24)
図示するように、まず認証開始(Start)すると、上記第4の実施形態と同様のステップS11−S24を行い、ホスト装置2000がNAND型フラッシュメモリ100の認証を行う。
図示するように、まず認証開始(Start)すると、上記第4の実施形態と同様のステップS11−S24を行い、ホスト装置2000がNAND型フラッシュメモリ100の認証を行う。
この際、乱数生成部24hから生成される乱数RNhを用いて、同様の認証を行う。
(Step S51)−(Step S70)
続いて、上記ステップS24の際の検証結果が一致した場合(OK)、NAND型フラッシュメモリ100の認証が完了したと判断する。
続いて、上記ステップS24の際の検証結果が一致した場合(OK)、NAND型フラッシュメモリ100の認証が完了したと判断する。
続いて、上記第6の実施形態と同様のステップS51−S70を行い、NAND型フラッシュメモリ100がホスト装置2000の認証を行う。
この際、乱数生成部24nから生成される乱数RNnを用いて、同様の認証を行う。
以上のステップにより、第7の実施形態に係る認証動作を終了する(End)。
<機能制御の構成例>
次に、図25を用い、機能制御の構成例について説明する。
次に、図25を用い、機能制御の構成例について説明する。
ここで、機能制御とは、NAND型フラッシュメモリ100が認証装置であり、ホスト装置2000が被認証装置である場合、すなわちNAND型フラッシュメモリ100がホスト装置2000を認証し、認証結果に基づいてホスト装置2000に対して所定機能を提供する上記第6、第7の実施形態に係る所定機能の制御方法をいう。
図示する機能制御の構成は、後述するようにNAND型フラッシュメモリ100がそれぞれ備えるものである。機能制御は、認証回路107に備える機能コントロール部18、パラメータレジスタ89、及びシーケンス制御回路88を備える。
認証回路107内に含まれる上記機能コントロール部(Function Control Unit)18は、認証結果、また必要に応じたホスト装置2000の固有情報(定数HCj等)に基づき、ホスト装置2000に対して所定機能を提供するための機能制御をおこなう。機能コントロール部(Function Control Unit)18は、パラメータレジスタ89に含まれる制御パラメータ890を、ホスト装置2000の認証結果や固有情報に基づき、更新を行う。
パラメータレジスタ89が有する制御パラメータ890には、一つ以上のアクセス許可情報(#0、#1、、、#3)が含まれる。例えば、アクセス許可情報#0には、ブロックアドレス、ページアドレス、読み出し属性、書き込み属性、消去属性、固有情報等が含まれる。ここで、ブロックアドレスは、当該ブロックアドレスのメモリセルアレイ11に対する制御を示す。ページアドレスは、当該ページアドレスのメモリセルアレイ11に対する制御を示す。読み出し属性は、ブロックアドレス、若しくはブロックアドレス及びページアドレスに対する読み出し許可情報を示す。書き込み属性は、ブロックアドレス、若しくはブロックアドレス及びページアドレスに対する書き込み許可情報を示す。消去属性は、ブロックアドレス、若しくはブロックアドレス及びページアドレスに対する消去許可情報を示す。固有情報は、当該アクセス許可情報が同固有情報を有するホスト装置2000に対する制御パラメータであることを示す。
なお、アクセス許可情報(#0、#1、、、#3)のそれぞれは、上記情報のすべてを含んでいる必要はなく、必要とされる制御レベルに応じた情報を含んでいればよい。例えば、ホスト装置2000の固有情報(定数HCj等)に基づいた制御が必要なければ固有情報はなくてもよい。また、ページ単位での制御が不要であればページアドレスはなくてもよい。更に、任意のブロックアドレスでの制御が不要であり、例えばあらかじめ定められたブロックのみに対する制御や、NAND型フラッシュメモリ100全体としての制御であれば、ブロックアドレスもなくてもよい。同様に、読み出し属性、書き込み属性、消去属性についても、制御が必要とされる機能についてのみ含んでいればよい。
シーケンス制御回路88は、制御パラメータ890に従って、ホスト装置2000から与えられるコマンド(CMD)に応じた動作シーケンスを制御する。例えば、データ読み出しコマンドの場合、シーケンス制御回路88は、制御パラメータ890中のアクセス許可情報の読み出し属性に従って、与えられる読み出しコマンドに応じたデータ読み出す(Read)もしくは読み出しを拒否するなどの動作を制御する。読み出し属性において読出しが許可されていれば、メモリセルアレイ11からデータを読み出すことが可能となる。その他、データ書き込み動作、データ消去動作等についても同様である。
<作用効果>
第7の実施形態に係る認証装置、被認証装置及び認証方法によれば、少なくとも上記と同様の作用効果(1)乃至(5)を得ることができる。
第7の実施形態に係る認証装置、被認証装置及び認証方法によれば、少なくとも上記と同様の作用効果(1)乃至(5)を得ることができる。
本実施形態によれば、必要に応じて、NAND型フラッシュメモリ100とホスト装置2000とがそれぞれ相互に認証することが可能である。
更に、本実施形態に係るNAND型フラッシュメモリ100は、図25に示した構成による機能制御を実現する。シーケンス制御回路88は、制御パラメータ890に従って、与えられるコマンドに応じた動作シーケンスを制御することができる。そのため、NAND型フラッシュメモリ100が認証したホスト装置2000において、そのホスト装置2000の固有情報(定数HCj等)等に基づいて、制御パラメータ890を更新した各種の機能動作を行うことをホスト装置2000に許可すること(Process function)ができる点で有利である。
さらに、本例に係るNAND型フラッシュメモリ100は、図25に示した構成の機能制御を第6の実施形態及び第7の実施形態とともに備えることが可能である。
[第8の実施形態(NAND型フラッシュメモリの構成例)]
次に、第8の実施形態について説明する。第8の実施形態は、上記第1至第4の実施形態に係る認証機能を適用したNAND型フラッシュメモリ100の構成例に関するものである。
次に、第8の実施形態について説明する。第8の実施形態は、上記第1至第4の実施形態に係る認証機能を適用したNAND型フラッシュメモリ100の構成例に関するものである。
この説明において、上記実施形態と重複する部分の説明については、省略する。
<NAND型フラッシュメモリの全体構成例>
図26を用い、第8の実施形態に係るNAND型フラッシュメモリ100の全体構成例について説明する。
図示するように、NAND型フラッシュメモリ100は、メモリセルアレイ11及びその周辺回路を備える。
図26を用い、第8の実施形態に係るNAND型フラッシュメモリ100の全体構成例について説明する。
図示するように、NAND型フラッシュメモリ100は、メモリセルアレイ11及びその周辺回路を備える。
メモリセルアレイ11は、複数のブロックBLOCK1- BLOCKnを含む。各ブロックの構成は、図27において後述するが、複数のメモリセルトランジスタMC、ワード線WL、ビット線BL等を含むものである。各ブロック中のメモリセルトランジスタMC中のデータは、一括して消去される。メモリセルトランジスタ単位及びページ単位でのデータ消去はできない。すなわち、個々のブロックが最小の消去単位となる。
周辺回路は、センスアンプ77、入出力制御回路84、ロジックコントロール回路85等を備える。
センスアンプ77は、ビット線BLを介してメモリ100内のメモリセル(メモリセルトランジスタMC)のデータを読み出し、ビット線BLを介してメモリセルアレイ2内のメモリセルの状態を検出する。
データキャッシュ12は、センスアンプ77から読み出されたデータまたはセンスアンプ77に供給されるデータを一時的に保持する。
カラムデコーダ75は、NAND型フラッシュメモリ100の外部からIO端子を介して供給されたアドレス信号に基づいて、特定のビット線BL、センスアンプ等を選択する。
カラムアドレスバッファ74は、アドレス信号を一時的に保持し、カラムデコーダ75に供給する。
ロウデコーダ78は、データ読み出し、書き込み、あるいは消去に必要な種々の電圧を電圧生成回路86から受け取り、そのような電圧をアドレス信号に基づいて特定のワード線WLに印加する。
ロウアドレスバッファデコーダ79は、アドレス信号を一時的に保持し、ロウデコーダ78に供給する。
電圧生成回路86は、基準電源電圧VSS、VCC、電圧VSSQ、VCCQ等を受け取り、これらからデータ書き込み、読み出し、消去等に必要な電圧を生成する。
入出力制御回路84は、IO端子を介して、NAND型フラッシュメモリ100の動作を制御する種々のコマンド、アドレス信号、書き込みデータを受け取り、また読み出しデータを出力する。入出力制御回路84から出力されたアドレス信号は、アドレスレジスタ82によってラッチされる。ラッチされたアドレス信号は、カラムアドレスバッファ74及びロウアドレスバッファ79に供給される。入出力制御回路84から出力されたコマンドは、コマンドレジスタ83によってラッチされる。ステータスレジスタ81は、入出力制御回路12のための種々のステータスについての値を保持する。
NAND型フラッシュメモリ100は、外部インターフェイス(NAND I/F)として、コマンド、アドレス、データ入出力用のIO端子、動作を制御するための種々の制御信号を外部から受け取る。制御信号には、例えばチップイネーブル/CE、コマンドラッチイネーブルCLE、アドレスラッチイネーブルALE、リードイネーブルRE及び/RE、ライトイネーブルWE及び/WE、ライトプロテクトWP、クロックDQS、/DQSが含まれる。
これらの制御信号は、対応する端子において受け取られ、ロジック制御回路21に供給される。ロジックコントロール回路85は、制御信号に基づいて、入出力制御回路84を制御して、端子IO上の信号をコマンド、アドレス、またはデータとして入出力制御回路84を介してアドレスレジスタ82、コマンドレジスタ83、ページバッファ12等に到達することを許可したり禁止したりする。また、ロジックコントロール回路85は、コマンドレジスタ83から、ラッチされたコマンドを受け取る。
制御信号のうち、WE端子はデータ入力用クロックを供給し、RE端子はデータ出力用クロックを供給し、DQS端子はデータ入出力用クロックを伝送し、CLE端子はデータ入力をコマンドとして入力するイネーブル用であり、ALE端子はデータ入力をアドレスとして入力するイネーブル用であり、CE端子はデータ入出力等全般の機能を有効化する
ためである。
ためである。
また、R/B端子はNAND型フラッシュメモリ100の内部動作状態を示し、WP端子は誤書き込み防止用の書き込み防止信号を伝送し、Vcc/Vss/Vccq/Vssq端子等は電力供給用である。また、本実施形態では、高速インターフェースにてデータ伝送を実現する際に利用される端子(Toggle)として、RE端子、WE端子、DQS端子には、各々相補信号を伝送する/RE端子、/WE端子、/DQS端子が存在する。
ロジックコントロール回路85は、シーケンス制御回路88、パラメータレジスタ89、認証回路107を備える。ロジック制御回路85は、また、レディ/ビジー信号(R/B)の出力を司る。具体的には、ロジック制御回路85は、NAND型フラッシュメモリ100がビジー状態の間、ビジー信号を出力する。
シーケンス制御回路88は、コマンドレジスタ83からコマンドを受け取る。シーケンス制御回路88は、受け取ったコマンドに基づいて、コマンドにより指示される処理(データ読み出し、書き込み、消去等)を実行するように、センスアンプ77、電圧生成回路86等を制御する。
パラメータレジスタ89は、ロジック制御回路85の動作を規定する種々の上記制御パラメータ890等を保持する。制御パラメータ890は、シーケンス制御回路88から参照、または更新され、ロジックコントロール回路85や入出力制御回路88におけるシーケンスの制御に利用される。
認証回路107は、上記の認証に関する処理を行う。例えば、認証回路107は、上記のように、パラメータレジスタに含まれる制御パラメータ890の書き換え等の更新も行う。また、認証回路107は、認証を要求するコマンドを受け取り、メモリセルアレイ11中の特定のデータを用いて認証のための特定の演算を行い、結果をメモリ10の外部へ出力する。この一連の動作の実行の過程で、認証回路107は、必要なデータの読み出し、書き込み等を制御パラメータ890の更新を通じて、シーケンス制御回路88に許可する。
レディ/ビジー回路(RY/BY)87は、ロジックコントロール回路85の制御を受けて、スイッチトランジスタを介して、R/B信号をNAND型フラッシュメモリ100の外部に通知する。
<ブロック(BLOCK)の構成例>
次に、図27を用い、メモリセルアレイ11を構成するブロック(BLOCK)の構成例について説明する。ここでは、図27中のBLOCK1を一例に挙げて説明する。ここで、上記のように、ブロックBLOCK1中のメモリセルは、一括してデータ消去されるため、ブロックはデータ消去単位である。
次に、図27を用い、メモリセルアレイ11を構成するブロック(BLOCK)の構成例について説明する。ここでは、図27中のBLOCK1を一例に挙げて説明する。ここで、上記のように、ブロックBLOCK1中のメモリセルは、一括してデータ消去されるため、ブロックはデータ消去単位である。
ブロックBLOCK1は、ワード線方向(WL方向)に配置される複数のメモリセルユニットMUから構成される。メモリセルユニットMUは、WL方向と交差するビット線方向(BL方向)に配置され、電流経路が直列接続される8個のメモリセルMC0〜MC7からなるNANDス通りング(メモリセルストリング)と、NANDストリングの電流経路の一端に接続されるソース側の選択トランジスタS1と、NANDストリングの電流経路の他端に接続されるドレイン側の選択トランジスタS2とから構成される。
なお、本実施形態では、メモリセルユニットMUは、8個のメモリセルMC0〜MC7から構成されるが、2つ以上のメモリセル、例えば、56個、32個等から構成されていればよく、8個に限定されるというものではない。
ソース側の選択トランジスタS1の電流経路の他端はソース線SLに接続される。ドレイン側の選択トランジスタS2の電流経路の他端は、各メモリセルユニットMUに対応してメモリセルユニットMUの上方に設けられ、BL方向に延出するビット線BLに接続される。
ワード線WL0〜WL7は、WL方向に延び、WL方向の複数のメモリセルの制御ゲート電極CGに共通に接続される。選択ゲート線SGSは、WL方向に延び、WL方向の複数の選択トランジスタS1に共通に接続される。選択ゲート線SGDも、WL方向に延び、WL方向の複数の選択トランジスタS2に共通に接続される。
また、ワード線WL0〜WL7毎にページ(PAGE)が存在する。例えば、図中の破線で囲って示すように、ワード線WL7には、ページ7(PAGE7)が存在する。このページ(PAGE)毎に、データ読み出し動作、データ書き込み動作が行われるため、ページ(PAGE)はデータ読み出し単位であり、データ書き込み単位である。
<セルアレイの構成例>
次に、図28を用い、メモリセルアレイ11の構造を示す。(a)に示すように、メモリセルアレイ11内部は、秘匿領域101、ロムブロック102、ノーマルブロック103、ロムヒューズブロック1044、保護ブロック1105等の上記複数のブロック(BLOCK)から構成される。各ブロックは、上記のように、複数のページから構成される。通常、データの読み出しや書き込みはページ単位で行い、消去はブロック単位で行われる。
次に、図28を用い、メモリセルアレイ11の構造を示す。(a)に示すように、メモリセルアレイ11内部は、秘匿領域101、ロムブロック102、ノーマルブロック103、ロムヒューズブロック1044、保護ブロック1105等の上記複数のブロック(BLOCK)から構成される。各ブロックは、上記のように、複数のページから構成される。通常、データの読み出しや書き込みはページ単位で行い、消去はブロック単位で行われる。
ノーマルブロック103は、上記のように、データの書き込み、読み出し等いずれも許可され、通常のデータ保持用に用いられる。ノーマルブロックは、上述した読み書き可能領域103に対応する。ブロック数は特に限定されない。
秘匿領域101及びロムブロック102は、上記のような認証動作に適用される。秘匿領域101は、上述した秘匿領域101に対応する。ロムブロック102は、上述したロム領域102に対応する。何れもブロック数は特に限定されない。
(b)に示すように、本実施形態では、ロムブロック102のメモリ空間には、読み出し専用データが更に記録される。
(c)に示すように、本実施形態では、秘匿領域101のメモリ空間には、秘匿データが更に記録される。
(d)に示すように、本実施形態では、保護ブロック105のメモリ空間には、後述する認証機能により利用される保護データが更に記録される。
ロムヒューズブロック104は、例えば、NAND型フラッシュメモリ100の動作制御用のパラメータ保持等に用いられる。
<ロムブロック内の読み出し専用データ>
次に、図29を用い、ロムブロック102内の読み出し専用データについて説明する。
(a)に示すように、ロムブロック102のメモリ空間のあるページには、読み出し専用データが記録されている。ここで、読み出し専用データAからZの系列とした場合、本図ではデータのエラー訂正を目的にした(b−1)−(b−3)の3つの例を示す。
次に、図29を用い、ロムブロック102内の読み出し専用データについて説明する。
(a)に示すように、ロムブロック102のメモリ空間のあるページには、読み出し専用データが記録されている。ここで、読み出し専用データAからZの系列とした場合、本図ではデータのエラー訂正を目的にした(b−1)−(b−3)の3つの例を示す。
(b−1)に示すように、第1のデータパターン1は、同一のデータ(A、A、、、B、B、、、)を繰り返し記録する例である。この場合、繰り返し読み出し専用データをホスト装置2000が読み出し、ホスト装置2000等が有するエラー訂正部において、多数決判定を行うことで、エラー訂正が可能である。または、繰り返し読み出し専用データをコントローラ200が読み出し、コントローラ200等が有するエラー訂正部において、多数決判定を行うことで、エラー訂正が可能である。または、繰り返し読み出し専用データをNAND型フラッシュメモリ100が有するエラー訂正部において、多数決判定を行うことで、エラー訂正が可能である。例えば、繰り返し回数は16回程度以上あることが望ましい。
(b−2)に示すように、第2のデータパターン2は、各データ(A、B、、、)とその反転データ(Aの反転、Bの反転、、、)からなる相補データペアを繰り返し記録する例である。この場合、繰り返し読み出し専用データをホスト装置2000が読み出し、ホスト装置2000等が有するエラー訂正部において相補データペアに配慮した多数決判定を行うことで、エラー訂正が可能である。または、繰り返し読み出し専用データをコントローラ200が読み出し、コントローラ200等が有するエラー訂正部において相補データペアに配慮した多数決判定を行うことで、エラー訂正が可能である。または、繰り返し読み出し専用データをNAND型フラッシュメモリ100が有するエラー訂正部において相補データペアに配慮した多数決判定を行うことで、エラー訂正が可能である。
ここで、相補データペアとして繰り返し記録する理由は、NAND型フラッシュメモリ100のエラーモードによる。NAND型フラッシュメモリ100はメモリセルMCに対して所定電圧を印加することによってフローティングゲートFGに電子を注入し、データの書き込みを行う。データの読み出しは当該メモリセルMCのフローティングゲートFGに電子が存在しているか否かによって変化する閾値電圧を用いて行う。データの消去は書き込みと逆方向に電圧を印加し、フローティングゲートFGから基板へ電子を引き抜くことで実行する。データ読み出し、書き込み、消去の動作に伴う電圧印加量や電圧印加ゲートは各々異なるが、いずれにおいてもメモリセルMCにおいて電圧を印加する。この原理に起因して、NAND型フラッシュメモリ100の代表的なエラーモードとして、リード・プログラムディスターブ、データリテンションがある。リード・プログラムディスターブは、自身若しくは隣接のページを繰り返し読み出す、若しくは隣接ページに書き込むことによって、フローティングゲートFGにおける電子量が変化することデータが変化するエラーモードである。このため弱書き込みに近い状態となり、一般に閾値電圧が増加する。データリテンションとは、一度書き込んだページを長時間放置することによって、フローティングゲートに保持されていた電子が抜け落ちることにより、データが変化するエラーモードである。このため、弱消去に近い状態となり、一般に閾値電圧が低下する。すなわち、これら不良モードにおいては全般的に増加するか、低下するかの傾向があることから、データは同一方向にエラーする可能性が高い。
そこで、(b−2)に示すように、相補データとして記録することにより、仮にデータが1(未記録状態)であった場合その反転データは0(記録状態)であることから、リード・プログラムディスターブにおいては両データとも0方向に移行し、データリテンションにおいては逆に1方向に移行する。このため、少なくともエラーが発生しているか否かは相補データである方が判別しやすい。この場合、例えば、相補データペアとして少なくとも8回程度の繰り返しがあることが望ましい。
(b−3)に示すように、第3のデータパターン3は、読み出し専用データ(A、B、、、Z)に更に誤り訂正符号を用いる例である。ここで、誤り訂正符号としては、NAND型フラッシュメモリ100のエラー発生形式がビット単位でのランダムエラーであることから、ランダムビットエラーが訂正可能な例えば、BCH符号やLDPC符号等が望ましい。
ここで、第1乃至第3のデータパターンのいずれの例においても、各データはランダマイズされていてもよい。ランダマイズとは、データの偏りをなくすために、発生させたランダム系列と記録するデータとの排他的論理和をとる等の方法で、記録するデータをランダム化することである。ランダム系列の発生方法としては、M系列等を用いてもよい。
加えて、第1乃至第3のデータパターンのいずれの例においても、各データは2値状態として記録されていてもよい。2値状態とは、一つのメモリセルにおける閾値電圧を所定の1レベルを基準にして高いレベルに属するか低いレベルに属するかを定めてデータを記録する方法であり、1メモリセル当たり1ビットの情報を保持することができる。このような記録方法は一般にSLC(Single Level Cell)記録と呼ぶ。一方で、一つのメモリセルにおける閾値電圧を所定の複数レベルを基準にして、どのレベルに属するかを定めてデータを記録する方法であり、1メモリセル当たり複数ビットの情報を保持することができる。前記属するレベルを例えば、4つ設けてデータを記録する場合、1メモリセル当たり2ビットの情報を保持することができる。このような記録方法は一般にMLC(Multi Level Cell)記録と呼ばれる。MLC記録は1セルあたりの記録容量が多いため、より高い記録密度を実現できるが、一方で閾値電圧のずれに対して記録データ変化が比較的おこりやすい。このことから、前記ロムブロック102に記憶される読み出し専用データは、通常データよりも1メモリセルあたりのビット数を少なく記録する方が望ましい。例えば、1メモリセルあたりのビット数が2ビットで構成される4Level記録のMLCである場合、ROMデータはSLC記録の方が望ましい。また、1メモリセルあたりのビット数が4ビットで構成される8 Level記録のMLCである場合、ROMデータは1セルあたりのビット数が2ビットで構成される4 Level記録のMLC若しくはSLC記録の方が望ましい。
<ECCの構成例>
次に、図30〜図33を参照して、誤り訂正符号化(ECC:Error Correcting Code)の構成例について説明する。
次に、図30〜図33を参照して、誤り訂正符号化(ECC:Error Correcting Code)の構成例について説明する。
ここで、上記図29で示した、第1乃至第3のデータ構造は、厳密には異なるものの、元となるデータに対して冗長語を付与しているという意味合いでは、広義には訂正符号化ECCととれる。そのため、ここでは、いずれのデータ構造においてもデータと、それに付与された訂正符号と称する。ホスト装置2000、コントローラ200、若しくはNAND型フラッシュメモリ100の少なくともいずれかが対応する訂正機能を有する必要がある。
図30で示す第1の例は、ホスト装置2000が訂正機能(ECC decode)90を有する例である。この場合、コントローラ200及びNAND型フラッシュメモリ100は、訂正処理を行わず、符号付きのデータ(Data)をホスト装置2000に渡し、ホスト装置2000は訂正機能(ECC decode)90により訂正処理を行い、所定のデータ(Data)を生成する。
図31で示す第2の例は、コントローラ200が、訂正機能(ECC decode)90を有する例である。この場合、NAND型フラッシュメモリ100は、訂正処理を行わず、コントローラ200は訂正処理を行い、訂正済みのデータ(Data)をホスト装置2000に渡す。
図32で示す第3の例は、NAND型フラッシュメモリ100が、訂正機能(ECC decode)90を有する例である。この場合、NAND型フラッシュメモリ100は訂正処理を行い、訂正済みのデータ(Data)をコントローラ200を経由してホスト装置2000に渡す。
図33で示す第4の例は、コントローラ200及びホスト装置2000の両方が訂正機能90−1、90−2を有する例である。この場合は、まず付与されている訂正符号が2重構造をとっており、内符号(Inner code)及び外符号(Outer code)のいずれかを各々コントローラ200とホスト装置2000とが訂正処理を行う。
なお、上記の場合に限らず、NAND型フラッシュメモリ100、コントローラ200、ホスト装置2000は、各々自身の訂正機能に応じて協調しつつ訂正を行うことが可能である。
<秘匿領域101内の秘匿データ>
次に、図34を用い、秘匿領域101内の秘匿データの保持状態の例を説明する。
次に、図34を用い、秘匿領域101内の秘匿データの保持状態の例を説明する。
(a)に示すように、秘匿領域101内のメモリ空間には、ページに秘匿データが記録されている。ここで、秘匿データをAからZの系列とした場合、本図では3つの例を示す。
(b−1)に示すデータパターン1では、複数の秘匿データ(A、A、、、B、B、、、)及びアクセス制御パターンB1を記憶する。
(b−2)に示すデータパターン2では、複数の秘匿データ(A、A、、、B、B、、、)とその反転データ、及びアクセス制御パターンB2を記憶する。
(b−3)に示すデータパターン3では、複数の秘匿データ(A、B、、、、Z)、エラー訂正符号、及びアクセス制御パターンB3を記憶する。
各例における目的の一つは、同様にエラー訂正である。他の目的は秘匿領域101若しくは当該ブロック101内のページに対する読み出し、書き込み、消去に関わる制御を行うことである。当該領域は秘匿データを記録していること、また前述の認証回路107においてNAND型フラッシュメモリ100の内部でのみ利用する情報を保持することから、外部からの読み出し、書き込み、消去に関わる動作は全て禁止しておく必要がある。一方で、NAND型フラッシュメモリ100の製造初期段階においては、同領域は未記録であることから、製造のいずれかの段階において秘匿データを記録しなければいけない。更に、NAND型フラッシュメモリ100のメモリセルの特性として、メモリセルの初期状態ではデータ保持性能が不十分である場合があるため、当該メモリセルがデータを仕様通りに保持できるか否かを検査するために、読み出し、書き込み、消去の動作をさせる必要がある。
そこで、同領域101に関し、製造段階においては読み出し、書き込み、消去が可能であるが、製造完了後の出荷時においては、同領域は読み出し、書き込み、消去の全てを禁止しておく必要がある。この状態変更を行うための情報として、当該領域101にアクセス制御パターンB1、B2、B3を記録する。
アクセス制御パターンB1、B2、B3は、ページ毎に記録されていてもよいし、ブロック内の先頭ページのみに記録されていてもよい。また、ページ内でのアクセス制御パターンB1、B2、B3の記録位置は、一般データ領域であってもよいし、冗長領域であってもよい。ここで、冗長領域とはコントローラ等が訂正符号の付与に利用する領域や、若しくはNAND型フラッシュメモリ100が内部的なページ毎のステータス等を示すための情報を記録するのに利用する領域等である。
秘匿データやアクセス制御パターンB1、B2、B3においても、ROMデータと同様に2値(SLC)モードで記録される方が望ましい。
次に、図35を用い、アクセス制御パターンの構成例を示す。
まず、アクセス制御パターンは、エラーによる損失を防ぐため、少なくとも複数のビットから構成されている必要がある。
まず、アクセス制御パターンは、エラーによる損失を防ぐため、少なくとも複数のビットから構成されている必要がある。
一つ目の例のアクセス制御パターンB1は、複数の制御フラグビットAからZを設け、これら制御フラグビットを所定パターンとしておく。NAND型フラッシュメモリ100は、当該領域に対する読み出し、書き込み、消去等のアクセス要求をホスト装置2000より受けた場合、当該領域101のアクセス制御パターンB1と所定パターンとの照合を行い、両者の一致率が所定率以上となった場合にアクセスを禁止する、という構成をとる。
二つ目の例のアクセス制御パターンB2は、制御フラグを繰り返し記録しておく方法である。これは、所定パターンがエラーする確率を低下させる上で有効である。
三つ目の例のアクセス制御パターンB3は、各制御フラグと各制御フラグの反転データを記録しておく方法である。前述の通り、本方法もエラーする確率を低下させる上で有効である。
<アクセス制御パターンの利用例>
次に、アクセス制御パターンの検知方法及び検知結果の利用方法を説明する。
次に、アクセス制御パターンの検知方法及び検知結果の利用方法を説明する。
図36に示すように、メモリ100中の秘匿領域101から読み出される上記アクセスパターンは、ロジックコントロール回路85内のパターン検知回路91に入力される。
パターン検知回路91は、入力されるアクセス制御パターンに対し、パターン認識処理を行い、一致率が所定確率以上であるか否かを判定し、アクセス制御をおこなう。一致率は、NAND型フラッシュメモリ100のメモリセルアレイにおけるエラー確率と、アクセス制御パターンのデータ量から計算され、例えば、誤検出確率が少なくとも10−3以下となるように設定することが望ましい。パターン検知回路91は、検知結果に基づき、データ読み出し、データ書き込み、データ消去を制御するためのイネーブル信号をシーケンス制御回路88に入力する。
シーケンス制御回路88は、上記検知結果のイネーブル信号に従い、データ読み出し、データ書き込み、データ消去を制御する。
<テストフロー>
次に、図37に沿って、上記アクセス制御パターン(例えば、B1−B3)を用いたNAND型フラッシュメモリ100の製造工程の検査フローを説明する。
次に、図37に沿って、上記アクセス制御パターン(例えば、B1−B3)を用いたNAND型フラッシュメモリ100の製造工程の検査フローを説明する。
(Step S71、S72)
製造工程において、まず、アクセス制御パターンに該当しないデータを、秘匿領域101に記録し、テストを行う。この段階では、秘匿領域101のアクセスは許可されている。
製造工程において、まず、アクセス制御パターンに該当しないデータを、秘匿領域101に記録し、テストを行う。この段階では、秘匿領域101のアクセスは許可されている。
ただし、データ読み出し、データ書き込み、データ消去のすべてのアクセスを許可するのか、データ書き込み及びデータ消去を許可するか等、によりセキュリティーレベルが異なる。高いセキュリティーレベルが必要な場合、仮にアクセス制御パターンにより全てのアクセスを禁止したとしても、アクセス制御パターンのデータが劣化することにより、誤ったアクセス許可をする可能性がある。この場合、秘匿データが読みだされる恐れがあるため、このステップS71の際のテスト工程においても、データ読み出しを禁止する、すなわちNAND型フラッシュメモリ100のハードワイヤードレベルにおいて読み出しを当該領域にはそもそも許可しない、という選択も可能である。
または、アクセス制御パターンのデータ劣化耐性が十分である場合、例えば、アクセス制御パターンが多数回繰り返し記録されている、強固な誤り訂正符号が付与されている場合等においては、テストの利便性を確保するために、データ読み出しを含めた制御をアクセス制御パターンによっておこなってもよい。この場合、先に示した誤検出確率は更に低
く、例えば、10−5以下であることが望ましい。
く、例えば、10−5以下であることが望ましい。
(Step S73)
続いて、S72の際の所定のテストが完了した後、秘匿領域101に秘匿データ及びアクセス制御パターン(B1−B3等)が各々書き込まれる。
続いて、S72の際の所定のテストが完了した後、秘匿領域101に秘匿データ及びアクセス制御パターン(B1−B3等)が各々書き込まれる。
(Step S74)
続いて、上記のデータが書き込まれた状態で、NAND型フラッシュメモリ100が出荷される。
続いて、上記のデータが書き込まれた状態で、NAND型フラッシュメモリ100が出荷される。
<データ消去フロー>
次に、図38に沿って、NAND型フラッシュメモリ100の内部のデータ消去動作を説明する。
次に、図38に沿って、NAND型フラッシュメモリ100の内部のデータ消去動作を説明する。
(Step S76)
まず、ホスト装置2000より消去動作の動作命令が発効されると、NAND型フラッシュメモリ100は、当該命令における選択ブロックアドレスが特定ブロックであるか否かを判定する。
まず、ホスト装置2000より消去動作の動作命令が発効されると、NAND型フラッシュメモリ100は、当該命令における選択ブロックアドレスが特定ブロックであるか否かを判定する。
(Step S77)
続いて、選択ブロックアドレスが特定ブロックでない場合(No)、通常通りの消去シーケンスを行う。
続いて、選択ブロックアドレスが特定ブロックでない場合(No)、通常通りの消去シーケンスを行う。
(Step S78)
一方、選択ブロックアドレスが特定ブロックの場合(Yes)、秘匿領域101からアクセス制御情報(B1−B3等)の読み出しを行う。
一方、選択ブロックアドレスが特定ブロックの場合(Yes)、秘匿領域101からアクセス制御情報(B1−B3等)の読み出しを行う。
(Step S79)
続いて、アクセス制御情報(B1−B3等)のパターン検知を行い、パターン一致率が所定値以上であるか否かを判定する。
続いて、アクセス制御情報(B1−B3等)のパターン検知を行い、パターン一致率が所定値以上であるか否かを判定する。
(Step S80)
続いて、パターン一致率が所定値以下であった場合(Yes)、通常通りの消去シーケンスを行う。
続いて、パターン一致率が所定値以下であった場合(Yes)、通常通りの消去シーケンスを行う。
(Step S81)
続いて、パターン一致率が所定値以上であった場合(No)、消去シーケンスを抜け、データ消去フローを終了する(End)。
続いて、パターン一致率が所定値以上であった場合(No)、消去シーケンスを抜け、データ消去フローを終了する(End)。
なお、本実施形態では、データ消去を一例に挙げたが、同様にデータ読み出し、データ書き込みにおいても適用可能である。
<作用効果>
第8の実施形態に係る認証装置、被認証装置及び認証方法によれば、少なくとも上記と同様の作用効果(1)乃至(5)を得ることができる。
第8の実施形態に係る認証装置、被認証装置及び認証方法によれば、少なくとも上記と同様の作用効果(1)乃至(5)を得ることができる。
更に、必要に応じて、本実施形態の構成及び方法を適用することで、信頼性を向上できる点で有効である。
[第9の実施形態(データキャッシュの認証処理への利用の一例)]
第9の実施形態は、データキャッシュの認証処理への利用の一例に関するものである。この説明において、上記実施形態と重複する部分の説明については、省略する。
第9の実施形態は、データキャッシュの認証処理への利用の一例に関するものである。この説明において、上記実施形態と重複する部分の説明については、省略する。
<データキャッシュ、センスアンプ等の構成例>
図39を用い、第9の実施形態に係るデータキャッシュ、センスアンプ等の構成例について説明する。
図示するように、上記実施形態に係る認証処理のデータキャッシュ12が1コンポーネントとして示される。NAND型フラッシュメモリ100は、メモリセルアレイ11から読み出したページデータを一時的に記憶する、また外部から記録用データとして受領した書き込みページデータを一時的に記憶する、等を目的とした揮発性データキャッシュ12を有する。本実施形態のデータキャッシュ12は、ページバッファ、データバッファ等とも呼ばれ、通常ページサイズ以上の領域を有する。更に、ページデータの読出しや書込み処理の高速化、ランダムページアクセスをするために、データキャッシュはページサイズの複数倍の領域を持つことが多い。
図39を用い、第9の実施形態に係るデータキャッシュ、センスアンプ等の構成例について説明する。
図示するように、上記実施形態に係る認証処理のデータキャッシュ12が1コンポーネントとして示される。NAND型フラッシュメモリ100は、メモリセルアレイ11から読み出したページデータを一時的に記憶する、また外部から記録用データとして受領した書き込みページデータを一時的に記憶する、等を目的とした揮発性データキャッシュ12を有する。本実施形態のデータキャッシュ12は、ページバッファ、データバッファ等とも呼ばれ、通常ページサイズ以上の領域を有する。更に、ページデータの読出しや書込み処理の高速化、ランダムページアクセスをするために、データキャッシュはページサイズの複数倍の領域を持つことが多い。
データキャッシュ12は、複数のデータキャッシュA、データキャッシュB、データキャッシュCを備える。各データキャッシュは、メモリ100の読出しに用いるセンスアンプ(SA)とデータ線とに各々接続される。
センスアンプSAは、図示しないビット線を介し、メモリセルアレイ11に電気的に接続される。
データキャッシュのうちのDC_Aは、直接データ線とのデータのやり取りが可能であるデータキャッシュである。DC_Aを通じてデータキャッシュ12のデータを、データ線を介してIOへ接続されることにより、メモリセルアレイ11(NANDチップ)の外部に出力し、メモリ100の外部のデータをデータキャッシュにロードすることが可能である。
更に、データキャッシュ12に接続され、データキャッシュ12間の演算を行うための演算器を備える。演算器は、上記実施形態における認証処理に用いるデータ生成器13、14や一方向性回路15等を備える認証回路17に相当する。
また、一時的にデータを格納しておくための内部レジスタ92を備える。
ここで、NAND型フラッシュメモリ100には、データ読出しにおいて、メモリセルアレイ11への読出しコマンドに加え、データキャッシュ12にメモリセルアレイ11から読み出されたデータを読み出すためのコマンドとしてレジスタリードと呼ばれるコマンドがある。
この際、上記認証方法においては、NAND型フラッシュメモリ100内の秘匿領域101は、秘匿領域101に記録されている秘匿情報(NKey、SecretID等)をメモリセルアレイ11の外部からのアクセスによって読みだされることがあってはならない。一方で、NAND型フラッシュメモリ100が認証処理を行う場合は、秘匿領域101に記録されている秘匿情報(NKey、SecretID等)を内部的に読出し、認証処理に用いる必要がある。すなわち、メモリセルアレイ11からデータキャッシュ12への秘匿情報(NKey、SecretID等)の読出しは可能としておく必要がある一方で、データキャッシュ12からNAND型フラッシュメモリ100の外部へのデータ出力を禁止する必要がある。これは、前記のレジスタリードを無効化することに相当する。
そこで、秘匿領域101が、NAND型フラッシュメモリ100の外部からアクセスされたときのデータ読み出し動作については、通常の読み出し動作と異なる動作をさせる。より具体的には、秘匿領域101がアクセスされた場合、メモリセルアレイ11からセンスしたデータを、データキャッシュDC_A以外のデータキャッシュDC_B、DC_Cに留め外部への出力ができないようにして、レジスタリードコマンドが効かないように無効化する。一方、アクセスされたブロックが、秘匿領域101でない場合、通常通り、データキャッシュDC_Aを用いて、データ読み出しを行う。
このように、上記構成によれば、複数種類のデータキャッシュDC_A〜DC_Cを設け、外部からユーザがアクセスできないデータキャッシュDC_B、DC_Cのみで上記認証処理を実行する。そのため、上記認証処理に秘匿情報(NKey、SecretID等)を利用する際に、鍵情報(NKey)等の秘匿情報が外部から不正に読み取られない点で有利である。
<認証処理におけるNAND内部演算フロー1>
次に、図40に沿って、認証処理の過程において、ホスト装置2000に対して秘匿領域101の情報を直接的・間接的にも出力しないためのフローを示す。
次に、図40に沿って、認証処理の過程において、ホスト装置2000に対して秘匿領域101の情報を直接的・間接的にも出力しないためのフローを示す。
(Step S82)
まず、認証処理において、ホスト装置2000等のNAND型フラッシュメモリ100の外部からデータが入力されるとする。この入力データは、例えば、上記乱数RNやホスト定数HCj等であり、同データは、データキャッシュDC_Aにロードされる。
まず、認証処理において、ホスト装置2000等のNAND型フラッシュメモリ100の外部からデータが入力されるとする。この入力データは、例えば、上記乱数RNやホスト定数HCj等であり、同データは、データキャッシュDC_Aにロードされる。
(Step S83)
続いて、ホスト装置2000から秘匿領域101等の特別ブロックへアクセスする間接的読み出し要求が行われる。これは、すなわち認証における認証情報の計算要求に該当する。
続いて、ホスト装置2000から秘匿領域101等の特別ブロックへアクセスする間接的読み出し要求が行われる。これは、すなわち認証における認証情報の計算要求に該当する。
この要求を受けて、メモリセルアレイ11からリードされた機密ページのデータが読み出される。
(Step S84)
続いて、リードされた機密ページのデータは、データキャッシュDC_Bに格納される。
続いて、リードされた機密ページのデータは、データキャッシュDC_Bに格納される。
(Step S85)
続いて、データキャッシュDC_AとデータキャッシュDC_Bのそれぞれに記憶されているデータ間で、上記実施形態で説明した認証処理における演算を演算器(認証回路107)を用いて行う。
続いて、データキャッシュDC_AとデータキャッシュDC_Bのそれぞれに記憶されているデータ間で、上記実施形態で説明した認証処理における演算を演算器(認証回路107)を用いて行う。
(Step S86)
続いて、演算の結果は、データキャッシュDC_Cに格納される。
続いて、演算の結果は、データキャッシュDC_Cに格納される。
(Step S87)
ここで、一連のシーケンスを抜けてチップレディとなったときに機密データがデータキャッシュに残っていると、これを外部から読み出されるおそれがある。これを防ぐためにシーケンスを抜ける前に、全てのデータキャッシュDC_A〜DC_Cの情報をリセットしておかなければならない。一方、ホスト装置2000は、上記演算の結果をデータキャッシュDC_A〜DC_Cがリセットされた後に得なければならない。
ここで、一連のシーケンスを抜けてチップレディとなったときに機密データがデータキャッシュに残っていると、これを外部から読み出されるおそれがある。これを防ぐためにシーケンスを抜ける前に、全てのデータキャッシュDC_A〜DC_Cの情報をリセットしておかなければならない。一方、ホスト装置2000は、上記演算の結果をデータキャッシュDC_A〜DC_Cがリセットされた後に得なければならない。
そこで、まず、データキャッシュDC_Cに保持されている演算の結果を、内部レジスタ92にコピーする。
(Step S88)
続いて、全てのデータキャッシュDC_A〜DC_Cのデータをリセットする。
続いて、全てのデータキャッシュDC_A〜DC_Cのデータをリセットする。
(Step S89)
続いて、内部レジスタ92に退避しておいたデータを、データキャッシュDC_Aに戻す。ここまでの動作が終了すると、NAND型フラッシュメモリ100はこのシーケンスを抜け、レディ状態となる。この際、データキャッシュDC_Aには演算の結果が格納され
ている。
続いて、内部レジスタ92に退避しておいたデータを、データキャッシュDC_Aに戻す。ここまでの動作が終了すると、NAND型フラッシュメモリ100はこのシーケンスを抜け、レディ状態となる。この際、データキャッシュDC_Aには演算の結果が格納され
ている。
(Step S90)
続いて、ホスト装置2000は、レジスタリードコマンドにより、データキャッシュDC_Aに格納されたデータを得ることが出来る。
続いて、ホスト装置2000は、レジスタリードコマンドにより、データキャッシュDC_Aに格納されたデータを得ることが出来る。
<認証処理におけるNAND内部演算フロー2>
次に、図41に沿って、NAND型フラッシュメモリ100内部に乱数生成器(24n)を備えた実施形態のNAND内部演算フローについて説明する。上記図40の場合と異なるのは、NAND型フラッシュメモリ100内部の乱数発生器(24n)で発生した乱数(RNn)を使用する点である。
次に、図41に沿って、NAND型フラッシュメモリ100内部に乱数生成器(24n)を備えた実施形態のNAND内部演算フローについて説明する。上記図40の場合と異なるのは、NAND型フラッシュメモリ100内部の乱数発生器(24n)で発生した乱数(RNn)を使用する点である。
(Step S91)
まず、認証処理において、ホスト装置2000からNAND型フラッシュメモリ100に対して乱数読出し要求が行われると、NAND型フラッシュメモリ100は乱数を生成させ、生成された乱数はデータキャッシュDC_Aにロードされる。
まず、認証処理において、ホスト装置2000からNAND型フラッシュメモリ100に対して乱数読出し要求が行われると、NAND型フラッシュメモリ100は乱数を生成させ、生成された乱数はデータキャッシュDC_Aにロードされる。
(Step S92)
続いて、ホスト装置2000は、レジスタリードコマンドによって、データキャッシュDC_Aの乱数を読み出す。
続いて、ホスト装置2000は、レジスタリードコマンドによって、データキャッシュDC_Aの乱数を読み出す。
(Step S93)
続いて、認証処理において、ホスト装置2000から例えばホスト定数(HCj)等のデータが、NAND型フラッシュメモリ100に対して入力される。上記データは、データキャッシュDC_Aにロードされる。
続いて、認証処理において、ホスト装置2000から例えばホスト定数(HCj)等のデータが、NAND型フラッシュメモリ100に対して入力される。上記データは、データキャッシュDC_Aにロードされる。
更に、ホスト装置2000からNAND型フラッシュメモリ100に対してホスト装置2000で演算した認証情報が入力される。このデータは、例えばOneway−ID等であり、同データはデータキャッシュDC_Aにロードされる。
(Step S94)
続いて、ホスト装置2000から秘匿領域101にアクセスして、間接的読み出し要求が行われる。これはすなわち認証における認証情報の計算要求に該当する。
続いて、ホスト装置2000から秘匿領域101にアクセスして、間接的読み出し要求が行われる。これはすなわち認証における認証情報の計算要求に該当する。
すると、メモリ100から機密ページのリードがされる。
(Step S95)
続いて、リード結果は、データキャッシュDC_Bに格納される。
続いて、リード結果は、データキャッシュDC_Bに格納される。
(Step S96)
続いて、データキャッシュDC_AとデータキャッシュDC_Bとのそれぞれに記憶されているデータ間で、上記実施形態で説明した認証処理における演算を演算器(認証回路107)を用いて行う。
続いて、データキャッシュDC_AとデータキャッシュDC_Bとのそれぞれに記憶されているデータ間で、上記実施形態で説明した認証処理における演算を演算器(認証回路107)を用いて行う。
(Step S97)
続いて、上記演算の結果は、データキャッシュDC_Bに格納される。
続いて、上記演算の結果は、データキャッシュDC_Bに格納される。
(Step S98)
続いて、データキャッシュDC_Aに保持されているホスト装置の演算結果とデータキャッシュDC_Bに保持されているNAND型フラッシュメモリの演算結果とを照合する。
続いて、データキャッシュDC_Aに保持されているホスト装置の演算結果とデータキャッシュDC_Bに保持されているNAND型フラッシュメモリの演算結果とを照合する。
(Step S99)
続いて、上記ステップS98の際の照合において、照合結果の一致が確認された場合、制御パラメータ(890)を更新する。
続いて、上記ステップS98の際の照合において、照合結果の一致が確認された場合、制御パラメータ(890)を更新する。
(Step S100)
続いて、NAND型フラッシュメモリ100は、全てのデータキャッシュDC_A〜DC_Cの情報をリセットする。ここまでの動作が終了すると、NAND型フラッシュメモリ100は、このシーケンスを抜け、レディ状態となる。
続いて、NAND型フラッシュメモリ100は、全てのデータキャッシュDC_A〜DC_Cの情報をリセットする。ここまでの動作が終了すると、NAND型フラッシュメモリ100は、このシーケンスを抜け、レディ状態となる。
(Step S101)
続いて、ホスト装置2000は、照合結果を確認するコマンドにより、メモリ100の外部にリードアウトされた照合結果を得る。
続いて、ホスト装置2000は、照合結果を確認するコマンドにより、メモリ100の外部にリードアウトされた照合結果を得る。
<秘匿情報の検査方法について>
次に、秘匿情報の検査方法について説明する。
次に、秘匿情報の検査方法について説明する。
検査フロー
図42に沿って、工場でシリコンが出来上がってから、NAND型フラッシュメモリ100を出荷するまでの過程で、本認証方法に関係する工程を示す。
図42に沿って、工場でシリコンが出来上がってから、NAND型フラッシュメモリ100を出荷するまでの過程で、本認証方法に関係する工程を示す。
図示するように、製造工程、テスト、秘匿データ書き込み、出荷の順に工程が進む。
(Step S71、S72)
まず、製造工程が終了すると、所定の検査テストを行って、良品チップ10をウェハから選別する。
まず、製造工程が終了すると、所定の検査テストを行って、良品チップ10をウェハから選別する。
(Step S73)
続いて、上記ステップS72の際の通常のテスト工程が終了した後、秘匿データを書き込む工程が行われ、正しく秘匿データが書かれたか否かをテストしなければならない。
続いて、上記ステップS72の際の通常のテスト工程が終了した後、秘匿データを書き込む工程が行われ、正しく秘匿データが書かれたか否かをテストしなければならない。
一方で、この際、秘匿領域101から秘匿データを直接読み出すことはできない。なぜなら、当該読出し機能はセキュリティーホールとなる恐れがあるためである。
(Step S74)
続いて、正しく秘匿データが書かれたNAND型フラッシュメモリ100について、出荷を行う。
続いて、正しく秘匿データが書かれたNAND型フラッシュメモリ100について、出荷を行う。
秘匿情報の間接的読み出し検査フロー
上記ステップS73の際、秘匿領域101から秘匿データを直接読み出すことは、セキュリティーホールとなる恐れがある観点から、行うことができない。
上記ステップS73の際、秘匿領域101から秘匿データを直接読み出すことは、セキュリティーホールとなる恐れがある観点から、行うことができない。
そこで、図43に沿って、直接データ読出し機能を提供せずに、記録されたデータの確認をするフローを説明する。
(Step S111)
まず、メモリセルアレイ11の秘匿領域101から、秘匿情報(Nkey等)の情報を読み出す。
まず、メモリセルアレイ11の秘匿領域101から、秘匿情報(Nkey等)の情報を読み出す。
(Step S112)
続いて、読み出した秘匿情報(Nkey等)のリード結果を、データキャッシュDC_Bに格納する。
続いて、読み出した秘匿情報(Nkey等)のリード結果を、データキャッシュDC_Bに格納する。
(Step S113)
続いて、NAND型フラッシュメモリ100の外部から、同一の秘匿情報(Nkey等)を、データキャッシュDC_Aに記憶させる。
続いて、NAND型フラッシュメモリ100の外部から、同一の秘匿情報(Nkey等)を、データキャッシュDC_Aに記憶させる。
(Step S114)
続いて、演算器(認証回路107)を用いて、データキャッシュDC_AのデータとデータキャッシュDC_Bのデータとの排他的論理和をとる。
続いて、演算器(認証回路107)を用いて、データキャッシュDC_AのデータとデータキャッシュDC_Bのデータとの排他的論理和をとる。
(Step S115)
続いて、排他的論理和の結果を、データキャッシュDC_Cに格納する。
続いて、排他的論理和の結果を、データキャッシュDC_Cに格納する。
(Step S116)
続いて、データキャッシュDC_Cのデータを検知する。
続いて、データキャッシュDC_Cのデータを検知する。
(Step S117)
この際、データキャッシュDC_Aのデータと、データキャッシュDC_Bのデータとが一致している場合(Yes)にはテストはパス(OK)である。一方、一致していない場合(No)テストはフェイルである。
この際、データキャッシュDC_Aのデータと、データキャッシュDC_Bのデータとが一致している場合(Yes)にはテストはパス(OK)である。一方、一致していない場合(No)テストはフェイルである。
具体的には、データキャッシュDC_Cには排他的論理和の結果が入っているから、データキャッシュDC_Cのデータが全て“0”の場合(Yes)、テストはパス(OK)である。一方、“1”である場合(No)、フェイルとなる。
まず、データキャッシュDC_Cのデータがすべて“0”であるかどうかの検知を行う。ここで、すべてのビットが“0”となっていれば(Yes)、テストはパスとなる。そうでなかった場合(No)、次のステップS118に続く。
(Step S118)
続いて、すべてのビットが“0”でない場合(No)、“1”の数を数える。この際、“1”の数が規定の数以下である場合(Yes)、多数決誤り訂正や訂正符号による誤り訂正が可能であると判断されるのでテストはパスとなる(OK)。一方、“1”の数が規定数以上であった場合(Mo)、テストはフェイルとなる(NG)。
続いて、すべてのビットが“0”でない場合(No)、“1”の数を数える。この際、“1”の数が規定の数以下である場合(Yes)、多数決誤り訂正や訂正符号による誤り訂正が可能であると判断されるのでテストはパスとなる(OK)。一方、“1”の数が規定数以上であった場合(Mo)、テストはフェイルとなる(NG)。
ここで、上記実施形態に記載した、特定ブロックへのアクセス制御に認証を用いる方法を用いて、秘匿領域101に記録された秘匿情報の代わりに、NAND型フラッシュメモリ100にハードワイヤードで構成した第2の秘匿情報を別途持っておき、同第2の秘匿情報によって秘匿領域101へのアクセス制御を行うという方法も可能である。この場合、データ読み出しだけではなく、データ書き込みやデータ消去等も第2の秘匿情報に基づく認証によって制御してもよい。
<作用効果>
第9の実施形態に係る認証装置、被認証装置及び認証方法によれば、少なくとも上記と同様の作用効果(1)乃至(5)を得ることができる。
第9の実施形態に係る認証装置、被認証装置及び認証方法によれば、少なくとも上記と同様の作用効果(1)乃至(5)を得ることができる。
更に、本実施形態では、秘匿領域101がアクセスされた場合、メモリセルアレイ11からセンスしたデータを、データキャッシュDC_A以外のデータキャッシュDC_B、DC_Cに留め外部への出力ができないようにして、レジスタリードコマンドが効かないように無効化する。一方、アクセスされたブロックが、秘匿領域101でない場合、通常通り、データキャッシュDC_Aを用いて、データ読み出しを行う。
このように、上記構成によれば、複数種類のデータキャッシュDC_A〜DC_Cを設け、外部からユーザがアクセスできないデータキャッシュDC_B、DC_Cのみで上記認証処理を実行する。そのため、上記認証処理に秘匿情報(NKey、SecretID等)を利用する際に、鍵情報(NKey)等の秘匿情報が外部から不正に読み取られない点で有利である。
加えて、上記ステップS88、S100に示すように、Busy状態からReady状態に戻る前に、データキャッシュDC_AD〜C_C中の鍵情報等の秘匿情報を全て消去する。そのため、安全性を確保することが可能である。
[第10の実施形態(コマンドマッピングの一例)]
第10の実施形態は、コマンドマッピングの一例に関するものである。この説明において
、上記実施形態と重複する部分の説明については、省略する。
第10の実施形態は、コマンドマッピングの一例に関するものである。この説明において
、上記実施形態と重複する部分の説明については、省略する。
<Read,Writeコマンドと親和性の良いコマンドマッピング例>
ここで、NAND型フラッシュメモリ100は、読出し用のコマンドとして、例えば、00h−Address−30hにより読出し対象のブロック及びページアドレスを指定する。Address部分はブロックアドレス、ページアドレス、更にページ内のバイト位置を示すカラムアドレスから構成されることが多い。カラムアドレス部分の入力データは無視されることもあれば、ページ読出し後のバイトポインタの設定に用いられて当該バイト位置からの読出しに用いられることもある。コマンド30hの入力後にNAND型フラッシュメモリ100は読出しのためのBusy状態となり、読出し完了後にReady状態へと遷移する。Ready状態へ遷移後、データ出力(Dout)が可能となり、REやDQS等を供給することでデータを読み出すことが可能となる。また、読み出したページ内で読み出すバイト位置を変更する場合は、05h−Address−E0hにて読み出したいバイト位置に相当するカラムアドレスを設定する。
ここで、NAND型フラッシュメモリ100は、読出し用のコマンドとして、例えば、00h−Address−30hにより読出し対象のブロック及びページアドレスを指定する。Address部分はブロックアドレス、ページアドレス、更にページ内のバイト位置を示すカラムアドレスから構成されることが多い。カラムアドレス部分の入力データは無視されることもあれば、ページ読出し後のバイトポインタの設定に用いられて当該バイト位置からの読出しに用いられることもある。コマンド30hの入力後にNAND型フラッシュメモリ100は読出しのためのBusy状態となり、読出し完了後にReady状態へと遷移する。Ready状態へ遷移後、データ出力(Dout)が可能となり、REやDQS等を供給することでデータを読み出すことが可能となる。また、読み出したページ内で読み出すバイト位置を変更する場合は、05h−Address−E0hにて読み出したいバイト位置に相当するカラムアドレスを設定する。
データ書き込み(記録)用のコマンドとしては、80h−Address−Data input−10hにより、書き込み対象のブロック及びページアドレスを指定する。ここで、Address部分はブロックアドレス、ページアドレス、更にページ内のバイト位置を示すカラムアドレスから構成されることが多い。カラムアドレス部分の入力データ
は無視されることもあれば、ページ書き込み用データ入力におけるバイトポインタの設定に用いられて当該バイト位置からの書き込みデータ入力に用いられることもある。コマンド10h入力後、NAND型フラッシュメモリ100は、書き込みのためのBusy状態となり、書き込み完了後Readyへと遷移する。
は無視されることもあれば、ページ書き込み用データ入力におけるバイトポインタの設定に用いられて当該バイト位置からの書き込みデータ入力に用いられることもある。コマンド10h入力後、NAND型フラッシュメモリ100は、書き込みのためのBusy状態となり、書き込み完了後Readyへと遷移する。
上記が、NAND型フラッシュメモリ100で広く用いられているコマンド体系である。上記実施形態に係る認証機能を実装する場合に、コマンドシーケンスをできるだけ共通化させることが回路の実装面積を極小化する上で好ましい。しかしながら、認証機能はセキュリティを要する分野で利用されることから、機能利用者を限定した方が望ましいという視点もある。
そこで、図44は、上記観点を考慮して、NAND型フラッシュメモリ100の上記Read,Writeコマンドと親和性の良いコマンドマッピング例を示している。
上記一般的なコマンドシーケンスと異なる点は、Security Prefixの入力コマンドを当該コマンドの前に付与している点である。ここで、Security Prefixは、単バイトで構成する場合、複数バイトで構成する場合が考えられる。コマンドSecurity Prefixは、当該認証機能を必要とする利用者にのみ開示される。利用者管理の観点では、コマンドSecurity Prefixは、複数バイトで構成されるほうが望ましい。
(a)で示すように、データ読出しコマンドシーケンスと同ように、IO端子に、順次、コマンド(Security Prefix)−コマンド(00h)−アドレス(ADD)−コマンド(30h)により読出し対象のブロック及びページアドレスが指定される。ここで、Addressに設定された値を更に利用者管理用に特別な値とすることも可能であり、若しくは内部にて無視される値とすることも可能である。
続いて、コマンド(30h)の入力後にNAND型フラッシュメモリ100は、読出しのためのBusy状態となり、読出し完了後にReady状態へと遷移する。Ready状態へ遷移後、データ出力(Dout)が可能となり、REやDQS等を供給することで、インデックス情報i、v、固有の暗号化秘密識別情報(E-SecretID)、共通に付される鍵管理情報(FKBv)等のデータを読み出すことが可能となる。
(b)で示すように、データ書き込みコマンドシーケンスと同様に、IO端子に、順次、コマンド(Security Prefix)−コマンド(80h)−アドレス(ADD)−データ(Din 32B)−コマンド(10h)を入力することにより、対象データの入力を行う。ここで、Addressに設定された値を更に利用者管理用に特別な値とすることも可能であり、若しくは内部にて無視される値とすることも可能である。ここで、本シーケンスは書き込みシーケンスと共通箇所が多いものの、実際にはセルアレイへのデータ書き込みは必要としなく、NAND型フラッシュメモリ100が認証処理の計算に必要とするデータ入力のために使用される。認証処理の計算に必要とするデータの例としては、ホスト装置2000の固有情報HCiや乱数等がある。
続いて、認証処理の計算が終了するまでの期間Busy状態となり、計算が終了し、かつ上記のように、データキャッシュDC_A〜DC_C中のセキュリティーデータが全てクリアされた後に、Ready状態へと遷移する。
続いて、コマンド(30h)の入力後にNAND型フラッシュメモリ100は、読出しのためのBusy状態となり、読出し完了後にReady状態へと遷移する。Ready状態へ遷移後、データ出力(Dout)が可能となり、REやDQS等を供給することで、インデックス情報i、v、固有の暗号化秘密識別情報(E-SecretID)、共通に付される鍵管理情報(FKBv)等のデータを読み出すことが可能となる。
(b)で示すように、データ書き込みコマンドシーケンスと同様に、IO端子に、順次、コマンド(Security Prefix)−コマンド(80h)−アドレス(ADD)−データ(Din 32B)−コマンド(10h)を入力することにより、対象データの入力を行う。ここで、Addressに設定された値を更に利用者管理用に特別な値とすることも可能であり、若しくは内部にて無視される値とすることも可能である。ここで、本シーケンスは書き込みシーケンスと共通箇所が多いものの、実際にはセルアレイへのデータ書き込みは必要としなく、NAND型フラッシュメモリ100が認証処理の計算に必要とするデータ入力のために使用される。認証処理の計算に必要とするデータの例としては、ホスト装置2000の固有情報HCiや乱数等がある。
続いて、認証処理の計算が終了するまでの期間Busy状態となり、計算が終了し、かつ上記のように、データキャッシュDC_A〜DC_C中のセキュリティーデータが全てクリアされた後に、Ready状態へと遷移する。
(b)で示すように、Ready状態へと遷移した後、ホスト装置2000は、IO端子に、順次、コマンド(05h)−アドレス(ADD)−コマンド(E0h)を入力し、認証処理の計算結果が保持されているカラムアドレスを指定することで結果の取得が可能となる。認証処理の計算結果の例としてはOneway−ID等がある。
<Set / Get featureコマンドと親和性の良いコマンドマッピング例>
次に、図45に沿って、本認証機能を適用したNAND型フラッシュメモリ100のコマンド構成の別の例を示す。NAND型フラッシュメモリ100には、当該メモリ100の機能を有効化するためのSetFeatureと呼ばれるコマンド、及び、当該メモリ100の機能の有効化・無効化状況を読み出すためのGet Featureと呼ばれるコマンドがある。これらのコマンドは、例えば、高速データ転送用の相補信号である/RE、/WE、/DQS等の入力を有効化するため等に用いられる。
次に、図45に沿って、本認証機能を適用したNAND型フラッシュメモリ100のコマンド構成の別の例を示す。NAND型フラッシュメモリ100には、当該メモリ100の機能を有効化するためのSetFeatureと呼ばれるコマンド、及び、当該メモリ100の機能の有効化・無効化状況を読み出すためのGet Featureと呼ばれるコマンドがある。これらのコマンドは、例えば、高速データ転送用の相補信号である/RE、/WE、/DQS等の入力を有効化するため等に用いられる。
Set Featureは、EEh−Address—Data inputにて機能の設定を行う。ここで、Addressには機能番号が設定され、Data inputには当該機能番号にて示される機能のパラメータが入力される。その後、機能有効化のためのBusy期間があり、有効化の後、Readyへと遷移する。
Get Featureは、EFh−Address—Data outputにて、機能の有効化・無効化状況の読出しを行う。ここで、Addressには機能番号が設定され、Data outputには当該機能番号にて示される機能のパラメータが出力される。AddressとDataoutputとの間には、内部での設定パラメータ読出しのためのBusy期間が存在する。
本実施形態は、これらSet Feature、Get Featureを流用したコマンドシーケンスの例である。
(a)に示すように、コマンドシーケンスは、上記と同様であるが、指定するAddressが異なる。ここで、Addressは単バイトで構成する場合、複数バイトで構成する場合が考えられる。Addressは当該認証機能を必要とする利用者にのみ開示される。利用者管理の観点では、Addressは複数バイトで構成されるほうが望ましい。Data output及びData inputの例としては、上記図45にて示したものと同様のインデックス情報i、v、固有の暗号化秘密識別情報(E-SecretID)、共通に付される鍵管理情報(FKBv)等である。
(b)に示すように、Data input用のコマンド(EEh)−アドレス(ADD)−データ(Din)のコマンドシーケンスは、同時に認証処理の実行を誘発し、Busy期間中にNAND型フラッシュメモリ100は認証処理の計算を行う。
続いて、計算が終了し、かつセキュリティーデータがデータキャッシュよりクリアされた後に、Ready状態へと遷移する。Ready状態へと遷移した後、ホスト装置2000は、Oneway−IDを読み出すことが可能である。
<作用効果>
第10の実施形態に係る認証装置、被認証装置及び認証方法によれば、少なくとも上記と同様の作用効果(1)乃至(5)を得ることができる。
第10の実施形態に係る認証装置、被認証装置及び認証方法によれば、少なくとも上記と同様の作用効果(1)乃至(5)を得ることができる。
更に、本実施形態では、図44に示したように、認証機能に必要なコマンドを、NAND型フラッシュメモリ100のコマンドシーケンスとできるだけ共通化させることできる。そのため、セキュリティを考慮しつつ、回路の実装面積を極小化できるため、上記実施形態に係る認証機能を実装する場合により有効である。
また、図45に示したように、NAND型フラッシュメモリ100の機能を有効化するためのSet Featureと呼ばれるコマンド、及び、NAND型フラッシュメモリ100の機能の有効化・無効化状況を読み出すためのGet Featureと呼ばれるコマンドに対しても、必要に応じて共通化させて適用が可能である。
ここで、Busy状態からReady状態へ戻る前のタイミングで、データキャッシュDC_A〜DC_Cのデータを全てクリアする点は、上記と同様である。
[第11の実施形態(メモリカード、コンテンツ保護、HDDへの一応用例)]
第11の実施形態は、メモリカード、コンテンツ保護、HDDへの一応用例の関するものである。この説明において、上記実施形態と重複する部分の説明については、省略する。
第11の実施形態は、メモリカード、コンテンツ保護、HDDへの一応用例の関するものである。この説明において、上記実施形態と重複する部分の説明については、省略する。
メモリカードへの応用例
図46を用い、本認証機能を適用したNAND型フラッシュメモリ1000を搭載したメモリカードの構成例を示す。
図46を用い、本認証機能を適用したNAND型フラッシュメモリ1000を搭載したメモリカードの構成例を示す。
図示するように、メモリカード1000は、メモリ100の動作を制御する機能、ホスト装置2000側とのインターフェースを制御する機能等を有するコントローラ200を搭載する。
NANDパッケージ内に積層された複数のNAND型フラッシュメモリチップ100(MCP1)、(MCP2)を少なくとも1つ以上有する。ここで、NANDパッケージ内の少なくとも1つ以上のメモリ100が、上記実施形態に係る認証機能・被認証機能を有すれば良い。換言すると、NANDパッケージ内のメモリ100の全てが、上記実施形態における認証機能・被認証機能を有していなくてもよい。更に、メモリカード1000内に搭載されたNANDパッケージの全てが実施形態における認証機能・被認証機能を有していなくともよい。明確化のために、本実施形態のNAND型フラッシュメモリ100は、NANDパッケージを指すこともあれば、NANDフラッシュメモリチップを指すこともある。
メモリカード1000内のコントローラ200は、NANDパッケージ内のNAND I/Fを経由して、上記実施形態に係る認証機能・被認証機能を制御する機能を有する。ここで、複数のNANDパッケージのいずれか一つのみの認証機能・被認証機能を制御する機能であってもよいし、複数のNANDパッケージの各々の認証機能・被認証機能を制御する機能であってもよい。更に、NANDパッケージ内のいずれか一つのメモリ100の認証機能・被認証機能を制御する機能であってもよいし、NANDパッケージ内の各々のメモリ100の認証機能・被認証機能を制御する機能であってもよい。
コンテンツ保護への応用例1
図47を用い、上記認証機能を適用したNAND型フラッシュメモリ100を搭載したメモリカード1000のコンテンツ保護への応用例1を示す。簡略化のため、本発明明細書内で既に説明した内容については説明を割愛する。
図47を用い、上記認証機能を適用したNAND型フラッシュメモリ100を搭載したメモリカード1000のコンテンツ保護への応用例1を示す。簡略化のため、本発明明細書内で既に説明した内容については説明を割愛する。
メモリカード1000内には、コントローラ200、NANDパッケージ(MCP1)、(MCP2)が搭載されている。ここで、NANDパッケージ(MCP1)、(MCP2)は、上記実施形態に係る認証機能・被認証機能を有する。
ホスト装置2000は、上記実施形態にて示した認証処理により、NAND型フラッシュメモリ100のNANDパッケージ(MCP1)、(MCP2)は、秘密識別情報Secret IDの正当性を確認する。
正当性確認後、ホスト装置2000は、秘密識別情報Secret IDに基づいて、第5の実施形態において説明した方法を用い、EMIDの計算処理を行う。
ここで、NANDパッケージ(MCP2)は、コンテンツ(Content)書き込み時に、EMIDとコンテンツを関連付けるためのBinding Dataを生成する。Binding Dataには、コンテンツを暗号化・復号化するための鍵に関わるデータを含んでおくことが望ましい。Binding Dataは、カード55内に搭載されたNANDパッケージ(MCP1)、(MCP2)のいずれかに記録される。ここで、Binding Dataが記録されるNANDパッケージは、認証処理に用いた秘密識別情報Secret IDを有するNANDパッケージ(MCP1)であってもよいし、他のNANDパッケージ(MCP2)であってもよい。図47では後者の例を示しているがこれに限られない。また、コンテンツの記録位置も同様に、いずれのNANDパッケージであってもよい。
コンテンツ(Content)再生時には、EMIDとコンテンツを関連付けるためのBindingDataと秘密識別情報Secret IDとを認証処理して得られたEMIDと、コンテンツの関連性を計算・確認して、関連性が確認された場合にのみコンテンツを再生する。
上記構成により、コンテンツ(Content)は、秘密識別情報Secret IDと関連付けられる。そのため、同一の秘密識別情報Secret IDを有さない他のメモリカードにコンテンツやBinding Dataを不正に複製しても、コンテンツの再生ができなくなる効果が得られる点で、有利である。
HDDへの応用例1
図48を用い、本認証機能を適用したNAND型フラッシュメモリ100を利用したハードディスクドライブ(HDD)の構成例1を示す。
図48を用い、本認証機能を適用したNAND型フラッシュメモリ100を利用したハードディスクドライブ(HDD)の構成例1を示す。
図示するように、HDDパッケージ400には、少なくとも一つ以上のNANDパッケージ(MCP1)を搭載し、内少なくとも一つのNANDパッケージは上記実施形態に係る認証機能・被認証機能を有する。
また、HDDパッケージ400には、少なくとも一つのHDD210を搭載する。
更に、NANDパッケージ(MCP1)の制御、HDD210の制御、ホスト装置とのインターフェースの制御等を実行するブリッジコントローラ2000を搭載する。ブリッジコントローラ2000は、単独の集積回路から構成されていてもよいし、複数の集積回路から構成されていてもよい。また、集積回路とファームウェアの組み合わせにより機能を実現してもよい。
NANDパッケージ(MCP1)内の認証機能・被認証機能は、ブリッジコントローラ2000を経由してホスト装置であるHDD210へと提供される。
HDDへの応用例2
図49を用い、本認証機能を適用したNAND型フラッシュメモリ100を利用したハードディスクドライブ(HDD)の別の構成例を示す。
図49を用い、本認証機能を適用したNAND型フラッシュメモリ100を利用したハードディスクドライブ(HDD)の別の構成例を示す。
図示するように、HDDパッケージ400には、上記図46にて説明したメモリカード1000を接続するためのメモリカードソケット550を有する。
また、HDDパッケージ400には、少なくとも一つの以上のHDD210を搭載する。更に、メモリカード1000の制御、HDD210の制御、ホスト装置とのインターフェースの制御等を実行するブリッジコントローラ190を搭載する。ブリッジコントローラ190は、単独の集積回路から構成されていてもよいし、複数の集積回路から構成されていてもよい。また、集積回路とファームウェアの組み合わせにより機能を実現してもよい。
メモリカード1000内の認証機能・被認証機能は、ブリッジコントローラ190を経由してホスト装置であるHDD210へと提供される。
コンテンツ保護への応用例2
図50にて、本認証機能を適用したNAND型フラッシュメモリ100を利用したハードディスクドライブ(HDD)のコンテンツ保護への応用例を示す。本実施形態は、図48にて示したHDD構成を例に取っているが、図48にて示したHDD構成にも適用可能である。
図50にて、本認証機能を適用したNAND型フラッシュメモリ100を利用したハードディスクドライブ(HDD)のコンテンツ保護への応用例を示す。本実施形態は、図48にて示したHDD構成を例に取っているが、図48にて示したHDD構成にも適用可能である。
図示するように、HDDパッケージ400A、200B内には、ブリッジコントローラ190A、190B、メモリカードソケット550A、550B、HDD210A、210Bがそれぞれ搭載されている。
ここで、メモリカード1000は、上記実施形態のいずれかの認証機能・被認証機能を有する。ホスト装置2000は、上記実施形態にて示した認証処理によりNAND型フラッシュメモリ100の秘密識別情報Secret IDの正当性を確認する。正当性確認後、ホスト装置2000は、秘密識別情報Secret IDに基づいて第5の実施形態にて示した方法にて、EMIDの計算処理を行う。
コンテンツ(Cntent)書き込み時には、EMIDとコンテンツを関連付けるためのBinding Dataを生成する。Binding Dataにはコンテンツを暗号化・復号化するための鍵に関わるデータを含んでおくことが望ましい。Binding Dataは、メモリカード1000、若しくは、HDD210A、210Bのいずれかに記録される。ここでは、HDD210A、210Bに記録される例を示しているがこれに限られない。また、コンテンツの記録位置も同様に、カード55若しくはHDD210A、210Bのいずれであってもよい。
コンテンツ(Content)再生時には、EMIDとコンテンツを関連付けるためのBindingDataと、秘密識別情報Secret IDを認証処理して得られたEMIDと、コンテンツの関連性を計算・確認し関連性が確認された場合にのみコンテンツを再生する。
本実施形態は、カードソケット550Aを経由してメモリカード1000内のNAND型フラッシュメモリ100が有する認証機能・被認証機能を利用する例であるが、図48に示したHDDが直接NANDパッケージを搭載し、制御する構成においても適用可能である。この場合、メモリカードをNANDパッケージに置き換えればよい。
更に、カードソケット550A、550Bを有するHDDについて適用可能な応用例として、同様のHDDパッケージが複数あった場合、両HDDパッケージにコンテンツやBinding Dataを複製することで、カードを移動するのみでいずれのHDDに記録されたコンテンツを再生することも可能となる。ここで、Binding Dataは、HDDでなく、カードに記録されていてもよいし、または両方に記録されていてもよい。
本構成により、コンテンツ(Content)は、メモリカード1000若しくはNANDパッケージ内の秘密識別情報Secret IDと関連付けられるため、同一の秘密識別情報Secret IDを有さないメモリカード1000にコンテンツやBinding Dataを不正複製しても、コンテンツの再生ができなくなる効果が得られる。
更に、図49にて示したHDDパッケージがメモリソケットを有する例においては、メモリカードのみを移動することで複数のHDDに記録されたコンテンツを再生することが可能となる。これは一般にメモリカードに比較し、HDDは筐体が大きく、据え置き用途等で用いられることもあることから、可搬性上有利である。
コンテンツ保護への応用例3
図51を用い、本認証機能を適用したNAND型フラッシュメモリ100を利用したハードディスクドライブ(HDD)のコンテンツ保護への応用例3を説明する。本実施形態は、ホスト装置2000が、メモリカードソケット550を有し、外付けHDD210を利用する例である。
図51を用い、本認証機能を適用したNAND型フラッシュメモリ100を利用したハードディスクドライブ(HDD)のコンテンツ保護への応用例3を説明する。本実施形態は、ホスト装置2000が、メモリカードソケット550を有し、外付けHDD210を利用する例である。
図示するように、HDDパッケージ400内には、ブリッジコントローラ2000、HDD210が搭載されている。
ホスト装置2000には、メモリカードソケット550に挿入されるメモリカード1000内に備える認証機能、カード制御機能が搭載されている。メモリカード1000には、上記実施形態いずれかに係る認証機能・被認証機能を有するNANDパッケージが搭載されている。
上記構成において、ホスト装置2000は、上記実施形態にて示した認証処理によりNAND型フラッシュメモリ100の秘密識別情報Secret IDの正当性を確認する。
正当性確認後、ホスト装置2000は、秘密識別情報Secret IDに基づいて、上記第5の実施形態に係る方法を用い、EMIDの計算処理を行う。
コンテンツ(Content)書き込み時には、EMIDとコンテンツを関連付けるためのBinding Dataを生成する。Binding Dataには、コンテンツを暗号化・復号化するための鍵に関わるデータを含んでおくことが望ましい。Binding Dataは、メモリカード1000、若しくは、HDD210のいずれかに記録される。ここでは、後者の例を示しているがこれにと限られない。また、コンテンツの記録位置も同様に、カード55若しくはHDD210のいずれであってもよい。
コンテンツ(Content)再生時には、EMIDとコンテンツを関連付けるためのBindingDataと、秘密識別情報Secret IDを認証処理して得られたEMIDと、コンテンツの関連性を計算・確認し関連性が確認された場合にのみコンテンツを再生する。
本実施形態は、カードソケット550を経由してメモリカード1000内のNAND型フラッシュメモリ100が有する認証機能・被認証機能を利用する例であるが、ホスト装置2000は、直接NANDパッケージを搭載し、制御する構成においても適用可能である。この場合、前記のメモリカード1000をNANDパッケージに置き換えればよい。
更に、カードソケット550を有するホスト装置2000について適用可能な応用例として、同様のホスト装置2000が複数あった場合、メモリカード1000とHDDパッケージ400を別のホスト装置2000と接続することで、いずれのホスト装置2000でもコンテンツを再生することも可能となる。ここで、コンテンツやBinding Dataは、HDD210でなく、カード1000に記録されていてもよいし、または両方に記録されていてもよい。
本構成により、コンテンツはメモリカード1000若しくはNANDパッケージ内の秘密識別情報Secret IDと関連付けられるため、同一の秘密識別情報Secret IDを有さないメモリカードにコンテンツやBinding Dataを不正複製しても、コンテンツの再生ができなくなる効果が得られる。更に、メモリカード1000とHDD210を移動することで複数のホスト装置でコンテンツを再生することが可能となる。
コンテンツ保護への応用例4
図52を用い、本認証機能を適用したNAND型フラッシュメモリ100を利用したハードディスクドライブ(HDD)のコンテンツ保護への応用例4を説明する。本実施形態は、ホスト装置2000がメモリカードソケット550を有し、更に内蔵HDD210を利用した例である。
図52を用い、本認証機能を適用したNAND型フラッシュメモリ100を利用したハードディスクドライブ(HDD)のコンテンツ保護への応用例4を説明する。本実施形態は、ホスト装置2000がメモリカードソケット550を有し、更に内蔵HDD210を利用した例である。
図示するように、HDDパッケージ400内には、ブリッジコントローラ2000、HDD210が搭載されている。
ホスト装置2000には、メモリカードソケット550に挿入されるメモリカード1000内に備える認証機能、カード制御機能が搭載されている。メモリカード1000には、上記実施形態いずれかに係る認証機能・被認証機能を有するNANDパッケージが搭載されている。
上記構成において、ホスト装置2000は、上記実施形態にて示した認証処理によりNAND型フラッシュメモリ100の秘密識別情報Secret IDの正当性を確認する。
正当性確認後、ホスト装置2000は、秘密識別情報Secret IDに基づいて、上記第8の実施形態に係る方法を用い、EMIDの計算処理を行う。
コンテンツ(Content)書き込み時には、EMIDとコンテンツを関連付けるためのBinding Dataを生成する。Binding Dataには、コンテンツを暗号化・復号化するための鍵に関わるデータを含んでおくことが望ましい。Binding Dataは、メモリカード1000、若しくは、HDD210のいずれかに記録される。ここでは、後者の例を示しているがこれにと限られない。また、コンテンツの記録位置も同様に、メモリカード1000若しくはHDD210のいずれであってもよい。
コンテンツ(Content)再生時には、EMIDとコンテンツを関連付けるためのBindingDataと、秘密識別情報Secret IDを認証処理して得られたEMIDと、コンテンツの関連性を計算・確認し関連性が確認された場合にのみコンテンツを再生する。
本実施形態は、カードソケット550を経由してメモリカード1000内のNAND型フラッシュメモリ100が有する認証機能・被認証機能を利用する例であるが、ホスト装置2000は、直接NANDパッケージを搭載し、制御する構成においても適用可能である。この場合、前記のメモリカード1000をNANDパッケージに置き換えればよい。
更に、カードソケット550を有するホスト装置2000について適用可能な応用例として、同様のホスト装置2000が複数あった場合、メモリカード1000とHDDパッケージ400を別のホスト装置2000と接続することで、いずれのホスト装置2000でもコンテンツを再生することも可能となる。ここで、コンテンツやBinding Dataは、HDD210でなく、メモリカード1000に記録されていてもよいし、または両方に記録されていてもよい。
本構成により、コンテンツはメモリカード1000若しくはNANDパッケージ内の秘密識別情報Secret IDと関連付けられるため、同一の秘密識別情報Secret IDを有さないメモリカードにコンテンツやBinding Dataを不正複製しても、コンテンツの再生ができなくなる効果が得られる。更に、メモリカード1000とHDD210を移動することで複数のホスト装置でコンテンツを再生することが可能となる。
[第9の実施形態の変形例(データキャッシュ利用のその他の一例)]
本変形例は、上記第9の実施形態で説明したデータキャッシュの認証処理への利用のその他の構成例に関するものである。この説明において、上記実施形態と重複する部分の説明については、省略する。
本変形例は、上記第9の実施形態で説明したデータキャッシュの認証処理への利用のその他の構成例に関するものである。この説明において、上記実施形態と重複する部分の説明については、省略する。
<センスアンプおよびその周辺回路の構成例>
上記センスアンプおよび周辺回路の構成例については、図53のように示される。図示するように、本変形例では、DC_A、DC_B、DC_C、DC_Sがデータキャッシュ12であり、DC_Aのみが、カラム制御回路を介してデータ線と接続されており、チップ外部とのデータの授受に使用される。またDC_Sは、データに応じてセンスアンプの動作を制御する用途で使われるラッチである。DC_B、DC_C、DC_SはDC_Aとセンスアンプの間のバス(LBUS)に並列に接続されてデータキャッシュとして使用され、外部とデータの授受を行う場合にはDC_Aを介する必要がある。カラム制御回路は、カラムアドレスに応じたアドレスのDC_Aをデータ線と接続する。NANDフラッシュメモリが通常の動作で使用される場合には、アドレス制御回路から供給されたカラムアドレスを用いるが、本提案の認証シーケンスを行う場合には演算器が指定するアドレスを用いる。通常のアドレスを使用するか、演算器のアドレスを使用するかはモード切替信号によって切り替えられるようになっている。
上記センスアンプおよび周辺回路の構成例については、図53のように示される。図示するように、本変形例では、DC_A、DC_B、DC_C、DC_Sがデータキャッシュ12であり、DC_Aのみが、カラム制御回路を介してデータ線と接続されており、チップ外部とのデータの授受に使用される。またDC_Sは、データに応じてセンスアンプの動作を制御する用途で使われるラッチである。DC_B、DC_C、DC_SはDC_Aとセンスアンプの間のバス(LBUS)に並列に接続されてデータキャッシュとして使用され、外部とデータの授受を行う場合にはDC_Aを介する必要がある。カラム制御回路は、カラムアドレスに応じたアドレスのDC_Aをデータ線と接続する。NANDフラッシュメモリが通常の動作で使用される場合には、アドレス制御回路から供給されたカラムアドレスを用いるが、本提案の認証シーケンスを行う場合には演算器が指定するアドレスを用いる。通常のアドレスを使用するか、演算器のアドレスを使用するかはモード切替信号によって切り替えられるようになっている。
<センスアンプ、データキャッシュの等価回路例>
図54は、図53中のセンスアンプ77、およびデータキャッシュ12の等価回路例について示すものである。
図54は、図53中のセンスアンプ77、およびデータキャッシュ12の等価回路例について示すものである。
以下において、前記第4乃至11の実施形態うちの複数の実施形態が共存するシステム応用例を示す。
図55を参照して、複数の実施形態が共存するホスト装置2000及びNAND型フラッシュメモリ100の構成例を説明する。複数の実施形態を1つのシステムの中で実現する場合、ホスト装置2000及びメモリ100は、各々各実施形態に対応した認証に要する情報を「スロット」と呼ばれる集合内に有する。
図55を参照して、複数の実施形態が共存するホスト装置2000及びNAND型フラッシュメモリ100の構成例を説明する。複数の実施形態を1つのシステムの中で実現する場合、ホスト装置2000及びメモリ100は、各々各実施形態に対応した認証に要する情報を「スロット」と呼ばれる集合内に有する。
各スロットは、各実施形態に必要とされる認証に要する情報及び機能の集合体として定義される。一例として、図55に示すシステムでは、スロットXは第5の実施形態に必要とされる情報及び機能の集合体であり、スロットYは第5の実施形態の変形例1のそれであり、スロットZは第5の実施形態の変形例2のそれである。図55では、説明のため、各スロットにおいてホスト装置2000が必要とする認証機能を包含した機能集合体をホスト認証回路2001として記述している。また、図55では、説明のため、各スロットにおいてNAND型フラッシュメモリ100が必要とする認証機能を包含した機能集合体をメモリ認証回路107´として記述している。
ここで、ホスト装置2000及びメモリ100の間の認証において、ホスト装置2000はスロットに割り当てられたスロット番号を指定する。すなわち、スロット番号は各認証機能及び認証に用いるデータの選択を意味しており、広義には必要とされる認証レベルによって機能選択をすることを意味する。メモリ100は指定されたスロット番号に応じて、使用する認証に要するデータをスロット選択部301により選択し、また認証に要する機能に相当した処理を行う。ホスト装置2000も、自身がスロット選択部301により指定したスロット番号に応じて、使用する認証に要するデータを選択し、また認証に要する機能に相当した処理を行う。
このスロットという概念の導入により、必要とされる認証レベルが異なるアプリケーションにおいても、各々のアプリケーションに適した実施形態を選択することができ、また、それらを共通のスロット番号としてホスト装置2000及びメモリ100間で通信を行うことにより、互換性問題や認証不整合を生じることなく、さまざまな組み合わせのホスト装置2000及びメモリ100を運用することが容易となる。
すなわち、図55では、ホスト装置2000はスロットX,Y,Zに対応し、NAND型フラッシュメモリ100はスロットX,Y,Z及びその他のスロットに対応している例を示したが、これに限らず、ホスト装置2000がスロットXのみ、スロットX,Yの2つ、またはスロットX,Y,Z及びその他のスロットに対応している場合、同様にメモリ100がスロットXのみ、スロットYのみ、スロットZのみ、スロットX,Yの2つ、またはスロットX,Y,Zのスロットに対応している場合にも拡張可能である。更には、ホスト装置2000が複数種類存在する場合、例えばホスト装置2000AはスロットXのみ、ホスト装置2000BはスロットX,Yに対応している場合、同様にNAND型フラッシュメモリ100がスロットXのみ、スロットYのみに対応している場合など、この例に縛られず、さまざまな形で運用を拡張することも可能である。
次に、図56を参照してスロットの利用方法について示す。前述した通り、複数のスロットを備えることにより、1つのシステムにおいて、認証レベルが異なる複数のアプリケーションに対応することができる。図56では複数のアプリケーションに対応させた例を示している。スロットO〜Tは各々アプリケーションA〜Gと対応関係を有している。例えば、アプリケーションAにおける認証処理ではスロットOが利用される。また、アプリケーションCにおける認証処理ではスロットPが利用される。ここで、スロットOはアプリケーションAに加えてアプリケーションBとも対応関係を有している。
一般にアプリケーションは様々な基準に従って分類され、利用される。図56ではコンテンツ種別などによって分類され、スロットを割り当てられる場合を示している。一例として図56では、コンテンツデータの内容(本、音楽、ゲームなど)に従ってアプリケーションを分類し、異なるスロットを割り当てている。
一方、異なるアプリケーションであっても、何等かの理由により同一のスロットを割り当てることも可能である。例えば図56において、アプリケーションAはSD(Standard Definition)の非プレミアム映画データであり、アプリケーションBはHD(High Definition)のプレミアム映画データである場合、同一のスロットOを割り当てることが可能である。アプリケーションA,Bはいずれも映画のコンテンツデータに関するものであるという共通点があるので、同一のスロットを割り当てて、同一の認証機能を共用することができる。
ただし、必要とされる認証機能が異なる場合がある。例えばSD映画コンテンツとHD映画コンテンツでは、HD映画コンテンツの方が必要とされるセキュリティーレベルが高く、必要とされる機能も多い場合がある。このような場合には、HD映画コンテンツとSD映画コンテンツとに異なるスロットを割り当てることは可能である。同様にアプリケーションC乃至Eでは、各々電子書籍、音楽、ゲームなどを割り当てることができる。
その他、データ保護の態様や用途に基づいて、アプリケーションの割り当て方を決定してもよい。例えば、企業内の秘匿情報の保護を目的としたアプリケーションと、個人情報の保護などを目的としたアプリケーションとがある場合に、両者に別々のスロットを割り当てることができる。
また、同一カテゴリーに属する複数のアプリケーションを、データの利用態様に従って分類し、それぞれ異なるスロットを割り当てることも可能である。例えば、医療関係のデータ保護に関する複数のアプリケーションがある場合、これらを利用場所(サイト)の違い(例えば各病院、各医療現場など)で分類し、異なるスロットを割り当てることができる。管理が必要となるものなどはProprietary applicationとして分類し、各々異なるスロットを割り当てることができる。
また、複数のアプリケーションが同一のスロットを共有するが、認証に要するデータや機能が異なるような運用をしてもよい。スロットは認証に要するデータ及び機能を含むと説明したが、これはすなわち市場において様々なホスト装置2000、さまざまなNAND型フラッシュメモリ100が存在した場合でも混乱なく運用することを実現できることを意味しており、逆に、各病院や各医療現場などごく限られた範囲内で運用をするなど、さまざまなホスト装置2000、さまざまなNAND型フラッシュメモリ100をそもそも想定する必要がない場合も考えられる。この場合は、医療関係という分類でスロットを割り当て、ただし同一スロット番号であっても、認証に要するデータ及び機能に複数のバリエーションがあってもよい。これらは各サイトでの運用基準に照らし合わせて対応を定めればよい。
次に、図57を参照して、スロットの大分類方法と、ホスト装置2000及びメモリ100への鍵割り当て方法の例を説明する。図56の場合と同様に、スロットは各アプリケーションと対応付けて割り当てられている。
ここで、割り当ては各々のホスト装置2000及びNAND型フラッシュメモリ100の製造者及び製造者間での独自の取り決めによって行うことも可能である。一方で、製造者やサービス事業者などのステークホルダーで構成される団体(例えば標準化団体)によって取り決めを行うこともできる。しかし、全てのスロットを標準化団体によって用途を定めてしまうと、ある製造者のみが利用したいアプリケーションなどにおいては、取り決めの自由度が損なわれてしまう。図57では、ある範囲のスロットの番号(図57では、スロット番号0乃至スロット番号M)を標準化団体によって定められたアプリケーションの標準用途領域とし、ある範囲のスロットの番号(図57では、スロット番号M+1乃至スロット番号M+N)を各ステークホルダーによって任意に定められる非標準用途領域としている。これにより、共通アプリケーションにおける広範囲での互換性確保と、個別アプリケーションにおける自由度確保を両立させることができる。各々のスロットに対しては、前述の認証に要するデータ及び機能が付されている。ここで、認証に要するデータのうち、標準化団体や各製造者などによって付与・適用されるものをキーセット(Key Set)と呼ぶ。ホスト装置2000に付与・適用されるキーセットはホストキーセット(Host Key Set)と呼び、メモリ100に付与・適用されるキーセットはメモリキーセット(Memory Key Set)と呼ぶ。各スロットには異なる、もしくは一部スロット間では共用されるキーセットが付与・適用される。
次に、図58を参照して各キーセットの整合をとり、互換性を確保した上で配布する方法を示す。本例では、各キーセットは鍵発行/管理センタ3000によって各々の製造者に配布され、各装置へと適用される。メモリデバイス(Memory Device)は各々複数の製造者(A,B,C)によって製造され、各々必要とする認証機能範囲は異なっていてもよい。また、ホスト装置(Host Device)も複数の製造者(P,Q)によって製造され、各々必要とする認証機能範囲は異なっていてもよい。本例では、メモリデバイスにおいてはある範囲のスロット番号については互換性を確保するためにいずれの製造者が製造するメモリデバイスであっても、最低限適用すべきスロット番号(最低保証スロット)と当該スロット番号が要する認証機能範囲を定めて運用する例を示している。
例えば、スロット番号0乃至スロット番号Lは前述の第4の実施形態に対応する認証機能及び用途とし、スロット番号L+1及至L+4は前述の第5の実施形態に対応する認証機能及び用途とし、スロット番号L+5乃至L+6は前述の第5の実施形態の変形例1に対応する認証機能及び用途とし、スロット番号L+7乃至Mは前述の第5の実施形態の変形例2に対応する認証機能及び用途とし、いずれのメモリデバイスもスロット番号0乃至Mに相当する認証機能及びKey Setを有するように構成するなどである。
最低保証スロットは、主に前述の標準化団体によって定められた標準用途領域や、非標準用途領域や、もしくはその一部や、それらの組み合わせなどから構成されていてもよい。例えば、前述の例におけるスロット番号0乃至Mを最低保証スロットとし、このうち0乃至Lを標準化団体によって定められた標準用途領域として運用し、L+1乃至Mを非標準用途領域として運用する。ただし、メモリデバイスが有する認証機能やKey Setについては互換性確保のために標準用途領域であっても、非標準用途領域であっても標準化団体によって定められたものとする。最低保証スロット以外の領域については、いずれのスロット番号をサポートするかは各製造者に委ねられる。例えば、図58では、製造者Aはスロット番号M+1乃至スロット番号M+Xをサポートし、製造者Bはスロット番号M+1乃至スロット番号M+Yをサポートし、製造者Cはスロット番号M+1乃至スロット番号M+Zをサポートしている。
一方、ホスト装置においては、メモリデバイス側で最低保証スロットを定義していること、またホスト装置は通常、各々の用途別に製造されるという属性があることから、いずれのスロット番号をサポートするかは各製造者に委ねられる。ここで最低保証スロットもしくは標準用途領域のスロット番号範囲に対応するホスト装置を製造する場合、ホスト装置は全てのメモリデバイスを認証するに足るホストキーセットが付与・適用される(図58では、製造者Pが製造するホスト装置)。
一方で、それ以外の範囲においては、ホスト装置製造者とメモリ製造業者間の取り決めによって、限られた範囲での互換性確保で十分なアプリケーションの場合、ホスト装置は全てのメモリデバイスを認証するに足るホストキーセットではなく、特定のメモリデバイスを認証するに足るホストキーセットが付与・適用される(図58では、製造者Qが製造するホスト装置)。具体的には、前述の実施例における秘密情報HKeyi,j(i=1,…,m。なお、jは当該HKeyi,jにおいては固定の値である)のうち、iが各メモリデバイスが有するNKeyiに対応している。すなわち、ホスト装置がHKeyi,j(i=1)のみを有する場合、当該ホスト装置はNKeyi(i=1)を有するメモリデバイス(例えば、製造者Aが製造するメモリデバイス)を認証する機能のみを有するということになる。またあるいは、ホスト装置がHKeyi,j(i=3)のみを有する場合、当該ホスト装置はNKeyi(i=3)を有するメモリデバイス(例えば、製造者Cが製造するメモリデバイス)を認証する機能のみを有するということになる。つまり、ホスト装置が特定のメモリデバイスと認証する場合、対象のメモリデバイスのiに対応する秘密情報HKeyi,jが付与・適用される。
以上、本発明のいくつかの実施の形態を説明したが、これらの実施の形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施の形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施の形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1000・・・メモリカード、 2000・・・ホスト装置、 3000・・・鍵発行/管理センタ、 100・・・メモリ、 200・・・コントローラ。
Claims (2)
- メモリデバイスであって、
少なくとも前記メモリデバイスの出荷後において、前記メモリデバイス外部からの読出し及び書き込みが禁止される第1の記憶領域と、
前記メモリデバイス外部からの読出しは許可されるが、書き込みが禁止される第2の記憶領域と、
前記メモリデバイス外部からの読出し及び書き込みが許可される第3の記憶領域と
を備え、
前記第1の記憶領域は、第1鍵情報(NKey)と、識別情報(SecretID)を格納するための領域であり、
前記第2の記憶領域は、第2鍵情報(Fkey)を用いて前記識別情報を暗号化した暗号化識別情報(E−SecretID)を格納するための領域であり、
前記第3の記憶領域は、前記第2鍵情報を暗号化した暗号化第2鍵情報(FKB)を格納するための領域であり、
ホストデバイスとの認証のために、前記メモリデバイスは、
前記ホストデバイスに対し、前記暗号化第2鍵情報(FKB)を出力し、
前記ホストデバイスに対し、前記暗号化識別情報(E−SecretID)を出力し、
前記ホストデバイスから受領した情報(HC)と、前記第1鍵情報を用いて、第3鍵情報(HKey)を生成し、
前記ホストデバイスから受領した乱数(RN)と、前記第3鍵情報を用いて、セッション鍵(SKey)を生成し、
前記セッション鍵を用いて、前記識別情報に一方向性変換処理を行い、認証情報(Oneway−ID)を生成し、
前記ホストデバイスに対し、前記認証情報(Oneway−ID)を、出力し、一方向性変換識別情報の発行条件である検証のため、前記認証情報を前記ホストデバイスにおいて生成された他の認証情報と対比させる
ように構成されていることを特徴とするメモリデバイス。 - メモリデバイスとコントローラとを備えるメモリシステムであって、
前記メモリデバイスは、
少なくとも前記メモリデバイスの出荷後において、前記メモリデバイス外部からの読出し及び書き込みが禁止される第1の記憶領域と、
前記メモリデバイス外部からの読出しは許可されるが、書き込みが禁止される第2の記憶領域と、
前記メモリデバイス外部からの読出し及び書き込みが許可される第3の記憶領域と
を備え、
前記第1の記憶領域は、第1鍵情報(NKey)と、識別情報(SecretID)を格納するための領域であり、
前記第2の記憶領域は、第2鍵情報(Fkey)を用いて前記識別情報を暗号化した暗号化識別情報(E−SecretID)を格納するための領域であり、
前記第3の記憶領域は、前記第2鍵情報を暗号化した暗号化第2鍵情報(FKB)を格納するための領域であり、
ホストデバイスとの認証のために、前記メモリデバイスは、
前記ホストデバイスに対し、前記暗号化第2鍵情報(FKB)を出力し、
前記ホストデバイスに対し、前記暗号化識別情報(E−SecretID)を出力し、
前記ホストデバイスから受領した情報(HC)と、前記第1鍵情報を用いて、第3鍵情報(HKey)を生成し、
前記ホストデバイスから受領した乱数(RN)と、前記第3鍵情報を用いて、セッション鍵(SKey)を生成し、
前記セッション鍵を用いて、前記識別情報に一方向性変換処理を行い、認証情報(Oneway−ID)を生成し、
前記ホストデバイスに対し、前記認証情報(Oneway−ID)を、出力し、一方向性変換識別情報の発行条件である検証のため、前記認証情報を前記ホストデバイスにおいて生成された他の認証情報と対比させ、
前記メモリデバイスは、更に
第3鍵情報を生成するための第1の処理部と、
セッション鍵を生成するための第2の処理部と
を備え、
前記メモリデバイスは第1の製造者が製造し、
前記コントローラは、第2の製造者が製造し、
前記メモリシステムは、第3の製造者が製造する
ことを特徴とするメモリシステム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2012/063566 WO2013175642A1 (ja) | 2012-05-25 | 2012-05-25 | メモリデバイスおよびメモリシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2013175642A1 JPWO2013175642A1 (ja) | 2016-01-12 |
JP5855243B2 true JP5855243B2 (ja) | 2016-02-09 |
Family
ID=49623366
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014516615A Expired - Fee Related JP5855243B2 (ja) | 2012-05-25 | 2012-05-25 | メモリデバイスおよびメモリシステム |
Country Status (6)
Country | Link |
---|---|
US (1) | US20150074406A1 (ja) |
EP (1) | EP2858006A4 (ja) |
JP (1) | JP5855243B2 (ja) |
KR (1) | KR20140146199A (ja) |
CN (1) | CN104350503A (ja) |
WO (1) | WO2013175642A1 (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9703945B2 (en) | 2012-09-19 | 2017-07-11 | Winbond Electronics Corporation | Secured computing system with asynchronous authentication |
US9455962B2 (en) | 2013-09-22 | 2016-09-27 | Winbond Electronics Corporation | Protecting memory interface |
US9343162B2 (en) | 2013-10-11 | 2016-05-17 | Winbond Electronics Corporation | Protection against side-channel attacks on non-volatile memory |
US9318221B2 (en) * | 2014-04-03 | 2016-04-19 | Winbound Electronics Corporation | Memory device with secure test mode |
IL234956A (en) | 2014-10-02 | 2017-10-31 | Kaluzhny Uri | Data bus protection with enhanced key entropy |
BG66942B1 (bg) * | 2014-10-03 | 2019-08-15 | Димов Пингелов Вълко | Метод за изготвяне на хибридна публикация, устройство и хибридна публикация съгласно метода |
US10078589B2 (en) * | 2015-04-30 | 2018-09-18 | Arm Limited | Enforcing data protection in an interconnect |
US10019571B2 (en) | 2016-03-13 | 2018-07-10 | Winbond Electronics Corporation | Protection from side-channel attacks by varying clock delays |
JP6482690B1 (ja) * | 2018-01-11 | 2019-03-13 | ウィンボンド エレクトロニクス コーポレーション | 半導体記憶装置 |
CN110896387B (zh) * | 2018-09-12 | 2021-01-01 | 宁德时代新能源科技股份有限公司 | 数据传输方法、电池管理系统和存储介质 |
US11210238B2 (en) | 2018-10-30 | 2021-12-28 | Cypress Semiconductor Corporation | Securing data logs in memory devices |
CN110147206B (zh) * | 2019-05-23 | 2022-02-15 | 胡志强 | 一种存储卡的数据传输方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7111175B2 (en) * | 2000-12-28 | 2006-09-19 | Intel Corporation | Method and apparatus for verifying the integrity of a media key block |
US7395435B2 (en) * | 2002-09-20 | 2008-07-01 | Atmel Corporation | Secure memory device for smart cards |
JP2006048464A (ja) * | 2004-08-06 | 2006-02-16 | Toshiba Corp | コンテンツデータ配信システム、コンテンツデータ配信方法及商品販売方法 |
KR20080084470A (ko) * | 2007-03-16 | 2008-09-19 | 삼성전자주식회사 | 컨텐트의 보호 기능을 가진 휴대용 메모리 장치 및 그휴대용 메모리 장치 생성 방법 |
JP2008269088A (ja) * | 2007-04-17 | 2008-11-06 | Toshiba Corp | プログラム情報提供システム、プログラム情報提供方法、プログラム情報提供方法に用いられる記録媒体 |
JP4620146B2 (ja) * | 2008-07-18 | 2011-01-26 | 株式会社東芝 | 情報処理装置及び認証方法 |
JP2010140298A (ja) * | 2008-12-12 | 2010-06-24 | Panasonic Corp | 記録媒体装置、および、記録媒体装置の認証方法 |
US8553469B2 (en) * | 2011-04-06 | 2013-10-08 | Dell Products L.P. | Memory buffer for buffer-on-board applications |
JP5100884B1 (ja) * | 2011-12-02 | 2012-12-19 | 株式会社東芝 | メモリ装置 |
JP4991971B1 (ja) * | 2012-03-08 | 2012-08-08 | 株式会社東芝 | 被認証装置及びその認証方法 |
-
2012
- 2012-05-25 CN CN201280073465.9A patent/CN104350503A/zh active Pending
- 2012-05-25 US US13/520,051 patent/US20150074406A1/en not_active Abandoned
- 2012-05-25 JP JP2014516615A patent/JP5855243B2/ja not_active Expired - Fee Related
- 2012-05-25 WO PCT/JP2012/063566 patent/WO2013175642A1/ja active Application Filing
- 2012-05-25 KR KR1020147031991A patent/KR20140146199A/ko not_active Application Discontinuation
- 2012-05-25 EP EP12877474.2A patent/EP2858006A4/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
EP2858006A1 (en) | 2015-04-08 |
JPWO2013175642A1 (ja) | 2016-01-12 |
CN104350503A (zh) | 2015-02-11 |
EP2858006A4 (en) | 2015-12-23 |
WO2013175642A1 (ja) | 2013-11-28 |
US20150074406A1 (en) | 2015-03-12 |
KR20140146199A (ko) | 2014-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5855243B2 (ja) | メモリデバイスおよびメモリシステム | |
JP5100884B1 (ja) | メモリ装置 | |
US9253169B2 (en) | Memory and storage devices to be authenicated using a host device, authenication system and host device | |
WO2013175640A1 (ja) | ホストデバイスおよびホストデバイスにおける認証方法 | |
JP5112555B1 (ja) | メモリカード、ストレージメディア、及びコントローラ | |
JP5204291B1 (ja) | ホスト装置、装置、システム | |
US20140108824A1 (en) | Device | |
US20140006738A1 (en) | Method of authenticating a memory device by a host device | |
US20150341345A1 (en) | Security system | |
US20140056424A1 (en) | Manufacturing method | |
JP4991971B1 (ja) | 被認証装置及びその認証方法 | |
JP5204290B1 (ja) | ホスト装置、システム、及び装置 | |
US20140223188A1 (en) | Device | |
US20140229746A1 (en) | Authentication method | |
JP5433757B2 (ja) | メモリ装置、ホスト装置、及びシステム | |
JP5443575B2 (ja) | メモリカード、ホスト装置、及びシステム | |
US8930720B2 (en) | Authentication method | |
US20140237245A1 (en) | Device and authentication method therefor | |
JP2013118616A (ja) | メモリ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20151110 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20151208 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5855243 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
LAPS | Cancellation because of no payment of annual fees |