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