(57)【要約】本発明の実施例の一特徴は、プルーバ機器が機器メーカからの署名を有しているということを、署名をチャレンジャに明らかにすることなくチャレンジャに対して立証する方法、システム、及び機器を備える。一実施形態によれば、プルーバ機器によって保持される秘密の一方向関数の結果がチャレンジャに備えられる。一方向関数において用いられる秘密が機器署名によって署名されたということを、秘密若しくは機器署名、又はプルーバ機器の識別情報をチャレンジャに明らかにすることなくチャレンジャに対して立証する、プルーバ機器とチャレンジャとの間の双方向証明が利用される。【特許請求の範囲】
【請求項１】
方法であって：
認証要求をチャレンジャ機器から受け取る工程；
情報を該チャレンジャ機器にプルーバ機器から送る工程；及び
有効な署名を該プルーバ機器が分かっているということを該チャレンジャ機器に、該署名を該チャレンジャ機器に明らかにすることなく確信させる工程；
を備えることを特徴とする方法。
【請求項２】
請求項1記載の方法であって、該チャレンジャ機器に送られる該情報が：
該プルーバ機器に対する機器証明書；
を含むことを特徴とする方法。
【請求項３】
請求項1記載の方法であって、更に：
値kを一方向関数に基づいて生成する工程；及び
秘密鍵と公開鍵との対を該プルーバ機器において生成する工程；
を備え；
該秘密鍵と公開鍵との対は：
秘密鍵；及び
公開鍵；
を含み；
値kと該公開鍵が、該チャレンジャ機器に送られる該情報に含まれることを特徴とする方法。
【請求項４】
請求項3記載の方法であって：
該値kはk=hm  mod  Pとして規定され；
hは該プルーバ機器によって生成される一意の数であり；
mは任意に生成される数であり；かつ
Pは大きな素数であることを特徴とする方法。
【請求項５】
請求項1記載の方法であって、該有効な署名を該プルーバ機器が分かっているということを該チャレンジャ機器に、該署名を該チャレンジャ機器に明らかにすることなく確信させる工程が：
該プルーバ機器が該署名を分かっているという双方向証明を該チャレンジャ機器に向けて、該署名を該チャレンジャ機器に明らかにすることなく送る工程；
を含むことを特徴とする方法。
【請求項６】
請求項1記載の方法であって、更に：
該プルーバ機器が該有効な署名を分かっているということを、該プルーバ機器の識別情報を明らかにすることなく該チャレンジャ機器に確信させる工程；
を含むことを特徴とする方法。
【請求項７】
請求項1記載の方法であって、更に：
該プルーバ機器が分かっている該署名が、危殆化された機器署名の無効化リスト上にないということを、該プルーバ機器が分かっている該署名を明らかにすることなく該チャレンジャ機器に確信させる工程；
を備えることを特徴とする方法。
【請求項８】
方法であって：
プルーバ機器が、既知のエンティティの、有効な署名を有しているということを、該署名を明らかにすることなくチャレンジャに確信させる工程；及び
該署名が、危殆化された署名の無効化リスト上にないということを、該署名を明らかにすることなく該チャレンジャに確信させる工程；
を備えることを特徴とする方法。
【請求項９】
請求項8記載の方法であって、該プルーバが、既知のエンティティの、有効な署名を有しているということを、該署名を明らかにすることなく該チャレンジャに確信させる工程が：
値kを一方向関数に基づいて生成する工程：及び
秘密鍵と公開鍵との対を該プルーバ機器において生成する工程；
を含み；
該秘密鍵と公開鍵との対が：
秘密鍵；及び
公開鍵；
を含み；
値kと該公開鍵が該チャレンジャに送られる情報に含まれることを特徴とする方法。
【請求項１０】
請求項8記載の方法であって、該プルーバが、既知のエンティティの、有効な署名を有しているということを、該署名を明らかにすることなく該チャレンジャに確信させる工程が：
該プルーバが該有効な署名を分かっているという双方向証明を該チャレンジャに向けて、該署名を該チャレンジャに明らかにすることなく送る工程；
を含むことを特徴とする方法。
【請求項１１】
請求項8記載の方法であって、該署名が無効化リスト上にないということを該チャレンジャに確信させる工程が：
危殆化されたものと見なされる1つ又は複数のプルーバに相当する情報の無効化リストを維持する工程；及び
該プルーバの情報を、該無効化リストにおける情報と比較する工程；
を含むことを特徴とする方法。
【請求項１２】
請求項8記載の方法であって、プルーバが、既知のエンティティの、有効な署名を有しているということを該チャレンジャに確信させる工程が；
該プルーバが該署名を分かっているという可能性が確率的に高いということを表し；
該署名を該チャレンジャに明らかにしないということが：
該署名を該プルーバによって明らかにされる情報に基づいて該チャレンジャが計算することが計算量的に実現可能でないということを表すことを特徴とする方法。
【請求項１３】
方法であって：
第２機器が有効な署名を有しているということを第１チャレンジャ機器に、該署名を該第１機器に開示することなく確信させる工程；及び
該第２機器が有効な署名を有しているということを第３チャレンジャ機器に、該署名を該第３機器に開示することなく確信させる工程；
を備え；
該第２機器によって該第１チャレンジャ機器と該第３チャレンジャ機器とに備えられる情報は、該第１チャレンジャ機器と該３チャレンジャ機器が同じ該第２機器と通信しているか否かを該第１チャレンジャ機器と該３チャレンジャ機器が判定することを可能にするには不十分であることを特徴とする方法。
【請求項１４】
請求項13記載の方法であって、該第２機器が有効な署名を有しているということを該第１チャレンジャ機器に、該署名を開示することなく確信させる工程が：
値kを一方向関数に基づいて生成する工程；及び
秘密鍵と公開鍵との対をプルーバ機器において生成する工程；
を含み；
該秘密鍵と公開鍵との対が：
秘密鍵；及び
公開鍵；
を含み；
値kと該公開鍵が、該チャレンジャに送られる情報に含まれることを特徴とする方法。
【請求項１５】
請求項13記載の方法であって、該第２機器によって該第１チャレンジャ機器に備えられる該情報の少なくとも一部が該第２機器によって該第３チャレンジャ機器に備えられる該情報とは異なることを特徴とする方法。
【請求項１６】
方法であって：
プルーバ・プラットフォームによって保持される秘密の一方向関数の結果を第１チャレンジャ・プラットフォームに明らかにする工程；及び
該秘密が、有効な署名を有しているということを該第１チャレンジャ・プラットフォームに対して、該秘密を該第１チャレンジャ・プラットフォームに明らかにすることなく立証する工程；
を備えることを特徴とする方法。
【請求項１７】
請求項16記載の方法であって、更に：
該プルーバ・プラットフォームによって保持される該秘密の一方向関数の該結果を第２チャレンジャ・プラットフォームに明らかにする工程；及び
該秘密が該有効な署名を有しているということを該第２チャレンジャ・プラットフォームに対して、該秘密を該第２チャレンジャ・プラットフォームに明らかにすることなく、かつ該第１チャレンジャと該第２チャレンジャが同じプルーバ・プラットフォームと通信しているということを該第１チャレンジャと第２チャレンジャが判定することが可能でないように立証する工程；
を備えることを特徴とする方法。
【請求項１８】
請求項16記載の方法であって、更に：
該プルーバ・プラットフォームが該有効な署名を分かっているという双方向証明を、該署名を該チャレンジャに明らかにすることなく該第１チャレンジャ・プラットフォームに送る工程；
を備えることを特徴とする方法。
【請求項１９】
請求項16記載の方法であって、更に：
該プルーバ・プラットフォームの、明らかにされていない署名が無効化リストにないということを該第１チャレンジャ・プラットフォームに確信させる工程；
を備えることを特徴とする方法。
【請求項２０】
請求項16記載の方法であって、該秘密が有効な署名を有しているということを該第１チャレンジャ・プラットフォームに対して立証する工程が：
該プルーバ・プラットフォームが該秘密を分かっているという可能性が確率的に高いということを表し；
該秘密が有効な署名を有しているということを該第１チャレンジャ・プラットフォームに対して、該秘密を該第１チャレンジャ・プラットフォームに明らかにすることなく立証する工程が：
該プルーバ・プラットフォームによって明らかにされる情報に基づいて該秘密を該第１チャレンジャ・プラットフォームが計算することが計算量的に実現可能でないことになるということを表すことを特徴とする方法。
【請求項２１】
方法であって：
プルーバが既知エンティティの有効署名を有しているということを、該署名を明らかにすることなく、第1回目にチャレンジャに確信させる工程；及び
該プルーバが既知エンティティの有効署名を有しているということを、該署名を明らかにすることなく、第2回目に該チャレンジャと同じチャレンジャに確信させる工程；
を備え；
該第１回目の間と第2回目の間とに同じ署名が用いられたということを該チャレンジャが判定することができないことを特徴とする方法。
【請求項２２】
請求項21記載の方法であって、更に：
該プルーバが該有効署名を分かっているという双方向証明を該チャレンジャに向けて、該署名を該チャレンジャに明らかにすることなく送る工程；
を備えることを特徴とする方法。
【請求項２３】
請求項21記載の方法であって、更に：
該プルーバの該署名が無効化リスト上にないということを該チャレンジャに確信させる工程；
を備えることを特徴とする方法。
【請求項２４】
方法であって：
第１の署名鍵対を第１機器において生成する工程；
を備え；
該第１の署名鍵対は：
公開署名鍵；及び
秘密署名鍵；
を含み；
更に、該第１公開署名鍵を第１チャレンジャに備える工程；及び
該第１機器が署名秘密を有しているということを、該秘密を署名するのに用いる署名を明らかにすることも該秘密署名鍵を明らかにすることもなく該第１チャレンジャに対して立証する工程；
を備えることを特徴とする方法。
【請求項２５】
請求項24記載の方法であって、更に：
該第１機器が該署名秘密を分かっているという双方向証明を該第１チャレンジャに向けて、該署名秘密を該第１チャレンジャに明らかにすることなく送る工程；
を備えることを特徴とする方法。
【請求項２６】
請求項24記載の方法であって、該第１機器が該秘密を署名するのに用いる該署名を有しているということを該第１チャレンジャに対して立証する工程は：
プルーバ機器が該秘密を分かっている可能性が確率的に高いということを表し；
該第１機器が該秘密を署名するのに用いる該署名を有しているということを、該秘密を署名するのに用いる該署名を該第１チャレンジャに明らかにすることも該秘密署名鍵を該第１チャレンジャに明らかにすることもなく、該第１チャレンジャに対して立証する工程は：
該プルーバ機器によって明らかにされる情報に基づいて該秘密、該秘密を署名するのに用いる該署名、又は該秘密鍵を該第１チャレンジャが計算することが計算量的に実現可能でないものとなることを表すことを特徴とする方法。
【請求項２７】
請求項24記載の方法であって、更に：
該第１機器が署名秘密を有しているということを、該機器の識別情報を明らかにすることなく該第１チャレンジャに対して立証する工程；
を備えることを特徴とする方法。
【請求項２８】
機器であって：
通信ポート；及び
処理装置；
を備え；
該処理装置が、該通信ポートを介してチャレンジャ・プラットフォームと通信する工程；及び
該機器が秘密を分かっているということを、該機器の識別情報を明らかにすることなく該チャレンジャ・プラットフォームに確信させる工程；
を行うよう構成されることを特徴とする機器。
【請求項２９】
請求項28記載の機器であって：
該機器が該秘密を分かっているということを、該機器の該識別情報を明らかにすることなく該チャレンジャ・プラットフォームに確信させる工程が：
該機器が既知エンティティの有効署名を有しているということを、該署名を明らかにすることなく該チャレンジャ・プラットフォームに立証する工程；及び
該チャレンジャ・プラットフォームとの通信に該秘密と相互に関連している値を結びつけて、該証明を侵害することなく別の値を代入することが可能でないようにする工程；
を含むことを特徴とする機器。
【請求項３０】
請求項28記載の機器であって、該機器が該秘密を分かっているということを、該チャレンジャに対して立証することが：
該プルーバ機器が該秘密を分かっている可能性が確率的に高いということを表すことを特徴とする機器。
【請求項３１】
システムであって：
チャレンジャ機器；及び
該チャレンジャ機器に通信可能に結合されるプルーバ機器；
を備え；
該プルーバ機器は：
該プルーバ機器が既知エンティティの有効署名を有しているということを、該署名を明らかにすることなく該チャレンジャに確信させる工程；
を行うよう構成されることを特徴とするシステム。
【請求項３２】
請求項31のシステムであって、該プルーバ機器が既知エンティティの有効署名を有しているということを、該署名を明らかにすることなく該チャレンジャ機器に確信させる工程が：
該プルーバ機器によって保持される秘密の一方向関数の結果を該チャレンジャ機器に明らかにする工程；及び
該秘密が有効署名を有しているということを、該秘密を該チャレンジャ機器に明らかにすることなく該チャレンジャ機器に対して立証する工程；
を含むことを特徴とするシステム。
【請求項３３】
請求項31のシステムであって、該プルーバ機器が、更に：
該署名が、危殆化された署名の無効化リスト上にないということを、該秘密を明らかにすることなく該チャレンジャ機器に確信させる工程；
を含むことを特徴とするシステム。
【請求項３４】
請求項33のシステムであって、該署名が、無効化リスト上にないということを該チャレンジャ機器に確信させる工程が：
危殆化されたものと見なされる1つ又は複数のプルーバ機器に相当する情報の無効化リストを維持する工程；及び
該プルーバ機器の情報を、該無効化リストにおける情報と比較する工程；
を備えることを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の種々の実施例は、一般的に、セキュアな通信に関する。特に、本発明の少なくとも１つの実施例は、第１機器が有効な署名を有しているということを第２機器に対して、その署名を明らかにすることなく自ら立証することを可能にする工程に関する。
【背景技術】
【０００２】
コンピュータ・ネットワークを含む現代の通信システムの多くにおいては、交換される情報の信頼性と安全性が重要な関心事となっている。
【０００３】
例えば、トラステッド・コンピューティング・プラットフォーム連合(TCPA)モデルでは、各コンピュータ（PC）は、トラステッド・プラットフォーム・モジュール（TPM）と呼ばれるトラステッド・ハードウェア機器を有する。一実施形態では、TPMは、PCのソフトウェア環境とハードウェア環境に関する情報を記録し得る。各TPMは、一意のエンドースメント・キー(EK)を有する。TPMとプラットフォームとに関する情報を含む、EKに対して発行される証明書が存在する。以下においてはチャレンジャと呼ぶ、外部の第三者がPCのソフトウェア環境及び/又はハードウェア環境を知りたい場合、このチャレンジャは、報告するようTPMに要求することが可能である。チャレンジャは、その報告が本当に、有効なTPMからのものであるということを確かめたいものである。PCの所有者はできる限り十分にプライバシーを保持したいものである。特に、PCの所有者は、その報告が同じTPMからのものであることを判定することをそれらのチャレンジャができることなくその報告をそれらの２者の別々のチャレンジャに向けて行うことができるようにしたいものである。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
TCPAによって提案されている１つの解決策は、第三者機関(TTP)を確立することであった。TPMが証明識別鍵(AIK)を作成し、EKによって署名される証明書要求における鍵の公開部分をTTPに送るものである。TTPは、TKが有効であったということを確かめ、署名には問題がなかったということを確かめ、AIKに対する証明書を発行するものである。TPMは更に、AIKと、TTPの証明書とを、TPMがチャレンジャから要求を受けた時点で用いることになる。これらは、EKには無関係のものであり、よって、チャレンジャはAIKに関しては情報を何ら取得しないことになる。この手法は、TTPを確立することを必要とする点が課題である。実際に、TTPと、この手法を実現することが可能なビジネス・モデルとの役目を担うことが可能な関係者を識別することは、かなりの障害であることが明らかとなった。
【課題を解決するための手段】
【０００５】
よって、TCPAアーキテクチャにおけるTTPに対する必要性が課題となっている。しかし、匿名性とセキュリティ要件とを、TTPを用いることなく達成した暗号プロトコルの提案はいまだ行われていない。
【発明を実施するための最良の形態】
【０００６】
本発明の種々の実施例の以下の詳細説明では、本発明の1つ又は複数の実施例の種々の特徴が徹底的に分かるようにするために数多くの特定の詳細を表している。しかし、本発明の1つ又は複数の実施例は、これらの特定の詳細なしで行い得る。別の場合には、本発明の実施例の特徴を不必要にわかりにくくすることのないよう、周知の方法、手順、及び/又は構成部分は詳細に記載していない。
【０００７】
以下の説明では、本発明の1つ又は複数の実施例の特定の特徴を表すのに特定の用語を用いている。例えば、本明細書及び特許請求の範囲の原文記載の「platform」の語は、何れかの種類の機器、コンピュータ、処理装置などを含む。「challenger」の語は、リクエスタから何らかの信頼性又は権限の検証を、要求情報をリクエスタに開示するか備える前に要求する何れかの個人、プラットフォーム、システム、ソフトウェア、及び/又は機器を表す。「prover」の語（例えば、プルーバ機器）は、その権限、有効性、及び/又は識別情報の何らかの証明を備えるよう要求されたその何れかの個人、プラットフォーム、システム、ソフトウェア、及び/又は機器を表す。「device  manufacturer」（例えば、機器メーカC）の語は、機器又はプラットフォーム（例えば、トラステッド・プラットフォーム・モジュール）を製造するか構成する何れかの個人、プラットフォーム、システム、エンティティ、ソフトウェア、及び/又は機器を表す。「device  manufacturer」の語は、「certifying  manufacturer」の語と同義で用い得る。「HASH」の語は、何れかのハッシング機能若しくはハッシング・アルゴリズム、又はその同等物を表す。
【０００８】
以下に記載する本発明の種々の実施例の説明と図示を通して、係数、変数、及び他の記号は同じ標識または呼称によって表す。したがって、記号（例えば、h）が説明の別々の部分に出てくる場合、全体を通して同じ記号を表す。
【０００９】
本発明の実施例の一特徴は、認証システムを機器の匿名性を伴って、第三者機関(TTP)を用いることなく備える方法を提示する。
【００１０】
本発明の実施例の一特徴は、プルーバ・プラットフォーム又はプルーバ機器が機器メーカからの署名を有しているということをその署名をチャレンジャに明らかにすることなくチャレンジャに対して立証する方法、システム、及び機器を備える。
【００１１】
本発明の実施例の別の特徴は、プルーバ機器（例えば、要求機器）によって保持されている秘密の一方向関数の結果をチャレンジャに備え、一方向関数において用いられる秘密が機器署名によって署名されたということを、その秘密又はその署名をチャレンジャに明らかにすることなくチャレンジャに対して立証する方法、システム、及び機器を備える。
【００１２】
本明細書及び特許請求の範囲の原文において用いられている、プルーバが署名又は秘密を有しているか、プルーバは署名又は秘密が分かっているということをチャレンジャに「prove（立証する）」か、「convince（確信させる）」ということは、チャレンジャに開示される情報及び証明に基づいて、プルーバが署名又は秘密を有しているという可能性が確率的に非常に高いということを表す。署名又は秘密を「revealing(明らかにする)」か「disclosing（開示する）」ことなくチャレンジャに対してこのことを立証することは、チャレンジャに対して開示される情報に基づけば、署名又は秘密を判定することが計算量的に実現可能でないことになるということを表す。
【００１３】
そのような証明は以下では直接証明として表す。「direct  proof」の語は、これらの種類の証明が当該分野において通常知られているように、双方向証明及び/又はゼロ知識証明を表す。
【実施例】
【００１４】
図1は、本発明の実施例による直接証明手法を実施し得るシステムを示す。プラットフォームB104（プルーバ）がそれ自体に関する何らかの情報を備えるようプラットフォームA102（チャレンジャ）が要求し、プラットフォームB104がその要求情報を備える。しかし、プラットフォームA102は、要求情報が機器メーカＣによって製造された機器からのものであるということを確かめたいものである。よって、プラットフォームA102は、それが機器メーカCによって生成された署名を有しているということを表すようプラットフォームB104に要求する。機器メーカCによって生成された署名をプラットフォームB104が有しているということを、その署名を明らかにすることなくプラットフォームA102に確信させる情報を備えることによってプラットフォームB104はそのような要求に応答する。
【００１５】
本発明の一実施例では、プラットフォームB104はトラステッド・プラットフォーム・モジュール(TPM)106を含み得る。このモジュールは、機器メーカによって製造されるので、本発明に必要な関数を実行し、本明細書及び特許請求の範囲記載のプロトコルの動作に準拠する。一般的に、TPMは、本明細書及び特許請求の範囲記載のセキュリティ機能を維持するよう製造されることとする。例えば以下に説明し、図6に示すプロトコルIP1では、TPMは特定値を用いて特定関数を実行する。TPMは、プロトコルにおけるセキュリティ上の欠陥をもたらすことにならない（例えば、機器の識別情報を判定できる可能性があるようにする）値（例えば、以下に規定する値）を用いるよう製造又は構成されることとする。
【００１６】
図2は、本発明の一実施例による、トラステッド・プラットフォーム・モジュール(TPM)204を備えている機器又はプラットフォーム200（例えば、プラットフォームB104）の一実施例を示す構成図である。機器200は、TPM204に結合される処理装置202を含み得る。一実施形態では、記憶装置206は、機器200に関する情報（例えば、ハードウェア情報、ソフトウェア情報など）を記憶させることを可能にするよう機器200に含まれる場合もある。本発明の種々の実施形態では、プラットフォーム又は機器200は、コンピュータ、移動体機器などの電子機器であり得る。
【００１７】
図3は、本発明の一実施例による、プラットフォーム・クラス毎に行う設定を示す。プラットフォーム・クラスは、1つ又は複数の種類のプラットフォーム又は機器を含むよう機器メーカによって規定し得る。例えば、プラットフォーム・クラスは、同様なセキュリティ関連情報を有する、全プラットフォーム群であり得る。各プラットフォームは、そのプラットフォームに関するセキュリティ関連情報群を有する。この情報は、TCPAモデルにおけるEK又はAIK証明書に含まれる情報の一部を含んでいる可能性がある。この情報は、特定のプラットフォーム又は機器のメーカと型番とを含んでいる可能性もある。
【００１８】
プラットフォーム・クラス毎に、機器メーカは、メーカがそのプラットフォーム・クラスに用いる暗号パラメータを生成する。機器メーカは、それが製造する機器（例えば、機器200）についての秘密を署名するのにそれが用いる署名鍵を作成する。
【００１９】
本発明の一実施例では、機器メーカは、RSAアルゴリズム（ロナルド・リベスト氏（Ronald  Rivest）、アディ・シャミール氏(Adi  Shamir)、及びレオナルド・アデルマン氏(Leonard  Adelman)氏によって定義された公開鍵暗号システム）を利用して、公開モジュラスn、公開指数d、及び非公開指数eを備えている、RSA公開鍵とRSA秘密鍵との対を作成する(302)。これは、西暦1995年10月18日発行のBruce  Schneiderによる、Applied  Cryptography、John  Wiley  &  Sons;  ISBN：0471117089;  Second  Editionと題する文献に記載されているものなどの周知の方法を用いて作成することが可能である。モジュラスnは、nを因数分解することが計算量的に実現可能でないほど十分に大きいものを選定することとする。
【００２０】
機器メーカは、ゼロ(0)とnとの間の整数であるパラメータZを規定する(304)。
【００２１】
機器メーカは、ゼロ(0)とnとの間の整数であるセキュリティ・パラメータWを規定する（306）。しかし、選ぶWが小さすぎても大きすぎてもセキュリティ上の欠陥をもたらし得る。一実施形態では、Wを2160とn/2160との間で選ぶことを推奨し得る。したがって、Wをおおよそ√nとなるように選ぶことは合理的な選択であり得る。
【００２２】
本発明の一実施例では、機器メーカは素数PをP=u*n+1であるように計算する(308)。u*n+1が素数であること以外は、uの値に関しては特別なことは何らない。例えば、そのようなuの値の最小のものを用い得る。一般的に、値Pは、離散対数modPを計算することが計算量的に実現可能でないほど十分大きいこととする。
【００２３】
機器メーカは、暗号パラメータe、n、u、P、Z、W、プラットフォーム・クラスのセキュリティ関連情報、及び機器メーカの名前を含むプラットフォーム・クラス証明書を生成する(310)。一実施例では、パラメータuとパラメータPとの両方を含む訳でないこととしているが、それはnと、これらのパラメータのうちの一方とがあれば、他方はP=u*n+1によって計算することが可能であるからである。
【００２４】
本発明の一実施例では、機器メーカはいくつかの別々のプラットフォーム・クラスに、同じe、n、u、P、Wを用いており、それらの別々のプラットフォームによって値Zを単に変動させている。この場合には、Zの値は、少なくとも4Wは異ならせるよう選定することとする。
【００２５】
プラットフォーム・クラス証明書が生成されると、機器メーカは、その特定のプラットフォーム・クラスに属する、それが製造する機器にクラス証明書を備える(312)。
【００２６】
プルーバ機器又はプルーバ・プラットフォーム（例えば、図1のプラットフォームA）からチャレンジャまでのプラットフォーム・クラス証明書の配布は、いくつかの方法で本発明の1つ又は複数の実施例から逸脱することなく実現し得る。これらの暗号パラメータ、すなわち、プラットフォーム・クラス証明書は、クラス証明書が機器メーカによって生成されたということをチャレンジャが確信するような方法でチャレンジャに対して配布されることとする。このことを行ううえで認められている標準的な方法があり、その方法には、パラメータをチャレンジャに直接配布することによる方法や、プラットフォーム・クラス証明書を認証局によって署名させることによる方法がある。この後者の場合には、認証局の公開鍵はチャレンジャに配布されなければならず、署名プラットフォーム・クラス証明書は、プラットフォーム・クラスにおける機器又はプラットフォーム（例えば、プルーバ機器）の各々に付与し得る。このような機器はその場合、署名プラットフォーム・クラス証明書をチャレンジャに付与し得る。
【００２７】
図4は、本発明の一実施例によって製造されるプルーバ・プラットフォーム又はプルーバ機器によって行われる設定を示す。プルーバ機器は、任意の数mを、0<m−Z<Wとなるように選定する(402)。プルーバ機器はこの任意の数mを、署名してもらうよう認証メーカに送る前に非公開にする場合がある(404)。この場合、プルーバ機器は1と(n−1)との間の任意の数Bを選定し(406)、A=Be  mod  nを計算する(408)。プルーバ機器はm’=m*A  mod  nを計算する(410)。
【００２８】
機器がmを非公開にしない場合、機器はm’=mとA=1とを用いる(412)。
【００２９】
プルーバ機器はm’を認証メーカに送る(414)。認証メーカはc’=m’d  mod  nを計算し(416)、c’を機器に付与する(418)。機器はc=c’*B−1  mod  nを計算する(420)。なお、このことはc=md  mod  nであるということを暗示している。数cと数mは更に、TPMに記憶される(422)。このcとmとの対は、機器メーカの署名として呼ばれている。
【００３０】
図5は、本発明の一実施例による、プルーバ機器が、自らが認証メーカからの署名を有しているということを、署名を明らかにすることなくチャレンジャに対して立証する方法を示す。チャレンジャ（例えば、プラットフォームA102）は、TPMを有しているプルーバ機器（例えば、機器B104）から有効性を求める（例えば、機器の有効性を確かめる）メッセージを送出し得る(502)。このメッセージはチャレンジャの名前を含み得る。プルーバ機器は、数nを含む機器証明書（例えば、プラットフォーム・クラス証明書）をチャレンジャに送出する(504)。プルーバ機器におけるTPMはAIKの秘密鍵と公開鍵との対を作成する(506)。秘密鍵と公開鍵の対は、公開鍵と秘密鍵とを含む。一実施例では、ある先行時点でAIKの秘密鍵と公開鍵の対を作成した可能性がある。TPMは値hを作成又は生成する（508）。値hは、値hを無作為に生成する方法と、値hを決定論的な方法で生成する方法とを含むいくつかの方法で判定し得る。値hは、hn=1であるという特性と、TPMがチャレンジャ毎に異なるhの値を用いるという特性とを有することとする。
【００３１】
本発明の一実施例では、値hは、乱数法又は擬似乱数法で生成し得る。例えば、TPMは1とn−1との間の任意の数jを選定し、h=ju  mod  Pを計算する場合がある。
【００３２】
TPMは、k=hm  mod  Pであるk値を計算する(510)。プルーバ機器は更に、計算された、値h並びに値k及びAIK公開鍵をチャレンジャに送る(512)。
【００３３】
本発明の別の実施例では、値hは決定論的な方法で生成し得る。例えば、TPMは、チャレンジャの名前から決定論的な方法でhを計算し得る。このことを行う1つの方法は、
いくつかの値、例えば、i=1、2、3、…、10の、10個の値、についてHi=HASH(i,チャレンジャの名前)を計算し、更に、j=H1││H2││H3…││H10の連接とするものである。その場合、上記の通り、TPMは、h=ju  mod  Pを計算し、その場合、上記で規定した通り、u=(P−1)/nである。TPMは、k=hm  mod  Pであるk値を計算する。プルーバ機器は更に、チャレンジャに計算値kとAIK公開鍵とを送る。TPMのユーザは、単一のhが複数の関係者には用いられないということを確信したいが、これは、そのことが、これらの複数の関係者との間でこのTPMの匿名性が損なわれるからである。したがって、TPM又はプルーバ機器は、それが用いた値hの全てのリストを保持して、繰り返しの利用を禁止することを可能にしてもよく、少なくとも、その利用が繰り返された場合にユーザに通知するようにしてもよい。本発明の一実施例では、プルーバ機器がチャレンジャの名前を表示して、プルーバ機器のユーザがその名前を分かるようにする場合もある。この実施例では、TPM鍵毎に、TPMが証明において有することが可能なk=hm  mod  Pは１つしか存在しないということをチャレンジャは確信している。よって、チャレンジャがkをAIKとともに記憶している場合、単一のTPMが2つ以上のAIKを作成していないということをチャレンジャは確信することが可能である。この方法は、チャレンジャ毎単一h方法として呼ばれる場合がある。
【００３４】
単一のサービス・プルーバイダは、その各々がそれ自身の名前と、よって、それ自身のhとを備えているその複数のチャレンジャを確立し得る。別々のチャレンジャは、単一のTPMからのAIKを相互に関係付けることはできないことになる。複数のチャレンジャを自らの事業内部において受け入れるか否かについては、サービス・プロバイダの実施上、決定されることとする。
【００３５】
プルーバ機器は更に、m=ce  mod  nであり、k=hm  mod  Pであるような値cと値mとの対を分かっているという双方向証明(IP1)をチャレンジャとの間で行う(514)。プルーバ機器は更に、hを底とするkの離散対数がZとZ+Wとの間にあるということを示す第２双方向証明(IP2)をチャレンジャとの間で行う（516）。図6及び図7は、これらの２つの双方向証明IP1及びIP2の例示的実施例を表す。
【００３６】
図6は、本発明の一実施例による、図5の双方向証明IP1を実施する、チャレンジャとプルーバ機器との間での方法を示す流れ図である。m=ce  mod  nであり、k=  hm  mod  Pであるような値cと値mとをTPMが分かっているということを、TPM（プルーバ機器の一部）がc又はmを明らかにすることなく立証するのにIP1を利用することが可能である。チャレンジャは、例えば10と40との間の値の保証パラメータ(AP)をプルーバ機器に供給する（602）。TPMは更に、x  mod  nの値を任意に選定する(604)。TPMは値yを、x*y=c  mod  nであるように計算し(606)、値vを：
【００３７】
【数１】
2006508608.tif 000002
であるように計算する(608)。TPMは値vをチャレンジャに送る(610)。TPMは、HASH(AIK公開鍵,x)やHASH(AIK公開鍵,y)を計算する(611)。チャレンジャは更に、x又はyを受信するよう選択する(612)。チャレンジャがxを受信するよう選択する場合、TPMはxをチャレンジャに送る(614)。チャレンジャは：
【００３８】
【数２】
2006508608.tif 000003
であり、HASH(AIK公開鍵,x)が正常に送られたことを検証する。さもなければ、チャレンジャがyを受信するよう選択する場合(618)、TPMはyをチャレンジャに送り、チャレンジャは：
【００３９】
【数３】
2006508608.tif 000004
であり、HASH(AIK公開鍵,y)が正常に送られたことを検証する(620)。本発明の一実施例では、この検証手法はAP回行われる(622)。
【００４０】
図7は、本発明の一実施例による、図5の双方向証明IP2を実施する、チャレンジャとプルーバ機器との間での方法を示す流れ図である。Z−W<m<  Z+2*Wであり、k=  hm  mod  Pであるような値mをTPMが分かっているということを、TPMがmを明らかにすることなく立証するのにIP2を利用することが可能である。
【００４１】
チャレンジャは、例えば10と40との間の値の保証パラメータ(AP)をプルーバ機器に供給する(701)。TPM（プルーバ機器の一部）は数tを、0<t<Wであるように任意に選定する(702)。TPMは、g0=ht  mod  Pを計算し(704)、g1=g0*h(−W)  mod  Pを計算する(706)。TPMは２つの任意の160ビットの、値R0と値R1とを生成し(708)、H0=HASH(AIK公開鍵,g0,R0)及びH1=HASH(AIK公開鍵,g1,R1)を計算し(710)、H0及びH1をチャレンジャに任意の順序で送る(712)。
【００４２】
チャレンジャは、例えば、選択0又は選択１の、２つの選択から選択する(714)。
【００４３】
チャレンジャが選択0を選択する場合、TPMは、tと、R0と、R1と、H0及びH1の順序とをチャレンジャに送る(716)。チャレンジャは、g0=ht  mod  P及びg1=h(t−W)  mod  Pを計算する(718)。チャレンジャは、0<t<Wであることを確かめる(720)。チャレンジャは、H0=HASH(AIK公開鍵,g0,R0)及びH1=HASH(AIK公開鍵,g1,R1)であることも確かめる(722)。これらを確かめた結果が全て通過した場合、チャレンジャは受け入れる(724)。
【００４４】
チャレンジャが選択1を選択する際に、m+tがZとZ+Wとの間の区間にある場合には、TPMは、m’=m+t、g0、及びR0を送り(728)、H0を用いるようチャレンジャに通知する。チャレンジャは、H0=HASH(AIK公開鍵,g0,R0)であり、m’がZとZ+Wとの間の区間にあり、g0*k=hm’  mod  Pであることを確かめる(730)。m+t>Z+Wの場合、TPMは、m’=m−W+t、g1、及びR1を送り(732)、H1を用いるようチャレンジャに通知する。チャレンジャは、H1=HASH(AIK公開鍵,g1,R1)であり、Z<m’<Z+Wであり、g1*k=hm’  mod  Pであることを確かめる(734)。上記を確かめた結果が全て通過した場合、チャレンジャは受け入れる(724)。
【００４５】
IP2の一実施例では、上記手順はAP回行われる(723)。なお、図6の参照数字622に示す、IP1の手順を繰り返すこと及び/又は、図7の参照数字723に示す、IP2の手順を繰り返すことによって、認可されていないプルーバすなわち不正のプルーバは十分な証明をチャレンジャに備えることを正常に行うことができるという可能性がより低くなる。すなわち、証明（例えば、IP1又はIP2）をAP回繰り返すことによって、2AP分の１の確率である、各ラウンドで正常に行うことをプルーバは強いられる。
【００４６】
TPMが上記のIP1処理とIP2処理とを正常に完了した後、Z−W<m<Z+2*Wであり、c=md  mod  nであるような値mと値cとをプルーバ機器/TPMが分かっているということをチャレンジャは確信している。すなわち、cはmの署名である。上記区間における特定の値についてmの署名を計算することはRSAを損なうことと同等である。上記区間における何れかの値の署名を、モジュラスnの因数分解が分かることなく計算することは、困難な、計算上の課題である。
【００４７】
図6及び図7に表すプロトコルは、TPM(プルーバ機器)とチャレンジャとの間での通信を複数ラウンド必要とする欠点を有している。しかし、本発明の別の実施例では、これらのプロトコルは限定されるラウンドのプロトコルに変換し得る。
【００４８】
図8は、本発明の一実施例による、直接証明を限られた数の通信において実施して認証処理を速くし得る方法を示す。TPMは、AIK公開鍵とAIK秘密鍵とを含むAIKの秘密鍵と公開鍵との対を生成し、AIK公開鍵（又はAIK公開鍵のHASHのみ）をチャレンジャに送る(802)。チャレンジャは、保証パラメータ(AP)を選択し(804)、2*APの任意のビット群(CHOICES)を選択し(806)、320の任意のビットの追加の任意フィラを選択する(808)。チャレンジャは更に、RAND=CHOICES││ランダム・フィラを設定し(810)、コミットメント=(公開AIK鍵││RAND)を計算し、コミットメントのHASHをTPMに送り、TPMはこのハッシュを記憶させる(812)。
【００４９】
TPMは、このチャレンジャに用いる値hを上記方法のうちの１つを用いて判定し、それは、乱数法を用いてhを生成する方法と、チャレンジャ毎単一ｈ方法におけるチャレンジャの名前からhを生成する方法との何れかである(818)。
【００５０】
図6及び図7に示すように一度に一ループの値を直列に計算するかわりに、TPMは、今度は、双方向証明(IP1及びIP2)の方法のラウンド（ループ）全ての計算の全てを生成し、全ラウンドについて計算された値の全てをチャレンジャに送る(820)。計算値群は、k、hを含むことになり、IP1の各ラウンドからは、v、HASH（AIK公開鍵,x）、及びHASH（AIK公開鍵,y）を含むことになり、IP2の各ラウンドからは、H0及びH1を含むことになる。チャレンジャは更に、RANDの値をTPMに送る(822)。TPMは、コミットメントの最初のビットが、公開AIK鍵のハッシュであり、RANDの最初の2*ACビットをプロトコル中のチャレンジャの選択として用いるということを検証する(824)。TPMはこれらの選択に基づいてラウンド全てについての応答を用意し、それら応答全てをチャレンジャに返信する。
【００５１】
限られた通信バージョンの一実施例では、HASH(AIK公開鍵,x)とHASH（AIK公開鍵,y）はチャレンジャに送られるものでない。同様に、H0の値は、HASH(AIK公開鍵,  g0,R0)ではなくHASH(g0,R0)に等しく、H1は、HASH(AIK公開鍵,  g1,R1)ではなくHASH(g1,R1)である。
【００５２】
特定の実施例では、TPM又はその鍵が危殆化されたということが判定されたか疑われた場合には、チャレンジャがTPMを無効にすることを可能にすることが望ましい場合がある。
【００５３】
プルーバ機器のTPMが危殆化されたということをチャレンジャが判定し得る１つの場合としては、危殆化されたTPMの鍵（c及びm）が、ウェブ上にポスティングされるなど、広く頒布される場合があるということがある。このような場合には、チャレンジャはそのTPMを無効にすることが可能である。例えば、c0及びm0が、ポスティングされた、危殆化されたTPMの鍵であるものとする。チャレンジャがh値を見るといつでも、チャレンジャは：
【００５４】
【数４】
2006508608.tif 000005
を計算する。プルーバが呈する値kにこれが一致する場合、プルーバが用いるmが危殆化されたTPMのm0に一致するということをチャレンジャは分かっており、よって、チャレンジャはそれを受け入れないことになる。
【００５５】
無効化の別の実施例では、AIK値と一緒に値hと値kとをチャレンジャが常に記憶させているものとする。その場合、チャレンジャが危殆化された鍵c0及びm0を受信する場合、危殆化された鍵c0及びm0を用いて、受信された、値hと値kとの何れかが計算されたかをチャレンジャは確かめてみることが可能である。チャレンジャは：
【００５６】
【数５】
2006508608.tif 000006
を計算し、TPMから受信した値kにそれが一致したかを確かめてみることによってこのことを行う。肯定の場合、チャレンジャは相当するAIK値を無効にする。チャレンジャ毎単一h方法が用いられるほうが、チャレンジャによる計算は単純となるが、それは、チャレンジャが、k0を計算し、チャレンジャによって受信されるkの何れかと一致するかを見るだけで済むからである。
【００５７】
鍵が危殆化されたということをチャレンジャが判定し得る別の場合では、チャレンジャは、危殆化されたことを示す、TPMの利用パターンを検知し得る。例えば、同時に別々のプルーバ機器からチャレンジャに対して2つの接続が行われることは、危殆化された鍵を示し得る。チャレンジャ毎単一h方法が用いられる場合、同じk=hm  mod  Pが両方の接続と関係付けられることになるので、２つの接続が同じmを用いたということをチャレンジャは分かることになる。チャレンジャが、秘密値が危殆化された可能性があるということを判定する場合があるので、チャレンジャはそのkを用いた直接証明をそれ以上受け入れないことになる。その場合、そのTPMからの秘密値は、そのチャレンジャにはもう用いることが可能でない。しかし、このチャレンジャは、mの値が分からないので、そのTPMからの秘密値を用いるべきでない旨を何れかの別のチャレンジャに伝えることは可能でない。
【００５８】
本発明の別の実施例では、それらの秘密値が危殆化された場合があるということをその群におけるチャレンジャのうちの１つが判定する場合、TPMのそれらの秘密値を無効化することができるようにそのチャレンジャ群全てがしたいということをそのチャレンジャ群が判定する場合がある。この機能を動作可能にするためには、上記で説明した、本発明の実施例に対する変更を必要とする。この変更は、値hが判定される方法に関する。トラステッド無効化局(TRA)が形成される。TRAは、標準的なRSA鍵対などの、公開認証鍵と非公開署名鍵との対を有している。TRA公開鍵は、製造中にその鍵をTPMにメーカに入れさせる方法などの何れかのセキュアな配布方法を用いてTPMに付与される。
【００５９】
TPAは値gを、gn=1  mod  Pであるように生成する。TRAは、1とPとの間の任意のg’値を生成し、更に、g=g’u  mod  Pを計算することによってこのことを行うことが可能である。更に、群におけるチャレンジャ毎に、TRAは1とnとの間で指数(EXP)を任意に選び、h=gEXP  mod  Pを選ぶことになる。TRAは更に、その証明書においてこのチャレンジャの名前とこの値hとを備えているその証明書に署名する。TRAは、チャレンジャ毎にhを作成するのに用いるEXPをセキュアに記憶させる。
【００６０】
TPMが群におけるチャレンジャとの直接証明を開始する場合、チャレンジャはh値に対するこの証明書を送る。TPMは、TRAの署名を確かめることによってこの証明書を検証する。有効な場合、TPMは、このh値を、上記実施例において説明した値hを生成するかわりに用いる。直接証明の別の特徴は変わるものでない。
【００６１】
そのh値としてのh1を備えているそのチャレンジャ1が、k1=h1m  mod  Pを生成したTPMを無効にしたいということを宣言する場合、TRAは、h1を：
【００６２】
【数６】
2006508608.tif 000007
として計算するのに用いるEXP値であるEXP1を取り出す。なお、チャレンジャ1が無効にしたい、TPMにおけるmの値はチャレンジャ1もTRAを分からない場合がある。無効にする対象のk値をチャレンジャiに伝えるよう、TRAはb1=EXP1(−1)  mod  nを計算し、更に：
【００６３】
【数７】
2006508608.tif 000008
を計算する。ただし、ki=him  mod  Pである。なお、TRAはこの計算中にmを計算していない。kiは更に、チャレンジャiに送られ、その際に、チャレンジャiは、所望する場合、kiを無効にすることが可能である。
【００６４】
本発明の特定の例示的実施例を説明し、添付図面に表したが、そのような実施例は、単に、本発明の種々の実施例の概略の特徴を説明するためのものであり、そのような特徴に制限されるものでなく、種々の別の修正が考えられるので、これらの実施例は、本明細書及び特許範囲に表し、記載した特定の構成や装置に限定されるものでないこととする。
本発明の実施例又はその特徴の一部を、ハードウェア、プログラム可能機器、ファームウェア、ソフトウェア、又はそれらの組み合わせにおいて実施することが可能である。
【図面の簡単な説明】
【００６５】
【図１】本発明の実施例による、直接証明手法を実施し得るシステムを示す図である。
【図２】本発明の一実施例による、トラステッド・プラットフォーム・モジュールを含むプラットフォームの一実施例を示す構成図である。
【図３】本発明の一実施例による、製造中にTPMを設定する手順を示す図である。
【図４】本発明の一実施例による、製造プラットフォーム毎に行う設定を示す図である。
【図５】本発明の一実施例による、プラットフォーム（プルーバ）が、自らが認証情報を分かっているということをその情報を明らかにすることなくチャレンジャに対して立証する双方向証明方法を示す図である。
【図６】図5の双方向証明(IP1)を実施する、チャレンジャとプラットフォームとの間での方法を示す流れ図である。
【図７】図5の双方向証明(IP2)を実施する、チャレンジャとプラットフォームとの間での方法を示す流れ図である。
【図８】本発明の一実施例による、認証処理を速めるよう限られたラウンド数で直接証明を実施し得る方法を示す図である。
【図１】
2006508608.tif 000009
【図２】
2006508608.tif 000010
【図３】
2006508608.tif 000011
【図４】
2006508608.tif 000012
【図５】
2006508608.tif 000013
【図６】
2006508608.tif 000014
【図７】
2006508608.tif 000015
【図８】
2006508608.tif 000016
【国際調査報告】
2006508608.tif 000017
2006508608.tif 000018
2006508608.tif 000019