以下、図面を参照しながら本発明の情報処理装置、および方法、並びにコンピュータ・プログラムの詳細について説明する。なお、説明は、以下の記載項目に従って行う。
1.情報記録媒体の格納データと、ドライブおよびホストにおける処理の概要
2.コンテンツ管理ユニット(CPSユニット)について
3.変形データを含むコンテンツのデータ構成およびデータ変換処理の概要
4,コンテンツ再生処理
5.セキュリティチェックコードを適用した処理
6.情報処理装置に対する暗号鍵配布構成とコンテンツコードの暗号化および利用処理構成
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、暗号化コンテンツ101の利用に際して実行されるデータ処理プログラムを含むコンテンツコード105が格納される。
コンテンツコード105には、コンテンツ中の所定領域の置き換えデータに対応する変換データを登録した変換テーブル(Fix−up Table)106が含まれ、さらに、コンテンツ再生を実行するプレーヤ(再生装置)の正当性などを検証するためのプログラムなどによって構成されるセキュリティチェックコード107が含まれる。
コンテンツの再生を実行する情報処理装置は、まず、コンテンツコード105に含まれるセキュリティチェックコード107に従って、プレーヤ(再生装置)の正当性などの検証処理を実行し、検証処理の後、コンテンツコード105に含まれるデータ変換処理プログラムに従って、コンテンツコード105に含まれる変換テーブル(Fix−up Table)106に記録された変換データを取り出して、コンテンツの構成データの置き換え処理を行なう。
なお、変換テーブル(Fix−up Table)106や、セキュリティチェックコード107には、様々な再生装置や再生アプリケーション種別などに応じた処理、すなわちセキュリティチェック処理や変換処理を実行可能とするため、様々な種類のコードが含まれる。例えばA社製のプレーヤに対応するセキュリティチェックコード、変換テーブル、B社製のプレーヤに対応するセキュリティチェックコード、変換テーブルなどである。コンテンツを利用しようとするプレーヤは、これらのセキュリティチャックコードや変換テーブルから、自己のプレーヤに対応するセキュリティチェックコードや変換テーブルを選択して処理を実行することになる。
このように、コンテンツコード105には、変換データを適用した変換処理プログラムの他、スタートアップ処理や、セキュリティチェック処理などの様々な処理を実行するための情報やプログラムが含まれる。コンテンツコードの詳細については、後段で詳細に説明する。なお、図に示す情報記録媒体格納データ例は一例であり、格納データは、ディスクの種類などによって多少異なる。以下、これらの各種情報の概要について説明する。
(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)コンテンツコード
コンテンツコード105は、コンテンツ中の所定領域の置き換えデータに対応する変換データを登録した変換テーブル(Fix−up Table)106と、コンテンツ再生を実行するプレーヤ(再生装置)の正当性などを検証するプログラムであるセキュリティチェックコード107が含まれる。
前述したように、変換テーブルやセキュリティチェックコードには、様々な再生装置としてのプレーヤの種別に応じた処理を可能とするため、様々な種類のコードが含まれる。コンテンツを利用しようとするプレーヤは、自己のプレーヤに対応するセキュリティチャックコードや変換テーブルを選択してセキュリティチェック処理とデータ変換処理を実行する。
コンテンツ再生を実行する再生装置の再生アプリケーションとしてのホストは、データ変換処理を実行するバーチャルマシン(VM)を設定し、バーチャルマシン(VM)において、情報記録媒体100から読み出したコンテンツコードに従って、セキュリティチェック処理およびデータ変換処理を実行して、変換テーブル(Fix−up Table)106の登録エントリを適用して、コンテンツの一部構成データのデータ変換処理を実行する。
情報記録媒体100に格納された暗号化コンテンツ101は、所定の暗号化が施されているとともに、コンテンツ構成データの一部が、正しいデータと異なるブロークンデータによって構成されている。コンテンツ再生に際しては、このブロークンデータを正しいコンテンツデータである変換データに置き換えるデータ上書き処理が必要となる。この変換データを登録したテーブルが変換テーブル(Fix−up Table)106である。ブロークンデータはコンテンツ中に散在して多数設定され、コンテンツ再生に際しては、これらの複数のブロークンデータを変換テーブルに登録された変換データに置き換える(上書き)する処理が必要となる。この変換データを適用することにより、例えば、暗号鍵が漏洩しコンテンツの復号が不正に行なわれた場合であっても、コンテンツの復号のみでは、置き換えデータの存在によって正しいコンテンツの再生が不可能となり、不正なコンテンツ利用を防止することができる。
なお、変換テーブル106には、通常の変換データに加え、コンテンツ再生装置またはコンテンツ再生アプリケーションを識別可能とした識別情報の構成ビットを解析可能としたデータを含む変換データ(Forensic Mark)が含まれる。具体的には、例えば、プレーヤ(ホストアプリケーションを実行する装置)の識別データとしてのプレーヤIDあるいはプレーヤIDに基づいて生成された識別情報が記録された「識別マークを含む変換データ(Forensic Mark)」が含まれる。識別マークを含む変換データは、コンテンツの再生に影響を与えないレベルで、正しいコンテンツデータのビット値をわずかに変更したデータである。
なお、コンテンツコード105には、上述した変換テーブル106を適用したデータ変換処理プログラムの他、スタートアップ処理や、セキュリティチェック処理などの様々な処理を実行するための情報やプログラムが含まれる。コンテンツコードの詳細については、後段で詳細に説明する。
次に、ホスト140とドライブ120の構成、処理の概要について、図1を参照して説明する。情報記録媒体100に格納されたコンテンツの再生処理は、ドライブ120を介してホスト140にデータが転送されて実行される。
ホスト140には、再生(プレーヤ)アプリケーション150と、セキュアVM160が設定される。再生(プレーヤ)アプリケーション150は、コンテンツ再生処理部であり、コンテンツ再生処理において実行するドライブとの認証処理、コンテンツ復号、デコード処理などの処理を実行する。
セキュアVM160は、コンテンツコード105を適用した処理を実行する。コンテンツコード105には、変換テーブル106、セキュリティチェックコード107が含まれ、セキュアVM160は、自己のプレーヤに対応するセキュリティチェックコード107を選択して、セキュリティチェック処理を実行し、さらに、変換テーブル106を利用したコンテンツの一部データの置き換え処理を実行する。なお、セキュアVM160は、ホスト140内にバーチャルマシンとして設定される。バーチャルマシン(VM)は中間言語を直接解釈して実行する仮想コンピュータであり、プラットフォームに依存しない中間言語での命令コード情報を情報記録媒体100から読み出して解釈実行する。
セキュアVM160は、情報記録媒体100に記録された暗号化コンテンツ101の利用に適用するプログラムまたは適用情報を含むコンテンツコード105を取得して、取得したコンテンツコード105に従ってデータ処理を実行するデータ処理部として機能する。
セキュアVM160は、セキュアVMのアクセス可能なメモリであるメモリb161からプレーヤ情報を取得し、プレーヤ情報に対応するコンテンツコードを情報記録媒体から選択して実行する。なお、コンテンツコードの一部は、暗号化データとして設定されており、この暗号化データを復号するための暗号鍵(ノード鍵)がメモリb161に格納されている。セキュアVM160は、メモリb161から選択した鍵を適用してコンテンツコードの復号処理を実行する。
メモリb161には、階層構成を持つ鍵ツリーにおいて、情報処理装置の対応付けられた最下層ノードとしてのリーフから頂点ノードに至るルート上の各ノードに対応して設定されたノード鍵を含む暗号鍵セットを格納している。セキュアVM160は、コンテンツコードに対応する鍵指定情報に従ってメモリb161からノード鍵を選択して選択した鍵を適用してコンテンツコードの復号処理を実行する。なお、メモリb161に格納される暗号鍵セットの詳細、およびセキュアVM160の実行する処理の詳細については後段で説明する。
再生(プレーヤ)アプリケーション150と、セキュアVM160間の情報伝達、あるいは処理要求は、再生(プレーヤ)アプリケーション150からセキュアVM160に対する割り込み(INTRP)と、セキュアVM160から再生(プレーヤ)アプリケーション150に対する応答(Call)処理のシーケンスによって実行される。アプリケーション150からセキュアVM160に対する割り込み(INTRP)と、セキュアVM160から再生(プレーヤ)アプリケーション150に対する応答(Call)処理のシーケンスによって行なわれる。
ホスト140の実行する主な処理について説明する。コンテンツの利用に先立ち、ドライブ120と、ホスト140間では相互認証処理が実行され、この認証処理の成立によって双方の正当性が確認された後、ドライブからホストに暗号化コンテンツが転送され、ホスト側でコンテンツの復号処理が行なわれ、さらに上述の変換テーブルによるデータ変換処理が実行されてコンテンツ再生が行なわれる。
ドライブ120のデータ処理部121は、コンテンツ利用に際して実行されるホストとの認証処理、さらに、情報記録媒体からのデータ読み出し、ホストヘのデータ転送処理などを実行する。
ホスト140の再生(プレーや)アプリケーション150は、例えばPC等の情報処理装置で実行されるデータ再生(または記録)アプリケーションであり、所定のデータ処理シーケンスに従ってPC等の情報処理装置のハードウェアを利用した処理を行なう。
ホスト140は、ドライブ120との相互認証処理や、データ転送制御などを実行するデータ処理部151、暗号化コンテンツの復号処理を実行する復号処理部153、前述の変換テーブル105の登録データに基づくデータ変換処理を実行するデータ変換処理部154、デコード(例えばMPEGデコード)処理を実行するデコード処理部155を有する。
復号処理部153では、メモリa156に格納された各種情報、および、情報記録媒体100からの読み取りデータを適用して、コンテンツの復号に適用する鍵を生成し、暗号化コンテンツ101の復号処理を実行する。データ変換処理部154は、情報記録媒体100から取得されるデータ変換処理プログラムに従って、情報記録媒体100から取得される変換テーブルに登録された変換データを適用してコンテンツの構成データの置き換え処理(上書き)を実行する。デコード処理部155は、デコード(例えばMPEGデコード)処理を実行する。
情報処理装置150のメモリa156には、デバイス鍵:Kdや、相互認証処理に適用する鍵情報や復号に適用する鍵情報などが格納される。なお、コンテンツの復号処理の詳細については後述する。デバイス鍵:Kdは、先に説明したMKBの処理に適用する鍵である。MKBは有効なライセンスを持つユーザの情報処理装置に格納されたデバイス鍵[Kd]に基づく処理(復号)によってのみ、コンテンツの復号に必要なキーであるメディア鍵[Km]の取得を可能とした鍵情報ブロックであり、暗号化コンテンツの復号に際して、情報処理装置150は、メモリa156に格納されたデバイス鍵: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に記録されたコンテンツコード105内の変換テーブル(FUT(Fix-Up Table))106(図1参照)に登録された変換エントリ295から変換データを取得して、ブロークンデータ領域のデータを置き換える処理を実行して、再生コンテンツ296を生成して再生を実行する。
なお、再生コンテンツ296の生成に際しては、ブロークンデータ293を正常なコンテンツデータとしての変換データ297に置き換える処理に加え、記録コンテンツ291の一部領域を、コンテンツ再生装置またはコンテンツ再生アプリケーションを識別可能とした識別情報(例えばプレーヤID)の構成ビットを解析可能としたデータ(Forensic Mark)を含む識別子設定変換データ298によって置き換える処理を行なう。例えば、不正にコピーされたコンテンツが流出した場合、流出コンテンツ中の識別子設定変換データ298の解析によって、不正コンテンツの流出源を特定することが可能となる。
なお、変換データを含む変換テーブルの構成データとしての変換エントリは、コンテンツの構成データ中の特定パケットに分散して重複記録する構成としてもよい。すなわち、変換データは、図1に示す変換テーブル106に格納されるとともに、暗号化コンテンツ101にも分散記録され、重複して記録される。コンテンツ再生を実行する情報処理装置は、変換テーブル106に格納された変換データを取得してデータ置き換えを実行するか、あるいはコンテンツに分散は記録された変換エントリを取得してデータ置き換えを実行するかのいずれかの処理を行なう。
[4.コンテンツ再生処理]
次に、図5を参照して、ホストの実行するコンテンツ再生処理について説明する。図5には、左から暗号化コンテンツの格納された情報記録媒体330、情報記録媒体330をセットし、データの読み取りを実行するドライブ340、ドライブとデータ通信可能に接続され、情報記録媒体330に格納されたコンテンツをドライブ340を介して取得して再生処理を実行する再生アプリケーションを実行するホスト345を示している。
なお、図5に示すホスト345は、コンテンツの復号、デコード、データ変換処理などを実行する再生(プレーヤ)アプリケーションブロック350と、情報記録媒体に記録されたコンテンツコードに含まれるセキュリティチェックコードに基づくセキュリティチェック処理および変換テーブルに基づく変換処理に適用するパラメータ算出処理などを実行するセキュアVM360を有するセキュアVM360ブロックを区分して示してある。
情報記録媒体330は、MKB(Media Key Block)331、タイトル鍵ファイル332、暗号化コンテンツ333、コンテンツコード334を記録データとして含む。暗号化コンテンツ333は、先に、図4を参照して説明したように、一部を変換テーブルから取得するデータに置き換える必要のあるコンテンツである。
コンテンツコード334には、コンテンツ再生を実行するプレーヤ(再生装置)の正当性などを検証するためのプログラムなどによって構成されるセキュリティチェックコード335と、コンテンツ中の所定領域の置き換えデータに対応する変換データを登録した変換テーブル(Fix−up Table)336が含まれる。ホスト345は、MKBの処理に適用するデバイス鍵351を保持している。
図5に示すホスト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に格納される復号コンテンツは、前述したブロークンデータを含むコンテンツであり、このままでは再生できず、所定のデータ変換(上書きによるデータ置き換え)を行なう必要がある。
ステップS105において、セキュアVM361は、データ変換に必要となるパラメータなどをコンテンツコード334から生成する処理を実行する。その後、ステップS106において、リアルタイムイベントハンドラ356の制御によって、テーブル復元&データ変換処理が実行される。リアルタイムイベントハンドラ356の制御により、再生(プレーヤ)アプリケーション350は、コンテンツの構成データとしてのセグメントの切り替えに応じてパラメータ算出要求をセキュアVM361に割り込み(INTRP)として出力し、セキュアVM361からパラメータを、順次受領し、変換テーブルブロックの復号または演算を実行して平文変換テーブルブロックを取得し、取得した変換テーブルブロックに含まれる変換エントリを取得する。
変換エントリには、変換データ、すなわち、
(a)変換データ
(b)識別子設定変換データ(Forensic Mark)
と、これらの変換データのコンテンツにおける記録位置指定情報が記録されており、再生(プレーヤ)アプリケーション350は、ステップS106において、指定位置に書き込むデータ変換処理をコンテンツ再生処理または外部出力処理に並行したリアルタイム処理として実行する。
セキュアVM361は、例えばコンテンツの構成データとしてのセグメントごとに適用する異なるパラメータを、コンテンツコードに従って生成して出力する。例えば、パラメータ(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の格納データを変換処理済みデータに変更する。このデータ変換処理の概要について、図6を参照して説明する。
情報記録媒体に格納された暗号化コンテンツ333が、一旦、ホスト側のトラックバッファ352に格納される。図6(1)に示すトラックバッファ格納データ401である。ホスト側の復号処理によって、トラックバッファ格納データ401としての暗号化コンテンツの復号が実行されて、復号結果データが平文TSバッファ353に格納される。図6(2)に示す復号結果データ402である。
復号結果データ402には、正常なコンテンツ構成データではない、ブロークンデータ403が含まれる。ホストのデータ変換処理部は、このブロークンデータ403を、正しいコンテンツ構成データとしての変換データ404に置き換える処理を実行する。この置き換え処理は、例えば平文TSバッファ353に書き込み済みのデータに対する一部データの再書き込み(上書き)処理として実行される。
さらに、ホストの実行するデータ変換処理は、ブロークンデータを正常なコンテンツデータである変換データに置き換える処理のみならず、図6に示すように、識別子設定変換データ405によって、復号結果データ402の一部構成データを置き換える処理を実行する。
識別子は、前述したようにコンテンツ再生装置またはコンテンツ再生アプリケーションを識別可能とした識別情報の構成ビットを解析可能としたデータである。具体的には例えば、ホストアプリケーションを実行するプレーヤとしての情報処理装置の識別情報(プレーヤID)の構成データまたは、プレーヤIDに基づいて生成される識別マークである。識別子設定変換データは、先に説明したようにコンテンツの再生に影響を与えないレベルで、正しいコンテンツデータのビット値をわずかに変更したデータである。
識別子設定変換データ405は、コンテンツ中に多数設定され、これら複数の識別子設定変換データ405を集積して解析することで、例えばプレーヤIDが判別される。識別子設定変換データ405は、コンテンツとして通常再生可能なレベルで正常コンテンツデータの構成ビットを変更したデータであり、MPEGビットストリーム解析によりビット(識別マーク構成ビット)判別が可能なデータである。
情報記録媒体に格納される変換テーブルには、図6に示す変換データ404、識別子設定変換データ405が多数登録されており、さらに、これらの書き込み位置情報についても登録されている。この変換テーブル格納情報に基づくデータ変換処理を実行することで、平文TSバッファ353に格納されたデータは、図6(3)に示す変換処理済みデータ406に置き換えられることになる。
その後、変換済みのTS(トランスポートストリーム)は、ネットワークなどを介して外部出力され、外部の再生機器において再生される。あるいは、ステップS107において、デマルチプレクサによる処理によって、トランスポートストリーム(TS)からエレメンタリストリーム(ES)への変換が実行され、さらに、デコード処理(ステッブS108)が行なわれた後、ディスプレイスピーカを介して再生される。
[5.セキュリティチェックコードを適用した処理]
上述したコンテンツ再生処理の開始前に、セキュアVM361は、コンテンツコード334中のセキュリティチェックコード335を適用したセキュリティチェックを実行する。なお、セキュアVM361は、さらに必要に応じてコンテンツ再生処理の実行期間においてもセキュリティチェックコード335を適用したセキュリティチェックを実行する。
セキュアVM361は、イベントハンドラ354の制御の下、コンテンツコード334に含まれるセキュリティチェックコード335に従って、プレーヤ(再生装置)の正当性などの検証処理を実行する。なお、前述したように、変換テーブル(Fix−up Table)336や、セキュリティチェックコード335は、再生装置としてのプレーヤの種別に応じた処理を実行可能とするため、様々な種類のコードを含む設定とされる。
セキュアVM361は、プレーヤ情報355として再生装置の記憶部に格納されたプレーヤ証明書(Player Certificate)や、プレーヤ構成、例えば再生装置の有するポートに関する情報などのプレーヤ構成情報などを取得して、コンテンツコード334中に含まれるセキュリティチェックコード335から、自己のプレーヤに対応するセキュリティチェックコードを選択して、セキュリティチェック処理を実行する。すなわち、情報処理装置またはコンテンツ利用アプリケーションに対応する識別情報または属性情報の少なくともいずれかをプレーヤ情報として取得し、このようなプレーヤ情報に対応するセキュリティチェックコードを選択して、選択コードに基づくセキュリティチェック処理を実行する。
このように、情報記録媒体に格納されるコンテンツを利用する場合は、セキュアVM361においてセキュリティチェックが実行される。セキュアVM361におけるセキュリティチェックにおいてコンテンツの利用が許容された正当な機器であることが証明され、また、不正なコンテンツの外部出力などが行なわれないことを機器構成情報などに基づいて検証した後、コンテンツの再生が行なわれることになる。
このようなセキュリティチェックは、再生装置の構成、再生アプリケーションの種類などに応じて異なる処理が要求されることがあり、このため、セキュリティチェックコードは、様々な機器やアプリケーションに対応したコードのセットとしてコンテンツコード中に記録されている。
情報記録媒体におけるコンテンツコードの記録態様について、図を参照して説明する。図7は、情報記録媒体に格納されるデータ全体のディレクトリ構成を示す図である。情報記録媒体の格納データは、大きく2つのデータに区分される。1つは、コンテンツ管理データ、CPSユニット鍵、コンテンツ利用制御情報(CCI)、コンテンツなどを含むコンテンツ関連データを設定したBDMVディレクトリと、セキュリティチェックコード、変換テーブル等を含むコンテンツコードを設定したBDSVMディレクトリを有する。
これらの各ディレクトリの詳細例について、図8、図9を参照して説明する。先に、図2を参照して説明した階層構造を持つコンテンツを情報記録媒体に格納する場合、様々なデータ、あるいはコンテンツコード等のプログラムなどは、個別のファイルとして記録され、例えば図8に示すディレクトリ設定に従って情報記録媒体に格納される。
(A)図2におけるインデックス210は、図8に示すディレクトリ中のindex.bdmvファイル
(B)図2におけるムービーオブジェクト220は図8に示すディレクトリ中のMovieObject.bdmvファイル
(C)図2におけるプレイリスト230は図8に示すディレクトリ中のPLAYLISTディレクトリ下のファイル、
(D)図2におけるクリップ240は図8に示すディレクトリ中のCLIPINFディレクトリ下のファイルとSTREAMディレクトリ下のファイルで同じファイル番号持つものの対に対応する。
(E)その他、音声データやフォントデータを格納したAUXDATAファイル、メタデータを格納したMETAファイル、BD−Jオブジェクトを格納したBDOJファイルなどが情報記録媒体に格納される。
情報記録媒体に格納されるコンテンツは、前述したように、コンテンツの構成データの一部が、正しいコンテンツデータと異なるデータによって置き換えられたブロークンデータとして設定され、復号処理のみでは正しいコンテンツ再生が実行されず、再生を行なう場合は、ブロークンデータを変換テーブルに登録されたデータ(変換データ)に置き換える処理が必要となる。この置き換え処理には、情報記録媒体に格納されたコンテンツコードを適用して、変換テーブル(Fix−up Table)の登録データによるデータ変換処理を実行する。
この変換テーブル、およびセキュリティチェックコードを含むコンテンツコードについても、個別のファイルとして情報記録媒体に格納される。コンテンツコードを設定したディレクトリ構成を図9に示す。図9は、例えば、図8のディレクトリ構造を持つAVコンテンツに対して作成されるコンテンツコードのディレクトリ構成である。
コンテンツコードは、前述したようにセキュリティチェックコードと、変換テーブルを含む。情報記録媒体に格納されるコンテンツコードは、図9に示すように、BDSVMディレクテリに設定された複数の個別のファイル[nnnnn.svm]に格納される。さらに、BACKUPディレクトリにコピーデータとしてのバックアップデータが設定される。
これらのコンテンツコードの各々のファイルは、例えば、
(a)全コンテンツ&全プレーヤ(装置または再生アプリ)共通のコンテンツコード
(b)コンテンツ固有のコンテンツコード
(c)プレーヤ(装置または再生アプリ)固有のコンテンツコード
(d)コンテンツ&プレーヤ(装置または再生アプリ)固有のコンテンツコード
などの各カテゴリに分類される。
上記の(a)〜(d)のカテゴリ分類とすることで、コンテンツコードは、それぞれ独立したデータファイルとして設定可能であり、これらのコンテンツコードファイルは、再利用可能である。すなわち、異なるコンテンツや異なるプレーヤ(装置または再生アプリケーション)に対しても共通に利用可能な場合がある。このようなコンテンツコードの再利用構成について、図10を参照して説明する。
図10において、例えばコンテンツコードファイル601〜604は、各コンテンツコード制作エンティテイまたは提供エンティテイが保持するコンテンツコードファイルであり、それぞれ、
コンテンツ,プレーヤ共通コンテンツコードファイル[00000.svm]601、
プレーヤ固有コンテンツコードファイル[00001.svm][00002.svm]603、
コンテンツ固有コンテンツコードファイル[00003.svm]602、
コンテンツ,プレーヤ固有コンテンツコードファイル[00004.svm]604、
これらのコンテンツコードファイルを示している。
これらのコンテンツコードファイル601〜604には、各コンテンツコード制作エンティテイまたは提供エンティテイによる電子署名が付与されて、各エンティテイにおいて保管される。
新たなコンテンツを記録した情報記録媒体を制作する場合、各エンティテイは、既に他のコンテンツ記録情報記録媒体において利用したこれらのコンテンツコードファイル601〜604を再利用することができる。
なお、コンテンツコードは改竄を防止するめため、各コンテンツコードファイルは、管理センタに提供され、管理センタにおいて、電子署名を設定して、情報記録媒体610に格納する。情報記録媒体610に記録されるコンテンツコードには、管理センタ(KIC)による電子署名、および管理センタの設定した固有IDが付与される。情報記録媒体610に記録されるコンテンツコード620には、図に示すようにセキュリティチェックコード621、および変換テーブル622が含まれる。具体的なディレクトリ構成は、ディレクトリ構成630に示すように、各エンティテイの生成したコンテンツコードが個別に設定された構成とされる。
このように、コンテンツコードは、様々なコンテンツに対応して再利用可能であり、各コンテンツに応じて変更の必要なコンテンツコードと、再利用可能なコンテンツコードを、適宜、組み合わせて、情報記録媒体に記録されることになる。
さらに、図9に示すように、各コンテンツコードファイルは、以下のような分類によって設定する構成とすることも可能である。
コンテンツコードファイル[00000.svm]:プレーヤ情報の判別に適用するコード
コンテンツコードファイル[00001.svm],[00002.svm]:プレーヤ情報に応じて選択されるコード(たとえば00001.svmはプレーヤA用のコード、
00002.svmはプレーヤB用のコードなど)
コンテンツコードファイル[00003.svm]:プレーヤ情報によらない処理(たとえばコンテンツ発売時よりも後に発売される機器については、00003.svmに記載されたデフォルトのコードを実行する)
このように、情報記録媒体には、様々な種類に区分された異なるコンテンツコードが格納され、コンテンツコードを利用したセキュリティチェックを実行するプレーヤ(再生装置)は、自己のプレーヤに対応するセキュリティチェックコードを選択してセキュリティチェックを実行する。
図5に示すセキュアVM361は、自装置に対応したセキュリティチェックコードを選択してセキュリティチェック処理を実行する。この場合、セキュアVM361は、プレーヤ情報355を入力して、セキュリティチェックコードによるセキュリティチェック処理を行なうことになる。
プレーヤ情報355には、例えば、再生装置のメモリに格納されたプレーヤ証明書(Player Certificate)や、例えば再生装置の有するポートに関する情報などのプレーヤの構成情報などが含まれる。なお、これらの情報には、セキュアVM361が直接メモリから取得することが可能な情報と、再生アプリケーションによって取得可能な情報や、あるいはOSによって取得可能な情報など、様々な種類の情報が含まれる。
セキュアVMによって実行されるセキュリティチェック処理の1つは、装置が正当なプレーヤ証明書(Player Certificate)を有していることの確認である。プレーヤ証明書は、コンテンツの利用権現を証明する証明書であり、コンテンツの管理を実行する管理エンティテイが発行する。
プレーヤ証明書のデータ構成例を図11に示す。プレーヤ証明書は、図11に示すように、
*プレーヤ証明書サイズ、
*証明書バージョン、
*プレーヤ製造者識別子、
*シリアル番号、
*署名日時、
*デバイス(プレーヤ)属性情報、
*プレーヤ公開鍵、
*電子署名、
これらのデータを有する。これらのデータの他にも、例えば、プレーヤモデル名や、プレーヤモデルのバージョン情報などを含める構成としてもよい。
セキュアVM361は、情報記録媒体から読み出したセキュリティチェックコードに従って、このプレーヤ証明書の検証処理を実行し、正当性を確認した後、その後のセキュリティチェックに必要な情報をこの証明書から取得することができる。具体的な処理としては、まず、セキュアVM361は、プレーヤ証明書の署名検証処理を実行する。例えば、プレーヤ証明書の署名の実行エンティテイである管理センタの公開鍵を適用した署名検証を実行する。管理センタの公開鍵は、予め取得して装置のメモリに保持したものを適用してもよいし、情報記録媒体から取得あるいはネットワークを介して取得してもよい。
署名検証により、プレーヤ証明書の正当性が確認されなかった場合は、その後のデータ変換を伴うコンテンツ再生への移行が停止される。プレーヤ証明書の正当性が確認された場合は、さらに、プレーヤに対応するセキュリティチェックが実行される。製造メーカなどの基本的なプレーヤ情報は、プレーヤ証明書から取得できる。
すなわちセキュアVM361は、プレーヤ証明書の正当性検証処理を実行し、正当性が確認されたことを条件として、該プレーヤ証明書の記録情報から、情報処理装置またはコンテンツ利用アプリケーションに対応する識別情報または属性情報、すなわち装置やアプリケーションのメーカ、種別、バージョン、シリアル番号などを取得する処理を実行する。これらの取得情報に基づいて、取得情報に対応するセキュリティチェックコードを選択して、選択コードに基づくセキュリティチェック処理を実行する。なお、セキュリティチェック処理に必要となる装置構成情報などのプレーヤ情報は、例えば再生アプリケーションやセキュアVMの情報取得処理によって取得される。
[6.情報処理装置に対する暗号鍵配布構成とコンテンツコードの暗号化および利用処理構成]
先に説明したように、セキュアVM361は、情報記録媒体に記録されたコンテンツコードに含まれるセキュリティチェックコードに基づくセキュリティチェック処理および変換テーブルに基づく変換処理に適用するパラメータ算出処理などを実行する。この処理に際して、セキュアVM361は、プレーヤ証明書の正当性検証処理を実行し、正当性が確認されたことを条件として、該プレーヤ証明書の記録情報から、情報処理装置またはコンテンツ利用アプリケーションを判別し、判別情報に対応するセキュリティチェックコードを選択して、選択コードに基づくセキュリティチェック処理を実行し、前述した変換テーブル(Fixup−Table)を適用したデータ変換処理において、コンテンツの変換に際して必要なパラメータ算出を実行する。
変換テーブルに従って実行されるデータの置き換えは、先に説明したように、
(a)変換データ
(b)識別子設定変換データ(Forensic Mark)
これらのデータを適用した変換が実行される。
セキュリティチェックコードによるセキュリティチェックや、変換テーブルに従って実行されるデータ変換処理は、正しいプレーヤ情報に基づいて選択されたコンテンツコードに従って実行されるべき処理である。しかし、不正な再生装置が、プレーヤ証明書を他の装置からコピーするなどして、不正なプレーヤ情報を使用した処理が行なわれる可能性がある。プレーヤ証明書の検証のみによって、情報処理装置や再生アプリケーションに対応するプレーヤ種別を判定し、プレーヤ対応のコンテンツコードに基づくセキュリティチェック処理やデータ変換処理を行なうと、本来必要なセキュリティチェックをすり抜けてコンテンツ利用が行なわれ場合があり、また、本来コンテンツに埋め込むべき識別子設定変換データ(Forensic Mark)が正しいものと異なるプレーヤ情報を含むデータとなってしまう場合が発生し得る。このような不正なプレーヤ情報が埋め込まれたコンテンツを追跡しても、不正プレーヤをつきとめることはできないという問題が発生する。
また、例えば、極めて厳しいセキュリティチェックが要求されるPCなどの情報処理装置が、甘いセキュリティチェックのみでコンテンツ利用を許容される再生専用機器のプレーヤ証明書をコピーしてPCに格納し、PCにおいて、再生専用機器のプレーヤ証明書を適用してプレーヤ判別を実行させて、甘いセキュリティチェックのみを実行してコンテンツを利用してしまうといった事態も発生する可能性がある。
このように、情報処理装置が正しいプレーヤ情報を提供しない場合には、コンテンツの利用が不正に行なわれ、また不正追跡も困難になる。すなわち、誤ったプレーヤ情報を提示すると、正しいセキュリティチェックが実行されず、また変換テーブルに基づく正しいデータ変換がなされず、コンテンツに対するプレーヤ情報の埋め込みも正しく行われない可能性がある。以下では、このような不正行為を防止する構成について説明する。
すなわち、装置側において不正なプレーヤ情報を提示する場合においても、各プレーヤに応じた正しいコンテンツコードを選択させて、コンテンツを利用する情報処理装置や再生アプリケーションに対応する正規のセキュリティチェック処理を実行させ、さらに、前述した変換テーブルを適用したデータ変換処理においても正しいプレーヤ情報の埋め込みを実行させる構成について説明する。
プレーヤ対応の正しいコンテンツコードを選択して実行させるため、本処理例では、コンテンツ再生を実行する多数の情報処理装置の各々に対して、特定のルールに従った固有の暗号鍵のセットを配布し、さらに、情報記録媒体に記録しセキュアVMによって実行されるコンテンツコードの少なくとも一部を、情報処理装置に配布した暗号鍵を適用した暗号化データとする。以下、暗号鍵配布構成および処理例について説明する。
まず、暗号鍵配布構成について図12以下を参照して説明する。鍵管理センタは、各プレーヤ、すなわちコンテンツ再生を実行する再生アプリケーションを実行する情報処理装置に対して、所定の暗号鍵セットを配布する。なお、暗号鍵セットの配布対象は、再生アプリケーション、あるいは再生アプリケーションを実行する情報処理装置、いずれの設定も可能である。ただし、鍵管理センタは、暗号鍵セットの配布先についての登録情報を保持する。たとえば各再生アプリケーションの固有識別子、あるいは情報処理装置の固有識別子と配布暗号鍵セットとを対応付けた登録テーブルを保持し管理する。
図12(a)は、鍵管理センタが各プレーヤに配付する鍵セットを説明する図である。なお、以下の説明において、「プレーヤ」は、再生アプリケーション、あるいは再生アプリケーションを実行する情報処理装置いずれをも含む概念であり、鍵管理センタが配付する暗号鍵セットの配布対象である。
鍵管理センタは、図12(a)に示すように、情報処理装置あるいは再生アプリケーションであるプレーヤの製造を行なうプレーヤ製造エンティテイに対応して設定される鍵[プレーヤ製造エンティテイ鍵(Manufacture鍵)]を頂点とする鍵ツリーを設定し、1つの頂点または分岐点(ノード)からn個(図の例ではn=256)の下位鍵を設定する。例えば、鍵ツリーの頂点にあるプレーヤ製造エンティテイ鍵の直下の2段目の鍵は、例えばプレーヤ製造エンティテイの製造販売するプレーヤのモデル毎にG1−1〜G1−256まで、256個の異なるグループ鍵G1が設定される。
さらに、3段目の鍵は、さらに各G1レイヤのモデルから派生した、例えば後継機器としてのG2モデルについて、G2−1〜G2−256*256の鍵、すなわち2562個の異なるグループ鍵G2が設定される。以下、3段目では、各モデルに対するバージョンごとに2563の異なるグループ鍵G3、4段目では、2564個の異なるグループ鍵G4と続き、最下層のノード(リーフ)は、各プレーヤ1台ごとに割り当てられ、各プレーヤに対応するプレーヤ固有鍵[Player_Specific_Key]が設定される。
各プレーヤは、自プレーヤに対応する最下層の1つのノード(リーフ)から階層構成の頂点ノードに至るルートにある各ノード対応の鍵を保有する。例えばグループ鍵G1,631は、図に示す階層構成中、最下層のリーフに対応するプレーヤ中、右半分のリーフ対応のプレーヤには配付されるが、左半分のリーフ対応のフレーヤには配付されない。また、グループ鍵G2,632は、図に示す階層構成中、最下層のリーフに対応するプレーヤ中、右側1/4のリーフ対応のプレーヤには配付されるが、それ以外の左側3/4のリーフ対応のフレーヤには配付されない。このように、各プレーヤに対して配付される暗号鍵のセットは異なる設定とされる。具体的なプレーヤの格納鍵設定については、図12(c)を参照して後段で説明する。なお、各プレーヤはプレーヤ秘密鍵[Private_Key]と、プレーヤ対応の公開鍵を格納した公開鍵証明書[Player_Cert]も割り当てられる。
なお、図12(a)に示す階層構成中の頂点ノード〜リーフに設定される鍵を階層鍵またはノード鍵と呼ぶ。なお、各階層に対応するモデルやバージョンの設定例は一例であり、モデルやバージョンに限らず、たとえばライセンシ、プラットフォーム、モデル、バージョン、などより多層の区分による階層設定も可能であり、さらに販売地域でグループ分けしたり、製造日時でグループ分けをするなどの設定も可能である。このように、各階層の設定は、様々な設定が可能である。
プレーヤ対応の公開鍵を格納した公開鍵証明書[Player_Cert]には、プレーヤ識別子[PlayerID]が格納される。プレーヤ識別子は各プレーヤ個々に異なる識別子であり、例えば0x00000000〜0xFFFFFFFFの各値が、各プレーヤに対応するプレーヤIDとして設定される。
図12(b)は、プレーヤ製造エンティテイが管理する鍵であり、これらは、プレーヤ製造エンティテイが製造するプレーヤ毎に設定するなど、プレーヤ製造エンティテイにおいて決定したルールに従って生成される鍵である。プレーヤ製造エンティテイは、各鍵とその鍵の対応するプレーやのモデルやバージョンを対応付けた管理情報を保持する。
図12(c)は、プレーヤが保持する鍵セットを示している。先に説明したように、各プレーヤは、自プレーヤに対応する最下層の1つのノード(リーフ)から階層構成の頂点ノードに至るルートにある各ノード対応の鍵を保有する。図12(c)に示す鍵セット中、プレーヤ製造エンティテイ鍵(Manufacture鍵)〜プレーヤ固有鍵(Player_Specific_Key)、さらに、プレーヤ秘密鍵(Private_Key)およびプレーヤ公開鍵証明書(PLAYER_CERT)は鍵管理センタから配布される鍵データである。さらに、プレーヤは、プレーヤ製造エンティテイの管理するプレーヤ製造エンティテイ鍵(Manufacture鍵#n)を保持する。なお、これらの各鍵情報は、プレーヤとしての情報処理装置の製造段階で情報処理装置のメモリに記憶格納される。あるいは、ネットワークを介して取得する構成としてもよい。
なお、図12(c)に示すプレーヤが保持する鍵セット中、[*]印を付与した鍵、すなわち、鍵管理センタが配付するプレーヤ製造エンティテイ鍵(Manufacture鍵)〜プレーヤ固有鍵(Player_Specific_Key)、およびプレーヤ秘密鍵(Private_Key)と、プレーヤ製造エンティテイが配付するプレーヤ製造エンティテイ鍵(Manufacture鍵#n)は、プレーヤがセキュアに保持する必要がある鍵であり、漏洩を防止することが必要である。公開鍵証明書については、特に秘密に保持する必要はない。
各プレーヤに対して配付される暗号鍵のセットは、先に説明したように、階層構成のプレーヤ対応のリーフから頂点ノードに至る各ノードのグループ鍵、プレーヤ固有鍵であり、異なる設定とされる。具体的なプレーヤの格納鍵設定については、図12(c)を参照して後段で説明する。なお、各プレーヤはプレーヤ秘密鍵[Private_Key]と、プレーヤ対応の公開鍵を格納した公開鍵証明書[Player_Cert]も割り当てられる。
次に、図13を参照して情報記録媒体に格納するコンテンツコードの暗号化処理態様について説明する。先に、図10を参照して説明したように、コンテンツコードは、以下の4つのカテゴリに分類可能である。
(a)全コンテンツ&全プレーヤ(装置または再生アプリ)共通に利用されるコンテンツコード
(b)コンテンツ固有のコンテンツコード
(c)プレーヤ(装置または再生アプリ)固有のコンテンツコード
(d)コンテンツ&プレーヤ(装置または再生アプリ)固有のコンテンツコード
これらの各々のコンテンツコードは、先に図9を参照して説明したように、個別のファイル、あるいは集積されて1つのファイルとして情報記録媒体に格納される。これらの各カテゴリのコンテンツコードは、それぞれコードの制作を行なうエンティテイが異なる場合がある。例えば、(b)コンテンツ固有データに対応するコンテンツコードは、コンテンツの製作者であるスタジオなどが設定する。また、(c)プレーヤ(装置または再生アプリ)固有データについては、プレーヤとしての再生装置や、再生アプリケーションを制作するエンティテイが生成する場合が多い。
このように、異なるエンティテイによって生成されるコンテンツコードが、情報記録媒体に記録されるまでのシーケンスについて、図13を参照して説明する。図13には、上述した4つのカテゴリに対応するコンテンツコードの構成データの情報記録媒体に対する記録過程を示している。すなわち、
(a)全コンテンツ&全プレーヤ(装置または再生アプリ)共通に利用されるコンテンツコード:例えば、スタートアップルーチン、共通ルーチン(外部記録へのアクセスなど)、プレーヤ識別ルーチン用のコードなどが含まれる。
(b)コンテンツ固有のコンテンツコード:例えば、変換テーブル(Fix Up Table)情報、タイトル初期化(Fix Up Table生成処理を含む)処理コードなどが含まれる。
(c)プレーヤ(装置または再生アプリ)固有のコンテンツコード:例えば、ランネィティブ(Run Native)実行部分、ネィティブコード(Native Code)、プレーヤ固有のチェックルーチンに適用するコードなどが含まれる。
(d)コンテンツ&プレーヤ(装置または再生アプリ)固有のコンテンツコード:例えば、ディスカバリRAM(Discovery RAM実行部分)、ディスカバリラム(Discovery RAM)用比較データなどのコードが含まれる。
これら4つの異なるカテゴリのコンテンツコードである。
これらのコンテンツコードは、それぞれ異なるエンティテイ、すなわち、コンテンツの制作、編集を行なうスタジオ、オーサリング会社、また、プレーヤ(装置または再生アプリ)の製造メーカなど、異なるエンティテイによって制作される場合がある。
これらの各コンテンツコード構成部品生成エンティテイは、ステップS201において、先に図12を参照して説明したライセンシ/プラットフォーム/モデル/バージョン/などに固有な鍵、すなわち先に図12を参照して説明したノード鍵(グループ鍵[Gn]やプレーヤ固有鍵)を用いてコンテンツコードの一部を暗号化する前提でコンテンツコードを準備する。
さらに、各コンテンツコード構成部品生成エンティテイは、各コンテンツコードの暗号化構成情報を持つコンテンツコード暗号構成情報642を生成して、生成したコンテンツコードとともに、鍵管理センタへ送付する。コンテンツコード暗号構成情報642は、図に示すように、コンテンツコード識別情報としてのコンテンツコード番号と、暗号化区間情報と、暗号化区間に適用する鍵の指定情報との対応データによって構成される。
鍵管理センタでは、各コンテンツコード構成部品生成エンティテイから受領したコンテンツコードに対して、コンテンツコード暗号構成情報642に基づく暗号化を実行する。すなわち、鍵管理センタは、図12(a)を参照して説明した階層構成の鍵情報からなる発行済みの鍵データベースから、コンテンツコード暗号構成情報642において指定された鍵を取得し、コンテンツコード暗号構成情報642において指定されたコンテンツコードの指定部分を暗号化する。
このようにして、図13に示す暗号化済みコンテンツコード641が生成され、この暗号化済みコンテンツコード641が情報記録媒体製造エンティテイであるディスク工場に送付され、ディスクに記録される。なお、コンテンツコード暗号構成情報642についても、ディスク工場に送付され、ディスクに記録される。なお、コンテンツコード暗号構成情報642は、コンテンツコードの構成データに含めて情報記録媒体に記録するか、あるいは固有の独立ファイルとして情報記録媒体に記録する設定とする。
暗号化済みコンテンツコード641として、図13には4つのコンテンツコードファイル[00000.svm]〜[00003.svm]を示している。これらのコンテンツコードは、それぞれ部分的に暗号化された暗号化データを含む。これらの暗号化に適用した暗号鍵は、例えば図12(a)を参照して説明したグループ鍵Gnであり、コンテンツコード暗号構成情報642に基づいて選択された鍵を適用して暗号化がなされている。
例えば、コンテンコードファイル00000.svmが、図12(a)に示すグループ鍵G1,631を適用して暗号化されているとすると、この暗号化データを復号できるのは、グループ鍵G1,631を保持しているプレーヤのみとなり、図12に示す階層構成の最下層のリーフに対応するプレーヤ中、右半分のリーフ対応のプレーヤのみがコンテンツコード00000.svmの暗号化部データを利用することができる。左半分のリーフ対応のプレーヤは、グループ鍵G1,631を保持していないので、コンテンツコード00000.svmの暗号化部データを利用することができない。
同様に、例えばコンテンコードファイル00001.svmが、図12(a)に示すグループ鍵G2,632を適用して暗号化されているとすると、この暗号化データを復号できるのは、グループ鍵G2,632を保持しているプレーヤのみとなり、図12に示す階層構成の最下層のリーフに対応するプレーヤ中、右側の1/4のリーフ対応のプレーヤのみがコンテンツコード00001.svmの暗号化部データを利用することができる。
このように、コンテンツコードを、グループ鍵Gnあるいはプレーヤ固有鍵を適用して暗号化することで、コンテンツコードを復号して利用可能なプレーヤを限定することが可能となる。コンテンツコードには、前述したようにセキュリティチェック用のセキュリティチェックコードや、コンテンツのデータ変換に適用する変換テーブルが含まれており、セキュリティチェック処理や、データ変換処理を、特定のプレーヤに対してのみ実行可能な設定とすることができる。
従って、プレーヤ証明書を他のプレーヤからコピーするなどの処理によって、不正なプレーヤ証明書を適用したプレーヤ情報提示処理を行なった場合、そのプレーヤ情報対応のプレーヤ固有のコンテンツコードを取得して処理を実行しようとしても、そのコンテンツコードは、プレーヤに格納された暗号鍵セットに含まれるグループ鍵によって復号することが不可能となり、不正なプレーヤ証明書によって識別されたプレーヤ情報に対応するプレーヤ固有のコンテンツコードが不正に適用されることが防止される。
次に、図14を参照してコンテンツコードの異なる生成手法について説明する。各コンテンツコード構成部品生成エンティテイは、ステップS211において、コンテンツコード製作時に、乱数などを適用して生成したオリジナル暗号鍵を用いてコンテンツコードの一部を暗号化する。その後、コンテンツコードの暗号化に用いたオリジナル暗号鍵を、先に図12を参照して説明したノード鍵(グループ鍵[Gn]やプレーヤ固有鍵)、すなわち、ライセンシ/プラットフォーム/モデル/バージョン/などに固有な鍵を用いて暗号化するように鍵管理センタへ依頼する。
各コンテンツコード構成部品生成エンティテイは、オリジナル暗号鍵を適用して暗号化したコンテンツコードとオリジナル暗号鍵、さらに、各コンテンツコードの暗号化構成情報を持つコンテンツコード暗号構成情報642を鍵管理センタへ送付する。コンテンツコード暗号構成情報642は、図に示すように、コンテンツコード識別情報としてのコンテンツコード番号と、暗号化区間情報と、暗号化区間に適用する鍵の指定情報との対応データによって構成される。
鍵管理センタでは、各コンテンツコード構成部品生成エンティテイから受領したオリジナル暗号鍵に対して、コンテンツコード暗号構成情報642に基づく暗号化を実行する。すなわち、鍵管理センタは、図12(a)を参照して説明した階層構成の鍵情報からなる発行済みの鍵データベースから、コンテンツコード暗号構成情報642において指定された鍵を取得し、各コンテンツコード構成部品生成エンティテイから受領したオリジナル暗号鍵を暗号化してコンテンツコードに格納する。
図14に示す例では、コンテンツコードファイル[00000.svm]に設定された暗号化鍵データ643が、オリジナル暗号鍵を暗号化したデータの格納領域である。すなわち、各コンテンツコード構成部品生成エンティテイから受領した複数のオリジナル暗号鍵に対して、それぞれコンテンツコード暗号構成情報642に基づいて選択された暗号鍵、すなわち、図12(a)を参照して説明した階層構成中のいずれかのグループ鍵[Gn]を適用して各オリジナル暗号鍵を暗号化する。
コンテンツコードファイル[00000.svm]〜[00003.svm]に設定された暗号化データは、各コンテンツコード構成部品生成エンティテイが、それぞれ生成したオリジナル暗号鍵によって暗号化されたテータである。
例えば、コンテンツコードファイル[00000.svm]に設定された暗号化鍵データ643の最後尾には、コンテンツコードファイル0003に含まれる暗号化データの暗号化に適用したオリジナル暗号鍵(K03)をグループ鍵[Gn]で暗号化した暗号化データが格納される。
例えば、オリジナル暗号鍵(K03)が、図12(a)に示すグループ鍵G1,631を適用して暗号化されているとすると、この暗号化鍵を復号してオリジナル暗号鍵(K03)を取得できるのは、グループ鍵G1,631を保持しているプレーヤのみとなり、図12に示す階層構成の最下層のリーフに対応するプレーヤ中、右半分のリーフ対応のプレーヤのみとなる。
この結果、オリジナル暗号鍵(K03)を取得し、コンテンツコード00003.svmの暗号化部データを利用することができるのは、図12に示す階層構成の最下層のリーフに対応するプレーヤ中、右半分のリーフ対応のプレーヤのみとなる。左半分のリーフ対応のプレーヤは、グループ鍵G1,631を保持していないので、オリジナル暗号鍵(K03)を取得することができず、コンテンツコード00003.svmの暗号化部データを利用することができない。本処理例では、鍵管理センタでの暗号化処理がオリジナル暗号鍵の暗号化のみであり、迅速な処理が可能となる。また、各コンテンツコード構成部品生成エンティテイから鍵管理センタに送付されるコンテンツコードがすでにオリジナル暗号鍵によって暗号化されているので、情報漏洩の可能性も低減できる。
次に、図15を参照して、プレーヤにおけるコンテンツコードの処理について説明する。コンテンツ再生を実行する情報処理装置のデータ処理としてのセキュアVMは、情報記録媒体に記録されたデータ処理プログラムを含むコンテンツコードを取得し、該コンテンツコードに従ったデータ処理を実行する。このコンテンツコードの少なくとも一部は、図13、図14を参照して説明したようにノード鍵を適用して暗号化されている。
セキュアVMは、コンテンツコードの復号に適用する鍵指定情報、およびコンテンツコード中に設定された暗号化データの位置を示す暗号化データ位置指定情報を情報記録媒体の格納データから取得し、該取得情報に従ってメモリからノード鍵を選択し、暗号化データ位置指定情報に従って復号対象データを特定して、選択ノード鍵を適用した復号処理を実行する。
図15は、図14の設定を持つコンテンツコードのプレーヤ側の処理を説明する図であり、先に図12(c)を参照して説明したプレーヤ格納鍵650を適用したセキュアVM652による処理を説明する図である。情報記録媒体に格納されたコンテンツコードは、セキュアVM652によって読み取られて処理がなされる。セキュアVM652は、セキュアVM用メモリ651に情報記録媒体から読み出したコンテンツコードを格納して処理を実行する。
なお、プレーヤ格納鍵650には、先に図12を参照して説明した鍵、すなわち、鍵管理センタが配付するプレーヤ製造エンティテイ鍵(Manufacture鍵)〜プレーヤ秘密鍵(Private_Key)と公開鍵証明書、およびプレーヤ製造エンティテイが配付するプレーヤ製造エンティテイ鍵(Manufacture鍵#n)を示している。
セキュアVM652は、まず、ステップS251において、セキュアVM用メモリ651に格納されたメモリ格納データ661から、処理対象のコンテンツコードに設定された暗号化鍵データ[X]662を取得し、このコンテンツコードに含まれる記録データあるいは他のデータファイルから取得した鍵指定情報に基づいて、暗号化鍵データ[X]662の復号処理に適用する鍵をプレーヤ格納鍵650から選択する。鍵指定情報は、先に、図13、図14を参照して説明したコンテンツコード暗号構成情報642に基づいて情報記録媒体に記録される情報である。
本処理例では、鍵指定情報は、鍵ID=4、すなわち、プレーヤ固有鍵(Player_Specific_Key)を指定する情報であったとする。セキュアVM652は、鍵指定情報[鍵ID=4]に基づいて、プレーヤ格納鍵650からプレーヤ固有鍵(Player_Specific_Key)を選択し、暗号化鍵データ[X]662の復号処理を実行する。
この復号処理により、コンテンツコードの一部を暗号化したオリジナル暗号鍵[K]が取得される。セキュアVM652は、ステップS252において、取得したオリジナル暗号鍵[K]を適用して、コンテンツコードの暗号化部に対応する入力データ663を復号し、復号結果を出力データ664としてセキュアVM用メモリ651に格納する。この処理によって、プレーヤは、例えばプレーヤ固有のコンテンツコードの利用が可能となる。
なお、このようなセキュアVM652における処理は、例えば、コンテンツ再生処理を実行する再生(プレーヤ)アプリケーションからセキュアVMに対する割り込み(INTRP)と、セキュアVMから再生(プレーヤ)アプリケーションに対する応答(Call)処理のシーケンスによって実行される。コンテンツコードの復号処理は、例えば下記の関数の呼び出しによって実行される。
CALL_AES(出力先アドレス,入力データアドレス,AES処理ブロック数,鍵アドレス,鍵ID)
上記関数は、鍵アドレスで指定される128bitの値(図15中の暗号化鍵データ[X]662)を、鍵ID(図15ではID=4)で指定されたプレーヤがもつ秘密鍵で復号する処理を実行し、復号結果を復号鍵として、入力データアドレスからAES処理ブロック数*16バイト分のデータを復号し、出力先アドレスへ復号後のデータを出力する処理を実行させる関数である。
さらに、図16を参照して、プレーヤにおけるコンテンツコードの異なる処理例について説明する。図16は、プレーヤ格納鍵650中のプレーヤ秘密鍵[Private_Key]を適用した署名処理を説明する図である。
セキュアVM652は、セキュアVM用メモリ651に格納したメモリ格納データ671の入力データ672に対して、ステップS272において、例えばSHA−1などのハッシュ関数を適用してハッシュ値を算出する。なお、このハッシュ値算出の前ステップとして、ステップS271においてプレーヤ情報やメディア情報を加算してもよい。次に、ステップS273において、プレーヤ格納鍵650からプレーヤ秘密鍵[Private_Key]を取得して、ハッシユ値に対する電子署名、例えばEC−DSAアルゴリズムに基づく電子署名を施し、署名を含むデータを出力データ673としてセキュアVM用メモリ651に格納する。その後、コンテンツコードの実行に際して、出力データ673を取得して署名検証処理を実行することで、プレーヤの正当性を検証することが可能となる。
なお、この署名設定処理は、セキュアVM652による例えば下記の関数の呼び出しによって実行される。
CALL_PrivateKey(出力先アドレス,入力データアドレス,署名対象データ長,Option指定,鍵ID)
上記関数は、入力データアドレスから署名対象データ長分のデータを取り出し、Option指定されるMedia/Player情報をバイト列に追加したものをSHA1関数でハッシュ値に変換し、変換結果にプレーヤの持つ秘密鍵で署名して出力先アドレスに書き込む処理を実行させる関数である。
以上、説明したように、先に図12(a)を参照して説明した階層構成上の各ノードに設定されたノード鍵のセットを情報記録媒体に配付し、ノード鍵を選択適用した暗号化処理を実行したコンテンツコードを生成して情報記録媒体に格納することで、特定の選択されたプレーヤのみによって処理可能なコンテンツコードを提供することが可能となる。
プレーヤに対する鍵の配布構成は、先に図12を参照して説明した構成のみならず、様々な設定が可能である。これらの例について、図17、図18を参照して説明する。図17に示す例は、階層構成については先に図12(a)を参照して説明した構成と同様の構成であり、各プレーヤは、自プレーヤに対応する最下層の1つのノード(リーフ)から階層構成の頂点ノードに至るルートにある各ノード対応の鍵を保有する。すなわち、図17(b)に示すように、プレーヤ製造エンティテイ鍵(Manufacture鍵)〜プレーヤ固有鍵(Player_Specific_Key)、さらに、プレーヤ秘密鍵(Private_Key)およびプレーヤ公開鍵証明書(PLAYER_CERT)が鍵管理センタから配布される。
図17に示す例では、さらに、鍵管理センタは、モデル鍵[Model鍵#n]、バージョン鍵[Version#n]を設定し、これらの各鍵からプレーヤに対応するモデル、バージョン対応の鍵を選択してプレーヤに提供する。
図18に示す例も、階層構成については先に図12(a)を参照して説明した構成と同様の構成であり、各プレーヤは、自プレーヤに対応する最下層の1つのノード(リーフ)から階層構成の頂点ノードに至るルートにある各ノード対応の鍵を保有する。すなわち、図17(b)に示すように、プレーヤ製造エンティテイ鍵(Manufacture鍵)〜プレーヤ固有鍵(Player_Specific_Key)、さらに、プレーヤ秘密鍵(Private_Key)およびプレーヤ公開鍵証明書(PLAYER_CERT)が鍵管理センタから配布される。
図18に示す例では、さらに、鍵管理センタは、システム鍵[A]として、モデル固有値[Model固有値#An]、バージョン固有値[Version固有値#An]を設定し、これらの各固有値からプレーヤに対応するモデル、バージョン対応の固有値を選択してプレーヤに提供する。
システム鍵は複数定義可能であり、例えば、再生専用機器としてのCE機や、PCなど大きく異なるシステム間で分けることが可能である。モデル固有値[Model固有値#An]、バージョン固有値[Version固有値#An]はシステム鍵で暗号化された状態でプレーヤが保持し、システム鍵で復号することによってモデルやバージョン固有の鍵として使用できる設定とする。このように設定することにより、例えばモデル(プラットフォーム)としてセキュアなシステムであれば、バージョンに関わらずモデル全体に対して同一のコンテンツコードを適用することも可能である一方、モデルのうちの一つのバージョンが脆弱である場合には、該モデルのあるバージョンのみにコンテンツコードを適用するということもできる。
図17、図18のいずれにおいても、階層構成内のノード鍵を適用した処理構成については、先に図12〜図16を参照して説明した処理と同様の処理が可能であり、特定のプレーヤを選択して、選択プレーヤにおいてのみ利用可能なコンテンツコードを設定して情報記録媒体に格納して提供することが可能となり、不正なプレーヤ情報を提示して不正にコンテンツコードを適用した不正処理を防止することが可能となる。
次に、図19に示すフローチャートを参照して、コンテンツコード中のセキュリティチェックコードを適用したセキュリティチェック処理および変換テーブルを適用した変換処理を伴うコンテンツ再生シーケンスについて説明する。
まず、ステップS301において、セキュアVMは情報記録媒体からコンテンツコードを取得し、コンテンツコードにプレーヤ情報の取得要求が含まれているか否かを判定する。これは、例えば、図9に示すディレクトリ設定の場合、プレーヤ情報の判別に適用するコードを格納したコンテンツコードファイル[00000.svm]を読み取って判定する。
コンテンツコードにプレーヤ情報の取得要求が含まれていない場合は、ステップS306に進む。コンテンツコードにプレーヤ情報の取得要求が含まれている場合は、ステップS302に進み、コンテンツコードに応じて、セキュリティチェックに必要なプレーヤ情報を取得する。これらの情報には、例えば図11を参照して説明したプレーヤ証明書などが含まれる。
次に、ステップS303において、プレーヤ対応のコンテンツコードを取得し、ステップS304において、コンテンツコードに含まれる暗号化データの復号鍵を取得し、復号を実行する。この処理態様としては様々であり、例えば、図13を参照して説明したコンテンツコードの設定では、セキュアVMは、情報処理装置内のメモリに格納された暗号鍵セットから指定ノード鍵(グループ鍵など)を取得して、コンテンツコードの暗号化データの復号を実行する。図14に示すコンテンツコードの設定の場合は、先に図15を参照して説明したように、情報処理装置内のメモリに格納された暗号鍵セットから指定ノード鍵(グループ鍵など)を取得して、コンテンツコードに含まれるオリジナル暗号鍵の暗号化データを復号してオリジナル暗号鍵を取得した後、取得したオリジナル暗号鍵を適用してコンテンツコードに含まれる暗号化データの復号を実行する。なお、鍵指定情報や、暗号化データの位置情報は、コンテンツコードあるいはその他のデータファイルから取得される。
ステップS305において、コンテンツコードの復号に成功したか否かを判定し、失敗した場合は、処理を中止して終了する。この場合は、コンテンツコードに対応するプレーヤ対応の正しい鍵適用がなされなかったことを意味し、この場合はコンテンツコードを利用した処理、例えばセキュリティチェック処理、あるいは変換テーブルに基づくコンテンツのデータ変換処理は実行されず、結果としてコンテンツの利用が禁止される。
ステップS305において、コンテンツコードの復号に成功したと判定されると、ステップS306に進みコンテンツコードを利用した処理が実行される。すなわち、セキュリティチェック処理、あるいは変換テーブルに基づくコンテンツのデータ変換処理が実行され、コンテンツの利用が行なわれる。
なお、処理対象のコンテンツコードによって、セキュアVMの実行する処理は異なる。例えば、コンテンツコードがセキュリティチェックコードである場合は、コンテンツコードに基づくセキュリティチェック処理を実行し、コンテンツコードが、情報記録媒体格納コンテンツの構成データのデータ変換処理に適用するデータ生成処理コードである場合は、コンテンツコードに基づいて、情報記録媒体格納コンテンツのデータ変換処理に適用するデータ生成を実行する。また、コンテンツコードが、情報記録媒体格納コンテンツの構成データの一部に情報処理装置またはコンテンツ利用アプリケーションに対応する識別情報を埋め込むデータ変換処理に適用するデータ生成処理コードである場合は、コンテンツコードに基づいて、識別情報を埋め込むデータ変換処理に適用するデータ生成を実行する。
[7.情報処理装置の構成]
次に、図20を参照して、上述した再生(プレーヤ)アプリケーションおよびセキュア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には、例えば、前述のプレーヤ証明書、さらに、プレーヤ証明書の署名検証などに適用する管理センタの公開鍵、さらに、ドライブとの認証処理などに際して適用するホスト対応秘密鍵、ホスト対応の公開鍵証明書、さらに、公開鍵証明書の無効化リストとしてのリボケーションリストなどが格納される。
コンテンツ再生またはコンテンツの外部出力に際しては、情報記録媒体から取得したデータ変換処理プログラムを適用して、暗号化コンテンツの復号と、変換テーブルの復元、変換テーブルの格納データに基づく変換データの書き込み処理など、先に説明した処理シーケンスに従った処理を実行する。
[8.情報記録媒体製造装置および情報記録媒体]
次に、情報記録媒体製造装置および情報記録媒体について説明する。すなわち、上述したコンテンツ再生処理において適用される情報記録媒体の製造装置、方法、および情報記録媒体について説明する。
情報記録媒体製造装置は、例えば、先に図1を参照して説明した記録データを格納した情報記録媒体100を製造する装置である。情報記録媒体100には、セキュリティチェックコードや変換テーブルを含むコンテンツコードが格納される。コンテンツコードは、図13、図14を参照して説明したように、一部に様々なノード鍵あるいは乱数などによって生成されたオリジナル暗号鍵を適用して暗号化されたデータを含むコンテンツコードである。
情報記録媒体製造装置は、図21に示すように、情報記録媒体に記録するコンテンツデータを格納したコンテンツファイルを生成するコンテンツファイル生成手段901と、コンテンツの利用に際して実行すべきセキュリティチェック処理用のプログラムを含むコンテンツコードを格納したコンテンツコードファイルを生成するコンテンツコードファイル生成手段902と、コンテンツファイル生成手段901において生成したコンテンツファイル、およびコンテンツコードファイル生成手段902において生成したコンテンツコードファイルを情報記録媒体910に記録する記録手段903を有する。
コンテンツコードファイル生成手段902は、先に、図9を参照して説明たように、情報処理装置またはコンテンツ利用アプリケーションの種別に対応する複数のコンテンツコードファイルの生成処理を実行する構成である。コンテンツコードファイルに格納されるコンテンツコードは、先に図13、図14を参照して説明したように、一部に様々なノード鍵あるいは乱数などによって生成されたオリジナル暗号鍵を適用して暗号化されたデータを含むコンテンツコードである。
コンテンツコードファイル生成手段902は、各情報処理装置または再生アプリケーションを最下層ノードであるリーフに対応付けた階層構成を持つ鍵ツリー上のいずれかのノードに対応するノード鍵を適用して暗号化した暗号化データを含むコンテンツコードを格納したコンテンツコードファイルを生成する。具体的なコンテンツコードの暗号化態様としては、先に図13、図14を参照して説明した態様がある。すなわち、コンテンツコードファイル生成手段902は、コンテンツコードの構成データを、ノード鍵を直接適用して暗号化したコード情報暗号化データを含むコンテンツコードを格納したコンテンツコードファイルを生成するか、あるいは、コンテンツコードの構成データをノード鍵とは異なる固有暗号鍵(オリジナル暗号鍵)で暗号化したコード情報暗号化データと、固有暗号鍵をノード鍵で暗号化した暗号化鍵データを含むコンテンツコードを格納したコンテンツコードファイルを生成する。
なお、コンテンツコードファイル生成手段902は、情報処理装置に対応するセキュリティチェックコード、および情報記録媒体格納コンテンツの構成データのデータ変換処理に適用するデータ生成処理コードの少なくともいずれかのコードを含むコンテンツコードを格納したコンテンツコードファイルを生成する構成であり、また、情報記録媒体格納コンテンツの構成データの一部に情報処理装置またはコンテンツ利用アプリケーションに対応する識別情報を埋め込むデータ変換処理に適用するデータ生成処理コードを含むコンテンツコードを格納したコンテンツコードファイルを生成する。
このような、情報記録媒体製造装置によって生成された情報記録媒体910には、図1他を参照して説明した各種のデータが記録される。具体的には、少なくともコンテンツデータを格納したコンテンツファイルと、コンテンツの利用に際して実行すべきセキュリティチェック処理用のプログラム、および情報記録媒体格納コンテンツの構成データのデータ変換処理に適用するデータ生成処理コードの少なくともいずれかのコードを含むコンテンツコードを格納したコンテンツコードファイルとを含む構成とされる。
情報記録媒体910に記録されるコンテンツコードファイルは、コンテンツコードの構成データを暗号化した暗号化データを含む。具体的なコンテンツコードの暗号化態様としては、先に図13、図14を参照して説明した態様がある。すなわち、コンテンツコードの構成データを、ノード鍵を直接適用して暗号化したコード情報暗号化データを含むコンテンツコードを格納したコンテンツコードファイルや、コンテンツコードの構成データをノード鍵とは異なる固有暗号鍵(オリジナル暗号鍵)で暗号化したコード情報暗号化データと、固有暗号鍵をノード鍵で暗号化した暗号化鍵データを含むコンテンツコードを格納したコンテンツコードファイルなどが格納される。
なお、情報記録媒体910に記録されるコンテンツコードファイルは、情報処理装置に対応するセキュリティチェックコード、および情報記録媒体格納コンテンツの構成データのデータ変換処理に適用するデータ生成処理コードの少なくともいずれかのコードを含むコンテンツコードを格納したコンテンツコードファイルであり、また、情報記録媒体格納コンテンツの構成データの一部に情報処理装置またはコンテンツ利用アプリケーションに対応する識別情報を埋め込むデータ変換処理に適用するデータ生成処理コードを含むコンテンツコードを格納したコンテンツコードファイルが含まれる。
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
例えば、プログラムは記録媒体としてのハードディスクやROM(Read Only Memory)に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、CD−ROM(Compact Disc Read Only Memory),MO(Magneto optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することができる。
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。