(57)【要約】【課題】なりすまし、改ざん等を防止しつつプログラムを記録媒体にセキュアに追加・更新可能なプログラム情報提供システム、プログラム提供方法、及びプログラム提供方法に用いられる記録媒体を提供する。【解決手段】ユーザによって管理されるユーザ端末１０と、ユーザ端末１０にて情報を読み出し及び書き込み可能な記録媒体１６と、前記ユーザ端末にネットワークを介して接続されたサーバ２０とを有するシステムを設ける。記録媒体１６は、プログラムを書き込み可能なメモリセルアレイと、相互認証を行うプロセッサとを備える。プロセッサは、ユーザ端末１０と相互認証処理を行い、その相互認証処理に成功し、ユーザ端末１０を介してサーバ２０と相互認証処理を行い、相互認証処理に成功した場合、サーバ２０から送信されたプログラム情報をユーザ端末１０にてメモリセルアレイに格納する。【選択図】図１
2008269088.tif 000002
【特許請求の範囲】
【請求項１】
ユーザによって管理されるユーザ端末と、当該ユーザ端末の発行するコマンドを介して情報を読み出し及び書き込み可能な記録媒体と、前記ユーザ端末にネットワークを介して接続されたサーバとを有し、当該サーバから前記記録媒体にプログラム情報を提供するプログラム情報提供システムであって、
前記記録媒体は、
プログラム情報を書き込み可能な第１記憶部と、
前記ユーザ端末と第１相互認証処理を行い、当該第１相互認証処理に成功した場合のみ、プログラム情報を前記第１記憶部に書き込むコマンドを実行することができる第１制御部を有し、
前記ユーザ端末は、
前記サーバと第２相互認証処理を行い、当該第２相互認証処理に成功した場合、前記サーバから送信されたプログラム情報を得て、プログラム情報を前記記録媒体の第１記憶部に書き込むコマンドを発行する
ことを特徴とするプログラム情報提供システム。
【請求項２】
前記記録媒体の前記第１記憶部は、
前記記録媒体固有のメディア識別子情報と、当該メディア識別子情報に基づき生成可能なメディア鍵情報を所定形式にて暗号化した鍵管理情報と、前記メディア鍵情報を前記メディア識別子情報により復号化して得られるメディア固有鍵情報とを格納し、
前記記録媒体の前記第１制御部は、
前記メディア固有鍵情報に基づき前記ユーザ端末と相互認証処理を行い、
前記ユーザ端末は、
デバイス鍵情報と前記サーバとの秘密鍵情報を格納する第２記憶部と、
前記記録媒体と前記相互認証処理を行う第２制御部と
を備え、
前記サーバは、
前記ユーザ端末との秘密鍵情報あるいは公開鍵情報を格納する第３記憶部と、
前記記録媒体と前記相互認証処理を行う第３制御部と
を備え、
前記ユーザ端末の前記第２制御部は、
前記デバイス鍵情報に基づき受信した前記鍵管理情報からメディア鍵情報を生成し、受信した前記メディア識別子情報に基づき前記生成したメディア鍵情報からメディア固有鍵情報を生成し、当該生成したメディア固有鍵情報を用いて前記記録媒体と前記相互認証処理を行い、
前記サーバの前記第３制御部は、
前記秘密鍵情報或いは公開鍵情報に基づき、前記ユーザ端末と前記相互認証処理を行う
ことを特徴とする請求項１記載のプログラム情報提供システム。
【請求項３】
前記鍵管理情報は、行列要素、及び当該行列要素に対応する複数の暗号化情報を有するデバイス鍵行列情報により、前記メディア鍵情報を暗号化した情報であり、
前記デバイス鍵情報は、前記行列要素の中から複数を指定するベクトル情報、当該ベクトル情報に対応して前記暗号化情報を復号化する復号化情報を有する情報であり、
前記ユーザ端末の前記第２制御部は、前記デバイス鍵情報を用いて、前記ベクトル情報により特定される前記鍵管理情報の全ての前記暗号化情報を復号化情報により復号化し、全ての復号化した情報が、所定の無効情報に一致しない場合に、前記メディア鍵情報を生成する
ことを特徴とする請求項２記載のプログラム情報提供システム。
【請求項４】
前記第１相互認証処理は、
前記ユーザ端末にて、前記記録媒体に第１乱数情報を要求し、
前記記録媒体にて前記第１乱数情報を生成し、当該第１乱数情報を前記ユーザ端末に送信し、
前記ユーザ端末にて、第２乱数情報を生成し、前記記録媒体に送信すると共に前記記録媒体に前記第２乱数情報に対する第２応答情報を要求し、
前記記録媒体にて、前記第２乱数情報を前記メディア固有鍵情報に基づき暗号化した情報を第２応答情報として前記ユーザ端末に送信し、
前記ユーザ端末にて、前記受信した第２応答情報を前記生成したメディア固有鍵情報に基づき復号化し、当該復号化した結果が、前記第２乱数情報と等しければ、前記記録媒体より得た第１乱数情報を、前記生成したメディア固有鍵情報に基づき暗号化した第１応答情報を前記記録媒体に送信し、
前記記録媒体にて、受信した前記第１応答情報を前記メディア固有鍵情報に基づき復号化し、当該復号化した結果が前記第１乱数情報と等しければ、相互認証処理に成功したとして、当該相互認証処理に成功したとする情報を前記ユーザ端末に送信する処理である
ことを特徴とする請求項２又は請求項３記載のプログラム情報提供システム。
【請求項５】
前記サーバの前記第３記憶部は、
プログラム情報と前記ユーザ端末との秘密鍵情報或いは公開鍵情報を格納し、
前記サーバの前記第３制御部は、
前記ユーザ端末との前記第２相互認証処理に成功した場合、第２共通鍵情報を生成し、前記プログラム情報を前記第２共通鍵情報により暗号化して第２共通鍵暗号化プログラム情報を生成し、前記ユーザ端末に送信し、
前記ユーザ端末の前記第２制御部は、
前記サーバから受信した前記第２共通鍵暗号化プログラム情報を、生成した前記第２共通鍵情報に基づき復号化してプログラム情報を復元し、
前記記録媒体との前記第１相互認証処理に成功した場合に生成された第１共通鍵情報により、プログラム情報を暗号化して第１共通鍵暗号化プログラム情報を生成し、当該第１共通鍵暗号化プログラム情報をプログラム書き込みコマンドとともに前記記録媒体に送信し、
前記記録媒体の前記第１制御部は、
前記第１相互認証処理に成功した場合のみ、前記ユーザ端末から発行されたプログラム書き込みコマンドを受け入れ、生成した前記第１共通鍵情報により、前記第１共通鍵暗号化プログラム情報を復号化してプログラム情報を生成し、当該プログラム情報を前記第１記憶部に書き込む
ことを特徴とする請求項２乃至請求項４のいずれか１項記載のプログラム情報提供システム。
【請求項６】
前記記録媒体の第１記憶部は、
メデイア識別子情報に前記記録媒体の製造者、バージョンに関する情報を付加して格納し、
前記ユーザ端末の第２制御部は、
前記記録媒体の前記第１記憶部から前記メディア識別子情報を読み出し、これを前記サーバに送信し、
前記サーバの前記第３記憶部は、
前記記録媒体の製造者、バージョンに対応した複数のプログラム情報を格納し、
前記サーバの前記第３制御部は、
前記ユーザ端末より受信したメディア識別子情報をもとに、前記記録媒体に適合したプログラム情報を選択し、送信する
ことを特徴とする請求項２乃至請求項４のいずれか１項記載のプログラム情報提供システム。
【請求項７】
前記共通鍵情報は、前記第１乱数情報、前記第２乱数情報、及び前記暗号化媒体固有鍵情報に基づき生成される
ことを特徴とする請求項６記載のプログラム情報提供システム。
【請求項８】
前記共通鍵情報は、前記第１乱数情報または前記第２乱数情報のいずれか一方、及び前記暗号化媒体固有鍵情報に基づき生成される
ことを特徴とする請求項６記載のプログラム情報提供システム。
【請求項９】
前記記録媒体へ送信されるプログラム情報は、
当該プログラム情報の正当性を確認するための情報を含む
ことを特徴とする請求項１乃至請求項８のいずれか１項記載のプログラム情報提供システム。
【請求項１０】
前記記録媒体へ送信されるプログラム情報は、
当該プログラム情報を識別するための情報を含む
ことを特徴とする請求項１乃至請求項８のいずれか１項記載のプログラム情報提供システム。
【請求項１１】
前記記録媒体の第１記憶部は、
当該第１記憶部内における、情報を格納可能な区画に関する区画管理テーブルを格納し、
前記記録媒体の第１制御部は、
前記サーバからの前記プログラム情報の送信に応じて、前記区画管理テーブルに基づき前記プログラム情報を前記第１記憶部に格納する
ことを特徴とする請求項１乃至請求項１０のいずれか１項記載のプログラム情報提供システム。
【請求項１２】
前記サーバの前記第３記憶部は、
プログラム鍵情報、前記プログラム鍵情報により前記プログラム情報を暗号化したプログラム鍵暗号化プログラム情報、及びユーザ毎に異なるユーザ鍵情報に前記メディア識別子情報を対応付けした対応情報を格納し、
前記サーバの前記第３制御部は、
前記ユーザ端末との前記第２相互認証処理に成功した場合、前記対応情報に基づき前記記録媒体のメディア識別子情報に対応するユーザ鍵情報により、前記プログラム鍵情報を暗号化したユーザ鍵暗号化プログラム鍵情報を生成し、当該ユーザ鍵暗号化プログラム鍵情報及び前記プログラム鍵暗号化プログラム情報を前記ユーザ端末に送信し、
前記ユーザ端末の前記第２制御部は、
前記サーバから受信した前記プログラム鍵暗号化プログラム情報及び前記ユーザ鍵暗号化プログラム鍵情報を前記記録媒体に送信し、
前記記録媒体との前記第１相互認証処理に成功した場合、前記第１共通鍵情報を生成し、前記プログラム鍵暗号化プログラム情報、前記ユーザ鍵暗号化プログラム鍵情報、及び前記ユーザ鍵情報を前記メディア固有鍵情報と前記第１共通鍵情報により暗号化した暗号化ユーザ鍵情報を前記記録媒体から受信し、
前記第１共通鍵情報と前記メディア固有鍵情報により前記暗号化ユーザ鍵情報を復号化してユーザ鍵情報を生成し、当該ユーザ鍵情報、前記プログラム鍵暗号化プログラム情報、前記ユーザ鍵暗号化プログラム鍵情報に基づき前記プログラム情報を生成し、前記第１共通鍵情報により前記プログラム情報を暗号化した第１共通鍵暗号化プログラム情報を前記記録媒体に送信し、
前記記録媒体の前記第１記憶部は、
前記ユーザ鍵情報を前記メディア固有鍵情報により暗号化した情報を予め格納し、前記ユーザ端末から受信した前記プログラム鍵暗号化プログラム情報及び前記ユーザ鍵暗号化プログラム鍵情報を格納し、
前記記録媒体の前記第１制御部は、
前記ユーザ端末との前記第１相互認証処理に成功した場合、前記第１共通鍵情報を生成し、前記暗号化ユーザ鍵情報、前記プログラム鍵暗号化プログラム情報及び前記ユーザ鍵暗号化プログラム鍵情報を、前記ユーザ端末に送信し、
前記ユーザ端末から受信した前記第１共通鍵暗号化プログラム情報を前記第１共通鍵情報により復号化して前記プログラム情報を生成し、当該プログラム情報を前記第１記憶部に格納する
ことを特徴とする請求項２乃至請求項５のいずれか１項記載のプログラム情報提供システム。
【請求項１３】
ユーザによって管理されるユーザ端末と、当該ユーザ端末の発行するコマンドを介して情報を読み出し及び書き込み可能な記録媒体と、前記ユーザ端末にネットワークを介して接続されたサーバとを有し、当該サーバから前記記録媒体にプログラム情報を提供するプログラム情報提供方法であって、
前記記録媒体と前記ユーザ端末とに第１の相互認証処理を行わせる第１相互認証ステップと、
当該第１相互認証ステップにて前記第１の相互認証処理に成功した場合、
プログラム情報を前記第１記憶部に書き込むコマンドを実行するステップと、
前記ユーザ端末を介して前記記録媒体と前記サーバとに第２の相互認証処理を行わせる第２相互認証ステップと、
当該第２相互認証ステップにて前記第２の相互認証処理に成功した場合、前記サーバから送信されたプログラム情報を得るステップと、
プログラム情報を前記記録媒体の第１記憶部に書き込むコマンドを発行するステップと
を備えることを特徴とするプログラム情報提供方法。
【請求項１４】
プログラム情報を書き込み可能な第１記憶部と、
ユーザによって管理されるユーザ端末と第１相互認証処理を行い、当該第１相互認証処理に成功した場合のみ、前記ユーザ端末を介して、前記ユーザ端末にネットワークを介して接続されたサーバと第２相互認証処理を行い、当該第２相互認証処理に成功した場合のみ、前記サーバから送信されたプログラム情報を前記第１記憶部に書き込む第１制御部と
を備えることを特徴とする記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバから記録媒体にプログラム情報を提供するプログラム情報提供システム、プログラム情報提供方法、及びそのプログラム情報提供方法に用いられる記録媒体に関する。
【背景技術】
【０００２】
近年、インターネット等の通信ネットワークに接続された通信端末により電子化したコンテンツ情報をダウンロードして、閲覧することが可能となっている。
【０００３】
但し、コンテンツ情報は、容易に複製可能なため、著作権を無視する違法行為が生じ易い。このような違法行為からコンテンツ情報を保護する観点から、コンテンツ情報は、通常、暗号化鍵により、暗号化されて記録され、再生時に復号化される。この種のコンテンツ保護技術には、ＣＰＲＭ（Content Protection for Prerecorded Media）があり、例えばＳＤオーディオ（SD-Audio）、ＳＤビデオ（SD-Video）、ＳＤイー・パブリッシュ（SD-ePublish：ＳＤ電子出版）のように規格化された暗号化鍵方式を用いている（例えば、非特許文献１参照）。この非特許文献１で採用されている暗号化鍵方式は、タイトル鍵をメディア固有鍵で一重に暗号化する暗号化一重鍵方式である。一方、コンテンツ鍵がユーザ鍵及びメディア固有鍵で二重に暗号化された暗号化二重鍵方式が考えられている（例えば、特許文献１参照）。この種の暗号化二重鍵方式は、例えばＭＱｂｉｃ（登録商標）に用いられている。
【０００４】
つまり、上記のような暗号化によって、記録媒体をＳＲＭ（Secure Removable Media）として様々なＤＲＭ（Digital Rights Management）で利用しようという動きがある。ここで、記録媒体は、例えばＳＤカード等である。
【０００５】
しかしながら、それぞれのＤＲＭが記録媒体をＳＲＭとして利用しようとしたとき、記録媒体に予め備えられた機能だけでは不足する場合がある。そこで、それぞれのＤＲＭが要求する機能（プログラム情報）の追加、又は更新を可能とする記録媒体が望まれている。なお、記録媒体には、追加された機能を実行する環境が必要となる。
【０００６】
しかし、記録媒体が、上記のような追加・更新機能（プログラム情報）をセキュアに受け入れることができなければ、次のような問題が生じる。すなわち、こうした機能の追加・更新が、正規のユーザになりすました不正なユーザの記録媒体に対して行われることが起こり得る（なりすまし）。そして、記録媒体のなりすましが行われると、正規の記録媒体は、不正なユーザにより行われたプログラム機能解析などを通じて、悪意を持った機能（プログラム情報）を追加されたり、データを改ざんされたり等の攻撃を受ける可能性が生じる。つまり、記録媒体が、セキュリティホールを自ら造り出す可能性がある。
【非特許文献１】４Ｃ  エンティティ、ＬＬＣ、[ｏｎｌｉｎｅ］、インターネット＜ＵＲＬ：ｈｔｔｐ：／／www.４Ｃｅｎｔｉｔｙ．ｃｏｍ／、平成１８年２月１３日検索＞
【特許文献１】特開２００７−１３７８０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、なりすまし、改ざん等を防止しつつプログラム情報を記録媒体にセキュアに追加・更新可能なプログラム情報提供システム、プログラム情報提供方法、及びプログラム情報提供方法に用いられる記録媒体を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一態様に係るプログラム情報提供システムは、ユーザによって管理されるユーザ端末と、当該ユーザ端末の発行するコマンドを介して情報を読み出し及び書き込み可能な記録媒体と、前記ユーザ端末にネットワークを介して接続されたサーバとを有し、当該サーバから前記記録媒体にプログラム情報を提供するプログラム情報提供システムであって、前記記録媒体は、プログラム情報を書き込み可能な第１記憶部と、前記ユーザ端末と第１相互認証処理を行い、当該第１相互認証処理に成功した場合のみ、プログラム情報を前記第１記憶部に書き込むコマンドを実行することができる第１制御部を有し、前記ユーザ端末は、前記サーバと第２相互認証処理を行い、当該第２相互認証処理に成功した場合、前記サーバから送信されたプログラム情報を得て、プログラム情報を前記記録媒体の第１記憶部に書き込むコマンドを発行することを特徴とする。
【０００９】
また、本発明の一態様に係るプログラム情報提供方法は、ユーザによって管理されるユーザ端末と、当該ユーザ端末の発行するコマンドを介して情報を読み出し及び書き込み可能な記録媒体と、前記ユーザ端末にネットワークを介して接続されたサーバとを有し、当該サーバから前記記録媒体にプログラム情報を提供するプログラム情報提供方法であって、前記記録媒体と前記ユーザ端末とに第１の相互認証処理を行わせる第１相互認証ステップと、当該第１相互認証ステップにて前記第１の相互認証処理に成功した場合、プログラム情報を前記第１記憶部に書き込むコマンドを実行するステップと、前記ユーザ端末を介して前記記録媒体と前記サーバとに第２の相互認証処理を行わせる第２相互認証ステップと、当該第２相互認証ステップにて前記第２の相互認証処理に成功した場合、前記サーバから送信されたプログラム情報を得るステップと、プログラム情報を前記記録媒体の第１記憶部に書き込むコマンドを発行するステップとを備えることを特徴とする。
【００１０】
また、本発明の一態様に係る記録媒体は、プログラム情報を書き込み可能な第１記憶部と、ユーザによって管理されるユーザ端末と第１相互認証処理を行い、当該第１相互認証処理に成功した場合のみ、前記ユーザ端末を介して、前記ユーザ端末にネットワークを介して接続されたサーバと第２相互認証処理を行い、当該第２相互認証処理に成功した場合のみ、前記サーバから送信されたプログラム情報を前記第１記憶部に書き込む第１制御部とを備えることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、なりすまし、改ざん等を防止しつつプログラム情報を記録媒体にセキュアに追加・更新可能なプログラム情報提供システム、プログラム情報提供方法、及びプログラム情報提供方法に用いられる記録媒体を提供することができる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照して、本発明の一実施形態に係るプログラム情報提供システムを説明する。本明細書においては、例えば、情報Ａにより暗号化された情報ＢをＥｎｃ（Ａ：Ｂ）と表す。なお、以下詳細に説明するが、本発明の一実施形態に係るプログラム情報提供システムは、暗号化二重鍵方式を用いたものも含まれる。つまり、後述するプログラムＰが、プログラム鍵情報Ｋｐ及びユーザ鍵情報Ｋｕで二重に暗号化された方式である。
【００１３】
［第１実施形態］
図１は、本発明の第１実施形態に係るプログラム情報提供システムの概略図である。図１に示すように、プログラム情報提供システムは、ユーザ端末１０、記録媒体１６、及びサーバ２０を含む。ユーザ端末１０は、インターネット等のネットワーク３０を介してサーバ２０と接続されている。このプログラム情報提供システムは、記録媒体１６が、ユーザ端末１０と、サーバ２０との間で相互認証を行う点に特徴を有している。
【００１４】
図２（ａ）に示すように、記録媒体１６が、ユーザ端末１０と相互認証処理を行う（第１相互認証処理）一方、ユーザ端末１０がサーバ２０と相互認証処理を行う（第２相互認証処理）から成り立つ。この結果、本実施形態のプログラム情報提供システムでは、記録媒体１６が、ユーザ端末１０と、サーバ２０との間での相互認証を確立される。また、第１相互認証処理と第２相互認証処理の順序は、第１相互認証処理が先である必要はなく、逆に第２相互認証処理を先行させて、ユーザ端末１０がサーバ２０より、プログラム情報を受信して、これを一旦、ユーザ端末１０の記憶部１５に格納した後、第１相互認証処理を行い、記録媒体１６にサーバ２０から送信されたプログラム情報を格納させる順序でも良い。
【００１５】
なお、図１においては、ユーザ端末１０及びサーバ２０は、各々一台ずつ配置した構成を記載しているが、本発明は、この構成に限定されるものではない。例えば、ユーザ端末１０及びサーバ２０を、それぞれ複数配置してもよい。また、ユーザ端末１０は、パソコン以外に携帯電話等であってもよく、ユーザ個人所有のものに限らず、インターネットカフェ、コンビニエンスストア、ガソリンスタンド等に配置され公衆間で共用される端末であってもよい。
【００１６】
ユーザ端末１０は、表示制御部１１、入出力（Ｉ／Ｏ）部１２、ＲＡＭ１３、ＣＰＵ等の制御部１４、及びＨＤＤ（Hard Disc Drive）等の記憶部１５から構成されている。なお、ユーザ端末１０は、記録媒体１６に情報を書き込み、そして記録媒体１６から情報を読み出し可能に構成されている。
【００１７】
制御部１４は、記憶部１５に格納されたプログラム情報に基づきプログラムを実行するものである。制御部１４は、例えば記憶部１５から基本プログラム１４１を読み出し、実行する。基本プログラム１４１は、記録媒体１６との間で、相互認証、鍵交換及び暗号通信を行なうものであり、暗号／復号化機能をもっている。記憶部１５は、装置（ユーザ端末）毎に第１相互認証処理に必要なデバイス鍵情報Ｋｄ１を格納している。また、サーバ２０との第２相互認証に必要な共通秘密鍵情報Ｋｃｓ、公開鍵情報Ｋｐｂ、及び公開鍵情報Ｋｐｂと対になる秘密鍵情報Ｋｓｃなどが格納されることもある。
【００１８】
記録媒体１６は、プロセッサ（制御部）１６１、プログラムメモリ１６２、メモリコントローラ１６３、及びメモリセルアレイ（記憶部）１６４から構成されている。
【００１９】
プロセッサ１６１は、メモリセルアレイ１６４に格納されたコンテンツ情報等を読み出す、或いは、プログラムメモリ１６２に格納されたプログラム情報を読み出し、そのプログラム情報に基づきプログラムを実行するものである。プログラムメモリ１６２は、例えば、ランダムアクセス可能なＮＯＲ型のＥＥＰＲＯＭであり、プログラム情報を格納しプロセッサ１６１からのコマンドに応じて、プログラム情報を読み出すものである。
【００２０】
プログラムメモリ１６２には、記録媒体１６の基本的な動作全般を制御する基本プログラム１６２ａ等が予め格納されている。基本プログラム１６２ａは、記録媒体１６の外部と相互認証、鍵交換及び暗号通信を行なうものであり、暗号／復号化機能をもっている。この基本プログラム１６２ａは、プロセッサ１６１により実行される。プログラムメモリ１６２には、必要に応じてダウンロードされる各種プログラム情報Ｐが格納される。プログラム情報Ｐは、複数の情報（Ｐ１、Ｐ２、・・・、Ｐｍ）に分割され、以下では、適宜複数の情報（Ｐ１、Ｐ２、・・・、Ｐｍ）をまとめて「プログラム情報Ｐ」と称する。その他の例として、この基本プログラム１６２ａのみをプログラムメモリ１６２に格納し、ダウンロードしたプログラム情報Ｐはメモリセルアレイ１６４に格納されるようにしてもよい。そして、ユーザ端末１０に記録媒体１６が装着されたときに、プログラムメモリ１６２に都度、そのプログラム情報Ｐを転送・格納しても良い。この他、ユーザデータ領域１６４ｄには、必要に応じてダウンロードされる各種プログラム情報Ｐが暗号鍵情報（プログラム鍵情報Ｋｐ）で暗号化されて格納される（Ｅｎｃ（Ｋｐ：Ｐ））。プログラム情報Ｐは、複数の情報（Ｐ１、Ｐ２、・・・、Ｐｍ）に分割され、それぞれが別のプログラム鍵（Ｋｐ１、Ｋｐ２、・・・、Ｋｐｎ）で暗号化される。以下では、複数のプログラム鍵（Ｋｐ１、Ｋｐ２、・・・、Ｋｐｎ）をまとめて「プログラム鍵情報Ｋｐ」と称する。
【００２１】
メモリコントローラ１６３は、プロセッサ１６１からの命令に従い、メモリセルアレイ１６４に対する書込み／読み出し／消去等の制御を行う。例えば、メモリコントローラ１６３は、プロセッサ１６１より送られてくる書込み命令及びデータを読み取って、そのデータを書き込むべきメモリセルアレイ１６４のアドレスを決定するものである。メモリコントローラ１６３は、外部インタフェイス１６０を介して、プロセッサ１６１からのアクセスが後述するメモリセルアレイ１６４の保護領域１６４ｃのアクセスであるか否かを監視し、保護領域１６４ｃ外のアクセスである場合は、そのアクセスを禁止する。この場合、例えば、コマンド実行結果は、領域外アクセスエラーとなる。つまり、メモリコントローラ１６３は、メモリセルアレイ１６４を複数の領域に用途毎に分割して管理を行う。
【００２２】
メモリセルアレイ１６４は、例えば、ＮＡＮＤ型のＥＥＰＲＯＭであり、プログラム情報及びその他の情報を格納するものである。メモリセルアレイ１６４は、上述したように、複数の領域に用途毎に分割されている。分割された複数の領域は、システム領域(System Area)１６４ａ、秘匿領域(Hidden Area)１６４ｂ、保護領域(Protected Area)１６４ｃ、ユーザデータ領域(User Data Area)１６４ｄを含む。
【００２３】
システム領域１６４ａは、読取専用で記録媒体１６の外部からアクセス可能な領域である。秘匿領域１６４ｂは、読取専用で記録媒体１６が参照する領域であり、外部からのアクセスが一切不可となっている。保護領域１６４ｃは、相互認証処理に成功した場合に記録媒体１６の外部から読出／書込可能な領域である。ユーザデータ領域１６４ｄは、記録媒体１６の外部から自由に読出／書込可能な領域である。
【００２４】
具体的に、システム領域１６４ａには鍵管理情報ＭＫＢ(Media Key Block)及びメディア識別子情報ＩＤｍが記憶されている。
【００２５】
また、秘匿領域１６４ｂにはメディア固有鍵情報Ｋｍｕが記憶され、保護領域１６４ｃには暗号化ユーザ鍵Ｅｎｃ（Ｋｍｕ：Ｋｕ）が記憶され、ユーザデータ領域１６４ｄにはコンテンツ情報等の各種情報がユーザ鍵Ｋｕ、コンテンツ鍵データ等により二重に暗号化され格納されている。ここで、ユーザ鍵情報Ｋｕは、プログラム鍵情報Ｋｐに対する暗号／復号化鍵として用いられ、複数個の暗号化プログラム鍵情報Ｅｎｃ（Ｋｕ：Ｋｐ１）、Ｅｎｃ（Ｋｕ：Ｋｐ２）、…に対しても、共通に使用され得る。
【００２６】
サーバ２０は、ＨＤＤ等により構成された記憶部２１、ＣＰＵ等により構成された制御部２２を含む。
【００２７】
記憶部２１は、プログラムデータベース２１１、アクセス鍵データベース２１２、プログラム情報対メディア識別子情報対応データベース２１３、プログラム鍵データベース２１４、及びユーザ鍵対メディア識別子情報対応データベース２１５を備える。プログラムデータベース２１１は、プログラム情報Ｐを格納している。アクセス鍵データベース２１２は、ユーザ端末１０或いは記録媒体１６をサーバ２０がアクセスするためのアクセス鍵情報が格納される。アクセス鍵情報としてはデバイス鍵情報Ｋｄ、共通秘密鍵情報Ｋｃｓ、公開鍵情報Ｋｐｂ、その公開鍵情報Ｋｐｂと対になる秘密鍵情報Ｋｓｃなどが格納される。プログラム情報対メディア識別子情報対応データベース２１３は、記録媒体の製造者、及びバージョンの違いにより対応するプログラム情報Ｐが異なる場合、適合するプログラム情報Ｐをサーバ２０で選択させるための情報を格納している。サーバ２０は記録媒体１６のメディア識別子情報ＩＤｍに基づいて、プログラム情報対メディア識別子情報対応データベース２１３を参照して適合するプログラム情報を選択する。プログラム鍵データベース２１４は、プログラム鍵情報Ｋｐを格納している。ユーザ鍵対メディア識別子情報対応データベース２１５は、メディア識別子情報ＩＤｍに対応したユーザ鍵情報Ｋｕを格納している。実施例の変形として、プログラムデータベース２１１にプログラム情報Ｐをプログラム鍵情報Ｋｐにより暗号化した暗号化プログラム情報Ｅｎｃ（Ｋｐ：Ｐ）を格納しても良い。
【００２８】
制御部２２は、基本プログラム２２１を実行するものである。基本プログラム２２１は、ユーザ端末１０を介して、記録媒体１６と相互認証、鍵交換及び暗号通信を行なうものであり、暗号／復号化機能を有している。
【００２９】
次に、図３Ａ及び図３Ｂを参照して、本発明の第１実施形態に係るプログラム情報提供システムの動作を説明する。
【００３０】
図３Ａに示すように、先ず、記録媒体１６は、鍵管理情報ＭＫＢをユーザ端末１０に送信する（ステップＳ１０１）。
【００３１】
次に、ユーザ端末１０は、受信した鍵管理情報ＭＫＢをデバイス鍵情報Ｋｄ１によりＭＫＢ処理し、メディア鍵情報Ｋｍを生成する（ステップＳ１０２）。
【００３２】
ここで、図５及び図６を参照して、ステップＳ１０２のＭＫＢ処理について説明する。図５に示すように、鍵管理情報ＭＫＢは、メディア鍵情報Ｋｍをデバイス鍵行列情報ＫｄＭにより暗号化した情報である。デバイス鍵行列情報ＫｄＭは、行列要素、及びその行列要素に対応する複数の暗号化情報ｋ１１〜ｋ３４を有する情報である。
【００３３】
そして、鍵管理情報ＭＫＢは、図６に示すようにデバイス鍵情報Ｋｄにより復号化され、この復号の結果、メディア鍵情報Ｋｍが生成される。デバイス鍵情報Ｋｄは、行列要素の中から複数の暗号化情報を選択するベクトル情報、そのベクトル情報に対応して暗号化情報を復号化する復号化情報を有する情報である。例えば、図６（ａ）に示すように、デバイス鍵情報Ｋｄは、ベクトル情報として、１行１列目、１行２列目、３行３列目、２行４列目という情報を有している。このベクトル情報に対応して、デバイス鍵情報Ｋｄは、復号化情報ｋ１１、ｋ１２、ｋ３３、ｋ２４を有している。符号で表すと、Ｋｄ＝（１，１，３，２）（ｋ１１，ｋ１２，ｋ３３，ｋ２４）となる。なお、上述したようにデバイス鍵情報Ｋｄは、各装置によって異なる情報である。
【００３４】
図６（ａ）に示すデバイス鍵情報ＫｄによりＭＫＢ処理を行う場合、先ず、図６（ｂ）に示すように鍵管理情報ＭＫＢの情報ｋ１１［Ｋｍ］を、デバイス鍵情報Ｋｄの復号化情報ｋ１１で復号化する。復号結果が、予め設定された無効情報でなければ、同様に、図６（ｃ）〜図６（ｅ）に示すように復号化を行う。図６（ｃ）〜図６（ｅ）の処理にて全ての復号結果が、無効情報でなければ、メディア鍵情報Ｋｍが生成される。なお、図５及び図６に示すデバイス鍵行列情報ＫｄＭ及び鍵管理情報ＭＫＢは、簡略化のため３行４列で示したが、実際にＳＤカードの場合にあっては、１６行１６列である。
【００３５】
図３Ａ，及び図３Ｂに戻って、説明を続ける。ステップＳ１０２に続き、記録媒体１６は、メディア識別子情報ＩＤｍをユーザ端末１０に送信する（ステップＳ１０３）。図７は記録媒体がＳＤメモリカードの場合のメディア識別子情報の詳細である。ＳＤメモリカードの場合、メディア識別子情報はＭｅｄｉａ  Ｉｄｅｎｔｉｆｉｅｒと呼ばれる８バイトの情報から成り、０バイト目は製造者を識別する情報、１バイトから２バイト目はＳＤメモリカードのＯＥＭ先を表し、３バイト目はカードのバージョンを表すＰｒｏｄｕｃｔ  Ｒｅｖｉｓｉｏｎ情報、４バイト目から７バイト目はＳＤメモリカードの製品シリアル番号である。この例で示すように、メディア識別子情報より、記録媒体の製造者、製品バージョンの特定が可能である。
【００３６】
ユーザ端末１０は、メディア鍵情報Ｋｍとメディア識別子情報ＩＤｍとを共にハッシュ処理し、メディア固有鍵情報Ｋｍｕを生成する（ステップＳ１０４）。つまり、メディア固有鍵情報Ｋｍｕはメディア鍵情報Ｋｍをメディア識別子情報ＩＤｍにより暗号化した情報であり（Ｋｍｕ＝Ｅｎｃ（ＩＤｍ：Ｋｍ））、ステップＳ１０４において、メディア鍵情報Ｋｍは、メディア識別子情報ＩＤｍにより暗号化され、メディア固有鍵情報Ｋｍｕが生成される。ステップＳ１０４にて、記録媒体１６及びユーザ端末１０は、メディア固有鍵情報Ｋｍｕを互いに共有することとなる。
【００３７】
そして、ユーザ端末１０は、ステップＳ１０４にて生成したメディア固有鍵情報Ｋｍｕに基づき、一方、記録媒体１６は、秘匿領域１６４ｂに格納したメディア固有鍵情報Ｋｍｕに基づき、ユーザ端末１０と記録媒体１６との間で相互認証処理を行う。相互認証処理が成功したと判断すると、ユーザ端末１０及び記録媒体１６は、セッション鍵情報（共通鍵情報）Ｋｓ１を生成する（ステップＳ１０５）。
【００３８】
以上により、記録媒体１６とユーザ端末１０との間の相互認証処理（第１相互認証処理）が終了し、ユーザ端末１０と記録媒体１６とは、セッション鍵情報Ｋｓ１により暗号通信を行うことが可能となる。ここで、暗号通信とは、送信側でセッション鍵情報Ｋｓ１により暗号化した情報を送信し、受信側で受信した情報をセッション鍵情報Ｋｓ１により復号化する通信処理を意味する。セッション鍵情報Ｋｓ１はプログラム情報Ｐの暗号化やプログラム管理情報の暗号化などに使用することができる。
【００３９】
続いて、ユーザ端末１０とサーバ２０との間の相互認証処理（第２相互認証処理）に移行する。ユーザ端末１０とサーバ２０との相互認証処理は共通秘密鍵方式を用いるか、公開鍵方式を用いる。共通秘密鍵方式の場合は、ユーザ端末１０とサーバ２０との間で、共通秘密鍵情報Ｋｃｓを共有する。或いは公開鍵情報Ｋｐｂに対応する秘密鍵情報Ｋｓｃを用いる。この場合の暗号化は公開鍵情報Ｋｐｂを用い、復号化は秘密鍵情報Ｋｓｃを用いる以外は処理ステップに違いはない。以下、共通秘密鍵方式を用いたユーザ端末１０とサーバ２０との間の相互認証処理について説明する。
【００４０】
ユーザ端末１０とサーバ２０は、予め共通秘密鍵情報Ｋｃｓを共有している。共通秘密鍵情報Ｋｃｓに基づき、サーバ２０とユーザ端末１０との間で相互認証を行う。相互認証処理が成功したと判断すると、サーバ２０及びユーザ端末１０は、セッション鍵情報Ｋｓａを生成する（ステップＳ１０６）。
【００４１】
続いて、サーバ２０は、プログラムデータベース２１１よりプログラム情報Ｐを読み出し、セッション鍵情報Ｋｓａで暗号化した暗号化プログラム情報Ｅｎｃ（Ｋｓａ：Ｐ）を、ユーザ端末１０に送信する（ステップＳ１０７）。この他、サーバ２０はユーザ端末１０を介して、読み出された記憶媒体１６のメディア識別子ＩＤｍを受信し、プログラム情報対メディア識別子情報データベース２１３に基づき、ユーザ端末１０に接続された記憶媒体１６に適合したプログラム情報Ｐを選択してセッション鍵情報Ｋｓａで暗号化した暗号化プログラム情報Ｅｎｃ（Ｋｓａ：Ｐ）を、ユーザ端末１０に送信する（ステップＳ１０７）こともできる。
【００４２】
次に、ユーザ端末１０は、暗号化プログラム情報Ｅｎｃ（Ｋｓａ：Ｐ）を受信し、その受信した暗号化プログラム情報Ｅｎｃ（Ｋｓａ：Ｐ）をセッション鍵情報Ｋｓａにより復号化し、プログラム情報Ｐを生成する（ステップＳ１０８）。更に、ユーザ端末１０は、生成したプログラム情報Ｐを記録媒体１６とのセッション鍵情報Ｋｓ１で再び、暗号化プログラム情報Ｅｎｃ（Ｋｓ１：Ｐ）を生成し、記録媒体１６に送信する（ステップＳ１０９）。
【００４３】
続いて、記録媒体１６は、暗号化プログラム情報Ｅｎｃ（Ｋｓ１：Ｐ）を受信し、その受信した暗号化プログラム情報Ｅｎｃ（Ｋｓ１：Ｐ）をセッション鍵情報Ｋｓ１で復号化して、プログラム情報Ｐをプログラムメモリ１６２に格納する（ステップＳ１１０）。
【００４４】
なお、ステップＳ１０６からステップＳ１０８までの処理はステップＳ１０１からステップＳ１０５までの処理に先立って行い、その後、ステップＳ１０１からステップＳ１０９、ステップＳ１１０の順に行っても良い。
【００４５】
記録媒体１６に格納されたプログラム情報Ｐは、その情報の正当性をチェックするための情報を含む（例えば、Ｈａｓｈ値）。例えば、Ｈａｓｈ値が正当でなければ、プログラムメモリ１６２にプログラム情報Ｐを格納しない。正当性のチェックまた、プログラム情報Ｐは、記録媒体１６のみで実行可能な情報である。また、プログラム情報Ｐは、処理機能を識別するための情報を含む。
【００４６】
記録媒体１６とサーバ２０との間の相互認証処理（第２相互認証処理）以下のその他の実施例について図４Ａ〜図４Ｃを用いて説明する。図４Ａ〜図４ＣのステップＳ２０１からステップＳ２０５までの処理（第１相互認証処理）は、図３Ａ、図３ＢのステップＳ１０１からステップＳ１０５の処理と同じである。
【００４７】
ステップＳ２０５の後、記録媒体１６は、鍵管理情報ＭＫＢをユーザ端末１０に送信し（ステップＳ２０６）、ユーザ端末１０はこれを受信し、そのままサーバ２０に送信する（ステップＳ２０７）。
【００４８】
次に、サーバ２０は、鍵管理情報ＭＫＢをユーザ端末１０より受信し、受信した鍵管理情報ＭＫＢをデバイス鍵情報ＫｄによりＭＫＢ処理し、メディア鍵情報Ｋｍを生成する（ステップＳ２０８）。
【００４９】
ステップＳ２０８に続き、記録媒体１６は、メディア識別子情報ＩＤｍをユーザ端末１０に送信し（ステップＳ２０９）、ユーザ端末１０はこれを受信し、そのままサーバ２０に送信する（ステップＳ２１０）。
【００５０】
次に、サーバ２０は、メディア識別子情報ＩＤｍをユーザ端末１０より受信し、メディア鍵情報Ｋｍとメディア識別子情報ＩＤｍとを共にハッシュ処理し、メディア固有鍵情報Ｋｍｕを生成する（ステップＳ２１１）。ステップＳ２１１が完了すると、記録媒体１６及びサーバ２０は、メディア固有鍵情報Ｋｍｕを互いに共有することとなる。
【００５１】
そして、サーバ２０は、ステップＳ１２１にて生成したメディア固有鍵情報Ｋｍｕに基づき、一方、記録媒体１６は、秘匿領域１６４ｂに格納したメディア固有鍵情報Ｋｍｕに基づき、サーバ２０とユーザ端末１０との間で相互認証を行う（ステップＳ２１２）。相互認証処理が成功すれば、サーバ２０はユーザ端末１０が正当な端末と認識する。
【００５２】
以上により、ユーザ端末１０とサーバ２０との間の相互認証処理（第２相互認証処理）が終了し、サーバ２０と記録媒体１６とは、ユーザ端末１０を介し全ての認証がなされたことになる。これにより、サーバ２０からのプログラム情報Ｐは記録媒体１６になりすましなく格納することができる。本実施例ではセッション鍵情報Ｋｓによる暗号通信とは別の方法を説明する。
【００５３】
次に、サーバ２０に送信されたメディア識別子情報ＩＤｍを用い、サーバ２０はユーザ鍵対メディア識別子対応データベース２１３に基づき、記録媒体１６に対応するユーザ鍵情報Ｋｕを割り出し（ステップＳ２１３）、そのユーザ鍵情報Ｋｕによりプログラム鍵情報Ｋｐを暗号化して、暗号化プログラム鍵情報Ｅｎｃ（Ｋｕ：Ｋｐ）をユーザ端末１０へ送信する（ステップＳ２１４）。サーバ２０とユーザ端末１６で用いる通信はサッション鍵情報Ｋｓに基づく暗号通信を用いても良いが、暗号化プログラム鍵情報Ｅｎｃ（Ｋｕ：Ｋｐ）は相互認証処理の確立した記録媒体１６固有の情報になっているため、通信の途中で盗み取られても他の記録媒体には使うことができないため、暗号通信を用いなくても本質的にセキュアである。
【００５４】
次に、ユーザ端末１０は、暗号化プログラム鍵情報Ｅｎｃ（Ｋｕ：Ｋｐ）を受信し、そのまま、暗号化プログラム鍵情報Ｅｎｃ（Ｋｕ：Ｋｐ）を記録媒体１６に送信する（ステップＳ２１５）。記録媒体１６は、受信した暗号化プログラム鍵情報Ｅｎｃ（Ｋｕ：Ｋｐ）をユーザデータ領域１６４ｄに格納する（ステップＳ２１６）。
【００５５】
続いて、サーバ２０は、プログラムデータベース２１１よりプログラム情報Ｐを読み出して、対応するプログラム鍵情報Ｋｐで暗号化した暗号化プログラム情報Ｅｎｃ（Ｋｐ：Ｐ）を、ユーザ端末１０に送信する（ステップＳ２１７）。或いはプログラムデータベース２１１に既に暗号化プログラム情報Ｅｎｃ（Ｋｐ：Ｐ）が格納されている場合はこれを読み出し、ユーザ端末１０に送信する。サーバ２０とユーザ端末１６で用いる通信はセッション鍵情報Ｋｓに基づく暗号通信を用いても良いが、暗号化プログラム情報Ｅｎｃ（Ｋｕ：Ｋｐ）自体が既に暗号化された情報であるから、通信の途中で盗み取られても復号化できないので、暗号通信を用いなくても本質的にセキュアである。
【００５６】
次に、ユーザ端末１０は、受信した暗号化プログラム情報Ｅｎｃ（Ｋｐ：Ｐ）を受信し、そのまま暗号化プログラム情報Ｅｎｃ（Ｋｐ：Ｐ）を記録媒体１６に送信する（ステップＳ２１８）。続いて、記録媒体１６は、受信した暗号化プログラム情報Ｅｎｃ（Ｋｐ：Ｐ）をメモリセルアレイ１６４のユーザデータ領域１６４ｄに格納する（ステップＳ２１９）。
【００５７】
続いて、暗号化プログラム情報Ｅｎｃ（Ｋｕ：Ｐ）を記憶媒体１６のプログラムメモリ１６２へ展開する方法について述べる。ユーザ端末１０と記録媒体１６は前述のステップＳ２０１からステップＳ２０５までの第１認証処理が完了しているので、記録媒体１６の保護領域１６４ｃへのアクセスが可能となっている。ユーザ端末１０は記録媒体１６に対し、暗号化ユーザ鍵情報Ｅｎｃ（Ｋｍｕ：Ｋｕ）の読み出しを指令する。記録媒体１６は、保護領域１６４ｃから暗号化ユーザ鍵情報Ｅｎｃ（Ｋｍｕ：Ｋｕ）をセッション鍵Ｋｓ１で暗号化した情報をユーザ端末１０に送信する（ステップＳ２２０）。
【００５８】
続いて、ユーザ端末１０は受信した暗号化ユーザ鍵情報Ｅｎｃ（Ｋｍｕ：Ｋｕ）をセッション鍵Ｋｓ１で暗号化した情報をセッション鍵Ｋｓ１で復号化して、暗号化ユーザ鍵情報Ｅｎｃ（Ｋｍｕ：Ｋｕ）を得て、更に、共有しているメディア固有鍵情報Ｋｍｕで、暗号化ユーザ鍵情報Ｅｎｃ（Ｋｍｕ：Ｋｕ）を復号化して、ユーザ鍵情報Ｋｕを生成する（ステップＳ２２１）。
【００５９】
次に、ユーザ端末１０は、記録媒体１６に対し、暗号化プログラム鍵情報Ｅｎｃ（Ｋｕ：Ｋｐ）の読み出しを指令する。記録媒体１６は、ユーザデータ領域１６４ｄから暗号化プログラム鍵情報Ｅｎｃ（Ｋｕ：Ｋｐ）をユーザ端末１０に送信する（ステップＳ２２２）。
【００６０】
ユーザ端末１０は、受信した暗号化プログラム鍵情報Ｅｎｃ（Ｋｕ：Ｋｐ）をユーザ鍵情報Ｋｕで復号化して、プログラム鍵情報Ｋｐを生成する（ステップＳ２２３）。続いて、ユーザ端末１０は、記録媒体１６に対し、暗号化プログラム情報Ｅｎｃ（Ｋｐｕ：Ｐ）の読み出しを指令する。記録媒体１６はユーザデータ領域１６４ｄから暗号化プログラム情報Ｅｎｃ（Ｋｐ：Ｐ）をユーザ端末１０に送信する（ステップＳ２２４）。
【００６１】
ユーザ端末１０は、受信した暗号化プログラム情報Ｅｎｃ（Ｋｐ：Ｐ）をプログラム鍵情報Ｋｐで復号化して、プログラム情報Ｐを生成する（ステップＳ２２５）。
【００６２】
ユーザ端末１０は、復号化したプログラム情報Ｐを記録媒体１６のプログラムメモリ１６２に書き込むコマンドを発行し、プログラム情報Ｐをセッション鍵Ｋｓ１で暗号化した暗号化プログラム情報Ｅｎｃ（Ｋｓ１：Ｐ）を記録媒体１６に送信する（ステップＳ２２６）。
【００６３】
記録媒体１６は、受信した暗号化プログラム情報Ｅｎｃ（Ｋｓ１：Ｐ）をセッション鍵Ｋｓ１で復号化して、プログラムメモリ１６２に格納する（ステップＳ２２７）。
【００６４】
記録媒体１６に格納されたプログラム情報Ｐは、その情報の正当性をチェックするための情報を含む（例えば、Ｈａｓｈ値）。また、プログラム情報Ｐは、記録媒体１６のみで実行可能な情報である。また、プログラム情報Ｐは、処理機能を識別するための情報を含む。
【００６５】
以上説明した実施例は、ユーザデータ領域１６４ｃに暗号化プログラム鍵情報Ｅｎｃ（Ｋｕ：Ｋｐ）と暗号化プログラム情報Ｅｎｃ（Ｋｐ：Ｐ）が格納され、ステップＳ１０１（ステップＳ２０１）からステップＳ１０５（ステップＳ２０５）までの第１相互認証処理が完了すれば、いつでもプログラム情報Ｐをプログラムメモリ１６２に格納することができる。プログラムメモリ１６２において基本プログラム以外の領域がＲＡＭで構成される場合、プログラム情報Ｐを毎回格納する必要があるが、そうした場合、サーバ２０との通信を必要としないことに利点がある。またプログラム情報Ｐの一部Ｐｉのみを選択して、プログラムメモリ１６２に格納することもできる。
【００６６】
次に、図７を参照して、図３に示したステップＳ１０５における相互認証処理の説明をする。ステップＳ１０５における相互認証処理は、いわゆるＡＫＥ（Authentication and Key Exchange）と呼ばれる処理である。先ず、相互認証処理において、ユーザ端末１０は、第１乱数情報Ｒａ１を送信するように要求する情報を記録媒体１６に送信する（ステップＳ３０１）。
【００６７】
続いて、記録媒体１６は、第１乱数情報Ｒａ１を生成し（ステップＳ３０２）、第１乱数情報Ｒａ１をユーザ端末１０に送信する（ステップＳ３０３）。
【００６８】
次に、ユーザ端末１０は、第１乱数情報Ｒａ１を受信し（ステップＳ３０４）、第２乱数情報Ｒａ２を生成し（ステップＳ３０５）、その第２乱数情報Ｒａ２を記録媒体１６に送信する（ステップＳ３０６）。
【００６９】
続いて、記録媒体１６は、第２乱数情報Ｒａ２を受信し（ステップＳ３０７）、第２乱数情報Ｒａ２を受信した旨を通知する第２乱数情報受信完了通知情報をユーザ端末１０に送信する（ステップＳ３０８）。
【００７０】
次に、ユーザ端末１０は、第２応答情報Ｒｅ２を送信するように要求する情報を記録媒体１６に送信する（ステップＳ３０９）。
【００７１】
続いて、記録媒体１６は、第２乱数情報Ｒａ２をメディア固有鍵情報Ｋｍｕにより暗号化した情報Ｅｎｃ（Ｋｍｕ：Ｒａ２）を第２応答情報Ｒｅ２としてユーザ端末１０に送信する（ステップＳ３１０）。
【００７２】
次に、ユーザ端末１０は、ユーザ端末１０にて生成（図３、ステップＳ１０４）したメディア固有鍵情報Ｋｍｕにより、第２応答情報Ｒｅ２（情報Ｅｎｃ（Ｋｍｕ：Ｒａ２））を復号化する（ステップＳ３１１）。そして、ユーザ端末１０は、その復号結果が第２乱数情報Ｒａ２と等しいか否かを判断する（ステップＳ３１２）。ここで、ユーザ端末１０は、復号結果が第２乱数情報Ｒａ２と等しくないと判断すると（ステップＳ３１２、Ｎ）、相互認証は失敗であると判断し、相互認証処理を終了する。一方、ユーザ端末１０は、復号結果が第２乱数情報Ｒａ２と等しいと判断すると（ステップＳ３１２、Ｙ）、引き続き次の処理に移る。ユーザ端末１０は、第１乱数情報Ｒａ１をメディア固有鍵情報Ｋｍｕで暗号化した情報Ｅｎｃ（Ｋｍｕ：Ｒａ１）を第１応答情報Ｒｅ１として記録媒体１６に送信する（ステップＳ３１３）。
【００７３】
続いて、記録媒体１６は、秘匿領域１６４ｂに格納したメディア固有鍵情報Ｋｍｕにより、第１応答情報Ｒｅ１（情報Ｅｎｃ（Ｋｍｕ：Ｒａ１））を復号化する（ステップＳ３１４）。そして、ユーザ端末１０は、その復号結果が第１乱数情報Ｒａ１と等しいか否かを判断する（ステップＳ３１５）。ここで、記録媒体１６は、復号結果が第１乱数情報Ｒａ１と等しくないと判断すると（ステップＳ３１５、Ｎ）、相互認証は失敗であると判断し、相互認証処理を終了する。一方、記録媒体１６は、復号結果が第１乱数情報Ｒａ１と等しいと判断すると（ステップＳ３１５、Ｙ）、引き続き次の処理に移る。記録媒体１６は、相互認証処理に成功した旨を通知する相互認証結果情報をユーザ端末１０に送信する（ステップＳ３１６）。そして、記録媒体１６は、セッション鍵情報Ｋｓを生成する（ステップＳ３１７）。
【００７４】
一方、ユーザ端末１０は、相互認証結果情報を受信し（ステップＳ３１８）、セッション鍵情報Ｋｓを生成する（ステップＳ３１９）。セッション鍵情報Ｋｓは、第１乱数情報Ｒａ１と第２乱数情報Ｒａ２とメディア固有鍵情報Ｋｍｕを元に予め定められた方法に基づいて生成する。その他、セッション鍵情報Ｋｓは、第１乱数情報Ｒａ１とメディア固有鍵情報Ｋｍｕを元に生成しても良く、或いは第２乱数情報Ｒａ２とメディア固有鍵情報Ｋｍｕを元に生成してもよい。なお、図３のステップＳ１１０における相互認証処理は、図６に示したステップＳ２０１〜ステップＳ２１９と同様の処理が、ユーザ端末１０を介して、記録媒体１６とサーバ２０との間で行われる。即ち、先ず、記録媒体１６とサーバ２０との間で、第１乱数情報Ｒａ１及び第２乱数情報Ｒａ２を共有する。次に、その第１乱数情報Ｒａ１或いは第２乱数情報Ｒａ２をメディア固有鍵情報Ｋｍｕで暗号化し、その暗号化した応答情報を記録媒体１６とサーバ２０との間で送受信する。そして、応答情報をメディア固有鍵情報Ｋｍｕにより復号化した結果が、第１乱数情報Ｒａ１及び第２乱数情報Ｒａ２と等しければ、相互認証が成功したと判断され、セッション鍵情報が生成される。
【００７５】
上記のように本発明の第１実施形態によるプログラム情報提供システムによれば、記録媒体１６は、ユーザ端末１０と相互認証処理をした後、更にサーバ２０と相互認証処理を行い、相互認証処理が成功したと判断すると、追加プログラム情報を記録媒体１６に送信し、記録媒体１６のプログラムメモリ１６２に暗号化して格納することができる。したがって、本発明の第１実施形態によるプログラム情報提供システムは、なりすまし、改ざん等を防止しつつ、機能を追加・更新するプログラム情報を記録媒体１６にセキュアに格納できる。
【００７６】
［第２実施形態］
次に、図９を参照して、本発明の第２実施形態に係るプログラム情報提供システムについて説明する。図９は、第２実施形態に係るプログラム情報提供システムの概略図である。なお、第２実施形態において、第１実施形態と同様の構成には、同一符号を付し、その説明を省略する。
【００７７】
図９に示すように、第２実施形態に係るプログラム情報提供システムは、第１実施形態と比較して、記録媒体１６’の構成が異なる。
【００７８】
記録媒体１６’は、プログラムメモリ１６２に代わって、実行用プログラムメモリ１６２’を備えている。また、記録媒体１６’は、メモリセルアレイ１６４’の保護領域１６４ｃ’に暗号化ユーザ鍵Ｅｎｃ（Ｋｍｕ：Ｋｕ）、暗号化プログラム鍵情報Ｅｎｃ（Ｋｕ：Ｋｐ）等を格納する領域に加え、暗号化プログラム情報Ｅｎｃ（Ｋｐ：Ｐ）を格納するプログラム格納領域１６４ｃａ’を有する。
【００７９】
実行用プログラムメモリ１６２’は、ＳＲＡＭ等の揮発性メモリにより構成されている。実行用プログラムメモリ１６２’は、基本プログラム１６２ａをメモリセルアレイ１６４’から読み出し、一時的にその基本プログラム１６２ａを格納する。或いは、プロセッサ１６１からの要求に応じて、プログラム格納領域１６４ｃａ’から復号化後のプログラム情報Ｐを読み出し、一時的にそのプログラム情報Ｐを格納する。
【００８０】
プログラム格納領域１６４ｃａ’には、必要に応じてサーバ２０からメモリコントローラ１６３を介して受信したプログラム情報Ｐが格納される。
【００８１】
記録媒体１６’とユーザ端末１０及びサーバ２０との間で相互認証処理に成功した場合、記録媒体１６’においてプロセッサ１６１は、受信したプログラム情報Ｐを、メモリコントローラ１６３を介してプログラム格納領域１６４ｃａ’に暗号化後、格納する。
【００８２】
上記のような第２実施形態に係るプログラム情報提供システムによれば、第１実施形態と同様の効果を奏することができる。また、第２実施形態にかかる記録媒体１６’は、第１実施形態のＮＯＲ型ＥＥＰＲＯＭにより構成されたプログラムメモリ１６２に代わって、ＳＲＡＭ等の揮発性メモリを有する実行用プログラムメモリ１６２’を備えている。したがって、第２実施形態に係る記録媒体１６’は、第１実施形態の記録媒体１６と比較して安価に製造することが可能である。
【００８３】
［第３実施形態］
次に、図１０を参照して、本発明の第３実施形態に係るプログラム情報提供システムについて説明する。図１０は、第３実施形態に係るプログラム情報提供システムの概略図である。なお、第３実施形態において、第１及び第２実施形態と同様の構成には、同一符号を付し、その説明を省略する。
【００８４】
図１０に示すように、第３実施形態に係るプログラム情報提供システムは、第２実施形態と比較して、記録媒体１６’’の構成が異なる。
【００８５】
第３実施形態は、記録媒体１６’’において、システム領域１６４ａ’’、及び保護領域１６４ｃ’’の構成が第２実施形態と異なる。
【００８６】
システム領域１６４ａ’’には、鍵管理情報ＭＫＢ及びメディア識別子情報ＩＤｍ、区画管理テーブルＴ１が記憶されている。ここで、区画管理テーブルＴ１は、保護領域１６４ｃ’’において、サーバ２０から受信したプログラム情報Ｐを格納するプログラム情報格納区画１６４ｃｂ’’をプログラム格納領域１６４ｃａ’’に設定する情報を含む。
【００８７】
保護領域１６４ｃ’’は、暗号化ユーザ鍵情報Ｅｎｃ（Ｋｍｕ：Ｋｕ）を格納する。また、保護領域１６４ｃ’’には、プログラム格納領域１６４ｃａ’’が設けられている。また、プログラム格納領域１６４ｃａ’は、サーバ２０より受信したプログラム情報Ｐを暗号化した後に、格納する複数のプロクラム情報格納区画１６４ｃｂ’’を有している。メモリセルアレイ１６４’’がＮＡＮＤ型ＥＥＰＲＯＭであれば、アクセス単位が５１２バイト、１０２４バイトなどが一般的であり、それに対応するようにプログラム情報格納区画１６４ｃｂ’’は、４０９６バイト等に設定される。上記構成は、例えば、２つのプログラム情報を記録媒体１６’’に格納する場合、一方のプログラム情報を第１プログラム情報格納区画に格納し、他方のプログラム情報を第２のプログラム情報格納区画に格納するものである。
【００８８】
記録媒体１６’’とユーザ端末１０及びサーバ２０との間で相互認証処理に成功した場合、記録媒体１６’’においてプロセッサ１６１は、システム領域１６４ａ’’から区画管理テーブルＴ１を読み出し、その区画管理テーブルＴ１に基づき、受信したプログラム情報Ｐを格納するプログラム情報格納区画１６４ｃｂ’’をメモリコントローラ１６３に通知する。メモリコントローラ１６３は、受信したプログラム情報Ｐを暗号化した後、通知されたプログラム情報格納区画１６４ｃｂ’’に格納するアドレスを指定する。
【００８９】
上記第３実施形態に係るプログラム情報提供システムによれば、第２実施形態と同様の効果を得ることができる。
【００９０】
以上、発明の一実施形態を説明したが、本発明はこれらに限定されるものではなく、発明の趣旨を逸脱しない範囲内において種々の変更、追加、置換等が可能である。上記一実施形態においては、一台のサーバ２０にて、プログラム鍵情報Ｋｐ、暗号化プログラム情報Ｅｎｃ（Ｋｐ：Ｐ）、ユーザ鍵情報Ｋｕをまとめて管理しているが、複数のサーバが、プログラム鍵情報Ｋｐ、暗号化プログラム情報Ｅｎｃ（Ｋｐ：Ｐ）、ユーザ鍵情報Ｋｕを別々に管理する構成であってもよい。
【図面の簡単な説明】
【００９１】
【図１】本発明の第１実施形態に係るプログラム情報提供システムの概略図である。
【図２】本発明の第１実施形態に係るプログラム情報提供システムの動作の概要を示す図である。
【図３Ａ】本発明の第１実施形態に係るプログラム情報提供システムの動作を示すフローチャートである。
【図３Ｂ】本発明の第１実施形態に係るプログラム情報提供システムの動作を示すフローチャートである。
【図４Ａ】本発明の第１実施形態に係るプログラム情報提供システムの動作を示すフローチャートである。
【図４Ｂ】本発明の第１実施形態に係るプログラム情報提供システムの動作を示すフローチャートである。
【図４Ｃ】本発明の第１実施形態に係るプログラム情報提供システムの動作を示すフローチャートである。
【図５】鍵管理情報ＭＫＢの説明図である。
【図６】図３のステップＳ１０２のＭＫＢ処理の説明図である。
【図７】メディア識別子情報ＩＤｍの説明図である。
【図８】図３のステップＳ１０５の相互認証処理を示すフローチャートである。
【図９】本発明の第２実施形態に係るプログラム情報提供システムの概略図である。
【図１０】本発明の第３実施形態に係るプログラム情報提供システムの概略図である。
【符号の説明】
【００９２】
１０…ユーザ端末、１１…表示制御部、１２…Ｉ／Ｏ、１３…ＲＡＭ、１４…制御部、１４１…基本プログラム、１５…記憶部、１６、１６’、１６’’…記録媒体、１６０…外部インタフェイス、１６１…プロセッサ、１６２…プログラムメモリ、１６２’ …実行用プログラムメモリ、１６３…メモリコントローラ、１６４、１６４’、１６４’’…メモリセルアレイ、２０…サーバ、２１…記憶部、２１１…プログラムデータベース、２１２…アクセス鍵データベース、２１３…プログラム情報対メディア識別子対応データベース、２１４…プログラム鍵データベース、２１５…ユーザ鍵対メディア識別子情報対応データベース、２２…制御部、２２１…基本プログラム、３０…ネットワーク。
【図１】
2008269088.tif 000003
【図２】
2008269088.tif 000004
【図３Ａ】
2008269088.tif 000005
【図３Ｂ】
2008269088.tif 000006
【図４Ａ】
2008269088.tif 000007
【図４Ｂ】
2008269088.tif 000008
【図４Ｃ】
2008269088.tif 000009
【図５】
2008269088.tif 000010
【図６】
2008269088.tif 000011
【図７】
2008269088.tif 000012
【図８】
2008269088.tif 000013
【図９】
2008269088.tif 000014
【図１０】
2008269088.tif 000015