(57)【特許請求の範囲】
【請求項１】
コントローラと、該コントローラによりコントロールされるメモリ装置とを含むストレージメディアであって、
前記メモリ装置は、
第１鍵情報及び前記メモリ装置固有に割り当てられた第１識別情報が格納されるとともに前記メモリ装置外からのリードが制限される第１領域と、前記第１識別情報が暗号化されて生成された暗号化第１識別情報が格納されるとともにリーダブルな第２領域と、鍵管理情報が格納されるとともにリーダブル及びライタブルとされる第３領域と、を有し、
前記コントローラは、
外部装置からの前記鍵管理情報のリードコマンドを受けた場合、前記第３領域から前記鍵管理情報をリードするとともに該鍵管理情報を前記外部装置に送り、
前記外部装置からの前記暗号化第１識別情報のリードコマンドを受けた場合、前記第２領域から前記暗号化第１識別情報をリードするとともに該暗号化第１識別情報を前記外部装置に送り、
前記外部装置からの認証情報を得るためのコマンドを受けた場合、前記外部装置から受けた該外部装置に割り当てられた第２識別情報を前記メモリ装置に送り、
前記メモリ装置は、
前記第１鍵情報と、前記外部装置から送信されるインデックス情報とを用いてインデックス鍵を生成し、
前記インデックス鍵を用いて、前記外部装置から送信される暗号化された管理鍵情報を復号し、
復号した管理鍵情報を前記外部装置に送信し、
前記第１鍵情報と、前記第２識別情報とを用いて暗号化処理を行うことにより、第２鍵情報を生成し、
前記第２鍵情報と前記外部装置から受けた乱数情報とを用いて暗号化処理を行うことにより、第３鍵情報を生成し、
前記第３鍵情報と前記第１識別情報とを用いて一方向性変換処理を行うことにより、前記認証情報を生成し、該認証情報を前記外部装置に送り、前記外部装置に認証されるように構成されたストレージメディア。
【請求項２】
メモリ装置固有に割り当てられた第１識別情報が格納されるとともにリードが制限される第１領域と、前記第１識別情報が暗号化されて生成された暗号化第１識別情報が格納されるとともにリーダブルな第２領域と、リーダブル及びライタブルとされる第３領域とが設けられ、外部のコントローラによりコントロールされるメモリ装置との間で認証処理を実行可能なホスト装置であって、
前記ホスト装置は、
秘匿される第１鍵情報と、セットとして記録されるとともに前記ホスト装置に割り当てられた第２識別情報としての第２鍵情報と、第１インデックス情報とを有し、
前記コントローラに前記第２領域から前記暗号化第１識別情報をリードさせるとともに、前記第３領域から鍵管理情報をリードさせ、前記第１鍵情報を用いた処理により得た情報によって、前記暗号化第１識別情報を復号し、
前記リードされた鍵管理情報及び前記第１インデックス情報を用いて、前記第１鍵情報から復号可能な暗号化された管理鍵情報を取得し、選択した前記鍵管理情報の記録位置を示す前記第１インデックス情報と前記暗号化された管理鍵情報とを、前記メモリ装置に送信し、
前記コントローラに前記メモリ装置におけるリーダブルな前記第３領域から第２インデックス情報をリードさせ、前記セットの中から、該第２インデックス情報に対応する前記第２鍵情報を選び、
前記コントローラに認証情報を得るためのコマンドと、乱数情報と、前記ホスト装置に割り当てられた第３識別情報とを送り、
前記コントローラを介して、前記メモリ装置で計算された前記管理鍵情報を受け、
前記選ばれた第２鍵情報を用いて前記乱数情報を暗号化することにより第３鍵情報を生成し、
前記第３鍵情報と、前記暗号化第１識別情報が復号されて新たに生成された第１識別情報とを入力値とした一方向性変換処理を行い、検証情報を生成するように構成されたホスト装置。
【請求項３】
外部のコントローラによりコントロールされるメモリ装置であって、
第１鍵情報と、前記メモリ装置固有に割り当てられた第１識別情報とが格納され、前記コントローラによるリードが制限される第１領域と、
前記第１識別情報が暗号化されて生成された暗号化第１識別情報が格納されたリーダブルな第２領域と、
鍵管理情報が格納されたリーダブル及びライタブルな第３領域と、
が設けられ、
前記第１鍵情報と、外部装置から送信されるインデックス情報とを用いてインデックス鍵を生成し、
前記インデックス鍵を用いて、前記外部装置から送信される暗号化された管理鍵情報を復号し、
復号した管理鍵情報を前記外部装置に送信し、
前記鍵管理情報及び前記暗号化第１識別情報は、前記外部装置からのコマンドに伴い、前記コントローラを介して前記メモリ装置からリードされ、
前記外部装置から該外部装置に割り当てられた第２識別情報と、乱数情報とを前記コントローラを介して受け、
前記第１鍵情報と、前記第２識別情報とを用いて暗号化処理を行うことにより、第２鍵情報を生成し、
前記第２鍵情報と前記乱数情報とを用いて暗号化処理を行うことにより、第３鍵情報を生成し、
前記第３鍵情報と前記第１識別情報とを用いて一方向性変換処理を行うことにより、前記外部装置との認証に用いられる認証情報を生成し、該認証情報を前記外部装置に送り、前記外部装置に認証されるように構成されたメモリ装置。
【請求項４】
外部のコントローラによりコントロールされるメモリ装置と、該メモリ装置との間で認証処理を実行可能なホスト装置とを含むシステムであって、
前記メモリ装置は、
第１鍵情報と、前記メモリ装置固有に割り当てられた第１識別情報とが格納され、前記メモリ装置外からのリードが制限される第１領域と、
前記第１識別情報が暗号化されて生成された暗号化第１識別情報が格納されたリード可能な第２領域と、
鍵管理情報が格納されたリーダブル及びライタブルな第３領域と、
を備え、前記メモリ装置は、
前記第１鍵情報と、前記ホスト装置から送信されるインデックス情報とを用いてインデックス鍵を生成し、
前記インデックス鍵を用いて、前記ホスト装置から送信される暗号化された管理鍵情報を復号し、
復号した管理鍵情報を前記ホスト装置に送信し、
前記鍵管理情報及び前記暗号化第１識別情報は、前記ホスト装置からのコマンドに伴い、前記コントローラを介して前記メモリ装置からリードされ、
前記ホスト装置から該ホスト装置に割り当てられた第２識別情報と、乱数情報とを前記コントローラを介して受け、
前記第１鍵情報と、前記第２識別情報とを用いて暗号化処理を行うことにより、第２鍵情報を生成し、
前記第２鍵情報と前記乱数情報とを用いて暗号化処理を行うことにより、第３鍵情報を生成し、
前記第３鍵情報と前記第１識別情報とを用いて一方向性変換処理を行うことにより、前記ホスト装置との認証に用いられる認証情報を生成し、該認証情報を前記ホスト装置に送り、前記ホスト装置に認証されるように構成され、
前記ホスト装置は、
秘匿される第１ホスト鍵情報と、前記ホスト装置に割り当てられた前記第２識別情報と、前記インデックス情報とを有し、
前記第２領域に格納された前記暗号化第１識別情報をリードし、前記第３領域に格納された前記鍵管理情報をリードし、前記第１ホスト鍵情報を用いた処理により得た情報によって、前記暗号化第１識別情報を復号し、
前記リードされた鍵管理情報及び前記インデックス情報を用いて、前記第１鍵情報から復号可能な暗号化された管理鍵情報を取得し、選択した前記鍵管理情報の記録位置を示す前記インデックス情報と前記暗号化された管理鍵情報とを、前記メモリ装置に送信し、
前記乱数情報を暗号化することにより前記第３鍵情報を生成し、
前記第３鍵情報と、前記暗号化第１識別情報が復号されて新たに生成された第１識別情報とを入力値とした一方向性変換処理を行い、検証情報を生成するように構成されたシステム。
【請求項５】
コントローラと、該コントローラによりコントロールされるメモリ装置とを含むストレージメディアと、該ストレージメディアとの間で認証処理を実行可能なホスト装置とを含むシステムであって、
前記メモリ装置は、
第１鍵情報と、前記メモリ装置固有に割り当てられた第１識別情報とが格納され、リードが制限される第１領域と、
前記第１識別情報が暗号化されて生成された暗号化第１識別情報が格納されたリーダブルな第２領域と、
鍵管理情報が格納されたリーダブル及びライタブルな第３領域と、
を備え、前記ホスト装置は、
秘匿される第１ホスト鍵情報と、前記ホスト装置に割り当てられた第２識別情報と、第１インデックス情報と
を備え、前記コントローラは、
前記リーダブルな領域から、第２インデックス情報、前記鍵管理情報、及び前記暗号化第１識別情報をリードするとともに前記ホスト装置に送り、
前記ホスト装置から、該ホスト装置に割り当てられた第２識別情報と、乱数情報とを受けるとともに前記メモリ装置に送り、
前記メモリ装置は、
前記第１鍵情報と、前記ホスト装置から送信される第１インデックス情報とを用いてインデックス鍵を生成し、
前記インデックス鍵を用いて、前記ホスト装置から送信される暗号化された管理鍵情報を復号し、
復号した管理鍵情報を前記ホスト装置に送信し、
前記第１鍵情報と、前記第２識別情報とを用いて暗号化処理を行うことにより、第２鍵情報を生成し、
前記第２鍵情報と前記乱数情報とを用いて暗号化処理を行うことにより、第３鍵情報を生成し、
前記第３鍵情報と前記第１識別情報とを用いて一方向性変換処理を行うことにより、前記ホスト装置との認証に用いられる認証情報を生成し、該認証情報を前記ホスト装置に送り、前記ホスト装置に認証されるように構成され、
前記ホスト装置は、
前記第２領域に格納された前記暗号化第１識別情報をリードし、前記第１ホスト鍵情報を用いた処理により得た情報によって、前記暗号化第１識別情報を復号し、
前記リードされた鍵管理情報及び前記第１インデックス情報を用いて、前記第１鍵情報から復号可能な前記暗号化された管理鍵情報を取得し、選択した前記鍵管理情報の記録位置を示す前記第１インデックス情報と前記暗号化された管理鍵情報とを、前記メモリ装置に送信し、
前記乱数情報を暗号化することにより前記第３鍵情報を生成し、
前記第３鍵情報と、前記暗号化第１識別情報が復号されて新たに生成された第１識別情報とを入力値とした一方向性変換処理を行い、検証情報を生成するように構成されたシステム。
【請求項６】
請求項２の記載において、前記メモリ装置から送られた前記管理鍵情報を用いて前記暗号化第１識別情報を復号し、
前記検証情報と、前記メモリ装置で一方向性変換処理を行うことにより生成された認証情報とが一致するか否か検証する、ホスト装置。
【請求項７】
請求項４または５において、前記メモリ装置から送られた前記管理鍵情報を用いて前記暗号化第１識別情報を復号し、
前記検証情報と、前記メモリ装置で一方向性変換処理を行うことにより生成された認証情報とが一致するか否か検証する、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
ホスト装置、半導体記憶装置、およびその認証方法に関するものである。
【背景技術】
【０００２】
一般に、情報セキュリティを要する分野において、自己の正当性を証明する手段として互いに共有した秘密情報と暗号器を用いた手法が採られている。
【０００３】
例えば、電子決済に用いるICカード（SmartCard）等では、カード内のICには当該ICカードを個別化するためのID及び秘密情報が保持されており、更にICカードは、ID及び秘密情報に基づく認証を行うための暗号処理機能を有している。
【０００４】
別の例では、コンテンツの著作権保護において、SD（登録商標）カードの正当性を証明する手段としてはContent Protection for Recordable Media（CPRM）において認証方式が規定されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−２２５０６２号公報
【非特許文献】
【０００６】
【非特許文献１】Content Protection for Recordable Media (CPRM), http://www.4centity.com/
【非特許文献２】Media Identifier Management Technology (MIMT), http://www.4ecntity.com/
【非特許文献３】D. Naor, M. Naor and J. Lotspiech, “Revocation and Tracing Schemes for Stateless Receivers,” Proc. CRYPTO 2001, LNCS 2139, Springer-Verlag, pp. 41-62, 2001
【発明の概要】
【発明が解決しようとする課題】
【０００７】
秘密情報の不正利用の防止に有利なストレージメディア、ホスト装置、メモリ装置、及びシステムを提供する。
【課題を解決するための手段】
【０００８】
実施形態のストレージメディアによれば、コントローラと、該コントローラによりコントロールされるメモリ装置とを含むストレージメディアであって、前記メモリ装置は、第１鍵情報及び前記メモリ装置に固有に割り当てられた第１識別情報が格納されるとともに前記メモリ装置外からのリードが制限される第１領域と、前記第１識別情報が暗号化されて生成された暗号化第１識別情報が格納されるとともにリーダブルな第２領域と、鍵管理情報が格納されるとともにリーダブル及びライタブルとされる第３領域と、を有し、前記コントローラは、外部装置からの前記鍵管理情報のリードコマンドを受けた場合、前記第３領域から前記鍵管理情報をリードするとともに該鍵管理情報を前記外部装置に送り、前記外部装置からの前記暗号化第１識別情報のリードコマンドを受けた場合、前記第２領域から前記暗号化第１識別情報をリードするとともに該暗号化第１識別情報を前記外部装置に送り、前記外部装置からの認証情報を得るためのコマンドを受けた場合、前記外部装置から受けた該外部装置に割り当てられた第２識別情報を前記メモリ装置に送り、前記メモリ装置は、前記第１鍵情報と、前記第２識別情報とを用いて暗号化処理を行うことにより、第２鍵情報を生成し、前記第２鍵情報と前記外部装置から受けた乱数情報とを用いて暗号化処理を行うことにより、第３鍵情報を生成し、前記第３鍵情報と前記第１識別情報とを用いて一方向性変換処理を行うことにより、前記認証情報を生成し、該認証情報と秘匿鍵情報を得るためのデータとを前記外部装置に送り、前記外部装置に認証されるように構成される。
【図面の簡単な説明】
【０００９】
【図１】第１の実施形態に係るメモリシステムの構成例を示すブロック図。
【図２】データ記憶場所のその他の例を示す図。
【図３】図１中のFKB復号部２２の構成例を示すブロック図。
【図４】第１の実施形態に係るメモリシステムの認証フローを示すフロー図。
【図５】第１の実施形態に係る暗号化FKey束（FKB）の構成例を示す図。
【図６】変形例１に係るメモリシステムの構成例を示すブロック図。
【図７】変形例１に係るメモリシステムの認証フローを示すフロー図。
【図８】変形例１に係る暗号化FKey束（FKB）の構成例を示す図。
【図９】第２の実施形態に係るメモリシステムの構成例を示すブロック図。
【図１０】第２の実施形態に係るメモリシステムの認証フローを示すフロー図。
【図１１】第２の実施形態に係る暗号化FKey束（FKB）の構成例を示す図。
【図１２】変形例２に係るメモリシステムの構成例を示すブロック図。
【図１３】変形例２に係るメモリシステムの認証フローを示すフロー図。
【図１４】変形例２に係る暗号化FKey束（FKB）の構成例を示す図。
【図１５】第３の実施形態に係るメモリシステムの構成例を示すブロック図。
【図１６】第３の実施形態に係るメモリシステムの認証フローを示すフロー図。
【図１７】変形例３に係るメモリシステムの構成例を示すブロック図。
【図１８】変形例３に係るメモリシステムの認証フローを示すフロー図。
【図１９】第４の実施形態に係るＮＡＮＤ製造者による秘密情報の書き込み処理を例示する図。
【図２０】第４の実施形態に係るカード製造者によるFKBの書き込み処理を例示する図。
【図２１】第４の実施形態に係る販売時にFKBが未記録の場合のカードを例示する図。
【図２２】第４の実施形態に係るFKBをダウンロードするシステムを示すブロック図。
【図２３】第４の実施形態に係るFKBをダウンロードするフローを示すフロー図。
【図２４】第５の実施形態に係るメモリシステムの構成例を示すブロック図。
【図２５】第５の実施形態に係るメモリシステムの認証フローを示すフロー図。
【図２６】第５の実施形態に係るＮＡＮＤ製造者による秘密情報の書き込み処理を例示する図。
【図２７】第６の実施形態に係るＮＡＮＤ型フラッシュメモリの構成例を示すブロック図。
【図２８】図２７中のＮＡＮＤ型フラッシュメモリの一ブロックの構成例を示す等価回路図。
【発明を実施するための形態】
【００１０】
以下、実施形態について図面を参照して説明する。この説明においては、ホスト装置、半導体記憶装置、およびその認証方法として、メモリシステムを一例に挙げるが、これに限られることはない。尚、この説明においては、全図にわたり共通の部分には共通の参照符号を付す。
【００１１】
［第１の実施形態］  
第１の実施形態に係るホスト装置、半導体記憶装置、およびその認証方法について説明する。
【００１２】
＜１．構成例（メモリシステム）＞  
まず、図１を用い、第１の実施形態に係るメモリシステムの構成例について説明する。
【００１３】
図示するように、第１の実施形態に係るメモリシステムは、被認証装置であるＮＡＮＤ型フラッシュメモリ１０、認証装置であるホスト装置２０、および両者を仲介するコントローラ１９を備える。ホスト装置２０は、コントローラ１９を介して、ＮＡＮＤ型フラッシュメモリ１０にアクセスする。
【００１４】
ここで、ＮＡＮＤ型フラッシュメモリ１０等の半導体製品の製造工程について、簡単に説明する。半導体製品の製造工程は、主に基盤ウエハー上に回路を形成する前工程と、前期ウエハーを個片に切り分けた後、配線や樹脂パッケージ封入などを行う後工程に分けられる。ここで、コントローラ１９は、前工程においてＮＡＮＤ型フラッシュメモリ１０内に包含されるよう構成される場合、前工程においては包含されないが後工程において同一パッケージに包含されるように構成される場合、ＮＡＮＤ型フラッシュメモリ１０とは異なるチップの形態をとる場合、など様々な場合がある。図１を含め、以下では、コントローラ１９は、ＮＡＮＤ型フラッシュメモリ１０とは異なるチップの形態を採る場合を例にとっている。以下、特に断りのない限り、ホスト装置２０とＮＡＮＤ型フラッシュメモリ１０間のデータや命令のやり取りにおいては、多くの場合コントローラ１９が仲介するものである。この場合でもコントローラ１９は、前述のデータや命令の本質的内容を変えることはないため、詳細については、省略して説明する場合がある。なお、ＮＡＮＤ型フラッシュメモリ１０およびコントローラ１９の構成例の詳細な説明については、後述する。
【００１５】
なお、ホスト装置２０は、民生機器のように専用ハードウェアで構成される場合、専用ハードウェアとそれを動作させるファームウェアの組み合わせで構成される場合だけでなく、装置の機能がPC上で動作するソフトウェアプログラムで構成される場合も考えられる。
【００１６】
以下において、図１に示す各コンポーネント、データ処理について、説明する。本例では、被認証装置であるＮＡＮＤ型フラッシュメモリ１０に記録されている秘密識別情報であるSecretIDを第３者から秘匿した状態で読み出すと共に、前述の被認証装置１０から読み出されたデータであることを確実に確認する方法、及び同方法をＮＡＮＤ型フラッシュメモリ１０に適用する場合の構成例を示すものである。
【００１７】
１−１．ＮＡＮＤ型フラッシュメモリ（半導体記憶装置）  
ＮＡＮＤ型フラッシュメモリ１０は、上記のように本例では、被認証装置である。  
図示するように、本例に係るＮＡＮＤ型フラッシュメモリ１０は、セルアレイ１１、及びセルアレイ１１の周辺領域に配置されるデータキャッシュ１２Ａ、１２Ｂ、１２Ｃ、および認証回路１７を備える。
【００１８】
セルアレイ（Cell array）１１は、外部からの読み出し／書き込みが可能な領域（Read/Write area）１１−１、外部からの読み出し／書き込みが禁止された秘匿領域（Hidden area）１１−２、外部からの書き込みが禁止されたROM領域（ROM area）１１−３等を備える。
【００１９】
読み書き可能領域（Read/Write area）１１−１は、データ記録及びデータ読み出しのいずれもＮＡＮＤ型フラッシュメモリ１０の外部から可能な領域である。読み書き可能領域１１−１には、FKeyvを秘匿するために用意された多重暗号化FKey束である鍵管理情報FKBv（Family Key Block）および秘密情報NKeyiを示すためのインデックス情報i（index of NKey）が記録される。鍵管理情報FKBvは、ＮＡＮＤ型フラッシュメモリ１０に記録される他のデータとは異なり、ＮＡＮＤ型フラッシュメモリ１０の製造時だけでなく、例えばＳＤ Ｃａｒd（登録商標）の様にＮＡＮＤ型フラッシュメモリ１０にコントローラを結合させて一般ユーザ向けのストレージメディアを製造する段階や、或いは前記ストレージメディアを販売後にユーザの要求に従ってサーバからダウンロードして記録するように構成することも可能である。詳細については、後述する。
【００２０】
ここで、鍵管理情報（FKBv）とは、ホスト２０が保持する秘密情報である識別鍵情報（IDKeyk、これについては後述する）と、当該識別鍵情報（IDKeyk）の識別情報（k）又は当該ホスト２０の識別情報とを用いて、第１段目の復号処理を行った上で、更に当該ＮＡＮＤフラッシュメモリに秘匿されている秘密鍵情報NKeyを用いて第２段目の復号処理を行うことによって秘匿情報（FKeyv）を復号できるようにするために用意された暗号化データである。なお、FKBの復号処理に識別情報（k）を用いる場合には、当該識別情報（k）の構成方法に依存して、当該識別情報（k）全体を用いるだけでなく、その一部を用いる場合も考えられる。例えば、製造工程に合わせてＮＡＮＤ型フラッシュメモリ１０毎にユニークに用意するだけでなく、ＮＡＮＤ型フラッシュメモリ１０の製造ロット（lot）単位など、複数のＮＡＮＤ型フラッシュメモリ１０に共通に用意すること等も可能な鍵管理情報である。また、鍵管理情報（FKBv）のインデックス情報vは、FKBvの識別情報又はバージョン番号情報であっても良い。
【００２１】
秘匿領域（Hidden area）１１−２は、ＮＡＮＤ型フラッシュメモリ１０の外部に対してはデータ記録だけでなく、データ読み出しも禁止される領域（Read/Program inhibit）である。本例に係る秘匿領域１１−２には、上記認証においてＮＡＮＤ型フラッシュメモリ１０が用いる秘密鍵情報NKeyiおよびＮＡＮＤ型フラッシュメモリ１０の秘密識別情報SecretIDが記録される。
【００２２】
ROM領域（ROM area）１１−３は、外部からのデータ記録が禁止され、データ読み出しが許可される領域である。本例に係るROM領域１１−３には、インデックスvで指定されたFKeyvによって暗号化された秘密識別情報SecretID（E-SecretID）および読み書き可能領域１１−１に記録される鍵管理情報であるFKBvによって秘匿されているFKeyvを示すためのインデックス情報v（index of FKey）が記録される。本例では、インデックスiやインデックスvを記録する際にデータに誤りが生じてしまった場合でも、正しい識別情報が読み出せるようにするために、一般的には誤り訂正符号化された状態で記録される。しかし、ここでは、これを省略し、誤り訂正符号化／復号処理については特に図示しない。
【００２３】
暗号化された秘密識別情報（E-SecretID）とは、ＮＡＮＤ型フラッシュメモリチップ１０ごとに固有に（ユニークに）付される秘密識別情報（SecretID）を暗号化したデータである。或いは、ＮＡＮＤ型フラッシュメモリに予めコンテンツを記録して販売する様なプリレコ（事前記録）コンテンツ配布用途に使う場合には、同じコンテンツデータを記録する際には敢えて同じ秘密識別情報（SecretID）を暗号化した暗号化秘密識別情報（E-SecretID）を記録するなど、用途に合わせて同じ暗号化秘密識別情報を複数のＮＡＮＤ型フラッシュメモリに記録することも可能である。
【００２４】
なお、読み書き可能領域１１−１とROM領域１１−３に記録されている情報は、実施例説明の為に便宜的に記録領域を指定しているが、実際にはＮＡＮＤ製造やホスト装置からの読み出し時の利便性、外部からの書き換え防止の必要性などを考慮して、必要に応じてどちらの領域に書き込むかを決定することが可能である。詳細については、後述する。
【００２５】
データキャッシュ（Data Cache）１２Ａ、１２Ｂ、１２Ｃは、セルアレイ１１から読み出したデータを一時的に記憶する。
【００２６】
認証回路１７は、データ生成部（Generate）１３、１４、１６、暗号化部（Encrypt）１０１、復号部（Decrypt）１００、１０３、一方向性変換部（Oneway）１５を備える。
【００２７】
データ生成部（Generate）１３、１４、１６は、複数の入力データから予め定められた演算によって出力データを生成する回路である。
【００２８】
データ生成部１３は、ホスト装置２０から受信した元情報（HCj）を前述の秘密情報NKeyiを用いて変換することでHKeyi、jを生成する。
【００２９】
データ生成部１４は、ホスト装置２０から受信した乱数RNhを前記HKeyi、jを用いて変換することで、セッション鍵SKeyi、jを生成する。
【００３０】
データ生成部（Generate 2）１６は、ホスト装置２０がFKBから選択した多重（2重）暗号化管理鍵（EE-FKey）のレコードを示すインデックス情報kを、秘密情報NKeyiを用いて変換することでインデックス鍵（INKk）を生成する。
【００３１】
上記３つのデータ生成部１３、１４、１６は、例えば、全体の回路規模を小さくするために一方向性変換部１５と同じ或いは一方向性変換部１５を流用した回路やAES（Advanced Encryption Standard）暗号化器などを用いることも可能である。同様にデータ処理手順を分かり易くするために異なる構成要素として図示されている2つのデータ生成部１３、１４は、同じ回路を繰り返し利用することが可能である。同様の理由で，データ生成部１６も他の2つのデータ生成部１３、１４と同じ回路を繰り返し利用することも可能である。
【００３２】
復号部（Decrypt）は、暗号化された入力データを別途入力された鍵データによって復号する回路である。本実施例では、復号部（Decrypt）１００は、セッション鍵SKeyi, jによって暗号化された上でホスト装置２０から送られてきた暗号化データEnc (SKeyi, j, E-FKeyv,k)を、生成した上記セッション鍵SKeyi, jを用いて復号する。
【００３３】
復号部１０３は、セッション鍵SKeyi, jを用いて復号することによって得られた暗号化された管理鍵情報（E-FKeyv,k)を、生成部１６により生成されるインデックス鍵（INKk）を用いて、更に復号する。
【００３４】
暗号化部（Encrypt）は、入力データを別途入力された鍵データによって暗号化する回路である。本実施例では、暗号化部（Encrypt）１０１は、ホスト装置２０に管理鍵情報（FKeyv,k)を送付する際に、セッション鍵SKeyi, jを用いて暗号化する。
【００３５】
一方向性変換部（Oneway）１５は、入力されたデータと別途入力された鍵データとに一方向性の変換を施し、一方向性変換された入力データを出力する回路である。本実施例では、一方向性変換部（Oneway）１５は、秘匿領域１１−２から読み出した秘密識別情報（SecretID）をデータ生成部１４によって生成されたセッション鍵データSKeyi、jを用いて一方向性関数により変換し、一方向性変換識別情報Oneway-ID (= Oneway(SKeyi、j、 SecretID))を生成する。また、前述の通り、メモリシステム全体のハードウェア回路規模を小さくするために、一方向性変換部１５を前記データ生成部１４等としても使用することも可能である。
【００３６】
また、図示しないが、コントローラ１９を介してホスト装置２０に送付されるデータを出力する出力部なども必要に応じて、構成要素として配置されても良い。
【００３７】
１−２．ホスト装置  
図示するように、本例に係るホスト装置（Host）２０は、復号部（Decrypt）２１、２００１、FKB復号部（Process FKB）２２、メモリ（Memory）２３、乱数生成部（RNG）２４、選択部（Select 2）２５、データ生成部（Generate）２６、暗号化部（Encrypt）２００、一方向性変換部（Oneway）２７、及びデータ検証部（Verify）２８等を備える。この他、例えば、図示しない誤り訂正処理部なども必要に応じて構成要素として備えることが可能である。
【００３８】
復号部（Decrypt）２１は、ＮＡＮＤ型フラッシュメモリ１０から入力されたデータ(E-SecretID)を、復号部２０１から出力される管理鍵FKeyvで復号し、復号された秘密識別情報SecretIDを出力する。
【００３９】
復号部（Decrypt）２０１は、データ生成部２６から生成されるセッション鍵SKeyi, jを用いて、ＮＡＮＤ型フラッシュメモリ１０から受信した暗号化管理鍵（E-FKeyv）を復号して、管理鍵FKeyvを得る。
【００４０】
FKB復号部（Process FKB）２２は、ＮＡＮＤ型フラッシュメモリ１０から送信される鍵管理情報（FKBv）、およびメモリ２３に秘匿されている識別鍵情報IDKeyk、識別鍵情報IDKeykのインデックス情報kを用い、多重（2重）暗号化された管理鍵EE-FKeyv, kに第１段目の復号処理を施す。
【００４１】
メモリ２３は、インデックス情報k、識別鍵情報IDKeyk、秘密鍵情報セットHKeyi、j (i=1、…、m。尚、jは当該HKeyi、jにおいては固定の値である)、およびホスト定数HCjを記憶する。ここで、少なくとも識別鍵情報IDKeykおよび秘密鍵情報セットHKeyi、j (i=1、…、m)は、ホスト装置２０の外部から秘匿される。ホスト定数（または元情報）HCjとは、認証要求（Request authentication）時にＮＡＮＤ型フラッシュメモリ１０に送付するために予め保持しているホスト装置２０の定数をいう。詳細については、後述する。
【００４２】
乱数生成部（RNG: Random Number Generator）２４は、認証に用いる乱数RNhを生成する。
【００４３】
データ選択部（Select2）２５は、ＮＡＮＤ型フラッシュメモリ１０のデータキャッシュ１２Ｃから読み出した秘密情報NKeyiのインデックス情報iを用いて、当該ホスト装置２０が秘匿している秘密情報セットHKeyi、j (i=1、…、m。尚、jは当該HKeyi、jにおいては固定の値である)から、ＮＡＮＤ型フラッシュメモリ１０との認証処理に必要な秘密情報HKeyi、jを選択する。
【００４４】
データ生成部（Generate）２６は、複数の入力データから予め定められた演算によって出力データを生成する演算部である。本例では、データ生成部２６は、当該ホスト装置２０自身が生成した乱数RNhを当該ホスト装置２０が秘匿している秘密情報HKeyi、jを用いて変換することで、セッション鍵SKeyi、jを生成する。例えば、データ生成部２６は、上記AES暗号化演算などを用いることも可能である。
【００４５】
暗号化部（Encrypt）２００は、上記生成されたセッション鍵SKeyi, jを用いて、FKB復号部２２で第１段目の復号処理が施された暗号化管理鍵（E-FKeyv, k）を暗号化し、2重暗号化データEnc (SKeyi, j, E-FKeyv,k)として、ＮＡＮＤ型フラッシュメモリ１０に送信する。
【００４６】
一方向変換部（Oneway）２７は、復号部２１から出力されるSecretIDを、データ生成部２６から出力されるセッション鍵SKeyi、jを用いて一方向性関数により変換し、一方向性変換識別情報Oneway-IDを生成する。
【００４７】
ここで、上記識別鍵情報IDKeyk、HKeyi、jは、例えば、民生機器であれば内部の専用メモリにメーカ独自の方法で暗号化した上で記録されていたり、ソフトウェアプログラムであればタンパーレジスタントソフトウェア（TRS）技術によって不正な解析から保護できる状態で保持していたり、或いはセキュリティモジュールを内蔵している場合には当該セキュリティモジュールの機能を利用して秘匿するなどの対策を採った状態等で秘匿される。
【００４８】
データ検証部（Verify）２８は、ＮＡＮＤ型フラッシュメモリ１０から受信した一方向性変換識別情報Oneway-IDと、ホスト装置２０内の一方向性変換部２７から得られた一方向性変換識別情報Oneway-IDとが一致するか否かを比較して判定する。上記一方向性変換識別情報Oneway-IDの両方の値が一致した場合（OK）には、復号部２１で得られた前記SecretIDが正しいSecretIDであると判定して、得られたSecretIDを以降の処理に引き渡す。一方、不一致の場合（NG）には、前記SecretIDが不正なIDであると判定し、その旨を以降の処理に出力する。
【００４９】
なお、コントローラ（Controller）１９は、ＮＡＮＤ型フラッシュメモリ１０を制御して、ホスト装置２０との間のデータ転送等を行う。詳細については、後述する。
【００５０】
また、メモリシステムの構成例は、上記説明したものに限られない。例えば、図示しない誤り訂正処理部等のその他の構成要素も必要に応じて備えることが可能である。
【００５１】
１−３．データ記憶場所について  
暗号化された秘密識別情報（E-SecretID）が記憶されるセルアレイ１１の場所は、上記の場合に限られず、例えば、図２のように示される。
【００５２】
例１に示すように、暗号化された秘密鍵情報（E-SecretID）を、ROM領域１１−３でなく、読み書き可能領域１１−１に記憶させることも可能である。
【００５３】
例２に示すように、暗号化された秘密識別情報（E-SecretID）を読み書き可能領域１１−１に、秘密情報NKeyiを示すためのインデックス情報ｉ（index of NKey）をROM領域に記憶させることも可能である。
【００５４】
このように、秘匿領域１１−２に記憶させる情報は、秘匿性が高い情報であるため他の領域に書き込むことは望ましくない。しかしながら、その他の情報は、例えば、製造時のデータ書き込み工程や、データの利用時の利便性等を考慮して、必要に応じて、読み書き可能領域１１−１やROM領域１１−３のいずれかに書き込むことが可能である。
【００５５】
１−４．FKB復号部（Process FKB）２２について  
図１で示したFKB復号部２２は、より具体的には、図３の示す構成でも良い。図示するように、FKB復号部２２は、データ選択部（Select1）２１−１および復号部（Decrypt）２２−２を備える。
【００５６】
第１段目のデータ選択部（Select1）２１−１は、ＮＡＮＤ型フラッシュメモリ１０から読み出した多重暗号化管理鍵（FKeyv）束（FKBv）からメモリ２３に記憶されるインデックス情報kを用いてメモリ２３に秘匿されている識別鍵情報によって復号可能なデータを選択して、復号部２２−２に出力する。
【００５７】
復号部（Decrypt）２２−２は、メモリ２３によりホスト２０が秘匿している識別鍵情報IDKeykを用いて、データ選択部２２−１において選択された多重（本例では、２重）管理鍵EE-FKeyvを復号して暗号化管理鍵E-FKeyv, kを得る。換言すると、復号部２２−２は、第１段目の復号処理を施すものである。
【００５８】
＜２．認証フロー＞  
次に、図４に沿って、第１の実施形態に係るメモリシステムの認証フローについて説明する。図示するように、本例の認証フローは、大別すると４つのステップ群ＳＴ１〜ＳＴ４により構成される。
【００５９】
（Step Ｓ１１）  
認証を開始すると、ホスト装置２０は、ＮＡＮＤ型フラッシュメモリ１０から鍵管理情報である多重（本例では、２重）暗号化管理鍵（FKey）束（FKB: Family Key Block）および暗号化SecretID（E-SecretID）を読み出す。
【００６０】
（Step Ｓ１２）  
続いて、ホスト装置２０は、読み出したFKBからデータ選択部（Select1）２１−１によりデータ選択処理を行い、ホスト装置２０が復号可能な多重暗号化管理鍵EE-FKeyvを読み出すと共に、秘匿している識別鍵情報IDKeykおよびインデックス情報kを用いて上記復号処理部２１−２により復号することにより暗号化管理鍵E-FKeyvを得る。
【００６１】
（Step Ｓ１３）  
続いて、ホスト装置２０は、認証要求時に必要となる乱数RNhを生成する。認証処理に乱数RNhを用いることにより、以下の処理でＮＡＮＤ型フラッシュメモリ１０との間で毎回異なる共有鍵を利用することができる。
【００６２】
（Step Ｓ１４）  
続いて、ホスト装置は、認証要求（Request authentication）と共に予め保持しているホスト定数（HCj）および乱数RNhとをＮＡＮＤ型フラッシュメモリ１０に送出する。
【００６３】
（Step Ｓ１５）  
続いて、ＮＡＮＤ型フラッシュメモリ１０は、NKeyi (i=1、…、m)を秘匿領域１１−２からロードし、データキャッシュ１２Ｂに保存する。
【００６４】
（StepＳ１６）  
続いて、ＮＡＮＤ型フラッシュメモリ１０は、ホスト装置２０が秘密情報セットHKeyi、j (i=1、…、m)からＮＡＮＤ型フラッシュメモリ１０との認証に必要となるHKeyi、jを選択するために必要なNKeyのインデックス情報iをデータキャッシュ１２Ｃに読み出し、ホスト装置２０に送出する。
【００６５】
（StepＳ１７）  
続いて、ＮＡＮＤ型フラッシュメモリ１０は、秘匿しているNKeyiと受信したホスト定数HCjとを用いて、データ生成部１３におけるデータ生成処理によりHKeyi、jを生成する。これと共に、受信した乱数RNhを用いて、データ生成部１４におけるデータ生成処理により、セッション鍵データSKeyi、j (= Generate(HKeyi、j、 RNh))を生成する。
【００６６】
（Step Ｓ１８）  
上記Step Ｓ１７の処理と並行して、ホスト装置２０は、受信したインデックス情報iを用いて、予め秘匿していた秘密情報セットHKeyi、j (i=1、…、m)から当該ＮＡＮＤ型フラッシュメモリ１０との認証処理に必要な秘密情報HKeyi、jを選択する。
【００６７】
（Step Ｓ１９）  
続いて、ホスト装置２０は、選択した秘密情報HKeyi、jと生成した乱数RNhと用いて、データ生成部２６におけるデータ生成処理により、セッション鍵データSKeyi、j (= Generate(HKeyi、j、 RNh))を生成する。
【００６８】
（Step Ｓ２０）
続いて、ホスト装置２０は、Step Ｓ１２でFKBから選択した多重暗号化管理鍵のレコード番号（記録位置）を示すインデックス情報kと、セッション鍵データSKeyi, jを用いて、暗号化管理鍵E-FKeyv,kを暗号化したデータEnc(SKeyi, j、 E-FKeyv)とを、ＮＡＮＤ型フラッシュメモリ１０に送出する。なお、識別情報（k）構成方法に依っては、当該識別情報（k）全体を送出せずに、ＮＡＮＤ型フラッシュメモリにおいてインデックス鍵INKkの生成に必要ではない情報を切り取った識別情報（k）の一部を送出することもある。
【００６９】
（Step Ｓ２１）
続いて、ＮＡＮＤ型フラッシュメモリ１０は、セッション鍵データSKeyi, jを用いて、セッション鍵データで暗号化された暗号化管理鍵Enc(SKeyi, j, E-FKeyv)を復号して、暗号化管理鍵E-FKeyv,kを得る。
【００７０】
（Step Ｓ２２）
続いて、ＮＡＮＤ型フラッシュメモリ１０は、NKeyiとインデックス情報kを用いてインデックス鍵INKkを生成する。
【００７１】
（Step Ｓ２３）
続いて、ＮＡＮＤ型フラッシュメモリ１０は、インデックス鍵INKkを用いて、暗号化管理鍵E-FKeyv,kを復号し、管理鍵FKeyv,kを得る。
【００７２】
（Step Ｓ２４）
続いて、ＮＡＮＤ型フラッシュメモリ１０は、セッション鍵SKeyi,j を用いて、管理鍵FKeyv,kを暗号化し、暗号化したデータEnc(SKeyi, j, E-FKeyv, k)として、ホスト装置２０に送出する。
【００７３】
（Step Ｓ２５）
続いて、ホスト装置２０は、セッション鍵SKeyi,j を用いて、上記暗号化管理鍵を復号し、管理鍵FKeyv,kを得る。
【００７４】
（Step Ｓ２６）
続いて、ホスト装置２０は、得られた管理鍵FKeyv,kを用いて、ＮＡＮＤ型フラッシュメモリ１０から読み出した暗号化された秘密識別情報E-SecretIDを復号することにより、秘密識別情報SecretIDを得る。
【００７５】
（Step Ｓ２７）  
続いて、ホスト装置２０は、ID要求（Request ID）をＮＡＮＤ型フラッシュメモリ１０に送る。
【００７６】
（Step Ｓ２８）  
続いて、ＮＡＮＤ型フラッシュメモリ１０は、秘密識別情報SecretIDを秘匿領域１１−２から読み出し、データキャッシュ１２Ａに保存する。
【００７７】
（Step Ｓ２９）  
続いて、ＮＡＮＤ型フラッシュメモリ１０は、生成したセッション鍵データSKeyi、jを用いて、秘密識別情報SecretIDを一方向性変換器１５における一方向性変換処理を行い、一方向性変換データ Oneway-ID (=Oneway(SKeyi、j、 SecretID))を生成し、生成された一方向性変換データOneway-IDをホスト装置２０に送出する。
【００７８】
（Step Ｓ３０）  
続いて、ホスト装置２０は、秘密識別情報SecretIDを、生成したセッション鍵データSKeyi、jを用いて一方向性変換部２７における一方向性変換処理を行い、一方向性変換データOneway-IDを求める。
【００７９】
（Step Ｓ３１）  
続いて、ホスト装置２０は、ＮＡＮＤ型フラッシュメモリ１０より受信した一方向性変換データOneway-IDと、生成した一方向性変換データOneway-IDとが一致するか否かを判定する。上記一方向性変換識別情報Oneway-IDの両方の値が一致した場合（OK）には、復号部２１で得られた前記SecretIDが正しいSecretIDであると判定して以降の処理に秘密識別情報SecretIDを引き渡す。一方、不一致の場合（NG）には、前記SecretIDが不正なIDであると判定し、その旨を以降の処理に出力する。
【００８０】
以上の動作により、第１の実施形態に係る認証フローを終了する（End）。
【００８１】
なお、本実施例の説明した手順に限定されるものではなく、図1に示す処理を矛盾なく実現する範囲において上記処理の順番が入れ替わる場合もある。また、上記処理手順ではステップＳＴ２で生成した同じセッション鍵SKeyi、jをステップＳＴ３及びステップＳＴ４で使用しているが，ステップＳＴ４の前ステップＳＴ２を再度行うことでステップＳＴ３とステップＳＴ４で異なるセッション鍵を用いることも考えられる。
【００８２】
＜３．FKB(Family Key Block)について＞  
次に、図５を用い、第１の実施形態に係る鍵管理情報FKB(Family Key Block)についてより詳しく説明する。
【００８３】
上記のように、本例に係る秘密識別情報SecretIDが記録されているＮＡＮＤ型フラッシュメモリ１０に適合した鍵管理情報FKBを生成するためのプロセスは、以下の通りである。
【００８４】
まず、予め用意された秘密鍵情報であるIDKeyi (i=1,…,n)（Set of IDKeyi’s）の１つ１つのIDKeyiに対応するインデックスkと、秘匿する管理鍵FKeyvを生成するFKBを記録するＮＡＮＤ型フラッシュメモリ１０に秘匿されている秘密情報NKeyiとを用いて、生成部１６で予め決めておいた生成アルゴリズムにより、インデックス鍵INKk（k = 1,…, n）を生成する。
【００８５】
続いて、第１重暗号化として、生成された各々のインデックス鍵INKk（k = 1,…,n）を用いて、秘匿する管理鍵FKeyvを暗号化し、暗号化管理鍵E-FKeyv,k = Encrypt(INKk, FKeyv) (k = 1,…, n)を求める。
【００８６】
続いて、第２重暗号化として、予め用意された秘密鍵情報であるIDKeyi (i=1,…,n)（Set of IDKeyi’s）の１つ１つのIDKeyiを用いて、インデックス（k）が対応する暗号化管理鍵E-FKeyv,kを１つ１つ暗号化（Encrypt）する。
【００８７】
このように、本例に係る鍵管理情報FKBとは、多重暗号化として、２重に暗号化された管理鍵 EE-FKeyv,k = Encrypt(IDKeyk, E-FKeyv,k) (k = 1,…, n)の集合であり、この多重暗号化FKeyv,kの集合を多重暗号化管理鍵（FKey）束と称する。
【００８８】
なお、図中では暗号化（Encrypt）処理が施されたデータであることを表す際に、”E-”を、更にもう1回暗号化処理が施されたデータであることを表す際に、”EE-“と表記している。
【００８９】
また、鍵管理情報FKBの構成については、本例に限られない。例えば、特定のIDKeyiが露呈してしまった場合、当該IDKeyiを保持しているホスト装置２０では多重暗号化FKey束からFKeyを復号することができないようにするために、当該識別鍵情報IDKeykで復号可能な暗号化FKeyv（上述の例ではEE-FKeyv,k）をFKBから削除することにより、新たに構成されたFKBを記録したＮＡＮＤ型フラッシュメモリ１０を使用した場合には、当該ホスト装置では正しいFKeyv及びSecretIDを得る（復号する）ことができないようにすることも可能である。このようにすることで、当該識別鍵情報IDKeykを保持したホスト装置２０を無効化する機能を提供することも可能である。
【００９０】
鍵管理情報FKBの生成方法についても、本例に限られない。例えば、ＣＰＲＭ（非特許文献１）において用いられているＭＫＢ（Media Key Block）技術や、非特許文献３に開示されているＭＫＢ技術に、本発明と同様に多重暗号化処理を施した鍵管理情報を用いてFKBを生成しても、ホスト装置２０を無効化する機能を提供することが可能である。
【００９１】
ここで、ＭＫＢ技術とは、複数の機器がそれぞれ異なる秘密情報を持つ状況で、機器の無効化を実現しつつ、（無効化対象でない機器の間で）共通の秘密情報（Media Key）を効率よく共有するための技術であり、Broadcast Encryption方式とも称される。
【００９２】
＜作用効果＞  
上記のように、第１の実施形態に係るホスト装置、半導体記憶装置、およびその認証方法によれば、少なくとも下記（１）乃至（４）の効果が得られる。
【００９３】
（１）ホスト装置２０から秘密情報が漏洩した場合であっても、漏洩した情報を用いたＮＡＮＤ型フラッシュメモリ１０の秘密情報の不正利用を防止することができる。  
ここで、認証装置であるホスト装置２０は、民生機器の様な専用ハードウェア装置だけでなく、例えば、PC（パーソナルコンピュータ）などで実行可能なプログラム（ソフトウェア）として提供され当該ソフトウェアが実質的なホスト装置となる場合もある。一方、被認証装置であるＮＡＮＤ型フラッシュメモリ１０は、記録メディアであり、ファームウェアと呼ばれるプログラムが介在する場合であっても、重要な処理や情報はセルアレイ１１中のハードウェア内に秘匿された状態で記憶される。そのため、現実的には、例えば、PC上で実行されるソフトウェアは、記録メディアに比べて耐タンパー性能（攻撃に対する耐性）が低くなってしまうことが懸念される。そのため、耐タンパー性能の低いホスト装置（認証装置）２０を攻撃することで、耐タンパー性の高いＮＡＮＤ型フラッシュメモリ１０（被認証装置）に秘匿された秘密情報をも暴露され、耐タンパー性の高い装置に成りすまされることが懸念される。
【００９４】
そこで、第１の実施形態に係る構成及びその認証方式では、上記のように、比較的耐タンパー性の高いＮＡＮＤ型フラッシュメモリ１０は、第１鍵情報（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）を共有する。
【００９７】
このように、本例では、ＮＡＮＤ型フラッシュメモリ（被認証装置）１０が秘匿する情報の秘密レベルと、ホスト装置（認証装置）２０が秘匿する情報の秘密レベルとを非対称とすることができる。例えば、本例では、比較的耐タンパー性の高いＮＡＮＤ型フラッシュメモリ１０が秘匿する情報の秘密レベルを、比較的耐タンパー性の低いホスト装置２０が秘匿する情報の秘密レベルよりも、より高く設定することができる。
【００９８】
そのため、仮にホスト装置２０が秘匿する情報が漏洩した場合であっても、比較的耐タンパー性の高いＮＡＮＤ型フラッシュメモリ１０が秘匿する情報の秘密レベルがさらに高いため、漏洩した情報を用いてＮＡＮＤ型フラッシュメモリ１０に”成りすますこと”ができない。従って、漏洩した情報を用いたＮＡＮＤ型フラッシュメモリ１０の秘密情報の不正利用を防止することができる点で有利である。その結果、例えば、ホスト装置２０から読み出されたID情報が、目的の被認証装置１０から読み出した情報であることを確実に確認し、その相手方の不正利用の無効化等が可能となる。
【００９９】
（２）ホスト装置から漏洩した識別鍵情報IDKeykが不正に利用された場合でも、漏洩したIDKeykの特定作業を軽減することができる。
【０１００】
本例に係る鍵管理情報FKBは、図５で示したように、多重暗号化として、２重に暗号化された管理鍵 EE-FKeyv,k = Encrypt(IDKeyk, E-FKeyv,k) (k = 1,…, n)の集合である。
【０１０１】
そのため、本例では、ホスト装置２０がFKBを復号した結果を、暗号化したデータEnc(SKeyi, j, E-FKeyv)の状態で一旦ＮＡＮＤ型フラッシュメモリ１０に送り返す（ステップＳ２０）。更に、復号部１００により、復号処理を施さなければ暗号化秘密識別情報（E-SecretID）の復号に必要な管理鍵FKeyが得られない（ステップＳ２１）。このように、ホスト装置２０のProcess FKB２２内の処理において、FKB内のn個の2重暗号化管理鍵EE-FKeyv, kの内の何番目（k）のレコードを処理したかを認証するためのいわばレスポンスプロセス（ＳＴ３）を備え、このインデックス情報（k）と一緒にＮＡＮＤ型フラッシュメモリ１０に送出しなければならない構成とする。従って、例えば、ライセンス管理者等は、不正に利用されているIDKeykのインデックス情報（k）から、実際に不正利用されている識別鍵情報IDKeykを特定することが可能となる。
【０１０２】
（３）秘匿性を保持できる。
【０１０３】
上記のように、認証動作において、ホスト装置２０とＮＡＮＤ型フラッシュメモリ１０との間でのレスポンスプロセス（ＳＴ３）を行う場合には、暗号化されたデータの状態で行われる。
【０１０４】
例えば、ステップＳ２０の際に、ホスト装置２０がFKBを復号した結果は、暗号化したデータEnc(SKeyi, j, E-FKeyv)の状態で一旦ＮＡＮＤ型フラッシュメモリ１０に送り返される。また、ステップＳ２４の際に、ＮＡＮＤ型フラッシュメモリ１０は、セッション鍵SKeyi,j を用いて、管理鍵FKeyv,kを暗号化し、暗号化したデータEnc(SKeyi, j, E-FKeyv, k)の状態で、ホスト措置２０に送出する。
【０１０５】
そのため、秘匿性を保持することができる点で有利である。
【０１０６】
（４）実装化において有利である。  
本例のような構成では、比較的大きな回路規模を要求される公開鍵暗号処理やMKB処理のハードウェア実装が困難である等の回路規模上の制約が同時に課せられる環境下である。
【０１０７】
しかしながら、本例によれば、鍵情報が非対称であるものの比較的大きな回路規模を必要とする公開鍵暗号処理を用いる必要がない。さらに、上記のように、ホスト装置（認証装置）２０とＮＡＮＤ型フラッシュメモリ（被認証装置）１０とが秘匿する情報の秘密レベルを非対称とすることにより、片方の装置から漏れた情報だけではもう一方の装置に成りすますことができない認証手段を行い、認証装置２０と被認証装置１０との間で秘密情報であるセッション鍵（SKeyi,j）を共有する。
【０１０８】
そのため、上記制約が課される厳しい環境下であっても、実装化において有利であると言える。
【０１０９】
さらに、上記のように、メモリシステムを構成するデータ生成回路や暗号化器を同じ処理とすることにより、回路規模を比較的小さくすることも可能である。
【０１１０】
この点については、AES（Advanced Encryption Standard）暗号を利用する以下の変形例１−３でより具体的に説明する。
【０１１１】
［変形例１（AES暗号を利用する場合）］
次に、変形例１に係る認証装置、被認証装置、およびその認証方法について説明する。この説明において、上記第１の実施形態と重複する部分の説明については、省略する。
【０１１２】
本例は、共通鍵暗号であるAdvanced Encryption Standard (AES)暗号を利用して、上記第１の実施形態を実装化する一例である。
【０１１３】
＜共通鍵暗号の適用について＞  
Advanced Encryption Standard (AES)暗号やData Encryption Standard (DES)に代表される共通鍵暗号では、暗号化処理（Encryption）と復号処理（Decryption）のアルゴリズムが標準化団体によって規定されている。例えば「AES暗号化処理」されたデータ（暗号化データ）を復号するためには、暗号化に使用した鍵（暗号化鍵）を共有すると共にAES暗号化処理と対になる「AES復号処理」を行うことにより暗号化前のデータ（平文データ）を得ることができる。この様に、共通鍵暗号の暗号化処理と復号処理とは対になって利用されるが、AES暗号やDESの様に、一般的な共通暗号アルゴリズムでは暗号化処理と復号処理を入れ替えて利用することも可能である。
【０１１４】
例えば、AES暗号を例にとると、「暗号化処理」にAES復号処理（AES_D）を用い、「復号処理」にAES暗号化処理（AES_E）を用いることで、上記の暗号化／復号処理と同等の機能を実現することができる。
【０１１５】
より具体的に、暗号化／復号処理は、次のように表すことができる。
【０１１６】
Chiper_Text = AES_E(Key, Plain_Text),
Plain_Text = AES_D(Key, Cipher_Text) = AES_D(Key, AES_E(Key, Plain_Text)
ここで、Chiper_Textが元々の入力データ（平文データ）であり、Plain_Textが出力データ（暗号化データ）あったと考えてみると、Plain_Text = AES_D(Kay, Cipher_Text)の処理によってCipher_Text（入力）から変換されたPlain_Text（出力）が得られる。
【０１１７】
このPlain_Textを入力データとしてAES暗号化処理（AES_E）に与えると、次のように表される。
【０１１８】
AES_E(Key, Plain_Text) = Cipher_Text
即ち、Cipher_Text（出力）が得られる。このCipher_Textは、AES復号処理（AES_D）に入力されたデータであり、正しく元のデータに戻ることが分かる。上記のように、AES暗号などの共通鍵暗号では、暗号化／復号はデータの変換処理であり、その順番を入れ替えても同様の効果を得ることができることが明らかである。
【０１１９】
そこで、本例では、AES暗号を利用し、上記ＮＡＮＤ型フラッシュメモリ１０が備える復号部（Decrypt）１００、１０１、１０３をAES暗号化処理（AES_E）とし、対応してホスト装置２０が備える暗号部（Encrypt）２００、２０１、２７をAES復号処理（AES_D）として、各々実装する場合を一例に説明する。
【０１２０】
＜メモリシステム＞  
変形例１に係るメモリシステムは、図６のように示される。  
図示するように、本例では、AES暗号を利用し、ＮＡＮＤ型フラッシュメモリ１０が備える復号部（Decrypt）１００、１０３及び暗号化部（Encrypt）１０１をAES暗号化処理部（AES_E）とし、これに対応するホスト装置２０が備える暗号化部（Encrypt）２００及び復号部（Decrypt）２０１、２１をAES復号処理部（AES_D）として、各々実装する。このように、上記第１の実施形態と表記上は相違があるが、機能についての相違はない。
【０１２１】
＜認証動作＞  
変形例１に係る認証フローは、図７のように示される。  
図示するように、本例では、ステップ群ＳＴ３において、AES暗号を利用する点で、次のように第１の実施形態と相違する。  
（Step Ｓ２０）  
まず、ステップＳ２０において、ホスト装置２０は、暗号化管理鍵D-FKeyv,kを、AES復号機能を用いて暗号化し（Encrypt D-FKeyv,k by AES Decryption function）、暗号化したデータAES_D(SKeyi, j, D-FKeyv)とインデックス情報kとを、ＮＡＮＤ型フラッシュメモリ１０に送出する。
【０１２２】
なお、”D-“は、その後に続くデータがAES復号処理を用いて変換されたことを表している。
【０１２３】
（Step Ｓ２１）  
続いて、ＮＡＮＤ型フラッシュメモリ１０は、上記暗号化データAES_D(SKeyi, j, D-FKeyv)をAES暗号化機能を用いて復号し（Decrypt by AES Encryption function）、、暗号化管理鍵D-FKeyv,kを得る。
【０１２４】
（Step Ｓ２２）
続いて、ＮＡＮＤ型フラッシュメモリ１０は、NKeyiとインデックス情報kを用いてインデックス鍵INKkを生成する。
【０１２５】
（Step Ｓ２３）
続いて、ＮＡＮＤ型フラッシュメモリ１０は、暗号化管理鍵D-FKeyv,kをインデックス鍵INKk、およびAES暗号化機能を用いて復号化し（Decrypt by AES Encryption function）、管理鍵FKeyv,kを得る。
【０１２６】
（Step Ｓ２４）
続いて、ＮＡＮＤ型フラッシュメモリ１０は、管理鍵FKeyv,kをセッション鍵SKeyi,j およびAES暗号化機能を用いて暗号化し、暗号化したデータAES_E(SKeyi, j, FKeyv, k)として、ホスト措置２０に送出する。
【０１２７】
＜FKB(Family Key Block)について＞  
次に、図８を用い、変形例１に係る鍵管理情報FKB(Family Key Block)についてより詳しく説明する。
【０１２８】
上記のように、本例に係るAES暗号を利用した鍵管理情報FKBを生成するためのプロセスは、以下の通りである。
【０１２９】
まず、上記と同様に、インデックス鍵INKk（k = 1,…, n）を生成する。
【０１３０】
続いて、第１重暗号化として、AES復号処理（AES_D）を利用し、生成された各々のインデックス鍵INKk（k = 1,…,n）を用いて、秘匿する管理鍵FKeyvを暗号化し、暗号化管理鍵D-FKeyv,k = AES_D(INKk, FKeyv) (k = 1,…, n)を求める。
【０１３１】
続いて、第２重暗号化として、AES暗号処理（AES_E）を利用し、予め用意された識別鍵鍵情報であるIDKeyi (i=1,…,n)（Set of IDKeyi’s）の１つ１つのIDKeyiを用いて、インデックス（k）が対応する暗号化管理鍵D-FKeyv,kを１つ１つ暗号化（Encrypt）する。
【０１３２】
このように、本例に係る鍵管理情報FKBとは、多重暗号化として、AES暗号を利用して２重に暗号化された管理鍵 DE-FKeyv,k = AES_E(IDKeyk, D-FKeyv,k) (k = 1,…, n)の集合であり、この多重暗号化FKeyv,kの集合を多重暗号化管理鍵（FKey）束と称する。
【０１３３】
なお、図中ではAES暗号化処理（AES_E）又はAES復号処理（AES_D）を利用して、暗号化（Encrypt）処理が施されたデータであることを表す際に、”E-または ”D-”として同様に表記している。
【０１３４】
その他の構成および動作は、実質的に上記第１の実施形態と同様であるため、詳細な説明を省略する。
【０１３５】
＜作用効果＞  
上記のように、変形例１に係るホスト装置、半導体記憶装置、およびその認証方法によれば、少なくとも上記（１）乃至（４）と同様の効果が得られる。
【０１３６】
さらに、本例では、共通鍵暗号であるAES暗号を利用して、メモリシステムを実装化する。
【０１３７】
このように、ＮＡＮＤ型フラッシュメモリ１０に実装しなければならない暗号化／復号処理をAES暗号化処理に統一することにより、暗号化処理と復号処理との２つの処理を実装する場合に比べ、ＮＡＮＤ型フラッシュメモリ１０の実装負荷（回路規模）を軽減化することが可能となる点で有利である。
【０１３８】
更に、前述したように、データ生成部（Generate）１３、１４等をAES暗号化処理で、一方向性変換部（Oneway）１５をAES暗号化処理を利用した方式にすることも可能である。この場合、ＮＡＮＤ型フラッシュメモリ１０の処理に必要な実装負荷（回路規模）を更に軽減することも可能である。
【０１３９】
また、本例では、ホスト装置２０が備える復号部（Decrypt）２１をAES復号処理部（AES_D）として実装する例を説明したが、これに限らず、ホスト装置２０が備える復号部（Decrypt）２１をAES暗号化処理部（AES_E）として実装しても良い。この場合、第１の実施形態に係るROM領域１１−３には、E-SecretID=AES_D(FKeyv, SecretID)が記録される。また、第１の実施形態のステップＳ２６において、ホスト装置２０は、得られた管理鍵データFKeyv,kを用いて、ＮＡＮＤ型フラッシュメモリ１０から読み出した暗号化された秘密識別情報E-SecretIDを暗号化することにより、秘密識別情報SecretIDを得る。このことは、各実施形態および変形例にも適用可能であることは勿論である。
【０１４０】
［第２の実施形態（FKBが３重暗号化される一例）］
次に、第２の実施形態に係るホスト装置、半導体記憶装置、およびその認証方法について説明する。本例は、鍵管理情報FKBvが、多重暗号化として、３重に暗号化された管理鍵 EEE-FKeyv,k = Encrypt(IDKeyk, EE-FKeyv,k) (k = 1,…, n)の一例に関するものである。以下の説明において、上記第１の実施形態と重複する部分の説明については、省略する。
【０１４１】
＜メモリシステム＞  
第２の実施形態に係るメモリシステムは、図９のように示される。  
本例では、鍵管理情報FKBvが、多重暗号化として、３重に暗号化された管理鍵 EEE-FKeyv,k = Encrypt(IDKeyk, EE-FKeyv,k)である。
【０１４２】
そのため、図示するように、ホスト装置２０が、復号部２０２を更に備える点で、上記第１の実施形態と相違する。
【０１４３】
復号部（Decrypt）２０２は、識別鍵情報IDKeykを用いて、復号部２０１から受信する暗号化管理鍵（E-FKeyv）を復号して、管理鍵FKeyvを得る。
【０１４４】
＜認証動作＞  
第２の実施形態に係るメモリシステムの認証フローは、図１０のように示される。  
図示するように、本例では、鍵管理情報FKBvが、多重暗号化として、３重に暗号化された管理鍵 EEE-FKeyv,kであることに対応する点で、上記第１の実施形態と相違する。
【０１４５】
より具体的には、次のステップＳ２５−１を更に備える点で、実質的に相違する。  
（Step Ｓ２５−１）  
ホスト装置２０は、復号部２０２において、識別鍵情報IDKeykを用い、復号部２０１から受信する暗号化管理鍵（E-FKeyv,k）を復号して、管理鍵FKeyv,kを得る。
【０１４６】
その他の構成、動作に関しては、実質的に上記第１の実施形態と同様であるため、詳細な説明を省略する。
【０１４７】
＜FKB(Family Key Block)について＞  
次に、図１１を用い、第２の実施形態に係る鍵管理情報FKB(Family Key Block)についてより詳しく説明する。
【０１４８】
図示するように、本例に係では、３重暗号化された鍵管理情報FKBを生成するために、暗号化プロセスが更に加えられる。即ち、
第３重暗号化として、２重に暗号化された管理鍵 EE-FKeyv,k = Encrypt(IDKeyk, E-FKeyv,k)をさらに、識別鍵情報IDKeyiを用いて同様に、インデックス（k）が対応する暗号化管理鍵EE-FKeyv,kとして１つ１つ暗号化（Encrypt）する。
【０１４９】
このように、本例に係る鍵管理情報FKBとして、３重に暗号化された管理鍵 Triply-encrypted FKeyv,k ： EEE-FKeyv,k = Encrypt(IDKeyk, EE-FKeyv,k) (k = 1,…, n)を得ることができる。
【０１５０】
なお、図中では暗号化（Encrypt）処理が施されたデータであることを表す際に”E-”、２回暗号化処理が施されたデータであることを表す際に”EE-“、更に３回暗号化処理が施されたデータであることを表す際に”EEE-“、と各々表記している。
【０１５１】
＜作用効果＞  
上記のように、第２の実施形態に係るホスト装置、半導体記憶装置、およびその認証方法によれば、少なくとも上記（１）乃至（４）と同様の効果が得られる。さらに、本例によれば、下記（５）に示す効果が得られる。
【０１５２】
（５）管理鍵FKeyvの不正取得を防止することが可能となる。
【０１５３】
本例では、鍵管理情報FKBvが、多重暗号化として、３重に暗号化された管理鍵 EEE-FKeyv,k = Encrypt(IDKeyk, EE-FKeyv,k)である。そのため、ホスト装置２０が、復号部２０２を更に備える点で、上記第１の実施形態と相違する。
【０１５４】
上記構成および動作によれば、たとえＮＡＮＤ型フラッシュメモリ１０から秘密情報NKeyiが漏洩してしまった場合でも、漏洩したNKeyiとホスト装置２０から受け取った情報からだけでは管理鍵FKeyvを容易に得ることが不可能となる。そのため、管理鍵FKeyvの不正取得を防止することが可能となる点で、更に有利である。
【０１５５】
［変形例２（AES暗号を利用する場合）］
次に、変形例２に係るホスト装置、半導体記憶装置、およびその認証方法について説明する。本例は、変形例１と同様にAES暗号を利用して、上記第２の実施形態を実装化する一例である。
【０１５６】
＜メモリシステム＞  
変形例２に係るメモリシステムは、図１２のように示される。  
本例では、AES暗号を利用して、上記第２の実施形態を実装化する一例である。
【０１５７】
そのため、図示するように、ホスト装置２０が備える復号部２０２として、AES暗号を利用し、AES暗号化処理部（AES_D）として実装化している。
【０１５８】
そのため、３重に暗号化された管理鍵 EEE-FKeyv,k = Encrypt(IDKeyk, EE-FKeyv,k)を、AES暗号を利用して対応することが可能である。
【０１５９】
＜認証動作＞  
変形例２に係る認証フローは、図１３のように示される。  
図示するように、本例では、ステップ群ＳＴ３において、AES暗号を利用するものである。
【０１６０】
＜FKB(Family Key Block)について＞  
次に、図１４を用い、変形例２に係る鍵管理情報FKB(Family Key Block)についてより詳しく説明する。なお、鍵管理情報FKBについては、次に説明する変形例３に関しても同様である。
【０１６１】
図示するように、本例に係では、AES暗号を利用して、３重暗号化された鍵管理情報FKBを生成するために、暗号化プロセスが更に加えられる。即ち、
第３重暗号化として、２重に暗号化された管理鍵 ED-FKeyv,k = AES_D(IDKeyk, E-FKeyv,k)をさらに、識別鍵情報IDKeyiを用いて同様に、AES暗号を利用して、インデックス（k）が対応する暗号化管理鍵ED-FKeyv,kとして１つ１つ暗号化（Encrypt）する。
【０１６２】
このように、本例に係る鍵管理情報FKBとして、３重に暗号化された管理鍵 Triply-encrypted FKeyv,k ： EDE-FKeyv,k = AES_E(IDKeyk, ED-FKeyv,k) (k = 1,…, n)を得ることができる。
【０１６３】
なお、図中ではAES暗号化処理を用いて暗号化（Encrypt）処理が施されたデータであることを表す際に”E”を、AES復号処理を用いて暗号化（Encrypt）処理が施されたデータであることを表す際に”D”を付けており、AES暗号を利用して３回暗号化処理が施されたデータが”EDE-“と表記している場合には、1回目の暗号化にAES暗号化処理を、2回目の暗号化にAES復号処理を、3回目の暗号化にAES暗号化処理を、各々用いたことを表している。
【０１６４】
＜作用効果＞  
上記のように、変形例２に係るホスト装置、半導体記憶装置、およびその認証方法によれば、少なくとも上記（１）乃至（５）と同様の効果が得られる。さらに、本例のように、必要に応じて、AES暗号を利用することが可能である。
【０１６５】
［第３の実施形態（FKBが３重暗号化される一例）］
次に、第３の実施形態に係るホスト装置、半導体記憶装置、およびその認証方法について説明する。本例は、鍵管理情報FKBvが、多重暗号化として、３重に暗号化された管理鍵 EEE-FKeyv,k = Encrypt(IDKeyk, EE-FKeyv,k) (k = 1,…, n)の一例に関するものである。この説明において、上記第２の実施形態と重複する部分の説明については、省略する。
【０１６６】
＜メモリシステム＞  
第３の実施形態に係るメモリシステムは、図１５のように示される。  
図中の破線で示すように、本例では、ＮＡＮＤ型フラッシュメモリ１０が暗号化部（Encrypt）１０１を備えておらず、ホスト装置２もこれに対応する復号部（Decrypt）２０１を備えていない点で、上記第２の実施形態と相違する。
【０１６７】
このように、メモリシステムが、暗号化部１０１および復号部２０１を備えていないため、処理時間を高速化できる点で、有利である。
【０１６８】
＜認証動作＞  
第３の実施形態に係るメモリシステムの認証フローは、図１６のように示される。  
図示するように、本例では、メモリシステムが、暗号化部１０１および復号部２０１を備えていないため、ステップＳ２４、Ｓ２５が不要となっている。
【０１６９】
＜作用効果＞  
上記のように、第３の実施形態に係るホスト装置、半導体記憶装置、およびその認証方法によれば、少なくとも上記（１）乃至（５）と同様の効果が得られる。
【０１７０】
さらに、本例では、メモリシステムが、暗号化部１０１および復号部２０１を備えていないため、ステップＳ２４、Ｓ２５を省略とすることができる。そのため、認証処理に係る処理時間を低減でき、高速化できる点で有利である。
【０１７１】
［変形例３（FKBが３重暗号化される一例）］
次に、変形例３に係るホスト装置、半導体記憶装置、およびその認証方法について説明する。本例は、変形例２と同様にAES暗号を利用して、上記第３の実施形態を実装化する一例である。
【０１７２】
＜メモリシステム＞  
変形例２に係るメモリシステムは、図１７のように示される。  
本例では、AES暗号を利用して、上記第３の実施形態を実装化する一例である。
【０１７３】
そのため、図示するように、メモリシステムが備える暗号化部、復号部が、上記と同様に、AES暗号を利用したAES処理部（AES_D、AES_E）として実装化されている。但し、上記第２の実施形態と同様に、暗号化部１０１および復号部２０１を備えていないため、それらについては、AES暗号を利用したAES処理部として実装化されていない。
【０１７４】
＜認証動作＞  
変形例３に係る認証フローは、図１８のように示される。  
図示するように、本例では、ステップ群ＳＴ３において、AES暗号を利用するものである。同様に、暗号化部１０１および復号部２０１を備えていないため、ステップＳ２４、Ｓ２５を省略することができる。
【０１７５】
＜FKB(Family Key Block)について＞  
本例に係る鍵管理情報FKB(Family Key Block)については、上記図１４で示した変形例２に係る鍵管理情報FKBと同様である。そのため、詳細な説明については、省略する。
【０１７６】
＜作用効果＞  
上記のように、変形例３に係るホスト装置、半導体記憶装置、およびその認証方法によれば、少なくとも上記（１）乃至（５）と同様の効果が得られる。さらに、本例のように、必要に応じて、AES暗号を利用することが可能である。
【０１７７】
［第４の実施形態（秘密情報やFKBの書き込む一例）］
次に、上記の秘密情報やFKBの書き込みについて、第４の実施形態として説明する。
【０１７８】
ここでは、上記第１の実施形態に係る秘密情報やFKBを書き込む場合を一例に挙げる。以下の説明において、上記第１の実施形態と重複する部分の説明については、省略する。
【０１７９】
４−１．ＮＡＮＤ型フラッシュメモリの製造時等に書き込む場合  
まず、図１９を用い、例えば、ＮＡＮＤ型フラッシュメモリ１０の製造時等に秘密情報や鍵管理情報FKBを書き込む場合について説明する。
【０１８０】
図示するように、ライセンス管理者（Licensing Administrator）４０は、以下のデータを生成する：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をメモリ製造者３０に渡す。これらのデータを渡す際には、例えば、ライセンス管理者４０は、予めメモリ製造者３０の公開鍵を入手しておき、データを当該公開鍵を用いて暗号化した上でメモリ製造者３０に送信する等といった、安全な手段を用いる。
【０１８２】
メモリ製造者（Memory Vender）３０は、上記ＮＡＮＤ型フラッシュメモリ１０に加え、ライセンス管理者４０から渡されたFKBv (v=1,…,n)等のデータ３１を保持し、選択部３２、３３、生成部３４、暗号化部３５を備える。
【０１８３】
上記構成により、データ３１を受け取ったメモリ製造者３０は、vの中から一つの値を選択部３２により選択し、当該vの値をＮＡＮＤ型フラッシュメモリ１０のROM area１１−３へインデックス情報v（index of FKey）として書き込む。
【０１８４】
また、メモリ製造者３０は、インデックス情報i（index of NKey）の値をＮＡＮＤ型フラッシュメモリ１０のRead/Write area１１−３へ、NKeyiの値をHidden area１１−２へそれぞれ書き込む。
【０１８５】
メモリ製造者３０は、生成部（SecretID Generator）３４において秘密識別情報SecretIDを生成する。さらに、選択部３２は、前記選択したvに対応するFKeyvを選択する。メモリ製造者３０は、選択したFKeyvを用いて、生成したSecretIDを暗号化し、暗号化された秘密識別情報E-SecretIDを生成する。
【０１８６】
さらに、メモリ製造者３０は、秘密識別情報SecretIDの値をＮＡＮＤ型フラッシュメモリ１０のHidden area１１−２へ、暗号化された秘密識別情報E-SecretIDの値をROM area１１−３へそれぞれ書き込む。
【０１８７】
以上の動作により、ＮＡＮＤ型フラッシュメモリ１０の製造時等に所定の秘密情報やFKBを書き込むことができる。なお、上記各値を書き込む順番は、暗号化された秘密識別情報E-SecretIDは、暗号化処理しないと得られない値であるため、暗号部３５による上記暗号化処理後となる。しかし、それ以外の書き込み動作の順序について制約はなく、上述の例以外の順番で書き込んでも良い。
【０１８８】
さらに、メモリ製造者３０は、書き込み処理を終えたＮＡＮＤ型フラッシュメモリ１０をカード製造者（Card Vendor）に渡す。
【０１８９】
このように、本例では、インデックス情報v（index of FKey）等が、ＮＡＮＤ型フラッシュメモリ１０にあらかじめ書き込まれた状態とすることができる。
【０１９０】
４−２．FKBをカード製造者（Card Vendor）が書き込む場合  
次に、図２０を用い、FKBをカード製造者５０が書き込む場合について説明する。
【０１９１】
カード製造者（Card Vendor）５０は、上記メモリ製造者３０から上記所定の情報v等が書き込まれたＮＡＮＤ型フラッシュメモリ１０を受け取る。そして、例えばSD（登録商標）カード等の様に、そのＮＡＮＤ型フラッシュメモリ１０を制御するコントローラ１９を結合させ、一般ユーザ等向けのストレージメディア（ここでは、Card）５５を製造する。
【０１９２】
カード製造者５０は、上記ストレージメディア（Card）５５に加え、ライセンス管理者４０から受け取るデータ（FKBv）５１、選択部５２を備える。
【０１９３】
カード製造者５０が鍵管理情報FKBvを書き込む処理については、次の通りである。
【０１９４】
まず、カード製造者５０は、鍵管理情報FKBvをライセンス管理者からデータ５１として受け取る。この際、データ５１の受け渡しには、上述した安全な手段を用いる。
【０１９５】
そして、カード製造者５０は、（コントローラ１９を介して）ＮＡＮＤ型フラッシュメモリ１０のROM area１１−３に記録されるインデックス情報vの値をデータキャッシュ１２Ｃ等に読み出す。
【０１９６】
続いて、カード製造者５０は、読み出したインデックス情報vの値に対応する鍵管理情報FKBvを選択部５２により選択し、（コントローラ１９を介して）ＮＡＮＤ型フラッシュメモリ１０のRead/Write area１１−１に選択した鍵管理情報FKBvとして書き込む。
【０１９７】
４−３．FKBを後から書き込む場合  
暗号化FKey束（FKB）を後から書き込き込む場合について、説明する。
【０１９８】
この処理は、暗号化FKey束（FKB）が、ＮＡＮＤ型フラッシュメモリ１０の製造時に書き込まれる場合等には、特に必要のない処理である。しかし、ＮＡＮＤ型フラッシュメモリ１０とコントローラ１９などが結合されて、例えば、SD（登録商標）カードなどのストレージメディア製品として一般ユーザ入手し、カード利用時に市場において後から書き込まれる場合などには、必要となるFKBの書き込み処理に関するものである。
【０１９９】
図２１では、上記のように鍵管理情報FKBが未記録のストレージメディア（Card）５５に記録されたデータの場合の状態を示している。  
図示するように、ＮＡＮＤ型フラッシュメモリ１０は、秘密情報NKeyiと秘密識別情報SecretIDとが秘匿領域１１−２に記録される。鍵管理情報FKBを特定するために必要となるインデックス情報vとインデックス情報vで指定されたFKeyvによって暗号化されたSecretID（E-SecretID）とがROM領域１１−３に記録される。前記秘密情報NKeyiを特定するために必要なインデックス情報iが読み書き可能領域に書き込まれた状態である。しかしながら、鍵管理情報FKBは、ＮＡＮＤ型フラッシュメモリ１０に、まだ書き込まれていない。
【０２００】
次に、上記のように鍵管理情報FKBが未記録状態のストレージメディア５５に、サーバからFKBをダウンロードして記録する場合について、図２２を用いて説明する。
【０２０１】
図示するように、この場合には、ＮＡＮＤ型フラッシュメモリ１０に、必要に応じてデータキャッシュ１２が配置される。
【０２０２】
本例に係るサーバ７０は、FKBデータベース（FKBv (v=1、…、n) ）７１およびvからFKBvを選択するための選択部７２を備える。
【０２０３】
また、サーバ７０とメモリシステム（ＮＡＮＤ型フラッシュメモリ１０、コントローラ１９、ホスト装置２０）とは、インターネット６０を介して電気的に通信接続される。
【０２０４】
なお、ホスト装置２０は、FKBの新規書き込みが必要かどうかを判定し、必要に応じてFKBをサーバに要求する機能を備える。
【０２０５】
＜FKB書き込みフロー＞  
次に、図２３に沿って、暗号化FKeyID束（FKB）をサーバ７０からダウンロードしてＮＡＮＤ型フラッシュメモリ１０に書き込むフローについて説明する。
【０２０６】
（Step Ｓ４１）  
図示するように、まず、ホスト装置２０が、FKBのダウンロードが必要と判定したことにより、FKB書き込みが開始（Start）され、ホスト装置２０はサーバ７０に対してFKB要求を出す。
【０２０７】
（Step Ｓ４２）  
続いて、サーバ７０は、ＮＡＮＤ型フラッシュメモリ１０に対して、FKeyvを特定するために必要となるインデックス情報vを要求する。
【０２０８】
（Step Ｓ４３）  
続いて、ＮＡＮＤ型フラッシュメモリ１０は、ROM領域１１−３からvを読み出し、vをサーバに送出する。
【０２０９】
（Step Ｓ４４）  
続いて、サーバ７０は、受信したvに対応するFKBvをFKBデータベース７１の中から選択する。
【０２１０】
（Step Ｓ４５）  
続いて、サーバ７０は、選択したFKBvをＮＡＮＤ型フラッシュメモリに送出する。
【０２１１】
（Step Ｓ４６）  
続いて、ＮＡＮＤ型フラッシュメモリ１０は、受信したFKBvを読み書き可能領域１１−１に書き込み、記録する。
【０２１２】
以上の動作により、第１の実施形態に係る暗号化FKey束（FKB）ダウンロードするフローを終了する（End）。
【０２１３】
＜FKB(Family Key Block)について＞  
本例に係る鍵管理情報FKB(Family Key Block)については、その構成方法には依存しないため、上記第１〜第３の実施形態の何れのFKBでも利用可能である。そのため、詳細な説明については、省略する。
【０２１４】
＜作用効果＞  
第４の実施形態に係る構成及び動作によれば、少なくとも上記（１）乃至（５）と同様の作用を得ることができる。さらに、本例によれば、後からFKBを書き込む場合においても、必要に応じて本例を適用することが可能であり、下記（６）に示す効果が得られる。
【０２１５】
（６）製造工程の簡略化、製造コストの低減化に対して有利である。  
本例に係るＮＡＮＤ型フラッシュメモリ１０は、読み書き可能領域１１−１に、その用途に応じてＮＡＮＤ型フラッシュメモリ１０ごとに固有（ユニーク），或いは製造ロット（lot）単位など，複数のＮＡＮＤ型フラッシュメモリ１０に共通に付される鍵管理情報（FKBv）を備え、ROM領域にＮＡＮＤ型フラッシュメモリ１０ごとに固有に（ユニークに）付される暗号化された秘密識別情報（E-SecretID）を備える。
【０２１６】
製造ロット単位で鍵管理情報（FKBv）を共通化させた場合には、ＮＡＮＤ型フラッシュメモリ１０ごとに記録しなければならない固有（ユニーク）な情報を、暗号化された秘密識別情報（E-SecretID）の様にデータサイズの小さいデータだけに減らすことができる。換言すれば、共通に付される鍵管理情報（FKBv）と固有の暗号化秘密識別情報（E-SecretID）とに分け、２段階に暗号化することにより、ＮＡＮＤ型フラッシュメモリ１０に書き込むべき固有の暗号化秘密識別情報（E-SecretID）のデータサイズを抑えることができるものである。
【０２１７】
例えば、上記図１９で示したように、ＮＡＮＤ型フラッシュメモリの製造時等において、メモリ製造者３０は、ライセンス管理者４０から受け取ったＮＡＮＤ型フラッシュメモリ１０ごとに固有な情報（E-SecretID）を書き込む。
【０２１８】
そして、ＮＡＮＤ型フラッシュメモリ１０に共通に付される暗号化された鍵管理情報（FKBv）については、カード製造者５０等がＮＡＮＤ型フラッシュメモリ１０に共通に書き込むことができる。例えば、上記図２０で示したように、カード製造者５０が、上記ライセンス管理者４０から受け取ったＮＡＮＤ型フラッシュメモリ１０ごとに共通な鍵管理情報（FKBv）を書き込む。そのため、メモリ製造者３０が書き込まなければならないＮＡＮＤ型フラッシュメモリ１０ごとに固有（ユニーク）なデータのサイズを低減することが可能となる。
【０２１９】
ここで、ＮＡＮＤ型フラッシュメモリ１０の製造時等に、ＮＡＮＤ型フラッシュメモリ１０に固有かつデータサイズの大きい情報を書き込む場合、製造工程が煩雑となり、製造時間が長期化し、製造コストが増大してしまう。しかしながら、本例に係る構成および方法によれば、共通に付される鍵管理情報（FKBv）と固有の暗号化秘密識別情報（E-SecretID）とに分けて２段階に暗号化することにより、このような煩雑な製造工程は不要となるため、製造工程を簡略化でき、製造コストを低減できる点で有利である。また、製造時間を短縮化できるため、消費電力を低減できる点でもメリットがある。
【０２２０】
また、ホスト装置２０側においても、FKeyを用いてＮＡＮＤ型フラッシュメモリに固有な値であるSecretIDを暗号化してE-SecretIDを生成し、さらに、IDKeykを用いてFKeyを暗号化してFKBを生成するという構成を取ることにより、ＮＡＮＤ型フラッシュメモリ１０と同様のメリットを享受することが可能となる。
【０２２１】
［第５の実施形態（SecretIDを公開鍵暗号で暗号化する一例）］
次に、第５の実施形態に係るホスト装置、半導体記憶装置、およびその認証方法について説明する。本例は、SecretIDを公開鍵暗号で暗号化する一例に関するものである。この説明において、上記第１の実施形態と重複する部分の説明については、省略する。
【０２２２】
ここで、上記の第１の実施形態等では、FKeyvを暗号化鍵としてSecretIDを共通鍵暗号を用いて暗号化している。第５の実施形態では、SecretIDを、公開鍵暗号を用いて暗号化する。暗号化の詳細については、図２６を用いて、後述する。
【０２２３】
＜メモリシステム＞  
第５の実施形態に係るメモリシステムは、図２４のように示される。  
図示するように、本例に係るメモリシステムは、次の点で、上記第１の実施形態と相違する。
【０２２４】
まず、ホスト装置２０は、メモリ２３にホスト秘密情報HSecretを記憶する。また、ホスト装置２０は、秘密鍵生成部（Secret-Key Generate）２０５、及び公開鍵暗号方式の復号部（Public-Key Decrypt）２０６を更に備える。
【０２２５】
秘密鍵生成部２０５は、復号部２０１から出力される鍵情報FKeyv,k及びホスト秘密情報HSecretを用いて、秘密鍵情報SecKeyvを生成する。
【０２２６】
復号部２０６は、秘密鍵情報SecKeyvを用い、公開鍵暗号方式にて、暗号化された秘密識別情報E-SecretIDを復号することにより、秘密識別情報SecretIDを得る。
【０２２７】
これらの動作の詳細については、次の認証フローにおいて合わせて説明する。
【０２２８】
＜認証動作＞  
第５の実施形態に係るメモリシステムの認証フローは、図２５のように示される。  
図示するように、本例では、Step Ｓ２０５、Ｓ２０６を更に行う点で、上記第１の実施形態と相違する。
【０２２９】
（Step Ｓ２０５）  
ホスト装置２０は、秘密鍵生成部２０５において、得られた管理鍵FKeyv,k及びホスト秘密情報HSecretを用いて、公開鍵情報SecKeyvを生成する。ここで、秘密鍵生成部２０５での具体的な処理は、次の式（Ｉ）のように示される。
【０２３０】
SecKeyv = F(FKeyv,k、HSecret) = FKeyv,k XOR HSecret … 式（Ｉ）
ここで、XORはビット毎の排他的論理和を表す。なお、関数Fについて、上記の式（Ｉ）に限らず、FKeyv,k及びHSecretから公開鍵PubKeyvに対応する秘密鍵SecKeyvを生成できる関数ならば任意の関数をFとして定めることができる。
【０２３１】
（Step Ｓ２０６）  
続いて、ホスト装置２０は、公開鍵暗号方式の復号部２０６において、生成した秘密鍵情報SecKeyvを用いて、ＮＡＮＤ型フラッシュメモリ１０から読み出した暗号化された秘密識別情報E-SecretIDを復号することにより、秘密識別情報SecretIDを得る。
【０２３２】
＜ＮＡＮＤ型フラッシュメモリの製造時等に書き込む場合＞  
次に、図２６を用い、例えば、ＮＡＮＤ型フラッシュメモリ１０の製造時等に秘密情報や鍵管理情報FKBを書き込む場合について説明する。
【０２３３】
図示するように、ライセンス管理者（Licensing Administrator）４０は、上記データFKBv (v=1,…,n)、FKeyv (v=1,…,n)、 v (v=1,…,n)、 NKeyi、 iに加え、公開鍵情報PubKeyv (v=1,…,n)、秘密鍵情報SecKeyv (v=1,…,n)、およびホスト秘密情報HSecretを生成する点で、上記実施形態と相違する。
【０２３４】
ここで、鍵情報の組(PubKeyv、SecKeyv)は、公開鍵暗号における公開鍵・秘密鍵の組である。公開鍵暗号として、例えば、RSA暗号、ElGamal暗号、楕円曲線暗号等、任意の公開鍵暗号を用いることができる。また、ホスト秘密情報HSecretは、ホスト装置２０に与えられる秘密情報である。
【０２３５】
先にFKeyvを生成した後で、上記の式（Ｉ）を満たす秘密鍵SecKeyv を定め、さらにこの秘密鍵SecKeyvに対応する公開鍵PubKeyvを定める。また、先に鍵情報の組(PubKeyv, SecKeyv)を生成した後に、式（Ｉ）を満たすFKeyv,kを定めても良い。
【０２３６】
続いて、ライセンス管理者４０は、生成したデータの内、データ３１として公開鍵PubKeyv (v=1,…,n)、 v (v=1,…,n)、 NKeyi、 iをメモリ製造者３０に渡す。
【０２３７】
データ３１を受け取ったメモリ製造者３０は、vの中から一つの値を選択部３２により選択し、生成部（SecretID Generator）３４において秘密識別情報SecretIDを生成する。さらに、選択部３２は、前記選択したvに対応する公開鍵PubKeyvを選択する。
【０２３８】
メモリ製造者３０は、選択した公開鍵PubKeyvを用いて、生成したSecretIDを公開鍵暗号方式により暗号化し、暗号化された秘密識別情報E-SecretIDを生成する。
【０２３９】
その他については、上記第４の実施形態と同様である。
【０２４０】
なお、上記の例では、ホスト秘密情報HSecretは、全てのホスト装置に共通である例を挙げたが、例えば、ホスト装置の製造会社毎に異なるホスト秘密情報を用意しても良いし、期間毎に異なるホスト秘密情報を用いても良い。この場合、管理鍵データ及びそれぞれのホスト秘密情報に対応する公開鍵がそれぞれ生成されることになる。そのため、図２６において、複数の暗号化された秘密識別情報がＮＡＮＤ型フラッシュメモリに書き込まれる。
【０２４１】
＜作用効果＞  
上記のように、第５の実施形態に係るホスト装置、半導体記憶装置、およびその認証方法によれば、少なくとも上記（１）乃至（５）と同様の効果が得られる。
【０２４２】
上記のように、第５の実施形態では、秘密識別情報SecretIDを、公開鍵暗号を用いた公開鍵PubKeyvにより暗号化する。このように、必要に応じ、本例を適用することが可能である。なお、第５の実施形態は、第１の実施形態に限らず、上記の各実施形態および変形例にも適用可能であることは勿論である。
【０２４３】
［第６の実施形態（ＮＡＮＤ型フラッシュメモリの構成例）］
次に、上記ＮＡＮＤ型フラッシュメモリ１０の構成例等について、第６の実施形態として説明する。以下の説明において、上記第１の実施形態と重複する部分の説明については、省略する。
【０２４４】
６−１．ＮＡＮＤ型フラッシュメモリの全体構成例  
図２７を用い、第６の実施形態に係るＮＡＮＤ型フラッシュメモリ１０の全体構成例について説明する。  
図示するように、ＮＡＮＤ型フラッシュメモリ１０は、メモリセルアレイ１１及びその周辺回路を備える。
【０２４５】
メモリセルアレイ１１は、複数のブロックBLOCK1- BLOCKnを含む。各ブロックの構成は、図２８において後述するが、複数のメモリセルトランジスタＭＣ、ワード線ＷＬ、ビット線ＢＬ等を含むものである。各ブロック中のメモリセルトランジスタＭＣ中のデータは、一括して消去される。メモリセルトランジスタ単位及びページ単位でのデータ消去はできない。すなわち、個々のブロックが最小の消去単位となる。
【０２４６】
周辺回路は、センスアンプ７７、入出力制御回路８４、ロジックコントロール回路８５等を備える。
【０２４７】
センスアンプ７７は、ビット線ＢＬを介してメモリセルアレイ１１内のメモリセル（メモリセルトランジスタＭＣ）のデータを読み出し、ビット線ＢＬを介してメモリセルアレイ２内のメモリセルの状態を検出する。
【０２４８】
データキャッシュ１２（１２Ａ−１２Ｃ）は、センスアンプ７７から読み出されたデータまたはセンスアンプ７７に供給されるデータを一時的に保持する。
【０２４９】
カラムデコーダ７５は、ＮＡＮＤ型フラッシュメモリ１０の外部からＩＯ端子を介して供給されたアドレス信号に基づいて、特定のビット線ＢＬ、センスアンプ等を選択する。
【０２５０】
カラムアドレスバッファ７４は、アドレス信号を一時的に保持し、カラムデコーダ７５に供給する。
【０２５１】
ロウデコーダ７８は、データ読み出し、書き込み、あるいは消去に必要な種々の電圧を電圧生成回路８６から受け取り、そのような電圧をアドレス信号に基づいて特定のワード線ＷＬに印加する。
【０２５２】
ロウアドレスバッファデコーダ７９は、アドレス信号を一時的に保持し、ロウデコーダ７８に供給する。
【０２５３】
電圧生成回路８６は、基準電源電圧ＶＳＳ、ＶＣＣ、電圧ＶＳＳＱ、ＶＣＣＱ等を受け取り、これらからデータ書き込み、読み出し、消去等に必要な電圧を生成する。
【０２５４】
入出力制御回路８４は、ＩＯ端子を介して、ＮＡＮＤ型フラッシュメモリ１０の動作を制御する種々のコマンド、アドレス信号、書き込みデータを受け取り、また読み出しデータを出力する。入出力制御回路８４から出力されたアドレス信号は、アドレスレジスタ８２によってラッチされる。ラッチされたアドレス信号は、カラムアドレスバッファ７４及びロウアドレスバッファ７９に供給される。入出力制御回路８４から出力されたコマンドは、コマンドレジスタ８３によってラッチされる。ステータスレジスタ８１は、入出力制御回路１２のための種々のステータスについての値を保持する。
【０２５５】
ＮＡＮＤ型フラッシュメモリ１０は、外部インターフェイス（ＮＡＮＤ  Ｉ／Ｆ）として、コマンド、アドレス、データ入出力用のＩＯ端子、動作を制御するための種々の制御信号を外部から受け取る。制御信号には、例えばチップイネーブル／ＣＥ、コマンドラッチイネーブルＣＬＥ、アドレスラッチイネーブルＡＬＥ、リードイネーブルＲＥ及び／ＲＥ、ライトイネーブルＷＥ及び／ＷＥ、ライトプロテクトＷＰ、クロックＤＱＳ、／ＤＱＳが含まれる。
【０２５６】
これらの制御信号は、対応する端子において受け取られ、ロジック制御回路２１に供給される。ロジックコントロール回路８５は、制御信号に基づいて、入出力制御回路８４を制御して、端子ＩＯ上の信号をコマンド、アドレス、またはデータとして入出力制御回路８４を介してアドレスレジスタ８２、コマンドレジスタ８３、ページバッファ１２等に到達することを許可したり禁止したりする。また、ロジックコントロール回路８５は、コマンドレジスタ８３から、ラッチされたコマンドを受け取る。
【０２５７】
制御信号のうち、ＷＥ端子はデータ入力用クロックを供給し、ＲＥ端子はデータ出力用クロックを供給し、ＤＱＳ端子はデータ入出力用クロックを伝送し、ＣＬＥ端子はデータ入力をコマンドとして入力するイネーブル用であり、ＡＬＥ端子はデータ入力をアドレスとして入力するイネーブル用であり、ＣＥ端子はデータ入出力等全般の機能を有効化するためである。
【０２５８】
また、Ｒ／Ｂ端子はＮＡＮＤ型フラッシュメモリ１０の内部動作状態を示し、ＷＰ端子は誤書き込み防止用の書き込み防止信号を伝送し、Ｖｃｃ／Ｖｓｓ／Ｖｃｃｑ／Ｖｓｓｑ端子等は電力供給用である。また、本実施形態では、高速インターフェースにてデータ伝送を実現する際に利用される端子（Toggle）として、ＲＥ端子、ＷＥ端子、ＤＱＳ端子には、各々相補信号を伝送する／ＲＥ端子、／ＷＥ端子、／ＤＱＳ端子が存在する。
【０２５９】
ロジックコントロール回路８５は、シーケンス制御回路８８、パラメータレジスタ８９、認証回路１７を備える。ロジック制御回路８５は、また、レディ／ビジー信号（Ｒ／Ｂ）の出力を司る。具体的には、ロジック制御回路８５は、ＮＡＮＤ型フラッシュメモリ１０がビジー状態の間、ビジー信号を出力する。
【０２６０】
シーケンス制御回路８８は、コマンドレジスタ８３からコマンドを受け取る。シーケンス制御回路８８は、受け取ったコマンドに基づいて、コマンドにより指示される処理（データ読み出し、書き込み、消去等）を実行するように、センスアンプ７７、電圧生成回路８６等を制御する。
【０２６１】
パラメータレジスタ８９は、ロジック制御回路８５の動作を規定する種々の上記制御パラメータ８９０等を保持する。制御パラメータ８９０は、シーケンス制御回路８８から参照、または更新され、ロジックコントロール回路８５や入出力制御回路８８におけるシーケンスの制御に利用される。
【０２６２】
認証回路１７は、上記生成部１３等を含み、上記の認証に関する処理を行う。例えば、認証回路１７は、パラメータレジスタに含まれる制御パラメータ８９０の書き換え等の更新も行う。また、認証回路１７は、認証を要求するコマンドを受け取り、メモリセルアレイ１１中の特定のデータを用いて認証のための特定の演算を行い、結果をメモリ１０の外部へ出力する。この一連の動作の実行の過程で、認証回路１７は、必要なデータの読み出し、書き込み等を制御パラメータ８９０の更新を通じて、シーケンス制御回路８８に許可する。
【０２６３】
レディ／ビジー回路（RY/BY）８７は、ロジックコントロール回路８５の制御を受けて、スイッチトランジスタを介して、Ｒ／Ｂ信号をＮＡＮＤ型フラッシュメモリ１０の外部に通知する。
【０２６４】
６−２．ブロック（ＢＬＯＣＫ）の構成例  
次に、図２８を用い、メモリセルアレイ１１を構成するブロック（ＢＬＯＣＫ）の構成例について説明する。ここでは、図２７中のＢＬＯＣＫ１を一例に挙げて説明する。ここで、上記のように、ブロックＢＬＯＣＫ１中のメモリセルは、一括してデータ消去されるため、ブロックはデータ消去単位である。
【０２６５】
ブロックＢＬＯＣＫ１は、ワード線方向（ＷＬ方向）に配置される複数のメモリセルユニットＭＵから構成される。メモリセルユニットＭＵは、ＷＬ方向と交差するビット線方向（ＢＬ方向）に配置され、電流経路が直列接続される８個のメモリセルＭＣ０〜ＭＣ７からなるＮＡＮＤストリング（メモリセルストリング）と、ＮＡＮＤストリングの電流経路の一端に接続されるソース側の選択トランジスタＳ１と、ＮＡＮＤストリングの電流経路の他端に接続されるドレイン側の選択トランジスタＳ２とから構成される。
【０２６６】
なお、本実施形態では、メモリセルユニットＭＵは、８個のメモリセルＭＣ０〜ＭＣ７から構成されるが、２つ以上のメモリセル、例えば、５６個、３２個等から構成されていればよく、８個に限定されるというものではない。
【０２６７】
ソース側の選択トランジスタＳ１の電流経路の他端はソース線ＳＬに接続される。ドレイン側の選択トランジスタＳ２の電流経路の他端は、各メモリセルユニットＭＵに対応してメモリセルユニットＭＵの上方に設けられ、ＢＬ方向に延出するビット線ＢＬに接続される。
【０２６８】
ワード線ＷＬ０〜ＷＬ７は、ＷＬ方向に延び、ＷＬ方向の複数のメモリセルの制御ゲート電極ＣＧに共通に接続される。選択ゲート線ＳＧＳは、ＷＬ方向に延び、ＷＬ方向の複数の選択トランジスタＳ１に共通に接続される。選択ゲート線ＳＧＤも、ＷＬ方向に延び、ＷＬ方向の複数の選択トランジスタＳ２に共通に接続される。
【０２６９】
また、ワード線ＷＬ０〜ＷＬ７毎にページ（ＰＡＧＥ）が存在する。例えば、図中の破線で囲って示すように、ワード線ＷＬ７には、ページ７（ＰＡＧＥ７）が存在する。このページ（ＰＡＧＥ）毎に、データ読み出し動作、データ書き込み動作が行われるため、ページ（ＰＡＧＥ）はデータ読み出し単位であり、データ書き込み単位である。
【０２７０】
以上、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
以下に、本願の出願当初における特許請求の範囲を付記する。
[1]半導体記憶装置をホスト装置が認証する認証方法であって、
前記半導体記憶装置は、秘匿される第１鍵情報（NKey）、秘匿される固有の秘密識別情報（SecretID）、固有の暗号化秘密識別情報（E-SecretID）、および共通に付される鍵管理情報（FKB）を保持し、
前記ホスト装置は、秘匿される識別鍵情報（IDKey）、およびインデックス情報（k）を保持し、
前記ホスト装置が、前記半導体記憶装置から、前記暗号化秘密識別情報（E-SecretID）および前記鍵管理情報（FKB）を読み出すステップと、
前記ホスト装置が、読み出した前記鍵管理情報（FKB）および前記インデックス情報（k）を用いて、前記識別鍵情報（IDKey）から復号可能な暗号化された管理鍵情報（E-FKey）を取得するステップと、
前記ホスト装置が、選択した前記鍵管理情報（FKB）の記録位置を示す前記インデックス情報（k）と前記暗号化された管理鍵情報（E-FKey）とを、前記半導体記憶装置に送信するステップと、
前記半導体記憶装置が、前記第１鍵情報（NKey）と受信した前記インデックス情報（k）とを用いてインデックス鍵（INK）を生成するステップと、
前記半導体記憶装置が、前記インデックス鍵（INK）を用いて、前記暗号化された管理鍵情報（E-FKey）を復号して取得する管理鍵情報（FKey）を前記ホスト装置に送信するステップとを具備する認証方法。
[2]前記ホスト装置は、元情報(HC)と秘匿される第２鍵情報（HKey）とを更に保持し、
前記半導体記憶装置が、前記元情報(HC)および前記第１鍵情報（NKey）に基づいて、第３鍵情報（HKey’）を生成するステップと、
前記半導体記憶装置が、前記第３鍵情報(HKey’)と乱数とに基づいて、第１セッション鍵(SKey)を生成するステップと、
前記ホスト装置が、前記第２鍵情報(HKey)と前記乱数とに基づいて、第２セッション鍵(SKey’)を生成するステップと、
前記ホスト装置が、前記半導体装置から受信した前記管理鍵情報（FKey）を用いて、読み出した前記暗号化秘密識別情報（E-SecretID）を復号し、秘密識別情報（SecretID）を取得するステップとを具備する[1]に記載の認証方法。
[3]前記半導体記憶装置が、生成した前記第１セッション鍵（SKey）を用いて、前記秘密識別情報（SecretID）に一方向性変換処理を行い、一方向性変換データ（Oneway-ID）を生成して前記ホスト装置に送信するステップと、
前記ホスト装置が、生成した前記第２セッション鍵(SKey’)を用いて、前記秘密識別情報（SecretID）に一方向性変換処理を行い、一方向性変換データ（Oneway-ID’）を生成するステップと、
前記ホスト装置が、受信した前記一方向性変換データ（Oneway-ID）と、生成した前記一方向性変換データ（Oneway-ID’）とが一致するか否かを判定するステップとを更に具備する[2]に記載の認証方法。
[3]前記ホスト装置から前記半導体記憶装置に送信される前記暗号化された管理鍵情報（E-FKey）は、前記第２セッション鍵 (SKey’)により暗号化され、
前記半導体記憶装置から前記ホスト装置に送信される管理鍵情報（FKey）は、前記第１セッション鍵（SKey）により暗号化される[2]または[3]に記載の認証方法。
[5]秘匿される固有の秘密識別情報（SecretID）、固有の暗号化秘密識別情報（E-SecretID）、共通に付される鍵管理情報（FKB）、および第１鍵情報（NKey）を記憶するセルアレイと、
ホスト装置の元情報（HC）と前記第１鍵情報（NKey）とを用いて、第２鍵情報（HKey）を生成する第１データ生成部と、
生成した前記第２鍵情報（HKey）と乱数とを用いて、第１セッション鍵（SKey）を生成する第２データ生成部と、
前記第１鍵情報（NKey）と前記ホスト装置から送信されるインデックス情報（k）とを用いてインデックス鍵（INK）を生成する第３データ生成部と、
前記インデックス鍵（INK）を用いて、前記ホスト装置から送信される暗号化された管理鍵情報（E-FKey）を復号する第１復号部とを具備する半導体記憶装置であって、
前記暗号化秘密識別情報（E-SecretID）および前記鍵管理情報（FKB）は、前記ホスト装置に送信され、
前記第１鍵情報（NKey）からは前記第２鍵情報（HKey）が生成されるが、前記第２鍵情報（HKey）からは前記第１鍵情報（NKey）が生成されないように構成され、
復号された前記管理鍵情報（FKey）は、前記ホスト装置に送信される。
[6]前記第１セッション鍵（SKey）を用いて、前記ホスト装置から送信される暗号化された管理鍵データを復号して、前記暗号化された管理鍵情報（E-FKey）を生成する第２復号部と、
前記ホスト装置に送信される前記管理鍵情報（FKey）に、前記第１セッション鍵（SKey）を用いて暗号化する第１暗号化部と、
前記第１セッション鍵（SKey）を用いて、前記秘密識別情報（SecretID）に一方向性変換処理を行い、一方向性変換データ（Oneway-ID）を生成する一方向性変換器とを更に具備する[5]に記載の半導体記憶装置。
[7]前記第１、第２復号部および前記第１暗号化部は、共通鍵暗号を利用した復号処理または暗号化処理に統一して実装化される[6]に記載の半導体記憶装置。
[8]秘匿される第１鍵情報（NKey）を保持する半導体記憶装置を認証するホスト装置であって、前記ホスト装置は、
秘匿される識別鍵情報（IDKey）、第２鍵情報（HKey）、およびインデックス情報（k）を記憶するメモリと、
前記半導体記憶装置から読み出され前記インデックス情報（k）が示す位置の鍵管理情報（FKB）について、前記識別鍵情報（IDKey）から復号可能な暗号化された管理鍵情報（E-FKey）を生成する識別鍵情報生成部と、
前記第２鍵情報（HKey）と乱数とを用いて、第２セッション鍵（SKey’）を生成する第１データ生成部と、
前記暗号化された管理鍵情報（E-FKey）を、前記第２セッション鍵（SKey’）を用いて暗号化する第１暗号化部とを具備し、
前記第１鍵情報（NKey）からは前記第２鍵情報（HKey）が生成されるが、前記第２鍵情報（HKey）からは前記第１鍵情報（NKey）が生成されないように構成され、
前記インデックス情報（k）或いは前記インデックス情報（k）の一部および前記暗号化された管理鍵情報（E-FKey）は、前記半導体記憶装置に送信される。
[9]前記半導体記憶装置で生成される管理鍵情報（FKey）を受信し、前記第２セッション鍵（SKey’）を用いて復号して管理鍵情報（FKey）を生成する第１復号部と、
復号された前記管理鍵情報（FKey）を用いて、前記半導体記憶装置から読み出す暗号化秘密識別情報（E-SecretID）を復号し、秘密識別情報（SecretID）を生成する第２復号部とを更に具備する[8]に記載のホスト装置。
[10]前記第１暗号化部および前記第１、第２復号部は、共通鍵暗号を利用した復号処理または暗号化処理に統一して実装化される[9]に記載のホスト装置。
[11]前記第２セッション鍵（SKey’）を用いて、前記秘密識別情報（SecretID）に一方向性変換処理を行い、一方向性変換データ（Oneway-ID）を生成する一方向性変換器と、
生成した前記一方向性変換データ（Oneway-ID）と前記半導体記憶装置から受信する一方向性変換データ（Oneway-ID）とが一致するか否かを判定する検証部とを更に具備する[9]または[10]に記載のホスト装置。
【符号の説明】
【０２７１】
１０…ＮＡＮＤ型フラッシュメモリ（被認証装置）、１９…コントローラ、１１…セルアレイ、E-SecretID…固有の暗号化秘密識別情報、SecretID…固有の秘密識別情報、FKB…鍵管理情報、NKey…第１鍵情報、２０…ホスト装置（認証装置）、２３…メモリ、IDKey…識別鍵情報、k…インデックス情報、HKey…第２鍵情報、SKey…セッション鍵情報、FKey…管理鍵情報。
【図１】
0005275482.tif 000002
【図２】
0005275482.tif 000003
【図３】
0005275482.tif 000004
【図４】
0005275482.tif 000005
【図５】
0005275482.tif 000006
【図６】
0005275482.tif 000007
【図７】
0005275482.tif 000008
【図８】
0005275482.tif 000009
【図９】
0005275482.tif 000010
【図１０】
0005275482.tif 000011
【図１１】
0005275482.tif 000012
【図１２】
0005275482.tif 000013
【図１３】
0005275482.tif 000014
【図１４】
0005275482.tif 000015
【図１５】
0005275482.tif 000016
【図１６】
0005275482.tif 000017
【図１７】
0005275482.tif 000018
【図１８】
0005275482.tif 000019
【図１９】
0005275482.tif 000020
【図２０】
0005275482.tif 000021
【図２１】
0005275482.tif 000022
【図２２】
0005275482.tif 000023
【図２３】
0005275482.tif 000024
【図２４】
0005275482.tif 000025
【図２５】
0005275482.tif 000026
【図２６】
0005275482.tif 000027
【図２７】
0005275482.tif 000028
【図２８】
0005275482.tif 000029