(57)【特許請求の範囲】
【請求項１】
データをデータ鍵で暗号化し更にこのデータ鍵をユーザ鍵で暗号化する二重暗号鍵方式により前記データを暗号化して記憶するメモリカードから特定のホスト装置に前記データを提供しそれ以外のホスト装置への前記データの提供を制限するデータ保護システムにおいて、
前記ホスト装置は、
前記メモリカードにおけるデータの書き込み及び読み出しに関する制御を司るＤＰＳ（Data Protection System）プログラムを備え、
前記メモリカードは、
主記憶装置としての第１の不揮発性メモリと、
この第１の不揮発性メモリを制御して前記データの暗号化、復号化、及び読み出し、書き込みを司ると共に第２の不揮発性メモリを備えたメモリコントローラと、
前記メモリコントローラに搭載され、前記ＤＰＳプログラムからの命令に従い前記データ鍵を用いて前記データを暗号化し、更に前記ユーザ鍵を用いて前記データ鍵を暗号化して前記第１の不揮発性メモリに記憶させる一方、前記ＤＰＳプログラムからの命令に従い前記ユーザ鍵および前記データ鍵を用いて前記データを復号化して読み出すと共に、前記ユーザ鍵を利用した前記データの復号を実行可能なユーザを特定するＩＤ情報を管理するＤＰＳＡ（Data Protection System Agent）プログラムと
を備え、
前記データの書き込みの際、
前記ＤＰＳプログラムは、前記データを格納すべき前記第１の不揮発性メモリ中の格納場所を前記ＤＰＳＡプログラムに指示し、
前記ＤＰＳＡプログラムは、前記ＤＰＳプログラムからの書き込み命令に従い前記データ鍵を用いて前記データを暗号化して暗号化データを取得し、更に前記データ鍵を前記ユーザ鍵で暗号化して暗号化データ鍵を得て、前記暗号化データを前記第１の不揮発性メモリ中の前記格納場所に記憶させ、前記暗号化データ鍵を前記第１又は第２の不揮発性メモリに記憶させ、
前記データの読み出しの際、
前記ＤＰＳプログラムは、前記ユーザを特定するユーザ情報を提示して前記ＤＰＳＡプログラムに所望の前記データの読み出しを要求し、
前記ＤＰＳＡプログラムは、前記ＩＤ情報を参照して、提示された前記ユーザ情報に対応する前記ユーザ鍵を用いて前記暗号化データ鍵を復号化して前記データ鍵を得て、更にこのデータ鍵を用いて前記データを復号化して前記ホスト装置に向けて読み出す
ことを特徴とするデータ保護システム。
【請求項２】
前記ＤＰＳＡプログラムは、前記データの書き込みの際、前記暗号化データ及び前記暗号化データ鍵を前記第１の不揮発性メモリに書き込んだ後、前記暗号化データ鍵、及び前記ユーザ鍵に対応するユーザ鍵識別データを前記ホスト装置に送信することを特徴とする請求項１記載のデータ保護システム。
【請求項３】
前記ＤＰＳプログラムからの要求に応じて前記ユーザ鍵を生成する鍵生成部を備えたことを特徴とする請求項１記載のデータ保護システム。
【請求項４】
前記ユーザ鍵は、前記ホスト装置と接続された外部サーバから供給されることを特徴とする請求項１記載のデータ保護システム。
【請求項５】
主記憶装置としての第１の不揮発性メモリと、この第１の不揮発性メモリを制御してデータの暗号化、復号化、及び読み出し、書き込みを司ると共に第２の不揮発性メモリを備えたメモリコントローラを備えたメモリカードに、データ鍵及びユーザ鍵を用いた二重暗号鍵方式によりデータを暗号化して記憶し、このメモリカードから特定のホスト装置に前記データを提供しそれ以外のホスト装置への前記データの提供を制限するデータ保護方法であって、
前記メモリカードにおけるデータの書き込み及び読み出しに関する制御を司るＤＰＳ（Data Protection System）プログラムを前記ホスト装置に搭載し、
前記ＤＰＳプログラムからの命令に従い前記データ鍵を用いて前記データを、前記ユーザ鍵を用いて前記データ鍵を暗号化して前記第１の不揮発性メモリに記憶させる一方、前記ＤＰＳプログラムからの命令に従い前記ユーザ鍵及び前記データ鍵を用いて前記データを復号化して読み出すと共に、前記ユーザ鍵を利用して前記データを復号可能なユーザを特定するＩＤ情報を管理するＤＰＳＡ（Data Protection System Agent）プログラムを前記メモリコントローラに搭載し、
前記データの書き込みの際には、
前記ＤＰＳプログラムから前記ＤＰＳＡプログラムに対し、前記データを格納すべき前記第１の不揮発性メモリ中の格納場所を指示するステップと、
前記ＤＰＳＡプログラムが、前記ＤＰＳプログラムからの書き込み命令に従い前記データ鍵を用いて前記データを暗号化して暗号化データを取得し、更に前記データ鍵を前記ユーザ鍵で暗号化して暗号化データ鍵を得て、前記暗号化データを前記第１の不揮発性メモリに記憶させ、前記暗号化データ鍵を前記第１又は第２の不揮発性メモリに記憶させるステップと
を実行し、
前記データの読み出しの際には、
前記ＤＰＳプログラムが前記ユーザを特定するユーザ情報を提示して前記ＤＰＳＡプログラムに所望の前記データの読み出しを要求するステップと、
前記ＤＰＳＡプログラムが、前記ＩＤ情報を参照して、定時された前記ユーザ情報に対応する前記ユーザ鍵を用いて前記暗号化データ鍵を復号化して前記データ鍵を得て、更にこのデータ鍵を用いて前記データを復号化して前記ホスト装置に向けて読み出すステップと
を実行することを特徴とするデータ保護方法。
【請求項６】
前記ＤＰＳＡプログラムは、前記データの書き込みの際、前記暗号化データ及び前記暗号化データ鍵を前記第１の不揮発性メモリに書き込んだ後、前記暗号化データ鍵、及び前記ユーザ鍵に対応するユーザ鍵識別データを前記ホスト装置に送信することを特徴とする請求項５記載のデータ保護方法。
【請求項７】
前記ユーザ鍵は、前記ホスト装置と接続された外部サーバから供給されることを特徴とする請求項５記載のデータ保護方法。
【請求項８】
データをデータ鍵で暗号化し更にこのデータ鍵をユーザ鍵で暗号化する二重暗号鍵方式により前記データを暗号化して記憶し、特定のホスト装置に前記データを提供しそれ以外のホスト装置への前記データの提供を制限する機能を有するメモリカードであって、
主記憶装置としての第１の不揮発性メモリと、
この第１の不揮発性メモリを制御して前記データの暗号化、復号化、及び読み出し、書き込みを司ると共に第２の不揮発性メモリを備えたメモリコントローラと、
前記メモリコントローラに搭載され、
前記ホスト装置に搭載され前記メモリカードにおけるデータの書き込み及び読み出しに関する制御を司るＤＰＳ（Data Protection System）プログラムからの命令に従い前記データ鍵を用いて前記データを、前記ユーザ鍵を用いて前記データ鍵を暗号化して前記第１の不揮発性メモリに記憶させる一方、前記ＤＰＳプログラムからの命令に従い前記ユーザ鍵および前記データ鍵を用いて前記データを復号化して読み出すと共に、前記ユーザ鍵を利用した前記データの復号を実行可能なユーザを特定するＩＤ情報を管理するＤＰＳＡ（Data Protection System Agent）プログラムと
を備え、
前記ＤＰＳＡプログラムは、
前記ＤＰＳプログラムから、前記データを格納すべき前記第１の不揮発性メモリ中の格納場所の指定を伴うデータの書き込み命令を受けた場合、この書き込み命令に従い前記データ鍵を用いて前記データを暗号化して暗号化データを取得し、更に前記データ鍵を前記ユーザ鍵で暗号化して暗号化データ鍵を得て、前記暗号化データを前記第１の不揮発性メモリに記憶させ、前記暗号化データ鍵を前記第１又は第２の不揮発性メモリに記憶させ、
前記ＤＰＳプログラムから、前記ユーザを特定するユーザ情報を提示を伴う所望の前記データの読み出し命令を受けた場合、前記ＩＤ情報を参照して、提示された前記ユーザ情報に対応する前記ユーザ鍵を用いて前記暗号化データ鍵を復号化して前記データ鍵を得て、更にこのデータ鍵を用いて前記データを復号化して前記ホスト装置に向けて読み出す
ことを特徴とするメモリカード。
【請求項９】
前記ＤＰＳＡプログラムは、前記データの書き込みの際、前記暗号化データ及び前記暗号化データ鍵を前記第１の不揮発性メモリに書き込んだ後、前記暗号化データ鍵、及び前記ユーザ鍵に対応するユーザ鍵識別データを前記ホスト装置に送信することを特徴とする請求項８記載のメモリカード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶媒体において暗号化して記憶されたデータを保護しつつ、特定人の間で容易に利用することを可能としたデータ保護システム、データ保護方法、及びメモリカードに関する。
【背景技術】
【０００２】
ＳＤカード等の記憶媒体は、例えば複数のコンピュータ等の間でデータの共有を行うための、いわゆるブリッジメディアとして広く利用されている。たとえば、デジタルカメラ等において、デジタルスチルカメラ用の規格に準拠した形式で画像データをＳＤカードに記録すると、規格に準拠する他のデジタルスチルカメラやパーソナルコンピュータにおいてもこれら画像データを利用することが可能である（インターオペラビリティ）。
【０００３】
しかし、このインターオペラビリティは、個人情報保護の観点からすれば、逆効果となる場合がある。すなわち、他人には見せたくない画像データがＳＤカードに記憶されている場合であっても、インターオペラビリティ性のため、当該他人に対する閲覧制限を行うことができない。さらに、画像データが記録されたＳＤカードを紛失し、これを第三者が拾得した場合、第三者に対して、閲覧を抑制することができない。同様に、企業情報や企業内文書をＳＤカードに記録した場合において、複数の特定の人物だけで共有することはできない。
【０００４】
複数の特定人間でデータを共有しようとした場合、ＳＤカード全体をパスワードでロックする方法はあるが、この場合、特定のデータだけを選択的に保護することができないし、パスワードの管理等が問題となる。
【０００５】
また、特定のデータだけを選択的に保護する方法としては、データファイル毎にパスワードをかけて暗号化することは知られている。しかし、データを暗号化する際に使用した暗号鍵が端末側で保護されるため、上述の複数の特定人でのデータ共有の用途には不向きである。
【０００６】
このように、インターオペラビリティ性を確保しつつ、個人情報の保護を図ると共に、ホスト装置側の実装負担も軽減したデータ保護システムが望まれている。
【特許文献１】特開２００６−５５５７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、インターオペラビリティ性を確保しつつ、個人情報の保護を図ると共に、ホスト装置側の実装負担も軽減することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一態様に係るデータ保護システムは、
データをデータ鍵で暗号化し更にこのデータ鍵をユーザ鍵で暗号化する二重暗号鍵方式により前記データを暗号化して記憶するメモリカードから特定のホスト装置に前記データを提供しそれ以外のホスト装置への前記データの提供を制限するデータ保護システムにおいて、
前記ホスト装置は、
前記メモリカードにおけるデータの書き込み及び読み出しに関する制御を司るＤＰＳ（Data Protection System）プログラムを備え、
前記メモリカードは、
主記憶装置としての第１の不揮発性メモリと、
この第１の不揮発性メモリを制御して前記データの暗号化、復号化、及び読み出し、書き込みを司ると共に第２の不揮発性メモリを備えたメモリコントローラと、
前記メモリコントローラに搭載され、前記ＤＰＳプログラムからの命令に従い前記データ鍵を用いて前記データを、前記ユーザ鍵を用いて前記データ鍵を暗号化して前記第１の不揮発性メモリに記憶させる一方、前記ＤＰＳプログラムからの命令に従い前記ユーザ鍵および前記データ鍵を用いて前記データを復号化して読み出すと共に、前記ユーザ鍵を利用した前記データの復号を実行可能なユーザを特定するＩＤ情報を管理するＤＰＳＡ（Data Protection System Agent）プログラムと
を備え、
前記データの書き込みの際、
前記ＤＰＳプログラムは、前記データを格納すべき前記第１の不揮発性メモリ中の格納場所を前記ＤＰＳＡプログラムに指示し、
前記ＤＰＳＡプログラムは、前記ＤＰＳプログラムからの書き込み命令に従い前記データ鍵を用いて前記データを暗号化して暗号化データを取得し、更に前記データ鍵を前記ユーザ鍵で暗号化して暗号化データ鍵を得て、前記暗号化データを前記第１の不揮発性メモリ中の前記格納場所に記憶させ、前記暗号化データ鍵を前記第１又は第２の不揮発性メモリに記憶させ、
前記データの読み出しの際、
前記ＤＰＳプログラムは、前記ユーザを特定するユーザ情報を提示して前記ＤＰＳＡプログラムに所望の前記データの読み出しを要求し、
前記ＤＰＳＡプログラムは、前記ＩＤ情報を参照して、提示された前記ユーザ情報に対応する前記ユーザ鍵を用いて前記暗号化データ鍵を復号化して前記データ鍵を得て、更にこのデータ鍵を用いて前記データを復号化して前記ホスト装置に向けて読み出す
ことを特徴とする。
【０００９】
また、本発明の一態様に係るデータ保護方法は、
主記憶装置としての第１の不揮発性メモリと、この第１の不揮発性メモリを制御してデータの暗号化、復号化、及び読み出し、書き込みを司ると共に第２の不揮発性メモリを備えたメモリコントローラを備えたメモリカードに、データ鍵及びユーザ鍵を用いた二重暗号鍵方式によりデータを暗号化して記憶し、このメモリカードから特定のホスト装置に前記データを提供しそれ以外のホスト装置への前記データの提供を制限するデータ保護方法であって、
前記メモリカードにおけるデータの書き込み及び読み出しに関する制御を司るＤＰＳ（Data Protection System）プログラムを前記ホスト装置に搭載し、
前記ＤＰＳプログラムからの命令に従い前記データ鍵を用いて前記データを、前記ユーザ鍵を用いて前記データ鍵を暗号化して前記第１の不揮発性メモリに記憶させる一方、前記ＤＰＳプログラムからの命令に従い前記ユーザ鍵及び前記データ鍵を用いて前記データを復号化して読み出すと共に、前記ユーザ鍵を利用して前記データを復号可能なユーザを特定するＩＤ情報を管理するＤＰＳＡ（Data Protection System Agent）プログラムを前記メモリコントローラに搭載し、
前記データの書き込みの際には、
前記ＤＰＳプログラムから前記ＤＰＳＡプログラムに対し、前記データを格納すべき前記第１の不揮発性メモリ中の格納場所を指示するステップと、
前記ＤＰＳＡプログラムが、前記ＤＰＳプログラムからの書き込み命令に従い前記データ鍵を用いて前記データを暗号化して暗号化データを取得し、更に前記データ鍵を前記ユーザ鍵で暗号化して暗号化データ鍵を得て、前記暗号化データを前記第１の不揮発性メモリに記憶させ、前記暗号化データ鍵を前記第１又は第２の不揮発性メモリに記憶させるステップと
を実行し、
前記データの読み出しの際には、
前記ＤＰＳプログラムが前記ユーザを特定するユーザ情報を提示して前記ＤＰＳＡプログラムに所望の前記データの読み出しを要求するステップと、
前記ＤＰＳＡプログラムが、前記ＩＤ情報を参照して、定時された前記ユーザ情報に対応する前記ユーザ鍵を用いて前記暗号化データ鍵を復号化して前記データ鍵を得て、更にこのデータ鍵を用いて前記データを復号化して前記ホスト装置に向けて読み出すステップと
を実行することを特徴とする。
【００１０】
また、本発明の一態様に係るメモリカードは、
データをデータ鍵で暗号化し更にこのデータ鍵をユーザ鍵で暗号化する二重暗号鍵方式により前記データを暗号化して記憶し、特定のホスト装置に前記データを提供しそれ以外のホスト装置への前記データの提供を制限する機能を有するメモリカードであって、
主記憶装置としての第１の不揮発性メモリと、
この第１の不揮発性メモリを制御して前記データの暗号化、復号化、及び読み出し、書き込みを司ると共に第２の不揮発性メモリを備えたメモリコントローラと、
前記メモリコントローラに搭載され、
前記ホスト装置に搭載され前記メモリカードにおけるデータの書き込み及び読み出しに関する制御を司るＤＰＳ（Data Protection System）プログラムからの命令に従い前記データ鍵を用いて前記データを、前記ユーザ鍵を用いて前記データ鍵を暗号化して前記第１の不揮発性メモリに記憶させる一方、前記ＤＰＳプログラムからの命令に従い前記ユーザ鍵および前記データ鍵を用いて前記データを復号化して読み出すと共に、前記ユーザ鍵を利用した前記データの復号を実行可能なユーザを特定するＩＤ情報を管理するＤＰＳＡ（Data Protection System Agent）プログラムと
を備え、
前記ＤＰＳＡプログラムは、
前記ＤＰＳプログラムから、前記データを格納すべき前記第１の不揮発性メモリ中の格納場所の指定を伴うデータの書き込み命令を受けた場合、この書き込み命令に従い前記データ鍵を用いて前記データを暗号化して暗号化データを取得し、更に前記データ鍵を前記ユーザ鍵で暗号化して暗号化データ鍵を得て、前記暗号化データを前記第１の不揮発性メモリに記憶させ、前記暗号化データ鍵を前記第１又は第２の不揮発性メモリに記憶させ、
前記ＤＰＳプログラムから、前記ユーザを特定するユーザ情報を提示を伴う所望の前記データの読み出し命令を受けた場合、前記ＩＤ情報を参照して、提示された前記ユーザ情報に対応する前記ユーザ鍵を用いて前記暗号化データ鍵を復号化して前記データ鍵を得て、更にこのデータ鍵を用いて前記データを復号化して前記ホスト装置に向けて読み出す
ことを特徴とする。
【発明の効果】
【００１１】
この発明によれば、インターオペラビリティ性を確保しつつ、個人情報の保護を図ると共に、ホスト装置側の実装負担も軽減することができる。
【発明を実施するための最良の形態】
【００１２】
次に、本発明の実施の形態に係るデータ保護システムを、図面を参照して詳細に説明する。
【００１３】
最初に、本発明が適用され得る利用形態（利用シーン）を、図１及び図２を参照して説明する。
【００１４】
このデータ保護システムは、二重暗号化鍵方式によりセキュアに暗号化データを記憶した記憶媒体（メモリカード）の一例としてのＳＤカード１０と、この暗号化データを利用するホスト装置２０とにより構成され得る。
【００１５】
ＳＤカード１０は、例えば図１に示すように、同一のユーザにより所有される複数のホスト装置２０（例えばデジタルカメラ２０Ａ、パーソナルコンピュータ２０Ｂ）に対し、自身が格納している暗号化データを復号化した上で平文データを提供する（利用シーンＡ）。
【００１６】
すなわち、このデータ保護システムでは、ＳＤカード１０に、データ毎に用意されたデータ鍵Ｄｋ、及びユーザ固有のユーザ鍵Ｕｋを用いた二重暗号化方式により暗号化されたデータＤａｔａが格納されている。具体的には、ＳＤカード１０は、平文データＤａｔａをデータ鍵Ｄｋで暗号化した暗号化データＥｎｃ（Ｄｋ：Ｄａｔａ）と、データ鍵Ｄｋをユーザ鍵Ｕｋで暗号化した暗号化データ鍵Ｅｎｃ（Ｕｋ：Ｄｋ）とを格納している。ユーザ鍵Ｕｋは、暗号化され、又は外部からは自由にアクセスできない保護領域に格納されることにより、ＳＤカード１０内にセキュアに格納されている。
【００１７】
ホスト装置２０からの命令に従い、このデータ鍵Ｄｋ、ユーザ鍵Ｕｋが復号され、暗号化データ鍵Ｅｎｃ（Ｕｋ：Ｄｋ）、及び暗号化データＥｎｃ（Ｄｋ：Ｄａｔａ）が復号化されて平文データＤａｔａが得られると、この平文データＤａｔａがホスト装置２０に向けて読み出される。
【００１８】
また、ホスト装置２０は、自身が有する平文データを二重暗号化鍵方式により暗号化してＳＤカード１０に書き込むこともできる。ＳＤカード１０は、ホスト装置２０からの書き込み命令に従い、データ鍵Ｄｋ、及びユーザ鍵Ｕｋを生成又は割り当てて、暗号化データＥｎｃ（Ｄｋ：Ｄａｔａ）と、暗号化データ鍵Ｅｎｃ（Ｕｋ：Ｄｋ）とを生成し格納する。
【００１９】
このように、暗号化、復号化はＳＤカード１０側で行い、ホスト装置２０には暗号化又は復号化のための構成が不要であり、ホスト装置の実装負担が軽減されている。また、ホスト装置２０は、データ鍵Ｄｋ、ユーザ鍵Ｕｋ自体は保有しない。
【００２０】
代わりに、このデータ鍵Ｄｋをユーザ鍵Ｕｋで暗号化した暗号化データ鍵Ｅｎｃ（Ｕｋ：Ｄｋ）、ユーザ鍵Ｕｋに対応するユーザ鍵識別データＵｋＩＤ、及び平文データを格納したＳＤカード１０内の格納場所に関する格納情報を有している（又は外部から必要に応じて当該格納情報を受領する）。ホスト装置２０は、データの書き込みを行った場合において、書き込み完了後これらのデータをＳＤカード１０から受領する。
【００２１】
また、データ読み出しを行う場合には、ユーザを特定するためのユーザ情報、格納情報等のデータをＳＤカード１０側に提供して、所望の平文データＤａｔａの提供を受ける。データの書き込み先（格納場所）等は、ホスト装置２０側に設けられたファイルシステムにより制御され得る。
【００２２】
通常、デジタルカメラ、パーソナルコンピュータ等はファイルシステムを有しているため、ＳＤカード１０に別途ファイルシステムを搭載するよりも、ホスト装置２０側にもとより設けられたファイルシステムを利用することが好適である。もちろん、ＳＤカード１０に別途ファイルシステムを搭載し、このファイルシステムを用いた制御を行うことも可能である。
【００２３】
図２は、別の利用形態（利用シーンＢ）を示している。これは、ユーザＡがＳＤカード１０に書き込んだデータＤａｔａを、別のユーザ、例えばユーザＢにも提供することを選択的に許可する形態である。選択的に特定人に許可をするものであるので、個人情報の保護は図られており、特定人の間においてはデータのインターオペラビリティ性が確保される。この許可を行う場合、ユーザＡは、ＳＤカード１０内に格納されたＩＤテーブルＴＡＢを書き換えて、ユーザＢに対し、自己のユーザ鍵ＵｋＡで暗号化されたデータの提供を許可する。
【００２４】
ＩＤテーブルＴＡＢがこのようにして書き換えられた後、当該ユーザＢがユーザＩＤ等を提示してＳＤカード１０にアクセスすると、ユーザ鍵ＵｋＡで暗号化されたデータＤａｔａを復号化して読み出すことが可能になる。
【００２５】
他方、ユーザＡによりデータの利用を許可されていない別のユーザ、例えばユーザＣ、Ｄ・・・が、このＳＤカード１０にアクセスしたとしても、ユーザ鍵ＵｋＡは読み出されず、平文のデータｄａｔａはそれら未承認のユーザには提供されない。
【００２６】
次に、本システムにおけるＳＤカード１０、及びホスト装置２０の具体的な構成を、図３を参照して説明する。
【００２７】
ＳＤカード１０は、メモリコントローラ３０と、不揮発性メモリであるフラッシュメモリ４０とを備えている。ＳＤカード１０は、データをセキュアに記憶したセキュア記憶媒体の一例であり、フラッシュメモリ４０内に、システム領域(System Area)４１、秘匿領域(Hidden Area)４２、保護領域(Protected Area)４３、ユーザデータ領域(User Data Area)４４を備えており、各領域４１〜４４に適宜データが記憶される。
【００２８】
システム領域４１は、読取専用でＳＤカード１０の外部からアクセス可能な領域である。秘匿領域４２は、読取専用でＳＤカード１０自身が参照する領域であり、外部からのアクセスが一切不可となっている。保護領域４３は、認証に成功した場合にＳＤカード１０の外部から読出／書込可能な領域である。ユーザデータ領域４４は、ＳＤカード１０の外部から自由に読出／書込可能な領域である。
【００２９】
ホスト装置２０は、一例として、一般的にコンピュータに備えられているＣＰＵ（Central Processing Unit）２１、ＲＯＭ(Read Only Memory)２２、ＲＡＭ(Random Access Memory)２３、画像メモリ２４、表示制御部２５、インターフェース（Ｉ／Ｆ）２６、及びハードディスクドライブ（ＨＤＤ）２７を備えている。ホスト装置２０は、ＳＤカード１０に対するデータの書き込み、及びデータの読み出しを実行するため、ファイルシステム、ＤＰＳ（Data Protection System）プログラムをＨＤＤ２７に格納している。
【００３０】
ファイルシステムは、通常のパーソナルコンピュータ等に備えられている一般的なものが利用可能である。また、ＤＰＳプログラムは、後述するＤＰＳＡプログラムを起動させて二重暗号化鍵方式を用いたデータの書き込み、読み出し動作をＤＰＳＡプログラムに実行させるためのプログラムである。このＤＰＳプログラムは、ＤＰＳＡプログラムとの間で、ＳＤカード１０の認証を行うカード認証手続、及びユーザ自身を認証するユーザ認証等も担当する。
【００３１】
メモリコントローラ３０は、メモリコントローラ３０の動作の全体を司るＣＰＵ３１、バッファメモリ３２、ＲＯＭ３３、フラッシュメモリ３４、ホスト装置２０との間のデータのやり取りを担当するホスト側インタフェース３５、及びメモリ４０とのメモリ側インタフェース３６を備えている。バッファメモリ３２は、ホスト装置２０からフラッシュメモリ４０に送信されるデータ或いはホスト装置２０に送信するためにフラッシュメモリ４０から読み出したデータを一時保持する役割を有する。なお、フラッシュメモリ３４はメモリコントローラ３０に内蔵される。  ＲＯＭ３３に格納されるＤＰＳＡプログラムは、メモリコントローラ３０内にて実行され、データの暗号化・復号化、暗号化に用いられるユーザ鍵及びデータ鍵の生成、及びユーザ鍵識別データの生成及び管理等を担当する。図４に示すように、ＤＰＳＡプログラムは、データの暗号化を担当する暗号化部３３１、データの復号化を担当する復号化部３３２、暗号化のためのユーザ鍵及びデータ鍵を生成する鍵生成部３３３、及びユーザ鍵に対応するユーザ鍵識別データ（ユーザ鍵ＩＤ）を生成し管理するユーザ鍵生成・管理部３３４をメモリコントローラ３０の内部に実現する。或いはバッファメモリ３２にデータの暗号化・復号化の機能を追加してＣＰＵ３１を介して、暗号化・復号化のためのデータ鍵を供給して、前記暗号化部３３１、復号化部３３２の機能を実現することもできる。
【００３２】
フラッシュメモリ３４は、メモリコントローラ３０内に設けられ、ＤＰＳＡプログラムの実行時に実行される各種認証手続やデータの暗復号化等に必要なデータをセキュアに格納する役割を有する。本実施の形態では、フラッシュメモリ３４は、フラッシュメモリ４０と同様に、システム領域(System Area)３４１、秘匿領域(Hidden Area)３４２、保護領域(Protected Area)３４３を備えており、各領域３４１〜３４３に適宜データが記憶される。
【００３３】
この実施の形態では、データＤａｔａをデータ鍵Ｄｋで暗号化した暗号化データＥｎｃ（Ｄｋ：Ｄａｔａ）、及びデータ鍵Ｄｋをユーザ鍵Ｕｋで暗号化した暗号化データ鍵Ｅｎｃ（Ｕｋ：Ｄｋ）が、主記憶装置であるフラッシュメモリ４０のユーザデータ領域４４に格納される。主記憶装置であるＮＡＮＤフラッシュメモリ４０は、記憶容量も大きく、また、ホスト装置２０のファイルシステムによってアクセス操作可能である。暗号化データＥｎｃ（Ｄｋ：Ｄａｔａ）は、データの種類が増えれば大容量となり、暗号化データ鍵Ｅｎｃ（Ｕｋ：Ｄｋ）もデータの種類の増大に応じてデータ量が増大するので、大容量を有するユーザデータ領域４４に記憶するのが好適である。
【００３４】
また、ユーザ鍵Ｕｋは、フラッシュメモリ３４の秘匿領域３４２に格納されたメディア固有鍵Ｋｍｕで暗号化されて、フラッシュメモリ３４の保護領域３４３に格納される。ユーザ鍵Ｕｋはユーザ毎に設定され、複数のデータに対し共通に用いられ得るので、データ量はデータＤａｔａやデータ鍵Ｄｋに比べて少ない。従って、フラッシュメモリ３４は小さな容量であっても十分である。
フラッシュメモリ３４がホスト装置２０からアクセスできない実装であれば、フラッシュメモリ３４は保護領域３４３と見なすことができるため、メディア固有鍵Ｋｍｕは無くても構わない。つまり、ユーザ鍵Ｕｋをそのまま格納することも可能である。
別の形態として、ＮＡＮＤフラッシュメモリ４０を用いて、フラッシュメモリ３４を省略することもできる。この場合は、秘匿領域４２或いは保護領域４３を使用する。この場合、メディア固有鍵Ｋｍｕはフラッシュメモリ４０の秘匿領域４２に格納されたものを使用する。また、保護領域はフラッシュメモリ４０の保護領域４３を使用する。
【００３５】
次に、ＤＰＳＡプログラムにより実現される各部の機能を、図５及び図６を参照して説明する。図５は、ホスト装置２０からＳＤカード１０にデータを書き込む場合に動作する部分を抜粋して記述したものであり、また、図６は、ＳＤカード１０からホスト装置２０へとデータを復号化後に読み出す場合に動作する部分を抜粋して記述したものである。
【００３６】
まず、図５において、データの書き込み動作の場合に動作する構成を説明する。ホスト装置２０内のＤＰＳプログラムは、ＳＤカード１０に暗号化して書き込もうとするデータＤａｔａを、フラッシュメモリ４０内のユーザデータ領域４４のアドレスＡｄｄｒｅｓｓと共にＳＤカード１０に向けて送信する。暗号化部３３１は、鍵生成部３３３で生成されたデータ鍵Ｄｋを用いてこのデータＤａｔａを暗号化して暗号化データＥｎｃ（Ｄｋ：Ｄａｔａ）を生成してユーザデータ領域４４の指定されたアドレスに格納する。
【００３７】
また、鍵生成部３３３は、ユーザ毎に異なり複数種類のデータ鍵に対し共通に用いられるユーザ鍵Ｕｋを生成する。暗号化部３３１は、このユーザ鍵Ｕｋを用いてデータ鍵Ｄｋを暗号化して暗号化データ鍵Ｅｎｃ（Ｕｋ、Ｄｋ）を生成してユーザデータ領域４４に格納する。さらに、このユーザ鍵Ｕｋは、メディア固有鍵Ｋｍｕにより暗号化されて保護領域３４３に格納される。メディア固有鍵Ｋｍｕは、秘匿領域３４２に格納されている。
【００３８】
ユーザ鍵ＩＤ生成・管理部３３４は、鍵生成部３３３が新たにユーザ鍵Ｕｋを生成した場合、そのユーザ鍵Ｕｋに対応するユーザ鍵識別データＵｋＩＤを生成すると共に、そのユーザ鍵識別データＵｋＩＤを、ユーザ鍵Ｕｋと対応付けて管理する。生成されたユーザ鍵識別データＵｋＩＤは、暗号化データ鍵Ｅｎｃ（Ｕｋ：Ｄｋ）と共にホスト装置２０に送信される。
【００３９】
ホスト装置２０内のＤＰＳプログラムは、受信されたユーザ鍵識別データＵｋＩＤ、及び暗号化データ鍵Ｅｎｃ（Ｕｋ：Ｄｋ）に基づきデータ鍵管理ファイルＭｎｇＦｉｌｅを更新して、再びＳＤカード１０に返信して、ユーザデータ領域４４に格納させる。データ鍵管理ファイルＭｎｇＦｉｌｅは、ユーザ鍵識別データＵｋＩＤ、暗号化データ鍵Ｅｎｃ（Ｕｋ：Ｄｋ）、データＤａｔａを格納したユーザデータ領域４４のアドレス、データの使用ルール（共有可／不可、読み取り専用／編集可能、印刷可／不可、コピー又は移動可／不可等）を規定したユーザルールファイルＵＲｕｌｅ、及び、暗号化されたデータに関するメタデータ等を含む。これらのメタデータはデータ鍵ＤｋとともにＵｋで暗号化される。
【００４０】
次に、データの読み出しを行う場合における各部の機能を図６を参照して説明する。読み出しを行う場合、ホスト装置２０のＤＰＳプログラムは、ユーザデータ領域４４に格納されたデータ鍵管理ファイルＭｎｇＦｉｌｅを読み出してＲＡＭ２３に一時保持する。ＤＰＳプログラムは、このデータ鍵管理ファイルＭｎｇＦｉｌｅに基づき、読み出すべきデータＤａｔａを特定し、このデータに対応する暗号化データ鍵Ｅｎｃ（Ｕｋ：Ｄｋ）を、ユーザ鍵識別データＵｋＩＤとユーザデータ領域４４内のアドレス共にＳＤカード１０に送信する。
【００４１】
ユーザ鍵ＩＤ生成部・管理部３３４は、受信されたユーザ鍵識別データＵｋＩＤに基づきユーザ鍵Ｕｋを特定する。復号化部３３２は、受信された暗号化データ鍵Ｅｎｃ（Ｕｋ：Ｄｋ）を、特定されたユーザ鍵Ｕｋを用いて復号化してデータ鍵Ｄｋを得る。さらに復号化部３３２は、このデータ鍵Ｄｋを用いて、ユーザデータ領域４４に格納されている暗号化データＥｎｃ（Ｄｋ：Ｄａｔａ）を復号化してデータＤａｔａを得る。ＤＰＳＡプログラムは、この得られたデータをホスト装置２０に供給する。
【００４２】
次に、本システムにおけるデータの書き込み動作、及び読み出し動作を、図７及び図８に示すタイミングチャートを参照して説明する。
【００４３】
まず、図７を参照してデータの書き込み動作を説明する。データの書き込みを行う場合、まず、ホスト装置２０のＤＰＳプログラムは、ＤＰＳＡプログラムを起動するためのＡｗａｋｅコマンドを発行する（Ｓ１）。
【００４４】
次に、ＤＰＳプログラムとＤＰＳＡプログラムとは、ユーザＩＤ、パスワード等に基づいてユーザ認証手続を行うと共に、カード認証手続を実行する（Ｓ２）。
【００４５】
ユーザ認証はＤＰＳプログラムがＤＰＳＡプログラムにユーザＩＤ、パスワードを送信するとＤＰＳＡプログラムはユーザ鍵生成・管理部３３４を動作させ、ユーザＩＤとパスワードの一致、不一致を確認し、一致しておれば、認証とみなし次のステップに移行する。カード認証はカード自体の正当性を確認するための処理であり、省略した実装も可能である。カード認証に用いる手法は具体的な手法には限定されず、ＰＫＩ（Public Key Infrastructure）であってもよいし、共有秘密鍵方式であってもよい。後者が実装負担も少なくて済み好適である。
【００４６】
ユーザ認証が完了した後、ＤＰＳプログラムは、ＳＤカード１０に暗号化して書きこもうとするデータＤａｔａの書き込み命令を、書きこもうとする格納場所のアドレスＡｄｄｒｅｓｓと共にＳＤカード１０に送信する（Ｓ３）。なお、ユーザ認証が不成功であった場合、ＤＰＳＡプログラムはステップ（Ｓ３）に対して、エラーとして受け付けを拒否する。
【００４７】
この書き込み命令を受けたＤＰＳＡプログラムは、そのユーザについてのユーザ鍵が未発行である場合には、鍵生成部３３３にユーザ鍵Ｕｋを発行させ、更にこのユーザ鍵Ｕｋに対応するユーザ鍵識別データＵｋＩＤをユーザ鍵ＩＤ生成・管理部３３４に決定させる（Ｓ４）。ユーザ鍵識別データＵｋＩＤとユーザ鍵とは、ユーザ鍵ＩＤ生成・管理部３３４により対応付けて管理される。なお、そのユーザについてのユーザ鍵が発行済みである場合には、その発行済みのユーザ鍵を割り当てる。
【００４８】
続いて、ＤＰＳプログラムが書き込み対象のデータＤａｔａとユーザデータ領域４４中の書き込むべきアドレスをＳＤカード１０に向けて送信する（Ｓ５）。
【００４９】
ＤＰＳＡプログラムは、このデータＤａｔａを受信すると、これを暗号化するためのデータ鍵Ｄｋを鍵生成部３３３に生成させる（Ｓ６）。そして、暗号化部３３１において、このデータ鍵Ｄｋを用いてデータＤａｔａを暗号化して暗号化データＥｎｃ（Ｄｋ：Ｄａｔａ）を生成し、ユーザデータ領域４４中の指定されたアドレスに書き込む（Ｓ７）。  データの書き込み動作が完了すると、ＤＰＳＡプログラムは、その旨をＤＰＳプログラムに報告する（Ｓ８）。ＤＰＳプログラムは、これに対応して、ＤＰＳＡプログラムに対し、暗号化データ鍵Ｅｎｃ（Ｕｋ：Ｄｋ）の送信を要求する（Ｓ９）。ＤＰＳＡプログラムは、この要求を受けて、暗号化データ鍵Ｅｎｃ（Ｕｋ：Ｄｋ）とユーザ鍵識別データＵｋＩＤとをＤＰＳプログラムに向けて送信する（Ｓ１０）。
【００５０】
ＤＰＳプログラムは、暗号化データ鍵Ｅｎｃ（Ｕｋ：Ｄｋ）とユーザ鍵識別データＵｋＩＤとを確認すると、ユーザデータ領域４４に格納されているデータ鍵管理ファイルＭｎｇＦｉｌｅにアクセスし（Ｓ１１）、受信した暗号化データ鍵Ｅｎｃ（Ｕｋ：Ｄｋ）とユーザ鍵識別データＵｋＩＤに基づき、このデータ鍵管理ファイルＭｎｇＦｉｌｅを更新する（Ｓ１２）。以上の動作により、ホスト装置２０からＳＤカード１０への書き込みが完了する。ホスト装置２０においては、暗号化等の動作は行われず、ＤＰＳプログラムを介したファイルシステムによる書き込み先のアドレス指定等が行われるだけである。従って、ホスト装置側の実装負担を重くすることなくデータ保護を行うことができる。
【００５１】
次に、図８を参照してデータの読み出し動作を説明する。データの読み出しを行う場合、ホスト装置２０のＤＰＳプログラムは、書き込み動作の場合と同様に、ＤＰＳＡプログラムを起動するためのＡｗａｋｅコマンドを発行する（Ｓ２１）。
【００５２】
次に、ＤＰＳプログラムとＤＰＳＡプログラムとは、ユーザＩＤ、パスワード等に基づいてユーザ認証手続・カード認証手続を実行する（Ｓ２２）。この認証手続が完了すると、ＤＰＳプログラムは、ユーザデータ領域４４に格納されたデータ鍵管理ファイルＭｎｇＦｉｌｅにアクセスして、読み出したいデータＤａｔａに関するファイルを決定する（Ｓ２３）。
【００５３】
続いて、ＤＰＳプログラムは、この読み出したいデータＤａｔａに対応する暗号化データ鍵Ｅｎｃ（Ｕｋ：Ｄｋ）とユーザ鍵識別データＵｋＩＤをＤＰＳＡプログラムに向けて送信する（Ｓ２４）。さらに、読み出したいデータＤａｔａが格納されているユーザデータ領域４４のアドレスを指定してデータＤａｔａの読み出しを指示する（Ｓ２５）。
【００５４】
ＤＰＳＡプログラムは、受信されたユーザ鍵識別データＵｋＩＤに基づきユーザ鍵ＩＤ生成・管理部３３４を参照して対応するユーザ鍵Ｕｋを取得する。そして、このユーザ鍵Ｕｋを用いて暗号化データ鍵Ｅｎｃ（Ｕｋ：Ｄｋ）を復号化してデータ鍵Ｄｋを得る（Ｓ２６）。
【００５５】
そして、指定されたアドレスから、対象のデータＤａｔａに関する暗号化データＥｎｃ（Ｄｋ：Ｄａｔａ）を読み出し、データ鍵Ｄｋを用いて復号化してデータＤａｔａを得る（Ｓ２７）。得られたデータは、ホスト装置２０に送信される（Ｓ２８）。以上により、データの読み出し動作が完了する。
【００５６】
図９は、本実施の形態におけるＳＤカード１０でのユーザデータ領域４４のディレクトリ構造を示している。図９に示すように、ＳＤカード１０内では、ＤＰＳプログラムが管理するディレクトリＤＰＳが形成され、更に、このディレクトリＤＰＳの中に、異なるユーザＡ，Ｂ，Ｃ，Ｄ・・・毎に別々のユーザ・ディレクトリＵｓｅｒＡ、ＵｓｅｒＢ・・・が形成されている。
【００５７】
ユーザ・ディレクトリＵｓｅｒには、前述のデータ鍵管理ファイルＭｎｇＦｉｌｅ、複数の暗号化データファイルＥｎｃ（Ｄｋｉ、Ｄａｔａｉ）が格納されている。
【００５８】
また、ユーザ・ディレクトリＵｓｅｒと並列に、ユーザ・ディレクトリを管理するためのユーザ・ディレクトリ管理ファイルと、ユーザＩＤを管理するユーザＩＤ情報ファイルが格納されている。後述するように、ユーザＩＤ情報ファイルは、前述のデータ鍵管理ファイルＭｎｇＦｉｌｅ、及びＩＤテーブルＴＡＢと関連付けられている。
【００５９】
前述のＩＤテーブルＴＡＢは、各ユーザが、他の特定のユーザとデータを共有しようとする場合に書き換えるものであり、例えば、自身が有するあるユーザ鍵ＵｋＡを、他のユーザＢにも使用を許可する旨の情報を書き込むためのものである。ＩＤテーブルＴＡＢにこのような情報が書き込まれると、ユーザＢがユーザＡの情報を共有することが可能になる（前述の利用シーンＢ（図２））。ＩＤテーブルＴＡＢはフラッシュメモリ３４の保護領域３４３に格納される。
【００６０】
次に、図１０を参照して、ＩＤテーブルＴＡＢの内部構成と、データ鍵管理ファイルＭｎｇｆｉｌｅ、およびユーザＩＤ情報ファイルとの対応関係について説明する。
【００６１】
ユーザＡとユーザＢ、それぞれのユーザＩＤ、ユーザ鍵識別データＵｋＩＤ、ユーザ鍵Ｕｋ、及びパスワードＰＷは、ＩＤテーブルＴＡＢ、データ鍵管理ファイルＭｎｇｆｉｌｅ、およびユーザＩＤ情報ファイルに格納され、図１０に示すように関連付けられている。
【００６２】
ユーザＩＤは前述のユーザＩＤ情報ファイルで管理される。ユーザ鍵識別データＵｋＩＤはデータ鍵管理ファイルＭｎｇＦｉｌｅで管理される。ユーザ鍵ＵｋとパスワードはＩＤテーブルＴＡＢでセキュアに管理される。
【００６３】
図１０に示す通り、ユーザは複数のユーザＩＤを持つことも許される。ユーザＩＤ、ユーザ鍵識別データＵｋＩＤ、ユーザ鍵Ｕｋ、パスワードは１つのセットとして見なされる。ユーザＩＤＡ０はユーザ鍵識別データＵｋＩＤＡ０、ユーザ鍵ＵｋＡ０、パスワードＰＷＡ０と対応する。図１０のユーザＡは２つのユーザＩＤ（Ａ０、Ａ１）を持つている場合に相当し、ユーザＢは１つのユーザＩＤ（Ｂ０）を持っている。
【００６４】
図１０の２人のユーザＡ，Ｂと３つのユーザＩＤ（Ａ０，Ａ１，Ｂ０）が存在する場合のＩＤテーブルＴＡＢの構成例を図１１に示す。このＩＤテーブルＴＡＢは、あるユーザＩＤに関連づけられたユーザ鍵Ｕｋの使用が、どのユーザ鍵識別データに対し許可されているかを示している。
【００６５】
初期状態では、異なるユーザＩＤ間でのユーザ鍵の共用は許可されていない。例えば、ユーザＡがユーザＩＤＡ０でユーザ認証を受ければ、自身がユーザＩＤＡ０の下で使用できるのはユーザ鍵ＵｋＡ０のみである。ユーザＡは２つのユーザＩＤ（Ａ０，Ａ１）を保持しているが、ユーザＩＤＡ０の下では、ユーザＩＤＡ１と対応するユーザ鍵ＵｋＡ１の共用はできない。同様に、ユーザＢは自身で使用を許可されているのは、ユーザ鍵ＵｋＢ０のみである。
【００６６】
図１２はユーザ鍵及びデータの共有の許可がなされたときのＩＤテーブルＴＡＢの内部の状態を模式的に示している。ここで、ユーザＡがユーザＩＤＡ０でユーザ認証を受けた後、ユーザＢ（ユーザ鍵ＵｋＢ０、ユーザ鍵識別データＵｋＩＤＢ０を有する者）にユーザ鍵ＵｋＡ０の共用を許可したと仮定する。この結果、ＩＤテーブルＴＡＢのユーザＩＤＡ０のユーザ鍵識別データＵｋＩＤＢ０に対する許可フラグは「不許可」の状態から「許可」状態となる。この結果、ユーザＢはユーザＩＤＢ０でユーザ認証を受けた状態であれば、ユーザ鍵ＵｋＡ０の共用が認められる。従って、ユーザ鍵ＵｋＡ０で暗号化されたテータ鍵の復号が可能となるので、このユーザ鍵ＵｋＡ０で暗号化されているデータ鍵Ｄｋを用いて暗号化されたデータＤａｔａの復号が可能となり、ユーザＡとユーザＢでデータの共有が可能となる。
ユーザが複数のユーザＩＤを持つことの利点として、データ共有をしたいデータと共有したくないデータを異なるユーザ鍵で管理することで、管理が非常に簡単になる。ユーザに一つのユーザ鍵しか認めないとデータの共有、非共有が簡単に実現できない。非共有データは、許可対象でないユーザ鍵ＵｋＡ１により暗号化すれば良い。
【００６７】
図１２のＩＤテーブルＴＡＢの状態では、ユーザＢはユーザＡに対して、ＵｋＢ０の共用を許可していないので、データの共有は一方向のユーザＡからユーザＢのみである。
【００６８】
次に、ユーザＢがユーザＡの情報を共有する場合における読み出し動作（利用シーンＢ）を図１３を参照して説明する。簡単のために、ユーザはそれぞれ１個のユーザ鍵ＵｋＡとＵｋＢを持っていたとする。
【００６９】
まず、ユーザＢが有するホスト装置２０のＤＰＳプログラムは、ＤＰＳＡプログラムを起動するためのＡｗａｋｅコマンドを発行する（Ｓ３１）。
【００７０】
次に、ＤＰＳプログラムとＤＰＳＡプログラムとは、ユーザＩＤ、パスワード等に基づいてユーザ認証手続・カード認証手続を実行する（Ｓ３２）。このときＤＰＳＡプログラムは、得られたユーザＩＤに基づき前述のＩＤテーブルＴＡＢを参照し、このユーザが他人のユーザ鍵の使用を許可されているか否かを判断する。この場合は、ユーザＡは１つのユーザ鍵ＵｋＡを所有し、ユーザＢへの使用が許可されていると判断したものとする。
【００７１】
前述の認証手続（Ｓ３２）が完了すると、ＤＰＳプログラムは、ユーザデータ領域４４に格納されたデータ鍵管理ファイルＭｎｇＦｉｌｅにアクセスして、読み出したいデータＤａｔａに関するファイルを決定する（Ｓ３３）。
【００７２】
さらに、読み出したいデータＤａｔａが格納されているユーザデータ領域４４のアドレスを指定してデータＤａｔａの読み出しを指示する（Ｓ３５）。
【００７３】
ＤＰＳＡプログラムは、読み出し指示の対象とされたデータＤａｔａがユーザ鍵ＵｋＡで暗号化されている場合、前述のようにユーザ鍵ＵｋＡの使用が許可する旨の判断がなされているので、この判断に従い、ユーザ鍵ＵｋＡを用いて暗号化データ鍵Ｅｎｃ（ＵｋＡ：Ｄｋ）を復号化してデータ鍵Ｄｋを得る（Ｓ３６）。そして、指定されたアドレスから、対象のデータＤａｔａに関する暗号化データＥｎｃ（Ｄｋ：Ｄａｔａ）を読み出し、データ鍵Ｄｋを用いて復号化してデータＤａｔａを得る（Ｓ３７）。得られたデータは、ホスト装置２０に送信される（Ｓ３８）。以上により、データの読み出し動作が完了する。
【００７４】
一方、ユーザＡによりデータの共有が許可されていない他のユーザによる読み出し要求があった場合には、ＩＤテーブルＴＡＢに基づいて、この要求を拒否する。従って、データのインターオペラビリティ性と、情報の保護とが両立されている。
【００７５】
以上、発明の実施の形態を説明したが、本発明はこれらに限定されるものではなく、発明の趣旨を逸脱しない範囲内において、種々の変更、追加等が可能である。たとえば、上記の実施の形態では、ユーザ鍵Ｕｋはメモリコントローラ３０にて生成するものとして説明したが、図１３に示すように、外部サーバ５０からユーザ鍵を取得するような構成とすることも可能である。また、上記の実施の形態では、ＤＰＳＡプログラム支配下にあるフラッシュメモリ３４の保護領域３４３内にユーザ鍵Ｋｕを格納したが、これに代えて、フラッシュメモリ４０内の保護領域４３に格納するようにしてもよい。
【００７６】
また、上記の実施の形態では、説明の簡単のため、ユーザ毎に１つのユーザ鍵が発行される前提で説明したが、ユーザ毎に複数のユーザ鍵を発行することも可能である。この場合、各ユーザは、複数のユーザ鍵を目的別、データ別等によって使い分け、その複数のユーザ鍵のうちの一部のみを他人に利用することを許可することが可能である。
【００７７】
また、ユーザ鍵だけでなく、データ鍵に関しても共有する範囲を具体的にＩＤテーブルＴＡＢに記憶させ、この情報に基づいて、１つのユーザ鍵で暗号化される複数のデータ鍵のうちの一部のみを利用可能とすることも可能である。
【図面の簡単な説明】
【００７８】
【図１】本発明が適用され得る利用形態（利用シーン）を説明する概念図である。
【図２】本発明が適用され得る利用形態（利用シーン）を説明する概念図である。
【図３】本発明の実施の形態に係るデータ保護システムにおけるＳＤカード１０、及びホスト装置２０の具体的な構成を示すブロック図である。
【図４】ＤＰＳＡプログラムにより実現されるメモリコントローラ３０の機能を示すブロック図である。
【図５】ＤＰＳＡプログラムにより実現される各部の機能を説明する機能ブロック図である。
【図６】ＤＰＳＡプログラムにより実現される各部の機能を説明する機能ブロック図である。
【図７】本実施の形態に係るデータ保護システムの動作を示すタイミングチャートである。
【図８】本実施の形態に係るデータ保護システムの動作を示すタイミングチャートである。
【図９】本実施の形態におけるＳＤカード１０でのディレクトリ構造を示している。
【図１０】本実施の形態に係るユーザとユーザＩＤ、ＵｋＩＤ、ユーザ鍵、パスワードの関係図である。
【図１１】本実施の形態に係るＩＤテーブルの初期状態を表す図である。
【図１２】本実施の形態に係るＩＤテーブルの共有状態を表す図である。
【図１３】本実施の形態に係るデータ保護システムの動作を示すタイミングチャートである。
【図１４】本発明の実施の形態の変形例を示す。
【符号の説明】
【００７９】
１０・・・ＳＤカード、  ２０、２０Ａ、２０Ｂ、２０Ｃ、２０Ｄ・・・ホスト装置、  ３０・・・メモリコントローラ、  ４０・・・フラッシュメモリ、  ２１・・・ＣＰＵ（Central Processing Unit）、  ２２・・・ＲＯＭ(Read Only Memory)、  ２３・・・ＲＡＭ(Random Access Memory)、  ２４・・・画像メモリ、  ２５・・・表示制御部、  ２６・・・インターフェース（Ｉ／Ｆ）、  ２７・・・ハードディスクドライブ（ＨＤＤ）、  ３１・・・ＣＰＵ、  ３２・・・バッファメモリ、  ３３・・・ＲＯＭ、  ３４・・・フラッシュメモリ、  ３５・・・ホスト側インタフェース、  ３６・・・メモリ側インタフェース、  ３３１・・・暗号化部、  ３３２・・・復号化部、  ３３３・・・鍵生成部、  ３３４・・・ユーザ鍵生成・管理部。
【図１】
0005175617.tif 000002
【図２】
0005175617.tif 000003
【図３】
0005175617.tif 000004
【図４】
0005175617.tif 000005
【図５】
0005175617.tif 000006
【図６】
0005175617.tif 000007
【図７】
0005175617.tif 000008
【図８】
0005175617.tif 000009
【図９】
0005175617.tif 000010
【図１０】
0005175617.tif 000011
【図１１】
0005175617.tif 000012
【図１２】
0005175617.tif 000013
【図１３】
0005175617.tif 000014
【図１４】
0005175617.tif 000015