【文献】
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名)
前記ホストコンピュータデバイスにより実行される場合に、DAA署名検証手続きにおいて前記ホストコンピュータデバイスからDAA署名検証者コンピュータシステムに伝達されるべきメッセージに署名するために使用されるべき公開鍵値として、前記格納された公開鍵値を前記ホストコンピュータデバイスに指定させる命令を更に含む、請求項1に記載の持続性コンピュータ可読媒体。
前記ホストコンピュータデバイスにより実行される場合に、DAA署名検証手続きにおいて前記ホストコンピュータデバイスからDAA署名検証者コンピュータシステムに伝達されるべきメッセージに署名するために使用されるべき公開鍵値として、前記格納された公開鍵値を前記ホストコンピュータデバイスに指定させる命令が、
前記ホストコンピュータデバイスにより実行される場合に、前記DAA証明書が有効であると判定された結果として、DAA署名検証手続きにおいて前記ホストコンピュータデバイスからDAA署名検証者コンピュータシステムに伝達されるべきメッセージに署名するために使用されるべき公開鍵値として、前記格納された公開鍵値を前記ホストコンピュータデバイスに指定させる命令を含む、請求項2に記載の持続性コンピュータ可読媒体。
前記ホストコンピュータデバイスにより実行される場合に、前記ホストコンピュータデバイスに前記メッセージを選択させる命令を更に含む、請求項1に記載の持続性コンピュータ可読媒体。
前記ホストコンピュータデバイスにより実行される場合に、前記ホストコンピュータデバイスに前記メッセージを選択させる命令は、前記ホストコンピュータデバイスに、あらゆるDAA署名検証コンピュータシステムからのあらゆる入力に無関係に前記メッセージを選択させる、請求項6に記載の持続性コンピュータ可読媒体。
前記DAA証明書から前記ベース名ポイントを導出することが、前記DAA証明書に指定された値に等しい前記ベース名ポイントを設定することを含む、請求項1に記載の持続性コンピュータ可読媒体。
前記信頼できるプラットフォームモジュールにより署名された前記メッセージのバージョン及び前記ベース名ポイントに基づいて、前記DAA証明書が有効であることを判定することが、前記公開鍵値および前記ベース名ポイントの別個の対数が等しいことを判定することを含む、請求項14に記載の方法。
【図面の簡単な説明】
【0005】
【
図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
Cを設定する態様を示す流れ
図300である。
図3Aの流れ
図300に示されたプロセスは、DAA方式自体に含まれるDAA発行者(例えば、
図2のDAA発行者102)により実行され得る。更に又は代案として、
図3Aの流れ
図300に示されたプロセスは、信頼できる組織(例えば、信頼できる標準組織)により実行され得る。302において、第1の楕円曲線点P
1が無作為に選択され、304において、第2の楕円曲線点P
2が無作為に選択される。次いで、306において、P
1及びP
2を用いて、
のような十分に大きな素数位数qの3つのグループ
を生成する。次いで、308において、第1のハッシュ関数
が選択され、210において、第2のハッシュ関数
が選択され、ここで、記号{0、1}
*は、任意長の一組の二進列を表す。その後、312において、コミットメントパラメータpar
Cが
として設定される。最後に、314において、コミットメントパラメータpar
Cのサブセットが
として設定される。次いで、par
Tが、TPMにインストールされ得る(例えば、一組のコミットメントパラメータpar
Cの全部の代わりに)。
【0021】
図3Bは、DAA方式に含まれるDAA発行者にDAA発行者パラメータpar
Iを設定する態様を示す流れ
図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
Iが
に設定される。最後に、336において、発行者のパラメータpar
Iが、par
I=(ipk、K
I)に設定される。
【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
Sを設定する態様を示す流れ
図350である。
図3Dの流れ
図350に示されたプロセスは、DAA方式自体に含まれるDAA発行者により実行され得る(例えば、
図1のDAA発行者102)。更に又は代案として、
図3Dの流れ
図350に示されたプロセスは、信頼できる組織(例えば、信頼できる標準組織)により実行され得る。352において、第3のハッシュ関数
が選択され、354において、第4のハッシュ関数
が選択される。次いで、356において、署名および検証パラメータpar
Sが、par
S=(H
3、H
4)に設定される。
【0024】
図3A、
図3B、
図3C及び
図3Dの流れ
図300、320、340及び350に示されたプロセスがそれぞれ実行され、パラメータpar
C、par
I、par
T及びpar
Sが設定された後、これらパラメータは、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
mが無作為に選択され、4004において、TPM406の公開鍵
を用いて、k
mを暗号化して(例えば、IND−CCA(indistinguishability of chosen cipher text attack)暗号化方式を用いて)c
Iを生成する。更に、4006において、ノンスn
Iが長さtの一組の二進列から無作為に選択される。次いで4008において、c
Iとn
Iに基づいたコミットメントチャレンジが生成され、4010において、コミットメントチャレンジがホストコンピュータ404に伝達され、次いで4012において、コミットメントチャレンジがTPM406に伝達される。
【0027】
TPM406はコミットメントチャレンジを受け取り、より詳細に後述されるように、TPM406に格納されたDAAseed値から導出されたDAA秘密鍵に基づいており、且つTPM406及びその関連するホストコンピュータ404がDAA発行者402により信頼されるべきであることをDAA発行者402に示す署名を、DAA発行者402のコミットメントチャレンジに対して戻す。特に、4014において、TPM406は、(DAAseed||K
I||cnt)(即ち、DAAseed、K
I、及びcntの連結(例えば、生成されるべき多数の鍵を示す値))に擬似ランダム関数を適用することにより秘密の楕円曲線DAA(ECDAA)鍵sk
Tを計算する。更に、4016において、TPM406は、その秘密鍵
を用いてコミットメントチャレンジからc
Iを暗号解読してk
mを生成する。次いで、4018において、TPM406は、k
m=⊥であるか否かを検査する。k
m=⊥である場合、プロセスは中止される。代わりに、k
m≠⊥である場合、プロセスは4020へ継続し、ここでTPM406は、sk
Tに楕円曲線点P
1を掛けることにより、TPM406及びその関連するホストコンピュータ404が信頼されるべきであることをDAA発行者402に示す署名Fを計算する。
【0028】
4022において、TPM406が、
から無作為に値μを選択し、4024において、TPMは、μに楕円曲線点P
1を掛けることにより、Uを計算する。ここで
図4Bを参照すると、TPM406は、4026において、DAA発行者402の公開鍵X及びYをコミットメントチャレンジのn
Iと連結させることにより、引き続きstr
1を生成する。更に、4028において、TPM406は、(P
1||F|||U||str
1)にハッシュ関数H
2を適用することによりνを計算する。その後、4030において、TPM406は、ω←μ+ν・sk
T(modq)を計算し、4032において、TPM406は、秘密の署名鍵k
mを用いてメッセージ(P
1||F|||ν||ω)を暗号化するために、MACアルゴリズムを適用することによりγを生成する。次いで、4034において、TPM406は、F、ν、ω、γ、及びn
Iを一緒にパッケージングすることにより、コミットメントを生成し、4036において、TPM406はコミットメントをホストコンピュータ404に伝達する。ホストコンピュータ404はTPM406から当該コミットメントを受け取り、4038において、当該コミットメントをDAA発行者402に伝達する。
【0029】
DAA発行者402は当該コミットメントを受け取り、より詳細に後述されるように、受け取ったコミットメントに基づいて、TPM406及びその関連するホストコンピュータ404が信頼できるコンピュータプラットフォームのグループに属することを検証する。特に、4040において、DAA発行者402は、受け取ったコミットメントからのn
Iがコミットメントチャレンジからのn
Iと同じであるか否かを検査する。
が真である場合、DAA発行者402はプロセスを中止する。一方、
が真でない場合、DAA発行者402は4042へ進み、ここでDAA発行者402は、秘密署名鍵k
mを用いて、メッセージ(P
1||F|||ν||ω)を暗号化するために、MACアルゴリズムを適用することによりγ’を生成する。その後、4044において、DAA発行者402は、γ’がコミットメント内に含まれる値γと同じであるか否かを検査する。γ≠γ’が真である場合、DAA発行者402はプロセスを中止する。γ≠γ’が真でない場合、DAA発行者402は4046へ進み、ここでDAA発行者402は、U’←[ω]P
1−[ν]Fを計算する。
【0030】
ここで、
図4Cを参照すると、4048において、DAA発行者402は、その公開鍵XとYをn
Iと連結させることにより、str
1のそれ自体のバージョンを引き続き生成する。次いで、4050において、DAA発行者402は、ハッシュ関数H
2を(P
1||F|||U’||str
1)に適用することによりν’を計算する。その後、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’
T毎に、DAA発行者402は、受け取ったコミットメントからのFの値が[sk’
T]P
1に一致するか否かを検査する。危険にさらされたことを知られているDAA秘密鍵のRogueListに含まれる任意のDAA秘密鍵sk’
Tについて、F=[sk’
T]P
1が真である場合、DAA発行者402は、TPM406により保持されたDAA秘密鍵が危険にさらされたと判定し、それ故にプロセスを中止する。一方で、RogueListに含まれるDAA秘密鍵sk’
Tの全てについて、F=[sk’
T]P
1が真でない場合、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
1、4060においてB=[ay]P
1、4062においてC=[ax]P
1+[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
1に等しいメンバーシップポイントSを設定する。その後、4074において、ホストコンピュータ404は、J、S、メッセージm、及びhostDigestをTPM406に伝達し、当該メッセージに署名するためにDAA署名プロトコルを実行するようにTPM406に要求する。
【0034】
TPM406は、J、S、メッセージm、及びhostDigestを受け取り、メッセージmに署名するためにDAA署名プロトコルの実行に取りかかる。特に、4076において、TPM406は、sk
TにJを掛けることにより、署名Kを計算する。その後、TPM406は、4078において、
から無作為に値γを選択し、4080においてγにJを掛けることにより値R
1を計算し、4082において、γにSを掛けることにより値R
2を計算する。次いで、TPM406は、4084においてJ、K、R
1及びR
2を連結させることによりstr
2を生成し、4086において(hostDigest||str
2||m)にハッシュ関数H
3を適用することによりhを計算し、4088において、s=γ+h・sk
T(mod
q)を計算する。ここで、
図4Eを参照すると、TPM406は、4090においてK、h及びsを一緒にパッケージングすることにより署名σ
Tを生成し、4092において、署名σ
Tをホストコンピュータ404に伝達する。
【0035】
ホストコンピュータ404が署名σ
Tを受け取り、署名σ
Tを用いて、DAA発行者402から受け取ったDAA証明書が有効であるか否かを判定することに取りかかる。特に、4094において、ホストコンピュータ404は、
であるか否かを検査する。
である場合、ホストコンピュータ404は、DAA発行者402から受け取ったDAA証明書が無効であることを判定し、それ故にプロセスを中止する。一方で、
である場合、ホストコンピュータ404は4096に進み、ここで、ホストコンピュータ404は、
であるか否かを検査する。
である場合、ホストコンピュータ404は、DAA発行者402から受け取ったDAA証明書が無効であると判定し、それ故にプロセスを中止する。一方で、
である場合、ホストコンピュータ404は4098に進み、ここでホストコンピュータ404は、R’
1=[s]J−[h]Kを計算する。
【0036】
更に、4100において、ホストコンピュータ404はR’
2=[s]S−[h]Kを計算し、4102において、ホストコンピュータ404は、c’=hostDigestを設定する。次いで、4104において、ホストコンピュータ404は、J、K、R’
1及びR’
2を連結させることによりstr’を生成し、4106において、(c’||str’||m)にハッシュ関数H
3を適用することによりh’を計算する。その後、4108において、ホストコンピュータ404は、h(署名σ
Tから)がh’と一致するか否かを検査する。h≠h’の場合、ホストコンピュータ404は、DAA発行者402から受け取ったDAA証明書が無効であると判定し、プロセスを中止する。一方で、h=h’の場合、ホストコンピュータ404は、DAA発行者402から受け取ったDAA証明書が有効であると判定し、それ故に4110に進み、ここでホストコンピュータ404は、TPM406により戻された署名σ
Tで受け取られたKの値に等しいランダム化公開鍵の値Dを設定する。その後、4112において、ホストコンピュータ404は、TPM406により保持されたDAA秘密署名鍵sk
Tと関連するDAA証明書として(A、B、C、D)を格納する。
図4A〜
図4Eの流れ
図400に示されたプロセスを完了した後、ホストコンピュータ404及びその関連するTPM406は、DAA署名プロセスの一部としてのDAA検証者に対して、ホストコンピュータ404及びその関連するTPM406が本物であることを認証するために、TPM406により保持されたDAA秘密署名鍵sk
T、及びホストコンピュータ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
1を適用することによりベース名ポイント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
4を実行することにより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
TにJを掛けることにより、署名Kを計算する。その後、TPM504は、5024において、
から無作為に値γを選択し、5026において、γにJを掛けることにより値R
1を計算し、5028においてγにSを掛けることにより値R
2を計算する。次いで、5030において、TPM504は、J、K、R
1及びR
2を連結させることにより、strを生成する。
【0040】
ここで、
図5Bを参照すると、
TPM504は、5032において、(c||str||msg)にハッシュ関数H
3を適用することによりhを計算し、5034において、s=γ+h・sk
T(mod
q)を計算し、5036において、K、h及びsを一緒にパッケージングすることにより署名σ
Tを生成する。その後、5038において、TPM504は、署名σ
Tをホストコンピュータ502に伝達する。
【0041】
ホストコンピュータ502は、署名σ
Tを受け取り、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’
T毎に、DAA検証者506は、DAA署名σからのKの値が[sk’
T]Jに一致するか否かを検査する。危険にさらされたことを知られているDAA秘密鍵のRogueListに含まれる任意のDAA秘密鍵sk’
Tについて、K=[sk’
T]Jが真である場合、DAA検証者506は、TPM504により保持されたDAA秘密鍵が危険にさらされたと判定し、それ故にホストコンピュータ502及びその関連するTPM504が本物であることを認証することを拒否する。一方で、RogueListに含まれるDAA秘密鍵sk’
Tの全てについて、K=[sk’
T]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
1(bsn)であるか否かを検査する。DAA検証者506がJ≠H
1(bsn)であると判定する場合、DAA検証者506は、ホストコンピュータ502及びその関連するTPM504が本物であることを認証することを拒否する。一方で、DAA検証者506がJ=H
1(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’
1=[s]J−[h]Kを計算する。更に、5056において、DAA検証者506は、R’
2=[s]S−[h]Wを計算し、5058において、DAA検証者506は、(R||S||T||W)にハッシュ関数H
4を適用することによりc’を計算する。次いで、DAA検証者506は、5060においてJ、K、R’
1及びR’
2を連結させることによりstr’を生成し、5062において、(c’||str’||msg)にハッシュ関数H
3を適用することにより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】
幾つかの具現化形態において、開示された技術の動作は特定の順序および/または特定の組み合わせで実行されるものとして本明細書で説明され得るが、個々の動作は、異なる順序で、本明細書で説明された他の動作と組み合わされて、及び/又は除外されて再構成されることができ、依然として所望の結果が達成され得る。同様に、開示されたシステムのコンポーネントは、異なる方式で組み合わせされ得る、及び/又は他のコンポーネントに置き換えられ得る又は他のコンポーネントにより補われることができ、依然として所望の結果が達成され得る。