(57)【要約】【課題】  ネットワーク上のグループ内で情報を共有しようとする場合であっても、サーバの運用を必要としないで、希望する情報の検索ができ、かつ任意のメンバ間で、常にグループのメンバであることの認証が可能な通信方法等を提供する。【解決手段】  管理者又は発行者は、特定のユーザから構成されるネットワーク上のグループに新規に加入する一般ユーザに対して、当該グループの秘密鍵で電子署名を施した参加証を発行する。上記グループのメンバ同士は、それぞれ発行された参加証に基づいて、互いにグループに属することを認証し合い、互いに正当なメンバであることを確認する。【選択図】  図１
2004159298.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上の他の端末装置と通信を行う端末装置であって、
当該端末装置は、前記ネットワーク上に形成されたグループの公開鍵を保持しており、
前記他の端末装置に対し、前記グループの正当なメンバか否かを問い合わせる旨を含む問合せ情報を送信する問合せ情報送信手段と、
前記他の端末装置から、前記問合せ情報に対応する応答として所定の暗号化された情報を受信する暗号化情報受信手段と、
受信された前記暗号化された情報に対し、前記グループの公開鍵で復号を試みる復号試行手段と、
前記復号試行手段において復号が成功した場合に、当該復号された情報の適否を判定する情報判定手段と、
前記復号された情報が適切である判定された場合に、前記他の端末装置は、前記グループの正当なメンバの端末であると判定する端末判定手段と
を備えることを特徴とする端末装置。
【請求項２】
前記問合せ情報送信手段は、さらに、
前記問合せ情報に、当該端末装置を特定し得る情報を付加して送信し、
前記情報判定手段は、さらに、
前記復号された情報の中に当該端末装置を特定し得る情報が存在するか否かを含めて前記適否の判定を行う
ことを特徴とする請求項１記載の端末装置。
【請求項３】
前記問合せ情報送信手段は、さらに、
前記問合わせ情報に、前記グループへの加入を希望する旨の情報を付加して送信し、
前記情報判定手段は、さらに、
前記復号された情報の中に、前記グループへの加入を認める旨の情報が含まれているか否かについても判定し、
前記端末判定手段は、さらに、
前記復号された情報の中に、当該端末装置の前記グループへの加入を認める旨の情報が含まれていると判定された場合に、当該端末装置は、前記グループの正当なメンバの端末であると判定する
ことを特徴とする請求項２記載の端末装置。
【請求項４】
前記問合せ情報送信手段は、さらに、
前記問合わせ情報に、任意の文字列を付加して送信し、
前記情報判定手段は、さらに、
前記復号された情報の中に、前記文字列と前記他の端末装置の前記グループへの参加を許可する旨の参加証とが含まれているか否かについても判定し、
前記端末判定手段は、さらに、
前記復号された情報の中に、前記文字列と前記参加証が含まれていると判定された場合に、前記他の端末装置は、前記グループの正当なメンバの端末であると判定する
ことを特徴とする請求項２記載の端末装置。
【請求項５】
前記参加証には、所定の有効期限が付加されており、
前記情報判定手段は、さらに、
前記復号された情報の中の前記参加証が、前記有効期限に基づいて有効か否かを判定し、
前記端末判定手段は、さらに、
前記参加証が有効と判定された場合に、前記他の端末装置は、前記グループの正当なメンバの端末であると判定する
ことを特徴とする請求項４記載の端末装置。
【請求項６】
前記問合せ情報送信手段は、さらに、
前記問合わせ情報に、前記任意の文字列を付加して送信し、
前記情報判定手段は、さらに、
前記復号された情報の中に、前記文字列と所定の参加証と所定の参加証発行許可証とが含まれているか否かについても判定し、
前記端末判定手段は、さらに、
前記復号された情報の中に、前記文字列と所定の参加証と所定の参加証発行許可証とが含まれていると判定された場合に、前記他の端末装置は、前記グループの正当なメンバの端末であると判定する
ことを特徴とする請求項２記載の端末装置。
【請求項７】
前記参加証および前記参加証発行許可証には、それぞれ所定の有効期限が付加されており、
前記情報判定手段は、さらに、
前記復号された情報の中の前記参加証および前記参加証発行許可証が、前記それぞれの有効期限に基づいて有効か否かを判定し、
前記端末判定手段は、さらに、
前記参加証および前記参加証発行許可証が共に有効と判定された場合に、前記他の端末装置は、前記グループの正当なメンバの端末であると判定する
ことを特徴とする請求項６記載の通信方法。
【請求項８】
ネットワーク上の他の端末装置と通信を行う端末装置であって、
前記他の端末装置に対し、前記ネットワーク上に形成されたグループの公開鍵を含むグループ情報を入手したい旨を含む問合せ情報を送信する問合せ情報送信手段と、
前記他の端末装置から、前記問合せ情報に対する応答として、電子署名された前記グループ情報を受信するグループ情報受信手段と、
受信された前記グループ情報に対し、当該グループ情報に含まれる公開鍵でその正当性を検証するグループ情報検証手段と、
前記グループ情報検証手段において、前記グループ情報の正当性を確認した場合は、前記グループ情報は、前記グループの正当なメンバの端末装置から入手した情報であると判定するグループ情報判定手段と
を備えることを特徴とする端末装置。
【請求項９】
前記ネットワークは、Ｐ２Ｐネットワークである
ことを特徴とする請求項１又は８記載の端末装置。
【請求項１０】
ネットワーク上の第１の端末が、他の第２の端末と通信を行うための通信方法であって、
前記第１の端末は、前記ネットワーク上に形成されたグループの公開鍵を保持しており、
前記第２の端末に対し、前記グループの正当なメンバか否かを問い合わせる旨を含む問合せ情報を送信する問合せ情報送信ステップと、
前記第２の端末から、前記問合せ情報に対応する応答として所定の暗号化された情報を受信する暗号化情報受信ステップと、
受信された前記暗号化された情報に対し、前記グループの公開鍵で復号を試みる復号試行ステップと、
前記復号試行ステップにおいて復号が成功した場合に、当該復号された情報の適否を判定する情報判定ステップと、
前記復号された情報が適切である判定された場合に、前記第２の端末は、前記グループの正当なメンバの端末であると判定する端末判定ステップと
を含むことを特徴とする通信方法。  
【請求項１１】
前記問合せ情報送信ステップは、さらに、
前記問合せ情報に、当該第１の端末を特定し得る情報を付加して送信し、
前記情報判定ステップは、さらに、
前記復号された情報の中に前記第１の端末を特定し得る情報が存在するか否かを含めて前記適否の判定を行う
ことを特徴とする請求項１０記載の通信方法。
【請求項１２】
前記問合せ情報送信ステップは、さらに、
前記問合わせ情報に、前記グループへの加入を希望する旨の情報を付加して送信し、
前記情報判定ステップは、さらに、
前記復号された情報の中に、前記グループへの加入を認める旨の情報が含まれているか否かについても判定し、
前記端末判定ステップは、さらに、
前記復号された情報の中に、当該第１の端末の前記グループへの加入を認めるる旨の情報が含まれていると判定された場合に、当該第１の端末は、前記グループに加入したと判定する
ことを特徴とする請求項１１記載の通信方法。
【請求項１３】
前記問合せ情報送信ステップは、さらに、
前記問合わせ情報に、前記任意の文字列を付加して送信し、
前記情報判定ステップは、さらに、
前記復号された情報の中に、前記文字列と前記第２の端末の前記グループへの参加を許可する旨の参加証とが含まれているか否かについても判定し、
前記端末判定ステップは、さらに、
前記復号された情報の中に、前記文字列と前記参加証が含まれていると判定された場合に、前記第２の端末は、前記グループの正当なメンバの端末であると判定する
ことを特徴とする請求項１１記載の通信方法。
【請求項１４】
前記参加証には、所定の有効期限が付加されており、
前記情報判定ステップは、さらに、
前記復号された情報の中の前記参加証が、前記有効期限に基づいて有効か否かを判定し、
前記端末判定ステップは、さらに、
前記参加証が有効と判定された場合に、前記第２の端末は、前記グループの正当なメンバの端末であると判定する
ことを特徴とする請求項１３記載の通信方法。
【請求項１５】
前記問合せ情報送信ステップは、さらに、
前記問合わせ情報に、前記任意の文字列を付加して送信し、
前記情報判定ステップは、さらに、
前記復号された情報の中に、前記文字列と所定の参加証と所定の参加証発行許可証とが含まれているか否かについても判定し、
前記端末判定ステップは、さらに、
前記復号された情報の中に、前記文字列と所定の参加証と所定の参加証発行許可証とが含まれていると判定された場合に、前記第２の端末は、前記グループの正当なメンバの端末であると判定する
ことを特徴とする請求項１１記載の通信方法。
【請求項１６】
前記参加証および前記参加証発行許可証には、それぞれ所定の有効期限が付加されており、
前記情報判定ステップは、さらに、
前記復号された情報の中の前記参加証および前記参加証発行許可証が、前記それぞれの有効期限に基づいて有効か否かを判定し、
前記端末判定ステップは、さらに、
前記参加証および前記参加証発行許可証が共に有効と判定された場合に、前記第２の端末は、前記グループの正当なメンバの端末であると判定する
ことを特徴とする請求項１５記載の通信方法。
【請求項１７】
ネットワーク上の第１の端末が、他の第２の端末と通信を行うための通信方法であって、
前記第２の端末に対し、前記ネットワーク上に形成されたグループの公開鍵を含むグループ情報を入手したい旨を含む問合せ情報を送信する問合せ情報送信ステップと、
前記第２の端末から、前記問合せ情報に対する応答として、電子署名された前記グループ情報を受信するグループ情報受信ステップと、
受信された前記グループ情報に対し、当該グループ情報に含まれる公開鍵でその正当性を検証するグループ情報検証ステップと、
前記グループ情報検証手段において、前記グループ情報の正当性を確認した場合は、前記グループ情報は、前記グループの正当なメンバの端末から入手した情報であると判定するグループ情報判定ステップと
を含むことを特徴とする通信方法。
【請求項１８】
前記ネットワークは、Ｐ２Ｐネットワークである  
ことを特徴とする請求項１０又は１７記載の通信方法。
【請求項１９】
ネットワーク上における第１の端末と第２の端末とで通信を行う場合の通信方法であって、
前記第１の端末は、前記ネットワーク上に形成されたグループの公開鍵と当該第１のユーザの秘密鍵及び公開鍵のペアとを保持し、前記第２の端末は、前記グループの秘密鍵及び公開鍵のペアを保持しており、
前記第１の端末では、
前記他第２の端末に対し、前記グループの正当なメンバか否かを問い合わせる旨を含む問合せ情報を送信する問合せ情報送信ステップと、
前記第２の端末から、前記問合せ情報に対する応答として所定の暗号化された情報を受信する暗号化情報受信ステップと、
受信された前記暗号化された情報に対し、前記グループの公開鍵で復号を試みる復号試行ステップと、
前記復号試行ステップにおいて復号が成功した場合に、当該復号された情報の適否を判定する情報判定ステップと、
前記復号された情報が適切である判定された場合に、前記第２の端末は、前記グループの正当な管理者の端末であると判定する管理者判定ステップと、
前記正当な管理者であると判定された前記第２の端末に、前記グループに加入を希望する旨を表わす情報と当該第１のユーザの公開鍵とを含む加入依頼情報を送信する加入依頼送信ステップと、
前記第２の端末から前記グループへの加入が認められた旨を表わす参加証を受信する参加証受信ステップとを含み、
前記第２の端末では、
前記第１の端末から問合せ情報を受信する問合せ情報受信ステップと、
前記受信した問合せ情報に基づいて暗号化した情報を生成して、前記第１の端末に送信する暗号化情報送信ステップと、
前記第１の端末から、前記加入依頼情報を受信する加入依頼受信ステップと、
前記受信した加入依頼情報に基づいて、前記グループへの加入を認める旨を表わす参加証を生成する参加証生成ステップと、
前記生成した参加証を前記第１の端末に送信する参加証送信ステップと
を含むことを特徴とする通信方法。
【請求項２０】
前記第２の端末は、さらに、
前記加入依頼情報を受信した年月日を特定する依頼日特定ステップと、
前記特定された年月日に基づいて、前記参加証の有効期限を決定する有効期限決定ステップとを含み、  
前記参加証生成ステップは、
前記加入依頼情報と前記有効期限とに基づいて、前記参加証を生成する
ことを特徴とする請求項１９記載の通信方法。
【請求項２１】
ネットワーク上における第１の端末と第２の端末とで通信を行う場合の通信方法であって、
前記第１の端末は、前記ネットワーク上に形成されたグループの秘密鍵及び公開鍵のペアと前記第２のユーザの公開鍵を保持し、前記第２の端末は、前記グループの公開鍵を保持しており、
前記第１の端末では、
前記他第２の端末に対し、前記グループの正当なメンバか否かを問い合わせる旨を含む問合せ情報を送信する問合せ情報送信ステップと、
前記第２の端末から、前記問合せ情報に対する応答として所定の暗号化された情報を受信する暗号化情報受信ステップと、
受信された前記暗号化された情報に対し、前記第２のユーザの公開鍵で復号を試みる復号試行ステップと、
前記復号試行ステップにおいて復号が成功した場合に、当該復号された情報の適否を判定する情報判定ステップと、
前記復号された情報が適切である判定された場合に、前記第２の端末は、前記グループの正当な参加者の端末であると判定する参加者判定ステップと、
前記正当な参加者であると判定された前記第２の端末に、前記グループの発行者に任命したい旨を表わす任命情報を送信する任命情報送信ステップと、
前記第２の端末から前記第２のユーザの公開鍵を受信する公開鍵受信ステップと、
前記受信した公開鍵と前記保持している公開鍵とが一致するか否かを判定する公開鍵判定ステップと、
前記双方の公開鍵が一致すると判定された場合に、前記公開鍵を含む情報に基づいて、前記参加証を発行する権限を付与する旨を表す参加証発行許可証を作成する許可証生成ステップと、
前記作成された参加証発行許可証を前記第２の端末に送信する許可証送信ステップとを含み、
前記第２の端末では、
前記第１の端末から問合せ情報を受信する問合せ情報受信ステップと、
前記第１の端末に、当該第２のユーザの公開鍵を送信する公開鍵送信ステップと、
前記第１の端末から、前記参加証発行許可証を受信する許可証受信ステップとを含む
ことを特徴とする通信方法。
【請求項２２】
前記第１の端末では、さらに、
前記第２のユーザの公開鍵を受信した年月日を特定する許諾日特定ステップと、
前記特定された年月日に基づいて、前記参加証発行許可証の有効期限を決定する有効期限決定ステップとを含み、
前記許可証生成ステップは、
前記第２のユーザの公開鍵と前記有効期限とに基づいて、前記参加証発行許可証を生成する
ことを特徴とする請求項２１記載の通信方法。
【請求項２３】
ネットワーク上における第１の端末と第２の端末とで通信を行う場合の通信方法であって、
前記第１の端末は、前記ネットワーク上に形成されたグループの公開鍵と当該第１のユーザの秘密鍵及び公開鍵のペアとを保持し、前記第２の端末は、前記グループの公開鍵を保持しており、
前記第１の端末では、
前記他第２の端末に対し、前記グループの正当な発行者か否かを問い合わせる旨を含む問合せ情報を送信する問合せ情報送信ステップと、
前記第２の端末から、暗号化された参加証発行許可証を受信する許可証受信ステップと、
受信された前記参加証発行許可証に対し、前記グループの公開鍵で復号を試みる復号試行ステップと、
前記復号試行ステップにおいて復号が成功した場合に、当該復号された情報の適否を判定する情報判定ステップと、
前記復号された情報が適切である判定された場合に、前記第２の端末は、前記グループの正当な発行者の端末であると判定する発行者判定ステップと、
前記正当な発行者であると判定された前記第２の端末に、前記グループに加入を希望する旨を表わす情報と当該第１のユーザの公開鍵とを含む加入依頼情報を送信する加入依頼送信ステップと、
前記第２の端末から前記グループへの加入が認められた旨を表わす参加証を受信する参加証受信ステップとを含み、
前記第２の端末では、
前記第１の端末から問合せ情報を受信する問合せ情報受信ステップと、
前記問合せ情報を受信後に、参加証発行許可証を前記第１の端末に送信する暗号化情報送信ステップと、
前記第１の端末から、前記加入依頼情を受信する加入依頼受信ステップと、
前記受信した加入依頼情報に基づいて、前記グループへの加入を認める旨を表わす参加証を生成する参加証生成手段と、
前記生成した参加証を前記第１の端末に送信する参加証送信手段と
を含むことを特徴とする通信方法。
【請求項２４】
前記第２の端末では、さらに、
前記加入依頼情報を受信した年月日を特定する依頼日特定ステップと、
前記特定された年月日に基づいて、前記参加証の有効期限を決定する有効期限決定ステップとを含み、
前記参加証生成ステップは、
前記加入依頼情報と前記有効期限とに基づいて、前記参加証を生成する
ことを特徴とする請求項２３記載の通信方法。
【請求項２５】
前記ネットワークは、Ｐ２Ｐネットワークである
ことを特徴とする請求項１９、２１又は２３記載の通信方法。
【請求項２６】
ネットワーク上における第１の端末と第２の端末とで通信を行う通信システムであって、
前記第１の端末は、前記ネットワーク上に形成されたグループの公開鍵と当該第１のユーザの秘密鍵及び公開鍵のペアとを保持し、前記第２の端末は、前記グループの秘密鍵及び公開鍵のペアを保持しており、
前記第１の端末は、
前記他第２の端末に対し、前記グループの正当なメンバか否かを問い合わせる旨を含む問合せ情報を送信する問合せ情報送信手段と、
前記第２の端末から、前記問合せ情報に対する応答として所定の暗号化された情報を受信する暗号化情報受信手段と、
受信された前記暗号化された情報に対し、前記グループの公開鍵で復号を試みる復号試行手段と、
前記復号試行手段において復号が成功した場合に、当該復号された情報の適否を判定する情報判定手段と、
前記復号された情報が適切である判定された場合に、前記第２の端末は、前記グループの正当な管理者の端末であると判定する管理者判定手段と、
前記正当な管理者であると判定された前記第２の端末に、前記グループに加入を希望する旨を表わす情報と当該第１のユーザの公開鍵とを含む加入依頼情報を送信する加入依頼送信手段と、
前記第２の端末から前記グループへの加入が認められた旨を表わす参加証を受信する参加証受信手段とを備え、
前記第２の端末は、
前記第１の端末から問合せ情報を受信する問合せ情報受信手段と、
前記受信した問合せ情報に基づいて暗号化した情報を生成して、前記第１の端末に送信する暗号化情報送信手段と、
前記第１の端末から、前記加入依頼情報を受信する加入依頼受信手段と、
前記受信した加入依頼情報に基づいて、前記グループへの加入を認める旨を表わす参加証を生成する参加証生成手段と、
前記生成した参加証を前記第１の端末に送信する参加証送信手段と
を備えることを特徴とする通信システム。
【請求項２７】
前記第２の端末は、さらに、
前記加入依頼情報を受信した年月日を特定する依頼日特定手段と、
前記特定された年月日に基づいて、前記参加証の有効期限を決定する有効期限決定手段とを備え、  
前記参加証生成手段は、
前記加入依頼情報と前記有効期限とに基づいて、前記参加証を生成する
ことを特徴とする請求項２６記載の通信システム。
【請求項２８】
ネットワーク上における第１の端末と第２の端末とで通信を行う通信システムであって、
前記第１の端末は、前記ネットワーク上に形成されたグループの秘密鍵及び公開鍵のペアと前記第２のユーザの公開鍵を保持し、前記第２の端末は、前記グループの公開鍵を保持しており、
前記第１の端末は、
前記他第２の端末に対し、前記グループの正当なメンバか否かを問い合わせる旨を含む問合せ情報を送信する問合せ情報送信手段と、
前記第２の端末から、前記問合せ情報に対する応答として所定の暗号化された情報を受信する暗号化情報受信手段と、
受信された前記暗号化された情報に対し、前記第２のユーザの公開鍵で復号を試みる復号試行手段と、
前記復号試行手段において復号が成功した場合に、当該復号された情報の適否を判定する情報判定手段と、
前記復号された情報が適切である判定された場合に、前記第２の端末は、前記グループの正当な参加者の端末であると判定する参加者判定手段と、
前記正当な参加者であると判定された前記第２の端末に、前記グループの発行者に任命したい旨を表わす任命情報を送信する任命情報送信手段と、
前記第２の端末から前記第２のユーザの公開鍵を受信する公開鍵受信手段と、
前記受信した公開鍵と前記保持している公開鍵とが一致するか否かを判定する公開鍵判定手段と、
前記双方の公開鍵が一致すると判定された場合に、前記公開鍵を含む情報に基づいて、前記参加証を発行する権限を付与する旨を表す参加証発行許可証を作成する許可証生成手段と、
前記作成された参加証発行許可証を前記第２の端末に送信する許可証送信手段とを備え、
前記第２の端末は、
前記第１の端末から問合せ情報を受信する問合せ情報受信手段と、
前記第１の端末に、当該第２のユーザの公開鍵を送信する公開鍵送信手段と、
前記第１の端末から、前記参加証発行許可証を受信する許可証受信手段と
を備えることを特徴とする通信システム。
【請求項２９】
前記第１の端末は、さらに、
前記第2のユーザの公開鍵を受信した年月日を特定する許諾日特定手段と、
前記特定された年月日に基づいて、前記参加証発行許可証の有効期限を決定する有効期限決定手段とを備え、  
前記許可証生成手段は、
前記第２のユーザの公開鍵と前記有効期限とに基づいて、前記参加証発行許可証を生成する
ことを特徴とする請求項２８記載の通信システム。
【請求項３０】
ネットワーク上における第１の端末と第２の端末とで通信を行う通信システムであって、
前記第１の端末は、前記ネットワーク上に形成されたグループの公開鍵と当該第１のユーザの秘密鍵及び公開鍵のペアとを保持し、前記第２の端末は、前記グループの公開鍵を保持しており、
前記第１の端末は、
前記他第２の端末に対し、前記グループの正当な発行者か否かを問い合わせる旨を含む問合せ情報を送信する問合せ情報送信手段と、
前記第２の端末から、暗号化された参加証発行許可証を受信する許可証受信手段と、
受信された前記参加証発行許可証に対し、前記グループの公開鍵で復号を試みる復号試行手段と、
前記復号試行手段において復号が成功した場合に、当該復号された情報の適否を判定する情報判定手段と、
前記復号された情報が適切である判定された場合に、前記第２の端末は、前記グループの正当な発行者の端末であると判定する発行者判定手段と、
前記正当な発行者であると判定された前記第２の端末に、前記グループに加入を希望する旨を表わす情報と当該第１のユーザの公開鍵とを含む加入依頼情報を送信する加入依頼送信手段と、
前記第２の端末から前記グループへの加入が認められた旨を表わす参加証を受信する参加証受信手段とを備え、
前記第２の端末は、
前記第１の端末から問合せ情報を受信する問合せ情報受信手段と、
前記問合せ情報を受信後に、参加証発行許可証を前記第１の端末に送信する暗号化情報送信手段と、
前記第１の端末から、前記加入依頼情報を受信する加入依頼受信手段と、
前記受信した加入依頼情報に基づいて、前記グループへの加入を認める旨を表わす参加証を生成する参加証生成手段と、
前記生成した参加証を前記第１の端末に送信する参加証送信手段と
を備えることを特徴とする通信システム。
【請求項３１】
前記第２の端末は、さらに、
前記加入依頼情報を受信した年月日を特定する依頼日特定手段と、
前記特定された年月日に基づいて、前記参加証の有効期限を決定する有効期限決定手段とを備え、
前記参加証生成手段は、
前記加入依頼情報と前記有効期限とに基づいて、前記参加証を生成する
ことを特徴とする請求項３０記載の通信システム。
【請求項３２】
前記ネットワークは、Ｐ２Ｐネットワークである
ことを特徴とする請求項２６、２８又は３０記載の通信システム。
【請求項３３】
ネットワーク上の他の端末装置と通信を行う端末装置のためのプログラムであって、
当該端末装置は、前記ネットワーク上に形成されたグループの公開鍵を保持しており、
前記他の端末装置に対し、前記グループの正当なメンバか否かを問い合わせる旨を含む問合せ情報を送信する問合せ情報送信ステップと、
前記他の端末装置から、前記問合せ情報に対する応答として所定の暗号化された情報を受信する暗号化情報受信ステップと、
受信された前記暗号化された情報に対し、前記グループの公開鍵で復号を試みる復号試行ステップと、
前記復号試行手段において復号が成功した場合に、当該復号された情報の適否を判定する情報判定ステップと、
前記復号された情報が適切である判定された場合に、前記他の端末装置は、前記グループの正当なメンバの端末であると判定する端末判定ステップと
を含むことを特徴とするプログラム。
【請求項３４】
前記ネットワークは、Ｐ２Ｐネットワークである
ことを特徴とする請求項３３記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、汎用のネットワークを介して接続されている複数の端末から構成される仮想的なグループに属する端末と当該グループとの関係が明らかでない一の端末との間の通信方法に関し、特に、前記一の端末が、前記グループへの加入の際や前記グループに属する端末から必要な情報を入手する際などに、前記端末との間で行う認証の認証方法に関する。
【背景技術】
【０００２】
インターネットに接続して各種ネットワークサービスを享受するユーザ端末数は、接続機器や接続料金の廉価化、接続機器の多彩化および通信速度の向上などにより、急速に増加している。インターネットの商用開始当初においては、一部の情報提供者のサーバが提供する情報を、一般のユーザが自分の端末によってダウンロードして利用するという、一方向のサービスが主流であったが、現在は、一部の情報提供者に限らず、個人的に保有する情報（例えばテキストデータ、静止画像データ、音声データ、動画像データなど）を発信したいというユーザも増え、主にＷＷＷ（World Wide Web）上のサーバ等に自分の情報を公開し、他のユーザに閲覧させるというケースも少なくない。
【０００３】
情報提供者が情報を提供する方法を大きく分けると、（１）サーバを自分で運用し提供する、（２）情報提供者が、有料または無料で情報の提供を受け付けているサーバに、提供したい情報をアップロードする、という二つの方法がある。
【０００４】
さらに、不特定多数のユーザ端末を対象に発信するのではなく、友人、家族又は共通の趣味を持つ者などの特定のユーザ同士の端末（以下「グループ」という。）間でのみプライベートな情報を共有したいという要求も増えている。この要求を実現する方法としては、主に認証サーバを用いる方法、すなわちグループへの参加を認められたユーザのユーザＩＤとパスワードの組（以下「グループリスト」という。）を認証サーバ（情報提供者のサーバと同一であってもよい。）に登録しておき、ユーザ端末から入力されたユーザＩＤとパスワードとの組を確認することによって、当該グループにおける情報を共有する許可の決定を行っている。
【０００５】
また、形成したグループを公開する際にも、グループに関する情報、つまりグループのカテゴリやメンバの情報、参加のための条件などを認証サーバに登録することにより、不特定多数のユーザに参加を呼びかけることが多い。ユーザは、認証サーバにアクセスすることによって、登録されているグループの存在を知り、グループへの参加に必要な情報を入手する。チャット、ＢＢＳ、メーリングリストなどのネットワーク上でのコミュニケーションを行うことを目的とするグループの多くはこのような方法で、グループを公開する。
【０００６】
このように、情報提供者がサーバに情報を格納しておき、情報利用者の端末がサーバにアクセスするというモデル（所謂、クライアント／サーバモデル）の場合には、次の問題点がある。即ち、自分でサーバを運用する場合には、
（１）高度な知識が必要：サーバやネットワーク等に関する技術的な知識が必要とされ、一般ユーザが運用することは困難な場合が多い。
（２）コストがかかる：機材やソフトウェア以外にも、情報提供用のサーバを常時稼動させるための運用費が必要となる、などの問題点がある。
（３）有料／無料に拘らず、情報を提供するサーバには、容量上の制限がある：多くの場合、サーバに格納できる情報の容量には制限が設けられているため（有料で情報を提供するサーバの場合は、コストの大半を情報利用者に負担    させることで容量制限を緩和させることは可能である）、情報提供者が制限される場合が生じ得る。
（４）プライバシの漏洩：情報提供者が信頼に足る場合であっても、何らかの事故等でサーバに格納された情報が第三者に漏れる場合があり、完全にプライバシを保護することは困難である。
などの問題点があり、
（５）共通の課題としての信頼性：サーバが何らかのトラブルでアクセス不能になった場合、情報の提供や情報の共有はまったく不可能となる。
という問題点もある。
【０００７】
なお、情報提供者が、情報を提供する対価として収入を得ることによって、情報提供に要したコストを全て回収する場合は、上記の容量上の制限については問題とならないが、一般のユーザが情報を発信する、あるいはユーザ端末間で情報を共有する場合は、上記のコストを回収することはできない。
【０００８】
上記のようなクライアント／サーバモデルにおける情報共有時の問題点を解消するために、近年注目されているのがピア−トゥ−ピア（Ｐｅｅｒ−ｔｏ−Ｐｅｅｒ、以下「Ｐ２Ｐ」という。）モデルである。これは、情報をサーバに一極集中させず、必要なときに情報提供者−情報利用者間で直接、情報の送受信を行う通信方式であり、上記問題点を解決し得るものである（例えば、非特許文献１参照）。
【０００９】
図３０は、Ｐ２Ｐモデルのネットワーク（以下「Ｐ２Ｐネットワーク」という。）に参加しているユーザ端末間で情報を転送する場合の処理の流れを示した概念図である。図３０における各ユーザ端末（具体的には、端末Ａ〜端末Ｆ）は、Ｐ２Ｐネットワークに参加している他のユーザ端末の存在を１つ以上知っていることとする。例えば、端末Ａは端末Ｂと端末Ｆを、端末Ｂは端末Ａと端末Ｃと端末Ｄを、端末Ｄは端末Ｂと端末Ｅを、端末Ｅは端末Ｄのみを、端末Ｆは端末Ａと端末Ｃの存在をそれぞれ知っている。この状態で、端末Ａのユーザがある情報の入手を希望している場合を想定する。端末Ａのユーザが、希望する情報を受信するためには、まず、その情報を持つ他のユーザ端末を特定するための検索を行うことが必要となる。
【００１０】
端末Ａは、最初に、ユーザからの指示により、端末Ｂと端末Ｆに、上記情報を有するユーザ端末を検索したい旨の要求（以下「検索要求」という。）を送信する。次に、端末Ｂと端末Ｆは、それぞれが知っているユーザ端末に端末Ａから受信した検索要求を中継し、その先のユーザ端末も同様に中継する（Ｓ１５０１）。そして、この検索要求に合致する情報を持っているユーザ端末（この場合は端末Ｃと端末Ｅ）は、端末Ａに対して上記情報を持っていることを直接通知する（Ｓ１５０２、Ｓ１５０３）。端末Ａは、予め定めた何らかの判断基準に基づいて、端末Ｅを選択し、最終的には端末Ｅから端末Ａに上記情報の転送が直接行われる（Ｓ１５０４）。もちろん、端末Ｃと端末Ｅの両者から端末Ａに上記情報を転送することとしてもよい。
【００１１】
これにより、前記クライアント／サーバモデルの問題点（１）〜（５）は、次のように解決される。つまり、
（１）サーバの運用が不要なため、サーバの運用に要する高度な知識も必要とされない。
（２）サーバを運用するためのコストや利用するためのコストは不要である。
（３）情報発信者Ｅから情報受信者Ａは直接情報を受信するので、転送可能な情報の容量は端末Ａと端末Ｅのローカルな記録容量のみに制約され、実質的に容量の制限はない。
（４）転送される情報は端末Ａと端末Ｅ以外の第三者を経由しないので、既存技術で端末Ａと端末Ｅの間の通信を暗号化して行うこととすれば、情報のプライバシを保つことが可能である。
（５）仮に端末Ｅがネットワークに参加していない状態（オフライン）であっても、端末Ａは端末Ｃから必要な情報を得ることができる。
【００１２】
さて、Ｐ２Ｐネットワーク上のグループに参加し、そのグループ内において、プライベートな情報の共有を行うためには（この場合は認証サーバが存在しないので）、以下の（Ａ）および（Ｂ）の要求を満たす必要がある。
（Ａ）グループに参加を希望するユーザは、何らかの方法でグループに関する情報を入手する必要がある。
（Ｂ）グループメンバ同士で情報を共有するためには、何らかの方法で、各ユーザ端末がそのグループに参加しているかどうかを互いに認証する必要がある。
【００１３】
まず、上記の（Ａ）の要求について検討する。
グループに関する情報を入手するためには、上記で述べたＰ２Ｐネットワークにおける検索手法を用いることができる。グループに関する情報を入手するための検索をＰ２Ｐネットワークに対して実行することにより、認証サーバを使用することなく、ネットワーク上に存在するグループの情報を入手することが出来る。
【００１４】
ユーザは、まず、（１）ネットワーク上に存在するグループを識別するための情報、および（２）グループを分類するための属性などに関する情報を入手し、次に、（３）グループに参加するための接続先に関する情報を入手する必要がある。
【００１５】
上記の（１）の情報は、グループに与えられたＩＤなどであり、グループを一意に特定できる情報である。また、上記（２）の情報は、グループのカテゴリ、活動目的、グループへの参加条件などである。さらに、上記（３）の情報は、グループのメンバのＩＰアドレス、ポート番号などであり、実際にグループのメンバの端末にアクセスするために必要な情報である。
【００１６】
以後、上記（１）の情報を「グループ識別情報」、（２）の情報を「グループ属性情報」、（３）の情報を「エントリポイント情報」ということとする。さらに、（１）および（２）の情報をまとめたものを「グループ情報」という。
【００１７】
ユーザはまず、検索によってグループ識別情報および、グループ属性情報を入手し、入手したグループ属性情報から、そのグループに参加するかどうかを判断する。そのグループに参加する場合には、グループのエントリポイント情報を検索によって入手する。この際に、先に入手しているグループ識別情報によって、どのグループのエントリポイントが必要であるのかを指定する。エントリポイント情報を入手したユーザは、該当するエントリポイントにアクセスすることによってグループに加入するための手続きを行う。上記の処理をＰ２Ｐネットワークにおける検索手法を用いて行う場合、認証サーバなどによってグループ情報が管理されていないことにより、２つの問題が生じ得る。
【００１８】
第１の問題は、グループ情報の詐称である。図３１に示すように、ネットワーク上に３つのグループＧ１、Ｇ２、Ｇ３が存在している場合を想定する。ここで、ユーザＡの端末Ａは、ユーザＡが加入したいグループの条件αを指定し、Ｐ２Ｐネットワークに対してグループ情報の検索を行う（Ｓ３１０１）。
【００１９】
次に、端末Ｂおよび端末Ｆは、端末Ａから検索要求を受信すると、それぞれが属するグループのグループ情報が端末Ａから指定された条件αと適合するか否かを判定する。図３１の例では、Ｇ２は条件αに適合しないため、端末Ｂ、端末Ｆはそれぞれが知っているユーザの端末に検索要求を転送する。そして、条件αに適合するグループＧ１の端末Ｃと端末Ｄは、保持するグループ識別情報ＤＩ１およびグループ属性情報ＡＩ１を、端末Ａに通知する（Ｓ３１０２、Ｓ３１０３）。
【００２０】
これにより、端末ＡのユーザＡは、指定した条件αに適合するグループの存在を知ると共に、そのグループに参加することが可能となる。
【００２１】
しかし、Ｐ２Ｐネットワークでは、図３２に示すように、グループ情報を詐称することも容易である。図３２におけるユーザＡは、上記図３１と同様に、端末Ａを介して、自分が加入したいグループの条件αを指定し、Ｐ２Ｐネットワークに対してグループ情報の検索を行う（Ｓ３２０１）。
【００２２】
この検索に対する応答として、下記のような不正な応答が返される可能性がある。
（１）自分のグループに関するグループ属性情報を詐称する。
例えば、端末ＢのユーザＢが、端末Ａからの検索要求に対する応答として、自身が参加しているグループのグループ情報のうち、グループ属性情報ＡＩ２ではなく条件αに適合する他のグループのグループ属性情報ＡＩ１を使用して端末Ａに送信したとする（Ｓ３２０２）。この場合、ユーザＡは、自分が指定した条件αに適合しないグループＧ２に参加してしまう可能性が生じる。
【００２３】
（２）他のグループのグループ識別情報を使用し、そのグループに関するグループ属性情報を詐称する。
例えば、端末ＥのユーザＥが、他のグループのグループ識別情報ＤＩ１を使用すると共に、条件αに適合するようなグループ属性情報ＡＩ４を捏造して、端末Ａに送信したとする（Ｓ３２０３）。すると、ユーザＡは、グループＧ１に関して誤ったグループ属性情報を入手してしまい、かつ、グループＧ１について誤ったグループ属性情報ＡＩ４を広める危険性がある。また、エントリポイント情報を検索する際にも、同様に情報の詐称が生じ得る。
【００２４】
ここで、エントリポイント情報をＰ２Ｐネットワークにおける検索手法を使用して検索する場合の処理の流れについて、図３１を参照しながら説明する。
まず、エントリポイント情報を検索するユーザＡは、条件αとエントリポイント情報を入手したいグループのグループ識別情報とを指定して検索する。指定されたグループ識別情報によって特定されるグループに属しているユーザＣ、Ｄは、その端末を介して、上記の検索に対する応答として、自身のエントリポイントの情報を返す。
【００２５】
この際にも、グループ識別情報とエントリポイント情報の対応がサーバによって管理されていないために、応答を返すユーザは、容易に不正な応答を返すことができる。この場合は、下記のような不正な応答が想定できる。
【００２６】
（３）他のグループのグループ識別情報を使用し、そのグループに関するエントリポイント情報を詐称する。例えば、端末Ｅは、端末ＡからのグループＧ１のエントリポイント情報の検索に対して、詐称して端末Ｂのエントリポイント情報を返すことができる。この場合、端末Ａは、グループＧ１とは異なるＧ２に加入してしまう場合が生じ、この場合は、グループＧ２のメンバＢは、端末Ａからの誤ったアクセスを処理しなければならなくなる。
【００２７】
上記のうち、不正な応答（１）については、クライアント／サーバモデルについても起こり得る問題であるが、不正な応答（２）および（３）については、Ｐ２Ｐ環境において、より生じやすい問題である。サーバによってグループ識別情報とグループ属性情報との対応づけ、および、グループ識別情報とエントリポイント情報との対応づけが管理されていないため、悪意のあるユーザは、容易に、グループ属性情報やエントリポイント情報を改竄、捏造して、応答をすることができる。
【００２８】
従来のＰ２Ｐネットワークによる情報検索では、上記の応答が正しいものか否かを判断することはできない。これは、従来のＰ２Ｐネットワークにおける検索手法では、検索者の検索に対し、任意の応答者が応答を返すことができることに原因がある。
【００２９】
第２の問題点は、グループに関する一意性である。グループが認証サーバによって一元的に管理されている場合は、２つのグループを識別するための識別子を認証サーバによって容易に生成することができる。ユーザは、この識別子をグループ識別情報として使用することで、自分が情報を入手したいグループを一意に特定することができる。
【００３０】
しかし、Ｐ２Ｐネットワークにおいては、誰もが自由にグループを形成することが可能であり、各グループを一意に識別するための識別子を決定することは容易ではない。例えば、ユーザＡがグループを形成し、そのグループに識別子Ｇ１を与える。その後、ユーザＢも異なるグループを形成し、そのグループの識別子としてＧ１を与えたとする。この時、別のユーザＣは、Ｇ１という識別子によって、ユーザＡの形成したグループとユーザＢの形成したグループとを識別することが出来ない。特に、ユーザＢが故意にユーザＡと同じグループの識別子を使用する事態も想定されるため、単に識別子を利用する方法では、この第２の問題を解決することはできない。故に、Ｐ２Ｐネットワークでグループを運用する際に、グループ識別情報として何を用いるべきかは、大きな課題の一つである。
【００３１】
上記の第１、第２の課題を解決するために、グループやユーザに関する情報を認証サーバによって管理し、実際のデータ転送などをＰ２Ｐで行うといったアプローチを用いることもできる。この手法はＨｙｂｒｉｄ型Ｐ２Ｐと呼ばれ、上記のクライアント／サーバモデルの課題（３）および（４）に対する対策の１つであり、グループに関する情報の詐称を防ぐことができ、グループの一意性を確保することも容易にできる。
【００３２】
次に、（Ｂ）の要求について検討する。
図３３を用いながら、その従来方法とその課題について説明する。
第１の従来方法は、図３３に示すように、クライアント／サーバモデルにおいて認証サーバが保持するグループリストを当該グループに属する各ユーザ端末が保持する方法である。図３３（ａ）において、ユーザ端末Ａ、端末Ｂ、端末Ｃはそれぞれグループリストを保持しており、グループリストにはグループを構成するユーザ（メンバ）の端末として端末Ａと端末Ｂと端末Ｃが記述されている。例えば、端末Ｃが自分のユーザＩＤとパスワードを他のユーザ端末（端末Ａおよび端末Ｂ）に知らせると、端末Ａおよび端末ＢはそのユーザＩＤとパスワードを自分が保持するグループリスト内の記述と比較する。比較結果が一致すれば、端末Ｃはグループのメンバであると認証され、端末Ａおよび端末Ｂと端末Ｃとの間での情報共有を許可される。従って、グループメンバではないユーザ端末Ｘは、グループリストに含まれるユーザＩＤとパスワードを知らないので、端末Ａ、端末Ｂおよび端末Ｃとの間での情報共有は許可されず、端末Ａ、端末Ｂおよび端末Ｃから構成されるグループ内のプライバシは保たれる。
【００３３】
この第１の従来方法には、次の問題がある。すなわち、端末Ｃがオフライン時に端末Ａまたは端末Ｂが端末Ｄを新たなメンバとしてグループに参加させたとする。その場合、図３３（ｂ）に示すように、端末Ａ、端末Ｂ、端末Ｄのグループリストには、新たに追加された端末ＤのユーザＩＤとパスワードとが追加され、同一内容のグループリストを保持することができる。この時点で、端末Ｃはオフラインであるため、グループリストの更新を行うことができない。次に、端末Ａ、端末Ｂがオフラインで、端末Ｃ、端末Ｄのみがネットワーク参加状態（オンライン）になった場合（図３３（ｃ））、端末Ｃは、自分の保持するグループリストには端末Ｄの記述がないため、端末Ｄがグループメンバであることを認証できず、共にグループメンバであるにも拘らず、端末Ｃ、端末Ｄの間ではグループの情報共有が不可能になる（端末Ｄの保持するグループリストには端末Ｄ自身の記述があるが、端末Ｄがグループリストを改竄して追加した可能性があるため、端末Ｃはそれを信頼することはできない。）。すなわち、この第１の従来方法では、各ユーザ端末がそれぞれ保持するグループリストの同期を保つことができないという問題点がある。
【００３４】
この問題を解決する第２の従来方法は、グループリストを特定のメンバの端末のみが保持し、グループメンバの変更およびユーザ端末のグループ参加状態の認証をこの特定のメンバのみが行うものである。
【非特許文献１】小柳恵一編著、「Ｐ２Ｐ  インターネットの新世紀」、オーム社、２００２年
【発明の開示】
【発明が解決しようとする課題】
【００３５】
しかしながら、上記の要求（Ａ）においてＨｙｂｒｉｄ型Ｐ２Ｐを使用した場合では、前記のクライアント／サーバモデルにおける課題（１）、（２）および（５）については解決できない。
【００３６】
また、上記の要求（Ｂ）における第２の従来方法では、この特定のメンバの端末がオフラインの間は他のメンバ間で互いの認証ができなくなるという問題がある。例えば、図３３（ｄ）において、端末Ａがこの特定メンバであり、端末Ｂ、端末Ｃがグループメンバであるとする。端末Ａがオンラインであれば、端末Ｂは端末Ａに問い合わせることにより端末Ｃがグループメンバであることを認証できる。しかし、図３３（ｅ）に示すように、端末Ａがオフラインの場合、端末Ｂは端末Ａへの問い合わせが失敗するため、端末Ｃを認証できず、共にグループメンバであるにも拘らず、端末Ｂと端末Ｃの間で情報を共有することが不可能となる。
【００３７】
以上で述べたように、クライアント／サーバモデルの問題点を解決するためのＰ２Ｐネットワークにおいて、グループ内で情報共有を行う場合は、
（１）各ユーザ端末がグループリストを保持する方法では、メンバ間のグループリストの同期が取れなくなる可能性があり、その場合はグループメンバ間であっても互いに認証することができない。
（２）特定のメンバのみがグループリストを保持する方法では、その特定のメンバがオフライン状態の間は、他のメンバ間でグループメンバであることを互いに認証できなくなる。
という問題点がある。
【００３８】
また、一般に、ＰＫＩなどの公開鍵暗号システムにおいては、特定のサーバによって配布される失効者リストを利用することによって、端末間の認証が行われる。ユーザは、その端末を介して、認証時あるいは指定された期日に失効者リストを配布するサーバにアクセスし、自分の端末が保持している失効者リストを更新する。
【００３９】
しかし、Ｐ２Ｐネットワークでは、常時起動しているサーバを想定していないために、上記のような方法では、管理者の端末がオフライン状態の場合には、失効者リストを取得することができない。
【００４０】
そこで、図３４（ａ）に示すように、失効者リストを作成した管理者Ａが、端末Ａを介して全てのグループメンバの端末に対して、新規の失効者リストをブロードキャストする方法が考えられるが、この場合もグループの全メンバの端末がオンライン状態であるとは限らないため、オフラインのメンバＸの端末Ｘは、図３４（ｂ）に示されるように、失効者リストを取得することができない。
【００４１】
また、その後、図３４（ｃ）および（ｄ）に示すように、失効者リストを取得できなかった端末Ｘがオンライン状態に移行するより前に、端末Ａがオフライン状態に移行してしまった場合は、その後にオンライン状態になった端末Ｘからは、端末Ａにアクセスすることができず、図３４（ｄ）に示すように、やはり失効者リストを取得することができない。
そこで、本発明は、上記課題に鑑みてなされたものであり、ネットワーク上のグループ内で情報を共有しようとする場合であっても、サーバの運用を必要としないで、希望する情報の検索ができ、かつ任意のメンバ間で、常にグループのメンバであることの認証が可能な通信方法等を提供することを目的とする。
【課題を解決するための手段】
【００４２】
上記目的を達成するために、本発明に係る端末装置は、ネットワーク上の他の端末装置と通信を行う端末装置であって、当該端末装置は、前記ネットワーク上に形成されたグループの公開鍵を保持しており、前記他の端末装置に対し、前記グループの正当なメンバか否かを問い合わせる旨を含む問合せ情報を送信する問合せ情報送信手段と、前記他の端末装置から、前記問合せ情報に対応する応答として所定の暗号化された情報を受信する暗号化情報受信手段と、受信された前記暗号化された情報に対し、前記グループの公開鍵で復号を試みる復号試行手段と、前記復号試行手段において復号が成功した場合に、当該復号された情報の適否を判定する情報判定手段と、前記復号された情報が適切である判定された場合に、前記他の端末装置は、前記グループの正当なメンバの端末であると判定する端末判定手段とを備える。
【００４３】
これにより、本発明に係る端末装置は、認証のための問合せ情報を送信した認証対象の端末装置から受信した情報をグループの公開鍵で復号してその内容の適否を判断することによって、認証対象の端末が正当か否かの判断を行うので、サーバの運用を必要としないで、常に認証対象の端末がそのグループのメンバに係る端末であるか否かについての認証を可能にする。
【００４４】
また、上記目的を達成するために、本発明に係る端末装置は、前記他の端末装置に対し、前記ネットワーク上に形成されたグループの公開鍵を含むグループ情報を入手したい旨を含む問合せ情報を送信する問合せ情報送信手段と、前記他の端末装置から、前記問合せ情報に対する応答として、電子署名された前記グループ情報を受信するグループ情報受信手段と、受信された前記グループ情報に対し、当該グループ情報に含まれる公開鍵でその正当性を検証するグループ情報検証手段と、前記グループ情報検証手段において、前記グループ情報の正当性を確認した場合は、前記グループ情報は、前記グループの正当なメンバの端末装置から入手した情報であると判定するグループ情報判定手段とを備える。
【００４５】
これにより、本発明に係る端末装置は、グループ情報の入手を希望する旨の情報を他の端末装置に送信し、その端末装置から受信した、グループの秘密鍵で署名されたグループ情報を、そのグループの公開鍵で検証してその内容の正当性を判断することによって、グループ情報の提供元の端末装置がそのグループに属する端末装置か否かの判断を行うので、サーバの運用を必要としないで、常にそのグループの正当なメンバに係る端末装置からグループ情報を入手することが可能になる。
【００４６】
なお、上記目的を達成するために、本発明は、上記端末装置の特徴的な構成手段をステップとする通信方法として実現したり、それらのステップを全て含むプログラムとして実現したりすることもできる。そして、そのプログラムは、端末装置が備えるＲＯＭ等に格納しておくだけでなく、ＣＤ−ＲＯＭ等の記録媒体や通信ネットワーク等の伝送媒体を介して流通させることもできる。さらに、本発明は、複数の上記端末装置を含む通信システムとして実現することもできる。
【発明の効果】
【００４７】
本発明によれば、以下の利点を持つネットワーク上のグループ管理が可能となる。すなわち、（１）常時稼動しているサーバの運用が不要であり、（２）グループ管理者を含む各グループメンバのオンライン・オフライン状態によらず、グループメンバ間で互いにグループメンバであることの認証が常に可能である。これにより、グループでのみ共有している情報をグループ以外のメンバに漏洩することを回避し、安全に上記情報を共有することが可能になる。
【００４８】
また、本発明によれば、以下の利点を持つネットワーク上のグループの検索が可能となる。すなわち、（１）常時稼動しているサーバの運用が不要であり、
（２）検索結果を応答者の秘密鍵、グループ参加証などから生成することにより、グループメンバ以外の者からの、検索に対する不正な応答を回避することができる。つまり、グループのメンバ以外がグループの情報を詐称することを防ぐことができ、サーバがない状況においても、信頼性のある検索を実行することができる。
【発明を実施するための最良の形態】
【００４９】
以下、本発明に係る実施の形態について、図面を用いながら詳細に説明する。
まず、本発明の概要について説明する。本発明は、ネットワークで相互に接続された複数の端末間の通信に関するものである。
本発明は、イーサネット（Ｒ）、アナログまたはデジタルの公衆回線または専用回線を用いたネットワーク、ＡＤＳＬ（Asymmetric Digital Subscriber line）、無線ＬＡＮ（Local Area Network）などのネットワークを想定しているが、これらに限定するものではない。また、インターネットではネットワークの下位プロトコルとしてＴＣＰ／ＩＰ（Transmission Control Protocol / Internet Protocol）が広く使用されており、本発明もその使用を想定しているが、これに制限するものではない。
【００５０】
前記の各端末は、前記ネットワークの形態に対応した通信インタフェースを備え、前記通信インタフェースを制御して通信を行うためのプログラムを前記端末内のＣＰＵが実行することにより通信処理を行っている。前記プログラムは、前記端末内のＲＯＭ（Read Only Memory）、あるいは前記端末のハードディスクやリムーバブルディスクなど不揮発性記憶装置に格納されており、そこから必要に応じて読み出され、前記端末の主記憶やＲＡＭ（Random Access Memory）上で実行され、あるいはこれらの組み合わせにおいて実行される。
【００５１】
また、前記端末には、その使用者の入力を受け付けるための入力手段も備わっている。入力手段としては、通常、キーボード、マウス、タブレットなどが用いられる。なお、これらの構成は、パーソナルコンピュータなどでは一般的に知られているものであり、本発明の主眼ではないので詳細な説明は省略する。
なお、以下で用いる「ユーザ」とは、前記端末の使用者をいう。また、本発明が想定しているネットワークにおいては、各ユーザ端末は、必ずしも常時ネットワークに接続しているわけではなく、通信に必要な各ユーザ端末のアドレス情報（ＩＰアドレス、ポート番号など）も固定ではなく、ネットワークに接続する毎に変化する可能性がある。
【００５２】
なお、以下の実施の形態では、図１に示すように、上記ネットワークの一例としてＰ２Ｐネットワークを取り上げ、各実施例はＰ２Ｐネットワークを念頭におきながら説明することとする。図１に示す通信システム１００は、Ｐ２Ｐネットワーク５上に形成された、それぞれ対等な関係の端末１０〜５０を備える仮想的なグループである。
【００５３】
（実施の形態１）
まず、本実施の形態で用いる公開鍵暗号方式の概要について説明する。公開鍵暗号方式とは、「公開鍵」と「秘密鍵」とを用いた暗号方式であり、次のような性質を有している。（１）公開鍵と秘密鍵は、一方から他方を現実的な時間で計算することは不可能である。（２）公開鍵で暗号化した情報は、対応する秘密鍵でのみ復号が可能であり、秘密鍵で暗号化した情報は、対応する公開鍵でのみ復号が可能である。
【００５４】
上記（１）の性質より、この暗号方式の利用者は、秘密鍵を秘密裡に保持しておけば、公開鍵を第三者に知られても問題はない（公開鍵を公開しておくことができる）。従って、ある情報を秘密裡に送信したい送信者側では、前もって受信者の公開鍵を入手しておき、上記の情報を受信者の公開鍵で暗号化し、この暗号化情報を受信者の端末に送信する。受信者側では、自分のみが保持する秘密鍵で、受信した暗号化情報を復号する。たとえ、第三者が、上記の暗号化情報を傍受しても、受信者の秘密鍵以外では復号できないため、その第三者に情報が漏洩することはない。以下では、暗号化対象の情報Ｍを鍵Ｋで暗号化した情報を「ｅ（Ｍ，Ｋ）」のように表記することとする。
【００５５】
また、公開鍵暗号方式を用いて、情報そのものは暗号化しないが、情報が改竄されていないことを証明するための「電子署名」（以下単に「署名」という。）を行うことも可能である。即ち、署名対象の情報「Ｍ」から所定のアルゴリズム「ｆ」で一意に導き出される派生情報「Ｈ」をＨ＝ｆ（Ｍ）とし、さらに、この派生情報Hを送信者の秘密鍵「Ｋ＿Ｓ」で暗号化した署名情報を「Ｓｇｎ」とすると、このＳｇｎ＝ｅ（Ｈ，Ｋ＿Ｓ）を上記の情報Ｍに付加して受信者の端末に送信する。
【００５６】
受信者の端末は、上記の情報Ｍと署名情報Ｓｇｎとを受信し、署名情報Ｓｇｎを送信者の公開鍵「Ｋ＿Ｐ」で復号して派生情報Ｈを得て、Ｈ＝ｆ（Ｍ）が成立することを確認することで、情報Ｍが第三者によって改竄されていないことを確認できる。なぜならば、情報Ｍが第三者によって改竄されていれば、Ｈ＝ｆ（Ｍ）が成立せず、また送信者の秘密鍵Ｋ＿Ｓがなければ、送信者の公開鍵Ｋ＿Ｐで正常に復号され得る署名情報Ｓｇｎの作成も不可能だからである。
【００５７】
公開鍵暗号方式およびこれを応用した署名方式は、インターネットでセキュリティを要する通信に広く用いられている。以下では、あるユーザＡの公開鍵、秘密鍵をそれぞれ「ＫＡ＿Ｐ」、「ＫＡ＿Ｓ」のように表記することとする。
【００５８】
本実施の形態において、「グループ」は、次のように定義する。（１）グループは１名以上のグループ参加者（以下、単に「参加者」ともいう。）から構成される。（２）各参加者は、複数のグループに加入することが可能である。（３）グループには、グループ固有の共有情報がある。（４）同じグループに属することを相互に認証したユーザ(以下「メンバ」という。)間では、そのグループの共有情報の送受信を行うことができる。なお、上記のグループは、友人、家族、同じ趣味の持ち主、住所が近い者など、１人以上の参加者によって構成することとする。
【００５９】
本実施の形態においては、グループを構成する参加者を、グループ参加証（単に「参加証」ともいう。）を発行する権限を有する管理者としての参加者とそれ以外の参加者の二者に分類する。ネットワーク上の一般のユーザは、管理者からグループ参加証を発行してもらうことで、そのグループへの参加が認められる。ここで、「グループ参加証」とは、グループ認証を行うための情報であると定義する。また、「グループ認証」とは、あるグループの一のユーザが、他のユーザに対して、当該グループに参加していることを証明し、さらに、立場を逆にして上記他のユーザが上記一のユーザに対して当該グループに参加していることを証明することであると定義する。
【００６０】
以上のグループを管理するには、以下に示すような処理が必要となる。
（１）グループの形成
（２）グループの告知
（３）グループ情報の取得
（４）エントリポイント情報の取得
（５）グループへの新規加入依頼
（６）グループメンバ間の認証
（７）グループメンバ間の情報共有
（８）グループ参加証の更新
（９）グループメンバの削除
（１０）グループ管理者の追加
（１１）グループ公開鍵の更新
以下、各処理について説明する。
【００６１】
１．グループの形成
情報を共有する目的等のために、ネットワーク上で仮想的にグループを形成したいユーザＡは、形成するグループ用の公開鍵「ＫＧ＿Ｐ」および秘密鍵「ＫＧ＿Ｓ」のペアを生成し、その端末（以下これを「端末Ａ」という。）に記憶又はユーザA自身で保持しておく。これらの鍵は、上記入力手段を介してユーザＡが指定した情報（パスフレーズ）に基づいて生成してもよいし、端末Ａの機能（アプリケーションプログラムに基づく機能を含む。以下同じ。）によって生成された乱数などの情報に基づいて生成してもよい。
【００６２】
２．グループの告知
生成されたグループ公開鍵ＫＧ＿Ｐは、何らかの方法で、参加者の端末（例えば、端末Ａ）から他のユーザの端末に、そのグループを特定するグループ識別情報（例えば、他のグループと重複しないグループＩＤ等）などの一部として、グループ情報として告知される必要がある。この告知方法としては、以下に示す方法が考えられる。
【００６３】
（１）端末Ａが、上記図３０に示すようなＰ２Ｐネットワークの全て、あるいは一部のユーザを宛先として、前記グループ情報を発信する。これにより、そのグループ情報は、ユーザ端末からユーザ端末へと順次転送され、最終的には、目的の宛先の端末に受信される。
【００６４】
（２）端末Ａが、同じローカルエリアネットワーク（ＬＡＮ）又は仮想プライベートネットワーク（ＶＰＮ：Vertual Private Network）に接続されている他のユーザ端末宛てに、前記グループ情報をブロードキャストする。
【００６５】
（３）端末Ａが、電子メール等により、即ち、Ｐ２Ｐネットワークを介した転送以外の何らかの方法で、他のユーザ端末に対してグループ情報（少なくともグループ公開鍵ＫＧ＿Ｐ）を直接送付する。
【００６６】
（４）例えば、グループ情報を登録するグループ情報インデックスサーバがあって、端末Ａが、グループ情報インデックスサーバに情報を登録し、他のユーザ端末が、グループ公開鍵ＫＧ＿Ｐを含むグループ情報を自由に入手できるようにする。
【００６７】
（５）上記の（１）〜（４）の方法を組み合わせる。
【００６８】
なお、前記グループ情報には、そのグループ名、グループの発起人を特定する情報、成り立ち、目的、参加条件など、当該グループの内容を表すグループ属性情報と共に、当該グループを特定し得るグループ識別情報が含まれる。このグループ識別情報には、少なくともグループ公開鍵ＫＧ＿Ｐが含まれることとする。
【００６９】
３．グループ情報の取得
Ｐ２Ｐネットワーク上のユーザＸは、その端末（以下「端末Ｘ」という。）を介して、次のいずれかの方法で加入したいグループのグループ情報を検索し、検索したグループ情報から、グループ識別情報を取得する。
【００７０】
（１）端末Ｘが保持している、過去に受信したグループ情報（グループを形成したユーザAの端末Ａから直接受信したグループ情報を含む。）から、グループを特定するグループ識別情報あるいはグループを説明するグループ属性情報に基づき、所望するグループを発見する。
【００７１】
（２）上記図３０に例示するようなＰ２Ｐネットワークの情報検索の仕組みを用いて、他のユーザに対してグループ属性情報の一部または全部を検索キー（「キーワード」ともいう。）として検索し、検索されたグループ情報からグループ識別情報を入手する。
【００７２】
（３）上記のグループ情報インデックスサーバが運用されている場合には、このグループ情報インデックスサーバに対して、グループ属性情報の一部または全部をキーとして検索し、同様にグループ識別情報を入手する。
【００７３】
（４）グループの発起人の端末Ａが端末Ｘにとって既知の場合は、グループ情報さらにグループ識別情報を、何らかの方法（例えば、電子メール等）で直接入手する。
【００７４】
４．エントリポイント情報の取得
ユーザＸが、新規に特定のグループへの加入を希望する場合は、グループ管理者を特定し、その管理者の端末に接続するためのエントリポイント情報（例えば、ＩＰアドレス、通信に用いるポート番号など）を入手する必要がある。ここで、グループ管理者とは、グループメンバの追加削除等の権限を有するユーザであり、より具体的には、グループ秘密鍵ＫＧ＿Ｓを保持するユーザである。この場合、ユーザＸは、グループ管理者のエントリポイント情報を、次のいずれかの方法で入手する。
【００７５】
（１）ユーザＸは、端末Ｘを介して、上記図３０に例示するようなＰ２Ｐネットワークの情報検索の仕組みを用いてグループ識別情報の一部または全部をキーとして検索を行い、その検索に対してグループ管理者が応答する。グループ管理者からの応答により、端末Ｘは、グループ管理者の端末のエントリポイント情報の通知を受ける。
【００７６】
（２）ピア情報サーバを用いる方法である。ここで、「ピア情報サーバ」とは、Ｐ２Ｐネットワークにオンラインで接続されている全てのユーザ、あるいは少なくとも一つのグループに加入している全てのユーザに対して、少なくともエントリポイント情報を検索し得るサーバであり、各グループのグループ識別情報やグループ属性情報などを保持する。ユーザＸは、このピア情報サーバに対してグループ識別情報などをキーとして検索を行い、その検索結果に基づいて、上記（１）と同様に、グループ管理者の端末のエントリポイント情報を入手する。
【００７７】
（３）グループ管理者の端末Ａが端末Ｘにとって既知であり、かつ端末Ａが常にオンライン状態で、かつ、エントリポイント情報が変化しないことも既知である場合、そのエントリポイント情報の通知を受ける。
【００７８】
５．グループへの新規加入依頼
あるグループに新規に加入したいユーザＸは、端末Ｘを介して上記のエントリポイント情報を用いてグループ管理者Ａの端末Ａと通信を行い、「グループ参加証」の発行を依頼する。本処理の詳細については後述する。
【００７９】
６．グループメンバ間の認証
上記のように入手したグループ参加証を保持するグループメンバ間では、互いに同じグループに属していることを認証し合うことが可能になる。なお、本処理の詳細については後述する。
【００８０】
７．グループメンバ間の情報の共有
上記のように、互いに同じグループに属していると認証された複数のグループメンバ間、例えばユーザＸの端末ＸとユーザＹの端末Ｙの間では、グループ内の共有情報を相互に転送することが可能である。これは、例えば次の（（７−１）および（７−２））の処理によって実現できる。
【００８１】
（７−１）通信に用いる暗号鍵の設定
互いに同じグループに属していることを認証した後、例えば、ユーザＸとユーザＹにおける共通の暗号鍵「Ｋ＿ＸＹ」をユーザＸが作成して、ユーザＸの秘密鍵およびユーザＹの公開鍵でこの暗号鍵を暗号化してユーザＹの端末Ｙに送付する。ユーザＹはこれを自分の秘密鍵およびユーザＸの公開鍵を用いて復号する。この場合、ユーザＹ以外はこれを復号することができない。これにより、暗号鍵Ｋ＿ＸＹをユーザＸの端末ＸからユーザＹの端末Ｙに、安全に通知することが可能となる。
【００８２】
（７−２）転送する情報の暗号化
上記の（７−１）以降、端末Ｘ−端末Ｙ間において情報を転送する場合は、共通の暗号鍵Ｋ＿ＸYで暗号化を行う。第三者は、暗号鍵Ｋ＿ＸＹを知ることができないので、端末Ｘ−端末Ｙ間の通信を傍受してもその内容を復号することはできず、またユーザＸまたはユーザＹに成りすまして偽りの情報を端末Ｙまたは端末Ｘに転送することも不可能となり、端末Ｘ−端末Ｙ間では安全に通信を行うことができる。これにより、グループメンバ間で、相互に安全にグループ情報の共有が可能となる。
【００８３】
なお、３名以上のメンバがお互いに認証された場合、これらのメンバの端末間で情報転送のために用いる暗号鍵については、次のような形態が考えられる。
【００８４】
（１）異なる二者間の通信には異なる暗号鍵を用いる。例えば、端末Ａと端末Ｂと端末Ｃが互いに認証されている場合、端末Ａ−端末Ｂ間の通信には暗号鍵Ｋ＿ＡＢを、端末Ｂ−端末Ｃ間の通信には暗号鍵Ｋ＿ＢＣを、端末Ｃ−端末Ａ間の通信にはＫ＿ＣＡをそれぞれ用いる方法である。
【００８５】
（２）互いに認証された上記のメンバ間においては、共通の唯一の暗号鍵を用いる。例えば、端末Ａと端末Ｂが互いに認証されていて、暗号鍵Ｋ＿ＡＢを用いて通信を行っている状態で、新たに端末Ｃが端末Ａまたは端末Ｂに認証された場合、端末Ａまたは端末Ｂから端末Ｃに、端末Ｃの公開鍵を用いて暗号化したＫ＿ＡＢを送付し、それ以降は端末Ａ、端末Ｂおよび端末Ｃのいずれの二者間でも暗号鍵Ｋ＿ＡＢを用いる方法である。
【００８６】
８．グループ参加証の更新
上記のように発行されたグループ参加証に有効期限情報が含まれている場合には、その有効期限以降、そのグループ参加証を有するユーザは、グループへの参加（グループメンバ間における認証）が不可能になるため、グループ参加証の更新が必要となる。本処理の詳細については後述する。
【００８７】
９．グループメンバの削除
上記で述べた方法では、グループ参加証を持つユーザは、そのグループ参加証の有効期限まではグループへの参加が可能であるが、何らかの理由により、その有効期限以前にそのユーザをグループメンバから除外したい（そのユーザをグループメンバとして認証できないようにしたい）場合は、例えば次のような処理を実行することで可能となる。なお、以下では、グループメンバを削除する方法について、グループ参加証を消去する方法（下記（９−１））、および失効者情報を作成する方法（下記（９−２−１）（９−２−４））の２例を挙げて説明する。
【００８８】
（９−１）グループ参加証の消去
除外対象のメンバが保持しているグループ参加証を消去すれば、当該メンバは、その後グループメンバ間の認証が行えなくなる。そのためには、各メンバの端末において、次のような処理を実行する必要がある。
【００８９】
（９−１−１）グループ参加証の消去指示
グループ管理者がその端末を介して、除外対象のメンバの端末に対して、当該グループから除外することを指示する参加証消去指示の通知を行う。
【００９０】
（９−１−２）グループ参加証の消去
上記参加証消去指示を受けたそのメンバの端末は、保持しているグループ参加
証を消去する。この場合は、上記参加証消去指示を受けた端末が強制的に消去することとする。
【００９１】
（９−２−１）失効者情報の作成
グループメンバの一人（グループ管理者含む。）が、除外されたメンバを特定する情報（例えば当該メンバの公開鍵）を含む失効者情報を作成する。
【００９２】
（９−２−２）失効者情報の共有
前記のグループメンバ間の認証の際には、一方の端末が保持する失効者情報の失効者リストと認証相手が持つ失効者情報の失効者リストとを比較し、一方に失効者リストの欠損が存在する場合は、他方の失効者リストを用いて補充することで、失効者情報の失効者リストを全グループメンバで一致させる。
【００９３】
（９−２−３）失効者の除外
前記のグループメンバ間の認証の際に、認証相手が自分の保持する失効者リストに含まれているかどうかを確認し、含まれている場合は、その相手をグループメンバとして認証しない。例えば、ユーザの公開鍵を失効者リストにおける記載項目とする場合は、認証相手の公開鍵が失効者リストに含まれている場合は、その相手との認証は拒否する。
【００９４】
（９−２−４）失効者の参加資格更新の拒否
管理者は、その端末を介して、前記のグループ参加証の更新を行う際に、参加証の更新の依頼を受けたユーザを特定する情報（例えば、公開鍵）が失効者リストに含まれている情報のいずれかと一致するかどうかを確認し、一致するものがある場合は参加証の更新を拒否する。
【００９５】
なお、失効者情報にその消去不可期限を付加しておいた場合は、消去不可期限を徒過した失効者情報を削除することとする。例えば、グループ参加証の有効期限より少し後の時点を消去不可期限として付与しておけば、不要となった失効者情報を順次削除することができ、失効者情報のリストが無限に増大することを防ぐことができる。
【００９６】
また、失効者情報の作成はグループ管理者のみが行い、グループ管理者がグループ秘密鍵ＫＧ＿Ｓを用いて暗号化した状態でグループ内で共有することとしてもよい。グループメンバは、公開されているグループ公開鍵ＫＧ＿Ｐを用いて失効者情報を復号することが可能であり、この失効者情報が不正に改竄されていないことの確認が可能となる。これにより、悪意を持つユーザにより作成された不正な失効者情報の共有化を防ぐことができる。
【００９７】
また、グループ参加証の消去（上記（９−１））の方法と、失効者情報の作成等（上記（９−２−１）〜（９−２−４））による方法とを、必要に応じて組み合
わせることによって、目的のメンバを削除してもよい。
次に、上記の失効者情報を利用したグループメンバを削除する方法について、詳細に説明する。なお、失効者情報の具体例として、グループから削除されたメンバの情報をリストアップした「失効者リスト」を使用することとする。
【００９８】
図２は、グループ管理者によって作成される失効者リストのフォーマットの一例である。この失効者リストの各フィールドには、以下のデータが格納される。
【００９９】
（１）失効者リストＩＤ
失効者リストを一意に特定するための識別子を表す。
（２）発効日
失効者リストが作成された日時を表す。
（３）有効期限
失効者リストを保持していなければならない期限を表す。
（４）作成者ＩＤ
失効者リストを作成した管理者を一意に特定するための識別子を表す。例えば、管理者の公開鍵等を作成者ＩＤとして利用する。
グループ内に管理者以外に、管理者と称する者が複数存在する場合、どの者が発行した失効者リストであるかを識別するために参照されるフィールドである。
（５）失効者ＩＤリスト
グループから削除された、旧参加者のＩＤのリストを表す。
（６）失効者ＩＤ
グループから削除された、旧参加者を一意に特定するための識別子を表す。
（７）署名
【０１００】
グループ秘密鍵による署名を表す。管理者以外が失効者リストを作成できないことを保証する。
管理者は、グループからメンバを削除するたびに、失効者リストを作成／更新する。全てのグループメンバは、同一の失効者リストを保持する。
【０１０１】
１０．グループ管理者の追加
上記のように、グループへの新規加入依頼は、グループ管理者の端末がオンライン状態である場合に限られ、オフライン状態にある場合は、上記の依頼を行うことができない。そこで、グループに加入を希望するユーザに上記依頼を行う機会を増やすため、グループ管理者の端末を増やすこととする。この場合、グループ秘密鍵ＫＧ＿Ｓを何らかの安全な手法（例えば、暗号通信方式）によって、グループ管理者の端末から新たに追加されるグループ管理者の端末に転送する。
【０１０２】
１１．グループ公開鍵の更新
何らかの事故により、グループ秘密鍵ＫＧ＿Ｓがグループ管理者以外のユーザに漏洩した場合、グループ秘密鍵を入手したユーザは、不正にグループ参加証または失効者リストを発行することが可能となる。この場合、グループのメンバは、は、正当なグループ管理者によって発行されたグループ参加証と不正に発行されたグループ参加証とを判別することはできなくなる。このような事態を防止するために、グループ管理者は、グループ公開鍵・秘密鍵のペアを更新する必要がある。また、上述したように、追加されたグループ管理者の中からのグループ管理者としての権限を剥奪したい場合も、グループ公開鍵・秘密鍵のペアを更新する必要がある。一方、グループ管理者が、グループ公開鍵・秘密鍵のペアを「ＫＧ＿Ｐ'」・「ＫＧ＿Ｓ'」に更新したとしても、従来のグループ公開鍵ＫＧ＿Ｐとそれに基づいて作成されたグループ参加証を持つグループメンバ同士におけるグループ認証は、互いに可能な状態が継続する。したがって、グループの全てのメンバは、常に最新のグループ公開鍵を保持しておく必要があると同時に、最新のグループ公開鍵に対応したグループ参加証を入手する必要がある。
【０１０３】
グループ公開鍵の更新は、例えば、次のいずれかのような方法により可能である。
（１）グループ管理者がグループ公開鍵・秘密鍵のペアを更新した時点で、上記図３０に例示したようなＰ２Ｐネットワークを介してグループメンバ全員の端末に新しいグループ公開鍵を送付する。この送付を受けた各メンバの端末は、この新しいグループ公開鍵で古いグループ公開鍵を置き換える。
【０１０４】
（２）前記グループ情報に、グループ公開鍵の更新時刻に関する情報も含めておき、各グループメンバの端末では、グループ公開鍵に加えてこのグループ公開鍵の更新時刻に関する情報も保持しておく。そして、メンバ同士の認証時には、双方の端末が保持するグループ公開鍵とその更新時刻に関する情報とについて比較を行い、一方のメンバの端末が正当な古いグループ公開鍵を保持している場合は、他方の新しいグループ公開鍵でその古いグループ公開鍵を置き換える。
【０１０５】
（３）グループ管理者が、上記のグループ情報インデックスサーバを運営している場合には、グループ情報に上記（２）と同様、グループ公開鍵の更新時刻に関する情報も含めておく。さらに、グループメンバは、オンラインになった時、一定時間毎、あるいはグループ認証を行う直前などのタイミングで、前記グループ情報インデックスサーバにアクセスして当該グループの最新のグループ公開鍵を入手する。
【０１０６】
なお、最新のグループ公開鍵に対応したグループ参加証を入手するためには、グループ公開鍵が更新されているという事実を検出した時点で、これを検知したユーザの端末が、グループ管理者の端末に参加証の再発行依頼を行えばよい。
【０１０７】
次に、上記のように構成される通信システム１００の動作について説明する。図４は、上記「５．グループへの新規加入依頼」処理の流れを示すフローチャートである。図４では、グループに新規に加入を希望する加入依頼者Ｘの端末Ｘとグループ管理者Ａの端末Ａにおいて実行される、それぞれの処理の流れを示している。なお、図５は、上記図４の処理が実行された後に、端末Ｘに保持される情報を示している。
【０１０８】
事前に、端末Ａは、グループ管理者Ａの指示により、新規に作成されたグループの公開鍵ＫＧ＿Ｐ・秘密鍵ＫＧ＿Ｓのペアを格納し、このうちグループ公開鍵ＫＧ＿Ｐについては公開する（Ｓ１０１）（上記「１．グループの形成」および「２．グループの告知」を参照）。
【０１０９】
同じく事前に、加入依頼者Ｘの端末Ｘは、加入依頼者Ｘの指示により、作成された公開鍵ＫＸ＿Ｐ・秘密鍵ＫＸ＿Ｓのペアを格納する（Ｓ１０２）。これらの鍵は、加入依頼者Ｘによって指定された情報（パスフレーズ）に基づいて生成されたものであってもよいし、プログラムまたは端末Ｘの機能に基づいて生成されたもの（例えば、乱数に基づいて生成されたもの）であってもよい。
【０１１０】
次に、端末Ｘは、加入依頼者Ｘの指示により、参加を所望するグループの公開鍵ＫＧ＿Ｐを入手すると共に（上記「３．グループ情報の取得」を参照）、そのグループ管理者Ａの端末Ａのエントリポイント情報を特定する（上記「４．エントリポイント情報の取得」を参照）（Ｓ１０３）。
【０１１１】
さらに、端末Ｘは、加入依頼者Ｘの指示により、任意の文字列Ｓを作成する（Ｓ１０４）。この文字列Ｓは、加入依頼者Ｘによって入力された文字列そのものであってもよいし、プログラムまたは端末Ｘの機能に基づいて生成された文字列（例えば、乱数に基づいて生成された文字列）であってもよい。
【０１１２】
このあと、端末Ｘは、加入依頼者Ｘの指示により、端末Ａに文字列Ｓと加入依頼者Ｘを特定し得る情報（例えば、氏名、住所など）とを送信して、グループに新規に加入する旨の依頼を行う（Ｓ１０５）。
【０１１３】
これにより、端末Ａは、端末Ｘから受信した加入依頼者Ｘを特定し得る情報に基づき、加入依頼者Ｘの加入を承認するか否かを決定する（Ｓ１０６）。加入依頼者Ｘの加入を認めないと決定した場合（Ｓ１０６：Ｎｏ）、端末Ａは、端末Ｘがグループに新規加入できないまま本処理を終了する。
【０１１４】
加入依頼者Ｘの加入を承認する場合（Ｓ１０６：Ｙｅｓ）、端末Ａは、端末Ｘから受信した文字列Ｓをグループの秘密鍵ＫＧ＿Ｓで暗号化した文字列Ｓ'＝ｅ（Ｓ，ＫＧ＿Ｓ）を作成し、端末Ｘに送信する（Ｓ１０７）。
【０１１５】
すると、端末Ｘは、端末Ａから受信した暗号化された文字列Ｓ'をグループの公開鍵ＫＧ＿Ｐで復号する（Ｓ１０８）。この際、端末Ｘは、上記文字列Ｓ'が公開鍵ＫＧ＿Ｐによって正常に復号され、かつその結果が元の文字列Ｓに等しいか否かを確認する（Ｓ１０９）。これにより、上記文字列Ｓ'がグループ公開鍵ＫＧ＿Ｐに対応する秘密鍵ＫＧ＿Ｓによって暗号化されたこと、即ち、端末Ａが確かにグループ秘密鍵ＫＧ＿Ｓを保持するグループ管理者Ａの端末であるか否かが確認できる。復号が失敗、あるいは復号結果が上記文字列Ｓに等しくない場合は（Ｓ１０９：Ｎｏ）、端末Ａのユーザがグループ管理者であるという確認ができないため、端末Ｘがグループに新規加入できないまま本処理を終了する。
【０１１６】
次に、端末Ｘは、端末Ａに加入依頼者Ｘの公開鍵ＫＸ＿Ｐを送信する（Ｓ１１０）。これにより、端末Ａは、加入依頼者Ｘのグループ参加証Ｃ＿Ｘを作成し、端末Ｘに送付する（Ｓ１１１）。このグループ参加証Ｃ＿Ｘは、端末Ｘの公開鍵ＫＸ＿Ｐに参加証の効果が消滅する日時を表す有効期限Ｔ＿Ｘを添付したもの（ＫＸ＿Ｐ＋Ｔ＿Ｘ）をグループ秘密鍵ＫＧ＿Ｓで暗号化して作成したものであり、Ｃ＿Ｘ＝ｅ（ＫＸ＿Ｐ＋Ｔ＿Ｘ，ＫＧ＿Ｓ）と表せる。この場合、公開鍵ＫＸ＿Ｐに有効期限Ｔ＿Ｘを添付する方法としては、復号前に分離不可能であって、復号によってそれぞれを分離することが可能であればどのような方法であってもよい。例えば、公開鍵ＫＸ＿Ｐ、有効期限Ｔ＿Ｘをそれぞれ文字列表現したものを所定の記号文字（例えば、ハイフン"−"）を介して結合したものなどが考えられる。
【０１１７】
さらに、端末Ｘが、グループ参加証Ｃ＿Ｘを受け取ると（Ｓ１１２）、グループへの新規加入依頼処理が完了する。なお、以上の処理が完了した時点における、端末Ｘに保持される情報（即ち、３種類の鍵情報および参加証）の一例を図５に示す。
【０１１８】
なお、本実施の形態では、上記図４に示すように、端末Ｘは、加入依頼者Ｘを特定し得る情報と加入依頼者Ｘの公開鍵ＫＸ＿Ｐを、それぞれ端末Ａに送信しているが（Ｓ１０５、Ｓ１１０）、これらの送信順序については特に限定するものではなく、上記送信順序を逆にしてもよい。
【０１１９】
次に、上記「６．グループメンバ間の認証」処理について、図６を参照しながら詳細に説明する。図６は、グループ参加証を既に入手したグループの参加者Ｘの端末Ｘと参加者Ｙの端末Ｙにおける、それぞれの処理の流れを示すフローチャートである。なお、端末Ｘは、上記図５に示した、３種類の鍵情報および参加証を既に保持しているものとする。
【０１２０】
最初に、参加者Ｘの端末Ｘは、グループに属している他の参加者Ｙの端末Ｙのエントリポイント情報を特定する（Ｓ３０１）。それは、例えば次のいずれかの方法で特定を行う。
【０１２１】
（１）端末Ｘは、上記図３０に例示したようなＰ２Ｐネットワークの情報検索の仕組みを用いて、グループ識別情報の一部または全部をキーとして検索を行い、その検索に対してグループ参加者が応答する。グループ参加者からの応答により、端末Ｘは、グループ参加者Ｙの端末Ｙのエントリポイント情報の通知を受ける。
【０１２２】
（２）ピア情報サーバが運営されている場合、端末Ｘは、このピア情報サーバに対してグループ識別情報をキーとして検索を行い、その検索結果に基づいて、オンライン状態にある他の参加者のエントリポイント情報を入手する。
【０１２３】
（３）他の参加者Ｙの端末Ｙが端末Ｘにとって既知であり、かつ端末Ｙが常にオンライン状態でエントリポイント情報が変化しないことも既知である場合、そのエントリポイント情報を用いる。
【０１２４】
次に、端末Ｘは、端末Ｙに対して認証の実施を依頼する（Ｓ３０２）。すると、端末Ｙは、上記図４の場合と同様、任意の文字列Ｓを作成し、端末Ｘに送信する（Ｓ３０３）。
これにより、端末Ｘは、参加者Ｘの指示により、受信した文字列Ｓを自分の秘密鍵ＫＸ＿Ｓで暗号化した文字列Ｓ'＝ｅ（Ｓ，ＫＸ＿Ｓ）を作成し、この文字列Ｓ'と自身が保持しているグループ参加証Ｃ＿Ｘとを端末Ｙに送信する（Ｓ３０４）。
【０１２５】
このあと、端末Ｙは、端末Ｘから受信した参加証Ｃ＿Ｘをグループ公開鍵ＫＧ＿Ｐで復号し、参加者Ｘの公開鍵ＫＸ＿Ｐと有効期限Ｔ＿Ｘとを得る（Ｓ３０５）。ここで、端末Ｙは、上記の復号が成功したか否かについて確認する（Ｓ３０６）。もし、復号が失敗した場合（即ち、参加証Ｃ＿Ｘが正当なグループ秘密鍵ＫＧ＿Ｓで暗号化されていない場合）、端末Ｘはグループに属していないとみなし、本処理を終了する（Ｓ３０６：Ｎｏ）。
【０１２６】
さらに、端末Ｙは、上記の復号によって得られた有効期限Ｔ＿Ｘが有効か否かについて確認する（Ｓ３０７）。もし、有効期限Ｔ＿Ｘが無効の場合は（Ｓ３０７：Ｎｏ）、参加証が無効であることを意味するので、端末Ｘはグループに属していないとみなし、本処理を終了する。
【０１２７】
さらにまた、端末Ｙは、端末Ｘから受信した暗号化された文字列Ｓ'を上記の復号によって得られた端末Ｘの公開鍵ＫＸ＿Ｐで復号する（Ｓ３０８）。これにより、端末Ｙは、この文字列Ｓ'の復号が成功し、かつ復号結果が文字列Ｓと一致することを確認する（Ｓ３０９）。もし、一致しなければ（Ｓ３０９：Ｎｏ）、端末Ｘは公開鍵ＫＸ＿Ｐに対応する秘密鍵ＫＸ＿Ｓを保持していないことを意味するので、端末Ｘは第三者の成りすましの可能性があるとみなし、本処理を終了する。
【０１２８】
以上の処理のように、下記の全ての内容について確認できた場合、端末Ｙは、端末Ｘをグループ参加者であると認証する（Ｓ３１０）。
（１）端末Ｘが、グループ秘密鍵ＫＧ＿Ｓで暗号化されたグループ参加証を保持している。
（２）グループ参加証の有効期限Ｔ＿Ｘは有効である。
（３）端末Ｘが、グループ参加証の中の暗号化されていた公開鍵ＫＸ＿Ｐに対応する秘密鍵ＫＸ＿Ｓを保持している。
【０１２９】
次に、上記の処理（Ｓ３０１〜Ｓ３１０）を端末Ｘと端末Ｙの立場を入れ替えて実行する。この処理が成功すれば、端末Ｘは、端末Ｙをグループの参加者であると認証され、相互の認証が完了する。
次に、上記「８．グループ参加証の更新」処理について、図７を参照しながら詳細に説明する。図７は、グループ参加証の更新を依頼する更新依頼者Ｘの端末Ｘとグループ管理者Ａの端末Ａにおける、それぞれの処理の流れを示したフローチャートである。なお、端末Ｘは、上記図５に示した、３種類の鍵情報および参加証を既に保持しているものとする。
【０１３０】
最初に、端末Ｘは、更新依頼者Ｘの指示により、端末Ａのエントリポイント情報を特定する（Ｓ４０１）（上記「４．エントリポイント情報の取得」を参照）。すると、端末Ｘは、更新依頼者Ｘの指示により、任意の文字列Ｓを作成し、端末Ａに送信してグループ参加証の更新を依頼する（Ｓ４０２）。この文字列Ｓは、更新依頼者Ｘによって入力された文字列そのものであってもよいし、プログラムまたは端末Ｘの機能に基づいて生成された文字列（例えば、乱数を用いて生成された文字列）であってもよい。
【０１３１】
次に、端末Ａは、文字列Ｓをグループ秘密鍵ＫＧ＿Ｓで暗号化して文字列Ｓ'＝ｅ（Ｓ，ＫＧ＿Ｓ）を作成し、端末Ｘに送信する（Ｓ４０３）。これにより、端末Ｘは、暗号化された文字列Ｓ'をグループ公開鍵ＫＧ＿Ｐによって復号する（Ｓ４０４）。
【０１３２】
さらに、端末Ｘは、上記文字列Ｓ'がグループ公開鍵ＫＧ＿Ｐにより正常に復号され、かつその結果が元の文字列Ｓに等しいことを確認する（Ｓ４０５）。これにより、上記文字列Ｓ'がグループ公開鍵ＫＧ＿Ｐに対応する秘密鍵ＫＧ＿Ｓによって暗号化されたこと、即ち、端末Ａが確かにグループ秘密鍵ＫＧ＿Ｓを保持するグループ管理者Ａの端末であることが確認できる。もし、復号が失敗あるいは復号結果が文字列Ｓに等しくない場合は（Ｓ４０５：Ｎｏ）、端末Ａがグループ管理者Ａの端末でないとみなし、端末Ｘはグループ参加証を更新することなく、本処理を終了する。
【０１３３】
上記復号が成功し復号結果が文字列Ｓと等しい場合（Ｓ４０５：Ｙｅｓ）、端末Ｘは、端末Ａに自分の参加証Ｃ＿Ｘ＝ｅ（ＫＸ＿Ｐ＋Ｔ＿Ｘ，ＫＧ＿Ｓ）を送信する（Ｓ４０６）。これにより、端末Ａは、受信した参加証Ｃ＿Ｘをグループ公開鍵ＫＧ＿Ｐで復号して更新依頼者Ｘの公開鍵ＫＸ＿Ｐを得る（Ｓ４０７）。
【０１３４】
さらに、端末Ａは、上記の復号が成功したか否かについて確認する（Ｓ４０８）。もし、復号に失敗した場合（Ｓ４０８：Ｎｏ）、端末Ａは、端末Ｘがグループ秘密鍵ＫＧ＿Ｓで暗号化されたグループ参加証を持たない端末であること、即ち、端末Ｘは、グループの参加者ではないとみなし、端末Ｘのグループ参加証を更新することなく、本処理を終了する。
【０１３５】
一方、上記の復号が成功した場合（Ｓ４０８：Ｙｅｓ）、端末Ａは、端末Ｘの公開鍵ＫＸ＿Ｐに新たな有効期限Ｔ＿Ｘ'を添付したものをグループ秘密鍵ＫＧ＿Ｓで暗号化して新たな参加証Ｃ＿Ｘ'＝ｅ（ＫＸ＿Ｐ＋Ｔ＿Ｘ'，ＫＧ＿Ｓ）を作成し、これを端末Ｘに送信する（Ｓ４０９）。
これにより、端末Ｘは、新しい参加証Ｃ＿Ｘ'を受信する（Ｓ４１０）。
【０１３６】
以上の処理により、更新依頼者Ｘの参加証は、新たな有効期限が添付されるので、更新依頼者Ｘは、端末Ｘを介して、新たな有効期限までグループに参加することが可能となる。
【０１３７】
次に、上記「９．グループメンバの削除」処理における失効者情報を共有する手順について、図面を参照しながら詳細に説明する。
上記の問題を解決するために、管理者の端末によるオンライン状態のメンバの端末に対するブロードキャストに加え、前述したメンバの端末としての認証が終了した直後に、メンバの端末同士でお互いが保持している失効者リストを交換する方式を導入することとする。
【０１３８】
まず、図３（ａ）に示すように、オンライン状態のメンバ端末Ｙ、Ｚとオフライン状態のメンバ端末Ｘとが異なる失効者リストを保持している場合を考える。次に、図３（ｂ）に示すように、オフライン状態のメンバ端末Ｘは、オンライン状態になると同時に、オンライン状態のメンバ端末Ｙとグループ認証を実行する。このとき、グループ認証が成功すると、図３（ｃ）に示すように、メンバ端末Ｘとメンバ端末Ｙは、互いが保持する失効者リストを交換する。
【０１３９】
図３（ｃ）には、メンバ端末Ｘはメンバ端末Ｙから失効者リストαおよびβを取得した様子が示されている。また、図３（ｄ）に示すように、オフライン状態のメンバ端末Ｘから新規に失効者リストを取得したメンバ端末Ｙは、既知のオンライン状態のメンバ端末Ｚに対しても新規の失効者リストを伝播させる。
【０１４０】
以上の方法により、失効者リストが管理者から通知された時点でオフライン状態であったメンバ端末に対しても、管理者不在時に、他のグループメンバから失効者情報を取得することが可能となる。
【０１４１】
図１９は、参加者Ｘの端末Ｘと参加者Ｙの端末Ｙの間で失効者リストを交換し、共有する処理の流れを示したフローチャートである。なお、図１９に使用される用語の意味を図２０に示す。
なお、ここでは、端末Ｘおよび端末Ｙについては、上述した「６．グループメンバ間の認証」処理によって、相互にグループのメンバの端末であることを認証していることとする。
【０１４２】
最初に、新規にグループに加入した参加者Ｘの端末Ｘは、所有している失効者リストセット（その端末が保持する全ての失効者ＩＤをリストアップしたもの：ＲＬＴ＿Ｘ）を参加者Ｙの端末Ｙに送信する（Ｓ２００１）。ここで、端末Ｘが保持する失効者リストをＣＲＬ（ａ）およびＣＲＬ（ｂ）と仮定する。この場合、上記ＲＬＴ＿Ｘを、それら失効者のＩＤをまとめて、「（ａ，ｂ）」と表現することとする。
【０１４３】
これにより、端末Ｙは、端末Ｘから取得した失効者リストセット（ＲＬＴ＿Ｘ）と、自身が保持している失効者リストセット（ＲＬＴ＿Ｙ）を比較して（Ｓ２００２）、自身は保持しているが端末Ｘは保持していない失効者リストを表す差分失効者リスト（ＤＲＬ＿Ｘ）と、端末Ｘが保持しているが自身は保持していない失効者リストを表す差分失効者リスト（ＤＲＬ＿Ｙ）を作成する（Ｓ２００３）。
【０１４４】
図１９においては、ＲＬＴ＿Ｘが（ａ，ｂ）、ＲＬＴ＿Ｙが（ａ，ｃ，ｄ）であるため、ＤＲＬ＿Ｘ＝（ｃ，ｄ）、ＤＲＬ＿Ｙ＝（ｂ）となる。次に、端末Ｙは、端末Ｘに対して、ＤＲＬ＿Ｙを送信する（Ｓ２００４）。
これにより、端末Ｘは、端末Ｙから受信した差分リストＤＲＬ＿Ｙから、端末Ｘが保持しており、かつ端末Ｙが保持していない失効者リストをまとめた追加失効者リストＡＲＬ＿Ｙを作成し、端末Ｙに送信する（Ｓ２００５）。
【０１４５】
次に、図１９においては、ＤＲＬ＿Ｙが（ｂ）であるため、追加失効者リストＡＲＬ＿Ｙの内容は、失効者のＩＤが「ｂ」の失効者リストＣＲＬ（ｂ）である。
さらに、端末Ｙは、端末Ｘから受信した追加失効者リストＡＲＬ＿Ｙから失効者のＩＤを取り出し、自身が保持している失効者リストセットＲＬＴ＿Ｙに追加して更新する（Ｓ２００６）。図１９においては、このときのＲＬＴ＿Ｙの内容は、（ａ，ｂ，ｃ，ｄ）となる。
【０１４６】
このあと、端末Ｙは、差分失効者リストＤＲＬ＿Ｘに基づいて、自身が保持し、かつ端末Ｘが保持していない失効者リストをまとめた追加失効者リストＡＲＬ＿Ｘを作成する（Ｓ２００７）。図１９においては、ＤＲＬ＿Ｘが（ｃ，ｄ）であるので、追加失効者リストＡＲＬ＿Ｘは、失効者のＩＤが「ｃ」の失効者リストＣＲＬ（ｃ）および失効者のＩＤが「ｄ」の失効者リストＣＲＬ（ｄ）から、（ＣＲＬ（ｃ），ＣＲＬ（ｄ））となる。
【０１４７】
さらに、端末Ｙは、端末Ｘに対して、失効者リストセットＲＬＴ＿Ｙおよび追加失効者リストＡＲＬ＿Ｘを送信する（Ｓ２００８）。
これにより、端末Ｘは、端末Ｙから受信した追加失効者リストＡＲＬ＿Ｘから失効者のＩＤを取り出し、自身が保持している失効者リストセットＲＬＴ＿Ｘを更新する（Ｓ２００９）。
【０１４８】
最後に、端末Ｘは、端末Ｙから取得したＲＬＴ＿Ｙと更新したＲＬＴ＿Ｘとを比較する（Ｓ２０１０）。両者が一致していれば（Ｓ２０１０：Ｙｅｓ）、端末Ｘと端末Ｙにおいては、失効者リストについては正常に同期していることとなる。
なお、上記の方法では、管理者以外から失効者リストを取得しているため、取得した失効者リストが正当なものか否かについて、別途検証する必要がある。
【０１４９】
管理者によって作成された失効者リストに対しては、グループ秘密鍵による署名が付加されているため、グループ公開鍵によって失効者リストの正当性を検証することができる。
正当性が確認された失効者リストは、有効期限が切れるまで、各メンバの端末に保持される。ただし、作成者ＩＤが同じである失効者リストが複数ある場合には、発行日が最新であるものを除き、同じ作成者ＩＤを持つ失効者リストは破棄しても構わない。
【０１５０】
つまり、グループに複数の参加証を発行する者が存在する場合、各グループのメンバは、その者の数だけ失効者リストを保持する必要があるが、同じ管理者が発行する失効者リストに関しては、最新のもののみを保持すればよい。
【０１５１】
各グループメンバは、他のグループメンバの認証時において、認証相手の参加証に記載されているＩＤあるいは公開鍵が、自身が保持している失効者リストに含まれている場合は認証を拒否することとする。
【０１５２】
以上のように、本実施の形態１又は２に係る通信システムによれば、グループ管理者の端末が介在しなくても（たとえ、グループ管理者の端末がオフラインであっても）、グループ管理者からグループ参加証を発行されたグループ参加者同士で互いにグループのメンバであることの認証が可能となる。
【０１５３】
また、仮に、グループからあるユーザを除外したい事態が発生しても、グループ参加証が有効期限を含んでいることにより、少なくともその有効期限後はそのユーザがグループのメンバとして認証されないようにすることが可能となる。さらに、その有効期限までの間は失効者リストを参照してそのユーザをグループ認証から除外することが可能となる。
【０１５４】
（実施の形態２）
上記実施の形態１においては、ネットワーク上のグループが管理者と一般のユーザの２種類のユーザから構成される実施例について説明したが、本実施の形態では、グループ管理者の権限を有する者が複数存在する実施例について説明する。
【０１５５】
前述したように、グループメンバの新規加入の機会を増やすために管理者を増やすとなると、グループ秘密鍵を複製することが必要となるが、グループ秘密鍵が複数のユーザに保持されることにより、漏洩する可能性も高くなる。
【０１５６】
本実施の形態は、これを改善するものであり、グループを構成するメンバを、唯一のグループ管理者（単に「管理者」ともいう。）、グループ参加証発行許可証を保持しグループ参加証を発行する権限を持つグループ発行者（単に「発行者」ともいう。）、および参加者（「グループメンバ」ともいう。）の３種類のユーザに分類する。ここで、グループ管理者がグループ参加証発行許可証を発行した参加者を「グループ発行者」と呼ぶ。発行者に権限を与えることができるのは管理者のみであり、一般ユーザにグループ参加証を発行できるのは、グループ管理者およびグループ発行者である。
【０１５７】
こうすることにより、管理者が複数の発行者を設けておけば、グループの秘密鍵を複製することなくグループへの新規加入の機会を増やすことが可能となる。
以上のようなグループを管理するには、以下に示すような処理が必要となる。
（１）グループの形成
（２）グループの告知
（３）グループ発行者の追加
（４）グループ情報の取得
（５）エントリポイント情報の取得
（６）グループへの新規加入依頼
（７）グループメンバ間の認証
（８）グループメンバ間の情報共有
（９）グループ参加証の更新
（１０）グループ参加証発行許可証の更新
（１１）グループメンバの削除
（１２）グループ公開鍵の更新
【０１５８】
以下、各処理について説明する。ただし、上記実施の形態１と同一の処理については、その説明を省略することとする。
１．グループの形成
上記実施の形態１の「１．グループの形成」と同じであるので省略する。
２．グループの告知
上記実施の形態１の「２．グループの告知」と同じであるので省略する。
３．グループ発行者の追加
上記のように、グループを形成したネットワーク上のグループ管理者は、参加者の一部にグループ参加証発行許可証を発行してグループ発行者を設け、グループのメンバを追加する権限を与える。すなわち、グループ参加証発行許可証を発行されたグループ発行者は、他のユーザに対してグループ参加証を発行することが可能となる。本処理の詳細については後述する。
【０１５９】
４．グループ情報の取得
上記実施の形態１の「３．グループ情報の取得」と同じであるので省略する。
５．エントリポイント情報の取得
あるグループに新規に加入したいユーザＸは、その端末Ｘを介して、少なくともグループ発行者と通信する必要があるが、そのためには、グループ発行者のエントリポイント情報を特定する必要がある。それは、例えば次のいずれかの方法で行われる。
【０１６０】
（１）端末Ｘは、上記図３０に例示したようなＰ２Ｐネットワークの情報検索の仕組みを用いて、グループ識別情報等の一部または全部をキーとして検索を行い、その結果、検索されたグループのグループ発行者がこれに応答し、自分のエントリポイント情報を端末Ｘに対して通知する。
【０１６１】
（２）上述したピア情報サーバが運営されている場合、端末Ｘは、このピア情報サーバに対してグループ識別情報等をキーとして検索を行い、その検索結果に基づいてグループ発行者のエントリポイント情報を入手する。
【０１６２】
（３）端末Ｘにとってグループ発行者が既知であり、かつ当該グループ発行者が常にオンライン状態であってエントリポイント情報が変化しないことも既知である場合、そのエントリポイント情報を用いる。
【０１６３】
６．グループへの新規加入依頼
あるグループに新規に加入したいユーザＸは、その端末Ｘを介して、上記のように特定されたエントリポイント情報を用いてグループ発行者と通信を行い、グループ参加証の発行を依頼する。本処理の詳細については後述する。
【０１６４】
７．グループメンバ間の認証
上記の「６．グループへの新規加入依頼」により入手したグループ参加証を持つグループメンバ間では、互いに同じグループに属していることを認証することが可能になる。本処理の詳細については後述する。
【０１６５】
８．グループメンバ間の情報共有
上記実施の形態１の「７．グループメンバ間の情報共有」と同じであるので省略する。
【０１６６】
９．グループ参加証の更新
前記の「６．グループへの新規加入依頼」で発行されたグループ参加証に有効期限情報が含まれている場合には、当該有効期限以降、グループへの参加（グループメンバ間の認証）が不可能になるため、その参加者は、その端末を介して、グループ参加証の更新が必要となる。本処理の詳細については後述する。
【０１６７】
１０．グループ参加証発行許可証の更新
前記の「３．グループ発行者の追加」で発行されたグループ参加証発行許可証に有効期限情報が含まれている場合には、当該有効期限以降、グループ参加証の発行が不可能になるため、その発行者は、その端末を介して、グループ参加証発行許可証の更新が必要となる。本処理の詳細については後述する。
【０１６８】
１１．グループメンバの削除
上記の実施の形態１と同様、何らかの理由により、グループ参加証の有効期限以前に特定のメンバが脱退した、又は特定の参加者をグループメンバから除外したい場合があり得る。この場合、当該参加者のグループ参加証を消去／無効化する方法は、上記の実施の形態１の「９．グループメンバの削除」における「グループ管理者」を「グループ管理者またはグループ発行者」に置き換えた場合と同じであるので、詳細な説明は省略する。
【０１６９】
なお、上記実施の形態１と同様、失効者情報を作成し、共有する方法をとることも可能である。例えば、次のような処理を実行する。
【０１７０】
（１１−１）失効者情報の作成
管理者の端末は、管理者の指示により、除外対象となったグループメンバの一人（グループ管理者、グループ発行者含む。）を特定する情報（例えば、当該メンバの公開鍵）を含む失効者情報を作成する。
【０１７１】
（１１−２）失効者リストの共有
管理者又は発行者の端末は、上記の「７．グループメンバ間の認証」の際は、参加者が所有する端末が保持する失効者情報のリストと認証相手が保持する失効者情報のリストとを比較し、一方のリストに含まれない失効者情報が存在する場合は、その一方のリストにその失効者リストを追加することで、失効者情報のリストを全グループメンバで一致させる。
【０１７２】
（１１−３）失効者の除外
管理者又は発行者の端末は、前記の「７．グループメンバ間の認証」の際に、自分が保持する失効者情報のリストに認証相手を特定する情報が含まれているかどうかを確認し、含まれている場合はその相手とのグループメンバとしての認証を拒否する。例えば、ユーザの公開鍵を失効者情報として用いる場合は、認証相手の公開鍵がリストに含まれる失効者情報のいずれかと一致すれば、この相手との認証は拒否する。
【０１７３】
（１１−４）失効者の参加資格更新の拒否
管理者又は発行者の端末は、前記の「９．グループ参加証の更新」の際に、参加証の更新を依頼した参加者が、失効者情報のリストに含まれているかどうかを確認し、一致するものがある場合は、参加証の更新を拒否する。
なお、失効者情報にその消去不可期限を含めておいて、消去不可期限を越えた失効者情報については削除が可能とすることについては、上記の実施の形態１と同様である。
【０１７４】
また、上記の実施の形態１と同様、失効者情報の作成はグループ発行者のみが行い、グループ発行者が自分の秘密鍵を用いて暗号化した状態で共有することとしてもよい。グループメンバは、失効者情報とそれを発行したグループ発行者の参加証発行許可証を同時に入手することにより、この参加証発行許可証に含まれるグループ発行者の公開鍵を用いて失効者情報を復号することが可能であり、この失効者情報が不正に改竄されていないことの確認が可能となる。これにより、悪意を持つユーザにより作成された不正な失効者情報が共有されることを防ぐことができる。
【０１７５】
次に、上記の失効者情報を利用したグループメンバを削除する方法について、詳細に説明する。ここでは、失効者情報の具体例として、グループから削除されたメンバの情報をリストアップした「失効者リスト」を使用することとする。
【０１７６】
図８は、グループ発行者によって作成される失効者リストのフォーマット例である。この失効者リストにおける各フィールドには、以下のデータが格納される。
【０１７７】
（１）失効者リストＩＤ
失効者リストを一意に指定するための識別子を表す。
（２）発効日
失効者リストが作成された日時を表す。
（３）有効期限
失効者リストを保持していなければならない期限を表す。
（４）作成者ＩＤ
失効者リストを作成した発行者を一意に特定するための識別子を表す。例えば、発行者の公開鍵等をＩＤとして利用する。
グループ内に複数の発行者が存在する場合、どの発行者が発行した失効者リストであるかを識別するために参照されるフィールドである。
（５）失効者リスト
グループから削除された参加者のＩＤのリストを表す。
（６）失効者ＩＤ
グループから削除された参加者を一意に特定するための識別子を表す。削除対象の参加者の公開鍵などをＩＤとして利用する。なお、このＩＤは、前述のグループ参加証含まれていることとする。
（７）参加証発行許可証
失効者リストを作成した発行者の端末が保持する参加証発行許可証である。
（８）署名
【０１７８】
失効者リストを作成した発行者の秘密鍵による署名を表す。発行者以外が失効者リストを作成できないことを保証する。
発行者により作成された失効者リストの配布方法は、前述した管理者により作成された失効者リストの配布方法と同一であるので、詳細についてはは省略する。
二人の参加者Ｘと参加者Ｙのそれぞれの端末Ｘと端末Ｙ間における失効者リストの同期方法については、上記実施の形態１の場合と同一であるため、ここでの説明は省略する。
【０１７９】
また、この方式では、管理者若しくは発行者以外から失効者リストを取得しているため、取得した失効者リストが正当なものか否かについて、検証する必要がある。
【０１８０】
発行者によって作成された失効者リストの有効性の確認は、次の２つの手段で実行することによって可能である。
１．グループ公開鍵による失効者リスト内の参加証発行許可証の検証
２．失効者リスト内の参加証発行許可証に含まれる発行者の公開鍵による失効者リストの署名確認。
【０１８１】
上記「１．」では、失効者リストの作成者が正当な発行者であることを確認し、上記「２．」では、失効者リストそのものが正当な発行者自身によって作成されたものであることを確認する。
正当性が確認された失効者リストは、有効期限が切れるまで、各メンバの端末に保持される。ただし、生成者ＩＤが同じである失効者リストが複数ある場合には、発行日が最新であるものを除き、同じ生成者ＩＤを持つ失効者リストは破棄しても構わない。
【０１８２】
つまり、グループに複数の発行者が存在する場合、各グループのメンバは、その者の数だけ失効者リストを保持する必要があるが、同じ発行者が発行する失効者リストに関しては、最新のもののみを保持すればよい。
【０１８３】
１２．グループ公開鍵の更新
何らかの事故により、グループ秘密鍵ＫＧ＿Ｓがグループ管理者以外のユーザに漏洩した場合に、このグループ秘密鍵を入手したユーザは、不正にグループ参加証発行許可証を発行することが可能となり、ひいてはグループ参加証を不正に発行することが可能となる。このとき、グループメンバは、不正なグループ参加証発行許可証によって発行された参加証か正規の参加証かを判別することはできない。このような場合には、グループ公開鍵・秘密鍵のペアを更新する以外に、不正な参加証の発行を防ぐ方法はない。一方、グループ管理者がグループ公開鍵・秘密鍵を（ＫＧ＿Ｐ・ＫＧ＿Ｓ）から（ＫＧ＿Ｐ'・ＫＧ＿Ｓ'）に更新したとしても、従来のグループ公開鍵ＫＧ＿Ｐとそれに基づいて作成されたグループ参加証を保持するグループメンバ同士では、上記の「６．グループメンバ間の認証」は可能なままなので、グループメンバは常に最新のグループ公開鍵を保持しておく必要があると同時に、最新のグループ公開鍵に対応したグループ参加証を入手する必要がある。これに加え、発行者は、最新のグループ公開鍵に対応したグループ参加証発行許可証を入手する必要がある。
【０１８４】
最新のグループ公開鍵の保持は、上記実施の形態１と同様、次のいずれかのような方法により可能である。
（１）グループ管理者がグループ公開鍵・秘密鍵を更新した時点で、上記図３０に例示したようなＰ２Ｐネットワークを介してネットワーク参加者全員に新しいグループ公開鍵を送付する。対応するグループのメンバは、この新しいグループ公開鍵で自分が保持しているグループ公開鍵を置き換える。
【０１８５】
（２）上記「２．グループの告知」で告知されるグループ情報に、グループ公開鍵の更新時刻に関する情報も含めておき、各グループメンバは、グループ公開鍵に加えてこのグループ公開鍵の更新時刻に関する情報も保持しておく。そして、上記「６．グループメンバ間の認証」の際には、双方が保持するグループ公開鍵とその更新時刻についてそれぞれ比較を行い、新しい方のグループ公開鍵で古い方のグループ公開鍵を置き換える。
【０１８６】
（３）上記「２．グループの告知」の（４）におけるグループ情報インデックスサーバを運営している場合には、グループ情報に（１）同様、グループ公開鍵の更新時刻に関する情報も含めておき、グループメンバはオンライン状態になった時、一定時間おき、あるいはグループ認証を行う直前などのタイミングで、前記グループ情報インデックスサーバにアクセスして当該グループの最新のグループ公開鍵を入手する。
【０１８７】
最新のグループ公開鍵に対応したグループ参加証発行許可証を入手するには、グループ公開鍵の更新を検出した時点でグループ参加証発行許可証の再発行依頼を実行すればよい。また、最新のグループ公開鍵に対応したグループ参加証を入手するには、グループ公開鍵の更新を検出した時点で参加証の再発行依頼を実行すればよい。
【０１８８】
次に、以上のように構成される通信システム２００（図示せず）の動作について説明する。図９は、上記「３．グループ発行者の追加」の処理の流れを示すフローチャートである。図９では、グループ管理者Ａの端末Ａと発行者候補Ｂの端末Ｂにおいて実行される、それぞれの処理内容が示されている。ここで、グループ管理者から発グループ発行者の候補として選択されたユーザを「発行者候補」という。
図１０は、上記図９の処理が終了した後に、端末Ｂに保持される情報を示している。
【０１８９】
事前に、グループ管理者Ａの端末Ａは、グループ管理者Ａの指示により、グループの公開鍵ＫＧ＿Ｐ・秘密鍵ＫＧ＿Ｓのペアを作成し、このうちグループ公開鍵ＫＧ＿Ｐについては公開を行う（Ｓ５０１）。
【０１９０】
同じく事前に、発行者候補Ｂの端末Ｂは、発行者候補Ｂの指示により、公開鍵ＫＢ＿Ｐ・秘密鍵ＫＢ＿Ｓのペアを作成する（Ｓ５０２）。これは端末Ｂが指定した情報（パスフレーズ）に基づいて生成してもよいし、プログラムまたは端末Ｂが備える機能に基づいて生成（例えば、乱数に基づいて生成）してもよい。
【０１９１】
端末Ａは、管理者Ａの指示により、追加するグループ発行者としてユーザ端末Ｂを選択し、端末Ｂのエントリポイント情報を特定する（Ｓ５０３）。それは、例えば次のような方法で行う。
【０１９２】
（１）端末Ａは、上記図３０で示されるＰ２Ｐネットワークの情報検索の仕組みを用いて、当該グループに参加しているユーザを検索する。この検索に応答したユーザは、その端末を介して、端末Ａに自分を特定する情報と自分のエントリポイント情報とを返信する。これにより、端末Ａは、受信した情報から、適切と判断するユーザＢを選択する。            
【０１９３】
（２）さらに、端末Ａは、電子メールなどＰ２Ｐネットワーク以外の手段を含む何らかの手段で、発行者候補Ｂの端末Ｂに対して、グループ発行者候補と決定した旨の通知を行う。端末Ｂは、このグループ発行者に係る依頼を受け入れる場合は、端末Ａに対して自分のエントリポイント情報を返信する。
【０１９４】
次に、端末Ａは、端末Ｂに対して、発行者候補Ｂの公開鍵を送信するよう要求する（Ｓ５０４）。これにより、端末Ｂは、端末Ａに対して発行者候補Ｂの公開鍵ＫＢ＿Ｐを送信する（Ｓ５０５）。
【０１９５】
さらに、端末Ａは、発行者候補Ｂの公開鍵ＫＢ＿Ｐに有効期限情報Ｔ＿Ｂを添付したものをグループの秘密鍵で暗号化してグループ参加証発行許可証Ｉ＿Ｂ＝ｅ（ＫＢ＿Ｐ＋Ｔ＿Ｂ，ＫＧ＿Ｓ）を作成し、端末Ｂに送信する（Ｓ５０６）。
【０１９６】
端末Ｂは、端末Ａからグループ参加証発行許可証Ｉ＿Ｂを受け取る（Ｓ５０７）。
以上の処理により、端末Ｂは、他ユーザに対してグループ参加証を発行することが可能になる。なお、上記処理が完了した時点における端末Ｂに保持される情報（即ち、３種類の鍵情報および参加証発行許可証）を図１０に示す。
【０１９７】
なお、本実施の形態では、図９に示すように、端末Ａが端末Ｂに対し、上記グループ発行者に係る依頼をすることとしているが（Ｓ５０３）、逆に端末Ｂの方から端末Ａにグループ発行者の権限を付与することを要求し、端末Ａがそれを承認する形で処理を進めてもよい。
【０１９８】
次に、上記「６．グループへの新規加入依頼」処理について、図１１を参照しながら詳細に説明する。図１１は、グループへの新規加入を依頼する加入依頼者Ｘとの端末とグループ発行者Ｂの端末Ｂで実行される、それぞれの処理の流れを示したフローチャートである。図１２は、グループへの新規加入依頼処理が終了した時点における、端末Ｘが保持する情報を表している。なお、端末Ｂは、上記図１０に示す情報を保持しているものとする。
【０１９９】
最初に、端末Ｘは、参加を所望するグループの公開鍵ＫＧ＿Ｐを入手すると共に（前記「４．グループ情報の取得」を参照）、グループ発行者Ｂの端末Ｂを特定する（Ｓ７０１）（前記「５．エントリポイント情報の取得」を参照）。
【０２００】
次に、端末Ｘは、加入依頼者Ｘの指示により、任意の文字列Ｓを作成し、端末Ｂに送信してグループへの新規加入を依頼する（Ｓ７０２）。この文字列Ｓは、加入依頼者Ｘによって入力された文字列そのものであってもよいし、プログラムまたは端末Ｘの機能に基づいて生成した文字列（例えば、乱数に基づいて生成した文字列）であってもよい。
【０２０１】
端末Ｂは、文字列Ｓを発行者Ｂの秘密鍵ＫＢ＿Ｓで暗号化した文字列Ｓ'＝ｅ（Ｓ，ＫＢ＿Ｓ）とグループ参加証発行許可証Ｉ＿Ｂを端末Ｘに送信する（Ｓ７０３）。
これにより、端末Ｘは、参加証発行許可証Ｉ＿Ｂをグループ公開鍵ＫＧ＿Ｐで復号し、発行者Ｂの公開鍵ＫＢ＿Ｐと有効期限Ｔ＿Ｂとを得る（Ｓ７０４）。
【０２０２】
さらに、端末Ｘは、参加証発行許可証Ｉ＿Ｂがグループ公開鍵ＫＧ＿Ｐにより正常に復号され、有効期限Ｔ＿Ｘが有効か否かについて確認する。もし、正常に復号されないか有効期限を徒過している場合は、端末Ｂが保持する参加証発行許可証Ｉ＿Ｂがグループ管理者のグループ秘密鍵ＫＧ＿Ｓで暗号化したものであること、即ち、端末Ｂがグループ発行者Ｂの端末であることが確認できないので、加入依頼者Ｘについてはグループへの新規加入をしないまま、本処理を終了する。
【０２０３】
次いで、端末Ｘは、暗号化された文字列Ｓ'を加入依頼者Ｂの公開鍵ＫＢ＿Ｐで復号する（Ｓ７０６）。
さらに、端末Ｘは、上記文字列Ｓ'がグループ公開鍵ＫＢ＿Ｐにより正常に復号され、かつその結果が元の文字列Ｓに等しいか否かについて確認する（Ｓ７０７）。これにより、上記文字列Ｓ'が、発行者Ｂの公開鍵ＫＢ＿Ｐに対応する秘密鍵ＫＢ＿Ｓによって暗号化されたこと、即ち、端末Ｂが確かに秘密鍵ＫＢ＿Ｓを保持するグループ管理者Ｂの端末であることが確認できる。もし、復号が失敗あるいは復号結果が文字列Ｓに等しくない場合は（Ｓ７０７：Ｎｏ）、端末Ｂがグループ発行者Ｂの端末であることが確認できないので、加入依頼者Ｘについてはグループへの新規加入をしないまま、本処理を終了する。
【０２０４】
一方、復号が成功し復号結果が文字列Ｓに等しい場合（Ｓ７０７：Ｙｅｓ）、端末Ｘは、端末Ｂに加入依頼者Ｘの公開鍵ＫＸ＿Ｐを送信する（Ｓ７０８）。
すると、端末Ｂは、加入依頼者Ｘのグループ参加証Ｃ＿Ｘを作成し、端末Ｘに送付する（Ｓ７０９）。この参加証は、加入依頼者Ｘの公開鍵ＫＸ＿Ｐに参加証の効果が消滅する日時を表した有効期限Ｔ＿Ｘを添付したもの（ＫＸ＿Ｐ＋Ｔ＿Ｘ）を発行者Ｂの秘密鍵ＫＢ＿Ｓで暗号化して作成したものであり、
Ｃ＿Ｘ＝ｅ（ＫＸ＿Ｐ＋Ｔ＿Ｘ，ＫＢ＿Ｓ）
と表せる。加入依頼者Ｘの公開鍵ＫＸ＿Ｐに有効期限Ｔ＿Ｘを添付する方法としては、復号前に分離不可能であり、復号によってそれぞれを分離することが可能であればどのような方法であってもよい。例えば、上記公開鍵ＫＸ＿Ｐ、有効期限Ｔ＿Ｘをそれぞれ文字列表現したものを所定の記号文字（例えば、ハイフン"−"）を介して結合したものなどが考えられる。
【０２０５】
最後に、端末Ｘは、端末Ｂからグループ参加証Ｃ＿Ｘを受け取り、加入依頼者Ｘのグループへの新規加入処理が完了する（Ｓ７１０）。グループへの新規加入が完了した時点で端末Ｘが保持する情報を図１２に示す。
【０２０６】
なお、本実施の形態では、加入依頼者Ｘの公開鍵ＫＸ＿Ｐを端末Ｂに対して送信することとしているが（Ｓ７０８）、それ以前の参加証発行依頼を行う際に（Ｓ７０２）送信してもよい。
【０２０７】
また、上記実施の形態１におけるグループへの新規加入依頼同様、加入依頼者Ｘが端末Ｂに対して自身を特定できる情報も加えて送信し（上記図４のＳ１０５）、端末Ｂはその個人を特定できる情報に基づいて加入依頼者Ｘを加入させるかどうかを判断し、加入させない場合は加入依頼者Ｘを加入させることなく処理を終了することとしてもよい。
【０２０８】
次に、前記「７．グループメンバ間の認証」処理について、図１４を参照しながら詳細に説明する。図１４は、グループ参加証を既に入手した二人のグループ参加者Ｘの端末Ｘとグループ参加者Ｙの端末Ｙで実行される、それぞれの処理の流れを示したフローチャートである。なお、端末Ｘと端末Ｙは、それぞれ図１２と図１３に示す情報を保持しているものとする。
【０２０９】
なお、上記実施の形態１における図６と同様の処理については、その説明は省略することとする。
端末Ｘは、端末Ｙから文字列Ｓを受信すると、参加者Ｘの秘密鍵ＫＸ＿Ｓで文字列Ｓを暗号化した文字列Ｓ'＝ｅ（Ｓ，ＫＸ＿Ｓ）を作成し、Ｓ'、グループ発行者から受け取ったグループ参加証発行証明書Ｉ＿Ｂおよびグループ参加証Ｃ＿Ｘを端末Ｙに送信する（Ｓ１００３）。
【０２１０】
これにより、端末Ｙは、グループ参加証発行証明書Ｉ＿Ｂをグループ公開鍵ＫＧ＿Ｐで復号し、グループ発行者の公開鍵ＫＢ＿Ｐおよびグループ参加証発行証明書の有効期限Ｔ＿Ｂを得る（Ｓ１００４）。
【０２１１】
さらに、端末Ｙは、復号が成功したか否かおよび得られた有効期限Ｔ＿Ｂが有効か否かについて確認する（Ｓ１００５）。復号が失敗した場合は、グループ参加証発行許可証が正しくグループ秘密鍵ＫＧ＿Ｓで暗号化されていないことを意味し、また、有効期限が過ぎていれば、グループ参加証発行許可証が無効であることを意味するので、いずれの場合も（Ｓ１００５：Ｎｏ）、端末Ｘはグループに属していないとみなし、本処理を終了する。
【０２１２】
復号が成功し、有効期限が徒過していない場合、端末Ｙは、端末Ｘのグループ参加証Ｃ＿Ｘをグループ発行者の公開鍵ＫＢ＿Ｐで復号し、参加者Ｘの公開鍵ＫＸ＿Ｐおよび参加者Ｘのグループ参加証の有効期限Ｔ＿Ｘを得る（Ｓ１００６）。そして、端末Ｙは、復号が成功したか否か、および得られた有効期限Ｔ＿Ｘを徒過していないか否かについて確認する（Ｓ１００７）。復号が失敗した場合は、グループ参加証がグループ発行者の秘密鍵ＫＢ＿Ｓで暗号化されていないことを意味し、また有効期限が徒過していれば、グループ参加証が無効であることを意味するので、いずれの場合も（Ｓ１００７：Ｎｏ）、参加者Ｘはグループに属していないとみなし、本処理を終了する。
【０２１３】
次に、端末Ｙは、暗号化された文字列Ｓ'を参加者Ｘの公開鍵ＫＸ＿Ｐで復号する（Ｓ１００８）。さらに、端末Ｙは、上記文字列Ｓ'の復号が成功したか否かおよび復号結果がＳに一致するか否かについて確認する（Ｓ１００９）。復号が失敗した場合又は復号結果がＳに一致しない場合（Ｓ１００９：Ｎｏ）、端末Ｙは、参加者Ｘが公開鍵ＫＸ＿Ｐに対応する秘密鍵ＫＸ＿Ｓを持っていないことを意味するので、参加者Ｘは第三者の成りすましの可能性があるとみなし、本処理を終了する。
【０２１４】
以上の処理により、端末Ｙは、以下のことを全て確認した場合は、端末Ｘをグループの参加者であると認証する（Ｓ１０１０）。
（１）グループ参加証の有効期限は切れていない。
（２）Ｘはグループ参加証に暗号化されていた公開鍵ＫＸ＿Ｐに対応する秘密鍵ＫＸ＿Ｓを保持している。
（３）グループ参加証を発行したグループ発行者のグループ参加証発行証明書の有効期限は切れていない。
（４）グループ参加証を発行したグループ発行者は、グループ参加証発行証明書に暗号化されていた公開鍵ＫＢ＿Ｐに対応する秘密鍵ＫＢ＿Ｓを保持している。
（５）グループ参加証発行証明書は、グループ管理者によってグループ秘密鍵ＫＧ＿Ｓによって暗号化されたものである。
【０２１５】
さらに、端末Ｘと端末Ｙは、以上の処理（Ｓ１００１〜Ｓ１０１０）を、立場を入れ替えて実行する。この処理が成功すれば、端末Ｘは端末Ｙをグループ参加者であると認定し、相互の認定が完了する。
【０２１６】
次に、前記「９．グループ参加証の更新」処理について、図１５を参照しながら詳細に説明する。図１５は、グループ参加証の更新を依頼する参加証更新依頼者Ｘの端末Ｘとグループ発行者Ｂの端末Ｂで実行される、それぞれの処理の流れを示したフローチャートである。なお、図１６は、グループ参加証の更新処理が終了した時点における、端末Ｘが保持する情報を表している。また、端末Ｘは、事前に図１２に示す情報を、端末Ｂは図１０に示す情報を保持しているものとする。
【０２１７】
以下の説明において、前記図１１における処理と同様の処理については説明を省略することとする。
【０２１８】
最初に、端末Ｘは、グループ発行者Ｂの端末Ｂを特定する（Ｓ１１０１）（前記「５．エントリポイント情報の取得」を参照）。なお、ここではグループ発行者として発行者Ｂを特定したが、同じグループのグループ発行者であれば誰であっても以降の処理は成立する。
【０２１９】
次に、端末Ｘは、参加証更新依頼者Ｘの指示により、前記図１１の場合と同様に、任意の文字列Ｓを作成し、端末Ｂに送信して参加証の更新を依頼する（Ｓ１１０２）。
端末Ｂは、端末Ｘから参加証更新依頼者Ｘの公開鍵ＫＸ＿Ｐを受信すると（Ｓ１１０８）、参加証更新依頼者Ｘの新たなグループ参加証を作成し、端末Ｘに送付する（Ｓ１１０９）。即ち、参加証更新依頼者Ｘの公開鍵ＫＸ＿Ｐに新たな有効期限Ｔ＿Ｘ'を添付したものを端末Ｂの秘密鍵ＫＢ＿Ｓで暗号化して作成したＣ＿Ｘ'＝ｅ（ＫＸ＿Ｐ＋Ｔ＿Ｘ'，ＫＢ＿Ｓ）が新たなグループ参加証となる。
【０２２０】
これにより、端末Ｘは、更新されたグループ参加証Ｃ＿Ｘ'を受け取り、グループ参加証の更新処理が完了する（Ｓ１１１０）。グループ参加証の更新処理が完了した時点で端末Ｘが保持する情報を図１６に示す。
【０２２１】
次に、前記「１０．グループ参加証発行許可証の更新」処理について、図１７を参照しながら詳細に説明する。図１７は、グループ参加証発行許可証の更新を依頼するグループ発行者Ｂの端末Ｂとグループ管理者Ａでの端末Ａで実行される、それぞれの処理の流れを示したフローチャートである。なお、図１８は、グループ参加証発行許可証の更新が終了した時点における、端末Ｂが保持する情報を表している。
【０２２２】
最初に、グループ発行者Ｂの端末Ｂは、グループ管理者Ａを特定する（Ｓ１３０１）。この特定は、上記実施の形態１における「４．エントリポイント情報の取得」と同様の方法で行う。
【０２２３】
次に、端末Ｂは、前記と同様に、任意の文字列Ｓを作成し、端末Ａに送付して参加証発行許可証の更新を依頼する（Ｓ１３０２）。
これにより、端末Ａは、文字列Ｓをグループ秘密鍵ＫＧ＿Ｓで暗号化して文字列Ｓ'＝ｅ（Ｓ，ＫＧ＿Ｓ）を作成し、端末Ｂへ送信する（Ｓ１３０３）。
すると、端末Ｂは、暗号化された文字列Ｓ'をグループ公開鍵ＫＧ＿Ｐで復号する（Ｓ１３０４）。さらに、端末Ｂは、その文字列Ｓ'がグループ公開鍵ＫＧ＿Ｐにより正常に復号され、かつその結果が元の文字列Ｓに等しいことを確認する。これにより、文字列Ｓ'がグループ公開鍵ＫＧ＿Ｐに対応する秘密鍵ＫＧ＿Ｓによって暗号化されたこと、即ち、管理者Ａが確かにグループ秘密鍵ＫＧ＿Ｓを保持するグループ管理者であることが確認できる。復号が失敗あるいは復号結果が文字列Ｓに等しくない場合は（Ｓ１３０５：Ｎｏ）、管理者Ａがグループ管理者であることが確認できないので、端末Ｂは、グループ参加証発行許可証を更新することなく、本処理を終了する。
【０２２４】
復号が成功し、復号結果が文字列Ｓに等しい場合（Ｓ１３０５：Ｙｅｓ）、端末Ｂは、端末Ａに発行者Ｂのグループ参加証発行許可証Ｉ＿Ｂを送信する（Ｓ１３０６）。
すると、端末Ａは、グループ参加証発行許可証Ｉ＿Ｂをグループ公開鍵ＫＧ＿Ｐで復号し、発行者Ｂの公開鍵ＫＢ＿Ｐを得る（Ｓ１３０７）。
【０２２５】
さらに、端末Ａは、グループ参加証発行許可証Ｉ＿Ｂの復号が成功したか否かについて確認する。復号が成功した場合は（Ｓ１３０８：Ｙｅｓ）、端末Ｂが保持するグループ参加証発行許可証がグループ秘密鍵ＫＧ＿Ｓで暗号化されたものであること、即ち、端末Ｂが正当なグループ発行者の端末であることが確認できる。復号が失敗した場合は（Ｓ１３０８：Ｎｏ）、端末Ｂが正当なグループ発行者の端末であることを確認できないので、端末Ｂのグループ参加証発行許可証は更新されないまま、本処理を終了する。
【０２２６】
続いて、端末Ａは、発行者Ｂの公開鍵ＫＢ＿Ｐを新たな有効期限Ｔ＿Ｂ'と共にグループ秘密鍵ＫＧ＿Ｓで暗号化して更新されたグループ参加証発行許可証Ｉ＿Ｂ'＝ｅ（ＫＢ＿Ｐ＋Ｔ＿Ｂ'，ＫＧ＿Ｓ）を作成し、端末Ｂに送信する（Ｓ１３０９）。
【０２２７】
端末Ｂは、端末Ａから更新されたグループ参加証発行許可証Ｉ＿Ｂ'を受け取る（Ｓ１３１０）。以上のグループ参加証発行許可証の更新処理が終了した時点における端末Ｂが保持する情報を図１８に示す。
【０２２８】
なお、上記の「１１．グループメンバの削除」処理における失効者情報と同様に、グループ発行者について、失効者情報の作成、共有および削除や参加証発行許可証の更新拒否を行うことで、あるグループ発行者の参加証発行権限について制御することも可能である。
【０２２９】
上記実施の形態２の独自の効果としては、グループ参加証の発行が可能なグループ発行者をグループ管理者のみが必要に応じて設けることにより、秘匿性の高いグループ秘密鍵を複製することなくユーザのグループへの新規加入の機会を増やすことができる点がある。
【０２３０】
なお、上記実施の形態１及び２では、グループ参加証、グループ参加証発行許可証、あるいは失効者リストをグループ管理者あるいはグループ発行者の秘密鍵で暗号化することとしているが、暗号化される内容は公開されている公開鍵および有効期限情報などであり、必ずしも秘匿すべき内容ではないので、暗号化する代わりに前記秘密鍵で署名を行うこととしてもよい。この署名を行うことによっても、上記のグループ参加証等を受信した参加者は、内容の改竄あるいは不正な発行を検出することができるので、本発明の効果には影響がない。
【０２３１】
また、上記実施の形態１および２においては、共に参加証に添付する有効期限は参加証の効果が消滅する日時を示す実施例としたが、参加証には参加証の発行日時を添付しておき、参加証を確認した時の日時と発行日時との差分を算出し、所定の期間（例えば、１ヶ月）を超えていなければ有効期限内であると判断することとしてもよい。
【０２３２】
さらに、有効期限の判定に利用される現在日時は、通常端末のクロックから取得されるが、グループ認証を行う双方の参加者のクロックが大きく乖離していると、正しくグループ認証ができない可能性があるので、双方のクロックが大きくずれた状態でグループ認証処理を行うことは望ましくない。このため、グループ認証を行う前に互いのクロックを比較し、所定の基準より大きくずれている場合には、このずれを検出した参加者から相手側の参加者に対して警告を発してグループ認証を行わないこととする方法、あるいは、どちらか一方のクロックに強制的に他方のクロックを合わせる方法、あるいは双方のクロックの平均値を取って双方ともそれに合わせる方法、などにより対処することが考えられる。
【０２３３】
さらに、上記実施の形態１の前記「７．グループメンバ間の認証」処理および実施の形態２の前記「８．グループメンバ間の情報共有」以外においては、通信路の暗号化について言及していないが、他の処理と同様、情報転送の暗号化処理を施すこととしてもよい。グループメンバ間でやり取りされるグループ参加証やグループ参加証発行許可証などは、それを第三者が入手してもメンバ又はグループ発行者の秘密鍵を入手しない限り、直ちに不正使用をすることはできないため、この暗号化処理は必須ではないが、よりセキュリティを高めるために通信路の暗号化を導入することは可能である。
【０２３４】
さらに、複数のグループ公開鍵・秘密鍵のペアを作成し保持することにより、同一のユーザが複数のグループの管理者となることが可能であるのは言うまでもない。同様に、複数グループのそれぞれの参加証あるいは参加証発行許可証を保持することにより、同一ユーザが複数グループのそれぞれメンバあるいは発行者となることが可能であるし、同一ユーザが複数のグループに対して異なる権限を持つメンバ、すなわち管理者、発行者、一般の参加者のいずれかとして属することも可能である。
【０２３５】
（実施の形態３）
本実施の形態では、Ｐ２Ｐネットワーク上で上記のグループを発見するための検索を行う実施例について説明する。この場合、グループのメンバにアクセスするためには、以下に示すような処理が前提又は必要になる。
（１）グループの形成
（２）グループの告知
（３）グループ情報の取得
（４）エントリポイント情報の取得
（５）グループへの新規加入依頼
（６）グループメンバ間の認証
（７）グループメンバ間の情報共有
（８）グループ参加証の更新
（９）グループメンバの削除
（１０）グループ管理者の追加
（１１）グループ公開鍵の更新
【０２３６】
これらの処理は、上記実施の形態１における処理と同一であるため、その説明は省略する。  
上記実施の形態１における「３．グループ情報の取得」の（２）もしくは、前記「４．エントリポイント情報の取得」（１）のように、グループ情報を検索するユーザが、その端末を介して、Ｐ２Ｐネットワークの情報検索の仕組みを用いてグループ情報やエントリポイント情報の検索を行う場合は、そのグループの他のメンバから、その応答として最新のグループ公開鍵を通知を受けることとする。  さらに、検索者は、検索時のメッセージに「グループ公開鍵の通知を希望する旨の依頼」を付加する。グループのメンバはグループ公開鍵の履歴を保存しておき、上記メッセージを受信した場合は、そのメッセージに含まれるグループ公開鍵が、自身のグループ公開鍵の履歴に含まれる場合に、検索の応答として、最新のグループ公開鍵を送信する。エントリポイント情報の検索に対して、最新のグループ公開鍵を通知する方法の詳細については後述する。
【０２３７】
次に、前記「３．グループ情報の取得」において述べた、Ｐ２Ｐネットワークの情報検索の仕組みを用いてグループ情報を取得する処理について、図２１を参照しながら詳細に説明する。図２１は、グループの検索を行う検索者Ｘの端末Ｘとグループ管理者Ａの端末Ａで実行される、それぞれの処理の流れを示したフローチャートである。なお、図２２は、上記のグループ情報の取得処理が終了した時点における端末Ｘが保持する情報を表している。
【０２３８】
事前に、端末Ａは、グループ管理者Ａの指示により、グループの公開鍵ＫＧ＿Ｐ・秘密鍵ＫＧ＿Ｓのペア、およびグループ情報ＩＧを生成する（Ｓ２１０１）。なお、グループ公開鍵ＫＧ＿Ｐおよびグループ情報ＩＧについては公開しておいても構わない。（前記「１．グループの形成」および「２．グループの告知」を参照）。
端末Ｘは、検索者Ｘの指示により、検索したいグループの条件ＣＧを作成する（Ｓ２１０２）。この場合の検索用の条件は、グループのカテゴリなどが考えられるが、特に限定するものではない。また、検索条件の記述形式も特に限定するものではない。
【０２３９】
端末Ｘは、作成されたグループの条件ＣＧを含むグループ検索メッセージＭＧ＿Ｑを生成して送信する（Ｓ２１０３）。このグループ検索メッセージＭＧ＿Ｑは、例えばブロードキャスト、マルチキャスト、Ｐ２Ｐネットワークによるメッセージ伝播などによって送信され得るが、送信方法は特に限定するものではない。
【０２４０】
これにより、端末Ａは、グループ検索メッセージＭＧ＿Ｑを受け取り、このＭＧ＿Ｑに含まれるグループの条件ＣＧと端末Ａ内に記憶されている当該グループのグループ情報ＩＧとを比較し、これらの条件が適合するか否かについて判定する（Ｓ２１０４）。この判定は、プログラムなどによって自動的に判定しても良い。グループの条件ＣＧとグループ情報ＩＧとが適合しない場合（Ｓ２１０４：Ｎｏ）、端末Ａは、ＭＧ＿Ｑを破棄して処理を終了するか、またはＭＧ＿Ｑを別のユーザに送信して処理を終了する。
【０２４１】
グループの条件ＣＧとグループ情報ＩＧとが適合する場合（Ｓ２１０４：Ｙｅｓ）、端末Ａは、グループ公開鍵ＫＧ＿Ｐを含むグループ情報ＩＧからグループ情報応答メッセージＭＧ＿Ａを作成し、グループ秘密鍵ＫＧ＿Ｓを使用して、ＭＧ＿Ａに署名を施した後、端末Ｘに送信する（Ｓ２１０５）。
端末Ｘは、端末Ａからグループ情報応答メッセージＭＧ＿Ａを受け取ると、このＭＧ＿Ａに含まれるグループ公開鍵ＫＧ＿Ｐを取得する（Ｓ２１０６）。
【０２４２】
さらに、端末Ｘは、グループ公開鍵ＫＧ＿Ｐを使用して、ＭＧ＿Ａの署名の有効性を確認する（Ｓ２１０７）。署名の有効性が確認されない場合は（Ｓ２１０７：Ｎｏ）、ＭＧ＿Ａは第三者によって改竄されている可能性があるために、端末Ｘは、ＭＧ＿Ａを破棄して処理を終了する。
署名の有効性が確認された場合は（Ｓ２１０７：Ｙｅｓ）、端末Ｘは、グループ情報応答メッセージＭＧ＿Ａからグループ情報ＩＧを入手する（Ｓ２１０８）。
【０２４３】
このあと、端末Ｘは、グループ情報ＩＧとグループの条件ＣＧとを比較し、両者が適合するか否かを判定する（Ｓ２１０９）。
適合しないと判定した場合（Ｓ２１０９：Ｎｏ）、端末Ｘは、グループ情報応答メッセージＭＧ＿Ａを破棄して、処理を終了する。
【０２４４】
一方、適合すると判定した場合（Ｓ２１０９：Ｙｅｓ）、端末Ｘは、端末Ａから受信したグループ情報応答メッセージＭＧ＿Ａに含まれるグループ情報ＩＧとグループ公開鍵ＫＧ＿Ｐを記憶する。なお、必ずしも管理者がメッセージを生成するのではなく、以前に管理者が生成した応答メッセージを別のユーザがキャッシュしておき、応答に使用する実施形態も考えられる。
【０２４５】
上記の方法を用いることによって、検索者Ｘは、応答として入手できたグループ情報がグループ公開鍵ＫＧ＿Ｐを有するグループの管理者によって作成されたものであることが確認できる。
【０２４６】
つまり、グループを一意に特定する識別子として、グループ公開鍵を使用し、グループ情報にグループ秘密鍵による署名を付加することによって、グループの管理者以外が、そのグループに関する情報を詐称することを防止することができる。
【０２４７】
また、仮に他のグループＧ２の管理者が自己のグループの識別子として、グループＧ１のグループ公開鍵を使用した場合にも、現状では十分な長さをもつ公開鍵から秘密鍵を計算することは事実上困難であるため、Ｇ１のグループ秘密鍵までも詐称することができない。
この方法によって、グループ情報の詐称、グループを一意性の確認の課題を解消することができる。
【０２４８】
ただ、グループ公開鍵を安全性の確保のために時折更新する場合には、グループの一意性を確認するための識別子として単一のグループ公開鍵を使用することはできない。この場合には、後述するように、グループの公開鍵の履歴を使用してグループの一意性を確保する必要がある。
【０２４９】
次に、前記「４．エントリポイント情報の取得」において述べた、Ｐ２Ｐネットワークの情報検索の仕組みを用いてグループのエントリポイント情報を取得する処理について、図２３を参照しながら詳細に説明する。図２３は、検索者Ｘの端末Ｘとグループ参加者Ｙの端末Ｙで実行される、それぞれの処理の流れを示したフローチャートである。なお、図２４は、上記のエントリポイント情報の取得処理が終了した時点における端末Ｘが保持する情報を表している。
【０２５０】
端末Ｘは、検索者Ｘの指示により、エントリポイント情報を入手したいグループのグループ公開鍵ＫＧ＿Ｐを含むエントリポイント検索メッセージＭＥ＿Ｑを生成して、ネットワークに送信する（Ｓ２３０１）。このときの送信方法は、ブロードキャスト、マルチキャスト、ユニキャスト、Ｐ２Ｐネットワークによるメッセージ伝播など様々な方法が考えられるが、特定の送信方法に限定されない。
【０２５１】
ＭＥ＿Ｑを受信した参加者Ｙの端末Ｙは、ＭＥ＿Ｑに含まれるＫＧ＿Ｐを入手し、Ｙが参加しているグループの公開鍵ＫＧ＿Ｐ'と比較する（Ｓ２３０２）。
もし、二つの公開鍵が一致しない場合（Ｓ２３０３：Ｎｏ）、端末Ｙは、ＭＥ＿Ｑを破棄して処理を終了するか、もしくは、ＭＥ＿Ｑを別のユーザに送信して処理を終了する。
二つの公開鍵が一致する場合（Ｓ２３０３：Ｙｅｓ）、端末Ｙは、参加者Ｙの指示により、保持しているグループ参加証Ｃ＿Ｙおよび、自身のエントリポイント情報ＥＹを含むエントリポイント検索応答メッセージＭＥ＿Ａを作成する。さらに、端末Ｙは、上記ＭＥ＿Ａに対して参加者Ｙの秘密鍵ＫＹ＿Ｓで署名を行い、署名されたＭＥ＿Ａを端末Ｘに送信する（Ｓ２３０４）。
【０２５２】
これにより、端末Ｘは、受信したＭＥ＿ＡからＣ＿Ｙを取得する（Ｓ２３０５）。さらに、端末Ｘは、グループ公開鍵ＫＧ＿Ｐを使用してＣ＿Ｙの有効性を確認する（Ｓ２３０６）。確認のためには、
（１）ＫＧ＿Ｐで正常に復号化できるか、あるいは署名を確認できるか。
（２）有効期限は切れていないか。
の二点によってＣ＿Ｙの有効性を確認する（Ｓ２３０７）。Ｃ＿Ｙの有効性が確認できない場合（Ｓ２３０６：Ｎｏ）、端末Ｘは、ＭＥ＿Ａを破棄して処理を終了する。
【０２５３】
端末Ｘは、Ｃ＿Ｙから参加者Ｙの公開鍵ＫＹ＿Ｐを取得し、さらに、ＫＹ＿Ｐを使用して、ＭＥ＿Ａの署名の正当性を確認する（Ｓ２３０７）。
ＭＥ＿Ａの署名の正当性が確認できない場合（Ｓ２３０８：Ｎｏ）、端末Ｘは、ＭＥ＿Ａは第三者によって改竄された可能性があるとみなし、ＭＥ＿Ａを破棄して処理を終了する。
【０２５４】
ＭＥ＿Ａの署名の正当性が確認できた場合（Ｓ２３０８：Ｙｅｓ）、端末Ｘは、端末ＹをＫＧ＿Ｐによって特定されるグループのメンバであると認証し、ＥＹをグループのエントリポイントとして記憶する（Ｓ２３０９）。
【０２５５】
上記の方法のように、グループを一意に識別する情報としてグループ公開鍵を使用し、応答にグループ公開鍵で指定されるグループのメンバであることを証明する情報を含めることによって、グループメンバ以外のユーザがエントリポイント情報を詐称することを防ぐことができる。
【０２５６】
次に、前記「１１．グループ公開鍵の更新」（４）で説明した、グループ公開鍵の更新方法について、図２５を参照しながら詳細に説明する。図２５は、エントリポイント検索者Ｘの端末Ｘとそのグループ公開鍵に対応するグループの参加者Ｙの端末Ｙで実行される、それぞれの処理の流れを示したフローチャートである。なお、図２６は、グループ公開鍵の更新処理の終了時点における、端末Ｘが保持する情報を表している。
【０２５７】
検索者Ｘの端末Ｘは、検索者Ｘの指示により、エントリポイント情報を入手したいグループのグループ公開鍵ＫＧ＿Ｐを含むエントリポイント検索メッセージＭＥ＿Ｑを生成して、ネットワークに送信する（Ｓ２５０１）。このときの送信方法は、ブロードキャスト、マルチキャスト、ユニキャスト、Ｐ２Ｐネットワークによるメッセージ伝播などが用いられるが、ここでは特定の送信方法に限定しない。
【０２５８】
すると、ＭＥ＿Ｑを受信した端末Ｙは、ＭＥ＿Ｑに含まれるＫＧ＿Ｐを入手する。さらに、端末Ｙは、自分が参加しているグループの公開鍵ＫＧ＿Ｐ'とＫＧ＿Ｐを比較する。（Ｓ２５０２）。
二つの公開鍵が一致しない場合（Ｓ２５０３：Ｎｏ）、端末Ｙは、ＫＧ＿Ｐが、参加者Ｙが属しているグループのグループ公開鍵の履歴ＨＧに含まれているか否かを判定する（Ｓ２５０４）。
ＫＧ＿ＰがＨＧに含まれていない場合（Ｓ２５０５：Ｎｏ）、端末Ｙは、ＭＥ＿Ｑを破棄して処理を終了するか、もしくは、ＭＥ＿Ｑを別のユーザに送信して処理を終了する。
【０２５９】
なお、端末Ｙは、予めグループ公開鍵の履歴ＨＧと共に、履歴に対応するグループ公開鍵変更メッセージＭＣ＿Ｋを所有していることとする。さらに、グループ公開鍵がＫＧ＿Ｐ（Ｉ）からＫＧ＿Ｐ（Ｉ＋１）に変更される場合には、グループ管理者から、グループ公開鍵変更メッセージＭＣ＿Ｋ（Ｉ）が、全てのグループメンバに通知される。ＭＣ＿Ｋ（Ｉ）は、ＫＧ＿Ｐ（Ｉ＋１）を含み、それに対してＫＧ＿Ｐ（Ｉ）、ＫＧ＿Ｐ（Ｉ＋１）で署名の確認をしており、以前のグループ秘密鍵、および最新のグループ秘密鍵を所有する管理者が発行したことが確認できる。
【０２６０】
ＫＧ＿ＰがグループのＩ番目の鍵、ＫＧ＿Ｐ'がグループのＩ＋Ｊ番目の鍵であった場合、端末Ｙは、ＭＣ＿Ｋ（Ｉ＋１）からＭＣ＿Ｋ（Ｉ＋Ｊ）までＪ個のグループ公開鍵変更メッセージを含むグループ公開鍵通知メッセージＭＵ＿Ｋを作成し、端末Ｘに送信する（Ｓ２５０６）。
これにより、端末Ｘは、ＭＵ＿Ｋを受信し、Ｋ＝１として以降の処理を実行する（Ｓ２５０７）。
【０２６１】
端末Ｘは、受信したＭＵ＿Ｋから、ＭＣ＿Ｋ（Ｉ＋Ｋ）を取得する（Ｓ２５０８）。さらに、端末Ｘは、ＫＧ＿Ｐ（Ｉ＋Ｋ−１）を使用して、ＭＣ＿Ｋ（Ｉ＋Ｋ）の署名の正当性を確認する（Ｓ２５０９）。
もし、署名の正当性が確認されない場合は（Ｓ２５１０：Ｎｏ）、ＭＵ＿Ｋを破棄して処理を終了する。
署名の正当性が確認できた場合は（Ｓ２５１０：Ｙｅｓ）、端末Ｘは、ＭＣ＿Ｋ（Ｉ＋Ｋ）から、ＫＧ＿Ｐ（Ｉ＋Ｋ）を取得する（Ｓ２５１１）。
【０２６２】
さらに、端末Ｘは、ＫとＪが等しいか否かを判定する（Ｓ２５１２）。もし、ＫがＪと等しくない場合は（Ｓ２５１２：Ｎｏ）、Ｋ＝Ｋ＋１として（Ｓ２５１３）、上記の処理を続行する（Ｓ２５０８〜Ｓ２５１２）。
【０２６３】
一方、ＫがＪと等しい場合は（Ｓ２５１２：Ｙｅｓ）、端末Ｘは、ＫＧ＿Ｐ'＝ＫＧ＿Ｐ（Ｉ＋Ｊ）を最新のグループ公開鍵としてＫＧ＿Ｐと置き換える（Ｓ２５１４）。
上記の方法のように、グループ公開鍵の履歴によってグループの一意性を判定することによって、グループ公開鍵のように更新される情報であってもグループの識別子として使用することが可能になる。
【０２６４】
また、上記の手法をとることで、古いグループの公開鍵しか所有していないユーザであっても、最新のグループ公開鍵の通知を受けることが可能となり、通知された最新のグループ公開鍵の正当性を以前のグループ公開鍵によって確認することができる。
上記で述べたように、グループに対して固有のグループ公開鍵を設定することで、グループの一意性の確認の問題、グループに対する情報の詐称の問題を解決することができる。
【０２６５】
（実施の形態４）
上記実施の形態３では、グループを構成するメンバは、管理者と一般の参加者だけであったが、上記実施の形態１で述べたように、グループメンバの新規加入の機会を増やすためには、管理者の権限を有する者を増やす、即ち、グループ参加証を発行し得る者を増やす（このため、グループ秘密鍵を複製する）ことが必要であるが、グループ秘密鍵が複数の参加者に保持されることで、漏洩する可能性が高くなってしまうという弊害がある。
【０２６６】
そこで、本実施の形態では、グループを構成するメンバを、唯一の管理者、グループ参加証発行許可証を保持し、グループ参加証を発行する権限を持つ発行者、および一般の参加者に分類することとする。発行者に上記権限を与えることができるのは管理者のみであり、一般の参加者にグループ参加証を発行できるのは管理者および発行者である。このように、管理者が複数の発行者を設けておくことにより、グループの秘密鍵を複製することなくグループメンバの新規加入の機会を増やすことが可能となる。
【０２６７】
以上のようにグループを管理するには、以下に示すような処理が必要となる。
（１）グループの形成
（２）グループの告知
（３）グループ発行者の追加
（４）グループ情報の取得
（５）エントリポイント情報の取得
（６）グループへの新規加入依頼
（７）グループメンバ間の認証
（８）グループメンバ間の情報共有
（９）グループ参加証の更新
（１０）グループ参加証発行許可証の更新
（１１）グループメンバの削除
（１２）グループ公開鍵の更新
なお、上記の処理については、上記実施の形態１又は２における処理と同一の内容のため、その説明を省略する。
【０２６８】
次に、前記「４．グループ情報の取得」において述べた、Ｐ２Ｐネットワークの情報検索の仕組みを利用したグループ情報の取得処理について、図２７を参照しながら詳細に説明する。図２７は、グループの検索を行う検索者Ｘの端末Ｘとグループ発行者Ｂの端末Ｂで実行される、それぞれの処理の流れを示したフローチャートである。なお、グループ情報の取得処理が終了した時点における端末Ｘが保持する情報は、上記図２２と同じである。
【０２６９】
端末Ｂは、発行者Ｂの指示により、グループ管理者から、グループ参加証発行許可証Ｉ＿Ｂ、およびグループ公開鍵ＫＧ＿Ｐを含むグループ情報ＩＧを入手する（Ｓ２７０１）。
端末Ｘは、検索者Ｘの指示により、検索したいグループの条件ＣＧを作成する（Ｓ２７０２）。このとき指定される条件は、グループのカテゴリなどが考えられるが、特に規定するものではない。また、条件記述の形式も特に限定するものではない。
【０２７０】
端末Ｘは、作成されたＣＧを含むグループ検索メッセージＭＧ＿Ｑを生成してネットワークに送信する（Ｓ２７０３）。この時の送信方法は、ブロードキャスト、マルチキャスト、Ｐ２Ｐネットワークによるメッセージ伝播などを用いて送信されるが、特定の送信方法に限定されるものではない。
端末Ｂは、グループ検索メッセージＭＧ＿Ｑを受け取り、ＭＧ＿Ｑに含まれるＣＧと発行者Ｂが属するグループのグループ情報ＩＧとを比較し、自分が管理するグループがＣＧで指定される条件に適合するか否かを判定する（Ｓ２７０４）。  この判定は、プログラムなどで自動的に判定しても良い。ＣＧとＩＧが適合しない場合は（Ｓ２７０４：Ｎｏ）、端末Ｂは、ＭＧ＿Ｑを破棄して処理を終了するか、あるいはＭＧ＿Ｑを別のユーザに送信して処理を終了する。
【０２７１】
端末Ｂは、グループ公開鍵ＫＧ＿Ｐを含むＩＧ、発行者Ｂのグループ参加証発行許可証Ｉ＿Ｂを含むグループ情報応答メッセージＭＧ＿Ａを作成する。その後、発行者Ｂの秘密鍵ＫＢ＿Ｓを使用してＭＧ＿Ａに署名を施した後、端末Ｘに向けて送信する（Ｓ２７０５）。
【０２７２】
端末Ｘは、端末Ｂからのグループ情報応答メッセージＭＧ＿Ａを受け取ると、ＭＧ＿Ａに含まれるＫＧ＿ＰおよびＩ＿Ｂを入手する（Ｓ２７０６）。
端末Ｘは、ＫＧ＿Ｐを使用して、Ｉ＿Ｂの有効性を確認する（Ｓ２７０７）。  この確認には、ＫＧ＿Ｐを使用して
（１）Ｉ＿Ｂが正常に復号化される、もしくはＩ＿Ｂの署名が確認できる。
（２）Ｉ＿Ｂの有効期限が切れていない。
の２点を確認することによってＩ＿Ｂの有効性を確認できる。Ｉ＿Ｂの有効性が確認されない場合は、ＭＧ＿Ａは正規の発行者以外によって生成されている可能性があるために、ＸはＭＧ＿Ａを破棄して処理を終了する。
【０２７３】
端末Ｘは、Ｉ＿ＢからＢの公開鍵ＫＢ＿Ｐを入手し、さらに、ＫＢ＿Ｐを使用して、ＭＧ＿Ａの署名の有効性を確認する（Ｓ２７０８）。署名の有効性が確認されない場合は（Ｓ２７０９：Ｎｏ）、ＭＧ＿Ａは第三者によって改竄されている可能性があるために、端末は、ＭＧ＿Ａを破棄して処理を終了する。
端末Ｘは、端末Ａから受信したＭＧ＿Ａに含まれるＩＧを保存する（Ｓ７１０）。
【０２７４】
上記の方法を用いることによって、グループの発行者、グループの管理者以外がグループ情報の改竄を行うことを防ぐことができる。
また、グループを一意に識別する情報にグループ公開鍵を使用することができることは第一の実施の形態におけるグループ情報取得の例で述べた通りである。  なお、必ずしも管理者がメッセージを生成するのではなく、以前に管理者が生成した応答メッセージを別のユーザがキャッシュしておき応答に使用する実施形態も考えられる。
【０２７５】
次に、前記「５．エントリポイント情報の取得」において述べた、Ｐ２Ｐネットワークの情報検索の仕組みを使用したエントリポイント情報の取得処理について、図２８を参照しながら詳細に説明する。図２８は、検索者Ｘの端末Ｘとグループの参加者Ｙの端末Ｙで実行される、それぞれの処理の流れを示したフローチャートである。なお、図２８においては、参加者Ｙのグループ参加証は、グループ発行者Ｂによって発行されていることとする。また、図２９は、エントリポイント情報の取得処理が終了した時点における、端末Ｘが保持する情報を表している。
【０２７６】
端末Ｘは、検索者Ｘの指示により、エントリポイント情報を入手したいグループのグループ公開鍵ＫＧ＿Ｐを含むエントリポイント検索メッセージＭＥ＿Ｑを生成して、ネットワークに送信する（Ｓ２８０１）。このときの送信方法は、ブロードキャスト、マルチキャスト、ユニキャスト、Ｐ２Ｐネットワークによるメッセージ伝播などで送信されるが、ここでは特定の送信方法に限定されない。
【０２７７】
ＭＥ＿Ｑを受信した端末Ｙは、ＭＥ＿Ｑに含まれるＫＧ＿Ｐを入手する（Ｓ２８０２）。
端末Ｙは、参加者Ｙが参加しているグループの公開鍵ＫＧ＿Ｐ'とＫＧ＿Ｐを比較する（Ｓ２８０３）。もし、二つの公開鍵が一致しない場合（Ｓ２８０３：Ｎｏ）、端末Ｙは、ＭＥ＿Ｑを破棄して処理を終了するか、あるいはＭＥ＿Ｑを別のユーザに送信して処理を終了する。
【０２７８】
端末Ｙは、参加者Ｙの指示により、参加者Ｙのグループ参加証Ｃ＿Ｙ、このＣ＿Ｙを発行したグループ発行者Ｂのグループ参加証発行許可証Ｉ＿ＢおよびＹのエントリポイント情報ＥＹを含むエントリポイント検索応答メッセージＭＥ＿Ａを作成する。さらに、端末Ｙは、ＭＥ＿Ａに対して参加者Ｙの秘密鍵ＫＹ＿Ｓで署名を行い、署名されたＭＥ＿Ａを端末Ｘに送信する（Ｓ２８０４）。
【０２７９】
すると、端末Ｘは、受信したＭＥ＿ＡからＩ＿Ｂを取得し、ＫＧ＿Ｐを使用してＩ＿Ｂの有効性を検証する（Ｓ２８０５）。
Ｉ＿Ｂの有効性が確認できない場合（Ｓ２８０６：Ｎｏ）、端末Ｘは、参加者Ｙがグループに属していないとみなし、ＭＥ＿Ａを破棄して処理を終了する。
Ｉ＿Ｂの有効性が確認できた場合（Ｓ２８０６：Ｙｅｓ）、端末Ｘは、そのＩ＿Ｂから発行者Ｂの公開鍵ＫＢ＿Ｐを取得する。さらに、ＭＥ＿ＡからＣ＿Ｙを取得し、ＫＢ＿Ｐを使用してＣ＿Ｙの有効性を検証する（Ｓ２８０７）。
【０２８０】
Ｃ＿Ｙの有効性が確認できない場合（Ｓ２８０８：Ｎｏ）、端末Ｙはグループに属していないとみなし、端末Ｘは、ＭＥ＿Ａを破棄して処理を終了する。
Ｃ＿Ｙの有効性が確認できた場合（Ｓ２８０８：Ｙｅｓ）、端末Ｘは、Ｃ＿Ｙから参加者Ｙの公開鍵ＫＹ＿Ｐを取得して、ＭＥ＿Ｑの署名を確認する（Ｓ２８０９）。
署名の正当性が確認されない場合（Ｓ２８１０：Ｎｏ）、ＭＥ＿Ｑは第三者によって改竄されている可能性があるとみなし、端末Ｘは、ＭＥ＿Ｑを破棄して処理を終了する。
【０２８１】
署名の正当性が確認された場合（Ｓ２８１０：Ｙｅｓ）、端末Ｘは、端末ＹがＫＧ＿Ｐによって特定されるグループのメンバであることを認証し、ＭＥ＿ＡからＥＹを取得し、グループのエントリポイントとして記憶する（Ｓ２８１１）。
上記の方法を用いることによって、エントリポイント情報を作成したユーザがグループのメンバであることを確認することができる。
【０２８２】
以上のように、本実施の形態３又４に係る通信システムによれば、常時稼動させなければならないサーバの運用が不要となる。さらに、検索結果を応答者の秘密鍵やグループ参加証などを利用して取得することにより、グループメンバ以外の者が応答することによる弊害、即ちこれらの者がグループ情報を詐称して応答することを回避することが可能となる。
【産業上の利用可能性】
【０２８３】
本発明は、汎用のネットワーク上の仮想的なグループに属する一の端末との間で通信を行う際の通信方法等として有用であり、特に、上記グループに関する情報を入手する際や上記グループのメンバ間で情報を共有する際の安全性を確保したいネットワーク等に適用が可能である。
【図面の簡単な説明】
【０２８４】
【図１】本発明に係る通信システムの構成の一例を示す図である。
【図２】実施の形態１における失効者リストのフォーマットの一例である。
【図３】（ａ）は、実施の形態１における、オンライン状態の端末とオフライン状態の端末とが異なる失効者リストを保持している場合を示す図である。  （ｂ）は、実施の形態１における、オンライン状態に移行した端末がオンライン状態の端末とがグループ認証を実行する様子を示す図である。  （ｃ）は、実施の形態１における、グループ認証を終えた端末間で、互いが保持する失効者リストを交換する様子を示す図である。  （ｄ）は、実施の形態１における、新規に失効者リストを取得した端末から、既知のオンライン状態の端末に対する新規の失効者リストを伝播させる様子を示す図である。
【図４】実施の形態１における「グループへの新規加入依頼」処理の流れを示すフローチャートである。
【図５】実施の形態１における「グループへの新規加入依頼」処理後に、加入依頼者の端末に保持される情報の一例である。
【図６】実施の形態１における「グループメンバ間の認証」処理の流れを示すフローチャートである。
【図７】実施の形態１における「グループ参加証の更新」処理の流れを示すフローチャートである。
【図８】実施の形態２における失効者リストのフォーマットの一例である。
【図９】実施の形態２における「グループ発行者の追加」処理の流れを示すフローチャートである。
【図１０】実施の形態２における「グループ発行者の追加」処理後に、発行者候補の端末に保持される情報の一例である。
【図１１】実施の形態２における「グループへの新規加入依頼」処理の流れを示すフローチャートである。
【図１２】実施の形態２における「グループへの新規加入依頼」処理後に、加入依頼者の端末に保持される情報の一例である。
【図１３】実施の形態２における「グループメンバ間の認証」処理後に、一方の参加者のの端末に保持される情報お一例である。
【図１４】実施の形態２における「グループメンバ間の認証」処理の流れを示すフローチャートである。
【図１５】実施の形態２における「グループ参加証の更新」処理の流れを示すフローチャートである。
【図１６】実施の形態２における「グループ参加証の更新」処理後に、参加証更新依頼者の端末に保持される情報の一例である。
【図１７】実施の形態２における「グループ参加証発行許可証の更新」処理の流れを示すフローチャートである。
【図１８】実施の形態２における「グループ参加証発行許可証の更新」処理後に、発行者の端末に保持される情報の一例である。
【図１９】実施の形態１における「失効者リストの交換」処理の流れを示すフローチャートである。
【図２０】上記図１９に使用される各用語の意味を表す。
【図２１】実施の形態３における「グループ情報の取得」処理の流れを示すフローチャートである。
【図２２】実施の形態３における「グループ情報の取得」処理後に、検索者の端末に保持される情報を示す図である。
【図２３】実施の形態３における「エントリポイント情報の取得」処理の流れを示すフローチャートである。
【図２４】実施の形態３における「エントリポイント情報の取得」処理後に、検索者の端末に保持される情報の一例である。
【図２５】実施の形態３における「グループ公開鍵の更新」処理の流れを示すフローチャートである。
【図２６】実施の形態３における「グループ公開鍵の更新」処理後に、検索者の端末に保持される情報の一例である。
【図２７】実施の形態４における「グループ情報の取得」処理の流れを示すフローチャートである。
【図２８】実施の形態４における「エントリポイント情報の取得」処理の流れを示すフローチャートである。
【図２９】実施の形態４における「エントリポイント情報の取得」処理後に、検索者の端末に保持される情報の一例である。
【図３０】Ｐ２Ｐネットワークに参加しているユーザ端末間における情報の流れを示した概念図である。
【図３１】Ｐ２Ｐネットワーク上に存在する３つのグループＧ１、Ｇ２およびＧ３を対象としてグループ情報の検索を行う場合の情報の流れを表した概念図である。
【図３２】Ｐ２Ｐネットワークにおけるグループ情報を検索する際の問題点を説明するための概念図である。
【図３３】（ａ）は、上記第１の従来方法における、グループに属する各ユーザ端末がグループリストを保持することにより、端末間の相互認証を行う方法を説明するための図である。  （ｂ）は、上記第１の従来方法において、新たに端末Ｄが追加された場合にオフラインの端末があることによって生じる問題点を説明するための図である。  （ｃ）は、上記第１の従来方法において、新たに端末Ｄが追加された場合にグループリストの不一致によって生じる問題点を説明するための図である。  （ｄ）は、上記第２の従来方法における、特定のメンバの端末のみがグループリストを保持することにより、端末間の相互認証を行う方法を説明するための図である。  （ｅ）は、上記第２の従来方法において、特定のメンバの端末がオフライン状態に移行することによって生じる問題点を説明するための図である。
【図３４】（ａ）は、管理者の端末からグループメンバの端末に対して新規の失効者リストをブロードキャストすることによって端末間の認証を行う従来方法を説明するための図である。  （ｂ）は、上記（ａ）の従来方法において、オフラインのメンバ端末があることによって生じる問題点を説明するための図である。  （ｃ）は、上記（ａ）の従来方法において、管理者の端末がオフライン状態に移行した場合の様子を示す図である。  （ｄ）は、上記（ａ）の従来方法において、管理者の端末がオフライン状態に移行したことによって生じる問題点を説明するための図である。
【符号の説明】
【０２８５】
１０〜５０      端末
１００，２００    通信システム
Ａ〜Ｆ        端末
Ｘ〜Ｚ        端末
【図１】
2004159298.tif 000003
【図２】
2004159298.tif 000004
【図３】
2004159298.tif 000005
【図４】
2004159298.tif 000006
【図５】
2004159298.tif 000007
【図６】
2004159298.tif 000008
【図７】
2004159298.tif 000009
【図８】
2004159298.tif 000010
【図９】
2004159298.tif 000011
【図１０】
2004159298.tif 000012
【図１１】
2004159298.tif 000013
【図１２】
2004159298.tif 000014
【図１３】
2004159298.tif 000015
【図１４】
2004159298.tif 000016
【図１５】
2004159298.tif 000017
【図１６】
2004159298.tif 000018
【図１７】
2004159298.tif 000019
【図１８】
2004159298.tif 000020
【図１９】
2004159298.tif 000021
【図２０】
2004159298.tif 000022
【図２１】
2004159298.tif 000023
【図２２】
2004159298.tif 000024
【図２３】
2004159298.tif 000025
【図２４】
2004159298.tif 000026
【図２５】
2004159298.tif 000027
【図２６】
2004159298.tif 000028
【図２７】
2004159298.tif 000029
【図２８】
2004159298.tif 000030
【図２９】
2004159298.tif 000031
【図３０】
2004159298.tif 000032
【図３１】
2004159298.tif 000033
【図３２】
2004159298.tif 000034
【図３３】
2004159298.tif 000035
【図３４】
2004159298.tif 000036