(57)【要約】メモリデバイスの出荷後において、前記メモリデバイス外部からの読み書きが禁止される第１の記憶領域に第１鍵情報と識別情報を、前記メモリデバイス外部からの読出しは許可され書き込みは禁止される第２の記憶領域に第２鍵情報を用いて前記識別情報を暗号化した暗号化識別情報を、前記メモリデバイス外部から読み書き可能な第３の記憶領域に前記第２鍵情報を暗号化した暗号化第２鍵情報をそれぞれ格納したメモリデバイスであって、ホストデバイスとの認証のために、前記第１鍵情報と前記ホストデバイスから受領した情報（ＨＣ）を用いて第３鍵情報を生成し、該第３鍵情報と前記ホストデバイスから受領した乱数（ＲＮ）とを用いてセッション鍵を生成し、該セッション鍵を用いて前記識別情報に一方向性変換処理を行って認証情報を生成し、前記ホストデバイスに対し、前記認証情報と、前記暗号化第２鍵情報と、前記暗号化識別情報とを出力するメモリデバイス。
2013175642.tif 000002
【特許請求の範囲】
【請求項１】
メモリデバイスであって、
少なくとも前記メモリデバイスの出荷後において、前記メモリデバイス外部からの読出し及び書き込みが禁止される第１の記憶領域と、
前記メモリデバイス外部からの読出しは許可されるが、書き込みが禁止される第２の記憶領域と、
前記メモリデバイス外部からの読出し及び書き込みが許可される第３の記憶領域と
を備え、
前記第１の記憶領域は、第１鍵情報（ＮＫｅｙ）と、識別情報（ＳｅｃｒｅｔＩＤ）を格納するための領域であり、
前記第２の記憶領域は、第２鍵情報（Ｆｋｅｙ）を用いて前記識別情報を暗号化した暗号化識別情報（Ｅ−ＳｅｃｒｅｔＩＤ）を格納するための領域であり、
前記第３の記憶領域は、前記第２鍵情報を暗号化した暗号化第２鍵情報（ＦＫＢ）を格納するための領域であり、
ホストデバイスとの認証のために、前記メモリデバイスは、
前記ホストデバイスに対し、前記暗号化第２情報（ＦＫＢ）を出力し、
前記ホストデバイスに対し、前記暗号化識別情報（Ｅ−ＳｅｃｒｅｔＩＤ）を出力し、
前記ホストデバイスから受領した情報（ＨＣ）と、前記第１鍵情報を用いて、第３鍵情報（ＨＫｅｙ）を生成し、
前記ホストデバイスから受領した乱数（ＲＮ）と、前記第３鍵情報を用いて、セッション鍵（ＳＫｅｙ）を生成し、
前記セッション鍵を用いて、前記識別情報に一方向性変換処理を行い、認証情報（Ｏｎｅｗａｙ−ＩＤ）を生成し、
前記ホストデバイスに対し、前記認証情報（Ｏｎｅｗａｙ−ＩＤ）を、出力する
ように構成されていることを特徴とするメモリデバイス。
【請求項２】
メモリデバイスとコントローラとを備えるメモリシステムであって、
前記メモリデバイスは、
少なくとも前記メモリデバイスの出荷後において、前記メモリデバイス外部からの読出し及び書き込みが禁止される第１の記憶領域と、
前記メモリデバイス外部からの読出しは許可されるが、書き込みが禁止される第２の記憶領域と、
前記メモリデバイス外部からの読出し及び書き込みが許可される第３の記憶領域と
を備え、
前記第１の記憶領域は、第１鍵情報（ＮＫｅｙ）と、識別情報（ＳｅｃｒｅｔＩＤ）を格納するための領域であり、
前記第２の記憶領域は、第２鍵情報（Ｆｋｅｙ）を用いて前記識別情報を暗号化した暗号化識別情報（Ｅ−ＳｅｃｒｅｔＩＤ）を格納するための領域であり、
前記第３の記憶領域は、前記第２鍵情報を暗号化した暗号化第２鍵情報（ＦＫＢ）を格納するための領域であり、
ホストデバイスとの認証のために、前記メモリデバイスは、
前記ホストデバイスに対し、前記暗号化第２情報（ＦＫＢ）を出力し、
前記ホストデバイスに対し、前記暗号化識別情報（Ｅ−ＳｅｃｒｅｔＩＤ）を出力し、
前記ホストデバイスから受領した情報（ＨＣ）と、前記第１鍵情報を用いて、第３鍵情報（ＨＫｅｙ）を生成し、
前記ホストデバイスから受領した乱数（ＲＮ）と、前記第３鍵情報を用いて、セッション鍵（ＳＫｅｙ）を生成し、
前記セッション鍵を用いて、前記識別情報に一方向性変換処理を行い、認証情報（Ｏｎｅｗａｙ−ＩＤ）を生成し、
前記ホストデバイスに対し、前記認証情報（Ｏｎｅｗａｙ−ＩＤ）を、出力し、
前記メモリデバイスは、更に
第３鍵情報を生成するための第１の処理部と、
セッション鍵を生成するための第２の処理部と
を備え、
前記メモリデバイスは第１の製造者が製造し、
前記コントローラは、第２の製造者が製造し、
前記メモリシステムは、第３の製造者が製造する
ことを特徴とするメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書に記載の実施の形態は、メモリデバイスおよびメモリシステムに関する。
【背景技術】
【０００２】
一般に、情報セキュリティを要する分野において、自己の正当性を証明する手段として互いに共有した秘密情報と暗号とを用いた認証技術が採用されている。【０００３】
例えば、電子決済に用いるＩＣカード（Ｓｍａｒｔ Ｃａｒｄ）の中にはＩＣチップが含まれ、そのＩＣチップには当該ＩＣカードを識別するためのＩＤ及び秘密情報が保持されている。更にＩＣカードは、これらＩＤ及び秘密情報に基づく認証を行うための暗号処理機能を有している。【０００４】
別の例では、コンテンツの著作権保護技術において、ＳＤカード（登録商標）の正当性を証明するためのコンテンツ保護技術（Content Protection for Recordable Media（ＣＰＲＭ））が知られている。
【先行技術文献】
【特許文献】
【０００５】
【非特許文献１】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
【発明の概要】
【発明が解決しようとする課題】
【０００６】
以下に記載の実施の形態は、秘密情報の不正利用を防止することが可能なメモリデバイスおよびメモリシステムを提供する。
【課題を解決するための手段】
【０００７】
以下に説明する実施の形態に係るメモリデバイスは、第１〜第３の記憶領域を備える。第１の記憶領域は、少なくとも前記メモリデバイスの出荷後において、メモリデバイス外部からの読出し及び書き込みが禁止される領域である。第２の記憶領域は、メモリデバイス外部からの読出しは許可されるが、書き込みが禁止される領域である。第３の記憶領域は、メモリデバイス外部からの読出し及び書き込みが許可される領域である。第１の記憶領域は、第１鍵情報（ＮＫｅｙ）と、識別情報（ＳｅｃｒｅｔＩＤ）を格納するための領域である。第２の記憶領域は、第２鍵情報（Ｆｋｅｙ）を用いて識別情報を暗号化した暗号化識別情報（Ｅ−ＳｅｃｒｅｔＩＤ）を格納するための領域である。第３の記憶領域は、第２鍵情報を暗号化した暗号化第２鍵情報（ＦＫＢ）を格納するための領域である。ホストデバイスとの認証のために、メモリデバイスは、次のような動作が可能なように構成されている。
・ホストデバイスに対し、暗号化第２情報（ＦＫＢ）を出力する。
・ホストデバイスに対し、暗号化識別情報（Ｅ−ＳｅｃｒｅｔＩＤ）を出力する。
・ホストデバイスから受領した情報（ＨＣ）と、第１鍵情報を用いて、第３鍵情報（ＨＫｅｙ）を生成する
・ホストデバイスから受領した乱数（ＲＮ）と、第３鍵情報を用いて、セッション鍵（ＳＫｅｙ）を生成する
・セッション鍵を用いて、識別情報に一方向性変換処理を行い、認証情報（Ｏｎｅｗａｙ−ＩＤ）を生成する
・ホストデバイスに対し、認証情報（Ｏｎｅｗａｙ−ＩＤ）を出力する【０００８】
また、以下に記載の実施の形態に係るホストデバイスは、識別鍵情報（IDKey）と第１鍵情報（HKey）とが割り当てられたホストデバイスである。このホストデバイスは、被認証装置から読み出す鍵管理情報（FKB）を用いて、識別鍵情報（IDKey）から復号可能な識別鍵情報（FKey）を生成する第１データ生成部と、生成される識別鍵情報（FKey）を用いて、被認証装置から読み出す暗号化秘密識別情報（E-SecretID）を復号し、秘密識別情報（SecretID）を生成する復号部を備える。またこのホストデバイスは、乱数を（RN）発生させる乱数発生器と、前記第１鍵情報（HKey）と前記乱数とを用いて第１のセッション鍵（SKey）を生成する第２データ生成部と、生成した前記第１のセッション鍵（SKey）を用いて、前記秘密識別情報（SecretID）に一方向性変換処理を行い、第１の一方向性変換データ（Oneway-ID）を生成する一方向性変換部と、前記第１の一方向性変換データ（Oneway-ID）と前記被認証装置から受信する第２の一方向性変換データ（Oneway-ID）とが一致するか否かを判定する検証部とを備える。前記検証部による判定の結果が肯定的である場合に、前記秘密識別情報（SecretID）及び秘密情報（ASSV）に一方向性変換処理を施し、一方向性変換識別情報（EMID）を生成する。【０００９】
以下に記載の実施の形態に係るセキュリティシステムは、コントローラ製造者と、鍵発行者と、メディア製造者とを含むセキュリティシステムである。コントローラ製造者は、コントローラの製造時において該コントローラ内部にコントローラ鍵Ｋｃ及びコントローラユニークＩＤ（ＩＤｃｕ）とを書き込むとともに、前記コントローラ鍵Ｋｃを前記鍵発行者に送る。鍵発行者は、メディアデバイス鍵Ｋｍｄ_ｉとをメディアデバイス鍵証明書Ｃｅｒｔｍｅｄｉａとを生成するとともに、前記コントローラ鍵Ｋｃを用いて前記メディアデバイス鍵Ｋｍｄ_ｉを暗号化して暗号化メディアデバイス鍵Ｅｎｃ（Ｋｃ、Ｋｍｄ＿ｉ）を生成する。メディア製造者は、前記鍵発行者から受けた暗号化メディアデバイス鍵Ｅｎｃ（Ｋｃ、Ｋｍｄ＿ｉ）を前記コントローラ内の前記コントローラ鍵Ｋｃで復号するとともに、該復号によって得られた前記メディアデバイス鍵Ｋｍｄ_ｉを、前記コントローラ内のコントローラユニークＩＤ（ＩＤｃｕ）から生成されたコントローラユニーク鍵Ｋｃｕにより暗号化してメモリに格納する。【００１０】
以下に記載の実施の形態に係るホストデバイスによるメモリデバイスの第１の認証方法は、
メモリデバイスは、メモリデバイス製造者により製造され、
前記メモリデバイスをコントロールするコントローラは、コントローラ製造者により製造され、
前記メモリデバイスと前記コントローラを含むメモリカードは、メモリカード製造者により製造され、
前記ホストデバイスは、ホストデバイス製造者により製造され、
前記メモリデバイスは、
第１のデータが書き込まれ、前記メモリデバイスの出荷後に読み出し及び書き込みが禁止された第１のメモリエリアと、
前記メモリデバイスの出荷前に第２のデータとキーインデックス情報が前記メモリデバイス製造者により書き込まれ、前記メモリデバイスの出荷後に前記コントローラによる読み出し可能であるが書き込みが禁止された第２メモリエリアと、
前記メモリカードの出荷前に、前記キーインデックス情報と合致するインデックスを其々有した複数のキーが其々暗号化されてセットとなった第３のデータが前記メモリカード製造者により書き込まれ、前記メモリデバイスの出荷後に前記コントローラによる読み出し及び書き込みが可能な第３メモリエリアと、
前記メモリデバイス内の前記第１のデータを処理可能な回路と、を有し、
前記認証手続きは、
前記第３のメモリエリアから前記第３のデータを読み出し、
前記ホストデバイスに前記第３のデータを送り、
前記第２のメモリエリアから前記第２のデータを読み出し、
前記ホストデバイスに前記第２のデータを送り、
前記第２のメモリエリアから前記キーインデックス情報を読み出し、
前記ホストデバイスに前記キーインデックス情報を送り、
前記第１のメモリエリアから前記第１のデータを読み出し、
前記メモリデバイス内の前記回路を用いて前記第１のデータを処理し、
前記ホストデバイスに結果情報を送り、
その後前記ホストデバイスから受けた情報を用いて前記メモリデバイスを認証する
ことを特徴とする。【００１１】
上記認証方法によれば、Authenticationのために、カード製造業者が書き込んだ情報（第３のエリアに記録）と、メモリデバイス製造業者が書き込んだ情報（第２のエリアに記録）の双方を用いるから、両者が正しくないと認証できず、システム安全性が高まる。また、第３のエリアにカード製造業者により記録された情報セットのインデックス情報は、メモリデバイス業者が第２のエリアに書き込んだ情報であるから、この点についても、両者が正しくないと認証できない。また、メモリデバイス製造業者が書き込んだ上記データは、Ｒｅａｄ−ｏｎｌｙなので、カード製造業者が改ざんできない。さらに、コントローラから読むことも書くことも出来ない第１のエリアを設け、かつ、メモリデバイスの内部に処理回路を設け、第１のエリアに記録されたデータは、回路による処理後の結果しか、メモリデバイス外部に出力されないように構成されている。このため、メモリデバイス製造業者以外には分からないデータを用いて、認証することが可能になる。【００１２】
以下に記載の実施の形態に係るホストデバイスによるメモリデバイスの第２の認証方法は、上記第１の認証方法における前記第２のメモリエリアから前記第２のデータを読み出す処理において、
前記ホストデバイスより、スペシャルコマンドを送り、
前記スペシャルコマンドを、前記メモリカードと前記ホストデバイスとの間に位置したインターフェースを介して受け、
前記コントローラにより、前記メモリカードと前記ホストデバイスとの間に位置した他のインターフェースを介した前記スペシャルコマンドの受信に伴い、前記第２のデータを読む
処理を含むことを特徴とする。【００１３】
以下に記載の実施の形態に係るホストデバイスによるメモリデバイスの第３の認証方法は、上記第１及び第２の認証方法における前記第２のメモリエリアから前記第２のデータを読み出す処理において、何れか少なくとも一方に記載の前記メモリカードは、メモリ機能を有する装置、部品、モジュール、ユニットに置き換えられる。【００１４】
以下に記載の実施の形態に係るホストデバイスによるメモリデバイスの第４の認証方法は、
第１データが書き込まれアクセス処理が制限される第１エリアと、第２データとインデックス情報が其々書き込まれた後で一部のアクセス処理が制限された第２エリアと、前記インデックス情報と合致する情報を其々有した複数のキーが暗号化されて書き込まれた第３エリアと、を有した記憶部と、
前記記憶部の製造元と異なる製造者により製造され、前記記憶部を制御する制御部と、
前記モジュールと電気的に接続可能な装置と、
を含むシステムにおいて、
前記装置と前記記憶部とは、
前記第２データと前記第３データと前記インデックス情報を読み出して、前記装置に送り、
前記第１データを読み出し、該第１データを用いて得た情報を、前記装置に送り、その後、前記装置から受けた情報を用いて前記記憶部を認証する処理を行うことを特徴とする。【００１５】
以下に記載の装置は、識別情報と第１情報とを有した装置であって、
他の装置から読み出す管理情報を用いて、前記識別情報から復号可能な識別情報を生成する第１生成部と、
生成される前記識別情報を用いて、前記他の装置から読み出す暗号化秘密識別情報復号し、秘密識別情報を生成する復号部と、
前記第１情報と乱数とを用いて第１セッション情報を生成する第２生成部と、
生成した前記第１セッション情報を用いて、前記秘密識別情報に変換処理を行い、第１変換情報を生成する変換部と、
前記第１変換情報と前記他の装置から受けた第２変換情報とが一致する場合に、一方向性変換識別情報（EMID）を生成する
ことを特徴とする。【００１６】
以下に記載のシステムは、
第１業者は、第１部品内に第１部品情報及び第１部品IDを書き込み、前記第１部品情報を第２業者に送るとともに、前記第１部品を第３業者に送り、
前記第２業者は、第２部品情報および第２部品証明情報を生成するとともに、前記第１部品情報を用いて前記第２部品情報を暗号化して暗号化第２部品情報を生成し、
前記第３業者は、前記第２業者から受けた前記暗号化第２部品情報を前記第１部品内の前記第１部品情報で復号するとともに、該復号によって得られた前記前記第２部品情報を、前記第１部品内の前記第１部品IDから生成された情報により暗号化する
ことを特徴とする。
【図面の簡単な説明】
【００１７】
【図１】第１の実施の形態（第１のコンテンツ保護技術）について説明する。
【図２】第１の実施の形態（第２のコンテンツ保護技術）について説明する。
【図３】第２のコンテンツ保護技術に係るメモリカード１０００の構成例を示す。
【図４】第２の実施の形態に係るメモリカード１０００の製造工程を説明する。
【図５】第２の実施の形態の情報・再生記録システムの全体構成及び動作を説明する。
【図６】第２の実施の形態において、メモリカード１０００からホスト装置２０００に対し、コンテンツデータＣを読み出す場合の動作を説明する。
【図７】第３の実施の形態による情報記録・再生システムの構成を示すブロック図である。
【図８】楕円曲線暗号をベースとした標準的な認証鍵交換を用いた場合の動作手順を説明している。
【図９】第４の実施形態に係るメモリシステムの構成例を示すブロック図。
【図１０】第４の実施形態に係るメモリシステムの認証フローを示すフロー図。
【図１１】第４の実施形態に係る暗号化FKey束（FKB）の構成例を示す図。
【図１２】第４の実施形態に係るメモリシステムの構成例を示すブロック図。
【図１３】第４の実施形態に係るＮＡＮＤ製造者による秘密情報の書き込み処理を例示する図。
【図１４】図１３の処理を示すフロー図。
【図１５】第４の実施形態に係るカード製造者によるFKBの書き込み処理を例示する図。
【図１６】図１５の処理を示すフロー図。
【図１７】変形例１に係るFKBをダウンロードするシステムを示すブロック図。
【図１８】変形例１に係るFKBをダウンロードするフローを示すフロー図。
【図１９】暗号化FKeyID束（FKB）をサーバ７０からダウンロードしてＮＡＮＤ型フラッシュメモリ１００に書き込むフローについて説明する。
【図２０Ａ】第５の実施形態に係るメモリシステムの構成例を示すブロック図。
【図２０Ｂ】第５の実施形態の変形例１を説明する。
【図２０Ｃ】第５の実施形態の変形例１を説明する。
【図２０Ｄ】第５の実施形態の変形例２を説明する。
【図２０Ｅ】第５の実施形態の変形例２を説明する。
【図２１】第６の実施形態に係るメモリシステムの構成例を示すブロック図。
【図２２】第６の実施形態に係るメモリシステムの認証フローを示すフロー図。
【図２３】第７の実施形態に係るＮＡＮＤチップの全体構成例を示すブロック図。
【図２４】第７の実施形態に係るメモリシステムの認証フローについて説明する。
【図２５】機能制御の構成例を示す。
【図２６】第８の実施形態に係るメモリシステムの構成例を示すブロック図である。
【図２７】ＮＡＮＤ型フラッシュメモリ１００のブロックBlock1〜ｎの構成を示す。
【図２８】メモリセルアレイ１１の構造を示す。
【図２９】ロムブロック１０２内の読み出し専用データについて説明する。
【図３０】ＥＣＣの構成例１を示すブロック図。
【図３１】ＥＣＣの構成例２を示すブロック図。
【図３２】ＥＣＣの構成例３を示すブロック図。
【図３３】ＥＣＣの構成例４を示すブロック図。
【図３４】第８の実施形態に係る秘匿ブロック内の秘匿データを示す図。
【図３５】第８の実施形態に係るアクセス制御パターンの例を示す図。
【図３６】第８の実施形態に係るアクセス制御パターンの利用例を示すブロック図。
【図３７】第８の実施形態に係るテストフローを示す図。
【図３８】第８の実施形態に係るデータ消去フローを示す図。
【図３９】第９の実施形態に係るＮＡＮＤチップの構成例を示すブロック図。
【図４０】第９の実施形態に係るＮＡＮＤチップの演算フロー１を示す図。
【図４１】第９の実施形態に係るＮＡＮＤチップの演算フロー２を示す図。
【図４２】第９の実施形態に係るテストフローを示す図。
【図４３】第９の実施形態に係る秘匿情報の検査フローを示す図。
【図４４】第１０の実施形態に係るコマンドマッピング例を示すタイミングチャート図。
【図４５】第１０の実施形態に係るコマンドマッピング例を示すタイミングチャート図。
【図４６】認証機能を適用したＮＡＮＤ型フラッシュメモリ１００を搭載したメモリカード１０００の構成例を示す。
【図４７】認証機能を適用したＮＡＮＤ型フラッシュメモリ１００のコンテンツ保護への応用例１を示す。
【図４８】認証機能を適用したＮＡＮＤ型フラッシュメモリ１００を利用したハードディスクドライブ（ＨＤＤ）の構成例１を示す。
【図４９】認証機能を適用したＮＡＮＤ型フラッシュメモリ１００を利用したハードディスクドライブ（ＨＤＤ）の構成例２を示す。
【図５０】認証機能を適用したＮＡＮＤ型フラッシュメモリ１００のコンテンツ保護への応用例２を示す。
【図５１】認証機能を適用したＮＡＮＤ型フラッシュメモリ１００のコンテンツ保護への応用例３を説明する。
【図５２】認証機能を適用したＮＡＮＤ型フラッシュメモリ１００のコンテンツ保護への応用例４を説明する。
【図５３】センスアンプおよび周辺回路の構成例を示す。
【図５４】図５３中のセンスアンプ７７、およびデータキャッシュ１２の等価回路例について示すものである。
【図５５】複数の実施形態が共存するホスト装置２０００及びＮＡＮＤ型フラッシュメモリ１００の構成例を説明する。
【図５６】スロットの利用方法を示す。
【図５７】スロットの大分類方法と、ホスト装置２０００及びメモリ１００への鍵割り当て方法の例を説明する。
【図５８】各キーセットの整合をとり、互換性を確保した上でキーセットを配布する方法を示す。
【発明を実施するための形態】
【００１８】
［第１の実施の形態］
最初に、図１〜図３を参照して、第１の実施の形態を説明する。
＜第１のコンテンツ保護技術＞
図１を参照して、ＳＤカードで用いられているＣＰＲＭなどに代表される、第１のコンテンツ保護技術について説明する。具体的には、コンテンツ保護のためのメディアＩＤ認証技術、及び当該技術を適用したカードの製造工程を説明する。
【００１９】
メモリカード１０００は、ＮＡＮＤフラッシュメモリに代表されるメモリ１００と、メモリ１００を制御するためのコントローラ２００とから構成される。メモリ１００及びコントローラ２００は同一の製造者によって製造される場合もあるし、それぞれ独立の製造者によって製造される場合もある。図１では、コントローラ製造業者Ａがコントローラ２００を製造し、メモリ製造業者Ｂがメモリ１００を製造する場合を図示しているが、ＡとＢが同一企業であってもよい。
【００２０】
メモリ１００とコントローラ２００とを一体に組み立ててカード形状にパッケージングすることでメモリカード１０００が製造される。この組み立て製造を行う製造者をアセンブリ業者Ｃと呼ぶ。
また、ホスト装置２０００は、ホスト装置製造業者Ｄにより製造される。ホスト装置製造業者Ｄは、鍵発行／管理センタ３０００からホスト鍵情報（Ｉｈｋ）を受領し、ホスト装置２０００に格納させる。また、鍵発行／管理センタ３０００は、アセンブリ業者Ｃにメディア鍵情報（Ｉｍｋ）を提供する。
【００２１】
ここで、第１のコンテンツ保護技術では、メモリ１００はセキュリティ機能を有しておらず、コントローラ２００のみがセキュリティ機能を有している。
【００２２】
また、第１のコンテンツ保護技術では、コントローラ２００は固有情報を有しておらず、コンテンツ保護において重要な役割を持つメディアＩＤはアセンブリ業者Ｃによってメモリ１００に割り当てられる。アセンブリ業者Ｃは、鍵発行／管理センタ３０００より受領したメディア鍵情報Ｉｍｋと共に割り当てられたメディアＩＤ（ＩＤｍ）をメモリ１００の非ユーザ領域に記録する。
【００２３】
一方ホスト装置製造業者Ｄも同様に鍵発行／管理センタ３０００からホスト鍵情報（Ｉｈｋ）を受領し、製造時にホスト装置２０００に割り当てる。
【００２４】
メディア鍵情報（Ｉｍｋ）やメディアＩＤ（ＩＤｍ）はメモリカード１０００とホスト装置２０００が認証を行う際に利用され、両情報を元に確立されたセキュアチャネルを通じて改竄防止措置が講じられる。このセキュアチャネルを介して、メディアＩＤ（ＩＤｍ）がメディア鍵情報（Ｉｍｋ）と共にメモリカード１０００からホスト装置２０００へと渡される。ホスト装置２０００は、自身が保持するホスト鍵情報（Ｉｈｋ）をメディアＩＤ（ＩＤｍ）及びメディア鍵情報（Ｉｍｋ）と照合することによりメモリカード１０００の認証を行う。
【００２５】
認証が完了すると、ホスト装置２０００は受領したメディアＩＤ（ＩＤｍ）を用いて、コンテンツ保護に利用される情報（例えばコンテンツ鍵）の暗号化を実行したり、コンテンツ鍵もしくはコンテンツ付随情報に対してメディアＩＤ（ＩＤｍ）を用いたＭＡＣ(Message Authentication Code)などの暗号処理を実施したりすることでコンテンツデータとメディアＩＤ（ＩＤｍ）の紐付け（media binding）を行う。これにより、コンテンツデータ及びコンテンツ鍵やコンテンツ付随情報を他のメディアに不正に複製したとしても、メディアＩＤ（ＩＤｍ）との紐付けが合わないことで不正コピーを防止できる。
【００２６】
ここで、不正コピー防止が可能となっている理由はメディアＩＤ（ＩＤｍ）の固有性である。仮にメディアＩＤ（ＩＤｍ）がメモリカード１０００毎に固有のものではなく、複数のメモリカード１０００で同じメディアＩＤ（ＩＤｍ）を共有していた場合、コンテンツ保護システムを破ることなく、コンテンツの不正コピーが可能となる。
【００２７】
近年では、メモリカードは数億枚規模で製造されており、また、アセンブリ業者の数が飛躍的に増えてきている。このため、メモリカード毎に異なるメディアＩＤ（ＩＤｍ）を割り当てることを怠る業者も増えており、同じメディアＩＤ（ＩＤｍ）を有する複数のメモリカードが市場に出回っている状況にある。
【００２８】
このような状況から、メディアＩＤ（ＩＤｍ）の改竄を効果的に防止することができる方法を提案することが望まれている。図２を参照して、第１のコンテンツ保護技術との相違点も説明しつつ、第２のコンテンツ保護技術について説明する。
【００２９】
＜第２のコンテンツ保護技術＞
第１のコンテンツ保護技術では、アセンブリ業者Ｃがメモリカード１０００にメディアＩＤ（ＩＤｍ）を割り当てていたのに対し、第２のコンテンツ保護技術ではコントローラ製造業者Ａ及びメモリ製造業者Ｂがコントローラ２００又はメモリ１００の製造時に固有情報（図２では、セキュアＩＤ（Secure ID）、鍵（key）及びパラメータ（Parameter））を割り当てる。
【００３０】
具体的に説明すると、コントローラ製造業者Ａは、鍵発行／管理センタ３０００から受領したコントローラ鍵情報（Ｉｃｋ）に従い固有情報を生成し、これらをコントローラ２００に割り当てる。また、メモリ製造業者Ｂは、鍵発行／管理センタ３０００から受領したメモリ鍵情報（Ｉｍｅｍｋ）に従い固有情報を生成し、メモリ１００に割り当てる。アセンブリ業者Ｃは、このようにして固有情報を割り当てられたコントローラ２００及びメモリ１００及び鍵発行／管理センタ３０００から受領したメディア鍵情報（Ｉｍｋ）を組み合わせてメモリカード１０００を組み立てる役割を有している。
【００３１】
ここで、メディア鍵情報（Ｉｍｋ）は暗号化された状態で付与されており、アセンブリ業者Ｃには秘密情報は開示されない。割り当てられた固有情報は、メディア鍵情報（Ｉｍｋ）と共にホスト装置２０００との認証に用いられる。本例では、メディアＩＤ（ＩＤｍ）は直接的にコントローラ２００又はメモリ１００に記録されておらず、コントローラ２００又はメモリ１００によって保持されている固有情報に基づいて導き出されるメディア識別情報である。
【００３２】
また、第２のコンテンツ保護技術では、メモリ１００もセキュリティ機能を有し、メモリ製造業者Ｂはメモリ１００の製造時にメモリ１００に対し固有情報を割り当てる。コントローラ製造業者Ａの数は、アセンブリ業者Ｃの数に比較して、技術的、マーケット的な観点から少なく、メモリ製造業者Ｂの数はコントローラ製造業者Ａよりも更に少ない。
【００３３】
セキュリティ技術においては、メモリカード１０００やホスト装置２０００などデータを取り扱う装置の中のいずれかの構成要素に必ず信頼性の砦（Root of Trust）の役割を与える必要がある。ここで、信頼性の砦（Root of Trust）の役割を与えられた製造業者は信頼できる製造業者である必要がある。
【００３４】
本発明者は、製造業者の数（プレイヤーの数）が増えるほど、信頼できない製造業者の数が増加することに着目し、上記着想に至った。第２のコンテンツ保護技術（図２）によれば、アセンブリ業者ＣのみにメディアＩＤを付与させる第１のコンテンツ保護技術（図１）に比較し、システムの頑健性を大きく向上させることができる。
【００３５】
この第２のコンテンツ保護技術では、メディアＩＤ（ＩＤｍ）の固有性の根拠となる固有情報が、メモリ１００及びコントローラ２００の両方に付与される。これにより、メモリ１００又はコントローラ２００のいずれか一方のセキュリティが破れた場合、もう一方のセキュリティが有効となっていることでシステムの頑健性を維持することが可能となる。また、いずれか一方の製造業者（Ａ又はＢ）が不適切な固有情報の付与を行った場合にも、同様の効果が期待できる。
【００３６】
次に、第２のコンテンツ保護技術に係るメモリカード１０００の構成例について図３を用いて説明する。前述の通り、メモリカード１０００はメモリ１００及びコントローラ２００から構成される。
コントローラ２００は、固有情報やその他秘密情報を記録するための秘匿領域（Hidden Area）２０１、セキュリティ機能を提供する認証回路２０２、メモリ１００を制御するためのメモリ制御回路２０３、メモリインターフェース２０４、ホストインターフェース２０５を有する。
【００３７】
メモリ１００は、記憶領域として、固有情報やその他秘密情報を記録するための秘匿領域１０１（Hidden Area）、固有情報や秘密情報に付随する管理情報を記録するためのロム領域１０２（ROM Area）、及び読み書き可能領域１０３（Read/Write Area）を有する。更にメモリ１００は、セキュリティ機能を提供する認証回路１０７、及び記憶領域でのデータの読み出し／書き込み／消去を制御するためのメモリ周辺回路１０８を備えている。
【００３８】
読み書き可能領域１０３は、メモリ１００からみると通常のメモリ領域としてコントローラ２００に対して機能を提供する領域である。しかし、コントローラ２００は、更にこの読み書き可能領域１０３を複数の領域に分類し、ホスト装置２０００からのメモリ１００に対するアクセスを制御する。すなわち、読み書き可能領域１０３は、ホスト装置２０００のために、コントローラ２００のみがアクセス可能でありホスト装置２０００はアクセス不可能なシステム情報記録領域１０４（System Area）、ホスト装置２０００とコントローラ２００の認証が成功した場合にホスト装置２０００がアクセス可能な秘密記録領域１０５（Protected Area）、及び認証なしにホスト装置２０００がアクセス可能な通常記録領域１０６（Normal Area）に更に分類される。
【００３９】
通常記録領域１０６は、ユーザデータなどの格納するための通常のデータ記録領域として利用される。秘密記録領域１０５は、コンテンツ鍵、メディア鍵などの秘密情報を記録するために利用される。システム情報記録領域１０４は、前述の固有情報、秘密情報、それらに付随する管理情報などを記録するために利用される。
【００４０】
以下に示す実施の形態においては、コントローラ２００及びメモリ１００に対してそれぞれ与えられる固有情報等の利用方法について、最初にコントローラ２００が保持する固有情報の観点から説明を行い、次にメモリ１００が保持する情報の固有観点から説明を行う。
【００４１】
［第２の実施の形態］
＜メモリカードの製造工程＞
次に、図４を参照して、第２の実施の形態に係るメモリカード１０００の製造工程、及びメディアデバイス鍵Ｋｍｄ_ｉ及びメディアデバイス鍵証明書Ｃｅｒｔｍｅｄｉａを書き込む方法を説明する。図４において、第１の実施の形態（図２）と同様の構成については同一の符号を付している。この実施の形態では、固有情報としてのコントローラ鍵ＫｃとコントローラユニークＩＤ（ＩＤｃｕ）とがコントローラ２００にのみ与えられる例を示している。なお、これらコントローラ鍵ＫｃとコントローラユニークＩＤ（ＩＤｃｕ）は、コントローラ製造業者Ａによりコントローラ２００内の秘匿領域（図４では図示せず）に記録されるが、第１の実施形態で説明した通り、後述の第４の実施形態などに従い、メモリ製造業者Ｂがメモリ１００に固有情報を格納させる例と組み合わせることも可能である。コントローラ鍵ＫｃとコントローラユニークＩＤ（ＩＤｃｕ）は、例えばコントローラ内部に設けられたヒューズ回路などに格納されるが、格納方法はこれに限られるものではない。
【００４２】
また、コントローラ鍵ＫｃとコントローラユニークＩＤ（ＩＤｃｕ）の固有性は異なっていてもよい。例えば、コントローラ鍵Ｋｃはコントローラ２００毎に固有の値、コントローラ２００のロット毎に固有の値、コントローラ２００の製造者毎に固有の値であってもよい。加えて、コントローラユニークＩＤ（ＩＤｃｕ）はコントローラ２００毎に固有の値、コントローラ２００のロット毎に固有の値、コントローラ２００の製造者毎に固有の値であってもよい。固有性の粒度は必要に応じて選択すればよいが、コントローラ鍵ＫｃもしくはコントローラユニークＩＤ（ＩＤｃｕ）の少なくともいずれか一方はコントローラ２００毎に固有な値であることが望ましい。
【００４３】
メモリカード１０００に書き込むメディアデバイス鍵Ｋｍｄ_ｉ及びメディアデバイス鍵証明書Ｃｅｒｔｍｅｄｉａ（これらは、図２のメディア鍵情報に相当する情報の一部を構成する情報である。）は鍵発行／管理センタ３０００からアセンブリ業者Ｃに提供される。アセンブリ業者Ｃは、固有情報としてのコントローラ鍵Ｋｃ及びコントローラユニークＩＤ（ＩＤｃｕ）を与えられたコントローラ２００とメモリ１００とを組み合わせてメモリカード１０００を組み立てた後、このメモリカード１０００内のメモリ１００にメディアデバイス鍵Ｋｍｄ_ｉを暗号化してメディアデバイス鍵証明書Ｃｅｒｔｍｅｄｉａと共に書き込んで、メモリカード１０００を製造する。このとき、コントローラ２００に割り当てられたコントローラ鍵Ｋｃ及びコントローラユニークＩＤ（ＩＤｃｕ）がメディアデバイス鍵Ｋｍｄ＿ｉの書き込みのために使用される。
【００４４】
メディアデバイス鍵Ｋｍｄ_ｉ及びメディアデバイス鍵証明書Ｃｅｒｔｍｅｄｉａは、コントローラ２００を介してメモリカード１０００を構成しているメモリ１００のシステム情報記録領域１０４に書き込まれる。
なお、図４では省略しているが、メモリカード１０００は、所定の通信機能を有する機器（パソコン、携帯電話端末、公衆端末など）に接続される。このような通信機能を有する機器を介して、鍵発行／管理センタ３０００から発行されたデータがメモリカード１０００に書き込まれる。
【００４５】
ここで、コントローラ鍵Ｋｃは、鍵発行／管理センタ３０００が割り当てコントローラ製造業者Ａにより付与される、もしくは、コントローラ製造業者Ａが割り当て、鍵発行／管理センタ３０００に対し通知される。コントローラユニークＩＤ（ＩＤｃｕ）はコントローラ製造業者Ａにより割り当てられる。コントローラユニークＩＤ（ＩＤｃｕ）は必要に応じて鍵発行／管理センタ３０００に通知される。もしくは、コントローラユニークＩＤ（ＩＤｃｕ）は鍵発行／管理センタ３０００が割り当てコントローラ製造業者Ａに付与される。なお、コントローラ鍵Ｋｃは、ＰＧＰ暗号などを用いて、コントローラ製造業者Ａと鍵発行／管理センタ３０００間で受送信することができる。
【００４６】
鍵発行／管理センタ３０００は、メディアデバイス鍵Ｋｍｄ＿ｉやメディアデバイス鍵証明書Ｃｅｒｔｍｅｄｉａを生成する鍵生成部３００２と、生成したメディアデバイス鍵Ｋｍｄ＿ｉ及びメディアデバイス鍵証明書Ｃｅｒｔｍｅｄｉａを管理するデバイス鍵データベース３００１と、コントローラ製造業者Ａから受け取ったコントローラ鍵Ｋｃを用いてメディアデバイス鍵Ｋｍｄ＿ｉを暗号化する暗号化部３００３を備えている。
【００４７】
コントローラ鍵Ｋｃは、鍵発行／管理センタ３０００において、メディアデバイス鍵Ｋｍｄ＿ｉを暗号化するのに用いられる。メディアデバイス鍵Ｋｍｄ＿ｉは、鍵生成器３００２で生成された後、デバイス鍵データベース３００１に格納される。暗号化器３００３は、デバイス鍵データベース３００１から対応するメディアデバイス鍵Ｋｍｄ＿ｉを供給
され、これをコントローラ鍵Ｋｃで暗号化して暗号化メディアデバイス鍵Ｅｎｃ（Ｋｃ、Ｋｍｄ＿ｉ）を生成する。
【００４８】
コントローラ鍵Ｋｃは、コントローラ製造業者Ａと鍵発行／管理センタ３０００しか知りえない情報である。しかし、何らかの事故や事情によってコントローラ鍵Ｋｃの情報が外部に漏れた時の被害を軽減するためには、例えば生産ロット毎など、一定量のコントローラ単位でコントローラ鍵Ｋｃを変更することが望ましい。
【００４９】
なお、鍵生成器３００２やデバイス鍵データベース３００１では、メモリカード１０００用のメディアデバイス鍵Ｋｍｄ＿ｉやメディアデバイス鍵証明書Ｃｅｒｔｍｅｄｉａだけでなく、後述するホスト装置２０００用のホストデバイス鍵Ｋｈｄ＿ｉやホストデバイス証明書Ｃｅｒｔｈｏｓｔも同様に生成・管理する。
【００５０】
アセンブリ業者Ｃは、コントローラ製造業者Ａからコントローラ２００の供給を受けると共に、当該コントローラ２００向けに暗号化されたメディアデバイス鍵（暗号化メディアデバイス鍵Ｅｎｃ（Ｋｃ、Ｋｍｄ＿ｉ）、及びそれに対応するメディアデバイス鍵証明書Ｃｅｒｔｍｅｄｉａを鍵発行／鍵管理センタ３０００から受け取る。所望の暗号化メディアデバイス鍵Ｅｎｃ（Ｋｃ、Ｋｍｄ＿ｉ）を受け取るためには、例えばコントローラ２００の型番や製造ロット番号などを提示することで正しいコントローラ鍵Ｋｃで暗号化されたメディアデバイス鍵を受け取ることが可能である。
【００５１】
メモリカード１０００の製造プロセスにおいて、暗号化メディアデバイス鍵Ｅｎｃ（Ｋｃ、Ｋｍｄ＿ｉ）は、コントローラ２００のバッファＲＡＭ（図示せず）に一旦書き込まれる。すると、コントローラ２００は当該暗号化メディアデバイス鍵Ｅｎｃ（Ｋｃ、 Ｋｍｄ＿ｉ）を復号器２０６において自らが有するコントローラ鍵Ｋｃを用いて復号する。これによりコントローラ２００においてメディアデバイス鍵Ｋｍｄ＿ｉが得られる。
【００５２】
一方、一方向性変換器２１１は、コントローラ２００に保持されているコントローラ鍵ＫｃとコントローラユニークＩＤ（ＩＤｃｕ）を入力値として一方向性関数を演算（たとえばハッシュ演算、以下同じ）し、コントローラユニーク鍵Ｋｃｕを生成する。この新たに生成されたコントローラユニーク鍵Ｋｃｕを用いてメディアデバイス鍵Ｋｍｄ＿ｉを再び暗号化器２０７において暗号化し、暗号化メディアデバイス鍵Ｅｎｃ（Ｋｃｕ、Ｋｍｄ＿ｉ）を生成する。この暗号化メディアデバイス鍵Ｅｎｃ（Ｋｃｕ、Ｋｍｄ＿ｉ）はメモリ製造業者Ｂから供給されたメモリ１００のシステム情報記録領域１０４に格納される。この時書き込んだ暗号化メディアデバイス鍵Ｅｎｃ（Ｋｃｕ、Ｋｍｄ＿ｉ）に対応するメディアデバイス鍵証明書Ｃｅｒｔｍｅｄｉａも同様にシステム情報記録領域１０４に格納される。
【００５３】
コントローラユニーク鍵（Ｋｃｕ）は、コントローラ２００内にコントローラ外部からの読み出しや変更に対する防止手段が講じられて秘匿されている固有情報としてのコントローラ鍵Ｋｃ及びコントローラユニークＩＤ（ＩＤｃｕ）を用いて生成される。このため、暗号化メディアデバイス鍵Ｅｎｃ（Ｋｃｕ、Ｋｍｄ＿ｉ）の復号に必要な情報が外部に漏れる危険は少なく、一旦メモリ１００に書き込まれた暗号化メディアデバイス鍵Ｅｎｃ（Ｋｃｕ、Ｋｍｄ＿ｉ）を別個のコントローラ２００で利用可能な状態とするため、不正に再暗号化（元のコントローラユニーク鍵Ｋｃｕ１で復号後に、別のコントローラユニーク鍵Ｋｃｕ２で暗号化）することは非常に困難となっている。
【００５４】
この第２の実施の形態では、コントローラ鍵ＫｃとコントローラユニークＩＤ（ＩＤｃｕ）からコントローラユニーク鍵Ｋｃｕを生成する際に一方向性関数を用いているが、２つの入力データから１つの出力データを生成することのできる関数であればよく、特に一方向性関数に限定されるものではない。例えば、ＡＥＳ（Advanced Encryption Standard）暗号化器等を用いてコントローラユニーク鍵Ｋｃｕを生成することが可能である。メモリカード１０００は、以上説明したような手順で製造される。同製造方法に基づき製造されたメモリカード１０００を用いた認証方法及び情報記録・再生システムについて以下で説明する。
【００５５】
＜システム構成＞
図５を参照して、第２の実施の形態の情報・再生記録システムの全体構成及び動作を説明する。上記のようにして暗号化メディアデバイス鍵Ｅｎｃ（Ｋｃｕ、Ｋｍｄ＿ｉ）及びメディアデバイス鍵証明書Ｃｅｒｔｍｅｄｉａを与えられたメモリカード１０００は、図５に示すように、ホスト装置２０００に接続されることにより、コンテンツデータＣをホスト装置２０００から書き込まれたり、或いは取り込まれたコンテンツデータＣをホスト装置２０００に向けて出力したりすることができる。このメモリカード１０００と、ホスト装置２０００とにより、１つの情報記録・再生システムが構成される。
【００５６】
ここで、ホスト装置２０００の構造について説明する。ホスト装置２０００は、保持部４０１、認証鍵交換処理部４０２、ＩＤ結合部４０３、一方向性変換器４０４、乱数生成器４０５、暗復号器４０６、暗復号器４０７を備えている。
【００５７】
保持部４０１は、前述したホストデバイス鍵Ｋｈｄ＿ｊ、及びホストデバイス証明書Ｃｅｒｔｈｏｓｔを格納している。ホストデバイス鍵Ｋｈｄ＿ｊは、公開鍵暗号方式の秘密鍵であり、ホストデバイス証明書Ｃｅｒｔｈｏｓｔは、ホストデバイス鍵Ｋｈｄ＿ｊと対をなす公開鍵を含むデータである。
【００５８】
認証鍵交換処理部４０２は、インターフェース部５００、２０２及びセキュアチャネルを介して、メモリカード１０００の認証鍵交換処理部２１３との間で認証鍵交換処理を実行してメディアデバイス証明書ＩＤ（ＩＤｍ＿ｃｅｒｔ）を出力する機能を有する。またＩＤ結合部４０３は、公開コントローラユニークＩＤ（ＩＤｃｎｔｒ）とメディアデバイス鍵証明書ＩＤ（ＩＤｍ＿ｃｅｒｔ）とに基づきメモリカードユニークＩＤ（ＩＤｍｃ）を生成するよう構成されている。ここで、公開コントローラユニークＩＤ（ＩＤｃｎｔｒ）はコントローラユニークＩＤ（ＩＤｃｕ）とは異なる値であり、コントローラ鍵ＫｃとコントローラユニークＩＤ（ＩＤｃｕ）を用いてＩＤ生成器２１２から生成された値である。ＩＤ生成器２１２内での生成方法としては、一方向性関数を用いる方法が例示できるが、その他にも２つの入力データから１つの出力データを生成することのできる関数であればよく、特に一方向性関数に限定されるものではない。
【００５９】
このＩＤ結合部４０３は、公開コントローラユニークＩＤ（ＩＤｃｎｔｒ）及びメディアデバイス鍵証明書ＩＤ（ＩＤｍ＿ｃｅｒｔ）に基づいてメモリカードユニークＩＤ（ＩＤｍｃ）を生成する識別情報生成部として機能する。このＩＤ結合部４０３は、単に２つのＩＤを結合することにより別の新規のＩＤを生成するものである。このような単なる結合に代えて、例えば一方向性関数や暗号アルゴリズムを用いて新しいＩＤを生成してもよい。
【００６０】
一方向性変換器４０４は、このメモリカードユニークＩＤ（ＩＤｍｃ）、乱数生成器４０５によって生成されたメディア鍵Ｋｍを入力とした一方向性関数により、メディアユニーク鍵Ｋｍｕを生成する。乱数生成器４０５は、乱数を発生させて、取得された乱数に基づいてメディア鍵Ｋｍ及びタイトル鍵Ｋｔを生成する。暗復号器４０６は、上述のメディ
アユニーク鍵Ｋｍｕによりタイトル鍵Ｋｔを暗号化する。また、暗復号器４０７は、タイトル鍵ＫｔによりコンテンツデータＣを暗号化する（暗号化コンテンツデータＥｎｃ（Ｋｔ、Ｃ）を取得する）。
【００６１】
なお、メディアユニーク鍵Ｋｍｕは、ホスト装置２０００によって生成され、本実施の形態では、タイトル鍵Ｋｔの暗号化のための暗号化鍵として使用されている。従来のコンテンツ保護技術と同様に、秘密記録領域１０５に記録するメディアユニーク鍵ＫｍｕをコンテンツデータＣの暗号化に直接利用するなどの形態も可能である。また、メディアユニーク鍵Ｋｍｕでユーザに固有のユーザ鍵Ｋｕを暗号化し、ユーザ鍵Ｋｕで更にコンテンツ鍵Ｋｃｔを暗号化し、更にコンテンツ鍵Ｋｃｔでコンテンツデータを暗号化する二重暗号方式にも適用可能である。また、メディア鍵Ｋｍやタイトル鍵Ｋｔはホスト装置２０００内で生成されるだけでなく、予めメモリカード１０００に書き込まれている場合や外部装置（図示せず）から与えられる場合もある。
【００６２】
＜コンテンツの書き込み方法＞
次に、このようなホスト装置２０００から、メモリカード１０００に対してコンテンツデータＣの書き込む場合の動作を、図５を参照して説明する。最初に、メモリカード１０００は、一方向性変換器２１１を用いて、コントローラ鍵ＫｃとコントローラユニークＩＤ（ＩＤｃｕ）からコントローラユニーク鍵Ｋｃｕを生成する。そして、このコントローラユニーク鍵Ｋｃｕを用いて、暗号化メディアデバイス鍵Ｅｎｃ（Ｋｃｕ、Ｋｍｄ＿ｉ）を復号してメディアデバイス鍵Ｋｍｄ＿ｉを得る。このメディアデバイス鍵Ｋｍｄ＿ｉとメディアデバイス鍵証明書Ｃｅｒｔｍｅｄｉａは、認証鍵交換処理部２１３に転送される。
【００６３】
一方、ホスト装置２０００は、ホストデバイス鍵Ｋｈｄ＿ｊとホストデバイス鍵証明書Ｃｅｒｔｈｏｓｔを認証鍵交換処理部４０２に転送する。これにより、認証鍵交換処理部２１３及び４０２において認証鍵交換処理が実行される。処理が完了すると、メモリカード１０００とホスト装置２０００との間にセキュアチャネルが確立される。なお、セキュアチャネルが確立されると、ＩＤ生成器２１２は、自身が生成した公開コントローラユニークＩＤ（ＩＤｃｎｔｒ）をインターフェース部２００、５０２を介してセキュアチャネルを通して出力可能になる。また、認証鍵交換処理については、図８を用いて後述する。
【００６４】
セキュアチャネルが確立されると、ＩＤ生成器４０３は、公開コントローラユニークＩＤ（ＩＤｃｎｔｒ）とメディアデバイス鍵証明書ＩＤ（ＩＤｍ＿ｃｅｒｔ）とを結合させてメモリカードユニークＩＤ（ＩＤｍｃ）を生成する。
【００６５】
ホスト装置２０００は、乱数生成器４０５によりメディア鍵（Ｋｍ）を生成し、生成したメディア鍵Ｋｍをセキュアチャネル及びインターフェース部５００、２０２経由でメモリカード１０００の秘密記録領域１０５に記録する。
【００６６】
ホスト装置２０００は、一方向性変換器４０４を用いてメディア鍵ＫｍとメモリカードユニークＩＤ（ＩＤｍｃ）からメディアユニーク鍵Ｋｍｕを生成する。
【００６７】
ホスト装置２０００は、乱数生成器４０５を用いてタイトル鍵Ｋｔを生成し、更に暗復号器４０６を用いてタイトル鍵Ｋｔをメディアユニーク鍵Ｋｍｕで暗号化し、暗号化タイトル鍵Ｋｔｅ＝Ｅｎｃ（Ｋｍｕ、Ｋｔ）をメモリカード１００の通常記録領域１０６に記録する。また、ホスト装置２０００は、タイトル鍵Ｋｔを用いてコンテンツデータＣを暗号化し、暗号化コンテンツデータＣｅ＝ Ｅｎｃ（Ｋｔ、Ｃ））をメモリカード１０００の通常記録領域１０６に記録する。以上により、コンテンツデータＣの記録動作が完了する。
【００６８】
＜コンテンツの読み出し方法＞
次に、メモリカード１０００からホスト装置２０００に対し、コンテンツデータＣを読み出す場合の動作を、図６を参照して説明する。認証鍵交換処理部２１３、４０２による認証鍵交換処理、及びＩＤ結合部４０３における動作は、書き込み動作の場合（図５）と略同一である。
【００６９】
認証鍵交換処理が完了し、セキュアチャネルが確立されると、秘密記録領域１０５及びシステム情報記録領域１０４へのアクセスが可能になり（すなわち、秘密記録領域１０５及びシステム情報記録領域１０６の論理アドレスの指定が可能になる）、メモリカード１０００の秘密記録領域１０５に記録されているメディア鍵Ｋｍが、セキュアチャネルを介してホスト装置２０００の一方向性変換器４０４に提供される。一方向性変換器４０４は、このメディア鍵Ｋｍと、前述のメモリカードユニークＩＤ（ＩＤｍｃ）とを用いてメディアユニーク鍵Ｋｍｕを生成する。暗復号器４０６は、このメディアユニーク鍵Ｋｍｕを用いて、メモリカード１００に格納されている暗号化タイトル鍵Ｅｎｃ（Ｋｍｕ、Ｋｔ）を復号してタイトル鍵Ｋｔを得る。そして、暗復号器４０７は、この得られたタイトル鍵Ｋｔを用いて、メモリカード１００に格納されている暗号化コンテンツデータＥｎｃ（Ｋｔ、Ｃ）を復号してコンテンツデータＣを得る。
【００７０】
以上説明したように、この実施の形態では、公開鍵暗号方式に従ったメディアデバイス鍵Ｋｍｄ＿ｉ及びメディアデバイス鍵証明書Ｃｅｒｔｍｅｄｉａが認証鍵交換処理に用いられる。しかし、コントローラ２００のコントローラ鍵Ｋｃ及びコントローラユニークＩＤ（ＩＤｃｕ）に基づいて公開コントローラユニークＩＤ（ＩＤｃｎｔｒ）が生成される、この公開コントローラユニークＩＤ（ＩＤｃｎｔｒ）は、セキュアチャネルを介してホスト装置２０００に供給される。セキュアチャネルを介しての送信であるため、公開コントローラユニークＩＤ（ＩＤｃｎｔｒ）が外部に漏れることはなく、改竄も防止されている。
【００７１】
また、この公開コントローラユニークＩＤ（ＩＤｃｎｔｒ）とメディアデバイス鍵証明書ＩＤ（ＩＤｍ＿ｃｅｒｔ）とに基づいて、ＩＤ結合部４０３により、メモリカードユニークＩＤ（ＩＤｍｃ）が生成される。このメモリカードユニークＩＤ（ＩＤｍｃ）に基づいて、メモリカード１０００内のメモリ１００のメディアユニーク鍵Ｋｍｕが生成される。このように、本実施の形態によれば、公開鍵暗号方式による認証鍵交換処理を行った場合においても、公開鍵・秘密鍵のペアとコントローラ２００に固有の公開コントローラユニークＩＤ（ＩＤｃｎｔｒ）を互いに関連付けることができ、これによりクローンカードの蔓延を防止することができる。
【００７２】
［第３の実施形態］
図７は、第３の実施の形態による情報記録・再生システムの構成を示すブロック図である。メモリカード１０００のハードウェア構成は図３に示したものと同様で良いので、以下では説明は省略する。本実施の形態では、図７に示すように、認証鍵交換処理部２１３の動作が異なっている。すなわち、ここでの認証鍵交換処理部２１３は、ＩＤ生成器２１２で生成された公開コントローラユニークＩＤ（ＩＤｃｎｔｒ）を、直接ホスト装置２０００に送信するのではなく、コントローラ２００内の認証鍵交換処理部２１３に送信する。そして、この公開コントローラユニークＩＤ（ＩＤｃｎｔｒ）は、認証鍵交換処理のパラメータの１つとして用いられる。認証鍵交換処理が完了すると、公開コントローラユニークＩＤ（ＩＤｃｎｔｒ）は、メディアデバイス鍵証明書ＩＤ（ＩＤｍ＿ｃｅｒｔ）と共にＩＤ結合部４０３に送信される。以後の動作は、第２の実施の形態と略同様である。
【００７３】
図８は、楕円曲線暗号をベースとした標準的な認証鍵交換を用いた場合の動作手順を説明している。
【００７４】
ホスト装置は乱数ＲＮｈを生成（ステップＳ１）し、ホストデバイス鍵証明書Ｃｅｒtｈｏｓｔと共にメモリカード１０００に送る（ステップＳ２）。メモリカード１０００は受信したホストデバイス鍵証明書Ｃｅｒｔｈｏｓｔに付けられているデジタル署名を検証すると共に乱数ＲＮｍを生成する（ステップＳ３）。
【００７５】
続いて、メモリカード１０００は乱数ＲＮｍとメディアデバイス鍵証明書（Ｃｅｒtｍｅｄｉａ）をホスト装置に送る（ステップＳ４）。これを受けて、ホスト装置２０００は受信したメディアデバイス鍵証明書Ｃｅｒｔｍｅｄｉａに付けられているデジタル署名を検証する。なお、メモリカード１０００はステップＳ４の処理を行うと共に、楕円曲線暗
号におけるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵交換処理に必要な乱数Ｍｋを生成し、楕円曲線のベースポイントＧを用いてチャレンジ用の値Ｍｖ（＝Ｍｋ＊Ｇ）を計算する。そして、ＩＤ生成器２１２で公開コントローラユニークＩＤ（ＩＤｃｎｔｒ）を生成し、メディアデバイス鍵Ｋｍｄ＿ｉを用いてチャレンジ用の値Ｍｖ、ステップＳ２で受け取った乱数ＲＮｈ及び公開コントローラユニークＩＤ（ＩＤｃｎｔｒ）に対するデジタル署名を生成する（ステップＳ６）。メモリカード１０００はステップＳ６で生成したチャレンジ用の値Ｍｖ、公開コントローラユニークＩＤ（ＩＤｃｎｔｒ）およびデジタル署名をホスト装置２０００に送る（ステップＳ７）。
【００７６】
ホスト装置２０００はステップＳ７で受信した署名を検証し、楕円曲線暗号におけるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵交換処理に必要な乱数Ｈｋを生成し、楕円曲線のベースポイントＧを用いてチャレンジ用の値Ｈｖ（＝Ｈｋ＊Ｇ）を計算する。そして、ホストデバイス鍵Ｋｈｄ_jを用いてチャレンジ用の値Ｈｖ及びステップＳ４で受け取った乱数ＲＮｍに対するデジタル署名を生成すると共に、本認証鍵交換処理によって共有される共有鍵Ｋｓ（＝Ｈｋ＊Ｍｖ）を計算する（ステップＳ８）。ホスト装置２０００はステップＳ８で生成したチャレンジ用の値Ｈｖおよびデジタル署名をメモリカード１０００に送る（ステップＳ９）。これを受けてメモリカード１０００はステップＳ９で受け取ったデジタル署名を検証し、共有鍵Ｋｓ（＝Ｍｋ＊Ｈｖ）を計算する。上記処理のデジタル署名検証処理において署名が正しく検証できなかった場合には、何れのステップにおいてもそれ以降の処理を中止する。
【００７７】
以上の認証鍵交換処理を行うことにより、ホスト装置とメモリカードは共有鍵を秘密裏に共有することができる。認証鍵交換処理においてはホスト装置とメモリカードが互いに生成したチャレンジを用いて共有鍵が計算されるため、共有鍵の値は認証鍵交換処理のたびに異なる。
【００７８】
なお、上記実施の形態においては、ＩＤ生成器２１２において、コントローラ鍵ＫｃとコントローラユニークＩＤ（ＩＤｃｕ）の対に基づいて公開コントローラユニークＩＤ（ＩＤｃｎｔｒ）を生成している。しかし、これに代えて、コントローラユニークＩＤ（ＩＤｃｕ）のみに基づいて公開コントローラユニークＩＤ（ＩＤｃｎｔｒ）を生成してもよい。コントローラ２００が秘匿しているコントローラユニークＩＤ（ＩＤｃｕ）を秘匿した状態のまま、外部に開示可能な別の固有情報を生成することができれば、用いられるパラメータは不問である。ただし、生成に用いる関数は、一方向性関数など、不可逆的であり、得られた公開コントローラユニークＩＤ（ＩＤｃｎｔｒ）から逆計算を行って元のコントローラユニークＩＤ（ＩＤｃｕ）が求められないようなものを選択する必要がある。
【００７９】
［第４の実施形態］
次に、図９を参照して、第４の実施形態に係る認証装置、被認証装置、及びその認証方法について説明する。この実施の形態では、固有情報としての秘密情報NKey及び秘密識別情報SecretIDがメモリ製造業者Ｂからメモリ１００にのみ与えられる例を示しているが、第１の実施形態で説明した通り、前述の第２の実施形態または第３の実施形態などに従い、コントローラ製造業者Ａがコントローラ２００に固有情報を格納させる例と組み合わせることも可能である。
【００８０】
＜１．構成例（メモリシステム）＞
図９を参照して、第４の実施形態に係るメモリシステムの構成例について説明する。図９は、秘密情報NKey及び秘密識別情報SecretIDがメモリ製造業者Ｂからメモリ１００に与えられた後の状態を示している。本実施形態では、メモリ１００が例えばＮＡＮＤ型フラッシュメモリである場合を示している。ここで、秘密情報NKeyと秘密識別情報SecretIDの固有性は任意である。例えば、秘密情報NKeyはメモリ１００毎に固有の値、メモリ１００のロット毎に固有の値、メモリ１００の製造者毎に固有の値であってもよい。加えて、秘密識別情報SecretIDはメモリ１００毎に固有の値、メモリ１００のロット毎に固有の値、メモリ１００の製造者毎に固有の値であってもよい。固有性の粒度は必要に応じて選択すればよいが、秘密情報NKeyもしくは秘密識別情報SecretIDの少なくともいずれか一方はメモリ１００毎に固有な値であることが望ましい。
【００８１】
図示するように、第４の実施形態に係るメモリシステムは、被認証装置であるＮＡＮＤ型フラッシュメモリ１００、認証装置であるホスト装置２０００、及び両者を仲介するコントローラ２００を備える。ホスト装置２０００は、コントローラ２００を介して、ＮＡＮＤ型フラッシュメモリ１００にアクセスする。
【００８２】
ここで、ＮＡＮＤ型フラッシュメモリ１００等の半導体製品の製造工程について、簡単に説明する。半導体製品の製造工程は、主に基板ウェハ上に回路を形成する前工程と、このウェハを個片に切り分けた後、配線や樹脂パッケージ封入等を行う後工程と、に分けることができる。
【００８３】
コントローラ２００は、前工程においてＮＡＮＤ型フラッシュメモリ１００内に包含されるよう構成される場合、前工程においては包含されないが後工程において同一パッケージに包含されるように構成される場合、ＮＡＮＤ型フラッシュメモリ１００とは異なるチップとして提供される場合、等様々な場合がある。図９を含め、以下では、コントローラ２００がＮＡＮＤ型フラッシュメモリ１００とは異なるチップとして提供される場合を例にとって説明している。コントローラ２００とＮＡＮＤ型フラッシュメモリ１００とは、例えば図３のように、カード形状にパッケージングされる（メモリカード１０００）が、これに限定されるものではない。
【００８４】
以下、特に断りのない限り、ホスト装置２０００とＮＡＮＤ型フラッシュメモリ１００との間のデータや命令のやり取りは、多くの場合コントローラ２００が仲介する。この場合でも、コントローラ２００は、前述のデータや命令の本質的内容を変えることはないため、詳細については省略して説明する場合がある。なお、ＮＡＮＤ型フラッシュメモリ１００及びコントローラ２００の構成例の詳細については後述する。
【００８５】
また、ホスト装置２０００の構成としては、民生機器のように専用ハードウェアで構成される場合、専用ハードウェアとそれを動作させるファームウェアの組み合わせで構成される場合だけでなく、装置の全機能がＰＣ上で動作するソフトウェアで実現される場合も想定される。本実施形態は、ホスト装置２０００がどのような構成を採用していても、基本的には適用し得るものである。
【００８６】
図９に示す各コンポーネント、データ処理について、以下で説明する。本実施形態では、被認証装置に記録されている秘密識別情報SecretIDを第三者から秘匿した状態で読み出すと共に、正規の被認証装置から読み出されたデータであることを確認する方法、及び同方法を、ＮＡＮＤ型フラッシュメモリ１００を利用したメモリシステムに適用する場合の構成例を示すものである。
【００８７】
１−１．ＮＡＮＤ型フラッシュメモリ  
本実施形態において、ＮＡＮＤ型フラッシュメモリ１００は、被認証装置である。
【００８８】
図示するように、本実施形態に係るＮＡＮＤ型フラッシュメモリ１００は、セルアレイ（Cell array）１１、及びセルアレイ１１の周辺領域に配置されるデータキャッシュ（DataCache）１２、データ生成回路（Generate）１３、１４、一方向性変換器（Oneway）１５を備える。データ生成回路（Generate）１３、１４及び一方向性変換器（Oneway）１５は認証回路１０７を構成する。
【００８９】
メモリセルアレイ１１は、外部からの読み出し及び書き込みの両方が禁止された秘匿領域（Hidden area）１０１、外部からの書き込みが禁止されたロム領域（ROM area）１０２、外部からの読み出し及び書き込みの両方が可能な読み書き可能領域（Read/Write area）１０３等を備える。
【００９０】
読み書き可能領域（一般領域）１０３は、ＮＡＮＤ型フラッシュメモリ１００の外部からのデータ書き込み及びデータ読み出し両方が可能な領域である。読み書き可能領域１０３には、FKeyvを秘匿するために用意された暗号化FKey束である鍵管理情報FKBv（Family Key Block）が記録される。鍵管理情報FKBvはＮＡＮＤ型フラッシュメモリ１００に記録される他のデータとは異なり、ＮＡＮＤ型フラッシュメモリ１００の製造時だけでなく、例えばＳＤカードのようにＮＡＮＤ型フラッシュメモリ１００にコントローラを結合させて一般ユーザ向けのストレージメディアを製造する段階や、或いは前記ストレージメディアの販売後に、ユーザの要求に従ってサーバからダウンロードして記録するように構成することも可能である。詳細については、後述する。
【００９１】
ここで、鍵管理情報FKBvとは、ホスト装置２０００が保持する秘密情報IDKeykと、当該秘密情報IDKeykのインデックス情報kとに基づいて秘匿情報FKeyvを復号するために用いられる情報、または、ホスト装置２０００が保持する秘密情報IDKeykと、当該ホスト装置２０００の識別情報とに基づいて秘匿情報FKeyvを復号するために用いられる情報である。
【００９２】
また、鍵管理情報FKBvは、ＮＡＮＤ型フラッシュメモリ１００毎にユニークに用意するだけでなく、製造工程に合わせて例えばＮＡＮＤ型フラッシュメモリ１００の製造ロット（lot）単位やウェハ（Wafer）単位等、複数のＮＡＮＤ型フラッシュメモリ１００に共通に付すことが可能な情報（対応付けられることが可能な情報）である。また、鍵管理情報FKBvのインデックス情報vは、鍵管理情報FKBvの識別情報またはバージョン番号情報であってもよい。
【００９３】
秘匿領域１０１は、ＮＡＮＤ型フラッシュメモリ１００の外部からのデータ書き込み及びデータ読み出し両方が禁止される領域（Read/Write inhibit）である。秘匿領域１０１には、認証処理においてＮＡＮＤ型フラッシュメモリ１００が用いる秘密情報NKeyi 及びＮＡＮＤ型フラッシュメモリ１００の秘密識別情報SecretIDが記録される。
【００９４】
ロム領域１０２は、ＮＡＮＤ型フラッシュメモリ１００外部からのデータ書き込みが禁止され、一方データ読み出しが許可される領域である。ロム領域１０２には、鍵管理情報FKBvによって秘匿されている秘匿情報FKeyvを示すためのインデックス情報v（index ofFKey）、秘匿情報FKeyvによって暗号化された秘密識別情報SecretID（E-SecretID）、秘密情報NKeyiを示すためのインデックス情報i（index of NKey）が記録される。
【００９５】
本実施形態では、インデックス情報iやインデックス情報vを記録する際にデータに誤りが生じてしまった場合でも、正しい識別情報が読み出せるようにするために、一般的には誤り訂正符号を付加した状態で記録される。しかしながら、説明を簡略化するため、ここでは誤り訂正符号化及び復号化処理については特に図示しないものとする。
【００９６】
なお、ロム領域１０２は、例えば１回の書き込みのみ許容されるＯＴＰ（One Time Program）領域であってもよいし、ＮＡＮＤ型フラッシュメモリ１００の製造工程においては読み出し及び書き込みが可能な一般領域であって、出荷後の管理フラグの書き換えによって読み出し専用となる領域であってもよい。または、当該領域に対する書き込みコマンドを一般領域とは異なる特殊コマンドとし、ＮＡＮＤ型フラッシュメモリ１００の受領者にはこの特殊コマンドを提供しない等の方法を利用してもよい。他には、ＮＡＮＤ型フラッシュメモリ１００上では一般領域の扱いであるが、コントローラ２００がホスト装置２０００に提供する機能を読み出しのみに限定する、などの構成をとってもよい。
【００９７】
なお、ロム領域１０２に記録される情報は後述の通り、秘匿領域１０１に記録される情報と関連付けられているため、ロム領域１０２に記録される情報を改ざんした場合、ＮＡＮＤ型フラッシュメモリ１００の認証機能を有効に働かせることができなくなる。従って改ざんされることによるセキュリティ上の懸念はないため、必ずしもロム領域である必要はなく、読み出し及び書き込みが可能な一般領域で代用してもよい。この場合、図面中のロム領域１０２を読み書き可能領域（一般領域）１０３と読み替えればよい。関連して、ロム領域１０２中に記載されているデータの一部を読み書き可能領域（一般領域）１０３に記録してもよい。例えば、インデックス情報v（index of FKey）を読み書き可能領域（一般領域）に記録し、暗号化された秘密識別情報（E-SecretID）とインデックス情報v（index of FKey）をロム領域１０２に記録するという構成も可能である。上記ロム領域１０２の構成例については、本明細書にて他の実施形態や変形例として後述されるロム領域１０２にも適用可能である。
【００９８】
暗号化された秘密識別情報E-SecretIDとは、ＮＡＮＤ型フラッシュメモリチップ１０毎に固有に（ユニークに）付される秘密識別情報SecretIDを秘匿情報FKeyvによって暗号化したデータである。或いは、ＮＡＮＤ型フラッシュメモリに予めコンテンツを記録して販売するようなプリレコーディング（事前記録）コンテンツ配布用途において同じコンテンツデータを記録する際には、敢えて同じ暗号化秘密識別情報E-SecretIDを記録する等、用途に合わせて同じ暗号化秘密識別情報を複数のＮＡＮＤ型フラッシュメモリに記録することもできる。
【００９９】
データキャッシュ１２は、メモリ（セルアレイ）１１から読み出したデータを一時的に記憶する。
【０１００】
データ生成部１３、１４は、複数の入力データから予め定められた演算によって出力データを生成する回路である。
【０１０１】
データ生成部１３は、ホスト装置２０００から受信した定数HCjを前述の秘密情報NKeyi を用いて変換することで、秘密情報HKeyi,jを生成する。データ生成部１４は、ホスト装置２０００から受信した乱数RNhを秘密情報HKeyi,jを用いて変換することで、セッション鍵SKeyi,jを生成する。データ生成部１３、１４は、ハードウェア（回路）若しくはソフトウェア、またはハードウェアとソフトウェア両方の組み合わせでも実装され得る。
【０１０２】
データ生成部１３、１４は、回路として実装される場合は、全体の回路規模を小さくするために後述の一方向性変換器１５と同じ或いは一方向性変換器を流用した回路や、AES（Advanced Encryption Standard）暗号化器等を用いることも可能である。同様に、データ処理手順を分かり易くするために異なる構成要素として図示されている二つのデータ生成部は、同じ回路を繰り返し利用することが可能である。この例の場合、HKeyi,j=AES_E(NKeyi, HCj)、SKeyi,j= AES_E(HKeyi,j, RNh)などの構成をとることが可能である。
【０１０３】
一方向性変換器１５は、入力されたデータと別途入力された鍵データに一方向性の変換を施し、一方向性変換された入力データを出力する。一方向性変換器１５はハードウェア（回路）若しくはソフトウェア、またはハードウェアとソフトウェア両方の組み合わせでも実装され得る。
【０１０４】
一方向性変換器１５は、秘匿領域１０１から読み出した秘密識別情報SecretIDを、データ生成回路１４によって生成されたセッション鍵SKeyi,jを用いて一方向性関数により変換し、一方向性変換識別情報Oneway-ID (= Oneway(SKeyi,j, SecretID))を生成する。また、一方向性変換器１５は、回路として実装される場合は、前述の通り、全体の回路規模を小さくするために、データ生成部１４等を流用して使用することも可能である。この例の場合、Oneway-ID=AES_E(SKeyi、j,SecretID) (+) SecretIDなどの構成をとることが可能である。
【０１０５】
また、図示しないが、コントローラ２００を介してホスト装置２０００にデータを出力する出力部等も実際には構成要素として配置されている。
【０１０６】
１−２．ホスト装置
本実施形態において、ホスト装置２０００は、認証装置である。
【０１０７】
図示するように、本実施形態に係るホスト装置（Host）２０は、復号部（Decrypt）２１、FKB処理部（Process FKB）２２、メモリ（Memory）２３、乱数生成部（RNG: RandomNumber Generator）２４、選択部（Select 2）２５、データ生成部（Generate）２６、一方向性変換器（Oneway）２７、及びデータ検証部（Verify）２８等を備える。この他、例えば、図示しない誤り訂正処理部等も必要に応じて構成要素として備えることが可能である。
【０１０８】
復号部２１は、入力されたデータを別途入力された鍵データで複合し、復号された入力データを出力する。本実施形態では、復号部２１は、コントローラ２００を介して、暗号化秘密識別情報E-SecretIDをＮＡＮＤ型フラッシュメモリ１００から読み出す。そして、暗号化秘密識別情報E-SecretIDを、後述のFKB処理部２２（データ選択部２２−２）から入力された秘匿情報FKeyを用いて復号し、秘密識別情報SecretIDを出力する。
【０１０９】
FKB処理部２２は、ＮＡＮＤ型フラッシュメモリ１００から読み出される鍵管理情報FKBvを、メモリ２３に秘匿されている秘密情報IDKeyk及び秘密情報IDKeykのインデックス情報kを用いて復号し、生成した秘匿情報FKeyを復号部２１に出力する。本実施形態では、FKB処理部２２は、データ選択部（Select 1）２１−１及び復号部（Decrypt）２２−２を備えている。
【０１１０】
第１段目のデータ選択部２１−１は、ＮＡＮＤ型フラッシュメモリ１００から読み出した暗号化FKey束（鍵管理情報FKBv）の中から、メモリ２３に記録されているインデックス情報kを用いて、メモリ２３に秘匿されている秘密情報IDKeykによって復号可能なデータを選択して、復号部２２−２に出力する。
【０１１１】
復号部２２−２は、メモリ２３に秘匿されている秘密情報IDKeykを用いて、データ選択部２２−１において選択されたデータを復号し、生成された秘匿情報FKeyを復号部２１に出力する。
【０１１２】
メモリ２３は、インデックス情報k、秘密情報IDKeyk、秘密情報セットHKeyi,j (i=1,…,m。なお、jは当該HKeyi,jにおいては固定の値である)、及び定数HCjを記録し、少なくとも秘密情報IDKeyk及び秘密情報セットHKeyi,j (i=1,…,m)をホスト装置２０００の外部に対して秘匿する。ここで、定数HCjとは、認証要求（Request authentication）時にＮＡＮＤ型フラッシュメモリ１００に送出するために予め保持しているホスト装置２０００の定数である。詳細については後述する。
【０１１３】
乱数生成部２４は、認証処理に用いる乱数RNhを生成し、出力する。
【０１１４】
第２段目のデータ選択部２５は、ＮＡＮＤ型フラッシュメモリ１００のロム領域１０２からデータキャッシュ１２を介して読み出したインデックス情報iを用いて、当該ホスト装置２０００が秘匿している秘密情報セットHKeyi,jの中から、認証処理に必要な秘密情報HKeyi,jを選択する。
【０１１５】
データ生成部２６は、複数の入力データから予め定められた演算によって出力データを生成する演算部である。本実施形態では、データ生成部２６は、ホスト装置２０００自身が生成した乱数RNhを、ホスト装置２０００が秘匿している秘密情報HKeyi,jを用いて変換することで、セッション鍵SKeyi,jを生成する。データ生成部２６として、例えば上述したAES暗号化器等を用いることも可能である。
【０１１６】
一方向性変換器２７は、復号部２１から出力される秘密識別情報SecretIDを、データ生成部２６から出力されるセッション鍵SKeyi,jを用いて一方向性関数により変換し、一方向性変換識別情報Oneway-IDを生成する。
【０１１７】
データ検証部２８は、ＮＡＮＤ型フラッシュメモリ１００から受信した一方向性変換識別情報Oneway-IDと、ホスト装置２０００内の一方向性変換器２７から得られた一方向性変換識別情報Oneway-IDとが一致するか否かを比較する。上記一方向性変換識別情報Oneway-IDの両方の値が一致した場合（OK）には、復号部２１で得られた秘密識別情報SecretIDが正規のIDであると判定して、得られた秘密識別情報SecretIDを以降の処理に引き渡す。一方、不一致の場合（NG）には、秘密識別情報SecretIDが不正なIDであると判定して、その旨を出力する。
【０１１８】
他に、ホスト装置２０００が有する秘密情報、例えばIDKeyk,HKeyi,jが流出し、流出情報を有する不正ホスト装置が不正製造者によって製造された場合などにおいて、当該不正ホスト装置を無効化する手段として、鍵管理情報（FKBv）から不正ホスト装置が有するIDKeykにてFKeyを導出可能な情報を除くなどの対応をとることも可能である。この対応については、図１１における説明にて後述する。この対応をするに当たっては、秘密情報IDKeyk及びインデックス情報k、秘密情報HKeyi,j及びホスト定数HCjの間に関連を持たせることが有用である。関連があれば、不正ホスト装置が認証において通知するHCjを観測することによって当該不正ホスト装置が有する秘密情報IDKeyk及びHKeyi,jの両方が特定可能となる。関連付けの方法としては、HCjの全部もしくは一部の情報をIDKeykと共有することや、HCjの全部もしくは一部の情報をIDKeykを暗号処理した結果により構成することや、IDKeykの全部もしくは一部の情報をHCjを暗号処理した結果により構成することなどの方法がとれる。更に、鍵管理情報（FKBv）の生成に当たり、FKeyおよびIDKeykに加えて、HKeyi,jを用いるのが望ましい。これについてはFKBの構成例を説明している箇所にて後述する。
【０１１９】
ここで、上記秘密情報IDKeyk、秘密情報HKeyi,jは、例えば、ホスト装置２０００が民生機器のような専用ハードウェア装置であれば内部の専用メモリにメーカ独自の方法で暗号化した上で記録されていたり、PC等で実行されるプログラムであればタンパーレジスタントソフトウェア（TRS）技術によって不正な解析から保護できる状態で保持していたり、或いはセキュリティモジュールを内蔵している場合には当該セキュリティモジュールの機能を利用して秘匿する等の対策を採った状態で記録される。
【０１２０】
なお、コントローラ（Controller）２００は、ＮＡＮＤ型フラッシュメモリ１００を制御して、ホスト装置２０００との間のデータ転送等を行う。例えばコントローラ２００は、ホスト装置２０００から受信した命令を解釈し、ＮＡＮＤ型フラッシュメモリ１００のインターフェース仕様に適合した命令に変換した上で、当該命令をＮＡＮＤ型フラッシュメモリ１００に送出する。コントローラ２００は、例えばSD Memory規格、SDIO規格、eMMC規格等、必要に応じて様々なインターフェース規格を採用することができる。
【０１２１】
また、コントローラ２００は、一般領域１０３の一部を確保し、自身の動作に必要な制御データを保存する。また、コントローラ２００は、ホスト装置２０００から受信した論理アドレスをＮＡＮＤ型フラッシュメモリの物理アドレスに変換する機能を有していてもよい。また、メモリ１００の疲弊を平準化するため、所謂ウェアレベリングを実行する機能を有していてもよい。ただし、少なくとも秘匿領域１０１についてはウェアレベリングの対象外とされる。
【０１２２】
また、メモリシステムの構成例は、上記説明したものに限られない。例えば、図示しない誤り訂正処理部等のその他の構成要素も必要に応じて備えることが可能である。更に、ＮＡＮＤ型フラッシュメモリ１００が有する秘密情報NKeyiが複数存在してもよい。すなわち、秘密情報NKeyiとこれに対応するインデックス情報iの組み合わせを１つのスロットとし、複数スロットがＮＡＮＤ型フラッシュメモリ１００に記録されている。ここで、上記スロットには各々スロット番号が付与されており、ホスト装置２０００は各スロット番号のインデックス情報ｉを読み出し、いずれか一つを選択して認証を行う。
【０１２３】
この場合、ホスト装置２０００はＮＡＮＤ型フラッシュメモリ１００に対して選択したスロット番号に相当する情報を通知し、ＮＡＮＤ型フラッシュメモリ１００は通知されたスロット番号に相当する情報を用いて認証処理を行う。更には、ＮＡＮＤ型フラッシュメモリ１００が有する全ての情報を１つのスロットとし、当該情報スロットを複数有してもよい。すなわち、秘密情報NKeyi、インデックス情報i、鍵管理情報（FKBv）、インデックス情報v（index of FKey）、秘密識別情報SecretID、暗号化された秘密識別情報（E-SecretID）を１つのスロットとし、複数スロットがＮＡＮＤ型フラッシュメモリ１００に記録されている。ここで、上記スロットには各々スロット番号が付与されており、ホスト装置２０００は各スロット番号のインデックス情報ｉを読み出し、いずれか一つを選択して認証を行う。この場合、ホスト装置２０００はＮＡＮＤ型フラッシュメモリ１００に対して選択したスロット番号に相当する情報を通知し、ＮＡＮＤ型フラッシュメモリ１００は通知されたスロット番号に相当する情報を用いて認証処理を行う。
【０１２４】
上記において、ＮＡＮＤ型フラッシュメモリ１００が複数のスロットを有する方法を示したが、これらに限らず、一部の情報を複数のスロットで共有するいかなる構成をとることも可能である。例えば、秘密識別情報SecretID、暗号化された秘密識別情報（E-SecretID）、鍵管理情報（FKBv）、インデックス情報v（index of FKey）は複数のスロットで共有し、他の情報はスロット毎に個別に有するなども可能である。
【０１２５】
また、ＮＡＮＤ型フラッシュメモリ１００が複数のスロットとスロット番号を有し、いずれのスロットを認証に用いるかをホスト装置２０００が通知する方法は本明細書にて後述する他の実施例全てに適用可能である。
【０１２６】
＜２．認証フロー＞  
次に、図１０に沿って、第４の実施形態に係るメモリシステムの認証フローについて説明する。
【０１２７】
（Step Ｓ１１）
認証を開始（Start）すると、ホスト装置２０００は、ＮＡＮＤ型フラッシュメモリ１００から鍵管理情報である暗号化FKey束（FKB: Family Key Block）及び暗号化秘密識別情報SecretID（E-SecretID）を読み出す。
【０１２８】
（Step Ｓ１２）
続いて、ホスト装置２０００は、読み出した鍵管理情報FKBからデータ選択部（Select1）２２−１によりデータ選択処理を行い、ホスト装置２０００が復号可能な暗号化された秘匿情報FKeyを読み出すと共に、秘匿している秘密情報IDKeykを用いて上記復号部２２−２により復号することにより、秘匿情報FKeyを得る。更に、ホスト装置２０００は、得られた秘匿情報FKeyを用いて、ＮＡＮＤ型フラッシュメモリ１００から読み出した暗号化秘密識別情報E-SecretIDを復号することにより、秘密識別情報SecretIDを得る。
【０１２９】
（Step Ｓ１３）
続いて、ホスト装置２０００は、ＮＡＮＤ型フラッシュメモリ１００に対して、インデックス情報iの読み出し要求を行う。
【０１３０】
（Step Ｓ１４）
続いて、ＮＡＮＤ型フラッシュメモリ１００は、ホスト装置２０００の要求を受けて、インデックス情報iをメモリ１００からロードし、ホスト装置２０００に出力する。
【０１３１】
（Step Ｓ１５）  
続いて、ホスト装置２０００は、認証要求時に必要となる乱数RNhを生成する。認証処理に乱数RNhを用いることにより、以下の処理でＮＡＮＤ型フラッシュメモリ１００との間で毎回異なる共有鍵を利用することができる。
【０１３２】
（Step Ｓ１６）  
続いて、ホスト装置２０００は、認証要求（Request authentication）と共に、予め保持している定数HCj及び乱数RNhをＮＡＮＤ型フラッシュメモリ１００に送出する。
【０１３３】
（Step Ｓ１７）
続いて、ＮＡＮＤ型フラッシュメモリ１００は、秘密情報NKeyi (i=1,…,m)及び秘密識別情報SecretIDを秘匿領域１０１からロードし、データキャッシュ１２に保存する。
【０１３４】
（Step Ｓ１８）
続いて、ＮＡＮＤ型フラッシュメモリ１００は、秘匿している秘密情報NKeyiとホスト装置２０００から受信した定数HCjとを用いて、データ生成回路１３におけるデータ生成処理により秘密情報HKeyi,jを生成する。
【０１３５】
（Step Ｓ１９）
続いて、ＮＡＮＤ型フラッシュメモリ１００は、受信した乱数RNhを用いて、データ生成回路１４におけるデータ生成処理により、セッション鍵SKeyi,j (= Generate(HKeyi,j, RNh))を生成する。
【０１３６】
（Step Ｓ２０）
続いて、ＮＡＮＤ型フラッシュメモリ１００は、生成したセッション鍵SKeyi,jを用いて、秘密識別情報SecretIDに一方向性変換器１５における一方向性変換処理を行い、一方向性変換識別情報Oneway-ID (=Oneway(SKeyi,j, SecretID))を生成する。生成された一方向性変換識別情報Oneway-IDは、ホスト装置２０００に送出される。
【０１３７】
（StepＳ２１）
上記StepＳ１８と並行して、ホスト装置２０００は、受信したインデックス情報iを用いて、予め秘匿していた秘密情報セットHKeyi,j (i=1,…,m)から当該ＮＡＮＤ型フラッシュメモリ１００との認証処理に必要な秘密情報HKeyi,jを選択する。
【０１３８】
（Step Ｓ２２）
続いて、ホスト装置２０００は、選択した秘密情報HKeyi,jと生成した乱数RNhとを用いて、データ生成部２６におけるデータ生成処理により、セッション鍵SKeyi,j (= Generate(HKeyi,j, RNh))を生成する。
【０１３９】
（Step Ｓ２３）  
続いて、ホスト装置２０００は、生成したセッション鍵SKeyi,jを用いて、秘密識別情報SecretIDに一方向性変換器２７における一方向性変換処理を行い、一方向性変換データOneway-IDを生成する。
【０１４０】
（Step Ｓ２４）
続いて、ホスト装置２０００は、ＮＡＮＤ型フラッシュメモリ１００より受信した一方向性変換識別情報Oneway-IDと、自身が生成した一方向性変換識別情報Oneway-IDとが一致するか否かを判定する。
【０１４１】
上記一方向性変換識別情報Oneway-IDの両方の値が一致した場合（OK）には、復号部２１で得られた秘密識別情報SecretIDが正規のIDであると判定して、以降の処理に秘密識別情報SecretIDを引き渡す。一方、不一致の場合（NG）には、秘密識別情報SecretIDが不正なIDであると判定し、その旨を以降の処理に出力する。
【０１４２】
以上の動作により、第４の実施形態に係る認証フローを終了する（End）。
【０１４３】
なお、ここで、メモリシステムの構成例において示した通り、ＮＡＮＤ型フラッシュメモリ１００が複数のスロットを有する場合、ホスト装置２０００は認証に用いるスロット番号をＮＡＮＤ型フラッシュメモリ１００に通知する必要がある。この場合、上記Step Ｓ１６にてスロット番号を付随して通知してもよいし、もしくはStep Ｓ１６より以前のStepにおいて通知してもよい。
【０１４４】
＜３．FKB(Family Key Block)について＞  
次に、図１１を用い、第４の実施形態に係る鍵管理情報FKB(Family Key Block)についてより詳しく説明する。
【０１４５】
秘密識別情報SecretIDが記録されているＮＡＮＤ型フラッシュメモリ１００に適合した鍵管理情報FKBを生成するためには、予め用意された秘密鍵情報であるIDKeyi (i=1,…,n)（Set of IDKeyi’s）の１つ１つのIDKeyiを用いて、FKeyvを１つ１つ暗号化（Encrypt）する。つまり、鍵管理情報FKBとは、暗号化FKeyv(E- FKeyv,i) = Encrypt(IDKeyi, FKeyv)の集合であり、この暗号化FKeyvの集合を暗号化FKey束と称する。
【０１４６】
なお、鍵管理情報FKBの構成については、本実施形態に限られない。例えば、特定のIDKeyiが露呈してしまった場合、当該IDKeyiを保持しているホスト装置２０００では暗号化FKey束からFKeyを復号することができないようにするために、当該秘密情報IDKeyiで復号可能な暗号化FKeyv（上述の例ではE- FKeyv,i）をFKBから削除することにより、新たに構成されたFKBを記録したＮＡＮＤ型フラッシュメモリ１００を使用した場合には、当該ホスト装置２０００では正しいFKeyv及び秘密識別情報SecretIDを得る（復号する）ことができないようにすることも可能である。このようにすることで、当該秘密情報IDKeyiを保持したホスト装置２０００を無効化する機能を提供することも可能である。
【０１４７】
また、前述の通り、秘密情報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)などの構成をとってもよい。これは、複数のホスト装置２０００から鍵が流出した場合に、異なる装置の秘密鍵IDKeyi、HKeyi,jを組み合わせることを防止する効果がある。つまり、正しく組み合わされたIDKeyi、HKeyi,jでない限り、FKeyの復号を不可能とすることにより、HCjを観測することでこれに紐付いたHKeyi,jが判明し、更にIDKeyiも特定することができ、ひいては露呈したIDKeyiを無効化することが可能となる。
【０１４８】
鍵管理情報FKBの生成方法についても、本実施形態に限られない。例えば、CPRM（非特許文献１参照）において用いられているMKB（Media Key Block）技術や、非特許文献３に開示されたMKB技術を用いて鍵管理情報FKBを生成しても、ホスト装置２０００を無効化する機能を提供することが可能である。
【０１４９】
ここで、MKB技術とは、複数の機器がそれぞれ異なる秘密情報を持つ状況で、機器の無効化を実現しつつ、（無効化対象でない機器の間で）共通の秘密情報（Media Key）を効率よく共有するための技術であり、Broadcast Encryptionとも称されるものである。
【０１５０】
例えば、上記MKB技術を適用した場合、メモリシステムの構成例は、図１２のように示される。図示するメモリシステムは、FKB処理部（Process FKB）２２が上位概念化されて図示される点で、図９と相違する。この場合においても、インデックス情報kやIDKeyiに対応する情報であるホスト装置２０００のノード番号やノード番号に割り当てられたホスト鍵群によって復号されるFKBの当該データをHKeyi,jやHCjと関連付けることにより、露呈した鍵の特定と無効化が可能となる。
【０１５１】
＜４．秘密情報やFKBの書き込みについて＞
次に、ＮＡＮＤ型フラッシュメモリ１００への秘密情報や鍵管理情報FKBの書き込みについて説明する。
【０１５２】
４−１．ＮＡＮＤ型フラッシュメモリの製造時等に書き込む場合  
まず、図１３、及び図１４を用い、例えば、ＮＡＮＤ型フラッシュメモリ１００の製造時等に秘密情報や鍵管理情報FKBを書き込む場合について説明する。ここでは、図１４のフローに即して説明する。
【０１５３】
鍵発行／管理センタ３０００は、以下のデータを生成する：鍵管理情報FKBv (v=1,…,n)、秘匿情報FKeyv(v=1,…,n)、インデックス情報v(v=1,…,n)、秘密情報NKeyi、及びインデックス情報i。なお、前述した通り、FKBvは、FKeyvを暗号化したものである。また、vは複数の値であっても良い。例えば、vとして1,2,3の３つの値を鍵発行／管理センタ３０００が生成する場合、鍵発行／管理センタ３０００は、生成したvに対応させる形で、(FKB1, FKey1), (FKB2, FKey2), (FKB3, FKey3)を生成する。
【０１５４】
鍵発行／管理センタ３０００は、生成したデータの内、FKeyv(v=1,…,n)、v(v=1,…,n)、NKeyi,iをメモリ製造業者Ｂに渡す。これらのデータを渡す際には、例えば、鍵発行／管理センタ３０００は、予めメモリ製造業者Ｂの公開鍵を入手しておき、当該公開鍵を用いてデータを暗号化した上でメモリ製造業者Ｂに送信する、等といった安全な手段を用いる。
【０１５５】
メモリ製造業者Ｂは、上記ＮＡＮＤ型フラッシュメモリ１００に加え、鍵発行／管理センタ３０００から渡されたFKBv (v=1,…,n)等のデータ３１を保持する。また、メモリ製造業者Ｂは、選択部３２、３３、生成部３４、暗号部３５を備えている。
【０１５６】
（Step Ｓ３１）  
上記構成により、まず、メモリ製造業者Ｂは、生成部（SecretID Generator）３４において、秘密識別情報SecretIDを生成する。
【０１５７】
（Step Ｓ３２）  
続いて、データ３１を受け取ったメモリ製造業者Ｂは、vの中から一つの値を選択部３２により選択する。更に、選択部３２は、前記選択したvに対応するFKeyvを選択する。メモリ製造業者Ｂは、選択したFKeyvを用いて、生成した秘密識別情報SecretIDを暗号化し、暗号化された秘密識別情報E-SecretIDを生成する。
【０１５８】
（Step Ｓ３３）  
続いて、メモリ製造業者Ｂは、当該vの値をＮＡＮＤ型フラッシュメモリ１００のロム領域１０２へインデックス情報v（index of FKey）として書き込む。
【０１５９】
また、メモリ製造業者Ｂは、インデックス情報i（index of NKey）の値をＮＡＮＤ型フラッシュメモリ１００のロム領域１０２へ書き込むと共に、NKeyiの値を秘匿領域１０１へ書き込む。
【０１６０】
更に、メモリ製造業者Ｂは、秘密識別情報SecretIDの値をＮＡＮＤ型フラッシュメモリ１００の秘匿領域１０１へ書き込むと共に、暗号化された秘密識別情報E-SecretIDの値をロム領域１０２へ書き込む。
【０１６１】
以上の動作により、ＮＡＮＤ型フラッシュメモリ１００の製造時等に所定の秘密情報や鍵管理情報FKBを書き込むことができる（End）。なお、上記各値を書き込む順番は、暗号化された秘密識別情報E-SecretIDは、暗号化処理しないと得られない値であるため、暗号部３５による上記暗号化処理後となる。しかし、それ以外の書き込み動作の順序について制約はなく、上述の例以外の順番で書き込んでも良い。
【０１６２】
更に、メモリ製造業者Ｂは、書き込み処理を終えたＮＡＮＤ型フラッシュメモリ１００をアセンブリ業者Ｃに渡す。
【０１６３】
このように、本実施形態では、アセンブリ業者Ｃの出荷前に、インデックス情報v（index of FKey）等が、ＮＡＮＤ型フラッシュメモリ１００にあらかじめ書き込まれた状態とすることができる。
【０１６４】
４−２．FKBをアセンブリ業者が書き込む場合
次に、図１５、及び図１６を用い、FKBをアセンブリ業者Ｃが書き込む場合について説明する。ここでも、図１６のフローに即して説明する。
【０１６５】
アセンブリ業者Ｃは、上記メモリ製造業者Ｂから上記所定の情報v等が書き込まれたＮＡＮＤ型フラッシュメモリ１００を受け取る。
【０１６６】
そして、例えばＳＤカード等のように、そのＮＡＮＤ型フラッシュメモリ１００を制御するコントローラ２００を結合させ、一般ユーザ等向けのメモリカード１００を製造する。
【０１６７】
アセンブリ業者Ｃは、上記メモリカード１００に加え、鍵発行／管理センタ３０００から受け取るデータ（FKBv）５１を保持すると共に、選択部５２を備える。
【０１６８】
アセンブリ業者Ｃが鍵管理情報FKBvを書き込む処理については、次の通りである。
【０１６９】
（Step Ｓ３５）
まず、アセンブリ業者Ｃは、鍵管理情報FKBvを鍵発行／管理センタ３０００からデータ５１として受け取る。この際、データ５１の受け渡しには、上述した安全な手段を用いる。
【０１７０】
そして、アセンブリ業者Ｃは、（コントローラ２００を介して）ＮＡＮＤ型フラッシュメモリ１００のロム領域１０２に記録されるインデックス情報vの値をデータキャッシュ１２等に読み出す。
【０１７１】
（Step Ｓ３６）
続いて、アセンブリ業者Ｃは、読み出したインデックス情報vの値に対応する鍵管理情報FKBvを選択部５２により選択する。
【０１７２】
（Step Ｓ３７）  
続いて、アセンブリ業者Ｃは、コントローラ２００を介して、ＮＡＮＤ型フラッシュメモリ１００の読み書き可能領域１０３に選択した鍵管理情報FKBvを書き込む。
【０１７３】
＜作用効果＞  
上記のように、第４の実施形態に係る認証装置、被認証装置、及びその認証方法によれば、少なくとも下記（１）乃至（３）の効果が得られる。
【０１７４】
（１）ホスト装置２０００から秘密情報が漏洩した場合であっても、漏洩した情報を用いたＮＡＮＤ型フラッシュメモリ１００の秘密情報の不正利用を防止することができる。
ここで、上述した通り、認証装置であるホスト装置２０００は、民生機器のような専用ハードウェア装置だけでなく、例えば、ＰＣ等で実行可能なプログラムとして提供され、当該ソフトウェアが実質的なホスト装置となる場合がある。一方、被認証装置であるＮＡＮＤ型フラッシュメモリ１００は、記録メディアであり、ファームウェアと呼ばれるプログラムが介在する場合であっても、重要な処理や情報はメモリ１００中のハードウェア内に秘匿された状態で記憶される。
【０１７５】
そのため、現実的には、例えば、ＰＣ上で実行されるソフトウェアは、記録メディアに比べて耐タンパー性能（攻撃に対する耐性）が低くなってしまうことが懸念される。そのため、耐タンパー性能の低いホスト装置（認証装置）２０００を攻撃することで、耐タンパー性の高いＮＡＮＤ型フラッシュメモリ１００（被認証装置）に秘匿された秘密情報をも暴露され、耐タンパー性の高い装置に成りすまされることが懸念される。
【０１７６】
そこで、第４の実施形態に係る構成及びその認証方式では、上記のように、比較的耐タンパー性の高いＮＡＮＤ型フラッシュメモリ１００は、第１鍵情報（NKeyi）から第２鍵情報（HKeyi,j）を生成することができる第１鍵情報（NKeyi）をメモリ１００に秘匿する。一方、ホスト装置２０００は、第２鍵情報（HKeyi,j）からは第１鍵情報（NKeyi）を生成することができない第２鍵情報（HKeyi,j）のみをメモリ２３に秘匿する。
【０１７７】
そのため、ＮＡＮＤ型フラッシュメモリ１００は、ホスト装置２０００から受領した定数HCjと自身が秘匿する第１鍵情報（NKeyi）とを用いて、認証装置２０が秘匿する第２鍵情報（HKeyi,j）を生成する。ＮＡＮＤ型フラッシュメモリ１００は、第２鍵情報（HKeyi,j ）と乱数RNｈとを用いて、セッション鍵SKeyi,jを生成する。
【０１７８】
ホスト装置２０００は、インデックス情報iにより選択される第２鍵情報（HKeyi,j）と乱数RNｈとを用いて、セッション鍵SKeyi,jを生成する。その結果、ＮＡＮＤ型フラッシュメモリ１００とホスト装置２０００とは、同じセッション鍵SKeyi,jを共有する。
【０１７９】
このように、本実施形態では、ＮＡＮＤ型フラッシュメモリ（被認証装置）１００が秘匿する情報の秘密レベルと、ホスト装置（認証装置）が秘匿する情報の秘密レベルとを非対称とすることができる。例えば、本実施形態では、比較的耐タンパー性の高いＮＡＮＤ型フラッシュメモリ１００が秘匿する情報の秘密レベルを、比較的耐タンパー性の低いホスト装置２０００が秘匿する情報の秘密レベルよりも、より高く設定することができる。
【０１８０】
そのため、仮にホスト装置２０００が秘匿する情報が漏洩した場合であっても、比較的耐タンパー性の高いＮＡＮＤ型フラッシュメモリ１００が秘匿する情報の秘密レベルが更に高いため、漏洩した情報を用いてＮＡＮＤ型フラッシュメモリ１００に”成りすますこと”ができない。従って、漏洩した情報を用いたＮＡＮＤ型フラッシュメモリ１００の秘密情報の不正利用を防止することができる点で有利である。その結果、例えば、ホスト装置２０００から読み出されたＩＤ情報が、目的の被認証装置１０から読み出した情報であることを確実に判定し、その相手方の不正利用の無効化等が可能となる。
【０１８１】
（２）実装化において有利である。
上述した通り、本実施形態のような構成では、比較的大きな回路規模を要求される公開鍵暗号処理やMKB処理のハードウェア実装が困難である等の回路規模上の制約が同時に課せられる環境下である。
【０１８２】
しかしながら、本実施形態によれば、鍵情報が非対称であるものの比較的大きな回路規模を必要とする公開鍵暗号処理を用いる必要がない。更に、上記のように、ホスト装置（認証装置）２０００とＮＡＮＤ型フラッシュメモリ（被認証装置）１００とが秘匿する情報の秘密レベルを非対称とすることにより、片方の装置から漏れた情報だけではもう一方の装置に成りすますことができない認証手段を行い、認証装置２０００と被認証装置１００との間で秘密情報であるセッション鍵SKeyi,jを共有する。
【０１８３】
そのため、上記制約が課される厳しい環境下であっても、実装化において有利であると言える。更に、上記のように、メモリシステムを構成するデータ生成回路や暗号化器を同じ処理として共有することにより、回路規模を更に小さくすることも可能である。
【０１８４】
（３）製造工程の簡略化、製造コストの低減化に対して有利である。  
本実施形態に係るＮＡＮＤ型フラッシュメモリ１００は、読み書き可能領域１０３に、その用途に応じてＮＡＮＤ型フラッシュメモリ１００毎に固有（ユニーク）、或いは製造ロット（lot）単位等複数のＮＡＮＤ型フラッシュメモリ１００に共通に付される鍵管理情報（FKBv）を備える。更に、ロム領域１０２に、ＮＡＮＤ型フラッシュメモリ１００毎に固有に（ユニークに）付される暗号化された秘密識別情報（E-SecretID）を備える。
【０１８５】
鍵管理情報（FKBv）を製造ロット単位で共通化させた場合には、ＮＡＮＤ型フラッシュメモリ１００毎に記録しなければならない固有（ユニーク）な情報を、暗号化された秘密識別情報（E-SecretID）のようにデータサイズの小さいデータだけに減らすことができる。
換言すれば、共通に付される鍵管理情報（FKBv）と固有の暗号化秘密識別情報（E-SecretID）とに分け、２段階に暗号化することにより、ＮＡＮＤ型フラッシュメモリ１００に書き込むべき固有の暗号化秘密識別情報（E-SecretID）のデータサイズを抑えることができるものである。
【０１８６】
例えば、上記図１３、図１４で示したように、ＮＡＮＤ型フラッシュメモリの製造時等において、メモリ製造業者Ｂは、鍵発行／管理センタ３０００から受け取ったＮＡＮＤ型フラッシュメモリ１００毎に固有な情報（E-SecretID）を書き込む。
【０１８７】
そして、ＮＡＮＤ型フラッシュメモリ１００に共通に付される暗号化された鍵管理情報（FKBv）については、アセンブリ業者Ｃ等がＮＡＮＤ型フラッシュメモリ１００に共通に書き込むことができる。例えば、上記図１５、図１６で示したように、アセンブリ業者Ｃが、上記鍵発行／管理センタ３０００から受け取ったＮＡＮＤ型フラッシュメモリ１００毎に共通な鍵管理情報FKBvを書き込む。そのため、メモリ製造業者Ｂが書き込まなければならないＮＡＮＤ型フラッシュメモリ１００毎に固有（ユニーク）なデータのサイズを低減することが可能となる。
【０１８８】
ここで、ＮＡＮＤ型フラッシュメモリ１００の製造時等に、ＮＡＮＤ型フラッシュメモリ１００に固有かつデータサイズの大きい情報を書き込む場合、製造工程が煩雑となり、製造時間が長期化し、製造コストが増大してしまう。しかしながら、本実施形態に係る構成及び方法によれば、共通に付される鍵管理情報FKBvと固有の暗号化秘密識別情報（E-SecretID）とに分けて２段階に暗号化することにより、このような煩雑な製造工程は不要となるため、製造工程を簡略化でき、製造コストを低減できる点で有利である。また、製造時間を短縮化できるため、消費電力を低減できる点でもメリットがある。
【０１８９】
また、ホスト装置２０００の側においても、秘匿情報FKeyを用いてＮＡＮＤ型フラッシュメモリに固有な値であるSecretIDを暗号化してE-SecretIDを生成し、更に、IDKeykを用いてFKeyを暗号化して鍵管理情報FKBを生成するという構成を取ることにより、ＮＡＮＤ型フラッシュメモリ１００と同様のメリットを享受することが可能となる。
【０１９０】
［第４の実施形態の変形例１（FKBを後からダウンロードして書き込む場合）］
次に、図１７を参照して、変形例１に係る認証装置、被認証装置、及びその認証方法について説明する。この説明において、上記実施形態と重複する部分の説明については、省略する。
【０１９１】
＜FKBの書き込みについて＞  
暗号化FKey束（FKB）の書き込みについて、説明する。
本変形例１における処理は、暗号化FKey束（FKB）が、ＮＡＮＤ型フラッシュメモリ１００の製造時に書き込まれる場合等には、特に必要のない処理である。しかし、ＮＡＮＤ型フラッシュメモリ１００とコントローラ２００等が結合されて、例えば、ＳＤカード等のメモリカード製品として一般ユーザが入手し、カード利用時に市場において後から書き込まれる場合等には、必要となるFKBの書き込み処理に関するものである。
【０１９２】
図１７では、上記のように鍵管理情報FKBが未記録のメモリカード１００に記録されたデータの記録状態を示している。
図示するように、ＮＡＮＤ型フラッシュメモリ１００では、秘密情報NKeyiと秘密識別情報SecretIDとが秘匿領域１０１に記録される。前記秘密情報NKeyiを特定するために必要なインデックス情報i、鍵管理情報FKBを特定するために必要となるインデックス情報v、及びインデックス情報vで指定されたFKeyvによって暗号化されたSecretID（E-SecretID）がロム領域１０２に記録される。
【０１９３】
読み書き可能領域１０３には、暗号化FKey束である鍵管理情報FKBが書き込まれていない点で、上記第４の実施形態と相違する。
【０１９４】
次に、図１８を用い、上記のように鍵管理情報FKBが未記録状態のメモリカード１００に、サーバからFKBをダウンロードして記録する場合について説明する。
【０１９５】
図示するように、この場合には、ＮＡＮＤ型フラッシュメモリ１００に、必要に応じてデータキャッシュ１２が配置される。
【０１９６】
本実施形態に係るサーバ７０は、FKBデータベース（Set of FKBi ’s (i=1,…,x)）７１及びインデックス情報vから鍵管理情報FKBvを選択するための選択部７２を備える。
【０１９７】
また、サーバ７０とメモリシステム（ＮＡＮＤ型フラッシュメモリ１００、コントローラ２００及びホスト装置２０００からなるシステム）とは、インターネット６０を介して電気的に通信接続される。
【０１９８】
なお、ホスト装置２０００は、FKBの新規書き込みが必要かどうかを判定し、必要に応じてFKBをサーバ７０に要求する機能を備える。
【０１９９】
＜FKB書き込みフロー＞  
次に、図１９に沿って、暗号化FKeyID束（FKB）をサーバ７０からダウンロードしてＮＡＮＤ型フラッシュメモリ１０に書き込むフローについて説明する。
【０２００】
（Step Ｓ４１）  
図示するように、まず、ホスト装置２０００が、FKBダウンロードが必要と判定したことにより、FKB書き込みが開始（Start）され、ホスト装置２０００はサーバ７０に対してFKB要求を出す。
【０２０１】
（Step Ｓ４２）  
続いて、サーバ７０は、ＮＡＮＤ型フラッシュメモリ１００に対して、FKeyvを特定するために必要となるインデックス情報vを要求する。
【０２０２】
（Step Ｓ４３）  
続いて、ＮＡＮＤ型フラッシュメモリ１００は、ロム領域１０２からvを読み出し、vはサーバ７０に送出される。
【０２０３】
（Step Ｓ４４）  
続いて、サーバ７０は、受信したvに対応するFKBvをFKBデータベース７１の中から選択する。
【０２０４】
（Step Ｓ４５）  
続いて、サーバ７０は、選択したFKBvをＮＡＮＤ型フラッシュメモリ１００に送出する。
【０２０５】
（Step Ｓ４６）  
続いて、ＮＡＮＤ型フラッシュメモリ１００は、受信したFKBvを読み書き可能領域１０３に書き込み、記録する。
【０２０６】
以上の動作により、暗号化FKey束（FKB）ダウンロードフローを終了する（End）。
【０２０７】
その他の構成、動作等に関しては、上記第４の実施形態と実質的に同様である。
【０２０８】
＜作用効果＞  
変形例１に係る認証装置、被認証装置及び認証方法によれば、少なくとも第４の実施形態と同様の作用効果（１）乃至（３）を得ることができる。
【０２０９】
更に、変形例１によれば、後からFKBを書き込む場合においても、必要に応じて本実施形態を適用することが可能である。
【０２１０】
［第５の実施形態］  
次に、図２０Ａを参照して、第５の実施形態について説明する。この説明において、上記第４の実施形態と重複する部分の説明については、省略する。
【０２１１】
ここで、第４の実施形態では、ホスト装置２０００によるＮＡＮＤ型フラッシュメモリ１００の認証が成功した後、両者は秘密識別情報SecretIDを共有している。認証後の処理として、例えば、ホスト装置２０００がコンテンツを暗号化し、ＮＡＮＤ型フラッシュメモリ１００へ当該暗号化コンテンツを書き込むこと等が挙げられるが、この際に、共有した秘密識別情報SecretIDを用いることが考えられる。
【０２１２】
本実施形態は、そのような処理においても秘密識別情報SecretIDを保護することを目的とするものである。そのため、この説明においては、上記第４の実施形態と重複する部分の説明については省略する。
【０２１３】
＜メモリシステム＞  
第５の実施形態に係るメモリシステムは、図２０Ａのように示される。
【０２１４】
図２０Ａに示すように、本実施形態に係るメモリシステムは、一方向性変換器（Oneway）２７Ｂ、スイッチ部２９、及び対象となるコンテンツを取り扱う全てのホスト装置２０００が共通に保持している情報（ASSV）を更に備える点で、上記第４の実施形態と相違する。
【０２１５】
スイッチ部２９は、データ検証部（Verify）２８において一方向性変換識別情報Oneway-IDの両方の値が一致した場合（ＯＫ）の判定結果が制御信号として入力されると、信号経路をオンとさせ、秘密識別情報SecretIDを一方向変換部２７Ｂに出力する。
【０２１６】
一方向変換部（Oneway）２７Ｂは、スイッチ部２９から入力される秘密識別情報SecretIDを、対象となるコンテンツを取り扱う全てのホスト装置が共通に保持している情報（ASSV）を用いて一方向性関数により変換し、一方向性変換識別情報EMID（EMID=Oneway(SecretID, ASSV)）を生成する。
【０２１７】
このように第５の実施形態では、ホスト装置２０００で秘密識別情報SecretIDが検証された後に、ホスト装置２０００が、対象となる全てのホスト装置が共通に保持している情報（ASSV）を用いて秘密識別情報SecretIDを変換し、一方向性変換識別情報ＥＭＩＤを計算する。そのため、ホスト装置２０００は、秘密識別情報SecretIDの代わりに、一方向性変換識別情報ＥＭＩＤを用いて、コンテンツ暗号化等の処理を行うことができる。
【０２１８】
その他の構成、動作等は、上記第４の実施形態と実質的に同様であるため、詳細な説明については省略する。
【０２１９】
＜作用効果＞  
第５の実施形態に係る認証装置、被認証装置及び認証方法によれば、少なくとも第１の実施形態と同様の作用効果（１）乃至（３）を得ることができる。
【０２２０】
更に、第５の実施形態では、ホスト装置２０００は、一方向性変換器（Oneway）２７Ｂ、スイッチ部２９、及び対象となるコンテンツを取り扱う全てのホスト装置が共通に保持している情報（ASSV）を更に備える点で、上記４の実施形態と相違する。
【０２２１】
上記構成によれば、ホスト装置２０００で秘密認識情報SecretIDが検証された後に、ホスト装置２０００が、対象となる全てのホスト装置が共通に保持している情報（ASSV）を用いて秘密識別情報SecretIDを変換し、一方向性変換識別情報EMIDを計算する。そのため、ホスト装置２０００は、秘密識別情報SecretIDの代わりに、一方向性変換識別情報EMIDを用いて、コンテンツ暗号化等の処理を行うことができる。
【０２２２】
その結果、ここでは図示を省略するが、後工程におけるコンテンツ暗号化等おいて一方向性変換識別情報EMIDを用いることができ、当該後工程において秘密識別情報SecretIDが漏洩することを防止することが可能となり、秘密識別情報SecretIDの秘匿性を強化することができる点で、更に有利である。詳細については、後述する。
【０２２３】
［第５の実施形態の変形例１］
図２０Ｂ及び図２０Ｃを参照して、第５の実施形態の変形例１について説明する。この説明において、上記第５の実施形態と重複する部分の説明については、省略する。
【０２２４】
変形例１では、ホスト装置２０００によるＮＡＮＤ型フラッシュメモリ１００の認証動作においてホスト装置２０００が有するデータ、ホスト装置２０００が実施する処理、及びＮＡＮＤ型フラッシュメモリ１００が有するデータが、第５の実施の形態と異なっている。
【０２２５】
すなわち、第５の実施形態では、ホスト装置２０００が有するメモリ２３は、インデックス情報k、秘密情報IDKeyk、秘密情報セットHKeyi,j (i=1,…,m。なお、jは当該HKeyi,jにおいては固定の値である)、及び定数HCjを記録している。そして、ホスト装置２０は、少なくとも秘密情報IDKeyk及び秘密情報セットHKeyi,j (i=1,…,m)をホスト装置２０００の外部に対して秘匿している。これに対し変形例１では、秘密情報IDKeyk及びインデックス情報kに代えて、秘匿情報FKeyv（v=1,…,n）（Set of Fkeys）を有する。すなわち、第５の実施形態においてホスト装置２０００が秘密情報IDKeyk及びFKBvより導出していたFKeyv自身を、メモリ２３に格納している。したがって、ホスト装置２０００は秘匿情報FKeyvを導出するためのFKBvを読み出す手段及びProcess FKBを行う手段を有さなくともよい。それに代わり、ホスト装置２０００はvを読み出す手段及びvに応じてFKeyvを選択・利用する手段が必要となる。また、ＮＡＮＤ型フラッシュメモリ１００もFKBvを有する必要はない。
【０２２６】
第５の実施形態（図２０Ａ）を採用するか、それとも変形例１（図２０Ｂ）を採用するかは、FKeyvにおけるvの種類数、ホスト装置２０の処理能力、ホスト装置２０００の種類数、ホスト装置２０００のメモリサイズ、ホスト装置２０００の秘匿情報更新機能の有無、ＮＡＮＤ型フラッシュメモリ１００に記録可能なFKBvのサイズなどによって選択すればよい。
【０２２７】
例えば、変形例１を選定する場合の例としては以下が挙げられる。ホスト装置２０００の種類数が増えることはFKBvのサイズの増加につながり、ある態様のＮＡＮＤ型フラッシュメモリ１００においては当該FKBvを有することが困難な場合が考えられる。また、ホスト装置２０００が秘匿情報更新機能を有している場合、FKBvとは異なる経路にてFKeyvを配布・更新させることができ、FKBvにて不正ホスト装置２０００を無効化せずとも、FKeyvの配布を当該ホスト装置２０００に対して停止することで変えることも可能である。また、一般に秘密情報IDKeykとFKeyvの総量を比較した場合、想定ホスト種類数が増える場合は秘密情報IDKeykの総量が増大するため、ホスト装置２０００のメモリサイズを考慮すると変形例１が望ましい。
【０２２８】
他にも、ホスト装置２０００をそもそも無効化する必要のない場合、例えばＮＡＮＤ型フラッシュメモリ１００を搭載した記録メディアとホスト装置２０００が同一プラットフォーム管理者によって統一的に運用されている場合にはFKBvを用いる必要はなく、更にはFKeyvも更新する必要はないケースも考えられる。例えばゲームコンテンツ記録メディアやゲーム装置などが単一メーカにより統一的に運用されている場合が例である。尚、変形例１は第１〜第３の実施形態及び後述する他の実施形態に対しても適用可能である。
【０２２９】
ホスト装置２０００とＮＡＮＤ型フラッシュメモリ１００との間の情報授受がネットワーク経由でなされ、ホスト装置２０００がオンライン環境にある場合、この変形例１が好適である。例えば、ホスト装置２０００が認証サーバの場合である。ネットワーク経由で情報授受が行われる場合には、情報量が少ない方が望ましく、FKBvの授受が不要な変形例１が適している。更にホスト装置２０００が認証サーバであれば、定期的にFKeyvを更新することも可能であるため、その点でも問題はない。
【０２３０】
なお、本変形例１に限らず、本出願におけるホスト装置の態様は任意であり、ＤＶＤプレイヤーなどの態様に類似したコンテンツ再生装置、記録装置、及び認証装置であってもよいし、ゲーム装置であってもよい。また、ホスト装置は、ソフトウェア、ハードウェア、もしくはその両方で構成されていてもよい。また、ホスト装置はサーバであってもよい。更に、認証に要するデータ授受の態様も任意であり、ケーブル接続、ワイヤレスネットワーク接続、ローカルネットワーク接続、インターネット接続、イントラネット接続など様々な構成を採用することができる。
【０２３１】
＜認証フロー＞  
次に、図２０Ｃに沿って、第５の実施形態の変形例１に係るメモリシステムの認証フローについて説明する。
【０２３２】
（Step Ｓ１１’）
認証を開始（Start）すると、ホスト装置２０００は、ＮＡＮＤ型フラッシュメモリ１００からインデックス情報ｖ及び暗号化秘密識別情報SecretID（E-SecretID）を読み出す。
【０２３３】
（Step Ｓ１２’）
続いて、ホスト装置２０００は、読み出したインデックス情報ｖからデータ選択部（Select1）２２によりデータ選択処理を行い、ホスト装置２０００が秘匿している秘匿情報FKeyv（v=1,…,n）より、秘匿情報FKeyを得る。更に、ホスト装置２０００は、得られた秘匿情報FKeyを用いて、ＮＡＮＤ型フラッシュメモリ１００から読み出した暗号化秘密識別情報E-SecretIDを復号することにより、秘密識別情報SecretIDを得る。
【０２３４】
Step１３〜Step24の内容は、図１０のStep Ｓ１３〜Step ２４と同一である。
【０２３５】
Step24において、一方向性変換識別情報Oneway-IDの両方の値が一致した場合（OK）には、復号部２１で得られた秘密識別情報SecretIDが正規のIDであると判定して、以降の処理に秘密識別情報SecretIDを引き渡す。すなわち、秘密識別情報SecretIDとASSVを一方向性変換処理によってＥＭＩＤの計算処理を行う。一方、不一致の場合（NG）には、秘密識別情報SecretIDが不正なIDであると判定し、その旨を以降の処理に出力する。
【０２３６】
以上の動作により、第５の実施形態の変形例１に係る認証フローを終了する（End）。
【０２３７】
＜作用効果＞  
変形例１に係る認証装置、被認証装置及び認証方法によれば、少なくとも第４の実施形態と同様の作用効果（１）乃至（２）および第５の実施形態によって追加されたものと同様の作用効果を得ることができる。
更に、ホスト装置２０００及びＮＡＮＤ型フラッシュメモリ１００に対する実装負荷をより低減できる 。
【０２３８】
［第５の実施形態の変形例２］
次に、第５の実施形態の変形例２について図２０Ｄ及び図２０Ｅを参照して説明する。この説明において、上記第５の実施形態の変形例１と重複する部分の説明については、省略する。
【０２３９】
変形例２では、ホスト装置２０００が有するデータ、ホスト装置２０が実施する処理、及びＮＡＮＤ型フラッシュメモリ１００が有するデータ、ＮＡＮＤ型フラッシュメモリ１００が有するデータのアクセス属性に差異がある。変形例１では、ホスト装置２０００が有するメモリ２３は、秘匿情報FKeyv（v=1,…,n）、秘密情報セットHKeyi,j (i=1,…,m。なお、jは当該HKeyi,jにおいては固定の値である)、及び定数HCjを記録し、少なくとも秘匿情報FKeyv（v=1,…,n）及び秘密情報セットHKeyi,j (i=1,…,m)をホスト装置２０００の外部に対して秘匿している。これに対し、変形例２ではメモリ２３は秘匿情報FKeyv（v=1,…,n）を有していない。すなわち、ホスト装置２０００はvを読み出す手段及びvに応じてFKeyvを選択・利用する手段を持つ必要がない。
【０２４０】
それに代えて、ホスト装置２０００は秘密識別情報SecretIDを直接読み出す機能を有している。ＮＡＮＤ型フラッシュメモリ１００はvを有する必要はなく、代わりに秘密識別情報SecretIDをロム領域１０２などのホスト装置２０００が読み出し可能に有する必要がある。
【０２４１】
変形例２は秘密識別情報SecretIDに対して秘密属性を設ける必要がない場合、すなわちＮＡＮＤ型フラッシュメモリ１００が有する固有情報であるSecretIDの固有性のみを担保する場合に有用である。第５の実施形態及び変形例１と比較して容易にわかるように、ホスト装置２０００及びＮＡＮＤ型フラッシュメモリ１００が有すべき処理機能及びデータは大きく削減されている。これは、秘密識別情報SecretIDに求める特性が固有性のみを担保する場合には非常に有用であると言える。
【０２４２】
＜認証フロー＞  
次に、図２０Eに沿って、第５の実施形態の変形例２に係るメモリシステムの認証フローについて説明する。
【０２４３】
（Step Ｓ１１’‘）
認証を開始（Start）すると、ホスト装置２０００は、ＮＡＮＤ型フラッシュメモリ１００から暗号化秘密識別情報SecretID（E-SecretID）を読み出す。
【０２４４】
Step Ｓ１３〜Ｓ２４の内容は、図１０のStep Ｓ１３〜Ｓ２４の内容と同一である。
【０２４５】
Step24において、一方向性変換識別情報Oneway-IDの両方の値が一致した場合（OK）には、読み出した秘密識別情報SecretIDが正規のIDであると判定して、以降の処理に秘密識別情報SecretIDを引き渡す。すなわち、秘密識別情報SecretIDとASSVを一方向性変換処理によってＥＭＩＤの計算処理を行う。一方、不一致の場合（NG）には、秘密識別情報SecretIDが不正なIDであると判定し、その旨を以降の処理に出力する。
【０２４６】
以上の動作により、第５の実施形態の変形例２に係る認証フローを終了する（End）。
【０２４７】
＜作用効果＞  
変形例２に係る認証装置、被認証装置及び認証方法によれば、少なくとも第４の実施形態と同様の作用効果（１）乃至（２）および第５の実施形態によって追加されたものと同様の作用効果を得ることができる。更に、ホスト装置２０００及びＮＡＮＤ型フラッシュメモリ１００に対する実装負荷をより低減できる。
【０２４８】
［第６の実施形態］  
次に、図２１を参照して第６の実施形態について説明する。第６の実施形態は、ＮＡＮＤ型フラッシュメモリ１００が、ホスト装置２０００を認証する一例に関するものである。本実施形態では、ＮＡＮＤ型フラッシュメモリ１００に記録されている秘密識別情報SecretIDを第三者から秘匿した状態で読み出すと共に、ＮＡＮＤ型フラッシュメモリ１００から読み出されたデータであることを確実に判定する方法、また読み出されたデータに基づいてＮＡＮＤ型フラッシュメモリ１００がホスト装置２０００を検査する方法を示すものである。
【０２４９】
この説明において、上記実施形態と重複する部分の説明については、省略する。
【０２５０】
＜メモリシステム＞  
図２１を用い、第６の実施形態に係るメモリシステムについて説明する。図示するように、本実施形態では、ＮＡＮＤ型フラッシュメモリ１００が、機能コントロール部１８、乱数生成器２４ｎ、及びデータ検証部２８ｎを更に備える。また、ホスト装置２０００が、機能呼び出し部３０を更に備える点で、上記第４の実施形態と相違する。
【０２５１】
乱数生成部（RNG: Random Number Generator）２４ｎは、認証に用いる乱数RNｎを生成する。
【０２５２】
データ検証部（Verify）２８ｎは、ホスト装置２０００から受信した一方向性変換識別情報Oneway-IDとＮＡＮＤ型フラッシュメモリ１００装置内の一方向性変換器１５から得られた一方向性変換識別情報を比較して判定する。両方の値が一致した場合にはホスト装置２０００が正しいOneway-IDを得ている（ＯＫ）、不一致の場合には正しいOneway-IDを得ていない（ＮＧ）と判定する。
【０２５３】
機能コントロール部（Function Control Unit）１８は、ホスト装置２０００が正しいOneway-IDを得た場合（ＯＫ）にのみ、ＮＡＮＤ型フラッシュメモリ１００の所定機能をホスト装置２０００に対して利用可能とするように、所定機能のイネーブルをメモリ１００に対して行う。また、ホスト装置２０００から受領した定数HCjを機能コントロール部１８に入力させ、定数HCjに応じて所定機能の制御を実施してもよい。ここで、所定機能については別途後述する。
【０２５４】
機能呼び出し部３０は、ホスト装置２０００が生成した一方向性変換識別情報Oneway-IDの正当性をＮＡＮＤ型フラッシュメモリ１００が確認したことを示すアクセス許可情報（AccessPermission）をホスト装置２０００が受領すると、ＮＡＮＤ型フラッシュメモリ１００の所定機能を呼びだすための処理を行う。
【０２５５】
＜認証フロー＞  
次に、図２２に沿って、第６の実施形態に係るメモリシステムの認証フローについて説明する。
【０２５６】
（Step Ｓ１１）−（Step Ｓ１４）  
図示するように、まず認証開始（Start）から上記ステップＳ１１−Ｓ１４は、第４の実施形態と同様の処理を行う。
【０２５７】
（Step Ｓ５１）  
続いて、ホスト装置２０００は、インデック情報iを受け取ると、乱数発生要求（Request RNｎ）をＮＡＮＤ型フラッシュメモリ１００に対して送出する。
【０２５８】
（Step Ｓ５２）  
続いて、ＮＡＮＤ型フラッシュメモリ１００は、上記要求を受け、乱数生成部２４ｎにより乱数RNｎを生成する。生成された乱数RNｎは、ホスト装置２０００に送出される。
【０２５９】
（Step Ｓ２１）−（Step Ｓ２３）  
続いて、ホスト装置２０００は、第４の実施形態と同様のステップＳ２１−Ｓ２３を行う。
【０２６０】
（Step Ｓ５３）  
続いて、ホスト装置２０００は、ＮＡＮＤ型フラッシュメモリ１００に対して、認証要求（Request authentication）を行い、定数HCj、及び一方向性変換識別情報Oneway-IDを送出する。
【０２６１】
（Step Ｓ１７）−（Step Ｓ２０）  
上記同様のステップＳ１７−Ｓ１９に続いて、Ｓ２０の際に、ＮＡＮＤ型フラッシュメモリ１００は、生成したセッション鍵SKeyi,jを用いて、秘密識別情報SecretIDに上記一方向性変換器１５における一方向性変換処理を行い、一方向性変換識別情報Oneway-ID (=Oneway(SKeyi,j, SecretID))を生成する。
【０２６２】
（Step Ｓ５４）  
続いて、ＮＡＮＤ型フラッシュメモリ１００は、受信した一方向性変換識別情報Oneway-IDと、自身が生成した一方向性変換識別情報が一致することを確認する。一致した場合（ＯＫ）には前記SecretIDが正規のIDであると判定し、不一致の場合（ＮＧ）には前記SecretIDが不正なIDであると判定し、判定結果をホスト装置２０００に返送するとともに、所定機能の呼び出し受付を許可（Permission）する。
【０２６３】
（Step Ｓ５５）  
続いて、ＮＡＮＤ型フラッシュメモリ１００は、上記Ｓ５４の際の判定結果が一致した場合（ＯＫ）に、機能コントロール部１８において、ＮＡＮＤ型フラッシュメモリ１００の所定機能をホスト装置２０００に対して利用可能とするように、所定機能のイネーブル（有効化）を行う。
【０２６４】
（Step Ｓ５６）  
続いて、ホスト装置２０００は、機能呼び出し部３０において、ホスト装置２０００が生成した一方向性変換識別情報Oneway-IDの正当性をＮＡＮＤ型フラッシュメモリ１００が確認したことを示すアクセス許可情報（Access Permission）をホスト装置２０００が受領すると、ＮＡＮＤ型フラッシュメモリ１００の所定機能を呼びだすための命令を返信する。
【０２６５】
（Step Ｓ５７）  
続いて、ＮＡＮＤ型フラッシュメモリ１００は、機能の呼び出しを受け、機能コントロール部１８において、ホスト装置２０００から受領した機能呼び出し命令に従った処理を行い、処理結果のステータス（Status）を返送する。
【０２６６】
なお、この際、ホスト装置２０００から受領した定数HCjを機能コントロール部１８に入力させ、定数HCjに応じて所定機能の制御を実施してもよい。所定機能については別途後述する。
【０２６７】
＜作用効果＞  
第６の実施形態に係る認証装置、被認証装置及び認証方法によれば、少なくとも第４の実施形態と同様の作用効果（１）乃至（３）を得ることができる。更に、少なくとも下記の作用効果（４）及び（５）を得ることが可能である。
【０２６８】
（４）ＮＡＮＤ型フラッシュメモリ１００が、ホスト装置２０００を認証できる。
【０２６９】
第６の実施形態では、ＮＡＮＤ型フラッシュメモリ１００が、機能制御部１８、乱数生成器２４ｎ、及びデータ検証部２８ｎを更に備える。また、ホスト装置２０００が、機能呼び出し部３０を更に備える点で、上記第４の実施形態と相違する。
【０２７０】
そのため、上記構成によれば、ＮＡＮＤ型フラッシュメモリ１００に対し、ホスト装置２０００がアクセスする際に、当該ホスト装置２０００が信頼に足る場合にのみ、ＮＡＮＤ型フラッシュメモリ１００は所定の機能を提供する等の認証機能の制御が可能となる。
【０２７１】
このように、本実施形態によれば、必要に応じて、通常、被認証装置となる場合が多いＮＡＮＤ型フラッシュメモリ等の記録メディアが、逆にホスト装置２０００を認証できる点で有利である。
【０２７２】
（５）認証したホスト装置２０００の固有情報（定数HCj等）に応じて、所定の機能を提供するか否かを更に制御するような機構を設けることが可能となる点で有利である。所定の機能の詳細については、後述する。
【０２７３】
［第７の実施形態（相互認証）］  
次に、図２３を参照して、第７の実施形態について説明する。第７の実施形態は、ＮＡＮＤ型フラッシュメモリ１００と、ホスト装置２０００とがそれぞれ相互に認証し合う一例に関するものである。
【０２７４】
この説明において、上記実施形態と重複する部分の説明については、省略する。
【０２７５】
＜メモリシステム＞  
図２３を用い、第７の実施形態に係るメモリシステムについて説明する。図示するように、本実施形態では、上記第６の実施形態に係るメモリシステムと第４の実施形態に係るメモリシステムとを実質的に組み合わせた構成を備える。
【０２７６】
より具体的には、ＮＡＮＤ型フラッシュメモリ１００、ホスト装置２０００が、乱数発生部２４ｎ、２４ｈ、生成部１４−２、２６−２、一方向性変換器１５−２、２６−２、データ検証部２８ｎ、２８ｈを備える。更に、ホスト装置２０００が、スイッチ部２９Ｂを更に備える点で、上記第６の実施形態と相違する。
【０２７７】
上記各構成の動作については、上記実施形態と同様である。
【０２７８】
＜認証フロー＞  
次に、図２４に沿って、第７の実施形態に係るメモリシステムの認証フローについて説明する。本実施形態に係る認証フローは、原則的には、上記第４の実施形態に係る認証動作（ホスト装置がＮＡＮＤ型フラッシュメモリを認証する）を行った後、上記第６の実施形態に係る認証動作（ＮＡＮＤ型フラッシュメモリがホスト装置を認証する）を行うものである。
【０２７９】
（Step Ｓ１１）−（Step Ｓ２４）  
図示するように、まず認証開始（Start）すると、上記第４の実施形態と同様のステップＳ１１−Ｓ２４を行い、ホスト装置２０００がＮＡＮＤ型フラッシュメモリ１００の認証を行う。
【０２８０】
この際、乱数生成部２４ｈから生成される乱数RNｈを用いて、同様の認証を行う。
【０２８１】
（Step Ｓ５１）−（Step Ｓ７０）
続いて、上記ステップＳ２４の際の検証結果が一致した場合（OK）、ＮＡＮＤ型フラッシュメモリ１００の認証が完了したと判断する。
【０２８２】
続いて、上記第６の実施形態と同様のステップＳ５１−Ｓ７０を行い、ＮＡＮＤ型フラッシュメモリ１００がホスト装置２０００の認証を行う。
【０２８３】
この際、乱数生成部２４ｎから生成される乱数RNｎを用いて、同様の認証を行う。
【０２８４】
以上のステップにより、第７の実施形態に係る認証動作を終了する（End）。
【０２８５】
＜機能制御の構成例＞  
次に、図２５を用い、機能制御の構成例について説明する。
【０２８６】
ここで、機能制御とは、ＮＡＮＤ型フラッシュメモリ１００が認証装置であり、ホスト装置２０００が被認証装置である場合、すなわちＮＡＮＤ型フラッシュメモリ１００がホスト装置２０００を認証し、認証結果に基づいてホスト装置２０００に対して所定機能を提供する上記第６、第７の実施形態に係る所定機能の制御方法をいう。
【０２８７】
図示する機能制御の構成は、後述するようにＮＡＮＤ型フラッシュメモリ１００がそれぞれ備えるものである。機能制御は、認証回路１０７に備える機能コントロール部１８、パラメータレジスタ８９、及びシーケンス制御回路８８を備える。
【０２８８】
認証回路１０７内に含まれる上記機能コントロール部（Function Control Unit）１８は、認証結果、また必要に応じたホスト装置２０００の固有情報（定数HCj等）に基づき、ホスト装置２０００に対して所定機能を提供するための機能制御をおこなう。機能コントロール部（Function Control Unit）１８は、パラメータレジスタ８９に含まれる制御パラメータ８９０を、ホスト装置２０００の認証結果や固有情報に基づき、更新を行う。
【０２８９】
パラメータレジスタ８９が有する制御パラメータ８９０には、一つ以上のアクセス許可情報（＃０、＃１、、、＃３）が含まれる。例えば、アクセス許可情報＃０には、ブロックアドレス、ページアドレス、読み出し属性、書き込み属性、消去属性、固有情報等が含まれる。ここで、ブロックアドレスは、当該ブロックアドレスのメモリセルアレイ１１に対する制御を示す。ページアドレスは、当該ページアドレスのメモリセルアレイ１１に対する制御を示す。読み出し属性は、ブロックアドレス、若しくはブロックアドレス及びページアドレスに対する読み出し許可情報を示す。書き込み属性は、ブロックアドレス、若しくはブロックアドレス及びページアドレスに対する書き込み許可情報を示す。消去属性は、ブロックアドレス、若しくはブロックアドレス及びページアドレスに対する消去許可情報を示す。固有情報は、当該アクセス許可情報が同固有情報を有するホスト装置２０００に対する制御パラメータであることを示す。
【０２９０】
なお、アクセス許可情報（＃０、＃１、、、＃３）のそれぞれは、上記情報のすべてを含んでいる必要はなく、必要とされる制御レベルに応じた情報を含んでいればよい。例えば、ホスト装置２０００の固有情報（定数HCj等）に基づいた制御が必要なければ固有情報はなくてもよい。また、ページ単位での制御が不要であればページアドレスはなくてもよい。更に、任意のブロックアドレスでの制御が不要であり、例えばあらかじめ定められたブロックのみに対する制御や、ＮＡＮＤ型フラッシュメモリ１００全体としての制御であれば、ブロックアドレスもなくてもよい。同様に、読み出し属性、書き込み属性、消去属性についても、制御が必要とされる機能についてのみ含んでいればよい。
【０２９１】
シーケンス制御回路８８は、制御パラメータ８９０に従って、ホスト装置２０００から与えられるコマンド（CMD）に応じた動作シーケンスを制御する。例えば、データ読み出しコマンドの場合、シーケンス制御回路８８は、制御パラメータ８９０中のアクセス許可情報の読み出し属性に従って、与えられる読み出しコマンドに応じたデータ読み出す（Read）もしくは読み出しを拒否するなどの動作を制御する。読み出し属性において読出しが許可されていれば、メモリセルアレイ１１からデータを読み出すことが可能となる。その他、データ書き込み動作、データ消去動作等についても同様である。
【０２９２】
＜作用効果＞  
第７の実施形態に係る認証装置、被認証装置及び認証方法によれば、少なくとも上記と同様の作用効果（１）乃至（５）を得ることができる。
【０２９３】
本実施形態によれば、必要に応じて、ＮＡＮＤ型フラッシュメモリ１００とホスト装置２０００とがそれぞれ相互に認証することが可能である。
【０２９４】
更に、本実施形態に係るＮＡＮＤ型フラッシュメモリ１００は、図２５に示した構成による機能制御を実現する。シーケンス制御回路８８は、制御パラメータ８９０に従って、与えられるコマンドに応じた動作シーケンスを制御することができる。そのため、ＮＡＮＤ型フラッシュメモリ１００が認証したホスト装置２０００において、そのホスト装置２０００の固有情報（定数HCj等）等に基づいて、制御パラメータ８９０を更新した各種の機能動作を行うことをホスト装置２０００に許可すること（Process function）ができる点で有利である。
【０２９５】
さらに、本例に係るＮＡＮＤ型フラッシュメモリ１００は、図２５に示した構成の機能制御を第６の実施形態及び第７の実施形態とともに備えることが可能である。
【０２９６】
［第８の実施形態（ＮＡＮＤ型フラッシュメモリの構成例）］  
次に、第８の実施形態について説明する。第８の実施形態は、上記第１至第４の実施形態に係る認証機能を適用したＮＡＮＤ型フラッシュメモリ１００の構成例に関するものである。
【０２９７】
この説明において、上記実施形態と重複する部分の説明については、省略する。
【０２９８】
＜ＮＡＮＤ型フラッシュメモリの全体構成例＞  
図２６を用い、第８の実施形態に係るＮＡＮＤ型フラッシュメモリ１００の全体構成例について説明する。  
図示するように、ＮＡＮＤ型フラッシュメモリ１００は、メモリセルアレイ１１及びその周辺回路を備える。
【０２９９】
メモリセルアレイ１１は、複数のブロックBLOCK1- BLOCKnを含む。各ブロックの構成は、図２７において後述するが、複数のメモリセルトランジスタＭＣ、ワード線ＷＬ、ビット線ＢＬ等を含むものである。各ブロック中のメモリセルトランジスタＭＣ中のデータは、一括して消去される。メモリセルトランジスタ単位及びページ単位でのデータ消去はできない。すなわち、個々のブロックが最小の消去単位となる。
【０３００】
周辺回路は、センスアンプ７７、入出力制御回路８４、ロジックコントロール回路８５等を備える。
【０３０１】
センスアンプ７７は、ビット線ＢＬを介してメモリ１００内のメモリセル（メモリセルトランジスタＭＣ）のデータを読み出し、ビット線ＢＬを介してメモリセルアレイ２内のメモリセルの状態を検出する。
【０３０２】
データキャッシュ１２は、センスアンプ７７から読み出されたデータまたはセンスアンプ７７に供給されるデータを一時的に保持する。
【０３０３】
カラムデコーダ７５は、ＮＡＮＤ型フラッシュメモリ１００の外部からＩＯ端子を介して供給されたアドレス信号に基づいて、特定のビット線ＢＬ、センスアンプ等を選択する。
【０３０４】
カラムアドレスバッファ７４は、アドレス信号を一時的に保持し、カラムデコーダ７５に供給する。
【０３０５】
ロウデコーダ７８は、データ読み出し、書き込み、あるいは消去に必要な種々の電圧を電圧生成回路８６から受け取り、そのような電圧をアドレス信号に基づいて特定のワード線ＷＬに印加する。
【０３０６】
ロウアドレスバッファデコーダ７９は、アドレス信号を一時的に保持し、ロウデコーダ７８に供給する。
【０３０７】
電圧生成回路８６は、基準電源電圧ＶＳＳ、ＶＣＣ、電圧ＶＳＳＱ、ＶＣＣＱ等を受け取り、これらからデータ書き込み、読み出し、消去等に必要な電圧を生成する。
【０３０８】
入出力制御回路８４は、ＩＯ端子を介して、ＮＡＮＤ型フラッシュメモリ１００の動作を制御する種々のコマンド、アドレス信号、書き込みデータを受け取り、また読み出しデータを出力する。入出力制御回路８４から出力されたアドレス信号は、アドレスレジスタ８２によってラッチされる。ラッチされたアドレス信号は、カラムアドレスバッファ７４及びロウアドレスバッファ７９に供給される。入出力制御回路８４から出力されたコマンドは、コマンドレジスタ８３によってラッチされる。ステータスレジスタ８１は、入出力制御回路１２のための種々のステータスについての値を保持する。
【０３０９】
ＮＡＮＤ型フラッシュメモリ１００は、外部インターフェイス（ＮＡＮＤ  Ｉ／Ｆ）として、コマンド、アドレス、データ入出力用のＩＯ端子、動作を制御するための種々の制御信号を外部から受け取る。制御信号には、例えばチップイネーブル／ＣＥ、コマンドラッチイネーブルＣＬＥ、アドレスラッチイネーブルＡＬＥ、リードイネーブルＲＥ及び／ＲＥ、ライトイネーブルＷＥ及び／ＷＥ、ライトプロテクトＷＰ、クロックＤＱＳ、／ＤＱＳが含まれる。
【０３１０】
これらの制御信号は、対応する端子において受け取られ、ロジック制御回路２１に供給される。ロジックコントロール回路８５は、制御信号に基づいて、入出力制御回路８４を制御して、端子ＩＯ上の信号をコマンド、アドレス、またはデータとして入出力制御回路８４を介してアドレスレジスタ８２、コマンドレジスタ８３、ページバッファ１２等に到達することを許可したり禁止したりする。また、ロジックコントロール回路８５は、コマンドレジスタ８３から、ラッチされたコマンドを受け取る。
【０３１１】
制御信号のうち、ＷＥ端子はデータ入力用クロックを供給し、ＲＥ端子はデータ出力用クロックを供給し、ＤＱＳ端子はデータ入出力用クロックを伝送し、ＣＬＥ端子はデータ入力をコマンドとして入力するイネーブル用であり、ＡＬＥ端子はデータ入力をアドレスとして入力するイネーブル用であり、ＣＥ端子はデータ入出力等全般の機能を有効化する
ためである。
【０３１２】
また、Ｒ／Ｂ端子はＮＡＮＤ型フラッシュメモリ１００の内部動作状態を示し、ＷＰ端子は誤書き込み防止用の書き込み防止信号を伝送し、Ｖｃｃ／Ｖｓｓ／Ｖｃｃｑ／Ｖｓｓｑ端子等は電力供給用である。また、本実施形態では、高速インターフェースにてデータ伝送を実現する際に利用される端子（Toggle）として、ＲＥ端子、ＷＥ端子、ＤＱＳ端子には、各々相補信号を伝送する／ＲＥ端子、／ＷＥ端子、／ＤＱＳ端子が存在する。
【０３１３】
ロジックコントロール回路８５は、シーケンス制御回路８８、パラメータレジスタ８９、認証回路１０７を備える。ロジック制御回路８５は、また、レディ／ビジー信号（Ｒ／Ｂ）の出力を司る。具体的には、ロジック制御回路８５は、ＮＡＮＤ型フラッシュメモリ１００がビジー状態の間、ビジー信号を出力する。
【０３１４】
シーケンス制御回路８８は、コマンドレジスタ８３からコマンドを受け取る。シーケンス制御回路８８は、受け取ったコマンドに基づいて、コマンドにより指示される処理（データ読み出し、書き込み、消去等）を実行するように、センスアンプ７７、電圧生成回路８６等を制御する。
【０３１５】
パラメータレジスタ８９は、ロジック制御回路８５の動作を規定する種々の上記制御パラメータ８９０等を保持する。制御パラメータ８９０は、シーケンス制御回路８８から参照、または更新され、ロジックコントロール回路８５や入出力制御回路８８におけるシーケンスの制御に利用される。
【０３１６】
認証回路１０７は、上記の認証に関する処理を行う。例えば、認証回路１０７は、上記のように、パラメータレジスタに含まれる制御パラメータ８９０の書き換え等の更新も行う。また、認証回路１０７は、認証を要求するコマンドを受け取り、メモリセルアレイ１１中の特定のデータを用いて認証のための特定の演算を行い、結果をメモリ１０の外部へ出力する。この一連の動作の実行の過程で、認証回路１０７は、必要なデータの読み出し、書き込み等を制御パラメータ８９０の更新を通じて、シーケンス制御回路８８に許可する。
【０３１７】
レディ／ビジー回路（RY/BY）８７は、ロジックコントロール回路８５の制御を受けて、スイッチトランジスタを介して、Ｒ／Ｂ信号をＮＡＮＤ型フラッシュメモリ１００の外部に通知する。
【０３１８】
＜ブロック（ＢＬＯＣＫ）の構成例＞  
次に、図２７を用い、メモリセルアレイ１１を構成するブロック（ＢＬＯＣＫ）の構成例について説明する。ここでは、図２７中のＢＬＯＣＫ１を一例に挙げて説明する。ここで、上記のように、ブロックＢＬＯＣＫ１中のメモリセルは、一括してデータ消去されるため、ブロックはデータ消去単位である。
【０３１９】
ブロックＢＬＯＣＫ１は、ワード線方向（ＷＬ方向）に配置される複数のメモリセルユニットＭＵから構成される。メモリセルユニットＭＵは、ＷＬ方向と交差するビット線方向（ＢＬ方向）に配置され、電流経路が直列接続される８個のメモリセルＭＣ０〜ＭＣ７からなるＮＡＮＤス通りング（メモリセルストリング）と、ＮＡＮＤストリングの電流経路の一端に接続されるソース側の選択トランジスタＳ１と、ＮＡＮＤストリングの電流経路の他端に接続されるドレイン側の選択トランジスタＳ２とから構成される。
【０３２０】
なお、本実施形態では、メモリセルユニットＭＵは、８個のメモリセルＭＣ０〜ＭＣ７から構成されるが、２つ以上のメモリセル、例えば、５６個、３２個等から構成されていればよく、８個に限定されるというものではない。
【０３２１】
ソース側の選択トランジスタＳ１の電流経路の他端はソース線ＳＬに接続される。ドレイン側の選択トランジスタＳ２の電流経路の他端は、各メモリセルユニットＭＵに対応してメモリセルユニットＭＵの上方に設けられ、ＢＬ方向に延出するビット線ＢＬに接続される。
【０３２２】
ワード線ＷＬ０〜ＷＬ７は、ＷＬ方向に延び、ＷＬ方向の複数のメモリセルの制御ゲート電極ＣＧに共通に接続される。選択ゲート線ＳＧＳは、ＷＬ方向に延び、ＷＬ方向の複数の選択トランジスタＳ１に共通に接続される。選択ゲート線ＳＧＤも、ＷＬ方向に延び、ＷＬ方向の複数の選択トランジスタＳ２に共通に接続される。
【０３２３】
また、ワード線ＷＬ０〜ＷＬ７毎にページ（ＰＡＧＥ）が存在する。例えば、図中の破線で囲って示すように、ワード線ＷＬ７には、ページ７（ＰＡＧＥ７）が存在する。このページ（ＰＡＧＥ）毎に、データ読み出し動作、データ書き込み動作が行われるため、ページ（ＰＡＧＥ）はデータ読み出し単位であり、データ書き込み単位である。
【０３２４】
＜セルアレイの構成例＞  
次に、図２８を用い、メモリセルアレイ１１の構造を示す。（ａ）に示すように、メモリセルアレイ１１内部は、秘匿領域１０１、ロムブロック１０２、ノーマルブロック１０３、ロムヒューズブロック１０４４、保護ブロック１１０５等の上記複数のブロック（BLOCK）から構成される。各ブロックは、上記のように、複数のページから構成される。通常、データの読み出しや書き込みはページ単位で行い、消去はブロック単位で行われる。
【０３２５】
ノーマルブロック１０３は、上記のように、データの書き込み、読み出し等いずれも許可され、通常のデータ保持用に用いられる。ノーマルブロックは、上述した読み書き可能領域１０３に対応する。ブロック数は特に限定されない。
【０３２６】
秘匿領域１０１及びロムブロック１０２は、上記のような認証動作に適用される。秘匿領域１０１は、上述した秘匿領域１０１に対応する。ロムブロック１０２は、上述したロム領域１０２に対応する。何れもブロック数は特に限定されない。
【０３２７】
（ｂ）に示すように、本実施形態では、ロムブロック１０２のメモリ空間には、読み出し専用データが更に記録される。
【０３２８】
（ｃ）に示すように、本実施形態では、秘匿領域１０１のメモリ空間には、秘匿データが更に記録される。
【０３２９】
（ｄ）に示すように、本実施形態では、保護ブロック１０５のメモリ空間には、後述する認証機能により利用される保護データが更に記録される。
【０３３０】
ロムヒューズブロック１０４は、例えば、ＮＡＮＤ型フラッシュメモリ１００の動作制御用のパラメータ保持等に用いられる。
【０３３１】
＜ロムブロック内の読み出し専用データ＞  
次に、図２９を用い、ロムブロック１０２内の読み出し専用データについて説明する。
（ａ）に示すように、ロムブロック１０２のメモリ空間のあるページには、読み出し専用データが記録されている。ここで、読み出し専用データＡからＺの系列とした場合、本図ではデータのエラー訂正を目的にした（ｂ−１）−（ｂ−３）の３つの例を示す。
【０３３２】
（ｂ−１）に示すように、第１のデータパターン１は、同一のデータ（Ａ、Ａ、、、Ｂ、Ｂ、、、）を繰り返し記録する例である。この場合、繰り返し読み出し専用データをホスト装置２０００が読み出し、ホスト装置２０００等が有するエラー訂正部において、多数決判定を行うことで、エラー訂正が可能である。または、繰り返し読み出し専用データをコントローラ２００が読み出し、コントローラ２００等が有するエラー訂正部において、多数決判定を行うことで、エラー訂正が可能である。または、繰り返し読み出し専用データをＮＡＮＤ型フラッシュメモリ１００が有するエラー訂正部において、多数決判定を行うことで、エラー訂正が可能である。例えば、繰り返し回数は１６回程度以上あることが望ましい。
【０３３３】
（ｂ−２）に示すように、第２のデータパターン２は、各データ（Ａ、Ｂ、、、）とその反転データ（Ａの反転、Ｂの反転、、、）からなる相補データペアを繰り返し記録する例である。この場合、繰り返し読み出し専用データをホスト装置２０００が読み出し、ホスト装置２０００等が有するエラー訂正部において相補データペアに配慮した多数決判定を行うことで、エラー訂正が可能である。または、繰り返し読み出し専用データをコントローラ２００が読み出し、コントローラ２００等が有するエラー訂正部において相補データペアに配慮した多数決判定を行うことで、エラー訂正が可能である。または、繰り返し読み出し専用データをＮＡＮＤ型フラッシュメモリ１００が有するエラー訂正部において相補データペアに配慮した多数決判定を行うことで、エラー訂正が可能である。
【０３３４】
ここで、相補データペアとして繰り返し記録する理由は、ＮＡＮＤ型フラッシュメモリ１００のエラーモードによる。ＮＡＮＤ型フラッシュメモリ１００はメモリセルＭＣに対して所定電圧を印加することによってフローティングゲートＦＧに電子を注入し、データの書き込みを行う。データの読み出しは当該メモリセルＭＣのフローティングゲートＦＧに電子が存在しているか否かによって変化する閾値電圧を用いて行う。データの消去は書き込みと逆方向に電圧を印加し、フローティングゲートＦＧから基板へ電子を引き抜くことで実行する。データ読み出し、書き込み、消去の動作に伴う電圧印加量や電圧印加ゲートは各々異なるが、いずれにおいてもメモリセルＭＣにおいて電圧を印加する。この原理に起因して、ＮＡＮＤ型フラッシュメモリ１００の代表的なエラーモードとして、リード・プログラムディスターブ、データリテンションがある。リード・プログラムディスターブは、自身若しくは隣接のページを繰り返し読み出す、若しくは隣接ページに書き込むことによって、フローティングゲートＦＧにおける電子量が変化することデータが変化するエラーモードである。このため弱書き込みに近い状態となり、一般に閾値電圧が増加する。データリテンションとは、一度書き込んだページを長時間放置することによって、フローティングゲートに保持されていた電子が抜け落ちることにより、データが変化するエラーモードである。このため、弱消去に近い状態となり、一般に閾値電圧が低下する。すなわち、これら不良モードにおいては全般的に増加するか、低下するかの傾向があることから、データは同一方向にエラーする可能性が高い。
【０３３５】
そこで、（ｂ−２）に示すように、相補データとして記録することにより、仮にデータが１（未記録状態）であった場合その反転データは０（記録状態）であることから、リード・プログラムディスターブにおいては両データとも０方向に移行し、データリテンションにおいては逆に１方向に移行する。このため、少なくともエラーが発生しているか否かは相補データである方が判別しやすい。この場合、例えば、相補データペアとして少なくとも８回程度の繰り返しがあることが望ましい。
【０３３６】
（ｂ−３）に示すように、第３のデータパターン３は、読み出し専用データ（Ａ、Ｂ、、、Ｚ）に更に誤り訂正符号を用いる例である。ここで、誤り訂正符号としては、ＮＡＮＤ型フラッシュメモリ１００のエラー発生形式がビット単位でのランダムエラーであることから、ランダムビットエラーが訂正可能な例えば、ＢＣＨ符号やＬＤＰＣ符号等が望ましい。
【０３３７】
ここで、第１乃至第３のデータパターンのいずれの例においても、各データはランダマイズされていてもよい。ランダマイズとは、データの偏りをなくすために、発生させたランダム系列と記録するデータとの排他的論理和をとる等の方法で、記録するデータをランダム化することである。ランダム系列の発生方法としては、Ｍ系列等を用いてもよい。
【０３３８】
加えて、第１乃至第３のデータパターンのいずれの例においても、各データは２値状態として記録されていてもよい。２値状態とは、一つのメモリセルにおける閾値電圧を所定の１レベルを基準にして高いレベルに属するか低いレベルに属するかを定めてデータを記録する方法であり、１メモリセル当たり１ビットの情報を保持することができる。このような記録方法は一般にＳＬＣ（Single Level Cell）記録と呼ぶ。一方で、一つのメモリセルにおける閾値電圧を所定の複数レベルを基準にして、どのレベルに属するかを定めてデータを記録する方法であり、１メモリセル当たり複数ビットの情報を保持することができる。前記属するレベルを例えば、４つ設けてデータを記録する場合、１メモリセル当たり２ビットの情報を保持することができる。このような記録方法は一般にＭＬＣ（Multi Level Cell）記録と呼ばれる。ＭＬＣ記録は1セルあたりの記録容量が多いため、より高い記録密度を実現できるが、一方で閾値電圧のずれに対して記録データ変化が比較的おこりやすい。このことから、前記ロムブロック１０２に記憶される読み出し専用データは、通常データよりも１メモリセルあたりのビット数を少なく記録する方が望ましい。例えば、１メモリセルあたりのビット数が２ビットで構成される４Ｌｅｖｅｌ記録のＭＬＣである場合、ＲＯＭデータはＳＬＣ記録の方が望ましい。また、１メモリセルあたりのビット数が４ビットで構成される８ Ｌｅｖｅｌ記録のＭＬＣである場合、ＲＯＭデータは１セルあたりのビット数が２ビットで構成される４ Ｌｅｖｅｌ記録のＭＬＣ若しくはＳＬＣ記録の方が望ましい。
【０３３９】
＜ＥＣＣの構成例＞  
次に、図３０〜図３３を参照して、誤り訂正符号化（ＥＣＣ：Error Correcting Code）の構成例について説明する。
【０３４０】
ここで、上記図２９で示した、第１乃至第３のデータ構造は、厳密には異なるものの、元となるデータに対して冗長語を付与しているという意味合いでは、広義には訂正符号化ＥＣＣととれる。そのため、ここでは、いずれのデータ構造においてもデータと、それに付与された訂正符号と称する。ホスト装置２０００、コントローラ２００、若しくはＮＡＮＤ型フラッシュメモリ１００の少なくともいずれかが対応する訂正機能を有する必要がある。
【０３４１】
図３０で示す第１の例は、ホスト装置２０００が訂正機能（ECC decode）９０を有する例である。この場合、コントローラ２００及びＮＡＮＤ型フラッシュメモリ１００は、訂正処理を行わず、符号付きのデータ（Data）をホスト装置２０００に渡し、ホスト装置２０００は訂正機能（ECC decode）９０により訂正処理を行い、所定のデータ（Data）を生成する。
【０３４２】
図３１で示す第２の例は、コントローラ２００が、訂正機能（ECC decode）９０を有する例である。この場合、ＮＡＮＤ型フラッシュメモリ１００は、訂正処理を行わず、コントローラ２００は訂正処理を行い、訂正済みのデータ（Data）をホスト装置２０００に渡す。
【０３４３】
図３２で示す第３の例は、ＮＡＮＤ型フラッシュメモリ１００が、訂正機能（ECC decode）９０を有する例である。この場合、ＮＡＮＤ型フラッシュメモリ１００は訂正処理を行い、訂正済みのデータ（Data）をコントローラ２００を経由してホスト装置２０００に渡す。
【０３４４】
図３３で示す第４の例は、コントローラ２００及びホスト装置２０００の両方が訂正機能９０−１、９０−２を有する例である。この場合は、まず付与されている訂正符号が２重構造をとっており、内符号（Inner code）及び外符号（Outer code）のいずれかを各々コントローラ２００とホスト装置２０００とが訂正処理を行う。
【０３４５】
なお、上記の場合に限らず、ＮＡＮＤ型フラッシュメモリ１００、コントローラ２００、ホスト装置２０００は、各々自身の訂正機能に応じて協調しつつ訂正を行うことが可能である。
【０３４６】
＜秘匿領域１０１内の秘匿データ＞  
次に、図３４を用い、秘匿領域１０１内の秘匿データの保持状態の例を説明する。
【０３４７】
（ａ）に示すように、秘匿領域１０１内のメモリ空間には、ページに秘匿データが記録されている。ここで、秘匿データをＡからＺの系列とした場合、本図では３つの例を示す。
【０３４８】
（ｂ−１）に示すデータパターン１では、複数の秘匿データ（Ａ、Ａ、、、Ｂ、Ｂ、、、）及びアクセス制御パターンＢ１を記憶する。
【０３４９】
（ｂ−２）に示すデータパターン２では、複数の秘匿データ（Ａ、Ａ、、、Ｂ、Ｂ、、、）とその反転データ、及びアクセス制御パターンＢ２を記憶する。
【０３５０】
（ｂ−３）に示すデータパターン３では、複数の秘匿データ（Ａ、Ｂ、、、、Ｚ）、エラー訂正符号、及びアクセス制御パターンＢ３を記憶する。
【０３５１】
各例における目的の一つは、同様にエラー訂正である。他の目的は秘匿領域１０１若しくは当該ブロック１０１内のページに対する読み出し、書き込み、消去に関わる制御を行うことである。当該領域は秘匿データを記録していること、また前述の認証回路１０７においてＮＡＮＤ型フラッシュメモリ１００の内部でのみ利用する情報を保持することから、外部からの読み出し、書き込み、消去に関わる動作は全て禁止しておく必要がある。一方で、ＮＡＮＤ型フラッシュメモリ１００の製造初期段階においては、同領域は未記録であることから、製造のいずれかの段階において秘匿データを記録しなければいけない。更に、ＮＡＮＤ型フラッシュメモリ１００のメモリセルの特性として、メモリセルの初期状態ではデータ保持性能が不十分である場合があるため、当該メモリセルがデータを仕様通りに保持できるか否かを検査するために、読み出し、書き込み、消去の動作をさせる必要がある。
【０３５２】
そこで、同領域１０１に関し、製造段階においては読み出し、書き込み、消去が可能であるが、製造完了後の出荷時においては、同領域は読み出し、書き込み、消去の全てを禁止しておく必要がある。この状態変更を行うための情報として、当該領域１０１にアクセス制御パターンＢ１、Ｂ２、Ｂ３を記録する。
【０３５３】
アクセス制御パターンＢ１、Ｂ２、Ｂ３は、ページ毎に記録されていてもよいし、ブロック内の先頭ページのみに記録されていてもよい。また、ページ内でのアクセス制御パターンＢ１、Ｂ２、Ｂ３の記録位置は、一般データ領域であってもよいし、冗長領域であってもよい。ここで、冗長領域とはコントローラ等が訂正符号の付与に利用する領域や、若しくはＮＡＮＤ型フラッシュメモリ１００が内部的なページ毎のステータス等を示すための情報を記録するのに利用する領域等である。
【０３５４】
秘匿データやアクセス制御パターンＢ１、Ｂ２、Ｂ３においても、ＲＯＭデータと同様に２値（ＳＬＣ）モードで記録される方が望ましい。
【０３５５】
次に、図３５を用い、アクセス制御パターンの構成例を示す。  
まず、アクセス制御パターンは、エラーによる損失を防ぐため、少なくとも複数のビットから構成されている必要がある。
【０３５６】
一つ目の例のアクセス制御パターンＢ１は、複数の制御フラグビットＡからＺを設け、これら制御フラグビットを所定パターンとしておく。ＮＡＮＤ型フラッシュメモリ１００は、当該領域に対する読み出し、書き込み、消去等のアクセス要求をホスト装置２０００より受けた場合、当該領域１０１のアクセス制御パターンＢ１と所定パターンとの照合を行い、両者の一致率が所定率以上となった場合にアクセスを禁止する、という構成をとる。
【０３５７】
二つ目の例のアクセス制御パターンＢ２は、制御フラグを繰り返し記録しておく方法である。これは、所定パターンがエラーする確率を低下させる上で有効である。
【０３５８】
三つ目の例のアクセス制御パターンＢ３は、各制御フラグと各制御フラグの反転データを記録しておく方法である。前述の通り、本方法もエラーする確率を低下させる上で有効である。
【０３５９】
＜アクセス制御パターンの利用例＞  
次に、アクセス制御パターンの検知方法及び検知結果の利用方法を説明する。
【０３６０】
図３６に示すように、メモリ１００中の秘匿領域１０１から読み出される上記アクセスパターンは、ロジックコントロール回路８５内のパターン検知回路９１に入力される。
【０３６１】
パターン検知回路９１は、入力されるアクセス制御パターンに対し、パターン認識処理を行い、一致率が所定確率以上であるか否かを判定し、アクセス制御をおこなう。一致率は、ＮＡＮＤ型フラッシュメモリ１００のメモリセルアレイにおけるエラー確率と、アクセス制御パターンのデータ量から計算され、例えば、誤検出確率が少なくとも１０−３以下となるように設定することが望ましい。パターン検知回路９１は、検知結果に基づき、データ読み出し、データ書き込み、データ消去を制御するためのイネーブル信号をシーケンス制御回路８８に入力する。
【０３６２】
シーケンス制御回路８８は、上記検知結果のイネーブル信号に従い、データ読み出し、データ書き込み、データ消去を制御する。
【０３６３】
＜テストフロー＞  
次に、図３７に沿って、上記アクセス制御パターン（例えば、Ｂ１−Ｂ３）を用いたＮＡＮＤ型フラッシュメモリ１００の製造工程の検査フローを説明する。
【０３６４】
（Step Ｓ７１、Ｓ７２）  
製造工程において、まず、アクセス制御パターンに該当しないデータを、秘匿領域１０１に記録し、テストを行う。この段階では、秘匿領域１０１のアクセスは許可されている。
【０３６５】
ただし、データ読み出し、データ書き込み、データ消去のすべてのアクセスを許可するのか、データ書き込み及びデータ消去を許可するか等、によりセキュリティーレベルが異なる。高いセキュリティーレベルが必要な場合、仮にアクセス制御パターンにより全てのアクセスを禁止したとしても、アクセス制御パターンのデータが劣化することにより、誤ったアクセス許可をする可能性がある。この場合、秘匿データが読みだされる恐れがあるため、このステップＳ７１の際のテスト工程においても、データ読み出しを禁止する、すなわちＮＡＮＤ型フラッシュメモリ１００のハードワイヤードレベルにおいて読み出しを当該領域にはそもそも許可しない、という選択も可能である。
【０３６６】
または、アクセス制御パターンのデータ劣化耐性が十分である場合、例えば、アクセス制御パターンが多数回繰り返し記録されている、強固な誤り訂正符号が付与されている場合等においては、テストの利便性を確保するために、データ読み出しを含めた制御をアクセス制御パターンによっておこなってもよい。この場合、先に示した誤検出確率は更に低
く、例えば、１０−５以下であることが望ましい。
【０３６７】
（Step Ｓ７３）  
続いて、Ｓ７２の際の所定のテストが完了した後、秘匿領域１０１に秘匿データ及びアクセス制御パターン（Ｂ１−Ｂ３等）が各々書き込まれる。
【０３６８】
（Step Ｓ７４）  
続いて、上記のデータが書き込まれた状態で、ＮＡＮＤ型フラッシュメモリ１００が出荷される。
【０３６９】
＜データ消去フロー＞  
次に、図３８に沿って、ＮＡＮＤ型フラッシュメモリ１００の内部のデータ消去動作を説明する。
【０３７０】
（Step Ｓ７６）
まず、ホスト装置２０００より消去動作の動作命令が発効されると、ＮＡＮＤ型フラッシュメモリ１００は、当該命令における選択ブロックアドレスが特定ブロックであるか否かを判定する。
【０３７１】
（Step Ｓ７７）  
続いて、選択ブロックアドレスが特定ブロックでない場合（No）、通常通りの消去シーケンスを行う。
【０３７２】
（Step Ｓ７８）  
一方、選択ブロックアドレスが特定ブロックの場合（Yes）、秘匿領域１０１からアクセス制御情報（Ｂ１−Ｂ３等）の読み出しを行う。
【０３７３】
（Step Ｓ７９）  
続いて、アクセス制御情報（Ｂ１−Ｂ３等）のパターン検知を行い、パターン一致率が所定値以上であるか否かを判定する。
【０３７４】
（Step Ｓ８０）  
続いて、パターン一致率が所定値以下であった場合（Yes）、通常通りの消去シーケンスを行う。
【０３７５】
（Step Ｓ８１）  
続いて、パターン一致率が所定値以上であった場合（No）、消去シーケンスを抜け、データ消去フローを終了する（End）。
【０３７６】
なお、本実施形態では、データ消去を一例に挙げたが、同様にデータ読み出し、データ書き込みにおいても適用可能である。
【０３７７】
＜作用効果＞  
第８の実施形態に係る認証装置、被認証装置及び認証方法によれば、少なくとも上記と同様の作用効果（１）乃至（５）を得ることができる。
【０３７８】
更に、必要に応じて、本実施形態の構成及び方法を適用することで、信頼性を向上できる点で有効である。
【０３７９】
［第９の実施形態（データキャッシュの認証処理への利用の一例）］  
第９の実施形態は、データキャッシュの認証処理への利用の一例に関するものである。この説明において、上記実施形態と重複する部分の説明については、省略する。
【０３８０】
＜データキャッシュ、センスアンプ等の構成例＞  
図３９を用い、第９の実施形態に係るデータキャッシュ、センスアンプ等の構成例について説明する。
図示するように、上記実施形態に係る認証処理のデータキャッシュ１２が１コンポーネントとして示される。ＮＡＮＤ型フラッシュメモリ１００は、メモリセルアレイ１１から読み出したページデータを一時的に記憶する、また外部から記録用データとして受領した書き込みページデータを一時的に記憶する、等を目的とした揮発性データキャッシュ１２を有する。本実施形態のデータキャッシュ１２は、ページバッファ、データバッファ等とも呼ばれ、通常ページサイズ以上の領域を有する。更に、ページデータの読出しや書込み処理の高速化、ランダムページアクセスをするために、データキャッシュはページサイズの複数倍の領域を持つことが多い。
【０３８１】
データキャッシュ１２は、複数のデータキャッシュＡ、データキャッシュＢ、データキャッシュＣを備える。各データキャッシュは、メモリ１００の読出しに用いるセンスアンプ（ＳＡ）とデータ線とに各々接続される。
【０３８２】
センスアンプＳＡは、図示しないビット線を介し、メモリセルアレイ１１に電気的に接続される。
【０３８３】
データキャッシュのうちのＤＣ＿Ａは、直接データ線とのデータのやり取りが可能であるデータキャッシュである。ＤＣ＿Ａを通じてデータキャッシュ１２のデータを、データ線を介してＩＯへ接続されることにより、メモリセルアレイ１１（ＮＡＮＤチップ）の外部に出力し、メモリ１００の外部のデータをデータキャッシュにロードすることが可能である。
【０３８４】
更に、データキャッシュ１２に接続され、データキャッシュ１２間の演算を行うための演算器を備える。演算器は、上記実施形態における認証処理に用いるデータ生成器１３、１４や一方向性回路１５等を備える認証回路１７に相当する。
【０３８５】
また、一時的にデータを格納しておくための内部レジスタ９２を備える。
【０３８６】
ここで、ＮＡＮＤ型フラッシュメモリ１００には、データ読出しにおいて、メモリセルアレイ１１への読出しコマンドに加え、データキャッシュ１２にメモリセルアレイ１１から読み出されたデータを読み出すためのコマンドとしてレジスタリードと呼ばれるコマンドがある。
【０３８７】
この際、上記認証方法においては、ＮＡＮＤ型フラッシュメモリ１００内の秘匿領域１０１は、秘匿領域１０１に記録されている秘匿情報（NKey、SecretID等）をメモリセルアレイ１１の外部からのアクセスによって読みだされることがあってはならない。一方で、ＮＡＮＤ型フラッシュメモリ１００が認証処理を行う場合は、秘匿領域１０１に記録されている秘匿情報（NKey、SecretID等）を内部的に読出し、認証処理に用いる必要がある。すなわち、メモリセルアレイ１１からデータキャッシュ１２への秘匿情報（NKey、SecretID等）の読出しは可能としておく必要がある一方で、データキャッシュ１２からＮＡＮＤ型フラッシュメモリ１００の外部へのデータ出力を禁止する必要がある。これは、前記のレジスタリードを無効化することに相当する。
【０３８８】
そこで、秘匿領域１０１が、ＮＡＮＤ型フラッシュメモリ１００の外部からアクセスされたときのデータ読み出し動作については、通常の読み出し動作と異なる動作をさせる。より具体的には、秘匿領域１０１がアクセスされた場合、メモリセルアレイ１１からセンスしたデータを、データキャッシュＤＣ＿Ａ以外のデータキャッシュＤＣ＿Ｂ、ＤＣ＿Ｃに留め外部への出力ができないようにして、レジスタリードコマンドが効かないように無効化する。一方、アクセスされたブロックが、秘匿領域１０１でない場合、通常通り、データキャッシュＤＣ＿Ａを用いて、データ読み出しを行う。
【０３８９】
このように、上記構成によれば、複数種類のデータキャッシュＤＣ＿Ａ〜ＤＣ＿Ｃを設け、外部からユーザがアクセスできないデータキャッシュＤＣ＿Ｂ、ＤＣ＿Ｃのみで上記認証処理を実行する。そのため、上記認証処理に秘匿情報（NKey、SecretID等）を利用する際に、鍵情報（NKey）等の秘匿情報が外部から不正に読み取られない点で有利である。
【０３９０】
＜認証処理におけるＮＡＮＤ内部演算フロー１＞  
次に、図４０に沿って、認証処理の過程において、ホスト装置２０００に対して秘匿領域１０１の情報を直接的・間接的にも出力しないためのフローを示す。
【０３９１】
（Step Ｓ８２）  
まず、認証処理において、ホスト装置２０００等のＮＡＮＤ型フラッシュメモリ１００の外部からデータが入力されるとする。この入力データは、例えば、上記乱数ＲＮやホスト定数ＨＣj等であり、同データは、データキャッシュＤＣ＿Ａにロードされる。
【０３９２】
（Step Ｓ８３）  
続いて、ホスト装置２０００から秘匿領域１０１等の特別ブロックへアクセスする間接的読み出し要求が行われる。これは、すなわち認証における認証情報の計算要求に該当する。
【０３９３】
この要求を受けて、メモリセルアレイ１１からリードされた機密ページのデータが読み出される。
【０３９４】
（Step Ｓ８４）  
続いて、リードされた機密ページのデータは、データキャッシュＤＣ＿Ｂに格納される。
【０３９５】
（Step Ｓ８５）  
続いて、データキャッシュＤＣ＿ＡとデータキャッシュＤＣ＿Ｂのそれぞれに記憶されているデータ間で、上記実施形態で説明した認証処理における演算を演算器（認証回路１０７）を用いて行う。
【０３９６】
（Step Ｓ８６）  
続いて、演算の結果は、データキャッシュＤＣ＿Ｃに格納される。
【０３９７】
（Step Ｓ８７）  
ここで、一連のシーケンスを抜けてチップレディとなったときに機密データがデータキャッシュに残っていると、これを外部から読み出されるおそれがある。これを防ぐためにシーケンスを抜ける前に、全てのデータキャッシュＤＣ＿Ａ〜ＤＣ＿Ｃの情報をリセットしておかなければならない。一方、ホスト装置２０００は、上記演算の結果をデータキャッシュＤＣ＿Ａ〜ＤＣ＿Ｃがリセットされた後に得なければならない。
【０３９８】
そこで、まず、データキャッシュＤＣ＿Ｃに保持されている演算の結果を、内部レジスタ９２にコピーする。
【０３９９】
（Step Ｓ８８）  
続いて、全てのデータキャッシュＤＣ＿Ａ〜ＤＣ＿Ｃのデータをリセットする。
【０４００】
（Step Ｓ８９）  
続いて、内部レジスタ９２に退避しておいたデータを、データキャッシュＤＣ＿Ａに戻す。ここまでの動作が終了すると、ＮＡＮＤ型フラッシュメモリ１００はこのシーケンスを抜け、レディ状態となる。この際、データキャッシュＤＣ＿Ａには演算の結果が格納され
ている。
【０４０１】
（Step Ｓ９０）  
続いて、ホスト装置２０００は、レジスタリードコマンドにより、データキャッシュＤＣ＿Ａに格納されたデータを得ることが出来る。
【０４０２】
＜認証処理におけるＮＡＮＤ内部演算フロー２＞  
次に、図４１に沿って、ＮＡＮＤ型フラッシュメモリ１００内部に乱数生成器（２４ｎ）を備えた実施形態のＮＡＮＤ内部演算フローについて説明する。上記図４０の場合と異なるのは、ＮＡＮＤ型フラッシュメモリ１００内部の乱数発生器（２４ｎ）で発生した乱数（ＲＮｎ）を使用する点である。
【０４０３】
（Step Ｓ９１）  
まず、認証処理において、ホスト装置２０００からＮＡＮＤ型フラッシュメモリ１００に対して乱数読出し要求が行われると、ＮＡＮＤ型フラッシュメモリ１００は乱数を生成させ、生成された乱数はデータキャッシュＤＣ＿Ａにロードされる。
【０４０４】
（Step Ｓ９２）  
続いて、ホスト装置２０００は、レジスタリードコマンドによって、データキャッシュＤＣ＿Ａの乱数を読み出す。
【０４０５】
（Step Ｓ９３）  
続いて、認証処理において、ホスト装置２０００から例えばホスト定数（ＨＣｊ）等のデータが、ＮＡＮＤ型フラッシュメモリ１００に対して入力される。上記データは、データキャッシュＤＣ＿Ａにロードされる。
【０４０６】
更に、ホスト装置２０００からＮＡＮＤ型フラッシュメモリ１００に対してホスト装置２０００で演算した認証情報が入力される。このデータは、例えばＯｎｅｗａｙ−ＩＤ等であり、同データはデータキャッシュＤＣ＿Ａにロードされる。
【０４０７】
（Step Ｓ９４）  
続いて、ホスト装置２０００から秘匿領域１０１にアクセスして、間接的読み出し要求が行われる。これはすなわち認証における認証情報の計算要求に該当する。
【０４０８】
すると、メモリ１００から機密ページのリードがされる。
【０４０９】
（Step Ｓ９５）  
続いて、リード結果は、データキャッシュＤＣ＿Ｂに格納される。
【０４１０】
（Step Ｓ９６）  
続いて、データキャッシュＤＣ＿ＡとデータキャッシュＤＣ＿Ｂとのそれぞれに記憶されているデータ間で、上記実施形態で説明した認証処理における演算を演算器（認証回路１０７）を用いて行う。
【０４１１】
（Step Ｓ９７）  
続いて、上記演算の結果は、データキャッシュＤＣ＿Ｂに格納される。
【０４１２】
（Step Ｓ９８）  
続いて、データキャッシュＤＣ＿Ａに保持されているホスト装置の演算結果とデータキャッシュＤＣ＿Ｂに保持されているＮＡＮＤ型フラッシュメモリの演算結果とを照合する。
【０４１３】
（Step Ｓ９９）  
続いて、上記ステップＳ９８の際の照合において、照合結果の一致が確認された場合、制御パラメータ（８９０）を更新する。
【０４１４】
（Step Ｓ１００）  
続いて、ＮＡＮＤ型フラッシュメモリ１００は、全てのデータキャッシュＤＣ＿Ａ〜ＤＣ＿Ｃの情報をリセットする。ここまでの動作が終了すると、ＮＡＮＤ型フラッシュメモリ１００は、このシーケンスを抜け、レディ状態となる。
【０４１５】
（Step Ｓ１０１）  
続いて、ホスト装置２０００は、照合結果を確認するコマンドにより、メモリ１００の外部にリードアウトされた照合結果を得る。
【０４１６】
＜秘匿情報の検査方法について＞  
次に、秘匿情報の検査方法について説明する。
【０４１７】
検査フロー  
図４２に沿って、工場でシリコンが出来上がってから、ＮＡＮＤ型フラッシュメモリ１００を出荷するまでの過程で、本認証方法に関係する工程を示す。
【０４１８】
図示するように、製造工程、テスト、秘匿データ書き込み、出荷の順に工程が進む。
【０４１９】
（Step Ｓ７１、Ｓ７２）  
まず、製造工程が終了すると、所定の検査テストを行って、良品チップ１０をウェハから選別する。
【０４２０】
（Step Ｓ７３）
続いて、上記ステップＳ７２の際の通常のテスト工程が終了した後、秘匿データを書き込む工程が行われ、正しく秘匿データが書かれたか否かをテストしなければならない。
【０４２１】
一方で、この際、秘匿領域１０１から秘匿データを直接読み出すことはできない。なぜなら、当該読出し機能はセキュリティーホールとなる恐れがあるためである。
【０４２２】
（Step Ｓ７４）
続いて、正しく秘匿データが書かれたＮＡＮＤ型フラッシュメモリ１００について、出荷を行う。
【０４２３】
秘匿情報の間接的読み出し検査フロー
上記ステップＳ７３の際、秘匿領域１０１から秘匿データを直接読み出すことは、セキュリティーホールとなる恐れがある観点から、行うことができない。
【０４２４】
そこで、図４３に沿って、直接データ読出し機能を提供せずに、記録されたデータの確認をするフローを説明する。
【０４２５】
（Step Ｓ１１１）  
まず、メモリセルアレイ１１の秘匿領域１０１から、秘匿情報（Nkey等）の情報を読み出す。
【０４２６】
（Step Ｓ１１２）  
続いて、読み出した秘匿情報（Nkey等）のリード結果を、データキャッシュＤＣ＿Ｂに格納する。
【０４２７】
（Step Ｓ１１３）  
続いて、ＮＡＮＤ型フラッシュメモリ１００の外部から、同一の秘匿情報（Nkey等）を、データキャッシュＤＣ＿Ａに記憶させる。
【０４２８】
（Step Ｓ１１４）  
続いて、演算器（認証回路１０７）を用いて、データキャッシュＤＣ＿ＡのデータとデータキャッシュＤＣ＿Ｂのデータとの排他的論理和をとる。
【０４２９】
（Step Ｓ１１５）
続いて、排他的論理和の結果を、データキャッシュＤＣ＿Ｃに格納する。
【０４３０】
（Step Ｓ１１６）
続いて、データキャッシュＤＣ＿Ｃのデータを検知する。
【０４３１】
（Step Ｓ１１７）
この際、データキャッシュＤＣ＿Ａのデータと、データキャッシュＤＣ＿Ｂのデータとが一致している場合（Yes）にはテストはパス(OK)である。一方、一致していない場合（No）テストはフェイルである。
【０４３２】
具体的には、データキャッシュＤＣ＿Ｃには排他的論理和の結果が入っているから、データキャッシュＤＣ＿Ｃのデータが全て“０”の場合（Yes）、テストはパス（OK）である。一方、“１”である場合（No）、フェイルとなる。
【０４３３】
まず、データキャッシュＤＣ＿Ｃのデータがすべて“０”であるかどうかの検知を行う。ここで、すべてのビットが“０”となっていれば（Yes）、テストはパスとなる。そうでなかった場合（No）、次のステップＳ１１８に続く。
【０４３４】
（Step Ｓ１１８）  
続いて、すべてのビットが“０”でない場合（No）、“１”の数を数える。この際、“１”の数が規定の数以下である場合（Yes）、多数決誤り訂正や訂正符号による誤り訂正が可能であると判断されるのでテストはパスとなる（OK）。一方、“１”の数が規定数以上であった場合（Mo）、テストはフェイルとなる（NG）。
【０４３５】
ここで、上記実施形態に記載した、特定ブロックへのアクセス制御に認証を用いる方法を用いて、秘匿領域１０１に記録された秘匿情報の代わりに、ＮＡＮＤ型フラッシュメモリ１００にハードワイヤードで構成した第２の秘匿情報を別途持っておき、同第２の秘匿情報によって秘匿領域１０１へのアクセス制御を行うという方法も可能である。この場合、データ読み出しだけではなく、データ書き込みやデータ消去等も第２の秘匿情報に基づく認証によって制御してもよい。
【０４３６】
＜作用効果＞  
第９の実施形態に係る認証装置、被認証装置及び認証方法によれば、少なくとも上記と同様の作用効果（１）乃至（５）を得ることができる。
【０４３７】
更に、本実施形態では、秘匿領域１０１がアクセスされた場合、メモリセルアレイ１１からセンスしたデータを、データキャッシュＤＣ＿Ａ以外のデータキャッシュＤＣ＿Ｂ、ＤＣ＿Ｃに留め外部への出力ができないようにして、レジスタリードコマンドが効かないように無効化する。一方、アクセスされたブロックが、秘匿領域１０１でない場合、通常通り、データキャッシュＤＣ＿Ａを用いて、データ読み出しを行う。
【０４３８】
このように、上記構成によれば、複数種類のデータキャッシュＤＣ＿Ａ〜ＤＣ＿Ｃを設け、外部からユーザがアクセスできないデータキャッシュＤＣ＿Ｂ、ＤＣ＿Ｃのみで上記認証処理を実行する。そのため、上記認証処理に秘匿情報（NKey、SecretID等）を利用する際に、鍵情報（NKey）等の秘匿情報が外部から不正に読み取られない点で有利である。
【０４３９】
加えて、上記ステップＳ８８、Ｓ１００に示すように、Busy状態からReady状態に戻る前に、データキャッシュＤＣ＿ＡＤ〜Ｃ＿Ｃ中の鍵情報等の秘匿情報を全て消去する。そのため、安全性を確保することが可能である。
【０４４０】
［第１０の実施形態（コマンドマッピングの一例）］  
第１０の実施形態は、コマンドマッピングの一例に関するものである。この説明において
、上記実施形態と重複する部分の説明については、省略する。
【０４４１】
＜Read,Writeコマンドと親和性の良いコマンドマッピング例＞  
ここで、ＮＡＮＤ型フラッシュメモリ１００は、読出し用のコマンドとして、例えば、００ｈ−Ａｄｄｒｅｓｓ−３０ｈにより読出し対象のブロック及びページアドレスを指定する。Ａｄｄｒｅｓｓ部分はブロックアドレス、ページアドレス、更にページ内のバイト位置を示すカラムアドレスから構成されることが多い。カラムアドレス部分の入力データは無視されることもあれば、ページ読出し後のバイトポインタの設定に用いられて当該バイト位置からの読出しに用いられることもある。コマンド３０ｈの入力後にＮＡＮＤ型フラッシュメモリ１００は読出しのためのBusy状態となり、読出し完了後にReady状態へと遷移する。Ready状態へ遷移後、データ出力（Dout）が可能となり、ＲＥやＤＱＳ等を供給することでデータを読み出すことが可能となる。また、読み出したページ内で読み出すバイト位置を変更する場合は、０５ｈ−Ａｄｄｒｅｓｓ−Ｅ０ｈにて読み出したいバイト位置に相当するカラムアドレスを設定する。
【０４４２】
データ書き込み（記録）用のコマンドとしては、８０ｈ−Ａｄｄｒｅｓｓ−Ｄａｔａ  ｉｎｐｕｔ−１０ｈにより、書き込み対象のブロック及びページアドレスを指定する。ここで、Ａｄｄｒｅｓｓ部分はブロックアドレス、ページアドレス、更にページ内のバイト位置を示すカラムアドレスから構成されることが多い。カラムアドレス部分の入力データ
は無視されることもあれば、ページ書き込み用データ入力におけるバイトポインタの設定に用いられて当該バイト位置からの書き込みデータ入力に用いられることもある。コマンド１０ｈ入力後、ＮＡＮＤ型フラッシュメモリ１００は、書き込みのためのBusy状態となり、書き込み完了後Readyへと遷移する。
【０４４３】
上記が、ＮＡＮＤ型フラッシュメモリ１００で広く用いられているコマンド体系である。上記実施形態に係る認証機能を実装する場合に、コマンドシーケンスをできるだけ共通化させることが回路の実装面積を極小化する上で好ましい。しかしながら、認証機能はセキュリティを要する分野で利用されることから、機能利用者を限定した方が望ましいという視点もある。
【０４４４】
そこで、図４４は、上記観点を考慮して、ＮＡＮＤ型フラッシュメモリ１００の上記Read,Writeコマンドと親和性の良いコマンドマッピング例を示している。
【０４４５】
上記一般的なコマンドシーケンスと異なる点は、Security Prefixの入力コマンドを当該コマンドの前に付与している点である。ここで、Security Prefixは、単バイトで構成する場合、複数バイトで構成する場合が考えられる。コマンドSecurity Prefixは、当該認証機能を必要とする利用者にのみ開示される。利用者管理の観点では、コマンドSecurity Prefixは、複数バイトで構成されるほうが望ましい。
【０４４６】
（ａ）で示すように、データ読出しコマンドシーケンスと同ように、ＩＯ端子に、順次、コマンド（Security Prefix）−コマンド（００ｈ）−アドレス（ＡＤＤ）−コマンド（３０ｈ）により読出し対象のブロック及びページアドレスが指定される。ここで、Ａｄｄｒｅｓｓに設定された値を更に利用者管理用に特別な値とすることも可能であり、若しくは内部にて無視される値とすることも可能である。
続いて、コマンド（３０ｈ）の入力後にＮＡＮＤ型フラッシュメモリ１００は、読出しのためのBusy状態となり、読出し完了後にReady状態へと遷移する。Ready状態へ遷移後、データ出力（Dout）が可能となり、ＲＥやＤＱＳ等を供給することで、インデックス情報ｉ、ｖ、固有の暗号化秘密識別情報（E-SecretID）、共通に付される鍵管理情報（FKBv）等のデータを読み出すことが可能となる。
（ｂ）で示すように、データ書き込みコマンドシーケンスと同様に、ＩＯ端子に、順次、コマンド（Security Prefix）−コマンド（８０ｈ）−アドレス（ＡＤＤ）−データ（Din 32B）−コマンド（１０ｈ）を入力することにより、対象データの入力を行う。ここで、Ａｄｄｒｅｓｓに設定された値を更に利用者管理用に特別な値とすることも可能であり、若しくは内部にて無視される値とすることも可能である。ここで、本シーケンスは書き込みシーケンスと共通箇所が多いものの、実際にはセルアレイへのデータ書き込みは必要としなく、ＮＡＮＤ型フラッシュメモリ１００が認証処理の計算に必要とするデータ入力のために使用される。認証処理の計算に必要とするデータの例としては、ホスト装置２０００の固有情報ＨＣｉや乱数等がある。
続いて、認証処理の計算が終了するまでの期間Busy状態となり、計算が終了し、かつ上記のように、データキャッシュＤＣ＿Ａ〜ＤＣ＿Ｃ中のセキュリティーデータが全てクリアされた後に、Ready状態へと遷移する。
【０４４７】
（ｂ）で示すように、Ready状態へと遷移した後、ホスト装置２０００は、ＩＯ端子に、順次、コマンド（０５ｈ）−アドレス（ＡＤＤ）−コマンド（Ｅ０ｈ）を入力し、認証処理の計算結果が保持されているカラムアドレスを指定することで結果の取得が可能となる。認証処理の計算結果の例としてはＯｎｅｗａｙ−ＩＤ等がある。
【０４４８】
＜Set / Get featureコマンドと親和性の良いコマンドマッピング例＞  
次に、図４５に沿って、本認証機能を適用したＮＡＮＤ型フラッシュメモリ１００のコマンド構成の別の例を示す。ＮＡＮＤ型フラッシュメモリ１００には、当該メモリ１００の機能を有効化するためのSetFeatureと呼ばれるコマンド、及び、当該メモリ１００の機能の有効化・無効化状況を読み出すためのGet Featureと呼ばれるコマンドがある。これらのコマンドは、例えば、高速データ転送用の相補信号である/ＲＥ、/ＷＥ、/ＤＱＳ等の入力を有効化するため等に用いられる。
【０４４９】
Set Featureは、ＥＥｈ−Ａｄｄｒｅｓｓ&mdash;Data inputにて機能の設定を行う。ここで、Ａｄｄｒｅｓｓには機能番号が設定され、Data inputには当該機能番号にて示される機能のパラメータが入力される。その後、機能有効化のためのBusy期間があり、有効化の後、Readyへと遷移する。
【０４５０】
Get Featureは、ＥＦｈ−Ａｄｄｒｅｓｓ&mdash;Data outputにて、機能の有効化・無効化状況の読出しを行う。ここで、Ａｄｄｒｅｓｓには機能番号が設定され、Data outputには当該機能番号にて示される機能のパラメータが出力される。ＡｄｄｒｅｓｓとDataoutputとの間には、内部での設定パラメータ読出しのためのBusy期間が存在する。
【０４５１】
本実施形態は、これらSet Feature、Get Featureを流用したコマンドシーケンスの例である。
【０４５２】
（ａ）に示すように、コマンドシーケンスは、上記と同様であるが、指定するＡｄｄｒｅｓｓが異なる。ここで、Ａｄｄｒｅｓｓは単バイトで構成する場合、複数バイトで構成する場合が考えられる。Ａｄｄｒｅｓｓは当該認証機能を必要とする利用者にのみ開示される。利用者管理の観点では、Ａｄｄｒｅｓｓは複数バイトで構成されるほうが望ましい。Data output及びData inputの例としては、上記図４５にて示したものと同様のインデックス情報i、ｖ、固有の暗号化秘密識別情報（E-SecretID）、共通に付される鍵管理情報（FKBv）等である。
【０４５３】
（ｂ）に示すように、Data input用のコマンド（ＥＥｈ）−アドレス（ＡＤＤ）−データ（Din）のコマンドシーケンスは、同時に認証処理の実行を誘発し、Busy期間中にＮＡＮＤ型フラッシュメモリ１００は認証処理の計算を行う。
【０４５４】
続いて、計算が終了し、かつセキュリティーデータがデータキャッシュよりクリアされた後に、Ready状態へと遷移する。Ready状態へと遷移した後、ホスト装置２０００は、Ｏｎｅｗａｙ−ＩＤを読み出すことが可能である。
【０４５５】
＜作用効果＞  
第１０の実施形態に係る認証装置、被認証装置及び認証方法によれば、少なくとも上記と同様の作用効果（１）乃至（５）を得ることができる。
【０４５６】
更に、本実施形態では、図４４に示したように、認証機能に必要なコマンドを、ＮＡＮＤ型フラッシュメモリ１００のコマンドシーケンスとできるだけ共通化させることできる。そのため、セキュリティを考慮しつつ、回路の実装面積を極小化できるため、上記実施形態に係る認証機能を実装する場合により有効である。
【０４５７】
また、図４５に示したように、ＮＡＮＤ型フラッシュメモリ１００の機能を有効化するためのSet Featureと呼ばれるコマンド、及び、ＮＡＮＤ型フラッシュメモリ１００の機能の有効化・無効化状況を読み出すためのGet Featureと呼ばれるコマンドに対しても、必要に応じて共通化させて適用が可能である。
【０４５８】
ここで、Busy状態からReady状態へ戻る前のタイミングで、データキャッシュＤＣ＿Ａ〜ＤＣ＿Ｃのデータを全てクリアする点は、上記と同様である。
【０４５９】
［第１１の実施形態（メモリカード、コンテンツ保護、ＨＤＤへの一応用例）］  
第１１の実施形態は、メモリカード、コンテンツ保護、ＨＤＤへの一応用例の関するものである。この説明において、上記実施形態と重複する部分の説明については、省略する。
【０４６０】
メモリカードへの応用例  
図４６を用い、本認証機能を適用したＮＡＮＤ型フラッシュメモリ１０００を搭載したメモリカードの構成例を示す。
【０４６１】
図示するように、メモリカード１０００は、メモリ１００の動作を制御する機能、ホスト装置２０００側とのインターフェースを制御する機能等を有するコントローラ２００を搭載する。
【０４６２】
ＮＡＮＤパッケージ内に積層された複数のＮＡＮＤ型フラッシュメモリチップ１００（ＭＣＰ１）、（ＭＣＰ２）を少なくとも１つ以上有する。ここで、ＮＡＮＤパッケージ内の少なくとも１つ以上のメモリ１００が、上記実施形態に係る認証機能・被認証機能を有すれば良い。換言すると、ＮＡＮＤパッケージ内のメモリ１００の全てが、上記実施形態における認証機能・被認証機能を有していなくてもよい。更に、メモリカード１０００内に搭載されたＮＡＮＤパッケージの全てが実施形態における認証機能・被認証機能を有していなくともよい。明確化のために、本実施形態のＮＡＮＤ型フラッシュメモリ１００は、ＮＡＮＤパッケージを指すこともあれば、ＮＡＮＤフラッシュメモリチップを指すこともある。
【０４６３】
メモリカード１０００内のコントローラ２００は、ＮＡＮＤパッケージ内のＮＡＮＤ Ｉ／Ｆを経由して、上記実施形態に係る認証機能・被認証機能を制御する機能を有する。ここで、複数のＮＡＮＤパッケージのいずれか一つのみの認証機能・被認証機能を制御する機能であってもよいし、複数のＮＡＮＤパッケージの各々の認証機能・被認証機能を制御する機能であってもよい。更に、ＮＡＮＤパッケージ内のいずれか一つのメモリ１００の認証機能・被認証機能を制御する機能であってもよいし、ＮＡＮＤパッケージ内の各々のメモリ１００の認証機能・被認証機能を制御する機能であってもよい。
【０４６４】
コンテンツ保護への応用例１  
図４７を用い、上記認証機能を適用したＮＡＮＤ型フラッシュメモリ１００を搭載したメモリカード１０００のコンテンツ保護への応用例１を示す。簡略化のため、本発明明細書内で既に説明した内容については説明を割愛する。
【０４６５】
メモリカード１０００内には、コントローラ２００、ＮＡＮＤパッケージ（ＭＣＰ１）、（ＭＣＰ２）が搭載されている。ここで、ＮＡＮＤパッケージ（ＭＣＰ１）、（ＭＣＰ２）は、上記実施形態に係る認証機能・被認証機能を有する。
【０４６６】
ホスト装置２０００は、上記実施形態にて示した認証処理により、ＮＡＮＤ型フラッシュメモリ１００のＮＡＮＤパッケージ（ＭＣＰ１）、（ＭＣＰ２）は、秘密識別情報Secret IDの正当性を確認する。
【０４６７】
正当性確認後、ホスト装置２０００は、秘密識別情報Secret IDに基づいて、第５の実施形態において説明した方法を用い、ＥＭＩＤの計算処理を行う。
【０４６８】
ここで、ＮＡＮＤパッケージ（ＭＣＰ２）は、コンテンツ（Content）書き込み時に、ＥＭＩＤとコンテンツを関連付けるためのBinding Dataを生成する。Binding Dataには、コンテンツを暗号化・復号化するための鍵に関わるデータを含んでおくことが望ましい。Binding Dataは、カード５５内に搭載されたＮＡＮＤパッケージ（ＭＣＰ１）、（ＭＣＰ２）のいずれかに記録される。ここで、Binding Dataが記録されるＮＡＮＤパッケージは、認証処理に用いた秘密識別情報Secret IDを有するＮＡＮＤパッケージ（ＭＣＰ１）であってもよいし、他のＮＡＮＤパッケージ（ＭＣＰ２）であってもよい。図４７では後者の例を示しているがこれに限られない。また、コンテンツの記録位置も同様に、いずれのＮＡＮＤパッケージであってもよい。
【０４６９】
コンテンツ（Content）再生時には、ＥＭＩＤとコンテンツを関連付けるためのBindingDataと秘密識別情報Secret IDとを認証処理して得られたＥＭＩＤと、コンテンツの関連性を計算・確認して、関連性が確認された場合にのみコンテンツを再生する。
【０４７０】
上記構成により、コンテンツ（Content）は、秘密識別情報Secret IDと関連付けられる。そのため、同一の秘密識別情報Secret IDを有さない他のメモリカードにコンテンツやBinding Dataを不正に複製しても、コンテンツの再生ができなくなる効果が得られる点で、有利である。
【０４７１】
ＨＤＤへの応用例１  
図４８を用い、本認証機能を適用したＮＡＮＤ型フラッシュメモリ１００を利用したハードディスクドライブ（ＨＤＤ）の構成例１を示す。
【０４７２】
図示するように、ＨＤＤパッケージ４００には、少なくとも一つ以上のＮＡＮＤパッケージ（ＭＣＰ１）を搭載し、内少なくとも一つのＮＡＮＤパッケージは上記実施形態に係る認証機能・被認証機能を有する。
【０４７３】
また、ＨＤＤパッケージ４００には、少なくとも一つのＨＤＤ２１０を搭載する。
【０４７４】
更に、ＮＡＮＤパッケージ（ＭＣＰ１）の制御、ＨＤＤ２１０の制御、ホスト装置とのインターフェースの制御等を実行するブリッジコントローラ２０００を搭載する。ブリッジコントローラ２０００は、単独の集積回路から構成されていてもよいし、複数の集積回路から構成されていてもよい。また、集積回路とファームウェアの組み合わせにより機能を実現してもよい。
【０４７５】
ＮＡＮＤパッケージ（ＭＣＰ１）内の認証機能・被認証機能は、ブリッジコントローラ２０００を経由してホスト装置であるＨＤＤ２１０へと提供される。
【０４７６】
ＨＤＤへの応用例２  
図４９を用い、本認証機能を適用したＮＡＮＤ型フラッシュメモリ１００を利用したハードディスクドライブ（ＨＤＤ）の別の構成例を示す。
【０４７７】
図示するように、ＨＤＤパッケージ４００には、上記図４６にて説明したメモリカード１０００を接続するためのメモリカードソケット５５０を有する。
【０４７８】
また、ＨＤＤパッケージ４００には、少なくとも一つの以上のＨＤＤ２１０を搭載する。更に、メモリカード１０００の制御、ＨＤＤ２１０の制御、ホスト装置とのインターフェースの制御等を実行するブリッジコントローラ１９０を搭載する。ブリッジコントローラ１９０は、単独の集積回路から構成されていてもよいし、複数の集積回路から構成されていてもよい。また、集積回路とファームウェアの組み合わせにより機能を実現してもよい。
【０４７９】
メモリカード１０００内の認証機能・被認証機能は、ブリッジコントローラ１９０を経由してホスト装置であるＨＤＤ２１０へと提供される。
【０４８０】
コンテンツ保護への応用例２  
図５０にて、本認証機能を適用したＮＡＮＤ型フラッシュメモリ１００を利用したハードディスクドライブ（ＨＤＤ）のコンテンツ保護への応用例を示す。本実施形態は、図４８にて示したＨＤＤ構成を例に取っているが、図４８にて示したＨＤＤ構成にも適用可能である。
【０４８１】
図示するように、ＨＤＤパッケージ４００Ａ、２００Ｂ内には、ブリッジコントローラ１９０Ａ、１９０Ｂ、メモリカードソケット５５０Ａ、５５０Ｂ、ＨＤＤ２１０Ａ、２１０Ｂがそれぞれ搭載されている。
【０４８２】
ここで、メモリカード１０００は、上記実施形態のいずれかの認証機能・被認証機能を有する。ホスト装置２０００は、上記実施形態にて示した認証処理によりＮＡＮＤ型フラッシュメモリ１００の秘密識別情報Secret IDの正当性を確認する。正当性確認後、ホスト装置２０００は、秘密識別情報Secret IDに基づいて第５の実施形態にて示した方法にて、ＥＭＩＤの計算処理を行う。
【０４８３】
コンテンツ（Cntent）書き込み時には、ＥＭＩＤとコンテンツを関連付けるためのBinding Dataを生成する。Binding Dataにはコンテンツを暗号化・復号化するための鍵に関わるデータを含んでおくことが望ましい。Binding Dataは、メモリカード１０００、若しくは、ＨＤＤ２１０Ａ、２１０Ｂのいずれかに記録される。ここでは、ＨＤＤ２１０Ａ、２１０Ｂに記録される例を示しているがこれに限られない。また、コンテンツの記録位置も同様に、カード５５若しくはＨＤＤ２１０Ａ、２１０Ｂのいずれであってもよい。
【０４８４】
コンテンツ（Content）再生時には、ＥＭＩＤとコンテンツを関連付けるためのBindingDataと、秘密識別情報Secret IDを認証処理して得られたＥＭＩＤと、コンテンツの関連性を計算・確認し関連性が確認された場合にのみコンテンツを再生する。
【０４８５】
本実施形態は、カードソケット５５０Ａを経由してメモリカード１０００内のＮＡＮＤ型フラッシュメモリ１００が有する認証機能・被認証機能を利用する例であるが、図４８に示したＨＤＤが直接ＮＡＮＤパッケージを搭載し、制御する構成においても適用可能である。この場合、メモリカードをＮＡＮＤパッケージに置き換えればよい。
【０４８６】
更に、カードソケット５５０Ａ、５５０Ｂを有するＨＤＤについて適用可能な応用例として、同様のＨＤＤパッケージが複数あった場合、両ＨＤＤパッケージにコンテンツやBinding Dataを複製することで、カードを移動するのみでいずれのＨＤＤに記録されたコンテンツを再生することも可能となる。ここで、Binding Dataは、ＨＤＤでなく、カードに記録されていてもよいし、または両方に記録されていてもよい。
【０４８７】
本構成により、コンテンツ（Content）は、メモリカード１０００若しくはＮＡＮＤパッケージ内の秘密識別情報Secret IDと関連付けられるため、同一の秘密識別情報Secret IDを有さないメモリカード１０００にコンテンツやBinding Dataを不正複製しても、コンテンツの再生ができなくなる効果が得られる。
【０４８８】
更に、図４９にて示したＨＤＤパッケージがメモリソケットを有する例においては、メモリカードのみを移動することで複数のＨＤＤに記録されたコンテンツを再生することが可能となる。これは一般にメモリカードに比較し、ＨＤＤは筐体が大きく、据え置き用途等で用いられることもあることから、可搬性上有利である。
【０４８９】
コンテンツ保護への応用例３  
図５１を用い、本認証機能を適用したＮＡＮＤ型フラッシュメモリ１００を利用したハードディスクドライブ（ＨＤＤ）のコンテンツ保護への応用例３を説明する。本実施形態は、ホスト装置２０００が、メモリカードソケット５５０を有し、外付けＨＤＤ２１０を利用する例である。
【０４９０】
図示するように、ＨＤＤパッケージ４００内には、ブリッジコントローラ２０００、ＨＤＤ２１０が搭載されている。
【０４９１】
ホスト装置２０００には、メモリカードソケット５５０に挿入されるメモリカード１０００内に備える認証機能、カード制御機能が搭載されている。メモリカード１０００には、上記実施形態いずれかに係る認証機能・被認証機能を有するＮＡＮＤパッケージが搭載されている。
【０４９２】
上記構成において、ホスト装置２０００は、上記実施形態にて示した認証処理によりＮＡＮＤ型フラッシュメモリ１００の秘密識別情報Secret IDの正当性を確認する。
【０４９３】
正当性確認後、ホスト装置２０００は、秘密識別情報Secret IDに基づいて、上記第５の実施形態に係る方法を用い、ＥＭＩＤの計算処理を行う。
【０４９４】
コンテンツ（Content）書き込み時には、ＥＭＩＤとコンテンツを関連付けるためのBinding Dataを生成する。Binding Dataには、コンテンツを暗号化・復号化するための鍵に関わるデータを含んでおくことが望ましい。Binding Dataは、メモリカード１０００、若しくは、ＨＤＤ２１０のいずれかに記録される。ここでは、後者の例を示しているがこれにと限られない。また、コンテンツの記録位置も同様に、カード５５若しくはＨＤＤ２１０のいずれであってもよい。
【０４９５】
コンテンツ（Content）再生時には、ＥＭＩＤとコンテンツを関連付けるためのBindingDataと、秘密識別情報Secret IDを認証処理して得られたＥＭＩＤと、コンテンツの関連性を計算・確認し関連性が確認された場合にのみコンテンツを再生する。
【０４９６】
本実施形態は、カードソケット５５０を経由してメモリカード１０００内のＮＡＮＤ型フラッシュメモリ１００が有する認証機能・被認証機能を利用する例であるが、ホスト装置２０００は、直接ＮＡＮＤパッケージを搭載し、制御する構成においても適用可能である。この場合、前記のメモリカード１０００をＮＡＮＤパッケージに置き換えればよい。
【０４９７】
更に、カードソケット５５０を有するホスト装置２０００について適用可能な応用例として、同様のホスト装置２０００が複数あった場合、メモリカード１０００とＨＤＤパッケージ４００を別のホスト装置２０００と接続することで、いずれのホスト装置２０００でもコンテンツを再生することも可能となる。ここで、コンテンツやBinding Dataは、ＨＤＤ２１０でなく、カード１０００に記録されていてもよいし、または両方に記録されていてもよい。
【０４９８】
本構成により、コンテンツはメモリカード１０００若しくはＮＡＮＤパッケージ内の秘密識別情報Secret IDと関連付けられるため、同一の秘密識別情報Secret IDを有さないメモリカードにコンテンツやBinding Dataを不正複製しても、コンテンツの再生ができなくなる効果が得られる。更に、メモリカード１０００とＨＤＤ２１０を移動することで複数のホスト装置でコンテンツを再生することが可能となる。
【０４９９】
コンテンツ保護への応用例４  
図５２を用い、本認証機能を適用したＮＡＮＤ型フラッシュメモリ１００を利用したハードディスクドライブ（ＨＤＤ）のコンテンツ保護への応用例４を説明する。本実施形態は、ホスト装置２０００がメモリカードソケット５５０を有し、更に内蔵ＨＤＤ２１０を利用した例である。
【０５００】
図示するように、ＨＤＤパッケージ４００内には、ブリッジコントローラ２０００、ＨＤＤ２１０が搭載されている。
【０５０１】
ホスト装置２０００には、メモリカードソケット５５０に挿入されるメモリカード１０００内に備える認証機能、カード制御機能が搭載されている。メモリカード１０００には、上記実施形態いずれかに係る認証機能・被認証機能を有するＮＡＮＤパッケージが搭載されている。
【０５０２】
上記構成において、ホスト装置２０００は、上記実施形態にて示した認証処理によりＮＡＮＤ型フラッシュメモリ１００の秘密識別情報Secret IDの正当性を確認する。
【０５０３】
正当性確認後、ホスト装置２０００は、秘密識別情報Secret IDに基づいて、上記第８の実施形態に係る方法を用い、ＥＭＩＤの計算処理を行う。
【０５０４】
コンテンツ（Content）書き込み時には、ＥＭＩＤとコンテンツを関連付けるためのBinding Dataを生成する。Binding Dataには、コンテンツを暗号化・復号化するための鍵に関わるデータを含んでおくことが望ましい。Binding Dataは、メモリカード１０００、若しくは、ＨＤＤ２１０のいずれかに記録される。ここでは、後者の例を示しているがこれにと限られない。また、コンテンツの記録位置も同様に、メモリカード１０００若しくはＨＤＤ２１０のいずれであってもよい。
【０５０５】
コンテンツ（Content）再生時には、ＥＭＩＤとコンテンツを関連付けるためのBindingDataと、秘密識別情報Secret IDを認証処理して得られたＥＭＩＤと、コンテンツの関連性を計算・確認し関連性が確認された場合にのみコンテンツを再生する。
【０５０６】
本実施形態は、カードソケット５５０を経由してメモリカード１０００内のＮＡＮＤ型フラッシュメモリ１００が有する認証機能・被認証機能を利用する例であるが、ホスト装置２０００は、直接ＮＡＮＤパッケージを搭載し、制御する構成においても適用可能である。この場合、前記のメモリカード１０００をＮＡＮＤパッケージに置き換えればよい。
【０５０７】
更に、カードソケット５５０を有するホスト装置２０００について適用可能な応用例として、同様のホスト装置２０００が複数あった場合、メモリカード１０００とＨＤＤパッケージ４００を別のホスト装置２０００と接続することで、いずれのホスト装置２０００でもコンテンツを再生することも可能となる。ここで、コンテンツやBinding Dataは、ＨＤＤ２１０でなく、メモリカード１０００に記録されていてもよいし、または両方に記録されていてもよい。
【０５０８】
本構成により、コンテンツはメモリカード１０００若しくはＮＡＮＤパッケージ内の秘密識別情報Secret IDと関連付けられるため、同一の秘密識別情報Secret IDを有さないメモリカードにコンテンツやBinding Dataを不正複製しても、コンテンツの再生ができなくなる効果が得られる。更に、メモリカード１０００とＨＤＤ２１０を移動することで複数のホスト装置でコンテンツを再生することが可能となる。
【０５０９】
［第９の実施形態の変形例（データキャッシュ利用のその他の一例）］  
本変形例は、上記第９の実施形態で説明したデータキャッシュの認証処理への利用のその他の構成例に関するものである。この説明において、上記実施形態と重複する部分の説明については、省略する。
【０５１０】
＜センスアンプおよびその周辺回路の構成例＞  
上記センスアンプおよび周辺回路の構成例については、図５３のように示される。図示するように、本変形例では、ＤＣ＿Ａ、ＤＣ＿Ｂ、ＤＣ＿Ｃ、ＤＣ＿Ｓがデータキャッシュ１２であり、ＤＣ＿Ａのみが、カラム制御回路を介してデータ線と接続されており、チップ外部とのデータの授受に使用される。またＤＣ＿Ｓは、データに応じてセンスアンプの動作を制御する用途で使われるラッチである。ＤＣ＿Ｂ、ＤＣ＿Ｃ、ＤＣ＿ＳはＤＣ＿Ａとセンスアンプの間のバス（ＬＢＵＳ）に並列に接続されてデータキャッシュとして使用され、外部とデータの授受を行う場合にはＤＣ＿Ａを介する必要がある。カラム制御回路は、カラムアドレスに応じたアドレスのＤＣ＿Ａをデータ線と接続する。ＮＡＮＤフラッシュメモリが通常の動作で使用される場合には、アドレス制御回路から供給されたカラムアドレスを用いるが、本提案の認証シーケンスを行う場合には演算器が指定するアドレスを用いる。通常のアドレスを使用するか、演算器のアドレスを使用するかはモード切替信号によって切り替えられるようになっている。
【０５１１】
＜センスアンプ、データキャッシュの等価回路例＞  
図５４は、図５３中のセンスアンプ７７、およびデータキャッシュ１２の等価回路例について示すものである。
【０５１２】
以下において、前記第４乃至１１の実施形態うちの複数の実施形態が共存するシステム応用例を示す。
図５５を参照して、複数の実施形態が共存するホスト装置２０００及びＮＡＮＤ型フラッシュメモリ１００の構成例を説明する。複数の実施形態を１つのシステムの中で実現する場合、ホスト装置２０００及びメモリ１００は、各々各実施形態に対応した認証に要する情報を「スロット」と呼ばれる集合内に有する。
【０５１３】
各スロットは、各実施形態に必要とされる認証に要する情報及び機能の集合体として定義される。一例として、図５５に示すシステムでは、スロットＸは第５の実施形態に必要とされる情報及び機能の集合体であり、スロットＹは第５の実施形態の変形例１のそれであり、スロットＺは第５の実施形態の変形例２のそれである。図５５では、説明のため、各スロットにおいてホスト装置２０００が必要とする認証機能を包含した機能集合体をホスト認証回路２００１として記述している。また、図５５では、説明のため、各スロットにおいてＮＡＮＤ型フラッシュメモリ１００が必要とする認証機能を包含した機能集合体をメモリ認証回路１０７´として記述している。
【０５１４】
ここで、ホスト装置２０００及びメモリ１００の間の認証において、ホスト装置２０００はスロットに割り当てられたスロット番号を指定する。すなわち、スロット番号は各認証機能及び認証に用いるデータの選択を意味しており、広義には必要とされる認証レベルによって機能選択をすることを意味する。メモリ１００は指定されたスロット番号に応じて、使用する認証に要するデータをスロット選択部３０１により選択し、また認証に要する機能に相当した処理を行う。ホスト装置２０００も、自身がスロット選択部３０１により指定したスロット番号に応じて、使用する認証に要するデータを選択し、また認証に要する機能に相当した処理を行う。
【０５１５】
このスロットという概念の導入により、必要とされる認証レベルが異なるアプリケーションにおいても、各々のアプリケーションに適した実施形態を選択することができ、また、それらを共通のスロット番号としてホスト装置２０００及びメモリ１００間で通信を行うことにより、互換性問題や認証不整合を生じることなく、さまざまな組み合わせのホスト装置２０００及びメモリ１００を運用することが容易となる。
【０５１６】
すなわち、図５５では、ホスト装置２０００はスロットＸ，Ｙ，Ｚに対応し、ＮＡＮＤ型フラッシュメモリ１００はスロットＸ，Ｙ，Ｚ及びその他のスロットに対応している例を示したが、これに限らず、ホスト装置２０００がスロットＸのみ、スロットＸ，Ｙの２つ、またはスロットＸ，Ｙ，Ｚ及びその他のスロットに対応している場合、同様にメモリ１００がスロットＸのみ、スロットＹのみ、スロットＺのみ、スロットＸ，Ｙの２つ、またはスロットＸ，Ｙ，Ｚのスロットに対応している場合にも拡張可能である。更には、ホスト装置２０００が複数種類存在する場合、例えばホスト装置２０００ＡはスロットＸのみ、ホスト装置２０００ＢはスロットＸ，Ｙに対応している場合、同様にＮＡＮＤ型フラッシュメモリ１００がスロットＸのみ、スロットＹのみに対応している場合など、この例に縛られず、さまざまな形で運用を拡張することも可能である。
【０５１７】
次に、図５６を参照してスロットの利用方法について示す。前述した通り、複数のスロットを備えることにより、１つのシステムにおいて、認証レベルが異なる複数のアプリケーションに対応することができる。図５６では複数のアプリケーションに対応させた例を示している。スロットＯ〜Ｔは各々アプリケーションＡ〜Ｇと対応関係を有している。例えば、アプリケーションＡにおける認証処理ではスロットＯが利用される。また、アプリケーションＣにおける認証処理ではスロットＰが利用される。ここで、スロットＯはアプリケーションＡに加えてアプリケーションＢとも対応関係を有している。
【０５１８】
一般にアプリケーションは様々な基準に従って分類され、利用される。図５６ではコンテンツ種別などによって分類され、スロットを割り当てられる場合を示している。一例として図５６では、コンテンツデータの内容（本、音楽、ゲームなど）に従ってアプリケーションを分類し、異なるスロットを割り当てている。
【０５１９】
一方、異なるアプリケーションであっても、何等かの理由により同一のスロットを割り当てることも可能である。例えば図５６において、アプリケーションＡはＳＤ(Standard Definition)の非プレミアム映画データであり、アプリケーションＢはＨＤ(High Definition)のプレミアム映画データである場合、同一のスロットＯを割り当てることが可能である。アプリケーションＡ，Ｂはいずれも映画のコンテンツデータに関するものであるという共通点があるので、同一のスロットを割り当てて、同一の認証機能を共用することができる。
【０５２０】
ただし、必要とされる認証機能が異なる場合がある。例えばＳＤ映画コンテンツとＨＤ映画コンテンツでは、ＨＤ映画コンテンツの方が必要とされるセキュリティーレベルが高く、必要とされる機能も多い場合がある。このような場合には、ＨＤ映画コンテンツとＳＤ映画コンテンツとに異なるスロットを割り当てることは可能である。同様にアプリケーションＣ乃至Ｅでは、各々電子書籍、音楽、ゲームなどを割り当てることができる。
【０５２１】
その他、データ保護の態様や用途に基づいて、アプリケーションの割り当て方を決定してもよい。例えば、企業内の秘匿情報の保護を目的としたアプリケーションと、個人情報の保護などを目的としたアプリケーションとがある場合に、両者に別々のスロットを割り当てることができる。
【０５２２】
また、同一カテゴリーに属する複数のアプリケーションを、データの利用態様に従って分類し、それぞれ異なるスロットを割り当てることも可能である。例えば、医療関係のデータ保護に関する複数のアプリケーションがある場合、これらを利用場所（サイト）の違い（例えば各病院、各医療現場など）で分類し、異なるスロットを割り当てることができる。管理が必要となるものなどはProprietary applicationとして分類し、各々異なるスロットを割り当てることができる。
【０５２３】
また、複数のアプリケーションが同一のスロットを共有するが、認証に要するデータや機能が異なるような運用をしてもよい。スロットは認証に要するデータ及び機能を含むと説明したが、これはすなわち市場において様々なホスト装置２０００、さまざまなＮＡＮＤ型フラッシュメモリ１００が存在した場合でも混乱なく運用することを実現できることを意味しており、逆に、各病院や各医療現場などごく限られた範囲内で運用をするなど、さまざまなホスト装置２０００、さまざまなＮＡＮＤ型フラッシュメモリ１００をそもそも想定する必要がない場合も考えられる。この場合は、医療関係という分類でスロットを割り当て、ただし同一スロット番号であっても、認証に要するデータ及び機能に複数のバリエーションがあってもよい。これらは各サイトでの運用基準に照らし合わせて対応を定めればよい。
【０５２４】
次に、図５７を参照して、スロットの大分類方法と、ホスト装置２０００及びメモリ１００への鍵割り当て方法の例を説明する。図５６の場合と同様に、スロットは各アプリケーションと対応付けて割り当てられている。
【０５２５】
ここで、割り当ては各々のホスト装置２０００及びＮＡＮＤ型フラッシュメモリ１００の製造者及び製造者間での独自の取り決めによって行うことも可能である。一方で、製造者やサービス事業者などのステークホルダーで構成される団体（例えば標準化団体）によって取り決めを行うこともできる。しかし、全てのスロットを標準化団体によって用途を定めてしまうと、ある製造者のみが利用したいアプリケーションなどにおいては、取り決めの自由度が損なわれてしまう。図５７では、ある範囲のスロットの番号（図５７では、スロット番号０乃至スロット番号Ｍ）を標準化団体によって定められたアプリケーションの標準用途領域とし、ある範囲のスロットの番号（図５７では、スロット番号Ｍ＋１乃至スロット番号Ｍ＋Ｎ）を各ステークホルダーによって任意に定められる非標準用途領域としている。これにより、共通アプリケーションにおける広範囲での互換性確保と、個別アプリケーションにおける自由度確保を両立させることができる。各々のスロットに対しては、前述の認証に要するデータ及び機能が付されている。ここで、認証に要するデータのうち、標準化団体や各製造者などによって付与・適用されるものをキーセット（Key Set）と呼ぶ。ホスト装置２０００に付与・適用されるキーセットはホストキーセット（Host Key Set）と呼び、メモリ１００に付与・適用されるキーセットはメモリキーセット（Memory Key Set）と呼ぶ。各スロットには異なる、もしくは一部スロット間では共用されるキーセットが付与・適用される。
【０５２６】
次に、図５８を参照して各キーセットの整合をとり、互換性を確保した上で配布する方法を示す。本例では、各キーセットは鍵発行／管理センタ３０００によって各々の製造者に配布され、各装置へと適用される。メモリデバイス（Memory Device）は各々複数の製造者（Ａ，Ｂ，Ｃ）によって製造され、各々必要とする認証機能範囲は異なっていてもよい。また、ホスト装置(Host Device)も複数の製造者（Ｐ，Ｑ）によって製造され、各々必要とする認証機能範囲は異なっていてもよい。本例では、メモリデバイスにおいてはある範囲のスロット番号については互換性を確保するためにいずれの製造者が製造するメモリデバイスであっても、最低限適用すべきスロット番号(最低保証スロット)と当該スロット番号が要する認証機能範囲を定めて運用する例を示している。
【０５２７】
例えば、スロット番号０乃至スロット番号Ｌは前述の第４の実施形態に対応する認証機能及び用途とし、スロット番号Ｌ＋１及至Ｌ＋４は前述の第５の実施形態に対応する認証機能及び用途とし、スロット番号Ｌ＋５乃至Ｌ＋６は前述の第５の実施形態の変形例１に対応する認証機能及び用途とし、スロット番号Ｌ＋７乃至Ｍは前述の第５の実施形態の変形例２に対応する認証機能及び用途とし、いずれのメモリデバイスもスロット番号０乃至Ｍに相当する認証機能及びKey Setを有するように構成するなどである。
【０５２８】
最低保証スロットは、主に前述の標準化団体によって定められた標準用途領域や、非標準用途領域や、もしくはその一部や、それらの組み合わせなどから構成されていてもよい。例えば、前述の例におけるスロット番号０乃至Ｍを最低保証スロットとし、このうち０乃至Ｌを標準化団体によって定められた標準用途領域として運用し、Ｌ＋１乃至Ｍを非標準用途領域として運用する。ただし、メモリデバイスが有する認証機能やKey Setについては互換性確保のために標準用途領域であっても、非標準用途領域であっても標準化団体によって定められたものとする。最低保証スロット以外の領域については、いずれのスロット番号をサポートするかは各製造者に委ねられる。例えば、図５８では、製造者Ａはスロット番号Ｍ＋１乃至スロット番号Ｍ＋Ｘをサポートし、製造者Ｂはスロット番号Ｍ＋１乃至スロット番号Ｍ＋Ｙをサポートし、製造者Ｃはスロット番号Ｍ＋１乃至スロット番号Ｍ＋Ｚをサポートしている。
【０５２９】
一方、ホスト装置においては、メモリデバイス側で最低保証スロットを定義していること、またホスト装置は通常、各々の用途別に製造されるという属性があることから、いずれのスロット番号をサポートするかは各製造者に委ねられる。ここで最低保証スロットもしくは標準用途領域のスロット番号範囲に対応するホスト装置を製造する場合、ホスト装置は全てのメモリデバイスを認証するに足るホストキーセットが付与・適用される（図５８では、製造者Ｐが製造するホスト装置）。
【０５３０】
一方で、それ以外の範囲においては、ホスト装置製造者とメモリ製造業者間の取り決めによって、限られた範囲での互換性確保で十分なアプリケーションの場合、ホスト装置は全てのメモリデバイスを認証するに足るホストキーセットではなく、特定のメモリデバイスを認証するに足るホストキーセットが付与・適用される（図５８では、製造者Ｑが製造するホスト装置）。具体的には、前述の実施例における秘密情報HKeyi,j(i=1,…,m。なお、jは当該HKeyi,jにおいては固定の値である)のうち、iが各メモリデバイスが有するNKeyiに対応している。すなわち、ホスト装置がHKeyi,j(i=1)のみを有する場合、当該ホスト装置はNKeyi(i=1)を有するメモリデバイス（例えば、製造者Ａが製造するメモリデバイス）を認証する機能のみを有するということになる。またあるいは、ホスト装置がHKeyi,j(i=3)のみを有する場合、当該ホスト装置はNKeyi(i=3)を有するメモリデバイス（例えば、製造者Ｃが製造するメモリデバイス）を認証する機能のみを有するということになる。つまり、ホスト装置が特定のメモリデバイスと認証する場合、対象のメモリデバイスのiに対応する秘密情報HKeyi,jが付与・適用される。
【０５３１】
以上、本発明のいくつかの実施の形態を説明したが、これらの実施の形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施の形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施の形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０５３２】
１０００・・・メモリカード、  ２０００・・・ホスト装置、  ３０００・・・鍵発行／管理センタ、  １００・・・メモリ、  ２００・・・コントローラ。
【図１】
2013175642.tif 000003
【図２】
2013175642.tif 000004
【図３】
2013175642.tif 000005
【図４】
2013175642.tif 000006
【図５】
2013175642.tif 000007
【図６】
2013175642.tif 000008
【図７】
2013175642.tif 000009
【図８】
2013175642.tif 000010
【図９】
2013175642.tif 000011
【図１０】
2013175642.tif 000012
【図１１】
2013175642.tif 000013
【図１２】
2013175642.tif 000014
【図１３】
2013175642.tif 000015
【図１４】
2013175642.tif 000016
【図１５】
2013175642.tif 000017
【図１６】
2013175642.tif 000018
【図１７】
2013175642.tif 000019
【図１８】
2013175642.tif 000020
【図１９】
2013175642.tif 000021
【図２０Ａ】
2013175642.tif 000022
【図２０Ｂ】
2013175642.tif 000023
【図２０Ｃ】
2013175642.tif 000024
【図２０Ｄ】
2013175642.tif 000025
【図２０Ｅ】
2013175642.tif 000026
【図２１】
2013175642.tif 000027
【図２２】
2013175642.tif 000028
【図２３】
2013175642.tif 000029
【図２４】
2013175642.tif 000030
【図２５】
2013175642.tif 000031
【図２６】
2013175642.tif 000032
【図２７】
2013175642.tif 000033
【図２８】
2013175642.tif 000034
【図２９】
2013175642.tif 000035
【図３０】
2013175642.tif 000036
【図３１】
2013175642.tif 000037
【図３２】
2013175642.tif 000038
【図３３】
2013175642.tif 000039
【図３４】
2013175642.tif 000040
【図３５】
2013175642.tif 000041
【図３６】
2013175642.tif 000042
【図３７】
2013175642.tif 000043
【図３８】
2013175642.tif 000044
【図３９】
2013175642.tif 000045
【図４０】
2013175642.tif 000046
【図４１】
2013175642.tif 000047
【図４２】
2013175642.tif 000048
【図４３】
2013175642.tif 000049
【図４４】
2013175642.tif 000050
【図４５】
2013175642.tif 000051
【図４６】
2013175642.tif 000052
【図４７】
2013175642.tif 000053
【図４８】
2013175642.tif 000054
【図４９】
2013175642.tif 000055
【図５０】
2013175642.tif 000056
【図５１】
2013175642.tif 000057
【図５２】
2013175642.tif 000058
【図５３】
2013175642.tif 000059
【図５４】
2013175642.tif 000060
【図５５】
2013175642.tif 000061
【図５６】
2013175642.tif 000062
【図５７】
2013175642.tif 000063
【図５８】
2013175642.tif 000064
【手続補正書】
【提出日】平成27年7月13日(2015.7.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
メモリデバイスであって、
少なくとも前記メモリデバイスの出荷後において、前記メモリデバイス外部からの読出し及び書き込みが禁止される第１の記憶領域と、
前記メモリデバイス外部からの読出しは許可されるが、書き込みが禁止される第２の記憶領域と、
前記メモリデバイス外部からの読出し及び書き込みが許可される第３の記憶領域と
を備え、
前記第１の記憶領域は、第１鍵情報（ＮＫｅｙ）と、識別情報（ＳｅｃｒｅｔＩＤ）を格納するための領域であり、
前記第２の記憶領域は、第２鍵情報（Ｆｋｅｙ）を用いて前記識別情報を暗号化した暗号化識別情報（Ｅ−ＳｅｃｒｅｔＩＤ）を格納するための領域であり、
前記第３の記憶領域は、前記第２鍵情報を暗号化した暗号化第２鍵情報（ＦＫＢ）を格納するための領域であり、
ホストデバイスとの認証のために、前記メモリデバイスは、
前記ホストデバイスに対し、前記暗号化第２鍵情報（ＦＫＢ）を出力し、
前記ホストデバイスに対し、前記暗号化識別情報（Ｅ−ＳｅｃｒｅｔＩＤ）を出力し、
前記ホストデバイスから受領した情報（ＨＣ）と、前記第１鍵情報を用いて、第３鍵情報（ＨＫｅｙ）を生成し、
前記ホストデバイスから受領した乱数（ＲＮ）と、前記第３鍵情報を用いて、セッション鍵（ＳＫｅｙ）を生成し、
前記セッション鍵を用いて、前記識別情報に一方向性変換処理を行い、認証情報（Ｏｎｅｗａｙ−ＩＤ）を生成し、
前記ホストデバイスに対し、前記認証情報（Ｏｎｅｗａｙ−ＩＤ）を、出力し、一方向性変換識別情報の発行条件である検証のため、前記認証情報を前記ホストデバイスにおいて生成された他の認証情報と対比させる
ように構成されていることを特徴とするメモリデバイス。
【請求項２】
メモリデバイスとコントローラとを備えるメモリシステムであって、
前記メモリデバイスは、
少なくとも前記メモリデバイスの出荷後において、前記メモリデバイス外部からの読出し及び書き込みが禁止される第１の記憶領域と、
前記メモリデバイス外部からの読出しは許可されるが、書き込みが禁止される第２の記憶領域と、
前記メモリデバイス外部からの読出し及び書き込みが許可される第３の記憶領域と
を備え、
前記第１の記憶領域は、第１鍵情報（ＮＫｅｙ）と、識別情報（ＳｅｃｒｅｔＩＤ）を格納するための領域であり、
前記第２の記憶領域は、第２鍵情報（Ｆｋｅｙ）を用いて前記識別情報を暗号化した暗号化識別情報（Ｅ−ＳｅｃｒｅｔＩＤ）を格納するための領域であり、
前記第３の記憶領域は、前記第２鍵情報を暗号化した暗号化第２鍵情報（ＦＫＢ）を格納するための領域であり、
ホストデバイスとの認証のために、前記メモリデバイスは、
前記ホストデバイスに対し、前記暗号化第２鍵情報（ＦＫＢ）を出力し、
前記ホストデバイスに対し、前記暗号化識別情報（Ｅ−ＳｅｃｒｅｔＩＤ）を出力し、
前記ホストデバイスから受領した情報（ＨＣ）と、前記第１鍵情報を用いて、第３鍵情報（ＨＫｅｙ）を生成し、
前記ホストデバイスから受領した乱数（ＲＮ）と、前記第３鍵情報を用いて、セッション鍵（ＳＫｅｙ）を生成し、
前記セッション鍵を用いて、前記識別情報に一方向性変換処理を行い、認証情報（Ｏｎｅｗａｙ−ＩＤ）を生成し、
前記ホストデバイスに対し、前記認証情報（Ｏｎｅｗａｙ−ＩＤ）を、出力し、一方向性変換識別情報の発行条件である検証のため、前記認証情報を前記ホストデバイスにおいて生成された他の認証情報と対比させ、
前記メモリデバイスは、更に
第３鍵情報を生成するための第１の処理部と、
セッション鍵を生成するための第２の処理部と
を備え、
前記メモリデバイスは第１の製造者が製造し、
前記コントローラは、第２の製造者が製造し、
前記メモリシステムは、第３の製造者が製造する
ことを特徴とするメモリシステム。
【国際調査報告】
2013175642.tif 000065
2013175642.tif 000066
2013175642.tif 000067
2013175642.tif 000068