(57)【特許請求の範囲】
【請求項１】
処理装置と、
処理装置に接続され、セッション鍵により暗号化されたアクセス権制御付きのデータオブジェクトの一部と、復号化を要する少なくとも３つの保護層を有する前記セッション鍵とを含む暗号化された安全パッケージを受信するよう構成された通信装置と、
アクセス権制御付きのデータオブジェクトへのアクセスを制御するように構成され、前記処理装置で実行されるユーザ・プログラムと、
前記ユーザ・プログラムに関連付けされたユーザ・プログラム鍵を用いて前記セッション鍵の第１の保護層を少なくとも部分的に復号化するように構成されたユーザ・プログラム保護モジュールと、
ユーザに関連付けされ、前記処理装置に着脱式に接続され、前記ユーザ・プログラムからアクセス可能であり、前記セッション鍵の第２の保護層を復号化するためユーザ鍵を用いて前記データオブジェクトの使用を前記ユーザに限定するように構成されるユーザ鍵装置と、
前記処理装置に接続され、前記処理装置と関連付けられ、前記ユーザ・プログラムからアクセス可能であり、前記セッション鍵の第３の保護層を復号化するためマシーン鍵を用いて前記データオブジェクトの使用をユーザ側データプロセッサを限定するように構成されたマシーン鍵装置と、
を具備し、
前記ユーザ・プログラム鍵は、前記ユーザ鍵と前記マシーン鍵とから独立に導出されることを特徴とするアクセス権制御付きのデータオブジェクトへのアクセス権を付与するユーザ側データプロセッサ。
【請求項２】
前記ユーザ・プログラムは、前記マシーン鍵を用いて前記処理装置のアイデンティティを認証するため前記マシーン鍵装置と通信するように構成されている、請求項１記載のユーザ側データプロセッサ。
【請求項３】
前記処理装置はディジタル映像へアクセス権制御付きでアクセスするよう構成されている、請求項２記載のユーザ側データプロセッサ。
【請求項４】
前記ユーザ・プログラムは、前記マシーン鍵を用いて前記処理装置のアイデンティティを認証するため、前記マシーン鍵装置と通信するように構成されている、請求項１記載のユーザ側データプロセッサ。
【請求項５】
前記マシーン鍵は、公開マシーン鍵と秘密マシーン鍵とからなる非対称マシーン鍵ペアである、請求項４記載のユーザ側データプロセッサ。
【請求項６】
前記マシーン鍵装置は、前記非対称マシーン鍵ペアを生成するように構成されている、請求項５記載のユーザ側データプロセッサ。
【請求項７】
前記ユーザ・プログラムは、前記マシーン鍵を用いて前記処理装置のアイデンティティを認証するため、前記マシーン鍵装置と通信するように構成され、
前記ユーザ・プログラムは、前記ユーザ鍵を用いて前記ユーザのアイデンティティを認証するため、前記ユーザ鍵装置と通信するように構成されている、請求項１記載のユーザ側データプロセッサ。
【請求項８】
第２の鍵を用いて前記安全パッケージを少なくとも部分的に復号化するように構成された第２の保護モジュールと、
第３の鍵を用いて前記安全パッケージを少なくとも部分的に復号化するように構成された第３の保護モジュールと、
を更に具備する請求項１記載のユーザ側データプロセッサ。
【請求項９】
前記第２の保護モジュールは、前記ユーザ鍵を用いて前記処理装置のアイデンティティを認証するため、前記ユーザ鍵装置と通信するように構成され、
前記第３の保護モジュールは、前記マシーン鍵を用いて前記処理装置のアイデンティティを認証するため、前記マシーン鍵装置と通信するように構成されている、請求項８記載のユーザ側データプロセッサ。
【請求項１０】
前記第２の鍵は前記ユーザ鍵の一部であり、
前記第２の保護モジュールは、前記ユーザ鍵装置から前記第２の鍵を取得するように構成され、
前記第３の鍵は前記マシーン鍵の一部であり、
前記第３の保護モジュールは、前記マシーン鍵装置から前記第３の鍵を取得するように構成されている、請求項８記載のユーザ側データプロセッサ。
【請求項１１】
前記第２の保護モジュール及び前記第３の保護モジュールは前記ユーザ・プログラムの一部である、請求項１０記載のユーザ側データプロセッサ。
【請求項１２】
第３の鍵を用いて前記安全パッケージを少なくとも部分的に復号化するように構成されている第３の保護モジュールを更に具備する請求項１記載のユーザ側データプロセッサ。
【請求項１３】
前記第３の保護モジュールは、前記マシーン鍵を用いて前記処理装置のアイデンティティを認証するため、前記マシーン鍵装置と通信するように構成されている、請求項１２記載のユーザ側データプロセッサ。
【請求項１４】
前記第３の鍵は当該ユーザ側データプロセッサのＭＡＣアドレスである、請求項１３記載のユーザ側データプロセッサ。
【請求項１５】
前記第３の鍵は前記マシーン鍵の一部であり、
前記第３の保護モジュールは前記マシーン鍵装置から前記第３の鍵を取得するように構成されている、請求項１２記載のユーザ側データプロセッサ。
【請求項１６】
前記第３の保護モジュールは前記ユーザ・プログラムの一部である、請求項１５記載のユーザ側データプロセッサ。
【請求項１７】
前記ユーザ・プログラムはハードウェアで実現される、請求項１記載のユーザ側データプロセッサ。
【請求項１８】
前記ユーザ・プログラム保護モジュールは前記ユーザ・プログラムの一部である、請求項１記載のユーザ側データプロセッサ。
【請求項１９】
前記処理装置は汎用コンピュータである、請求項１記載のユーザ側データプロセッサ。
【請求項２０】
前記処理装置及び前記マシーン鍵装置は一つの集積回路に収容されている、請求項１記載のユーザ側データプロセッサ。
【請求項２１】
データ・パッケージング・プログラムを介し、ユーザ・プログラム鍵をユーザ側データプロセッサ上で実行されるように構成されたユーザ・プログラムと関連付ける手順（Ａ）と、
前記データ・パッケージング・プログラムを介し、データオブジェクトの使用が特定のユーザ側データプロセッサに限定されるかどうかを判定する手順（Ｂ）と、
前記データ・パッケージング・プログラムを介し、前記ユーザ・プログラムからアクセス可能であり、マシーン鍵の一部を保持するマシーン鍵装置を、前記特定のユーザ側データプロセッサと関連付ける手順（Ｃ）と、
前記データ・パッケージング・プログラムを介し、暗号化されたセッション鍵の第１の保護層及び第２の保護層の復号化がそれぞれ前記ユーザ・プログラム鍵及び前記マシーン鍵を必要とするように、前記セッション鍵により前記データオブジェクトを暗号化し、前記セッション鍵を暗号化する手順（Ｄ）と、
前記データ・パッケージング・プログラムを介し、前記データオブジェクトの使用が特定のユーザに限定されるべきか判断する手順（Ｅ）と、
前記データ・パッケージング・プログラムを介し、前記ユーザ・プログラムからアクセス可能であり、ユーザ鍵の一部を保持するユーザ鍵装置を、前記特定のユーザと関連付ける手順（Ｆ）と、
前記データ・パッケージング・プログラムを介し、前記暗号化されたセッション鍵の第３の保護層の復号化が前記ユーザ鍵を必要とするように、前記セッション鍵を暗号化する手順（Ｇ）と、
を有し、
前記ユーザ・プログラム鍵は、前記ユーザ鍵と前記マシーン鍵とから独立に導出されることを特徴とするデータオブジェクトの使用を限定する方法。
【請求項２２】
前記データ・パッケージング・プログラムを介し、前記ユーザ・プログラムを通じて前記データオブジェクトの使用を制御する制御エレメントを提供する手順（Ｈ）と、
通信ネットワークを介し、前記暗号化されたデータオブジェクトを前記ユーザ側データプロセッサへ転送する手順（Ｉ）と、
前記通信ネットワークを介し、前記制御エレメントを前記ユーザ側データプロセッサへ転送する手順（Ｊ）と、を更に有する請求項２１記載の方法。
【請求項２３】
前記データ・パッケージング・プログラムを介し、前記制御エレメントが認証され得るように前記制御エレメントにディジタル署名を加える手順（Ｋ）と、
前記通信ネットワークを介し、前記制御エレメントのディジタル署名を前記ユーザ側データプロセッサへ転送する手順（Ｌ）と、
を更に有する請求項２２記載の方法。
【請求項２４】
前記マシーン鍵は、公開マシーン鍵と秘密マシーン鍵とからなる非対称マシーン鍵ペアである、請求項２３記載の方法。
【請求項２５】
前記手順（Ｄ）は、
前記データオブジェクトをセッション鍵により暗号化する手順と、
復号化が前記ユーザ・プログラム鍵と前記マシーン鍵とを必要とするように、前記セッション鍵を暗号化する手順と、
を有する、請求項２１記載の方法。
【請求項２６】
前記ユーザ鍵は、公開ユーザ鍵と秘密ユーザ鍵とからなる非対称ユーザ鍵である、請求項２１記載の方法。
【請求項２７】
データ・パッケージング・プログラムを介し、ユーザ・プログラム鍵をユーザ側データプロセッサ上で実行されるように構成されたユーザ・プログラムと関連付ける手順（Ａ）と、
前記データ・パッケージング・プログラムを介し、暗号化されたセッション鍵の第１の保護層の復号化が前記ユーザ・プログラム鍵を必要とするように、前記セッション鍵によりデータオブジェクトを暗号化し、前記セッション鍵を暗号化する手順（Ｂ）と、
前記データ・パッケージング・プログラムを介し、前記データオブジェクトの使用が特定のユーザ側データプロセッサに限定されるかどうかを判定する手順（Ｃ）と、
前記データ・パッケージング・プログラムを介し、前記ユーザ・プログラムからアクセス可能であり、前記暗号化されたセッション鍵の第２の保護層の復号化のためマシーン鍵の一部を保持するマシーン鍵装置を、前記特定のユーザ側データプロセッサと関連付ける手順（Ｄ）と、
前記データ・パッケージング・プログラムを介し、前記ユーザ・プログラムに、少なくとも前記マシーン鍵に基づいて前記特定のユーザ側データプロセッサを認証し、少なくとも前記マシーン鍵装置と通信することによって、前記データオブジェクトの使用を前記特定のユーザ側データプロセッサに限定させるように構成されたマシーン制御エレメントを作成する手順（Ｅ）と、
通信ネットワークを介し、前記暗号化されたデータオブジェクト及び前記マシーン制御エレメントを前記ユーザ側データプロセッサへ転送する手順（Ｆ）と、
前記データ・パッケージング・プログラムを介し、前記ユーザ・プログラムに前記データオブジェクトへのアクセスを制御させるように構成された制御エレメントの組に前記マシーン制御エレメントを収容する手順（Ｇ）と、
前記データ・パッケージング・プログラムを介し、前記制御エレメントの組に署名を加える手順（Ｈ）であって、前記手順（Ｆ）は前記通信ネットワークを介し前記署名された制御エレメントの組を送信する、手順（Ｈ）と、
前記データ・パッケージング・プログラムを介し、前記データオブジェクトの使用が特定のユーザに限定されるかどうかを判定する手順（Ｉ）と、
前記データ・パッケージング・プログラムを介し、前記ユーザ・プログラムからアクセス可能であり、前記暗号化されたセッション鍵の第３の保護層の復号化のためユーザ鍵の一部を保持するユーザ鍵装置を特定のユーザと関連付ける手順（Ｊ）と、
前記データ・パッケージング・プログラムを介し、前記ユーザ・プログラムに、少なくとも前記ユーザ鍵に基づいて前記特定のユーザを認証し、少なくとも前記ユーザ鍵装置と通信することによって、前記データオブジェクトの使用を前記特定のユーザに限定させるように構成されたユーザ制御エレメントを作成する手順（Ｋ）と、
前記データ・パッケージング・プログラムを介し、前記ユーザ制御エレメントを前記制御エレメントの組に収容する手順（Ｌ）と、
を有し、
前記ユーザ・プログラム鍵は、前記ユーザ鍵と前記マシーン鍵とから独立に導出されることを特徴とするアクセス権制御付きのデータオブジェクトの使用を限定する方法。
【請求項２８】
前記マシーン鍵は、公開マシーン鍵と秘密マシーン鍵とからなる非対称マシーン鍵ペアである、請求項２７記載の方法。
【請求項２９】
前記手順（Ｅ）は、前記データ・パッケージング・プログラムを介し、前記公開マシーン鍵を含むディジタル証明書を前記マシーン制御エレメントに収容する、請求項２８記載の方法。
【請求項３０】
前記データ・パッケージング・プログラムを介し、復号化がさらに前記マシーン鍵を必要とするように前記データオブジェクトを暗号化する手順（Ｍ）を更に有する請求項２７記載の方法。
【請求項３１】
データ・パッケージング・プログラムを介し、ユーザ・プログラム鍵をユーザ側データプロセッサ上で実行されるように構成されたユーザ・プログラムと関連付ける手順（Ａ）と、
前記データ・パッケージング・プログラムを介し、データオブジェクトの使用が特定のユーザ側データプロセッサに限定されるかどうかを判定する手順（Ｂ）と、
前記データ・パッケージング・プログラムを介し、マシーン鍵を前記特定のユーザ側データプロセッサと関連付ける手順（Ｃ）と、
前記データ・パッケージング・プログラムを介し、復号化が前記ユーザ・プログラム鍵及び前記マシーン鍵を必要とするように、セッション鍵により前記データオブジェクトを暗号化し、前記セッション鍵を暗号化する手順（Ｄ）と、
通信ネットワークを介し、前記暗号化されたデータオブジェクトを前記ユーザ側データプロセッサへ転送する手順（Ｅ）と、
ユーザ・プログラムを介し、前記データオブジェクトが復号化の際に前記マシーン鍵を要求するように暗号化されているかどうかを判定する手順（Ｆ）と、
第１の安全モジュール及び第２の安全モジュールを介し、それぞれ前記ユーザ・プログラム鍵及び前記マシーン鍵を用いて前記セッション鍵の第１の保護層及び第２の保護層を復号化する手順（Ｇ）と、
前記データ・パッケージング・プログラムを介し、前記データオブジェクトの使用が特定のユーザに限定されるかどうかを判定する手順（Ｈ）と、
前記データ・パッケージング・プログラムを介し、ユーザ鍵を前記特定のユーザと関連付ける手順（Ｉ）と、
前記データ・パッケージング・プログラムを介し、復号化がユーザ鍵を必要とするように前記データオブジェクトを暗号化する手順（Ｊ）と、
前記ユーザ・プログラムを介し、前記データオブジェクトが復号化の際にユーザ鍵を要求するように暗号化されているかどうかを判定する手順（Ｋ）と、
第３の安全モジュールを介し、前記ユーザ鍵を用いて前記セッション鍵の第３の保護層を更に復号化する手順（Ｌ）と、
を有し、
前記ユーザ・プログラム鍵は、前記ユーザ鍵と前記マシーン鍵とから独立に導出されることを特徴とする、データオブジェクトの使用を限定する方法。
【請求項３２】
前記手順（Ｄ）は、
前記データ・パッケージング・プログラムを介し、対称セッション鍵により前記データオブジェクトを暗号化する手順と、
前記データ・パッケージング・プログラムを介し、解読が前記ユーザ・プログラム鍵と前記マシーン鍵とを必要とするように、前記対称セッション鍵を暗号化する手順と、
を有し、
前記手順（Ｇ）は、
前記第１の安全モジュールと前記第２の安全モジュールとを介し、それぞれ前記ユーザ・プログラム鍵と前記マシーン鍵とにより前記対称セッション鍵を復号化する手順と、
前記ユーザ・プログラムを介し、前記復号化された対称セッション鍵を用いて前記データオブジェクトを復号化する、請求項３１記載の方法。
【請求項３３】
前記ユーザ・プログラム鍵は、公開ユーザ・プログラム鍵と秘密ユーザ・プログラム鍵とからなる非対称ユーザ・プログラム鍵ペアである、請求項３２記載の方法。
【請求項３４】
前記ユーザ・プログラム鍵は対称鍵である、請求項３２記載の方法。
【請求項３５】
前記マシーン鍵は、公開マシーン鍵と秘密マシーン鍵とからなる非対称マシーン鍵ペアである、請求項３２記載の方法。
【発明の詳細な説明】
【０００１】
〔発明の分野〕
本発明は、一般的に、データオブジェクトへのアクセス権の制御及び行使に係り、特に、データオブジェクトの使用を特定のデータプロセッサ及び／又はユーザに限定する技術に関する。
【０００２】
〔関連技術の説明〕
媒体のディジタル表現には、特に、テキストファイル、ディジタルオーディオ、ディジタル画像、及び、ディジタルマルチメディアファイルが含まれる。これらの媒体表現及び関連技術の利点は多種多様である。これらの媒体のディジタル表現は、媒体の生産、配布、及び、使用／提示における著しい進歩を可能にさせた。しかし、これらの表現には欠点が伴う。ディジタル媒体は、簡単に複製（コピー）及び／又は再生され、無許可の複製又は使用を規制することは難しい。伝送が容易であることも無許可の配布の規制を困難にさせる。
【０００３】
ある人のディジタル媒体における所有権を規制し堅持する問題を取り扱うシステムは開発されているが、他者によるディジタル媒体の使用を依然として許している。このようなシステムの一つは、１９９８年１２月１日にBenson外に発行され、本願と同一出願人に譲渡された、発明の名称が"METHOD AND SYSTEM FOR MANAGING A DATA OBJECT SO AS TO COMPLY WITH PREDETERMINED CONDITIONS FOR USAGE"である米国特許５，８４５，２８１号明細書に記載されている。別のシステムは、１９９９年４月６日にGinter外に発行された、発明の名称が"SYSETMS AND METHODS FOR SECURE TRANSACTION MANEGEMENT AND ELECTRONIC RIGHTS PROTECTION"である米国特許５，８９２，９００号明細書に記載されている。
【０００４】
既存のシステムは、一般的に、ユーザ側コンピュータで実行されるクライアント・プログラム（ユーザ・プログラム）と、サーバー側コンピュータで実行されるサーバー・プログラム（データパッケージングプログラム）とを含む。コンピュータは、一般的に、コンピュータネットワークを介して連結される。サーバー・プログラムは、ディジタル媒体表現（データオブジェクト）を、データオブジェクトの使用を管理する規則の組と共に、安全パッケージに一括（パッケージ化）する。安全パッケージは、クライアント・プログラムだけがこの安全パッケージを復号化し使用できるように暗号化される。次に、安全パッケージは、クライアント・プログラムへ送られ、クライアント・プログラムは、予め定められた使用規則に従ってデータオブジェクトの使用を許可する。データオブジェクトは、たとえば、MPEGフォーマットのディジタル映像でもよい。その場合、サーバー・プログラムは、映像ファイルと、このファイルの使用を管理する規則の組とを、安全パッケージにまとめる。サーバーは、安全パッケージをクライアント・プログラムへ渡す。クライアント・プログラムは、ファイルに付随した規則に従って映像シーケンスを表示するであろう。
【０００５】
使用規則の制限は、一般的に、クライアント・プログラムの能力によって画定される。すなわち、規則は、典型的に、クライアント・プログラムにある種の動作を許可するか、或いは、許可しない命令であるか、又は、動作を実行する命令である。したがって、クライアント・プログラムは、規則によって記述された動作を認識し実施し得ることが求められる。典型的なクライアント・プログラムは、
（ａ）データオブジェクトを使用若しくは提示できる回数、
（ｂ）データオブジェクトは複製されたかどうか、
（ｃ）データオブジェクトのハードコピー若しくは印刷出力を作成できるか、
のような事柄を適宜指定する規則を考慮する。クライアント・プログラムがそのクライアント・プログラムの動く装置上で関連した動作を実行する能力を備えている限り、その他の規則を作成してもよい。
【０００６】
〔発明の概要〕
本発明は、アクセス権制御付き媒体システムの能力を拡張するシステム及び関連した方法を提供する。本発明のシステム及び方法は、データオブジェクトを使用するデータプロセッサの識別情報（アイデンティティ）の指定及び認証を行う。このシステムは、更に、指定されたデータプロセッサだけがデータオブジェクトを復号化し使用することができるように、データオブジェクトとその関連した規則の暗号化を行う。このシステム及び方法は、さらに、データオブジェクトを使用するユーザの本人性情報（アイデンティティ）の指定及び認証を行う。このシステムは、指定されたユーザだけがデータオブジェクトを復号化し使用することができるようにデータオブジェクトとその関連した規則の暗号化を行う。
【０００７】
一実施例において、システムは、通信ネットワークによって連結されたデータオブジェクトプロバイダ側データプロセッサ及びユーザ側データプロセッサを含む。マシーン鍵装置は、好ましくは、ユーザ側データプロセッサのための暗号、復号及び認証機能を実現するユーザ側データプロセッサの組込み型コンポーネントである。ユーザ鍵装置は、好ましくは、ユーザ側データプロセッサに連結し、ユーザのための暗号、復号及び認証機能を実現する着脱式携帯型装置である。
【０００８】
一実施例において、付加的な暗号化の層を用いることによって、データオブジェクトの使用を特定のユーザ及び特定のデータプロセッサに制限する。この方法は、好ましくは、マシーン鍵装置によって復号化できるようにデータオブジェクトを暗号化し、ユーザ鍵装置によって復号化できるようにデータオブジェクトを更に暗号化する。この実施例は、データオブジェクトの使用を特定のデータプロセッサ若しくはユーザに制限又は限定するため、アクセス権制御付き媒体システム以外にも適用可能である。その場合、規則は、典型的に、データオブジェクトに関連付けられた規則を組み込む必要が無く、ユーザ鍵装置及びマシーン鍵装置のための暗号化はデータオブジェクトの使用に関する制限として作用する。
【０００９】
他の一実施例において、本発明の方法は、マシーン鍵装置及びユーザ鍵装置の認証を要求する規則を用いることによって、データオブジェクトの使用を特定のユーザ及び特定のデータプロセッサに限定する。この方法は、好ましくは、マシーンディジタル証明書を規則の組に組み込み、組み込まれたマシーンディジタル証明書に基づいてマシーン鍵装置の認証を要求する規則を作成する。この方法は、好ましくは、ユーザディジタル証明書を規則の組に組み込み、組み込まれたユーザディジタル証明書に基づいてユーザ鍵装置の認証を要求する規則を作成する。
【００１０】
本発明の一実施例は、条件付き許可データオブジェクトへアクセスするユーザ側データプロセッサである。ユーザ側データプロセッサは、処理装置に接続され、条件付き許可データオブジェクトの一部分を収容する暗号化された安全パッケージを受信するよう構成された通信装置を含む。ユーザ側データプロセッサは、処理装置上で動くユーザ・プログラムを含み、ユーザ・プログラムは、条件付き許可データオブジェクトへのアクセスを制御するよう構成される。ユーザ側データプロセッサは、ユーザ・プログラム鍵を使用して安全パッケージを少なくとも部分的に復号化するユーザ・プログラム保護モジュールも含む。ユーザ側データプロセッサは、処理装置に接続され処理装置に付随し、ユーザ・プログラムによってアクセス可能なマシーン鍵装置を更に含み、このマシーン鍵装置は、データオブジェクトの使用を、マシーン鍵を使用するユーザ側データプロセッサに限定するよう構成される。
【００１１】
本発明の一実施例は、データオブジェクトの使用を制限する方法である。この方法は、ユーザ・プログラム鍵を、ユーザ側データプロセッサ上で動くように構成されたユーザ・プログラムに関連付ける。この方法は、データオブジェクトの使用が特定のユーザ側データプロセッサに制限されているかどうかを判定する。この方法は、マシーン鍵装置を特定のユーザ側データプロセッサに関連付け、ここで、マシーン鍵装置はユーザ・プログラムからアクセスすることが可能であり、マシーン鍵装置はマシーン鍵の一部を保持する。この方法は、さらに、復号化の際にユーザ・プログラム鍵とマシーン鍵とが必要になるようにデータオブジェクトを暗号化する。
【００１２】
本発明の一実施例は、条件付き許可データオブジェクトの使用を制限する方法である。この方法は、ユーザ・プログラム鍵を、ユーザ側データプロセッサ上で動くように構成されたユーザ・プログラムに関連付ける。この方法は、データオブジェクトの使用が特定のユーザ側データプロセッサに制限されているかどうかを判定する。この方法は、更に、マシーン鍵装置を特定のユーザ側データプロセッサに関連付け、ここで、マシーン鍵装置はユーザ・プログラムからアクセスすることが可能であり、マシーン鍵装置はマシーン鍵の一部を保持する。この方法は、さらに、少なくともマシーン鍵に基づいて特定のユーザ側データプロセッサを認証し、少なくともマシーン鍵装置と通信することによって、ユーザ・プログラムにデータオブジェクトの使用を特定のユーザ側データプロセッサに制限させるように構成されたマシーン制御エレメントを作成する。この方法は、暗号化されたデータオブジェクト及びマシーン制御エレメントをユーザ側データプロセッサへ送信する。
【００１３】
本発明の一実施例は、データオブジェクトの使用を制限する方法である。この方法は、ユーザ・プログラム鍵を、ユーザ側データプロセッサ上で動くように構成されたユーザ・プログラムに関連付ける。この方法は、データオブジェクトの使用が特定のユーザ側データプロセッサに制限されているかどうかを判定する。この方法は、マシーン鍵を特定のユーザ側データプロセッサに関連付ける。この方法は、さらに、復号化の際にユーザ・プログラム鍵とマシーン鍵とが必要になるようにデータオブジェクトを暗号化する。この方法は、暗号化されたデータオブジェクトをユーザ側データプロセッサへ送る。この方法は、さらに、復号化の際にマシーン鍵が必要となるように、データオブジェクトが暗号化されたかどうかを判定する。この方法は、さらに、ユーザ・プログラム鍵とマシーン鍵を用いてデータオブジェクトを復号化する。
【００１４】
本発明の一実施例は、データオブジェクトの使用を制御する安全データパッケージである。このパッケージは、復号化の際にユーザ・プログラム鍵及びマシーン鍵の両方が必要になるように暗号化されたデータオブジェクトの条件付き部分を含む。ユーザ側データプロセッサは、マシーン鍵を保持するよう構成された常時取り付けられたマシーン鍵装置を含む。条件付き部分は、データオブジェクトの基本部分を含む。
【００１５】
以下、同じ参照番号が対応したコンポーネントを表わす添付図面を参照する。
【００１６】
〔実施例の詳細な説明〕
以下の説明では、本発明の第１実施例及び数通りの代替的な実施例を詳述する。当業者が容易に認めるように、代替的な実施例に関して記述された特徴は、本発明の第１実施例の状況、並びに、その他の代替的な実施例の状況でも適用可能である。
【００１７】
１．概要
図１Ａは、本発明の第１実施例による全体的なデータフローを説明するフローチャートである。フローチャートは、データオブジェクトプロバイダ部１０２とユーザ部１０４に分割される。第１実施例において、データオブジェクトプロバイダ部１０２は、一般的に、データオブジェクトプロバイダ側データプロセッサ２００（図２）によって実行され、ユーザ部１０４は、一般的に、ユーザ側データプロセッサ３００（図３）によって実行される。
【００１８】
データオブジェクトプロバイダ部１０２において、データオブジェクト１０６は、著作者によって作成される。著作者は、ユーザによるデータオブジェクト１０６の使用法に関する条件を判定する。データオブジェクト１０６及び使用法条件１０８は、データパッケージングプログラム１１０に入力され、データパッケージングプログラム１１０は、データオブジェクト１０６と、入力された使用法条件１０８に基づく制御データ１１６との安全データパッケージ１１２を作成する。このようにして一括化（パッケージ化）された後、データオブジェクト１０６はユーザ・プログラム１１４からアクセスできるようになる。
【００１９】
データオブジェクト１０６は、制御データ１１６の組と共にパッケージ化される。制御データ１１６は、データオブジェクト１０６の全てのユーザに対して同一である制御データの一般的な集合でもよい。これは、データオブジェクト１０６が小売業者又は掲示板へ送られ、ユーザがそこからデータオブジェクトを獲得するような場合である。データオブジェクト１０６は、データパケット１０６を使用するユーザからの要求の結果としてパッケージ化してもよい。その場合、パッケージは、特にそのユーザに適合した制御データ１１６を含む。この制御データ１１６は、制御データのユーザ集合とも呼ばれる。制御データは、たとえば、ユーザによって購入された使用回数を含む。典型的に、制御データのユーザ集合は、制御データの一般的な集合に基づいて作成され、少なくとも一般的な集合の部分集合を含む。制御データ１１６のユーザ集合は、必ずしも、特定のユーザに適合させなくてもよい。制御データの一般的な集合に基づいて作成された制御データ１１６の全ての集合は、制御データのユーザ集合と呼ばれる。かくして、制御データ１１６の集合は、ある局面では一般的な集合であり、他の局面ではユーザ集合である。
【００２０】
上記のデータパッケージングは、データパッケージングプログラム１１０を用いて著作者自身が行うことができる。或いは別の例では、著作者は、自分のデータオブジェクト１０６を仲介者へ送信し、仲介者は、安全パッケージ１１２を作成するため、データオブジェクト１０６及び著作者によって判定された使用法条件をデータパッケージングプログラム１１０へ入力する。著作者は、自分のデータオブジェクト１０６を仲介者へ販売することもできる。その場合、仲介者は，自分専用の使用法条件をデータパッケージングプログラム１１０へ適用する。著作者は、保護パッケージ内のデータオブジェクト１０６を仲介者へ提供し、仲介者は、データオブジェクト１０６をパッケージ化し、仲介者の営業活動に関連した更なる制御データを追加する。これらの代替的な実施例の様々な組合せを考えることができる。
【００２１】
図１Ａのフローチャートのユーザ部１０４において、ユーザ・プログラム１１４は安全パッケージ１１２を受信する。ユーザ・プログラム１１４は、好ましくは、ユーザ及び／又はユーザ側データプロセッサの識別情報（同一性）を認証するため、マシーン鍵装置１１８及びユーザ鍵装置１２０と相互作用し、安全パッケージ１１２のパッケージを解く。パッケージの開梱に成功した後、ユーザ・プログラム１１４は、データオブジェクト１０６を使用するための最終的な形式１２２で提示する。使用後、データオブジェクト１０６は、好ましくは、安全パッケージ１１２に再梱包（再パッケージ化）される。
【００２２】
制御データ１１６は、好ましくは、オブジェクト１０６の使用法に関連した全ての操作を制御する制御エレメントを含む。制御エレメントの個数は、好ましくは、無制限である。データプロバイダは、データオブジェクト１０６の使用法の所定の条件を提示するため、任意の個数の制御エレメントを定義する。しかし、データパッケージングプログラム１１０及びユーザ・プログラム１１４は、制御エレメントの全体を取り扱うため、互換性のあるプログラムコードをもつ必要がある、という制約がある。制御エレメントは、関連したデータオブジェクト１０６の使用法を制御するため、データ、スクリプト、又は、ユーザ・プログラム１１４によって実行されるプログラムコードを収容することができる。スクリプト、及び、プログラムコードは、条件文又はその他の文を含み、これらの文は、データオブジェクト１０６の使用法を制御するため、ユーザ側データプロセッサ３００で関連したオブジェクト及びシステムパラメータを用いて処理される。
【００２３】
図１Ｂは、本発明の他の一実施例による全体的なデータフローを説明するフローチャートである。他の一実施例によれば、パッケージングプログラム１１０は、データオブジェクト１０６及び使用条件１０８にそれぞれ別々の安全パッケージ１１２Ａ及び１１２Ｂを作成する。別々の安全パッケージ１１２Ａ及び１１２Ｂは、ユーザ・プログラム１１４へ別々に送られる。
【００２４】
一部の媒体フォーマットの場合、安全パッケージ１１２は、完全なデータオブジェクト１０６を格納する必要がない。一実施例において、データオブジェクト１０６の一部分だけが安全パッケージ１１２に組み入れられる。このデータオブジェクトの一部分は、この一部分が安全パッケージに組み入れられなければ、データオブジェクト１０６が実際的に役に立たなくなる部分である。この部分には、最大でデータオブジェクト１０６の全体を収容することができる。MPEGのようなディジタル映像の場合、たとえば、映像セグメントのキーフレームの一部だけ、又は、全部が、映像セグメント全体を保護するためしっかりとパッケージングされる。
【００２５】
２．システム及びデータ保護
本発明は、様々な保護機能を組み込むため暗号化技術を利用する。対称鍵暗号と非対称鍵暗号の少なくとも２種類の暗号が本発明の種々の局面に従って使用される。
【００２６】
対称鍵暗号は、暗号と復号の両方で一つの鍵を利用する。安全に通信しようとする双方当事者は、対称鍵を保持する必要がある。セキュアメッセージは、対称鍵を用いてメッセージを暗号化し、メッセージを転送し、そして、同じ対称鍵を用いてメッセージを復号化することによって伝達される。対称鍵暗号は、当事者が保持している対称鍵を用いて暗号化したメッセージを当事者に送信することにより当事者を認証するため使用できる。当事者がメッセージを復号化できた場合、当事者の本人性が復号化されたメッセージを調べることによって検証される。対称鍵暗号方式の一つの周知のシステムはデータ暗号化標準(DES:Data Encryption Standard)である。DESは、データ暗号アルゴリズム(DEA)を記述する米国政府標準(FIPS:Fedeal Information Processing Standard)である。
【００２７】
非対称鍵暗号方式は、典型的に公開鍵と秘密鍵と呼ばれる一対の関連した鍵により構成される鍵のペアを使用する。公開鍵は典型的に公開され、秘密鍵は一方の当事者によって秘密に保持される。非対称鍵暗号方式は、一方の当事者が、両当事者間で秘密鍵を転送することなく、セキュアメッセージを他方の当事者へ送信することを可能にする。相手方と通信することを希望する一方の当事者は、典型的に、相手方の公開鍵を用いてメッセージを暗号化する。暗号化されたメッセージは、相手方へ転送される。相手方の当事者は、対応した自分の秘密鍵でそのメッセージを復号化する。非対称鍵暗号は、当事者を認証するためにも使用できる。認証されるべき当事者は、確認済みのデータの組を自分の秘密鍵を用いて暗号化する。暗号化されたデータが対応した公開鍵で復号化できた場合、暗号化した方の当事者は、対応した秘密鍵を所持していたことに間違いない。したがって、その当事者は、秘密鍵が機密解除されていないならば、認証される。一つの周知の非対称暗号用のシステムは、1978年にマサチューセッツ工科大学においてRivert、Shamir及びAdelmanによって開発されたRSAである。
【００２８】
非対称鍵暗号技術は、メッセージ署名として知られている処理においてメッセージの信憑性を検証するためにも使用できる。この場合、メッセージの一方向性ハッシュが送信側の秘密鍵によって暗号化される。この暗号化された一方向性ハッシュは署名として知られている。この署名はメッセージ本体と共に送信される。受信側は、メッセージ及び署名を受信したとき、送信側の公開鍵を用いて署名（暗号化されたハッシュ）を復号化する。受信側は、送信側で使用されたハッシュ関数と同じ一方向性ハッシュ関数を使用して、受信メッセージのハッシュを再生する。復号化されたハッシュと、再生されたハッシュとが一致する場合、メッセージは、送信側によって送信されたメッセージと相違しない。署名を検証するために使用された公開鍵の信憑性を保証するため、ディジタル証明書が開発された。ディジタル証明書は、公開鍵の信憑性を保証することができる信頼できる機関によって署名された公開鍵である。ディジタル証明書は、安全な通信及び認証を促進するため、容易に交付され、本物であることが証明される。対称鍵暗号技術は、ハッシュを暗号化するため非対称鍵ではなく対称鍵を使用することによって、メッセージの信憑性を検証するためにも使用できる。
【００２９】
暗号に関する上記情報及び更なる情報は当業者にとって周知の事項であり、専門外の人が本発明を容易に理解できるようにするためだけに記載されている。素人のための暗号法の優れた入門書は、Phil Zimmermann著、”Introduction to Cryptography”であり、www.pgpi.org/doc/guide/6.5/en/intro/からPDFファイル形式でダウンロードすることができる。公開鍵基盤技術(PKI:Public Key Infrastructure)についてワールド・ワイド・ウェブ(WWW)を検索することによって、暗号技術に関するいくつかの優れたリソースが得られる。
【００３０】
３．システムコンポーネント
Ａ．データオブジェクトプロバイダ側データプロセッサ
図２は、第１実施例によるデータオブジェクトプロバイダ側データプロセッサ２００のシステムブロック図である。上述の通り、データオブジェクトプロバイダは、データオブジェクトの著作者、データオブジェクトの所有者、データオブジェクトの仲介者、又は、データオブジェクトを配布しようとする機関などであり、データオブジェクトの使用は制御されている。データプロセッサ２００は、好ましくは、ＣＰＵ２０２と、メモリ２０４と、通信装置２０６とを具備し、これらはバス２０８によって相互接続されている。通信装置２０６は、好ましくは、安全にパッケージ化されたデータオブジェクト１１２を転送するため、データオブジェクトプロバイダ側データプロセッサ２００に、一台以上のユーザ側データプロセッサ３００との通信を可能にさせる。通信装置２０６は、例えば、イーサネット（登録商標）又はインターネットへ接続するため使用される媒体アクセスコントローラ（ＭＡＣ）である。図２に示されるように、ディスプレイ２１０、キーボード２１２、プリンタ２１４、大容量記憶装置２１６、及び、ＲＯＭ２１８のようなその他の通常のコンポーネントもバス２０８に接続される。メモリ２０４は、好ましくは、ネットワーク及び通信プログラム２２０と、オペレーティングシステム（ＯＳ）２２２とを保持する。上述の全ての要素は、周知であり、市販されている。メモリ１１は、データパッケージングプログラム１１０と、好ましくは、データオブジェクト１０６及び／又は制御データ１１６用のデータベース２２４と、を保持する。現在の動作に依存して、一つ以上のデータオブジェクト１０６が図示されるようなメモリ２０４、又は、大容量記憶装置２１６に保持される。データプロバイダ側データプロセッサ２００は、好ましくは、安全な環境に設置される。
【００３１】
Ｂ．ユーザ側データプロセッサ
図３Ａに示されたユーザ側データプロセッサは、汎用プロセッサ若しくは専用プロセッサである。ユーザ側データプロセッサ３００は、好ましくは、ＣＰＵ３０２と、メモリ３０４と、通信装置３０６と、を含み、これらはバス３０８によって相互接続されている。通信装置３０６は、好ましくは、ユーザ側データプロセッサ３００に、安全にパッケージ化されたデータオブジェクト１１２を受信するため、データオブジェクトプロバイダ側データプロセッサ２００との通信を行わせる。通信装置３０６は、例えば、イーサネット（登録商標）又はインターネットへ接続するため使用される媒体アクセスコントローラ（ＭＡＣ）である。データオブジェクトプロバイダ側データプロセッサ２００とユーザ側データプロセッサ３００は、好ましくは、通信ネットワーク（図示せず）によって接続される。図３Ａに示されるように、ディスプレイ３１０、キーボード３１２、プリンタ３１４、サウンドシステム３２６、ＲＯＭ３１８及び大容量記憶装置３１６のようなその他の通常の手段がバス３０８に接続される。メモリ３０４は、好ましくは、ネットワーク及び通信プログラム３２０と、オペレーティングシステム（ＯＳ）３２２と、を保持する。上述の全ての要素は、周知であり、市販されている。本発明のために、メモリ３０４は、ユーザ・プログラム１１４を保持し、オプション的に、データオブジェクト１０６及び／又は制御データ１１６の蓄積用のデータベース３２４を保持する。現在の動作に依存して、データパッケージ１１２は、図示されるようにメモリ３０４に保持されるか、或いは、大容量記憶装置３１６に保持される。ユーザ・プログラム１１４は、好ましくは、ユーザ・プログラム１１４が安全な動作を実行するため用いるユーザ・プログラム鍵１１５を保持する。
【００３２】
他の一実施例において、ユーザ側データプロセッサ３００は、汎用コンピュータと組み合わせて使用される周辺装置若しくはプラグ・イン式カードである。本例の場合、データプロセッサ３００は、好ましくは、ハードウェア若しくはソフトウェアに組み込まれたユーザ・プログラム１１４を含む。さらに別の一実施例では、ユーザ側データプロセッサ３００は、データオブジェクト１０６を復号化し、提示装置用の出力信号を生成する能力を備えた装置である。提示装置は、例えば、テレビ受像機、ステレオ、或いは、プリンタである。ユーザ側データプロセッサ３００は、テレビ受像機と一緒に使用するセットトップボックスでもよい。
【００３３】
Ｃ．鍵装置
本発明の第１実施例によれば、ユーザ側データプロセッサ３００は、マシーン鍵装置１１８とユーザ鍵装置１２０とを含み、これらの鍵装置は、直接若しくは間接にバス３０８へ接続される。各鍵装置は、好ましくは、暗号及び／又は復号（解読）ロジックと、暗号及び／又は復号鍵又は鍵セットとを有する保護装置である。第１実施例において、マシーン鍵装置１１８、１２０は、非対称暗号／認証を使用し、その場合、マシーン鍵１１９及びユーザ鍵１２１は、好ましくは、非対称鍵ペアの秘密鍵である。或いは、鍵装置１１８と１２０は、対称暗号を使用してもよく、その場合、マシーン鍵１１９及びユーザ鍵１２１は対称鍵である。さらに別の実施例では、マシーン鍵１１９及びユーザ鍵１２１は、暗号鍵ではなく、識別コードでもよい。
【００３４】
マシーン鍵装置１１８は、一般的に、簡単に持ち運べないように構成されたユーザ側データプロセッサ３００に組み込まれたコンポーネントである。マシーン鍵装置１１８は、ユーザ側データプロセッサ３００に常に取り付けられる。例えば、マシーン鍵装置１１８は、ユーザ側データプロセッサ３００（コンピュータ）のマザーボードに一体化される。或いは、マシーン鍵装置１１８は、コンピュータの筐体を取り外さなければカードを取り外すことができないようにコンピュータの拡張カードスロットによって接続されたカードでもよい。ユーザ鍵装置１２０は、一般的に、ユーザ側データプロセッサ３００の携帯型若しくは着脱式のコンポーネントであり、容易に取り外して代替のユーザ側データプロセッサ３００に再接続することができる。ユーザ鍵装置１２０は、ユーザ側データプロセッサ３００上の受け口に接続できるスマートカードでもよい。第１実施例の場合、マシーン鍵装置１１８は、ユーザ側データプロセッサ３００に付随し、ユーザ鍵装置１２０は、データオブジェクト１０６のユーザが携帯する。
【００３５】
第１実施例において、マシーン鍵装置１１８及びユーザ鍵装置１２０は、暗号機能及び復号機能を実行するように構成される。鍵装置１１８及び１２０の暗号及び復号能力を使用することによって、ユーザ・プログラム１１４は、メッセージ及び当事者の認証の機能を実行し得る。鍵装置１１８及び１２０が非対称鍵技術を使用する場合、これらの装置は、好ましくは、鍵のペアを作成し、秘密鍵を記憶するように構成される。公開鍵は、鍵装置１１８及び１２０から持ち出され、ディジタル証明書は、持ち出された鍵から作成することができる。鍵装置１１８及び１２０が対称鍵技術を使用する場合、これらの鍵装置は、好ましくは、多数の対称鍵を記憶し、各対称鍵にはその鍵の有効期間がある。
【００３６】
マシーン鍵装置１１８によって得られる機能は、従来技術によるセキュアハードウェアの暗号／復号装置に組み込むことが可能である。ユーザ鍵装置１２０によって得られる機能は、従来技術による能動的コンポーネントを具備したスマートカード、若しくは、クレジットカードサイズの装置に組み込むことが可能である。
【００３７】
他の一実施例において、鍵装置１１８及び１２０は、暗号機能を備えなくてもよい。この場合、鍵装置１１８及び１２０は、対称鍵又は非対称鍵を与えるだけであり、暗号化及び復号化の機能は、ユーザ・プログラム１１４のようなユーザ側データプロセッサ３００上で動作するソフトウェアに組み込まれ得る。さらに別の一実施例では、鍵装置１１８及び１２０は、識別コードの形式でマシーン鍵１１９若しくはユーザ鍵１２１を与えるだけであり、この識別コードは、ユーザ・プログラム１１４がユーザ側データプロセッサ又はユーザの本人性を照合するため暗号を用いることなく読み取ることができる。たとえば、マシーン鍵装置１１８は、ユーザ側データプロセッサ３００用の媒体アクセスコントローラ（ＭＡＣ）でもよく、媒体アクセスコントローラからは固有のＭＡＣアドレスが読み出される。ＭＡＣアドレスは、ＭＡＣを識別するため、すなわち、ＭＡＣが搭載されたユーザ側データプロセッサ３００を識別するため、マシーン鍵１１９として使用される。ユーザ鍵装置１２０は、例えば、ユーザがユーザを認証するために使用され得る識別コードの形式でユーザ鍵１２１を、キーボード３１２を用いて入力するように要求されるならば、ユーザ側データプロセッサ３００に取り付けられたキーボードでもよい。
【００３８】
Ｄ．保護（セキュリティ）モジュール
第１実施例によれば、図３Ｂに示されるように、ユーザ・プログラム１１４は、多数の保護モジュール３５２、３５４及び３５６を含む。保護モジュール３５２、３５４及び３５６は、鍵装置１１８及び１２０とつながり、暗号及び復号のようなセキュリティ機能を実現する。保護モジュール３５２、３５４及び３５６は、好ましくは、ソフトウェア若しくはコードセクション、又は、ユーザ・プログラムコードに含まれるプログラムクラスである。保護モジュール３５２、３５４及び３５６は、ユーザ・プログラム１１４とは別個のソフトウェアモジュールでもよい。保護モジュール３５２、３５４及び３５６の機能は、一つ以上のハードウェアモジュールに組み込んでもよい。
【００３９】
第１の保護モジュール（又は、ユーザ・プログラム保護モジュール）３５２は、ユーザ・プログラム１１４のため、鍵装置に関して既に説明した暗号、復号、メッセージ（署名）認証、及び、当事者認証の機能の一部若しくは全部を実現する。第１の保護モジュール３５２は、ユーザ・プログラム１１４が、データオブジェクトプロバイダ側データプロセッサ２００から基本安全パッケージ１１２を受け取ることができるようにさせる。第１の保護モジュール３５２は、そのセキュリティ機能の一部若しくは全部のため第１の鍵（ユーザ・プログラム鍵）を使用する。鍵装置１１８及び１２０に関して説明した上述の変形例は、第１の保護モジュール３５２にも当てはまる。例えば、ユーザ・プログラム鍵１１５は、対称鍵、若しくは、非対称鍵である。
【００４０】
第１実施例では第１の保護モジュール３５２が組み込まれているが、第１の保護モジュールを組み込むことは本発明を機能させるために不可欠な要素ではあに。しかし、第１の保護モジュール３５２は、安全パッケージと通信する能力を維持したまま、第２の保護モジュール３５４及び第３の保護モジュール３５６の動作を無効にさせることができる。この機能によって、データオブジェクトプロバイダがデータオブジェクト１０６の使用を特定のユーザ若しくはデータプロセッサ３００に制限することを望まない場合でも、データオブジェクト１０６をシステムと共に使用することが可能になる。
【００４１】
第２の保護モジュール３５４はユーザ鍵装置１２０とつながる。第１実施例の場合、第２の保護モジュール３５４は最低限の機能しかなく、暗号、復号、当事者認証、及び、署名照合のような殆どのセキュリティ機能は、ユーザ鍵装置１２０によって取り扱われる。第２の保護モジュール３５４は、本例の場合には、依然として、上述のユーザ鍵装置のセキュリティ機能と協働して、ユーザ鍵装置１２０を認証するために十分な機能を備えている。例えば、第２の保護モジュール３５４は、データをユーザ鍵装置１２０へ送信し、ユーザ鍵装置１２０はその秘密鍵を使用してこのデータを暗号化する。第２の保護モジュールは、次に、ディジタル証明書に含まれるような対応した公開鍵を使用して暗号化データを復号化することによって、ユーザ鍵装置１２０を認証する。この第１実施例の場合、第２の鍵３５５は第２の保護モジュール３５４に収容する必要がない。
【００４２】
他の一実施例では、セキュリティ機能の大部分若しくは全部が、ユーザ鍵装置１２０ではなく、第２の保護モジュール３５４に組み込まれる。その場合、ユーザ鍵装置１２０は、ユーザ鍵１２１を供給するだけであり、このユーザ鍵は、第２の保護モジュールが、さもなければユーザ鍵装置１２０に組み込まれたであろうセキュリティ機能を実現するために使用する第２の鍵３５５である。さらに別の代替的な実施例の場合、ユーザ鍵装置１２０の機能は最小限に抑えられ、ユーザがキーボード３１２を使ってパスワード若しくはパスコードの形式でユーザ鍵１２１を入力することだけをサポートする。その場合、セキュリティ機能のため第２の保護モジュール３５４によって使用される第２の鍵３５５は、第２の保護モジュール３５４自体に保持される。第２の保護モジュール３５４は、この場合、好ましくは、ユーザ鍵装置１２０によって供給されたコードに基づいてユーザを認証するように構成される。さらに、第２の保護モジュール３５４は、この場合には、好ましくは、ユーザ認証の際に、復号化のような要求されたセキュリティ機能を実行するようにも構成される。鍵装置１１８及び１２０に関して説明した変形例は、第２の保護モジュール３５４にも適用される。例えば、第２の鍵１１５は、対称鍵でもよく、或いは、非対称鍵ペアでもよい。
【００４３】
第３の保護モジュール３５６の機能的な要求条件は、好ましくは、第２の保護モジュール３５４の機能的な要求条件と類似しているが、ユーザ鍵装置１２０の代わりにマシーン鍵装置１１８とつながる。第３の保護モジュール３５６の第３の鍵３５７は、同様に、しかし、必須的ではなく、選択された実施例に応じて、マシーン鍵装置１１８によって供給されたマシーン鍵１１７でもよく、或いは、第３の保護モジュール３５６によって保持される別個の鍵でもよい。
【００４４】
一実施例において、第１の保護モジュール３５２、第２の保護モジュール３５４及び第３の保護モジュール３５６は、一つ若しくは二つのモジュールにまとめてもよい。これらのモジュールは、ユーザ・プログラム１１４内では個別に識別可能なユニットである必要は無く、ユーザ・プログラム１１４に完全に一体化させてもよい。一実施例において、本発明は、第２の保護モジュール３５４又はユーザ鍵装置１２０を組み込む必要がなく、その場合、ユーザ認証及びユーザ暗号は実行しなくてもよい。他の実施例では、本発明は、第３の保護モジュール３５６又はマシーン鍵装置１１８を組み込む必要が無く、その場合、マシーン認証及びマシーン暗号は実行しなくてもよい。
【００４５】
４．安全パッケージのユーザ及びマシーン暗号
Ａ．安全パッケージの一般的な実施例
一般的な実施例において、データオブジェクト１０６は、第１の保護モジュール３５２、第２の保護モジュール３５４及び第３の保護モジュール３５６による復号のため、データオブジェクト１０６を逐次的に暗号化することによって安全パッケージ１１２にカプセル化される。図４Ａには、本実施例に従って安全パッケージ１１２内でデータオブジェクト１０６を保護する３層の暗号が示されている。データオブジェクト１０６は、第１の保護モジュール鍵１１５を用いて第１の層４０２に暗号化される。データオブジェクト１０６は、第２の保護モジュール鍵３５５を用いて第２の層４０４に暗号化される。さらに、データオブジェクト１０６は、第３の保護モジュール鍵３５７を使用して第３の層４０６に暗号化される。本発明の機能を実現するためには、３層の全てを組み込むことは不可欠ではないが、少なくとも第２の層４０４若しくは第３の層４０６が存在することが望ましい。
【００４６】
図４Ａに示されているように、制御データ１１６は、安全パッケージ１１２に収容しなくてもよい。その場合、第２の保護モジュール３５４及び第３の保護モジュール３５６のための暗号が、データオブジェクト１０６の使用を特定のユーザ又はデータプロセッサ３００に制限するため、制御データ１１６に代えて使用される。これに対し、制御データ１１６は、データオブジェクト１０６の使用を特定のユーザ又はデータプロセッサ３００に制限する以外に、アクセス制御を可能にさせるため組み込まれる。制御データ１１６は、データオブジェクト１０６と同じ安全パッケージ１１２に組み込んでもよく、或いは、別の安全パッケージ（例えば、図１Ｂの安全パッケージ１１２Ｂ）に組み込んでもよい。別個の安全パッケージ１１２Ｂは、好ましくは、データオブジェクトプロバイダ側データプロセッサ２００によって署名され、単層の暗号を使用してもよく、データオブジェクトの安全パッケージ１１２Ａのため使用された暗号と類似した逐次的な暗号を使用してもよく、或いは、暗号を使用しなくてもよい。
【００４７】
Ｂ．パッケージング処理
第１実施例において、安全パッケージ１１２は、プログラム鍵１１５と、マシーン鍵１１９及びユーザ鍵１２１とに基づいて暗号化される。図４Ｂは、第１実施例による、データオブジェクト１０６を保護するため使用される暗号の層を示す図であり、制御データ１１６がある場合には、制御データ１１６も保護される。以下では、図５Ａと併せて図４を説明する。図５Ａには、データパッケージングプログラム１１０が第１実施例に従って安全パッケージ１１２を処理する処理過程５００が示されている。
【００４８】
ステップ５０２で、データパッケージングプログラム１１０は、対称セッション鍵４１２を生成し、鍵４１２を使ってデータオブジェクト１０６及び制御データ１１６を暗号化する。データオブジェクト１０６と制御データ１１６は、別々に暗号化してもよく、或いは、一体として暗号化してもよい。図４Ｂに示されるように、データオブジェクト１０６及び制御データ１１６は層１１４で暗号化される。情報は非対称鍵よりも対称鍵を用いた方がより効率的に暗号化されるので、対称セッション鍵４１２が生成され、単一の通信、若しくは、通信セッションのため使用され、一般的に、安全に通信されるべきデータは、対称セッション鍵を用いて暗号化され、このセッション鍵は、次に、非対称鍵ペアで暗号化される。この処理過程は、「鍵ラッピング」として知られている。
【００４９】
ステップ５０４において、データパッケージングプログラム１１０は、対称セッション鍵４１２を公開プログラム鍵で暗号化する（対称セッション鍵４１２をラッピングする。）。第１実施例では、プログラム鍵１１５は、公開プログラム鍵と秘密プログラム鍵とからなる非対称鍵ペアである。非対称鍵ペアは、ユーザ・プログラム１１４によって先行して生成され、公開鍵は（好ましくはディジタル証明書として）公開されるか、或いは、データパッケージングプログラム１１４へ伝達される。対称セッション鍵４１２による暗号は、実際には、対称セッション鍵４１２自体で暗号化されたデータの、プログラム鍵１１５による、更なる暗号である。図４Ｂに示されるように、対称セッション鍵４１２は層４１６で暗号化される。第１実施例では、層４１４及び４１６は、一体として、一般的な実施例における第１の層４０２に対応する。
【００５０】
代替的な一実施例において、プログラム鍵１１５は、パッケージングプログラム１１０とユーザ・プログラム１１４の両方に分かっている対称プログラム鍵でもよい。この場合、対象セッション鍵４１２は、好ましくは、対称プログラム鍵で暗号化される。さらに別の代替的な実施例では、ステップ５０２及び５０４が結合され、データオブジェクト１０６及び制御データ１１６がプログラム鍵１１５で直接的に暗号化される。その場合、セッション鍵４１２は使用しなくてもよい。
【００５１】
ステップ５０６で、データパッケージングプログラム１１０は、データオブジェクト１０６の使用が特定のユーザに限定されているかどうかを判定し、もし、特定のユーザに限定されているならば、ステップ５０８へ制御を移す。特定のユーザに限定されていない場合には、データパッケージングプログラム１１０は、ステップ５０８を飛ばし、ステップ５１０へ制御を移す。データパッケージングプログラム１１０は、著作者若しくはデータオブジェクトプロバイダによって指定された使用条件に基づいてこの判定を行う。使用条件に含まれる制御エレメントは、好ましくは、データオブジェクト１０６が特定のユーザに制限されるべきである旨を指定する。
【００５２】
ステップ５０８で、データパッケージングプログラム１１０は、対称セッション鍵４１２を公開ユーザ鍵でさらに暗号化する。第１実施例の場合、ユーザ鍵１２１は、公開ユーザ鍵と秘密ユーザ鍵とからなる非対称鍵ペアである。非対称鍵ペアは、好ましくは、ユーザ鍵装置１２０によって前もって生成され、公開鍵は（好ましくはディジタル証明書として）公開され、或いは、データパッケージングプログラム１１４へ伝達される。対称セッション鍵４１２の暗号化は、実際には、対称セッション鍵４１２自体で暗号化されたデータの、ユーザ鍵１２１を用いた更なる暗号である。図４Ｂに示されるように、ステップ５０８の結果として、上述の一般的な実施例における第２の層４０４に対応した暗号層４１８が得られる。代替的な一実施例では、ユーザ鍵１２１は、パッケージングプログラム１１０とユーザ・プログラム１１４の両方が知っている対称ユーザ鍵でもよい。この場合、対称セッション鍵４１２は好ましくは対称ユーザ鍵を用いて更に暗号化される。
【００５３】
ステップ５０６と類似したステップ５１０では、データパッケージングプログラム１１０は、データオブジェクト１０６のユーザが特定のデータプロセッサに限定されているかどうかを判定し、もし、特定のデータプロセッサに限定されているならば、ステップ５１２へ制御を移す。特定のデータプロセッサに限定されていない場合には、データパッケージングプログラム１１０は、ステップ５１２を飛ばし、ステップ５１４へ制御を移す。
【００５４】
ステップ５１２で、データパッケージングプログラム１１０は、公開マシーン鍵で対称セッション鍵４１２をさらに暗号化する。第１実施例の場合、マシーン鍵１１９は、公開マシーン鍵と秘密マシーン鍵とからなる非対称鍵ペアである。非対称鍵ペアは、好ましくは、マシーン鍵装置１１８によって先に生成され、公開鍵は（好ましくはディジタル証明書として）公開され、或いは、データパッケージングプログラム１１４へ伝達される。対称セッション鍵４１２の暗号化は、実際には、対称セッション鍵４１２自体で暗号化されたデータの、マシーン鍵１１９を用いた更なる暗号である。図４Ｂに示されるように、ステップ５１２の結果として、上述の一般的な実施例における第３の層４０６に対応した暗号層４２０が得られる。代替的な一実施例では、マシーン鍵１１９は、パッケージングプログラム１１０とマシーン鍵装置１１８の両方が知っている対称マシーン鍵でもよい。この場合、対称セッション鍵４１２は好ましくは対称マシーン鍵を用いて更に暗号化される。
【００５５】
ステップ５１４において、データパッケージングプログラム１１０は、データオブジェクト１０６と制御データ１１６のパッケージングを完了し、安全パッケージ１１２を通信ネットワークを経由してユーザ側データプロセッサ３００へ送信する。第１実施例において、暗号化されたデータオブジェクト１０６及び制御データ１１６は、暗号化された対称セッション鍵４１２と共に連結され、パッケージングに使用された暗号レベルを表すヘッダ情報３２２が前に置かれる。データは、次に、伝送のためパケット化される。代替的な一実施例では、暗号化されたデータオブジェクト１０６及び制御データ１１６は、暗号化された対称セッション鍵４１２とは別個に伝送してもよい。更に別の一実施例では、データオブジェクト１０６及び制御データ１１６は、異なる対称セッション鍵４１２によって別々に暗号化してもよい。異なる対称セッション鍵４１２の各々は、ステップ５０４〜５１２に従って別々に暗号化される。データオブジェクト１０６、制御データ１１６及び暗号化されたセッション鍵は、別々に伝送しても、ひとまとめに伝送してもよい。更に別の一実施例では、暗号化されたデータオブジェクト１０６、制御データ１１６及びセッション鍵４１２が別々に伝送される。
【００５６】
Ｃ．アンパッケージング処理
図５Ｂは、第１実施例に従ってユーザ・プログラム１１４が安全パッケージ１１２をアンパッケージングする処理過程５２０を示す図である。ステップ５２２で、ユーザ側データプロセッサ３００は、データパッケージングプログラム１１０から安全パッケージ１１２を受け取る。安全パッケージ１１２は、好ましくは、対称セッション鍵４１２で暗号化されたデータオブジェクト１０６及び制御データ１１６と、対称セッション鍵４１２の多重暗号化されたものとを含む。
【００５７】
ステップ５２４において、ユーザ・プログラム１１４は、対称セッション鍵４１２が公開マシーン鍵で暗号化されたかどうかを判定する。対称セッション鍵が公開マシーン鍵で暗号化されていた場合、ユーザ・プログラム１１４はステップ５２６へ進み、さもなければ、ユーザ・プログラム１１４はステップ５２６を飛ばしてステップ５２８へ進む。ユーザ・プログラム１１４は、好ましくは、ステップ５２４において、処理過程５００のステップ５１４で安全パッケージの前に付加されたヘッダ情報４２２を検査することによって判定を行う。ヘッダ情報４２２は、好ましくは、適用された暗号レベルを示す。
【００５８】
ステップ５２６において、ユーザ・プログラム１１４の第３の保護モジュール３５６（図３Ｂ）は、マシーン鍵装置１１８を用いて対称セッション鍵４１２を少なくとも部分的に暗号化する。第１実施例の場合、マシーン鍵１１９は、公開マシーン鍵と秘密マシーン鍵とからなる非対称鍵ペアである。マシーン鍵装置１１８は、好ましくは、秘密マシーン鍵と、公開マシーン鍵で暗号化されたデータを秘密マシーン鍵で復号化するために十分なロジックとにより構成される。したがって、第３の保護モジュール３５６は、好ましくは、暗号化された対称セッション鍵４１２をマシーン鍵装置１１８へ供給し、少なくとも部分的に復号化された対称セッション鍵４１２が返却される。この復号化により、暗号層４２０（図４Ｂ）が取り除かれる。
【００５９】
代替的な一実施例において、マシーン鍵１１９は、パッケージングプログラム１１０とマシーン鍵装置１１８の両方に知られている対称マシーン鍵でもよい。マシーン鍵装置１１８は、この場合、対称マシーン鍵を用いて復号化を実行する。更に別の代替的な実施例では、復号機能は、ユーザ・プログラム１１４の第３の保護モジュール３５６（図３Ｂ）によって対処することが可能である。この場合、マシーン鍵装置１１８は、第３の保護モジュール３５６が対称セッション鍵４１２を復号化するときに使用するマシーン鍵１１９を供給するだけである。
【００６０】
ステップ５２８において、ユーザ・プログラム１１４は、対称セッション鍵４１２が公開ユーザ鍵で暗号化されたかどうかを判定する。対称セッション鍵が公開ユーザ鍵で暗号化されていた場合、ユーザ・プログラム１１４はステップ５３０へ進み、さもなければ、ユーザ・プログラム１１４はステップ５３０を飛ばしてステップ５３２へ進む。
【００６１】
ステップ５３０において、ユーザ・プログラム１１４の第２の保護モジュール３５４（図３Ｂ）は、ユーザ鍵装置１２０を用いて対称セッション鍵４１２を少なくとも部分的に復号化する。第１実施例の場合、ユーザ鍵１２１は、公開ユーザ鍵と秘密ユーザ鍵とからなる非対称鍵ペアである。ユーザ鍵装置１２０は、好ましくは、秘密ユーザ鍵と、公開ユーザ鍵で暗号化されたデータを、秘密ユーザ鍵で復号化するために十分なロジックとにより構成される。したがって、第２の保護モジュール３５４は、好ましくは、暗号化された対称セッション鍵４１２をユーザ鍵装置１２０へ供給し、少なくとも部分的に復号化された対称セッション鍵４１２が返却される。この復号化により、暗号層４１８（図４Ｂ）が取り除かれる。
【００６２】
代替的な一実施例において、ユーザ鍵１２１は、パッケージングプログラム１１０とユーザ鍵装置１２０の両方に知られている対称ユーザ鍵でもよい。ユーザ鍵装置１２０は、この場合、対称ユーザ鍵を用いて復号化を実行する。更に別の代替的な実施例では、復号機能は、ユーザ・プログラム１１４の第２の保護モジュール３５４（図３Ｂ）によって対処することが可能である。この場合、ユーザ鍵装置１２０は、第２の保護モジュール３５４が対称セッション鍵４１２を復号化するときに使用するユーザン鍵１２１を供給するだけである。
【００６３】
ステップ５３２で、ユーザ・プログラム１１４の第１の保護モジュール３５２は、秘密プログラム鍵を用いて対称鍵４１２を復号化する。第１実施例の場合、プログラム鍵１１５は、公開プログラム鍵と秘密プログラム鍵とからなる非対称鍵ペアである。第１の保護モジュール３５２は、好ましくは、公開プログラム鍵で暗号化されたデータを、秘密プログラム鍵を使用して復号化するロジックを含む。この復号化によって、暗号層４１６が取り除かれ、それにより、対称セッション鍵４１２が得られる。
【００６４】
ステップ５３４において、ユーザ・プログラム１１４は、データオブジェクト１０６及び制御データ１１６を復号化するため、復号化された対称セッション鍵４１２を使用する。この復号化によって暗号層４１４が取り除かれる。暗号層４１４を取り除くために必要な機能は、第１の保護モジュール３５２に組み込んでもよく、或いは、ユーザ・プログラム１１４自体に組み込んでもよい。データオブジェクト１０６と制御データ１１６が公開されると、ユーザ・プログラム１１４は、規則に従ってデータオブジェクト１０６を、或いは、制御データ１１６に指定された制御エレメントをユーザへ提示することができる。
【００６５】
５．ユーザとマシーンの認証
Ａ．一般的な実施例
図６Ａは、データオブジェクト１０６（図１）の使用を特定のユーザ及び特定のデータプロセッサ３００に制限する制御データ６００の組の一般的な実施例の説明図である。制御データ６００の組は、多数の制御エレメント６０２を含む。第１の制御エレメントは、ユーザを認証することにより、データオブジェクト１０６の使用を特定のユーザに制限する規則若しくは命令を格納する。第２の制御エレメント６０６は、データプロセッサ３００を認証することにより、データオブジェクト１０６の使用を特定のデータプロセッサに制限する規則若しくは命令を格納する。
【００６６】
制御データ６００の組は、認証されていない使用からデータオブジェクト１０６をさらに保護するため処理過程５００と併せて使用される。無許可者が処理過程５００によって付与された暗号を破る場合には、無許可者は、データオブジェクト１０６へアクセスするため、制御データ６００によって与えられたセキュリティ機能を破る。さらに、制御データ６００によって得られるセキュリティ機能は、データオブジェクト１０６の使用を特定のデータプロセッサ３００若しくはユーザに限定するため、処理過程５００とは関係なく使用することが可能である。
【００６７】
Ｂ．制御エレメントの生成
図６Ｂは、第１実施例による制御データ６１０の組の説明図である。第１の制御エレメント６０４は、（上記セクション４．で説明した）公開ユーザ鍵６０５を用いて、データオブジェクト１０６の使用を特定のユーザに限定する。第２の制御エレメント６０６は、（上記セクション４．で説明した）公開マシーン鍵６０７を用いて、データオブジェクト１０６の使用を特定のデータプロセッサに限定する。以下では、データパッケージングプログラム１１０が第１実施例に従って制御データ６１０の組を生成するために用いる処理過程７００を説明する図７Ａと併せて図６Ｂについて説明する。
【００６８】
ステップ７０２において、データパッケージングプログラム１１０は、データオブジェクト１０６の使用があるユーザに限定されているかどうかを判定し、あるユーザに限定されているならば、ステップ７０４へ制御を移す。さもなければ、データパッケージングプログラム１１０はステップ７０４とその次のステップ７０６を飛ばし、制御をステップ７０８へ移す。ステップ７０２の判定は、好ましくは、処理過程５００のステップ５０６で行われた判定と同一である。
【００６９】
ステップ７０４において、データパッケージングプログラム１１０は、公開ユーザ鍵６０５を制御データ６１０に収容する。第１実施例では、ユーザ鍵１２１は、公開ユーザ鍵と秘密ユーザ鍵とからなる非対称鍵ペアである。ステップ７０６において、データパッケージングプログラム１１０は、第１の制御エレメント６０４を作成する。公開ユーザ鍵６０５は、第１の制御エレメント６０４に収容してもよく、或いは、制御データ６１０に個別に収容してもよい。第１の制御エレメント６０４は、好ましくは、ユーザ・プログラム１１４に公開ユーザ鍵６０５に基づいてユーザを認証することを命令するために十分なデータ、スクリプト、若しくは、プログラムコードにより構成される。代替的な一実施例では、ユーザＩＤ若しくはパスワードが公開ユーザ鍵６０５の代わりに使用される。
【００７０】
ステップ７０８において、データパッケージングプログラム１１０は、データオブジェクト１０６の使用が特定のデータプロセッサ３００に制限されるかどうかを判定し、もしそうであるならば、ステップ７１０へ制御を移す。さもなければ、データパッケージングプログラム１１０は、ステップ７１０とその次のステップ７１２を飛ばし、制御をステップ７１４へ進める。ステップ７０８で行われる判定は、好ましくは、処理過程５００のステップ５１０で行われる判定と同じである。
【００７１】
ステップ７１０において、データパッケージングプログラム１１０は、公開マシーン鍵６０７を制御データ６１０に収容する。第１実施例では、マシーン鍵１１９は、公開マシーン鍵と秘密マシーン鍵とからなる非対称鍵ペアである。ステップ７１２において、データパッケージングプログラムは、第２の制御エレメント６０６を作成する。公開マシーン鍵６０７は、第２の制御エレメント６０６に収容してもよく、或いは、制御データ６１０に別々に収容してもよい。第２の制御エレメント６０６は、好ましくは、ユーザ・プログラム１１４に公開マシーン鍵６０７に基づいてデータプロセッサ３００を認証することを命令するために十分なデータ、スクリプト、若しくは、プログラムコードにより構成される。代替的な一実施例では、（上記のセクション３．  Ｃ．で説明した）ＭＡＣアドレスのようなマシーン識別情報が公開マシーン鍵６０７の代わりに使用される。
【００７２】
ステップ７１４において、データパッケージングプログラム１１０は、データオブジェクト１０６の使用法を管理する残りの制御エレメント６０２を作成する。残りの制御エレメントは、たとえば、データオブジェクト１０６の使用を許可されたユーザの数、閲覧のみや印刷のような使用法の種類、及び、使用期間を指定することができる。
【００７３】
ステップ７１６において、データパッケージングプログラム１１０は、データパケット１０６と制御データ１１６を確実にパッケージ化し、ユーザ側データプロセッサ３００へ送信する。第１実施例において、ステップ７１６は、好ましくは、図５Ａの処理過程５００を含む。代替的な実施例では、他の安全パッケージング及び／又は通信処理が従来技術に従って使用される。
【００７４】
Ｃ．制御エレメントの適用
図７Ｂは、ユーザ・プログラム１１４が、第１実施例に従って、データオブジェクト１０６の使用を特定のユーザ及び／又は特定のデータプロセッサ３００に制限するため制御エレメント６０２を適用する処理過程７０２の説明図である。ステップ７２２において、ユーザ側データプロセッサ３００は、データパッケージングプログラム１１０からパッケージ化されたデータオブジェクト１０６及び制御データ１１６を受信する。ステップ７２４において、ユーザ・プログラム１１４は、データオブジェクト１０６及び制御データ１１６のパッケージを解く（アンパッケージ）。第１実施例の場合、ステップ７２４は、好ましくは、図５Ｂの処理５２０を含む。
【００７５】
ステップ７２６において、ユーザ・プログラム１１４は、データオブジェクト１０６の使用が特定のデータプロセッサに限定されているかどうかを判定する。もし限定されているならば、ユーザ・プログラム１１４はステップ７２８へ進み、限定されていないならば、ユーザ・プログラム１１４は、ステップ７２８を飛ばしてステップ７３０へ進む。ユーザ・プログラムは、好ましくは、制御エレメント６０２を調べることによってステップ７２６で判定を行う。データオブジェクト１０６の使用を特定のデータプロセッサ３００に限定する第２の制御エレメント６０６が存在する場合、ユーザ・プログラム１１４はステップ７２６で肯定的な判定を行う。このような制御エレメントが存在しない場合、否定的な判定がなされる。
【００７６】
ステップ７２８では、ユーザ・プログラム１１４の第３の保護モジュール３５６が、公開マシーン鍵６０７と併せてマシーン鍵装置１１８を使用してユーザ側データプロセッサ３００が正当なデータプロセッサであることを認証する。第１実施例において、第３の保護モジュール３５６は、乱数データエレメントをマシーン鍵装置１１８へ送信する。マシーン鍵装置１１８は、次に、乱数データエレメントを、マシーン鍵装置１１８に保持された秘密マシーン鍵で暗号化する。マシーン鍵装置１１８は、次に、暗号化された乱数データエレメントを第３の保護モジュール３５６へ送る。第３の保護モジュール３５６は、暗号化された乱数データエレメントを、制御データ１１６に収容されている公開マシーン鍵を用いて復号化する。復号化された乱数データエレメントが元の乱数エレメントと一致する場合、制御データ１１６に収容された公開マシーン鍵６０７は、マシーン鍵装置１１８によって保持された秘密マシーン鍵と合致する。この場合、データプロセッサ３００は認証されている。第３の保護モジュール３５６がデータプロセッサ３００を認証できない場合、ユーザ・プログラム１１４は、好ましくは、エラーメッセージをユーザへ表示し、データオブジェクト１０６の処理を中止する。
【００７７】
代替的な実施例では、データプロセッサ３００を認証する他の方法を使用することができる。例えば、ＭＡＣ（媒体アクセスコントローラ）アドレスは、公開マシーン鍵６０７の代わりに使用できる。その場合のマシーン鍵装置１１８は、好ましくは、暗号機能を備えていないＭＡＣである。従って、第３の保護モジュール３５６は、マシーン鍵装置１１８が正確なＭＡＣアドレスを供給したことを検証するだけでよい。
【００７８】
ステップ７３０において、ユーザ・プログラム１１４は、データオブジェクト１０６の使用が特定のユーザに限定されているかどうかを判定する。もし限定されているならば、ユーザ・プログラム１１４はステップ７３２へ進み、限定されていないならば、ユーザ・プログラム１１４は、ステップ７３２を飛ばしてステップ７３４へ進む。ユーザ・プログラムは、好ましくは、制御エレメント６０２を調べることによってステップ７３０で判定を行う。データオブジェクト１０６の使用を特定のユーザに限定する第１の制御エレメント６０４が存在する場合、ユーザ・プログラム１１４はステップ７３０で肯定的な判定を行う。このような制御エレメントが存在しない場合、否定的な判定がなされる。
【００７９】
ステップ７３２では、ユーザ・プログラム１１４の第２の保護モジュール３５４が、公開ユーザ鍵６０５と併せてユーザ鍵装置１２０を使用して、ユーザの本人性を認証する。第２の保護モジュール３５４は、ステップ７２６と同様の形でステップ７３２を実行する。第３の保護モジュール３５６がユーザを認証できない場合、ユーザ・プログラム１１４は、好ましくは、ユーザにエラーメッセージを表示し、データオブジェクト１０６の処理を中止する。
【００８０】
代替的な実施例では、ユーザを認証する他の方法が使用され得る。例えば、ユーザＩＤ若しくはパスワードが公開ユーザ鍵６０５の代わりに使用される。ユーザ鍵装置１２０は、この場合、ユーザがユーザＩＤ若しくはパスワードを入力するために用いるキーボード３１２でも構わない。従って、第２の保護モジュール３５４は、ユーザが正しいユーザＩＤ若しくはパスワードを与えたかどうかを検証するたけでよい。
【００８１】
ステップ７３４において、ユーザ・プログラム１１４は、残りの制御エレメント６０２を処理し続け、その制御エレメント６０２に従って、ユーザはデータオブジェクト１０６へのアクセス権が許可される。
【００８２】
６．結論
種々の暗号技術が本発明のパッケージングの局面及び認証の局面と併せて使用できることは、当業者には明らかであろう。これらの暗号技術の一部は、セクション２、セクション３−Ｃ、及び、セクション３−Ｄで説明した。
【００８３】
本発明は、ある種の実施例に関して説明されているが、上述の特徴と効果の全てを実現しないその他の実施例は当業者に明白であり、これらの実施例も本発明の範囲に含まれる。したがって、本発明の範囲は、請求項に記載された事項によって規定される。請求項の記載中、部分（portion)は、ある事項の少なくとも一部分から全体までの範囲を含み、ある事項の暗号は、その事項の一部分の暗号を含む。また、方法クレームにおいては、参照番号は説明の便宜のためだけに使用されるものであり、その方法を実施するための特定の順序を表わすものではない。
【図面の簡単な説明】
【図１Ａ】  本発明の第１実施例による全体的なデータフローを説明するフローチャートである。
【図１Ｂ】  データオブジェクトと制御データが別々に一括される本発明の他の一実施例による全体的なデータフローを説明するフローチャートである。
【図２】  図１Ａのデータオブジェクトプロバイダ部に対応したデータオブジェクトプロバイダ側データプロセッサの一実施例のシステムブロック図である。
【図３Ａ】  図１Ａのユーザ部に対応したユーザ側データプロセッサの一実施例の説明図である。
【図３Ｂ】  ユーザ・プログラムが図１Ａのフローチャートに従って保護機能を実現するため用いる多数の保護モジュールの説明図である。
【図４Ａ】  データオブジェクトを安全パッケージ内に保護する３層の暗号化の実施例の概略説明図である。
【図４Ｂ】  図１Ａのフローチャートに従ってデータオブジェクト及び制御データを保護するため使用される暗号化の層の説明図である。
【図５Ａ】  データパッケージングプログラムが図１Ａのフローチャートに従って安全パッケージを生成する処理の説明図である。
【図５Ｂ】  ユーザ・プログラムが図１Ａのフローチャートに従って安全パッケージを解く処理の説明図である。
【図６Ａ】  データオブジェクトの使用を特定のユーザ及び特定のデータプロセッサに制限する制御データの組の実施例の概略的な説明図である。
【図６Ｂ】  図１Ａのフローチャートによる制御データの組の説明図である。
【図７Ａ】  データパッケージングプログラムが図１Ａのフローチャートに従って制御データの組を生成する処理の説明図である。
【図７Ｂ】  ユーザ・プログラムが図１Ａのフローチャートに従ってデータオブジェクトの使用を特定のユーザ及び／又は特定のデータプロセッサ３００に制限するため制御データを適用する処理の説明図である。
【図１Ａ】
0004366037.tif 000002
【図１Ｂ】
0004366037.tif 000003
【図２】
0004366037.tif 000004
【図３Ａ】
0004366037.tif 000005
【図３Ｂ】
0004366037.tif 000006
【図４Ａ】
0004366037.tif 000007
【図４Ｂ】
0004366037.tif 000008
【図５Ａ】
0004366037.tif 000009
【図５Ｂ】
0004366037.tif 000010
【図６Ａ】
0004366037.tif 000011
【図６Ｂ】
0004366037.tif 000012
【図７Ａ】
0004366037.tif 000013
【図７Ｂ】
0004366037.tif 000014