(57)【特許請求の範囲】
【請求項１】
識別情報が記憶された不揮発性半導体メモリと、
第１アプリケーションプログラムと、第２アプリケーションプログラムとを其々実行可能に構成されたプロセッサと、
を備え、
前記プロセッサは、前記第１アプリケーションプログラムの実行に伴い前記識別情報が正当なものであるか否かを判定する第１認証処理を行い、前記識別情報が正当なものである場合、前記第１アプリケーションプログラムの処理を続行し、前記識別情報が正当なものでない場合、前記第１アプリケーションプログラムの処理を停止し、
前記プロセッサは、前記第２アプリケーションプログラムの実行に伴い前記識別情報が正当なものであるか否かを判定する第２認証処理を行い、前記識別情報が正当なものである場合、前記第２アプリケーションプログラムの処理を続行し、前記識別情報が正当なものでない場合、前記第２アプリケーションプログラムの処理を停止することを特徴とする情報処理装置。
【請求項２】
識別情報を記憶した不揮発性半導体メモリと、
第１アプリケーションプログラムと、第２アプリケーションプログラムとを其々実行可能に構成されたプロセッサと、
を備え、
前記プロセッサは、前記第１アプリケーションプログラムの実行に伴い前記識別情報_が正当なものであるか否かを判定する第１認証処理を行い、前記識別情報が正当なものである場合、データの暗号化では、前記識別情報から派生する第１バインド鍵を生成し、前記第１バインド鍵を用いてデータを暗号化し、暗号化されたデータを前記不揮発性半導体メモリに記憶し、前記識別情報が正当なものでない場合、前記第１アプリケーションプログラムの処理を停止し、
前記プロセッサは、前記第２アプリケーションプログラムの実行に伴い前記識別情報_が正当なものであるか否かを判定する第２認証処理を行い、前記識別情報が正当なものである場合、データの暗号化では、前記識別情報から派生する第２バインド鍵を生成し、前記第２バインド鍵を用いてデータを暗号化し、暗号化されたデータを前記不揮発性半導体メモリに記憶し、前記識別情報が正当なものでない場合、前記第２アプリケーションプログラムの処理を停止することを特徴とする情報処理装置。
【請求項３】
前記プロセッサは、前記第１認証処理において前記識別情報が正当なものである場合、データの復号化では、前記識別情報から派生する前記第１バインド鍵を生成し、前記第１バインド鍵を用いて、前記不揮発性半導体メモリから読み出した前記暗号化されたデータを復号し、前記第１認証処理において前記識別情報が正当なものでない場合、前記第１アプリケーションプログラムの処理を停止し、
前記プロセッサは、前記第２認証処理において前記識別情報が正当なものである場合、データの復号化では、前記識別情報から派生する前記第２バインド鍵を生成し、前記第２バインド鍵を用いて、前記不揮発性半導体メモリから読み出した前記暗号化されたデータを復号し、前記第２認証処理において前記識別情報が正当なものでない場合、前記第２アプリケーションプログラムの処理を停止することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
識別情報を記憶した不揮発性半導体メモリと、
第１アプリケーションプログラムと、第２アプリケーションプログラムとを其々実行可能に構成されたプロセッサと、
を備え、
前記プロセッサは、前記第１アプリケーションプログラムの実行に伴い前記識別情報_が正当なものであるか否かを判定する第１認証処理を行い、前記識別情報が正当なものである場合、データの書き込みでは、前記識別情報に基づいて第１データから第１バインドデータを生成し、前記第１データと前記第１バインドデータを前記不揮発性半導体メモリに記憶し、前記識別情報が正当なものでない場合、前記第１アプリケーションプログラムの処理を停止し、
前記プロセッサは、前記第２アプリケーションプログラムの実行に伴い前記識別情報_が正当なものであるか否かを判定する第２認証処理を行い、前記識別情報が正当なものである場合、データの書き込みでは、前記識別情報に基づいて第２データから第２バインドデータを生成し、前記第２データと前記第２バインドデータを前記不揮発性半導体メモリに記憶し、前記識別情報が正当なものでない場合、前記第２アプリケーションプログラムの処理を停止することを特徴とする情報処理装置。
【請求項５】
前記プロセッサは、前記第１認証処理において前記識別情報が正当なものである場合、データの読み出しでは、前記不揮発性半導体メモリから前記第１データを読み出し、前記識別情報に基づいて前記第１データから第３バインドデータを生成し、前記第１バインドデータと前記第３バインドデータとを比較照合し、前記第１，第３バインドデータが一致した場合、前記第１データを利用し、前記第１認証処理において前記識別情報が正当なものでない場合、前記第１アプリケーションプログラムの処理を停止し、
前記プロセッサは、前記第２認証処理において前記識別情報が正当なものである場合、データの読み出しでは、前記不揮発性半導体メモリから前記第２データを読み出し、前記識別情報に基づいて前記第２データから第４バインドデータを生成し、前記第２バインドデータと前記第４バインドデータとを比較照合し、前記第２，第４バインドデータが一致した場合、前記第２データを利用し、前記第２認証処理において前記識別情報が正当なものでない場合、前記第２アプリケーションプログラムの処理を停止することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記不揮発性半導体メモリは、前記識別情報としての第１の公開パラメータ、第１の秘密パラメータと、認証データを生成する認証データ生成部を有し、
前記プロセッサが実行する前記第１アプリケーションプログラムは、第２の公開パラメータ、第２の秘密パラメータ、第１乱数を生成する第１乱数生成部、及び第１認証データ照合部を有し、
前記第１認証処理では、
前記認証データ生成部は、前記第２の公開パラメータ、前記第１の秘密パラメータ、前記第１乱数から第１の認証データを生成し、
前記第１認証データ照合部は、前記第１の公開パラメータ、前記第２の秘密パラメータ、前記第１乱数から第２の認証データを生成し、前記第１の認証データと前記第２の認証データとを照合し、前記第１，第２の認証データが一致するか否かを判定し、
前記プロセッサが実行する前記第２アプリケーションプログラムは、第３の公開パラメータ、第３の秘密パラメータ、第２乱数を生成する第２乱数生成部、及び第２認証データ照合部を有し、
前記第２認証処理では、
前記認証データ生成部は、前記第３の公開パラメータ、前記第１の秘密パラメータ、前記第２乱数から第３の認証データを生成し、
前記第２認証データ照合部は、前記第１の公開パラメータ、前記第３の秘密パラメータ、前記第２乱数から第４の認証データを生成し、前記第３の認証データと前記第４の認証データとを照合し、前記第３，第４の認証データが一致するか否かを判定することを特徴とする請求項１乃至５のいずれかに記載の情報処理装置。
【請求項７】
前記不揮発性半導体メモリはＮＡＮＤフラッシュメモリを含むことを特徴とする請求項１乃至６のいずれかに記載の情報処理装置。
【請求項８】
前記識別情報は、前記第１アプリケーションプログラムの実行に伴って行われる前記第１認証処理に用いられる第１識別情報と、前記第２アプリケーションプログラムの実行に伴って行われる前記第２認証処理に用いられる第２識別情報とを含むことを特徴とする請求項１乃至７のいずれかに記載の情報処理装置。
【請求項９】
前記プロセッサは、前記第１アプリケーションプログラムの実行に伴って前記第１識別情報と第３識別情報を用いて前記第１認証処理を実施することを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記プロセッサは、前記第２アプリケーションプログラムの実行に伴って前記第２識別情報と第４識別情報を用いて前記第２認証処理を実施することを特徴とする請求項８または９に記載の情報処理装置。
【請求項１１】
第１装置、第２装置及びホストデバイスを含むシステムであって、
前記ホストデバイスは、
識別情報を格納した不揮発性半導体メモリと、第１アプリケーションプログラムと、第２アプリケーションプログラムとを其々実行可能に構成されたプロセッサとを有し、
前記システムにおいて、
前記第１装置からのアクセスに伴い、前記第１アプリケーションプログラムが実行され、前記識別情報が認証されることで正当なホストデバイスであるか否かが判定され、前記ホストデバイスが正当と判断された場合、前記第１アプリケーションプログラムの処理が続行され、前記ホストデバイスが不正当と判断された場合、前記第１アプリケーションプログラムの処理が停止され、
前記第２装置からのアクセスに伴い、前記第２アプリケーションプログラムが実行され、前記識別情報が認証されることで正当なホストデバイスであるか否かが判定され、前記ホストデバイスが正当と判断された場合、前記第２アプリケーションプログラムの処理が続行され、前記ホストデバイスが不正当と判断された場合、前記第２アプリケーションプログラムの処理が停止されるように構成されたシステム。
【請求項１２】
第１装置との間、第２装置との間で其々認証処理を行うホストデバイスであって、
前記ホストデバイスは、識別情報を格納した不揮発性半導体メモリと、第１アプリケーションプログラムと、第２アプリケーションプログラムとを其々実行可能に構成されたプロセッサとを有し、
前記第１装置からのアクセスに伴い、前記第１アプリケーションプログラムが実行され、前記識別情報が認証されることで正当なホストデバイスであるか否かが判定され、前記ホストデバイスが正当と判断された場合、前記第１アプリケーションプログラムの処理が続行され、前記ホストデバイスが不正当と判断された場合、前記第１アプリケーションプログラムの処理が停止され、
前記第２装置からのアクセスに伴い、前記第２アプリケーションプログラムが実行され、前記識別情報が認証されることで正当なホストデバイスであるか否かが判定され、前記ホストデバイスが正当と判断された場合、前記第２アプリケーションプログラムの処理が続行され、前記ホストデバイスが不正当と判断された場合、前記第２アプリケーションプログラムの処理が停止されるように構成されたホストデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、不揮発性半導体メモリを備えた情報処理装置に関するものである。
【背景技術】
【０００２】
一般に、情報セキュリティを要する分野において、自己の正当性を証明する手段として互いに共有した秘密情報と暗号とを用いた認証技術が採用されている。
【０００３】
例えば、電子決済に用いるＩＣカード（Smart Card）の中にはＩＣチップが含まれ、そのＩＣチップには当該ＩＣカードを識別するためのＩＤ（identifier）及び秘密情報が保持されている。更にＩＣカードは、これらＩＤ及び秘密情報に基づく認証を行うための暗号処理機能を有している。
【０００４】
別の例では、コンテンツの著作権保護技術において、ＳＤカード（登録商標）の正当性を証明するためのコンテンツ保護技術（Content Protection for Recordable Media（ＣＰＲＭ））が知られている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−０５２０１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
秘密情報の不正利用を防止することが可能な情報処理装置を提供する。
【課題を解決するための手段】
【０００７】
一実施態様の情報処理装置は、識別情報が記憶された不揮発性半導体メモリと、第１アプリケーションプログラムと、第２アプリケーションプログラムとを其々実行可能に構成されたプロセッサとを備える。前記プロセッサは、前記第１アプリケーションプログラムの実行に伴い前記識別情報_が正当なものであるか否かを判定する第１認証処理を行い、前記識別情報が正当なものである場合、前記第１アプリケーションプログラムの処理を続行し、前記識別情報が正当なものでない場合、前記第１アプリケーションプログラムの処理を停止し、前記プロセッサは、前記第２アプリケーションプログラムの実行に伴い前記識別情報_が正当なものであるか否かを判定する第２認証処理を行い、前記識別情報が正当なものである場合、前記第２アプリケーションプログラムの処理を続行し、前記識別情報が正当なものでない場合、前記第２アプリケーションプログラムの処理を停止することを特徴とする。
【図面の簡単な説明】
【０００８】
【図１】第１実施形態のホストデバイスのハードウェア構成の概要を示す図である。
【図２】第１実施形態のホストデバイスの機能的な構成を示すブロック図である。
【図３】第１実施形態のホストデバイスの構成例を示す図である。
【図４】第１実施形態のホストデバイスにおけるセキュアフラッシュメモリの認証フローを示す図である。
【図５】第１実施形態におけるホストアプリケーション及びセキュアフラッシュメモリの構成例を示す図である。
【図６】第１実施形態におけるスロットの利用方法にを示す図である。
【図７】第１実施形態におけるスロットの大分類方法と、ホストアプリケーション及びメモリへの鍵割り当て方法を示す図である。
【図８】第１実施形態における各キーセットの整合をとり、互換性を確保した上で配布する方法を示す図である。
【図９】第１実施形態のホストデバイスの構成を示すブロック図である。
【図１０】第１実施形態のホストデバイスにおけるホストアプリケーションの処理を示すフローチャートである。
【図１１】第２実施形態のホストデバイスの構成を示すブロック図である。
【図１２】第２実施形態におけるサーバによる認証処理とバインド処理を示すフローチャートである。
【図１３】第２実施形態におけるバインド処理の具体例を示す図である。
【図１４】第２実施形態におけるＣＰＵによる認証処理とバインドを解く処理を示すフローチャートである。
【図１５】第２実施形態におけるバインドを解く処理の具体例を示す図である。
【図１６】第３実施形態のホストデバイスの構成を示すブロック図である。
【図１７】第３実施形態におけるサーバによる認証処理とバインド処理を示すフローチャートである。
【図１８】（ａ）は第３実施形態におけるバインド処理の具体例を示す図であり、（ｂ）はバインドを解く処理の具体例を示す図である。
【図１９】第３実施形態におけるＣＰＵによる認証処理とバインドを解く処理を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、図面を参照して実施形態の情報処理装置について説明する。情報処理装置は、例えばコンピュータ、スマートホン、タブレット端末、ＰＤＡ（Personal Digital Assistant）等のホストデバイスを含む。以下、本明細書では、情報処理装置をホストデバイスと称する。以下の説明において、略同一の機能及び構成を有する構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。また、以下に示す各実施形態は、この実施形態の技術的思想を具体化するための装置や方法を例示するものであって、構成部品の材質、形状、構造、配置等を下記のものに特定するものではない。実施形態の技術的思想は、特許請求の範囲において種々の変更を加えることができる。
【００１０】
［第１実施形態］  
図１は、第１実施形態のホストデバイスのハードウェア構成の概要を示す図である。
【００１１】
図示するように、ホストデバイス１０は、セキュアフラッシュメモリ１００、コントローラ２００、ＣＰＵ（central processing unit）３００、ＲＯＭ（Read only Memory）４００、ＲＡＭ（Random Access Memory）５００、及びネットワークアクセスユニット６００を備える。
【００１２】
前記セキュアフラッシュメモリ１００は、例えば識別情報を有するＮＡＮＤフラッシュメモリなどの不揮発性半導体メモリを含む。コントローラ２００は、セキュアフラッシュメモリ１００の動作を制御する。ＣＰＵ３００は、ホストデバイス１０内における動作全体を制御する。ＲＯＭ４００は、ＣＰＵ３００により使用される制御プログラムなどのファームウェアを格納する。ＲＡＭ５００は、ＣＰＵ３００のワークエリアとして使用され、制御プログラム、各種のテーブル、及びデータ等を一時的に記憶する。ネットワークアクセスユニット６００は、ネットワーク上でデータの送受信を行う際、ネットワーク（例えば、サーバ７００を含む）とホストデバイス１０とを接続する。
【００１３】
次に、第１実施形態のホストデバイスの機能的な構成の概要について説明する。
【００１４】
図２は、前記ホストデバイスの機能的な構成を示すブロック図である。
【００１５】
図示するように、ホストデバイス１０は、セキュアフラッシュメモリ１００及びホストアプリケーション８００を有している。セキュアフラッシュメモリ１００は、公開パラメータ１１１、秘密パラメータ１１２、及び認証データ生成部１１３を含む。ホストアプリケーション８００はＣＰＵ３００により実行され、ＲＯＭ４００、ＲＡＭ５００等、ホストデバイス１０内の各種リソースを利用する。ホストアプリケーション８００は、公開パラメータ８０１、秘密パラメータ８０２、乱数生成部８０３、及び認証データ照合部８０４を含む。
【００１６】
ホストデバイス１０で行われる認証処理は以下のように行われる。
【００１７】
ホストアプリケーション８００を実行するＣＰＵ３００は、公開パラメータ８０１と乱数生成部８０３にて生成された乱数RNhをセキュアフラッシュメモリ１００へ出力する。セキュアフラッシュメモリ１００は、ホストアプリケーション８００から取得した公開パラメータ８０１と乱数RNh、及び自身が持つ秘密パラメータ１１２とから、認証データ生成部１１３により認証データを生成する。
【００１８】
また、セキュアフラッシュメモリ１００は、ホストアプリケーション８００を実行するＣＰＵ３００へ公開パラメータ１１１を出力する。ＣＰＵ３００は、セキュアフラッシュメモリ１００から取得した公開パラメータ１１１と、乱数生成部８０３にて生成された乱数RNh、及び自身が持つ秘密パラメータ８０２とから、認証データ照合部８０４により認証データを生成する。
【００１９】
ＣＰＵ３００は、ホストアプリケーション自身で生成した認証データと、セキュアフラッシュメモリ１００により生成された認証データとを認証データ照合部８０４により照合する。両者の認証データが一致した場合、認証が成功となり、ＣＰＵ３００はホストアプリケーション８００による次の処理が実行可能となる。一方、両者の認証データが一致しない場合、認証が不成功となり、ＣＰＵ３００はホストアプリケーション８００による認証処理を停止し、ホストアプリケーション８００を終了する。
【００２０】
ホストアプリケーションは、例えば、ホストデバイス上で動作するオペレーティングシステムであってもよい。あるいは、ホストアプリケーションは、オペレーティングシステム上で動作する各種のアプリケーションプログラムであってもよい。また認証が不成功であった場合に、ホストアプリケーション８００の全ての動作を終了させるのではなく、少なくとも一部の機能または処理のみを実行不可とし、認証が成功した場合に、当該少なくとも一部の機能または処理のみを実行可能とする態様も可能である。また、ホストアプリケーション８００は、その立ち上げ時に認証処理を実行してもよいし、立ち上げ後、特定の処理を実行する際に認証処理を実行してもよい。
【００２１】
次に、第１実施形態のホストデバイスにおける認証部、被認証部、及びその認証方法について説明する。
【００２２】
＜１．構成例（ホストデバイス）＞
図３を参照して、第１実施形態に係るホストデバイスの構成例について説明する。図３は、秘密情報NKey及び秘密識別情報SecretIDがメモリ製造業者からセキュアフラッシュメモリ１００に与えられた後の状態を示している。本実施形態では、セキュアフラッシュメモリ１００が例えばＮＡＮＤフラッシュメモリである場合を示している。
【００２３】
ここで、秘密情報NKeyと秘密識別情報SecretIDはセキュアフラッシュメモリ１００が有する前記識別情報であり、秘密情報NKeyと秘密識別情報SecretIDの固有性は任意である。例えば、秘密情報NKeyはセキュアフラッシュメモリ１００毎に固有の値であってもよく、また前記メモリ１００のロット毎に固有の値、前記メモリ１００の製造者毎に固有の値であってもよい。加えて、秘密識別情報SecretIDはセキュアフラッシュメモリ１００毎に固有の値であってもよく、また前記メモリ１００のロット毎に固有の値、前記メモリ１００の製造者毎に固有の値であってもよい。固有性の粒度は必要に応じて選択すればよいが、秘密情報NKeyもしくは秘密識別情報SecretIDの少なくともいずれか一方はセキュアフラッシュメモリ１００毎に固有な値であることが望ましい。
【００２４】
図３に示すように、第１実施形態に係るホストデバイス１０は、被認証部であるセキュアフラッシュメモリ１００、認証部であるホストアプリケーション８００、及び両者を仲介するコントローラ２００を備える。ホストアプリケーション８００はＣＰＵ３００によって実行される。ＣＰＵ３００は、ホストアプリケーション８００によって実行される処理にしたがって、セキュアフラッシュメモリ１００にアクセスする。
【００２５】
ここで、セキュアフラッシュメモリ１００等の半導体製品の製造工程について、簡単に説明する。半導体製品の製造工程は、主に基板ウェハ上に回路を形成する前工程と、このウェハを個片に切り分けた後、配線や樹脂パッケージ封入等を行う後工程と、に分けることができる。
【００２６】
コントローラ２００は、前工程においてセキュアフラッシュメモリ１００内に包含されるよう構成される場合、前工程においては包含されないが後工程において同一パッケージに包含されるように構成される場合、セキュアフラッシュメモリ１００とは異なるチップとして提供される場合等、様々な場合がある。図３を含め、以下では、コントローラ２００がセキュアフラッシュメモリ１００とは異なるチップとして提供される場合を例にとって説明している。
【００２７】
以下、特に断りのない限り、ホストアプリケーション８００とセキュアフラッシュメモリ１００との間のデータや命令のやり取りは、多くの場合コントローラ２００が仲介する。この場合でも、コントローラ２００は、前述のデータや命令の本質的内容を変えることはないため、詳細については省略して説明する場合がある。なお、セキュアフラッシュメモリ１００及びホストアプリケーション８００の構成例の詳細については後述する。
【００２８】
図３に示す各コンポーネント、データ処理について、以下で説明する。本実施形態では、被認証部に記録されている秘密識別情報SecretIDを第三者から秘匿した状態で読み出すと共に、正規の被認証部から読み出されたデータであることを確認する方法、及び同方法を、セキュアフラッシュメモリ１００を利用したホストデバイスに適用する場合の構成例を示すものである。
【００２９】
１−１．セキュアフラッシュメモリ  
本実施形態において、セキュアフラッシュメモリ１００は、例えばＮＡＮＤ型フラッシュメモリであり、自己の正当性が認証される被認証部である。
【００３０】
図示するように、本実施形態に係るセキュアフラッシュメモリ１００は、メモリセルアレイ（Cell  array）１１、及びセルアレイ１１の周辺領域に配置されるデータキャッシュ（Data Cache）１２、データ生成回路（Generate）１３、１４、及び一方向性変換器（Oneway）１５を備える。データ生成回路（Generate）１３、１４及び一方向性変換器（Oneway）１５は、認証回路１０７を構成する。
【００３１】
メモリセルアレイ１１は、外部からの読み出し及び書き込みの両方が禁止された秘匿領域（Hidden area）１０１、外部からの書き込みが禁止されたロム領域（ROM area）１０２、外部からの読み出し及び書き込みの両方が可能な読み書き可能領域（Read/Write area）１０３等を備える。
【００３２】
読み書き可能領域（一般領域）１０３は、セキュアフラッシュメモリ１００の外部からのデータ書き込み及びデータ読み出し両方が可能な領域である。読み書き可能領域１０３には、秘匿情報FKeyvを秘匿するために用意された暗号化FKey束である鍵管理情報FKBv（Family Key Block）が記録される。鍵管理情報FKBvはセキュアフラッシュメモリ１００に記録される他のデータとは異なり、セキュアフラッシュメモリ１００の製造時だけでなく、例えばＳＤカードのようにセキュアフラッシュメモリ１００にコントローラを結合させて一般ユーザ向けのストレージメディアを製造する段階や、或いは前記ストレージメディアの販売後に、ユーザの要求に従ってサーバからダウンロードして記録するように構成することも可能である。詳細については、後述する。
【００３３】
ここで、鍵管理情報FKBvとは、ホストアプリケーション８００が保持する秘密情報IDKeykと、当該秘密情報IDKeykのインデックス情報kとに基づいて秘匿情報FKeyvを復号するために用いられる情報であり、または、ホストアプリケーション８００が保持する秘密情報IDKeykと、当該ホストアプリケーション８００の識別情報とに基づいて秘匿情報FKeyvを復号するために用いられる情報である。
【００３４】
また、鍵管理情報FKBvは、セキュアフラッシュメモリ１００毎にユニークに用意するだけでなく、製造工程に合わせて例えばセキュアフラッシュメモリ１００の製造ロット（lot）単位やウェハ（Wafer）単位等、複数のセキュアフラッシュメモリ１００に共通に付すことが可能な情報（対応付けられることが可能な情報）である。また、鍵管理情報FKBvのインデックス情報vは、鍵管理情報FKBvの識別情報またはバージョン番号情報であってもよい。
【００３５】
秘匿領域１０１は、セキュアフラッシュメモリ１００の外部からのデータ書き込み及びデータ読み出し両方が禁止される領域（Read/Write inhibit）である。秘匿領域１０１には、認証処理においてセキュアフラッシュメモリ１００が用いる秘密情報NKeyi 及びセキュアフラッシュメモリ１００の秘密識別情報SecretIDが記録される。
【００３６】
ロム領域１０２は、セキュアフラッシュメモリ１００外部からのデータ書き込みが禁止され、一方データ読み出しが許可される領域である。ロム領域１０２には、鍵管理情報FKBvによって秘匿されている秘匿情報FKeyvを示すためのインデックス情報v（index ofFKey）、秘匿情報FKeyvによって暗号化された秘密識別情報SecretID（E-SecretID）、秘密情報NKeyiを示すためのインデックス情報i（index of NKey）が記録される。
【００３７】
本実施形態では、インデックス情報iやインデックス情報vを記録する際にデータに誤りが生じてしまった場合でも、正しい識別情報が読み出せるようにするために、一般的には誤り訂正符号を付加した状態で記録される。しかしながら、説明を簡略化するため、ここでは誤り訂正符号化及び復号化処理については特に図示しないものとする。
【００３８】
なお、ロム領域１０２は、例えば１回の書き込みのみ許容されるＯＴＰ（One Time Program）領域であってもよいし、セキュアフラッシュメモリ１００の製造工程においては読み出し及び書き込みが可能な一般領域であって、出荷後の管理フラグの書き換えによって読み出し専用となる領域であってもよい。または、当該領域に対する書き込みコマンドを一般領域とは異なる特殊コマンドとし、セキュアフラッシュメモリ１００の受領者にはこの特殊コマンドを提供しない等の方法を利用してもよい。他には、セキュアフラッシュメモリ１００上では一般領域の扱いであるが、コントローラ２００がホストアプリケーション８００に提供する機能を読み出しのみに限定する、などの構成をとってもよい。
【００３９】
なお、ロム領域１０２に記録される情報は後述の通り、秘匿領域１０１に記録される情報と関連付けられているため、ロム領域１０２に記録される情報を改ざんした場合、セキュアフラッシュメモリ１００の認証機能を有効に働かせることができなくなる。従って改ざんされることによるセキュリティ上の懸念はないため、必ずしもロム領域である必要はなく、読み出し及び書き込みが可能な一般領域で代用してもよい。この場合、図面中のロム領域１０２を読み書き可能領域（一般領域）１０３と読み替えればよい。関連して、ロム領域１０２中に記載されているデータの一部を読み書き可能領域（一般領域）１０３に記録してもよい。例えば、インデックス情報v（index of FKey）を読み書き可能領域（一般領域）に記録し、暗号化された秘密識別情報（E-SecretID）とインデックス情報v（index of FKey）をロム領域１０２に記録するという構成も可能である。上記ロム領域１０２の構成例については、本明細書にて他の実施形態や変形例として後述されるロム領域１０２にも適用可能である。
【００４０】
暗号化された秘密識別情報E-SecretIDとは、セキュアフラッシュメモリ１００のチップ毎に固有に（ユニークに）付される秘密識別情報SecretIDを秘匿情報FKeyvによって暗号化したデータである。或いは、セキュアフラッシュメモリに予めコンテンツを記録して販売するようなプリレコーディング（事前記録）コンテンツ配布用途において同じコンテンツデータを記録する際には、敢えて同じ暗号化秘密識別情報E-SecretIDを記録する等、用途に合わせて同じ暗号化秘密識別情報を複数のセキュアフラッシュメモリに記録することもできる。
【００４１】
データキャッシュ１２は、メモリ（セルアレイ）１１から読み出したデータを一時的に記憶する。
【００４２】
データ生成部１３、１４は、複数の入力データから予め定められた演算によって出力データを生成する回路である。
【００４３】
データ生成部１３は、ホストアプリケーション８００から受信した定数HCjを前述の秘密情報NKeyi を用いて変換することで、秘密情報HKeyi,jを生成する。データ生成部１４は、ホストアプリケーション８００から受信した乱数RNhを秘密情報HKeyi,jを用いて変換することで、セッション鍵SKeyi,jを生成する。データ生成部１３、１４は、ハードウェア（回路）若しくはソフトウェア、またはハードウェアとソフトウェア両方の組み合わせでも実装され得る。
【００４４】
データ生成部１３、１４は、回路として実装される場合は、全体の回路規模を小さくするために、後述の一方向性変換器１５と同じ、或いは一方向性変換器を流用した回路や、AES（Advanced Encryption Standard）暗号化器等を用いることも可能である。同様に、データ処理手順を分かり易くするために異なる構成要素として図示されている二つのデータ生成部は、同じ回路を繰り返し利用することが可能である。この例の場合、HKeyi,j=AES_E(NKeyi, HCj)、SKeyi,j= AES_E(HKeyi,j, RNh)などの構成をとることが可能である。
【００４５】
一方向性変換器１５は、入力されたデータと別途入力された鍵データに一方向性の変換を施し、一方向性変換された入力データを出力する。一方向性変換器１５はハードウェア（回路）若しくはソフトウェア、またはハードウェアとソフトウェア両方の組み合わせでも実装され得る。
【００４６】
一方向性変換器１５は、秘匿領域１０１から読み出した秘密識別情報SecretIDを、データ生成回路１４によって生成されたセッション鍵SKeyi,jを用いて一方向性関数により変換し、一方向性変換識別情報Oneway-ID (= Oneway(SKeyi,j, SecretID))を生成する。また、一方向性変換器１５は、回路として実装される場合は、前述の通り、全体の回路規模を小さくするために、データ生成部１４等を流用して使用することも可能である。この例の場合、Oneway-ID=AES_E(SKeyi、j,SecretID) (+) SecretIDなどの構成をとることが可能である。
【００４７】
１−２．ホストアプリケーション  
本実施形態において、ホストアプリケーション８００は、被認証部の正当性を判定する認証部である。
【００４８】
図示するように、本実施形態に係るホストアプリケーション８００は、復号部（Decrypt）２１、FKB処理部（Process FKB）２２、メモリ部（ＲＡＭ５００及びＲＯＭ４００）２３、乱数生成部（RNG: RandomNumber Generator）２４、選択部（Select 2）２５、データ生成部（Generate）２６、一方向性変換部（Oneway）２７、及びデータ検証部（Verify）２８等の機能ブロックを備える。この他、例えば、図示しない誤り訂正処理部等も必要に応じて構成要素として備えることが可能である。
【００４９】
復号部２１は、入力されたデータを別途入力された鍵データで複合し、復号された入力データを出力する。本実施形態では、復号部２１は、コントローラ２００を介して、暗号化秘密識別情報E-SecretIDをセキュアフラッシュメモリ１００から読み出す。そして、暗号化秘密識別情報E-SecretIDを、後述のFKB処理部２２（データ選択部２２−２）から入力された秘匿情報FKeyを用いて復号し、秘密識別情報SecretIDを出力する。
【００５０】
FKB処理部２２は、セキュアフラッシュメモリ１００から読み出される鍵管理情報FKBvを、メモリ部２３に秘匿されている秘密情報IDKeyk及び秘密情報IDKeykのインデックス情報kを用いて復号し、生成した秘匿情報FKeyを復号部２１に出力する。本実施形態では、FKB処理部２２は、データ選択部（Select 1）２１−１及び復号部（Decrypt）２２−２を備えている。
【００５１】
第１段目のデータ選択部２１−１は、セキュアフラッシュメモリ１００から読み出した暗号化FKey束（鍵管理情報FKBv）の中から、メモリ部２３に記録されているインデックス情報kを用いて、メモリ部２３に秘匿されている秘密情報IDKeykによって復号可能なデータを選択して、復号部２２−２に出力する。
【００５２】
復号部２２−２は、メモリ部２３に秘匿されている秘密情報IDKeykを用いて、データ選択部２２−１において選択されたデータを復号し、生成された秘匿情報FKeyを復号部２１に出力する。
【００５３】
なおここでは、FKB処理部２２を備え、FKB処理部２２内で生成した秘匿情報FKeyを復号部２１に出力する例を示したが、メモリ部２３が予め秘匿情報FKeyを記憶しており、この秘匿情報FKeyを復号部２１に出力するようにしてもよい。
【００５４】
メモリ部２３は、インデックス情報k、秘密情報IDKeyk、秘密情報セットHKeyi,j (i=1,…,m。なお、jは当該HKeyi,jにおいては固定の値である)、及び定数HCjを記録し、少なくとも秘密情報IDKeyk及び秘密情報セットHKeyi,j (i=1,…,m)をホストアプリケーション８００の外部に対して秘匿する。ここで、定数HCjとは、認証要求（Request authentication）時にセキュアフラッシュメモリ１００に送出するために予め保持しているホストアプリケーション８００の定数である。詳細については後述する。
【００５５】
乱数生成部２４は、認証処理に用いる乱数RNhを生成し、出力する。
【００５６】
第２段目のデータ選択部２５は、セキュアフラッシュメモリ１００のロム領域１０２からデータキャッシュ１２を介して読み出したインデックス情報iを用いて、当該ホストアプリケーション８００が秘匿している秘密情報セットHKeyi,jの中から、認証処理に必要な秘密情報HKeyi,jを選択する。
【００５７】
データ生成部２６は、複数の入力データから予め定められた演算によって出力データを生成する演算部である。本実施形態では、データ生成部２６は、ホストアプリケーション８００自身が生成した乱数RNhを、ホストアプリケーション８００が秘匿している秘密情報HKeyi,jを用いて変換することで、セッション鍵SKeyi,jを生成する。データ生成部２６として、例えば上述したAES暗号化器等を用いることも可能である。
【００５８】
一方向性変換部２７は、復号部２１から出力される秘密識別情報SecretIDを、データ生成部２６から出力されるセッション鍵SKeyi,jを用いて一方向性関数により変換し、一方向性変換識別情報Oneway-IDを生成する。
【００５９】
データ検証部２８は、セキュアフラッシュメモリ１００から受信した一方向性変換識別情報Oneway-IDと、ホストアプリケーション８００内の一方向性変換部２７から得られた一方向性変換識別情報Oneway-IDとが一致するか否かを比較する。上記一方向性変換識別情報Oneway-IDの両方の値が一致した場合（OK）には、復号部２１で得られた秘密識別情報SecretIDが正規のIDであると判定して、得られた秘密識別情報SecretIDを以降の処理に引き渡す。一方、不一致の場合（NG）には、秘密識別情報SecretIDが不正なIDであると判定して、その旨を出力する。
【００６０】
他に、ホストアプリケーション８００が有する秘密情報、例えばIDKeyk,HKeyi,jが流出し、流出情報を有する不正ホスト装置が不正製造者によって製造された場合などにおいて、当該不正ホスト装置を無効化する手段として、鍵管理情報（FKBv）から不正ホスト装置が有するIDKeykにてFKeyを導出可能な情報を除くなどの対応をとることも可能である。この対応をするに当たっては、秘密情報IDKeyk及びインデックス情報k、秘密情報HKeyi,j及びホスト定数HCjの間に関連を持たせることが有用である。関連があれば、不正ホスト装置が認証において通知するHCjを観測することによって当該不正ホスト装置が有する秘密情報IDKeyk及びHKeyi,jの両方が特定可能となる。関連付けの方法としては、HCjの全部もしくは一部の情報をIDKeykと共有することや、HCjの全部もしくは一部の情報をIDKeykを暗号処理した結果により構成することや、IDKeykの全部もしくは一部の情報をHCjを暗号処理した結果により構成することなどの方法がとれる。更に、鍵管理情報（FKBv）の生成に当たり、FKeyおよびIDKeykに加えて、HKeyi,jを用いるのが望ましい。
【００６１】
ここで、上記秘密情報IDKeyk、秘密情報HKeyi,jは、例えば、ホストデバイス内部の専用メモリにメーカ独自の方法で暗号化した上で記録されていたり、PC等で実行されるプログラムであればタンパーレジスタントソフトウェア（TRS）技術によって不正な解析から保護できる状態で保持していたり、或いはセキュリティモジュールを内蔵している場合には当該セキュリティモジュールの機能を利用して秘匿する等の対策を採った状態で記録される。
【００６２】
なお、コントローラ（Controller）２００は、セキュアフラッシュメモリ１００を制御して、ホストアプリケーション８００を実行するＣＰＵとの間のデータ転送等を行う。例えばコントローラ２００は、ホストアプリケーション８００を実行するＣＰＵ３００から受信した命令を解釈し、セキュアフラッシュメモリ１００のインターフェース仕様に適合した命令に変換した上で、当該命令をセキュアフラッシュメモリ１００に送出する。コントローラ２００は、例えばSD Memory規格、SDIO規格、eMMC規格等、必要に応じて様々なインターフェース規格を採用することができる。
【００６３】
また、コントローラ２００は、一般領域１０３の一部を確保し、自身の動作に必要な制御データを保存する。また、コントローラ２００は、ホストアプリケーション８００を実行するＣＰＵ３００から受信した論理アドレスをセキュアフラッシュメモリ１００の物理アドレスに変換する機能を有していてもよい。また、前記メモリ１００の疲弊を平準化するため、所謂ウェアレベリングを実行する機能を有していてもよい。ただし、少なくとも秘匿領域１０１についてはウェアレベリングの対象外とされる。
【００６４】
また、ホストデバイスの構成例は、上記説明したものに限られない。例えば、図示しない誤り訂正処理部等のその他の構成要素も必要に応じて備えることが可能である。更に、セキュアフラッシュメモリ１００が有する秘密情報NKeyiが複数存在してもよい。すなわち、秘密情報NKeyiとこれに対応するインデックス情報iの組み合わせを１つのスロットとし、複数スロットがセキュアフラッシュメモリ１００に記録されている。ここで、上記スロットには各々スロット番号が付与されており、ホストアプリケーション８００を実行するＣＰＵは各スロット番号のインデックス情報ｉを読み出し、いずれか一つを選択して認証を行う。
【００６５】
この場合、ホストアプリケーション８００を実行するＣＰＵ３００は、セキュアフラッシュメモリ１００に対して選択したスロット番号に相当する情報を通知し、セキュアフラッシュメモリ１００は通知されたスロット番号に相当する情報を用いて認証処理を行う。更には、セキュアフラッシュメモリ１００が有する全ての情報を１つのスロットとし、当該情報スロットを複数有してもよい。すなわち、秘密情報NKeyi、インデックス情報i、鍵管理情報（FKBv）、インデックス情報v（index of FKey）、秘密識別情報SecretID、暗号化された秘密識別情報（E-SecretID）を１つのスロットとし、複数スロットがセキュアフラッシュメモリ１００に記録されている。
【００６６】
ここで、上記スロットには各々スロット番号が付与されており、ＣＰＵは各スロット番号のインデックス情報ｉを読み出し、いずれか一つを選択して認証を行う。この場合、ＣＰＵ３００は、セキュアフラッシュメモリ１００に対して選択したスロット番号に相当する情報を通知し、セキュアフラッシュメモリ１００は通知されたスロット番号に相当する情報を用いて認証処理を行う。
【００６７】
上記において、セキュアフラッシュメモリ１００が複数のスロットを有する方法を示したが、これらに限らず、一部の情報を複数のスロットで共有するいかなる構成をとることも可能である。例えば、秘密識別情報SecretID、暗号化された秘密識別情報（E-SecretID）、鍵管理情報（FKBv）、インデックス情報v（index of FKey）は複数のスロットで共有し、他の情報はスロット毎に個別に有するなども可能である。
【００６８】
また、セキュアフラッシュメモリ１００が複数のスロットとスロット番号を有し、いずれのスロットを認証に用いるかを、ホストアプリケーション８００を実行するＣＰＵ３００が通知する方法は本明細書にて後述する他の実施形態の全てに適用可能である。
【００６９】
＜２．認証フロー＞  
次に、図４に沿って、第１実施形態のホストデバイスにおけるセキュアフラッシュメモリの認証フローについて説明する。ホストアプリケーション８００は、ＣＰＵ３００によって実行される。
【００７０】
（Step Ｓ１１）  
認証を開始（Start）すると、ホストアプリケーション８００を実行するＣＰＵ３００は、セキュアフラッシュメモリ１００から鍵管理情報である暗号化FKey束（FKB: Family Key Block）及び暗号化秘密識別情報SecretID（E-SecretID）を読み出す。
【００７１】
（Step Ｓ１２）  
続いて、ＣＰＵ３００は、読み出した鍵管理情報FKBからデータ選択部（Select1）２２−１によりデータ選択処理を行い、ＣＰＵ３００が復号可能な暗号化された秘匿情報FKeyを読み出すと共に、秘匿している秘密情報IDKeykを用いて上記復号部２２−２により復号することにより、秘匿情報FKeyを得る。更に、ＣＰＵ３００は、得られた秘匿情報FKeyを用いて、セキュアフラッシュメモリ１００から読み出した暗号化秘密識別情報E-SecretIDを復号することにより、秘密識別情報SecretIDを得る。
【００７２】
なお、Step Ｓ１１で鍵管理情報FKBを読み出し、Step Ｓ１２で秘匿情報FKeyを算出したが、事前に秘匿情報FKeyを計算してホストアプリケーション８００に持たせて、鍵管理情報FKBから秘匿情報FKeyを計算する処理を省略することも可能である。
【００７３】
（Step Ｓ１３）  
続いて、ＣＰＵ３００は、セキュアフラッシュメモリ１００に対してインデックス情報iの読み出し要求を行う。
【００７４】
（Step Ｓ１４）  
続いて、セキュアフラッシュメモリ１００は、ＣＰＵ３００の要求を受けて、インデックス情報iをセキュアフラッシュメモリ１００からロードし、ＣＰＵ３００に出力する。
【００７５】
（Step Ｓ１５）  
続いて、ＣＰＵ３００は、認証要求時に必要となる乱数RNhを生成する。認証処理に乱数RNhを用いることにより、以下の処理でセキュアフラッシュメモリ１００との間で毎回異なる共有鍵を利用することができる。
【００７６】
（Step Ｓ１６）  
続いて、ＣＰＵ３００は、認証要求（Request authentication）と共に、予め保持している定数HCj及び乱数RNhをセキュアフラッシュメモリ１００に送出する。
【００７７】
（Step Ｓ１７）  
続いて、セキュアフラッシュメモリ１００は、秘密情報NKeyi (i=1,…,m)及び秘密識別情報SecretIDを秘匿領域１０１からロードし、データキャッシュ１２に保存する。
【００７８】
（Step Ｓ１８）  
続いて、セキュアフラッシュメモリ１００は、秘匿している秘密情報NKeyiとＣＰＵ３００から受信した定数HCjとを用いて、データ生成回路１３におけるデータ生成処理により秘密情報HKeyi,jを生成する。
【００７９】
（Step Ｓ１９）  
続いて、セキュアフラッシュメモリ１００は、受信した乱数RNhを用いて、データ生成回路１４におけるデータ生成処理により、セッション鍵SKeyi,j (= Generate(HKeyi,j, RNh))を生成する。
【００８０】
（Step Ｓ２０）  
続いて、セキュアフラッシュメモリ１００は、生成したセッション鍵SKeyi,jを用いて、秘密識別情報SecretIDに一方向性変換器１５における一方向性変換処理を行い、一方向性変換識別情報Oneway-ID (=Oneway(SKeyi,j, SecretID))を生成する。生成された一方向性変換識別情報Oneway-IDは、ＣＰＵ３００に送出される。
【００８１】
（StepＳ２１）  
上記StepＳ１８と並行して、ＣＰＵ３００は、受信したインデックス情報iを用いて、予め秘匿していた秘密情報セットHKeyi,j (i=1,…,m)から当該セキュアフラッシュメモリ１００との認証処理に必要な秘密情報HKeyi,jを選択する。
【００８２】
（Step Ｓ２２）  
続いて、ＣＰＵ３００は、選択した秘密情報HKeyi,jと生成した乱数RNhとを用いて、データ生成部２６におけるデータ生成処理により、セッション鍵SKeyi,j (= Generate(HKeyi,j, RNh))を生成する。
【００８３】
（Step Ｓ２３）  
続いて、ＣＰＵ３００は、生成したセッション鍵SKeyi,jを用いて、秘密識別情報SecretIDに一方向性変換部２７における一方向性変換処理を行い、一方向性変換データOneway-IDを生成する。
【００８４】
（Step Ｓ２４）  
続いて、ＣＰＵ３００は、セキュアフラッシュメモリ１００より受信した一方向性変換識別情報Oneway-IDと、自身が生成した一方向性変換識別情報Oneway-IDとが一致するか否かを判定する。
【００８５】
上記一方向性変換識別情報Oneway-IDの両方の値が一致した場合（OK）には、復号部２１で得られた秘密識別情報SecretIDが正規のIDであると判定して、以降の処理に秘密識別情報SecretIDを引き渡す。一方、不一致の場合（NG）には、秘密識別情報SecretIDが不正なIDであると判定し、その旨を以降の処理に出力する。
【００８６】
以上の動作により、第１実施形態に係る認証フローを終了する（End）。
【００８７】
なお、ここで、ホストデバイスの構成例において示した通り、セキュアフラッシュメモリ１００が複数のスロットを有する場合、ＣＰＵ３００は認証に用いるスロット番号をセキュアフラッシュメモリ１００に通知する必要がある。この場合、上記Step Ｓ１６にてスロット番号を付随して通知してもよいし、もしくはStep Ｓ１６より以前のStepにおいて通知してもよい。
【００８８】
図５を参照して、第１実施形態におけるホストアプリケーション８００及びセキュアフラッシュメモリ１００の構成例を説明する。ホストアプリケーション８００及び前記メモリ１００は、各利用形態に対応した認証に要する情報を「スロット」と呼ばれる集合内に有する。
【００８９】
各スロットは、各利用形態に必要とされる認証に要する情報及び機能の集合体として定義される。一例として、図５に示すシステムでは、スロットＸはある利用形態に必要とされる情報及び機能の集合体であり、スロットＹは他の利用形態のそれであり、スロットＺはさらに他の利用形態のそれである。図５では、説明のため、各スロットにおいてホストアプリケーション８００が必要とする認証機能を包含した機能集合体をホスト認証部２００１として記述している。また、図５では、説明のため、各スロットにおいてセキュアフラッシュメモリ１００が必要とする認証機能を包含した機能集合体をメモリ認証回路１０７´として記述している。
【００９０】
ここで、ホストアプリケーション８００及びメモリ１００の間の認証において、ホストアプリケーション８００を実行するＣＰＵはスロットに割り当てられたスロット番号を指定する。すなわち、スロット番号は各認証機能及び認証に用いるデータの選択を意味しており、広義には必要とされる認証レベルによって機能選択をすることを意味する。セキュアフラッシュメモリ１００は指定されたスロット番号に応じて、使用する認証に要するデータをスロット選択部３０１により選択し、また認証に要する機能に相当した処理を行う。ＣＰＵも、自身がスロット選択部３０１により指定したスロット番号に応じて、使用する認証に要するデータを選択し、また認証に要する機能に相当した処理を行う。
【００９１】
このスロットという概念の導入により、必要とされる認証レベルが異なるアプリケーションにおいても、各々のアプリケーションに適した利用形態を選択することができ、また、それらを共通のスロット番号としてホストアプリケーション８００及びメモリ１００間で通信を行うことにより、互換性問題や認証不整合を生じることなく、さまざまな組み合わせのホストアプリケーション８００及びメモリ１００を運用することが容易になる。
【００９２】
すなわち、図５では、ホストアプリケーション８００はスロットＸ，Ｙ，Ｚに対応し、セキュアフラッシュメモリ１００はスロットＸ，Ｙ，Ｚ及びその他のスロットに対応している例を示したが、これに限らず、ホストアプリケーション８００がスロットＸのみ、スロットＸ，Ｙの２つ、またはスロットＸ，Ｙ，Ｚ及びその他のスロットに対応している場合、同様にメモリ１００がスロットＸのみ、スロットＹのみ、スロットＺのみ、スロットＸ，Ｙの２つ、またはスロットＸ，Ｙ，Ｚのスロットに対応している場合にも拡張可能である。更には、ホストアプリケーション８００が複数種類存在する場合、例えばホストアプリケーション８００ＡはスロットＸのみ、ホストアプリケーション８００ＢはスロットＸ，Ｙに対応している場合、同様にセキュアフラッシュメモリ１００がスロットＸのみ、スロットＹのみに対応している場合など、この例に縛られず、さまざまな形で運用を拡張することも可能である。
【００９３】
次に、図６を参照してスロットの利用方法について示す。前述した通り、複数のスロットを備えることにより、１つのシステムにおいて、認証レベルが異なる複数のアプリケーションに対応することができる。図６では複数のアプリケーションに対応させた例を示している。スロットＯ〜Ｔは各々アプリケーションＡ〜Ｇと対応関係を有している。例えば、アプリケーションＡにおける認証処理ではスロットＯが利用される。また、アプリケーションＣにおける認証処理ではスロットＰが利用される。ここで、スロットＯはアプリケーションＡに加えてアプリケーションＢとも対応関係を有している。
【００９４】
一般に、アプリケーションは様々な基準に従って分類され、利用される。図６ではコンテンツ種別などによって分類され、スロットを割り当てられる場合を示している。一例として図６では、コンテンツデータの内容（本、音楽、ゲームなど）に従ってアプリケーションを分類し、異なるスロットを割り当てている。
【００９５】
一方、異なるアプリケーションであっても、何等かの理由により同一のスロットを割り当てることも可能である。例えば図６において、アプリケーションＡはＳＤ(Standard Definition)の非プレミアム映画データであり、アプリケーションＢはＨＤ(High Definition)のプレミアム映画データである場合、同一のスロットＯを割り当てることが可能である。アプリケーションＡ，Ｂはいずれも映画のコンテンツデータに関するものであるという共通点があるので、同一のスロットを割り当てて、同一の認証機能を共用することができる。
【００９６】
ただし、必要とされる認証機能が異なる場合がある。例えばＳＤ映画コンテンツとＨＤ映画コンテンツでは、ＨＤ映画コンテンツの方が必要とされるセキュリティーレベルが高く、必要とされる機能も多い場合がある。このような場合には、ＨＤ映画コンテンツとＳＤ映画コンテンツとに異なるスロットを割り当てることは可能である。同様に、アプリケーションＣ乃至Ｅでは、各々電子書籍、音楽、ゲームなどを割り当てることができる。
【００９７】
その他、データ保護の態様や用途に基づいて、アプリケーションの割り当て方を決定してもよい。例えば、企業内の秘匿情報の保護を目的としたアプリケーションと、個人情報の保護などを目的としたアプリケーションとがある場合に、両者に別々のスロットを割り当てることができる。
【００９８】
また、同一カテゴリーに属する複数のアプリケーションを、データの利用態様に従って分類し、それぞれ異なるスロットを割り当てることも可能である。例えば、医療関係のデータ保護に関する複数のアプリケーションがある場合、これらを利用場所（サイト）の違い（例えば各病院、各医療現場など）で分類し、異なるスロットを割り当てることができる。管理が必要となるものなどはProprietary applicationとして分類し、各々異なるスロットを割り当てることができる。
【００９９】
また、複数のアプリケーションが同一のスロットを共有するが、認証に要するデータや機能が異なるような運用をしてもよい。スロットは認証に要するデータ及び機能を含むと説明したが、これはすなわち、市場において様々なホストアプリケーション８００、さまざまなセキュアフラッシュメモリ１００が存在した場合でも混乱なく運用できることを意味しており、逆に、各病院や各医療現場などごく限られた範囲内で運用をするなど、さまざまなホストアプリケーション８００、さまざまなセキュアフラッシュメモリ１００をそもそも想定する必要がない場合も考えられる。この場合は、医療関係という分類でスロットを割り当て、ただし同一スロット番号であっても、認証に要するデータ及び機能に複数のバリエーションがあってもよい。これらは各サイトでの運用基準に照らし合わせて対応を定めればよい。
【０１００】
次に、図７を参照して、スロットの大分類方法と、ホストアプリケーション８００及びメモリ１００への鍵割り当て方法の例を説明する。図６の場合と同様に、スロットは各アプリケーションと対応付けて割り当てられている。
【０１０１】
ここで、割り当ては各々のホストアプリケーション８００及びセキュアフラッシュメモリ１００の製造者及び製造者間での独自の取り決めによって行うことも可能である。一方で、製造者やサービス事業者などのステークホルダーで構成される団体（例えば標準化団体）によって取り決めを行うこともできる。しかし、全てのスロットを標準化団体によって用途を定めてしまうと、ある製造者のみが利用したいアプリケーションなどにおいては、取り決めの自由度が損なわれてしまう。図７では、ある範囲のスロットの番号（図７では、スロット番号０乃至スロット番号Ｍ）を標準化団体によって定められたアプリケーションの標準用途領域とし、ある範囲のスロットの番号（図７では、スロット番号Ｍ＋１乃至スロット番号Ｍ＋Ｎ）を各ステークホルダーによって任意に定められる非標準用途領域としている。これにより、共通アプリケーションにおける広範囲での互換性確保と、個別アプリケーションにおける自由度確保を両立させることができる。各々のスロットに対しては、前述の認証に要するデータ及び機能が付されている。ここで、認証に要するデータのうち、標準化団体や各製造者などによって付与・適用されるものをキーセット（Key Set）と呼ぶ。ホストアプリケーション８００に付与・適用されるキーセットはホストキーセット（Host Key Set）と呼び、メモリ１００に付与・適用されるキーセットはメモリキーセット（Memory Key Set）と呼ぶ。各スロットには異なる、もしくは一部スロット間では共用されるキーセットが付与・適用される。
【０１０２】
次に、図８を参照して各キーセットの整合をとり、互換性を確保した上で配布する方法を示す。本例では、各キーセットは鍵発行／管理センタ３０００によって各々の製造者に配布され、各装置へと適用される。ホストデバイスは、複数の製造者（Ａ，Ｂ）によって製造され、各々必要とする認証機能範囲は異なっていてもよい。
【０１０３】
ホストデバイスにおいては、メモリデバイス（セキュアフラッシュメモリ）側で最低保証スロットを定義していること、またホストデバイスは通常、各々の用途別に製造されるという属性があることから、いずれのスロット番号をサポートするかは各製造者に委ねられる。ここで、最低保証スロットもしくは標準用途領域のスロット番号範囲に対応するホストデバイスを製造する場合、ホストデバイスは全てのメモリデバイスを認証するに足るホストキーセットが付与・適用される（図８では、製造者Ａが製造するホストデバイス）。
【０１０４】
一方で、それ以外の範囲においては、ホストデバイス製造者とメモリ製造業者間の取り決めによって、限られた範囲での互換性確保で十分なアプリケーションの場合、ホストデバイスは全てのメモリデバイスを認証するに足るホストキーセットではなく、特定のメモリデバイスを認証するに足るホストキーセットが付与・適用される（図８では、製造者Ｂが製造するホストデバイス）。具体的には、前述の実施形態における秘密情報HKeyi,j(i=1,…,m。なお、jは当該HKeyi,jにおいては固定の値である)のうち、iが各メモリデバイスが有するNKeyiに対応している。すなわち、ホストアプリケーションがHKeyi,j(i=1)のみを有する場合、当該ホストアプリケーションはNKeyi(i=1)を有するメモリデバイスを認証する機能のみを有するということになる。またあるいは、ホストアプリケーションがHKeyi,j(i=3)のみを有する場合、当該ホストアプリケーションはNKeyi(i=3)を有するメモリデバイスを認証する機能のみを有するということになる。つまり、ホストアプリケーションが特定のメモリデバイスと認証する場合、対象のメモリデバイスのiに対応する秘密情報HKeyi,jが付与・適用される。
【０１０５】
次に、図９及び図１０を用いて、第１実施形態のホストデバイス１０の構成及び動作について説明する。第１実施形態では、ホストデバイス１０内でホストアプリケーション８００によりセキュアフラッシュメモリ１００の認証処理を行う例を述べる。
【０１０６】
図９は、前記ホストデバイス１０の構成を示すブロック図である。
【０１０７】
図示するように、ホストデバイス１０は、セキュアフラッシュメモリ１００及びホストアプリケーション８００−１，８００−２を備える。セキュアフラッシュメモリ１００１は、予め記憶された識別情報IDを記憶している。前記識別情報IDは秘密情報NKeyと秘密識別情報SecretIDを含む。
【０１０８】
図１０は、前記ホストデバイス１０における、認証処理を含むホストアプリケーション８００−１の処理を示すフローチャートである。ここで実行される認証処理は図３及び図４に示した処理と同様である。
【０１０９】
まず、ホストアプリケーション８００−１を実行するＣＰＵ３００は、セキュアフラッシュメモリ１００から識別情報IDを読み出す（ステップＳ１１１）。続いて、ＣＰＵ３００は、識別情報IDが正当なものか否かを判定する（ステップＳ１１２）。識別情報IDが正当なものである場合、ＣＰＵ３００はホストアプリケーション８００−１の処理を続行する（ステップＳ１１３）。一方、識別情報IDが正当なものでない場合、ＣＰＵ３００はホストアプリケーション８００−１の処理を停止する（ステップＳ１１４）。その後、ホストアプリケーション８００−１の処理を終了する。ホストアプリケーション８００−２の処理についてもホストアプリケーション８００−１と同様である。
【０１１０】
前記第１実施形態によれば、正当な識別情報IDを有するセキュアフラッシュメモリ１００を搭載していないホストデバイスの場合、ホストアプリケーションを動作させることができないため、セキュアフラッシュメモリ１００に記憶された秘密情報の不正利用を防止することができる。例えば、セキュアフラッシュメモリ１００から別のＮＡＮＤフラッシュメモリ等に交換した場合は、ホストデバイス（ホストアプリケーション）を動作させることができない。すなわち、正当な識別情報IDを有するセキュアフラッシュメモリ１００を搭載しないホストデバイスでは動作しない環境を提供することが可能である。
【０１１１】
［第２実施形態］  
第２実施形態のホストデバイスの構成及び動作について説明する。第２実施形態ではホストデバイスの外部のサーバでセキュアフラッシュメモリ１００の認証処理を行ってデータの書き込みを行い、ホストデバイス内で認証処理を行ってデータを読み出す例を述べる。
【０１１２】
図１１は、前記ホストデバイスの構成を示すブロック図である。
【０１１３】
図示するように、ホストデバイス１１０は、セキュアフラッシュメモリ１００、ホストアプリケーション８１０−１、ホストアプリケーション８１０−２、中継アプリケーション６１０−１、及び中継アプリケーション６１０−２を備える。ホストデバイス１１０には、サーバ７００−１，７００−２が接続されている。中継アプリケーション６１０−１は、サーバ７００−１とセキュアフラッシュメモリ１００との間の信号の授受を中継する。さらに、中継アプリケーション６１０−２は、サーバ７００−２とセキュアフラッシュメモリ１００との間の信号の授受を中継する。
【０１１４】
前記第２実施形態のホストデバイス１１０の動作は以下のようになる。
【０１１５】
まず、サーバ７００−１が前記セキュアフラッシュメモリ１００の認証処理を行い、前記メモリ１００にデータを記憶させる動作を述べる。
【０１１６】
サーバ７００−１は、ホストデバイス１１０内にあるセキュアフラッシュメモリ１００との間で、セキュアフラッシュメモリ１００の認証処理を行う。その際、認証処理は、ホストデバイス１１０内の中継アプリケーション６１０−１を介して行われる。認証処理に成功すると、サーバ７００−１は、セキュアフラッシュメモリ１００へダウンロードさせるデータをバインド処理する。バインド処理されたデータは、暗号データとしてホストデバイス１１０にそのままダウンロードされ、セキュアフラッシュメモリ１００に記憶される。データの前記バインド処理については後述する。
【０１１７】
以下に、図１２を用いて、前述したサーバ７００−１による認証処理とバインド処理について詳述する。図１２は、前記サーバ７００−１による認証処理とバインド処理を示すフローチャートである。ここで実行される認証処理は、図３及び図４においてＣＰＵをサーバに置き換えれば、図３及び図４に示した処理と同様である。
【０１１８】
サーバ７００−１は、セキュアフラッシュメモリ１００から識別情報IDを読み出す（ステップＳ２１１）。続いて、サーバ７００−１は、識別情報IDが正当なものか否かを判定する（ステップＳ２１２）。識別情報IDが正当なものである場合、サーバ７００−１はデータをバインドする処理を実行する（ステップＳ２１３）。そして、バインド処理された暗号データは、中継アプリケーション６１０−１を介してセキュアフラッシュメモリ１００に書き込まれる（ステップＳ２１４）。
【０１１９】
一方、識別情報IDが正当なものでない場合、サーバ７００−１は認証処理を終了する（ステップＳ２１５）。サーバ７００−２の動作についてもサーバ７００−１と同様である。
【０１２０】
図１３を用いて、前記サーバ７００−１が実行する、データの前記バインド処理について述べる。図１３は、前記バインド処理の具体例を示す図である。
【０１２１】
サーバ７００−１は、認証処理（Ｓ３１）を終了した後、取得した識別情報IDに対して派生処理（Ｓ３２）を行い、バインド鍵を生成する。そして、バインド鍵を用いてデータを暗号化（Ｓ３３）して暗号データを生成する。前記派生処理（Ｓ３２）では、固定鍵を用いて識別情報IDを一方向性関数により変換し、バインド鍵を生成する。
【０１２２】
次に、ホストアプリケーション８１０−１を実行するＣＰＵ３００が前記セキュアフラッシュメモリ１００の認証処理を行い、前記メモリ１００からデータを読み出す動作を述べる。
【０１２３】
ホストアプリケーション８１０−１を実行するＣＰＵ３００は、ホストデバイス１１０内にあるセキュアフラッシュメモリ１００との間で、セキュアフラッシュメモリ１００の認証処理を行う。認証処理に成功すると、ＣＰＵ３００は、セキュアフラッシュメモリ１００から暗号データを読み出し、暗号データに対してバインドを解く処理を行う。暗号データは、バインドを解く処理により復号され、利用される。前記暗号データのバインドを解く処理については後述する。
【０１２４】
以下に、図１４を用いて、前述したＣＰＵ３００による認証処理とバインドを解く処理について詳述する。図１４は、前記ＣＰＵ３００による認証処理とバインドを解く処理を示すフローチャートである。ここで実行される認証処理は、図３及び図４においてホストアプリケーション８００をホストアプリケーション８１０に置き換えれば、図３及び図４に示した処理と同様である。
【０１２５】
ホストアプリケーション８１０−１を実行するＣＰＵ３００は、セキュアフラッシュメモリ１００から識別情報IDを読み出す（ステップＳ３１１）。続いて、ＣＰＵ３００は、識別情報IDが正当なものか否かを判定する（ステップＳ３１２）。識別情報IDが正当なものである場合、ＣＰＵ３００はセキュアフラッシュメモリ１００から暗号データを読み出し、暗号データのバインドを解く処理を実行する（ステップＳ３１３）。そして、バインドを解く処理により復号化されたデータは、ＣＰＵ３００により利用される（ステップＳ３１４）。
【０１２６】
一方、識別情報IDが正当なものでない場合、ＣＰＵ３００は認証処理を終了する（ステップＳ３１５）。なお、サーバ７００−２にて読み出す場合は、中継アプリケーション６１０−２を介して行い、その他の動作についてはＣＰＵ３００の場合と同様である。
【０１２７】
図１５を用いて、前記ＣＰＵ３００が行う前記バインドを解く処理について述べる。図１５は、前記バインドを解く処理の具体例を示す図である。
【０１２８】
ＣＰＵ３００は、認証処理（Ｓ３１）を終了した後、取得した識別情報IDに対して派生処理（Ｓ３２）を行い、バインド鍵を生成する。そして、バインド鍵を用いて暗号データを復号化（Ｓ３４）して暗号化前のデータに戻す。前記派生処理（Ｓ３２）では、固定鍵を用いて識別情報IDを一方向性関数により変換し、バインド鍵を生成する。
【０１２９】
第２実施形態によれば、正当な識別情報IDを有するセキュアフラッシュメモリ１００を搭載していないホストデバイスの場合、サーバからホストデバイスへデータをダウンロードすることができないため、不正なホストデバイスへのデータのダウンロードを防止することができる。また、正当な識別情報IDを有するセキュアフラッシュメモリ１００を搭載していないホストデバイスの場合、ホストデバイス内のＣＰＵがセキュアフラッシュメモリ１００に記憶されたデータを利用することができないため、セキュアフラッシュメモリ１００に記憶されたデータの不正利用を防止することができる。例えば、セキュアフラッシュメモリ１００から別のＮＡＮＤフラッシュメモリ等に交換した場合は、ホストデバイスへデータをダウンロードしたり、前記ＮＡＮＤフラッシュメモリに記憶されたデータを利用したりすることができない。すなわち、正当な識別情報IDを有するセキュアフラッシュメモリ１００を搭載しないホストデバイスでは動作しない環境を提供することが可能である。
【０１３０】
［第３実施形態］  
第３実施形態のホストデバイスの構成及び動作について説明する。第３実施形態では、ホストデバイスの外部のサーバでセキュアフラッシュメモリ１００の認証処理を行ってデータの書き込みを行い、ホストデバイス内で認証処理を行ってデータを読み出す、前記第２実施形態と異なる例を述べる。
【０１３１】
図１６は、前記ホストデバイスの構成を示すブロック図である。
【０１３２】
図示するように、ホストデバイス１１０は、セキュアフラッシュメモリ１００、ホストアプリケーション８１０−１、ホストアプリケーション８１０−２、中継アプリケーション６１０−１、及び中継アプリケーション６１０−２を備える。ホストデバイス１１０には、サーバ７００−１，７００−２が接続されている。中継アプリケーション６１０−１は、サーバ７００−１とセキュアフラッシュメモリ１００との間の信号の授受を中継する。さらに、中継アプリケーション６１０−２は、サーバ７００−２とセキュアフラッシュメモリ１００との間の信号の授受を中継する。
【０１３３】
前記第３実施形態のホストデバイス１２０の動作は以下のようになる。
【０１３４】
まず、サーバ７００−１が前記セキュアフラッシュメモリ１００の認証処理を行い、前記メモリ１００にデータを記憶させる動作を述べる。
【０１３５】
サーバ７００−１は、ホストデバイス１２０内にあるセキュアフラッシュメモリ１００との間で、セキュアフラッシュメモリ１００の認証処理を行う。その際、認証処理は、ホストデバイス１２０内の中継アプリケーション６１０−１を介して行われる。認証処理に成功すると、サーバ７００−１は、セキュアフラッシュメモリ１００へダウンロードさせるデータをバインド処理し、バインドデータを作成する。バインドデータとバインド処理する前のデータは、ホストデバイス１２０にダウンロードされ、セキュアフラッシュメモリ１００に記憶される。バインドデータを作成する前記バインド処理については後述する。
【０１３６】
以下に、図１７を用いて、前述したサーバ７００−１による認証処理とバインド処理について詳述する。図１７は、前記サーバ７００−１による認証処理とバインド処理を示すフローチャートである。ここで実行される認証処理は、図３及び図４においてＣＰＵをサーバに置き換えれば、図３及び図４に示した処理と同様である。
【０１３７】
サーバ７００−１は、セキュアフラッシュメモリ１００から識別情報IDを読み出す（ステップＳ４１１）。続いて、サーバ７００−１は、識別情報IDが正当なものか否かを判定する（ステップＳ４１２）。識別情報IDが正当なものである場合、サーバ７００−１はデータをバインドする処理を実行し、バインドデータを作成する（ステップＳ４１３）。そして、バインドデータとバインド処理する前のデータは、中継アプリケーション６１０−１を介してセキュアフラッシュメモリ１００に書き込まれる（ステップＳ４１４）。
【０１３８】
一方、識別情報IDが正当なものでない場合、サーバ７００−１は認証処理を終了する（ステップＳ４１５）。サーバ７００−２の動作についてもサーバ７００−１と同様である。
【０１３９】
図１８（ａ）を用いて、前記サーバ７００−１が実行する、データの前記バインド処理について述べる。図１８（ａ）は、前記バインド処理の具体例を示す図である。
【０１４０】
サーバ７００−１は、認証処理（Ｓ４１）を終了した後、取得した識別情報IDを基にデータからバインドデータを生成する。ここでは、例えば、識別情報IDとデータを用いて、メッセージ認証コード（Message Authentication Code：ＭＡＣ）を作成する（Ｓ４２）。そして、データにＭＡＣを付加してＭＡＣデータを生成する。
【０１４１】
次に、ホストアプリケーション８１０−１を実行するＣＰＵ３００が前記セキュアフラッシュメモリ１００の認証処理を行い、前記メモリ１００からデータを読み出す動作を述べる。
【０１４２】
ホストアプリケーション８１０−１を実行するＣＰＵ３００は、ホストデバイス１２０内にあるセキュアフラッシュメモリ１００との間で、セキュアフラッシュメモリ１００の認証処理を行う。認証処理に成功すると、ＣＰＵ３００は、セキュアフラッシュメモリ１００からデータを読み出し、読み出したデータをバインド処理し、バインドデータを作成する。また、ＣＰＵ３００は、セキュアフラッシュメモリ１００からバインドデータを読み出す。ＣＰＵ３００は、読み出したバインドデータと作成した前記バインドデータとを比較照合し、２つのバインドデータが同じであれば、読み出したデータを利用する。
【０１４３】
以下に、図１９を用いて、前述したＣＰＵ３００による認証処理とバインドを解く処理（バインド処理及び照合処理）について詳述する。図１９は、前記ＣＰＵ３００による認証処理とバインドを解く処理（バインド処理及び照合処理）を示すフローチャートである。ここで実行される認証処理は、図３及び図４においてホストアプリケーション８００をホストアプリケーション８１０に置き換えれば、図３及び図４に示した処理と同様である。
【０１４４】
ホストアプリケーション８１０−１を実行するＣＰＵ３００は、セキュアフラッシュメモリ１００から識別情報IDを読み出す（ステップＳ５１１）。続いて、ＣＰＵ３００は、識別情報IDが正当なものか否かを判定する（ステップＳ５１２）。
【０１４５】
識別情報IDが正当なものである場合、ＣＰＵ３００は、セキュアフラッシュメモリ１００からデータを読み出し、読み出したデータをバインド処理し、バインドデータを作成する（ステップＳ５１３）。また、ＣＰＵ３００は、セキュアフラッシュメモリ１００からバインドデータを読み出す（ステップＳ５１４）。そして、ＣＰＵ３００は、読み出したバインドデータと作成した前記バインドデータとを比較照合し、２つのバインドデータが一致するか否かを判定する（ステップＳ５１５）。２つのバインドデータが一致する場合、ＣＰＵ３００は、セキュアフラッシュメモリ１００から読み出したデータを利用する（ステップＳ５１６）。
【０１４６】
一方、前記ステップＳ５１２において識別情報IDが正当なものでない場合、ＣＰＵ３００は認証処理を終了する（ステップＳ５１７）。また、ステップＳ５１５において２つのバインドデータが一致しない場合、バインドを解く処理を終了する（ステップＳ５１８）。なお、サーバ７００−２にて読み出す場合は、中継アプリケーション６１０−２を介して行い、その他の動作についてはＣＰＵ３００の場合と同様である。
【０１４７】
図１８（ｂ）を用いて、前記ＣＰＵ３００が行う前記バインドを解く処理（バインド処理及び照合処理）について述べる。図１８（ｂ）は、前記バインドを解く処理の具体例を示す図である。
【０１４８】
ＣＰＵ３００は、認証処理（Ｓ４１）を終了した後、取得した識別情報IDを基に、セキュアフラッシュメモリ１００から読み出したデータからバインドデータを生成する。ここでは、例えば、識別情報IDとセキュアフラッシュメモリ１００から読み出したデータとを用いて、メッセージ認証コード（ＭＡＣ）を作成する（Ｓ４２）。そして、データにＭＡＣを付加してＭＡＣデータを生成する。その後、前述したように、生成したＭＡＣデータとセキュアフラッシュメモリ１００から読み出したＭＡＣデータとを照合する（Ｓ４３）。
【０１４９】
第３実施形態によれば、正当な識別情報IDを有するセキュアフラッシュメモリ１００を搭載していないホストデバイスの場合、サーバからホストデバイスへデータをダウンロードすることができないため、不正なホストデバイスへのデータのダウンロードを防止することができる。また、正当な識別情報IDを有するセキュアフラッシュメモリ１００を搭載していないホストデバイスの場合、ホストデバイス内のＣＰＵがセキュアフラッシュメモリ１００に記憶されたデータを利用することができないため、セキュアフラッシュメモリ１００に記憶されたデータの不正利用を防止することができる。例えば、セキュアフラッシュメモリ１００から別のＮＡＮＤフラッシュメモリ等に交換した場合は、ホストデバイスへデータをダウンロードしたり、前記ＮＡＮＤフラッシュメモリに記憶されたデータを利用したりすることができない。すなわち、正当な識別情報IDを有するセキュアフラッシュメモリ１００を搭載しないホストデバイスでは動作しない環境を提供することが可能である。
【０１５０】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１５１】
１０…ホストデバイス、１００…セキュアフラッシュメモリ、２００…コントローラ、３００…ＣＰＵ（central processing unit）、４００…ＲＯＭ（Read only Memory）、５００…ＲＡＭ（Random Access Memory）、６００…ネットワークアクセスユニット、８００…ホストアプリケーション。
【図１】
0006017392.tif 000002
【図２】
0006017392.tif 000003
【図３】
0006017392.tif 000004
【図４】
0006017392.tif 000005
【図５】
0006017392.tif 000006
【図６】
0006017392.tif 000007
【図７】
0006017392.tif 000008
【図８】
0006017392.tif 000009
【図９】
0006017392.tif 000010
【図１０】
0006017392.tif 000011
【図１１】
0006017392.tif 000012
【図１２】
0006017392.tif 000013
【図１３】
0006017392.tif 000014
【図１４】
0006017392.tif 000015
【図１５】
0006017392.tif 000016
【図１６】
0006017392.tif 000017
【図１７】
0006017392.tif 000018
【図１８】
0006017392.tif 000019
【図１９】
0006017392.tif 000020