"ツーリング完全インタープリタ内で命令を実行するデバイス内に含まれる不揮発性デジタルストレージへのアクセスを規制するための方法であって、a実行されている前記命令から要求を受信するステップであって、前記要求は、iアクセスが要求される前記ストレージの部分と、ii複数の追加の実行可能命令とを指定するステップと、b暗号化ハッシュ関数を前記追加の実行可能命令に適用して、ハッシュ値を得るステップと、c前記ハッシュ値を認証するステップと、d前記認証が成功したならば、前記追加の実行可能命令を実行している間に、前記ストレージの前記要求された部分へのアクセスを可能にするステップとを備えたことを特徴とする方法。認証する前記ステップは、前記ハッシュ値と、前記不揮発性ストレージ内に格納されたハッシュ値とを比較するステップを含むことを特徴とする請求項1に記載の方法。認証する前記ステップは、実行されている前記命令によって提供されるデジタル署名を検証するステップを含むことを特徴とする請求項1に記載の方法。前記要求は、前記デバイス内に含まれる、実行されている前記命令によってアクセス可能なメモリにおける、前記追加の実行可能命令に対するポインタを含むことを特徴とする請求項1に記載の方法。複数のデバイスアーキテクチャのいずれかで再生するための暗号化されたオーディオビジュアルコンテンツを含むデジタル光ディスクメディアであって、前記デジタル光ディスクメディアはプログラムロジックを備え、前記プログラムロジックは、a前記プログラムロジックを実行するデバイスの少なくとも1つの特性を識別し、b複数のセキュリティ弱点がある場合、前記少なくとも1つの特性を使用して、前記複数のセキュリティ弱点のうちのどれが前記実行するデバイス内に存在するかを決定し、c前記決定が疑わしい弱点を示すとき、i前記疑わしい弱点に対応し、かつ、前記実行するデバイスとの互換性を有する少なくとも1つのソフトウェア対策を複数のソフトウェア対策から選択し、ii前記実行するデバイスに、前記選択された対策を呼び出すよう命令することによって、前記疑わしい弱点の影響を軽減し、iii前記暗号化されたオーディオビジュアルコンテンツをデコードし、前記デコードは、前記対策ロジックの成功したオペレーションによって生じた結果を含み、および、d前記決定が疑わしい弱点を示さないとき、前記実行するデバイスに関連付けられた少なくとも1つの暗号化キーを使用して導出された少なくとも1つの復号化キーを使用して、前記オーディオビジュアルコンテンツをデコードするように構成されることを特徴とするデジタル光ディスクメディア。前記プログラムロジックは、前記複数のデバイスアーキテクチャに共通のインタープリタ内で実行するように構成され、前記選択された対策のうち少なくとも一部は、前記実行するデバイスに関連するマイクロプロセッサにおいてネイティブコードとして直接的に実行されるように構成されることを特徴とする請求項5に記載のデジタル光ディスクメディア。前記デジタル光ディスクメディアは、前記ネイティブコード部分を認証するデジタル署名をさらに含むことを特徴とする請求項5に記載のデジタル光ディスクメディア。不揮発性メモリを含む再生デバイスが、デジタル光ディスクメディアを使用するための許可が失効しているかどうかを判断することを可能にするための自動化された方法であって、aメディア識別子をデジタル光ディスクメディアから読み取るステップと、b前記メディア識別子が、不揮発性メモリ内に格納された失効リスト内に示されないことを検証するステップと、c前記メディア識別子を、前記不揮発性メモリ内に含まれる再生履歴内に格納するステップと、d失効したメディア識別子のリストを前記デジタル光ディスクメディアから読み取るステップと、e前記再生履歴内に示され、かつ、読み取られた失効したメディア識別子の前記リスト上でも示される、任意の識別子を示すステップと、f前記任意の示されたメディア識別子を、前記不揮発性メモリ内に含まれる前記失効リストに追加するステップとを備えたことを特徴とする方法。検証する前記ステップで、前記メディア識別子は前記失効リスト内に示されると判断されるとき、前記デジタル光ディスクメディア上に含まれる暗号化されたオーディオビジュアルコンテンツの再生は防止されることを特徴とする請求項8に記載の方法。前記検証するステップで、前記メディア識別子は前記失効リスト内に示されると判断されるとき、前記デジタル光ディスクメディア上に含まれる暗号化されたオーディオビジュアルコンテンツの再生は低下した品質で実行されることを特徴とする請求項8に記載の方法。コンピュータ読取り可能なメモリ内に格納されたソフトウェアの部分が、不揮発性メモリの部分にアクセスすることを可能にすべきであるかどうかを判定するための自動化された方法であって、a前記ソフトウェアの部分への参照を受信するステップと、b前記ソフトウェア部分の暗号化ハッシュを計算するステップと、c前記計算された暗号化ハッシュと、前記不揮発性メモリ内に格納された値とを比較するステップと、d前記計算された暗号ハッシュが前記格納された値と合致するとき、前記ソフトウェア部分が前記不揮発性メモリ部分にアクセスすることを可能にするステップと、e前記計算された暗号ハッシュが前記格納された値と合致しないとき、前記ソフトウェア部分が前記不揮発性メモリにアクセスすることを可能にしないステップとを備えたことを特徴とする方法。どのアンチパイラシシステムも可能性のある攻撃のすべてを完全に防止することはできないが、背景技術におけるシステムは、保護フォーマットprotectedformatから非保護フォーマットunprotectedformatへのデジタル-デジタルコピーを使用する、または保護フォーマットから無保護フォーマットへの高速リッピングを使用するちょっとした海賊行為などの解決可能な問題に対する実用的な解決策を提供することができない。背景技術における多数のシステムの重大な制限には、以下のものが含まれるが、これらに限定されるものではない。グローバルシークレットへの依存:多数の保護システムでは、暗号化アルゴリズム、キー、および、復号化するために必要とされる他の情報が秘密に保たれることが必要である。結果として、システムのセキュリティを危殆化させることなく、復号化プロセスをオープンスタンダードのドキュメントの形で文書化することができない。また、多数の実装が使用可能である場合、攻撃者は、最も弱い実装を攻撃することによって、おそらくはスキーム全体を破壊することができるこのような攻撃は、DVDビデオプロテクトシステムで最近発生した。このようなシステムは、閉じられた単一ベンダ環境内では有用であるが、このようなシステムを標準化することはできず、このようなシステムは有効な長期のセキュリティを提供しない。標準化の欠如:コンテンツパブリッシャはすでに、互換性のない様々なデータフォーマットおよび復号化アルゴリズムにコミットしている。異なるコンテンツ保護システムは異なるビジネスモデルを可能にし、あるモデルにコミットしているパブリッシャは、異なるモデルを必要とする任意のセキュリティシステムに反対する可能性が高い。製品タイプとの非互換性:多数のセキュリティ機能をすべての製品タイプと統合することはできない。例えば、パーソナルコンピュータ用のダウンロード可能なソフトウェア専用プレイヤは、耐タンパ性を有するハードウェアを含むことはできない。同様に、インターネット接続性を欠くプレイヤに、頻繁にソフトウェアアップデートを配信することは困難である。ユーザインターフェース:多数の提案は、複雑なユーザインターフェースを含む。セキュリティは、真正なユーザにとって不可視であるべきである。ユーザは、明示的なユーザの関与例えば、認証コードを取得する、または認証コードを入力することを必要とするスキームを拒否する可能性が高い。一般に、カーステレオおよびビデオディスクプレイヤなどの家電デバイスは使いやすい必要がある。これは、多数のユーザが、文書を読まない場合、技術に及び腰である場合、視力が弱い、もしくは他のハンディキャップを有する場合、または、プレイヤによってサポートされた言語に精通していない場合でも、そのユーザを満足させなければならないからである。法的な課題:一部のセキュリティシステムは、競業者間の協力を必要とする。このような協力は、反トラスト規制により違法になる可能性がある。メーカの利点の欠如:メーカは、プレイヤのコストを増し、かつ製品化までの時間を増す、正当な機能の包含を妨げるセキュリティ機能に反対するようになるし、または、それらの製品の効果を弱め、もしくは製品の効果をより望ましくないようにするセキュリティ機能に反対するようになる。半導体技術における進歩は、セキュリティシステムを実装するために必要とされるコストを下げつつあるが、耐タンパ性を有する有効なハードウェアを設計および製造することは困難なままであり、高価なままである。結果として、優れた実装を作成するメーカに依拠するコンテンツ保護システムは、その提供物がより安全であるメーカに実際の市場優位性を提供しない限り、失敗する。不明確なセキュリティポリシ:有効なセキュリティシステムでは、ユーザが要求した特定のアクションを許可すべきであるか、防止すべきであるかを判断するためのルールまたは他の意思決定プロシージャが指定されなければならない。多数のシステムでは、これらのルールまたはプロシージャがうまく指定されない。柔軟性のないセキュリティポリシ:コンテンツ保護システムは、異なるパブリッシャ、コンテンツタイプ、権限jurisdiction、再生環境などに対して異なるモデルをサポートするための柔軟性を有することが望ましい。システムは、複雑になりすぎることなく、必要な柔軟性を提供すべきである。脆弱な長期セキュリティ:セキュリティシステムは、長期にわたって有効であり続けるために十分に堅牢であり、柔軟性がなければならない。普及しているフォーマットは30年を超えて存続することができるが、背景技術におけるコンテンツ保護システムのほとんどは、著名なフォーマットの一部として、数年を超えて存続することができない。攻撃の非トレース可能性untraceability:攻撃者が生じる場合、システムは、危殆化されたまたは悪用されたデバイスを無効にすることができるように、および、犯人を起訴することができるように、攻撃のソースを特定することができる必要がある。本願は、幅広い種類の相互運用可能なプラットフォームにわたって柔軟性のある更新可能なコンテンツ保護を提供するように実施することができる、標準化されたコンテンツ保護システムの様々な実施形態および態様に関する。このシステムは、関係者メーカ、パブリッシャ、アーティスト、および/または消費者などに、セキュリティおよび機能性に関する意思決定を行うための比類のない柔軟性を提供する。このシステムと共に使用可能な例示的プレイヤすなわち、保護されたコンテンツを復号化することを望むデバイス、またはそうでない場合は、保護されたコンテンツにアクセスすることを望むデバイスは、複数のコンポーネントを備える。第1のコンポーネントは、例えば光ディスクドライブ用の、データまたはメディア入力インターフェースである。再生を開始するため、プレイヤは一連のデータ処理コマンドを入力インターフェースからロードし、インタープリタまたは他の実行モジュールを使用することにより、これらのコマンドの実行を開始する。この実行環境は、チューリング完全言語Turingcompletelanguageプレイヤのメモリ、ユーザインターフェースおよびパフォーマンスの制限を受ける、任意のアルゴリズムを実行することができる言語を提供することが好ましい。この実行環境からコンテンツはプレイヤに問い合わせて、再生環境の構成を決定することができ、プレイヤのキーを使用することにより暗号化オペレーションを実行することができる。したがって、問い合わせに対して満足のいく応答を提供するプレイヤ上でのみ再生が進行することになるように、コンテンツを設計することができる。パブリッシャもまた、制限された再生を提供することができる。例えば、より安全でないプラットフォームでは、CD音質のステレオオーディオまたは通常の精細度のイメージを提供することができるが、より安全なプラットフォームでは、より多くのオーディオチャネル、高精細度のイメージ、より高いサンプリングレート、および、より高品質の圧縮を提供することができる。再生が開始した後でも、再生はコンテンツのデータ処理コマンドの制御下に残ることができる。1つの例示的実施形態には、堅牢な、本質的にオンザフライのウォータマーキングを実行する機能が含まれる。どのデータ領域が再生されるかをコンテンツ自体が制御できるようにすることで、極めて小さい差異を伴う複数の出力データバージョンから選択することにより、情報を出力内に埋め込むことが可能となる。これらの差異を解析することにより、特定のプレイヤに遡って海賊コピーをトレースすることができる。コンテンツは、コンテンツ固有のセキュリティポリシを含み、これを実施するので、耐性のある新しいコンテンツを設計し、かつ発行することによって、発生する攻撃に対処することができる。コンテンツがコンテンツ固有のセキュリティポリシを実施することを可能にすることによって得られた柔軟性は、さらに、アーティストのプリファレンス、地域的な公正使用の規制などに対するサポートも可能にする。コンテンツにアクセス可能な新しいプレイヤ関数を追加することによって、新しいプレイヤ機能を容易に追加することができる。ビジネスの観点から、コンテンツパブリッシャおよび家電メーカのビジネスおよびオペレーション上の制約と一致する、最良となり得るセキュリティを提供するという共通の目標においてコンテンツパブリッシャと家電メーカとを結び付けるように、任意のコンテンツ保護システムが使用できることが望ましい。本明細書で開示するシステムにより、パブリッシャはパブリッシャ固有のセキュリティ要件を決定することができるようになり、次いで、コンテンツ自体が、幅広い種類の要素を考慮するポリシを実装して、各環境内で再生されるべきであるかどうかまたはどのように再生されるべきであるかを決定することができるようになる。さらに、優れたセキュリティを提供し、海賊行為を容易にしない製品を設計するようメーカを動機付けることができるので、それらの顧客はコンテンツに対して幅広くアクセスできるようになる。図2は、物理的メディア200を使用するプレイヤの例示的実施形態を示している。再生プロセスはプロセッサ210によって制御され、プロセッサ210はメディアインターフェース205を介してメディア200にアクセスすることができる。メディア200がマウントされるとき例えば、メディアが最初に挿入される、または、システムが再初期化されるときなど、プロセッサ210は、メディアインターフェースを初期化すること、メディアの目次を読み取ること、および、サポートされた保護システムを認識することによって、開始する。そのような場合、プロセッサはメディア200の小さな初期部分を実行およびデータRAM220にロードする。インタープリタ215を使用することにより、プロセッサ210は、ロードされたメディア部分によって指定されたデータ処理オペレーションの実行を開始する。インタープリタ215は所定のデータ処理オペレーションのセットを提供し、このセットによって、より複雑なタスクを実行することができる。インタープリタ言語は、好ましくはチューリング完全である。チューリング完全プログラミング言語は、1つのこのような言語において実装可能なアルゴリズムを、他の任意の言語においても実装することができ、これらの実装が類似の漸近パフォーマンス特性asymptoticperformancecharacteristicを有するようになることを特徴とする。チューリング完全プログラミング言語の例には、C、C、BASIC、Fortran、Pascal、Java登録商標および実質的にすべてのアセンブリ言語が含まれるが、これらに限定されるものではない。ロードされた部分は、インタープリタ215によって提供されるプロシージャコールを呼び出すことによって進行する。RAM220にロードされた初期データは比較的小さい場合があるが、インタープリタ215上で実行されるコードは、追加のデータコードを含むを、プロシージャコールを介してメディアからロードすることができ、それによってより複雑なオペレーションを実行することができる。他のプロシージャコールによって、コンテンツは再生環境構成225を決定することができる。したがって、コンテンツは再生環境特性例えば、プレイヤのタイプ、要求されたユーザクションなどを解析して、再生が進行すべきであるかどうかを判断することができる。例示的実施形態では、是正可能な問題が検出される場合例えば、メディアがプレイヤ用のセキュリティファームウェアアップグレードを含む場合、これらに対処することができる。サポートされる場合、コンテンツは、出力インターフェース250、および、サポートされる場合、送信先プログラム/デバイス260例えば、増幅器、デジタルスピーカ、スピーカドライバなどに問い合わせて、セキュリティ特性を調べ、暗号化キーをロードし、出力パラメータを指定する例えば、セキュリティが不確実である場合、低下した出力品質を指定することなどもできる。例示的実施形態では、コンテンツは、暗号化オラクル230に問い合わせることもでき、セキュリティハードウェアアップグレードを可能にするために、スマートカードなどの外部のリムーバブルセキュリティモジュール235内に暗号化オラクル230を実装することができる。プロセッサ210内、プレイヤ内の他のハードウェア、メディア内、スピーカなどのアタッチされたデバイス内などに、オラクルを実装することもできる。暗号化オラクル230は、プレイヤ識別に関する検証可能な証をコンテンツに提供することができる。オラクル230への問い合わせの結果は、後続のコンテンツまたはコード部分を復号化する際に使用することができ、それによって、オラクル230は、有効なキーを欠くまたはそのキーが無効となるプレイヤがコンテンツを復号化することができないという強力な暗号化の保証を提供することができる。例示的実施形態では、インタープリタは、サンドボックス内のコンテンツによって指定されたデータ処理コマンドを実行するが、これは、コンテンツが暗号化秘密cryptograpchicsecretオラクルキーなどに対してアクセスしないことを意味し、そうでない場合、コンテンツは、プレイヤを危殆化させるおそれがある。サンドボクシングは、すべてのコンテンツが必ずしも信頼できるとは限らない場合に有用である。例えば、攻撃者は、プレイヤから暗号化キーを抽出しようと試みた悪意のあるコンテンツを作成しようとする可能性があった。以下で、例示的暗号化オラクルおよびそれらのオペレーションについてのさらなる情報を提供する。コンテンツが、再生が進行するべきでないと判断する場合例えば、ユーザがコピーを作成しようとしていて、コンテンツがコピーを禁止するように構成されている場合、コンテンツはエラーを報告し、要求されたアクションを拒否することができる。代替として、コンテンツはレンダリングプロセスおよび/または出力プロセスを制御して、出力の品質を低下させることができるので、無許可のコピーの品質が落ち、このため無許可のコピーは魅力的でなくなる。コンテンツが、再生が進行するべきであると判断する場合、コンテンツは次いで、再生がメディア上の特定の位置例えば、特定のトラックから開始すべきであると指示するプレイヤからの信号を待つ。インタープリタ215は、メディアがマウントされたとき、実行/データRAM220にロードされたデータ処理命令を使用して、要求を処理する。コンテンツは、再生が進行するべきであると決定する場合、プロシージャコールを使用して、暗号化されたコンテンツをメディア200上の適切な位置からロードすることを開始するようメディアインターフェース205に命令する。コンテンツは有効な復号化キーおよびパラメータをバルク復号化モジュール240に対して指定し、バルク復号化モジュール240は、暗号化されたコンテンツをRAM220からまたは代替として、メディアインターフェース205から直接読み出して、これを復号化する。復号化されたコンテンツは次いで出力インターフェース250に供給され、出力インターフェース250はこのコンテンツを、送信先プログラムまたはデバイス260に合わせて適切なアナログまたはデジタルフォーマットに変換する。再生が継続するとき、インタープリタ215によって処理されているデータ処理命令は新しい復号化パラメータをロードし、新しいデータのブロックを指定してメディア200から読み取ることなどができる。再生が完了するとき、コンテンツはRAM220を再初期化することができる。以下のセクションにおいて、インタープリタ、再生システム、ならびに、他の実施形態および態様について、追加の情報を提供する。攻撃への対処ソフトウェアにおいて、および、低コスト家電デバイスにおいて幅広く実装されているアンチパイラシシステムは、可能性のある攻撃のすべてを防止することはできない。本明細書に開示する技術は、ある攻撃の後に続いて、既存の攻撃を実質的にブロックする方法で新しいコンテンツをマスタリングすることを容易にするように使用することができる。専門的な海賊行為者は継続的に新しい回避システムを探し出してインストールしようと試みる可能性がある一方で、ちょっとした海賊行為は、攻撃ツールを開発および維持するための継続的な努力を必要とするため、したがって、うまくいけば単にコンテンツを正当に購入するよりも困難となる。以下のセクションでは、本明細書で説明する技術をどのように使用することにより、一部の一般的な攻撃に対処することができるかを説明する。第1の攻撃のカテゴリは、危殆化されていないプレイヤを使用して、無許可のアクションを実行しようとする試行を含む。例えば、コンテンツをマスタリングして、オリジナルのメディアからのコピーを可能にするが、コピーからのコピーを許可しないようにすることができる。このようなコンテンツをコピーからコピーしようとする試行がなされる場合コンテンツは、例えば、コピープロセス中に挿入された変更を検出することによって、または、現在のメディアのシリアルナンバおよび/またはタイプをオリジナルと比較することによって、認識することができる、再生をインタープリタコードによってブロックすることができる。代替として、インタープリタは、コンテンツが低下した品質でより高いサンプルレートのマルチチャネルオーディオが使用できる可能性があるにもかかわらず、44.1キロヘルツのサンプルレートのステレオオーディオを再生するなど、または、追加のアンチパイラシ警告を挿入することによって、再生を認めることができる。したがって、インタープリタに提供された情報を解析することによって、不適切なユーザ要求を、危殆化されていないプレイヤ上で検出し、処理することができる。第2の攻撃のカテゴリは、プレイヤの暗号化キーの危殆化を含む。プレイヤの暗号化キーが危殆化されている場合、攻撃者は、少なくとも理論的には、暗号化オラクルをエミュレートすることによって、および任意で再生環境についての問い合わせに対して偽の応答を提供することによって、危殆化された再生環境を完全にエミュレートすることができる。このような攻撃の後、それ以後のコンテンツ内のインタープリタコードが危殆化されたデバイス内に存在しなかった少なくとも1つの暗号化キーを要求するようにすることによって、セキュリティを再確立することができる。特定のプレイヤモデルまたはメーカが多数の攻撃のソースである場合例えば、プレイヤ実装が不十分なセキュリティしか有さないため、パブリッシャは、このようなプラットフォーム上で再生されないようになるまたは、低下した品質で再生されるようになるコンテンツを作成することができる。第3の攻撃のカテゴリは、類似のインタープリタセキュリティコードを含む、コンテンツの特定の部分またはタイトルのグループを危殆化させることを含む。セキュリティチェックを回避するようにコンテンツ自体を変更することによって、または、ターゲットタイトルを再生するように調整された悪意のあるインタープリタを作成することによって、おそらくはこのような攻撃を開始することができる。以後のコンテンツにおいて、異なる保護ソフトウェア、またはより良い保護ソフトウェアを利用することによって、このような攻撃に対処することができる。第4の攻撃のカテゴリは、コンテンツを保護メディアprotectedmediaから非保護フォーマットへコピーし、次いでコンテンツをその新しいフォーマットで再配布することを含む。どのコンテンツ保護システムもこのような攻撃を完全に防止することはできないが、本明細書で開示する技術およびシステムは、強力で柔軟性のあるウォータマーキング機能を備え、この機能を使用して、特定のデバイスに遡って危殆化をトレースすることができ、次いで、以後の攻撃を防止するために、この特定のデバイスを失効させることができる。海賊行為目的で活発にコンテンツをアップロードするユーザの数は比較的少ないので、これらのユーザのプレイヤを特定し、失効することによって、海賊行為を大幅に減らすことができる。暗号文の諸部分を選択的にスキップすることによって、知覚できない差異を復号化出力内に導入することができる。例えば、例示的実施形態では、第1の暗号文の一部分を復号化および出力し、次いで第2の暗号文の一部分をスキップするよう、コンテンツがプレイヤの復号化モジュールに命令することによって、0ビットにウォータマークを入れることができる。1ビットにウォータマークを入れるため、第1の暗号文の一部分をスキップし、第2の暗号文の一部分を出力するよう、コンテンツはモジュールに命令することができる。一連のこのようなビットをエンコードすることにより、インタープリタコードにとって使用可能な任意のデータによって、コンテンツにウォータマークを入れることができる。このデータには、プレイヤの識別、暗号化オペレーションの結果、ユーザアクション説明、出力デバイス情報などが含まれるが、これらに限定されるものではない。コンテンツの海賊コピーが発見される場合、ウォータマークを解析して、不法コピーを単一のプレイヤまで遡ってトレースすることができ、次いで、このプレイヤを以降のコンテンツリリースにおいて失効させることができる。この機能は、法的処置lawenforcementおよび科学捜査forensicの目的においても有用である。なぜならば、特定のコピーが特定のプレイヤから生じたことを、確信をもって証明することができるからである。コピーをトレースするための機能は、海賊行為に対する阻害要因としての機能を果たすこともできる。なぜならば、違法コピーの作成を検討する人は、自分が特定され、逮捕され、起訴される可能性があることを知ることによって、コピーする気がそがれるようになるならである。言うまでもなく、すべての環境における可能性のある攻撃のすべてを確実に防止することができる、消費者が扱いやすいconsumerfriendlyアンチパイラシシステムはない。例えば、オーディオおよびビデオは、アナログ出力から記録することができるウォータマークがコンテンツ内に埋め込まれる場合でも、ウォータマーク検出器を有していないレコーダを使用できる。アナログ出力から取り込まれたデータは次いで、新しいデジタルまたはアナログメディア上にリマスタリングされ、元々のセキュリティ機能を有することなく再配布される可能性がある。同様に、メディアの正確なコピーを作成するために必要とされる機器を有する専門の海賊行為者によって作成されたコピーを、プレイヤによって検出することはできないが、本明細書で開示する技術およびシステムは、メディアのコピーを防止する上で役立つことができる。例えば、メディア上のディスクメーカ識別子はコンテンツによって調べられ、真正の、または不注意な複製施設が海賊行為者によってだまされないようにすることを確実にすることができる。メディアタイプ識別子は、読み取り専用メディアの形態で販売されたコンテンツが、記録可能メディアの形態で再配布されることを防止できる。インターネット、電話/モデム、または他のネットワークサポートを使用するプレイヤでは、コンテンツは例えば再生または最初の再生に先立って、サーバから認証を受け、そのメディアが有効であることを検査することができる。不揮発性ストレージを有するプレイヤは、既知の不良メディアシリアルナンバのテーブルを格納することもでき、コンテンツおよび/またはプレイヤがこのテーブルに問い合わせて、メディアが失効しているどうかを判断することができる。再生環境への問い合わせおよび再生環境の制御コンテンツを、コンテンツによってコンテンツ自体が復号化されることが可能になるかどうかを決定するように、構成することができる。この決定を支援するため、プレイヤは再生環境についての情報をコンテンツに提供することができる。多くの場合は非常に限られた情報ユーザにより要求されたアクションおよびプレイヤモデルなどだけで十分である可能性が高いが、再生が進行すべきであるかどうかについて、コンテンツがより確かな情報に基づいて評価することができるように、より詳細で正確な情報が望ましい。コンテンツに提供される特定の情報および機能はプレイヤ実装に依存するが、以下では、コンテンツに提供することができる一部の例示的関数および機能ただし、以下に限定はされないを説明する。複数の接続されたコンポーネント出力ポート、接続された出力デバイス、オペレーティングシステムデバイスドライバ、セキュリティモジュールなどから構築されたプレイヤでは、これらの接続されたデバイス、ならびに、インタープリタを含むプレイヤの主要部分が、以下の情報の一部またはすべてを含むことができることに留意されたい。セキュリティサポート情報:セキュリティ仕様バージョン、サポートされた問い合わせ機能、および/または、セキュリティモジュール形状因子formfactor置換可能なハードウェア、組み込みハードウェア、アップデート可能なファームウェア、ROMファームウェア、PCソフトウェアなどなど。例示的暗号化処理機能および再生制御/復号化機能については、以下で詳述する。メーカ情報:名前、識別子、ウェブサイト、公開キー/証明書、製造バッチ、製造日/時間、製造地域、製造国、メーカ住所、技術サポート連絡先情報、および/または、メーカ保証情報など。デバイス情報:製造ライン、シリアルナンバ、モデルナンバ、ファームウェア/ソフトウェアバージョン、デバイス公開キー/証明書識別子、GPS位置または他の物理的位置/地域、コンテンツによりサポートされたコーデックタイプ、ネットワーク/インターネットサポート情報、ネットワークアドレス、デバイス電話番号、IPアドレス、ウォータマークサポート、インタープリタパフォーマンス評価、セキュリティ証明評価、デバイスディストリビュータ、デバイス小売業者、デバイス形状因子、および/または、セキュリティ仕様など。ユーザ情報:ユーザ名、地理的地域、国、住所、GPS位置または他の物理的位置/地域/国など、ユーザ電話番号、IPアドレス、電子メールアドレス、ウェブアドレス、希望する言語、問題となるマテリアルに対する許容範囲、希望する支払い方法/口座、支払い制限、購入履歴、および/または、プライバシプリファレンスなど。メディア制御:問い合わせメディアフォーマット、記録可能または記録不能、メディアシリアルナンバ、記録デバイスタイプ、記録デバイス所有者、記録デバイスシリアルナンバ、記録デバイスセキュリティ情報、および/または、記録デバイスウォータマークチェック機能など。関数は、メディアからの読み取り、メディアへの書き込み、メディアのフォーマット、メディアのテスト、および/または、メディアの排出なども可能にする。追加の関数は、特定のメディアフォーマットによってサポートされる暗号化機能または他の特別な機能へのアクセスを提供することができる。要求されたユーザオペレーション:例えば、再生、記録、新しいフォーマットへの変換、ポータブルデバイスへのロード、最初のコピーの作成、複数のコピーの作成、および/または、同時再生/記録など。要求されたオペレーションを開始または変更する能力をコンテンツに与えることもできる。出力情報:出力ポート、出力ポート構成、出力ポートセキュリティ特性、接続されたデバイス、出力データフォーマット、および/または、出力データ品質/解像度などについての情報。サポートされる場合、コンテンツは出力デバイスに直接問い合わせて、デバイスについての追加の情報を得ること、および/または、暗号化オペレーションを要求することなどができる。プレイヤは、コンテンツがこれらのパラメータを変更して、例えば、セキュリティが不十分である場合には低下した品質の出力を指定することを可能にすることもできる。環境:プラットフォーム上の他の実行中のプログラムおよびデバイスドライバの識別/ハッシュ/バージョン、メモリのコンテンツまたはハッシュ、インストールされた攻撃検出モジュールのバージョン、攻撃に関するシステムスキャンの結果、および/または、改ざん検出器の状況など。これらの機能によって、コンテンツはメモリを修正して、例えば、他のプログラム内のセキュリティ弱点を是正することもできる。時間:日付、時間、時間帯、経過クロックサイクル数、最終リセットからの時間、製造からの時間、最終セキュリティアップグレードからの時間、最終バッテリ交換からの時間、および/または、推定の残りバッテリ寿命など。接続性:プレイヤ通信機能の決定、現在の接続状況のチェック、ネットワーク接続の確立、モデム接続の確立、ネットワーク接続を確立する臨界の指定、接続セキュリティ特性のチェック/指定、データ送信、データ受信、接続を閉じること、および/または、接続のアイドリングなど。ユーザインターフェース:ユーザメッセージの表示、歌詞の表示、グラフィックスイメージの表示、グラフィックスイメージの印刷、広告/プロモーションメッセージの表示、使用可能なユーザインターフェース制御の識別、ユーザ入力の取得、プレイヤの音声シンセサイザを使用して音声をユーザに再生すること、および/または、エラーの報告など。ウォータマーク制御:出力すべきコンテンツ領域の選択、外部ウォータマーキングアルゴリズムの選択、外部ウォータマーク検出器の制御、および/または、マーク検出器状況のチェックなど。その他:プレイヤ/再生状況情報、ペイパープレイビリング制御例えば、プレイヤベースの資金源、エラー処理、再生終了、安全な不揮発性メモリサポート下記参照、プレイヤファームウェアアップデートの適用、および/または、外部モジュール動的にリンクされたライブラリなどの呼び出しなど。関数およびパラメータの標準化の一部は、複数の実装の間の相互運用性を確実にするため例えば、コンテンツが最初に発行された後に設計されたプレイヤ環境内で、コンテンツが効果的に機能することができるようにする、および、安全なコンテンツを作成するタスクを単純化するために有用である。標準化は、様々な異なるメーカの製品が同じタイプの情報またはオペレーションを提供すべきである機能に関して特に有用である。例えば、コンテンツがプレイヤ形状因子ホームオーディオ/ビデオ、ポータブル、自動車用、パーソナルコンピュータソフトウェア専用、ハードウェア支援を有するパーソナルコンピュータソフトウェア、専門スタジオ、映画館などを決定することを可能にするための関数および応答コードを、標準化することができる。標準化は、以前から存在するコンテンツが理解できない非標準フォーマットで適切なリスク関連情報を報告することによって、メーカがセキュリティ制御を回避しようと試みることを防止するという、さらなる利点を有する。言うまでもなく、メーカがさらなるメーカ独自の関数を追加して、それらを使用することを選択するコンテンツ作成者によって使用されるように、このシステムをさらに構成することもできる。新しい関数を追加するための能力は、新しい機能を自社製品に追加することを望むメーカにとって特に貴重である。なぜならば、メーカがこれらの機能を追加し、次いでコンテンツパブリッシャと共に協調的なビジネス関係を確立して、これらの機能をサポートすることができるからである。このような一実施形態は、望まれる場合は後方互換性を維持しながら、容易に拡張することができる。メーカは、正確な情報をコンテンツに提供する責任がある。コンテンツは一般に、受信する情報の多くの精度を直接検証することはできないが、メーカが、この情報が正しいことを保証するための強力なインセンティブを有する場合には、これは厳密には必要ではない。例えば、パブリッシャは、パブリッシャ自身の将来のコンテンツが、不正なメーカによって作成された製品上で再生されることを防止することができる。プレイヤが、コンテンツに提供する情報の暗号化認証を提供する例えば、認証されたプレイヤまたはメーカキーを使用することによって発行されたデジタル署名を含むことによる場合、有効となり得るが、このような認証は大部分のデータにとって必須ではない。出力デバイス高品質デジタルオーディオデータを要求するデジタルスピーカなど、または、潜在的に信頼できないインターフェースを介して接続するシステムの他の部分にとって、信頼できるデバイスとして装う悪意のあるデバイスを検出し、かつ、回避することができるようにするため、暗号認証はより重要である。暗号化処理再生環境を説明する情報を提供することに加えて、例示的プレイヤは、さらに、コンテンツによって呼び出すことができる暗号化オペレーションを実装する。これらのオペレーションは暗号化オラクルのように振る舞うことができ、コンテンツが入力データ例えば、64ビット平文ブロックを供給することを可能にし、暗号化計算の結果を返す。例示的実施形態では、暗号化計算への入力には、少なくとも1つのキーその値は通常、コンテンツにとって未知であり、コンテンツによってアクセスできない、および、コンテンツにより指定された入力データが含まれる。以下は、再生環境を認証すること、コンテンツ復号化キーを導出することなどただし、これらに限定されないに使用するために、コンテンツに提供することができる暗号化プリミティブの例ただし、以下のものに限定されないである。ブロック暗号オラクル:このオラクルは、秘密キーを使用して入力メッセージを暗号化または復号化し、暗号文または平文の結果を作成する。ハッシュ関数オラクル:入力メッセージが通常は秘密キーにより例えば、HMAC-SHAなどのアルゴリズムを使用してハッシュされ、結果が作成される。デジタル署名オラクル:秘密公開キーを使用して入力メッセージにデジタル署名が付けられ、結果が作成される。この関数は、秘密キーおよび1つまたは複数の秘密キーの証明書をコンテンツに提供することもできる。乱数生成器:乱数生成器はコンテンツに予測不能な情報を提供して、例えば、オンライン接続におけるリプレイアタックを防止する上で使用することができる。数学関数:基本的な数学演算を提供して、コンテンツがその計算プロセスを最適化することを助けることができる。例えば、コンテンツが最適化されたモジュラ乗算または指数関数を使用して、Rivestらの米国特許第4405829号明細書に記載のRSAアルゴリズムを実行し、デジタル署名を作成かつ検証して、メッセージを暗号化および復号化することができる。最適化された暗号化プリミティブ:標準暗号化アルゴリズムの最適化された実装は、パフォーマンスを向上させるのに役立つことができる。これらのオペレーションを使用して、データのブロックを復号化すること、またはハッシュすることを助けることができる。これらのデータのブロックには、インタープリタコード空間の領域、または、メディアからロードされたコンテンツのセクタが含まれるが、これらに限定されるものではない。復号化制御:コンテンツが、再生が許可されると決定する場合、インタープリタコードはコンテンツ復号化モジュールを、コンテンツの各セグメントのための正しい復号化キーによって初期化することができる。加えて、インタープリタコードは、レンダリングされるべきであるか、またはスキップされるべきであるコンテンツの諸部分を指定することができる例えば、再生中にリアルタイムウォータマーク挿入を可能にするため。インタープリタと、メディアからのコンテンツストリーミングとの間の同期を確実にするために、キー変更またはスキップされた領域をあらかじめ指定し、次いで、コンテンツ内の信号によってキー変更を引き起こすことができる。例えば、例示的実施形態では、コンテンツは、暗号文内で発見したときにキー変更を引き起こす64ビット値、キー変更の後に続いてスキップすべき暗号文バイトの数、および、使用すべき新しいキー値を指定することができる。キー管理:これらの機能によって、どのキーがプレイヤに知られるかをコンテンツは決定することができる。オペレーションがランダムなパラメータまたは他のこのような可変データを組み込まない暗号化オラクルに関する例示的実施形態では、特定の入力に対して期待される結果をあらかじめ例えば、コンテンツがマスタリングされるときに計算することができるように、このシステムを構成することができる。したがって、パブリッシャはコンテンツをプログラムして、選択された入力をオラクルに提供し、次いで、期待された結果が得られることを検証することができる。許可された暗号化キーを欠く悪意のあるプレイヤは、正しいオラクル応答を計算することができないようになる。可能なオラクル入力の数は莫大である例えば、128ビットのブロックサイズを有するブロック暗号を使用したオラクルでは、2^128であるので、攻撃者が可能な問い合わせのすべてに対する結果を事前計算すること、または格納することは、実際的に実現可能でない。有効なプレイヤを検査することに加えて、暗号化オラクルを使用して、無効なプレイヤを識別することもできる。例えば、正当なプレイヤから抽出されたキーが無許可の目的のために使用されている場合、コンテンツをマスタリングし、これによって、失効したオラクルを含むプレイヤ上でコンテンツが再生されることを拒否することができる。コンテンツは、有効なキーがないと再生されないので、無許可のプレイヤは盗んだキーstolenkeyを含まなければならない。しかし、これらの盗んだキーを使用することによって、無許可のデバイスはそれらの状況を、危殆化を認識している新しいコンテンツに対して示すことになる。オラクル結果を組み込むための、または、特定のオラクル問い合わせ応答が有効であるかどうかを調べるための幅広い種類の方法を使用することができる。最も単純な方法は、単に期待値と比較することである。これは、少なくとも理論的には、すべての比較が合致するかのように振る舞う、悪意をもって設計されたインタープリタによって回避することができるので、コンテンツは、失敗すると期待されるダミー比較、または、悪意のあるインタープリタを防止するように設計された他のそのようなテストを含むことができる。さらに、オラクル自体を使用して、コードを復号化することもできるし、または自己書き換えコードに影響を与えることもできる。例えば、オラクルへの入力を、所望のコードの暗号化されたバージョンとすることができる。したがって、それらの構成に応じて、このようなオラクルによって、コンテンツパブリッシャは、許可されたプレイヤまたはプレイヤのサブセットによってのみ復号化することができるコードをメディア上に含むことができ、それにより、このようなオラクルは、コンテンツコードを攻撃者となり得る者から離しておく助けとなる。オラクルを使用するもう1つの方法は、それらの出力を、暗号化キーとして、またはキーを導出するために、使用することである。次いで、例えば、コード、コンテンツ、他のキー、または他の任意のデータを復号化するために、これらのキーを使用することができる。この柔軟性のある復号化機能を使用して、幅広い種類のプロトコルおよびポリシをコンテンツ内に実装することができる。例えば、プレイヤが適切なキーの組合せを有する場合、FiatおよびNaorの方法AFiatandMNaorBroadcastEncryptionAdvancesinCryptologyDouglasStinsoneditorp480SpringerVerlag1993参照などのスキームを使用するように、コンテンツをプログラムすることができる。望まれる場合、Ginterらの米国特許第5982891号明細書で説明されているシステムなどの高度なアクセス制御システムを実装することもできる言うまでもなく、プレイヤが必要なユーザインターフェース、ネットワーク、データストレージおよび暗号化機能を提供するならば。コンテンツのマスタリングに関して、パブリッシャは、オラクル入力/出力のペアへのアクセスを有することから利点を得ることができる。オラクルがRSAなどの非対称暗号化システムに対して秘密キーを使用する場合では、パブリッシャは単に公開キーを取得し、かつ、これを使用して、オラクルオペレーションとは逆のオペレーションを実行する。ブロック暗号を使用して構築された対称オラクルでは、プレイヤのメーカは、パブリッシャのために、各プレイヤ内に提供された対称オラクルの逆を計算することができる。例えば、プレイヤオラクルがブロック暗号を使用して、秘密キーの下で256ビットデータブロックを復号化する場合、メーカはパブリッシャに、対応する暗号化関数へのアクセスを提供することができる。逆オラクルへのアクセスは、オラクルが危殆化されることを可能にしないので、メーカは、例えば、SSLを使用して公的にアクセス可能なウェブサーバにアクセスすることによって、逆オラクル計算を提供することができる。メーカはまた、ランダムに選択されたオラクル入力からの出力をパブリッシャに提供することもできる。メーカは、プレイヤ内に実装された実際のオラクル関数をパブリッシャに提供することができるが、正当なプレイヤをエミュレートする無許可のプレイヤを構築するために、これらの関数が悪用されるおそれがある。キーをプレイヤおよびメーカに割り当てるために使用される特定の方法は、特定の実施形態およびセキュリティ目標によって決まる。例えば、1つの例示的実施形態では、プレイヤには様々な対称暗号化オラクルキーが割り当てられ、これらのキーには、次のようなものが含まれるただし、以下に限定されるものではない:このようなキーのより大きなグローバルプールから擬似ランダムに選択されたプレイヤ対称キー、メーカによって擬似ランダムに生成されたプレイヤ固有の対称キー、メーカ、プレイヤモデルなどに一意の対称キー、および/または、プレイヤが特定の特性を有していない例えば、特定のメーカによって作成されなかったことを認証する対称キー。この例示的実施形態では、コンテンツは、サポートされたキーのリストを返す別の関数を呼び出すことによって、どのキーがプレイヤ内に実装されるかを識別することができる。プレイヤには、非対称キーを含めることもできる。例えば、例示的実施形態では、プレイヤは、プレイヤ固有の公開/秘密キーペア、メーカの秘密キーを使用してプレイヤ公開キーに署名することによってメーカにより発行されたプレイヤ証明書、メーカの公開キーの妥当性を検査するルートキー発行局rootkeyissuingauthorityによって発行された証明書、プレイヤの安全なメモリ領域下記参照にアクセスする要求の妥当性を検査するために使用される公開キー、および/または、プレイヤファームウェアアップデートの妥当性を検査するために使用される公開キーを有する。複数のプレイヤメーカを含むインフラストラクチャでは、1つまたは複数の中央管理組織にプレイヤ、メーカなどのためのキーを管理させることが有効である場合がある。中央管理者はまた、最小限のセキュリティ標準を実装すること、プレイヤが正確な情報をコンテンツコードに提供することを確実にすること、メーカの製品が古いコンテンツを再生することができるようにキーを新しいメーカのために予約すること、危殆化されたキーを追跡すること、暗号化オラクルオペレーションをコンテンツパブリッシャのために実行することなどのために有効である場合もある。安全なメモリおよびカウンタコンテンツにとって使用可能なメモリは通常、揮発性であり、コンテンツが実行されるたびに、コンテンツにクリーンな実行環境を提供する。しかし、一部の機能にとっては、コンテンツが複数の再生の間および複数のタイトルの間でデータを格納できることが有効である。この必要性を満たすため、プレイヤは、複数の再生の間で状態を維持するための安全な不揮発性ストレージをコンテンツに提供することができる。このようなストレージは、許可されたインタープリタコードのみが不揮発性メモリコンテンツを読み取ることができること、または変更することができることを確実にするために、さらなるセキュリティ保護を必要とする可能性がある。不揮発性メモリのセキュリティを確実なものにすることは、このメモリを信頼して、例えば、後の支払請求のためにオフラインのペイパービュー視聴履歴を追跡することができるようにするために、パブリッシャにとって重要である。各メモリスロットのロックを解除するために、単にキーをメディア上に有するだけでは十分ではない。なぜならば、このキーがまもなく海賊行為者によって発見され、すべてのプレイヤのメモリスロットを危殆化させるようになるからである。したがって、一実施形態は、これらの安全な不揮発性メモリ領域にアクセスするコードの明示的な暗号化認証を提供する。この実施形態では、プレイヤは複数の不揮発性メモリのブロックを含み、これらのブロックはデフォルト設定ではロックされるすなわち、読み取りおよび書き込みが許可されない。プレイヤはまた、メモリブロックのロックを解除する要求を認証するために使用される公開キーも含む。このメモリブロックへのアクセスを得るために、コンテンツは、メモリにアクセスすることを許可されるコードのブロック上で、デジタル署名を入力として受け取る関数を呼び出す。この署名は、プレイヤ内に埋め込まれた公開キーを使用することによって検証可能であり、ロックを解除すべきメモリブロック、および、ブロックの各部分内で許可されるアクセス特権任意の読み取り、任意の書き込み、インクリメント、デクリメント、ゼロ化などを指定する。インタープリタはデジタル署名を検証し、署名が有効である場合、メモリのロックを解除し、デジタル署名付きコードを実行する。以下に、時折例えば、毎月の監査によってオフラインのペイパーユースコンテンツの支払請求をする際に使用するための、このプロセスの一例を示す。aパブリッシャXは、プレイヤのメーカYと、メーカYのプレイヤの不揮発性メモリ内の4バイトカウンタを制御するための権利について協議する。bパブリッシャXは、メモリコンテンツをチェックするインタープリタ用の関数を記述する。値が支出制限より小さい場合、関数はカウンタをインクリメントする。値が支出制限以上の場合、関数はパブリッシャとのインターネット接続を確立し、カウンタ値、乱数、および支払情報クレジットカード番号、または、プレイヤ内に格納された他の資金源などを含む支払要求を送信する。パブリッシャが、カウンタによって示された過去の購入に加えて現在の購入のための支払を受け入れる場合、パブリッシャは、カウンタを消去するための暗号化認証をプレイヤに送信し、この暗号化認証をプレイヤが検証し、有効な場合カウンタをゼロにする。プレイヤは、メモリを再ロックすること、および、成功または失敗を示すコードを返すことによって、終了する。cメーカYは、パブリッシャXのメモリ領域、アクセス特権などを識別するパラメータを含むメモリアップデートコードにデジタル署名する。dパブリッシャXは、署名付きコードを含むコンテンツを作成し、これをユーザに配布する。eユーザのプレイヤはコンテンツのロードを開始し、これはユーザに購入オプションを提示する。ユーザが購入を断る場合、再生は進行しない。fコンテンツは、ステップbで記述されたコードへのポインタ、および、ステップcで作成されたデジタル署名をもってメモリアンロック関数を呼び出す。gメモリアンロック関数は、ステップbで説明したように購入しようと試み、成功または失敗を報告する。h購入が成功した場合、コンテンツはユーザのために再生される。購入が失敗した場合、再生は終了する。言うまでもなく、上述の安全なカウンタメカニズムを使用して、はるかに高度な購入メカニズムを利用することができる。コンテンツ内で何を実装することができるかについての実際の制限は、プレイヤの機能およびパブリッシャの創造性のみによって決まる。様々なストレージ技術を、本明細書で開示するシステムおよび技術と共に使用することができる。これらのストレージ技術には、フラッシュメモリ、磁気ストレージ例えば、ハードディスク、バッテリバックRAMbatterybackedRAMなどが含まれるが、これらに限定されるものではない不揮発性ストレージを提供するための、および、このようなストレージを暗号化するか、またはそうでない場合はそのようなストレージを保護するための、幅広い種類の方法が背景技術において知られている。安全なストレージをプレイヤの外部に配置することができ、例えば、これらに限定されるものではないが、リムーバブルモジュール内スマートカードなど、アタッチされた出力ペリフェラル内スピーカ、ディスプレイ、ホームネットワーク内のリモートデバイスなど、コンピュータネットワークを介してリモートに安全なストレージを配置することができる。メモリブロック割り当てを、例えば使用可能な空間に基づいて提供し、確実にし例えば、スロット番号により、または、優先順位に基づいて割り振り/リサイクルすることができる。メモリスロットを消去または解放することは、報告されないペイパービュー記録を失う結果となる可能性があるので、スロットを上書きすることができる条件を指定する能力をコンテンツに与えることができる。複数のタイトルを同時に再生することができるが、1セットの不揮発性メモリスロットしか有さないプレイヤでは、ロッキングメカニズムは、コンテンツの一部分が、コンテンツの別の部分によって変更されているスロットにアクセスすることを確実にするよう要求される場合がある。一実施形態では、プリペイドスマートカードが消費者によって購入され、プレイヤ上のスロットに挿入される。このカードは複数の追記型メモリスロットを含み、プレイヤは、このメモリスロットへペイパービューコンテンツタイトルに対応する識別子を書き込むことができる。識別子が書き込まれると、コンテンツ識別子は、カード内に実装された暗号化オラクル計算に組み込まれる。したがって、コンテンツは、再生可能となる前に正しいオラクルが存在することを検証することによって、購入が完了していることを検証することができる。上述の、プレイヤ関数へのコールを認証するための全般的な手法は、安全なカウンタと共に使用することに限定されないことに留意されたい。例えば、同じ手法を使用して、許可されたパブリッシャにのみ使用可能な特別なプレイヤ機能へのアクセスを保護することができる。この手法は、さらに、本明細書で開示する技術およびシステムの他の態様とは異なる適用可能性を有する。なぜならば、この手法は、計算関数へのアクセスを保護するための、汎用的ではあるが非常に柔軟性のある方法を提供するためである。暗号および言語ベースのセキュリティ機能の比較セキュリティポリシを複数の異なる方法で実装することができる。暗号化保護は、失効したプレイヤ、または無許可のプレイヤがコンテンツを復号化するために必要な暗号化キーを欠くようなコンテンツの構築を可能にする。無許可のプレイヤは、キーを欠くコンテンツにアクセスすることはできない言うまでもなく、優れた暗号が使用されるならば。この手法は、コンテンツ所有者に、特定のデバイス上での再生をブロックする能力のみを提供するので、比較的柔軟性がない。より高度な実施形態では、異なるキーセットを使用して、幾分より詳細な制御を提供することができる一方で、キーベースの制御は、より複雑なアクセス制御の課題を解決するために必要とされる柔軟性を欠く。それにもかかわらず、特定のプレイヤが危殆化される場合、または、コンテンツを復号化する能力を有するために信頼できないと見なされる場合に対処する点で、これは、極めて有効である。反対に、言語ベースの制御は、プレイヤが危殆化されるまたは、何らかの他の理由のためにまったく信頼できない場合にそれほど有効ではないが、極めて高度なセキュリティポリシを実装することができる。前述のように、コンテンツは再生環境を解析することができ、暗号化オラクルへコールすることができ、結果が不満足であると見なされる場合、再生を拒否することができる。この手法は実質的に無制限の柔軟性を提供し、一般に真正に振る舞うが、一部のパブリッシャが所定のコンテンツにおいて防止することを望む可能性のあるオペレーション非保護フォーマットへのリッピングなどをサポートする場合のある、プレイヤ上での再生に関連するリスクを管理することに、理想的に適するようになる。攻撃者は、少なくとも理論的には、コンテンツの個々の部分を解析し、解読することができるが特に、コンテンツのコードが不十分に書かれる場合、これらの攻撃を一般化することはできず、暗号化オラクルを慎重に使用して、これらの攻撃に確実に対処することができる。さらに、本明細書で説明した復号化制御機能によって自らのコンテンツの海賊コピーを監視するパブリッシャは、危殆化されたデバイスを識別し、脆弱でない新しいコンテンツを作成することができる。進化長期にわたって安全であり続ける配布インフラストラクチャをコンテンツ所有者に提供することが望ましい。以前のコンテンツ保護システムはこの点でひどく失敗しており、実装者はコンテンツ所有者を新しいフォーマットへと勧誘するとき、最初はセキュリティに熱心である可能性が高いが、セキュリティレベルは、フォーマットの成功が確実になった後で著しく低下する傾向がある。様々な要因がこの低下を導くが、これらの要因には、攻撃するためのより多くの実装が入手可能であること容易に解読される製品が販売されるようになる可能性が増す、より保護されたコンテンツが入手可能になるために海賊行為に対する需要が増すこと、および、攻撃者の高度な知識が増すことが含まれる。本明細書で開示するシステムおよび技術の例示的実施形態を構成して、コンテンツ所有者が、メディアフォーマットが標準化された後でも自分のコンテンツがどのように保護されるかを指定し続けることを可能にすると同時に、攻撃が発見される場合にセキュリティが永遠に失われないように、実質的に無制限の更新可能性を可能にすることができる。セキュリティポリシが静的でない場合、メーカは、有効なセキュリティを提供するための継続的な長期インセンティブを有する。例えば、コンテンツ所有者は、キーが危殆化されるデバイス上で、または、通常海賊行為のために使用される製品上で、再生をブロックするまたは、高品質再生を防止する能力を有することができる。結果として、従来のシステムとは異なり、製品メーカは、自社製品を可能な限りの低価格で提供するために競争するとき、セキュリティを犠牲にすることはできない。なぜならば、消費者もまた、堅牢なセキュリティを有する製品を探し出すようになるからであり、これらの製品は最良で最も信頼性の高い再生体験を提供するようになるからである。善意のメーカでさえ、後にセキュリティ欠陥を有すると認められる製品を、偶然に製造する可能性がある。したがって、発明者らは、危殆化およびセキュリティ弱点に対処するために使用することができる様々な方法を開示する。例えば、プレイヤ暗号化キーおよびソフトウェアを、デジタル署名付きコードまたはキーアップデートを使用してアップデートすることができる。これらのアップデートを、キーアップデートを実行するソフトウェアを含むメディアの形態でプレイヤに配信することができる。例えば、正当なユーザのプレイヤが、以前の所有者がそのセキュリティを危殆化させたために、最終的に失効する場合、新しい所有者は製品のテクニカルサポートラインに電話して、新しいキーを取得することができる。言うまでもなく、カスタマサービス担当者は、海賊行為者が無許可の目的のために新しいキーを要求する電話をかけさせないように、名前、住所、クレジットカード番号、電話番号、電子メールアドレス、IPアドレスなど、何らかのユーザ情報を得ることを望む場合がある。アップデートを、インターネットまたは他のネットワーク接続、モデムコール、リモートコントロールまたはキーボードを介した入力などを介して配布することもできる。言うまでもなく、攻撃者がアップデートプロセスを使用して、危殆化されたキーを投入すること、またはそうでない場合はプレイヤを攻撃することができないように、アップデートは、可能なときは常に、暗号的に保護されるべきである。メーカが危殆化の影響を低減させることができるもう1つの方法は、スマートカードなどのリムーバブルなセキュリティモジュールを含めることである。スマートカードは、暗号化オラクルの一部またはすべて、ならびに、コンテンツに提供された他のセキュリティ関連機能を実装するようになる。危殆化が発生する場合、またはセキュリティ欠陥が発見される場合、プレイヤ全体を取り替えるか、またはアップグレードするのではなく、スマートカードを取り替えることができる。単にスマートカードスロットを提供するが、スマートカードがセキュリティ上の理由で必要になるようなときまでスマートカードを利用しなくても十分である場合があることに留意されたい。スマートカードが正当なプレイヤから取り除かれないように、および、悪意のあるプレイヤで使用されないようにするため、プレイヤおよび/またはカードが消費者に送られる前に、例えば、これらに対称キーを共有させることによりスマートカードを受信器へ暗号的にリンクさせることができる。マスタリングおよびDRMコンテンツのマスタリングに伴うすべての新しいコストが、コンテンツ所有者にとって当然の関心事である。単純なセキュリティ手段が使用される場合、マスタリングプロセスに対する莫大な新しいコストを回避するために、本明細書で開示する技術およびシステムを利用することができる。複雑なセキュリティポリシを実装するコンテンツを開発するには明らかにより多くの開発およびテスト活動が必要となるが、この費用は完全に任意である。他の保護システムは単にこの選択を排除し、すべてのコンテンツパブリッシャに強制的に同じセキュリティシステム、ポリシなどを使用させる。言うまでもなく、パブリッシャはセキュリティシステム自体を開発する必要はない。なぜならば、本明細書に開示するシステムおよび技術は、サードパーティDRMベンダがセキュリティモジュールおよびマスタリングシステムを提供することも可能にするからである。これらのベンダは、最良の機能、最良のセキュリティ、最低のコスト、最大の柔軟性、最良の使いやすさ、最良のパフォーマンス、最小のコードサイズ、最も広範な失効リストなどを提供することによって、パブリッシャのビジネスを求めて競争するようになる。本明細書で開示する技術およびシステムは、コンテンツ所有者がセキュリティについて自分自身で意思決定する能力を有するプラットフォームとしての機能を果たすことができる。ウォータマーキングおよび危殆化トレーシング大部分の従来のウォータマーキング方法によって、マーク検出プロセスが、多数の幅広く利用された製品において標準化および実装される。この静的なアルゴリズムは不運にも重大なリスクをもたらす。なぜならば、検出アルゴリズムを知ることで、一般に、攻撃者がコンテンツの品質をひどく低下させることなく、ウォータマークを除去することが可能となるからである。例示的実施形態において、本明細書で開示するシステムおよび技術は、マークフォーマット、エンコードプロセスおよび検出プロセスがすべてパブリッシャによって選択されるために一般的なマーク除去攻撃の影響を受けにくい、オンザフライのウォータマーク挿入を含むことができる。1つの例示的実施形態では、パブリッシャまたは、より正確には、パブリッシャによって記述された制御プログラムは、所定の情報を所定の出力コンテンツ内に埋め込むことを望む。第1のコンテンツ部分または第2の部分の一方を復号化し、出力することによって、この情報の各ビットをエンコードすることができる。これらの部分はメディア上の異なる暗号化された領域とすることができ、これらの部分を異なるキーにより暗号化することができる。コンテンツがマスタリングされるときにパブリッシャはこれらの部分の間の差異を選択することができ、これらの部分の間の差異は、知覚できないほど微妙なバリエーションからまったく類似しないものまで、どのようなものにもすることができる。2つの部分の間には所定の関係がないので、一方の部分その部分用の復号化キーを含むのみを知っている海賊行為者が他方の部分を決定するための方法はない。暗号化およびプログラムベースの制御を使用して、どの領域が復号化されるかを選択することができるので、攻撃者は、代替領域が何を含むか判断することができない。実際、攻撃者が代替領域が存在するかどうかを確認することすらできないように、例えば、異なるプレイヤが異なるコードを使用するように制御コードを暗号化することにより、および、どのプレイヤも復号化することができない、または非常に少数のプレイヤのみが復号化することができるダミー領域を含めることにより、コンテンツを設計することができる。1つの例示的実施形態では、すべてのプレイヤのサブセットのみがコンテンツの領域の各バージョンを復号化するために必要なキーを有するが、実質的にすべてのプレイヤがその領域の少なくとも1つのバージョンを復号化するために必要なキーを有するように、コンテンツは作成される。したがって、この領域の無許可のコピーを解析することによって、パブリッシャは攻撃者に関する情報を割り出すことができる。このことは、攻撃者が何とか脆弱なプログラムを解析し、複数の代替領域を復号化することができる場合にも当てはまり、これは、結果として生じる複数の領域の組合せがなお、どのバージョンが復号化されたかをパブリッシャに対して示すからであることに留意されたい。最終的に、ユーザが自分の識別または自分のプレイヤの識別をパブリッシャのアンチパイラシ実施専門家に明らかにすることを回避できる唯一の確実な方法は、まず第一に海賊行為に参加することをやめることである。マーク検出プロセスを標準化する必要はないので、この汎用マーキング手法は、従来のウォータマーキングとは異なる。この違いは非常に強化されたセキュリティを可能にし、実際には、このマーキングスキームに対する一般的な攻撃はないことを示すことができる。さらに、ウォータマーク付きビットは出力において差異を生じるので、これらのウォータマークは極めて堅牢となることができ、デジタル/アナログ変換、編集、フォーマット変換、悪意のある攻撃などを切り抜けて存続するように設計することができる。どのようにコンテンツマーキング機能を構成し、かつ使用するかを決定することは通常、パブリッシャによってなされる。一部のアーティストは、ウォータマーキング機能の使用を除いて、変更がどんなに小さくても自分の作品に対して変更を加える可能性のある技術を回避することを望む場合がある。他の場合には、所定のタイプのコンテンツは幅広く海賊行為を受け、マーキング機能を非常に積極的に使用するためのよい候補である。諸部分は通常、知覚できないほどの差異のみを有するように選択されるが、どの代替バージョンをエンコードするかを選択すること、可能性のある複数の出力バージョンの間でどのように選択するか、および、これらの部分のための復号化キーの管理は、コンテンツによって制御される。マーキング機能は、コンテンツと統合されたデータ処理命令によって制御されるので、この技術を他の機能のために使用することができる。これらの機能には、勝者のプレイヤが祝辞を出力するくじを実施すること、プレイヤが不十分なセキュリティを提供するユーザにセキュリティアラートを配信すること、および、ボーナスコンテンツをあるユーザに提供することが含まれるが、これらに限定されるものではない。言うまでもなく、他のウォータマーキングスキームもまた、本明細書で開示する技術およびシステムと共に使用することができる。例えば、従来のウォータマークウォータマークに対してマーク検出アルゴリズムが標準化されるものを、コンテンツのコード、または、外部ウォータマーク埋め込み回路コンテンツの制御下にあっても、なくてもよいのいずれかによって、出力に埋め込むこともできる。同様に、やはり、コンテンツのコード、または外部の検出器のいずれかによって受信コンテンツ内のウォータマークを感知して、例えば、無許可コピーの作成または無許可コンテンツの導入の試行を検出することができる。どのウォータマークを埋め込むか選択すること、および、検出されたウォータマークにどのように応答するかを、プレイヤ内および/またはコンテンツ内に実装することができる。移行パスの実施例:CD-オーディオデジタルコンテンツの大部分は今日、非保護フォーマット、または最小限に保護されたフォーマットで配布される。例えば、CDオーディオ規格はアンチコピー機能を含んでおらず、DVDビデオにおける保護スキームは幅広く解読されている。レガシーメディアプレイヤは十分なセキュリティをサポートしていないので、アップグレードまたは取り替えの必要がある。新しいセキュリティシステムの成功は、互換性のあるプレイヤの臨界数量criticalmassを確立することにかかっている。本明細書で開示する技術およびシステムと、コピープロテクトされたCDを作成するための既存の方法とを組み合わせることによって、後方互換性のあるCDを作成することができる。このようなCDは非標準CDフォーマッティングを利用して、大部分のオーディオCDプレイヤ上で正しく再生されるがコンピュータベースのリッピングソフトウェアを混乱させるディスクを作成するようになる。許可された例えば、ライセンスを受けたパーソナルコンピュータソフトウェアもまた、不正確に読み取られるか、またはそうでない場合はコンピュータを混乱させる部分を是正することによって、このディスクを再生することができる。したがって、再生は、大部分のレガシーオーディオプレイヤ上で可能になり、これは、これらのレガシーオーディオプレイヤが非標準コピープロテクトされたレッドブックオーディオ部分を再生することができるからであり、また、再生は、例えば、CD上に含めることができ、または、インターネットを介してダウンロードすることができる適切なプレイヤソフトウェアを有するパーソナルコンピュータ上で可能になる。既存のCDオーディオプレイヤとの後方互換性に対する長期サポートはさらなるセキュリティリスクをもたらす可能性があるが、新しい安全なフォーマットを再生することができるオーディオプレイヤの利用を奨励し、最終的にはコンテンツを安全なフォーマットでのみ販売することができるようにすることは、長期戦略の一部として、有益となり得る。実施例:高精細度DVD現在のDVDビデオプレイヤによって使用されるコピープロテクトシステムは、幅広く解読されている。何百万のDVDプレイヤがすでに販売されており、新しいプロテクトシステムにアップグレード可能ではないので、これらのレガシーユーザのためのサポートを中止することなく、現在のDVDフォーマットをアップグレードする直接的な方法はない。幸いにも、インストールベースのDVDプレイヤは、標準の精細度のテレビ例えば、NTSCでは525本、PALでは625本などのみをサポートするが、高精細度テレビHDTVフォーマットによって提供されるはるかに高品質の信号をサポートしないように設計される。レガシープレイヤはHDTVをサポートしないので、本明細書で開示する新しいセキュリティ機能を、HDTVをサポートするDVD上に組み込むことができる。1つの例示的実施形態では、プレイヤは、1つまたは複数のディスク用の機械化されたトレイからなるユーザがアクセスできるメディア入力を有し、このメディア入力はメディアをスピンドルへロードし、そこでメディアが回転され、レーザを使用して読み取られる。メディアから読み取られたデータはマイクロプロセッサベースの回路に提供され、この回路はディスクエンコーディングを解析して、ディスクの容量、フォーマッティングタイプ、およびセキュリティ方法を決定する。ディスクが、レガシーセキュリティスキームCSSを使用するレガシー低解像度DVDである場合、このディスクは、背景技術で知られている方法を使用して再生される。ディスクが、本明細書で開示されるようなプログラマブルなセキュリティ方法を使用する高密度DVDである場合、コンテンツのセキュリティポリシのためのプログラムコードデータ処理命令がディスクからロードされ、プレイヤによって実行される。プレイヤはまた、任意で、改良されたセキュリティを使用する低密度DVD、ならびに、レガシーな保護方法を使用する高密度DVDをサポートすることもできるしかし、新しいコンテンツのために幅広く解読されたセキュリティスキームを使用することは、一般にほとんど利点を提供しない。DVDプレイヤからの出力の品質を、コンテンツによって制御することができる。例えば、コンテンツは、プレイヤおよび/またはHDTV出力デバイスが十分なセキュリティを提供しない場合、より低い解像度の出力を出力するように選択することができる。この場合、コンテンツは、HDTV信号をより低い解像度へダウンコンバートする例えば、このために特に設計された品質低下モジュールdegradationmoduleを使用するようプレイヤに命令すること、信号のより低い解像度部分を復号化するために必要とされるキーのみをプレイヤに供給するおよび、より高い解像度部分のために必要とされるキーを与えないでおくこと、または、より高い解像度バージョンとは分離して、メディア上でエンコードされるコンテンツの低解像度バージョンを出力するようプレイヤに命令することができるこれらは例であり、これらに限定されるものではない。インタープリタキテクチャ1つの例示的実施形態では、インタープリタ言語はDLXアセンブリ言語に基づく。基本的なDLXプロセッサアーキテクチャは背景技術においてよく知られている例えば、ComputerArchitectureAQuantitativeApproachbyHennessyetalSecondEdition参照。インタープリタのメモリ空間1つの例示的実施形態では、8メガバイトのRAMからなる内で実行するコードは、このメモリおよびプロセッサのレジスタセットのみにアクセスすることができるようにサンドボックスされる。無効な命令または、他のオペレーションは、NOPすなわち、何もしないとして処理される場合があり、または例外を引き起こす場合がある。同様に、区域外のメモリアクセスは、例外を引き起こす場合があり、または例えば、8メガバイトのアドレス空間からの32ビット読み取りの場合、アドレスと、16進の0x007FFFFCとでAND演算を行い、区域外のアクセスをメモリの開始にラップアラウンドして、32ビットのアラインメントを確実にすることによって是正される場合がある。DLXトラップ命令は、外部プロシージャコールへのアクセスを提供するために使用される。トラップ命令はプレイヤ内で、サンドボックスの外部に拡張するすなわち、標準の命令がアクセス可能なレジスタおよびメモリを越えることができるオペレーションを呼び出す。このようなオペレーションの説明については、再生環境への問い合わせおよび再生環境の制御のセクションを参照されたい。専用ハードウェア実施形態では、ソフトウェアベースのインタープリタ/エミュレータではなく、DLXプロセッサのASICまたはFPGAまたは他のハードウェア実装を使用することも可能であり、この場合、例えば、プロセッサがより高い特権レベルに入るように、例えば、追加のアドレス行を使用可能にすることによってアドレススペースを拡大してROMまたはEEPROM領域を含むように、リターンプログラムカウンタを格納するように、および、さらなる処理のために、拡大されたアドレススペース内の所定のアドレスにジャンプするように、トラップ命令を構成することができる。より高い特権レベルは、外部ペリフェラル例えば、不揮発性メモリ、暗号化アクセラレータ、キー管理コンポーネント、光メディアドライブ、データネットワーク、衛星受信器などと対話する能力などのさらなる命令または機能をプロセッサコア内で使用可能にすることもできる。ハードウェア実装におけるメモリ保護機能には、アドレス行の数を制限することそれにより、区域外アクセスを防止する、または、背景技術において知られている他のメモリ保護方法を使用することを含めることができる。トラップコールの完了時に、プロセッサは特権レベルを下げて、コンテンツコードの実行を進める。高密度光ディスク上に格納されて配布されたビデオを復号化するための例示的DLX実装では、トラップオペレーションは、コンテンツがデータをディスクから読み取ることを可能にするために提供される。データを物理的メディアからロードするため、コンテンツコードは通常、アドレス例えば、光ディスク上のセクタ番号、DLXメモリ空間内のデータのための宛先アドレス、ロードすべきデータの量、および、任意でデコードパラメータエラー訂正多項式/パラメータ、デコードキーなどを指定する。コンテンツは、データをコードとして実行することも含めて、データを使用する任意の方式の処理ステップを実行することができる。光ドライブ、ハードドライブ、および他のデータソースはしばしばかなりの待ち時間を有するので特に、新しいトラックにシークするなどのオペレーションを実行中であるとき、別のトラップオペレーションを使用して、必要とされると予想される領域を事前に指定し、データを要求し、保留中の要求の状況をチェックし、および/または、実際にデータをDLXメモリ空間にロードすることができる。コンテンツコードは、高速暗号オペレーションをメモリ上で実行するためにトラップオペレーションを呼び出すこともできる。例えば、例示的バルク復号化トラップオペレーションはAES暗号化アルゴリズムを利用し、aプレイヤ内にまたはプレイヤがアクセスできる格納された複数の秘密キーの中から選択するインデックス、b暗号化されたキー、c復号化すべきデータのためのDLXメモリ空間内のアドレス、およびd復号化すべきデータの長さを、コンテンツが指定することができるようにする。トラップはaインデックス値によって識別されたキーを使用して、コンテンツからの受信した暗号化されたキーを復号化し、b復号化されたキーをAESアルゴリズムと共にECBモードで使用して、指定された数のデータブロックを示されたアドレスで復号化する。インデックスによって選択することができるキー復号化キーには、プレイヤ内に格納されたキープレイヤ固有のキー、メーカキー、グループキー、メディアキーなどが含まれただし、これらに限定されない、任意で、これらを暗号機能および内部不揮発性メモリを備える耐タンパ性を有するチップに格納することができる、外部デバイス暗号モジュール、ディスクドライブ、リモートネットワークアクセス可能デバイス/サーバ、ディスプレイ、スピーカなどただし、これらに限定されない内に格納されたキーを含めることができる。どのキーが使用可能であるかを判断するため、コンテンツコードは、プレイヤのタイプ、プレイヤのシリアルナンバ、プレイヤ内に含まれるおよび、任意で、プレイヤのメーカまたは信頼できるパーティによってデジタル署名されたキーリスト/説明、ネットワークを介して得られたデータ、および、プレイヤまたは再生環境についての他の任意の入手可能なデータなどの情報を解析することができる再生環境への問い合わせおよび再生環境の制御のセクションを参照。コンテンツコードは、任意の方法の他の暗号化機能をプレイヤに提供することもできる。これらの暗号化機能には、暗号化、復号化、対称アルゴリズムいずれかのオペレーションのモードによる、ストリーム暗号、ブロック暗号、ハッシングアルゴリズム、メッセージ認証コードなど、公開キーアルゴリズム署名、検証、暗号化、復号化、キー合意、ゼロ知識オペレーションなど、キーおよび証明書管理などが含まれるが、これらに限定されるものではない。コンテンツコードは、追加の処理または前処理オペレーションを復号化結果に対して実行することができる。例えば、XOR演算を実行して、ECB復号化結果をCBC復号化結果に変換することができる。スクランブル解除ステップを適用して、敵対者がプレイヤから抽出したキーを使用してそのインタープリタコードを実行することなくコンテンツを復号化することを、防止することができる。適用することができるステップの例には、ビットをトグルすること、単純な2項演算を使用して変更を行うこと、ブロックを再配列すること、例えば、MPEG-2または他のビデオ圧縮規格に不服のあるデータストリームを組み立てるためにオフセット/アドレスを修正または挿入すること、公開キー演算を適用すること合成数を法とするモジュラ平方または立方など、対称暗号化オペレーションを適用すること、および、内部チェックサムを更新することが含まれるが、これらに限定されるものではない。後処理ステップを使用して、例えば、コピーを特定のデバイスまでトレースできるように、フォレンシックウォータマークforensicwatermarkを導入または修正することもできる。インタープリタを使用して、デコード/処理済みデータを実行し、復号化/再生コード自体の諸部分を暗号化された形式で配布することを可能にし、自己書き換えコードの使用などの幅広い種類のコード隠蔽および難読化obfuscation技術をコンテンツが利用することを可能にすることもできる。多機能データ、例えば、実行されるときに有用なタスクを実行し、有効な圧縮ビデオも表すデータを構築することも可能である。処理が完了し、データが出力される準備ができているとき、データをユーザに出力するために、コンテンツコードはさらなるプロシージャコール例えば、DLXトラップオペレーションをプレイヤ内で呼び出すことができる。このようなコールは例えば、データを1つまたは複数のビデオデコーダ例えば、MPEG-2デコーダ、オーディオデコーダ例えば、MP3またはAC-3デコーダ、または、グラフィックスオーバーレイシステム例えば、透過性/オーバーレイ機能を有し、さらに、GL、ShockWaveまたはFlashなどのイメージおよび/またはアニメーションエンジンをサポートするに転送することができる。データは、適切な場合、変換例えば、圧縮解除され、次いで提示される。提示には、オーディオスピーカまたはビデオディスプレイなどの1つまたは複数の物理的に分離したデバイスにデータを転送することを含めることができる。別々のAPIコールとしての復号化機能および圧縮解除/出力機能を有する実施形態は、コンテンツによるより大きな制御を可能にするという利点を有するが、コンテンツがメモリから読み取られ、メモリに書き込まれる必要のある回数を増すという、潜在的な欠点を有する。しかし、実際には、RAMは通常十分に高速であり、映画館品質の高精細度ビデオなどの非常に高ビットレートのコンテンツに対しても、追加の待ち時間を管理できる。高速の実装では、プレイヤコーデックは不必要である場合がある。なぜならば、圧縮解除をインタープリタコード内に実装することができるからである。プレイヤはまた、一命令複数データ並列処理機能singleinstructionmultipledataparallelprocessingcapabilityを提供して例えば、x86プロセッサで見られたMMX、SSEおよびSSE2命令にほぼ類似した、プロシージャコールを介してアクセス可能な一命令複数データ数学演算を提供することによる、インタープリタコードを使用して実行されたコーデック、グラフィックス処理演算などのパフォーマンスを向上させることもできる。様々なインタープリタ実装戦略が可能である。一実施形態では、インタープリタは、標準のマイクロプロセッサ上で実行されるソフトウェア内に実装される。別の実施形態では、インタープリタは、フィールドプログラマブルゲートアレイなどの再構成可能ロジックを使用して実装される。別の実施形態では、専用ハードウェアデバイスがインタープリタの役割を実行する。3つの場合すべてにおいて、プロシージャコールを、ネイティブソフトウェア、ハードウェアアクセラレーション、および、外部デバイスまたはコンポーネントへのコールの任意の組合せを使用して実装することができるただし、これらに限定されるものではない。ネイティブコードプレイヤ独立のサンドボックスされたコードを解釈することに加えて、プレイヤは、コンテンツが実行および/または格納のためにネイティブコードを提供することを可能にすることもできる。キーまたは他の特権付きリソースへアクセスすることができるソフトウェアまたはロジックを受け入れることに先立って、プレイヤはコードの妥当性を検査する。例えば、プレイヤメーカまたは別の信頼できるパーティによって発行された有効なRSAデジタル署名をコードが含むことを確認することによって、妥当性検査を行うことができる。現在ロードされているコンテンツによる実行のために、妥当性検査を通過したネイティブコードを揮発性メモリ内に格納することができ、または、他のタイトルが使用可能なプレイヤの不揮発性メモリ内に格納することができる。例えば、可能性のある他のタイトルへの悪影響を回避するため、現在ロードされているタイトルのみが使用できるように、プレイヤにおける表面的な特異な動作を是正するためのパッチ、または、パフォーマンス最適化を提供するためのパッチを揮発性メモリ内に格納することができる。反対に、セキュリティ脆弱性を是正するためのアップグレードは通常、プレイヤの不揮発性メモリ内に永続的に格納されるようになる。ネイティブコードは通常、単一のプレイヤプラットフォームまたはプレイヤアプリケーションに固有であり、インタープリタコードよりも移植性が低くなる。その利点は、インタープリタコードを使用して対処することができない必要性が生じる場合、ネイティブコードを使用することができることである。例えば、コンテンツは、正当なプレイヤと、無許可のエミュレータまたはクローンとを区別するための方法としてネイティブコードを使用し、攻撃者が製品の設計における主要なセキュリティ脆弱性を発見するたびに、影響を受ける可能性のある任意のデバイスを失効させる必要性を回避することができる。このような攻撃に対する防御として、製品ベンダは、エミュレートまたはリバースエンジニアリングすることが困難となる、ビルトインのネイティブコード機能またはインタープリタオペレーションを含むことができる。プレイヤ特有の攻撃の検出、またはそれに対する対処の助けとなるように設計された機能はベンダ独自および/またはプレイヤに特有である可能性があり、これは、それらの機能がプレイヤ特有の問題に応答してのみ作動されるようになるからであることに留意されたい。特有の手段には、単純な非文書化機能simpleundocumentedfeature、タイミング依存ルーチン、ソフトウェアにおいてフルスピードでリバースエンジニアリングまたはエミュレートすることが困難となるように明示的に設計されるオペレーション例えば、全体を参照することにより本明細書に組み込まれる、Kocherらの米国特許第6289455号明細書に記載の擬似非対称関数を参照、および、完全暗号化オラクル対称または非対称を含めることができるが、これらに限定されるものではない。インタープリタが専用ハードウェア内に実装されるデバイスの場合には、ネイティブコードおよびインタープリタコードは類似している、または等しい場合があるしかし、これらのコードは異なる特権をもって動作する場合があり、この場合、プレイヤはより高い特権レベルでの実行を、特別に認証されたコードに制限することができる。ネイティブコードを使用するコンテンツの例示的実施形態では、メディアは、解釈されるときにさらなる解釈可能コードをロードするインタープリタコードからなる初期ブート部分を含む。コンテンツコード例えば、ブート部分によってロードされたコードは次いで、プロシージャコールをプレイヤに発し、結果を解析して、プレイヤタイプを含む再生環境についての情報を決定するようになる。コンテンツは、例えば、プレイヤまたは他のコンポーネントが、報告された再生環境特性に特有のまたはその特性を示すキーを使用して暗号化オペレーションを実行するよう要求することによって、再生環境を検証することもできる。悪意のあるインタープリタが妥当性検査の結果を改ざんすることを防ぐため、このようなオペレーションの結果を後続のデコードおよび再生プロセスにおいて使用することができる。例えば、プレイヤからの暗号化の結果を復号化キー計算に組み込むことによって、コンテンツは、特定のプレイヤタイプまたは再生環境属性を主張するが対応する暗号化キーを欠く、悪意のあるプレイヤ上での再生を堅牢に防止することができる。結果を期待値と比較し、公開キースキームを使用して検証することなどもできる。コンテンツは次いで、プレイヤが是正を必要とするセキュリティ欠陥または、他の問題をデフォルトで含むタイプであるかどうかを判断する。この判断を行う際、コンテンツコードは、プレイヤ内からの情報例えば、コンテンツがアクセス可能な不揮発性メモリ内のデータ、プレイヤ内のクロックからの日付/時間情報など、および/または、外部で得られた情報例えば、アタッチされたデバイスに問い合わせること、または、ネットワークを介して通信することによるを解析することができる。問題が特定される場合、例えば、メディアから、または、インターネットなどのデータネットワークを介して対応する対策が得られる。問題の性質に応じて、対策はインタープリタコードおよび/またはネイティブコードを含むことができる。ネイティブコード対策が必要である場合には、コンテンツは対策コードをデジタル署名付きデータとしてプレイヤに提供することができ、このデータは、コードが将来の使用のために例えば、プロシージャコールを通じて揮発性メモリ内でバッファリングされるべきであるか、例えば、既存の不揮発性メモリ内のバグを修正するため永続的に格納されるべきであるか、および/または、即時に実行されるべきであるかを示す命令を含む。ネイティブコードは、識別可能オペレーションコンテンツ復号化プロセスと統合することができる暗号化計算などを実行するように構成することができるので、ネイティブコードが実際にプレイヤによって実行されたことを、コンテンツコードに対して保証することができる。例えば、暗号化キーを上書きすることによって、悪意のあるプレイヤを無効にするように、ネイティブコードを構成することもできる。コンテンツはまた、コードおよびコードアップデートネイティブまたはインタープリタに問い合わせ、これらを解析し、デジタルインターフェースを介して接続されたディスプレイまたはスピーカなどの他のデバイスに配信することもできる。再生環境が受け入れ可能になると、コンテンツコードは次いで、例えば、データのチャンクをメディアからロードすること、フォレンシックウォータマークを挿入しながら復号化オペレーションを実行すること、および、復号化されたデータを圧縮解除および出力のために配信することにより、ユーザによって要求されたように再生を進行する。標準化およびパフォーマンスの考慮事項再生環境を十分詳細に定義し、準拠プレイヤのメーカがセキュリティポリシなどにしたがう準拠コンテンツをそれらのメーカの製品で再生できることを確信することができる、標準を有することがしばしば必要である。このような標準は通常、インタープリタの基本命令セットまたはその均等物、および要求されたプロシージャコールを指定する。デコードプロセスのリアルタイム部分に含まれる場合のある任意の命令およびプロシージャコールについてのパフォーマンス要件を定義することも必要である場合がある。パフォーマンス要件は一般に、起動、シャットダウン、および、他の非リアルタイムオペレーション中にのみ実行されるオペレーションでは、それほど重要ではない。例えば、例示的仕様は、準拠インタープリタが毎秒最低800万タイムユニットTUを実行できることを要求する場合があり、この場合、標準の低レベルインタープリタオペレーションはそれぞれ最大1TUを要する場合があり、乗算および除算演算はそれぞれ4TUを要する場合がある。プレイヤにより供給されたプロシージャ例えば、DLXトラップへのコールのためのパフォーマンス要件は、要求されるオペレーションによって決まる。例えば、AES暗号化オペレーションは、最大100TUに加えて、12TUをブロック暗号計算毎に要する場合がある。ワードアラインされたメモリコピーは、最大50TUに加えて、1TUを16バイトまたはその部分毎に要する場合がある。メディア読み取り要求のバッファリング、または、バッファリングされた要求の完了状況のチェックは、最大100TUを要する場合がある。読み取り要求は一度に1つ、提示された順序で、しかし、他の処理と並列で実行され、最大10000TUに加えて、1500TUを2048バイトセクタ毎に要する場合がある。不連続の読み取りは、追加20000640000セクタ内のシーク距離/メディア毎の最大セクタのTUをシークオーバーヘッドとして要する場合がある。完了された読み取りからデータをロードすることすなわち、データをドライブのバッファからインタープリタのメモリ空間に転送することは、最大100TUに加えて、128TUを、転送された2048バイトセクタ毎に要する場合がある。データをコーデックまたは他の出力に転送することは、最大100TUに加えて、1TUを、転送された16バイトまたはその一部毎に要する場合がある。言うまでもなく、これらのタイミング値は例示のために提供され、特定のパフォーマンスメトリックスは、システムの要件によって決まるようになる。例えば、命令シーケンスの合計計算時間を指定するより複雑なパフォーマンス指令を指定して、プレイヤ実装者により大きな柔軟性を提供し、または、コンテンツ作成者によりよいパフォーマンス保証を提供することもできる。実際には、多数の実装は、最低限のパフォーマンスよりかなり高速に動作するようになる。このことは単に、データが必要とされる前に準備ができるようになることを意味する。例えば、通常のインタープリタ命令につき40クロックサイクルを要するソフトウェアベースのインタープリタは、約5000万TU/秒を2GHzマイクロプロセッサ上で実行するようになる。同様に、25MHzで実行し、命令につき2クロックサイクルで実行する専用ハードウェア実装もまた、毎秒800万TUよりも大幅に多く実行するようになる。標準の開発者は、システムの簡素化と、パフォーマンスとの間のトレードオフに直面することに留意されたい。具体的には、ソフトウェアベースの実装では、プロシージャコールにおいて実行されるオペレーションは一般に、インタープリタコードにおける同じオペレーションよりもかなり高速に動作すると仮定することができる。他方では、これらのオペレーションは通常、前もって定義されなければならず、また通常は、それらのパフォーマンスの仮定においてエントリ/終了オーバーヘッドを含まなければならない。それにもかかわらず、メモリコピー、検索、大数の計算、および暗号化計算などの一般的なオペレーションのためのプロシージャコールは、大きなパフォーマンス利点を提供することができる。代替のパフォーマンス向上手法は、インタープリタがコンテンツコードを実行前または実行中に解析して、最適化すること例えば、ネイティブコードに変換することができる領域を識別することである。コンテンツコードには、最適化のための適切な候補である領域をインタープリタに知らせるためのヒントを含めることもできる。ヒントの手法は、高速になる傾向があるが、複雑なオペレーションを実行するという難点を有するハードウェア実装が、例えば、NOPとして処理することによってヒントを無視し、後続のコードを通常に処理することができるという利点を有する。低速になる傾向があるが、より高速なネイティブコード機能を有するソフトウェア実装はヒントを使用して、インタープリタコードを、機能的に互換性のあるネイティブコードルーチンと置換することができる。望まれる場合、パフォーマンス基準は共通の構造のためのプレイヤパフォーマンス要件を指定することができる。プレイヤはまた、コンテンツが、最低限のパフォーマンスを満たすよう常に保証されるインタープリタモード例えば、リアルタイムタスク用と、よりよい平均の場合のパフォーマンスを有するモード例えば、非リアルタイムタスク用とから選択することを可能にすることもできる。コンテンツを作成しているとき、コンテンツ開発者は、自分が書いたソフトウェアが、基準によって指定された最低限のパフォーマンスを満たすことを検証する必要がある。タイミング準拠を検証するための専門のテストシステムは、コンテンツコードが実行するときのその最悪の場合のパフォーマンス特性を作表する。このシステムは、実行される各サブオペレーションに対してプレイヤが取ることのできる最大許容時間を作表しながら、再生プロセスをエミュレートすることによって動作する。再生プロセスが低速すぎる場合例えば、測定された最悪の場合のプレイヤパフォーマンスが、コーデックに供給されているデータにおけるタイムスタンプに遅れを取る場合、または、コーデックがデータ不足になる可能性がある場合、ツールはメディア作成者に通知することができ、メディア作成者は次いで問題を是正することができる。オーサリングツールは同じ手法を使用して、それらの出力が確実に再生されるようにすることができる。不揮発性メモリの保護前述のように、プレイヤデバイスは、コンテンツによる使用のために不揮発性NVストレージ機能をコンテンツに提供することができる。コンテンツを作成するエンティティの数が大きい場合があるので場合により、少数のアーティスト、学生、ホームユーザなど、ならびに大規模のスタジオが含まれる、あるコンテンツが不十分に、または悪意をもってさえ書かれる場合があるという仮定の下で、コンテンツおよびプレイヤがNVストレージ使用において制限を実施することは、有効である場合がある。結果として、プレイヤは、各タイトルがNVメモリを予約し、格納されたデータを読み取り、修正し、上書きする能力を制限することを望む場合がある。安全なメモリおよびカウンタというタイトルのセクションでは、デジタル署名を使用して不揮発性メモリにアクセスするコードの妥当性を検査することを、説明する。しかし、状況によっては、コンテンツタイトルが不揮発性メモリ領域を割り振りおよび/または制御することを可能にしながら、不揮発性メモリセキュリティが集中認証局なしに動作することが望ましい場合がある例えば、政治的および/または技術的な理由のため。以下のセクションでは、集中署名局を必要とすることなく、不揮発性メモリへの安全なアクセスをコンテンツに提供する、プレイヤの例示的実施形態を説明する。図4を参照すると、例示的メモリマネージャは128キロバイトのフラッシュメモリへのアクセスを制御し、この128キロバイトは、各々が256バイトである511のスロット、および、追加のデータのための256バイトに分割される。スロット0[410]、スロット1[412]、スロット2[414]、および、その後の各スロット440は、最初にスロットを割り振ったタイトルのメディアIDを識別する128ビットの作成者メディアID420、最後にスロットを変更したタイトルのメディアIDを識別する128ビットの最終アップデートメディアID422、スロットが最後にアップデートされたときを識別する40ビットの最終アップデートシーケンスカウンタ424、スロットが上書きされる必要がある場合にスロットのランクを示す8ビットのスロット優先順位値426、許可されたコードによってのみアクセス可能である16バイトのプライベートデータ428、スロットにアクセスすることを許可されるコードの160ビットのハッシュ430、および、メインスロットペイロードデータ432を含む。プレイヤが工場で初期化されるとき、これらの値をすべてゼロに初期化して、スロットが空であることを示すことができる。128キロバイトの不揮発性メモリの最後の256バイトを使用して、秘密プレイヤキー444、上書きされている優先順位6スロットの数を含むカウンタ445、上書きされている優先順位7スロットの数を含むカウンタ446、および、高部分447および低部分448として格納されたスロット書き込みカウンタを含む値を格納する。スロット書き込みカウンタは頻繁に更新され、一部の不揮発性メモリ技術は、非常に多くの書き込みサイクル後に消耗するので、このカウンタは、いずれかの特定のメモリセルが更新される回数を制限する形態で格納される。低部分における1024ビットのうち1023が満たされていない限り、1ビットを低部分448に設定することによって、このカウンタはインクリメントされ、低部分における1024ビットのうち1023が満たされる場合、高部分449がインクリメントされ、低部分448のすべての1024ビットは消去される。高部分447を1024で乗算し、次いで低部分449に設定されたビットの数を加算することによって、カウンタ値は読み取られる。プレイヤが工場で初期化されるとき、これらの値をすべてゼロに初期化することができるが、ただし、プレイヤキーはシークレット擬似ランダム値により初期化されるべきである。プレイヤはまた、揮発性メモリ例えば、従来のRAM内に格納することができる、複数の値も維持する。これらには、メディアキー450、メディア識別子452、どのスロットすなわち、番号0ないし510が現在アタッチされているかを示す値456、および、現在のタイトルによってこれまでに書かれたNVメモリ内の最高優先順位スロットを示す値が含まれる。タイトルが初期化されるとき例えば、メディアが挿入されるか、またはプレイヤがリセットされるとき、アタッチされたスロット識別子454、アタッチされたスロット優先順位456、および、最大作成優先順位458がリセットされる。メディアキー450は好ましくは、コンシューマ記録可能メディア上でコンシューマ記録可能デバイスにより書き込み可能ではないメディアの一部分からロードされる。メディア識別子452は、次いで、背景技術においてよく知られているセキュアハッシュアルゴリズムSHA-1などの一方向の暗号化変換を適用することによって、メディアキーから導出される。追加の保証を提供するために、メディアは暗号化署名認証メディアキー450および/またはメディア識別子452を運ぶことができ、次いで、これらをプレイヤおよび/またはコンテンツコードによって認証することができる。代替実施形態は、他の値メディアを製造またはプレスした施設の識別、および/または、代わりにメディアの特定の部分に特有の識別子などを含むことができ、必ずしも識別子とキーの間の固定関係を有する必要はない。一般に、コンテンツコードは、各スロットのプライベートデータ428を除く不揮発性メモリコンテンツに対する実質的に自由な読み取りアクセスが認められる可能性がある。この読み取りアクセスは、コンテンツがスロット番号を指定してコンテンツを検索することを可能にするプロシージャコール例えば、DLXトラップオペレーションを使用して、実施することができる。要求されたスロットが現在アタッチされていないすなわち、アタッチされたスロット識別子454によって識別されない場合、スロットプライベートデータ428は返されない例えば、ゼロがこれらの位置に返される。例示的実施形態では、コンテンツには、不揮発性メモリスロットから読み取り、不揮発性メモリスロットへのアクセスアタッチを要求し、および、不揮発性メモリスロットの修正を行うための、以下の基本的オペレーションが提供される。SlotRead:このプロシージャコールは、指定されたスロットのコンテンツを、コンテンツコードによってアクセス可能なメモリ空間に読み込む。このプロシージャの入力パラメータには、スロット番号、および、結果が格納されるべきコンテンツのメモリ内のポインタが含まれる。スロットコンテンツ全体は、プライベートデータフィールド428を除いて返され、プライベートデータフィールド428は通常、読み取り結果においてゼロにされる。指定されたスロット番号が-1である場合、アタッチされたスロット識別子454によって識別されたスロットが読み取られ、完全なコンテンツプライベートデータ428を含むが検索および格納される。オペレーションの戻り値は、読み取られたスロット番号例えば、スロット-1が指定された場合、アタッチされたスロット識別子454、または、なぜ要求が失敗したかを示すエラーコードのいずれかを含む整数である。SlotAttach:このプロシージャコールは、指定されたスロットへの特権付きアクセスを要求するために使用される。このようなアクセスを付与することに先立って、要求を行うコードが認証される。プロシージャの入力パラメータは、スロット番号、コードの長さ、および要求された優先順位レベルを指定する。プロシージャは、アクセスを付与されるべきコードの開始アドレス例えば、SlotAttachオペレーションを呼び出す命令の後に続く、コンテンツのメモリ内のアドレスを割り出す。このアドレスおよび指定された長さを使用して、プロシージャは次いで、例えば、SHA-1を使用してコードの暗号化ハッシュを計算する。ハッシュ結果が、スロット内に格納された許可ハッシュ430の値に合致しない場合、または、例えば、図5に関連して後述するように要求された優先順位が無効であると判定される場合、スロットゼロがアタッチされすなわち、アタッチされたスロット識別子454およびアタッチされたスロット優先順位456がゼロに設定され、エラーが返される。そうでない場合、要求されたスロット番号は、現在アタッチされているスロットになるすなわち、アタッチされたスロット識別子454が、要求されたスロット番号に設定され、アタッチされたスロット優先順位456が設定される。特別な場合として、呼び出し元コードは-1のスロット番号を指定して、新しいスロットが割り振られるよう要求することができる。この場合、プレイヤは例えば、図5に関連して後述するように要求された優先順位の妥当性を検査し、優先順位が無効である場合、エラーを返す。そうでない場合、プレイヤは後述のように上書きすべきスロットを選択し、例えば、作成者メディアID420を現在のメディアID452に設定し、他のスロットフィールドをゼロにし、書き込みカウンタ447/448をインクリメントすることによりこれを消去して、例えば、アタッチされたスロット識別子454をこのスロットの番号に設定し、優先順位456を要求された優先順位に設定することによりこのスロットにアタッチし、最大作成優先順位458を、その現在値および要求された優先順位456のうち大きい方に設定する。潜在的に信頼できないコードを不意に実行させる可能性のある他の機能、または、割り込みをインタープリタがサポートする場合、スロットがアタッチされる間に悪意のあるコードが開始されることを回避するために、これらは無効にされるべきである。戻り値は、アタッチされたスロット番号454であり、または、オペレーションが失敗した場合例えば、コードハッシュのミスマッチのため、または要求された優先順位が無効であるため、エラーコードである。SlotWrite:このプロシージャコールは、現在アタッチされているスロットにデータを書き込む。このプロシージャの入力パラメータは、スロットプライベートデータ428、認証ハッシュ430、およびペイロード432のための新しいコンテンツを示し、これらは、他のスロットフィールドのための更新値と共に書き込まれる。詳細には、作成者ID420は不変のまま残され、最終アップデートメディアID422は現在のメディアID452に設定され、最終アップデートシーケンスカウンタ424はスロット書き込みカウンタ447/448に設定され、スロット優先順位426は、アタッチされたスロット優先順位456に設定される。スロット書き込みに先立って、スロット書き込みカウンタは、その低部分448、および、必要な場合は高部分447を更新することによって、インクリメントされる。有限のライフタイム例えば、多数のフラッシュおよびEEPROMメモリは、100万書き込みサイクルと見積もられるを有する不揮発性メモリを使用するプレイヤは、電源投入/メディア挿入後に、例えば、128を超える非常に多くの書き込みが実行されている場合、書き込みを拒否することができる。書き込みオペレーションは、アタッチされたスロット識別子454およびアタッチされたスロット優先順位456を共にゼロにリセットする。戻り値は、書き込みが成功したかどうかを示すステータスコードである。スロット優先順位管理サポートは、複数の相反し得る目的のバランスを取るために提供され、これらの目的には、aコンテンツは、適度に必要とする可能性のある量の不揮発性メモリへアクセスすべきであること、bコンテンツは、その不揮発性メモリが不意に上書きされないことを確実にすべきであること、cあるタイトルが過度に多くの不揮発性メモリを予約して、それにより他のタイトルが予約できないようにすることが、可能であるべきではないこと、d空のスロットが不揮発性メモリ内で使用できない場合、新しいコンテンツに何らかの不揮発性ストレージを提供するために、めったに使用されないスロットがリサイクルされるべきであること、および、eタイトルが、正当なスロットをリサイクルさせるように設計された多数の要求を提示することができないようにするべきであることが含まれる。一般に、より高い優先順位を有するスロットは、プレイヤがスロットを使い切っている場合、上書きされる可能性が低い。例示的実施形態では、優先順位ルールは、各メディアタイトルが多くても1つの最高優先順位スロット優先順位7を確実に有することができるように設計される。加えて、メディアは、各挿入または各プレイヤパワーサイクルにおいて、2以上の優先順位を有するスロットを1つだけ作成することが認められる。コンテンツは、7より大きい優先順位を有するスロットを作成することはできないが、プレイヤが製造されるときに予約されたスロットは、より高い優先順位レベルを有することができる。図5は、アタッチされたスロットのための要求された優先順位が受け入れられるかどうかの妥当性を検査するための例示的プロセスを示している。スロットがアタッチされるとき、または作成されるとき上記のSlotAttachを参照、コンテンツは、要求された優先順位値を指定する。ステップ500で、プレイヤは、新しいスロットが割り振られている例えば、スロット番号が-1として指定されるかどうかをチェックする。そうである場合、ステップ510で、プレイヤは、要求された優先順位がスロットの既存の優先順位426を超えるかどうかをチェックし、超える場合は、要求された優先順位が大きすぎることを示すエラーを返す。要求された優先順位がスロットの既存の優先順位426を超えない場合は、ステップ520で、アタッチメント要求が認められて、要求された優先順位を使用して進行する。ステップ500で、要求は新しいスロットを割り振ることであると判断する場合、プレイヤはステップ530で、要求された優先順位が7以下であるかどうかをチェックし、そうでない場合、エラーを返す。要求された優先順位が7より大きい場合、ステップ540で、プレイヤは、要求された優先順位が2より大きいかどうかをチェックし、そうでない場合、要求された優先順位が、スロットを割り振るために有効であるとして受け入れられる。要求された優先順位が2より大きい場合、ステップ550で、プレイヤは、最大作成優先順位458をチェックして、メディアが挿入された後、またはプレイヤがリセットされた後、2より大きい優先順位を有する任意のスロットがすでに作成されているかどうかを判定し、そうである場合、要求された優先順位が拒否される。2より大きい優先順位を有するスロットが作成されていない場合、ステップ560で、プレイヤは、要求された優先順位が7であるかどうかをチェックし、そうでない場合、要求された優先順位は、スロットを割り振るために有効であるとして受け入れられる。要求された優先順位が7である場合、ステップ570で、プレイヤは、その格納された作成者メディアID420が現在のメディアID452に等しい優先順位7スロットがすでに存在しているかどうかをチェックし、そうである場合、無効であるとして、要求された優先順位を拒否する。優先順位7スロットが存在していない場合、要求された優先順位は、スロットを割り振るために受け入れられる。新しいスロットが割り振られるすなわち、コンテンツがSlotAttachをスロット-1をもって呼び出すとき、プレイヤは、上書きするために最も低い優先順位426を有するスロットを選択する。工場で、空のスロットが、最も低いと考えられる優先順位ゼロで初期化され、したがって、一般に最初に使用されるようになる。複数のスロットが最も低い優先順位を共通して有する場合、最も低い書き込みシーケンスカウンタを有するスロットが選択される。上書きするために優先順位6または7を有するスロットが選択される場合、対応するカウンタ優先順位6上書きカウント445、または、優先順位7上書きカウント446がインクリメントされる。代替として、非常に多数のスロット用のスペースを有するプレイヤでは、要求が高優先順位スロットを上書きすることを必要とする場合、あるいは、高優先順位スロットを上書きすることを伴う場合、単に失敗する可能性がある。工場において、認証ハッシュ432およびゼロでないスロット優先順位用の所定の値をもって一部のスロットを初期化することができる。スロットのための機能性および/またはセキュリティ要件は、ハッシュされるコードによって決まる。例えば、所定の認証ハッシュを定式化するために使用されるコードは、以下のステップを実行するように構成することができる:aすべてのレジスタ例えば、スタックポインタなどを安全な値に初期化し、bRSA署名値を、認証されたコード領域の外部の所定のアドレスからロードし、cSlotAttachオペレーションによって認証された領域に埋め込まれた公開キーを使用して、RSA署名がインタープリタのメモリの領域にわたって有効な署名であるかどうかを判定し、および、dRSA署名が無効である場合、例えば、一般にアクセス可能なスロット0にアタッチすることにより現在のスロットからデタッチするが、RSA署名が有効である場合は、デジタル署名された領域の最初のアドレスにジャンプする。デジタル署名付きコードが特定のプレイヤ上でのみ再生されるよう意図される場合、このコードは、例えば、プレイヤの識別または、他の属性をチェックし、および/または、プレイヤキーを使用して、コードの一部を実行する前に復号化するように、構成することができる。先の段落の実施例では、例えば、安全なメモリおよびカウンタというタイトルのセクションで説明したように、ハッシュベースのスロット妥当性検査スキームを使用して、非対称署名妥当性検査を実施するための方法を例示している。この手法は、スロットが将来の使用のために予約されることを可能にするが、将来の使用は、プレイヤが製造されるとき、または標準が定義されるときに、指定される必要はない。公開キーベースのコード妥当性検査システムを使用して、ハッシュベースの手法を実装するコードに署名することも可能である。単一のスロットを複数の目的に使用することが可能である。例えば、複数のコードセグメントにデジタル署名して、上述のものなどの検証プロセスを通過することができる。これらの各コードセグメントを、スロットの異なる部分を修正するように、および、完了時に適切にデタッチするように構成することができる。スロットのプライベートデータフィールド428も注目すべきである。なぜならば、このフィールドにより、コードがスロットコンテンツを暗号化できるようになるからである。いずれのコンテンツもメインスロットペイロードを読み取ることができるが、許可されているコードしかプライベートデータ428を読み取ることができない例えば、SlotAttachプロセスを使用することにより。したがって、許可されたコードは、プライベートデータ428をキーとしてまたは、キーを導出するために使用して、スロットコンテンツを暗号化および復号化することができる。このようにして、スロットに格納されたデータのプライバシを確実にすることができる。望まれる場合、コンテンツは、認証コードまたはデジタル署名をスロットコンテンツ上に配置することもできる。このような署名を、コンテンツコードによって任意で、プレイヤキーを使用することにより生成することができ、プレイヤによって生成することができ、または、外部のパーティまたはデバイスタイトルのパブリッシャまたはプレイヤのメーカなどによって生成することができる。次いで、すべてのスロットを検索し、例えば所定のセキュリティチェックが必要であること、または、特定のメディアIDが失効されていることを示す、デジタル署名付きのまたは、そうでない場合は認証された値を検索するように、後続のタイトルを構成することができる。複数のタイトルがスロットベースの機能を共有できる。例えば、最新の既知の日付をコンテンツに提供するデータマネージャを実装することができる。この機能を使用する各タイトルは、それがマスタリングされた現在の日付のデジタル署名付き表現、および、スロットの認証ハッシュ430に合致する所定のコードを含むようになる。スロットを管理するためのコードは、aコンテンツと共に含まれた日付におけるデジタル署名をチェックし、無効である場合、スロットからデタッチして、停止し、b現在のスロットコンテンツを読み取り、cタイトルからの新たに検証された日付を、スロットのペイロード432における日付と比較し、dタイトルの日付の方が遅い場合、タイトルの日付をスロットコンテンツ内に入れ、SlotWriteを呼び出して、新しい日付を不揮発性メモリに格納するが、スロットの残りを不変のまま残し、eスロットからデタッチし、および、fRAMからスロットプライベートデータならびに、他の不必要な値を消去するようになる。このオペレーションは、エラーまたは後の日付値すなわち、タイトルと共に含まれた認証日、および、以前にスロット内に格納された日付のうちの遅い方のいずれかを返す。損なわれた日付が遠い将来であると誤って解釈されないように、コードは、任意でデジタル署名を日付と共に格納することができる。加えて、例えば、プライベートデータフィールド428の値をキーとして使用することによりデータを暗号化して格納し、格納された日付値への読み取りアクセスを、現在の日付を含むタイトルに制限することもできる。プレイヤにおける日付値を、例えば、コンテンツが使用して、セキュリティアップデートが必要とされるかどうか、オンラインセキュリティチェックが予定されているかどうか、ペイパービュー購入記録が提示される予定であるかどうかなどを判断することができる。一部の実施形態例えば、リアルタイムネットワーク機能を提供するものなどでは、ネットワークサポートが可能であるとき、プレイヤに不揮発性メモリへのアクセスを制限させることが有利である場合がある。この制限は、例えば、悪意のあるコンテンツがデータを不揮発性ストレージから抽出し、かつ、ネットワークを介して送信することを防止することによって、ユーザのプライバシを確実にするのに役立つことができる。特定の実施例として、ネットワークアクセス機能を使用するタイトルは、データをスロットから読み取ることまたは、ユーザ識別情報を含むと考えられる特定のスロット、もしくは他のタイトルによって作成された所定のスロットを読み取ることを防止することができる。プレイヤは、タイトルがそれらのネットワークアクセス特権を打ち切ること、および、例えば、ネットワークアクセスがもはや必要とされなくなった後に、フォレンシックウォータマーク用の値を得るためより幅広いスロットアクセスを得ることを可能にすることもできる。フォレンシックウォータマークに埋め込まれた情報は同一のプライバシ上の懸念を生じさせることはなく、これは、このデータをコンテンツのコピーからのみ復旧できるためであることに留意されたい。上記の特定の不揮発性メモリ管理の説明は、特定の実施形態を例示するよう意図されている。言うまでもなく、多数の変形形態が可能である。例えば、特定のスロット構成、スロット管理オペレーション、および優先順位管理手法は、例示のために提供されている。メモリを固定サイズのスロットに割り振る代わりに、他のメモリ管理手法を使用することができるスロットに基づかない割り振り方法の使用を含む。他のアクセス制御メカニズムメディア識別子に基づかないものなども使用することができる。スロット用の不揮発性メモリの総量は可変とすることができるまたは、ハードディスクまたは他の大容量ストレージ技術の場合のように、事実上無制限である。別々の不揮発性ストレージ機能を、メディア/ディスク挿入履歴を追跡するために含めることができる。不揮発性メモリまたは、コンテンツによってアクセス可能なメモリなどの他のメモリのコンテンツを暗号化および/または認証し、無許可の読み取り/変更を防止するために、暗号技術を使用することが有効である。ソフトウェア実装においては、様々なコード、アドレス、データ、およびアルゴリズム難読化技術を使用して、プレイヤキーの抽出または改ざんを防止することができる。任意の形のデータをスロット内に格納することもでき、これらのデータには、ペイパービュー購入記録、何らかの種類のカウンタ例えば、購入カウンタ、クレジット/デビットまたは他のバランスカウンタ、障害カウンタ、メディア/ディスク挿入カウンタなど、オンラインまたは電話ベースのセキュリティチェックの結果、視聴記録/履歴、コードインタープリタまたはネイティブ、失効データプレイヤ、ペリフェラル用など、他のタイトルへの信号、リベートまたはディスカウントのための資格を評価するために使用された情報、トランザクションおよび再生履歴データ、デジタル署名、ならびにキーが含まれるが、これらに限定されるものではない。メディア失効1つの注目すべきシナリオは、プレイヤは信頼できるが、メディアが海賊行為を受けている状況である。これは専門的な海賊行為者にとって通常の状況である。なぜならば、海賊行為者は一般に、正当なコピーにできる限り近い製品を提供しようとするからである。海賊行為者が、プレイヤが物理的にオリジナルと区別することができない正当なメディアのコピーを作成する方法を開発する場合、すべてのオフラインメディア再生デバイスはおそらく、この性質の攻撃の影響を受けやすい。メディアのコピーが困難な機能光ディスク上のトラックのウォブル特性の測定などを使用して、正確な複製をより困難にすることはできるが、決意の固い海賊行為者はなお、コピーを作成する方法を発見する場合がある。同様に、フォレンシックウォータマーキングは、コンテンツ所有者が、数ある中でも以前のコンテンツに対して海賊行為を行うために使用された機器を特定することを可能にするが、海賊行為を受けたコンテンツが再生されることを防止しない。海賊行為者がメディアの無許可のコピーを作成するというリスクに対処するため、コンテンツ所有者は、コピー毎に一意の識別子を正当なメディア上に配置することができる。光ディスクでは、工場において一意に書き込むことができる領域内一部の既存のスタンプ付き光ディスク上で発見されるバーストカッティングエリアburstcuttingareaなどに、または、記録可能ディスク部分上に、例えば、記録可能CDおよびDVD、磁気ディスクなどを作成するために現在使用されているものなどのストレージ技術を利用して、このデータを配置することができる。一意に書き込み可能な領域は、少量の情報例えば、数バイトから数百バイトのみを保持するだけでよい。具体的には、この領域は、記録されたシリアルナンバ、ユーザ情報名前、電話番号など、暗号化キーなど、ならびに、これらの値を認証するデジタル署名を保持することができる。コンシューマ記録可能メディアでは、製造される空のメディアの各々について、一意のメディアシリアルナンバおよび、任意で、関連付けられたデジタル証明書を記録することができる。メディアが再生のために挿入されるときに、その一意のデータの認証性が検証されるように、メディア上のコンテンツコードを構成することができる。メディアタイプおよび記録されたデータに応じて、この検証プロセスは通常、そのメディアに固有のデジタル署名を検証することを含む。敵対者がこの検証チェックを回避することを防止するために、難読化コードを使用して検証を実行することができ、チェックを複数回例えば、再生中の様々な時間に実行することができ、検証結果を後続の復号化プロセスと統合することができる。一意のデータが妥当でない場合、コンテンツコードは通常、再生を拒否する。一意のデータが有効である場合、コンテンツコードは、aメディアが正当である、またはbそのメディアが、提供された一意のデータを有した正当なメディアの1つからコピーされた、という確信を得る。次に、一意のメディアが有効であるか、失効しているかを判断するため、コンテンツは、現在挿入されているメディアの失効状況を示すデータフィールドに関するプレイヤの不揮発性メモリ領域をチェックする。合致する失効情報が発見されない場合、このメディアは有効であると推定される。不注意による失効または悪意のある失効を防止するために、デジタル署名または他の認証データ暗号ハッシュに対するプレイメージpreimageなどをチェックすることによって、失効データを認証することができる。プレイヤの不揮発性メモリ内のデータは、存在するならば、どのようなアクションが推奨されるかを示すこともできる。アクションには、aコピーが違法であることをユーザに通知すること、b低下した解像度で再生が進行することを可能にすること、c再生を完全に防止すること、または、d例えば、電話番号に電話してアンロックコードを入力することにより、または、インターネットを介してサーバと対話することによりユーザがコンテンツを正当に購入できるようにすることなどがある。不揮発性メモリは、例えば、望まれる場合、コンテンツが失効されないようにすることができるように、以前の失効メッセージを無効にすることもできる。複数の相反する状況インジケータが存在する場合、シリアルナンバまたは日付を使用して、どれが最新であるかを判定することができる。場合によっては、事前に登録されたものなどの特に許可されたデバイス上でのみ再生可能であるメディアを作成することが有用である。この場合、失効させる代わりに、一意のメディア情報を使用して、メディアアクティベーションmediaactivationを可能にすることができる。例えば、事前のレビューコピーreviewcopyおよび製造前のコピーは一般に、すべてのプレイヤ上で再生可能である必要はないそして、そうであるべきではない。書き込み可能部分に記録されたデータは、各々のメディアの許可された受信者に固有の復号化キーまたは他の情報を含むことができる。一意に記録された領域もまた、名前、電子メールアドレス、口座番号、または、特定の受信者例えば、フォレンシックウォータマーキングの目的、インタラクティブ機能などのためまたは受信者の特性例えば、視聴のプリファレンス、許可データ、グループ識別子、郵便番号などを特定する他のデータを含むことができる。メディアの販売中または販売後に、例えば、万引きされたメディアが再生されることを防止する、それにより、メディアを棚の上に陳列する店における万引きのリスクを減らすアクティベーションステップとして、これらのフィールドに書き込むこともできる。バックエンドシステムは、決してアクティベートされないメディアについて商店に払い戻すか、または、アクティベートされるときにメディアについて商店に請求することができる。この機能のもう1つの使用は、公式リリース日より前にロックされたメディアを配布し、次いで、再生が許可されるべきであるとき、書き込み可能領域上に再生を可能にするキーを書き込むことである。例えば、小売施設、出荷施設、またはセキュリティエージェント例えば、プレス施設が完全には信頼できない場合などのメディアを製造したもの以外の団体または施設が情報を記録できる。エンドユーザデバイスがメディアの諸部分に書き込むことができる場合、メディアが再生またはロック解除されるとき、データ許可キー、プレイヤ識別子などを記録することも可能である。メディア上の書き込み可能部分を使用して、例えば、有料でロック解除を行い、次いで複数のプレイヤ上で再生することができる、ボーナスマテリアルなどの機能を実装することができる。オフラインプレイヤでは、失効通知が通常、後続のタイトル上で配信されるようになる。例えば、新しいタイトルは、失効しているメディアを識別する認証データを伴うシリアルナンバのリストを含むことができる。プレイヤが十分な不揮発性ストレージ例えば、ハードドライブを有する場合、プレイヤが失効リスト全体を格納できる。プレイヤが十分な不揮発性ストレージを有さない場合、失効データをプレイヤの挿入履歴および/または不揮発性メモリスロットに対してチェックして、プレイヤによって再生されているいずれかのメディアが失効されるかどうかを判断することができる。失効される場合、対応する失効データはプレイヤの不揮発性メモリ内に格納される。この手法により、海賊行為を受けたクローンメディアは、初めて挿入されるときには再生されるが、海賊行為を受けたメディアを失効させるメディアが挿入されるとき、失効されるまたは、そうでない場合はフラグが立てられる。一般に、メディア失効は有用である。なぜならば、メディア失効により、消費者にとって、海賊行為を受けたメディアは正当なメディアよりも魅力的ではなくなるからである。メディアアクティベーション/失効を使用して、様々なプロモーションおよびセキュリティ機能を実装することができる。例えば、例えば、ワイドスクリーン、パンスキャン、ディレクターズカットなどの異なるバージョンを含む複数のメディアをもって映画を販売することができる。人々がこのようなメディアを別々に販売またはレンタルすることを防止するために、それらのコンテンツコードは、1つまたは複数の他のメディアがプレイヤの不揮発性メモリ内で表現されることを検証することができる。任意で、他のメディアが、最近例えば、所定の時間内に、または、スロット書き込みカウンタ447/448の所定のインクリメント回数以内に挿入されていることを要求することもできる。別のオプションとして、メディアは、例えば、他のメディアからのキー値をロードすることによって、ユーザが再生中に別のメディアを挿入することを要求することもできる。ユーザが所定の組合せの他のメディアを再生している場合、ユーザにボーナスマテリアルへのアクセスが与えられる、プロモーションを作成することができる。言うまでもなく、再生決定は、プレイヤおよび/またはプレイヤ環境の特性などの他の情報にもリンクされる。オンライン機能を有するプレイヤは、現在挿入されているタイトル、ならびに、プレイヤのメディア挿入履歴および/または不揮発性メモリスロットで表現された他のタイトルの失効状況をチェックすることができる。このチェックをコンテンツコード内で実施することができ、または、プレイヤによって実行することができる。オンラインチェックを使用して、複数のプレイヤが同時に単一のメディアを再生している例えば、メディアが海賊行為を受けていることを示す、または、過剰な数のプレイヤが特定のメディアを使用している例えば、それが使用許諾契約に違反してレンタルされていることを示す場合を検出することもできる。海賊行為者は、コンテンツのコードを変更することによって、失効チェックを回避するように試みる場合がある。この場合、コードの後続の部分例えば、再生中に、後に実行されるコードは、例えば、チェックを繰り返すことによって、または、検証コードを含むメディアの部分をリロードおよび検証することによって、変更を検出することができる。失効チェック結果を復号化プロセスと統合することもできる。言うまでもなく、メディア失効手法の変形形態を使用することができる。例えば、プレイヤは、失効したメディアを識別するように構成された、デジタル署名付きのインタープリタコードを格納することができる。これらのコードスニペットcodesnippetを、メディアが挿入されるたびに実行して、新たに挿入されたタイトルが失効されるかどうかを判断することができる。タイトルは失効チェックコードを好ましくは、プレイヤによって検証されるようになる対応するデジタル署名と共に格納することができるようになり、プレイヤは、以降のメディアをチェックするためにこのコードを保持するようになる。例えば、プレイヤの不揮発性メモリ内に、失効した光ディスクのセクタ番号およびハッシュ値のテーブルを格納することにより、メディア失効チェックを、プレイヤのROM内のコードによって実行することもできる。メディアが書き込み可能である場合、コンテンツはまた、失効データをメディア自体に格納し、得ることもできるまたは、ユーザプリファレンス、ユーザ情報など、他の任意の種類および目的のデータをメディア上に格納することもできる。メディアはまた、記録デバイスについての失効データを保持するように使用される場合もある。例えば、コンシューマ記録デバイスが、識別データをそれらの記録上に配置するように構成される場合、プレイヤデバイスは、失効したレコーダの記録を保持することができる。これらの記録は、メディア上に保持された失効データによってアップデートされる場合がある。記録可能メディアをまた、失効したレコーダを識別する情報と共に製造して、失効したレコーダがメディアに書き込むことを防止することもできる。失効関連データフィールドを暗号的に認証して、例えば、正当なデバイスの悪意のある、または不注意の失効を防止することができる。例えば、記録デバイスによって配置された識別データには、メディアシリアルナンバについてのレコーダデジタル証明書およびデジタル署名が含まれる場合がある。記録可能メディア上に配置された識別データを例えば、サードパーティエージェントの公開キーにより暗号化して、ユーザのプライバシを保護することができる。閾値暗号技術を使用して、例えば、複数のメディアが記録デバイスを識別することを必要とすることもできる。本明細書で開示した技術の他の態様においては、閾値暗号技術を、例えば、ある量のコピーされたマテリアルがマークを復旧するために必要とされることを確実にするために、フォレンシックマークと共に使用することもできることに留意されたい。メディア失効に関する1つの他の有用性は、使用可能である他の手法に加えて、ちょっとした海賊行為に対する追加の抑止力を提供することである。フォレンシックウォータマークに埋め込まれたデータは、デバイスによって再生された以前のメディアを識別することができる。実装選択に応じて、そのIDが海賊コピーのフォレンシックウォータマークから決定された他のメディアを失効させること、そのシリアルナンバが海賊行為を受けたマテリアルを配布するために使用されたものに近い記録可能メディアを失効させること、問題のあるメディアからの再生に先立って追加の許可ステップを必要とすることなどが有用である場合がある。各種特徴および機能セキュリティオーバーライドキー:セキュリティオーバーライドキーを知るプレイヤは、一部またはすべてのセキュリティチェックを回避することができるように、コンテンツを設計することができ、コンテンツの一部分またはすべてへのアクセスを可能にすることができる。このようなキーをサポートすることによって、コンテンツ所有者は作品の限られた部分に対するアクセスを付与することができる例えば、権限者が、コンテンツ所有者が批評家にフレーム毎のビデオに対する公正使用アクセスを付与するよう要求した場合。これらのオーバーライドキーを使用して、例えば、保護機能が不十分に設計された再生可能性の問題を生じる場合に、コンテンツを保護された形態からリリースすることもできる。必要に応じて、これらのキーを、サードパーティに預託することができるまたは、サードパーティの公開キーにより暗号化されたメディア上に格納することができる。オーバーライドキーを、著作権が切れるときにリリースされるようにスケジュールして、例えば、コンテンツがパブリックドメインに入ることをアンチパイラシメカニズムが防止する可能性があるという、懸念に対処することもできる。マルチラウンドコリュージョン解析MultipleRoundCollusionAnalysis:状況によっては、決意の固い敵対者は、フォレンシックウォータマークの復旧を防止しようとして、多数のデバイスからの出力を結合する可能性がある。敵対者が非常に多数のデバイスを危殆化させており、害を及ぼすデバイスをコンテンツが直接識別することができない場合、複数のコンテンツリリースから収集されたフォレンシック情報を結合することが可能である。例えば、第1のタイトルから収集された情報は、敵対者によって使用されている可能性のあるデバイスの範囲を狭める場合があるが、害を及ぼすデバイスのすべてを一意に識別しない場合がある。第2のタイトルがマスタリングされるとき、この知識を使用して、攻撃者および/またはそれらの機器についてさらなる情報を提供するフォレンシックウォータマークを作成することができる。このプロセスは、敵対者が一意に識別されるまで、繰り返すことができる。悪意のあるインタープリタへの対策:悪意のあるプレイヤは、コンテンツ内のセキュリティ関連コードを認識しようと試みるように設計される可能性がある。例えば、悪意のあるプレイヤは、どこでRSA署名検証オペレーションがコンテンツによって実行されているかを特定し、結果を変更して、例えば、無効なRSA署名が有効であるように見えるようにしようと試みる可能性がある。このようなプレイヤが作成される場合、コンテンツ所有者は新しいコンテンツを作成して、この識別を回避するように設計した異なるRSA署名計算ルーチンを使用することができる。使用できるオペレーションの例には、信頼できないオペレーションを回避するようにコードを書き換えること、コードを難読化すること、メッセージ隠し、試算をチェックして攻撃を検出すること、および、中間物および/または結果を他の暗号オペレーション復号化ステップなどと統合することが含まれるが、これらに限定されるものではない。インタラクティブ性:仮想マシン/インタープリタは、非セキュリティタスク、ならびにセキュリティの目的のためである場合がある。例えば、コンテンツコードを使用して、メニュー、テキスト、グラフィックス、アニメーション、ユーザインターフェース要素などをユーザに表示することができる。同様に、コンテンツはユーザコマンドまたは応答を受信することができる。これらのコマンドまたは応答には、マウス入力例えば、移動、クリック、ボタン押下キーボードまたはリモートコントロール入力など、ライトペン入力、およびジョイスティックアクションが含まれるが、これらに限定されるものではない。ローカルプレイヤについての情報カメラ入力、マイクロフォン入力、ユーザの体の位置の変化などを収集および使用して、例えば、再生を制御することもできる。プレイヤは、ユーザインターフェース実装を支援するための機能を提供することもできる。これらの機能には、ダイアログボックスの表示、表示ウィンドウの管理、音声認識の実施、ユーザプリファレンスの管理などが含まれるが、これらに限定されるものではない。海賊行為に対する抑止力として、インタラクティブなユーザ機能を実装するコードをセキュリティコードと結合し、敵対者があるコードを他のコードから容易に分離することができないようにすることができる。ネットワークを介したコンテンツへのアクセスおよびコンテンツの交換大部分のコンシューマビデオおよびオーディオコンテンツは現在、光メディアで配布されているが、ストリーミングダウンロードの人気は時間とともに増すと予測される。物理的メディアの代わりに、または物理的メディアに加えて、ストリーミングまたはローカルでキャッシュされたコンテンツをサポートするように、本明細書で提示したセキュリティ手段を再設計することができる。プレイヤに物理的に位置するメディアからデータをロードする代わりに、コンテンツコードおよびデータはネットワークを介して検索される。例えば、メディアからデータセクタを要求するプロシージャコールを呼び出す代わりに、コンテンツは、ネットワークを介してデータを要求するプロシージャコールを呼び出すようになる。受動的なメディアとは異なり、リモートサーバはそれ自体が処理能力を有することができ、例えば、例えば、プレイヤに暗号化オペレーションを実行させるためにリモートサーバが要求をコンテンツに送信し、結果の妥当性を検査することが可能となる。ネットワークを介して交換されたデータを保護するためのセキュリティプロトコルこのようなプロトコルにはSSLが含まれるが、これに限定されないを、コンテンツコード内またはプレイヤまたは他のコンポーネント内に実装することができる。単純なサーバ実装は、妥当性検査されたユーザ例えば、コンテンツにアクセスするための代金を支払っているユーザからの要求を受信し、対応するデータをサーバ自体のローカルストレージから読み取り、結果を配信する。より高度なサーバはデータをリアルタイムで選択および/または修正して、例えば、フォレンシックウォータマークを埋め込み、他のサーバと対話することができる。サーバはまた、リモートプレイヤについての、またはそれに代わる例えば、プレイヤベースの不揮発性メモリの代替としての情報を格納し、エンドユーザに合わせてカスタマイズされたセキュリティコードを配信し、リアルタイム失効チェックを実行し、セキュリティアップグレードをコンテンツに自動的に挿入し、インターネット/ウェブプロキシ機能を提供し、他のサービスをコンテンツコードに供給することもできる。例えば、例示的トランザクションには以下のステップが含まれる。aコンテンツサーバが購入要求をエンドユーザのプレイヤから受信するステップ、bコンテンツサーバが支払いを検証するステップ、cコンテンツサーバが、ユーザのプレイヤの機能的な、および/またはセキュリティのプロパティを解析するように構成された解釈可能コードの部分を送信するステップ、dユーザのプレイヤがインタープリタコードを実行し、そのプロパティについての情報を返すステップ、eコンテンツサーバが応答を解析し、インタープリタコードおよび/またはネイティブコードを含み、カスタム生成される場合があるセキュリティ検証ロジックをユーザのプレイヤに送信するステップ、fユーザのプレイヤが検証ロジックを処理し、応答をサーバに返すステップ、gサーバが応答の妥当性を検査するステップ、hコンテンツサーバが、暗号化されたデジタルコンテンツ例えば、オーディオ、ビデオおよび/またはイメージをユーザのプレイヤに送信例えば、ストリーミングするステップ、および、iユーザのプレイヤがコンテンツを復号化するステップただし、復号化プロセスの正しいオペレーションは、正しいキー、または、セキュリティ検証ロジックからの結果を必要とする場合がある。サーバプロセス自体は、インタープリタコードによって制御することができ、任意で、プレイヤ側と同じインタープリタキテクチャ例えば、DLXを使用することができる。これは、サーバの物理的ハードウェアアーキテクチャを意識せずにコンテンツを作成することができるという利点を有する。ホームネットワーク環境では、これは特に魅力的なモデルである。なぜならば、セキュリティおよびデコードインテリジェンスはサーバに残るが、認証されたローカルデバイスへコンテンツをストリーミングすることができるからである。同様に、様々な異なるインターネットサービスを介してストリーミングされるコンテンツに関して、サーバ側のインタープリタは、コンテンツが一度作成されると、互換性のあるサービスのいずれからもストリーミングされることを可能にすることができる。場合によって、受信デバイスもまた、受信デバイス自体のセキュリティの決定を行う能力を有することがあるが、これは、受信側デバイスがコンテンツをキャッシュして、後にそのコンテンツを、識別が初期転送中に知られていない後続のデバイスへ送信することを望む場合などである。この場合、初期転送には、受信デバイスによってそのセキュリティ関連の決定を行う際に使用するための、解釈可能および/またはネイティブで実行可能なコードが含まれる場合がある。すべてのデバイスが同じインタープリタまたはプログラマブル技術をサポートする必要はない。なぜならば、送信側デバイスによって実行されるコードは必ずしも受信側デバイスによるコードと同じである必要はないからである。状況によっては、複数のサーバおよび/またはコンテンツ転送が含まれる場合がある。例えば、コンテンツは、例えばプレイヤのメーカおよびコンテンツ所有者の両方によって運営されるサーバを含む、複数のエンティティから取得したセキュリティコードを含む場合がある。一部のパーソナルコンピュータ環境では、複数のインタープリタを使用することも有用である場合がある。例えば、インタープリタは、メディアインターフェース例えば、光ディスクドライブ、オペレーティングシステム、アプリケーションソフトウェア例えば、プレイヤ、出力デバイス例えば、増幅器などに含まれる場合がある。代替として、または加えて、暗号化オラクルもまたコンポーネントにおいて提供される場合がある。プレイヤオペレーションの呼び出しおよび表記法プレイヤデバイスは、通常はソフトウェア実装のインタープリタ仮想マシンを提供し、これによりコンテンツコードは様々な個々のオペレーションを実行することができる。このようなオペレーションには、仮想レジスタを操作すること、および、コンテンツコードに属するメモリにアクセスすることが含まれる。加えて、コンテンツコードはTRAPプレイヤ内に実装された外部オペレーションを呼び出すこともできる。TRAPを使用して、コンテンツコードがそれ自体のリソースを操作することによっては直接実行することができないオペレーションペリフェラルへのアクセスなどを実行すること、または、そうでない場合はコンテンツコードによって保証されることが可能である、より高いパフォーマンスを提供することができる。このセクションで使用される表記法は、C/Cプログラマに良く知られているように設計される。型UINT8、UINT32およびUINT64は8ビット、32ビットおよび64ビット符号なし整数をそれぞれ示すために使用される。例示的実施形態では、各プロトタイプは一連の32ビット値に対応し、これは、適切なTRAPオペレーションを呼び出すことに先立ってスタック上にプッシュされるべきである。スタック上のすべての値は32ビットのサイズなので、32ビットより小さいパラメータは32ビットに拡張され、より大きい値は、複数の32ビット値を使用して格納される。各TRAPオペレーションにおいて関連する32ビット値の実際の数は、ゼロである場合があるパラメータリストがvoidである場合。パラメータの数もまた可変である場合があり、この場合、プロトタイプは...で終了する。配列はtypename[size]として示され、例えば、UINT32test[16]は、16個の32ビットワードの配列を表す。ポインタはtypenameとして示され、例えば、1つまたは複数の32ビット符号なし整数に対するtestPtrという名前のポインタは、UINT32testPtrとなる。スタック自体を単に、コンテンツコードによって、および、各TRAPを実装するプレイヤの部分によって、アクセス可能なメモリ内の領域にすることができる。例えば、コンテンツコードによってアクセス可能なエミュレートされたレジスタをスタックポインタとして指定することにより、例示的スタックを実装することができる。TRAPが呼び出されるとき、このレジスタの値はコンテンツコードによって読み取られて、渡されたパラメータ値を設定する。スタックポインタまたはスタックコンテンツが無効である場合、TRAPオペレーションを無視する、または、有効な値を代用するなどの適切なアクションが取られる。整数をスタックにプッシュする例示的プロセスは、最初に4をスタックポインタから減算し、次いでこの値を格納して、新しいスタックポインタによって指定されたメモリアドレスにプッシュすることを含む。値をスタックから取り出すことは、最初に、スタックポインタによって指定されたメモリアドレスから値を読み取り、次いで4をスタックポインタに加算することによって、実行される。TRAPオペレーションに続いて、TRAPを実装するコンテンツコードおよび/またはコードは、例えばスタックポインタ値を元に戻すことによって、パラメータをスタックから消去する。他のスタック、ならびに、より一般には、関数コールおよびパラメータ受け渡し技術が背景技術において知られており、本発明と共に使用することもできる。TRAPを呼び出すため、呼び出し元は最初にプロトタイプ定義における最も右側にあるパラメータから開始してパラメータの各々をプッシュし、適切なTRAPオペレーションを呼び出し、例えば、慣例により、レジスタ1内に格納された結果値を読み取ることにより戻り値を得る。例えば、UINT32TRAP_RandomUINT8dst,UINT32len;と示される以下のTRAPを考察する。トラップオペレーションを呼び出すことに先立って、呼び出し元コンテンツコードは最初に32ビット値lenをプッシュし、次いで32ビットポインタ値dstこれは、結果が格納されるべきであるメモリアドレスであるをプッシュする。呼び出し元は、次いで適切な低レベルTRAPオペレーションを呼び出す。通常必ずではないが、TRAPを呼び出したコンテンツコードスレッドは、要求したオペレーションが実行される間、停止する。TRAPの戻り値この実施例のプロトタイプでは、左側のUINT32をもって示されるは、コンテンツコードが取得できる位置に入れられる例えば、戻り値を所定のレジスタ内に入れることによる。例示的TRAPの大部分はステータス値例えば、成功を示す定数STATUS_OK、または、エラー状態を示すか、またはそうでない場合は、システムまたはオペレーションの結果または状態を説明する値を返す。簡潔にするために、戻り値の内容は、その値が単にステータス値である場合、以下のTRAPの説明において全般的に省略される。一部のTRAPはいずれのステータス値も返さないが、失敗する場合があり例えば、不正な入力パラメータが与えられた場合、その場合、コンテンツコードは、適切な入力が確実に提供されること、および/または、オペレーションが期待通りに完了したことを検証することを要求する場合がある。TRAPオペレーションを使用することにより交換された値は、例えば、暗号化および/またはデジタル署名を使用して、暗号的に保護することができる。例えば、TRAPに渡された値は、プレイヤまたは他のデバイスの公開キーによって暗号化することができる。値はまた、例えばブロックまたはストリーム暗号を使用して、対称暗号技術により暗号化することもできる。値にデジタル署名することもできる。応答もまた暗号的に保護することができる。例えばプレイヤ、プレイヤのメーカ、外部デバイス、フォーマットエンティティなどによって、例えば、応答にデジタル署名することができる。使用される暗号化保護および、対応するキーなどの特定の組合せを指定することができ、または、コンテンツコード要求、プレイヤ要求、外部デバイス、プレイヤの状態などに基づくようにすることができる。データを保護するために使用されるキーはプレイヤ内に含まれないまたは、プレイヤによってアクセス可能ではない場合があり、これは例えば、データの終点はコンテンツコードおよび外部デバイスであるが、プレイヤを通過するデータ通信の場合である。TRAPオペレーションは、しばしばシステム状態を変更する。例えば、コンテンツコードにとって可視のレジスタ値およびメモリコンテンツは変更される場合がある。例えば、上記のTRAP_Randomの実施例では、乱数生成器からの出力が、コンテンツコードによる使用のために格納される。コンテンツコードの直接制御の外部にある再生システムの部分も一般に、TRAPオペレーションによってアクセスまたは変更される。例えば、TRAP_SlotWriteは、プレイヤの不揮発性メモリスロットのコンテンツを変更することができ、TRAP_MediaReadRequestは、保留中のメディア読み取りのキューに要求を追加する。これらの変更は、コンテンツコードによって直接監視可能であっても、そうでなくてもよい。プレイヤのオペレーション以下で、例示的実施形態によってサポートされるTRAPオペレーションを説明する。この設計の制限、制約および他の態様は例示的実施形態を示すもので、必ずしも他の実施形態を示すものではないことに留意されたい。voidTRAPYieldaミリ秒単位で指定された時間、またはbイベントの発生例えば、メディア読み取り完了などのうちの早い方まで、インタープリタを制御する。TRAP_Yieldが呼び出されるとき、実装は、インタープリタを中断するよう要求しないが、特に、ポータブルデバイスのバッテリ電力を節約するため、または、マルチスレッドシステム上のプロセッササイクルを節約するために、インタープリタを中断することが望ましい場合がある。実装はまた、任意で、sleepTimeパラメータを無視する。より小さい値がsleepTimeに指定される場合、または、イベントがより早く発生する場合でも、このオペレーションは1ミリ秒を費やす場合がある。イベントが発生する場合、制御はイベント後1ミリ秒以内に再開する。イベントが発生しない場合、実行は最大でsleepTimeミリ秒にわたって中断される場合がある。TRAPは何も返さず、プレイヤの準備ができているとき、次の命令をもって実行が続けられる。UINT32TRAPRandomプレイヤによって生成されたlenランダムまたは強擬似ランダムバイトをdstに格納する。UINT32TRAPShasrcで、lenバイトに対してSHA-1アルゴリズムを実行し、結果をdstに格納する。op用の値には、さらなるデータを既存のSHA状態に追加するSHA_UPDATE0、データをハッシングする前に新しいSHAコンテキストを開始するSHA_INIT1、ハッシュの更新が完了するときにファイナライズオペレーションを実行するSHA_FINAL2、および、フルブロックオペレーションを実行するSHA_BLOCK3SHA_INITおよびSHA_FINALの両方を設定することに相当するが含まれる。dstには、少なくとも512バイトの使用可能な空間があるべきであり、ファイナライズオペレーション例えば、op=SHA_FINALが生じるまで、その空間のコンテンツは確定できない。プレイヤ実装は、dstにおける512バイトを状態の一時ストレージのために使用することができるが、dstのコンテンツはコンテンツコードによって悪意をもって選択されたと想定すべきである。成功の場合はSTATUS_OKを返し、失敗の場合は、定義済みエラーコードのうちの1つを返す。UINT32TRAPAesAESECBアルゴリズムをsrcからlenブロックに対して実行し、以下で変換されるようにkeyにおけるキーを使用して、復号化結果をdstに格納する。opOrKeyIDの値は、キーがどのように導出されるべきであるか、および、AES暗号化または復号化を実行するべきであるかどうかを指定する。opOrKeyIDについて、以下の値がサポートされる。opOrKeyIDAESECBENCRYPT0xFFF10000-ECBモードを使用して、keyにおける16バイトキーにより、データを暗号化する。opOrKeyIDAESECBDECRYPT0xFFF10001-ECBモードを使用して、keyにおける16バイトキーにより、データを復号化する。opOrKeyIDAESECBDECRYPTMEDIAKEY0xFFF10002-keyにおける暗号化されたキー値を、現在挿入されているメディアのためのメディアキーを使用して復号化し、次いで、結果をキーとして使用して、srcにおけるデータを、ECBモードを使用して復号化する。opOrKeyID他の任意の値。opOrKeyIDによって特定されるプレイヤキーを使用して、ポインタkeyにおける暗号化されたキーを復号化し、次いで、結果として生じる復号化されたキーを使用して、ポインタsrcにおけるデータを、ECBモードを使用して復号化する。コンテンツコードはプレイヤの証明書をチェックして、プレイヤのメインAESキーセット用のキー範囲を決定することができ、これらのキーは必ずしも0で開始するとは限らず、複数のキーのセットが存在する場合があることに留意されたい。opOrKeyIDによって選択されたキーはプレイヤアプリケーション内に配置される場合があるが、キーはドライブ内、デバイスドライバ内、表示/出力デバイス内、ネットワークを介してリモートに、ユーザリムーバブルなスマートカードまたは、他の耐タンパ性を有するチップ内に、リムーバブルでない耐タンパ性を有するチップ内に、複数のデバイスの間で分割されて、配置される場合もあるただし、これらに限定されない。最初の復号化オペレーションコンテンツにより指定された暗号化されたキーの復号化を、識別されたキーを含むデバイスによって実行することができる一方で、バルク処理すなわち、srcにおけるデータの復号化を他の場所例えば、キーストレージのための不揮発性メモリを欠く高速暗号モジュール内で実行することができる。暗号化オペレーション、特に外部デバイスに伴って生じる暗号化オペレーションは、TRAP_DeviceDiscoveryおよび/またはTRAP_DeviceAccessを介して実行することもできる。暗号ブロックチェーンCBC、カウンタモード、および他のブロック暗号モードを、コンテンツコードを任意で、TRAP_Xorなどのオペレーションと共に使用して、ECBオペレーションから実行することができる。代替実施形態は、AES以外のアルゴリズムおよび/またはECB以外のモードを直接提供することもできる。UINT32TRAPPrivateKeyこのオペレーションは、keyID通常は0によって選択されたRSA秘密キー、または、プレイヤ内または、プレイヤによってアクセス可能なデバイス内の所定の他の非対称キーを使用して、一部のデータを変換する。keyIDから、結果の長さおよびオペレーションタイプ例えば、署名または復号化は暗示される。使用可能なキーについての情報には、対応する公開キーおよび証明書コンテンツコードが検証できるものが含まれ、この情報は、TRAP_DeviceDiscoveryおよび/またはTRAP_DeviceAccessを使用して取得することができる。どのデータを提供すべきであるかの選択は、コンテンツコード次第である例えば、メディアおよび/またはTRAPからのいかなるデータのいかなる機能も提供することができる。例えば、署名されたデータを生成する際にイベントデータTRAP_EventGetを参照を組み込むことによって、署名オペレーションに対して提示された値をユーザインターフェースおよび他のイベントに結合することができる。プレイヤのメインRSA秘密キーkeyID=0では、このオペレーションは、SHA-1ハッシュの2048ビットのRSA署名を作成する。このハッシュは以下のように計算される。a4バイトMSBが最初としてエンコードされた、srcLen値をハッシュし、bユーザにより指定されたバッファのコンテンツすなわち、srcにおけるsrcLenバイトをハッシュし、c4バイトMSBが最初としてエンコードされた、controlWord値をハッシュし、dcontrolWordビット31MSBが設定される場合、メディアIDの値をハッシュし、econtrolWordビット30が設定される場合、宛先ポインタをPC4に設定し、dstをオーバーライドし、fcontrolWordビット29が設定される場合、現在のプログラムカウンタで開始する2^16を法とした制御ワードコードバイトをハッシュし、次いで、gcontrolWordビット28が設定される場合、PCの現在の値をハッシュに組み込む。SHA-1ハッシュ結果は次いで、0x00||0x01||0xFF233回繰り返し||00をSHA-1ハッシュの先頭に追加することによって、パディングされる。パディングされた値は次いで、プレイヤの公開モジュラスpublicmodulusを法として、プレイヤの秘密指数secretexponentまで引き上げられる。署名を検証するため、プレイヤの公開指数は3であり、コンテンツコードにより、システム全体の公開キーコンテンツコード内に含まれる定数とすることができ、任意で難読化した形態をとるを使用してプレイヤの証明書を検証することによって、公開モジュラスを得ることができる。制御ワードによって提供されたオプションは、コンテンツコードが実行環境についてのアテステーションattestationを得ることを可能にし、これは、インタープリタを含むもの以外の準拠デバイスによって署名が実行されている状況を検出することなどである。インタープリタと、コンテンツコードとの間の検証可能なバインディングは、攻撃者が正当なプレイヤ上で実行される悪意のあるコンテンツを使用して、正当なコンテンツを実行する悪意のあるプレイヤによる使用のために暗号化結果を作成しようと試みる状況に対処するために、有用である可能性がある。実施形態は、非対称暗号化アルゴリズムRSA、DSA、楕円曲線のバリアントvariant、Diffie-Hellmanなど、オペレーション署名、検証、キー合意など、および任意の組合せのキーサイズをサポートすることもできる。対称オペレーションを非対称オペレーションと統合することもできる。RSA署名検証などの一部の暗号化オペレーションを、いかなる特別なトラップもなしに、または、汎用パフォーマンス加速オペレーション例えば、TRAP_AddWithCarryなどのみを使用して、コンテンツコード内に実装できることに留意されたい。より複雑な暗号TRAPの一実施例は、以下のうち一部またはすべてを行うものである。aRSA公開キーオペレーションを実行して、データのブロック上の署名を検証すること、b署名が有効である場合、RSA秘密キーオペレーションを実行して、検証された部分におけるブロックデータを復号化して、対称キーを復旧すること、cRSA復号化が成功する場合、対称キーを使用して、一部のデータ例えば、暗号化されたキーに続く署名付きブロックにおけるデータを例えば、HMAC-SHAを使用して復号化および検証すること、次いでdインタープリタを使用して、復号化されたデータをコードとして処理すること。代替実施形態では、任意の方法の他の計算オペレーション他のTRAPなどの入力および出力の署名、検証、復号化、暗号化、またはそうでない場合は処理のために暗号化サポートを提供することができる。UINT32TRAPAddWithCarryこのオペレーションは、桁上げ伝搬carrypropagationによりマルチワード加算オペレーションを実行する。src[0..len-1]における値がdst[0..len-1]に加算される。srcおよびdstの値を各々、lenワードとして格納され、それぞれアドレスsrc[0]またはdst[0]における最上位ワードでエンコードされた大数を示すものとして検証することができる。最下位ワードは、それぞれ、src[len-1]およびdst[len-1]に配置される。例えば、数0x08090A0B0C0D0E0Fは、len=2を有し、ポインタ例えば、src[0]によって指定された位置0x08090A0B、および、ポインタに4を加えたもの例えば、src[1]によって参照されたバイトオフセットにおける値0x0C0D0E0Fと共に格納される。ソースおよび宛先領域が重なる場合、正しいオペレーションは、src=dstである場合にのみ保証される。最後の最上位または左側の加算ステップで桁上げが生じた場合、このオペレーションの戻り値は1であり、そうでない場合は、戻り値はゼロである。別のTRAPなしにコンテンツコードを使用してTRAP_AddWithCarryオペレーションを、様々な他のTRAPオペレーションと共に実装することもできるが、専用のTRAPは、プレイヤ設計者が各プラットフォーム上で使用可能な最も効率的な技術を選択することを可能にし、それにより、幅広い種類の可能なプレイヤ設計にわたってよりよいパフォーマンス保証を可能にすることに留意されたい。UINT32TRAPSubtractWithBorrowこのオペレーションは、桁借りborrow桁上げ伝搬によりマルチワード減算オペレーションを実行する。具体的には、src[0..len-1]における値はdst[0..len-1]から減算される。srcおよびdstの値を各々、lenワードとして格納され、それぞれアドレスsrcまたはdstにおける最上位ワードでエンコードされた、大数を示す。例えば、数0x08090A0B0C0D0E0Fは、len=2を有し、ポインタ例えば、src[0]によって指定された位置0x08090A0B、および、ポインタに4を加えたもの例えば、src[1]によって参照されたバイトオフセットにおける値0x0C0D0E0Fと共に格納される。ソースおよび宛先領域が重なる場合、正しいオペレーションは、src=dstである場合にのみ保証される。最後の最上位または左側の減算ステップで桁借りの必要がある場合、このオペレーションの戻り値は1であり、そうでない場合は、戻り値はゼロである。UINT32TRAPMultiplyWithRippleこのオペレーションは、multiplicandを、dst[0..len-1]内の数の上に乗算する。結果はlen1ワード長である。結果の最上位ワードが返され、残りはdst[0..len-1]に格納される。dst値は、lenワードとして格納され、dstによって示されたアドレスの最上位ワードをもってエンコードされた大数を示すべきである。結果の最上位32ビットが返されるこれは、被乗数およびdst[0..len-1]の積の最上位の32ビットに等しい。voidTRAPXorBlockこのオペレーションは、メモリの2つのブロックの排他的ORを計算する。src[0..len-1]に格納されたデータは、dst[0..len-1]におけるデータ上にXORされる。このオペレーションは、例えば、CBCモードブロック暗号オペレーションを作成するときに、有用である。srcおよびdstブロックが重なる場合のオペレーションは定義されない。戻り値は提供されない。voidTRAPMemmoveこのオペレーションは、srcからdstまでのlenバイトをコピーする。ソースおよび宛先ブロックが重なる場合でも、結果は正しい。戻り値は提供されない。UINT32TRAPMemcmpこのオペレーションは、ptr1におけるメモリとptr2におけるメモリとを、最大maxlenバイトについて比較する。差異が見つからない場合、戻り値は0であり、最初の差異においてptr1における値の方が大きい場合、戻り値は1であり、最初の差異においてptr1における値が小さい場合、戻り値は0xFFFFFFFFである。voidTRAPMemsetこのオペレーションは、fillvalueによって指定されたバイト値でメモリを満たす。宛先アドレスはdstによって指定され、格納すべきバイトの数はlenによって指定される。戻り値は提供されない。UINT8TRAPMemsearchこのオペレーションは、1つまたは複数のバイトについてメモリを検索する。具体的には、regionregionLenバイトの長さを有する内でsearchDatasearchDataLenバイトの長さを有するの最初の出現を発見する。それらがregion[0..regionLen-1]内全体に出現する場合、合致が見つかる。この範囲内で開始するが最後を越える合致は、カウントされない。このオペレーションは、最初の合致に対するポインタを返す。region内で合致が見つからない場合、戻り値はNULLゼロである。UINT32TRAPSlotAttachこのオペレーションは、既存の不揮発性メモリスロットにアタッチするか、または、slotの指定された値がゼロである場合新しいスロットを割り振る。スロットアタッチオペレーションは、指定されたコード呼び出し元PCで開始し、codeLenバイトまで広がるがスロットのauthorizationHashに合致しない場合、失敗するデフォルトのスロットゼロになる。不揮発性メモリサポートについてのさらなる情報については、不揮発性メモリの保護というタイトルのセクションを参照。UINT32TRAPSlotReadこのオペレーションは、不揮発性メモリスロットを読み取ることを試み、成功する場合、指定された位置に結果を格納する。指定されたスロットが、現在アタッチされているスロットではない場合、スロットコンテンツのプライベートデータ部分は返されない。さらなる情報については、不揮発性メモリの保護というタイトルのセクションを参照。UINT32TRAPSlotWriteこのオペレーションは、現在アタッチされている不揮発性メモリスロットに書き込むことを試みる。さらなる情報については、不揮発性メモリの保護というタイトルのセクションを参照。スロット書き込みオペレーションはアトミックatomicであり、これは、例えば、不意の停電のためオペレーションが失敗する場合、オペレーションは全体として完了されるか、またはまったく完了されないかのいずれかであることを、プレイヤが保証することを意味する。TRAP_SlotWriteオペレーションは、書き込まれたデータがスロットの複数の部分について正しい値を有することを確実にする。これらの部分には、creatorMediaIDコンテンツコードが最初にスロットを作成したメディアの識別子、lastUpdateMediaIDコンテンツコードが直前にスロットに書き込んだメディアの識別子、lastUpdateSequenceCounter書き込みにつき1回単調増加する、グローバル書き込みカウンタの値、および、slotPriorityスロットのための上書き優先順位を指定するが含まれる。コンテンツコードは、汎用領域に書き込まれたデータを制御する。格納することができる情報の例には、再生状態情報再生が休止/中断された位置および構成など、監査情報監査データのための実行ハッシュまたは他の暗号化認証を含む、ビデオゲーム用のハイスコア、電子購入を自動的に完了するためのデフォルト情報ユーザ名、ユーザ住所、クレジットカード番号、クレジットカード期限、請求先住所、出荷先住所、電話番号、電子メールアドレスなど、実行可能コード例えば、新しいセキュリティロジック、タイトルまたはプレイヤにおける問題を是正するパッチなど、キーおよび他のセキュリティ情報などが含まれるが、これらに限定されるものではない。戻り値は、書き込みオペレーションが成功したかどうか、および、メディアの全般的状況例えば、不揮発性メモリが過剰な数の書き込みサイクルにより使い尽くされる寸前である場合の警告を示す。読み取りオペレーションは、書き込みが成功したという追加の検証のために、書き込みの後に実行される場合がある。UINT32TRAPMediaEjectこのオペレーションは、現在ドライブ内にあるいずれかのリムーバブルメディアを排出することを試みる。TRAP_MediaEjectに対する呼び出しが成功した後、インタープリタは動作を続ける場合があるが、多くの場合、インタープリタは次いでTRAP_Shutdownを呼び出すことによって、それ自体をシャットダウンする。プレイヤが、自動排出をサポートすることは必要とされず、その場合、オペレーションは失敗する。コンテンツコードは、TRAP_DeviceDiscoveryを使用して、排出サポートおよび他のプレイヤ機能を検出することができる。状況によっては、メディアが交換される間、コンテンツコードのメモリ空間の諸部分を保存することが有用である場合がある。例えば、これは、マルチディスクセットにおいて複数のディスクの間で切り替えるとき、不揮発性メモリスロット内に容易に保存されるよりも多い量のデータを保存するために、有用である場合がある。この状況では、TRAP_MediaEjectを使用して、最初のメディアを排出する。ユーザは次いで、例えば、オーバーレイにより指示された後コンテンツの別の部分を挿入する。新たに挿入されたコンテンツの識別を、TRAP_DeviceDiscoveryを介して決定することができる。予期しないメディア交換を防止するため、新しいメディアを使用可能にするために、TRAP_DeviceAccessに対する明示的なコールが必要とされる。全体的な読み取りについて許可済みとしてマークが付けられた新しいメディアの部分を、次いでロードすることができる。いくつかの部分は、メディア自体のコンテンツコードによってのみ読み取られるべきであると指定される場合がある。より高度なメディア-メディア例えば、ディスク-ディスクチェーニングchaining機能を必要とする実施形態は、最初のメディア上のコードが2番目のメディアを認証することを可能にし、また、2番目のメディア上のコードがソースメディアを認証することも可能にすることができる。例えば、ソースおよび宛先ディスク上に保持されたデジタル署名付きルールおよび証明書に基づいて、プレイヤがメディア認証を実行することもできる。UINT32TRAPMediaReadRequestこのオペレーションは、一部のデータの検索を開始するようメディアサブシステムに伝える。例示的実施形態では、len値は、セクタ境界を含めて1メガバイト1048675バイトを超えることができない。オフセットがセクタ境界上にない、すなわち、SECTOR_SIZEの正確な倍数でない場合、この長さは1メガバイトからセクタオフセットを引いた値を超えることができず、これは、SECTOR_SIZEを法としたoffsetLowとして計算される。SECTOR_SIZEは現在2048バイトとして定義される。プレイヤは少なくとも2つの未完了の要求例えば、現在提供されているもの、および、次に提供されるようになるものがバッファされることを可能にする。これは、コンテンツがドライブを継続的にビジーに保つことを可能にする。プレイヤは通常、各保留中の要求について別々の1メガバイトの保留バッファを使用する。いずれのエラーもないリターンは、その読み取りが試みられるようになる、すなわち、要求は明らかに悪くはないことを意味するが、その読み取りが実際に成功するかは保証しないTRAP_MediaReadFinalを参照。このオペレーションは単に、読み取りが実行されることを要求する、および、実際にはいかなるデータもコンテンツコードのメモリ領域にロードしない一方で、代替実施形態は宛先アドレスを指定して、例えばイベントを受信することによって、または、宛先バッファが満たされているかどうかをチェックすることによって、読み取りが完了したかどうかを検出することができる。このような手法がコードベースのNVRAMセキュリティ機能と共に使用される場合TRAP_SlotAttachを参照、セキュリティ手段は、ロック解除されたNVRAMスロットに関連付けられたセキュリティコードを破損するか、またはそうでない場合はセキュリティを攻撃するために、敵対者が保留中の読み取りを利用しないことを確実にすることを要求される場合がある。例えば、プレイヤは、NVRAMスロットがロック解除されている間にメディア読み取りを一時停止または禁止すること、および/または、このようなオペレーションが保留中である間にNVRAMスロットアタッチ要求を拒否することができる。UINT32TRAPMediaReadFinalこのオペレーションは、最も古い先頭の要求された読み取りが完了しているかどうかをチェックする。完了していない場合、STATUS_NOT_DONEの戻り値が返される。読み取りが保留中でない場合、STATUS_NOT_FOUNDの戻り値が返される。読み取り要求が失敗した場合、STATUS_ERRORが返される。読み取り要求が成功した場合、要求されたデータはドライブのバッファからコンテンツコードのメモリ空間の指定されたアドレスへ転送され、STATUS_OKの値が返される。アドレスが0xFFFFFFFFである場合、データは廃棄される。特別な読み取りバーストカッティングエリアの読み取り、無効にされたエラー検出/修正を伴うデータ読み取りなどは、このオペレーションではなく、TRAP_DeviceAccessを使用して構成および実行されることに留意されたい。UINT32TRAPMediawriteこのオペレーションは、指定されたデータをメディアに書き込み、指定されたオフセットで開始するオフセットは、32ビット上位値および32ビット下位値としてエンコードされた64ビット値である。このオペレーションは、書き込みをサポートするメディアフォーマットに対してのみ適用可能である。書き込み可能領域はまた、メディアの所定の部分に制限される場合もある。書き込みはまた、所定の状況では禁止される場合もある例えば、メディアが交換されている場合、メディア上のレコーダ識別子が現在のデバイスに対応しない場合、メディアが、書き込み機能の使用を許可する有効な証明書を欠く場合など。TRAP_DeviceAccessを使用して、書き込みを保護または可能にするために必要とされるいずれかの必要な認証またはキー合意を提供することができる。追記型メディアでは、以前に書き込まれた部分を上書きしようとする試行、および、その位置でメディアを破損するリスクを、例えば、TRAP_DeviceAccessを介して明示的な許可が得られない限り、拒否することができる。通常は望ましくないが、このような書き込みは、ある状況では、例えば、攻撃に応答して、メディアに自己破壊させるために、有用である可能性がある。ドライブが、書き込みヘッドの調節、トラッキング制御、エラー訂正コード、読み取り/書き込みヘッドの光学特性、または他の構成パラメータの直接制御を可能にする場合、これらもまたTRAP_DeviceAccessを介して調整することができる。書き込まれたメディアの特性は、例えば、どの書き込みデバイスが特定の光メディアを作成したかをコンテンツ所有者が割り出すことができるように、科学捜査の目的のために修正することができる。UINT32TRAPEventGetこのオペレーションは、ユーザインターフェースオペレーション、セキュリティ変更などのいずれかのイベントが保留中であるかどうかをチェックし、保留中である場合、最初のものまたは最高優先順位のものについての情報を、eventによって指定されたアドレスに格納する。イベントが発見されない場合、STATUS_NOT_FOUNDの値が返され、eventの内容は変わらない。イベントが発見された場合、トラップはSTATUS_OKを返し、イベントを説明する情報をevBufに格納するが、lenバイトを超えて格納しない。イベントバッファevBuf内の返されるデータは、イベントによって決まる。ユーザインターフェースイベントが返される場合、以下のデータ構造は、evBufによって指定されたメモリアドレスに格納される。typedefstructUINT32SourceDevicetypethatproducedeventUINT32ActionActualsuggestedactionforeventUINT32CharUTF8valueofeventUINT32DirectionCompassvaluesforeventUINT32XposPointerXpositionforeventUINT32YposPointerYpositionforeventUINT32Reserved10DonotinterpretEventInfoUserInterfaceSourceフィールドは、イベントが発生したデバイスを示す。Sourceフィールドの解釈はあらかじめ定められていてもよいし、または、例えば、TRAP_DeviceDiscoveryから得られた情報を介してコンテンツコードによって決定されてもよい。指定することができる可能なソースの例には、リモートコントロール、キーボード、フェースプレートキーfaceplatekey、マウスおよび、他のポインティングデバイス、メディアドライブ、外部デバイス、タイマ、コーデック、未知/不特定のソースなどが含まれるが、これらに限定されるものではない。Actionフィールドは、イベントのための、または、イベントを引き起こした、推奨されるアクションを示す。この値はモーダル、すなわち、プレイヤの現在の状態に影響を及ぼすであっても、一定であってもよい。アクションは再生状態を変更するか、または他の効果を有する場合がある。可能なアクションの例には、再生、休止、停止、巻き戻し様々な速度で、早送り様々な速度で、スローモーション様々な速度で、電源オフ、排出、チャネルアップ、チャネルダウン、選択、エンター、音量調節または消音、ガイド/メニュー選択、表示アングルの変更、前方スキップ、シーン選択、ユーザ言語選択、サブタイトル制御、ビデオアングル変更、選択、戻る、進む、イエス、ノー、購入、終了、ヘルプ、エラー、出力デバイス変更通知、再生環境再構成通知、セキュリティアラートなどが含まれるが、これらに限定されるものではない。未知である場合イベントに対応するアクションがない場合など、このフィールドはゼロである。このフィールドは、ユーザインターフェースイベントに対して、ならびに他のイベントに対して有効である。この値の最上位の16ビットは後続のフィールドの構造、例えば、EventInfo_UserInterface、EventInfo_SecurityAlertなどを示す。Charフィールドは、キーに対応する文字例えば、ASCII、ダブルバイトなどを使用してエンコードされた文字を示す。未知の場合イベントに対応する文字がない場合など、このフィールドはゼロである。Directionフィールドは、イベントが指示する方向を示すか、ない場合はゼロである。この方向はいかなる角度にすることもできるが、方向は所定の値例えば、北/上、北東/右上、右/東などに量子化されるquantized場合がある。イベントを標準のX/Yグリッド上のポインタ移動またはアクションとして解釈することができる場合、XposおよびYposフィールドは位置を示す。イベントがXおよび/またはY座標に対応しない場合、対応するフィールドはゼロに設定される。単一のイベントリモート入力デバイス上でのボタン押下などが複数の用途で解釈される場合があることに留意されたい。例えば、一部の入力デバイスでは、上用に使用されるボタンは、数字8にも対応する。この場合、一イベントが生成されると、方向は上であり、Charフィールドは数字8である。コンテンツコードは、どちらが適切であるかを判断するためにどの入力が望まれるかについて現在知っていることを利用する。代替実施形態では、プレイヤは別々の機能または情報を提供して、ユーザイベントを解釈することによりコンテンツコードを支援し、または、コンテンツコードが、複数の可能な解釈によりどのようにイベントを解釈すべきであるかを指定することを可能にすることができる。コンテンツが未知のイベントタイプを受信する場合、ソースフィールド内で指定された臨界ビットcriticalitybitが別の方法を示さない限り、コンテンツは安全にこのイベントタイプを無視する場合がある。非ユーザインターフェースイベントデバイス追加、デバイス除去、デバイス再構成、他の再生環境構成の変化、外部コンポーネントからのデータ要求、オペレーションが完了したという通知などを知らせるイベントでは、または、他の種類のユーザインターフェース音声認識機能、または、ユーザのジェスチャを観察するように構成されたデジタルカメラなどからのイベントでは、他のデータフィールドを提供することができる。一部のイベントでは、コンテンツコードが追加のTRAPベンダ固有のTRAPなどを呼び出して、追加の情報を得ることが必要である場合もある。TRAP_EventGetオペレーションはポーリングを使用して変更を検出する一方で、代替実施形態は、割り込み、または、イベントを処理するための他の周知のメカニズムを使用することができることに留意されたい。UINT32TRAPCodecOutputこのオペレーションは、データをコーデックに送信する。単純なプレイヤは、1つのコーデック例えば、CODEC_AUDIO_AND_VIDEOのみ、または2つのコーデック例えば、CODEC_VIDEO_MPEG2およびCODEC_AUDIO_MPEGをサポートする可能性がある一方で、より複雑なプレイヤは多数をサポートして、例えば、複数の種類のコンテンツストリームをサポートし、ピクチャインピクチャなどの機能を可能にする可能性がある。TRAP_DeviceAccessオペレーションを使用して、コーデックパラメータを設定することができる。UINT32TRAPCodecSetTimeこのオペレーションは、メインコーデックタイムクロックを設定する。ゼロの値を指定すると、クロックは、TRAP_CodecOutputに提供されたデータに埋め込まれたビデオタイムスタンプと再同期される。このコマンドはビデオバッファにバッファされ、そのため、このコマンドに出会うまで、効果は遅延される。TRAP_CodecFlushを使用することにより、このオペレーションを使用して、リアルタイムビデオスプライシングを可能にし、かつ、コンテンツコードがある圧縮されたビデオ/オーディオストリームから別のものへシームレスに切り替えることを可能にする。UINT32TRAPCodecSetRateこのオペレーションは、コーデックがデータを消費する速度および方向を設定する。rate値は符号付き整数に変換され、64の係数をもって縮小される。例えば、0の速度は休止したことを意味し、128は、標準の再生速度の2倍の早送りであり、-2560xFFFFFF00は4倍の巻き戻しであり、16は、0.25倍のスロー再生である。要求された値がサポートされない場合、コーデックは、プレイヤの最大速度に関して、符号を無視してより高く丸めることによって、次に最も近い値を選ぶ。例外は部分再生速度であり、ここではコーデックは決して0休止したまたは64標準に丸めるべきではない。負の再生速度逆が指定される場合、コーデックはTRAP_CodecStatusを通じて通常、ビデオGOPを逆の順序で要求する。デフォルトでは、オーディオは64以外の再生速度においては消音される。UINT32TRAPCodecFlushこのオペレーションは、ビデオおよびオーディオコーデックバッファをフラッシュする。このコマンドは通常、コンテンツコードが、あるストリームから別のストリームに高速で切り替えるためにコーデックバッファ内のデータを削除することを望む場合、使用される。例えば、ユーザが1分だけ前方にジャンプすることを要求する場合、コンテンツコードはこのオペレーションを使用して、コーデックバッファ内のいかなるデータも消去し、新たに提供されたデータが即時にデコードされるようにすることができる。UINT32TRAPCodecStatusこのオペレーションは、コーデックのFIFOキュー、および、コーデックが予想するビデオまたはオーディオの次のチャンクについての情報を検索する。返されるデータ値には、現在のタイムスタンプ現在表示/出力されているオーディオビジュアル情報に対応するタイムスタンプ、現在圧縮されていない情報のタイムスタンプ、および、現在コーデックのバッファ内にある情報のタイムスタンプが含まれる、コーデックバッファが空になるまでの総時間、コーデックのバッファ内で使用可能なバイト数、次にコーデックバッファに追加されるべきデータ例えば、これは、MPEG-2ビデオを高速で後方に再生中であるとき、前のIフレームである可能性があるの位置例えば、次、前、シーク距離およびタイプ例えば、フルGOPまたはIフレームが含まれる。適切な場合、別々の情報が各コーデックオーディオ、ビデオなどに対して提供される。UINT32TRAPOverlaySetupこのオペレーションは、インデックス値idxをもってオーバーレイ面を割り振り、このオーバーレイ面は指定された面積を有し、空白であるすべて透明。UINT32TRAPOverlaySetPositionこのオペレーションは、ディスプレイ上に指定されたオーバーレイ面のx,y位置を設定するただし、0,0は左側の角。このオペレーションは実際にはオーバーレイを表示せず、TRAP_OverlayShowが呼び出されるときに、オーバーレイがどこに表示されるかを指定するだけである。UINT32TRAPOverlayShowこのオペレーションは、オーバーレイを表示する。pts値は、例えば、オーバーレイを、基礎となるビデオと同期させる際に使用するために、いつオーバーレイが表示されるべきであるかを指定する。TRAP_OverlayShowに対する複数のコールを適切なイメージを実際に生成する、パレットを設定するなどのための、他のオーバレイオペレーションに対するコールと共に使用して、アニメのメニュー、単純なピクチャインピクチャビデオ、および、任意の方法の他のアニメのオーバーレイを作成することができる。UINT32TRAPOverlayHideこのオペレーションは、オーバーレイを隠すが、消去しない。オーバーレイを隠しても、オーバーレイを後に再度表示させるためにオーバーレイは使用可能なままである。オーバーレイは、指定された時間pts隠される。UINT32TRAPOverlayClearこのオペレーションは、オーバーレイを消去する。オーバーレイを消去すると、そのコンテンツは消去し、オーバーレイを再度表示する前に再度セットアップするTRAP_OverlaySetupを参照必要がある。UINT32TRAPOverlaySetPaletteこのオペレーションは、オーバーレイのためのパレットを指定する。パレットには、256パレット値の各々に対する色例えば、RGBまたはYUVおよび透過度不透明度が含まれる。パレットを変更して、オーバーレイをアニメ化または修正することができる例えば、選択された領域の周囲の境界を強調表示するため、半透明のオーバーレイ枠の不透明性を変更するため、イメージを可視にするためなど。UINT32TRAPOverlayBitmapDrawこのオペレーションは、指定されたオーバーレイ上にビットマップを描画する。オーバーレイ領域の境界を越えるオーバーレイを描画することでエラーが生じるようになり、または、美的に予測できない結果を生じる場合がある。しかし、プレイヤはバッファをオーバーフローさせるべきではなく、または、このような状況において他のセキュリティ違反を引き起こすべきではない。パラメータbmpは、描画すべきイメージを指定する圧縮されていても圧縮されていなくてもよい。代替実施形態は描画オペレーションを提供する場合があり、または、拡大縮小および他のイメージ操作を実行する機能が提供されることが可能であり、それによりこれらのしばしば計算主体のプロセスをコンテンツコードから取り除く。UINT32TRAPOverlayTextDrawこのオペレーションは、指定されたオーバーレイ上にテキストを描画する。パレット内の最初の11個のエントリは、テキストの色付けのために使用される半透明エッジによるアンチエイリアシングantialiasingを含む。コンテンツコードはまた、例えば、プレイヤが必要とされたフォント、文字セットなどを欠く場合に、イメージ描画機能を使用して、テキストを表示することもできる。テキスト行がオーバーレイ上に適合しない場合、テキスト行は切り取られる。改行のサポートは提供されず、これは呼び出し元が担う。sizeパラメータは、描画すべきテキストのサイズを指定し、プレイヤのデフォルトにすることができる例えば、ユーザプリファレンス、現在の表示の文字などを反映する。UINT32TRAPOverlayRectDrawこのオペレーションは、指定されたオーバーレイ上に長方形を描画する。入力パラメータは、オーバーレイインデックスidx、左上側の座標x1,y1、右下側の座標x2,y2、color、および、長方形が塗りつぶされるべきであるかどうかを示すブール値filledを指定する。UINT32TRAPSockConnectこのオペレーションは、portによって指定されたポート上のnameによって指定されたアドレスに対して、ソケットベースのネットワーク接続を開く。TRAP_DeviceAccessを使用してソケット設定を構成し、ネットワーク接続が現在使用可能であるか、例えば、モデムを介してダイヤルしようと試みることによりネットワーク接続が潜在的に使用可能であるか、または、確実に使用可能でないかを判断することができる。ネットワーク接続の存在および信頼性は、実施態様によって決まる例えば、携帯電話と統合されるポータブルデバイスは、ネットワーク接続を有する可能性が高いが、まったく無線接続性サポートを有していないものは、そうでない場合がある。ソケット/ネットワークオペレーションのためのプレイヤサポートは任意であるが、このサポートは一貫性のあるインターフェースを提供するように標準化されて、そのインターフェースを介してコンテンツは、リモートネットワークリソースが使用可能であるときリモートネットワークリソースにアクセスすることができる。ソケットサポートは非同期であり、同期アクセスを必要とするコンテンツは、必要とされたデータが検索されるまでポーリングすべきである。ネットワークパラメータの検出および構成は、TRAP_DeviceDiscoveryおよびTRAP_DeviceAccessを介して実行される。UINT32TRAPSockCloseこのオペレーションは、現在開いている接続を閉じる。UINT32TRAPSockRecvこのオペレーションは、開いている接続からのbuf内のデータを受信する。コンテンツコードは、受信したデータがどのように使用されるかを制御する。例には、フレッシュセキュリティコードを得ること、失効状況をチェックすること、支払いを処理すること、商品/サービスを見て回ることおよび購入すること、ボーナスコンテンツをダウンロードすること、アップデートされたオファー/広告価格および購入情報を含むをダウンロードすること、マルチユーザインタラクティブシステムムービーウォッチャチャットなどを実施すること、ウェブブラウジング任意で、プレイヤ実装ウェブページレンダリングおよび/またはブランジング機能の支援付きなどが含まれるが、これらに限定されるものではない。UINT32TRAPSockSendこのオペレーションは、bufによって示されたデータを、開いている接続に送信する。UINT32TRAPDeviceDiscoveryプレイヤ環境ディスカバリプロシージャTRAP_DeviceDiscoveryおよびTRAP_DeviceAccessは、再生環境についての情報をコンテンツコードに提供し、環境を制御する能力を提供する。例えば、コンテンツは、プレイヤ設定を決定することデフォルトプレイヤ言語、音量、輝度、コントラスト、出力解像度など、どの選択可能なプロシージャコールがサポートされるかを発見すること、再生環境構成を決定することアタッチされたデバイス、アクティブなソフトウェアドライバ/プログラム、再生環境コンポーネントの状況など、出力デバイスを認証すること、コンポーネントを探し出すことローカルに存在するか、直接接続されるか、ネットワークを介して接続されるか、など、および、オプショナルデバイスまたはリムーバブルデバイスにアクセスすることただし、これらに限定されないなどの、オペレーションを実行することを望む場合がある。TRAP_DeviceDiscoveryは、devによって指定されたデバイスについての、qIDによって指定された質問に対する答えを提供する。再生環境についての情報を知るために、コンテンツコードは各デバイスに標準質問のリストを求めることができる。サポートされた質問の例には、どのqID質問IDがデバイスによってサポートされるか、デバイスの親および子デバイスがある場合、そのデバイスIDは何であるか、システムにおけるデバイスの役割は何であるかストレージ、ユーザインターフェース、ビデオディスプレイ、スピーカ、ポータブル、ネットワーキングコンポーネントなど、デバイスの識別は何であるかシリアルナンバ、メーカ情報、モデル、バージョン、日付、有効期限など、デバイスの証明書および、他の暗号化データおよび機能は何であるか、どの暗号化キーをデバイスは含むかまたはどの暗号化キーへのアクセスを有するか、デバイスのどの役割記録、再送信、表示などが現在使用中であり、どの役割がアクティブでないか、どのプロトコルをデバイスはサポートし、どのプロトコルおよびプロトコルパラメータが現在使用可能であるか、デバイスは実行可能コードの受信をサポートするか、およびそうである場合、実行環境特性は何であるかインタープリタまたはネイティブ、サポートされた仕様バージョン、マルチスレットまたはシングルスレット、セキュリティ認証、デバイスの現在のタイマ値は何であるか時間帯などを含む、どの構成可能パラメータをデバイスはサポートするか、およびそれらの現在の値は何であるか、デバイスのステータスは何であるか、が含まれるが、これらに限定されるものではない。標準質問リストは時間とともに拡張する場合があり、ある質問qIDが標準質問リストの一部になる前に製造されるデバイスは、そのqIDによる問い合わせに対し、エラーコードSTATUS_QUESTION_UNKNOWNをもって応答するようになる。また、標準質問リスト上の質問は常にqIDの最上位ビットビット31を消去させることにも留意されたい。この最上位ビットセットを有する質問IDは、拡張されたデバイス固有の質問のために予約される。特定のデバイスについての拡張された情報を発見するように設計されるコンテンツコードは、そのデバイスの拡張されたqIDリストおよび応答方法を知っていなければならない。呼び出し元ルーチンは、lenによってインデックスの付けられた位置として、bufによって示されたバッファの最大長バイト単位を渡すべきである。len内の返された値は、実際にbufに書き込まれたバイト数を示す。デバイスがシステムに接続されるとき、プレイヤはデバイスIDをそのデバイスに割り当てる。デバイスをシステムから切断しても、そのデバイスIDは失われない、または、そのデバイスIDは別のデバイスに再び割り当てられない。デバイスIDゼロはメインプレイヤ自体のために予約されるしかし、プレイヤは追加のIDも有する場合がある。新しいメディアが挿入されるか、または、TRAP_DeviceDiscoveryがゼロのデバイスIDdevをもって呼び出されるまで、デバイスIDは持続する。TRAP_DeviceDiscoveryが、ゼロに設定されたdevおよびゼロに設定されたqIDをもって呼び出されるとき、現在割り当てられているデバイスIDのすべてが廃棄され、適宜、すべてのデバイスの再スキャンが実行され、デバイスIDが新たに割り当てられる。デバイスまたはデバイス構成における変更は通常、TRAP_EventGetによって得られるイベントを生成する。TRAP_DeviceDiscoveryによって提供された情報は、再生するかどうかを判定する際に、どのようにまたは何を再生すべきであるかを判定する際に、復号化キーまたは他の暗号化パラメータを導出する際に、後にコードとして実行されるようになるデータを変換する際に、互換性の問題を識別または対処する際に、リスクを査定する際に、プレイヤ機能を決定する際に、ユーザプリファレンスを識別する際に、ならびに、他のセキュリティおよび非セキュリティ役割を実行する際に、コンテンツコードによって使用される場合がある。TRAP_DeviceDiscoveryはシステムの状態を変更すべきではなく、デバイスの状態を変更するオペレーションはTRAP_DeviceAccessを使用すべきである。UINT32TRAPDeviceAccessこのオペレーションは、opIDによって指定されたデバイスオペレーションが、devによって指定されたデバイスによって実行されることを要求する。オペレーションは通常、デバイスに固有である。このTRAPおよび/またはソケットTRAPは通常、デバイス間またはデバイス内でのメッセージの受け渡しのため、ならびに、構成パラメータを設定し、再生環境を全体的に管理するために使用される。渡されるパラメータの内容は、opIDによって決まる。バッファbufは、opIDに応じて、情報をコンテンツから渡される、もしくはコンテンツへ渡す、またはその両方のために使用することができる。TRAP_DeviceAccessを使用して、非常に幅広い範囲の機能を実施することができる。TRAP_DeviceAccessを使用して、例えば、セキュリティパラメータデータがどのように物理的メディアからロードされるかに影響を及ぼす、キーおよび他のパラメータなどを指定することができる。このオペレーションはまた、リモートデバイスおよび他のコンポーネントハードウェアおよびソフトウェアコンポーネントの両方を含むと対話するためにも使用される。この対話には、データの送信、データの受信、キー合意の実行、失効状況の決定、認証の実行、構成状態の変更、電源管理機能の制御、プロセスの終了/制御などが含まれるが、これらに限定されるものではない。例えば、TRAP_DeviceAccessを使用して、映画のコピーをリモートデバイスに転送することができる。送信元デバイス上で実行されるコンテンツコードは最初に、転送のための送信先デバイスおよび適切なオペレーションIDを識別することができる。コンテンツコードはまた、任意のデバイス認証、キー交換、または他の必要とされたセキュリティオペレーションも実行する。セキュリティ解析は、転送に先立って一般に実行されるが、キー配布および他のセキュリティ関連プロセスが、追加で、または代替として、メインデータ転送中またはその後に実行される場合がある。次に、コンテンツコードは映画の諸部分を受信側によってサポートされる場合は、任意で、解釈可能コードと共にリモートデバイスに提供する。送信されたデータのフォーマットはコンテンツコードおよび送信先デバイスによってネゴシエートされ、最終的にコンテンツコードによって制御される。例えば、送信を行っているコンテンツコードは、送信先デバイスによってサポートされた複数のフォーマットから選択し、コンテンツをスケール変更またはそうでない場合は変換し、フォレンシックマークをコンテンツ内に埋め込み、コンテンツを送信先デバイスに提供することに先立って復号化/再暗号化することができる。コンテンツと共に送信されるコードはまた、送信元デバイスによって現に解釈されているコードとは異なる場合もある例えば、インタープリタが異なるタイプである場合、異なる役割を実行する場合など。コード、キー、データおよび他の部分もまた削除または修正される場合があり、これは例えば、後続のコピーを作成する能力などの、受信側デバイスによってサポート、または、受信側デバイスによって実行されるように許可されない機能を除外するためである。コードまたはデータを暗号化された形式で提供することもでき、これらは、送信元コンテンツコードによって復号化される必要はない。場合によっては、送信元デバイスは、復号化キーへのアクセスさえ有することができない。通常、メディアの諸部分におけるコンテンツは、いずれかの必要なセキュリティ処理または他の変換がなされて、送信元によってロードされ、次いで出力される。受信側デバイスは、インタープリタコードを実行中である場合もある。例えば、デバイス間転送は、最初に所定の初期コードを受信側に送信することを含む場合があり、この初期コードは、受信側においていずれかの必要とされたセキュリティチェックを実行し、次いで受信後続データを管理する。受信側では、例えば、TRAP_DeviceAccessを使用してデータを受信し、例えばファイルシステム内に格納することができ、または、TRAP_CodecOutputを使用してデータを表示することができる。非プログラマブルデバイスnonprogrammabledeviceに送信中であるときでも、送信元コードはセキュリティおよび失効チェックを実行し、インターフェースプロトコルのセキュリティ部分を管理することなどができる。状況によっては例えば、デバイスおよび転送プロトコルがコンテンツコードよりも新しい場合、コンテンツコードは、必要および/または実行可能な範囲でプロセスを監視しながら、デバイスが例えば、セキュリティプロセスの詳細にアクセスすること、および、セキュリティ問題が識別される場合に転送を防止することにより転送プロセスのセキュリティを管理することを可能にすることができる。転送には、NVRAMスロット書き込み、メディア書き込み、外部サーバとのハンドシェーク、または他のプロセスが伴って生じ、例えば、コピーワンスポリシなどの制限を実施することができる。UINT32TRAPRunNativeこのオペレーションは、コンテンツコードがネイティブコードをプレイヤ上で実行することを可能にするように意図される。プレイヤは、ネイティブコードがプレイヤのメーカまたは別の信頼できるパーティによってデジタル署名されることを要求する場合がある。これは、悪意のあるコンテンツが悪意のあるネイティブコードを実行することを防止するために行われる。ネイティブコードのオペレーションは通常、プレイヤ実装または、最終的にネイティブコードを実行することになる他のデバイスに固有である。結果として、コンテンツコードは通常、プレイヤの特性例えば、TRAP_DeviceDiscoveryから決定されるについての情報を使用して、どのネイティブコードがプレイヤによって必要とされるかまたは反対に、プレイヤがあるネイティブコードとの互換性を有するかを判断する。TRAP_RunNativeの使用の実施例には以下のものが含まれるが、これらに限定されるものではない。例えば、アップデートされたコードを家電デバイスに含まれる不揮発性メモリに書き込むこと、PC上にインストールされたソフトウェアプログラムを修正することなどにより、ソフトウェアアップデートをプレイヤまたはシステムの他の部分にインストールすること。プレイヤ内に格納されたキーまたは暗号化パラメータをアップデートすること。悪意のあるまたは、潜在的に悪意のあるソフトウェアビデオドライバとして装うmasqueradeビデオキャプチャソフトウェア、光ディスクドライブまたは他のメディア入力デバイスとして装うメディアエミュレーションソフトウェア、実行中のプログラムを改ざんするために使用されるデバッガ、TRAP_DeviceDiscoveryによって正しく報告されないいずれかのアクティブなソフトウェア、有効な失効されていないデジタル署名を欠くいずれかのソフトウェアなどのために再生環境メモリ、ストレージなどをスキャンすること。悪意のあるまたは、潜在的に悪意のある変更がデバイス上でなされているかどうかを検出すること無許可のファームウェア変更、FPGAの再構成、ハードウェアコンポーネントの取り替えなど。証明書、公開キー、対称キー、および他の暗号化属性以下参照が与えられると、デバイスが予想されるタイプであることを検証すること。バグプレイヤのオーバーレイ/メニュー機能における欠陥、メモリリーク、メモリ破損の問題、間違ったインタープリタオペレーション、パフォーマンスの問題、セキュリティポリシ解釈の欠陥などに対する次善策を提供すること。例えば、別の方法でアクセス不能なシステムについての情報を得るため、または、既存のTRAPによってはサポートされない方法でシステム状態を修正するために、ペリフェラルへの直接アクセスを可能にすること。TRAP_RunNativeは、敵対者が、暗号化キーを正当なプレイヤのタイプから抽出し、これらのキーを悪意のあるソフトウェアプログラムにより使用するための方法を発見する状況において、セキュリティを再確立する助けとなることができる。このシナリオでは、すべての脆弱なプレイヤのキーを失効させることは、通常は実現できない。なぜならば、それらの機器が失効されてがっかりするような正当ユーザが多数のこのようなプレイヤを所有するようになるからである。例示的メディアはキー抽出攻撃への対策を保持し、以下のように動作するコンテンツコードを含む。最初に、メディア上のコンテンツコードは、プレイヤの証明書を検証することによって、プレイヤの疑わしいシリアルナンバを判定する。プレイヤシリアルナンバは、プレイヤのタイプ、および、プレイヤが保持する特定の暗号化キー例えば、TRAP_Aes内の両方を暗示する。一部の例示的キー管理方法を、例示的対称キー管理のセクションで説明する。次に、コンテンツコードは、プレイヤが知るべきキーを知っていることを検証する。例えば、src、dst、key、およびopOrKeyIDをもってTRAP_Aesを呼び出すことにより、これを実施することができる。srcおよびdstは、再生のために必要な暗号化されたコードまたはデータを含むバッファを示し、lenはバッファの長さを含み、keyは、関連するプレイヤキーにより暗号化されているバッファの復号化キーの値を示し、opOrKeyIDはプレイヤキーを参照する。複数のTRAP_Aesコールを実行することができ、これには、後続のオペレーションへの入力を定式化するために、以前のオペレーションからの出力が使用される場合が含まれる。他のステップも含まれる場合があり、一定の入力をもってTRAP_Aesオペレーションを実行して、次いで、修正fixup値をXORまたは加算することによって結果を訂正することなどである。脆弱なプレイヤのキーでは、キー検証ステップは失敗するまたは、少なくとも完全に完了しないべきである。なぜならば、これらのプレイヤは、再生が脆弱なプレイヤ上で実行されている状況と、脆弱なプレイヤから抽出されたキーを使用して悪意のあるプレイヤ上で再生が実行されている状況とを区別するために、追加の認証を必要とするからである。これは、エミュレートされたプレイヤと正当なプレイヤとを区別し、次いで、例えば、結果の値を返すこと、インタープリタのメモリ領域の部分を結果に基づいて復号化またはそれ以外の方法で処理することなどにより結果に従ってインタープリタ状態を修正するように構成されたネイティブコードを実行させるTRAP_RunNativeを実行することによって、実行することができる。代替として、または加えて、ネイティブコードは、例えば、外部デバイスと通信すること、出力されるものを修正すること例えば、フォレンシックマークを導入するためなどによって、インタープリタの外部で効果を有することができる。次いで、コンテンツコードは、正しい再生のために、例えば、ビデオまたは必要とされるコード/データのための復号化キーを導出する際の結果を組み込むことにより、またはそうでない場合はその結果を要求することにより、ネイティブコードによって実行されたオペレーションを要求することができる。エミュレータが完璧でない限り現代のコンピューティングデバイスの複雑さを考えると、極度に困難な提案、ネイティブコードがうまく区別することは可能となる。ネイティブコードが正当なプレイヤをエミュレートされたプレイヤから区別するために使用することができる特性の例には、特定のタイプのネイティブコードを実行する能力、ハードウェアレジスタ内に格納された値、ハードウェアレジスタを修正することに起因する効果、メモリコンテンツおよびチェックサム/ハッシュ、非標準オペレーションを実行するときの挙動、ベンダ固有のセキュリティ機能の正しい実装例えば、ビデオデコーダチップにおける文書化されていないセキュリティ機能、コーデックの丸め誤差、エラー状態の処理、選択可能なユーザインターフェースコンポーネントLCDディスプレイまたはキーボード入力など、正当なデバイス上にない機能の存在、および、オペレーションのパフォーマンスおよびタイミングが含まれるが、これらに限定されるものではない。例示的実施形態では、1つまたは複数のプレイヤセキュリティテストを実行し、テスト結果に基づいてキーを導出し、導出されたキーを使用してインタープリタのメモリ領域の一部を復号化するネイティブコードを、コンテンツは指定する。コンテンツコードは次いで、ネイティブコードのチェックのすべてまたは、十分に多数によりプレイヤが正当であると示される場合、正しく再生するように構成される。プレイヤが正当ではない場合、コンテンツコードおよび/またはネイティブコードは、再生を停止し、エラーを報告し、追加の認証を要求し、プレイヤアップグレードを要求し、映画の終了をデコードすることを拒否し、ボーナス機能を無効にし、低下した解像度で再生し、または、再生環境に関連付けられたより高いリスクを反映する他の方法で応答することができる。UINT32TRAPVendorSpecificこのオペレーションは、プレイヤメーカが自身のセキュリティおよび非セキュリティオペレーションのためのサポートを追加することを可能にするように意図される。例えばただし、以下に限定はされない、一部の実施形態は、ファイルアクセス開く、読み取る、書き込む、シークする、閉じる、属性を設定するなど、ベンダ固有のセキュリティオペレーション主要な暗号化機能が危殆化される場合のバックアップとしての機能を果たすことができる非標準暗号化サポート、補助暗号変換、ハードウェアビデオデコード回路におけるセキュリティ機能などへのアクセス、TRAP_DeviceAccessを通じて使用可能ではない特殊機能3次元表示、香りの出力、ジョイスティックの振動などへのアクセス、生フレームバッファコンテンツへのアクセスなどを提供することができる。統合されたセキュリティサービス例示的実施形態では、ライセンス団体または他のエンティティがコンテンツ作成者のための統合されたセキュリティサービス一式を提供することができる。コンテンツ所有者自身がセキュリティサービスを提供することができるが、これらの機能をサードパーティにアウトソーシングすることは、コンテンツ所有者がプロセスに関与する必要性を低減することができると同時に、例えば、あるセキュリティプロバイダが複数のコンテンツ所有者にサービスを提供することを可能にすることによって、規模の経済economyofscaleを可能にする。セキュリティサービスが単一のエンティティによって提供されるか、複数のエンティティによって提供されるかにかかわらず、関連のタスクには以下のことを含めることができる。オーディオビジュアルコンテンツを、セキュリティ対策、復号化ロジック、フォレンシックマーク埋め込み機能、失効ポリシの実施、不揮発性メモリ機能との統合、および、非セキュリティ機能ユーザインターフェースとの統合と結合する、セキュリティコードまたはサービスを開発すること。自動化された検索ツールおよび/または手動のプロセスを使用して、コンピュータネットワークまたは他の流通経路を介して入手可能な海賊行為を受けたと考えられるマテリアルを探し出し、海賊コピーを手動でおよび/または自動で検査および解析して、フォレンシックマーク内に埋め込まれた情報を復旧し、次いで、復旧された情報を使用して、海賊行為者のデバイスまたは方法についての情報を収集すること。例えば、海賊ソフトウェア/デバイスおよび海賊行為者間の議論例えば、オンラインチャットルームにおけるを解析することによって、海賊行為についての他の情報を収集、アーカイブおよび解析すること。海賊デバイスを失効させること、海賊攻撃に対する対策を公式化すること、疑わしい海賊行為者に対する起訴を支援することただし、これらに限定されないなどにより、海賊行為を軽減する助けとするために収集された情報を使用すること。例えば危殆化されている、安全でない、海賊行為に関与していると疑われるか、またはそうでない場合はコンテンツを復号化するために使用されるべきでないキー、プレイヤおよび他のコンポーネントの失効リストを管理すること。このようなリストを電子的に管理することができ、これらのリストは、各エントリの状況に関連付けられた複数のパラメータを含むただし、これに限定されないので、個々のタイトル、プロセスなどに関連付けられたリスクプロファイルを満たすように失効データをカスタマイズすることができる。例えば、失効していないデバイスによってのみコンテンツを復号化することができるようにコンテンツを作成するために、ブロック復号化オペレーションTRAP_Aesなど用の入力/出力を生成または取得すること。特定のプレイヤに対する攻撃を含む、攻撃への対策を開発すること、または管理すること。例えば、ネイティブコードベースのセキュリティ対策がプレイヤメーカによって開発およびデジタル署名されなければならないフォーマットで、このようなサービスには、このような対策が必要とされる状況を識別すること、リスクについての情報をメーカに提供すること、対策開発を支援すること、対策のためのテストセキュリティおよび互換性のテストを含むを提供すること、各対策が使用されるべき再生環境を識別するためにコンテンツによって使用するためのコードまたはポリシを開発すること、対策コードを他の復号化プロセスおよび他のセキュリティ機能と統合すること例えば、対策がスキップまたは回避されないようにするため、および、メディア上の複数の別々のプレイヤタイプ/メーカからの対策を結合すること、が含まれる場合があるが、これらに限定されるものではない。キー、コード、識別子、セキュリティポリシおよび他の属性を含む、不揮発性メモリスロットに関連付けられたデータを管理すること。オンラインまたは他のネットワークベースまたはインタラクティブなコンポーネントと共に動作すること、または、これらと統合すること例えば、デコードが、問題のあるセキュリティを有する1つまたは複数のデバイスまたは環境と関連するときに、拡張ユーザ認証ステップまたはプレイヤ認証ステップを提供するため。完成されたメディアの品質管理を実行すること。コンテンツを、個々のプラットフォーム上にある特別なマーケティング機能、ユーザ機能、非標準機能などと統合すること。プレイヤ互換性テストを実行すること。問題バグのメニュー化menuingbug、コーデック制限、ディスプレイ制限、正常に機能しない機能、是正可能なセキュリティ欠陥などが含まれるが、これらに限定はされないを有するプレイヤを検出し、適切な次善策影響を受けたオペレーションを回避すること、影響を受けない簡素化された機能を使用すること、プレイヤパッチをインストールすること、および、ネイティブコードを実行して問題に対処することが含まれる場合があるを利用するためのコードの開発および統合。レプリケータと統合して、上述の機能を実施するために適切なコードおよびデータと共にメディアが正しく作成されることを確実にすること。および/または、いずれかの方法の他のタスクを提供して、コンテンツ所有者、プレイヤ開発者、ユーザ、法執行機関または他のパーティを支援すること。フォレンシックマーキング埋め込みおよび復旧技術比較的大規模の共謀攻撃すなわち、複数の敵対者が、そうでない場合は共謀デバイスを識別および失効させるために使用することができるフォレンシックマークを消し去る意図を通常は有して、複数のデコードデバイスからのデコードされた出力を結合することによる攻撃に対して最良の可能なセキュリティを得るため、比較的多数のバリエーションを出力において導入する能力を有することが、しばしば有効である。完全なMPEG-2ビデオGOP用のまったく別のバージョンを格納することは確かに可能ではあるが、多数の代替ビデオシーケンスが格納されなければならない場合映画全体にわたる数百万の代替など、ストレージ要件は厳しくprohibitiveなる。このような状況に対応するため、必要とされるストレージの総量を最小限に抑えることが有効である。フォレンシックマークのために必要とされる特定の要件および属性は状況に応じて変わるが、望ましい属性には通常、基礎となるバリエーションがコンパクトに表現されることバリエーションをエンコードするために、比較的わずかなストレージ空間または帯域幅が必要とされることを意味する、耐久性があることコンシューマカムコーダconsumercamcorderを使用してテレビ画面から記録することによって作成されたコピーなどの品質が低下したコピーからバリエーションを復旧することができることを意味する、もっともらしいplausibleこと出力を調べることによって、それらを自動的に識別および除去することができないことを意味する、および、これらが芸術的なものとして受け入れ可能acceptableであることバリエーションが過度にコンテンツの品質または履歴experienceを損なわないことを意味するが含まれる。これらの要件は例えば、タイトル、コンテンツ作成者の要件、再生環境特性などに応じて変わる場合がある。フォレンシックマーキングをサポートする例示的光ビデオディスクでは、コンテンツ作成者は、圧縮されたビデオに適用される場合のある複数の代替または他の修正を探し出し、または生成する。これらの代替はビデオ圧縮プロセスの一部として識別され、この場合、考えられるバリエーションを識別し、次いで複数の基準例えば、ストレージサイズ、耐久性、もっともらしさ、芸術的受け入れ可能性などと照らし合わせてそれらの適合性を評価するように、ビデオ圧縮プロセスが修正される。バリエーションが適切である場合、適切なバリエーションとして出力される。例えば、単一ビットまたは単一バイト、単一ワード、単一ブロックなどの値を変更することが適切な代替ビデオシーケンスを作成する位置を識別するように、圧縮ロジックを構成することができる。代替実施形態では、従来の圧縮アルゴリズムを使用することができ、圧縮後ステップとして、代替を生成し、かつ、代替の妥当性を検査することができる。例えば、自動化されたソフトウェアを使用して、a例えば、擬似乱数生成器を使用して、圧縮されたビデオの任意のバイトと、そのバイトのための新しい値とを選択することによって、ビデオストリームへの修正候補を識別すること、bビデオの試験的な圧縮解除を実行し、ストリームが変更によって無効にされた場合、修正候補を無効として拒否すること、および、c試験的な圧縮解除の出力を、オリジナルのストリームを圧縮解除した結果と比較し、差異が要件を満たさない場合、修正候補を拒否することができる。例えば、ステップcでは、小さすぎるすなわち、耐久性が十分でないまたは大きすぎるすなわち、もっともらしくない、および/または、芸術的に受け入れ可能ではない修正を拒否することができる。追加のテストを実行して、修正が相互に作用しないようにすることを検証することができる例えば、状況によって、別々に適用された場合、修正は受け入れ可能である場合があるが、共に適用された場合、受け入れ可能でない。テストを通過する修正は保存される。フォレンシックマーキングを使用する例示的メディアを作成するとき、最初の圧縮されたビデオデータストリームが準備される。このデータは、メインの圧縮されたビデオからなり、任意で、すでに適用された一部の修正を伴う任意で、ビデオを破損する一部の代替または他の修正が含まれる場合がある。ビデオに対する有効な修正を識別するデータ構造が準備され例えば、以前に識別されたが適用はされなかった修正を適用する、または、すでに適用されている修正を取り消す、これらの有効な修正には、ビデオを再生可能にするために必須であるいずれの修正も含まれる。代替を非常にコンパクトにして例えば、MPEGGOPにおける24ビットバイトオフセット、および、8ビット代替値を4バイトで表現することができる、文字通りliterally数百万の変更がわずか数メガバイトのデータ内で定義されることを可能にすることができる。コンテンツ作成者は次いで、再生環境特性に基づいてバリエーションを選択および適用するためのプログラムロジックを準備する。このプログラムロジックは、変更をビデオシーケンスに適用するように構成されるべきであるが、ただし、適用される変更の組合せは通常、科学捜査の目的のために有用となるであろう情報に基づくシリアルナンバ、デバイスを暗号的に識別する値、モデル/メーカ情報、接続されたデバイスについての情報など。加えて、このプログラムロジックは、有効なビデオストリームを作成するために必要ないずれの変更も適用するように構成されることが可能であるべきである少なくとも、受け入れ可能な再生環境において動作中であるとき。必須の変更を有することは、変更を適用するコンテンツコード部分を敵対者が無効にしようと試みる攻撃を防止する助けとするために、有用である場合がある。コンテンツコードロジックには暗号技術の使用が含まれる場合があり、これは例えば、プレイヤキーを使用して、代替を適用すべきプレイヤ上でのみ、代替セットを復号化するためである。同様に、コンテンツコードにはエラー訂正コードの使用が含まれる場合があり、これは例えば、マークが付けられたビデオを復旧するパーティが、例えば、攻撃または品質低下によりマーク復旧が信頼できない場合でも、プレイヤ情報を復旧することができるようにするためである。埋め込まれる値には、デジタル署名、MAC、または、マークを復旧するパーティが復旧された情報の妥当性において確信を有することができるように埋め込まれた情報を認証する、他の値が含まれる場合がある。海賊コピーが復旧されるとき、コンテンツ作成者はこのコピーを解析して、現存するバリエーションを識別することができる。この解析を手動で行うことができるが例えば、海賊ビデオのフレームを、各位置における可能なバリアントvariantの各々と比較し、次いで、バリエーションのリストを再度再生環境特性にマッピングすることによる、この解析プロセスを、より効率的にするために、および、より複雑なマークの解析を可能にするために、自動化することができる。例示的な自動フォレンシックマーク解析システムは、カスタマイズされたソフトウェアを備えたコンピュータを使用して実装される。解析ソフトウェアは、オリジナルの圧縮されたビデオ、修正のリスト、および、復旧した海賊ビデオのデジタル表現をもって開始する。次に、解析ソフトウェアは、オリジナルのビデオ内のフレームと海賊ビデオ内のフレームとを照合し、海賊ビデオのフレームとオリジナルのビデオおよび/または、修正が適用されたオリジナルの対応するフレームとを最も近くマッチさせるための変換回転、拡大縮小、ベンド、カラーシフト、強度調整、タイムシフトなどを特定する。解析ソフトウェアは次いで、海賊ビデオのフレームまたはフレームの諸部分、またはフレームのセットなどを、オリジナルのビデオのバリアントの各々の対応する部分に対して比較する。ソフトウェアは次いで、復旧されたビデオが各バリエーションにどの程度マッチしているかを示す、類似/相違に基づいたスコアを計算する。例えば、変換された海賊ビデオイメージとオリジナルのバリエーションとの間の最小二乗誤差を使用して、このスコアを計算することができる。スコアを計算する際、変更によって影響を受けない領域を無視することができ、インターレーシングinterlacing、フレーム間のぼかしなどのひずみdistortionのためにさらなる調整を行うことができる。イメージ解析ソフトウェアはまた、オペレータが海賊ビデオのフレームを変換の調節の有無にかかわらずオリジナルのビデオのバリアントに隣接してバリエーションを視覚的に探し出すことを支援するための選択可能な拡大および強調表示によって表示することを可能にする手動モードユーザインターフェースを提供することもでき、また、オペレータが、どのバリエーションが海賊ビデオ内にあるかを選択しまたは、バリエーションが未知であることを示し、フレームを各ビデオソース内で前方および後方に移動させ、次のバリエーションまで高速に進め、現在のプログラム状態を保存することを可能にするためのユーザインターフェースオプションを提供する。イメージ解析プロセスの出力は手動で実行されるか、自動で実行されるかにかかわらず、ビデオ内に存在する場合のある可能なバリエーションに割り当てられた相対スコアのリストである。これの簡素化された形態は、出力が単に、各バリアントについての最も可能性の高いオプションを識別する場合である。自動化された、および/または、手動のプロセスは次いで、復旧したバリエーションデータを再生環境についての情報に変換するために使用される。例えば、マーク埋め込みが、元々はプレイヤシリアルナンバに適用されたエラー訂正コードの出力に基づいていた場合、復旧された選択値を、シリアルナンバを復旧するようになる適切なデコードプロセスへの入力に変換することができるエラーの数が過剰でないと仮定する。同様に、選択プロセスが、シリアルナンバの一部をもってシードされた擬似乱数生成器PRNGを使用して実行される場合、解析プロセスは、可能なシード値の各々を使用したPRNG出力を海賊ビデオからの監視と相関させることを含む場合がある。バリエーションはまた、圧縮されたビデオストリームを修正するという手段とは異なる手段を使用して、コンテンツ内に埋め込まれる場合もある。例えば、コンテンツコードは、デコードされたビデオの上にイメージを重ねるようプレイヤに命令することによって、修正を導入することができる。例えば、MPEG-2デコードされたビデオの上に1つまたは複数の半透明オーバーレイフレームを描画することによってまたは、同様に、コンテンツコードに出力フレームバッファを直接的または間接的に修正させることによって、フォレンシックマークを埋め込むことができる。オーバーレイを目立つようにすることもできる。例えば、名前名字用スクリーナ。コピーしないでください。ScreenerforFirstNameLastNames.DoNotCopyと表示される、動的に生成された移動する半透明オーバーレイは、海賊行為への明示的な抑止力を提供することができ、例えば、光ディスクのバーストカッティングエリア、NVRAMスロット、サーバなどから視聴者の名前を決定すること、および適切なオーバーレイを表示することによって、これを作成することができる。オーバーレイを使用して、例えば、意図的に欠陥のある部分上に描画することによって、圧縮されていないビデオを訂正または修正することもできる。オーバーレイは、メディア上のストレージ空間によって、非常に効率的にすることができる。なぜならば、オーバーレイを描画するためのコードを表すのに必要とされるデータの量を非常に小さくすることができるからである。オーバーレイベースのマークによって、多数のバリアントを有するビデオ部分の生成が効率的になる例えば、単一のビデオフレームのごく一部を容易に作成して、そのエリア内のプレイヤシリアルナンバの表現を簡単にオーバーレイすることによって、プレイヤを一意に識別することができる。オーバーレイベースのマーキングは、幅広く変わるマークの作成を簡素化することもできる。なぜならば、例えば、淡い半透明なオーバーレイイメージが表示される場合があるとき、スクリーン位置x,yおよび時間のための幅広い範囲のオプションが存在する可能性があるからである。海賊行為者が、複数のプレイヤからの出力を結合することによって、それらのコピーのソースを隠そうと試みる場合がある状況においてデバイスを識別する際に、これらの特性は特に有用となる可能性がある。フォレンシックマークを他のデータに埋め込むこともできる。このデータには、オーディオ、静止画像、制御データ、メディア書き込みパターンなどが含まれるが、これらに限定されるものではない。メディアおよびコンテンツ認証コンテンツコードおよび/またはプレイヤは、メディアが挿入されるとき、および/または、データがその後にロードされるとき、メディアを暗号的に認証することができる。例示的実施形態では、メディアの全部または一部の個々のデータ部分例えば、セクタは、ハッシュツリーを使用してデジタル署名される。ルートハッシュは、フォーマットを監督するエンティティまたは別の信頼できるエンティティによってデジタル署名され、メディア上に配置される。ルートハッシュ署名はまた、レプリケーションおよび/またはマスタリング施設、著作権所有者、発行日、メディアにアクセスすることを許可されるまたは許可されないプレイヤデバイスを記述する基準、および他のこのような情報を識別することもできる。データブロック例えば、セクタ、GOP、トラック、ファイルなどがメディアからロードされるときまたはその後、ロードされたデータを適切な中間ハッシュ値と結合して、ルートハッシュを再作成することにより、これらのデータブロックの妥当性を検査することができ、この妥当性検査はドライブ、コンテンツコード、プレイヤアプリケーション、および/または、他のプレイヤデバイス/部分によってなされる。ルートハッシュの値を、メディア署名が検証された後にキャッシュすることができるので、比較的遅い公開キー署名検証ステップを各読み取りごとに繰り返す必要はない。同様に、中間ハッシュ値をデータブロックと共に格納し、キャッシュし、必要に応じて計算し、またはメディアから検索することができる。メディアはまた複数のルートハッシュを含むこともでき、または、他の認証スキームを使用することができる各セクタ、GOP、または他のデータ部分上のデジタル署名を検証することによるなど。ストレージオーバーヘッドを低減するために、メッセージ復旧を可能にする署名およびパディングスキームを使用することができる。デジタル署名はまた、ディスク上に含まれるブートコードもしくは再書き込み可能部分内に格納されたデータ、またはすべてのデータなど、ディスクのコンテンツの部分を認証することもできる。署名または、他の暗号値もしくは非暗号値はまた、特定のディスクまたはコード部分によって実行される可能性のあるオペレーションを指定または制限することもできる。例えば、コンテンツが特定のプレイヤの特徴または機能にアクセスすることを許可し、可能にする、ライセンス機関によってデジタル署名を発行することができる。このような許可を使用して、ライセンス料が確実に支払われるようにすること、または、無許可の海賊メディアの製造を防ぐことができる。例示的実施形態では、映画を含む光ディスクを大量生産することを望む各コンテンツ作成者またはそのレプリケーション施設は、生産されるべきディスクを識別する情報をライセンス団体に提供する。このような情報には、タイトル、合法的な著作権保持者の識別、許可されるべきコピーの数、ディスクコンテンツの少なくとも一部のハッシュ、メディアシリアルナンバ、必要とされる所望の機能、および、要求を認証するデジタル署名を含めることができるが、これらに限定されるものではない。それに応じて、著作権保持者は、メディアの生産を許可する1つまたは複数のデジタル署名を受信する。ライセンス団体はまた、コンテンツ作成者またはそのエージェントからの支払いを受け取り、かつ処理することもできる。このように、ライセンス料が、コンテンツによって実際に使用された特定の機能セキュリティまたはそうでないものに直接結合されることが可能である。コンテンツコードのオペレーションに課せられた制限を、例えば、放送テレビ信号をコピーすることができるかどうかを示すために使用される放送フラグに類似する非暗号フラグnoncryptographicflagに基づくようにすることもできる。パーミッションもまた、例えば、ユーザのプライバシが確実に維持されるように、プライベートユーザ情報にアクセスしているコンテンツコードによるネットワークリソースへのアクセスを拒否すること、ユーザの許可を得ている、または、リモートサーバからの認証を得ているコンテンツコードに大きなアクセスを付与することなどの以前のアクションに基づくようにすることができ、異なるスレッド、コンテンツコード部分などでは異なるようにすることができる。デジタル署名はコンテンツと共に、またはコンテンツとは別々に配布される場合があり、メディアのいかなる部分上にも配置される場合があり、また、暗号化されたキー、復号化キーを導出するためのロジック、セキュリティポリシ情報などを伴う場合もある。例えば、光メディアの場合では、各ディスクについて別々に書き込むことができるメディアの部分上にデジタル署名を配置することが有用である場合があるそれにより、認証された一意のディスクシリアルナンバを、例えば、メディア失効機能と共に使用するために提供して、どのデバイスがメディアを再生することができるべきであるかなどを明示的に指定する。不揮発性メモリEEPROM、フラッシュなどを含むメディアでは、一意のデータを通常に格納することができるが、他のメディアタイプは他の技術を必要とする場合がある。例えば、スタンプ付き光メディアはバーストカッティングエリアBCA内のデータを保持することができ、これは通常、強力なレーザを使用して書き込まれる。意図的な欠陥または変更のパターンをメディア表面に導入することもでき、プレイヤおよび/またはコンテンツコードによって読み取ることもできる例えば、エラー検出およびエラー訂正を無効にすることで得られた読み取り結果を直接処理することによる。半導体ベースのROMでは、ヒューズおよび他の追記機能が使用される場合がある。署名および証明書に加えて、メディア固有の領域を使用して、ローカリゼーション情報、暗号化されたキー例えば、特定のプレイヤが現在または将来のメディアを、例えばスクリーナ、デモ、または、規制された配布のために意図された他のディスクとしてデコードすることを可能にするキー、プレイヤ不揮発性メモリデータの読み取り、復号化、および/または書き込みを可能にするキーなど、暗号化されないキー例えば、海賊行為者によってレプリケーション施設から盗まれたメディアまたはデータのデコードを防止するために、スタンプ付きメディアの製作の後に書き込まれたもの、識別情報例えば、オーバーレイにおける表示のための、および、フォレンシックマーキングにおける使用のための、受信者名など、マーケティングおよびプロモーションデータ例えば、トライアル、くじ、オンラインサービスなどへの参加を可能にする値、電話番号、データネットワークアドレス、実行可能コード、または、コンテンツコードおよび/またはプレイヤによって使用することができる任意の方法の他の暗号または非暗号データも保持することができるが、これらに限定されるものではない。データをディスク固有の領域からロードするとき、ディスク固有の領域のコンテンツを偽造するために必要とされる情報を例えば、アプリケーションまたはコンテンツコードへ出力しないように、ドライブは一方向変換例えば、SHAハッシュ、コンテンツコードにより指定された値によってキーが付けられたkeyedHMAC-SHA、RSA公開キーオペレーションなどを適用することができる。記録デバイスはまた、ハッシングまたは他の暗号化変換を使用して、敵対者が正当なメディアから抽出された情報を使用して正確な不法コピーを作成することを防止することもできる。メディア固有の領域をまた、記録デバイスによって事前に記録する例えば、空のコンシューマ記録可能メディア上のシリアルナンバによりか、または書き込むこともできる例えば、デジタル署名することができる、記録デバイスの識別子による。この識別子を正当なデバイスによって検証して、レコーダが失効されないことを確実にすることができ、また、違法コピーが復旧されるときにこの識別子を使用して、違法コピーを作成するために使用された記録デバイスを識別し、および/または失効させることができる。メディア認証および偽造防止antiforgery技術例えば、米国特許第6646967号明細書において概説される、ピット特性またはウォブルトラックコンテンツを調節することなどをサポートするメディアフォーマットでは、これらの特性から導出された値を、プレイヤによって読み取りまたは検出し、プレイヤおよび/またはコンテンツコードによって認証することもできる。物理的特性を読み取った後、ドライブは、この値を出力する前に、一方向暗号化変換を適用し、修正されないドライブによって受け入れられるような方法で、変換された特性を知る悪意のあるパーティが基礎となる特性を偽造する能力を欠くようにすることができる。コンテンツコードおよび/または、ドライブ、プレイヤアプリケーション、または他のコンポーネントは、例えば、メディアが信頼できるパーティからの署名を特性値と共に保持することを、検証することにより変換された特性を認証することができる。ブートストラップ、セキュリティ解析および再生例示的光ディスクを伴う例示的プレイヤの実際のオペレーションを説明する。オペレーションは、ドライブにディスクを挿入することで開始する。インタープリタは最初に、コードおよび/またはデータの最初の部分をディスクからロードし、これらを実行することによって、ブートストラップされるbootstrapped。この最初の部分を小さく単純にすることができ、例えば、この最初の部分は単に、タイトルがロード中であることをユーザに通知することができ、次いで追加のコードおよびデータをメディアからコンテンツのメモリ領域にロードすることを開始することができる。このコードは追加のコードを順にロードすることができる例えば、このコードはプレイヤタイプをチェックし、次いでプレイヤタイプに固有のコードをロードすることができる。プレイヤ設計およびメディアに応じて、任意の数のコードロードチェックを実行することもできる。プレイヤはまた、挿入されたメディアがコードまたは、コードを実行するために必要とされた特性を欠く場合を検出することもでき、そうである場合、プレイヤ内に組み込まれた機能を使用してディスクを再生することもできる。このようなサポートは例えば、DVD、CD、DVD-Audioなどのレガシーメディアフォーマットからの再生を可能にするために有用である。例示的メディアは次いで、ユーザの暗号化インターフェース例えば、TRAP_Aesを使用して、1つまたは複数のタイトル固有の復号化キーを導出する。失効していないプレイヤのみが有効な復号化キーを導出することができるように、コンテンツコードは構成される。これを実施するために、コンテンツコードは、放送暗号化、キー暗号化キー、難読化されたソフトウェアなどの技術を使用することができるが、これらの技術に限定されるものではない。次いで、これらの復号化キーを使用して、例えば、追加の暗号化されたコード、ビデオまたは他のデータを復号化することができる。ブートストラップにはまた、データをメディアからロードすること、データを必要に応じて圧縮解除すること、および、任意の方法のセキュリティ解析オペレーションを実行することが含まれる場合もある以下のサブセクションでさらに詳細に説明する。次いで、実際の再生には、通常、様々なステップまたはチェックを繰り返し実行することが含まれ、これらのステップまたはチェックには以下が含まれる場合があるが、以下のものに限定されるものではない。イベントを処理すること。この処理には、ユーザインターフェースイベントキーストローク、リモートコントロールボタンの押下、マウスの移動、ポインタ/カーソルの移動、選択入力などおよび他のイベント例えば、電源を落とす要求/通知、ハードウェア再構成要求/通知、ソフトウェア変更要求/通知、エラーアラート、メディア排出要求/通知などを検出すること、および処理することが含まれる場合がある。TRAP_GetEventを参照。イベントを処理するための適切な方法は、イベント、タイトル、プレイヤ属性、および、再生プロセスの状態によって決まる場合がある例えば、メニューが表示されるときにイベントを処理するために使用されるロジックは、ビデオが再生中であるときに使用されるロジックとは異なる場合がある。一例では、新しいビデオストリームに切り替えること、プレイヤ構成ビットを変更すること、アクションを要求すること例えば、排出要求に応答してメディア排出TRAPを呼び出すこと、メニューをアップデートすること、オーバーレイグラフィックスを変更すること例えば、アニメ化、アップデートなど、ネットワーク接続の開始/アップデート/その他を行うこと、再生構成再生速度などを変更すること、新しいコンテンツコードをロードし、実行すること、ビデオストリーム内の新しい位置にジャンプすることこれは、バッファされたメディア要求を変更/消去すること、データバッファされたコーデックを消去することなどを必要とする場合がある、再生を終了すること、セキュリティチェックを実行すること、エラーを表示することなどただし、これらに限定はされないによって、一部のイベントを処理することができる。一部のイベントは、要求されたオペレーションが許可されることをコンテンツコードがチェックすることを、必要とする場合もある。すぐには実行することができないオペレーションは、実行できるようになるまで、バッファされる場合がある。一部のイベントは無視される場合もある。メディアインターフェースを管理すること。例示的実施形態では、メディア処理ルーチンmediahandlingroutineには、ビデオおよびオーディオコーデックのために、および、他の目的のために、使用可能なデータの安定した供給があることを確実にする責任がある。例えば、メディアが光ディスクである場合、コンテンツコードは、ドライブの状況をチェックし、うまく読み取られているデータを検索し、新しい読み取り要求を提示し、もはや必要ではない読み取り要求を消去し、例えば、割り込まれない再生を確実にするために、ビデオ内の近づきつつあるブランチの可能な各フォークforkにデータをロードするためヒントを提供して機能またはキャッシュを先読みし、コンテンツコードのメモリ領域内または、他の場所、例えば、コーデック、フレームバッファ、復号化モジュールなどでデータがロードされるべき場所を指定し、エラーをチェックし、どのようにエラーが処理されるべきであるかを命令し、ドライブまたは他のコンポーネントに対する暗号化キーを指定し、ドライブ読み取り/書き込み要求に関連する認証情報を提供し、デコードパラメータエラー訂正情報、キー、セクタアドレスマッピングsectoraddressmapping、読み取りヘッド深度/焦点など、ファイルアクセス特権などを指定することなどができる。セキュリティ処理:このロジックは、キーの導出、ロードされたデータの認証例えば、MAC、ハッシュツリー、デジタル署名などを使用、および、実行可能部分例えば、オーディオまたはビデオの特定の部分に関連付けられたセキュリティコードの実行などの追加の必要とされる復号化または処理ステップのいずれも実行することができる。このステップには、例えば、ロードされたデータのどの部分を出力するべきかを選択すること、データに修正を加えることなどにより、フォレンシックマークを埋め込むことが含まれる場合もある。例示的実施形態では、このオペレーションには、MPEGGOP用のキーを導出すること、GOPのデータ上でAES復号化オペレーションを実行すること、および、ブロックAESキーを知っていても敵対者はディスクのコンテンツを復号化できないことを確実にするために、復号化の前/後に前処理および後処理データの再順序付けreordering、ブロックXOR、置換、バイト修正などを行うよう、コンテンツコードを使用すること、が含まれる。データをコーデックに転送すること。このコードはまた、エラー状態を検出し、処理することもでき、この状態は、必要とされるメディアからのデータが使用可能ではないためにコーデックのスターベーションstarvationを避けることができない状況などである。このコードはまた、コーデック状況を検出して、コーデックバッファがオーバーフローまたはアンダーフローしないことを確実にすること、および、メディアインターフェースコードが正しいデータをロードしていることを確実にすることもできる。オーバーレイおよび特殊な機能を処理すること。このロジックは、メニューの描画および除去、オーバーレイ、サブタイトル、および類似の機能を担う。このロジックはまた、ピクチャインピクチャビデオおよび所定の種類のフォレンシックマークオーバーレイを使用して描画されるものなども処理する。特殊な状況ゲーム/パズル、メニュー、メニュー選択の処理、隠されたイースターエッグなどは、特殊なコードを必要とする場合がある。マルチスレッドインタープリタJava登録商標仮想マシンなどが提供される場合、別々のスレッドが異なるオペレーションイベント、オーバーレイ、ビデオなどの管理のために使用される場合があり、スレッドおよび/または共有メモリ領域の間で受け渡されるメッセージのためのインタープリタによるサポートを、スレッド間での同期および制御のために使用することができる。同様に、状況チェックおよびメッセージの受け渡しを使用して、インタープリタが他のコンポーネントと同期されることを確実にすることできる。プレイヤはまた、様々なオペレーションのためのデフォルトハンドラを提供して、例えば、ユーザインターフェースの一貫性を改善し、コンテンツ作成努力を低減し、パフォーマンスを向上させることなどもできる。完了するとユーザがプレイヤ上の排出ボタンを押す場合など、コンテンツコードに、保留中のシャットダウンを通知することができる。コンテンツコードは次いで、リモートデバイスに通知し、その内部状態を整理しcleanup例えば、いずれかの要求された不揮発性メモリ書き込みを完了するなど、終了することができる。コンテンツコードが所定の期間例えば、5秒以内に終了しない場合、プレイヤデバイスはコンテンツコードを終了させ、メディアを排出する。セキュリティ解析オペレーションコンテンツコードは再生環境を解析してセキュリティの問題を探すことができる。このプロセスには通常、プレイヤおよび再生環境の他の部分についての情報を得ること、および、それらの情報を処理することが含まれる。この情報には、プレイヤのための、または、コンテンツコードが検証することができる他のコンポーネントのための、デジタル署名および/または暗号化証明書が含まれる場合がある。プレイヤから得られたこの情報は、プレイヤおよび再生環境の特性または、疑わしい特性を示す。一部の特性特定のTRAPの存在などは直接報告される。他の特性は間接的に推論され、例えば、プレイヤ内の暗号化キーの特定の組合せは、部分的にまたは完全にプレイヤのシリアルナンバによって決定される場合がある。正当なプレイヤとして装うが、正しい暗号化キーを欠くプレイヤは、嘘で捕まる可能性がある。なぜならば、プレイヤが有していないキーを使用して暗号化オペレーション復号化、署名などを実行することはできないからである。同様に、他の矛盾を利用して、問題を識別することができる。セキュリティ解析プロセスは、圧縮されたビデオ、コード、オーディオおよび/または他のデータのためのキーの導出を含む、様々な再生関連プロセスに含まれる場合がある。例えば、特定のタイプの正当なプレイヤがネイティブコード標準化されたインタープリタ/仮想マシン内で実行されるコードではなく、マシン内のローカルプロセッサ上で実行されるコードを実行する能力をサポートし、および/または、文書化されていないプレイヤタイプ固有の計算をサポートする場合、コンテンツはこれらの機能を使用して、プレイヤタイプを認証することができる。特定のモデルであると主張するがそのモデルによってサポートされるオペレーションを正しく実行することができないプレイヤ上でコンテンツが実行されていることにそのコンテンツが気付く場合、コンテンツは、例えば、悪意をもって危殆化されたこのタイプのプレイヤから抽出されたキーを使用して、このプレイヤタイプとして装っているデバイス上で実行されていると、合理的に結論を出すことができる。セキュリティチェックには、コンポーネントまたは属性の任意の組合せを解析することを含めることができる。例えば、メディア、メディアドライブ、およびハードウェアコンポーネントの特性は、偽造プレイヤを検出するために有用である。事前に記録されたメディア上、またはスタンプ付きのメディア上の販売されたコンテンツは、ドライブに問い合わせて、そのコンテンツがコンシューマ記録可能メディア上で実行されているかどうかを判断し、コンシューマ記録可能メディア上で実行されている場合、このことは決して起こるべきではないので、再生されることを拒否することができる。ある状況例えば、支払いが行われる場合において特定のタイトルがコンシューマ記録可能メディアへの記録を可能にする場合、例えば、特定のシリアルナンバを有するメディア、および/または特定の記録デバイスの識別子を保持するメディアからの再生を明示的に許可するコンテンツ所有者が許可した担当者によって発行された有効なデジタル署名が存在する場合にのみ、コンテンツはコンシューマ記録可能メディアから再生することができる。出力デバイス上、デバイスドライバ上、および、コンテンツを受信するまたは、受信する可能性のあるコンポーネントなどの他の再生コンポーネント上で、セキュリティチェックを実行することができる。この機能は、悪意のある出力デバイス、または危殆化された出力デバイスを使用してコンテンツが記録される場合のある状況に対処するために、特に有用である。出力デバイスのための検証オペレーションは、デバイスの機能によってのみ制限される。例えば、出力デバイス検証には、ネイティブコードを入力または出力デバイスに送信すること例えば、セキュリティの問題を検出するため、バグを修正するためなど、他のデバイスとの暗号ハンドシェークcryptographichandshakeを実行すること、メディア上に保持された失効リストに対してデバイスのキーをテストすることなどが含まれる場合があるが、これらに限定されるものではない。出力デバイスはまたプレイヤの検証を要求することもでき、この場合、適切な検証は、実際のプレイヤ、コンテンツコード、またはこれらまたは他のコンポーネントの組合せによって提供される場合がある。複数の出力デバイスがチェーン状にinachain接続される場合例えば、プレイヤデバイスはデジタルオーディオをミキサに送信することができ、ミキサはデジタルオーディオを増幅器に提供し、増幅器はアナログ出力をスピーカに提供する、各デバイスはそれがコンテンツと共に何を行うことを予定しているかについての情報をプレイヤに提供し、発信元または他のデバイスがメッセージを後続のデバイスへ渡すことを可能にすることができる。このように、コンテンツコードは、再生プロセスに関係するデバイスの任意に長いチェーンまたはネットワーク内の各デバイスを認証することができる。信頼できないデバイスまたは、記録デバイスなどの許可されないデバイスが検出される場合、コンテンツコードは、適切な応答が返されることを確実にすることができる適切な応答には、再生を拒否すること、信頼できないデバイスへの出力を拒否すること、信頼できないデバイスにコンテンツを送信しないよう中間デバイスに命令すること、信頼できないデバイスを再構成して問題を是正すること、出力品質を低下させること、追加のセキュリティ認証ステップを実行することなどが含まれるが、これらに限定されるものではない。インターネット接続または別のデータ接続が存在する場合、セキュリティチェックには、追加のセキュリティ関連情報をリモートサイトからダウンロードすることを含めることができる。同様に、リモートデバイスおよびローカルストレージ例えば、NVRAMを使用して、新たな証明書失効テーブルなどの有用な情報、または、メディア上のコードよりも新しいデジタル署名付きセキュリティコードを取得することもできる。セキュリティチェックは通常、再生に先立って実行されるが、コンテンツコードはセキュリティチェックをいつでも実行することができる。再構成される可能性のある再生環境では、または、他の新しいセキュリティ関連情報が入手可能になる可能性のある状況では、追加のセキュリティチェックを定期的または絶えず実行することが有効である場合がある。大きな変更が検出される場合、コンテンツコードは再生を終了するか、または、再生環境における確信を再確立することができるようになるまで、再生を休止することができる。テーブルまたは判断ツリーdecisiontreeを使用して、特定のプレイヤ属性が与えられるとどのセキュリティ解析コードもしあればが適切であるかを、迅速に選択することができる。現在のプレイヤに適用できないセキュリティコードが実行される必要はなくまたは、セキュリティコードがメディアからロードされる必要もなく、不必要なパフォーマンスへの影響を回避し、それをサポートしないプレイヤ上でセキュリティコードを実行する結果として生じる可能性のある互換性の問題を回避する。前述のように、セキュリティチェックを暗号化キー導出オペレーションに結合することができる例えば、その場合、特定のセキュリティチェックを必要とするデバイスは実際にチェックを実行して、必要なキーを正しく導出しなければならないが、そのセキュリティチェックを必要としないデバイスは、キーを直接得ることができる。例示的キー管理例示的プレイヤはそのメーカによって、キーの一意の組合せをもって初期化される。これらのキーは、メディアフォーマットを制御するエンティティによって許可されるキー管理局から得られる。キー管理局は、許可されたメーカから要求を受け、その要求の妥当性を検査し、プレイヤキーセットを提供し、それらのキーのための支払いおよび、対応するライセンス料を受ける。例示的プレイヤのためのキーセットは128のAESキーからなり、これらのキーは各々が128ビットであり、キー管理局にのみが知るトップレベルの256ビットAESキー、プレイヤのメーカを識別する32ビットグループID、およびプレイヤのシリアルナンバを識別する32ビットデバイスIDから導出される。グループおよびデバイス識別子は共にプレイヤを一意に識別し、プレイヤのデジタル証明書内に表現される。例示的実施形態では、キーセット内の128のキーキーID値0ないし127の各々は、キー管理局によって、最初にキー選択ブロックをキーID、グループIDおよび/またはデバイスIDから計算することにより導出される。キー選択ブロックは次いで、必要な場合パディングされ、トップレベルキーを使用して暗号化される。結果として生じる値を後処理し例えば、切り捨て、実際のキーを作成することができる。キー選択ブロックを指定されたパラメータから導出するために使用される方法は、キーIDによって決まる。以下の表は、キーID、グループIDおよびデバイスIDをキー選択ブロックに変換するために使用可能な例示的ルールを示す。キーをそれらのグループIDおよびデバイスIDに応じて擬似ランダムデバイスサブセットに割り当てる、例示的関数KeySelectorGroupID,DeviceID,g,dは、以下の通りである。Lethash019equalthebytesoftheSHAhashofKeyIDGroupIDLetANDMASK1Fori0uptod1LetnhashimodClearthenthsetbitinANDMASKEndForLetXORMASKhash1619AND1ComputedeviceHash019astheSHAhashofKeyIDGroupIDDeviceIDReturn0x00000000XORXORMASK||は連結concatenationを示し、0xは、以下に続くものが32ビット16進数値であることを示し、<<は左シフト演算を示し、-は減算を示し、ANDはビット単位の論理ANDを示し、XORはビット単位の論理排他的ORを示すことに留意されたい。異なる種類のキーが含まれることに留意されたい。例えば、キー0およびキー101ないし127は、一意にデバイスに割り当てられるようになる。反対に、キー1ないし31は、同じグループ内のデバイスのデバイスの次第に大きいセットの間で共有されるようになる。キー32ないし63は、複数のグループの間で共有される。最後に、キー64ないし99は、デバイスの様々なこの場合、擬似ランダムサブセットの間で共有される。キー100は、同じデバイスIDを有する異なるグループにわたって複数のデバイスにより共有される。デバイスキーが十分に保護されることは重要である。例えば、デバイスの実際のキーをメディア上に配置することは、タイトルのセキュリティが危殆化された場合、プレイヤのキーを危殆化させるおそれがある。同様に、デバイスキーをコンテンツパブリッシャに提供することは、コンテンツパブリッシャが危殆化されるようになる状況においてキーを危険にさらす可能性がある。これらのリスクに対処するため、本発明は、コンテンツを準備し、かつ暗号化するエンティティが信頼できることを必要としない。例えば、キー管理局はサービスを提供することができ、それにより、任意のパーティがプレイヤキーのセットおよび1つまたは複数の入力値を識別できる。それに応じて、このキー管理局は、識別されたキーの各々によって指定された入力を復号化または暗号化した結果を提供することができる。代替として、コンテンツパブリッシャは、その選択の平文/暗号文のペアを提供することができる。いずれの場合も、コンテンツを作成するパーティは平文/暗号文のペアを得ることができるが、キー自体を得ることはできない。次いで、安全なメディアを作成する際に、これらのペアを使用することができる。例示的メディアの作成には以下のステップが含まれる。aコンテンツパブリッシャが、いずれの失効したプレイヤにも知られていないプレイヤキーのセットを定義する、ただし各有効なプレイヤはそのセット内の少なくとも1つのキーを含む、bコンテンツパブリッシャが任意の平文値を選択する、cコンテンツパブリッシャが、所望の平文値を選択されたセット内のキーの識別と共にキー管理局に安全に送信する、dキー管理局が、この平文値が以前に別のパーティによって提供されていないことを検証する、eキー管理局が、要求されたセット内の各プレイヤキーを導出し、各キーを使用して、平文値を暗号化する、fキー管理局が、結果として生じる暗号文をコンテンツパブリッシャに提供する、gコンテンツパブリッシャがコンテンツの一部分または、あるコード、キーもしくは他のデータを平文値により暗号化する、および、hコンテンツパブリッシャが、暗号文リスト、および、コードを実行するプレイヤがセット内のいずれかのキーを含むかどうかを識別するように構成される対応するコードと共に、暗号化されたコンテンツをメディア上に格納し、コードを実行するプレイヤがセット内のいずれかのキーを含む場合は、プレイヤ内のキーIDを決定し、キーIDに対応する暗号文を暗号文リスト内で探し出し、例えば、ソースデータとしての暗号化されたコンテンツ部分と、キーパラメータとしての暗号文と、および、選択されたキーIDとをもってTRAP_Aesを呼び出すことによって暗号化されたコンテンツ部分を復号化する。コンテンツコードは次いで、復号化された結果をコーデックに提供し、またはそうでない場合はこのデータを必要に応じて使用することができる。代替実施形態は、以下に限定されるものではないが、複数のレベルの復号化オペレーションを使用でき、暗号化結果をフォレンシックマーキングおよび他のオペレーションと統合でき、複数のキー局を使用でき、セキュリティコードまたは他のプロセスを使用して、値キー、平文、暗号文などをさらに保護または処理できる。公開キー暗号技術が使用される場合、キー管理局はプレイヤの公開キーを提供または発行することができるまたは、識別ベースの暗号技術を使用して、キーリストを不必要にすることができる。キーにデジタル署名するため、キー管理局は、参照署名例えば、メッセージ/署名のペアをコンテンツコードによる使用のために提供することもできる。例えば、KeySelectorなどのオペレーションを、キーペアを生成するために使用される強力なPRNGのためのシードとして使用し、キーをランダムに生成して割り当てることなどによって、公開/秘密キーをデバイスの複数のグループの間で共有することができる。言うまでもなく、上記の役割を複数のパーティの間で分割することができる。例えば、キー管理局は、集中失効リストcentralizedrevocationlistを管理し、どのキーが有効でありどのキーが有効でないかをコンテンツパブリッシャが判断することを不要にすることもできる。同様に、コンテンツパブリッシャはセキュリティ関連タスクをキー管理局を含む他のパーティにアウトソースすることができる。プレイヤキーを導出するための上記の例示的プロセスは、決定論的であるdeterministic。他の実施形態は、キーをランダムに生成することを含む場合があり、他の技術を使用する場合がある。キーを導出するために使用されるオペレーション例えば、AES暗号化は例示的であり、他のオペレーションMAC、公開キーオペレーション、他のアルゴリズムなどで代用される場合がある。バージョニングコンテンツがデコードされるとき、通常はaコンテンツがプレイヤよりも古くなるか、またはbプレイヤがコンテンツよりも古くなるかのいずれかである。両方の場合、プレイヤがすべての必要とされるTRAP必要な暗号化キーのいずれをも含むを正しく実装し、コンテンツに関連付けられたコードによって実装されるセキュリティルールを満たすならば、再生は正常に発生すべきである。言うまでもなく、コンテンツコードが不十分に書かれる場合、プレイヤに欠陥がある場合、または、重大なセキュリティの問題が作成後に生じている場合、再生は自動的に正常に機能しない場合がある。コンテンツコードが正当なプレイヤ上で正しく再生されていない状況に対処するため、例えばプレイヤをディスク固有のセキュリティオーバーライドキーについてチェックし、キーが発見される場合、そのキーを使用して、1つまたは複数のセキュリティチェックまたは正常に実行されるであろう他のオペレーションを回避するコンテンツコード部分を復号化するように、コンテンツが作成される場合がある。この回避ロジックをメディア上で、暗号化された形式で保持し、復号化キーが実際にリリースされない限りこれを使用することができないことを確実にすることができる。オーバーライドキーが必要とされる場合、そのオーバーライドキーは、例えば、プレイヤの不揮発性メモリ内に例えば、暗号化された形式で格納され、ネットワークを介して検索され、TRAPを介してアクセスされる場合などがある。セキュリティに影響を及ぼすことディスプレイ制限によりプレイヤのためのグラフィカルメニューを使用できなくすることなどのない手段は、ユーザによって構成可能であり、安全な認証を必要としない。セキュリティ障害またはリスクが検出される状況にユーザが対処できるように、コンテンツコードを構成することもできる。例えば、モデム、インターネット接続、または他のデータチャネルが使用可能である場合、コンテンツは認証サーバと通信して、アップデートされたセキュリティコードを得ることができ、および/または、再生を進めるための許可を得ることができる。アクティベーション値を提供する自動の通話料無料電話サービスにユーザが提供することができる、コードを表示するまたは、可聴的に再生することもできる。このサービスは、例えば、音声認識システムを使用することによって、DTMFトーンを検出することによって、または、ユーザのスピーカから受話器に伝送された音を検出することによって、電話を介して情報を受信することができる。同様に、情報を、キーボード入力のためにユーザに返すこと、受話器からプレイヤ上のマイクロフォンに伝送することなどができる。コンテンツコードによって応答を検証し例えば、デジタル署名、MAC、難読化されたチェックサムなどをチェックすることによる、および/または、後続の暗号化処理において例えば、キーとして応答を使用することができる。チャレンジ/レスポンス認証結果をフォレンシックマーキングと共に使用して、例えば、特定のユーザまたは識別子まで遡ってコピーをトレースすることを可能にすることができる。例えば、アクティベーション値が一意であり、フォレンシックマークに含まれる場合、コンテンツ所有者はフォレンシックマークを使用して、復旧された海賊コピーを、所与のアクティベーション値を作成したトランザクションまで遡ってトレースすることができる。したがって、コンテンツ所有者が、アクティベーション値を提供することに先立って、ユーザについての情報例えば、ANIを使用する発呼者の電話番号または発呼者のID、名前、クレジットカード番号などを得ることは、有用である場合がある。アクティベーション値はプレイヤの不揮発性メモリ内に格納される場合がある例えば、将来の使用のため、および、他のタイトルによる使用のため。メディアのエンコードおよびデコード例示的実施形態では、コンテンツコードは、メディアからデータを読み取り、そのデータをデコードするために必要とされるパラメータをTRAPを通じて指定することができる。光メディアから読み取られたセクタの実際の処理には、以下のいずれかまたはすべてが含まれる場合がある。セクタデコードパラメータが光ドライブまたは、セクタデコードの一部または全部を実行することを担う他のコンポーネントに提供される。ドライブが、要求されたデータに対応する生データ例えば、セクタを読み取る。実際のロードには、セクタ識別子または、他のアドレッシング情報を使用してメディア上のデータを探し出し、次いで実際に適切なデータをメディアからロードすることが含まれる場合がある。ドライブはまた、ロードされたデータと共に含まれた、暗号化されていない部分ナビゲーションフィールドなどを除去または処理することもできる。エラー訂正が生セクタデータに適用される。エラー訂正プロセスは、調節可能な多項式または他のパラメータを含む場合がある。コンテンツコードはまた、例えば、これらのオペレーション自体を実行することを望む場合、エラー訂正および/または検出を無効にすることもできる。復号化または他の暗号化変換もまたエラー訂正と共に含まれる場合があり、ECCの前に実行される場合があり、および/または、後で実行される場合がある。エラー訂正されていないデータ上に適用される復号化プロセスは、エラーを伝えるpropagateことを回避するように選択される場合がある。例えば、ストリーム暗号例えば、カウンタモードにおけるRC4またはAESによる復号化が、ビットエラーの訂正に先立って実行される場合がある。復号化または他の処理ステップが、ドライブ、コンテンツコード、コーデック、ドライバ、または他の任意のコンポーネントによって適用される場合がある。復号化プロセスはまた、一方向プロパティを有するように選択される場合もあるが、これは、例えば、敵対者が、記録された出力を使用して、他のデコードパラメータにより作成されていたであろう出力を計算することができるようにすることを防止するためである。例えば、ドライブはコンテンツ指定contentspecifiedのキーを使用して、160ビットまたは他のサイズのドライブによって返されないリードイン値leadinvalueのHMAC-SHAとして、各セクタのキーを計算することができる。リードイン値を知らなければ、敵対者は、既知のコンテンツ指定のキーを使用して作成された復号化された出力を、他のコンテンツ指定のキー値を使用して作成されていたであろう出力に変換することはできない。結果として、敵対者は、例えば、ハードドライブおよび悪意のあるデバイスドライバを使用してメディアをコピーするために必要とされる、またはメディアをエミュレートするために必要とされる情報を欠く。敵対者が、特定のキー値のためのデコードされたセクタ表現を格納することは可能となる一方で、コンテンツコードが、対応する出力が知られていないキーを使用するセクタを要求するときは常に、コピー/エミュレーションは失敗する。例えば、256ビットキーについて2^256など、デコードキーの総数を極度に大きくすることができるので、敵対者がすべての可能なセクタデコードを格納することは不可能である。コンテンツコードは、様々な組合せの要求を実行し、それらの一部について、ロードされた実際のデータを使用し、かつチェックすることができる。プレイヤまたは他のコンポーネントは、非対称暗号化変換をセクタデータ上で実行することができる。例えば、ブロック署名を使用して、敵対者が許可なく新しいタイトルをマスタリングすることを防止することができる。一実施形態では、公開キーは、ドライブに埋め込まれたが、メディアから得られる、証明書から抽出されるなどの可能性もある2048ビットのRSAモジュラスからなる。署名検証オペレーションの効率を高めるために、RSAモジュラスは、正確な2の累乗に近づくよう、例えば、1に等しい最上位の128ビットを有して、生成される。メディアをマスタリングする間、各ブロック例えば、セクタは最初に、セクタデータと、メディアIDのSHAハッシュ、ブロックのアドレスおよびブロックデータを使用してストリーム暗号をシードすることによって作成されたキーストリームとを排他的ORすることによって、ランダム化される。ブロックデータは次いで、256バイト2048ビットチャンクに分割され、これらのチャンクは各々、RSA秘密キーを使用してチャンク上でモジュラ指数計算modularexponentiationを実行することによって、デジタル署名される。署名付きチャンクは、SHAハッシュと共に記録される。よって、このブロックは20バイト分拡大されるブロックが2048バイトセクタである場合、1未満。ストリーム暗号が効果的にランダム化するならば、この確率は無視することができるほど小さく約2^-128、モジュラ指数計算入力は公開モジュラスより大きくなる。結果として、この場合には特別な処理は必要ではない。対応する検証およびデコードプロセスは、データブロック例えば、セクタがメディアから読み取られ、デコードされるときに実行される。このプロセスには、a256バイトチャンクおよびSHAハッシュを読み取ること、b公開モジュラスおよび公開指数例えば、3を使用して、モジュラ指数計算オペレーションを各チャンク上で実行すること、c例えば、チャンクと排他的ORされるキーストリームを計算するために含まれた、ロードされたSHAハッシュ値を使用することによって、ランダム化プロセスをリバースすること、dメディアID、ブロックアドレス、およびブロックデータをハッシュすることによって、ならびに、その結果と、ロードされたハッシュ値とを比較することによって、デコードされたデータの完全性integrityを検証すること、および、eこれらのハッシュが合致する場合、デコードされたデータブロックを返し、これらのハッシュが合致しない場合、エラーが返されることが含まれる。パフォーマンスが問題である場合、検証を確率的に例えば、ランダムに選択されたセクタ上で、および/または、より重要なデータを含む領域上でのみ、実行することができる。記録可能メディアに書き込むまたは、複製のためにマスタを作成するとき、記録デバイスは、暗号化一方向関数SHA、HMAC-MD5、AESを使用して構築された一方向関数などを使用して、それが変換する値を受信することができ、メディア上の特別な位置に書き込む下記参照。このように、敵対者は正しい入力例えば、ハッシュプレイメージを知るようにならないので、正当な記録機器を使用してメディアをコピーすることはできない。他の認証値デジタル署名などもまた格納される場合がある。セキュリティ値は、メディアの任意の部分またはすべてに適用可能である場合がある。メディアセキュリティ値は通常のデータとして格納される場合があり、または、直接の読み取りからの追加の保護を含む、および/または、特別にエンコードされる、特別な領域に格納される場合がある。セキュリティデータの量を比較的小さくすることができるので例えば、128ビット以下、比較的低い密度およびパフォーマンスを有するストレージ技術が使用される場合がある。例えば、光メディアのピットエンコードまたはトラック位置ウォブルにおいて、データは様々な形でエンコードされる場合があることが知られている。データはまた、通常はエラー訂正のために予約された冗長ビット内、セクタ期間におけるバリエーション内、ナビゲーションフィールド内に隠される場合もある。データはまた、異なる物理的ディスク位置の上で例えば、標準可読領域normallyreadableの内側もしくは外側で、または、異なる焦点深度でエンコードされる場合もある。メディア上のデータには、インジケータビット、ピットエンコードバリエーション、または、所定の処理またはセキュリティステップがデータに関連して実行されるべきであるかどうかを示す他のマーカーが含まれる場合がある。例えば、セクタセキュリティフラグを使用して、そのセクタに含まれるデータが公開キーと共に変換されるべきであり、および/または、最初に受信された暗号許可をドライブが有する場合にのみ、そのセクタに含まれるデータがリリースされるべきであることを、示すことができる。このような許可には、セクタコンテンツのSHAハッシュを必要とすること、メディアがマスタリングされたときに、キーが失効されなかった受信者により、成功したチャレンジ-レスポンス認証を実行すること、データのリリースを許可するデジタル署名を検証すること、セクタを正しくデコードするキーを受信することなどが含まれる場合があるが、これらに限定されるものではない。データにマークを付けて、データが暗号化された形式でのみリリースされるようにすることもできるこれは、パーソナルコンピュータ、および、信頼できないバスまたはチャネルを介してデータが移動する場合のある他のシステムにおいて、特に重要である。上記の例示的実施形態は主として、光メディアに関して説明されたが、類似の技術を、磁気メディアなどの他のメディアタイプに適用することができる。ソリッドステートメディアEEPROM/フラッシュメモリなど、および、メディア自体が計算を実行することができる他のストレージ技術では、メディアは暗号化処理自体を実行することができ、また、ドライブ、プレイヤアプリケーションなどこれらもまたインタープリタを有する場合があると通信するセキュリティインタープリタを内部に含むこともできる。メディアは、圧縮されたコンテンツ例えば、高精細度の映画では約30ギガバイトを実際に格納するために必要な不揮発性メモリの量のみを含むことのみが必要であるが、メディアは、暗号技術または他の技術を使用して、非常に大きい例えば、2^256バイト仮想またはエミュレートされたアドレス範囲を作成することができる。このアドレス範囲が作成される場合、敵対者が完全な海賊コピーを作成することはできなくなる。なぜならば、アドレス範囲全体を格納することまたは、読み取ることさえは実行不可能であり、アドレス範囲の諸部分がどのように実際に使用されるようになるかを敵対者が決定するための汎用の方法がないからである。例えば、各再生において、コンテンツコードは、異なる領域が使用されることを要求することができる。この汎用的な手法を、メインプレイヤアプリケーションがプログラマブルではないが、メディアまたは、メディアドライブ/インターフェースがプログラマブルである状況においても、使用することができる。条件付きアクセスキーストリームフォレンシック有料テレビ受信器は一般に、すべてのセキュリティクリティカルなコンポーネントsecuritycriticalcomponentをスマートカードまたは他のリムーバブルデバイスに入れるという目的をもって設計されるので、スマートカードを取り替えることによってセキュリティ障害に対処することができる。通常、取り替え可能なモジュールは、復号化キーを導出するために使用され、これらの復号化キーは、セットトップボックス内に含まれる汎用復号化回路に提供される。従来の実施態様の主な欠陥は、敵対者が出力を、許可されたデバイスから記録し、キーおよび他の任意の必要とされたデータもを無許可のデバイスに再送信することができたことである。関連した攻撃には、ビデオ自体を記録および再送信することが含まれる。このような攻撃をトレースすることは、非常に困難であるか、または不可能である可能性がある。例えば、海賊行為者が危殆化したコンピュータを使用して、キーおよびデータを無許可の視聴者に、インターネットを介して匿名でリレーすることができた。UDPパケットにおいて、偽造されたfromアドレスでキーを送信し、トレーシングを大変困難にすることができる。システムオペレータは、海賊サービスに登録することによって、無許可のデータへのアクセスを受信することができるが、攻撃のソースをトレースする方法はない。他の状況では、データのトレーシングは実用的である場合があるが、ソースは、法執行機関が権限を有さない区域に位置する場合がある。現在のシステムでは、ビデオを復号化するために使用される一連の復号化キーならびに、復号化されたビデオ自体は、各サブスクライバについて同一である。これらのキーは例えば、条件付きアクセススマートカードからビデオデコーダチップへ移送され、デバイス固有のキーにより暗号化されるが、実際のビデオ復号化キーはなおグローバルである。結果として、あるセットトップボックスを危殆化またはリバースエンジニアリングしそれらの設計はしばしば完全に標準化されるので、これは必ずしも大変困難ではない、正当にサブスクライブされたアカウントを有する敵対者は、一連のビデオ復号化キーを決定および再送信することができる。この攻撃は通常、実際にセキュリティモジュール自体を危殆化させることを必要とはせず、セキュリティモジュールの置換が効果的な対策とならないようにする。このような攻撃に対処するため、システムオペレータは、敵対者によって、再送信されているキーおよび他のデータを抽出するために使用されている特定のアカウント、および、したがってセキュリティモジュールを識別することが必要である。このアカウントが識別された後、システムオペレータは、このアカウント、および、任意の関連アカウント例えば、同じ電話回線に接続されたデバイスからのアカウント、同じ請求先住所を共有するアカウント、物理的位置が近いアカウント、同じクレジットカードまたは他の支払い手段により支払われたアカウントなどを取り消すことができる例えば、敵対者のセキュリティモジュールによって利用することができる形態でアクセスのために必要とされたキーを送信することをやめることによる、敵対者のセキュリティモジュールを一時的または永続的に使用できなくする暗号化されたメッセージを無線でovertheair送信することによる、など。この識別を実施するため、システムのオペレータは各セキュリティモジュールによって出力される実際の一連の復号化パラメータ内にフォレンシックマーキング情報を組み込む。一実施形態では、条件付きアクセスモジュールは、従来の復号化キーを、ビデオデコードに先立ってセットトップボックスによって復号化された平文に適用されるべきバイト代替bytesubstitutionと共に出力する。ビデオシーケンスを作成するとき、システムオペレータは、バイト置換bytereplacementが、受け入れ可能なバリエーションポリモーフpolymorphを作成することができる、ビデオストリーム内の複数の位置を識別する。加えて、有効なすなわち、快適に視聴できるビデオストリームを形成するためにバイト置換が必須であるように、ビデオストリーム内の一部のバイトは破損される。正当にサブスクライブされた条件付きアクセスカードは、視聴可能なストリームを再作成するために必須のバイト代替の十分なセットを含む、一意の組合せのバイト代替を出力するように構成される。各モジュールは一意の組合せの代替を出力し、単一のデバイスに返された、再送信された出力と照合することを可能にすることができる。代替実施形態では必ずしもバイト代替を使用する必要はなく、任意の方法の変換を条件付きアクセスモジュールによって指定することができる。これらの変換には、加算、排他的OR、ブロック移動、削除、挿入、ビット反転、および、より複雑なオペレーションインタープリタまたはマイクロプロセッサ、デコードデバイスによって実行されるべき実際のコードを指定することを含むが含まれるが、これらに限定されるものではない。上述の方法はセットトップボックスにおけるサポートを必要とし、したがって、多数のレガシーシステムと共に使用することはできない。レガシー環境では、2つの異なるキーイング状態keyingstateの各々において解釈されるときに、有効であるストリームをコンテンツプロバイダが構築するassemble、異なる実施形態が必要とされる場合がある。コンテンツプロバイダは、2つの異なるキーまたはキーイング状態の各々により復号化されるとき、受け入れられるようにデコードするビデオストリーム部分を構築する。既存の衛星またはケーブルテレビシステムは通常、ビデオの部分10秒セグメントなどの各々を異なるキーにより暗号化する。本発明では、1つまたは複数のセグメントが作成され、これらのセグメントを複数のキーによりデコードすることができる。一実施形態では、ビデオ圧縮プロセスは、圧縮されたビデオデータの初期ブロックに対する複数の受け入れ可能な修正を識別するように修正される。次に、このブロックは第1のキーにより暗号化され、第1のキーにより復号化するセットトップボックスへの送信のために適切となる暗号文が作成される。次に、このブロックは第2のキーにより暗号化される。結果として生じる平文もまた、第2のキーによりキーが付けられたデバイス上で受け入れ可能な出力にデコードするようになる場合、このブロックは保存され、このプロセスは後続の各データブロックごとに繰り返される。第2のキーによる復号化が、暗号文は、第2のキーによりキーが付けられたデバイス上での受け入れ可能なストリームの形成の影響を受けにくいことを示す場合、開始ブロックのための新しい値が試される。十分な試行により、システムオペレータは、2つのまたは場合によってはより多くのキーの各々により復号化することができるビデオストリームを徐々に構築することができるようになる。各キーを使用することで得られるビデオの品質は、費やされた計算の試行、ブロック候補を選択するために使用された技術、使用されたビデオ圧縮技術、参照ビデオ、および他の要素によって決まる。より計算効率の高いエンコード方法もまた可能である。例えば、大部分のビデオ圧縮スキームMPEG-2を含むにおいては、フィールドコメントフィールドなどを使用して、各キーを使用して暗号化されるデータ領域を交互配置するinterleaveことができる。この技術は通常、ビデオデータのサイズを増大させるが、計算効率を高くすることができ、出力品質を低下させない。例示的ビデオストリームは、従来のようにエンコードされたデータ例えば、単一のキーにより暗号化されるか、または暗号化されないデジタルビデオおよび/またはオーディオが、キー変化が期待される位置まで移動することで開始する。キー変化信号が次いでエンコードされる。a第1の復号化キーを使用して、圧縮されたビデオストリームの次の8バイトのための適切な値へ復号化するように、および、b第2の復号化キーを使用して、例えば、MPEGコメントを開始することによって後続のバイトを無視するよう圧縮解除デバイスに命令するか、またはそうでない場合は、後続のバイトに、圧縮解除された出力に対して比較的わずかな影響しか及ぼさないようにさせる、ビットシーケンスに復号化するように、キー変化後の第1の暗号文ブロックは選択される。これらのプロパティを有するブロックを発見するため、圧縮デバイスまたはプロセスは例えば、最初のキーを使用して復号化する際の所望の平文をもって開始し、次いで、第2のキーによっても適切な結果を出すキーのペアが発見されるまで、第1および/または第2のキーのためのランダムな値を試す。a暗号文が、第1のキーにより復号化された、圧縮されたビデオを生成するように、および、b第2のキーにより復号化されるときに暗号文が無視されるまたは、比較的少ない試行で処理されるように、ストリームの後続の部分は生成される。ビデオデータを第1のキーにより暗号化することによって、および、必要な場合結果として生じるデータを第2のキーにより復号化して、この結果が適切である例えば、時期を早めてMPEGコメントを終了させないことを検証することによって、このストリームを準備することができる。平文にわずかな調整を施し、かつ、不適切な平文が生じる任意の状況例えば、時期を早めてデータを無視することを終了するようになるか、または、不適切な長さを伝送するようになるか、またはそうでない場合は、不正なストリームを作成するようになるか、または、ストリームの不快な割り込みを引き起こすようになるなどを改善することを繰り返し行うことが、必要である場合がある。最終的にMPEGコメントの終了が近づきつつあるとき、第1のキーにより暗号化されているビデオブロックがほとんど完了するときなど、暗号文ストリームは、第1のキーにより復号化されるときに、圧縮解除プロセスにデータの無視を開始させる、データを含むことができる。この時点で、またはその後間もなく、第2のキーによるデータ無視状態は終了し、第2のキーにより復号化されるときに有効な圧縮されたビデオを生成するが、第1のキーにより復号化されるときには無視される暗号文をもって、ストリームは継続する。キーの一方により復号化するときに圧縮されたビデオを生成し、他方により復号化するときにコメントデータを生じる、データのセグメントを互い違いにしながら、ストリームは継続する。最終的に、例えば、ストリーム内に存在するキー変化通知のためにキー変化が引き起こされ、通常のビデオに戻るか、または、新しいキーのペアにより復号化することができるビデオの新しいセグメントを開始する。敵対者が、キーシーケンスの再送信のみを行っている場合、これは、2つの復号化結果が、圧縮解除されるときに同じビデオを生成する場合、受け入れ可能である場合がある。しかし、敵対者が、圧縮解除されたビデオを再送信中である場合、キー値の各々により圧縮解除することによって作成されたビデオシーケンスは異なるべきである。代替実施形態は、3つ以上のキーにより正しく復号化することができるか、または、複数の暗号化アルゴリズムを使用して同じかまたは異なるキー値によりデコードすることができる、データを含むことができることに留意されたい。サポートされる復号化アルゴリズムの例には、DES、AES、トリプルDES、DVBブロック暗号、IDEA、いずれかのモードCBC、ECBなどにおけるいずれかの他のブロック暗号、RC4、SEAL、いずれかの他のストリーム暗号などが含まれる場合があるが、これらに限定されるものではない。暗号化をセットトップボックス上で無効にすることができる実施形態では、暗号化無効状態をキーイング状態として使用することができる例えば、送信されたデータを、送信された形式において有効なビデオとしてうまく解釈することができる状態、および、適切なキーにより復号化されるときも。システムオペレータは、圧縮されたビデオシーケンスまたはシーケンス内で使用可能な部分有用な暗号文ブロックおよび対応するキーなどを事前計算することができる。ストリームをリアルタイムで、または前もって構築することができる。例えば、共通のシーケンスのためのビデオ全黒表示などを、事前計算し、挿入することができる。キーチェックがデコードデバイスによって実行される場合、システムオペレータは、同じキーチェックを同時に通過することができる複数のキーを探し出すための検索を実行する必要のある場合がある。バースディパラドックスbirthdayparadoxを利用する衝突検索技術collisionsearchingtechniqueを使用して、このような検索を簡素化することができる。ビデオストリームのために必要とされる帯域幅は通常、上述のようにエンコードされたビデオセグメントでは増大するが、トレースされる必要のある海賊攻撃が進行中であると思われる状況に使用を制限することによって、帯域幅全体にわたる影響は最小限にすることができる。敵対者が、本発明がアクティブである状況においてビデオセグメントを識別し、削除しようと試みる場合例えば、ストリーム内で無視されたデータ量を解析することによる、類似の特性を通常のマークが付いていない領域に入れて、攻撃者を混乱させるためのレッドへリングredherringを作成することができる。未使用ビットシングルDESまたはトリプルDESキーに通常は含まれるパリティビットなどと共に暗号を使用するシステムでは、フォレンシック情報をこれらのビットに含めることができるが、敵対者がキーを再送信することに先立ってこれらのビット内の値を上書きすることができる場合、この手法の効果は制限される場合がある。デバイス上で適切なキー値を導出するために使用されるロジックは、セキュリティデバイスに内部で実装されるべきである。キー導出は、無線で例えば、暗号化された形式で、および、ビデオまたは他のコンテンツと混ぜられて受信されるソフトウェアおよび/またはルールを使用して、実行される場合がある。例えば、複数の方法で復号化することができるブロックを送信することに先立って、視聴ベースviewingbaseの所定のサブセットが各キーを有するように、システムオペレータはキーまたはキー暗号化キーを個々に、および/または、グループで送信することができる。これらのキーを使用して、各デバイス上で適切なビデオキーを復号化、またはそうでない場合は導出することができる。サブセットはランダムに選択される場合があり、および/または、地理的位置例えば、ローカルテレビチャネルを送信するためにも使用されるスポットビーム衛星信号を受信する能力、ケーブルネットワーク内の位置などに基づく、サブスクライバID、電話番号、1つまたは複数のキーの知識、デバイスタイプ、または、他の任意の特性または特性の組合せに基づくようにされる場合がある。実行可能コードはまた、キー導出/選択を支援するまたはこれらを実行するために、任意で、リアルタイムで導出される場合もある。悪意をもって再配布されたキーおよび/またはビデオのソースをトレースするための例示的実施形態に含まれる特定のステップおよびコンポーネントには、以下のいずれかまたはすべてが含まれ、これらのステップおよびコンポーネントはいかなる順序でもよい。a2つの異なるキーイング状態の各々により復号化されるときに、少なくとも2つの異なる平文を生成し、ただし、有効な圧縮されたコンテンツストリームの一部として各平文を正しくデコードすることができる、圧縮された、暗号化されたビデオの部分を作成すること、b制御データを複数の条件付きアクセスデバイスに送信することであって、ただし、前記制御データは、前記条件付きアクセスデバイスの各々に前記少なくとも2つのキーのうちの1つを出力させるように構成されること、c前記キーの1つまたは複数を含むか、または、前記キーの1つまたは複数に対応する、前記悪意のあるソースによって再送信されたキーおよび/またはビデオおよび/または他のデータを受信すること、dどのキーが、悪意をもって送信されたデータに含まれるかまたは、悪意をもって送信されたデータを作成するために使用されたかの知識を使用して、例えば、悪意のあるソースが、受信されたキーまたはビデオを導出することができるデバイスを有することを推論することにより、悪意のあるソースのセキュリティモジュールについての情報を得ること、e海賊グループについてのさらなる知識を使用して、少なくとも1つの悪意のあるデバイスが識別されるまで、上記のステップの一部または全部を繰り返すこと、および、f例えば、キルkillメッセージを送信することによって、または、将来のキーを与えないでおくことによって、前記悪意のあるデバイスを無効にすること。上記の実施例は、主としてオーディオビジュアルコンテンツのビデオ部分に関連して説明されるが、同じ技術はオーディオおよび他の種類のコンテンツにも同様に適用可能である。攻撃および対策の実施例このセクションでは、一部の例示的攻撃および対策を説明する。敵対者は、オーバーレイベースのフォレンシックマークが出力に埋め込まれないように、プレイヤのオーバーレイ機能を無効にしようと試みる場合がある。この攻撃に対する1つの対策は、コンテンツ所有者が、圧縮されたオーディオビジュアルデータストリームにマークを直接埋め込むことである。敵対者は、フォレンシックマークを除去するために、複数のデバイスからの出力を比較し、かつ結合しようと試みる場合がある。例えば、デバイスの出力が異なる位置において、敵対者は、ビデオを結合し、ビデオを削除/品質低下させ、確率論的にprobabilisticallyバリアントを選択し、最も一般的なバリアントを選択し、または、他の技術を使用して、トレースがより困難であるコピーを作成するように、試みる場合がある。共謀者の数がかなり少ないことが知られている場合、マーク復旧プロセスは、各マークを使用することによって、共謀者を識別することができ、復旧されたマークを出力することがグループのどのメンバーにもできていなかったであろう、いかなる共謀者のグループも排除する。コンテンツプロバイダはまた、フォレンシックマークを平均化および選択を困難にする多数の異なるバリアントと共に含めることもできる。目立つフォレンシックマークを使用して、悪意のある攻撃によって引き起こされた品質低下または難読化に対する強化された耐性を得ることもできる。必要な場合、後続のコンテンツは、改良されたフォレンシックマーキング技術により作成されることが必要である場合がある。コンテンツ所有者はまた多数のマークを埋め込むことができ、個々のデバイスによって埋め込まれたシーケンスと、復旧されたコピーとの間の相関を探すこともできる。敵対者は、正当なプレイヤをエミュレートしようと試みる場合がある。関連する攻撃には、悪意のあるものと思われる誤った方法で動作するよう正当なプレイヤ内のインタープリタを変更することが含まれる。この場合、正当なプレイヤとエミュレーションの間の差異これには、文書化されていないオペレーション、ネイティブコードサポート、タイミング/パフォーマンス、暗号化キーなどが含まれるが、これらに限定されないを使用して、正当な環境と悪意のある環境とを区別することができる。例えば、ネイティブコードプレイヤアップデートを、脆弱性を是正するために利用することもできる。敵対者は、コーデック、デバイスドライバ、ディスプレイ/スピーカデバイス、または、圧縮解除の直前または直後のいずれかにおいてコンテンツを受信する他のコンポーネントを危殆化させることによって、デジタルコンテンツを抽出しようと試みる場合がある。同様に、これらまたは他のコンポーネントの悪意のあるバージョンが挿入される場合がある。このような攻撃に対応するため、将来のコンテンツは、出力デバイスを認証することによって、および、危殆化されたデバイスにコンテンツを提供することを拒否することによって、対応することができる。コンテンツは、セキュリティアップグレードネイティブコードパッチなどを脆弱なデバイス、または未知のデバイスに配信することができる。フォレンシックマーキングもまた、このように危殆化されたコピーをトレースするために使用される場合があり、フォレンシックマーキングは心理的および合法的な抑止力、ならびに、失効させるための海賊行為者のデバイスを識別する方法を提供する。敵対者は、すべてのTRAPオペレーションへの入力および出力を事前記録し、悪意のあるインタープリタによりこのデータを使用しようと試みる場合がある。ネイティブコードを使用して、必要とされるストレージの総量を過剰にすること、フォレンシックマーキングを使用して危殆化をトレースすること、または、オリジナルデバイスのセキュリティをアップグレードすることなどの多数の方法によって、この攻撃を防止することができる。ソースデバイスが実際に危殆化されない例えば、それが悪意のあるコンテンツコードを実行中である場合、プレイヤ暗号化オペレーションを使用して、プレイヤが実際に、署名が付けられている、復号化されているなどのコンテンツコードを実行中であることを、確実にすることができる。悪意のある敵対者は、セキュリティチェックを回避するように意図された方法で誤って動作する、悪意のあるインタープリタを作成しようと試みる場合がある。特定の例は、悪意のあるインタープリタが、例えば、予想される計算上の中間物を検索し、これを置換することによって、コンテンツコードに無効なRSA署名を受け入れさせようと試みる場合である。このような攻撃を防止するために、プレイヤは、単にnを法として署名を3乗し、期待値に対して比較するという計算以外の計算を使用して、署名を検証することができる。例えば、コンテンツコードは初期値で乗算をし、次いで、結果が、期待値と初期値の3乗倍にしたものとが等しいことを検証することができる。署名を検証するもう1つの方法には、定数を署名に加算し、次いで、結果が正しいことを検証することが含まれる。署名検証コードを他のオペレーション対称暗号化キーの修正などと組み合わせて、結果として生じる暗号値が、署名が有効である場合にのみ正しくなるようにすることもできる。自己書き換えコード、コード難読化技術、ネイティブコード、および、他の任意の対策もまた、必要に応じて使用することができる。敵対者は、悪意のあるファームウェアをメディアインターフェース光ディスクドライブなどに挿入しようと試みる場合がある。コンテンツコードに自己チェックを実行させてそれ自体を認証させ、データがメディアから正しくロードされることを検証することによって、この攻撃を検出することができる。ネイティブコードおよび/またはインタープリタコードをドライブによって実行して、この攻撃を検出することもできる。コンテンツはまた、攻撃によって変更されるであろうデータを含むこと、および、それが変更される場合を検出することによって、この攻撃を検出することもできる。敵対者は、例えば、データを正当なメディアからではなく、ハードドライブ上のファイルからロードする、悪意のあるデバイスドライバを使用することによって、セキュリティ機能を含むメディアをエミュレートしようと試みる場合がある。ドライブが有効な暗号化キーを有することを検証することによって、この攻撃を検出し、防止することができる。敵対者が、キーを正当なドライブから抽出する方法を発見する、それにより、悪意のあるエミュレータが、正当なドライブの暗号化オペレーションをエミュレートすることができるようになる場合、追加のドライブ認証ステップドライブのためのネイティブコードの提供、タイミングチェック、非標準機能性のためのテストなどが実行される場合がある。加えて、例えば、TRAP_DeviceDiscovery、ネイティブコードなどを使用して、悪意のあるデバイスドライバを検出することができる。敵対者は、特定のタイトルのセキュリティコードにおける脆弱性を不当に活用しようと試みる場合がある。いくつかの対策が可能である可能性があるが例えば、アップデートされたセキュリティロジックを配信することによる、主な解決策は、コンテンツ作成者が、将来のコンテンツがより注意深く作成されて同じ脆弱性を有することのないことを、確実にすることである。追加の考慮事項および変形形態メディアは、制限された回数の使用例えば、いずれかの3つの音楽ビデオを見ることができる、または、アクセスの継続期間例えば、最初の視聴後3日間でアクセスが期限切れになるを可能にするように構成される場合がある。その後、ユーザは、将来のまたは無制限の再生のための許可を得るために支払いを要求される場合がある。視聴カウンタおよび/または、他のセキュリティおよび状態情報が、メディア自体の上に、および/または、プレイヤ内に、および/または、リモートサーバ上に格納される場合がある。例えば、無制限の再生を許可するデータがメディアの書き込み可能部分に配置され、それにより任意のプレイヤ上で再生できる場合がある。代替として、この許可をプレイヤの不揮発性メモリ内に格納することができ、および/または、ネットワークを介してサーバにアクセスして許可が得られるように、コンテンツコードを構成することができる。所定の条件が満たされる例えば、支払い、所定の組合せの他のタイトルの再生、パズルが解決されること、所定の時間が経過していることなどまで、メディア上のコンテンツの部分または全部にアクセスできなくすることができる。一実施例では、コンテンツコードは、購入またはアクティベートされるまで動作できない。アクティベーションプロセスはローカルで実施される場合があり、または、リモートサーバとの対話を含む場合がある。例えば、コンテンツコードはリモートサーバにアクセスし、ローカル再生デバイスをサーバに対して識別し、ユーザおよびサーバと対話して支払いを生じさせ、一部のキー、解釈可能なセキュリティコード、または、コンテンツのデコードを可能にする他のデータを受信することができる。購入が完了した後、受信されたデータを使用して、コンテンツのデコードをアクティベートする。ユーザが新しいプレイヤを購入するとき、古いプレイヤから新しいプレイヤへのプレイヤ不揮発メモリの移行を可能にするために、プロビジョンprovisionが含められる場合がある。一実施形態では、複数のデバイス間で、スマートカードまたは書き込み可能メディアなどの物理的キャリアcarrier上のデータを移動させることによって、このプロセスは実行される。代替として、この転送は、有線もしくは無線ネットワークまたは赤外線ポートなどのデジタル接続を介して実行される場合がある。最大のセキュリティのために、この転送は、信頼できるサーバデバイスを通じてなされるまたは信頼できるサーバデバイスによって仲介される場合があり、この信頼できるサーバデバイスは送信側デバイスおよび受信側デバイスと通信して、データが正しく転送されること、および、データが受信側デバイス上で使用可能になる前に送信側デバイス上で除去されるまたは無効にされることを確実にする。幅広い範囲の異なるコンテンツタイトルによって書かれたデータに対応するため、単一のサーバは、どれだけの数のタイトルが不揮発性ストレージを使用するかについて知っている場合があり、または、プレイヤは例えば、不揮発性メモリスロット自体内で識別されるような複数のサーバと対話する場合がある。送信側および受信側の両方における暗号化キーを使用して、転送のためのセキュリティを提供することができる。メディアは複数のデータエンコード方法を含む場合がある。例えば、単一の光ディスクには、高密度スタンプ付き部分、追記部分、および記録可能部分が含まれる場合がある。位置および距離測定技術を使用して、受信側デバイスが、認められない物理的位置内無許可の国内、家庭内使用専用のコンテンツを提供するホームネットワークサーバから遠すぎるなどに存在しないことを、確実にすることができる。ラウンド通信の往復時間と光速とを乗算して、デバイスまでの距離について上限を決定することができる。全地球測位システムおよび無線信号の減衰例えば、デバイスが、802.11b、ブルートゥースなどに関して範囲内である場合、または、デバイスが共通の無線/衛星信号にアクセスすることができる場合などもまた、位置および/または近接性を推定するために使用される場合がある。共通のワイヤ電話接続、家庭の電力回路などを共有するためのデバイスの能力もまた使用することができる。インターネットIPアドレスおよび電話番号もまた、位置情報を得るために使用される場合がある例えば、領域コーディングアプリケーションregioncodingapplication、局地的なスポーツブラックアウトblackout、デフォルト言語/通貨オプションの選択などのため。位置情報はフォレンシックマークに含まれる場合がある。プレイヤは、揮発性または壊れやすい不揮発性メモリストレージ領域を提供することができ、これらの領域は、挿入される次のディスクへコンテンツがデータを転送することを可能にするが、コンテンツがその直後に削除される、メモリスロットなどである。電源が落とされるときにコンテンツが消去されるかどうかは問題ではない状況において、揮発性メモリを、一時的ストレージのために使用することができる。ニューラルネットワークをフォレンシックマーク検出/解析の際に使用して、最適なセキュリティポリシなどを定義することができる。コンテンツコードは、適切な認証が存在する場合、記録可能メディアからの再生を可能にするように構成される場合がある。例えば、この機能を使用して、消費者用のメディアを記録することができる光ディスク焼付けキオスクopticaldiscburningkioskまたは他のシステムを作成して、例えば、小さい店が多大な在庫を有する必要なく、予測できない消費者の需要を満たすことができる。キオスクは、内部ストレージハードディスクなどおよびデータネットワークを含む、任意のソースまたはソースの組合せから、生コンテンツを検索することができる。記録されたデータをキオスクによって修正して任意で、キオスク内に含まれるインタープリタにおいて実行するインタープリタコードを使用して、例えば、識別フォレンシックマークを導入し、データの部分を再暗号化し、最新のセキュリティロジックをコンテンツに関連付け、消費者によって選択された複数のコンテンツ部分を結合し、ユーザ要求/プリファレンスに対応し、コンテンツを再圧縮するかまたはフォーマットを変更して、メディアまたはプレイヤデバイスの容量またはコーデック要件を満たすことなどができる。再生の記録および許可を暗号的に認証する値もまた含まれる場合がある。例えば、これを、信頼できるパーティによって発行されたデジタル署名にし、ネットワークを介してキオスクに転送し、メディア上に焼付け、再生中にコンテンツコードによって検証することができる。このデジタル署名には例えば、メディア識別子、SHA-1を使用して計算されたコンテンツのハッシュツリーのルート、キオスクの記録ドライブの識別子、発行日、および、宛先メディアのシリアルナンバが含まれる場合がある。キオスクにはまた、請求書、クレジットカード、または他の支払いを受けるためのインターフェース、ユーザ選択を受信するためのタッチスクリーンまたは他の入力デバイス、カスタマイズされたボックスインサート、メディア表面、レシートなどを印刷するための機能、新しいコンテンツデータを検索し、新しいユーザインターフェースコンポーネントおよび広告/オファーを受信し、支払いを検証および処理し、エラー状態を報告するためなどのネットワーク機能、および、データを所望の出力フォーマットに変換し、カスタマイズされたメニューを作成するためなどのオーディオ/ビデオ操作機能が含まれる場合もある。物理的メディア光ディスクなどへの書き込みにおいて高パフォーマンスを実現するため、メディア記録デバイスは複数の記録レーザを同時に使用することができる。物理的サポートバリアをメディアの周囲に配置して、遠心力による粉砕または損傷を防止することができる。ミラーまたは他の光要素を使用して、レーザビームをメディアの周りで移動させて、光メディアを物理的に回転させる必要性を低減またはなくすことができる。非レーザベースnonlaserbased記録技術が使用される場合がある例えば、インクジェットプリンタで使用されるものに類似した高解像度技術を使用して、円形の基板上にエッチング物質のマイクロ液を滴下し、次いで、基板を保護層によりコーティングすることによって、記録するなど。メディアは、再生デバイスに物理的に存在する必要はない。例えば、メディアは無線または他のネットワークを介してプレイヤデバイスと通信することができる。一実施形態では、メディアはコイルと、少なくとも1つの半導体チップとを含み、これらはa誘導コイルから電力を受け取り、b誘導コイルを使用して、プレイヤまたは他のデバイスによりデータを送受信し、c再書き込み可能部分であっても、そうでなくてもよいローカルメモリからコンテンツサポートされる場合、コンテンツコードを含むを検索し、dコンテンツコードまたは他のデバイスによる使用のために暗号化ハンドシェークを実行して、メディアの妥当性を認証するように構成される。複数のこのようなメディアが存在する可能性がある例えば、複数のメディアを含むことができるプレイヤデバイス内の自由に取り外すことができるトレイに含まれる場合、アドレッシング方法を使用して、どのメディアが所与の時間に通信中であるべきであるかの選択を可能にすることができる。コンテンツコードは、任意の方法の外部デバイスだけでなく、プレイヤデバイス内に含まれる場合のあるコンポーネントソフトウェアプログラムなどと対話することができる。例えば、スマートトイsmarttoyまたは他のデバイスは、デバイスまたはこのようなデバイスの汎用クラスをサポートするコンテンツコードと対話することができる。このような対話は、任意の種類のデータ交換を含むことができ、これらのデータ交換には、コマンド例えば、おもちゃの車が動く方向、オーディオデータ例えば、デバイスが発する音、デバイスによって記録された音など、イメージ/ビデオデータ例えば、デバイスが表示するデータ、デバイス内のデジタルカメラからのデータなど、ロジック例えば、デバイスによる実行のため、イベント通知などが含まれる。一実施形態では、コンテンツコードは外部電気機器およびデバイスライト、暖房、エアコン、ホームセキュリティシステム、電気機器、ペットケア/フィーディングfeedingデバイス、ビデオレコーダなどが含まれるが、これらに限定されないと対話し、これらを制御するのに役立つ。プレイヤデバイスと、外部デバイスとの間の通信の方法には、従来のオーディオビジュアル出力を通じてプレイヤデバイスからデータを例えば、マイクロフォン、CCD、または、リモートデバイス上の他のセンサへ出力すること、および、リモートコントロール例えば、赤外線インターフェースを介してデータを受信することが含まれる場合がある。他のサポートされた通信方法には、無線および有線ネットワーキングおよびデータ変換プロトコルが含まれる可能性がある。一部のプレイヤデバイスは、すべての所望の外部対話を可能にするために必要なインターフェースを有していない場合があり、この場合、例えば、双方向データ通信および電力の物理的インターフェースを通じて、外部インターフェースモジュールが直接接続される場合がある。外部デバイスはまた、プレイヤデバイスに配信されるコードインタープリタコードを含むを格納するための不揮発性メモリまたは他のストレージを備え、例えば、このような外部デバイスによって提供された機能を利用する際にプレイヤデバイスおよび/またはコンテンツコードを支援することもできる。再生システムの態様は別々に実装される場合があり、互いに通信する場合がある。例えば、あるプラットフォームパーソナルコンピュータなど上で、発見および/またはセキュリティ評価機能を実装する部分をメインプレイヤアプリケーションから分離することが有用である場合がある。なぜならば、これらのコンポーネントは他のコンポーネントよりも頻繁なアップデートを必要とする場合があるからである。例示的実施形態では、コンテンツコードは、悪意のある、無許可の、および/または疑わしいソフトウェアの存在などの、既知のセキュリティの問題を検出するように構成されたセキュリティスキャナと通信する。スキャナはまた、システムの状態についての情報をコンテンツコードおよび/またはプレイヤアプリケーションに提供するが、この情報は、何のアプリケーションが実行されているか、何のデバイスドライバがインストールされるか、何のデバイスが接続されることが知られるか、などである。スキャナはまた、システムが安全な再生のための要件を満たすかどうかなどの現在のシステムのセキュリティ状況の評価を報告することもできる。新しい海賊行為のリスクは瞬時に発生する可能性があるので、例えば、新しいソフトウェアの弱点が公にされる場合、スキャナプログラムは好ましくは、インターネットを介してアップデートをダウンロードすること、または、コンテンツコードにより配信されたデジタル署名付きアップデートを受信することなどによって、頻繁にアップデートされる。ユーザは、アップデートサービスのために課金される場合がある例えば、ユーザに対応する支払い手段に自動的および定期的に課金すること、支払いがうまくいかなかった場合にユーザに自動的に通知すること、および/または、支払いが最終的に認められない場合、ユーザのアクセスを自動的に打ち切ることによる。スキャナはまたユーザにその結果を通知し、自動的に問題を是正し、および/または、自動的に対策またはアップデートをダウンロードすることもできる。スキャナはまた、例えば割り込みまたはイベントを登録することによって、コンテンツコードまたは他のコンポーネントに、システム/セキュリティ状況における変化を通知することもできる。コンテンツコードおよびスキャナなどの複数のコンポーネント間の通信を、暗号的に保護することができる。例えば、スキャナはその結果に、チャレンジ値と共にデジタル署名して、リプレイ攻撃を防止することができる。スキャナは、アンチウィルススキャナまたは他の脆弱性スキャナvulnerabilityscannerと統合される場合があるが、その機能性は従来のウィルス検出器とは異なり、単にコンピュータの所有者またはオペレータの利益を保護することとは対照的に、このスキャナは、コンテンツ所有者によって使用可能であるマシンの状態についてのアテステーションとして、その結果の暗号化認証を提供する。コンピュータを検索して無許可の例えば、海賊行為を受けたコンテンツを検出するように、自動化されたプログラムを構成することもできる。このようなコンテンツが発見される場合、プログラムは、権利を侵害していると考えられるマテリアルをユーザに通知することができる。プログラムはまたコンテンツコードまたは他のセキュリティコンポーネントと対話、およびアテステーションをこれらに提供して、例えば、海賊行為を受けたマテリアルがないと思われるデバイス上でコンテンツの再生を許可することもできる。マテリアルが許可されるかどうかを判断するため、スキャナはライセンスファイル、デジタル署名、既知のファイルハッシュなどを探すことができる。本発明の要素セキュリティ機能および非セキュリティ機能を含むは、以下に限定されるものではないが、非プログラマブルコンテンツ配布システム、インタープリタまたは仮想マシンの代わりにネイティブコードを使用するコンテンツ保護システムと共に、いずれかのソフトウェアアプリケーションまたはデバイスの一部として、コードがインタープリタ/仮想マシンを使用して処理されるのではなく常にネイティブで実行されるプログラマブルシステム上で、使用される場合があり、他のシステムビデオゲームコンソールコピー保護およびセキュリティシステムを含むにおいて使用される場合がある。例えば、個々の態様を、以下に限定はされないが、コンピュータセキュリティアプリケーション、ネットワークセキュリティアプリケーション、非プログラマブルなアンチパイラシシステム、フロードスクリーニングfraudscreeningシステム、電子メールフィルタリングなどのために使用することができる。本発明は、デジタルデータ放送システム以下に限定されないが、すべての種類のテレビ放送、衛星送信、ケーブルネットワークを介した通信、インターネットマルチキャストなどが含まれると統合される場合がある。放送信号は、その信号または他のコンテンツ内の伝送されたコンテンツと共に使用するために、コードセキュリティ関連情報および対策を含むを伝送することができる。放送信号はまた、他のコンテンツタイトルによって使用可能なコンテンツおよび/または他のデータを伝送することもできる。セキュリティ機能はまた、テレビ信号を保護するために使用された従来の条件付きアクセスカードおよびシステムと統合される、および、これらと通信する場合もある。本発明の複数のコンポーネントが対話するとき、これらのコンポーネントは暗号技術を使用して、それらの通信を保護することができる。このようなセキュリティ機能には、対称暗号化および/またはメッセージ認証コードまたは他のチェックをデータ上で使用することが含まれる場合がある。このような通信を保護するために使用される対称キーを、公開キー暗号技術デジタル署名/証明書、指数キー合意、公開キー暗号化/復号化、チャレンジ-レスポンスプロトコルなどを含むを使用してネゴシエートすることができ、または、非対称暗号技術をデータに直接適用することができる。例えば、失効リストをチェックすること、リモートサーバと対話することなどにより、対称および非対称キーの失効状況を実施することができる。対称暗号化プロトコルを使用して、キーをネゴシエートすることもできる放送暗号化技術を使用することを含むが、これに限定はされない。使用されるセキュリティ手段は、すべての通信に対して同じである必要はない。例えば、制御メッセージ、セキュリティ関連パラメータ、キー、および/または、MPEGIフレームは暗号化される可能性があるが、他の通信は暗号化されない可能性がある。ハンドシェークを保護するために使用されるキー各キーまたはキーのセットに関係付けられた、1つまたは複数の関連証明書を含むを、コンテンツコードを使用して、および/または、デバイスによって直接検証することができる。コンポーネントの通信が暗号的に保護するために適切である可能性のある場合、そのコンポーネントの例には、以下に限定されるものではないが、光ディスクドライブ、他のメディアインターフェース、メディアインターフェースデバイスドライバ、プレイヤアプリケーション、コンテンツコード実行スレッド例えば、同時に実行されている異なるコンテンツタイトルから、または、同じコンテンツタイトルに属する別のスレッドから、オペレーティングシステム、ビデオデバイスドライバ、ビデオプロセッサまたはビデオカードなど、オーディオデバイスドライバ、オーディオプロセッサ、任意の方法の外部デバイスローカルで接続されるか、ネットワークを介してアクセスされるか、バスを介してアクセスされるかなどにかかわらず、他のアプリケーションセキュリティスキャナ、オーディオミキサ、ビデオイフェクトプロセッサvideoeffectprocessorなど、コーデック、およびセキュリティモジュールが含まれる。1つまたは複数の証明書を使用して認証されるキーを使用して、デジタル署名を作成することもでき、デジタル署名と他のセキュリティ値とを組み合せることができる。複数のバージョンの署名を提供することができる例えば、異なるキー/署名者、キーサイズ、アルゴリズムなどにより作成される。実施例は、限定を課すものとして解釈されるべきではない。簡潔にするため、特に、アイテムが類似のリストに含まれる状況では、リストは必ずしも完全に列挙されているとは限らない。~を含むという語は、~を含むが、これに限定されないということを意味する。同様に、例えばは、説明されているものの一般性を限定しない、例示的な例を示す。同様に、などは、追加の可能性があることを意味し、リストは、必ずしもすべての知られている可能性を列挙するものと解釈されるべきではない。例示的実施形態では、コンテンツを特定のプレイヤに合わせてカスタマイズすることができる。この場合、コンテンツは、単一のプレイヤまたは少数のプレイヤ上でのみ再生可能であるが、受信側デバイス上での再生のために必要とされないコードは、送信される必要はない。したがって、情報をユーザに送信することが困難であるか、高価であるか、または遅いとき、例えば、ストレージスペースが制限される場合、または、コンテンツが低速ネットワーク接続を介して送信されなければならない場合、この手法は特に有用である。しかし、コンテンツはなお、プレイヤに問い合わせて、再生環境が適切に安全であることを検証することができる。再生が割り込まれない、またはゆがめられないことを確実にするため、プレイヤのインタープリタのための特定の最低限のパフォーマンス標準を必要とすることが有用である可能性がある。例示的実施形態では、コンテンツをあるデバイスから別のデバイスへ交換できるように、システムおよび方法を構成することができる。このような交換の特定のセキュリティ特性は、信頼できる例えば、パブリッシャにより運営されるサーバとのオンライン通信が利用可能であるかどうかなどの要素によって決まる。コンテンツが転送される形式は、コンテンツによって実装されたセキュリティポリシ、および、デバイスのハードウェア機能によって決まる。例えば、両方のデバイスが安全なインタープリタを含む一実施形態では、送信側デバイスは生の暗号化されたコンテンツオリジナルメディア上に格納されるか、または、別のキーにより暗号化され、任意でウォータマークが含められるを、再生を制御するためのコードと共に送信する。送信側デバイスによって、受信側デバイスに合わせて再生制御コードをカスタマイズすることができる。別の場合では、送信側デバイスは、出力ポートおよび送信先デバイスのセキュリティ特性が受け入れ可能であることを検証し、共有キーについて送信先デバイスとネゴシエートし、コンテンツを復号化およびウォータマーキングし、コンテンツを共有キーにより再暗号化し、再暗号化されたコンテンツを送信先に送信することができる。十分な不揮発性ストレージを有するプレイヤを使用して、インタープリタから呼び出されるアップデート可能なコードを格納することができる。例えば、常に特定のパブリッシャ用の最新セキュリティコードを格納するように、プレイヤを構成することができる。この場合、より新しいバージョンのセキュリティコードが見つかる場合、例えば、新しいコードにおけるデジタル署名を検証した後古いバージョンはアップデートされる。このように、より古いコンテンツは、新しいコンテンツ上に含まれるセキュリティアップデートから利点を得ることができる。例えば、前述の安全なメモリ方法を使用して、この手法を実施することができる。もう1つの実施形態では、現在の日付/時間をプレイヤから取得し、最新の既知のセキュリティアップグレードの日付/時間と比較することによって、コンテンツは、プレイヤが現在のセキュリティアップデートを含むことを要求することができる。このように、コンテンツは、プレイヤが合理的に最新のセキュリティアップグレードを有することを確実にすることができる。一般に、コンテンツ保護システムは、正当なユーザによる正当なアクションにおいていかなる可視的な役割を果たすことも回避すべきである。それにもかかわらず、エラーの報告または情報の提供のためなど、一部のユーザインターフェース要素は必要である。コンテンツが複数のサポートされた出力品質から選択することができる例えば、プレイヤが不十分なセキュリティを提供する場合はレガシー品質、セキュリティが十分なものである場合は高品質場合では、ユーザに出力品質を通知するためにインジケータが有用である可能性がある。例えば、一実施形態では、コンテンツの制御下にある緑色の発光ダイオードLEDは、出力が高品質であるすなわち、セキュリティが十分なものであることを示し、オレンジ色のLEDは、低減した品質すなわち、最低限のセキュリティを示し、点滅する赤色のLEDは、プレイヤが失効しているために出力が提供されないことを示すことができる。もう1つの実施形態では、既知の場合は、ユーザの言語により短く発話された、または書かれた通知が提供されて、セキュリティの状況が報告される。堅牢なおよび/または脆弱なウォータマークの有無などの他の要因に基づいて、より低い品質出力またはより高い品質を報告および/または使用するかどうかを決定することができる。必要な場合、品質低下モジュールをプレイヤと共に含めて、コンテンツがセキュリティまたは他の理由のために再生の品質を例えば、レガシーフォーマットの品質へ低下させることができるようにする。例えば、高精細度テレビ信号をNTSC解像度へ変換するため、または、高解像度マルチチャネルオーディオを2チャンネルCD品質オーディオに変換するために、品質低下モジュールを含めることができる。メディアインターフェースおよびプレイヤインタープリタが十分なパフォーマンスを提供する場合、別の復号化モジュールにおいてではなく、インタープリタにおいてバルク復号化およびウォータマーク埋め込みを処理することができる。コンテンツがそれ自体を直接復号化できるようにすることは、攻撃者が復号化モジュールに対して攻撃をしかけないようにすることを確実にすることなどの、いくつかのセキュリティの利点を提供することができる。インタープリタのパフォーマンスが十分なものである場合、コンテンツ圧縮解除をインタープリタ内でも実装して、単一のプレイヤコーデックタイプを標準化する必要性を回避することもできる。本明細書で開示した技術およびシステムのための特定のハードウェアサポートを有していないパーソナルコンピュータなどのプラットフォーム上のインタープリタを使用する実装が好ましいが、多数のインタープリタ関数を専用ハードウェア内に実装することができる。用途applicationによって、専用の実装はコストまたは電力消費量を節約する場合があるが、低減した機能を提供する場合もある。物理的メディア上のコンテンツを受信する実施形態では、実質的にいかなるメディアフォーマットも使用することができる。CDおよびDVDなどの光ディスクは高ストレージ密度を低コストで提供するが、他のストレージシステムを使用することもでき、これらのシステムには、磁気メディア、ホログラフィックメモリ、バッテリバックRAM、ROM、EEPROM、およびフラッシュメモリが含まれるが、これらに限定されるものではない。メディアのストレージ容量を、多数の異なるタイプのデータを格納するために使用することができ、これらのデータには、様々なコンピュータプラットフォームのためのデコード方法を実装する実行可能プログラム、本明細書で開示した方法を使用することにより保護されたコンテンツなどの本明細書で開示した技術およびシステムに関連する情報、ならびに、無関係の実行可能プログラム、レッドブックCDオーディオなどの保護されていないコンテンツ、他のセキュリティスキームを使用することにより保護されたコンテンツなどの本明細書で開示した技術およびシステムとは直接的に関連しないデータが含まれる。メディアは、暗号化計算を実行して、メディアが無許可のコピーではないことをプレイヤが検証することができるようにするための、耐タンパ性を有する回路を含むことができる。このような機能は、電気的インターフェースを使用するメディアについて実施するために最も単純なものであるが、光メディアでさえ暗号化機能を含むことができる。例えば、Gaumetらの米国特許第5640306号明細書に記載の非接触スマートカードなどの非接触暗号化モジュールを光ディスクに加えるか、または埋め込むことができる。暗号化メディア認証が好ましいが、他の認証メカニズムを代わりに使用することもできる。例えば、背景技術において知られる汎用メディア認証方法は、コピーが困難な位置市販の記録可能メディアまたはドライブを使用する書き込み可能ではない領域などにシリアルナンバを書き込むこと、および、オリジナルの物理的メディアの様々な特性のデジタル署名付き記述を含めることを含む。言うまでもなく、暗号化メカニズムは、既存のメディアを危殆化させるための方法を攻撃者が発見する場合でも、プレイヤに対するいずれの変更を必要とすることなく、将来のメディアを改善されたセキュリティと共に発行することができるという、利点を提供する。多数の消費者はすでにレガシーフォーマットのコンテンツに投資をしているので、これらのレガシーフォーマットをサポートするように、本明細書で開示した技術およびシステムを実装するプレイヤを構成することができる。同様に、異なるバージョンのインタープリタを特定のプレイヤによってサポートすることができる。この場合、プレイヤはメディアまたはコンテンツを解析して、使用すべき適切なセキュリティシステムを識別する必要がある。例えば、デジタルビデオプレイヤは、ディスクがCSSを使用するレガシーDVDであるかおよび、そうである場合、CSS復号化システムを選択する、または、本明細書で開示した技術およびシステムを使用するDVDであるかおよび、そうである場合、言語ベースの復号化システムをアクティベートするを検出する可能性がある。コンテンツに含まれる堅牢なウォータマークを使用して、あるセキュリティシステムにより元は保護されていたコンテンツが、その元々の保護を欠くフォーマットにコピーされているかどうかを検出することができる。例えば、コピーすることができないコンテンツはウォータマークを含み、任意の他のフォーマットのコピー例えば、保護されていないフォーマットを発見したいずれのデバイスも、そのコピーを無許可のものとして認識し、例えば再生を拒否することができることを、示すことができる。本明細書で開示した技術およびシステムを幅広い種類のコンテンツタイプと共に使用することができる。これらのタイプには、オーディオ、静止画像、ビデオ、3次元イメージ、および3次元ビデオが含まれるが、これらに限定されるものではない。本明細書で開示した技術およびシステムを、様々な物理的デバイスにおいて実施することもできる。1つのデバイスのみが、コンテンツを復号化することを担う場合、セキュリティポリシはそのデバイスにより実装されることが好ましい。しかし、出力デバイスおよびオーディオイコライザまたはミキサなどの中間処理デバイスもまた、本明細書で開示した技術およびシステムから、および/または、このような技術およびシステムによってそれらのセキュリティを検証するために使用することができる問い合わせ機能を提供することによって、利点を得ることができる。一実施形態では、ホームエンタテインメントサーバは、コンテンツをダウンロードし、格納し、かつ管理して、セキュリティが成功裡に検証されているスピーカ、ヘッドフォン、ビデオディスプレイなどの再生デバイスにコンテンツを転送する。これらのデバイスへの接続は、好ましくは、本明細書で開示した技術およびシステムならびに送信先デバイスの共同制御下で暗号化されて、転送中のコンテンツの盗難を防止する。"