(57)【要約】【課題】  ヘッダオブジェクト内のサブオブジェクトを検証するためのシステム、方法、及びデータ構造を提供すること。【解決手段】  データファイル用のヘッダオブジェクトは、データストリームの諸特性を指定するサブオブジェクト群からなり、データオブジェクト内の情報を正しく検証し解釈するために必要とされる情報を含む。サブオブジェクト群が任意の特定の順序に従うことを必要とすることなしにサブオブジェクトのどの集合も保護することを可能にするために、サブオブジェクト群内の諸領域を特定する領域指定子と、これらの領域用の検証情報とを含む新しいサブオブジェクトを導入する。ヘッダオブジェクト内のこの新しいサブオブジェクトは、検証情報を無効にすることなしに、非保護領域の修正、及びヘッダ内のサブオブジェクト群の再編成を可能にする。【選択図】  図５
2004265380.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのサブオブジェクトを含むデジタルオブジェクトと組み合わせて使用する方法において、該方法は少なくとも１つの領域についてデジタル署名を提供し、前記少なくとも１つの領域のそれぞれは、前記少なくとも１つのサブオブジェクトのうち１つの全部又は一部から成り、前記少なくとも１つのサブオブジェクトは、デジタル署名を無効にすることなしに、オブジェクト内で再構成することができ、
該方法は、前記少なくとも１つの領域のそれぞれについて、領域を特定する領域指定子を含む配列を作成すること、
各領域及び前記配列を含むデータに基づいてデジタル署名を生成すること、及び
前記配列及び前記デジタル署名を含む署名サブオブジェクトを前記デジタルオブジェクトに追加すること、
を含むことを特徴とする方法。
【請求項２】
前記少なくとも１つの領域のそれぞれは、前記少なくとも１つのサブオブジェクトの中からサブオブジェクトを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記領域指定子のそれぞれは、チェックサムアルゴリズムに従って計算されるチェックサムを含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記チェックサムが、前記領域について計算されることを特徴とする請求項３に記載の方法。
【請求項５】
前記チェックサムが、領域を含むサブオブジェクトについて計算されることを特徴とする請求項３に記載の方法。
【請求項６】
前記署名サブオブジェクトは、使用されるチェックサムアルゴリズムを特定するチェックサムアルゴリズム特定子を含むことを特徴とする請求項３に記載の方法。
【請求項７】
前記領域指定子のそれぞれは、チェックサム長を含むことを特徴とする請求項３に記載の方法。
【請求項８】
前記署名サブオブジェクトは、デジタル署名の前記生成のために使用される署名アルゴリズムを特定する署名アルゴリズム特定子を含むことを特徴とする請求項１に記載の方法。
【請求項９】
前記署名サブオブジェクトは、前記デジタル署名の検証のために署名者を特定する署名者特定子を含むことを特徴とする請求項１に記載の方法。
【請求項１０】
前記署名者特定子は、前記署名者の公開鍵を安全に特定し検証するためにデジタル証明書を含むことを特徴とする請求項９に記載の方法。
【請求項１１】
前記領域指定子のそれぞれは、サブオブジェクト内の対応する領域の開始位置を特定する領域オフセットを含むことを特徴とする請求項１に記載の方法。
【請求項１２】
前記領域指定子のそれぞれは、サブオブジェクト内の対応する領域のサイズを特定する領域サイズを含むことを特徴とする請求項１に記載の方法。
【請求項１３】
前記オブジェクトは、ＡＳＦファイル用のヘッダオブジェクトであることを特徴とする請求項１に記載の方法。
【請求項１４】
前記ヘッダブオブジェクトは、ＧＵＩＤを更に含むことを特徴とする請求項１３に記載の方法。
【請求項１５】
少なくとも１つのサブオブジェクトを含むデジタルオブジェクトと組み合わせて使用する方法において、該方法は少なくとも１つの領域についてデジタル署名を検証し、前記少なくとも１つの領域のそれぞれは、前記少なくとも１つのサブオブジェクトのうち１つの全部又は一部からなり、配列が前記少なくとも１つの領域のそれぞれについて領域指定子を含み、
該方法は、前記領域指定子のそれぞれに対応する領域を特定すること、
前記配列と、前記領域指定子のそれぞれについて前記領域指定子に対応する前記領域とを含むデータオブジェクトを作成すること、及び
前記データオブジェクトを使用して前記デジタル署名を検証すること、
を含むことを特徴とする方法。
【請求項１６】
前記オブジェクトは、ＡＳＦファイル用のヘッダオブジェクトであることを特徴とする請求項１５に記載の方法。
【請求項１７】
少なくとも１つのサブオブジェクトを含むデジタルオブジェクトと組み合わせて使用し、少なくとも１つの領域についてデジタル署名を検証する方法において、
前記少なくとも１つの領域のそれぞれは、前記少なくとも１つのサブオブジェクトのうち１つの全部又は一部からなり、配列が、前記少なくとも１つの領域のそれぞれについて領域指定子を含む方法であって、
前記デジタルオブジェクト内に存在するデジタル署名の数を決定すること、
前記デジタル署名のそれぞれを検証することを含むことを特徴とする方法。
【請求項１８】
前記デジタルオブジェクト内に存在するデジタル署名の数がゼロの場合にエラー値を返すことを更に含むことを特徴とする請求項１７に記載の方法。
【請求項１９】
少なくとも１つのサブオブジェクトを含むデジタルオブジェクトと組み合わせて使用するシステムにおいて、該システムは少なくとも１つの領域についてデジタル署名を提供し、前記少なくとも１つの領域のそれぞれは、前記少なくとも１つのサブオブジェクトのうち１つの全部又は一部からなり、前記少なくとも１つのサブオブジェクトは、前記デジタル署名を無効にすることなしに、前記オブジェクト内で再構成することができ、
該システムは、前記少なくとも１つの領域のそれぞれについて、前記領域を特定する領域指定子を含む配列を作成する配列作成手段と、
各領域及び前記配列を含むデータに基づいてデジタル署名を生成する署名手段と、
前記配列及び前記デジタル署名を含む署名サブオブジェクトを前記デジタルオブジェクトに追加する署名サブオブジェクト追加手段と、
を備えることを特徴とするシステム。
【請求項２０】
前記少なくとも１つの領域のそれぞれは、前記少なくとも１つのサブオブジェクトの中からサブオブジェクトを備えることを特徴とする請求項１９に記載のシステム。
【請求項２１】
前記領域指定子のそれぞれは、チェックサムアルゴリズムに従って計算されるチェックサムを備えることを特徴とする請求項１９に記載のシステム。
【請求項２２】
前記チェックサムが、領域について計算されることを特徴とする請求項２１に記載のシステム。
【請求項２３】
前記チェックサムが、領域を含むサブオブジェクトについて計算されることを特徴とする請求項２１に記載のシステム。
【請求項２４】
前記署名サブオブジェクトは、使用されるチェックサムアルゴリズムを特定するチェックサムアルゴリズム特定子を備えることを特徴とする請求項２１に記載のシステム。
【請求項２５】
前記領域指定子のそれぞれは、チェックサム長を備えることを特徴とする請求項２１に記載のシステム。
【請求項２６】
前記署名サブオブジェクトは、デジタル署名の前記生成のために使用される署名アルゴリズムを特定する署名アルゴリズム特定子を備えることを特徴とする請求項１９に記載のシステム。
【請求項２７】
前記署名サブオブジェクトは、前記デジタル署名の検証のために署名者を特定する署名者特定子を備えることを特徴とする請求項１９に記載のシステム。
【請求項２８】
前記署名者特定子は、前記署名者の公開鍵を安全に特定し検証するためにデジタル証明書を備えることを特徴とする請求項２７に記載のシステム。
【請求項２９】
前記領域指定子のそれぞれは、サブオブジェクト内の対応する領域の開始位置を特定する領域オフセットを備えることを特徴とする請求項１９に記載のシステム。
【請求項３０】
前記領域指定子のそれぞれは、サブオブジェクト内の対応する領域のサイズを特定する領域サイズを備えることを特徴とする請求項１９に記載のシステム。
【請求項３１】
前記オブジェクトは、ＡＳＦファイル用のヘッダオブジェクトであることを特徴とする請求項１９に記載のシステム。
【請求項３２】
前記ヘッダブオブジェクトは、ＧＵＩＤを更に備えることを特徴とする請求項３１に記載のシステム。
【請求項３３】
少なくとも１つのサブオブジェクトを含むデジタルオブジェクトと組み合わせて使用するシステムにおいて、該システムは、少なくとも１つの領域についてデジタル署名を検証し、前記少なくとも１つの領域のそれぞれは、前記少なくとも１つのサブオブジェクトのうち１つの全部又は一部からなり、配列が、前記少なくとも１つの領域のそれぞれについて領域指定子を備え、
前記領域指定子のそれぞれに対応する領域を特定する領域特定手段と、
前記配列と、前記領域指定子のそれぞれについて前記領域指定子に対応する前記領域とを含むデータオブジェクトを作成するデータオブジェクト作成手段と、
前記データオブジェクトを使用して前記デジタル署名を検証する検証手段含と、
を備えることを特徴とするシステム。
【請求項３４】
前記オブジェクトは、ＡＳＦファイル用のヘッダオブジェクトであることを特徴とする請求項３３に記載のシステム。
【請求項３５】
少なくとも１つのサブオブジェクトを含むデジタルオブジェクトと組み合わせて使用するシステムにおいて、該システムは、少なくとも１つの領域についてデジタル署名を検証し、前記少なくとも１つの領域のそれぞれは、前記少なくとも１つのサブオブジェクトのうち１つの全部又は一部からなり、配列が、前記少なくとも１つの領域のそれぞれについて領域指定子を備え、
該システムは、前記デジタルオブジェクト内に存在するデジタル署名の数を決定する計数手段と、
前記デジタル署名のそれぞれを検証する検証手段と、
を備えることを特徴とするシステム。
【請求項３６】
前記デジタルオブジェクト内に存在するデジタル署名の数がゼロの場合にエラー値を返すエラー返し手段
を更に備えることを特徴とする請求項３５に記載のシステム。
【請求項３７】
少なくとも１つのサブオブジェクトを含むデジタルオブジェクトと組み合わせて使用コンピュータ可読媒体において、該コンピュータ可読媒体は、少なくとも１つの領域についてデジタル署名を提供し、前記少なくとも１つの領域のそれぞれは、前記少なくとも１つのサブオブジェクトのうち１つの全部又は一部からなり、前記少なくとも１つのサブオブジェクトは、前記デジタル署名を無効にすることなしに、前記オブジェクト内で再構成することができ、
動作を実行する命令を有するコンピュータ可読媒体は、前記少なくとも１つの領域のそれぞれについて、前記領域を特定する領域指定子を含む配列を作成すること、
各領域及び前記配列を含むデータに基づいてデジタル署名を生成すること、及び、
前記配列及び前記デジタル署名を含む署名サブオブジェクトを前記デジタルオブジェクトに追加すること、
を含むことを特徴とするコンピュータ可読媒体。
【請求項３８】
前記少なくとも１つの領域のそれぞれは、前記少なくとも１つのサブオブジェクトの中からサブオブジェクトを含むことを特徴とする請求項３７に記載のコンピュータ可読媒体。
【請求項３９】
前記領域指定子のそれぞれは、チェックサムアルゴリズムに従って計算されるチェックサムを含むことを特徴とする請求項３７に記載のコンピュータ可読媒体。
【請求項４０】
前記チェックサムが、前記領域について計算されることを特徴とする請求項３９に記載のコンピュータ可読媒体。
【請求項４１】
前記チェックサムが、前記領域を含む前記サブオブジェクトについて計算されることを特徴とする請求項３９に記載のコンピュータ可読媒体。
【請求項４２】
前記署名サブオブジェクトは、使用される前記チェックサムアルゴリズムを特定するチェックサムアルゴリズム特定子を含むことを特徴とする請求項３９に記載のコンピュータ可読媒体。
【請求項４３】
前記領域指定子のそれぞれは、チェックサム長を含むことを特徴とする請求項３９に記載のコンピュータ可読媒体。
【請求項４４】
前記署名サブオブジェクトは、デジタル署名の前記生成のために使用される署名アルゴリズムを特定する署名アルゴリズム特定子を含むことを特徴とする請求項３７に記載のコンピュータ可読媒体。
【請求項４５】
前記署名サブオブジェクトは、前記デジタル署名の検証のために署名者を特定する署名者特定子を含むことを特徴とする請求項３７に記載のコンピュータ可読媒体。
【請求項４６】
前記署名者特定子は、前記署名者の公開鍵を安全に特定し検証するためにデジタル証明書を含むことを特徴とする請求項４５に記載のコンピュータ可読媒体。
【請求項４７】
前記領域指定子のそれぞれは、サブオブジェクト内の対応する領域の開始位置を特定する領域オフセットを含むことを特徴とする請求項３７に記載のコンピュータ可読媒体。
【請求項４８】
前記領域指定子のそれぞれは、サブオブジェクト内の対応する領域のサイズを特定する領域サイズを含むことを特徴とする請求項３７に記載のコンピュータ可読媒体。
【請求項４９】
前記オブジェクトは、ＡＳＦファイル用のヘッダオブジェクトであることを特徴とする請求項３７に記載のコンピュータ可読媒体。
【請求項５０】
前記ヘッダブオブジェクトは、ＧＵＩＤを更に含むことを特徴とする請求項４９に記載のコンピュータ可読媒体。
【請求項５１】
少なくとも１つのサブオブジェクトを含むデジタルオブジェクトと組み合わせて使用し、少なくとも１つの領域についてデジタル署名を検証するコンピュータ可読媒体において、
前記少なくとも１つの領域のそれぞれは、前記少なくとも１つのサブオブジェクトのうち１つの全部又は一部からなり、配列が、前記少なくとも１つの領域のそれぞれについて領域指定子を含むコンピュータ可読媒体であって、
前記領域指定子のそれぞれに対応する領域を特定すること、
前記配列と、前記領域指定子のそれぞれについて前記領域指定子に対応する前記領域とを含むデータオブジェクトを作成すること、及び、
前記データオブジェクトを使用して前記デジタル署名を検証することを含む動作を実行する命令を有することを特徴とするコンピュータ可読媒体。
【請求項５２】
前記オブジェクトは、ＡＳＦファイル用のヘッダオブジェクトであることを特徴とする請求項５１に記載のコンピュータ可読媒体。
【請求項５３】
少なくとも１つのサブオブジェクトを含むデジタルオブジェクトと組み合わせて使用するコンピュータ可読媒体において、該コンピュータ可読媒体は、少なくとも１つの領域についてデジタル署名を検証し、前記少なくとも１つの領域のそれぞれは、前記少なくとも１つのサブオブジェクトのうち１つの全部又は一部からなり、配列が、前記少なくとも１つの領域のそれぞれについて領域指定子を含み、
動作を実行する命令を有するコンピュータ可読媒体は、前記デジタルオブジェクト内に存在するデジタル署名の数を決定すること、
前記デジタル署名のそれぞれを検証すること、
を含むことを特徴とするコンピュータ可読媒体。
【請求項５４】
動作を実行するための命令を有する前記コンピュータ可読媒体は、
前記デジタルオブジェクト内に存在するデジタル署名の数がゼロの場合にエラー値を返すことを更に含むことを特徴とする請求項５３に記載のコンピュータ可読媒体。
【請求項５５】
メモリ内に記憶されたデータ構造を含む、アプリケーションプログラムによるアクセスのためにデータを記憶するメモリにおいて、前記データ構造は、少なくとも１つのサブオブジェクトからなるオブジェクト用の検証情報を記憶する一方、前記サブオブジェクト群の順序を変更することを可能にするように適合され、
該メモリは、前記サブオブジェクト群のうち１つの全部又は一部を含む領域をそれぞれが指定する少なくとも１つの領域指定子を含む領域指定子配列と、
前記領域のそれぞれ、及び前記領域指定子配列を含むデータ用のデジタル署名と、
を含むことを特徴とするメモリ。
【請求項５６】
前記データ構造は、
前記データ構造用のＧＵＩＤ（グローバルに一意な特定子）と、
前記データ構造のサイズと、
前記領域指定子配列内の領域の数と、
チェックサムアルゴリズム特定子と、
前記デジタル署名を生成するために使用されるアルゴリズムを特定する署名アルゴリズム特定子と、
前記デジタル署名の署名長と、
前記デジタル署名を検証するための署名情報と
のうち１つ又は複数を更に含むことを特徴とする請求項５５に記載のメモリ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にデータ検証に関し、より詳細には、データファイル用ヘッダオブジェクトに関する。
【背景技術】
【０００２】
従来、一部のデータファイル形式やデータストリーム形式は、ヘッダオブジェクトを含んでいる。ヘッダオブジェクトは、そのデータファイル又はデータストリーム内に含まれているコンテントデータを特定する、また使用するために使用される「メタコンテント」情報を含む。
【０００３】
たとえば、１つのデータストリーム形式がＡＳＦ（Ａｄｖａｎｃｅｄ  Ｓｔｒｅａｍｉｎｇ  Ｆｏｒｍａｔ）であり、これは、調整されたマルチメディアデータを記憶するように設計された拡張可能ファイル形式である。この形式に関する現行の仕様は、ｗｗｗ．ｍｉｃｒｏｓｏｆｔ．ｃｏｍから入手可能である。ＡＳＦは、多種多様なネットワーク及びプロトコルにわたってデータ転送をサポートする一方、局所的な再生を可能にする。
【０００４】
各ＡＳＦファイルは、１つ又は複数のメディアストリームで構成されている。ヘッダオブジェクトは、ストリーム特有の諸特性と共に、ファイル全体の諸特性を指定する。ＡＳＦでは、各ファイルが１つのヘッダオブジェクトを有していなければならない。ヘッダオブジェクトは、ＡＳＦファイルの冒頭で周知のバイト列を提供し（ヘッダオブジェクトＧＵＩＤ（グローバルに一意な特定子））、そのマルチメディアデータを正しく解釈するのに必要とされる情報すべてを含む。ヘッダオブジェクトは、ヘッダオブジェクト情報、及びヘッダサブオブジェクトの組合せを容れるコンテナと考えることができる。ヘッダオブジェクト情報は、ヘッダオブジェクト用のＧＵＩＤ（ASF_Header_Object）、ヘッダオブジェクトのサイズ、ヘッダオブジェクトに含まれているヘッダサブオブジェクトの数からなる。各ヘッダオブジェクトは、ＧＵＩＤで始まる。
【０００５】
ヘッダサブオブジェクトは以下を含む。
・  ファイル諸特性サブオブジェクト。ファイル内のマルチメディアデータのグローバルな特徴を定義する。
・  ストリーム諸特性サブオブジェクト。メディアストリームの特有の諸特性及び特徴を定義する。
・  ヘッダ拡張サブオブジェクト。後方互換性を維持しながら追加機能をＡＳＦファイルに追加することを可能にし、広範なヘッダサブオブジェクトを容れるコンテナである。
・  コーデックリストサブオブジェクト。ＡＳＦファイル内で見出されるコンテントを符号化するために使用されるコーデック及び形式に関するユーザフレンドリな情報を提供する。
・  スクリプトコマンドサブオブジェクト。ＡＳＦファイルの時刻表に同期したユニコードストリングのタイプ／パラメータ対のリストを提供する。
・  マーカサブオブジェクト。名前付きジャンプ点を設けるために使用される小さな専門化されたインデックスを含み、コンテント作者が、ＣＤ全体の曲の境界、あるいは長いプレゼンテーションの間の話題の変化などといった論理セクションにコンテントを分割すること、またユーザが使用するためにファイルの各セクションに人の読める名前を割り当てることを可能にする。
・  ビットレート相互排除サブオブジェクト。互いに相互排除関係を有するビデオストリームを特定する（換言すれば、そのような関係にあるストリームのうち１つだけストリームすることができ、残りは無視する）。
・  誤り訂正サブオブジェクト。誤り訂正方法を定義し、回復するために誤り訂正エンジンによって必要とされる情報を提供する。
・  コンテント説明サブオブジェクト。タイトル、作者、著作権、説明、視聴率情報を含む、ファイルとそのコンテンツを説明する周知のデータを作者が記録することを可能にする。
・  拡張コンテント説明サブオブジェクト。タイトル、作者、著作権、説明、視聴率情報など標準的な目録情報を超える、ファイルとそのコンテンツを説明するデータを作者が記録することを可能にする。
・  コンテント暗号化サブオブジェクト。コンテントがデジタル著作権管理システム（ＤＲＭ）システムによって保護されているかどうか特定する。このサブオブジェクトは、ＤＲＭライセンス取得ＵＲＬ、ＤＲＭキーＩＤ、及び他のＤＲＭ関連メタデータを含む。
・  ストリームビットレート諸特性サブオブジェクト。マルチメディアデータ内の各メディアストリームの平均ビットレートを定義する。
・  パディングサブオブジェクト。ヘッダオブジェクトのサイズを埋め合わせるために使用されるダミーサブオブジェクトである。
【０００６】
最初にデータストリームファイルを作成するエンティティ、及びそれに作用する後続のエンティティは、ヘッダファイルの要素を追加する、又は変更することができる。たとえば、コンテントを作成するエンティティは、データストリームファイルを作成し、コンテントに関してコンテント説明オブジェクト内に情報を含むことができる。第２のエンティティは、データ内のマーカを作成し、トラック情報を有するマーカオブジェクトを追加したいと望むことができる。データストリームファイルを分配する第３のエンティティは、動作又はスクリプト用データを含むスクリプトコマンドオブジェクトを追加することができる。たとえば、スクリプトコマンドオブジェクトは、指定されたＵＲＬ（ユニフォームリソースロケータ）に対してブラウザウィンドウを開く情報を含むことができる。
【０００７】
いくつかのエンティティがＡＳＦファイルに対して作用することができるため、どのエンティティがヘッダオブジェクトのどの部分を作成したか判定する方法はない。更に、攻撃者による情報の変更を特定することができない。
【０００８】
【非特許文献１】Federal Information Processing Standards Publication 180-1
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明は、ヘッダオブジェクト内のサブオブジェクトを検証するためのシステム、方法、及びデータ構造を対象とする。
【課題を解決するための手段】
【００１０】
本発明は、ヘッダオブジェクト内の１つ又は複数のサブオブジェクトのうち１つのエンティティによる検証を可能にし、一方、それでもなおサブオブジェクトの順序を変更することを可能にする。新しいサブオブジェクトがまた、その後作成され、他のエンティティによって検証することができる。信用されたエンティティによる２つ以上のサブオブジェクトの検証を組み合わせることができ、その結果、一方のサブオブジェクトが検証可能でないのに対して、他方のサブオブジェクトが信用エンティティによって署名されているため検証可能なままとなり、攻撃者はデータを除去する、又は変更することができない。
【００１１】
本発明の他の特徴及び利点について、下記の説明で述べる。
【発明を実施するための最良の形態】
【００１２】
１つ又は複数のデジタル署名サブオブジェクトをデータファイルのヘッダオブジェクト内に作成して配置して、ヘッダオブジェクト内にサブオブジェクトのための署名情報及びサブオブジェクトの領域を見込むことができる。デジタル署名サブオブジェクトが存在し、有効である場合には、署名済みサブオブジェクトのどのような編集又は改竄も検出することができる。サブオブジェクトの順序は保存する必要がない。
【００１３】
デジタル署名サブオブジェクトは、領域指定子の配列を含む。各領域指定子は、サブオブジェクト内の特定領域を特定する。領域指定子はまた、完全なサブオブジェクトを特定することができる。
【００１４】
デジタル署名サブオブジェクトはまた、署名を含む。この署名は、領域指定子の配列内にリストされている領域のデジタル署名である。この署名を使用して、領域指定子配列内にリストされている領域が改竄されていないことを検証することができる。
【００１５】
図１は、本発明を実施することができる好適なコンピューティングシステム環境１００の一例を示す。コンピューティングシステム環境１００は、好適なコンピューティング環境の一例にすぎず、本発明の使用又は機能の範囲に関してどのような制限をも示すものではない。コンピューティング環境１００について、例示的な動作環境１００に示されている構成要素のいずれか１つ又は組合せに関し、どのような依存又は要件をも有すると解釈すべきでない。
【００１６】
コンピュータ又は他のクライアントもしくはサーバデバイスをコンピュータネットワークの一部として、あるいは分散コンピューティング環境内で展開できることは、当業者なら理解することができる。これについて、本発明は、任意の数のメモリ又は記憶装置を有するどのようなコンピュータシステムにも、また、任意の数のアプリケーション、及び任意の数の記憶装置又はボリュームを跨いで発生するプロセスにも関係しており、これらを、本発明と共に使用することができる。本発明は、リモート記憶装置又はローカル記憶装置を有する、ネットワーク環境又は分散コンピューティング環境内で展開されたサーバコンピュータ及びクライアントコンピュータを備える環境に適用することができる。本発明はまた、リモートサービス又はローカルサービスと共に情報を生成、受信、送信するために、プログラミング言語機能、解釈及び実行機能を有するスタンドアロンのコンピューティングデバイスに適用することができる。
【００１７】
本発明は、他の多数の汎用又は専用コンピューティングシステムの環境又は構成と共に動作する。本発明と共に使用するのに適している可能性のある周知のコンピューティングシステム、環境、及び／又は構成の例には、それだけには限らないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドデバイス又はラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサをベースとするシステム、セットトップボックス、プログラム可能な消費者向け電子機器、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記のシステム又はデバイスのいずれかを備える分散コンピューティング環境などが含まれる。
【００１８】
本発明は、コンピュータによって実行される、プログラムモジュールなどコンピュータ実行可能命令の一般的な状況で述べることができる。一般にプログラムモジュールは、特定のタスクを実行し、又は特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。本発明はまた、通信ネットワーク又は他のデータ伝送媒体を介してリンクされた遠隔処理デバイス群によってタスクが実行される分散コンピューティング環境内で実施することができる。分散コンピューティング環境では、プログラムモジュール及び他のデータを、メモリ記憶装置を含むローカルとリモート両方のコンピュータ記憶媒体内に配置することができる。分散コンピューティングは、コンピューティングデバイスとシステムの間での直接交換により、コンピュータ資源／サービスの共用を容易にする。これらの資源及びサービスは、情報の交換、キャッシュ記憶、及びファイルのためのディスク記憶を含む。分散コンピューティングは、ネットワーク接続を利用し、クライアントが総合力を利用して企業全体に利益を与えることを可能にする。これについて、本発明の技法を使用することができるアプリケーション、オブジェクト、又は資源を様々なデバイスが有することができる。
【００１９】
図１を参照すると、本発明を実施するための例示的なシステムは、コンピュータ１１０の形態の汎用コンピューティングデバイスを含んでいる。コンピュータ１１０の構成要素は、それだけには限らないが、処理装置１２０、システムメモリ１３０、及びシステムメモリを含む様々なシステム構成要素を処理装置１２０に結合するシステムバス１２１を含むことができる。システムバス１２１は、メモリバス又はメモリコントローラ、周辺機器バス、及び様々なバスアーキテクチャのいずれかを使用するローカルバスを含むいくつかのタイプのバス構造のいずれかとすることができる。限定ではなく例を挙げると、そのようなアーキテクチャには、ＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＭＣＡ（Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＥＩＳＡ（Ｅｎｈａｎｃｅｄ  ＩＳＡ）バス、ＶＥＳＡ（Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ）ローカルバス、及びＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バス（メザニンバスとしても知られる）が含まれる。
【００２０】
コンピュータ１１０は、一般に、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ１１０によってアクセスすることができる任意の入手可能な媒体とすることができ、揮発性媒体と不揮発性媒体を共に含む。限定ではなく例を挙げると、コンピュータ可読媒体は、コンピュータ記憶媒体と通信媒体を含む。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、又は他のデータなど、情報を記憶するための任意の方法又は技術で実施される揮発性と不揮発性、取外し式と非取外し式の媒体が共に含まれる。コンピュータ記憶媒体には、それだけには限らないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリもしくは他のメモリ技術、ＣＤＲＯＭ、デジタル多用途ディスク（ＤＶＤ）もしくは他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、又は、所望の情報を記憶するために使用することができ、コンピュータ１１０によってアクセスすることができる他の任意の媒体が含まれる。通信媒体は、一般に、コンピュータ可読命令、データ構造、プログラムモジュール、又は他のデータを、搬送波又は他の移送機構など変調データ信号に統合し、任意の情報転送媒体を含む。「変調データ信号」という用語は、情報を信号に符号化するようにその特性の１つ又は複数が設定された、又は変化した信号を意味する。限定ではなく例を挙げると、通信媒体は、有線ネットワーク又は直接配線接続など有線媒体と、音響、ＲＦ、赤外線及び他の無線媒体など無線媒体とを含む。上記のいずれかの組合せもまた、コンピュータ可読媒体の範囲内に含まれるべきである。
【００２１】
システムメモリ１３０は、読出し専用メモリ（ＲＯＭ）１３１及びランダムアクセスメモリ（ＲＡＭ）１３２など揮発性及び／又は不揮発性メモリの形態でコンピュータ記憶媒体を含む。起動中などにコンピュータ１１０内の要素間で情報を転送するのを助ける基本ルーチンを含む基本入出力システム（ＢＩＯＳ）１３３は、一般にＲＯＭ１３１内に記憶されている。一般にＲＡＭ１３２は、処理装置１２０によって直ちにアクセス可能な、及び／又は現在動作されているデータ及び／又はプログラムモジュールを含む。限定ではなく例を挙げると、図１は、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、プログラムデータ１３７を示す。
【００２２】
コンピュータ１１０はまた、他の取外し式／非取外し式、揮発性／不揮発性コンピュータ記憶媒体を含むことができる。たとえば、図１は、非取外し式の不揮発性磁気媒体との間で読出し又は書込みをするハードディスクドライブ１４０、取外し式の不揮発性磁気ディスク１５２との間で読出し又は書込みをする磁気ディスクドライブ１５１、ＣＤ  ＲＯＭ又は他の光媒体など取外し式の不揮発性光ディスク１５６との間で読出し又は書込みをする光ディスクドライブ１５５を示す。例示的な動作環境内で使用することができる他の取外し式／非取外し式、揮発性／不揮発性コンピュータ記憶媒体には、それだけには限らないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、固体ＲＡＭ、固体ＲＯＭなどが含まれる。一般にハードディスクドライブ１４１は、インターフェース１４０など非取外し式メモリインターフェースを介してシステムバス１２１に接続され、磁気ディスクドライブ１５１及び光ディスクドライブ１５５は、一般に、インターフェース１５０など取外し式メモリインターフェースによってシステムバス１２１に接続されている。
【００２３】
上記で論じ、図１に示されたドライブとその関連コンピュータ記憶媒体は、コンピュータ１１０のためのコンピュータ可読命令、データ構造、プログラムモジュール、及び他のデータを記憶する。たとえば、図１では、ハードディスクドライブ１４１が、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、プログラムデータ１４７を記憶して示されている。これらの構成要素は、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、プログラムデータ１３７と同じであることも異なっていることもできる。ここでは、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、プログラムデータ１４７は、最低でも異なるコピーであることを示すために異なる番号が与えられている。ユーザは、キーボード１６２、及び一般にマウス、トラックボール、又はタッチパッドと呼ばれるポインティングデバイス１６１など、入力デバイスを介してコンピュータ２０にコマンド及び情報を入力することができる。他の入力デバイス（図示せず）には、マイクロフォン、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、スキャナなどが含まれる。これらの、また他の入力デバイスは、システムバスに結合されているユーザ入力インターフェース１６０を介して処理装置１２０に接続されることがしばしばであるが、パラレルポート、ゲームポート、又はユニバーサルシリアルバス（ＵＳＢ）など、他のインターフェース及びバス構造によって接続することができる。モニタ１９１又は他のタイプのディスプレイデバイスもまた、ビデオインターフェース１９０などのインターフェースを介してシステムバス１２１に接続することができる。モニタに加えて、コンピュータはまた、スピーカ１９７やプリンタ１９６など他の周辺出力デバイスをも含むことができ、これらは、出力周辺機器インターフェース１９０を介して接続することができる。
【００２４】
コンピュータ１１０は、リモートコンピュータ１８０など、１つ又は複数のリモートコンピュータに対する論理接続を使用してネットワーク環境内で動作することができる。リモートコンピュータ１８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス又は他の共通ネットワークノードとすることができ、図１には、メモリ記憶デバイス１８１だけ示されているが、一般に、コンピュータ１１０に関して上述した要素の多数又は全部を含む。図１に表された論理接続は、ローカルエリアネットワーク（ＬＡＮ）１７１と広域ネットワーク（ＷＡＮ）１７３を含むが、他のネットワークを含むこともできる。そのようなネットワーク環境は、事務所、全社コンピュータネットワーク、イントラネット、インターネットで普通である。
【００２５】
コンピュータ１１０は、ＬＡＮネットワーク環境内で使用されるとき、ネットワークインターフェース又はアダプタ１７０を介してＬＡＮ１７１に接続される。コンピュータ１１０は、ＷＡＮネットワーク環境内で使用されるとき一般に、インターネットなどＷＡＮ１７３を介して通信を確立するためのモデム１７２又は他の手段を含む。モデム１７２は、内部にあっても外部にあってもよく、ユーザ入力インターフェース１６０又は他の適切な機構を介してシステムバス１２１に接続することができる。ネットワーク環境では、コンピュータ１１０に関して図示されたプログラムモジュール、又はその一部分を、リモートメモリ記憶デバイス内に記憶することができる。限定ではなく例を挙げると、図１は、メモリデバイス１８１に常駐するリモートアプリケーションプログラム１８５を示す。図のネットワーク接続は例であり、コンピュータ間で通信リンクを確立する他の手段を使用することができることは理解されよう。
【００２６】
デジタル署名サブオブジェクト
本発明に従って、ヘッダオブジェクトが、保護すべきサブオブジェクト及びサブオブジェクトの領域を含む場合には、デジタル署名サブオブジェクトをヘッダに追加することができ、その署名サブオブジェクトと領域が改竄されていないことを検証する。このデジタル署名サブオブジェクトは、何らかのデータを入力として取り、後で検証することができる署名を生成する任意のデジタル署名アルゴリズムに基づくことができる。一実施形態では、使用アルゴリズムがＲＳＡアルゴリズムである。別の一実施形態では、楕円曲線アルゴリズムが使用される。他の実施形態では、他の署名アルゴリズムを使用することができる。
【００２７】
図２を参照すると、ファイル２００がヘッダオブジェクト２１０を含んでいる。ヘッダオブジェクト２１０は、ヘッダ情報２１５に加えて、ファイル諸特性サブオブジェクト２２０、ストリーム諸特性サブオブジェクト２３０、スクリプトコマンドサブオブジェクト２４０、コンテント説明サブオブジェクト２５０を含む。コンテント説明サブオブジェクト２５０は、コンテントのタイトル２５２、作者２５４、著作権２５６、説明２５８に関する情報を含む。スクリプトコマンドサブオブジェクト２４０は、ＵＲＬ２４５を含む。ファイル２００はまた、データオブジェクト２９０をも含む。この図は例であり、他のサブオブジェクトの組合せが、示されたそれら以外のヘッダオブジェクト内に存在することができることは理解されよう。
【００２８】
エンティティは、デジタル署名サブオブジェクト２６０を追加することにより、ヘッダオブジェクト２１０の一部の改竄を防止することができる。デジタル署名サブオブジェクト２６０は、領域指定子配列２６４及び署名２６６を含む。一実施形態では、デジタル署名サブオブジェクト２６０はまた、署名者情報２６８をも含む。一実施形態では、署名者情報２６８は、署名２６６を安全に検証するために使用することができる１つ又は複数の証明書を含む。
【００２９】
デジタル署名サブオブジェクト２６０を作成するためのプロセスが図３に示されている。ステップ３１０に示されているように、エンティティは、署名するヘッダサブオブジェクトの１つ又は複数の領域を決め、それらの領域用の領域指定子を決定する。たとえば、図２を参照すると、署名すべき領域には、スクリプトコマンドサブオブジェクト２４０と、コンテント説明サブオブジェクト２５０のタイトル、作者、著作権セクションとが含まれる。図３を再び参照すると、ステップ３２０で、領域指定子配列２６４（図２より）が作成される。ステップ３３０で、領域指定子配列２６４で指定された領域は、（領域指定子配列２６４で指定されている順序で）領域指定子配列２６４と共に連結される。次いで、この領域はステップ３４０でサインされ、署名２６６（図２より）を生成する。
【００３０】
デジタル署名サブオブジェクトを含むヘッダオブジェクトを含んでいるファイルが修正されたとき、サブオブジェクトの順序が変更される可能性があり、また、追加のサブオブジェクトが挿入される可能性がある。追加の領域又はサブオブジェクトを検証すべき場合は、新しいデジタル署名サブオブジェクトを追加することができる。
【００３１】
図２を参照すると、ヘッダオブジェクト２１０の検証をチェックするために、デジタル署名サブオブジェクト２６０と、領域指定子配列２６４で指定された領域とが使用される。図４に示されているように、ステップ４１０で、領域指定子配列２６４（図２より）で指定されたヘッダサブオブジェクト領域が特定される。ステップ４２０で、これらの領域は、（領域指定子配列２６４で指定されている順序で）領域指定子配列２６４と共に連結される。ステップ４３０で、署名２６６（図２より）は、連結するのに有効な署名であるかどうか判定するためにチェックされる。
【００３２】
本発明の一実施形態では、サブオブジェクトの諸領域と完全なサブオブジェクトのどちらも、デジタル署名サブオブジェクトを使用して署名することができる。別の実施形態では、完全なサブオブジェクトだけ署名することができる。本発明の一実施形態では、単一のサブオブジェクトからの１つ又は複数の領域を、１つのデジタル署名サブオブジェクト内で署名することができる。本発明の一実施形態では、署名される１つのサブオブジェクトの諸領域が重なり合うことができる。
【００３３】
本発明の一実施形態では、各ヘッダオブジェクトが、少なくとも１つのデジタル署名サブオブジェクトを含まなければならない。含まれていると予想されるときにヘッダオブジェクトがデジタル署名サブオブジェクトを含まない場合には、そのヘッダオブジェクトは改竄さていると仮定することができる。ヘッダオブジェクトが、正しく検証されない、又は信用される送信元からのものでないデジタル署名サブオブジェクトを含む場合には、そのヘッダオブジェクトを含むファイルを受信するエンティティはそれに応じて、たとえばある実施においては、そのファイルを使用しないことによって機能することができる。この実施形態によれば、デジタル署名サブオブジェクトが存在するかどうか見出すためにチェックが行われる。存在しない場合には検証が不合格となり、サブオブジェクトが存在する場合には、それぞれチェックされ、検証結果を生み出す。
【００３４】
一実施形態では、オブジェクトＯ１、Ｏ２、・・・Ｏｎの集成である任意のファイルＦを本発明に従って署名することができる。署名されているオブジェクト又はオブジェクトの諸領域を指定する領域指定子配列と、これらのオブジェクト及び配列の署名を含む新しいオブジェクトＯＤＳが作成される。
【００３５】
一実施形態では、ファイルがＡＳＦファイルである。一実施形態におけるＡＳＦファイル用デジタル署名サブオブジェクトの構成要素が図５に示されている。デジタル署名サブオブジェクト５００は、ＧＵＩＤ５１０を含む。ＡＳＦファイル内の各オブジェクト及びサブオブジェクトは、ＧＵＩＤで始まる。ＧＵＩＤは、ＡＳＦファイル内のすべてのオブジェクトタイプを一意に特定するために使用される。各ＡＳＦオブジェクトタイプは、それ自体の一意なＧＵＩＤを有する。しかし、一般に、ＧＵＩＤは、ＡＳＦヘッダオブジェクト内のサブオブジェクトを一意に特定するために使用することができない。というのは、ＡＳＦヘッダオブジェクト内の複数のサブオブジェクトが同じオブジェクトタイプを有し、したがって同じＧＵＩＤを有する可能性があるからである。
【００３６】
例示的なＡＳＦデジタル署名サブオブジェクト５００内の次の要素は、サブオブジェクトサイズ５２０である。この場合も、概してＡＳＦオブジェクト及びサブオブジェクトすべてが、オブジェクト及びサブオブジェクトのサイズを含む。上述のように、領域指定子配列内に含まれるサイン済み領域の数５３０が領域指定子配列５４０に先行する。チェックサムアルゴリズム特定子５５０及び署名アルゴリズム特定子５６０は、デジタル署名サブオブジェクト内で使用されているチェックサムアルゴリズム及び署名アルゴリズムを特定する。署名の長さ５７０が、諸領域及び領域指定子配列の署名５８０に先行する。署名者情報５９０は、署名者に関する情報を検証又は取得するために必要な情報を含む。署名者情報５９０は、署名者の特定を含むことができる。一実施形態では、署名者情報５９０は、署名者の公開鍵が信用される送信元からのものであることを検証するために使用することができる証明書連鎖を含む。
【００３７】
例示的なＡＳＦの実施においては、各領域指定子が、サブオブジェクト領域オフセット、サブオブジェクト領域サイズ、チェックサム長、オブジェクトチェックサムを含む。領域オフセットは、サブオブジェクト内で領域がどこで始まるか特定し、領域サイズは、領域のサイズを特定する。オブジェクトチェックサムは、指定された領域のチェックサムに対応する。好ましい一実施形態では、このチェックサムアルゴリズムが、ＳＨＡ−１（Ｓｅｃｕｒｅ  Ｈａｓｈ  Ａｌｇｏｒｉｔｈｍ）アルゴリズムである。このアルゴリズムは、インターネットのｈｔｔｐ：／／ｗｗｗ．ｉｔｌ．ｎｉｓｔ．ｇｏｖ／ｆｉｐｓｐｕｂｓ／ｆｉｐ１８０−１．ｈｔｍで入手可能な文献で入手可能である（非特許文献１参照）。代替実施形態では、衝突の可能性が低い任意のハッシュアルゴリズムを使用することができる。一代替実施形態では、オブジェクトチェックサムが、指定された領域を含むサブオブジェクトのチェックサムに対応する。
【００３８】
（図４のステップ４１０のように）領域がどのサブオブジェクト内に位置するか判定するために署名をチェックしているとき、ヘッダサブオブジェクトが検査される。検査される各サブオブジェクトについて、チェックサムアルゴリズム特定子５５０で指定されたアルゴリズムに従ってチェックサムが計算される。チェックサムが領域にわたって計算される実施形態では、所与のサブオブジェクト領域オフセットで始まり、所与のサブオブジェクト領域サイズになるように延びるサブオブジェクト内に含まれるデータについて、チェックサムが計算される。チェックサムがサブオブジェクト全体にわたって計算される実施形態では、そのサブオブジェクトについてチェックサムが計算される。領域指定子内のチェックサムと合致するチェックサムが計算されたとき、その領域指定子について正しいサブオブジェクトが特定されている。各領域指定子に対応するサブオブジェクトが特定されたとき、署名をチェックすることができる。
【００３９】
この実施においては、署名すべきサブオブジェクト全体を指定するために、領域指定子内のオフセットはゼロになり、領域サイズは、サブオブジェクトの長さに等しくなることになる。別の一実施形態では、指定された領域についてではなく、サブオブジェクト全体についてチェックサムが計算される。
【００４０】
この実施形態では、サブオブジェクトの様々な区域を一緒に検証させ、また、様々なエンティティにサブオブジェクトを検証させる際に柔軟性を可能にするために、複数のデジタル署名サブオブジェクトをオブジェクト内に含むことができる。
【００４１】
他の実施形態では、他の方法を使用して領域を特定することができる。一実施形態では、サブオブジェクトを一意に特定することができるデータが、領域オフセット／サイズデータと共に領域指定子内に含まれる。
【００４２】
他の実施形態では、サブオブジェクト全体だけ署名することができる。一実施形態では、領域指定子が、サブオブジェクト全体にわたるチェックサムを含む。別の一実施形態では、チェックサムの長さも含まれる。別の一実施形態では、サブオブジェクトを特定することができる他のデータを領域指定子内で使用する。
【００４３】
結論
本明細書は、データストリームヘッダオブジェクト保護のためのシステム及び方法である。上述のように、本発明の例示的な実施形態について、様々なコンピューティングデバイス及びネットワークアーキテクチャと共に述べたが、基礎となる概念は、データストリームヘッダオブジェクト保護を提供することが望ましいどのようなコンピューティングデバイス又はシステムにも適用することができる。したがって、本発明に従ってデータストリームヘッダオブジェクト保護を提供するための技法は、様々な応用例及びデバイスに適用することができる。たとえば、本発明の技法は、デバイス上の別個のオブジェクトとして、別のオブジェクトの一部として、サーバからダウンロード可能なオブジェクトとして、デバイス又はオブジェクトとネットワークとの間の「仲介者」として、分配されたオブジェクトなどとして提供された、コンピューティングデバイスのオペレーティングシステムに適用することができる。本明細書では、例示的な名前及び例が様々な選択を表すものとして選択されているが、これらの名前及び例は、制限することを意図していない。
【００４４】
本明細書で述べられている様々な技法は、ハードウェア又はソフトウェア、あるいは適切な場合には、両方の組合せと共に実施することができる。したがって、本発明の方法及び装置、又はそのある種の態様もしくは一部分は、フロッピー（登録商標）ディスク、ＣＤ−ＲＯＭ、ハードドライブ、又は任意の他の機械可読記憶媒体など、プログラムコードが、コンピュータなど機械内にロードされ、機械によって実行されたとき、機械が本発明を実施するための装置になる有形媒体内で実施されるプログラムコード（すなわち命令）の形態を取ることができる。プログラム可能なコンピュータ上でのプログラムコード実行の場合には、コンピューティングデバイスが概して、プロセッサ、プロセッサによって可読な記憶媒体（揮発性及び不揮発性メモリ及び／又は記憶要素を含む）、少なくとも１つの入力デバイス、少なくとも１つの出力デバイスを含むことになる。本発明の技法を、たとえばデータ処理用ＡＰＩなどの使用を介して使用することができる１つ又は複数のプログラムは、コンピュータシステムと通信するために上位の手続き型又はオブジェクト指向型プログラミング言語で実施されることが好ましい。しかし、望むなら、プログラム（群）をアセンブリ言語又は機械語で実施することができる。どのような場合でも、言語は、コンパイラ言語又はインタープリタ言語とし、又はドウェア実装と組み合わせることができる。
【００４５】
本発明の方法及び装置はまた、電気配線又はケーブルを介し、又は光ファイバを介し、又は任意の他の伝送形態を介してなど、何らかの伝送媒体を介して伝送されるプログラムコードであって、ＥＰＲＯＭ、ゲートアレイ、プログラマブルロジックデバイス（ＰＬＤ）、クライアントコンピュータ、ビデオレコーダなど、機械内に受信及びロードされ、それらによって実行されたとき、上記の例示的な実施形態で述べた信号処理機能を有する受信機械が本発明を実施するための装置になるプログラムコードの形態で実施される通信を介して実施することができる。このプログラムコードは、汎用プロセッサ上で実施されたとき、プロセッサと結合し、本発明の機能を使用するように動作する独自の装置を提供する。更に、本発明と共に使用されるどのような記憶技法も、常にハードウェアとソフトウェアの組合せとすることができる。
【００４６】
本発明について、様々な図の好ましい実施形態と共に述べたが、本発明から逸脱することなく、本発明の同じ機能を実行するために、他の類似の実施形態を使用することができ、また、前述の実施形態に修正及び追加を加えることができることを理解されたい。たとえば、本発明の例示的なネットワーク環境について、ピア・ツー・ピアのネットワーク環境などネットワーク化された環境の状況で述べたが、本発明がそれに限定されないこと、本願で述べた方法は、有線か無線かに関わらず、ゲームコンソール、ハンドヘルドコンピュータ、可搬コンピュータなど、任意のコンピューティングデバイス又は環境に適用することができ、通信ネットワークを介して接続され、そのネットワークを渡って相互作用する任意の数のそのようなコンピューティングデバイスに適用することができることを、当業者なら理解することができる。更に、特に無線ネットワーク化されたデバイスの数が増え続けているため、ハンドヘルドデバイスのオペレーティングシステム、及び他の応用例に特有のオペレーティングシステムを含む様々なコンピュータプラットフォームが企図されている。更に、本発明は、複数の処理チップ又は処理デバイス内で、又はそれらを跨いで実施することができ、記憶も同様に、複数のデバイスを跨いで行うことができる。したがって、本発明は、どのような単一の実施形態にも限定すべきでなく、むしろ、添付の特許請求による範囲の広さと範囲内で解釈すべきである。
【図面の簡単な説明】
【００４７】
【図１】コンピュータシステムの概要を示す図である。
【図２】本発明によるファイルを示すブロック図である。
【図３】本発明に従ってデジタル署名サブオブジェクトを作成するプロセスの図である。
【図４】本発明に従ってデジタル署名サブオブジェクトを検証するプロセスの図である。
【図５】本発明によるデジタル署名サブオブジェクトの図である。
【符号の説明】
【００４８】
１００  コンピューティングシステム環境
１１０  コンピュータ
１２０  処理装置
１２１  システムバス
１３０  システムメモリ
１３１  読出し専用メモリ（ＲＯＭ）
１３２  ランダムアクセスメモリ（ＲＡＭ）
１３３  基本入出力システム（ＢＩＯＳ）
１３４  オペレーティングシステム
１３５  アプリケーションプログラム
１３６  他のプログラムモジュール
１３７  プログラムデータ
１４０  インターフェース
１４１  ハードディスクドライブ
１４４  オペレーティングシステム
１４５  アプリケーションプログラム
１４６  他のプログラムモジュール
１４７  プログラムデータ
１５０  インターフェース
１５１  磁気ディスクドライブ
１５２  取外し式の不揮発性磁気ディスク
１５５  光ディスクドライブ
１５６  取外し式の不揮発性光ディスク
１６０  ユーザ入力インターフェース
１６１  ポインティングデバイス
１６２  キーボード
１７０  ネットワークインターフェース又はアダプタ
１７１  ローカルエリアネットワーク（ＬＡＮ）
１７２  モデム
１７３  広域ネットワーク（ＷＡＮ）
１８０  リモートコンピュータ
１８１  メモリ記憶デバイス
１８５  リモートアプリケーションプログラム
１９０  ビデオインターフェース
１９１  モニタ
１９５  出力周辺機器インターフェース
１９６  プリンタ
１９７  スピーカ
２００  ファイル
２１０  ヘッダオブジェクト
２２０  ファイル諸特性サブオブジェクト
２３０  ストリーム諸特性サブオブジェクト
２４０  スクリプトコマンドサブオブジェクト
２４５  ＵＲＬ
２５０  コンテント説明サブオブジェクト
２５２  タイトル
２５４  作者
２５６  著作権
２５８  説明
２６０  デジタル署名サブオブジェクト
２６４  領域指定子配列
２６６  署名
２６８  署名者情報
２９０  データオブジェクト
５００  デジタル署名サブオブジェクト
５１０  ＧＵＩＤ
５２０  サブオブジェクトサイズ
５３０  領域指定子配列内に含まれるサイン済み領域の数
５４０  領域指定子配列
５５０  チェックサムアルゴリズム特定子
５６０  署名アルゴリズム特定子
５７０  署名の長さ
５８０  署名
５９０  署名者情報
【図１】
2004265380.tif 000003
【図２】
2004265380.tif 000004
【図３】
2004265380.tif 000005
【図４】
2004265380.tif 000006
【図５】
2004265380.tif 000007
【外国語明細書】
2004265380.tif 000008
2004265380.tif 000009
2004265380.tif 000010
2004265380.tif 000011
2004265380.tif 000012
2004265380.tif 000013
2004265380.tif 000014
2004265380.tif 000015
2004265380.tif 000016
2004265380.tif 000017
2004265380.tif 000018
2004265380.tif 000019
2004265380.tif 000020
2004265380.tif 000021
2004265380.tif 000022
2004265380.tif 000023
2004265380.tif 000024
2004265380.tif 000025
2004265380.tif 000026
2004265380.tif 000027
2004265380.tif 000028
2004265380.tif 000029
2004265380.tif 000030
2004265380.tif 000031
2004265380.tif 000032
2004265380.tif 000033
2004265380.tif 000034
2004265380.tif 000035
2004265380.tif 000036
2004265380.tif 000037