(57)【特許請求の範囲】
【請求項１】
アドホックグループを有し、勧誘者のコンピューティングデバイス（以下、勧誘者）および認証者のコンピューティングデバイス（以下、認証者）は前記グループのメンバであり、被勧誘者のコンピューティングデバイス（以下、被勧誘者）は前記グループのメンバではなく、前記勧誘者は秘密パスワードを前記被勧誘者と共有するコンピューティング環境において、前記勧誘者により、前記被勧誘者が前記グループに加入するためのインビテーションを発行するための方法であって、
前記勧誘者が、第１の秘密暗号鍵を、前記秘密共有パスワードに基づいて生成するステップと、
前記勧誘者が、前記第１の秘密暗号鍵に関連付けられた第１の公開暗号鍵を生成するステップと、
前記勧誘者が、前記第１の公開暗号鍵を含むインビテーションを作成するステップと、
前記勧誘者が、前記インビテーションに、前記勧誘者の秘密暗号鍵を使用して署名するステップと、
前記勧誘者が、前記インビテーションを、前記被勧誘者および前記認証者によりアクセス可能にするステップと
を含むことを特徴とする方法。
【請求項２】
前記第１の秘密暗号鍵を生成するステップは、前記勧誘者が、入力情報として前記共有秘密パスワードを決定関数に渡すステップ、および、前記勧誘者が、前記決定関数を実行するステップを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記第１の秘密暗号鍵を生成するステップは、前記勧誘者が、前記決定関数に、さらなる入力情報として前記アドホックグループの識別子、前記勧誘者の識別子、前記被勧誘者の識別子、タイムスタンプおよびインビテーション有効期間からなるグループから選択された情報を渡すステップをさらに含むことを特徴とする請求項２に記載の方法。
【請求項４】
前記インビテーションは、前記決定関数に渡された前記共有秘密パスワード以外の入力情報をさらに含むことを特徴とする請求項３に記載の方法。
【請求項５】
前記決定関数を実行するステップは、前記勧誘者が、暗号ハッシュを前記共有秘密パスワードに適用するステップを含むことを特徴とする請求項２に記載の方法。
【請求項６】
前記第１の秘密暗号鍵を生成するステップは、前記勧誘者が、素数を法とする前記決定関数の出力を前記第１の秘密暗号鍵に割り当てるステップをさらに含むことを特徴とする請求項２に記載の方法。
【請求項７】
前記第１の公開暗号鍵を生成するステップは、以下の式に従って第１の公開暗号鍵を生成することを特徴とする請求項６に記載の方法。
ＰｕｂｌｉｃＫｅｙ１＝ｐを法とするｇＰｒｉｖａｔｅＫｅｙ１
ただし、
ＰｕｂｌｉｃＫｅｙ１は、第１の秘密暗号鍵ＰｒｉｖａｔｅＫｅｙ１に対応する第１の公開暗号鍵であり、
ｇは、素数ｐのための生成元（ｇｅｎｅｒａｔｏｒ）である。
【請求項８】
前記インビテーションは、前記素数および前記生成元をさらに含むことを特徴とする請求項７に記載の方法。
【請求項９】
前記第１の秘密暗号鍵に関連付けられた第１の公開暗号鍵を生成するステップは、前記勧誘者が、第１の公開暗号鍵を生成するステップであって、その結果これらの２つの鍵のうち一方を使用して暗号化された値を、他方を使用して解読することが可能なステップを含むことを特徴とする請求項１に記載の方法。
【請求項１０】
前記署名するステップは、前記勧誘者が、前記インビテーションのコンテンツのハッシュを取るステップ、および、前記勧誘者が、前記勧誘者の前記秘密暗号鍵を使用して前記ハッシュを暗号化するステップを含むことを特徴とする請求項１に記載の方法。
【請求項１１】
前記インビテーションをアクセス可能にするステップでは、前記インビテーションを含むメッセージを送信するステップ、前記勧誘者および前記認証者がアクセス可能な場所に前記インビテーションをポストするステップ、および前記インビテーションを作成する前に、前記インビテーションのコンテンツのいくつかの値を固定するステップからなるグループから選択されたステップを使用することを特徴とする請求項１に記載の方法。
【請求項１２】
勧誘者のコンピューティングデバイス（以下、勧誘者）により、被勧誘者のコンピューティングデバイス（以下、被勧誘者）がアドホックグループに加入するためのインビテーションを発行するための方法を実行するための命令を含むコンピュータ可読媒体であって、前記勧誘者および認証者のコンピューティングデバイス（以下、認証者）は前記グループのメンバであり、前記被勧誘者は前記グループのメンバではなく、前記勧誘者は秘密パスワードを前記被勧誘者と共有し、前記方法は、
前記勧誘者が、第１の秘密暗号鍵を、前記秘密共有パスワードに基づいて生成するステップと、
前記勧誘者が、前記第１の秘密暗号鍵に関連付けられた第１の公開暗号鍵を生成するステップと、
前記勧誘者が、前記第１の公開暗号鍵を含むインビテーションを作成するステップと、
前記勧誘者が、前記インビテーションに、前記勧誘者の秘密暗号鍵を使用して署名するステップと、
前記勧誘者が、前記インビテーションを、前記被勧誘者および前記認証者によりアクセス可能にするステップと
を含むことを特徴とするコンピュータ可読媒体。
【請求項１３】
勧誘者のコンピューティングデバイス（以下、勧誘者）および認証者のコンピューティングデバイス（以下、認証者）はアドホックグループのメンバであり、被勧誘者のコンピューティングデバイス（以下、被勧誘者）は前記グループのメンバではなく、前記勧誘者は、前記グループに加入するためのインビテーションを前記被勧誘者に発行している、アドホックグループを有するコンピューティング環境において、前記認証者が認証チャレンジを前記被勧誘者に発行するための方法であって、
前記認証者が、前記インビテーションにアクセスするステップと、
前記認証者が、前記インビテーションの有効性についてチェックするステップと、
前記インビテーションが有効である場合、
前記認証者が、第２の秘密暗号鍵を生成するステップと、
前記認証者が、前記第２の秘密暗号鍵に関連付けられた第２の公開暗号鍵を生成するステップと、
前記認証者が、共有チャレンジ暗号鍵を、前記インビテーションに含まれた第１の公開暗号鍵および前記第２の秘密暗号鍵から生成するステップと、
前記認証者が、チャレンジ値を生成するステップと、
前記認証者が、前記チャレンジ値および前記第２の公開暗号鍵を含む認証チャレンジを作成するステップと、
前記認証者が、前記認証チャレンジを、前記被勧誘者によりアクセス可能にするステップと
を含むことを特徴とする方法。
【請求項１４】
前記インビテーションにアクセスするステップでは、前記インビテーションを含むメッセージを受信するステップ、および、前記勧誘者および前記認証者にとってアクセス可能な場所において前記インビテーションにアクセスするステップからなるグループから選択されたステップを使用することを特徴とする請求項１３に記載の方法。
【請求項１５】
前記インビテーションの有効性についてチェックするステップは、前記認証者が、前記インビテーションに含まれた情報をチェックするステップを含み、前記情報が、前記アドホックグループの識別子、前記勧誘者の識別子、前記被勧誘者の識別子、タイムスタンプおよびインビテーション有効期間からなるグループから選択されることを特徴とする請求項１３に記載の方法。
【請求項１６】
前記インビテーションの有効性についてチェックするステップは、前記認証者が、前記勧誘者の公開暗号鍵を使用して前記インビテーションの署名を解読するステップ、前記認証者が、前記インビテーションのコンテンツのハッシュを取るステップ、および、前記認証者が、前記ハッシュを前記解読された署名と比較するステップを含むことを特徴とする請求項１３に記載の方法。
【請求項１７】
前記第２の秘密暗号鍵を生成するステップは、前記認証者が、ランダムに生成された数を前記第２の秘密暗号鍵に割り当てるステップを含むことを特徴とする請求項１３に記載の方法。
【請求項１８】
前記第２の公開暗号鍵を生成するステップは、以下の式に従って第２の公開暗号鍵を生成することを特徴とする請求項１３に記載の方法。
ＰｕｂｌｉｃＫｅｙ２＝ｐを法とするｇＰｒｉｖａｔｅＫｅｙ２
ただし、
ＰｒｉｖａｔｅＫｅｙ２は、ランダムに生成された第２の秘密暗号鍵であり、
ＰｕｂｌｉｃＫｅｙ２は、第２の秘密暗号鍵ＰｒｉｖａｔｅＫｅｙ２に対応する第２の公開暗号鍵であり、
ｇは、素数ｐのための生成元（ｇｅｎｅｒａｔｏｒ）である。
【請求項１９】
前記共有チャレンジ暗号鍵を生成するステップは、以下の式に従って共有チャレンジ暗号鍵を生成することを特徴とする請求項１８に記載の方法。
ＣｈａｌｌｅｎｇｅＫｅｙ＝ｐを法とするＰｕｂｌｉｃＫｅｙ１ＰｒｉｖａｔｅＫｅｙ２
ただし、
ＣｈａｌｌｅｎｇｅＫｅｙは共有チャレンジ暗号鍵であり、
ＰｕｂｌｉｃＫｅｙ１は、第１の公開暗号鍵であり、
ＰｒｉｖａｔｅＫｅｙ２は、第２の秘密暗号鍵であり、
ｐは、素数である。
【請求項２０】
前記第２の秘密暗号鍵に関連付けられた第２の公開暗号鍵を生成するステップは、前記認証者が、これらの２つの鍵のうち一方を使用して暗号化された値を、他方を使用して解読することができるように、第２の公開暗号鍵を生成するステップを含むことを特徴とする請求項１３に記載の方法。
【請求項２１】
前記チャレンジ値を生成するステップは、前記認証者が、乱数を生成するステップを含むことを特徴とする請求項１３に記載の方法。
【請求項２２】
前記チャレンジ値を生成するステップは、
前記認証者が、前記共有チャレンジ暗号鍵およびサイファを使用して前記乱数を暗号化するステップと、
前記認証者が、前記暗号化された乱数を前記チャレンジ値に割り当てるステップとをさらに含み、
前記認証チャレンジは前記サイファをさらに含む
ことを特徴とする請求項２１に記載の方法。
【請求項２３】
前記チャレンジ値を生成するステップは、前記認証者が、前記乱数を特定性情報のハッシュと結合するステップをさらに含み、前記特定性情報が、前記アドホックグループの識別子、前記認証者の識別子および前記被勧誘者の識別子からなるグループから選択されることを特徴とする請求項２１に記載の方法。
【請求項２４】
前記チャレンジ値を生成するステップは、
前記認証者が、前記共有チャレンジ暗号鍵およびサイファを使用して、前記結合された乱数および特定性情報のハッシュを暗号化するステップと、
前記認証者が、前記暗号化された乱数および特定性情報のハッシュを前記チャレンジ値に割り当てるステップとをさらに含み、
前記認証チャレンジは前記サイファをさらに含む
ことを特徴とする請求項２３に記載の方法。
【請求項２５】
前記認証チャレンジをアクセス可能にするステップでは、前記認証チャレンジを含むメッセージを送信するステップ、前記認証者および前記被勧誘者がアクセス可能な場所に前記認証チャレンジをポストするステップ、および前記認証チャレンジを作成する前に、前記認証チャレンジのコンテンツのいくつかの値を固定するステップからなるグループから選択されたステップを使用することを特徴とする請求項１３に記載の方法。
【請求項２６】
認証者のコンピューティングデバイス（以下、認証者）が認証チャレンジを被勧誘者のコンピューティングデバイス（以下、被勧誘者）に発行するための方法を、実行するための命令を含むコンピュータ可読媒体であって、
勧誘者のコンピューティングデバイス（以下、勧誘者）および前記認証者はアドホックグループのメンバであり、前記被勧誘者は前記グループのメンバではなく、前記勧誘者は、前記グループに加入するためのインビテーションを前記被勧誘者に発行しており、前記方法は、
前記認証者が、前記インビテーションにアクセスするステップと、
前記認証者が、前記インビテーションの有効性についてチェックするステップと、
前記インビテーションが有効である場合、
前記認証者が、第２の秘密暗号鍵を生成するステップと、
前記認証者が、前記第２の秘密暗号鍵に関連付けられた第２の公開暗号鍵を生成するステップと、
前記認証者が、共有チャレンジ暗号鍵を、前記インビテーションに含まれた第１の公開暗号鍵および前記第２の秘密暗号鍵から生成するステップと、
前記認証者が、チャレンジ値を生成するステップと、
前記認証者が、前記チャレンジ値および前記第２の公開暗号鍵を含む認証チャレンジを作成するステップと、
前記認証者が、前記認証チャレンジを、前記被勧誘者によりアクセス可能にするステップと
を含むことを特徴とするコンピュータ可読媒体。
【請求項２７】
アドホックグループを有し、勧誘者のコンピューティングデバイス（以下、勧誘者）および認証者のコンピューティングデバイス（以下、認証者）は前記グループのメンバであり、被勧誘者のコンピューティングデバイス（以下、被勧誘者）は前記グループのメンバではなく、前記勧誘者は秘密パスワードを前記被勧誘者と共有し、前記勧誘者は、前記グループに加入するためのインビテーションを前記被勧誘者に発行しており、前記認証者は認証チャレンジを前記被勧誘者に発行するコンピューティング環境において、前記被勧誘者が前記認証チャレンジへの応答を発行するための方法であって、
前記被勧誘者が、前記認証チャレンジにアクセスするステップと、
前記被勧誘者が、第１の秘密暗号鍵を、前記秘密共有パスワードに基づいて生成するステップと、
前記被勧誘者が、共有チャレンジ暗号鍵を、前記生成された第１の秘密暗号鍵、および、前記認証チャレンジに含まれた第２の公開暗号鍵に基づいて生成するステップと、
前記被勧誘者が、チャレンジ応答値を、前記認証チャレンジに含まれたチャレンジ値に基づいて生成するステップと、
前記被勧誘者が、前記チャレンジ応答値を含む認証チャレンジ応答を作成するステップと、
前記被勧誘者が、前記認証チャレンジ応答を、前記認証者によりアクセス可能にするステップとを含むことを特徴とする方法。
【請求項２８】
前記認証チャレンジにアクセスするステップでは、前記認証チャレンジを含むメッセージを受信するステップ、および、前記認証者および前記被勧誘者がアクセス可能な場所における前記認証チャレンジにアクセスするステップからなるグループから選択されたステップを使用することを特徴とする請求項２７に記載の方法。
【請求項２９】
前記第１の秘密暗号鍵を生成するステップは、前記被勧誘者が、決定関数を実行するステップ、および、前記被勧誘者が、前記共有秘密パスワードを入力として前記決定関数に渡すステップを含むことを特徴とする請求項２７に記載の方法。
【請求項３０】
前記被勧誘者が、前記インビテーションにアクセスするステップをさらに含み、前記第１の秘密暗号鍵を生成するステップは、前記被勧誘者が、さらなる入力として前記決定関数に、前記インビテーションに含まれた情報を渡すステップをさらに含み、前記情報が、前記アドホックグループの識別子、前記勧誘者の識別子、前記被勧誘者の識別子、タイムスタンプおよびインビテーション有効期間からなるグループから選択されることを特徴とする請求項２９に記載の方法。
【請求項３１】
前記決定関数を実行するステップは、前記被勧誘者が、暗号ハッシュを前記共有秘密パスワードに適用するステップを含むことを特徴とする請求項２９に記載の方法。
【請求項３２】
前記第１の秘密暗号鍵を生成するステップは、前記被勧誘者が、素数を法とする前記決定関数の出力を前記第１の秘密暗号鍵に割り当てるステップをさらに含むことを特徴とする請求項２９に記載の方法。
【請求項３３】
前記共有チャレンジ暗号鍵を生成するステップは、以下の式に従って共有チャレンジ暗号鍵を生成することを特徴とする請求項２７に記載の方法。
ＣｈａｌｌｅｎｇｅＫｅｙ＝ｐを法とするＰｕｂｌｉｃＫｅｙ１ＰｒｉｖａｔｅＫｅｙ２
ただし、
ＣｈａｌｌｅｎｇｅＫｅｙは共有チャレンジ暗号鍵であり、
ＰｕｂｌｉｃＫｅｙ１は、第１の公開暗号鍵であり、
ＰｒｉｖａｔｅＫｅｙ２は、第２の秘密暗号鍵であり、
ｐは、素数である。
【請求項３４】
前記チャレンジ応答値を生成するステップは、前記被勧誘者が、前記共有チャレンジ暗号鍵およびサイファを使用して前記チャレンジ値を暗号化するステップを含み、前記認証チャレンジ応答は前記サイファをさらに含むことを特徴とする請求項２７に記載の方法。
【請求項３５】
前記チャレンジ応答値を生成するステップは、前記被勧誘者が、前記暗号化されたチャレンジ値のハッシュを前記チャレンジ応答値に割り当てるステップをさらに含むことを特徴とする請求項３４に記載の方法。
【請求項３６】
前記チャレンジ応答値を生成するステップは、前記被勧誘者が、前記チャレンジ値を特定性情報のハッシュと結合するステップを含み、前記特定性情報が、前記アドホックグループの識別子、前記認証者の識別子および前記被勧誘者の識別子からなるグループから選択されることを特徴とする請求項２７に記載の方法。
【請求項３７】
前記チャレンジ応答値を生成するステップは、前記被勧誘者が、前記共有チャレンジ暗号鍵およびサイファを使用して、前記結合されたチャレンジ値および特定性情報のハッシュを暗号化するステップをさらに含み、前記認証チャレンジ応答は前記サイファをさらに含むことを特徴とする請求項３６に記載の方法。
【請求項３８】
前記チャレンジ応答値を生成するステップは、前記被勧誘者が、前記暗号化された、結合されたチャレンジ値および特定性情報のハッシュを、前記チャレンジ応答値に割り当てるステップをさらに含むことを特徴とする請求項３７に記載の方法。
【請求項３９】
前記チャレンジ応答値を生成するステップは、前記被勧誘者が、前記共有チャレンジ暗号鍵、および、前記認証チャレンジに含まれたサイファを使用して、前記チャレンジ値を解読するステップを含むことを特徴とする請求項２７に記載の方法。
【請求項４０】
前記チャレンジ応答値を生成するステップは、前記被勧誘者が、前記解読されたチャレンジ値のハッシュを前記チャレンジ応答値に割り当てるステップをさらに含むことを特徴とする請求項３９に記載の方法。
【請求項４１】
前記チャレンジ応答値を生成するステップは、前記被勧誘者が、前記解読されたチャレンジ値から特定性情報のハッシュを除去するステップをさらに含み、前記特定性情報が、前記アドホックグループの識別子、前記認証者の識別子および前記被勧誘者の識別子からなるグループから選択されることを特徴とする請求項３９に記載の方法。
【請求項４２】
前記チャレンジ応答値を生成するステップは、前記被勧誘者が、前記解読されたチャレンジ値のハッシュから前記特定性情報のハッシュを除去したものを、前記チャレンジ応答値に割り当てるステップをさらに含むことを特徴とする請求項４１に記載の方法。
【請求項４３】
前記認証チャレンジ応答をアクセス可能にするステップは、前記認証チャレンジ応答を含むメッセージを送信すること、および、前記被勧誘者および前記認証者がアクセス可能な場所に前記認証チャレンジ応答をポストすることからなるグループから選択された技術を使用するステップを含むことを特徴とする請求項２７に記載の方法。
【請求項４４】
被勧誘者のコンピューティングデバイス（以下、被勧誘者）が認証チャレンジへの応答を発行するための方法を、実行するための命令を含むコンピュータ可読媒体であって、
勧誘者のコンピューティングデバイス（以下、勧誘者）および認証者のコンピューティングデバイス（以下、認証者）はアドホックグループのメンバであり、前記被勧誘者は前記グループのメンバではなく、前記勧誘者は秘密パスワードを前記被勧誘者と共有し、前記勧誘者は、前記グループに加入するためのインビテーションを前記被勧誘者に発行し、前記認証者は前記認証チャレンジを前記被勧誘者に発行し、前記方法は、
前記被勧誘者が、前記認証チャレンジにアクセスするステップと、
前記被勧誘者が、第１の秘密暗号鍵を、前記秘密共有パスワードに基づいて生成するステップと、
前記被勧誘者が、共有チャレンジ暗号鍵を、前記生成された第１の秘密暗号鍵、および、前記認証チャレンジに含まれた第２の公開暗号鍵に基づいて生成するステップと、
前記被勧誘者が、チャレンジ応答値を、前記認証チャレンジに含まれたチャレンジ値に基づいて生成するステップと、
前記被勧誘者が、前記チャレンジ応答値を含む認証チャレンジ応答を作成するステップと、
前記被勧誘者が、前記認証チャレンジ応答を、前記認証者によりアクセス可能にするステップとを含むことを特徴とするコンピュータ可読媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は一般にコンピュータ通信に関し、より詳細には、ネットワークグループに加入するように勧誘された潜在メンバを認証することに関する。
【０００２】
【従来の技術】
「アドホック」のコンピュータグループ（以下、アドホックグループ）では、各コンピュータが直接、コンピューティングリソースおよびサービスに通信し、これらをグループにおける他のコンピュータと共有する。このタイプのグループは、すべてのメンバの集合的な計算能力がグループ全体に利益をもたらすことができる。例えば、著しい計算能力およびリソースを要する大規模な計算ジョブを、グループの多数のメンバ中に分散させることができ、計算結果を直接グループのメンバの間で共有することができる。さらに、このタイプのグループは、以前に決してグループに接続したことのない新しいメンバがグループに加入することが可能である。
【０００３】
アドホックグループを管理し、およびサポートするために、各コンピュータは３つの基本的役割のうち１つを受け持つ。これら３つの役割は、所与の方法で他のグループメンバと対話するための特権によって定義される。３つの基本的役割は、オーナー、勧誘者および認証者である。オーナーはグループを確立し、グループにおいて定義されたすべての特権を有する。これらには、グループに加入するように新しいメンバを勧誘するための特権、新しいメンバを認証するため、したがって新しいメンバのグループへの加入を許可するための特権、メンバの役割を変更するための特権、および、グループについての情報を変更するための特権が含まれる。勧誘者は、グループ情報を変更するための特権を除いて、オーナーと同じ特権を有する。認証者はグループへの新しいメンバを認証することができるが、新しいメンバをグループに加入するように勧誘するための特権を有していない。
【０００４】
【発明が解決しようとする課題】
セキュリティは、アドホックグループにおける主要な関心事の１つである。グループを安全に保つために、新しい潜在メンバがグループに加入しようと試みているとき、認証プルーフをグループにおける認証者と交換する。この認証プロセスが新しいグループメンバによって、新しいグループメンバが直接会話することを望む相手のあらゆるグループメンバと共に繰り返される。（第１のグループメンバは、共に第１および第２のメンバが認証されている第３の相手を通じて情報を渡すことによって、共に認証されていない第２のメンバと直接会話することができる。この間接通信方法は常に使用可能であるが、本発明の説明に影響を及ぼすものではなく、再度言及しない。）固定メンバシップによるグループとは異なり、アドホックグループでは、新しいメンバはグループへの加入をいつでも求めることができる。グループにおける認証者が、グループのすべての潜在メンバについての認証情報を保持することは、ほぼ不可能である。
【０００５】
アドホックグループにおける認証を一層より問題とするのは、新しい潜在メンバは、新しいメンバをグループに加入するように勧誘するために必要な特権を有していない認証者と会話することを望む可能性がある点である。例えば、アリスは、認証者であるボブと会話するためにアドホックグループに加入することを意図する。トレントはグループの勧誘者である。アリスはグループに加入するためのインビテーション（ｉｎｖｉｔａｔｉｏｎ）をトレントから得るが、アリスはこのとき、ボブと会話するためにボブによる認証を望む。トレントはアリスを信頼し（そうでなければ、彼は彼女をグループに加入するように勧誘していないはずである）、ボブはトレントを信頼し、およびトレントがアリスに与えたインビテーションを信頼しているが、ボブはアリスのことを何も知らず、よって、彼女を信頼していない。アリスのグループへの加入を許す前に、ボブはトレントについての彼の信頼の何かをアリスに伝える必要がある。
【０００６】
必要とされることは、グループにおける認証者が、グループにおいて確立された勧誘者のその信頼を潜在グループメンバに安全に伝えるためのメカニズムである。
【０００７】
【課題を解決するための手段】
前述に鑑みて、本発明は、グループにおける勧誘者と信頼の関係が確立されており、および勧誘者によってグループに加入するように勧誘されているコンピュータ（被勧誘者）が、認証者によってグループへの加入を認証するためにその信頼の関係を活用するための方法を提供する。
【０００８】
勧誘者および被勧誘者は、他の誰にも知られていないものと推定された秘密パスワードを共有する。勧誘者は、共有の秘密パスワード（以下、共有秘密パスワード）を入力として決定関数を実行することによって第１の公開／秘密暗号鍵のペアを作成する。（この機能への他の入力には、タイムスタンプ、および、勧誘者、被勧誘者およびグループの識別子を含めてもよい。）次いで、勧誘者は被勧誘者のためのインビテーションを発行する。インビテーションは、第１の公開／秘密暗号鍵のペアからの公開暗号鍵と共に、共有秘密パスワードを除く決定関数への他の入力を含む。標準の暗号化技術を使用して、勧誘者はインビテーションに、勧誘者の秘密暗号鍵により署名する。（勧誘者の秘密暗号鍵は、勧誘者が生成したばかりである第１の公開／秘密暗号鍵のペアに関係付けられないことに留意されたい。）インビテーションが、グループにおける被勧誘者および認証者の両方に知らされる。
【０００９】
インビテーションがグループ内の勧誘者によって発行されたことを確認するため、グループ内のすべての勧誘者の公開暗号鍵を知っている認証者は、勧誘者の署名を検証する。インビテーションが有効である場合、認証者は被勧誘者のアイデンティティを認証しようと試みる。認証者は第２の公開／秘密暗号鍵のペアを作成する。周知のＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ（ＤＨ）理論を適用して、認証者は共有チャレンジ暗号鍵を、第１の公開／秘密暗号鍵のペアの公開暗号鍵および第２の公開／秘密暗号鍵のペアの秘密暗号鍵から作成する。被勧誘者がこの共有チャレンジ暗号鍵を再生することができるかどうかをテストするため、認証者はチャレンジ値および期待のチャレンジ応答値（以下、期待チャレンジ応答値）を生成する。チャレンジ値および期待チャレンジ応答値は共に、共有チャレンジ暗号鍵を含む、処理系依存の演算によってリンクされる。認証者はチャレンジ値を被勧誘者に、第２の公開暗号鍵と共に配信する。
【００１０】
上記チャレンジを受信すると、被勧誘者は、勧誘者が従った手順を模倣する。インビテーションのコンテンツ、および、被勧誘者が有する、勧誘者と共有する秘密パスワードの知識を使用して、被勧誘者は、勧誘者によって作成された第１の秘密暗号鍵を再生する。ＤＨ理論を適用して、被勧誘者は次に共有チャレンジ暗号鍵を、第１の公開／秘密暗号鍵のペアの再生された秘密暗号鍵および第２の公開／秘密暗号鍵のペアの公開暗号鍵から再生する。共有チャレンジ暗号鍵が再生された後、被勧誘者は共有チャレンジ暗号鍵を使用して、受信したチャレンジ値について処理系依存の演算を実行する。次いで、被勧誘者は、演算の結果をチャレンジ応答値として認証者に戻すように送信する。
【００１１】
認証者は、被勧誘者から受信されたチャレンジ応答値を、それが所有する期待チャレンジ応答値と比較する。これらが合致した場合、認証者は、この被勧誘者が、勧誘者がインビテーションを発行した相手に違いないことを信頼する。いかなるサードパーティ（第３者）も秘密共有パスワードを知らず、そのため、いかなるサードパーティも共有チャレンジ暗号鍵を正しく再生し、およびチャレンジ値からチャレンジ応答値を導出するために必要な演算を実行する可能性がない。次いで、認証者は被勧誘者がグループに加入することを許可する。
【００１２】
したがって、それらの共有秘密パスワードによって表されたような、勧誘者と被勧誘者の間の信頼は、被勧誘者と認証者の間の信頼を確立するための基となる。オプションの機能として、認証者は、相互認証プロセスを完成するためにそれ自体を被勧誘者に対して認証する。
【００１３】
被勧誘者はこのときグループメンバであり、インビテーションを再使用してグループの他のメンバに対してそれ自体を認証することができる。（インビテーションに一度だけ使用可能としてマークすることによるか、さもなくば、時間制限をその使用に課すことにより、勧誘者はこの能力を制限することができる。）
特許請求の範囲は本発明の特徴を詳細に示すが、本発明は、その目的および利点と共に、以下の詳細な説明を添付の図面と共に考慮することから、最適に理解することができる。
【００１４】
【発明の実施の形態】
図面では、同様の参照番号は同様の要素を示し、本発明が適切なコンピューティング環境において実施されるものとして例示される。以下の記載は本発明の実施形態に基づくが、本明細書に明示的に記載されない代替の実施形態に関して以下の記載を、本発明を限定するものとして取るべきではない。
【００１５】
以下の記載では、本発明を、そうでないと指示しない限り、１つまたは複数のコンピューティングデバイスによって実行されるオペレーションの動作および記号表現を参照して説明する。このような動作自身およびオペレーションを、時として、コンピュータにより実行されるものと称する、これら動作およびオペレーションは、データを構造形式で電気信号のコンピューティングデバイスの処理装置による操作を含む。この操作はデータを変換するか、あるいはこれらをコンピューティングデバイスのメモリシステム内のある位置に保持し、これらは、当業者に十分に理解される方法でデバイスのオペレーションを再構成するか、さもなくば、変更する。データが保持されるデータ構造は、データのフォーマットによって定義された特定のプロパティを有するメモリの物理的位置となる。しかし、本発明をこれから述べるが、これを限定することを意味しない。当業者には理解されるように、以下に記載する様々な動作およびオペレーションをハードウェアにおいて実施してもよい。
【００１６】
本発明は、コンピューティングデバイスのアドホックグループに加入するように勧誘された潜在メンバを認証するための方法を提供する。図１で、アドホックグループ１００のカレントメンバは、勧誘者１０２および認証者１０４を含む。勧誘者１０２は、現在はアドホックグループ１００の外側にあるデバイスであるコンピューティングデバイス１０６（被勧誘者）と通信している。勧誘者１０２および被勧誘者１０６は互いに信頼しており、これが、これらが共有する秘密パスワードによって表される。この信頼に基づいて、勧誘者１０２は被勧誘者１０６に、グループ１００に加入するように勧誘する。しかし、被勧誘者１０６は、勧誘者１０２と通信するためではなく、認証者１０４のうち１つと通信するために、グループ１００に加入することを望む。認証者１０４は、被勧誘者１０６がグループ１００に加入するように勧誘された後、被勧誘者１０６を認証することができるが、認証者１０４は、被勧誘者１０６を加入するように勧誘するために必要な特権を有していない。認証者１０４は、被勧誘者１０６を信頼するための理由を有していない。認証者１０４は、被勧誘者１０６を信頼するための理由を有していない。本発明は、それにより勧誘者１０２の有する被勧誘者１０６の信頼が認証者１０４に伝えられる方法を提供する。このとき、被勧誘者１０６を信頼することで、認証者１０４は、被勧誘者１０６がグループ１００に入ることができるようにする。
【００１７】
多数のアドホックグループの通信は、不当な盗聴者による傍受を受ける。ワイヤレス通信技術を使用するグループは特に盗聴を受けやすい。盗聴者１０８が、被勧誘者１０６の認証中に次々に渡された情報を傍受した場合、盗聴者１０８はその情報を使用してアドホックグループ１００への加入許可を得ることができることが考えられる。本発明の方法は、すべての認証情報（勧誘者１０２と被勧誘者１０６の間で共有された秘密パスワードのみを除く）が盗聴者１０８に対してオープンになった場合でさえ、グループ１００にセキュリティを提供するように設計される。この方法はまた、安全パスワードのセキュリティも保護し、これは認証者１０４が決してそのパスワードを知る必要がないからである。
【００１８】
図１の勧誘者１０２、認証者１０４および被勧誘者１０６は、いずれかのアーキテクチャのものにすることができる。図２は、本発明をサポートする例示的コンピュータシステムを一般的に例示するブロック図である。図２のコンピュータシステムは、適切な環境の一実施例でしかなく、本発明の使用または機能性の範囲に関するいかなる限定も示唆するように意図されるものではない。コンピューティングデバイス１０２は、図２に例示するコンポーネントのいずれか１つまたはその組合せの関係に依存したりまたはその関係を要件とすると解釈されるべきではない。本発明は、多数の他の汎用または専用コンピューティング環境または構成により動作可能である。周知のコンピューティングシステム、環境、および、本発明と共に使用するための適切な構成の例には、それだけに限定されるものではないが、パーソナルコンピュータ、サーバ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラマブルコンピューマエレクトロニクス、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、および、上のシステムまたはデバイスのいずれかを含む分散コンピューティング環境が含まれる。その最も基本的な構成では、コンピューティングデバイス１０２は通常、少なくとも１つの処理装置２００およびメモリ２０２を含む。メモリ２０２は、揮発性（ＲＡＭなど）、不揮発性メモリ（ＲＯＭまたはフラッシュメモリなど）、またはこの２つのある組合せにすることができる。図２では、この最も基本的な構成が点線２０４によって例示される。コンピューティングデバイス１０２は追加の特徴および機能性を有することができる。例えば、コンピューティングデバイス１０２は、追加の記憶装置（リムーバブルおよび非リムーバブル）を含むことができ、これには、それだけに限定されるものではないが、磁気および光ディスクおよびテープが含まれる。このような追加の記憶装置を、図２ではリムーバブル記憶装置２０６および非リムーバブル記憶装置２０８によって例示する。コンピュータ記憶媒体には、揮発性および不揮発性、リムーバブルおよび非リムーバブル媒体が含まれ、これは、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータなど、情報の格納のためのいずれかの方法または技術において実施される。メモリ２０２、リムーバブル記憶装置２０６および非リムーバブル記憶装置２０８はすべてコンピュータ記憶媒体の実施例である。コンピュータ記憶媒体には、それだけに限定されるものではないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク、他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、他の磁気記憶デバイス、および、所望の情報を格納するために使用することができ、およびデバイス１０２によってアクセスすることができる他のいずれかの媒体が含まれる。このようなコンピュータ記憶媒体のいずれもデバイス１０２の一部にすることができる。デバイス１０２はまた、このデバイスが他のデバイスと通信できるようにする通信チャネル２１０も含むことができる。通信チャネル２１０は、通信媒体の一実施例である。通信媒体は通常、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータを、搬送波または他の移送メカニズムなどの変調データ信号において実施し、いずれかの情報配信媒体を含む。「変調データ信号」という用語は、信号における情報をエンコードするような方法で設定あるいは変更されたその特性の１つまたは複数を有する信号を意味する。限定ではなく例として、通信媒体には、ワイヤードネットワークまたは直接ワイヤード接続などのワイヤード媒体、および、音響、ＲＦ、赤外線および他のワイヤレス媒体などのワイヤレス媒体が含まれる。本明細書で使用される「コンピュータ可読媒体」という用語は、記憶媒体および通信媒体を共に含む。コンピューティングデバイス１０２はまた入力デバイス２１２も有することができ、これは、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイスなどである。ディスプレイ、スピーカおよびプリンタなどの出力デバイス２１４も含めることができる。これらのすべてのデバイスは当技術分野において周知であり、ここで詳細に論じる必要はない。
【００１９】
図３ａおよび３ｂは、本発明の一態様による、被勧誘者１０６の認証中に、勧誘者１０２、被勧誘者１０６および認証者１０４によって渡されるメッセージおよび実行されるオペレーションを示す。これらの２つの図に伴う説明は、本発明の一実施形態の概観を示す。さらなる詳細を以下で図４から８を参照して説明する。図３ａおよび３ｂでは、時間が下向きに、およびある図から次の図に向かって流れる。
【００２０】
本発明のこの実施形態はステップ３００で開始し、勧誘者１０２および被勧誘者１０６が秘密パスワードを共有し、これが他者によって知られていないと想定する。厳密には、パスワードをどのように共有するかは本発明の範囲を超えているが、セキュリティはここでは大変重要である。盗聴者１０８が共有秘密パスワードを知るようになった場合、アドホックグループ１００のセキュリティが損なわれるであろう。
【００２１】
ステップ３０２で、勧誘者１０２は被勧誘者１０６のためのインビテーションを作成する。勧誘者１０２は第１の公開／秘密暗号鍵のペアを作成する。これは共有秘密パスワードを入力として決定関数を実行することによって行う。決定関数への他の入力は、タイムスタンプ、および、勧誘者１０２、被勧誘者１０６およびアドホックグループ１００の識別子などであり、これらを使用して、このインビテーションがタイムリーであり、および所定のパーティによってのみ使用可能であることを保証することができる。次いで、勧誘者１０２はインビテーションを作成する。これは、第１の公開／秘密暗号鍵のペアからの公開暗号鍵と共に、共有秘密パスワードを除く決定関数への他の入力を含む。標準の暗号化技術を使用して、勧誘者１０２はインビテーションに、勧誘者１０２の秘密暗号鍵により署名する。（勧誘者１０２の秘密暗号鍵は、勧誘者１０２が生成したばかりである第１の公開／秘密暗号鍵のペアに関係付けられないことに留意されたい。）ステップ３０４で、インビテーションが、被勧誘者１０６および認証者１０４の両方に知らされる。
【００２２】
ステップ３０６で、認証者１０４は、インビテーションがアドホックグループ１００のメンバによって発行されたことを確認しようと試みる。グループ１００におけるすべての勧誘者の公開暗号鍵を知っている認証者１０４は、インビテーションにおける勧誘者１０２の署名を検証する。インビテーションが有効である場合、認証者１０４は次に被勧誘者１０６のアイデンティティを認証しようと試みる。これを行うため、認証者１０４はステップ３０８を開始する。これは第２の公開／秘密暗号鍵のペアを作成することによって行なわれる。周知のＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ（ＤＨ）理論を適用して、認証者１０４は次いで、共有チャレンジ暗号鍵を、第１の公開／秘密暗号鍵のペアの公開暗号鍵および第２の公開／秘密暗号鍵のペアの秘密暗号鍵から作成する。被勧誘者１０６がこの共有チャレンジ暗号鍵を再生することができるかどうかをテストするため、認証者１０４はチャレンジ値および期待チャレンジ応答値を生成する。チャレンジ値および期待チャレンジ応答値は共に、共有チャレンジ暗号鍵を含む、処理系依存の演算によってリンクされる。この演算のいくつかの実施例が、以下の図６の説明において与えられる。ステップ３１０で、認証者１０４がチャレンジ値を被勧誘者１０６に、第２の公開暗号鍵と共に配信する。
【００２３】
上記チャレンジを受信すると、勧誘者１０６はステップ３１２を開始し、これはステップ３０２で勧誘者１０２が従った手順を模倣することによって行う。インビテーションのコンテンツ、および、被勧誘者１０６が有する、勧誘者１０２と共有する秘密パスワード（ステップ３００）の知識を使用して、被勧誘者１０６は、勧誘者１０２によって作成された第１の秘密暗号鍵を再生する。ＤＨ理論を適用して、被勧誘者１０６は次に共有チャレンジ暗号鍵を、第１の公開／秘密暗号鍵のペアの再生された秘密暗号鍵および第２の公開／秘密暗号鍵のペアの公開暗号鍵から再生する。共有チャレンジ暗号鍵が再生された後、被勧誘者１０６は共有チャレンジ暗号鍵を使用して、受信のチャレンジ値について処理系依存の演算を実行する。ステップ３１４で、被勧誘者１０６は、演算の結果をチャレンジ応答値として認証者１０４に戻すように送信する。
【００２４】
ステップ３１６で、認証者１０４が、被勧誘者１０６から受信されたチャレンジ応答値を、ステップ３０８で認証者１０４によって生成された期待チャレンジ応答値と比較する。これらが合致した場合、認証者１０４は、この被勧誘者１０６が、勧誘者１０２がインビテーションを発行した相手に違いないと信頼する。これにより、いかなるサードパーティも秘密共有パスワードを知らないので、そのため、いかなるサードパーティも共有チャレンジ暗号鍵を正しく再生し、また、チャレンジ値からチャレンジ応答値を導出するために必要な演算を実行することもできない。次いで、認証者１０４は被勧誘者１０６がアドホックグループ１００に加入することを許可する。
【００２５】
オプションの機能として、ステップ３１８は認証者１０４が周知の技術を使用して、被認証者１０６に対してそれ自体を認証し、よって相互認証プロセスを完成する。被勧誘者１０６がそれ自体を別の認証者１０４に対して認証することを望むとき、（インビテーションが作成されて一度、使用されたか、あるいはインビテーションが終了していない限り）図３ａおよび３ｂの方法を繰り返すことができる。
【００２６】
図４の流れ図は、インビテーションの作成中の勧誘者１０２の作業のさらなる詳細を提供する。図３ａのステップ３００で、勧誘者１０２および被勧誘者１０６が秘密パスワードを共有する。図４のステップ４００から４０４で、勧誘者１０２が第１の公開／秘密暗号鍵のペアを、共有秘密パスワードから作成する。具体的には、ステップ４００で、勧誘者１０２が共有秘密パスワードを入力として決定関数ｆ（）に渡す。多数の関数は、それが大きい数を出力として生じ、および、２つの異なる入力について同じ出力を生じることがあるとしてもそれがめったにない限り、関数ｆ（）としての機能を果たすことができる。これらの２つの基準を満たす１つの可能な関数ｆ（）は、暗号化ハッシュ関数である。
【００２７】
共有秘密パスワードに加えて、決定関数ｆ（）は他の入力を取り入れてもよい。これらの他の入力がインビテーションの受信者によって、（１）インビテーションが適切なパーティによって提示中であるかどうか（「特定性」情報）、および（２）インビテーションが信頼するには古過ぎるかどうか（「活性」情報）を知るために使用される。（１）については、入力はアドホックグループ１００、勧誘者１０２および被勧誘者１０６のための識別子を含むことができる。活性情報はしばしば、インビテーションがいつ発行されたかを指示するタイムスタンプの形態で与えられるか、あるいは、インビテーションが有効である間の期間（例えば、「．．．までに使用される場合が最適」）として与えられる。
【００２８】
いずれの場合も、ステップ４０２で、決定関数ｆ（）の出力が使用されて、第１の秘密暗号鍵が作成される。一実施形態では、以下の式が使用される。
ＰｒｉｖａｔｅＫｅｙ１＝ｆ（ｓ，．．．）ｍｏｄｕｒｏｐ  （以下、ｐを法とするｆ（ｓ，．．．）と表現する）        （式１）
ただし、
ＰｒｉｖａｔｅＫｅｙ１は第１の秘密暗号鍵であり、
ｆ（）は決定関数であり、
ｓは、勧誘者１０２と被勧誘者１０６の間で共有された秘密パスワードであり、
．．．はｆ（）へのオプションの活性および特定性入力を表し、および
ｐは大きい素数（セキュリティをよりよくするため、５１２ビット以上が好ましい）である。
【００２９】
次いでステップ４０４で、勧誘者１０２が、この第１の秘密暗号鍵に関連付けられた第１の公開暗号鍵を生成する。一実施形態では、以下の周知の式が使用される。
ＰｕｂｌｉｃＫｅｙ１＝ｐを法とするｇＰｒｉｖａｔｅＫｅｙ１
（式２）
ただし、および
ＰｕｂｌｉｃＫｅｙ１は、第１の秘密暗号鍵ＰｒｉｖａｔｅＫｅｙ１に対応する第１の公開暗号鍵であり、および
ｇは、大きい素数ｐのための生成元（ｇｅｎｅｒａｔｏｒ）である（すなわち、ｐより小さいいずれかの自然数ｘについて、ｐを法とするｇｙ＝ｘのような別の数ｙが存在する）。
【００３０】
ステップ４０６で、勧誘者１０２は、このとき、第１の公開暗号鍵を、それをインビテーションに作成するために使用された何らかの情報と共にパッケージする。図５は例示的インビテーション５００を示す。第１の公開暗号鍵のフィールド５０２と共に、インビテーション５００は特定性情報、すなわち、インビテーションの使用意図についての情報である特定性情報を含む。ここで、フィールド５０６で示された勧誘者が、フィールド５０８における被勧誘者を、フィールド５０４におけるグループに加入するように勧誘している。インビテーション５００が現在のみ使用可能であることを保証するため、インビテーション５００は活性情報を含む。これは、ここでは、インビテーション５００が発行された時間を与えるタイムスタンプ５１０である。決定関数ｆ（）がフィールド５１２に含まれる。例示的インビテーション５００では、関数ｆ（）を使用して第１の秘密暗号鍵が作成されたとき、関数ｆ（）への入力は特定性情報（フィールド５０４から５０８）、活性情報（フィールド５１０）および共有秘密パスワードを含んでいたことに留意されたい。最後のものは、インビテーション５００に含まれていない。
【００３１】
勧誘者１０２は、インビテーション５００を発行する前にもう１つのことを行う。ステップ４０８で、勧誘者１０２は標準の暗号化技術を適用して、インビテーション５００に署名する。これを行うために、勧誘者１０２は、インビテーション５００に含まれた情報の一部または全部を取り入れて、通常はこれをハッシュし、次いで結果を勧誘者１０２自体の秘密暗号鍵により暗号化する。暗号化された結果は、インビテーションにおいてフィールド５１４に含まれる署名である。勧誘者１０２の秘密暗号鍵は、他の何者にも知られない。勧誘者１０２の秘密暗号鍵が、ステップ４００から４０４で生成された第１の公開／秘密暗号鍵のペアに関係付けられないことに留意されたい。
【００３２】
ステップ３０４で、勧誘者１０２がインビテーション５００を発行し、被勧誘者１０６および認証者１０４の両方がこの中の情報にアクセスできるようにする。インビテーション５００が用心深いメッセージの形態を取る必要はないことに留意されたい。インビテーション５００における情報を多数の方法で発行してもよく、例えば、メッセージを伝送することによって、既知のアクセス可能なスポットにポストすることによって、あるいは、事前に何らかの情報の一部について同意しておくことによって行うことができる。最後の場合は、その関連付けられた素数および生成元と共に決定関数ｆ（）によって例示され、これをアドホックグループ１００により作業するための公開された標準の一部にしてもよく、したがってさらに公開する必要はない。どの発行手段が選択されるかにかかわらず、インビテーション５００における情報が盗聴者１０８によりアクセス可能であるといなされることに留意されたい。本発明の方法は、以下でさらに記載するように、グループ１００への加入許可を得るために、および、よってそのセキュリティを損なうために、盗聴者１０８がこの情報を使用することを防止するように設計される。
【００３３】
図６の流れ図は、インビテーション５００に応答して認証チャレンジを発行中の認証者１０４の作業のさらなる詳細を示す。何らかの形で認証者１０４はインビテーション５００に気付く。これはおそらくは被勧誘者１０６または勧誘者１０２がインビテーション５００を認証者１０４に送信したか、おそらくは認証者１０４が、インビテーションを保持するために知られているアクセス可能なスポットをチェックした場合である。いずれの場合も、ステップ３０６で、認証者１０４がインビテーション５００を検証する。この検証には２つの部分がある。第１には、認証者１０４が、ある場合はインビテーションに含まれた特定性および活性情報をチェックする場合である。例示的インビテーション５００では、認証者１０４はフィールド５０４をチェックして、インビテーション５００が適切なアドホックグループ１００に入るために提示中であることを確かめる。フィールド５０６は、新しいメンバをグループ１００に加入するように勧誘するために特権が与えられる認証者１０４が知っている勧誘者１０２の識別子を含むべきである。インビテーション５００は認証者１０４に対して、フィールド５０８で示された被勧誘者１０６によって提示されるべきである。最後に、認証者１０４はタイムスタンプ５１０をチェックして、インビテーション５００がなお最新であるかどうかを調べる。これらの条件のいずれかが満たされない場合、認証者１０４はインビテーション５００を廃棄し、それにおいてさらなるアクションを取らない。
【００３４】
インビテーション５００の検証の第２の部分では、認証者１０４が標準の暗号化技術を適用して署名５１４を検証する。具体的には、認証者１０４はアドホックグループ１００におけるあらゆる勧誘者の公開暗号鍵を知っており、勧誘者１０２（インビテーション５００のフィールド５０６で示される）の公開暗号鍵を使用して署名５１４を解読する。（再度、勧誘者１０２の公開暗号鍵がインビテーション５００のフィールド５０２に含まれた第１の公開暗号鍵に関係付けられないことに留意されたい。）署名が、インビテーション５００における他の情報から直接作成された場合、認証者１０４は解読された署名を、インビテーション５００のフィールドに含まれた他の情報と比較する。より可能性が高いが、署名５１４がインビテーション５００内の情報のハッシュから形成された場合、認証者１０４はハッシュをインビテーション５００の情報から再生し、結果として生じるハッシュを、解読された署名と比較する。いずれの場合も、結果が合致した場合、認証者１０４は、インビテーション５００が、フィールド５０６で示される勧誘者１０２によって実際に発行されたことを、信頼することができる。これにより、勧誘者１０２以外のパーティは、勧誘者１０２の公開暗号鍵に対応する秘密暗号鍵が分からない。したがって、勧誘者１０２の公開暗号鍵により解読される場合でも、正しく検証する署名５１４を、他のパーティが作成することはできない。署名５１４を検証できない場合、認証者１０４はインビテーション５００を廃棄し、それにおいてさらなるアクションを取らない。
【００３５】
有効なインビテーション５００を有することが分かると、認証者１０４は手順を進め、図６のステップ６００から６０８で、被勧誘者１０６のアイデンティティをチャレンジする。これはすなわち、それ自体で被勧誘者１０６をコールしているパーティが実際に、勧誘者１０２が現在のインビテーション５００を発行した相手と同じパーティであるかどうかを、決定するためである。認証者１０４はステップ６００で開始し、これは、ランダムな第２の秘密暗号鍵を作成することによって行う。対応する第２の公開暗号鍵は、以下の周知の式から得られる。
ＰｕｂｌｉｃＫｅｙ２＝ｐを法とするｇＰｒｉｖａｔｅＫｅｙ２
ただし、
ＰｒｉｖａｔｅＫｅｙ２は、ランダムに生成された第２の秘密暗号鍵であり、ＰｕｂｌｉｃＫｅｙ２は、第２の秘密暗号鍵ＰｒｉｖａｔｅＫｅｙ２に対応する第２の公開暗号鍵であり、
ｐは、上の式１で勧誘者１０２によって使用されたものと同じ大きい素数であり、および
ｇは、上式２で勧誘者１０２によって使用されたものと同じ大きい素数ｐのための生成元である。
【００３６】
ステップ６０２で、認証者１０４はＤＨ理論を、第１の公開暗号鍵（インビテーション５００のフィールド５０２として含まれる）、およびステップ６００で生成された第２の秘密暗号鍵に適用して、共有チャレンジ暗号鍵を作成する。この式は以下の通りである。
ＣｈａｌｌｅｎｇｅＫｅｙ＝ｐを法とするＰｕｂｌｉｃＫｅｙ１ＰｒｉｖａｔｅＫｅｙ２                                                  （式３）
ただし、
ＣｈａｌｌｅｎｇｅＫｅｙは共有チャレンジ暗号鍵であり、
ＰｕｂｌｉｃＫｅｙ１は、インビテーション５００のフィールド５０２からの第１の公開暗号鍵であり、
ＰｒｉｖａｔｅＫｅｙ２は、図６のステップ６００でランダムに生成された第２の秘密暗号鍵であり、および
ｐは、上式１で勧誘者１０２によって使用されたものと同じ大きい素数である。
【００３７】
認証者１０４は、手順を進め、チャレンジ値および期待チャレンジ応答値を生成する。チャレンジ値および期待チャレンジ応答値は共に、共有チャレンジ暗号鍵を含む処理系依存の演算によってリンクされる。すなわち、このデバイスが共有チャレンジ暗号鍵をも知っている場合、期待チャレンジ応答値をチャレンジ値からのみ導出することができる。多数の演算方法のいずれも可能である。図６に示す第１の実施形態では、ステップ６０４で、認証者１０４はランダム値を生成し、これを期待チャレンジ応答値に割り当てる。オプションで、認証者１０４はランダム値を特定性情報と論理的に結合する（例えば、ビットワイズ排他的論理和関数を使用することにより）。この特定性情報は、アドホックグループ１００、認証者１０４および被勧誘者１０６のアイデンティティのハッシュなどである。次いでステップ６０６で、認証者１０４はチャレンジ値を、ステップ６０２で生成された共有チャレンジ暗号鍵およびサイファ使用してランダム値暗号化することにより、作成する。ランダム値は認証者１０４が選択して使用するいずれかの特定性情報と論理的に結合されるようなランダム値である。チャレンジを受信すると、共有チャレンジ暗号鍵を再生している正当な被勧誘者１０６は、この鍵を使用してチャレンジ値を解読し、解読された値を（特定性情報が存在する場合、これを除去した後に）認証者１０４に戻すことができる。（詳細については、図８の説明を参照。）認証者１０４は、被勧誘者１０６から受信された解読された値がその所有する期待チャレンジ応答値と合致することを確かめるとき、被勧誘者１０６のアドホックグループ１００への加入を許可する（図３ｂのステップ３１６）。
【００３８】
チャレンジ／応答リンキング演算の第２の実施形態では、チャレンジ値は、ランダム値、すなわち、ステップ６０４で認証者１０４によって生成され、オプションで特定情報と結合された乱数である。期待チャレンジ応答値は、それ故、共有チャレンジ暗号鍵を使用して暗号化されたチャレンジ値である。第１の実施形態のように、共有チャレンジ暗号鍵を再生することができるデバイスのみが、期待チャレンジ応答値をチャレンジ値から正しく導出することができる。
【００３９】
いずれかのチャレンジ／応答リンキング演算とオプションで結合してもよい。さらなるステップとして、被勧誘者１０６は、チャレンジ値について演算を実行した後、認証者１０４へのチャレンジ応答において、その結果を送信する前にハッシュする。認証者１０４の期待チャレンジ応答値は、他の場合にはハッシュであることは言うまでもない。
【００４０】
ステップ６０８で、認証者１０４は様々なチャレンジ関連情報をパッケージして、図７の例示的チャレンジ７００などのチャレンジを作成する。チャレンジ７００は、フィールド７０２におけるチャレンジ値、および、フィールド７０４における特定性情報（アドホックグループ１００の識別子）、７０６（認証者１０４の識別子）および７０８（被勧誘者１０６の識別子）を含む。チャレンジ７００の有効性をチェックするために、この特定性情報を被勧誘者１０６により使用してもよい（図８のステップ８００および８０８に伴う説明を参照）。ステップ６００で生成された第２の公開暗号鍵がフィールド７１０に含まれ、ステップ６０６の暗号化で使用されたサイファがフィールド７１２にある。（図６に例示したもの以外の実施形態では、サイファのフィールド７１２を必要としない。）
【００４１】
ステップ３１０で、認証者１０４はチャレンジ７００を発行し、その結果、被勧誘者１０６がこれにアクセスする。インビテーション５００に関して、上述したように、このチャレンジ７００は論理的エンティティであり、図７に示す形態で公開される必要はないことに留意されたい。
【００４２】
図８の流れ図は、チャレンジ７００に応答中の被勧誘者１０６の作業のさらなる詳細を示す。ステップ８００では被勧誘者１０６がチャレンジの有効性をテスト可能としてもよい。特定性情報（フィールド７０４から７０８）がチャレンジ７００に関連付けられる場合、被勧誘者１０６はこの情報の正確さをチェックし、何かが不適切である場合、チャレンジ７００を無視する。これは、不当なデバイスがチャレンジ７００を傍受する介入者攻撃が、そのフィールドのいくつかを改変し、次いで改変されたチャレンジを被勧誘者１０６に送信することを防止するために重要である。
【００４３】
有効なチャレンジ７００を所有すると、手順を進め、ステップ８０２で、被勧誘者１０６が第１の秘密暗号鍵を再生する。これは、最初に図４のステップ４００および４０４で勧誘者１０２によって作成されたものである。第１の秘密暗号鍵は、上の式１を決定関数ｆ（）の出力に適用することによって、作成される。関数ｆ（）への入力は、勧誘者１０２と被勧誘者１０６の間で共有された秘密パスワードを含み、特定性情報（例えば、インビテーション５００のフィールド５０４から５０８）および活性情報（例えば、インビテーション５００のフィールド５１０）を含めてもよい。勧誘者１０６は式１を適用することができる。これは（１）共有秘密パスワードが勧誘者１０６に知られているから、（２）特定性情報および活性情報が使用される場合、これらをインビテーション５００から収集することができる、（３）関数ｆ（）をインビテーション５００から収集することができ、あるいはこれが公に知られている、および（４）大きい素数ｐが公に知られているからである。この情報の全部は、共有秘密パスワードを除いて、盗聴者１０８も入手可能であることに留意されたい。この秘密パスワードは、被勧誘者１０６を除く（より正確には、被勧誘者１０６および勧誘者１０２を除く）あらゆるパーティがチャレンジ７００に正しく応答することを防止する。
【００４４】
ステップ８０４で、被勧誘者１０６は、再生したばかりの第１の秘密暗号鍵を使用して、共有チャレンジ暗号鍵を再生する。共有チャレンジ暗号鍵は最初に図６のステップ６０２で認証者１０４によって作成されたものである。共有暗号鍵のＤＨ理論を、以下に示す。
ＣｈａｌｌｅｎｇｅＫｅｙ＝ｐを法とするＰｕｂｌｉｃＫｅｙ１ＰｒｉｖａｔｅＫｅｙ２＝ｐを法とするＰｕｂｌｉｃＫｅｙ２ＰｒｉｖａｔｅＫｅｙ１
（式４）
ただし、
ＣｈａｌｌｅｎｇｅＫｅｙは共有チャレンジ暗号鍵であり、
ＰｕｂｌｉｃＫｅｙ１は、インビテーション５００のフィールド５０２からの第１の公開暗号鍵であり、
ＰｒｉｖａｔｅＫｅｙ２は、図６のステップ６００で認証者１０４によってランダムに生成された第２の秘密暗号鍵であり、
ｐは、上式１で勧誘者１０２によって使用されたものと同じ大きい素数であり、
ＰｕｂｌｉｃＫｅｙ２は、チャレンジ７００のフィールド７１０からの第２の公開暗号鍵であり、および
ＰｒｉｖａｔｅＫｅｙ１は、図８のステップ８０２で被勧誘者１０６によって再生された第１の秘密暗号鍵である。
【００４５】
式４は、共有チャレンジ暗号鍵を作成するための２つの方法を与える。第１の方法は上の式３に等しく、認証者１０４によって図６のステップ６０２で共有チャレンジ暗号鍵を作成するために使用された方法である。しかし、被勧誘者１０６はこの方法にアクセスすることができないためにこれを使用することができず、第２の秘密暗号鍵を再生することができない。被勧誘者１０６は、式４における第２の方法を適用するために必要とされたすべての情報を有している。被勧誘者１０６はそれを行い、それにより共有チャレンジ暗号鍵を再生する。
【００４６】
ステップ８０６および８０８で、被勧誘者１０６が、再生された共有チャレンジ暗号鍵を使用して、現在の実施に適切なチャレンジ／応答リンキング演算を適用する。図８に示す実施形態（これを図６に例示した認証者１０４の実施形態と共に使用することができる）では、被認証者１０６はチャレンジ７００のフィールド７０２に含まれたチャレンジ値を解読し、これは、再生された共有チャレンジ暗号鍵およびチャレンジ７００のフィールド７１２に含まれたサイファを使用することによって行う。図６のステップ６０４で、認証者１０４が特定性情報をランダム期待チャレンジ応答値と論理的に結合した場合、ステップ８０８で、被勧誘者１０６はこの特定性情報を除去する。これは、特定性情報を使用して介入者攻撃を防止する第２の態様であることに留意されたい。不当なデバイスがチャレンジ７００の特定性のフィールド内の値を改変した場合、被勧誘者１０６は、ステップ８０８で、改変された特定性情報を除去するとき、無効なチャレンジ応答値を作成するようになる。これにより、アドホックグループ１００が、改変されたチャレンジ７００に基づいて被勧誘者１０６の加入を許可しないように防ぐ。そうではなく、チャレンジ７００が改変されなかった場合、ステップ８０８の結果は、ステップ６０４で認証者１０４によってランダムに生成された元の値となる。
【００４７】
チャレンジ／応答リンキング演算の第２の実施形態では、被勧誘者１０６はオプションで特定性情報を、受信されたチャレンジ値に追加し、この結果を、再生された共有チャレンジ応答鍵およびサイファにより暗号化する。
【００４８】
上述したように、チャレンジ／応答リンキング演算を適用した後、被勧誘者１０６は、認証者１０４へのチャレンジ応答において、その結果を送信する前にハッシュしてもよい。使用するための特定のチャレンジ／応答リンキング演算、および、その使用に伴うオプションは、あらかじめ認証者１０４および被勧誘者１０６に知られている。これは実施の選択として最も可能性が高い。
【００４９】
上述した最後のステップを、図３ｂに関連させて説明する。ステップ３１４で、被勧誘者１０６がチャレンジ応答値（および、上で述べた第２の実施形態では、チャレンジ応答値の暗号化において使用されたサイファ）を認証者１０４に戻すように送信する。ステップ３１６で、認証者１０４は、被勧誘者１０６によって戻されたチャレンジ値を、それが期待する値と比較する。これらが合致した場合、認証者１０４は、この被勧誘者１０６が、勧誘者１０２がインビテーション５００を発行した相手に違いないと信頼する。認証者１０４は被勧誘者１０６のアドホックグループ１００への加入を許可する。必要な場合、ステップ３１８で、認証者１０４は既知の技術を使用して、被勧誘者１０６に対してそれ自体を認証する。
【００５０】
盗聴者１０８がインビテーション５００およびチャレンジ７００にアクセスすることができるとしても、盗聴者１０８は、勧誘者１０２と被勧誘者１０６の間で共有された秘密パスワードを知らない。したがって、盗聴者１０８は共有チャレンジ暗号鍵を正しく再生することができず、チャレンジ７００に正しく応答することができない。
【００５１】
本発明の原理を適用することができる多数の可能な実施形態を考慮した場合、本明細書で図面に関連して説明した実施形態は例示的の意味を持ち、および本発明の範囲を限定するように解釈すべきではないことを理解されたい。例えば、例示した実施形態の構成および詳細を、本発明の精神から逸脱することなく修正できることは、当業者には理解されよう。本発明をソフトウェアモジュールまたはコンポーネントの用語で説明したが、それらをハードウェアコンポーネントで同等に置き換えることができることは、当業者には理解されよう。したがって、ここで説明したようなすべての実施形態は、特許請求の範囲およびその同等物の範囲内となる。
【図面の簡単な説明】
【図１】勧誘者および一対の認証者を含む例示的アドホックグループ、および、グループの外側の被勧誘者および盗聴者を示すブロック図である。
【図２】本発明をサポートする例示的コンピュータシステムを一般に例示する概略図である。
【図３ａ】本発明の一態様による、被勧誘者をアドホックグループに加入許可中であるときに渡されるメッセージおよび実行されるオペレーションを示す流れ図である。
【図３ｂ】本発明の一態様による、被勧誘者をアドホックグループに加入許可中であるときに渡されるメッセージおよび実行されるオペレーションを示流れ図である。
【図４】インビテーションを発行中であるとき、勧誘者によって実行される例示的方法を例示する流れ図である。
【図５】本発明の一態様による、例示的インビテーションのコンテンツを示すデータ構造図である。
【図６】インビテーションを検証中かつチャレンジを被勧誘者に発行中であるとき、認証者によって実行される例示的方法を例示する流れ図である。
【図７】本発明の一態様による、例示的チャレンジのコンテンツを示すデータ構造図である。
【図８】チャレンジに応答中であるとき、被勧誘者によって実行される例示的方法を例示する流れ図である。
【符号の説明】
１００  アドホックグループ
１０２  勧誘者
１０４  認証者
１０６  被勧誘者
１０８  盗聴者
５００  インビテーション
５０２  第１の公開暗号鍵
５０４、７０４  グループ識別子
５０６  勧誘者識別子
５０８、７０８  被勧誘者識別子
５１０  タイムスタンプ
５１２  決定関数ｆ（）
５１４  署名
７００  チャレンジ
７０２  チャレンジ値
７０６  認証者識別子
７１０  第２の公開暗号鍵
７１２  サイファ
【図１】
0004519417.tif 000002
【図２】
0004519417.tif 000003
【図３ａ】
0004519417.tif 000004
【図３ｂ】
0004519417.tif 000005
【図４】
0004519417.tif 000006
【図５】
0004519417.tif 000007
【図６】
0004519417.tif 000008
【図７】
0004519417.tif 000009
【図８】
0004519417.tif 000010