通信における証明された秘密値の使用
【課題】本発明は、特定の方法で証明された秘密値の所有者が、当該秘密値の所有者が対話する必要のある関係者に対して、自身が適切に形成された秘密値を本当に所有することを証明できる方法などを提供し、さらに、この状況で使用可能な取り消しのための方法および装置を提供する。
【解決手段】本発明にかかる証明方法は、信頼できるコンピューティング装置の状況において、その秘密値がこのような装置の適法な製造業者によって提供されたものであることを示すために使用されうる。
【解決手段】本発明にかかる証明方法は、信頼できるコンピューティング装置の状況において、その秘密値がこのような装置の適法な製造業者によって提供されたものであることを示すために使用されうる。
【発明の詳細な説明】
【技術分野】
【0001】
[発明の分野]
本発明は、証明された秘密値を提供すること(および取り消すこと)ならびにこのような秘密値を使用する通信に関し、より詳細には、或る関係者が特定の方法で形成された秘密値を所有することを、当該秘密値自体を明らかにすることなく示すことができる通信に関する。本発明は、特に、(例えば、信頼できるコンピューティンググループによって説明されたタイプの)信頼できるコンピューティングに関係する。この信頼できるコンピューティングでは、或る関係者は、第2の関係者が予測されたように振る舞うという或る保証を有する。
【背景技術】
【0002】
[従来技術の説明]
最近の進展は、「信頼できる(trusted)」コンピューティング装置が提供されているということである。すなわち、ユーザは、予測できるように振る舞うこと、および、別のユーザによる破壊が少なくとも明らかになることに対して信頼を置くことができる。信頼できるコンピューティンググループの仕様(www.trustedcomputing.orgで入手される)、および、Siani Pearsonによって編集されてPrentice Hall PTRによって2002年7月に出版された、関連した書物「Trusted Computing Platforms: TCPA Technology in Context」(これらの内容は、法律の許す範囲で、参照により本明細書に援用される)には、信頼できるコンピューティングの手法が記載されている。この記載された信頼できるコンピューティングの手法は、信頼できるコプロセッサ(破壊から物理的および論理的の双方で保護される)を使用して、信頼できるコプロセッサを含むコンピューティング装置のユーザまたは信頼できるコプロセッサに関連したコンピューティング装置のユーザに、その装置が予測でき、かつ、破壊されないように動作していることを保証するものである。特に有益な構成は、特に、他のコンピュータの情報およびサービスを提供することが望ましい場合に、(通常、プロセスが、他のコンピューティング環境との厳密に制御された相互作用を有する分離されたコンピューティング環境で実行されるような区画された方法で動作することによる)区画されたオペレーティングシステムと、信頼できるコンポーネントを使用する信頼できるコンピューティングハードウェアとの双方を使用することである(このような構成は、例えば、EP1182557として公開された出願人の特許出願に説明されている)。
【0003】
信頼できるプラットフォームを使用することの1つの利点は、その信頼できるプラットフォームが予測されたように振る舞うことを確信する手段を他の関係者が有するので、それら他の関係者が、その信頼できるプラットフォームと相互作用する準備ができるということである。このような他の関係者は、リモートサービスプロバイダ(RSP(Remote Service Provider))とすることができる。RSPは、プラットフォームにサービスを提供できるが、サービスを受け取るプラットフォームが本当に信頼できることを確信できない場合に、このサービスの提供を好まない場合がある。RSPは、信頼できるコンポーネント(信頼できるコンポーネントは、本明細書では信頼できるプラットフォームモジュールまたはTPM(Trusted Platform Module)と記載される)の少なくともいくつかの製造業者を信頼するものと仮定することができる。これには、RSPと相互作用するTPMが信頼できる製造業者によって本当に生産されたということを当該RSPが確信することに問題が残る。さらなる検討が行われる。プライバシーの理由から、RSPは、自身がどのTPMと相互作用しているかを見分けることができないことが望ましい(すなわち、望ましくは、RSPが立証できることは、自身が既知でかつ信頼できる製造業者によって製造された真正のTPMと相互作用しているということだけである)。
【0004】
このような確信をRSPに提供する現在の手法は、別の第3の関係者である認証局(CA(Certificate Authority))を使用することである。CAは、プラットフォームの所有者およびRSPの双方に信頼されている。TPM製造業者は、当該TPMの一意の保証鍵(endorsement key)を提供し、次に、それを証明する。CAは、次に、製造業者の証明書を検証した後、ランダムに選ばれた識別情報に関する証明書を発行する。CAは、保証鍵と、対応する証明書との間のマッピングのリストを保持してもよいし、保持しなくてもよい。この証明書は、TPMの正当性をチェックするためにRSPによって使用されるCAの証明書である。証明書が検証されると、RSPは、CAを信頼するので、TPMが信頼できる製造業者の適法な製品であると信頼する。RSPは、証明された特定の識別情報に誤ったものを見出すと、これをCAに報告し、CAは、問題の識別情報を取り消しリストに列挙し、次に、このTPMに対する新たなどの識別情報の証明も拒否する。
【発明の開示】
【発明が解決しようとする課題】
【0005】
この方式の問題は、CAが現在のところシステムの弱点であるということである。CAは、TPMの保証鍵とそのTPMに発行された識別情報との間のマッピング(および、おそらく多数のTPMのマッピング)を所有する可能性がある。CAが、このようなマッピングを保持しない約束を破った場合、または、このようなマッピングが秘密にされる限り、このようなマッピングを保持するようにCAが許可されるが、CAのデータベースが危険にさらされた場合、そのCAによって証明されたすべてのTPMの識別情報を相関させることが可能になる。
【0006】
したがって、TPMは、CA等の第3の関係者を信頼することなく、製造業者によって当該TPMに与えられた証明情報で、自身が、信頼できる製造業者の適法な製品であることをRSPに確信させることができるのが望ましい。また、これは、RSPが任意の所与の時刻において相互作用しているTPMに製造業者により与えられた証明情報に当該RSPが気付くことを可能にすることなく、TPMのステータスを取り消すことができるように行われることも望ましい。
【0007】
これらの問題は、信頼できるコンピューティングプラットフォームに関して本明細書で特定された具体的な問題よりも広い、関係者間の通信への利用を有することが可能であることを理解することができる。例えば、この問題は、秘密の所有者、秘密の保証者、および秘密の正当性を信頼する関係者の間の秘密に関して、同様の信頼関係が存在する時は常に適用することができる。
【課題を解決するための手段】
【0008】
[発明の概要]
第1の態様によれば、本発明は、取り消し証を有するグループ署名方式によって計算資源へのアクセスを判断する方法を提供し、この方法は、証明書発行者が、グループ秘密鍵を保持し、且つ、グループ公開鍵を提供すること、グループメンバが、メンバーシップ秘密値を得て、証明書発行者が、メンバーシップ秘密値に関するグループメンバのメンバーシップ証明書を提供すること、グループメンバが、メンバーシップ秘密値もメンバーシップ証明書も検証者に明らかにすることなく、署名を提供することによって、自身が正当なメンバーシップ秘密値および正当なメンバーシップ証明書を所有していることを検証者に実証し、且つ、自身のメンバーシップ秘密値および取り消しパラメータから取り消し証を提供すること、および、検証者が、署名および取り消し証から、グループメンバが正当なメンバーシップ秘密値および正当なメンバーシップ証明書を所有していると判断すること、を含む。
【0009】
さらなる一態様によれば、本発明は、グループ公開鍵を有するグループ署名方式のメンバによって信頼ステータスを実証する方法を提供し、この方法は、グループメンバが、メンバーシップ秘密値を得て、且つ、証明書発行者から、メンバーシップ秘密値に関するグループメンバのメンバーシップ証明書を受け取ること、および、グループメンバが、メンバーシップ秘密値もメンバーシップ証明書も検証者に明らかにすることなく、署名を提供することによって、自身が正当なメンバーシップ秘密値および正当なメンバーシップ証明書を所有していることを検証者に実証し、且つ、自身のメンバーシップ秘密値および取り消しパラメータから取り消し証を提供すること、を含む。
【0010】
さらなる一態様によれば、本発明は、グループ公開鍵を有するグループ署名方式のメンバの信頼ステータスを検証する方法を提供し、この方法は、検証者が、グループメンバから、グループメンバのメンバーシップ秘密値およびメンバーシップ証明書から生成された署名を受け取り、且つ、グループメンバによって、自身のメンバーシップ秘密値および取り消しパラメータから提供された取り消し証を受け取ること、および、検証者が、署名および取り消し証から、グループメンバが正当なメンバーシップ秘密値および正当なメンバーシップ証明書を所有していると判断すること、を含む。
【0011】
さらなる一態様によれば、本発明は、プロセッサと、メンバーシップ秘密値、および、グループ公開鍵を有するグループ署名方式の証明書発行者によりメンバーシップ秘密値に対して発行されたメンバーシップ証明書を含むメモリと、を備える信頼できるコンピューティング装置を提供し、この信頼できるコンピューティング装置は、メンバーシップ秘密値もメンバーシップ証明書も検証者に明らかにすることなく、署名を提供することによって、自身が正当なメンバーシップ秘密値および正当なメンバーシップ証明書を所有していることを検証者に実証し、且つ、自身のメンバーシップ秘密値、自身のメンバーシップ証明書、グループ公開鍵、および取り消しパラメータから取り消し証を提供するように適合される。
【0012】
さらなる一態様によれば、本発明は、第1の関係者が、自身が第3の関係者によって適法に提供された秘密値を所有することを第2の関係者に証明することができる方法を提供し、この方法は、
第3の関係者が、第1の秘密値mと、第1の秘密値から関係
【0013】
【数1】
【0014】
に従って計算された第2の秘密値cとを第1の関係者に提供するステップであって、ここで、nはRSAモジュラスであり、e1およびe2はRSA公開指数であり、t1およびt2はランダムに選ばれた整数であり、それによって、d1はe1に対応するRSAプライベート指数である、ステップと、
第2の関係者が、第3の関係者からn、e1、e2、t1、およびt2を得るステップと、
第1の関係者が第1の秘密値m、および、関係に従って形成された第2の秘密値cを有することを第2の関係者に証明するために、第1の関係者が、第1の秘密値を使用する一方向関数の第1の複数の結果、および、第2の秘密値を使用する一方向関数の第2の複数の結果を第2の関係者に提供するステップと、
それによって、第2の関係者が、第1の複数の結果を、e1を使用する一方向関数の結果と比較し、第2の複数の結果を、e2を使用する一方向関数の結果と比較し、それによって、第1の関係者が、第1の秘密値mも第2の秘密値cも受け取ることなく、関係に従って形成された第1の秘密値mおよび第2の秘密値cを有することを検証するステップと、を含む。
【0015】
関連する一態様によれば、本発明は、プロセッサと、第1の秘密値m、および、第1の秘密値から関係
【0016】
【数2】
【0017】
に従って計算された第2の秘密値cを含むメモリと、を備える信頼できるコンピューティング装置を提供し、ここで、nはRSAモジュラスであり、e1およびe2はRSA公開指数であり、t1およびt2はランダムに選ばれた整数であり、それによって、d1はe1に対応するRSAプライベート指数であり、プロセッサは、第1の秘密値mも第2の秘密値cも明らかにすることなく、第1の秘密値を使用する一方向関数の第1の複数の結果、および、第2の秘密値を使用する一方向関数の第2の複数の結果を他の関係者に提供することによって、自身が、関係に従って形成された第1の秘密値mおよび第2の秘密値cを所有していることを他の関係者に証明するようにプログラミングされている。
【0018】
さらなる一態様によれば、本発明は、第2の関係者によって提供されたサービスへの第1の関係者のアクセスを制御する方法を提供し、第1の関係者は、自身が第3の関係者によって適法に提供された秘密値を所有することを、秘密値を明らかにすることなく別の関係者に証明するように適合され、
第1の関係者が第3の関係者によって適法に提供された秘密値を所有することを、秘密値が第4の関係者に明らかにされない状態で、第1の関係者が証明し、第4の関係者が検証するステップと、
第4の関係者が、第1の関係者に証明書を発行し、第3の関係者によって適法に提供された秘密値であって、或る関係者がその秘密値を所有することを検証する後のステップで再生成されることになる秘密値を、第1の関係者が所有することを検証するステップの識別子を証明書に関連付けるステップと、
第4の関係者が、証明書正当性情報を保持し、それによって、第1の関係者がサービスにアクセスしようと試みる時、第1の関係者が、第4の関係者によって発行された証明書を第2の関係者に提供し、サービスへのアクセスを提供する前に、第2の関係者が、第4の関係者によって提供された証明書正当性情報から、証明書が正当かどうかを判断するステップと、を含む。
【0019】
好ましくは、グループメンバはコンピューティング装置であり、証明書発行者はそのコンピューティング装置の製造業者である。より具体的には、コンピューティング装置は、好ましくは、認可されていない修正に対して物理的および論理的に耐性を有するように適合された、信頼できるコンピューティングモジュールであり、好ましくは、コンピューティングプラットフォームのコプロセッサとしての使用に適合された、信頼できるコンピューティングモジュールである。
【0020】
次に、本発明をより良く理解し、有効にする方法を示すために、添付図面に関して、本発明による特定の実施の形態、方法、およびプロセスを単なる例として説明することにする。
【発明を実施するための最良の形態】
【0021】
[特定の実施の形態の詳細な説明]
信頼できるコンピューティングプラットフォーム連合(Trusted Computing Platform Alliance)の仕様に説明されたタイプの信頼できるプラットフォームについて次に説明する。このようなプラットフォームは、本出願人による先願で説明されており、特に、国際特許出願公開第WO00/48063号および第WO00/54126号で説明されている。これらの出願は、適用法の下で可能な最大限まで参照により本明細書に援用される。例示の信頼できるプラットフォームの要素および当該信頼できるプラットフォームのオペレーションを最初に説明することにする。次に、本発明の第2の実施の形態のこれらの要素およびオペレーションを、信頼できるプラットフォームの先の一般的な説明に関して説明することにする。
【0022】
本明細書では、物理的なコンポーネントまたは論理的なコンポーネントに関して使用される場合の用語「信頼できる」は、その物理的なコンポーネントまたは論理的なコンポーネントが、常に予測されたように振る舞うことを意味するのに使用される。そのコンポーネントの振る舞いは、予測可能であり、かつ、既知である。信頼できるコンポーネントは、認可されていない変更に対して高度の抵抗力を有する。
【0023】
本明細書では、用語「コンピュータプラットフォーム」は、少なくとも1つのデータプロセッサおよび少なくとも1つのデータストレージ手段を備えるコンピュータシステムを指すのに使用される。このコンピュータシステムは、必ずしもそうとは限らないが、通例、例えば複数のドライバといった関連した通信設備、関連したアプリケーションおよびデータファイルを有する。このコンピュータシステムは、例えば、インターネットへの接続、外部ネットワークへの接続によるか、または、例えばCD ROM、フロッピー(登録商標)ディスク、リボンテープ等のデータストレージ媒体に記憶されたデータを受信できる入力ポートを有することによって、例えばユーザまたは別のコンピュータプラットフォームといった外部エンティティと相互作用できる場合がある。用語「コンピュータプラットフォーム」は、コンピュータエンティティのメインデータ処理およびストレージ設備を包含する。
【0024】
各コンピュータエンティティの信頼できるコンポーネントを使用することによって、異なるコンピューティングプラットフォーム間の或るレベルの信頼が可能にされる。リモートでまたはコンピュータエンティティのモニタを通じてのいずれかによって、このようなプラットフォームにその状態に関して照会することが可能であり、その状態を信頼できる状態と比較することが可能である。このような照会によって収集された情報は、そのプラットフォームのさまざまなパラメータを監視するコンピューティングエンティティの信頼できるコンポーネントによって提供される。信頼できるコンポーネントによって提供された情報は、暗号認証によって認証することができ、信頼することができる。「信頼できるプラットフォーム」は、このように、その機能が、プラットフォームの完全性メトリック(integrity metric)を提供する、信頼できるように測定されたデータにプラットフォームの識別情報を結びつけることである信頼できる物理信頼デバイスをコンピューティングプラットフォームに組み込むことによって達成することができる。この識別情報および完全性メトリックは、プラットフォームの信頼性を保証するように準備された信頼できる関係者(TP(trusted party))によって提供された予測値と比較される。一致する場合、それは、プラットフォームの少なくとも一部が、完全性メトリックの範囲に応じて正しく動作していることを意味する。
【0025】
信頼できるコンポーネントが存在することによって、コンピューティングエンティティに対してリモートまたはローカルな1つの第3の関係者のソフトウェアは、自身の認証および同一性の証明を得るために、および、そのコンピューティングエンティティの測定された完全性メトリックを取り出すために、コンピューティングエンティティと通信することが可能になる。人間のユーザが、彼もしくは彼女のコンピューティングエンティティ、または、その者がユーザインターフェースによって対話できる他の任意のコンピューティングエンティティと或るレベルの信頼できる対話を行うために、信頼できるトークンデバイスがユーザにより使用されて、コンピューティングエンティティの信頼できるコンポーネントがインターロゲートされ、信頼できるコンポーネントによって検証された、コンピューティングエンティティの状態に関する報告がユーザに行われる。信頼できるコンポーネントと信頼できるトークンデバイスとの間の認証は、対象となる実際の状況では、相互的である。ユーザは、信頼できるコンポーネントによって認証され、(ユーザが適切な特権を有する場合)信頼できるコンポーネントの制御の許可を受けることができる。信頼できるコンポーネントは、ユーザによって認証され(信頼できるコンポーネントとして認識され、適切な状況では、ユーザにより所有された信頼できるコンポーネント、または、制御可能な信頼できるコンポーネントとして認識される)。
【0026】
このタイプの信頼できるプラットフォームの利点およびアプリケーションにおける使用は、国際特許出願公開第WO00/48063号および第WO00/54126号に多少詳細に説明され、「Trusted Computing Platforms: TCPA Technology in Context」にかなり詳細に説明されており、本明細書ではこれ以上説明しないことにする。
【0027】
このような構成の信頼できるコンポーネントは、暗号プロセスを使用する。最も望ましいインプリメンテーションは、信頼できるコンポーネントを不正操作できないようにすること、秘密値を他のプラットフォーム機能にアクセス不能にすることによりそれら秘密値を保護すること、および、認可されていない修正に対して強固な免疫を有する環境を提供することである。完全に不正操作できなくすることは不可能であるので、最も近いものは、不正操作の耐性を有するか、または、不正操作を検出する、信頼できるデバイスである。したがって、この信頼できるデバイスは、好ましくは、不正操作の耐性を有する1つの物理的なコンポーネントから構成される。不正操作の耐性の技法は、当業者に既知であり、国際特許出願公開第WO00/48063号および第WO00/54126号にさらに説明されている。
【0028】
信頼できるプラットフォーム10、40が、図1の線図に(および図4に写実的に)概略的に示されている。このプラットフォーム10、40は、キーボード14、45、マウス16(図4には図示せず)、およびモニタ18、44の標準装備を含む。これらの標準装備は、プラットフォームの物理的な「ユーザインターフェース」を提供する。また、信頼できるプラットフォームのこの実施の形態は、スマートカードリーダ12、42も含む。スマートカードリーダ12、42の横側には、信頼できるプラットフォームとの信頼できるユーザ対話を可能にするためのスマートカード19、41が示されている。プラットフォーム10、40では、複数のモジュール15がある(図1に図示されている)。これらのモジュールは、この信頼できるプラットフォームの他の機能要素であって、そのプラットフォームに適した、基本的には任意の種類の機能要素である。このような要素の機能的な意義は、本発明に関係するものではなく、本明細書ではこれ以上説明しないことにする。信頼できるコンピュータエンティティのさらに別のコンポーネントには、通常、1つまたは複数のローカルエリアネットワーク(LAN)ポート、1つまたは複数のモデムポート、および1つまたは複数の電源装置、冷却ファン等が含まれる。図4では、以下で説明する本発明の実施の形態に明らかに関連するように、コンピューティングプラットフォーム40は、ネットワーク43(このネットワークはLAN、モデムによってアクセスされる公衆インターネット等のネットワーク、または適切な接続を有する他の任意の形態のネットワークとすることができる)に接続されて示されている。
【0029】
図2に示すように、信頼できるコンピューティングプラットフォーム10のマザーボード20は、(他の標準的なコンポーネントの中でも特に)メインプロセッサ21、メインメモリ22、信頼できるデバイス24(上述した信頼できるコンポーネントの物理的な形態)、データバス26、ならびに、各制御ライン27およびライン28、BIOSメモリ29、ならびに入出力(IO)デバイス23を含む。BIOSメモリ29は、プラットフォーム10のBIOSプログラムを含む。入出力デバイス23は、このマザーボードのコンポーネントと、スマートカードリーダ12、キーボード14、マウス16、およびモニタ18(および、モデム、プリンタ、スキャナ等の追加された任意の周辺デバイス)との間の相互作用を制御する。メインメモリ22は、通常、ランダムアクセスメモリ(RAM)である。動作時に、プラットフォーム10は、オペレーティングシステム(および、プラットフォームが実行することができるプロセスまたはアプリケーション)をハードディスク(図示せず)からRAMにロードする。このオペレーティングシステムは、例えばWindows XP(登録商標)である。
【0030】
コンピュータエンティティは、物理アーキテクチャだけでなく論理アーキテクチャも有するものと考えることができる。論理アーキテクチャは、本明細書において図1から図3で説明する物理アーキテクチャと共に存在するように、コンピュータプラットフォームと信頼できるコンポーネントとの間で同じ基本分割(basic division)を有する。換言すると、信頼できるコンポーネントは、当該コンポーネントが物理的に関係するコンピュータプラットフォームとは論理的に異なる。コンピュータエンティティは、ユーザ空間および信頼できるコンポーネント空間を備える。このユーザ空間は、コンピュータプラットフォーム(第1のプロセッサおよび第1のデータストレージ手段)に物理的に常駐する論理空間である。信頼できるコンポーネント空間は、信頼できるコンポーネントに物理的に常駐する論理空間である。ユーザ空間には、1つまたは複数のドライバ、1つまたは複数のアプリケーションプログラム、ファイルストレージエリア、スマートカードリーダ、スマートカードインターフェース、およびソフトウェアエージェントが存在する。このソフトウェアエージェントは、ユーザ空間でオペレーションを実行でき、信頼できるコンポーネントに報告を返すことができる。信頼できるコンポーネント空間は、信頼できるコンポーネントに基づき、かつ、その信頼できるコンポーネントに物理的に常駐する論理エリアであり、その信頼できるコンポーネントの第2のデータプロセッサおよび第2のメモリエリアによってサポートされる。モニタ18は、信頼できるコンポーネント空間から直接画像を受け取る。コンピュータエンティティの外部には、例えば、インターネット、およびさまざまなローカルエリアネットワーク、ワイドエリアネットワークといった外部通信ネットワークが存在する。これらのネットワークは、ドライバ(1つまたは複数のモデムポートを含むことができる)を介してユーザ空間に接続される。外部ユーザスマートカードは、ユーザ空間のスマートカードリーダに入力する。
【0031】
通常、パーソナルコンピュータでは、BIOSプログラムが、予約された特別なメモリエリアに配置される。この特別なメモリエリアは、システムメモリの最初のメガバイトの上位64キロバイト(アドレスF000hからFFFFh)である。業界標準によれば、メインプロセッサは、このメモリロケーションを最初に調べるように構成される。
【0032】
このプラットフォームと従来のプラットフォームとの間の重大な相違は、リセット後、メインプロセッサが、信頼できるデバイスによって最初に制御され、次いで、この信頼できるデバイスが、プラットフォーム特有のBIOSプログラムに制御を渡し、次に、BIOSプログラムがすべての入出力デバイスを通常通り初期化するということである。BIOSプログラムが実行された後、制御は、通常通り、BIOSプログラムによって、WindowsXP(商標)等のオペレーティングシステムプログラムに渡される。このオペレーティングシステムプログラムは、通常、ハードディスクドライブ(図示せず)からメインメモリ22にロードされる。
【0033】
明らかに、この通常の手順からの変更によって、業界標準のインプリメンテーションの修正が必要とされる。その修正によって、メインプロセッサ21は、信頼できるデバイス24をアドレス指定して、その最初の命令を受け取るように指示される。この変更は、単に、メインプロセッサ21に異なるアドレスをハードコード化することによって行うことができる。代替的に、信頼できるデバイス24に、標準BIOSプログラムのアドレスを割り当てることができる。この場合、メインプロセッサの構成を修正する必要はない。
【0034】
一方、比較的安全なプラットフォームは、このような基本変更なしに達成することができる。このようなインプリメンテーションでは、プラットフォームは、電源投入時には依然としてBIOSにより制御され、したがって、BIOS(または、少なくともBIOSブートブロック)も信頼できるものでなければならない。これは、信頼の基盤(root-of-trust)が(説明した、好ましい信頼できるプラットフォームの実施の形態におけるように)単一ではなく、2つ存在することを意味し、BIOSブートブロックも信頼の基盤となることを意味する。
【0035】
BIOSブートブロックが、信頼できるデバイス24内に含まれることは非常に望ましい。これによって、完全性メトリックを得ることの破壊(通常ならば、悪性ソフトウェアプロセスが存在する場合に発生し得る)が防止され、悪性ソフトウェアプロセスが、BIOS(たとえ正しくても)がオペレーティングシステムに適した環境を構築できない状況を作り出すことが防止される。
【0036】
信頼できるデバイス24は、図3に示すように複数のブロックを備える。システムがリセットされた後、信頼できるデバイス24は、認証されたブートプロセスを実行して、プラットフォーム10のオペレーティングシステム(システムクロックおよびモニタ上の表示を含む)が適切にかつ安全な方法で実行されていることを保証する。より正確には、プラットフォームの状態が信頼できるように記録されることを保証する。認証されたブートプロセスの期間中、信頼できるデバイス24は、コンピューティングプラットフォーム10の完全性メトリックを取得する。また、信頼できるデバイス24は、安全なデータ転送、ならびに、例えば、暗号化/解読および署名/検証を介して当該信頼できるデバイスとスマートカードとの間の認証を実行することもできる。また、信頼できるデバイス24は、ユーザインターフェースのロック等のさまざまなセキュリティ制御ポリシーを安全に実行することもできる。
【0037】
具体的には、信頼できるデバイスは、コントローラ30、測定機能31、暗号機能32、認証機能33、およびインターフェース回路部34を備える。コントローラ30は、信頼できるデバイス24の全体的なオペレーションを制御し、且つ信頼できるデバイス24の他の機能およびマザーボード20の他のデバイスと相互作用するようにプログラミングされている。測定機能31は、プラットフォーム10から完全性メトリックを取得するためのものである。暗号機能32は、指定されたデータの署名、暗号化、または解読を行うためのものである。認証機能33は、スマートカードを認証するためのものである。インターフェース回路部34は、信頼できるデバイス24を、マザーボード20のデータバス26、制御ライン27、およびアドレスライン28にそれぞれ接続するための適切なポート(36、37および38)を有する。信頼できるデバイス24のこれらブロックのそれぞれは、信頼できるデバイス24の適切な揮発性メモリエリア4および/または不揮発性メモリエリア3に(通常、コントローラ30を介して)アクセスする。これに加えて、信頼できるデバイス24は、耐タンパ性を有するように、既知の方法で設計される。
【0038】
好ましい構成では、モニタ18は、信頼できるコンポーネント自体に含まれるモニタサブシステムによって直接駆動することができる。この実施の形態では、信頼できるコンポーネント空間には、信頼できるコンポーネント自体が常駐し、表示が、信頼できるコンポーネントによってモニタ18に生成される。この構成は、本出願人の国際特許出願公開第WO00/73879号にさらに説明されている。この国際特許出願は、参照により本明細書に援用される。
【0039】
性能の理由により、信頼できるデバイス24は、特定用途向け集積回路(ASIC)として実施されることがある。しかしながら、柔軟性のため、信頼できるデバイス24は、好ましくは、適切にプログラミングされたマイクロコントローラである。ASICおよびマイクロコントローラは、共に、マイクロエレクトロニクスの技術分野において既知であり、本明細書ではこれ以上詳細に考察しないことにする。
【0040】
信頼できるデバイス24の不揮発性メモリ3に記憶された1つのデータ項目は、証明書350である。この証明書350は、少なくとも、信頼できるデバイス24の公開鍵351、および、信頼できる関係者(TP)によって測定されたプラットフォーム完全性メトリックの認証値352を含む。証明書350は、信頼できるデバイス24に記憶される前に、TPのプライベート鍵を使用してTPにより署名される。後の通信セッションでは、プラットフォーム10のユーザは、取得された完全性メトリックを真正な完全性メトリック352と比較することによって、プラットフォーム10の完全性を検証することができる。一致する場合、ユーザは、プラットフォーム10が破壊されていないことを確信することができる。TPの一般に利用可能な公開鍵を知ることによって、証明書350の簡単な検証が可能になる。また、不揮発性メモリ35は識別(ID)ラベル353も含む。このIDラベル353は、或る状況において一意である従来のIDラベルであり、例えば、連続番号である。IDラベル353は、一般に、信頼できるデバイス24に関連したデータのインデックスおよびラベルに使用されるが、信頼できる状況下においてプラットフォーム10の同一性を証明するのにそれ自体では不十分である。
【0041】
信頼できるデバイス24は、自身が関連付けられているコンピューティングプラットフォーム10の完全性メトリックを信頼できるように測定または取得する少なくとも1つの方法を備えている。これによって、プラットフォーム10の潜在的なユーザには、プラットフォーム10がハードウェアレベルにおいてもBIOSプログラムレベルにおいても破壊されていないことの高レベルの確信が与えられる。オペレーティングシステムおよびアプリケーションプログラムコードが破壊されていないことをチェックするための他の既知のプロセス、例えばウィルスチェッカが、通常、配置されることになる。
【0042】
測定機能31は、信頼できるデバイス24のハッシュプログラム354およびプライベート鍵355を記憶するための不揮発性メモリ3、ならびに、取得された完全性メトリックを摘要361の形で記憶するための揮発性メモリ4にアクセスする。適切な実施の形態では、揮発性メモリ4は、プラットフォーム10にアクセスするのに使用できる1つまたは複数の真正なスマートカード19の公開鍵および関連したIDラベル360a〜360nを記憶するのに使用することもできる。
【0043】
完全性メトリックの取得は、本発明にとって必須のものではなく、本明細書ではこれ以上説明しないことにする。このプロセス、および、ユーザまたは第3の関係者による信頼できるプラットフォームの完全性を検証するプロセスは、国際特許出願公開第WO00/48063号に詳細に説明されるプロセスである。
【0044】
上述したように、信頼できるプラットフォームに対してユーザを認証するための好ましい手段は、スマートカード19等のトークンデバイスである(ただし、ユーザは、例えば、ネットワークによって信頼できるプラットフォームと通信するリモートプラットフォームとすることができることに留意すべきである)。ユーザのスマートカード19は、コンピューティングエンティティとは別個のトークンデバイスである。このトークンデバイスは、スマートカードリーダポート19を介してコンピューティングエンティティと相互作用する。ユーザは、いくつかの異なるベンダまたはサービスプロバイダによって発行された、いくつかの異なるスマートカードを有することができる。また、ユーザは、本明細書で説明するような複数のコンピューティングエンティティのいずれか1つからインターネットまたは複数のネットワークコンピュータにアクセスすることができる。これら複数のコンピューティングエンティティには、信頼できるコンポーネントおよびスマートカードリーダが提供される。ユーザが使用している個々のコンピューティングエンティティの当該ユーザの信頼は、ユーザの信頼できるスマートカードトークンとそのコンピューティングエンティティの信頼できるコンポーネントとの間の相互作用から得られる。ユーザは、自身の信頼できるスマートカードトークンを頼りにして、信頼できるコンポーネントの信頼性を検証する。
【0045】
図5は、信頼できる関係者TPによる動作、プラットフォームに組み込まれた信頼できるデバイス24による動作、および、従来技術の信頼できるプラットフォーム技術に従って信頼できるプラットフォームの完全性を検証したい(リモートプラットフォームの)ユーザによる動作のフローを示している。ユーザがローカルユーザである場合にも、図5に示すステップと実質的に同じステップが含まれることが理解されよう。いずれの場合も、ユーザは、通常、或る形態のソフトウェアアプリケーションを頼りにして、検証を遂行する。リモートプラットフォームまたは信頼できるプラットフォームでソフトウェアアプリケーションを実行することが可能である。しかしながら、リモートプラットフォームであっても、ソフトウェアアプリケーションを何らかの方法で破壊できる機会がある。したがって、高レベルの完全性を得るには、ソフトウェアアプリケーションがユーザのスマートカードに常駐することが好ましい。このユーザは、検証のためにこのスマートカードを適切なリーダに挿入することになる。
【0046】
最初の段階では、信頼できるプラットフォームを保証するTPが、プラットフォームのタイプを検査して、そのプラットフォームを保証すべきかどうかを決定する。これは、ポリシーの問題である。すべてがうまくいくと、ステップ500において、TPは、プラットフォームの完全性メトリックの値を測定する。次に、TPは、ステップ505で、プラットフォームの証明書を生成する。この証明書は、信頼できるデバイスの公開鍵およびオプションとしてそのIDラベルを、測定された完全性メトリックに付加すること、および、TPのプライベート鍵でその文字列に署名することによって、TPにより生成される。本発明は、特に、イベントのこの連鎖およびこのような信頼できる関係者(通常、認証局)の役割の改良に関係していることに留意すべきである。
【0047】
信頼できるデバイス24は、その後、自身のプライベート鍵を使用して、ユーザから受け取った或る入力データを処理し出力データを生成し、入力/出力の対が、プライベート鍵の知識なしでは生成することが統計的には不可能であるようにすることによって自身の同一性を証明する。したがって、プライベート鍵の知識は、この場合の同一性の基礎を形成する。明らかに、対称暗号化を使用して、同一性の基礎を形成することは実現可能である。しかしながら、対称暗号化を使用する場合の不都合は、ユーザが自身の秘密値を信頼できるデバイスと共有する必要があるということである。さらに、秘密値をユーザと共有する必要がある結果として、対称暗号化は、原則として、ユーザに同一性を証明するには十分であるが、第3の関係者に同一性を証明するには不十分である。第3の関係者は、信頼できるデバイスまたはユーザからもたらされた検証を完全に確信することができない。
【0048】
ステップ510において、信頼できるデバイス24は、当該信頼できるデバイス24の適切な不揮発性メモリロケーション3に証明書350を書き込むことによって初期化される。これは、好ましくは、信頼できるデバイス24がマザーボード20にインストールされた後に、信頼できるデバイス24との安全な通信によって行われる。信頼できるデバイス24に証明書を書き込む方法は、プライベート鍵をスマートカードに書き込むことによってスマートカードを初期化するのに使用される方法と類似している。安全な通信は、TPのみが知っている「マスタ鍵」によってサポートされる。この「マスタ鍵」は、製造期間中に信頼できるデバイス(またはスマートカード)に書き込まれ、信頼できるデバイス24へのデータの書き込みを可能にするのに使用される。マスタ鍵の知識なしで、信頼できるデバイス24へのデータの書き込みは不可能である。
【0049】
プラットフォームの動作中の或る後の時点で、例えば、プラットフォームが電源投入されるか、または、リセットされると、ステップ515において、信頼できるデバイス24は、プラットフォームの完全性メトリック361を取得して記憶する。
【0050】
ユーザがプラットフォームと通信したい場合、ステップ520において、ユーザは、乱数等のノンスを作成し、ステップ525において、信頼できるデバイス24を誰何する(プラットフォームのオペレーティングシステムまたは適切なソフトウェアアプリケーションは、その誰何を認識し、通常はBIOSタイプの呼び出しを介して適切な方法で、信頼できるデバイス24にその誰何を渡すように構成される)。ノンスは、信頼できないプラットフォームによる、古いが本物の署名を再生したもの(「反射攻撃(replay attack)」と呼ばれる)によって引き起こされる詐欺からユーザを保護するのに使用される。ノンスを提供してその応答を検証するプロセスは、既知の「誰何/応答」プロセスの一例である。
【0051】
ステップ530において、信頼できるデバイス24は、誰何を受け取って、適切な応答を作成する。この応答は、測定された完全性メトリックおよびノンス、ならびにオプションとしてそのIDラベルの摘要とすることができる。次に、ステップ535において、信頼できるデバイス24は、そのプライベート鍵を使用して摘要に署名し、署名した摘要を、証明書350を添付してユーザに返す。
【0052】
ステップ540において、ユーザは、誰何応答を受け取り、TPの既知の公開鍵を使用して証明書を検証する。次に、ユーザは、ステップ550において、信頼できるデバイス24の公開鍵を証明書から抽出し、その公開鍵を使用して、誰何応答からの署名された摘要を解読する。次に、ステップ560において、ユーザは、誰何応答内部のノンスを検証する。次に、ステップ570において、ユーザは、計算された完全性メトリックを適切なプラットフォーム完全性メトリックと比較する。計算された完全性メトリックは、ユーザが誰何応答から抽出する。適切なプラットフォーム完全性メトリックは、ユーザが証明書から抽出する。上記検証ステップのいずれかが失敗すると、ステップ545、555、565、または575において、プロセス全体がステップ580で終了し、それ以上の通信は行われない。
【0053】
すべてがうまくいくと仮定して、ステップ585および590において、ユーザおよび信頼できるプラットフォームは、他のプロトコルを使用して、他のデータの安全な通信をセットアップする。ここで、プラットフォームからのデータは、好ましくは、信頼できるデバイス24によって署名される。
【0054】
この検証プロセスをさらに洗練することが可能である。誰何者が、誰何を通じて、プラットフォーム完全性メトリックの値、および、そのプラットフォーム完全性メトリックの値が得られた方法の双方を知っていることが望ましい。これら双方の情報は、誰何者がプラットフォームの完全性について適切な判断を行うことを可能にするものであることが望ましい。また、誰何者は、利用可能な多くの異なるオプションを有する。すなわち、誰何者は、完全性メトリックが、信頼できるデバイス24において正当であると認識されることを容認することができるか、または、完全性メトリックの値が、誰何者によって保持された値と等しい場合に、プラットフォームが、関連したレベルの完全性を有することのみを容認することができる(もしくは、これら2つの場合に、異なるレベルの信頼が存在すると考えることができる)。
【0055】
証明書への署名、証明書の使用、および誰何/応答の技法、ならびに、それらを使用して同一性を証明する技法は、セキュリティの当業者に既知であり、したがって、本明細書ではこれ以上詳細に説明する必要はない。
【0056】
前述の構造およびプロトコルを使用し、場合によっては変更する、本発明の特定の実施の形態を次に説明することにする。まず、特に関連した状況を図6に関して説明することにする。図6は、従来の信頼できるコンピューティング技術における、リモートサービスプロバイダ(RSP(remote service provider))から信頼できるプラットフォームによるサービスの獲得に関与するか、または、関与する可能性のある異なる関係者、および、それら異なる関係者の信頼関係を概略的に示している。
【0057】
信頼できるプラットフォーム製造業者61は、信頼できるプラットフォームモジュール(TPM(trusted platform module))62を製造し、一意の保証鍵をTMP62に提供する(ステップ65)。製造業者はこの一意の保証鍵を証明する。この証明された保証鍵は、次に、信頼できるプラットフォーム製造業者61によって信頼された認証局(CA)63に渡され(ステップ66)、ランダムに選ばれた識別情報に関する証明書が、CAによって発行される(ステップ67)。このランダムに選ばれた識別情報は、TPMの新しい識別情報となる。リモートサービスプロバイダ(RSP)64は、プラットフォームにサービスを提供することができるが、サービスを受け取るプラットフォームが確かに信頼できることが確信できない場合に、このサービスを提供することを好まないことがある。TPM62は、このRSP64とのその後の相互作用において、このCA証明書をRSP64に提供する(ステップ68)。RSP64は、次に、CAの公開データを使用することによって、その証明書がCA62によって正当に発行されたものであることをチェックすることができる。ここで、RSPは、CA、および、本物の信頼できるプラットフォームの製造業者の双方を信頼するものと仮定する。そうである場合、ここに、有効な信頼の連鎖(chain of trust)が存在する。すなわち、RSPはCAを信頼し、したがって、(TPMが、信頼できるプラットフォーム製造業者によって証明されたことを示すものと主張する)証明された情報が正当であることを信頼し、したがって、TPM62が、確かに、既知の信頼できるプラットフォーム製造業者61の適法な製品であることを信頼する。信頼できるプラットフォームのプライバシーに関連した事項も、RSPに関して満たすことができる。すなわち、この構成は、RSPがどのTPMと相互作用しているかをRSPに明らかにする必要はない(すなわち、これは、RSPが確立できるものは、RSPが、既知でかつ信頼できる製造業者によって製造された真正なTPMと相互作用しているということだけであるように構成することができる)。
【0058】
上述したように、この方式に関する深刻な問題は、CAが現在、システムの弱点であるということである。すなわち、TPMの識別情報(および、場合によっては多数のTPMの識別情報)を相関させることが可能である。CAが、保証鍵を識別情報にマッピングしないとする同意を破るか、または、このようなマッピングを行う許可を有し、CAのデータベースが危険にさらされる場合、そのCAによって証明されているすべてのTPMの識別情報も、おそらく危険にさらされていることになる。
【0059】
この問題に対処する2つの異なる方式および関連したアーキテクチャを次に説明することにする。第1の方式は、信頼できるプラットフォームが、秘密値そのものを明らかにすることなく、信頼できる製造業者によって正当に形成された証明書を所有するということを検証者(リモートサービスプロバイダ等)に直接証明することを、信頼できるプラットフォームモジュールに与えられた証明書の特定の構成が信頼できるプラットフォームにどのように可能にすることができるかを詳述し、次に、取り消しを満足に実行できるシステムアーキテクチャの説明に進む。第2の方式は、取り消しに使用される証拠を提供するように適合されたグループ署名方式である。この第2の方式は、広く説明されるように、一般的な方式とみなすことができ、第1の方式はこの一例でもある(ただし、異なる特定のアルゴリズムを第1の方式に対して使用する、第2の方式の特定のバージョンも説明される)。
【0060】
<第1の方式>
本発明の態様では、この問題を解決するために取られた手法は、検証者が特定のTPMを見分けることができないように、TPMが信頼できる製造業者の証明を有することを、TPM自身が検証者に確信させることを可能にするメカニズムを見つけることである。検証者は、RSPの場合もあるし、認証局の場合もあるし、取り消し局の場合もある。したがって、TPMは、単に、その保証鍵をCAに与え、次いで、RSAが(CAを参照することによる)間接的な証明を有するのではなく、自身が適法なTPMであるという直接的な証明を提供することができる。関与する関係は、(同じ要素を参照する場合は、図6と同じ参照番号で)図7に示されている。信頼できるプラットフォーム製造業者61は、一意の識別情報をTPM62に提供し、この識別情報を証明する(ステップ65)。以下で分かるが、この証明は新しい形態を取る。したがって、このような構成では、CA63は、この製造業者の証明書を証明する役割を行う必要がないということが可能である(ただし、取り消しに関して以下で分かるように、TPM証明が取り消されたかどうかを判断することをRSPに可能にする際のCAの役割は依然として存在する。これは、図7では、破線73によって表されている)。その代わりに、TPMが信頼できる製造業者の適法な商品であることを、検証者64が立証する必要がある場合、相互作用71が行われる。この相互作用71では、TPMは、自身の一意の識別情報を検証者に明らかにしないが、自身の証明書が、信頼できる製造業者による適切な方法以外の何らかの方法で形成された可能性は極めて少ないことを(適切な標準機関(standard)へ)示す。以下でさらに説明するように、この相互作用71は、検証者64とTPM62との間の反復的な相互作用とすることができる(証明者および検証者を有するこのような相互作用による証明は、ゼロ知識証明として知られている。この証明では、証明者は、或る記述の証明にどのように取り掛かるに関する情報を何ら明らかにすることなく、検証者にその記述を確信させる)。または、この相互作用71は、検証者による評価について、署名された数学的構造を検証者にTPMによって提供することにより達成することもできる(TPMに対するいくつかの計算負担を犠牲にして通信効率に明らかな利点を有する)。いずれの場合も、検証者は、信頼できるプラットフォーム製造業者からの公開データを使用して、証明書が、信頼できるプラットフォーム製造業者によって適切な方法で形成されたものに違いないと判断する。
【0061】
本発明の一態様による直接的な証明方式を次に説明することにする。この方式は、2つのバージョンで説明される。一方のバージョンは、TPMと検証者との間の反復的な相互作用を必要とするゼロ知識証明である。他方のバージョンは、TPMによる数学的構造の匿名の署名を含み、検証者は、その後、TPMの証明書がその数学的構造の解決によって正当に形成されるものと判断することができる。いずれの場合も、製造業者による証明は、条件
【0062】
【数3】
【0063】
を使用する。
ここで、mはTPMの識別情報であり、(e1,e2,n,t1,t2)はTPM製造業者の公開パラメータである。これらのプライベートコンポーネントのうち、nはRSAモジュラスであり、e1およびe2はRSAの指数であり、t1およびt2は、ランダムに選ばれた整数である。d1は、e1から導出されたプライベートパラメータである。この条件は、ゼロ知識では(loge1)+(loge2)ラウンドによって証明することができる。e1もe2もセキュリティパラメータではないので、双方は、合理的に小さな範囲内になるように選ぶことができる(TCG仕様の現在のバージョンでは、e=216+1であり、nは2048ビットのサイズを有する)。この方式のセキュリティは、nが未知の因数分解を有するRSAモジュラスである場合に、
【0064】
【数4】
【0065】
となるような値mおよびcを計算することが困難となるように、
【0066】
【数5】
【0067】
に2つの整数t1およびt2が存在し、
【0068】
【数6】
【0069】
に2つの小さな整数e1およびe2が存在するという仮定(J. CamenischおよびM. Stadler著「Efficient group signature schemes for large groups」, Advances in Cryptology - CRYPTO '97, LNCS 1294, pp. 410-424, Springer-Verlag, 1997によって提案された)に基づいている。
【0070】
【数7】
【0071】
を用いて正当な対(m,c)を偽造するために、攻撃者は、(a)cを選び、次に、
【0072】
【数8】
【0073】
を計算するか、または、(b)mを選び、次に、
【0074】
【数9】
【0075】
を計算することによって開始することができる。いずれの場合も、攻撃者は、RSA問題を解かなければならず、したがって、正当な対の偽造は困難であるとみなすことができる。
【0076】
用語がこの出願で具体的に特定されていない場合、これは、一般的に、それら用語が一般に暗号学で使用されるものであり、当業者に容易に理解されるからである。あるいは、読み手には、適切な暗号学の入門書(http://www.rsasecurity.com/rsalabs/faq/index.htmlで入手される、RSA Laboratories' Frequently Asked Questions About Today's Cryptographyのテキストおよび参考文献で提供される入門書等)が案内される。
【0077】
各方式は、基本構築ブロックとして、(h,x=hu,y=hv,z=huv)がDiffie−Hellman(DH)タプルであること、および、証明者が秘密値vを知っていることを検証するのに使用される技術プリミティブ(technical primitive)を使用する。ゼロ知識証明およびその署名バージョンには、異なる技術プリミティブが使用される。双方のプリミティブは、以下のように同じ入力を使用する。
【0078】
公開入力:
n−RSAモジュラス、H−|n|に近い出力サイズを有するハッシュ関数
K−P=Kn+1(素数)を満たす最小数
a∈Zn*(a≠1),h=aK mod P
x=hu mod P,y=hv mod P,z=huv mod P
(証明者の)プライベート入力:v
【0079】
相互作用方式のプリミティブは、本明細書では、DH−interaction(h,x,y,z)と呼ぶ。これは、以下のステップを含む。
1.検証者は、1<a<n、1<b<nをランダムに選び、証明者にC=haxb mod Pを送る。
2.証明者は、検証者にR=H(Cv mod P)を送る。
3.検証者は、R?=H(yazb mod P)である場合は容認し、そうでない場合は拒否する(なお、例えば、「A?=B」は、「もしA=Bなら真、それ以外は偽」を意味する)。
【0080】
このプリミティブは、明らかにシミュレーション可能である(ゼロ知識証明の特性は、ゼロ知識証明が、どの第3の関係者にも秘密値に関する情報を提供することなく正確にシミュレーションできることである)。その理由は、誰もが、vを知ることなく、C=haxb mod PおよびR=H(yazb mod P)を計算できるからである。このシミュレーションは、実際の証明からの分布(distribution)と同一の分布を有する。
【0081】
署名方式のプリミティブは、本明細書では、DH−signature(h,x,y,z)と呼ぶ。これは、証明者と検証者との間で以下のように働く。
1.署名者は1<b<nをランダムに選び、次に、以下を計算する。
f=hb mod P,g=xb mod P
w=H(x,y,z,f,g)
s=b−v*w mod n
署名者は、DHタプル(x,y,z)に対する署名として、検証者に(w,s)を送る。
2.その署名を検証するために、検証者は以下を計算する。
f'=hsyw mod P
g'=xszw mod P
w'=H(x,y,z,f',g')
検証者は、w'?=wのチェックが成功する場合は容認し、そうでない場合は拒否する。
【0082】
DH−signature(h,x,y,z)は、鍵(v,h,x,y,z,n,P)に基づいたDHタプル(x,y,z)に署名するSchnorrに基づく署名(C. P. Schnorr著「Efficient identification and signatures for smart cards」, Advances in Cryptology-Crypto '89, LNCS 435, pp. 239-252, Springer-Verlag, 1990を参照されたい)である。ここで、vはプライベートパラメータであり、(h,x,y,z,n,P)は公開パラメータである。
【0083】
これらのプリミティブを使用して、図7で述べた信頼関係に適した直接証明方式を提供することを次に説明することにする。信頼できるプラットフォームモジュールの信頼できる製造業者(以下、TPM製造業者)は、自身が生成するTPMを証明できるようにするために次のことを必要とする。すなわち、1つのRSAモジュラスn、2つの公開パラメータe1およびe2、ならびにe1*d1=1 mod φ(n)となるように計算された1つのプライベートパラメータd1を必要とする。値Kは、P=Kn+1が素数となるように選ばれる。nは2048ビットよりも僅かに小さく、KはPを素数とする最小の値であり、Pは約2048ビットであることが望ましい。t1およびt2は、それらのe1乗根およびe2乗根を計算するのが困難であるように、
【0084】
【数10】
【0085】
においてランダムに選ばれる。
【0086】
TPM製造業者は、次に、自身が生成するTPMを次のように証明する。すなわち、まず、識別情報mが1<m<nとなるように選ばれる。この後、TPM製造業者は、
【0087】
【数11】
【0088】
を計算することによってmを証明する。mおよびcは、次に、TPMに記憶される。オプションとして、TPM製造業者がmの値もcの値も知らないように、ChaumのRSAブラインド署名方式(D. Chaum著「Blind signatures for untraceable payments」, Advances in Cryptology - Crypto '82, Springer-Verlag (1983), 199-203を参照されたい)を使用することが可能である。
【0089】
本明細書で説明した直接証明方式は、以下の目標を達成するように設計される。すなわち、この方式の実行終了時に、
1.検証者は、要求されたTPMがmおよびcを知っていると確信する。ここで、
【0090】
【数12】
【0091】
である。
2.検証者はmもcも知らない。
【0092】
検証者に上記1)を確信させるために、TPMは、
【0093】
【数13】
【0094】
および
【0095】
【数14】
【0096】
を検証者に送り、次に、xおよびyの構造を検証者に確信させる。ここで、(h,e1,e2)はTPMからの公開入力であり、(m,c)はTPMからのプライベート入力である。その後、検証者は、
【0097】
【数15】
【0098】
である場合は1)を容認し、そうでない場合は1)を拒否する。
【0099】
xおよびyの構造のこのような証明を得るための一般的な場合のプロトコルは、以下の通りである。このプロトコルは、ゼロ知識バージョンおよび匿名署名バージョンの双方に適用され、これら2つのバージョンにおけるこのプロトコルの適用の相違が示される。ゼロ知識バージョンは、2001年2月20日に出願された本出願人の先願の英国特許出願第0104140.9号に一部由来するのに対して、署名バージョンは、Schnorr署名方式(C. P. Schnorr著「Efficient identification and signatures for smart cards」, Advances in Cryptology-Crypto '89, LNCS 435, pp. 239-252, Springer-Verlag, 1990を参照されたい)に一部由来する。ゼロ知識バージョンでは、DH−interactionがこのプロトコルで使用されることになり、署名バージョンでは、DH−signatureが代わりに使用されることになる。
【0100】
このプロトコルは、具体的にe1およびe2に適用されるのではなく、一般的に任意のeに適用される。したがって、eが、e1またはe2の代わりに使用され、
【0101】
【数16】
【0102】
が、
【0103】
【数17】
【0104】
または
【0105】
【数18】
【0106】
の代わりに使用される。このように、指定されたプロトコルは、xおよびyの双方を証明するのに適している。
【0107】
プロトコル
【0108】
【数19】
【0109】
証明者は、公開入力(e,n,P,h,λ,δ(e))が
【0110】
【数20】
【0111】
およびλ=hβを満たすこと、ならびに、証明者がαおよびβを知っていることを検証者に確信させる。
【0112】
このプロトコルでは、
【0113】
【数21】
【0114】
である。このプロトコルは、DH−interactionまたはDH−signatureのいずれかのチェックが成功しない場合に中止される。
【0115】
証明者および検証者は、以下のプロトコルを、γ=eから開始することによって実行する。
【0116】
while γ>1 do
{
1.証明者は以下のステップを実行する。
【0117】
【数22】
【0118】
tが偶数の場合:y←δ(γ),xを検証者に送る。
tが奇数の場合:y←δ(γ−1),xおよびyを検証者に送る。
2.tが偶数の場合:双方がDH−interaction(h,x,x,δ(γ))またはDH−signature(h,x,x,δ(γ))を実行する。
tが奇数の場合:双方がDH−interaction(h,x,x,y)またはDH−signature(h,x,x,y)、および、DH−interaction(h,y,λ,δ(γ))またはDH−signature(h,y,λ,δ(γ))を実行する。
3.双方が
【0119】
【数23】
【0120】
を実行し、次に、(δ(γ)←x)を実行する。
}
γ=1の場合、双方がDH−interaction(h,h,δ(1),λ)またはDH−signature(h,h,δ(1),λ)を実行する。
【0121】
検証者は、上記プロセスのすべてが成功した場合は容認し、そうでない場合は拒否する。
【0122】
上記プロトコルを、一方は
【0123】
【数24】
【0124】
により、他方は、
【0125】
【数25】
【0126】
により、2回実行した後、検証者は、第1回の実行からのδ(e1)(すなわちy)および第2回の実行からのδ(e2)(すなわちx)が、
【0127】
【数26】
【0128】
を満たす場合に、
【0129】
【数27】
【0130】
の構造を容認する。
【0131】
ゼロ知識バージョンと署名バージョンとの間の一方の基本的な相違は、(上述したように)異なるプリミティブが使用されるということである。他方の基本的な相違は、相互作用バージョンが、或る意味で、プロトコル中、同期した動作を含む(プロトコル中の動作に、証明者と検証者との間の相互作用のストリームが存在する)が、署名バージョンは基本的に非同期である(証明者は、プロトコル中、数学的構造を生成するように動作し、この数学的構造に署名し、そして、それを検証者に提供する。検証者は、その署名をチェックして、数学的構造の間、検証を得るように動作する)。
【0132】
ゼロ知識方式の場合、各DH−interactionは、3モジュロ累乗法(modulo exponentiation)を必要とする。TPMが1つを計算し、検証者が2つを計算する。全体の相互作用証明は、約5.5*((loge1)+(loge2))モジュロ累乗法のコストを要する。TPMが約2.5*((loge1)+(loge2))を計算し、検証者が約3*((loge1)+(loge2))を計算する。通信ラウンドは(loge1)+(loge2)である。|e1|=|e2|=16を選ぶ場合、TPMは、72モジュロ累乗法を計算し、かつ検証者と32ラウンドで通信する必要がある。
【0133】
署名方式の場合、各DH−signatureは6モジュロ累乗法を必要とする。TPMが2つを計算し、検証者が4つを計算する。署名を行うことは約4*((loge1)+(loge2))モジュロ累乗法のコストを要し、署名を検証することは約6*((loge1)+(loge2))のコストを要する。通信コストは、約2.5*((loge1)+(loge2))*(logP)ビットを有する単一のメッセージのコストのみである。
【0134】
署名方式の具体的なケースを次に説明することにする。このケースは、特に、既存の信頼できるプラットフォーム技術の修正に特に適するように選ばれる。本明細書では、出願人は、e1=216+1およびe2=2を選ぶこととする。
【0135】
TPMは、まず、a∈R(1,n−1]をランダムに選んで、かつh=aK mod P、
【0136】
【数28】
【0137】
および
【0138】
【数29】
【0139】
を計算することによってh、x、およびyを生成する。TPMは、検証者がh、x、およびyを得ることができるように、これらを利用可能にする(なお、例えば、cについて「[a,b]」と記した場合、a<=c<=bを意味し、同じく「]a,b[」と記した場合、a<c<bを意味し、同じく「]a,b]」と記した場合、a<c<=bを意味する。)
【0140】
TPMは、以下のように、xおよびyに2つの署名をそれぞれ行う。
【0141】
1.
【0142】
【数30】
【0143】
TPMは1<b<nをランダムに選び、次に、以下を計算する。
z=hm mod n
f=hb mod P,g=zb mod P
u=H(z,x,f,g)
s=b−m*u mod n
TPMは、
【0144】
【数31】
【0145】
の構造に対する署名として、(z,u,s)を刻む(chip)。
【0146】
この署名を検証するために、検証者は以下を計算する。
f'=hs*zu mod P
g'=zs*xu mod P
u'=H(z,x,f',g')
検証者は、u'?=uのチェックが成功する場合は
【0147】
【数32】
【0148】
を容認し、そうでない場合は拒否する。
【0149】
2.
【0150】
【数33】
【0151】
TPMは、
【0152】
【数34】
【0153】
を計算する。これらの値は、TPMの長期秘密値として使用することができる。TPMは、例えば、TMPの外部にこのような秘密値の暗号化されたバージョンのみを記憶して、このような秘密値を安全に記憶する必要がある。
【0154】
署名を行うために、TPMは、bi∈R(1,n−1](0≦i≦15)をランダムに選んで、以下を計算する。
【0155】
【数35】
【0156】
v=H(h,k,h0,h1,…,h16,f0,f1,…,f15,g0,g1,…,g16)
si=bi−ri*v mod n (0≦i≦15)
【0157】
TPMは、
【0158】
【数36】
【0159】
の構造に対する署名として以下のデータを刻む。
【0160】
hi(0≦i≦16),v,si(0≦i≦15)
【0161】
この署名を検証するために、検証者は以下を計算する。
【0162】
【数37】
【0163】
v'=H(h,k,h0,h1,…,h16,f0',f1',…,h15,g0',g1',…,g16')
次に、検証者は、v'?=vをチェックする。
【0164】
これらの署名の検証に基づいて、検証者は、以下を確信する。
(1)DH−signatureから、検証者は、vのf0'およびg0'をチェックすることによって、
【0165】
【数38】
【0166】
を確信する。
【0167】
【数39】
【0168】
(2)DH−signatureおよび(1)から、検証者は、vのfi'およびgi'をチェックすることによって、
【0169】
【数40】
【0170】
を確信する。
【0171】
【数41】
【0172】
(3)DH−signatureおよび(1)から、検証者は、vのf0'およびg16'をチェックすることによって、
c∈(1,n−1],h0=hc mod P,y=h16c mod P
を確信する。
【0173】
【数42】
【0174】
(1)、(2)、および(3)から、検証者は以下を確信する。
【0175】
【数43】
【0176】
【数44】
【0177】
および
【0178】
【数45】
【0179】
のそれぞれに対する2つの検証が成功した後、検証者としての検証者は、その結果、
【0180】
【数46】
【0181】
である場合に、
【0182】
【数47】
【0183】
の構成を容認することができる。TPMは、その結果、自身が、証明cを有する秘密値mを有することを検証者に直接証明したことになり、mの値もcの値も明らかにすることなくそれを行ったことになる。ここで、
【0184】
【数48】
【0185】
である。
【0186】
2048ビットに近い出力サイズを有するハッシュ関数Hを実施するのに特に適した方法は、既知のハッシュアルゴリズムSHA−1(その理由は、SHA−1は、現在、従来のTPMにすでに使用されているからである)を、結果を結合して12回使用することである。すなわち、H(x)=SHA−1(x+1)‖SHA−1(x+2)‖…‖SHA−1(x+12)である。ここで、‖は結合である。
【0187】
本発明の一態様による直接証明方式のこの特別なケースでは、e1=216+1、e2=2、および|P|=2048である。
【0188】
【数49】
【0189】
の構成に署名するために、TPMは以下のことを行う必要がある。
1.2048ビットサイズを有する18個の乱数を生成すること。
2.54個が2048ビット長のモジュラスおよび指数を有し、1つが2048ビットのモジュラスおよび(logK)ビットの指数を有する55個のRSAモジュロ累乗法を計算すること。
3.2048ビットモジュラスを有する17個の乗算モジュロ、17個の減算モジュロ、および1つの除算モジュロを計算すること。
4.24個のSHA−1関数と等価な2つのハッシュ関数を計算すること。
5.21*(logP)+19*(logn)ビットのサイズであるほぼ80kビットのサイズを有する署名を送ること。
【0190】
例示の従来のTPMは、2048ビットのRSA署名を500msで計算することができる暗号アクセラレータを含む。TPMは、
【0191】
【数50】
【0192】
の構造に1回署名するために、55個のRSAモジュロ累乗法を計算する必要がある。これには、約30秒を要する。しかしながら、これは事前に計算することができ、したがって、TPM−検証者の相互作用にとって許容できないオーバーヘッドを提供するものではない。
【0193】
このような直接証明方式を使用してTPMの同一性をRSPに証明することは、システム全体の弱点であることから認証局を取り除くという明らかな利点を有するが、潜在的な不都合も伴う。この不都合は、TPMの秘密値の証明を取り消すことが直接的ではないことである(これは、従来技術では、CAによって直接的に行うことができた。CAは、単に、自身が許可した証明書を取り消さなければならないだけであった)。TPMは、自身が、信頼できる製造業者の証明書を有することをRSPに確信させることができるが、RSPが特定のTPMを見分けることを可能にしない。各RSPは、悪性TPMの自身のブラックリストを構築することができる(以下でさらに説明するように、直接証明方式によって、RSPは、自身が相互作用した或るTPMを、自身が相互作用した他のTPMと区別することが可能になるので)が、各RSPは、自身がそのTPMについて知っているような情報を、別のRSP(または他の任意の関係者)に役立つように転送することはできない。そのRSP自身のブラックリストを他の任意のブラックリストと一致させる方法はない。その理由は、RSPは、TPMの識別情報を知らず、関連した転送可能なデータを有しないからである。攻撃者が、例えば、或るTPMを物理的に破壊することによって、或る識別情報を得た場合、その攻撃者は、この識別情報の記録を自身のブラックリストに有していなかったRSPに、この識別情報が正当であることを確信させることができる。
【0194】
定義によれば、悪性プラットフォームの秘密プリミティブが適法なコミュニティに明らかにされていない限り、直接証明方式の使用によって、グローバルに分散された取り消しリストを作成することは不可能である。信頼できるプラットフォームが使用される場合、これが発生する可能性は低い。したがって、どの所与のプラットフォームも、他のプラットフォームの悪い経験から直接学習することはできないと仮定することができる。したがって、ピアツーピアアーキテクチャが高度化した将来の世界では、抽出されたプリミティブが適法なコニュニティに知られていない限り、たとえプラットフォームが悪性TPMの突発的な発生があったことを知っても、そのプラットフォームには、(新しいウィルス定義と類似した)新しい「悪性の定義(rogue definition)」を与えることができず、それらの悪性のものを検出することはできない。したがって、ネットワーク全体が、信頼が破壊される不安のためにシャットダウンするおそれがある。プリミティブがブラインド方式を通じて作成されている(製造業者でさえもそれらプリミティブを知らず、したがって、どのTPMになりすますこともできないようになっている)場合、この問題ははるかに深刻なものになる。
【0195】
直接証明方式の目的は、識別情報の相関を防止することであるので、この問題は、直接証明方式にとって基本的なものである。直接証明方式が有効である場合、或る関係者が、第2の関係者の対応するものが第1の関係者の対応するものでもあることを当該第2の関係者が認識することを可能にする情報を当該第2の関係者に与えることは不可能である。したがって、TPMが破壊され、その秘密プリミティブが抽出されて、TPMのソフトウェアシミュレーションに複製された場合、それら抽出されたプリミティブが、悪性コミュニティだけでなく、適法なコミュニティにも知られない限り、分散リストにそのTPMを列挙することは不可能である。
【0196】
したがって、本発明のさらに別の態様では、改良されたシステムアーキテクチャが提案される。このシステムアーキテクチャは、たとえ、TPMがその証明書をRSPに明らかにすることなく、かつ、取り消しを行う認証局がTPMの保証識別情報(endorsement identity)を所有する必要なく、当該TPMがRSPに対する正当に形成された証明書を有するという直接証明を、当該TPMが提供するように適合されていても、有効な取り消しを可能にするものである。このシステムは、上記で説明した直接証明の形態に関して説明される。しかし、このアーキテクチャは、一般に、任意の構成に適用可能であることが理解されるべきである。この任意の構成とは、TPMが検証者に対する正当に形成された証明書を検証者に明らかにしない状態で当該TPMがその証明書を有するという直接証明を提供するように、TPMが適合される構成である。また、上記で使用された特定の直接証明が以下で参照される場合、このような参照は、この態様における本発明を越えることなく、他の任意の直接証明への参照に置き換え可能であることが理解されるべきである。
【0197】
システムは、図7に示すように、TPM製造業者61、TPM62、認証局(CA)63、およびRSP64の4組のエンティティを含む。CA63は、取り消し局の役割も果たす。
【0198】
上述したように、例示の直接証明方式を実施するために、各TPM製造業者は、パラメータn、K、P、e2、e2、d1、t1、およびt2を有する。ここで、n、K、P、e2、e2、t1、およびt2は公開パラメータであり、d1はプライベートパラメータである。各TPMは、
【0199】
【数51】
【0200】
を満たす秘密パラメータmおよびcを有する。異なる直接証明方式が使用される場合、TPM製造業者およびTPMは、異なるパラメータを使用することができる。
【0201】
この構成では、各CAは、従来の非対称鍵対PCAおよびSCAを有する。また、各CAは、複数の公開識別情報IDCAも有する。これらの公開識別情報IDCAは、特定の目的PAの識別情報と結合したCAの公開名nCA、すなわちIDCA=nCA‖PAとすることができる。各RSPは、PCAの認証されたバージョンを有する。
【0202】
対象となるシナリオでは、信頼できるプラットフォームデバイス(TPM)は、リモートサービスプロバイダ(RSP)と通信して、目的(本明細書では、1群の指定されたサービス)PAにアクセスする必要があり、認証局(CA)は、RSPによって信頼されて、PAの証明書を発行し、PAにアクセスすることを可能にすべきでないTPMのブラックリストを保持する。これは、次のようにして行うことができる。
【0203】
TPMは、まず、従来の非対称鍵対PTPMおよびSTPM(例えば、RSA鍵対)を作成し、次いで、mおよびcの秘密値に基いて、
【0204】
【数52】
【0205】
の構造に署名する。
上述したように、これを行うために、TPMは、hをランダムに選び、xおよびyを計算し、2つ署名
【0206】
【数53】
【0207】
および
【0208】
【数54】
【0209】
を行う。
ここで、
【0210】
【数55】
【0211】
であり、
【0212】
【数56】
【0213】
である。
TPMは、xおよびyを含む署名をPTPMと共にCAに送る。CAは、署名の検証が成功した後、TPMが、
【0214】
【数57】
【0215】
を満たす対(m,c)を有すること、および、所与のhおよびxが
【0216】
【数58】
【0217】
を満たすことを確信する。
これは、単に、上述した直接証明方式を、TPMによる証明およびRSPによる検証にさらに使用したものにすぎないことに留意されたい。ここでの唯一の重要な相違は、検証がCAによるということである。また、この結果として、このステップを実行するのに、他の任意の有効な直接証明方式を使用できることになる。
【0218】
CAは、次に、TPMにIDCAを送る(オプションとして、TPMは、信頼できるパブリックドメインからのIDCAに簡単にアクセスすることができる)。TPMは、hCA=H(IDCA)および
【0219】
【数59】
【0220】
となるようなhCAおよびx'を計算する。TPMは、上述したようなDH−signature(h,hCA,x,x')を計算し、この署名をCAに送る。CAは、まず、DH−signature(h,hCA,x,x')を検証する。この検証が成功しない場合、CAは、TPMの証明書の要求を拒否する。そうでない場合、CAは、x'がブラックリストにあるかどうかをチェックする。x'がブラックリストにある場合、CAは、このTPMも拒否する。そうでない場合、CAは、(TCG仕様の現在のバージョンにおけるプライベートCAと同じように)PCAおよびSCAを通常の方法で使用することによってPTPMを証明し、x'およびPTPMの証明書を記録する。これを管理する適切な方法は、CAが、内部アクセスのみのためにx'をPTPMと共に記録し、公にアクセスできる取り消しリストにPTPMを列挙することである。
【0221】
この場合も、DH−signatureを使用する直接証明方式に対する代替的な直接証明方式を、本発明のこの態様の範囲から逸脱することなく、ここでも使用できることに留意すべきである。必要なことは、CAが、TPMに発行された証明書を有するそれらTPMのリストを自ら確立できるように、直接証明方式のプロセスが、TPM秘密値を表すx'等の値を、その秘密値を明らかにすることなく生成できることだけである。
【0222】
TCG仕様の現在のバージョンと同じように、TPMは、RSPによって提供されたPAのグループのサービスにアクセスするために、PTPMの証明書でRSPに対して自身を認証する。RSPは、その証明書を検証し、また、この証明書がCAの取り消しリストにあるかどうかもチェックする。例えば、これは、従来の証明書取り消しリスト(CRL(Certificate Revocation List))を使用することによって行うことができる。
【0223】
CAは、一般に、自身が発行した証明書PTPMを、例えば、TPM識別情報が正当でないか、または、正当であるべきでないことが明らかであるような方法で、これらの証明書が特定のサービスにアクセスするのに使用されたRSP(または、悪性TPMと相互作用した他の関係者)から受け取ることによって悪性TPMを知ることになる。CAは、次に、証明書PTPMを、関連したTPMの検証で提供された関連したx'と照合することができる。証明書PTPMは、次に、CRLに置くことができる。悪性PTMは、x'の同じ値が検証プロセス中に生成されることになるので、さらなる証明書を得ることができない。上述したように、CAは、検証中にこれを検出し、悪性PTMへの証明書の提供を拒否する。
【0224】
<第2の方式>
上述したように、第2の方式は、取り消し証を有するグループ署名方式である。以下で説明するように、説明する特定の方式は、Advances in Cryptology - CRYPT 2000, LNCS 1880, pp. 255-270, Springer-Verlag, 2000のG. Ateniese、J. Camenisch、M. Joye,およびG. Tsudik著「A practical and provably secure coalition-resistant group signature scheme」に記載された方式をさらに発展させたバージョンである。以下で述べる方式では、各TPMは、一意の保証鍵z、および、ue=azb mod nを満たす対応する鍵証明書(u,e)を有する。ここで、(a,b,n)は、TPM製造業者の公開パラメータであり、nはRSAモジュラスであり、aおよびbはランダムに選ばれた整数である。この方式のセキュリティは、強RSA仮定および決定的(decisional)Diffie−Hellman仮定に基づいている。このグループ署名方式は、特に効率的であり、Ateniese他(上記参照)のランダムオラクルモデルの既存のセキュリティ証明からの利益を得る。
【0225】
取り消し証を生成する特性を有する一般的なグループ署名方式を次に説明することにする。この一般的な方式は6つのプロシージャを含む。
【0226】
SETUP(セットアップ):セキュリティパラメータ1の入力に対して、この確率的アルゴリズムは、グループ公開鍵PK(すべてのシステムパラメータを含む)およびグループメンバーシップ証明書発行者(CI)用のグループ秘密鍵SKを出力する。
【0227】
JOIN(ジョイン):或るユーザが新たなグループメンバになる、CIとそのユーザとの間のプロトコル。このユーザの出力は、メンバーシップ秘密値およびメンバーシップ証明書である。
【0228】
REVOCATION EVIDENCE CREATE(取り消し証作成):グループ公開鍵、メンバーシップ秘密値、メンバーシップ証明書、および取り消しパラメータの入力に対して、取り消し証を出力する確率的アルゴリズム。
【0229】
SIGN(署名):グループ公開鍵、メンバーシップ証明書、メンバーシップ秘密値、取り消し証、およびメッセージmの入力に対して、取り消し証を有するmのグループ署名を出力する確率的アルゴリズム。
【0230】
VERIFY(検証):グループ公開鍵および取り消しパラメータに関して、取り消し証を有するメッセージの主張されたグループ署名の正当性を立証するためのアルゴリズム。
【0231】
REVOCATION(取り消し):グループ署名から取り消しリストに取り消し証を列挙するためのアルゴリズム。
【0232】
このタイプの好ましい方式では、以下の特性がすべて満たされるべきである。
正当性(correctness)。SIGNを使用してグループメンバにより生成された署名は、VERIFYによって容認されなければならない。
偽造不能性(unforgeability)。グループメンバのみが、グループを代表してメッセージに署名することができる。
匿名性(anonymity)。或るメッセージの正当な署名が与えられると、実際のグループメンバを特定することは、そのグループメンバーシップ証明書発行者を含めてあらゆる者にとって計算が困難である。
リンク可能性(linkability)。異なる取り消し証を有する2つの異なる正当な署名が同じグループメンバによって計算されたかどうかを判断することは計算が困難である。しかしながら、2つの異なる正当な署名が同じ取り消し証で計算されたかどうかを判断することは容易である。
トレース可能性/取り消し可能性(traceability/revocability)。グループメンバ秘密値およびそのメンバーシップ証明書が公開されると、あらゆる者が、この秘密値および証明書に基づいて署名された正当な署名を開くことができる。グループメンバ秘密値およびメンバーシップ証明書がないと、誰も、実際のグループメンバに対する正当な署名をトレースすることができない。しかしながら、誰もが取り消し証に対する任意のグループ署名をトレースすることができ、したがって、取り消し証により対処される指定された利用目的に対するグループメンバーシップは、取り消すことができる。
結託耐性(coalition-resistance)。グループメンバの共謀した一部(グループ全体で構成された場合でも)は、特別なグループメンバ秘密値および対応する正当なメンバーシップ証明書に基づいて署名された正当な署名を生成することができない。
【0233】
1対のメンバ秘密値およびメンバーシップ証明書を得た攻撃者がいると、その攻撃者は、多くの「正当な」コピーを作成できることは明らかである。グループメンバの一般的な署名機能は、そのグループメンバ秘密値およびそのメンバーシップ証明書が公開されない限り、取り消すことができない。一方、取り消し証を有するグループ署名は、メンバーシップ証明書のトレース可能性を有しないグループ署名であるが、取り消し証に関するメンバーシップのトレース可能性は存在する。グループ署名(特定の目的でのグループメンバによる署名)の特定の使用のための取り消し証は、特定のグループメンバ秘密値およびメンバーシップ証明書ならびに目的にとって一意である。したがって、特定の目的での取り消し証とグループ署名との間のリンクは、一般に検証可能である。したがって、出願人は、秘密値または証明書の取り消しの通常の方法の取り消し手法の上下に取り消し手法を構築することができる。
【0234】
本方式を達成するための修正を説明する前に、Ateniese他のグループ署名方式(「ACJT署名方式」)を次に述べることにする。
【0235】
グループ管理者(GM)は、公開鍵PK=(n,a,b,g,h,y,l,Γ,Δ)を有する。ここで、nは2つの安全な素数pとqとの積であり、a、b、g、h、およびyは、平方剰余モジュロnであり、lはセキュリティパラメータであり、ΓおよびΔは2つの区間である。GMは、対応するプライベート鍵SK=(p,q,x)を有する。ここで、pおよびqは、グループメンバーシップ証明書を発行するのに使用され、x=loggyは、メンバーシップ取り消しに使用される。
【0236】
グループメンバPiは、メンバーシップ秘密値zi、および、
【0237】
【数60】
【0238】
を満たすメンバーシップ証明書(ui,ei)を有する。値ziは、適切な整数範囲ΔからPiおよびGMによって共同で選択される。値ziは、(1)GMがこの値に関する情報を得ないこと、ならびに、(2)PiおよびGMの双方が、互いが自身の貢献を正しく行わなければならないことを検証できること、を保証する安全な方法で選択される。値eiは、別の適切な範囲ΓからGMによって選択された素数である。GMは、Piを特定するために(ui,ei)の記録を保持する。
【0239】
Piがグループを代表してメッセージに署名する時、Piは、グループにおけるメンバーシップを証明する。これを行うために、Piは、(zi,ui,ei)を知っていることを効果的に証明する。例えば、グループを代表してメッセージmに署名するために、Piは、まず、w∈R{0,1}2lを選び、T1=uiyw mod n、T2=gw mod n、および
【0240】
【数61】
【0241】
を計算する。
次に、Piは、b=T1αa−βy−χ mod n、1=T2αg−χ mod n、T2=gδ mod n、およびT3=gαhδ mod nがメッセージmで維持されるような整数α、β、χ、およびδを知っていることの署名を作成する。ここで、α∈Γであり、β∈Δである。[CS97]におけるCamenischおよびStadlerによって導入された表記法を使用することによって、この署名は次のように表記することができる。
PK[(α,β,χ,δ):b=T1αa−βy−χ∧1=T2αg−χ∧T2=gδ∧T3=gαhδ∧α∈Γ∧β∈Δ](m)
【0242】
この署名を検証することによって、検証者は以下を確信する。
aβb=T1αy−χ=T1αy−αδ=(T1y−δ)α mod n
さらに、
【0243】
【数62】
【0244】
このグループ署名は、
(1)
【0245】
【数63】
【0246】
が、ei乗根を有する値であるような値zi∈Δ、および、
(2)
【0247】
【数64】
【0248】
が、yに基づいて(T1,T2)でE1Gamal暗号化されたものであるようなそのei乗根、を知っていることの署名とみなすことができる。ここで、eiは、T3w.r.t.gおよびhの表現の最初の部分であり、そのeiはΓに存在する。
【0249】
すべてのグループ署名方式と同様に、GMは、E1Gamal解読鍵xを有し、したがって、GMがPiを特定する値u'=T1/(T2)x=uiを計算できるので、GMのみが、Piに対する署名を行使することができる。
【0250】
取り消し証を有するグループ署名方式を提供するためのこの方式に対する修正を次に説明することにする。関与する関係者およびプロセスが図8(取り消し局を使用するバージョンについて)および図9(取り消し局を使用しないバージョンについて)に概略的に示されている。この新しい方式は、ACJTグループ署名方式に対して以下の3つの変更を行う。
【0251】
1.出願人は、TPM82自身を除くどのエンティティにも、保証鍵証明書を署名から取り出すことを可能にしない。そうでない場合には、このエンティティは、匿名性を破る可能性がある。したがって、出願人は、GMのメンバーシップの開く機能を削除し、証明書発行機能のみを維持する。出願人は、このエンティティを保証鍵証明書発行者(CI)と呼ぶ。CI81は、本物のTPMの製造業者であることが好ましい。
2.特定の目的でのグループ署名の取り消しを可能にするために、出願人は、グループメンバ82が、例えば、その特定の目的の取り消しを専門とする取り消し局83を使用して、その特定の目的で、自己証明した取り消し証を作成することを必要とする。この取り消し局83は、同じ利用目的の同じTPM保証鍵および鍵証明書に基づいて署名された異なる署名を相関させることができる。代替的に、悪性TPMの検出者がこのような情報を公に(または、そうでない場合には適切に)利用可能にすると、検証者は自身の取り消しリストを保持することができる。
3.出願人は、TPM保証鍵の作成およびその証明書の発行を行うプロセスを簡単化する。ACJTグループ署名は、GMおよびPiが、互いが適切にこの方式を実行するものと信頼できない場合の利用向けに設計されている。このTCGの利用では、このプロセスは、本物のTPMの製造中に行われ、TPM製造業者であるCIがそれらによって作成されたTPMを信頼することは当然である。
【0252】
検証者84は、TPMの真正性を立証する必要のある任意の関係者とすることができ、通常、これは、リモートサービスプロバイダ(RSP)となる。
【0253】
次に、出願人は、上記例示で一般的に説明した6つのプロシージャでこの方式を説明する。
【0254】
1.セットアップ(ステップ801)
システムを開始するために、アーキテクチャ全体の定義者は、次のように動作する。
1.パラメータεが統計的なゼロ知識の堅固さ(tightness)を適切に制御でき、パラメータlが、使用するモジュラスのサイズのセキュリティ要件の必要性を満たすようなε>1、k、およびlをセキュリティパラメータとして選ぶ。
2.λ1>ε(λ2+k)+2、λ2>4l、およびγ1>ε(γ2+k)+2、γ2>λ1+2を満たすλ1、λ2、γ1、およびγ2を長さとして選ぶ。整数範囲Δ=]2λ1−2λ2,2λ1+2λ2[およびΓ=]2γ1−2γ2,2γ1+2γ2[を定義する。
3.衝突困難ハッシュ関数H:{0,1}*→{0,1}kを選ぶ。
【0255】
TPM製造業者(CIと呼ぶ)をセットアップするために、CIは、以下のように動作することによって、自身の公開鍵(n,a,b,g,y,h)および対応するプライベート鍵(p',q')を作成する。
1.p=2p'+1およびq=2q'+1が素数となるようなランダムな秘密のlビット素数p'、q'を選択する。モジュラスn=pqを設定する。
2.ランダムな要素a'、b'、c'∈RZn*を選択し、g'=H(c'‖1)、y'=H(c'‖2)、およびh'=H(c'‖3)を計算し、gcd(a'±1,n)=1、gcd(b'±1,n)=1、gcd(g'±1,n)=1、gcd(y'±1,n)=1、およびgcd(h'±1,n)=1が維持されるかどうかをチェックし、チェックが成功すると、a=a'2 mod n、b=b'2 mod n、g=g'2 mod n、y=y'2 mod n、およびh=h'2 mod nを計算し、そうでない場合は、「すみません。私はあなたのモジュラスを因数分解した。」をCIに報告する。これは、a、b、g、y、h∈位数(order)p'q'のQR(n)を保証し、また、誰も、nを法とする、y(hまたはg)の離散対数w.r.t.底gまたはh(gもしくはy、または、hもしくはy)を知らないことを保証する。
【0256】
CIの公開鍵は、通常の手段を介して利用可能にされる(すなわち、信頼できる局によって署名された或る形態の公開鍵証明書に実施される)。実際には、フレーム攻撃(framing attack)を防止するために、この公開鍵を証明する前に、信頼できる局は、(n,a,b,g,y,h)の構成要素を検証しなければならない。詳細には、(1)CIは、nが2つの安全な素数の積であることの証明を信頼できる局に提供する必要があり、(2)CIは、a'、b'、およびc'を信頼できる局に送信し、信頼できる局は、次に、gcd(a'±1,n)=1、gcd(b'±1,n)=1、gcd(H(c'‖1)±1,n)=1、gcd(H(c'‖2)±1,n)=1、およびgcd(H(c'‖3)±1,n)=1が維持されることをチェックし、a=a'2 mod n、b=b'2 mod n、g=H(c'‖1)2 mod n、y=H(c'‖2)2 mod n、およびh=H(c'‖3)2 mod nを計算する。
【0257】
2.ジョイン(ステップ802)
TPM(TPMと呼ぶ)をTPMグループのメンバにするための、従うことができる複数の可能な手法が存在する。一例示の形態では、TPMおよびCIは次のように動作することができる。
1.TPMは、秘密指数z∈RΔを自身の保証鍵として生成し、v=az mod nを計算し、vをCIに送る。
2.CIは、ランダムな素数e∈RΓを選択し、u=(vb)1/e mod nを計算することによって保証鍵証明書(u,e)を発行する。CIはTPMに(u,e)を記憶する。
【0258】
特に、CIとTPMとの間のタスクの分割においては、ジョインプロセスの多くの可能な代わりの形態が存在することに留意すべきである。以下の3つのバージョンは例示である。
【0259】
バージョン1.
1.CIは、指数z∈R]1,2l2]をTPMの保証プライベート鍵としてランダムに選択し、v=azを計算する。
2.CIは、ランダムな素数
【0260】
【数65】
【0261】
を選択し、u=(vb)1/eを計算することによって保証鍵証明書(u,e)を生成する。
3.CIはTPMに(z,u,e)を記憶する。
4.CIは、(z,u,e)の自身の知識のすべてを消去する。
【0262】
バージョン2.
1.TPMは、秘密指数z∈R]1,2l2]を自身の保証プライベート鍵として生成し、v=azを計算し、vをCIに送る。
2.CIは、ランダムな素数
【0263】
【数66】
【0264】
を選択し、u=(vb)1/eを計算することによって保証鍵証明書(u,e)を発行する。
3.CIはTPMに(u,e)を記憶する。
4.CIは、(u,e)の自身の知識のすべてを消去する。
【0265】
バージョン3.
1.TPMは、秘密指数z∈R]1,2l2]を自身の保証プライベート鍵として生成する。
2.TPMは、v=azを計算する。
3.TPMは、ランダムな素数
【0266】
【数67】
【0267】
を選択する。
4.TPMは、一時的な秘密値(p',q')をインポートし、d=1/e mod 4p'q'を計算する。
5.TPMは、u=(vb)dを計算する。
TPMは、(p',q')の自身の知識のすべてを消去する。
【0268】
このジョインプロセスにおいて、出願人は以下のことを仮定することに留意されたい。
・TPMとCIとの間の通信は安全である。すなわち、プライベートであり、かつ、信頼できる。
・CIは、TPMが秘密値zを正確に選択することを確信する。そうでない場合、CIおよびTPMは、Ateniese他(上記参照)に記載されたJOINプロトコルを実行しなければならない。ここで、zは、TPMおよびCIによって共同で選択される。
・TPMも、CIが証明書を正確に計算することを確信する。そうでない場合、TPMは、(u,e)の受信後、ue=azb mod nかどうかを検証することになる。
【0269】
3.取り消し証作成(ステップ803)
これは、取り消し局を使用するモデルに関して説明することにする。しかしながら、この手法を使用すると、どの対応するものも、取り消し局として動作することができ、したがって、各検証者は、自身の取り消しリストを保持することが可能であることに留意することができる。これを効果的に行うために、検証者(または、システムの全体としての効果的なオペレーションの望ましさに関心のある他の関係者)は、自身の取り消しリストに追加されるべき詳細に気付くと、これら詳細を他の潜在的な検証者に利用可能にする。各取り消し局は、一意の名前である取り消し局名(RevocationAgencyName)を有するものと仮定する。この一意の名前は、利用目的識別情報、属性、取り消し局の情報、および或るランダム性で生成することができる(このタイプの名前は、取り消し局の情報がなくても生成することができ、単に、この名前がどの種類の取り消し情報であるかを特定する情報とすることができ、したがって、明示的な取り消し局のないモデルでこの名前を使用することが可能であることに留意することができる)。取り消し証w.r.t.この名前は、以下のように動作することによって作成される。2つの代替的なバージョンが以下に与えられる。
【0270】
バージョン1
1.CIの公開モジュラスn、TPMの保証プライベート鍵z、および取り消し局名を入力する。
2.f'=H(取り消し局名)を計算し、gcd(f'±1,n)=1が維持されるかどうかをチェックし、チェックが成功した場合には、f=f'2を計算し、そうでない場合には、「すみません。私はあなたのモジュラスを因数分解した。」をCIに報告する。
2'.代替的に、TPMが、取り消し局名を与えられて、偶然にfを生成した場合、TPMは、単純にf=H(取り消し局名)2を計算する。gcd(f'±1,n)≠1となる確率は無視できる。
3.取り消し証E=fzを計算する。
4.(f,E)を出力する。
【0271】
バージョン2
1.CIの公開パラメータaおよびモジュラスn、ならびに、取り消し局名を入力する。また、TPMの保証プライベート鍵zも入力する。
2.f'=H(取り消し局名)を計算し、gcd(f'±1,n)=1が維持されるかどうかをチェックし、チェックが成功した場合には、f=f'2 mod nを計算し、そうでない場合には、「すみません。私はあなたのモジュラスを因数分解した。」をCIに報告する。
2'.代替的に、TPMが、取り消し局名を与えられて、偶然にfを生成した場合、TPMは、単純にf=H(取り消し局名)2 mod nを計算する。gcd(f'±1,n)≠1となる確率は無視できる。
3.取り消し証C=(af)z mod nを計算する。
4.(f,C)を出力する。
【0272】
離散対数の仮定に基づくと、すべてnを法とする、底gまたはyもしくはhに対するfの離散対数、および、底fに対するgまたはyもしくはhの離散対数を誰も知らないということが仮定されることに留意されたい。
【0273】
4.署名(ステップ804)
保証鍵zおよび保証鍵証明書(u,e)を知っていることを証明するために、TPMは、以下のように動作することによって、一般的なメッセージm∈{0,1}*上に、取り消し証を有するグループ署名を生成する。
1.w∈R{0,1}2lをランダムに選ぶ。
2.T1=uyw mod n、T2=gw mod n、およびT3=gehw mod nを計算する。
3.r1∈R±{0,1}ε(γ2+k)、r2∈R±{0,1}ε(λ2+k)、r3∈R±{0,1}ε(γ1+2l+k+1)、およびr4∈R±{0,1}ε(2l+k)をランダムに選ぶ。
4.d1=T1r1/(ar2yr3) mod n、d2=T2r1/gr3 mod n、d3=gr4 mod n、d4=gr1hr4 mod n、およびd5=(af)r2 mod nを計算する。
5.c=H(g‖h‖y‖a‖b‖T1‖T2‖T3‖C‖d1‖d2‖d3‖d4‖d5‖m)を計算する。
6.s1=r1−c(e−2γ1)、s2=r2−c(z−2λ1)、s3=r3−cew、およびs4=r4−cw(すべてZにおいて)を計算する。
7.(c,s1,s2,s3,s4,T1,T2,T3,C)を出力する。
【0274】
これは、第1の方式で使用したようなSchnorrに類似した署名であり、この場合も、第1の方式の場合と同様に、署名は、オンライン時に必要とされる作業を最小にするために大部分は事前に計算することができる。この方式では、署名生成に、7個(または11個)のモジュロ累乗法が必要とされ、出願人は、それらのうちの1個のみが事前に計算できないことに留意する。したがって、c、s1、s2、s3、s4、およびd4の計算のみが(mおよびEの発見後に)オンラインで行われる。
【0275】
最小のオンライン計算を有する従来の誰何/応答プロトコルの場合、出願人は、オンラインになる前に、4)におけるd4の計算を除いて、TPMに上記項目1)〜4)を準備させる。後に誰何者(すなわち検証者)と通信する時に、その誰何者は、取り消し局に関する情報である取り消し局名および新たなメッセージmを誰何として送る。TPMは、(既存の取り消し証を再利用できない場合に)取り消し証E=H(取り消し局名)2z mod nを作成し、次いで、4)におけるd4と共に項目5)〜7)を実行することによって署名を終了する。
【0276】
代替的に、最小のTPMストレージを作製するため、c=H(g‖h‖a‖b‖T1‖T2‖T3‖d1‖d2‖d3‖E‖d4‖m)の代わりに、TPMは以下のようにcを計算することができる。
c1=H(g‖h‖a‖b)
c2=H(c1‖T1)
c3=H(c2‖T2)
c4=H(c3‖T3)
c5=H(c4‖d1)
c6=H(c5‖d2)
c7=H(c6‖d3)
c8=H(c7‖E)
c9=H(c8‖d4)
c=H(c9‖m)
【0277】
したがって、署名プロセスは、以下のように実施することができる。
1.TPMは、a、b、g、h(320ビット)、n(2048ビット)をインポートする。
2.TPMは、c1(160ビット)をインポートする。
【0278】
オフライン計算
1.TPMは、TPM特有の秘密値w1(160ビット)をRNGから得る。
2.TPMは、TPM特有の秘密値w2(160ビット)をRNGから得る。
3.TPMは、TPM特有の秘密値r1(380ビット)をRNGから得る。
4.TPMは、TPM特有の秘密値r2(380ビット)をRNGから得る。
5.TPMは、TPM特有の秘密値r3(380ビット)をRNGから得る。
6.TPMは、TPM特有の秘密値r4(380ビット)をRNGから得る。
7.TPMは、w1、w2、r1、r2、r3、r4を新たな集合Aの一部として記憶する。
8.TPMは、秘密でない値
【0279】
【数68】
【0280】
を計算する。
9.TPMは、c2=H(c1‖T1)を計算する。
10.TPMは、T1をエクスポートする。
11.TPMは、秘密でない値
【0281】
【数69】
【0282】
を計算する。
12.TPMは、c3=H(c2‖T2)を計算する。
13.TPMは、T2をエクスポートする。
14.TPMは、秘密でない値
【0283】
【数70】
【0284】
を計算する。(heは1回だけ計算することができ、恒久的に秘密に記憶することができる。)
15.TPMは、c4=H(c3‖T3)を計算する。
16.TPMは、T3をエクスポートする。
17.TPMは、秘密でない値
【0285】
【数71】
【0286】
を計算する。
18.TPMは、c5=H(c4‖d1)を計算する。
19.TPMは、秘密でない値
【0287】
【数72】
【0288】
を計算する。
20.TPMは、c6=H(c5‖d2)を計算する。
21.TPMは、秘密でない値
【0289】
【数73】
【0290】
を計算する。
22.TPMは、c7=H(c6‖d3)を計算する。
23.TPMは、c7を集合Aの一部として記憶する。
【0291】
オンライン計算
1.TPMは、取り消し局名(任意の長さ)をインポートする。
2.TPMは、f(320ビット)=(H(取り消し局名))2を計算する。
3.TPMは、fを集合Aの一部として保存する。
4.TPMは、秘密でない値E(2048ビット)=fzを計算する。
5.TPMは、c8=H(c7‖E)を計算する。
6.TPMは、Eをエクスポートして、Eを消去する。
7.TPMは、
【0292】
【数74】
【0293】
を生成する。
8.TPMは、c9=H(c8‖d4)を計算する。
9.TPMは、d4を消去する。
10.TPMは、誰何m(任意の長さ)をインポートする。
11.TPMは、秘密でない値c10=H(c9‖m)を計算する。
12.TPMは、c=c10に設定する。
13.TPMは、cを集合Aの一部として保存する。
14.TPMは、cをエクスポートする。
15.TPMは、秘密でない値s1(380ビット)=r1−c*(e−2400)を計算する。
16.TPMは、s1をエクスポートする。
17.TPMは、秘密でない値s2(380ビット)=r2+c*zを計算する。
18.TPMは、s2をエクスポートする。
19.TPMは、秘密でない値s3(380ビット)=r3−c*w2を計算する。
20.TPMは、s3をエクスポートする。
21.TPMは、秘密でない値s4(380ビット)=r4+c*w1を計算する。
22.TPMは、s4をエクスポートする。
TPMは集合Aを消去する。
【0294】
5.検証(ステップ805)
検証者は、以下のように動作することによって、メッセージmの署名(c,s1,s2,s3,s4,T1,T2,T3,C)の正当性をチェックする。このチェックには、取り消し証の第2のバージョンの例が使用されるが、第1のバージョンも、同様に適切に使用することができる。
1.Cが、信頼できる取り消し局によって保持された取り消しリストにあるかどうかをチェックする。この信頼できる取り消し局は、取り消し局名という名前を有する。このチェックがイエスである場合、署名を拒否し、そうでない場合、続行する。(上述したように、検証者は、このようなリスト自体を保持することができる。)
2.
【0295】
【数75】
【0296】
を計算する。
3.c=c'であり、かつ、s1∈±{0,1}ε(γ2+k)+1、s2∈±{0,1}ε(λ2+k)+1、s3∈±{0,1}ε(λ1+2l+k+1)+1、およびs4∈±{0,1}ε(2l+k)+1である場合にのみ、署名を容認する。
【0297】
6.取り消し(ステップ806)
いかなる理由であろうと、TPMが、取り消し局名によって特定された特定の目的で取り消されるべきである場合、Cは取り消しリストに置かれる。異なる実施の形態では、これは、取り消し局によって保持されたリストとすることもできるし、潜在的な検証者が自身のリストを保持するように、それら検証者に利用可能にすることもできる。
【0298】
この方式のセキュリティを次に検討することにする。ACJTグループ署名方式のセキュリティは、強RSA仮定および決定的Diffie−Hellman仮定に基づいている。
【0299】
強RSA仮定(例えば、Advances in Cryptology - EUROCRYPT '97, LNCS 1233, pp. 480-494, Springer-Verlag, 1997のN. BaricおよびB. Pfitzmann著「Collision-free accumulators and fail-stop signature schemes without trees」、Advances in Cryptology - CRYPTO '97, LNCS 1297, pp. 16-30, Springer-Verlag, 1997のE. FujisakiおよびT. Okamoto著「Statistical zero knowledge protocols to prove modular polynomial relations」を参照されたい)は、eが公開値であり、したがって一定の指数である場合にnを法とするe乗根を見つけることが困難であるという広く容認されたRSA仮定を、任意のe>1についてnを法とするe乗根を見つけることが困難であるという仮定にまで強化したものである。
【0300】
強RSA問題の定義 − n=pqを、RSAに類似したモジュラスとし、Gを、
【0301】
【数76】
【0302】
である位数#GのZn*の巡回部分群とする。
nおよびz∈Gが与えられると、ストリングRSA問題は、z≡ue mod nを満たすu∈Gおよびe∈Z>1を見つけることから構成される。
【0303】
強RSA仮定の定義 − 入力に対して、セキュリティパラメータlGが、すべての確率的多項式時間アルゴリズムPについて、Pが強RSA問題を解くことができる確率は無視できるような対(n,z)を出力する確率的多項式時間アルゴリズムKが存在する。。
【0304】
Diffie−Hellman仮定(W. DiffieおよびM. E. Hellman著「New directions in cryptography」, IEEE Transactions on Information Theory, IT-22(6): 644-654, 1976)は、(i)計算的Diffie−Hellmman仮定(CDH(Computational Diffie-Hellmman Assumption)および(ii)決定的Diffie−Hellman仮定(DDH(Decisional Diffie-Hellman Assumption))の2つの「特徴」に現れる(Algorithmic Number Theory (ANTS-III), LNCS 1423, pp. 48-63, Springer-Verlag, 1998のD. Boneh著「The decision Diffie-Hellman problem」を参照されたい)。
【0305】
決定的Diffie−Hellman問題の定義 − G=<g>を、
【0306】
【数77】
【0307】
である位数#Gのgによって生成された巡回群とする。g、gx、gy、およびgz∈Gが与えられると、決定的Diffie−Hellman問題は、要素gxyおよびgzが等しいかどうかを判断することから構成される。
【0308】
この問題は、決定的Diffie−Hellman仮定の元となるものである。このことは、それより前の暗号方式ですでに暗黙的に仮定されてはいたが、最初に明示的に述べたのはBrandsである(S Brands著「An efficient off-line electronic cash system based on the representation problem」, Technical Report CS-R9323, Centrum voor Wiskunde en Infomatica, April 1993)。
【0309】
決定的Diffie−Hellman仮定の定義 − 分布DとRとを無視できない確率で区別する非確率的多項式時間アルゴリズムがある。ここで、D=(g,gx,gy,gz)であり、x,y,z∈RZ#Gであり、R=(g,gx,gy,gxy)であり、x,y∈RZ#Gである。
【0310】
Ateniese他は、以下の2つの定理および1つの系を証明することによって、ACJTグループ署名方式のセキュリティ証明を与える。
【0311】
定理1(結託耐性)。強RSA仮定の下では、xi∈Δおよびei∈Γであるグループ証明書
【0312】
【数78】
【0313】
は、グループ管理者が発行したK個の証明書が多項式的に限定されているという条件で、グループ管理者のみが生成することができる。
【0314】
定理2。強RSA仮定の下では、グループ署名方式の基礎を成す対話型プロトコルは、メンバーシップ証明書および対応するメンバーシップ秘密鍵を知っていることの統計的ゼロ知識(正直な検証者)証明である。
【0315】
系。ランダムオラクルモデルでは、ACJTグループ署名方式は、強RSA仮定および決定的Diffie−Hellman仮定の下では安全である。
【0316】
Ateniese他によるACJTグループ署名方式のセキュリティ証明に基づくと、出願人は、ランダムオラクルモデルにおいて、前の節で提示された取り消し証を有するグループ署名方式が、強RSA仮定および決定的Diffie−Hellman仮定の下で安全であると主張することができる。
【0317】
(上述したような)取り消し証を有する一般的なグループ署名方式のほとんどのセキュリティ特性は、上記2つの定理および1つの系から直接得られる。(c,s1,s2,s3,s4,T1,T2,T3)により明らかにされた、グループメンバの秘密値および証明書に関する情報の量は無視できる(すなわち、(c,s1,s2,s3,s4,T1,T2,T3)は統計的に隠蔽コミットメント(hiding commitment)であり、PKプロトコルは統計的にゼロ知識である)ので、ACJTグループ署名方式のすべての特性は維持されることに留意されたい。Cを開示することによりさらに明らかにされた、グループメンバの秘密値および証明書に関する情報の量も、決定的Diffie−Hellman仮定に基づいて無視できると主張することが残されている。
【0318】
上記で提示された取り消し証を有する特定のグループ署名方式は効率的であり、ACJTグループ署名方式が非常に効率的であることから利益を受ける。
【0319】
通信:出願人の提案は、署名方式であって、対話型ゼロ知識証明方式ではない。反射攻撃を回避するために、検証者は、一意のメッセージmを選ぶことができ、mを取り消し局名(これも検証者によって選ばれる)と共に、誰何として署名者に送ることができる。その後、署名者は、応答として署名を返信する。RSAモジュラスnのサイズが、現在のTCG仕様で勧告された2048である場合、署名のサイズは9×log(n)=4.5kビットである。
【0320】
計算:署名を行うために、署名者は9つのモジュロ累乗法を必要とする。署名を検証するために、検証者は5つのモジュロ累乗法を必要とする。
【0321】
TPMが9つのモジュロ累乗法を使用する必要があることによって、TPMの識別情報を検証するプロセスに時間遅延が導入される場合がある。この時間遅延は、ランダムに選ばれたデータに関するTPMのグループ署名を事前に計算し、次いで、誰何/応答を使用して、その署名がTPMによって生成されたことを証明することによって最小にすることができる。次に、この誰何/応答には、TPMによる2つのオンラインモジュロ累乗法、および、検証者による7つのオンラインモジュロ累乗法(元の5つに特別な2つを加えたもの)が必要とされる。DP方式と基本的に同じアイデアを使用すると、出願人は、存在しない取り消し局についてのランダムに選ばれたメッセージm'およびランダムに選ばれた取り消し局名'に対して上記方式を使用して、TPMにグループ署名を作成させる。その署名では、f'=H(取り消し局名')2 mod nであり、C'=(af)z mod nである。後に、誰何者との実際の通信中に、誰何者は、実際の取り消し局に関する情報である取り消し局名、および、新たなメッセージmを誰何として送る。次に、TPMは、実際の取り消し証C=(af)z mod nを作成する。ここで、f=H(取り消し局名)2 mod nである。TPMは、次に、以下のように動作することによって、署名を作成し、底afおよびaf'をそれぞれ有するCおよびC'の2つの離散対数を知っていることおよびこれら離散対数が等しいことを示す。
1.
【0322】
【数79】
【0323】
をランダムに選ぶ。
2.c=H(a‖f‖f'‖C‖C'‖(af)r mod n‖(af')r mod n‖m)を計算する。
3.(Zにおいて)
【0324】
【数80】
【0325】
を計算する。
4.(c,s,C)を出力する。
【0326】
この署名を検証するために、誰何者は以下のように動作する。
1.名前−取り消し局名を有する(例えば、選ばれた取り消し局によって保持されたような)関連した取り消しリストにCがあるかどうかをチェックする。このチェックがイエスである場合、署名を拒否し、そうでない場合、続行する。
2.
【0327】
【数81】
【0328】
を計算する。
3.c=c'であり、かつ、
【0329】
【数82】
【0330】
である場合にのみ、署名を容認する。
【0331】
この第2の方式における取り消しの手法は、第1の方式で述べたものと広く類似している。この場合も、システムは、TPM製造業者、TPM、取り消し局(RA)、およびリモートサービスプロバイダRSPの4組のエンティティを含む。
【0332】
上記のように、出願人は、利用のシナリオを述べた。すなわち、TPMは、特定の利用目的PAにアクセスするためにRSPとの通信を望む。RSPは、RAが、PAへのアクセスを許可されるべきでないTPMの取り消しリストを保持しているとの信頼を受けていると考える。取り消しリストは、取り消し局名=PA‖RAの識別情報‖満了日‖…という一意の識別情報を有する。
【0333】
上記で指定したような取り消し証を有する出願人のグループ署名方式では、RAは、値Cがそれら悪性TPMに属するこのような取り消しリストを保持し、その取り消しリストをRSPに利用可能にする。署名の検証中、各RSPは、まず、Cが取り消しリストにあるかどうかをチェックする。イエスである場合、RSPはこのTPMを拒否する。
【0334】
オプションとして、このRAは、認証局の役割を果たすこともできる(出願人は、これをRA/CAと呼ぶ)。この場合、RA/CAは、取り消し証を有するグループ署名の方式における検証者である。RA/CAは、従来の非対称鍵対PRA/CAおよびSRA/CAを有する。これらの鍵は、RSPによってアクセス可能である。TPMのグループ署名の検証が成功した後、RA/CAは、(TCG仕様の現在のバージョンにおけるプライベートCAと同じように)通常の方法でPRA/CAおよびSRA/CAを使用することによって、ランダムに選ばれた識別情報を非対称鍵対PTPMおよびSTPMで証明し、CおよびPTPMの証明書を記録する。オプションとして、RA/CAは、内部アクセスのみのためにPTPMと共にCを記録し、公にアクセス可能な取り消しリストにPTPMを列挙する。これは、このRA/CAにどのTPMの保証鍵証明書も与えられない点で、TCG仕様の現在のバージョンと異なることに留意されたい。
【0335】
TCG仕様の現在のバージョンと同様に、RSPによって提供されたサービスにアクセスするために、TPMは、PTPMの証明書でRSPに対して自身を認証する。RSPは、その証明書を検証し、また、この証明書がRA/CAの取り消しリストにあるかどうかもチェックする。
【0336】
明らかに、TPMが、目的PAとリンクされたRA1の取り消しリストに列挙されている場合であっても、TPMは、(1)同様にRA1によって管理された目的PB、(2)RA2によって管理された目的PA、および、もちろん(3)RA2によって管理された目的PBにアクセスすることができる。
【0337】
もちろん、複数の取り消しリストを使用することが可能である。例えば、或る利用において、一方が取り消し局名1に基づくものであり、他方が取り消し局名2に基づくものである2つの取り消しリストをチェックする必要がある場合、TPMは、2つの取り消し証を作成しなければならない。一方は、取り消し局名1に基づいてC1と呼ばれ、他方は、取り消し局名2に基づいてC2と呼ばれる。
【0338】
この方式では、悪性TPMの保証鍵および鍵証明書が公開されている場合、どの検証者も、取り消し証を有する所与のグループ署名が、その保証鍵および証明書に基づいて署名されたものであるかどうかをチェックすることができる。
【0339】
この方式を使用すると、TPM所有権の発行に対処することができるさまざまな異なる方法が存在する。第1に、OEM(相手先商標による製品製造業者)証明書の使用が考えられる。このOEMは、製造されたTPMを取り込み、それらTPMをコンピューティングプラットフォームホストに実装する。以下のように、このための少なくとも3つの可能なソリューションが存在する。
【0340】
ソリューション1。このソリューションでは、TPM製造業者は証明書発行者としての役割を果たし、OEMは取り消し局としての役割を果たす。TPMは、一定のOEMに関連した特別な証拠を有する。この証拠は、(上述した証拠の第1のバージョンを使用して)EOEM=(H(OEM名))2zである。この証拠は、TPMセットアッププロセスにおいてCI(TPM製造業者)が製造することもできるし、TPMが代わりに製造することもできる。TPMが本物のTPMであることをOEMに確信させるために、TPMは、EとしてEOEMを有する、上述したような署名をOEMに送る。その署名を検証した後、OEMは、EOEMに関する証明書を発行する。この証明書は、従来のPKI証明書とすることができる。このソリューションは、EOEMがTPMに一意であるので、匿名性を提供しない。
【0341】
ソリューション2。このソリューションでは、TPM製造業者およびOEMの双方が、この方式におけるCIとしての役割を果たす。TPMは、1つのプライベート保証鍵zおよび2つの関連した証明書(u,e)および(u',e')を有する。この第1の証明書は、第3節で説明したようにTPM製造業者によって発行され、第2の証明書は、同様に、OEMによって発行される。TPM製造業者は公開鍵(a,b,g,h,n)を有し、TPMは(第3節で説明したように)関連した(u,e)を有する。OEMは公開鍵(a',b',g',h',n')を有する。TPMの正確さをOEMに確信させるために、TPMは、(z,e,u)に基づく第2の方式の署名をメッセージm=a'z mod n'(これはOEMからの誰何と結合することができる)でOEMに送る。第2の方式の署名の検証が成功した後、OEMは、TPMに(u',e')を発行する。ここで、u'e'=a'zb' mod n'が維持される。その後、TPMは、(z,u,e)および(a,b,g,h,n)に基づく第2の方式の署名を送ることによって、TPM製造業者の証明書の要求についてのあらゆる誰何に応答し、(z,u',e')および(a',b',g',h',n')に基づく第2の方式の署名を送ることによって、OEMの証明書のあらゆる誰何要求に応答する。このソリューションは、第2の方式の署名が異なる取り消し証を有する場合に、匿名性を提供することができる。起こり得る問題は、TPMとOEMとの間の処理に多大な費用を要するということである。
【0342】
ソリューション3。このソリューションでは、TPM製造業者はTCGの現在のバージョンと同じ役割を果たし、OEMは第2の方式のCIとしての役割を果たす。TPMの製造中、TPMは、通常の保証鍵対(既存のTCG仕様に記載されているようなものであるが、本明細書では、事前保証鍵(pre-endorsement key)対と呼ぶ)を得る。TPM製造業者は、OEMに対してTPMを刻むと、保証公開鍵のリストを送る。OEMは、上述したJOINプロセスのバージョン1を使用することによって各TPMの交換される保証鍵および証明書を作成する。
【0343】
1.OEMは、TPMの保証プライベート鍵として、指数
【0344】
【数83】
【0345】
をランダムに選び、v=azを計算する。
2.OEMは、ランダムな素数
【0346】
【数84】
【0347】
を選択して、かつu=(vb)1/eを計算することにより、保証鍵証明書(u,e)を生成する。
3.OEMは、TPMの事前保証公開鍵で(z,u,e)を暗号化する。
4.OEMは、暗号化された(z,u,e)および事前保証公開鍵のハッシュ値をパブリックドメインに公開する。
5.OEMは、自身の(z,u,e)の知識のすべてを消去する。
6.TPMを有するTCGプラットフォームが、ユーザによって受け取られると、そのプラットフォームは、OEMのパブリックドメインから暗号化された(z,u,e)をダウンロードし、TPMは、事前保証プライベート鍵を使用することによって(z,u,e)を解読する。
【0348】
第2の方式を使用して所有権を取得するための少なくとも2つの可能なソリューションがある。これらソリューションの双方とも、上記OEM証明書のソリューションに基づいており、次の通りである。
【0349】
ソリューション1。このソリューション1は、上記ソリューション1および2の双方に適している。TCGプラットフォームの所有者は、TPMの公開E1Gamal暗号鍵として(fOEM=(H(OEM名))2,EOEM,n)を使用する。対応するプライベートE1Gamal解読鍵は、TPMの保証プライベート鍵zである。所有者とTPMとの間で実行される所有権取得プロトコルは次の通りである。
【0350】
1.所有者は、所有権秘密値s∈R[1,2160]をランダムに選ぶ。
2.所有者は、E1Gamal暗号化を使用することによって(fOEM,EOEM,n)に基づきsを暗号化する。これを行うために、所有者は、セッション秘密値x∈R[1,2160]をランダムに選び、U=fOEM(−x)およびV=s*EOEMxを計算する。
3.所有者は(U,V)をTPMに送る。
4.TPMは、s=V*Uzを計算することによってsを解読する。
【0351】
解読プロセスは、1つのモジュラ累乗法および1つのモジュラ乗算を必要とする。TPMにとって新たな機能は必要とされない。
【0352】
ソリューション2。このソリューション2は、上記ソリューション3に適している。TCGプラットフォームの所有者は、事前保証公開鍵をTPMの暗号鍵として使用する。対応する解読鍵は、TPMの事前保証プライベート鍵である。所有者とTPMとの間で実行される所有権を取得するプロトコルは、既存のTCG仕様と同様である。
【図面の簡単な説明】
【0353】
【図1】本発明の実施の形態を実施することができるシステムを概略的に示す図である。
【図2】スマートカードリーダを介してスマートカードと通信し、かつ、1群のモジュールと通信するように構成された、信頼できるデバイスを含むマザーボードを示す図である。
【図3】図2の信頼できるデバイスをより詳細に示す図である。
【図4】本発明の実施の形態を実行するのに適したコンピュータシステムの要素を示す図である。
【図5】信頼できるコンピューティングプラットフォームと、リモートプラットフォームとの間の通信を確立することに関与するステップを、この信頼できるプラットフォームが、従来の信頼できるプラットフォーム技術に従って自身の完全性を検証することを含めて、示すフロー図である。
【図6】従来の信頼できるコンピューティング技術の信頼関係を概略的に示す図である。
【図7】本発明の実施の形態による信頼できるコンピューティング技術で使用される信頼関係を概略的に示す図である。
【図8】本発明の実施の形態による信頼できるコンピューティング技術のアーキテクチャに関与する関係者を、グループ署名方式によるこれらの関係者間の相互作用と共に概略的に示す図である。
【図9】取り消し局を使用しない、図8の構成に対する修正を示す図である。
【符号の説明】
【0354】
10,40・・・信頼できるプラットフォーム,
18・・・モニタ18,44,
12,42・・・スマートカードリーダ,
19,41・・・スマートカード,
15・・・モジュール,
20・・・マザーボード,
21・・・メインプロセッサ,
22・・・メインメモリ,
23・・・入出力(IO)デバイス,
24・・・信頼できるデバイス,
26・・・データバス,
27・・・各制御ライン27,
28・・・ライン28,
29・・・BIOSメモリ,
30・・・コントローラ,
31・・・測定機能,
32・・・暗号機能,
33・・・認証機能,
34・・・インターフェース回路部,
350・・・証明書,
352・・・完全性メトリック,
353・・・識別(ID)ラベル,
355・・・プライベート鍵,
360・・・IDラベル,
361・・・摘要,
62・・・信頼できるプラットフォーム
63・・・認証局
64・・・リモートサービスプロバイダ
【技術分野】
【0001】
[発明の分野]
本発明は、証明された秘密値を提供すること(および取り消すこと)ならびにこのような秘密値を使用する通信に関し、より詳細には、或る関係者が特定の方法で形成された秘密値を所有することを、当該秘密値自体を明らかにすることなく示すことができる通信に関する。本発明は、特に、(例えば、信頼できるコンピューティンググループによって説明されたタイプの)信頼できるコンピューティングに関係する。この信頼できるコンピューティングでは、或る関係者は、第2の関係者が予測されたように振る舞うという或る保証を有する。
【背景技術】
【0002】
[従来技術の説明]
最近の進展は、「信頼できる(trusted)」コンピューティング装置が提供されているということである。すなわち、ユーザは、予測できるように振る舞うこと、および、別のユーザによる破壊が少なくとも明らかになることに対して信頼を置くことができる。信頼できるコンピューティンググループの仕様(www.trustedcomputing.orgで入手される)、および、Siani Pearsonによって編集されてPrentice Hall PTRによって2002年7月に出版された、関連した書物「Trusted Computing Platforms: TCPA Technology in Context」(これらの内容は、法律の許す範囲で、参照により本明細書に援用される)には、信頼できるコンピューティングの手法が記載されている。この記載された信頼できるコンピューティングの手法は、信頼できるコプロセッサ(破壊から物理的および論理的の双方で保護される)を使用して、信頼できるコプロセッサを含むコンピューティング装置のユーザまたは信頼できるコプロセッサに関連したコンピューティング装置のユーザに、その装置が予測でき、かつ、破壊されないように動作していることを保証するものである。特に有益な構成は、特に、他のコンピュータの情報およびサービスを提供することが望ましい場合に、(通常、プロセスが、他のコンピューティング環境との厳密に制御された相互作用を有する分離されたコンピューティング環境で実行されるような区画された方法で動作することによる)区画されたオペレーティングシステムと、信頼できるコンポーネントを使用する信頼できるコンピューティングハードウェアとの双方を使用することである(このような構成は、例えば、EP1182557として公開された出願人の特許出願に説明されている)。
【0003】
信頼できるプラットフォームを使用することの1つの利点は、その信頼できるプラットフォームが予測されたように振る舞うことを確信する手段を他の関係者が有するので、それら他の関係者が、その信頼できるプラットフォームと相互作用する準備ができるということである。このような他の関係者は、リモートサービスプロバイダ(RSP(Remote Service Provider))とすることができる。RSPは、プラットフォームにサービスを提供できるが、サービスを受け取るプラットフォームが本当に信頼できることを確信できない場合に、このサービスの提供を好まない場合がある。RSPは、信頼できるコンポーネント(信頼できるコンポーネントは、本明細書では信頼できるプラットフォームモジュールまたはTPM(Trusted Platform Module)と記載される)の少なくともいくつかの製造業者を信頼するものと仮定することができる。これには、RSPと相互作用するTPMが信頼できる製造業者によって本当に生産されたということを当該RSPが確信することに問題が残る。さらなる検討が行われる。プライバシーの理由から、RSPは、自身がどのTPMと相互作用しているかを見分けることができないことが望ましい(すなわち、望ましくは、RSPが立証できることは、自身が既知でかつ信頼できる製造業者によって製造された真正のTPMと相互作用しているということだけである)。
【0004】
このような確信をRSPに提供する現在の手法は、別の第3の関係者である認証局(CA(Certificate Authority))を使用することである。CAは、プラットフォームの所有者およびRSPの双方に信頼されている。TPM製造業者は、当該TPMの一意の保証鍵(endorsement key)を提供し、次に、それを証明する。CAは、次に、製造業者の証明書を検証した後、ランダムに選ばれた識別情報に関する証明書を発行する。CAは、保証鍵と、対応する証明書との間のマッピングのリストを保持してもよいし、保持しなくてもよい。この証明書は、TPMの正当性をチェックするためにRSPによって使用されるCAの証明書である。証明書が検証されると、RSPは、CAを信頼するので、TPMが信頼できる製造業者の適法な製品であると信頼する。RSPは、証明された特定の識別情報に誤ったものを見出すと、これをCAに報告し、CAは、問題の識別情報を取り消しリストに列挙し、次に、このTPMに対する新たなどの識別情報の証明も拒否する。
【発明の開示】
【発明が解決しようとする課題】
【0005】
この方式の問題は、CAが現在のところシステムの弱点であるということである。CAは、TPMの保証鍵とそのTPMに発行された識別情報との間のマッピング(および、おそらく多数のTPMのマッピング)を所有する可能性がある。CAが、このようなマッピングを保持しない約束を破った場合、または、このようなマッピングが秘密にされる限り、このようなマッピングを保持するようにCAが許可されるが、CAのデータベースが危険にさらされた場合、そのCAによって証明されたすべてのTPMの識別情報を相関させることが可能になる。
【0006】
したがって、TPMは、CA等の第3の関係者を信頼することなく、製造業者によって当該TPMに与えられた証明情報で、自身が、信頼できる製造業者の適法な製品であることをRSPに確信させることができるのが望ましい。また、これは、RSPが任意の所与の時刻において相互作用しているTPMに製造業者により与えられた証明情報に当該RSPが気付くことを可能にすることなく、TPMのステータスを取り消すことができるように行われることも望ましい。
【0007】
これらの問題は、信頼できるコンピューティングプラットフォームに関して本明細書で特定された具体的な問題よりも広い、関係者間の通信への利用を有することが可能であることを理解することができる。例えば、この問題は、秘密の所有者、秘密の保証者、および秘密の正当性を信頼する関係者の間の秘密に関して、同様の信頼関係が存在する時は常に適用することができる。
【課題を解決するための手段】
【0008】
[発明の概要]
第1の態様によれば、本発明は、取り消し証を有するグループ署名方式によって計算資源へのアクセスを判断する方法を提供し、この方法は、証明書発行者が、グループ秘密鍵を保持し、且つ、グループ公開鍵を提供すること、グループメンバが、メンバーシップ秘密値を得て、証明書発行者が、メンバーシップ秘密値に関するグループメンバのメンバーシップ証明書を提供すること、グループメンバが、メンバーシップ秘密値もメンバーシップ証明書も検証者に明らかにすることなく、署名を提供することによって、自身が正当なメンバーシップ秘密値および正当なメンバーシップ証明書を所有していることを検証者に実証し、且つ、自身のメンバーシップ秘密値および取り消しパラメータから取り消し証を提供すること、および、検証者が、署名および取り消し証から、グループメンバが正当なメンバーシップ秘密値および正当なメンバーシップ証明書を所有していると判断すること、を含む。
【0009】
さらなる一態様によれば、本発明は、グループ公開鍵を有するグループ署名方式のメンバによって信頼ステータスを実証する方法を提供し、この方法は、グループメンバが、メンバーシップ秘密値を得て、且つ、証明書発行者から、メンバーシップ秘密値に関するグループメンバのメンバーシップ証明書を受け取ること、および、グループメンバが、メンバーシップ秘密値もメンバーシップ証明書も検証者に明らかにすることなく、署名を提供することによって、自身が正当なメンバーシップ秘密値および正当なメンバーシップ証明書を所有していることを検証者に実証し、且つ、自身のメンバーシップ秘密値および取り消しパラメータから取り消し証を提供すること、を含む。
【0010】
さらなる一態様によれば、本発明は、グループ公開鍵を有するグループ署名方式のメンバの信頼ステータスを検証する方法を提供し、この方法は、検証者が、グループメンバから、グループメンバのメンバーシップ秘密値およびメンバーシップ証明書から生成された署名を受け取り、且つ、グループメンバによって、自身のメンバーシップ秘密値および取り消しパラメータから提供された取り消し証を受け取ること、および、検証者が、署名および取り消し証から、グループメンバが正当なメンバーシップ秘密値および正当なメンバーシップ証明書を所有していると判断すること、を含む。
【0011】
さらなる一態様によれば、本発明は、プロセッサと、メンバーシップ秘密値、および、グループ公開鍵を有するグループ署名方式の証明書発行者によりメンバーシップ秘密値に対して発行されたメンバーシップ証明書を含むメモリと、を備える信頼できるコンピューティング装置を提供し、この信頼できるコンピューティング装置は、メンバーシップ秘密値もメンバーシップ証明書も検証者に明らかにすることなく、署名を提供することによって、自身が正当なメンバーシップ秘密値および正当なメンバーシップ証明書を所有していることを検証者に実証し、且つ、自身のメンバーシップ秘密値、自身のメンバーシップ証明書、グループ公開鍵、および取り消しパラメータから取り消し証を提供するように適合される。
【0012】
さらなる一態様によれば、本発明は、第1の関係者が、自身が第3の関係者によって適法に提供された秘密値を所有することを第2の関係者に証明することができる方法を提供し、この方法は、
第3の関係者が、第1の秘密値mと、第1の秘密値から関係
【0013】
【数1】
【0014】
に従って計算された第2の秘密値cとを第1の関係者に提供するステップであって、ここで、nはRSAモジュラスであり、e1およびe2はRSA公開指数であり、t1およびt2はランダムに選ばれた整数であり、それによって、d1はe1に対応するRSAプライベート指数である、ステップと、
第2の関係者が、第3の関係者からn、e1、e2、t1、およびt2を得るステップと、
第1の関係者が第1の秘密値m、および、関係に従って形成された第2の秘密値cを有することを第2の関係者に証明するために、第1の関係者が、第1の秘密値を使用する一方向関数の第1の複数の結果、および、第2の秘密値を使用する一方向関数の第2の複数の結果を第2の関係者に提供するステップと、
それによって、第2の関係者が、第1の複数の結果を、e1を使用する一方向関数の結果と比較し、第2の複数の結果を、e2を使用する一方向関数の結果と比較し、それによって、第1の関係者が、第1の秘密値mも第2の秘密値cも受け取ることなく、関係に従って形成された第1の秘密値mおよび第2の秘密値cを有することを検証するステップと、を含む。
【0015】
関連する一態様によれば、本発明は、プロセッサと、第1の秘密値m、および、第1の秘密値から関係
【0016】
【数2】
【0017】
に従って計算された第2の秘密値cを含むメモリと、を備える信頼できるコンピューティング装置を提供し、ここで、nはRSAモジュラスであり、e1およびe2はRSA公開指数であり、t1およびt2はランダムに選ばれた整数であり、それによって、d1はe1に対応するRSAプライベート指数であり、プロセッサは、第1の秘密値mも第2の秘密値cも明らかにすることなく、第1の秘密値を使用する一方向関数の第1の複数の結果、および、第2の秘密値を使用する一方向関数の第2の複数の結果を他の関係者に提供することによって、自身が、関係に従って形成された第1の秘密値mおよび第2の秘密値cを所有していることを他の関係者に証明するようにプログラミングされている。
【0018】
さらなる一態様によれば、本発明は、第2の関係者によって提供されたサービスへの第1の関係者のアクセスを制御する方法を提供し、第1の関係者は、自身が第3の関係者によって適法に提供された秘密値を所有することを、秘密値を明らかにすることなく別の関係者に証明するように適合され、
第1の関係者が第3の関係者によって適法に提供された秘密値を所有することを、秘密値が第4の関係者に明らかにされない状態で、第1の関係者が証明し、第4の関係者が検証するステップと、
第4の関係者が、第1の関係者に証明書を発行し、第3の関係者によって適法に提供された秘密値であって、或る関係者がその秘密値を所有することを検証する後のステップで再生成されることになる秘密値を、第1の関係者が所有することを検証するステップの識別子を証明書に関連付けるステップと、
第4の関係者が、証明書正当性情報を保持し、それによって、第1の関係者がサービスにアクセスしようと試みる時、第1の関係者が、第4の関係者によって発行された証明書を第2の関係者に提供し、サービスへのアクセスを提供する前に、第2の関係者が、第4の関係者によって提供された証明書正当性情報から、証明書が正当かどうかを判断するステップと、を含む。
【0019】
好ましくは、グループメンバはコンピューティング装置であり、証明書発行者はそのコンピューティング装置の製造業者である。より具体的には、コンピューティング装置は、好ましくは、認可されていない修正に対して物理的および論理的に耐性を有するように適合された、信頼できるコンピューティングモジュールであり、好ましくは、コンピューティングプラットフォームのコプロセッサとしての使用に適合された、信頼できるコンピューティングモジュールである。
【0020】
次に、本発明をより良く理解し、有効にする方法を示すために、添付図面に関して、本発明による特定の実施の形態、方法、およびプロセスを単なる例として説明することにする。
【発明を実施するための最良の形態】
【0021】
[特定の実施の形態の詳細な説明]
信頼できるコンピューティングプラットフォーム連合(Trusted Computing Platform Alliance)の仕様に説明されたタイプの信頼できるプラットフォームについて次に説明する。このようなプラットフォームは、本出願人による先願で説明されており、特に、国際特許出願公開第WO00/48063号および第WO00/54126号で説明されている。これらの出願は、適用法の下で可能な最大限まで参照により本明細書に援用される。例示の信頼できるプラットフォームの要素および当該信頼できるプラットフォームのオペレーションを最初に説明することにする。次に、本発明の第2の実施の形態のこれらの要素およびオペレーションを、信頼できるプラットフォームの先の一般的な説明に関して説明することにする。
【0022】
本明細書では、物理的なコンポーネントまたは論理的なコンポーネントに関して使用される場合の用語「信頼できる」は、その物理的なコンポーネントまたは論理的なコンポーネントが、常に予測されたように振る舞うことを意味するのに使用される。そのコンポーネントの振る舞いは、予測可能であり、かつ、既知である。信頼できるコンポーネントは、認可されていない変更に対して高度の抵抗力を有する。
【0023】
本明細書では、用語「コンピュータプラットフォーム」は、少なくとも1つのデータプロセッサおよび少なくとも1つのデータストレージ手段を備えるコンピュータシステムを指すのに使用される。このコンピュータシステムは、必ずしもそうとは限らないが、通例、例えば複数のドライバといった関連した通信設備、関連したアプリケーションおよびデータファイルを有する。このコンピュータシステムは、例えば、インターネットへの接続、外部ネットワークへの接続によるか、または、例えばCD ROM、フロッピー(登録商標)ディスク、リボンテープ等のデータストレージ媒体に記憶されたデータを受信できる入力ポートを有することによって、例えばユーザまたは別のコンピュータプラットフォームといった外部エンティティと相互作用できる場合がある。用語「コンピュータプラットフォーム」は、コンピュータエンティティのメインデータ処理およびストレージ設備を包含する。
【0024】
各コンピュータエンティティの信頼できるコンポーネントを使用することによって、異なるコンピューティングプラットフォーム間の或るレベルの信頼が可能にされる。リモートでまたはコンピュータエンティティのモニタを通じてのいずれかによって、このようなプラットフォームにその状態に関して照会することが可能であり、その状態を信頼できる状態と比較することが可能である。このような照会によって収集された情報は、そのプラットフォームのさまざまなパラメータを監視するコンピューティングエンティティの信頼できるコンポーネントによって提供される。信頼できるコンポーネントによって提供された情報は、暗号認証によって認証することができ、信頼することができる。「信頼できるプラットフォーム」は、このように、その機能が、プラットフォームの完全性メトリック(integrity metric)を提供する、信頼できるように測定されたデータにプラットフォームの識別情報を結びつけることである信頼できる物理信頼デバイスをコンピューティングプラットフォームに組み込むことによって達成することができる。この識別情報および完全性メトリックは、プラットフォームの信頼性を保証するように準備された信頼できる関係者(TP(trusted party))によって提供された予測値と比較される。一致する場合、それは、プラットフォームの少なくとも一部が、完全性メトリックの範囲に応じて正しく動作していることを意味する。
【0025】
信頼できるコンポーネントが存在することによって、コンピューティングエンティティに対してリモートまたはローカルな1つの第3の関係者のソフトウェアは、自身の認証および同一性の証明を得るために、および、そのコンピューティングエンティティの測定された完全性メトリックを取り出すために、コンピューティングエンティティと通信することが可能になる。人間のユーザが、彼もしくは彼女のコンピューティングエンティティ、または、その者がユーザインターフェースによって対話できる他の任意のコンピューティングエンティティと或るレベルの信頼できる対話を行うために、信頼できるトークンデバイスがユーザにより使用されて、コンピューティングエンティティの信頼できるコンポーネントがインターロゲートされ、信頼できるコンポーネントによって検証された、コンピューティングエンティティの状態に関する報告がユーザに行われる。信頼できるコンポーネントと信頼できるトークンデバイスとの間の認証は、対象となる実際の状況では、相互的である。ユーザは、信頼できるコンポーネントによって認証され、(ユーザが適切な特権を有する場合)信頼できるコンポーネントの制御の許可を受けることができる。信頼できるコンポーネントは、ユーザによって認証され(信頼できるコンポーネントとして認識され、適切な状況では、ユーザにより所有された信頼できるコンポーネント、または、制御可能な信頼できるコンポーネントとして認識される)。
【0026】
このタイプの信頼できるプラットフォームの利点およびアプリケーションにおける使用は、国際特許出願公開第WO00/48063号および第WO00/54126号に多少詳細に説明され、「Trusted Computing Platforms: TCPA Technology in Context」にかなり詳細に説明されており、本明細書ではこれ以上説明しないことにする。
【0027】
このような構成の信頼できるコンポーネントは、暗号プロセスを使用する。最も望ましいインプリメンテーションは、信頼できるコンポーネントを不正操作できないようにすること、秘密値を他のプラットフォーム機能にアクセス不能にすることによりそれら秘密値を保護すること、および、認可されていない修正に対して強固な免疫を有する環境を提供することである。完全に不正操作できなくすることは不可能であるので、最も近いものは、不正操作の耐性を有するか、または、不正操作を検出する、信頼できるデバイスである。したがって、この信頼できるデバイスは、好ましくは、不正操作の耐性を有する1つの物理的なコンポーネントから構成される。不正操作の耐性の技法は、当業者に既知であり、国際特許出願公開第WO00/48063号および第WO00/54126号にさらに説明されている。
【0028】
信頼できるプラットフォーム10、40が、図1の線図に(および図4に写実的に)概略的に示されている。このプラットフォーム10、40は、キーボード14、45、マウス16(図4には図示せず)、およびモニタ18、44の標準装備を含む。これらの標準装備は、プラットフォームの物理的な「ユーザインターフェース」を提供する。また、信頼できるプラットフォームのこの実施の形態は、スマートカードリーダ12、42も含む。スマートカードリーダ12、42の横側には、信頼できるプラットフォームとの信頼できるユーザ対話を可能にするためのスマートカード19、41が示されている。プラットフォーム10、40では、複数のモジュール15がある(図1に図示されている)。これらのモジュールは、この信頼できるプラットフォームの他の機能要素であって、そのプラットフォームに適した、基本的には任意の種類の機能要素である。このような要素の機能的な意義は、本発明に関係するものではなく、本明細書ではこれ以上説明しないことにする。信頼できるコンピュータエンティティのさらに別のコンポーネントには、通常、1つまたは複数のローカルエリアネットワーク(LAN)ポート、1つまたは複数のモデムポート、および1つまたは複数の電源装置、冷却ファン等が含まれる。図4では、以下で説明する本発明の実施の形態に明らかに関連するように、コンピューティングプラットフォーム40は、ネットワーク43(このネットワークはLAN、モデムによってアクセスされる公衆インターネット等のネットワーク、または適切な接続を有する他の任意の形態のネットワークとすることができる)に接続されて示されている。
【0029】
図2に示すように、信頼できるコンピューティングプラットフォーム10のマザーボード20は、(他の標準的なコンポーネントの中でも特に)メインプロセッサ21、メインメモリ22、信頼できるデバイス24(上述した信頼できるコンポーネントの物理的な形態)、データバス26、ならびに、各制御ライン27およびライン28、BIOSメモリ29、ならびに入出力(IO)デバイス23を含む。BIOSメモリ29は、プラットフォーム10のBIOSプログラムを含む。入出力デバイス23は、このマザーボードのコンポーネントと、スマートカードリーダ12、キーボード14、マウス16、およびモニタ18(および、モデム、プリンタ、スキャナ等の追加された任意の周辺デバイス)との間の相互作用を制御する。メインメモリ22は、通常、ランダムアクセスメモリ(RAM)である。動作時に、プラットフォーム10は、オペレーティングシステム(および、プラットフォームが実行することができるプロセスまたはアプリケーション)をハードディスク(図示せず)からRAMにロードする。このオペレーティングシステムは、例えばWindows XP(登録商標)である。
【0030】
コンピュータエンティティは、物理アーキテクチャだけでなく論理アーキテクチャも有するものと考えることができる。論理アーキテクチャは、本明細書において図1から図3で説明する物理アーキテクチャと共に存在するように、コンピュータプラットフォームと信頼できるコンポーネントとの間で同じ基本分割(basic division)を有する。換言すると、信頼できるコンポーネントは、当該コンポーネントが物理的に関係するコンピュータプラットフォームとは論理的に異なる。コンピュータエンティティは、ユーザ空間および信頼できるコンポーネント空間を備える。このユーザ空間は、コンピュータプラットフォーム(第1のプロセッサおよび第1のデータストレージ手段)に物理的に常駐する論理空間である。信頼できるコンポーネント空間は、信頼できるコンポーネントに物理的に常駐する論理空間である。ユーザ空間には、1つまたは複数のドライバ、1つまたは複数のアプリケーションプログラム、ファイルストレージエリア、スマートカードリーダ、スマートカードインターフェース、およびソフトウェアエージェントが存在する。このソフトウェアエージェントは、ユーザ空間でオペレーションを実行でき、信頼できるコンポーネントに報告を返すことができる。信頼できるコンポーネント空間は、信頼できるコンポーネントに基づき、かつ、その信頼できるコンポーネントに物理的に常駐する論理エリアであり、その信頼できるコンポーネントの第2のデータプロセッサおよび第2のメモリエリアによってサポートされる。モニタ18は、信頼できるコンポーネント空間から直接画像を受け取る。コンピュータエンティティの外部には、例えば、インターネット、およびさまざまなローカルエリアネットワーク、ワイドエリアネットワークといった外部通信ネットワークが存在する。これらのネットワークは、ドライバ(1つまたは複数のモデムポートを含むことができる)を介してユーザ空間に接続される。外部ユーザスマートカードは、ユーザ空間のスマートカードリーダに入力する。
【0031】
通常、パーソナルコンピュータでは、BIOSプログラムが、予約された特別なメモリエリアに配置される。この特別なメモリエリアは、システムメモリの最初のメガバイトの上位64キロバイト(アドレスF000hからFFFFh)である。業界標準によれば、メインプロセッサは、このメモリロケーションを最初に調べるように構成される。
【0032】
このプラットフォームと従来のプラットフォームとの間の重大な相違は、リセット後、メインプロセッサが、信頼できるデバイスによって最初に制御され、次いで、この信頼できるデバイスが、プラットフォーム特有のBIOSプログラムに制御を渡し、次に、BIOSプログラムがすべての入出力デバイスを通常通り初期化するということである。BIOSプログラムが実行された後、制御は、通常通り、BIOSプログラムによって、WindowsXP(商標)等のオペレーティングシステムプログラムに渡される。このオペレーティングシステムプログラムは、通常、ハードディスクドライブ(図示せず)からメインメモリ22にロードされる。
【0033】
明らかに、この通常の手順からの変更によって、業界標準のインプリメンテーションの修正が必要とされる。その修正によって、メインプロセッサ21は、信頼できるデバイス24をアドレス指定して、その最初の命令を受け取るように指示される。この変更は、単に、メインプロセッサ21に異なるアドレスをハードコード化することによって行うことができる。代替的に、信頼できるデバイス24に、標準BIOSプログラムのアドレスを割り当てることができる。この場合、メインプロセッサの構成を修正する必要はない。
【0034】
一方、比較的安全なプラットフォームは、このような基本変更なしに達成することができる。このようなインプリメンテーションでは、プラットフォームは、電源投入時には依然としてBIOSにより制御され、したがって、BIOS(または、少なくともBIOSブートブロック)も信頼できるものでなければならない。これは、信頼の基盤(root-of-trust)が(説明した、好ましい信頼できるプラットフォームの実施の形態におけるように)単一ではなく、2つ存在することを意味し、BIOSブートブロックも信頼の基盤となることを意味する。
【0035】
BIOSブートブロックが、信頼できるデバイス24内に含まれることは非常に望ましい。これによって、完全性メトリックを得ることの破壊(通常ならば、悪性ソフトウェアプロセスが存在する場合に発生し得る)が防止され、悪性ソフトウェアプロセスが、BIOS(たとえ正しくても)がオペレーティングシステムに適した環境を構築できない状況を作り出すことが防止される。
【0036】
信頼できるデバイス24は、図3に示すように複数のブロックを備える。システムがリセットされた後、信頼できるデバイス24は、認証されたブートプロセスを実行して、プラットフォーム10のオペレーティングシステム(システムクロックおよびモニタ上の表示を含む)が適切にかつ安全な方法で実行されていることを保証する。より正確には、プラットフォームの状態が信頼できるように記録されることを保証する。認証されたブートプロセスの期間中、信頼できるデバイス24は、コンピューティングプラットフォーム10の完全性メトリックを取得する。また、信頼できるデバイス24は、安全なデータ転送、ならびに、例えば、暗号化/解読および署名/検証を介して当該信頼できるデバイスとスマートカードとの間の認証を実行することもできる。また、信頼できるデバイス24は、ユーザインターフェースのロック等のさまざまなセキュリティ制御ポリシーを安全に実行することもできる。
【0037】
具体的には、信頼できるデバイスは、コントローラ30、測定機能31、暗号機能32、認証機能33、およびインターフェース回路部34を備える。コントローラ30は、信頼できるデバイス24の全体的なオペレーションを制御し、且つ信頼できるデバイス24の他の機能およびマザーボード20の他のデバイスと相互作用するようにプログラミングされている。測定機能31は、プラットフォーム10から完全性メトリックを取得するためのものである。暗号機能32は、指定されたデータの署名、暗号化、または解読を行うためのものである。認証機能33は、スマートカードを認証するためのものである。インターフェース回路部34は、信頼できるデバイス24を、マザーボード20のデータバス26、制御ライン27、およびアドレスライン28にそれぞれ接続するための適切なポート(36、37および38)を有する。信頼できるデバイス24のこれらブロックのそれぞれは、信頼できるデバイス24の適切な揮発性メモリエリア4および/または不揮発性メモリエリア3に(通常、コントローラ30を介して)アクセスする。これに加えて、信頼できるデバイス24は、耐タンパ性を有するように、既知の方法で設計される。
【0038】
好ましい構成では、モニタ18は、信頼できるコンポーネント自体に含まれるモニタサブシステムによって直接駆動することができる。この実施の形態では、信頼できるコンポーネント空間には、信頼できるコンポーネント自体が常駐し、表示が、信頼できるコンポーネントによってモニタ18に生成される。この構成は、本出願人の国際特許出願公開第WO00/73879号にさらに説明されている。この国際特許出願は、参照により本明細書に援用される。
【0039】
性能の理由により、信頼できるデバイス24は、特定用途向け集積回路(ASIC)として実施されることがある。しかしながら、柔軟性のため、信頼できるデバイス24は、好ましくは、適切にプログラミングされたマイクロコントローラである。ASICおよびマイクロコントローラは、共に、マイクロエレクトロニクスの技術分野において既知であり、本明細書ではこれ以上詳細に考察しないことにする。
【0040】
信頼できるデバイス24の不揮発性メモリ3に記憶された1つのデータ項目は、証明書350である。この証明書350は、少なくとも、信頼できるデバイス24の公開鍵351、および、信頼できる関係者(TP)によって測定されたプラットフォーム完全性メトリックの認証値352を含む。証明書350は、信頼できるデバイス24に記憶される前に、TPのプライベート鍵を使用してTPにより署名される。後の通信セッションでは、プラットフォーム10のユーザは、取得された完全性メトリックを真正な完全性メトリック352と比較することによって、プラットフォーム10の完全性を検証することができる。一致する場合、ユーザは、プラットフォーム10が破壊されていないことを確信することができる。TPの一般に利用可能な公開鍵を知ることによって、証明書350の簡単な検証が可能になる。また、不揮発性メモリ35は識別(ID)ラベル353も含む。このIDラベル353は、或る状況において一意である従来のIDラベルであり、例えば、連続番号である。IDラベル353は、一般に、信頼できるデバイス24に関連したデータのインデックスおよびラベルに使用されるが、信頼できる状況下においてプラットフォーム10の同一性を証明するのにそれ自体では不十分である。
【0041】
信頼できるデバイス24は、自身が関連付けられているコンピューティングプラットフォーム10の完全性メトリックを信頼できるように測定または取得する少なくとも1つの方法を備えている。これによって、プラットフォーム10の潜在的なユーザには、プラットフォーム10がハードウェアレベルにおいてもBIOSプログラムレベルにおいても破壊されていないことの高レベルの確信が与えられる。オペレーティングシステムおよびアプリケーションプログラムコードが破壊されていないことをチェックするための他の既知のプロセス、例えばウィルスチェッカが、通常、配置されることになる。
【0042】
測定機能31は、信頼できるデバイス24のハッシュプログラム354およびプライベート鍵355を記憶するための不揮発性メモリ3、ならびに、取得された完全性メトリックを摘要361の形で記憶するための揮発性メモリ4にアクセスする。適切な実施の形態では、揮発性メモリ4は、プラットフォーム10にアクセスするのに使用できる1つまたは複数の真正なスマートカード19の公開鍵および関連したIDラベル360a〜360nを記憶するのに使用することもできる。
【0043】
完全性メトリックの取得は、本発明にとって必須のものではなく、本明細書ではこれ以上説明しないことにする。このプロセス、および、ユーザまたは第3の関係者による信頼できるプラットフォームの完全性を検証するプロセスは、国際特許出願公開第WO00/48063号に詳細に説明されるプロセスである。
【0044】
上述したように、信頼できるプラットフォームに対してユーザを認証するための好ましい手段は、スマートカード19等のトークンデバイスである(ただし、ユーザは、例えば、ネットワークによって信頼できるプラットフォームと通信するリモートプラットフォームとすることができることに留意すべきである)。ユーザのスマートカード19は、コンピューティングエンティティとは別個のトークンデバイスである。このトークンデバイスは、スマートカードリーダポート19を介してコンピューティングエンティティと相互作用する。ユーザは、いくつかの異なるベンダまたはサービスプロバイダによって発行された、いくつかの異なるスマートカードを有することができる。また、ユーザは、本明細書で説明するような複数のコンピューティングエンティティのいずれか1つからインターネットまたは複数のネットワークコンピュータにアクセスすることができる。これら複数のコンピューティングエンティティには、信頼できるコンポーネントおよびスマートカードリーダが提供される。ユーザが使用している個々のコンピューティングエンティティの当該ユーザの信頼は、ユーザの信頼できるスマートカードトークンとそのコンピューティングエンティティの信頼できるコンポーネントとの間の相互作用から得られる。ユーザは、自身の信頼できるスマートカードトークンを頼りにして、信頼できるコンポーネントの信頼性を検証する。
【0045】
図5は、信頼できる関係者TPによる動作、プラットフォームに組み込まれた信頼できるデバイス24による動作、および、従来技術の信頼できるプラットフォーム技術に従って信頼できるプラットフォームの完全性を検証したい(リモートプラットフォームの)ユーザによる動作のフローを示している。ユーザがローカルユーザである場合にも、図5に示すステップと実質的に同じステップが含まれることが理解されよう。いずれの場合も、ユーザは、通常、或る形態のソフトウェアアプリケーションを頼りにして、検証を遂行する。リモートプラットフォームまたは信頼できるプラットフォームでソフトウェアアプリケーションを実行することが可能である。しかしながら、リモートプラットフォームであっても、ソフトウェアアプリケーションを何らかの方法で破壊できる機会がある。したがって、高レベルの完全性を得るには、ソフトウェアアプリケーションがユーザのスマートカードに常駐することが好ましい。このユーザは、検証のためにこのスマートカードを適切なリーダに挿入することになる。
【0046】
最初の段階では、信頼できるプラットフォームを保証するTPが、プラットフォームのタイプを検査して、そのプラットフォームを保証すべきかどうかを決定する。これは、ポリシーの問題である。すべてがうまくいくと、ステップ500において、TPは、プラットフォームの完全性メトリックの値を測定する。次に、TPは、ステップ505で、プラットフォームの証明書を生成する。この証明書は、信頼できるデバイスの公開鍵およびオプションとしてそのIDラベルを、測定された完全性メトリックに付加すること、および、TPのプライベート鍵でその文字列に署名することによって、TPにより生成される。本発明は、特に、イベントのこの連鎖およびこのような信頼できる関係者(通常、認証局)の役割の改良に関係していることに留意すべきである。
【0047】
信頼できるデバイス24は、その後、自身のプライベート鍵を使用して、ユーザから受け取った或る入力データを処理し出力データを生成し、入力/出力の対が、プライベート鍵の知識なしでは生成することが統計的には不可能であるようにすることによって自身の同一性を証明する。したがって、プライベート鍵の知識は、この場合の同一性の基礎を形成する。明らかに、対称暗号化を使用して、同一性の基礎を形成することは実現可能である。しかしながら、対称暗号化を使用する場合の不都合は、ユーザが自身の秘密値を信頼できるデバイスと共有する必要があるということである。さらに、秘密値をユーザと共有する必要がある結果として、対称暗号化は、原則として、ユーザに同一性を証明するには十分であるが、第3の関係者に同一性を証明するには不十分である。第3の関係者は、信頼できるデバイスまたはユーザからもたらされた検証を完全に確信することができない。
【0048】
ステップ510において、信頼できるデバイス24は、当該信頼できるデバイス24の適切な不揮発性メモリロケーション3に証明書350を書き込むことによって初期化される。これは、好ましくは、信頼できるデバイス24がマザーボード20にインストールされた後に、信頼できるデバイス24との安全な通信によって行われる。信頼できるデバイス24に証明書を書き込む方法は、プライベート鍵をスマートカードに書き込むことによってスマートカードを初期化するのに使用される方法と類似している。安全な通信は、TPのみが知っている「マスタ鍵」によってサポートされる。この「マスタ鍵」は、製造期間中に信頼できるデバイス(またはスマートカード)に書き込まれ、信頼できるデバイス24へのデータの書き込みを可能にするのに使用される。マスタ鍵の知識なしで、信頼できるデバイス24へのデータの書き込みは不可能である。
【0049】
プラットフォームの動作中の或る後の時点で、例えば、プラットフォームが電源投入されるか、または、リセットされると、ステップ515において、信頼できるデバイス24は、プラットフォームの完全性メトリック361を取得して記憶する。
【0050】
ユーザがプラットフォームと通信したい場合、ステップ520において、ユーザは、乱数等のノンスを作成し、ステップ525において、信頼できるデバイス24を誰何する(プラットフォームのオペレーティングシステムまたは適切なソフトウェアアプリケーションは、その誰何を認識し、通常はBIOSタイプの呼び出しを介して適切な方法で、信頼できるデバイス24にその誰何を渡すように構成される)。ノンスは、信頼できないプラットフォームによる、古いが本物の署名を再生したもの(「反射攻撃(replay attack)」と呼ばれる)によって引き起こされる詐欺からユーザを保護するのに使用される。ノンスを提供してその応答を検証するプロセスは、既知の「誰何/応答」プロセスの一例である。
【0051】
ステップ530において、信頼できるデバイス24は、誰何を受け取って、適切な応答を作成する。この応答は、測定された完全性メトリックおよびノンス、ならびにオプションとしてそのIDラベルの摘要とすることができる。次に、ステップ535において、信頼できるデバイス24は、そのプライベート鍵を使用して摘要に署名し、署名した摘要を、証明書350を添付してユーザに返す。
【0052】
ステップ540において、ユーザは、誰何応答を受け取り、TPの既知の公開鍵を使用して証明書を検証する。次に、ユーザは、ステップ550において、信頼できるデバイス24の公開鍵を証明書から抽出し、その公開鍵を使用して、誰何応答からの署名された摘要を解読する。次に、ステップ560において、ユーザは、誰何応答内部のノンスを検証する。次に、ステップ570において、ユーザは、計算された完全性メトリックを適切なプラットフォーム完全性メトリックと比較する。計算された完全性メトリックは、ユーザが誰何応答から抽出する。適切なプラットフォーム完全性メトリックは、ユーザが証明書から抽出する。上記検証ステップのいずれかが失敗すると、ステップ545、555、565、または575において、プロセス全体がステップ580で終了し、それ以上の通信は行われない。
【0053】
すべてがうまくいくと仮定して、ステップ585および590において、ユーザおよび信頼できるプラットフォームは、他のプロトコルを使用して、他のデータの安全な通信をセットアップする。ここで、プラットフォームからのデータは、好ましくは、信頼できるデバイス24によって署名される。
【0054】
この検証プロセスをさらに洗練することが可能である。誰何者が、誰何を通じて、プラットフォーム完全性メトリックの値、および、そのプラットフォーム完全性メトリックの値が得られた方法の双方を知っていることが望ましい。これら双方の情報は、誰何者がプラットフォームの完全性について適切な判断を行うことを可能にするものであることが望ましい。また、誰何者は、利用可能な多くの異なるオプションを有する。すなわち、誰何者は、完全性メトリックが、信頼できるデバイス24において正当であると認識されることを容認することができるか、または、完全性メトリックの値が、誰何者によって保持された値と等しい場合に、プラットフォームが、関連したレベルの完全性を有することのみを容認することができる(もしくは、これら2つの場合に、異なるレベルの信頼が存在すると考えることができる)。
【0055】
証明書への署名、証明書の使用、および誰何/応答の技法、ならびに、それらを使用して同一性を証明する技法は、セキュリティの当業者に既知であり、したがって、本明細書ではこれ以上詳細に説明する必要はない。
【0056】
前述の構造およびプロトコルを使用し、場合によっては変更する、本発明の特定の実施の形態を次に説明することにする。まず、特に関連した状況を図6に関して説明することにする。図6は、従来の信頼できるコンピューティング技術における、リモートサービスプロバイダ(RSP(remote service provider))から信頼できるプラットフォームによるサービスの獲得に関与するか、または、関与する可能性のある異なる関係者、および、それら異なる関係者の信頼関係を概略的に示している。
【0057】
信頼できるプラットフォーム製造業者61は、信頼できるプラットフォームモジュール(TPM(trusted platform module))62を製造し、一意の保証鍵をTMP62に提供する(ステップ65)。製造業者はこの一意の保証鍵を証明する。この証明された保証鍵は、次に、信頼できるプラットフォーム製造業者61によって信頼された認証局(CA)63に渡され(ステップ66)、ランダムに選ばれた識別情報に関する証明書が、CAによって発行される(ステップ67)。このランダムに選ばれた識別情報は、TPMの新しい識別情報となる。リモートサービスプロバイダ(RSP)64は、プラットフォームにサービスを提供することができるが、サービスを受け取るプラットフォームが確かに信頼できることが確信できない場合に、このサービスを提供することを好まないことがある。TPM62は、このRSP64とのその後の相互作用において、このCA証明書をRSP64に提供する(ステップ68)。RSP64は、次に、CAの公開データを使用することによって、その証明書がCA62によって正当に発行されたものであることをチェックすることができる。ここで、RSPは、CA、および、本物の信頼できるプラットフォームの製造業者の双方を信頼するものと仮定する。そうである場合、ここに、有効な信頼の連鎖(chain of trust)が存在する。すなわち、RSPはCAを信頼し、したがって、(TPMが、信頼できるプラットフォーム製造業者によって証明されたことを示すものと主張する)証明された情報が正当であることを信頼し、したがって、TPM62が、確かに、既知の信頼できるプラットフォーム製造業者61の適法な製品であることを信頼する。信頼できるプラットフォームのプライバシーに関連した事項も、RSPに関して満たすことができる。すなわち、この構成は、RSPがどのTPMと相互作用しているかをRSPに明らかにする必要はない(すなわち、これは、RSPが確立できるものは、RSPが、既知でかつ信頼できる製造業者によって製造された真正なTPMと相互作用しているということだけであるように構成することができる)。
【0058】
上述したように、この方式に関する深刻な問題は、CAが現在、システムの弱点であるということである。すなわち、TPMの識別情報(および、場合によっては多数のTPMの識別情報)を相関させることが可能である。CAが、保証鍵を識別情報にマッピングしないとする同意を破るか、または、このようなマッピングを行う許可を有し、CAのデータベースが危険にさらされる場合、そのCAによって証明されているすべてのTPMの識別情報も、おそらく危険にさらされていることになる。
【0059】
この問題に対処する2つの異なる方式および関連したアーキテクチャを次に説明することにする。第1の方式は、信頼できるプラットフォームが、秘密値そのものを明らかにすることなく、信頼できる製造業者によって正当に形成された証明書を所有するということを検証者(リモートサービスプロバイダ等)に直接証明することを、信頼できるプラットフォームモジュールに与えられた証明書の特定の構成が信頼できるプラットフォームにどのように可能にすることができるかを詳述し、次に、取り消しを満足に実行できるシステムアーキテクチャの説明に進む。第2の方式は、取り消しに使用される証拠を提供するように適合されたグループ署名方式である。この第2の方式は、広く説明されるように、一般的な方式とみなすことができ、第1の方式はこの一例でもある(ただし、異なる特定のアルゴリズムを第1の方式に対して使用する、第2の方式の特定のバージョンも説明される)。
【0060】
<第1の方式>
本発明の態様では、この問題を解決するために取られた手法は、検証者が特定のTPMを見分けることができないように、TPMが信頼できる製造業者の証明を有することを、TPM自身が検証者に確信させることを可能にするメカニズムを見つけることである。検証者は、RSPの場合もあるし、認証局の場合もあるし、取り消し局の場合もある。したがって、TPMは、単に、その保証鍵をCAに与え、次いで、RSAが(CAを参照することによる)間接的な証明を有するのではなく、自身が適法なTPMであるという直接的な証明を提供することができる。関与する関係は、(同じ要素を参照する場合は、図6と同じ参照番号で)図7に示されている。信頼できるプラットフォーム製造業者61は、一意の識別情報をTPM62に提供し、この識別情報を証明する(ステップ65)。以下で分かるが、この証明は新しい形態を取る。したがって、このような構成では、CA63は、この製造業者の証明書を証明する役割を行う必要がないということが可能である(ただし、取り消しに関して以下で分かるように、TPM証明が取り消されたかどうかを判断することをRSPに可能にする際のCAの役割は依然として存在する。これは、図7では、破線73によって表されている)。その代わりに、TPMが信頼できる製造業者の適法な商品であることを、検証者64が立証する必要がある場合、相互作用71が行われる。この相互作用71では、TPMは、自身の一意の識別情報を検証者に明らかにしないが、自身の証明書が、信頼できる製造業者による適切な方法以外の何らかの方法で形成された可能性は極めて少ないことを(適切な標準機関(standard)へ)示す。以下でさらに説明するように、この相互作用71は、検証者64とTPM62との間の反復的な相互作用とすることができる(証明者および検証者を有するこのような相互作用による証明は、ゼロ知識証明として知られている。この証明では、証明者は、或る記述の証明にどのように取り掛かるに関する情報を何ら明らかにすることなく、検証者にその記述を確信させる)。または、この相互作用71は、検証者による評価について、署名された数学的構造を検証者にTPMによって提供することにより達成することもできる(TPMに対するいくつかの計算負担を犠牲にして通信効率に明らかな利点を有する)。いずれの場合も、検証者は、信頼できるプラットフォーム製造業者からの公開データを使用して、証明書が、信頼できるプラットフォーム製造業者によって適切な方法で形成されたものに違いないと判断する。
【0061】
本発明の一態様による直接的な証明方式を次に説明することにする。この方式は、2つのバージョンで説明される。一方のバージョンは、TPMと検証者との間の反復的な相互作用を必要とするゼロ知識証明である。他方のバージョンは、TPMによる数学的構造の匿名の署名を含み、検証者は、その後、TPMの証明書がその数学的構造の解決によって正当に形成されるものと判断することができる。いずれの場合も、製造業者による証明は、条件
【0062】
【数3】
【0063】
を使用する。
ここで、mはTPMの識別情報であり、(e1,e2,n,t1,t2)はTPM製造業者の公開パラメータである。これらのプライベートコンポーネントのうち、nはRSAモジュラスであり、e1およびe2はRSAの指数であり、t1およびt2は、ランダムに選ばれた整数である。d1は、e1から導出されたプライベートパラメータである。この条件は、ゼロ知識では(loge1)+(loge2)ラウンドによって証明することができる。e1もe2もセキュリティパラメータではないので、双方は、合理的に小さな範囲内になるように選ぶことができる(TCG仕様の現在のバージョンでは、e=216+1であり、nは2048ビットのサイズを有する)。この方式のセキュリティは、nが未知の因数分解を有するRSAモジュラスである場合に、
【0064】
【数4】
【0065】
となるような値mおよびcを計算することが困難となるように、
【0066】
【数5】
【0067】
に2つの整数t1およびt2が存在し、
【0068】
【数6】
【0069】
に2つの小さな整数e1およびe2が存在するという仮定(J. CamenischおよびM. Stadler著「Efficient group signature schemes for large groups」, Advances in Cryptology - CRYPTO '97, LNCS 1294, pp. 410-424, Springer-Verlag, 1997によって提案された)に基づいている。
【0070】
【数7】
【0071】
を用いて正当な対(m,c)を偽造するために、攻撃者は、(a)cを選び、次に、
【0072】
【数8】
【0073】
を計算するか、または、(b)mを選び、次に、
【0074】
【数9】
【0075】
を計算することによって開始することができる。いずれの場合も、攻撃者は、RSA問題を解かなければならず、したがって、正当な対の偽造は困難であるとみなすことができる。
【0076】
用語がこの出願で具体的に特定されていない場合、これは、一般的に、それら用語が一般に暗号学で使用されるものであり、当業者に容易に理解されるからである。あるいは、読み手には、適切な暗号学の入門書(http://www.rsasecurity.com/rsalabs/faq/index.htmlで入手される、RSA Laboratories' Frequently Asked Questions About Today's Cryptographyのテキストおよび参考文献で提供される入門書等)が案内される。
【0077】
各方式は、基本構築ブロックとして、(h,x=hu,y=hv,z=huv)がDiffie−Hellman(DH)タプルであること、および、証明者が秘密値vを知っていることを検証するのに使用される技術プリミティブ(technical primitive)を使用する。ゼロ知識証明およびその署名バージョンには、異なる技術プリミティブが使用される。双方のプリミティブは、以下のように同じ入力を使用する。
【0078】
公開入力:
n−RSAモジュラス、H−|n|に近い出力サイズを有するハッシュ関数
K−P=Kn+1(素数)を満たす最小数
a∈Zn*(a≠1),h=aK mod P
x=hu mod P,y=hv mod P,z=huv mod P
(証明者の)プライベート入力:v
【0079】
相互作用方式のプリミティブは、本明細書では、DH−interaction(h,x,y,z)と呼ぶ。これは、以下のステップを含む。
1.検証者は、1<a<n、1<b<nをランダムに選び、証明者にC=haxb mod Pを送る。
2.証明者は、検証者にR=H(Cv mod P)を送る。
3.検証者は、R?=H(yazb mod P)である場合は容認し、そうでない場合は拒否する(なお、例えば、「A?=B」は、「もしA=Bなら真、それ以外は偽」を意味する)。
【0080】
このプリミティブは、明らかにシミュレーション可能である(ゼロ知識証明の特性は、ゼロ知識証明が、どの第3の関係者にも秘密値に関する情報を提供することなく正確にシミュレーションできることである)。その理由は、誰もが、vを知ることなく、C=haxb mod PおよびR=H(yazb mod P)を計算できるからである。このシミュレーションは、実際の証明からの分布(distribution)と同一の分布を有する。
【0081】
署名方式のプリミティブは、本明細書では、DH−signature(h,x,y,z)と呼ぶ。これは、証明者と検証者との間で以下のように働く。
1.署名者は1<b<nをランダムに選び、次に、以下を計算する。
f=hb mod P,g=xb mod P
w=H(x,y,z,f,g)
s=b−v*w mod n
署名者は、DHタプル(x,y,z)に対する署名として、検証者に(w,s)を送る。
2.その署名を検証するために、検証者は以下を計算する。
f'=hsyw mod P
g'=xszw mod P
w'=H(x,y,z,f',g')
検証者は、w'?=wのチェックが成功する場合は容認し、そうでない場合は拒否する。
【0082】
DH−signature(h,x,y,z)は、鍵(v,h,x,y,z,n,P)に基づいたDHタプル(x,y,z)に署名するSchnorrに基づく署名(C. P. Schnorr著「Efficient identification and signatures for smart cards」, Advances in Cryptology-Crypto '89, LNCS 435, pp. 239-252, Springer-Verlag, 1990を参照されたい)である。ここで、vはプライベートパラメータであり、(h,x,y,z,n,P)は公開パラメータである。
【0083】
これらのプリミティブを使用して、図7で述べた信頼関係に適した直接証明方式を提供することを次に説明することにする。信頼できるプラットフォームモジュールの信頼できる製造業者(以下、TPM製造業者)は、自身が生成するTPMを証明できるようにするために次のことを必要とする。すなわち、1つのRSAモジュラスn、2つの公開パラメータe1およびe2、ならびにe1*d1=1 mod φ(n)となるように計算された1つのプライベートパラメータd1を必要とする。値Kは、P=Kn+1が素数となるように選ばれる。nは2048ビットよりも僅かに小さく、KはPを素数とする最小の値であり、Pは約2048ビットであることが望ましい。t1およびt2は、それらのe1乗根およびe2乗根を計算するのが困難であるように、
【0084】
【数10】
【0085】
においてランダムに選ばれる。
【0086】
TPM製造業者は、次に、自身が生成するTPMを次のように証明する。すなわち、まず、識別情報mが1<m<nとなるように選ばれる。この後、TPM製造業者は、
【0087】
【数11】
【0088】
を計算することによってmを証明する。mおよびcは、次に、TPMに記憶される。オプションとして、TPM製造業者がmの値もcの値も知らないように、ChaumのRSAブラインド署名方式(D. Chaum著「Blind signatures for untraceable payments」, Advances in Cryptology - Crypto '82, Springer-Verlag (1983), 199-203を参照されたい)を使用することが可能である。
【0089】
本明細書で説明した直接証明方式は、以下の目標を達成するように設計される。すなわち、この方式の実行終了時に、
1.検証者は、要求されたTPMがmおよびcを知っていると確信する。ここで、
【0090】
【数12】
【0091】
である。
2.検証者はmもcも知らない。
【0092】
検証者に上記1)を確信させるために、TPMは、
【0093】
【数13】
【0094】
および
【0095】
【数14】
【0096】
を検証者に送り、次に、xおよびyの構造を検証者に確信させる。ここで、(h,e1,e2)はTPMからの公開入力であり、(m,c)はTPMからのプライベート入力である。その後、検証者は、
【0097】
【数15】
【0098】
である場合は1)を容認し、そうでない場合は1)を拒否する。
【0099】
xおよびyの構造のこのような証明を得るための一般的な場合のプロトコルは、以下の通りである。このプロトコルは、ゼロ知識バージョンおよび匿名署名バージョンの双方に適用され、これら2つのバージョンにおけるこのプロトコルの適用の相違が示される。ゼロ知識バージョンは、2001年2月20日に出願された本出願人の先願の英国特許出願第0104140.9号に一部由来するのに対して、署名バージョンは、Schnorr署名方式(C. P. Schnorr著「Efficient identification and signatures for smart cards」, Advances in Cryptology-Crypto '89, LNCS 435, pp. 239-252, Springer-Verlag, 1990を参照されたい)に一部由来する。ゼロ知識バージョンでは、DH−interactionがこのプロトコルで使用されることになり、署名バージョンでは、DH−signatureが代わりに使用されることになる。
【0100】
このプロトコルは、具体的にe1およびe2に適用されるのではなく、一般的に任意のeに適用される。したがって、eが、e1またはe2の代わりに使用され、
【0101】
【数16】
【0102】
が、
【0103】
【数17】
【0104】
または
【0105】
【数18】
【0106】
の代わりに使用される。このように、指定されたプロトコルは、xおよびyの双方を証明するのに適している。
【0107】
プロトコル
【0108】
【数19】
【0109】
証明者は、公開入力(e,n,P,h,λ,δ(e))が
【0110】
【数20】
【0111】
およびλ=hβを満たすこと、ならびに、証明者がαおよびβを知っていることを検証者に確信させる。
【0112】
このプロトコルでは、
【0113】
【数21】
【0114】
である。このプロトコルは、DH−interactionまたはDH−signatureのいずれかのチェックが成功しない場合に中止される。
【0115】
証明者および検証者は、以下のプロトコルを、γ=eから開始することによって実行する。
【0116】
while γ>1 do
{
1.証明者は以下のステップを実行する。
【0117】
【数22】
【0118】
tが偶数の場合:y←δ(γ),xを検証者に送る。
tが奇数の場合:y←δ(γ−1),xおよびyを検証者に送る。
2.tが偶数の場合:双方がDH−interaction(h,x,x,δ(γ))またはDH−signature(h,x,x,δ(γ))を実行する。
tが奇数の場合:双方がDH−interaction(h,x,x,y)またはDH−signature(h,x,x,y)、および、DH−interaction(h,y,λ,δ(γ))またはDH−signature(h,y,λ,δ(γ))を実行する。
3.双方が
【0119】
【数23】
【0120】
を実行し、次に、(δ(γ)←x)を実行する。
}
γ=1の場合、双方がDH−interaction(h,h,δ(1),λ)またはDH−signature(h,h,δ(1),λ)を実行する。
【0121】
検証者は、上記プロセスのすべてが成功した場合は容認し、そうでない場合は拒否する。
【0122】
上記プロトコルを、一方は
【0123】
【数24】
【0124】
により、他方は、
【0125】
【数25】
【0126】
により、2回実行した後、検証者は、第1回の実行からのδ(e1)(すなわちy)および第2回の実行からのδ(e2)(すなわちx)が、
【0127】
【数26】
【0128】
を満たす場合に、
【0129】
【数27】
【0130】
の構造を容認する。
【0131】
ゼロ知識バージョンと署名バージョンとの間の一方の基本的な相違は、(上述したように)異なるプリミティブが使用されるということである。他方の基本的な相違は、相互作用バージョンが、或る意味で、プロトコル中、同期した動作を含む(プロトコル中の動作に、証明者と検証者との間の相互作用のストリームが存在する)が、署名バージョンは基本的に非同期である(証明者は、プロトコル中、数学的構造を生成するように動作し、この数学的構造に署名し、そして、それを検証者に提供する。検証者は、その署名をチェックして、数学的構造の間、検証を得るように動作する)。
【0132】
ゼロ知識方式の場合、各DH−interactionは、3モジュロ累乗法(modulo exponentiation)を必要とする。TPMが1つを計算し、検証者が2つを計算する。全体の相互作用証明は、約5.5*((loge1)+(loge2))モジュロ累乗法のコストを要する。TPMが約2.5*((loge1)+(loge2))を計算し、検証者が約3*((loge1)+(loge2))を計算する。通信ラウンドは(loge1)+(loge2)である。|e1|=|e2|=16を選ぶ場合、TPMは、72モジュロ累乗法を計算し、かつ検証者と32ラウンドで通信する必要がある。
【0133】
署名方式の場合、各DH−signatureは6モジュロ累乗法を必要とする。TPMが2つを計算し、検証者が4つを計算する。署名を行うことは約4*((loge1)+(loge2))モジュロ累乗法のコストを要し、署名を検証することは約6*((loge1)+(loge2))のコストを要する。通信コストは、約2.5*((loge1)+(loge2))*(logP)ビットを有する単一のメッセージのコストのみである。
【0134】
署名方式の具体的なケースを次に説明することにする。このケースは、特に、既存の信頼できるプラットフォーム技術の修正に特に適するように選ばれる。本明細書では、出願人は、e1=216+1およびe2=2を選ぶこととする。
【0135】
TPMは、まず、a∈R(1,n−1]をランダムに選んで、かつh=aK mod P、
【0136】
【数28】
【0137】
および
【0138】
【数29】
【0139】
を計算することによってh、x、およびyを生成する。TPMは、検証者がh、x、およびyを得ることができるように、これらを利用可能にする(なお、例えば、cについて「[a,b]」と記した場合、a<=c<=bを意味し、同じく「]a,b[」と記した場合、a<c<bを意味し、同じく「]a,b]」と記した場合、a<c<=bを意味する。)
【0140】
TPMは、以下のように、xおよびyに2つの署名をそれぞれ行う。
【0141】
1.
【0142】
【数30】
【0143】
TPMは1<b<nをランダムに選び、次に、以下を計算する。
z=hm mod n
f=hb mod P,g=zb mod P
u=H(z,x,f,g)
s=b−m*u mod n
TPMは、
【0144】
【数31】
【0145】
の構造に対する署名として、(z,u,s)を刻む(chip)。
【0146】
この署名を検証するために、検証者は以下を計算する。
f'=hs*zu mod P
g'=zs*xu mod P
u'=H(z,x,f',g')
検証者は、u'?=uのチェックが成功する場合は
【0147】
【数32】
【0148】
を容認し、そうでない場合は拒否する。
【0149】
2.
【0150】
【数33】
【0151】
TPMは、
【0152】
【数34】
【0153】
を計算する。これらの値は、TPMの長期秘密値として使用することができる。TPMは、例えば、TMPの外部にこのような秘密値の暗号化されたバージョンのみを記憶して、このような秘密値を安全に記憶する必要がある。
【0154】
署名を行うために、TPMは、bi∈R(1,n−1](0≦i≦15)をランダムに選んで、以下を計算する。
【0155】
【数35】
【0156】
v=H(h,k,h0,h1,…,h16,f0,f1,…,f15,g0,g1,…,g16)
si=bi−ri*v mod n (0≦i≦15)
【0157】
TPMは、
【0158】
【数36】
【0159】
の構造に対する署名として以下のデータを刻む。
【0160】
hi(0≦i≦16),v,si(0≦i≦15)
【0161】
この署名を検証するために、検証者は以下を計算する。
【0162】
【数37】
【0163】
v'=H(h,k,h0,h1,…,h16,f0',f1',…,h15,g0',g1',…,g16')
次に、検証者は、v'?=vをチェックする。
【0164】
これらの署名の検証に基づいて、検証者は、以下を確信する。
(1)DH−signatureから、検証者は、vのf0'およびg0'をチェックすることによって、
【0165】
【数38】
【0166】
を確信する。
【0167】
【数39】
【0168】
(2)DH−signatureおよび(1)から、検証者は、vのfi'およびgi'をチェックすることによって、
【0169】
【数40】
【0170】
を確信する。
【0171】
【数41】
【0172】
(3)DH−signatureおよび(1)から、検証者は、vのf0'およびg16'をチェックすることによって、
c∈(1,n−1],h0=hc mod P,y=h16c mod P
を確信する。
【0173】
【数42】
【0174】
(1)、(2)、および(3)から、検証者は以下を確信する。
【0175】
【数43】
【0176】
【数44】
【0177】
および
【0178】
【数45】
【0179】
のそれぞれに対する2つの検証が成功した後、検証者としての検証者は、その結果、
【0180】
【数46】
【0181】
である場合に、
【0182】
【数47】
【0183】
の構成を容認することができる。TPMは、その結果、自身が、証明cを有する秘密値mを有することを検証者に直接証明したことになり、mの値もcの値も明らかにすることなくそれを行ったことになる。ここで、
【0184】
【数48】
【0185】
である。
【0186】
2048ビットに近い出力サイズを有するハッシュ関数Hを実施するのに特に適した方法は、既知のハッシュアルゴリズムSHA−1(その理由は、SHA−1は、現在、従来のTPMにすでに使用されているからである)を、結果を結合して12回使用することである。すなわち、H(x)=SHA−1(x+1)‖SHA−1(x+2)‖…‖SHA−1(x+12)である。ここで、‖は結合である。
【0187】
本発明の一態様による直接証明方式のこの特別なケースでは、e1=216+1、e2=2、および|P|=2048である。
【0188】
【数49】
【0189】
の構成に署名するために、TPMは以下のことを行う必要がある。
1.2048ビットサイズを有する18個の乱数を生成すること。
2.54個が2048ビット長のモジュラスおよび指数を有し、1つが2048ビットのモジュラスおよび(logK)ビットの指数を有する55個のRSAモジュロ累乗法を計算すること。
3.2048ビットモジュラスを有する17個の乗算モジュロ、17個の減算モジュロ、および1つの除算モジュロを計算すること。
4.24個のSHA−1関数と等価な2つのハッシュ関数を計算すること。
5.21*(logP)+19*(logn)ビットのサイズであるほぼ80kビットのサイズを有する署名を送ること。
【0190】
例示の従来のTPMは、2048ビットのRSA署名を500msで計算することができる暗号アクセラレータを含む。TPMは、
【0191】
【数50】
【0192】
の構造に1回署名するために、55個のRSAモジュロ累乗法を計算する必要がある。これには、約30秒を要する。しかしながら、これは事前に計算することができ、したがって、TPM−検証者の相互作用にとって許容できないオーバーヘッドを提供するものではない。
【0193】
このような直接証明方式を使用してTPMの同一性をRSPに証明することは、システム全体の弱点であることから認証局を取り除くという明らかな利点を有するが、潜在的な不都合も伴う。この不都合は、TPMの秘密値の証明を取り消すことが直接的ではないことである(これは、従来技術では、CAによって直接的に行うことができた。CAは、単に、自身が許可した証明書を取り消さなければならないだけであった)。TPMは、自身が、信頼できる製造業者の証明書を有することをRSPに確信させることができるが、RSPが特定のTPMを見分けることを可能にしない。各RSPは、悪性TPMの自身のブラックリストを構築することができる(以下でさらに説明するように、直接証明方式によって、RSPは、自身が相互作用した或るTPMを、自身が相互作用した他のTPMと区別することが可能になるので)が、各RSPは、自身がそのTPMについて知っているような情報を、別のRSP(または他の任意の関係者)に役立つように転送することはできない。そのRSP自身のブラックリストを他の任意のブラックリストと一致させる方法はない。その理由は、RSPは、TPMの識別情報を知らず、関連した転送可能なデータを有しないからである。攻撃者が、例えば、或るTPMを物理的に破壊することによって、或る識別情報を得た場合、その攻撃者は、この識別情報の記録を自身のブラックリストに有していなかったRSPに、この識別情報が正当であることを確信させることができる。
【0194】
定義によれば、悪性プラットフォームの秘密プリミティブが適法なコミュニティに明らかにされていない限り、直接証明方式の使用によって、グローバルに分散された取り消しリストを作成することは不可能である。信頼できるプラットフォームが使用される場合、これが発生する可能性は低い。したがって、どの所与のプラットフォームも、他のプラットフォームの悪い経験から直接学習することはできないと仮定することができる。したがって、ピアツーピアアーキテクチャが高度化した将来の世界では、抽出されたプリミティブが適法なコニュニティに知られていない限り、たとえプラットフォームが悪性TPMの突発的な発生があったことを知っても、そのプラットフォームには、(新しいウィルス定義と類似した)新しい「悪性の定義(rogue definition)」を与えることができず、それらの悪性のものを検出することはできない。したがって、ネットワーク全体が、信頼が破壊される不安のためにシャットダウンするおそれがある。プリミティブがブラインド方式を通じて作成されている(製造業者でさえもそれらプリミティブを知らず、したがって、どのTPMになりすますこともできないようになっている)場合、この問題ははるかに深刻なものになる。
【0195】
直接証明方式の目的は、識別情報の相関を防止することであるので、この問題は、直接証明方式にとって基本的なものである。直接証明方式が有効である場合、或る関係者が、第2の関係者の対応するものが第1の関係者の対応するものでもあることを当該第2の関係者が認識することを可能にする情報を当該第2の関係者に与えることは不可能である。したがって、TPMが破壊され、その秘密プリミティブが抽出されて、TPMのソフトウェアシミュレーションに複製された場合、それら抽出されたプリミティブが、悪性コミュニティだけでなく、適法なコミュニティにも知られない限り、分散リストにそのTPMを列挙することは不可能である。
【0196】
したがって、本発明のさらに別の態様では、改良されたシステムアーキテクチャが提案される。このシステムアーキテクチャは、たとえ、TPMがその証明書をRSPに明らかにすることなく、かつ、取り消しを行う認証局がTPMの保証識別情報(endorsement identity)を所有する必要なく、当該TPMがRSPに対する正当に形成された証明書を有するという直接証明を、当該TPMが提供するように適合されていても、有効な取り消しを可能にするものである。このシステムは、上記で説明した直接証明の形態に関して説明される。しかし、このアーキテクチャは、一般に、任意の構成に適用可能であることが理解されるべきである。この任意の構成とは、TPMが検証者に対する正当に形成された証明書を検証者に明らかにしない状態で当該TPMがその証明書を有するという直接証明を提供するように、TPMが適合される構成である。また、上記で使用された特定の直接証明が以下で参照される場合、このような参照は、この態様における本発明を越えることなく、他の任意の直接証明への参照に置き換え可能であることが理解されるべきである。
【0197】
システムは、図7に示すように、TPM製造業者61、TPM62、認証局(CA)63、およびRSP64の4組のエンティティを含む。CA63は、取り消し局の役割も果たす。
【0198】
上述したように、例示の直接証明方式を実施するために、各TPM製造業者は、パラメータn、K、P、e2、e2、d1、t1、およびt2を有する。ここで、n、K、P、e2、e2、t1、およびt2は公開パラメータであり、d1はプライベートパラメータである。各TPMは、
【0199】
【数51】
【0200】
を満たす秘密パラメータmおよびcを有する。異なる直接証明方式が使用される場合、TPM製造業者およびTPMは、異なるパラメータを使用することができる。
【0201】
この構成では、各CAは、従来の非対称鍵対PCAおよびSCAを有する。また、各CAは、複数の公開識別情報IDCAも有する。これらの公開識別情報IDCAは、特定の目的PAの識別情報と結合したCAの公開名nCA、すなわちIDCA=nCA‖PAとすることができる。各RSPは、PCAの認証されたバージョンを有する。
【0202】
対象となるシナリオでは、信頼できるプラットフォームデバイス(TPM)は、リモートサービスプロバイダ(RSP)と通信して、目的(本明細書では、1群の指定されたサービス)PAにアクセスする必要があり、認証局(CA)は、RSPによって信頼されて、PAの証明書を発行し、PAにアクセスすることを可能にすべきでないTPMのブラックリストを保持する。これは、次のようにして行うことができる。
【0203】
TPMは、まず、従来の非対称鍵対PTPMおよびSTPM(例えば、RSA鍵対)を作成し、次いで、mおよびcの秘密値に基いて、
【0204】
【数52】
【0205】
の構造に署名する。
上述したように、これを行うために、TPMは、hをランダムに選び、xおよびyを計算し、2つ署名
【0206】
【数53】
【0207】
および
【0208】
【数54】
【0209】
を行う。
ここで、
【0210】
【数55】
【0211】
であり、
【0212】
【数56】
【0213】
である。
TPMは、xおよびyを含む署名をPTPMと共にCAに送る。CAは、署名の検証が成功した後、TPMが、
【0214】
【数57】
【0215】
を満たす対(m,c)を有すること、および、所与のhおよびxが
【0216】
【数58】
【0217】
を満たすことを確信する。
これは、単に、上述した直接証明方式を、TPMによる証明およびRSPによる検証にさらに使用したものにすぎないことに留意されたい。ここでの唯一の重要な相違は、検証がCAによるということである。また、この結果として、このステップを実行するのに、他の任意の有効な直接証明方式を使用できることになる。
【0218】
CAは、次に、TPMにIDCAを送る(オプションとして、TPMは、信頼できるパブリックドメインからのIDCAに簡単にアクセスすることができる)。TPMは、hCA=H(IDCA)および
【0219】
【数59】
【0220】
となるようなhCAおよびx'を計算する。TPMは、上述したようなDH−signature(h,hCA,x,x')を計算し、この署名をCAに送る。CAは、まず、DH−signature(h,hCA,x,x')を検証する。この検証が成功しない場合、CAは、TPMの証明書の要求を拒否する。そうでない場合、CAは、x'がブラックリストにあるかどうかをチェックする。x'がブラックリストにある場合、CAは、このTPMも拒否する。そうでない場合、CAは、(TCG仕様の現在のバージョンにおけるプライベートCAと同じように)PCAおよびSCAを通常の方法で使用することによってPTPMを証明し、x'およびPTPMの証明書を記録する。これを管理する適切な方法は、CAが、内部アクセスのみのためにx'をPTPMと共に記録し、公にアクセスできる取り消しリストにPTPMを列挙することである。
【0221】
この場合も、DH−signatureを使用する直接証明方式に対する代替的な直接証明方式を、本発明のこの態様の範囲から逸脱することなく、ここでも使用できることに留意すべきである。必要なことは、CAが、TPMに発行された証明書を有するそれらTPMのリストを自ら確立できるように、直接証明方式のプロセスが、TPM秘密値を表すx'等の値を、その秘密値を明らかにすることなく生成できることだけである。
【0222】
TCG仕様の現在のバージョンと同じように、TPMは、RSPによって提供されたPAのグループのサービスにアクセスするために、PTPMの証明書でRSPに対して自身を認証する。RSPは、その証明書を検証し、また、この証明書がCAの取り消しリストにあるかどうかもチェックする。例えば、これは、従来の証明書取り消しリスト(CRL(Certificate Revocation List))を使用することによって行うことができる。
【0223】
CAは、一般に、自身が発行した証明書PTPMを、例えば、TPM識別情報が正当でないか、または、正当であるべきでないことが明らかであるような方法で、これらの証明書が特定のサービスにアクセスするのに使用されたRSP(または、悪性TPMと相互作用した他の関係者)から受け取ることによって悪性TPMを知ることになる。CAは、次に、証明書PTPMを、関連したTPMの検証で提供された関連したx'と照合することができる。証明書PTPMは、次に、CRLに置くことができる。悪性PTMは、x'の同じ値が検証プロセス中に生成されることになるので、さらなる証明書を得ることができない。上述したように、CAは、検証中にこれを検出し、悪性PTMへの証明書の提供を拒否する。
【0224】
<第2の方式>
上述したように、第2の方式は、取り消し証を有するグループ署名方式である。以下で説明するように、説明する特定の方式は、Advances in Cryptology - CRYPT 2000, LNCS 1880, pp. 255-270, Springer-Verlag, 2000のG. Ateniese、J. Camenisch、M. Joye,およびG. Tsudik著「A practical and provably secure coalition-resistant group signature scheme」に記載された方式をさらに発展させたバージョンである。以下で述べる方式では、各TPMは、一意の保証鍵z、および、ue=azb mod nを満たす対応する鍵証明書(u,e)を有する。ここで、(a,b,n)は、TPM製造業者の公開パラメータであり、nはRSAモジュラスであり、aおよびbはランダムに選ばれた整数である。この方式のセキュリティは、強RSA仮定および決定的(decisional)Diffie−Hellman仮定に基づいている。このグループ署名方式は、特に効率的であり、Ateniese他(上記参照)のランダムオラクルモデルの既存のセキュリティ証明からの利益を得る。
【0225】
取り消し証を生成する特性を有する一般的なグループ署名方式を次に説明することにする。この一般的な方式は6つのプロシージャを含む。
【0226】
SETUP(セットアップ):セキュリティパラメータ1の入力に対して、この確率的アルゴリズムは、グループ公開鍵PK(すべてのシステムパラメータを含む)およびグループメンバーシップ証明書発行者(CI)用のグループ秘密鍵SKを出力する。
【0227】
JOIN(ジョイン):或るユーザが新たなグループメンバになる、CIとそのユーザとの間のプロトコル。このユーザの出力は、メンバーシップ秘密値およびメンバーシップ証明書である。
【0228】
REVOCATION EVIDENCE CREATE(取り消し証作成):グループ公開鍵、メンバーシップ秘密値、メンバーシップ証明書、および取り消しパラメータの入力に対して、取り消し証を出力する確率的アルゴリズム。
【0229】
SIGN(署名):グループ公開鍵、メンバーシップ証明書、メンバーシップ秘密値、取り消し証、およびメッセージmの入力に対して、取り消し証を有するmのグループ署名を出力する確率的アルゴリズム。
【0230】
VERIFY(検証):グループ公開鍵および取り消しパラメータに関して、取り消し証を有するメッセージの主張されたグループ署名の正当性を立証するためのアルゴリズム。
【0231】
REVOCATION(取り消し):グループ署名から取り消しリストに取り消し証を列挙するためのアルゴリズム。
【0232】
このタイプの好ましい方式では、以下の特性がすべて満たされるべきである。
正当性(correctness)。SIGNを使用してグループメンバにより生成された署名は、VERIFYによって容認されなければならない。
偽造不能性(unforgeability)。グループメンバのみが、グループを代表してメッセージに署名することができる。
匿名性(anonymity)。或るメッセージの正当な署名が与えられると、実際のグループメンバを特定することは、そのグループメンバーシップ証明書発行者を含めてあらゆる者にとって計算が困難である。
リンク可能性(linkability)。異なる取り消し証を有する2つの異なる正当な署名が同じグループメンバによって計算されたかどうかを判断することは計算が困難である。しかしながら、2つの異なる正当な署名が同じ取り消し証で計算されたかどうかを判断することは容易である。
トレース可能性/取り消し可能性(traceability/revocability)。グループメンバ秘密値およびそのメンバーシップ証明書が公開されると、あらゆる者が、この秘密値および証明書に基づいて署名された正当な署名を開くことができる。グループメンバ秘密値およびメンバーシップ証明書がないと、誰も、実際のグループメンバに対する正当な署名をトレースすることができない。しかしながら、誰もが取り消し証に対する任意のグループ署名をトレースすることができ、したがって、取り消し証により対処される指定された利用目的に対するグループメンバーシップは、取り消すことができる。
結託耐性(coalition-resistance)。グループメンバの共謀した一部(グループ全体で構成された場合でも)は、特別なグループメンバ秘密値および対応する正当なメンバーシップ証明書に基づいて署名された正当な署名を生成することができない。
【0233】
1対のメンバ秘密値およびメンバーシップ証明書を得た攻撃者がいると、その攻撃者は、多くの「正当な」コピーを作成できることは明らかである。グループメンバの一般的な署名機能は、そのグループメンバ秘密値およびそのメンバーシップ証明書が公開されない限り、取り消すことができない。一方、取り消し証を有するグループ署名は、メンバーシップ証明書のトレース可能性を有しないグループ署名であるが、取り消し証に関するメンバーシップのトレース可能性は存在する。グループ署名(特定の目的でのグループメンバによる署名)の特定の使用のための取り消し証は、特定のグループメンバ秘密値およびメンバーシップ証明書ならびに目的にとって一意である。したがって、特定の目的での取り消し証とグループ署名との間のリンクは、一般に検証可能である。したがって、出願人は、秘密値または証明書の取り消しの通常の方法の取り消し手法の上下に取り消し手法を構築することができる。
【0234】
本方式を達成するための修正を説明する前に、Ateniese他のグループ署名方式(「ACJT署名方式」)を次に述べることにする。
【0235】
グループ管理者(GM)は、公開鍵PK=(n,a,b,g,h,y,l,Γ,Δ)を有する。ここで、nは2つの安全な素数pとqとの積であり、a、b、g、h、およびyは、平方剰余モジュロnであり、lはセキュリティパラメータであり、ΓおよびΔは2つの区間である。GMは、対応するプライベート鍵SK=(p,q,x)を有する。ここで、pおよびqは、グループメンバーシップ証明書を発行するのに使用され、x=loggyは、メンバーシップ取り消しに使用される。
【0236】
グループメンバPiは、メンバーシップ秘密値zi、および、
【0237】
【数60】
【0238】
を満たすメンバーシップ証明書(ui,ei)を有する。値ziは、適切な整数範囲ΔからPiおよびGMによって共同で選択される。値ziは、(1)GMがこの値に関する情報を得ないこと、ならびに、(2)PiおよびGMの双方が、互いが自身の貢献を正しく行わなければならないことを検証できること、を保証する安全な方法で選択される。値eiは、別の適切な範囲ΓからGMによって選択された素数である。GMは、Piを特定するために(ui,ei)の記録を保持する。
【0239】
Piがグループを代表してメッセージに署名する時、Piは、グループにおけるメンバーシップを証明する。これを行うために、Piは、(zi,ui,ei)を知っていることを効果的に証明する。例えば、グループを代表してメッセージmに署名するために、Piは、まず、w∈R{0,1}2lを選び、T1=uiyw mod n、T2=gw mod n、および
【0240】
【数61】
【0241】
を計算する。
次に、Piは、b=T1αa−βy−χ mod n、1=T2αg−χ mod n、T2=gδ mod n、およびT3=gαhδ mod nがメッセージmで維持されるような整数α、β、χ、およびδを知っていることの署名を作成する。ここで、α∈Γであり、β∈Δである。[CS97]におけるCamenischおよびStadlerによって導入された表記法を使用することによって、この署名は次のように表記することができる。
PK[(α,β,χ,δ):b=T1αa−βy−χ∧1=T2αg−χ∧T2=gδ∧T3=gαhδ∧α∈Γ∧β∈Δ](m)
【0242】
この署名を検証することによって、検証者は以下を確信する。
aβb=T1αy−χ=T1αy−αδ=(T1y−δ)α mod n
さらに、
【0243】
【数62】
【0244】
このグループ署名は、
(1)
【0245】
【数63】
【0246】
が、ei乗根を有する値であるような値zi∈Δ、および、
(2)
【0247】
【数64】
【0248】
が、yに基づいて(T1,T2)でE1Gamal暗号化されたものであるようなそのei乗根、を知っていることの署名とみなすことができる。ここで、eiは、T3w.r.t.gおよびhの表現の最初の部分であり、そのeiはΓに存在する。
【0249】
すべてのグループ署名方式と同様に、GMは、E1Gamal解読鍵xを有し、したがって、GMがPiを特定する値u'=T1/(T2)x=uiを計算できるので、GMのみが、Piに対する署名を行使することができる。
【0250】
取り消し証を有するグループ署名方式を提供するためのこの方式に対する修正を次に説明することにする。関与する関係者およびプロセスが図8(取り消し局を使用するバージョンについて)および図9(取り消し局を使用しないバージョンについて)に概略的に示されている。この新しい方式は、ACJTグループ署名方式に対して以下の3つの変更を行う。
【0251】
1.出願人は、TPM82自身を除くどのエンティティにも、保証鍵証明書を署名から取り出すことを可能にしない。そうでない場合には、このエンティティは、匿名性を破る可能性がある。したがって、出願人は、GMのメンバーシップの開く機能を削除し、証明書発行機能のみを維持する。出願人は、このエンティティを保証鍵証明書発行者(CI)と呼ぶ。CI81は、本物のTPMの製造業者であることが好ましい。
2.特定の目的でのグループ署名の取り消しを可能にするために、出願人は、グループメンバ82が、例えば、その特定の目的の取り消しを専門とする取り消し局83を使用して、その特定の目的で、自己証明した取り消し証を作成することを必要とする。この取り消し局83は、同じ利用目的の同じTPM保証鍵および鍵証明書に基づいて署名された異なる署名を相関させることができる。代替的に、悪性TPMの検出者がこのような情報を公に(または、そうでない場合には適切に)利用可能にすると、検証者は自身の取り消しリストを保持することができる。
3.出願人は、TPM保証鍵の作成およびその証明書の発行を行うプロセスを簡単化する。ACJTグループ署名は、GMおよびPiが、互いが適切にこの方式を実行するものと信頼できない場合の利用向けに設計されている。このTCGの利用では、このプロセスは、本物のTPMの製造中に行われ、TPM製造業者であるCIがそれらによって作成されたTPMを信頼することは当然である。
【0252】
検証者84は、TPMの真正性を立証する必要のある任意の関係者とすることができ、通常、これは、リモートサービスプロバイダ(RSP)となる。
【0253】
次に、出願人は、上記例示で一般的に説明した6つのプロシージャでこの方式を説明する。
【0254】
1.セットアップ(ステップ801)
システムを開始するために、アーキテクチャ全体の定義者は、次のように動作する。
1.パラメータεが統計的なゼロ知識の堅固さ(tightness)を適切に制御でき、パラメータlが、使用するモジュラスのサイズのセキュリティ要件の必要性を満たすようなε>1、k、およびlをセキュリティパラメータとして選ぶ。
2.λ1>ε(λ2+k)+2、λ2>4l、およびγ1>ε(γ2+k)+2、γ2>λ1+2を満たすλ1、λ2、γ1、およびγ2を長さとして選ぶ。整数範囲Δ=]2λ1−2λ2,2λ1+2λ2[およびΓ=]2γ1−2γ2,2γ1+2γ2[を定義する。
3.衝突困難ハッシュ関数H:{0,1}*→{0,1}kを選ぶ。
【0255】
TPM製造業者(CIと呼ぶ)をセットアップするために、CIは、以下のように動作することによって、自身の公開鍵(n,a,b,g,y,h)および対応するプライベート鍵(p',q')を作成する。
1.p=2p'+1およびq=2q'+1が素数となるようなランダムな秘密のlビット素数p'、q'を選択する。モジュラスn=pqを設定する。
2.ランダムな要素a'、b'、c'∈RZn*を選択し、g'=H(c'‖1)、y'=H(c'‖2)、およびh'=H(c'‖3)を計算し、gcd(a'±1,n)=1、gcd(b'±1,n)=1、gcd(g'±1,n)=1、gcd(y'±1,n)=1、およびgcd(h'±1,n)=1が維持されるかどうかをチェックし、チェックが成功すると、a=a'2 mod n、b=b'2 mod n、g=g'2 mod n、y=y'2 mod n、およびh=h'2 mod nを計算し、そうでない場合は、「すみません。私はあなたのモジュラスを因数分解した。」をCIに報告する。これは、a、b、g、y、h∈位数(order)p'q'のQR(n)を保証し、また、誰も、nを法とする、y(hまたはg)の離散対数w.r.t.底gまたはh(gもしくはy、または、hもしくはy)を知らないことを保証する。
【0256】
CIの公開鍵は、通常の手段を介して利用可能にされる(すなわち、信頼できる局によって署名された或る形態の公開鍵証明書に実施される)。実際には、フレーム攻撃(framing attack)を防止するために、この公開鍵を証明する前に、信頼できる局は、(n,a,b,g,y,h)の構成要素を検証しなければならない。詳細には、(1)CIは、nが2つの安全な素数の積であることの証明を信頼できる局に提供する必要があり、(2)CIは、a'、b'、およびc'を信頼できる局に送信し、信頼できる局は、次に、gcd(a'±1,n)=1、gcd(b'±1,n)=1、gcd(H(c'‖1)±1,n)=1、gcd(H(c'‖2)±1,n)=1、およびgcd(H(c'‖3)±1,n)=1が維持されることをチェックし、a=a'2 mod n、b=b'2 mod n、g=H(c'‖1)2 mod n、y=H(c'‖2)2 mod n、およびh=H(c'‖3)2 mod nを計算する。
【0257】
2.ジョイン(ステップ802)
TPM(TPMと呼ぶ)をTPMグループのメンバにするための、従うことができる複数の可能な手法が存在する。一例示の形態では、TPMおよびCIは次のように動作することができる。
1.TPMは、秘密指数z∈RΔを自身の保証鍵として生成し、v=az mod nを計算し、vをCIに送る。
2.CIは、ランダムな素数e∈RΓを選択し、u=(vb)1/e mod nを計算することによって保証鍵証明書(u,e)を発行する。CIはTPMに(u,e)を記憶する。
【0258】
特に、CIとTPMとの間のタスクの分割においては、ジョインプロセスの多くの可能な代わりの形態が存在することに留意すべきである。以下の3つのバージョンは例示である。
【0259】
バージョン1.
1.CIは、指数z∈R]1,2l2]をTPMの保証プライベート鍵としてランダムに選択し、v=azを計算する。
2.CIは、ランダムな素数
【0260】
【数65】
【0261】
を選択し、u=(vb)1/eを計算することによって保証鍵証明書(u,e)を生成する。
3.CIはTPMに(z,u,e)を記憶する。
4.CIは、(z,u,e)の自身の知識のすべてを消去する。
【0262】
バージョン2.
1.TPMは、秘密指数z∈R]1,2l2]を自身の保証プライベート鍵として生成し、v=azを計算し、vをCIに送る。
2.CIは、ランダムな素数
【0263】
【数66】
【0264】
を選択し、u=(vb)1/eを計算することによって保証鍵証明書(u,e)を発行する。
3.CIはTPMに(u,e)を記憶する。
4.CIは、(u,e)の自身の知識のすべてを消去する。
【0265】
バージョン3.
1.TPMは、秘密指数z∈R]1,2l2]を自身の保証プライベート鍵として生成する。
2.TPMは、v=azを計算する。
3.TPMは、ランダムな素数
【0266】
【数67】
【0267】
を選択する。
4.TPMは、一時的な秘密値(p',q')をインポートし、d=1/e mod 4p'q'を計算する。
5.TPMは、u=(vb)dを計算する。
TPMは、(p',q')の自身の知識のすべてを消去する。
【0268】
このジョインプロセスにおいて、出願人は以下のことを仮定することに留意されたい。
・TPMとCIとの間の通信は安全である。すなわち、プライベートであり、かつ、信頼できる。
・CIは、TPMが秘密値zを正確に選択することを確信する。そうでない場合、CIおよびTPMは、Ateniese他(上記参照)に記載されたJOINプロトコルを実行しなければならない。ここで、zは、TPMおよびCIによって共同で選択される。
・TPMも、CIが証明書を正確に計算することを確信する。そうでない場合、TPMは、(u,e)の受信後、ue=azb mod nかどうかを検証することになる。
【0269】
3.取り消し証作成(ステップ803)
これは、取り消し局を使用するモデルに関して説明することにする。しかしながら、この手法を使用すると、どの対応するものも、取り消し局として動作することができ、したがって、各検証者は、自身の取り消しリストを保持することが可能であることに留意することができる。これを効果的に行うために、検証者(または、システムの全体としての効果的なオペレーションの望ましさに関心のある他の関係者)は、自身の取り消しリストに追加されるべき詳細に気付くと、これら詳細を他の潜在的な検証者に利用可能にする。各取り消し局は、一意の名前である取り消し局名(RevocationAgencyName)を有するものと仮定する。この一意の名前は、利用目的識別情報、属性、取り消し局の情報、および或るランダム性で生成することができる(このタイプの名前は、取り消し局の情報がなくても生成することができ、単に、この名前がどの種類の取り消し情報であるかを特定する情報とすることができ、したがって、明示的な取り消し局のないモデルでこの名前を使用することが可能であることに留意することができる)。取り消し証w.r.t.この名前は、以下のように動作することによって作成される。2つの代替的なバージョンが以下に与えられる。
【0270】
バージョン1
1.CIの公開モジュラスn、TPMの保証プライベート鍵z、および取り消し局名を入力する。
2.f'=H(取り消し局名)を計算し、gcd(f'±1,n)=1が維持されるかどうかをチェックし、チェックが成功した場合には、f=f'2を計算し、そうでない場合には、「すみません。私はあなたのモジュラスを因数分解した。」をCIに報告する。
2'.代替的に、TPMが、取り消し局名を与えられて、偶然にfを生成した場合、TPMは、単純にf=H(取り消し局名)2を計算する。gcd(f'±1,n)≠1となる確率は無視できる。
3.取り消し証E=fzを計算する。
4.(f,E)を出力する。
【0271】
バージョン2
1.CIの公開パラメータaおよびモジュラスn、ならびに、取り消し局名を入力する。また、TPMの保証プライベート鍵zも入力する。
2.f'=H(取り消し局名)を計算し、gcd(f'±1,n)=1が維持されるかどうかをチェックし、チェックが成功した場合には、f=f'2 mod nを計算し、そうでない場合には、「すみません。私はあなたのモジュラスを因数分解した。」をCIに報告する。
2'.代替的に、TPMが、取り消し局名を与えられて、偶然にfを生成した場合、TPMは、単純にf=H(取り消し局名)2 mod nを計算する。gcd(f'±1,n)≠1となる確率は無視できる。
3.取り消し証C=(af)z mod nを計算する。
4.(f,C)を出力する。
【0272】
離散対数の仮定に基づくと、すべてnを法とする、底gまたはyもしくはhに対するfの離散対数、および、底fに対するgまたはyもしくはhの離散対数を誰も知らないということが仮定されることに留意されたい。
【0273】
4.署名(ステップ804)
保証鍵zおよび保証鍵証明書(u,e)を知っていることを証明するために、TPMは、以下のように動作することによって、一般的なメッセージm∈{0,1}*上に、取り消し証を有するグループ署名を生成する。
1.w∈R{0,1}2lをランダムに選ぶ。
2.T1=uyw mod n、T2=gw mod n、およびT3=gehw mod nを計算する。
3.r1∈R±{0,1}ε(γ2+k)、r2∈R±{0,1}ε(λ2+k)、r3∈R±{0,1}ε(γ1+2l+k+1)、およびr4∈R±{0,1}ε(2l+k)をランダムに選ぶ。
4.d1=T1r1/(ar2yr3) mod n、d2=T2r1/gr3 mod n、d3=gr4 mod n、d4=gr1hr4 mod n、およびd5=(af)r2 mod nを計算する。
5.c=H(g‖h‖y‖a‖b‖T1‖T2‖T3‖C‖d1‖d2‖d3‖d4‖d5‖m)を計算する。
6.s1=r1−c(e−2γ1)、s2=r2−c(z−2λ1)、s3=r3−cew、およびs4=r4−cw(すべてZにおいて)を計算する。
7.(c,s1,s2,s3,s4,T1,T2,T3,C)を出力する。
【0274】
これは、第1の方式で使用したようなSchnorrに類似した署名であり、この場合も、第1の方式の場合と同様に、署名は、オンライン時に必要とされる作業を最小にするために大部分は事前に計算することができる。この方式では、署名生成に、7個(または11個)のモジュロ累乗法が必要とされ、出願人は、それらのうちの1個のみが事前に計算できないことに留意する。したがって、c、s1、s2、s3、s4、およびd4の計算のみが(mおよびEの発見後に)オンラインで行われる。
【0275】
最小のオンライン計算を有する従来の誰何/応答プロトコルの場合、出願人は、オンラインになる前に、4)におけるd4の計算を除いて、TPMに上記項目1)〜4)を準備させる。後に誰何者(すなわち検証者)と通信する時に、その誰何者は、取り消し局に関する情報である取り消し局名および新たなメッセージmを誰何として送る。TPMは、(既存の取り消し証を再利用できない場合に)取り消し証E=H(取り消し局名)2z mod nを作成し、次いで、4)におけるd4と共に項目5)〜7)を実行することによって署名を終了する。
【0276】
代替的に、最小のTPMストレージを作製するため、c=H(g‖h‖a‖b‖T1‖T2‖T3‖d1‖d2‖d3‖E‖d4‖m)の代わりに、TPMは以下のようにcを計算することができる。
c1=H(g‖h‖a‖b)
c2=H(c1‖T1)
c3=H(c2‖T2)
c4=H(c3‖T3)
c5=H(c4‖d1)
c6=H(c5‖d2)
c7=H(c6‖d3)
c8=H(c7‖E)
c9=H(c8‖d4)
c=H(c9‖m)
【0277】
したがって、署名プロセスは、以下のように実施することができる。
1.TPMは、a、b、g、h(320ビット)、n(2048ビット)をインポートする。
2.TPMは、c1(160ビット)をインポートする。
【0278】
オフライン計算
1.TPMは、TPM特有の秘密値w1(160ビット)をRNGから得る。
2.TPMは、TPM特有の秘密値w2(160ビット)をRNGから得る。
3.TPMは、TPM特有の秘密値r1(380ビット)をRNGから得る。
4.TPMは、TPM特有の秘密値r2(380ビット)をRNGから得る。
5.TPMは、TPM特有の秘密値r3(380ビット)をRNGから得る。
6.TPMは、TPM特有の秘密値r4(380ビット)をRNGから得る。
7.TPMは、w1、w2、r1、r2、r3、r4を新たな集合Aの一部として記憶する。
8.TPMは、秘密でない値
【0279】
【数68】
【0280】
を計算する。
9.TPMは、c2=H(c1‖T1)を計算する。
10.TPMは、T1をエクスポートする。
11.TPMは、秘密でない値
【0281】
【数69】
【0282】
を計算する。
12.TPMは、c3=H(c2‖T2)を計算する。
13.TPMは、T2をエクスポートする。
14.TPMは、秘密でない値
【0283】
【数70】
【0284】
を計算する。(heは1回だけ計算することができ、恒久的に秘密に記憶することができる。)
15.TPMは、c4=H(c3‖T3)を計算する。
16.TPMは、T3をエクスポートする。
17.TPMは、秘密でない値
【0285】
【数71】
【0286】
を計算する。
18.TPMは、c5=H(c4‖d1)を計算する。
19.TPMは、秘密でない値
【0287】
【数72】
【0288】
を計算する。
20.TPMは、c6=H(c5‖d2)を計算する。
21.TPMは、秘密でない値
【0289】
【数73】
【0290】
を計算する。
22.TPMは、c7=H(c6‖d3)を計算する。
23.TPMは、c7を集合Aの一部として記憶する。
【0291】
オンライン計算
1.TPMは、取り消し局名(任意の長さ)をインポートする。
2.TPMは、f(320ビット)=(H(取り消し局名))2を計算する。
3.TPMは、fを集合Aの一部として保存する。
4.TPMは、秘密でない値E(2048ビット)=fzを計算する。
5.TPMは、c8=H(c7‖E)を計算する。
6.TPMは、Eをエクスポートして、Eを消去する。
7.TPMは、
【0292】
【数74】
【0293】
を生成する。
8.TPMは、c9=H(c8‖d4)を計算する。
9.TPMは、d4を消去する。
10.TPMは、誰何m(任意の長さ)をインポートする。
11.TPMは、秘密でない値c10=H(c9‖m)を計算する。
12.TPMは、c=c10に設定する。
13.TPMは、cを集合Aの一部として保存する。
14.TPMは、cをエクスポートする。
15.TPMは、秘密でない値s1(380ビット)=r1−c*(e−2400)を計算する。
16.TPMは、s1をエクスポートする。
17.TPMは、秘密でない値s2(380ビット)=r2+c*zを計算する。
18.TPMは、s2をエクスポートする。
19.TPMは、秘密でない値s3(380ビット)=r3−c*w2を計算する。
20.TPMは、s3をエクスポートする。
21.TPMは、秘密でない値s4(380ビット)=r4+c*w1を計算する。
22.TPMは、s4をエクスポートする。
TPMは集合Aを消去する。
【0294】
5.検証(ステップ805)
検証者は、以下のように動作することによって、メッセージmの署名(c,s1,s2,s3,s4,T1,T2,T3,C)の正当性をチェックする。このチェックには、取り消し証の第2のバージョンの例が使用されるが、第1のバージョンも、同様に適切に使用することができる。
1.Cが、信頼できる取り消し局によって保持された取り消しリストにあるかどうかをチェックする。この信頼できる取り消し局は、取り消し局名という名前を有する。このチェックがイエスである場合、署名を拒否し、そうでない場合、続行する。(上述したように、検証者は、このようなリスト自体を保持することができる。)
2.
【0295】
【数75】
【0296】
を計算する。
3.c=c'であり、かつ、s1∈±{0,1}ε(γ2+k)+1、s2∈±{0,1}ε(λ2+k)+1、s3∈±{0,1}ε(λ1+2l+k+1)+1、およびs4∈±{0,1}ε(2l+k)+1である場合にのみ、署名を容認する。
【0297】
6.取り消し(ステップ806)
いかなる理由であろうと、TPMが、取り消し局名によって特定された特定の目的で取り消されるべきである場合、Cは取り消しリストに置かれる。異なる実施の形態では、これは、取り消し局によって保持されたリストとすることもできるし、潜在的な検証者が自身のリストを保持するように、それら検証者に利用可能にすることもできる。
【0298】
この方式のセキュリティを次に検討することにする。ACJTグループ署名方式のセキュリティは、強RSA仮定および決定的Diffie−Hellman仮定に基づいている。
【0299】
強RSA仮定(例えば、Advances in Cryptology - EUROCRYPT '97, LNCS 1233, pp. 480-494, Springer-Verlag, 1997のN. BaricおよびB. Pfitzmann著「Collision-free accumulators and fail-stop signature schemes without trees」、Advances in Cryptology - CRYPTO '97, LNCS 1297, pp. 16-30, Springer-Verlag, 1997のE. FujisakiおよびT. Okamoto著「Statistical zero knowledge protocols to prove modular polynomial relations」を参照されたい)は、eが公開値であり、したがって一定の指数である場合にnを法とするe乗根を見つけることが困難であるという広く容認されたRSA仮定を、任意のe>1についてnを法とするe乗根を見つけることが困難であるという仮定にまで強化したものである。
【0300】
強RSA問題の定義 − n=pqを、RSAに類似したモジュラスとし、Gを、
【0301】
【数76】
【0302】
である位数#GのZn*の巡回部分群とする。
nおよびz∈Gが与えられると、ストリングRSA問題は、z≡ue mod nを満たすu∈Gおよびe∈Z>1を見つけることから構成される。
【0303】
強RSA仮定の定義 − 入力に対して、セキュリティパラメータlGが、すべての確率的多項式時間アルゴリズムPについて、Pが強RSA問題を解くことができる確率は無視できるような対(n,z)を出力する確率的多項式時間アルゴリズムKが存在する。。
【0304】
Diffie−Hellman仮定(W. DiffieおよびM. E. Hellman著「New directions in cryptography」, IEEE Transactions on Information Theory, IT-22(6): 644-654, 1976)は、(i)計算的Diffie−Hellmman仮定(CDH(Computational Diffie-Hellmman Assumption)および(ii)決定的Diffie−Hellman仮定(DDH(Decisional Diffie-Hellman Assumption))の2つの「特徴」に現れる(Algorithmic Number Theory (ANTS-III), LNCS 1423, pp. 48-63, Springer-Verlag, 1998のD. Boneh著「The decision Diffie-Hellman problem」を参照されたい)。
【0305】
決定的Diffie−Hellman問題の定義 − G=<g>を、
【0306】
【数77】
【0307】
である位数#Gのgによって生成された巡回群とする。g、gx、gy、およびgz∈Gが与えられると、決定的Diffie−Hellman問題は、要素gxyおよびgzが等しいかどうかを判断することから構成される。
【0308】
この問題は、決定的Diffie−Hellman仮定の元となるものである。このことは、それより前の暗号方式ですでに暗黙的に仮定されてはいたが、最初に明示的に述べたのはBrandsである(S Brands著「An efficient off-line electronic cash system based on the representation problem」, Technical Report CS-R9323, Centrum voor Wiskunde en Infomatica, April 1993)。
【0309】
決定的Diffie−Hellman仮定の定義 − 分布DとRとを無視できない確率で区別する非確率的多項式時間アルゴリズムがある。ここで、D=(g,gx,gy,gz)であり、x,y,z∈RZ#Gであり、R=(g,gx,gy,gxy)であり、x,y∈RZ#Gである。
【0310】
Ateniese他は、以下の2つの定理および1つの系を証明することによって、ACJTグループ署名方式のセキュリティ証明を与える。
【0311】
定理1(結託耐性)。強RSA仮定の下では、xi∈Δおよびei∈Γであるグループ証明書
【0312】
【数78】
【0313】
は、グループ管理者が発行したK個の証明書が多項式的に限定されているという条件で、グループ管理者のみが生成することができる。
【0314】
定理2。強RSA仮定の下では、グループ署名方式の基礎を成す対話型プロトコルは、メンバーシップ証明書および対応するメンバーシップ秘密鍵を知っていることの統計的ゼロ知識(正直な検証者)証明である。
【0315】
系。ランダムオラクルモデルでは、ACJTグループ署名方式は、強RSA仮定および決定的Diffie−Hellman仮定の下では安全である。
【0316】
Ateniese他によるACJTグループ署名方式のセキュリティ証明に基づくと、出願人は、ランダムオラクルモデルにおいて、前の節で提示された取り消し証を有するグループ署名方式が、強RSA仮定および決定的Diffie−Hellman仮定の下で安全であると主張することができる。
【0317】
(上述したような)取り消し証を有する一般的なグループ署名方式のほとんどのセキュリティ特性は、上記2つの定理および1つの系から直接得られる。(c,s1,s2,s3,s4,T1,T2,T3)により明らかにされた、グループメンバの秘密値および証明書に関する情報の量は無視できる(すなわち、(c,s1,s2,s3,s4,T1,T2,T3)は統計的に隠蔽コミットメント(hiding commitment)であり、PKプロトコルは統計的にゼロ知識である)ので、ACJTグループ署名方式のすべての特性は維持されることに留意されたい。Cを開示することによりさらに明らかにされた、グループメンバの秘密値および証明書に関する情報の量も、決定的Diffie−Hellman仮定に基づいて無視できると主張することが残されている。
【0318】
上記で提示された取り消し証を有する特定のグループ署名方式は効率的であり、ACJTグループ署名方式が非常に効率的であることから利益を受ける。
【0319】
通信:出願人の提案は、署名方式であって、対話型ゼロ知識証明方式ではない。反射攻撃を回避するために、検証者は、一意のメッセージmを選ぶことができ、mを取り消し局名(これも検証者によって選ばれる)と共に、誰何として署名者に送ることができる。その後、署名者は、応答として署名を返信する。RSAモジュラスnのサイズが、現在のTCG仕様で勧告された2048である場合、署名のサイズは9×log(n)=4.5kビットである。
【0320】
計算:署名を行うために、署名者は9つのモジュロ累乗法を必要とする。署名を検証するために、検証者は5つのモジュロ累乗法を必要とする。
【0321】
TPMが9つのモジュロ累乗法を使用する必要があることによって、TPMの識別情報を検証するプロセスに時間遅延が導入される場合がある。この時間遅延は、ランダムに選ばれたデータに関するTPMのグループ署名を事前に計算し、次いで、誰何/応答を使用して、その署名がTPMによって生成されたことを証明することによって最小にすることができる。次に、この誰何/応答には、TPMによる2つのオンラインモジュロ累乗法、および、検証者による7つのオンラインモジュロ累乗法(元の5つに特別な2つを加えたもの)が必要とされる。DP方式と基本的に同じアイデアを使用すると、出願人は、存在しない取り消し局についてのランダムに選ばれたメッセージm'およびランダムに選ばれた取り消し局名'に対して上記方式を使用して、TPMにグループ署名を作成させる。その署名では、f'=H(取り消し局名')2 mod nであり、C'=(af)z mod nである。後に、誰何者との実際の通信中に、誰何者は、実際の取り消し局に関する情報である取り消し局名、および、新たなメッセージmを誰何として送る。次に、TPMは、実際の取り消し証C=(af)z mod nを作成する。ここで、f=H(取り消し局名)2 mod nである。TPMは、次に、以下のように動作することによって、署名を作成し、底afおよびaf'をそれぞれ有するCおよびC'の2つの離散対数を知っていることおよびこれら離散対数が等しいことを示す。
1.
【0322】
【数79】
【0323】
をランダムに選ぶ。
2.c=H(a‖f‖f'‖C‖C'‖(af)r mod n‖(af')r mod n‖m)を計算する。
3.(Zにおいて)
【0324】
【数80】
【0325】
を計算する。
4.(c,s,C)を出力する。
【0326】
この署名を検証するために、誰何者は以下のように動作する。
1.名前−取り消し局名を有する(例えば、選ばれた取り消し局によって保持されたような)関連した取り消しリストにCがあるかどうかをチェックする。このチェックがイエスである場合、署名を拒否し、そうでない場合、続行する。
2.
【0327】
【数81】
【0328】
を計算する。
3.c=c'であり、かつ、
【0329】
【数82】
【0330】
である場合にのみ、署名を容認する。
【0331】
この第2の方式における取り消しの手法は、第1の方式で述べたものと広く類似している。この場合も、システムは、TPM製造業者、TPM、取り消し局(RA)、およびリモートサービスプロバイダRSPの4組のエンティティを含む。
【0332】
上記のように、出願人は、利用のシナリオを述べた。すなわち、TPMは、特定の利用目的PAにアクセスするためにRSPとの通信を望む。RSPは、RAが、PAへのアクセスを許可されるべきでないTPMの取り消しリストを保持しているとの信頼を受けていると考える。取り消しリストは、取り消し局名=PA‖RAの識別情報‖満了日‖…という一意の識別情報を有する。
【0333】
上記で指定したような取り消し証を有する出願人のグループ署名方式では、RAは、値Cがそれら悪性TPMに属するこのような取り消しリストを保持し、その取り消しリストをRSPに利用可能にする。署名の検証中、各RSPは、まず、Cが取り消しリストにあるかどうかをチェックする。イエスである場合、RSPはこのTPMを拒否する。
【0334】
オプションとして、このRAは、認証局の役割を果たすこともできる(出願人は、これをRA/CAと呼ぶ)。この場合、RA/CAは、取り消し証を有するグループ署名の方式における検証者である。RA/CAは、従来の非対称鍵対PRA/CAおよびSRA/CAを有する。これらの鍵は、RSPによってアクセス可能である。TPMのグループ署名の検証が成功した後、RA/CAは、(TCG仕様の現在のバージョンにおけるプライベートCAと同じように)通常の方法でPRA/CAおよびSRA/CAを使用することによって、ランダムに選ばれた識別情報を非対称鍵対PTPMおよびSTPMで証明し、CおよびPTPMの証明書を記録する。オプションとして、RA/CAは、内部アクセスのみのためにPTPMと共にCを記録し、公にアクセス可能な取り消しリストにPTPMを列挙する。これは、このRA/CAにどのTPMの保証鍵証明書も与えられない点で、TCG仕様の現在のバージョンと異なることに留意されたい。
【0335】
TCG仕様の現在のバージョンと同様に、RSPによって提供されたサービスにアクセスするために、TPMは、PTPMの証明書でRSPに対して自身を認証する。RSPは、その証明書を検証し、また、この証明書がRA/CAの取り消しリストにあるかどうかもチェックする。
【0336】
明らかに、TPMが、目的PAとリンクされたRA1の取り消しリストに列挙されている場合であっても、TPMは、(1)同様にRA1によって管理された目的PB、(2)RA2によって管理された目的PA、および、もちろん(3)RA2によって管理された目的PBにアクセスすることができる。
【0337】
もちろん、複数の取り消しリストを使用することが可能である。例えば、或る利用において、一方が取り消し局名1に基づくものであり、他方が取り消し局名2に基づくものである2つの取り消しリストをチェックする必要がある場合、TPMは、2つの取り消し証を作成しなければならない。一方は、取り消し局名1に基づいてC1と呼ばれ、他方は、取り消し局名2に基づいてC2と呼ばれる。
【0338】
この方式では、悪性TPMの保証鍵および鍵証明書が公開されている場合、どの検証者も、取り消し証を有する所与のグループ署名が、その保証鍵および証明書に基づいて署名されたものであるかどうかをチェックすることができる。
【0339】
この方式を使用すると、TPM所有権の発行に対処することができるさまざまな異なる方法が存在する。第1に、OEM(相手先商標による製品製造業者)証明書の使用が考えられる。このOEMは、製造されたTPMを取り込み、それらTPMをコンピューティングプラットフォームホストに実装する。以下のように、このための少なくとも3つの可能なソリューションが存在する。
【0340】
ソリューション1。このソリューションでは、TPM製造業者は証明書発行者としての役割を果たし、OEMは取り消し局としての役割を果たす。TPMは、一定のOEMに関連した特別な証拠を有する。この証拠は、(上述した証拠の第1のバージョンを使用して)EOEM=(H(OEM名))2zである。この証拠は、TPMセットアッププロセスにおいてCI(TPM製造業者)が製造することもできるし、TPMが代わりに製造することもできる。TPMが本物のTPMであることをOEMに確信させるために、TPMは、EとしてEOEMを有する、上述したような署名をOEMに送る。その署名を検証した後、OEMは、EOEMに関する証明書を発行する。この証明書は、従来のPKI証明書とすることができる。このソリューションは、EOEMがTPMに一意であるので、匿名性を提供しない。
【0341】
ソリューション2。このソリューションでは、TPM製造業者およびOEMの双方が、この方式におけるCIとしての役割を果たす。TPMは、1つのプライベート保証鍵zおよび2つの関連した証明書(u,e)および(u',e')を有する。この第1の証明書は、第3節で説明したようにTPM製造業者によって発行され、第2の証明書は、同様に、OEMによって発行される。TPM製造業者は公開鍵(a,b,g,h,n)を有し、TPMは(第3節で説明したように)関連した(u,e)を有する。OEMは公開鍵(a',b',g',h',n')を有する。TPMの正確さをOEMに確信させるために、TPMは、(z,e,u)に基づく第2の方式の署名をメッセージm=a'z mod n'(これはOEMからの誰何と結合することができる)でOEMに送る。第2の方式の署名の検証が成功した後、OEMは、TPMに(u',e')を発行する。ここで、u'e'=a'zb' mod n'が維持される。その後、TPMは、(z,u,e)および(a,b,g,h,n)に基づく第2の方式の署名を送ることによって、TPM製造業者の証明書の要求についてのあらゆる誰何に応答し、(z,u',e')および(a',b',g',h',n')に基づく第2の方式の署名を送ることによって、OEMの証明書のあらゆる誰何要求に応答する。このソリューションは、第2の方式の署名が異なる取り消し証を有する場合に、匿名性を提供することができる。起こり得る問題は、TPMとOEMとの間の処理に多大な費用を要するということである。
【0342】
ソリューション3。このソリューションでは、TPM製造業者はTCGの現在のバージョンと同じ役割を果たし、OEMは第2の方式のCIとしての役割を果たす。TPMの製造中、TPMは、通常の保証鍵対(既存のTCG仕様に記載されているようなものであるが、本明細書では、事前保証鍵(pre-endorsement key)対と呼ぶ)を得る。TPM製造業者は、OEMに対してTPMを刻むと、保証公開鍵のリストを送る。OEMは、上述したJOINプロセスのバージョン1を使用することによって各TPMの交換される保証鍵および証明書を作成する。
【0343】
1.OEMは、TPMの保証プライベート鍵として、指数
【0344】
【数83】
【0345】
をランダムに選び、v=azを計算する。
2.OEMは、ランダムな素数
【0346】
【数84】
【0347】
を選択して、かつu=(vb)1/eを計算することにより、保証鍵証明書(u,e)を生成する。
3.OEMは、TPMの事前保証公開鍵で(z,u,e)を暗号化する。
4.OEMは、暗号化された(z,u,e)および事前保証公開鍵のハッシュ値をパブリックドメインに公開する。
5.OEMは、自身の(z,u,e)の知識のすべてを消去する。
6.TPMを有するTCGプラットフォームが、ユーザによって受け取られると、そのプラットフォームは、OEMのパブリックドメインから暗号化された(z,u,e)をダウンロードし、TPMは、事前保証プライベート鍵を使用することによって(z,u,e)を解読する。
【0348】
第2の方式を使用して所有権を取得するための少なくとも2つの可能なソリューションがある。これらソリューションの双方とも、上記OEM証明書のソリューションに基づいており、次の通りである。
【0349】
ソリューション1。このソリューション1は、上記ソリューション1および2の双方に適している。TCGプラットフォームの所有者は、TPMの公開E1Gamal暗号鍵として(fOEM=(H(OEM名))2,EOEM,n)を使用する。対応するプライベートE1Gamal解読鍵は、TPMの保証プライベート鍵zである。所有者とTPMとの間で実行される所有権取得プロトコルは次の通りである。
【0350】
1.所有者は、所有権秘密値s∈R[1,2160]をランダムに選ぶ。
2.所有者は、E1Gamal暗号化を使用することによって(fOEM,EOEM,n)に基づきsを暗号化する。これを行うために、所有者は、セッション秘密値x∈R[1,2160]をランダムに選び、U=fOEM(−x)およびV=s*EOEMxを計算する。
3.所有者は(U,V)をTPMに送る。
4.TPMは、s=V*Uzを計算することによってsを解読する。
【0351】
解読プロセスは、1つのモジュラ累乗法および1つのモジュラ乗算を必要とする。TPMにとって新たな機能は必要とされない。
【0352】
ソリューション2。このソリューション2は、上記ソリューション3に適している。TCGプラットフォームの所有者は、事前保証公開鍵をTPMの暗号鍵として使用する。対応する解読鍵は、TPMの事前保証プライベート鍵である。所有者とTPMとの間で実行される所有権を取得するプロトコルは、既存のTCG仕様と同様である。
【図面の簡単な説明】
【0353】
【図1】本発明の実施の形態を実施することができるシステムを概略的に示す図である。
【図2】スマートカードリーダを介してスマートカードと通信し、かつ、1群のモジュールと通信するように構成された、信頼できるデバイスを含むマザーボードを示す図である。
【図3】図2の信頼できるデバイスをより詳細に示す図である。
【図4】本発明の実施の形態を実行するのに適したコンピュータシステムの要素を示す図である。
【図5】信頼できるコンピューティングプラットフォームと、リモートプラットフォームとの間の通信を確立することに関与するステップを、この信頼できるプラットフォームが、従来の信頼できるプラットフォーム技術に従って自身の完全性を検証することを含めて、示すフロー図である。
【図6】従来の信頼できるコンピューティング技術の信頼関係を概略的に示す図である。
【図7】本発明の実施の形態による信頼できるコンピューティング技術で使用される信頼関係を概略的に示す図である。
【図8】本発明の実施の形態による信頼できるコンピューティング技術のアーキテクチャに関与する関係者を、グループ署名方式によるこれらの関係者間の相互作用と共に概略的に示す図である。
【図9】取り消し局を使用しない、図8の構成に対する修正を示す図である。
【符号の説明】
【0354】
10,40・・・信頼できるプラットフォーム,
18・・・モニタ18,44,
12,42・・・スマートカードリーダ,
19,41・・・スマートカード,
15・・・モジュール,
20・・・マザーボード,
21・・・メインプロセッサ,
22・・・メインメモリ,
23・・・入出力(IO)デバイス,
24・・・信頼できるデバイス,
26・・・データバス,
27・・・各制御ライン27,
28・・・ライン28,
29・・・BIOSメモリ,
30・・・コントローラ,
31・・・測定機能,
32・・・暗号機能,
33・・・認証機能,
34・・・インターフェース回路部,
350・・・証明書,
352・・・完全性メトリック,
353・・・識別(ID)ラベル,
355・・・プライベート鍵,
360・・・IDラベル,
361・・・摘要,
62・・・信頼できるプラットフォーム
63・・・認証局
64・・・リモートサービスプロバイダ
【特許請求の範囲】
【請求項1】
取り消し証を有するグループ署名方式によって計算資源へのアクセスを判断する方法であって、
証明書発行者が、グループ秘密鍵を保持し、グループ公開鍵を提供することと、
グループメンバが、メンバーシップ秘密値を得て、前記証明書発行者が、前記メンバーシップ秘密値に関するグループメンバのメンバーシップ証明書を提供することと、
前記グループメンバが、前記メンバーシップ秘密値も前記メンバーシップ証明書も検証者に明らかにすることなく、署名を提供することによって、自身が正当なメンバーシップ秘密値および正当なメンバーシップ証明書を所有していることを前記検証者に実証し、自身のメンバーシップ秘密値および取り消しパラメータから取り消し証を提供することと、
前記検証者が、前記署名および前記取り消し証から、前記グループメンバが正当なメンバーシップ秘密値および正当なメンバーシップ証明書を所有していると判断することと
を含む方法。
【請求項2】
前記グループメンバは、前記メンバーシップ秘密値を生成する
請求項1に記載の方法。
【請求項3】
前記証明書発行者は、前記メンバーシップ秘密値および前記メンバーシップ証明書を生成する
請求項1に記載の方法。
【請求項4】
前記グループメンバは、信頼できるコンピューティングデバイスであり、
前記証明書発行者は、前記信頼できるコンピューティングデバイスの製造業者である
請求項1に記載の方法。
【請求項5】
前記取り消し証は、前記検証者によって、前記取り消しパラメータに関連した取り消し機関により保持された取り消しリストと比較される
請求項1に記載の方法。
【請求項6】
前記取り消し証は、前記検証者によって、前記検証者により保持された取り消しリストと比較される
請求項1に記載の方法。
【請求項7】
グループ公開鍵を有するグループ署名方式のメンバによって信頼ステータスを実証する方法であって、
前記グループメンバが、メンバーシップ秘密値を得て、且つ、証明書発行者から、前記メンバーシップ秘密値に関するグループメンバのメンバーシップ証明書を受け取ることと、
前記グループメンバが、前記メンバーシップ秘密値も前記メンバーシップ証明書も検証者に明らかにすることなく、署名を提供することによって、自身が正当なメンバーシップ秘密値および正当なメンバーシップ証明書を所有していることを前記検証者に実証し、自身のメンバーシップ秘密値および取り消しパラメータから取り消し証を提供することと
を含む方法。
【請求項8】
前記取り消し証Eは、E=fzという形態を有し、ここで、fは前記取り消しパラメータに対して実行される一方向関数であり、zは前記メンバーシップ秘密値である
請求項7に記載の方法。
【請求項9】
前記署名の少なくとも一部は、前記署名が検証者によって要求される前に、前記グループメンバによって事前に計算される
請求項7に記載の方法。
【請求項10】
前記取り消し証の少なくとも一部は、前記取り消し証が検証者によって要求される前に、前記グループメンバによって事前に計算される
請求項7に記載の方法。
【請求項11】
グループ公開鍵を有するグループ署名方式のメンバの信頼ステータスを検証する方法であって、
前記検証者が、グループメンバから、前記グループメンバのメンバーシップ秘密値およびメンバーシップ証明書から生成された署名を受け取り、且つ、前記グループメンバによって、自身のメンバーシップ秘密値および取り消しパラメータから提供された取り消し証を受け取ることと、
前記検証者が、前記署名および前記取り消し証から、前記グループメンバが正当なメンバーシップ秘密値および正当なメンバーシップ証明書を所有していると判断することと
を含む方法。
【請求項12】
前記検証者が、前記グループメンバが正当なメンバーシップ秘密値および正当なメンバーシップ証明書を所有していると判断することは、
前記取り消し証を1つまたは複数の取り消しリストと照合することと、
前記取り消し証および前記署名が一致すると判断することと、
前記署名が、適切に形成されたメンバーシップ秘密値および適切に形成されたメンバーシップ証明書からの構成と一致すると判断することと
を含む
請求項11に記載の方法。
【請求項13】
前記1つまたは複数の取り消しリストの少なくとも1つは、取り消し局(revocation agency)によって保持される
請求項12に記載の方法。
【請求項14】
前記1つまたは複数の取り消しリストの少なくとも1つは、前記検証者によって保持される
請求項12に記載の方法。
【請求項15】
プロセッサと、
メンバーシップ秘密値、および、グループ公開鍵を有するグループ署名方式の証明書発行者により前記メンバーシップ秘密値に対して発行されたメンバーシップ証明書を含むメモリと
を備える信頼できるコンピューティング装置であって、
前記信頼できるコンピューティング装置は、
前記メンバーシップ秘密値も前記メンバーシップ証明書も検証者に明らかにすることなく、署名を提供することによって、自身が正当なメンバーシップ秘密値および正当なメンバーシップ証明書を所有していることを前記検証者に実証し、
自身のメンバーシップ秘密値、自身のメンバーシップ証明書、前記グループ公開鍵、および取り消しパラメータから取り消し証を提供する
ように適合される
信頼できるコンピューティング装置。
【請求項16】
第1の関係者が、自身が第3の関係者によって適法に提供された秘密値を所有することを第2の関係者に証明することができる方法であって、
前記第3の関係者が、第1の秘密値mと、前記第1の秘密値から関係
【数1】
に従って計算された第2の秘密値cとを前記第1の関係者に提供するステップであって、ここで、nはRSAモジュラスであり、e1およびe2はRSA公開指数であり、t1およびt2はランダムに選ばれた整数であり、それによって、d1はe1に対応するRSAプライベート指数であるステップと、
前記第2の関係者が、前記第3の関係者からn、e1、e2、t1、およびt2を得るステップと、
前記第1の関係者が第1の秘密値m、および、前記関係に従って形成された第2の秘密値cを有することを前記第2の関係者に証明するために、前記第1の関係者が、前記第1の秘密値を使用する一方向関数の第1の複数の結果、および、前記第2の秘密値を使用する一方向関数の第2の複数の結果を前記第2の関係者に提供するステップと、
前記第2の関係者が、前記第1の複数の結果を、e1を使用する一方向関数の結果と比較し、前記第2の複数の結果を、e2を使用する一方向関数の結果と比較し、それによって、前記第1の関係者が、第1の秘密値mも第2の秘密値cも受け取ることなく、前記関係に従って形成された前記第1の秘密値mおよび前記第2の秘密値cを有することを検証するステップと
を含む方法。
【請求項17】
前記第1の関係者は、前記第1の複数の結果および前記第2の複数の結果をデジタル署名された数学的構造で提供し、
前記第2の関係者は、前記デジタル署名の正当性をチェックし、正当である場合に、前記第1の関係者が、前記関係に従って形成された第1の秘密値mおよび第2の秘密値cを有することを検証する過程で、前記数学的構造を評価する
請求項16に記載の方法。
【請求項18】
前記第1の関係者は、前記第1の複数の結果および前記第2の複数の結果を相互作用により前記第2の関係者に提供して、前記第1の関係者が、前記関係に従って形成された第1の秘密値mおよび第2の秘密値cを有することのゼロ知識証明を提供する
請求項16に記載の方法。
【請求項19】
前記第1の関係者は、
信頼できるコンピューティング装置
を備え、
前記第2の関係者は、サービスへのアクセスを制御し、
前記第3の関係者は、前記信頼できるコンピューティング装置の製造業者、または、前記信頼できるコンピューティング装置の信頼できるステータスの保証者である
請求項16に記載の方法。
【請求項20】
プロセッサと、
第1の秘密値m、および、前記第1の秘密値から関係
【数2】
に従って計算された第2の秘密値cを含むメモリと
を備える信頼できるコンピューティング装置であって、
ここで、nはRSAモジュラスであり、e1およびe2はRSA公開指数であり、t1およびt2はランダムに選ばれた整数であり、d1はe1に対応するRSAプライベート指数であり、
前記プロセッサは、第1の秘密値mも第2の秘密値cも明らかにすることなく、前記第1の秘密値を使用する一方向関数の第1の複数の結果、および、前記第2の秘密値を使用する一方向関数の第2の複数の結果を他の関係者に提供することによって、自身が、前記関係に従って形成された前記第1の秘密値mおよび前記第2の秘密値cを所有していることを前記他の関係者に証明するようにプログラミングされている
信頼できるコンピューティング装置。
【請求項21】
第2の関係者によって提供されたサービスへの第1の関係者のアクセスを制御する方法であって、前記第1の関係者は、自身が第3の関係者によって適法に提供された秘密値を所有することを、前記秘密値を明らかにすることなく別の関係者に証明するように適合され、
前記第1の関係者が前記第3の関係者によって適法に提供された秘密値を所有することを、前記秘密値が第4の関係者に明らかにされない状態で、前記第1の関係者が証明し、前記第4の関係者が検証するステップと、
前記第4の関係者が、前記第1の関係者に証明書を発行し、前記第3の関係者によって適法に提供された秘密値であって、或る関係者がその秘密値を所有することを検証する後のステップで再生成されることになる秘密値を、前記第1の関係者が所有することを検証する前記ステップの識別子を前記証明書に関連付けるステップと、
前記第4の関係者が、証明書正当性情報を保持し、前記第1の関係者が前記サービスにアクセスしようと試みる時、前記第1の関係者が、前記第4の関係者によって発行された前記証明書を前記第2の関係者に提供し、前記サービスへのアクセスを提供する前に、前記第2の関係者が、前記第4の関係者によって提供された証明書正当性情報から、前記証明書が正当かどうかを判断するステップと
を含む方法。
【請求項22】
前記第4の関係者は、前記証明書が無効な方法で使用されたことを示す表示を受け取ると、前記証明書を取り消すように適合され、
第1の関係者が第3の関係者によって適法に提供された秘密値を所有することを検証する前記ステップが、前記取り消された証明書に関連した前記識別子を生成する場合、前記第1の関係者にさらに証明書を発行しないように適合される
請求項21に記載の方法。
【請求項23】
前記証明書は、
前記第4の関係者の識別情報および前記証明書を使用できる目的の識別情報
を含む請求項21または22に記載の方法。
【請求項1】
取り消し証を有するグループ署名方式によって計算資源へのアクセスを判断する方法であって、
証明書発行者が、グループ秘密鍵を保持し、グループ公開鍵を提供することと、
グループメンバが、メンバーシップ秘密値を得て、前記証明書発行者が、前記メンバーシップ秘密値に関するグループメンバのメンバーシップ証明書を提供することと、
前記グループメンバが、前記メンバーシップ秘密値も前記メンバーシップ証明書も検証者に明らかにすることなく、署名を提供することによって、自身が正当なメンバーシップ秘密値および正当なメンバーシップ証明書を所有していることを前記検証者に実証し、自身のメンバーシップ秘密値および取り消しパラメータから取り消し証を提供することと、
前記検証者が、前記署名および前記取り消し証から、前記グループメンバが正当なメンバーシップ秘密値および正当なメンバーシップ証明書を所有していると判断することと
を含む方法。
【請求項2】
前記グループメンバは、前記メンバーシップ秘密値を生成する
請求項1に記載の方法。
【請求項3】
前記証明書発行者は、前記メンバーシップ秘密値および前記メンバーシップ証明書を生成する
請求項1に記載の方法。
【請求項4】
前記グループメンバは、信頼できるコンピューティングデバイスであり、
前記証明書発行者は、前記信頼できるコンピューティングデバイスの製造業者である
請求項1に記載の方法。
【請求項5】
前記取り消し証は、前記検証者によって、前記取り消しパラメータに関連した取り消し機関により保持された取り消しリストと比較される
請求項1に記載の方法。
【請求項6】
前記取り消し証は、前記検証者によって、前記検証者により保持された取り消しリストと比較される
請求項1に記載の方法。
【請求項7】
グループ公開鍵を有するグループ署名方式のメンバによって信頼ステータスを実証する方法であって、
前記グループメンバが、メンバーシップ秘密値を得て、且つ、証明書発行者から、前記メンバーシップ秘密値に関するグループメンバのメンバーシップ証明書を受け取ることと、
前記グループメンバが、前記メンバーシップ秘密値も前記メンバーシップ証明書も検証者に明らかにすることなく、署名を提供することによって、自身が正当なメンバーシップ秘密値および正当なメンバーシップ証明書を所有していることを前記検証者に実証し、自身のメンバーシップ秘密値および取り消しパラメータから取り消し証を提供することと
を含む方法。
【請求項8】
前記取り消し証Eは、E=fzという形態を有し、ここで、fは前記取り消しパラメータに対して実行される一方向関数であり、zは前記メンバーシップ秘密値である
請求項7に記載の方法。
【請求項9】
前記署名の少なくとも一部は、前記署名が検証者によって要求される前に、前記グループメンバによって事前に計算される
請求項7に記載の方法。
【請求項10】
前記取り消し証の少なくとも一部は、前記取り消し証が検証者によって要求される前に、前記グループメンバによって事前に計算される
請求項7に記載の方法。
【請求項11】
グループ公開鍵を有するグループ署名方式のメンバの信頼ステータスを検証する方法であって、
前記検証者が、グループメンバから、前記グループメンバのメンバーシップ秘密値およびメンバーシップ証明書から生成された署名を受け取り、且つ、前記グループメンバによって、自身のメンバーシップ秘密値および取り消しパラメータから提供された取り消し証を受け取ることと、
前記検証者が、前記署名および前記取り消し証から、前記グループメンバが正当なメンバーシップ秘密値および正当なメンバーシップ証明書を所有していると判断することと
を含む方法。
【請求項12】
前記検証者が、前記グループメンバが正当なメンバーシップ秘密値および正当なメンバーシップ証明書を所有していると判断することは、
前記取り消し証を1つまたは複数の取り消しリストと照合することと、
前記取り消し証および前記署名が一致すると判断することと、
前記署名が、適切に形成されたメンバーシップ秘密値および適切に形成されたメンバーシップ証明書からの構成と一致すると判断することと
を含む
請求項11に記載の方法。
【請求項13】
前記1つまたは複数の取り消しリストの少なくとも1つは、取り消し局(revocation agency)によって保持される
請求項12に記載の方法。
【請求項14】
前記1つまたは複数の取り消しリストの少なくとも1つは、前記検証者によって保持される
請求項12に記載の方法。
【請求項15】
プロセッサと、
メンバーシップ秘密値、および、グループ公開鍵を有するグループ署名方式の証明書発行者により前記メンバーシップ秘密値に対して発行されたメンバーシップ証明書を含むメモリと
を備える信頼できるコンピューティング装置であって、
前記信頼できるコンピューティング装置は、
前記メンバーシップ秘密値も前記メンバーシップ証明書も検証者に明らかにすることなく、署名を提供することによって、自身が正当なメンバーシップ秘密値および正当なメンバーシップ証明書を所有していることを前記検証者に実証し、
自身のメンバーシップ秘密値、自身のメンバーシップ証明書、前記グループ公開鍵、および取り消しパラメータから取り消し証を提供する
ように適合される
信頼できるコンピューティング装置。
【請求項16】
第1の関係者が、自身が第3の関係者によって適法に提供された秘密値を所有することを第2の関係者に証明することができる方法であって、
前記第3の関係者が、第1の秘密値mと、前記第1の秘密値から関係
【数1】
に従って計算された第2の秘密値cとを前記第1の関係者に提供するステップであって、ここで、nはRSAモジュラスであり、e1およびe2はRSA公開指数であり、t1およびt2はランダムに選ばれた整数であり、それによって、d1はe1に対応するRSAプライベート指数であるステップと、
前記第2の関係者が、前記第3の関係者からn、e1、e2、t1、およびt2を得るステップと、
前記第1の関係者が第1の秘密値m、および、前記関係に従って形成された第2の秘密値cを有することを前記第2の関係者に証明するために、前記第1の関係者が、前記第1の秘密値を使用する一方向関数の第1の複数の結果、および、前記第2の秘密値を使用する一方向関数の第2の複数の結果を前記第2の関係者に提供するステップと、
前記第2の関係者が、前記第1の複数の結果を、e1を使用する一方向関数の結果と比較し、前記第2の複数の結果を、e2を使用する一方向関数の結果と比較し、それによって、前記第1の関係者が、第1の秘密値mも第2の秘密値cも受け取ることなく、前記関係に従って形成された前記第1の秘密値mおよび前記第2の秘密値cを有することを検証するステップと
を含む方法。
【請求項17】
前記第1の関係者は、前記第1の複数の結果および前記第2の複数の結果をデジタル署名された数学的構造で提供し、
前記第2の関係者は、前記デジタル署名の正当性をチェックし、正当である場合に、前記第1の関係者が、前記関係に従って形成された第1の秘密値mおよび第2の秘密値cを有することを検証する過程で、前記数学的構造を評価する
請求項16に記載の方法。
【請求項18】
前記第1の関係者は、前記第1の複数の結果および前記第2の複数の結果を相互作用により前記第2の関係者に提供して、前記第1の関係者が、前記関係に従って形成された第1の秘密値mおよび第2の秘密値cを有することのゼロ知識証明を提供する
請求項16に記載の方法。
【請求項19】
前記第1の関係者は、
信頼できるコンピューティング装置
を備え、
前記第2の関係者は、サービスへのアクセスを制御し、
前記第3の関係者は、前記信頼できるコンピューティング装置の製造業者、または、前記信頼できるコンピューティング装置の信頼できるステータスの保証者である
請求項16に記載の方法。
【請求項20】
プロセッサと、
第1の秘密値m、および、前記第1の秘密値から関係
【数2】
に従って計算された第2の秘密値cを含むメモリと
を備える信頼できるコンピューティング装置であって、
ここで、nはRSAモジュラスであり、e1およびe2はRSA公開指数であり、t1およびt2はランダムに選ばれた整数であり、d1はe1に対応するRSAプライベート指数であり、
前記プロセッサは、第1の秘密値mも第2の秘密値cも明らかにすることなく、前記第1の秘密値を使用する一方向関数の第1の複数の結果、および、前記第2の秘密値を使用する一方向関数の第2の複数の結果を他の関係者に提供することによって、自身が、前記関係に従って形成された前記第1の秘密値mおよび前記第2の秘密値cを所有していることを前記他の関係者に証明するようにプログラミングされている
信頼できるコンピューティング装置。
【請求項21】
第2の関係者によって提供されたサービスへの第1の関係者のアクセスを制御する方法であって、前記第1の関係者は、自身が第3の関係者によって適法に提供された秘密値を所有することを、前記秘密値を明らかにすることなく別の関係者に証明するように適合され、
前記第1の関係者が前記第3の関係者によって適法に提供された秘密値を所有することを、前記秘密値が第4の関係者に明らかにされない状態で、前記第1の関係者が証明し、前記第4の関係者が検証するステップと、
前記第4の関係者が、前記第1の関係者に証明書を発行し、前記第3の関係者によって適法に提供された秘密値であって、或る関係者がその秘密値を所有することを検証する後のステップで再生成されることになる秘密値を、前記第1の関係者が所有することを検証する前記ステップの識別子を前記証明書に関連付けるステップと、
前記第4の関係者が、証明書正当性情報を保持し、前記第1の関係者が前記サービスにアクセスしようと試みる時、前記第1の関係者が、前記第4の関係者によって発行された前記証明書を前記第2の関係者に提供し、前記サービスへのアクセスを提供する前に、前記第2の関係者が、前記第4の関係者によって提供された証明書正当性情報から、前記証明書が正当かどうかを判断するステップと
を含む方法。
【請求項22】
前記第4の関係者は、前記証明書が無効な方法で使用されたことを示す表示を受け取ると、前記証明書を取り消すように適合され、
第1の関係者が第3の関係者によって適法に提供された秘密値を所有することを検証する前記ステップが、前記取り消された証明書に関連した前記識別子を生成する場合、前記第1の関係者にさらに証明書を発行しないように適合される
請求項21に記載の方法。
【請求項23】
前記証明書は、
前記第4の関係者の識別情報および前記証明書を使用できる目的の識別情報
を含む請求項21または22に記載の方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【公表番号】特表2007−505582(P2007−505582A)
【公表日】平成19年3月8日(2007.3.8)
【国際特許分類】
【出願番号】特願2006−530523(P2006−530523)
【出願日】平成16年5月21日(2004.5.21)
【国際出願番号】PCT/GB2004/002185
【国際公開番号】WO2004/104797
【国際公開日】平成16年12月2日(2004.12.2)
【出願人】(503003854)ヒューレット−パッカード デベロップメント カンパニー エル.ピー. (1,145)
【Fターム(参考)】
【公表日】平成19年3月8日(2007.3.8)
【国際特許分類】
【出願日】平成16年5月21日(2004.5.21)
【国際出願番号】PCT/GB2004/002185
【国際公開番号】WO2004/104797
【国際公開日】平成16年12月2日(2004.12.2)
【出願人】(503003854)ヒューレット−パッカード デベロップメント カンパニー エル.ピー. (1,145)
【Fターム(参考)】
[ Back to top ]