以下、図面を参照しながら本発明の情報処理装置、情報記録媒体製造装置、情報記録媒体、および方法の詳細について説明する。なお、説明は、以下の記載項目に従って行う。
1.情報記録媒体の格納データと、ドライブおよびホストにおける処理の概要
2.コンテンツ管理ユニット(CPSユニット)について
3.変形データを含むコンテンツのデータ構成およびデータ変換処理の概要
4,再生(プレーヤ)アプリケーションとセキュアVM間の処理
5.コンテンツ再生処理
6.セグメント対応のSP識別子(SP_ID)取得処理
(6.1)セグメント対応のSP識別子(SP_ID)取得処理例1
(6.2)セグメント対応のSP識別子(SP_ID)取得処理例2
(6.3)セグメント対応のSP識別子(SP_ID)取得処理例3
7.情報処理装置の構成
8.情報記録媒体製造装置および情報記録媒体
[1.情報記録媒体の格納データと、ドライブおよびホストにおける処理の概要]
まず、情報記録媒体の格納データと、ドライブおよびホストにおける処理の概要について説明する。図1に、コンテンツの格納された情報記録媒体100、ドライブ120およびホスト140の構成を示す。ホスト140は、例えばPC等の情報処理装置で実行されるデータ再生(または記録)アプリケーションであり、所定のデータ処理シーケンスに従ってPC等の情報処理装置のハードウェアを利用した処理を行なう。
情報記録媒体100は、例えば、Blu−rayディスク、DVDなどの情報記録媒体であり、正当なコンテンツ著作権、あるいは頒布権を持ついわゆるコンテンツ権利者の許可の下にディスク製造工場において製造された正当なコンテンツを格納した情報記録媒体(ROMディスクなど)、あるいはデータ記録可能な情報記録媒体(REディスクなど)である。なお、以下の実施例では、情報記録媒体の例としてディスク型の媒体を例として説明するが、本発明は様々な態様の情報記録媒体を用いた構成において適用可能である。
図1に示すように、情報記録媒体100には、暗号化処理および一部データの置き換え処理の施された暗号化コンテンツ101と、ブロードキャストエンクリプション方式の一態様として知られる木構造の鍵配信方式に基づいて生成される暗号鍵ブロックとしてのMKB(Media Key Block)102、コンテンツ復号処理に適用するタイトル鍵を暗号化したデータ(Encrypted CPS Unit Key)等から構成されるタイトル鍵ファイル103、コンテンツのコピー・再生制御情報としてのCCI(Copy Control Information)等を含む使用許諾情報104、コンテンツ中の所定領域の置き換えデータに対応する変換データを登録した変換テーブル(Fix−up Table)105、変換テーブル(Fix−up Table)105の登録データによるデータ変換処理を実行するための処理命令を含むデータ変換処理プログラム106が格納されている。なお、図に示すデータ例は一例であり、格納データは、ディスクの種類などによって多少異なる。以下、これらの各種情報の概要について説明する。
(1)暗号化コンテンツ101
情報記録媒体100には、様々なコンテンツが格納される。例えば高精細動画像データであるHD(High Definition)ムービーコンテンツなどの動画コンテンツのAV(Audio Visual)ストリームや特定の規格で規定された形式のゲームプログラム、画像ファイル、音声データ、テキストデータなどからなるコンテンツである。これらのコンテンツは、特定のAVフォーマット規格データであり、特定のAVデータフォーマットに従って格納される。具体的には、例えばBlu−rayディスクROM規格データとして、Blu−rayディスクROM規格フォーマットに従って格納される。
さらに、例えばサービスデータとしてのゲームプログラムや、画像ファイル、音声データ、テキストデータなどが格納される場合もある。これらのコンテンツは、特定のAVデータフォーマットに従わないデータフォーマットを持つデータとして格納される場合もある。
コンテンツの種類としては、音楽データ、動画、静止画等の画像データ、ゲームプログラム、WEBコンテンツなど、様々なコンテンツが含まれ、これらのコンテンツには、情報記録媒体100からのデータのみによって利用可能なコンテンツ情報と、情報記録媒体100からのデータと、ネットワーク接続されたサーバから提供されるデータとを併せて利用可能となるコンテンツ情報など、様々な態様の情報が含まれる。情報記録媒体に格納されるコンテンツは、区分コンテンツ毎の異なる利用制御を実現するため、区分コンテンツ毎に異なる鍵(CPSユニット鍵またはユニット鍵(あるいはタイトル鍵と呼ぶ場合もある))が割り当てられ暗号化されて格納される。1つのユニット鍵を割り当てる単位をコンテンツ管理ユニット(CPSユニット)と呼ぶ。さらに、コンテンツは、構成データの一部が、正しいコンテンツデータと異なるデータによって置き換えられたブロークンデータとして設定され、復号処理のみでは正しいコンテンツ再生が実行されず、再生を行なう場合は、ブロークンデータを変換テーブルに登録されたデータに置き換える処理が必要となる。これらの処理は後段で詳細に説明する。
(2)MKB
MKB(Media Key Block)102は、ブロードキャストエンクリプション方式の一態様として知られる木構造の鍵配信方式に基づいて生成される暗号鍵ブロックである。MKB102は有効なライセンスを持つユーザの情報処理装置に格納されたデバイス鍵[Kd]に基づく処理(復号)によってのみ、コンテンツの復号に必要なキーであるメディア鍵[Km]の取得を可能とした鍵情報ブロックである。これはいわゆる階層型木構造に従った情報配信方式を適用したものであり、ユーザデバイス(情報処理装置)が有効なライセンスを持つ場合にのみ、メディア鍵[Km]の取得を可能とし、無効化(リボーク処理)されたユーザデバイスにおいては、メディア鍵[Km]の取得が不可能となる。
ライセンスエンティテイとしての管理センタはMKBに格納する鍵情報の暗号化に用いるデバイス鍵の変更により、特定のユーザデバイスに格納されたデバイス鍵では復号できない、すなわちコンテンツ復号に必要なメディア鍵を取得できない構成を持つMKBを生成することができる。従って、任意タイミングで不正デバイスを排除(リボーク)して、有効なライセンスを持つデバイスに対してのみ復号可能な暗号化コンテンツを提供することが可能となる。コンテンツの復号処理については後述する。
(3)タイトル鍵ファイル
前述したように各コンテンツまたは複数コンテンツの集合は、コンテンツの利用管理のため、各々、個別の暗号鍵(タイトル鍵(CPSユニット鍵))を適用した暗号化がなされて情報記録媒体100に格納される。すなわち、コンテンツを構成するAV(Audio Visual)ストリーム、音楽データ、動画、静止画等の画像データ、ゲームプログラム、WEBコンテンツなどは、コンテンツ利用の管理単位としてのユニットに区分され、区分されたユニット毎に異なるタイトル鍵を生成して、復号処理を行なうことが必要となる。このタイトル鍵を生成するための情報がタイトル鍵データであり、例えばメディア鍵等によって生成された鍵で暗号化タイトル鍵を復号することによってタイトル鍵を得る。タイトル鍵データを適用した所定の暗号鍵生成シーケンスに従って、各ユニット対応のタイトル鍵が生成され、コンテンツの復号が実行される。
(4)使用許諾情報
使用許諾情報には、例えばコピー・再生制御情報(CCI)が含まれる。すなわち、情報記録媒体100に格納された暗号化コンテンツ101に対応する利用制御のためのコピー制限情報や、再生制限情報である。このコピー・再生制御情報(CCI)は、コンテンツ管理ユニットとして設定されるCPSユニット個別の情報として設定される場合や、複数のCPSユニットに対応して設定される場合など、様々な設定が可能である。
(5)変換テーブル
前述したように、情報記録媒体100に格納された暗号化コンテンツ101は、所定の暗号化が施されているとともに、コンテンツ構成データの一部が、正しいデータと異なるブロークンデータによって構成されている。コンテンツ再生に際しては、このブロークンデータを正しいコンテンツデータである変換データに置き換えるデータ上書き処理が必要となる。この変換データを登録したテーブルが変換テーブル(Fix−up Table)105である。ブロークンデータはコンテンツ中に散在して多数設定され、コンテンツ再生に際しては、これらの複数のブロークンデータを変換テーブルに登録された変換データに置き換える(上書き)する処理が必要となる。この変換データを適用することにより、例えば、暗号鍵が漏洩しコンテンツの復号が不正に行なわれた場合であっても、コンテンツの復号のみでは、置き換えデータの存在によって正しいコンテンツの再生が不可能となり、不正なコンテンツ利用を防止することができる。
なお、変換テーブル105には、通常の変換データに加え、コンテンツ再生装置またはコンテンツ再生アプリケーションを識別可能とした識別情報の構成ビットを解析可能としたデータを含む変換データが含まれる。具体的には、例えば、プレーヤ(ホストアプリケーションを実行する装置)の識別データとしてのプレーヤIDあるいはプレーヤIDに基づいて生成された識別情報が記録された「識別マークを含む変換データ」が含まれる。識別マークを含む変換データは、コンテンツの再生に影響を与えないレベルで、正しいコンテンツデータのビット値をわずかに変更したデータである。これらの変換データを利用した処理についての詳細は、後段で説明する。
なお、図1には、変換テーブル105を独立したデータファイルとして設定した例を示しているが、変換テーブルを独立ファイルとせずに、暗号化コンテンツ101の構成パケット中に散在させて含ませる構成としてもよい。これらの構成および処理については後段で説明する。
(6)データ変換処理プログラム
データ変換処理プログラム106は、変換テーブル(Fix−up Table)105の登録データによるデータ変換処理を実行するための処理命令を含むプログラムであり、コンテンツ再生を実行するホストによって利用される。図1におけるホスト100のデータ変換処理部154において実行される。なお、上述した変換テーブル105は、データ変換処理プログラム106に含まれるデータとして設定してもよい。
ホストでは、データ変換処理を実行するバーチャルマシン(VM)を設定し、バーチャルマシン(VM)において、情報記録媒体100から読み出したデータ変換処理プログラム106を実行して、変換テーブル(Fix−up Table)105の登録エントリを適用して、復号コンテンツに対して、その一部構成データのデータ変換処理を実行する。これらの処理の詳細については後述する。
次に、ホスト140とドライブ120の構成、処理の概要について、図1を参照して説明する。情報記録媒体100に格納されたコンテンツの再生処理は、ドライブ120を介してホスト140にデータが転送されて実行される。
ホスト140には、再生(プレーヤ)アプリケーション150と、セキュアVM160が設定される。再生(プレーヤ)アプリケーション150は、コンテンツ再生処理部であり、コンテンツ再生処理において実行するドライブとの認証処理、コンテンツ復号、デコード処理などの処理を実行する。セキュアVM160は、例えば、コンテンツ再生処理部である再生(プレーヤ)アプリケーション150の実行するコンテンツ再生処理において実行するデータ変換処理において適用するパラメータを提供するパラメータ生成部として機能する。セキュアVM160は、ホスト140内にバーチャルマシンとして設定される。バーチャルマシン(VM)は中間言語を直接解釈して実行する仮想コンピュータであり、プラットホームに依存しない中間言語での命令コード情報を情報記録媒体100から読み出して解釈実行する。
再生(プレーヤ)アプリケーション150と、セキュアVM160間の情報伝達、あるいは処理要求は、再生(プレーヤ)アプリケーション150からセキュアVM160に対する割り込み(INTRP)と、セキュアVM160から再生(プレーヤ)アプリケーション150に対する応答(Call)処理のシーケンスによって実行される。アプリケーション150からセキュアVM160に対する割り込み(INTRP)と、セキュアVM160から再生(プレーヤ)アプリケーション150に対する応答(Call)処理のシーケンスによって、コンテンツ再生処理において実行するデータ変換処理において適用するパラメータの算出要求、およびパラメータ提供が行われる。これらの処理シーケンスの詳細については後段で説明する。
ホスト140の実行する主な処理について説明する。コンテンツの利用に先立ち、ドライブ120と、ホスト140間では相互認証処理が実行され、この認証処理の成立によって双方の正当性が確認された後、ドライブからホストに暗号化コンテンツが転送され、ホスト側でコンテンツの復号処理が行なわれ、さらに上述の変換テーブルによるデータ変換処理が実行されてコンテンツ再生が行なわれる。
ホスト140と、ドライブ120間において実行する相互認証においては、各機器またはアプリケーションが不正な機器またはアプリケーションとして登録されていないかを示す管理センタの発行したリボケーション(無効化)リストを参照して、正当性を判定する処理を実行する。
ドライブ120は、ホストの証明書(公開鍵証明書)のリボーク(無効化)情報を格納したホストCRL(Certificate Revocation List)を格納するためのメモリ122を有する。一方、ホスト140は、ドライブの証明書(公開鍵証明書)のリボーク(無効化)情報を格納したドライブCRL(Certificate Revocation List)を格納するためのメモリ152を有する。メモリは不揮発性メモリ(NVRAM)であり、例えば、情報記録媒体100から読み出されるCRLがより新しいバージョンである場合には、それぞれのデータ処理部121,151は、メモリ122.152に新しいバージョンのホストCRLまたはドライブCRLを格納する更新処理を行なう。
ホストCRL、ドライブCRL等のCRLは管理センタが逐次更新する。すなわち新たな不正機器が発覚した場合、その不正機器に対して発行された証明書のIDまたは機器IDなどを新規エントリとし追加した更新CRLを発行する。各CRLにはバージョン番号が付与されており、新旧比較が可能な構成となっている。例えばドライブが装着した情報記録媒体から読み出されたCRLが、ドライブ内のメモリ122に格納されたCRLより新しい場合、ドライブは、CRLの更新処理を実行する。ホスト140も同様に、ドライブCRLの更新を実行する。
ドライブ120のデータ処理部121は、このCRLの更新処理の他、コンテンツ利用に際して実行されるホストとの認証処理、さらに、情報記録媒体からのデータ読み出し、ホストヘのデータ転送処理などを実行する。
ホスト140の再生(プレーや)アプリケーション150は、例えばPC等の情報処理装置で実行されるデータ再生(または記録)アプリケーションであり、所定のデータ処理シーケンスに従ってPC等の情報処理装置のハードウェアを利用した処理を行なう。
ホスト140は、ドライブ120との相互認証処理や、データ転送制御などを実行するデータ処理部151、暗号化コンテンツの復号処理を実行する復号処理部153、前述の変換テーブル105の登録データに基づくデータ変換処理を実行するデータ変換処理部154、デコード(例えばMPEGデコード)処理を実行するデコード処理部155を有する。
データ処理部151は、ホスト−ドライブ間の認証処理を実行し、認証処理においては、不揮発性メモリ(NVRAM)としてのメモリa152に格納されたドライブCRLを参照して、ドライブがリボークされたドライブでないことを確認する。ホストも、また、メモリa152に新しいバージョンのドライブCRLを格納する更新処理を行なう。
復号処理部153では、メモリb156に格納された各種情報、および、情報記録媒体100からの読み取りデータを適用して、コンテンツの復号に適用する鍵を生成し、暗号化コンテンツ101の復号処理を実行する。データ変換処理部154は、情報記録媒体100から取得されるデータ変換処理プログラムに従って、情報記録媒体100から取得される変換テーブルに登録された変換データを適用してコンテンツの構成データの置き換え処理(上書き)を実行する。デコード処理部155は、デコード(例えばMPEGデコード)処理を実行する。
情報処理装置150のメモリb156には、デバイス鍵:Kdや、相互認証処理に適用する鍵情報や復号に適用する鍵情報などが格納される。なお、コンテンツの復号処理の詳細については後述する。デバイス鍵:Kdは、先に説明したMKBの処理に適用する鍵である。MKBは有効なライセンスを持つユーザの情報処理装置に格納されたデバイス鍵[Kd]に基づく処理(復号)によってのみ、コンテンツの復号に必要なキーであるメディア鍵[Km]の取得を可能とした鍵情報ブロックであり、暗号化コンテンツの復号に際して、情報処理装置150は、メモリb156に格納されたデバイス鍵:Kdを適用してMKBの処理を実行することになる。なお、コンテンツの復号処理の詳細については後述する。
[2.コンテンツ管理ユニット(CPSユニット)について]
前述したように、情報記録媒体に格納されるコンテンツは、ユニット毎の異なる利用制御を実現するため、ユニット毎に異なる鍵が割り当てられ暗号化処理がなされて格納される。すなわち、コンテンツはコンテンツ管理ユニット(CPSユニット)に区分されて、個別の暗号化処理がなされ、個別の利用管理がなされる。
コンテンツ利用に際しては、まず、各ユニットに割り当てられたCPSユニット鍵(タイトル鍵とも呼ばれる)を取得することが必要であり、さらに、その他の必要な鍵、鍵生成情報等を適用して予め定められた復号処理シーケンスに基づくデータ処理を実行して再生を行う。コンテンツ管理ユニット(CPSユニット)の設定態様について、図2を参照して説明する。
図2に示すように、コンテンツは、(A)インデックス210、(B)ムービーオブジェクト220、(C)プレイリスト230、(D)クリップ240の階層構成を有する。再生アプリケーションによってアクセスされるタイトルなどのインデックスを指定すると、例えばタイトルに関連付けられた再生プログラムが指定され、指定された再生プログラムのプログラム情報に従ってコンテンツの再生順等を規定したプレイリストが選択される。
プレイリストには、再生対象データ情報としてのプレイアイテムが含まれる。プレイリストに含まれるプレイアイテムによって規定される再生区間としてのクリップ情報によって、コンテンツ実データとしてのAVストリームあるいはコマンドが選択的に読み出されて、AVストリームの再生、コマンドの実行処理が行われる。なお、プレイリスト、プレイアイテムは多数、存在し、それぞれに識別情報としてのプレイリストID、プレイアイテムIDが対応付けられている。
図2には、2つのCPSユニットを示している。これらは、情報記録媒体に格納されたコンテンツの一部を構成している。CPSユニット1,271、CPSユニット2,272の各々は、インデックスとしてのタイトルと、再生プログラムファイルとしてのムービーオブジェクトと、プレイリストと、コンテンツ実データとしてのAVストリームファイルを含むクリップを含むユニットとして設定されたCPSユニットである。
コンテンツ管理ユニット(CPSユニット)1,271には、タイトル1,211とタイトル2,212、再生プログラム221,222、プレイリスト231,232、クリップ241、クリップ242が含まれ、これらの2つのクリップ241,242に含まれるコンテンツの実データであるAVストリームデータファイル261,262が、少なくとも暗号化対象データであり、原則的にコンテンツ管理ユニット(CPSユニット)1,271に対応付けて設定される暗号鍵であるタイトル鍵(Kt1)(CPSユニット鍵とも呼ばれる)を適用して暗号化されたデータとして設定される。
コンテンツ管理ユニット(CPSユニット)2,272には、インデックスとしてアプリケーション1,213、再生プログラム224、プレイリスト233、クリップ243が含まれ、クリップ243に含まれるコンテンツの実データであるAVストリームデータファイル263がコンテンツ管理ユニット(CPSユニット)2,272に対応付けて設定される暗号鍵である暗号鍵であるタイトル鍵(Kt2)適用して暗号化される。
例えば、ユーザがコンテンツ管理ユニット1,271に対応するアプリケーションファイルまたはコンテンツ再生処理を実行するためには、コンテンツ管理ユニット(CPSユニット)1,271に対応付けて設定された暗号鍵としてのタイトル鍵:Kt1を取得して復号処理を実行することが必要となる。コンテンツ管理ユニット2,272に対応するアプリケーションファイルまたはコンテンツ再生処理を実行するためには、コンテンツ管理ユニット(CPSユニット)2,272に対応付けて設定された暗号鍵としてのタイトル鍵:Kt2を取得して復号処理を実行することが必要となる。
CPSユニットの設定構成、およびタイトル鍵の対応例を図3に示す。図3には、情報記録媒体に格納される暗号化コンテンツの利用管理単位としてのCPSユニット設定単位と、各CPSユニットに適用するタイトル鍵(CPSユニット鍵)の対応を示している。なお、予め後発データ用のCPSユニットおよびタイトル鍵を格納して設定しておくことも可能である。例えばデータ部281が後発データ用のエントリである。
CPSユニット設定単位は、コンテンツのタイトル、アプリケーション、データグループなど、様々であり、CPSユニット管理テーブルには、それぞれのCPSユニットに対応する識別子としてのCPSユニットIDが設定される。
図3において、例えばタイトル1はCPSユニット1であり、CPSユニット1に属する暗号化コンテンツの復号に際しては、タイトル鍵Kt1を生成し、生成したタイトル鍵Kt1に基づく復号処理を行なうことが必用となる。
このように、情報記録媒体100に格納されるコンテンツは、ユニット毎の異なる利用制御を実現するため、ユニット毎に異なる鍵が割り当てられ暗号化処理がなされて格納される。各コンテンツ管理ユニット(CPSユニット)に対する個別の利用管理のために、各コンテンツ管理ユニット(CPSユニット)に対する使用許諾情報(UR:Usage Rule)が設定されている。使用許諾情報は、前述したように、コンテンツに対する例えばコピー・再生制御情報(CCI)を含む情報であり、各コンテンツ管理ユニット(CPSユニット)に含まれる暗号化コンテンツのコピー制限情報や、再生制限情報である。
なお、タイトル鍵の生成には、情報記録媒体に格納された様々な情報を適用したデータ処理が必要となる。これらの処理の具体例についは、後段で詳細に説明する。
[3.変形データを含むコンテンツのデータ構成およびデータ変換処理の概要]
次に、変形データを含むコンテンツの構成およびデータ変換処理の概要について説明する。情報記録媒体100に含まれる暗号化コンテンツ101は、前述したように、構成データの一部が、正しいコンテンツデータと異なるデータによって置き換えられたブロークンデータとして設定され、復号処理のみでは正しいコンテンツ再生が実行されず、再生を行なう場合は、ブロークンデータを変換テーブルに登録された変換データに置き換える処理が必要となる。
図4を参照して、情報記録媒体に格納されるコンテンツの構成および再生処理の概要について説明する。情報記録媒体100には例えば映画などのAV(Audio Visual)コンテンツが格納される。これらのコンテンツは暗号化が施され、所定のライランスを持つ再生装置においてのみ取得可能な暗号鍵を適用した処理によって復号の後、コンテンツ再生が可能となる。具体的なコンテンツ再生処理については後段で説明する。情報記録媒体100に格納されるコンテンツは、暗号化のみならず、コンテンツの構成データが変形データによって置き換えられた構成を持つ。
図4には、情報記録媒体100に格納される記録コンテンツ291の構成例を示している。記録コンテンツ291は変形のされていない正常なコンテンツデータ292と、変形が加えられ破壊されたコンテンツであるブロークンデータ293によって構成される。ブロークンデータ293は、本来のコンテンツに対してデータ処理によって破壊が施されたデータである。従って、このブロークンデータを含むコンテンツ291を適用して正常なコンテンツ再生は実行できない。
コンテンツ再生を行なうためには、記録コンテンツ291に含まれるブロークンデータ293を正常なコンテンツデータに置き換える処理を行なって再生コンテンツ296を生成することが必要となる。各ブロークンデータ領域に対応する正常なコンテンツデータとしての変換用のデータ(変換データ)は、情報記録媒体100に記録された変換テーブル(FUT(Fix-Up Table))105(図1参照)に登録された変換データ295を取得して、ブロークンデータ領域のデータを置き換える処理を実行して、再生コンテンツ296を生成して再生を実行する。変換テーブルの具体例、変換テーブルを利用した再生処理の詳細については後述する。
なお、再生コンテンツ296の生成に際しては、ブロークンデータ293を正常なコンテンツデータとしての変換データ297に置き換える処理に加え、記録コンテンツ291の一部領域を、コンテンツ再生装置またはコンテンツ再生アプリケーションを識別可能とした識別情報(例えばプレーヤID)の構成ビットを解析可能としたデータを含む識別子設定変換データ298によって置き換える処理を行なう。例えば、不正にコピーされたコンテンツが流出した場合、流出コンテンツ中の識別子設定変換データ298の解析によって、不正コンテンツの流出源を特定することが可能となる。
なお、変換データを格納した変換テーブルは、コンテンツと別ファイルとして設定して情報記録媒体に記録される。さらに、変換データを含む変換テーブルの一部データは、コンテンツの構成データ中の特定パケットに分散して記録される。すなわち、変換データは、図1に示す変換テーブル106に格納されるとともに、暗号化コンテンツ101にも分散記録され、重複して記録される。コンテンツ再生を実行する情報処理装置は、変換テーブル106に格納された変換データを取得してデータ置き換えを実行するか、あるいはコンテンツに分散は記録された変換ントリを取得してデータ置き換えを実行するかのいずれかの処理を行なう。
コンテンツの構成データ中の特定パケットに分散して変換データを含む変換テーブルの構成データである変換テーブルブロックを記録する構成とする場合は、例えば図5に示すような設定で変換テーブルブロックの構成データをコンテンツを含むトランスポートストリームパケット内に格納する。図5(a)にコンテンツデータの構成を示す。このコンテンツ構成は、復号されたトランスポートストリーム(TS)パケットからなるコンテンツデータを示している。トランスポートストリームは、所定バイト数のTS(トランスポートストリーム)パケットから構成されている。これらのTSパケットの一部の複数パケットに、変換データを含む変換テーブルブロックの構成データが分割記録される。例えば、図に示すTSパケット307に記録される。変換テーブルブロックを格納するTSパケットとしては、例えばコンテンツ中に分散して設定されるPMT(プログラムマップテーブル)を含むTSパケットなどが利用される。
変換テーブルブロックには、復号コンテンツに対して置き換え処理を行なう変換データ(または識別子設定変換データ)とその変換データの記録位置が記録されている。記録位置情報としては、例えば、図5(b)に示すように複数の記録位置がある場合、1つ目の変形パケットの位置は、変換テーブルブロックの構成データとしての変換エントリを含むTSパケット307からのオフセット、2つ目のパケットの変形パケットの位置は、最初の変形パケット308から後の変形パケット309への相対パケット位置を示すオフセット位置を記録する。
各変換テーブルブロックに記録された変換データは、例えば図5(b)に示すように、各変換テーブルブロックの構成データとしての変換エントリを含むTSパケットの近傍位置に記録位置が設定される。
例えば、図5(b)に示す例では、変換データの記録領域を持つパケット308,309は、変換テーブルブロックの構成データとしての変換エントリを含むパケット307の近傍に設定される。このような設定とすることで、コンテンツの復号、再生をリアルタイムで実行する場合、変換データによるデータ置き換え処理を復号処理後の連続処理として実行することが可能であり、変換テーブルの記録されたTSパケットの検出、解析処理によって、変換データを取得し、テーブルに記録された位置に対して変換データを書き込む(上書き)処理を効率的に実行することができる。
図6を参照して、情報記録媒体100に格納されるデータ変換処理プログラム300、変換テーブル(FUT:Fix−Up Table)301、暗号化コンテンツ306の構成例について説明する。情報記録媒体100に記録される変換テーブル301は、図6に示すように、シークレットパラメータID特定テーブル302と、変換テーブルボディ303aを含む構成を持つ。
変換テーブルボディ303aは、クリップ毎の変換テーブル集合303bとして設定され、各クリップ単位の変換テーブルは、複数の変換テーブルブロック1〜K304によって構成され、さらに、各変換テーブルブロックは、複数の変換エントリ305を含む構成を持つ。これらの変換エントリの各々には、置き換えデータとして適用される変換データと変換データの記録位置情報が含まれる。
図7は、変換テーブブロックに含まれる1つの変換エントリ(FixUpEntry)のデータ構成例を示している。図7に示すように、変換エントリ(FixUpEntry)には以下のデータが含まれる。
type_indicator:タイプ識別子[00:変換なし,01b:変換データによる処理,10b,11b:識別子設定変換データによる処理]
FM_ID_bit_position:識別子設定変換データに対応するプレーヤIDの識別ビット位置
relative_SPN:変換データ適用パケット位置(プログラマブルマップテーブル(PMT)格納パケットからのパケット数)
byte_position:パケット内の変換データ記録位置
overwrite_value:変換データ(識別子設定変換データも含む)
relative_SPN_2:第2変換データ適用パケット位置(PMTパケットからのパケット数)
byte_position_2:パケット内の変換データ記録位置(第2変換データ対応)
overwrite_value_2:第2変換データ(識別子設定変換データも含む)
これらのデータによって構成される。
変換テーブルは、コンテンツデータの一部の置き換え対象となる変換データと、該変換データのコンテンツに対する設定位置情報を記録した変換テーブルとして設定され、この変換テーブルを適用して、コンテンツ構成データの置き換え処理実行命令を含むデータ変換処理プログラムを実行して、データ変換が行われる。
図7に示す変換テーブブロックに含まれる変換エントリ(FixUpEntry)情報に含まれる情報[type_indicator]は、変換テーブルの登録情報が、
(a)ブロークンデータを正当なコンテンツデータに変換するための変換データに関する登録情報であるか、または、
(b)再生装置又はコンテンツ再生アプリケーションの識別情報を埋めこむための識別子設定変換データに関する登録情報であるか、
上記(a)、(b)のいずれの登録情報であるかを識別するタイプ識別子である。
変換テーブルの登録情報領域が、再生装置又はコンテンツ再生アプリケーションの識別情報を埋めこむための識別子設定変換データに関する登録情報領域である場合には、テーブル登録情報として、コンテンツ再生装置またはコンテンツ再生アプリケーションの識別情報に基づいて選択的に適用する変換データ、すなわち、識別子設定変換データが登録される。
登録情報[FM_ID_bit_position]は、複数ビットからなる再生装置又は再生アプリケーションの識別情報中、処理態様決定のために参照すべきビットの位置情報である。例えば、複数ビットからなる再生装置又は再生アプリケーションの識別情報中、処理態様決定のために参照すべきビットのビット値が1である場合、変換テーブルに登録された識別子設定変換データによってコンテンツ構成データの置き換えを実行し、参照すべきビットのビット値が0である場合には置き換えを実行しないといった処理態様が決定されてデータ変換が実行される。
なお、参照ビットが0の場合に変換を実行し、1の場合に変換を実行しないとする設定も可能である。また参照ビットが0の場合の変換データと、1の場合の変換データをそれぞれ別の変換データとして設定し、参照ビットのビット値に応じて、適宜、変換データを選択して設定する構成としてもよい。
図6に示すように、暗号化コンテンツ306は、TSパケットのストリームとして設定され、その一部に変換エントリが散在して格納されたパケット、すなわち変換エントリ格納パケット307a〜307dが設定される。AVストリームは、クリップ単位で区分され、クリップ単位の変換エントリが、コンテンツ中に分散記録される。
これらの分散記録データとして設定される各変換エントリには、図5を参照して説明したように、近傍の変換データが記録されている。暗号化コンテンツ306に分散記録された変換エントリと、変換テーブル301に含まれる変換エントリは同じものであり、コンテンツ再生を実行する情報処理装置は、再生(プレーヤ)アプリケーションの仕様に応じて、コンテンツに分散記録された変換エントリから変換データを取得してデータ置き換えを実行するか、あるいは、変換テーブル301中の変換エントリから変換データを取得してデータ置き換えを実行するかいずれか一方の処理を実行する。
コンテンツは、図6に示すように、所定データ単位ごとのセグメントとして区分されている。各変換データを含む変換エントリは、コンテンツの所定データ単位(セグメント単位)ごとに異なるパラメータ(SP:シークレットパラメータ)を適用した演算または暗号化処理が実行されている。
コンテンツ再生の際に実行するデータの置き換え処理としてのデータ変換処理を実行する情報処理装置は、各セグメントに対応するシークレットパラメータ(SP1,SP2,SP3・・・)順次、取得して、各セグメント位置に対応する変換データを含む変換テーブルブロックに対して、取得パラメータ(SPn)を適用した演算または暗号処理を実行して、変換データを取得する処理を行なう。
図6に示すシークレットパラメータ(SP)ID特定テーブル302は、どのコンテンツデータ位置にどのシークレットパラメータを適用すべきかのガイド情報を記録したテーブルである。このテーブルの詳細、および使用例については、後段で説明する。
図8、図9を参照して、変換データに基づくデータ置き換えの具体例について説明する。まず、図8を参照して、コンテンツに分散記録された変換データを含む変換テーブルブロック構成データを取得して、データ置き換えを実行する処理例について説明する。
図8(a)は、情報記録媒体100に記録されたコンテンツ構成を示している。変換エントリを含む変換テーブルブロックの構成データが図に示すTSパケット307a〜dに分散記録されている。
データ置き換え処理シーケンスについて、図8(b)を参照して説明する。図8(b)に示す処理は、ホストの再生(プレーヤ)アプリケーションの実行する処理である。図8(b)には、コンテンツ構成データ中の、セグメントID=N,N+1に属するコンテンツのTSパケット列の一部を示している。
例えば、セグメントID=Nに記録された変換エントリを含むパケット311には、シークレットパラメータ(SPx)と排他論理和演算された結果データとしてのXORed変換エントリ315が格納されている。データ置き換え処理を実行するホストの再生(プレーヤ)アプリケーションは、XORed変換エントリ315に対して、シークレットパラメータ(SPx)316との排他論理和演算を実行して変換エントリ317を取得して、変換エントリ317から変換データと記録位置情報を取得し、データ置き換え対象位置のパケット312a,bとの置き換え処理を実行する。
変換エントリ317を取得するための演算に適用するパラメータ(SPx)は、セキュアVM320から供給を受ける。例えば、再生(プレーヤ)アプリケーションは、コンテンツの各セグメントにおいて必要なシークレットパラメータ(SPn)を取得するため、各セグメントに対応するシークレットパラメータ指定情報としてのシークレットパラメータID(SP_ID)を取得して、シークレットパラメータIDの通知を含むシークレットパラメータ算出要求を、セキュアVMに対する割り込み(INTRP)要求として出力する。セキュアVMは、再生(プレーヤ)アプリケーションからのシークレットパラメータ算出要求に応じて、SP_ID対応のシークレットパラメータ(SPx)を算出し、応答(Call)として再生(プレーヤ)アプリケーションに提供する。
図8に示すように、セグメントが異なると、変換エントリを取得するための演算に適用するパラメータ(SPx)は異なるパラメータとなる。例えば、1つのセグメントはコンテンツ再生時間として約10秒程度に設定され、再生(プレーヤ)アプリケーションは、約10秒の各セグメント毎に異なるパラメータをセキュアVMから受領して、変換エントリを復元して、復元した変換エントリから変換データを取得し、データ置き換え処理を実行する。
図9に、コンテンツ中に分散記録された変換テーブルブロックではなく、独立した変換テーブルブロックファイルとしての1クリップ分の変換テーブル303bから、XORed変換エントリを取得して、演算または暗号処理を実行して、変換エントリを復元して、復元した変換エントリから変換データを抽出してデータ置き換えを行なう場合の処理例を示す。
図9(a)は、情報記録媒体100に記録されたコンテンツ構成を示している。変換データを含む変換エントリが図に示すTSパケット307a〜dに分散記録されているが、本例では、これらのデータは使用せず、情報記録媒体に独立に記録された変換テーブルの構成データとしての1クリップ分の変換テーブル303bを使用し、この1クリップ分の変換テーブル303bに格納された変換エントリを適用してデータ置き換えを実行する。
データ置き換え処理シーケンスについて、図9(b)を参照して説明する。図9(b)に示す処理は、ホストの再生(プレーヤ)アプリケーションの実行する処理である。図9(b)には、コンテンツ構成データ中の、セグメントID=N,N+1に属するコンテンツのTSパケット列の一部を示している。
例えば、セグメントID=Nについてのデータ置き換えを実行する場合、1クリップ分の変換テーブル303bに含まれるセグメントID=Nに対応する変換エントリを取得する。しかし、この変換エントリx315は、コンテンツ中に分散記録された変換テーブルブロックと同様、シークレットパラメータ(SPx)と排他論理和演算された結果データとしてのXORed変換エントリ315である。データ置き換え処理を実行するホストの再生(プレーヤ)アプリケーションは、XORed変換エントリ315に対して、シークレットパラメータ(SPx)316との排他論理和演算を実行して変換エントリ317を取得して、変換エントリ317から変換データと記録位置情報を取得し、データ置き換え対象位置のパケット312a,bとの置き換え処理を実行する。
変換エントリ317を取得するための演算に適用するパラメータ(SPx)は、先に説明した処理例と、同様セキュアVM320から供給を受ける。例えば、再生(プレーヤ)アプリケーションは、コンテンツの各セグメントにおいて必要なシークレットパラメータ(SPn)を取得するため、各セグメントに対応するシークレットパラメータ指定情報としてのシークレットパラメータID(SP_ID)を取得して、シークレットパラメータIDの通知を含むシークレットパラメータ算出要求を、セキュアVMに対する割り込み(INTRP)要求として出力する。セキュアVMは、再生(プレーヤ)アプリケーションからのシークレットパラメータ算出要求に応じて、SP_ID対応のシークレットパラメータ(SPx)を算出し、応答(Call)として再生(プレーヤ)アプリケーションに提供する。
図9に示すように、セグメントが異なると、変換エントリを取得するための演算に適用するパラメータ(SPx)は異なるパラメータとなる。例えば、1つのセグメントはコンテンツ再生時間として約10秒程度に設定され、再生(プレーヤ)アプリケーションは、約10秒の各セグメント毎に異なるパラメータをセキュアVMから受領して、変換エントリを復元して、復元した変換エントリから変換データを取得し、データ置き換え処理を実行する。
このように、コンテンツ再生を実行する再生(プレーヤ)アプリケーションは、各セグメント単位で、セキュアVMからシークレットパラメータを受領して、演算を実行して、変換テーブルブロックの構成データとしてり変換エントリの復元を実行し、復元した変換エントリを取得してデータ置き換えを行なう。なお、上述の処理例では、シークレットパラメータを適用した演算として排他論理和(XOR)を例示したが、その他の演算処理を適用する設定としてもよい。またシークレットパラメータを適用した暗号処理等を実行する構成としてもよい。
[4,再生(プレーヤ)アプリケーションとセキュアVM間の処理]
上述した処理を実行する場合、再生(プレーヤ)アプリケーションは、コンテンツの再生を実行中、一定のセグメント単位で、異なるシークレットパラメータ(SP1,SP2,SP3・・・)を順次取得するため、セキュアVMに対して、セグメントの切り替わりの再生前に、シークレットパラメータを取得してデータ置き換えを行なうことになる。この場合に、再生(プレーヤ)アプリケーションは、セキュアVMに対してシークレットパラメータ指定情報としてのシークレットパラメータID(SP_I)を通知して、必要なSPを特定する。このシークレットパラメータID(SP_I)は、先に、図6を参照して説明したシークレットパラメータ(SP)ID特定テーブル302に記録されている。
再生(プレーヤ)アプリケーションは、このシークレットパラメータ(SP)ID特定テーブル302を参照可能な状態に設定する処理が必要となる。再生アプリケーションと、セキュアVM間において実行される一連の処理シーケンスについて、図10を参照して説明する。
先に、図1を参照して説明したように、再生(プレーヤ)アプリケーション150と、セキュアVM160間の情報伝達、あるいは処理要求は、再生(プレーヤ)アプリケーション150からセキュアVM160に対する割り込み(INTRP)と、セキュアVM160から再生(プレーヤ)アプリケーション150に対する応答(Call)処理のシーケンスによって実行される。
図10に示す処理シーケンスは、コンテンツを記録した情報記録媒体の挿入から、取り出しに至るまでに再生(プレーヤ)アプリケーション150と、セキュアVM160間において実行される処理の種類を示した図である。
例えば、ステップS11は、情報記録媒体(Disc)挿入時の処理として実行されるメディア初期化(Media Initialize)処理であり、再生(プレーヤ)アプリケーション150は、最初の再生処理に必要となるコード情報を格納したコンテンツコードファイル(Content Code File)をメモリにロードして、実行を開始する。コンテンツコードファイル(Content Code File)は、再生(プレーヤ)アプリケーションのメーカー、モデル名などを特定する。
例えば、セキュアVM160は、取得したモデル名が、過去にセキュリティ問題が発生したことがあるモデルであるか否かを判定し、過去にセキュリティ問題が発生したことがあるモデルである場合、同様のセキュリティ問題が発生していないかをコンテンツコード(ContentCode)の実行により調査する。例えば情報処理装置のRAM上の特定の値や、特定のデバイスの動作を調べて、正しい状態であるかを検査する。なお、モデルごとの調査プログラムは、最初にロードしたコンテンツコードファイルには入っていないことがあり、その場合は別の必要なコンテンツコードファイルへのアクセスを行う。セキュアVM160による初期化処理が終了すると、応答(Call)が再生アプリケーション150に通知され、次のステップS12に進む。
ステップS12では、タイトル初期化処理(Title Initialize)を実行する。タイトルは再生対象コンテンツの指定情報として適用され、ユーザの指定などに基づいて、特定の再生対象コンテンツに対応するタイトルが選択され、タイトル情報とともに、タイトル初期化処理要求が再生(プレーヤ)アプリケーション150からセキュアVM160に出力される。
セキュアVM160は、タイトル再生に必要な全クリップ対応の変換データ情報を集めた変換テーブルをセキュアVM160のメモリ上に生成し、再生(プレーヤ)アプリケーション150がテーブルを取得できるようにテーブルがストアされたメモリの位置を再生(プレーヤ)アプリケーション150に知らせる。なお、タイトル初期化中もステップS11のメディア初期化と同様のセキュリティチェックを行うことが可能である。
タイトル初期化処理において実行される、タイトル再生に必要な全クリップ対応の変換データ情報を集めた変換テーブルをセキュアVM160のメモリ上に生成する処理例について、図11を参照して説明する。図11には、セキュアVM160の利用可能なメモリ領域(例えば2MB)を示している。ここには、セキュアVM160が、情報記録媒体から取得したデータ変換処理プログラムに含まれるコード情報としてのコンテンツコードが格納される。なお、このコンテンツコードには暗号化等の難読化処理のなされた変換テーブルが含まれる。
再生(プレーヤ)アプリケーション150からのタイトル初期化要求が入力されると、セキュアVM160は、コンテンツコードから、タイトル再生に必要な全クリップ対応の変換データ情報を集めた変換テーブルを、必要に応じて復号処理を行い、前述したXORed等の処理のなされた状態(マスク状態)でメモリに格納し、このメモリ格納位置を再生(プレーヤ)アプリケーション150に通知する。この通知処理は、再生(プレーヤ)アプリケーション150からのタイトル初期化要求(INTRP)に対する応答(Call)として実行される。
再生(プレーヤ)アプリケーション150は、セキュアVM160から、タイトル初期化要求(INTRP)に対する応答(Call)を受領すると、セキュアVM160利用メモリ領域の変換テーブル格納領域から、必要なデータ部分を、再生(プレーヤ)アプリケーション150の利用可能なメモリ領域にコピーして格納する。例えば、先に、図6〜図9を参照して説明したコンテンツのセグメント対応のシークレットパラメータID(SP_ID)を取得するためのシークレットパラメータID(SP_ID)特定テーブルを抽出して再生(プレーヤ)アプリケーション150の利用可能なメモリ領域にコピーして格納する。
先に、図8を参照して説明したコンテンツ中に分散記録された変換テーブルブロックから変換データを取得する処理を実行する再生(プレーヤ)アプリケーションである場合は、シークレットパラメータID(SP_ID)特定テーブルを取得するのみでよいが、図9を参照して説明したプレーヤ、すなわち、コンテンツ中に分散記録された変換テーブルブロックを利用しないプレーヤである場合は、このコピー処理において、シークレットパラメータID(SP_ID)特定テーブル、および、変換ントリを格納した変換テーブルブロックについても自己の利用可能なメモリ領域にコピーして格納する処理を実行する。図9を参照して説明したXORed変換テーブルブロックは、この処理によって再生(プレーヤ)アプリケーション150の利用可能なメモリ領域にコピーされた変換テーブルブロックである。
図10に戻り、再生(プレーヤ)アプリケーション150とセキュアVM160間の処理シーケンスについて説明を続ける。ステップS13は、シークレットパラメータ(SP)計算に(Compute_SP)に対応する処理であり、再生(プレーヤ)アプリケーション150は、SP計算要求(INTRP)をセキュアVM160に出力し、セキュアVM160は計算結果(SP)を応答(Call)として再生(プレーヤ)アプリケーション150に返す。再生(プレーヤ)アプリケーション150は、SP計算要求(INTRP)をセキュアVM160に出力する場合、SP指定情報としてのSP_IDを、例えばシークレットパラメータID(SP_ID)特定テーブルから取得して通知する。
なお、再生(プレーヤ)アプリケーション150は、SP指定情報としてのSP_IDを取得してセキュアVM160に通知する場合、コンテンツのセグメントに対応する正確なSP_IDを選択することが必要である。このSP_IDの選択処理の具体例については、後述する。なお、ステップS13の処理は、各セグメントごとに繰り返して実行される。
ステップS14の処理は、シークレットパラメータの計算とは異なる再生(プレーヤ)アプリケーション150からセキュアVM160に対する要求処理である。例えば、セキュリティチェックの実行などの要求処理であり、セキュアVM160は、これらの要求があった場合、その要求に応じた処理を実行して、処理結果を応答(Call)として再生(プレーヤ)アプリケーション150に通知する。なお、この際の情報伝達には、再生(プレーヤ)アプリケーション150と、セキュアVM160の双方が書き込み読み取り可能なレジスタ、例えばプレイヤ・ステータスレジスタ、レジスタ(PSR)が利用される。
ステップS15の処理は、情報記録媒体(Disc)取出の際のメディアファイナライズ(Media Finalize)処理であり、コンテンツコード(Content Code)の処理状況を、不揮発メモリに記録する。この処理によって、次回のディスク挿入時に過去のセキュリティチェックの情報を継続して使用することが可能となる。
上述したように、再生(プレーヤ)アプリケーション150と、セキュアVM160間の情報伝達、あるいは処理要求、応答は、再生(プレーヤ)アプリケーション150からセキュアVM160に対する割り込み(INTRP)と、セキュアVM160から再生(プレーヤ)アプリケーション150に対する応答(Call)処理によって実行される。
この場合、セキュアVM160は、再生(プレーヤ)アプリケーション150から入力する割り込み(INTRP)をすべて処理するのではなく、一定の条件に基づいて、ある処理を実行し、ある処理については拒否する。このセキュアVM160における割り込み処理要求(INTRP)の受理、拒否の態様について、図12を参照して説明する。
図に示すグラフ321は、セキュアVMにおけるモード遷移を示している。左から右に時間(t)が経過している。まず、バックグラウンドモードにおいて、再生(プレーヤ)アプリケーションからの割り込み要求としてシークレットパラメータ(SP)算出要求が入力される。この時点で、セキュアVMは処理を実行しておらず、シークレットパラメータ(SP)算出要求を受理(Accept)し、パラメータ算出モードに遷移して、パラメータ算出処理を実行する。
さらに、このパラメータ算出モード期間に、再生(プレーヤ)アプリケーションからの割り込み要求を受けた場合、1番目の要求については受理し、連続して受領した割り込み要求については拒否(Ignore)する。
パラメータ算出モード期間において受領した最初の割り込み要求に対応する処理は、パラメータ算出モード期間の終了後のアプリケーション要求モードにおいて実行される。さらに、この期間において受けたシークレットパラメータ(SP)算出要求は、受理(Accept)し、アプリケーション要求モードの終了後に、パラメータ算出モードに遷移して、パラメータ算出処理を実行する。このようにセキュアVMは、1種類の割り込み(INTRP)について、1つだけの未処理割り込みを保持する構成を持つ。2つ目移行の割り込み要求については拒否(Ignore)する。
[5.コンテンツ再生処理]
次に、図13を参照して、ホストの実行するコンテンツ再生処理について説明する。図13には、左から暗号化コンテンツの格納された情報記録媒体330、情報記録媒体330をセットし、データの読み取りを実行するドライブ340、ドライブとデータ通信可能に接続され、情報記録媒体330に格納されたコンテンツをドライブ340を介して取得して再生処理を実行する再生アプリケーションを実行するホスト345を示している。
なお、図13に示すホスト345は、コンテンツの復号、デコード、データ変換処理などを実行する再生(プレーヤ)アプリケーションブロック350と、シークレットパラメータ(SP)の算出処理などを実行するセキュアVM360を有するセキュアVM360ブロックを区分して示してある。
情報記録媒体330には、MKB(Media Key Block)331、タイトル鍵ファイル332、暗号化コンテンツ333、変換テーブル334、データ変換処理プログラム335が格納されている。ホスト345は、MKBの処理に適用するデバイス鍵351を保持している。
図13に示すホスト345がドライブ340を介して情報記録媒体330の格納コンテンツを取得して再生する処理シーケンスについて説明する。まず、情報記録媒体330の格納コンテンツの読み出しに先立ち、ホスト345とドライブ340は、ステップS101において、相互認証を実行する。この相互認証は、ホストおよびドライブがそれぞれ正当な機器またはアプリケーションソフトであるかを確認する処理である。この相互認証処理シーケンスとしては、様々な処理が適用可能である。相互認証処理によって、ドライブ340とホスト345は共通の秘密鍵としてのセッション鍵(Ks)を共有する。
ステップS101において、ホストドライブ間の相互認証が実行され、セッション鍵(Ks)を共有した後、ホスト345の再生(プレーヤ)アプリケーション350は、ステップS102において、情報記録媒体330に記録されたMKB331を、ドライブを介して取得して、メモリに格納されたデバイス鍵351を適用したMKB331の処理を実行して、MKBからメディア鍵(Km)を取得する。
前述したように、MKB(Media Key Block)331は、ブロードキャストエンクリプション方式の一態様として知られる木構造の鍵配信方式に基づいて生成される暗号鍵ブロックであり、有効なライセンスを持つ装置に格納されたデバイス鍵(Kd)に基づく処理(復号)によってのみ、コンテンツの復号に必要なキーであるメディア鍵(Km)の取得を可能とした鍵情報ブロックである。
次に、ステップS103において、ステップS102におけるMKB処理で取得したメディア鍵(Km)を適用して、情報記録媒体330から読み取ったタイトル鍵ファイル332の復号を実行して、タイトル鍵(Kt)を取得する。情報記録媒体330に格納されるタイトル鍵ファイル332はメディア鍵によって暗号化されたデータを含むファイルであり、メディア鍵を適用した処理によってコンテンツ復号に適用するタイトル鍵(Kt)を取得することができる。なお、ステップS103の復号処理は、例えばAES暗号アルゴリズムが適用される。
次に、ホスト345の再生(プレーヤ)アプリケーション350は、ドライブ340を介して情報記録媒体330に格納された暗号化コンテンツ333を読み出して、トラックバッファ352に読み出しコンテンツを格納し、このバッファ格納コンテンツについて、ステップS104において、タイトル鍵(Kt)を適用した復号処理を実行し、復号コンテンツを取得する。
復号コンテンツは、平文TSバッファ353に格納する。(Plain TS)は復号された平文トランスポートストリームを意味する。ここで、平文TSバッファ353に格納される復号コンテンツは、前述したブロークンデータを含むコンテンツであり、このままでは再生できず、所定のデータ変換(上書きによるデータ置き換え)を行なう必要がある。
図13に示す処理例では、暗号化コンテンツの構成データ中の特定パケットに分散されて記録された変換エントリを取得して、ここから変換データを抽出してデータ置き換えを行なう処理例である。すなわち、先に、図8を参照して説明したデータ変換処理に相当する。
コンテンツ中に分割記録された変換エントリは、復号コンテンツに対して置き換え処理を行なう変換データ(または識別子設定変換データ)とその変換データの記録位置を記録したデータである。
セキュアVM361は、命令コード情報を含むデータ変換処理プログラム335を情報記録媒体330から読み出して、コンテンツ再生あるいは出力処理前および処理実行中に間欠的に、イベントハンドラ354の制御、プレーヤ情報355の入力に基づいて、情報記録媒体330にコンテンツとともに記録された変換テーブルを平文変換テーブルにするために必要なシークレットパラメータ(SP1,SP2,SP3・・・)を生成して出力する。この処理は間欠的に行なわれる。
シークレットパラメータ(SP1,SP2,SP3・・・)は、前述したように所定のコンテンツデータ単位に対応するセグメントごとに切り替わる演算または暗号処理パラメータであり、具体的には、例えば、排他論理和(XOR)演算パラメータである。セキュアVM361は、再生(プレーヤ)アプリケーションからの要求に応じて、演算処理または暗号処理によって変形された変換テーブルブロックの構成データである変換エントリを復元するために必要なパラメータ(SP1,SP2,SP3・・・)を間欠的に生成して出力する処理を実行する。
再生(プレーヤ)アプリケーション350は、ステップS104において、変換エントリを含む暗号化コンテンツ333の復号が実行され、ステップS105におけるデマルチプレクサの処理によって、コンテンツ中に記録された変換テーブルの構成データである変換エントリが分離され、リアルタイムイベントハンドラ356の制御によって、ステップS106におけるテーブル復元&データ変換処理が実行される。リアルタイムイベントハンドラ356の制御により、再生(プレーヤ)アプリケーション350は、セグメントの切り替えに応じたシークレットパラメータ算出要求をセキュアVM361に割り込み(INTRP)として出力し、セキュアVM361からセキュアパラメータ(SP1,SP2,SP3・・・)を受領し、変換テーブルブロックの復号または演算を実行して平文変換テーブルブロックを取得し、取得した変換テーブルブロックに含まれる変換エントリを取得する。
変換エントリには、変換データ、すなわち、
(a)変換データ
(b)識別子設定変換データ
と、これらの変換データのコンテンツにおける記録位置指定情報が記録されており、再生(プレーヤ)アプリケーション350は、ステップS106において、指定位置に書き込むデータ変換処理をコンテンツ再生処理または外部出力処理に並行したリアルタイム処理として実行する。
例えば、パラメータ(SP1,SP2,SP3・・・)は所定のコンテンツ部分データ単位に対応する変換データとの排他論理和(XOR)演算パラメータである場合、ステップS303におけるテーブル復元処理としては、
[変換テーブルブロック1](XOR)[SP1]、
[変換テーブルブロック2](XOR)[SP2]、
[変換テーブルブロック3](XOR)[SP3]、
: :
これらの排他論理和演算処理を実行して、変換テーブルブロックデータに含まれる変換エントリを取得する。なお、上記式において、[A](XOR)[B]は、AとBの排他論理和演算を意味するものとする。
このように、情報記録媒体に記録されたコンテンツ333に含まれる変換テーブルブロックは、各コンテンツ部分に対応する変換データおよび変換データ位置情報を記録した変換エントリに分割されており、シークレットパラメータ(SP1,SP2,SP3・・・)と排他論理和演算されて格納されている。このパラメータは、セキュアVM361によって逐次、取得され出力される。
ステップS106のテーブル復元&データ変換処理においては、シークレットパラメータ(SP1,SP2,SP3・・・)を適用した演算または暗号処理よって取得した復元された変換エントリから変換データを取得して、コンテンツに含まれるブロークンデータを正当なコンテンツ構成データである変換データに置き換え、さらに、識別子設定変換データをコンテンツの一部データと入れ替えるデータ上書き処理を実行し、平文TSバッファ353の格納データを変換処理済みデータに変更する。このデータ変換処理の概要について、図14を参照して説明する。
情報記録媒体に格納された暗号化コンテンツ333が、一旦、ホスト側のトラックバッファ352に格納される。図14(1)に示すトラックバッファ格納データ401である。ホスト側の復号処理によって、トラックバッファ格納データ401としての暗号化コンテンツの復号が実行されて、復号結果データが平文TSバッファ353に格納される。図14(2)に示す復号結果データ402である。
復号結果データ402には、正常なコンテンツ構成データではない、ブロークンデータ403が含まれる。ホストのデータ変換処理部は、このブロークンデータ403を、正しいコンテンツ構成データとしての変換データ404に置き換える処理を実行する。この置き換え処理は、例えば平文TSバッファ353に書き込み済みのデータに対する一部データの再書き込み(上書き)処理として実行される。
さらに、ホストの実行するデータ変換処理は、ブロークンデータを正常なコンテンツデータである変換データに置き換える処理のみならず、図14に示すように、識別子設定変換データ405によって、復号結果データ402の一部構成データを置き換える処理を実行する。
識別子は、前述したようにコンテンツ再生装置またはコンテンツ再生アプリケーションを識別可能とした識別情報の構成ビットを解析可能としたデータである。具体的には例えば、ホストアプリケーションを実行するプレーヤとしての情報処理装置の識別情報(プレーヤID)の構成データまたは、プレーヤIDに基づいて生成される識別マークである。識別子設定変換データは、先に説明したようにコンテンツの再生に影響を与えないレベルで、正しいコンテンツデータのビット値をわずかに変更したデータである。
識別子設定変換データ405は、コンテンツ中に多数設定され、これら複数の識別子設定変換データ405を集積して解析することで、例えばプレーヤIDが判別される。識別子設定変換データ405は、コンテンツとして通常再生可能なレベルで正常コンテンツデータの構成ビットを変更したデータであり、MPEGビットストリーム解析によりビット(識別マーク構成ビット)判別が可能なデータである。
情報記録媒体に格納される変換テーブルには、図14に示す変換データ404、識別子設定変換データ405が多数登録されており、さらに、これらの書き込み位置情報についても登録されている。この変換テーブル格納情報に基づくデータ変換処理を実行することで、平文TSバッファ353に格納されたデータは、図14(3)に示す変換処理済みデータ406に置き換えられることになる。
その後、変換済みのTS(トランスポートストリーム)は、ネットワークなどを介して外部出力され、外部の再生機器において再生される。あるいは、ステップS107において、デマルチプレクサによる処理によって、トランスポートストリーム(TS)からエレメンタリストリーム(ES)への変換が実行され、さらに、デコード処理(ステッブS108)が行なわれた後、ディスプレイスピーカを介して再生される。
[6.セグメント対応のSP識別子(SP_ID)取得処理]
上述したように、情報記録媒体に記録されたコンテンツは、セグメントに区分されており、各セグメントにおいて必要となるデータ変換処理に際しては、セグメントごとに異なるシークレットパラメータ(SPn)をセキュアVMから取得して、取得したシークレットパラメータを適用して変換エントリを含む変換テーブルブロックの復元をすることが必要となる。
このセグメントごとに異なるシークレットパラメータ(SPn)をセキュアVMから取得するため、再生(プレーヤ)アプリケーションは、各セグメントに対応するシークレットパラメータ識別子(SP_ID)を取得して、取得したシークレットパラメータ識別子(SP_ID)をセキュアVMに通知する。以下では、各セグメントに対応する正しいシークレットパラメータ識別子(SP_ID)を取得する手法に関する複数の処理例1〜3について説明する。
(6.1)セグメント対応のSP識別子(SP_ID)取得処理例1
セグメント対応のSP識別子(SP_ID)取得処理例1について説明する。本処理例においては、先に、図6を参照して説明したシークレットパラメータID特定テーブルに、コンテンツを構成するパケット(TSパケット)の識別情報としてのSPN(ソースパケットナンバー)をSP識別子(SP_ID)に対応付けて登録する。
コンテンツ再生を実行する再生(プレーヤ)アプリケーションは、まず、再生対象コンテンツデータに対応するSPN(ソースパケットナンバー)を、コンテンツ再生区間情報としてのクリップ情報に記録されたEPマップから取得する。さらに、EPマップから取得したSPN(ソースパケットナンバー)に基づいて、シークレットパラメータID特定テーブルを検索して、取得SPN(ソースパケットナンバー)に対応して設定されたSP識別子(SP_ID)を取得する。
再生(プレーヤ)アプリケーションは、セキュアVMに対して、シークレットパラメータID特定テーブルから取得したSP識別子(SP_ID)を通知してシークレットパラメータ算出要求(INTRP)を実行する。
以下、図面を参照して、本処理例について詳細に説明する。図15は、コンテンツ再生を実行するコンテンツ再生処理部、すなわち、再生(プレーヤ)アプリケーションによるコンテンツ再生処理を説明する図である。まず、コンテンツ再生に際して、再生(プレーヤ)アプリケーションはコンテンツの再生区間情報としてのクリップ情報を取得する。
例えば図15(a)に示すクリップ情報が選択される。クリップ情報は、コンテンツのパケット識別子情報を含むEPマップを複数含むデータとして設定される。各EPマップには、例えば図15(b)に示す再生コンテンツとしてのAVストリームを構成する符号化データであるMPEGデータの符号化データ単位としてのGOP(Group Of Pictures)中のIピクチャに関するパケット情報が含まれる。
EPマップ中に含まれるIピクチャのパケット情報中には、SPN(ソースパケットナンバー)が含まれる。例えば、1つのGOP(Group Of Pictures)は、図15(c)に示すように、1つのIピクチャ411と複数のP,Bピクチャによって構成される。Iピクチャ411は、GOP中の基準ピクチャとして設定される符号化データであり、P,Bピクチャは、Iピクチャ情報を参照情報として適用するピクチャ情報である。
なお、ブロークンデータとして設定されるパケットはTSパケット単位であり、TSパケットは、図に示すようにIピクチャ411やP,Bピクチャの構成データとして設定される。すなわち、1つのIピクチャ、またはP,Bピクチャは、多数のTSパケットに分散されて格納される。
例えば、このGOP内のIピクチャ411を構成するTSパケットの1つを変形データ(プロークンデータ)として設定すると、MPEG符号化データの基準となるIピクチャが壊れることになり、Iピクチャを参照情報として利用するPピクチャやBピクチャも復元(MPEG復号)ができなくなり、効果的なデータ破壊を行なうことができる。
コンテンツ再生を実行する再生(プレーヤ)アプリケーションは、データ変換によって、変換テーブルに記録された変換データを取得して、データ置き換えを実行する。なお、前述したように、データ置き換えは、ブロークンデータの置き換え用の変換データのみならず、識別子設定変換データについても実行される。
前述したように、これらの変換データは、変換テーブルに登録されているが、セグメント毎に異なるシークレットパラメータ(SP)を適用した演算、あるいは暗号化が施されており、コンテンツ再生を実行する再生(プレーヤ)アプリケーションは、各セグメントに対応するシークレットパラメータをセキュアVMかせら取得しなければならない。
本処理例では、再生(プレーヤ)アプリケーションは、コンテンツ再生区間情報としてのクリップ情報に記録されたEPマップからSPN(ソースパケットナンバー)を取得し、取得したSPN(ソースパケットナンバー)に基づいて、シークレットパラメータID特定テーブルを検索して、再生予定のSPN(ソースパケットナンバー)に対応するSP識別子(SP_ID)を取得する。
まず、図16、図17を参照してEPマップの詳細について説明する。図16に示すように、EPマップ(EP_map)412は、クリップ情報ファィル(クリップインフォメーション)に含まれるデータである。EPマップに基づくIピクチャ位置の検出について、図17参照して説明する。図17(A)はクリップAVストリームを示し、各矩形は192ビットソースパケットを示している。各ソースパケットにはタイムスタンプが設定され再生処理時間が規定されている。
図17(B)に、ソースパケットNo.(X1)の詳細構成を示す。1つのソースパケットは、TP_extraヘッダとトランスポートパケットとによって構成され、トランスポートパケットには、各種のヘッダ情報と、MPEG2実体データとしてのI−PICH〜のデータによって構成される。
図17(C)に示すクリップインフォメーションには、前述したようにEPマップが含まれる。EPマップには、図に示すように、[PTS_EP start]、[SPN_EP start]、[I_end_position_offset]の各データが含まれる。各データの意味は、以下の通りである。
PTS_EP_start:シーケンスヘッダを含むsource packetに対応するタイムスタンプ(プレゼンテーションタイムスタンプ)。
SPN_EP_start:シーケンスヘッダを含むsource packetの先頭アドレス。
I_end_position_offset:シーケンスヘッダを含むsource packetから、Iピクチャの終わりを含むsource packetのオフセット
これらのデータ関係を示すのが図17(D)である。
すなわち、図17(B)に示すように、ソースパケットに含まれるデータの構成が規定されており、図17(C)に示す[PTS_EP start]、[SPN_EP start]、[I_end_position_offset]の各データをEPマップから求めることで、これらのデータに基づいて、ソースパケット中のIピクチャ位置が求められることになる。
本処理例では、コンテンツ再生を実行する再生(プレーヤ)アプリケーションは、再生対象コンテンツのデータに対応するSPN(ソースパケットナンバー)を、コンテンツ再生区間情報としてのクリップ情報に記録されたEPマップから取得し、取得したSPN(ソースパケットナンバー)に基づいて、シークレットパラメータID特定テーブルを検索して、再生予定のSPN(ソースパケットナンバー)に対応するSP識別子(SP_ID)を取得する。
図18に、シークレットパラメータ(SP)ID特定テーブルのデータ構成例、および、再生(プレーヤ)アプリケーションの実行するセキュアVMに対するSP算出要求処理シーケンスを説明するフローチャートを示す。
図18に示すフローチャートの各ステップについて説明する。コンテンツを再生する再生(プレーヤ)アプリケーションは、まず、ステップS201において、再生予定のコンテンツの再生区間情報としてのクリップ情報を取得し、さらに、ステップS202において、クリップ情報に含まれるEPマッブを取得する。さらに、ステップS203において、取得したEPマップから再生位置を示すソースパケットNo.であるSPNを取得する。
例えば、ソースパケッナンバー:SPN=9451000が取得されたとする。次に、ステップS204において、SP_ID特定テーブルを参照する。なお、このSP_ID特定テーブルは、先に図6を参照して説明したように情報記録媒体に格納される変換テーブルの構成データであり、先に、図10、図11を参照して説明したように、再生アプリケーションの利用可能なメモリ領域にコピーされて格納されている。
SP_ID特定テーブルは、図18に示すように、SP_IDと、ソースパケットナンバー(SPN)の対応テーブルとして記録されている。図に示すSP_ID特定テーブルは、クリップに対応するSP_ID特定テーブルである。各SP_IDに対応して登録されたソースパケットナンバー(SPN)は、コンテンツを構成する各セグメントの最初のパケットナンバーに相当する。
図に示すSP_ID特定テーブルの例では、例えばSP_ID=124が対応するコンテンツのセグメントは、パケットナンバー(SPN)=9362153〜9444310であり、SP_ID=125が対応するセグメントは、パケットナンバー(SPN)=9444311〜9528254となる。
ステップS203において、再生アプリケーションがクリップ情報中のEPマップからソースパケッナンバー:SPN=9451000を取得したとする。再生アプリケーションは、ステップS204において、ソースパケッナンバー:SPN=9451000に対応するSP_IDをSP_ID特定テーブルから取得する。
図18に示すSP_ID特定テーブルの例では、ソースパケッナンバー:SPN=9451000は、SP_ID=125に対応するパケットナンバー(SPN)=9444311〜9528254に属することになる。従って、ソースパケッナンバー:SPN=9451000に対応するシークレットパラメータIDは、SP_ID=125となる。ステップS205では、このようにして、ソースパケッナンバー:SPN=9451000に対応するシークレットパラメータID[SP_ID=125]を取得する。
再生(プレーヤ)アプリケーションは、ステップS206において、取得したシークレットパラメータID[SP_ID=125]をセキュアVMに通知して、セグメント対応のシークレットパラメータ(SP)算出要求(INTRP)を実行して、セキュアVMからセグメント対応のシークレットパラメータ(SP)を取得する。
本処理例において適用可能な変換テーブル、および、SP_ID特定テーブルの構成例について図19、図20を参照して説明する。図19は、変換テーブルの構成を示す図である。変換テーブルには、以下のデータが含まれる。
Number of Clips (= Nclip):タイトル中で使用するクリップ数
FixUpTableBody_StartAddress:変換テーブル内の変換テーブルボディの開始アドレス
SPChangePositionTable():SP_ID特定テーブル
FixUpTableBody():変換テーブルボディ
本処理例では、SP_ID特定テーブルは、図18に示すように、シークレットパラメータ(SP)の変更されるパケットNo.が記録されたテーブルとして設定される。すなわち、各セグメントの先頭パケットNo.が各SP_IDに対応して記録される。
変換テーブルに含まれるSP_ID特定テーブル[SPChangePositionTable]のデータ構成例を図20に示す。SP_ID特定テーブルは各クリップ毎に各クリップに含まれるSP変更部に相当するパケット識別子としてのソースパケットナンバー(SPN)を登録したテーブルとして設定される。SP_ID特定テーブルには、以下のデータが含まれる。
Clip_ID:クリップID
Number of SP (= NSP):セグメント(SP_segment)数
SP_segment_start_SPN:SP_IDに対応するセグメント(SP_segment)の先頭のソースパケットナンバー(SPN)
再生アプリケーションは、SP_IDに対応するセグメント(SP_segment)の先頭のソースパケットナンバー(SPN)を取得して、再生予定のSPNに対応したSP_IDを取得することができる。
図21に、変換テーブルに含まれる変換テーブルボディ[FixUpTableBody]のデータ構成例を示す。変換テーブルボディは、各クリップごとに以下のデータを持つ。
Clip_ID:クリップの識別子(ID)(Clip_ID=1234の場合は01234.clpi、01234.m2tsのクリップファイルに対応する)
Number of SP (= NSP):クリップ内のセグメント(SP_segment)数
さらに、各SP_ID毎に
Start address of FUT block():変換テーブルブロック(FUTブロック)のスタートアドレス
FUT block:変換テーブルブロック
これらのデータを格納している。
なお、各変換テーブルブロックは、図に示すように、1つのセグメント(SP_segment)に対応する変換エントリを全て含む設定となっている。
1つの変換テーブルブロックのデータ構成例について図22を参照して説明する。変換テーブルブロックは、先に説明したように、実際の置き換えデータとしての変換データと書き込み位置情報を含む変換エントリを格納したテーブルである。変換テーブルブロックには、以下のデータが記録される。
Number of FixUpEntry in this block (=NFixups):この変換テーブルブロック(FUT block)内の変換エントリ(FixUpEntry)数=この変換テーブルブロック(FUT block)に該当するセグメント(SP_segment)内にある、変換データ(FixUpデータ)を含むプログラムマップテーブル(PMT)の数
さらに各変換エントリの各々について、
Base SPN for FixUpEntry:セグメント(SP_segment)内でI番目の変換エントリ(FixUpEntry)構造付きプログラムマップテーブル(PMT)のソースパケットナンバー(SPN)
FixUpEntry():変換エントリ、セグメント(SP_segment)内でI番目の変換エントリ(FixUpEntry)構造付きプログラムマップテーブル(PMT)内の変換エントリ(FixUpEntry)情報に一致する
これらのデータが含まれる。
なお、変換エントリ(FixUpEntry)は、先に、図7を参照して説明したように、実際に置き換え対象となる変換データと、その変換データの記録位置情報が登録されているデータであり、再生(プレーヤ)アプリケーションは、変換エントリから、変換データと、その変換データの記録位置情報を取り出して、指定位置に、変換データを上書きしてデータ変換を実行する。
次に、図23に示すフローチャートを参照して、セグメント毎に異なるシークレットパラメータ(SP)を取得して変換データによるデータ置き換えを伴うコンテンツ再生処理シーケンスについて説明する。まず、ステップS401において、再生(プレーヤ)アプリケーションは、再生するタイトルを決定し、セキュアVMに対して、タイトル初期化命令を発行する。ステップS402では、セキュアVMは、タイトル初期化処理を実行し、タイトルに対応する変換テーブル(FixUpTable)の生成処理を実行する。これは、先に、図10、図11を参照して説明した処理であり、図10に示すシーケンス図のステップS12の処理に対応する。
ステップS403において、再生(プレーヤ)アプリケーションは、変換テーブル(FixUpTable)から必要な情報を取得する。これは、先に、図11を参照して説明した処理であり、セキュアVMのメモリ領域に格納された変換テーブルから、必要な情報を再生(プレーヤ)アプリケーションの利用可能なメモリ領域にコピーする処理として実行される。
コンテンツのTS(トランスポートストリーム)に多重化されたFUTブロックから変換エントリを取り出してデータ変換を実行する再生(プレーヤ)アプリケーション、すなわち、先に図8を参照して説明した処理を実行する再生(プレーヤ)アプリケーションの場合は、シークレットパラメータ(SP)ID特定テーブルのみを自己のメモリ領域にコピーする。一方、コンテンツのTS(トランスポートストリーム)に多重化されたFUTブロックを利用せず、変換テーブルファイル内の変換テーブルブロックに記録された変換データを利用する再生(プレーヤ)アプリケーション、すなわち、先に図9を参照して説明した処理を実行する再生(プレーヤ)アプリケーション(FUTプリロード・タイプのプレーヤ)の場合は変換テーブル全体を、自己のメモリ領域にコピーする。
次に、ステップS404において、再生(プレーヤ)アプリケーションは、タイトルに対応するクリップ情報を取得し、クリップ情報に含まれるEPマップから再生開始点に対応するソースパケットナンバー(SPN)の値を取得する。
次に、ステップS405において、EPマップから取得したSPNに基づいて、SP_ID特定テーブル(SPChangePositionTable ())から、再生点のシークレットパラメータID(SP_ID)を特定する。この処理は、図18を参照して説明した処理である。
次に、ステップS406において、セキュアVMに対して、取得したシークレットパラメータID(SP_ID)を伝え、シークレットパラメータ(SP)値算出要求を出力する。この処理は、図10を参照して説明したステップS13の処理に相当する。
次に、ステップS407において、再生(プレーヤ)アプリケーションは、セキュアVMにおいて算出したセグメント対応のシークレットパラメータ(SP)値を取得し、シークレットパラメータ(SP)に基づいて変換テーブルブロックの復元を実行して、復元した変換テーブルブロックに格納された変換エントリを取得し、変換エントリに記録された変換データおよびその記録位置に基づいて、コンテンツのセグメント中のデータを変換データに置き換えるデータ変換処理を行い、ステップS408において、デコードおよび再生処理を実行する。
さらに、次のセグメントに移行する場合は、ステップS410において、次の再生セグメントのSPNをEPマップから取得し、ステップS405以下の処理を実行する。すなわち、EPマップから取得したSPNに基づいて、SP_ID特定テーブル(SPChangePositionTable ())からセグメント対応のSP_IDを取得、取得したSP_IDをセキュアVMに通知して、セグメント対応のSP値を取得し、取得SP値に基づいて変換テーブルブロックを復元して、復元変換テーブルブロックから変換エントリ取得、変換エントリから変換データおよび記録位置を抽出して、コンテンツのセグメント中のデータを変換データに置き換えるデータ変換処理をセグメント毎に実行する。
これらの処理によって、各セグメントごとに異なるシークレットパラメータ(SP)を適用した処理が行なわれる。
次に、図24を参照して、ランダムアクセスなどの特殊再生処理を行なう場合の処理シーケンスについて説明する。なお図24に示す処理は、タイトル初期化処理語の処理シーケンスのみを示している。すなわち、図23に示す処理フローにおける処理ステップS401〜S403が終了した後の処理を示している。
まず、ステップS421において、再生(プレーヤ)アプリケーションは、ランダムアクセスなどの特殊再生処理の要求に応じて、クリップ情報からEPマップを取得し、取得EPマップから再生開始点に対応するソースパケットナンバー(SPN)の値を取得する。
次に、ステップS422において、EPマップから取得したSPNに基づいて、SP_ID特定テーブル(SPChangePositionTable ())から、再生点のシークレットパラメータID(SP_ID)を特定する。この処理は、図18を参照して説明した処理である。
次に、ステップS423において、セキュアVMに対して、取得したシークレットパラメータID(SP_ID)を伝え、シークレットパラメータ(SP)値算出要求を出力する。この処理は、図10を参照して説明したステップS13の処理に相当する。
次に、ステップS424において、再生(プレーヤ)アプリケーションは、セキュアVMにおいて算出したセグメント対応のシークレットパラメータ(SP)値を取得し、シークレットパラメータ(SP)に基づいて変換テーブルブロックの復元を実行して、復元した変換テーブルブロックに格納された変換エントリを取得し、変換エントリに記録された変換データおよびその記録位置に基づいて、コンテンツのセグメント中のデータを変換データに置き換えるデータ変換処理を行い、ステップS425において、デコードおよび再生処理を実行する。
さらに、次のセグメントに移行する場合は、ステップS430において、次の再生セグメントのSPNをEPマップから取得し、ステップS422以下の処理を実行する。すなわち、EPマップから取得したSPNに基づいて、SP_ID特定テーブル(SPChangePositionTable ())からセグメント対応のSP_IDを取得、取得したSP_IDをセキュアVMに通知して、セグメント対応のSP値を取得し、取得SP値に基づいて変換テーブルブロックを復元して、復元変換テーブルブロックから変換エントリ取得、変換エントリから変換データおよび記録位置を抽出して、コンテンツのセグメント中のデータを変換データに置き換えるデータ変換処理をセグメント毎に実行する。
上述したように、本処理例では、コンテンツ再生を実行する再生(プレーヤ)アプリケーションは、まず、再生対象コンテンツデータのセグメントに対応するSPN(ソースパケットナンバー)を、コンテンツ再生区間情報としてのクリップ情報に記録されたEPマップから取得し、その後、取得したSPN(ソースパケットナンバー)に基づいて、シークレットパラメータID特定テーブルを検索して、取得SPN(ソースパケットナンバー)に対応して設定されたSP識別子(SP_ID)を取得して、取得したSP識別子(SP_ID)をセキュアVMに通知して、シークレットパラメータ算出要求(INTRP)を実行する構成としたので、各セグメントに対応するシークレットパラメータ(SP)を順次、セキュアVMから正確に受領して、正確なデータ変換を実行しながらコンテンツ再生を行なうことができる。
(6.2)セグメント対応のSP識別子(SP_ID)取得処理例2
次に、セグメント対応のSP識別子(SP_ID)取得処理例2について説明する。本処理例においては、シークレットパラメータID特定テーブルを、シークレットパラメータID(SP_ID)と、EPマップの登録テーブル識別情報(EPマップ登録テーブルID)との対応データを格納した構成とする。
コンテンツ再生を実行する再生(プレーヤ)アプリケーションは、まず、再生対象コンテンツデータに対応するクリップ情報からEPマップを取得し、EPマップに対応するEPマップの登録テーブル識別情報(EPマップ登録テーブルID)に基づいて、シークレットパラメータID特定テーブルからEPマップ登録テーブルIDに対応して設定されたSP識別子(SP_ID)を取得する。
再生(プレーヤ)アプリケーションは、セキュアVMに対して、シークレットパラメータID特定テーブルから取得したSP識別子(SP_ID)を通知してシークレットパラメータ算出要求(INTRP)を実行する。
以下、図面を参照して、本処理例について詳細に説明する。図25は、本処理例において適用するSP_ID特定テーブル[SPChangePositionTable]のデータ構成例を示す図である。なお、本処理例でも、変換テーブルの構成は先の処理例1と同様、図19に示す構成を持つ。SP_ID特定テーブル[SPChangePositionTable]のデータ構成のみが処理例1と異なる。
図25に示すSP_ID特定テーブルは、EPマップ登録テーブルIDとシークレットパラメータID(SP_ID)との対応データを格納している。具体的には、コンテンツの構成データとしてのセグメント(SP_segment)の先頭パケットの情報を含むEPマップのEPマップ登録テーブルIDと、シークレットパラメータID(SP_ID)との対応データを格納している。SP_ID特定テーブルには、以下のデータが含まれる。
Clip_ID:クリップID
Number of SP (= NSP):セグメント(SP_segment)数
SP_segment_start_EP_map_id:SP_IDに対応するセグメント(SP_segment)の先頭をEPマップ登録テーブルID(EP_map_id)で指定したものであり、この値を使って再生したいソースパケットナンバー(SPN)に該当するEPマップ登録テーブルID(EP_map_id)からSP_IDを取得することができる
再生アプリケーションは、SP_IDに対応するセグメント(SP_segment)の先頭のパケットを含むEPマップの登録テーブルIDを取得して、EPマップ登録テーブルIDに基づいて、図25に示すSP_ID特定テーブルから、セグメント対応のSP_IDを取得することができる。
図25に示すSP_ID特定テーブルを適用して、セグメント毎に異なるシークレットパラメータ(SP)を取得して変換データによるデータ置き換えを伴うコンテンツ再生処理シーケンスについて図26に示すフローチャートを参照して説明する。
まず、ステップS501において、再生(プレーヤ)アプリケーションは、再生するタイトルを決定し、セキュアVMに対して、タイトル初期化命令を発行する。ステップS502では、セキュアVMは、タイトル初期化処理を実行し、タイトルに対応する変換テーブル(FixUpTable)の生成処理を実行する。これは、先に、図10、図11を参照して説明した処理であり、図10に示すシーケンス図のステップS12の処理に対応する。
ステップS503において、再生(プレーヤ)アプリケーションは、変換テーブル(FixUpTable)から必要な情報を取得する。これは、先に、図11を参照して説明した処理であり、セキュアVMのメモリ領域に格納された変換テーブルから、必要な情報を再生(プレーヤ)アプリケーションの利用可能なメモリ領域にコピーする処理として実行される。
コンテンツのTS(トランスポートストリーム)に多重化されたFUTブロックから変換エントリを取り出してデータ変換を実行する再生(プレーヤ)アプリケーション、すなわち、先に図8を参照して説明した処理を実行する再生(プレーヤ)アプリケーションの場合は、シークレットパラメータ(SP)ID特定テーブルのみを自己のメモリ領域にコピーする。一方、コンテンツのTS(トランスポートストリーム)に多重化されたFUTブロックを利用せず、変換テーブルファイル内の変換テーブルブロックに記録された変換データを利用する再生(プレーヤ)アプリケーション、すなわち、先に図9を参照して説明した処理を実行する再生(プレーヤ)アプリケーション(FUTプリロード・タイプのプレーヤ)の場合は変換テーブル全体を、自己のメモリ領域にコピーする。
次に、ステップS504において、再生(プレーヤ)アプリケーションは、タイトルに対応するクリップ情報を取得し、クリップ情報に含まれるEPマップを決定し、決定したEPマップの登録テーブル識別情報としてのEPマップ登録テーブルIDの値を取得する。
次に、ステップS505において、EPマップ登録テーブルIDに基づいて、SP_ID特定テーブル(SPChangePositionTable ())から、再生点のシークレットパラメータID(SP_ID)を特定する。図25に示すシークレットパラメータID(SP_ID)と、EPマップの登録テーブル識別情報(EPマップ登録テーブルID)との対応データを格納したSP_ID特定テーブルを利用する。
次に、ステップS506において、セキュアVMに対して、取得したシークレットパラメータID(SP_ID)を伝え、シークレットパラメータ(SP)値算出要求を出力する。この処理は、図10を参照して説明したステップS13の処理に相当する。
次に、ステップS507において、再生(プレーヤ)アプリケーションは、セキュアVMにおいて算出したセグメント対応のシークレットパラメータ(SP)値を取得し、シークレットパラメータ(SP)に基づいて変換テーブルブロックの復元を実行して、復元した変換テーブルブロックに格納された変換エントリを取得し、変換エントリに記録された変換データおよびその記録位置に基づいて、コンテンツのセグメント中のデータを変換データに置き換えるデータ変換処理を行い、ステップS508において、デコードおよび再生処理を実行する。
さらに、次のセグメントに移行する場合は、ステップS510において、次の再生セグメントの最初のパケットの情報を含むEPマップのEPマップ登録テーブルIDを取得し、ステップS505以下の処理を実行する。すなわち、取得したEPマップ登録テーブルIDに基づいて、SP_ID特定テーブル(SPChangePositionTable ())からEPマップ登録テーブルIDに対応付けられたSP_IDを取得、取得したSP_IDをセキュアVMに通知して、セグメント対応のSP値を取得し、取得SP値に基づいて変換テーブルブロックを復元して、復元変換テーブルブロックから変換エントリ取得、変換エントリから変換データおよび記録位置を抽出して、コンテンツのセグメント中のデータを変換データに置き換えるデータ変換処理をセグメント毎に実行する。
これらの処理によって、各セグメントごとに異なるシークレットパラメータ(SP)を適用した処理が行なわれる。
次に、図27を参照して、ランダムアクセスなどの特殊再生処理を行なう場合の処理シーケンスについて説明する。なお図27に示す処理は、タイトル初期化処理語の処理シーケンスのみを示している。すなわち、図26に示す処理フローにおける処理ステップS501〜S503が終了した後の処理を示している。
まず、ステップS521において、再生(プレーヤ)アプリケーションは、ランダムアクセスなどの特殊再生処理の要求に応じて、クリップ情報の利用EPマップを特定し、特定したEPマップの登録テーブル識別子(EPマップ登録テーブルID)の値を取得する。
次に、ステップS522において、取得したEPマップ登録テーブルIDに基づいて、SP_ID特定テーブル(SPChangePositionTable ())から、EPマップ登録テーブルIDに対応する再生点のシークレットパラメータID(SP_ID)を特定する。
次に、ステップS523において、セキュアVMに対して、取得したシークレットパラメータID(SP_ID)を伝え、シークレットパラメータ(SP)値算出要求を出力する。この処理は、図10を参照して説明したステップS13の処理に相当する。
次に、ステップS524において、再生(プレーヤ)アプリケーションは、セキュアVMにおいて算出したセグメント対応のシークレットパラメータ(SP)値を取得し、シークレットパラメータ(SP)に基づいて変換テーブルブロックの復元を実行して、復元した変換テーブルブロックに格納された変換エントリを取得し、変換エントリに記録された変換データおよびその記録位置に基づいて、コンテンツのセグメント中のデータを変換データに置き換えるデータ変換処理を行い、ステップS525において、デコードおよび再生処理を実行する。
さらに、次のセグメントに移行する場合は、ステップS530において、次の再生セグメントの最初のパケットの情報を含むEPマップのEPマップ登録テーブルIDを取得し、ステップS522以下の処理を実行する。すなわち、取得したEPマップ登録テーブルIDに基づいて、SP_ID特定テーブル(SPChangePositionTable ())からEPマップ登録テーブルIDに対応付けられたSP_IDを取得、取得したSP_IDをセキュアVMに通知して、セグメント対応のSP値を取得し、取得SP値に基づいて変換テーブルブロックを復元して、復元変換テーブルブロックから変換エントリ取得、変換エントリから変換データおよび記録位置を抽出して、コンテンツのセグメント中のデータを変換データに置き換えるデータ変換処理をセグメント毎に実行する。
上述したように、本処理例では、コンテンツ再生を実行する再生(プレーヤ)アプリケーションは、まず、コンテンツ再生区間情報としてのクリップ情報に記録されたEPマップから、再生対象コンテンツデータのセグメントの開始位置に対応するパケット情報を格納したEPマップを特定し、そのEPマップの登録テーブル識別子(EPマップ登録テーブルID)に基づいて、シークレットパラメータID特定テーブルを検索して、EPマップ登録テーブルIDに対応して設定されたSP識別子(SP_ID)を取得して、取得したSP識別子(SP_ID)をセキュアVMに通知して、シークレットパラメータ算出要求(INTRP)を実行する構成としたので、各セグメントに対応するシークレットパラメータ(SP)を順次、セキュアVMから正確に受領して、正確なデータ変換を実行しながらコンテンツ再生を行なうことができる。
(6.3)セグメント対応のSP識別子(SP_ID)取得処理例3
次に、セグメント対応のSP識別子(SP_ID)取得処理例3について説明する。本処理例においては、コンテンツに設定されるセグメントを、予め規定したEPマップ登録テーブル数に基づいて区分する設定とする。すなわち、EPマップ登録テーブル数N個分に相当する再生開始位置を示すエントリポイントを持つコンテンツの区分領域を1セグメントとする。Nは1以上の整数である。
コンテンツ再生を実行する再生(プレーヤ)アプリケーションは、再生対象コンテンツデータに対応するクリップ情報からEPマップを取得し、EPマップに基づいて、コンテンツを構成するTSパケットを順次取得して再生を行なう。先に、図15を参照して説明したように、EPマップは、GOP毎に設定されており、再生(プレーヤ)アプリケーションは、クリップ情報に含まれるEPマップを取得して、再生パケットを抽出して再生処理を実行する。
本処理例では、再生(プレーヤ)アプリケーションは、利用するEPマップに対応するEPマップ登録テーブルIDを適用して、シークレットパラメータID(SP_ID)を算出する。あるいは、再生(プレーヤ)アプリケーションは、利用するEPマップ登録テーブル数をカウントして、セグメント(N個のEPマップ登録テーブル数に対応)を構成するEPマップ登録テーブル数(N)になる毎に、セグメントの切り替えが発生すると判断して、変換テーブルブロックの復元に適用するシークレットパラメータ(SP)を切り替える処理を実行する。
再生(プレーヤ)アプリケーションは、セキュアVMに対して、セグメント(n個のEPマップ登録テーブル数に対応)に対応付けられるEPマップ登録テーブル数(n)になる毎に、順次、インクリメントしたSP識別子(SP_ID)を通知してシークレットパラメータ算出要求(INTRP)を実行する。
以下、図面を参照して、本処理例について詳細に説明する。図28は、本処理例において適用する(a)コンテンツ構成と、(b)EPマップ構成データを示している。(a)コンテンツ構成に示すように、コンテンツはGOPによって区分され、各GOP内のIピクチャに関する情報がEPマップ登録テーブルにそれぞれ記録される。図28(b)のEPマップ構成データに示すように、EPマップには、複数のEPマップ登録テーブルが記録され、各EPマップ登録テーブルにIピクチャについてのアドレス情報であるSPN(ソースパケットナンバー)と、PTS(プレゼンテーションタイムスタンプ)が対応付けられて記録される。
このように、EPマップは、複数のEPマップ登録テーブルを1つのファイルに格納したデータ構成を有する。EPマップに登録されるテーブルには、テーブル番号を有し、これらはEPマップ登録テーブルIDとして識別される。
本処理例では、セグメントを、EPマップ登録テーブルN個分のデータ領域として設定する。図28に示す例では、N=5とした設定であり、EPマップ登録テーブル5個が1つのセグメントとして設定される。図28(a)に示すコンテンツ中、GOP0〜GOP4、すなわちEPマップ登録テーブル0〜EPマップ登録テーブル4が1つのセグメントとして区分され、以下、GOP5〜GOP9、すなわちEPマップ登録テーブル5〜EPマップ登録テーブル9が次の1つのセグメントとして区分される。以下同様に5GOP(=5EPマップ登録テーブル)が1セグメントとして設定される。
この場合、図28(b)に示すように、EPマップ登録テーブル0〜4に対応するセグメントにおいて適用するシークレットパラメータの識別子(SP_ID)は[0]に設定され、以降、
EPマップ登録テーブル5〜9:SP_ID=1、
EPマップ登録テーブル10〜14:SP_ID=2、
EPマップ登録テーブル14〜19:SP_ID=3、
このように、5つのEPマップ登録テーブル毎にシークレットパラメータの識別子(SP_ID)は1ずつ増加する設定とされる。
コンテンツ再生を実行する再生(プレーヤ)アプリケーションは、利用するEPマップ登録テーブルに対応するEPマップ登録テーブルIDを適用して、シークレットパラメータID(SP_ID)を算出する。シークレットパラメータID(SP_ID)は、以下の算出式によって算出される0以上の整数部分を抽出することによって決定される。
SP_ID=(EPマップ登録テーブルID)/N
上記式において、Nは、1セグメント中のEPマップ登録テーブル数に相当する。図28の例では、
EPマップ登録テーブル0〜4:SP_ID=0、
EPマップ登録テーブル5〜9:SP_ID=1、
EPマップ登録テーブル10〜14:SP_ID=2、
:
として算出される。
あるいは、上記算出式を適用せず、再生(プレーヤ)アプリケーションは、利用するEPマップ登録テーブルの数をカウントして、セグメント(N個のEPマップ登録テーブルに対応)を構成するEPマップ登録テーブル数(N)になる毎に、セグメントの切り替えが発生すると判断して、変換テーブルブロックの復元に適用するシークレットパラメータ(SP)を切り替える処理を実行する構成としてもよい。
図28に示す設定例ではN=5であるので、5つのEPマップ登録テーブル毎にセグメント切り替えが発生すると判断し、5つのEPマップのカウント毎にSP_IDを1つずつ増加させて、SP_IDを決定して、決定したSP_IDをセキュアVMに出力して、セグメント対応のシークレットパラメータを取得する。もちろんN=5以外の整数単位でセグメントを設定しても構わないことは明らかである。ただし、再生装置の処理時間を考慮して、複数のEPマップ登録テーブルのエントリポイントの単位で設定することが望ましい。
本処理例では、上記の算出式、あるいはEPマップ登録テーブルのカウントに基づいて、セグメント毎の異なるSP_IDを求めることが可能となり、先に説明した処理例1,2のようにソースパケットナンバー、あるいはEPマップ登録テーブルIDに基づいてシークレットパラメータIDを取得するシークレットパラメータID特定テーブルを利用する必要がない。
本処理例を適用した場合の、セグメント毎の異なるシークレットパラメータ(SP)の取得、および変換データによるデータ置き換えを伴うコンテンツ再生処理シーケンスについて図29に示すフローチャートを参照して説明する。
まず、ステップS601において、再生(プレーヤ)アプリケーションは、再生するタイトルを決定し、セキュアVMに対して、タイトル初期化命令を発行する。ステップS602では、セキュアVMは、タイトル初期化処理を実行し、タイトルに対応する変換テーブル(FixUpTable)の生成処理を実行する。これは、先に、図10、図11を参照して説明した処理であり、図10に示すシーケンス図のステップS12の処理に対応する。
ステップS603において、再生(プレーヤ)アプリケーションは、変換テーブル(FixUpTable)から必要な情報を取得する。これは、先に、図11を参照して説明した処理であり、セキュアVMのメモリ領域に格納された変換テーブルから、必要な情報を再生(プレーヤ)アプリケーションの利用可能なメモリ領域にコピーする処理として実行される。
コンテンツのTS(トランスポートストリーム)に多重化されたFUTブロックから変換エントリを取り出してデータ変換を実行する再生(プレーヤ)アプリケーション、すなわち、先に図8を参照して説明した処理を実行する再生(プレーヤ)アプリケーションの場合は、シークレットパラメータ(SP)ID特定テーブルのみを自己のメモリ領域にコピーする。一方、コンテンツのTS(トランスポートストリーム)に多重化されたFUTブロックを利用せず、変換テーブルファイル内の変換テーブルブロックに記録された変換データを利用する再生(プレーヤ)アプリケーション、すなわち、先に図9を参照して説明した処理を実行する再生(プレーヤ)アプリケーション(FUTプリロード・タイプのプレーヤ)の場合は変換テーブル全体を、自己のメモリ領域にコピーする。
次に、ステップS604において、再生(プレーヤ)アプリケーションは、タイトルに対応するクリップ情報を取得し、クリップ情報に含まれるEPマップを決定し、決定したEPマップの登録テーブル識別情報としてのEPマップ登録テーブルIDの値を取得する。
次に、ステップS605において、EPマップ登録テーブルIDに基づいて、SP_IDを算出する。例えば、1つのセグメントに含まれるEPマップ登録テーブル数をNとしたとき、
SP_ID=(EPマップ登録テーブルID)/N
によって、SP_IDを算出する。
次に、ステップS606において、セキュアVMに対して、取得したシークレットパラメータID(SP_ID)を伝え、シークレットパラメータ(SP)値算出要求を出力する。この処理は、図10を参照して説明したステップS13の処理に相当する。
次に、ステップS607において、再生(プレーヤ)アプリケーションは、セキュアVMにおいて算出したセグメント対応のシークレットパラメータ(SP)値を取得し、シークレットパラメータ(SP)に基づいて変換テーブルブロックの復元を実行して、復元した変換テーブルブロックに格納された変換エントリを取得し、変換エントリに記録された変換データおよびその記録位置に基づいて、コンテンツのセグメント中のデータを変換データに置き換えるデータ変換処理を行い、ステップS608において、デコードおよび再生処理を実行する。
さらに、次のセグメントに移行する場合は、ステップS610において、次の再生セグメントの最初のパケットの情報を含むEPマップのEPマップ登録テーブルIDを取得し、ステップS605以下の処理を実行する。すなわち、取得したEPマップ登録テーブルIDに基づいて、SP_IDを算出し、算出したSP_IDをセキュアVMに通知して、セグメント対応のSP値を取得し、取得SP値に基づいて変換テーブルブロックを復元して、復元変換テーブルブロックから変換エントリ取得、変換エントリから変換データおよび記録位置を抽出して、コンテンツのセグメント中のデータを変換データに置き換えるデータ変換処理をセグメント毎に実行する。
これらの処理によって、各セグメントごとに異なるシークレットパラメータ(SP)を適用した処理が行なわれる。なお、前述したように、EPマップ登録テーブルIDを適用した算出式に基づいてSP_IDを求めるのではなく、EPマップ登録テーブル数をカウントして、SP_IDを求める設定としてもよい。
次に、図30を参照して、ランダムアクセスなどの特殊再生処理を行なう場合の処理シーケンスについて説明する。なお図30に示す処理は、タイトル初期化処理語の処理シーケンスのみを示している。すなわち、図29に示す処理フローにおける処理ステップS601〜S603が終了した後の処理を示している。
まず、ステップS621において、再生(プレーヤ)アプリケーションは、ランダムアクセスなどの特殊再生処理の要求に応じて、クリップ情報の利用EPマップ登録テーブルを特定し、特定したEPマップ登録テーブルの識別子(EPマップ登録テーブルID)の値を取得する。
次に、ステップS622において、取得したEPマップ登録テーブルIDに基づいて、算出式、
SP_ID=(EPマップ登録テーブルID)/N
によって、SP_IDを算出する。
次に、ステップS623において、セキュアVMに対して、取得したシークレットパラメータID(SP_ID)を伝え、シークレットパラメータ(SP)値算出要求を出力する。この処理は、図10を参照して説明したステップS13の処理に相当する。
次に、ステップS624において、再生(プレーヤ)アプリケーションは、セキュアVMにおいて算出したセグメント対応のシークレットパラメータ(SP)値を取得し、シークレットパラメータ(SP)に基づいて変換テーブルブロックの復元を実行して、復元した変換テーブルブロックに格納された変換エントリを取得し、変換エントリに記録された変換データおよびその記録位置に基づいて、コンテンツのセグメント中のデータを変換データに置き換えるデータ変換処理を行い、ステップS625において、デコードおよび再生処理を実行する。
さらに、次のセグメントに移行する場合は、ステップS630において、次の再生セグメントの最初のパケットの情報を含むEPマップのEPマップ登録テーブルIDを取得し、ステップS622以下の処理を実行する。すなわち、取得したEPマップ登録テーブルIDに基づいて、SP_IDを算出、算出したSP_IDをセキュアVMに通知して、セグメント対応のSP値を取得し、取得SP値に基づいて変換テーブルブロックを復元して、復元変換テーブルブロックから変換エントリ取得、変換エントリから変換データおよび記録位置を抽出して、コンテンツのセグメント中のデータを変換データに置き換えるデータ変換処理をセグメント毎に実行する。なお、本例においても算出式を適用せずEPマップ登録テーブル数のカウントに基づいてSP_IDを求める構成としてもよい。
上述したように、本処理例では、コンテンツ再生を実行する再生(プレーヤ)アプリケーションは、まず、コンテンツ再生区間情報としてのクリップ情報に記録されたEPマップから、再生対象コンテンツデータに対応するEPマップ登録テーブルを特定し、そのEPマップ登録テーブルの識別子(EPマップ登録テーブルID)に基づいて、シークレットパラメータID(SP_ID)を、算出式を適用して求めるか、またはEPマップ登録テーブル数のカウントによって求め、取得したSP識別子(SP_ID)をセキュアVMに通知して、シークレットパラメータ算出要求(INTRP)を実行する構成としたので、特別なパラメータID特定テーブルを適用することなくSP識別子(SP_ID)を取得して、各セグメントに対応するシークレットパラメータ(SP)を順次、セキュアVMから正確に受領して、正確なデータ変換を実行しながらコンテンツ再生を行なうことができる。
[7.情報処理装置の構成]
次に、図31を参照して、上述した再生(プレーヤ)アプリケーションおよびセキュアVMの処理を実行する情報処理装置のハードウェア構成例について説明する。情報処理装置800は、OSやコンテンツ再生または記録アプリケーションプログラム、相互認証処理、コンテンツ再生に伴う様々な処理、例えば、上述したデータ変換処理などを含む各種プログラムに従ったデータ処理を実行するCPU809、プログラム、パラメータ等の記憶領域としてのROM808、メモリ810、デジタル信号を入出力する入出力I/F802、アナログ信号を入出力し、A/D,D/Aコンバータ805を持つ入出力I/F804、MPEGデータのエンコード、デコード処理を実行するMPEGコーデック803、TS(Transport Stream)・PS(Program Stream)処理を実行するTS・PS処理手段806、相互認証、暗号化コンテンツの復号処理など各種の暗号処理を実行する暗号処理手段807、ハードディスクなどの記録媒体812、記録媒体812の駆動、データ記録再生信号の入出力を行なうドライブ811を有し、バス801に各ブロックが接続されている。
情報処理装置(ホスト)800は、例えばATAPI−BUS等の接続バスによってドライブと接続されている。変換テーブル、コンテンツなどをデジタル信号用入出力I/F802を介して入出力される。暗号化処理、復号処理は、暗号化処理手段807によって、例えば、AESアルゴリズムなどを適用して実行される。
なお、コンテンツ再生あるいは記録処理を実行するプログラムは例えばROM808内に保管されており、プログラムの実行処理中は必要に応じて、パラメータ、データの保管、ワーク領域としてメモリ810を使用する。
ROM808または記録媒体812には、例えば、管理センタの公開鍵、ホスト対応秘密鍵、ホスト対応の公開鍵証明書、さらに、リボケーションリストとしてのドライブCRLなどが格納される。
コンテンツ再生または外部出力に際しては、情報記録媒体から取得したデータ変換処理プログラムを適用して、暗号化コンテンツの復号と、変換テーブルの復元、変換テーブルの格納データに基づく変換データの書き込み処理など、先に説明した処理例の各処理シーケンスに従った処理を実行する。
[8.情報記録媒体製造装置および情報記録媒体]
次に、情報記録媒体製造装置および情報記録媒体について説明する。すなわち、上述したコンテンツ再生処理において適用される情報記録媒体の製造装置、方法、および情報記録媒体について説明する。
情報記録媒体製造装置は、例えば、先に図1を参照して説明した記録データを格納した情報記録媒体100を製造する装置である。
情報記録媒体製造装置は、
正当コンテンツ構成データと異なるブロークンデータを含むコンテンツと、
ブロークンデータの置き換え対象となる変換データを、コンテンツの区分領域であるセグメントに対応して設定されるパラメータによって演算または暗号化処理を施して記録した変換テーブルボディデータと、パラメータの識別情報としてのパラメータ識別子を記録したパラメータ識別子特定テーブルを含む変換テーブルとを生成するデータ処理部と、ブロークンデータを含むコンテンツと、変換テーブルとを情報記録媒体に記録するデータ記録部とを有する。
情報記録媒体製造装置の一実施例構成におけるデータ処理部の生成するパラメータ識別子特定テーブルの1つの例は、先に、図20を参照して説明したパラメータ識別子と、コンテンツ構成データとしてのセグメントの先頭の位置にあるパケットのパケットナンバーを対応付けたテーブルである。
あるいは、情報記録媒体製造装置の一実施例構成におけるデータ処理部の生成するパラメータ識別子特定テーブルのもう1つの例は、先に、図25を参照して説明したパラメータ識別子と、コンテンツ構成データとしてのセグメントの先頭の位置にあるパケットの情報を含むEPマップの登録テーブル識別子としてのEPマップ登録テーブルIDを対応付けたテーブルである。
このような、製造装置によって生成された情報記録媒体は、図1他を参照して説明したように、
(a)正当コンテンツ構成データと異なるブロークンデータを含むコンテンツと、
(b)ブロークンデータの置き換え対象となる変換データを、コンテンツの区分領域であるセグメントに対応して設定されるパラメータによって演算または暗号化処理を施して記録した変換テーブルボディデータと、パラメータの識別情報としてのパラメータ識別子を記録したパラメータ識別子特定テーブルを含む変換テーブルと、
記録データとして格納した情報記録媒体となる。
一実施例において、情報記録媒体に記録される変換テーブルは、先に、図20を参照して説明したパラメータ識別子と、コンテンツ構成データとしてのセグメントの先頭の位置にあるパケットのパケットナンバーを対応付けたテーブルである。先に、図25を参照して説明したパラメータ識別子と、コンテンツ構成データとしてのセグメントの先頭の位置にあるパケットの情報を含むEPマップの登録テーブル識別子としてのEPマップ登録テーブルIDを対応付けたテーブルである。
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
例えば、プログラムは記録媒体としてのハードディスクやROM(Read Only Memory)に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、CD−ROM(Compact Disc Read Only Memory),MO(Magneto optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することができる。
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。