(57)【要約】      （修正有）【課題】  ユーザが持つコンテンツ再生の権利を保護し、再生回数制限があるライセンスデータを用いた再生において、頭出しや試聴などを目的とした一部の再生においては、ライセンスデータを消費する再生とみなさない再生装置を提供する。【解決手段】  ライセンスデータの消費の判定として、再生時間、すなわち、復号部３０４における復号処理までの経過時間を測定する。ライセンスデータが消費する再生とみなされなかった場合には、ライセンスデータを出力前の状態に戻す。【選択図】  図３
2006119755.tif 000002
【特許請求の範囲】
【請求項１】
暗号化コンテンツデータを復号するためのコンテンツ鍵を含むコンテンツ利用情報を記録し、外部に前記コンテンツ利用情報を提供するコンテンツ利用情報記憶装置であって、
外部との間でデータの授受を行う制御するインタフェースと、
前記コンテンツ利用情報を格納する記憶部と、
前記インタフェースを介して、第１の対称鍵を、コンテンツ利用情報提供先との間で共有する第１の暗号処理部と、
前記インタフェースを介して、前記第１の対称鍵を用いてコンテンツ利用情報の出力毎にテンポラルに生成される第２の対称鍵を前記コンテンツ利用情報提供先との間で共有し、前記第２の対称鍵を前記コンテンツ利用情報出力後に破棄する第２の暗号処理部と、
前記第２の対称鍵によって前記コンテンツ利用情報を暗号化して、前記インタフェースを介して出力する第３の暗号処理部と、
前記第２の対称鍵と該コンテンツ利用情報の出力に関する進行状態を示す第１の状態情報を含む処理履歴情報を格納するログ記憶部と、
前記コンテンツ利用情報を前記コンテンツ利用情報提供先における処理の進行状態を示す第２の状態情報を含む提供先状態情報とこの提供先状態情報に対する電子署名とを連結したデータを、前記インタフェースを介して受け取り、前記第１の暗号処理部にて共有している第１の対称鍵、および、前記コンテンツ利用情報出力時に前記第２の暗号処理部にて共有し前記ログ記憶部に格納された第２の対称鍵によって、その正当性を検証し、正当な場合、前記記憶部に格納されたこの提供先状態情報の対象となるコンテンツ利用情報の復元を許可するか否か判断する検証部と、
前記記憶部に格納されている前記コンテンツ利用情報の出力を制御する制御部とを備え、
前記制御部は、
前記コンテンツ利用情報を出力する場合、出力するコンテンツ利用情報に含まれるこのコンテンツ利用情報の出力に関する制御情報を解釈し、出力用ライセンス利用情報またはこのライセンス利用情報を第３の暗号処理部に与えると共に、前記記憶部に格納されているこのライセンス利用情報の制御情報の変更あるいはこのコンテンツ利用情報の出力禁止し、
コンテンツ利用情報提供先から前記提供先状態情報を受け取り、かつ、前記検証部において前記対象コンテンツ利用情報の復元が許可された場合、このライセンス利用情報の制御情報を出力前の状態に戻す、あるいはこのコンテンツ利用情報の出力を許可する、
コンテンツ利用情報記憶装置。
【請求項２】
暗号化コンテンツデータを復号するためのコンテンツ鍵を含むコンテンツ利用情報の提供を受けて、暗号化コンテンツデータを復号または再生するコンテンツ利用装置であって、
外部との間でデータの授受を制御するインタフェースと、
前記インタフェースを介して、第１の対称鍵を、コンテンツ利用情報提供元との間で共有する第１の暗号処理部と、
前記インタフェースを介して、前記第１の対称鍵を用いてコンテンツ利用情報を受け取る毎にテンポラルに生成され第２の対称鍵を前記コンテンツ利用情報提供元との間で共有し、前記第２の対称鍵を前記コンテンツ利用情報受け取り後破棄する第２の暗号処理部と、
前記インタフェースを介して受け取った暗号化されたコンテンツ利用情報を、前記第２の対称鍵によって復号しライセンス利用情報を抽出する第３の暗号処理部と、
前記第３の暗号処理部によって抽出された前記コンテンツ利用情報を格納する記憶部と、
前記第２の対称鍵とこのコンテンツ利用情報の受け取りと受け取り後の処理の進行状態を示す状態情報を含む処理履歴情報を格納するログ記憶部と、
前記ログ記憶部に格納された前記状態情報を含む提供先状態情報を生成し、この提供先状態情報に対する前記第１の暗号処理部にて共有している第１の対称鍵および前記コンテンツ利用情報受け取り時に前記第２の暗号処理部にて共有し前記ログ記憶部に格納された第２の対称鍵による電子署名データを演算し、両者を連結した署名付き提供先状態情報を、前記インタフェースを介して出力する署名部とを、
備えることを特徴とするコンテンツ利用装置。
【請求項３】
暗号化コンテンツデータを復号するためのコンテンツ鍵を含むコンテンツ利用情報の提供を受けて、暗号化コンテンツデータを復号または再生するコンテンツ利用装置であって、
外部との間でデータの授受を制御するインタフェースと、
前記インタフェースを介して、第１の対称鍵を、コンテンツ利用情報提供元との間で共有する第１の暗号処理部と、
前記インタフェースを介して、前記第１の対称鍵を用いてコンテンツ利用情報を受け取る毎にテンポラルに生成される第２の対称鍵を前記コンテンツ利用情報提供元との間で共有し、前記第２の対称鍵を前記コンテンツ利用情報受け取り後破棄する第２の暗号処理部と、
前記インタフェースを介して受け取った暗号化されたコンテンツ利用情報を、前記第２の対称鍵によって復号しライセンス利用情報を抽出する第３の暗号処理部と、
前記暗号化コンテンツデータを、前記第３の暗号処理部によって抽出された前記コンテンツ利用情報に含まれるコンテンツ鍵によって復号するコンテンツ復号部と、
前記第２の対称鍵と該コンテンツ利用情報の受け取りと受け取り後の処理の進行状態を示す状態情報を含む処理履歴情報を格納するログ記憶部と、
前記ログ記憶部に格納された前記状態情報を含む提供先状態情報を生成し、この提供先状態情報に対する前記第１の暗号処理部にて共有している第１の対称鍵および前記コンテンツ利用情報受け取り時に前記第２の暗号処理部にて共有し前記ログ記憶部に格納された第２の対称鍵による電子署名データを演算し、両者を連結した署名付き提供先状態情報を、前記インタフェースを介して出力する署名部とを、
備えることを特徴とするコンテンツ利用装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンテンツ利用情報、あるいは、コンテンツデータの再生に関する制限情報に基づいて、コンテンツデータの利用を制限する機能を備えたストレージデバイスから、出力されたこれらの情報を受け取ってコンテンツを再生する装置において、受け取ったコンテンツ利用情報、あるいは、コンテンツデータによる再生が行われなかった場合、あるいは、再生が試聴の範囲であり、再生とみなさない場合、ストレージデバイス内の再生に関する制限情報を安全に出力前の状態に復元する技術に関する。
【背景技術】
【０００２】
コンテンツデータを保護する著作権保護方式として、コンテンツデータを暗号化し、その復号鍵（以下、コンテンツ鍵と称す）を含むコンテンツ利用情報（以下、ライセンスデータと称す）の秘匿性を高めて管理する方式がよく知られている。このような、ライセンスデータの秘匿性を高めた著作権保護方式を利用したコンテンツデータ配信システムとして、例えば、以下の特許文献１では、ライセンスデータを非暗号化の状態で扱う装置として、サーバ装置、ストレージデバイスとしてのメモリカード、利用装置としてのデコーダの３つの装置を挙げ、サーバ装置とストレージデバイス、および、ストレージデバイスと利用装置の間でのライセンスデータの送受信を、これらの装置間に暗号化通信路を構築し、その暗号化通信路を介して行い、また、これらの記録装置、ストレージデバイス、利用装置には、暗号化されたライセンスデータを扱えるＴＲＭ(Tamper-Resistant-Module)を備えることが示されている。
【０００３】
暗号化通信路の構築では、まず、ライセンスデータを提供する装置（以下、ライセンス提供装置と称す）が、公開鍵を含んだ証明書をライセンスデータを享受する側装置（以下、ライセンス享受装置と称す）に送信する。そして、ライセンス提供装置が、この証明書を検証し、検証の結果、ライセンス供受装置から送信された証明書が正規の証明書あり、かつ、証明書破棄リストによって、無効とされていない場合に、この証明書に含まれる公開鍵を利用して、装置間で鍵交換を行う。そして、ライセンス提供装置からライセンス享受装置に送られた鍵で、暗号化されたライセンスデータが、ライセンス提供装置からライセンス享受装置に送信される。
【０００４】
ＴＲＭは、物理的に秘匿性が保護された回路モジュールであって、暗号化通信路を介してのみ、ライセンスデータをやり取りすることができるよう構成されている。
【０００５】
なお、ライセンスデータの取得時には、メモリカードはサーバ装置と通信可能な端末装置に装着され、端末装置を介して、サーバ装置からライセンスデータを受信する。また、コンテンツの利用時には、メモリカードはデコーダを内蔵した端末装置に装着され、端末装置を介して、デコーダへライセンスデータを送信する。
【０００６】
また、このシステムでは、メモリカード自身が、ライセンスデータ内の制限情報にしたがって、ライセンスデータの出力を制限することができる。たとえば、ライセンスデータは、このライセンスデータを利用してコンテンツデータを再生できる回数を示す制御情報を含んでいる。再生時、メモリカードは、ライセンスデータ内の再生回数の制限情報を確認し、ライセンスデータの出力可否を判断する。出力時には、この制御情報の更新を行い、再生が繰り返されたのち、最終的にはライセンスデータの出力が禁止される。
【０００７】
以上のように、コンテンツ配信サービスにおいては、コンテンツデータの暗号化と、ライセンスデータの秘匿によって、コンテンツに係る著作権保護の徹底が図られている。さらに、再生回数制御やコピー回数制御などの利用制限の導入によって、様々なサービス形態への適応を可能としている。
【０００８】
このようにして、コンテンツ著作権の保護の徹底を図ることにより、コンテンツ権利者の権利を守り、コンテンツの安全な提供を可能にしている。その結果、配信サービスの対象となるコンテンツのラインアップも増え、コンテンツ配信を受けるユーザのニーズを、より広範に満たし得るようになる。    
【特許文献１】特開２００２−８７５５５０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上記のように、従来のコンテンツ配信システムにおいては、再生回数を制限するライセンデータを、ストレージデバイスから再生装置に対して送信したが、そのライセンスデータを用いた再生が、再生装置において行われなかった場合、ユーザは再生する権利を失ってしまう。また、試聴を目的として、コンテンツの一部を再生した場合においても、同様にユーザは、１回の再生する権利を失ってしまう。
【００１０】
また、コピー回数を制限するライセンスデータを、コピーを目的として他の記憶装置に送信したが、他の記憶装置において書き込みに失敗した場合、ユーザは複製する権利を失ってしまう。
【００１１】
さらに、ライセンスデータを、ムーブを目的として他の記憶装置に送信し、他の記憶装置において書き込みに失敗した場合、ユーザはライセンスデータを失ってしまう。
【００１２】
本発明は、こうした状況に鑑みてなされたものであり、その目的は、コンテンツの著作権の保護しながら、ユーザが持つ権利を守ることができるストレージデバイス、再生装置を提供することにある。より詳細には、ストレージデバイスから送信されたライセンスデータの消費（再生装置による再生あるいはストレージデバイスに対する記憶）が、完遂されなかった場合、安全に且つ迅速に当該ライセンスデータを送信元のストレージデバイスの内に復元するための機能を備えるストレージデバイスおよび再生装置を提供することにある。
【課題を解決するための手段】
【００１３】
上記課題に鑑み、本発明はそれぞれ以下の特徴を有する。
【００１４】
請求項１の発明は、暗号化コンテンツデータを復号するためのコンテンツ鍵を含むコンテンツ利用情報を記録し、外部に前記コンテンツ利用情報を提供するコンテンツ利用情報記憶装置であって、外部との間でデータの授受を行う制御するインタフェースと、前記コンテンツ利用情報を格納する記憶部と、前記インタフェースを介して、第１の対称鍵を、コンテンツ利用情報提供先との間で共有する第１の暗号処理部と、前記インタフェースを介して、前記第１の対称鍵を用いてコンテンツ利用情報の出力毎にテンポラルに生成される第２の対称鍵を前記コンテンツ利用情報提供先との間で共有し、前記第２の対称鍵を前記コンテンツ利用情報出力後に破棄する第２の暗号処理部と、前記第２の対称鍵によって前記コンテンツ利用情報を暗号化して、前記インタフェースを介して出力する第３の暗号処理部と、前記第２の対称鍵と該コンテンツ利用情報の出力に関する進行状態を示す第１の状態情報を含む処理履歴情報を格納するログ記憶部と、前記コンテンツ利用情報を前記コンテンツ利用情報提供先における処理の進行状態を示す第２の状態情報を含む提供先状態情報とこの提供先状態情報に対する電子署名とを連結したデータを、前記インタフェースを介して受け取り、前記第１の暗号処理部にて共有している第１の対称鍵、および、前記コンテンツ利用情報出力時に前記第２の暗号処理部にて共有し前記ログ記憶部に格納された第２の対称鍵によって、その正当性を検証し、正当な場合、前記記憶部に格納されたこの提供先状態情報の対象となるコンテンツ利用情報の復元を許可するか否か判断する検証部と、前記記憶部に格納されている前記コンテンツ利用情報の出力を制御する制御部とを備え、前記制御部は、前記コンテンツ利用情報を出力する場合、出力するコンテンツ利用情報に含まれるこのコンテンツ利用情報の出力に関する制御情報を解釈し、出力用ライセンス利用情報またはこのライセンス利用情報を第３の暗号処理部に与えると共に、前記記憶部に格納されているこのライセンス利用情報の制御情報の変更あるいはこのコンテンツ利用情報の出力禁止し、コンテンツ利用情報提供先から前記提供先状態情報を受け取り、かつ、前記検証部において前記対象コンテンツ利用情報の復元が許可された場合、このライセンス利用情報の制御情報を出力前の状態に戻す、あるいはこのコンテンツ利用情報の出力を許可することを特徴とする。
【００１５】
請求項２の発明は、暗号化コンテンツデータを復号するためのコンテンツ鍵を含むコンテンツ利用情報の提供を受けて、暗号化コンテンツデータを復号または再生するコンテンツ利用装置であって、外部との間でデータの授受を制御するインタフェースと、前記インタフェースを介して、第１の対称鍵を、コンテンツ利用情報提供元との間で共有する第１の暗号処理部と、前記インタフェースを介して、前記第１の対称鍵を用いてコンテンツ利用情報を受け取る毎にテンポラルに生成され第２の対称鍵を前記コンテンツ利用情報提供元との間で共有し、前記第２の対称鍵を前記コンテンツ利用情報受け取り後破棄する第２の暗号処理部と、前記インタフェースを介して受け取った暗号化されたコンテンツ利用情報を、前記第２の対称鍵によって復号しライセンス利用情報を抽出する第３の暗号処理部と、前記第３の暗号処理部によって抽出された前記コンテンツ利用情報を格納する記憶部と、前記第２の対称鍵とこのコンテンツ利用情報の受け取りと受け取り後の処理の進行状態を示す状態情報を含む処理履歴情報を格納するログ記憶部と、前記ログ記憶部に格納された前記状態情報を含む提供先状態情報を生成し、この提供先状態情報に対する前記第１の暗号処理部にて共有している第１の対称鍵および前記コンテンツ利用情報受け取り時に前記第２の暗号処理部にて共有し前記ログ記憶部に格納された第２の対称鍵による電子署名データを演算し、両者を連結した署名付き提供先状態情報を、前記インタフェースを介して出力する署名部とを備えることを特徴とする。
【００１６】
請求項３の発明は、暗号化コンテンツデータを復号するためのコンテンツ鍵を含むコンテンツ利用情報の提供を受けて、暗号化コンテンツデータを復号または再生するコンテンツ利用装置であって、外部との間でデータの授受を制御するインタフェースと、前記インタフェースを介して、第１の対称鍵を、コンテンツ利用情報提供元との間で共有する第１の暗号処理部と、前記インタフェースを介して、前記第１の対称鍵を用いてコンテンツ利用情報を受け取る毎にテンポラルに生成される第２の対称鍵を前記コンテンツ利用情報提供元との間で共有し、前記第２の対称鍵を前記コンテンツ利用情報受け取り後破棄する第２の暗号処理部と、前記インタフェースを介して受け取った暗号化されたコンテンツ利用情報を、前記第２の対称鍵によって復号しライセンス利用情報を抽出する第３の暗号処理部と、前記暗号化コンテンツデータを、前記第３の暗号処理部によって抽出された前記コンテンツ利用情報に含まれるコンテンツ鍵によって復号するコンテンツ復号部と、前記第２の対称鍵と該コンテンツ利用情報の受け取りと受け取り後の処理の進行状態を示す状態情報を含む処理履歴情報を格納するログ記憶部と、前記ログ記憶部に格納された前記状態情報を含む提供先状態情報を生成し、この提供先状態情報に対する前記第１の暗号処理部にて共有している第１の対称鍵および前記コンテンツ利用情報受け取り時に前記第２の暗号処理部にて共有し前記ログ記憶部に格納された第２の対称鍵による電子署名データを演算し、両者を連結した署名付き提供先状態情報を、前記インタフェースを介して出力する署名部とを備えることを特徴とする。
【００１７】
本発明の特徴ないしその技術的意義は、以下に示す実施の形態の説明により更に明らかとなろう。ただし、以下の実施の形態は、あくまでも、本発明の一つの実施形態であって、本発明ないし各構成要件の用語の意義等は、以下の実施の形態に記載されたものに制限されるものではない。
【発明の効果】
【００１８】
本発明によれば、再生回数制限があるライセンスデータを用いた再生において、頭出しや試聴などを目的とした一部の再生においては、ライセンスを消費する再生とみなさないため、ユーザが持つコンテンツ再生の権利を保護することができる。
【発明を実施するための最良の形態】
【００１９】
本発明の実施の形態について、図を参照しながら以下に説明する。
【００２０】
（第１の実施の形態）
図１は、実施の形態に係るデータ管理システム１０の全体構成を示す。
【００２１】
データ管理システム１０は、データを送信する配信サーバ１００、配信サーバ１００から送信されたデータをストレージデバイス２００に記録する端末装置１５０、ストレージデバイス２００に記録されたデータを再生する再生装置３００、データを記録保持するストレージデバイス２００を備える。
【００２２】
※データ管理システム
本実施の形態のストレージデバイス２００は、データを保持する記憶媒体だけでなく、端末装置１５０または再生装置３００などのホスト装置との間で、データの入出力を制御するコントローラなどの構成を備える、ドライブ一体型のストレージデバイスである。本実施の形態では、ストレージデバイス２００として、ハードディスクドライブを例にとって説明する。
【００２３】
従来のハードディスクドライブは、一つのホスト装置に固定的に接続されて使用されるのが一般的であったが、本実施の形態のストレージデバイス２００は、端末装置１５０および再生装置３００などのホスト装置に対して、着脱が自在になされるよう構成されている。すなわち、本実施の形態のストレージデバイス２００は、ＣＤやＤＶＤなどと同様にホスト装置から取り外して持ち運ぶことができ、端末装置１５０、再生装置３００のほか、記録および再生が可能な記録再生装置などの複数のホスト装置間で共用することが可能な記憶装置である。
【００２４】
このように、本実施の形態のストレージデバイス２００は、複数のホスト装置に接続されることを前提にしており、たとえば、所有者以外の第三者のホスト装置に接続され、記録されたデータが読み出される可能性もある。
【００２５】
このストレージデバイス２００に、音楽や映像などの著作権により保護されるべきコンテンツ、企業や個人の機密情報などの秘匿すべきデータを記録することを想定したとき、それらの秘匿データが外部に漏洩することを防ぐためには、ストレージデバイス２００自身にデータを適切に保護するための構成を設け、十分な耐タンパ機能を持たせることが好ましい。
【００２６】
このような観点から、本実施の形態のストレージデバイス２００は、ホスト装置との間で秘匿データを入出力するときに、その秘匿データを暗号化してやり取りするための構成を備える。また、秘匿データを格納するために、通常の記憶領域とは異なる機密データ記憶領域を設け、その機密データ記憶領域はストレージデバイス２００内に設けられた暗号エンジンを介さないとアクセスできないように構成する。この暗号エンジンは、正当な権限を有すると検証されたホスト装置のみと秘匿データの入出力を行う。
【００２７】
以下、このようなデータ保護機能を「セキュア機能」ともいう。
【００２８】
上記の構成および機能により、ストレージデバイス２００に記録された秘匿データを適切に保護することができる。
【００２９】
ストレージデバイス２００のリムーバブルメディアとしての特徴を最大限に生かすため、通常のデータについては、セキュア機能に非対応のホスト装置でも入出力可能とするのが好ましい。そのため、本実施の形態のストレージデバイス２００は、従来のハードディスクとの互換性を保つべく、ＡＮＳＩ（American National Standards Institute）の標準規格であるＡＴＡ（AT Attachment）に対応しており、上述のセキュア機能は、ＡＴＡの拡張命令として実現される。
【００３０】
以下、秘匿データの入出力の例として、映像などのコンテンツデータを記録再生する場合について説明する。コンテンツデータ自身を秘匿データとして扱ってもよいが、本実施の形態では、コンテンツデータを暗号化し、暗号化されたコンテンツデータ自身は、ストレージデバイス２００に通常のデータとして記録する。そして、暗号化されたコンテンツを復号するための鍵（以下、コンテンツ鍵と称す）と、コンテンツの再生制御やライセンスの利用（再生）、ムーブ、コピーに関する制御に関する情報（以下、利用規則と称す）を含むデータ（以下、ライセンスデータと称す）を、秘匿データとして上述のセキュア機能を用いて入出力を行う。これにより、十分な耐タンパ性を維持しつつ、データの入出力を簡略化し、処理の高速化および消費電力の低減を図ることができる。
【００３１】
ここで、ライセンスデータは、コンテンツ鍵や利用規則の他に、ライセンスデータを特定するための識別情報ＬｉｃＩＤを含むものとする。また、利用規則として再生を目的としたライセンスデータを出力回数の上限を示す制御情報ＰＣを含むものとする。ここでは、制御情報ＰＣは、１バイトの符号なし整数とし、その値がライセンスデータを出力回数の上限値を示すものとし、ライセンスの出力毎に１減算されるものとする。また、ＰＣ＝２５５は、例外として、再生回数の上限設定がないことを示し、再生を目的としたライセンスデータの出力によって、値を変化させないものとする。なお、ここで示した制御情報ＰＣの設定方法および運用方法は、本実施の形態における一例であって、特に限定するものではない。
【００３２】
なお、以下においては、配信サーバ１００、再生装置３００などのホスト装置がストレージデバイス２００に対して発行する命令のうち、セキュア機能のための拡張命令を「セキュアコマンド」とも呼び、その他の命令を「通常コマンド」とも呼ぶ。
【００３３】
※配信システム
図２は、実施の形態に係るコンテンツ配信システムの構成を示す。本実施の形態のコンテンツ配信システムは、コンテンツを配信する配信サーバ１００、コンテンツの提供を受ける端末装置１５０、端末装置１５０に提供されたコンテンツが記録されるストレージデバイス２００を含む。
【００３４】
配信サーバ１００および端末装置１５０は、それぞれ通信装置１０４、１５３を介して、ネットワークの一例とするインターネット２０により接続される。
【００３５】
配信サーバ１００は、暗号器１０２、暗号エンジン１０３、通信装置１０４、コンテンツデータベース１０５、ライセンスデータベース１０６、ユーザデータベース１０７、これらを制御するコントローラ１０１、およびそれらを電気的に接続するデータバス１１０を備える。
【００３６】
配信サーバ１００の構成は、ハードウエア的には、任意のコンピュータのＣＰＵ、メモリ、その他のＬＳＩなどで実現でき、ソフトウエア的にはメモリにロードされた記録制御機能のあるプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【００３７】
暗号器１０２は、暗号化コンテンツを復号するためのコンテンツ鍵を含むライセンスデータＬＩＣを発行し、このコンテンツ鍵を用いて、コンテンツエンコーダ１０５にてコーディングされたコンテンツを暗号化する。暗号化されたコンテンツは、データバス１１０、通信装置１０４を介して、端末装置１５０に送信され、ストレージデバイス２００に記録される。
【００３８】
暗号エンジン１０３は、ユーザに提供するライセンスデータＬＩＣをストレージデバイス２００に記録するために、ストレージデバイス２００との間で暗号通信の制御を行う。暗号通信路は、配信サーバのデータバス１１０、通信装置１０４、インターネット２０、端末装置１５０の通信装置１５３、データバス１６０、コントローラ１５１、ストレージインタフェース１５２を介して、直接ストレージメディア２００との間で行われる。
【００３９】
通信装置１０４は、インターネット２０を介して、他の装置とデータ交換を行う。ここでは、端末装置１５０とデータ交換を行う
コンテンツデータベース１０５は、ユーザに提供するコンテンツを保持する。ライセンスデータベース１０６は、コンテンツを暗号化するのに用いられるコンテンツ鍵を含むライセンスデータを保持する。ユーザデータベース１０７は、コンテンツの提供先であるユーザの情報を保持する。たとえば、ユーザの個人情報、ユーザの端末装置１５０のアドレス、コンテンツの購入履歴、課金情報などを保持してもよい。
【００４０】
配信サーバ１００のコントローラ１０１は、ユーザの要求に応じてコンテンツデータベース１０５からコンテンツデータを読み出し、また、ライセンスデータベース１０６からライセンスデータＬＩＣを読み出す。読み出したコンテンツデータとライセンスデータＬＩＣ内のコンテンツ鍵を暗号器１０２に伝達し、また、ライセンスデータＬＩＣを暗号エンジン１０３に伝達する。そして、暗号器１０２にて、コンテンツ鍵でコンテンツデータを暗号化し、暗号化されたコンテンツデータを通信装置１０４を介して端末装置１５０に送信する。さらに、暗号エンジン１０３によって暗号通信路を構築し、これを介してライセンスデータＬＩＣを端末装置１５０に送信する。端末装置１５０は、受信したライセンスデータＬＩＣをストレージデバイス２００に記録する。
【００４１】
暗号化されたコンテンツデータおよびライセンスデータＬＩＣがストレージデバイス２００に記録されると、端末装置１５０のユーザに対して、コンテンツの提供が行われたとして、このコンテンツ提供の対価を課金すべくユーザデータベース１０７を更新する。
【００４２】
端末装置１５０は、ストレージインタフェース１５２、通信装置１５３、それらを制御するコントローラ１５１およびそれらを電気的に接続するデータバス１６０を備える。端末装置１５０の構成は、ハードウエア的には、任意のコンピュータのＣＰＵ、メモリ、その他のＬＳＩなどで実現でき、ソフトウエア的にはメモリにロードされた記録制御機能のあるプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【００４３】
ストレージインタフェース１５２は、ストレージデバイス２００とのデータの入出力を制御する。
【００４４】
通信装置１５３は、インターネット２０を介して、他の装置とデータ交換を行う。ここでは、配信サーバ１００とデータ交換を行う。
【００４５】
端末装置１５０のコントローラ１５１は、ユーザの要求を、通信装置１５３を介して配信サーバ１００に送信する。また、この応答として、配信サーバ１００から提供される暗号化されたコンテンツデータとライセンスデータを通信装置１５３を介して受信し、ストレージインタフェース１５２を介して、ストレージデバイス２００に記憶する。
【００４６】
※再生装置
図３は、実施の形態に係る再生装置３００の内部構成を示す。これらの機能ブロックも、ハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できる。
【００４７】
再生装置３００は、主に、コントローラ３０１、ストレージインタフェース３０２、暗号エンジン３０３、復号器３０４、コンテンツデコーダ３０５、およびそれらを電気的に接続するデータバス３１０を備える。
【００４８】
ストレージインタフェース３０２は、ストレージデバイス２００とのデータの入出力を制御する。
【００４９】
暗号エンジン３０３は、コンテンツ鍵を含むライセンスデータＬＩＣをストレージデバイス２００から受信するために、ストレージデバイス２００との間で暗号通信の制御を行う。
【００５０】
復号器３０４は、ストレージデバイス２００から読み出した暗号化されたコンテンツを、ストレージデバイス２００から入手したライセンスデータＬＩＣに含まれるコンテンツ鍵により復号する。
【００５１】
コンテンツデコーダ３０５は、復号器３０４により復号されたコンテンツをデコードして出力する。たとえば、ＭＰＥＧ形式のコンテンツであれば、コンテンツから映像信号と音声信号を復元し、映像信号を図示しない表示装置に出力し、音声信号を図示しないスピーカに出力する。
【００５２】
コントローラ３０１は、再生装置３００の構成要素を統括的に制御する。
【００５３】
※ストレージデバイス
図４は、実施の形態に係るストレージデバイス２００の内部構成を示す。ストレージデバイス２００は、主に、コントローラ２０１、ストレージインタフェース２０２、暗号エンジン２０３、耐タンパ記憶部２０４、通常データ記憶記部２０５、およびそれらを電気的に接続するデータバス２１０を備える。
【００５４】
ストレージインタフェース２０２は、配信サーバ１００および再生装置３００とのデータの入出力を制御する。
【００５５】
暗号エンジン２０３は、コンテンツ鍵を含むライセンスデータＬＩＣなどの秘匿データを配信サーバ１００および再生装置３００との間で入出力するための暗号通信の制御を行う。
【００５６】
通常データ記憶部２０５は、暗号化されたコンテンツや通常のデータなどを記録する通常記憶領域である。
【００５７】
耐タンパ記憶部２０４は、コンテンツ鍵を含むライセンスデータＬＩＣなどの秘匿データを記録する機密データ記憶領域である。
【００５８】
通常データ記憶部２０５は、外部からの直接アクセスによりデータの入出力が行われるが、耐タンパ記憶部２０４は、暗号エンジン２０３を介さないとデータの入出力ができないように構成される。
【００５９】
コントローラ２０１は、ストレージデバイス２００の構成要素を統括的に制御する。
【００６０】
※使用する鍵
ここで、本実施の形態で用いる鍵について説明する。本実施の形態では、鍵はすべて大文字の"Ｋ"から始まる文字列として表記する。
【００６１】
また、第２文字"が小文字の"ｃ"、"ｓ"、ｒ”のいずれかである場合は、対称鍵（共通鍵）を示す。詳しくは、"ｃ"はチャレンジ鍵であり、ライセンスデータの送信元で生成されるテンポラルな対称鍵を示す。"ｓ"はセッション鍵であり、ライセンスデータの送信先で生成されるテンポラルな対称鍵を示す。"ｒ"はリカバリー鍵であり、ライセンスデータの送信先で生成されるテンポラルな対称鍵を示す。
【００６２】
また、第２文字が大文字の"P"である場合は、公開鍵暗号方式の公開鍵を示す。この鍵には、対応する秘密鍵が必ず存在し、この秘密鍵は公開鍵の表記から第２文字の大文字の"P"を除く表記となる。
【００６３】
鍵を示す文字列が小文字の"ｄ"を含む場合は、装置のグループ毎に与えられた鍵であることを表す。また鍵を示す文字列が小文字"ｐ"を含む場合は、装置毎に与えられた鍵であることを表す。それぞれ、公開鍵と秘密鍵の対として与えられ、グループ毎に与えられた公開鍵ＫＰｄｘは、電子署名付きの公開鍵証明書Ｃ［ＫＰｄｘ］として与えられている。
【００６４】
また、鍵を示す文字列の最後に記載される文字、たとえば、公開鍵ＫＰｄ２の"２"は、その鍵が与えられる暗号エンジンを識別するための記号である。本実施の形態では、提供先が明確な場合には、数字"1", "2", "3"と表記し、当該暗号エンジン以外から提供される鍵であって提供先が不明な場合あるいは特定しない場合には、"x", "y"などの英文字によって表記する。
【００６５】
本実施の形態では、配信サーバ１００の暗号エンジン１０３に対しては識別記号として"１"、ストレージメディア２００の暗号エンジン２０３については識別記号として"２"、再生装置３００の暗号エンジン３０３については識別記号として"３"をそれぞれ使用する。
【００６６】
※配信サーバの暗号エンジン
図５は、図２に示した配信サーバ１００の暗号エンジン１０３の内部構成を示す。暗号エンジン１０３は、証明書検証部１２０、第１暗号部１２１、乱数発生部１２２、第１復号部１２３、第２復号部１２４、第２暗号部１２５、第３暗号部１２６、証明書出力部１２７、制御部１２８、ログ記憶部１２９，ログ検証部１３０およびこれらの構成要素の少なくとも一部を電気的に接続するローカルバス１４０を備える。
【００６７】
証明書検証部１２０は、ストレージデバイス２００から取得した証明書Ｃ［ＫＰｄ２］を検証する。証明書Ｃ［ＫＰｄ２］は、公開鍵ＫＰｄ２を含む平文の情報（以下、「証明書本体」と称す）と、証明書本体に対して付される電子署名からなる。この電子署名は、証明書本体に対してハッシュ関数による演算（以下、この演算処理を「ハッシュ演算」と称す）を施した結果を、第三者機関である。認証局（図示せず）のルート鍵Ｋａによって暗号化したデータである。ルート鍵Ｋａは、認証局によって厳重に管理されている非公開な鍵であり、認証局の秘密鍵となる。
【００６８】
証明書検証部１２０は、このルート鍵Ｋａと対をなす検証鍵ＫＰａを保持している。この検証鍵ＫＰａは証明書の正当性を検証する公開鍵である。証明書の検証は、証明書の正当性と証明書の有効性によって判断する。
【００６９】
証明書の正当性の確認は、検証すべき証明書の証明書本体に対するハッシュ関数の演算結果と、検証鍵ＫＰａで電子署名を復号した結果を比較する処理であり、両者が一致したとき、正当であると判断する。
【００７０】
証明書検証部１２０は、無効となった証明書のリストである証明書破棄リスト（Certificate Revocation List：ＣＲＬと呼ぶ）を保持し、証明書の有効性について、このＣＲＬに検証すべき証明書が記載されていない場合に有効であると判断する。
【００７１】
このように、証明書の正当性と有効性を判断し正当な証明書を承認する処理を検証と称す。
【００７２】
証明書検証部１２０は、検証に成功すると、ストレージデバイス２００の公開鍵ＫＰｄ２を取り出して第１暗号部１２１に伝達し、検証結果を通知する。検証に失敗した場合には、検証エラー通知を出力する。
【００７３】
証明書出力部１２７は、配信サーバ１００の証明書Ｃ［ＫＰｄ１]を出力する。この証明書は、配信サーバ１００の公開鍵ＫＰｄ１を含む証明書本体と、証明書本体に対して付される電子署名からなる。電子署名は、ストレージデバイス２００の証明書と同様に、認証局のルート鍵Ｋａにより暗号化される。
【００７４】
乱数発生部１２２は、ストレージデバイス２００との間で暗号通信を行うために一時的に使用されるチャレンジ鍵Ｋｃ１を生成する。暗号通信を行う度に、乱数によりチャレンジ鍵Ｋｃ１を生成することで、チャレンジ鍵Ｋｃ１を見破られる可能性を最小限に抑えることができる。生成されたチャレンジ鍵Ｋｃ１は、第１暗号部１２１および第１復号部１２３に伝達される。
【００７５】
第１暗号部１２１は、ストレージデバイス２００にチャレンジ鍵Ｋｃ１を通知するために、証明書検証部１２０により取り出されたストレージデバイス２００の公開鍵ＫＰｄ２でチャレンジ鍵Ｋｃ１を暗号化して、暗号化チャレンジ鍵Ｅ（ＫＰｄ２，Ｋｃ１）を生成する。そして、暗号化チャレンジ鍵Ｅ（ＫＰｄ２，Ｋｃ１）は、証明書出力部１２７から出力された証明書Ｃ「ＫＰｄ１」と結合され、チャレンジ情報Ｅ（ＫＰｄ２，Ｋｃ１）／／Ｃ「ＫＰｄ１」とされる。
【００７６】
ここで、記号"／／"は、データの連結を示し、Ｅ（ＫＰｄ２，Ｋｃ１）／／Ｃ［ＫＰｄ１］は、暗号化チャレンジ鍵Ｅ（ＫＰｄ２，Ｋｃ１）と証明書Ｃ［ＫＰｄ１］を並べて結合したデータ列を示す。また、Ｅは暗号化関数を示し、Ｅ（ＫＰｄ２，Ｋｃ１）は、公開鍵ＫＰｄ２でチャレンジ鍵Ｋｃ１を暗号化したものであることを示す。
【００７７】
第１復号部１２３は、チャレンジ鍵Ｋｃ１で暗号化されたデータを復号する。ストレージデバイス２００で発行されたセッション鍵Ｋｓ２およびストレージデバイス２００の保持する公開鍵ＫＰｐ２は、セッション情報Ｅ（Ｋｃ１，Ｅ（ＫＰｄ１，Ｋｓ２）／／ＫＰｐ２）として、ストレージデバイス２００から供給されるため、第１復号部１２３は、乱数発生部１２２が生成したチャレンジ鍵Ｋｃ１を用いてセッション情報を復号し、暗号化セッション鍵Ｅ（ＫＰｄ１，Ｋｓ２）および公開鍵ＫＰｐ２を取り出す。取り出された公開鍵ＫＰｐ２は第２暗号部１２５、に伝達され、暗号化セッション鍵Ｅ（ＫＰｄ１，Ｋｓ２）は第２復号部１２４に伝達される。
【００７８】
第２復号部１２４は、第１復号部１２３から伝達された、自身の公開鍵ＫＰｄ１で暗号化された暗号化セッション鍵Ｅ（ＫＰｄ１，Ｋｓ２）を、公開鍵ＫＰｄ１と対をなす秘密鍵Ｋｄ１で復号し、セッション鍵Ｋｓ２を取り出す。取り出されたセッション鍵Ｋｓ２は、第３暗号部１２６へ伝達される。
【００７９】
第２暗号部１２５は、暗号器１０２がコンテンツを暗号化する際に発行したコンテンツ鍵を含むライセンスデータＬＩＣを取得し、そのライセンスデータＬＩＣをライセンスデータの提供先のストレージデバイス２００の公開鍵ＫＰｐ２で暗号化し、Ｅ（ＫＰｐ２、ＬＩＣ）を生成する。そして、生成されたＥ（ＫＰｐ２、ＬＩＣ）は、第３暗号部１２６に伝達される。
【００８０】
第３暗号部１２６は、第２暗号部１２５から伝達されたＥ（ＫＰｐ２、ＬＩＣ）を、さらに、ストレージデバイス２００で発行されたセッション鍵Ｋｓ２により暗号化し、暗号化ライセンスデータＥ（Ｋｓ２，Ｅ（ＫＰｐ２、ＬＩＣ））を生成する。
【００８１】
ログ記憶部１２９は、ライセンスデータＬＩＣの出力に関する履歴情報を記憶する。この履歴情報は、ライセンスデータＬＩＣを特定する識別情報ＬｉｃＩＤ、ライセンスデータＬＩＣの通信を特定するための情報として、ライセンスデータＬＩＣの送受信に用いたセッション鍵、ライセンスデータの送信の経過状態を示す情報ＳＴ１を含む。
【００８２】
情報ＳＴ１は、セッション鍵を受け取った状態（以下、”状態ＳＰ”と称す）、ライセンスデータＬＩＣを出力した状態（以下、”状態ＳＬ”と称す）の２つの状態のうち、いずれか一つの状態を示す情報を含む。
【００８３】
ログ検証部１３０は、ライセンスデータの送信先と共有しているチャレンジ鍵Ｋｃ１と、ログ記憶部２３４に記憶されている履歴情報を用いて、ライセンスデータの送信先、ここでは、記憶装置２００から受け取ったステータス情報ＬｉｃＩＤ／／ＳＴ２／／Ｈ（Ｋｃ１／／Ｋｓ２／／ＬｉｃＩＤ／／ＳＴ２）の正当性を検証し、当該ライセンスデータの再送可否の判断を行う。
【００８４】
制御部１２８は、配信サーバ１００のコントローラ１０１の指示に従って暗号エンジン１０３の内部の構成要素の制御および外部の構成との間でデータの入出力を仲介する。
【００８５】
尚、図５では、制御部１２８による内部の各構成要素への制御を示す結線は省略されている。
【００８６】
図５の如く、本実施の形態では、制御部１２８を介さないと、暗号エンジン１０３は外部とデータの交換ができない構成となっている。各構成要素を接続する形態については、種々考えられるが、本実施の形態では、乱数発生部１２２が生成するチャレンジ鍵Ｋｃ１、ストレージデバイス２００から受け取ったセッション鍵Ｋｓ２、自身の秘密鍵Ｋｄ１などの暗号エンジン１０３内で使用される各鍵が、暗号エンジン１０３の外部に直接流出しないように構成している。これにより、暗号エンジン１０３内で使用される各鍵が、配信サーバ１００の他の構成要素などを介して外部に漏洩することを防ぎ、セキュリティ性を向上させている。
【００８７】
※再生装置の暗号エンジン
図６は、図３に示した再生装置３００の暗号エンジン３０３の内部構成を示す。暗号エンジン３０３は、証明書出力部３２０、乱数発生部３２１、証明書検証部３２２、第１復号部３２３、第１暗号部３２４、第２暗号部３２５、第２復号部３２６、第３復号部３２７、コンテンツ鍵出力部３２８、経過時間計測部３２９、ログ記憶部３３０、ログ署名部３３１、制御部３３２、およびこれらの構成要素の少なくとも一部を電気的に接続するローカルバス３４０を備える。
【００８８】
証明書出力部３２０は、再生装置３００の証明書Ｃ［ＫＰｄ３］を出力する。証明書は、証明書出力部３２０が保持してもよいし、図示しない証明書保持部に保持しておき、それを読み出してもよい。証明書は、再生装置３００の公開鍵ＫＰｄ３を含む証明書本体と、証明書本体に対して付される電子署名からなる。電子署名は、ストレージデバイス２００の証明書と同様に、認証局のルート鍵Ｋａにより暗号化される。
【００８９】
乱数発生部３２１は、ストレージデバイス２００との間で暗号通信を行うために一時的に使用されるセッション鍵Ｋｓ３を生成する。生成されたセッション鍵Ｋｓ３は、第１暗号部３２４、第２復号部３２６、ログ記憶部３３０に伝達される。
【００９０】
証明書検証部３２２は、ストレージデバイス２００の証明書Ｃ［ＫＰｄ２］の検証を行う。検証の詳細は、上述したとおりである。
【００９１】
第１復号部３２３は、公開鍵ＫＰｄ３によって暗号化されたデータを秘密鍵Ｋｄ３で復号する。再生時には、ストレージデバイス２００で発行されたチャレンジ鍵Ｋｃ２は、再生装置３００の公開鍵ＫＰｄ３により暗号化されてストレージデバイス２００から供給されるため、第１復号部３２１は、自身の秘密鍵Ｋｄ３によりこれを復号し、チャレンジ鍵Ｋｃ２を取り出す。取り出されたチャレンジ鍵Ｋｃ２は、第２暗号部３２５に伝達される。
【００９２】
第１暗号部３２４は、ストレージデバイス２００の証明書Ｃ［ＫＰｄ２］から取り出された公開鍵ＫＰｄ２でデータの暗号化を行う。ストレージデバイス２００にセッション鍵Ｋｓ３を通知するために、乱数発生部３２１で生成したセッション鍵Ｋｓ３を暗号化し、暗号化セッション鍵Ｅ（ＫＰｄ２，Ｋｓ３）を生成する。生成した暗号化セッション鍵Ｅ（ＫＰｄ２，Ｋｓ３）は、第２暗号部３２５に伝達される。
【００９３】
第２暗号部３２５は、第１復号部３２３により取り出されたチャレンジ鍵Ｋｃ２で、データの暗号化を行う。第１暗号部３２４から伝達された暗号化セッション鍵Ｅ（ＫＰｄ２，Ｋｓ３）と自身の公開鍵ＫＰｐ３を連結し、これを暗号化してセッション情報Ｅ（Ｋｃ２，Ｅ（ＫＰｄ２，Ｋｓ３）／／ＫＰｐ３）を生成する。
【００９４】
第２復号部３２６は、セッション鍵Ｋｓ３で暗号化されたデータを復号する。ライセンスデータＬＩＣは、公開鍵ＫＰｐ３およびセッション鍵Ｋｓ３により２重に暗号化された暗号化ライセンスデータＥ（Ｋｓ３，Ｅ（ＫＰｐ３，ＬＩＣ））としてストレージデバイス２００から供給されるため、第２復号部３２５は、乱数発生部３２１が生成するセッション鍵Ｋｓ３により復号を行い、その結果である暗号化ライセンスデータＥ（ＫＰｐ３，ＬＩＣ）を第３復号部３２７に伝達する。
【００９５】
第３復号部３２７は、公開鍵ＫＰｐ３で暗号化されたデータの復号を行う。公開鍵ＫＰｐ３と対をなす秘密鍵Ｋｐ３で、第２復号部３２６の結果である暗号化ライセンスデータＥ（ＫＰｐ３，ＬＩＣ）を復号し、ライセンスデータＬＩＣを取り出す。
【００９６】
コンテンツ鍵出力部３２８は、第３復号部３２７にて取り出されたライセンスデータＬＩＣから、コンテンツ鍵を取り出し保持する。さらに、コンテンツ鍵出力部３２８は、保持しているコンテンツ鍵を復号器３０４に提供し、かつ、復号器３０４における当該コンテンツ鍵を用いた復号処理を監視し、その状況を経過時間計測部３２９に伝達する。
【００９７】
経過時間計測部３２９は、コンテンツ鍵出力部３２８が提供するコンテンツ鍵を用いて復号した暗号化コンテンツの再生時間を計測し、所定のＴ秒の経過によって、コンテンツ鍵による再生が行われた、すなわち、ライセンスデータによって規定される再生の権利が、１再生回数消費された、と判断する。逆に、Ｔ秒が経過しないまま再生が停止された場合には、コンテンツ鍵による再生は行われなかった、すなわち、ライセンスデータによって規定される再生の権利が消費されていない、と判断する。経過時間計測部３２９の構成については、様々な構成方法が存在するが、ここでは、タイマを用いて再生後の経過時間を計測する構成例を示す。経過時間計測部３２９は、タイマを含んでいる。そして、コンテンツ鍵出力部３２８が復号器３０４に提供したコンテンツ鍵による復号が開始されるとタイマをリセットする。そして、所定のＴ秒が経過すると、再生が開始されたと判断する。ここで、Ｔはコンテンツ種類（音楽／映像など）毎に再生を行った、すなわち、ライセンスを消費したと判断する境界時間であり、予め定められている。これによると、たとえば、Ｔ秒経過以前に、コンテンツ鍵出力部３２８の保持するコンテンツ鍵が破棄され、復号部３０４における復号処理が停止すると、このコンテンツ鍵による再生は行われなかった、と判断される。そして、この判定結果を、後述するログ記憶部３３０に格納されている情報ＳＴ３に反映する。
【００９８】
ログ記憶部３３０は、ライセンスデータＬＩＣの受け取りから消費に至る履歴情報を記憶する。履歴情報は、ライセンスデータＬＩＣを特定する識別情報ＬｉｃＩＤ、ライセンスデータＬＩＣの通信を特定するための情報であり、ライセンスデータＬＩＣの通信にて生成したセッション鍵Ｋｓ３、ライセンスデータの通信から消費（再生）に至る状態を示す情報ＳＴ３を含む。
【００９９】
情報ＳＴ３は、セッション鍵を生成した状態（以下、”状態ＲＰ”と称す）、ライセンスデータＬＩＣを受け取った状態（以下、”状態ＲＬ”と称す）、経過時間計測部３２９で再生が開始されたと判断した状態（以下、”状態ＣＬ”と称す）の３つの状態のいずれか１つの状態を示す情報からなる。
【０１００】
ログ署名部３３１は、第１復号部３２３で取り出されたチャレンジ鍵Ｋｃ２と、ログ記憶部３３０に記憶されている履歴情報を用いて、再生装置３００におけるライセンスデータＬＩＣの受信や消費の状況を知らせるステータス情報ＬｉｃＩＤ／／ＳＴ３／／Ｈ（Ｋｃ２／／Ｋｓ３／／ＬｉｃＩＤ／／ＳＴ３）を生成する。このステータス情報は、Ｋｃ２とＫｓ３を共有している暗号エンジン２０３において、その正当性を検証することができる。
【０１０１】
制御部３３２は、再生装置３００のコントローラ３０１の指示に従って暗号エンジン３０３の内部の構成要素の制御および外部の構成との間でデータの入出力を仲介する。
【０１０２】
尚、図６では、制御部３３２による内部の各構成要素への制御を示す結線は省略されている。
【０１０３】
図６に示す暗号エンジン３０３においても、各構成要素を接続する形態については、種々考えられるが、本実施の形態では、制御部３３２を介さないと、暗号エンジン３０３は外部とデータの交換ができない構成となっている。これにより、乱数発生部３２４が生成したセッション鍵Ｋｓ３、公開鍵と対をなしている秘密鍵Ｋｄ３およびＫｐ３、ストレージデバイス２００から受け取ったセッション鍵Ｋｓ２、チャレンジ鍵Ｋｃ２などの暗号エンジン３０３内で使用される鍵が外部に漏洩されることを防ぐ。
【０１０４】
※ストレージメディアの暗号エンジン
図７は、図４に示したストレージデバイス２００の暗号エンジン２０３の内部構成を示す。これらの機能ブロックも、ハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できる。暗号エンジン２０３は、制御部２２０、乱数発生部２２１、証明書出力部２２２、証明書検証部２２３、第１復号部２２４、第１暗号部２２５、第２暗号部２２６、第２復号部２２７、第３復号部２２８、第３暗号部２２９、第４復号部２３０、第５復号部２３１、第４暗号部２３２、第５暗号部２３３、ログ記憶部２３４、第６暗号部２３５、ログ検証部２３６、および、これらの構成要素の少なくとも一部を電気的に接続するローカルバス２４０を備える。
【０１０５】
制御部２２０は、ストレージデバイス２００のコントローラ２０１の指示に従って暗号エンジン２０３の内部の構成の制御および外部の構成との間でデータの入出力を仲介する。
【０１０６】
乱数発生部２２１は、配信サーバ１００または再生装置３００との間の暗号通信に一時的に使用されるセッション鍵Ｋｓ２、チャレンジ鍵Ｋｃ２を、乱数演算によって生成する。各鍵の用途については、追って説明する。
【０１０７】
証明書出力部２２２は、ストレージデバイス２００の証明書Ｃ［ＫＰｄ２］を出力する。証明書は、証明書出力部２２５が保持してもよいし、ストレージデバイス２００の所定の記憶領域、たとえば耐タンパ記憶部２０４に保持しておき、それを読み出してもよい。証明書は、ストレージデバイス２００の公開鍵ＫＰｄ２を含む証明書本体と、証明書本体に付された電子署名とを含む。電子署名は、認証局のルート鍵Ｋａにより暗号化される。
【０１０８】
証明書検証部２２３は、外部から提供された証明書の検証を行う。具体的には、配信サーバ１００から取得した証明書Ｃ［ＫＰｄ１］および再生装置３００から取得した証明書Ｃ［ＫＰｄ３］を検証鍵ＫＰａにより検証する。検証の詳細は、上記のとおりである。
【０１０９】
第１復号部２２４は、自身の公開鍵ＫＰｄ２で暗号化されたデータを復号する。具体的には、記録時には、配信サーバ１００で発行されたチャレンジ鍵Ｋｃ１が、ストレージデバイス２００の公開鍵ＫＰｄ２で暗号化されて配信サーバ１００から供給されるため、これを自身の秘密鍵Ｋｄ２で復号し、チャレンジ鍵Ｋｃ１を取り出す。取り出されたチャレンジ鍵Ｋｃ１は、第２暗号部２２６に伝達される。
【０１１０】
第１暗号部２２５は、配信サーバ１００の公開鍵ＫＰｄ１でデータを暗号化する。具体的には、乱数発生部２２１が生成したセッション鍵Ｋｓ２を公開鍵ＫＰｄ１で暗号化し、暗号化セッション鍵Ｅ（ＫＰｄ１，Ｋｓ２）を生成する。ここで用いる配信サーバ１００の公開鍵ＫＰｄ１は、制御部２２０によってストレージデバイス２００の証明書Ｃ［ＫＰｄ１］内から取り出され、ローカルバス２４０を介して伝達される。
【０１１１】
第２暗号部２２６は、配信サーバ１００が発行したチャレンジ鍵Ｋｃ１でデータを暗号化する。具体的には、第１暗号部２２５から受け取った暗号化セッション鍵Ｅ（ＫＰｄ１，Ｋｓ２）と自身の公開鍵ＫＰｐ２を連結して、これをチャレンジ鍵Ｋｃ１で暗号化し、セッション情報Ｅ（Ｋｃ１，Ｅ（ＫＰｄ１，Ｋｓ２）／／ＫＰｐ２）を生成する。
【０１１２】
第２復号部２２７は、乱数発生部２１１が生成したセッション鍵Ｋｓ２で暗号化されたデータを復号する。具体的には、配信サーバ１００から、ライセンスデータＬＩＣを、公開鍵ＫＰｐ２およびセッション鍵Ｋｓ２により２重に暗号化されたＥ（Ｋｓ２，Ｅ（ＫＰｐ２，ＬＩＣ））として受け取り、これをセッション鍵Ｋｓ２により復号し、結果を第３復号部２２８に伝達する。
【０１１３】
第３復号部２２８は、自身の公開鍵ＫＰｐ２で暗号化されたデータを復号する。第２復号部２２７から伝達されるライセンスデータＥ（ＫＰｐ２，ＬＩＣ）を、公開鍵ＫＰｐ２と対をなす自身の秘密鍵Ｋｐ２で復号し、ライセンスデータＬＩＣを取り出す。
【０１１４】
取り出されたライセンスデータＬＩＣは、ローカルバス２４０、制御部２２０を介して、データバス２１０に供給され、コントローラ２０１の指示に従って、耐タンパ記憶部２０４に記憶される。
【０１１５】
第３暗号部２２９は、再生装置３００の公開鍵ＫＰｄ３でデータを暗号化する。具体的には、再生装置３００に対してライセンスデータＬＩＣを提供する場合、再生装置３００から受け取った証明書Ｃ［ＫＰｄ３］から取り出された公開鍵ＫＰｄ３で、乱数発生部２２１が発行するチャレンジ鍵Ｋｃ２を暗号化し、暗号化チャレンジ鍵Ｅ（ＫＰｄ３，Ｋｃ２）を生成する。生成された暗号化チャレンジ鍵Ｅ（ＫＰｄ３，Ｋｃ２）は、ローカルバス２４０を介して制御部２２０へ伝達される。制御部２２０では、これと証明書出力部２２２から出力される自身の証明書Ｃ［ＫＰｄ２］とを結合して、チャレンジ情報Ｅ（ＫＰｄ３，Ｋｃ２）／／Ｃ［ＫＰｄ２］を生成する。
【０１１６】
第４復号部２３０は、乱数発生部２２１が発行したチャレンジ鍵Ｋｃ２で暗号化されたデータを復号する。再生装置３００から受け取ったセッション情報Ｅ（Ｋｃ２，Ｅ（ＫＰｄ２，Ｋｓ３）／／ＫＰｐ３）を、乱数発生部２２１が生成したチャレンジ鍵Ｋｃ２で復号し、暗号化セッション鍵Ｅ（ＫＰｄ２，Ｋｓ３）および再生装置３００の公開鍵ＫＰｐ３を取り出す。取り出した暗号化セッション鍵Ｅ（ＫＰｄ２，Ｋｓ３）は第５復号部２３１に伝達され、公開鍵ＫＰｐ３は第４暗号部２３２ログおよび記憶部２３４に伝達される。
【０１１７】
第５復号部２３１は、自身の公開鍵ＫＰｄ２で暗号化されたデータを復号する。具体的には、第４復号部２３０から伝達された暗号化セッション鍵Ｅ（ＫＰｄ２，Ｋｓ３）を、自身の秘密鍵Ｋｄ２で復号しセッション鍵Ｋｓ３を取り出す。取り出されたセッション鍵Ｋｓ３は、第５暗号部２３３に伝達される。
【０１１８】
第４暗号部２３２は、再生装置３００の公開鍵ＫＰｐ３でデータを暗号化する。再生装置３００に対してライセンスデータを提供する場合、再生装置３００から受け取ったセッション鍵ＫＰｐ３で、ライセンスデータＬＩＣを暗号化する。このライセンスデータＬＩＣは、コントローラ２０１の指示に従って、耐タンパ記憶部２０４から読み出され、データバス２０２、制御部２２０およびローカルバス２４０を介して第４暗号部２３２に伝達される。ここで、暗号化されたライセンスデータＥ（ＫＰｐ３，ＬＩＣ）は、第５暗号部２３３に伝達される。
【０１１９】
第５暗号部２３３は、再生装置３００が発行したセッション鍵Ｋｓ３でデータを暗号化する。具体的には、セッション鍵Ｋｓ３で、第４暗号部２３２において暗号化されたライセンスデータＥ（ＫＰｐ３，ＬＩＣ）を、さらに暗号化し、暗号化ライセンスデータＥ（Ｋｓ３，Ｅ（ＫＰｐ３，ＬＩＣ））を生成する。
【０１２０】
ログ記憶部２３４は、ライセンスデータＬＩＣの出力および記録に関する履歴情報を記憶する。履歴情報は、ライセンスデータＬＩＣを特定する識別情報ＬｉｃＩＤ、ライセンスデータＬＩＣの通信を特定するための情報であり、ライセンスデータＬＩＣの入出力信のためにライセンスデータ提供元あるいは提供先と共有したセッション鍵（Ｋｓ２またはＫｓ３）、ライセンスデータの出力および記録に至る状態を示す情報ＳＴ２を含む。
【０１２１】
情報ＳＴ２は、ライセンスデータの記録時にはセッション鍵を生成した状態（以下、”状態ＲＰ”と称す）、ライセンスデータＬＩＣを受け取った状態（以下、”状態ＲＬ”と称す）、ライセンスデータの記録が終了した状態（以下、”状態ＣＬ”と称す）の３つの状態のいずれか１つの状態を、ライセンスデータの出力時にはセッション鍵を受け取った状態（以下、”状態ＳＰ”と称す）、再生のためにライセンスデータＬＩＣを出力した状態（以下、”状態ＳＬ”と称す）の２つの状態のいずれか１つの状態を示す情報を含む。
【０１２２】
ログ署名部２３５は、ライセンスデータの送信元と共有しているチャレンジ鍵Ｋｃ１と、ログ記憶部２３４に記憶されている履歴情報を用いて、記憶装置２００におけるライセンスデータＬＩＣの受信から記録に至る状況を知らせるステータス情報ＬｉｃＩＤ／／ＳＴ２／／Ｈ（Ｋｃ１／／Ｋｓ２／／ＬｉｃＩＤ／／ＳＴ２）を生成する。このステータス情報は、Ｋｃ１とＫｓ２を共有している暗号エンジン１０３において、その正当性を検証することができる。
【０１２３】
ログ検証部２３６は、ログ記憶部２３４に記憶されている履歴情報を参照しつつ、再生装置３００から受け取ったステータス情報ＬｉｃＩＤ／／ＳＴ３／／Ｈ（Ｋｃ２／／Ｋｓ３／／ＬｉｃＩＤ／／ＳＴ３）の正当性を検証し、当該ライセンスデータの復元可否の判断を行う。
【０１２４】
※ライセンスデータの記録
図８乃至図１０は、配信サーバ１００がストレージデバイス２００にライセンスデータＬＩＣを記録するまでの手順を示す。この記録処理では、配信サーバ１００の暗号エンジン１０３とストレージデバイス２００の暗号エンジン２０３との間で暗号通信路が構築され、その暗号通信路によってライセンスデータＬＩＣが配信サーバ１００からストレージデバイス２００に送信される。図は、配信サーバ１００（暗号エンジン１０３）、ストレージデバイス２００（暗号エンジン２０３）および、配信サーバ１００とストレージデバイス２００のデータ交換を仲介する端末装置１５０（コントローラ１５１）に区分して処理を示している。
【０１２５】
まず、端末装置１５０のコントローラ１５１は、ストレージデバイス２００に対して証明書出力命令を発行する（Ｓ１０２）。コントローラ２０１は、証明書出力命令を正常に受理する（Ｓ１０４）と、暗号エンジン２０３に証明書の出力を命じ、暗号エンジン２０３から証明書Ｃ［ＫＰｄ２］を読み出して端末装置１５０のコントローラ１５１へ出力する（Ｓ１０６）。
【０１２６】
コントローラ１５１は、ストレージデバイス２００から証明書Ｃ［ＫＰｄ２］を取得すると、それを配信サーバ１００へ送信する（Ｓ１０８）。
【０１２７】
配信サーバ１００のコントローラ１０１は、ストレージデバイス２００から発行された証明書Ｃ［ＫＰｄ２］を受信すると（Ｓ１１０）、それを暗号エンジン１０３に伝達し、証明書検証部１２０は、認証鍵ＫＰａで証明書を検証する（Ｓ１１２）。証明書が承認されなかった場合（Ｓ１１２のＮ）、証明書検証部１２０はエラーをコントローラ１０１に伝達する。エラーを伝達されたコントローラ１０１は、検証エラー通知を端末装置１５０に送信する（Ｓ１９０）。端末装置１５０のコントローラ１５１は、エラー通知を受信すると（Ｓ１９２）、処理を異常終了する。
【０１２８】
証明書が承認された場合（Ｓ１１２のＹ）、暗号エンジン１０３は、乱数発生部１２２にてチャレンジ鍵Ｋｃ１を生成し、保持する（Ｓ１１４）。そして、保持したチャレンジ鍵Ｋｃ１を第１暗号部１２１、第１復号部１２３およびログ検証部１３０に伝達する。
【０１２９】
第１復号部１２３では、このチャレンジ鍵Ｋｃ１を内部に保持する（Ｓ１１４）。また、第１暗号部１２１では、このチャレンジ鍵Ｋｃ１を証明書証明書Ｃ［ＫＰｄ２］から取り出したストレージデバイス２００の公開鍵ＫＰｄ２で暗号化し、暗号化チャレンジ鍵Ｅ（ＫＰｄ２，Ｋｃ１）を生成する。そして、生成した暗号化チャレンジ鍵Ｅ（ＫＰｄ２，Ｋｃ１）と証明書出力部１２７から出力される自身の証明書Ｃ［ＫＰｄ１］とを結合し、チャレンジ情報Ｅ（ＫＰｄ２，Ｋｃ１）／／Ｃ［ＫＰｄ１］を生成し、これをコントローラ１０１へ伝達する。コントローラ１０１は、生成されたチャレンジ情報Ｅ（ＫＰｄ２，Ｋｃ１）／／Ｃ［ＫＰｄ１］を端末装置１５０へ送信する（Ｓ１１６）。
【０１３０】
端末装置１５０のコントローラ１５１は、配信サーバ１００からチャレンジ情報Ｅ（ＫＰｄ２，Ｋｃ１）／／Ｃ［ＫＰｄ１］を受信すると（Ｓ１１８）、ストレージデバイス２００に対してチャレンジ情報検証命令を発行する（Ｓ１２０）。
【０１３１】
ストレージデバイス２００では、コントローラ２０１がチャレンジ情報検証命令を受理すると、チャレンジ情報Ｅ（ＫＰｄ２，Ｋｃ１）／／Ｃ［ＫＰｄ１］の入力を端末装置１５０に要求する（Ｓ１２２）。
【０１３２】
端末装置１５０のコントローラ１５１は、この要求に応じてチャレンジ情報Ｅ（ＫＰｄ２，Ｋｃ１）／／Ｃ［ＫＰｄ１］をストレージデバイス２００へ出力する（Ｓ１２４）。
【０１３３】
ストレージデバイス２００は、チャレンジ情報Ｅ（ＫＰｄ２，Ｋｃ１）／／Ｃ［ＫＰｄ１］を受理すると（Ｓ１２６）、暗号エンジン２０３では、制御部２２０が、チャレンジ情報Ｅ（ＫＰｄ２，Ｋｃ１）／／Ｃ［ＫＰｄ１］から証明書Ｃ［ＫＰｄ１］を取り出し、これを証明書検証部２２３に伝達する。証明書検証部２２３は、伝達された証明書Ｃ［ＫＰｄ１］を検証鍵ＫＰａで検証し、検証結果を制御部２２０に伝達する（Ｓ１２８）。
【０１３４】
証明書が承認されなかった場合（Ｓ１２８のＮ）、証明書検証部２２３は検証エラー通知を制御部２２０へ通知し、検証エラー通知を受けた制御部２２０はこれをコントローラ２０１へ通知する。
【０１３５】
そしてコントローラ２０１は、受信した検証エラー通知を、ストレージインタフェース２０２を介して端末装置１５０のコントローラ１５１に送信する（Ｓ１９４）。
【０１３６】
コントローラ１５１は、検証エラー通知を受信すると（Ｓ１９２）、本処理を異常終了する。
【０１３７】
証明書が承認された場合（Ｓ１２８のＹ）、制御部２２０は、チャレンジ情報Ｅ（ＫＰｄ２，Ｋｃ１）／／Ｃ［ＫＰｄ１］から、公開鍵ＫＰｄ１と暗号化チャレンジ鍵Ｅ（ＫＰｄ２，Ｋｃ１）を取り出し、それぞれ第１暗号部２２５、第１復号部２２４に伝達する。
【０１３８】
第１暗号部２２５は、伝達された公開鍵ＫＰｄ１を保持する。第１復号部２２４は、伝達された暗号化チャレンジ鍵Ｅ（ＫＰｄ２，Ｋｃ１）を自身の秘密鍵Ｋｄ２で復号し、チャレンジ鍵Ｋｃ１を取り出す（Ｓ１３０）。取り出されたチャレンジ鍵Ｋｃ１は、第２暗号部２２６に伝達され保持される（Ｓ１３２）。
【０１３９】
一方、端末装置１５０のコントローラ１５１は、ストレージデバイス２００においてチャレンジ情報検証命令の処理が終了すると、ストレージデバイス２００に対して、これから記録を行うライセンスデータに対するセッション情報生成命令を発行する（Ｓ１３４）。
【０１４０】
ストレージデバイス２００では、コントローラ２０１がセッション情報生成命令を受理する（Ｓ１３６）と、暗号エンジン２０３では制御部２２０の指示に従って、乱数発生部２２１がセッション鍵Ｋｓ２を生成し、生成したセッション鍵Ｋｓ２を、第２復号部２２７、第１暗号部２２５およびログ記憶部２３４に伝達する。第２復号部２２７は、伝達されたセッション鍵Ｋｓ２を保持する。また、制御部２２０は、ログ記憶部２３４に履歴情報として、このセッション鍵Ｋｓ２を記録する指示を出す。ログ記憶部２３４では、セッション鍵Ｋｓ２を新たな履歴情報として記憶する。この時、ログ記憶部２３４は、情報ＳＴ２として“状態ＲＰ”を示す情報を併せて記憶する（Ｓ１３８）。
【０１４１】
第１暗号部２２５は、Ｓ１３０で保持した公開鍵ＫＰｄ１で、伝達されたセッション鍵Ｋｓ２を暗号化して暗号化セッション鍵Ｅ（ＫＰｄ１，ｋｓ２）を生成し、これを第２暗号部２２６に伝達する。第２暗号部２２６は、暗号化セッション鍵Ｅ（ＫＰｄ１，ｋｓ２）と自身の公開鍵ＫＰｐ２とを連結し、これをＳ１３２で保持したチャレンジ鍵Ｋｃ１で暗号化してセッション情報Ｅ（Ｋｃ１，Ｅ（ＫＰｄ１、Ｋｓ２）／／ＫＰｐ２）を生成する（Ｓ１４０）。
【０１４２】
端末装置１５０のコントローラ１５１では、ストレージデバイス２００においてセッション情報生成命令の処理が終了すると、セッション情報出力命令を発行する（Ｓ１４２）。
【０１４３】
ストレージデバイス２００では、セッション情報出力命令を受理する（Ｓ１４４）と、コントローラ２０１が、暗号エンジン２０３からセッション情報Ｅ（Ｋｃ１，Ｅ（ＫＰｄ１、Ｋｓ２）／／ＫＰｐ２）を読み出し、端末装置１５０のコントローラ１５１へ出力する（Ｓ１４６）。
【０１４４】
端末装置１５０のコントローラ１５１は、ストレージデバイス２００からセッション情報Ｅ（Ｋｃ１，Ｅ（ＫＰｄ１、Ｋｓ２）／／ＫＰｐ２）を受信すると、これを配信サーバ１００に送信する（Ｓ１４８）。
【０１４５】
配信サーバ１００のコントローラ１０１は、セッション情報Ｅ（Ｋｃ１，Ｅ（ＫＰｄ１，Ｋｓ２）／／ＫＰｐ２）を受信すると（Ｓ１５０）、これを暗号エンジン１０３に伝達する。
【０１４６】
暗号エンジン１０３の第１復号部１２３は、内部に保持したチャレンジ鍵Ｋｃ１で、伝達されたセッション情報Ｅ（Ｋｃ１，Ｅ（ＫＰｄ１，Ｋｓ２）／／ＫＰｐ２）を復号し、暗号化セッション鍵Ｅ（ＫＰｄ１、Ｋｓ２）とストレージデバイス２００の公開鍵ＫＰｐ２を取り出す。取り出された暗号化セッション鍵Ｅ（ＫＰｄ１、Ｋｓ２）は、第２復号部１２４に伝達され、第２復号部１２４は、自身の秘密鍵Ｋｄ１で復号してセッション鍵Ｋｓ２を取り出し、第３暗号部１２６とログ記憶部１２９に伝達する。ログ記憶部１２９は、セッション鍵Ｋｓ２を受け取ると、新たな履歴情報として、受け取ったセッション鍵Ｋｓ２を記憶する。この時、ログ記憶部１２９は、情報ＳＴ１として“状態ＳＰ”を示す情報を併せて記憶する（Ｓ１５２）。
【０１４７】
続いて、暗号エンジン１０３の第２暗号部１２５は、暗号器１０４が発行したライセンスデータＬＩＣをストレージデバイス２００の公開鍵ＫＰｐ２で暗号化してＥ（ＫＰｐ２，ＬＩＣ）を生成し、これを第３暗号部１２６に伝達する。第３暗号部１２６は、伝達されたＥ（ＫＰｐ２，ＬＩＣ）を、さらにストレージデバイス２００が発行したセッション鍵Ｋｓ２で暗号化して暗号化ライセンスデータＥ（Ｋｓ２，Ｅ（ＫＰｐ２，ＬＩＣ））を生成し、これをコントローラ１０１に伝達する。コントローラ１０１は、伝達された暗号化ライセンスデータＥ（Ｋｓ２，Ｅ（ＫＰｐ２，ＬＩＣ））を端末装置１５０に送信する。この時、ログ記憶部１２９は、情報ＳＴ１を“状態ＳＰ”から“状態ＳＬ”に変更する（Ｓ１５４）。
【０１４８】
端末装置１５０のコントローラ１５１は、配信サーバ１００から送信された暗号化ライセンスデータＥ（Ｋｓ２，Ｅ（ＫＰｐ２，ＬＩＣ））を受信する（Ｓ１５６）と、ストレージデバイス２００に対してライセンスデータ書込命令を発行する（Ｓ１５８）。このライセンス書込命令は、耐タンパ記憶部２０４上の記録位置を指定するアドレスを伴っている。ここでアドレスとは、論理アドレスを示し、耐タンパ記憶部２０４における記録位置を直接指定するものではないが、アドレスを指定して記録したデータは、同じアドレスを指定することで読み出せるように、コントローラ２０１によって管理されている。しかしながら、耐タンパ記憶部２０４における位置を示す物理アドレスであってもよい。
【０１４９】
ストレージデバイス２００では、端末装置１５０が発行したライセンス書込命令を受理すると、暗号ライセンスデータを端末装置１５０のコントローラ１５１に要求し（Ｓ１６０）、端末装置１５０のコントローラ１５１は、この要求に応じて、暗号ライセンスデータＥ（Ｋｓ２，Ｅ（ＫＰｐ２，ＬＩＣ））をストレージデバイス２００へ出力する（Ｓ１６２）。
【０１５０】
ストレージデバイス２００は、暗号ライセンスデータＥ（Ｋｓ２，Ｅ（ＫＰｐ２，ＬＩＣ））を受理すると（Ｓ１６４）、これを暗号エンジン２０３内の第２復号部２２７に伝達する。
【０１５１】
第２復号部２２７は、内部に保持しているセッション鍵Ｋｓ２で暗号化ライセンスデータＥ（Ｋｓ２，Ｅ（ＫＰｐ２，ＬＩＣ））を復号し、自身の公開鍵ＫＰｐ２で暗号化されたライセンスデータＥ（ＫＰｐ２，ＬＩＣ）を取り出す。そして、取り出された暗号化ライセンスデータＥ（ＫＰｐ２，ＬＩＣ）は第３復号部２２８に伝達される。
【０１５２】
第３復号部２２８は、伝達された暗号化ライセンスデータＥ（ＫＰｐ２，ＬＩＣ）を、公開鍵ＫＰｐ２と対の秘密鍵Ｋｐ２で復号してライセンスデータＬＩＣを取り出し（Ｓ１６６）、これをローカルバス２４０を介して制御部２２０に伝達する。制御部２２０は、ライセンスデータＬＩＣから識別情報ＬｉｃＩＤを取り出して、ログ記憶部１２９に伝達する。また、ライセンスデータＬＩＣをデータバス２１０へ出力する。
【０１５３】
ログ記憶部１２９は、識別情報ＬｉｃＩＤを受け取ると、記憶している履歴情報に識別情報ＬｉｃＩＤを追記し、併せて、同履歴情報内の状態情報ＳＴ１を“状態ＲＰ”から“状態ＲＬ”に変化させる（Ｓ１６６）。
【０１５４】
コントローラ２０１は、データバス２１０に出力されたライセンスデータを耐タンパ記憶部２０４の指定されたアドレスに記憶する（Ｓ１６８）。
【０１５５】
耐タンパ記憶部２０４に対するライセンスデータの記憶が正常に終了すると（Ｓ１７０のＹ）、ログ記憶部２３４は、情報ＳＴ２を“状態ＲＣ”に変化させる（Ｓ１７２）。
【０１５６】
このように１つのライセンスデータの記録が終了すると、端末装置１５０のコントローラ１５１は、続いてライセンスデータを記録するか判断する（Ｓ１７４）。
【０１５７】
続いてライセンスデータを記録する場合（Ｓ１７４のＹ）、Ｓ１３４に移行してセッション情報の生成命令の発行から処理を繰り返す。これは、複数のライセンスデータを記録する場合に、証明書の検証処理を共有とすることで、処理を軽減することを目的とした手順である。この時、チャレンジ鍵Ｋｃ１は、配信サーバ１００の暗号エンジン１０３とストレージデバイス２００の暗号エンジン２０３で共有された状態である。なお、ここで、続いてライセンスデータを記録するとしたが、１つのライセンスデータの記録後、直ちに次のライセンスデータの記録を行わなければならないわけではない。配信サーバ１００の暗号エンジン１０３とストレージデバイス２００の暗号エンジン２０３が同じチャレンジ鍵Ｋｃ1を共有している状態、具体的には、配信サーバ１００の暗号エンジン１０３の第１復号部１２３と、ストレージデバイス２００の暗号エンジン２０３の第２暗号部２２６が、同じチャレンジ鍵Ｋｃ１を保持している状態であればいかなるタイミングであっても良い。
【０１５８】
また、続いてライセンスデータを記録する場合であっても、Ｓ１０２から処理を繰り返しても何ら問題はない。
【０１５９】
続いてライセンスデータを記録しない場合（Ｓ１７４のＮ）には、本処理を正常終了する。
【０１６０】
耐タンパ記憶部２０４に対するライセンスデータの記憶でエラーが発生すると（Ｓ１７０のＮ）、コントローラ２０１は、書込エラー通知を、ストレージインタフェース２０２を介して端末装置１５０のコントローラ１５１に送信する（Ｓ２００）。ライセンスデータを記憶する際のエラーは、耐タンパ記憶部２０４に書込ができない場合の他、暗号化ライセンスデータＥ（Ｋｓ２，Ｅ（ＫＰｐ２，ＬＩＣ））の送受信中のデータ誤りなどによって、受け取ったライセンスデータＬＩＣの形式が誤っていている場合も含めてもよい。
【０１６１】
コントローラ１５１は、書込エラー通知を受信すると（Ｓ２０２）。ストレージデバイス２００に対してステータス情報生成命令を発行する（Ｓ２０４）。
【０１６２】
ストレージデバイス２００では、コントローラ２０１がステータス情報生成命令を受理する（Ｓ２０６）と、暗号エンジン２０３の制御部２２０は、ログ署名部２３５に指示をする。
【０１６３】
ログ署名部２３５は、ログ記憶部２３４に記憶されている履歴情報に含まれるセッション鍵Ｋｓ２、識別情報ＬｉｃＩＤ、状態情報ＳＴ２を取り出し、これらとステップＳ１３２で保持したチャレンジ鍵Ｋｃ１とを連結して、データＫｃ１／／Ｋｓ２／／ＬｉｃＩＤ／／ＳＴ２を生成する。そして、ハッシュ演算を行い、Ｈ（Ｋｃ１／／Ｋｓ２／／ＬｉｃＩＤ／／ＳＴ２）を算出し、この演算結果と識別情報ＬｉｃＩＤ、状態情報ＳＴ２を連結して、ステータス情報ＬｉｃＩＤ／／ＳＴ３／／Ｈ（Ｋｃ１／／Ｋｓ２／／ＬｉｃＩＤ／／ＳＴ２）を生成する（Ｓ２０８）。
【０１６４】
端末装置１５０のコントローラ１５１は、ストレージデバイス２００においてステータス情報生成命令の処理が終了すると、ステータス情報出力命令を発行する（Ｓ２１０）。
【０１６５】
ストレージデバイス２００では、ステータス情報出力命令を受理する（Ｓ２１２）と、コントローラ２０１が、暗号エンジン２０３からステータス情報ＬｉｃＩＤ／／ＳＴ２／／Ｈ（Ｋｃ１／／Ｋｓ２／／ＬｉｃＩＤ／／ＳＴ２）を読み出し、端末装置１５０のコントローラ１５１へ出力する（Ｓ２１４）。
【０１６６】
端末装置１５０のコントローラ１５１は、ストレージデバイス２００からステータス情報ＬｉｃＩＤ／／ＳＴ２／／Ｈ（Ｋｃ１／／Ｋｓ２／／ＬｉｃＩＤ／／ＳＴ２）を受信すると、これを配信サーバ１００に送信する（Ｓ２１６）。
【０１６７】
配信サーバ１００は、ステータス情報ＬｉｃＩＤ／／ＳＴ２／／Ｈ（Ｋｃ１／／Ｋｓ２／／ＬｉｃＩＤ／／ＳＴ２）を受理すると（Ｓ２１８）、これを内部の暗号エンジン１０３に伝達する。
【０１６８】
暗号エンジン１０３では、制御部１２８の指示に従って、ログ検証部１３０に伝達されたステータス情報を検証し、ステータス情報が信頼できるかの判断によって、ライセンスデータをリカバリー、すなわち、ライセンスデータを未送信の状態とするか否かの判定を行う（Ｓ２２０）。
【０１６９】
Ｓ２２０のステータス情報の検証では、次の２項目が確認される。１）ステータス情報中の識別情報ＬｉｃＩＤとログ記憶部１２９に記憶されている識別情報ＬｉｃＩＤが一致しているか。２）ステータス情報中の識別情報ＬｉｃＩＤ、状態情報ＳＴ３、ログ記憶部１２９に履歴情報として記憶されているセッション鍵Ｋｓ１、ステップＳ１３２で保持したチャレンジ鍵Ｋｃ２を連結し、この連結されたデータに対してハッシュ関数演算を行った結果Ｈ（Ｋｃ１／／Ｋｓ２／／ＬｉｃＩＤ／／ＳＴ２）と、ステータス情報中のハッシュ値Ｈ（Ｋｃ１／／Ｋｓ２／／ＬｉｃＩＤ／／ＳＴ２）が一致しているか。
【０１７０】
上記２項目の確認において、何れか１つでも不一致であった場合、ステータス情報は信頼できない情報であるとして、リカバリーの対象でないと判断する（Ｓ２２０のＮ）。
【０１７１】
一方、上記２項目の確認において、２項目共に一致した場合、ステータス情報を信頼できるデータであると承認し、さらに、情報ＳＴ２と、ログ記憶部１２９に記憶されている情報ＳＴ１に基づいて、当該ライセンスデータが復旧の対象となるライセンスデータか否か判断する。これは、コンテンツ権利者の権利を保護する立場から、リカバリーの対象となるライセンスデータは、配信サーバ１００から出力された状態であり、かつ、ストレージデバイス２００に記憶されていないものに限られるためである。具体的には、ログ記憶部１２９に記憶されている状態情報ＳＴ１が”状態ＳＬ”であり、かつ、ステータス情報内の状態情報ＳＴ２が”状態ＲＰ”あるいは”状態”ＲＬ”であるときである。
【０１７２】
上記の判断において、リカバリーの対象であると判断されると（Ｓ２２０のＹ）、ライセンスデータを未送信の状態とし、ログ記憶部の状態情報ＳＴ１を、“状態ＳＰ”へ変更する（Ｓ２２２）。ライセンスデータの未送信の状態は、たとえば、有料コンテンツ配信であって課金状態となっていれば、それを解消する。あるいは、ライセンスデータの再出力に応えるようにするなどの状態に移行することになる。
【０１７３】
続いて、リカバリー通知を端末装置１５０に送信する（Ｓ２２４）。
【０１７４】
端末装置１５０のコントローラ１５１は、リカバリー通知を受信する（Ｓ２２６）とステップＳ１７４へ移行し、再び、ライセンスデータの受信を受けるか判断する（Ｓ１７４）。
【０１７５】
上記の判断において、リカバリーの対象でないと判断されると（Ｓ２２０のＮ）、リカバリーエラー通知を端末装置１５０に送信する（Ｓ２２８）。
【０１７６】
端末装置１５０のコントローラ１５１は、リカバリー通知を受信する（Ｓ２３０）とステップＳ１７４へ移行し、別のライセンスデータの受信を受けるか判断する（Ｓ１７４）。
【０１７７】
以上の手順により、暗号化されたコンテンツを復号し再生するために必要なライセンスデータＬＩＣがストレージデバイス２００に記録される。暗号化コンテンツは、通常データであり、ストレージデバイス２００の通常コマンドによって記録されるため、ここでは説明を省略する。
【０１７８】
なお、ライセンスデータＬＩＣと暗号化コンテンツデータの記録順序は、いずれが先であってもかまわない。さらには、暗号化コンテンツデータの記録における空き時間に、セキュアコマンドを分割して発行することで、ライセンスデータＬＩＣを記録するようにしてもよい。
【０１７９】
なお、図８乃至図１０が示す、端末装置１５０が配信サーバ１００から送信されたライセンスデータＬＩＣをストレージデバイス２００に記録するまでの手順は、正常に処理が推移した場合の例である。
【０１８０】
※ライセンスの利用
図１１乃至図１４は、再生装置３００がストレージデバイス２００からライセンスデータＬＩＣを読み出し、読み出したコンテンツ鍵を破棄するまでの再生処理にかかる手順を示す。この再生処理では、ストレージデバイス２００の暗号エンジン２０３と再生装置３００の暗号エンジン３０３との間で暗号通信路が構築され、その暗号通信路を介してライセンスデータＬＩＣがストレージデバイス２００から再生装置３００に送信される。なお、図は、ストレージデバイス２００（暗号エンジン２０３）、再生装置３００の暗号エンジン３０３、および、これらのデータ交換を仲介する再生装置３００のコントローラ３０１に区分して処理を示している。
【０１８１】
まず、再生装置３００のコントローラ３０１は、暗号エンジン３０３に対して証明書の出力要求を行う（Ｓ３０２）。暗号エンジン３０３は、この送信要求を受け取ると（Ｓ３０４）、証明書出力部３２０が証明書Ｃ［ＫＰｄ３］をコントローラ３０１へ伝達する（Ｓ３０６）。コントローラ３０１は、暗号エンジン３０３から証明書Ｃ［ＫＰｄ３］が伝達されると（Ｓ３０８）、ストレージデバイス２００に対して証明書検証命令を発行する（Ｓ３１０）。
【０１８２】
ストレージデバイス２００では、証明書検証命令が受理されると（Ｓ３１２）、再生装置３００に対して証明書を要求する。再生装置３００のコントローラ３０１は、この要求に応じて、暗号エンジン３０３から伝達された証明書Ｃ［ＫＰｄ３］をストレージデバイス２００へ出力する（Ｓ３１４）。
【０１８３】
ストレージデバイス２００は、証明書Ｃ［ＫＰｄ３］を受理すると（Ｓ３１６）、受理した証明書Ｃ［ＫＰｄ３］を内部の暗号エンジン２０３に伝達する。暗号エンジン２０３では、制御部２２０の指示に従って、証明書検証部２２３が証明書Ｃ［ＫＰｄ３］を検証鍵ＫＰａで検証する（Ｓ３１８）。
【０１８４】
ｓ３１８において、証明書が承認されなかった場合（Ｓ３１８のＮ）、証明書検証部２２３は検証エラー通知を、制御部２２０、コントローラ２０１、ストレージインタフェース２０２を介して、コントローラ３０１に送信する（Ｓ４９０）。コントローラ３０１は、エラー通知を受信すると（Ｓ４９２）、本処理を異常終了する。
【０１８５】
一方、ｓ３１８において、証明書Ｃ［ＫＰｄ３］が承認された場合（Ｓ３１８のＹ）、暗号エンジン２０３の制御部２２０は、証明書Ｃ［ＫＰｄ３］から公開鍵ＫＰｄ３を取り出し、これを第３暗号部２２９に伝達する。第３暗号部２２９は、伝達された公開鍵ＫＰｄ３を保持する（Ｓ３２０）。
【０１８６】
ストレージデバイス２００において、暗号エンジン３０３の証明書Ｃ［ＫＰｄ３］が承認されると、再生装置３００のコントローラ３０１は、ストレージデバイス２００に対してチャレンジ情報生成命令を発行する（Ｓ３２２）。ストレージデバイス２００が、再生装置３００が発行したチャレンジ情報生成命令を受理する（Ｓ３２４）と、暗号エンジン２０２では、制御部２２０の指示に従って、乱数発生部２２１がチャレンジ鍵Ｋｃ２を生成し、保持する（Ｓ３２６）。保持されたチャレンジ鍵Ｋｃ２は、第３暗号部２２９、第４復号部２３０およびログ検証部２３６に伝達される。
【０１８７】
第３暗号部２２９は、Ｓ３２０にて保持した公開鍵ＫＰｄ３で、伝達されたセッション鍵Ｋｃ２を暗号化して暗号化チャレンジ鍵Ｅ（ＫＰｄ３，Ｋｃ２）を生成する。次に、自身の証明書Ｃ［ＫＰｄ２］を証明書出力部２２２から取得し、これを生成した暗号化チャレンジ鍵Ｅ（ＫＰｄ３，Ｋｃ２）と連結してチャレンジ情報Ｅ（ＫＰｄ３，Ｋｃ２）／／Ｃ［ＫＰｄ２］を生成する（Ｓ３２８）。
【０１８８】
再生装置３００では、ストレージデバイス２００においてチャレンジ情報生成命令の処理が終了すると、コントローラ３０１がチャレンジ情報出力命令を発行する（Ｓ３３０）。
【０１８９】
ストレージデバイス２００が、再生装置３００が発行したチャレンジ情報出力命令を受理する（Ｓ３３２）と、コントローラ２０１は、暗号エンジン２０３からチャレンジ情報Ｅ（ＫＰｄ３，Ｋｃ２）／／Ｃ［ＫＰｄ２］を取り出し、再生装置３００のコントローラ３０１へ出力する（Ｓ３３４）。
【０１９０】
再生装置３００では、コントローラ３０１が、チャレンジ情報Ｅ（ＫＰｄ３，Ｋｃ２）／／Ｃ［ＫＰｄ２］を受信すると、これを暗号エンジン３０３に伝達する（Ｓ３３６）。そして、暗号エンジン３０３が、チャレンジ情報Ｅ（ＫＰｄ３，Ｋｃ２）／／Ｃ［ＫＰｄ２］を受信すると（Ｓ３３８）、暗号エンジン３０３内の証明書検証部３２２が、検証鍵ＫＰａで伝達された証明書を検証する（Ｓ３４０）。
【０１９１】
証明書が承認されなかった場合（Ｓ３４０のＮ）、証明書検証部３２２は、検証エラー通知をコントローラ３０１に送信する（Ｓ３９４）。コントローラ３０１は、エラー通知を受信すると（Ｓ４９２）、本処理を異常終了する。
【０１９２】
一方、証明書が承認された場合（Ｓ３４０のＹ）、暗号エンジン３０３の第１復号部３２３は、暗号化チャレンジ鍵Ｅ（ＫＰｄ３，Ｋｃ２）を自身の秘密鍵Ｋｄ３で復号してチャレンジ鍵Ｋｃ２を取り出し（Ｓ３４２）、保持する（Ｓ３４４）。保持されたチャレンジ鍵Ｋｃ２は、第２暗号部３２５とログ署名部３３１に伝達される。
【０１９３】
一方、コントローラ３０１は、ストレージデバイス２００に対してライセンス読出命令を発行する（Ｓ３４６）。このライセンス読出命令は、耐タンパ記憶部２０４における読み出し位置を指定するアドレスを伴っている。
【０１９４】
ストレージデバイス２００は、再生装置３００が発行したライセンス読出命令を受理すると（Ｓ３４８）、耐タンパ記憶部２０４の指定されたアドレスに記憶されているライセンスデータＬＩＣを読み出し、読み出されたライセンスデータＬＩＣは、暗号エンジン２０２の第４暗号部２３２に保持される（Ｓ３５０）。
【０１９５】
続いて、コントローラ３０１は、暗号エンジン３０３に対してセッション情報を要求する（Ｓ３５２）。暗号エンジン３０３は、この要求を受け取ると（Ｓ３５４）、乱数発生部３２１がセッション鍵Ｋｓ３を生成し、第１暗号部３２４、第２復号部３２６、ログ記録部３３０に伝達する。第２復号部３２６およびログ記憶部３３０は、伝達されたセッション鍵Ｋｓ３を内部に履歴情報として記憶する。この時、ログ記憶部３３０は、情報ＳＴ３として“状態ＲＰ”を示す情報を併せて記憶する（Ｓ３５４）。そして、第１暗号部３２４は、証明書Ｃ［ＫＰｄ２］から取り出されたストレージデバイス２００の公開鍵ＫＰｄ２で、セッション鍵Ｋｓ２を暗号化し、暗号化セッション鍵Ｅ（ＫＰｄ２，Ｋｓ３）を生成する。生成された暗号化セッション鍵Ｅ（ＫＰｄ２，Ｋｓ３）は、第２暗号部３２５に伝達される。第２暗号部３２５は、伝達された暗号化セッション鍵Ｅ（ＫＰｄ２，Ｋｓ３）に自身の公開鍵ＫＰｐ３を連結し、これらをＳ３４４で保持されたチャレンジ鍵Ｋｃ２で暗号化してセッション情報Ｅ（Ｋｃ２，Ｅ（ＫＰｄ２、Ｋｓ３）／／ＫＰｐ３）を生成し、これをコントローラ３０１へ送る（Ｓ３５６）。
【０１９６】
コントローラ３０１は、暗号エンジン３０３からセッション情報Ｅ（Ｋｃ２，Ｅ（ＫＰｄ２，Ｋｓ３）／／ＫＰｐ３）を受信すると（Ｓ３５８）、ストレージデバイス２００に対してセッション情報処理命令を発行する（Ｓ３６０）。
【０１９７】
ストレージデバイス２００は、再生装置３００から発行されたセッション情報処理命令を受理すると（Ｓ３６２）、再生装置３００に対してセッション情報を要求し、再生装置３００のコントローラ３０１は、この要求に応じて、暗号エンジン３０３から受け取ったセッション情報Ｅ（Ｋｃ２，Ｅ（ＫＰｄ２，Ｋｓ３）／／ＫＰｐ３）をストレージデバイス２００へ出力する（Ｓ３６４）。
【０１９８】
ストレージデバイス２００は、セッション情報Ｅ（Ｋｃ２，Ｅ（ＫＰｄ２，Ｋｓ３）／／ＫＰｐ３）を受理すると（Ｓ３６６）、暗号エンジン２０３の第４復号部２３０に伝達する。第４復号部２３０は、伝達されたセッション情報Ｅ（Ｋｃ２，Ｅ（ＫＰｄ２，Ｋｓ３）／／ＫＰｐ３）を、Ｓ３２６で保持されたチャレンジ鍵Ｋｃ２で復号する。そして、暗号化セッション鍵Ｅ（ＫＰｄ２，Ｋｓ３）と再生装置３００の公開鍵ＫＰｐ３を取り出し、暗号化セッション鍵Ｅ（ＫＰｄ２，Ｋｓ３）を第５復号部２３１に伝達し、また公開鍵ＫＰｐ３を第４暗号部２３２とログ記憶部２３４に伝達する。
【０１９９】
次いで、第５復号部２３１は、伝達された暗号化セッション鍵Ｅ（ＫＰｄ２，Ｋｓ３）を、自身の公開鍵ＫＰｄ２と対をなす自身の秘密鍵Ｋｄ２で復号してセッション鍵Ｋｓ３を取り出し、これを第５暗号部２３３とログ記憶部２３４に伝達する。
【０２００】
ログ記憶部２３４は、伝達されたセッション鍵Ｋｓ３を、新たな履歴情報として記憶する。また、この時、“状態ＳＰ”を示す情報も併せて記憶する（Ｓ３６８）。
【０２０１】
第４暗号部２３２は、Ｓ３５０で保持されたライセンスデータＬＩＣを、第４復号部２３０から伝達された再生装置３００の公開鍵ＫＰｐ３で暗号化して暗号化ライセンスデータＥ（ＫＰｐ３，ＬＩＣ）を生成し、これを第５暗号部２３３に伝達する。第５暗号部２３３は、第４暗号部２３２で生成された暗号化ライセンスデータＥ（ＫＰｐ３，ＬＩＣ）を、第５復号部２３１から伝達されたセッション鍵Ｋｓ３で暗号化し、暗号化ライセンスデータＥ（Ｋｓ３，Ｅ（ＫＰｐ３，ＬＩＣ））を生成する（Ｓ３７０）。
【０２０２】
再生装置３００のコントローラ３０１は、ストレージデバイス２００においてセッション情報処理命令の処理が終了、すなわち、暗号化ライセンスデータＥ（Ｋｓ３，Ｅ（ＫＰｐ３，ＬＩＣ））が生成されると、ストレージデバイス２００に対して暗号化ライセンス出力命令を発行する（Ｓ３７２）。ストレージデバイス２００は、再生装置３００が発行した暗号化ライセンス出力命令を受理する（Ｓ３７４）と、暗号エンジン２０３の制御部２２０は、ライセンスデータＬＩＣに記載される制御情報ＰＣの確認を行う（Ｓ３７６）。
【０２０３】
制御情報ＰＣが０の場合（Ｓ３７６のＩＶ）、制御部２２０は、再生回数の制限がなされたライセンスデータであって、かつ、既に制限回数の再生が終了していると判断し、再生条件エラー通知を、コントローラ２０１、ストレージインタフェース２０２を介して、再生装置３００のコントローラ３０１に送信する（Ｓ３９０）。再生装置３００のコントローラ３０１は、ストレージデバイス２００が送信したエラー通知を受信すると（Ｓ３９２）、本処理は、ステップＳ３９６へ移行し、別のライセンスデータを送信するか判断する（Ｓ３９６）。
【０２０４】
また、Ｓ３７６において、制御情報ＰＣが１〜２５４の場合（Ｓ３７６のＡＬ）、制御部２２０は、耐タンパ記憶部２０４に記憶されているライセンスデータの制御情報ＰＣを１減算した値に変更する。（Ｓ３７８）。
【０２０５】
また、Ｓ３７６において、制御情報ＰＣが２５５の場合（Ｓ３７６のＮＡ）、およびＳ３７８の後、制御部２２０は、暗号化ライセンスデータＥ（Ｋｓ３，Ｅ（ＫＰｐ３，ＬＩＣ））を、コントローラ２０１、ストレージインタフェース２０２を介して、再生装置３００のコントローラ３０１へ出力すると共に、ログ記録部２３４に、出力したライセンスデータＬＩＣの識別情報ＬｉｃＩＤを保持させ、情報ＳＴ２を“状態ＳＬ”に変更させる（Ｓ３８０）。
【０２０６】
再生装置３００のコントローラ３０１は、ストレージデバイス２００から暗号化ライセンスデータＥ（Ｋｓ３，Ｅ（ＫＰｐ３，ＬＩＣ））を受信すると、これを暗号エンジン３０３に送る（Ｓ３８２）。暗号エンジン３０３が暗号化ライセンスデータＥ（Ｋｓ３，Ｅ（ＫＰｐ３，ＬＩＣ））を受信すると（Ｓ３８４）、第２復号部３２６は、Ｓ３５４において保持されたセッション鍵Ｋｓ３で暗号化ライセンスデータＥ（Ｋｓ３，Ｅ（ＫＰｐ３，ＬＩＣ））を復号し、復号結果のＥ（ＫＰｐ３，ＬＩＣ）を第３復号部３２７に伝達する。
【０２０７】
第３復号部３２７は、伝達されたＥ（ＫＰｐ３，ＬＩＣ）を公開鍵ＫＰｐ３と対をなす自身の秘密鍵Ｋｐ３で復号してライセンスデータＬＩＣを取り出し、取り出したライセンスデータＬＩＣの識別情報ＬｉｃＩＤをログ記憶部３３０に伝達し、また、コンテンツ鍵をコンテンツ鍵出力部３２８に伝達する。
【０２０８】
ログ記憶部３３０は、伝達された識別情報ＬｉｃＩＤを保持し、情報ＳＴ３を“状態RL”に変更し（Ｓ３８６）、コンテンツ鍵出力部３２８は、復号器３０４に対して伝達されたコンテンツ鍵の提供を開始する（Ｓ３８８）。
【０２０９】
コントローラ３０１は、復号器３０４に対してコンテンツ鍵が提供可能な状態になると、再生終了の確認、すなわち、暗号コンテンツデータの再生完了による再生の終了、あるいは、ユーザからの再生中止指示（終了操作、選択操作などによる再生停止の指示を含む）による再生の終了をすべきか確認する（Ｓ３９０）。
【０２１０】
Ｓ３９０において、再生が終了でない場合（Ｓ３９０のＮ）、ストレージデバイス２００の通常データ記憶部２０５に記録されている暗号化コンテンツデータを読み出し、復号器３０４に供給する（Ｓ３９２）。このとき、コントローラ３０１は、コンテンツデコーダ３０５においてスムーズに再生がなされるよう、必要量の暗号化コンテンツデータを、断続的に復号器３０４に供給する。そして、復号器３０４へ供給を休止している間に、再びＳ３９０に戻って、終了判定を行う。
【０２１１】
一方、暗号エンジン３０３では、復号器３０４に対してコンテンツ鍵が提供可能な状態になると、コントローラ３０１における処理と並行して、コンテンツ鍵出力部３２８による復号部３０４の復号処理を監視する監視処理が開始される（Ｓ４００）。コンテンツ鍵出力部３２８は、提供したコンテンツ鍵による再生が開始されるか、あるいは、コンテンツ鍵が利用されずに再生が終了するかを確認する（Ｓ４０２）。
【０２１２】
Ｓ４０２で再生が開始されると確認されると（Ｓ４０２のＹ）、経過時間計測部３２９のタイマをリセットし、復号処理の継続時間の計測を開始してＴ秒の経過を待つ（Ｓ４０４）。そして、Ｔ秒が経過すると（Ｓ４０４のＹ）、経過時間計測部３２９からライセンスデータＬＩＣが消費された旨を伝える情報が、ログ記憶部３３０に伝達される。この情報を受け取ったログ記憶部３３０は、記憶されている情報ＳＴ３を“状態CL”に変更して（Ｓ４０６）、暗号エンジン３０３における監視処理を終了する。
【０２１３】
また、Ｓ４０２、あるいは、Ｓ４０４において、再生の終了が確認されると（Ｓ４０２のＳ、あるいは、Ｓ４０４のＳ）、暗号エンジン３０２における監視処理を終了する。この場合、ログ記憶部３３０に記憶されている情報ＳＴ３は“状態RL”のままである。
【０２１４】
Ｓ３９０において、コントローラ３０１が再生終了を確認する（Ｓ３９０のＹ）と、再生時間がＴ秒を超えているか確認する（Ｓ３９４）。この確認においては、たとえば、コントローラ３０１が内部に備えているタイマを用いて確認を行っても良い、暗号エンジン３０３の経過時間計測部３２９を参照して確認を行っても良い、また、暗号エンジン３０３のログ記憶部３３０の情報ＳＴ３の状態によって判断するようにしても良い。
【０２１５】
Ｓ３９４において、再生してＴ秒が経過した場合（Ｓ３９４のＹ）、コントローラ３０１は、ライセンスデータが消費されたとみなし、次のコンテンツを続いて再生するか判断する（Ｓ３９６）。続けて再生を行わない、すなわち、他のライセンスデータを読み出さない場合（Ｓ３９６のＮ）、本処理を正常に終了する。
【０２１６】
Ｓ３９６において、続いて再生する、すなわち、他のライセンスデータを読み出したい場合（Ｓ３９６のＹ）、コントローラ３０１は、Ｓ３４６に移行してライセンス読出命令の発行から処理を繰り返すことができる。これは、複数のライセンスデータの読み出しにおいて、証明書の検証処理を共有とすることで、処理を軽減することを目的とした手順である。なお、続いてライセンスデータを読み出すとしたが、１つのライセンスデータを読み出した後、直ちに次の読み出しを行わなければならないわけではない。暗号エンジン３０３とストレージデバイス２００がチャレンジ鍵Ｋｃ２を共有している状態、具体的には、再生装置３００の暗号エンジン３０３の第２暗号部３２５と、ストレージデバイス２００の暗号エンジン２０３の第４復号部２３０が、同じチャレンジ鍵Ｋｃ２を保持している状態であればいかなるタイミングであっても良い。また、続けてライセンスデータを読み出す場合であっても、ステップＳ３０２から手順を開始しても何ら問題はない。続いて他のライセンスデータを読み出さない場合（Ｓ３８６のＮ）、コントローラ３０３は、本処理を正常に終了する。
【０２１７】
また、Ｓ３９４において、Ｔ秒未満の再生、あるいは、再生が行われなかった場合（Ｓ３９４のＮ）、コントローラ３０１は、ライセンスデータが消費されていないと判断し、ストレージデバイス２００に記録されているライセンスデータＬＩＣの復元処理を開始する。
【０２１８】
再生装置３００のコントローラ３０１は、ステータス情報送信要求を暗号エンジン３０３に送る（Ｓ４１０）。
【０２１９】
暗号エンジン３０３の制御部３３２は、ステータス情報送信要求を受け取ると（Ｓ４１２）、ログ署名部３３１に指示をする。ログ署名部３３１は、ログ記憶部３３０に記憶されている履歴情報に含まれるセッション鍵Ｋｓ３、識別情報ＬｉｃＩＤ、情報ＳＴ３を取り出し、これらとステップＳ３４４で保持したチャレンジ鍵Ｋｃ２とを連結して、データＫｃ２／／Ｋｓ３／／ＬｉｃＩＤ／／ＳＴ３を生成する。そして、ハッシュ演算を行い、Ｈ（Ｋｃ２／／Ｋｓ３／／ＬｉｃＩＤ／／ＳＴ３）を算出し、この演算結果と識別情報ＬｉｃＩＤ、状態情報ＳＴ３を連結して、ステータス情報ＬｉｃＩＤ／／ＳＴ３／／Ｈ（Ｋｃ２／／Ｋｓ３／／ＬｉｃＩＤ／／ＳＴ３）を生成し、再生装置３００のコントローラ３０１へ出力する（Ｓ４１６）。
【０２２０】
再生装置３００のコントローラ３０１は、暗号エンジン３０３からステータス情報ＬｉｃＩＤ／／ＳＴ３／／Ｈ（Ｋｃ２／／Ｋｓ３／／ＬｉｃＩＤ／／ＳＴ３）を受信すると（Ｓ４１８）、ストレージデバイス２００に対してステータス情報処理命令を発行する（Ｓ４２０）。
【０２２１】
ストレージデバイス２００は、再生装置３００から発行されたステータス情報処理命令を受理すると（Ｓ４２２）、再生装置３００にステータス情報を要求する。
【０２２２】
再生装置３００のコントローラ３０１は、この要求に応じて、暗号エンジン３０３から出力されたステータス情報ＬｉｃＩＤ／／ＳＴ３／／Ｈ（Ｋｃ２／／Ｋｓ３／／ＬｉｃＩＤ／／ＳＴ３）をストレージデバイス２００へ出力する（Ｓ４２４）。
【０２２３】
ストレージデバイス２００は、ステータス情報ＬｉｃＩＤ／／ＳＴ３／／Ｈ（Ｋｃ２／／Ｋｓ３／／ＬｉｃＩＤ／／ＳＴ３）を受理すると（Ｓ４２６）、これを内部の暗号エンジン２０３に伝達する。
【０２２４】
暗号エンジン２０３では、制御部２２０の指示に従って、ログ検証部２３６が伝達されたステータス情報を検証し、ステータス情報が信頼できるかの判断によって、ライセンスデータをリカバリー、すなわち、ライセンスデータを出力前の状態に戻すかの判断を行う（Ｓ４２８）。
【０２２５】
Ｓ４２８のステータス情報の検証では、次の２項目が確認される。１）ステータス情報中の識別情報ＬｉｃＩＤとログ記憶部２３４に記憶されている識別情報ＬｉｃＩＤが一致しているか。２）ステータス情報中の識別情報ＬｉｃＩＤ、状態情報ＳＴ３、ログ記憶部２３４に保持されているセッション鍵Ｋｓ３、ステップＳ４１４で保持したチャレンジ鍵Ｋｃ２を連結し、この連結されたデータに対してハッシュ関数演算を行った結果Ｈ（Ｋｃ２／／Ｋｓ３／／ＬｉｃＩＤ／／ＳＴ３）と、ステータス情報中のハッシュ値Ｈ（Ｋｃ２／／Ｋｓ３／／ＬｉｃＩＤ／／ＳＴ３）が一致しているか。
【０２２６】
上記２項目の確認において、何れか１つでも不一致であった場合、ステータス情報は信頼できない情報であるとして、リカバリーの対象でないと判断する（Ｓ４２８のＮ）。
【０２２７】
一方、上記２項目の確認において、２項目共に一致した場合、ステータス情報を信頼できるデータであると承認し、さらに、情報ＳＴ３と、ログ記憶部２３４に記憶されている情報ＳＴ２に基づいて、当該ライセンスデータが復旧の対象となるライセンスデータか否か判断する。これは、コンテンツ権利者の権利を保護する立場から、復旧の対象となるライセンスデータは、ストレージデバイス２００から出力されたものであり、かつ、再生装置２００にて消費されていないものに限られるためである。具体的には、情報ＳＴ２が”状態ＳＬ”であり、かつ、情報ＳＴ３が”状態ＲＰ”あるいは”状態”ＲＬ”であるときである。
【０２２８】
上記の判断において、リカバリーの対象であると判断されると（Ｓ４２８のＹ）、耐タンパ記憶部２０４に記憶されているライセンスデータの制御情報ＰＣが２５５でない場合、この制御情報ＰＣを１加算した値に変更する（Ｓ４３０）。そして、制御部２２０は、リカバリー通知をコントローラ２０１、ストレージインタフェース２０２を介して、再生装置３００のコントローラ３０１に送信する（Ｓ４３２）。
【０２２９】
再生装置３００のコントローラ３０１は、ストレージデバイス２００から出力されたエラー通知を受信すると（Ｓ４３４）、Ｓ３９６へ移行し、本処理を継続する。
【０２３０】
一方、Ｓ４２８においてリカバリーの対象でないと判断されると（Ｓ４２８のＮ）、制御部２２０は、リカバリーエラー通知をコントローラ２０１、ストレージインタフェース２０２を介して、再生装置３００のコントローラ３０１に送信する（Ｓ４５０）。
【０２３１】
再生装置３００のコントローラ３０１は、ストレージデバイス２００から出力されたエラー通知を受信すると（Ｓ４５２）、Ｓ３９６へ移行し、本処理を継続する。
【０２３２】
なお、図１１乃至図１４に示す、再生装置３００がストレージデバイス２００に記録されたライセンスデータを利用する手順は、処理が正常に推移した場合の例である。
【０２３３】
なお、ライセンスデータの消費の判定における再生時間の測定について、本実施の形態では、復号部３０４における復号処理までの経過時間を測定するものとしたが、復号部３０４からコンテンツデコーダ３０５への復号結果の提供までの経過時間を測定するものとしてもよい。このほか、コンテンツデコーダ３０５におけるデコード処理までの経過時間、あるいは、コンテンツデコーダ３０５から出力された再生信号の提供までの経過時間を測定するようにしてもよい。
【０２３４】
また、本実施の形態では、ライセンスデータの”消費でない”とする境界時間Ｔを、コンテンツ種類、たとえば、音楽や映像など、毎に予め定められているとしたが、利用規則としてライセンスデータＬＩＣに含めることもでき、また、これらを併用することもできる。たとえば、境界時間Ｔが利用規則として設定されていない場合、予め定められた境界時間を用いることができる。
【０２３５】
また、本実施の形態では、ライセンスデータの消費の判定における再生開始後の経過時間の測定では、経過時間計測部３２９はタイマを含み、タイマを用いて時間を計測し、境界時間Ｔ秒の経過によって、消費の判断を行うものとしたが、処理したデータ量（復号または再生）によって再生開始後の経過時間を導出し、ライセンスの消費を判断することもできる。これは、コンテンツデータを符号化した符号化方式の特性から、コンテンツデータの処理データ量から再生時間を予測することが可能であるためである。また、コンテンツが、映像コンテンツである場合には、復号した、あるいは再生した映像データのフレーム数によって経過時間を導出し、ライセンスの消費を判断することもできる。
【０２３６】
さらに、ライセンスデータの消費の判定を再生時間によって行うとしているが、”消費”とするコンテンツデータの境界データ量の設置と、再生したデータ量の計測によって、消費の判定を行うようにしてもよい。
【０２３７】
また、上記では、ストレージデバイス２００にライセンスデータを格納する場合、および、暗号化コンテンツデータを復号して再生することを目的に、ライセンスデータをストレージデバイス２００から再生装置３００に送信する場合について説明したが、ストレージデバイス２００から、ストレージデバイスに記録する目的でライセンスデータを送信する場合にも同様な処理を実現できる。利用規則には、利用（再生）のみならす、ライセンスデータのコピーやムーブに関する制御も含まれている。他のストレージデバイスに、ライセンスデータあるいはライセンスデータを用いて復号したコンテンツを記録する場合、コピーやムーブの概念が適用される。この場合、制御情報ＰＣに対する処理（ステップＳ３７６、Ｓ３７８、Ｓ３８）に変えて、ライセンスデータの利用規則としてライセンスデータ内に記載されているコピー回数やムーブ回数などの制御情報に対する判断とその事後処理に置き換えられる。
【０２３８】
たとえば、制御情報がコピー回数（以下、ＣＣと称す）の場合、制御情報ＣＰによって出力は非判定を行い。ライセンスデータを出力後、事後処理として必要時応じてＣＣを減算することで実現できる。出力ののく敵と対象となる制御情報がことなるものの、上記の制御情報ＰＣと同様の処理である。リカバリ−処理とは、制御情報ＣＣが減算されている場合、加算して減算以前の値に戻す処理である。
【０２３９】
制御情報がムーブ回数（ＭＣと言う。）の場合、制御情報ＭＣによって出力可否判断をした後、出力可能であれば出力するライセンスデータの当該制御情報ＭＣを減算して出力し、ライセンスデータを出力後、事後処理としてストレージデバイス２００内に記憶されているライセンスデータを無効化し、ライセンスデータが消去されたのと同等な状態とする。ここで、リカバリ−処理とは、無効化されたライセンスデータを有効な状態に戻す処理である。
【０２４０】
また、再生、コピー、ムーブを目的としてライセンスデータが送信されるとき、リカバリー処理によって復元する対象が異なることを考慮すると、“状態ＳＬ”を目的毎に細分化して運用する効率がよい。たとえば、再生目的ではライセンスデータ送信した状態を“状態ＳＰ”、コピー目的ではライセンスデータ送信した状態を“状態ＣＰ”、ムーブ目的ではライセンスデータ送信した状態を“状態ＭＰ”などとして区別できるようにする。
【０２４１】
さらに、ストレージデバイス２００から、同じ機能を持つ別のストレージデバイスに記録を目的としてライセンスデータを送信する場合には、ライセンスデータを受け取る別のストレージデバイスが図８乃至図１０が示されるフローチャートにおけるストレージデバイス２００と同じ処理を行うことは明示である。
【０２４２】
また、上記では、暗号化ライセンスデータＥ（Ｋｓｘ，Ｅ（ＫＰｐｘ、ＬＩＣ））、セッション情報Ｅ（Ｋｃｙ，Ｅ（ＫＰｄｙ，Ｋｓｘ）／／ＫＰｐｘ）としたが、二重暗号の暗号順序を制限するものではない。つまり、暗号化ライセンスデータＥ（Ｋｐｘ，Ｅ（Ｋｓｘ、ＬＩＣ））、セッション情報Ｅ（ＫＰｄｙ，Ｅ（ＫＰｃｙ，Ｋｓｘ）／／ＫＰｐｘ）としてもよい。
【０２４３】
さらに、上記では、セッション情報では、二重暗号の対象を、Ｋｓｘとしているが、二重暗号の対象を限定するものではなく、Ｋｐｐｘであっても、ＫｓｘとＫＰｐｘの双方であってもよい。この場合、セッション情報はＥ（ＫＰｄｙ，Ｅ（ＫＰｃｙ，ＫＰｐｘ）／／ＫＰｓｘ）あるいはＥ（ＫＰｄｙ，Ｅ（ＫＰｃｙ，Ｋｓｘ／／Ｐｐｘ）となる。いずれの場合にも同様な安全性が提供される。ここではライセンスデータ提供先を“ｘ”、ライセンスデータ提供元を“ｙ”と表記する。
【０２４４】
（第２の実施の形態）
図１５は、第２の実施の形態に係るコンテンツ配信システムの構成を示す。本実施の形態のコンテンツ配信システムは、第１の実施の形態と同様に、コンテンツを配信する配信サーバ１００、コンテンツの提供を受ける端末装置１５０、端末装置１５０に提供されたコンテンツが記録されるストレージデバイス２００を含み、配信サーバ１００および端末装置１５０は、それぞれ通信装置１０４、１５３を介して、ネットワークの一例とするインターネット２０により接続される。
【０２４５】
第１の実施の形態とは、配信サーバ１００の暗号器１０２と暗号エンジン１０３が、端末装置１５０に備えられた構成である点が異なる。
【０２４６】
また、配信サーバ１００とユーザの端末装置１５０との間の通信におけるデータの安全性を確保するために、配信サーバ１００とユーザの端末装置１５０間は、ＳＬＬあるいは配信事業者が規定する独自のデジタルコンテンツ管理方式にしたがって、安全に保護される。これにより、第１の実施の形態と同様に機能するものである。
【０２４７】
以上、本発明に係る実施の形態について説明したが、この実施の形態は例示であり、本発明はこの実施の形態に限定されるものではなく、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【０２４８】
たとえば、上記の実施の形態では、暗号エンジン内において暗号化を行う機能ブロックと復号を行う機能ブロックとを別個に設けたが、これらの構成要素において回路を共有してもよい。これにより、回路規模を抑え、小型化、低消費電力化に寄与することができる。
【０２４９】
また、上記では、ストレージデバイス２００は、端末装置１５０に装着され配信サーバ１００からライセンスデータを受け取る形態について説明したが、ライセンスデータを生成する機能を有するレコーダに装着して、ライセンスデータを記録するように構成することも可能である。この場合、レコーダは、ライセンスデータを生成する生成部に加え、暗号エンジン１０３およびストレジデバイスインタフェース１５２を備えている。
【０２５０】
本発明の実施の形態は、特許請求の範囲に示された技術的思想の範囲内において、適宜種々の変更が可能である。
【図面の簡単な説明】
【０２５１】
【図１】第１の実施の形態に係るデータ管理システムの構成を示す図である。
【図２】第１の実施の形態に係る配信システムの構成を示す図である。
【図３】第１の実施の形態に係る再生装置の構成を示す図である。
【図４】第１の実施の形態に係るストレージデバイスの構成を示す図である。
【図５】図２に示した暗号エンジンの構成を示す図である。
【図６】図３に示した暗号エンジンの構成を示す図である。
【図７】図４に示した暗号エンジンの構成を示す図である。
【図８】ライセンスデータの記録処理を説明する図である。
【図９】ライセンスデータの記録処理を説明する図である。
【図１０】ライセンスデータの記録処理を説明する図である。
【図１１】ライセンスデータの利用処理を説明する図である。
【図１２】ライセンスデータの利用処理を説明する図である。
【図１３】ライセンスデータの利用処理を説明する図である。
【図１４】ライセンスデータの利用処理を説明する図である
【図１５】第２の実施の形態に係る配信システムの構成を示す図である。
【符号の説明】
【０２５２】
１００  配信サーバ
１５０  端末装置
２００  ストレージデバイス
３００  再生装置
【図１】
2006119755.tif 000003
【図２】
2006119755.tif 000004
【図３】
2006119755.tif 000005
【図４】
2006119755.tif 000006
【図５】
2006119755.tif 000007
【図６】
2006119755.tif 000008
【図７】
2006119755.tif 000009
【図８】
2006119755.tif 000010
【図９】
2006119755.tif 000011
【図１０】
2006119755.tif 000012
【図１１】
2006119755.tif 000013
【図１２】
2006119755.tif 000014
【図１３】
2006119755.tif 000015
【図１４】
2006119755.tif 000016
【図１５】
2006119755.tif 000017