(57)【特許請求の範囲】
【請求項１】
証明書を検証するための認証局の公開鍵情報、および不正な装置を排除するためのリボケーション情報を格納し、機密性を保証すべきデータを格納する秘密エリアを含む記憶部と、
外部との通信機能を有し、上記記憶部の秘密エリアへのアクセスを少なくとも上記リボケーション情報に応じて制御する制御部と、を有し、
上記制御部は、
外部装置との間でより新しいリボケーション情報を持つ側からより古いリボケーション情報を持つ側へリボケーション情報を通信により渡すリボケーション情報の同期機能を有し、
リボケーション情報の新しさを示す情報の送信要求を受けると、リボケーション情報の新しさを示す情報を送信し、当該送信の応答として外部装置間でいずれのリボケーション情報が新しいか古いか、同じ新しさであるかを示す通知情報に応じた処理を行って、リボケーション情報の同期処理を完了する機能を含み、
リボケーション情報が古い旨の通知情報を受信すると、当該通知情報とともに受信した署名を検証し、
上記通知情報に含まれる上記外部装置のリボケーション情報の新しさを示す情報と送信した新しさを示す情報を比較してリボケーション情報が古いことを確認して、上記記憶部のリボケーション情報を受信したリボケーション情報で更新し、
上記記憶部のリボケーション情報に上記通知情報を送信した外部装置が含まれていないことを確認し、確認がとれると、リボケーション情報の同期処理を完了する
メモリ装置。
【請求項２】
上記制御部は
上記リボケーション情報の同期前に外部装置との間で認証とセッション鍵の共有を行い、リボケーション情報の同期を行うとき、送信するデータに対しセッション鍵で署名を付加する機能を有する
請求項１記載のメモリ装置。
【請求項３】
上記制御部は、
認証局で認証された上記外部装置の証明書情報を受信すると、少なくとも当該外部装置を識別するための情報を取得し、
認証局で認証された自身の証明書に署名を付加して確認情報とともに送信し、送信した確認情報に応答した暗号化された外部装置の署名を検証すると、署名とともに受信した暗号化されたセッション鍵を復号してセッション鍵を共有する
請求項２記載のメモリ装置。
【請求項４】
上記制御部は、
リボケーション情報が同じ新しさである旨の通知情報を受信すると、上記記憶部のリボケーション情報に上記通知情報を送信した外部装置が含まれていないことを確認し、確認がとれると、リボケーション情報の同期処理を完了する
請求項１から３のいずれか一に記載のメモリ装置。
【請求項５】
上記制御部は、
上記通知情報で上記記憶部のリボケーション情報の送信要求を受信すると、当該リボケーション情報の方が新しいものとして、上記記憶部のリボケーション情報に上記通知情報を送信した外部装置が含まれていないことを確認し、確認がとれると、リボケーション情報を送信してリボケーション情報の同期処理を完了する
請求項１から４のいずれか一に記載のメモリ装置。
【請求項６】
上記制御部は、
上記秘密エリアのデータ要求を受信すると、リボケーション情報の同期処理が完了していることを確認して上記秘密エリアのデータを送信する
請求項１から５のいずれか一に記載のメモリ装置。
【請求項７】
上記制御部は、
上記リボケーション情報の同期を行わない限り、上記秘密エリアへのアクセスを禁止する
請求項１から６のいずれか一に記載のメモリ装置。
【請求項８】
少なくとも認証局が発行した証明書情報、証明書を検証するための認証局の公開鍵情報、および不正な装置を排除するためのリボケーション情報を格納する記憶デバイスと、
上記記憶デバイスのアクセスおよび接続される機密性を保証すべきデータを格納する秘密エリアを含む外部メモリ装置との通信機能を含む制御部と、を有し、
上記制御部は、
外部メモリ装置との間でより新しいリボケーション情報を持つ側からより古いリボケーション情報を持つ側へリボケーション情報を通信により渡すリボケーション情報の同期機能を有し、
リボケーション情報の新しさを示す情報の送信要求を送信して、リボケーション情報の新しさを示す情報を受信すると、送信要求の応答として受信した外部メモリ装置間でいずれのリボケーション情報が新しいか古いか、同じ新しさであるかを確認して、当該確認結果を通知情報として送信し、
処理完了通知を受けると、上記記憶デバイスのリボケーション情報に上記通知情報を送信した外部メモリ装置が含まれていないことを確認し、
上記記憶デバイスのリボケーション情報の方が受信したリボケーション情報より新しいことを確認すると、当該通知情報として、上記記憶デバイスのリボケーション情報および署名を送信し、
処理完了通知を受けると、上記記憶デバイスのリボケーション情報に上記通知情報を送信した外部メモリ装置が含まれていないことを確認する
ホスト装置。
【請求項９】
上記制御部は
上記リボケーション情報の同期前に外部メモリ装置との間で認証とセッション鍵の共有を行い、リボケーション情報の同期を行うとき、送信するデータに対しセッション鍵で署名を付加する機能を有する
請求項８記載のホスト装置。
【請求項１０】
上記制御部は、
認証局で認証された証明書情報を送信した応答として、外部メモリ装置の証明書および署名情報を受信すると、当該証明書を検証して、少なくとも当該外部メモリ装置を識別するための情報を取得し、
暗号化したセッション鍵および署名を送信し、送信した応答とて処理完了通知を受けるとセッション鍵が共有されたことを確認する
請求項９記載のホスト装置。
【請求項１１】
上記制御部は、
上記記憶デバイスのリボケーション情報の方が受信したリボケーション情報より古いことを確認すると、当該通知情報として、リボケーション情報の送信要求を送信した応答としてリボケーション情報を受信すると、受信したリボケーション情報を検証して、上記記憶デバイスのリボケーション情報を受信したリボケーション情報で更新し、
上記記憶デバイスのリボケーション情報に上記通知情報を送信した外部メモリ装置が含まれていないことを確認する
請求項８から１０のいずれか一に記載のホスト装置。
【請求項１２】
上記制御部は、
上記リボケーション情報の同期が完了すると、上記秘密エリアへのアクセスを許可される
請求項８から１１のいずれか一に記載のホスト装置。
【請求項１３】
ホスト装置と、
上記ホスト装置と通信可能なメモリ装置と、を有し、
上記ホスト装置は、
少なくとも認証局が発行した証明書情報、証明書を検証するための認証局の公開鍵情報、および不正な装置を排除するためのリボケーション情報を格納する記憶デバイスと、
上記記憶デバイスのアクセスおよび接続される機密性を保証すべきデータを格納する秘密エリアを含む外部メモリ装置との通信機能を含む第１の制御部と、を含み、
上記第１の制御部は、
外部メモリ装置との間でより新しいリボケーション情報を持つ側からより古いリボケーション情報を持つ側へリボケーション情報を通信により渡すリボケーション情報の同期機能を有し、
リボケーション情報の新しさを示す情報の送信要求を送信して、リボケーション情報の新しさを示す情報を受信すると、送信要求の応答として受信した上記メモリ装置間でいずれのリボケーション情報が新しいか古いか、同じ新しさであるかを確認して、当該確認結果を通知情報として送信し、
処理完了通知を受けると、上記記憶デバイスのリボケーション情報に上記通知情報を送信した外部装置が含まれていないことを確認し、
上記記憶デバイスのリボケーション情報の方が受信したリボケーション情報より新しいことを確認すると、当該通知情報として、上記記憶デバイスのリボケーション情報および署名を送信し、
処理完了通知を受けると、上記記憶デバイスのリボケーション情報に上記通知情報を送信したメモリ装置が含まれていないことを確認し、
上記記憶デバイスのリボケーション情報の方が受信したリボケーション情報より古いことを確認すると、当該通知情報として、リボケーション情報の送信要求を送信した応答としてリボケーション情報を受信すると、受信したリボケーション情報を検証して、上記記憶デバイスのリボケーション情報を受信したリボケーション情報で更新し、
上記記憶デバイスのリボケーション情報に上記通知情報を送信したメモリ装置が含まれていないことを確認し、
上記メモリ装置は、
証明書を検証するための認証局の公開鍵情報、および不正な装置を排除するためのリボケーション情報を格納し、機密性を保証すべきデータを格納する秘密エリアを含む記憶部と、
外部との通信機能を有し、上記記憶部の秘密エリアへのアクセスを少なくとも上記リボケーション情報に応じて制御する第２の制御部と、を含み、
上記第２の制御部は、
外部装置との間でより新しいリボケーション情報を持つ側からより古いリボケーション情報を持つ側へリボケーション情報を通信により渡すリボケーション情報の同期機能を有し、
リボケーション情報の新しさを示す情報の送信要求を受けると、リボケーション情報の新しさを示す情報を送信し、当該送信の応答として上記ホスト装置間でいずれのリボケーション情報が新しいか古いか、同じ新しさであるかを示す通知情報に応じた処理を行って、リボケーション情報の同期処理を完了する機能を含み、
リボケーション情報が古い旨の通知情報を受信すると、当該通知情報とともに受信した署名を検証し、
上記通知情報に含まれる上記ホスト装置のリボケーション情報の新しさを示す情報と送信した新しさを示す情報を比較してリボケーション情報が古いことを確認して、上記記憶部のリボケーション情報を受信したリボケーション情報で更新し、
上記記憶部のリボケーション情報に上記通知情報を送信したホスト装置が含まれていないことを確認し、確認がとれると、リボケーション情報の同期処理を完了し、
上記通知情報で上記記憶部のリボケーション情報の送信要求を受信すると、当該リボケーション情報の方が新しいものとして、上記記憶部のリボケーション情報に上記通知情報を送信した外部装置が含まれていないことを確認し、確認がとれると、リボケーション情報を送信してリボケーション情報の同期処理を完了する
メモリシステム。
【請求項１４】
上記第１の制御部および上記第２の制御部は
上記リボケーション情報の同期前に通信先の装置との間で認証とセッション鍵の共有を行い、リボケーション情報の同期を行うとき、送信するデータに対しセッション鍵で署名を付加する機能を有する
請求項１３記載のメモリシステム。
【請求項１５】
上記第１の制御部は、
認証局で認証された証明書情報を送信した応答として、上記メモリ装置の証明書および署名情報を受信すると、当該証明書を検証して、少なくとも上記メモリ装置を識別するための情報を取得し、
暗号化したセッション鍵および署名を送信し、送信した応答とて処理完了通知を受けるとセッション鍵が共有されたことを確認し、
上記第２の制御部は、
認証局で認証された上記外部装置の証明書情報を受信すると、少なくとも当該外部装置を識別するための情報を取得し、
認証局で認証された自身の証明書に署名を付加して確認情報とともに送信し、送信した確認情報に応答した暗号化された外部装置の署名を検証すると、署名とともに受信した暗号化されたセッション鍵を復号してセッション鍵を共有する
請求項１４記載のメモリシステム。
【請求項１６】
上記第２の制御部は、
上記秘密エリアのデータ要求を受信すると、リボケーション情報の同期処理が完了していることを確認して上記秘密エリアのデータを送信する
請求項１３から１５のいずれか一に記載のメモリシステム。
【請求項１７】
上記第１の制御部は、
上記リボケーション情報の同期が完了すると、上記秘密エリアへのアクセスを許可され、
上記第２の制御部は、
上記リボケーション情報の同期を行わない限り、上記秘密エリアへのアクセスを禁止する
請求項１３から１６のいずれか一に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、認証したホスト装置がアクセスできる秘密エリアを含むメモリ装置、ホスト装置、およびメモリシステムに関するものである。
【背景技術】
【０００２】
パーソナルコンピュータ、デジタルスチルカメラ、デジタルビデオカメラ、ビデオ機器、ゲーム機器等のホスト装置の外部記憶装置として、フラッシュメモリを備えたメモリ装置が知られている。
【０００３】
このように各種ホスト装置の外部記憶装置として使用されるメモリ装置には、たとえば、認証したホスト装置のみがアクセスできる秘密エリアが形成される。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、現状では、不正なメモリ装置、不正なホスト装置の排除をいわゆるリボケーション（Ｒｅｖｏｃａｔｉｏｎ）情報の授受を行わなくとも、ホスト装置からメモリ装置の秘密エリアにアクセスすることが技術的に可能である。
リボケーション情報を伝播するためには、メモリ装置とホスト装置の間でより新しいリボケーション情報を持つ側からより古いリボケーション情報を持つ側へリボケーション情報を渡す手段が考えられる。この手段のことを「リボケーション情報の同期」と定義する。
【０００５】
また、現状では、リボーク情報の同期を行うときに、メモリ装置とホスト装置間でやり取りするデータの完全性が保証されていない。
そのため、悪意の第３者によるデータの改ざんを防ぐことができないという不利益がある。
【０００６】
本発明は、メモリ装置とホスト装置間でやり取りするデータの完全性を保証でき、リボケーション情報の同期を悪意の第３者による攻撃から守ることが可能なメモリ装置、ホスト装置、およびメモリシステムを提供することにある。
【課題を解決するための手段】
【０００７】
本発明の第１の観点のメモリ装置は、証明書を検証するための認証局の公開鍵情報、および不正な装置を排除するためのリボケーション情報を格納し、機密性を保証すべきデータを格納する秘密エリアを含む記憶部と、外部との通信機能を有し、上記記憶部の秘密エリアへのアクセスを少なくとも上記リボケーション情報に応じて制御する制御部と、を有し、上記制御部は、外部装置との間でより新しいリボケーション情報を持つ側からより古いリボケーション情報を持つ側へリボケーション情報を通信により渡すリボケーション情報の同期機能を有し、リボケーション情報の新しさを示す情報の送信要求を受けると、リボケーション情報の新しさを示す情報を送信し、当該送信の応答として外部装置間でいずれのリボケーション情報が新しいか古いか、同じ新しさであるかを示す通知情報に応じた処理を行って、リボケーション情報の同期処理を完了する機能を含み、リボケーション情報が古い旨の通知情報を受信すると、当該通知情報とともに受信した署名を検証し、上記通知情報に含まれる上記外部装置のリボケーション情報の新しさを示す情報と送信した新しさを示す情報を比較してリボケーション情報が古いことを確認して、上記記憶部のリボケーション情報を受信したリボケーション情報で更新し、上記記憶部のリボケーション情報に上記通知情報を送信した外部装置が含まれていないことを確認し、確認がとれると、リボケーション情報の同期処理を完了する。
【０００８】
本発明の第２の観点のホスト装置は、少なくとも認証局が発行した証明書情報、証明書を検証するための認証局の公開鍵情報、および不正な装置を排除するためのリボケーション情報を格納する記憶デバイスと、上記記憶デバイスのアクセスおよび接続される機密性を保証すべきデータを格納する秘密エリアを含む外部メモリ装置との通信機能を含む制御部と、を有し、上記制御部は、外部メモリ装置との間でより新しいリボケーション情報を持つ側からより古いリボケーション情報を持つ側へリボケーション情報を通信により渡すリボケーション情報の同期機能を有し、リボケーション情報の新しさを示す情報の送信要求を送信して、リボケーション情報の新しさを示す情報を受信すると、送信要求の応答として受信した外部メモリ装置間でいずれのリボケーション情報が新しいか古いか、同じ新しさであるかを確認して、当該確認結果を通知情報として送信し、処理完了通知を受けると、上記記憶デバイスのリボケーション情報に上記通知情報を送信した外部メモリ装置が含まれていないことを確認し、上記記憶デバイスのリボケーション情報の方が受信したリボケーション情報より新しいことを確認すると、当該通知情報として、上記記憶デバイスのリボケーション情報および署名を送信し、処理完了通知を受けると、上記記憶デバイスのリボケーション情報に上記通知情報を送信した外部メモリ装置が含まれていないことを確認する。
【０００９】
本発明の第３の観点のメモリシステムは、ホスト装置と、上記ホスト装置と通信可能なメモリ装置と、を有し、上記ホスト装置は、少なくとも認証局が発行した証明書情報、証明書を検証するための認証局の公開鍵情報、および不正な装置を排除するためのリボケーション情報を格納する記憶デバイスと、上記記憶デバイスのアクセスおよび接続される機密性を保証すべきデータを格納する秘密エリアを含む外部メモリ装置との通信機能を含む第１の制御部と、を含み、上記第１の制御部は、外部メモリ装置との間でより新しいリボケーション情報を持つ側からより古いリボケーション情報を持つ側へリボケーション情報を通信により渡すリボケーション情報の同期機能を有し、リボケーション情報の新しさを示す情報の送信要求を送信して、リボケーション情報の新しさを示す情報を受信すると、送信要求の応答として受信した上記メモリ装置間でいずれのリボケーション情報が新しいか古いか、同じ新しさであるかを確認して、当該確認結果を通知情報として送信し、処理完了通知を受けると、上記記憶デバイスのリボケーション情報に上記通知情報を送信した外部装置が含まれていないことを確認し、上記記憶デバイスのリボケーション情報の方が受信したリボケーション情報より新しいことを確認すると、当該通知情報として、上記記憶デバイスのリボケーション情報および署名を送信し、処理完了通知を受けると、上記記憶デバイスのリボケーション情報に上記通知情報を送信したメモリ装置が含まれていないことを確認し、上記記憶デバイスのリボケーション情報の方が受信したリボケーション情報より古いことを確認すると、当該通知情報として、リボケーション情報の送信要求を送信した応答としてリボケーション情報を受信すると、受信したリボケーション情報を検証して、上記記憶デバイスのリボケーション情報を受信したリボケーション情報で更新し、上記記憶デバイスのリボケーション情報に上記通知情報を送信したメモリ装置が含まれていないことを確認し、上記メモリ装置は、証明書を検証するための認証局の公開鍵情報、および不正な装置を排除するためのリボケーション情報を格納し、機密性を保証すべきデータを格納する秘密エリアを含む記憶部と、外部との通信機能を有し、上記記憶部の秘密エリアへのアクセスを少なくとも上記リボケーション情報に応じて制御する第２の制御部と、を含み、上記第２の制御部は、外部装置との間でより新しいリボケーション情報を持つ側からより古いリボケーション情報を持つ側へリボケーション情報を通信により渡すリボケーション情報の同期機能を有し、リボケーション情報の新しさを示す情報の送信要求を受けると、リボケーション情報の新しさを示す情報を送信し、当該送信の応答として上記ホスト装置間でいずれのリボケーション情報が新しいか古いか、同じ新しさであるかを示す通知情報に応じた処理を行って、リボケーション情報の同期処理を完了する機能を含み、リボケーション情報が古い旨の通知情報を受信すると、当該通知情報とともに受信した署名を検証し、上記通知情報に含まれる上記ホスト装置のリボケーション情報の新しさを示す情報と送信した新しさを示す情報を比較してリボケーション情報が古いことを確認して、上記記憶部のリボケーション情報を受信したリボケーション情報で更新し、上記記憶部のリボケーション情報に上記通知情報を送信したホスト装置が含まれていないことを確認し、確認がとれると、リボケーション情報の同期処理を完了し、上記通知情報で上記記憶部のリボケーション情報の送信要求を受信すると、当該リボケーション情報の方が新しいものとして、上記記憶部のリボケーション情報に上記通知情報を送信した外部装置が含まれていないことを確認し、確認がとれると、リボケーション情報を送信してリボケーション情報の同期処理を完了する。
【発明の効果】
【００１０】
本発明によれば、メモリ装置とホスト装置間でやり取りするデータの完全性を保証でき、リボケーション情報の同期を悪意の第３者による攻撃から守ることができる。
【図面の簡単な説明】
【００１１】
【図１】本実施形態に適用されるメモリシステムの概略構成を示す図である。
【図２】本実施形態に係るメモリ装置の要部の構成を示すブロック図である。
【図３】本実施形態に係る秘密エリアに書き込まれるデータの例について説明するための図である。
【図４】本実施形態に係るリボケーション情報を示す図である。
【図５】本実施形態に係るメモリ装置の証明書の一例を示す図である。
【図６】本実施形態に係るホスト装置の要部の構成を示すブロック図である。
【図７】本実施形態に係るホスト装置の証明書の一例を示す図である。
【図８】本実施形態に係るメモリ装置の状態遷移図である。
【図９】本実施形態に係る状態別シーケンスの実施可否の一例を示す図である。
【図１０】本実施形態に係るホスト装置とメモリ装置間の認証シーケンスを説明するための図である。
【図１１】本実施形態に係るリボケーション情報同期シーケンスの第１例を説明するための図である。
【図１２】本実施形態に係るリボケーション情報同期シーケンスの第２例を説明するための図である。
【図１３】本実施形態に係るリボケーション情報同期シーケンスの第３例を説明するための図である。
【図１４】本実施形態に係る秘密エリアのデータ取得シーケンスを説明するための図である。
【図１５】本実施形態に係るメモリ装置が主体のリボケーション情報同期シーケンスの第１例を説明するための図である。
【図１６】本実施形態に係るメモリ装置が主体のリボケーション情報同期シーケンスの第２例を説明するための図である。
【図１７】本実施形態に係るメモリ装置が主体のリボケーション情報同期シーケンスの第３例を説明するための図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態を図面に関連付けて説明する。
なお、説明は次の順序で行う。
１．メモリシステムの全体の概略構成
２．メモリ装置の要部の構成例
３．メモリ装置の証明書の例
４．ホスト装置の要部の構成例
５．ホスト装置の証明書の例
６．ホスト装置とメモリ装置間の通信シーケンス
７．メモリ装置の状態
【００１３】
＜１．メモリシステムの全体の概略構成＞
図１は、本発明の実施形態に適用されるメモリシステムの概略構成を示す図である。
【００１４】
図１に示すように、このメモリシステムは、ホスト装置１０と、ホスト装置１０に着脱自在に装着可能なメモリ装置２０を主構成要素として有している。本実施形態において、メモリ装置２０は不揮発性メモリであるフラッシュメモリを有する。
【００１５】
本実施形態のメモリシステムは、不正なホスト装置１０、不正なメモリ装置２０の排除をリボケーション情報の機器間伝播によって実現するシステムとして構成される。
リボケーション情報を伝播するためには、メモリ装置２０とホスト装置１０の間でより新しいリボケーション情報を持つ側からより古いリボケーション情報を持つ側へリボケーション情報を渡す機能が必要である。本実施形態においても、この機能のことを「リボケーション情報の同期」と定義する。
本実施形態のメモリシステムにおいては、リボケーション情報の同期を悪意の第３者による攻撃から守る構成を有する、基本的に以下の２つの特徴を有する。
第１は、リボケーション情報の同期を行わない限り、ホスト装置１０からメモリ装置２０の秘密エリアへアクセスできない。
第２は、リボケーション情報の同期前にメモリ装置２０とホスト装置１０間で認証とセッション鍵の共有を行い、リボケーション情報の同期を行う時にメモリ装置２０とホスト装置１０間でやり取りするデータに対しセッション鍵で署名を付加する。
【００１６】
ホスト装置１０は、パーソナルコンピュータ、デジタルスチルカメラ、デジタルビデオカメラ、ビデオ機器、ゲーム機器等の電子機器により構成される。
ホスト装置１０は、第１の制御部としてのＣＰＵ１１、メモリ１２、ディスプレイ１３、入出力処理（Ｉ／Ｏ）部１４および外部メモリＩ／Ｆ（インタフェース）１５を備える。
また、ホスト装置１０は、ユーザデータや秘密性の高いデータを記憶するストレージデバイス１６を有する。このストレージデバイス１６については、後で説明する。
ＣＰＵ１１は、メモリ１２、ディスプレイ１３、Ｉ／Ｏ部１４、外部メモリＩ／Ｆ１５、およびストレージデバイス１６とバス１７を介し相互に接続されている。
メモリ１２は、プログラム格納用のＲＯＭ、作業用メモリであるＲＡＭ等を有する。外部メモリＩ／Ｆ１５は、ＣＰＵ１１の制御命令に従ってメモリ装置２０との間でデータを送受する。
【００１７】
メモリ装置２０は、第２の制御部としてのＣＰＵ２１、メモリ２２、フラッシュメモリ２３およびホストＩ／Ｆ２４を備える。
ＣＰＵ２１は、メモリ２２、フラッシュメモリ２３およびホストＩ／Ｆ２４とバス２５を介し相互に接続されている。メモリ２２は、プログラム格納用のＲＯＭ、作業用メモリであるＲＡＭ等を有する。
フラッシュメモリ２３は、たとえば、ＮＯＲ型またはＮＡＮＤ型のフラッシュメモリ（不揮発性メモリ）からなる。
ホストＩ／Ｆ２４は、ＣＰＵ２１の制御命令に従ってホスト装置１０との間でデータを送受する。
【００１８】
＜２．メモリ装置の要部の構成例＞
まず、メモリ装置２０のより具体的な構成について説明する。
図２は、図１に示されるメモリ装置２０の要部の構成例を示すブロック図である。
【００１９】
メモリ装置２０は、図２に示されるように、たとえば板状のメモリカード等に相当し、ホスト装置１０に装着されているとき、ホスト装置１０から認証を伴うアクセスが行われ、データの読み出しや書き込みが行われる。
【００２０】
本実施形態のメモリ装置２０は、公開鍵暗号(ＰＫＩ)によってホストを認証する機能を有する。
リボケーション情報の同期を行わない限り、ホスト装置１０からメモリ装置２０の秘密エリアへアクセスできない。
メモリ装置２０は、リボケーション情報の同期前にホスト装置１０間で認証とセッション鍵の共有を行い、リボケーション情報の同期を行う時にホスト装置１０間でやり取りするデータに対しセッション鍵で署名を付加する。
【００２１】
本実施形態のメモリ装置２０におけるフラッシュメモリ２３は、ユーザデータがリード（読み出し）、ライト（書き込み）が行われるユーザデータエリア２３Ｕ、および完全性、機密性が保証される機密ストレージエリア２３Ｓに区分けされている。
【００２２】
機密ストレージエリア２３Ｓには、機密性、完全性を保証すべきデータを格納するための秘密エリア２３１、リボケーション情報が記憶されるリボケーション情報エリア２３２を含む。
機密ストレージエリア２３Ｓは、認証局より発行されたメモリ装置２０のＲＳＡ秘密鍵が記憶されるエリア２３３、認証局より発行されたメモリ装置２０のＲＳＡ公開鍵証明書が記憶されるメモリ装置公開鍵証明書エリア２３４を含む。
公開鍵証明書は、認証局のＲＳＡ秘密鍵で署名が付加され、メモリ装置２０のＩＤを含む。
機密ストレージエリア２３Ｓは、ホスト装置１０の公開鍵証明書を検証するための認証局公開鍵情報エリア２３５を含む。
【００２３】
秘密エリア２３１は、たとえば複数の秘密データエリアに区分けされており、＃０〜＃３のようにアドレスが割り振られている。
【００２４】
この機密ストレージエリア２３Ｓの秘密エリア２３１は、メモリ装置２０と認証したホスト装置１０のみがアクセスできるエリアで、図３に示すように、アプリケーション毎に書くべきエリアが区分けされている。
図３の例では、アドレス＃０が割り振られた秘密データエリア２３１−０にはビデオ機器用データが、アドレス＃１が割り振られた秘密データエリア２３１−１にはゲーム機器
ゲーム用データが書き込まれている。また、アドレス＃２が割り振られた秘密データエリア２３１−２には電子本（ｅＢＯＯＫ）用データが書き込まれる。
【００２５】
このように秘密エリア２３１に書き込まれるデータは、たとえば改ざんされると困るデータや見られると困るデータが保存される。
改ざんされると困るデータとしては、例示すると、コンテンツの権利情報（視聴期限、再生回数）や配信サービスのユーザＩＤなどがあげられる。
見られると困るデータとしては、例示すると、暗号化されたコンテンツを復号するための鍵、配信サービスのパスワード、クレジットカードの番号などがあげられる。
【００２６】
図４は、本実施形態に係るリボケーション情報を示す図である。
【００２７】
リボケーション情報ＲＶＫは、リボーク対象のメモリ装置のメモリ装置ＩＤ（＃０〜＃６０）と、リボーク対象のホスト装置のホスト装置ＩＤ（＃０〜＃１００）が書かれているリストＬＳＴ１，ＬＳＴ２として形成される。メモリ装置ＩＤ（＃０〜＃６０）はメモリ装置を識別するための１２バイトの情報である。ホスト装置ＩＤ（＃０〜＃１００）はホスト装置を識別するための６バイトの情報である。
リボケーション情報ＲＶＫにはバージョン番号ＶＳＮが付加されており、バージョン番号ＶＳＮが大きいほど新しいリボケーション情報である。
リボケーション情報ＲＶＫは認証局が発行する。
リボケーション情報ＲＶＫには認証局のＲＳＡ秘密鍵で署名ＳＧＮが付加されている。  メモリ装置２０およびホスト装置１０は、認証局のＲＳＡ公開鍵で署名を検証できる。
【００２８】
＜３．メモリ装置２０の証明書の例＞
図５は、本実施形態に係るメモリ装置２０の証明書の一例を示す図である。
【００２９】
図５の証明書（Certificate)２００は、タイプ(TYPE)エリア２０１、メディア(Media)ＩＤエリア２０２、メディア公開鍵(Media Public Key)エリア２０３、および署名(Signature)エリア２０４を有する。
【００３０】
タイプ(TYPE)エリア２０１は、２バイトで形成され、証明書の種類を表す値が格納される。具体的には、0002h(= Media)が格納される。
【００３１】
メディア(Media)ＩＤエリア２０２は、１６バイトで形成され、メモリ装置２０のメディアＩＤが格納される。
【００３２】
メディア公開鍵(Media Public Key)エリア２０３は、５６バイトで形成され、メディア装置２０の認証用公開鍵が格納される。
【００３３】
署名(Signature)エリア２０４は、５６バイトで形成され、秘密鍵による署名が格納される。
たとえば、署名生成時はSignatureを以下の計算式で求める。メモリ装置２０の証明書２００の[00h - 57h]をDとする。
ECDSA_Sign(LApriv, D )
署名検証時は以下の計算式で検証する。
ECDSA_Verify (LApub, Signature, D )
【００３４】
メモリ装置２０の制御部としてのＣＰＵ２１は、ホスト装置１０との間でリボケーション情報ＲＶＫの同期を行う機能を有する。
ＣＰＵ２１は、リボケーション情報の同期前にホスト装置１０間で認証とセッション鍵の共有を行い、リボケーション情報の同期を行う時にホスト装置１０間でやり取りするデータに対しセッション鍵で署名を付加する機能を有する。
このような機能により、ホスト装置１０は、リボケーション情報ＲＶＫの同期なしにメモリ装置２０の秘密データにアクセスできないので、第３者がリボケーション情報の同期をブロックすると秘密データの取得に失敗する。
リボケーション情報ＲＶＫの同期中にやり取りされるデータは、認証で得たセッション鍵による署名で完全性が保証される。これにより第３者によるデータのすり替えを検知できる。
必ず認証と対でリボケーション情報ＲＶＫの同期を行うため、リボケーション情報が伝播しやすい。
ＣＰＵ２１は、ホスト装置１０による公開鍵証明書を認証し、認証されると、公開鍵証明書に付加された属性情報を識別し、ホスト装置１０がアクセス可能なメディア内の秘密エリアを制限する機能を有する。
このように、本実施形態においては、ホスト装置１０とメモリ装置２０の認証には公開鍵暗号を利用する。
ＣＰＵ２１は、その認証を行う機能を有している。
【００３５】
第２の制御部としてのＣＰＵ２１は、ホスト装置１０との間でより新しいリボケーション情報を持つ側からより古いリボケーション情報を持つ側へリボケーション情報を通信により渡すリボケーション情報の同期機能を有する。
そして、ＣＰＵ２１は、リボケーション情報の同期を行わない限り、ホスト装置１０による秘密エリアへのアクセスを禁止する機能を有する。
ＣＰＵ２１は、リボケーション情報の同期前にホスト装置１０との間で認証とセッション鍵の共有を行い、リボケーション情報の同期を行うとき、送信するデータに対しセッション鍵で署名を付加する機能を有する。
ＣＰＵ２１は、認証局で認証されたホスト装置１０の証明書情報を受信すると、少なくともホスト装置１０を識別するための情報であるＩＤを取得し、認証局で認証された自身の証明書に署名を付加して確認情報とともに送信する。
ＣＰＵ２１は、送信した確認情報に応答した暗号化されたホスト装置１０の署名を検証すると、署名とともに受信した暗号化されたセッション鍵を復号してセッション鍵を共有する。
【００３６】
ＣＰＵ２１は、リボケーション情報の新しさを示す情報、本実施形態ではバージョン情報の送信要求を受けると、リボケーション情報の新しさを示す情報を送信する機能を有する。
ＣＰＵ２１は、この送信の応答としてホスト装置１０間でいずれのリボケーション情報が新しいか古いか、同じ新しさであるかを示す通知情報に応じた処理を行って、リボケーション情報の同期処理を完了する。
具体的には、ＣＰＵ２１は、リボケーション情報が同じ新しさである旨の通知情報を受信すると、フラッシュメモリ２３のリボケーション情報に通知情報を送信したホスト装置１０が含まれていないことを確認する。そして、ＣＰＵ２１は、確認がとれると、リボケーション情報の同期処理を完了する。
【００３７】
ＣＰＵ２１は、リボケーション情報が古い旨の通知情報を受信すると、通知情報とともに受信した署名を検証し、通知情報に含まれるホスト装置１０のリボケーション情報の新しさを示す情報と送信した新しさを示す情報を比較する。
ＣＰＵ２１は、自身のリボケーション情報が古いことを確認して、フラッシュメモリ２３のリボケーション情報を受信したリボケーション情報で更新する。
そして、ＣＰＵ２１は、フラッシュメモリ２３のリボケーション情報に通知情報を送信したホスト装置１０が含まれていないことを確認し、確認がとれると、リボケーション情報の同期処理を完了する
【００３８】
ＣＰＵ２１は、ホスト装置１０からの通知情報でフラッシュメモリ２３のリボケーション情報の送信要求を受信すると、自身のリボケーション情報の方が新しいものとして認識する。
そしてＣＰＵ２１は、フラッシュメモリ２３のリボケーション情報に通知情報を送信した外部装置が含まれていないことを確認し、確認がとれると、リボケーション情報をホスト装置１０に送信してリボケーション情報の同期処理を完了する。
【００３９】
ＣＰＵ２１は、秘密エリアのデータ要求を受信すると、リボケーション情報の同期処理が完了していることを確認して秘密エリアのデータを送信する機能を有する。
【００４０】
＜４．ホスト装置の要部の構成例＞
次に、ホスト装置１０のより具体的な構成について説明する。
図６は、図１に示されるホスト装置１０の要部の構成例を示すブロック図である。
【００４１】
図６のホスト装置１０は、第１の制御部としてのＣＰＵ１１、メモリ１２（ＲＡＭ）、およびストレージデバイス１６が示されている。
【００４２】
本実施形態のホスト装置１０におけるストレージデバイス１６は、ユーザデータがリード（読み出し）、ライト（書き込み）が行われるユーザデータエリア１６Ｕ、および完全性、機密性が保証される機密ストレージエリア１６Ｓに区分けされている。
【００４３】
機密ストレージエリア１６Ｓには、リボケーション情報が記憶されるリボケーション情報エリア１６１、ホスト装置１０の秘密鍵情報が記憶されたホスト秘密鍵情報エリア１６２を含む。
機密ストレージエリア１６Ｓは、認証局より発行されたホスト装置１０のＲＳＡ公開鍵証明書が記憶されるホスト装置公開鍵証明書エリア１６３を含む。
公開鍵証明書は、認証局のＲＳＡ秘密鍵で署名が付加されており、ホスト装置１０のＩＤを含む。
機密ストレージエリア１６Ｓは、認証局が発行したホスト装置１０のＲＳＡ公開鍵情報が記憶されたホスト公開鍵情報エリア１６４を含む。
【００４４】
ホスト装置１０の公開鍵証明書には、基本的に以下のデータが記載してある。
ホスト装置１０の公開鍵、
ホスト装置１０がアクセスできるメモリ装置２０内の秘密データのアドレス(＃０〜＃３など)、
認証局の秘密鍵による署名、等である。
【００４５】
＜５．ホスト装置の証明書の例＞
図７は、本実施形態に係るホスト装置１０の証明書の一例を示す図である。
【００４６】
図７の証明書（(Host Certificate)１００は、タイプ(TYPE)エリア１０１、属性情報を含むＰＡＤアクセス（Protected Area Data Access：保護されるエリアデータアクセス）エリア１０２、およびホスト(Host)ＩＤエリア１０３を有する。
証明書１００は、ホスト公開鍵(Host Public Key)エリア１０４、および署名(Signature)エリア１０５を有する。
【００４７】
タイプ(TYPE)エリア１０１は、２バイトで形成され、証明書の種類を表す値が格納される。具体的には、0001h(= Host)が格納される。
【００４８】
ホスト(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)を使う。
【００６３】
図１０は、本実施形態に係るホスト装置とメモリ装置間の認証シーケンスを説明するための図である。
【００６４】
［ステップＳＴ１１］
ステップＳＴ１１において、ホスト装置１０は数十あるいは数百ビットの乱数Ｈを生成する。
ホスト装置１０は、初期状態ＳＴ０にあるメモリ装置２０に乱数Ｈとホスト証明書（Host Certificate）Ｈcertを送信する(Challenge by Host)。
【００６５】
［ステップＳＴ１２］
ステップＳＴ１２において、メモリ装置２０はホスト証明書Ｈcertのタイプ（TYPE）が0001hであることを検証する。メモリ装置２０は、ホスト証明書Ｈcertの署名を検証する。
検証に失敗した場合はプロトコルを中断する。
検証すると、メモリ装置２０は、ホスト装置１０の公開鍵Ｈpubとホスト装置ＩＤを取得する。
メモリ装置２０は数十あるいは数百ビットの乱数Ｍを生成する。
メモリ装置２０は、署名Ｍｍ＝ＲＳＡ_Sign（Mpriv, H）を生成し、公開鍵証明書Ｍcertに記録して、この公開鍵証明書Ｍcertおよび乱数Ｍをホスト装置１０に送信する。
【００６６】
［ステップＳＴ１３］
ステップＳＴ１３において、ホスト装置１０はメモリ装置２０から乱数Ｍ、メモリ証明書Ｍcertを受け取る(Challenge and Response by Memory)。
ホスト装置１０は証明書Ｍcertのタイプ（TYPE）が0002hであることを検証する。検証に失敗した場合はプロトコルを中断する。
ホスト装置１０は、証明書Ｍcertの署名を検証する。署名の検証に失敗した場合はプロトコルを中断する。
ホスト装置１０は、署名Ｍｍを公開鍵ＲＳＡ_Verify(Mpub, Mm, H)で検証する。
検証すると、ホスト装置１０は数十あるいは数百ビットの乱数を生成し、セッション鍵とする。
ホスト装置１０は、メモリ装置２０の暗号化セッション鍵ＥＫ= ＲＳＡ_Enc（Mpub, K）を生成し、署名Ｈｍ＝ＲＳＡ_Sign（Hpriv, M || EK)を生成する。
ホスト装置１０は、生成した暗号化セッション鍵ＥＫと署名Ｈｍをメモリ装置２０に送信する。
【００６７】
［ステップＳＴ１４］
ステップＳＴ１４において、メモリ装置２０は、公開鍵ＲＳＡ_Verify（Hpub, Hm, M || EK)で受信した署名Ｈｍを検証する。検証に失敗した場合はプロトコルを中断する。
メモリ装置２０は、暗号化セッション鍵ＥＫを秘密鍵ＲＳＡ_Dec(Mpriv, K)で復号し、セッション鍵Ｋを取得を取得する。
これにより、メモリ装置２０は、初期状態ＳＴ０からセッション鍵共有状態ＳＴ１に遷移する。
そして、メモリ装置２０は、ホスト装置１０に対して処理完了通知を行う。
このように、認証がとれると、リボケーション情報同期シーケンスが行われる。
【００６８】
図１１は、本実施形態に係るリボケーション情報同期シーケンスの第１例を説明するための図である。
この第１例は、ホスト装置１０とメモリ装置２０のリボケーション情報ＲＶＫが同じ場合の同期シーケンスである。
【００６９】
［ステップＳＴ２１］
ステップＳＴ２１において、ホスト装置１０は、メモリ装置２０に対してリボケーション情報のバージョン要求を行う。
【００７０】
［ステップＳＴ２２］
ステップＳＴ２２において、メモリ装置２０はバージョン要求に応答してＭＡＣ値Ｍｍ＝ＭＡＣ（K, Mver）を生成する。
なお、Ｍverはメモリ装置２０が持つリボケーション情報のバージョン情報を示す。
メモリ装置２０は、リボケーション情報のバージョンＭverおよびＭＡＣ値をホスト装置１０に送信する。
【００７１】
［ステップＳＴ２３］
ステップＳＴ２３において、ホスト装置１０は受信したＭＡＣ値ＭｍをＭＡＣ（K, Mver）で検証する。ここでは、ホスト装置１０がホスト装置１０自身が持つリボケーション情報のバージョンＨverとメモリ装置２０のリボケーション情報のバージョンＭverを比較する。
この例では、ホスト装置１０とメモリ装置２０のリボケーション情報ＲＶＫが同じであることから、ホスト装置１０は、Ｈver＝Ｍverの比較結果を得る。
ホスト装置１０は、リボケーション情報のバージョンが同じであることをメモリ装置２０に送信する。
【００７２】
［ステップＳＴ２４］
ステップＳＴ２４において、リボケーション情報のバージョンが同じであることの情報を受信して、メモリ装置２０はリボケーション情報内にホスト装置１０のホスト装置ＩＤが含まれていないことを確認する。
そして、メモリ装置２０は、セッション鍵共有状態ＳＴ１からリボケーション情報の同期完了状態ＳＴ２に遷移する。
そして、メモリ装置２０は、ホスト装置１０に対して処理完了通知を行う。
【００７３】
［ステップＳＴ２５］
ステップＳＴ２５において、処理完了通知を受信して、ホスト装置１０はリボケーション情報内にメモリ装置２０のメモリ装置ＩＤが含まれていないことを確認する。
【００７４】
図１２は、本実施形態に係るリボケーション情報同期シーケンスの第２例を説明するための図である。
この第２例は、ホスト装置１０のリボケーション情報ＲＶＫの方がメモリ装置２０のリボケーション情報より新しい場合の同期シーケンスである。
【００７５】
［ステップＳＴ３１］
ステップＳＴ３１において、ホスト装置１０は、メモリ装置２０に対してリボケーション情報のバージョン要求を行う。
【００７６】
［ステップＳＴ３２］
ステップＳＴ３２において、メモリ装置２０はバージョン要求に応答してＭＡＣ値Ｍｍ＝ＭＡＣ（K, Mver）を生成する。
なお、Ｍverはメモリ装置２０が持つリボケーション情報のバージョン情報を示す。
メモリ装置２０は、リボケーション情報のバージョンＭverおよびＭＡＣ値をホスト装置１０に送信する。
【００７７】
［ステップＳＴ３３］
ステップＳＴ３３において、ホスト装置１０は受信したＭＡＣ値ＭｍをＭＡＣ（K, Mver）で検証する。ここでは、ホスト装置１０がホスト装置１０自身が持つリボケーション情報のバージョンＨverとメモリ装置２０のリボケーション情報のバージョンＭverを比較する。
この例では、ホスト装置１０のリボケーション情報ＲＶＫの方が新しいことから、ホスト装置１０は、Ｈver＞Ｍverの比較結果を得る。
ホスト装置１０は、ＭＡＣ値Ｈｍ＝ＭＡＣ(K, Hver)を生成し、ホスト装置１０のリボケーション情報およびＭＡＣ値Ｈｍ＝ＭＡＣ(K, Hver)をメモリ装置２０に送信する。
【００７８】
［ステップＳＴ３４］
ステップＳＴ３４において、メモリ装置２０は受信したＭＡＣ値ＨｍをＭＡＣ（K, Hver）で検証する。
メモリ装置２０は、Ｈver＞Ｍverであることを確認する。すなわち、メモリ装置２０は、ホスト装置１０のリボケーション情報のバージョンＨverの方がメモリ装置２０自身のリボケーション情報のバージョンＭverより新しいことを確認する。
メモリ装置２０は、ホスト装置１０から送信されてきたホスト装置１０のリボケーション情報を公開鍵ＬＡpubで検証し、検証すると、リボケーション情報を受信したホスト装置１０のリボケーション情報で更新する。
メモリ装置２０はリボケーション情報内にホスト装置１０のホスト装置ＩＤが含まれていないことを確認する。
そして、メモリ装置２０は、セッション鍵共有状態ＳＴ１からリボケーション情報の同期完了状態ＳＴ２に遷移する。
そして、メモリ装置２０は、ホスト装置１０に対して処理完了通知を行う。
【００７９】
［ステップＳＴ３５］
ステップＳＴ３５において、処理完了通知を受信して、ホスト装置１０はリボケーション情報内にメモリ装置２０のメモリ装置ＩＤが含まれていないことを確認する。
【００８０】
図１３は、本実施形態に係るリボケーション情報同期シーケンスの第３例を説明するための図である。
この第３例は、メモリ装置２０のリボケーション情報ＲＶＫの方がホスト装置１０のリボケーション情報より新しい場合の同期シーケンスである。
【００８１】
［ステップＳＴ４１］
ステップＳＴ４１において、ホスト装置１０は、メモリ装置２０に対してリボケーション情報のバージョン要求を行う。
【００８２】
［ステップＳＴ４２］
ステップＳＴ４２において、メモリ装置２０はバージョン要求に応答してＭＡＣ値Ｍｍ＝ＭＡＣ（K, Mver）を生成する。
なお、Ｍverはメモリ装置２０が持つリボケーション情報のバージョン情報を示す。
メモリ装置２０は、リボケーション情報のバージョンＭverおよびＭＡＣ値をホスト装置１０に送信する。
【００８３】
［ステップＳＴ４３］
ステップＳＴ４３において、ホスト装置１０は受信したＭＡＣ値ＭｍをＭＡＣ（K, Mver）で検証する。ここでは、ホスト装置１０がホスト装置１０自身が持つリボケーション情報のバージョンＨverとメモリ装置２０のリボケーション情報のバージョンＭverを比較する。
この例では、メモリ装置２０のリボケーション情報ＲＶＫの方が新しいことから、ホスト装置１０は、Ｈver＜Ｍverの比較結果を得る。
ホスト装置１０は、メモリ装置２０に、メモリ装置２０のリボケーション情報を送信するように要求を行う。
【００８４】
［ステップＳＴ４４］
ステップＳＴ４４において、メモリ装置２０は自身のリボケーション情報に要求を出したホスト装置のホスト装置ＩＤが含まれていないことを確認する。
そして、メモリ装置２０は、セッション鍵共有状態ＳＴ１からリボケーション情報の同期完了状態ＳＴ２に遷移する。
メモリ装置２０は、ホスト装置１０に対してリボケーション情報を送信する。
【００８５】
［ステップＳＴ４５］
ステップＳＴ４５において、ホスト装置１０は受信したメモリ装置２０のリボケーション情報を公開鍵ＬＡpubで検証し、検証すると、リボケーション情報を受信したメモリ装置２０のリボケーション情報で更新する。
そして、ホスト装置１０はリボケーション情報内にメモリ装置２０のメモリ装置ＩＤが含まれていないことを確認する。
【００８６】
次に、秘密エリアのデータ取得シーケンスについて説明する。
図１４は、本実施形態に係る秘密エリアのデータ取得シーケンスを説明するための図である。
【００８７】
［ステップＳＴ５１］
ステップＳＴ５１において、ホスト装置１０がメモリ装置２０の秘密エリアのデータを要求する。
【００８８】
［ステップＳＴ５２］
ステップＳＴ５２において、ホスト装置１０からの秘密エリアのデータの要求を受けると、メモリ装置２０は、状態がリボケーション情報の同期完了状態ＳＴ２であることを確認する。
同期完了状態ＳＴ２である場合には、メモリ装置２０はリボケーション情報の同期処理が完了しているものとして、秘密エリアのデータをホスト装置１０に送信する。
同期完了状態ＳＴ２でない場合には、メモリ装置２０はリボケーション情報の同期処理が完了していないものとして、秘密エリアのデータをホスト装置１０に送信しないでエラー処理に入る。
【００８９】
なお、以上説明したリボケーション情報同期シーケンスにおいては、ホスト装置１０が主体にリボケーション情報のバージョン要求を行う場合を例に説明した。
本発明は、リボケーション情報同期シーケンスにおいては、メモリ装置２０が主体にリボケーション情報のバージョン要求を行う場合にも適用可能である。
【００９０】
図１５は、本実施形態に係るメモリ装置が主体のリボケーション情報同期シーケンスの第１例を説明するための図である。
この第１例は、ホスト装置１０とメモリ装置２０のリボケーション情報ＲＶＫが同じ場合の同期シーケンスである。
【００９１】
［ステップＳＴ６１］
ステップＳＴ６１において、メモリ装置２０は、ホスト装置１０に対してリボケーション情報のバージョン要求を行う。
【００９２】
［ステップＳＴ６２］
ステップＳＴ６２において、ホスト装置１０はバージョン要求に応答してＭＡＣ値Ｈｍ＝ＭＡＣ（K, Hver）を生成する。
なお、Ｈverはホスト装置１０が持つリボケーション情報のバージョン情報を示す。
ホスト装置１０は、リボケーション情報のバージョンＨverおよびＭＡＣ値をメモリ装置２０に送信する。
【００９３】
［ステップＳＴ６３］
ステップＳＴ６３において、メモリ装置２０は受信したＭＡＣ値ＨｍをＭＡＣ（K, Hver）で検証する。ここでは、メモリ装置２０がメモリ装置２０自身が持つリボケーション情報のバージョンＭverとホスト装置１０のリボケーション情報のバージョンＨverを比較する。
この例では、メモリ装置２０とホスト装置１０のリボケーション情報ＲＶＫが同じであることから、ホスト装置１０は、Ｍver＝Ｈverの比較結果を得る。
メモリ装置２０は、リボケーション情報のバージョンが同じであることをホスト装置１０に送信する。
【００９４】
［ステップＳＴ６４］
ステップＳＴ６４において、リボケーション情報のバージョンが同じであることの情報を受信して、ホスト装置１０はリボケーション情報内にメモリ装置２０のメモリ装置ＩＤが含まれていないことを確認する。
そして、ホスト装置１０は、メモリ装置２０に対して処理完了通知を行う。
【００９５】
［ステップＳＴ６５］
ステップＳＴ６５において、処理完了通知を受信して、メモリ装置２０はリボケーション情報内にホスト装置１０のホスト装置ＩＤが含まれていないことを確認する。
そして、メモリ装置２０は、セッション鍵共有状態ＳＴ１からリボケーション情報の同期完了状態ＳＴ２に遷移する。
【００９６】
図１６は、本実施形態に係るメモリ装置が主体のリボケーション情報同期シーケンスの第２例を説明するための図である。
この第２例は、ホスト装置１０のリボケーション情報ＲＶＫの方がメモリ装置２０のリボケーション情報より新しい場合の同期シーケンスである。
【００９７】
［ステップＳＴ７１］
ステップＳＴ７１において、メモリ装置２０は、ホスト装置１０に対してリボケーション情報のバージョン要求を行う。
【００９８】
［ステップＳＴ７２］
ステップＳＴ７２において、ホスト装置１０はバージョン要求に応答してＭＡＣ値Ｈｍ＝ＭＡＣ（K, Hver）を生成する。
なお、Ｈverはホスト装置１０が持つリボケーション情報のバージョン情報を示す。
ホスト装置１０は、リボケーション情報のバージョンＨverおよびＭＡＣ値をメモリ装置２０に送信する。
【００９９】
［ステップＳＴ７３］
ステップＳＴ７３において、メモリ装置２０は受信したＭＡＣ値ＨｍをＭＡＣ（K, Hver）で検証する。ここでは、メモリ装置２０がメモリ装置２０自身が持つリボケーション情報のバージョンＭverとホスト装置１０のリボケーション情報のバージョンＨverを比較する。
この例では、ホスト装置１０のリボケーション情報ＲＶＫの方が新しいことから、メモリ装置２０は、Ｈver＞Ｍverの比較結果を得る。
メモリ装置２０は、ホスト装置１０に、ホスト装置１０のリボケーション情報を送信するように要求を行う。
【０１００】
［ステップＳＴ７４］
ステップＳＴ７４において、ホスト装置１０は自身のリボケーション情報の要求を出したメモリ装置のメモリ装置ＩＤが含まれていないことを確認する。
ホスト装置１０は、メモリ装置２０に対してリボケーション情報を送信する。
【０１０１】
［ステップＳＴ７５］
ステップＳＴ７５において、メモリ装置２０は受信したホスト装置１０のリボケーション情報を公開鍵ＬＡpubで検証し、検証すると、リボケーション情報を受信したホスト装置１０のリボケーション情報で更新する。
そして、メモリ装置２０はリボケーション情報内にホスト装置１０のホスト装置ＩＤが含まれていないことを確認する。
そして、メモリ装置２０は、セッション鍵共有状態ＳＴ１からリボケーション情報の同期完了状態ＳＴ２に遷移する。
【０１０２】
図１７は、本実施形態に係るメモリ装置が主体のリボケーション情報同期シーケンスの第３例を説明するための図である。
この第３例は、メモリ装置２０のリボケーション情報ＲＶＫの方がホスト装置１０のリボケーション情報より新しい場合の同期シーケンスである。
【０１０３】
［ステップＳＴ８１］
ステップＳＴ８１において、メモリ装置２０は、ホスト装置１０に対してリボケーション情報のバージョン要求を行う。
【０１０４】
［ステップＳＴ８２］
ステップＳＴ８２において、ホスト装置１０はバージョン要求に応答してＭＡＣ値Ｈｍ＝ＭＡＣ（K, Hver）を生成する。
なお、Ｈverはホスト装置１０が持つリボケーション情報のバージョン情報を示す。
ホスト装置１０は、リボケーション情報のバージョンＨverおよびＭＡＣ値をホスト装置１０に送信する。
【０１０５】
［ステップＳＴ８３］
ステップＳＴ８３において、メモリ装置２０は受信したＭＡＣ値ＨｍをＭＡＣ（K, Hver）で検証する。ここでは、メモリ装置２０がメモリ装置２０自身が持つリボケーション情報のバージョンＭverとホスト装置１０のリボケーション情報のバージョンＨverを比較する。
この例では、メモリ装置２０のリボケーション情報ＲＶＫの方が新しいことから、メモリ装置２０は、Ｍver＞Ｈverの比較結果を得る。
メモリ装置２０は、ＭＡＣ値Ｍｍ＝ＭＡＣ(K, Mver)を生成し、メモリ装置２０のリボケーション情報およびＭＡＣ値Ｍｍ＝ＭＡＣ(K, Mver)をホスト装置１０に送信する。
【０１０６】
［ステップＳＴ８４］
ステップＳＴ８４において、ホスト装置１０は受信したＭＡＣ値ＭｍをＭＡＣ（K, Mver）で検証する。
ホスト装置１０は、Ｍver＞Ｈverであることを確認する。すなわち、ホスト装置１０は、メモリ装置２０のリボケーション情報のバージョンＭverの方がホスト装置１０自身のリボケーション情報のバージョンＨverより新しいことを確認する。
ホスト装置１０は、メモリ装置２０から送信されてきたメモリ装置２０のリボケーション情報を公開鍵ＬＡpubで検証し、検証すると、リボケーション情報を受信したメモリ装置２０のリボケーション情報で更新する。
ホスト装置１０はリボケーション情報内にメモリ装置２０のメモリ装置ＩＤが含まれていないことを確認する。
そして、ホスト装置１０は、メモリ装置２０に対して処理完了通知を行う。
【０１０７】
［ステップＳＴ８５］
ステップＳＴ８５において、処理完了通知を受信して、メモリ装置２０はリボケーション情報内にホスト装置１０のホスト装置ＩＤが含まれていないことを確認する。
そして、メモリ装置２０は、セッション鍵共有状態ＳＴ１からリボケーション情報の同期完了状態ＳＴ２に遷移する。
【０１０８】
以上、本実施形態を詳細に説明したが、以下の構成を採用することも可能である。
認証方式はＲＳＡを使ったものに限らない。たとえば、共通鍵暗号を使った認証方式でも良い。
【０１０９】
本実施形態によれば、リボケーション情報の同期なしにメモリ装置の秘密データにアクセスできない。したがって、第３者がリボケーション情報の同期をブロックすると秘密データの取得に失敗する。
リボケーション情報の同期中にやり取りされるデータは、認証で得たセッション鍵による署名で完全性が保証される。これにより第３者によるデータのすり替えを検知できる。
必ず認証と対でリボケーション情報の同期を行うため、リボケーション情報が伝播しやすい。
【０１１０】
上述した本実施の形態に限らず、本発明の要旨を逸脱しない限り、適宜、変更しうることはいうまでもない。
【０１１１】
また、以上詳細に説明した方法は、上記手順に応じたプログラムとして形成し、ＣＰＵ等のコンピュータで実行するように構成することも可能である。
また、このようなプログラムは、半導体メモリ、磁気ディスク、光ディスク、フロッピー（登録商標）ディスク等の記録媒体、この記録媒体をセットしたコンピュータによりアクセスし上記プログラムを実行するように構成可能である。
【符号の説明】
【０１１２】
１０・・・ホスト装置、１１・・・ＣＰＵ（第１の制御部）、１６・・・ストレージデバイス（記憶デバイス）、２０・・・メモリ装置、２１・・・ＣＰＵ（第２の制御部）、２２・・・メモリ、２３・・・フラッシュメモリ（記憶部）、２３Ｓ・・・機密ストレージエリア、２３１・・・認証局公開鍵情報エリア、１００，２００・・・証明書。
【図１】
0005552870.tif 000002
【図２】
0005552870.tif 000003
【図３】
0005552870.tif 000004
【図４】
0005552870.tif 000005
【図５】
0005552870.tif 000006
【図６】
0005552870.tif 000007
【図７】
0005552870.tif 000008
【図８】
0005552870.tif 000009
【図９】
0005552870.tif 000010
【図１０】
0005552870.tif 000011
【図１１】
0005552870.tif 000012
【図１２】
0005552870.tif 000013
【図１３】
0005552870.tif 000014
【図１４】
0005552870.tif 000015
【図１５】
0005552870.tif 000016
【図１６】
0005552870.tif 000017
【図１７】
0005552870.tif 000018