(57)【特許請求の範囲】
【請求項１】
データ処理システムにおいて許可されてないプログラムを検出するための方法にして、
検証すべきプログラム・データの一部から選択されたデータに基いて、前記プログラム・データを含む前記プログラムを検証するための検証ストラクチャを作成するステップと、
前記検証ストラクチャを前記プログラムに組み込むステップと、
前記プログラムの開始に応答して、前記プログラムが許可されてないプログラムであるかどうかを前記ストラクチャを使用して決定するステップと、
前記プログラムが許可されてないものであるという決定に応答して前記プログラムの限定された実行を許すステップとを含み、
前記作成するステップは、
前記プログラムから複数個のセクションを無作為に選択するステップと、
前記プログラムにおける前記複数個の無作為に選択されたセクションのデータから、各選択されたセクションに対する暗号ハッシュ値を作成するステップと、
前記暗号ハッシュ値及び各選択されたセクションに対するロケーション値を、データ・レコードとして検証ストラクチャに記憶するステップであって、前記ロケーション値によって表されたロケーションは前記プログラムにおける前記選択されたセクションのロケーションであるステップと、
を含むことを特徴とする方法。
【請求項２】
データ処理システムにおいて許可されてないプログラムを検出するための方法にして、
検証すべきプログラム・データの一部から選択されたデータに基いて、前記プログラム・データを含む前記プログラムを検証するための検証ストラクチャを作成するステップと、
前記検証ストラクチャを前記プログラムに組み込むステップと、
前記プログラムの開始に応答して、前記プログラムが許可されてないプログラムであるかどうかを前記ストラクチャを使用して決定するステップと、
を含み、
前記作成するステップは、
前記プログラムから複数個のセクションを無作為に選択するステップと、
前記プログラムにおける前記複数個の無作為に選択されたセクションのデータから、各選択されたセクションに対する暗号ハッシュ値を作成するステップと、
前記暗号ハッシュ値及び各選択されたセクションに対するロケーション値を、データ・レコードとして検証ストラクチャに記憶するステップであって、前記ロケーション値によって表されたロケーションは前記プログラムにおける前記選択されたセクションのロケーションであるステップとを含み、
前記決定するステップは、
前記検証ストラクチャの一部分を無作為に選択するステップと、
前記プログラムが許可されてないプログラムであるかどうかを、前記検証ストラクチャの前記無作為に選択された部分を使用して決定するステップと
を含むことを特徴とする方法。
【請求項３】
さらに、前記作成するステップが、
前記検証ストラクチャに対するシグナチャを作成するステップと、
前記シグナチャを前記検証ストラクチャと関連付けるステップと、
を含み、
前記シグナチャは前記検証ストラクチャに基づいて計算された暗号ハッシュ値であることを特徴とする、請求項１に記載の方法。
【請求項４】
前記関連付けるステップは前記シグナチャを前記検証ストラクチャに配置するステップを含むことを特徴とする請求項３に記載の方法。
【請求項５】
データ処理システムにおいて許可されてないプログラムを検出するための方法にして、
検証すべきプログラム・データの一部から選択されたデータに基いて、前記プログラム・データを含む前記プログラムを検証するための検証ストラクチャを作成するステップと、
前記検証ストラクチャを前記プログラムに組み込むステップと、
前記プログラムの開始に応答して、前記プログラムが許可されてないプログラムであるかどうかを前記ストラクチャを使用して決定するステップと、
を含み、
前記作成するステップは、
前記プログラムから複数個のセクションを無作為に選択するステップと、
前記プログラムにおける前記複数個の無作為に選択されたセクションのデータから、各選択されたセクションに対する暗号ハッシュ値を作成するステップと、
前記暗号ハッシュ値及び各選択されたセクションに対するロケーション値を、データ・レコードとして検証ストラクチャに記憶するステップであって、前記ロケーション値によって表されたロケーションは前記プログラムにおける前記選択されたセクションのロケーションであるステップと、
前記検証ストラクチャに対するシグナチャを作成するステップと、
前記シグナチャを前記検証ストラクチャと関連付けるステップと、
を含み、
前記シグナチャは前記検証ストラクチャに基づいて計算された暗号ハッシュ値であり、
前記決定するステップは、
前記検証ストラクチャから多数のデータ・レコードを無作為に選択するステップと、
前記無作為に選択されたデータ・レコードの各々に対して、前記無作為に選択されたデータ・レコードに対するロケーション値によって表されたロケーションにおけるプログラム・データのセクションに基づいて暗号ハッシュ値を作成するステップと、
前記作成された暗号ハッシュ値と前記無作為に選択されたデータ・レコードにおけるハッシュ値とを比較するステップと
を含むことを特徴とする方法。
【請求項６】
前記決定するステップは、
前記検証ストラクチャに対する暗号ハッシュ値を作成するステップと、
前記作成された暗号ハッシュ値を前記検証ストラクチャに対するシグナチャと比較するステップと、
を含むことを特徴とする請求項５に記載の方法。
【請求項７】
許可されてないプログラムを検出するためのデータ処理システムにして、
検証すべきプログラム・データの一部から選択されたデータに基いて、前記プログラム・データを含む前記プログラムを検証するための検証ストラクチャを作成する作成手段と、
前記検証ストラクチャを前記プログラムに組み込むための組み込み手段と、
前記プログラムの開始に応答して、前記プログラムが許可されてないプログラムであるかどうかを前記ストラクチャを使用して決定するための決定手段と、
前記プログラムが許可されてないものであるという決定に応答して前記プログラムの限定された実行を許すための手段とを含み、
前記作成手段は、
前記プログラムから複数個のセクションを無作為に選択する手段と、
前記プログラムにおける前記複数個の無作為に選択されたセクションのデータから、各選択されたセクションに対する暗号ハッシュ値を作成する手段と、
前記暗号ハッシュ値及び各選択されたセクションに対するロケーション値を、データ・レコードとして検証ストラクチャに記憶する手段であって、前記ロケーション値によって表されたロケーションは前記プログラムにおける前記選択されたセクションのロケーションである手段と、
を含むことを特徴とするデータ処理システム。
【請求項８】
許可されてないプログラムを検出するためのデータ処理システムにして、
検証すべきプログラム・データの一部から選択されたデータに基いて、前記プログラム・データを含む前記プログラムを検証するための、検証ストラクチャを作成する作成手段と、
前記検証ストラクチャを前記プログラムに組み込むための組込み手段と、
前記プログラムの開始に応答して、前記プログラムが許可されてないプログラムであるかどうかを決定するための決定手段と、を含み、
前記作成手段は、
前記プログラムから複数個のセクションを無作為に選択する手段と、
前記プログラムにおける前記複数個の無作為に選択されたセクションのデータから、各選択されたセクションに対する暗号ハッシュ値を作成する手段と、
前記暗号ハッシュ値及び各選択されたセクションに対するロケーション値を、データ・レコードとして検証ストラクチャに記憶する手段であって、前記ロケーション値によって表されたロケーションは前記プログラムにおける前記選択されたセクションのロケーションである手段とを含み、
前記決定手段は、
前記検証ストラクチャの一部分を無作為に選択するための無作為選択手段と、
前記プログラムが許可されてないプログラムであるかどうかを、前記検証ストラクチャの前記無作為に選択された部分を使用して決定するための決定手段と
を含むことを特徴とする記載のデータ処理システム。
【請求項９】
前記作成手段は、
前記検証ストラクチャに対するシグナチャを作成するための第３作成手段と、
前記シグナチャを前記検証ストラクチャと関連付けるための関連付け手段と、
を含み、
前記シグナチャは前記暗号ハッシュ値に基づいて計算されることを特徴とする請求項８に記載のデータ処理システム。
【請求項１０】
前記関連付け手段は前記シグナチャを前記検証ストラクチャに配置するための配置手段を含むことを特徴とする請求項９に記載のデータ処理システム。
【請求項１１】
前記決定手段は、
前記検証ストラクチャから多数のデータ・レコードを無作為に選択するための無作為選択手段と、
前記無作為に選択されたデータ・レコードの各々に対して、前記無作為に選択されたデータ・レコードに対するロケーション値によって表されたロケーションにおけるプログラム・データのセクションに基づいて暗号ハッシュ値を作成するための作成手段と、
前記作成された暗号ハッシュ値と前記無作為に選択されたデータ・レコードにおけるハッシュ値とを比較するための比較手段と
を含むことを特徴とする請求項８に記載のデータ処理システム。
【請求項１２】
前記決定手段は、
前記検証ストラクチャに対する暗号ハッシュ値を作成するための作成手段と、
前記作成された暗号ハッシュ値を前記シグナチャでもって検証するための検証手段と、
を含むことを特徴とする請求項９に記載のデータ処理システム。
【請求項１３】
プログラムの検証において使用するための検証ストラクチャを作成するためのデータ処理システムにおける方法にして、
前記プログラムから、複数個のセクションを選択するステップであって、複数個のセクションのそれぞれのセクションがプログラム・データを含む、ステップと、
前記プログラムにおける前記複数個の選択されたセクション内のプログラム・データから、各選択されたセクションに対する暗号ハッシュ値を作成するステップと、
前記暗号ハッシュ値及び各選択されたセクションに対するロケーション値を、データ・レコードとして検証ストラクチャに記憶するステップであって、前記ロケーション値によって表されたロケーションは前記プログラムにおける前記選択されたセクションのロケーションであるステップと、を含み、
前記作成するステップは、
前記検証ストラクチャに対するシグナチャを作成するステップと、
前記シグナチャを前記検証ストラクチャと関連付けるステップと
を含むことを特徴とする方法。
【請求項１４】
前記関連付けるステップは前記シグナチャを前記検証ストラクチャに配置するステップ含むことを特徴とする請求項１３に記載の方法。
【請求項１５】
プログラムの検証において使用するための検証ストラクチャを作成するためのデータ処理システムにして、
前記プログラムから複数個のセクションを無作為に選択するための無作為選択手段であって、複数のランダムに選択されたセクションは、プログラム・データを含む、手段と、
前記プログラムにおける前記複数個の無作為に選択されたセクションから、各選択されたセクション内のプログラム・データに対する暗号ハッシュ値を作成するための作成手段と、
前記暗号ハッシュ値及び各選択されたセクションに対するロケーション値を、データ・レコードとして検証ストラクチャに記憶するための記憶手段であって、前記ロケーション値によって表されたロケーションは前記プログラムにおける前記選択されたセクションのロケーションである記憶手段と、を含み、
前記作成手段は、
前記検証ストラクチャに対するシグナチャを作成するための第２作成手段と、
前記シグナチャを前記検証ストラクチャと関連付けるための関連付け手段と、
を含むことを特徴とするデータ処理システム。
【請求項１６】
前記関連付け手段は前記シグナチャを前記検証ストラクチャに配置するための配置手段を含むことを特徴とする請求項１５に記載のデータ処理システム。
【請求項１７】
データ処理システムにおいてプログラムを検証するための方法にして、前記プログラムは複数個のデータ・レコードを有する検証ストラクチャを含み、前記複数個のデータ・レコードにおける各データ・レコードは前記プログラムのセクション内のプログラム・データに対する暗号ハッシュ値及びロケーション値を含み、前記ロケーション値は前記セクションのロケーションを表すものにおいて、
前記検証ストラクチャから多数のデータ・レコードを無作為に選択するステップと、
前記無作為に選択されたデータ・レコードの各々に対して、前記無作為に選択されたデータ・レコードに対するロケーション値によって表されたロケーションにおけるプログラム・データのセクションに基づいて暗号ハッシュ値を作成するステップと、
前記作成された暗号ハッシュ値と前記無作為に選択されたデータ・レコードにおけるハッシュ値とを比較するステップと
を含む方法。
【請求項１８】
プログラムを検証するためのデータ処理システムにして、前記プログラムは複数個のデータ・レコードを有する検証ストラクチャを含み、前記複数個のデータ・レコードにおける各データ・レコードは前記プログラムのセクション内のプログラム・データに対する暗号ハッシュ値及びロケーション値を含み、前記ロケーション値は前記セクションのロケーションを表すものにおいて、
前記検証ストラクチャから多数のデータ・レコードを無作為に選択するための無作為選択手段と、
前記無作為に選択されたデータ・レコードの各々に対して、前記無作為に選択されたデータ・レコードに対するロケーション値によって表されたロケーションにおけるセクションに基づいて暗号ハッシュ値を作成するための作成手段と、
前記作成された暗号ハッシュ値と前記無作為に選択されたデータ・レコードにおけるハッシュ値とを比較するための比較手段と、
を含むデータ処理システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、概して云えば、改良されたデータ処理システムに関するものであり、詳しくいえば、マルチメディア・プログラムを頒布するための方法及びシステムに関するものである。更に詳しく云えば、本発明は、データ処理システムにおいて、許可されたマルチメディア・プログラムをチェックし、許可されてないマルチメディア・プログラムを検出するための方法及びシステムに関するものである。
【０００２】
【発明が解決しようとする課題】
マルチメディア・データ処理システムは、音声、図形、動画、及びテキストを利用して情報をデータの形でユーザに提供する。データ及び情報をこの形式でユーザに提供するプログラムはマルチメディア・タイトルとも呼ばれる。一般に、ソフトウエア会社はマルチメディア・タイトルの製作及び供給のためのソフトウエア・システムを開発し、販売している。そのようなソフトウエア・システムは、マルチメディア・タイトルのためのマルチメディア・スクリプトを構成する場合に使用される。一般に、そのソフトウエア・システムは、開発者によるマルチメディア・タイトルの製作のためのオーサリング（ａｕｔｈｏｒｉｎｇ）ツール・セット及びそのマルチメディア・タイトルをエンド・ユーザに提供するための実行時環境（ＲＴＥ）を含んでいる。一般に、ＲＴＥは種々の計算機プラットフォームにおいて実行するように設計され、開発者にとって望ましいソフトウエア・システムのためのオーサリング・ツールを作っている。一般に、開発者は、オーサリング・ツールを使用するためのローヤルティを支払って、ＲＴＥ上でランすべきマルチメディア・タイトルを開発している。しかし、許可されたタイトルがデータ処理システムにおいて実行することを可能にし且つ許可されてないタイトルを実行しようとする試みを検出するための方法及びシステムを持つことは有益であろう。
【０００３】
従って、本発明の目的は、データ処理システムにおいて、許可されたマルチメディア・プログラムに対するチェックを行い、許可されてないマルチメディア・プログラムを検出するための方法及びシステムを提供することにある。
【０００４】
【課題を解決するための手段】
本発明は、データ処理システムにおいて、許可されたマルチメディア・プログラムを検出するための方法及びシステムを提供する。本発明は、マルチメディア・プログラムを検証するための検証ストラクチャを作成する。その検証ストラクチャはマルチメディア・プログラムに組み込まれ、そしてマルチメディア・プログラムの開始に応答して、そのマルチメディア・プログラムが許可されたマルチメディア・プログラムであるかどうかに関する決定が行われる。その決定は、検証ストラクチャを使用して行われる。
【０００５】
検証ストラクチャの作成では、そのプログラムのうちの数セクション（以下、データ・オブジェクトと呼ばれる）が選択され、その選択されたデータ・オブジェクトの各々に関する暗号ハッシュ値が作成され、又は計算される。その暗号ハッシュ値及び選択されたデータ・オブジェクトのロケーションは、検証ストラクチャ内にデータ・レコードとして記憶される。更に、シグナチャが検証ストラクチャに含まれ、或いはそれと関連付けられる。そのシグナチャは、本発明の好適な実施例によれば、公開キー暗号アルゴリズムを使用して、その検証ストラクチャに基づいて計算される。
【０００６】
マルチメディア・プログラムが許可されたマルチメディア・プログラムであるかどうかの決定は、そのマルチメディア・プログラムにおけるデータ・オブジェクトのサブセットを選択すること及びそのマルチメディア・プログラムに記憶された検証ストラクチャを使用してその選択されたデータ・オブジェクトを検証することによって達成される。これは、検証ストラクチャにおいてリストされたデータ・レコードの定義されたセットの中からそのデータ・オブジェクトの一部分を無作為に選択するステップ、その検証ストラクチャに記憶されたロケーション情報を使用してマルチメディア・プログラムからその選択されたデータ・オブジェクトを読み取るステップ、及びその検証ストラクチャに記憶された検証情報を使用してその選択されたデータ・オブジェクトを検証するステップを含む。各選択されたデータ・オブジェクトに対して、その検証ストラクチャに記憶されたロケーション情報がアクセスされ、その選択されたデータ・オブジェクトをマルチメディア・プログラムから読み取るために使用される。
【０００７】
暗号ハッシュ値はその選択されたデータ・オブジェクトに基づいて計算され、しかる後、その検証ストラクチャに記憶された対応する「基準のハッシュ値」と等しいかどうかを得るために比較される。その選択されたデータ・オブジェクトが有効であるためには、それらハッシュ値は等しくなければならない。更に、公開キー暗号アルゴリズムを使用して、検証ストラクチャにおいて前に計算されそして検証ストラクチャ内に記憶されたシグナチャの使用を通して、その検証ストラクチャ自身が検証される。そのシグナチャ、検証ストラクチャ、及び選択されたデータ・オブジェクトのサブセットが有効なものである場合、そのマルチメディア・プログラムは許可されたマルチメディア・プログラムであると見なされる。許可されたマルチメディア・プログラムは正規に実行することを許される。それとは異なり、マルチメディア・プログラムが許可されたプログラムでないという決定に応答して、マルチメディア・プログラムの実行は禁止されるか、又はマルチメディア・プログラムの限定された実行を許すことも可能である。
【０００８】
本発明の上記目的、特徴、及び利点は、下記の詳細な説明において明らかになるであろう。
【０００９】
【発明の実施の形態】
図面、特に、図１を参照すると、本発明が使用可能なデータ処理システム、即ち、パーソナル・コンピュータ・システム１０が示される。図示のように、パーソナル・コンピュータ・システム１０は、相互接続された多数のコンポーネントより成る。更に詳しくいえば、システム・ユニット１２はオプショナル・モニタ１４（通常のビデオ・ディスプレイのような）に接続され、そのオプショナル・ユニットを駆動することができる。又、システム・ユニット１２は、ＰＣキーボード１６又はマウス１８のような入力装置に選択的に接続可能である。マウス１８は右及び左のボタンを有する。左のボタンは、一般に、メイン・セレクタ・ボタンとして使用され、第１マウス・ボタン又はマウス・ボタン１と呼ばれる。右のボタンは、一般に、後述のように補助的な機能を選択するために使用される。右のボタンは、第２マウス・ボタン又はマウス・ボタン２と呼ばれる。プリンタ２０のようなオプショナル出力装置も、システム・ユニット１２に接続可能である。結局、システム・ユニット１２は、ディスケット・ドライブ２２のような１つ又は複数個の大容量記憶装置を含み得るものである。
【００１０】
後述するように、システム・ユニット１２は、ＰＣキーボード１６、マウス１８、又はローカル・エリア・ネットワーク・インターフェースのような入力装置に応答する。更に、フロッピ・ディスク・ドライブ２２、ディスプレイ１４、プリンタ２０、及びローカル・エリア・ネットワーク通信システムのような入出力（Ｉ／Ｏ）装置が周知の態様でシステム・ユニット１２に接続される。勿論、当業者には明らかなように、他の通常のコンポーネントもシステム・ユニット１２との相互作用のために、そのシステム・ユニットに接続可能である。本発明によれば、パーソナル・コンピュータ・システム１０は、ランダム・アクセス・メモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、及び複数個のＩ／Ｏ装置に相互接続されたシステム・プロセッサを含む。
【００１１】
正規の使用では、パーソナル・コンピュータ・システム１０は、サーバのような小グループのユーザ又は単独のユーザに独立のコンピューティング・パワーを与えるように設計可能であり、個人又は小企業による購入のために安価に価格付けされている。操作においては、システム・プロセッサは、ＩＢＭ社のＯＳ／２オペレーティング・システム（ＯＳ／２はＩＢＭ社の商標）又はＤＯＳのようなオペレーティング・システムの下で機能する。このタイプのオペレーティング・システムは、Ｉ／Ｏ装置とオペレーティング・システムとの間に基本入出力システム（ＢＩＯＳ）インターフェースを含む。マザーボード又はプレーナ上のＲＯＭに記憶可能なそのＢＩＯＳは、ＰＯＳＴと呼ばれるパワー・オン自己検査セクションに含まれた診断ルーチンを有する。
【００１２】
上記の構造を本発明に関連付ける前に、パーソナル・コンピュータ・システムの一般的なオペレーションの要約は、復習するに値するであろう。図２を参照すると、本発明によるパーソナル・コンピュータ・システム１０の種々のコンポーネントを表すパーソナル・コンピュータ・システム１０のブロック図が示される。更に、図２は、プレーナ１１のコンポーネント、及びＩ／Ｏスロット４６ａ−４６ｄ及びパーソナル・コンピュータ・システム１０の他のハードウエアに対するプレーナ１１の接続を示す。プレーナ１１には、マイクロプロセッサより成るシステム中央処理装置（ＣＰＵ）２６が接続される。そのマイクロプロセッサは、高速度のＣＰＵローカル・バス２４により、バス制御のタイミング装置３８を介してメモリ制御装置５０に接続される。そのメモリ制御装置は、更に、揮発性のランダム・アクセス・メモリ（ＲＡＭ）５８に接続される。ＣＰＵ２６のために任意の適当なマイクロプロセッサが使用可能であるけれども、１つの適当なマイクロプロセッサは、インテル社によって販売されているＰｅｎｔｉｕｍマイクロプロセッサ（「Ｐｅｎｔｉｕｍ」はインテル社の商標）である。
【００１３】
以下で、図２のシステム・ブロック図を参照して本発明を説明するけれども、本発明による装置及び方法が他のハード・ウエア構成のプレーナ・ボードでもって使用可能であると考えられ、それは、以下の説明に当たって理解すべきことである。例えば、システム・プロセッサはインテル８０２８６、８０３８６、又は８０４８６マイクロプロセッサであってもよい。これらの特定のマイクロプロセッサは実アドレシング・モード或いは保護アドレシング・モードにおいて動作することができる。各モードは、マイクロプロセッサのメモリの種々の領域をアクセスするためのアドレシング方法を与える。
【００１４】
図２を参照すると、ＣＰＵローカル・バス２４（データ、アドレス、及び制御コンポーネントより成る）は、ＣＰＵ２６，オプショナル数値計算補助プロセッサ２７、キャッシュ・コントローラ２８、及びキャッシュ・メモリ３０の接続に備えている。バッファ３２は、低速度（ＣＰＵローカル・バスに比べて）のシステム・バス３４に接続される。システム・バス３４も、データ、アドレス及び制御コンポーネントより成る。システム・バス３４は、バッファ３２と更なるバッファ３６との間に延びている。システム・バス３４は、更に、バス制御及びタイミング装置３８及びダイレクト・メモリ・アクセス（ＤＭＡ）装置４０に接続される。ＤＭＡ装置４０は中央アービトレーション装置（アービタ）４８及びＤＭＡコントローラ４１より成る。バッファ３６は、システム・バス３４とマイクロ・チャネル・バス４４（「マイクロ・チャネル」はＩＢＭ社の商標）のようなオプショナル・フィーチャ・バスとの間のインターフェースを提供する。バス４４には複数個のＩ／Ｏスロット４６ａ−４６ｄが接続される。それらスロットは、更にＩ／Ｏ装置又はメモリに接続されるマイクロ・チャネル・アダプタ・カードを受けるためのものである。図示の例では、Ｉ／Ｏスロット４６ａはアダプタ・カード上のＲＯＭをそれに接続され、Ｉ／Ｏスロット４６ｂはＣＤ−ＲＯＭドライブをそれに接続され，そしてＩ／Ｏスロット４６ｃはハード・ディスク・ドライブをそれに接続される。モデムのような他の装置もＩ／Ｏスロットに接続可能である。
【００１５】
アービトレーション制御バス４２は、ＤＭＡコントローラ４１及び中央アービトレーション装置４８をＩ／Ｏスロット４６ａ−４６ｄ及びディスケット（フロッピ・ディスク）アダプタ８２に接続する。更に、システム・バス３４には、メモリ制御バス５０が接続される。そのメモリ制御バスは、メモリ・コントローラ５２、アドレス・マルチプレクサ５４、及びデータ・バッファ５６より成る。メモリ制御装置５０は、更に、ＲＡＭモジュール５８によって代表されるようなランダム・アクセス・メモリに接続される。メモリ・コントローラ５２は、ＣＰＵへの及びＣＰＵからのアドレスをＲＡＭ５８の特定の領域にマップするためのロジックを含む。基本的な１メガバイトＲＡＭモジュールによるパーソナル・コンピュータ１０が示されるけれども、図２におけるオプショナル・メモリ・モジュール６０乃至６４によって示されるような追加のメモリが相互接続可能であることは勿論である。
【００１６】
システム・バス３４及びプレーナＩ／Ｏバス６８の間には、更なるバッファ６６が接続される。プレーナＩ／Ｏバス６８は、それぞれ、アドレス、データ及び制御コンポーネントを含む。プレーナ・バス６８に沿って、ディスプレイ・アダプタ７０（オプショナル・ディスプレイ１４をドライブするために使用される）、クロック７２、不揮発性ＲＡＭ７４（以下、「ＮＶＲＲＡＭ」と呼ぶ）、ＲＳ２３２アダプタ７６、並列アダプタ７８、複数個のタイマ８０、ディスケット・アダプタ８２、ＰＣキーボード／マウス・コントローラ８４、及び読取り専用メモリ（ＲＯＭ）８６のような種々のＩ／Ｏアダプタ及び周辺コンポーネントが接続される。ＲＯＭ８６は、多くのＩ／Ｏ装置相互間のユーザ透明のコミュニケーションを提供するＢＩＯＳを含む。
【００１７】
クロック７２は時刻計算のために使用される。ＮＶＲＡＭ７４は、システム構成データを記憶するために使用される。即ち、そのＮＶＲＡＭは、システムの現在の構成を記述した値を含むであろう。例えば、ＮＶＲＡＭ７４は、固定ディスク又はディスケットの容量、ディスプレイのタイプ、メモリの容量等を記述した情報を含む。特に重要なこととして、ＮＶＲＡＭ７４は、システム・コンソール構成、即ち、ＰＣキーボードがキーボード／マウス・コントローラ８４に接続されているかどうか、ディスプレイ・コントローラが使用可能であるかどうか、或いはＡＳＣＩＩ端末がＲＳ２３２アダプタ７６に接続されているかどうかを記述するために使用されるデータを含むであろう。更に、これらデータは、特別の構成プログラムが実行される時にいつもＮＶＲＡＭ７４に記憶される。その構成プログラムの目的は、システムの電源が切られる時に保存されるこのシステムの構成を特徴づける値をＮＶＲＡＭ７４に記憶することである。
【００１８】
キーボード／マウス・コントローラ８４には、ポートＡ及びＢが接続される。これらのポートはＰＣキーボード（ＡＳＣＩＩ端末に対立するものとして）及びマウスをそのＰＣシステムに接続するために使用される。ＲＳ２３２アダプタ装置７６には、ＲＳ２３２コネクタが接続される。オプショナルＡＳＣＩＩ端末がこのコネクタを通してシステムに接続可能である。
【００１９】
詳しくいえば、パーソナル・コンピュータ・システム１０は、ＩＢＭ  ＰＳ／２コンピュータ或いはＩＢＭ  ＲＩＳＣ  ＳＩＳＴＥＭ／６０００（どちらもＩＢＭ社の製品）のような任意の適当なコンピュータを利用して実施可能である（なお、「ＲＩＳＫ  ＳＹＳＴＥＭ／６０００」及び「ＰＳ／２」はＩＢＭ社の商標）。
【００２０】
マルチメディア・プログラム又はタイトル（以下、「マルチメディア・タイトル」と呼ぶ）の頒布は、オーサリング・ツールとマルチメディア会社により提供される実行時環境（ＲＴＥ）とを使用してマルチメディア・タイトルを製作するアプリケーション開発者、及びそのＲＴＥを実行するコンピュータ或いはコンピュータ・プラットフォームにおける実行のためにマルチメディア・タイトルを購入するユーザに影響する。本発明の好適な実施例によれば、許可されたマルチメディア・タイトルに関してチェックすること及び許可されてないマルチメディア・タイトルを検出することは、公開キー・アルゴリズム使用するディジタル・シグナチャのスキームに影響する。「公開キー」は、情報を暗号化したい人にとって利用可能にされたキーである。公開キー暗号化では、公開キーが暗号化のために使用されそして専用キーが暗号解読のために使用されるという公開キー・アルゴリズムが使用される。公開キー暗号化の基本は、個々の対数、因数分解、及びナップザック問題を含む。各許可されたマルチメディア・タイトルは、そのマルチメディア・タイトルがデータ処理システムにおける実行を許される前にＲＴＥにより検証可能な組み込まれたディジタル・シグナチャ・トークンを含む。
【００２１】
本発明の好適な実施例に従ってシグナチャ・トークン生成プロセス及びシグナチャ・トークン検証プロセスを容易にするために、２つの暗号サブシステムが使用される。１つの暗号サブシステムは、許可されたマルチメディア・タイトルに組み込まれた時にこれらタイトルが検証されることを許容するシグナチャ・トークンの生成を可能にする。もう１つの暗号サブシステムはシグナチャ・トークンを検証するために使用される。この態様では、許可されたマルチメディア・タイトルは、許可されてないマルチメディア・タイトルから区別可能である。
【００２２】
図３を参照すると、ＣＤ−ＲＯＭにおけるマルチメディア・タイトルに対する作成及び頒布プロセスのブロック図が本発明の好適な実施例に従って示される。当業者には明らかなように、本発明は、マルチメディア・タイトルがＣＤ−ＲＯＭ媒体以外の媒体を通して頒布されるという実現方法において実施可能である。マルチメディア・タイトルは、開発者がオーサリング・ツール３００を使用することによって開発される。そこで、マルチメディア・タイトルは、シグナチャ・トークン生成モジュール３０２を使用して処理される。このモジュールはマルチメディア・タイトルのためのシグナチャ・トークンを生成する。シグナチャ・トークンはそのマルチメディア・タイトルに組み込まれる。
【００２３】
しかる後、シグナチャ・トークンを組み込まれたマルチメディア・タイトルは、マスタＣＤ−ＲＯＭ３０４を作成する開発者に返送される。別の方法として、シグナチャ・トークン及びマルチメディア・タイトルが開発者に返送され、その際、そのシグナチャ・トークンがマルチメディア・タイトルに組み込まれ、マスタＣＤ−ＲＯＭ３０４が開発者によって作成される。そのマルチメディア・タイトル及び組み込まれたシグナチャ・トークンを含むＣＤ−ＲＯＭ３０６がマスタＣＤ−ＲＯＭ３０４から作られる。ＣＤ−ＲＯＭ３０６は、本発明の好適な実施例によればシグナチャ・トークン・モジュールを持ったＲＴＥを含むデータ処理システム３０８内に配される。そのタイトルがデータ処理システム３０８において実行されるべき時、ＲＴＥはＣＤ−ＲＯＭからシグナチャ・トークンを読み取り、シグナチャ・トークン検証モジュールを使用してそのシグナチャ・トークンとＣＤ−ＲＯＭから読み取られたデータ・オブジェクトの選択された部分とを検証する。
【００２４】
一般に、マルチメディア・タイトルは、プレイするには約１時間を必要とし、約６５０メガバイトのデータを含んでいる。その結果、マルチメディア・タイトルにおける各バイトを読み取り及びチェックすることによってそのマルチメディア・タイトルを検証することは非能率的である。本発明の好適な実施例によれば、マルチメディア・タイトルは、それに含まれたデータの一部分をチェックすることによって検証される。
【００２５】
本発明の好適な実施例によれば、マルチメディア・タイトルを検証するためにデータのランダム・サンプリングが使用される。サンプルされるべきデータ・ロケーションが検証の或る瞬間から次の瞬間まで一定であった場合、そのマルチメディア・タイトルの小さな部分だけしかチェックされないであろう。そのような状況では、違法タイトルの方がより容易に構成可能である。しかし、サンプルするためのデータ・ロケーションを無作為に選択することによって、模擬マルチメディア・タイトルの可能性は大きく減少する。
【００２６】
更に、本発明はデータ・コンテキスト・サンプリングを利用する。検証されるべきデータのキー部分を識別するためにマルチメディア・タイトルそのものの論理的ストラクチャが使用される場合、マルチメディア・タイトルの検証における大きな改良が得られる。例えば、好ましいチェック方法は、マルチメディア・タイトルの各ファイルに対する内容テーブルにおけるチェック部分のデータ又はすべてのデータに基づくものが可能である。マルチメディア・タイトルは１つ又は複数個のファイルより成り、各ファイルはそれ自身の内容テーブルを含む。多くの場合、マルチメディア・タイトルは唯一のそのようなファイルを含む。ファイルがオープンされる時、内容テーブルは読み取られるべき第１の項目である。
【００２７】
図４を参照すると、本発明の好適な実施例に従って、内容テーブルにおけるエントリが示される。内容テーブル４００はエントリ４０２−４０８を含む。各エントリはオブジェクト識別子、属性識別子、タイプ、及びロケーション（オフセット及び長さ）を含む。その結果、特定のエントリは、ディスク上の特定のオフセットにおいて、この多くのバイトに対して、このタイプのこのＩＤを持ったオブジェクトに属するこのＩＤを持った特性が位置指定されることを表す。内容テーブルがオブジェクトＩＤ及び属性ＩＤに基づいてデータを参照するため、参照されたデータ・オブジェクトはオブジェクト−属性（ＯＰ）の対によって参照される云われ、そのデータ・オブジェクトはＯＰデータと呼ばれる。勿論、内容テーブルに対する他のフォーマット及び仕様が本発明の好適な実施例に従って利用可能である。内容テーブルは、それのフォーマット、ストラクチャ、及びセマンティックスに関係なく、本発明の好適な実施例に従ってマルチメディア・タイトルを効果的に検証するために使用可能である。一般に、マルチメディア・タイトルでは、内容テーブルは、マルチメディア・タイトルの他の部分のほとんどによる固有の従属性を持った比較的短い且つ容易に識別可能な情報片の一例である。内容テーブルは記号テーブル、連係マップ等の形式をとることができるが、厳密に指定され、高度に構造化される。
【００２８】
更に、マルチメディア・タイトルに対して、一般に、最初の幾つかの表示されたスクリーンはタイトルの名称及びそれのバージョンを含む。その結果、これらのスクリーンを保護することが望ましくなる。従って、チェック方法は、ユーザに表示されるデータのうちの最初の数スクリーンをチェックすることを含むことがあるので、例えば、「深淵の悪魔（Ｄｅｍｏｎｓ  ｆｏｒ  ｔｈｅ  Ｄｅｅｐ）」という名称の模擬タイトルは、それがピギー・バックしているタイトルの名称、例えば、「砂漠のウオーゲーム（Ｄｅｓｅｒｔ  Ｗａｒｇａｍｅｓ）」の表示を強いられるであろう。
【００２９】
本発明は、内容テーブルの一部分又はすべて、及び各マルチメディア・ファイルに対するタイトルの名称及びそれのバージョンを含む最初の幾つかの表示されたスクリーンを検証することによって、及びマルチメディア・タイトルにおけるデータ・オブジェクトのサブセットを検証することによってマルチメディア・タイトルを検証するための方法及びシステムを提供する。本発明の好適な実施例によれば、これらデータ・オブジェクトは無作為に選択される。しかし、当業者には明らかなように、データ・オブジェクトは、本発明の精神から離れることなく、無作為でない好適な方法を使用して選択可能である。
【００３０】
図５を参照すると、シグナチャ・トークンの図が、本発明の好適な実施例に従って示される。シグナチャ・トークン５００はシグナチャ・トークン生成モジュール（図５には図示されていない）によって構成される。シグナチャ・トークンはそのシグナチャ・トークン生成モジュールにサービス・リクエストを繰り返し行うことによってステップ状に構成される。シグナチャ・トークン５００は、一旦作成されると、それを生成したマルチメディア・タイトルに組み込まれる。シグナチャ・トークンはＲＴＥにおけるシグナチャ・トークン検証モジュールによって検証される。その検証では、シグナチャ・トークンはシグナチャ・トークン検証モジュールに対して反復してサービス・リクエスト行うことによってステップ状に検証される。
【００３１】
シグナチャ・トークン５００はヘッダ５０２及び選択されそして検証されるマルチメディア・タイトルにおけるデータ又はデータ・オブジェクトに対応したデータ・レコード１乃至ｎを含む。シグナチャ・トークンにおけるそれらデータ・レコード１乃至ｎは、直接的な対応はあるけれども、マルチメディア・タイトルにおけるデータ・オブジェクトとは異なる。更に、シグナチャ・トークン５００は、そのシグナチャ・トークンにおけるヘッダ及び一連のデータ・レコード１乃至ｎを検証するために使用されるディジタル・シグナチャ５０４を含む。シグナチャ・トークン５００における各データ・レコードはロケーション特殊情報Ｌ及び暗号ハッシュ値Ｈを含む。ロケーション特殊情報は、そのデータにおける検証されるべきロケーションをシグナチャ・トークン検証モジュールに知らせる。暗号ハッシュ値はＬによって参照される特殊マルチメディア・データに基づいて計算される。
【００３２】
本発明の好適な実施例によれば、その暗号ハッシュ値は、片方向関数を使用して計算される。片方向関数は、Ｘの暗号ハッシュ値がＹの暗号ハッシュ値に等しくなるように２つの異なる入力Ｘ及びＹを見つけることが計算上は実行不可能である関数である。用語「計算上は実行不可能」は、非常に多数の計算上のステップが必要とされるために、実用的な意味では遂行することができない数学的手順を記述するために従来技術で使用されたものでる。しかし、その用語は、それ以上の数の計算が計算上実行不可能であると云われ且つそれ以下の数の計算が計算上実行可能であると云われる規定の数の計算がない場合には正確ではない。一般に、必要な計算を行うためのコスト又は時間が妥当な人的手段を超えている場合、例えば、一緒にリンクした世界におけるコンピュータが数十億年においても問題を解くことができない場合、計算上実行不可能であると云われる。
【００３３】
ロケーション特殊情報は、シグナチャ・トークン５０に記憶されたロケーション特殊情報とアルゴリズム的に得られたロケーション特殊情報との組合せであってもよい。マルチメディア・タイトルにおける内容テーブルは、シグナチャ・トークン５００から省くことができるロケーション特殊情報の一例である。換言すれば、標準的な開始ポイントを与えられた内容テーブルをいつでも見つけることができる簡単な手順が存在するため、シグナチャ・トークン５００は内容テーブルのアドレス又はロケーションを記憶する必要がない。
【００３４】
シグナチャ・トークン５００におけるデータ・レコード１乃至ｎの一部分は、マルチメディア・タイトルにおける１つ又は複数個のデータ・オブジェクト内のデータを参照するであろう。シグナチャ・トークン生成モジュールは、検証されるべきマルチメディア・タイトルから種々なデータ・オブジェクトのサブセットを選択するためのプロセスを使用する。このプロセスについては、更に詳しく後述することにする。厳密に云えば、このプロセスにおける無作為性は必要ないけれども、このプロセスにおいて無作為性の要素を持つことは望ましいことである。一旦マルチメディア・タイトルにおけるデータ・オブジェクトのサブセットが識別されてしまうと、各データ・オブジェクトにおけるサブポーションが選択される。これらデータのサブポーションのロケーション（Ｌ１，Ｌ２，・・・，Ｌｎ）は、各サブポーションと関連したデータを読み取るためにシグナチャ・トークン生成モジュールによって使用される。
【００３５】
そこで、シグナチャ・トークン生成モジュールは暗号サブシステムにサービス・リクエストを発生して、ロケーション情報Ｌｉによって参照されるデータの各サブポーションにおける暗号ハッシュ値Ｈｉを生成させる。そこで、暗号ハッシュ値Ｈｉはロケーション情報Ｌｉと共にデータ・レコードｉに記憶される。ヘッダ及びデータ・レコード１乃至ｎが作成されてしまうと、シグナチャ・トークン生成モジュールは暗号サブシステムにサービス・リクエストを発生して、ディジタル・シグナチャ以外のそのシグナチャ・トークンに関する暗号ハッシュ値を計算させる。そこで、シグナチャ・トークン生成モジュールは暗号サブシステムにサービス・リクエストを発生し、そのシグナチャ・トークン及びマルチメディア会社の専用キーに基づいて計算された暗号ハッシュ値を使用して、そのシグナチャ・トークンに関するディジタル・シグナチャを計算させる。しかる後、そのディジタル・シグナチャはシグナチャ・トークンに記憶される。
【００３６】
シグナチャ・トークン検証モジュールはシグナチャ・トークンにおけるデータ・レコードのサブセットを無作為に選択しそして検証し、従って、本発明の好適な実施例に従って検証プロセスに無作為の要素を導入する。一旦データ・レコードのサブセットが無作為に選択されてしまうと、シグナチャ・トークン検証モジュールは各データ・レコードをレコード毎に処理するであろう。データ・レコードにおけるロケーション特殊情報Ｌは参照データをＣＤ−ＲＯＭから読み出すために使用される。そこで、サービス・リクエストが暗号サブシステムに発生され、その参照データに基づいて暗号ハッシュ値Ｈを生成させる。そこで、この計算された暗号ハッシュ値は、データ・レコードに記憶された基準暗号ハッシュ値Ｈと等しいかどうかを得るために比較される。それら暗号ハッシュ値が等しい場合、プロセスは継続する。それらが等しくない場合、検証が失敗したという表示を行うと共に、処理は停止される。
【００３７】
各データ・レコードが処理された後、シグナチャ・トークン検証モジュールは暗号サブシステムにサービス・リクエストを発生して、それが以前にそのマルチメディア・タイトルから読み出したシグナチャ・トークン（ディジタル・シグナチャ以外の）を暗号的にハッシュさせる。そこで、サービス・リクエストが暗号サブシステムに発生されてディジタル・シグナチャを検証させる。本発明の好適な実施例によれば、ディジタル・シグナチャは、シグナチャ・トークン検証モジュールに記憶されたマルチメディア会社の公開キーでもって暗号化される。ディジタル・シグナチャの暗号化された値は、有効なシグナチャ・トークンに基づいて前に計算された基準のハッシュ値を含んでいる。そこで、その計算されたハッシュ値は、そのように得られた基準のハッシュ値と等しいかどうかを得る比較される。それらハッシュ値が等しい場合、シグナチャ・トークン及びディジタル・シグナチャは有効である。それらが等しくない場合、シグナチャ・トークン及びディジタル・シグナチャは有効ではない。当業者には明らかなように、本発明は、本発明の精神から離れることなく、任意のディジタル・シグナチャ方法を使用して実施可能である。
【００３８】
ディジタル・シグナチャも、暗号ハッシュ値のツリーのルート、例えば、「ディジタル・シグナチャを与える方法」と題した米国特許第４，３０９，５６９号に開示された暗号ハッシュ値のバイナリ・ツリーのルートを表す暗号ハッシュ値に基づいて計算することができる。ｎ−１個の追加の中間的暗号ハッシュ値をシグナチャ・トークンに記憶することによって、そのシグナチャ・トークンにおけるｎ個の可能なデータ・オブジェクトのうちのｍ個が、ｎ個のハッシュ・オペレーションの代わりに「ｍ＊ｌｏｇ２ｎ」個のハッシュ・オペレーションを使用して検証可能である。これは、小さいｎに対しては更に有利である。暗号ハッシュ値のツリーを計算する方法は、前記米国特許第４，３０９，５６９号及び「会計記録を更新するための暗号化方法」と題した米国特許第５，２３１，６６８号に開示されている。
【００３９】
図６を参照すると、シグナチャ・トークン生成モジュール及びシグナチャ・トークン検証モジュールのブロック図が本発明の好適な実施例に従って示される。シグナチャ・トークン生成モジュール６００は生成プログラム６０２及び暗号サブシステム６０４を含む。シグナチャ・トークン検証モジュール６０６は検証プログラム６０８及び暗号サブシステム６１０を含む。シグナチャ・トークン生成モジュール６００における生成プログラム６０２は、マルチメディア・タイトルにおける検証されるべきデータ（無作為に選択されたデータ・オブジェクトにおけるデータを含む）を選択する。生成プログラム６０２はマルチメディア・タイトルからデータを読み取り、反復したサービス・リクエストを暗号サブシステム６０４に発生することによってそのデータを処理する。データを処理するためのこれら反復したサービス・リクエストはシグナチャ・トークンを形成するために使用される。同様に、シグナチャ・トークン検証モジュール６０６における検証プログラム６０８は、シグナチャ・トークン生成モジュール６００によって生成されたシグナチャ・トークンにおけるデータ・レコードのサブセットを無作為に選択する（その後の処理及び検証のため）。このデータはＣＤ−ＲＯＭから読み取られ、シグナチャ・トークンを検証するための反復したサービス・リクエストを発生することによって処理される。
【００４０】
暗号サブシステム６０４は生成プログラム６０２に次のような暗号サービスを提供する。即ち、
（１）乱数発生器を初期化する。
（２）乱数を発生する。
（３）ハッシュ値を発生する。
（４）ディジタル・シグナチャを生成する。
（５）ディジタル・シグナチャを検証する。
一旦シグナチャ・トークンが生成されると、そのシグナチャ・トークンが暗号サブシステム６１０及びシグナチャ・トークン検証モジュール６０６によって正しく処理されことを補償するために生成プログラム６０２がそのシグナチャ・トークンを検証するディジタル・シグナチャ検証機能が与えられる。そのような検証機能は、シグナチャ・トークンを組み込まれたマルチメディア・タイトルの作成において高い整合性のプロセスを与える。シグナチャ・トークン検証モジュール６０６における暗号サブシステム６１０は、次のようなサービスを提供することによって検証プログラム６０８をサポートする。即ち、
（１）乱数発生器を初期化する。
（２）乱数を発生する。
（３）ハッシュ値を発生する。
（４）ディジタル・シグナチャを検証する。
乱数発生器は、検証されるべきシグナチャ・トークンにおけるデータ・レコードを無作為に選択するために使用される。乱数を発生するための、ハッシュ値を発生するための、及びディジタル・シグナチャを生成及び検証するためのアルゴリズム及び手順は従来技術においてよく知られている。
【００４１】
乱数発生機能は、米国の連邦情報処理標準（ＦＩＰＳ）１８６の付則３において指定されたような米国規格協会（ＡＮＳＩ）標準  Ｘ９．１７「金融協会キー管理（卸売り）」の付則Ｃにおいて与えられた擬似乱整数発生器を使用して実施可能である。
【００４２】
乱数発生器初期化機能は、機密のシード値を乱数発生器において発生させる機能、又は別の方法でそれを乱数発生器への入力として供給させる機能である。乱数発生器を初期化するための簡単な方法は、ワークステーション・キーボード及びディスプレイを介して乱数発生器初期化機能と対話する人への一連のリクエストと組み合わせてフリー・ホイーリング・カウンタを使用することである。ユーザは、キーボードにおいて文字を入力するように繰り返しプロンプトされる。乱数発生機能が制御を得る時、それはフリー・ホイール・カウンタを読み取り、そしてこの値はアキュムレータに記憶された値と結合される。最終的なアキュムレータ値は機密のシード値と見なされる。人の応答時間のわずかな相異のために、フリー・ホイール・カウンタの値は予測できないものであり、従って、その結果生じるシード値は無作為なものとなろう。
【００４３】
ハッシュ発生機能は、「公開片方向暗号化機能に基づく修正検出コードを使用したデータ承認」と題した米国特許第４，９０８，８６１号に開示されたＭＤＣ−２又はＭＤＣ−４アルゴリズムを含む幾つかのアルゴリズムのうちの１つを使用して、又はＦＩＰＳ１８０「安全ハッシュ標準」におけるハッシュ・アルゴリズムを使用して実施可能である。
【００４４】
ディジタル・シグナチャ生成機能及びディジタル・シグナチャ検証機能は、ＩＳＯ標準９７９６「メッセージ回復を行うディジタル・シグナチャ方法」を使用するＲＳＡ公開キー・アルゴリズムによって、又はＦＩＰＳ１８６「ディジタル・シグナチャ標準」におけるシグナチャ生成及びシグナチャ検証アルゴリズムを使用することによって実施可能である。
【００４５】
図示の実施例は非対称アルゴリズムである公開キー・アルゴリズムを使用するけれども、ディジタル・シグナチャは、データ暗号化標準（ＤＥＳ）のような対称アルゴリズムに基づくものでよい。
【００４６】
図７を参照すると、シグナチャ・トークン生成モジュールにおいてシグナチャ・トークンを生成するためのプロセスのフローチャートが本発明の好適な実施例に従って示される。そのプロセスは、シグナチャ・トークンを持たないマルチメディア・タイトルを受け取ることによって開始する（ステップ７００）。しかる後、プロセスは、Ｎが作られるべきシグナチャ・トークンに対して作成されるデータ・レコードの最大数であり、Ｍが各選択されたデータ・オブジェクトのバイトにおける最大レコード・データ長であるような変数Ｎ及びＭを固定する（ステップ７０２）。例えば、Ｎ＝１０００及びＭ＝１０００がＮ及びＭに対する可能な値である。そこで、プロセスは、そのマルチメディア・タイトルに含まれた内容テーブル又は同等の情報を見つけて読み出す（ステップ７０４）。本発明の好適な実施例によれば、ＭＤＣ１と呼ばれる１２８ビットＭＤＣがデータＤ１に基づいて計算される（ステップ７０５）。必要に応じて内容テーブルを使用して、第１ロゴ・スクリーンがそのマルチメディア・タイトルから見つけられ、読み出される（ステップ７０６）。ロゴ・スクリーンはそのマルチメディア・タイトルの名称を含み、「Ｄ２」として指定される。ＭＤＣ２と呼ばれる１２８ビットＭＤＣがデータＤ２に基づいて計算される（ステップ７０７）。
【００４７】
内容テーブルを使用して、プロセスはそのマルチメディア・タイトルに含まれるマルチメディアのオブジェクト−属性の対の数Ｓを決定する（ステップ７０８）。オブジェクト−属性は、内容テーブルにおけるオブジェクト−属性エントリによって指定されたデータである。Ｓは、Ｓ＜１＞＋Ｓ＜２＞＋・・・＋Ｓ＜Ｔ＞  として計算される。但し、Ｓ＜ｉ＞はマルチメディア・オブジェクト「ｉ」に関連づけられた属性の数を表し、「Ｔ」はマルチメディア・タイトルにおけるマルチメディア・オブジェクトの数を表す。そこで、プロセスは、ｎ＝ｍｉｎ（Ｎ，Ｓ）、即ち、Ｎ及びＳの最小値をセットする（ステップ７１０）。一般に、Ｓは、Ｎ＝ｎが真を維持するようにＮよりもずっと大きいであろう。そこで、プロセスは、Ｒ＝ｎ−２及びＸ＝１をセットする（ステップ７１２）。しかる後、オブジェクト−属性の対がマルチメディア・タイトルから無作為に選択される。各オブジェクト−属性の対に対応するデータが見つけられて読み出され、そしてそのデータのロケーションが保存される（ステップ７１４）。「Ｄ３」は、無作為に選択されたオブジェクト−属性におけるオブジェクト−属性の対に対応する情報（又は、最初のｎバイトの情報）を表す。Ｌ３は、無作為に選択されたオブジェクト−属性の対に対応するデータを見つけて読み出すために使用される内容テーブルにおける情報を表す。実際には、プロセスはＳ個のオブジェクト−属性の対（内容テーブル及びロゴ・スクリーンを除く）の１つを選択し、しかる後、次の反復時に、前に選択されたオブジェクト−属性の対を除いたＳ−１個の残りの相異なるオブジェクト−属性の対のうちの１つを無作為に選択する。
【００４８】
そこで、プロセスはその選択されたオブジェクト−属性の対によって参照されるデータ又はデータ・オブジェクトに基づいてＭＤＣを計算する（ステップ７１６）。本発明の好適な実施例によれば、前記米国特許第４，９０８，８６１号に開示された方法を使用して、１２８ビットＭＤＣがオブジェクト−属性の対と関連したデータに基づき計算される。値Ｄ３乃至Ｄｎに基づいて計算されたＭＤＣ値は、そのプロセスがループする時、それぞれ、ＭＤＣ３乃至ＭＤＣｎとして表される（ステップ７１４及び７１６）。プロセスは、Ｘ＝Ｒであるかどうかを決定する（ステップ７１８）。ＸがＲに等しくない時、プロセスはＸ＝Ｘ＋１にセットし（ステップ７２０）、ステップ７１２に戻る。これは、Ｒ＝ｎ−２個の異なるオブジェクト−属性の対が処理されてしまうまで継続する。
【００４９】
Ｘ＝Ｒである時、プロセスは、ヘッダ、ｎ個のデータ・レコード、及びディジタル・シグナチャより成る図５に示されたシグナチャ・トークン５００のようなシグナチャ・トークンの作成に進む（ステップ７２２）。トークン・タイプ（例えば、「マルチメディア・シグナチャ・トークン」）及びｎ（データ・レコードの数）がそのヘッダ内に記憶される。第１のデータ・レコードでは、データ・ロケーション及びハッシュ値が、それぞれ、一定値「内容テーブル」及びＭＤＣ１の計算値にセットされる。本発明の好適な実施例によれば、シグナチャ・トークン検証モジュールがいつも内容テーブルのロケーションを知っているため、用語「内容テーブル」が、ロケーション情報の代わりにデータ・ロケーション・サブフィールドに記憶される。そのシグナチャ・トークンにおける第２データ・レコードでは、データ・ロケーション及びハッシュ値が、それぞれ、一定値「ロゴ・スクリーン」及びＭＤＣ２の計算値にセットされる。本発明の好適な実施例によれば、シグナチャ・トークン検証モジュールが内容テーブルにおいて見つけられた情報からロゴ・スクリーンのロケーションを計算することができるため、用語「ロゴ・スクリーン」が、ロケーション情報の代わりにデータ・ロケーション・サブフィールドに記憶される。データ・レコード３、４、・・・、ｎにおけるデータ・ロケーション及びハッシュ値は、それぞれ、（Ｌ３，ＭＤＣ３）、（Ｌ４，ＭＤＣ４）、・・・、（Ｌｎ，ＭＤＣｎ）にセットされる。シグナチャ・トークンにおけるデータ・レコード１乃至ｎにおけるハッシュ値Ｈ１乃至ＨｎはＭＤＣ値、即ち、ＭＤＣ１乃至ＭＤＣｎにそれぞれ等しい。
【００５０】
更に、シグナチャ・トークンは、本発明の好適な実施例に従って、ディジタル・シグナチャに対するスペースも含む。ＩＳＯ標準９７９６に基づくＲＳＡディジタル・シグナチャは、一般に、５１２ビットから２０４８ビットまでの記憶スペースを必要とする。ＦＩＰＳ１８６に基づくＤＳＳディジタル・シグナチャは３２０ビットの記憶スペースを必要とする。ステップ７２２において、シグナチャ・トークンのディジタル・シグナチャ部分は、その時、初期化されていない。しかる後、プロセスは、マルチメディア会社の専用キーでもってそのシグナチャ・トークンに対するディジタル・シグナチャを計算する（ステップ７２４）。更に詳しく云えば、１２８ビットＭＤＣは、ヘッダ及びｎ個のデータ・レコードより成るそのシグナチャ・トークンの部分に基づいて計算される。この計算は、前記米国特許第４，９０８，８６１号に開示されたプロセスを使用して行うことが可能である。
【００５１】
しかる後、本発明の好適な実施例によれば、マルチメディア会社の専用キーを使用して、ディジタル・シグナチャがＭＤＣ値に基づいて計算される。ディジタル・シグナチャは、ＩＳＯ標準９７９６に従ってＲＳＡ専用キーでもって、又はＦＩＰＳ１８６に従ってＤＳＡ専用キーでもって計算可能である。当業者には明らかなように、ディジタル・シグナチャを計算するためには、種々の長さの専用キーが使用可能であり、本発明の好適な実施例によれば、種々の長さのディジタル・シグナチャがそのシグナチャ・トークンに記憶可能である。しかる後、ディジタル・シグナチャはそのシグナチャ・トークンに記憶され、プロセスは終了する。
【００５２】
図８を参照すると、検証プログラムにおいてマルチメディア・タイトルを検証するためのプロセスのフローチャートが本発明の好適な実施例に従って示される。このプロセスは図６のシグナチャ・トークン検証モジュール６０６において使用される。プロセスは、組み込まれたシグナチャ・トークンを持ったマルチメディア・タイトルを受け取ることによって開始する（ステップ８００）。そこで、プロセスは変数Ｒを固定する（ステップ８０２）。但し、このフローチャートにおけるＲは無作為に承認されるべきデータ・レコードの数である。例えば、Ｒは３、４、５等のような任意の値でよいが、一般には、必要な処理時間を最小にするために小さい値になるであろう。しかる後、プロセスはその組み込まれたシグナチャ・トークンを読み出す（ステップ８０４）。本発明の好適な実施例によれば、内容テーブルは、その組み込まれたシグナチャ・トークンを見つけて読み出すために使用可能である。
【００５３】
そこで、プロセスは内容テーブル或いはそのマルチメディア・タイトルに含まれた等価情報を見つけて読み出す（ステップ８０６）。この情報は「Ｄ１」と呼ばれる。そこで、プロセスは内容テーブルにおける１２８ビットＭＤＣ、即ち、Ｄ１を計算する（ステップ８０８）。この計算は種々の方法で遂行可能である。例えば、前記米国特許第４，９０８，８６１号に開示されたプロセスが使用可能である。そこで、プロセスは、そのシグナチャ・トークンに記憶された基準のＭＤＣに対して、内容テーブルに基づいて計算されたＭＤＣを検証する（ステップ８１０）。ステップ８０８において計算された１２８ビットＭＤＣがそのシグナチャ・トークンの第１データ・レコードにおけるＨ１と比較される。そこで、プロセスは、それら２つの値が等しいかどうかを決定する（ステップ８１２）。ＭＤＣがＨ１に等しくない場合、プロセスは、そのタイトルが無効であることを表示する（ステップ８１４）。本発明の好適な実施例によれば、シグナチャ・トークン検証モジュールによってそのように検出された無効マルチメディア・タイトルはインディケータ又は表示をセットさせるが、処理を停止しない。しかし、本発明は、無効条件が検出されると直ちに処理が停止されるという方法を使用して実施することも可能である。
【００５４】
しかし、ＭＤＣがＨ１に等しい場合、プロセスは、そのマルチメディア・タイトルにおけるユーザに表示される第１ロゴ・スクリーンを見つけて読み出す（ステップ８１６）。内容テーブルは、このロゴ・スクリーンを見つけるために使用可能である。ロゴ・スクリーンはマルチメディア・タイトルの名称を含み、この情報は「Ｄ２」と呼ばれる。次に、そのロゴ・スクリーンを構成するデータに基づいてＭＤＣが計算される（ステップ８１８）。本発明の好適な実施例によれば、１２８ビットＭＤＣが計算される。そこで、プロセスは、シグナチャ・トークンに記憶されたＭＤＣに対して、ロゴ・スクリーンに基づいて計算されたＭＤＣを検証する（ステップ８２０）。ステップ８１８において計算された１２８ビットＭＤＣが、そのシグナチャ・トークンの第２データ・レコードにおけるＨ２と比較される。そこで、プロセスは、それら２つの値が等しいかどうかを決定する（ステップ８２２）。ＭＤＣがＨ２に等しくない場合、プロセスは、そのタイトルが無効であることを表示する（ステップ８２４）。そこで、プロセスはＹ＝１にセットする（ステップ８２６）。
【００５５】
プロセスは、ＭＤＣがＨ２に等しい場合にもＹ＝１にセットする（ステップ８２６）。そこで、プロセスは、そのシグナチャ・トークンにおけるｎ−２個の残りのデータ・レコードの１つを無作為に選択し、読み出す（ステップ８２８）。そのデータ・レコードは、データ・レコード３乃至データ・レコードｎから選択される。各データ・レコードは、そのマルチメディア・タイトルにおける単一のオブジェクト−属性の対に対するデータのすべて又は一部分と関連付けられ、それを参照する。そこで、プロセスは、その選択されたデータ・レコードによって指示されたオブジェクト−属性の対と関連したデータＯＰ１を読み出す（ステップ８３０）。そのデータ・レコードにおけるデータ・ロケーション情報は、そのマルチメディア・タイトルにおける基準のオブジェクト−属性の対と関連したデータＯＰ１を見つけて読み出すために使用される。
【００５６】
次に、プロセスはその選択されたデータＯＰ１に基づいて１２８ビットＭＤＣを計算する（ステップ８３２）。そこで、プロセスは、そのデータＯＰ１に基づいて計算された１２８ビットＭＤＣを、そのシグナチャ・トークンから読み取られたデータ・レコードに記憶された対応するＭＤＣ又はハッシュ値に対して検証する（ステップ８３４）。ステップ８３４では、ステップ８３２において計算された１２８ビットＭＤＣが、そのデータ・レコードから取り出された対応するＭＤＣ又はハッシュ値Ｈと比較される。その計算されたＭＤＣ及び記憶されたＭＤＣが等しい場合、制御はステップ８３８に送られる。それらＭＤＣの値が等しくない場合、プロセスは、そのタイトルが無効であることを表示し（ステップ８３６）、制御はステップ８３８に送られる。そこで、プロセスは、Ｙ＝Ｒであるかどうかを決定する（ステップ８３８）。ＹがＲに等しくない場合、プロセスは、Ｙ＝Ｙ＋１にセットし（ステップ８３９）、ステップ８２８に戻る。これは、Ｒ個のデータ・レコードがそのシグナチャ・トークンにおけるデータ・レコード３乃至ｎの中から無作為に選択され、処理されてしまうまで継続する。Ｙ＝Ｒの時、プロセスは、そのディジタル・シグナチャ及びシグナチャ・トークンを検証するように進行する。次に、プロセスは、そのシグナチャ・トークンにおけるディジタル・シグナチャを読み出す（ステップ８４０）。
【００５７】
しかる後、プロセスは、シグナチャ・トークン検証モジュールにおいて一定値として記憶されたマルチメディア会社の公開キーをアクセスする（ステップ８４２）。そこで、プロセスは、その公開キーを使用してそのシグナチャを検証する（ステップ８４４）。ヘッダ及びｎ個のデータ・レコードより成るそのシグナチャ・トークンの部分に基づいて１２８ビットＭＤＣが計算される。ＲＳＡディジタル・シグナチャが使用される場合、ＲＳＡ公開キーを利用すると共にＩＳＯ標準９７９６で規定されたプロセスを使用して、元の１２８ビット・ハッシュ値ＨがＲＳＡディジタル・シグナチャから取り出される。しかる後、ヘッダ及びｎ個のデータ・レコードを含むシグナチャ・トークンに基づいて計算された１２８ビットＭＤＣがその１２８ビット・ハッシュ値Ｈと比較される。これらのＭＤＣが等しい場合、そのマルチメディア・タイトルは有効なものとして受け付けられる。それらが等しくない場合、プロセスは、そのタイトルが無効であることを表す。ＦＩＰＳ１８６に基づくディジタル・シグナチャが使用される場合、そのシグナチャは、ＲＳＡディジタル・シグナチャを検証するために使用されたものとは異なるＦＩＰＳ１８６において略述されたステップを実行することによって検証される。
【００５８】
そこで、プロセスはそのタイトルを受け付けるか、又はタイトル無効状態を処理する（ステップ８４６）。そのタイトルが無効であるとして表された場合、本発明の好適な実施例によれば、幾つかのアクションをとることが可能である。例えば、そのマルチメディア・タイトルを拒否することが可能であり、或いは受容することが可能であるが、ユーザに最初からやり直すことを要求することも可能である。勿論、内容テーブル、ロゴ・スクリーン、及び無作為に選択されたデータ・レコードが本発明の好適な実施例に従ってチェックされる前に、シグナチャを検証することも可能である。その実施方法によっては、内容テーブル又はロゴ・スクリーン以外の他の論理的ストラクチャをチェックしてもよいし、或いはしなくてもよい。
【００５９】
図３乃至図８に示されたプロセスは図１及び図２に示されたデータ処理システムにおいて、当業者により実施可能である。又、本発明のプロセスは、データ処理システムによって読み取り可能なプログラム記憶装置において実施可能である。その場合、プログラム記憶装置は、本発明のプロセスに対して、データ処理システムが実行可能な命令コーディングをエンコードする。プログラム記憶装置は、例えば、ハード・ディスク・ドライブ、フロッピ・ディスク、光ディスク、ＲＯＭ、及びＥＰＲＯＭを含む種々の形式をとり得るが、それに限定されるものでもない。それは当業者には知られていることである。プログラム記憶装置に記憶されたプロセスは、データ処理システムと共にプログラム記憶装置を使用することによって活動化されるまで休止状態にある。例えば、本発明に対するデータ処理システムが実行し得る命令を含むハード・ディスク・ドライブはデータ処理システムに接続可能であり、本発明に対するデータ処理システムが実行し得る命令を含むフロッピ・ディスクはそのデータ処理システムにおけるフロッピ・ディスク・ドライブに挿入可能であり、或いは本発明に対するデータ処理システムが実行し得る命令を含むＲＯＭはＩ／Ｏスロットに接続されたカード又はアダプタを介してそのデータ処理システムに接続可能である。
【００６０】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００６１】
（１）データ処理システムにおいて許可されてないプログラムを検出するための方法にして、
導入部セクション以外の検証すべきプログラム・データの一部から選択されたデータに基いて、前記プログラム・データを含む前記プログラムを検証するための検証ストラクチャを作成するステップと、
前記検証ストラクチャを前記プログラムに組み込むステップと、
前記プログラムの開始に応答して、前記プログラムが許可されてないプログラムであるかどうかを前記ストラクチャを使用して決定するステップと、
を含み、
前記プログラムが許可されてないものであるという決定に応答して前記プログラムの限定された実行を許すステップを含むことを特徴とする方法。
（２）データ処理システムにおいて許可されてないプログラムを検出するための方法にして、
導入部セクション以外の検証すべきプログラム・データの一部から選択されたデータに基いて、前記プログラム・データを含む前記プログラムを検証するための検証ストラクチャを作成するステップと、
前記検証ストラクチャを前記プログラムに組み込むステップと、
前記プログラムの開始に応答して、前記プログラムが許可されてないプログラムであるかどうかを前記ストラクチャを使用して決定するステップと、
を含み、
前記決定するステップは、
前記検証ストラクチャの一部分を無作為に選択するステップと、
前記プログラムが許可されてないプログラムであるかどうかを、前記検証ストラクチャの前記無作為に選択された部分を使用して決定するステップと
を含むことを特徴とする方法。
（３）導入部セクション以外の検証すべきプログラム・データの一部から選択されたデータに基いて、前記プログラム・データを含む前記プログラムを検証するための検証ストラクチャを作成するステップと、
前記検証ストラクチャを前記プログラムに組み込むステップと、
前記プログラムの開始に応答して、前記プログラムが許可されてないプログラムであるかどうかを前記ストラクチャを使用して決定するステップとを含む、データ処理システムにおいて許可されてないプログラムを検出するための方法であって、
前記作成するステップは、
前記プログラムから無作為にデータを選択するステップと、
前記プログラムから複数個のセクションを無作為に選択するステップと、
前記プログラムにおける前記複数個の無作為に選択されたセクションから、各選択されたセクションに対する暗号ハッシュ値を作成するステップと、
前記暗号ハッシュ値及び各選択されたセクションに対するロケーション値を、データ・レコードとして検証ストラクチャに記憶するステップであって、前記ロケーション値によって表されたロケーションは前記プログラムにおける前記選択されたセクションのロケーションであるステップと、を含み、
さらに、前記作成するステップは、
前記検証ストラクチャに対するシグナチャを作成するステップと、
前記シグナチャを前記検証ストラクチャと関連付けるステップと、
を含み、
前記シグナチャは前記検証ストラクチャに基づいて計算された暗号ハッシュ値であることを特徴とする方法。
（４）前記関連付けるステップは前記シグナチャを前記検証ストラクチャに配置するステップを含むことを特徴とする（３）に記載の方法。
（５）データ処理システムにおいて許可されてないプログラムを検出するための方法にして、
導入部セクション以外の検証すべきプログラム・データの一部から選択されたデータに基いて、前記プログラム・データを含む前記プログラムを検証するための検証ストラクチャを作成するステップと、
前記検証ストラクチャを前記プログラムに組み込むステップと、
前記プログラムの開始に応答して、前記プログラムが許可されてないプログラムであるかどうかを前記ストラクチャを使用して決定するステップと、
を含み、
前記決定するステップは、
前記検証ストラクチャから多数のデータ・レコードを無作為に選択するステップと、
前記無作為に選択されたデータ・レコードの各々に対して、前記無作為に選択されたデータ・レコードに対するロケーション値によって表されたロケーションにおけるセクションに基づいて暗号ハッシュ値を作成するステップと、
前記作成された暗号ハッシュ値と前記無作為に選択されたデータ・レコードにおけるハッシュ値とを比較するステップと
を含むことを特徴とする方法。
（６）前記決定するステップは、
前記検証ストラクチャに対する暗号ハッシュ値を作成するステップと、
前記作成された暗号ハッシュ値を前記検証ストラクチャに対するシグナチャと比較するステップと、
を含むことを特徴とする（５）に記載の方法。
（７）許可されてないプログラムを検出するためのデータ処理システムにして、
導入部セクション以外の検証すべきプログラム・データの一部から選択されたデータに基いて、前記プログラム・データを含む前記プログラムを検証するための、検証ストラクチャを作成する作成手段と、
前記検証ストラクチャを前記プログラムに組み込むための組込み手段と、
前記プログラムの開始に応答して、前記プログラムが許可されてないプログラムであるかどうかを決定するための決定手段と、を含み、
前記プログラムが許可されてないものであるという決定に応答して前記プログラムの限定された実行を許すための手段を含むことを特徴とするデータ処理システム。
（８）許可されてないプログラムを検出するためのデータ処理システムにして、
導入部セクション以外の検証すべきプログラム・データの一部から選択されたデータに基いて、前記プログラム・データを含む前記プログラムを検証するための、検証ストラクチャを作成する作成手段と、
前記検証ストラクチャを前記プログラムに組み込むための組込み手段と、
前記プログラムの開始に応答して、前記プログラムが許可されてないプログラムであるかどうかを決定するための決定手段と、を含み、
前記決定手段は、
前記検証ストラクチャの一部分を無作為に選択するための無作為選択手段と、
前記プログラムが許可されてないプログラムであるかどうかを、前記検証ストラクチャの前記無作為に選択された部分を使用して決定するための決定手段と
を含むことを特徴とする記載のデータ処理システム。
（９）前記作成手段は、
前記検証ストラクチャに対するシグナチャを作成するための第３作成手段と、
前記シグナチャを前記検証ストラクチャと関連付けるための関連付け手段と、
を含み、
前記シグナチャは前記暗号ハッシュ値に基づいて計算されることを特徴とする（８）に記載のデータ処理システム。
（１０）前記関連付け手段は前記シグナチャを前記検証ストラクチャに配置するための配置手段を含むことを特徴とする（９）に記載のデータ処理システム。
（１１）前記決定手段は、
前記検証ストラクチャから多数のデータ・レコードを無作為に選択するための無作為選択手段と、
前記無作為に選択されたデータ・レコードの各々に対して、前記無作為に選択されたデータ・レコードに対するロケーション値によって表されたロケーションにおけるセクションに基づいて暗号ハッシュ値を作成するための作成手段と、
前記作成された暗号ハッシュ値と前記無作為に選択されたデータ・レコードにおけるハッシュ値とを比較するための比較手段と
を含むことを特徴とする（９）に記載のデータ処理システム。
（１２）前記決定手段は、
前記検証ストラクチャに対する暗号ハッシュ値を作成するための作成手段と、
前記作成された暗号ハッシュ値を前記シグナチャでもって検証するための検証手段と、
を含むことを特徴とする（１１）に記載のデータ処理システム。
（１３）プログラムの検証において使用するための検証ストラクチャを作成するためのデータ処理システムにおける方法にして、
前記プログラムから、導入部セクション以外の複数個のセクションを選択するステップであって、複数個のセクションのそれぞれのセクションがプログラム・データを含む、ステップと、
前記プログラムにおける前記複数個の選択されたセクション内のプログラム・データから、各選択されたセクションに対する暗号ハッシュ値を作成するステップと、
前記暗号ハッシュ値及び各選択されたセクションに対するロケーション値を、データ・レコードとして検証ストラクチャに記憶するステップであって、前記ロケーション値によって表されたロケーションは前記プログラムにおける前記選択されたセクションのロケーションであるステップと、を含み、
前記作成するステップは、
前記検証ストラクチャに対するシグナチャを作成するステップと、
前記シグナチャを前記検証ストラクチャと関連付けるステップと
を含むことを特徴とする方法。
（１４）前記関連付けるステップは前記シグナチャを前記検証ストラクチャに配置するステップ含むことを特徴とする（１３）に記載の方法。
（１５）プログラムの検証において使用するための検証ストラクチャを作成するためのデータ処理システムにして、
前記プログラムから導入部セクション以外の複数個のセクションを無作為に選択するための無作為選択手段であって、複数のランダムに選択されたセクション内でそれぞれの選択されたセクションは、プログラム・データを含む、手段と、
前記プログラムにおける前記複数個の無作為に選択されたセクションから、各選択されたセクション内のプログラム・データに対する暗号ハッシュ値を作成するための作成手段と、
前記暗号ハッシュ値及び各選択されたセクションに対するロケーション値を、データ・レコードとして検証ストラクチャに記憶するための記憶手段であって、前記ロケーション値によって表されたロケーションは前記プログラムにおける前記選択されたセクションのロケーションである記憶手段と、を含み、
前記作成手段は、
前記検証ストラクチャに対するシグナチャを作成するための第２作成手段と、
前記シグナチャを前記検証ストラクチャと関連付けるための関連付け手段と、
を含むことを特徴とするデータ処理システム。
（１６）前記関連付け手段は前記シグナチャを前記検証ストラクチャに配置するための配置手段を含むことを特徴とする（１５）に記載のデータ処理システム。
（１７）データ処理システムにおいてプログラムを検証するための方法にして、前記プログラムは複数個のデータ・レコードを有する検証ストラクチャを含み、前記複数個のデータ・レコードにおける各データ・レコードは前記プログラムの導入部セクション以外のセクション内のプログラム・データに対する暗号ハッシュ値及びロケーション値を含み、前記ロケーション値は前記セクションのロケーションを表すものにおいて、
前記検証ストラクチャから多数のデータ・レコードを無作為に選択するステップと、
前記無作為に選択されたデータ・レコードの各々に対して、前記無作為に選択されたデータ・レコードに対するロケーション値によって表されたロケーションにおけるセクションに基づいて暗号ハッシュ値を作成するステップと、
前記作成された暗号ハッシュ値と前記無作為に選択されたデータ・レコードにおけるハッシュ値とを比較するステップと
を含む方法。
（１８）プログラムを検証するためのデータ処理システムにして、前記プログラムは複数個のデータ・レコードを有する検証ストラクチャを含み、前記複数個のデータ・レコードにおける各データ・レコードは前記プログラムの導入部セクション以外のセクション内のプログラム・データに対する暗号ハッシュ値及びロケーション値を含み、前記ロケーション値は前記セクションのロケーションを表すものにおいて、
前記検証ストラクチャから多数のデータ・レコードを無作為に選択するための無作為選択手段と、
前記無作為に選択されたデータ・レコードの各々に対して、前記無作為に選択されたデータ・レコードに対するロケーション値によって表されたロケーションにおけるセクションに基づいて暗号ハッシュ値を作成するための作成手段と、
前記作成された暗号ハッシュ値と前記無作為に選択されたデータ・レコードにおけるハッシュ値とを比較するための比較手段と、
を含むデータ処理システム。
（１９）命令の実行が可能なデータ処理システム及び符号化データ処理システムによって読み取り可能な記憶媒体であって、
プログラム・データを含む前記プログラムから導入部セクション以外の複数個のセクションを無作為に選択し、
前記プログラムにおける前記複数個の選択されたセクションから、各選択されたセクション内のプログラム・データに対する暗号ハッシュ値を作成し、
前記暗号ハッシュ値及び各選択されたセクションに対するロケーション値を、データ・レコードとして検証ストラクチャに記憶し、
するための記憶手段と
前記ロケーション値によって表されたロケーションが前記プログラムにおける前記選択されたセクションのロケーションであって、データ処理システムに接続され且つデータ処理システムによってアクセスされる時、前記各手段を活動化するためのプログラムを格納した、データ処理システム及び符号化データ処理システムによって読み取り可能な記憶媒体。
（２０）前記記憶媒体は、ハードディスク・ドライブ、データ処理装置による使用のためのＲＯＭまたはフロッピ・ディスクであることを特徴とする（１９）に記載の記憶媒体。
（２１）プログラム検証のための命令を実行可能なデータ処理システム及び符号化データ処理システムによって読み取り可能な記憶媒体であって、
前記プログラムは複数個のデータ・レコードを有する検証ストラクチャを含み、前記複数個のデータ・レコードにおける各データ・レコードは前記プログラムの、導入部セクション以外のセクション内のプログラム・データに対する暗号ハッシュ値及びロケーション値を含み、前記ロケーション値は前記セクションのロケーションを表すものにおいて、
無作為に選択されたデータ・レコードの各々に対して、前記無作為に選択されたデータ・レコードに対するロケーション値によって表されたロケーションにおけるセクション内のプログラム・データに基づいて暗号ハッシュ値を作成し、
前記作成された暗号ハッシュ値と前記無作為に選択されたデータ・レコードにおけるハッシュ値とを比較し、
データ処理システムに接続され且つデータ処理システムによってアクセスされる時、前記記憶媒体を活動化するプログラムを格納した、データ処理システム及び符号化データ処理システムによって読取可能な記憶媒体。
（２２）前記記憶装置はハードディスク・ドライブ、データ処理装置による使用のためのＲＯＭまたはフロッピ・ディスクであることを特徴とする（２１）に記載の記憶媒体。
【図面の簡単な説明】
【図１】本発明を使用し得るパーソナル・コンピュータの形式のデータ処理システムを示す。
【図２】本発明によるパーソナル・コンピュータ・システムの種々なコンポーネントを示すパーソナル・コンピュータ・システムのブロック図である。
【図３】本発明の好適な実施例に従って示されたＣＤ−ＲＯＭにおけるマルチメディア・タイトルのための作成及び配分プロセスのブロック図である。
【図４】本発明の好適な実施例による内容テーブルにおけるエントリの表示である。
【図５】本発明の好適な実施例に従って示されたシグナチャ・トークン生成モジュールのブロック図である。
【図６】本発明の好適な実施例に従って示されたシグナチャ・トークン検証モジュールのブロック図である。
【図７】本発明の好適な実施例に従って示されたシグナチャ・トークン生成モジュールにおいてシグナチャ・トークンを生成するためのプロセスのフローチャートである。
【図８】本発明の好適な実施例に従って示されたシグナチャ・トークン検証モジュールにおいてマルチメディア・タイトルを検証するためのプロセスのフローチャートである。
【図１】
0003579154.tif 000002
【図２】
0003579154.tif 000003
【図３】
0003579154.tif 000004
【図４】
0003579154.tif 000005
【図５】
0003579154.tif 000006
【図６】
0003579154.tif 000007
【図７】
0003579154.tif 000008
【図８】
0003579154.tif 000009