以下、図面を参照しながら本発明の情報処理装置、および情報処理方法、並びにコンピュータ・プログラムの詳細について説明する。なお、説明は、以下の記載項目に従って行う。
1.情報記録媒体の格納データおよび再生処理
2.情報記録媒体に対するコンテンツ記録処理の詳細
(2−1)シャッフル処理
(2−2)排他論理和演算(EXOR)処理
(2−3)ローテーション処理
3.情報処理装置の構成例
[1.情報記録媒体の格納データおよび再生処理]
まず、情報記録媒体の格納データおよび情報処理装置(再生装置)によるコンテンツ再生処理について説明する。図1に、本発明の処理の適用可能なコンテンツの格納された情報記録媒体100および情報処理装置(再生装置)150の構成を示す。ここでは、コンテンツ格納済みディスクとしてのROMディスクの情報格納例を示す。情報処理装置(再生装置)150は、例えばPC、あるいは再生専用装置など、様々な情報処理装置であり、情報記録媒体100からのデータ読み取り処理を実行するドライブ120を有する。
情報記録媒体100としてのROMディスクは、例えば、Blu−rayディスク、DVDなどの情報記録媒体であり、正当なコンテンツ著作権、あるいは頒布権を持ついわゆるコンテンツ権利者の許可の下にディスク製造工場において製造された正当なコンテンツを格納した情報記録媒体である。なお、以下の実施例では、情報記録媒体の例としてディスク型の媒体を例として説明するが、本発明は様々な態様の情報記録媒体を用いた構成において適用可能である。
図1に示すように、情報記録媒体100には、スクランブル処理および暗号化処理の施された暗号化コンテンツ111と、ブロードキャストエンクリプション方式の一態様として知られる木構造の鍵配信方式に基づいて生成される暗号鍵ブロックとしてのMKB(Media Key Block)112、情報記録媒体個別、あるいは所定枚数単位の情報記録媒体毎の識別情報として設定されるボリュームID113、コンテンツのコピー・再生制御情報としてのCCI(Copy Control Information)等を含む使用許諾情報114、コンテンツ復号処理に適用するタイトル鍵を生成するために必要とする情報としての記録シード(REC SEED)等から構成されるタイトル鍵データ115、さらに、情報記録媒体100に格納されたコンテンツ毎、あるいは管理ユニット毎にどのような態様のスクランブル処理が施されているかの情報を格納したスクランブルルール116が格納されている。
以下、これらの各種情報の概要について説明する。
(1)暗号化コンテンツ111
情報記録媒体100には、様々なコンテンツが格納される。例えば高精細動画像データであるHD(High Definition)ムービーコンテンツなどの動画コンテンツのAV(Audio Visual)ストリームや特定の規格で規定された形式のゲームプログラム、画像ファイル、音声データ、テキストデータなどからなるコンテンツである。これらのコンテンツは、特定のAVフォーマット規格データであり、特定のAVデータフォーマットに従って格納される。具体的には、例えばBlu−rayディスクROM規格データとして、Blu−rayディスクROM規格フォーマットに従って格納される。これらをメインコンテンツと呼ぶ。
さらに、例えばサービスデータとしてのゲームプログラムや、画像ファイル、音声データ、テキストデータなどがサブコンテンツとして格納される場合もある。サブコンテンツは、特定のAVデータフォーマットに従わないデータフォーマットを持つデータである。すなわち、Blu−rayディスクROM規格外データとして、Blu−rayディスクROM規格フォーマットに従わない任意のフォーマットで格納可能である。これらをサブコンテンツと呼ぶ。
メインコンテンツ、サブコンテンツとともに、コンテンツの種類としては、音楽データ、動画、静止画等の画像データ、ゲームプログラム、WEBコンテンツなど、様々なコンテンツが含まれ、これらのコンテンツには、情報記録媒体100からのデータのみによって利用可能なコンテンツ情報と、情報記録媒体100からのデータと、ネットワーク接続されたサーバから提供されるデータとを併せて利用可能となるコンテンツ情報など、様々な態様の情報が含まれる。情報記録媒体に格納されるコンテンツは、区分コンテンツ毎の異なる利用制御を実現するため、区分コンテンツ毎に異なる鍵(タイトル鍵)が割り当てられ暗号化されて格納される。1つのタイトル鍵を割り当てる単位をコンテンツ管理ユニット(CPSユニット)と呼ぶ。
(2)MKB
MKB(Media Key Block)112は、ブロードキャストエンクリプション方式の一態様として知られる木構造の鍵配信方式に基づいて生成される暗号鍵ブロックである。MKB111は有効なライセンスを持つユーザの情報処理装置に格納されたデバイス鍵に基づく処理(復号)によってのみ、コンテンツの復号に必要なキーであるメディア鍵(Km)を取得することを可能とした鍵情報ブロックである。これはいわゆる階層型木構造に従った情報配信方式によって、ユーザデバイス(情報処理装置)が有効なライセンスを持つ場合にのみ、鍵取得を可能としたものであり、無効化(リボーク処理)されたユーザデバイスの鍵(メディア鍵)取得を阻止可能としたものである。管理センタはMKBに格納する鍵情報の変更により、特定のユーザデバイスに格納されたデバイス鍵では復号できない、すなわちコンテンツ復号に必要なメディア鍵を取得できない構成を持つMKBを生成することができる。従って、任意タイミングで不正デバイスを排除(リボーク)して、有効なライセンスを持つデバイスに対してのみ復号可能な暗号化コンテンツを提供することが可能となる。コンテンツの復号処理については後述する。
(3)ボリュームID
ボリュームIDは、情報記録媒体個別、あるいは所定枚数単位の情報記録媒体毎の識別情報として設定されるIDである。このボリュームIDは、コンテンツの復号に適用するタイトル鍵の生成情報として利用される。これらの処理については後述する。
(4)使用許諾情報
使用許諾情報には、例えばコピー・再生制御情報(CCI)が含まれる。すなわち、情報記録媒体100に格納された暗号化コンテンツ111に対応する利用制御のためのコピー制限情報や、再生制限情報である。このコピー・再生制御情報(CCI)は、コンテンツ管理ユニットとして設定されるCPSユニット個別の情報として設定される場合や、複数のCPSユニットに対応して設定される場合など、様々な設定が可能である。この情報の詳細については後段で説明する。
(5)タイトル鍵データ
前述したように各コンテンツまたは複数コンテンツの集合は、コンテンツの利用管理のため、各々、個別の暗号鍵(タイトル鍵)を適用した暗号化がなされて情報記録媒体100に格納される。すなわち、コンテンツを構成するAV(Audio Visual)ストリーム、音楽データ、動画、静止画等の画像データ、ゲームプログラム、WEBコンテンツなどは、コンテンツ利用の管理単位としてのユニットに区分され、区分されたユニット毎に異なるタイトル鍵を生成して、復号処理を行なうことが必要となる。このタイトル鍵を生成するための情報がタイトル鍵データであり、例えばコンテンツの一部データなどによって構成される記録シードが利用される。
タイトル鍵データ115を適用した所定の暗号鍵生成シーケンスに従って、各ユニット対応のタイトル鍵が生成され、コンテンツの復号が実行される。
(6)スクランブルルール
前述したように、情報記録媒体100に格納されるコンテンツは、暗号化処理が施され、さらにスクランブル処理がなされている。スクランブル処理は、情報記録媒体100に格納されるコンテンツ毎、あるいはコンテンツ管理ユニット(CPSユニット)毎に異なる態様で実行されている。従って、コンテンツ再生を行なう際には、再生対象のコンテンツに施されているスクランブル処理情報を取得し、実行されているスクランブル処理に対応するスクランブル解除処理を行なうことが必要となる。スクランブルルール116は、情報記録媒体100に格納されたコンテンツ毎、あるいはコンテンツ管理ユニット(CPSユニット)毎のスクランブル態様の情報を記録したデータである。このスクランブルルールは、ライセンスを有する情報処理装置においてのみ解読可能なデータとして情報記録媒体に記録される。例えばセキュアコード、例えばJavaセキュアコードを適用したデータとして記録され、再生装置において設定されるJavaバーチャルマシン内でのセキュアコード解読処理によってのみ解読される。
図1には、情報記録媒体100に格納されたコンテンツの再生処理を実行する情報処理装置150の構成の概略を示している。情報処理装置は、情報岐路めく媒体の格納データの読み取り処理を実行するドライブ120を有する。ドライブ120によって読み取られたデータは、暗号化コンテンツの復号処理およびデコード(例えばMPEGデコード)処理を実行する再生処理実行LSI151に入力される。
再生処理実行LSI151は、暗号化コンテンツの復号処理を実行する復号処理部152と、デコード(例えばMPEGデコード)処理を実行するデコード処理部153を有する。復号処理部152では、メモリ155に格納されたデバイス鍵と、情報記録媒体120からの読み取りデータとに基づいてタイトル鍵を生成し、暗号化コンテンツ111の復号処理を実行する。
復号されたコンテンツはスクランブル処理が実行されている。このスクランブル解除を実行するのが、スクランブル解除実行部154である。復号コンテンツはスクランブル解除実行部154において、スクランブルルール115に基づいて決定されるスクランブル解除処理を実行した後、スクランブル解除データを再度、再生処理実行LSI151に入力し、デコード処理部153において、デコード処理が実行されて出力、再生される。情報処理装置150におけるコンテンツの復号、スクランブル解除処理シーケンスの詳細については後段で説明する。
次に、図2以下を参照して、情報記録媒体に格納されたコンテンツを区分して、区分コンテンツ毎に異なる利用制御を実現するコンテンツ管理構成について説明する。
前述したように、情報記録媒体に格納されるコンテンツは、区分コンテンツ毎の異なる利用制御を実現するため、区分コンテンツ毎に異なる鍵(タイトル鍵)が割り当てられ暗号化処理がなされ、さらにスクランブル処理がなされて格納される。1つのタイトル鍵を割り当てる単位をコンテンツ管理ユニット(CPSユニット)と呼ぶ。
それぞれのタイトル鍵を適用して各ユニットに属するコンテンツを暗号化し、コンテンツ利用に際しては、各ユニットに割り当てられた鍵(タイトル鍵)を取得し、さらにスクランブルルールに対応するスクランブル解除を実行して再生を行う。各タイトル鍵は、個別に管理することが可能であり、例えばあるユニットAに対して割り当てるタイトル鍵は、情報記録媒体から取得可能な鍵として設定する。また、ユニットBに対して割り当てるタイトル鍵は、ネットワーク接続されるサーバにアクセスし、ユーザが所定の手続きを実行したことを条件として取得することができる鍵とするなど、各ユニット対応の鍵の取得、管理構成は、各タイトル鍵に独立した態様とすることが可能である。
1つの鍵を割り当てる単位、すなわち、コンテンツ管理ユニット(CPSユニット)の設定態様について、図2を参照して説明する。
図2に示すように、コンテンツは、(A)タイトル210、(B)ムービーオブジェクト220、(C)プレイリスト230、(D)クリップ240の階層構成を有し、再生アプリケーションによってアクセスされるインデックスファイルとしてのタイトルが指定されると、タイトルに関連付けられた再生プログラムが指定され、指定された再生プログラムのプログラム情報に従ってコンテンツの再生順等を規定したプレイリストが選択され、プレイリストに規定されたクリップ情報によって、コンテンツ実データとしてのAVストリームあるいはコマンドが読み出されて、AVストリームの再生、コマンドの実行処理が行われる。
図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に対応付けて設定される暗号鍵であるタイトル鍵:Ku1を適用して暗号化される。
コンテンツ管理ユニット(CPSユニット)2,272には、タイトル3,213、再生プログラム224、プレイリスト233、クリップ243が含まれ、クリップ243に含まれるコンテンツの実データであるAVストリームデータファイル263がコンテンツ管理ユニット(CPSユニット)2,272に対応付けて設定される暗号鍵であるタイトル鍵:Ku2を適用して暗号化される。
例えば、ユーザがコンテンツ管理ユニット1,271に対応するアプリケーションファイルまたはコンテンツ再生処理を実行するためには、コンテンツ管理ユニット(CPSユニット)1,271に対応付けて設定された暗号鍵としてのタイトル鍵:Ku1を取得して復号処理を実行することが必要であり、復号処理を実行後、アプリケーションプログラムを実行してコンテンツ再生を行なうことができる。コンテンツ管理ユニット2,272に対応するアプリケーションファイルまたはコンテンツ再生処理を実行するためには、コンテンツ管理ユニット(CPSユニット)2,272に対応付けて設定された暗号鍵としてのタイトル鍵:Ku2を取得して復号処理を実行することが必要となる。
スクランブル処理についても、同様であり、コンテンツ管理ユニット毎に異なるスクランブル処理が実行されて情報記録媒体に格納される。CPSユニット1,271に対しては、スクランブルルール#1を適用したスクランブル処理、CPSユニット2,272に対しては、スクランブルルール#1を適用したスクランブル処理を施すなどである。コンテンツ再生時のスクランブル解除に際しては、各スクランブルルールに対応したスクランブル解除処理を実行することが必要となる。なお、スクランブルルールは、CPSユニットに含まれるコンテンツ毎に変更するなどの態様とすることも可能である。
図3は、CPSユニット単位で、異なるスクランブルルールを適用した場合の各コンテンツとCPSユニットとスクランブルルールとの対応を示すテーブルである。図3に示すように、アプリケーション層のインデックスまたはアプリケーションファイル、またはデータグループに対応するコンテンツ管理ユニット(CPSユニット)と、スクランブルルールとが対応づけられている。
コンテンツ再生処理を実行する情報処理装置150は、再生対象のコンテンツ管理ユニット(CPSユニット)を識別し、スクランブルルール116から、再生対象のコンテンツ管理ユニットに対して実行されているスクランブルルールを取得して、適用ルールに対応するスクランブル解除処理を実行して、スクランブルの解除を実行する。
本発明の構成では、情報記録媒体に格納されているコンテンツに適用されているスクランブル処理は同一ではなく、個々のコンテンツ管理ユニット(CPSユニット)あるいはコンテンツ毎に異なる態様であり、再生処理においては、各コンテンツ管理ユニット(CPSユニット)あるいはコンテンツに対して適用されているスクランブルルールに対応したスクランブル解除処理を実行することが必要となる。
次に、図4を参照して、上述したCPSユニット単位の暗号化およびスクランブル処理がなされた暗号化コンテンツおよび各種の鍵生成情報、スクランブルルールを格納した情報記録媒体からコンテンツを取得して再生処理を実行する情報処理装置におけるコンテンツ再生処理の詳細について説明する。
図4に示すように、情報処理装置150において実行するコンテンツ再生処理には、暗号化コンテンツの復号処理とスクランブル解除処理の2つの処理を含む。
情報処理装置150は、情報記録媒体100から各種の情報を読み取り、これらの読み取りデータと情報処理装置150の保有しているデバイス鍵301とを適用した鍵生成処理によって生成したタイトル鍵に基づいて暗号化コンテンツの復号処理を実行し、さらに復号コンテンツについてスクランブル解除処理を実行する。なお、この実施例ではコンテンツの復号処理の後、スクランブル解除を行なう例を示しているが、スクランブル解除の後、復号処理を行なう構成も可能であり、この処理シーケンスは、情報記録媒体に格納するコンテンツの記録処理シーケンスに依存する。
情報処理装置150における暗号化コンテンツの復号処理およびスクランブル解除処理の詳細シーケンスについて、図4を参照して説明する。コンテンツ復号プロセスでは、まず、情報処理装置150は、メモリに格納しているデバイス鍵301を読み出す。デバイス鍵301は、コンテンツ利用に関するライセンスを受けた情報処理装置に格納された秘密キーである。
次に、情報処理装置150は、ステップS11において、デバイス鍵301を適用して情報記録媒体100に格納されたメディア鍵Kmを格納した暗号鍵ブロックであるMKB112の復号処理を実行して、メディア鍵Kmを取得する。
次に、ステップS12において、ステップS11におけるMKB処理で取得したメディア鍵Kmと、情報記録媒体100から読み取ったボリュームID113とに基づく暗号処理によって、タイトル鍵生成キーKe(embedded Key)生成する。この鍵生成処理は、例えばAES暗号アルゴリズムに従った処理として実行される。
AES暗号アルゴリズムの詳細について、図5を参照して説明する。AES暗号アルゴリズムに従った処理としては、例えばAESベースのハッシュ関数[AES_H]が適用される。AESベースのハッシュ関数は、図5に示すように、AES暗号処理を適用したデータ復号処理を伴う鍵生成(Key Generation)処理実行部(AES_G)と排他的論理和部との組み合わせによって構成される。AES_G部は、さらに図5に示すようにAES復号部(AES_D)と排他的論理和部との組みによって構成される。
図4におけるステップS12におけるタイトル鍵生成キーKe(embedded Key)の生成処理は、ステップS11におけるMKB処理で取得したメディア鍵Kmと、情報記録媒体100から読み取ったボリュームID113とを入力として、例えば図5に示すAESベースのハッシュ関数[AES_H]を適用した処理として実行される。
次に、ステップS13において、タイトル鍵生成キーKe(embedded Key)と、情報記録媒体100から読み取った使用許諾情報114とに基づく暗号処理(AES_H)によって、コントロールキーKcを生成し、ステップS14において、コントロールキーKcと情報記録媒体100から読み取ったタイトル鍵データ115とに基づく暗号処理(AES_H)によって、タイトル鍵を生成する。
次に、ステップS15において、情報記録媒体100から読み取った暗号化コンテンツに対して、タイトル鍵を適用した復号処理(例えばAES_D)が実行される。
次に、ステップS16において、復号されたコンテンツのスクランブル解除処理を実行する。ステップS16のスクランブル解除処理は、ステップS16aのスクランブルルール取得処理と、ステッブS16bのスクランブル解除処理とによって構成される。
前述したように、コンテンツはコンテンツ管理ユニットまたはコンテンツ毎に異なるスクランブルルールが適用されたスクランブル処理が施されて情報記録媒体100に格納されている。ステップS16aのスクランブルルール取得処理は、情報記録媒体100に格納されたスクランブルルール115を取得し、再生対象のコンテンツに対応するスクランブルルールを解析する処理である。ステップS16bのスクランブル解除処理は、ステップS16aにおいて解析したスクランブルルールに対応するスクランブル解除処理を実行する。
S16aのスクランブルルール取得ステップおよびステップS16bのスクランブル解除処理は、スクランブルルールが漏洩しないようにセキュアなデータ処理として実行する必要がある。情報記録場いたに格納されるスクランブルルール115は、セキュアなJavaコードで決め区され、情報処理装置150は、Javaの実現するJavaバーチャルマシン内の処理としてステップS16aのスクランブルルール取得処理と、ステップS16bのスクランブル解除処理を実行する。
その後、スクランブル解除後のコンテンツデータしは、ステップS17において、デコード(例えばMPEGデコード)処理が実行されてコンテンツ302が出力される。
図6に示すフローチャートを適用して情報処理装置150の実行するコンテンツ再生シーケンスについて説明する。ステップS101において、デバイス鍵を適用して情報記録媒体100に格納されたMKB112の復号処理を実行して、メディア鍵Km取得処理を実行する。ステップS102において、メディア鍵の取得に成功したと判定した場合は、ステップS103に進む。
ステップS102において、メディア鍵の取得に失敗したと判定した場合は、ステップS109に進み、再生禁止として処理を終了する。メディア鍵の取得に失敗する場合とは、情報処理装置の保持しているデバイス鍵がリボーク、すなわち不正であるとしてライセンスが認められない状態となっていることを意味する。前述したようにMKBは、適宜更新され、有効なライセンス保持した情報処理装置の格納デバイス鍵を適用した場合にのみメディア鍵を取得することが可能な構成であり、リボークされた場合には、メディア鍵を取得することができない。
メディア鍵の取得に成功した場合は、ステップS103に進み、取得したメディア鍵Kmと、情報記録媒体100から読み取ったボリュームID113とに基づく暗号処理によって、タイトル鍵生成キーKe(embedded Key)生成する。この鍵生成処理は、前述したように例えば図5に示すAESベースのハッシュ関数[AES_H]を適用した処理として実行される。
次に、ステップS104において、タイトル鍵生成キーKe(embedded Key)と、情報記録媒体100から読み取った使用許諾情報114とに基づく暗号処理(AES_H)によって、コントロールキーKcを生成し、ステップS105において、コントロールキーKcと情報記録媒体100から読み取ったタイトル鍵データ115とに基づく暗号処理(AES_H)によって、タイトル鍵を生成する。
次に、ステップS106において、情報記録媒体100から読み取った暗号化コンテンツに対して、タイトル鍵を適用した復号処理(例えばAES_D)を実行し、ステップS107において、情報記録媒体100に格納されたスクランブルルール115を取得し、再生対象のコンテンツに対応するスクランブルルールを解析する処理を実行し、ステップS108において、解析したスクランブルルールに対応するスクランブル解除処理を実行する。
[2.情報記録媒体に対するコンテンツ記録処理の詳細]
次に、情報記録媒体に対するコンテンツ記録処理の詳細について説明する。図7を参照して、コンテンツ格納情報記録媒体の製造シーケンスについて説明する。
図7に示すように、まず、情報記録媒体に格納するコンテンツに対して、コンテンツ編集処理を実行するオーサリングファシリティ330において編集処理、すなわちステップS201におけるオーサリング処理が実行され、オーサリング済みコンテンツ332が生成される。なお、オーサリングコンテンツは、通常、MPEGエンコード等のエンコードのなされたコンテンツとして設定される。
さらに、適用するスクランブルルール331を選択して、選択したスクランブルルールに基づいて、ステップS202においてスクランブル処理が実行される。なお、スクランブル態様には様々な態様がある。これらの具体的態様については後述する。ステップS202において、スクランブル処理がなされた後、スクランブルコンテンツは、情報記録媒体製造処理を実行するディスク工場としての暗号化ファシリティ370に渡される。
暗号化ファシリティ370では、ステップS203において、スクランブルコンテンツに対する暗号化処理を実行する。ライセンスエンティティ350は、前述した暗号鍵ブロックとしてのMKBの管理を実行し、コンテンツ暗号化処理を実行する暗号化ファシリティ370にメディア鍵Kmを提供して、暗号化ファシリティ370は、メディア鍵を適用した処理を実行してコンテンツの暗号化を実行する。暗号化プロセスの詳細については後述する。
ステップS203における暗号化処理によって生成した暗号化コンテンツ371と、オーサリングファシリティ330において適用したスクランブルルール331とが、暗号化ファシリティ370において、情報記録媒体100に書き込まれて情報記録媒体100が製造される。
以下、スクランブル処理の例として、
(2−1)シャッフル処理
(2−2)排他論理和演算(EXOR)処理
(2−3)ローテーション処理
の3種類のスクランブル処理について、順次説明する。
[(2−1)シャッフル処理]
図8は、図7において説明した記録データの生成処理をコンテンツデータの変化として示した図であり、適用するスクランブル処理としてシャッフル処理を適用した場合の処理例を示している。シャッフル処理をスクランブル処理として適用する場合、様々な異なるシャッフル態様がスクランブルルール毎に設定される。すなわち、
スクランブルルール#1:シャッフル態様1
スクランブルルール#2:シャッフル態様2
スクランブルルール#3:シャッフル態様3
: : :
スクランブルルール#n:シャッフル態様n
のように多数のシャッフル態様が設定され、各コンテンツあるいはコンテンツ管理ユニット(CPSユニット)毎にいずれかのスクランブルルール#x(シャッフル態様x)が適用されてスクランブル処理が実行されることになる。
図8には、上段から、(A)シャッフル処理前の平文、シャッフル処理後の平文、(C)シャッフル済み暗号文を示している。図8(A)に示すように、MPEGエンコード等のエンコードのなされたコンテンツ、すなわち情報記録媒体に記録するAVストリーム等のコンテンツは先頭から64KBずつに分割され、64KB毎にシャッフルユニットとして設定される。64KBシャッフルユニットは、32個の2KBシャッフルエレメントによって構成される。
スクランブル処理としてのシャッフル処理は、2KBシャッフルエレメントの入れ替え(シャッフル)処理として実行される。入れ替え態様としてのシャッフル態様がスクランブルルールである。図9を参照してスクランブルルール(シャッフル態様)について説明する。図9(A)は、1つのスクランブルルール(シャッフル態様)の例を示している。
図9(A)に示すスクランブルルール(シャッフル態様)は、図8に示す2KBシャッフルエレメント1〜32のシャッフルによる並び替え順を示している。すなわちシャッフル後は、第1番目のシャッフルエレメントとして、シャッフル前の第3番目のシャッフルエレメントを設定し、シャッフル後の第2番目のシャッフルエレメントとして、シャッフル前の第19番目のシャッフルエレメントを設定、以下、同様に、16,24,26・・・のにシャッフルエレメントを並び替えるシャッフル処理を示しているスクランブルルールである。
図9(B1)がシャッフル前の2KBシャッフルエレメント1〜32の設定シーケンスであり、(B2)が、(A)に示すスクランブルルール(シャッフル態様)を適用したスクランブル処理によって生成されるシャッフル後の2KBシャッフルエレメント1〜32の設定シーケンスである。
スクランブルルール(シャッフル態様)は、前述したように、コンテンツ、あるいはコンテンツ管理ユニット(CPSユニット)毎に異なるルールとして設定可能である。情報記録媒体に複数のコンテンツあるいはコンテンツ管理ユニット(CPSユニット)が記録されている場合、各コンテンツあるいはコンテンツ管理ユニット(CPSユニット)に対応して適用されているスクランブルルール、すなわち、例えば図9(A)に示すスクランブルルールがそれぞれ、図1を参照して説明したスクランブルルール116として記録されている。再生処理を実行する情報処理装置は、再生対象コンテンツに対応するスクランブルルールを読み出して、スクランブル解除処理を実行する。
図8、図9に示す例では、32個のシャッフルユニットを適用したシャッフルをスクランブル処理として実行した例である。この場合、シャッフル態様は32!種類の設定が可能であり、スクランブルルールとして32!のルールが設定可能となる。コンテンツ、あるいはコンテンツ管理ユニット(CPSユニット)毎にこれらの32!のいずれかのルールを適用してスクランブル処理が実行可能となる。従って、ある1つのコンテンツに対応して設定されたスクランブルルールが漏洩した場合であっても、その他のコンテンツに適用されているスクランブルルールが同一のスクランブルルールである確率はきわめて低いものとなり、漏洩したスクランブルルールに基づいて、他のコンテンツのスクランブル解除を行なうことはほぼ不可能となり、コンテンツの不正取得、利用を防止することができる。
なお、情報記録媒体に記録されるスクランブルルール116は、暗号化データ、例えばJavaセキュアコードを適用して記述され、正当なライセンスを持つ情報処理装置においてのみ解読可能なデータとして設定されており、不正な読み取りによるルール解読は防止された構成となっている。
なお、スクランブル処理(シャッフル処理)は、コンテンツを区分することによって設定される複数の64KBのシャッフルユニット全てを対象として実行する構成としてもよいが、コンテンツを区分することによって設定される複数の64KBのシャッフルユニットから選択された一部のユニットのみを対象としてスクランブル(シャッフル)処理を実行する構成としてもよい。
なお、上述の例において、シャッフルユニットは64KBとして設定した例を示しているが、データサイズはこれに限定されるものではない。ただし、情報処理装置におけるコンテンツ再生処理においてドライブのデータ読み取り単位として設定されるECCブロックのサイズである64KBとシャッフルユニットサイズを同一サイズとすることで、1度のデータ読み取りによってシャッフルユニットを読み取ることが可能となる。従って、シャッフルユニットを64KBとして設定することで、再生処理の際にドライブにおいて実行するデータ取得処理とシャッフル解除処理を一連の処理として実行することができ、効率的な処理が実現される。
また、シャッフルエレメントのサイズ=2KBは、ブルーレイ(Blu−ray)ディスクのユーザセクタデータと同一サイズである。6KB単位で設定されるアラインドユニット(Aligned Unit)において、図8に示すように先頭16バイトのみが非暗号化データ(平文)として設定される。各アラインドユニット(6KB)の先頭部には、再生処理タイミング情報としてのタイムスタンプが設定される。
後述するコンテンツ暗号化処理において、6KB単位の暗号化処理を実行した場合、2KB単位のシャッフルを実行することで、各アラインドユニット(6KB)の2番目と3番目のユーザセクタデータのいずれかにタイムスタンプ情報が含まれる場合が多くなるが、これらの情報は暗号化されることになる。このように多くのタイムスタンプ情報が暗号化されることで、正当な復号処理、スクランブル解除処理を実行しない限りタイムスタンプ情報に基づく再生シーケンスの取得は不可能となる。
図8(A),(B)に示すように、例えば図9に示すスクランブルルールを適用したスクランブル処理(シャッフル処理)は、オーサリングファシリティにおいて実行され、シャッフル後のデータが、暗号化ファシリティとしてのディスク工場に渡されて暗号化処理が実行され、図8(C)に示すシャッフル済み暗号文が生成される。
暗号化処理の態様としては、例えば、6KBのアラインドユニット(6KB)を暗号化処理単位とした設定と、2KBのユーザセクタデータを暗号化処理単位とした設定とがあり、以下、これらのそれぞれの暗号化処理態様について説明する。
まず、6KBのアラインドユニット(6KB)を暗号化処理単位とした設定における暗号化処理について、図10を参照して説明する。
図10(A)は、シャッフル済み平文を6KB単位のアラインドユニット(Aliged Unit)として設定したデータ構成を示している。各6KBアラインドユニットは、図10(B)に示すように3個の2KBのユーザセクタデータの集合として設定されている。
暗号化処理は、3個の2KBのユーザセクタデータからなる6KBアラインドユニットを処理単位として、AES_ECBC、すなわちAES暗号化のCBC(Cipher Block Chaining)モードを適用して実行される。暗号処理に適用する鍵は、6KBアラインドユニットの先頭16B非暗号化部401から取得するブロック鍵生成データ(128bits)と、前述したタイトル鍵(128bits)とに基づくAES暗号化および配置論理和演算によるAES鍵生成処理によって生成するブロック鍵(128bits)である。ブロック鍵は、6KBアラインドユニットの先頭16B非暗号化部401から取得するブロック鍵生成データを適用して生成されるので、各6KBアラインドユニット毎に異なる鍵として設定される。
AES_ECBCモードの暗号処理について、図11を参照して説明する。図11(A)は、図10(B)と同様の3個の2KBユーザセクタデータからなる6KBアラインドユニットを示し、図11(B)は、16B非暗号化部401とその他の暗号化部分402を示している。
暗号化部分402は、図11(C)に示すようにそれぞれ16Bの平文ユニットに区分される。先頭の16バイト平文ユニットは、初期値(IV)と排他論理和(EXOR)され、さらにAES暗号化処理がなされて出力され、16バイト暗号文が設定される。さらに、この16バイト暗号文は、次の16バイト平文ユニットと排他論理和(EXOR)されAES暗号化がなされて、16バイトの暗号文ユニットが生成される。さらに、この16バイト暗号文ユニットが次の16バイト平文ユニットと排他論理和(EXOR)される。以下同様の処理が繰り返され、図11(D)に示す暗号文ユニット配列が生成される。なお、AES暗号化の際の鍵は、図10において説明したブロック鍵が適用される。また、初期値(IV)は、暗号化ファシリティ及び再生装置間で共有される予め定められた128ビット値が適用される。
このようにして、図10(C)に示す16B非暗号化部401と、その他の6128Bの暗号化部分402とからなる1つの6KBアラインドユニットの暗号化データが生成される。
次に、図12を参照して、2KBのユーザセクタデータを暗号化処理単位とした設定における暗号化処理について説明する。図12(A)は、シャッフル済み平文を2KBのユーザセクタデータとした設定を示している。
暗号化処理は、1個の2KBのユーザセクタデータを処理単位として、AES_ECBC、すなわち図11を参照して説明したAES暗号化のCBC(Cipher Block Chaining)モードを適用して実行される。暗号処理に適用する鍵は、2KBユーザセクタデータの先頭16B非暗号化部411から取得するブロック鍵生成データ(128bits)と、前述したタイトル鍵(128bits)とに基づくAES暗号化および配置論理和演算によるAES鍵生成処理によって生成するブロック鍵(128bits)である。ブロック鍵は、2KBユーザセクタデータの先頭16B非暗号化部411から取得するブロック鍵生成データを適用して生成されるので、各2KBユーザセクタデータ毎に異なる鍵として設定される。
AES_ECBCモードの暗号処理については、図11を参照して説明したとおりであり、暗号処理の結果として、図12(B)に示す16B非暗号化部411と、その他の2032Bの暗号化部分412とからなる1つの2KBユーザセクタデータの暗号化データが生成される。
図12を参照して説明した2KBユーザセクタデータ単位の暗号処理を実行する場合、CBCモードの連鎖は、2KBごとに完結する構成となる。先に、図8他を参照して説明したようにシャッフルエレメントは2KBに設定されている。従って、各シャッフルエレメント毎にAES_ECBCモードの連鎖関係は完結することになる。従って、2KB単位の暗号化を行なう構成では、暗号化処理と、スクランブル処理(シャッフル処理)の処理順番を変更しても得られる結果は同一となり、スクランブル処理と、暗号化処理のプロセス順を任意に設定できるというメリットがある。これは、データ記録処理、データ再生処理のいずれにも共通するメリットである。
データ記録に際しての暗号化処理の処理態様を決定するために暗号化プロセスを実行するディスク工場等の暗号化ファシリティにおいて適用する補助ファイル(MSTBL.DAT)のデータ構成を図13に示し、この補助ファイルのシンタックスを図14に示す。
補助ファイルは、[UD_START_Location]〜[MKB_Location]まで、記録データの種類および位置情報が記述され、その後、各セクタ毎の暗号化処理をフラグ[Encryption_Flag]に基づいて実行する設定となっている。なお、カクアラインドユニット毎のデータタイプとして、第1へ第3セクタの区別と、AVストリームデータ以外の例えばJavaコードなどのデータとが判別可能な設定となり、これらのデータ種別に基づく暗号化処理態様の変更も可能な構成となっている。
各データの意味は、図14に示すように、以下の意味を持つ。
UD_START_Location : 各LayerのUser Data (Data Zone)の開始点のPhysical Sector Number。
UD_END_Location : 各LayerのUser Data (Data Zone)の終了点のPhysical Sector Number。
CHT_Location : CHTの開始点のPhysical Sector Number。
CHT_Offset : CHTの開始点とHash Value(Mastering Facilityが埋めるデータ)の直前までのバイト数。
Content_Cert_Location : Content Certificateの開始点のPhysical Sector Number。
Content_Cert_Offset : Content Certificateの開始点とContent ID (Mastering Facilityが埋めるデータ)の直前までのバイト数。
UK_Inf_Location : タイトル鍵ファイルの開始点のPhysical Sector Number。そのLayerにUnit_Key.infが記録されない場合は、0000000016を記述。
UK_Inf_Offset : Unit_Key.infの開始点とEncrypted Unit Key for CPS Unit#1の直前までのバイト数。そのLayerにUnit_Key.infが記録されない場合は、0000000016を記述。
Num_of_UK : Disc全体のUnit Keyの数(=CPS Unitの数)。
MKB_Location : MKBの開始点のPhysical Sector Number。そのLayerにMKB_Certが記録されない場合は、 0000000016を記述。
N : Layer i のLogical Sector数。
Encryption_Flag : 暗号化するかしないかのFlag。
Data_Type : SectorのTypeを示すFlag。
CPS_Unit_No : CPS Unit Number。
Clip_AV_File_No : クリップファイル番号。CHT作成のために使う情報。
Last_Sector_of_Clip : (Layerに関わらず)各クリップの最終Sectorを示すフラグ。
Last_Sector_of_Layer : 各Layerでの各クリップの最終Sectorを示すフラグ。
先に図7以下を参照して説明した例では、スクランブル処理をオーサリングファシリティが実行する処理例を説明したが、次に、図15を参照して、スクランブル処理と暗号化処理の2つの処理をディスク工場(暗号化ファシリティ)において実行する例について説明する。
図15に示すように、まず、情報記録媒体に格納するコンテンツに対して、コンテンツ編集処理を実行するオーサリングファシリティ430において編集処理、すなわちステップS271におけるオーサリング処理が実行され、オーサリング済みコンテンツ332が生成される。なお、オーサリングコンテンツは、通常、MPEGエンコード等のエンコードのなされたコンテンツとして設定される。
オーサリングコンテンツは、スクランブル処理を実行することなく、暗号化ファシリティ(ディスク工場)470に渡される。暗号化ファシリティ(ディスク工場)470は、適用するスクランブルルール451を選択して、選択したスクランブルルールに基づいて、ステップS272においてスクランブル処理を実行する。ステップS272において、スクランブル処理がなされた後、ステップS273において、スクランブルコンテンツに対する暗号化処理を実行する。ライセンスエンティティ450は、前述した暗号鍵ブロックとしてのMKBの管理を実行し、コンテンツ暗号化処理を実行する暗号化ファシリティ470にメディア鍵Kmを提供して、暗号化ファシリティ470は、メディア鍵を適用した処理を実行してタイトル鍵を生成し、さらに先に図10、図12を参照して説明した手順に従って、ブロック鍵の生成、コンテンツ暗号化処理を実行する。
ステップS273における暗号化処理によって生成した暗号化コンテンツ452と、スクランブルルール451とが、暗号化ファシリティ470において、情報記録媒体100に書き込まれて情報記録媒体100が製造される。
図16は、図15において説明した記録データの生成処理をコンテンツデータの変化として示した図であり、スクランブル処理としてシャッフル処理を適用した場合の処理例を示している。上段から、(A)シャッフル処理前の平文、シャッフル処理後の平文、(C)シャッフル済み暗号文を示している。図15(A)は、オーサリングファシリティの生成するデータであり、MPEGエンコード等のエンコードのなされたコンテンツ、すなわち情報記録媒体に記録するAVストリーム等のコンテンツである。
図15(B)は、シャッフル処理後の平文を示している。コンテンツは、先頭から64KBずつに分割され、64KB毎にシャッフルユニットとして設定され、32個の2KBシャッフルエレメントのシャッフルが実行される。その後、暗号化処理が実行されて、図15(C)に示すシャッフル後暗号文が生成される。本処理例では、図15(B)(C)のデータ生成を暗号化ファシリティとしてのディスク工場が実行する。
なお、暗号化処理は、先に、図10〜図12を参照して説明したとど羽陽の処理、すなわち、6KBアラインドユニットを暗号化処理単位とした設定と、2KBユーザセクタデータを暗号化処理単位とした設定が可能である。2KBユーザセクタデータを暗号化処理単位とした設定においては、スクランブル処理と暗号化処理の前後関係を入れ替えても結果は同じとなり、任意の順序での処理とすることができる。
図7以下を参照して説明したように、本発明の情報記録媒体製造処理は、情報記録媒体へ記録するコンテンツに適用するスクランブルルールを選択するスクランブルルール選択処理と、選択したスクランブルルールに従って、コンテンツに対するスクランブル処理を実行するスクランブル処理と、生成したスクランブルコンテンツと、該コンテンツに対して選択適用したスクランブルルールを情報記録媒体に記録する処理とを実行するものである。スクランブルルール選択処理では、情報記録媒体へ記録するコンテンツが複数ある場合において、記録コンテンツ毎、または管理ユニット毎に個別のスクランブルルールを選択する処理を実行する。
また、スクランブル処理は、上述したコンテンツ構成データとして設定されるシャッフルエレメントのシャッフル処理の他、排他論理和演算処理、ローテーション処理などがある。以下、これらの処理について説明する。
[(2−2)排他論理和演算(EXOR)処理]
次に、スクランブル処理として、排他論理和演算(EXOR)処理を適用した処理例について説明する。まず、この処理例の説明の前に、情報記録媒体に記録するAVストリームのエンコードデータ、すなわちMPEG2トランスポートストリームデータのデータ構成について説明する。
図17は、MPEG2トランスポートストリームデータのデータ構成を示す図である。MPEG2トランスポートストリームデータは図17(A)に示すように、6KBアラインドユニットの連結データとして設定される。各6KBアラインドユニットは、図17(B)に示すように、192ビットのソースパケット32個から構成される。なお、192ビットのソースパケット32個は、3個の2KBユーザセクタデータに相当する。
各192バイトソースパケットは、図17(C)に示すように、4ビットTP_extraヘッダと、188ビットトランスポートパケットによって構成される。図18(A)にソースパケットのシンタックス、図18(B)にTP_extraヘッダのシンタックス、図19にトランスポートパケットのシンタックスを示す。
スクランブル処理として、排他論理和演算(EXOR)処理を適用する処理は、平文のトランスポートストリームデータ上の所定箇所のnビット(たとえば32ビット)データに所定のnビット(32ビット)値を排他論理和(EXOR)する処理として実行される。所定のnビット(32ビット)値はスクランブルルールによって規定される値である。
図20を参照して、オーサリングファシリティにおいてスクランブル処理(EXOR処理)を実行する場合のコンテンツ(MPEG2ストリームデータ)の変遷について説明する。
図20(A)は、MPEG2トランスポートストリームの構成データである。オーサリングファシリティでは、スクランブルルールに基づいて決定される値(32ビット値Vi)を取得し、予め定められたMPEG2トランスポートストリームの構成データ位置にスクランブルルールから取得したnビット(32ビット)値を排他論理和(EXOR)する処理を実行して、図20(B)EXOR済み平文を生成する。
スクランブルルールは、例えば、図21に示すルールとして設定される。図21には、V(1)〜V(n)の32ビットデータが格納され、これらの各V(i)値もしくはこれらを元に計算される値が、MPEG2トランスポートストリームから選択されたn箇所の32ビットデータに順次、排他論理和(EXOR)が施されてデータの書き換えが実行され、スクランブル処理が行なわれることになる。なお、1つの値、例えばV(1)のみをスクランブルルールとして設定し、MPEG2トランスポートストリームから選択されたn箇所の32ビットデータに順次、同一の値V(1)もしくはこれを元に計算される値を排他論理和(EXOR)する構成としてもよい。
スクランブル処理として、排他論理和(EXOR)を施す場合は、情報記録媒体に記録されるスクランブルルールは、図21に示すルール、すなわち排他論理和(EXOR)演算の実行値もしくは実行値の元になる値が記録されることになる。再生処理におけるスクランブル解除の際には、この値もしくはこの値を元に計算される値を再度、所定位置のデータと排他論理和(EXOR)することで、オリジナルデータを復元することが可能となる。
図20に戻り、オーサリングファシリティにおいてスクランブル処理(EXOR処理)を実行する場合のコンテンツ(MPEG2ストリームデータ)の変遷についての説明を続ける。オーサリングファシリティでは、例えば図21に示すスクランブルルールを適用して排他論理和(EXOR)演算処理を実行し、図20(B)に示すEXOR済み平文を生成し、このデータを暗号化ファシリティとしてのディスク工場に提供する。
暗号化ファシリティとしてのディスク工場は、この受領データに対して、暗号化処理を実行して、図20(C)に示すEXOR済み暗号文を生成する。暗号化処理は、先に、図10〜図12を参照して説明したAES_ECBCモードを適用した処理が適用される。
このように、排他論理和演算(EXOR)の施されたデータをデコードしても正しいデータは取得できない。正しいデータを取得するためには、排他論理和(EXOR)に適用された所定のnビット(32ビット)値を、所定箇所に再度、排他論理和(EXOR)して、オリジナルのトランスポートストリームデータを復元するというスクランブル解除処理が必要となる。所定のnビット(32ビット)値はスクランブルルールによって規定されており、正当な手続きの下でのスクランブルルール解析を行うことが必要となる。
スクランブル処理として、排他論理和演算(EXOR)処理を適用する場合、排他論理和演算(EXOR)処理を適用する対象データの選択構成として、
(a)所定のパターンでデータ内容に無関係で排他論理和演算(EXOR)処理を施す。
(b)特定の選択箇所のみに排他論理和演算(EXOR)処理を施す。
これら(a),(b)のいずれかの処理が可能である。
さらに、上記(b)特定の選択箇所のみに排他論理和演算(EXOR)処理を施す場合には、
(b1)Iピクチャのスライスを符号化したVLC(可変長ランレングス符号化データ)の一部
(b2)シーケンスヘッダの一部もしくは全て
(b3)TSパケット内のPID
これら3箇所のいずれかを排他論理和演算(EXOR)適用位置として選択可能である。各設定例について説明する。
(b1)Iピクチャのスライスを符号化したVLC(可変長ランレングス符号化データ)の一部
MPEG2エンコードデータは、I,P,Bピクチャから構成されるGOP(Group of Pictures)データによって構成される。Iピクチャは、基本となる画像データであり、P,Bピクチャは、それぞれIピクチャ等からの差分データ等によって構成されるデータであり、Iピクチャの構成がくずれるとGOPに含まれるフレームデータの再現(デコード)は困難となる。
またIピクチャのスライスを符号化したVLCは、これら基幹データとしてのIピクチャのランレングス符号化データであり、このVLCに対して所定のnビット(32ビット)値を適用した排他論理和演算(EXOR)を施した場合、排他論理和演算(EXOR)処理データのデコードによってオリジナルデータの再現は不可能となり、効果的なスクランブルが実現される。
なお、データ内容に無関係で排他論理和演算(EXOR)をする場合でもトランスポートストリームの大部分がVLCデータなので、高い確率でデータを効果的にスクランブルすることが出来る。すなわち、処理データを普通に再生しても正しい映像が出ない。
なお、Iピクチャの場所は、クリップインフォメーションに含まれるEPマップ(EP_map)によって求めることが出来る。図22に示すように、EPマップ(EP_map)501は、クリップインフォメーションに含まれるデータである。
EPマップに基づくIピクチャ位置の検出について、図23参照して説明する。図23(A)はクリップAVストリームを示し、各矩形は192ビットソースパケットを示している。各ソースパケットにはタイムスタンプが設定され再生処理時間が規定されている。
図23(B)に、ソースパケットNo.(X1)の詳細構成を示す。1つのソースパケットは、TP_extraヘッダとトランスポートパケットとによって構成され、トランスポートパケットには、各種のヘッダ情報と、MPEG2実体データとしてのI−PICH〜のデータによって構成される。
図23(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のオフセット
これらのデータ関係を示すのが図23(D)である。
すなわち、図23(B)に示すように、ソースパケットに含まれるデータの構成が規定されており、図23(C)に示す[PTS_EP start]、[SPN_EP start]、[I_end_position_offset]の各データをEPマップから求めることで、これらのデータに基づいて、ソースパケット中のIピクチャ位置が求められることになる。
データ記録字、データ再生時には、このEPマップ情報からIピクチャ位置を求めて、所定のnビット(32ビット)値を適用した排他論理和演算(EXOR)を施すことになる。
なお、このようにEPマップを適用することなく、排他論理和演算(EXOR)すべき場所全ての論理ブロックアドレス(Logical Block Address)を記述したテーブルを用意し、このテーブルに基づいてスクランブル位置を求める構成としてもよい。この場合は、このテーブルもスクランブルルールとして情報記録媒体に記録する。再生処理に際してスクランブル解除を実行する場合は、このテーブルと、図22に示した排他論理和値とからなるスクランブルルールに基づいて、スクランブル(EXOR)位置と値を取得してEXOR処理を実行してスクランブル解除を行なう。
Iピクチャのスライスを符号化したVLCに対して、スクランブル、すなわち排他論理和(EXOR)演算を実行する処理例について、図24を参照して説明する。図24に示すように、Iピクチャのスライスを符号化したVLCは、各スライスの先頭位置を示すスタートコードによって区分されており、オーサリングファシリティでは、スクランブルルールに基づいて決定される値(32ビット値Vi)を取得し、予め定められたMPEG2トランスポートストリームのスライス位置にスクランブルルールから取得したnビット(32ビット)値を排他論理和(EXOR)する処理を実行する。
各スライスは、VLC符号化されているので、排他論理和(EXOR)演算により一部データの書き換えが発生すると、スライスに対応するGOP全体の復号(MPEGデコード)が不可能となる。このようにIピクチャのスライスを符号化したVLCに対して、スクランブル、すなわち排他論理和(EXOR)する処理によって効果的なスクランブルが可能となる。
(b2)シーケンスヘッダの一部もしくは全て
次に、シーケンスヘッダの一部もしくは全てを排他論理和(EXOR)演算対象データとして設定した例について説明する。
シーケンスヘッダは、GOPの先頭に付加されるヘッダである。このシーケンスヘッダの場所についても、先に説明したEPマップに基づいて算出することができる。なお、上述の場合と同様に、EPマップを適用することなく、排他論理和演算(EXOR)すべき場所全ての論理ブロックアドレス(Logical Block Address)を記述したテーブルを用意し、このテーブルに基づいてスクランブル位置を求める構成としてもよい。この場合は、このテーブルもスクランブルルールとして情報記録媒体に記録する。再生処理に際してスクランブル解除を実行する場合は、このテーブルと、図22に示した排他論理和値とからなるスクランブルルールに基づいて、スクランブル(EXOR)位置と値を取得してEXOR処理を実行してスクランブル解除を行なう。
シーケンスヘッダは、MPEGデコード処理の処理態様を決定するための情報が記録されており、この情報なしには、正しい復号(MPEGデコード)は不可能となる。従って、このシーケンスヘッダの値を排他論理和演算(EXOR)によって書き換えることによりデータ復元を不可能にすることができ、効果的なスクランブルが実現される。
図25にシーケンスヘッダに対して、スクランブル、すなわち排他論理和(EXOR)演算を実行した処理例を示す。図25に示すように、シーケンスヘッダを含むデータ領域について、複数の32ビット値V(i)を適用して、排他論理和(EXOR)する処理を実行する。
排他論理和(EXOR)に適用する値は、スクランブルルールから取得する。すなわち、例えば図22に示す各々32ビットの値を規定したデータを適用する。スクランブル解除の場合もこれらのデータを取得して同一位置に、排他論理和(EXOR)する処理を実行することでオリジナルのシーケンスヘッダ情報を取得することができる。
(b3)TSパケット内のPID
次に、TSパケット内のPIDを排他論理和(EXOR)演算対象データとして設定した例について説明する。
TSパケット内のPIDは、トランスポートパケットないにある13ビットのデータである(図19参照)。このPIDデータは、トランスポートパケットに含まれるデータ内容、すなわちビデオデータであるか、オーディオデータであるか等のデータ種別を判別するためのデータであり、デコード処理には不可欠なデータとなる。このでーたを排他論理和(EXOR)演算により書き換えることで、正しいデコードを不可能とすることが可能となり効果的なスクランブルが実現される。
TSパケット内のPID位置は、あらかじめ規定されており、容易に求めることが可能である。ただし、この処理例の場合も、前述の例と同様、排他論理和演算(EXOR)すべき場所全ての論理ブロックアドレス(Logical Block Address)を記述したテーブルを用意し、このテーブルに基づいてスクランブル位置を求める構成としてもよい。この場合は、このテーブルもスクランブルルールとして情報記録媒体に記録する。再生処理に際してスクランブル解除を実行する場合は、このテーブルと、図22に示した排他論理和値とからなるスクランブルルールに基づいて、スクランブル(EXOR)位置と値を取得してEXOR処理を実行してスクランブル解除を行なう。
先に、図20を参照して説明した処理例では、スクランブル処理としての排他論理和(EXOR)演算処理をオーサリングファシリティが実行する処理例を説明したが、次に、図26を参照して、スクランブル処理としての排他論理和(EXOR)演算処理と暗号化処理の2つの処理をディスク工場(暗号化ファシリティ)において実行する例について説明する。
図26(A)は、MPEG2トランスポートストリームの構成データである。オーサリングファシリティは、編集済みコンテンツとして、MPEG2トランスポートストリームを生成し、これを暗号化ファシリティとしてのディスク工場に提供する。
暗号化ファシリティとしてのディスク工場は、スクランブルルールに基づいて決定される値(32ビット値Vi)を取得し、予め定められたMPEG2トランスポートストリームの構成データ位置にスクランブルルールから取得したnビット(32ビット)値を排他論理和(EXOR)する処理を実行して、図26(B)EXOR済み平文を生成する。
スクランブルルールは、例えば、図21に示すルールとして設定される。図21には、V(1)〜V(n)の32ビットデータが格納され、これらの各V(i)値が、MPEG2トランスポートストリームから選択されたn箇所の32ビットデータに順次、排他論理和(EXOR)が施されてデータの書き換えが実行され、スクランブル処理が行なわれることになる。なお、1つの値、例えばV(1)のみをスクランブルルールとして設定し、MPEG2トランスポートストリームから選択されたn箇所の32ビットデータに順次、同一の値V(1)を排他論理和(EXOR)する構成としてもよい。
暗号化ファシリティとしてのディスク工場は、さらにこのデータに対して、暗号化処理を実行して、図26(C)に示すEXOR済み暗号文を生成する。暗号化処理は、先に、図10〜図12を参照して説明したAES_ECBCモードを適用した処理が適用される。
このように、排他論理和演算(EXOR)の施されたデータをデコードしても正しいデータは取得できない。正しいデータを取得するためには、排他論理和(EXOR)に適用された所定のnビット(32ビット)値を、所定箇所に再度、排他論理和(EXOR)して、オリジナルのトランスポートストリームデータを復元するというスクランブル解除処理が必要となる。所定のnビット(32ビット)値はスクランブルルールによって規定されており、正当な手続きの下でのスクランブルルール解析を行うことが必要となる。
[(2−3)ローテーション処理]
次に、スクランブル処理として、ローテーション処理を適用した処理例について説明する。
スクランブル処理として、ローテーション処理を適用する処理は、平文のトランスポートストリームデータ上の所定箇所のnビット(たとえば32ビット)データを、スクランブルルールによって規定されるビット数分のローテーションを実行する処理として実行される。所定のローテーションビット数はスクランブルルールによって規定される値である。
図27を参照して、オーサリングファシリティにおいてスクランブル処理(ローテーション処理)を実行する場合のコンテンツ(MPEG2ストリームデータ)の変遷について説明する。
図27(A)は、MPEG2トランスポートストリームの構成データである。オーサリングファシリティでは、スクランブルルールに基づいて決定されるローテーションビット数を取得し、予め定められたMPEG2トランスポートストリームのローテーション領域611,612の構成ビットを、スクランブルルールから取得したローテーションビット数に基づいて取得ビット数分のローテーション処理を実行して、図27(B)ローテーション済み平文を生成する。
スクランブルルールは、例えば、図28に示すルールとして設定される。図28には、V(1)〜V(n)のローテーションビット数データが格納される。
このテーブルを用いて次のようにローテーション(ビット入れ替え)を行う。
ローテーション位置の1箇所目は、左にV(1)ビットシフト
ローテーション位置の2箇所目は、左にV(2)ビットシフト
ローテーション位置の3箇所目は、左にV(3)ビットシフト
・・・
ローテーション位置のn箇所目は、左にV(n)ビットシフト
スクランブル処理としてローテーション処理を実行する場合は、このテーブルがスクランブルルールとして情報記録媒体に格納される。このテーブルは、例えば暗号化を施してディスクに記録してルールが解読されないようになされる。なお、すべてのローテーション位置に対して、同一のビット数分のローテーションを行なう構成としてもよく、この場合は、1つのシフト量[V(1)]のみをスクランブルルールとして規定すればよい。なお、例えば、32ビットのユニット内でローテーションを行う場合は、シフト量Xは、X,32の設定で規定される。
スクランブル処理として、ローテーションを施す場合は、情報記録媒体に記録されるスクランブルルールは、図28に示すルール、すなわちローテーションのビット数データ値が記録されることになる。再生処理におけるスクランブル解除の際には、この値に基づいて、再度、逆ローテーションを実行することで、オリジナルデータを復元することが可能となる。
図27に戻り、オーサリングファシリティにおいてスクランブル処理(ローテーション処理)を実行する場合のコンテンツ(MPEG2ストリームデータ)の変遷についての説明を続ける。オーサリングファシリティでは、例えば図28に示すスクランブルルールを適用してローテーション処理を実行する。
ローテーション位置611の32ビットデータは、本来b0〜b31のシーケンスで設定されていた32ビットデータであるが、ローテーションによって[b11]が先頭にシフトされている。すなわち、11ビット左シフトが実行されている。同様に、ローテーション位置612の32ビットデータは、本来b0〜b31のシーケンスで設定されていた32ビットデータであるが、ローテーションによって[b25]が先頭にシフトされている。すなわち、25ビット左シフトが実行されている。このシフト量は、スクランブルルールに基づいて決定される。オーサリングファシリティは、このようにスクランブルルールに基づくローテーション処理を実行し、図27(B)に示すローテーション済み平文を生成し、このデータを暗号化ファシリティとしてのディスク工場に提供する。
暗号化ファシリティとしてのディスク工場は、この受領データに対して、暗号化処理を実行して、図27(C)に示すローテーション済み暗号文を生成する。暗号化処理は、先に、図10〜図12を参照して説明したAES_ECBCモードを適用した処理が適用される。
このように、ローテーション処理の施されたデータをデコードしても正しいデータは取得できない。正しいデータを取得するためには、ローテーション処理の実行位置データを、ローテーション実行ビット数分、ただしく逆ローテーションすることが必要であり、この処理によって、スクランブル解除が可能となる。ローテーションビット数はスクランブルルールによって規定されており、正当な手続きの下でのスクランブルルール解析を行うことが必要となる。
なお、スクランブル処理として、ローテーション処理を適用する場合、の適用データ位置は、前述の排他論理和演算(EXOR)処理の適用対象データ位置と同様、
(a)所定のパターンでデータ内容に無関係でローテーション処理を施す。
(b)特定の選択箇所のみにローテーション処理を施す。
これら(a),(b)のいずれかの処理が可能である。
さらに、上記(b)特定の選択箇所のみにローテーション処理を施す場合には、
(b1)Iピクチャのスライスを符号化したVLC(可変長ランレングス符号化データ)の一部
(b2)シーケンスヘッダの一部もしくは全て
(b3)TSパケット内のPID
これら3箇所のいずれかをローテーション位置として選択可能である。
図27を参照して説明した処理例では、スクランブル処理としてのローテーション処理をオーサリングファシリティが実行する処理例を説明したが、次に、図29を参照して、スクランブル処理としてのローテーション処理と暗号化処理の2つの処理をディスク工場(暗号化ファシリティ)において実行する例について説明する。
図29(A)は、MPEG2トランスポートストリームの構成データである。オーサリングファシリティは、編集済みコンテンツとして、MPEG2トランスポートストリームを生成し、これを暗号化ファシリティとしてのディスク工場に提供する。
暗号化ファシリティとしてのディスク工場は、スクランブルルールに基づいて決定されるローテーションビット数を取得し、予め定められたMPEG2トランスポートストリームの構成データ位置にスクランブルルールから取得したローテーションビット数分のローテーション処理を実行して、図29(B)ローテーション済み平文を生成する。
ローテーション領域621の32ビットデータは、ローテーションによって[b11]が先頭にシフトされている。すなわち、11ビット左シフトが実行されている。同様に、ローテーション領域622の32ビットデータは、ローテーションによって[b25]が先頭にシフトされている。すなわち、25ビット左シフトが実行されている。このシフト量は、スクランブルルールに基づいて決定される。スクランブルルールは、例えば、図28に示すルールとして設定される。暗号化ファシリティとしてのディスク工場は、さらにこのデータに対して、暗号化処理を実行して、図29(C)に示すローテーション済み暗号文を生成する。暗号化処理は、先に、図10〜図12を参照して説明したAES_ECBCモードを適用した処理が適用される。
このように、ローテーションの施されたデータをデコードしても正しいデータは取得できない。正しいデータを取得するためには、ローテーション処理の実行位置データを、ローテーション実行ビット数分、ただしく逆ローテーションすることが必要であり、この処理によって、スクランブル解除が可能となる。ローテーションビット数はスクランブルルールによって規定されており、正当な手続きの下でのスクランブルルール解析を行うことが必要となる。
なお、ここまで、スクランブル処理の態様として、シャッフル処理、排他論理和(EXOR)処理、ローテーション処理の3種類を説明したが、これらのスクランブル処理は組み合わせて適用する構成としてもよい。
また、スクランブル処理の対象データとして、排他論理和(EXOR)処理と、ローテーション処理については、
(1)MPEGエンコードデータに含まれるIピクチャスライス符号化データの一部
(2)シーケンスヘッダの一部
(3)トランスポートストリームパケット内のデータ種別情報を記録したPIDデータ
の少なくともいずれかを含むデータとする設定例について説明したが、シャッフル処理についても同様に、上記(1)〜(3)のいずれかを含むデータを選択してシャッフルを行なう構成としてもよい。
[3.情報処理装置の構成例]
次に、図30を参照して、上述の各種スクランブル処理を施したコンテンツの記録処理または再生処理を行う情報処理装置の構成例について説明する。
情報処理装置800は、情報記録媒体891の駆動を行ない、データ記録再生信号の入手力を行なうドライブ890、各種プログラムに従ったデータ処理を実行するCPU870、プログラム、パラメータ等の記憶領域としてのROM860、メモリ880、デジタル信号を入出力する入出力I/F810、アナログ信号を入出力し、A/D,D/Aコンバータ841を持つ入出力I/F840、MPEGデータのエンコード、デコード処理を実行するMPEGコーデック830、TS(Transport Stream)・PS(Program Stream)処理を実行するTS・PS処理手段820、各種の暗号処理を実行する暗号処理手段850、スクランブル処理またはスクランブル解除処理を実行するスクランブル処理手段855を有し、バス801に各ブロックが接続されている。
まず、データ記録時の動作について説明する。記録を行うデータとしてデジタル信号入力とアナログ信号入力の2つのケースが想定される。
デジタル信号の場合、デジタル信号用入出力I/F810から入力され、CPU870、TS・PS処理手段820によって保存用のデータ形式に変換し、MPEGコーデック830によって例えばMPEG2形式へのデータ変換処理を行い、スクランブル処理手段855において、所定のスクランブルルールに従ったスクランブル処理を実行する。スクランブルルールは例えばメモリ880に格納されている。スクランブル処理の態様としては、上述したように、シャッフル処理、排他論理和(EXOR)処理、あるいはローテーション処理のいずれかを適用した処理を行なう。シャッフル処理、排他論理和(EXOR)処理、あるいはローテーション処理いずれを適用する場合においても、コンテンツまたはコンテンツ管理ユニット毎に異なるルールの適用が可能である。
なお、シャッフル処理、排他論理和(EXOR)処理、あるいはローテーション処理のいずれか1つの手法によるスクランブル処理ではなく、シャッフル処理、排他論理和(EXOR)処理、ローテーション処理を、複数組み合わせて適用したスクランブル処理を実行する構成としてもよい。
スクランブル処理が実行されたデータは、次に、暗号化処理手段850によって暗号化処理を施される。暗号化処理は、先に図10〜図12を参照して説明したように、例えばAES_ECBCモードを適用した処理として実行される。AES_ECBCモードを適用した暗号化処理単位は、2KB単位、6KB単位など、様々な設定が可能である。暗号化処理手段850によって暗号化処理を施されたデータが情報記録媒体891に保存する。
アナログ信号の場合、入出力I/F840へ入力されたアナログ信号はA/Dコンバータ841によってデジタル信号となり、MPEGコーデック830によって記録時に使用されるコーデックへと変換される。その後、TS・PS処理手段820により、記録データの形式であるAV多重化データへ変換され、必要に応じて、スクランブル処理手段855によるスクランブル処理、暗号化処理手段850による暗号化処理が施されて、記録媒体891に保存される。
次に、情報記録媒体からのデータ再生を行なう場合の処理について説明する。例えばMPEG−TSデータからなるAVストリームデータの再生を行う場合、ドライブ890において情報記録媒体891から読み出されたデータはコンテンツ管理ユニットとして識別されると、コンテンツ管理ユニットに対応するユニット鍵の取得処理が実行され、取得されたユニット鍵に基づいて、暗号化処理手段850で暗号を解き、その後、スクランブル解除処理が実行される。
スクランブル解除処理に際しては、スクランブルルールを情報記録媒体891から読み出して、再生対象コンテンツに適用されているスクランブルルールを解析することが必要となる。例えば、コンテンツのスクランブルが、シャッフル処理として実行されている場合は、図9(A)に示すシャッフルエレメントのシーケンスを設定したスクランブルルール、排他論理和(EXOR)であれば、図21に示す排他論理和(EXOR)の値を設定したスクランブルルール、ローテーションであれば、図28に示すローテーション(シフト)ビット数を設定したスクランブルルールを取得し、これらの取得ルールに基づいてスクランブル解除を実行する。なお、前述したように、スクランブルルールの解析およびスクランブル解除処理はセキュアなデータ処理として実行される。具体的には、例えば情報記録媒体に格納されるスクランブルルールは、Javaセキュアコードで記録され、スクランブルルール解析、スクランブル解除処理は、コンテンツ再生を実行する情報処理装置に設定されるJavaVM(バーチャルマシン)上で実行される。
スクランブル解除がなされたコンテンツデータは、次に、TS(Transport Stream)・PS(Program Stream)処理手段820によってVideo、Audio、字幕などの各データに分けられる。さらに、MPEGコーデック830において復号されたデジタルデータは入出力I/F840内のD/Aコンバータ841によってアナログ信号に変換され出力される。またデジタル出力を行う場合、MPEG−TSデータは入出力IF810を通してデジタルデータとして出力される。この場合の出力は例えばIEEE1394やイーサネットケーブル、無線LANなどのデジタルインターフェースに対して行われる。なお、ネットワーク接続機能に対応する場合入出力IF810はネットワーク接続の機能を備える。また、再生装置内で出力先機器が受信可能な形式にデータ変換をして出力を行う場合、一旦、TS・PS処理手段820で分離したVideo、Audio、字幕などに対してMPEGコーデック830においてレート変換、コーデック変換処理を加え、TS・PS処理手段820で再度MPEG−TSやMPEG−PSなどに多重化を行ったデータをデジタル用入出力I/F810から出力する。または、CPU870を使用してMPEG以外のコーデック、多重化ファイルに変換をしてデジタル用入出力I/F810から出力することも可能である。
なお、再生処理、記録処理を実行するプログラムはROM860内に保管されており、プログラムの実行処理中は必要に応じて、パラメータ、データの保管、ワーク領域としてメモリ880を使用する。なお、図30では、データ記録、再生の可能な装置構成を示して説明したが、再生機能のみの装置、記録機能のみを有する装置も構成可能であり、これらの装置においても本発明の適用が可能である。
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
例えば、プログラムは記録媒体としてのハードディスクやROM(Read Only Memory)に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、CD−ROM(Compact Disc Read Only Memory),MO(Magneto optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することができる。
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。