(57)【特許請求の範囲】
【請求項１】
証明書を検証するための認証局の公開鍵情報を格納し、機密性を保証すべきデータを格納する秘密エリアを含む記憶部と、
上記記憶部へのアクセスを受信情報に応じて制御する制御部と、を有し、
上記受信情報は、
認証局で認証された証明書情報にアクセス制御情報を付加した情報を含み、
上記記憶部の上記秘密エリアは、
前記制御部および上記認証局側のホスト装置のみがアクセス可能で、複数の秘密データエリアにアプリケーションに応じて区分けされ、各秘密データエリアにはそれぞれアプリケーションに応じてアドレスが割り当てられており、アプリケーションに応じたデータが書き込まれ、
上記アクセス制御情報は、
アクセスできる上記記憶部内の上記秘密データエリアのアドレスを含み、
上記制御部は、
上記受信情報の証明書に付加された上記アクセス制御情報からアクセス可能な上記秘密データエリアのアドレスを確認し、
上記公開鍵で上記証明書の検証を行い、認証されると上記アクセス制御情報を識別し、上記記憶部内のアクセス可能な上記秘密エリアを制限する
メモリ装置。
【請求項２】
上記制御部は、
上記アクセス制御情報からアクセス可能な上記秘密データエリアのアドレスを確認すると、
確認情報を送信し、当該送信した確認情報に応答した応答情報を復号して、上記送信した確認情報の値と一致したことを確認すると認証されたことを報知する認証通知を行う
請求項１記載のメモリ装置。
【請求項３】
上記制御部は、
上記アクセス制御情報からアクセス可能な上記秘密データエリアのアドレスを確認すると、
疑似乱数を送信し、当該送信した疑似乱数に応答した暗号化情報を復号して、上記送信した疑似乱数の値と一致したことを確認すると認証されたことを報知する認証通知を行う
請求項１記載のメモリ装置。
【請求項４】
上記制御部は、
上記認証通知に応答して上記秘密データエリアのアドレスを受信すると、
上記アクセス制御情報から確認したアクセス可能な上記秘密データエリアのアドレスと受信アドレスとを照合し、一致したときは当該アドレスの秘密データを送信する
請求項２または３記載のメモリ装置。
【請求項５】
ホスト装置と、
上記ホスト装置と通信可能なメモリ装置と、を有し、
上記ホスト装置は、
少なくとも認証局が発行した公開鍵証明書情報を格納する記憶デバイスと、
上記記憶デバイスのアクセスおよび接続される機密性を保証すべきデータを格納する秘密エリアを含む外部メモリ装置との通信機能を含む第１の制御部と、を含み、
上記第１の制御部は、
上記通信機能により、上記証明書情報に認証局で認証された証明書情報にアクセス制御情報を付加した情報を上記メモリ装置に送信可能であり、
上記メモリ装置は、
証明書を検証するための認証局の公開鍵情報を格納し、機密性を保証すべきデータを格納する秘密エリアを含む記憶部と、
上記記憶部へのアクセスを上記ホスト装置から送信される認証局で認証された証明書情報にアクセス制御情報を付加した情報に応じて制御する第２の制御部と、を含み、
上記記憶部の上記秘密エリアは、
前記第２の制御部および上記認証局側のホスト装置のみがアクセス可能で、複数の秘密データエリアにアプリケーションに応じて区分けされ、各秘密データエリアにはそれぞれアプリケーションに応じてアドレスが割り当てられており、アプリケーションに応じたデータが書き込まれ、
上記アクセス制御情報は、
アクセスできる上記記憶部内の上記秘密データエリアのアドレスを含み、
上記第２の制御部は、
上記ホスト装置から送信される認証局で認証された証明書に付加された上記アクセス制御情報からアクセス可能な上記秘密データエリアのアドレスを確認し、
上記公開鍵で上記証明書の検証を行い、認証されると上記アクセス制御情報を識別し、上記記憶部内のアクセス可能な上記秘密エリアを制限する
メモリシステム。
【請求項６】
上記第２の制御部は、
上記アクセス制御情報からアクセス可能な上記秘密データエリアのアドレスを確認すると、
確認情報を送信し、当該送信した確認情報に応答した応答情報を復号して、上記送信した確認情報の値と一致したことを確認すると認証されたことを報知する認証通知を上記ホスト装置に対して行い、
上記第１の制御部は、
送信した上記証明書情報に認証局で認証された証明書情報にアクセス制御情報を付加した情報の応答として上記確認情報を受信すると、当該受信した確認情報に応答した上記応答情報を上記メモリ装置に送信する
請求項５記載のメモリシステム。
【請求項７】
上記第２の制御部は、
上記アクセス制御情報からアクセス可能な上記秘密データエリアのアドレスを確認すると、
疑似乱数を送信し、当該送信した疑似乱数に応答した暗号化情報を復号して、上記送信した疑似乱数の値と一致したことを確認すると認証されたことを報知する認証通知をホスト装置に対して行い、
上記第１の制御部は、
送信した上記証明書情報に認証局で認証された証明書情報にアクセス制御情報を付加した情報の応答として上記疑似乱数を受信すると、当該受信した疑似乱数に応答した暗号化情報を上記メモリ装置に送信する
請求項５記載のメモリシステム。
【請求項８】
上記第１の制御部は、
認証されたことを報知する上記認証通知を受信すると、上記メモリ装置の秘密エリアのアドレスを当該メモリ装置に送信し、
上記第２の制御部は、
上記認証通知に応答して上記秘密データエリアのアドレスを受信すると、
上記アクセス制御情報から確認したアクセス可能な上記秘密データエリアのアドレスと受信アドレスとを照合し、一致したときは当該アドレスの秘密データを送信する
請求項６または７記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホスト装置の証明書に応じた認証により秘密データを保持している秘密エリアへのアクセスメモリ装置、ホスト装置、およびメモリシステムに関するものである。
【背景技術】
【０００２】
パーソナルコンピュータ、デジタルスチルカメラ、デジタルビデオカメラ、ビデオ機器、ゲーム機器等のホスト装置の外部記憶装置として、フラッシュメモリを備えたメモリ装置が知られている。
【０００３】
このように各種ホスト装置の外部記憶装置として使用されるメモリ装置には、たとえば図１に示すように、認証したホスト装置のみがアクセスできる秘密エリア１が形成される。
ホスト装置が対応するアプリケーションが複数（ビデオ、ゲームなど）あり、この秘密エリアは、ビデオ用データ、ゲーム用データなど、アプリケーション毎に書くべきエリアが区分けされる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２００２-５２３８１６号公報
【特許文献２】特開２００４-２４７７９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ホスト装置とメモリ装置を採用した現状のメモリシステムにおいては、認証が通ったホストはメディア内の秘密エリアにフルアクセスすることができる。
そのため、複数のホストがメディア内の秘密エリアを共有している場合、他のホストが記録したデータの読み書きができてしまうという問題がある。
【０００６】
特許文献１や特許文献２には、メディアであるメモリ装置側にアクセス制御情報を記載することで上記の問題を回避できるようにする技術が開示されている。
しかし、アクセス制御の変更が必要になった時にメディアのファームウェアの変更が必要であるため現実的ではない。
【０００７】
本発明は、ホストの属性情報を識別でき、アクセス可能な秘密エリアを限定することが可能なメモリ装置、ホスト装置、およびメモリシステムを提供することにある。
【課題を解決するための手段】
【０００８】
本発明の第１の観点のメモリ装置は、証明書を検証するための認証局の公開鍵情報を格納し、機密性を保証すべきデータを格納する秘密エリアを含む記憶部と、上記記憶部へのアクセスを受信情報に応じて制御する制御部と、を有し、上記受信情報は、認証局で認証された証明書情報にアクセス制御情報を付加した情報を含み、上記記憶部の上記秘密エリアは、前記制御部および上記認証局側のホスト装置のみがアクセス可能で、複数の秘密データエリアにアプリケーションに応じて区分けされ、各秘密データエリアにはそれぞれアプリケーションに応じてアドレスが割り当てられており、アプリケーションに応じたデータが書き込まれ、上記アクセス制御情報は、アクセスできる上記記憶部内の上記秘密データエリアのアドレスを含み、上記制御部は、上記受信情報の証明書に付加された上記アクセス制御情報からアクセス可能な上記秘密データエリアのアドレスを確認し、上記公開鍵で上記証明書の検証を行い、認証されると上記アクセス制御情報を識別し、上記記憶部内のアクセス可能な上記秘密エリアを制限する。
【０００９】
本発明の第２の観点のホスト装置は、少なくとも認証局が発行した証明書情報を格納する記憶デバイスと、上記記憶デバイスのアクセスおよび接続される機密性を保証すべきデータを格納する秘密エリアを含む外部メモリ装置との通信機能を含む制御部と、を有し、上記制御部は、上記通信機能により、上記証明書情報に認証局で認証された証明書情報にアクセス制御情報を付加した情報を送信可能である。
【００１０】
本発明の第３の観点のメモリシステムは、ホスト装置と、上記ホスト装置と通信可能なメモリ装置と、を有し、上記ホスト装置は、少なくとも認証局が発行した公開鍵証明書情報を格納する記憶デバイスと、上記記憶デバイスのアクセスおよび接続される機密性を保証すべきデータを格納する秘密エリアを含む外部メモリ装置との通信機能を含む第１の制御部と、を含み、上記第１の制御部は、上記通信機能により、上記証明書情報に認証局で認証された証明書情報にアクセス制御情報を付加した情報を上記メモリ装置に送信可能であり、上記メモリ装置は、証明書を検証するための認証局の公開鍵情報を格納し、機密性を保証すべきデータを格納する秘密エリアを含む記憶部と、上記記憶部へのアクセスを上記ホスト装置から送信される認証局で認証された証明書情報にアクセス制御情報を付加した情報に応じて制御する第２の制御部と、を含み、上記記憶部の上記秘密エリアは、前記第２の制御部および上記認証局側のホスト装置のみがアクセス可能で、複数の秘密データエリアにアプリケーションに応じて区分けされ、各秘密データエリアにはそれぞれアプリケーションに応じてアドレスが割り当てられており、アプリケーションに応じたデータが書き込まれ、上記アクセス制御情報は、アクセスできる上記記憶部内の上記秘密データエリアのアドレスを含み、上記第２の制御部は、上記ホスト装置から送信される認証局で認証された証明書に付加された上記アクセス制御情報からアクセス可能な上記秘密データエリアのアドレスを確認し、上記公開鍵で上記証明書の検証を行い、認証されると上記アクセス制御情報を識別し、上記記憶部内のアクセス可能な上記秘密エリアを制限する。
【発明の効果】
【００１１】
本発明によれば、ホストの属性情報を識別でき、アクセス可能な秘密エリアを限定することができる。
【図面の簡単な説明】
【００１２】
【図１】一般的な秘密エリアの書き込まれるデータ例を示す図である。
【図２】本実施形態に適用されるメモリシステムの概略構成を示す図である。
【図３】本実施形態に係るメモリ装置の要部の構成を示すブロック図である。
【図４】本実施形態に係る秘密エリアに書き込まれるデータの例およびそのデータのアクセス制限について説明するための図である。
【図５】本実施形態に係るホスト装置の要部の構成を示すブロック図である。
【図６】本実施形態に係るホスト装置の証明書の一例を示す図である。
【図７】属性情報を含むＰＡＤアクセスエリアの一例を示す図である。
【図８】本実施形態におけるホスト装置とメモリ装置間の基本的な通信シーケンスについて説明するための図である。
【図９】本実施形態におけるホスト装置とメモリ装置間の具体的な通信シーケンスについて説明するための図である。
【図１０】一例として、図９の処理におけるメモリ装置の認証状態とプロトコルの実施可否を対応つけて示す図である。
【図１１】本実施形態におけるホスト装置とメモリ装置間の具体的なＰＡＤ取得の通信シーケンスについて説明するための図である。
【図１２】一例として、図１１および図１３の処理におけるメモリ装置の認証状態とプロトコルの実施可否を対応つけて示す図である。
【図１３】本実施形態におけるホスト装置とメモリ装置間の具体的なＰＡＤ取得の通信シーケンスについて説明するための図である。
【発明を実施するための形態】
【００１３】
以下、本発明の実施の形態を図面に関連付けて説明する。
なお、説明は次の順序で行う。
１．メモリシステムの全体の概略構成
２．メモリ装置の要部の構成例
３．ホスト装置の要部の構成例
４．属性情報を含む証明書の例
５．ホスト装置とメモリ装置間の通信シーケンス
【００１４】
＜１．メモリシステムの全体の概略構成＞
図２は、本発明の実施形態に適用されるメモリシステムの概略構成を示す図である。
【００１５】
図２に示すように、このメモリシステムは、ホスト装置１０と、ホスト装置１０に着脱自在に装着可能なメモリ装置２０を主構成要素として有している。本実施形態において、メモリ装置２０は不揮発性メモリであるフラッシュメモリを有する。
本実施形態のメモリシステムは、メモリ装置２０が公開鍵暗号(ＰＫＩ)によってホストを認証するシステムとして形成され、ホスト装置１０の公開鍵証明書にアクセス制御情報を記録することでメモリ装置２０内の秘密エリアへのアクセスを制御する。
【００１６】
ホスト装置１０は、パーソナルコンピュータ、デジタルスチルカメラ、デジタルビデオカメラ、ビデオ機器、ゲーム機器等の電子機器により構成される。
ホスト装置１０は、第１の制御部としてのＣＰＵ１１、メモリ１２、ディスプレイ１３、入出力処理（Ｉ／Ｏ）部１４および外部メモリＩ／Ｆ（インタフェース）１５を備える。
また、ホスト装置１０は、ユーザデータや秘密性の高いデータを記憶するストレージデバイス１６を有する。このストレージデバイス１６については、後で説明する。
ＣＰＵ１１は、メモリ１２、ディスプレイ１３、Ｉ／Ｏ部１４、外部メモリＩ／Ｆ１５、およびストレージデバイス１６とバス１７を介し相互に接続されている。
メモリ１２は、プログラム格納用のＲＯＭ、作業用メモリであるＲＡＭ等を有する。外部メモリＩ／Ｆ１５は、ＣＰＵ１１の制御命令に従ってメモリ装置２０との間でデータを送受する。
【００１７】
メモリ装置２０は、第２の制御部としてのＣＰＵ２１、メモリ２２、フラッシュメモリ２３およびホストＩ／Ｆ２４を備える。
ＣＰＵ２１は、メモリ２２、フラッシュメモリ２３およびホストＩ／Ｆ２４とバス２５を介し相互に接続されている。メモリ２２は、プログラム格納用のＲＯＭ、作業用メモリであるＲＡＭ等を有する。
フラッシュメモリ２３は、たとえば、ＮＯＲ型またはＮＡＮＤ型のフラッシュメモリ（不揮発性メモリ）からなる。
ホストＩ／Ｆ２４は、ＣＰＵ２１の制御命令に従ってホスト装置１０との間でデータを送受する。
【００１８】
＜２．メモリ装置の要部の構成例＞
まず、メモリ装置２０のより具体的な構成について説明する。
図３は、図２に示されるメモリ装置２０の要部の構成例を示すブロック図である。
【００１９】
メモリ装置２０は、図３に示されるように、たとえば板状のメモリカード等に相当し、ホスト装置１０に装着されているとき、ホスト装置１０から認証を伴うアクセスが行われ、データの読み出しや書き込みが行われる。
【００２０】
本実施形態のメモリ装置２０は、公開鍵暗号(ＰＫＩ)によってホストを認証する機能を有し、ホスト装置１０の公開鍵証明書に付加されているアクセス制御情報を受けて、認証処理等を行って秘密エリアへのアクセスを制御する。
【００２１】
本実施形態のメモリ装置２０におけるフラッシュメモリ２３は、ユーザデータがリード（読み出し）、ライト（書き込み）が行われるユーザデータエリア２３Ｕ、および完全性、機密性が保証される機密ストレージエリア２３Ｓに区分けされている。
【００２２】
機密ストレージエリア２３Ｓには、ホスト装置１０の公開鍵証明書を検証するための認証局公開鍵情報エリア２３１、機密性、完全性を保証すべきデータを格納するための秘密エリア２３２を有する。
秘密エリア２３２は、複数の秘密データエリア２３２−０〜２３２−３に区分けされており、＃０〜＃３のようにアドレスが割り振られている。
【００２３】
この機密エリア２３Ｓの秘密エリア２３２は、メモリ装置２０と認証したホスト装置１０のみがアクセスできるエリアで、図４に示すように、アプリケーション毎に書くべきエリアが区分けされている。
図４の例では、アドレス＃０が割り振られた秘密データエリア２３２−０にはビデオ機器用データが、アドレス＃１が割り振られた秘密データエリア２３２−１にはゲーム機器
ゲーム用データが書き込まれている。また、アドレス＃２が割り振られた秘密データエリア２３２−２には電子本（ｅＢＯＯＫ）用データが書き込まれる。
【００２４】
このように秘密エリア２３２に書き込まれるデータは、たとえば改ざんされると困るデータや見られると困るデータが保存される。
改ざんされると困るデータとしては、例示すると、コンテンツの権利情報（視聴期限、再生回数）や配信サービスのユーザＩＤなどがあげられる。
見られると困るデータとしては、例示すると、暗号化されたコンテンツを復号するための鍵、配信サービスのパスワード、クレジットカードの番号などがあげられる。
【００２５】
メモリ装置２０の制御部としてのＣＰＵ２１は、ホスト装置１０による公開鍵証明書を認証し、認証されると、公開鍵証明書に付加された属性情報を識別し、ホスト装置１０がアクセス可能なメディア内の秘密エリアを制限する機能を有する。
このように、本実施形態においては、ホスト装置１０とメモリ装置２０の認証には公開鍵暗号を利用する。
ＣＰＵ２１は、その認証を行う機能を有している。
【００２６】
ＣＰＵ２１は、受信情報の証明書に付加されたアクセス制御情報（属性情報）からアクセス可能な上記秘密データエリアのアドレスを確認する。
ＣＰＵ２１は、アクセス制御情報からアクセス可能な上記秘密データエリアのアドレスを確認すると、確認情報を送信し、送信した確認情報に応答した応答情報を復号する。そして、ＣＰＵ２１は、送信した確認情報の値と一致したことを確認すると認証されたことを報知する認証通知を行う。
より具体的には、ＣＰＵ２１は、アクセス制御情報からアクセス可能な秘密データエリアのアドレスを確認すると、疑似乱数を送信し、送信した疑似乱数に応答した暗号化情報を復号する。そして、ＣＰＵ２１は、送信した疑似乱数の値と一致したことを確認すると認証されたことを報知する認証通知を行う
ＣＰＵ２１は、認証通知に応答して秘密データエリアのアドレスを受信すると、アクセス制御情報から確認したアクセス可能な秘密データエリアのアドレスと受信アドレスとを照合し、一致したときはアドレスの秘密データを送信する。
【００２７】
本実施形態においては、メモリ装置２０に持たせる鍵はなるべく減らし、鍵発行コスト、メディア製造コストを下げるために以下の特徴的な構成を採用している。
【００２８】
本実施形態においては、公開鍵認証で使うホスト証明書にホスト装置１０によりアクセス可能な秘密エリアを属性情報として記載される（付加される）。
このホスト証明書は信頼できる認証局のみが発行可能な証明書である。
上記したように、秘密エリア２３２にアドレスを割り振り(＃０〜＃３など)、属性情報にはアクセス可能なアドレス(＃０〜＃３など)が記載される。
そして、メモリ装置２０は、属性情報に従い、ホストからの秘密エリアに対するアクセスを制御する。
また、メモリ装置２０は認証局から配布される公開鍵（ホスト証明書を検証するために利用)だけを持てばよい。
【００２９】
＜３．ホスト装置の要部の構成例＞
次に、ホスト装置１０のより具体的な構成について説明する。
図５は、図２に示されるホスト装置１０の要部の構成例を示すブロック図である。
【００３０】
図５のホスト装置１０は、ＣＰＵ１１、メモリ１２（ＲＡＭ）、およびストレージデバイス１６が示されている。
【００３１】
本実施形態のホスト装置１０におけるストレージデバイス１６は、ユーザデータがリード（読み出し）、ライト（書き込み）が行われるユーザデータエリア１６Ｕ、および完全性、機密性が保証される機密ストレージエリア１６Ｓに区分けされている。
【００３２】
機密ストレージエリア１６Ｓには、認証局が発行したホスト装置１０の公開鍵証明書情報が記憶されたホスト公開鍵情報エリア１６１、ホスト装置１０の秘密鍵情報が記憶されたホスト秘密鍵情報エリア１６２を有する。
【００３３】
ホスト装置１０の公開鍵証明書には、基本的に以下のデータが記載してある。
ホスト装置１０の公開鍵、
ホスト装置１０がアクセスできるメモリ装置２０内の秘密データのアドレス(＃０〜＃３など)、
認証局の秘密鍵による署名、である。
【００３４】
＜４．属性情報を含む証明書の例＞
図６は、本実施形態に係るホスト装置１０の証明書の一例を示す図である。
【００３５】
図６の証明書（(Host Certificate)１００は、タイプ(TYPE)エリア１０１、属性情報を含むＰＡＤアクセス（Protected Area Data Access：保護されるエリアデータアクセス）エリア１０２、およびホスト(Host)ＩＤエリア１０３を有する。
証明書１００は、ホスト公開鍵(Host Public Key)エリア１０４、および署名(Signature)エリア１０５を有する。
【００３６】
タイプ(TYPE)エリア１０１は、２バイトで形成され、証明書の種類を表す値が格納される。具体的には、0001h(= Host)が格納される。
【００３７】
ＰＡＤアクセスエリア１０２は、４バイトで形成され、ホスト装置１０がアクセス可能なメモリ装置２０内のプロテクテッド（保護される）エリアデータ（Protected Area Data）の番号を表す値が格納される。この情報が属性情報に相当する。
【００３８】
図７は、属性情報を含むＰＡＤアクセスエリアの一例を示す図である。
ＰＡＤアクセスエリア１０２は、図７に示すように、３２個のフラグＰＡＤ０〜ＰＡＤ３１によって構成される。ここで、ＰＡＤ Ｎ(1bit, 0<=N<32)である。
ＰＡＤアクセスエリア１０２は、ホスト装置１０がＰＡＤ Ｎ (0<=N<32)にアクセスできる場合は１bが格納される。アクセスできない場合は０bが格納される。
プロテクテッドエリア（Protected Area）は３２個のＰＡＤを含む。プロテクテッドエリアには０から３１のエリアナンバー（Area Number）が割り当てられる。
ＰＡＤ（Protected Area Data）０は０番のエリアナンバーを割り当てられたＰＡＤのことを指す。
【００３９】
ホスト(Host)ＩＤエリア１０３は、６バイトで形成され、ホスト装置１０のホストＩＤが格納される。
【００４０】
ホスト公開鍵(Host Public Key)エリア１０４は、５６バイトで形成され、ホスト装置１０の認証用公開鍵が格納される。
【００４１】
署名(Signature)エリア１０５は、５６バイトで形成され、秘密鍵による署名が格納される。
たとえば、署名生成時はSignatureを以下の計算式で求める。ホスト装置１０の証明書１００の[00h - 57h]をDとする。
ECDSA_Sign(LApriv, D )
署名検証時は以下の計算式で検証する。
ECDSA_Verify (LApub, Signature, D )
【００４２】
ＣＰＵ１１は、メモリ装置２０との通信機能を含む。
ＣＰＵ１１は、この通信機能により、証明書情報に認証局で認証された証明書情報にアクセス制御情報を付加した情報をメモリ装置２０に送信可能である。
ＣＰＵ１１は、送信した証明書情報に認証局で認証された証明書情報にアクセス制御情報を付加した情報の応答として確認情報を受信すると、受信した確認情報に応答した応答情報をメモリ装置２０に送信する。
より具体的には、ＣＰＵ１１は、送信した証明書情報に認証局で認証された証明書情報にアクセス制御情報を付加した情報の応答として疑似乱数を受信すると、受信した疑似乱数に応答した暗号化情報をメモリ装置２０に送信する。
ＣＰＵ１１は、認証されたことを報知する認証通知を受信すると、メモリ装置２０の秘密エリアのアドレスを送信し、秘密データを受信可能である。
【００４３】
＜５．ホスト装置とメモリ装置間の通信シーケンス＞
次に、本実施形態におけるホスト装置１０とメモリ装置２０間の通信シーケンスについて説明する。
図８は、本実施形態におけるホスト装置とメモリ装置間の基本的な通信シーケンスについて説明するための図である。
【００４４】
本実施形態のメモリシステムにおいては、ホスト装置１０とメモリ装置２０間で認証と鍵交換を行い、バス鍵（Bus Key）を共有するためのプロトコルに従って処理する。
メモリシステムにおいては、ホスト装置１０とメモリ装置２０間の認証にはチャレンジ（Challenge）およびレスポンス（Response）方式を使う。
メモリシステムにおいては、ホスト装置１０とメモリ装置２０間の鍵交換にはECDH(Elliptic Curve Diffie-Hellman)を使う。
【００４５】
［ステップＳＴ１］
ステップＳＴ１において、ホスト装置１０が公開鍵証明書１００をメモリ装置２０に送信する。
メモリ装置２０は、認証局の公開鍵で公開鍵証明書を検証する。
メモリ装置２０は、公開鍵証明書内のアクセス制御情報（属性情報）からホスト装置１０がアクセス可能な秘密データのアドレスを確認する。
【００４６】
［ステップＳＴ２］
ステップＳＴ２においては、メモリ装置２０がホスト装置１０へchallenge(擬似乱数)を送信する。
【００４７】
［ステップＳＴ３］
ステップＳＴ３においては、ホスト装置１０がメモリ装置２０へresponse(challengeをホスト装置１０の秘密鍵で暗号化した値)を送信する。
【００４８】
［ステップＳＴ４］
ステップＳＴ４においては、メモリ装置２０はresponseをホスト装置１０の公開鍵で復号し、challengeで送信した値と一致することを確認する。一致が確認できたら認証されたことをホスト装置１０に通知する。
【００４９】
［ステップＳＴ５］
ステップＳＴ５においては、ホスト装置１０がメモリ装置２０へ取得したい秘密データのアドレスを送信する。
【００５０】
［ステップＳＴ６］
ステップＳＴ６においては、メモリ装置２０はステップＳＴ１で取得したアクセス制御情報とステップＳＴ５のアドレスを照合し、一致すれば秘密データを送信する。
【００５１】
次に、本実施形態におけるホスト装置１０とメモリ装置２０間のより具体的な通信シーケンスについて説明する。
図９は、本実施形態におけるホスト装置とメモリ装置間の具体的な認証の通信シーケンスについて説明するための図である。
なお、図１０に示すように、メモリ装置２０の認証状態は、「AUTH_INIT」、「AUTH_PROCESS_1」、「AUTH_PROCESS_2」、「AUTH_SESSION_ESTABLISHED」の４つの状態遷移があるものとし、状態「AUTH_INIT」のときプロトコルを実施可能であるものとする。
【００５２】
［ステップＳＴ１１］
ステップＳＴ１１は、ホスト装置１０からメモリ装置２０に情報を送信するホストによるチャレンジ(Challenge by Host)であり、以下の処理を行う。
ホスト装置１０は数十あるいは数百ビットの乱数Ｈｎを生成する。
ホスト装置１０は、メモリ装置２０に乱数Ｈｎとホスト証明書（Host Certificate）Ｈcertを送信する(Challenge by Host)。
【００５３】
［ステップＳＴ１２］
ステップＳＴ１２において、メモリ装置２０はホスト証明書Ｈcertのタイプ（TYPE）が0001hであることを検証する。
検証に失敗した場合はプロトコルを中断し、認証状態を「AUTH_INIT」へ遷移する。
メモリ装置２０は、ホスト証明書Ｈcertの署名を検証する。署名の検証に失敗した場合はプロトコルを中断し、認証状態を「AUTH_INIT」へ遷移する。
メモリ装置２０は数十あるいは数百ビットの乱数Ｍｎを生成する。
メモリ装置２０は数十あるいは数百ビットの乱数Ｍｋを生成する。
メモリ装置２０は楕円曲線上の点Ｍｖを以下の式で求める。楕円曲線上のベースポイントをＧとする。
Mv = Mk * G
メモリ装置２０は乱数Ｍｖと乱数Ｈｎに対する署名Ｍｓｉｇを以下の式で求める。
Msig = ECDSA_Sign( Mpriv, Mv || Hn )
メモリ装置２０は認証状態を「AUTH_INIT」から「AUTH_PROCESS_1」へ遷移する。
【００５４】
［ステップＳＴ１３］
ステップＳＴ１３において、ホスト装置１０はメモリ装置２０から乱数Ｍｎ、メモリ証明書Ｍcert、乱数Ｍｖ、署名Ｍｓｉｇを受け取る(Challenge and Response by Memory)。
ホスト装置１０は証明書Ｍcertのタイプ（TYPE）が0002hであることを検証する。検証に失敗した場合はプロトコルを中断する。
ホスト装置１０、証明書Ｍcertの署名を検証する。署名の検証に失敗した場合はプロトコルを中断する。
ホスト装置１０は、以下の計算式で署名Ｍｓｉｇを検証する。検証に失敗した場合はプロトコルを中断する。
ECDSA_Verify( Mpub, Msig, Mv || Hn )
ホスト装置１０は数十あるいは数百ビットの乱数Ｈｋを生成する。
ホスト装置１０はBus Key(BK)を計算して保持する。Bus Keyは楕円曲線上の点Ｈｋ * ＭｖのＸ座標値のたとえば下位１００ビットとなる。
ホスト装置１０は楕円曲線上の点Ｈｖを以下の式で求める。楕円曲線上のベースポイントをＧとする。
Hv = Hk * G
ホスト装置１０は、乱数ＨｖとＭｎに対する署名Ｈｓｉｇを以下の式で求める。
Hsig = Sig( Hpriv, Hv || Mn )
ホスト装置１０はメモリ装置２０に乱数Ｈｖと書名Ｈｓｉｇを送信する(Response by Host)。
【００５５】
［ステップＳＴ１４］
ステップＳＴ１４において、メモリ装置２０は、以下の計算式で署名Ｈｓｉｇを検証する。検証に失敗した場合はプロトコルを中断する。
ECDSA_Verify( Hpub, Hsig, Hv || Mn )
メモリ装置２０はBus Keyを計算して保持する。Bus Keyは楕円曲線上の点Ｍｋ * ＨｖのＸ座標値の下位１００ビットとなる。
メモリ装置２０は認証状態を「AUTH_PROCESS_1」から「AUTH_PROCESS_2」へ遷移する。
【００５６】
次に、本実施形態におけるホスト装置１０とメモリ装置２０間のより具体的なＰＡＤ取得の通信シーケンスについて説明する。
図１１は、本実施形態におけるホスト装置とメモリ装置間の具体的なＰＡＤ取得の通信シーケンスについて説明するための図である。
なお、図１２に示すように、メモリ装置２０の認証状態は、「AUTH_INIT」、「AUTH_PROCESS_1」、「AUTH_PROCESS_2」、「AUTH_SESSION_ESTABLISHED」の４つの状態遷移があるものとする。そして、状態「AUTH_PROCESS_2」のときプロトコルを実施可能であるものとする。
【００５７】
この処理のプロトコルは、メモリ装置２０のＰＡＤ（Protected Area Data） Ｎを取得するためのプロトコルである。
上述したように、事前にホスト装置１０とメモリ装置２０間で認証が完了している必要がある。
ホスト装置１０が取得できるＰＡＤ（Protected Area Data）は図６のホスト証明書１００のＰＡＤアクセス（Access）に従う。
【００５８】
［ステップＳＴ２１］
ステップＳＴ２１において、ホスト装置１０は数十あるいは数百ビットの乱数Ｈｎを生成する。
ホスト装置１０は取得するＰＡＤ（Protected Area Data）のエリアナンバー（Area Number=N)と乱数Ｈｎをメモリ装置２０に送信する。
【００５９】
［ステップＳＴ２２］
ステップＳＴ２２において、メモリ装置２０はホスト装置１０から受け取ったエリアナンバー（Area Number）と上記認証プロトコルで受け取ったホスト証明書Ｈcert内のＰＡＤ Accessの値を照合する。
ホスト装置１０がＰＡＤ（Protected Area Data）Ｎへのアクセスを許可されていない場合はプロトコルを中断する。
メモリ装置２０は、ＰＡＤ（Protected Area Data）Ｎを以下の式で暗号化する(= Epad)。Bus KeyをBKとする。
Epad = AES_E( BK, Protected Area Data N )
メモリ装置２０はEpad、エリアナンバー（Area Number）と乱数Hnに対するＭＡＣ(Mm)を以下の式で計算する。
Mm = CMAC( Epad || Area Number || Hn )
メモリ装置２０は、Epad、エリアナンバー（Area Number）、Ｍｍをホスト装置１０に送信する。
［ステップＳＴ２３］
ステップＳＴ２３において、ホスト装置１０は、メモリ装置２０からEpad、エリアナンバー（Area Number）、Ｍｍを受け取る。
ホスト装置１０は以下の計算結果がＭｍと一致することを検証する。検証に失敗した場合はプロトコルを中断する。
CMAC( BK, Epad || Area Number || Hn )
ホスト装置１０は、受け取ったエリアナンバー（Area Number）の値とステップＳＴ２１で自身が指定したエリアナンバー（Area Number）が等しいことを検証する。検証に失敗した場合はプロトコルを中断する。
ホスト装置１０は、Epadを以下の式で復号化してＰＡＤ（Protected Area Data）Ｎを得る。
AES_D( BK, Epad )
【００６０】
次に、本実施形態におけるホスト装置１０とメモリ装置２０間のより具体的なＰＡＤセットの通信シーケンスについて説明する。
図１３は、本実施形態におけるホスト装置とメモリ装置間の具体的なＰＡＤ取得の通信シーケンスについて説明するための図である。
なお、図１２に示すように、メモリ装置２０の認証状態は、「AUTH_INIT」、「AUTH_PROCESS_1」、「AUTH_PROCESS_2」、「AUTH_SESSION_ESTABLISHED」の４つの状態遷移があるものとする。そして、状態「AUTH_SESSION_ESTABLISHED」のときプロトコルを実施可能であるものとする。
【００６１】
この処理のプロトコルは、メモリ装置２０のＰＡＤ（Protected Area Data） Ｎを記録するためのプロトコルである。
上述したように、事前にホスト装置１０とメモリ装置２０間で認証が完了している必要がある。
ホスト装置１０が取得できるＰＡＤ（Protected Area Data）は図６のホスト証明書１００のＰＡＤアクセス（Access）に従う。
【００６２】
［ステップＳＴ３１］
ステップＳＴ３１において、メモリ装置２０は数十あるいは数百ビットの乱数Ｍｎを生成し、ホスト装置１０に送信する。
【００６３】
［ステップＳＴ３２］
ステップＳＴ３２において、ホスト装置１０はメモリ装置２０からのＭｎを受け取る。
ホスト装置１０は以下の式でＰＡＤ（Protected Area Data）Ｎを暗号化する(= Epad)。Bus KeyをBKとする。
Epad = AES_E( BK, Protected Area Data N )
ホスト装置１０は、Epad、Area Number(=N)と乱数Ｍｎに対するＭＡＣ(Ｈｍ)を以下の式で計算する。
Hm = CMAC( BK, Epad || Area Number || Mn )
ホスト装置１０はメモリ装置２０へEpadとＨｍを送信する。
【００６４】
［ステップＳＴ３３］
ステップＳＴ３３において、メモリ装置２０はＨｍと以下の値が一致することを検証する。検証に失敗した場合はプロトコルを中断する。
CMAC( BK, Epad || Area Number || Mn )
メモリ装置２０は、エリアナンバー（Area Number）と上記認証（Authentication）プロトコルで受け取ったホスト証明書内のＰＡＤ Accessの値を照合する。メモリ装置２０はホスト装置１０がＰＡＤ（Protected Area Data）Ｎへのアクセスを許可されていない場合はプロトコルを中断する。
メモリ装置２０は、Epadを以下の式で復号化してＰＡＤ（Protected Area Data）Ｎを得る。
AES_D( BK, Epad )
メモリ装置２０はＰＡＤ（Protected Area Data）Ｎの更新を行う。
【００６５】
以上、本実施形態を詳細に説明したが、以下の構成を採用することも可能である。
ホスト装置１０が複数の秘密データにアクセスできる場合は、公開鍵証明書にアドレスを複数記録できるようにする。
ホスト装置１０の秘密データへのアクセスをより細かく制御する。たとえば、リード正常／異常（Read OK/NG）、ライト正常／異常（Write OK/NG）、アクセスできる期間制限などを制御する。
また、本実施形態においては、暗号アルゴリズムをＰＫＩを例として説明したが、別のアルゴリズムでも適用可能である。
【００６６】
本実施形態によれば、ホスト装置がアクセスできる秘密エリアのアドレスを制御することができる。
また、アクセス制御情報を変更するときにメディアであるメモリ装置を変更する必要がないという利点がある。
【００６７】
上述した本実施の形態に限らず、本発明の要旨を逸脱しない限り、適宜、変更しうることはいうまでもない。
【００６８】
また、以上詳細に説明した方法は、上記手順に応じたプログラムとして形成し、ＣＰＵ等のコンピュータで実行するように構成することも可能である。
また、このようなプログラムは、半導体メモリ、磁気ディスク、光ディスク、フロッピー（登録商標）ディスク等の記録媒体、この記録媒体をセットしたコンピュータによりアクセスし上記プログラムを実行するように構成可能である。
【符号の説明】
【００６９】
１０・・・ホスト装置、１１・・・ＣＰＵ（第１の制御部）、１６・・・ストレージデバイス（記憶デバイス）、２０・・・メモリ装置、２１・・・ＣＰＵ（第２の制御部）、２２・・・メモリ、２３・・・フラッシュメモリ（記憶部）、２３Ｓ・・・機密ストレージエリア、２３１・・・認証局公開鍵情報エリア、２３２−０〜２３２−３・・・秘密データエリア、１００・・・証明書。
【図１】
0005604929.tif 000002
【図２】
0005604929.tif 000003
【図３】
0005604929.tif 000004
【図４】
0005604929.tif 000005
【図５】
0005604929.tif 000006
【図６】
0005604929.tif 000007
【図７】
0005604929.tif 000008
【図８】
0005604929.tif 000009
【図９】
0005604929.tif 000010
【図１０】
0005604929.tif 000011
【図１１】
0005604929.tif 000012
【図１２】
0005604929.tif 000013
【図１３】
0005604929.tif 000014