(57)【特許請求の範囲】
【請求項１】
複数のオブファスケイトなプログラミング命令の実行が覗かれているかどうかを検証するように設計されたプログラミング命令の複数のオブファスケイト・セル（１０６）を記憶している記憶媒体を備える耐侵犯部分（１０４）であって、前記検証が第１と第２の覗き防止手段によって実行される、耐侵犯部分（１０４）と、そして
非耐侵犯部分（１０２）をスキャンすることおよび前記非耐侵犯部分（１０２）の第１の署名を計算することによって前記複数のオブファスケイト・セル（１０６）により検証されるように、前記耐侵犯部分（１０４）に結合された非耐侵犯部分（１０２）と
から構成され、
前記耐侵犯部分（１０４）と非耐侵犯部分（１０２）は共にプログラミング命令を実行するための実行ユニットを形成する、
耐侵犯モジュール（１００）装置。
【請求項２】
耐侵犯モジュール（１００）の耐侵犯部分（１０４）において、プログラミング命令の複数のオブファスケイト・セル（１０６）を実行するステップと、
前記耐侵犯部分（１０４）の前記複数のオブファスケイト・セルの前記実行が覗かれていることを、プログラミング命令の前記複数のオブファスケイト・セル（１０６）によって、検証するステップであって、その検証が第１と第２の覗き防止手段によって実行されるステップと、
プログラミング命令の前記複数のオブファスケイト・セル（１０６）により、前記耐侵犯部分（１０４）に結合された非耐侵犯部分（１０２）を、すなわち、前記オブファスケイト・セルの前記実行が侵入者により生じさせられていることを、検証するステップであって、前記非耐侵犯部分（１０２）をスキャンすることおよび前記非耐侵犯部分の署名を計算することにより前記検証が実行されるステップと、そして
前記実行が前記侵入者によって生成じさせられているかまたは覗かれていることが検証された場合に、前記オブファスケイト・セルの前記実行を終了するステップと
を含む方法。
【請求項３】
プログラミング命令の前記オブファスケイト・セル（１０６）が、シングル・ステップ実行をサポートするモードで実行されているかどうかを判定するステップと、そして
前記実行がシングル・ステップ実行をサポートするモードで実行されていることが検証された場合に、前記複数のオブファスケイト・セルの前記実行を終了するステップと
を含むことを特徴とする請求項２に記載の方法。
【請求項４】
プログラミング命令の複数のオブファスケイト・セルは経過した実行時間の長さがしきい値を超えたかどうかを検証するように設計されていることを特徴とする請求項１に記載の耐侵犯モジュール（１００）装置。
【請求項５】
前記耐侵犯モジュール（１００）の前記耐侵犯部分で実行する前記複数のオブファスケイト・セルによって、前記耐侵犯モジュール（１００）内からのタイマ値を記憶するステップと、
前記耐侵犯モジュール（１００）の前記耐侵犯部分で実行する前記複数のオブファスケイト・セルによって、前記タイマ値に基づいて経過した実行時間の長さがしきい値を超えているかどうかを検証するステップと、そして
前記経過した実行時間の長さがしきい値を超えていることが検証された場合に、前記複数のオブファスケイト・セルの実行を終了するステップと
を含むことを特徴とする請求項２に記載の方法。
【請求項６】
前記第１の覗き防止手段は前記プログラミング命令のシングル・ステップ実行モードを判定し、そして
前記第２の覗き防止手段は前記プログラミング命令の経過した実行時間がしきい値を超えたことを検証する、
ことを特徴とする請求項１に記載の耐侵犯モジュール（１００）装置。
【請求項７】
前記第１の覗き防止手段はプログラム命令の前記実行している第１の複数のオブファスケイト・セルのシングル・ステップ実行モードを判定し、そして
前記第２の覗き防止手段はプログラム命令の前記実行している第２の複数のオブファスケイト・セルの経過した実行時間がしきい値を超えたことを検証する、
ことを特徴とする請求項２に記載の方法。
【請求項８】
プログラミング命令の前記複数のオブファスケイト・セルが前記非耐侵犯部分（１０２）に対する第２署名であって前記非耐侵犯部分（１０２）にあらかじめ記憶された署名である第２の署名を取り出すことを特徴とする請求項１に記載の耐侵犯モジュール（１００）装置
【請求項９】
プログラミング命令の前記複数のオブファスケイト・セルが前記第１の署名を前記第２の署名と比較することを特徴とする請求項８に記載の耐侵犯モジュール（１００）装置
【発明の詳細な説明】
【０００１】
（関連出願）
本願は、１９９６年６月１３日に出願されたＴａｍｐｅｒ  Ｒｅｓｉｓｔａｎｔ  Ｍｅｔｈｏｄｓ  ａｎｄ  Ａｐｐａｒａｔｕｓと題する米国特許出願第０８／６６２６７９号、および１９９７年８月６日に出願されたＣｅｌｌ  Ａｒｒａｙ  Ｐｒｏｖｉｄｉｎｇ  Ｎｏｎ−Ｐｒｅｓｉｓｔｅｎｔ  Ｓｅｃｒｅｔ  Ｓｔｏｒａｇｅ  Ｔｈｒｏｕｇｈ  Ａ  Ｍｕｔａｔｉｏｎ  Ｃｙｃｌｅと題する米国特許出願（番号未指定）（Ｅｘｐｒｅｓｓ  Ｍａｉｌ  ＥＭ５３１５５４８１１ＵＳ）の一部継続出願である。
【０００２】
（発明の背景）
１．発明の分野
本発明は、システム・セキュリティの分野に関する。さらに詳細には、本発明は、耐侵犯性の（tamper resistant：不正なアクセスを防止する）方法および装置に関する。
【０００３】
２．背景情報
多くのアプリケーション、例えば金融取引や無人認可、コンテンツ管理では、それらの動作の基本的な整合性を仮定する、または少なくとも検証する必要がある。暗号化および解読の技術など、いくつかのセキュリティ手法が当技術分野で既知であるが、残念ながら、これらのアプリケーションおよびセキュリティ手法はオープンかつアクセス可能なアーキテクチャを有するシステムに実装され、そのアーキテクチャは、セキュリティ手法を含むハードウェアおよびソフトウェアが両方とも敵意のあるユーザまたは悪意のあるプログラムによって覗かれ、かつ改竄されるので、これらのセキュリティ手法が容易に損なわれる可能性がある。
【０００４】
このように、オープンかつアクセス可能なアーキテクチャに基づくシステムは、セキュリティ措置を利用しても、基本的には安全でないプラットフォームである。しかし、オープンであることおよびアクセス可能であることは、これらのシステムが成功する一因となるいくつかの利点をもたらす。したがって、根本的に安全でないこれらのプラットフォームで、それらがオープンでありアクセス可能であってもなおソフトウェアの実行を実質的に覗き不可能または改竄不可能にする技術が必要とされている。
【０００５】
（発明の概要）
１つの装置では、オブファスケイト（obfuscated：分かりにくくさせた）なプログラミング命令の実行が覗かれているかどうかを自己検証するために、いくつかのオブファスケイトなプログラミング命令を備える。
【０００６】
別の装置では、この装置がオブファスケイトなプログラミング命令のシングル・ステップ実行をサポートするモードで動作しているかどうかを判定するために、いくつかのオブファスケイトなプログラミング命令を備える。
【０００７】
さらに別の装置では、経過した実行時間の長さがしきい値を超えたかどうかを検証するために、いくつかのオブファスケイトなプログラミング命令を備える。
【０００８】
さらに別の装置では、第１と第２のグループのオブファスケイトなプログラミング命令が第１と第２の耐侵入技術をそれぞれ実装し、第１と第２のグループのプログラミング命令は、第１と第２の耐侵入技術に対応する第１と第２のキー値のために記憶位置を共有する。
【０００９】
添付の図面に示す実施形態によって本発明について述べるが、これに限定されないものとする。同じ参照符は同じエレメントを指すものとする。
【００１０】
（発明の詳細な説明）
以下の記述では、本発明の様々な態様について述べる。ただし、本発明は、本発明の態様の一部だけで実施することも、全ての態様で実施することもできることは、当業者には明らかであろう。説明のために、特定の数、材料、および構成を記載して、本発明が完全に理解されるようにする。ただし、こうした特定の詳細を用いずに本発明を実施することができることも当業者には明らかであろう。その他、本発明を分かりにくくしないように、周知の機構は省略または簡略化してある。
【００１１】
記述の一部は、当業者がその他の当業者に自分の仕事の中身を伝達するために一般に利用する方法と矛盾しないデータ、フラグ、ビット、値、文字、ストリング、数などの用語を使用して、コンピュータ・システムが実行する動作の用語で表される。これらの量が、コンピュータ・システムの機械的構成要素および電気的構成要素を介して記憶し、転送し、結合し、またその他の方法で操作される電気信号、磁気信号、または光信号の形態となることは、当業者なら理解するであろう。ここで、コンピュータ・システムという用語は、独立型、付属型、または組み込まれた汎用および専用のデータ処理用の機械やシステムなどを含む。
【００１２】
本発明を理解するのに最も有用なかたちで、複数の別個のステップとして様々な動作について順に述べるが、説明の順序は、これらの動作が必ず順序、特に提示の順序に従うことを意味するものではないと解釈されたい。
【００１３】
次に図１を参照すると、本発明の様々な教示を組み込んだ例示的な耐侵犯モジュールの一実施形態を図示するブロック図が示してある。図示のように、例示的な耐侵犯モジュール１００は、非耐侵犯部分１０２、および耐侵犯部分１０４を含む。図示の実施形態では、２つの部分は互いにリンクされ、単一の実行可能なモジュールを形成する。本願では、モジュールという用語は、各部分間の排他的通信を容易にする、様々な部分の間の構造的関係を意味する一般的な意味で使用する。
【００１４】
特許出願第０８／６６２６７９号に記載されているように、非耐侵犯部分１０２は、例示的な耐侵犯モジュール１００の様々な感知不能サービスを実施する、いくつかの平文のプログラミング命令を含み、耐侵犯部分１０４は、例示的な耐侵犯モジュール１００の様々な感知可能サービスを実施するプログラミング命令の平文セルおよびオブファスケイト・セル１０６の様々なグループを含む。感知可能サービスまたは多数の感知可能サービスを実施するセルのグループはそれぞれ、少なくとも１つの平文セル１０６を含む。簡単に言うと、サービスに関連したシークレットは時間的かつ空間的に分散され、オブファスケイトになる。サービスをオブファスケイトにするために利用されるオブファスケイト・セルの数は、サービスまたは感度によって決まる。一般に、利用されるオブファスケイト・セルの数が多くなるほど、このオブファスケイトさを「解読」することはより困難になる。より詳細な説明については、特許出願第０８／６６２６７９号を参照されたい。
【００１５】
さらに、本発明によれば、平文セルおよびオブファスケイト・セル１０６の選択されたグループは、例示的な耐侵犯モジュール１００が侵入も、覗かれもされていないことを動作中に検証するために、いくつかの耐侵犯手段を組み込んでいる。こうした耐侵犯手段を利用するグループの数、ならびに利用される耐侵犯手段の頻度および数も、サービスまたは感度によって決まる。以下でより詳細に述べるように、これらの耐侵犯手段は、いくつかの整合性手段、およびいくつかの覗き防止手段を含む。整合性手段は、実行時および始動時の間に非耐侵犯部分１０２の整合性を検証する第１の整合性手段と、あるグループの平文セルおよびオブファスケイト・セルの呼出しが侵入者から生じていないことを検証する第２の整合性手段とを含む。覗き防止手段は、プロセッサが実行するモジュール１００が、シングル・ステップ実行をサポートするモードで動作していないことを検証する第１の覗き防止手段と、経過した実行時間が正常な、覗かれていない実行と矛盾しないことを検証する第２の覗き防止手段とを含む。
【００１６】
図２〜３は、第１の整合性手段の動作の流れの一実施形態を示している。図２は始動時の動作の流れを示し、図３は実行時中の動作の流れを示す。図２に示すように、図示の実施形態では、始動時に、この第１の整合性手段を組み込んだセルのグループ（ＧＯＣ）は、ブロック１０８で、非耐侵犯部分１０２を走査し、非耐侵犯部分１０２についての署名を計算する。図示の実施形態では、次にブロック１１０で、ＧＯＣは、非耐侵犯部分１０２についての事前に記憶しておいた署名を取り出す。次いで、ブロック１１２〜１１４で、ＧＯＣは２つの署名を比較して、生成された署名を検証する。生成された署名がうまく検証された場合、すなわち非耐侵犯部分１０２が修正されていない場合には、ブロック１１６で、ＧＯＣは、検証依存動作をスキップせずに始動プロセスを継続させ、そうでない場合には、ブロック１１８でＧＯＣは検証依存動作をスキップして始動プロセスを継続させる。検証依存動作の一例は、いくつかの感知可能サービスを伝達するのに必要なシークレットを準備することに関連した動作である。
【００１７】
図３に示すように、図示の実施形態では、実行時中の検証チェック時に、この第１の整合性手段を組み込んだＧＯＣは、ブロック１２０で、非耐侵犯部分１０２の次の部分を走査し、非耐侵犯部分１０２についての署名を増分的に計算する。次いでブロック１２２で、ＧＯＣはこの増分的に計算している署名を更新する。次にブロック１２４で、ＧＯＣは、非耐侵犯部分１０２の末端に達したかどうかを検査する。末端に達している場合にはプロセスは終了し、そうでない場合には、プロセスはブロック１２６に続く。
【００１８】
ブロック１２６で、ＧＯＣは、非耐侵犯部分１０２についての事前に記憶しておいた署名を取り出す。次いでブロック１２８〜１３０で、ＧＯＣは２つの署名を比較して、生成された署名を検証する。生成された署名がうまく検証された場合、すなわち非耐侵犯部分１０２が修正されていない場合には、ＧＯＣは、モジュール１００の実行を継続させ、そうでない場合には、ブロック１３２で、ＧＯＣはモジュール１００の実行を終了させる。モジュールの終了は、当技術分野で既知の任意数の方法で行うことができる。アプリケーションによっては、非耐侵犯部分の整合性が検証で不合格になった点からさらに下流側で、モジュールを停止させることが好ましいこともある。
【００１９】
換言すれば、実行時の整合性検査は、実行ラン中のいくつかの検証チェック期間にわたって増分的に実施される。増分的にな手法は、性能に鋭敏なサービスに特に有用であることを当業者なら理解するであろう。実行ランで利用される検証チェック期間の数は、サービスまたは感度によって決まる。
【００２０】
図４は、第２の整合性手段の動作の流れの一実施形態を示している。呼出し時に、図示の実施形態では、この第２の整合性手段を組み込んだＧＯＣは、ブロック１３４で、その呼出しについての復帰アドレスを取り出す。図示の実施形態では、ブロック１３６で、ＧＯＣは、その復帰アドレスがモジュール１００のアドレス空間内にあるかどうかを判定する。その復帰アドレスがモジュール１００のアドレス空間内にある場合、すなわちその呼出しが侵入者から生じたものでない場合には、ブロック１３８でＧＯＣはモジュール１００の実行を継続させ、そうでない場合には、ブロック１４０でＧＯＣはモジュール１００の実行を終了させる。同様に、モジュールの終了は、当技術分野で既知の任意数の方法で行うことができる。アプリケーションによっては、侵入が検出された点からさらに下流側で、モジュールを停止させることが好ましいこともある。
【００２１】
図５は、第１の覗き防止手段の動作の流れの一実施形態を示している。実行ラン中の事前に選択した時点で、図示の実施形態では、ブロック１４２で、この第１の覗き防止手段を組み込んだＧＯＣは、プロセッサ実行モードの状態変数を取り出す。図示の実施形態では、ブロック１４４で、ＧＯＣは、この状態変数が、シングル・ステップ実行をサポートする実行モード、例えばデバッグ・モードを示すかどうかを判定する。状態変数がシングル・ステップ実行をサポートしない実行モードを示す場合、すなわちモジュール１００の実行が覗かれていない場合には、ブロック１４６で、ＧＯＣはモジュール１００の実行を継続させ、そうでない場合には、ＧＯＣは、ブロック１４８で、モジュール１００の実行を終了させる。同様に、モジュールの終了は、当技術分野で既知の任意数の方法で行うことができる。アプリケーションによっては、覗きが検出された点からさらに下流側で、モジュールを停止させることが好ましいこともある。プロセッサの実行モードを検査する回数およびその実行ラン中の正確な時点は、サービスまたは感度によって決まる。
【００２２】
図６は、第２の覗き防止手段の動作の流れの一実施形態を示している。実行ラン中の事前に選択した時点で、図示の実施形態では、ブロック１５０で、この第２の覗き防止手段を組み込んだＧＯＣは、プロセッサが実行するモジュール１００からタイマの値を取り出し、取り出したタイマの値（タイムスタンプ）を記録する。次いで、ブロック１５２で、ＧＯＣは、それが提供するように設計された通常サービスを引き続き実行する。事前に選択した後の時点で、ＧＯＣは、ブロック１５４〜１５６で、最後のタイムスタンプからの経過した実行時間の長さを検査し、経過した実行時間の長さが所定しきい値を超えているかどうかを判定する。経過した実行時間が所定しきい値を超えない場合、すなわちモジュール１００の実行が（例えば中断点を設定することによって）覗かれていない場合には、ブロック１５８で、ＧＯＣはモジュール１００の実行を継続させ、そうでない場合には、ブロック１６０で、ＧＯＣはモジュール１００の実行を終了させる。同様に、モジュールの終了は、当技術分野で既知の任意数の方法で行うことができる。アプリケーションによっては、覗きが検出された点からさらに下流側で、モジュールを停止させることが好ましいこともある。最後のタイムスタンプからの経過した実行時間の長さを検査する回数およびその実行ラン中の正確な時点は、サービスまたは感度によって決まる。
【００２３】
図７は、耐侵犯手段を相互に結合するための結合技術の一実施形態を示している。図示のように、様々な耐侵犯手段に、例えばメモリ中でそれらに関連するキー値について共通の記憶位置を共有させることによって、様々な耐侵犯手段を相互結合する。図示の実施形態では、ＧＯＣは、シークレットを取り出すためのキーを記憶位置１６８の一部分１６２に記憶し、モジュール１００の実行が覗かれているかどうかを判定するためのタイムスタンプを、部分１６２を除く記憶位置１６８に記憶する。経過した実行時間を決定する際には、ＧＯＣは、部分１６２より上位のビットのみを利用する。さらに、ＧＯＣは、低位のビット１６４をシード（ｓｅｅｄ）として使用して、認証プロセスで利用される疑似乱数を生成する。したがって、侵入者がこの経過実行時間の検査手段を無効にする（ｄｅｆｅａｔ）ためにタイムスタンプを修正しようと試みた場合には、それにより、認証プロセスならびにシークレットを取り出そうとする任意の試みが失敗することになる。同様に、侵入者が認証プロセスを無効にするために、疑似乱数を生成するシードを修正しようと試みた場合には、それにより、経過実行時間の検査ならびにシークレットを取り出そうとする任意の試みが失敗することになる。
【００２４】
図８は、スクランブルされたコンテンツに本発明の耐侵犯性の教示を適用する耐侵犯プレーヤの一実施形態を示している。図示のように、図示の実施形態では、耐侵犯プレーヤ１７０は、非耐侵犯性の構成要素１７１および耐侵犯デコーダ１７２を含む。非耐侵犯性の構成要素１７１は、エンド・ユーザ・インタフェースなどの広範な汎用サービス構成要素を表すものとする。これらの汎用サービス構成要素は、当技術分野で既知のいくつかの様々な技術のいずれか１つを使用して実施される、いくつかの様々なサービスのいずれか１つを用意することができる。耐侵犯デコーダ１７２は、スクランブルされた圧縮コンテンツを受信し、それに応答してこのコンテンツをスクランブル解除および圧縮解除し、例えばＹＵＶビデオやＡＣ３音声などのコンテンツを提供するのに適した信号を出力する。
【００２５】
耐侵犯デコーダ１７２は、非耐侵犯部分１７５と、耐侵犯部分１７４、１７６、１７８、および１８０と、非耐侵犯部分１７５に対する署名１７３とを含む。非耐侵犯部分１７５は平文のプログラミング命令で構成され、耐侵犯部分１７４、１７６、１７８、および１８０は、プログラミング命令の平文セルおよびオブファスケイト・セルの複数のグループで構成される。非耐侵犯部分１７５、ならびに署名１７３も含めた耐侵犯部分１７４、１７６、１７８、および１８０は、それらの部分の間の排他的通信を容易にする構造的関係になっている。図示の実施形態では、この２つの部分は、単一の実行可能なモジュールとして互いにリンクされている。
【００２６】
非耐侵犯部分１７５は、統合された耐侵犯部分１７４、１７６、１７８、および１８０のサービスを選択的に呼び出し、プレーヤ１７０およびスクランブルされたコンテンツの提供側デバイスに相互に認証させることも含めて、スクランブルされたコンテンツのスクランブル解除を実施する。非耐侵犯部分１７５は、スクランブル解除済みの圧縮コンテンツを圧縮解除して、上述の出力信号を生成する。署名１７３は、前述の始動時および実行時の整合性検証を容易にするために、所定位置に事前に記憶されている。
【００２７】
図示の実施形態では、耐侵犯デコーダ１７２の耐侵犯サービスは、スクランブルされたコンテンツを受信し、それに応答してこのスクランブルされたコンテンツをスクランブル解除し、デコーダ１７２の非耐侵犯部分のためにスクランブル解除済みのコンテンツを生成する耐侵犯性デスクランブラ１７４を含む。一実施形態では、耐侵犯性デスクランブラ１７４は、耐侵犯性シークレット・ホルダ１８０から取り出したシークレット・キーを利用して、スクランブルされたコンテンツをスクランブル解除する。利用するシークレット・キーの数およびこれらのキーの性質はアプリケーションによって決まるが、それらは本発明を理解するのに必須ではない。耐侵犯性デスクランブラ１７４は、プログラミング命令の平文セルおよびオブファスケイト・セルのグループで構成される。一実施形態では、コアとなるスクランブル解除サービスは、平文セル中に配設され、性能の向上をもたらす。一実施形態では、ＧＯＣは、上述の侵入者の検出による整合性手段、およびシングル・ステップ実行モードの検出による覗き防止手段を備える。一実施形態では、ＧＯＣは、経過した実行時間の検出による覗き防止手段も備える。一実施形態では、ＧＯＣは、複数の経過した実行時間の検出による覗き防止手段を備える。一実施形態では、経過した実行時間の検出による覗き防止手段は、スクランブルされたコンテンツのスクランブル解除に関連するシークレットキーを取り出すプロセス、ならびにプレーヤ１７０およびスクランブルされたコンテンツの提供側デバイスを相互に認証する認証プロセスとも相互結合される。
【００２８】
図示の実施形態では、耐侵犯デコーダ１７２の耐侵犯サービスは、スクランブルされたコンテンツの提供側デバイスに対して耐侵犯プレーヤ１７０を認証し、耐侵犯プレーヤ１７０に対してスクランブルされたコンテンツの提供側デバイスを認証するための耐侵犯性認証装置１７６も含む。一実施形態では、耐侵犯性認証装置１７６は、耐侵犯性シークレット・ホルダ１８０から取り出したシークレット・キーを利用して、認証プロセスを行う。利用されるシークレット・キーの数およびそれらのキーの性質はアプリケーションによって決まるが、それらは本発明を理解するのに必須ではない。一実施形態では、耐侵犯性認証装置１７６は、プログラミング命令の平文セルおよびオブファスケイト・セルのグループで構成される。一実施形態では、ＧＯＣは上述の侵入者の検出による整合性手段、およびシングル・ステップ実行モードの検出による覗き防止手段を備える。一実施形態では、ＧＯＣは、経過した実行時間の検出による覗き防止手段も備える。一実施形態では、ＧＯＣは、複数の経過した実行時間の検出による覗き防止手段を備える。一実施形態では、経過した実行時間の検出による覗き防止手段は、スクランブルされたコンテンツのスクランブル解除に関連するシークレット・キーを取り出すプロセス、ならびにプレーヤ１７０およびスクランブルされたコンテンツの提供側デバイスを相互に認証する認証プロセスとも相互結合される。
【００２９】
図示の実施形態では、耐侵犯デコーダ１７２の耐侵犯サービスは、始動時に、また実行時中にデコーダ１７２の非耐侵犯部分を整合性検証するための耐侵犯性整合性検証装置１７８も含む。一実施形態では、耐侵犯性整合性検証装置１７８は、プレーヤ１７０およびスクランブルされたコンテンツの提供側デバイスを相互に認証するために利用されるシークレット・キーをシークレット・ホルダ１８０に与える。利用されるシークレット・キーの数およびそれらのキーの性質はアプリケーションによって決まるが、それらは本発明を理解するのに必須ではない。一実施形態では、耐侵犯性整合性検証装置１７８は、プログラミング命令の平文セルおよびオブファスケイト・セルのグループで構成される。一実施形態では、ＧＯＣはシングル・ステップ実行モードの検出による覗き防止手段を備える。一実施形態では、ＧＯＣは、経過した実行時間の検出による覗き防止手段も備える。一実施形態では、ＧＯＣは、複数の経過した実行時間の検出による覗き防止手段を備える。一実施形態では、経過した実行時間の検出による覗き防止手段は、スクランブルされたコンテンツのスクランブル解除に関連するシークレット・キーを取り出すプロセス、ならびにプレーヤ１７０およびスクランブルされたコンテンツの提供側デバイスを相互に認証する認証プロセスとも相互結合される。
【００３０】
最後に、前述のように、図示の実施形態では、耐侵犯デコーダ１７２の耐侵犯サービスは、スクランブルされたコンテンツのスクランブル解除に関連するシークレットを記憶する耐侵犯性シークレット・ホルダ１８０を含む。シークレット・ホルダ１８０は、スクランブルされたコンテンツの提供側デバイスに対して耐侵犯プレーヤ１７０を認証し、耐侵犯プレーヤ１７０に対してスクランブルされたコンテンツの提供側デバイスを認証する認証プロセスに関連するシークレットも記憶する。一実施形態では、耐侵犯性シークレット・ホルダ１８０は、プログラミング命令の平文セルおよびオブファスケイト・セルのグループによって、特許出願（番号未指定）（Ｅｘｐｒｅｓｓ  Ｍａｉｌ  ＥＭ５３１５５４８１１ＵＳ）に記載のセル・アレイの形態で構成される。一実施形態では、ＧＯＣは、上述の侵入者の検出による整合性手段、およびシングル・ステップ実行モードの検出による覗き防止手段を備える。一実施形態では、ＧＯＣは、経過した実行時間の検出による覗き防止手段も備える。一実施形態では、ＧＯＣは、複数の経過した実行時間の検出による覗き防止手段を備える。
【００３１】
このように、プレーヤ１７０がそのコンテンツ入力を「オープン」バスを介して受信した場合でも、コンテンツがスクランブルされた形態で「オープン」バスを介してプレーヤ１７０に提供されるので、そのコンテンツは保護される。さらに、スクランブルされたコンテンツのスクランブル解除に関連するシークレット、およびスクランブル解除を実行するプログラミング命令が、侵入および覗きから保護される。それにもかかわらず、コアとなるスクランブル解除サービスなどの性能に敏感な動作に負担がかからない。最後に、耐侵犯サービス、すなわちデスクランブラ１７４や認証装置１７６などは携帯可能性が高く、任意数のデコーダ実装とリンクすることができる。
【００３２】
図９は、本発明を実施するのに適したコンピュータ・システムの一実施形態を示している。図示のように、図示の実施形態では、コンピュータ・システム２００は、プロセッサ２０２、プロセッサ・バス２０６、高性能入出力バス２１０、および標準入出力バス２２０を含む。プロセッサ・バス２０６と高性能入出力バス２１０はホスト・ブリッジ２０８によってブリッジされ、入出力バス２１０と２１２は入出力バス・ブリッジ２１２によってブリッジされる。プロセッサ・バス２０６にはキャッシュ２０４が結合される。高性能入出力バス２１０にはシステム・メモリ２１４およびビデオ・メモリ２１６が結合され、ビデオ・メモリにはビデオ・ディスプレイ２１８が結合される。標準入出力バス２２０には、ディスク・ドライブ２２２と、キーボードおよびポインティング・デバイス２２４と、ＤＶＤ−ＲＯＭ２２６とが結合される。
【００３３】
これらのエレメントは、当技術分野で既知の従来通りの機能を実行する。詳細には、ディスク・ドライブ２２２およびシステム・メモリ２１４は、プロセッサ２０２によって実行されるとき、本発明の耐侵犯性アプリケーションの永久およびワーキング・コピーを記憶するために使用される。永久コピーは、工場でディスク・ドライブ２２２に事前にロードしておくことも、配布媒体（図示せず）からロードすることも、オンライン／ネットワークの配布ソース（図示せず）からダウンロードすることもできる。これらのエレメントの構成は既知である。当技術分野で既知のこれらのエレメントのいくつかの実装のいずれか１つを使用して、コンピュータ・システム２００を形成することができる。
【００３４】
言うまでもなく、代替アーキテクチャのコンピュータ・システムも含めた代替構成のコンピュータ・システムを利用して、本発明を実施することもできる。
【００３５】
全体として、上記の例示的な実施形態に関連して本発明について述べたが、本発明が上述の実施形態に限定されないことを当業者なら理解するであろう。本発明は、添付の特許請求の範囲の趣旨および範囲内で、修正および改変を加えて実施することができる。したがって、この説明は本発明を限定するものではなく、例示するものとしてみなされたい。
【００３６】
以上、様々な耐侵犯性の方法および装置について述べた。
【図面の簡単な説明】
【図１】  本発明の様々な教示を組み込んだ例示的な耐侵犯モジュールの概要を示すブロック図である。
【図２】  本発明の整合性検証の始動時の動作の流れの一実施形態を示す流れ図である。
【図３】  本発明の整合性検証の実行時中の動作の流れの一実施形態を示す流れ図である。
【図４】  本発明の侵入者検出方法の動作の流れの一実施形態を示す流れ図である。
【図５】  本発明の２つの覗き検出方法の動作の流れの一実施形態を示す流れ図である。
【図６】  本発明の２つの覗き検出方法の動作の流れの一実施形態を示す流れ図である。
【図７】  様々な耐侵犯性の方法を相互結合するための本発明の結合技術の一実施形態を示すブロック図である。
【図８】  本発明の教示を組み込んだ、スクランブルされたコンテンツのための耐侵犯プレーヤの一実施形態を示すブロック図である。
【図９】  本発明を実施するのに適したコンピュータ・システムの一実施形態を示すブロック図である。
【図１】
0004544739.tif 000002
【図２】
0004544739.tif 000003
【図３】
0004544739.tif 000004
【図４】
0004544739.tif 000005
【図５】
0004544739.tif 000006
【図６】
0004544739.tif 000007
【図７】
0004544739.tif 000008
【図８】
0004544739.tif 000009
【図９】
0004544739.tif 000010