(57)【特許請求の範囲】
【請求項１】
外部コントローラによりコントロールされるメモリ装置であって、
第１鍵情報と前記メモリ装置固有に割り当てられた第１識別情報とが格納され、前記メモリ装置外からのリードが制限される第１領域と、
前記第１識別情報が暗号化されて生成された暗号化第１識別情報が格納され、リード可能な第２領域と、
を備え、
前記第１鍵情報と、外部装置から受けた該外部装置に割り当てられた第２識別情報とを用いて暗号化処理を行うことにより、第２鍵情報を生成し、
前記第２鍵情報と前記外部装置から受けた乱数情報とを用いて暗号化処理を行うことにより、第３鍵情報を生成し、
前記第３鍵情報と前記第１識別情報とを用いて一方向性変換処理を行うことにより、前記外部装置との認証に用いられる一方向性変換識別情報を生成し、前記外部装置に認証されるように構成されたメモリ装置。
【請求項２】
コントローラと、該コントローラによりコントロールされるメモリ装置とを含むストレージメディアであって、前記メモリ装置は、
第１鍵情報と前記メモリ装置固有に割り当てられた第１識別情報とが格納され、前記メモリ装置外からのリードが制限される第１領域と、
前記第１識別情報が暗号化されて生成された暗号化第１識別情報が格納され、リード可能な第２領域と、
を備え、前記メモリ装置は、
前記第１鍵情報と、外部装置から受けた該外部装置に割り当てられた第２識別情報とを用いて暗号化処理を行うことにより、第２鍵情報を生成し、
前記第２鍵情報と前記外部装置から受けた乱数情報とを用いて暗号化処理を行うことにより、第３鍵情報を生成し、
前記第３鍵情報と前記第１識別情報とを用いて一方向性変換処理を行うことにより、前記外部装置との認証に用いられる一方向性変換識別情報を生成し、前記外部装置に認証されるように構成されたストレージメディア。
【請求項３】
メモリ装置固有に割り当てられた第１識別情報が格納されるとともにリードが制限される第１領域と、前記第１識別情報が暗号化されて生成された暗号化第１識別情報が格納されるとともにリード可能な第２領域とが設けられ、外部コントローラによりコントロールされるメモリ装置との間で認証処理を実行可能なホスト装置であって、
前記ホスト装置は、
第１鍵情報と、セットとして記録されるとともに前記ホスト装置に割り当てられた第２識別情報としての第２鍵情報と、を有し、
前記第２領域に格納された前記暗号化第１識別情報をリードし、前記第１鍵情報を用いた処理により得た情報によって、前記暗号化第１識別情報を復号し、
前記第２領域に格納されたインデックス情報をリードし、前記セットの中から、該インデックス情報に対応する前記第２鍵情報を選び、
前記選ばれた第２鍵情報を用いて乱数情報を暗号化することにより第３鍵情報を生成し、
前記第３鍵情報と、前記暗号化第１識別情報が復号されて新たに生成された第１識別情報とを入力値とした一方性変換処理を行い、検証情報を生成するように構成されたホスト装置。
【請求項４】
外部コントローラによりコントロールされるメモリ装置と、該メモリ装置との間で認証処理を実行可能なホスト装置とを含むシステムであって、
前記メモリ装置は、
第１鍵情報と前記メモリ装置固有に割り当てられた第１識別情報とが格納され、前記メモリ装置外からのリードが制限される第１領域と、
前記第１識別情報が暗号化されて生成された暗号化第１識別情報が格納され、リード可能な第２領域と、を備え、前記メモリ装置は、
前記第１鍵情報と、前記ホスト装置から受けた該ホスト装置に割り当てられた第２識別情報とを用いて暗号化処理を行うことにより、第２鍵情報を生成し、
前記第２鍵情報と前記ホスト装置から受けた乱数情報とを用いて暗号化処理を行うことにより、第３鍵情報を生成し、
前記第３鍵情報と前記第１識別情報とを用いて一方向性変換処理を行うことにより、前記ホスト装置との認証に用いられる一方向性変換識別情報を生成し、前記ホスト装置に認証されるように構成され、
前記ホスト装置は、
第１ホスト鍵情報と、前記ホスト装置に割り当てられた前記第２識別情報と、を有し、
前記第２領域に格納された前記暗号化第１識別情報をリードし、前記第１ホスト鍵情報を用いた処理により得た情報によって、前記暗号化第１識別情報を復号し、
前記乱数情報を暗号化することにより前記第３鍵情報を生成し、
前記第３鍵情報と、前記暗号化第１識別情報が復号されて新たに生成された第１識別情報とを入力値とした一方性変換処理を行い、検証情報を生成するように構成されたシステム。
【請求項５】
コントローラと、該コントローラによりコントロールされるメモリ装置とを含むストレージメディアと、該ストレージメディアとの間で認証処理を実行可能なホスト装置とを含むシステムであって、
前記メモリ装置は、
第１鍵情報と前記メモリ装置固有に割り当てられた第１識別情報とが格納され、リードが制限される第１領域と、
前記第１識別情報が暗号化されて生成された暗号化第１識別情報が格納され、リード可能な第２領域と、を備え、前記メモリ装置は、
前記第１鍵情報と、前記ホスト装置から受けた該ホスト装置に割り当てられた第２識別情報とを用いて暗号化処理を行うことにより、第２鍵情報を生成し、
前記第２鍵情報と前記ホスト装置から受けた乱数情報とを用いて暗号化処理を行うことにより、第３鍵情報を生成し、
前記第３鍵情報と前記第１識別情報とを用いて一方向性変換処理を行うことにより、前記ホスト装置との認証に用いられる一方向性変換識別情報を生成し、前記ホスト装置に認証されるように構成され、
前記ホスト装置は、
第１ホスト鍵情報と、前記ホスト装置に割り当てられた前記第２識別情報と、を有し、
前記第２領域に格納された前記暗号化第１識別情報をリードし、前記第１ホスト鍵情報を用いた処理により得た情報によって、前記暗号化第１識別情報を復号し、
前記乱数情報を暗号化することにより前記第３鍵情報を生成し、
前記第３鍵情報と、前記暗号化第１識別情報が復号されて新たに生成された第１識別情報とを入力値とした一方性変換処理を行い、検証情報を生成するように構成されたシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
認証装置、被認証装置、およびその認証方法に関するものである。
【背景技術】
【０００２】
一般に、情報セキュリティを要する分野において、自己の正当性を証明する手段として互いに共有した秘密情報と暗号器を用いた手法が採られている。
【０００３】
例えば、電子決済に用いるICカード（SmartCard）等では、カード内のICには当該ICカードを個別化するためのID及び秘密情報が保持されており、更にICカードは、ID及び秘密情報に基づく認証を行うための暗号処理機能を有している。別の例では、コンテンツの著作権保護において、SD（登録商標）カードの正当性を証明する手段としてはContent Protection for Recordable Media（CPRM）において認証方式が規定されている。
【０００４】
認証などのセキュリティシステムを構築する場合には、当該認証処理を行う装置が攻撃されて秘匿されている情報が抜き出されるといったことも想定しておく必要があり、抜き出された秘匿情報を無効化（Revoke）する方法も重要である。前述のCPRMやBlu-ray Discに記録されたコンテンツを保護するために規定されている保護技術であるAdvanced Access Content System（AACS）などでは、秘匿情報であるデバイス鍵の無効化にはMedia Key Block（MKB）という技術を利用しており、公開鍵暗号ベースのプロトコルを採用している方式では漏洩した秘密鍵情報と対になった公開鍵証明書のリスト（Revocation List）を利用している。
【０００５】
SD（登録商標）カードに記録されたビデオデータをPCにインストールされたビデオ再生ソフトで再生するシステムを例に挙げると、SD（登録商標）カード内のCPRM処理はハードウェアで実装されているために秘匿された情報を不正に取り出すことは非常に困難であるが、それに比べて再生ソフトウェアから秘匿情報を抜き出す方が攻撃としては容易である場合が多い。現実にも、保護されたDVDやBlu-rayビデオコンテンツを不正に復号するソフトウェアも多く出回っており、当該不正ソフトウェアでは正規のソフトウェアプレーヤから抜き出した秘匿情報が利用されている。
【０００６】
加えて、ソフトウェアから抜き出した秘匿情報を使って、SD（登録商標）カードに成り済まして正規のソフトウェアプレーヤを騙すといったカードの模倣ソフトウェアや模倣SDカードを防ぐための対策が必要な場合もある。例えば、模倣SD（登録商標）カードからはコンテンツ暗号化に使われた暗号化鍵を容易に読み出せるように作っておくことで、正規のビデオ録画機器を使って模倣SD（登録商標）カードに録画したビデオコンテンツを後から容易に復号できるようになる。
【０００７】
ここで、認証装置は、民生機器の様な専用ハードウェア装置だけでなく、例えば、PC（パーソナルコンピュータ）などで実行可能なプログラム（ソフトウェア）として提供され、当該ソフトウェアが実質的な認証装置となる場合もある。一方、被認証装置は、例えば、記録メディア等であり、記録メディアを構成するハードウェアの動作にはファームウェアと呼ばれるプログラムが介在する場合であっても、重要な処理や情報はセルアレイ中のハードウェア内に秘匿された状態で記憶される。そのため、現実的には、例えば、PC上で実行されるソフトウェアが認証装置の場合では、記録メディア等の被認証装置に比べて耐タンパー性能（攻撃に対する耐性）が低くなってしまうことが懸念される。
【０００８】
そのため、耐タンパー性能の低い認証装置を攻撃することで、耐タンパー性の高い被認証装置に秘匿された秘密情報をも暴露され、耐タンパー性の高い装置に成りすまされることが懸念されている。このように、秘密情報の不正利用の防止が要求される傾向にある。
【０００９】
また、近年では、比較的大きな回路規模を要求される公開鍵暗号処理やMKB処理のハードウェア実装が困難である等の回路規模上の制約が同時に課せられる環境下においても、上記要求が強くなる傾向もある。
【先行技術文献】
【非特許文献】
【００１０】
【非特許文献１】Content Protection for Recordable Media (CPRM), http://www.4centity.com/
【非特許文献２】Media Identifier Management Technology (MIMT), http://www.4ecntity.com/
【発明の概要】
【発明が解決しようとする課題】
【００１１】
秘密情報の不正利用の防止に有利なメモリ装置、ストレージメディア、ホスト装置、及びシステムを提供する。
【課題を解決するための手段】
【００１２】
実施形態のメモリ装置によれば、外部コントローラによりコントロールされるメモリ装置であって、第１鍵情報と前記メモリ装置固有に割り当てられた第１識別情報とが格納され、前記メモリ装置外からのリードが制限される第１領域と、前記第１識別情報が暗号化されて生成された暗号化第１識別情報が格納され、リード可能な第２領域と、を備え、前記第１鍵情報と外部装置から受けた該外部装置に割り当てられた識別情報とを用いて暗号化処理を行うことにより、第２鍵情報を生成し、前記第２鍵情報と前記外部装置から受けた乱数情報とを用いて暗号化処理を行うことにより、第３鍵情報を生成し、前記第３鍵情報と前記第１識別情報とを用いて一方向性変換処理を行うことにより、前記外部装置との認証に用いられる一方向性変換識別情報を生成し、前記外部装置に認証されるように構成される。
【図面の簡単な説明】
【００１３】
【図１】第１の実施形態に係るメモリシステムの構成例を示すブロック図。
【図２】第１の実施形態に係るメモリシステムの認証フローを示すフロー図。
【図３】第１の実施形態に係る暗号化LotID束（SELID）の構成例を示す図。
【図４】第２の実施形態に係るメモリシステムの構成例を示すブロック図。
【図５】第２の実施形態に係るメモリシステムの認証フローを示すフロー図。
【図６】第２の実施形態に係る暗号化LotID束（SELID）の構成例を示す図。
【図７】第３の実施形態に係るメモリシステムの構成例を示すブロック図。
【図８】第３の実施形態に係るメモリシステムの認証フローを示すフロー図。
【図９】第４の実施形態に係るメモリシステムの構成例を示すブロック図。
【図１０】第４の実施形態に係るメモリシステムの認証フローを示すフロー図。
【図１１】第５の実施形態に係るメモリシステムの構成例を示すブロック図。
【図１２】第５の実施形態に係るメモリシステムの認証フローを示すフロー図。
【図１３】第６の実施形態に係るメモリシステムの構成例を示すブロック図。
【図１４】第６の実施形態に係るメモリシステムの認証フローを示すフロー図。
【図１５】第７の実施形態に係るメモリシステムの構成例を示すブロック図。
【図１６】第７の実施形態に係るメモリシステムの認証フローを示すフロー図。
【図１７】第７の実施形態に係る暗号化LotID束（SELID）の構成例を示す図。
【図１８】第８の実施形態に係るメモリシステムの構成例を示すブロック図。
【図１９】第８の実施形態に係るメモリシステムの認証フローを示すフロー図。
【図２０】第８の実施形態に係る暗号化ChipID束（SECID）の構成例を示す図。
【図２１】第９の実施形態に係るメモリシステムの構成例を示すブロック図。
【図２２】第９の実施形態に係るメモリシステムの認証フローを示すフロー図。
【図２３】第９の実施形態に係る暗号化ChipID束（SECID）の構成例を示す図。
【図２４】第１０の実施形態に係るメモリシステムの構成例を示すブロック図。
【図２５】第１０の実施形態に係るメモリシステムの認証フローを示すフロー図。
【図２６】第１１の実施形態に係るメモリシステムの構成例を示すブロック図。
【図２７】第１１の実施形態に係るメモリシステムの認証フローを示すフロー図。
【図２８】第１２の実施形態に係るメモリシステムの構成例を示すブロック図。
【図２９】第１２の実施形態に係るSECID書き込み前の被認証装置を示す図。
【図３０】第１２の実施形態に係るSECIDをダウンロードするシステムを示すブロック図。
【図３１】第１２の実施形態に係るSECIDをダウンロードするフローを示すフロー図。
【図３２】第１３の実施形態に係るメモリシステムを示すブロック図。
【図３３】第１４の実施形態に係るＮＡＮＤ型フラッシュメモリを示すブロック図。
【図３４】第１４の実施形態に係るブロック（BLOCK）を示す等価回路図。
【発明を実施するための形態】
【００１４】
以下、実施形態について図面を参照して説明する。この説明においては、認証装置、被認証装置、およびその認証方法として、メモリシステムを一例に挙げるが、これに限られることはない。尚、この説明においては、全図にわたり共通の部分には共通の参照符号を付す。
【００１５】
［第１の実施形態］  
第１の実施形態に係る認証装置、被認証装置、およびその認証方法について説明する。
【００１６】
＜１．構成例（メモリシステム）＞  
まず、図１を用い、第１の実施形態に係るメモリシステムの構成例について説明する。
【００１７】
図示するように、第１の実施形態に係るメモリシステムは、被認証装置であるＮＡＮＤ型フラッシュメモリ１０、認証装置であるホスト装置２０、および両者を仲介するコントローラ１９を備える。ホスト装置２０は、コントローラ１９により、ＮＡＮＤ型フラッシュメモリ１０にアクセスする。
【００１８】
ここで、ＮＡＮＤ型フラッシュメモリ１０等の半導体製品の製造工程について、簡単に説明する。半導体製品の製造工程は、主に基盤ウエハー上に回路を形成する前工程と、前期ウエハーを個片に切り分けた後、配線や樹脂パッケージ封入などを行う後工程に分けられる。ここで、コントローラ１９は、前工程においてＮＡＮＤ型フラッシュメモリ１０内に包含されるよう構成される場合、前工程においては包含されないが後工程において同一パッケージに包含されるように構成される場合、ＮＡＮＤ型フラッシュメモリ１０とは異なるチップの形態をとる場合、など様々な場合がある。図１を含め、以下では、コントローラ１９は、ＮＡＮＤ型フラッシュメモリ１０とは異なるチップの形態を採る場合を例にとっている。以下、特に断りのない限り、ホスト装置２０とＮＡＮＤ型フラッシュメモリ１０間のデータや命令のやり取りにおいては、多くの場合コントローラ１９が仲介するものである。この場合でもコントローラ１９は、前述のデータや命令の本質的内容を変えることはないため、詳細については、省略して説明する場合がある。なお、ＮＡＮＤ型フラッシュメモリ１０およびコントローラ１９の構成例の詳細な説明については、後述する。
【００１９】
なお、ホスト装置２０は、民生機器のように専用ハードウェアで構成される場合、専用ハードウェアとそれを動作させるファームウェアの組み合わせで構成される場合だけでなく、装置の機能がPC上で動作するソフトウェアプログラムで構成される場合も考えられる。
【００２０】
以下において、図１に示す各コンポーネント、データ処理について、以下で説明する。本例では、被認証装置であるＮＡＮＤ型フラッシュメモリ１０に記録されているChipIDやLotIDといった識別情報を第３者から秘匿した状態で読み出すと共に、前述の被認証装置１０から読み出されたデータであることを確実に確認する方法、及び同方法をＮＡＮＤ型フラッシュメモリ１０に適用する場合の構成例を示すものである。
【００２１】
１−１．ＮＡＮＤ型フラッシュメモリ  
次に、被認証装置であるＮＡＮＤ型フラッシュメモリ１０について説明する。  
本例に係るＮＡＮＤ型フラッシュメモリ１０は、セルアレイ１１、及びセルアレイ１１の周辺領域に配置されるデータキャッシュ１２、データ生成回路（Generate）１３、１６、データ結合回路（Concatenate）１４、乱数生成器（RNG）１５、排他的論理和回路（EXOR）１７、暗号化器（Encrypt）１８等を備える。
【００２２】
セルアレイ（Cell array）１１には、図示しないビット線およびワード線の交差位置にマトリックス状に複数のメモリセルが配置される。メモリセルは、半導体基板上に順次、トンネル絶縁膜、浮遊ゲート、層間絶縁膜、及びワード線と接続される制御ゲートを各々備える。ビット線方向のメモリセルの電流経路は直列接続され、セルユニットを形成する。セルユニットは、ビット線、ソース線に接続される選択トランジスタにより選択される。ワード線方向の複数メモリセルは、データ読み出し及びデータ書き込みの単位である1ページ（Page）を形成する。また、複数のページはデータ消去の単位であるブロック（Block）を形成する。詳細については、後述する。
【００２３】
また、セルアレイ１１は、一般領域（User area）１１−１、秘匿領域（Hidden area）１１−２、ROM領域（ROM area）１１−３等を備える。
【００２４】
一般領域（User area）１１−１は、データ記録及びデータ読み出しのいずれも自由に可能な領域である。一般領域１１−１には、暗号化LotID束であるSELID（Set of Encrypted LotID）が記録される。その他として、一般領域１１−１には、例えば、写真、ビデオ、音楽或いは電子書籍といったコンテンツデータ等が記録される。なお、本例のSELIDの構成例については、図３において後述する。
【００２５】
秘匿領域（Hidden area）１１−２は、ＮＡＮＤ型フラッシュメモリ１０の外に対してはデータ記録だけでなく、データ読み出しも禁止される領域である（Read/Program inhibit）。本例に係る秘匿領域１１−２には、上記認証においてＮＡＮＤ型フラッシュメモリ１０が用いる秘密情報であるNKey（第１鍵情報）が記録される。後述するように、この第１鍵情報（NKey）からは、第２鍵情報（HKey）を生成する。一方、第２鍵情報（HKey）からは、第１鍵情報（NKey）を生成しないように構成される。
【００２６】
ROM領域１１−３は、外部からのデータ記録が禁止され、データ読み出しが許可される領域である。本例に係るROM領域１１−３には、識別情報であるチップＩＤ（ChipID）とロットＩＤ（LotID）とが記録される。これらのChipIDやLotIDを記録する際にはデータに誤りが生じてしまった場合でも正しい識別情報が読み出せるようにするために一般的には誤り訂正符号化された状態で記録されるが、誤り訂正符号化／復号処理については特に図示していない。ここで、チップＩＤ（ChipID）とは、ＮＡＮＤ型フラッシュメモリ１０の１チップ毎に付されるユニークなIDを言う。ロットＩＤ（LotID）とは、ＮＡＮＤ型フラッシュメモリ１０の製造工程である程度の数毎に異なって付されるIDである。例えば、LotIDは、予め決められた100万個といった数量毎に変更される場合や、1ヶ月や半年など製造時期毎に変更される場合などが考えられる。また、これらのChipIDやLotIDを外部から常に秘匿しておきたい場合などではROM領域の代わりに、前記秘匿領域に記録しても良い。
【００２７】
尚、上記におけるROM領域１１−３、秘匿領域１１−２、一般領域１１−２は、物理的構成を異ならせることで実現しても良いし、物理的構成は同一であるがＮＡＮＤ型フラッシュメモリ１０内の論理的制御で実現しても良い。ここで、論理的制御とは、領域毎にＮＡＮＤ型フラッシュメモリ１０外からのアクセスを制御する識別子を設け、これを保持し、ＮＡＮＤ型フラッシュメモリ１０が外部から当該領域へのアクセスを受容した際に、同識別子によってアクセス制御を行う、などの方法がある。
【００２８】
また、セルアレイ（Cell array）１１を構成する個々のメモリセルは、複数ビットを記憶するもの（MLC: Multi Level Cell）であっても良いし、1ビットを記録するもの（SLC: Single Level Cell）であってもよい。更に、ROM領域１１−３及び秘匿領域１１−２についてはSLCで利用する構成とし、一般領域１１−１についてはMLCで利用する構成としてもよい。この時、SLC領域とMLC領域とはセルアレイの物理的構成が異なっていても良いし、MLCとして利用可能なメモリセルの一部のビットのみを使用して、擬似的なSLC領域として利用しても良い。
【００２９】
データキャッシュ（Data Cache）１２は、セルアレイ１１から読み出したデータを一時的に記憶する。
【００３０】
データ生成回路（Generate）１３、１６は、複数の入力データから予め定められた演算によって出力データを生成する回路である。データ生成回路１３は、ホスト装置２０から受信した情報（HCj）を前述の第１秘密情報NKeyを用いて変換することで、HKeyj（第２鍵情報）を生成する。このように、ＮＡＮＤ型フラッシュメモリ１０側では、第１鍵情報（NKey）から、第２鍵情報（HKey j）を生成することができる。
【００３１】
データ生成回路１６は、ホスト装置２０から受信した乱数RNhと当該ＮＡＮＤ型フラッシュメモリ１０自身が生成した乱数RNcを結合したデータを前記HKeyjを用いて変換することで、セッション鍵SKeyjを生成する。例えば、データ生成回路１３、１６は、AES（Advanced Encryption Standard）暗号化器などを用いることも可能である。
【００３２】
尚、データ生成回路（Generate）１３、１６は、複数の入力情報から新たなデータを出力する回路である。全体の回路規模を小さくするために、暗号化器１８と同じ或いは暗号化器１８を流用した回路で構成することも可能である。同様にデータ処理手順を分かり易くするために異なる構成要素として図示されている２つのデータ生成回路１３、１６は、同じ回路を繰り返し利用することが可能である。
【００３３】
データ結合回路（Concatenate）１４は、２つの入力データ（乱数RNh、乱数RNc）を結合し、結合されたデータをデータ生成回路１６に出力する。
【００３４】
乱数生成器（RNG: Random Number Generator）１５は、認証に用いる乱数RNcを生成する。
【００３５】
排他的論理和回路（EXOR）１７は、ROM領域１１−３から読み出される２つの識別情報（ChipID, LotID）を入力として、この２つの入力データの排他的論理和を計算し、その結果を出力する。なお、前記記載の通り当該識別情報がROM領域の代わりに秘匿領域に記録されている場合には、当該排他的論理和回路の入力データである当該識別情報は秘匿領域から読み出される。
【００３６】
暗号化器（Encrypt）１８は、入力されたデータを別途入力された鍵データで暗号化し、暗号化された入力データを出力する回路である。本実施例では、ROM領域１１−３から読み出した2つの識別情報（ChipID, LotID）の排他的論理和回路１７による演算した結果を、データ生成回路１６によって生成された鍵データSKeyjを用いて暗号化し、暗号化識別情報Enc-ID = Enc(SKeyj、 ChipID (+) LotID)を生成する。なお、前述の通り、全体のハードウェア回路規模を小さくするために当該暗号化器１８を、データ生成回路としても使用することも可能である。ここで、(+)は、排他的論理和を表す。
【００３７】
また、ここでは図示しないが、例えば、コントローラ１９を介してホスト装置２０に送付されるデータを出力する出力部なども実際には構成要素として配置される。
【００３８】
なお、上記セルアレイ１１以外のデータキャッシュ１２等の構成要素は、例えば、メモリコントローラ（Controller）１９に配置することも同様に可能である。
【００３９】
１−２．ホスト装置  
次に、本例に係るホスト装置（Host）２０について説明する。  
ホスト装置２０は、メモリ（Memory）２３、乱数生成部（RNG）２５、データ結合部（Concatenate）２６、排他的論理和部（EXOR）２４、２９、データ選択部（Select）２１、データ生成部（Generate）２７、及び復号部（Decrypt）２２、２８等を備える。
【００４０】
メモリ（Memory）２３は、本実施形態の認証処理を実行するために必要となる秘密情報HKeyj及びホスト定数HCjを記憶する。特に秘密情報HKeyjは外部に露呈しないような手段を用いて記憶しておく必要がある。そのため、例えば、専用ハードウェアを用いて構成される民生機器のようなホスト装置の場合には、完全に外部から遮断された専用メモリに記録する、或いは図示しないがホスト装置独自に用意した暗号処理を用いて暗号化された上でメモリに記録するなどの手段を用いることが望ましい。例えば、PC上で動作するプログラムソフトウェアの場合には、耐タンパーソフトウェア技術を用いてプログラム自体を保護しておくことで当該秘密情報HKeyjも厳重に保護することが可能である。
【００４１】
乱数生成部（RNG: Random Number Generator）２５は、認証に用いるRNｈを生成する。
【００４２】
データ結合部（Concatenate）２６は、乱数生成部１５、２５から生成される２つの入力乱数データ（RNｈ、RNｃ）結合し、結合されたデータを出力する。
【００４３】
排他的論理和部（EXOR）２４、２９は、入力された2つのデータの排他的論理和を計算し、その結果を出力する。
【００４４】
データ選択部（Select）２１は、ＮＡＮＤ型フラッシュメモリ１０から読み出した暗号化LotID束（SELID）から当該ホスト装置２０が秘匿している秘密情報HKeyjを用いて復号可能な暗号化LotIDデータを、秘密情報HKeyjのインデックス情報jを用いて、選択する。例えば、前記秘密情報HKeyjは、民生機器であれば内部の専用メモリにメーカ独自の方法で暗号化した上で記録されていたり、ソフトウェアプログラムであればタンパーレジスタントソフトウェア（TRS）技術によって不正な解析から保護できる状態で保持していたり、或いはセキュリティモジュールを内蔵している場合には当該セキュリティモジュールの機能を利用して秘匿するなどの対策を採った上で秘匿される。
【００４５】
データ生成部（Generate）２７は、複数の入力データから予め定められた演算によって出力データを生成する演算部であり、NAND型フラッシュメモリに具備されたデータ生成回路１６と同じ演算処理を行う。本例のデータ生成部２７は、当該ホスト装置２０自身が生成した乱数RNhとＮＡＮＤ型フラッシュメモリ１０から受信した乱数RNcを結合したデータを、当該ホスト装置２０が秘匿している秘密情報HKeyjを用いて変換することで、セッション鍵SKeyjを生成する。尚、データ生成部２７は、AES暗号化演算などを用いることも可能である。
【００４６】
復号部（Decrypt）２２、２８は、入力されたデータを別途入力された鍵データで復号し、復号された入力データを出力する。本実施例では、復号部２２は、ホスト装置が秘匿している秘密情報HKeyjと必要に応じて当該秘密情報HKeyjを識別するためのインデックス情報jを排他的論理和部で演算した結果を鍵情報として前記データ選択部２１において選択された暗号化LotIDデータを復号し、LotIDを得るために用いられる。  
復号部２８は、ＮＡＮＤ型フラッシュメモリ１０から受信した暗号化識別情報Enc-IDを前記データ生成部２７から出力されたSKeyjを用いて復号し、排他的論理和２９に出力する。これらの復号処理の結果、ホスト装置２０は、ChipIDとLotIDの2つの識別情報のデータを得ることが可能である。
【００４７】
上記のように、ホスト装置２０は、第１段目の復号部２２によりLotIDを得る。さらに、得られたLotIDと第２段目の復号部２８の出力データとについて、排他的論理和２９による演算結果によりChipIDも得ることができる。さらに、前記暗号化識別情報Enc-IDが共有した鍵データSKeyjを用いて暗号化されることで、ホスト装置２０が認証したＮＡＮＤ型フラッシュメモリ１０から当該識別情報（ChipID、LotID）が正しく読み出されたことを確認するものである。
【００４８】
尚、この他に図示しない誤り訂正処理部なども必要に応じて構成要素として備える。
【００４９】
＜２．認証フロー＞  
次に、図２に沿って、図1に示した構成におけるメモリシステムの認証フローについて説明する。
【００５０】
まず、認証を開始（Start）すると、ホスト装置２０は、ＮＡＮＤ型フラッシュメモリ１０から暗号化LotID束（SELID: Set of Encrypted LotID）を読み出す（Step Ｓ１１）。
【００５１】
続いて、ホスト装置２０は、読み出したSELIDから選択部２１により選択処理を行い、当該ホスト装置２０が復号可能な暗号化LotIDデータを読み出す。さらに、秘匿している秘密情報HKeyjを用いて復号部２２により上記復号処理を行い、LotIDを得る（Step Ｓ１２）。
【００５２】
続いて、ホスト装置２０は、認証要求時に必要となる乱数RNhを生成する。認証処理に乱数RNhを用いることにより、以下の処理で、ＮＡＮＤ型フラッシュメモリ１０との間で毎回異なる共有鍵を利用することが可能となる（Step Ｓ１３）。
【００５３】
続いて、ホスト装置２０は、認証要求（Request authentication）と共に、予め保持しているホスト定数（HCj）と前記乱数RNhをＮＡＮＤ型フラッシュメモリ１０に送信する（Step Ｓ１４）。
【００５４】
続いて、ＮＡＮＤ型フラッシュメモリ１０は、認証要求を受け、秘匿領域１１−２に秘匿するNKeyをロードし、データキャッシュ１２に保持する（Step Ｓ１５）。
【００５５】
続いて、ＮＡＮＤ型フラッシュメモリ１０は、乱数生成器１５により認証に必要となる乱数RNcを生成し、ホスト装置に送出する（Step Ｓ１６）。
【００５６】
ここで、Step Ｓ１６の処理と平行して、ホスト装置２０は、Step Ｓ１３で生成した乱数RNhとStep Ｓ１５で受信した乱数RNcを用い、結合部２６による上記データ結合処理の結果、結合データRNh || RNcを生成する。さらに、予め秘匿していた秘密情報HKeyjと前記結合データRNh || RNcを用い、生成部２７による上記データ生成処理により、SKeyj (= Generate(HKeyj、 RNh || RNc))を生成する（Step Ｓ１７）。
【００５７】
続いて、ＮＡＮＤ型フラッシュメモリ１０は、ロードしたNKeyとStep Ｓ１４において受信したホスト定数HCjを用いて、上記データ生成処理回路１３により、HKeyjを生成する。さらに、Step Ｓ１４で受信した乱数RNh及びStep Ｓ１５で生成した乱数RNcから上記データ結合処理回路１４により結合データRNh || RNcを生成する。さらに、前記HKeyjと前記結合データRNh || RNcを用いて、データ生成回路１６の上記データ生成処理により鍵データSKeyj(= Generate(HKeyj、 RNh || RNc))を生成する（Step Ｓ１８）。
【００５８】
続いて、ホスト装置２０は、ID要求（Request ID）をＮＡＮＤ型フラッシュメモリ１０に送る（Step Ｓ１９）。
【００５９】
続いて、ＮＡＮＤ型フラッシュメモリ１０は、ChipIDとLotIDをROM領域１１−３から読み出す（Step Ｓ２１）。
【００６０】
続いて、ＮＡＮＤ型フラッシュメモリ１０は、排他的論理和回路１７によりChipIDとLotIDの排他的論理和（ChipID  (+)  LotID）を計算する。さらに、暗号化器１８により、これらをStep Ｓ１８で生成した鍵データSKeyjで暗号化し、暗号化識別情報Enc-ID (=Enc(SKeyj、 ChipID (+) LotID))を生成し、生成された暗号化識別情報Enc-IDをホスト装置２０に送出する（Step Ｓ２２）。
【００６１】
続いて、ホスト装置２０は、復号部２８により、受信した暗号化識別情報Enc-IDをStep Ｓ１７で生成した鍵データSKeyjを用いて復号し、ID = ChipID (+) LotIDを得る（Step Ｓ１１）。
【００６２】
続いて、ホスト装置２０は、排他的論理和部２９により、前記IDとStep Ｓ１２で得られたLotIDの排他的論理和を求めることにより、ChipIDを得る（Step Ｓ２４）。
【００６３】
以上の動作により、第１の実施形態に係る認証フローを終了する（End）。
【００６４】
＜３．SELIDについて＞  
次に、図３を用い、本例に係るSELIDについて説明する。  
LotIDが記録されているNAND型フラッシュメモリに適合したSELIDを生成するためには、予め用意された秘密情報である第２鍵情報束（HKeyj (j=1,…,n)（Set of HKeys）の１つ１つの第２鍵情報HKeyjを用いて、LotIDを１つ１つ暗号化する。つまり、SELIDは、暗号化LotIDj(E-LotIDj) = Encrypt(HKeyj, LotID)の集合であり、この暗号化LotIDの集合を暗号化LotID束と呼んでいる。
【００６５】
暗号化時には、必要に応じて各第２鍵情報HKeyjは、各々のインデックス情報jと排他的論理和演算を行った結果を暗号化鍵として用い、その際の暗号化LotIDjは次のように計算される：E-LotIDj = Encrypt(HKeyj (+) j, LotID)。
【００６６】
ここで、上記の例は、HKeyj (+) jを暗号化鍵として用いる例であるが、これに限らず、例えば、巡回シフト演算を用いても良い。巡回シフト演算とは、ビットを移動し、桁を超えてしまったものを反対側に繰り上げて移動することである。左巡回シフト演算を例にとると、２進法で11010101を左に3回巡回シフトすると10101110となる。以下に示す式を用いて暗号化鍵を計算しても良い：E-LotIDj = Encrypt(CyclicLeftShift(HKeyj , j), LotID)。ここで、CyclicLeftShift(HKeyj , j)はHKeyjを左にj回巡回シフトすることを表す。この場合、図１の排他的論理和部２４は左巡回シフト演算を行う左巡回シフト部に置き換えれば良い。これらの事柄は、後述する他の実施形態においても同様である。
【００６７】
尚、SELIDの構成については、本例に限られない。例えば、特定のHKeyjが露呈してしまった場合、当該HKeyjを保持しているホスト装置２０では暗号化LotID束からLotIDを復号することができないようにするために、当該秘密情報HKeyjで復号可能な暗号化LotIDをSELIDから削除することにより新たに構成されたSELIDを記録したＮＡＮＤ型フラッシュメモリ１０を使用した場合には、当該ホスト装置では正しいLotID及びChipIDを得る（復号する）ことができないようにすることも可能である。このようにすることで、当該秘密情報HKeyjを保持したホスト装置２０を無効化する機能を提供することも可能である。
【００６８】
＜４．作用効果＞  
第１の実施形態に係る認証装置、被認証装置、およびその認証方法によれば、少なくとも下記（１）乃至（２）の効果が得られる。
【００６９】
（１）ホスト装置２０から秘密情報が漏洩した場合であっても、漏洩した情報を用いたＮＡＮＤ型フラッシュメモリ１０の秘密情報の不正利用を防止することができる。  
ここで、認証装置であるホスト装置２０は、民生機器の様な専用ハードウェア装置だけでなく、例えば、PC（パーソナルコンピュータ）などで実行可能なプログラム（ソフトウェア）として提供され当該ソフトウェアが実質的なホスト装置となる場合もある。一方、被認証装置であるＮＡＮＤ型フラッシュメモリ１０は、記録メディアであり、ファームウェアと呼ばれるプログラムが介在する場合であっても、重要な処理や情報はセルアレイ１１中のハードウェア内に秘匿された状態で記憶される。そのため、現実的には、例えば、PC上で実行されるソフトウェアは、記録メディアに比べて耐タンパー性能（攻撃に対する耐性）が低くなってしまうことが懸念される。そのため、耐タンパー性能の低いホスト装置（認証装置）２０を攻撃することで、耐タンパー性の高いＮＡＮＤ型フラッシュメモリ１０（被認証装置）に秘匿された秘密情報をも暴露され、耐タンパー性の高い装置に成りすまされることが懸念される。
【００７０】
そこで、第１の実施形態に係る構成及びその認証方式では、上記のように、比較的耐タンパー性の高いＮＡＮＤ型フラッシュメモリ１０は、第１鍵情報（NKey）から第２鍵情報（HKey）を生成する第１鍵情報（NKey）をセルアレイ１１に秘匿する。一方、比較的耐タンパー性が低くなってしまうホスト装置２０は、第２鍵情報（HKey）からは第１鍵情報（NKey）を生成しない第２鍵情報（HKey）のみをメモリ２３に秘匿する。
【００７１】
そのため、ＮＡＮＤ型フラッシュメモリ１０は、ホスト装置２０から受領した元情報（HC）と自身が秘匿する第１鍵情報（NKey）を用いて、認証装置が秘匿している第２鍵情報（HKey）を生成する。ＮＡＮＤ型フラッシュメモリ１０は、第２鍵情報（HKey）と乱数情報（RNｈ、RNｃ）とからセッション鍵（SKey）を生成する。
【００７２】
ホスト装置２０は、秘匿する第２鍵情報（HKey）と乱数情報（RNｈ、RNｃ）とからセッション鍵（SKey’）を生成する。その結果、ＮＡＮＤ型フラッシュメモリ１０とホスト装置２０とは、共にその値が同じセッション鍵を共有する。
【００７３】
このように、本例では、ＮＡＮＤ型フラッシュメモリ（被認証装置）１０が秘匿する情報の秘密レベルと、ホスト装置（認証装置）２０が秘匿する情報の秘密レベルとを非対称とすることができる。例えば、本例では、比較的耐タンパー性の高いＮＡＮＤ型フラッシュメモリ１０が秘匿する情報の秘密レベルを、比較的耐タンパー性の低いホスト装置２０が秘匿する情報の秘密レベルよりも、より高く設定することができる。
【００７４】
そのため、仮にホスト装置２０が秘匿する情報が漏洩した場合であっても、比較的耐タンパー性の高いＮＡＮＤ型フラッシュメモリ１０が秘匿する情報の秘密レベルがさらに高いため、漏洩した情報を用いてＮＡＮＤ型フラッシュメモリ１０に”成りすますこと”ができない。従って、漏洩した情報を用いたＮＡＮＤ型フラッシュメモリ１０の秘密情報の不正利用を防止することができる点で有利である。その結果、例えば、認証装置から読み出されたID情報が、目的の被認証装置から読み出した情報であることを確実に確認し、その相手方の不正利用の無効化等が可能となる。
【００７５】
（２）実装化において有利である。  
本例のような構成では、比較的大きな回路規模を要求される公開鍵暗号処理やMKB処理のハードウェア実装が困難である等の回路規模上の制約が同時に課せられる環境下である。
【００７６】
しかしながら、本例によれば、鍵情報が非対称であるものの比較的大きな回路規模を必要とする公開鍵暗号処理を用いる必要がない。さらに、上記のように、ホスト装置（認証装置）２０とＮＡＮＤ型フラッシュメモリ（被認証装置）１０とが秘匿する情報の秘密レベルを非対称とすることにより、片方の装置から漏れた情報だけではもう一方の装置に成りすますことができない認証手段を行い、認証装置と被認証装置間で秘密情報であるセッション鍵（SKey）を共有する。
【００７７】
そのため、上記制約が課される厳しい環境下であっても、実装化において有利であると言える。
【００７８】
さらに、上記のように、メモリシステムを構成するデータ生成回路や暗号化器を同じ処理とすることにより、回路規模を比較的小さくすることも可能である。
【００７９】
［第２実施形態（複数のNKeyを備える一例）］  
次に、第２の実施形態に係る認証装置、被認証装置、およびその認証方法について説明する。この実施形態は、複数のNKey（第１鍵情報）を備える一例に関するものである。この説明において、上記第１の実施形態と重複する部分の詳細な説明を省略する。
【００８０】
＜構成例（メモリシステム）＞  
まず、図４を用い、第２の実施形態に係る構成例について説明する。  
図示するように、第２の実施形態に係る構成例では、ＮＡＮＤ型フラッシュメモリ１０のセルアレイ（Cell array）１１内の秘匿領域（Hidden area）１１−２に、秘密情報NKeyを複数NKeyi (i=1、…、m)秘匿する点で、上記第１の実施形態と相違する。さらに、ホスト装置（認証装置）から受信した当該インデックス情報iに応じて、秘匿している秘密情報NKeyi（i=1、…、m）からNKeyiを選択する選択部３１を更に備える。
【００８１】
さらに、ホスト装置２０では、メモリ２３が、ＮＡＮＤ型フラッシュメモリ１０内のどの秘密情報NKeyiの対応した秘密情報HKeyi、jを秘匿しているかを示すインデックス情報iが秘匿される。
【００８２】
上記構成において、ホスト装置２０は、認証処理実行時に、選択部２１により、秘密情報を指定するための当該インデックス情報iを、インデックス情報jと共に利用してSELIDから当該ホスト装置自身が復号可能な暗号化LotIDを選択する。
【００８３】
合わせて、ホスト装置２０は、当該インデックス情報iを、ＮＡＮＤ型フラッシュメモリ１０に送信する。
【００８４】
ＮＡＮＤ型フラッシュメモリ１０は、選択部３１により、秘匿している秘密情報NKeyi（i=1、…、m）から受信した当該インデックス情報iに対応したNKeyiを選択する。
【００８５】
＜認証フロー＞  
次に、図５に沿って、第2の実施形態に係る認証フローについて説明する。  
図示するように、本例では、ステップＳ１４の認証要求（Request authentication）の際に、ＮＡＮＤ型フラッシュメモリに秘匿された秘密情報NKeyiを選択するために必要なインデックス情報iが、ホスト装置２０からＮＡＮＤ型フラッシュメモリ１０に更に送信される。
【００８６】
さらに、ステップＳ１８の際、ＮＡＮＤ型フラッシュメモリ１０では、第２鍵情報HKeyi、jを生成するために前記インデックス情報iを使用する。
【００８７】
その他の認証フローは、上記第1の実施形態と実質的に同様であるため、詳細な説明は省略する。
【００８８】
＜SELIDについて＞  
次に、図６を用い、第２の実施形態に係るSELIDについて説明する。  
（ａ）や（ｃ）に示すように、第２の実施形態では、NKeyやHKeyを指定するためのインデックス情報が、iとjの2つになっているため、２次元のマトリックス状である。
【００８９】
その他は、上記第１の実施形態と実質的に同様であるため、詳細な説明は省略する。
【００９０】
＜作用効果＞  
第２の実施形態に係る認証装置、被認証装置及びその認証方法によれば、上記（１）、（２）の第１の実施形態と同様の作用効果を得ることが可能である。
【００９１】
さらに、第２の実施形態では、ＮＡＮＤ型フラッシュメモリ１０のセルアレイ（Cell array）１１内の秘匿領域（Hidden area）１１−２に、複数のNKeyi (i=1、…、m)秘匿する。
【００９２】
そのため、これに対応するホスト装置２０も、用途毎に異なる秘密情報HKeyを秘匿することになるため、特定の用途に向けて配布したHKeyやNKeyが露呈してしまった場合でも、他の用途には悪影響を与えることがなくなる点で更に有利である。
【００９３】
例えば、ビデオプレーヤ用に１番、電子書籍用に２番の秘密情報NKeyを割り当てた場合、ビデオプレーヤ用に割り当てられた秘密情報HKey1、j／NKey1が露呈してしまった場合でも、露呈した当該秘密情報HKey1、j／NKey1を用いても電子書籍リーダを構成することはできない。或いは、ホスト装置メーカ毎に異なるHKey／NKeyを割り当てた場合、メーカＡのホスト装置から秘密情報が露呈してしまった場合でも、メーカＢのホスト装置を構成することはできない。従って、秘密情報が露呈してしまった特定のメーカＡのみが正しくLotID及びChipIDを読み出せないようなＮＡＮＤ型フラッシュメモリ１０を新たに製造・提供することが可能となる。
【００９４】
［第３実施形態（Lot毎に複数のNKeyを備える一例）］  
次に、第３の実施形態に係る認証装置、被認証装置、およびその認証方法について説明する。この実施形態は、Lot毎（ＮＡＮＤメーカ毎）に複数のNKey（第１鍵情報）を備える一例に関するものである。この説明において、上記第１の実施形態と重複する部分の詳細な説明を省略する。
【００９５】
＜構成例（メモリシステム）＞  
まず、図７を用い、第３の実施形態に係る構成例について説明する。  
図示するように、第３の実施形態に係る構成例では、ＮＡＮＤ型フラッシュメモリ１０の秘匿領域（Hidden area）１１−２に、複数のNKeyi (i=1、…、m)から選択された1つの秘密情報NKeyiが記録される。さらに、ROM領域１１−３に、当該秘密情報NKeyiを特定するためのインデックス情報iが記録される点で、上記第１の実施形態と相違する。
【００９６】
さらに、ホスト装置２０は、m個の秘密情報NKeyi (i=1、…、m)の中のどのNKeyiを秘匿したＮＡＮＤ型フラッシュメモリ１０とでも認証処理が実行できるように、m個の秘密情報HKeyi (i=1、…、m)を全て秘匿する。
【００９７】
上記構成において、ホスト装置２０は、認証処理実行時に、ＮＡＮＤ型フラッシュメモリ１０からインデックス情報iを読み出し、秘匿しているHKeyi (i=1、…、m)の中から対応するHKeyiを選択する。さらに、同様にＮＡＮＤ型フラッシュメモリ１０から読み出した暗号化LotID束（SELID）から、当該ホスト装置２０自身が復号可能な暗号化LotIDを選択する。
【００９８】
＜認証フロー＞  
次に、図８に沿って、第３の実施形態に係る認証フローについて説明する。  
本例では、ＮＡＮＤ型フラッシュメモリ１０は、ステップＳ３２の際に、ROM領域１１−３に、当該秘密情報NKeyiを特定するためのインデックス情報iを更にロードする。
【００９９】
ホスト装置２０は、ステップＳ３３の際に、ＮＡＮＤ型フラッシュメモリ１０から暗号化LotID束（SELID）を読み出すと共に、当該ＮＡＮＤ型フラッシュメモリに秘匿されている秘密情報NKeyiを特定するためのインデックス情報iを更に読み出す。
【０１００】
続いて、ホスト装置２０は、ステップＳ１７の際に、読み出したインデックスiに従って、秘匿している複数の秘密情報HKeyi (i=1、…、m)から対応するHKeyiを利用して、SELIDからLotIDを復号する。
【０１０１】
さらに、ホスト装置２０は、上記処理で受信したインデックス情報iを用いて秘密情報セットHKeyi、j (i=1、…、m)から鍵データSKeyi、jを生成するために必要なHKeyi、jを選択する。
【０１０２】
なお、図示する処理フローでは、インデックスi、SELIDの順番に読み出しているが、読み出し順は特に限定されるものではない。
【０１０３】
＜SELIDについて＞  
本実施例でも、HKeyを指定するためのインデックス情報がiとjの2つとなっている。そのため、SELIDは、上記図６に示した第２の実施形態と同様である。
【０１０４】
その他は、上記第１の実施形態と実質的に同様であるため、詳細な説明は省略する。
【０１０５】
＜作用効果＞  
第３の実施形態に係る認証装置、被認証装置及び認証方法によれば、第１の実施形態と同様の作用効果（１）、（２）を得ることができる。
【０１０６】
さらに、第３の実施形態では、ＮＡＮＤ型フラッシュメモリ１０の秘匿領域１１−２に、Lot毎（ＮＡＮＤメーカ毎）に複数のNKey（第１鍵情報）を記憶する。さらに、ROM領域１１−３に、当該秘密情報NKeyiを特定するためのインデックス情報iを記録する。
【０１０７】
このように、ＮＡＮＤ型フラッシュメモリのメーカ毎に、秘匿するNKeyを変えることで、特定のＮＡＮＤ型フラッシュメモリメーカの情報管理が不十分であったために、特に重要な秘密情報であるNKeyが漏れてしまった場合や、販売したＮＡＮＤ型フラッシュメモリ内の情報秘匿方法が不十分であったために秘密情報NKeyが漏れてしまった場合などでも、他のＮＡＮＤ型フラッシュメモリメーカが製造したＮＡＮＤ型フラッシュメモリは引き続き変わりなく利用可能となる点で、有利である。
【０１０８】
［第４実施形態（SELIDをProtected areaに記録する一例）］  
次に、第４の実施形態に係る認証装置、被認証装置、およびその認証方法について説明する。この実施形態は、SELIDを保護領域（Protected area）に記録する一例に関するものである。この説明において、上記第１の実施形態と重複する部分の詳細な説明を省略する。
【０１０９】
＜構成例（メモリシステム）＞  
まず、図９を用い、第４の実施形態に係る構成例について説明する。  
図示するように、第４の実施形態では、ＮＡＮＤ型フラッシュメモリ１０のセルアレイ（Cell array）１１の保護領域（Protected area）１１−４に暗号化LotID束（SELID）が記録される点で、上記実施形態と相違する。保護領域（Protected area）１１−４とは、外部からのアクセスにはコントローラ１９に別途実装される認証処理が成功した場合に限ってデータの書込み／読み出し処理が許可される領域である。
【０１１０】
このような保護領域１１−４は、現在流通している、例えば、SD（登録商標）カード等でも備わっている領域であり、当該保護領域１１−４に記録されたデータは、コントローラ１９との認証処理を実行できる正規のホスト装置２０以外からは秘匿できるだけでなく、ユーザが間違ってデータを書き換え／削除してしまうことも避けられる。そのため、データ再生処理に必要不可欠な情報を保存しておくための領域にもなっている。
【０１１１】
そのため、本例に係るSELIDは、コントローラ１９との間で別途用意される認証処理が実行されたセキュアチャネル３３を確立した上で、ホスト装置２０に送信される。
【０１１２】
＜認証フロー＞  
次に、図１０に沿って、第４の実施形態に係る認証フローについて説明する。
【０１１３】
図示するように、ホスト装置２０は、ステップＳ３５の際、コントローラ１９との間で別途用意される認証処理を実行することでセキュアチャネルを確立させる。
【０１１４】
そのため、ホスト装置２０は、ステップＳ３５の際、保護領域（Protected area）１１−４へのアクセス許可を得て、確立したセキュアチャネルを通じ、暗号化LotID束（SELID）を読み出す。
【０１１５】
第４の実施形態に係るSELIDについては、上記図３に示したものと同様である。
【０１１６】
その他の構成等は、第１の実施形態と同様であるため、詳細な説明は省略する。
【０１１７】
＜作用効果＞  
第４の実施形態に係る認証装置、被認証装置及び認証方法によれば、第１の実施形態と同様の作用効果（１）、（２）を得ることができる。
【０１１８】
さらに、第４の実施形態では、暗号化LotID束（SELID）が、セルアレイ１１の保護領域（Protected area）１１−４に記録されている。そのため、ユーザが間違ってSELIDを書き換え／削除してしまうことによって生じる、ChipIDやLotIDの読み出しができなくなるというトラブル等を防止することが可能となる。
【０１１９】
［第５実施形態（NANDに乱数生成器を備えない一例）］  
次に、第５の実施形態に係る認証装置、被認証装置、およびその認証方法について説明する。この実施形態は、ＮＡＮＤ型フラッシュメモリ１０に、上記乱数生成器１５を備えない一例に関するものである。この説明において、上記第１の実施形態と重複する部分の詳細な説明を省略する。
【０１２０】
＜構成例（メモリシステム）＞  
図１１を用いて、第５の実施形態に係る構成例について説明する。
【０１２１】
図示するように、第５の実施形態に係る構成例では、ＮＡＮＤ型フラッシュメモリ１０に、上記乱数生成器（RNG）１５を備えていない。
【０１２２】
その代わりに、当該ＮＡＮＤ型フラッシュメモリ１０毎に予め用意された固定値インデックス情報（i-NAND）をセルアレイ（Cell array）内のROM領域１１−３に保持している。このi-NANDは、第1の実施形態における乱数RNcの代わりに鍵データSKeyjを生成する際に使用される値であり、ＮＡＮＤ型フラッシュメモリ製造時に予め生成された乱数値、ChipIDやLotIDのハッシュ値、ChipIDやLotIDを特定の値で暗号化した値など、様々な生成手段で生成した値が使用できる。
【０１２３】
そのため、ＮＡＮＤ型フラッシュメモリ１０は、データキャッシュ１２Ｂを更に備える。
【０１２４】
＜認証フロー＞  
次に、図１２に沿って、第５の実施形態に係る認証フローについて説明する。  
図示するように、ＮＡＮＤ型フラッシュメモリ１０は、ステップＳ１６の際、ホスト装置２０からの認証要求（Request authentication）を受けると、乱数生成器で乱数を生成する代わりに、ROM領域１１−３から固定値インデックス情報（i-NAND）を読み出し、ホスト装置２０に送出する。
【０１２５】
ホスト装置２０およびＮＡＮＤ型フラッシュメモリ１０は、鍵データSKeyjを生成する際に、ホスト装置が生成した乱数RNhと前記i-NANDの結合データRNh || i-NANDとHKeyjを用いて上記データ生成処理を行う (SKeyj = Generate(HKeyj、 RNh || i-NAND))。
【０１２６】
第５の実施形態に係るSELIDについては、上記図３に示したものと同様である。
【０１２７】
その他は第1の実施形態と実質的に同様であるため、詳細な説明は省略する。
【０１２８】
＜作用効果＞  
第５の実施形態に係る認証装置、被認証装置及び認証方法によれば、第１の実施形態と同様の作用効果（１）、（２）を得ることができる。
【０１２９】
さらに、第５の実施形態では、ＮＡＮＤ型フラッシュメモリ１０に、図１における上記乱数生成器（RNG）１５を備えていない。そのため、ＮＡＮＤ型フラッシュメモリ１０の実装回路規模をより小さくすることが可能となり、微細化に対してより有利である。
【０１３０】
［第６の実施形態（Tokenを生成する一例）］  
次に、第６の実施形態に係る認証装置、被認証装置、およびその認証方法について説明する。この実施形態は、検証データ（Token）を生成する一例に関するものである。この説明において、上記第１の実施形態と重複する部分の詳細な説明を省略する。
【０１３１】
＜構成例（メモリシステム）＞  
図１３を用いて、第６の実施形態に係る構成例について説明する。
【０１３２】
図示するように、第６の実施形態に係る構成例では、ＮＡＮＤ型フラッシュメモリ１０側、およびホスト装置２０側のいずれも、データ生成回路（Generate）１６、２６を用い、秘密情報HKeyjと２つの乱数の結合データRNh || RNcから鍵データSKeyjを生成すると共に、ホスト装置とＮＡＮＤ型フラッシュメモリ間で同じ鍵データSKeyjが生成できていることを確認するための検証データ（Token）を生成する点で、上記実施形態と相違する。
【０１３３】
検証データ（Token）とは、セッション鍵SKeyj及びホスト装置２０とＮＡＮＤ型フラッシュメモリ１０が互いに共有している値に基づいて計算するデータであれば良い。本実施例では、２つの乱数の結合順番を入れ替えた値RNc || RNhを用いて求められるToken (= Generate(SKeyj、 RNc||RNh))を一例として用いている。なお、図中では記載スペースの都合で、Generate()をG()と記載している。
【０１３４】
なお、セッション鍵SKeyj生成に用いるデータ生成回路とToken生成に用いるデータ生成回路は、同じ回路として図示している。しかし、ホスト装置２０とＮＡＮＤ型フラッシュメモリ１０で同じデータを生成することが目的であるため、前記の2つのデータ生成回路は必ずしも同じデータ生成回路である必要はなく、異なる回路で構成してもよい。
【０１３５】
生成された前記検証データTokenは、ＮＡＮＤ型フラッシュメモリからホスト装置に送出される。
【０１３６】
ホスト装置２０は、比較器３５において、受信した前記検証データTokenとホスト装置自身が計算した検証データとが一致するか否かを判定する。検証データToken値が同じ場合（Yes）、ゲート部３６はセッション鍵SKeyjを復号部（Decrypt）２８に出力し、第1の実施形態と同様に以降の処理を継続する。一方、検証データToken値が異なっている場合（No）、以降の処理を中止する（Abort）。
【０１３７】
＜認証フロー＞  
次に、図１４に沿って、第６の実施形態に係る認証フローについて説明する。  
第６の実施形態では、第１の実施形態において鍵データSKeyjを生成した後に、以下の処理が追加される。
【０１３８】
ホスト装置２０は、ステップＳ３６の際に、生成した鍵データSKeyjと2つの乱数RNhとRNcから検証データToken = Generate(SKeyj、RNc||RNh)を計算する。
【０１３９】
同様に、ＮＡＮＤ型フラッシュメモリも、ステップＳ３７の際に、生成した鍵データSKeyjと2つの乱数RNhとRNcから検証データToken = Generate(SKeyj、 RNc||RNh)を計算し、当該Tokenをホスト装置に送出する。
【０１４０】
続いて、ホスト装置は、ステップＳ３９の際に、受信したTokenとホスト装置自身が生成したTokenが一致するかどうかを確認し、一致した場合には以降の認証処理を継続し、不一致の場合には以降の認証処理を中止する。
【０１４１】
第６の実施形態に係るSELIDについては、上記図３に示したものと同様である。
【０１４２】
その他については、第１の実施形態と同様であるため、詳細な説明は省略する。
【０１４３】
＜作用効果＞  
第６の実施形態に係る認証装置、被認証装置及び認証方法によれば、第１の実施形態と同様の作用効果（１）、（２）を得ることができる。
【０１４４】
さらに、第６の実施形態では、ホスト装置とＮＡＮＤ型フラッシュメモリ間で同じ鍵データSKeyjが生成できていることを確認するための検証データ（Token）を生成し、この一致を判定する。
【０１４５】
そのため、認証による鍵共有処理が両者間で正しく行われていることが確認でき、不正な認証相手や認証処理の中間経路においてデータに誤り或いは改ざんが発生したことなどを容易に確認することが可能となる点で、更に有利である。
【０１４６】
［第７の実施形態（SELID暗号化に別セットのIDKeyを利用する一例）］  
次に、第７の実施形態に係る認証装置、被認証装置、およびその認証方法について説明する。この実施形態は、SELID暗号化に別セットのIDKeyを利用する一例に関するものである。この説明において、上記第１の実施形態と重複する部分の詳細な説明を省略する。
【０１４７】
＜構成例（メモリシステム）＞  
図１５を用いて、第７の実施形態に係る構成例について説明する。
【０１４８】
図示するように、第７の実施形態に係る構成例では、暗号化LotID束（SELID）生成に使用される暗号化鍵をNKey由来のHKeyとは異なる暗号化鍵IDKeyに変更する点で、上記実施形態と相違する。但し、本例に係るＮＡＮＤ型フラッシュメモリ１０の構成要素には、
実質的な変更はない。
【０１４９】
本例に係るホスト装置２０は、メモリ２３に、新たな秘密情報IDKeykを秘匿しており、ＮＡＮＤ型フラッシュメモリ１０から読み出したSELIDの復号処理に当該IDKeykを使用する点が相違する。しかし、復号処理自体には変更はない。
【０１５０】
＜認証フロー＞  
次に、図１６に沿って、第７の実施形態に係る認証フローについて説明する。  
図示するように、ホスト装置２０は、ステップＳ１２の際に、秘密情報IDKeyk及びインデックス情報kを使用して、ＮＡＮＤ型フラッシュメモリ１０から読み出した暗号化LotID束（SELID）を復号する点で、上記実施形態と相違する。
【０１５１】
また、前述の通りLotIDの暗号化に用いる鍵データが変更になっているため、本例のSELIDの構成例は、図１７のように示される。
【０１５２】
その他については、第１の実施形態と実質的に同様であるため、詳細な説明は省略する。
【０１５３】
＜作用効果＞  
第７の実施形態に係る認証装置、被認証装置及び認証方法によれば、第１の実施形態と同様の作用効果（１）、（２）を得ることができる。
【０１５４】
さらに、第７の実施形態では、ＮＡＮＤ型フラッシュメモリに秘匿されている秘密情報NKeyを使用してもSELIDを復号してLotIDを得ることができなくなる。そのため、仮にＮＡＮＤ型フラッシュメモリ１０から秘密情報NKeyが露呈、或いは当該ＮＡＮＤ型フラッシュメモリ１０の製造メーカから秘密情報NKeyが漏れてしまった場合でも、SELIDを利用してLotIDやChipIDを復号できる不正なホスト装置を排除することができる点で、更に有利である。
【０１５５】
［第８の実施形態（ChipID伝送を一方向性関数とする一例）］  
次に、第８の実施形態に係る認証装置、被認証装置、およびその認証方法について説明する。この実施形態は、ChipID伝送時の演算を一方向性関数とする一例に関するものである。この説明において、上記第１の実施形態と重複する部分の詳細な説明を省略する。
【０１５６】
＜構成例（メモリシステム）＞  
図１８を用いて、第８の実施形態に係る構成例について説明する。  
図示するように、第８の実施形態に係る構成例では、ＮＡＮＤ型フラッシュメモリ１０のセルアレイ（Cell array）１１内の一般領域（User area）１１−１に、LotIDではなく、ChipIDを暗号化して構成される暗号化ChipID束（SECID）が記録され、ROM領域１１−３にはChipIDのみが記録されている点で、上記実施形態と相違する。
【０１５７】
また、ＮＡＮＤ型フラッシュメモリ１０およびホスト装置２０は、セッション鍵SKeyjによってIDを暗号化する代わりに、一方向性演算を行うための一方向性変換器（Oneway）３８、３９を備える。
【０１５８】
ホスト装置２０は、ＮＡＮＤ型フラッシュメモリ１０からSECIDを読み出し、HKeyj及びインデックス情報jを用いて、SECIDからChipIDを得るための、第1の実施形態と同様の復号部２２を備える。
【０１５９】
ホスト装置２０は、ＮＡＮＤ型フラッシュメモリ１０から受信したChipIDを一方向性変換した結果の値（Oneway(SKeyj、 ChipID)）とホスト装置２０自身が計算したChipIDの一方向性変換値のベリファイ検証結果を判定するデータ検証部４０を備える。
【０１６０】
＜認証フロー＞  
次に、図１９に沿って、第８の実施形態に係る認証フローについて説明する。  
図示するように、まず、認証開始（Start）すると、ホスト装置２０は、ＮＡＮＤ型フラッシュメモリ１０から暗号化ChipID束（SECID: Set of Encrypted ChipID）を読み出す（Step Ｓ１１）。
【０１６１】
続いて、ホスト装置２０は、読み出したSECIDから上記選択処理を行い、当該ホスト装置が復号可能な暗号化ChipIDデータを読み出すと共に、秘匿している秘密情報HKeyjを用いて上記復号処理により復号することによりChipIDを得る（Step Ｓ１２）。
【０１６２】
続いて、ホスト装置２０は、認証要求時に必要となる乱数RNhを生成する。認証処理に乱数を用いることにより、以下の処理でＮＡＮＤ型フラッシュメモリとの間で毎回異なる共有鍵が利用される（Step Ｓ１３）。
【０１６３】
続いて、ホスト装置２０は、認証要求（Request authentication）と共に予め保持しているホスト定数（HCj）と前記乱数RNhとをＮＡＮＤ型フラッシュメモリ１０に送出する（Step Ｓ１４）。
【０１６４】
続いて、ＮＡＮＤ型フラッシュメモリ１０は、認証に必要となる乱数RNcを生成し、ホスト装置に送出する（Step Ｓ１５）。
【０１６５】
続いて、ＮＡＮＤ型フラッシュメモリ１０は、秘匿しているNKeyとStep Ｓ１４において受信したHCjを用いて上記データ生成処理によりHKeyjを生成すると共に、 Step Ｓ１４で受信した乱数RNh及びStep Ｓ１５で生成した乱数RNcから上記データ結合処理により結合データRNh || RNcを生成し、前記HKeyjと前記結合データRNh || RNcを用いて上記データ生成処理により鍵データSKeyj(= Generate(HKeyj、 RNh || RNc))を生成する（Step Ｓ１６）
ステップＳ１６の処理と並行して、ホスト装置２０は、生成した乱数RNhと受信した乱数RNcから上記データ結合処理により結合データRNh || RNcを生成し、予め秘匿していた秘密情報HKeyjと前記結合データRNh || RNcを用いて上記データ生成処理によりSKeyj(= Generate(HKeyj、 RNh || RNc))を生成する（Step Ｓ１７）。
【０１６６】
続いて、ホスト装置２０は、ID要求（Request ID）をＮＡＮＤ型フラッシュメモリに送る（Step Ｓ１９）。
【０１６７】
続いて、ＮＡＮＤ型フラッシュメモリ１０は、ChipIDをROM領域から読み出す（Step Ｓ２１）。
【０１６８】
続いて、ＮＡＮＤ型フラッシュメモリ１０は、ChipIDを生成した鍵データSKeyjを用いて一方向性変換を行い、一方向性変換データ Oneway-ID (=Oneway(SKeyj、 ChipID))を生成すると共に、生成された一方向性変換データOneway-IDをホスト装置に送出する（Step Ｓ３８）。
【０１６９】
続いて、ホスト装置２０は、ChipIDを生成した鍵データSKeyjを用いて一方向性変換を行い、一方向性変換データOneway-IDを求める（Step Ｓ３９）。
【０１７０】
続いて、ホスト装置２０は、受信した一方向性変換データOneway-IDと求めた一方向性変換データと一致することを確認し、一致した場合には前記ChipIDが正しいChipIDであると判定し、不一致の場合には前記ChipIDが不正なIDであると判定する（Step Ｓ４０）
以上の動作により、第８の実施形態に係る認証フローを終了する（End）。
【０１７１】
なお、暗号化ChipID束であるSECIDの構成例は、同様に、図２０のように示される。
【０１７２】
その他については、上記第１の実施形態と実質的に同様である。
【０１７３】
＜作用効果＞  
第８の実施形態に係る認証装置、被認証装置及び認証方法によれば、第１の実施形態と同様の作用効果（１）、（２）を得ることができる。
【０１７４】
さらに、第８の実施形態では、ＮＡＮＤ型フラッシュメモリ１０のセルアレイ（Cell array）１１内の一般領域（User area）１１−１に、LotIDではなく、ChipIDを暗号化して構成される暗号化ChipID束（SECID）が記録され、ROM領域１１−３にはChipIDのみが記録される。
【０１７５】
そのため、ＮＡＮＤ型フラッシュメモリ１０が保持しなければならないID情報の量を減らすことができる。
【０１７６】
［第９の実施形態（第７、第８の実施形態の組み合わせの一例）］  
次に、第９の実施形態に係る認証装置、被認証装置、およびその認証方法について説明する。この実施形態は、第７、第８の実施形態の組み合わせ一例に関するものである。この説明において、上記第１の実施形態と重複する部分の詳細な説明を省略する。
【０１７７】
＜構成例（メモリシステム）＞  
図２１を用いて、第９の実施形態に係る構成例について説明する。
【０１７８】
図示するように、本実施形態は、上記第７の実施形態と第８の実施形態とにおいて、第１の実施形態に加えた両方の変更を備えるものである。つまり、IDKeyの導入及びSELIDをSECIDへ変更した点が、第１の実施形態からの主な相違点である。
【０１７９】
＜認証フロー＞  
図２２に、第９の実施形態に係る認証フローを示している。
【０１８０】
図示するように、認証フローについても、第７の実施形態の認証フローと第８の実施形態の認証フローとを合わせた認証フローとなっている。
【０１８１】
なお、暗号化ChipID束であるSECIDの構成例は、同様に、図２３のように示される。
【０１８２】
その他については、上記第１の実施形態と実質的に同様である。
【０１８３】
＜作用効果＞  
第９の実施形態に係る認証装置、被認証装置及び認証方法によれば、第１の実施形態と同様の作用効果（１）、（２）を得ることができる。
【０１８４】
さらに、第９の実施形態では、第７の実施形態及び第８の実施形態で加わった両方の作用効果を得ることが可能である。
【０１８５】
［第１０実施形態（第３、第７、第８の実施形態の組み合わせの一例）］  
次に、第１０の実施形態に係る認証装置、被認証装置、およびその認証方法について説明する。この実施形態は、第３、第７、第８の実施形態を組み合わせの一例に関するものである。この説明において、上記第１の実施形態と重複する部分の詳細な説明を省略する。
【０１８６】
＜構成例（メモリシステム）＞  
図２４を用いて、第１０の実施形態に係る構成例について説明する。
【０１８７】
図示するように、本実施形態は、第３、第７、第８の実施形態に加えた相違点を備える。つまり、IDKeyの導入、SELIDからSECIDへの変更及びホスト装置が複数の秘密情報HKeyを秘匿する点が、第１の実施例からの主な相違点となっている。
【０１８８】
＜認証フロー＞  
次に、図２５に沿って、第１０の実施形態に係る認証フローを説明する。
【０１８９】
図示するように、認証フローについても、第９の実施形態の認証フローにおいて、以下の処理フローが追加される点で、相違する。
【０１９０】
まず、ホスト装置２０は、ステップＳ１４の際、認証要求（Request authentication）を行う。
【０１９１】
続いて、ホスト装置２０は、ステップＳ３３の際、乱数RNhとホスト定数HCjを送出後、ＮＡＮＤ型フラッシュメモリに秘匿されているNKeyiのインデックス情報iをＮＡＮＤ型フラッシュメモリのROM領域から読み出す。さらに、ホスト装置は、ＮＡＮＤ型フラッシュメモリから乱数RNcを受信後に、上記処理で受信したインデックス情報iを用いて秘密情報セットHKeyi、j (i=1、…、m)から鍵データSKeyi、jを生成するために必要なHKeyi、jを選択する。
【０１９２】
但し、図２５に示す処理フローは一例であり、インデックス情報iの読み出しやHKeyi、j選択処理などは、各処理に必要なデータが事前に得られるようになっていれば、この処理フローに限定されるものではない。
【０１９３】
なお、暗号化ChipID束であるSECIDの構成例は、同様に、図２３のように示される。
【０１９４】
その他については、上記第１の実施形態と実質的に同様である。
【０１９５】
＜作用効果＞  
第１０の実施形態に係る認証装置、被認証装置及び認証方法によれば、第１の実施形態と同様の作用効果（１）、（２）を得ることができる。
【０１９６】
さらに、第１０の実施形態によれば、上記第３、第７、第８の実施形態の作用効果を得ることが可能である。
【０１９７】
［第１１の実施形態（乱数生成器を備えない一例）］  
次に、第１１の実施形態に係る認証装置、被認証装置、およびその認証方法について説明する。この実施形態は、上記第１０の実施形態において、ＮＡＮＤ型フラッシュメモリ１が乱数生成器１５を備えない一例に関するものである。この説明において、上記第１の実施形態と重複する部分の詳細な説明を省略する。
【０１９８】
＜構成例（メモリシステム）＞  
図２６を用いて、第１１の実施形態に係る構成例について説明する。
【０１９９】
図示するように、本実施形態では、第１０の実施形態ではＮＡＮＤ型フラッシュメモリに備わっていた乱数生成器（RNG）１５を備えていない点で、第１０の実施形態と相違する。
【０２００】
第１０の実施形態では、２つの乱数RNhとRNcを結合したデータと秘密データHKeyi、jとからセッション鍵データSKeyi、jを生成していたが、本実施形態では乱数RNhと秘密データHKeyi、jとからセッション鍵データSKeyi、jを生成する。
【０２０１】
以下、第１１の実施形態に係る構成例の詳細について説明する。 
実施例では、被認証装置であるＮＡＮＤ型フラッシュメモリに記録されている識別情報ChipIDを第3者から秘匿した状態で読み出すと共に、前述の被認証装置から読み出されたデータであることを確実に確認する方法、及び同方法をＮＡＮＤ型フラッシュメモリに適用する場合の構成を示す。
【０２０２】
ＮＡＮＤ型フラッシュメモリ  
ＮＡＮＤ型フラッシュメモリ１０は、上記のように、被認証装置である。
【０２０３】
図示するように、本例に係るＮＡＮＤ型フラッシュメモリ１０は、セルアレイ１１、及びセルアレイに周辺領域に配置されるデータキャッシュ１２Ａ、１２Ｂ、データ生成回路（Generate）１３、１６、乱数生成器（RNG）１５、一方向性変換器（Oneway）３８等を備える。
【０２０４】
セルアレイ（Cell array）１１は、ROM領域（ROM area）１１−３、秘匿領域（Hidden area）１１−２、一般領域（User area）１１−１等を備える。  
ROM領域１１−３は、外部からのデータ記録が禁止され、データ読み出しが許可される領域である。本例に係るROM領域１１−３には、識別情報であるChipID、秘匿領域（Hidden area）に記録される秘密情報NKeyiを示すためのインデックス情報i（index of NKey）が記録される。しかしながら、ChipIDやインデックスiを記録する際にはデータに誤りが生じてしまった場合でも、正しい識別情報が読み出せるようにするために一般的には誤り訂正符号化された状態で記録されるが、ここでは、誤り訂正符号化／復号処理については特に図示していない。  
秘匿領域（Hidden area）１１−２は、ＮＡＮＤ型フラッシュメモリ１０の外部に対してはデータ記録だけでなく、データ読み出しも禁止される領域である（Read/Program inhibit）。本例に係る秘匿領域１１−２には、上記認証においてＮＡＮＤ型フラッシュメモリ１０が用いる秘密情報であるNKeyiが記録される。また、前記ChipIDを外部から常に秘匿しておきたい場合などではROM領域の代わりに、秘匿領域に記録しても良い。  
一般領域（User area）１１−１は、データ記録及びデータ読み出しのいずれも自由に可能な領域である。一般領域１１−１には、暗号化ChipID束であるSECID（Set of Encrypted ChipID）が記録され、その他には例えば、写真、ビデオ、音楽或いは電子書籍といったコンテンツデータ等が記録される。なお、暗号化ChipIDであるSECIDの構成例は、上記図２３に示したものと同様である。
【０２０５】
データキャッシュ（Data Cache）１２Ａ、１２Ｂは、セルアレイ１１から読み出したデータを一時的に記憶する。
【０２０６】
データ生成回路１３、１６は、複数の入力情報から新たなデータを出力する回路であり、全体の回路規模を小さくするために前述の一方向性変換器と同じ或いは一方向性変換器を流用した回路で構成することも可能である。同様にデータ処理手順を分かり易くするために異なる構成要素として図示されている2つのデータ生成回路は同じ回路を繰り返し利用することが可能である。
【０２０７】
データ生成回路（Generate）１３、１６は、複数の入力データから予め定められた演算によって出力データを生成する回路であり、ホスト装置２０から受信した情報（HCj）を前述の秘密情報NKeyiを用いて変換することでHKeyi、jを生成すること、及びホスト装置から受信した乱数RNhを前期HKeyjを用いて変換することでSKeyi、jを生成するために用いられ、AES（Advanced Encryption Standard）暗号化器などを用いることも可能である。
【０２０８】
一方向性変換器（Oneway）３８は、入力されたデータと別途入力された鍵データに一方向性の変換を施し、一方向性変換された入力データを出力する回路である。本実施例ではROM領域から読み出した識別情報ChipIDを前記データ生成回路によって生成された鍵データSKeyi、jを用いて一方向性関数により変換し、一方向性変換識別情報Oneway-ID (= Oneway(SKeyi、j、 ChipID))を生成する。なお，第１の実施形態と同様に、当該識別情報ChipIDがROM領域の代わりに秘匿領域に記録されている場合には、当該一方向性変換器の入力データである当該識別情報ChipIDは秘匿領域から読み出される。
【０２０９】
また、前述の通り、全体のハードウェア回路規模を小さくするために当該一方向性変換器３８を前記データ生成回路としても使用することが可能である。
【０２１０】
また、図示しないが、コントローラ１９を介してホスト装置２０に送付されるデータを出力する出力部なども実際には構成要素として配置されても良い。
【０２１１】
ホスト装置  
図示するように、本例に係るホスト装置（Host）２０は、乱数生成部（RNG）２５、排他的論理和部（EXOR）２４、データ選択部（Select）２１−１、２１−２、復号部（Decrypt）２２、データ生成部（Generate）２７、一方向性変換部（Oneway）３９、及びデータ検証部（Verify）４０等を備える。この他に図示しない誤り訂正処理部なども必要に応じて構成要素として備えることが可能である。
【０２１２】
乱数生成部（RNG: Random Number Generator）２５は、認証に用いるRNhを生成する。
【０２１３】
排他的論理和部（EXOR）２４は、入力された2つのデータの排他的論理和を計算し、その結果を出力する。
【０２１４】
データ選択部（Select）２１−１、２１−２は、２つ配置される。第１段目のデータ選択部（Select1）２１−１は、ＮＡＮＤ型フラッシュメモリ１０から読み出した暗号化ChipID束（SECID）から当該ホストが秘匿している秘密情報IDKeykを用いて復号可能な暗号化ChipIDデータを、秘密情報HKeyjのインデックス情報kを用いて、選択する。
【０２１５】
第２段目のデータ選択部（Select2）２１−２では、ＮＡＮＤ型フラッシュメモリ１０から読み出した秘密情報NKeyiのインデックス情報iを用いて、当該ホスト装置２０が秘匿している秘密情報セットHKeyi、j (i=1、…、m。尚、jは当該HKeyi、jにおいては固定の値である)から、前記ＮＡＮＤ型フラッシュメモリ１０との認証処理に必要な秘密情報HKeyi、jを選択する。
【０２１６】
前記秘密情報IDKeyk、HKeyi、jは、民生機器であれば内部の専用メモリにメーカ独自の方法で暗号化した上で記録されていたり、ソフトウェアプログラムであればタンパーレジスタントソフトウェア（TRS）技術によって不正な解析から保護できる状態で保持していたり、或いはセキュリティモジュールを内蔵している場合には当該セキュリティモジュールの機能を利用して秘匿するなどの対策を採った上で秘匿される。
【０２１７】
復号部（Decrypt）２２は、入力されたデータを別途入力された鍵データで復号し、復号された入力データを出力する。本実施例では、ホスト装置が秘匿している秘密情報IDKeykと必要に応じて当該秘密情報IDKeykを識別するためのインデックス情報kを排他的論理和部で演算した結果を鍵情報として前記第1のデータ選択部において選択された暗号化ChipIDデータを復号し、ChipIDを得るために用いられる。
【０２１８】
データ生成部（Generate）２７は、複数の入力データから予め定められた演算によって出力データを生成する演算部であり、当該ホスト装置２０自身が生成した乱数RNhを当該ホスト装置が秘匿している秘密情報HKeyi、jを用いて変換することでSKeyi、jを生成するために用いられ、AES暗号化演算などを用いることも可能である。
【０２１９】
一方向変換部（Oneway）３９は、前記復号部から出力されたChipIDを前記データ生成部から出力されたSKeyi、jを用いて一方向性関数により変換し、一方向性変換識別情報Oneway-IDを生成する。
【０２２０】
データ検証部（Verify）４０は、ＮＡＮＤ型フラッシュメモリ１０から受信した一方向性変換識別情報Oneway-IDと当該ホスト装置内の前記一方向性変換部から得られた一方向性変換識別情報を比較し、両方の値が一致した場合には復号部で得られた前記ChipIDが正しいChipIDであると判定し、不一致の場合には前記ChipIDが不正なIDであると判定する。
【０２２１】
その他、同様に、この他に図示しない誤り訂正処理部なども必要に応じて構成要素として備えることが可能である。
【０２２２】
＜２．認証フロー＞  
次に、図２７に沿って、第１１の実施形態に係るメモリシステムの認証フローについて説明する。
【０２２３】
図示するように、認証開始（Start）すると、ホスト装置２０は、ＮＡＮＤ型フラッシュメモリ１０から暗号化ChipID束（SECID: Set of Encrypted ChipID）を読み出す（Step Ｓ１１）。
【０２２４】
続いて、ホスト装置２０は、読み出したSECIDから上記データ選択部（Select1）２１−１によりデータ選択処理を行い、ホスト装置２０が復号可能な暗号化ChipIDデータを読み出すと共に、秘匿している秘密情報IDKeykを用いて上記復号処理部２２により復号することによりChipIDを得る（Step Ｓ１２）。
【０２２５】
続いて、ホスト装置２０は、認証要求時に必要となる乱数RNhを生成する（Step Ｓ１３）。認証処理に乱数を用いることにより、以下の処理でＮＡＮＤ型フラッシュメモリとの間で毎回異なる共有鍵が利用される。
【０２２６】
続いて、ホスト装置は、認証要求（Request authentication）と共に予め保持しているホスト定数（HCj）と前記乱数RNhをＮＡＮＤ型フラッシュメモリに送出する（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 Ｓ１７）。
【０２３１】
続いて、ホスト装置２０は、ID要求（Request ID）をＮＡＮＤ型フラッシュメモリ１０に送る（Step Ｓ１９）。
【０２３２】
続いて、ＮＡＮＤ型フラッシュメモリ１０は、ChipIDをROM領域から読み出す（Step Ｓ２１）。
【０２３３】
続いて、ＮＡＮＤ型フラッシュメモリ１０は、ChipIDを生成した鍵データSKeyi、jを用いて上記一方向性変換器３８における一方向性変換処理を行い、一方向性変換データ Oneway-ID (=Oneway(SKeyi、j、 ChipID))を生成すると共に、生成された一方向性変換データOneway-IDをホスト装置に送出する（Step Ｓ３８）。
【０２３４】
続いて、ホスト装置２０は、ChipIDを生成した鍵データSKeyi、jを用いて一方向性変換部３９における一方向性変換処理を行い、一方向性変換データOneway-IDを求める（Step Ｓ３９）。
【０２３５】
続いて、ホスト装置２０は、受信した一方向性変換データOneway-IDと求めた一方向性変換データが一致することを確認し、一致した場合には前記ChipIDが正しいChipIDであると判定し、不一致の場合には前記ChipIDが不正なIDであると判定する（Step Ｓ４０）。
【０２３６】
以上の動作により、第１１の実施形態に係る認証フローを終了する（End）。
【０２３７】
＜作用効果＞  
第１１の実施形態に係る認証装置、被認証装置及び認証方法によれば、第１の実施形態と同様の作用効果（１）、（２）を得ることができる。
【０２３８】
さらに、第１１の実施形態では、ＮＡＮＤ型フラッシュメモリ１１内に乱数生成器１５の実装が必要なくなる。そのため、第１の実施形態の作用効果及び第１０の実施形態で加わった作用効果を同様に実現すると共に、ＮＡＮＤ型フラッシュメモリの実装回路規模をより小さくすることが可能となる点で、有利である。
【０２３９】
［第１２の実施形態（ID-indexが書き込まれる一例）］  
次に、第１２の実施形態に係る認証装置、被認証装置、およびその認証方法について説明する。この実施形態は、ChipIDを特定するために必要となるインデックス情報ID-indexが書き込まれる一例に関するものである。この説明において、上記第１の実施形態と重複する部分の詳細な説明を省略する。
【０２４０】
＜構成例（メモリシステム）＞  
図２８を用いて、第１２の実施形態に係る構成例について説明する。
【０２４１】
図23で示すように、本例では、ＮＡＮＤ型フラッシュメモリ１０のROM領域１１−３に、ChipIDを特定するために必要となるインデックス情報ID-indexが書き込まれ、ChipIDは秘匿領域（Hidden area）１１−２に記録され、当該ChipID読み出し用に必要に応じてデータキャッシュ（Data Cache）１２Ｂ等を備えている点で、上記第１１の実施形態と相違する。
【０２４２】
なお、暗号化ChipIDであるSECIDの構成例は、上記図２３に示したものと同様である。
【０２４３】
＜認証フロー＞  
ＮＡＮＤ型フラッシュメモリ１０は、秘匿領域からChipIDを読み出す際に、必要に応じてデータキャッシュを介して読み出すが、それ以外の処理フローは第１１の実施形態と実質的に同様である。
【０２４４】
＜SECIDの書き込みについて＞  
図２９を用い、暗号化ChipID束（SECID）の書き込みについて、説明する。
【０２４５】
ここで、暗号化ChipID束（SECID）がＮＡＮＤ型フラッシュメモリ１０の製造時に書き込まれる場合等には、特に必要のない処理である。しかし、ＮＡＮＤ型フラッシュメモリ１０とコントローラ１９などが結合されて、例えば、SD（登録商標）カードなどのストレージメディア製品として一般ユーザ入手し、カード利用時に市場において後から書き込まれる場合などには、SECIDの書き込み処理が必要となる。
【０２４６】
図２９では、上記のようにSECIDが未記録の状態のストレージメディアに記録されたデータの場合を示している。
【０２４７】
図示するように、ＮＡＮＤ型フラッシュメモリ１０は、秘密情報NKeyiと識別情報ChipIDとが秘匿領域１１−２に記録され、前記秘密情報NKeyiを特定するために必要なインデックス情報iと前記識別情報ChipIDを特定するために必要となるインデックス情報ID-indexとがROM領域１１−３に書き込まれた状態である。しかしながら、SECIDは、ＮＡＮＤ型フラッシュメモリ１０に、まだ書き込まれていない。
【０２４８】
このように、SECIDが未記録状態のストレージメディア１０に、サーバからSECIDをダウンロードして記録する場合について、図３０を用いて説明する。
【０２４９】
図示するように、この場合には、ＮＡＮＤ型フラッシュメモリ１０に、必要に応じてデータキャッシュ１２が配置される。
【０２５０】
本例に係るサーバ６０は、ID-indexからChipIDを生成するためのChipID生成部（Generate ChipID）６２、暗号化部（Encrypt）６３、及びIDKeyデータベース（Set of IDKeyi s (i=1、…、x) ）６１を備える。
【０２５１】
ID-indexからChipIDを生成する方法としては、様々な変換を利用することができるが、その一例を以下に示す。  
（変換例）  
まず、予めＮＡＮＤ型フラッシュメモリ１０の製造者毎に配布される変換鍵Kmを用いて、暗号化によってChipIDを暗号化した値をID-indexとする。ID-indexは、以下のように示される。
【０２５２】
ID-index = Encrypt (Km、 ChipID)
ID-indexは、インターネット５０を介して、サーバ６０に送信される。
【０２５３】
サーバ６０は、生成部６２により、受信したID-indexを、変換鍵Kmを用いて復号することでChipIDを得る。ChipIDは、以下のように示される。
【０２５４】
ChipID = Decrypt(Km、 ID-index)
なお、変換鍵Kmは、全てのＮＡＮＤ型フラッシュメモリ１０の製造者で共通にするだけでなく、ＮＡＮＤ型フラッシュメモリ１０の製造者毎に異なる値にすることも可能である。
【０２５５】
なお、ホスト装置２０は、SECIDの新規書き込みが必要かどうかを判定し、必要に応じてSECIDをサーバに要求する機能を備える。
【０２５６】
＜SECID書き込みフロー＞  
次に、図３１に沿って、暗号化ChipID束（SECID）をサーバ６０からダウンロードしてＮＡＮＤ型フラッシュメモリ１０に書き込むフローについて説明する。
【０２５７】
図示するように、まず、ホスト装置２０が、SECIDダウンロードが必要と判定したことにより、SECID書き込みが開始（Start）され、ホスト装置２０はサーバ６０に対してSECID要求を出す（Step Ｓ５５）。
【０２５８】
続いて、サーバ６０は、ＮＡＮＤ型フラッシュメモリ１０に対して、ChipIDを特定するために必要となるインデックス情報ID-indexを要求する（Step Ｓ６０）。
【０２５９】
続いて、ＮＡＮＤ型フラッシュメモリ１０は、ROM領域１１−３からID-indexを読み出し、ID-indexをサーバに送出する（Step Ｓ６１）。
【０２６０】
続いて、サーバ６０は、 ChipID生成部６２において受信したID-indexを用いて、ChipIDを生成する（Step Ｓ６２）。
【０２６１】
続いて、サーバ６０は、秘匿しているIDKeyi (i=1、…、x) を読み出し、当該各IDKeyi６１を用いて生成されたChipIDを暗号化し、暗号化ChipID束（SECID）を生成する（Step Ｓ６３）。
【０２６２】
続いて、サーバ６０は、成した暗号化ChipID束（SECID）をＮＡＮＤ型フラッシュメモリに送出する（Step Ｓ６４）。
【０２６３】
続いて、ＮＡＮＤ型フラッシュメモリ１０は、受信した暗号化ChipID束（SECID）を一般領域１１−１に書き込み、記録する（Step Ｓ６５）。
【０２６４】
以上の動作により、第１２の実施形態に係る暗号化ChipID束（SECID）ダウンロードフローを終了する（End）。
【０２６５】
その他の構成、動作等に関しては、上記第１１の実施形態と実質的に同様である。
【０２６６】
＜作用効果＞  
第１２の実施形態に係る認証装置、被認証装置及び認証方法によれば、第１の実施形態と同様の作用効果（１）、（２）を得ることができる。
【０２６７】
さらに、第１２の実施形態のように、後からSECIDを書き込む場合においても、適用することが可能である。
【０２６８】
［第１３の実施形態（メモリ、コントローラ、ホストの一例）］  
次に、図３２を用い、第１３の実施形態について説明する。第１３の実施形態は、上記実施形態に適用可能な上記ＮＡＮＤ型フラッシュメモリ１０、コントローラ１９、およびホスト装置２０の一例に関するものである。本例では、メモリカードとしてSD（登録商標）カードを一例に挙げる。
【０２６９】
図示するように、本例では、メモリカードと接続されるホスト装置の機能ブロックも示されている。各機能ブロックは、ハードウェア、コンピュータソフトウェアのいずれかまたは両者を組み合わせたものとして実現することができる。このため、各ブロックがこれらのいずれでもあることが明確となるように、概してそれらの機能の観点から以下に説明する。このような機能が、ハードウェアとして実行されるか、またはソフトウェアとして実行されるかは、具体的な実施態様またはシステム全体に課される設計制約に依存する。当業者は、具体的な実施態様ごとに、種々の方法でこれらの機能を実現し得るが、いずれの実現の手法も本発明の範疇に含まれる。
【０２７０】
ホスト装置２０は、アプリケーション、オペレーティング・システム等のソフトウェア２１１を備えている。ソフトウェア２１１は、ユーザから、メモリカードへのデータの書き込み、メモリカードからのデータの読み出しを指示される。ソフトウェア２１１は、データの書き込みおよび読み出しをファイルシステム２１２に指示する。ファイルシステム２１２は、管理対象の記憶媒体に記録されているファイルデータを管理するための仕組みであり、記憶媒体の記憶領域内に管理情報を記録し、この管理情報を用いてファイルデータを管理する。
【０２７１】
ホスト装置２０は、ＳＤインターフェース２１３を有する。ＳＤインターフェース２１３は、ホスト装置２０とメモリカードとの間のインターフェース処理を行うのに必要なハードウェア、ソフトウェアからなる。ホスト装置２０は、ＳＤインターフェース２１３を介してメモリカードと通信を行う。ＳＤインターフェース２１３は、ホスト装置２０とメモリカードとが通信するのに必要な様々な取り決めを規定し、後述のメモリカードのＳＤインターフェース２３１と相互に認識可能な各種のコマンドの組を備えている。また、ＳＤインターフェース２１３は、メモリカードのＳＤインターフェース２３１と接続可能なハードウェア上の構成（ピンの配置、数等）も含む。
【０２７２】
メモリカードは、ＮＡＮＤ型フラッシュメモリ１０、メモリ１０を制御するためのコントローラ１９を有する。メモリカードは、ホスト装置２０に接続されたとき、およびオフ状態のホスト装置２０に挿入された状態でホスト装置２０がオンされたときに電源供給を受けて初期化動作を行った後、ホスト１からのアクセスに応じた処理を行う。
【０２７３】
ＮＡＮＤ型メモリ１０は、データを不揮発に記憶し、複数のメモリセルからなるページと呼ばれる単位でデータの書き込みおよび読み出しを行う。ページには、各ページに固有の物理アドレスが割り当てられている。また、メモリ１０は、複数のページからなる物理ブロック（消去ブロック）と呼ばれる単位でデータの消去を行う。なお、物理ブロック単位で物理アドレスが割り当てられていることもある。
【０２７４】
コントローラ１９は、メモリ１０によるデータの記憶状態を管理する。記憶状態の管理とは、どの物理アドレスのページ（または物理ブロック）が、どの論理アドレスのデータを保持しているかの関係、およびどの物理アドレスのページ（または物理ブロック）が消去状態（何も書き込まれていない、または無効なデータを保持している状態）であるかを管理することを含んでいる。
【０２７５】
コントローラ１９は、ＳＤインターフェース３１、ＭＰＵ（micro processing unit）３２、ＲＯＭ（read only memory）３３、ＲＡＭ（random access memory）３４、ＮＡＮＤインターフェース３５を含んでいる。
【０２７６】
ＳＤインターフェース１３１は、ホスト装置２０とコントローラ１９との間のインターフェース処理を行うのに必要なハードウェア、ソフトウェアからなり、ＳＤインターフェース１３と同様に、両者の通信を可能とする取り決めを規定し、各種のコマンドの組を備え、ハードウェア上の構成（ピンの配置、数等）も含む。メモリカード（コントローラ２２）は、ＳＤインターフェース１３１を介してとホスト１と通信を行う。ＳＤインターフェース１３１は、レジスタ１３６を含んでいる。
【０２７７】
ＭＰＵ１３２は、メモリカード全体の動作を司る。ＭＰＵ１３２は、例えば、メモリカードが電源供給を受けた際に、ＲＯＭ１３３内に格納されているファームウェア（制御プログラム）をＲＡＭ１３４上に読み出して所定の処理を実行する。ＭＰＵ１３２は、制御プログラムに従って各種のテーブルをＲＡＭ１３４上で作成したり、ホスト２０から受けたコマンドに従ってメモリに対する所定の処理を実行したりする。
【０２７８】
ＲＯＭ１３３は、ＭＰＵ１３２により制御される制御プログラムなどを格納する。ＲＡＭ１３４は、ＭＰＵ１３２の作業エリアとして使用され、制御プログラムや各種のテーブルを一時的に記憶する。このようなテーブルとして、ファイルシステム２１２によってデータに割り当てられた論理アドレスを有するデータを実際に記憶しているページの物理アドレスの変換テーブル（論物テーブル）が含まれる。ＮＡＮＤインターフェース１３５は、コントローラ１９とメモリ１０とのインターフェース処理を行う。
【０２７９】
ＮＡＮＤ型フラッシュメモリ１０内の記憶領域は、保存されるデータの種類に応じて、上記のように、例えば、一般領域（User area）、秘匿領域（Hidden area）、保護領域（Protected area）、ROM領域（ROM area）等を含んでいる。なお、コントローラ１９は、一般領域の一部を確保し、自身の動作に必要な制御データ（論物テーブル等）を保存する。
【０２８０】
［第１４の実施形態（ＮＡＮＤ型フラッシュメモリの構成例）］  
次に、上記ＮＡＮＤ型フラッシュメモリ１０の具体的構成例として、第１４の実施形態として説明する。
【０２８１】
＜全体構成例＞  
上記ＮＡＮＤ型フラッシュメモリ１０の具体的な全体構成例は、図３３のように示される。
【０２８２】
図示するように、本例に係るＮＡＮＤ型フラッシュメモリ１０は、メモリセルアレイ１１、制御回路１９、認証回路１５１、ビット線制御回路１５２、カラムデコーダ１５３、データ入出力バッファ１５４、データ入出力端子１５５、ワード線駆動回路１５６、制御信号入力端子１５８、電源発生回路１５９を備える。
【０２８３】
メモリセルアレイ１１は、複数のブロック（ＢＬＯＣＫ１〜ＢＬＯＣＫｎ）により構成される。複数のブロック（ＢＬＯＣＫ１〜ＢＬＯＣＫｎ）のそれぞれは、ワード線およびビット線の交差位置に配置される複数のメモリセルを備える。例えば、ＢＬＯＣＫ１は、上記ROM領域１１−３である。例えば、ＢＬＯＣＫ２は、上記秘匿領域１１−２である。その他のブロックは、ホスト装置２０から利用可能な一般領域（User area）１１−１等である。
【０２８４】
ROM領域１１−３は例えばＯＴＰ（One Time Program）ブロックであり、１回の書き込みのみ許容される。書き込み後は電気フューズ、レーザフューズ、ＲＯＭフューズ等の手段を用いてブロックデコーダを制御し消去動作を禁止する。秘匿領域１１−２は、例えば外部アドレスのデコードでは選択できない状態とし、ＮＡＮＤ型フラッシュメモリ内部の制御回路１９のみが読み出し可能な領域とする。
【０２８５】
認証回路１５１は、例えば、上記データキャッシュ１２、発生回路１３、１６、結合回路１４、乱数生成回路１５、排他的論理和回路１７、暗号器１８等を備え、制御回路１９により制御される。
【０２８６】
ビット線制御回路１５２は、ビット線を介してメモリセルアレイ１１中のメモリセルのデータを読み出し、ビット線を介してメモリセルアレイ１１中のメモリセルの状態を検出する。また、ビット線制御回路１５２は、ビット線を介してメモリセルアレイ１１中のメモリセルに書き込み制御電圧を印加してメモリセルに書き込みを行う。
【０２８７】
ビット線制御回路１５２内には、図示しない上記ページバッファ等のデータ記憶回路等が設けられ、このデータ記憶回路は、カラムデコーダ１５３によって選択される。データ記憶回路に読み出されたメモリセルのデータは、データ入出力バッファ１５４を介してデータ入出力端子１５５から外部へ出力される。
【０２８８】
データ入出力端子１５５は、例えば、外部のホスト装置２０等に接続される。データ入出力端子１５５は、例えば８ビット、または１６ビットのバス幅を有している。ＮＡＮＤ型フラッシュメモリ１０は、トグルモードインターフェース（toggle mode interface）などの高速インターフェース規格をサポートしてもよい。トグルモードインターフェースでは、例えば、データストローブ信号（DQS）の立ち上がり、立ち下がり両エッジに同期してデータ入出力端子１５５を介したデータ転送が行われる。
【０２８９】
ホスト装置２０は、例えば、マイクロコンピュータ等であって、データ入出力端子１５５から出力されたデータを受ける。ホスト装置２０は、ＮＡＮＤ型フラッシュメモリ１０の動作を制御する各種コマンドＣＭＤ（書き込みコマンド、読み出しコマンド、消去コマンド、ステータスリードコマンド等）、アドレスＡＤＤ、およびデータＤＴを出力する。ホスト装置２０からデータ入出力端子１５５に入力された書き込みデータＤＴは、データ入出力バッファ１５４を介して、カラムデコーダ１５３によって選択された上記データ記憶回路（図示せず）に供給される。一方、コマンドＣＭＤおよびアドレスＡＤＤは、制御回路１９に供給される。
【０２９０】
ワード線駆動回路１５６は、制御回路１９の制御に従い、メモリセルアレイ１１中のワード線を選択し、選択されたワード線に読み出し、書き込みあるいは消去に必要な電圧を印加する。
【０２９１】
電圧発生回路１５９は、制御回路１９の制御に従い、図示中の接続された上記構成回路の動作に必要な電圧を供給する。例えば、電圧発生回路１５９は、ホスト装置から供給される外部電圧を昇圧して、読み出し、書き込みあるいは消去時にワード線に印加される電圧を生成する。
【０２９２】
制御回路（Controller）１９は、ＮＡＮＤ型フラッシュメモリ１０の全体の動作を制御するために、接続される各回路に必要な制御信号および制御電圧を与える。制御回路１９は、メモリセルアレイ１１、認証回路１５１、ビット線制御回路１５２、カラムデコーダ１５３、データ入出力バッファ１５４、ワード線駆動回路１５６、電圧発生回路１５９に接続される。接続された上記構成回路は、制御回路１９によって制御される。
【０２９３】
制御回路１９は、制御信号入力端子１５８に接続され、ホスト装置２０から制御信号入力端子１５８を介して入力されるＷＥ（ライト・イネーブル）信号、ＲＥ（リード・イネーブル）信号、ＡＬＥ（アドレス・ラッチ・イネーブル）信号、ＣＬＥ（コマンド・ラッチ・イネーブル）信号等の制御信号の組み合わせによって制御される。
【０２９４】
ここで、機能的に表現すれば、上記ワード線駆動回路１５６、ビット線制御回路１５２、カラムデコーダ１５３、制御回路１９は、データ書き込み回路、データ読み出し回路、およびデータ消去回路を構成する。ホスト装置２０は、ＮＡＮＤ型フラッシュメモリ１０が書き込み、読み出し、消去などの内部動作を実行中であるか否かを、図示せぬＲＹ／ＢＹ（レディー／ビジー）信号出力端子をモニタすることで検知する。制御回路１９は、ＲＹ／ＢＹ信号出力端子を介して、ＲＹ／ＢＹ信号を出力する。
【０２９５】
＜ブロック（ＢＬＯＣＫ）の構成例＞  
次に、図３４を用い、メモリセルアレイを構成するブロック（ＢＬＯＣＫ）の構成例について説明する。ここでは、図３３中のＢＬＯＣＫ１を一例に挙げて説明する。ここで、このブロックＢＬＯＣＫ１中のメモリセルは、一括してデータ消去されるため、ブロックはデータ消去単位である。
【０２９６】
ブロックＢＬＯＣＫ１は、ワード線方向（ＷＬ方向）に配置される複数のメモリセルユニットＭＵから構成される。メモリセルユニットＭＵは、ＷＬ方向と交差するビット線方向（ＢＬ方向）に配置され、電流経路が直列接続される８個のメモリセルＭＣ０〜ＭＣ７からなるＮＡＮＤストリング（メモリセルストリング）と、ＮＡＮＤストリングの電流経路の一端に接続されるソース側の選択トランジスタＳ１と、ＮＡＮＤストリングの電流経路の他端に接続されるドレイン側の選択トランジスタＳ２とから構成される。
【０２９７】
尚、本例では、メモリセルユニットＭＵは、８個のメモリセルＭＣ０〜ＭＣ７から構成されるが、２つ以上のメモリセル、例えば、５６個、３２個等から構成されていればよく、８個に限定されるというものではない。
【０２９８】
ソース側の選択トランジスタＳ１の電流経路の他端はソース線ＳＬに接続される。ドレイン側の選択トランジスタＳ２の電流経路の他端は、各メモリセルユニットＭＵに対応してメモリセルユニットＭＵの上方に設けられ、ＢＬ方向に延出するビット線ＢＬｍ−１に接続される。
【０２９９】
ワード線ＷＬ０〜ＷＬ７は、ＷＬ方向に延び、ＷＬ方向の複数のメモリセルの制御ゲート電極に共通に接続される。選択ゲート線ＳＧＳは、ＷＬ方向に延び、ＷＬ方向の複数の選択トランジスタＳ１に共通に接続される。選択ゲート線ＳＧＤも、ＷＬ方向に延び、ＷＬ方向の複数の選択トランジスタＳ２に共通に接続される。
【０３００】
また、ワード線ＷＬ０〜ＷＬ７ごとにページ（ＰＡＧＥ）が存在する。例えば、図中の破線で囲って示すように、ワード線ＷＬ７には、ページ７（ＰＡＧＥ７）が存在する。このページ（ＰＡＧＥ）ごとに、後述するデータ読み出し動作、データ書き込み動作が行われるため、ページ（ＰＡＧＥ）はデータ読み出し単位であり、データ書き込み単位である。
【０３０１】
以上、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
以下に、本願の出願当初における特許請求の範囲を付記する。
[1]被認証装置を認証装置が認証する認証方法であって、
前記被認証装置は、秘匿された第１鍵情報（NKey）を保持し、
前記認証装置は、元情報(HC)と秘匿された第２鍵情報（HKey）を保持し、
前記被認証装置が、前記元情報(HC)と第１鍵情報（NKey）に基づいて、第３鍵情報（HKey’）を生成するステップと、
前記被認証装置が、前記第３鍵情報(HKey’)と乱数情報とに基づいて、第１セッション鍵(SKey)を生成するステップと、
前記認証装置が、秘匿された第２鍵情報(HKey)と乱数情報に基づいて、第２セッション鍵(SKey’)を生成するステップとを具備する認証方法。
[2]前記被認証装置は、前記第１セッション鍵を用いて保有するID情報を暗号化し、暗号化された前記ID情報を前記認証装置へ送信するステップを更に具備する[1]に記載の認証方法。
[3]前記認証装置が、予め暗号化された前記ID情報の全体（ChipIDおよびLotID）或いはその一部である部分ID情報（LotIDまたはChipID）を記録領域に記録し、
前記認証装置が、前記予め暗号化されたID情報或いは前記予め暗号化された部分ID情報を前記被認証装置の前記記録領域から読み出すと共に、当該予め暗号化されたID情報或いは当該予め暗号化された部分ID情報を秘匿する前記第２鍵情報（HKey）を用いて復号することによりID情報或いは部分ID情報を取得し、当該復号されたID情報或いは部分ID情報が前記被認証装置から前記ID情報の全体或いは一部であることを確認するステップとを更に具備する[2]に記載の認証方法。
[4]前記認証装置は、前記被認証装置から送信される前記第１セッション鍵で暗号化された前記ID情報を、前記第２セッション鍵により復号して前記ID情報を得るステップと、
前記認証装置は、前記第２鍵情報を用いて復号して取られた前記ID情報の一部と前記第２セッション鍵を用いて復号して得られた前記ID情報とを用い、前記被認証装置の識別情報（ChipID）を取得するステップとを更に具備する[3]に記載の認証方法。
[5]秘匿される第１鍵情報（NKey）を記憶するセルアレイと、
認証装置の元情報（HC）と前記第１鍵情報（NKey）とを用いて、第２鍵情報（HKey）を生成する第１データ生成回路と、
生成した前記第２鍵情報（HKey）と乱数情報とを用いて、セッション鍵（SKey）を生成する第２データ生成回路とを具備する被認証装置であって、
前記第１鍵情報（NKey）からは前記第２鍵情報（HKey）を生成するが、前記第２鍵情報（HKey）からは前記第１鍵情報（NKey）を生成しないように構成される。
[6]前記セルアレイは、前記被認証装置の識別情報（ChipID）を更に記憶し、
前記識別情報（ChipID）を前記セッション鍵（SKey）を用いて一方向性関数により変換する一方向性変換器を更に具備する[5]に記載の被認証装置。
[7]秘匿される第１鍵情報（NKey）を保持する被認証装置を認証する認証装置であって、前記認証装置は、
秘匿される第２鍵情報（HKey）を記憶するメモリと、
乱数情報を発生する乱数発生器と、
前記第２鍵情報（HKey）と前記乱数情報とを用いてセッション鍵（SKey）を生成するデータ生成回路とを具備し、
前記第１鍵情報（NKey）からは前記第２鍵情報（HKey）を生成するが、前記第２鍵情報（HKey）からは前記第１鍵情報（NKey）を生成しないように構成される。
[8]前記被認証装置から受信する識別情報（ChipID）を前記セッション鍵（SKey）を用いて一方向性関数により変換する一方向性変換器を更に具備する[7]に記載の認証装置。
[9]前記認証装置は、前記予め暗号化されたID情報の全体（ChipIDおよびLotID）或いはその一部である前記予め暗号化された部分ID情報（LotIDまたはChipID）を、前記被認証装置から読み出し、
前記認証装置は、前記予め暗号化されたID情報或いは前記予め暗号化された部分ID情報を復号するために必要な、前記第２鍵情報（HKey）とは異なる第３鍵情報（IDKey）を前記メモリに更に記憶し、
前記認証装置は、前記予め暗号化されたID情報或いは前記予め暗号化された部分ID情報を前記第３鍵情報（IDKey）により復号することにより、前記ID情報或いは前記部分ID情報を取得する[7]または[8]に記載の認証装置。
【符号の説明】
【０３０２】
１０…被認証装置（ＮＡＮＤ型フラッシュメモリ）、１９…コントローラ、２０…認証装置（ホスト装置）、１１…セルアレイ、２３…メモリ、NKey…第１鍵情報、HKey…第２鍵情報、SKey…セッション鍵情報。
【図１】
0005214782.tif 000002
【図２】
0005214782.tif 000003
【図３】
0005214782.tif 000004
【図４】
0005214782.tif 000005
【図５】
0005214782.tif 000006
【図６】
0005214782.tif 000007
【図７】
0005214782.tif 000008
【図８】
0005214782.tif 000009
【図９】
0005214782.tif 000010
【図１０】
0005214782.tif 000011
【図１１】
0005214782.tif 000012
【図１２】
0005214782.tif 000013
【図１３】
0005214782.tif 000014
【図１４】
0005214782.tif 000015
【図１５】
0005214782.tif 000016
【図１６】
0005214782.tif 000017
【図１７】
0005214782.tif 000018
【図１８】
0005214782.tif 000019
【図１９】
0005214782.tif 000020
【図２０】
0005214782.tif 000021
【図２１】
0005214782.tif 000022
【図２２】
0005214782.tif 000023
【図２３】
0005214782.tif 000024
【図２４】
0005214782.tif 000025
【図２５】
0005214782.tif 000026
【図２６】
0005214782.tif 000027
【図２７】
0005214782.tif 000028
【図２８】
0005214782.tif 000029
【図２９】
0005214782.tif 000030
【図３０】
0005214782.tif 000031
【図３１】
0005214782.tif 000032
【図３２】
0005214782.tif 000033
【図３３】
0005214782.tif 000034
【図３４】
0005214782.tif 000035