(57)【特許請求の範囲】
【請求項１】
第１ステートメントに対応する１つまたは複数の第１証明の各々に対する複数の値を、第２装置から受信した情報に基づき第１装置によって事前計算する工程と、
前記第２装置から証明に対する要求を前記第１装置によって受信する工程と、
第１証明の正当性を検証し、第２ステートメントに対応する第２証明を前記複数の値に基づき前記第１装置によって生成する工程と、
前記第２証明を前記第２装置に前記第１装置によって送信する工程と、
無作為または擬似乱数に基づいて前記第１および前記第２証明を構成することと、事前計算段階中に事前計算された複数の値を用いて証明の計算を実行することによって前記第１および前記第２証明を構成することと、の１つまたは複数を構成する直接証明プロトコルを介して、前記第２装置がアクセスしようとする対象装置および前記第２装置の間の信頼を、前記第１装置によって確立する工程と、
を備え、
前記事前計算する工程は、前記第２装置および前記対象装置の間の信頼を検証するのに使用するパラメータを選択することを含み、
前記第２証明は、前記対象装置の身元を明らかにせずに、前記対象装置の信頼を前記第２装置に明らかにする方法。
【請求項２】
前記第２証明は、前記第１ステートメントが真であれば、前記第２ステートメントが真である証明を含む請求項１に記載の方法。
【請求項３】
前記パラメータは、保証パラメータ（ＡＰ）である請求項１または２に記載の方法。
【請求項４】
前記複数の値は、Ｐを素数、ｍを前記第１装置に固有の整数として、ｋ＝ｈｍ  ｍｏｄ  Ｐとなる整数ｋおよび整数ｈを含むことを特徴とする請求項１から３のいずれかに記載の方法。
【請求項５】
対象装置にアクセスしようとする第２装置、および前記対象装置に接続される第１装置を備えるシステムであって、前記第１装置は、
第１ステートメントに対応する１つまたは複数の第１証明の各々に対する複数の値を、第２装置から受信した情報に基づき事前計算し、
前記第２装置から証明に対する要求を受信し、
第１証明の正当性を検証し、第２ステートメントに対応する第２証明を前記複数の値に基づき生成し、
前記第２証明を前記第２装置に送信し、
無作為または擬似乱数に基づいて前記第１および前記第２証明を構成することと、事前計算段階中に事前計算された複数の値を用いて証明の計算を実行することによって前記第１および前記第２証明を構成することと、の１つまたは複数を構成する直接証明プロトコルを介して、前記対象装置および前記第２装置の間の信頼を確立し、
前記事前計算は、前記第２装置および前記対象装置の間の信頼を検証するのに使用するパラメータを選択することを含み、
前記第２証明は、前記対象装置の身元を明らかにせずに、前記対象装置の信頼を前記第２装置に明らかにするシステム。
【請求項６】
前記第２証明は、前記第１ステートメントが真であれば、前記第２ステートメントが真である証明を含む請求項5に記載のシステム。
【請求項７】
前記パラメータは、保証パラメータ（ＡＰ）である請求項５または６に記載のシステム。
【請求項８】
前記複数の値は、Ｐを素数、ｍを前記第１装置に固有の整数として、ｋ＝ｈｍ  ｍｏｄ  Ｐとなる整数ｋおよび整数ｈを含むことを特徴とする請求項５から７のいずれかに記載のシステム。
【請求項９】
プログラムであって、第１装置が有するプロセッサで実行されることにより、前記第１装置が有するプロセッサに、
第１ステートメントに対応する１つまたは複数の第１証明の各々に対する複数の値を、第２装置から受信した情報に基づき事前計算させる工程と、
前記第２装置から証明に対する要求を受信させる工程と、
第１証明の正当性を検証させ、第２ステートメントに対応する第２証明を前記複数の値に基づき生成させる工程と、
前記第２証明を前記第２装置へ送信させる工程と、
無作為または擬似乱数に基づいて前記第１および前記第２証明を構成することと、事前計算段階中に事前計算された複数の値を用いて証明の計算を実行することによって前記第１および前記第２証明を構成することと、の１つまたは複数を構成する直接証明プロトコルを介して、前記第２装置がアクセスしようとする対象装置および前記第２装置の間の信頼を確立させる工程と、
を実行させ、
前記事前計算は、前記第２装置および前記対象装置の間の信頼を検証するのに使用するパラメータを選択することを含み、
前記第２証明は、前記対象装置の身元を明らかにせずに、前記対象装置の信頼を前記第２装置に明らかにするプログラム。
【請求項１０】
前記第２証明は、前記第１ステートメントが真であれば、前記第２ステートメントが真である証明を含む請求項９に記載のプログラム。
【請求項１１】
前記パラメータは、保証パラメータ（ＡＰ）である請求項９または１０に記載のプログラム。
【請求項１２】
前記複数の値は、Ｐを素数、ｍを前記第１装置に固有の整数として、ｋ＝ｈｍ  ｍｏｄ  Ｐとなる整数ｋおよび整数ｈを含むことを特徴とする請求項９から１１のいずれかに記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の通信の安全確保に関し、特に、１つの信頼できる第三者機関を用いない複数の装置に対して匿名性を持つ１つの認証システムに関する。
【背景技術】
【０００２】
複数のコンピュータネットワークを含む多数の最新の通信システムでは、やり取りされる情報の信頼性および安全性は、１つの重大な関心事である。例えば、トラステッドコンピューティングプラットフォーム連合（ＴＣＰＡ）モデルでは、各コンピュータは、１つのトラステッドプラットフォームモジュール（ＴＰＭ）と称する１つの信頼できるハードウェア装置を有する。ＴＰＭは、コンピュータのソフトウェアおよびハードウェア環境に関する情報を記録でき、各ＴＰＭは、１つの固有の承認キー（ＥＫ）を有する。ＴＰＭおよびプラットフォームに関する情報を含む１つの証明書をＥＫに発行できる。コンピュータのソフトウェアおよび／あるいはハードウェア環境を知るための１つの外部の第三者（チャレンジャー）の場合、チャレンジャーは、１つの報告を行うことをＴＰＭに求めることができる。この報告が１つの有効なＴＰＭから本当に来たものかをチャレンジャーは確認する必要があり、その一方で、コンピュータの所有者は、可能な限り多くのプライバシーを維持したいと望んでいる。例えば、コンピュータの所有者は、複数の報告を２つの異なるチャレンジャーに与える場合、複数の報告が、同一のＴＰＭから来たものであることをこれら複数のチャレンジャーには判断できないようにして与えることができればよいと望んでいる。
【０００３】
ＴＣＰＡにより提案された１つの解決策は、複数の信頼できる第三者機関（ＴＴＰ）を確立することであった。１つのＴＰＭは１つの認証識別キー（ＡＩＫ）を生成し、ＥＫにより署名された１つの証明書要求でのキーの公開部分を１つのＴＴＰへ送信する。ＥＫが有効であるか、すなわち、署名が大丈夫であるかをＴＴＰが検査し、ＡＩＫに対して１つの証明書を発行する。ＴＰＭは次に、ＴＰＭが１つの要求を１つのチャレンジャーから受信した時にＡＩＫおよびＴＴＰの証明書を用いる。これらはＥＫに関係しないので、チャレンジャーは、ＡＩＫに関するいかなる情報も得ない。しかし、このアプローチに関する問題は、それが、確立すべき複数のＴＴＰを必要とすることである。実際には、このアプローチに対する複数のＴＴＰとして作用できる複数の当事者、および、このアプローチに対する１つの実行可能なビジネスモデルを特定することは、１つの実質的な障害であることが証明された。
【０００４】
更に、１つのチャレンジャーは、欠陥があるとこのチャレンジャーが疑っている１つのＴＰＭからの複数のトランザクションを拒否できることが有用であると感じる場合がある。１つの特定のＴＰＭトランザクションに欠陥があるかを見つけ出すため、複数のどのトランザクションが１つの特定のＴＰＭと関連するかを１つのチャレンジャーが決定したいと思う場合がある。更に、幾つかの暗号プロトコルが大規模な計算を必要とするので、このように構築された１つのプロトコルを具えるため、計算の大部分をオフラインで実行できることが有用である場合がある。今日、利用できる複数の方法、装置あるいは複数のシステムのいずれも、１つの暗号プロトコルに対して、複数の疑わしいＴＰＭを特定および拒否する能力を具えると共に複数の匿名性および安全性要件を達成することを定めておらず、計算の大部分をオフラインで実行するように構築されていない。
【発明の開示】
【課題を解決するための手段】
【０００５】
複数の請求項は、本発明の複数の特徴を詳細に述べる。複数の添付図面と共に以下の詳細な説明から本発明の複数の実施形態を複数の利点と一緒に最も良く理解できる。
【０００６】
複数の通信を安全確保する１つの方法および装置を説明する。広く述べると、本発明の複数の実施形態は、１つの信頼できる第三者機関（ＴＴＰ）を用いない複数の装置に対して匿名性を持つ１つの認証システムを提供する。
【０００７】
１つの有効署名に関して、身元を明らかにすることなく、直接証明プロトコルを用いて１つの第１装置と１つの第２装置との間に信頼を確立する１つのシステム、装置および方法を提供する。１つの実施形態によれば、直接証明プロトコルとは、１つの暗号キーが、１つの信頼できるハードウェア装置（装置）から来たことを、装置の身元に関する情報を明らかにせずに１つのチャレンジャーに証明する１つの方法を行うことを指す。直接証明プロトコルは、トラステッドコンピューティングプラットフォーム連合（ＴＣＰＡ）内の１つのトラステッドプラットフォームモジュール（ＴＰＭ）として一般に知られた装置により実行されるべき計算を必要とする場合がある。
【０００８】
１つの実施形態によれば、直接証明プロトコルは、２つの選択、すなわち、１つの無作為なｈ選択と、１つの名付けられたｈ選択とを持つことができる。無作為なｈ選択とは、証明を構築するために底として用いることができるｈの値をＴＰＭが１つの無作為あるいは疑似乱数に基づいて選択でき、ＴＰＭが対応のチャレンジャーを知り得る前に証明を構築するのに必要な複数の計算の大部分を実行できる方法を指す。名付けられたｈ選択とは、ＴＰＭがチャレンジャーの名称を用いてｈの値を生成できる方法を指すことができる。典型的に、名付けられたｈ生成は、ＴＰＭが対応のチャレンジャーを知った後まで、証明を構築する計算を発生可能にさせる。１つの実施形態によれば、名付けられたｈ選択を用いて、証明を構築する計算の大部分をオフラインで、あるいは事前計算段階中に実行できる。
【０００９】
１つの実施形態によれば、１つの第１ステートメントに対応する１つの証明の複数の値を１つのプロバー装置（プロバー）により事前計算できる。１つのチャレンジャー装置（チャレンジャー）からの１つの第２証明に対する１つの要求を受信する際、プロバーは、１つの第１証明および１つの第２証明を完了し、第２証明をチャレンジャーへ送信できる。１つの実施形態によれば、第２証明は、第１ステートメントが真であれば、１つの第２ステートメントが真であるという証明を含むことができる。更に、第２証明の複数の値は、チャレンジャーにより与えられた複数の値を含むことができる。１つの実施形態によれば、第１および／あるいは第２ステートメントは、１つの信頼できるハードウェア装置上に１つの暗号キーを保持することを含むことができる。
【００１０】
通常、製造中、各ＴＰＭには、ｍ＝ｃｅ  ｍｏｄ  ｎを満足する１つの固有の秘密機密対（ｍ，ｃ）が与えられる。ＴＰＭが１つの秘密機密対を含むことを１つのチャレンジャーに証明するため、ＴＰＭは、１つの底として用いるｈに対する１つの値を得ることができる。例えば、ＴＰＭはｋ＝ｈｍ  ｍｏｄ  Ｐを計算し、ｈ，ｋをチャレンジャーに与えることができる。ＴＰＭは次に、ｍ＝ｃｅ  ｍｏｄ  ｎおよびｋ＝ｈｍ  ｍｏｄ  Ｐのように、ｍおよびｃに関するいかなる追加の情報をも明らかにせず、ｍ，ｃをＴＰＭが保有するという証明を構築できる。複数のチャレンジャーが同一のＴＰＭからの証明を受信したことをこれらチャレンジャーが知ることができないようにＴＰＭは、異なる複数のｈの値を、異なる複数のチャレンジャーに対して用いることができる。
【００１１】
１つの実施形態によれば、名付けられたｈ選択を用いて、証明を構築する計算の大部分をオフラインで、あるいは事前計算段階中に実行できる。例えば、１つの実施形態によれば、１つのＴＰＭが１つの無作為なｈを選択し、ｋ＝ｈｍ  ｍｏｄ  Ｐを計算し、正しい形式を持つｋの証明を構築するようにこのＴＰＭは１つの無作為なｈ方法から開始できる。ＴＰＭが、１つの名付けられたｈ、すなわちｈＮＡＭＥをチャレンジャーから与えられた場合、ＴＰＭは、ｋ＝ｈｍ  ｍｏｄ  Ｐを計算できる。その後、ＴＰＭはｈ、ｋ、ｈＮＡＭＥおよびｋＮＡＭＥに対する複数の値をチャレンジャーに供給できる。１つの実施形態によれば、ＴＰＭは、ｈ，ｋが正しい形式を持つことを示すために証明が既に構築されているという証明を用いることができ、ｈ，ｋがｈＮＡＭＥ，ｋＮＡＭＥと同じ形式を持つという１つの証明を構築できる。別の言い方をすれば、ＴＰＭは、ｍの値を実際には明らかにせず、同じｍに対してｋ＝ｈｍ  ｍｏｄ  ＰおよびｋＮＡＭＥ＝ｈＮＡＭＥｍ  ｍｏｄ  Ｐのようにｍに対する１つの値を終了するという証明をチャレンジャーに供給できる。
【００１２】
１つの実施形態によれば、１つのプロバー装置、例えば、要求用の装置により保持された１つの機密の１つの一方向関数の結果を１つのチャレンジャーに供給し、機密あるいは署名をチャレンジャーに明らかにせず、一方向関数で用いられた機密が１つの装置署名により署名されたことをチャレンジャーに証明する１つの方法、システムおよび装置を提供する。
【００１３】
１つの実施形態によれば、「プロバー」という用語、例えば、プロバー装置とは、権限、正当性および／あるいは身元の幾つかの証明を供給するように要求されたいずれかの人、プラットフォーム、システム、ソフトウェアおよび／あるいは装置を意味することができる。１つの実施形態によれば、１つのプロバーが１つの署名あるいは機密を持っているか、あるいは知っていると１つのチャレンジャーを「証明する」あるいは「説得する」ことは、チャレンジャーに開示された情報および／あるいは証明に基づいて、プロバーが署名あるいは機密を持っていそうであることを意味することができる。署名あるいは機密を１つのチャレンジャーに「明らかにする」あるいは「開示する」ことなしに、これをチャレンジャーに証明することは、チャレンジャーに開示された情報に基づいて、署名あるいは機密が計算的に実行不可能であると決定することを意味することができる。このような複数の証明を、複数の直接証明と称することができる。「直接証明」という用語は、周知の複数の対話証明および／あるいは複数のゼロ知識証明を意味することができる。
【発明を実施するための最良の形態】
【００１４】
以下の説明では、ある専門用語が、１つまたはそれ以上の実施形態の複数のある特徴を説明するのに用いられる。例えば、「プラットフォーム」は、いずれかの種類の装置、コンピュータ、処理ユニットなどを含むことができる。「チャレンジャー」という用語は、要求された情報を１つのリクエスタに開示あるいは供給する前にこのリクエスタから信憑性あるいは権限の幾つかの検証を要求するいずれかの人、プラットフォーム、システム、ソフトウェアおよび／あるいは装置を意味することができる。「装置メーカ」という用語（例えば、装置メーカＣ）は、１つの装置あるいはプラットフォーム（例えば、１つのトラステッドプラットフォームモジュール）を製造あるいは設定するいずれかの人、プラットフォーム、システム、エンティティ、ソフトウェアおよび／あるいは装置を意味することができる。また、「装置メーカ」という用語は、「証明メーカ」という用語と置き換え可能に用いることができる。「ＨＡＳＨ」という用語は、いずれかのハッシング関数あるいはアルゴリズム、あるいはそれと等価なものを意味することができる。更に、様々な複数の実施形態の説明および図解を通して、複数の係数、複数の変数および別の複数の符号は、同一の呼び名または名称により示される。例えば、符号ｈを、この明細書の様々な複数の実施形態の説明および図解を通してｈと称することができる。
【００１５】
以下の説明では、説明の複数の目的のため、多数の具体的な詳細を、本発明の１つの充分な理解を得るように述べる。しかし、当業者が、これら複数の具体的な詳細の幾つかを用いず、ここで行われた開示に基づいて、本発明の複数の実施形態を実践できること明らかである。別の複数の例では、周知の複数の構造体および複数の装置をブロック図の形態で示す。
【００１６】
本発明の複数の実施形態は、以下に説明する様々な複数の工程を含む。複数の工程を複数のハードウェア部品により実行でき、あるいは、複数の機械実行可能命令で実施でき、これら機械実行可能命令は、複数の命令でプログラムされた１つの汎用あるいは特殊用途プロセッサあるいは複数の論理回路に複数の工程を実行させるように用いることができる。あるいはまた、ハードウェアおよびソフトウェアの１つの組み合わせにより複数の工程を実行できる。
【００１７】
１つの機械可読媒体を含むことができる１つのコンピュータプログラム製品として本発明の複数の実施形態を提供することができ、この機械可読媒体には、本発明に従って１つの処理を実行する１つのコンピュータ（あるいは、別の複数の電子装置）をプログラムするのに用いることができる複数の命令が記憶されている。機械可読媒体は、複数のフロッピーディスケット、複数の光ディスク、複数のコンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）および複数の磁気光学ディスク、複数のＲＯＭ、複数のランダムアクセスメモリ（ＲＡＭ）、複数の消去可能プログラマブル読み出し専用メモリ（ＥＰＲＯＭ）、複数の電気的消去可能プログラマブル読み出し専用メモリ（ＥＥＰＲＯＭ（登録商標））、複数の磁気あるいは光カード、フラッシュメモリ、あるいは、複数の電子命令を記憶するのに適する別の種類の複数の媒体／機械可読媒体を含むことができるが、これらに限定されない。更に、１つのコンピュータプログラム製品として本発明をダウンロードすることもでき、この場合、１つの搬送波あるいは別の伝播媒体で実施された複数のデータ信号により１つの通信リンク（例えば、１つのモデムあるいはネットワーク接続）を介してプログラムを１つの遠隔コンピュータ（例えば、１つのサーバ）から１つの要求用のコンピュータ（例えば、１つのクライアント）へ移動できる。従って、１つの搬送波あるいは別の伝播媒体を、本明細書の目的のために１つの機械可読媒体を有するとみなすべきである。
【００１８】
図１は、一実施形態に従って１つの直接証明方式を実施できる１つのシステムを概念的に示す１つのブロック図である。図示のように、プラットフォームＡ１０２（チャレンジャー）のような１つのプラットフォームは、プラットフォームＢ１０４（プロバー）のような別の１つのプラットフォームがそれ自体に関する情報を提供することを要求する。それに応答して、プラットフォームＢ１０４は、要求された情報を提供できる。しかし、プラットフォームＡ１０２は、要求された情報が、装置メーカＣのような１つの特定の装置メーカにより製造された１つの装置から来たものかを検証したいと思うことができる。情報が装置メーカＣから来たものかを検証するため、プラットフォームＡ１０２は、装置メーカＣにより生成された１つの署名の証明を行うのにプラットフォームＢ１０４を誰何できる。プラットフォームＢ１０４が、装置メーカＣにより生成された１つの署名を、実際にはこの署名を明らかにせず、保持するとプラットフォームＡ１０２を説得できる情報を提供することによりプラットフォームＢ１０４はこのような要求に返答できる。
【００１９】
１つの実施形態によれば、プラットフォームＢ１０４は、１つのトラステッドプラットフォームモジュール（ＴＰＭ）１０６を含むことができる。ＴＰＭが、様々な複数の実施形態を実行するのに必要な複数の機能を実行でき、ここで記述した複数のプロトコルの複数の動作に適合できるように１つの装置メーカによりＴＰＭ１０６を製造できる。更に、ここで記述した複数の安全確保機能を維持するようにＴＰＭ１０６を製造できる。例えば、ＴＰＭは、複数の指定値を用いて、それらがプロトコルＩＰ１のような１つのプロトコルに関連付けられたように、複数の指定された機能を実行できる。その上、１つの実施形態によれば、１つの装置の身元を決定できるということをプロトコルで可能にするような複数の特定値を用いて１つの安全性の欠陥を生じさせないようにＴＰＭを製造または設定できる。
【００２０】
図２は、１つの実施形態に従って１つのトラステッドプラットフォームモジュール（ＴＰＭ）を含む１つのプラットフォームを概念的に示す１つのブロック図である。図示のように、１つの装置あるいはプラットフォーム２００（例えば、プラットフォームＢ１０４）は、１つの実施形態によれば、１つのトラステッドプラットフォームモジュール（ＴＰＭ）２０４を含むことができる。更に、装置２００は、ＴＰＭ２０４および、１つの記憶装置あるいは機構２０６と結合された１つの処理ユニット２０２を含むことができる。記憶装置は、ハードウェア情報およびソフトウェア情報のように装置２００に関する情報の記憶を可能にできる。１つの実施形態によれば、プラットフォームあるいは装置２００を、１つのコンピュータあるいは携帯装置のような１つの電子装置とすることができる。
【００２１】
図３は、本発明の複数の実施形態を実施できる１つのコンピュータシステムを概念的に示す１つのブロック図である。コンピュータシステム３００は、情報を伝達する１つのバスあるいはその他の通信手段３０２と、情報を処理するため、バス３０２と結合されたプロセッサ３１０のような１つの処理手段とを含む。コンピュータシステム３００は、プロセッサ３１０により実行されるべき情報および複数の命令を記憶するため、バス３０２に結合された（メインメモリと称する）１つのランダムアクセスメモリ（ＲＡＭ）あるいはその他の動的記憶装置３０４を更に含む。プロセッサ３１０による複数の命令の実行中、複数の一時変数あるいはその他の中間情報を記憶するためにも、メインメモリ３０４を用いることができる。コンピュータシステム３００は、プロセッサ３１０に対する静的情報および複数の命令を記憶するため、バス３０２に結合された１つの読み出し専用メモリ（ＲＯＭ）および／あるいはその他の静的記憶装置３０６をも含む。
【００２２】
情報および複数の命令を記憶するため、１つの磁気ディスクあるいは光ディスク、および対応のドライブのような１つのデータ記憶装置３０８をもコンピュータシステム３００に結合できる。１つのエンドユーザに情報を表示するため、１つの陰極線管（ＣＲＴ）あるいは液晶ディスプレイ（ＬＣＤ）のような１つの表示装置３１４にもバス３０２を介してコンピュータシステム３００を結合できる。典型的に、情報および／あるいは複数の命令選択肢をプロセッサ３１０へ伝達するため、英数字および別の複数のキーを含む１つの英数字入力装置３１６をバス３０２に結合できる。もう１つの種類のユーザ入力装置は、方向情報および複数の命令選択肢をプロセッサ３１０へ伝達し、表示装置３１４上のカーソル動作を制御するため、１つのマウス、１つのトラックボールあるいは複数のカーソル方向キーのようなカーソル制御装置３１８である。
【００２３】
１つの通信装置３２０もバス３０２に結合されている。通信装置３２０は、例えば、１つのローカルあるいは広域ネットワークを支援するために１つの通信リンクを形成する複数の目的のため、イーサネット（登録商標）、トークンリング（登録商標）あるいは別の複数の種類の物理的付属品に結合するのに用いられるような１つのモデム、１つのネットワークインターフェースカードあるいは別の既知の複数のインターフェース装置を含むことができる。このように、例えば、１つの会社のイントラネットおよび／あるいはインターネットのような１つの従来のネットワークインフラを介して多数のクライアントおよび／あるいはサーバにコンピュータシステム３００を結合できる。
【００２４】
当然のことながら、上記で説明した例よりも少なく、あるいは多く具え付けられた１つのコンピュータシステムは、ある複数の実施形態に対して望ましい。従って、コンピュータシステム３００の設定は、複数の価格の制限、複数の性能要件、複数の技術上の改善および／あるいは別の複数の状況のような多数の要素に応じて実施形態ごとに変更する。
【００２５】
ここで記述する複数の工程を、他の複数の実施形態では、プロセッサ３１０のような１つのプログラムされたプロセッサの制御下で実行できるが、これら複数の工程を、例えば、複数のフィールドプログラマブルゲートアレイ（ＦＰＧＡ）、トランジスタトランジスタロジック（ＴＴＬ）論理回路あるいは複数の特定用途向け集積回路（ＡＳＩＣ）のような、いずれかのプログラム可能な、あるいはハードコードされた論理回路により完全に、あるいは部分的に実施できることに留意すべきである。その上、複数のプログラムされた汎用コンピュータ部品および／あるいは複数のカスタムハードウェア部品のいずれかの組み合わせにより本発明の方法を実行できる。従って、列挙した複数の工程を複数のハードウェア部品の１つの特定の組み合わせにより実行する１つの特定の実施形態に本発明を限定するように、ここで開示したものを解釈すべきでない。
【００２６】
図４は、１つの実施形態に従って、製造中、１つのトラステッドプラットフォームモジュール（ＴＰＭ）をセットアップする１つの処理を概念的に示す１つの流れ図である。１つの実施形態によれば、１つの以上の種類の複数のプラットフォームあるいは複数の装置を含むように１つの装置メーカにより１つのプラットフォームクラスを規定できる。例えば、１つのプラットフォームクラスとは、同一のセキュリティ関連情報を有するあらゆる複数のプラットフォームの１つのセットを指すことができる。各プラットフォームは、プラットフォームに関するセキュリティ関連情報の１つのセットを有することができる。このセキュリティ関連情報は、トラステッドコンピューティングプラットフォーム連合（ＴＣＰＡ）モデルのＴＰＭの固有の承認キー（ＥＫ）および／あるいは認証識別キー（ＡＩＫ）証明書に含めることができる情報を含むことができる。セキュリティ関連情報は、１つの特定のプラットフォームあるいは装置のメーカおよび型番をも含むことができる。各プラットフォームクラスに対して、１つの装置メーカは、メーカがこのプラットフォームクラスに用いることができる複数の暗号パラメータの１つのセットを生成できる。更に、装置メーカは、この装置メーカが製造する複数の装置（例えば、装置２００）に関する複数の機密に署名するのに装置メーカが用いることができる１つの署名キーを生成できる。
【００２７】
１つの実施形態によれば、１つの装置メーカは、（リベスト（Ｒｉｖｅｓｔ）、シャミア（Ｓｈａｍｉｒ）、アドルマン（Ａｄｅｌｍａｎ））ＲＳＡアルゴリズム（ロナルド・リベスト（Ｒｏｎａｌｄ‐Ｒｉｖｅｓｔ）、アディ・シャミア（Ａｄｉ‐Ｓｈａｍｉｒ）およびレオナルド・アドルマン（Ｌｅｏｎａｒｄ‐Ａｄｅｌｍａｎ）により規定された１つの公開キー暗号システム）を用いて、公開モジュラスｎ、公開指数ｅおよび秘密指数ｄを有する１つのＲＳＡ公開，秘密鍵ペアを処理ブロック４０２で生成できる。ブルース・シュナイアー（Ｂｒｕｃｅ‐Ｓｃｈｎｅｉｅｒ）著，「アプライドクリプトグラフィー（ＡｐｐｌｉｅｄＣｒｙｐｔｏｇｒａｐｈｙ）」，第２版，ジョン・ウィリー＆サンズ（Ｊｏｈｎ‐Ｗｉｌｅｙ＆Ｓｏｎｓ），国際標準図書番号０４７１１１７０９９，１９９５年１０月１８日に記述されたような周知の複数の方法を用いて、公開モジュラスｎ、公開指数ｅおよび秘密指数ｄを有するＲＳＡ公開，秘密鍵ペアを生成できる。
【００２８】
１つの実施形態によれば、係数ｎを計算的に実行不可能とすることができるように充分大きくモジュラスｎを選択できる。装置メーカは、ゼロ（０）とｎとの間の１つの整数とすることができる１つのパラメータＺを処理ブロック４０４で指定できる。装置メーカは、ゼロ（０）とｎとの間の１つの整数とすることができる１つのセキュリティパラメータＷをも処理ブロック４０６で指定できる。しかし、小さ過ぎる、あるいは大き過ぎるＷの選択は、１つの安全確保の失敗をもたらすおそれがある。１つの実施形態によれば、２１６０とｎ／２１６０との間でＷを選択できる。従って、約２１６０とするＷの選択を、１つの合理的な選択と考えることができる。
【００２９】
１つの実施形態によれば、装置メーカは、Ｐ＝ｕ×ｎ＋１のように１つの素数Ｐを処理ブロック４０８で計算できる。ｕ×ｎ＋１が１つの素数であるということ以外、ｕの値に関して、重要なことは何もない。例えば、最も小さいｕの値を用いることができる。１つの実施形態によれば、複数の離散対数ｍｏｄ  Ｐの計算を計算的に実行不可能とすることができるようにＰを充分に大きくできる。
【００３０】
１つの実施形態によれば、装置メーカは、複数の暗号パラメータｅ，ｎ，ｕ，Ｐ，Ｚ，Ｗ、プラットフォームクラスのセキュリティ関連情報、および装置メーカの名称を含むことができる１つのプラットフォームクラス証明書（ＰＣＣ）を処理ブロック４１０で生成できる。１つの実施形態によれば、複数のパラメータｕおよびＰの双方を含めなくてもよい。その理由は、ｎの所定値、および上述の複数のパラメータの１つを用いることにより、一方の値（すなわち、Ｐあるいはｕ）をＰ＝ｕ×ｎ＋１で計算できるためである。
【００３１】
１つの実施形態によれば、装置メーカは、様々な複数のプラットフォームクラスに対して複数のパラメータｅ，ｎ，ｕ，Ｐ，Ｗの同じ値を用いることができ、様々な複数のプラットフォームに対してＺの値を変更できる。１つの実施形態によれば、少なくとも４Ｗだけ異なるＺの複数の値を選択できる。ＰＣＣを生成した後、１つの実施形態によれば、装置メーカは、１つの特定のプラットフォームクラスに属し、この装置メーカが製造する複数の装置へＰＣＣを処理ブロック４１２で供給あるいは割り当てることができる。
【００３２】
１つの実施形態によれば、図１のプラットフォームＡのような１つのプロバー装置あるいはプラットフォームから１つのチャレンジャーへのＰＣＣの配信を、１つ以上の実施形態から逸脱することなく、多くの方法で達成できる。例えば、標準であると認められた１つ以上の方法に従って１つの特定の装置メーカによりＰＣＣが生成されたとチャレンジャーを説得できるといった１つの方法でＰＣＣをチャレンジャーへ配信できる。標準であると認められた複数の方法の幾つかは、複数のパラメータをチャレンジャーへ直接に配信すること、あるいは、１つの証明機関により署名されたＰＣＣを有することによりタスクを実行することを含むことができる。後者の場合を用いて、１つの実施形態によれば、証明機関の公開キーをチャレンジャーへ配信でき、署名されたプラットフォームクラス証明書をプラットフォームクラス内の各装置あるいはプラットフォーム（例えば、プロバー装置）へ与えることができる。次に、装置は、署名されたプラットフォームクラス証明書をチャレンジャーへ与えることができる。
【００３３】
図５は、１つの実施形態に従って、製造された各プラットフォームに実行するセットアップの１つの処理を概念的に示す１つの流れ図である。１つの実施形態によれば、１つのプロバー装置（装置）は、０＜ｍ−Ｚ＜Ｗのように１つの無作為な数ｍを処理ブロック５０２で選択できる。決定ブロック５０４では、無作為な数ｍを１つの署名のために証明メーカへ送信する前に装置が無作為な数ｍを見えなくしたかどうかを決定する。１つの実施形態によれば、無作為な数ｍを１つの署名のために証明メーカへ送信する前に装置が無作為な数ｍを見えなくした場合、装置は、１とｎ−１との間の１つの無作為な数Ｂを処理ブロック５０６で選択でき、Ａ＝Ｂｅ  ｍｏｄ  ｎを処理ブロック５０８で計算できる。装置は、ｍ'＝ｍ×Ａ  ｍｏｄ  ｎを処理ブロック５１０で計算できる。装置がｍを見えなくしなかった場合、装置は、ｍ'＝ｍおよびＡ＝１を処理ブロック５１２で用いることができる。
【００３４】
１つの実施形態によれば、装置は、処理ブロック５１４でｍ'を証明メーカへ送信できる。証明メーカは、ｃ'＝ｍ'ｄ  ｍｏｄ  ｎを処理ブロック５１６で計算でき、処理ブロック５１８でｃ'を装置に与えることができる。装置は、ｃ＝ｍｄ  ｍｏｄ  ｎという意味を含むｃ＝ｃ'×Ｂ−１  ｍｏｄ  ｎを処理５２０で計算できる。次に、ｃおよびｍに対する複数の数を処理ブロック５２２でトラステッドプラットフォームモジュール（ＴＰＭ）内に記憶できる。ｃおよびｍの対を、装置メーカの１つの署名と称することができる。
【００３５】
図６は、１つの実施形態による１つの事前計算処理を概念的に示す１つの流れ図である。１つの実施形態によれば、図６に示すような１つの事前計算処理から生じた事前計算を１つのトラステッドプラットフォームモジュール（ＴＰＭ）は後になって、１つの認証識別キー（ＡＩＫ）がＴＰＭにより生成されたことを１つのチャレンジャーに証明するのに用いることができる。まず、１つのプロバープラットフォーム（プラットフォーム）は、１つのＡＩＫに対する事前計算を処理ブロック６０２で開始できる。１つの実施形態によれば、ＡＩＫを１つのＲＡＳ（リベスト（Ｒｉｖｅｓｔ）、シャミア（Ｓｈａｍｉｒ）、アドルマン（Ａｄｅｌｍａｎ））公開／秘密鍵ペアとすることができる。１つのプロバー装置（装置）、例えば、図１の装置Ｂ１０４内のＴＰＭのような１つの信頼できるハードウェア装置は、１つのＡＩＫ秘密‐公開鍵ペアを処理ブロック６０４で生成できる。秘密‐公開鍵ペアは、１つの公開キーおよび１つの秘密キーを含むことができる。１つの実施形態によれば、もう少し早い時期にＡＩＫを生成させることができる。装置は、１つの値ｈを処理ブロック６０６で生成あるいは発生できる。１つの実施形態によれば、値ｈを、属性ｈｎ＝１  ｍｏｄ  Ｐを有する１つの無作為あるいは疑似乱数で発生させた値とすることができる。例えば、装置は、１とｎ−１との間の１つの無作為な数ｊを選択し、ｈ＝ｊｕ  ｍｏｄ  Ｐを計算できる。その上、値ｈをＡＩＫに固有のものとすることができる。次に、装置は、１つの値ｋ＝ｈｍ  ｍｏｄ  Ｐを計算できる。
【００３６】
１つの実施形態によれば、装置は、ｈおよびｋに特有な１つの対話証明に対する事前計算を実行できる。対話証明は、ｍ＝ｃｅ  ｍｏｄ  ｎ、ｋ＝ｈｍ  ｍｏｄ  Ｐであり、ｍはＺとＺ＝Ｗとの間にあるような複数の値ｃおよびｍの１つの対を知っているということを示すことができる。１つの実施形態によれば、この対話証明を２つの部分に計算できる。装置は、ｍ＝ｃｅ  ｍｏｄ  ｎおよびｋ＝ｈｍ  ｍｏｄ  Ｐであるような複数の値ｃおよびｍの１つの対を知っているということを示す１つの第１対話証明（ＩＰ１）に対する事前計算を処理ブロック６０８で実行できる。また、装置は、ｈを底とするｋの離散対数がＺとＺ＋Ｗとの間にあるということを示す１つの第２対話証明（ＩＰ２）に対する事前計算を処理ブロック６１０で実行できる。１つの実施形態によれば、２つの対話証明ＩＰ１，ＩＰ２は、ｍ＝ｃｅ  ｍｏｄ  ｎ、ｋ＝ｈｍ  ｍｏｄ  Ｐであり、ｍはＺとＺ＋Ｗとの間にあるような複数の値ｃおよびｍの１つの対をＴＰＭが知っているという１つの対話証明を一緒に形成できる。
【００３７】
図７は、１つの実施形態による１つの第１対話証明の事前計算を概念的に示す１つの流れ図である。プロバー装置（装置）のＴＰＭがｃあるいはｍを明らかにせず、ｍ＝ｃｅ  ｍｏｄ  ｎおよびｋ＝ｈｍ  ｍｏｄ  Ｐであるような複数の値ｃおよびｍを１つのトラステッドプラットフォームモジュール（ＴＰＭ）が知っていると証明するのに図６に関するような第１対話証明（ＩＰ１）を用いることができる。まず、図示のように、１つのプロバープラットフォーム（プラットフォーム）は１つの保証パラメータ（ＡＰ）を処理ブロック７０２で選択できる。１つの実施形態によれば、ＡＰの値を１つの一定数、例えば、六十（６０）とすることができる。別の１つの実施形態によれば、プラットフォームは、ＡＰの値を選択できる。１つの実施形態によれば、プラットフォームはＡＰの１つの一定値を選択でき、その一方で、チャレンジャーは、ＡＰの１つの異なる値を選択できる。
【００３８】
プラットフォームが選択した値よりも小さいＡＰの１つの値をチャレンジャーが選択した場合、１つの実施形態によれば、ＴＰＭは、複数のラウンドの最初のＡＰだけを単に用い、複数のその他を無視できる。その一方で、プラットフォームが選択した値よりも大きいＡＰの１つの値をチャレンジャーが選択した場合、ＴＰＭは、２つの異なる事前計算を用い、一方から複数のラウンドのすべてを用い、他方から複数のラウンドの幾つかを用いることができる。次に、ＴＰＭは、図１２に示したような証明を２度用いて、双方の複数の事前計算および、名付けられたｈに対して複数の離散対数が同じであることを示すことができる。
【００３９】
１つの実施形態によれば、ＴＰＭは、処理ブロック７０４で１つの値ｘ  ｍｏｄ  ｎを無作為に選択できる。ＴＰＭは、ｘ＝ｃ×ｙ  ｍｏｄ  ｎのように１つの値ｙを処理ブロック７０６で計算できる。また、ＴＰＭは、ｖ＝ｈ＾（ｘｅ  ｍｏｄ  ｎ）ｍｏｄ  Ｐのように１つの値ｖを処理ブロック７０８で計算できる。ＴＰＭは、処理ブロック７１０で複数の値ｖ，ｙ，ｘ，ｙｅ，ｘｅを暗号化および署名し、暗号化および署名した複数の値をプラットフォームに記憶できる。別の１つの実施形態によれば、ＴＰＭは、複数の値ｖ，ｙ，ｘ，ｙｅ，ｘｅの幾つかだけを記憶し、複数の残りの値を後で再計算できる。１つの実施形態によれば、署名の処理を１つのデジタル署名とすることができる。別の１つの実施形態によれば、署名の処理を、セキュアハッシュアルゴリズム（ＳＨＡ‐１）のような１つの暗号ハッシュ関数で複数の値をハッシュし、次に、複数の値およびハッシュを暗号化することにしてもよい。１つの実施形態によれば、処理７１２で検証方式あるいは動作をＡＰ回実行できる。決定ブロック７１４では、検証方式をＡＰ回実行したかを決定する。動作をＡＰ回実行したならば、動作が処理ブロック７１６で終了し、そうでなければ、動作は処理ブロック７０４で継続する。
【００４０】
まず、プロバープラットフォーム（プラットフォーム）は１つの保証パラメータ（ＡＰ）を処理ブロック８０２で選択できる。図７に示すようなＩＰ１の事前計算の場合のように、１つの実施形態によれば、ＡＰの値を１つの一定数、例えば、六十（６０）とすることができる。別の１つの実施形態によれば、プラットフォームは、ＡＰの値を選択できる。１つの実施形態によれば、プラットフォームはＡＰの１つの一定値を選択でき、その一方で、チャレンジャーは、ＡＰの１つの異なる値を選択できる。
【００４１】
プラットフォームが選択した値よりも小さいＡＰの１つの値をチャレンジャーが選択した場合、１つの実施形態によれば、ＴＰＭは、複数のラウンドの最初のＡＰだけを単に用い、複数のその他を無視できる。その一方で、プラットフォームが選択した値よりも大きいＡＰの１つの値をチャレンジャーが選択した場合、ＴＰＭは、２つの異なる事前計算を用い、一方から複数のラウンドのすべてを用い、他方から複数のラウンドの幾つかを用いることができる。次に、ＴＰＭは、例えば図１２からの証明を２度用いて、双方の複数の事前計算および、名付けられたｈに対して複数の離散対数が同じであることを示すことができる。
【００４２】
１つの実施形態によれば、処理ブロック８０４では、プロバー装置（装置）のＴＰＭは、０＜ｔ＜Ｗ  ７０２のように１つの数ｔを無作為に選択できる。処理ブロック８０６では、ＴＰＭは、ｇ０＝ｈｔ  ｍｏｄ  Ｐを計算できる。また、ＴＰＭは、ｇ１＝ｇ０×ｈ（−Ｗ）  ｍｏｄ  Ｐを処理ブロック８０８で計算できる。処理ブロック８１０では、ＴＰＭは、２つの無作為な１６０ビット値Ｒ０，Ｒ１を生成できる。次に、ＴＰＭは、Ｈ０＝ＨＡＳＨ（ＡＩＫ公開キー，ｇ０，Ｒ０）およびＨ１＝ＨＡＳＨ（ＡＩＫ公開キー，ｇ１，Ｒ１）を処理ブロック８１２で計算できる。処理ブロック８１４では、ＴＰＭは、複数の値ｇ０，ｇ１，Ｒ０，Ｒ１，Ｈ０，Ｈ１を暗号化および署名し、これら複数の値をプラットフォームに記憶する。別の１つの実施形態によれば、値ｇ０，ｇ１，Ｒ０，Ｒ１，Ｈ０，Ｈ１の幾つかを記憶できる。
【００４３】
１つの実施形態によれば、処理ブロック８１６で上記の複数の手続きをＡＰ回繰り返すことができる。決定ブロック８１８で上記の複数の手続きをＡＰ回実行したならば、動作を処理ブロック８２０で終了する。複数の手続きをＡＰ回実行していなければ、動作は処理ブロック８０４で継続できる。１つの実施形態によれば、図７で示したようなＩＰ１、および／あるいは、図８に示したように得たＩＰ２に対する複数の手続きの繰り返しは、例えば、１つの認められていない、あるいは不正なプロバーが、適切な証明を１つのチャレンジャーに供給するのに成功する可能性を少なくすることができる。１つの証明（例えば、ＩＰ１あるいはＩＰ２）をＡＰ回繰り返すことは、２ＡＰに１つの確率である各ラウンドでの成功を１つのプロバーに強いることができる。
【００４４】
１つの実施形態によれば、プラットフォームは、ＡＩＫの複数のセットを有し、ＩＰ１およびＩＰ２の複数の事前計算を有するように選択できる。１つのチャレンジャーが１つのＡＩＫに対する証明を要求するまで、プラットフォームはこれら複数のセットを記憶でき、要求に応答して、プラットフォームは、事前計算された複数のセットの１つを用いることができる。
【００４５】
図９は、１つの実施形態による１つのオンライン計算処理を概念的に示す１つの流れ図である。１つの実施形態によれば、処理ブロック９０２では、プロバープラットフォーム（プラットフォーム）は、このプラットフォームが前もって記憶した認証識別キー（ＡＩＫ）の複数のセットと事前計算の第１対話証明および第２対話証明（ＩＰ１およびＩＰ２）とのうちの１つを用いることができ、１つのトラステッドプラットフォームモジュール（ＴＰＭ）はＡＩＫ公開キー（あるいは、ＡＩＫ公開キーのＨＡＳＨだけ）を１つのチャレンジャーへ送信できる。チャレンジャーは、チャレンジャー保証パラメータ（ＣＡＰ）としても知られた１つの保証パラメータを処理ブロック９０４で選択できる。処理ブロック９０６では、チャレンジャーは、複数のランダムビット（ＲＡＮＤ）の１つのセットを選択できる。チャレンジャーは、例えば、三百二十（３２０）のランダムビットを選択することによりＲＡＮＤを選択できる。処理ブロック９０８では、チャレンジャーは、コミットメント（Ｃｏｍｍｉｔｍｅｎｔ）＝（ＨＡＳＨ（公開ＡＩＫキー）‖ＲＡＮＤ）を計算でき、コミットメントのＨＡＳＨをＴＰＭへ送信でき、これをＴＰＭが記憶できる。１つの実施形態によれば、ＨＡＳＨを、ＳＨＡ‐１（セキュアハッシュアルゴリズム）のような１つの暗号ハッシュ関数とすることができる。
【００４６】
処理ブロック９１０では、チャレンジャーの名称をＴＰＭへ送信でき、これを用いてＴＰＭはｈＮＡＭＥを形成できる。値ｈＮＡＭＥは、属性ｈＮＡＭＥｎ＝１  ｍｏｄ  Ｐを有することができる。例えば、１つのプロバー装置（装置）は、チャレンジャーの名称をハッシュして、１とｎ−１との間の１つの数ｊを形成し、ｈＮＡＭＥ＝ｊｕ  ｍｏｄ  Ｐを計算できる。１つの実施形態によれば、１つのｈＮＡＭＥ値を計算するため、幾つかの値、例えば、十（１０）個のｉ＝１，２，３...，１０に対して、Ｈｉ＝ＨＡＳＨ（ｉ，チャレンジャーの名称）のようにＨｉを計算し、その後、ｊ＝Ｈ１‖Ｈ２‖Ｈ３...‖Ｈ１０の連結とさせることができる。装置は次に、ｈＮＡＭＥ＝ｊｕ  ｍｏｄ  Ｐを計算でき、ここで、以前に規定したようにｕ＝（Ｐ−１）／ｎである。また、装置は、ｋＮＡＭＥ＝ｈＮＡＭＥｍ  ｍｏｄ  Ｐのように１つのｋＮＡＭＥ値を計算できる。ＴＰＭは次に、ｋＮＡＭＥ＝ｈＮＡＭＥｍ  ｍｏｄ  Ｐを処理ブロック９１２で計算できる。
【００４７】
処理ブロック９１４では、ＴＰＭは、図１２に示すように、底ｈに対するｋ  ｍｏｄ  Ｐの離散対数が、底ｈＮＡＭＥに対するｋＮＡＭＥ  ｍｏｄ  Ｐの離散対数と同じであるという１つの証明を生成できる。ＴＰＭは、ＩＰ１の複数の第１ＣＡＰラウンドのハッシュとＩＰ２の複数の第１ＣＡＰラウンドのハッシュとをチャレンジャーへ処理ブロック９１６で送信できる。また、ＴＰＭは、底ｈに対するｋ  ｍｏｄ  Ｐの離散対数が、底ｈＮＡＭＥに対するｋＮＡＭＥ  ｍｏｄ  Ｐの離散対数と同じであるという証明をチャレンジャーへ処理ブロック９１８で送信できる。処理ブロック９２０では、チャレンジャーはＲＡＮＤの値をＴＰＭへ送信できる。ＴＰＭは、ＨＡＳＨ（公開ＡＩＫキー）‖ＲＡＮＤ）の値を計算し、これが、ブロック９０８でチャレンジャーから送信された値と同じ値を与えたかを検証することによりＲＡＮＤの値を検証できる。ＴＰＭは、ＣＨＯＩＣＥＳ＝ＨＡＳＨ（ＲＡＮＤ‖ＩＰ１の複数の第１ＣＡＰラウンドのＨＡＳＨ‖ＩＰ２の複数の第１ＣＡＰラウンドのＨＡＳＨ）の値を計算できる。ＴＰＭは、ＣＨＯＩＣＥＳの第１の２×ＣＡＰビットを、チャレンジャーに対する複数の選択肢として用いて、ＩＰ１およびＩＰ２の複数のラウンドを開始する際に明らかにする情報を処理ブロック９２２で決定できる。１つの実施形態によれば、チャレンジャーはｈＮＡＭＥの使用を必要としなくてもよく、事前計算された複数の値ｈ，ｋに対する第１対話証明（ＩＰ１）および第２対話証明（ＩＰ２）だけに基づく証明を受諾できる。
【００４８】
１つの実施形態によれば、プラットフォームにより選択された保証パラメータ（ＡＰ）と、チャレンジャーにより選択されたＣＡＰとを同じ一定値、例えば、六十（６０）とするように要求できる。別の１つの実施形態によれば、プラットフォームはＡＰの１つの一定値を選択でき、その一方で、チャレンジャーはＣＡＰに対して、１つの異なる値を選択できる。１つの実施形態によれば、プラットフォームが選択したＡＰの値よりも小さいＣＡＰの１つの値をチャレンジャーが選択した場合、ＴＰＭは、複数のラウンドの最初のＣＡＰだけを単に用い、複数のその他を無視できる。その一方で、プラットフォームが選択したＡＰの値よりも大きいＣＡＰの１つの値をチャレンジャーが選択した場合、ＴＰＭは、２つの異なる事前計算を用い、一方から複数のラウンドのすべてを用い、他方から複数のラウンドの幾つかを用いることができる。次に、ＴＰＭは、図１２に示したような証明を２度用いて、双方の複数の事前計算およびｈＮＡＭＥ，ｋＮＡＭＥに対して複数の離散対数が同じであることを示すことができる。
【００４９】
図１０は、１つの実施形態による１つの第１対話証明に対する複数のラウンドの開始を概念的に示す１つの流れ図である。１つのトラステッドプラットフォームモジュール（ＴＰＭ）が、ｍ＝ｃｅ  ｍｏｄ  ｎおよびｋ＝ｈｍ  ｍｏｄ  Ｐのように、ｃあるいはｍを明らかにするプロバー装置（装置）のＴＰＭを用いずに複数の値ｃ，ｍを知っているということを証明するのに第１対話証明（ＩＰ１）を用いることができる。まず、１つの実施形態によれば、処理ブロック１００２では、チャレンジャーは、１つのチャレンジャー保証パラメータ（ＣＡＰ）を１つのプロバープラットフォーム（プラットフォーム）へ供給する。処理ブロック１００４では、チャレンジャーは、ｘあるいはｙのどちらかを受信する１つの選択を行うことができる。チャレンジャーが選択肢ｘを選択したならば、ＴＰＭは、処理ブロック１００６でｘをチャレンジャーへ送信できる。ｘの値を受信した後、チャレンジャーは、ｖ＝ｈ＾（ｘｅ  ｍｏｄ  ｎ）ｍｏｄ  Ｐを処理ブロック１００８で検証できる。
【００５０】
１つの実施形態によれば、チャレンジャーが選択肢ｙを受信することを選択すれば、ＴＰＭは、処理ブロック１０１０でｙをチャレンジャーへ送信できる。チャレンジャーは、ｖ＝ｋ＾（ｙｅ  ｍｏｄ  ｎ）ｍｏｄ  Ｐを処理ブロック１０１２で検証できる。１つの実施形態によれば、この検証方式あるいは動作を処理ブロック１０１４でＣＡＰ回実行できる。動作をＣＡＰ回実行したならば、動作を処理ブロック１０１８で終了させることができる。動作をＣＡＰ回実行していなければ、動作が処理ブロック１００４で継続できる。
【００５１】
１つの実施形態によれば、ＴＰＭは、複数の処理ブロック１００６，１０１０で記述した複数の応答をプラットフォームへ送信でき、ＴＰＭがこれら複数の応答の複数のＣＡＰを供給するまで、プラットフォームは複数の応答のすべてを保存できる。プラットフォームは次に、複数の応答のすべてをチャレンジャーへ送信できる。次に、チャレンジャーは、複数のブロック１００８，１０１２で記述した複数の検証を実行できる。
【００５２】
図１１は、１つの実施形態による１つの第２対話証明に対する複数のラウンドの開始を概念的に示す１つの流れ図である。１つのトラステッドプラットフォームモジュール（ＴＰＭ）が、Ｚ−Ｗ＜ｍ＜Ｚ＋２×Ｗおよびｋ＝ｈｍ  ｍｏｄ  Ｐのようにｍを明らかにせず、ＴＰＭが１つの値ｍを知っているということを証明するのに第２対話証明（ＩＰ２）を用いることができる。チャレンジャーは、１つの保証パラメータ、すなわち、チャレンジャー保証パラメータ（ＣＡＰ）を処理ブロック１１０２で発生できる。処理ブロック１１０４では、チャレンジャーは、２つの選択肢、例えば、選択肢０あるいは１のどちらかから選択できる。
【００５３】
１つの実施形態によれば、チャレンジャーが選択肢０を選択したならば、ＴＰＭは、処理ブロック１１０６で、複数の値ｔ，Ｒ０，Ｒ１と、Ｈ０およびＨ１の順序付けとをチャレンジャーへ送信できる。チャレンジャーは、ｇ０＝ｈｔ  ｍｏｄ  Ｐおよびｇ１＝ｈ（ｔ−Ｗ）  ｍｏｄ  Ｐを処理ブロック１１０８で計算できる。チャレンジャーは次に、０＜ｔ＜Ｗを処理ブロック１１１０で検査できる。チャレンジャーは、Ｈ０＝ＨＡＳＨ（ＡＩＫ公開キー，ｇ０，Ｒ０）およびＨ１＝ＨＡＳＨ（ＡＩＫ公開キー，ｇ１，Ｒ１）を処理ブロック１１１２で検査できる。１つの実施形態によれば、動作あるいは複数の手続きを処理ブロック１１１４でＣＡＰ回実行する。決定ブロック１１１６で動作がＣＡＰ回実行されていたならば、動作を処理ブロック１１１８で終了させることができる。動作をＣＡＰ回実行していなければ、動作が処理ブロック１１０４で継続できる。
【００５４】
チャレンジャーが選択肢１を選択したならば、ｍ＋ｔ＞Ｚ＋Ｗであるかを決定ブロック１１２０で決定する。ｍ＋ｔ＞Ｚ＋Ｗでなければ、すなわち、ｍ＋ｔが、ＺとＺ＋Ｗとの間の区間にあれば、ＴＰＭは、ｍ'＝ｍ＋ｔ、ｇ０およびＲ０を処理ブロック１１２２でチャレンジャーへ送信でき、Ｈ０を用いることをチャレンジャーに知らせることができる。チャレンジャーは、Ｈ０＝ＨＡＳＨ（ＡＩＫ公開キー，ｇ０，Ｒ０）であること、および、Ｚ＜ｍ'＜Ｚ＋Ｗであること、およびｇ０×ｋ＝ｈｍ'  ｍｏｄ  Ｐであることを処理ブロック１１２４で検査できる。１つの実施形態によれば、動作あるいは複数の手続きを処理ブロック１１１４でＣＡＰ回実行する。決定ブロック１１１６で動作がＣＡＰ回実行されていたならば、動作を処理ブロック１１１８で終了させることができる。動作をＣＡＰ回実行していなければ、動作が処理ブロック１１０４で継続できる。
【００５５】
ｍ＋ｔ＞Ｚ＋Ｗであれば、ＴＰＭは、ｍ'＝ｍ−Ｗ＋ｔ、ｇ１およびＲ１を処理ブロック１１２６でチャレンジャーへ送信でき、Ｈ１を用いることをチャレンジャーに知らせることができる。チャレンジャーは、Ｈ１＝ＨＡＳＨ（ＡＩＫ公開キー，ｇ１，Ｒ１）であること、および、Ｚ＜ｍ'＜Ｚ＋Ｗであること、およびｇ１×ｋ＝ｈｍ'  ｍｏｄ  Ｐであることを処理ブロック１１２８で検査できる。１つの実施形態によれば、動作あるいは複数の手続きを処理ブロック１１１４でＣＡＰ回実行する。決定ブロック１１１６で動作がＣＡＰ回実行されていたならば、動作を処理ブロック１１１８で終了させることができる。動作をＣＡＰ回実行していなければ、動作が処理ブロック１１０４で継続できる。
【００５６】
１つの実施形態によれば、１つの第１対話証明（ＩＰ１）および／あるいは１つの第２対話証明（ＩＰ２）に対する手続きの繰り返しは、１つの認められていない、あるいは不正なプロバーが、適切な証明を１つのチャレンジャーに供給するのに成功する可能性を少なくすることができる。すなわち、１つの手続き（例えば、ＩＰ１あるいはＩＰ２）の複数のラウンドの数をＣＡＰ回繰り返すことは、２ＣＡＰに１つの確率である各ラウンドでの成功を１つのプロバーに強いることができる。１つの実施形態によれば、プロトコルの複数のラウンドは、プロバー装置のＴＰＭとチャレンジャーとの間の複数の交信の幾つかのラウンドからほんの少数のラウンドへ変更できる。
【００５７】
１つの実施形態によれば、ＴＰＭは、複数のブロック１１０６，１１２２，１１２６で記述した複数の応答をプラットフォームへ送信でき、ＴＰＭがこれら複数の応答の複数のＣＡＰを供給するまで、プラットフォームは複数の応答のすべてを保存できる。プラットフォームは次に、複数の応答のすべてをチャレンジャーへ同時に送信できる。次に、チャレンジャーは、複数のブロック１１０８，１１２４，１１２８で記述した複数の検証を実行できる。
【００５８】
１つの実施形態によれば、ＴＰＭが、ＩＰ１およびＩＰ２の双方に対する複数の応答のすべてを供給するまで、プラットフォームは、ＩＰ１およびＩＰ２の双方からの複数のＴＰＭ応答のすべてを保存でき、次に、複数の応答のすべてを双方の複数のプロトコルからチャレンジャーへ同時に送信できる。
【００５９】
複数の選択をチャレンジャーにより行うことができる方法に対して幾つかの実行可能な選択肢がある。１つの実施形態によれば、ＴＰＭが、事前計算処理中にＩＰ１およびＩＰ２で生成された複数の値の幾つかのハッシュを形成し、このハッシュからの出力を用いてチャレンジャーの複数の選択肢を決定する複数の選択肢を決定できる。
【００６０】
図１２は、１つの実施形態に従って、２つの離散対数が同じであるという１つの証明の生成を概念的に示す１つの流れ図である。処理ブロック１２０２では、トラステッドプラットフォームモジュール（ＴＰＭ）は、区間［０，Ｂ］内の値ｔを無作為に選択する。ＴＰＭは次に、ｊ＝ｈｔ  ｍｏｄ  ＰおよびｊＮＡＭＥ＝ｈＮＡＭＥｔ  ｍｏｄ  Ｐを処理ブロック１２０４で無作為に計算できる。次に、ＴＰＭは、ｒ＝ＨＡＳＨ（ｈ，ｋ，ｈＮＡＭＥ，ｋＮＡＭＥ，ｊ，ｊＮＡＭＥ）を処理ブロック１２０６で無作為に計算できる。処理ブロック１２０８では、ＴＰＭは、ｓ＝Ｚ＋ｔ−ｍ×ｒを計算できる。最後に、処理ブロック１２０８では、ＴＰＭはｓ，ｈ，ｋ，ｈＮＡＭＥ，ｋＮＡＭＥ，ｊ，ｊＮＡＭＥをチャレンジャーへ送信できる。１つの実施形態によれば、チャレンジャーは次に、証明を検証できる。
【００６１】
図１３は、１つの実施形態に従って、２つの離散対数が同じであるという１つの証明の検証を概念的に示す１つの流れ図である。処理ブロック１３０２では、チャレンジャーは、ｒ＝ＨＡＳＨ（ｈ，ｋ，ｈＮＡＭＥ，ｋＮＡＭＥ，ｊ，ｊＮＡＭＥ）を計算できる。チャレンジャーは次に、ｊ×ｈＺ＝ｋｒ×ｈｓ  ｍｏｄ  ＰおよびｊＮＡＭＥ×ｈＮＡＭＥＺ＝ｋＮＡＭＥｒ×ｈＮＡＭＥｓ  ｍｏｄ  Ｐであることを処理ブロック１３０４で検査できる。処理ブロック１３０４の複数の検査が合格すれば、チャレンジャーは処理ブロック１３０６で証明を受理できる。
【００６２】
図１４は、１つの実施形態に従ってｔを発生させる１つの代替方法を概念的に示す１つの流れ図である。１つの実施形態によれば、１つの更なる効率改善をプロトコルに行うことができる。例えば、区間［０，Ｂ］からの１つの一様分布からｔの値を決定したならば、ｍに関する情報が明らかにされないように充分に大きくセキュリティパラメータ（ＳＰ）を選択でき、例えば、ＳＰ１＝６０ビットと選択できる。しかし、１つの非一様分布を形成するような、ｔを選択する１つの代替方法は、ＳＰ２＝１０ビットのようにかなり小さなＳＰを可能にさせることができ、その結果、効率の改善をもたらす。
【００６３】
１つの実施形態によれば、処理ブロック１４０２では、１つのトラステッドプラットフォームモジュール（ＴＰＭ）は、区間［０，Ｂ］を形成する複数のセキュリティパラメータ（ＳＰ２）値ｔ１，ｔ２，...ｔＳＰ２を無作為に選択できる。ＴＰＭは次に、ｔ＝ｔ１＋ｔ２＋...＋ｔＳＰ２を処理ブロック１４０４で計算できる。
【００６４】
本発明の特定の複数の例示的な実施形態を記述し、複数の添付図面に示したが、当然のことながら、このような複数の実施形態は、単なる例示であって、本発明の様々な複数の実施形態の広範な複数の態様について限定せず、様々な別の複数の変更形態が実行可能であるので、これら複数の実施形態は、図示および記述された特定の複数の構造および複数の配置に限定されない。本発明の複数の実施形態あるいはそれらの複数の特徴の幾つかを、ハードウェア、複数のプログラム可能な装置、ファームウェア、ソフトウェアあるいは、それらの１つの組み合わせに実装できる。
【図面の簡単な説明】
【００６５】
【図１】一実施形態に従って１つの直接証明方式を実施できる１つのシステムを概念的に示す１つのブロック図である。
【図２】１つの実施形態に従って１つのトラステッドプラットフォームモジュールを含む１つのプラットフォームを概念的に示す１つのブロック図である。
【図３】本発明の複数の実施形態を実施できる１つのコンピュータシステムを概念的に示す１つのブロック図である。
【図４】１つの実施形態に従って、製造中、１つのトラステッドプラットフォームモジュール（ＴＰＭ）をセットアップする１つの処理を概念的に示す１つの流れ図である。
【図５】１つの実施形態に従って、製造された各プラットフォームに実行するセットアップの１つの処理を概念的に示す１つの流れ図である。
【図６】１つの実施形態による１つの事前計算処理を概念的に示す１つの流れ図である。
【図７】１つの実施形態による１つの第１対話証明の事前計算を概念的に示す１つの流れ図である。
【図８】１つの実施形態による１つの第２対話証明の事前計算を概念的に示す１つの流れ図である。
【図９】１つの実施形態による１つのオンライン計算処理を概念的に示す１つの流れ図である。
【図１０】１つの実施形態による１つの第１対話証明に対する複数のラウンドの開始を概念的に示す１つの流れ図である。
【図１１】１つの実施形態による１つの第２対話証明に対する複数のラウンドの開始を概念的に示す１つの流れ図である。
【図１２】１つの実施形態に従って、２つの離散対数が同じであるという１つの証明の生成を概念的に示す１つの流れ図である。
【図１３】１つの実施形態に従って、２つの離散対数が同じであるという１つの証明の検証を概念的に示す１つの流れ図である。
【図１４】１つの実施形態に従ってｔを発生させる１つの代替方法を概念的に示す１つの流れ図である。
【図１】
0004673840.tif 000002
【図２】
0004673840.tif 000003
【図３】
0004673840.tif 000004
【図４】
0004673840.tif 000005
【図５】
0004673840.tif 000006
【図６】
0004673840.tif 000007
【図７】
0004673840.tif 000008
【図８】
0004673840.tif 000009
【図９】
0004673840.tif 000010
【図１０】
0004673840.tif 000011
【図１１】
0004673840.tif 000012
【図１２】
0004673840.tif 000013
【図１３】
0004673840.tif 000014
【図１４】
0004673840.tif 000015