(57)【特許請求の範囲】
【請求項１】
ホストコンピュータデバイスにより実行される場合に、以下のこと、即ち
直接匿名認証（ＤＡＡ）発行者コンピュータシステムからＤＡＡ証明書を受け取り、
前記ＤＡＡ証明書からベース名ポイントを導出し、
信頼できるプラットフォームモジュールにメッセージ及び前記ベース名ポイントを提供し、
前記信頼できるプラットフォームモジュールが署名ルーチンを実行して前記署名ルーチンへの入力として前記ベース名ポイントを用いて前記メッセージに署名することを要求する署名コマンドを、前記信頼できるプラットフォームモジュールに発行し、
前記信頼できるプラットフォームモジュールにより署名され且つベース名ポイントに関連した公開鍵値を含むメッセージのバージョンを、前記信頼できるプラットフォームモジュールから受け取り、
前記信頼できるプラットフォームモジュールにより署名された前記メッセージのバージョン及び前記ベース名ポイントに基づいて、前記ＤＡＡ証明書が有効であることを判定し、
前記公開鍵値をコンピュータ可読メモリに格納すること、を前記ホストコンピュータデバイスに行わせる命令を格納する持続性コンピュータ可読媒体。
【請求項２】
前記ホストコンピュータデバイスにより実行される場合に、ＤＡＡ署名検証手続きにおいて前記ホストコンピュータデバイスからＤＡＡ署名検証者コンピュータシステムに伝達されるべきメッセージに署名するために使用されるべき公開鍵値として、前記格納された公開鍵値を前記ホストコンピュータデバイスに指定させる命令を更に含む、請求項１に記載の持続性コンピュータ可読媒体。
【請求項３】
前記ホストコンピュータデバイスにより実行される場合に、ＤＡＡ署名検証手続きにおいて前記ホストコンピュータデバイスからＤＡＡ署名検証者コンピュータシステムに伝達されるべきメッセージに署名するために使用されるべき公開鍵値として、前記格納された公開鍵値を前記ホストコンピュータデバイスに指定させる命令が、
前記ホストコンピュータデバイスにより実行される場合に、前記ＤＡＡ証明書が有効であると判定された結果として、ＤＡＡ署名検証手続きにおいて前記ホストコンピュータデバイスからＤＡＡ署名検証者コンピュータシステムに伝達されるべきメッセージに署名するために使用されるべき公開鍵値として、前記格納された公開鍵値を前記ホストコンピュータデバイスに指定させる命令を含む、請求項２に記載の持続性コンピュータ可読媒体。
【請求項４】
前記ホストコンピュータデバイスにより実行される場合に、以下のこと、即ち
前記ホストコンピュータデバイスが本物であることを認証するために、ＤＡＡ署名検証手続きの一部として署名されるべきチャレンジメッセージを、前記ＤＡＡ署名検証コンピュータシステムから受け取り、
前記信頼できるプラットフォームモジュールが前記署名ルーチンを実行して前記チャレンジメッセージに署名することを要求する署名コマンドを、前記信頼できるプラットフォームモジュールに発行し、
前記信頼できるプラットフォームモジュールにより署名された前記チャレンジメッセージのバージョンを、前記信頼できるプラットフォームモジュールから受け取り、
前記格納された公開鍵値を、前記信頼できるプラットフォームモジュールにより署名された前記チャレンジメッセージのバージョンへ組み込み、
前記信頼できるプラットフォームモジュールにより署名され且つ前記格納された公開鍵値を組み込む前記チャレンジメッセージのバージョンを、前記ＤＡＡ署名検証コンピュータシステムへ伝達すること、を前記ホストコンピュータデバイスに行わせる命令を更に含む、請求項２に記載の持続性コンピュータ可読媒体。
【請求項５】
前記ホストコンピュータデバイスにより実行される場合に、前記ホストコンピュータデバイスに前記公開鍵値をコンピュータ可読メモリに格納させる命令が、
前記ホストコンピュータデバイスにより実行される場合に、前記ホストコンピュータデバイスに、前記信頼できるプラットフォームモジュールの外部にあるコンピュータ可読メモリに前記公開鍵値を格納させる命令を含む、請求項１に記載の持続性コンピュータ可読媒体。
【請求項６】
前記ホストコンピュータデバイスにより実行される場合に、前記ホストコンピュータデバイスに前記メッセージを選択させる命令を更に含む、請求項１に記載の持続性コンピュータ可読媒体。
【請求項７】
前記ホストコンピュータデバイスにより実行される場合に、前記ホストコンピュータデバイスに前記メッセージを選択させる命令は、前記ホストコンピュータデバイスに、あらゆるＤＡＡ署名検証コンピュータシステムからのあらゆる入力に無関係に前記メッセージを選択させる、請求項６に記載の持続性コンピュータ可読媒体。
【請求項８】
前記ＤＡＡ証明書から前記ベース名ポイントを導出することが、前記ＤＡＡ証明書に指定された値に等しい前記ベース名ポイントを設定することを含む、請求項１に記載の持続性コンピュータ可読媒体。
【請求項９】
コンピュータシステムであって、
秘密の直接匿名認証（ＤＡＡ）署名鍵を格納し、前記秘密のＤＡＡ署名鍵およびベース名ポイントを用いてメッセージに署名するセキュリティデバイスと、
ホストコンピュータデバイスとを含み、
前記ホストコンピュータデバイスが、
ＤＡＡ証明書を格納し、
前記格納されたＤＡＡ証明書からベース名ポイントを導出し、
署名されるべきメッセージ及び前記ベース名ポイントを前記セキュリティデバイスに提供し、
前記セキュリティデバイスから、前記セキュリティデバイスにより署名され且つ前記ベース名ポイントに関連した公開鍵値を含むメッセージのバージョンを受け取り、
前記セキュリティデバイスにより署名された前記メッセージのバージョンに基づいて、前記ＤＡＡ証明書が有効であることを判定する、コンピュータシステム。
【請求項１０】
前記セキュリティデバイスが、信頼できるプラットフォームモジュールである、請求項９に記載のシステム。
【請求項１１】
前記ホストコンピュータデバイスがハウジングを含み、
前記信頼できるプラットフォームモジュールが、前記ホストコンピュータデバイスの前記ハウジング内に収容される、請求項１０に記載のシステム。
【請求項１２】
前記ホストコンピュータデバイスがマザーボードを含み、
前記信頼できるプラットフォームモジュールが、前記ホストコンピュータデバイスの前記マザーボードに一体的に結合される、請求項１１に記載のシステム。
【請求項１３】
前記信頼できるプラットフォームモジュールが、前記秘密のＤＡＡ署名鍵のセキュリティを保護する物理的機構を含む、請求項１２に記載のシステム。
【請求項１４】
コンピュータにより実施される方法であって、
直接匿名認証（ＤＡＡ）発行者コンピュータシステムからＤＡＡ証明書を受け取り、
前記ＤＡＡ証明書からベース名ポイントを導出し、
信頼できるプラットフォームモジュールに、メッセージ、前記ベース名ポイント、及び楕円曲線グループメンバーシップポイントを提供し、
前記信頼できるプラットフォームモジュールが署名ルーチンを実行して前記署名ルーチンへの入力として前記ベース名ポイント及び前記楕円曲線グループメンバーシップポイントを用いて前記メッセージに署名することを要求する署名コマンドを、前記信頼できるプラットフォームモジュールに発行し、
前記信頼できるプラットフォームモジュールにより署名され且つベース名ポイントに関連した公開鍵値を含むメッセージのバージョンを、前記信頼できるプラットフォームモジュールから受け取り、
前記信頼できるプラットフォームモジュールにより署名された前記メッセージのバージョン及び前記ベース名ポイントに基づいて、前記ＤＡＡ証明書が有効であることを判定し、
前記公開鍵値をコンピュータ可読メモリに格納することを含む、方法。
【請求項１５】
前記信頼できるプラットフォームモジュールにより署名された前記メッセージのバージョン及び前記ベース名ポイントに基づいて、前記ＤＡＡ証明書が有効であることを判定することが、前記公開鍵値および前記ベース名ポイントの別個の対数が等しいことを判定することを含む、請求項１４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
背景
直接匿名認証（Direct Anonymous Attestation：ＤＡＡ）は、本物であると認証されているエンティティの正体（アイデンティティ）を明らかにせずに、エンティティの認証を可能にするように意図された匿名（又は偽名）の認証方式を意味する。典型的なＤＡＡ方式は、ＤＡＡ発行者、ＤＡＡ署名者（即ち、本物であると認証されるべきエンティティ）、及びＤＡＡ検証者を含む。発行者は、署名者が信頼されていると判断（判定）し、そのような検証の判断に応じてＤＡＡグループのメンバーシップ証明書またはＤＡＡ証明書を署名者に発行する。発行者が署名者の妥当性（validity：正当性、有効性）を検証する、発行者と署名者との間のこのネゴシエーションは、ＤＡＡ結合プロセスと呼ばれ得る。
【０００２】
署名者がＤＡＡ証明書を発行された後、署名者は、署名者に発行され且つ署名者の正体を明らかにすること無くＤＡＡ証明書の妥当性を検証することを検証者に可能にするＤＡＡ証明書に基づいているＤＡＡ署名でもってメッセージに署名することにより、信頼できるコンピュータプラットフォームのグループのそのメンバーシップであることを検証者に証明する。検証者が署名者のＤＡＡ証明書の妥当性を検証する、署名者と検証者との間のこのネゴシエーションは、ＤＡＡ署名プロセスと呼ばれ得る。
【０００３】
典型的なＤＡＡ方式において、署名者は、（ｉ）秘密の署名鍵を格納し、且つ比較的限定されたコンピュータ能力および記憶能力を有するが比較的高いセキュリティ（安全性）の保証を有する第１の署名者と、（ii）比較的大きなコンピュータ能力および記憶能力を有する第２の署名者との間でＤＡＡ署名を計算するタスクを分割する。安全であるがコンピュータ的に制限される一次署名者と、安全は劣るがコンピュータ的により強力な二次署名者との間で署名の役割を分割することは、コンピュータ的により強力な二次署名者に処理負荷の一部を押し付けることによってコンピュータ的に制約された一次署名者に課せられた負担を低減すると同時に、署名者が比較的強くて秘密のＤＡＡ署名を生成することも可能にする。ＤＡＡ署名でもってメッセージに署名する場合、第１の署名者は、保持する秘密の署名鍵を用いてメッセージに署名するが、第２の署名者の寄与はＤＡＡ署名を匿名にすることである。二次署名者は一般に、一次署名者の秘密の署名鍵を知ることが阻止され、結果として一次署名者と協働せずに有効なＤＡＡ署名を生成することができない。
【０００４】
典型的なＤＡＡ結合プロセスの一部として、一次署名者は、発行者により発行されたＤＡＡ証明書が有効であることを二次署名者に証明するために、及び二次署名者がＤＡＡ署名に寄与する際のその役割の一部として使用することができるランダム化ＤＡＡ公開鍵を二次署名者に提供するために一連の特殊コマンドを実行することができる。一般に、そのような特殊コマンドは、ＤＡＡ結合プロセスのこの態様に固有とすることができ、そうでなければ一次署名者により実行されることができない。結果として、ＤＡＡ証明書の妥当性を証明してランダム化ＤＡＡ公開鍵を生成するために、このような特殊コマンドを実行することができる必要性は、資源に制約のある一次署名者に対して増大した計算コスト及び複雑性をまねく可能性がある。
【図面の簡単な説明】
【０００５】
【図１】通信システムの一例のブロック図である。
【図２】全体的なＤＡＡプロセスの一例の態様を示す流れ図である。
【図３Ａ】ＤＡＡ方式の例示的な初期化プロセスの態様を示す流れ図である。
【図３Ｂ】ＤＡＡ方式の例示的な初期化プロセスの態様を示す流れ図である。
【図３Ｃ】ＤＡＡ方式の例示的な初期化プロセスの態様を示す流れ図である。
【図３Ｄ】ＤＡＡ方式の例示的な初期化プロセスの態様を示す流れ図である。
【図４Ａ】例示的なＤＡＡ結合プロセスの態様を示す流れ図である。
【図４Ｂ】例示的なＤＡＡ結合プロセスの態様を示す流れ図である。
【図４Ｃ】例示的なＤＡＡ結合プロセスの態様を示す流れ図である。
【図４Ｄ】例示的なＤＡＡ結合プロセスの態様を示す流れ図である。
【図４Ｅ】例示的なＤＡＡ結合プロセスの態様を示す流れ図である。
【図５Ａ】例示的なＤＡＡ署名プロセスの態様を示す流れ図である。
【図５Ｂ】例示的なＤＡＡ署名プロセスの態様を示す流れ図である。
【図５Ｃ】例示的なＤＡＡ署名プロセスの態様を示す流れ図である。
【図６】例示的なＤＡＡ結合プロセスの態様を示す流れ図である。
【０００６】
詳細な説明
ＤＡＡ証明書の妥当性の検証およびＤＡＡ二次署名者に対してＤＡＡ一次署名者によるランダム化ＤＡＡ公開鍵の生成を可能にする技術が、本明細書で説明される。これら技術を利用することにより、ＤＡＡ証明書の妥当性の検証およびランダム化ＤＡＡ公開鍵の生成を可能にすると同時に、ＤＡＡ証明書の妥当性を検証する及びランダム化ＤＡＡ公開鍵を生成するために実行され得る１つ又は複数の特殊コマンドの必要性が除去され得る。
【０００７】
図１は、通信システム１００の一例のブロック図である。例示のために、図１に示されて後述される幾つかの要素は、単体のエンティティとして表される。しかしながら、これら要素の一部は、一組の所定の演算を実行するために設計された多くの相互接続されたコンピュータデバイス及び／又は他のコンポーネントを含む、及び／又はそのようなもので実現され得る。
【０００８】
図１に示されたように、通信システム１００は、ＤＡＡ発行者１０２、信頼できるプラットフォームモジュール（Trusted Platform Module：ＴＰＭ）１０６を有するホストコンピュータ１０４（まとめてＤＡＡ署名者と呼ばれ得る）、及びＤＡＡ検証者１０８を含む。ホストコンピュータ１０４は、ネットワーク１１０によりＤＡＡ発行者１０２及びＤＡＡ検証者１０８に通信可能に結合される。ネットワーク１１０は、ホストコンピュータ１０４とＤＡＡ発行者１０２との間に、並びにホストコンピュータ１０４とＤＡＡ検証者１０８との間に直接的または間接的通信リンクを提供することができる。ネットワーク１１０の例には、インターネット、ワールドワイドウェブ、企業イントラネットを含む広域ネットワーク（ＷＡＮ）、無線ＬＡＮ（ＷＬＡＮ）を含むローカルエリアネットワーク（ＬＡＮ）、アナログ又はデジタルの有線または無線電話ネットワーク、無線通信、テレビシステム、ケーブルテレビ、衛星通信、及び／又はデータを伝送するための任意の他の配信機構、又はそれらの任意の組み合わせが含まれる。
【０００９】
ＤＡＡ発行者１０２及びＤＡＡ検証者１０８のそれぞれは、１つ又は複数のコンピュータデバイス（例えば、サーバ）を用いて実現され得る。ＤＡＡ発行者１０２が実現される１つ又は複数のコンピュータデバイス、及びＤＡＡ検証者１０８が実現される１つ又は複数のコンピュータデバイスは、データ、並びにオペレーティングシステム及び１つ又は複数のアプリケーションプログラムのようなプログラムを格納する内部または外部記憶コンポーネントを有することができる。ＤＡＡ発行者１０２が実現される１つ又は複数のコンピュータデバイスの記憶コンポーネントに格納される１つ又は複数のアプリケーションプログラムは、実行された場合に１つ又は複数のコンピュータデバイスが本明細書で説明されるＤＡＡ発行者１０２の特徴を提供する命令を含むことができる。同様に、ＤＡＡ検証者１０８が実現される１つ又は複数のコンピュータデバイスの記憶コンポーネントに格納される１つ又は複数のアプリケーションプログラムは、実行された場合に１つ又は複数のコンピュータデバイスが本明細書で説明されるＤＡＡ検証者１０８の特徴を提供する命令を含むことができる。更に、ＤＡＡ発行者１０２が実現される１つ又は複数のコンピュータデバイス、及びＤＡＡ検証者１０８が実現される１つ又は複数のコンピュータデバイスはそれぞれ、記憶装置に格納された命令および／または例えばネットワーク１１０を介して１つ又は複数の他の電子デバイスから受信した命令を実行するための１つ又は複数のプロセッサを含むことができる。更に、これらコンピュータデバイスは、データを送受信するためのネットワークインターフェース及び通信デバイスを含むこともできる。
【００１０】
ホストコンピュータ１０４は、多数の異なる種類のコンピュータデバイスの何れかとすることができ、そのようなコンピュータデバイスには、例えばパーソナルコンピュータ、専用コンピュータ、汎用コンピュータ、専用および汎用コンピュータデバイスの組み合わせ、ラップトップ型コンピュータ、タブレット型コンピュータ、ネットブックコンピュータ、スマートフォン、携帯電話、携帯情報端末、及び携帯型メディアプレーヤが含まれる。ホストコンピュータ１０４は一般に、データ、並びにオペレーティングシステム及び１つ又は複数のアプリケーションプログラムのようなプログラムを格納するための内部または外部記憶コンポーネントを有する。また、ホストコンピュータ１０４は一般に、記憶装置に格納された命令および／または例えばネットワーク１１０を介して１つ又は複数の他の電子デバイスから受信した命令を実行するための中央処理装置（ＣＰＵ）も含む。更に、ホストコンピュータ１０４は通常、データを送受信するための１つ又は複数の通信デバイスも含む。そのような通信デバイスの一例はモデムである。他の例には、アンテナ、トランシーバ、通信カード、及び有線または無線データ経路を通じてネットワーク１１０を介してデータを送受信ことができる他の種類のネットワークアダプターが含まれる。
【００１１】
ＴＰＭ１０６は、ホストコンピュータ１０４内に一体的に実装される。例えば、ＴＰＭ１０６は、ホストコンピュータ１０４のハウジング内のハードウェアに埋め込まれ得る。より具体的には、幾つかの具現化形態において、ＴＰＭ１０６は、ホストコンピュータ１０４のマザーボード内に埋め込まれ得るか、又は当該マザーボードに物理的に結合され得る。更に、ＴＰＭ１０６は一般に、ソフトウェアだけを通じて可能とすることができるものよりも高いレベルのセキュリティを提供するように設計された１つ又は複数の物理的機構を含む物理的に安全なハードウェアデバイス（例えば、不正開封防止機構の付いたチップ）とすることができる。ＴＰＭ１０６は、幾つかある目的の中で特に、１つ又は複数の暗号鍵を格納するためのコンピュータ記憶装置を含む。更に、ＴＰＭ１０６は、処理能力を有し、ホストコンピュータ１０４の処理能力よりも劣ることができるＴＰＭ１０６の処理能力を通じて計算タスク（例えば、暗号化機能を含む）を実行することができる。幾つかの具現化形態において、ＴＰＭ１０６は、低帯域幅のＬＰＣ（Low Pin Count）バスインターフェースにより、ホストコンピュータ１０４に通信可能に結合され得る。
【００１２】
ＤＡＡ方式を実現する場合、発行者１０２は、ホストコンピュータ１０４及びその関連するＴＰＭ１０６の正当性（妥当性）を試験し、ホストコンピュータ及びその関連するＴＰＭ１０６が正当（本物）であることを検証する（例えば、ＴＰＭがＤＡＡ秘密を格納することを検証することにより）ことに応じて、ホストコンピュータ１０４にＤＡＡ証明書を発行する。次いで、ホストコンピュータ１０４及びその関連するＴＰＭ１０６は、検証者１０８に対してそれらの正当性を以下によって、即ちＴＰＭ１０６により格納されたＤＡＡ秘密、及び発行者１０２によりホストコンピュータ１０４に発行されたＤＡＡ証明書に基づいているＤＡＡ署名を検証者１０８に供給することによって、証明することができる。
【００１３】
このＤＡＡ署名を計算する役割は、ホストコンピュータ１０４とＴＰＭ１０６との間で分割される。以下で詳述されるように、ＴＰＭ１０６は、主要な（一次の）署名者であり、ＤＡＡ秘密およびＤＡＡ秘密署名鍵を格納する。一方で、ホストコンピュータ１０４は、二次の署名者として動作し、ホストコンピュータ１０４の匿名性（又は偽名）を維持するためにＤＡＡ署名を計算する際にＴＰＭ１０６を支援する。ホストコンピュータ１０４は、ＴＰＭ１０６により格納されたＤＡＡ秘密および秘密署名鍵を知ることが阻止されることができ、結果としてホストコンピュータ１０４は、ＴＰＭ１０６なしに有効なＤＡＡ署名を生成することができない。
【００１４】
ホストコンピュータ１０４からＤＡＡ署名を受け取った後、検証者１０８は、ホストコンピュータ１０４及びその関連するＴＰＭ１０６が有効なＤＡＡ証明書を所持しているか否かを判定するために当該署名を試験し、ホストコンピュータ１０４及びその関連するＴＰＭ１０６が有効なＤＡＡ証明書を所持していることの検証に応じて、ホストコンピュータ１０４の信憑性を確認する。検証者１０８は、ホストコンピュータ１０４及びその関連するＴＰＭ１０６が有効なＤＡＡ証明書を所持していることを検証することができるが、検証者１０８はホストコンピュータ１０４の正体（アイデンティティ）を特定することはできない。
【００１５】
図２は、全体的なＤＡＡプロセスの一例の態様を示す流れ図２００である。図２の流れ図２００に示されたプロセスは、ＤＡＡ発行者２０２（例えば、図１のＤＡＡ発行者１０２）、ＤＡＡ署名者２０４（ホストコンピュータ２０６（例えば、図１のホストコンピュータ１０４）とＴＰＭ２０８（例えば、図１のＴＰＭ１０６）により合同で実現される）、及びＤＡＡ検証者２１０（例えば、図１のＤＡＡ検証者１０８）により実行される。
【００１６】
２１２において、ＤＡＡ発行者２０２は、コミットメントチャレンジをＤＡＡ署名者２０４に発行する。特に、ＤＡＡ発行者２０２は、チャレンジをＤＡＡ署名者２０４に発行する。ＤＡＡ署名者２０４は、ＤＡＡ発行者２０２からコミットメントチャレンジを受け取り、２１４において、ＴＰＭ２０８は、ＴＰＭ２０８内に格納されたＤＡＡ秘密から導出されたＤＡＡ秘密鍵を使用して当該コミットメントチャレンジに対する応答を生成し、ＤＡＡ署名者２０４がＤＡＡ秘密および秘密承認鍵の知識を有し、それ故に発行者２０２により信頼されるべきである有効なＴＰＭであることを証明する。次いで、２１６において、ＴＰＭ２０８は、当該コミットメントチャレンジに対する応答をＤＡＡ発行者２０２に発行する。ＤＡＡ発行者２０２は、当該応答を受け取り、２１８において、その応答を検査して当該応答が有効であるか否かを判定する。即ち、ＤＡＡ発行者２０２は、ＤＡＡ署名者２０４がＤＡＡ秘密および秘密承認鍵の知識を有し、それ故にＤＡＡ発行者２０２により信頼されるべきであるということを当該応答が証明するか否かを判定するために当該応答を検査する。ＤＡＡ署名者２０４がＤＡＡ秘密および秘密承認鍵の知識を有することの検証に応じて、２２０において、ＤＡＡ発行者２０２はＤＡＡ証明書をＤＡＡ署名者に発行し、２２２において、ホストコンピュータ２０６がＤＡＡ証明書を格納する。一方、２１８において、ＤＡＡ署名者から受け取った応答が無効であるとＤＡＡ発行者２０２が判定する場合、ＤＡＡ発行者２０２はプロセスを中止することができる。
【００１７】
ＤＡＡ署名者２０４がＤＡＡ発行者２０２からそのＤＡＡ証明書を受け取った後、ＤＡＡ署名者２０４は、当該ＤＡＡ証明書を用いて、その正当性をＤＡＡ検証者２１０に証明することができる。例えば、２２４において、ＤＡＡ検証者２１０は、ＤＡＡ署名者２０４にメッセージを発行することができ、ＤＡＡ署名者２０４の正当性をＤＡＡ検証者２１０に証明するために、ＴＰＭ２０８により格納されたＤＡＡ秘密署名鍵、及びホストコンピュータ２０６により格納されたＤＡＡ証明書に基づいて計算されたＤＡＡ署名でもって、ＤＡＡ署名者２０４が当該メッセージに署名することを要求する。ＤＡＡ検証者２１０により発行されたメッセージの受け取りに応じて、２２６において、ＤＡＡ署名者２０４のＴＰＭ２０８及びホストコンピュータ２０６は協働して、ＴＰＭ２０８内に格納されたＤＡＡ秘密鍵、及びホストコンピュータ２０６により格納されたＤＡＡ証明書を用いて計算されたＤＡＡ署名でもって当該メッセージに署名する。次いで、２２８において、ＤＡＡ署名者２０４は、署名されたメッセージをＤＡＡ検証者２１０に伝達する。
【００１８】
ＤＡＡ検証者２１０が、署名されたメッセージを受け取り、２３０において、当該署名されたメッセージを検査し、メッセージに署名するために使用されたＤＡＡ署名が有効であるか否かを判定する。即ち、ＤＡＡ検証者２１０は、署名されたメッセージを検査して、ＤＡＡ署名者２０４が有効なＤＡＡ証明書およびＤＡＡ秘密署名鍵を所持していることをＤＡＡ署名が証明するか否かを判定する。ＤＡＡ署名者２０４が有効なＤＡＡ証明書およびＤＡＡ秘密署名鍵を所持していることの検証に応じて、２３２において、ＤＡＡ検証者２１０がＤＡＡ署名者２０４を認証する。一方で、２３０において、メッセージに署名するために使用されたＤＡＡ署名が、ＤＡＡ署名者が有効なＤＡＡ証明書を所持していることを証明しないとＤＡＡ検証者２１０が判定する場合、ＤＡＡ検証者２１０はプロセスを中止することができる。
【００１９】
図３Ａ〜図３Ｄは、ＤＡＡ発行者（例えば、図１のＤＡＡ発行者１０２）、ＤＡＡ署名者（例えば、図１のホストコンピュータ１０４及びその関連するＴＰＭ１０６）、及びＤＡＡ検証者（例えば、図１のＤＡＡ検証者１０８）を含むＤＡＡ方式に関して、例示的な初期化プロセスの態様を示す流れ図である。特に、図３Ａ〜図３Ｄの流れ図は、ＤＡＡ方式の種々の異なるプロトコルの公開パラメータを設定する、及びＤＡＡ発行者に長期のパラメータを設定するプロセスの態様を示す。
【００２０】
図３Ａは、ＤＡＡ方式のコミットメントパラメータparＣを設定する態様を示す流れ図３００である。図３Ａの流れ図３００に示されたプロセスは、ＤＡＡ方式自体に含まれるＤＡＡ発行者（例えば、図２のＤＡＡ発行者１０２）により実行され得る。更に又は代案として、図３Ａの流れ図３００に示されたプロセスは、信頼できる組織（例えば、信頼できる標準組織）により実行され得る。３０２において、第１の楕円曲線点Ｐ１が無作為に選択され、３０４において、第２の楕円曲線点Ｐ２が無作為に選択される。次いで、３０６において、Ｐ１及びＰ２を用いて、
0005710075.tif 000002
のような十分に大きな素数位数ｑの３つのグループ
0005710075.tif 000003
を生成する。次いで、３０８において、第１のハッシュ関数
0005710075.tif 000004
が選択され、２１０において、第２のハッシュ関数
0005710075.tif 000005
が選択され、ここで、記号｛０、１｝＊は、任意長の一組の二進列を表す。その後、３１２において、コミットメントパラメータparＣが
0005710075.tif 000006
として設定される。最後に、３１４において、コミットメントパラメータparＣのサブセットが
0005710075.tif 000007
として設定される。次いで、parＴが、ＴＰＭにインストールされ得る（例えば、一組のコミットメントパラメータparＣの全部の代わりに）。
【００２１】
図３Ｂは、ＤＡＡ方式に含まれるＤＡＡ発行者にＤＡＡ発行者パラメータparＩを設定する態様を示す流れ図３２０である。図３Ｂの流れ図３２０に示されたプロセスは、ＤＡＡ方式自体に含まれるＤＡＡ発行者により実行され得る（例えば、図１のＤＡＡ発行者１０２）。３２２において、第１の整数
0005710075.tif 000008
が選択され（ここで、演算ｘ←Ｓは、無作為のサンプリングＳ及びその結果を変数ｘに割り当てる行為を表す）、３２４において、第２の整数
0005710075.tif 000009
が選択される。次いで、３２６において、発行者の秘密署名鍵iskが、isk＝（ｘ、ｙ）に設定される。発行者の公開署名鍵ipkを生成するために、３２８において、値
0005710075.tif 000010
が計算され（ここで、演算［ｘ］Ｐは、楕円曲線点Ｐに或る整数ｘを掛けるスカラー乗法を表す）、３３０において、値
0005710075.tif 000011
が計算される。次いで、３３２において、発行者の公開署名鍵ipkが、ipk＝（Ｘ、Ｙ）として設定される。３３４において、発行者の値ＫＩが
0005710075.tif 000012
に設定される。最後に、３３６において、発行者のパラメータparＩが、parＩ＝（ipk、ＫＩ）に設定される。
【００２２】
図３Ｃは、ＤＡＡ方式に含まれるＴＰＭ（例えば、図１のＴＰＭ１０６）にＴＰＭパラメータを設定する態様を示す流れ図３４０である。図３Ｃの流れ図３４０に示されたプロセスは、ＤＡＡ方式自体に含まれるＴＰＭにより実行され得る（例えば、図１のＴＰＭ１０６）。更にまたは代案として、図３Ｃの流れ図３４０に示されたプロセスは、信頼できる組織（例えば、信頼できる標準組織）により実行され得る。３４２において、公開／秘密承認鍵のペア
0005710075.tif 000013
がＴＰＭにより生成されて格納される。３４４において、秘密ＤＡＡの秘密値ＤＡＡseedが生成される（例えば、ＴＰＭの内部乱数発生器を用いて）。次いで、このＤＡＡseed値がＴＰＭにより使用されて、ＴＰＭがＤＡＡ発行者および／またはＤＡＡ検証者に対してその信憑性を証明する一部として使用することができる１つ又は複数のＤＡＡ秘密鍵を生成することができる。
【００２３】
図３Ｄは、ＤＡＡ方式に署名および検証パラメータparＳを設定する態様を示す流れ図３５０である。図３Ｄの流れ図３５０に示されたプロセスは、ＤＡＡ方式自体に含まれるＤＡＡ発行者により実行され得る（例えば、図１のＤＡＡ発行者１０２）。更に又は代案として、図３Ｄの流れ図３５０に示されたプロセスは、信頼できる組織（例えば、信頼できる標準組織）により実行され得る。３５２において、第３のハッシュ関数
0005710075.tif 000014
が選択され、３５４において、第４のハッシュ関数
0005710075.tif 000015
が選択される。次いで、３５６において、署名および検証パラメータparＳが、parＳ＝（Ｈ３、Ｈ４）に設定される。
【００２４】
図３Ａ、図３Ｂ、図３Ｃ及び図３Ｄの流れ図３００、３２０、３４０及び３５０に示されたプロセスがそれぞれ実行され、パラメータparＣ、parＩ、parＴ及びparＳが設定された後、これらパラメータは、ＤＡＡ方式に含まれるＤＡＡ発行者（例えば、図１のＤＡＡ発行者１０２）、ＤＡＡ署名者（例えば、図１のＤＡＡ署名者１０４）及びＤＡＡ検証者（例えば、図１のＤＡＡ検証者１０８）に利用可能にされ得る。
【００２５】
図４Ａ〜図４Ｅは、ＤＡＡ方式全体内の例示的なＤＡＡ結合プロセスの態様を示す流れ図４００を示す。図４Ａ〜図４Ｅの流れ図４００に示されたプロセスは、例えば図３Ａ、図３Ｂ、図３Ｃ及び図３Ｄの流れ図３００、３２０、３４０及び３５０にそれぞれ示されたプロセスの実行を介して、ＤＡＡ方式の公開パラメータが設定された後に、ＤＡＡ発行者４０２（例えば、図１のＤＡＡ発行者１０２）並びにＤＡＡ署名者のホストコンピュータ４０４及びＴＰＭ４０６（例えば、図１のホストコンピュータ１０４とＴＰＭ１０６）により実行される。
【００２６】
４００２において、メッセージ認証コード（ＭＡＣ）アルゴリズムの鍵空間
0005710075.tif 000016
から、秘密鍵ｋｍが無作為に選択され、４００４において、ＴＰＭ４０６の公開鍵
0005710075.tif 000017
を用いて、ｋｍを暗号化して（例えば、ＩＮＤ−ＣＣＡ（indistinguishability of chosen cipher text attack）暗号化方式を用いて）ｃＩを生成する。更に、４００６において、ノンスｎＩが長さｔの一組の二進列から無作為に選択される。次いで４００８において、ｃＩとｎＩに基づいたコミットメントチャレンジが生成され、４０１０において、コミットメントチャレンジがホストコンピュータ４０４に伝達され、次いで４０１２において、コミットメントチャレンジがＴＰＭ４０６に伝達される。
【００２７】
ＴＰＭ４０６はコミットメントチャレンジを受け取り、より詳細に後述されるように、ＴＰＭ４０６に格納されたＤＡＡseed値から導出されたＤＡＡ秘密鍵に基づいており、且つＴＰＭ４０６及びその関連するホストコンピュータ４０４がＤＡＡ発行者４０２により信頼されるべきであることをＤＡＡ発行者４０２に示す署名を、ＤＡＡ発行者４０２のコミットメントチャレンジに対して戻す。特に、４０１４において、ＴＰＭ４０６は、（ＤＡＡseed｜｜ＫＩ｜｜cnt）（即ち、ＤＡＡseed、ＫＩ、及びcntの連結（例えば、生成されるべき多数の鍵を示す値））に擬似ランダム関数を適用することにより秘密の楕円曲線ＤＡＡ（ＥＣＤＡＡ）鍵skＴを計算する。更に、４０１６において、ＴＰＭ４０６は、その秘密鍵
0005710075.tif 000018
を用いてコミットメントチャレンジからｃＩを暗号解読してｋｍを生成する。次いで、４０１８において、ＴＰＭ４０６は、ｋｍ＝⊥であるか否かを検査する。ｋｍ＝⊥である場合、プロセスは中止される。代わりに、ｋｍ≠⊥である場合、プロセスは４０２０へ継続し、ここでＴＰＭ４０６は、skＴに楕円曲線点Ｐ１を掛けることにより、ＴＰＭ４０６及びその関連するホストコンピュータ４０４が信頼されるべきであることをＤＡＡ発行者４０２に示す署名Ｆを計算する。
【００２８】
４０２２において、ＴＰＭ４０６が、
0005710075.tif 000019
から無作為に値μを選択し、４０２４において、ＴＰＭは、μに楕円曲線点Ｐ１を掛けることにより、Ｕを計算する。ここで図４Ｂを参照すると、ＴＰＭ４０６は、４０２６において、ＤＡＡ発行者４０２の公開鍵Ｘ及びＹをコミットメントチャレンジのｎＩと連結させることにより、引き続きstr１を生成する。更に、４０２８において、ＴＰＭ４０６は、（Ｐ１｜｜Ｆ｜｜｜Ｕ｜｜str１）にハッシュ関数Ｈ２を適用することによりνを計算する。その後、４０３０において、ＴＰＭ４０６は、ω←μ＋ν・skＴ（modｑ）を計算し、４０３２において、ＴＰＭ４０６は、秘密の署名鍵ｋｍを用いてメッセージ（Ｐ１｜｜Ｆ｜｜｜ν｜｜ω）を暗号化するために、ＭＡＣアルゴリズムを適用することによりγを生成する。次いで、４０３４において、ＴＰＭ４０６は、Ｆ、ν、ω、γ、及びｎＩを一緒にパッケージングすることにより、コミットメントを生成し、４０３６において、ＴＰＭ４０６はコミットメントをホストコンピュータ４０４に伝達する。ホストコンピュータ４０４はＴＰＭ４０６から当該コミットメントを受け取り、４０３８において、当該コミットメントをＤＡＡ発行者４０２に伝達する。
【００２９】
ＤＡＡ発行者４０２は当該コミットメントを受け取り、より詳細に後述されるように、受け取ったコミットメントに基づいて、ＴＰＭ４０６及びその関連するホストコンピュータ４０４が信頼できるコンピュータプラットフォームのグループに属することを検証する。特に、４０４０において、ＤＡＡ発行者４０２は、受け取ったコミットメントからのｎＩがコミットメントチャレンジからのｎＩと同じであるか否かを検査する。
0005710075.tif 000020
が真である場合、ＤＡＡ発行者４０２はプロセスを中止する。一方、
0005710075.tif 000021
が真でない場合、ＤＡＡ発行者４０２は４０４２へ進み、ここでＤＡＡ発行者４０２は、秘密署名鍵ｋｍを用いて、メッセージ（Ｐ１｜｜Ｆ｜｜｜ν｜｜ω）を暗号化するために、ＭＡＣアルゴリズムを適用することによりγ’を生成する。その後、４０４４において、ＤＡＡ発行者４０２は、γ’がコミットメント内に含まれる値γと同じであるか否かを検査する。γ≠γ’が真である場合、ＤＡＡ発行者４０２はプロセスを中止する。γ≠γ’が真でない場合、ＤＡＡ発行者４０２は４０４６へ進み、ここでＤＡＡ発行者４０２は、Ｕ’←［ω］Ｐ１−［ν］Ｆを計算する。
【００３０】
ここで、図４Ｃを参照すると、４０４８において、ＤＡＡ発行者４０２は、その公開鍵ＸとＹをｎＩと連結させることにより、str１のそれ自体のバージョンを引き続き生成する。次いで、４０５０において、ＤＡＡ発行者４０２は、ハッシュ関数Ｈ２を（Ｐ１｜｜Ｆ｜｜｜Ｕ’｜｜str１）に適用することによりν’を計算する。その後、４０５２において、ＤＡＡ発行者４０２は、ν’の値が受け取ったコミットメントチャレンジからのνの値と同じであるか否かを検査することによって、ＴＰＭ４０６及びその関連するホストコンピュータ４０４がＤＡＡ発行者４０２により信頼されるべきであるか否かを判定する。ν≠ν’が真である場合、ＤＡＡ発行者４０２は、ＴＰＭ４０６が有効なＤＡＡ秘密鍵を保持していない、それ故にＴＰＭ４０６及びその関連するホストコンピュータ４０４が信頼できるコンピュータプラットフォームのグループのメンバーでないと判断する。従って、ＤＡＡ発行者４０２はプロセスを中止する。一方で、ν≠ν’が真でない場合、ＤＡＡ発行者４０２は、ＴＰＭ４０６が有効なＤＡＡ秘密鍵を保持しており、それ故にＴＰＭ４０６及びその関連するホストコンピュータ４０４がＤＡＡ発行者４０２により信頼されるべきであると判断する。従って、ＤＡＡ発行者４０２は４０５４に進み、ここでＤＡＡ発行者４０２は、ＴＰＭ４０６により保持されたＤＡＡ秘密鍵が危険にさらされたことを知られていないことを確認するために検査する。特に、危険にさらされたことを知られているＤＡＡ秘密鍵のRogueListに含まれるＤＡＡ秘密鍵sk’Ｔ毎に、ＤＡＡ発行者４０２は、受け取ったコミットメントからのＦの値が［sk’Ｔ］Ｐ１に一致するか否かを検査する。危険にさらされたことを知られているＤＡＡ秘密鍵のRogueListに含まれる任意のＤＡＡ秘密鍵sk’Ｔについて、Ｆ＝［sk’Ｔ］Ｐ１が真である場合、ＤＡＡ発行者４０２は、ＴＰＭ４０６により保持されたＤＡＡ秘密鍵が危険にさらされたと判定し、それ故にプロセスを中止する。一方で、RogueListに含まれるＤＡＡ秘密鍵sk’Ｔの全てについて、Ｆ＝［sk’Ｔ］Ｐ１が真でない場合、ＤＡＡ発行者４０２は、ＴＰＭ４０６により保持されたＤＡＡ秘密鍵が危険にさらされたことを知られていないと判定し、それ故にＤＡＡ発行者４０２はプロセスを続行する。
【００３１】
ＴＰＭ４０６により保持されたＤＡＡ秘密鍵が有効なＤＡＡ秘密鍵であり、且つＴＰＭ４０６により保持されたＤＡＡ秘密鍵が危険にさらされたことを知られていないことを検証すると、ＤＡＡ発行者４０２は、ＴＰＭ４０６に関連したホストコンピュータ４０４のＤＡＡ証明書の生成に取りかかる。特に、４０５６において、ＤＡＡ発行者４０２は、
0005710075.tif 000022
から無作為に値ａを選択する。その後、ＤＡＡ発行者４０２は、４０５８においてＡ＝［ａ］Ｐ１、４０６０においてＢ＝［ａｙ］Ｐ１、４０６２においてＣ＝［ａｘ］Ｐ１＋［ａｘｙ］Ｆを計算する。次いで、ＤＡＡ発行者４０２は、４０６４において、Ａ、Ｂ、及びＣを一緒にパッケージングすることによりＴＰＭ４０６に関連したホストコンピュータ４０４のＤＡＡ証明書を生成し、４０６６において、ＤＡＡ発行者４０２は、結果として生じるＤＡＡ証明書をホストコンピュータ４０４に伝達する。
【００３２】
流れ図４００に示されたＤＡＡ結合プロセスを完了する一部として、ホストコンピュータ４０４は、ＴＰＭ４０６と協働して、ＤＡＡ発行者４０２から受け取ったＤＡＡ証明書が有効であることを検証し、ホストコンピュータ４０４がＤＡＡ署名に寄与するために使用することができるランダム化公開鍵を生成する。より詳細に後述されるように、一具現化形態において、ホストコンピュータ４０４は、ＤＡＡ発行者４０２から受け取ったＤＡＡ証明書が有効であることを検証し且つホストコンピュータ４０４のランダム化公開鍵を生成するために、ＴＰＭ４０６が署名プロトコルを実行することを要求する。この署名プロトコルは、ＴＰＭ４０６及びその関連したホストコンピュータ４０４が本物であることをＤＡＡ検証者に対して認証するために使用されるべきＤＡＡ署名に寄与するためにＴＰＭ４０６が実行する署名プロトコルと同じ（又は実質的に類似）とすることができる。
【００３３】
より具体的には、４０６８において、ホストコンピュータ４０４は、ＴＰＭ４０６により署名されるべきメッセージｍを生成する。例えば、ホストコンピュータ４０４は、任意のメッセージｍを生成することができるか、又はホストコンピュータ４０４は、ＴＰＭ４０６により署名されるべきメッセージｍを無作為に選択することができる。更に、ここで図４Ｄを参照すると、４０６９において、ホストコンピュータ４０４は、任意の又は無作為に選択されたデータ列とすることができるhostDigestの値を選択し、４０７０において、ホストコンピュータ４０４は、ＤＡＡ発行者４０２から受け取ったＤＡＡ証明書からＢの値に等しいベース名ポイントＪを設定する。更に、４０７２において、ホストコンピュータ４０４は、Ｐ１に等しいメンバーシップポイントＳを設定する。その後、４０７４において、ホストコンピュータ４０４は、Ｊ、Ｓ、メッセージｍ、及びhostDigestをＴＰＭ４０６に伝達し、当該メッセージに署名するためにＤＡＡ署名プロトコルを実行するようにＴＰＭ４０６に要求する。
【００３４】
ＴＰＭ４０６は、Ｊ、Ｓ、メッセージｍ、及びhostDigestを受け取り、メッセージｍに署名するためにＤＡＡ署名プロトコルの実行に取りかかる。特に、４０７６において、ＴＰＭ４０６は、skＴにＪを掛けることにより、署名Ｋを計算する。その後、ＴＰＭ４０６は、４０７８において、
0005710075.tif 000023
から無作為に値γを選択し、４０８０においてγにＪを掛けることにより値Ｒ１を計算し、４０８２において、γにＳを掛けることにより値Ｒ２を計算する。次いで、ＴＰＭ４０６は、４０８４においてＪ、Ｋ、Ｒ１及びＲ２を連結させることによりstr２を生成し、４０８６において（hostDigest｜｜str２｜｜ｍ）にハッシュ関数Ｈ３を適用することによりｈを計算し、４０８８において、ｓ＝γ＋ｈ・skＴ（modｑ）を計算する。ここで、図４Ｅを参照すると、ＴＰＭ４０６は、４０９０においてＫ、ｈ及びｓを一緒にパッケージングすることにより署名σＴを生成し、４０９２において、署名σＴをホストコンピュータ４０４に伝達する。
【００３５】
ホストコンピュータ４０４が署名σＴを受け取り、署名σＴを用いて、ＤＡＡ発行者４０２から受け取ったＤＡＡ証明書が有効であるか否かを判定することに取りかかる。特に、４０９４において、ホストコンピュータ４０４は、
0005710075.tif 000024
であるか否かを検査する。
0005710075.tif 000025
である場合、ホストコンピュータ４０４は、ＤＡＡ発行者４０２から受け取ったＤＡＡ証明書が無効であることを判定し、それ故にプロセスを中止する。一方で、
0005710075.tif 000026
である場合、ホストコンピュータ４０４は４０９６に進み、ここで、ホストコンピュータ４０４は、
0005710075.tif 000027
であるか否かを検査する。
0005710075.tif 000028
である場合、ホストコンピュータ４０４は、ＤＡＡ発行者４０２から受け取ったＤＡＡ証明書が無効であると判定し、それ故にプロセスを中止する。一方で、
0005710075.tif 000029
である場合、ホストコンピュータ４０４は４０９８に進み、ここでホストコンピュータ４０４は、Ｒ’１＝［ｓ］Ｊ−［ｈ］Ｋを計算する。
【００３６】
更に、４１００において、ホストコンピュータ４０４はＲ’２＝［ｓ］Ｓ−［ｈ］Ｋを計算し、４１０２において、ホストコンピュータ４０４は、ｃ’＝hostDigestを設定する。次いで、４１０４において、ホストコンピュータ４０４は、Ｊ、Ｋ、Ｒ’１及びＲ’２を連結させることによりstr’を生成し、４１０６において、（ｃ’｜｜str’｜｜ｍ）にハッシュ関数Ｈ３を適用することによりｈ’を計算する。その後、４１０８において、ホストコンピュータ４０４は、ｈ（署名σＴから）がｈ’と一致するか否かを検査する。ｈ≠ｈ’の場合、ホストコンピュータ４０４は、ＤＡＡ発行者４０２から受け取ったＤＡＡ証明書が無効であると判定し、プロセスを中止する。一方で、ｈ＝ｈ’の場合、ホストコンピュータ４０４は、ＤＡＡ発行者４０２から受け取ったＤＡＡ証明書が有効であると判定し、それ故に４１１０に進み、ここでホストコンピュータ４０４は、ＴＰＭ４０６により戻された署名σＴで受け取られたＫの値に等しいランダム化公開鍵の値Ｄを設定する。その後、４１１２において、ホストコンピュータ４０４は、ＴＰＭ４０６により保持されたＤＡＡ秘密署名鍵skＴと関連するＤＡＡ証明書として（Ａ、Ｂ、Ｃ、Ｄ）を格納する。図４Ａ〜図４Ｅの流れ図４００に示されたプロセスを完了した後、ホストコンピュータ４０４及びその関連するＴＰＭ４０６は、ＤＡＡ署名プロセスの一部としてのＤＡＡ検証者に対して、ホストコンピュータ４０４及びその関連するＴＰＭ４０６が本物であることを認証するために、ＴＰＭ４０６により保持されたＤＡＡ秘密署名鍵skＴ、及びホストコンピュータ４０４により格納されたＤＡＡ証明書（Ａ、Ｂ、Ｃ、Ｄ）を用いてＤＡＡ署名を計算することができる。
【００３７】
図５Ａ〜図５Ｃは、ＤＡＡ方式の例示的なＤＡＡ署名プロセスの態様を示す流れ図５００を示す。図５Ａ〜図５Ｃの流れ図５００に示されたプロセスは、ＤＡＡ方式の公開パラメータが、例えば図３Ａ、図３Ｂ、図３Ｃ及び図３Ｄの流れ図３００、３２０、３４０及び３５０にそれぞれ示されたプロセスの実行を介して設定された後、且つホストコンピュータ５０２及びその関連するＴＰＭ５０４が、例えば図４Ａ〜図４Ｅの流れ図４００に示されたプロセスの実行を介してＤＡＡ方式のＤＡＡ結合プロセスを完了した後、ＤＡＡ署名者のホストコンピュータ５０２及びＴＰＭ５０４（例えば、図１のホストコンピュータ１０４及びＴＰＭ１０６）及びＤＡＡ検証者５０６（例えば、図１のＤＡＡ検証者１０８）により実行される。
【００３８】
５００２において、ホストコンピュータ５０２は、bsn＝⊥であるか否かを確かめるためにベース名の値（例えば、任意の列または特殊記号）を検査する。ホストコンピュータ５０２がbsn＝⊥であると判定する場合、ホストコンピュータ５０２は５００４に進み、ここでホストコンピュータ５０２は、
0005710075.tif 000030
から無作為にベース名ポイントＪを選択する。一方で、ホストコンピュータ５０２がbsn≠⊥であると判定する場合、ホストコンピュータ５０２は代わりに５００６に進み、ここでホストコンピュータ５０２は、bsnにハッシュ関数Ｈ１を適用することによりベース名ポイントＪの値を計算する。その後、ホストコンピュータ５０２は、５００８において、
0005710075.tif 000031
から無作為に値ｌを選択し、５０１０においてｌに対して選択された値にＤＡＡ証明書からのＡの値を掛けることにより値Ｒを計算し、５０１２においてｌに対して選択された値にＤＡＡ証明書からのＢの値を掛けることによりメンバーシップポイントＳを計算し、５０１４においてｌに対して選択された値にＤＡＡ証明書からのＣの値を掛けることにより値Ｔを計算し、及び５０１６においてｌに対して選択された値にＤＡＡ証明書からのＤの値を掛けることにより値Ｗを計算する。更に、５０１８において、ホストコンピュータ５０２は、（Ｒ｜｜Ｓ｜｜Ｔ｜｜Ｗ）にハッシュ関数Ｈ４を実行することによりｃを計算する。次いで、５０２０において、ホストコンピュータ５０２は、ｃ、Ｊ、Ｓ、及びメッセージmsgをＴＰＭ５０４に伝達して、メッセージmsgに署名するためにＤＡＡ署名プロトコルを実行することをＴＰＭ５０４に要求する。幾つかの具現化形態において、メッセージmsgは、ＤＡＡ検証者５０６によりホストコンピュータ５０２に提供され得る。
【００３９】
ＴＰＭ５０４は、ｃ、Ｊ、Ｓ、及びmsgを受け取り、メッセージmsgに署名するためにＤＡＡ署名プロトコルの実行に取りかかる。特に、５０２２において、ＴＰＭ５０４はskＴにＪを掛けることにより、署名Ｋを計算する。その後、ＴＰＭ５０４は、５０２４において、
0005710075.tif 000032
から無作為に値γを選択し、５０２６において、γにＪを掛けることにより値Ｒ１を計算し、５０２８においてγにＳを掛けることにより値Ｒ２を計算する。次いで、５０３０において、ＴＰＭ５０４は、Ｊ、Ｋ、Ｒ１及びＲ２を連結させることにより、strを生成する。
【００４０】
ここで、図５Ｂを参照すると、ＴＰＭ５０４は、５０３２において、（ｃ｜｜str｜｜msg）にハッシュ関数Ｈ３を適用することによりｈを計算し、５０３４において、ｓ＝γ＋ｈ・skＴ（modｑ）を計算し、５０３６において、Ｋ、ｈ及びｓを一緒にパッケージングすることにより署名σＴを生成する。その後、５０３８において、ＴＰＭ５０４は、署名σＴをホストコンピュータ５０２に伝達する。
【００４１】
ホストコンピュータ５０２は、署名σＴを受け取り、５０４０において、それ自体の寄与をＤＡＡ署名に加え、Ｒ、Ｓ、Ｔ、Ｗ、Ｊ、Ｋ、ｈ及びｓを一緒にパッケージングすることによりＤＡＡ署名σを生成する。次いで、５０４２において、ホストコンピュータ５０２は、ＤＡＡ署名σをＤＡＡ検証者５０６に伝達する。
【００４２】
ＤＡＡ検証者５０６は、ＤＡＡ署名σを受け取り、ＤＡＡ署名σの妥当性を検証してホストコンピュータ５０２及びその関連するＴＰＭ５０４が本物であることを認証する。特に、５０４４において、ＤＡＡ検証者５０６は、ＴＰＭ５０４により保持されたＤＡＡ秘密鍵が危険にさらされたことを知られていないことを確認するために検査する。特に、危険にさらされたことを知られているＤＡＡ秘密鍵のRogueListに含まれるＤＡＡ秘密鍵sk’Ｔ毎に、ＤＡＡ検証者５０６は、ＤＡＡ署名σからのＫの値が［sk’Ｔ］Ｊに一致するか否かを検査する。危険にさらされたことを知られているＤＡＡ秘密鍵のRogueListに含まれる任意のＤＡＡ秘密鍵sk’Ｔについて、Ｋ＝［sk’Ｔ］Ｊが真である場合、ＤＡＡ検証者５０６は、ＴＰＭ５０４により保持されたＤＡＡ秘密鍵が危険にさらされたと判定し、それ故にホストコンピュータ５０２及びその関連するＴＰＭ５０４が本物であることを認証することを拒否する。一方で、RogueListに含まれるＤＡＡ秘密鍵sk’Ｔの全てについて、Ｋ＝［sk’Ｔ］Ｊが真でない場合、ＤＡＡ検証者５０６は、ＴＰＭ５０４により保持されたＤＡＡ秘密鍵が危険にさらされたことを知られていないと判定し、それ故にＤＡＡ検証者５０６はプロセスを続行する。
【００４３】
５０４６において、ＤＡＡ検証者５０６は、bsn＝⊥であるか否かを検査する。ＤＡＡ検証者５０６がbsn＝⊥であると判定する場合、ＤＡＡ検証者５０６は、ホストコンピュータ５０２及びその関連するＴＰＭ５０４が本物であることを認証することを拒否する。一方で、ホストコンピュータ５０２がbsn≠⊥であると判定する場合、ＤＡＡ検証者５０６は５０４８に進み、ここでＤＡＡ検証者は、Ｊ＝Ｈ１（bsn）であるか否かを検査する。ＤＡＡ検証者５０６がＪ≠Ｈ１（bsn）であると判定する場合、ＤＡＡ検証者５０６は、ホストコンピュータ５０２及びその関連するＴＰＭ５０４が本物であることを認証することを拒否する。一方で、ＤＡＡ検証者５０６がＪ＝Ｈ１（bsn）であると判定する場合、ＤＡＡ検証者５０６は５０５０に進み、ここでＤＡＡ検証者５０６は、
0005710075.tif 000033
であるか否かを検査する。
0005710075.tif 000034
である場合、ＤＡＡ検証者５０６は、ＤＡＡ署名σが無効であると判定し、それ故にホストコンピュータ５０２及びその関連するＴＰＭ５０４が本物であることを認証することを拒否する。一方で、
0005710075.tif 000035
である場合、ＤＡＡ検証者５０６はプロセスを続行する。
【００４４】
ここで、図５Ｃを参照すると、５０５２において、ＤＡＡ検証者５０６は、
0005710075.tif 000036
であるか否かを検査する。
0005710075.tif 000037
である場合、ＤＡＡ検証者５０６は、ＤＡＡ署名σが無効であると判定し、それ故にホストコンピュータ５０２及びその関連するＴＰＭ５０４が本物であることを認証することを拒否する。一方で、
0005710075.tif 000038
である場合、ＤＡＡ検証者５０６は５０５４に進み、ここでＤＡＡ検証者５０６は、Ｒ’１＝［ｓ］Ｊ−［ｈ］Ｋを計算する。更に、５０５６において、ＤＡＡ検証者５０６は、Ｒ’２＝［ｓ］Ｓ−［ｈ］Ｗを計算し、５０５８において、ＤＡＡ検証者５０６は、（Ｒ｜｜Ｓ｜｜Ｔ｜｜Ｗ）にハッシュ関数Ｈ４を適用することによりｃ’を計算する。次いで、ＤＡＡ検証者５０６は、５０６０においてＪ、Ｋ、Ｒ’１及びＲ’２を連結させることによりstr’を生成し、５０６２において、（ｃ’｜｜str’｜｜msg）にハッシュ関数Ｈ３を適用することによりｈ’を計算する。最後に、５０６４において、ＤＡＡ検証者５０６は、（ＤＡＡ署名σからの）ｈがｈ’と一致するか否かを検査する。ｈ≠ｈ’の場合、ＤＡＡ検証者５０６は、ＤＡＡ署名σが無効であると判定し、ホストコンピュータ５０２及びＴＰＭ５０４が本物であることを認証することを拒否する。一方で、ｈ＝ｈ’の場合、ＤＡＡ検証者５０６は、ＤＡＡ署名σが有効であると判定し、ＤＡＡ検証者５０６は、ホストコンピュータ５０２及びその関連するＴＰＭ５０４が本物であると判定する。
【００４５】
図６は、例示的なＤＡＡ結合プロセスの態様を示す流れ図６００である。特に、図６の流れ図６００は、ＤＡＡ発行者（例えば、図１のＤＡＡ発行者１０２）から受け取ったＤＡＡ証明書が有効であることを検証し且つホストコンピュータ（例えば、図１のホストコンピュータ１０４）がホストコンピュータ及びその関連するＴＰＭ（例えば、図１のＴＰＭ１０６）により計算されるＤＡＡ署名に寄与することを可能にするランダム化公開鍵を取得することに関連して、ＤＡＡ結合プロセス中にホストコンピュータにより実行され得る動作（アクション）を示す。
【００４６】
図６に示されたように、６０２において、ホストコンピュータは、ＤＡＡ発行者から受け取ったＤＡＡ証明書からベース名ポイントを導出し（例えば、図４Ｄの４０７０に関連して上述されたように）、次いで６０４において、ホストコンピュータは、署名されるべきメッセージ及びベース名ポイントを、ホストコンピュータに関連するＴＰＭに提供する（例えば、図４Ｄの４０７４に関連して上述されたように）。その関連するＴＰＭに署名されるべきメッセージ及びベース名ポイントを提供することに応じて、ホストコンピュータは、６０６において、その関連するＴＰＭからの公開鍵値を含むメッセージの署名されたバージョンを受け取る（例えば、図４Ｅの４０９２に関連して上述されたように）。次いで、６０８において、ホストコンピュータは、署名されたメッセージが有効であるか否かを判定する（例えば、図４Ｅの４０９４〜４１０８に関連して上述されたように）。署名されたメッセージが有効である場合、６１０において、ホストコンピュータは、ＤＡＡ発行者から受け取ったＤＡＡが有効であると判定する。一方で、署名されたメッセージが無効である場合、６１２において、ホストコンピュータは、ＤＡＡ証明書が無効であると判定する。
【００４７】
上述されたように、１つの一般的な態様において、ＤＡＡ証明書は、ＤＡＡ発行者コンピュータシステムから受け取られる。次いで、ベース名ポイントがＤＡＡ証明書から導出される。次いで、メッセージ及びベース名ポイントが、信頼できるプラットフォームモジュールに提供される。また、信頼できるプラットフォームモジュールが署名ルーチンを実行して署名ルーチンへの入力としてベース名ポイントを用いてメッセージに署名することを要求する署名コマンドも、信頼できるプラットフォームモジュールに発行される。その後、信頼できるプラットフォームモジュールにより署名され且つベース名ポイントに関連した公開鍵値を含むメッセージのバージョンが、信頼できるプラットフォームモジュールから受け取られ、信頼できるプラットフォームモジュールにより署名されたメッセージのバージョン及びベース名ポイントに基づいて、ＤＡＡ証明書が有効であることが判定される。公開鍵値は、コンピュータ可読メモリ（例えば、信頼できるプラットフォームモジュールの外部にある）に格納される。
【００４８】
具現化形態は、１つ又は複数の以下の特徴を含むことができる。例えば、格納された公開鍵値は、ＤＡＡ署名検証手続きにおいてホストコンピュータデバイスからＤＡＡ署名検証者コンピュータシステムに伝達されるべきメッセージに署名するために使用されるべき公開鍵値として指定され得る（例えば、ＤＡＡ証明書が有効であると判定された結果として）。ホストコンピュータデバイスが本物であることを認証するために、ＤＡＡ署名検証手続きの一部として署名されるべきチャレンジメッセージが、ＤＡＡ署名検証コンピュータシステムから受け取られることができ、信頼できるプラットフォームモジュールが署名ルーチンを実行して当該チャレンジメッセージに署名することを要求する署名コマンドが、信頼できるプラットフォームモジュールに発行され得る。更に、信頼できるプラットフォームモジュールにより署名されたチャレンジメッセージのバージョンが、信頼できるプラットフォームモジュールから受け取られることができ、格納された公開鍵値が、信頼できるプラットフォームモジュールにより署名されたチャレンジメッセージのバージョンへ組み込まれることができ、信頼できるプラットフォームモジュールにより署名され且つ格納された公開鍵値を組み込むチャレンジメッセージのバージョンが、ＤＡＡ署名検証コンピュータシステムへ伝達され得る。更に、幾つかの具現化形態において、ＤＡＡ証明書からベース名ポイントを導出することは、ＤＡＡ証明書に指定された値に等しいベース名ポイントを設定することを含むことができる。
【００４９】
別の一般的な態様において、セキュリティデバイス（例えば、信頼できるプラットフォームモジュール）は、秘密ＤＡＡ署名鍵を格納し、秘密ＤＡＡ署名鍵およびベース名ポイントを用いてメッセージに署名するように構成されている。更に、ホストコンピュータデバイスは、ＤＡＡ証明書を格納し、格納されたＤＡＡ証明書からベース名ポイントを導出し、署名されるべきメッセージ及び当該ベース名ポイントをセキュリティデバイスに提供し、セキュリティデバイスから、セキュリティデバイスにより署名され且つベース名ポイントに関連する公開鍵値を含むメッセージのバージョンを受け取り、セキュリティデバイスにより署名されたメッセージのバージョンに基づいて、ＤＡＡ証明書が有効であることを判定するように構成されている。
【００５０】
具現化形態は、１つ又は複数の以下の特徴を含むことができる。例えば、ホストコンピュータデバイスは、ハウジングを含むことができ、信頼できるプラットフォームモジュールは、ホストコンピュータデバイスのハウジング内に収容され得る。更に、ホストコンピュータデバイスは、マザーボードを含むことができ、信頼できるプラットフォームモジュールは、ホストコンピュータデバイスのマザーボードに一体的に結合され得る。更に又は代案として、信頼できるプラットフォームモジュールは、秘密ＤＡＡ署名鍵のセキュリティを保護する物理的機構を含むことができる。
【００５１】
更に別の一般的な態様において、ＤＡＡ証明書は、直接匿名認証（ＤＡＡ）発行者コンピュータシステムから受け取られ、ベース名ポイントはＤＡＡ証明書から導出され、メッセージ、ベース名ポイント、及び楕円曲線グループメンバーシップポイントが信頼できるプラットフォームモジュールに提供される。また、信頼できるプラットフォームモジュールが署名ルーチンを実行して署名ルーチンへの入力としてベース名ポイント及び楕円曲線グループメンバーシップポイントを用いてメッセージに署名することを要求する署名コマンドも、信頼できるプラットフォームモジュールに発行される。その後、信頼できるプラットフォームモジュールにより署名され且つベース名ポイントに関連した公開鍵値を含むメッセージのバージョンが、信頼できるプラットフォームモジュールから受け取られる。次いで、信頼できるプラットフォームモジュールにより署名されたメッセージのバージョン及びベース名ポイントに基づいて、ＤＡＡ証明書が有効であることが判定され、当該公開鍵値は、コンピュータ可読メモリに格納される。
【００５２】
幾つかの具現化形態において、信頼できるプラットフォームモジュールにより署名されたメッセージのバージョン及びベース名ポイントに基づいて、ＤＡＡ証明書が有効であることを判定することは、公開鍵値およびベース名ポイントの別個の対数が等しいことを判定することを含むことができる。
【００５３】
多数の方法、技術、システム、及び装置が説明された。説明された方法、技術、システム、及び装置は、例えばコンピュータ可読記憶媒体に格納された命令を実行することにより、デジタル電子回路またはコンピュータハードウェアで具現化され得る。
【００５４】
これら技術を具現化する装置は、適切な入出力デバイス、コンピュータプロセッサ、及び／又はプロセッサにより実行するための命令を格納する有形のコンピュータ可読記憶媒体を含むことができる。
【００５５】
本明細書で開示された技術を具現化するプロセスは、入力データに演算することにより所望の機能を実行して適切な出力を生成するために、有形のコンピュータ可読記憶媒体に格納された命令を実行するプロセッサにより実施され得る。適切なプロセッサには、一例として、汎用マイクロプロセッサ及び専用マイクロプロセッサの双方が含まれる。実行可能な命令を格納するための適切なコンピュータ可読記憶デバイスには、全形態の不揮発性メモリが含まれ、一例として消去可能ＰＲＯＭ（ＥＰＲＯＭ）、電気的消去可能ＲＯＭ（ＥＥＰＲＯＭ）及びフラッシュメモリデバイスのような半導体メモリデバイス；固定ディスク、フロッピー（登録商標）ディスク、リムーバブルディスクのような磁気ディスク；テープを含む他の磁気媒体；及びコンパクトディスク（ＣＤ）又はデジタルビデオディスク（ＤＶＤ）のような光媒体が含まれる。前述したものの何れかは、特別に設計された特定用途向け集積回路（ＡＳＩＣ）により補われるか、又は当該ＡＳＩＣに組み込まれ得る。
【００５６】
幾つかの具現化形態において、開示された技術の動作は特定の順序および／または特定の組み合わせで実行されるものとして本明細書で説明され得るが、個々の動作は、異なる順序で、本明細書で説明された他の動作と組み合わされて、及び／又は除外されて再構成されることができ、依然として所望の結果が達成され得る。同様に、開示されたシステムのコンポーネントは、異なる方式で組み合わせされ得る、及び／又は他のコンポーネントに置き換えられ得る又は他のコンポーネントにより補われることができ、依然として所望の結果が達成され得る。
【図１】
0005710075.tif 000039
【図２】
0005710075.tif 000040
【図３Ａ】
0005710075.tif 000041
【図３Ｂ】
0005710075.tif 000042
【図３Ｃ】
0005710075.tif 000043
【図３Ｄ】
0005710075.tif 000044
【図４Ａ】
0005710075.tif 000045
【図４Ｂ】
0005710075.tif 000046
【図４Ｃ】
0005710075.tif 000047
【図４Ｄ】
0005710075.tif 000048
【図４Ｅ】
0005710075.tif 000049
【図５Ａ】
0005710075.tif 000050
【図５Ｂ】
0005710075.tif 000051
【図５Ｃ】
0005710075.tif 000052
【図６】
0005710075.tif 000053