(57)【特許請求の範囲】
【請求項１】
電子文書保護方法であって、
文書暗号化キーを用いて前記電子文書を暗号化するステップと、
少なくとも１つの複数キー構成要素を含み、複数キー暗号化法において用いられる複数キー暗号化表を生成するステップと、
前記電子文書に関する情報を含む暗号化されたヘッダを生成するステップと、
ユーザインタフェースデバイスを前記暗号化されたヘッダ、前記複数キー暗号化表、および前記暗号化された電子文書と関連付けるステップであって、前記ユーザインタフェースデバイスは、前記電子文書を識別するための非暗号化情報と、ユーザが前記暗号化された文書の少なくとも一部にアクセスするためユーザ許可を入力することを可能とする対話要素とを含むステップと、
前記ユーザ許可を前記複数キー暗号化キー表に格納される前記各複数キー構成要素と組み合わせて前記暗号化ヘッダを復号するステップと、
前記暗号化ヘッダが正当に復号されたとき、前記暗号化電子文書の一部を復号するステップと、
を含み、
前記暗号化されたヘッダと前記暗号化された電子文書とは、異なる暗号化キーを用いて復号され、
前記複数キー暗号化表は、各暗号化キーに対して少なくとも１つの複数キー構成要素を含み、
前記暗号化されたヘッダは乱数列とそれに続く同じ乱数列の誘導可能な変形とを含む暗号化マーカを含み、
前記暗号化マーカの正当な復号はヘッダ暗号化キーが検出されたことを示し、
前記暗号化された電子文書は乱数列とそれに続く同じ乱数列の誘導可能な変形とを含む暗号化マーカを含み、
前記暗号化マーカの正当な復号は前記文書暗号化キーが検出されたことを示すことを特徴とする方法。
【請求項２】
電子文書保護システムであって、
機密内容オブジェクトと、少なくとも１つの複数キー構成要素を含み複数キー暗号化法において用いられる複数キー暗号化キー表と、を格納するメモリを含み、
前記機密内容オブジェクトは、文書暗号化キーによって暗号化された暗号化電子文書と暗号化されたヘッダとを含み、前記暗号化されたヘッダは前記電子文書に関する情報を含み、ユーザインタフェースデバイスは、前記電子文書を識別する非暗号化情報とユーザがユーザ許可を入力して前記暗号化された電子文書の少なくとも一部にアクセスすることを可能とする対話要素とを含み、前記暗号化されたヘッダが正当に復号されるとき、前記暗号化された電子文書の一部の復号を可能とし、
該システムは、さらに、
複数キー暗号化法を用いる復号エンジンと、
前記対話要素を実行し、前記ユーザ許可を前記復号エンジンに入力するためのプロセッサと、
を含み、
前記復号エンジンは、前記ユーザ許可を前記複数キー表の前記各複数キー構成要素と組み合わせて、前記暗号化されたヘッダを復号し、前記暗号化されたヘッダの正当な復号は前記文書暗号化キーが検出されたことを示し、
前記暗号化されたヘッダは、乱数列とそれに続く同じ乱数列の誘導可能な変形とを含む暗号化マーカを含み、
前記暗号化マーカの正当な復号は前記文書暗号化キーが検出されたことを示すことを特徴とするシステム。
【請求項３】
請求項２に記載のシステムにおいて、
前記電子文書は文書ＩＤを含み、前記文書暗号化キーは、各許可ユーザについて、前記文書ＩＤと、前記ユーザ情報と、前記複数キー構成要素と、を含むことを特徴とするシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、広くは、電子文書機密保護に関し、より詳しくは、確実に、電子文書を格納し、保持し、かつ電子文書に対するアクセスを制御するシステムおよび方法に関する。本発明の他の態様は、補助情報、たとえば、電子文書に関連する注釈に対するアクセスの制御に関する。
【０００２】
【従来の技術】
電子文書は、情報生成、伝送、および記憶の事実上の標準となった。電子文書（または電子ファイルまたは電子オブジェクト）は、通常、内容情報（たとえばテキスト、グラフィックス、式、表、表計算（スプレッドシート）、ピクチャ、音、フルモーション・ビデオ、および他のマルチメディアコンテンツ、など）と、内容をどのように表示すべきか指図するフォーマット情報と、を有する。異なる形式の内容情報は、特定の様式によってフォーマットされる場合、より容易に理解される。たとえば、表計算は、対話型表としてフォーマットされた場合、より容易に理解される。多数の異なるアプリケーションプログラムまたは言語が、特定の様式によって内容情報を表示またはフォーマットするために開発された。各言語、たとえばマイクロソフト（商標）ワード（商標）（Ｍｉｃｒｏｓｏｆｔ（商標）  Ｗｏｒｄ（商標））、アドービ（商標）アクロバット（商標）（Ａｄｏｂｅ（商標）  Ａｃｒｏｂａｔ（商標））、ＨＴＭＬ、などは、１組のフォーマット規則を定め、このフォーマット規則によって、内容情報（たとえば文字、記事、販売情報、など）をどのようにユーザに表示するかが決定される。
【０００３】
大部分のユーザは、特に文書が使用中でない場合、内容情報を保護することに関心がある。ユーザが所望する保護のレベルは、内容情報の価値によって変わる。内容情報がより高い価値を有するほど、ユーザが所望する保護はより厳重である。これに適応するため、多数のアプリケーションプログラムは、内容を保護する方法を含む。たとえば、マイクロソフト（商標）ワード（商標）を用いることによって、ユーザは、パスワードを割り当てることによって文書を保護することができる。ワード（商標）文書は平文で格納され（stored in the clear）、その結果、積極的なハッカーは、パスワードを取り外し、文書内容を見ることができる。
【０００４】
Ａｄｏｂｅ（商標）  Ａｃｒｏｂａｔ（商標）によって生成される“Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ”（ＰＤＦ）は、出版者の所望する表示外観を保存するフォーマットによって内容情報を表示し、プラットフォームとは独立であり、そのことによって、インターネットによる使用にとって魅力あるものとなる。Ａｃｒｏｂａｔ（商標）ソフトウェアによって、幾つかの文書「保護」が提供される。ＰＤＦ文書は、暗号化して、その内容を保護することができる。暗号化は、ＰＤＦファイル内のすべての文字列およびストリームに適用されるが、文書の内容よりは寧ろその構造に関する情報を伝送するために用いられる他のオブジェクトには適用されない。「保護された」ＰＤＦ文書に対するアクセスは、ユーザパスワードによって行われる。内容は暗号化によって保護されるが、ＰＤＦによっては、「機密」伝送、すなわちその文書に関する構造および／または他の情報が可視でない伝送は、提供されない。しかし、部分的に暗号化された内容の場合でも、フォーマットされた内容の関係を観察することによって、またはディジタル文書の１つのバージョンを他のバージョンと比較することによって、文書に関して多くのことを知ることができる。また、ＰＤＦによって、ユーザが選択する暗号化レベルを提供されず、または任意のユーザが保護された部分を開く前に読み取ることができるパスワードを入力するためユーザに表示される予備情報（多くの場合、これは文書の構造を明らかにする）の保護も提供されない。
【０００５】
多数のアプリケーションプログラムおよび言語によって、既存の文書に対するコメント、脚注、および他の形式の注釈の挿入が準備される。多くの場合、注釈は、オリジナル文書の著者（単数または複数）以外の個人によって作成される。著者以外の人が他のユーザの文書に注釈を作成することができるかは、特定のアプリケーションプログラムと、著者以外の人が注釈を作成することを許可されたかと、によって決まる。たとえば、マイクロソフト（商標）ワード（商標）文書の場合、文書にアクセスできる任意のユーザは、注釈を挿入することができる。Ａｄｏｂｅ（商標）  Ａｃｒｏｂａｔ（商標）の場合、Ａｃｒｏｂａｔ（商標）ソフトウェアのユーザのバージョンによって、ユーザが注釈することができるか否かが決まる。ユーザのバージョンが注釈を認める場合、次に、イベントの通常の順序によって、ユーザは、Ａｃｒｏｂａｔ（商標）ソフトウェアをして新しい注釈または既存の注釈の変更を既存のＰＤＦファイルの新バージョンに含ませ、注釈に対する変更を保存する。
【０００６】
【発明が解決しようとする課題】
しかし、このような注釈は、文書を開く権利を有するすべてのユーザが読み取ることができる（その文書がワード（商標）文書またはＰＤＦまたは何らかの他の文書形式であっても）。注釈を提示／編集するソフトウェアアプリケーションに対するアクセスを有する他のユーザに新バージョンが配布される場合、ユーザがファイルに付加した注釈を読み取り編集することができる者を制限する方法はない。たとえば、機密保護機構によって文書に対するパスワードを知っている者のみにアクセスを限定する文書の保護は、一般的な解決策と見なすことはできない。
【０００７】
【課題を解決するための手段】
本発明によれば、機密内容オブジェクトは、暗号化された電子文書と、暗号化されたヘッダと、複数キー暗号化表と、ユーザインタフェースデバイスと、を含む。電子文書およびヘッダは、複数キー暗号化法に関連する文書暗号化キーを用いて暗号化される。機密保護を強化するため、電子文書およびヘッダに対して異なる暗号化キーを用いることができる。複数キー暗号化表は、少なくとも１つの複数キー暗号化構成要素を含む（異なるキーを用いて電子文書およびヘッダを暗号化する場合、各暗号化キーに対して）。各許可されたユーザに対して、個別の構成要素が表に格納される。ユーザ情報（以下に定める）とユーザの複数キー構成要素との組合せによって、文書暗号化キーが生成される。暗号化されたヘッダは、電子文書に関する情報を含む。電子文書に関する情報には、特定のユーザが文書のどの部分にアクセスを有するか、およびユーザはどの許可を利用できるかに関する情報が含まれる。複数のユーザが特定の文書にアクセスする場合、または１人のユーザが複数の文書に対するアクセスを有する場合、この情報は、ユーザ／アクセス許可表の形式で暗号化ヘッダに格納することができる。
【０００８】
ユーザインタフェースには、電子文書および対話要素を識別する情報が含まれる。対話要素を用いることによって、ユーザは、電子文書のすべてまたは一部に対するアクセスに関するユーザ許可を入力することができる。対話要素はユーザ許可を獲得し、それを復号エンジンに入力し、復号エンジンは複数ユーザ暗号化法を用いて暗号化されたヘッダを復号する。復号エンジンは、ユーザ許可と複数キー暗号化表に格納される各複数キー構成要素とを組合せ、暗号化されたヘッダの復号を試行する。暗号化ヘッダが正当に復号される場合は、正しいキーが検出された。次に、対話要素を用いることによって、復号エンジンは暗号化電子文書の許可された部分を復号することができる。
【０００９】
暗号化法は複数キー暗号化法と呼ばれるが、１つ以上の複数キー暗号化構成要素は複数キー暗号化キー表に格納することができる。機密保護を改善し、ユーザの許可情報を決定することをより困難にするため、ダミー構成要素を追加して表に格納することができる。また、電子文書に対するアクセスが要求される度ごとに、表の複数キー構成要素を無作為に混ぜることができる。複数キー暗号化表は、通常、機密内容オブジェクトと共に格納されるが、表は、ユーザのコンピュータまたはワークステーションにローカルに、あるいはリモートサーバに格納することができる。
【００１０】
ユーザが入力する許可は、任意のユーザ情報、たとえばユーザＩＤまたはユーザ名、パスワードまたはパスフレーズとすることができる。さらに、任意の生体測定型入力装置からのユーザ入力は、単独であるいはユーザＩＤおよび／またはパスワードと組み合わせて用いることができる。たとえば、生体測定入力には、指紋、音声認識フレーズ、眼球または虹彩検出器、網膜走査、などが含まれる。
【００１１】
文書暗号化キーは、種々の情報を用いて生成することができる。複数キー暗号化システムによれば、文書暗号化キーは、各ユーザの情報と、文書暗号化キーを再生成するために必要とされる対応する複数キー構成要素と、に基づいている。あるいは、暗号化キーは、ユーザ情報、複数キー構成要素、および特定の電子文書に割り当てられるＩＤの組合せを基礎とすることができる。この方法によれば、ユーザと文書の各組合せに対して、固有のキーを作成することができる。文書ＩＤを各電子文書に割り当てることによって、より確実な機密保護が促進される。
【００１２】
機密内容オブジェクトの一実施形態によれば、暗号化ヘッダには、乱数列とそれに続く同じ乱数列から誘導可能な変形とから形成される暗号化マーカが含まれる。暗号化マーカが正当に復号される場合は、正しいキーが検出された。暗号化マーカは乱数列を用い、このことによって、固定テキスト暗号化マーカの落し穴が回避される。暗号化マーカは、暗号化された電子文書の先頭に付加することもできる。暗号化された電子文書の先頭の暗号化マーカが正当に復号される場合、電子文書も正当に復号されることを意味する。多くの場合、復号された文書の検査によって、復号が正しいかを決定することは、特に、電子文書が未知のフォーマットからなる場合は、困難である。
【００１３】
複数キー暗号化表には、どのキーがユーザまたは文書を識別することができるかという情報は含まれない。また、暗号化されたヘッダは、ユーザを識別する情報、または他の識別情報、または文書の形式を識別する情報を含まない。これによって、暗号の解読を試行するハッカーを阻止することが支援される。また、ハッカーがファイルの形式を知った場合（大部分のファイルはファイルの先頭が同じ文字で始まる）、暗号を解読することは比較的容易である。
【００１４】
電子文書は、任意の形式の文書、特に内容情報と内容をどのように表示すべきかを指示するフォーマット情報とを含む文書とすることができる。フォーマット情報は、オブジェクト言語、たとえばＭｉｃｒｏｓｏｆｔ（商標）  Ｗｏｒｄ（商標），Ｅｘｃｅｌ（商標），Ｐｏｗｅｒ  Ｐｏｉｎｔ（商標），Ａｄｏｂｅ（商標）  Ａｃｒｏｂａｔ（商標），などによって使用または解釈され、あるいはそれらと共に含まれ、１組のフォーマット規則を有する言語に基づいている。異なるユーザ許可は、電子文書の異なる部分と関連し、その結果、異なるユーザが同じ電子文書の異なる部分に対するアクセスを有することが可能となる場合がある。それぞれが異なるレベルの暗号化および異なるレベルのアクセスを有する複数の電子文書は、ユーザインタフェースデバイスと関連することができる。暗号化されたヘッダは、電子文書に関連する情報を含むことができ、これらの情報には、どのユーザが文書に対するアクセスを有するかおよびどの形式のアクセスかを明らかにするユーザアクセス許可表が含まれる。
【００１５】
機密内容オブジェクトが格納または伝送される場合、電子文書は暗号化されるので、電子文書は保護される。電子文書全体を暗号化することができるし（内容およびフォーマット情報を含めて）、または保護することが所望される部分のみを暗号化することもできる。ユーザが、自身がアクセスを有する電子文書またはその一部を見たいと思う場合、ユーザインタフェースデバイスは、必要とされるユーザ許可の入力が完了するまで、電子文書（またはその一部）の復号および表示を阻止する。
【００１６】
ユーザインタフェースデバイスは、他の電子文書と同様に文書言語を用いて実行することができる。あるいは、ユーザインタフェースは、非ホスト特有のフォーマットを用いて実行することができる。ユーザインタフェースデバイスが他の電子文書と同様に実行される場合、ユーザインタフェースは「カバーシート」と考えることができる。カバーシートは、アクセス機能を準備するのみでなく、電子文書を識別した平文の情報を含む。
【００１７】
本発明の機密内容オブジェクトを用いることによって、ユーザは、既存の電子文書（暗号化されている場合も暗号化されている場合もある）に関する注釈を作成し、これらの注釈に対するアクセスを制限し、同時に、注釈に対して暗号化による機密保護を提供することができる。複数の著者が共通の電子文書に対する注釈またはコメント作成し、かつ他のユーザ間におけるこれらの注釈に対するアクセス（および知識）を制御したいと思う場合、機密内容オブジェクトを用いることができる。たとえば、オリジナルの電子文書は表示に関する制限を有せず（すべてのユーザが見ることができる）、その結果、その文書は暗号化されない場合がある。１人以上のユーザおよび／または著者（オリジナルの著者を含めて）が、電子文書に対する注釈またはコメントを作成したいと思う場合がある。各注釈作成者が、１つ以上の注釈に対するアクセスを制限したいと思う場合がある。このような各注釈は、暗号化してアクセスをある一定のユーザに制限することができる。
【００１８】
既存の電子文書は、ユーザが自身の注釈を付加および／または編集するときならびに電子文書を更新するとき、他のユーザによる注釈を含む場合もあり、含まぬ場合もある。たとえば、電子文書、たとえばＰＤＦファイルを共用する３人のユーザの群において、ユーザ１は既存の電子文書に注釈することができ、注釈を見る権利をユーザ２に付与するが、ユーザ３にはその権利を与えない。その結果、ユーザ３は、既存の電子文書を見ることはできるが、ユーザ１の注釈に対する暗号化を解読することなく、共用ファイルのユーザ１の注釈の内容にアクセスすることはできない。
【００１９】
本発明によって、特定の文書言語に準拠する既存の電子文書に注釈を付加することができる方法、または複数の電子文書を単一のインタフェース装置と関連させることができる方法が提供される。注釈（任意に、既存の電子文書を平文で残しながら）および電子文書は、暗号化してそれらを秘密にしておくことができる。複数キー暗号化法を用いて、注釈を暗号化することもできる。ユーザの暗号化キーを用いて、ユーザが特定の注釈あるいは電子文書またはその一部に対するアクセスを有すること（ユーザの情報は注釈を復号した事実）が示される。複数キーシステムにおいてユーザの許可情報を用いる機能によって、特定の注釈あるいは電子文書またはその一部を見るユーザ自身の能力が管理される。
【００２０】
【発明の実施の形態】
機密内容オブジェクト１００を、図１に示す。機密内容オブジェクト１００は、暗号化された電子文書１２と、暗号化されたヘッダ１１と、複数キー暗号化表１３と、ユーザインタフェースデバイス１０と、を含む。ユーザインタフェースデバイス１０は、暗号化された電子文書１２を識別する平文のＩＤと、この実施形態においてはユーザ入力フィールド１４として示される対話要素（interactive element）と、を含む。機密内容オブジェクト１００は、ローカルにまたはネットワークのどちらかによって、メモリに格納することができる。ユーザは、ディスプレイ１６を有する、ローカルコンピュータまたはネットワークされたワークステーションを介して、機密内容オブジェクト１００にアクセスすることができる。電子文書１２は暗号化された状態で格納されているので、その内容は信用できないユーザから保護される。暗号化された電子文書を格納（および伝送）することによって、その内容は不注意による消失または窃盗から保護される（少なくとも暗号化のレベルまで）。信用または許可されたユーザは、幾つかの機密保護必要条件、たとえばユーザＩＤまたは名前、パスワードまたはパスフレーズ、などのユーザ許可を満足させることによって、あるいはユーザが任意の生体測定方式（biometrics type）入力装置から入力することによって、電子文書内容情報を平文で見ることができる。所望の機密保護のレベルに応じて、１つ以上の任意の公知の暗号化体系を用いることができる。
【００２１】
電子文書１２は、文書暗号化キーを用いて暗号化される。複数キー暗号化表１３は、少なくとも１つの複数キー暗号化構成要素を含む。独立の構成要素は、許可された各ユーザについて表に格納される。ユーザ情報（許可された場合）とユーザの複数キー構成要素との組合せによって、文書暗号化キーが生成される。
【００２２】
通常、機密内容オブジェクトは、ソフトウェア、たとえば、特定の形式の電子文書を作成するために用いられる既存のアプリケーションに対するプラグインによって実行される。ユーザがアプリケーションプログラムを開き、特定の電子文書に対するアクセスを要求する場合、プラグイン（コンピュータプロセッサによって実行される）を有するアプリケーションプログラムは、ユーザが必要とされる許可情報を入力するため、ディスプレイ１６に対話スクリーンを表示する。暗号化されたヘッダ１１を復号するため、ユーザインタフェースデバイスによって、ユーザ許可情報が復号エンジンに入力され、復号エンジンによってユーザ許可情報は表１３の各複数キー構成要素と結合される。暗号化されたヘッダが正当に復号される場合、ユーザインタフェースデバイスは暗号化された電子文書１２を復号モジュールに送り（プロセッサによっても実行される）、電子文書１２は復号化モジュールにおいて復号される。復号が完了すると、次に、電子文書または特定のユーザの許可に応じてその一部は、ユーザに対してディスプレイ１６に表示される。
【００２３】
復号エンジン１８は、複数ユーザ暗号化法を用いる。複数ユーザ暗号化法は、複数キー暗号化表１３（ローカルまたはリモートに格納することができる）に格納される複数の複数キー構成要素に基づく。機密保護を強化するため、許可ユーザの数がある所定のいき値未満である場合、ダミーキーを付加して、未熟練者がユーザ許可を決定してアクセスを獲得することを防止する。複数キーシステムは、ユーザ許可を各複数キー構成要素と結合して、暗号化されたヘッダを復号し、入力されたユーザ許可（たとえば、ユーザＩＤ／パスワード／パスフレーズあるいは生体測定情報）は正しいかを決定しなければならない。復号エンジン１８は、正しいキーが検出されるまで、入力されたユーザ許可と格納された各構成要素とを組み合わせ、暗号化されたヘッダ１１の復号を試行する。暗号化されたヘッダは、同じ乱数列の誘導可能な変形が続く乱数列を含む特定の暗号化マーカを含むことができる。その結果、暗号化されたヘッダの暗号化マーカが正当であると判定された場合、正しいキーが検出されたことになる。次に、対話要素を用いることによって、復号エンジンが暗号化された電子文書を解読することができる。
【００２４】
ユーザは、アクセスして電子文書全体を平文で見ることができる場合もできない場合もある。異なるユーザは、電子文書の一部のみ（たとえば、サブセクション、管理者のための要約、注釈、など）に対するアクセスを有する場合があり、このような場合、ユーザの許可情報が受理されると、これらの部分のみが復号されて表示される。
【００２５】
機密内容オブジェクトは、下記の１つ以上の場合に用いることができる。（１）複数キー機密内容オブジェクトを有するユーザが、オブジェクトを人々のグループに電子メールで送り、グループの各構成員は、自身のユーザ識別を用いて電子メールを開く。「クリップボードにコピー」、印刷、文書の存続期間、などに対する許可は、文書を受け取るグループの構成員によって変わる。（２）ユーザは、外部適用分野のため、バイナリー形式のファイルに存在する（exists in a binary formatted file）幾つかの非常に私的（private）なデータ（映画、音響、市場調査、試験結果、など）と、これも非常に重要である、これらのデータに関連する情報を詳述する文書とを有する。これらのリンクされるファイルを維持して保護するため、ユーザは、データと文書とを含む機密内容オブジェクトを作成する。ユーザは、必要により、一部のユーザのため、バイナリー抽出を選択して抑制（withhold）することができる。（３）人事部は、その部内でのみ用いるべきである幾つかの文書を有するが、過去に、これらの文書の幾つかは、部内の正当なユーザが部外においてこれらの文書を開いたため、部外者に暴露されている。このようなことを防止するため、同部は、これらのすべての文書を部のネットワーク上においてのみ開くように設定する（それらのネットワーク保護の特性が妥当である場合、これによって、文書が部外で印刷されることも防止される）。（４）会社は、専用文書を有し、これらの文書はよく知られたユーザＩＤによって非常に緩やかに保護されている。これらの文書は、配布すべきではないが、１つの文書が無保護公衆サーバにおいて検出された。会社は、機密内容オブジェクトに含まれる「指紋」（以下に述べる）を用いて、文書を追跡して、機密内容オブジェクトを誤って配布した出所であるユーザを突き止める。（５）ユーザは、重要な文書の作成の過程にあり、自分のラップトップコンピュータを失った場合、ソースファイルを保護したいと思っている。各編集セッションの終了時に、ユーザは、ソースファイルを機密内容オブジェクトで包み、保護されていないソースファイルを削除する。変形においては、ユーザはローカルアプリケーションを用いてＰＤＦの文書を機密内容オブジェクトに含め、これを用いて作業を検討し、より多くの時間があるかと、ユーザがより確実な環境下において作業するかの少なくとも一方が実現するまで、将来の変更のため作業に注釈を付ける。
【００２６】
機密内容オブジェクトを含めて、どんな方法も、文書またはバイナリーファイルを、内容を復号できる正当な識別情報を有する悪意のあるユーザから保護することはできないことに留意すべきである。機密内容オブジェクトは、ユーザが内容を処理できることを阻止し、その制限を強化できるが、ユーザがコンピュータを制御するので、ユーザは幾らか努力することによって、常に、内容を変換して何らかの保護されていない形態とすることができる（たとえば、ユーザは、文書が開かれているとき、スクリーンを写真に撮ることができる）。
【００２７】
正当な識別情報を有しないアタッカーに対する機密内容オブジェクトの機密保護は、用いられる暗号化法と同じ強度であるに過ぎない。選択される方法およびその実施の機密保護は、特定の実施方法によって決まる。
【００２８】
機密内容オブジェクトは、ユーザのパーソナルコンピュータによって作成され得るが、大部分の場合、作成は、ユーザのパーソナルコンピュータまたはワークステーションではないネットワークサーバ上において行われる。一般に、このようなサーバは、保護されることになり、中央機密保護サーバに対するアクセスを有し、中央機密保護サーバは、ユーザ識別情報をユーザのグループに提供することができる。技術上公知の多数の方法があり、これらのユーザ識別情報は、配布することができる。ユーザが、機密内容オブジェクトを有し、機密内容オブジェクトの正当なユーザであり、同じ組のユーザのため、他の機密内容オブジェクトを作成したいと思う場合、幾つかの形態の複数キー暗号化を用いることによって、それは可能であることに注意されたい。以下に述べる方法は、他のユーザの識別情報をどんな方法によっても暴露せず、その結果、ユーザの識別情報は、通常、ユーザが単一のユーザである場合において、ローカル文書を保護しているユーザに限定される。
【００２９】
本発明は、電子文書を生成して操作する特定のアプリケーションプログラムに限定されるものではない。しかし、便宜上、以下、本発明を、Ａｄｏｂｅ（商標）  Ａｃｒｏｂａｔ（商標）ソフトウェアによって作成されるＰＤＦ文書を用いて特に詳細に述べる。
【００３０】
実施例：ＰＤＦ文書。Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ（ＰＤＦ）は、Ａｄｏｂｅ  Ｓｙｓｔｅｍｓ，Ｉｎｃ．製のＡｃｒｏｂａｔ（商標）ソフトウェアを用いて文書を表示するためのファイル形式仕様言語である。Ａｄｏｂｅ  Ｓｙｓｔｅｍｓ，Ｉｎｃ．によって公表されたＡｃｒｏｂａｔ（商標）仕様は、“Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ  Ｒｅｆｅｒｅｎｃｅ  Ｍａｎｕａｌ，Ｖｅｒｓｉｏｎ  １．３”（ＰＤＦＲＭ）であり、その最新のバージョンは、http://www.adobe.comにおいて検出することができる。セクション参照は、ＰＤＦＲＭの１９９９年３月バージョンに対して行われる。
【００３１】
例示の実施形態において、ＰＤＦＲＭから得られる下記に定義される用語は、ＰＤＦＲＭの定義セクションを参照することによって指示されるように用いられる。
【００３２】
「オブジェクト」−ＰＤＦにおける基本要素である。オブジェクトは、「直接」または「間接」とすることができるが、ある場合は、使用面によってこれらの１つに限定される場合がある（ＰＤＦＲＭのセクション４）。
【００３３】
「辞書オブジェクト」−キー（Key）と値（Value）との対からなる基本ＰＤＦオブジェクトである（ＰＤＦＲＭのセクション４．７）。辞書オブジェクトは、単に「辞書」と呼ばれる場合もある。多数の辞書は、それらの使用を定める「形式」（Type）を有し、多くの場合、それらが辞書であることを示すことなく、それらの形式によって呼称する場合がある（たとえば、ファイル仕様）。この実施例において用いられるように、形式によるこのような命名は、ＰＤＦＲＭに記述される「辞書」を意味する。
【００３４】
「アレイオブジェクト」−本実施例においては、ＰＤＦＲＭのセクション６．４のページオブジェクトの一部として定義される「ページオブジェクト」の「注釈」アレイに関してのみ用いられる。
【００３５】
「ストリームオブジェクト」−基本クラスの「オブジェクト」の１つであり、「辞書」とデータバイトのシーケンスとを含む。この場合、ＰＤＦＲＭによって定められる、「辞書」および必要とされる標準パラメータが用いられる。「ストリームオブジェクトとして格納する」ことは、辞書はＰＤＦＲＭに適合するように作成され、問題となっているデータはＰＤＦＲＭによって定められる様式において「オブジェクト」のバイト順序によって配置されることを意味する（ＰＤＦＲＭのセクション４．８）。
【００３６】
「注釈」（Annotation）−ＰＤＦ文書に対する追加であり、ユーザによって作成され、ＰＤＦＲＭのセクション６．６によって定められる。一般に、ＰＤＦＲＭのセクション６．６から６．６．１５までによって明確に定められるものに制限されるが、このように定められるものに限定されるものではない。「ポップアップ注釈」はこれらのセクションにおいて定められるが、通常、ユーザによって作成される注釈として直接に出現しないことに注意されたい。通常の使用において、ポップアップ注釈は、これらのセクションにおいて定められる他の形式の注釈の１つの「子」である。子としてのみ存在することは、この実施例の場合、明確に述べられているか否かに関わらず、ポップアップ注釈はその親の一部として含まれることを意味する。（一般に、この実施例において用いられるＰＤＦＲＭの注釈には、テキスト、スタンプ、円、正方形、取消線、強調（「Highlight」）、下線、インク（「Ink」）、およびポップアップが含まれるが、これに限定されるものではない）。また、「注釈」は、ＰＤＦの現在のバージョンに含まれる他の「オブジェクト」によって変わる。本明細書において用いられるように、「注釈」には、自動的に、直接的であれ間接的であれ、これらの従属オブジェクトが含まれる。すなわち、単一の「注釈」が他の文書に移動またはコピーされる場合、多数の部分を有する場合があるが、本発明の目的には、これらの部分は単一の「注釈」として処理することができる。
【００３７】
「アクション」−ＰＤＦＲＭのセクション６．８において定められる１つであるイベントによって起動されるとき発生するものである。通常の使用において、追加の「アクション」は、ソフトウェアアプリケーションまたはこのようなアプリケーションに対するプラグインソフトウェアによって定めることができる。本明細書において用いられるように、通常、「アクション」は、ソフトウェアによって形成され、本発明の本実施形態の一部として記述されるアクティビティを起動し、またＰＤＦＲＭのセクション６．１４．４のウィジェット（Ｗｉｄｇｅｔ）注釈に関連するイベントの１つによって起動される「アクション」を意味するが、これに限定されるものではない。特に、「アクション」は、プッシュボタンウィジェット（セクション６．１４．７）に含まれ、本実施形態のすべてまたは一部を起動（invoke）することができる。
【００３８】
「プレビューロード」−ＰＤＦ文書を表示するアプリケーションは、通常、ＰＤＦファイルを読み取り、必要とされることを実行し、ＰＤＦオブジェクトを編集して、ページ、テキスト、グラフィックス、などとして内容を表示するために必要とされる形態とする。この操作は、ユーザが文書のどれかのページのレンダリングを見る前に実行される。機密内容オブジェクトの場合、ユーザのためにＰＤＦを調製するこの段階の結果は、ＰＤＦが本発明によって定められる「注釈」の追加によって変更されることが好ましいときにある。このことは必須ではないが、本発明によって記述される変化によって、レンダリング過程でユーザが不快に感じることがあるアーティファクトを生じる場合がある。すなわち、ＰＤＦの変化は、ユーザがそれを見ることができる前に発生することが好ましい。これらの変化がプレビューロードにおいて発生する場合、これは真実となる。
【００３９】
「ウィジェット」−ＰＤＦＲＭのセクション６．１４において与えられる、ボタン、テキストフィールド、および他の形態の「注釈」。本明細書において特に重要であるのは、セクション６．１４．１１のテキストフィールドおよびセクション６．１４．６のボタンフィールドである。テキストフィールドによって、ユーザがテキストを入力することができる方法が提供され、「名前付き」フィールドを用いることによって、文書が見られている間に、そのテキストはソフトウェアによって読み取ることができる。ボタンフィールドによって、本発明のソフトウェア実行に専用のアクションを起動することができるイベントが形成される。本実施例において用いられるように、テキストフィールドエントリによって、ユーザが自分の識別情報（名前、パスワード、パスフレーズ）をソフトウェアに提示することができる方法が提供される。（名前「ウィジェット」は、「ウィジェット」に設定しなければならないこれらの項目に対する注釈サブタイプに由来する）。
【００４０】
ＰＤＦ例示実施形態において用いられる追加の用語の定義は、下記の通りである。
【００４１】
「プラグイン」−ＰＤＦ文書およびユーザの注釈を取り扱う特定のソフトウェアアプリケーションと共に作動するソフトウェア。プラグインによって、基本アプリケーションによって提供される機能を超える機能が提供され、プラグインは、機密内容オブジェクトの機能性、または暗号化のための規定に適用することができる。たとえば、本発明の機密内容オブジェクト（ユーザインタフェースデバイスを含めて）の機能性は、同じ製品に対して他のプラグインによって提供されている明示暗号化法を有するＡｄｏｂｅ  Ｓｙｓｔｅｍ，Ｉｎｃ．製品に対するプラグインによって形成することができる。
【００４２】
「複数キー暗号化」−基本的にはランダムキー、またはユーザの識別情報が与えられる場合に２人以上のユーザが復号することができるキーを用いて、データを暗号化することができる、任意の幾つかの一般の方法。（一般に、名前、パスワードおよび／またはパスフレーズ、あるいは生体測定情報および／またはそれらの組合せは、この識別情報として用いられる。）通常、正しく実行される場合、これは、暗号化されたデータの機密保護に障害を生じさせることはない。複数キー暗号化の１つの形式によれば、非暗号化情報（複数キー暗号化表に格納される複数キー構成要素）は、暗号化されたデータと関連付けられ、暗号化されたデータを用いることによって、ユーザの入力した許可とこの方法により結合される場合、復号キーを生成して暗号化されたファイルの復号に用いることが可能となる。この平文のテキストのフォーマットは実行と従属関係にあるが、複数キー技術を用いることはデータにおいて識別できる。この技術の重要な属性は、入力されたユーザ許可から、復号キーを生成する正しい操作を知る方法はないということである。すなわち、復号されたデータ（通常、暗号化されたヘッダ）は、復号して、正しいキーが用いられたかを判定しなければならない。最悪の場合、この復号および判定は、存在する可能なユーザキーの数とと同じ回数、実行される場合があり、すべての試行の完了後においてのみ、現行のユーザの識別情報は無効であることが判定される場合がある。
【００４３】
「暗号化マーカ」−短い数列のデータであり、以下に述べる本発明の方法によって実行され、暗号化すべきデータの前部に配置され、暗号化データの機密保護を改善し（暗号化ブロック連鎖が用いられると仮定）、復号のため正しいキーが用いられた時を知る方法を提供する。数列の最適長さは、データの復号が試行される場合、マーカが固有であると識別される限り、暗号化方法に応じて変更することができる。たとえば、ある人は、１３ランダムバイト、続いて第１の１３バイトの導出可能な変形（たとえば置換）によって、すべてのデータの暗号化を開始することができる。任意の平文テキストフレーズは、２つの乱数列の間に挿入することができるが、このことによって、暗号化マーカの機密保護が低下されたままとなる場合がある。複数キー暗号化によって、このデータに関してキーを試験する場合、このマーカの出現によって、暗号化された残りのデータの内容とは無関係に、正しいキーが検出されたことが示される。ランダムバイトは、現行の技術によって生成され、暗号化すべきデータに対する「固定前部」は存在しないことを保証し、同時に、保護されているデータを解釈する復号ソフトウェアなしに、正しいキーを有するという明確なまたは平文の指示（a clear indication）を依然として与える。
【００４４】
「サーバモード」−本発明の方法によれば、ＰＤＦのソースは、すべてのユーザに対する配布点として役立つサーバから得られる。このモードにおいて、ＰＤＦ文書のすべてのユーザが利用できなければならない、ＰＤＦに対する注釈は、サーバに送られ、サーバによってこれらの注釈は他のユーザの注釈と組み合わされ、新しいＰＤＦがすべてのユーザに対して利用可能とされる。このモードの使用は、必ずしもどのコンピュータがこれを行うかを意味せず、むしろ、注釈を一般に配布するために行わなければならない併合のアクティビティ（a merging activity）を意味する。
【００４５】
「ローカルモード」−このモードにおいて、注釈は、現行のユーザに対して物理的にローカルであり、他のユーザは利用できない。これらの変化は、単一のコンピュータ上に残留するが、すべてのファイルが移動されるならば、これは制約にはならないことが、通常、仮定される。このモードによって、注釈は、サーバモードを用いて注釈が組み合わされる時点まで、保護され専用に維持される。ローカルモードとサーバモードの相違は、アクションが行われる場所よりも実行されるアクションに関係する、すなわち、サーバモードアクションは、現行ユーザと同じマシン上において実行できることに注意されたい。
【００４６】
「ハッシュ」−「メッセージダイジェスト」と呼ばれる場合もある。入力データの幾つかの数列から得られる短い数列の結果または入力データの幾つかの数列から短いバイナリー数列を計算するアルゴリズムである。ここでユーザの識別情報と呼ぶ場合、それは通常、ユーザ識別情報と呼ばれているような平文のテキストのユーザの名前、パスワードまたはパスフレーズではなく、むしろ、これらの平文テキスト項目と、機密内容オブジェクト（ＳＣＯ）識別情報との幾つかの組合せによるハッシュ関数の出力を指す。ハッシュ関数は「一方向」であるので、これによって、テキストは、その内容を知りたいと思い特定のＳＣＯに固有のこのような表示を作成する誰からも効果的に隠される。多数の異なるハッシュアルゴリズムを用いることができる。現行の実行は、米国連邦情報処理規格集（ＦＩＰＳ  ＰＵＢ）１８０−１において定められているＳｅｃｕｒｅ  Ｈａｓｈ  Ａｌｇｏｒｉｔｈｍ、ＳＨＡ−１を用いるが、これは、実行に従属する（広く用いられている他のアルゴリズムは、ＭＤ−５である。）。
【００４７】
本発明による機密内容オブジェクトによれば、誰がテキストを観察、印刷、コピーできるか、または誰が注釈によってＰＤＦ文書を変形できるかを制御することによって、ＰＤＦ文書に対する機密保護が提供される。見るために文書を開くことに関連するこれらの制限に加えて、この方法によって、時間制限表示（timed restricted viewing）、持続されるネットワークによるホスト制限も提供され、この方法は、ユーザが文書を開くため試行するとき、実行に利用できる情報に基づいて賦課することができる他の制限に拡張することができる。この方法によって任意のバイナリーデータファイルを拡張された期間中、保護することができるので、保護される内容が「可視」であることは必ずしも必要ではない。
【００４８】
機密内容オブジェクトは、プラグインとして、あるいはＰＤＦビューアまたはビューア／エディタの一部として、実行することができる。機密内容オブジェクト内に含まれるＰＤＦを獲得したユーザは、プラグインビューアを用いてＰＤＦを開くことができる。Ａｃｒｏｂａｔ（商標）ソフトウェアを用いて実行される機密内容オブジェクトの一実施形態によれば、ユーザインタフェースデバイスは、「カバーシート」として実行することができる。カバーシートは、以下に定める特定の属性を有する他のＰＤＦ文書である。したがって、ユーザが機密内容オブジェクト（ＳＣＯ）プラグインビューアを用いて、暗号化された電子文書を開く場合、ユーザは、２つの領域からなる単一のページ「カバーシート」文書（１ページからなる他のＰＤＦ文書のように見える場合がある）を提示される。表示ページの１つの領域には、ＯＤＦの作成者が無制限にアクセスすることを許している情報が含まれる。たとえば、機密文書の特性または名前、何らかの制限、機密保護レベル通知、使用上の警告、日付、時刻、およびファイルのコピーを偶然に獲得しそれを開く人には有用である制限のない他の一般情報である。
【００４９】
カバーシートのもう１つの領域は、２から３個のテキストフィールド（および任意に、ユーザの生体測定データを入力するデバイスの起動の制御）と、１または２個のボタンフィールドとからなるウィジェット注釈を含む。（テキストおよびボタンフィールドの数は、必要とされる情報の量によって変わる。任意の数を用いることができる。）テキストフィールドは、ユーザが、たとえば、名前（平文テキストフィールド）、パスワード（エントリにおいて文字“*”をエコーに設定）、およびパスフレーズ（パスワードの場合と同様にエコー“*”）を入力するように指定されるエントリ位置である。パスワードおよびパスフレーズの両者またはそれらの１つのみを、ユーザ識別情報の一部として用いるかを特定するのは、ＰＤＦの作成者の責務である。ボタンフィールドは、本発明の実行によってサポートされる専用アクション（private action）を指定するアクション辞書（Action(s) dictionary）にリンクされる。これらの専用アクションの実行によって、ＰＤＦがリンクされているボタンフィールドとユーザが正しい情報を入力したか否かとに対応して、ＰＤＦが開かれるかまたはＰＤＦからバイナリー機密ファイルが抽出されるかのどちらかが行われる。
【００５０】
ＰＤＦ実行において、暗号化されたＰＤＦ文書は、前述したように暗号化された内容（ほとんどまたは全く暗号化されてないフォーマット化と共に）または完全に暗号化されたＰＤＦとすることができる。これらの両暗号化シナリオは、ＰＤＦフォーマットの制限内において作動する。しかし、ユーザは、任意の公知の暗号化技術を用いて、非フォーマット保存様式によってＰＤＦ文書を暗号化することができる。Ａｃｒｏｂａｔ（商標）によって定められる暗号化を用いる利点は、バイナリーファイル（ＰＤＦ文書の一部）を容易に抽出できることである。
【００５１】
どれかのボタンのアクションがマウスイベントによって起動される場合、対話要素は、ユーザ識別情報をテキストフィールドから読み取り、それを用いて、ボタンの標的オブジェクトストリームの暗号化されたセクションを開くことを試行する。このセクションを暗号化する機能は、ユーザの識別情報が正当であることを示し、このユーザ／ホストに対する許可制限がない場合は、ファイルアクションを終了することができることを示す。完全に暗号化されたＰＤＦの場合、このアクションによって、以下のセクションにおいて述べるように、カバーシートが復号されたＰＤＦによって置換させられ、あるいは、バイナリー内容の場合、ユーザは、バイナリーの非暗号化バージョンをどこに配置するかを問い合わされ、続いてファイルが指示される位置まで抽出される。
【００５２】
この実施形態は、ＰＤＦを用いて、ユーザ許可情報を獲得し、ホスト従属方法ではない。ＰＤＦの機能を用いてこの情報を獲得することによって、通常は利用できないホスト操作システムからかなりの程度に独立して実行することができる。カバーシートは、所望により、ホスト従属性方法であることに注意されたい。
【００５３】
復号されたＰＤＦが、カバーシートを置換するか否か、あるいは異なるウィンドウにおいて開くかは、実行およびビューアによって変わる。ユーザと対話して実行する方法を用いて、抽出されたバイナリーファイルを置くべき目標位置が獲得される場合にも、このことは真実である。
【００５４】
機密内容オブジェクトによって、電子文書に関するあらゆること（たとえば、ＰＤＦ）が隠蔽され、その理由は、内容およびフォーマット情報は、特定のユーザまたは実行によって、あるいは暗号化されたヘッダは暗号化された文書の前に最初に復号されるという事実によって選択される暗号化方法を用いて完全に暗号化されるためである。機密内容オブジェクトによって、ユーザは、ＰＤＦ文書が開く前に、ＰＤＦの内容に関する情報の一般的アクセス情報を示すことができる開いたカバーシートが提供される。これは、ユーザが、大きなコレクションにおいて以前用いられた文書を検索する場合、相当な時間を節減できる機能である。
【００５５】
ＰＤＦにおいて実装される機密内容オブジェクト（ＳＣＯ）２００を、図２に記号を用いて示す。ＳＣＯ２００はカバーシート２１０を含み、カバーシート２１０は、３個までの暗号化された電子文書２１２（便宜上、１つの暗号化された文書２１２のみを示す）にアクセスすることができる。各暗号化された文書２１２は、ＩＤ２４０と、ユーザに対して文書を識別し、特定の複数キー暗号化法によって用いられる複数キー構成要素を保持する複数キー暗号化表を含む平文ヘッダ２４２と、指紋（fingerprint）２５２を有する暗号化されたヘッダ２５０と、第２の指紋２６２を有する暗号化された内容２６０と、を含む。
【００５６】
この実施形態によれば、カバーシート２１０は、ＰＤＦＲＭに準拠するＰＤＦ文書として実行される。カバーシート２１０は、機密情報を含む３個までのストリームオブジェクト２１４，２１６，２１８と、これらのセクション間のアクションリンク２２４，２２６，２２８と、を含む。カバーシート２１０と、暗号化されたファイルおよび他の情報を含むストリームオブジェクト２１４，２１６，２１８と、を接続する２つのボタンフィールド２３０，２３２が存在する。これらのボタンフィールド２３０，２３２は、必要に応じて、ＰＤＦＲＭ（表６．１０に記載）に記載されるすべての選択肢を用いて、それらの選択肢に所望の外観を与えることができる。これらの多数の選択肢を設定する必要はないが、辞書キー“ＡＡ”（ＰＤＦＲＭの表６．１０に記載の追加アクション）は、それらの定義辞書に設定し、その辞書の“Ｓ”キーによって実行が登録されるアクションにリンクする「アクション」を定める間接オブジェクトを指示する（ＰＤＦＲＭの表６．３６に定義されるように）ことが必要とされる。
【００５７】
この実施例によれば、カバーシート２１０には、機密オブジェクトを参照またはそれにリンクする３個までのストリームオブジェクト２１４，２１６，２１８が存在する（たとえば、以下に述べる、暗号化されたＰＤＦ、機密バイナリーファイルまたは機密注釈ファイル）。これらの各オブジェクトは、ストリームオブジェクトであり、その辞書キー「形式」は、「組込ファイル」に設定される（ＰＤＦＲＭセクション７．４．３）。カバーシート２１０上のボタンフィールド２３０，２３２の注釈辞書内の間接オブジェクトとして用いられる各ファイルに関するファイル仕様辞書（Ｆｉｌｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｄｉｃｔｉｏｎａｒｉｅｓ）（ＰＤＦＲＭセクション７．４．２）は、図示されていない。このファイル仕様参照（File Specification reference）は、イベントによってアクションが起動される時点において、ストリームオブジェクトを発見するため、実行ソフトウェアによって用いられる（機密保護上の理由によって、ファイル仕様は、ファイルが指すストリームオブジェクトファイルのソースまたは内容に関する有用な情報を含むことができないので、ＰＤＦを遵守するファイルを作成するために用いられる場合、ファイル仕様の使用によって、ファイルが注釈辞書に直接にリンクできるという実際の価値は付加されない。）。
【００５８】
開いた後、カバーシート２１０によって、暗号化された文書２１２の機密内容にアクセスするためのユーザインタフェースが提供される。ユーザがボタン２３０，２３２を選択する場合、適切にリンクされたアクション２２４，２２６，２２８によって、ストリームオブジェクト２１４，２１６，２１８の処理が開始される。たとえば、ボタン２３２が選択される場合、アクション２２６が実行され、その結果、暗号化されたＰＤＦ２１４の処理が開始される。同様に、アクション２２８が選択される場合、機密注釈２１８の処理が開始される。ボタン２３０がアクション２２４を選択する場合、機密バイナリー２１６の処理が開始される。通常、選択されるストリームオブジェクトの処理は、ユーザに実行に特有のユーザ許可を入力する手段を提供し、続いて複数キー暗号化法を実行して、ユーザ許可が正当であるかを判定し、正当である場合、次に、選択された項目（item）は復号される（以下にさらに詳細に述べるように）。
【００５９】
線図には示されていないが、ユーザ識別テキストフィールド（および／または生体測定入力制御）は、カバーシート２１０の一部であり、それらの注釈辞書は、ソフトウェア実行のため既知である固有の名前に設定される“Ｔ”キー文字列値を有しなければならない。ボタン２３０，２３２の１つが起動される場合、実行によって、各フィールドに対するユーザエントリを獲得できるようにするため、このことは必要である。
【００６０】
実際に、ＳＣＯの内容は変化する場合がある。ＳＣＯは、図２に示すように、３つのオブジェクトを含むことができるし、または１つのボタンのみが含まれる場合もある。その場合、欠落しているボタンフィールドにリンクするストリームオブジェクト（単数または複数）も発生しない。
【００６１】
機密バイナリーストリームオブジェクトおよび暗号化されたＰＤＦストリームオブジェクト（両者とも暗号化された電子文書）は、共通の内部構造２１２を共用する。“ＩＤ”２４０によって、ストリームのデータは開始され、ＩＤは、後続のデータの形式をマークするために用いられるテキストタグからなる。ＩＤの存在は、すべての実行においては必要とされないが、それによって、処理ソフトウェアにそれが予測された形式のストリームオブジェクトを読み取っていることを迅速に確認できる手段を提供する。このセクションの通常の長さは、４文字である。
【００６２】
ＩＤ２４０に続くものは、「平文ヘッダ」２４２であり、平文ヘッダは、少なくとも、ソフトウェアが、次のセクションの開始と、このＳＣＯに固有であるデータ数列（ハッシュ関数を用いる平文ユーザ識別情報と混合される）と、１つ以上のユーザアクセスを与えるために必要とされる任意の複数キー暗号化情報（複数キー構成要素を含む複数キー暗号化表）と、を検出できるような長さを有する。一般に、平文ヘッダは、ユーザの数と、それに続く複数キー法のユーザキー生成情報とを含む（複数キー構成要素）。このセクションに含まれる任意の他の情報は、実行に従属するが、通常、その内容は、文書数と、ユーザが提供したいと思う場合がある機密保護を損傷しない他の情報とである。
【００６３】
実行によって選択されるアルゴリズムを用いて暗号化される「暗号化されたヘッダ」２５０が、ＩＤに続く。このセクションに対する復号キーは、用いられる複数キー法（無作為に生成されるキー）によって変わるか、または単一のユーザ識別情報の関数である。暗号ブロック連鎖付き複数キー法が通常用いられるので、復号は、復号妥当性に関する暗号化マーカから開始される。これによって、順次ストリーム（sequential stream）としてのみデータを読み取り（データをバックアップすることはできない）、正しいキーが検出されるまで、マーカを含むブロックを復号することが可能となる。これに続くものはヘッダの真の内容であり、ヘッダの内容には、暗号化されたヘッダの長さと、ヘッダに続く全ての指紋２５２の長さ（その合計が実ファイルデータが始まる場所を実行に通知する）と、許可マトリックスと、実行によって必要とされる場合がある機密ファイルに関する任意の他の限定されたアクセス情報（たとえば、バイナリーファイルの場合、ファイルの名前はこれに当たる）と、が含まれる。次に、ブロック暗号化を用いてヘッダを偶数のブロックとする場合、この情報にランダム埋込データ（random pad data）が続く。（幾つかの小さな無作為な数のブロックを追加することも利益があり、その結果、同じ保護されたデータを含むＳＣＯに対してさえも、暗号化ヘッダの実際の長さは一様な長さではない。）暗号化されたヘッダの長さは平文ではなく、ユーザは開始を復号して、機密ストリームオブジェクトにおいてヘッダに続く暗号化されたファイルセクションを突き止めることができなければならないことに注意すべきである。
【００６４】
暗号化されたヘッダで用いられる許可マトリックスは、ユーザとユーザの許可とを突き合わせる。この項目の実際のフォーマットは実行によって変わる。しかし、含まれる実行は、他の実行のために考慮すべき幾つかの重要な態様を有する。許可セットを突き合わせるために用いられる方法によって、ユーザが誰であるかに関する情報は提供されない。すなわち、ある人が暗号化された許可マトリックスを獲得する場合、その人は、ユーザ識別情報に関するどんな情報も得られない（ユーザはハッシュによって示される）。含まれる許可によって、文書が開かれた場合、ユーザは、文書を「クリップボードにコピー」する権利と、印刷する権利と、文書に注釈を加える権利と、が付与される。その上、文書の開放が特定の日付以後である場合と、コンピュータが、ネットワークアドレスと結合されるネットワークマスクによって指定されるネットワークアドレスを有することを主張しない場合と、コンピュータが特定のハードウェア従属性「ホストＩＤ」を備えない場合と、コンピュータシステムがネットワークアドレスを有しないことを示す場合（ネットワークが接続されたとき、ＳＣＯを開くことはできない）と、においては、許可は、実行によってその文書を開くことを制限することができる。
【００６５】
暗号化されたヘッダ２５０には、任意の小さな指紋２５２が続く場合がある。これは必ずしも必要ではないが、機密内容オブジェクト（ＳＣＯ）のソース識別が必要とされる場合、これは、このような情報が位置することができる１つの場所である。指紋２５２は保護されていないので、公知のキーおよび暗号化マーカを用いて指紋を暗号化し、続いて、ランダムバイトによって埋め込まれる必要とされるデータを偶数の暗号化ブロックとし、その後を、ランダムデータで満たされている小さな乱数のブロックとすることは有益である場合がある。すべての指紋は暗号化され、暗号化されたヘッダ２５０の長さは未知であり、変化するので、正当なユーザでないユーザは、暗号化されたヘッダの前部から指紋の暗号化されたマーカが検出されるまで復号を進めることによって、指紋を突き止めることしかできない。このことは、ＳＣＯを追跡する場合のみ発生し、それは、データの通常の処理では、暗号化されたヘッダの復号からヘッダの長さが分かり、ストリーム中のＳＣＯが正確に飛ばされる（skip）ためである。
【００６６】
次のセクションは暗号化された内容２６０であり、この内容は実際の機密データファイルである。しかし、暗号化されたセクションにおけると同様に、復号は暗号化マーカから開始される。このことによって、機密データファイルが任意のファイルフォーマットに対する正当なキーを有することを、実行によって検証することが可能となる。ブロック暗号化が使用される場合および／またはセクションに他の指紋２６２が続く場合、通常、データの実際の長さはストリームオブジェクトの残余と同じ長さではないので、このマーカにデータの実際の長さが続くことが好ましい。
【００６７】
メインデータ２６０に他の任意の指紋２６２が続き、任意の指紋２６２は、機密内容オブジェクト（ＳＣＯ）の所有者を明らかにするために用いることができるデータ、または他の実行特有の特性、たとえば日付、改訂番号、などを提供することができるデータを含む。これは前述した指紋と同じ形態である場合があるが、そのような場合、異なる暗号化法またはキーを用いることになる。このセクションのランダムデータによる埋込も行われる場合がある。
【００６８】
本明細書において定義される指紋は、専任のハッカーから保護されないが、同じ内容を有するＳＣＯの長さを変化させる、セクションのランダム埋込のように、未熟なハッカーを断念させることを意図する（暗号化数列の先頭から「固定テキスト」を除去するために用いられる暗号化マーカにおいて用いられるランダムデータに関して、これは真実ではない。）。
【００６９】
機密内容オブジェクト（ＳＣＯ）において幾つかの場所に用いられる「ランダムデータ」とは、擬似乱数列のため標準ソフトウェアによって生成されるデータを指す。通常、ソフトウェアは、生成される各ＳＣＯは擬似乱数列の制限内において固有であるように、各ＳＣＯに対して変化される「シード」を取る。これらのデータは、任意の暗号化数列の先頭の「テキスト」、および項目またはセクションの暗号ブロック位置合わせのために必要とされる場合がある任意の埋込のために用いられる。
【００７０】
各ストリームオブジェクト２１２は、非暗号化セクションと、それに続くランダムデータと混合される暗号化データの連続するストリームと、を含む。平文セクションは、識別可能なユーザ識別情報を含まない。平文であるＳＣＯデータ２４０，２４２のみが、ハッシュされたユーザ識別情報を必要とするキー決定関数に対する入力として用いられ、正当な出力が生成される。マーカ内のデータが擬似ランダム法においてＳＣＯごとに変化する正当な暗号化マーカが検出されるまで、正しい復号は、複数キー法から得られる試験キーに依存する。暗号化セクションは、ユーザが暗号化ヘッダ２５０を復号できるまで、信頼性のある分離をすることができない。（これは、未熟なハッカーに対して僅かな抑止力である。）暗号化法は、実行によって変わり、ＳＣＯごとに変わる場合がある。ＳＣ０の基本の指紋２５２，２６２に対する規定（Provision）が作成され、この規定には、ＳＣＯは最初に誰に付与されたかを追跡する機能が含まれる。ユーザ許可は、各ユーザ識別情報に合わせて鍵をかけられる（keyed）。異なるマスターキーおよび異なる複数キー機能を、暗号化されたヘッダ２５０および暗号化された内容２６０に対して用いることができる。
【００７１】
機密内容オブジェクト（ＳＣＯ）は、ユーザが暗号化されたＰＤＦを開くとき、または機密バイナリーファイルを抽出するとき、用いられる。最初に、ユーザはビューア／エディタの中でＳＣＯを開き、これによって、カバーシート２１０が表示される。次に、ユーザは、自身の識別情報（図示してない）を入力し、ボタンフィールド２３０，２３２の１つをクリックする。一般に、両ボタンフィールドに関する処理は、機密ファイルを復号することができる点まで共通であり、その結果、その点に達するまで両ボタンフィールド間において、以下のことはそれらの間を識別しない。
【００７２】
ボタンフィールド２３０，２３２は、プラグインに実装またはビューア／エディタの一部として実装される専用（ＰＤＦＲＭでは定められていない）アクションを有する（専用アクションは、普通の用いられるＰＤＦビューアにおいて許容される）。このアクション２２４，２２６，２２８をサポートしているソフトウェアは、ユーザのマウスイベントがボタンフィールド２３０，２３２において発生する場合、その処理を開始する。その時点において、ソフトウェアは、アクションに関する辞書、またはボタン２３０，２３２にリンクされるストリームオブジェクト２１４，２１６，２１８に対する間接オブジェクト参照子を含むために用いることができる辞書の１つをソフトウェアが突き止めることを可能とする辞書のどちらかを与えられる。
【００７３】
ストリームオブジェクトを獲得後、ストリームオブジェクトに含まれるデータは、先頭から順次に処理される。最初にＩＤが読み取られて検査され、次に、複数キー情報および機密内容オブジェクト（ＳＣＯ）識別情報が読み取られて保存される。次に、ユーザ識別情報がテキストフィールドから読み取られて処理され、ＳＣＯ識別情報と共に、一方向ハッシュ値とされ、これによってそれらの真の値を明らかにすることが防止される。次に、最善の実施方法は、この時点ににおいて実行によってパスワードおよびパスフレーズテキストフィールドをクリアし、その結果、それらの「平文テキスト」値はもはやコンピュータ内においては利用できなくすることである。次に、これらのハッシュ値は、複数キー機能によってユーザの入力として用いられる。
【００７４】
次に、ストリームオブジェクトは、少なくとも暗号化マーカに正当なキーがあれば復号されうることが分かるまで、読み取られる。次に、マーカの復号が、暗号化されたヘッダに関するそれらの複数キーデータをキー生成機能に入力することによって、可能性のある各ユーザに対して試行される。マーカに対する正当な復号された値がどのキーについても検出されない場合、ユーザ識別情報は正しくないと仮定され、ＳＣＯの処理は終了する。
【００７５】
暗号化されたヘッダ２５０に対するキーが検出されると、ヘッドの長さは既知となり、残余は復号することができ、現行のユーザの許可が獲得される。ＰＤＦを開くことには関係しないこれらの許可は、この時点において検査される。次に、許可に関するすべての条件が満足されない場合、処理は終了する（たとえば、現行の日付は許可によって付与された履歴となる）。処理が継続する場合、次に、ストリームオブジェクトの読み取りは暗号化された内容２６０の先頭に飛んで進み、暗号化マーカを読み取って復号し、万事が正当であることを検証する。実行と、暗号化ヘッダを復号した複数キー情報のユーザの「指標」（index）を用いることができるかと、に応じて、この復号は、すべてのキーを試行するため、必要とされる場合もあり、必要とされない場合もある。
【００７６】
暗号化マーカが内容の先頭において検証された後、ボタンフィールド２３０，２３２のどちらが作動されたかに応じて、処理は分岐する。ファイル抽出の場合、ソフトウェアは、オペレーティングシステムに対する標準ファイル保管ユーザインタフェースをユーザに与え、ユーザが取り消す選択肢を選択しない限り、ストリームオブジェクトから得られるデータを復号して新しいファイルとする。現在、機密保護はＳＣＯと無関係であるから、この時点において、さらなる機密保護は、ユーザの責任となる。
【００７７】
作動されたボタンフィールド２３２が暗号化されたＰＤＦ２１４とリンクされる場合、暗号化されたＰＤＦ２１４は、復号されることなく、ストリームオブジェクトからメモリに読み込まれる。（カバーシート内のストリームオブジェクトは閉じられる場合があるが、暗号化されたＰＤＦ内のデータは依然として利用できることが必要とされるので、これは必要である。）次に、メモリファイルオブジェクトが、ビューア／エディタに対して生成され、低レベルに開いた状態とされる（表示なしに開放）。この時点において、またはビューア／リーダが最初に文書の使用に関する制限を受容したとき、文書に対する許可は、暗号化されたヘッダから得られる許可を用いて設定される。ビューア／エディタは、ＰＤＦを処理するとき、メモリファイルを用い、メモリファイルによって必要時にＰＤＦの中のデータが復号される。暗号化されたＰＤＦデータは暗号化された状態を維持しながらローカルファイルとして保管することができるので、暗号化されたＰＤＦデータをメモリに保持することは、必ずしも必要ではない。ローカルディスクシステムを用いることによって内容は暴露されないが、メモリを用いて、ＰＤＦがビューア内において閉じられるときディスクファイルが除去されない場合、発生する可能性がある問題を回避するように実行することが好ましい。
【００７８】
暗号化されたＰＤＦが、誤りなく、低レベル文書として開かれると、ビューア／エディタは、開かれているカバーシートＰＤＦを新しく開かれたＰＤＦによって置換することを要求され、ユーザはそれを見ることができる。これによって、ボタンフィールド上のマウスイベントによって開始されたアクションは完了する。
【００７９】
この処理において、ＰＤＦ内容２６０またはバイナリーファイル内容２６０は、許可が正当であると検証されるまで、復号されない。復号は、リーダ／ビューアが、ＰＤＦの処理中にＰＤＦから得られるデータのブロックを要求する場合のみ行われるので、暗号化されたＰＤＦは、決して完全には復号されない。実行によってユーザ識別情報の平文バージョンは維持されないが、実行は、むしろユーザ識別情報とすべてのその処理に対するＳＣＯ識別子とを混合するハッシュ機能を用いる。すべての暗号化された内容には、暗号化マーカも含まれる。暗号化された内容のフォーマットまたは形式が分からない場合、このことは特に価値がある。たとえば、暗号化された内容がバイナリー試験データである場合、ユーザが「復号された」データを検査して、それが正当であるかを決定する方法は存在しない。したがって、内容に先行する暗号化マーカが復号されたことを知ることによって、内容の正当な復号が正当に保証される。
【００８０】
本発明のさらなる実行によって、主文書が保護されることは所望されない場合においても、機密内容オブジェクトを用いて注釈２１８を保護することができる。前述したように、注釈機能は、注釈の生成を提供する任意のアプリケーションプログラムにおいて用いることができる。一般に、各アプリケーションプログラムは、注釈を生成するためのそれ自体の規則のセットを有する。注釈実行は、ＰＤＦ文書を参照して記述され、注釈実行には、ユーザによる新しい注釈の記憶または伝送と、異なるユーザの注釈のＰＤＦ内のオブジェクトに対する併合と、ローカルの注釈および／または分散される注釈を有する文書を開くことと、が含まれる。
【００８１】
ユーザが注釈を加えてオリジナルのＰＤＦを編集する場合、２つの可能な状態がある。第１は、ユーザがローカルモードに留まることを所望する場合であり（ユーザ専用注釈）、第２は、ユーザが、ネットワークの一部でありサーバモードである場合である（分散型注釈）。本発明のこれらの両モードのソフトウェア実行は、直接にか、またはアプリケーションに対するプラグインとしてか、のどちらかの形式でビューア／エディタアプリケーションに存在することができる。
【００８２】
暗号化された注釈を有する機密内容文書を生成するアクションの順序は、下記のように新しいＰＤＦの通常の生成とは異なる。第１に、現行のユーザに属ずる注釈は、編集されたＰＤＦから抽出され、または暗号化ステップの間、編集されたＰＤＦから抽出するためリストが生成される。この処理には、基本注釈のみでなく、他の注釈の子であるポップアップ注釈も含まれる。注釈はページに位置するので、リスト作成または抽出処理の間、すべてのこのような注釈オブジェクトの辞書は、それらが存在するページ数によってマークされると仮定される。抽出の間、現行のユーザ注釈は、他のユーザの注釈が表示のため追加された場合、注釈辞書に配置されたキー／値の対によって、他のユーザ注釈から区別される。
【００８３】
暗号化法に対するユーザキーが存在する場合、または獲得できる場合、次に、注釈オブジェクトおよび注釈オブジェクトが従属する任意のオブジェクトは、現行のユーザのキーを用いて暗号化され、フォーマットされてデータ数列となる。抽出された注釈が取る正確な形態は重要ではない。本発明の実行には、後で、抽出された注釈をＰＤＦに戻して追加することができることのみが必要とされる。次に、２つのアクションが利用できる。ローカルモードにおいては、データは、ファイルを識別する平文ヘッダと、専用ではない任意のユーザデータと、それが用いられる場合には複数キーと、からなるファイルとしてローカルディスクに書き込まれる。暗号化された部分（単数または複数）は、すべての注釈と注釈が属するオブジェクトとを含むこの平文のデータに続く。通常、このファイルフォーマットは、ＰＤＦに常駐する併合され埋め込まれる注釈ファイルに対して用いられるファイルフォーマットと同じであるが、このことによってソフトウェア効率が改善されるのみであり、これは不可欠の条件ではない。このファイルが、暗号化以外の方法によって、現行のユーザ、注釈の所有者を識別することは必ずしも必要ではない。すなわち、ユーザは、ファイルを復号することができる。サーバモードにおいて、ユーザが自分の新しい注釈を他のユーザに知らせたいと思う場合、このフォーマットされたデータ数列は、サーバ処理に伝送される。伝送処理の間、サーバは、ユーザの識別情報を知らされ、その結果、サーバは、ユーザの機密情報を用いて、暗号化されたセクションのためのキー（単数または複数）に到達することができる。機密サーバ／クライアント接続が存在する場合、この伝送が暗号化されたセクションを含むことは必ずしも必要でない。しかし、以前に生成されたローカルモードファイルが事前抽出から得られる選択肢が存在する場合があるので、共通のフォーマットと共に存在することによってソフトウェア効率が向上する。
【００８４】
現行のＰＤＦ文書は、先行するステップの終了時において「保管」されると考えられ、表示されているＰＤＦは「未変更」としてマークされる（すなわち、いかなる保管も必要としない）。どんな条件下においても、現行のＰＤＦは、変形された形態でローカルディスクまたはサーバに書き込まれることはない。すなわち、現行のユーザによるすべての変化は、直前のステップにおいて生成された注釈ファイル内に含まれ、ビューア／エディタ内において作動する変形されたＰＤＦは、完全に廃棄され、他人が後で検出するような注釈に関する残留情報は残されない。
【００８５】
生成される機密内容オブジェクトは、現行のユーザによって生成または変形されたすべての注釈を含む暗号化されたファイルを含み、オリジナルのＰＤＦ文書は、変形されない。これらの注釈の暗号化には、そのユーザと、サーバモードの場合、そのユーザが属する組織の保護システムとにのみに知られている情報に従属するキーが用いられる。暗号化およびこの暗号化のためのマスターキー決定のための方法は、任意の公知の暗号化法とすることができる。これらのステップに対する共通の実施は、ＰＤＦと、ユーザの保管動作によって生成されるＰＤＦ文書の新しいバージョンと、に対して追加されるべきユーザの注釈に対するものであることに注意されたい。
【００８６】
ユーザが常にサーバモードを用いることは、必ずしも必要ではない。次に、ユーザがサーバモードを用いない場合、ユーザの注釈は専用であり、暗号化によって保護される。この場合における唯一の制限は、ここで、２つのファイルがローカルディスク上に存在することである。すなわち、未変更ＰＤＦ（これも暗号化によって保護することができる）およびユーザの注釈文書である。通常の実施において、これらの文書は、共通のディレクトリーに存在し、異なる名前拡張子以外は同じ名前（たとえば、ｍｙｆｉｌｅ．ｐｄｆとｍｙｆｉｌｅ．ａｎｔ）を有することによって結合される。このような専用注釈が有用である場合の例は、自分が重要であると思う情報を有する価格リストに注釈する販売員である。２つのモードは多くの点において共通であるので、ユーザの注釈を何時配布するかおよび配布するか否かを決定するのは、ユーザの責任である。
【００８７】
ユーザが自身の注釈をサーバモードによって保管する場合、注釈が、その文書を見ることができる他人に配布されることは可能である。しかし、文書を見ることができるユーザであって、自身の注釈を見る権利を供与することを望む者が存在する場合がある。この簡単な例は、自身のマネージャには自身の注釈を見せたいと思うが、自身の従属者には注釈の存在さえも知らせたくないマネージャである。これは、彼ら全員が同じＰＤＦ文書を有する場合でさえも真実である（マネージャによって単一のコピーがサーバから得られ配布されるので、正確なコピー）。
【００８８】
幾つかの点において、サーバは、文書およびその注釈に関する注釈マトリックスを有する。マトリックスは、「注釈の読者」と「注釈作成者」とを突き合わせる。注釈の読者すなわち注釈の作成者が少なくとも１人存在し、その結果、マトリックスは決して空にならない。ユーザは、任意の便利な方法を用いて、誰が文書のユーザ自身の注釈を読むことができるかを指定する。サーバが、注釈の読者マトリックスを獲得して保持することができることも仮定される。また、サーバが、ユーザによってサーバに与えられるすべての注釈を格納し位置指定する方法は、注釈が利用可能であり注釈の所有者（作成者）および読者が識別される限り、重要ではない。
【００８９】
ＰＤＦ文書を見ることを承認されているユーザに配布するため、すべての現行の注釈を含むＰＤＦ文書の新バージョンは、新しい注釈をオリジナルのＰＤＦ文書中に「併合」することにより、サーバによって作成される（併合処理は、通常、文書が開かれた場合または表示された場合にのみ発生する）。このステップは、所望により、実行処理によって、ユーザが文書のコピーを要求した時点またはその前に行うことができる。
【００９０】
併合処理は、機密様式によりすべての注釈を追加することによって、オリジナルＰＤＦを変形する。各注釈は、前述した複数キー法を用いて暗号化される。注釈データの先頭に追加される暗号化マーカに加えて、そのセクションを復号するソフトウェアに対して注釈の所有者／作成者を識別する所有者のマーカ（一般に、これはハッシュ以外は平文テキストではなく、またはこれは複数キー法から得られるものとすることができる）が含まれる。次に、各暗号化された注釈の先頭に、ファイルの長さと複数キー法によって必要とされるものに加えて任意の他の情報の長さとを与える平文テキストが追加され、キーの試験によって、暗号化部分を突き止めることおよび／または注釈を含む得られる数列のサイズを決定することが可能となる。複数キー暗号化に含まれるキーは、その注釈を見る権利を与えられたユーザのみのためのものである。したがって、この注釈を獲得するがその注釈を見る権利を有しない人々は、暗号を解読して注釈ファイルの内容に対するアクセスを獲得する必要がある。
【００９１】
前述したように生成されたすべての注釈データ数列（ファイル）は、連結されて一体となり、１つの数列を形成する。実行に応じて、必要により、このステップ中に、平文テキストを追加して、後で、注釈ファイル部分に分離することを可能とする構造を数列に与えることができる。
【００９２】
次に、前述したように生成されたデータ数列は、オリジナルのＰＤＦ文書に追加、またはＰＤＦ文書が機密内容として他のＰＤＦ文書内に含まれる場合、トップレベルＰＤＦにストリームオブジェクトとして追加される。このストリームは、“ＥｍｂｅｄｄｅｄＦｉｌｅ”形式を有し、その結果、ＰＤＦＲＭに適合する。将来の参照を容易にするため、ＰＤＦが開かれている場合、オブジェクトは、名前トリー（ＰＤＦＲＭセクション７．２）に追加して、プラグインによってサポートされるアクションにリンクすることができる。異なる方法が、このストリームオブジェクトの参照に関して、ＰＤＦＲＭ内に定義され、どちらを用いるかの選択は実行によって決まる。
【００９３】
オリジナルの文書および注釈文書を有する新しいＰＤＦ文書は、その文書のコピーを所有する権利を有するとサーバが決定したユーザ（単数または複数）に提供される。ユーザがコピーを要求した時点において、サーバによって、ストリームオブジェクトがＰＤＦに追加される場合、そのユーザが見ることができない注釈はＰＤＦ文書に含まれる必要がないことに注意されたい。これらの注釈が含まれるか含まれないかは、実行によって決まる。
【００９４】
この処理において、各注釈の暗号化は、他の注釈のどれとも無関係であるが、所定のユーザセットに対する複数キー暗号化法の使用による場合を除く。ユーザ識別情報の取り扱いおよび複数キー暗号化を用いるために必要とされる項目の生成は、保護されていると仮定されるサーバにおいて行われる。生成されるストリームオブジェクトは、ＰＤＦＲＭによる“ＥｍｂｅｄｄｅｄＦｉｌｅ”としてマークすることができるが、このオブジェクトは、通常、ＰＤＦＲＭ検出において「ファイル」として用いられないので、オブジェクトに対する「ファイル仕様」（ＰＤＦＲＭセクション７．４）が存在する必要はない。ストリームオブジェクトに対するリンクはトップレベルＰＤＦのどこかに存在し、開放を許可し、そのＰＤＦを孤立しないように維持する（孤立したオブジェクトは、アプリケーションによってＰＤＦファイルから除去される場合がある）。
【００９５】
ユーザが、少なくとも１つの注釈を含む機密内容オブジェクトを見るために開く場合、必ずイベントの列が発生し、注釈をＰＤＦの一部として提示する。ユーザは、この処理において考慮すべきこの文書に関するローカルモード注釈を有することもできることに注意されたい。どれほどまたはどのようにして列を起動するかは、両者ともビューアおよび実行に依存し、それは、ユーザが文書の任意の部分を見る前または文書が部分的または完全に開かれた後、イベントが発生するか否かと同様である。最終結果は、ビューアが変形された文書を自動的に表示またはビューアが注釈の処理の終了時に起動されて「リフレッシュ」される場合、すべての場合に同じである。
【００９６】
必ずしも必要ではないが、以下、すべての注釈処理は、ユーザが文書を見る前に発生すると仮定する。また、方法は、暗号化キーの生成に必要とされるユーザ識別情報を獲得、または獲得完了するため提供されると仮定する。これは、実行に特有の様式によって行われる。
【００９７】
ビューアアプリケーションは、ＰＤＦ文書の基本構造を変更することができ、ビューアアプリケーションはメモリにおいて処理を開始し、イベントと遭遇し、その結果、イベントによって注釈処理が開始されると仮定される。注釈に関連するポップアップを開く簡単な動作でも、辞書の値を編集、すなわち仮定された形式の変更となるので、これは通常真実である。このセクションの方法の正しい実行は、変更することができる。
【００９８】
ビューアがＰＤＦ文書の構造を利用可能にした時点において、以下のステップを行い注釈を表示可能ＰＤＦに加えることができる。チェックは、ローカルディスクにおいてローカルモード注釈について行われる。注釈が検出される場合、注釈は、最初に、以下に他の注釈について述べる様式によって処理される。唯一の相違は、文書が含む任意の注釈は、設定されていない「読み取り専用」フラグビットを有するＰＤＦに配置されることである（ＰＤＦＲＭ表６．１０は、“Ｆ”辞書キーの保護下にある）。
【００９９】
サーバによってＰＤＦ内に生成されるオブジェクトストリームは突き止められ、注釈の処理をセットアップするために必要とされる任意の平文ヘッダ情報が読み取られて処理される。復号に必要とされるいかなるユーザ情報も、このステップが完了する前に獲得されねばならない。次に、処理は、ストリームオブジェクトに含まれる第１注釈に移動する。
【０１００】
暗号化された注釈の前部セクションの暗号化は、現行のユーザ識別情報を用いて試行される。大部分の場合、これは、注釈の前部の暗号化マーカセクションは、複数キー法の可能性のある各キーのために暗号化されることを意味する。すなわち、複数キーのどれがこのユーザのためデータを復号するかを知る方法はなく、その結果、各複数キーを順次に試行しなければならない。どの複数キー復号試行によっても、各暗号化ヘッダに対する予測値が生成されない場合、次に、現行のユーザはこの文書内に含まれる注釈を読み取ることを許可されないと仮定して、この注釈セットはスキップされ、このステップの処理は、再び、ストリ−ムオブジェクトの次の注釈について開始される。暗号化ヘッダが正しく復号された場合、処理は、次のステップに進む。
【０１０１】
暗号化ヘッダの復号によって、注釈文書内の所有者情報の復号は実現することができる。現行のユーザがこの注釈の所有者であり、処理されるローカルモード注釈が存在する場合、この注釈は、ローカルモード注釈によって設置されると仮定されるので、スキップされる。所有者である読者のみが注釈を編集することを許可されるので、復号された所有者情報を用いて、次のステップに必要とされる「読み取り専用」フラグを設定または消去することも行われる。
【０１０２】
次に、文書内の各注釈は、任意の独立のオブジェクトと共に復号され、ビューアのＰＤＦ構造に追加される。各トップレベルおよび各第２レベルポップアップ注釈に対して、間接オブジェクト数が、注釈が常駐すべきページと同様に記入される。ＰＤＦ構造内における注釈または任意のポップアップ注釈の置換後、特殊な、キーと値との対が、注釈は現行のユーザによって所有されないことを示すそれらの辞書に追加される。前述したように、キー／値は、ＰＤＦのどの注釈を保管すべきかを知るために抽出処理中に用いられる。
【０１０３】
すべての注釈オブジェクトおよびそれらの従属オブジェクトがビューアの形態のＰＤＦ文書に追加された後、注釈およびそれらのポップアップオブジェクトは、間接オブジェクトとして、“Ａｎｎｏｔｓ”キーに属する既存のページオブジェクトアレイオブジェクトに追加される。“Ａｎｎｏｔｓ”キーが存在しない場合、“Ａｎｎｏｔｓ”キーは生成される。ページオブジェクトは、直前のステップの保管ページ数を用いて突き止められる。これは、ＰＤＦＲＭのセクション６．４に適合する。
【０１０４】
このストリームファイルのすべての注釈が追加された後、処理は、ストリームオブジェクトの次の項目に移動し、処理は復号ステップを繰り返す。ストリームにもはや注釈が存在しない場合、処理は終了し、ビューアは、これがプレビューロードである場合、文書をユーザに示すように指令される。
【０１０５】
ユーザ識別情報は、保護されていないコンピュータに配置された場合においても知られないので、注釈は、暗号化法が提供できる程度と同様に安全である。オブジェクトストリームに埋め込まれる注釈には、どのユーザの注釈の所有者または内容のどちらかを示すものは何も存在しない。可視構造は、処理すべき注釈の数を検出するためにのみ用いることができる−どちらかといえば限定された量の情報を。現行のユーザが、ストリームのファイルの１つに含まれる注釈セットを見ることができるか否かの決定は、暗号化法と暗号化キーの強さとのみによって決まる。すなわち、誰が、ストリームオブジェクト内に含まれる注釈セットまたはローカルモード注釈ファイル読者であるかに関する「隠し」フラグまたは他の標識は存在しない。所有者情報は、暗号化されたセクション内にあり、ファイルを復号して再構成することができない人が変形することはできない。
【０１０６】
以上、本発明を特定の実施形態を参照して述べたが、本明細書を図面と共に読み理解すれば、誰でも変形および変更を思いつくものである。実施形態は例示のみを目的とするものであり、当業者は、本開示より、種々の代替方法、変形、異形または改善を実施可能であり、これらは、特許請求の範囲に包括することを意図するものである。
【図面の簡単な説明】
【図１】  本発明による機密内容オブジェクトのブロック図である。
【図２】  ＰＤＦを用いて実行される機密内容オブジェクトのブロック図である。
【符号の説明】
１０  ユーザインタフェースデバイス、１１  暗号化されたヘッダ、１２  暗号化された電子文書、１３  複数キー暗号化表、１４  ユーザ入力フィールド、１６  ディスプレイ、１８  復号エンジン、１００，２００  機密内容オブジェクト、２１０  カバーシート、２１２  暗号化された電子文書（ストリームオブジェクト）、２１４，２１６，２１８  ストリームオブジェクト、２２４，２２６，２２８  アクションリンク、２３０，２３２  ボタンフィールド、２４０  ＩＤ（ＳＣＯ内容）、２４２  平文ヘッダ（ＳＣＯ内容）、２５０  暗号化されたヘッダ、２５２  指紋、２６０  暗号化された内容（ＰＤＦ文書、バイナリーファイル内容）、２６２  第２指紋。
【図１】
0004336078.tif 000002
【図２】
0004336078.tif 000003