(57)【特許請求の範囲】
【請求項１】
通信ネットワークにおいて、証明ノードＰが公開鍵証明書Ｃの正当なオーナーであることを検証するために、検証ノードＶが前記ノードＰのアイデンティティを検証するためのコンピュータ実行可能な方法であって、
前記ノードＰが秘密鍵ＸＰを開示せずに前記ＸＰを把握していることを前記検証ノードＶに対して証明するステップを含み、
前記秘密鍵ＸＰは、前記ノードＰと、前記ノードＰに対して前記証明書Ｃを発行した認証機関ＣＡとにより共有されている秘密の情報であり、
前記認証機関が前記Ｐに対して発行した前記証明書Ｃは、
前記証明ノードの公開鍵と、
発行された前記証明書Ｃのオーナーのアイデンティティと前記認証機関とを特定する、１つ以上の秘密ではない要素ｍＰと、
秘密の値である前記ＸＰと、前記証明書Ｃ内の１つ以上の他の秘密ではない要素ｍＰとに基づいた暗号化方法を用いて、前記ＸＰを開示しないものの前記ＸＰに基づいて生成された秘密ではない値ＳＰであって、前記秘密ではないＳＰは、前記証明書内の１つ以上の他の秘密ではない要素ｍＰのシグネチャであり、前記シグネチャはエクスポーネントとして前記秘密鍵ＸＰを用いて生成されるものである、秘密ではない値ＳＰと、
前記認証機関の秘密鍵を用いて、前記証明書内のＳＰと１つ以上の他の秘密ではない要素とに基づいて生成されたシグネチャと
を含むものであり、
前記Ｐが前記証明書Ｃの正当なオーナーであることを検証する前記検証ノードＶに対し、前記ＳＰを用いて前記ＸＰを開示せずに前記ＸＰを把握していることを証明するステップを含み、該証明するステップは、
前記検証ノードＶによりランダムな値ａを選択し、前記ｍＰをａ乗すること又は前記ＳＰをａ乗することに基づいてチャレンジを生成するステップであって、前記チャレンジは前記ノードＰに転送されるものである、ステップと、
前記ノードＰにより、前記チャレンジが前記ｍＰに基づいている場合は前記チャレンジをＸＰ乗し、前記チャレンジが前記ＳＰに基づいている場合は前記チャレンジを１／ＸＰ乗にして、その結果を前記証明として前記ノードＶに転送するステップと、
前記ノードＰから前記ノードＶへ転送された前記証明を、前記ノードＶが前記ｍＰ又は前記ＳＰのいずれかをａ乗することにより計算した値と比較することによって、前記Ｐのアイデンティティを検証するステップと
を含むものである、
方法。
【請求項２】
証明ノードＰがノードＶに対して自身のアイデンティティを証明する際に用いる証明書Ｃが失効していないことと、
固定ネットワークへ接続できない場合でも前記ノードＰのアイデンティティが有効であることと、
前記証明書Ｃに関連付けられた公開鍵及び秘密鍵のペアが危殆化していないことと
のうちの少なくとも１つを検証するために使用される請求項１に記載の方法。
【請求項３】
あるネットワークにおいて、証明ノードＰが公開鍵証明書の正当なオーナーであることについてのアイデンティティを検証するために使用される公開鍵証明書を生成する方法であって、
秘密鍵ＸＰに関する情報を、ある認証機関と前記ノードＰとが前記情報を共有できるように、前記認証機関と前記ノードＰとへ配信するステップと、
前記証明書内の１つ以上の公開されている要素ｍＰに基づいて、秘密ではない値ＳＰが前記秘密鍵ＸＰを開示しないものとなるように前記秘密ではない値ＳＰを計算するステップと、
前記秘密ではない値ＳＰを、前記認証機関が前記ノードＰに対して発行した証明書に含めるステップと、
前記認証機関の秘密鍵を用いて生成され、前記秘密ではない値ＳＰと、前記証明書内の１つ以上の別の秘密ではない要素とに基づくものであるシグネチャを、前記証明書に追加するステップとを含み、
前記証明書Ｃは、
前記証明ノードの公開鍵と、
発行された前記証明書Ｃのオーナーのアイデンティティと前記認証機関とを特定する１つ以上の秘密ではない要素と、
前記秘密鍵ＸＰをエクスポーネントとして用いることにより生成された１つ以上の他の秘密ではない要素ｍＰのシグネチャである前記秘密ではない要素ＳＰと、
前記認証機関の秘密鍵を用いて、前記ＳＰと前記証明書内の１つ以上の他の秘密ではない要素とに基づいて生成されたシグネチャと
を含むものであり、
その結果、前記証明ノードＰのアイデンティティは、
前記検証ノードＶによりランダムな値ａを選択し、前記ｍＰをａ乗すること又は前記ＳＰをａ乗することに基づいてチャレンジを生成するステップであって、前記チャレンジは前記ノードＰに転送されるものである、ステップと、
前記ノードＰにより、前記チャレンジが前記ｍＰに基づいている場合は前記チャレンジをＸＰ乗し、前記チャレンジがＳＰに基づいている場合は前記チャレンジを１／ＸＰ乗にして、その結果を前記証明として前記ノードＶに転送するステップと、
前記ノードＰから前記ノードＶへ転送された前記証明を、前記ｍＰ又は前記ＳＰのいずれかをａ乗することにより前記ノードＶによって計算された値と比較することにより、前記Ｐのアイデンティティを検証するステップと
により検証することができるものである、
方法。
【請求項４】
前記秘密ではない値ＳＰは、前記ｍＰをＸＰ乗することに基づいて計算されるものである、請求項３に記載の方法。
【請求項５】
通信ネットワークにおいて、証明ノードＰが公開鍵証明書Ｃの正当なオーナーであることを検証するために、検証ノードＶにより前記ノードＰのアイデンティティを検証する装置であって、
前記ノードＰにより、前記ノードＰが秘密鍵ＸＰを開示せずに前記秘密鍵ＸＰを把握していることを前記検証ノードＶに対して証明する証明ユニットを備え、
前記秘密鍵ＸＰは、前記ノードＰと、前記ノードＰに対して前記証明書Ｃを発行した認証機関ＣＡとにより共有されている秘密の情報であり、
前記認証機関が前記Ｐに対して発行した前記証明書Ｃは、
前記証明ノードの公開鍵と、
発行された前記証明書Ｃのオーナーのアイデンティティと、前記認証機関とを特定する１つ以上の秘密ではない要素ｍＰと、
前記秘密の値ＸＰと前記証明書Ｃ内の１つ以上の他の秘密ではない要素ｍＰとに基づいた暗号化方法を用いて、生成されたＳＰが前記ＸＰに基づくものの前記ＸＰを開示しないものとなるように生成された秘密ではない値ＳＰであって、前記秘密鍵ＸＰをエクスポーネントとして用いて生成された前記１つ以上の他の秘密ではない要素ｍＰのシグネチャである秘密ではない値ＳＰと、
前記認証機関の秘密鍵を用いて、前記ＳＰと前記１つ以上の他の秘密ではない要素とに基づいて生成されたシグネチャと
を含むものであり、
前記証明ユニットは、前記Ｐが前記証明書Ｃの正当なオーナーであることを検証する前記検証ノードＶに対し、前記ＳＰを用いて前記ＸＰを開示せずに前記ＸＰを把握していることを証明し、更に、
前記検証ノードＶによりランダムな値ａを選択し、前記ｍＰをａ乗すること又は前記ＳＰをａ乗することに基づいてチャレンジを生成するステップであって、前記チャレンジは前記ノードＰに転送されるものである、ステップと、
前記ノードＰにより、前記チャレンジが前記ｍＰに基づいている場合は前記チャレンジをＸＰ乗し、前記チャレンジがＳＰに基づいている場合は前記チャレンジを１／ＸＰ乗にして、その結果を前記証明として前記ノードＶに転送するステップと、
前記ノードＰから前記ノードＶへ転送された前記証明を、前記ｍＰ又は前記ＳＰのいずれかをａ乗することにより前記ノードＶによって計算された値と比較することにより前記Ｐのアイデンティティを検証するステップと
を実行するものである、
装置。
【請求項６】
あるネットワークにおいて、ある証明ノードＰが公開鍵証明書の正当なオーナーであることについてのアイデンティティを検証するために使用される公開鍵証明書を生成する装置であって、
秘密鍵ＸＰに関する情報を、ある認証機関と前記ノードＰとが前記情報を共有できるように、前記認証機関と前記ノードＰとへ配信する配信ユニットと、
前記証明書内の１つ以上の公開されている要素ｍＰに基づいて、秘密ではない値ＳＰが前記秘密鍵ＸＰを開示しないものとなるように前記秘密ではない値ＳＰを計算する計算ユニットと、
前記秘密ではない値ＳＰを、前記認証機関が前記ノードＰに対して発行した証明書に含める取込ユニットと、
前記認証機関の秘密鍵を用いて生成され、前記秘密ではない値ＳＰと、前記証明書内の１つ以上の別の秘密ではない要素とに基づくものであるシグネチャを、前記証明書に追加する追加ユニットとを備え、
前記証明書Ｃは、
前記証明ノードの公開鍵と、
発行された前記証明書Ｃのオーナーのアイデンティティと前記認証機関とを特定する１つ以上の秘密ではない要素と、
前記秘密鍵ＸＰをエクスポーネントとして用いることにより生成された前記１つ以上の他の秘密ではない要素ｍＰのシグネチャである前記秘密ではない要素ＳＰと、
前記認証機関の秘密鍵を用いて、前記ＳＰと前記１つ以上の他の秘密ではない要素とに基づいて生成されたシグネチャと
を含むものであり、
その結果、前記証明ノードＰのアイデンティティは、
前記検証ノードＶによりランダムな値ａを選択し、前記ｍＰをａ乗すること又は前記ＳＰをａ乗することに基づいてチャレンジを生成するステップであって、前記チャレンジは前記ノードＰに転送されるものである、ステップと、
前記ノードＰにより、前記チャレンジが前記ｍＰに基づいている場合は前記チャレンジをＸＰ乗し、前記チャレンジがＳＰに基づいている場合は前記チャレンジを１／ＸＰ乗にして、その結果を前記証明として前記ノードＶに転送するステップと、
前記ノードＰから前記ノードＶへ転送された前記証明を、前記ｍＰ又は前記ＳＰのいずれかをａ乗することにより前記ノードＶによって計算された値と比較することにより、前記Ｐのアイデンティティを検証するステップと
により検証することができるものである、
装置。
【請求項７】
請求項２〜４のいずれか一項に記載の方法を実行する手段を更に備える請求項５又は６に記載の装置。
【請求項８】
コンピュータ上で、請求項１〜４のいずれか一項に記載の方法を実行可能にするコンピュータプログラムコードを含むコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、認証を行う方法及び装置に関する。
【背景技術】
【０００２】
コンピュータネットワークにおいては、ノードの特定が保証される場合に限り、多くのサービスが提供される。これは、アクセスコントロール又は機密保護のようなセキュリティサービスである。ルーティングのような、より基本的なサービスも同じである。ＩＰアドレスとノードとの対応付けの正確性を保証する方法がない場合、どのルーティングプロトコルを用いてもメッセージを正しい宛先へ正確に配信することが保証されない。従来、ノードのアイデンティティに関して必要とされる保証は、中央管理機関（ｃｅｎｔｒａｌ  ａｄｍｉｎｉｓｔｒａｔｉｏｎ  ａｕｔｈｏｒｉｔｉｅｓ）又は専用のエンティティにより提供される。しかし、このようなエンティティを全ての環境の中で見出すことはできない。これは、アドホックネットワークの分野では特に問題である。（モバイル）アドホックネットワークはインフラストラクチャを持たず、自立的（ｓｅｌｆ−ｏｒｇａｎｉｚｅｄ）であるため、中央管理機関又は専用のエンティティを見出すことはできない。このように管理制御がないことにより、ネットワークアドレスの変更をもたらす悪質な行為を検出できないという影響がある。
【０００３】
ネットワークアドレスは、ノードを特定する唯一の情報ではない。ＰＫＣ（Ｐｕｂｌｉｃ  Ｋｅｙ  Ｃｅｒｔｉｆｉｃａｔｅｓ：公開鍵証明書）又は秘密暗号鍵などの他の識別情報も使用できる。しかしながら、任意のエンティティが実際にはエンティティを装っていることを裏付けるために、ネットワーク内の識別情報とエンティティ（「ノード」）との対応付けの正しさ及び妥当性を保証できるようにする処理が必要となる。このような処理は、一般にエンティティ認証又は単に認証と呼ばれる。
【０００４】
認証メカニズムが特に対象とするのは、アドホックネットワークである。このアドホックネットワークは、サービスが何らかのインフラストラクチャに頼らずに提供できるサービスエリアを拡大させることができるからである。これにより、モバイルネットワークプロバイダは、開発費用を減らすことができる。モバイルネットワークのプロバイダは、自身のネットワーク内で通常提供する通話などのサービスを展開するために、従来のネットワークと同様にアドホックネットワークにおいても、提供するサービスの品質に関して同じ保証を提供する必要がある。これは、アドホックネットワーク内のどの顧客も誰かに電話をすることができ、ネットワークは正しく呼び出された人との接続を確立する必要があることを意味する。更に、例えば、ＭＭＳ（マルチメディアメッセージングサービス）をアドホックネットワーク内の顧客が送信する場合、メッセージを正しい宛先に配信することを保証することが必要となることも意味する。これらの例から、ネットワークを正しく動作させる最も基本的なサービスの１つであるルーティングは、メッセージを正しい宛先に配信するためにノードのアイデンティティの保証を必要とするという事実が重要となってくる。このため、ノードのアイデンティティが保証されない場合は、どのようなサービスも効率的に展開することはできない。
【０００５】
従って、アドホックネットワークの場合、ノードのアイデンティティを検証することが強く求められている。しかしながら、多くの場合、ノードが互いを認識しておらず、共通の秘密を共有していないことにより、エンティティ認証は、アドホックネットワークでは問題となる。このため、２つのエンティティがある秘密を共有するという事実に依存した秘密鍵のメカニズムに基づく従来の認証方法は利用できない。認証するための共通の情報を共有していない２つのノードを許可する唯一の方法は、公開鍵に基づいたメカニズムを使用することである。しかし、公開鍵ベースの認証メカニズムがＰＫＣ（公開鍵証明書）に依存したメカニズムのように使用される場合、これらの証明書の妥当性を保証できない。これは後で説明するように、アドホックネットワークでは、必要な最新の失効（ｒｅｖｏｃａｔｉｏｎ）情報を得ることができないという基本的な問題が存在するためである。
【０００６】
証明書が発行されると、その全有効期間内で使用できることが求められる。しかし、名前の変更、対応する秘密鍵の危殆化（compromise）又は危殆化が疑われるなどの様々な事情により、証明書の有効期間が終了する前に無効になることがある。秘密鍵の紛失又は発覚などの多くの理由で、秘密鍵が危殆化することがある。この場合、証明書を無効にする必要がある。これは従来、認証機関（ｃｅｒｔｉｆｉｃａｔｉｏｎ  ａｕｔｈｏｒｉｔｉｅｓ：ＣＡｓ）、ＯＣＳＰレスポンダ又はリポジトリ（ｒｅｐｏｓｉｔｏｒｉｅｓ）などの中央機関（ｃｅｎｔｒａｌ  ａｕｔｈｏｒｉｔｉｅｓ）に依存する失効メカニズム（ｒｅｖｏｃａｔｉｏｎ  ｍｅｃｈａｎｉｓｍｓ）によって行われる。この目的は、ネットワーク内のノードが、もはや正当なオーナーに関連付けられていないためにこれ以上使用することができない公開鍵を特定できるようにすることである。そのため、証明書を用いるときは常に失効メカニズムが必要となる。
【０００７】
しかしながら、失効についての現存する解決策は中央エンティティに依存している一方で、アドホックネットワークは、インフラストラクチャを持たず、中央エンティティがないため、従来のアプローチをアドホックネットワークで使用することはできない。このため、アドホックネットワーク内で使用される証明書を正当なオーナーが使用することを保証できるメカニズムの提供が求められている。
【０００８】
前述したように、ノードがオンラインの第三者（ＴＴＰ）にアクセスできず、互いに認識していないという事実は、認証には不適当な、秘密の共有をもたらす共通の秘密を共有できないことを意味する。しかしながら、アドホックネットワーク内の認証について公開鍵メカニズムを使用することには、問題がある。アドホックネットワークに適応した公開鍵認証メカニズムを定義することの難しさは、公開鍵及び秘密鍵のペアの危殆化というリスクによるものである。この種の鍵のペアは危殆化することがあるため、正当なオーナー以外の他のノードに使用されてしまう可能性がある。このため、公開鍵及び秘密鍵の失効状態を把握することができない場合、公開鍵に関連付けられた秘密鍵が既知であることの証明を与えることは、公開鍵及び秘密鍵のペアの正当なオーナーの特定を可能にするとは限らない。これは、ノードを認証するために一般に使用される方法の限界を表している。
【０００９】
鍵が危殆化すると、認証を行うべきノードは、証明書の正当なオーナーとアタッカーとを区別することができない。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
従って、従来の方法の欠点を克服する認証方法の提供が求められている。
【課題を解決するための手段】
【００１１】
１つの実施形態によれば、通信ネットワークにおいて、証明をする証明ノードＰが公開鍵証明書Ｃの正当なオーナーであることを検証するために、検証をする検証ノードＶが前記ノードＰのアイデンティティを検証するためのコンピュータ実行可能な方法であって、前記ノードＰが秘密鍵ＸPを開示せずに前記ＸPを把握していることを前記検証ノードＶに対して証明するステップを含み、前記秘密鍵ＸPは、前記ノードＰと、前記ノードＰに対して前記証明書Ｃを発行した認証機関ＣＡとにより共有されている秘密の情報であり、前記認証機関が前記Ｐに対して発行した前記証明書Ｃは、前記証明ノードの公開鍵と、発行された前記証明書Ｃのオーナーのアイデンティティと前記認証機関とを特定する、１つ以上の秘密ではない要素ｍPと、秘密の値である前記ＸPと、前記証明書Ｃ内の１つ以上の他の秘密ではない要素ｍPとに基づいた暗号化方法を用いて、前記ＸPを開示しないものの前記ＸPに基づいて生成された秘密ではない値ＳPであって、前記秘密ではないＳPは、前記証明書内の１つ以上の他の秘密ではない要素ｍPのシグネチャであり、前記シグネチャはエクスポーネントとして前記秘密鍵ＸPを用いて生成されるものである、秘密ではない値ＳPと、前記認証機関の秘密鍵を用いて、前記証明書内のＳPと１つ以上の他の秘密ではない要素とに基づいて生成されたシグネチャとを含み、前記Ｐが前記証明書Ｃの正当なオーナーであることを検証する前記検証ノードＶに対し、前記ＳPを用いて前記ＸPを開示せずに前記ＸPを把握していることを証明するステップを含み、該証明するステップは、前記検証ノードＶによりランダムな値ａを選択し、前記ｍPをａ乗すること又は前記ＳPをａ乗することに基づいてチャレンジ（ｃｈａｌｌｅｎｇｅ）を生成するステップであって、前記チャレンジは前記ノードＰに転送されるものである、ステップと、前記ノードＰにより、前記チャレンジが前記ｍPに基づいている場合は前記チャレンジをＸP乗し、前記チャレンジが前記ＳPに基づいている場合は前記チャレンジを１／ＸP乗にして、その結果を前記証明として前記ノードＶに転送するステップと、前記ノードＰから前記ノードＶへ転送された前記証明を、前記ノードＶが前記ｍP又は前記ＳPのいずれかをａ乗することにより計算した値と比較することによって、前記Ｐのアイデンティティを検証するステップとを含むものである、方法が提供される。
【００１２】
１つの実施形態によれば、証明書に含まれている公開（秘密ではない）情報ｍPに関連する公開情報ＳPに基づくアプローチがその後に続く。しかしながら、公開情報ＳPは、ｍP及び秘密鍵ＸPに基づいている。この秘密鍵ＸPは、証明書の正当なオーナー及びその証明書の発行ノードのみが把握しており、ＸPを開示しない方法で計算されている。このように、実際の値を開示せずにＸPを把握していることを証明することにより、証明書の正当なオーナーのみを特定できる。
【００１３】
前述の実施形態によれば、認証機関ＣＡから秘密鍵ＸPを受信したノードＰが、出会ったことがないノードＶに対して秘密鍵を開示することなく、ＣＡと秘密鍵ＸPを共有していることを証明できる。
【００１４】
従って、関連付けられた鍵のペアが危殆化した場合でも、このメカニズムにより証明書の正当なオーナーを特定できる。このため、公開鍵及び秘密鍵のペアが失効したかどうかを把握することができる。このメカニズムは、秘密鍵ＸPに基づいた秘密鍵ベースのメカニズムであり、証明書の正当なオーナー以外の他のノードがその証明書を使用することを防ぐ。その結果、ノードがアドホックネットワーク内又はその他の任意のネットワーク内でアタッカーによってなり済まされる（ｉｍｐｅｒｓｏｎａｔｅｄ）リスクは、ごくわずかなものとなる。
【００１５】
このメカニズムは、公開鍵及び秘密鍵のペアが危殆化した場合でさえも、証明書の正当なオーナーのみが公開鍵の正当なオーナーとして特定されることを保証する。更に、アタッカーにより危殆化した鍵の使用を避けることができる。これらの理由から、この方法によれば、アドホックネットワーク内の効率的なエンティティ認証が提供される。
【００１６】
この方法を安全に保つために、情報ＸPは秘密のまま決して開示されることはなく、証明書のオーナー及び認証機関だけが把握している。これは例えば、秘密鍵を安全な方法で配信し、その鍵を不正に改ざんできない（ｔａｍｐｅｒ  ｐｒｏｏｆ）ハードウェア上で保管するか、又は鍵を生成してモバイル機器で使用するために、パスワードの入力を要求することによって保証することができる。
【００１７】
このため、１つの実施形態によれば、このメカニズムは、以下を含んでいる。
＊秘密鍵ＸPを開示することなく、あるＣＡであるＣＡ1により、あるノードＰに対して安全に配信されること
＊秘密鍵ＸPは、ＰがＸPを公開せずにＣＡ1から受信した証明書Ｃに関連付けられること
＊Ｐを認証するべきノードＶは、ＰがＶに対して秘密鍵ＸPを開示せずに秘密鍵ＸPを把握していることを証明できる場合、ＰがＣの正当なオーナーであることとＣが失効していないこととを保証すること
【００１８】
公開鍵及び秘密鍵のペアが危殆化した場合でも、秘密鍵は決して開示されないため、証明書の正当なオーナーのみがＸPを把握していることを証明でき、従ってＰのみを証明書の正当なオーナーとして特定でき、公開鍵及び秘密鍵のペアがなお有効であることを把握することができる。
【００１９】
１つの実施形態によれば、証明ノードＰがノードＶに対して自身のアイデンティティを証明する際に用いる証明書Ｃが失効していないことと、固定ネットワークへ接続できない場合でも前記ノードＰのアイデンティティが有効であることと、前記証明書Ｃに関連付けられた公開鍵及び秘密鍵のペアが危殆化していないこととを検証するために、前記方法が使用される。
【００２０】
１つの実施形態によれば、前記秘密ではない値ＳPは、ＳP＝ｋ（ｍP，ＸP）である暗号関数ｋを用いて生成されるものであり、前記方法は、前記ノードＶにより、任意の数ａに基づいて、
ｆ＝ｆ（ａ，ｇ（ｍP，ＸP））
となるようにチャレンジｆを生成するステップと、前記チャレンジを前記ノードＰに転送するステップと、前記ノードＰにより、
Ｒ（ＸP，ｆ（ａ，ｇ（ｍP，ＸP）））
となるように、ある証明Ｒを生成するステップであって、関数Ｒとさらなる関数Ｒ’とは、前記ノードＶにより、関数
Ｒ’＝Ｒ’（ｍP，ＳP，ａ）
を用いて、値ＸPを把握していなくても前記証明を再計算することにより前記証明が検証できるように選択されるものである、ステップとを含む。
【００２１】
これにより、検証ノードＶはＰの証明書が失効していないことを把握することと、それゆえＸPを把握していなくてもＰのアイデンティティを検証するために認証を行うこととが可能になる。
【００２２】
１つの実施形態によれば、前記方法は、前記ノードＰの公開鍵を用いて前記ノードＶにより生成された前記チャレンジを暗号化し、暗号化された方法で前記チャレンジを前記Ｐに転送するステップと、前記ノードＰが受信した、暗号化されたチャレンジを、秘密鍵を用いて復号化するステップとを含む。
【００２３】
Ｐの公開鍵及び秘密鍵のペアを用いた暗号化を使用することにより、安全性が向上する。
【００２４】
１つの実施形態によれば、前記方法は、前記検証ノードＶを特定する値を前記チャレンジに追加するステップと、前記追加された値を含んだ前記チャレンジを前記ノードＰに転送するステップと、前記Ｐにより、前記追加された値を含んだ前記チャレンジを、Ｐの秘密鍵を用いて暗号化し、該暗号化されたチャレンジを前記ノードＶに転送するステップとを含む。
【００２５】
Ｖを特定する値の追加は、再度のアタックを難しくする。なぜならば、対象の検証ノードは、この手順の中で自身のユニークなアイデンティティと協調しなければならないためである。
【００２６】
１つの実施形態によれば、前記追加された値は、前記ノードＶと認証機関とにより共有されている秘密の値ＸVと、前記ノードＶの証明書内の１つ以上の他の秘密ではない要素ｍVとに基づく暗号化方法を用いて、生成されたＳVがＸVに基づくもののＸVを開示しないものとなるように生成される値ＳVを含む。
【００２７】
この値ＳVは、ＳPと同じようにノードＶをユニークに特定する。従って、例えば、原理上使用することができるＶの公開鍵に対しては好ましい。しかし、Ｖの公開鍵が危殆化した場合は好ましくない。
【００２８】
１つの実施形態によれば、前記方法は、前記値ＳPを前記ノードＶに提示するときに、あるセッション識別子とあるノンス（ｎｏｎｃｅ）とのうちのいずれか又は両方を、前記Ｖに転送されるメッセージに追加するステップと、前記ノードＰの秘密鍵に基づいて生成された、前記メッセージを暗号化したバージョンを更に追加するステップと、前記ノードＶにより生成され、前記ノードＰに転送される前記チャレンジに、あるセッション識別子とあるノンスとのうちのいずれか又は両方を追加するステップと、前記ノードＶの秘密鍵を用いて前記チャレンジを暗号化するステップと、前記ノードＰの公開鍵を用いて前記チャレンジを暗号化するステップとを含む。
【００２９】
セッション識別子とノンスとのうちのいずれか又は両方を使用することにより、この方法の安全性が向上する。
【００３０】
１つの実施形態によれば、この方法は、前記値ＳPを前記ノードＶに示すときに、セッション識別子ｓｉｄPとノンスｎPとのうちのいずれか又は両方を、前記Ｖに転送される前記メッセージに追加するステップと、前記ノードＰの秘密鍵を用いて、前記メッセージの暗号化したバージョンを更に追加するステップと、あるセッション識別子ｓｉｄVと、前記Ｐにより既に送信された前記セッション識別子ｓｉｄPとを、前記ＳVと前記ノードＶによって生成された前記チャレンジとへ追加するステップと、前記チャレンジと、前記セッション識別子ｓｉｄVと、前記ＳVと、１だけインクリメントされた前記ノンスｎPと、あるノンスｎVとを含む第１の値ｖａｌ1を、前記ノードＶの秘密鍵を用いて暗号化するステップと、前記チャレンジと、１だけインクリメントされた前記ノンスｎPと、前記ノンスｎVと、前記ノードＶの秘密鍵を用いて暗号化された前記値ｖａｌ1とを含む第２の値を、前記ノードＰの公開鍵を用いて暗号化するステップと、前記ｓｉｄPと、前記ｓｉｄVと、前記ＳVと、前記ノードＰの公開鍵を用いて暗号化された前記第２の値とを転送するステップと、前記証明と、前記ＳVと、前記ノードＰを特定する前記値と、１だけインクリメントされた前記ノンスｎVとを含む第３の値を、前記ノードＰの秘密鍵を用いて暗号化するステップと、前記ノードＰを特定する前記値と、１だけインクリメントされた前記ノンスｎVと、前記ノードＰの秘密鍵を用いて暗号化された前記第３の値とを含む第４の値を、前記ノードＶの公開鍵を用いて暗号化するステップと、前記セッション識別子ｓｉｄP及びｓｉｄVと、前記ノードＶの公開鍵を用いて暗号化された前記第４の値とを前記ノードＶに転送するステップとを更に含む。
【００３１】
１つの実施形態によれば、あるネットワークにおいて、証明ノードＰが公開鍵証明書の正当なオーナーであることについてのアイデンティティを検証するために使用される公開鍵証明書を生成する方法であって、秘密鍵ＸPに関する情報を、ある認証機関と前記ノードＰとが前記情報を共有できるように、前記認証機関と前記ノードＰとへ配信するステップと、
前記証明書内の１つ以上の公開されている要素ｍPに基づいて、秘密ではない値ＳPが前記秘密鍵ＸPを開示しないものとなるように前記秘密ではない値ＳPを計算するステップと、前記秘密ではない値ＳPを、前記認証機関が前記ノードＰに対して発行した証明書に含めるステップと、前記認証機関の秘密鍵を用いて生成され、前記秘密ではない値ＳPと、前記証明書内の１つ以上の別の秘密ではない要素とに基づくものであるシグネチャを、前記証明書に追加するステップとを含み、前記証明書Ｃは、前記証明ノードの公開鍵と、発行された前記証明書Ｃのオーナーのアイデンティティと前記認証機関とを特定する１つ以上の秘密ではない要素と、前記秘密鍵ＸPをエクスポーネントとして用いることにより生成された１つ以上の他の秘密ではない要素ｍPのシグネチャである前記秘密ではない要素ＳPと、前記認証機関の秘密鍵を用いて、前記ＳPと前記証明書内の１つ以上の他の秘密ではない要素とに基づいて生成されたシグネチャとを含むものであり、その結果、前記証明ノードＰのアイデンティティは、前記検証ノードＶによりランダムな値ａを選択し、前記ｍPをａ乗すること又は前記ＳPをａ乗することに基づいてチャレンジを生成するステップであって、前記チャレンジは前記ノードＰに転送されるものである、ステップと、前記ノードＰにより、前記チャレンジが前記ｍPに基づいている場合は前記チャレンジをＸP乗し、前記チャレンジがＳPに基づいている場合は前記チャレンジを１／ＸP乗にして、その結果を前記証明として前記ノードＶに転送するステップと、  前記ノードＰから前記ノードＶへ転送された前記証明を、前記ｍP又は前記ＳPのいずれかをａ乗することにより前記ノードＶによって計算された値と比較することにより、前記Ｐのアイデンティティを検証するステップとにより検証することができるものである、  方法が提供される。
【００３２】
この方法により生成された証明書は、証明書のオーナーに属する公開鍵及び秘密鍵のペアが危殆化した場合でも、認証に使用することができる。
【００３３】
１つの実施形態によれば、前記証明書Ｃは、発行された前記証明書Ｃのオーナーのアイデンティティと前記認証機関とを特定する１つ以上の秘密ではない要素と、前記秘密ではない要素ＳPと、前記認証機関の秘密鍵を用いて、前記ＳPと前記証明書内の１つ以上の他の秘密ではない要素とに基づいて生成されたシグネチャとを含む。
【００３４】
この方法による証明書は、オーナーの名称、発行ノード、オーナーの公開鍵、有効期限など典型的な要素を全て含んでおり、更に秘密鍵ＸPに基づいて生成された、公開されている値ＳPを含んだ標準的な証明書とすることができる。この証明書は、認証機関の秘密鍵を用いて生成された値ＳPを含むこれらの要素の１つ以上に対するシグネチャを更に含んでいることが好ましい。
【００３５】
１つの実施形態によれば、前記秘密ではない値ＳPは、ＳPをＸP乗することに基づいて計算される。これにより、ＳP又はｍPを、Ｖによって選択された任意の値であるａでべき乗したチャレンジを利用することにより、ＰがＸPを開示せずにＸPを把握していることを証明できる。
【００３６】
１つの実施形態によれば、前記ノードＰは、前記秘密鍵ＸPの情報に加えて、前記秘密鍵ＸPに対応する公開鍵ｅPの情報を有し、前記ノードＰが、必要な場合に前記公開鍵ｅPに基づいて失効要求を発行できるようにするための失効要求が必要にならない限り、前記ｅPは前記ノードＰにより秘密に保たれる。これにより、ノードＰは必要な場合に失効要求を発行できる。
【００３７】
１つの実施形態によれば、本発明の実施形態の１つの方法に基づいて生成され、ノードＰに対して発行された証明書を失効させる方法であって、ＳPと、秘密鍵ＸP又は対応する公開鍵ｅPと、前記ノードＰの秘密鍵を用いて生成されたメッセージのシグネチャを含むメッセージを生成し、開示するステップを含む方法が提供される。
【００３８】
これにより、ノードＰが証明書を失効させることができ、更にネットワーク内の他のノードが失効要求の認証を検証することができる。
【００３９】
１つの実施形態によれば、前記方法は、ネットワーク内のノード間で失効メッセージを定期的に交換するステップを含む。
【００４０】
これにより、ネットワーク内のノードに対して、失効した証明書に関する最新の情報を提供することができる。
【００４１】
１つの実施形態によれば、通信ネットワークにおいて、証明ノードＰが公開鍵証明書Ｃの正当なオーナーであることを検証するために、検証ノードＶにより前記ノードＰのアイデンティティを検証する装置であって、前記ノードＰにより、前記ノードＰが秘密鍵ＸPを開示せずに前記秘密鍵ＸPを把握していることを前記検証ノードＶに対して証明する証明ユニットを備え、前記秘密鍵ＸPは、前記ノードＰと、前記ノードＰに対して前記証明書Ｃを発行した認証機関ＣＡとにより共有されている秘密の情報であり、前記認証機関が前記Ｐに対して発行した前記証明書Ｃは、前記証明ノードの公開鍵と、発行された前記証明書Ｃのオーナーのアイデンティティと、前記認証機関とを特定する１つ以上の秘密ではない要素ｍPと、前記秘密の値ＸPと前記証明書Ｃ内の１つ以上の他の秘密ではない要素ｍPとに基づいた暗号化方法を用いて、生成されたＳPが前記ＸPに基づくものの前記ＸPを開示しないものとなるように生成された秘密ではない値ＳPであって、前記秘密鍵ＸPをエクスポーネントとして用いて生成された前記１つ以上の他の秘密ではない要素ｍPのシグネチャである秘密ではない値ＳPと、前記認証機関の秘密鍵を用いて、前記ＳPと前記１つ以上の他の秘密ではない要素とに基づいて生成されたシグネチャとを含むものであり、前記証明ユニットは、前記Ｐが前記証明書Ｃの正当なオーナーであることを検証する前記検証ノードＶに対し、前記ＳPを用いて前記ＸPを開示せずに前記ＸPを把握していることを証明し、更に、前記検証ノードＶによりランダムな値ａを選択し、前記ｍPをａ乗すること又は前記ＳPをａ乗することに基づいてチャレンジを生成するステップであって、前記チャレンジは前記ノードＰに転送されるものである、ステップと、  前記ノードＰにより、前記チャレンジが前記ｍPに基づいている場合は前記チャレンジをＸP乗し、前記チャレンジがＳPに基づいている場合は前記チャレンジを１／ＸP乗にして、その結果を前記証明として前記ノードＶに転送するステップと、前記ノードＰから前記ノードＶへ転送された前記証明を、前記ｍP又は前記ＳPのいずれかをａ乗することにより前記ノードＶによって計算された値と比較することにより前記Ｐのアイデンティティを検証するステップとを実行するものである、装置が提供される。
【００４２】
更なる実施形態によれば、あるネットワークにおいて、ある証明ノードＰが公開鍵証明書の正当なオーナーであることについてのアイデンティティを検証するために使用される公開鍵証明書を生成する装置であって、秘密鍵ＸPに関する情報を、ある認証機関と前記ノードＰとが前記情報を共有できるように、前記認証機関と前記ノードＰとへ配信する配信ユニットと、前記証明書内の１つ以上の公開されている要素ｍPに基づいて、秘密ではない値ＳPが前記秘密鍵ＸPを開示しないものとなるように前記秘密ではない値ＳPを計算する計算ユニットと、前記秘密ではない値ＳPを、前記認証機関が前記ノードＰに対して発行した証明書に含める取込ユニットと、前記認証機関の秘密鍵を用いて生成され、前記秘密ではない値ＳPと、前記証明書内の１つ以上の別の秘密ではない要素とに基づくものであるシグネチャを、前記証明書に追加する追加ユニットとを備え、前記証明書Ｃは、前記証明ノードの公開鍵と、発行された前記証明書Ｃのオーナーのアイデンティティと前記認証機関とを特定する１つ以上の秘密ではない要素と、前記秘密鍵ＸPをエクスポーネントとして用いることにより生成された前記１つ以上の他の秘密ではない要素ｍPのシグネチャである前記秘密ではない要素ＳPと、前記認証機関の秘密鍵を用いて、前記ＳPと前記１つ以上の他の秘密ではない要素とに基づいて生成されたシグネチャとを含むものであり、その結果、前記証明ノードＰのアイデンティティは、前記検証ノードＶによりランダムな値ａを選択し、前記ｍPをａ乗すること又は前記ＳPをａ乗することに基づいてチャレンジを生成するステップであって、前記チャレンジは前記ノードＰに転送されるものである、ステップと、前記ノードＰにより、前記チャレンジが前記ｍPに基づいている場合は前記チャレンジをＸP乗し、前記チャレンジがＳPに基づいている場合は前記チャレンジを１／ＸP乗にして、その結果を前記証明として前記ノードＶに転送するステップと、前記ノードＰから前記ノードＶへ転送された前記証明を、前記ｍP又は前記ＳPのいずれかをａ乗することにより前記ノードＶによって計算された値と比較することにより、前記Ｐのアイデンティティを検証するステップとにより検証することができるものである、装置が提供される。
【００４３】
１つの実施形態によれば、本発明の実施形態に基づいて１つ以上の方法を実行する装置が提供される。
【発明を実施するための最良の形態】
【００４４】
本発明について、以下、典型的な実施形態を用いて詳細に説明する。
【００４５】
１つの実施形態によれば、ノードＰは、そのアイデンティティを検証ノードＶに対して証明する。そのため、ノードＰは、認証機関ＣＡにより発行された証明書を利用する。図１は、参加ノード（ｐａｒｔｉｃｉｐａｎｔｓ）と本発明の実施形態の動作との関係を概略的に示している。
【００４６】
ＣＡ及びＶは、共通の秘密ＸPを共有している。この秘密鍵ＸPは、ＣＡにより安全なチャネルを通してＰに配信することができ、又はＰ自身が選択し、ＣＡがそれを承認することができる。この共有された秘密ＸPに加えて、Ｐに対してＣＡにより証明書Ｃが発行される。この証明書は、Ｐが所有する公開鍵及び秘密鍵のペアと関連付けることに加えて、たとえ公開されていても、秘密鍵ＸPに基づいて生成された値ＳPに関連付けている。これは、ＳPがＸPに関するある情報を潜在的に（ｉｍｐｌｉｃｉｔｌｙ）含んでいることを意味する。しかしながら、ＳPからＸPの推定がコンピュータ的には実行不可能となるようなやり方でＳPが生成されるため、この「情報」は潜在的なままである。
【００４７】
それにもかかわらず、公開されている値ＳPと、証明書内の秘密鍵に加えてＰが所有する付加的な秘密である秘密の値ＸPとは、Ｖに対してＰを認証するために使用される。そのため、Ｐは、ノードＶに対し、秘密鍵ＸPを開示せずに秘密鍵ＸPを把握していることを証明する。これにより、アイデンティティの証明は、Ｐが所有する公開鍵及び秘密鍵のペアとは無関係となり、たとえこの鍵のペアが危殆化したとしても依然として機能する。
【００４８】
図２Ａを参照して、本発明の更なる実施形態について説明する。
【００４９】
図１Ａからわかるように、秘密ではない値ＳPは、ＳP＝ｋ（ｍP，ＸP）として定義されている暗号関数ｋに基づいている。
【００５０】
最初に、ＶによりＸPを把握していることを証明するために、Ｖは、ｆ（ａ，ｇ（ｍP，ＸP））に基づいて計算されるチャレンジ（ｃｈａｌｌｅｎｇｅ）ｆをＰに送信する。ここで、ａは任意の数であり、例えば、Ｖにより選択されＶだけが把握している乱数である。関数ｇは関数ｋと同一のものとすることができ、この場合、チャレンジは、ｆ（ａ，ＳP）という形式をとる。
【００５１】
しかしながら、関数ｇはｋとは異なっていてもよい。例えば、チャレンジｆを生成する場合、ＸPについての潜在的な情報さえ含まずに、ｇ（ｍP）という形式をとることができる。しかしながら、ＳPは公開されており秘密ではないため、ノードＶは、例えばＰが所有している証明書又は何らかの他のソースを通して、公に利用可能なＳPを把握しているので、ノードＶはＸPについて何らかの潜在的な情報を有している。
【００５２】
次にノードＰは、チャレンジｆに基づいて、
Ｒ＝Ｒ（ＸP，ｆ（ａ，ｇ（ｍP，ＸP）））
により証明値Ｒを計算する。
【００５３】
次にこの証明はノードＶに転送され、続いてノードＶは、ａとｍPとＳPとについての情報に基づいて、Ｒ’＝Ｒ’（ｍP，ＳP，ａ）から証明値を再計算することによりこの証明を検証する。
【００５４】
証明Ｒと再計算された証明値Ｒ’が一致する場合、認証は正常に実行される。
【００５５】
次の実施形態では、ノードＶが、ＸPを把握していないにも関わらず、ノードＰが実際にＸPを把握していることをどのように検証できるかについて、より詳細に説明する。以下の説明で使用する用語を明らかにするため、用語ｎは大きな数（large number）ｎを表すものとする。参加ノード間で送信される全ての値は、モジュロｎで送信される。ここでｎは、Ｒ．Ｌ．Ｒｉｖｅｓｔ、Ａ．Ｓｈａｍｉｒ、Ｌ．Ｍ．Ａｄｌｅｍａｎらによる文献「Ａ  ｍｅｔｈｏｄ  ｆｏｒ  ｏｂｔａｉｎｉｎｇ  ｄｉｇｉｔａｌ  ｓｉｇｎａｔｕｒｅｓ  ａｎｄ  ｐｕｂｌｉｃ−ｋｅｙ  ｃｒｙｐｔｏｓｙｓｔｅｍｓ」、Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  ｏｆ  ｔｈｅ  ＡＣＭ  （２）  ２１  （１９７８）、ｐ．１２０−１２６に記載されているＲＳＡ暗号システムのように定義することができる。
【００５６】
しかしながら、以下の説明はＲＳＡ暗号システムに限らず、他の暗号システムも同様に使用できる。
【００５７】
そのため、１つの実施形態によれば、ディジタルシグネチャのメカニズムを使用する。この選択は、使用するハッシュ関数や秘密鍵の長さなどのパラメータに関する要件が満たされている場合、ディジタルシグネチャは、生成するために使用する秘密鍵を破壊により危殆化させて漏洩させることはないものと考えられているという事実によるものである。
【００５８】
以下、秘密鍵ＸPを用いてメッセージｍ内に生成されるディジタルシグネチャを表すために、
【数１】
0004571117.tif 000002
について検討する。
【００５９】
以下ハッシュ関数について参照する場合、ある初期値が与えられると、この推定できない初期値に基づいて得られたハッシュ値を返す関数を参照することに更に注意されたい。しかしながら、ハッシュ関数が、データベースの鍵を生成するために使用するハッシュ関数の要件である、コリジョンフリー（ｃｏｌｌｉｓｉｏｎ−ｆｒｅｅ）を満たさなければならないという特徴は、本願にとってはあまり重要ではなく、必須のものではない。
【００６０】
この実施形態においては、例えばＲ．Ｈｏｕｓｌｅｙ、Ｗ．Ｐｏｌｋ、Ｗ．Ｆｏｒｄ、Ｄ．Ｓｏｌｏらによる文献「Ｉｎｔｅｒｎｅｔ  Ｘ．５０９  Ｐｕｂｌｉｃ  Ｋｅｙ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ：  Ｃｅｒｔｉｆｉｃａｔｅ  ａｎｄ  Ｃｅｒｔｉｆｉｃａｔｅ  Ｒｅｖｏｃａｔｉｏｎ  Ｌｉｓｔ  （ＣＲＬ）  Ｐｒｏｆｉｌｅ」ＲＦＣ  ３２８０、２００２年４月に記載されているＸ．５０９証明書などのＰＫＩで従来使用されている証明書は、いくらか修正がなされている。新しいフォーマットにおいては、認証機関ＣＡ1がＰに対して発行する証明書Ｃには、１つ以上の特別な要素が含まれている。これら特別な要素は、例えばディジタルシグネチャ
【数２】
0004571117.tif 000003
である。これは、ＰがＣＡ1と共有している秘密鍵ＸPと、シグネチャを生成するために使用する値ｎとを用いてメッセージｍP内に生成される。証明書のフォーマットは、図２に概略的に示されている。図２に関して最も重要な要素は、周知の証明書との相違点であって本発明の実施形態の動作を可能にするディジタルシグネチャＳPである。
【００６１】
ここで、ｍPは、Ｐの証明書内でＳPに先行するフィールドであるとともに生成されたメッセージを表している。ｍPは、ＳPに先行する全てのフィールドを含む必要はなく、証明書内の公開されている情報の要素の１つを含めば十分であることに注意されたい。この情報は公開されているため、どのノードもｍPを生成できる。唯一の要件は、ｍPを生成するために使用する公開情報の要素が容易に特定できるということである。しかしながら、ＳPは、ＣＡ1（又はＰ）によって生成されるものであり、これらのエンティティの１つだけが実際に生成できる。なぜならば、これらエンティティだけがＸPを把握しているからである。
【００６２】
ここで、ＳPは必ずしも証明書内に含まれている必要はなく、関与するどのエンティティもＳPを得ることができ、証明書Ｃに属する値ＳPとして特定できるように証明書に「関連付けられる」だけで十分であることに注意されたい。
【００６３】
ＣＡ1が自身の秘密鍵を用いて証明書にサインするため、証明書の信頼性を検証する必要がある任意のノードＶは、ＳPがＣＡ1によって生成されたこと又は証明書内のＣＡ1のシグネチャが正しい場合は直ぐに有効となることに確信を持つことになる。
【００６４】
１つの実施形態によれば、この新しい証明書は、エンティティ認証を提供するために使用される。この実施形態により、検証ノードであってＰが出会ったことがないノードＶに対して、ＸPを開示せずに公開鍵証明書Ｃに関連付けられたシグネチャ
【数３】
0004571117.tif 000004
を生成するために使用される秘密鍵ＸPを把握していることを、証明ノードであるノードＰが証明できるようになる。これによりＶは、Ｃの正当なオーナーとしてＰを特定することが可能になる。
【００６５】
ノードＰがシグネチャを生成するために使用する秘密鍵を把握していることを検証するための周知のメカニズムは、そのシグネチャを生成するために使用された秘密鍵に関連付けられた公開鍵を用いた、シグネチャの有効性の従来型のチェックである。
【００６６】
しかしながら、公開鍵に関連付けられた秘密鍵は、危殆化する可能性があるため、正しい公開鍵を用いてシグネチャ
【数１】
0004571117.tif 000005
の有効性をチェックしても、その公開鍵に対応する秘密鍵のオーナーが、ＣＡから秘密鍵ｘを最初に受信したものであるとは保証できない。
【００６７】
特に、公開鍵及び秘密鍵のペアを用いた、従来の証明をベースとしたシグネチャの検証は、失効メカニズムを必要とする。なぜならば、これらの鍵は危殆化する可能性があるためである。それ故、これらの解決策を使用して、我々はサークルに入る（ｅｎｔｅｒ  ａ  ｃｉｒｃｌｅ）ことになる。すなわち、シグネチャが失効を行うために証明書に追加され、失効はこれらのシグネチャをチェックするために要求される。これが、本発明の実施形態によるアプローチが公開鍵のメカニズムに依存しない理由である。代わりに、Ｐの証明書内のシグネチャＳPの有効性を確認するために、秘密鍵のメカニズムの使用が選択される。Ｐの秘密鍵が、ＧＳＭ内で使用されるＳＩＭカードのような不正に改ざんできないハードウェア内に安全に保存される場合、又はユーザがパスワードを入力した後で生成される以外はモバイル機器内には直接保存されない場合は、失効は要求されないと想定できる。
【００６８】
従って、以下に説明する種々のアプローチが使用されている。
【００６９】
図３は、本発明に係る認証方法の動作を概略的に示している。
【００７０】
図３に示されている実施形態の動作を詳細に説明する前に、ここで使用する用語を以下に説明する。
ＣｅｒｔP：公開鍵証明書
ＫP：Ｐの公開鍵
【数５】
0004571117.tif 000006
：Ｐの公開鍵を用いてメッセージｍを暗号化したもの
【数６】
0004571117.tif 000007
：要素ｘ1，ｘ2，．．．，ｘnから成るメッセージ内のＰの秘密鍵を用いて生成されたシグネチャ
【数７】
0004571117.tif 000008
：ＣＡ1がＶと共有する秘密鍵ｘVを用いてＶの証明書内にＣＡ1が生成したシグネチャ
【００７１】
メッセージ（１）において、Ｐは認証処理を開始するために、証明書を送信する。（完全な）証明書を送信する代わりに、ＰはＳPのみを送信することもできる。他の代替的な方法と同じように、ノードＰは認証処理が開始することを示すメッセージを送信し、次にノードＶは何らかの形でＳPを受信する。これは、ＳPが保存されているデータベースからノードＶを通してＳPを能動的に検索することによって達成することもできる。しかしながら、ステップ（１）の結果は、ノードＶが最終的にＳPを受信し、それによりノードＰ及びＣＡだけが明確に把握している秘密鍵ＸPについての「潜在的な」情報を受信したということである。
【００７２】
ここで、メッセージ（１）において、Ｖは、ノードＶに対する完全な証明書を受信したと仮定する。メッセージ（１）を受信したとき、Ｖは、受信した証明書内にあるＣＡのシグネチャの有効性を確認することが好ましい。それが正しい場合、ノードＶはランダムな値ａを選択し、Ｐの証明書により既に構成されているｍPをａ乗することによりチャレンジを生成し、
【数８】
0004571117.tif 000009
を得る。次にＶは、そのチャレンジを証明書とともにメッセージ（２）としてＰに送信する。完全な証明書を送信する代わりに、Ｖは
【数９】
0004571117.tif 000010
だけを送信することもできる。Ｐの公開鍵を用いて、このチャレンジを暗号化することが好ましい。Ｐは、メッセージ（２）を受信した後、それが暗号化されている場合には、秘密鍵を用いてそのチャレンジを復号化する。復号化が行われると、Ｐは自身の秘密鍵を用いて、チャレンジをＸP乗し、
【数１０】
0004571117.tif 000011
を得る。
【００７３】
次に、Ｐは、シグネチャを生成するために、結果として得られた
【数１１】
0004571117.tif 000012
とその秘密鍵
【数１２】
0004571117.tif 000013
とを用いる。この
【数１３】
0004571117.tif 000014
は、Ｖの証明書から得られるものである。このシグネチャは、メッセージ（３）としてＶに送信される。Ｖがメッセージ（３）を受信すると、ＶはＰの証明書内の
【数１４】
0004571117.tif 000015
を使用し、それをａ乗し、
【数１５】
0004571117.tif 000016
を得る。次にＶは、証明書内の値
【数１６】
0004571117.tif 000017
とＲとを使用して、ハッシュを生成する。このハッシュは、Ｐの公開鍵ＫPを用いて、受信したシグネチャを復号化することによって得られたものと比較される。比較された値が等しい場合、Ｖは、証明を生成したＣＡ1からＸPを受信したエンティティ（すなわち正当なＰ）であることを確信するであろう。これによりＶは更に、証明書が失効していないことを把握し、Ｐを特定することができる。Ｐによって送信された証明の有効性をチェックするため、検証ノードはシグネチャのために使用したハッシュの有効性を検証する必要があるので、ランダムな値ａを生成したものを除いて、どのノードも証明が正しいことをチェックすることができない。ここで、一方向ハッシュ関数（ｏｎｅ  ｗａｙ  ｈａｓｈ  ｆｕｎｃｔｉｏｎ）の非可逆的な（ｎｏｎ−ｒｅｖｅｒｓｉｂｌｅ）特性が使用される。更に、ここでは検証ノードを特定するために使用される
【数１７】
0004571117.tif 000018
を使用してシグネチャを生成するため、証明をＶ以外の別のノードに対して再実行することはできない。
【００７４】
ここで注意すべきは、Ｖの公開鍵ではなく、
【数２】
0004571117.tif 000019
を使用するということである。なぜならば、公開鍵及び秘密鍵のペアは危殆化することがあるという事実により、公開鍵を使用しても１つのユニークなエンティティを常に特定できるというわけではできないためである。しかしながら、正当なＶのみが
【数３】
0004571117.tif 000020
に関連付けられたＸVを把握しているため、正当なエンティティのみがそれを用いて確実に特定可能である。このため、正当なＶに対して証明を再実行することができる。
【００７５】
この実施形態による方法と以前のアプローチとの相違について述べる。以前のアプローチは、シグネチャと公開鍵とが共通のエクスポーネント、つまり秘密鍵を有することの証明を望んでいた。これに対し、本実施形態において唯一必要なことは、ＣＡによって生成されたシグネチャは、証明ノードが把握している値のエクスポーネントを用いて生成されたことを検証するということである。これにより、初期の公開鍵ベースのアプローチを秘密鍵ベースのアプローチに変えることができる。他の相違点は、本実施形態において、全体の証明は、一方向ハッシュ関数により生成されたハッシュにより検証ノードのみがアクセス可能であるという事実によるものである。これらは非可逆であるため、証明ノードがＣＡと共有している秘密は、検証ノードが計算することはできない。
【００７６】
以下、本発明の更なる実施形態について図４を参照して説明する。
【００７７】
図４は、認証方法のロバスト性が向上したバージョンを概略的に示している。ここで、注釈は前に使用したものと同じものに加えて、以下を追加する。
＊ｓｉｄP，ｓｉｄV：  現行の認証処理に対して各ノードが選択したセッション識別子
＊ｎP，ｎV：メッセージの鮮度（ｆｒｅｓｈｎｅｓｓ）を保証するために使用されるノンス
【００７８】
ここで、シグネチャは、公開鍵に関連付けられた秘密鍵についての情報を、ＣＡと共有している秘密鍵の情報にリンクするために使用される。これにより、公開鍵に関連付けられた秘密鍵を現在使用するノードは、ＣＡから秘密鍵を受信したノードであり、従って証明書の正当なオーナーであることを保証できる。
【００７９】
この実施形態に関連して、下記の点に注意する必要がある。
＊Ｐがメッセージ（３）でＶに送信し、Ｖがメッセージ（４）で応答するチャレンジを追加することにより、相互認証を提供することができる。
＊証明書に関連付けられた公開鍵及び秘密鍵のペアが危殆化した場合でも、証明書の正当なオーナーだけがその鍵のペアの正当なオーナーとして認証される。
【００８０】
アドホックネットワークの場合に生じる特定の環境を考慮するために、１つの実施形態によれば、効率的な失効メカニズムが提供される。
【００８１】
この実施形態では、以下の要求を送信することにより、証明書の正当なオーナーが失効を提供できる。
【数２０】
0004571117.tif 000021
【００８２】
この要求は、ネットワーク内の全てのノードに送信される。エッジノード（ｅｄｇｅ  ｎｏｄｅ）すなわちゲートウェイは、それを隣接するネットワークに配信できるため、失効した証明書に関する情報は効率的に配信される。
【００８３】
この実施形態における失効は、秘密鍵ＸPに関連付けられた、例えば前述したＲＳＡ暗号化システムにおいて定義されているような公開鍵ｅPを開示することによってなされる。ＸPは開示されないため、ＣＡからそれを受信したノードだけが、
【数２１】
0004571117.tif 000022
を検証できる有効な公開鍵を発行できる。要求を受信することにより、ノードは、Ｐの証明書に含まれているＰの公開鍵を用いて、受信したシグネチャが正しいかどうかをチェックし、続いてｅPを用いてＳPの妥当性をチェックする。これにより、ノードは失効要求の信憑性をチェックすることができる。
【００８４】
全ての検証が正しい場合、ノードは、その要求が証明書の正当なオーナーによって送信されたものであるという確信を持つことになる。ノードは、Ｐの証明書がもはや有効ではなく、それを失効リストに入れることを考慮する。いったん証明書が失効リストに入れられると、それに関連付けられた公開鍵はこれ以上使用されない。
【００８５】
１つの実施形態によれば、ノード間で失効情報を定期的に交換することにより、失効に関する方法の質を高めることができる。これにより、アドホックネットワークの新しいメンバがネットワークに加入する前に、失効している証明書に関する情報を得ることができる。新たに加入したノードが、以前のネットワークで失効した鍵についてアドホックネットワークに知らせることも可能になる。
【００８６】
ノードは、自身の証明書が失効した後は、新しい証明書を使用する必要がある。このため、各ノードは、２つ以上の証明書を備える必要がある。
【００８７】
別の実施形態によれば、失効を実行する方法は、ＸPを開示することである。しかしながら、その場合、アタッカーＮは、秘密鍵が開示された後にネットワークを離れ、別のネットワークでそれを使用して、失効要求の発信ノードに成り済ますことが可能なため、この方法はあまり好ましくない。
【００８８】
ｅPが開示される場合の興味深い点は、そのことが、秘密鍵を直接危殆化させないということである。有効な証明を生成できるようにするためには、Ｎは、ｅPを破壊、すなわちｅPからＸPを見つける必要がある。現在の暗号化技術は、秘密鍵を対応する公開鍵から見出すことの難しさに依存しているため、公開鍵が解読されるリスクはほとんど無視できる。
【００８９】
この失効に関する方法により、ネットワーク全体は、無効であると考えなければならない鍵を把握することができる。更に、ネットワーク内のどのノードも、その公開鍵及び秘密鍵のペアを危殆化させるノードに成り済まされることはないということが保証される。それはまた、証明書の正当なオーナーがいるネットワーク以外の異なるネットワークにおいて、成り済まし攻撃のリスクを著しく減少させる。
【００９０】
前述した実施形態の変更は、当業者にとって本発明の範囲から導き出すことなく可能であることは、当業者には明白であろう。特に、以下の説明は、現在及び前の実施形態並びに可能な変形例との関連において注意されたい。
【００９１】
これまで、秘密鍵ＸPはＣＡ、ここではＣＡ1によって配信されたものと考えられている。これは必ずそうでなければならないということでない。実際に、ノードＰは、秘密鍵ＸPを自身で選択することができる。次に、証明書の発行処理の間に、Ｐは、Ｐが自身で生成したシグネチャ
【数２２】
0004571117.tif 000023
をＣＡに示し、対応する秘密鍵を把握していることをＣＡに対して証明する。次に、ＣＡは、このシグネチャが他のノードによって使用されていないことをチェックする。使用されていない場合、ＣＡは証明書を生成できる。ＣＡが証明書を発行することにより、Ｐが実際にＰであって、Ｐに成り済ましている他の誰でもないことを認証する前に、パスポート又は何らかの「人間による特定（ｈｕｍａｎ  ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）」などの「古典的な手段」によって、Ｐのアイデンティティの確認を更に行うことができる。
【００９２】
更に、シグネチャを生成するために使用する大きな数ｎは、証明書ごとに異なっていてもよい。
【００９３】
前述の実施形態では、大抵の場合、例としてＲＳＡが選択されているが、本発明の実施形態は異なる暗号化システムを用いて実行することができることにも注意されたい。
【００９４】
図３を参照して前に説明した認証方法では、メッセージ（２）において
【数２３】
0004571117.tif 000024
を送信する代わりにチャレンジ
【数２４】
0004571117.tif 000025
を送信することができる。すると、メッセージ（３）で送信される証明は、
【数２５】
0004571117.tif 000026
となる。図４で定義されているプロトコルの完全なバージョンでも、同じ変更を行うことができる。これによっても、ノードＰを特定することができる。
【００９５】
前述した実施形態は、ハードウェア、ソフトウェア又はソフトウェアとハードウェアとの組合せによって実行できることが、当業者には理解されよう。本発明の実施形態に関連して説明したモジュールは、本発明の実施形態に関連して説明した方法に基づいて動作するように適切にプログラミングされたマイクロプロセッサ又はコンピュータにより全体的又は部分的に実行することができる。
【００９６】
本発明の実施形態によれば、記憶媒体又は送信リンクなどの何らかの物理的な手段によって具体化されるデータキャリア又は他の方法のいずれかに記憶されている、コンピュータ上で前述した本発明の実施形態に基づいて動作できるコンピュータプログラムが提供される。
【図面の簡単な説明】
【００９７】
【図１Ａ】本発明の実施形態を概略的に示す図である。
【図１Ｂ】本発明の更なる実施形態を概略的に示す図である。
【図２】本発明の実施形態による証明書を概略的に示す図である。
【図３】本発明の実施形態の動作を概略的に示す図である。
【図４】本発明の更なる実施形態の動作を概略的に示す図である。
【図１Ａ】
0004571117.tif 000027
【図１Ｂ】
0004571117.tif 000028
【図２】
0004571117.tif 000029
【図３】
0004571117.tif 000030
【図４】
0004571117.tif 000031