(57)【要約】【課題】コンテンツプロバイダにより配布されるデジタルコンテンツへのアクセスの保護を図る。【解決手段】マイクロプロセッサ（２３５）が生成する秘密および暗号ユニット（２６０）で生成する秘密を使用して暗号化されたデジタルコンテンツをデコードする。  暗号ユニットで生成される秘密は、保護メモリ２６５に記憶されたデータを使用して作成され、マイクロプロセッサは保護メモリにはアクセスできない。【選択図】図２
2008118676.tif 000002
【特許請求の範囲】
【請求項１】
マイクロプロセッサおよび別の暗号ユニットを格納する不正操作防止デバイスを使用してコンテンツプロバイダによって配布される暗号化されたデジタルコンテンツへのアクセスを保護する方法であって、
（ａ）  前記不正操作防止デバイス内の不揮発性メモリにデバイス鍵を格納し、前記メモリ内の前記鍵を前記不正操作防止デバイス内の暗号ユニットからはアクセスできるが、前記マイクロプロセッサからはアクセスできないようにするステップと、
（ｂ）  前記コンテンツプロバイダが前記コンテンツへのアクセス特権の要求を受信したことへの応答として前記不正操作防止デバイスが前記マイクロプロセッサを使用して前記コンテンツプロバイダから送信された鍵導出メッセージを受信するステップと、
（ｃ）  前記マイクロプロセッサが前記鍵導出メッセージから得た値を前記暗号ユニットに送信するステップと、
（ｄ）  前記暗号ユニットが前記デバイス鍵を使用して前記値を変換し第１のデコードする秘密を出力するステップと、
（ｅ）  前記マイクロプロセッサが前記暗号ユニットからアクセスできない秘密を使用して第２のデコードする秘密を導出するステップと、
（ｆ）  前記第１のデコードする秘密と前記第２のデコードする秘密から導出された鍵資料を使用して前記デジタルコンテンツをデコードするステップと
を含むことを特徴とする方法。
【請求項２】
（ｉ）  前記鍵導出メッセージが前記第２のデコードする秘密を導出する前記ステップ（ｅ）への入力であり、
（ｉｉ）  前記鍵導出メッセージから導出された前記値が前記第２のデコードする秘密であり、
（ｉｉｉ）  前記デジタルコンテンツをデコードする前記ステップ（ｆ）が前記コンテンツをデコードするため前記第１のデコードする秘密を再生デバイスに転送するステップを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記ステップ（ｄ）における変換処理は、前記デバイス鍵を使用して前記マイクロプロセッサから受信した値から権利鍵を導出する処理を含み、前記権利鍵を前記メモリの中にストアし、前記デコーディングしょりにおいて使用することを特徴とする請求項１に記載の方法。
【請求項４】
集積回路上の溶断ヒューズの組合せを使用する前記暗号ユニット内に前記デバイス鍵が格納されることを特徴とする請求項１に記載の方法。
【請求項５】
前記マイクロプロセッサ、前記メモリ、および前記暗号ユニットを単一マイクロチップ内に実装することを特徴とする請求項１に記載の方法。
【請求項６】
前記ステップ（ｄ）における変換処理は、予測できないデータのランダムソースを使用するソフトウェア実装の暗号機能発生器により生成されるランダム化された暗号変換を使用することを特徴とする請求項１に記載の方法。
【請求項７】
前記ソフトウェア実装暗号機能発生器が前記ランダム化暗号変換の機械読み取り可能定義および前記ランダム化暗号変換の逆変換の機械読み取り可能定義を生成することを特徴とする請求項５に記載の方法。
【請求項８】
前記暗号変換がＦｅｉｓｔｅｌ構造を持つことを特徴とする請求項１に記載の方法。
【請求項９】
前記暗号変換が一方向ハッシュ関数であり、前記ハッシュ関数の出力を復号化鍵として使用して前記デジタルコンテンツをデコードするステップを含むことを特徴とする請求項１に記載の方法。
【請求項１０】
前記暗号変換が鍵付きブロック暗号文であることを特徴とする請求項１に記載の方法。
【請求項１１】
（ｉ）前記権利鍵は複数のデバイスにより導出可能なグループの秘密を有し、
（ｉｉ）前記デバイスはデバイスオフセットを含み、
（ｉｉｉ）前記マイクロプロセッサにより転送される値は、暗号秘密を導出することを前記コンテンツプロバイダにより許可するデバイスのサブセットを示すグループマスクを含み、
（ｉｖ）前記暗号秘密は、もし、前記デバイスオフセットが前記グループマスクにおいて示されている場合、正しく導出される
ことを特徴とする請求項１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタルコンテンツを配布するためのシステムに関するものであり、より具体的には、デジタルコンテンツを配布するためのシステムのセキュリティを改善するための方法と装置に関するものである。
【背景技術】
【０００２】
概要
貴重なコンテンツを保護するシステムには、効果的なセキュリティ対策が必要である。映画館に運ばれるフィルムなど、物理的形態で配布されるコンテンツについては、物理的セキュリティ対策で十分な場合がある。しかし残念なことに、従来の物理的セキュリティ手法は遅く、費用がかかり、煩わしく、また非物理的コンテンツ配布モデル（ｎｏｎ−ｐｈｙｓｉｃａｌ  ｃｏｎｔｅｎｔ  ｄｉｓｔｒｉｂｕｔｉｏｎ  ｍｏｄｅｌｓ）といっしょには使用できない。そのため、コンテンツプロバイダ（ｃｏｎｔｅｎｔ  ｐｒｏｖｉｄｅｒｓ）は許可されたユーザのみがデータにアクセスできるようにするため暗号ハードウェアに頼っている。
【０００３】
復号化鍵（ｄｅｃｒｙｐｔｉｏｎ  ｋｅｙ）の誤用を防ぐため、コンテンツ復号化鍵を管理するのに使用する暗号ハードウェアに不正操作防止（ｔａｍｐｅｒ−ｒｅｓｉｓｔａｎｔ）機能を備えなければならない。効果的な不正操作防止ハードウェアを構築することは、特に、断固とした攻撃の対象となるシステムについては、システムが大規模であったり、高価値の内容を保護することから非常に困難であることがわかっている。そのため、多くのシステム（大半の衛星テレビ放送システムを含む）では、スマートカードなどの交換可能なセキュリティデバイスを使用し、再生システムを丸ごと交換しなくても攻撃の後セキュリティを再度確立できるようにしている。しかしながら、前払い電話、有料放送テレビ、およびトランジットアプリケーション（ｔｒａｎｓｉｔ  ａｐｐｌｉｃａｔｉｏｎｓ）に使用されるスマートカードは、よく壊れる。たとえば、１９９８年に攻撃の対象となったドイツで使用されているプリペイドのテレホンカードの推定損失額は３８００万米ドルであった（″Ｐｉｒａｔｅｓ  Ｃａｓｈ  ｉｎ  ｏｎ  Ｗｅａｋ  Ｃｈｉｐｓ，″  Ｗｉｒｅｄ  Ｎｅｗｓ，  Ｍａｙ  ２２，  １９９８）。同様に、有線および前払い衛星テレビサービスのアクセスカード（ａｃｃｅｓｓ  ｃａｒｄ）およびシステムは、絶えず「ハッキング」の対象となっており、コストのかかるカード交換を繰り返し行う必要がある。
【０００４】
スマートカードは、暗号アルゴリズム、プロトコル、ソフトウェア、およびチップハードウェアに対するさまざまな攻撃に対抗できなければならない。しかし残念なことに、セキュリティ上の欠陥のない高度なプロトコルを実装するスマートカードの設計は、非常に困難な作業であることが判明しており、それは、設計のどの部分についても予測していない問題や誤りがありそのためカード全体のセキュリティが確実なものとならないからである。コスト面の問題もまた攻撃者にとって有利であるが、スマートカードのコストは１ドルから１５ドルの範囲であり、それでも数千ドル相当のサービスや情報を保護すると信頼できる。
【０００５】
スマートカードシステムは、攻撃者がそのセキュリティを破ることに興味を持っている場合にのみ重大な攻撃を受ける。背景技術のスマートカード設計では、攻撃者がいったんあるカードを損なう手段を開発してしまえば、攻撃者が多数のカードのセキュリティを破るための増分コストは通常、非常に小さい。その結果、スマートカードのセキュリティ対策では、通常、カードのセキュリティを破ることを難しくすることにより初期攻撃を防止することに重点を置いている。たとえば、ベンダはデバイスのリバースエンジニアリングやカードのＲＯＭのイメージ処理にかかるコストを高めようとしている。このような手法は、最初にシステムを破るのにかかるコストが高くなるため有効であるが、非常に大規模なシステムの場合には、攻撃者が飽くことのない攻撃を続け結局は成功するため効果がない。
【０００６】
前払いと後払い
背景技術の多くのシステムでは、デジタルコンテンツを暗号化形式で配布している。コンテンツを復号するのに必要な鍵またはアルゴリズムへのアクセスは、コンテンツ所有者（ｃｏｎｔｅｎｔ  ｏｗｎｅｒ）に対しアクセスポリシー（ａｃｃｅｓｓ  ｐｏｌｉｃｉｅｓ）を強制する権利管理システムによって規制される。アクセスポリシーは、それぞれ複雑さが大きく異なる。たとえば、最も単純な方式では単に支払い後に復号化鍵を渡すだけであるが、Ｇｉｎｔｅｒ  他の米国特許第５，９１５，０１９号に記載されている方式ではかなり高度で柔軟性の高い配布メカニズムを提示している。
【０００７】
このような方式で最も一般的な２つの支払い方法として、前払いと後払いがある。これらの方式はセキュリティ要件が異なるため、そのアーキテクチャと標準的要件を別々に説明する。
【０００８】
前払い方式では、ユーザはコンテンツプロバイダから事前許可を得る。通常の前払いシステムでは、ユーザは支払いを済ませた後（または支払う約束をしてから）、購入したコンテンツにアクセスするためのコンテンツ復号化鍵を受け取る。
【０００９】
前払いシステムは、さまざまな攻撃に抵抗できなければならない。ある種の攻撃では、暗号化（またはコンテンツの無許可使用を防止するためのその他の保護メカニズム）を直接破る。別の攻撃では、復号化された後にデジタルコンテンツを捕捉し再配布する。また他の攻撃では、コンテンツ復号化鍵の無許可再配布を行う。さらにまた他の攻撃では、アナログ形式のコンテンツを（たとえば、ユーザに見せるときに）捕捉する。
【００１０】
効果的に防止できる攻撃もあれば、コンテンツ配布者に財務面の重大な脅威とならない攻撃もある。強力な暗号化アルゴリズム（三重ＤＥＳなどの）も、正しい復号化鍵を持たない攻撃者を阻止する信頼性の高い機能を持つ。復号化されたコンテンツに対する攻撃は、コンテンツの価値が時間の経過とともに減少する場合や、再記録プロセスによりコンテンツの品質が著しく低下する場合にはあまり重大なものではない。電子透かし手法も、いくつかのコンテンツ記録攻撃の防止、検出、または追跡を実行できる。復号化鍵のコピーを伴う攻撃は、重大であり、防止の難しいことが実証されている。通常、異なる暗号文を各潜在的ユーザに送信するのは不可能であったり、コストがかかりすぎるため、攻撃者は復号化鍵を１回だけ購入し、それから無許可当事者に再配布することがある。
【００１１】
背景技術で知られているシステムでは、コンテンツ復号化鍵をユーザの再生デバイス（またはその一部）に接続されている不正操作防止暗号ユニットに暗号化形式で配布する。長期的な値を持つ復号化鍵は暗号化されていない形式で公開されることはないため、不正操作防止モジュールが破れないものであれば、多くの攻撃者を抑止できる。
【００１２】
暗号ユニットを実装するために使用されるスマートカードおよびその他の不正操作防止暗号ハードウェアは多くの場合、性能も帯域幅も制限されているため、暗号ユニットを使って主コンテンツ復号化鍵から短命の副鍵を生成することが多い。これらの副鍵を主再生デバイスなどのシステムのあまりセキュリティが高くない部分に送信し、これを使用して、コンテンツ自体の復号化を行う。
【００１３】
したがってシステムのセキュリティは、暗号ユニットのセキュリティに左右される。暗号ユニットが損なわれていると、攻撃者は復号化鍵とアルゴリズムを判別し、それを使って（たとえば、許可された暗号ユニットおよび／または再生デバイス全体をエミュレートすることにより）許可なくコンテンツにアクセスすることができる。
【００１４】
後払い方式では、ユーザは、コンテンツプロバイダに通知せずに、または事前に許可を得ずに、ある種のコンテンツにアクセスするかどうかを決定できる。その代わりに、コンテンツプロバイダは、後から、ユーザの使用度を監査し、請求する適切な料金を決定する。背景技術のある種のシステムでは、後払いのことをペイパービュー方式と呼んでいる。
【００１５】
後払い方式は、前払いシステムに対する上述の攻撃を受けやすいだけでなく、他のさまざまな攻撃にも脆弱である。たとえば、ユーザの購入監査記録は、コンテンツプロバイダがそれを取り出すまで保存しておく必要がある。記録が修正されたり破壊されたりすると、コンテンツプロバイダが請求すべき正しい金額を確定することが不可能になる場合がある。そのため、監査データを保管する安全な記憶装置が暗号ユニットに必要である。
【００１６】
暗号化手法では監査データを改竄されないように保護することができるが（ただし、暗号ユニットが損なわれていない場合）、ユーザは一般に、監査プロセスを禁止することもできる。たとえば、多くの民生用システムでは、双方向通信に電話による通話が必要であり、ユーザは単に電話回線を切断するだけでこれを禁止できる。ユーザは自分の購入内容を隠すために暗号ユニットを破壊することさえできる場合が多い。その結果、ユーザに監査を許可させるための対策が一般に必要である。たとえば、しかるべき時にきちんとした監査が実行されない場合にサービスを終了したり、追加後払い（ペイパーユース方式）コンテンツへのアクセスを禁止することによりユーザにペナルティを課すことが可能である。バックエンドシステムでも、ユーザに監査不履行のペナルティやその他の料金を課すことができる。
【００１７】
後払いシステムは、コンテンツプロバイダとの生のやり取りがなくても購入が行えるため、伴うリスクが大きい。そのため、ユーザが購入する可能性のあるすべてのコンテンツを表示する暗号鍵をあらかじめ各暗号ユニットにプログラムする必要がある。その結果、単一の暗号モジュールが損なわれると、システム内のすべての後払いコンテンツも損なわれるおそれがある。
【００１８】
多くのシステムでは、前払い方式と後払い方式を組合せて使用している。前払いは、一般に、加入に基づいて販売されるコンテンツへのアクセスを規制する場合に使用される。たとえば、電子ニュースサービス、音楽チャネル、加入テレビチャネルなどへのアクセスは、一般に、前払いに基づいて販売される。プレミアムコンテンツは後払い（ペイパーユース）方式で提供されることが多く、ユーザはいつでもコンテンツを利用できるが、使用している暗号モジュールから、利用したプレミアムコンテンツの一覧をコンテンツプロバイダに定期的に送る。このタイプの後払いは、「Ｄｉｖｘ」ビデオ再生システムだけでなく、大半の有線および衛星テレビの「ペイパービュー」方式で使用される。後払いプロトコルは、監査を正しく実施させるにはペナルティが不十分な場合や、アクセスを許可する前にコンテンツプロバイダとの双方向通信を開始するコストおよび労力を相殺するにはリスクが十分に大きい場合に、極端に高い価格のペイパービュー方式コンテンツに使用できる。
【００１９】
暗号権利ユニット（ＣＲＵ）（Ｃｒｙｐｔｏｇｒａｐｈｉｃ  Ｒｉｇｈｔｓ  Ｕｎｉｔ）
コンテンツ配布システムで使用する秘密鍵およびアルゴリズムを管理し保護する暗号ユニットの設計およびアーキテクチャはさまざまなものが提案され、使用されている。鍵の保護について正規ユーザが信頼に足る場合、ソフトウェア専用方式は許容できるものであり、専用ハードウェアを構築し配布するコストおよび出費を避けられる利点がある。しかし、多くの場合、不正操作防止モジュールが必要である。
【００２０】
完全なセキュリティを実現できるアーキテクチャはない。たとえば、許可された衛星テレビ受像機（受像機の暗号権利ユニットを含む）の正確なレプリカはオリジナルと同じ信号を表示できる。そのため、セキュリティは、許可された再生デバイスのワーキングコピーまたはエミュレータの構築を攻撃者からいかに防ぐかにかかっている。
【００２１】
市販で配備されている方式では通常、不正操作防止ハードウェアモジュールを使用してコンテンツプロバイダのアクセスポリシーを強制する。図１は、暗号化されたコンテンツへのアクセスを規制するための背景技術のスマートカードを示している。システム例には、ＲＯＭ  １１５、ＥＥＰＲＯＭ  １２５、およびＲＡＭ  １２０の３種類のメモリ１１０が備えられている。それぞれのタイプのメモリは利点、欠点がある。ＲＯＭは高速でしかも安価であるが、修正ができず、高度なイメージ処理手法を使って読めることが多い。ＲＡＭは、高速であり、更新も高速に実行できるが、電力供給が途絶えると内容を喪失する。ＥＥＰＲＯＭは、電力供給が停止してもその内容を保持しているが、製造費用が比較的高く、修正に要する時間もかなりかかる。
【００２２】
ＲＯＭおよび／またはＥＥＰＲＯＭは一般に、ソフトウェアを格納し、マイクロプロセッサ１４０がこのソフトウェアを実行する。ソフトウェアは、コンテンツを復号化する際に必要なプロトコルおよび暗号鍵を実装および／または管理する命令を含む。コストやメモリ、Ｉ／Ｏ帯域幅の制限により、不正操作防止モジュール内の大量のデータを復号化するのは困難であるため、不正操作防止モジュールでは、コンテンツの個々のブロックまたはストリームのコンテンツ復号化鍵を再生システムに送り、そこで、大量データの復号化を実行する。暗号プロセッサ１５０は、オプションにより、計算に必要な時間を短縮またはプログラムコード量を減らすことにより、あるいはリバースエンジニアリングが困難な混乱したアルゴリズムを実装することにより、暗号計算を支援することができる。
【００２３】
前払いおよび後払いの両方式をサポートするために、前払い権利鍵または特権の追加、購入の記録（後払いの場合）、コンテンツ復号化鍵の導出（前払いまたは後払いのいずれかで）、および後払い監査の少なくとも４つの基本操作をＩ／Ｏインタフェース１４５上でサポートしている。
【００２４】
図１のデバイスは、潜在的にさまざまな方法で攻撃される可能性がある。攻撃者は、通常、チップの物理的イメージ処理またはイオンビームリソグラフィを使用するターゲットチップの修正などの広範な手法を用いて、デバイスからソフトウェアコードを抽出することから始める。ＲＯＭおよび／またはＥＥＰＲＯＭの抽出を実行するさまざまな手法は比較的大きな費用がかかるが、作業自体は一度実行するだけでよく、それはシステム内のすべてのユニットは通常、同じまたは類似のソフトウェアを使用しているからである。不正操作防止チップコーティング、メモリ暗号化などのいくつかの手法は、メモリ抽出攻撃を困難なものにすることができるが、このような手法は実装に費用がかかり、ソフトウェア抽出の実効のコストを引き上げるだけである。
【００２５】
攻撃者は、ソフトウェアをいったん知ると、コードのリバースエンジニアリングを行い、抽出した領域に含まれるすべての暗号アルゴリズムと鍵を生成する。これもまた、混乱または非標準ソフトウェアの使用など、ある種の手法により、このプロセスをいくぶん難しくすることができる。
【００２６】
暗号プロセッサ１５０が存在していないと、攻撃者は次いでターゲットデバイスのエミュレータを作成する場合がある。エミュレータが開発されると、多くの場合システムのプロバイダがすべてのＣＲＵを入れ換えることなくセキュリティを再度確保することは難しい。ＥＥＰＲＯＭ内のソフトウェアまたは鍵の一部分の更新ができるように正規のデバイスを構成した場合でも、エミュレータは同じ更新を簡単に受け付け、コンテンツプロバイダがどうにかして損なわれた鍵を識別し対応するアカウントへのサービス提供を停止するようにしないと動作し続ける。
【００２７】
エミュレータが不完全であり、正規のデバイスがソフトウェア更新が可能なように構成されている場合、エミュレータが正しく処理しない方法で正規デバイスを修正することが可能である。残念なことに攻撃者が行うのはエミュレータの修正だけである。たとえば、著作権侵害行為で、パーソナルコンピュータを動作させるＣＲＵエミュレータが作成され、エミュレータの動作のエラーを修正するようにエミュレータソフトウェアが更新されている。
【００２８】
コード更新機能は、諸刃の剣である、つまり攻撃者を阻止できるが、攻撃者も裏をかいて悪意のあるコードを正規のデバイスに挿入することができる。コード更新は電子署名および／またはＭＡＣ（メッセージ確認コード）で保護されているが、ハードウェア、ソフトウェア、および／または暗号法に対する攻撃によりリスクが著しく高まる。また、攻撃者が他の方法で、たとえば、ポインタエラーにつけ込んでメモリ更新をコード領域にリダイレクトするなどの方法でコードを挿入することも可能である。
【００２９】
たとえば、攻撃者がマイクロプロセッサ１４０をだまして悪意のある（つまり、攻撃者が書いた）コードを実行させることができる場合、攻撃者は第１のコードを使用してより悪意のあるコードをＥＥＰＲＯＭ  １２５またはＲＡＭ  １２０にロードすることができる。この悪意のあるコードはさらに、たとえば、非暗号化保護をバイパスし、後払い監査記録を削除し、権利鍵などの暗号鍵を追加／修正／出力する無許可機能を追加することによりデバイスをさらに修正することができる。一部の手法（鍵導出プロセスの一部としてＥＥＰＲＯＭの内容をハッシュするなど）を試みてこのような攻撃を検出しようとしたが、こうした手法はあまり効果的ではない傾向があり、賢明な攻撃者はこれを回避している。マイクロプロセッサ１４０でＲＯＭ  １１５からのコードのみを実行するようにすることも可能であるが、システム設計者は問題箇所にパッチを当てたり、バグに対処するコード更新を送信することが不可能になる。
【００３０】
背景技術のアーキテクチャを使用してすべての主要な攻撃を高い信頼性で防止することは極端に困難であるか、または不可能である。攻撃者は、マイクロプロセッサ１４０で実行されるソフトウェアをリバースエンジニアリングすると、ソフトウェアの欠陥またはその他の実装上の弱点を見つけてそこにつけ込む。するとこうした弱点によりデバイスのソフトウェアの無許可修正が可能なる場合、コンテンツプロバイダ専用の暗号権利ユニット（ＣＲＵ）および／または再生ハードウェアはシステムに攻撃にさえ使用できるようになる。「Ｅｕｒｏｐｅａｎ  Ｓｃｒａｍｂｌｉｎｇ  Ｓｙｓｔｅｍｓ  ５」（Ｊｏｈｎ  ＭｃＣｏｒｍａｃ著、Ｂａｙｌｉｎ  Ｐｕｂｌｉｃａｔｉｏｎｓ、１９９６年）という書籍の中で、既存のいくつかのシステムがどのように設計され攻撃されるか、また背景技術のアーキテクチャの効果がなぜないのかが説明されている。
【発明の開示】
【発明が解決しようとする課題】
【００３１】
背景技術のアーキテクチャを使用すると、暗号ユニットの弱点により、デバイス全体が非常に損なわれる傾向がある。知られているすべての侵略的、非侵略的ハードウェア攻撃、ソフトウェア攻撃、プロトコル攻撃、暗号攻撃、障害誘発攻撃などに対抗するデバイスを構築することは、きわめて困難であり、デバイスが配備された後も新たな攻撃が発見されることがある。そのため、多くのコンテンツプロバイダは高い著作権侵害率を被り、暗号化ユニットが破られると暗号化ユニットの交換の出費がかさむ。
【課題を解決するための手段】
【００３２】
本発明は、デジタルコンテンツを配布し保護するために使用されるシステムのセキュリティを改善することができる。本発明の一実施形態は、エンコードされたデジタルコンテンツへのアクセスを規制する不正操作防止デバイスでは、外部インタフェース、外部インタフェースを制御するためのマイクロプロセッサ、メモリ、マイクロプロセッサとメモリとの間でやり取りされるデータを暗号化により変換することによりマイクロプロセッサからメモリを保護するように構成されているマイクロプロセッサとメモリとの間に接続される暗号ユニット、および暗号ユニットからはアクセスできるが、マイクロプロセッサからはアクセスできないデバイス鍵を備える。デバイスは、暗号ユニットがメモリの内容を使用してマイクロプロセッサから受け取った少なくとも１つのデータ値を変換するように構成されており、デジタルコンテンツのデコードにはその変換の結果が必要である。
【００３３】
すべての可能な著作権侵害攻撃に強いコンテンツ配布システムを設計することは不可能であるが、本発明の主要な目的は、攻撃者にとって攻撃が利益を生むものとなる可能性を最小にすることである。システムは、すべの攻撃に対抗できる必要はなく、攻撃者は一般に合理的な振る舞いをし、利益の動機により動かされるため、非論理的な攻撃が広がることはない。たとえば、攻撃者のコストとリスクがコンテンツの正規購入のコストを超える場合、著作権侵害は重大な脅威とはならない。
【００３４】
攻撃者は、正規のサービスプロバイダと比較して利点と欠点の両方を持つ。その行為は多くの場合違法であるため、高いリスクを負う。配布コストおよび顧客購入コストは、一般に従来の（正規の）チャネルを使用できないため高くなりがちである。著作権侵害サービスの品質と信頼性も劣る傾向にある。他方、攻撃者はいくつかの大きな利点を持つ。最も重要なのは、無料でコンテンツを取得するという点である（つまり、著作権を侵害することにより）。多くの場合、コンテンツプロバイダの配布チャネル（たとえば、暗号化された光ディスク、衛星放送、インターネットサービスの販売など）、再生メカニズム（ケーブルＴＶのセットトップボックス、ＤＶＤプレーヤなど）、およびその他のインフラストラクチャの一部または全部を取り込む。最後に、著作権侵害の顧客はセキュリティ、請求などについて正規のコンテンツプロバイダから課されるやっかいな手続を避けることができる場合がある。
【００３５】
攻撃者ビジネスモデルはさまざまであるが、本発明は、コンテンツプロバイダが著作権侵害を収益のないものとすることにより効果的に排除できるという前提に基づいている。したがって、本発明の目的はコンテンツを盗む攻撃者が被るコストおよびリスクを高めることである。
【００３６】
本発明はさらに、コンテンツプロバイダがビジネスを意味のあるものにする著作権侵害防止対策に投資するだけだという前提に基づく。コンテンツプロバイダへのコンテンツ著作権侵害のコストを推定するときに、いくつかの要因を考慮する必要がある。直接の収益損失は、潜在的加入者が代わりに著作権侵害されたコンテンツを購入するときに発生する。コンテンツプロバイダがメディア、配布、再生ハードウェア、テクニカルサポートなどのコストを補助する場合、正規のユーザにも出費が増えることがある。著作権侵害が広がると、コンテンツプロバイダはプレミアムコンテンツを取得できなくなったり、失われたローヤルティの補償を行うためコンテンツ所有者に支払う必要のある金額が増える。強制および起訴のコストも著しい場合がある。支払い側ユーザは、自分が対価を支払っているものを他のユーザが無料で手に入れているのを見るとがっかりすることすらあり、サービスの認められた価値が下がる。そこで、本発明の主な目的は、コンテンツプロバイダや正規のユーザに対しコストや煩雑さを過度に増すことなくセキュリティを改善することである。
【００３７】
従来のコンテンツ保護方式では一般に、無許可アクセスのコストを最大にすることを目指しているが、復号化方式が破れてしまうとメッセージのデコードのコストを増やすのにはほとんど役立たない。攻撃を防止するほかに、本発明ではさらに、攻撃が発生した場合に、無許可ユーザの数とともに著作権侵害が増えるので、無許可デコードデバイスの普及を最小限に抑えることも目指している。そこで、本発明の目的は、デバイスが損なわれた後、複数の無許可の著作権侵害デバイスを製作するコストを最大にすることである。この目的は、攻撃者が製作される著作権侵害デバイスごとに複雑で費用のかかる物理的侵略攻撃を繰り返さざるを得ないようにすることにより一部達成される。
【発明を実施するための最良の形態】
【００３８】
以下では、当業者が本発明を実施し使用できるように説明し、また特定のアプリケーションとその要件の文脈において説明を行っている。開示されている実施形態のさまざまな修正は、当業者であればたやすく理解できるであろうし、また本明細書で定義している一般的な原理は本発明の精神と範囲を逸脱することなく他の実施形態およびアプリケーションにも適用できる。
【００３９】
定義
非対称関数（Ａｓｙｍｍｅｔｒｉｃ  Ｆｕｎｃｔｉｏｎ）：秘密鍵がないと補数演算（逆演算など）を簡単に計算できないが、秘密鍵があると簡単に計算できる計算しやすい関数。ＲＳＡ暗号システムは、非対称と考えられるが、それは公開鍵演算を反転する（つまり、秘密鍵演算を実行する）のは秘密鍵が知られている場合のみ簡単であるためである。
【００４０】
コンテンツ復号化鍵（ＣＤＫ）（Ｃｏｎｔｅｎｔ  Ｄｅｃｒｙｐｔｉｏｎ  Ｋｅｙ）：暗号化されたデジタルコンテンツを復号化するのに必要な鍵。
【００４１】
コンテンツプロバイダ（Ｃｏｎｔｅｎｔ  Ｐｒｏｖｉｄｅｒ）：コンテンツ配布システムの暗号部分を管理する実体。コンテンツプロバイダはまた、一般に、コンテンツ、請求、顧客サービスなどの配布または放送も担当する。コンテンツプロバイダの業務は、複数の企業に分割できる。
【００４２】
ＣｒｙｐｔｏＦｉｒｅｗａｌｌ（暗号ファイアーウォール）：インタフェース制御プロセッサ（ＩＣＰ）とＩＣＰが損なわれても保護メモリへのアクセス（および使用）を制御するように設計されている保護メモリとの間に置かれた専用回路。さらに、ＣｒｙｐｔｏＦｉｒｅｗａｌｌでは、保護メモリを使用してコンテンツ復号化鍵を導出する。
【００４３】
暗号権利ユニット（ＣＲＵ）（Ｃｒｙｐｔｏｇｒａｐｈｉｃ  Ｒｉｇｈｔｓ  Ｕｎｉｔ）：許可されたユーザがデジタルコンテンツへのアクセスを行えるようにする暗号演算を実行するように設計された不正操作防止ハードウェアデバイス。
【００４４】
デバイス鍵（Ｄｅｖｉｃｅ  ｋｅｙ）：特定のデバイス固有であるのが好ましいが、少数の類似のデバイス間で共有することもできる暗号鍵またはその他のセキュリティ関連パラメータ。
【００４５】
デジタルコンテンツ（Ｄｉｇｉｔａｌ  ｃｏｎｔｅｎｔ）：画像、オーディオトラック、ビデオセグメント、テキスト（書籍、雑誌、ニュース配信、株式市況など）の人間が解釈できる資料のデジタル表現。デジタルコンテンツは多くの場合、暗号化および／または圧縮され、誤り訂正符号およびその他の補助データを含むことがある。
【００４６】
インタフェース制御プロセッサ（ＩＣＰ）（Ｉｎｔｅｒｆａｃｅ  Ｃｏｎｔｒｏｌ  Ｐｒｏｃｅｓｓｏｒ）：暗号権利ユニットと再生デバイスの間の通信を処理する役割を受け持つマイクロプロセッサ。ＩＣＰはさらに一般に、ＣｒｙｐｔｏＦｉｒｅｗａｌｌと通信する役目もある。
【００４７】
ＩＳＯ  ７８１６スマートカード（ＩＳＯ  ７８１６  Ｓｍａｒｔｃａｒｄ）：ＩＳＯ規格７８１６−１および７８１６−２で指定されている少なくとも物理的寸法と接点形状に従うデバイス。スマートカードは、一般に、ＣＲＵを実装するために使用され、これにより、比較的安価なコストで妥当なレベルの不正操作防止機能を実現できる。
【００４８】
鍵導出メッセージ（ＫＤＭ）（Ｋｅｙ  Ｄｅｒｉｖａｔｉｏｎ  Ｍｅｓｓａｇｅ）：ＣＲＵがある種のデジタルコンテンツに対応する復号化鍵を導出できるようにコンテンツプロバイダが生成するメッセージ。ＫＤＭは通常、対応するコンテンツとともに送信される。
【００４９】
再生デバイス（Ｐｌａｙｂａｃｋ  Ｄｅｖｉｃｅ）：信頼できないメカニズム（ラジオ、光ディスク、デジタルオーディオテープ、ケーブル、衛星放送、インターネット接続など）を介してデジタルコンテンツを受信し、ＣＲＵを使用してコンテンツをデコードするデバイス。大量データ復号化演算は、ＣＲＵ自体が実行するか、またはＣＲＵによって生成された鍵を使用して再生デバイスによって実行できる。
【００５０】
疑似非対称関数（Ｐｓｅｕｄｏａｓｙｍｍｅｔｒｉｃ  Ｆｕｎｃｔｉｏｎ）：攻撃者が順方向変換に直接アクセスできても、逆変換を簡単には実行できないように設計されている関数（変換）。たとえば、疑似非対称暗号化関数にアクセスする攻撃者は、必ずしも、意味のあるメッセージを復号化できるわけではない。しかし、従来の非対称暗号化関数とは異なり、疑似非対称関数の非反転性は因数分解などの数学的に難しい演算を実行する困難さではなく「公開」関数の完全なリバースエンジニアリングの困難さに依存する。暗号化をサポートするだけの物理的保護鍵および／またはアルゴリズムによるブロック暗号実装は、暗号化演算への無制限アクセスだけではメッセージの復号化を行えないため、疑似非対称関数の一例である。
【００５１】
権利有効化メッセージ（ＲＥＭ）（Ｒｉｇｈｔｓ  Ｅｎａｂｌｅｍｅｎｔ  Ｍｅｓｓａｇｅ）：ＣＲＵに新規コンテンツへのアクセス権を与えるコンテンツプロバイダによって生成されたメッセージ。ＲＥＭ自体は、通常、コンテンツ自体と同じ信頼できないメカニズムを介して送信されるが、場合によっては、ＲＥＭは他のチャネル（別の電話回線やインターネット接続など）を通じて交換することができる。
【００５２】
権利鍵（Ｒｉｇｈｔｓ  Ｋｅｙ）：ＣＲＵがある種のコンテンツの復号化鍵を生成またはデコードできるようにする（暗号鍵などの）値。権利鍵は一般に、ＫＤＭを復号化し、コンテンツ復号化鍵を取得するのに必要である。
【００５３】
不正操作防止デバイス（Ｔａｍｐｅｒ−Ｒｅｓｉｓｔａｎｔ  Ｄｅｖｉｃｅ）：演算の監視および／または修正が比較的難しいハードウェアデバイス。不正操作防止デバイスの例としては、制限することなく、エポキシが充填されたＰＣＭＣＩＡカード、不正操作防止コーティングが施された回路、不正操作防止ワイヤでくるまれた回路、集積回路（その小ささゆえに不正操作防止機能を持つ）、および開放を検出するエンクロージャ内の回路などがある。
【００５４】
システムのアーキテクチャ
図２は、本発明の暗号権利ユニット（ＣＲＵ）を使用するシステム例である。コンテンツプロバイダ２００は、コンテンツを取得して、たとえば、コンテンツデータを圧縮して暗号化し、複数コンテンツストリームを多重化し、ＫＤＭやＲＥＭなどの制御メッセージを追加することにより配布の準備をする。（コンテンツ準備プロセスの詳細は、以下の「コンテンツの準備」というセクションで説明する。）
【００５５】
その後、暗号化されたコンテンツデータは、コンテンツプロバイダによって配布され（プロセス２０５）、これは許可された（たとえば、支払い）ユーザだけでなく潜在的攻撃者も受信できる。物理的媒体（光ディスクなど）、ラジオまたは衛星送信、有線ネットワーク（電話、ＡＤＳＬ、有線テレビなど）、およびコンピュータネットワーク上での配布（Ｗｅｂサイトへの発行、マルチキャストなど）を含むさまざまな配布方法を採用できる。
【００５６】
再生デバイス２１０は、一部コンテンツをデコードするために配布されているデータを受信する。図２に示されている実施例では、鍵配布メッセージ（ＫＤＭ）および権利有効化メッセージ（ＲＥＭ）はコンテンツ２０５とともに配布される。そこで再生デバイス２１０が、受信データ内の目的のコンテンツ２１５と制御メッセージ２２０を分離する。
【００５７】
例示的な実施形態では、制御メッセージ２２０は、鍵導出メッセージ（ＫＤＭ）および権利有効化メッセージ（ＲＥＭ）を含む。これらのメッセージは、再生デバイス２１０により、暗号権利ユニット（ＣＲＵ）２２５に転送される。再生デバイス２１０は、オプションにより、メッセージをＣＲＵ  ２２５に送信する前に処理またはフィルタ処理を実行することができる。
【００５８】
ＣＲＵ  ２２５は、Ｉ／Ｏインタフェース２３０を介して再生デバイス２１０と通信する役目を持つインタフェース制御プロセッサ（ＩＣＰ）２３５を備える。さらに、ＣＲＵ  ２２５はバス２４０を介してインタフェース制御プロセッサ２３５に接続されている複数の種類のメモリを備える。特に、固定データおよびコードは、ＲＯＭ  ２４５に格納され、一時データ（および場合によってはコード）はＲＡＭ  ２５０に格納され、追加コードおよび／またはデータはＥＥＰＲＯＭ  ２５５に格納され、プロセッサ２３５ではこれを修正できる。さらに、バス２４０には専用暗号処理ユニットであるＣｒｙｐｔｏＦｉｒｅｗａｌｌ  ２６０が接続され、これについては以下で詳しく説明する。ＣｒｙｐｔｏＦｉｒｅｗａｌｌ  ２６０は、保護メモリ２６５との間で読み書きされるデータを規制し、暗号法により修正する。
【００５９】
一部のコンテンツをデコードするために、再生デバイス２１０はデコードする一部のコンテンツ２１５に対応するＫＤＭであるインタフェース２３０に送信する。インタフェース制御プロセッサ２３５は、ＫＤＭを受信し、以下に説明するように、ＣｒｙｐｔｏＦｉｒｅｗａｌｌ  ２６０を使用して１つまたは複数のコンテンツ復号化鍵２６７を導出し、これを再生デバイス２１０を介してバルクデコーダ２７０に転送する。正しい鍵２６７を使用して、バルクデコーダ２７０はコンテンツ２１５を正しく復号化できる。復号化されたコンテンツ２７５が、次に、出力デバイス２８０に送られ、人間可読形式（プロセス２８５）に変換することによりユーザ２９０にコンテンツを表示する。たとえば、システムがオーディオコンテンツを再生するように設定されている場合、復号化されたコンテンツ２７５は音声のアナログまたはデジタル表現のいずれでもよく、出力デバイス２８０は増幅器とスピーカである。同様に、システムがテレビ受像機に映画を再生するように構成されている場合、バルクデコーダ２７０は復号化およびＭＰＥＧ展開を実行して、復号化されたコンテンツ２７５をＮＴＳＣ互換ビデオ信号として出力するが、出力デバイス２８０は通常のテレビ受像機でよい。
【００６０】
ＣＲＵ  ２２５からコンテンツプロバイダ２００への通信チャネルも、後払い購入を監査するために用意される。このチャネルも、ＲＥＭ、その他の使用度データ、コード更新などを送信するのに使用できる。ＣＲＵからコンテンツプロバイダへの通信は、直接２９６または（より一般的であるが）間接２９５であり、たとえば、再生デバイス２１０に通して、（たとえば）必要に応じてコンテンツプロバイダ２００との接続を確立できる。どのような通信方法（モデム、ラジオ、衛星、ケーブルなどを含むがこれらに限られるわけではない）でも採用できる。
【００６１】
ＣｒｙｐｔｏＦｉｒｅｗａｌｌの動作
ＣｒｙｐｔｏＦｉｒｅｗａｌｌは、保護メモリへのアクセスを暗号法を使用して規制する。従来のメモリ暗号化デバイス（Ｈｏｌｔｅｙの米国特許第５４４２７０４号の暗号化されたメモリデバイスなど）と異なり、ＣｒｙｐｔｏＦｉｒｅｗａｌｌは透過的に動作しないか、あるいはマイクロプロセッサによって任意の読み書き演算を実行できない。特に、ＣｒｙｐｔｏＦｉｒｅｗａｌｌでは、保護メモリ内にデータ値を格納し、同じ値を後で読み出す機能をマイクロプロセッサに付加する必要はない。従来のセキュアメモリ方式は通常、信頼できる計算デバイスであまり安全でないメモリにアクセスできるようにするために使用される。対照的に、ＣｒｙｐｔｏＦｉｒｅｗａｌｌは、インタフェース制御プロセッサは信頼できないが攻撃者はＣｒｙｐｔｏＦｉｒｅｗａｌｌの背後にあるメモリへの直接的な読み書きアクセスを行わないという反対の仮定をして設計されている。つまり、ＣｒｙｐｔｏＦｉｒｅｗａｌｌでは、攻撃者がファイアウォールを完全に破り保護メモリに無制限アクセスを行えるということがない場合に、ＣＲＵの主マイクロプロセッサが損なわれたとしても暗号権利ユニットを安全なままにできる。
【００６２】
ＣｒｙｐｔｏＦｉｒｅｗａｌｌは、コンテンツアクセス権利の追加および使用に関わる基本操作群を実装している。図３、４、５、６、および７に関して説明されている実施例では、これらの操作には、前払いによる新規権利の追加、後払いの新規権利の追加、コンテンツのアクセス、後払い購入監査記録の監査／クリア、および権利の更新がある。インタフェース制御プロセッサは、これらのコマンドのそれぞれについてＣｒｙｐｔｏＦｉｒｅｗａｌｌにデータを供給し、セキュリティに関係しない重要なタスクを支援する役割を持つ。
【００６３】
ＣｒｙｐｔｏＦｉｒｅｗａｌｌの例では、いくつかの鍵を使用しており、これらは保護メモリ２６５に格納され、個人確認の際にロードされる（以下で説明する）。一実施形態では、保護メモリはデバイス鍵（ＣＨＩＰ＿ＫＥＹ）、（たとえば）３２枚のカードで共有する少なくとも１つのグループ鍵（ＢＡＴＣＨ＿ＫＥＹ）、後払い許可鍵（ＰＯＳＴＡＵＴＨ＿ＫＥＹ）、およびいくつかの権利鍵を格納したＥＥＰＲＯＭである。デバイス鍵とグループ鍵を格納した保護メモリの一部分は、個人確認時に書き込みを行い、その後ロックして（書き込み保護して）それ以降の修正を禁止することができる。それとは別に、これらの値をＣｒｙｐｔｏＦｉｒｅｗａｌｌ内にあるあるいはそこからアクセス可能なＲＯＭに格納することができる。
【００６４】
前払い方式による新規権利の追加：図３は、前払い方式を使用して権利を追加するプロセスの実施例の概要である。ユーザがコンテンツを使用する許可を購入（または他の手段で取得）すると、再生デバイスがステップ３００で適切な権利有効化メッセージ（ＲＥＭ）を受け取る。ＲＥＭは、オプションで、インタフェース制御プロセッサによって処理および／または確認され、ＲＥＭ内の暗号化された権利鍵を見つける。インタフェース制御プロセッサはさらに、保護メモリ内の宛先アドレスも選択する。ステップ３１０で、暗号化された権利鍵およびアドレスがＣｒｙｐｔｏＦｉｒｅｗａｌｌに転送され、後の処理ステップを実行する（ラベル３２０）。ステップ３３０で、ＣｒｙｐｔｏＦｉｒｅｗａｌｌは指定したアドレスが前払いした権利の格納について有効であることを確認する。ステップ３４０で、ＣｒｙｐｔｏＦｉｒｅｗａｌｌは保護メモリからＣＨＩＰ＿ＫＥＹ（チップ固有の鍵またはデバイス鍵）を読み出す。ステップ３６０で、ＣＨＩＰ＿ＫＥＹを使用して入力される疑似非対称関数Ｆ1を使用して、暗号化された権利鍵が変換される。ステップ３７０で、ＣｒｙｐｔｏＦｉｒｅｗａｌｌは変換Ｆ1の結果（つまり、権利鍵）を保護メモリ内の確認されたアドレスに格納する。図３のプロセスは、権利鍵の削除または交換を（たとえば上書きで）行う場合にも使用できるが、鍵削除は放送システム（ケーブルまたは衛星テレビ）にとっては本質的でなく、コンテンツプロバイダは単に期限切れ鍵を使用して保護されているコンテンツの配布を停止するだけである。
【００６５】
後払い方式による新規権利の追加：後払い方式で追加された権利は、前払い権利とは異なるが、それはコンテンツプロバイダからは一切の明示的通信連絡も事前の許可も利用できないからである。  図４は、後払い方式を使用する権利追加プロセスの例示的な実施形態の概要である。ユーザが後払い方式でコンテンツへのアクセスを得たい場合、インタフェース制御プロセッサがステップ４００で、追加するコンテンツアクセス権利に対応する権利有効化メッセージを取得する。ＲＥＭには、コンテンツの識別子が含まれる。（コンテンツ識別子は単純な識別子、ランダム生成値、暗号化生成値、カウンタ、パラメータの組合せなどでよく、またコンテンツプロバイダ、ＩＣＰ、再生デバイス、ＣｒｙｐｔｏＦｉｒｅｗａｌｌなどで生成することもできる。）ステップ４１０で、コンテンツ識別子および宛先アドレスがＣｒｙｐｔｏＦｉｒｅｗａｌｌに渡され、後の処理ステップを実行する（ラベル４２０）。ステップ４３０で、ＣｒｙｐｔｏＦｉｒｅｗａｌｌはアドレスが後払いした権利の格納に有効であることを確認する。ステップ４４０で、ＣｒｙｐｔｏＦｉｒｅｗａｌｌは、指定されたアドレスに監査データを格納しても、保護メモリ内の既存の後払い購入記録が置き換えられないことを確認する。ステップ４６０で、ＣｒｙｐｔｏＦｉｒｅｗａｌｌは疑似非対称関数Ｆ2を使用して、コンテンツ識別子を変換する。（関数Ｆ2は、たとえば、後払い許可鍵ＰＯＳＴＡＵＴＨ＿ＫＥＹまたはグローバル鍵または別の後払いＫＤＭがＣＲＵのバッチに対し配布される場合は、バッチ鍵で入力できる。）ステップ４７０で、ＣｒｙｐｔｏＦｉｒｅｗａｌｌは結果（権利鍵）を保護メモリに格納する。
【００６６】
コンテンツのアクセス：ユーザが何らかのコンテンツにアクセスする前に、再生デバイスで正しいコンテンツ復号化鍵（ＣＤＫ）を取得し、コンテンツを復号化できるようにする必要がある。  図５は、ＣｒｙｐｔｏＦｉｒｅｗａｌｌの保護メモリに格納されている権利鍵を使用してＣＤＫを導出する本発明の方法例の図である。ステップ５００で、インタフェース制御プロセッサ（ＩＣＰ）は再生デバイスから鍵導出メッセージ（ＫＤＭ）を受け取る。ステップ５１０で、ＩＣＰはＫＤＭを使用して、ＣＤＫ生成器値を取得する。（ＣＤＫ生成器は、通常、ＣＤＫの暗号化形式であり、ＫＤＭの一部である。）次にＩＣＰは、適切な権利鍵に対応する保護メモリ内のＣＤＫ生成器とアドレスをＣｒｙｐｔｏＦｉｒｅｗａｌｌに送り、ステップ５２０からステップ５６０を実行する。（正しいアドレスを選択するのを手助けするために、ＩＣＰでは、不揮発性メモリを使用して権利鍵およびその保存場所を追跡することができる。ＫＤＭは、さらに、各ＣＤＫ生成器を処理するのに適している権利鍵を識別することもできる。）ステップ５２０で、ＣｒｙｐｔｏＦｉｒｅｗａｌｌはアドレスが有効であることを確認し、さらにステップ５３０で、保護メモリから対応する値（権利鍵）を取り出す。ステップ５５０で、ＣｒｙｐｔｏＦｉｒｅｗａｌｌは、ステップ５３０で保護メモリから読み出した権利鍵で入力した、疑似非対称関数Ｆ3を使用し、ＣＤＫ生成器を変換する。（他の代替実施形態では、Ｆ3はＣＤＫ生成器で入力することができ、またこれを使用して、権利鍵自体を変換することができる。また、Ｆ3は必ずしも、疑似非対称または反転可能関数である必要はない。例えば、Ｆ3はハッシュでもよい）ステップ５６０で、ＣｒｙｐｔｏＦｉｒｅｗａｌｌは変換結果をＩＣＰに返す。ステップ５７０で、ＩＣＰはオプションにより、Ｆ3の結果から最終のＣＤＫを出力するために必要な最終処理を実行する。ステップ５８０で、ＩＣＰはＣＤＫを再生デバイスに送信し、ステップ５９０で、ＣＤＫを使用してコンテンツを復号化する。
【００６７】
ポストペイメント権利の監査およびクリア：安全な監査プロセスは、コンテンツプロバイダがユーザにポストペイメント購入について請求できるようにするために必要とされる。監査を実行するため、コンテンツプロバイダは暗号化権利ユニットから、たとえば再生デバイスとのモデムまたはコンピュータネットワーク接続を介してデータを受信できなければならない。監査プロセスを、インターフェイスコントロールプロセッサによってコントロールすることができ、これはＣｒｙｐｔｏＦｉｒｅｗａｌｌと通信する。図６は、監査データを監査かつクリアするための例示的プロセスを示す。ステップ６００で、コンテンツプロバイダが監査開始要求メッセージをインターフェイスコントロールプロセッサへ送信する。（監査を開始するために使用されるプロセスは実施に固有である。たとえば、ＣｒｙｐｔｏＦｉｒｅｗａｌｌまたはＩＣＰは、別法として再生デバイスに対し、再生デバイスがコンテンツプロバイダとの接続を確立できるように監査が必要とされることを通知することができる。別の実施形態では、コンテンツプロバイダがメッセージを、それが監査を実行することを要求するＣＲＵへブロードキャストすることができる。別の実施形態では、コンテンツプロバイダが直接、ＣＲＵまたは再生デバイスとの接続を確立することができる。）例示的監査開始メッセージは、コンテンツプロバイダによって生成された予測不可能かつ／またはユニークなチャレンジ値を含む。ステップ６１０で、ＣｒｙｐｔｏＦｉｒｅｗａｌｌが、最初に監査するべきアドレスに対応するアドレス値およびチャレンジ値を受信する。ステップ６２０で、ＣｒｙｐｔｏＦｉｒｅｗａｌｌが、このアドレスが監査のために有効であることを検証する。ステップ６３０で、ＣｒｙｐｔｏＦｉｒｅｗａｌｌが、指定されたアドレスおよびデバイスキー（たとえば、ＣＨＩＰ＿ＫＥＹ）に対応する保護メモリのコンテンツを検索する。ステップ６４０で、ＣｒｙｐｔｏＦｉｒｅｗａｌｌがメモリコンテンツおよびアドレスを結合し（たとえば、これらを連結すること、あるいはメモリコンテンツの一部をアドレスで置き換えることによる）、この結果を、チャレンジ値によりＸＯＲされたＣＨＩＰ＿ＫＥＹによりキーが付けられた擬似非対称関数Ｆ4を使用して変換する。次いで、ＩＣＰがＦ4の結果を受信し、これをコンテンツプロバイダへ、再生デバイスを介して送信する。ステップ６５０で、コンテンツプロバイダが、チャレンジ値によりＸＯＲされたＣＲＵのＣＨＩＰ＿ＫＥＹによりキーが付けられたＦ4-1（Ｆ4の逆数）を使用して、メモリの指定されたアドレスにおける実際のコンテンツを決定する。Ｆ4は擬似非対称であり、ＣＨＩＰ＿ＫＥＹを使用してキーが付けられるので、コンテンツプロバイダは（かつコンテンツプロバイダのみが）Ｆ4-1を実行できるようにするべきである。攻撃または計算エラーが起こっていない限り、暗号化結果は、使用されていない（空の）ポストペイド権利スロット、またはポストペイメントベースで販売されたコンテンツのための権利キーのいずれかに対応するべきである。ステップ６６０で、コンテンツプロバイダが、監査されたスロットをクリアするかどうかを決定する。（もはやＣＲＵによって必��とされないポストペイメント購入レコードは、新しい購入のための空間を作るためにクリアされるべきである。）クリアが実行されるべきでない場合、処理がステップ６９０へ進行する。そうでない場合、ステップ６７０で、コンテンツプロバイダがＦ4-1を再度（ＣＨＩＰ＿ＫＥＹを使用してキーが付けられたもの）、最初のＦ4-1変換の結果に適用する。この結果がＣｒｙｐｔｏＦｉｒｅｗａｌｌへ、再生デバイスおよびＩＣＰを介して転送される。ステップ６７５で、再生デバイスがＦ4（ＣＨＩＰ＿ＫＥＹを使用してキーが付けられたもの）を、受信された値に適用する。ステップ６８０で、再生デバイスがこの結果を、ステップ６３０で保護メモリから読み取られた値と比較する。これらの値が合致した場合、ＣｒｙｐｔｏＦｉｒｅｗａｌｌがステップ６８５を実行し、保護メモリスロットをクリアする。ステップ６９０で、監査プロセスが、保護メモリにおいてさらに監査する必要のあるアドレスがあった場合、ステップ６１０へ戻るように繰り返す。そうでない場合、監査プロセスが終了する。監査が成功した後、コンテンツプロバイダは監査後アクションを実行し、これらは、顧客に対して購入について請求すること、およびＣＲＵにおけるプリペイドキーをリフレッシュすることなどである。監査が失敗したか、あるいは不適切な（あるいは未知の）値が保護メモリにあることを示した場合、アクションは、再生デバイス（またはＣＲＵ）へのサービスを終了すること、ユーザ対して置換のためにＣＲＵへ戻るように要求すること、ユーザに対して非準拠について課金すること、および／またはメッセージを送信してＣＲＵにそれ自体を使用不可能にさせることを含む可能性がある。図６に示す実施形態は例示的であり、代替実施形態は、たとえば、監査レコードのクリアが開始する前に監査を実行すること、危機管理技術をＣｒｙｐｔｏＦｉｒｅｗａｌｌにおいて使用して監査を要求し、それらが起こるべきであるときを決定すること、監査クリア許可が無効であった場合に監査レコードを破損すること、保護メモリにおける監査データのハッシュを塁算し、監査レコードを格納するために安全でないメモリを使用できるようにすること、保護メモリフィールドを、監査プロセス中ならびにレコードクリアプロセス中に修正することなどができる。
【００６８】
多重ターゲッティング：いくつかの環境では、異なるＲＥＭをすべてのユーザにブロードキャストすることが実行できない可能性がある。たとえば、ＲＥＭが、光ディスク上に格納されたコンテンツと共に配布されるか、無線によってブロードキャストされるか、あるいは衛星を介して送信される場合、ＲＥＭについて必要とされたデータが通常、すべてのユーザに配布される。結果として、ＲＥＭを配布するための帯域幅およびコストは、システムが大規模になるにつれて増大し、最終的に非常に高価になる可能性がある。ＲＥＭデータの量を、多数の許可されたＣＲＵが各ＲＥＭを使用できるようにすることによって、減らすことが可能である。図７は、本発明の１つの例示的多重ターゲッティング技術の図であり、権利キーを更新するためにこれをどのように使用できるかを示す。ステップ７００で、再生デバイスがＲＥＭを受信し、これは、ＣＲＵのバッチによって共有されたキーにより暗号化された権利キーｆｉｘｕｐ値、ならびにいくつかのより小さい（たとえば、３ビットの）チップ固有のｆｉｘｕｐ値を含む。たとえば、ＢＡＴＣＨ＿ＫＥＹが２５６のＣＲＵによって共有された場合、分離した３ビットのチップｆｉｘｕｐ値が、ＲＥＭを使用することを許可されたこれらの各ＣＲＵについて含まれる。ステップ７１０で、ＣｒｙｐｔｏＦｉｒｅｗａｌｌが、権利キーｆｉｘｕｐ値、更新するためのアドレス、およびこのＣＲＵ向けに指定されたチップ固有のｆｉｘｕｐ値を受信する。ステップ７２０で、ＣｒｙｐｔｏＦｉｒｅｗａｌｌが、インターフェイスコントロールプロセッサから受信されたアドレスの妥当性検査を行い、これが保護メモリにおける更新可能キーに対応することを保証する。ステップ７３０で、ＣｒｙｐｔｏＦｉｒｅｗａｌｌがＣＨＩＰ＿ＫＥＹを保護メモリから読み取る。ステップ７４０で、ＣｒｙｐｔｏＦｉｒｅｗａｌｌが、ＣＨＩＰ＿ＫＥＹによりキーが付けられた擬似非対称関数Ｆ5を使用して、権利キーｆｉｘｕｐ値を変換する。ステップ７５０で、Ｆ5の結果が短縮あるいは圧縮されて３ビットの量にされ、短縮された値が、ステップ７１０で受信された３ビットのチップ固有のｆｉｘｕｐ値と結合される。（この結合は、たとえば、２つの３ビット値を共にＸＯＲすること、これらにモジュロ８を追加することなどによって行うことができる。）チップ固有のｆｉｘｕｐ値が正しい場合、ステップ７５０の結果はコンテンツプロバイダによって選択された値に合致するが、そうでない場合、異なる値を生じることに留意されたい。チップ固有のｆｉｘｕｐ値を推測しようと試みる攻撃者が、ステップ７５０の結果を７／８（８７．５パーセント）の時間に不正確にさせる。ステップ７６０で、ステップ７５０の３ビットの結果が、ステップ７１０で受信された権利キーｆｉｘｕｐ値と結合され、これはたとえば、ステップ７５０の結果を権利キーｆｉｘｕｐ値の最初の３ビット上にＸＯＲすることによって行われる。ステップ７７０で、ＣｒｙｐｔｏＦｉｒｅｗａｌｌが保護メモリから、ステップ７１０で受信されたアドレスのデータを読み取り、ＢＡＴＣＨ＿ＫＥＹと共にＸＯＲする。（ＢＡＴＣＨ＿ＫＥＹが保護メモリに格納された場合、これもこのステップで読み取られる���）ステップ７８０で、ＣｒｙｐｔｏＦｉｒｅｗａｌｌがステップ７６０の結果を、ステップ７７０の結果によりキーが付けられた擬似非対称関数Ｆ5を使用して変換する。最後に、ステップ７９０で、この結果が保護メモリの指定されたアドレスに書き込まれる。無許可のキー更新を実行しようと試みると、大抵の時間（すなわち、ｋビットのチップ固有のｆｉｘｕｐ値では確率２-kによる）にキーが破損されるので、攻撃者は無許可のキー更新を、商業的に実行可能な攻撃を生成するために十分高い成功率で実行することはできない。別の実施形態のグループターゲッティングを、以下で図１０および図１１を参照して記載することに留意されたい。図７に示す実施形態の多数の変形形態も可能である。（たとえば）以下の「変形形態」というタイトルのセクションを参照されたい。
【００６９】
パーソナライゼーション
パーソナライゼーション中に、ＣＨＩＰ＿ＫＥＹおよびＢＡＴＣＨ＿ＫＥＹを含むキーが追加される。製造プロセスが許可した場合、製造中に、たとえばオンチップフューズにブローすることによって、これらのキーをＣｒｙｐｔｏＦｉｒｅｗａｌｌに格納することができる。これらを保護メモリに格納することもできるが、攻撃者があるＣＲＵからのキー値を別のＣＲＵへ格納できるようにすることを防止するために、配慮しなければならない。このような攻撃を防止するために使用可能な方法は、キー領域への書込みアクセスをパーソナライゼーション後に防止すること（たとえば、ライトプロテクトフューズをブローすることによる）、これらの領域へのアクセスを暗号化により規制すること、およびビットクリアまたはビット設定オペレーションを使用不可能にして、攻撃者があるキーを別のキーに変換することを防止することを含む。（有効なキーを、等しい数の設定およびクリアビットにより選択して、キーの変更にはビットの設定およびクリアが必要となるようにすることができる。）侵略的でない攻撃を使用して実行された変更が、有用な結果を生成することなくキーを破損する確率が高いとすれば、キーの修正を許可することも可能である。
【００７０】
擬似非対称関数生成
擬似非対称関数は好ましいアーキテクチャに含まれ、これは、単一のデバイスが損なわれた場合、結果を制限する助けとなることができるからである。暗号プロトコルのみ（ハードウェア不正防止性なし）では、ブロードキャストコンテンツ配布システムに対する多数の攻撃を防止することができない。これは、許可された再生システムの無許可のレプリカが信号を復号化できるからである。結果として、ハードウェア実施は、リバースエンジニアリングまたはクローニングが困難であるべきである。
【００７１】
一実施形態では、擬似非対称アルゴリズムが、ソフトウェア実施ジェネレータを使用して生成される。ジェネレータはランダム化アルゴリズムを、乱数ソースからのデータを使用して構築し、これらは真の乱数発生器、擬似乱数発生器（ストリーム暗号など）、事前計算されたランダム化入力ファイルなどである。ジェネレータはランダムデータを使用して、暗号化変換を実行するハードウェア回路を自動的に設計する。ランダムソースの目的は、回路構成およびそれが実行するファンクションが攻撃者に知られないことを保証することである。
【００７２】
図８は、本発明の擬似非対称関数ジェネレータ（ＰＡＦＧ）の一実施形態を例示する。入力メッセージが１２８ビットのシフトレジスタ８００に格納される。シフトレジスタビット１ないし１２７のコンテンツ８１０に、Ｕ1ないしＵ127というラベルが付けられる。加えて、１２８ビットの順列セレクタ（キー）Ｋも、Ｋ0ないしＫ127（８０２というラベルが付けられる）として使用可能であり、クロックサイクルカウンタＣは、Ｃ0ないしＣ15（８０４というラベルが付けられる）として使用可能である。計算回路は、一連の６４個のＮＡＮＤゲート８２０を含み、これらは入力Ｖ0ないしＶ127（８１５というラベルが付けられる）を有する。各ＮＡＮＤゲートについて、ＰＡＦＧがそのランダムソースを使用して、ランダムに１つの入力ビットをＵ1ないしＵ127から選択し、かつランダムに他の入力ビットをＣ0．．．Ｃ15、Ｋ0．．．Ｋ127、およびＵ1．．．Ｕ127の間から選択する。（この例示的実施形態における変換が順列であることを保証するため、８０５というラベルの付いた最も左のシフトレジスタビットはここでは使用されない。）
ＮＡＮＤゲート８２０の出力には、Ｗ0ないしＷ63というラベルが付けられる。これらはそれぞれＸ0ないしＸ127（８３５というラベルが付けられる）のうち１つまたは複数に接続され、そこで特定の接続の選択がＰＡＦＧによって行われる。ＸＯＲゲート８４０への残りの入力が、Ｃ0．．．Ｃ15、Ｋ0．．．Ｋ127および／またはＵ1．．．Ｕ127からランダムに選択されたビットに接続される。ＸＯＲゲート出力８５０（Ｙ0ないしＹ63というラベルが付けられる）が、ＰＡＦＧによって、Ｚ0ないしＺ127（８５５とラベルが付けられる）からランダムに選択された入力に接続される。最後のセットのＮＡＮＤゲート８６０への残りの入力が、Ｃ0．．．Ｃ15、Ｋ0．．．Ｋ127、Ｕ1．．．Ｕ127、Ｗ0．．．Ｗ63およびＹ0．．．Ｙ63の間から選択される。最後に、ＮＡＮＤゲート８６０の出力および元の１２８ビットのシフトレジスタの左側のビット８０５が共に、ＸＯＲゲート８７０によってＸＯＲされ、単一ビットの結果８８０が生成される。次いで、１２８ビットのシフトレジスタ８００が左に１つの位置だけシフトされ（すなわち、ビット１のコンテンツをビット０に、ビット２をビット１に、ビット１２７をビット１２６に、などのように格納する）、単一の結果ビット８８０がビット位置１２７に入れられる。入力ブロックを変換するため、図８に示すオペレーションが、各オペレーション後に、クロックカウンタ８０４への対応する増分または更新により繰り返し実行される。キー８０２も更新することができ、これはたとえば、これを最大長のシフトレジスタにより変換することによって行う。実行される反復の回数は実施に固有であり、パフォーマンス要件および混合関数の品質などの要素に応じて可変となる可能性がある。
【００７３】
もちろん、図８に例示した実施は実質的に簡素化されており、これは実際のハードウェア実施は数千ものゲートからなる可能性があるからである。加えて、例示的実施形態は２つのタイプのゲート（ＸＯＲおよびＮＡＮＤ）しか使用しないが、他の論理演算を追加して、あるいはその代りに使用することができる。追加の入力を計算に組み込むこともでき、あるいはいくつかの入力（カウンタＣなど）を省くことができる。
【００７４】
図８は１２８ビットから１ビットの基本変換関数を使用するが、他の実施形態は、変換のための他の構成を使用することもできる。たとえば、構築された関数は、Ｆｅｉｓｔｅｌ構造（これはバランスが取れているか、あるいはバランスが取れていない可能性がある）を有することができる。Ｆｅｉｓｔｅｌまたはシフトレジスタの規則性のない構成も使用することができる（これは、多数の相互関係のある内部中間物がある場合、計算中間物用の回路をマイクロプローブするなどの攻撃をより困難にすることができるので、有利である可能性がある）。擬似非対称関数が順列であることは通常は有利であるが、いくつかの実施形態は、厳密には順列でない関数を生成する可能性もある。図８に示す実施形態は２つの入力パラメータ（データブロックおよびキーブロック）を使用するが、代替実施形態はこれらを結合し、キーをなくし、あるいは追加のパラメータ値を含めることができる。
【００７５】
いくつかのＣｒｙｐｔｏＦｉｒｅｗａｌｌの実施形態では、多数の擬似非対称関数を使用して、あるオペレーションからの出力を、別のオペレーションを攻撃するために使用できないことを保証するので有利である。実施の規模を縮小するため、これらの関数の間の多数またはすべての論理コンポーネントを共有することが可能である。単一の変換回路は、変換セレクタが使用された場合、多数のオペレーションを提供することができる。たとえば、図８に示すＣ0．．．Ｃ15におけるカウンタの最上位８ビットに配置された３ビットの関数識別子は、８つの別々の変換オペレーションに備えることができる。
【００７６】
ＰＡＦＧの出力はいかなる形式を有することもできるが、通常は回路表現であり、これを直接、特定用途向け集積回路（ＡＳＩＣ）に組み込むことができる。たとえば、集積回路を設計するための標準の言語（ＶｅｒｉｌｏｇおよびＶＨＤＬ）を出力フォーマットとして使用することができる。追加の自動または手動による出力の修正（関数の周囲の基本構造の追加、オペレーションの最適化など）を、必要な場合に実行することができる。
【００７７】
好ましい実施形態では、ＰＡＦＧは、「順方向」関数に加えて、逆関数のための回路定義も出力する。順方向関数のハードウェア実施は、アントラステッドな関係者に、たとえばＣｒｙｐｔｏＦｉｒｅｗａｌｌにおいて配布され、逆関数は通常、コンテンツプロバイダによって安全に管理され、コンテンツ、ＲＥＭ、ＫＤＭなどを配布用に準備するために使用される。逆関数を含むデバイスがコンテンツプロバイダによって操作されるので、これらを物理的に安全な位置に格納することができる。結果として、不正防止性は必要ではなく、そのため、逆関数を（たとえば）ソフトウェアにおいて、あるいはプログラマブル集積回路（ＦＰＧＡなど）において実施することができる。
【００７８】
ＰＡＦＧを、実施に合わせて調整された出力を生成するように構成可能にすることが可能である。たとえば、出力を、異なる回路記述言語、回路サイズ、レイアウト、論理ゲート（論理セル）タイプ、および記述制限に対応するように調整することができる。たとえば、一実施形態では、ＰＡＦＧが可変サイズの回路を生成するように構成され、システム設計者が、チップのダイ上で使用可能な空間の量に対応するサイズを有する出力回路を選択できるようにする。
【００７９】
ＰＡＧＦアーキテクチャの１つの主要な利点は、それが、リバースエンジニアリングが困難である回路を生成でき、なおオープンな暗号化評価を可能にすることである。ＰＡＦＧ自体はいかなる秘密を含む必要もなく、これは、それが出力回路を、相互接続、およびランダムソースを使用して生成された他の設計パラメータを使用して構築するからである。結果として、ＰＡＦＧ設計および実施を解析し、あるいはオープンなレビューのために公開して、ＰＡＦＧが暗号化的に安全でない関数を生成するいずれかの著しい可能性があるかどうかを評価することができる。したがって、ＰＡＦＧアーキテクチャは、外部のレビューの無制限の使用を可能にし、不明瞭にされたアルゴリズムを使用するときに通常必要とされる、レビューする者に対する煩わしいセキュリティ上の予防措置を必要としない。したがって、ＰＡＦＧは、リバースエンジニアリングに対する耐性を提供し、不明瞭さによってセキュリティに依拠することもない。（もちろん、十分なランダムソースを使用しないＰＡＦＧ実施も構築することができるが、好ましくない。）
【００８０】
例示的な簡素化されたアーキテクチャ
図２ないし図７に関して記載したＣｒｙｐｔｏＦｉｒｅｗａｌｌの複雑性を、著しく減らすことができる。このセクションでは、一般的なメモリ保護およびセキュリティ機能を維持する、１つのこのような簡素化されたアーキテクチャを概説する。最初に提示する実施形態では、ＣｒｙｐｔｏＦｉｒｅｗａｌｌがプリペイド権利のみをサポートし、他のセキュリティ機能（ポストペイメント購入監査など）を（それほど安全でない）ＩＣＰによって実施させるようにしておく。欠点は、ＩＣＰを損なう攻撃者が潜在的にポストペイメント監査レコードを消去する可能性があることであるが、利点は、ＣｒｙｐｔｏＦｉｒｅｗａｌｌ実施が著しく簡素化されることである。
【００８１】
図９は、例示的ＣｒｙｐｔｏＦｉｒｅｗａｌｌのオペレーションの図であり、これはプリペイド権利を実施するが、ポストペイド権利をサポートするように容易に拡張することができる。ＣｒｙｐｔｏＦｉｒｅｗａｌｌの後ろの不揮発性保護メモリは、デバイスキー（ＣＨＩＰ＿ＫＥＹ）、ならびにプリペイド権利キーを格納するためのメモリ位置を含む。ステップ９００で、ＣｒｙｐｔｏＦｉｒｅｗａｌｌがキーアドレスをＩＣＰから受信し、このアドレスが保護メモリにおける有効なキーオフセットに対応することを確かめる。（たとえば、キーが８バイトの長さであった場合、３つの最下位アドレスビットをゼロにすることにより、ベースアドレスが誤って位置合わせされないようにする。）ステップ９１０で、ＣｒｙｐｔｏＦｉｒｅｗａｌｌが保護メモリから、指定されたアドレスに格納されたデータをロードし、結果をキーレジスタに入れる。ステップ９２０で、ＣｒｙｐｔｏＦｉｒｅｗａｌｌがデータブロックをＩＣＰから受信する。ステップ９３０で、ＣｒｙｐｔｏＦｉｒｅｗａｌｌが、ステップ９１０で読み取られたキーを、擬似非対称関数と共に使用して、ステップ９２０で得られたデータブロックを変換する。ステップ９４０で、ＣｒｙｐｔｏＦｉｒｅｗａｌｌが、ステップ９００で読み取られたアドレスが保護メモリにおけるＣＨＩＰ＿ＫＥＹの位置に対応するかどうかをテストする。そうでなかった場合、ステップ９５０で、ＣｒｙｐｔｏＦｉｒｅｗａｌｌが擬似非対称変換の結果をＩＣＰへ出力し、終了する。（ＣＨＩＰ＿ＫＥＹ以外のキー−すなわち、権利キー−を使用して生成された結果が、コンテンツ解読キーを導出するために使用され、そのため結果は格納されない。ＣＨＩＰ＿ＫＥＹにより保護された変換が、新しい権利キーを保護メモリに追加するために使用される。）そうでない場合、ステップ９６０で、ＣｒｙｐｔｏＦｉｒｅｗａｌｌが第２のアドレスをＩＣＰから読み取る。ステップ９７０で、ＣｒｙｐｔｏＦｉｒｅｗａｌｌが任意選択的に、変換の結果が、ステップ９６０で指定されたアドレスに書き込むために有効であるかどうかをテストして、攻撃者が保護メモリにおける値を不適切に修正することを防止する。このチェックは主として、更新可能メモリに格納されたＣＨＩＰ＿ＫＥＹ値を上書きすることを防止するために必要とされる。（たとえば、ＣＨＩＰ＿ＫＥＹへの書込みを可能とする前に、ＣｒｙｐｔｏＦｉｒｅｗａｌｌは、擬似非対称変換の結果が事前定義された特性−たとえば、その最初の５６ビットが「１０」に等しく２８回繰り返すという特性を有していることを検証することができる。）別法として、あるいは加えて、ＣｒｙｐｔｏＦｉｒｅｗａｌｌは、宛先アドレス値が適切である（たとえば、ＣＨＩＰ＿ＫＥＹをポイントしていない）ことを検証するべきである。ステップ９７０で、ＣｒｙｐｔｏＦｉｒｅｗａｌｌが、この書込みが許可されると決定した場合、ステップ９８０で、これが書き込みを実行する。
【００８２】
図９の実施形態は、大変簡素であるという利点を有しており、よって、相対的に実施およびテストが容易であるが、いくつかのセキュリティ作業（特に、ポストペイド購入の追跡）をＩＣＰに付託する。結果として、ＩＣＰを損なう攻撃者は、ポストペイメント監査を不正に変更する可能性がある。上記のように、このような攻撃の危険性を、ポストペイドコンテンツにアクセスするためにプリペイド権利キーの存在を必要とすることによって軽減することができる。このプリペイド権利キーを、オンライン監査がうまく完了したときに更新することができ、それにより、最近監査されていないデバイスがポストペイドコンテンツにアクセスすることを防止する。（「ハッキングされた」ＣＲＵを使用して監査を実行することは相対的に危険であり、特に、違法の活動を示唆する監査を、インターネットＩＰアドレス、呼び出し側ＩＤ／ＡＮＩなどを介して特定のユーザまで辿って追跡できる場合、そうである。結果として、実際の、かつ知覚された危険性が、ポストペイメント監査データへの攻撃が重大な侵害の脅威を提示しないほどに十分高くなる可能性がある。）
【００８３】
適度に複雑性を追加することにより、図９のアーキテクチャを、ポストペイメント購入のサポートを含むように拡張することができる。ステップ９４０で、ＣｒｙｐｔｏＦｉｒｅｗａｌｌは、アドレスが一意のチップ固有のキーまたはポストペイメント許可キーをポイントするかどうかをチェックする。いずれもポイントしなかった場合、処理が図のようにステップ９５０へ進行する。そうでない場合、ステップ９６０が通常に実行され、次いでステップ９７０が以下のように実行される。
【００８４】
（ａ）ステップ９１０でロードされたキーがポストペイメント許可キーであった場合、ＣｒｙｐｔｏＦｉｒｅｗａｌｌが、ステップ９６０で受信されたアドレスが空のポストペイド権利スロットに対応するかどうかをテストする。そうであった場合、ステップ９８０で、変換の結果が書き込まれる。（これは、ポストペイド権利キーの標準の追加に対応する。）そうでない場合、アドレスがポストペイド権利スロットに対応しなかった場合、あるいはスロットが空でなかった場合、書込みは実行されない。
【００８５】
（ｂ）ステップ９１０でロードされたキーがチップ固有のキーであり、かつステップ９６０で受信されたアドレスがプリペイド権利スロットに対応した場合、変換の結果が書き込まれる。（これは、プリペイド権利キーの標準の追加に対応する。）ＣｒｙｐｔｏＦｉｒｅｗａｌｌは任意選択的に、ポストペイメント権利キーの置き換えも可能にすることができる（すなわち、ステップ９６０で受信されたアドレスが、ポストペイメント許可キーに対応した場合）。
【００８６】
（ｃ）ステップ９１０でロードされたキーがチップ固有のキーであり、かつステップ９６０で受信されたアドレスがポストペイド権利スロットに対応した場合、ＣｒｙｐｔｏＦｉｒｅｗａｌｌが、ステップ９３０からの変換の結果がポストペイド権利スロットの値に合致するかどうかをテストする。合致があった場合、メモリスロットがクリアされる。そうでない場合、書込みは実行されない。
【００８７】
すべてのビットがクリアされた（あるいは設定された）場合、ポストペイド権利スロットを空として指定することができる。この場合、上の（ｂ）および（ｃ）において使用される更新プロセスは、ビットを保護メモリにおいて書き込むこと（またはクリアすること）のみを必要とする。保護メモリが、ＥＥＰＲＯＭなどの技術を使用した場合、ビットのクリアおよびビットの設定オペレーションが別々に実行され、ポストペイメント追加プロセスを、購入およびクリアがそれぞれ１タイプのビットオペレーションを使用するように実施することができる。
【００８８】
ポストペイド購入を監査するため、コンテンツプロバイダは（たとえば、）標準キー生成プロセスを使用し、ステップ９２０で、データブロックのためのランダムチャレンジを提供することができる。ステップ９５０からの出力が、ポストペイド購入キーのための予想された値と比較されて、保護メモリにおけるキーが識別される。（別法として、あるいは加えて、購入データをＩＣＰから得ることができ、あるいは追加の論理をＣｒｙｐｔｏＦｉｒｅｗａｌｌにおいて監査のために設けることができる。）監査クリアプロセスが、チップ固有のキーを使用して保護されるので、監査データを修正する攻撃の効果は限られたものとなる。詳細には、監査レコードは、コンテンツプロバイダが正しい監査データを有している場合にのみクリアされる。結果として、支払うことなく実行できる購入の数が、ＣｒｙｐｔｏＦｉｒｅｗａｌｌにおけるポストペイメント監査レコートスロットの数によって制限される。危機管理のため、コンテンツプロバイダは最初に、わずかな空のスロットのみを備えたＣＲＵを出荷し、次いで、顧客が自分の信用性を確立するにつれて徐々にスロットをクリアすることができる。
【００８９】
別の例示的な簡素化されたアーキテクチャ
このセクションでは、プリペイドコンテンツ購入のためのセキュリティのみを提供する、簡素化されたＣｒｙｐｔｏＦｉｒｅｗａｌｌアーキテクチャを概説する。この実施形態は、ＣｒｙｐｔｏＦｉｒｅｗａｌｌの後ろの書込み可能な不揮発性メモリの代りに、揮発性メモリを使用することができる利点を有する。揮発性メモリはしばしば実施しやすいので（たとえば、標準の論理コンポーネントのみが必要とされるので）、製造および設計コストを削減することができる。
【００９０】
揮発性メモリのみを使用する本発明の実施形態は、攻撃者によって置き換えることができない一意のパラメータへのアクセスを必要とする。この一意のパラメータが回路に埋め込まれることが好ましく、これはたとえばＲＯＭまたはブローされたフューズを使用して行われる。一意のパラメータをチップに埋め込むための技術は、背景技術において知られている。たとえば、Ｐａｄｍａｎａｂｈａｎ他の米国特許第５，７９９，０８０号では、シリアル番号および暗号鍵を集積回路に埋め込むための技術を記載している。
【００９１】
図１０は、例示的ＣｒｙｐｔｏＦｉｒｅｗａｌｌの実施形態を示し、これは小さい（たとえば、６４ビットの）揮発性保護メモリを使用し、バッチキーを使用してＲＥＭのために必要とされる帯域幅を最小限にするものである。製造中に（すなわち、図１０のプロセスの前に）、ＣｒｙｐｔｏＦｉｒｅｗａｌｌが、６４ビットのＢＡＴＣＨ＿ＫＥＹおよび６ビットのＢＡＴＣＨ＿ＯＦＦＳＥＴを永続的に埋め込むことによってパーソナライズされる。たとえば、６４ペアのフューズを使用して、６４ビットのＢＡＴＣＨ＿ＫＥＹを格納することができ、ここでパーソナライゼーションプロセスが、各ペアの一方のフューズをブローする。攻撃者が、攻撃、またはフューズを接続するのみかあるいはブローするのみである製造上の欠陥から利益を得ないようにするため、自己検査論理を組み込んで、厳密に各ペアの一方のフューズがブローされるように保証することができる。（もちろん、他の自己検査または検証技術も使用することができる。多数のフューズを使用して、キービットの値を不明瞭にするための助けとすることもでき、これはたとえば、各ビットまたはビットのグループを多数のフューズのＸＯＲまたはハッシュにすることによって行う。）ＢＡＴＣＨ＿ＫＥＹおよびＢＡＴＣＨ＿ＯＦＦＳＥＴの結合がＣｒｙｐｔｏＦｉｒｅｗａｌｌ毎に一意となることが厳密に要求されないことが、大変好ましい。
【００９２】
図１０では、ステップ１０００で、インターフェイスコントロールプロセッサ（ＩＣＰ）が６４ビットのキーマスク値を、ＣｒｙｐｔｏＦｉｒｅｗａｌｌにおける外部アクセス可能な６４ビットのレジスタにロードする。
【００９３】
ステップ１０１０で、ＣｒｙｐｔｏＦｉｒｅｗａｌｌは、キーマスクにおいてそのＢＡＴＣＨ＿ＯＦＦＳＥＴに対応するビットが設定されていることを検証する。たとえば、ＣｒｙｐｔｏＦｉｒｅｗａｌｌの埋め込みＢＡＴＣＨ＿ＯＦＦＳＥＴがバイナリの１０１１１０（４６デシマル）であった場合、ＣｒｙｐｔｏＦｉｒｅｗａｌｌは、キーマスク値のビット４６が設定されていることを検証し、そうでなかった場合、処理が終了する。代替実施形態では、ＣｒｙｐｔｏＦｉｒｅｗａｌｌが、ＢＡＴＣＨ＿ＯＦＦＳＥＴに対応するビットを、それがすでに設定されていなかった場合、設定する。（もちろん、代替実施形態は、有効についてバイナリ「１」以外の符号化を使用すること、他のテストプロセスを使用すること、キーマスクをテストの前に解読あるいはそうでない場合は処理すること、ＢＡＴＣＨ＿ＯＦＦＳＥＴビットが設定されていない場合はキーマスクを破損すること、キーマスクにおいて多数のビットを含むバッチオフセットを使用すること、多数のキーマスクを使用することなどができる。）
【００９４】
ステップ１０２０で、ＣｒｙｐｔｏＦｉｒｅｗａｌｌが、妥当性検査されたキーマスク値を、入力レジスタからＣｒｙｐｔｏＦｉｒｅｗａｌｌの保護メモリにコピーする。ＣｒｙｐｔｏＦｉｒｅｗａｌｌは任意選択的に、このコピー中にある値の暗号化処理を実行することができる。
【００９５】
ステップ１０３０で、ＩＣＰが６４ビットの暗号化された権利キーをＣｒｙｐｔｏＦｉｒｅｗａｌｌの外部アクセス可能レジスタにロードする。通常のオペレーションでは、このキーは、ユーザが復号化することを望むあるコンテンツに対応する。暗号化された権利キーは通常ＩＣＰによって、コンテンツプロバイダによって伝送されたＲＥＭから得られる。権利キーは相当な期間に渡って持続することができ（たとえば、ケーブルＴＶチャンネルへの１ヵ月の加入では３０日間）、暗号化された権利キー値を（対応するキーマスクと共に）、ＣｒｙｐｔｏＦｉｒｅｗａｌｌの外部にある不揮発性メモリにキャッシュすることができる。
【００９６】
ステップ１０４０で、ＣｒｙｐｔｏＦｉｒｅｗａｌｌが擬似非対称変換を、暗号化された権利キーに適用する。擬似非対称変換は、保護メモリコンテンツのＸＯＲ（すなわち、検証されたキーマスク値）および製造中にロードされたＢＡＴＣＨ＿ＫＥＹを使用して、キーが付けられる。この変換の結果が保護メモリに格納され、キーマスクが置き換えられる。
【００９７】
ステップ１０５０で、ＩＣＰが、暗号化されたコンテンツ解読キーを、ＣｒｙｐｔｏＦｉｒｅｗａｌｌの外部アクセス可能レジスタに格納する。暗号化されたコンテンツ解読キーは通常、コンテンツプロバイダによって、復号化されるべきコンテンツと共に配布されたＫＤＭから得られる。
【００９８】
ステップ１０６０で、ＩＣＰが擬似非対称変換を、暗号化されたコンテンツ解読キーに適用する。ステップ１０４０におけるように、擬似非対称変換は、保護メモリコンテンツのＸＯＲ（すなわち、解読された権利キー）および製造中にロードされたＢＡＴＣＨ＿ＫＥＹを使用して、キーが付けられる。この変換の結果が、外部アクセス可能レジスタに格納され、そこでステップ１０７０で、これをＩＣＰによって読み取り、コンテンツを復号化するために使用することができる。
【００９９】
図１１は、同じコンテンツ解読キー計算プロセスの図である。キーマスク１１００は、バッチにおけるどのＣｒｙｐｔｏＦｉｒｅｗａｌｌが、暗号化された権利キー１１２５を解読することを許可されるかを識別する。（暗号化された権利キーは、関連付けられたキーマスクと共に配布される。）キーマスクがキーマスクバリデータ１１０５によってチェックされ、これは、ＣｒｙｐｔｏＦｉｒｅｗａｌｌが、キーマスクによって指定されたバッチにおいて許可されたデバイスの中のものであることを検証する。有効であった場合、キーマスク１１００の表現が保護メモリ１１１０に格納される。（これが無効であった場合、値が格納されず、あるいは破損された形式において格納される。）結合論理１１１５が、保護メモリコンテンツ１１１０をＢＡＴＣＨ＿ＫＥＹ１１２０とＸＯＲし（あるいはそうでない場合は結合し）、この結果をキーとして、擬似非対称関数１１３０へ供給する。
【０１００】
擬似非対称変換１１３０に入力されたデータは、暗号化された権利キー１１２５であり、これが変換され、結果が保護メモリ１１３５に格納される（これは、保護メモリ１１１０と同じものである）。結合論理１１４０は任意選択的にＢＡＴＣＨ＿ＫＥＹ１１４５（これはＢＡＴＣＨ＿ＫＥＹ１１２０と同じものである）を保護メモリコンテンツと結合し、この結果をキーとして擬似非対称変換１１５５へ供給する。結合論理１１４０は任意選択的であり、たとえば、擬似非対称変換１１３０の出力を直接、キー変換１１５５に使用することができる。変換１１５５を反転可能にする必要はないことに留意されたい。たとえば、ＨＭＡＣなど、キー付きハッシュ関数を、擬似非対称関数の代りに使用することができる。
【０１０１】
暗号化されたコンテンツ解読キー１１５０が擬似非対称変換１１５５によって変換され、コンテンツ解読キー１１６０が生じる。（ＣｒｙｐｔｏＦｉｒｅｗａｌｌが直接コンテンツ自体を解読する本発明の代替実施形態では、コンテンツ自体またはコンテンツの一部を、暗号化されたコンテンツ解読キー１１５０の代りに供給することができる。）コンテンツ解読キー１１６０におけるさらなる処理を、実際のコンテンツ解読が実行される前に実行することができる（たとえば、ＩＣＰ、再生デバイスなどによる）。
【０１０２】
オペレーションが正しい順序で実行されることを保証するため、ＣｒｙｐｔｏＦｉｒｅｗａｌｌがトランザクション処理における現在の状態を追跡するべきである。たとえば、ＣｒｙｐｔｏＦｉｒｅｗａｌｌは、いかなる結果の読み取りも、それが処理を完了するまで、可能にするべきではない。
【０１０３】
権利キーを配布するため、コンテンツプロバイダは最初に権利キーの値を選択し、バッチにおいて、このキーを受信することが許可される１つまたは複数のＣＲＵを識別する。次に、コンテンツプロバイダはキーマスクを構築し、これは、許可されたＣＲＵのＢＡＴＣＨ＿ＯＦＦＳＥＴ値に対応するビットを設定することによって行う。マスクおよびＢＡＴＣＨ＿ＫＥＹから、コンテンツプロバイダは論理１１１５の出力を組立てることができる。擬似非対称変換１１３０の逆（たとえば、ＰＡＦＧによって準備されたようなもの）を、論理１１１５の出力をキーとして使用することにより、コンテンツプロバイダが、配布用の暗号化された権利キー１１２５を計算することができる。
【０１０４】
キー配布用の帯域幅が制限されていない場合、図１０および図１１に含まれたバッチキーの容量は必要とされない。その代りに、デバイス固有のキーを使用し、（たとえば）図１０のステップ１０４０で、擬似非対称変換に直接供給することができる。結果として、ＣｒｙｐｔｏＦｉｒｅｗａｌｌは幾分より簡素であるが、別々の暗号化された権利キーが各ユーザ毎に配布される必要がある。ＣｒｙｐｔｏＦｉｒｅｗａｌｌアーキテクチャは、デバイス固有のキーおよび共有キーも含むことができる。
【０１０５】
図１０および図１１のアーキテクチャは、キーマスクおよび／または暗号化された権利キーを無許可のＣＲＵに提出することを含む様々な攻撃を防止する。たとえば、キーマスク値がいずれかの方法において修正される（たとえば、バッチにおける無許可のＣｒｙｐｔｏＦｉｒｅｗａｌｌについてのビットを設定することによる）場合、擬似非対称変換１１３０への入力が修正され、暗号化された権利キー１１２５の正しい解読が防止される。類似の方法で、異なるバッチから、暗号化された権利キーが提出された場合、権利キーは正しく解読することにも失敗する。
【０１０６】
多数の変形の実施形態が可能である。たとえば、他の結合プロセス（暗号化、擬似非対称変換、モジュール追加など）を、図１１におけるＸＯＲ論理１１１５または論理１１４０の代りに使用することができる。擬似非対称変換１１４０が十分に大きいキーを取る場合、結合関数１１１５をまったく省略することができ、あるいは連結と置き換えることができる。指定されたパラメータサイズは例示的なものである。たとえば、１６０ビットのキーを使用して、いくつかの攻撃に対して６４ビットのキーよりもよいセキュリティを提供することができる。より大きいキーマスクのサイズでは、帯域幅使用の効率を向上させることができる。オペレーションの順序を変更することができ、追加の変換を追加することができる。（追加の変形形態を、以下の「変形形態」というセクションにおいて記載する。）
【０１０７】
物理的実装
ＣＲＵの物理的実装は、いくつかの形をとる可能性がある。好ましい実装形態は、インタフェース制御プロセッサ（ならびにそのメモリ）および保護メモリを単一のチップ上でＣｒｙｐｔｏＦｉｒｅｗａｌｌおよび保護メモリと結合し、次いでこのチップをスマートカードまたはＰＣＭＣＩＡカード（ＰＣカード）中に配置することを含む。ＣｒｙｐｔｏＦｉｒｅｗａｌｌセキュリティモデルは、インタフェース制御プロセッサ（ＩＣＰ）が完全に安全であるとは仮定しないので、ＣｒｙｐｔｏＦｉｒｅｗａｌｌは、ＩＣＰとは別個のハードウェア、例えば同じ集積回路上の別個の回路に実装すべきである。
【０１０８】
ＣｒｙｐｔｏＦｉｒｅｗａｌｌによって使用される保護メモリは、ＩＣＵからアクセス可能な不揮発性および／または揮発性メモリとは別個のものとすることもでき、その一部とすることもできる。ＣｒｙｐｔｏＦｉｒｅｗａｌｌとＩＣＰがメモリ領域を共用する場合、ＣｒｙｐｔｏＦｉｒｅｗａｌｌは、ＩＣＰが、必要な暗号変換なしで保護メモリに不適切にアクセスすることができないようにする責任がある。具体的には、ＣｒｙｐｔｏＦｉｒｅｗａｌｌは、保護領域へのアクセスはインターセプトして処理し、他のアクセスは通過できるようにすべきである。
【０１０９】
ＣｒｙｐｔｏＦｉｒｅｗａｌｌアーキテクチャは、背景技術で知られているハードウェアおよびチップカードのセキュリティ機構と組合せることができる。例えば、異常な動作環境（高い／低い動作電圧、高い／低い温度、高い／低い／不規則なクロック信号、放射など）がみられる場合にデバイスをリセットするための検出器を含めることができる。改ざん防止コーティング、チップ難読化技術、従来のメモリ暗号化技術、エラー検出／訂正論理、侵入検出器などを使用することもできる。攻撃の可能性が検出された場合、ＣｒｙｐｔｏＦｉｒｅｗａｌｌは、（例えば）どんな内部レジスタも消去し、それ自体をリセットし、ＩＣＰをリセットし、任意選択で保護メモリさえ消去することができる。
【０１１０】
ＣｒｙｐｔｏＦｉｒｅｗａｌｌは、専用ハードウェア（離散論理）を使用して、または別個のマイクロプロセッサを使用して実装することもできる。好ましい一実施形態では、２つのマイクロプロセッサ（それぞれはそれ自体のＲＡＭ、ＲＯＭ、およびＥＥＰＲＯＭを有する）を単一のチップ上に統合し、次いでこのチップをスマートカードパッケージングに埋め込む。一方のマイクロプロセッサはＩＣＰとして働き、ＣｒｙｐｔｏＦｉｒｅｗａｌｌである第２のマイクロプロセッサと通信する。デュアルマイクロプロセッサＣＲＵは、今日使用されているシングルマイクロプロセッサＣＲＵよりも製造がいくぶん高くつくが、内部マイクロプロセッサ（ＣｒｙｐｔｏＦｉｒｅｗａｌｌ）が外部マイクロプロセッサによる多くの攻撃から遮蔽されるという重要な利点を有する。
【０１１１】
ＣｒｙｐｔｏＦｉｒｅｗａｌｌを駆動するのに使用されるクロック信号は、外部クロックインタフェースからとる（または導き出す）こともでき、内的に生成することもでき、ＩＣＰから供給することもできる。タイミング書込み動作のためにＥＥＰＲＯＭ回路によって内的に導き出されたクロックがあれば、それを使用することもできる。外部クロックは、クロック信号中の分裂が、回路の攻撃に用いられる可能性のある計算エラーを引き起こさないように、注意して使用すべきである。クロック分周器および逓倍器を使用することもできる。
【０１１２】
本発明のＣＲＵは、様々な形で実装することができる。例えば、図２のコンポーネント２１０、２７０、２８０、および２２５は、同じユニット中に物理的にあってもよく、相互に通信する個別のコンポーネントとしてもよい。ＣＲＵ全体は、単一のチップ上に実装してもよく、改ざん防止パッケージング中に格納された複数のチップを使用して実装してもよい。（多くのシステムの場合、望むなら改ざん防止コーティングなどの機能を含めることもできるが、単一のチップ自体で十分に改ざんは防止される。）
【０１１３】
好ましい一実施形態では、ＣＲＵ全体を単一のスマートカード中に実装する。あるいは、ＣＲＵはＰＣＭＣＩＡカードとすることもできる。ＣＲＵはまた、再生デバイスの一部とし、バルク復号、コンテンツ圧縮解除、および／または出力など再生システムの他の部分と統合することもできる。セキュリティの理由で、ＣｒｙｐｔｏＦｉｒｅｗａｌｌはインタフェース制御プロセッサから独立した回路とする必要があるが、どんな形をとることもできる（例えばハードワイヤード回路や独立したマイクロプロセッサなど）。
【０１１４】
ＣＲＵは、再生デバイスに統合し、再生デバイスとＣＲＵの間で交換されるコンテンツ復号鍵を攻撃者が取り込むか挿入するのをより困難にするという利点をもたらすことができる。この結果、いくつかの鍵再配布攻撃を防止することができる。（時間の影響を受けない価値を有するコンテンツの場合、または海賊行為防止規則が利用不可能であるか施行されない管轄範囲で動作するシステムの場合、このような攻撃は特に懸念される。鍵再配布攻撃はまた、インターネットなどのコンピュータネットワークが新しい鍵再配布の方法を攻撃者に提供する可能性があるので、より危険になる場合がある。）ＣＲＵを再生デバイスに物理的に統合することは、攻撃が行われた場合にＣＲＵを置換するのがより困難になるという欠点を有する。別法としてまたは追加で、コンテンツプロバイダは、攻撃者が鍵を再配布するのに利用可能な時間量を最小限にするために、鍵が実際に再生デバイスに必要になるまで鍵導出メッセージを保留することもできる。再生デバイスもまた、鍵が適時に受け取られない場合に停止することができる。
【０１１５】
コンテンツの準備
ディジタルコンテンツは普通、圧縮された形で配信される。種々のタイプのコンテンツを生み出し、フォーマットし、圧縮するプロセスは、背景技術で周知である。暗号化された材料はあまりよく圧縮されないので、ほとんどの状況では、コンテンツは圧縮後に暗号化される。しかし時として、圧縮と暗号化が結合されるか、または圧縮前に単純な暗号化が適用される。
【０１１６】
コンテンツを暗号化するのに使用される鍵は、コンテンツのＫＤＭ中で搬送されるが、ＫＤＭは、許可されたユーザに送られるＲＥＭ中で配布される権利鍵によって獲得される。ＫＤＭは、コンテンツにアクセスするのに必要な権利鍵の組合せを指定することができる。例えば、コンテンツの特定のブロックにアクセスするのに２つの権利鍵を必要とすべき場合、コンテンツプロバイダは、まず暗号化済み鍵ブロックを生成することができる（例えば図１１の暗号化済みコンテンツ復号鍵１１５０に対応する）。次いでコンテンツプロバイダはＫＤＭを構築するが、ＫＤＭはＩＰＣに、（例えば）暗号化済みコンテンツ復号鍵を２回（図１０に関して述べるプロセスを各回で用いて）生成し、結果を結合（例えばこれらの排他的論理和をとることにより）して復号済みコンテンツ復号鍵を生成するように命令する。コンテンツプロバイダはまた、コンテンツ復号鍵も計算し、これを使用してコンテンツを暗号化する。次に、コンテンツプロバイダは通常、例えばＫＤＭをコンテンツ中の適所に点在させることによって、またはＫＤＭが再生デバイスに通信されるようにその他の手配を施すことによって、ＫＤＭをコンテンツと関連付ける。ＲＥＭがコンテンツと共に配信される場合は、ＲＥＭを加えることもできる。最後に、コンテンツはエンドユーザに送信される。
【０１１７】
代替実施形態では、コンテンツプロバイダは、コンテンツ復号鍵を選択することから開始することもできる。この鍵は、（必須ではないが）ランダムとすることができる。次いでコンテンツプロバイダは、ＣｒｙｐｔｏＦｉｒｅｗａｌｌ擬似非対称関数の逆を使用して、第１の権利鍵でコンテンツ復号鍵を暗号化する。コンテンツにアクセスするために第２の権利鍵も必要な場合は、次いでコンテンツプロバイダは、第２の権利鍵を使用してコンテンツ復号鍵を暗号化する。次いでコンテンツプロバイダは、暗号化したＣＤＫを配布に向けてＫＤＭ中にパッケージし、コンテンツを暗号化する。
【０１１８】
コンテンツプロバイダはまた、いくつかの権利鍵のうちのいずれかを有するＣＲＵがコンテンツをデコードできるようにする「フィックスアップ（ｆｉｘｕｐ）」値をＫＤＭ中でブロードキャストすることもできる。このような場合、ＩＣＰは通常、有効な権利鍵のアドレスを突き止め、ＣｒｙｐｔｏＦｉｒｅｗａｌｌを使用して暗号化済み権利鍵を処理し、ＣｒｙｐｔｏＦｉｒｅｗａｌｌの結果と鍵フィックスアップ値の排他的論理和をとって（そうでない場合は結合して）、実際のコンテンツ復号鍵を導き出す。例えば、３つの権利鍵（Ｋ１、Ｋ２、Ｋ３）のいずれかが何らかのコンテンツへのアクセスを許可すべきであって、ＣｒｙｐｔｏＦｉｒｅｗａｌｌ鍵導出プロセスがＦ（Ｋi，Ｘ）で表され、ＸはデータブロックでＫiはＢＬＯＣＫ＿ＫＥＹである場合、コンテンツプロバイダは、Ｆ（Ｋ1，Ｘ）をコンテンツ復号鍵として選択することができる。次いでＫＤＭは、Ｋ2を有するＣＲＵだけがコンテンツ復号鍵を導き出せるようにするために、Ｆ（Ｋ1，Ｘ）ＸＯＲ  Ｆ（Ｋ2，Ｘ）を含めることができる。同様に、Ｆ（Ｋ1，Ｘ）ＸＯＲ  Ｆ（Ｋ3，Ｘ）を含めることにより、Ｋ3を有するＣＲＵがコンテンツをデコードできるようにする。この「二者択一」の権利鍵選択演算を前述の「アンド」演算と組合せて、ＣＲＵがコンテンツをデコードするために従う複雑な規則をコンテンツプロバイダが確立できるようにすることができる。フィックスアップはまた、異なるタイプのＣＲＵの間に互換性を生み出すのに使用することもできる（例えば、ＣＲＵが置換されている間の、２つのバージョンがサポートされている期間に）。鍵の組合せ規則は暗号上安全なので、ＫＤＭ解析および鍵構築のプロセスはＩＣＰ中で実施することができる。
【０１１９】
例えばコンテンツの１秒ごとまたは１分ごとのブロックで新しいＫＤＭおよび新しい鍵を要求することにより、コンテンツ復号鍵を頻繁に変更することが可能（かつしばしば有利）である。望むなら、各ブロックを異なる組合せの権利鍵で保護することができる。ユーザが何らかのコンテンツのデコードを開始するときにユーザが受ける待ち時間を削減するために、コンテンツプロバイダは、圧縮解除アルゴリズムを再同期できる場所と同じ場所で鍵の変更を行うことができる。例えばＭＰＥＧ−２圧縮ビデオの場合、Ｉピクチャと同じ場所で鍵変更を行うことができる。
【０１２０】
コメントおよび考察
図２に概要を示したアーキテクチャの元では、ＩＣＰおよびそのＲＡＭ、ＲＯＭ、およびＥＥＰＲＯＭが危険にさらされたとしても、システムはロバスト性を保つ。これは、本発明の非常に重要な特徴である。というのは、チップのこれらのコンポーネントは、侵入性の攻撃と非侵入性の攻撃の両方を特に受けやすいからである。ＣｒｙｐｔｏＦｉｒｅｗａｌｌは、保護メモリへの権利鍵の追加を制御し、それにより、あるＣＲＵから得られた情報が、暗号を破らずにまたは侵入性の攻撃を行わずに他のＣＲＵに権利鍵を追加する能力を攻撃者に提供することが防止される。権利鍵が危険にさらされたとしても、攻撃者は、ＣｒｙｐｔｏＦｉｒｅｗａｌｌの向こうにそれを挿入することはできない。
【０１２１】
システムを危険にさらすためには、攻撃者は２つのことのうちの１つを行わなければならない。すなわち、ＣｒｙｐｔｏＦｉｒｅｗａｌｌの擬似非対称変換の機能を複製すること、または許可されない目的のためにＣＲＵのＣｒｙｐｔｏＦｉｒｅｗａｌｌを使用する能力を得ることである。前者の攻撃は、ランダム化された変換回路のリバースエンジニアリングを困難にすることによって防止することができる。加えて、大きな展開の場合に、成功したリバースエンジニアリング攻撃の重大さを小さくするために、ＣＲＵの各グループが異なる擬似非対称関数を含むことができる。グループ特有の鍵（ＢＡＴＣＨ＿ＫＥＹの値など）を使用して定期的な権利鍵（１時間毎または１日毎の鍵など）をブロードキャストすることによっても、多くのリバースエンジニアリング攻撃の重大さを小さくすることができる。
【０１２２】
ＣｒｙｐｔｏＦｉｒｅｗａｌｌが適切に実装された場合、物理的に侵入性の攻撃は、保護メモリに対する未許可制御を得ることが必要なはずである。ＣＲＵが妥当な物理的セキュリティ対策を含むシングルチップデバイス（スマートカードなど）として実装された場合、物理的に侵入性の攻撃が多数のデバイスに対して行われるリスクが課されることは比較的少ない。というのは、このような攻撃が識別された後でも、攻撃者はなお、各ターゲットチップをデキャッピング、修正、および再マウントするために時間および費用のかかるプロセスを行わなければならないからである。これらの技法はまた、高価な装置を必要とし、ターゲットチップを損傷する確率が非常に高い。この結果、ほとんどのシステムは、ＣｒｙｐｔｏＦｉｒｅｗａｌｌを破る物理的に侵入性の攻撃を攻撃者が発見したとしても、多大な海賊行為をこうむることはない。
【０１２３】
このアーキテクチャは、いくつかのデバイスが侵入性の攻撃を受けると仮定し、したがって、入手される可能性のある鍵および他のデータの有用性を最小限に抑える。詳細には物理的に侵入性の攻撃は、危険にさらされたデバイスの保護メモリに対して読取りおよび／または書込みを行う能力を攻撃者に提供する可能性がある。埋込み型の鍵（ＢＡＴＣＨ＿ＫＥＹやＢＡＴＣＨ＿ＯＦＦＳＥＴなど）は、読み取られる、かつ／または修正される可能性がある。保護メモリに記憶された鍵は、暗号ユニット中に実装されたアルゴリズムがなければ有用ではないので、保護メモリのコンテンツを単に読み取るだけでは特に価値はもたらされない。しかし、メモリに書き込む能力は、次いで攻撃者が後払い記録を削除すること、新しい許可鍵を挿入すること、またはバッチオフセットを修正することが可能になるので、いくつかの重大な攻撃を可能にする。正しく機能するＣｒｙｐｔｏＦｉｒｅｗａｌｌでもなお、これらの値を処理してコンテンツ復号鍵にすることが必要である。この結果、あるチップを修正する攻撃者の作業は、完全に機能する１つの海賊デバイスを生み出すことはできるが、広範囲に売買できる一般的な攻撃には至らないはずである。
【０１２４】
変形
この章では、本発明の修正実施形態の例をいくつか提示するが、当業者には他の変形も明白であろう。
【０１２５】
本発明は、他のコンテンツ保護機構と共に用いることができる。コンテンツには、危険にさらされた形跡や著作権の識別などのための透かしを入れることができる。ＣＲＵや再生デバイスなどには、暗号以外のセキュリティ対策を追加することができ、これらは、攻撃に必要な労力を増大させることによって役立つことができる。ＣＲＵ中で（改ざん防止に加えて）改ざんが明白であるようにすることは、攻撃する気をなくさせ、海賊行為を訴えるのに役立つ。
【０１２６】
権利を追加する「プラスの」利点を提供することに加え、ＲＥＭはまた、権利鍵を削除または破損することによってＣＲＵを使用不可にするなどのマイナス効果も有する。このようなマイナス効果は、ＩＣＰおよび／またはＣｒｙｐｔｏＦｉｒｅｗａｌｌによってもたらされる可能性がある。攻撃者がすべてのＲＥＭをブロックするのを防止するために、コンテンツプロバイダは、ＫＤＭとＲＥＭを結合するか、（例えばこれらを暗号化することによって）これらを識別不可能にすることができる。
【０１２７】
ＫＤＭ中のデータブロック（例えば図９のステップ９２０でＣｒｙｐｔｏＦｉｒｅｗａｌｌによって受け取られるデータブロックなど）は、コード更新や自己チェックなど、ＩＣＰまたはＣｒｙｐｔｏＦｉｒｅｗａｌｌに対する追加の意味を有することができる。コンテンツプロバイダはまた、暗号化済みＣＤＫとしてＩＣＰの不揮発性メモリの一部を供給するようにＩＣＰに対して指定することもでき、このような値を導き出す他の方法を指定することもできる。ＫＤＭがコンテンツプロバイダから新しい情報を搬送する必要がない場合、ＫＤＭはＣＲＵや再生デバイスなどによって生成することができる。例えば、タイマを使用して、コンテンツ復号に使用されるデータブロックに対する固有の値を生成することができる。（ただし、コンテンツが実際にブロードキャストされる前に攻撃者がコンテンツ復号鍵を生成して配布するのを防止するために、このような実施形態の実装は慎重である必要がある。）
【０１２８】
コンテンツ復号鍵を導き出すために行うプロセスは、複数の権利鍵および／または変換を含む可能性がある。例えば、図５に示すプロセスの反復を複数にわたって行い、結果をＸＯＲ、追加、連結、ハッシュすることができ、そうでない場合は結合させることができる。（このプロセスはＩＣＰが管理することができる。）最初の反復の出力を、後続の反復の入力として使用することができる。
【０１２９】
コンテンツプロバイダは、例えば、ＣＲＵがいくつかのコンテンツにアクセスするための複数の権利鍵を含むように要求することができる。例えば、コンテンツのブロックが、頻繁に（例えば１時間ごとに）更新される一般的な権利鍵、ストリーム特有の権利鍵、後払い購入許可鍵（最近首尾よく監査が行われたことを示す）、後払い監査鍵、（スポーツ番組の放送制限またはその他の地理制約を実施する）領域鍵、および／またはプレミアムサービス権利鍵を要求することができる。
【０１３０】
ＩＣＰは、暗号計算に関係する可能性がある。複雑なＫＤＭの場合、ＩＣＰは、Ｃｒｙｐｔｏｆｉｒｅｗａｌｌによって使用可能なコンポーネントを識別して抽出し、再生デバイスおよびＣｒｙｐｔｏＦｉｒｅｗａｌｌによる入出力を管理し、結果を結合して有効なコンテンツ復号鍵を生成することができる。ＩＣＰはまた、ＲＥＭおよび／またはＣＤＫに対して追加の暗号処理を行うこともできる。ＣｒｙｐｔｏＦｉｒｅｗａｌｌは、ＩＣＰがシステムのうちの信頼できる部分ではないと仮定して設計することができるものの、攻撃者が両方を危険にさらさなければ成功しないようにＩＣＰ中にもセキュリティを含めることは、何ら害を及ぼすことはない。いくつかのセキュリティ関連の動作（スポーツイベントの地域放送制限など）は、一斉攻撃の的になる可能性が比較的低く、専用回路中で実施するのが困難であり、したがってＩＣＰによって行うことができる。
【０１３１】
必ずしもすべてのデータを可能な最大限のセキュリティレベルまで保護する必要はない。例えば不定期の削除は、普通、すべてのコンテンツをデコードしない攻撃を防止するほど十分にいらいらさせるものである。圧縮技術はシングルビットエラーでも再生が途絶えるようにすることができるので、総コンテンツのわずか数パーセント（またはそれ未満）に対して強力な保護を施すだけで十分な可能性がある。この結果、ＣＲＵまたは復号システムの帯域幅が苦しいかまたは性能に限界があるにもかかわらず、十分なセキュリティがしばしば得られる。コンテンツの異なる部分が異なる保護レベルを用いることもできる。例えば、コンテンツの大部分には比較的弱いセキュリティを適用し、材料のわずかな部分にはずっと強力な保護を適用することができる。
【０１３２】
コンテンツプロバイダは、許可を失ったユーザがコンテンツにアクセスできないようにするために、権利鍵を定期的に変更すべきである。例えば、ユーザが加入を終了した場合、ＣＲＵは、権利鍵が削除／使用不可になるか、ＣｒｙｐｔｏＦｉｒｅｗａｌｌの外の機構がアクセスを不可能にしない限り、動作し続けることができる。コンテンツプロバイダは、権利鍵を定期的に（１時間、１日、１週間、１か月、１年ごとなど）失効させることにより、このような使用の最大継続時間を制限することができる。鍵の切替えによって合法的な視聴者が中断されないようにするために、古い権利鍵が中止になる前に新しい権利鍵を配布することができる。切替え期間中、コンテンツはまた、古い権利鍵と新しい権利鍵の両方を使用して動作できるＫＤＭでブロードキャストすることもできる。追加のオプションは、鍵を更新するＲＥＭを、鍵の変更が必要とされるまで待ち行列に入れるものである。（このようなキューイングは再生デバイスやＩＣＰなどによって行うことができる。）
【０１３３】
不揮発性保護メモリに用いられるメモリ技術は、従来型のＥＥＰＲＯＭである必要はない。例えば、ＰＲＯＭ、フラッシュメモリ、バッテリバックアップ式ＲＡＭ、ＦｅＲＡＭなどはすべて、不揮発性記憶域を提供する。実施形態によっては、ハードドライブまたはその他の媒体ベースの記憶システムを使用することさえできる。ただしこのような手法は、十分な物理的セキュリティを追加するにはコストが高く難しいので、一般には実行不可能である。（ハードドライブ、またはハードドライブの一部が保護された別形は、データ自体をＣＲＵに記憶して保護しなければならない環境では有用な可能性がある。）標準的な論理、ＳＲＡＭ、ＤＲＡＭなどを使用して実装されたレジスタを含めた様々な技術を用いて、揮発性保護メモリを実装することもできる。
【０１３４】
保護メモリに記憶される値は、徹底的な探索などの攻撃を防止するのに十分な長さおよび品質の暗号鍵であることが非常に好ましいが、より短い値を記憶することも可能である。ある極端なケースでは、アクセス権に対応する個々のビットフラグを保護メモリに記憶することができる。有効なＲＥＭにより、ＣｒｙｐｔｏＦｉｒｅｗａｌｌが保護メモリ中の権利ビットをセットかつ／またはクリアする。コンテンツ復号鍵を生成するとき、ＣｒｙｐｔｏＦｉｒｅｗａｌｌは、適切なビットがセットされている場合にのみ有効コンテンツ復号鍵が生成されるようにするために、権利ビットの値をテストする（またはこれらのビット値を暗号変換に組み込む）。このような実施形態は可能ではあるが、侵入性の攻撃はより深刻な重大さを有する傾向があるので、より多くのリスクを含む。
【０１３５】
ＣＲＵのコンポーネントは、バスで接続する必要はない。実際、バスをなくしてコンポーネントを直接に接続することは、物理的に侵入性の攻撃に必要な労力を増大させる利点を有することができる。というのも、バスは（例えば）マイクロプロービング技術を用いて攻撃することができるからである。
【０１３６】
ＣＲＵは、バッチ鍵またはデバイス鍵をいくつ含んでもよい。バッチ鍵はまた、製造プロセス中に連続して割り当てる必要はない。（実際、鍵割当てをシャッフルすることは、攻撃者がバッチ鍵と同一のカードを得るのをより難しくするのに有益な可能性がある。）バッチ鍵（およびその他の鍵）はまた、静的である必要はない。これらは、例えば図７に関して述べたような鍵更新プロセスを用いて置換または更新することができる。独立した複数のバッチ用の鍵をＣＲＵ中に含めることにより、危険にさらされたデバイス中になかった鍵で将来のＲＥＭおよびＫＤＭを保護することができるので、単一のＣＲＵ（または少数のＣＲＵ）に対する攻撃の重大さを最小限に抑えることができる。クローンを作成した場合、危険にさらされたデバイスのバッチ中の合法的なカードを置換し、次いでそのバッチに対するＲＥＭを送るのを中止することが可能である。
【０１３７】
Ｂｅｎｎｙ  Ｃｈｏｒ、Ａｍｏｓ  Ｆｉａｔ、およびＭｏｎｉ  Ｍａｏｒによる「Ｔｒａｃｉｎｇ  Ｔｒａｉｔｏｒｓ」（Ａｄｖａｎｃｅｓ  ｉｎ  Ｃｒｙｐｔｏｌｏｇｙ−Ｃｒｙｐｔｏ′９４、Ｓｐｒｉｎｇｅｒ−Ｖｅｒｌａｇ、１９９４年８月、２５７〜２７０ページ）に記述されているような技術を用いて、鍵を再ブロードキャストするソースを識別することができる。ＣＲＵはまた、例えば再生デバイスの秘密鍵に対応するＲＳＡ公開鍵を用いて、あるいは好ましくは、ＣＲＵと再生デバイスとの間で共用される、製造中に追加された固有の対称鍵を用いて、コンテンツ復号鍵を暗号化することもできる。このような技術は、１つのＣＲＵによって生成された鍵を多くの再生デバイス中で使用することに関係する鍵再配布攻撃を防止するのに役立つ。ＣＲＵが十分な入出力帯域幅および計算速度を有する場合は、コンテンツ自体をデコードすることができる。
【０１３８】
擬似非対称演算は、様々な暗号演算を用いて（またはそれらで置換して）実施することができる。ランダムに構築された論理演算を構築する方法は図８に関して述べてあるが、他の構造を代わりに使用することもできる。例えば、標準的なアルゴリズム（トリプルＤＥＳなど）や一方向ハッシュ演算などで代用することができる。トリプルＤＥＳとランダム化された事前／事後処理など、関数の組合せを使用して、暗号セキュリティがトリプルＤＥＳと同じように明白なロバスト性を有するように保証することも可能である。擬似非対称関数はまた、真の非対称関数で置換することもでき、これはよりよいセキュリティを提供するが、より長いメッセージを必要とし、より大きな回路の実装を採用する（例えばＣｒｙｐｔｏＦｉｒｅｗａｌｌのコストが増大する）。
【０１３９】
権利鍵を記憶および使用するのにどのメモリアドレスを使用するかは、インタフェース制御プロセッサが決定するのが一般に最も簡単だが、アドレスは、ＣｒｙｐｔｏＦｉｒｅｗａｌｌ、コンテンツプロバイダ、再生デバイスなどによって選択することもできる。
【０１４０】
ＣＲＵまたはＣｒｙｐｔｏＦｉｒｅｗａｌｌ中でエラーが発生した場合、障害カウンタをインクリメントすることができ、障害カウンタがしきい値に達した場合、ＣＲＵは、監査をトリガするか動作を停止することができる。障害の例には、動作分裂（すなわち、例えば電力損失のせいで処理が中断した場合）、無効コマンド（例えば無効アドレスが供給された場合）、過剰な数のトランザクションを実施しようとする場合、および誤った暗号パラメータ（後払い監査記録をクリアしようとして失敗した場合など）が含まれる。
【０１４１】
通信プロセスはリアルタイムである必要はない。例えば、監査プロセスは次のように機能することができる。まずＣＲＵが、監査を開始する何らかのコンテンツと共にメッセージブロードキャストを受け取る。次いでＣＲＵは、監査データを再生デバイスに出力し、再生デバイスはデータを待ち行列に入れる。次に再生デバイスは、例えば低速無線通信を用いて監査データをブロードキャストすることにより、監査データをコンテンツプロバイダに送る。コンテンツプロバイダは、監査データを検証した後、最後に新しいコンテンツブロードキャストと共に後払いクリアコマンドを送る。
【０１４２】
ＣｒｙｐｔｏＦｉｒｅｗａｌｌによるアドレス検証などいくつかのステップは、推奨されるが、常に必須ではないので省略することもできる。各ステップはまた、機能的に類似する他の動作で代用することもできる。例えば、アドレス検証は、無効アドレスを強制的に有効な値にすることによって行うこともできる（例えばアドレスが正しい範囲にあり適切に整合するようにするためにアドレス中のビットをセットまたはクリアすることによって）。多くのステップはまた、再整理することもできる。例えば、図７に関して述べた計算のチップ特有部分は、ＢＡＴＣＨ＿ＫＥＹ計算入力の代わりにＢＡＴＣＨ＿ＫＥＹ計算結果と排他的論理和をとることができる。その他、こうした多くの簡単な別形は、当業者には明白であろう。
【０１４３】
擬似非対称関数生成器（およびそれが生成する関数）は、コンテンツ配信以外の用途で使用することもできる。例えば、値が記憶されたカード、電子通行パス、ソフトウェアコピー保護、チャレンジレスポンス認証トークン、および、低コストデバイスが秘密を保持しなければならないその他の用途はすべて、リバースエンジニアリングの難しい安全な暗号変換回路の利益を受けることができる。
【０１４４】
ＣｒｙｐｔｏＦｉｒｅｗａｌｌは、複数の暗号アルゴリズムを含むことができ、これらのいくつかは、所与のＣｒｙｐｔｏＦｉｒｅｗａｌｌまたはバッチに特有なものとすることができ、その他はより一般的なものとすることができる。例えば、２千５百万個のＣＲＵを有する大規模なシステムでは、個別のＣｒｙｐｔｏＦｉｒｅｗａｌｌのいずれかがリバースエンジニアリングされた場合に重大さを最小限に抑えるのが有利なことがある。この結果、１０万個（例えば）のＣｒｙｐｔｏＦｉｒｅｗａｌｌの各グループを異なるアルゴリズムで構築することになる。ＫＤＭおよび／またはＲＥＭが、２５０個のグループのそれぞれに別々に送信される。
【０１４５】
マイクロプロセッサを含むコンポーネントはどれでも、コード更新を受け取ることができる。例えば、再生デバイス、ＩＣＰ、またはＣｒｙｐｔｏＦｉｒｅｗａｌｌ中のコードは、コンテンツプロバイダによって更新することができる。コード更新は、暗号で保護すべきである（例えばディジタル署名やＭＡＣなどで）。
【０１４６】
メモリ更新の中断によってセキュリティが脅かされないようにするために、ＣｒｙｐｔｏＦｉｒｅｗａｌｌは、メモリ更新データおよびアドレスを書込み保留バッファに記憶し、書込み保留ビットをセットし、書込みを行い、次いで書込み保留ビットをクリアすることができる。書込み動作が中断された場合（例えば電力損失のために）、書込みは完全に失われるか、あるいはデバイスがリセットされたときに保留バッファから完成することができる。書込み動作は、エラーを検出するために検証することができる。メモリ破損を検出するために、記憶済みデータの中にチェックサムまたはその他の検証フィールドを含めることができる。
【０１４７】
以上はすべて、本発明の例示的な実施形態および適用例を示すものであり、これらから、関係する変形、改良、および修正が、本発明の趣旨および範囲を逸脱することなく明らかとなるであろう。したがって、本発明は以上の開示に限定すべきではなく、本明細書に添付の特許請求の範囲によって解釈すべきである。
【図面の簡単な説明】
【０１４８】
【図１】暗号化されたコンテンツへのアクセスを規制するための背景技術のスマートカードの図である。
【図２】本発明の暗号権利ユニット（ＣＲＵ）を使用する例示的なシステムを示す図である。
【図３】前払い方式を使用して権利を追加するプロセスの例示的な実施形態の概要を示す図である。
【図４】後払い方式を使用する権利追加プロセスの例示的な実施形態の概要を示す図である。
【図５】ＣｒｙｐｔｏＦｉｒｅｗａｌｌの保護メモリに格納されている権利鍵を使用してＣＤＫを導出する本発明の方法例の図である。
【図６】監査データを監査しクリアするためのプロセス例の図である。
【図７】本発明のマルチターゲット手法の例の図であり、権利鍵の更新方法を示す図である。
【図８】本発明の疑似非対称機能発生器（ＰＡＦＧ）の一実施形態を示す図である。
【図９】前払い権利を実装し、後払い権利をサポートするように容易に拡張できるＣｒｙｐｔｏＦｉｒｅｗａｌｌ例の動作を示す図である。
【図１０】小さな揮発性保護メモリを使用し、またバッチ鍵を使用してＲＥＭに必要な帯域幅を最小にするＣｒｙｐｔｏＦｉｒｅｗａｌｌの実施形態を示す図である。
【図１１】図１０のコンテンツ復号化鍵計算プロセスを示す図である。
【符号の説明】
【０１４９】
２００  コンテンツプロバイダ
２１０  再生デバイス
２２５  暗号権利ユニット
２８０  出力デバイス
【図１】
2008118676.tif 000003
【図２】
2008118676.tif 000004
【図３】
2008118676.tif 000005
【図４】
2008118676.tif 000006
【図５】
2008118676.tif 000007
【図６】
2008118676.tif 000008
【図７】
2008118676.tif 000009
【図８】
2008118676.tif 000010
【図９】
2008118676.tif 000011
【図１０】
2008118676.tif 000012
【図１１】
2008118676.tif 000013