特許第5710075号(P5710075)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ヒューレット−パッカード デベロップメント カンパニー エル.ピー.の特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5710075
(24)【登録日】2015年3月13日
(45)【発行日】2015年4月30日
(54)【発明の名称】証明書の検証
(51)【国際特許分類】
   H04L 9/32 20060101AFI20150409BHJP
   G09C 1/00 20060101ALI20150409BHJP
【FI】
   H04L9/00 675B
   G09C1/00 640E
   G09C1/00 660G
【請求項の数】15
【全頁数】23
(21)【出願番号】特願2014-522804(P2014-522804)
(86)(22)【出願日】2011年7月29日
(65)【公表番号】特表2014-524218(P2014-524218A)
(43)【公表日】2014年9月18日
(86)【国際出願番号】US2011045996
(87)【国際公開番号】WO2013019193
(87)【国際公開日】20130207
【審査請求日】2014年1月27日
(73)【特許権者】
【識別番号】511076424
【氏名又は名称】ヒューレット−パッカード デベロップメント カンパニー エル.ピー.
【氏名又は名称原語表記】Hewlett‐Packard Development Company, L.P.
(74)【代理人】
【識別番号】100087642
【弁理士】
【氏名又は名称】古谷 聡
(74)【代理人】
【識別番号】100121061
【弁理士】
【氏名又は名称】西山 清春
(72)【発明者】
【氏名】チェン,リクン
(72)【発明者】
【氏名】プラウドラー,グレーム,ジョン
【審査官】 青木 重徳
(56)【参考文献】
【文献】 特表2010−503252(JP,A)
【文献】 特表2007−508765(JP,A)
【文献】 米国特許出願公開第2010/0161998(US,A1)
【文献】 米国特許出願公開第2008/0276084(US,A1)
【文献】 Liqun Chen, Dan Page, and Nigel P. Smart,“On the Design and Implementation of an Efficient DAA Scheme”,Cryptology ePrint Archive: Report 2009/598,[online],2009年12月 9日,Version: 20091209:215522,p.1-15,[retrieved on 2014-10-21]. Retrieved from the Internet,URL,<https://eprint.iacr.org/2009/598.pdf>
【文献】 Liqun Chen, Jiangtao Li,“A note on the Chen-Morrissey-Smart DAA scheme”,information processing letters,2010年 6月15日,Volume 110, Issuers 12-13,pp.485-488
【文献】 Liqun Chen, Kurt Dietrich, Hans Loehr, Ahmad-Reza Sadeghi, Christian Wachsmann, and Johannes Winter,“Lightweight Anonymous Authentication with TLS and DAA for Embedded Mobile Devices”,Cryptology ePrint Archive: Report 2011/101,[online],2011年 3月 2日,Version: 20110302:081730,p.1-18,[retrieved on 2014-10-21]. Retrieved from the Internet,URL,<https://eprint.iacr.org/2011/101.pdf>
【文献】 Liqun Chen,“A DAA Scheme Using Batch Proof and Verification”,LNCS, Trust and Trustworthy Computing,2010年 6月,Vol.6101,pp.166-180
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
G09C 1/00
(57)【特許請求の範囲】
【請求項1】
ホストコンピュータデバイスにより実行される場合に、以下のこと、即ち
直接匿名認証(DAA)発行者コンピュータシステムからDAA証明書を受け取り、
前記DAA証明書からベース名ポイントを導出し、
信頼できるプラットフォームモジュールにメッセージ及び前記ベース名ポイントを提供し、
前記信頼できるプラットフォームモジュールが署名ルーチンを実行して前記署名ルーチンへの入力として前記ベース名ポイントを用いて前記メッセージに署名することを要求する署名コマンドを、前記信頼できるプラットフォームモジュールに発行し、
前記信頼できるプラットフォームモジュールにより署名され且つベース名ポイントに関連した公開鍵値を含むメッセージのバージョンを、前記信頼できるプラットフォームモジュールから受け取り、
前記信頼できるプラットフォームモジュールにより署名された前記メッセージのバージョン及び前記ベース名ポイントに基づいて、前記DAA証明書が有効であることを判定し、
前記公開鍵値をコンピュータ可読メモリに格納すること、を前記ホストコンピュータデバイスに行わせる命令を格納する持続性コンピュータ可読媒体。
【請求項2】
前記ホストコンピュータデバイスにより実行される場合に、DAA署名検証手続きにおいて前記ホストコンピュータデバイスからDAA署名検証者コンピュータシステムに伝達されるべきメッセージに署名するために使用されるべき公開鍵値として、前記格納された公開鍵値を前記ホストコンピュータデバイスに指定させる命令を更に含む、請求項1に記載の持続性コンピュータ可読媒体。
【請求項3】
前記ホストコンピュータデバイスにより実行される場合に、DAA署名検証手続きにおいて前記ホストコンピュータデバイスからDAA署名検証者コンピュータシステムに伝達されるべきメッセージに署名するために使用されるべき公開鍵値として、前記格納された公開鍵値を前記ホストコンピュータデバイスに指定させる命令が、
前記ホストコンピュータデバイスにより実行される場合に、前記DAA証明書が有効であると判定された結果として、DAA署名検証手続きにおいて前記ホストコンピュータデバイスからDAA署名検証者コンピュータシステムに伝達されるべきメッセージに署名するために使用されるべき公開鍵値として、前記格納された公開鍵値を前記ホストコンピュータデバイスに指定させる命令を含む、請求項2に記載の持続性コンピュータ可読媒体。
【請求項4】
前記ホストコンピュータデバイスにより実行される場合に、以下のこと、即ち
前記ホストコンピュータデバイスが本物であることを認証するために、DAA署名検証手続きの一部として署名されるべきチャレンジメッセージを、前記DAA署名検証コンピュータシステムから受け取り、
前記信頼できるプラットフォームモジュールが前記署名ルーチンを実行して前記チャレンジメッセージに署名することを要求する署名コマンドを、前記信頼できるプラットフォームモジュールに発行し、
前記信頼できるプラットフォームモジュールにより署名された前記チャレンジメッセージのバージョンを、前記信頼できるプラットフォームモジュールから受け取り、
前記格納された公開鍵値を、前記信頼できるプラットフォームモジュールにより署名された前記チャレンジメッセージのバージョンへ組み込み、
前記信頼できるプラットフォームモジュールにより署名され且つ前記格納された公開鍵値を組み込む前記チャレンジメッセージのバージョンを、前記DAA署名検証コンピュータシステムへ伝達すること、を前記ホストコンピュータデバイスに行わせる命令を更に含む、請求項2に記載の持続性コンピュータ可読媒体。
【請求項5】
前記ホストコンピュータデバイスにより実行される場合に、前記ホストコンピュータデバイスに前記公開鍵値をコンピュータ可読メモリに格納させる命令が、
前記ホストコンピュータデバイスにより実行される場合に、前記ホストコンピュータデバイスに、前記信頼できるプラットフォームモジュールの外部にあるコンピュータ可読メモリに前記公開鍵値を格納させる命令を含む、請求項1に記載の持続性コンピュータ可読媒体。
【請求項6】
前記ホストコンピュータデバイスにより実行される場合に、前記ホストコンピュータデバイスに前記メッセージを選択させる命令を更に含む、請求項1に記載の持続性コンピュータ可読媒体。
【請求項7】
前記ホストコンピュータデバイスにより実行される場合に、前記ホストコンピュータデバイスに前記メッセージを選択させる命令は、前記ホストコンピュータデバイスに、あらゆるDAA署名検証コンピュータシステムからのあらゆる入力に無関係に前記メッセージを選択させる、請求項6に記載の持続性コンピュータ可読媒体。
【請求項8】
前記DAA証明書から前記ベース名ポイントを導出することが、前記DAA証明書に指定された値に等しい前記ベース名ポイントを設定することを含む、請求項1に記載の持続性コンピュータ可読媒体。
【請求項9】
コンピュータシステムであって、
秘密の直接匿名認証(DAA)署名鍵を格納し、前記秘密のDAA署名鍵およびベース名ポイントを用いてメッセージに署名するセキュリティデバイスと、
ホストコンピュータデバイスとを含み、
前記ホストコンピュータデバイスが、
DAA証明書を格納し、
前記格納されたDAA証明書からベース名ポイントを導出し、
署名されるべきメッセージ及び前記ベース名ポイントを前記セキュリティデバイスに提供し、
前記セキュリティデバイスから、前記セキュリティデバイスにより署名され且つ前記ベース名ポイントに関連した公開鍵値を含むメッセージのバージョンを受け取り、
前記セキュリティデバイスにより署名された前記メッセージのバージョンに基づいて、前記DAA証明書が有効であることを判定する、コンピュータシステム。
【請求項10】
前記セキュリティデバイスが、信頼できるプラットフォームモジュールである、請求項9に記載のシステム。
【請求項11】
前記ホストコンピュータデバイスがハウジングを含み、
前記信頼できるプラットフォームモジュールが、前記ホストコンピュータデバイスの前記ハウジング内に収容される、請求項10に記載のシステム。
【請求項12】
前記ホストコンピュータデバイスがマザーボードを含み、
前記信頼できるプラットフォームモジュールが、前記ホストコンピュータデバイスの前記マザーボードに一体的に結合される、請求項11に記載のシステム。
【請求項13】
前記信頼できるプラットフォームモジュールが、前記秘密のDAA署名鍵のセキュリティを保護する物理的機構を含む、請求項12に記載のシステム。
【請求項14】
コンピュータにより実施される方法であって、
直接匿名認証(DAA)発行者コンピュータシステムからDAA証明書を受け取り、
前記DAA証明書からベース名ポイントを導出し、
信頼できるプラットフォームモジュールに、メッセージ、前記ベース名ポイント、及び楕円曲線グループメンバーシップポイントを提供し、
前記信頼できるプラットフォームモジュールが署名ルーチンを実行して前記署名ルーチンへの入力として前記ベース名ポイント及び前記楕円曲線グループメンバーシップポイントを用いて前記メッセージに署名することを要求する署名コマンドを、前記信頼できるプラットフォームモジュールに発行し、
前記信頼できるプラットフォームモジュールにより署名され且つベース名ポイントに関連した公開鍵値を含むメッセージのバージョンを、前記信頼できるプラットフォームモジュールから受け取り、
前記信頼できるプラットフォームモジュールにより署名された前記メッセージのバージョン及び前記ベース名ポイントに基づいて、前記DAA証明書が有効であることを判定し、
前記公開鍵値をコンピュータ可読メモリに格納することを含む、方法。
【請求項15】
前記信頼できるプラットフォームモジュールにより署名された前記メッセージのバージョン及び前記ベース名ポイントに基づいて、前記DAA証明書が有効であることを判定することが、前記公開鍵値および前記ベース名ポイントの別個の対数が等しいことを判定することを含む、請求項14に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
背景
直接匿名認証(Direct Anonymous Attestation:DAA)は、本物であると認証されているエンティティの正体(アイデンティティ)を明らかにせずに、エンティティの認証を可能にするように意図された匿名(又は偽名)の認証方式を意味する。典型的なDAA方式は、DAA発行者、DAA署名者(即ち、本物であると認証されるべきエンティティ)、及びDAA検証者を含む。発行者は、署名者が信頼されていると判断(判定)し、そのような検証の判断に応じてDAAグループのメンバーシップ証明書またはDAA証明書を署名者に発行する。発行者が署名者の妥当性(validity:正当性、有効性)を検証する、発行者と署名者との間のこのネゴシエーションは、DAA結合プロセスと呼ばれ得る。
【0002】
署名者がDAA証明書を発行された後、署名者は、署名者に発行され且つ署名者の正体を明らかにすること無くDAA証明書の妥当性を検証することを検証者に可能にするDAA証明書に基づいているDAA署名でもってメッセージに署名することにより、信頼できるコンピュータプラットフォームのグループのそのメンバーシップであることを検証者に証明する。検証者が署名者のDAA証明書の妥当性を検証する、署名者と検証者との間のこのネゴシエーションは、DAA署名プロセスと呼ばれ得る。
【0003】
典型的なDAA方式において、署名者は、(i)秘密の署名鍵を格納し、且つ比較的限定されたコンピュータ能力および記憶能力を有するが比較的高いセキュリティ(安全性)の保証を有する第1の署名者と、(ii)比較的大きなコンピュータ能力および記憶能力を有する第2の署名者との間でDAA署名を計算するタスクを分割する。安全であるがコンピュータ的に制限される一次署名者と、安全は劣るがコンピュータ的により強力な二次署名者との間で署名の役割を分割することは、コンピュータ的により強力な二次署名者に処理負荷の一部を押し付けることによってコンピュータ的に制約された一次署名者に課せられた負担を低減すると同時に、署名者が比較的強くて秘密のDAA署名を生成することも可能にする。DAA署名でもってメッセージに署名する場合、第1の署名者は、保持する秘密の署名鍵を用いてメッセージに署名するが、第2の署名者の寄与はDAA署名を匿名にすることである。二次署名者は一般に、一次署名者の秘密の署名鍵を知ることが阻止され、結果として一次署名者と協働せずに有効なDAA署名を生成することができない。
【0004】
典型的なDAA結合プロセスの一部として、一次署名者は、発行者により発行されたDAA証明書が有効であることを二次署名者に証明するために、及び二次署名者がDAA署名に寄与する際のその役割の一部として使用することができるランダム化DAA公開鍵を二次署名者に提供するために一連の特殊コマンドを実行することができる。一般に、そのような特殊コマンドは、DAA結合プロセスのこの態様に固有とすることができ、そうでなければ一次署名者により実行されることができない。結果として、DAA証明書の妥当性を証明してランダム化DAA公開鍵を生成するために、このような特殊コマンドを実行することができる必要性は、資源に制約のある一次署名者に対して増大した計算コスト及び複雑性をまねく可能性がある。
【図面の簡単な説明】
【0005】
図1】通信システムの一例のブロック図である。
図2】全体的なDAAプロセスの一例の態様を示す流れ図である。
図3A】DAA方式の例示的な初期化プロセスの態様を示す流れ図である。
図3B】DAA方式の例示的な初期化プロセスの態様を示す流れ図である。
図3C】DAA方式の例示的な初期化プロセスの態様を示す流れ図である。
図3D】DAA方式の例示的な初期化プロセスの態様を示す流れ図である。
図4A】例示的なDAA結合プロセスの態様を示す流れ図である。
図4B】例示的なDAA結合プロセスの態様を示す流れ図である。
図4C】例示的なDAA結合プロセスの態様を示す流れ図である。
図4D】例示的なDAA結合プロセスの態様を示す流れ図である。
図4E】例示的なDAA結合プロセスの態様を示す流れ図である。
図5A】例示的なDAA署名プロセスの態様を示す流れ図である。
図5B】例示的なDAA署名プロセスの態様を示す流れ図である。
図5C】例示的なDAA署名プロセスの態様を示す流れ図である。
図6】例示的なDAA結合プロセスの態様を示す流れ図である。
【0006】
詳細な説明
DAA証明書の妥当性の検証およびDAA二次署名者に対してDAA一次署名者によるランダム化DAA公開鍵の生成を可能にする技術が、本明細書で説明される。これら技術を利用することにより、DAA証明書の妥当性の検証およびランダム化DAA公開鍵の生成を可能にすると同時に、DAA証明書の妥当性を検証する及びランダム化DAA公開鍵を生成するために実行され得る1つ又は複数の特殊コマンドの必要性が除去され得る。
【0007】
図1は、通信システム100の一例のブロック図である。例示のために、図1に示されて後述される幾つかの要素は、単体のエンティティとして表される。しかしながら、これら要素の一部は、一組の所定の演算を実行するために設計された多くの相互接続されたコンピュータデバイス及び/又は他のコンポーネントを含む、及び/又はそのようなもので実現され得る。
【0008】
図1に示されたように、通信システム100は、DAA発行者102、信頼できるプラットフォームモジュール(Trusted Platform Module:TPM)106を有するホストコンピュータ104(まとめてDAA署名者と呼ばれ得る)、及びDAA検証者108を含む。ホストコンピュータ104は、ネットワーク110によりDAA発行者102及びDAA検証者108に通信可能に結合される。ネットワーク110は、ホストコンピュータ104とDAA発行者102との間に、並びにホストコンピュータ104とDAA検証者108との間に直接的または間接的通信リンクを提供することができる。ネットワーク110の例には、インターネット、ワールドワイドウェブ、企業イントラネットを含む広域ネットワーク(WAN)、無線LAN(WLAN)を含むローカルエリアネットワーク(LAN)、アナログ又はデジタルの有線または無線電話ネットワーク、無線通信、テレビシステム、ケーブルテレビ、衛星通信、及び/又はデータを伝送するための任意の他の配信機構、又はそれらの任意の組み合わせが含まれる。
【0009】
DAA発行者102及びDAA検証者108のそれぞれは、1つ又は複数のコンピュータデバイス(例えば、サーバ)を用いて実現され得る。DAA発行者102が実現される1つ又は複数のコンピュータデバイス、及びDAA検証者108が実現される1つ又は複数のコンピュータデバイスは、データ、並びにオペレーティングシステム及び1つ又は複数のアプリケーションプログラムのようなプログラムを格納する内部または外部記憶コンポーネントを有することができる。DAA発行者102が実現される1つ又は複数のコンピュータデバイスの記憶コンポーネントに格納される1つ又は複数のアプリケーションプログラムは、実行された場合に1つ又は複数のコンピュータデバイスが本明細書で説明されるDAA発行者102の特徴を提供する命令を含むことができる。同様に、DAA検証者108が実現される1つ又は複数のコンピュータデバイスの記憶コンポーネントに格納される1つ又は複数のアプリケーションプログラムは、実行された場合に1つ又は複数のコンピュータデバイスが本明細書で説明されるDAA検証者108の特徴を提供する命令を含むことができる。更に、DAA発行者102が実現される1つ又は複数のコンピュータデバイス、及びDAA検証者108が実現される1つ又は複数のコンピュータデバイスはそれぞれ、記憶装置に格納された命令および/または例えばネットワーク110を介して1つ又は複数の他の電子デバイスから受信した命令を実行するための1つ又は複数のプロセッサを含むことができる。更に、これらコンピュータデバイスは、データを送受信するためのネットワークインターフェース及び通信デバイスを含むこともできる。
【0010】
ホストコンピュータ104は、多数の異なる種類のコンピュータデバイスの何れかとすることができ、そのようなコンピュータデバイスには、例えばパーソナルコンピュータ、専用コンピュータ、汎用コンピュータ、専用および汎用コンピュータデバイスの組み合わせ、ラップトップ型コンピュータ、タブレット型コンピュータ、ネットブックコンピュータ、スマートフォン、携帯電話、携帯情報端末、及び携帯型メディアプレーヤが含まれる。ホストコンピュータ104は一般に、データ、並びにオペレーティングシステム及び1つ又は複数のアプリケーションプログラムのようなプログラムを格納するための内部または外部記憶コンポーネントを有する。また、ホストコンピュータ104は一般に、記憶装置に格納された命令および/または例えばネットワーク110を介して1つ又は複数の他の電子デバイスから受信した命令を実行するための中央処理装置(CPU)も含む。更に、ホストコンピュータ104は通常、データを送受信するための1つ又は複数の通信デバイスも含む。そのような通信デバイスの一例はモデムである。他の例には、アンテナ、トランシーバ、通信カード、及び有線または無線データ経路を通じてネットワーク110を介してデータを送受信ことができる他の種類のネットワークアダプターが含まれる。
【0011】
TPM106は、ホストコンピュータ104内に一体的に実装される。例えば、TPM106は、ホストコンピュータ104のハウジング内のハードウェアに埋め込まれ得る。より具体的には、幾つかの具現化形態において、TPM106は、ホストコンピュータ104のマザーボード内に埋め込まれ得るか、又は当該マザーボードに物理的に結合され得る。更に、TPM106は一般に、ソフトウェアだけを通じて可能とすることができるものよりも高いレベルのセキュリティを提供するように設計された1つ又は複数の物理的機構を含む物理的に安全なハードウェアデバイス(例えば、不正開封防止機構の付いたチップ)とすることができる。TPM106は、幾つかある目的の中で特に、1つ又は複数の暗号鍵を格納するためのコンピュータ記憶装置を含む。更に、TPM106は、処理能力を有し、ホストコンピュータ104の処理能力よりも劣ることができるTPM106の処理能力を通じて計算タスク(例えば、暗号化機能を含む)を実行することができる。幾つかの具現化形態において、TPM106は、低帯域幅のLPC(Low Pin Count)バスインターフェースにより、ホストコンピュータ104に通信可能に結合され得る。
【0012】
DAA方式を実現する場合、発行者102は、ホストコンピュータ104及びその関連するTPM106の正当性(妥当性)を試験し、ホストコンピュータ及びその関連するTPM106が正当(本物)であることを検証する(例えば、TPMがDAA秘密を格納することを検証することにより)ことに応じて、ホストコンピュータ104にDAA証明書を発行する。次いで、ホストコンピュータ104及びその関連するTPM106は、検証者108に対してそれらの正当性を以下によって、即ちTPM106により格納されたDAA秘密、及び発行者102によりホストコンピュータ104に発行されたDAA証明書に基づいているDAA署名を検証者108に供給することによって、証明することができる。
【0013】
このDAA署名を計算する役割は、ホストコンピュータ104とTPM106との間で分割される。以下で詳述されるように、TPM106は、主要な(一次の)署名者であり、DAA秘密およびDAA秘密署名鍵を格納する。一方で、ホストコンピュータ104は、二次の署名者として動作し、ホストコンピュータ104の匿名性(又は偽名)を維持するためにDAA署名を計算する際にTPM106を支援する。ホストコンピュータ104は、TPM106により格納されたDAA秘密および秘密署名鍵を知ることが阻止されることができ、結果としてホストコンピュータ104は、TPM106なしに有効なDAA署名を生成することができない。
【0014】
ホストコンピュータ104からDAA署名を受け取った後、検証者108は、ホストコンピュータ104及びその関連するTPM106が有効なDAA証明書を所持しているか否かを判定するために当該署名を試験し、ホストコンピュータ104及びその関連するTPM106が有効なDAA証明書を所持していることの検証に応じて、ホストコンピュータ104の信憑性を確認する。検証者108は、ホストコンピュータ104及びその関連するTPM106が有効なDAA証明書を所持していることを検証することができるが、検証者108はホストコンピュータ104の正体(アイデンティティ)を特定することはできない。
【0015】
図2は、全体的なDAAプロセスの一例の態様を示す流れ図200である。図2の流れ図200に示されたプロセスは、DAA発行者202(例えば、図1のDAA発行者102)、DAA署名者204(ホストコンピュータ206(例えば、図1のホストコンピュータ104)とTPM208(例えば、図1のTPM106)により合同で実現される)、及びDAA検証者210(例えば、図1のDAA検証者108)により実行される。
【0016】
212において、DAA発行者202は、コミットメントチャレンジをDAA署名者204に発行する。特に、DAA発行者202は、チャレンジをDAA署名者204に発行する。DAA署名者204は、DAA発行者202からコミットメントチャレンジを受け取り、214において、TPM208は、TPM208内に格納されたDAA秘密から導出されたDAA秘密鍵を使用して当該コミットメントチャレンジに対する応答を生成し、DAA署名者204がDAA秘密および秘密承認鍵の知識を有し、それ故に発行者202により信頼されるべきである有効なTPMであることを証明する。次いで、216において、TPM208は、当該コミットメントチャレンジに対する応答をDAA発行者202に発行する。DAA発行者202は、当該応答を受け取り、218において、その応答を検査して当該応答が有効であるか否かを判定する。即ち、DAA発行者202は、DAA署名者204がDAA秘密および秘密承認鍵の知識を有し、それ故にDAA発行者202により信頼されるべきであるということを当該応答が証明するか否かを判定するために当該応答を検査する。DAA署名者204がDAA秘密および秘密承認鍵の知識を有することの検証に応じて、220において、DAA発行者202はDAA証明書をDAA署名者に発行し、222において、ホストコンピュータ206がDAA証明書を格納する。一方、218において、DAA署名者から受け取った応答が無効であるとDAA発行者202が判定する場合、DAA発行者202はプロセスを中止することができる。
【0017】
DAA署名者204がDAA発行者202からそのDAA証明書を受け取った後、DAA署名者204は、当該DAA証明書を用いて、その正当性をDAA検証者210に証明することができる。例えば、224において、DAA検証者210は、DAA署名者204にメッセージを発行することができ、DAA署名者204の正当性をDAA検証者210に証明するために、TPM208により格納されたDAA秘密署名鍵、及びホストコンピュータ206により格納されたDAA証明書に基づいて計算されたDAA署名でもって、DAA署名者204が当該メッセージに署名することを要求する。DAA検証者210により発行されたメッセージの受け取りに応じて、226において、DAA署名者204のTPM208及びホストコンピュータ206は協働して、TPM208内に格納されたDAA秘密鍵、及びホストコンピュータ206により格納されたDAA証明書を用いて計算されたDAA署名でもって当該メッセージに署名する。次いで、228において、DAA署名者204は、署名されたメッセージをDAA検証者210に伝達する。
【0018】
DAA検証者210が、署名されたメッセージを受け取り、230において、当該署名されたメッセージを検査し、メッセージに署名するために使用されたDAA署名が有効であるか否かを判定する。即ち、DAA検証者210は、署名されたメッセージを検査して、DAA署名者204が有効なDAA証明書およびDAA秘密署名鍵を所持していることをDAA署名が証明するか否かを判定する。DAA署名者204が有効なDAA証明書およびDAA秘密署名鍵を所持していることの検証に応じて、232において、DAA検証者210がDAA署名者204を認証する。一方で、230において、メッセージに署名するために使用されたDAA署名が、DAA署名者が有効なDAA証明書を所持していることを証明しないとDAA検証者210が判定する場合、DAA検証者210はプロセスを中止することができる。
【0019】
図3A図3Dは、DAA発行者(例えば、図1のDAA発行者102)、DAA署名者(例えば、図1のホストコンピュータ104及びその関連するTPM106)、及びDAA検証者(例えば、図1のDAA検証者108)を含むDAA方式に関して、例示的な初期化プロセスの態様を示す流れ図である。特に、図3A図3Dの流れ図は、DAA方式の種々の異なるプロトコルの公開パラメータを設定する、及びDAA発行者に長期のパラメータを設定するプロセスの態様を示す。
【0020】
図3Aは、DAA方式のコミットメントパラメータparを設定する態様を示す流れ図300である。図3Aの流れ図300に示されたプロセスは、DAA方式自体に含まれるDAA発行者(例えば、図2のDAA発行者102)により実行され得る。更に又は代案として、図3Aの流れ図300に示されたプロセスは、信頼できる組織(例えば、信頼できる標準組織)により実行され得る。302において、第1の楕円曲線点Pが無作為に選択され、304において、第2の楕円曲線点Pが無作為に選択される。次いで、306において、P及びPを用いて、
のような十分に大きな素数位数qの3つのグループ
を生成する。次いで、308において、第1のハッシュ関数
が選択され、210において、第2のハッシュ関数
が選択され、ここで、記号{0、1}は、任意長の一組の二進列を表す。その後、312において、コミットメントパラメータpar
として設定される。最後に、314において、コミットメントパラメータparのサブセットが
として設定される。次いで、parが、TPMにインストールされ得る(例えば、一組のコミットメントパラメータparの全部の代わりに)。
【0021】
図3Bは、DAA方式に含まれるDAA発行者にDAA発行者パラメータparを設定する態様を示す流れ図320である。図3Bの流れ図320に示されたプロセスは、DAA方式自体に含まれるDAA発行者により実行され得る(例えば、図1のDAA発行者102)。322において、第1の整数
が選択され(ここで、演算x←Sは、無作為のサンプリングS及びその結果を変数xに割り当てる行為を表す)、324において、第2の整数
が選択される。次いで、326において、発行者の秘密署名鍵iskが、isk=(x、y)に設定される。発行者の公開署名鍵ipkを生成するために、328において、値
が計算され(ここで、演算[x]Pは、楕円曲線点Pに或る整数xを掛けるスカラー乗法を表す)、330において、値
が計算される。次いで、332において、発行者の公開署名鍵ipkが、ipk=(X、Y)として設定される。334において、発行者の値K
に設定される。最後に、336において、発行者のパラメータparが、par=(ipk、K)に設定される。
【0022】
図3Cは、DAA方式に含まれるTPM(例えば、図1のTPM106)にTPMパラメータを設定する態様を示す流れ図340である。図3Cの流れ図340に示されたプロセスは、DAA方式自体に含まれるTPMにより実行され得る(例えば、図1のTPM106)。更にまたは代案として、図3Cの流れ図340に示されたプロセスは、信頼できる組織(例えば、信頼できる標準組織)により実行され得る。342において、公開/秘密承認鍵のペア
がTPMにより生成されて格納される。344において、秘密DAAの秘密値DAAseedが生成される(例えば、TPMの内部乱数発生器を用いて)。次いで、このDAAseed値がTPMにより使用されて、TPMがDAA発行者および/またはDAA検証者に対してその信憑性を証明する一部として使用することができる1つ又は複数のDAA秘密鍵を生成することができる。
【0023】
図3Dは、DAA方式に署名および検証パラメータparを設定する態様を示す流れ図350である。図3Dの流れ図350に示されたプロセスは、DAA方式自体に含まれるDAA発行者により実行され得る(例えば、図1のDAA発行者102)。更に又は代案として、図3Dの流れ図350に示されたプロセスは、信頼できる組織(例えば、信頼できる標準組織)により実行され得る。352において、第3のハッシュ関数
が選択され、354において、第4のハッシュ関数
が選択される。次いで、356において、署名および検証パラメータparが、par=(H、H)に設定される。
【0024】
図3A図3B図3C及び図3Dの流れ図300、320、340及び350に示されたプロセスがそれぞれ実行され、パラメータpar、par、par及びparが設定された後、これらパラメータは、DAA方式に含まれるDAA発行者(例えば、図1のDAA発行者102)、DAA署名者(例えば、図1のDAA署名者104)及びDAA検証者(例えば、図1のDAA検証者108)に利用可能にされ得る。
【0025】
図4A図4Eは、DAA方式全体内の例示的なDAA結合プロセスの態様を示す流れ図400を示す。図4A図4Eの流れ図400に示されたプロセスは、例えば図3A図3B図3C及び図3Dの流れ図300、320、340及び350にそれぞれ示されたプロセスの実行を介して、DAA方式の公開パラメータが設定された後に、DAA発行者402(例えば、図1のDAA発行者102)並びにDAA署名者のホストコンピュータ404及びTPM406(例えば、図1のホストコンピュータ104とTPM106)により実行される。
【0026】
4002において、メッセージ認証コード(MAC)アルゴリズムの鍵空間
から、秘密鍵kが無作為に選択され、4004において、TPM406の公開鍵
を用いて、kを暗号化して(例えば、IND−CCA(indistinguishability of chosen cipher text attack)暗号化方式を用いて)cを生成する。更に、4006において、ノンスnが長さtの一組の二進列から無作為に選択される。次いで4008において、cとnに基づいたコミットメントチャレンジが生成され、4010において、コミットメントチャレンジがホストコンピュータ404に伝達され、次いで4012において、コミットメントチャレンジがTPM406に伝達される。
【0027】
TPM406はコミットメントチャレンジを受け取り、より詳細に後述されるように、TPM406に格納されたDAAseed値から導出されたDAA秘密鍵に基づいており、且つTPM406及びその関連するホストコンピュータ404がDAA発行者402により信頼されるべきであることをDAA発行者402に示す署名を、DAA発行者402のコミットメントチャレンジに対して戻す。特に、4014において、TPM406は、(DAAseed||K||cnt)(即ち、DAAseed、K、及びcntの連結(例えば、生成されるべき多数の鍵を示す値))に擬似ランダム関数を適用することにより秘密の楕円曲線DAA(ECDAA)鍵skを計算する。更に、4016において、TPM406は、その秘密鍵
を用いてコミットメントチャレンジからcを暗号解読してkを生成する。次いで、4018において、TPM406は、k=⊥であるか否かを検査する。k=⊥である場合、プロセスは中止される。代わりに、k≠⊥である場合、プロセスは4020へ継続し、ここでTPM406は、skに楕円曲線点Pを掛けることにより、TPM406及びその関連するホストコンピュータ404が信頼されるべきであることをDAA発行者402に示す署名Fを計算する。
【0028】
4022において、TPM406が、
から無作為に値μを選択し、4024において、TPMは、μに楕円曲線点Pを掛けることにより、Uを計算する。ここで図4Bを参照すると、TPM406は、4026において、DAA発行者402の公開鍵X及びYをコミットメントチャレンジのnと連結させることにより、引き続きstrを生成する。更に、4028において、TPM406は、(P||F|||U||str)にハッシュ関数Hを適用することによりνを計算する。その後、4030において、TPM406は、ω←μ+ν・sk(modq)を計算し、4032において、TPM406は、秘密の署名鍵kを用いてメッセージ(P||F|||ν||ω)を暗号化するために、MACアルゴリズムを適用することによりγを生成する。次いで、4034において、TPM406は、F、ν、ω、γ、及びnを一緒にパッケージングすることにより、コミットメントを生成し、4036において、TPM406はコミットメントをホストコンピュータ404に伝達する。ホストコンピュータ404はTPM406から当該コミットメントを受け取り、4038において、当該コミットメントをDAA発行者402に伝達する。
【0029】
DAA発行者402は当該コミットメントを受け取り、より詳細に後述されるように、受け取ったコミットメントに基づいて、TPM406及びその関連するホストコンピュータ404が信頼できるコンピュータプラットフォームのグループに属することを検証する。特に、4040において、DAA発行者402は、受け取ったコミットメントからのnがコミットメントチャレンジからのnと同じであるか否かを検査する。
が真である場合、DAA発行者402はプロセスを中止する。一方、
が真でない場合、DAA発行者402は4042へ進み、ここでDAA発行者402は、秘密署名鍵kを用いて、メッセージ(P||F|||ν||ω)を暗号化するために、MACアルゴリズムを適用することによりγ’を生成する。その後、4044において、DAA発行者402は、γ’がコミットメント内に含まれる値γと同じであるか否かを検査する。γ≠γ’が真である場合、DAA発行者402はプロセスを中止する。γ≠γ’が真でない場合、DAA発行者402は4046へ進み、ここでDAA発行者402は、U’←[ω]P−[ν]Fを計算する。
【0030】
ここで、図4Cを参照すると、4048において、DAA発行者402は、その公開鍵XとYをnと連結させることにより、strのそれ自体のバージョンを引き続き生成する。次いで、4050において、DAA発行者402は、ハッシュ関数Hを(P||F|||U’||str)に適用することによりν’を計算する。その後、4052において、DAA発行者402は、ν’の値が受け取ったコミットメントチャレンジからのνの値と同じであるか否かを検査することによって、TPM406及びその関連するホストコンピュータ404がDAA発行者402により信頼されるべきであるか否かを判定する。ν≠ν’が真である場合、DAA発行者402は、TPM406が有効なDAA秘密鍵を保持していない、それ故にTPM406及びその関連するホストコンピュータ404が信頼できるコンピュータプラットフォームのグループのメンバーでないと判断する。従って、DAA発行者402はプロセスを中止する。一方で、ν≠ν’が真でない場合、DAA発行者402は、TPM406が有効なDAA秘密鍵を保持しており、それ故にTPM406及びその関連するホストコンピュータ404がDAA発行者402により信頼されるべきであると判断する。従って、DAA発行者402は4054に進み、ここでDAA発行者402は、TPM406により保持されたDAA秘密鍵が危険にさらされたことを知られていないことを確認するために検査する。特に、危険にさらされたことを知られているDAA秘密鍵のRogueListに含まれるDAA秘密鍵sk’毎に、DAA発行者402は、受け取ったコミットメントからのFの値が[sk’]Pに一致するか否かを検査する。危険にさらされたことを知られているDAA秘密鍵のRogueListに含まれる任意のDAA秘密鍵sk’について、F=[sk’]Pが真である場合、DAA発行者402は、TPM406により保持されたDAA秘密鍵が危険にさらされたと判定し、それ故にプロセスを中止する。一方で、RogueListに含まれるDAA秘密鍵sk’の全てについて、F=[sk’]Pが真でない場合、DAA発行者402は、TPM406により保持されたDAA秘密鍵が危険にさらされたことを知られていないと判定し、それ故にDAA発行者402はプロセスを続行する。
【0031】
TPM406により保持されたDAA秘密鍵が有効なDAA秘密鍵であり、且つTPM406により保持されたDAA秘密鍵が危険にさらされたことを知られていないことを検証すると、DAA発行者402は、TPM406に関連したホストコンピュータ404のDAA証明書の生成に取りかかる。特に、4056において、DAA発行者402は、
から無作為に値aを選択する。その後、DAA発行者402は、4058においてA=[a]P、4060においてB=[ay]P、4062においてC=[ax]P+[axy]Fを計算する。次いで、DAA発行者402は、4064において、A、B、及びCを一緒にパッケージングすることによりTPM406に関連したホストコンピュータ404のDAA証明書を生成し、4066において、DAA発行者402は、結果として生じるDAA証明書をホストコンピュータ404に伝達する。
【0032】
流れ図400に示されたDAA結合プロセスを完了する一部として、ホストコンピュータ404は、TPM406と協働して、DAA発行者402から受け取ったDAA証明書が有効であることを検証し、ホストコンピュータ404がDAA署名に寄与するために使用することができるランダム化公開鍵を生成する。より詳細に後述されるように、一具現化形態において、ホストコンピュータ404は、DAA発行者402から受け取ったDAA証明書が有効であることを検証し且つホストコンピュータ404のランダム化公開鍵を生成するために、TPM406が署名プロトコルを実行することを要求する。この署名プロトコルは、TPM406及びその関連したホストコンピュータ404が本物であることをDAA検証者に対して認証するために使用されるべきDAA署名に寄与するためにTPM406が実行する署名プロトコルと同じ(又は実質的に類似)とすることができる。
【0033】
より具体的には、4068において、ホストコンピュータ404は、TPM406により署名されるべきメッセージmを生成する。例えば、ホストコンピュータ404は、任意のメッセージmを生成することができるか、又はホストコンピュータ404は、TPM406により署名されるべきメッセージmを無作為に選択することができる。更に、ここで図4Dを参照すると、4069において、ホストコンピュータ404は、任意の又は無作為に選択されたデータ列とすることができるhostDigestの値を選択し、4070において、ホストコンピュータ404は、DAA発行者402から受け取ったDAA証明書からBの値に等しいベース名ポイントJを設定する。更に、4072において、ホストコンピュータ404は、Pに等しいメンバーシップポイントSを設定する。その後、4074において、ホストコンピュータ404は、J、S、メッセージm、及びhostDigestをTPM406に伝達し、当該メッセージに署名するためにDAA署名プロトコルを実行するようにTPM406に要求する。
【0034】
TPM406は、J、S、メッセージm、及びhostDigestを受け取り、メッセージmに署名するためにDAA署名プロトコルの実行に取りかかる。特に、4076において、TPM406は、skにJを掛けることにより、署名Kを計算する。その後、TPM406は、4078において、
から無作為に値γを選択し、4080においてγにJを掛けることにより値Rを計算し、4082において、γにSを掛けることにより値Rを計算する。次いで、TPM406は、4084においてJ、K、R及びRを連結させることによりstrを生成し、4086において(hostDigest||str||m)にハッシュ関数Hを適用することによりhを計算し、4088において、s=γ+h・sk(mod)を計算する。ここで、図4Eを参照すると、TPM406は、4090においてK、h及びsを一緒にパッケージングすることにより署名σを生成し、4092において、署名σをホストコンピュータ404に伝達する。
【0035】
ホストコンピュータ404が署名σを受け取り、署名σを用いて、DAA発行者402から受け取ったDAA証明書が有効であるか否かを判定することに取りかかる。特に、4094において、ホストコンピュータ404は、
であるか否かを検査する。
である場合、ホストコンピュータ404は、DAA発行者402から受け取ったDAA証明書が無効であることを判定し、それ故にプロセスを中止する。一方で、
である場合、ホストコンピュータ404は4096に進み、ここで、ホストコンピュータ404は、
であるか否かを検査する。
である場合、ホストコンピュータ404は、DAA発行者402から受け取ったDAA証明書が無効であると判定し、それ故にプロセスを中止する。一方で、
である場合、ホストコンピュータ404は4098に進み、ここでホストコンピュータ404は、R’=[s]J−[h]Kを計算する。
【0036】
更に、4100において、ホストコンピュータ404はR’=[s]S−[h]Kを計算し、4102において、ホストコンピュータ404は、c’=hostDigestを設定する。次いで、4104において、ホストコンピュータ404は、J、K、R’及びR’を連結させることによりstr’を生成し、4106において、(c’||str’||m)にハッシュ関数Hを適用することによりh’を計算する。その後、4108において、ホストコンピュータ404は、h(署名σから)がh’と一致するか否かを検査する。h≠h’の場合、ホストコンピュータ404は、DAA発行者402から受け取ったDAA証明書が無効であると判定し、プロセスを中止する。一方で、h=h’の場合、ホストコンピュータ404は、DAA発行者402から受け取ったDAA証明書が有効であると判定し、それ故に4110に進み、ここでホストコンピュータ404は、TPM406により戻された署名σで受け取られたKの値に等しいランダム化公開鍵の値Dを設定する。その後、4112において、ホストコンピュータ404は、TPM406により保持されたDAA秘密署名鍵skと関連するDAA証明書として(A、B、C、D)を格納する。図4A図4Eの流れ図400に示されたプロセスを完了した後、ホストコンピュータ404及びその関連するTPM406は、DAA署名プロセスの一部としてのDAA検証者に対して、ホストコンピュータ404及びその関連するTPM406が本物であることを認証するために、TPM406により保持されたDAA秘密署名鍵sk、及びホストコンピュータ404により格納されたDAA証明書(A、B、C、D)を用いてDAA署名を計算することができる。
【0037】
図5A図5Cは、DAA方式の例示的なDAA署名プロセスの態様を示す流れ図500を示す。図5A図5Cの流れ図500に示されたプロセスは、DAA方式の公開パラメータが、例えば図3A図3B図3C及び図3Dの流れ図300、320、340及び350にそれぞれ示されたプロセスの実行を介して設定された後、且つホストコンピュータ502及びその関連するTPM504が、例えば図4A図4Eの流れ図400に示されたプロセスの実行を介してDAA方式のDAA結合プロセスを完了した後、DAA署名者のホストコンピュータ502及びTPM504(例えば、図1のホストコンピュータ104及びTPM106)及びDAA検証者506(例えば、図1のDAA検証者108)により実行される。
【0038】
5002において、ホストコンピュータ502は、bsn=⊥であるか否かを確かめるためにベース名の値(例えば、任意の列または特殊記号)を検査する。ホストコンピュータ502がbsn=⊥であると判定する場合、ホストコンピュータ502は5004に進み、ここでホストコンピュータ502は、
から無作為にベース名ポイントJを選択する。一方で、ホストコンピュータ502がbsn≠⊥であると判定する場合、ホストコンピュータ502は代わりに5006に進み、ここでホストコンピュータ502は、bsnにハッシュ関数Hを適用することによりベース名ポイントJの値を計算する。その後、ホストコンピュータ502は、5008において、
から無作為に値lを選択し、5010においてlに対して選択された値にDAA証明書からのAの値を掛けることにより値Rを計算し、5012においてlに対して選択された値にDAA証明書からのBの値を掛けることによりメンバーシップポイントSを計算し、5014においてlに対して選択された値にDAA証明書からのCの値を掛けることにより値Tを計算し、及び5016においてlに対して選択された値にDAA証明書からのDの値を掛けることにより値Wを計算する。更に、5018において、ホストコンピュータ502は、(R||S||T||W)にハッシュ関数Hを実行することによりcを計算する。次いで、5020において、ホストコンピュータ502は、c、J、S、及びメッセージmsgをTPM504に伝達して、メッセージmsgに署名するためにDAA署名プロトコルを実行することをTPM504に要求する。幾つかの具現化形態において、メッセージmsgは、DAA検証者506によりホストコンピュータ502に提供され得る。
【0039】
TPM504は、c、J、S、及びmsgを受け取り、メッセージmsgに署名するためにDAA署名プロトコルの実行に取りかかる。特に、5022において、TPM504はskにJを掛けることにより、署名Kを計算する。その後、TPM504は、5024において、
から無作為に値γを選択し、5026において、γにJを掛けることにより値Rを計算し、5028においてγにSを掛けることにより値Rを計算する。次いで、5030において、TPM504は、J、K、R及びRを連結させることにより、strを生成する。
【0040】
ここで、図5Bを参照すると、TPM504は、5032において、(c||str||msg)にハッシュ関数Hを適用することによりhを計算し、5034において、s=γ+h・sk(mod)を計算し、5036において、K、h及びsを一緒にパッケージングすることにより署名σを生成する。その後、5038において、TPM504は、署名σをホストコンピュータ502に伝達する。
【0041】
ホストコンピュータ502は、署名σを受け取り、5040において、それ自体の寄与をDAA署名に加え、R、S、T、W、J、K、h及びsを一緒にパッケージングすることによりDAA署名σを生成する。次いで、5042において、ホストコンピュータ502は、DAA署名σをDAA検証者506に伝達する。
【0042】
DAA検証者506は、DAA署名σを受け取り、DAA署名σの妥当性を検証してホストコンピュータ502及びその関連するTPM504が本物であることを認証する。特に、5044において、DAA検証者506は、TPM504により保持されたDAA秘密鍵が危険にさらされたことを知られていないことを確認するために検査する。特に、危険にさらされたことを知られているDAA秘密鍵のRogueListに含まれるDAA秘密鍵sk’毎に、DAA検証者506は、DAA署名σからのKの値が[sk’]Jに一致するか否かを検査する。危険にさらされたことを知られているDAA秘密鍵のRogueListに含まれる任意のDAA秘密鍵sk’について、K=[sk’]Jが真である場合、DAA検証者506は、TPM504により保持されたDAA秘密鍵が危険にさらされたと判定し、それ故にホストコンピュータ502及びその関連するTPM504が本物であることを認証することを拒否する。一方で、RogueListに含まれるDAA秘密鍵sk’の全てについて、K=[sk’]Jが真でない場合、DAA検証者506は、TPM504により保持されたDAA秘密鍵が危険にさらされたことを知られていないと判定し、それ故にDAA検証者506はプロセスを続行する。
【0043】
5046において、DAA検証者506は、bsn=⊥であるか否かを検査する。DAA検証者506がbsn=⊥であると判定する場合、DAA検証者506は、ホストコンピュータ502及びその関連するTPM504が本物であることを認証することを拒否する。一方で、ホストコンピュータ502がbsn≠⊥であると判定する場合、DAA検証者506は5048に進み、ここでDAA検証者は、J=H(bsn)であるか否かを検査する。DAA検証者506がJ≠H(bsn)であると判定する場合、DAA検証者506は、ホストコンピュータ502及びその関連するTPM504が本物であることを認証することを拒否する。一方で、DAA検証者506がJ=H(bsn)であると判定する場合、DAA検証者506は5050に進み、ここでDAA検証者506は、
であるか否かを検査する。
である場合、DAA検証者506は、DAA署名σが無効であると判定し、それ故にホストコンピュータ502及びその関連するTPM504が本物であることを認証することを拒否する。一方で、
である場合、DAA検証者506はプロセスを続行する。
【0044】
ここで、図5Cを参照すると、5052において、DAA検証者506は、
であるか否かを検査する。
である場合、DAA検証者506は、DAA署名σが無効であると判定し、それ故にホストコンピュータ502及びその関連するTPM504が本物であることを認証することを拒否する。一方で、
である場合、DAA検証者506は5054に進み、ここでDAA検証者506は、R’=[s]J−[h]Kを計算する。更に、5056において、DAA検証者506は、R’=[s]S−[h]Wを計算し、5058において、DAA検証者506は、(R||S||T||W)にハッシュ関数Hを適用することによりc’を計算する。次いで、DAA検証者506は、5060においてJ、K、R’及びR’を連結させることによりstr’を生成し、5062において、(c’||str’||msg)にハッシュ関数Hを適用することによりh’を計算する。最後に、5064において、DAA検証者506は、(DAA署名σからの)hがh’と一致するか否かを検査する。h≠h’の場合、DAA検証者506は、DAA署名σが無効であると判定し、ホストコンピュータ502及びTPM504が本物であることを認証することを拒否する。一方で、h=h’の場合、DAA検証者506は、DAA署名σが有効であると判定し、DAA検証者506は、ホストコンピュータ502及びその関連するTPM504が本物であると判定する。
【0045】
図6は、例示的なDAA結合プロセスの態様を示す流れ図600である。特に、図6の流れ図600は、DAA発行者(例えば、図1のDAA発行者102)から受け取ったDAA証明書が有効であることを検証し且つホストコンピュータ(例えば、図1のホストコンピュータ104)がホストコンピュータ及びその関連するTPM(例えば、図1のTPM106)により計算されるDAA署名に寄与することを可能にするランダム化公開鍵を取得することに関連して、DAA結合プロセス中にホストコンピュータにより実行され得る動作(アクション)を示す。
【0046】
図6に示されたように、602において、ホストコンピュータは、DAA発行者から受け取ったDAA証明書からベース名ポイントを導出し(例えば、図4Dの4070に関連して上述されたように)、次いで604において、ホストコンピュータは、署名されるべきメッセージ及びベース名ポイントを、ホストコンピュータに関連するTPMに提供する(例えば、図4Dの4074に関連して上述されたように)。その関連するTPMに署名されるべきメッセージ及びベース名ポイントを提供することに応じて、ホストコンピュータは、606において、その関連するTPMからの公開鍵値を含むメッセージの署名されたバージョンを受け取る(例えば、図4Eの4092に関連して上述されたように)。次いで、608において、ホストコンピュータは、署名されたメッセージが有効であるか否かを判定する(例えば、図4Eの4094〜4108に関連して上述されたように)。署名されたメッセージが有効である場合、610において、ホストコンピュータは、DAA発行者から受け取ったDAAが有効であると判定する。一方で、署名されたメッセージが無効である場合、612において、ホストコンピュータは、DAA証明書が無効であると判定する。
【0047】
上述されたように、1つの一般的な態様において、DAA証明書は、DAA発行者コンピュータシステムから受け取られる。次いで、ベース名ポイントがDAA証明書から導出される。次いで、メッセージ及びベース名ポイントが、信頼できるプラットフォームモジュールに提供される。また、信頼できるプラットフォームモジュールが署名ルーチンを実行して署名ルーチンへの入力としてベース名ポイントを用いてメッセージに署名することを要求する署名コマンドも、信頼できるプラットフォームモジュールに発行される。その後、信頼できるプラットフォームモジュールにより署名され且つベース名ポイントに関連した公開鍵値を含むメッセージのバージョンが、信頼できるプラットフォームモジュールから受け取られ、信頼できるプラットフォームモジュールにより署名されたメッセージのバージョン及びベース名ポイントに基づいて、DAA証明書が有効であることが判定される。公開鍵値は、コンピュータ可読メモリ(例えば、信頼できるプラットフォームモジュールの外部にある)に格納される。
【0048】
具現化形態は、1つ又は複数の以下の特徴を含むことができる。例えば、格納された公開鍵値は、DAA署名検証手続きにおいてホストコンピュータデバイスからDAA署名検証者コンピュータシステムに伝達されるべきメッセージに署名するために使用されるべき公開鍵値として指定され得る(例えば、DAA証明書が有効であると判定された結果として)。ホストコンピュータデバイスが本物であることを認証するために、DAA署名検証手続きの一部として署名されるべきチャレンジメッセージが、DAA署名検証コンピュータシステムから受け取られることができ、信頼できるプラットフォームモジュールが署名ルーチンを実行して当該チャレンジメッセージに署名することを要求する署名コマンドが、信頼できるプラットフォームモジュールに発行され得る。更に、信頼できるプラットフォームモジュールにより署名されたチャレンジメッセージのバージョンが、信頼できるプラットフォームモジュールから受け取られることができ、格納された公開鍵値が、信頼できるプラットフォームモジュールにより署名されたチャレンジメッセージのバージョンへ組み込まれることができ、信頼できるプラットフォームモジュールにより署名され且つ格納された公開鍵値を組み込むチャレンジメッセージのバージョンが、DAA署名検証コンピュータシステムへ伝達され得る。更に、幾つかの具現化形態において、DAA証明書からベース名ポイントを導出することは、DAA証明書に指定された値に等しいベース名ポイントを設定することを含むことができる。
【0049】
別の一般的な態様において、セキュリティデバイス(例えば、信頼できるプラットフォームモジュール)は、秘密DAA署名鍵を格納し、秘密DAA署名鍵およびベース名ポイントを用いてメッセージに署名するように構成されている。更に、ホストコンピュータデバイスは、DAA証明書を格納し、格納されたDAA証明書からベース名ポイントを導出し、署名されるべきメッセージ及び当該ベース名ポイントをセキュリティデバイスに提供し、セキュリティデバイスから、セキュリティデバイスにより署名され且つベース名ポイントに関連する公開鍵値を含むメッセージのバージョンを受け取り、セキュリティデバイスにより署名されたメッセージのバージョンに基づいて、DAA証明書が有効であることを判定するように構成されている。
【0050】
具現化形態は、1つ又は複数の以下の特徴を含むことができる。例えば、ホストコンピュータデバイスは、ハウジングを含むことができ、信頼できるプラットフォームモジュールは、ホストコンピュータデバイスのハウジング内に収容され得る。更に、ホストコンピュータデバイスは、マザーボードを含むことができ、信頼できるプラットフォームモジュールは、ホストコンピュータデバイスのマザーボードに一体的に結合され得る。更に又は代案として、信頼できるプラットフォームモジュールは、秘密DAA署名鍵のセキュリティを保護する物理的機構を含むことができる。
【0051】
更に別の一般的な態様において、DAA証明書は、直接匿名認証(DAA)発行者コンピュータシステムから受け取られ、ベース名ポイントはDAA証明書から導出され、メッセージ、ベース名ポイント、及び楕円曲線グループメンバーシップポイントが信頼できるプラットフォームモジュールに提供される。また、信頼できるプラットフォームモジュールが署名ルーチンを実行して署名ルーチンへの入力としてベース名ポイント及び楕円曲線グループメンバーシップポイントを用いてメッセージに署名することを要求する署名コマンドも、信頼できるプラットフォームモジュールに発行される。その後、信頼できるプラットフォームモジュールにより署名され且つベース名ポイントに関連した公開鍵値を含むメッセージのバージョンが、信頼できるプラットフォームモジュールから受け取られる。次いで、信頼できるプラットフォームモジュールにより署名されたメッセージのバージョン及びベース名ポイントに基づいて、DAA証明書が有効であることが判定され、当該公開鍵値は、コンピュータ可読メモリに格納される。
【0052】
幾つかの具現化形態において、信頼できるプラットフォームモジュールにより署名されたメッセージのバージョン及びベース名ポイントに基づいて、DAA証明書が有効であることを判定することは、公開鍵値およびベース名ポイントの別個の対数が等しいことを判定することを含むことができる。
【0053】
多数の方法、技術、システム、及び装置が説明された。説明された方法、技術、システム、及び装置は、例えばコンピュータ可読記憶媒体に格納された命令を実行することにより、デジタル電子回路またはコンピュータハードウェアで具現化され得る。
【0054】
これら技術を具現化する装置は、適切な入出力デバイス、コンピュータプロセッサ、及び/又はプロセッサにより実行するための命令を格納する有形のコンピュータ可読記憶媒体を含むことができる。
【0055】
本明細書で開示された技術を具現化するプロセスは、入力データに演算することにより所望の機能を実行して適切な出力を生成するために、有形のコンピュータ可読記憶媒体に格納された命令を実行するプロセッサにより実施され得る。適切なプロセッサには、一例として、汎用マイクロプロセッサ及び専用マイクロプロセッサの双方が含まれる。実行可能な命令を格納するための適切なコンピュータ可読記憶デバイスには、全形態の不揮発性メモリが含まれ、一例として消去可能PROM(EPROM)、電気的消去可能ROM(EEPROM)及びフラッシュメモリデバイスのような半導体メモリデバイス;固定ディスク、フロッピー(登録商標)ディスク、リムーバブルディスクのような磁気ディスク;テープを含む他の磁気媒体;及びコンパクトディスク(CD)又はデジタルビデオディスク(DVD)のような光媒体が含まれる。前述したものの何れかは、特別に設計された特定用途向け集積回路(ASIC)により補われるか、又は当該ASICに組み込まれ得る。
【0056】
幾つかの具現化形態において、開示された技術の動作は特定の順序および/または特定の組み合わせで実行されるものとして本明細書で説明され得るが、個々の動作は、異なる順序で、本明細書で説明された他の動作と組み合わされて、及び/又は除外されて再構成されることができ、依然として所望の結果が達成され得る。同様に、開示されたシステムのコンポーネントは、異なる方式で組み合わせされ得る、及び/又は他のコンポーネントに置き換えられ得る又は他のコンポーネントにより補われることができ、依然として所望の結果が達成され得る。
図1
図2
図3A
図3B
図3C
図3D
図4A
図4B
図4C
図4D
図4E
図5A
図5B
図5C
図6