(57)【特許請求の範囲】
【請求項１】
検証者プラットフォームによって実行される、楕円曲線計算を使った匿名認証のための方法であって：
匿名ハードウェア・デバイスが信頼されるメンバーシップ・グループの信頼されるメンバー・デバイスであることの検証を、要求手段によって、匿名ハードウェア・デバイスに要求する段階と；
前記信頼されるメンバーシップ・グループからの公開された暗号情報に基づいて、前記匿名ハードウェア・デバイスからの受信された検証情報を、認証手段によって認証する段階と；
前記匿名ハードウェア・デバイスがまだ前記信頼されるメンバーシップ・グループの信頼されるメンバー・デバイスであることの第一の検証を、検証手段によって、前記匿名ハードウェア・デバイスの秘密署名鍵の秘密メンバー鍵コンポーネントに基づいて行う段階と；
複数の失効させられたメンバー鍵を指定する不正鍵リストを受信する段階と；
前記匿名ハードウェア・デバイスがまだ前記信頼されるメンバーシップ・グループの信頼されるメンバー・デバイスであることの第二の検証を、前記検証手段によって、失効させられたメンバー鍵の前記不正鍵リストに基づいて行う段階であって、前記第二の検証は、前記匿名ハードウェア・デバイスの秘密署名鍵の前記秘密メンバー鍵コンポーネントが、前記不正鍵リスト中の各鍵の処理を通じて前記不正鍵リスト中の前記複数の失効させられたメンバー鍵のいずれかと一致するかどうかの判定を含む、段階とを有し、
前記第一の検証および前記第二の検証は、秘密メンバー鍵や前記匿名ハードウェア・デバイスのいかなる一意的なデバイス識別情報も判別することなく、信頼されるメンバー・デバイスが前記検証者プラットフォームに対して匿名のままであることを可能にするように実行される、
方法。
【請求項２】
請求項１記載の楕円曲線計算を使った匿名認証のための方法であって、前記検証を要求する段階がさらに：
前記匿名ハードウェア・デバイスが前記信頼されるメンバーシップ・グループの信頼されるメンバー・デバイスであることの検証を要求するメッセージを、前記匿名ハードウェア・デバイスに発する段階と；
前記匿名ハードウェア・デバイスからグループ・デジタル署名を受信する段階とを有しており、前記グループ・デジタル署名は、前記発されたメッセージに署名するために該匿名ハードウェア・デバイスの前記秘密署名鍵を使って前記匿名ハードウェア・デバイスによって生成されており、前記秘密署名鍵は前記秘密メンバー鍵および前記匿名ハードウェア・デバイスのグループ・メンバーシップ証明書を含む、
方法。
【請求項３】
請求項１記載の楕円曲線計算を使った匿名認証のための方法であって、前記受信された検証情報を認証する段階がさらに：
前記信頼されるメンバーシップ・グループのグループ公開鍵を同定する段階と；
前記信頼されるメンバーシップ・グループの前記グループ公開鍵に基づいて受信されたグループ・デジタル署名を認証する段階とを有しており、前記グループ・デジタル署名は、前記匿名ハードウェア・デバイスに発されるメッセージに署名するために該匿名ハードウェア・デバイスの前記秘密署名鍵を使って前記匿名ハードウェア・デバイスによって生成されており、前記秘密署名鍵は前記秘密メンバー鍵および前記匿名ハードウェア・デバイスのグループ・メンバーシップ証明書を含む、
方法。
【請求項４】
請求項１記載の楕円曲線計算を使った匿名認証のための方法であって、さらに：
前記匿名ハードウェア・デバイスの前記秘密署名鍵の前記秘密メンバー鍵コンポーネントが、失効させられたメンバー鍵の前記不正鍵リストからのある失効させられた秘密メンバー鍵に一致する場合、前記匿名ハードウェア・デバイスの認証を拒否手段によって拒否する段階を有する、
方法。
【請求項５】
請求項４記載の楕円曲線計算を使った匿名認証のための方法であって、前記認証を拒否する段階がさらに：
前記匿名ハードウェア・デバイスのグループ・デジタル署名が、失効させられたメンバー鍵コンポーネントを有する秘密署名鍵を用いて生成されたものかどうかを判定する段階と；
前記グループ・デジタル署名が失効させられたメンバー鍵を用いて生成されたものである場合、前記匿名ハードウェア・デバイスを信頼されないハードウェア・デバイスとして識別する段階とを有する、
方法。
【請求項６】
請求項４記載の楕円曲線計算を使った匿名認証のための方法であって、前記認証を拒否する段階がさらに：
（ａ）前記不正鍵リストから失効させられたメンバー鍵を選択する段階と；
（ｂ）K≠Bfiであれば前記匿名ハードウェア・デバイスのグループ・デジタル署名の仮名すなわち暗号パラメータKが前記の選択された失効させられたメンバー鍵を用いて生成されたものではないと検証し、ここで、fiは前記の選択された失効させられたメンバー鍵、Bは前記匿名ハードウェア・デバイスのグループ・デジタル署名の暗号パラメータ、iはnを1より大きな整数として1からnまでの整数、Kは前記匿名ハードウェア・デバイスの秘密メンバー鍵をfとしてK＝Bfの形である、段階と；
（ｃ）前記不正鍵リスト中にリストされている失効させられた各メンバー鍵fiについて（ａ）〜（ｂ）を反復する段階と；
（ｄ）前記グループ・デジタル署名が前記不正鍵リストからの失効させられたメンバー鍵を用いて生成されたものである場合、前記匿名ハードウェア・デバイスを信頼されないハードウェア・デバイスとして識別する段階とを有する、
方法。
【請求項７】
発行者プラットフォームによって実行される、楕円曲線計算を使った匿名認証のための方法であって：
前記発行者プラットフォームによって定義される信頼されるメンバーシップ・グループのためのグループ公開鍵／秘密鍵ペアを生成手段によって生成する段階と；
匿名ハードウェア・デバイスが秘密の署名鍵の秘密のメンバー鍵コンポーネントを生成したことを、前記発行者プラットフォームに前記匿名ハードウェア・デバイスの前記秘密のメンバー鍵を開示することなく、検証手段によって検証する段階と；
前記匿名ハードウェア・デバイスに一意的なグループ・メンバーシップ証明書を割り当て手段によって割り当てて、前記匿名ハードウェア・デバイスを前記信頼されるメンバーシップ・グループの信頼されるメンバー・デバイスにし、ここで、前記秘密署名鍵は前記匿名ハードウェア・デバイスの前記秘密メンバー鍵および前記グループ・メンバーシップ証明書を含む、段階と；
前記グループ公開鍵を公開して、検証者が：
前記匿名ハードウェア・デバイスがまだ前記信頼されるメンバーシップ・グループの信頼されるメンバー・デバイスであることの第一の検証を、前記匿名ハードウェア・デバイスの秘密署名鍵の秘密メンバー鍵コンポーネントに基づいて行う段階と；
前記匿名ハードウェア・デバイスがまだ前記信頼されるメンバーシップ・グループの信頼されるメンバー・デバイスであることの第二の検証を、受信手段によって前記検証者によって受信される失効させられたメンバー鍵の不正鍵リストに基づいて行う段階であって、前記第二の検証は、前記匿名ハードウェア・デバイスの秘密署名鍵の前記秘密メンバー鍵コンポーネントが、前記不正鍵リスト中の各鍵の処理を通じて前記不正鍵リスト中の前記複数の失効させられたメンバー鍵のいずれかと一致するものとして暗号的に消去されることの判定を含む、段階とを実行できるようにし、
前記第一の検証および前記第二の検証は、秘密メンバー鍵や前記匿名ハードウェア・デバイスのいかなる一意的なデバイス識別情報も前記検証者が判別することなく、信頼されるメンバー・デバイスが前記検証者に対して匿名のままであることを可能にするように前記検証者によって実行される、
方法。
【請求項８】
請求項７記載の楕円曲線計算を使った匿名認証のための方法であって、前記発行者プラットフォームが、前記信頼されるハードウェア・デバイスの認定役の製造者のプラットフォームである、方法。
【請求項９】
請求項７記載の楕円曲線計算を使った匿名認証のための方法であって、前記検証する段階がさらに：
fを前記秘密メンバー鍵、gを前記グループ公開鍵の暗号パラメータとして、F＝gfの形の仮名Fを受信する段階と；
前記秘密メンバー鍵が前記匿名ハードウェア・デバイス内に記憶されていることを検証するために前記匿名ハードウェア・デバイスから証明を受信する段階とを有し、前記証明がloggFの形の知識の証明を含んでいる、
方法。
【請求項１０】
請求項９記載の楕円曲線計算を使った匿名認証のための方法であって、さらに：
前記発行者プラットフォームの選択手段がランダムな値rを選択する段階と；
前記発行者プラットフォームの計算手段がa＝gr、b＝ayおよびc＝axFrxyを計算する段階とを有し、(x,y)が前記発行者プラットフォームの前記秘密鍵であり、(a,b,c)が前記グループ・メンバーシップ証明書である、
方法。
【請求項１１】
請求項７記載の楕円曲線計算を使った匿名認証のための方法であって、前記グループ・メンバーシップ証明書を割り当てる段階が：
前記発行者プラットフォームの送信手段が、(a,b,c)を前記グループ・メンバーシップ証明書として前記信頼されるメンバー・デバイスのホストに送信して、前記ホストが前記グループ・メンバーシップ証明書(a,b,c)を前記信頼されるメンバー・デバイスに転送できるようにする段階であって、ここで、a＝gr、b＝ayおよびc＝axFrxyであり、(x,y)は前記発行者プラットフォームの前記秘密鍵であり、Fは、fを前記秘密メンバー鍵、gを前記グループ公開鍵の暗号パラメータとして、F＝gfの形の仮名であり、
(f,a,b,c)が前記信頼されるメンバー・デバイスの秘密の署名鍵である、
方法。
【請求項１２】
匿名ハードウェア・デバイスによって実行される、楕円曲線計算を使った匿名認証のための方法であって：
前記匿名ハードウェア・デバイスの署名手段が、検証者から受信されたメッセージに、前記匿名ハードウェア・デバイスの秘密署名鍵を使って署名する段階と；
デジタル署名された、前記匿名ハードウェア・デバイスのグループ・デジタル署名を含むメッセージを送信手段によって前記検証者に送信し、前記検証者が、前記匿名ハードウェア・デバイスが信頼されるメンバーシップ・グループの信頼されるメンバー・デバイスであることを検証するために、前記グループ・デジタル署名を認証することを：
前記匿名ハードウェア・デバイスがまだ前記信頼されるメンバーシップ・グループの信頼されるメンバー・デバイスであることの第一の検証を、前記匿名ハードウェア・デバイスの秘密署名鍵の秘密メンバー鍵コンポーネントに基づいて行う段階；および
前記匿名ハードウェア・デバイスがまだ前記信頼されるメンバーシップ・グループの信頼されるメンバー・デバイスであることの第二の検証を、受信手段によって前記検証者によって受信される失効させられたメンバー鍵の不正鍵リストに基づいて行う段階であって、前記第二の検証は、前記匿名ハードウェア・デバイスの秘密署名鍵の前記秘密メンバー鍵コンポーネントが、前記不正鍵リスト中の各鍵の処理を通じて前記不正鍵リスト中の前記複数の失効させられたメンバー鍵のいずれかと一致するものとして暗号的に消去されることの判定を含む、段階を実行することによって実行できるようにする段階とを有し、
前記第一の検証および前記第二の検証は、秘密メンバー鍵や前記匿名ハードウェア・デバイスのいかなる一意的なデバイス識別情報も前記検証者が判別することなく、信頼されるメンバー・デバイスが前記検証者に対して匿名のままであることを可能にするように前記検証者によって実行される、方法。
【請求項１３】
請求項１２記載の楕円曲線計算を使った匿名認証のための方法であって、署名する段階に先立ち、さらに：
前記匿名ハードウェア・デバイスの前記秘密署名鍵コンポーネントが、失効させられたメンバー鍵の不正鍵リストからの失効させられたメンバー鍵に一致する場合、検証の否定（denial）を受信手段によって受信する段階を有する、
方法。
【請求項１４】
請求項１２記載の楕円曲線計算を使った匿名認証のための方法であって、署名する段階に先立ち、さらに：
認証シード（attestation  seed）に基づいてランダムな秘密の値fを導出手段によって導出する段階と；
gを信頼されるメンバーシップ・グループのグループ公開鍵の暗号パラメータとして、F＝gfの形の値Fを計算手段によって計算する段階と；
前記信頼されるメンバーシップ・グループに加わる要求として、前記信頼されるメンバーシップ・グループの発行者に、値Fを、送る手段によって送る段階と；
秘密メンバー鍵が前記匿名ハードウェア・デバイス内に記憶されていることを検証するために前記発行者に証明を、送る手段によって送り、ここで、前記証明がloggFの形の知識の証明を含んでいる、段階と；
前記発行者が前記知識の証明の正しさを検証した場合、グループ・メンバーシップ証明書(a,b,c)を受信手段によって受信する段階とを有しており、前記ランダムな秘密の値fは前記信頼されるメンバー・デバイスの秘密署名鍵(f,a,b,c)の秘密メンバー鍵コンポーネントであり、該値fは前記グループ公開鍵に基づいて検証され、前記信頼されるメンバー・デバイスがいかなる検証者に対しても匿名のままであることが可能にされる、  
方法。
【請求項１５】
請求項１２記載の楕円曲線計算を使った匿名認証のための方法であって、署名する段階がさらに：
前記匿名のハードウェア・デバイスの信頼プラットフォーム・モジュール（TPM）がベース値Bを選択する段階と；
前記TPMが、fを前記匿名ハードウェア・デバイスの前記秘密メンバー鍵として、K＝Bfの形の仮名Kを計算する段階と；
前記TPMが、前記匿名ハードウェア・デバイスのホストに二つの乱数rおよびr′を送り、それにより前記ホストが、a、bおよびcを前記信頼されるメンバーシップ・グループのグループ・メンバーシップ証明書の暗号パラメータとして、a′＝ar′、b′＝br′およびc′＝cr′rを計算し、XおよびYを前記信頼されるメンバーシップ・グループのグループ公開鍵の暗号パラメータとして、vx＝e(X,a′)、vxy＝e(X,b′)およびvs＝e(g,c′)を計算できるようにする段階とを有しており、ここで、qは素数、GおよびGTは位数qの群として、e:G×G→GTは効率的に計算可能な双線形マップ関数であり、gは群Gの生成元、gTは群GTの生成元である、
方法。
【請求項１６】
請求項１５記載の楕円曲線計算を使った匿名認証のための方法であって、さらに：
前記ホストから(a′,b′,c′,vx,vxy,vs)を受信手段によって受信する段階と；
前記TPMが、riを法qのもとでのrの逆数として、riおよびfを明かすことなく(ri,f)を知っていることの零知識証明をvsri＝vxvxyfおよびK＝Bfとなるように計算する段階と；
知っていることの前記例知識証明をΣで示すとして、(a′,b′,c′,B,K,Σ)を前記匿名ハードウェア・デバイスのデジタル署名として前記検証者に、送る手段によって送る段階とを有し、
方法。
【請求項１７】
装置であって、
発行者によって当該装置に割り当てられた秘密署名鍵を記憶するフラッシュ・メモリと；
信頼プラットフォーム・モジュール（TPM）とを有しており、前記信頼プラットフォーム・モジュールは、検証者から受信したメッセージに前記秘密署名鍵を使って署名し、デジタル署名された、当該装置のグループ・デジタル署名を含むメッセージを前記検証者に送信することにより、前記検証者が、当該装置が信頼されるメンバーシップ・グループの信頼されるメンバー・デバイスであることを検証するために前記グループ・デジタル署名を認証することを、当該装置が前記デジタル署名されたメッセージを送信するのに応答して：
当該装置がまだ前記信頼されるメンバーシップ・グループの信頼されるメンバー・デバイスであることの第一の検証を、当該装置の秘密署名鍵の秘密メンバー鍵コンポーネントに基づいて検証手段によって行う段階；および
当該装置がまだ前記信頼されるメンバーシップ・グループの信頼されるメンバー・デバイスであることの第二の検証を、前記検証者によって受信される失効させられたメンバー鍵の不正鍵リストに基づいて前記検証手段によって行う段階であって、前記第二の検証は、当該の秘密署名鍵の前記秘密メンバー鍵コンポーネントが、前記不正鍵リスト中の各鍵の処理を通じて前記不正鍵リスト中の前記複数の失効させられたメンバー鍵のいずれかと一致するものとして暗号的に消去されることの判定を含む、段階を実行することによって実行できるようにし、
前記第一の検証および前記第二の検証は、前記検証者が秘密メンバー鍵や当該装置のいかなる一意的なデバイス識別情報も前記検証者が判別することなく、信頼されるメンバー・デバイスが前記検証者に対して匿名のままであることを可能にするように前記検証者によって実行される、
装置。
【請求項１８】
前記TPMを含む集積回路を有する身分証明カードである、請求項１７記載の装置。
【請求項１９】
前記身分証明カードが都道府県の運転免許証であり、前記発行者が州の都道府県の公安委員会である、請求項１８記載の装置。
【請求項２０】
ネットワークに結合された検証者プラットフォームと；
前記ネットワークに結合された匿名証明者プラットフォームとを有するシステムであって、前記匿名証明者プラットフォームは：
バスと、
前記バスに結合されたプロセッサと、
前記バスに結合された、信頼プラットフォーム・モジュールを含むチップセットとを有しており、前記信頼プラットフォーム・モジュールは、前記検証者プラットフォームから受信したメッセージに前記証明者プラットフォームの秘密署名鍵を使って署名し、デジタル署名された、前記証明者プラットフォームのグループ・デジタル署名を含むメッセージを前記検証者プラットフォームに送信し、前記検証者プラットフォームが、前記匿名証明者プラットフォームが信頼されるメンバーシップ・グループの信頼されるメンバー・デバイスであることを検証するために、前記グループ・デジタル署名を認証できるようにし、
前記検証者プラットフォームは、前記証明者プラットフォームがまだ前記信頼されるメンバーシップ・グループの信頼されるメンバー・デバイスであることの第一の検証を、前記証明者プラットフォームの秘密署名鍵の秘密メンバー鍵コンポーネントに基づいて検証手段によって行うよう構成されており；
前記検証者プラットフォームは、前記証明者プラットフォームがまだ前記信頼されるメンバーシップ・グループの信頼されるメンバー・デバイスであることの第二の検証を、前記検証者プラットフォームによって受信される失効させられたメンバー鍵の不正鍵リストに基づいて前記検証手段によって行うよう構成されており、前記第二の検証は、前記証明者プラットフォームの秘密署名鍵の前記秘密メンバー鍵コンポーネントが、前記不正鍵リスト中の各鍵の処理を通じて前記不正鍵リスト中の前記複数の失効させられたメンバー鍵のいずれかと一致するものとして暗号的に消去されることの判定を含み、
前記第一の検証および前記第二の検証は、秘密メンバー鍵や前記証明者プラットフォームのいかなる一意的なデバイス識別情報も前記検証者プラットフォームが判別することなく、信頼されるメンバー・デバイスが前記検証者プラットフォームに対して匿名のままであることを可能にするように実行される、
システム。
【請求項２１】
前記検証者プラットフォームが：
前記証明者プラットフォームの前記グループ・デジタル署名が失効させられたメンバー鍵を用いて生成されたものかどうかを判定し、前記グループ・デジタル署名が失効させられたメンバー鍵を用いて生成されたものである場合、前記証明者プラットフォームを信頼されないハードウェア・デバイスとして識別する認証論理を有する、
請求項２０記載のシステム。
【請求項２２】
秘密メンバー鍵や前記匿名証明者プラットフォームのいかなる一意的なデバイス識別情報も開示することなく、信頼されるメンバー・デバイスが前記検証者プラットフォームに対して匿名のままであることを可能にするように、前記証明者プラットフォームの前記秘密メンバー鍵が、失効させられたメンバー鍵の不正鍵リストからのいかなる失効させられた秘密メンバー鍵にも一致しない場合、前記証明者プラットフォームが前記検証者プラットフォームから失効の否定（denial）を受信する、請求項２０記載のシステム。
【請求項２３】
前記証明者プラットフォームが：
所定のシード値に基づいて秘密のメンバー鍵fを生成する鍵論理と；
前記証明者プラットフォームのグループ・メンバーシップ証明書(a,b,c)を受け取るために暗号パラメータを計算する加入論理とを有しており、前記証明者プラットフォームの前記秘密署名鍵(f,a,b,c)は前記秘密のメンバー鍵fおよび前記証明者プラットフォームの前記グループ・メンバーシップ証明書の暗号パラメータ(a,b,c)を含む、
請求項２０記載のシステム。
【請求項２４】
前記チップセットがグラフィック・コントローラを有する、請求項２０記載のシステム。
【請求項２５】
前記ネットワークが広域ネットワークを含む、請求項２０記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の一つまたは複数の実施形態は、概括的には暗号の分野に関する。より詳細には、本発明の一つまたは複数の実施形態は、双線形マップからの直接匿名認証（direct  anonymous  attestation）のための方法および装置に関する。
【背景技術】
【０００２】
多くの現代の通信システムにとって、交換される情報の信頼性および安全性は重大な関心事である。この関心事に取り組むため、信頼コンピューティング・プラットフォーム連盟（TCPA:  Trusted  Computing  Platform  Alliance）は諸プラットフォームのためのセキュリティ・ソリューションを開発した。2002年2月22日またはその前後に公表された“Main  Specification  Version  1.1b”と題するTCPA規格によれば、各パーソナル・コンピュータ（PC）は信頼プラットフォーム・モジュール（TPM:  Trusted  Platform  Module）と称される信頼されるハードウェア・デバイスを実装される。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
動作の際、外部当事者（「検証者」と称される）がTPMの認証を要求しうる。これは対立する二つのセキュリティ上の懸念を生み出す。第一に、検証者は、要求された認証情報が本当に有効なTPMから来ていることを確信する必要がある。第二に、TPMを含んでいるPCの所有者は、できるだけプライバシーを維持したい。特に、PCの所有者は、異なる複数の検証者に認証情報を提供しつつ、それらの検証者がその認証情報が同じTPMから来ていることを判別できないようにしたい。
【０００４】
2005年のREAL  ID法は、2005年の防衛、テロに対する世界的戦争および津波救援のための緊急補正予算法（Emergency  Supplemental  Appropriations  Act  for  Defense,  the  Global  War  on  Terror,  and  Tsunami  Relief,  2005）と題する米国議会法Pub.  L.  No.  109-13,  119  Stat.  231（2005年5月11日）の第B部である。2005年のREAL  ID法は、州の運転免許証の発行のための標準を創り出すものである。REAL  ID法は、連邦の技術標準および検証手順を州の運転免許証および身分証明カードに課す法律であり、その多くは連邦政府の現在の能力を超えるものであるが、2008年5月までに州が準拠することを義務づけている。州の運転免許証にREAL  ID法を実装する一つの試みは、一般に、カード保有者のプライバシー上機微な情報を曝露する。残念ながら、そのようなセキュリティ情報はしばしば所有者の同意なしに売却され、所有者の名において所有者の同意なしに詐欺的な行為を行うために使われる。そのような活動は、一般にID窃盗として知られる広く蔓延した現象であり、日々、罪のない被害者の信用を破壊している。
【０００５】
本発明のさまざまな実施形態は、付属の図面において限定ではなく例として示されている。
【課題を解決するための手段】
【０００６】
双線形マップからの直接匿名認証のための方法および装置が記載される。ある実施形態では、本方法は、発行者によって定義される信頼されるメンバーシップ・グループのための公開鍵／秘密鍵ペアの生成と、前記発行者によって定義された信頼されるメンバーシップ・グループの少なくとも一つの匿名メンバー・デバイスに一意的な秘密署名鍵を割り当てることとを含む。ある実施形態では、前記割り当てられた署名鍵を使って、メンバーは、認証要求として受信されたメッセージに署名してグループ・デジタル署名を形成しうる。ある実施形態では、メンバーのグループ・デジタル署名は、信頼されるメンバーシップ・グループの公開鍵を使って検証できる。結果として、グループ・デジタル署名の検証者は、そのメンバーが信頼されるメンバーシップ・グループの実際の（信頼される）メンバーであることの認証を、そのメンバーのいかなる一意的な識別情報や一意的な秘密もしくは公開メンバー鍵の開示も要求することなく行うことができ、信頼されるメンバー・デバイスが検証者に対して匿名のままであることを可能にする。
【０００７】
ある実施形態では、匿名ハードウェア・デバイスが、発行者との認定（certification）（加入）手順に携わって、信頼されるメンバーシップ・グループのメンバーになるための秘密の（秘密）署名鍵を形成する。ある実施形態では、メンバー・デバイスは、その秘密署名鍵でメッセージにデジタル署名するための信頼プラットフォーム・モジュール（TPM）を含む。ある実施形態のためには、TPMが秘密署名鍵を形成し、メッセージにデジタル署名する機能性は、ファームウェアとして展開される。しかしながら、そのような機能性が専用のハードウェアまたはソフトウェアとして展開されてもよいことが考えられている。前記ファームウェアまたはソフトウェアを形成する命令またはコードは、機械可読媒体上に記憶される。
【０００８】
ここで、「機械可読媒体」は、これに限られないが、フロッピー（登録商標）・ディスケット、ハードディスク、光ディスク（たとえばCD-ROM、DVD、ミニDVDなど）、光磁気ディスク、読み出し専用メモリ（ROM）、ランダムアクセスメモリ（RAM）、任意の型のプログラム可能な読み出し専用メモリ（たとえば、プログラム可能な読み出し専用メモリ「PROM」、消去可能なプログラム可能な読み出し専用メモリ「EPROM」、電気的に消去可能なプログラム可能な読み出し専用メモリ「EEPROM」またはフラッシュ）といった半導体メモリ、磁気もしくは光カードなどを含みうる。信号そのものおよび／または通信リンクが機械可読媒体とみなせることが考えられている。ソフトウェアは、ダウンロードされた信号の一部として、あるいは通信リンクを通じた伝搬の間、一時的に記憶されうるからである。
【発明を実施するための最良の形態】
【０００９】
以下の記述では、本発明の一つまたは複数の実施形態のある種の特徴を記述するためにある種の用語が用いられる。たとえば、「プラットフォーム（platform）」は、情報を送受信するよう適応されている任意の型の通信デバイスとして定義される。さまざまなプラットフォームの例は、これに限られたり制約されたりしないが、コンピュータ、携帯情報端末、携帯電話、セットトップボックス、ファクシミリ機、プリンタ、モデム、ルータ、スマート・カード、USBトークン、身分証明カード、運転免許証、クレジットカードまたは集積回路を含む他の同様の形状因子デバイスなどを含む。「通信リンク（communication  link）」は、プラットフォームに適合された一つまたは複数の情報搬送媒体として広く定義される。さまざまな型の通信リンクの例は、これに限られたり制約されたりしないが、電気ワイヤ（単数または複数）、光ファイバー（単数または複数）、ケーブル（単数または複数）、バス・トレース（単数または複数）または無線信号伝送技術を含む。
【００１０】
「検証者（verifier）」は、他のエンティティからの、真正性または権限の何らかの検証を要求する任意のエンティティ（entity）（たとえば、人物、プラットフォーム、システム、ソフトウェアおよび／またはデバイス）をいう。通常、これは要求される情報を開示または提供するのに先立って実行される。「証明者（prover）」は、その権限、有効性および／または素性（identity）の何らかの証明を提供することを要求された任意のエンティティをいう。「証明者」は、その証明者が、秘密署名鍵（private  signature  key）を使ってメッセージに署名することによって認証要求に応答するときは、「署名者（signer）」と称されてもよい。「発行者（issuer）」は、信頼されるメンバーシップ・グループを定義し、その信頼されるメンバーシップ・グループに加入しようとする諸ハードウェア・デバイスと連携する。「デバイス製造者（device  manufacturer）」は「認定役の製造者（certifying  manufacturer）」と交換可能に使われることがあるが、プラットフォームまたはデバイス（たとえば信頼プラットフォーム・モジュール）を製造または設定する任意のエンティティをいう。発行者がデバイス製造者／認定役の製造者であってもよい。
【００１１】
ここでの用法では、証明者が何らかの暗号情報（たとえば署名鍵、秘密鍵など）の知識を有していることを検証者に「証明する」または「確信させる」とは、検証者に開示される情報および証明（proof）に基づいて、証明者がその暗号情報を有している高い確率があるということを意味する。このことを、その暗号情報を検証者に「明かし」たり「開示」したりすることなく証明するため、検証者にとって、その暗号情報を決定することは計算量的に実行不可能とする。そのような証明は以下では直接証明（direct  proof）と称される。
【００１２】
以下に論じられるさまざまな実施形態の説明および例示を通じて、係数、変数および他の記号（たとえば、「h」）は同じラベルまたは名前で参照される。したがって、ある記号が式の異なる部分に、あるいは異なる式や機能説明に現れる場合、同じ記号が参照される。
【００１３】
図１は、ある実施形態に基づく信頼ハードウェア・デバイス（「信頼プラットフォーム・モジュール」または「TPM」と称される）を実装されたプラットフォームを有するシステム１００を示している。第一のプラットフォーム１０２（検証者）が第二のプラットフォーム２００（証明者）にネットワーク１２０を通じて認証要求１０６を送信する。要求１０６に応答して、第二のプラットフォーム２００は、認証情報１０８を提供する。ある実施形態では、ネットワーク１２０は構内ネットワークもしくは広域ネットワークおよび／または企業のイントラネット、インターネットもしくは他の同様のネットワークのような従来式のネットワーク・インフラストラクチャーをの一部をなす。
【００１４】
追加的に、セキュリティ向上のため、第一のプラットフォーム１０２は、証明者プラットフォーム２００が選択されたデバイス製造者または選択されたデバイス製造者グループのいずれか（以下では「デバイス製造者（単数または複数）（発行者１１０）」と称されることがある）によって製造されていることを検証する必要があってもよい。ある実施形態では、第一のプラットフォーム１０２は第二のプラットフォーム２００に、発行者１１０によって生成された暗号情報（たとえば秘密署名鍵）を有していることを示すようチャレンジする。第二のプラットフォーム２００は、そのチャレンジに対して返答の形で認証情報を提供することによって返答し、それにより、第一のプラットフォーム１０２に、第二のプラットフォーム２００が発行者１１０によって生成された暗号情報を有していることを、その暗号情報や本稿で「一意的なデバイス識別情報」と称される何らかのデバイス／プラットフォーム識別情報を明かすことなく、確信させる。それにより、信頼されるメンバー・デバイスは検証者に対して匿名のままであることができる。
【００１５】
図２は、TPM２２０を含む匿名プラットフォーム２００のある実施形態をさらに図解するブロック図である。TPM２２０は、TPM２２０と同じグループにあるTPMすべてに共通のグループ・メンバーシップ証明書（group  membership  certificate）と、そのグループ・メンバーシップ証明書を使って検証できるデジタル署名を提供するための秘密メモリ鍵とを有する。ある実施形態では、プラットフォーム２００と組み合わさっているTPM２２０は、プラットフォーム２００が発行者１１０（たとえばデバイス製造者）によって定義された信頼されるメンバーシップ・グループのメンバーであることを検証者に証明するための認証情報を、秘密一意的署名鍵（private  unique  signature  key）２３０を使って生成する。そのような証明は、前記秘密一意的署名鍵を含むいかなる一意的なデバイス識別情報（unique  device  identification  information）の開示もなしに行われ、信頼されるプラットフォーム２００が検証者１０２（図１）に対して匿名のままであることを可能にするものである。代表例として、コンピュータ・システム２００は、プロセッサ（CPU）２０２とチップセット２１０との間で情報を通信するためのプロセッサ・システム・バス（フロント・サイド・バス（FSB））２０４を有する。ここで記載するところでは、用語「チップセット」は、所望のシステム機能を実行するためにCPU２０２に結合されているさまざまなデバイスを総称的に記述するように用いられる。
【００１６】
代表例として、グラフィック・ブロック２１８ならびにハードドライブ装置（HDD）２１４およびメイン・メモリ２１２がチップセット２１０に結合されている。ある実施形態では、グラフィック・ブロック２１８がグラフィック・チップセットを有している。あるいは代替的に、チップセット２１０がグラフィック・ブロック２１８を組み込んでいて、グラフィック・メモリ・コントローラ・ハブ（GMCH:  graphics  memory  controller  hub）として機能してもよい。ある実施形態では、チップセット２１０は、メモリ・コントローラおよび／またはI/Oデバイス２１６（２１６−１、…、２１６−N）と通信するための入出力（I/O）コントローラを含むよう構成される。ある実施形態では、メイン・メモリ２１２は、これに限られないが、ランダムアクセスメモリ（RAM）、動的RAM（DRAM）、静的RAM（SRAM）、同期DRAM（SDRAM）、倍速データレート（DDR）SDRAM（DDR-SDRAM）、ランバスDRAM（RDRAM）またはデータの高速バッファリングをサポートできる任意のデバイスを含みうる。
【００１７】
図３は、ある実施形態に基づく第二のプラットフォーム２００の信頼プラットフォーム・モジュール（TPM）２２０をさらに図解している。TPM２２０は、デバイス製造者によって製造される暗号デバイスである。ある実施形態では、TPM２２０は、パッケージ内にカプセル化された少量のオンチップ・メモリをもつプロセッサ・ユニット２２２を有する。ある実施形態では、カプセル化されたメモリは、発行者１１０との加入手順の間に生成された秘密一意的メンバーシップ鍵２３０を記憶するために使用されてもよい。TPM２２０は、第一のプラットフォーム１０２に認証情報を提供するよう構成される。その認証情報は、第一のプラットフォーム１０２がその認証情報が有効なTPMから送信されていることを判別できるようにするものである。使用される認証情報は、TPMの、あるいは第二のプラットフォームの素性が判別できることをきわめてありそうにする、ランダム化されたデータである。
【００１８】
ある実施形態では、TPM２２０はさらに、暗号情報の記憶を許容するために不揮発性メモリ２２４（たとえばフラッシュ）を有する。暗号情報（cryptographic  information）は次のうちの一つまたは複数のようなものである：鍵、ハッシュ値、署名、証明書など。ある実施形態では、暗号情報は、たとえば認定役の製造者のような発行者１１０から受信される秘密署名鍵である。のちに示すように、「X」のハッシュ値は「Hash(X)」と表されることができる。もちろん、そのような情報がフラッシュ・メモリ２２４の代わりにプラットフォーム２００の外部メモリ２８０内に記憶されてもよいことが考えられている。暗号情報は、特にTPM２２０の外部に記憶される場合、暗号化されてもよい。
【００１９】
ある実施形態では、TPM２２０は、検証者プラットフォームからの認証要求に応答するための認証論理（authentication  logic）２４０を含む。ある実施形態では、認証論理２４０は、受信されたメッセージに従って、秘密署名鍵２３０を使ってデジタル署名を計算する。これは、いかなる一意的なデバイス／プラットフォーム識別情報をも明かすことなく、TPM２２０が信頼されるメンバーシップ・グループの発行者によって生成された暗号情報を記憶していることを検証者プラットフォームに確信させる、すなわち証明するためである。結果として、認証論理２４０は、プラットフォーム２００の匿名性を維持するよう証明者プラットフォームの素性を保護しながら、要求された認証を実行する。認証論理２４０は、図４を参照してさらに図解される。
【００２０】
ある実施形態では、認定論理（certification  logic）２５０は、秘密署名鍵２３０の発行者との1ラウンドの認定手順の間に秘密署名鍵２３０を形成する。ある実施形態では、署名論理２６０が、検証者からの認証要求の一部として受信されたメッセージに署名してもよい。代表例として、失効鍵論理２７０は、プラットフォーム２００が保持している秘密署名鍵２３０の秘密メンバー鍵コンポーネントが失効させられた（危殆化された）秘密メンバー鍵でないことを検証者プラットフォームに確信させる、すなわち証明する。ある代替的な実施形態では、秘密署名鍵が失効させられた署名鍵ではないことの検証は、検証者によって実行される。実装によっては、上記よりも設備の少ないまたは多いコンピュータが望ましいことがありうることは理解される。
【００２１】
ある実施形態では、信頼されるメンバーシップ・グループのメンバーである各ハードウェア・デバイスは、発行者によって一意的な秘密署名鍵を割り当てられる。代表例として、割り当てられた秘密署名鍵を有する信頼されるメンバー・デバイスは、検証者からの認証要求の一部として受信されるメッセージに署名することができる。しかしながら、伝統的なデジタル署名システムとは対照的に、メンバー・デバイスの一意的な秘密署名鍵を用いて生成されたグループ・デジタル署名の検証は、発行者によって定義された信頼されるメンバーシップ・グループについてのグループ公開鍵を使って検証される。信頼されるメンバーシップ・グループのメンバー・デバイスは、その秘密署名鍵を使って、一意的なデバイス識別情報の開示を、そのデバイスが信頼されるハードウェア・デバイスの信頼されるメンバーシップ・グループのメンバーであることを示す情報に限定する。それは認定役の製造者によって定義されてもよい。
【００２２】
ある実施形態では、認証論理２４０は、あるグループのメンバーであることを自らの素性についていかなる情報も明かすことなく証明することを可能にする。あるグループのメンバーは、そのグループにおけるメンバーシップを証明するために使用されうるクレデンシャル（「グループ・メンバーシップ証明書」）を有する。ある実施形態では、クレデンシャル（credential）は、秘密メンバー鍵（private  member  key）およびグループ・メンバーシップ証明書からなる。該秘密署名鍵は、そのグループのあらゆる異なるメンバーについて一意的であり、各メンバーは自分の秘密メンバー鍵として、発行者に知られていない秘密の乱数を選択する。しかしながら、信頼されるメンバーシップ・グループのグループ公開鍵は、グループの全メンバーについて同じである。
【００２３】
ここで記載されるところでは、発行者１１０のような発行者は、ある人物（またはエンティティ）があるグループのメンバーであることを確立し、次いでそのメンバーにクレデンシャルを発行するエンティティである。そのクレデンシャルが、そのメンバーの秘密署名鍵を形成するために使われる。ここでさらに記載されるところでは、証明者は、そのグループにおけるメンバーシップを証明しようとしている人物またはエンティティである。証明者が本当にそのグループにおけるメンバーであり、有効なクレデンシャルをもっていれば、証明は成功するはずである。ここでさらに記載されるところでは、検証者は、証明者がそのグループのメンバーであるか否かを確立しようとしているエンティティである。よって、証明者は、メンバーシップを、検証者に対して証明しようとしている。
【００２４】
図４に示されるように、メンバーシップを証明するために、検証者は、証明者がたとえばデジタル署名論理２６０において何らかのメッセージにデジタル署名することを要求する。検証者が、そのメッセージが現時点で署名されたことを知る必要がある場合には、検証者は、署名に含めるために証明者に与えられる乱数（ノンス）を生成する。証明者は、秘密署名鍵を使ってメッセージに署名し、署名を検証者に送る。ここで記載されるところでは、そのような署名は、信頼されるメンバーシップ・グループの公開されたグループ公開鍵を用いて検証されるので、グループ・デジタル署名（group  digital  signature）と称される。
【００２５】
ある実施形態では、検証者は、グループ公開鍵を使って署名を検証できる。検証が成功すれば、検証者は証明者が信頼されるグループのメンバーであることを知る。ノンスが使われた場合、検証者は、グループ署名が生成されのが、自分がノンスを送った時点と署名が受信された時点の間であったことを知る。よって、検証者は、どのメンバーがそのグループ・デジタル署名を生成したかを知ることはない。よって、グループの信頼されるメンバーの匿名性が維持される。
【００２６】
ある実施形態では、TPM２２０は、PCMCIAスロットへの挿入のためのPCMCIAカードの形状因子（form  factor）を含むスマート・カードに組み込まれてもよいし、あるいは運転免許証、身分証明カード、クレジットカードまたは標準的な運転免許証／クレジットカードの形状因子をもち、ここに記載される一つまたは複数の暗号手順を実行するための集積回路を含む他の同様の構成といった身分証明デバイス上に組み込まれてもよい。しかしながら、ある種の暗号機能は、プラットフォーム２００のような取り付けられたホスト（host）によって計算されてもよいことは認識しておくべきである。そのような構成によれば、たとえば運転免許証上でのTPM２２０の使用は、プライバシー上機微な情報の開示なしに、前述した2005年のREAL  ID法の準拠を可能にするであろう。
【００２７】
そのような構成によれば、陸運局（Department  of  Motor  Vehicles）すなわちDMVが発行者であり、グループ公開鍵（group  public  key）およびグループ発行秘密鍵（group  issuing  private  key）を生成するためのセットアップ手順に携わる。発行者は公開鍵を公開し、グループ発行秘密鍵を秘密に保つ。そのような手順によれば、それぞれの発行された運転免許証について、発行者に知られていない秘密メンバー鍵コンポーネント（private  member  key  component）を含む、発行者からのユーザー秘密署名鍵を提供する一般手順（general  procedure）が従われる。したがって、ユーザー秘密署名鍵は、グループ公開鍵と併せて、ユーザーのこのグループのためのクレデンシャルである。
【００２８】
そのような実施形態によれば、TPM２２０および図４に示されるような認証論理が、標準的な運転免許証、クレジットカードまたは銀行の機械などを利用するための他の同様のスマートカード・デバイスの形状因子をもつカード上に組み込まれるとき、そのカードの保有者は、そのカードの所有者が失効させられたメンバーではないことを、たとえば発行者（DMV）が危殆化された秘密鍵のコピーをもつことを要求することなく証明する、検証手順に従事できる。
【００２９】
図５は、ある実施形態に基づく信頼されるメンバーシップ・グループ公開鍵を形成する方法４００を図解するフローチャートである。「信頼されるメンバーシップ・グループ」は、発行者によって、一つまたは複数の型のプラットフォームまたはデバイスを含むよう定義されうる。たとえば、信頼されるメンバーシップ・グループは、グループ公開鍵のようなセキュリティ関連情報の共通要素をもつすべてのプラットフォーム（メンバー）の集合であってもよい。このセキュリティ関連情報は、特定のプラットフォームまたはデバイスの製造者およびモデル番号を含むことができる。各信頼されるメンバーシップ・グループについて、発行者は、その信頼されるメンバーシップ・グループのために使われる暗号パラメータ（cryptographic  parameter）を生成する。発行者は、加入手順の間に秘密署名鍵を生成する。この秘密署名鍵は、メンバー・デバイス（たとえばプラットフォーム２００またはTPM２２０）が検証者に該デバイスが信頼されるメンバーシップ・グループのメンバーであることを確信させるために、受信したメッセージに署名するのに使われるものである。
【００３０】
ある実施形態では、発行者は、少なくとも一つの信頼されるハードウェア・デバイスをメンバー・デバイスとして含む信頼されるメンバーシップ・グループを生成する（ブロック３１０）。ある実施形態では、発行者は、公開鍵暗号機能（たとえば、楕円曲線暗号法）を利用してグループ公開鍵／秘密鍵ペアを生成する。これは、Bruce  SchneierによるApplied  Cryptography,  John  Wiley  &  Sons;  ISBN:0471117099；第2版（1999）に記載されるようなよく知られた諸方法を使って生成できる。
【００３１】
発行者は、公開パラメータ、その信頼されるメンバーシップ・グループのセキュリティ関連情報を含む、グループ・メンバーシップ証明書を生成する。ひとたびプラットフォーム・グループ公開鍵／秘密鍵が生成されると、信頼されるグループの各メンバー・デバイスの認定手順が実行される（ブロック３５０）。認定プロセスの一部として、発行者は、信頼されるグループのメンバーまたはデバイスに、グループ・メンバーシップ証明書を提供する。証明者（たとえば図１の第二のプラットフォーム２００）からの検証者への、グループ・メンバーシップ証明書に関連する暗号パラメータの配布は、いくつかの方法で達成されうる。しかしながら、これらの暗号パラメータは、そのグループ・メンバーシップ証明書が発行者によって生成されたことを検証者が確信させられるような仕方で検証者に配布されるべきである。
【００３２】
たとえば、一つの受け容れられている方法は、パラメータを直接、検証者に配布することによる。もう一つの受け容れられている方法は、認定機関（certifying  authority）、一例としては発行者によって署名されたグループ・メンバーシップ証明書を配布することによる。この後者の方法では、認定機関の公開鍵が検証者に配布されているべきであり、署名されたグループ・メンバーシップ証明書は信頼されるグループ内の各メンバー（証明者プラットフォーム）に与えられることができる。すると証明者プラットフォームは、署名されたグループ・メンバーシップ証明書を検証者に提供できる。
【００３３】
図６は、ある実施形態に基づく、図５の処理ブロック３２０の、一つまたは複数の公開パラメータを含む、そのプラットフォーム・グループのためのグループ公開鍵／秘密鍵ペアを生成するための方法３２２を図解するフローチャートである。公開鍵／秘密鍵ペアおよびプラットフォーム・グループのためのプラットフォーム・パラメータの生成は、メンバー・デバイスが、いかなる一意的なデバイス識別情報も明かすことなく、自らを信頼されるメンバー・デバイスであると身分証明することを可能にする。ある実施形態では、図６を参照して記述されるグループ公開パラメータの生成は、ここではセットアップ・プロトコルと称される。
【００３４】
ある実施形態では、前記セットアップ・プロトコルは、発行者によって定義される信頼されるグループの各メンバー・デバイスについて一意的な秘密署名鍵を生成するために、公開鍵／秘密鍵ペアおよびメンバー・デバイスを認定するために製造者が必要とするその他の暗号パラメータを生成するために、ハードウェア製造者（発行者）によって使われる。
【００３５】
再び図６を参照すると、処理ブロック３２４において、発行者は(q,G,g,GT,gT,e)を生成する。ここで、qは素数、GおよびGTは位数qの群（group）、e:G×G→GTは効率的に計算可能な双線形マップ（bilinear  map）関数、gは群Gの生成元、gTは群GTの生成元である。ある実施形態では、秘密署名鍵を使ってグループ・デジタル署名が生成され、双線形マップに基づく認証を可能にする。たとえば、素数位数qをもつ二つの群G＝〈g〉およびGT＝〈gT〉があるとする。縮退していない効率的に計算可能な双線形マップe、e:G×G→GTは次のように定義される関数である：
１．すべてのP,Q∈Gについて、すべてのa,b∈Zについて、e(Pa,Qb)＝e(P,Q)ab。
２．e(P,Q)≠1となる何らかのP,Q∈Gが存在する。ここで、1はGTの単位元である。
３．eを計算するための効率的なアルゴリズムが存在する。
【００３６】
再び図６を参照すると、処理ブロック３２６において、発行者は乱数値xおよびyを選択する。ひとたびxおよびyが選択されると、処理ブロック３２８において、発行者はX＝gxおよびY＝gyを計算する。処理ブロック３３０において、グループ公開鍵は(q,G,g,GT,gT,e,X,Y)であり、発行者のための秘密鍵は、発行者によって出力される(x,y)である。ある実施形態では、プラットフォーム・パラメータxおよびyのランダム選択は、ランダムなシード値を選び出し、擬似乱数発生器を用いて値xおよびyを生成することによって実行される。ある実施形態では、発行者の秘密の鍵は(x,y)である。
【００３７】
ひとたびプラットフォーム・グループ公開鍵／秘密鍵が形成されると、発行者は、加入手順に従ってプラットフォーム・グループの各メンバーを認定しうる。これについては図７を参照しつつさらに解説する。代表例として、図７は、ある実施形態に基づく、図５の処理ブロック３５０の、定義された信頼されるメンバーシップ・グループのメンバー・デバイスを認定するための方法３５２を図解するフローチャートである。
【００３８】
代表例として、プラットフォームは、グループに加入するために発行者と対話する。処理ブロック３５４において、TPMが、発行者には明かされないそのDAAシードから秘密メンバー鍵fを導出し、F＝gfと設定する。処理ブロック３５６では、TPMがFを発行者に送り、発行者に対してloggFを知っていることを証明する。処理ブロック３５８において、発行者がTPMによって実行された知識の証明を検証する。処理ブロック３６０では、発行者は乱数rを選び、a＝gr、b＝ayおよびc＝axFrxyを計算する。処理ブロック３６２では、発行者は(a,b,c)を、プラットフォームのメンバーシップ証明書としてホストに送り返す。処理ブロック３６４では、ホストが(a,b,c)をTPMに転送する。ある実施形態では、メンバー・デバイスの秘密署名鍵は、メンバーシップ証明書(a,b,c)とともに秘密メンバー鍵fを、(f,a,b,c)として含む。
【００３９】
ある実施形態では、TPMは、発行者に対して署名による知識の証明（SPK:  signature  proof  of  knowledge）をも次のようにして実行する（これは処理ブロック３５６および３５８に対応する）：
SPK｛(f)：F＝gf｝
１．TPMが乱数r∈Zqを選び、T＝grを計算する。
２．TPMがc＝H(q‖g‖gT‖G‖GT‖e‖X‖Y‖T)を計算する。
３．TPMがs＝r＋c・f  mod  qを計算する。
４．TPMが(F,c,s)を発行者に送る。
５．発行者がT′＝gsF-cを計算する。
６．発行者が
c＝H(q‖g‖gT‖G‖GT‖e‖X‖Y‖T′)となることを検証する。
【００４０】
図８は、ある実施形態に基づく、プラットフォーム・グループのメンバー・デバイスによる秘密署名鍵を計算する方法４００を図解するフローチャートである。処理ブロック４１０において、TPMはベースBを選ぶ。メッセージmに署名するために、TPMは秘密の署名鍵として(f,a,b,c)を有し、ホストは(a,b,c)を有する。ランダム・ベース・オプションでは、TPMはBを群GTからランダムに選ぶ。ネームド・ベース・オプションでは、TPMはBを検証者のベース名から導出する。TPMは次いで仮名K＝Bfを計算する。処理ブロック４２０では、TPMは二つの乱数rおよびr′を選び、それらをホストに送る。処理ブロック４３０では、ホストはa′＝ar′、b′＝br′およびc′＝cr′rを計算し、次いでvx＝e(X,a′)、vxy＝e(X,b′)およびvs＝e(g,c′)を計算する。処理ブロック４４０では、ホストは(a′,b′,c′,vx,vxy,vs)をTPMに送り返す。処理ブロック４５０では、TPMは、riおよびfを明かすことなく(ri,f)を知っていることの零知識証明を、vsri＝vxvxyfおよびK＝Bfのように計算する。ここで、riはqを法としたときのrの逆数である。上記の証明の知識の署名をΣで表すことにする。すると処理ブロック４６０では、生成された署名は(a′,b′,c′,B,K,Σ)となる。
【００４１】
ある実施形態では、Gにおける決定ディフィー・へルマン問題（decisional  Diffie-Hellman  problem）が困難な場合、TPMはBを任意の群Gから選択できる。失効チェックは、GTの代わりにG上で実行できる。
【００４２】
ある実施形態では、TPMは、e(X,a)、e(X,b)およびe(X,c′)をあらかじめ計算する。TPMは二つの乱数rおよびr′を選び，それらをホストに送る。ホストはa′＝ar′、b′＝br′およびc′＝cr′rを計算するだけである。次いでTPMがvx＝e(X,a) r′、vxy＝e(X,b) r′およびvs＝e(g,c′) r′rを計算する。ホストは(a′,b′,c′)をTPMに送り返す。
【００４３】
ある実施形態では、TPMは「知識の署名」を次のようにして計算する：
SPK｛(r,f)：vsri＝vxvxyf∧K=Bf｝(m)
（ａ）TPMが二つのランダム整数rr,rf∈Zqを選び、
T1＝vsrrvxy-rf      T2＝Brf
を計算する。
（ｂ）TPMが
c＝H(q‖g‖gT‖G‖GT‖e‖X‖Y‖a′‖b′‖c′‖vx‖vxy‖vs‖B‖K‖T1‖T2‖m)
を計算する。TMPが
ri＝r-1  mod  q    sr＝rr＋c・ri  mod  q    sf＝rf＋c・f  mod  q
を計算する。TPMが
(c,sr,sf)をホストに送る。
ホストが、署名σ＝(B,K,a′,b′,c′,sr,sf)を検証者に送る。ここで、Σ＝(sr,sf)となっている。
【００４４】
したがって、秘密署名鍵(f,a,b,c)を使って、信頼されるハードウェア・デバイスは、該デバイスがたとえばここでは発行者と称されている認定役の製造者によって定義された、信頼される匿名のハードウェア・デバイスのグループのメンバーであるということを示すことによって、自らを信頼されるハードウェア・デバイスであるとして身分証明することが許容される。ある実施形態では、各ハードウェア・デバイスは、プラットフォーム・グループのメンバーであり、一意的な秘密署名鍵を割り当てられる。代表例として、割り当てられた秘密署名鍵を有する信頼されるハードウェア・デバイスは、検証者からの認証要求の一部として受信されるメッセージに署名することができる。しかしながら、伝統的なデジタル署名システムとは対照的に、メンバー・デバイスの一意的な秘密署名鍵を用いて生成されたデジタル署名の検証は、発行者によって定義されたプラットフォーム・グループのためのグループ公開鍵を使って検証される。
【００４５】
図９は、ある実施形態に基づく、グループ公開鍵に関する有効性のための署名を検査するための検証アルゴリズムのための方法５００を図解しているフローチャートである。グループ署名は(a′,b′,c′,B,K,Σ)からなる。処理ブロック５１０では、検証者はまずvx＝e(X,a′)、vxy＝e(X,b′)およびvs＝e(g,c′)を計算する。処理ブロック５２０では、検証者はΣすなわち知識の署名の正しさを検証する。だめなら、処理ブロック５２２で検証は失敗する。ひとたび署名が検証されたら、処理ブロック５３０で、検証者はe(a′,Y)＝e(g,b′)がなりたつかどうかを検査する。だめなら、処理ブロック５３２で検証は失敗する。処理ブロック５４０では、検証者は署名が失効させられているかどうかを検査する。すなわち、不正リスト（rogue  list）内の各失効させられたメンバー鍵fiについて、検証者はK≠Bfiであることを検査する。
【００４６】
たとえば、mに対するグループ署名σ＝(B,K,a′,b′,c′,sr,sf)を検証するため、検証者は以下のステップを行う：
１．検証者はe(a′,Y)＝e(g,b′)でありかつB∈GTであることを検証する。
２．検証者が
vx＝e(X,a′)    vxy＝e(X,b′)    vs＝e(g,c′)
を計算する。検証者が
T1′＝vssrvxy-sfvx-c    T2′＝BsfK-c
を計算する。検証者が
c＝H(q‖g‖gT‖G‖GT‖e‖X‖Y‖a′‖b′‖c′‖vx‖vxy‖vs‖B‖K‖T1′‖T2′‖m)
となることを検証する。
【００４７】
検証者は図１０に示されるようにして、不正リスト中の各fiについて、K≠Bfiであることを検査する。一致する失効させられたメンバー鍵が検出される場合、処理ブロック５６０で検証は失敗する。そうでない場合、処理ブロック５７０で検証は成功する。
【００４８】
図１０は、ある実施形態に基づく、メンバー・デバイスの秘密署名鍵が失効されていない秘密署名鍵であることを保証するための方法５４２を図解するフローチャートである。それによると、処理ブロック５４４では、不正鍵リストが受信されているかどうかが判定される。ひとたび受信されたら、処理ブロック５４６において、その不正鍵リストから失効させられたメンバー鍵が選択される。処理ブロック５４８では、デジタル署名の一部として受信された仮名値KがK＝Bfiの形の式に等しくないかどうかを判定する。仮名値Kが前記の式に等しい場合、その署名は処理ブロック５５２で拒否される。そうでない場合、処理ブロック５５０で、失効鍵リストにおける各鍵が処理されるまで、失効鍵リストの失効させられた各メンバー鍵について、処理ブロック５４６〜５４８が繰り返される。したがって、グループ署名の値KがBfiに一致しないと想定すると、メンバー・デバイスから受信されたデジタル署名は受理される。
【００４９】
ある実施形態では、メンバーまたは信頼されるハードウェア・デバイスは、ECCのような従来式の暗号プロトコルを使って標準的な公開鍵／秘密鍵ペアを生成してもよい。したがって、ある実施形態では、公開ECC鍵に署名するためにメンバー・デバイスの秘密署名鍵を使用してもよい。これにより、その公開鍵が信頼されるハードウェア・デバイスによって生成されたことが示される。したがって、そのメンバー・デバイスがプラットフォーム・グループの信頼されるハードウェア・デバイスとして初期認証されたのちは、その後のトランザクションは、従来式のECC公開鍵／秘密鍵ペアを使って実行されてもよい。
【００５０】
以上の記述において、本発明のさまざまな実施形態について数多くの特徴および利点が本発明のさまざまな実施形態の構造および機能の詳細とともに記載されてきたが、この開示は単に例示的なものである。場合によっては、ある種のサブアセンブリーは、一つのそのような実施形態についてのみ詳細に記載されている。にもかかわらず、そのようなサブアセンブリーが本発明の他の実施形態において使われてもよいことが認識され、意図されている。細部に、特に諸部分の構造および管理の事項に、本発明の実施形態の原理内で、付属の請求項を表現する言辞の広い一般的な意味によって示される全範囲まで、変更がなされうる。
【００５１】
例示的な実施形態および最良の形態を開示してきたが、請求項によって定義される本発明の実施形態の範囲内から出ることなく、開示された実施形態に修正および変形がなされうる。
【図面の簡単な説明】
【００５２】
【図１】ある実施形態に基づく、信頼プラットフォーム・モジュール（TPM）を実装されたプラットフォームを有するシステムを示すブロック図である。
【図２】ある実施形態に基づく、図１のプラットフォームをさらに図解するブロック図である。
【図３】ある実施形態に基づく、図１および図２のTPMをさらに図解するブロック図である。
【図４】ある実施形態に基づく、図３の認証論理をさらに図解するブロック図である。
【図５】ある実施形態に基づく、信頼されるメンバー・デバイスの信頼されるメンバーシップ・グループを確立するための方法を図解するフローチャートである。
【図６】ある実施形態に基づく、グループ公開鍵／秘密鍵ペアならびに一つまたは複数の公開パラメータを生成する方法を示すフローチャートである。
【図７】ある実施形態に基づく、信頼されるメンバーシップ・グループのメンバー・デバイスを認定するための加入プロトコルのための方法を図解するフローチャートである。
【図８】ある実施形態に基づく、受信された証明要求に応答して秘密署名鍵を生成する方法を図解するフローチャートである。
【図９】ある実施形態に基づく、信頼されるメンバーシップ・グループの信頼されるメンバー・デバイスを認証するための装置の、グループ・デジタル署名を検証する方法を図解するフローチャートである。
【図１０】ある実施形態に基づく、受信された署名を生成するのに使われた秘密署名鍵が失効させられていない秘密メンバー鍵を含むことを検証する方法を図解するフローチャートである。
【符号の説明】
【００５３】
１００  TPM（信頼プラットフォーム・モジュール）を実装されたプラットフォームを有するシステム
１０２  検証者プラットフォーム
１０６  要求
１０８  認証情報
１１０  発行者
１２０  ネットワーク
２００  コンピュータ・システム
２１０  証明者プラットフォーム
２２０  TPM
２０２  CPU
２０４  プロセッサ・システム・バス
２１０  チップセット
２１２  メモリ
２１４  HDD
２１６  I/Oデバイス
２１８  グラフィクス
２２０  TPM
２２２  プロセッサ・ユニット
２２４  フラッシュ・メモリ
２３０  秘密署名鍵
２４０  認証論理
２５０  認定論理
２６０  デジタル署名論理
２７０  失効鍵論理
２８０  フラッシュ・メモリ
３００  信頼されるメンバーシップ・グループ公開鍵を形成する方法
３１０  少なくとも一つの信頼されるハードウェア・デバイスをメンバーとして含むプラットフォーム・グループを生成
３２０  一つまたは複数の公開パラメータを含む、そのプラットフォーム・グループのためのグループ公開鍵／秘密鍵ペアを生成
３２２  図６で、図５の処理ブロック３２０の生成方法
３２４  図６で、(q,G,g,GT,gT,e)を生成。ここで、qは素数、GおよびGTは位数qの群、e:G×G→GTは効率的に計算可能な双線形マップ関数、gは群Gの生成元、gTは群GTの生成元
３２６  図６で、値xおよびyをランダムに選択し、発行者の秘密鍵を(x,y)として形成
３２８  図６で、値X＝gxおよびY＝gyを計算
３３０  図６で、プラットフォーム・グループ公開鍵を(q,G,g,GT,gT,e,X,Y)として出力、発行者の秘密鍵は (x,y)
３４０  公開パラメータ、発行者の名前および他の関連するセキュリティ情報を含む、プラットフォーム・グループ・メンバーシップ証明書を生成
３５０  そのプラットフォーム・ファミリーのメンバーを、そのメンバーにグループ・メンバーシップ証明書を発行する加入手順に従事し、メンバー秘密鍵を形成することによって認定
３５２  図７で、図５の処理ブロック３５０の認定方法
３５４  図７で、TPMがそのDAAシードからfを導出し、F＝gfを計算
３５６  図７で、TPMがFを発行者に送り、発行者に対してloggFを知っていることを証明
３５８  図７で、発行者がTPMによる知識の証明を検証
３６０  図７で、発行者が乱数rを選び、a＝gr、b＝ayおよびc＝axFrxyを計算
３６２  図７で、発行者が(a,b,c)を、プラットフォームのグループ・メンバーシップ証明書としてホストに返送
３６４  図７で、ホストが(a,b,c)を記憶し、(a,b,c)をTPMに転送
４００  図８で、プラットフォーム・グループのメンバー・デバイスによる秘密署名鍵を計算する方法
４１０  図８で、TPMがベースBを選び、K＝Bfを計算
４２０  図８で、TPMが乱数rおよびr′を選び、それらをホストに送る
４３０  図８で、ホストがa′＝ar′，b′＝br′，c′＝cr′r，vx＝e(X,a′)，vxy＝e(X,b′)およびvs＝e(g,c′)を計算
４４０  図８で、ホストが(a′,b′,c′,vx,vxy,vs)をTPMに送り返す
４５０  図８で、TPMが、 (ri,f)を知っていることの証明を、vsri＝vxvxyfおよびK＝Bfというように計算。知識の署名をΣで表すことにする
４６０  図８で、TPMが署名を(a′,b′,c′,B,K,Σ)と設定
５００  図９で、グループ公開鍵に関する有効性のための署名を検査する方法
５１０  図９で、検証者がvx＝e(X,a′)，vxy＝e(X,b′)，vs＝e(g,c′)を計算
５２０  図９で、検証者がΣの正しさを検証
５２２  図９で、検証失敗
５３０  図９で、検証者がe(a′,Y)＝e(g,b′)かどうかを検査
５３２  図９で、検証失敗
５４０  図９で、検証者が不正リスト内の各fiについてK≠Bfiを確認
５４２  図１０で、メンバー・デバイスの秘密署名鍵が失効されていない秘密署名鍵であることを保証する方法
５４４  図１０で、不正鍵リスト受信？
５４６  図１０で、不正鍵リストから失効させられた署名鍵を選択
５４８  図１０で、K≠Bfi？
５５２  図１０で、その署名を拒否
５５０  図１０で、失効鍵リストの各鍵が処理済み？
【図１】
0004851497.tif 000002
【図２】
0004851497.tif 000003
【図３】
0004851497.tif 000004
【図４】
0004851497.tif 000005
【図５】
0004851497.tif 000006
【図６】
0004851497.tif 000007
【図７】
0004851497.tif 000008
【図８】
0004851497.tif 000009
【図９】
0004851497.tif 000010
【図１０】
0004851497.tif 000011