(57)【要約】【課題】メディアキーブロックが更新される前の期間中においても、デジタルコンテンツの再生を許可または禁止する制御を安全且つ柔軟に実行することが可能な再生装置を実現する。【解決手段】演算処理部２０２は、コンテンツ保護モジュール１３内に保持されているアプリケーションキープレカーサを操作するためのインタフェースをスクリプト１０２に対して提供する。演算処理部２０２は、コンテンツ保護モジュール１３内に保持されているアプリケーションキープレカーサの値をスクリプト１０２、スクリプト・エンジン１４に渡すのではなく、スクリプト・エンジン１４を介してスクリプト１０２から送出される、アプリケーションキープレカーサに対する演算処理指示に応じて、アプリケーションキープレカーサに対する演算を実行する。これにより、アプリケーションキープレカーサからアプリケーションキーを算出する演算処理を安全に実行できる。【選択図】      図１
2009100435.tif 000002
【特許請求の範囲】
【請求項１】
記憶メディアに格納されている暗号化されたデジタルコンテンツを再生する再生装置であって、
前記記憶メディアに格納されたプログラムを実行するためのプログラム実行モジュールと、
処理モジュールであって、
前記記憶メディアに格納されたメディアキーブロックを前記再生装置が有するデバイスキーのセットによって処理することによって、前記再生装置が属する再生装置グループまたは前記再生装置単体に固有なデータであって、当該データに所定の演算を施すことによって得られる値が前記記憶メディア上のタイトルキーファイルを復号可能なアプリケーションキーとなるデータである、アプリケーションキープレカーサを算出する手段と、
前記プログラム実行モジュールを介して前記プログラムから送出される、前記アプリケーションキープレカーサに対する演算処理指示に応じて、前記アプリケーションキープレカーサの値および前記アプリケーションキープレカーサに対する演算結果を前記プログラムおよび前記プログラム実行モジュールから隠蔽した状態で、前記アプリケーションキープレカーサに対する演算を実行する演算手段と、
前記アプリケーションキープレカーサに対する演算結果をアプリケーションキーとして使用することによって前記タイトルキーファイルを復号するための処理を実行する手段とを含む、
処理モジュールと
を具備し、
前記処理モジュールはプレイリストのロード毎にプレイリストに関連するタイトルキーファイルを復号することを特徴とする再生装置。
【請求項２】
前記処理モジュールは
前記記憶メディアに格納されたメディアキーブロックを前記再生装置が有するデバイスキーのセットによって処理することによって、前記再生装置が属する再生装置グループまたは前記再生装置単体に固有なデータであって、当該データに所定の演算を施すことによって得られる値が前記記憶メディア上のタイトルキーファイルを復号可能なメディアキーを算出する手段をさらに含み、
前記記憶メディア上のタイトルキーファイルはアプリケーションキーにより暗号化されているか、あるいはメディアキーにより暗号化されているかを示すフラグを含むことを特徴とする請求項１記載の再生装置。
【請求項３】
前記プログラムには、複数の再生装置グループまたは複数の再生装置単体それぞれに対応した、異なる複数の演算処理指示が記述されており、前記プログラムは、前記再生装置が属する再生装置グループまたは前記再生装置単体を判別し、且つ前記複数の演算処理指示の中から、前記再生装置が属する再生装置グループまたは前記再生装置単体に対応する演算処理指示を選択し、当該選択した演算処理指示を前記プログラム実行モジュールを介して前記処理モジュールに送出することを特徴とする請求項１記載の再生装置。
【請求項４】
前記演算処理指示は、前記再生装置が属する再生装置グループまたは前記再生装置単体に固有の対応するアプリケーションキープレカーサから前記アプリケーションキーを導出するための演算処理を識別するための識別情報であり、前記演算手段は、前記識別情報に従って、前記アプリケーションキープレカーサに対して実行すべき演算処理を特定し、前記特定された演算処理を前記アプリケーションキープレカーサに対して実行することを特徴とする請求項１乃至請求項３のいずれか１項に記載の再生装置。
【請求項５】
前記演算手段は、前記演算処理指示が送出された後に前記プログラム実行モジュールを介して前記プログラムから送出される、前記アプリケーションキープレカーサに対する演算結果が前記アプリケーションキーであることを示す通知に応答して、前記アプリケーションキープレカーサに対する演算結果を前記アプリケーションキーとして確定することを特徴とする請求項１記載の再生装置。
【請求項６】
記憶メディアに格納されている暗号化されたデジタルコンテンツを、再生装置内に設けられた耐タンパ化された処理モジュールによって、復号する再生方法であって、
前記記憶メディアに格納されたメディアキーブロックを前記再生装置が有するデバイスキーのセットによって処理することによって、前記再生装置が属する再生装置グループまたは前記再生装置単体に固有なデータであって、当該データに所定の演算を施すことによって得られる値が前記記憶メディア上のタイトルキーファイルを復号可能なアプリケーションキーとなるデータである、アプリケーションキープレカーサを算出する処理を、前記処理モジュールによって実行するステップと、
前記記憶メディアに格納されたプログラムを実行するステップと、
前記プログラムから送出される、前記アプリケーションキープレカーサに対する演算処理指示に従って、前記アプリケーションキープレカーサの値および前記アプリケーションキープレカーサに対する演算結果を前記プログラムから隠蔽した状態で、前記アプリケーションキープレカーサに対する演算を実行する処理を前記処理モジュールによって実行する演算処理ステップと、
プレイリストのロード毎に前記アプリケーションキープレカーサに対する演算結果をアプリケーションキーとして使用することによってプレイリストに関連する前記タイトルキーファイルを復号するための処理を、前記処理モジュールによって実行するステップとを具備することを特徴とする再生方法。
【請求項７】
前記記憶メディアに格納されたメディアキーブロックを前記再生装置が有するデバイスキーのセットによって処理することによって、前記再生装置が属する再生装置グループまたは前記再生装置単体に固有なデータであって、当該データに所定の演算を施すことによって得られる値が前記記憶メディア上のタイトルキーファイルを復号可能なメディアキーを算出する処理を前記処理モジュールによって実行するステップをさらに含み、
前記記憶メディア上のタイトルキーファイルはアプリケーションキーにより暗号化されているか、あるいはメディアキーにより暗号化されているかを示すフラグを含むことを特徴とする請求項６記載の再生方法。
【請求項８】
前記プログラムには、複数の再生装置グループまたは複数の再生装置単体それぞれに対応した、異なる複数の演算処理指示が記述されており、
前記プログラムを実行するステップは、前記プログラムを実行することによって、前記再生装置が属する再生装置グループまたは前記再生装置単体を判別するステップと、前記複数の演算処理指示の中から、前記再生装置が属する再生装置グループまたは前記再生装置単体に対応する演算処理指示を選択し、当該選択した演算処理指示を前記処理モジュールに送出するステップとを含むことを特徴とする請求項６記載の再生方法。
【請求項９】
前記演算処理指示は、前記再生装置が属する再生装置グループまたは前記再生装置単体に固有の対応するアプリケーションキープレカーサから前記アプリケーションキーを導出するための演算処理を識別するための識別情報であり、
前記演算処理ステップは、前記識別情報に従って、前記アプリケーションキープレカーサに対して実行すべき演算処理を特定し、前記特定された演算処理を前記アプリケーションキープレカーサに対して実行することを特徴とする請求項７乃至請求項９のいずれか１項に記載の再生方法。
【請求項１０】
前記演算処理ステップは、前記演算処理指示が送出された後に前記プログラムから送出される、前記アプリケーションキープレカーサに対する演算結果が前記アプリケーションキーであることを示す通知に応答して、前記アプリケーションキープレカーサに対する演算結果を前記アプリケーションキーとして確定することを特徴とする請求項７記載の再生方法。
【請求項１１】
タイトルキーにより暗号化されているコンテンツと、
メディアキー・アプリケーションキーにより暗号化されているタイトルキーファイルと、
再生機器のデバイスキーを用いて処理されることによりメディアキーを生成する、あるいはアプリケーションキーを生成する元となるアプリケーションキープレカーサを生成するメディアキーブロックと、
再生機器に前記アプリケーションキープレカーサからアプリケーションキーを演算させるためのプログラムとを格納し、
前記タイトルキーフィアルはタイトルキーがアプリケーションキーにより暗号化されているか、あるいはメディアキーにより暗号化されているかを示すフラグを含む情報記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号化されたデジタルコンテンツを格納する情報記録媒体、およびその再生装置および再生方法に関する。
【背景技術】
【０００２】
近年、動画像のデジタル圧縮符号化技術の進展に伴い、ＨＤ(High Definition)規格の高精細映像を扱うことが可能な再生装置あるいは再生ソフトウェア（以下、両者を単にプレーヤと称する）の開発が進められている。
【０００３】
このようなプレーヤにおいては、ＨＤ  ＤＶＤ(High Definition Digital Versatile Disc)のような情報記録媒体が用いられる。ＨＤ  ＤＶＤのような記憶メディアを用いることにより、ＨＤ映像データと高品質のサラウンドオーディオデータとを一枚の記憶メディアにパッケージ化することができる。
【０００４】
記憶メディアに格納されたデジタルコンテンツをその不正コピーから保護するための技術としては、従来から、ＣＳＳ(Content Scramble System)のような暗号化技術が知られている。
【０００５】
特許文献１には、コピー制御情報が埋め込まれた、映像データのようなデジタルコンテンツのストリームが開示されている。コピー制御情報は、映像データのようなデジタルコンテンツのコピーを制限するためのコピープロテクト機能を実現するために使用される。
【０００６】
また、近年では、ＨＤコンテンツを含む各種デジタルコンテンツを保護するための新たな技術が提案されている。
【０００７】
このコンテンツ保護仕様では、プレーヤのコンテンツ保護モジュールが、当該プレーヤが有するデバイスキーのセットを用いて記憶メディア上のメディアキーブロック（ＭＫＢ）を処理することによってメディアキーを生成する。そして、コンテンツ保護モジュールは、このメディアキーによって記憶メディア上のタイトルキーファイルを復号し、これによって記憶メディア上のデジタルコンテンツを復号するためのタイトルキーをタイトルキーファイルから取得する。
【０００８】
ビデオ、静止画、ＸＭＬファイル、スクリプトを含む、記憶メディア上のコンテンツデータは、タイトルキーファイルに記録されているタイトルキーを用いて復号される。また、タイトルキーは、コンテンツデータの正当性をチェックするためにも用いられる。
【０００９】
ＭＫＢには、プレーヤ単体または一群のプレーヤを無効化（リボーク）する情報が含まれている。無効化されたプレーヤが記憶メディア上のＭＫＢを処理しても正しいメディアキーが得られない。したがって、無効化されたプレーヤが当該記憶メディア上のコンテンツデータを再生することを防止することができる。
【特許文献１】特許第３１６２０４６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかし、もしあるプレーヤがハッキングされて、記憶メディア上のＭＫＢから導出されたメディアキーが当該プレーヤから不正に取り出されてしまうと、以降は、当該プレーヤ上で再生可能な全てのビデオタイトルが不正コピーされてしまう危険がある。
【００１１】
ハッキングされたプレーヤは、上述のように、ＭＫＢを更新することによって無効化する事ができる。ハッキングされたプレーヤを無効化するように更新されたＭＫＢは、コンテンツ保護を統括する団体より発行される。しかし、更新されたＭＫＢが格納された新たなビデオタイトルが流通するまでには、多くの時間が要される。これは、i)更新されたＭＫＢの入手、ii)当該ＭＫＢを用いたディスク製盤、iii)新しいディスクの発売、というステップを踏む必要があるからである。
【００１２】
ＭＫＢが更新される前に発売されたビデオタイトルは不正にコピーされてしまう危険がある。
【００１３】
したがって、補助的な手段として、ビデオタイトルをリリースするスタジオ（コンテンツプロバイダ）が、独自にプレーヤを無効化することができる新たな機能を実現する事が望ましい。換言すれば、メディアキーブロックが更新される前の期間中においても、ビデオタイトルの再生を許可または禁止する制御を柔軟に行うことを可能にする新たな機能の実現が必要である。この場合においても、メディアキー、またはそのメディアキーの導出課程で生成される他のデータ等の漏洩を防止することが必要である。
【００１４】
本発明は上述の事情を考慮してなされたものであり、メディアキーブロックが更新される前の期間中においても、ビデオタイトルのようなデジタルコンテンツの再生を許可または禁止する制御を安全且つ柔軟に実行することが可能な情報記録媒体、再生装置及び再生方法を提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明の一態様によれば、記憶メディアに格納されている暗号化されたデジタルコンテンツを再生する再生装置は、
前記記憶メディアに格納されたプログラムを実行するためのプログラム実行モジュールと、
処理モジュールであって、
前記記憶メディアに格納されたメディアキーブロックを前記再生装置が有するデバイスキーのセットによって処理することによって、前記再生装置が属する再生装置グループまたは前記再生装置単体に固有なデータであって、当該データに所定の演算を施すことによって得られる値が前記記憶メディア上のタイトルキーファイルを復号可能なアプリケーションキーとなるデータである、アプリケーションキープレカーサを算出する手段と、
前記プログラム実行モジュールを介して前記プログラムから送出される、前記アプリケーションキープレカーサに対する演算処理指示に応じて、前記アプリケーションキープレカーサの値および前記アプリケーションキープレカーサに対する演算結果を前記プログラムおよび前記プログラム実行モジュールから隠蔽した状態で、前記アプリケーションキープレカーサに対する演算を実行する演算手段と、
前記アプリケーションキープレカーサに対する演算結果をアプリケーションキーとして使用することによって前記タイトルキーファイルを復号するための処理を実行する手段とを含む、
処理モジュールと
を具備し、
前記処理モジュールはプレイリストのロード毎にプレイリストに関連するタイトルキーファイルを復号するものである。
【００１６】
本発明の他の態様によれば、記憶メディアに格納されている暗号化されたデジタルコンテンツを、再生装置内に設けられた耐タンパ化された処理モジュールによって、復号する再生方法は、
前記記憶メディアに格納されたメディアキーブロックを前記再生装置が有するデバイスキーのセットによって処理することによって、前記再生装置が属する再生装置グループまたは前記再生装置単体に固有なデータであって、当該データに所定の演算を施すことによって得られる値が前記記憶メディア上のタイトルキーファイルを復号可能なアプリケーションキーとなるデータである、アプリケーションキープレカーサを算出する処理を、前記処理モジュールによって実行するステップと、
前記記憶メディアに格納されたプログラムを実行するステップと、
前記プログラムから送出される、前記アプリケーションキープレカーサに対する演算処理指示に従って、前記アプリケーションキープレカーサの値および前記アプリケーションキープレカーサに対する演算結果を前記プログラムから隠蔽した状態で、前記アプリケーションキープレカーサに対する演算を実行する処理を前記処理モジュールによって実行する演算処理ステップと、
プレイリストのロード毎に前記アプリケーションキープレカーサに対する演算結果をアプリケーションキーとして使用することによってプレイリストに関連する前記タイトルキーファイルを復号するための処理を、前記処理モジュールによって実行するステップとを具備するものである。
【００１７】
本発明の他の態様による情報記録媒体は、
タイトルキーにより暗号化されているコンテンツと、
メディアキー・アプリケーションキーにより暗号化されているタイトルキーファイルと、
再生機器のデバイスキーを用いて処理されることによりメディアキーを生成する、あるいはアプリケーションキーを生成する元となるアプリケーションキープレカーサを生成するメディアキーブロックと、
再生機器に前記アプリケーションキープレカーサからアプリケーションキーを演算させるためのプログラムとを格納し、
前記タイトルキーフィアルはタイトルキーがアプリケーションキーにより暗号化されているか、あるいはメディアキーにより暗号化されているかを示すフラグを含むものである。
【発明の効果】
【００１８】
本発明によれば、メディアキーブロックが更新される前の期間中においても、ビデオタイトルのようなデジタルコンテンツの再生を許可または禁止する制御を安全且つ柔軟に実行することが可能となる。
【発明を実施するための最良の形態】
【００１９】
以下、図面を参照して本発明の実施形態を説明する。
【００２０】
図１には、本発明の一実施形態に係る再生装置の構成例が示されている。この再生装置は映像データ（オーディオビジュアルデータ）のようなデータストリームから構成されるデジタルコンテンツを再生するプレーヤである。この再生装置は、例えばＨＤ  ＤＶＤのような記憶メディアに予め格納された、ビデオタイトルのようなデジタルコンテンツを再生するＨＤ  ＤＶＤプレーヤ１０として実現されている。ＨＤ  ＤＶＤプレーヤ１０は、記憶メディアである光ディスクメディア１００に格納されたデジタルコンテンツを再生するのみならず、インターネットのようなネットワークを介してネットワークサーバからダウンロードしたデジタルコンテンツを再生することもできる。
【００２１】
ＨＤ  ＤＶＤプレーヤ１０は、図１に示されているように、ＨＤ  ＤＶＤドライブ１１、データ読み取り部１２、コンテンツ保護モジュール（暗号処理モジュール）１３、スクリプト・エンジン１４、および再生処理部１５を備えている。
【００２２】
ＨＤ  ＤＶＤドライブ１１によって駆動される光ディスクメディア（ＨＤ  ＤＶＤメディア）１００には、暗号化されたデジタルコンテンツ１０１、スクリプト１０２、メディアキーブロック（ＭＫＢ）１０３、およびタイトルキーファイル１０４などが格納されている。
【００２３】
デジタルコンテンツ１０１は、例えば、映画、アニメーションのようなオーディオビジュアルコンテンツである。オーディオビジュアルコンテンツは、ビデオデータとオーディオデータとが多重化されたストリームである。もちろん、オーディオデータのみから構成されるオーディオコンテンツが光ディスクメディアに格納されていても良い。
【００２４】
デジタルコンテンツ１０１は、ＨＤ  ＤＶＤ規格で規定されたエンハンスドビデオオブジェクトＥＶＯＢ（プライマリーエンハンスドビデオオブジェクトＰ−ＥＶＯＢ、またはセカンダリーエンハンスドビデオオブジェクトＳ−ＥＶＯＢ）のようなビデオオブジェクトＶＯＢを含んでいる。ビデオオブジェクトＶＯＢは、複数のビデオオブジェクトユニットＶＯＢＵ（ＨＤ  ＤＶＤ規格で規定された、プライマリーエンハンスドビデオオブジェクトユニットＰ−ＥＶＯＢＵ、セカンダリーエンハンスドビデオオブジェクトＳ−ＥＶＯＢＵ等）から構成されている。ビデオオブジェクトユニットＶＯＢＵは所定の再生時間に対応するデータストリームであり、圧縮符号化されたビデオデータおよび圧縮符号化されたオーディオデータ等を含んでいる。デジタルコンテンツは、例えば、Ｐ−ＥＶＯＢＵ、Ｓ−ＥＶＯＢＵのようなビデオオブジェクトユニットＶＯＢＵを単位として暗号化されている。
【００２５】
スクリプト１０２は、光ディスクメディア１００に格納された複数のスクリプトの一つである。スクリプトとは、ＨＤ  ＤＶＤ規格のアドバンストコンテンツで採用されているＪＰＥＧイメージ、ＰＮＧイメージ、ＭＮＧアニメーション、ＷＡＶＥオーディオ、Ｔｕｒｅ  Ｔｙｐｅフォント等のＷｅｂで広く用いられている各種データの再生を制御する言語の１つである。これらスクリプトの多くは、デジタルコンテンツ１０１をインタラクティブに再生するための手順を記述したプログラムである。本実施形態においては、さらに、ＭＫＢ１０３からメディアキーを導出する処理を制御するためのプログラムであるスクリプト１０２が光ディスクメディア１００に格納されている。
【００２６】
本実施形態は従来のＭＫＢ処理の不具合であるコンテンツ保護を統括する団体がＭＫＢを更新した際、更新前に発売されたディスクが不正にコピーされることを防止するために、コンテンツプロバイダが独自に機器を無効化することが出来るような処理を提案する。通常、デバイスキーをＭＫＢ処理するとメディアキーが導出されるが、あるクラスのデバイスキーの場合（デバイスキーの一部のグループ）、メディアキーが直接導出されるのではなく、メディアキープレカーサが導出される。メディアキープレカーサに対してＫＣＤ（Key Conversion Data、ディスクのリードインエリアに格納）を作用させると、メディアキーが導出される。一方、タイトルキーはメディアキーのみならず、アプリケーションキー（App Key）によっても暗号化される。アプリケーションキーとはプレーヤ１０が有するデバイスキーのセットによってＭＫＢ１０３を処理することによって得られるデータであるアプリケーションキープレカーサに対して所定の演算処理（ソフトＫＣＤ）を施すことによって算出されるキーである。この所定の演算処理はスクリプト１０２によって与えられる。デバイスキーのセットによってＭＫＢを処理してメディアキープレカーサが算出され、これからＫＣＤ処理によりメディアキーを生成する従来のＭＫＢ処理をレガシィＭＫＢ処理と称し、ＭＫＢを処理することにより得られたアプリケーションキープレカーサに対してソフトＫＣＤ処理を施すことによってアプリケーションキーを生成する処理をニューＭＫＢ処理と称する。実施形態のＭＫＢ処理部２０１はニューＭＫＢ処理、レガシィＭＫＢ処理のいずれも実行可能であり、レガシィＭＫＢ処理を実行した場合は、メディアキーを生成して、タイトルキー処理部２０３に供給する。
【００２７】
デバイスキーのセットは、各プレーヤに与えられた秘密の鍵群であり、プレーヤ単体毎にまたはプレーヤグループ毎に異なっている。例えば、同一の製造メーカによって製造されたプレーヤそれぞれは、同一のプレーヤグループに属する。
【００２８】
デバイスキーのセットは、プレーヤ１０の製造時等に当該プレーヤ１０に予め保持されている。プレーヤ１０の有するデバイスキーのセットは、ＭＫＢ１０３を処理して、メディアキー・アプリケーションキーを導出するために必要なデータであるメディアキープレカーサ・アプリケーションキープレカーサを算出するために使用される。メディアキープレカーサ・アプリケーションキープレカーサは、プレーヤ単体毎にまたはプレーヤグループ毎に異なっている。すなわち、メディアキープレカーサ・アプリケーションキープレカーサは、プレーヤ単体またはプレーヤグループに固有のデータであり、且つ、当該データ（メディアキープレカーサ・アプリケーションキープレカーサ）に所定の演算を施すことによって得られる値が光ディスクメディア１００上のタイトルキーファイル１０９を復号するためのメディアキー・アプリケーションキーとなる、データである。つまり、メディアキープレカーサ・アプリケーションキープレカーサをＡｍｐとし、メディアキー・アプリケーションキーをＡｍとすると、
Ａｍ＝ｆ（Ａｍｐ）
という関係が成り立つ。ここで、ｆは、ある所定の演算（オペレーションとも云う）である。
【００２９】
スクリプト１０２には、複数のプレーヤグループまたは複数のプレーヤ単体それぞれに対応した、異なる複数の演算処理指示を予め記述することができる。この場合、スクリプト１０２は、プレーヤ１０が属するプレーヤグループまたはプレーヤ１０単体を判別し、複数の演算処理指示の中から、プレーヤ１０が属するプレーヤグループまたはプレーヤ１０単体に対応する演算処理指示を選択し、当該選択した演算処理指示をコンテンツ保護モジュール１３に送出する。スクリプトは再生機器のメーカ毎に異なるパターンが用意され、ＭＫＢ処理により生成されたメーカ毎に異なるアプリケーションキーに対してスクリプトにより演算処理を施すことにより異なるメーカに共通のアプリケーションキーが生成される。スクリプト１０２はユーザインプットイベント、プレーヤ再生イベント等のイベントにより再生シーケンスやグラフィックプレーンのグラフィックも制御する。
【００３０】
ＭＫＢ１０３は、プレーヤ単体またはプレーヤグループに固有の上述のアプリケーションキープレカーサに対するアクセスを提供するデータブロックである。すなわち、ＭＫＢ１０３は、コンテンツ保護を統括する団体によって生成され、各プレーヤが、自身のデバイスキーのセットを使用することによって、当該プレーヤ単体または当該プレーヤが属するプレーヤグループに固有のアプリケーションキープレカーサを算出することを許可するデータブロックである。ＭＫＢ１０３は、subset-difference tree systemと称されるツリー構造を有している。
【００３１】
タイトルキーファイル１０４は幾つかのタイトルキーを含むファイルであり、暗号化されている。コンテンツ１０１はタイトルキーによって暗号化されている。このタイトルキーは、コンテンツ１０１を復号するためのキーとして使用される。タイトルキーファイル１０４はプレイリスト毎に作られている。１つのタイトルキーファイルは２つ以上のプレイリストから参照されることが禁止されている。プレイリストのファイル名ＶＰＬＩＳＴ％％％がタイトルキーファイルのファイル名ＶＴＫＦ％％％に変換され、プレイリストのファイル名ＡＰＬＩＳＴ％％％がタイトルキーファイルのファイル名ＡＴＫＦ％％％に変換される。％％％は０００から９９９のいずれかの値である。タイトルキーファイルの一例を図１０に示す。
【００３２】
バイト位置０からバイト位置１１の１２バイトのＴＫＦ＿ＩＤはタイトルキーファイルの識別子である。バイト位置１２からバイト位置１５の４バイトのＨＤ＿ＶＴＫＦ＿ＳＩＺＥはタイトルキーファイルの最終アドレス（固定値：２４８０）を示す。バイト位置１６からバイト位置２７の１２バイトのＰＬＡＹＬＩＳＴ＿ＮＡＭＥは本タイトルキーが付随しているプレイリストの名前である。
【００３３】
バイト位置２８のＵＳＥ＿ＡＰＰ＿ＫＥＹはタイトルキーが（レガシィＭＫＢ処理により生成された）メディアキーで暗号化されているか、（ニューＭＫＢ処理により生成された）アプリケーションキーで暗号化されているかを示す。この値が“１”であれば、タイトルキーがアプリケーションキーで暗号化されていることを示し、この値が“０”であれば、タイトルキーがメディアキーで暗号化されていることを示す。
【００３４】
バイト位置３２からバイト位置３３の２バイトのＶＥＲＮはタイトルキーファイルのバージョン番号を示す。バイト位置１２８からバイト位置２４３１までは各３６バイトのタイトルキーエントリが６４個格納される。実際のタイトルキーは１６バイトである。バイト位置２４６４からバイト位置２４７９までの１６バイトのＴＫＦ  ＭＡＣはバイト位置０からバイト位置２４６３までのデータのＣＭＡＣ値を格納する。ＣＭＡＣ値の計算のキーはボリュームユニークキーである。
【００３５】
データ読み取り部１２は、ＨＤ  ＤＶＤドライブ１１をアクセスして、光ディスクメディア１００に格納されたデータ（デジタルコンテンツ１０１、スクリプト１０２、ＭＫＢ１０３、およびタイトルキーファイル１０４など）をリードする。
【００３６】
コンテンツ保護モジュール１３は、コンテンツ保護を統括する団体で規定された著作権保護機能を実現するための処理モジュールであり、データ読み取り部１２と再生処理部１５との間に配置されている。コンテンツ保護モジュール１３はＴＲＳ（タンパ・レジスタント・ソフトウェア）等の技術によって耐タンパ化されたモジュールであり、コンテンツ１０１を復号するための処理を実行する。
【００３７】
コンテンツ保護モジュール１３は、ＭＫＢ処理部２０１、演算処理部２０２、タイトルキー処理部２０３、およびコンテンツ復号処理部２０４等を備えている。
【００３８】
ＭＫＢ処理部２０１は、光ディスクメディア１００に格納されたＭＫＢ１０３をプレーヤ１０が有するデバイスキーのセットによって処理することによって、プレーヤ１０が属するプレーヤグループまたはプレーヤ１０単体に固有なデータである上述のメディアキープレカーサ・アプリケーションキープレカーサを算出する。
【００３９】
演算処理部２０２は、コンテンツ保護モジュール１３内に保持されているメディアキープレカーサ・アプリケーションキープレカーサを操作するためのインタフェースをスクリプト１０２に対して提供する。この場合、演算処理部２０２は、コンテンツ保護モジュール１３内に保持されているメディアキープレカーサ・アプリケーションキープレカーサの値をスクリプト１０２、スクリプト・エンジン１４に渡すのではなく、スクリプト・エンジン１４を介してスクリプト１０２から送出される、メディアキープレカーサ・アプリケーションキープレカーサに対する演算処理指示に応じて、メディアキープレカーサ・アプリケーションキープレカーサに対する演算を実行する。この演算は、メディアキープレカーサ・アプリケーションキープレカーサの値およびメディアキープレカーサ・アプリケーションキープレカーサに対する演算結果をスクリプト１０２、およびスクリプト・エンジン１４から隠蔽した状態で実行される。このように、スクリプト１０２から送出される演算処理指示を演算処理部２０２が受信し、メディアキープレカーサ・アプリケーションキープレカーサに対する実際の演算は演算処理部２０２自体が行うことにより、メディアキープレカーサ・アプリケーションキープレカーサの値およびメディアキープレカーサ・アプリケーションキープレカーサに対する演算結果を隠蔽することができる。
【００４０】
例えば、演算処理部２０２は、メディアキープレカーサ・アプリケーションキープレカーサを演算するための幾つかの関数を有しており、スクリプト１０２は、これら関数を通じて、メディアキープレカーサ・アプリケーションキープレカーサに対して実行すべき演算内容を指示する。スクリプト１０２はメディアキープレカーサ・アプリケーションキープレカーサを直接操作することはできず、メディアキープレカーサ・アプリケーションキープレカーサに対する操作は、演算処理部２０２が有する関数を通じてのみ実行可能である。
【００４１】
もしスクリプト１０２から演算処理部２０２に対して正しい演算処理指示が送信されたならば、演算処理部２０２は、メディアキープレカーサ・アプリケーションキープレカーサに対して正しい演算処理を施すことができ、これによって正しいメディアキープレカーサあるいはアプリケーションキーを算出することができる。一方、スクリプト１０２から演算処理部２０２に対して正しい演算処理指示が送信されなかったならば、演算処理部２０２は、正しいメディアキープレカーサあるいはアプリケーションキーを算出することができない。コンテンツ１０１に付随するスクリプト１０２はスタジオが独自に提供可能である。このため、スタジオはスクリプト１０２の内容を変更するだけで、コンテンツ１０１の再生を許可または禁止するための制御を柔軟に行うことが出来る。しかも、演算処理部２０２は、コンテンツ保護モジュール１３内に保持されているメディアキープレカーサ・アプリケーションキープレカーサの値をスクリプト１０２、スクリプト・エンジン１４に渡すのではなく、スクリプト１０２から送出される演算処理指示に応じてメディアキープレカーサ・アプリケーションキープレカーサに対する演算を実行するように構成されているので、メディアキープレカーサ・アプリケーションキープレカーサの値およびメディアキープレカーサ・アプリケーションキープレカーサに対する演算結果をスクリプト１０２、スクリプト・エンジン１４から隠蔽することができ、メディアキープレカーサ・アプリケーションキープレカーサに対する演算を安全に実行することが可能となる。
【００４２】
タイトルキー処理部２０３は、演算処理部２０２によるメディアキープレカーサ・アプリケーションキープレカーサに対する演算結果をメディアキー・アプリケーションキーとして使用することによって、タイトルキーファイル１０４を復号するための処理を実行する。演算処理部２０２によって正しいメディアキー・アプリケーションキーが算出されたならば、タイトルキー処理部２０３は、そのメディアキー・アプリケーションキーを用いてタイトルキーファイル１０４を正しく復号することができ、これにより、タイトルキーファイル１０４から、コンテンツ１０１を復号するためのタイトルキーを取得することができる。
【００４３】
コンテンツ復号処理部２０４は、タイトルキー処理部２０３によって得られたタイトルキーによってコンテンツ１０１を復号する。
【００４４】
再生処理部１５は、コンテンツ復号処理部２０４によって復号されたコンテンツ１０１を再生するための再生処理を実行する。再生処理においては、Ｐ−ＥＶＯＢＵ、Ｓ−ＥＶＯＢＵのような各ビデオオブジェクトユニットＶＯＢＵに含まれるビデオデータおよびオーディオデータをそれぞれデコードする処理等が実行される。
【００４５】
スクリプト・エンジン１４は、スクリプト１０２を実行するプログラム実行モジュールである。スクリプト・エンジン１４は、インタープリタのようなプログラム実行環境として機能する。
【００４６】
次に、メディアキープレカーサ・アプリケーションキープレカーサとメディアキー・アプリケーションキーとの関係の例を具体的に説明する。
【００４７】
ＭＫＢ１０３は、プレーヤ１０のコンテンツ保護モジュール１３がＭＫＢ１０３を処理した結果に、あるオペレーションｆを施したものがメディアキー・アプリケーションキーになるように作成されている。コンテンツ保護モジュール１３によるＭＫＢ処理によって導出されるデータは上述のメディアキープレカーサ・アプリケーションキープレカーサである。上述したように、Ａｍｐをメディアキープレカーサ・アプリケーションキープレカーサ、Ａｍをメディアキー・アプリケーションキーとすると、Ａｍ＝ｆ（Ａｍｐ）という関係が成立する。
【００４８】
オペレーションｆの内容はプレーヤによって異なる。たとえばあるメーカによって製造されたプレーヤそれぞれから構成される、一群のプレーヤは、ディスク上のＭＫＢ１０３を処理する事により、同一のメディアキープレカーサ・アプリケーションキープレカーサを出力する。たとえばある別のメーカによって製造されたプレーヤそれぞれから構成される、別の一群のプレーヤは、同一のＭＫＢ１０３を処理して、前記のメディアキープレカーサ・アプリケーションキープレカーサとは異なったメディアキープレカーサ・アプリケーションキープレカーサを出力する。各プレーヤにはＮｏｄｅ  ＩＤと呼ばれる数値（識別情報）が割り当てられている。
【００４９】
今、図２に示されているように、ある一群のＮｏｄｅ  ＩＤに対応するメディアキープレカーサ・アプリケーションキープレカーサをＡｍｐ０、別の一群のＮｏｄｅ  ＩＤに対応するメディアキープレカーサ・アプリケーションキープレカーサをＡｍｐ１、更に又別の一群のＮｏｄｅ  ＩＤに対応するメディアキープレカーサ・アプリケーションキープレカーサをＡｍｐ２、…とする。Ａｍｐ０，Ａｍｐ１，Ａｍｐ２，…それぞれに対応するオペレーションｆ０、ｆ１、ｆ２、…が存在して、ｆ０（Ａｍｐ０）＝ｆ１（Ａｍｐ１）＝ｆ２（Ａｍｐ２）＝…＝Ａｍが成立する。
【００５０】
すなわち、図２においては、Ｎｏｄｅ  ＩＤ＝０，Ｎｏｄｅ  ＩＤ＝１，Ｎｏｄｅ  ＩＤ＝２，…Ｎｏｄｅ  ＩＤ＝９９のプレーヤそれぞれは、ある同一のプレーヤグループに属している。このプレーヤグループの各プレーヤが当該プレーヤに固有のデバイスキーのセットを用いてＭＫＢ１０３を処理する事によって得られるメディアキープレカーサ・アプリケーションキープレカーサは、Ａｍｐ０である。Ａｍｐ０に対応するオペレーションｆはｆ０である。
【００５１】
Ｎｏｄｅ  ＩＤ＝１００，Ｎｏｄｅ  ＩＤ＝１０１，Ｎｏｄｅ  ＩＤ＝１０２，…Ｎｏｄｅ  ＩＤ＝１９９のプレーヤそれぞれは、別の同一のプレーヤグループに属している。このプレーヤグループの各プレーヤが当該プレーヤに固有のデバイスキーのセットを用いてＭＫＢ１０３を処理する事によって得られるメディアキープレカーサ・アプリケーションキープレカーサは、Ａｍｐ１である。Ａｍｐ１に対応するオペレーションｆは、ｆ１である。
【００５２】
Ｎｏｄｅ  ＩＤ＝５００，Ｎｏｄｅ  ＩＤ＝５０１，Ｎｏｄｅ  ＩＤ＝５０２，…Ｎｏｄｅ  ＩＤ＝５９９のプレーヤそれぞれは、さらに別の同一のプレーヤグループに属している。このプレーヤグループの各プレーヤが当該プレーヤに固有のデバイスキーのセットを用いてＭＫＢ１０３を処理する事によって得られるアプリケーションキープレカーサは、Ａｍｐ５である。Ａｍｐ５に対応するオペレーションｆは、ｆ５である。
【００５３】
オペレーションｆ１、ｆ２、…ｆ５、…の実行指示はスクリプト１０２からコンテンツ保護モジュール１３に与えられる。
【００５４】
次に、図３を参照して、スクリプト１０２とコンテンツ保護モジュール１３の演算処理部２０２との間の具体的なインタフェースの例について説明する。
【００５５】
メディアキープレカーサ・アプリケーションキープレカーサ、メディアキー・アプリケーションキーなどのデータは、コンテンツ保護モジュール１３内に格納されている。コンテンツ保護モジュール１３は耐タンパ化されており、当該コンテンツ保護モジュール１３の外部から当該コンテンツ保護モジュール１３内のデータを読み出す事や、当該コンテンツ保護モジュール１３内部の処理内容を知る事はできない。
【００５６】
一方、スクリプト・エンジン１４は耐タンパ化されていない。従って、スクリプト・エンジン１４で実行されるスクリプト１０２が、メディアキープレカーサ・アプリケーションキープレカーサの値、およびメディアキー・アプリケーションキーの値を、コンテンツ保護モジュール１３から読み出すことは、安全上好ましくない。すなわち、もしスクリプト１０２がメディアキー・アプリケーションキーの値を読み出したとすると、スクリプト・エンジン１４には耐タンパ性が無い為、ハッカーがメディアキー・アプリケーションキーの値を知る可能性がある。
【００５７】
しかし、スクリプト１０２は、メディアキープレカーサ・アプリケーションキープレカーサやメディアキー・アプリケーションキーを操作する必要がある。具体的には、スクリプト１０２は、メディアキー・アプリケーションキーを導出するために、メディアキープレカーサ・アプリケーションキープレカーサに対して、例えば、ある数値を加える、あるビット数シフト演算を行う、などの操作を施す必要がある。この一連の操作が前述のオペレーションｆを構成する事になる。その為、コンテンツ保護モジュール１３内の演算処理部２０２には、メディアキープレカーサ・アプリケーションキープレカーサをスクリプト１０２が操作するためのハンドルが用意されている。このハンドルは、スクリプト１０２が、コンテンツ保護モジュール１３に対して、そのコンテンツ保護モジュール１３内に保持されているメディアキープレカーサ・アプリケーションキープレカーサに施すべき演算を指示することを可能にするためのインタフェースである。このハンドルは、例えば、メディアキープレカーサ・アプリケーションキープレカーサに対して演算処理をそれぞれ施すための関数群と、メディアキープレカーサ・アプリケーションキープレカーサに対する演算結果がメディアキー・アプリケーションキーであることをコンテンツ保護モジュール１３に通知するための関数等とによって実現することができる。例えば、このハンドルは、オブジェクト指向プログラミングにおけるクラスによって実現することができる。
【００５８】
図４は、上述のハンドルを実現するためのクラスの例を示している。図４においては、クラス（ｃｌａｓｓ  ＭＫｅｙ）は、Ｃ++言語によって記述されている。
【００５９】
ｃｌａｓｓ  ＡＫｅｙは１６バイトの数値を格納しているが、ｃｌａｓｓ  ＡＫｅｙには、当該数値をスクリプト１０２が読み出す手段は提供していない。しかし、ｃｌａｓｓ  ＡＫｅｙには、当該数値に対して、代入演算、加法演算、減法演算、乗法演算、除法演算、剰余演算、左シフト演算、右シフト演算、ビット単位の論理積演算、ビット単位の排他的論理和演算、ビット単位の論理和演算、左ローテート、右ローテート、といった種々の演算を行うための複数のメンバ関数が用意されている。スクリプト１０２は、これらメンバ関数の組み合わせによって、実行すべきオペレーションｆを演算処理部２０２に指示することができる。
【００６０】
なお、必ずしも、実行すべきオペレーションｆ、つまり実行すべき演算処理の内容自体を、スクリプト１０２からコンテンツ保護モジュール１３に送出する必要はなく、例えば、実行すべきオペレーションｆを識別する識別情報のみをスクリプト１０２からコンテンツ保護モジュール１３に送出するようにしてもよい。この場合、コンテンツ保護モジュール１３の演算処理部２０２は、識別情報に従って、アプリケーションキープレカーサに対して実行すべき演算処理を特定し、特定された演算処理をメディアキープレカーサ・アプリケーションキープレカーサに対して実行する。これにより、メディアキープレカーサ・アプリケーションキープレカーサに対して実行すべき演算処理の内容、つまりオペレーションｆの内容をグローバルシークレットとすることが可能となり、より安全性を高めることが出来る。
【００６１】
スクリプト１０２は、ｃｌａｓｓ  ＡＫｅｙを呼び出し、そして、ｃｌａｓｓ  ＡＫｅｙ内に定義されたメンバ関数を用いて、アプリケーションキープレカーサの値によって初期化されているＡＫｅｙ変数に対するオペレーションｆの実行を演算処理部２０２に指示する。この後、スクリプト１０２は、ＡｐｐＫｅｙ（）メソッドを呼び出す。このメソッドは、コンテンツ保護モジュール１４に対して、現在のＭＫｅｙ変数の値がメディアキー・アプリケーションキーであることを通知する。演算処理部２０２は、演算処理指示の後にスクリプト１０２から送出される上述の通知に応答して、メディアキープレカーサ・アプリケーションキープレカーサに対する演算結果、つまり現在のＡＫｅｙ変数の値を、メディアキー・アプリケーションキーとして確定する。換言すれば、上述の通知に応答して、現在のＡＫｅｙ変数の値をメディアキー・アプリケーションキーとして使用することによって、タイトルキーファイルを復号する処理が開始される。オペレーションｆは様々な演算の組み合わせから構成されるので、上述の通知により、演算処理部２０２は、メディアキープレカーサ・アプリケーションキープレカーサに対する演算処理が完了したことを正しく判別すること出来る。
【００６２】
このように、メディアキープレカーサ・アプリケーションキープレカーサの値およびメディアキープレカーサ・アプリケーションキープレカーサを操作するための手続きはカプセル化されており、スクリプト１０２は、メディアキープレカーサ・アプリケーションキープレカーサの値を直接操作することはできず、ｃｌａｓｓ  ＡＫｅｙ内の関数を通じてのみメディアキープレカーサ・アプリケーションキープレカーサを操作することができる。
【００６３】
次に、スクリプト１０２の例を説明する。
【００６４】
上述したように、スクリプト１０２は、まずｃｌａｓｓ  ＡＫｅｙを呼び出し、そしてプレーヤ１０が属するプレーヤグループを判別する。そして、スクリプト１０２は、プレーヤ１０が属するプレーヤグループに対応するオペレーションｆの実行を、演算処理指示としてコンテンツ保護モジュール１４に送出する。そして、スクリプト１０２は、ＡｐｐＫｅｙ（）メソッドを呼び出して、現在のＡＫｅｙ変数の値がメディアキー・アプリケーションキーであることをコンテンツ保護モジュール１４に通知する。
【００６５】
図５には、スクリプト１０２の記述例が示されている。
【００６６】
図５においては、スクリプト１０２をＣ++言語によって記述した例が示されている。スクリプト１０２においては、プレーヤ１０が属するプレーヤグループを判別するための関数（ＳＷ＝ｎｏｄｅＩＤ／１００）が含まれている。この関数は、例えば、ｎｏｄｅＩＤを１００で割ることにより得られる値（商）が０，１，２，３，…９９のいずれであるかを判別する。商０，１，２，３，…９９それぞれの値は、プレーヤグループを示している。また、スクリプト１０２においては、プレーヤグループ０，１，２，３，…９９それぞれに対応する演算処理指示として、オペレーションｆ０，ｆ１，ｆ２，ｆ３，…ｆ９９が記述されている。オペレーションｆ０，ｆ１，ｆ２，ｆ３，…ｆ９９は、実行すべき実際の演算処理の内容そのものを記述したものでもよいが、上述したように、実行すべき演算処理を識別するための識別情報を記述したものでもよい。このような識別情報を用いることにより、オペレーションｆの内容を外部から隠蔽することが可能となり、メディアキー・アプリケーションキーをより安全に保護することが可能となる。
【００６７】
さらに、スクリプト１０２においては、上述のＡｐｐＫｅｙ（）メソッドを呼び出して、現在のＡＫｅｙ変数の値がメディアキー・アプリケーションキーであることをコンテンツ保護モジュール１４に通知するためのコード（ｒｅｔｕｒｎ  ｍｋｐ．ＡｐｐＫｅｙ（）；）も記述されている。
【００６８】
さて、ここで、スタジオがｎｏｄｅＩＤ／１００が９に等しいプレーヤ、つまりプレーヤグループ９に属するプレーヤを無効化する場合を想定する。この場合、スタジオは、図６に示すようなスクリプト１０２を光ディスクメディア１００に記録する。
【００６９】
図６のスクリプト１０２においては、プレーヤグループ９に対応する演算処理指示が記述されていない。このため、光ディスクメディア１００が挿入されたプレーヤがプレーヤグループ９に属するならば、スクリプト１０２は、正しい演算処理指示（ｆ９）をコンテンツ保護モジュール１３の演算処理部２０２に与えない。この結果、プレーヤグループ９に属する各プレーヤは、正しいメディアキー・アプリケーションキーを算出することが出来ず、結果として光ディスクメディア１００に格納されたコンテンツ１０１を正しく再生することが出来ない。例えば、図３に示されているようにプレーヤ１０のｎｏｄｅＩＤが９０５であるならば、プレーヤ１０はプレーヤグループ９に属するので、スクリプト１０２は、正しい演算処理指示（ｆ９）をコンテンツ保護モジュール１３の演算処理部２０２に与えない。
【００７０】
なお、リボーク対象のプレーヤグループ９に演算処理指示を与えないのではなく、正しいオペレーションｆ９とは異なる間違ったオペレーションをプレーヤグループ９に対応する演算処理指示としてスクリプト１０２に記述してもよい。
【００７１】
また、ｎｏｄｅＩＤを１００で割ることにより得られる値に基づいてプレーヤグループを特定する代わりに、各プレーヤのメーカＩＤなどを用いてプレーヤそれぞれをメーカ別にグループ分けしてもよい。
【００７２】
次に、図７のフローチャートを参照して、スクリプト１０２によって実行される処理手順の例を説明する。
【００７３】
プレーヤ１０内に設けられたＣＰＵのようなプロセッサは、スクリプト・エンジン１４上でスクリプト１０２を実行する。スクリプト１０２はスクリプト・エンジン１４上で起動され、以下の処理を実行する。
【００７４】
スクリプト１０２は、まず、ｃｌａｓｓ  ＡＫｅｙを呼び出し、そしてプレーヤ１０が属するプレーヤグループを判別する（ステップＳ１０１）。ステップＳ１０１では、例えば、スクリプト１０２は、プレーヤ１０のｎｏｄｅＩＤを１００で割る処理を実行する。次いで、スクリプト１０２は、スクリプト１０２に記述された複数の演算処理指示（オペレーション）の中から、プレーヤ１０が属するプレーヤグループに対応する演算処理指示（オペレーション）を選択する。例えば、プレーヤ１０が属するプレーヤグループに対応する演算処理指示がスクリプト１０２に記述されていない場合には、プレーヤ１０が属するプレーヤグループはリボーク対象のプレーヤグループであると判定される（ステップＳ１０２のＹＥＳ）。この場合、スクリプト１０２は、コンテンツ保護モジュール１３に演算処理指示を送出することなく、処理を終了する。
【００７５】
一方、プレーヤ１０が属するプレーヤグループに対応する演算処理指示がスクリプト１０２に記述されている場合、つまりプレーヤ１０が属するプレーヤグループがリボーク対象のプレーヤグループではないならば（ステップＳ１０２のＮＯ）、スクリプト１０２は、プレーヤ１０が属するプレーヤグループに対応する演算処理指示をスクリプト・エンジン１４を介してコンテンツ保護モジュール１３に送出する（ステップＳ１０４）。この後、スクリプト１０２は、ＡｐｐＫｅｙ（）メソッドを呼び出して、現在のＡＫｅｙ変数の値がメディアキー・アプリケーションキーであることをコンテンツ保護モジュール１４に通知する（ステップＳ１０４）。
【００７６】
次に、図８のフローチャートを参照して、コンテンツ保護モジュール１４によって実行される一連の処理の手順を説明する。
【００７７】
コンテンツ保護モジュール１４は、プレーヤ１０の有するデバイスキーのセットによってＭＫＢ１０３を処理することによって、プレーヤ１０またはプレーヤ１０が属するプレーヤグループに固有のアプリケーションキープレカーサを算出する（ステップＳ２０１）。次いで、コンテンツ保護モジュール１４は、スクリプト１０２から送出される演算処理指示を待つ。
【００７８】
スクリプト１０２から送出される演算処理指示をスクリプト・エンジン１４を介して受信すると、コンテンツ保護モジュール１４は、受信した演算処理指示に応じて、アプリケーションキープレカーサに対する演算処理を、アプリケーションキープレカーサの値およびアプリケーションキープレカーサに対する演算結果をスクリプト１０２およびスクリプト・エンジン１４の各々から隠蔽した状態で、実行する（ステップＳ２０３）。次いで、コンテンツ保護モジュール１４は、スクリプト１０２から送出される、アプリケーションキープレカーサに対する演算結果がアプリケーションキーであることを示す通知を待つ（ステップＳ２０４）。
【００７９】
この通知をスクリプト・エンジン１４を介して受信すると、コンテンツ保護モジュール１４は、アプリケーションキープレカーサに対する演算結果をアプリケーションキーとして確定し、そのアプリケーションキーによってタイトルキーファイル１０４を処理することにより、タイトルキーをタイトルキーファイル１０４から取得する（ステップＳ２０５）。次いで、コンテンツ保護モジュール１４は、取得したタイトルキーによってコンテンツ１０１を復号する（ステップＳ２０６）。
【００８０】
なお、上述の通知を待たずに、演算処理の実行終了に応答してステップＳ２０５の処理を自動的に開始するようにしてもよい。
【００８１】
ニューＭＫＢ処理では、既存のコンテンツ保護規格で定義されているコンテンツの復号処理に追加する形で図８に示すような新たな復号処理が定義されることになる。しかし、この追加処理を、単純に既存のＨＤ  ＤＶＤ−Ｖｉｄｅｏ規格・コンテンツ保護規格の起動シーケンスに適用した場合、既存の規格・実装への変更が大きくなり、現実的ではない。図８の処理を単純に既存のＨＤ  ＤＶＤ−Ｖｉｄｅｏ規格・コンテンツ保護規格の起動シーケンスに適用することを考えると、例えば、機器がニューＭＫＢ処理に対応しているか否かを先ず判定し、対応している機器であれば、図８のようなニューＭＫＢ処理を行い、アプリケーションキープレカーサからアプリケーションキーを求め（Pre-navigation処理）、アプリケーションキーでタイトルキーを復号し、そのタイトルキーで復号されるスクリプト（例えば、スニッフィング(Sniffing)）を実行した後、ファーストプレイリストを読み込むことが考えられる。しかし、ＨＤ  ＤＶＤ−Ｖｉｄｅｏ規格では、起動シーケンスの最初はプレイリストの解析から行われるというフローになっている。従って、プレイリストの実行前に何らかのスクリプト（レガシィあるいはニューＭＫＢを判定するスクリプトや、プレナビゲーションスクリプト、スニッフィングスクリプト）を実行できるようにフローを変更することは、既存の規格・実装への変更が大きく、好ましくない。
【００８２】
そこで、本実施形態は既存のＨＤ  ＤＶＤ−Ｖｉｄｅｏ規格・コンテンツ保護規格への変更を抑えたニューＭＫＢ処理の実装方法を提供する。起動シーケンスを図９に示す。
【００８３】
ここでは、プレイリストは４つ（タイトルキーファイルも４つ）を想定している。タイトルキーファイルＴＫＦ０００、ＴＫＦ００２、ＴＫＦ００３ではタイトルキーはメディアキーで暗号化され、タイトルキーファイルＴＫＦ００１ではタイトルキーはアプリケーションキーで暗号化されているとする。プレイリストファイル名は、ＶＰＬＳＴ％％％あるいはＡＰＬＳＴ％％％である。＆＆＆は０００〜９９９までの任意の数である。起動シーケンスでは最大の数を持つプレイリストを最初に読む。そのため、ブロック＃１２で、プレイリスト００３に付随するコンテンツ保護関連のファイルが処理される。ここでは、レガシィＭＫＢ処理が行われる。すなわち、プレーヤ１０が有するデバイスキーのセットによってＭＫＢ１０３を処理することによってメディアキープレカーサが生成され、これからメディアキーが生成され、これによりタイトルキーファイルＴＫＦ００３が復号され、タイトルキーＴＫ００３が生成される。ブロック＃１４でプレイリスト００３が読み込まれ、タイトルキーＴＫ００３で復号されたスクリプトが実行される。このスクリプトは再生機器がニューＭＫＢ処理に対応しているニュー機器か、対応していないレガシィ機器であるかを判別する（ブロック＃１６）。
【００８４】
レガシィ機器であると判定されると、コンテンツの本編を再生するプレイリストに直接ジャンプし、ニューＭＫＢ処理を行うようなプレイリストには遷移しない。
【００８５】
ニュー機器であると判定されると、アプリケーションキーを導出するためのスクリプトを実行するプレイリストに遷移する。ブロック＃１８でプレイリスト００２に付随するコンテンツ保護関連のファイルが処理される。ここでは、レガシィＭＫＢ処理とニューＭＫＢ処理が行われる。レガシィＭＫＢ処理で指定可能なファイル名はＭＫＢＲＯＭだけではなく、ＭＫＢ００１なども指定可能である。この場合、生成されるメディアキーは異なる。レガシィＭＫＢ処理によりメディアキーが生成され、これによりタイトルキーファイルＴＫＦ００２が復号され、タイトルキーＴＫ００２が生成される。ニューＭＫＢ処理によりアプリケーションキープレカーサが生成される。
【００８６】
ブロック＃２０でプレイリスト００２が読み込まれ、タイトルキーＴＫ００２で復号されたスクリプトが実行される。再生機器毎にアサインされるデバイスキーには、対応してデバイスノードという情報が付随している。このデバイスキーという情報を使用して、スクリプトの処理が分岐する。デバイスキーに依存して、アプリケーションキープレカーサの値は変化するので、スクリプト処理中にデバイスキーの値を取得して、その値に応じた処理（ソフトＫＣＤ処理）を実行し、デバイスに依存しないアプリケーションキーを導出する。このスクリプトはアプリケーションキープレカーサからアプリケーションキーを演算する（ブロック＃２４）。
【００８７】
プレイリスト００２の読み込み後、ブロック＃２２でプレイリスト００１に付随するコンテンツ保護関連のファイルが処理される。ここでは、レガシィＭＫＢ処理が行われる。ブロック＃２４で演算されたアプリケーションキーによりタイトルキーファイルＴＫＦ００１が復号され、タイトルキーＴＫ００１が生成される。ブロック＃２６でプレイリスト００１が読み込まれ、タイトルキーＴＫ００１で復号されたスクリプトが実行される。このスクリプトはウィルススキャンのような機器の正当性を判断するスクリプト（例えば、スニッフィング(Sniffing)）であり、正当性が確認できたら、コンテンツの本編を再生するプレイリストにジャンプする。ブロック＃２８でプレイリスト０００に付随するコンテンツ保護関連のファイルが処理される。ここでは、レガシィＭＫＢ処理が行われ、メディアキーが生成され、これによりタイトルキーファイルＴＫＦ０００が復号され、タイトルキーＴＫ０００が生成される。ブロック＃３０でプレイリスト０００が読み込まれ、タイトルキーＴＫ０００で復号されたスクリプトが実行される。
【００８８】
以上説明したように、図９のフローチャートに示すように、本実施形態の起動シーケンスでは、ブロック＃１８でニューＭＫＢ処理が追加された点と、アプリケーションキーを生成するブロック＃２４が追加された点と、ブロック＃２２でタイトルキーファイルをメディアキーではなくアプリケーションキーで復号する点が異なるだけであり、他は既存のＨＤ  ＤＶＤ−Ｖｉｄｅｏ規格・コンテンツ保護規格と変わらない。図９のシーケンスではタイトルキーをアプリケーションキーで暗号化することによって、変更を最小限にすることができる。
【００８９】
以上のように、本実施形態においては、スクリプト１０２の制御で、コンテンツ保護モジュール１３による正しいアプリケーションキーの導出を許可又は禁止することができる。スクリプト１０２はスタジオが独自に提供可能である。したがって、ＭＫＢ１０３が更新される前の期間中においても、ビデオタイトルのようなコンテンツ１０１の再生を許可または禁止する制御を、スタジオの独自の判断で柔軟に行うことができる。よって、スタジオは、独自に特定のプレーヤまたはプレーヤグループをリボークすることができる。
【００９０】
アプリケーションキーが正しく導出されないと実行されないコンテンツを作成したい場合、アプリケーションキー自身を使用して暗号化を施すと、既存のＨＤ  ＤＶＤ−Ｖｉｄｅｏ規格・コンテンツ保護規格への変更が大きく、実装負荷が高い。しかし、コンテンツを暗号化しているタイトルキーを追加的に暗号化する鍵としてアプリケーションキーを使用しているのでコンテンツ復号の処理は変更しないで済むため、規格の変更、実装負荷の増加を抑えることができる。
【００９１】
また、タイトルキーファイルにアプリケーションキーで追加的に暗号化されていることを示すフラグＵＳＥ＿ＡＰＰ＿ＫＥＹが含まれていることも規格の変更、実装負荷の増加を抑えることに寄与する。コンテンツ保護規格においては、タイトルキーファイルのファイル名は、プレイリスト名に従属して決定されるため、ファイル名によってアプリケーションキーによる暗号化の有無を識別するようにすることは、規格・実装とも変更量が大きい。既存のタイトルキーファイルに、追加的にアプリケーションキーによる暗号化有無を示すフィールドを追加する方法であれば、タイトルキーファイルの内部処理にアプリケーションキーによる復号処理を隠蔽できるため、規格・実装の変更を抑えることができる。
【００９２】
また、アプリケーションキープレカーサに対する演算処理においては、コンテンツ保護モジュール１３は、アプリケーションキープレカーサをスクリプト１０２に渡すのではなく、スクリプト１０２からの演算処理指示に従って、コンテンツ保護モジュール１３内に保持されているアプリケーションキープレカーサに対する演算処理を実行する。このため、アプリケーションキープレカーサの値とその演算結果の値とをスクリプト１０２から隠蔽することができ、スクリプト１０２によってコンテンツ保護モジュール１３によるアプリケーションキーの導出を制御するという機能を、安全に実行することができる。
【００９３】
なお、図５のスクリプト１０２がハッカーによって読み取られると、例えば、ｃａｓｅ９の場合におけるオペレーションｆ９の内容がハッカーに知られてしまう。これを防ぐ為に、スクリプト１０２を暗号化して光ディスクメディア１００に格納するようにしても良い。また、上述したように、オペレーションｆの内容そのものをスクリプト１０２に記述するのではなく、オペレーションｆを識別する識別情報（例えば、オペレーションｆのｉｄ）をスクリプト１０２に記述することが有効である。
【００９４】
更に、スクリプト１０２の改竄を防ぐ為、当該スクリプト１０２に対して改竄防止対策を施し、改竄防止対策が施されたスクリプト１０２を光ディスクメディア１００に格納するようにしても良い。改竄防止対策としては、スクリプト１０２のハッシュ値を算出し、そのハッシュ値を光ディスクメディア１００内のコンテンツハッシュテーブルに格納するという方法を利用することができる。コンテンツ保護モジュール１３は、まず、スクリプト１０２のハッシュ値を算出し、その算出されたハッシュ値が、コンテンツハッシュテーブルに格納されているハッシュ値に一致するか否かに応じて、スクリプト１０２の正当性をチェックすることができる。
【００９５】
スクリプト・エンジン１４は耐タンパ性を有していない。このため、例えばオペレーションｆ９の内容がハッカーに一旦知られてしまうと、たとえスクリプト１０２によってプレーヤ１０をリボークしたとしても、ハッカーは、スクリプト・エンジン１４をコントロールすることによって、正しいオペレーションｆ９の実行指示をスクリプト・エンジン１４からコンテンツ保護モジュール１３に与え、これによってアプリケーションキーを導出し得る。しかし、ＭＫＢ１０３を更新して、アプリケーションキープレカーサを変更すれば、これに伴ってオペレーションｆ９の内容も変更される為、ハッカーは正しいアプリケーションキーを導出する事ができなくなる。
【００９６】
なお、図１のプレーヤ１０の機能はすべてコンピュータプログラムによって実現することができるので、このコンピュータプログラムをコンピュータ読み取り可能な記憶媒体を通じて通常のコンピュータに導入するだけで、通常のコンピュータをプレーヤ１０（ソフトウェアプレーヤ）として機能させることができる。
【００９７】
また、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００９８】
【図１】本発明の一実施形態に係る再生装置の構成を示すブロック図。
【図２】プレーヤグループとアプリケーションキープレカーサとの関係の例を示す図。
【図３】同実施形態の再生装置に設けられたコンテンツ保護モジュールの演算処理部と、スクリプトとの間のインタフェースの例を示す図。
【図４】同実施形態の再生装置に設けられたコンテンツ保護モジュールによって提供されるクラスの記述例を示す図。
【図５】同実施形態の再生装置で用いられるスクリプトの例を示す図。
【図６】同実施形態の再生装置で用いられるスクリプトの他の例を示す図。
【図７】同実施形態の再生装置に適用されるスクリプトによって実行される処理の手順を示すフローチャート。
【図８】同実施形態の再生装置に設けられたコンテンツ保護モジュールによって実行される処理の手順を示すフローチャート。
【図９】同実施形態の再生装置における起動シーケンスを示すフローチャート。
【図１０】同実施形態の再生装置で再生されるディスクに格納されたタイトルキーファイルの一例を示す図。
【符号の説明】
【００９９】
１０…プレーヤ、１３…コンテンツ保護モジュール、１４…スクリプト・エンジン、１５…再生処理部、２０１…ＭＫＢ処理部、２０２…演算処理部、２０３…タイトルキー処理部、２０４…コンテンツ復号処理部。
【図１】
2009100435.tif 000003
【図２】
2009100435.tif 000004
【図３】
2009100435.tif 000005
【図４】
2009100435.tif 000006
【図５】
2009100435.tif 000007
【図６】
2009100435.tif 000008
【図７】
2009100435.tif 000009
【図８】
2009100435.tif 000010
【図９】
2009100435.tif 000011
【図１０】
2009100435.tif 000012
【手続補正書】
【提出日】平成21年3月16日(2009.3.16)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
記憶メディアに格納されている暗号化されたデジタルコンテンツを再生する再生装置であって、
前記記憶メディアに格納されたプログラムを実行するためのプログラム実行モジュールと、
処理モジュールであって、
前記記憶メディアに格納されたメディアキーブロックを前記再生装置が有するデバイスキーのセットによって処理することによって、前記再生装置が属する再生装置グループまたは前記再生装置単体に固有なデータであって、当該データに所定の演算を施すことによって得られる値が前記記憶メディア上のタイトルキーファイルを復号可能なアプリケーションキーとなるデータである、アプリケーションキープレカーサを算出する手段と、
前記プログラム実行モジュールを介して前記プログラムから送出される、前記アプリケーションキープレカーサに対する演算処理指示に応じて、前記アプリケーションキープレカーサの値および前記アプリケーションキープレカーサに対する演算結果を前記プログラムおよび前記プログラム実行モジュールから隠蔽した状態で、前記アプリケーションキープレカーサに対する演算を実行する演算手段と、
前記アプリケーションキープレカーサに対する演算結果をアプリケーションキーとして使用することによって前記タイトルキーファイルを復号するための処理を実行する手段とを含む、
処理モジュールと
を具備し、
前記処理モジュールはプレイリストのロード毎にプレイリストに関連するタイトルキーファイルを復号することを特徴とする再生装置。
【請求項２】
前記処理モジュールは
前記記憶メディアに格納されたメディアキーブロックを前記再生装置が有するデバイスキーのセットによって処理することによって、前記再生装置が属する再生装置グループまたは前記再生装置単体に固有なデータであって、当該データに所定の演算を施すことによって得られる値が前記記憶メディア上のタイトルキーファイルを復号可能なメディアキーを算出する手段をさらに含み、
前記記憶メディア上のタイトルキーファイルはアプリケーションキーにより暗号化されているか、あるいはメディアキーにより暗号化されているかを示すフラグを含むことを特徴とする請求項１記載の再生装置。
【請求項３】
前記プログラムには、複数の再生装置グループまたは複数の再生装置単体それぞれに対応した、異なる複数の演算処理指示が記述されており、前記プログラムは、前記再生装置が属する再生装置グループまたは前記再生装置単体を判別し、且つ前記複数の演算処理指示の中から、前記再生装置が属する再生装置グループまたは前記再生装置単体に対応する演算処理指示を選択し、当該選択した演算処理指示を前記プログラム実行モジュールを介して前記処理モジュールに送出することを特徴とする請求項１記載の再生装置。
【請求項４】
前記演算処理指示は、前記再生装置が属する再生装置グループまたは前記再生装置単体に固有の対応するアプリケーションキープレカーサから前記アプリケーションキーを導出するための演算処理を識別するための識別情報であり、前記演算手段は、前記識別情報に従って、前記アプリケーションキープレカーサに対して実行すべき演算処理を特定し、前記特定された演算処理を前記アプリケーションキープレカーサに対して実行することを特徴とする請求項１乃至請求項３のいずれか１項に記載の再生装置。
【請求項５】
前記演算手段は、前記演算処理指示が送出された後に前記プログラム実行モジュールを介して前記プログラムから送出される、前記アプリケーションキープレカーサに対する演算結果が前記アプリケーションキーであることを示す通知に応答して、前記アプリケーションキープレカーサに対する演算結果を前記アプリケーションキーとして確定することを特徴とする請求項１記載の再生装置。
【請求項６】
記憶メディアに格納されている暗号化されたデジタルコンテンツを、再生装置内に設けられた耐タンパ化された処理モジュールによって、復号する再生方法であって、
前記記憶メディアに格納されたメディアキーブロックを前記再生装置が有するデバイスキーのセットによって処理することによって、前記再生装置が属する再生装置グループまたは前記再生装置単体に固有なデータであって、当該データに所定の演算を施すことによって得られる値が前記記憶メディア上のタイトルキーファイルを復号可能なアプリケーションキーとなるデータである、アプリケーションキープレカーサを算出する処理を、前記処理モジュールによって実行するステップと、
前記記憶メディアに格納されたプログラムを実行するステップと、
前記プログラムから送出される、前記アプリケーションキープレカーサに対する演算処理指示に従って、前記アプリケーションキープレカーサの値および前記アプリケーションキープレカーサに対する演算結果を前記プログラムから隠蔽した状態で、前記アプリケーションキープレカーサに対する演算を実行する処理を前記処理モジュールによって実行する演算処理ステップと、
プレイリストのロード毎に前記アプリケーションキープレカーサに対する演算結果をアプリケーションキーとして使用することによってプレイリストに関連する前記タイトルキーファイルを復号するための処理を、前記処理モジュールによって実行するステップとを具備することを特徴とする再生方法。
【請求項７】
前記記憶メディアに格納されたメディアキーブロックを前記再生装置が有するデバイスキーのセットによって処理することによって、前記再生装置が属する再生装置グループまたは前記再生装置単体に固有なデータであって、当該データに所定の演算を施すことによって得られる値が前記記憶メディア上のタイトルキーファイルを復号可能なメディアキーを算出する処理を前記処理モジュールによって実行するステップをさらに含み、
前記記憶メディア上のタイトルキーファイルはアプリケーションキーにより暗号化されているか、あるいはメディアキーにより暗号化されているかを示すフラグを含むことを特徴とする請求項６記載の再生方法。
【請求項８】
前記プログラムには、複数の再生装置グループまたは複数の再生装置単体それぞれに対応した、異なる複数の演算処理指示が記述されており、
前記プログラムを実行するステップは、前記プログラムを実行することによって、前記再生装置が属する再生装置グループまたは前記再生装置単体を判別するステップと、前記複数の演算処理指示の中から、前記再生装置が属する再生装置グループまたは前記再生装置単体に対応する演算処理指示を選択し、当該選択した演算処理指示を前記処理モジュールに送出するステップとを含むことを特徴とする請求項６記載の再生方法。
【請求項９】
前記演算処理指示は、前記再生装置が属する再生装置グループまたは前記再生装置単体に固有の対応するアプリケーションキープレカーサから前記アプリケーションキーを導出するための演算処理を識別するための識別情報であり、
前記演算処理ステップは、前記識別情報に従って、前記アプリケーションキープレカーサに対して実行すべき演算処理を特定し、前記特定された演算処理を前記アプリケーションキープレカーサに対して実行することを特徴とする請求項７乃至請求項９のいずれか１項に記載の再生方法。
【請求項１０】
前記演算処理ステップは、前記演算処理指示が送出された後に前記プログラムから送出される、前記アプリケーションキープレカーサに対する演算結果が前記アプリケーションキーであることを示す通知に応答して、前記アプリケーションキープレカーサに対する演算結果を前記アプリケーションキーとして確定することを特徴とする請求項７記載の再生方法。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】変更
【補正の内容】
【０００１】
本発明は、暗号化されたデジタルコンテンツの再生装置及び再生方法に関する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１４
【補正方法】変更
【補正の内容】
【００１４】
本発明は上述の事情を考慮してなされたものであり、メディアキーブロックが更新される前の期間中においても、ビデオタイトルのようなデジタルコンテンツの再生を許可または禁止する制御を安全且つ柔軟に実行することが可能な再生装置及び再生方法を提供することを目的とする。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１７
【補正方法】削除
【補正の内容】