以下、図面を参照しながら本発明の詳細について説明する。なお、説明は、以下の記載項目に従って行う。
1.情報記録媒体の格納データと、ドライブおよびホストにおける処理の概要
2.コンテンツ管理ユニット(CPSユニット)について
3.コンテンツ再生処理
(3.1)コンテンツ再生処理例1
(3.2)コンテンツ再生処理例2
(3.3)コンテンツ再生処理例3
(3.4)コンテンツ再生処理例4
(3.5)コンテンツ再生処理例5
(3.6)コンテンツ再生処理例6
(3.7)コンテンツ再生処理例7
(3.8)コンテンツ再生処理例8
4.情報処理装置の構成
5.情報記録媒体製造装置および情報記録媒体
[1.情報記録媒体の格納データと、ドライブおよびホストにおける処理の概要]
まず、情報記録媒体の格納データと、ドライブおよびホストにおける処理の概要について説明する。図1に、コンテンツの格納された情報記録媒体100、ドライブ120およびホスト150の構成を示す。ホスト150は、例えばPC等の情報処理装置で実行されるデータ再生(または記録)アプリケーションであり、所定のデータ処理シーケンスに従ってPC等の情報処理装置のハードウェアを利用した処理を行なう。
情報記録媒体100は、例えば、Blu−rayディスク、DVDなどの情報記録媒体であり、正当なコンテンツ著作権、あるいは頒布権を持ついわゆるコンテンツ権利者の許可の下にディスク製造工場において製造された正当なコンテンツを格納した情報記録媒体(ROMディスクなど)、あるいはデータ記録可能な情報記録媒体(REディスクなど)である。なお、以下の実施例では、情報記録媒体の例としてディスク型の媒体を例として説明するが、本発明は様々な態様の情報記録媒体を用いた構成において適用可能である。
(1)暗号化コンテンツ101
情報記録媒体100には、様々なコンテンツが格納される。例えば高精細動画像データであるHD(High Definition)ムービーコンテンツなどの動画コンテンツのAV(Audio Visual)ストリームや特定の規格で規定された形式のゲームプログラム、画像ファイル、音声データ、テキストデータなどからなるコンテンツである。これらのコンテンツは、特定のAVフォーマット規格データであり、特定のAVデータフォーマットに従って格納される。具体的には、例えばBlu−rayディスクROM規格データとして、Blu−ray Disc(商標)ROM規格フォーマットに従って格納される。
(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において実行される。
ホストでは、データ変換処理を実行するバーチャルマシン(VM)を設定し、バーチャルマシン(VM)において、情報記録媒体100から読み出したデータ変換処理プログラム106を実行して、変換テーブル(Fix−up Table)105の登録データを適用して、復号コンテンツに対して、その一部構成データのデータ変換処理を実行する。これらの処理の詳細については後述する。
次に、ホスト150とドライブ120の構成、処理の概要について、図1を参照して説明する。情報記録媒体100に格納されたコンテンツの再生処理は、ドライブ120を介してホスト150にデータが転送されて実行される。コンテンツの利用に先立ち、ドライブ120と、ホスト150間では相互認証処理が実行され、この認証処理の成立によって双方の正当性が確認された後、ドライブからホストに暗号化コンテンツが転送され、ホスト側でコンテンツの復号処理が行なわれ、さらに上述の変換テーブルによるデータ変換処理が実行されてコンテンツ再生が行なわれる。
ホスト150と、ドライブ120間において実行する相互認証においては、各機器またはアプリケーションが不正な機器またはアプリケーションとして登録されていないかを示す管理センタの発行したリボケーション(無効化)リストを参照して、正当性を判定する処理を実行する。
ドライブ120は、ホストの証明書(公開鍵証明書)のリボーク(無効化)情報を格納したホストCRL(Certificate Revocation List)を格納するためのメモリ122を有する。一方、ホスト150は、ドライブの証明書(公開鍵証明書)のリボーク(無効化)情報を格納したドライブ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の更新処理を実行する。ホスト150も同様に、ドライブCRLの更新を実行する。
ドライブ120のデータ処理部121は、このCRLの更新処理の他、コンテンツ利用に際して実行されるホストとの認証処理、さらに、情報記録媒体からのデータ読み出し、ホストヘのデータ転送処理などを実行する。
ホスト150は、前述したように、例えばPC等の情報処理装置で実行されるデータ再生(または記録)アプリケーションであり、所定のデータ処理シーケンスに従ってPC等の情報処理装置のハードウェアを利用した処理を行なう。
ホスト150は、ドライブ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ユニット)に含まれる暗号化コンテンツのコピー制限情報や、再生制限情報である。
なお、タイトル鍵の生成には、情報記録媒体に格納された様々な情報を適用したデータ処理が必要となる。これらの処理の具体例についは、後段で詳細に説明する。
次に、図4を参照して、図2に示す階層構造を持つコンテンツに対応するディレクトリ構成について説明する。
(A)図2におけるインデックス210は、図3に示すディレクトリ中のindex.bdmvファイル
(B)図2におけるムービーオブジェクト220は図3に示すディレクトリ中のMovieObject.bdmvファイル
(C)図2におけるプレイリスト230は図3に示すディレクトリ中のPLAYLISTディレクトリ下のファイル、
(D)図2におけるクリップ240は図3に示すディレクトリ中のCLIPINFディレクトリ下のファイルとSTREAMディレクトリ下のファイルで同じファイル番号持つものの対に対応している。
情報記録媒体に格納されるコンテンツは、前述したように、コンテンツの構成データの一部が、正しいコンテンツデータと異なるデータによって置き換えられたブロークンデータとして設定され、復号処理のみでは正しいコンテンツ再生が実行されず、再生を行なう場合は、ブロークンデータを変換テーブルに登録されたデータに置き換える処理が必要となる。この置き換え処理には、情報記録媒体に格納されたデータ変換処理プログラム106を適用して、変換テーブル(Fix−up Table)105の登録データによるデータ変換処理を実行する。
前述したように、変換テーブル105、データ変換処理プログラム106を情報記録媒体に記録されている。図4に示すディレクトリ構成を持つコンテンツに対応する変換テーブルと、データ変換処理プログラムのディレクトリ構成を図5に示す。図5は、図4のディレクトリ構造を持つAVコンテンツに対して作成されるデータ変換処理プログラム、および変換テーブルのディレクトリ構成である。
図5に示す[ContentCode.svm]がデータ変換処理プログラムであり、
図5に示す[FixUpXXXXX.tbl]はクリップ1つごとに定義される変換テーブルである。(XXXXXはクリップ情報ファイルのファイル番号と一致している)
[3.コンテンツ再生処理]
以下、ドライブとホスト間の相互認証処理を実行し、認証の成立を条件として、ドライブに装着した情報記録媒体に格納されたコンテンツをドライブからホストに転送してコンテンツ再生処理を実行する場合の複数の処理例について説明する。
(3.1)コンテンツ再生処理例1
まずコンテンツ再生処理例1について、図6を参照して説明する。図6には、左から暗号化コンテンツの格納された情報記録媒体310、情報記録媒体310をセットし、データの読み取りを実行するドライブ330、ドライブとデータ通信可能に接続され、情報記録媒体310に格納されたコンテンツをドライブ330を介して取得して再生処理を実行する再生アプリケーションを実行するホスト350を示している。ホスト350は、例えばPC等の情報処理装置において実行される。
情報記録媒体310には、MKB(Media Key Block)311、タイトル鍵ファイル312、暗号化コンテンツ313、変換テーブル314、データ変換処理プログラム315が格納されている。ホスト350は、MKBの処理に適用するデバイス鍵351を保持している。
図6に示すホスト350がドライブ330を介して情報記録媒体310の格納コンテンツを取得して再生する処理シーケンスについて説明する。まず、情報記録媒体310の格納コンテンツの読み出しに先立ち、ホスト350とドライブ330は、ステップS101において、相互認証を実行する。この相互認証は、ホストおよびドライブがそれぞれ正当な機器またはアプリケーションソフトであるかを確認する処理である。この相互認証処理シーケンスとしては、様々な処理が適用可能である。その一例を図7を参照して説明する。
図7は、公開鍵暗号方式に従った相互認証シーケンスの1例である。まず、ステップS121において、ドライブ330は、自己のメモリ(NVRAM)に格納されたドライブ公開鍵証明書と、任意に生成した乱数をホストに送信する。ステップS122において、ホスト350も、自己のメモリ(NVRAM)に格納されたホスト公開鍵証明書と、任意に生成した乱数をドライブに送信する。
ステップS123において、ドライブ330は、ホストから受信したホスト公開鍵証明書の正当性と、ホストのリボーク状況をホスト証明書リボケーションリスト(ホストCRL:Certificate Revocation list)に基づいて検証する。ステップS123において、ドライブ330は、まず、ホスト公開鍵証明書に設定された署名検証を実行する。図7に示すECDSA_Vは、楕円曲線暗号に基づく署名検証(Verification)の実行を示している。この署名検証は、鍵管理エンティテイの秘密鍵に対応する公開鍵を適用して実行する。ドライブは、署名検証用の鍵管理エンティテイの公開鍵をメモリ(NVRAM)に保持しており、これを適用して署名検証を実行する。署名検証によって、ホスト公開鍵証明書が改ざんされていないものであることを確認する。署名検証によって、ホスト公開鍵証明書が改ざんされていることが判明した場合は処理を中止する。
さらに、ドライブ330は、改ざんのないことが明確になったホスト公開鍵証明書に基づいて、この証明書がリボーク(無効化)されているものでないことを、ホストCRLを参照して確認する。ホストCRLは、ホストに対して発行済みの公開鍵証明書について、無効化された証明書のIDをリスト化したものである。ホストCRLはドライブ内のメモリまたは情報記録媒体から取得する。
ドライブ330は、改ざんのないことが明確になったホスト公開鍵証明書からIDを取得し、このIDがホストCRLに登録されているIDと一致するか否かを判定する。一致するIDがホストCRLに存在する場合、そのホストは、リボーク(無効化)されたホストであると判定し、以降の処理を中止する。ホスト公開鍵証明書から取得したIDが、ホストCRLに記録されていない場合は、正当なリボークのなされていないホストであると判定して、処理を続ける。
一方、ホスト350においても、ステップS124において、ドライブ330から受領したドライブ公開鍵証明書に基づいて、ドライブ公開鍵証明書の正当性の確認(改ざん検証)と、ドライブCRLを適用したドライブのリボークの有無判定を実行する。ドライブの公開鍵証明書が正当なものであり、リボークされていないことが確認された場合にのみ、処理を継続する。ドライブCRLはホスト内のメモリまたは情報記録媒体から取得する。
次に、ドライブ330、ホスト350は、それぞれの認証結果をドライブレスポンス(S125)、ホストレスポンス(S126)として通知する。この認証結果の通知に際して、双方では、楕円曲線暗号を適用した値としてのECDH(Elliptic Curve Diffie Hellman)の値を生成して、双方に通知しあう。
ドライブ330は、ホスト350からのドライブ認証結果とECDHの値を受信すると、ステップS127において、ホストのレスポンスを検証し、ドライブ認証の成立を確認して、受信したECDHの値を適用して共通鍵としてのセッション鍵を生成する。ホスト350においても、ドライブ330からのホスト認証結果とECDHの値を受信すると、ステップS128において、ドライブレスポンスを検証し、ホスト認証の成立を確認して、ECDHの値に基づいて共通鍵としてのセッション鍵を生成する。
このような相互認証処理によって、ドライブ330とホスト350は共通鍵としてのセッション鍵を共有する。
図6に戻り、コンテンツ利用処理のシーケンスについての説明を続ける。ステップS101において、ホストドライブ間の相互認証が実行され、セッション鍵(Ks)を共有した後、ホスト350は、ステップS102において、情報記録媒体310に記録されたMKB311を、ドライブを介して取得して、メモリに格納されたデバイス鍵351を適用したMKB311の処理を実行して、MKBからメディア鍵(Km)を取得する。
前述したように、MKB(Media Key Block)311は、ブロードキャストエンクリプション方式の一態様として知られる木構造の鍵配信方式に基づいて生成される暗号鍵ブロックであり、有効なライセンスを持つ装置に格納されたデバイス鍵(Kd)に基づく処理(復号)によってのみ、コンテンツの復号に必要なキーであるメディア鍵(Km)の取得を可能とした鍵情報ブロックである。
次に、ステップS103において、ステップS102におけるMKB処理で取得したメディア鍵(Km)を適用して、情報記録媒体310から読み取ったタイトル鍵ファイルの復号を実行して、タイトル鍵(Kt)を取得する。情報記録媒体310に格納されるタイトル鍵ファイルはメディア鍵によって暗号化されたデータを含むファイルであり、メディア鍵を適用した処理によってコンテンツ復号に適用するタイトル鍵(Kt)を取得することができる。なお、ステップS103の復号処理は、例えばAES暗号アルゴリズムが適用される。
次に、ホスト350は、ドライブ330を介して情報記録媒体310に格納された暗号化コンテンツ313を読み出して、トラックバッファ352に読み出しコンテンツを格納し、このバッファ格納コンテンツについて、ステップS104において、タイトル鍵(Kt)を適用した復号処理を実行し、復号コンテンツを取得する。
復号コンテンツは、平文TSバッファ353に格納する。(Plain TS)は復号された平文トランスポートストリームを意味する。ここで、平文TSバッファ353に格納される復号コンテンツは、前述したブロークンデータを含むコンテンツであり、このままでは再生できず、所定のデータ変換(上書きによるデータ置き換え)を行なう必要がある。
このデータ変換処理を示すのが、図6のブロック371である。図6のブロック371は図1に示したホスト150のデータ変換処理部154の処理に相当する。このデータ変換処理の概要について、図8を参照して説明する。
図6に示す暗号化コンテンツ313は、情報記録媒体に格納された暗号化コンテンツであり、この暗号化コンテンツが、一旦、ホスト側のトラックバッファ352に格納される。図8(1)に示すトラックバッファ格納データ401である。
ホスト側の復号処理によって、トラックバッファ格納データ401としての暗号化コンテンツの復号が実行されて、復号結果データが平文TSバッファ353に格納される。図8(2)に示す復号結果データ402である。
復号結果データ402には、正常なコンテンツ構成データではない、ブロークンデータ403が含まれる。ホストのデータ変換処理部は、このブロークンデータ403を、図6に示す情報記録媒体310に記録された変換テーブル314から取得される正しいコンテンツ構成データとしての変換データ404に置き換える処理を実行する。この置き換え処理は、例えば平文TSバッファ353に書き込み済みのデータに対する一部データの再書き込み(上書き)処理として実行される。
さらに、ホストの実行するデータ変換処理は、ブロークンデータを正常なコンテンツデータである変換データに置き換える処理のみならず、図8に示すように、識別マークを含む変換データ405によって、復号結果データ402の一部構成データを置き換える処理を実行する。
識別マークとは、コンテンツ再生装置またはコンテンツ再生アプリケーションを識別可能とした識別情報の構成ビットを解析可能としたデータである。具体的には例えば、ホストアプリケーションを実行するプレーヤとしての情報処理装置の識別情報(プレーヤID)の構成データまたは、プレーヤIDに基づいて生成される識別マークである。識別マークを含む変換データは、コンテンツの再生に影響を与えないレベルで、正しいコンテンツデータのビット値をわずかに変更したデータである。
識別マークを含む変換データ405は、コンテンツ中に多数設定され、これら複数の識別マークを含む変換データ405を集積して解析することで、例えばプレーヤIDが判別される。識別マークを含む変換データ405は、コンテンツとして通常再生可能なレベルで正常コンテンツデータの構成ビットを変更したデータであり、MPEGビットストリーム解析によりビット(識別マーク構成ビット)判別が可能なデータである。
情報記録媒体に格納される変換テーブルには、図8に示す変換データ404、識別マークを含む変換データ405が多数登録されており、さらに、これらの書き込み位置情報についても登録されている。この変換テーブル格納情報に基づくデータ変換処理を実行することで、平文TSバッファ353に格納されたデータは、図8(3)に示す変換処理済みデータ406に置き換えられることになる。
図6に戻り、点線ブロック371内の処理、すなわちホスト側のデータ変換処理について説明する。データ変換処理は、例えば、ホスト内にバーチャルマシンとして設定されるセキュアVM356によって実行される。バーチャルマシン(VM)は中間言語を直接解釈して実行する仮想コンピュータであり、プラットホームに依存しない中間言語での命令コード情報を解釈して実行する。
セキュアVM356は、命令コード情報を含むデータ変換処理プログラム315を情報記録媒体310から読み出して処理を実行する。セキュアVM356は、イベントハンドラ354による処理制御がなされ、また、ホストアプリケーションを実行しているプレーヤ(情報処理装置)のID情報などをプレーヤ情報355として入力して、情報記録媒体310から取得したデータ変換処理プログラム315を実行する。イベントハンドラ354は、処理監視を実行する。セキュアVM356によって実行される処理が正しく行なわれているか否かのエミュレータチェックや、その他のホストアプリケーションや、ホストアプリケーション実行機器としてのプレーヤ(情報処理装置)の処理、状態を監視し、処理エラー、不正処理などが検出された場合には、セキュアVM356によるデータ変換処理を中止させる。
セキュアVM356は、情報記録媒体310から読み出した変換テーブルを適用して、平文TSバッファ353に格納されたデータの変換処理を実行する。すなわち図6に示すステップS105のデータ変換処理であり、図8に示す復号結果データ402に対して、ブロークンデータ403を正当なコンテンツ構成データである変換データ404に置き換え、さらに、識別マークを含む変換データ405をコンテンツの一部データと入れ替えるデータ上書き処理を実行して、平文TSバッファ353の格納データを変換処理済みデータ406に変更する。
その後、変換済みのTS(トランスポートストリーム)は、ネットワークなどを介して外部出力され、外部の再生機器において再生される。あるいは、ステップS106において、デマルチプレクサによる処理によって、トランスポートストリーム(TS)からエレメンタリストリーム(ES)への変換が実行され、さらに、デコード処理(ステッブS107)が行なわれた後、ディスプレイスピーカを介して再生される。
情報記録媒体に記録されるデータ変換テーブルのデータ構成について、図9を参照して説明する。情報記録媒体に記録されるデータ変換テーブルは、例えば図9に示すデータ構成を持つ。すなわち、
Number of Fix-Up Entry:変換データエントリ数(Number of Fix-Up Entry)
Fix-Up Entry Length:1変換データエントリのバイト数(Byte Length of one Fix-Up Entry()=(N+6))
SPN(ソースパケットナンバー):変換データ書き込みパケットのAVストリームファイルの開始位置からのパケットナンバー(Absolute Transformed Packet Number from the beginning of AV Stream File)
Byte Offset:SPNで指定されたパケット中の変換データ書き込み開始位置を示すバイトオフセット(Start byte position of transformed data in the packet)
player_id_bit_position:識別マーク(プレーヤIDなど)のビット位置(Indicate bit position of Player ID for forensic)
Fix-Up Data:変換上書きデータ(Value to be overwritten (N byte is transformed in one TS Packet))
これらのデータを持つ。
1つのコンテンツ中には、多数のブロークンデータが散在して配置されており、このブロークンデータの位置に変換テーブルに記録された変換データを上書きする。また、プレーヤIDなどの識別マークを持つ変換データについても、1つのコンテンツデータ中に多数の書き込み位置が設定される。変換テーブルは、これらの
(a)変換データ
(b)識別マーク入り変換データ
の実体データとしての「変換上書きデータ」と、
これらのデータの書き込み位置の指定情報を記録したテーブルとして設定される。
なお、どの程度の頻度で、変換データ(識別マーク入り変換データも含む)の置き換え領域を設定するか、また変換データのサイズについては、様々な設定が可能であるが、各設定により変換テーブルサイズは異なるサイズとなる。例えばMPEGコンテンツを構成する1GOP(Group Of Pictures)あたり、2つの変換データまたは識別マーク入り変換データを設定する構成においては、変換データ(識別マーク入り変換データも含む)が8バイトである場合、約400KB程度のテーブル、16バイトである場合、約600KB程度のテーブルサイズとなる。
また、MPEGコンテンツを構成する1GOP(Group Of Pictures)あたり、5つの変換データまたは識別マーク入り変換データを設定する構成においては、変換データ(識別マーク入り変換データも含む)が8バイトである場合、約1MB程度のテーブル、16バイトである場合、約1,5MB程度のテーブルサイズとなる。
ホスト350のセキュアVMは、情報記録媒体310に記録された変換テーブル314に従って、
(a)変換データ
(b)識別マーク入り変換データ
を変換テーブルの指定位置に書き込む処理を実行する。データ書き込みは、平文TSバッファ253に格納されたデータに対する変換データ、または識別マーク入り変換データの上書き処理として実行され、この処理の結果、平文TSバッファ253に格納されたデータは、先に説明した図8(3)のデータに置き換えられることになる。
ホストを実装しているプレーヤ(PCなどの情報処理装置)からのコンテンツの外部出力、あるいはコンテンツ再生は、この図8(3)に示す変換処理済みデータに基づく処理として実行される。
変換データは正しいコンテンツ構成データであり、また識別マーク入り変換データも、正しいコンテンツの再生に適用されるデータであるので、これらのデータに基づくデコード再生によって正しいコンテンツ再生が可能となる。また、このコンテンツが、例えば不正にコピーされ、コピーデータが多数外部流出した場合には、識別マーク入り変換データを解析することで、プレーヤIDを取得することが可能であり、不正コンテンツデータの流出源を特定することが可能となる。
(3.2)コンテンツ再生処理例2
次に、コンテンツ再生処理例2について、図10を参照して説明する。図10は、左から暗号化コンテンツの格納された情報記録媒体310、情報記録媒体310をセットし、データの読み取りを実行するドライブ330、ドライブとデータ通信可能に接続され、情報記録媒体310に格納されたコンテンツをドライブ330を介して取得して再生処理を実行する再生アプリケーションを実行するホスト350を示している。ホスト350は、例えばPC等の情報処理装置において実行される。
図10には、情報記録媒体310に記録されているMKB(Media Key Block)と、タイトル鍵ファイルは省略してある。ホスト350は、MKBの処理に適用するデバイス鍵を保持し、情報記録媒体310に記録されているMKB(Media Key Block)と、タイトル鍵ファイルを適用して、図6を参照して説明したと全く同様の処理を実行してタイトル鍵(Kt)を算出する。これらの処理についても、図10においては省略してある。情報記録媒体には、さらに、暗号化コンテンツ313、変換テーブル314、データ変換処理プログラム315が格納されている。
図10に示すコンテンツ再生処理例2では、点線枠で示すブロック381の処理をリアルタイム処理として実行し、ブロック382の処理を、コンテンツ再生あるいは出力前の一括処理として実行する点が特徴である。すなわち、セキュアVM356は、コンテンツの再生やコンテンツの外部出力の開始前などに、命令コード情報を含むデータ変換処理プログラム315を情報記録媒体310から読み出し、イベントハンドラ354の制御、プレーヤ情報355の入力に基づいて、情報記録媒体310から読み出した変換テーブル314の復号処理などを実行する。
情報記録媒体310に記録された変換テーブル314は、例えばAES暗号や、排他論理和演算などの演算によって難読化処理が施されており、セキュアVM356は、データ変換処理プログラム315に従って、復号処理、あるいは所定の演算処理を実行して、平文データとしての変換テーブルを取得する。ここまでの処理は、コンテンツの再生やコンテンツの外部出力の開始前などに一括して実行する。
その後の処理は、コンテンツ再生やコンテンツ外部出力処理に並行して実行するリアルタイム処理として実行する。すなわち、ステップS201におけるコンテンツ復号処理、ステップS202におけるデータ変換処理、すなわち、情報記録媒体310に記録された変換テーブル314に登録された変換データ、すなわち、
(a)変換データ
(b)識別マーク入り変換データ
を、変換テーブル314に記録された指定位置に書き込むデータ変換処理、さらに、変換済みのTS(トランスポートストリーム)の外部出力処理、あるいは、ステップS203におけるデマルチプレクサ処理、すなわちトランスポートストリーム(TS)からエレメンタリストリーム(ES)への変換処理、ステップS204におけるデコード処理、これらの処理は、コンテンツ再生または外部出力に並行したリアルタイム処理として実行する。
このような処理シーケンスとすることで、セキュアVM356による変換テーブル314の処理に時間がかかる場合であっても、コンテンツ再生、外部出力の処理に影響を与えることのないリアルタイム処理が実現される。
(3.3)コンテンツ再生処理例3
次に、コンテンツ再生処理例3について、図11を参照して説明する。図11も図10と同様、左から暗号化コンテンツの格納された情報記録媒体310、ドライブ330、ホスト350を示している。図11も図10と同様、MKB(Media Key Block)と、タイトル鍵ファイルおよびこれらを適用した処理は、先に図6を参照して説明した処理例1と同様であるので省略してある。
図11に示すコンテンツ再生処理例3では、点線枠で示すブロック381の処理をリアルタイム処理として実行し、ブロック383の処理を、コンテンツ再生あるいは出力処理前および処理実行中に間欠的に実行する間欠的低頻度処理として実行する点が特徴である。セキュアVM356は、命令コード情報を含むデータ変換処理プログラム315を情報記録媒体310から読み出して、コンテンツ再生あるいは出力処理前および処理実行中に間欠的に、イベントハンドラ354の制御、プレーヤ情報355の入力に基づいて、情報記録媒体310から読み出した変換テーブル314の復号処理などを実行する。
情報記録媒体310に記録された変換テーブル314は、変換テーブル314の部分構成データとしての変換テーブルブロック(FUT(Fix-Up Table)ブロック)単位で例えばAES暗号や、排他論理和演算などの演算によって難読化処理がなされている。セキュアVM356は、データ変換処理プログラム315に従って、各変換テーブルブロック(FUTブロック)単位で復号処理、あるいは所定の演算処理を実行して、平文データとしてのブロック単位の変換テーブルを取得する。これらの処理を、コンテンツ再生あるいは出力処理前および処理実行中に間欠的に実行する。
変換テーブルブロック(FUTブロック)単位で難読化処理がなされている変換テーブルのデータ構成について、図12、図13を参照して説明する。情報記録媒体に記録されるデータ変換テーブルは、例えば図12に示すデータ構成を持つ。すなわち、
Number of FUT blocks:変換テーブルブロック数
Length of FUT block:1変換テーブルブロックのバイト数
Number of Fix-Up Entry in FUT block:1つのFUTブロック中の変換データエントリ数(Number of Fix-Up Entry)
Length of one Fix-Up Entry:1変換データエントリのバイト数
First SPN for FUT block:各変換テーブルブロックの第1エントリのデータ書き込み位置としてのパケットナンバー
FUT:個別に暗号化あるいは演算処理がなされ難読化された部分変換テーブルとしての変換テーブルブロック(FUTブロック)
これらのデータを持つ。
各部分変換テーブルとしての変換テーブルブロック(FUTブロック)のデータ構成例を、図13に示す。各テーブルブロックは、以下のデータを持つ。すなわち、
SPN(ソースパケットナンバー):変換データ書き込みパケットのAVストリームファイルの開始位置からのパケットナンバー(Absolute Transformed Packet Number from the beginning of AV Stream File)
Byte Offset:SPNで指定されたパケット中の変換データ書き込み開始位置を示すバイトオフセット(Start byte position of transformed data in the packet)
FM_flag:識別マーク入り変換データの適用による変換処理を行なうか否かを設定したフラグ、例えば、0:全てのプレーヤにおいて変換を実行、1:プレーヤIDの該当するビット位置のビット値が"1"である場合にのみ変換を実行、などの設定とされる。
player_id_bit_position:識別マーク(プレーヤIDなど)のビット位置(Indicate bit position of Player ID for forensic)
Fix-Up Data:変換上書きデータ(Value to be overwritten (N byte is transformed in one TS Packet))
これらのデータを持つ。
図13に示す各部分変換テーブルとしてのテーブルブロック(FUTブロック)は、個別に暗号化または演算処理が実行化されたデータとして設定される。図11に示すセキュアVM356は、命令コード情報を含むデータ変換処理プログラム315を情報記録媒体310から読み出して、コンテンツ再生あるいは出力処理前および処理実行中に間欠的に、イベントハンドラ354の制御、プレーヤ情報355の入力に基づいて、情報記録媒体310から読み出した変換テーブル314の復号処理あるいは演算処理を部分変換テーブルとしてのテーブルブロック(FUTブロック)単位で実行して、平文データとしての部分変換テーブルを取得する。これらの処理を、コンテンツ再生あるいは出力処理前および処理実行中に間欠的に実行する。
その後の処理は、コンテンツ再生やコンテンツ外部出力処理に並行して実行するリアルタイム処理として実行する。すなわち、ステップS201におけるコンテンツ復号処理、ステップS202におけるデータ変換処理、すなわち、情報記録媒体310に記録された変換テーブル314に登録された変換データ、すなわち、
(a)変換データ
(b)識別マーク入り変換データ
を、変換テーブル314に記録された指定位置に書き込むデータ変換処理、さらに、変換済みのTS(トランスポートストリーム)の外部出力処理、あるいは、ステップS203におけるデマルチプレクサ処理、すなわちトランスポートストリーム(TS)からエレメンタリストリーム(ES)への変換処理、ステップS204におけるデコード処理、これらの処理は、コンテンツ再生または外部出力に並行したリアルタイム処理として実行する。
このような処理シーケンスとすることで、図10を参照して説明した処理例2と同様、セキュアVM356による変換テーブル314の処理に時間がかかる場合であっても、コンテンツ再生、外部出力の処理に影響を与えることのないリアルタイム処理が実現される。また、セキュアVMは、コンテンツ再生や外部出力に必要な変換データをまとめて生成することがなく、一定のコンテンツ部分データに対応する変換データを逐次生成する構成であるので、例えば、コンテンツ再生中に不正な処理が検出された場合、イベントハンドラ354の不正処理検出情報に基づきセキュアVM356の処理を中止することで、変換データの生成が中止され、不正なコンテンツ再生や外部出力を途中で終了させることが可能となる。
(3.4)コンテンツ再生処理例4
次に、コンテンツ再生処理例4について、図14を参照して説明する。図14も図10、図11と同様、左から暗号化コンテンツの格納された情報記録媒体310、ドライブ330、ホスト350を示している。MKB(Media Key Block)と、タイトル鍵ファイルおよびこれらを適用した処理は、先に図6を参照して説明した処理例1と同様であるので省略してある。情報記録媒体には、さらに、暗号化コンテンツ313、変換テーブル314、データ変換処理プログラム315が格納されている。
図14に示すコンテンツ再生処理例4では、点線枠で示すブロック381の処理をリアルタイム処理として実行し、点線枠で示すブロック382の処理は、図10を参照して説明したように、コンテンツ再生あるいは外部出力処理前の一括処理として実行する。セキュアVM356は、命令コード情報を含むデータ変換処理プログラム315を情報記録媒体310から読み出して、イベントハンドラ354の制御、プレーヤ情報355の入力に基づいて、情報記録媒体310から読み出した変換テーブル314の復号処理を実行する。
セキュアVM356は、データ変換処理プログラム315に従って、復号処理、あるいは所定の演算処理を実行して、平文データとしての変換テーブルを取得する。この処理の結果、取得した平文変換テーブルをテーブル記憶部362に格納する。
ステップS202におけるデータ変換処理は、コンテンツ再生または外部出力に並行してリアルタイムイベントハンドラ361の制御によって実行される。リアルタイムイベントハンドラ361の制御により、テーブル記憶部362に格納された平文データとしての変換テーブルに登録された変換データ、すなわち、
(a)変換データ
(b)識別マーク入り変換データ
を、変換テーブルに記録された指定位置に書き込むデータ変換処理が実行される。
本処理例における処理シーケンスは、先に図10を参照して説明した処理シーケンスと同様であり、ステップS201におけるコンテンツ復号処理、ステップS202におけるデータ変換処理、ステップS203におけるデマルチプレクサ処理、ステップS204におけるデコード処理、これらの処理順に従った処理が、コンテンツ再生または外部出力に並行したリアルタイム処理として実行される。
本処理例における処理シーケンスとすることで、図10を参照して説明した処理例2と同様、セキュアVM356による変換テーブル314の処理に時間がかかる場合であっても、コンテンツ再生、外部出力の処理に影響を与えることのないリアルタイム処理が実現される。
(3.5)コンテンツ再生処理例5
次に、コンテンツ再生処理例5について、図15を参照して説明する。図15には、左から暗号化コンテンツの格納された情報記録媒体310、ドライブ330、ホスト350を示している。MKB(Media Key Block)と、タイトル鍵ファイルおよびこれらを適用した処理は、先に図6を参照して説明した処理例1と同様であるので省略してある。
図15に示すコンテンツ再生処理例5では、点線枠で示すブロック381の処理をリアルタイム処理として実行し、点線枠で示すブロック383の処理は、図11を参照して説明したように、コンテンツ再生あるいは外部出力処理前および処理中に間欠的に行なう間欠的低頻度処理として実行する。セキュアVM356は、命令コード情報を含むデータ変換処理プログラム315を情報記録媒体310から読み出して、イベントハンドラ354の制御、プレーヤ情報355の入力に基づいて、情報記録媒体310から読み出した変換テーブル314の復号処理を部分的に間欠的に実行する。
変換テーブル314は、一旦ホスト350内のプリロードテーブル記憶部364に格納され、セキュアVM356は、プリロードテーブル記憶部364に格納されたテーブルデータを取得して、データ変換処理プログラム315に従って、復号処理、あるいは所定の演算処理を実行して、平文データとしての変換テーブルを部分的に、逐次生成する。
セキュアVM356は、コンテンツデータの一部分に適用する変換データを含む変換テーブルの一部構成データのみを復号して一部データからなる平文変換テーブルを間欠的に生成する。この処理の結果、取得した平文部分変換テーブルを部分テーブル記憶部363に格納する。
ステップS202におけるデータ変換処理は、コンテンツ再生または外部出力に並行してリアルタイムイベントハンドラ361の制御によって実行される。リアルタイムイベントハンドラ361の制御により、部分テーブル記憶部363に格納された平文データとしての部分変換テーブルに登録された変換データ、すなわち、
(a)変換データ
(b)識別マーク入り変換データ
を、変換テーブルに記録された指定位置に書き込むデータ変換処理がコンテンツ再生処理または外部出力処理に並行したリアルタイム処理として実行される。
本処理例における処理シーケンスは、先に図11を参照して説明した処理シーケンスと同様であり、ステップS201におけるコンテンツ復号処理、ステップS202におけるデータ変換処理、ステップS203におけるデマルチプレクサ処理、ステップS204におけるデコード処理、これらの処理順に従った処理が、コンテンツ再生または外部出力に並行したリアルタイム処理として実行される。
本処理例における処理シーケンスとすることで、図11を参照して説明した処理例3と同様、セキュアVM356による変換テーブル314の処理に時間がかかる場合であっても、コンテンツ再生、外部出力の処理に影響を与えることのないリアルタイム処理が実現され、また、セキュアVMは、コンテンツ再生や外部出力に必要な変換データをまとめて生成することがなく、一定のコンテンツ部分データに対応する変換データを逐次生成する構成であるので、例えば、コンテンツ再生中に不正な処理が検出された場合、不正処理検出情報に基づきセキュアVM356の処理を中止することで、変換データの生成が中止され、不正なコンテンツ再生や外部出力を途中で終了させることが可能となる。
(3.6)コンテンツ再生処理例6
次に、コンテンツ再生処理例6について、図16を参照して説明する。図16には、左から暗号化コンテンツの格納された情報記録媒体310、ドライブ330、ホスト350を示している。MKB(Media Key Block)と、タイトル鍵ファイルおよびこれらを適用した処理は、先に図6を参照して説明した処理例1と同様であるので省略してある。本処理例では、図16に示すように、情報記録媒体310には、変換テーブルを含む暗号化コンテンツ318と、データ変換処理プログラム315が格納されている。点線枠で示すブロック381の処理をリアルタイム処理として実行し、点線枠で示すブロック385の処理は、間欠的な処理として実行される。
すなわち、本処理例では、暗号化コンテンツの構成データ中の特定パケットに分散されて変換テーブルが記録される。例えば図17に示すような設定で変換テーブルがコンテンツを含むトランスポートストリームパケット内に格納される。図17(a)にコンテンツデータの構成を示す。このコンテンツ構成は、復号されたトランスポートストリーム(TS)パケットからなるコンテンツデータを示している。トランスポートストリームは、所定バイト数のTS(トランスポートストリーム)パケットから構成されている。これらのTSパケットの一部の複数パケットに、変換テーブルが分割されて記録されることになる。例えば、図に示すTSパケット391,392・・・に変換テーブルが記録される。変換テーブルを格納するTSパケットとしては、例えばコンテンツ中に分散して設定されるPMT(プログラムマップテーブル)を含むTSパケットなどが利用される。
分割された変換テーブルのデータは、例えば先に、図13を参照して説明した変換テーブルブロック(FUTブロック)と同様の構成を持つ。変換テーブルには、復号コンテンツに対して置き換え処理を行なう変換データ(または識別マーク入り変換データ)とその変換データの記録位置が記録されている。
各変換テーブルに記録された変換データは、例えば図17(b)に示すように、各変換テーブルを含むTSパケットの近傍位置に記録位置が設定される。例えば、図17(b)に示す例では、変換データの記録領域を持つパケット394,395は、変換テーブルを含むパケット391の近傍に設定される。このような設定とすることで、コンテンツの復号、再生をリアルタイムで実行する場合、変換データによるデータ置き換え処理を復号処理後の連続処理として実行することが可能であり、変換テーブルの記録されたTSパケットの検出、解析処理によって、変換データを取得し、テーブルに記録された位置に対して変換データを書き込む(上書き)処理を効率的に実行することができる。
図16に示すコンテンツ再生処理例6では、点線枠で示すブロック381の処理をリアルタイム処理として実行し、ブロック383の処理を、コンテンツ再生あるいは出力処理前および処理実行中に間欠的に実行する間欠的低頻度処理として実行する。
セキュアVM356は、命令コード情報を含むデータ変換処理プログラム315を情報記録媒体310から読み出して、コンテンツ再生あるいは出力処理前および処理実行中に間欠的に、イベントハンドラ354の制御、プレーヤ情報355の入力に基づいて、情報記録媒体310にコンテンツとともに記録された変換テーブルを平文変換テーブルにするために必要なパラメータ(P1,P2,P3・・・)を生成して出力する。この処理は間欠的に行なわれる。
パラメータP1,P2,P3・・・は所定のコンテンツデータ単位に対応する分割された変換テーブル、例えばコンテンツに分散記録された分割された変換テーブル1,2,3・・・に適用する演算または暗号処理パラメータである。分割された変換テーブル1,2,3・・・の各々は、それぞれ異なるパラメータP1,P2,P3・・・を適用した演算あるいは暗号処理が施されて情報記録媒体に記録されている。
例えば具体的には、分割された変換テーブル1,2,3・・・に適用する排他論理和(XOR)演算パラメータである。セキュアVM356は、データ変換処理プログラム315に従って、変換テーブル314を平文変換テーブルにするために必要なパラメータ(P1,P2,P3・・・)を間欠的に生成して出力する処理を実行する。
リアルタイム処理ブロック381では、ステップS301において、変換テーブルを含む暗号化コンテンツ318の復号が実行され、ステップS302におけるデマルチプレクサの処理によって、各変換テーブルが分離され、リアルタイムイベントハンドラ361の制御によって、ステップS303におけるテーブル復元&データ変換処理が実行される。リアルタイムイベントハンドラ361の制御により、セキュアVM356から間欠的に出力されるパラメータ(P1,P2,P3)を適用して、変換テーブルの復号または演算を実行して平文変換テーブルを取得し、取得した部分変換テーブルに登録された変換データ、すなわち、
(a)変換データ
(b)識別マーク入り変換データ
を、変換テーブルに記録された指定位置に書き込むデータ変換処理をコンテンツ再生処理または外部出力処理に並行したリアルタイム処理として実行する。
例えば、パラメータP1,P2,P3・・・は所定のコンテンツ部分データ単位に対応する変換データとの排他論理和(XOR)演算パラメータである場合、ステップS303におけるテーブル復元処理としては、
[変換テーブル1](XOR)[P1]、
[変換テーブル2](XOR)[P2]、
[変換テーブル3](XOR)[P3]、
: :
これらの排他論理和演算処理を実行して、各平文変換テーブルデータを取得する。なお、上記式において、[A](XOR)[B]は、AとBの排他論理和演算を意味するものとする。
このように、情報記録媒体に記録されたコンテンツ318に含まれる変換テーブルは、各コンテンツ部分に対応する変換データおよび変換データ位置情報を記録した変換テーブルに分割されており、それぞれが、固有のパラメータP1,P2,P3・・・と排他論理和演算されて格納されている。このパラメータは、セキュアVM356によって逐次、取得され出力される。
ステップS303のテーブル復元&データ変換処理以後の処理は、先に図11他を参照して説明した処理と同様であり、コンテンツ再生やコンテンツ外部出力処理に並行して実行するリアルタイム処理として行なわれる。すなわち、ステップS304におけるデマルチプレクサ処理、ステップS305におけるデコード処理、これらの処理が、コンテンツ再生または外部出力に並行したリアルタイム処理として実行される。
本処理例では、コンテンツ全体に対応する変換テーブルの構成データを分割して、各分割テーブルとされた変換テーブルごとに異なるパラメータを対応付け、これらのパラメータをセキュアVM356が、間欠的に出力する構成としたので、例えばパラメータの一部が漏洩しても、コンテンツの全体を復元することは不可能であり、より強固なコンテンツ利用管理が実現される。また、本処理例においても、図10他を参照して説明した処理例と同様、コンテンツ再生、外部出力の処理に影響を与えることのないリアルタイム処理が実現される。また、例えば、コンテンツ再生中に不正な処理が検出された場合、イベントハンドラ354の不正処理検出情報に基づきセキュアVM356の処理を中止することで、変換データの生成が中止され、不正なコンテンツ再生や外部出力を途中で終了させることが可能となる。
(3.7)コンテンツ再生処理例7
次に、コンテンツ再生処理例7について、図18を参照して説明する。図18には、左から暗号化コンテンツの格納された情報記録媒体310、ドライブ330、ホスト350を示している。MKB(Media Key Block)と、タイトル鍵ファイルおよびこれらを適用した処理は、先に図6を参照して説明した処理例1と同様であるので省略してある。本処理例では、先に図16を参照して説明したコンテンツ再生処理例6と同様、図18に示すように、情報記録媒体310には、変換テーブルを含む暗号化コンテンツ318と、データ変換処理プログラム315が格納されている。点線枠で示すブロック381の処理をリアルタイム処理として実行し、点線枠で示すブロック383の処理は、間欠的な処理として実行される。
すなわち、本処理例も、先に図16を参照して説明したコンテンツ再生処理例6と同様、暗号化コンテンツの構成データ中の特定パケットに分散されて変換テーブルが記録される。例えば図17に示すような設定で変換テーブルがコンテンツを含むトランスポートストリームパケット内に格納される。分割された変換テーブルのデータ構成について、図19を参照して説明する。
図19に示す変換テーブルは、分割された変換テーブルのデータ構成であり、特定のコンテンツ部分領域に対する変換データ(識別マーク入り変換データも含む)のみについてのデータ実体および記録位置情報を持つ。図19に示す変換テーブルのデータには、以下のデータが含まれる。
SP_No:シークレットパラメータ(SP)の識別子(ID)[XOR演算に適用]
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変換データ(識別マーク入り変換データも含む)
これらのデータによって構成される。
図19に示す変換テーブルは、先に説明した処理例6と同様、図20(a)に示すように、暗号化コンテンツの構成データ中の特定パケットに分散されて変換テーブルが記録される。例えば図20(a)に示すように、変換テーブルがコンテンツを含むトランスポートストリームパケット内に格納される。図20(a)は、復号されたトランスポートストリーム(TS)パケットからなるコンテンツデータを示している。トランスポートストリームは、所定バイト数のTS(トランスポートストリーム)パケットから構成されている。これらのTSパケットの一部の複数パケットに、変換テーブルが分割されて記録されることになる。例えば、図に示すTSパケット501,502・・・に変換テーブルが記録される。変換テーブルを格納するTSパケットとしては、例えばコンテンツ中に分散して設定されるPMT(プログラムマップテーブル)を含むTSパケットなどが利用される。
分割された変換テーブルのデータには、図19を参照して説明したように、復号コンテンツに対して置き換え処理を行なう変換データ(または識別マーク入り変換データ)とその変換データの記録位置が記録されている。
図19に示す変換テーブルは、コンテンツデータの一部の置き換え対象となる変換データと、該変換データのコンテンツに対する設定位置情報を記録した変換テーブルとして設定され、この変換テーブルを適用して、コンテンツ構成データの置き換え処理実行命令を含むデータ変換処理プログラムを実行して、データ変換が行われる。
変換テーブルに含まれる情報[type_indicator]は、変換テーブルの登録情報が、
(a)ブロークンデータを正当なコンテンツデータに変換するための変換データに関する登録情報であるか、または、
(b)再生装置又はコンテンツ再生アプリケーションの識別情報を埋めこむための識別マーク入り変換データに関する登録情報であるか、
上記(a)、(b)のいずれの登録情報であるかを識別するタイプ識別子である。
変換テーブルの登録情報領域が、再生装置又はコンテンツ再生アプリケーションの識別情報を埋めこむための識別マーク入り変換データに関する登録情報領域である場合には、テーブル登録情報として、コンテンツ再生装置またはコンテンツ再生アプリケーションの識別情報に基づいて選択的に適用する変換データ、すなわち、識別マーク入り変換データが登録される。
変換テーブルの登録情報[FM_ID_bit_position]は、複数ビットからなる再生装置又は再生アプリケーションの識別情報中、処理態様決定のために参照すべきビットの位置情報である。
例えば、複数ビットからなる再生装置又は再生アプリケーションの識別情報中、処理態様決定のために参照すべきビットのビット値が1である場合、変換テーブルに登録された識別マーク入り変換データによってコンテンツ構成データの置き換えを実行し、参照すべきビットのビット値が0である場合には置き換えを実行しないといった処理態様が決定されてデータ変換が実行される。
なお、参照ビットが0の場合に変換を実行し、1の場合に変換を実行しないとする設定も可能である。また参照ビットが0の場合の変換データと、1の場合の変換データをそれぞれ別の変換データとして設定し、参照ビットのビット値に応じて、適宜、変換データを選択して設定する構成としてもよい。
なお、変換テーブルは、コンテンツの一部構成データのみに対応する変換データを記録した部分的な変換テーブルデータ各々に対して異なるパラメータを適用した演算処理または暗号処理による難読化した変換テーブルとして設定される。
各変換テーブルに記録された変換データは、例えば図20(b)に示すように、各変換テーブルを含むTSパケットの近傍位置に記録位置が設定される。例えば、図20(b)に示す例では、変換データの記録領域を持つパケット511,512は、変換テーブルを含むパケット501の近傍に設定される。例えば、これらの各パケットは1GOPを単位として設定される。
このような設定とすることで、コンテンツの復号、再生をリアルタイムで実行する場合、変換データによるデータ置き換え処理を復号処理後の連続処理として実行することが可能であり、変換テーブルの記録されたTSパケットの検出、解析処理によって、変換データを取得し、テーブルに記録された位置に対して変換データを書き込む(上書き)処理を効率的に実行することができる。
本処理例では、各変換テーブルは、個別に異なるシークレットパラメータ(SP1,SP2,SP3・・・)を適用した演算あるいは暗号処理が施されて情報記録媒体に記録されている。
例えば具体的には、各変換テーブルは、個別に異なるシークレットパラメータ(SP1,SP2,SP3・・・)を適用した排他論理和(XOR)演算処理がなされて各パケットに格納されている。シークレットパラメータは例えば128ビットデータからなる。図18に示すセキュアVM356は、命令コード情報を含むデータ変換処理プログラム315を情報記録媒体310から読み出して、コンテンツ再生あるいは出力処理前および処理実行中に間欠的に、イベントハンドラ354の制御、プレーヤ情報355の入力に基づいて、情報記録媒体310にコンテンツとともに記録された変換テーブルを平文変換テーブルにするために必要なシークレットパラメータ(SP1,SP2,SP3・・・)、すなわち排他論理和(XOR)演算パラメータ(SP1,SP2,SP3・・・)を生成して出力する。出力されたシークレットパラメータ(SP1,SP2,SP3・・・)は、SPレジスタ371に格納される。この処理は間欠的に、順次行なわれる。
図18に示すセキュアVM356は、シークレットパラメータ(SP1,SP2,SP3・・・)に加え、シークレットパラメータの指定ナンバー(SPNo.)と、プレーヤIDに対応して設定される識別マークのID(FM_ID)をデータ変換処理プログラム315に従って生成して、これらの値を出力する。これらの値もSPレジスタ371に格納される。
リアルタイム処理ブロック381では、ステップS401において、変換テーブルを含む暗号化コンテンツ318の復号が実行され、ステップS402におけるデマルチプレクサの処理によって、各変換テーブルが分離され、リアルタイムイベントハンドラ361の制御によって、ステップS403およびステップS404において、テーブル復元&データ変換処理が実行される。ステップS403およびステップS404において、テーブル復元&データ変換処理は、リアルタイムイベントハンドラ361が、コンテンツ再生あるいは外部出力中に発生するイベントを監視して処理制御がなされる。例えば不正処理が検出された場合には処理が中止される。
ステップS403では、セキュアVM356から間欠的に出力され、SPレジスタ371に格納されたシークレットパラメータ(SPn)を用いて、デマルチプレクサによってコンテンツから分離された変換テーブルとの演算(例えば排他論理和演算)を実行して、変換テーブルを取得する。
さらに、ステップS404において、シークレットパラメータ(SPn)とともに、セキュアVM356から間欠的に出力され、SPレジスタ371に格納されたシークレットパラメータの指定ナンバー(SPNo.)、識別マークのID(FM_ID)を取得して、これらの各値を参照し、変換テーブルを適用した処理態様を決定し、変換テーブルに記録された変換データ、すなわち、
(a)変換データ
(b)識別マーク入り変換データ
を、変換テーブルに記録された指定位置に書き込む処理を実行する。これらの処理は、コンテンツ再生処理または外部出力処理に並行したリアルタイム処理として実行する。
例えば、シークレットパラメータSP1,SP2,SP3・・・が、所定のコンテンツ部分データ単位に対応する変換データを含む分割された変換テーブル1,2,・・・との排他論理和(XOR)演算パラメータである場合、ステップS403における演算によるテーブル復元処理は、
[変換テーブル1](XOR)[SP1]、
[変換テーブル2](XOR)[SP2]、
[変換テーブル3](XOR)[SP3]、
: :
これらの排他論理和演算処理を順次、実行することになる。これらの演算によって、各平文変換テーブルデータを取得する。なお、上記式において、[A](XOR)[B]は、AとBの排他論理和演算を意味するものとする。
図21を参照して、変換データの書き込み構成の一例について説明する。シークレットパラメータSP1,SP2,SP3・・・は、例えばコンテンツのノーマル再生時間約10秒毎に切り替えられる。すなわち、1つの固定的なシークレットパラメータは約10秒間の再生コンテンツにのみ適用可能なパラメータとして設定される。図21のコンテンツ再生区間0〜T、T〜2T,2T〜3T・・・はそれぞれ同一のシークレットパラメータが適用可能なコンテンツ区間を示している。
このように、本処理例では、同一のシークレットパラメータが適用される区間は、ノーマル再生で約10秒間のコンテンツのみであり、万が一1つのシークレットパラメータが漏洩しても、わずか10秒のコンテンツの再生しかできないことになり、強固なコンテンツ漏洩防止が実現される。
ステップS403およびステップS404におけるテーブル復元&データ変換処理以後の処理は、先に図16を参照して説明した処理例と同様であり、コンテンツ再生やコンテンツ外部出力処理に並行して実行するリアルタイム処理として行なわれる。すなわち、ステップS405におけるデマルチプレクサ処理、ステップS406におけるデコード処理、これらの処理が、コンテンツ再生または外部出力に並行したリアルタイム処理として実行される。
なお、図18に示す処理例では、ステップS403およびステップS404におけるテーブル復元&データ変換処理をリアルタイムイベントハンドラ361を設定し、リアルタイムイベントハンドラ361が、コンテンツ再生あるいは外部出力中に発生するイベントを監視して、テーブル復元&データ変換処理を制御する構成としたが、このようなイベント監視を行なわず、データ変換処理をリアルタイムで実行させるような制御のみを可能とした構成でもよい。この場合は、例えば図22に示すように、図18に示す構成からリアルタイムイベントハンドラ361を省略した構成とすることができる。
本処理例では、コンテンツ全体に対応する変換テーブルの構成データを分割して、各分割テーブルとされた変換テーブルごとに異なるシークレットパラメータ(SPn)を対応付け、各分割変換テーブルごとに各シークレットパラメータによる排他論理和演算を施して情報記録媒体に格納するとともに、これらのシークレットパラメータをセキュアVM356が、間欠的に出力する構成としたので、例えばシークレットパラメータの一部が漏洩しても、変換テーブルに格納された変換データを全て取得することはできず、結果として、コンテンツの全体を復元することは不可能となり、より強固なコンテンツ利用管理が実現される。
また、本処理例においても、図10他を参照して説明した処理例と同様、コンテンツ再生、外部出力の処理に影響を与えることのないリアルタイム処理が実現される。また、例えば、コンテンツ再生中に不正な処理が検出された場合、イベントハンドラ354の不正処理検出情報に基づきセキュアVM356の処理を中止することで、変換データの生成が中止され、不正なコンテンツ再生や外部出力を途中で終了させることが可能となる
(3.8)コンテンツ再生処理例8
次に、コンテンツ再生処理例8について、図23を参照して説明する。図23には、左から暗号化コンテンツの格納された情報記録媒体310、ドライブ330、ホスト350を示している。MKB(Media Key Block)と、タイトル鍵ファイルおよびこれらを適用した処理は、先に図6を参照して説明した処理例1と同様であるので省略してある。情報記録媒体には、さらに、暗号化コンテンツ313、変換テーブル314、データ変換処理プログラム315が格納されている。
図23に示すコンテンツ再生処理例8は、先に説明した処理例7と同様、シークレットパラメータ(SP)を適用して、変換テーブルの一部分ずつを平文テーブルに復元して処理を行なう。先の処理例7では、複数に分割された変換テーブルを、個別に異なるシークレットパラメータ(SP1,SP2,SP3・・・)を適用した排他論理和(XOR)演算処理を施してパケットに格納した構成例であったが、本処理例では、暗号化コンテンツ313と、変換テーブル314は別ファイルとして情報記録媒体310に記録されている。
本処理例では、点線枠で示すブロック381の処理をリアルタイム処理として実行し、点線枠で示すブロック385の処理は、間欠的な処理として実行される。すなわち、コンテンツの再生、または外部出力処理に間に合うように、セキュアVM356から、シークレットパラメータ(SP)などが、間欠的に逐次供給される。本処理例においては、セキュアVM356は、変換テーブルの情報記録媒体310からの取得および図に示すXORedテーブル記憶部372に対する格納処理も実行する。この、セキュアVM356による、変換テーブルのXORedテーブル記憶部372に対する格納処理は、出力するシークレットパラメータ(SP)に対応する変換テーブルの部分データを間欠的にXORedテーブル記憶部372に対して格納する処理として実行するか、あるいは、コンテンツ再生処理または外部出力前に一括してXORedテーブル記憶部372に格納してもよい。
本処理例では、変換テーブルは1つの独立したファイルデータとして設定されるが、変換テーブルファイルの中に複数の変換テーブルブロック(FUTブロック)が格納される。これらの複数の変換テーブルブロック(FUTブロック)の各々が、個別に異なるシークレットパラメータ(SP1,SP2,SP3・・・)を適用した排他論理和(XOR)演算処理を施して格納される。
図24〜図26を参照して、変換テーブルのデータ構成について説明する。
図24は、変換テーブルの全体データ構成を示し、
図25は、変換テーブル内に含まれる複数の変換テーブルブロック(FUTブロック)中の1つの変換テーブルブロック(FUTブロック)のデータ構成、
図26は、変換テーブルブロック(FUT)内の変換データエントリのデータ構成を示している。
図24に示すように、変換テーブルには、以下のデータが含まれる。
Number of FUT blocks:変換テーブルブロック数
Length of FUT block:変換テーブルブロックバイト長
SP_No:シークレットパラメータ(SP)ナンバー(VMによって生成されるSPに対応付けられる)
First SPN for FUT block:変換テーブルブロックの割り当てられたパケット位置
FUT block():変換テーブルブロック(各ブロックは異なるパラメータで処理(難読化)されている)
変換テーブルには、複数の変換テーブルブロック(FUT)が含まれ、これらの複数の変換テーブルブロック(FUT)が、それぞれ異なるシークレットパラメータ(SP1,SP2,SP3・・・)によって排他論理和(XOR)演算処理が施されて格納されている。
図25は、図24に示す変換テーブル中に複数含まれる変換テーブルブロック(FUTブロック)の1つのデータ構成例を示している。図25に示すように、変換テーブルブロック(FUTブロック)には以下のデータが含まれる。
Number of FixUpEntry in this block:変換データ数(識別マーク入り変換データも含む)
Base SPN for FixUpEntry:変換データの記録位置の指標となるベースパケットの位置(パケットNo.)
FixUpEntry():変換データエントリ(シークレットパラメータで処理(難読化)されている)
図26は、図25に示す変換テーブブロックに含まれる変換データエントリ(FixUpEntry)のデータ構成例を示している。図26に示すように、変換データエントリ(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変換データ(識別マーク入り変換データも含む)
これらのデータによって構成される。
変換テーブルは、コンテンツデータの一部の置き換え対象となる変換データと、該変換データのコンテンツに対する設定位置情報を記録した変換テーブルとして設定され、この変換テーブルを適用して、コンテンツ構成データの置き換え処理実行命令を含むデータ変換処理プログラムを実行して、データ変換が行われる。
図26に示す変換テーブブロックに含まれる変換データエントリ(FixUpEntry)情報に含まれる情報[type_indicator]は、変換テーブルの登録情報が、
(a)ブロークンデータを正当なコンテンツデータに変換するための変換データに関する登録情報であるか、または、
(b)再生装置又はコンテンツ再生アプリケーションの識別情報を埋めこむための識別マーク入り変換データに関する登録情報であるか、
上記(a)、(b)のいずれの登録情報であるかを識別するタイプ識別子である。
変換テーブルの登録情報領域が、再生装置又はコンテンツ再生アプリケーションの識別情報を埋めこむための識別マーク入り変換データに関する登録情報領域である場合には、テーブル登録情報として、コンテンツ再生装置またはコンテンツ再生アプリケーションの識別情報に基づいて選択的に適用する変換データ、すなわち、識別マーク入り変換データが登録される。
登録情報[FM_ID_bit_position]は、複数ビットからなる再生装置又は再生アプリケーションの識別情報中、処理態様決定のために参照すべきビットの位置情報である。例えば、複数ビットからなる再生装置又は再生アプリケーションの識別情報中、処理態様決定のために参照すべきビットのビット値が1である場合、変換テーブルに登録された識別マーク入り変換データによってコンテンツ構成データの置き換えを実行し、参照すべきビットのビット値が0である場合には置き換えを実行しないといった処理態様が決定されてデータ変換が実行される。
なお、前述したように参照ビットが0の場合に変換を実行し、1の場合に変換を実行しないとする設定も可能である。また参照ビットが0の場合の変換データと、1の場合の変換データをそれぞれ別の変換データとして設定し、参照ビットのビット値に応じて、適宜、変換データを選択して設定する構成としてもよい。
なお、本処理例における変換テーブルは、複数の変換テーブルブロック(FUT)が含まれ、これらの複数の変換テーブルブロック(FUT)が、それぞれ異なるシークレットパラメータ(SP1,SP2,SP3・・・)によって排他論理和(XOR)演算処理が施されて格納されている。すなわち、本処理例では、変換テーブルは1つの独立したファイルデータとして情報記録媒体に格納されるが、図24〜図26を参照して説明したように、変換テーブル内に複数の変換テーブルブロック(FUT)を有し、これらの複数の変換テーブルブロック(FUT)の各々が、個別に異なるシークレットパラメータ(SP1,SP2,SP3・・・)を適用した排他論理和(XOR)演算処理がなされて格納される。シークレットパラメータは例えば128ビットデータからなる。
図23に示すセキュアVM356は、命令コード情報を含むデータ変換処理プログラム315を情報記録媒体310から読み出して、コンテンツ再生あるいは出力処理前および処理実行中に間欠的に、イベントハンドラ354の制御、プレーヤ情報355の入力に基づいて、情報記録媒体310に記録された変換テーブル314に含まれる変換テーブルブロック(FUTブロック)を平文変換テーブルにするために必要なシークレットパラメータ(SP1,SP2,SP3・・・)、すなわち排他論理和(XOR)演算パラメータ(SP1,SP2,SP3・・・)を生成して出力する。出力されたシークレットパラメータ(SP1,SP2,SP3・・・)は、SPレジスタ371に格納される。この処理は間欠的に、順次行なわれる。
各変換テーブルブロック(FUTブロック)は、先の処理例7において説明した分割された変換テーブルと同様、コンテンツの一部にのみ対応する変換データと、その変換データの書き込み位置情報を含むデータであり、図21を参照して説明したように、例えばノーマル再生において、10秒程度のコンテンツ部分に対応する変換データを含んでいる。
図23に示すセキュアVM356は、シークレットパラメータ(SP1,SP2,SP3・・・)に加え、シークレットパラメータの指定ナンバー(SPNo.)と、プレーヤIDに対応して設定される識別マークのID(FM_ID)をデータ変換処理プログラム315に従って生成して、これらの値を出力する。これらの値もSPレジスタ371に格納される。
リアルタイム処理ブロック381では、ステップS451において、暗号化コンテンツ318の復号が実行され、ステップS452において、XORedテーブル記憶部372に記憶された変換テーブルブロックの1つが取得され、SPレジスタ371に格納されたシークレットパラメータ(SPn)の排他論理和(XOR)演算が実行され、平文データとして、変換テーブルブロック(FUT)が取得される。
さらに、ステップS453において、シークレットパラメータ(SPn)とともに、セキュアVM356から間欠的に出力され、SPレジスタ371に格納されたシークレットパラメータの指定ナンバー(SPNo.)、識別マークのID(FM_ID)を取得して、これらの各値を参照し、変換テーブルを適用した処理態様を決定し、変換テーブルに記録された変換データ、すなわち、
(a)変換データ
(b)識別マーク入り変換データ
を、変換テーブルに記録された指定位置に書き込む処理を実行する。これらの処理は、リアルタイムハンドラ361の制御の下、コンテンツ再生処理または外部出力処理に並行したリアルタイム処理として実行される。リアルタイムイベントハンドラ361が、コンテンツ再生あるいは外部出力中に発生するイベントを監視して処理制御がなされる。例えば不正処理が検出された場合には処理が中止される。
具体的な変換テーブルの利用処理について説明する。まず、図26に示す変換テーブル中のタイプ識別子[type_indicator]を確認し、このタイプ識別子[type_indicator]が識別マーク入り変換データを挿入することを表している場合には(type_indicator==10b, 11b)、変換テーブル中の[FM_ID_bit_position]、すなわち、識別マーク入り変換データの処理態様を決定するIDのビット位置情報を参照し、複数のビットからなるID(FM_ID)の識別ビットの本テーブルで対象となる位置を特定する。この際、
タイプ識別子[type_indicator]が10bであれば0ビットを、
タイプ識別子[type_indicator]が11bであれば64ビットを、
FM_ID_bit_positionに加算する。このようにして、より少ないビットを割り当ててもFM_IDを表すことができる。そして、特定されたFM_IDのビット位置のデータを取得する。そして、
FM_IDビットが1の場合であれば変換データを適用したコンテンツの構成データの置き換えによる変形を行い、
FM_IDビットが0の場合であれば変形を行わないとする(又は、その逆。)
この処理により、プレーヤIDに相当するデータを再生データに埋めこむことができる。ここで、変形を行う場合には、変換テーブルに設定された第1変換データ[overwrite_value]及び、第2変換データ[overwrite_value_2]の2箇所の変形を共に行うことにより、FM_IDデータの除去をより困難とすることができるとともに、それぞれ[overwrite_value]の制限を行うよりも再生装置の負担を軽くすることができる。一方、タイプ識別子[type_indicator]が01bである場合には、識別マーク入りの変換データではない変換データ、例えばブロークンデータの置き換えに適用する変換データであるので、変換データの処理を行うに際して、再生装置のFM_IDの確認を行う必要は無い。
ステップS452における排他論理和演算(XOR)は、例えば、シークレットパラメータSP1,SP2,SP3・・・が、各変換テーブルブロック(FUTブロック)に対応して設定された排他論理和(XOR)演算パラメータである場合、ステップS452におけるテーブル復元処理は、
[変換テーブルブロック(FUTブロック)1](XOR)[SP1]、
[変換テーブルブロック(FUTブロック)2](XOR)[SP2]、
[変換テーブルブロック(FUTブロック)3](XOR)[SP3]、
: :
これらの排他論理和演算処理によって行なわれる。これらの演算によって、各平文変換テーブルブロックデータを取得する。なお、上記式において、[A](XOR)[B]は、AとBの排他論理和演算を意味するものとする。
これらの変換テーブルブロックに基づいて、コンテンツの一部構成データに対する変換データ書き込み、識別マーク入り変換データ書き込み処理が実行される。各変換テーブルブロックの適用可能なコンテンツ区間は、先の処理例7と同様であり、図21のコンテンツ再生区間0〜T、T〜2T,2T〜3T・・・の一部データ領域である。すなわち、これらの各区間は、同一のシークレットパラメータが適用可能なコンテンツ区間となる。
このように、本処理例では、先の処理例7と同様、同一のシークレットパラメータが適用される区間は、ノーマル再生で約10秒間のコンテンツのみであり、万が一1つのシークレットパラメータが漏洩しても、わずか10秒のコンテンツの再生しかできないことになり、強固なコンテンツ漏洩防止が実現される。
ステップS453におけるデータ変換処理以後の処理は、処理例7と同様であり、コンテンツ再生やコンテンツ外部出力処理に並行して実行するリアルタイム処理として行なわれる。すなわち、ステップS454におけるデマルチプレクサ処理、ステップS455におけるデコード処理、これらの処理が、コンテンツ再生または外部出力に並行したリアルタイム処理として実行される。
なお、図23に示す処理例では、ステップS452およびステップS453におけるテーブル復元とデータ変換処理をリアルタイムイベントハンドラ361を設定し、リアルタイムイベントハンドラ361が、コンテンツ再生あるいは外部出力中に発生するイベントを監視して、テーブル復元&データ変換処理を制御する構成としたが、このようなイベント監視を行なわず、データ変換処理をリアルタイムで実行させるような制御のみを可能とした構成でもよい。この場合は、例えば図27に示すように、図23に示す構成からリアルタイムイベントハンドラ361を省略した構成とすることができる。
本処理例では、コンテンツ全体に対応する変換テーブルの構成データを分割した変換データブロック(FUTブロック)ごとに異なるシークレットパラメータ(SPn)を対応付けて、変換データブロック(FUTブロック)ごとに各シークレットパラメータによる排他論理和演算を施して情報記録媒体に格納するとともに、これらのシークレットパラメータをセキュアVM356が、間欠的に出力する構成としたので、例えばシークレットパラメータの一部が漏洩しても、変換テーブルに格納された変換データを全て取得することはできず、結果として、コンテンツの全体を復元することは不可能となり、より強固なコンテンツ利用管理が実現される。
また、本処理例においても、図10他を参照して説明した処理例と同様、コンテンツ再生、外部出力の処理に影響を与えることのないリアルタイム処理が実現される。また、例えば、コンテンツ再生中に不正な処理が検出された場合、イベントハンドラ354の不正処理検出情報に基づきセキュアVM356の処理を中止することで、変換データの生成が中止され、不正なコンテンツ再生や外部出力を途中で終了させることが可能となる
なお、図24〜図26を参照して変換テーブルの一例としてのデータ構成を説明したが、変換テーブルは、様々なデータ構成とすることが可能である。例えば図24を参照して説明した変換テーブルの構成を図28に示すような構成としてもよい。図28は、図24と同様の構造を別の形式で記録する場合の例である。シークレットパラメータ(SP)ナンバーは、変換テーブルブロックのブロック番号で代用することができ、また、[First SPN for FUT block]は、図25で定義されている[FUT block()内の最初の"Base SPN for FixUpEntry"]の値で代用することができる。["Base SPN for FixUpEntry"]はシークレットパラメータ(SP)値との排他論理和(XOR)によって難読化されていないため、シークレットパラメータ(SP)値がない状態でも値を調べて、ランダムアクセス時などにどの変換テーブルブロック(FUTblock())を使用するかの判定に用いることができる。このように、図28に示すテーブルは、図24よりも単純な構造で、図24の変換テーブルと同様の情報を提供することができる。
[4.情報処理装置の構成]
次に、図29を参照して、ホストとしてのアプリケーションを実行する情報処理装置のハードウェア構成例について説明する。情報処理装置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などが格納される。
コンテンツ再生または外部出力に際しては、情報記録媒体から取得したデータ変換処理プログラムを適用して、暗号化コンテンツの復号と、変換テーブルの復元、変換テーブルの格納データに基づく変換データの書き込み処理など、先に説明した処理例1〜8の処理シーケンスに従った処理を実行する。
[5.情報記録媒体製造装置および情報記録媒体]
次に、情報記録媒体製造装置および情報記録媒体について説明する。すなわち、上述したコンテンツ再生処理において適用される情報記録媒体の製造装置、方法、および情報記録媒体について説明する。
情報記録媒体製造装置は、例えば、先に図1を参照して説明した記録データを格納した情報記録媒体100を製造する装置である。
情報記録媒体製造装置は、
正当コンテンツ構成データと異なるブロークンデータを含むコンテンツと、ブロークンデータの置き換え対象となる正当コンテンツ構成データである変換データを有し、該変換データのコンテンツに対する設定位置情報を記録した変換テーブルと、変換テーブルを適用したコンテンツ構成データの置き換え処理実行命令を含むデータ変換処理プログラムを生成するデータ処理部と、
ブロークンデータを含むコンテンツと、変換テーブルと、データ変換処理プログラムを情報記録媒体に記録するデータ記録部と、
を有する。
情報記録媒体製造装置の一実施例構成におけるデータ処理部は、コンテンツ再生装置またはコンテンツ再生アプリケーションの識別情報に基づいて選択的に適用する変換データを設定した変換テーブルの生成を実行する構成であり、データ記録部は、識別情報に基づいて選択的に適用する変換データを含む変換テーブルの記録処理を実行する。また、情報記録媒体製造装置におけるデータ処理部は、コンテンツの一部構成データのみに対応する変換データを記録した部分的な変換テーブルデータ各々に対して異なるパラメータを適用した演算処理または暗号処理による難読化した変換テーブルを生成し、データ記録部は、難読化した変換テーブルの記録処理を実行する。
さらに、情報記録媒体製造装置の一実施例構成におけるデータ処理部は、ブロークンデータを含むコンテンツを構成データとするストリームパケット中に、難読化した変換テーブルを散在させて配置したコンテンツデータを生成する構成であり、データ記録部は、難読化した変換テーブルを散在させて配置したコンテンツデータの記録処理を実行する。
このような、製造装置によって生成された情報記録媒体は、図1他を参照して説明したように、
(a)正当コンテンツ構成データと異なるブロークンデータを含むコンテンツと、
(b)ブロークンデータの置き換え対象となる正当コンテンツ構成データである変換データを有し、該変換データのコンテンツに対する設定位置情報を記録した変換テーブルと、
(c)変換テーブルを適用したコンテンツ構成データの置き換え処理実行命令を含むデータ変換処理プログラムを、
記録データとして格納した情報記録媒体となる。
また、一実施例において、情報記録媒体に記録される変換テーブルは、コンテンツデータの一部の置き換え対象となる変換データと、該変換データのコンテンツに対する設定位置情報を記録した変換テーブルと、変換テーブルを適用したコンテンツ構成データの置き換え処理実行命令を含むデータ変換処理プログラムを記録データとして格納し、変換テーブルの登録情報が、
(p)ブロークンデータを正当なコンテンツデータに変換するための変換データに関する登録情報であるか、または、
(q)再生装置又はコンテンツ再生アプリケーションの識別情報を埋めこむための識別マーク入り変換データに関する登録情報であるか、
上記(p)、(q)のいずれの登録情報であるかを識別するタイプ識別子を有する。
また、変換テーブルの登録情報が、再生装置又はコンテンツ再生アプリケーションの識別情報を埋めこむための識別マーク入り変換データに関する登録情報である場合には、テーブル登録情報として、さらに、コンテンツ再生装置またはコンテンツ再生アプリケーションの識別情報に基づいて選択的に適用する変換データを含む構成となる。さらに、変換テーブルは、複数ビットからなる再生装置又は再生アプリケーションの識別情報中、処理態様決定のために参照すべきビットの位置情報を含む設定となる。
前述したように、変換テーブルは、1つの実施態様として、コンテンツの一部構成データのみに対応する変換データを記録した部分的な変換テーブルデータ各々に対して異なるパラメータを適用した演算処理または暗号処理による難読化した変換テーブルであり、例えば、情報記録媒体に記録されるブロークンデータを含むコンテンツを構成データとするストリームパケット中に、難読化した変換テーブルが散在させて格納される。
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
例えば、プログラムは記録媒体としてのハードディスクやROM(Read Only Memory)に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、CD−ROM(Compact Disc Read Only Memory),MO(Magneto optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することができる。
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。