(57)【要約】【課題】利用者装置からの秘密情報の漏洩を阻止する。【解決手段】グループ署名方式において、利用者端末３０に着脱自在に保持される耐タンパー装置５０を設け、この耐タンパー装置５０が秘密情報を生成し、且つ秘密情報による演算を実行する。これにより、利用者端末３０に秘密情報を漏洩させずに実現できる。【選択図】  図１
2004320562.tif 000002
【特許請求の範囲】
【請求項１】
グループ署名方式を用いてサービス提供を受ける権限グループに所属する利用者を管理する管理装置と、匿名の利用者の利用者装置から受けたグループ署名を認証して当該利用者装置にサービスを提供するサービス提供装置とを備えた匿名認証システムであって、
前記利用者装置は、
前記グループ管理装置及びサービス提供者装置と通信可能な利用者端末と、
前記利用者端末に着脱自在に保持され、前記権限グループに所属する際に、前記利用者端末を介して前記管理装置から受けた乱数（α，β）により秘密情報（ｘｉ）を生成して格納し且つ前記利用者端末を介して前記管理装置から受けたグループ証明書情報を格納し、前記サービス提供を受ける際に、前記利用者端末にてグループ署名の生成に用いられる前記グループ証明書情報と前記秘密情報（ｘｉ）による演算結果（ｓ２）とを個別に前記利用者端末に出力する耐タンパー装置と、
を備えたことを特徴とする匿名認証システム。
【請求項２】
グループ署名方式を用いてサービス提供を受ける権限グループに所属する利用者を管理する管理装置と、匿名の利用者の利用者端末から受けたグループ署名を認証して当該利用者端末にサービスを提供するサービス提供装置とを備えた匿名認証システムに用いられ、前記利用者に携帯される耐タンパー装置を着脱自在に保持可能な利用者端末に用いられるプログラムであって、
前記利用者端末のコンピュータを、
前記権限グループに所属する際に、前記管理装置から受けたシステムパラメータ及びグループ公開鍵をメモリに格納すると共に、前記耐タンパー装置に入力する手段、
前記システムパラメータに基づいてメンバー鍵初期情報（ｓｒ）を生成する手段、
前記システムパラメータ、前記グループ公開鍵及び前記メンバー鍵初期情報（ｓｒ）と前記耐タンパー装置から受けるコミットメント元情報（Ｃ１’）とに基づいて、第１コミットメント値（Ｃ１）を生成する手段、
前記第１コミットメント値の生成に用いられたメンバー鍵初期情報（ｓｒ）と前記コミットメント元情報（Ｃ１’）の生成に用いられた乱数（ｓｘｉ）との知識を有することを証明するための第１証明情報（ｐｒｏｏｆＡ）を生成する手段、
前記第１証明情報（ｐｒｏｏｆＡ）及び第１コミットメント値（Ｃ１）を前記管理装置に送信する手段、
この送信に応じて前記管理装置から受けた乱数（α，β）を前記耐タンパー装置に入力する手段、
前記乱数（α，β，ｓｘｉ）により耐タンパー装置内で生成された秘密情報（ｘｉ）の離散対数である第２コミットメント値（Ｃ２）を前記耐タンパー装置から受ける手段、
前記第２コミットメント値及び前記秘密情報が正しく計算されたことを証明するための第２証明情報（ｐｒｏｏｆＢ）を生成し、得られた第２の証明情報を前記管理装置に送信する手段、
この送信に応じて前記管理装置から受けた検証結果が真のとき、前記第２コミットメント値及び前記秘密情報が正しく計算されたことを証明するための第３証明情報（ｐｒｏｏｆＣ）を生成する手段、
前記第３証明情報（ｐｒｏｏｆＣ）及び前記第２コミットメント値（Ｃ２）を前記管理装置に送信する手段、
として機能させるためのプログラム。
【請求項３】
請求項２に記載のプログラムにおいて、
前記利用者端末のコンピュータを、
前記第３証明情報（ｐｒｏｏｆＣ）及び前記第２コミットメント値（Ｃ２）の送信に応じて前記管理装置からグループ証明書を受信すると、このグループ証明書を前記第２コミットメント値（Ｃ２）に基づいて検証し、検証結果が真のとき、当該グループ証明書情報を前記耐タンパー装置に入力するグループ証明書検証手段、
として機能させるためのプログラム。
【請求項４】
グループ署名方式を用いてサービス提供を受ける権限グループに所属する利用者を管理する管理装置と、匿名の利用者の利用者端末から受けたグループ署名を認証して当該利用者端末にサービスを提供するサービス提供装置とを備えた匿名認証システムに用いられる前記利用者端末に着脱自在に保持される耐タンパー装置であって、
前記権限グループに所属する際に、前記利用者端末から入力されたシステムパラメータ及びグループ公開鍵を耐タンパー性メモリに格納する手段と、
前記システムパラメータに基づいて乱数（ｓｘｉ）を生成し、この乱数と前記グループ公開鍵に基づいて第１コミットメント元情報（Ｃ１’）を生成し、この第１コミットメント元情報を前記利用者端末に出力する手段と、
前記利用者端末から入力されたハッシュ値（ｃ）及び前記生成した乱数（ｓｘｉ）に基づいて、第１証明情報（ｐｒｏｏｆＡ）の一部となる演算結果（ｓ１）を生成し、この演算結果を前記利用者端末に出力する手段と、
前記利用者端末から入力された乱数（α，β）及び前記生成した乱数（ｓｘｉ）に基づいて秘密情報（ｘｉ）を生成し、得られた秘密情報の離散対数である第２コミットメント値（Ｃ２）を生成する手段と、
前記秘密情報の生成過程で得られる値（α・ｓｘｉ＋β）の上位ビット（ｖ）及び下位ビット（ｕ）に基づいて、第２証明情報（ｐｒｏｏｆＢ）の一部となる演算結果（ｙ１，ｙ２）を生成し、この演算結果を前記利用者端末に出力する手段と、
前記利用者端末からハッシュ値（ｃ１，ｃ５）が入力されると、前記秘密情報（ｘｉ）及び前記下位ビット（ｕ）に基づいて、第３証明情報（ｐｒｏｏｆＣ）の一部となる演算結果（ｓ１，ｓ５）を生成し、この演算結果を前記利用者端末に出力する手段と、
を備えたことを特徴とする耐タンパー装置。
【請求項５】
請求項４に記載の耐タンパー装置において、
前記利用者端末から入力されるグループ証明書を前記耐タンパー性メモリに格納する手段、を備えたことを特徴とする耐タンパー装置。
【請求項６】
グループ署名方式を用いてサービス提供を受ける権限グループに所属する利用者を管理する管理装置と、匿名の利用者の利用者端末から受けたグループ署名を認証して当該利用者端末にサービスを提供するサービス提供装置とを備えた匿名認証システムに用いられ、前記利用者端末に着脱自在に保持される耐タンパー装置に用いられるプログラムであって、
前記耐タンパー装置のコンピュータを、
前記権限グループに所属する際に、前記利用者端末から入力されたシステムパラメータ及びグループ公開鍵を耐タンパー性メモリに格納する手段、
前記システムパラメータに基づいて乱数（ｓｘｉ）を生成し、この乱数と前記グループ公開鍵に基づいて第１コミットメント元情報（Ｃ１’）を生成し、この第１コミットメント元情報を前記利用者端末に出力する手段、
前記利用者端末から入力されたハッシュ値（ｃ）及び前記生成した乱数（ｓｘｉ）に基づいて、第１証明情報（ｐｒｏｏｆＡ）の一部となる演算結果（ｓ１）を生成し、この演算結果を前記利用者端末に出力する手段、
前記利用者端末から入力された乱数（α，β）及び前記生成した乱数（ｓｘｉ）に基づいて秘密情報（ｘｉ）を生成し、得られた秘密情報の離散対数である第２コミットメント値（Ｃ２）を生成する手段、
前記秘密情報の生成過程で得られる値（α・ｓｘｉ＋β）の上位ビット（ｖ）及び下位ビット（ｕ）に基づいて、第２証明情報（ｐｒｏｏｆＢ）の一部となる演算結果（ｙ１，ｙ２）を生成し、この演算結果を前記利用者端末に出力する手段、
前記利用者端末からハッシュ値（ｃ１，ｃ５）が入力されると、前記秘密情報（ｘｉ）及び前記下位ビット（ｕ）に基づいて、第３証明情報（ｐｒｏｏｆＣ）の一部となる演算結果（ｓ１，ｓ５）を生成し、この演算結果を前記利用者端末に出力する手段、
として機能させるためのプログラム。
【請求項７】
請求項６に記載のプログラムにおいて、
前記耐タンパー装置のコンピュータを、
前記利用者端末から入力されるグループ証明書を前記耐タンパー性メモリに格納する手段、として機能させるためのプログラム。
【請求項８】
グループ署名方式を用いてサービス提供を受ける権限グループに所属する利用者を管理する管理装置と、匿名の利用者の利用者端末から受けたグループ署名を認証して当該利用者端末にサービスを提供するサービス提供装置とを備えた匿名認証システムに用いられ、前記利用者に携帯される耐タンパー装置を着脱自在に保持可能な利用者端末に用いられるプログラムであって、
前記利用者端末のコンピュータを、
前記権限グループに所属する際に、前記管理装置から受けたシステムパラメータ及びグループ公開鍵をメモリに格納すると共に、前記耐タンパー装置に入力する手段、
前記システムパラメータに基づいてメンバー鍵初期情報（ｓｒ）を生成する手段、
前記システムパラメータ、前記グループ公開鍵及び前記メンバー鍵初期情報（ｓｒ）と前記耐タンパー装置から受けるコミットメント元情報（Ｃ１’）とに基づいて、第１コミットメント値（Ｃ１）を生成する手段、
前記第１コミットメント値の生成に用いられたメンバー鍵初期情報（ｓｒ）と前記コミットメント元情報（Ｃ１’）の生成に用いられた乱数（ｓｘｉ）との知識を有することを証明するための第１証明情報（ｐｒｏｏｆＡ）を生成する手段、
前記第１証明情報（ｐｒｏｏｆＡ）及び第１コミットメント値（Ｃ１）を前記管理装置に送信する手段、
この送信に応じて前記管理装置から受けた乱数（α，β）を前記耐タンパー装置に入力する手段、
前記乱数（α，β，ｓｘｉ）により耐タンパー装置内で生成された秘密情報（ｘｉ）の離散対数である第２コミットメント値（Ｃ２）を前記耐タンパー装置から受ける手段、
前記第２コミットメント値及び前記秘密情報が正しく計算されたことを証明するための第２証明情報（ｐｒｏｏｆＢ）及び第３証明情報（ｐｒｏｏｆＣ）を生成する手段、
前記第２証明情報（ｐｒｏｏｆＢ）、前記第３証明情報（ｐｒｏｏｆＣ）及び前記第２コミットメント値（Ｃ２）を前記管理装置に送信する手段、
として機能させるためのプログラム。
【請求項９】
請求項８に記載のプログラムにおいて、
前記利用者端末のコンピュータを、
前記第２証明情報（ｐｒｏｏｆＢ）、第３証明情報（ｐｒｏｏｆＣ）及び前記第２コミットメント値（Ｃ２）の送信に応じて前記管理装置からグループ証明書を受信すると、このグループ証明書を前記第２コミットメント値（Ｃ２）に基づいて検証し、検証結果が真のとき、当該グループ証明書情報を前記耐タンパー装置に入力するグループ証明書検証手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、グループ署名を用いた匿名認証システム、装置及びプログラムに関する。
【０００２】
【従来の技術】
電子ネットワーク上でサービスを提供する分野では、サービス提供者が不特定多数のアクセス要求者に対して、サービスを受ける権限の有無を確認し、権限を持つ要求者のみにアクセスを許可するアクセス制御や、認証システムが知られている。
【０００３】
この種のアクセス制御や認証システムとしては、例えば（ａ）ＩＤとパスワードを利用する方式、（ｂ）ＰＫＩ（Ｐｕｂｌｉｃ  Ｋｅｙ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ：公開鍵暗号基盤）による方式、などがある。
【０００４】
（ａ）ＩＤとパスワードを用いる方式は、利用者登録時にサービス提供者がＩＤとパスワードを利用者に発行し、サービスが要求された際に、サービス要求者のＩＤとパスワードを確認するものである。
【０００５】
（ｂ）ＰＫＩによる方式は、公開鍵の正当性を保証する公開鍵証明書及び公開鍵を用いて、利用者が確かに公開鍵のペアである秘密鍵を所有していることを確認することにより、秘密情報がネットワークを流れないため、第三者に漏洩しにくい特徴を持つ。また、他のトランザクション（取引、処理）への対応付けが容易となる利点がある。
【０００６】
（ｃ）電子ネットワーク以外のアクセス制御や、認証システムとしては、  酒類・煙草を販売する自動販売機において、免許証に記載された生年月日を読み取り、年齢の認証を行うものもある。
【０００７】
しかしながら、以上のようなアクセス制御や、認証システムでは、次の（ａ’）〜（ｃ’）に示すような不都合がある。
【０００８】
（ａ’）  上記（ａ）のＩＤ及びパスワードを用いる方式は、サービス提供者が個人情報やＩＤ及びパスワードのリストを厳重に管理する必要があるので、高いコストを要するものとなる。
【０００９】
（ｂ’）  上記（ｂ）の公開鍵証明書を用いる方式は、公開鍵や公開鍵証明書といった利用者のユニークな情報をサービス提供者に与えることになる。このユニークな情報は、匿名ネットワークを介しても、隠蔽不可能となっている。
【００１０】
また、公開鍵証明書を用いる方式は、利用者ＩＤが仮名情報で代替されたことに等しく、個人情報と仮名情報との組合せが露呈した段階で、個人情報を流出させる可能性が高くなる。また、サービス提供者は、利用者の公開鍵とサービス利用情報とが対応付けされた情報を厳密に管理する場合には、高いコストを負担することになる。
【００１１】
ここで、上記（ａ’），（ｂ’）に述べたコストは、個人情報保護法の法制化やプライバシマークの制定等、利用者の個人情報を法的に保護する動向に比例して高くなると考えられる。
【００１２】
これに加え、上記（ａ），（ｂ）の方式は、個人情報の運用体制や実績が、利用者や他のビジネスパートナーとの関係に影響を与えるリスク要因となり得る。
【００１３】
例えば個人情報を厳重に管理しない場合、クレジットカード番号等の決済情報を漏洩させる、といった事件と同様に、情報漏洩を生じさせる可能性が生じる。この種の情報漏洩は、利用者には被害を生じさせ、サービス提供者にはブランドの信用を失墜させて他のビジネスパートナーから受けていた信用をも低下させてしまう。
【００１４】
しかしながら、サービス提供業者は、特に電子コンテンツを提供するサービスの場合、通常、少人数の従業員から構成されるので、個人情報を厳重管理する運用体制を設けて実績を残そうとすると、従業員の業務の負担やコストの負担が過大になってしまう。
【００１５】
（ｃ’）  上記（ｃ）の免許証を読取る方式は、免許証から年齢以外の個人情報が読取られる旨の利用者側の不安と、年齢以外の個人情報を読取らない旨を保証する販売者側のコストとを生じさせてしまう。
【００１６】
ところで、以上のような不都合（ａ’）〜（ｃ’）を解決可能な暗号技術として、グループ署名方式がある。グループ署名方式とは、異なる署名者（グループのメンバ）の署名を単一のグループ公開鍵で検証できる特殊な署名方式である。具体的には、以下の性質（ｉ）〜（ｉｉｉ）を持つ。
（ｉ）署名に用いる鍵情報は、メンバ毎に異なる。
（ｉｉ）他メンバや検証者（例、サービス提供者）は、署名からメンバを特定できない。
（ｉｉｉ）グループの管理者は、グループの秘密情報により、署名からメンバを特定できる。
【００１７】
なお、グループ署名方式の先行技術文献情報には、次のものがある（例えば、非特許文献１参照。）。
【００１８】
【非特許文献１】
ジー・アテニース（Ｇ．  Ａｔｅｎｉｅｓｅ）、ジェイ・キャメニッシュ（Ｊ．  Ｃａｍｅｎｉｓｃｈ）、エム・ジョイ（Ｍ．  Ｊｏｙｅ）、ジー・ツディク（Ｇ．  Ｔｓｕｄｉｋ）著、「ア・プラクティカル・アンド・プロバブリー・セキュア・コーリション−レジスタント・グループ・シグネチャ・スキーム（Ａ  ｐｒａｃｔｉｃａｌ  ａｎｄ  ｐｒｏｖａｂｌｙ  ｓｅｃｕｒｅ  ｃｏａｌｉｔｉｏｎ−ｒｅｓｉｓｔａｎｔ  ｇｒｏｕｐ  ｓｉｇｎａｔｕｒｅ  ｓｃｈｅｍｅ．）」、クリプト２０００（ＣＲＹＰＴＯ  ２０００），  ＬＮＣＳ  １８８０，シュプリンガー・ファアラーク（Ｓｐｒｉｎｇｅｒ−Ｖｅｒｌａｇ），２０００年  ，ｐｐ．２５５−２７０．
【００１９】
【発明が解決しようとする課題】
しかしながら以上のようなグループ署名方式では、通常は何の問題もないが、本発明者の検討によれば、パーソナルコンピュータを利用者装置とした場合、秘密情報を漏洩させる可能性がある。また、複数の利用者端末を所有する利用者にとっては、利用者端末毎に権限グループに加入する必要があるので、利便性が低い印象を与える可能性がある。また、利便性を向上させるように、複数の利用者端末間で秘密情報のコピーを許可すると、今度は秘密情報を漏洩させる可能性を大きくしてしまう。
【００２０】
本発明は上記実情を考慮してなされたもので、利用者装置からの秘密情報の漏洩を阻止し得る匿名認証システム、装置及びプログラムを提供することを目的とする。
【００２１】
また、本発明の他の目的は、複数の利用者端末を所有する利用者に対し、利便性を向上し得る匿名認証システム、装置及びプログラムを提供することにある。
【００２２】
【課題を解決するための手段】
第１の発明は、グループ署名方式を用いてサービス提供を受ける権限グループに所属する利用者を管理する管理装置と、匿名の利用者の利用者装置から受けたグループ署名を認証して当該利用者装置にサービスを提供するサービス提供装置とを備えた匿名認証システムであって、前記利用者装置としては、前記グループ管理装置及びサービス提供者装置と通信可能な利用者端末と、前記利用者端末に着脱自在に保持され、前記権限グループに所属する際に、前記利用者端末を介して前記管理装置から受けた乱数（α，β）により秘密情報（ｘｉ）を生成して格納し且つ前記利用者端末を介して前記管理装置から受けたグループ証明書情報を格納し、前記サービス提供を受ける際に、前記利用者端末にてグループ署名の生成に用いられる前記グループ証明書情報と前記秘密情報（ｘｉ）による演算結果（ｓ２）とを個別に前記利用者端末に出力する耐タンパー装置と、を備えた匿名認証システムである。
【００２３】
このように、第１の発明は、グループ署名方式を用いて利用者装置が権限グループに所属する旨をサービス提供装置に証明することにより、利用者の個人情報をサービス提供者が管理する必要が無いので、サービス提供者による個人情報の管理の負担を軽減できると共に、権限の証明に不要な個人情報をサービス提供者から保護することができる。
【００２４】
これに加え、第１の発明は、利用者端末に保持される耐タンパー装置を設け、この耐タンパー装置内で秘密情報を生成し、且つ秘密情報による演算を実行するので、利用者端末に秘密情報を漏洩させずに実現できる。さらに、秘密情報を漏洩させないため、例えば秘密情報のコピーを不可として不正な利用を阻止でき、セキュリティ性を向上させることができる。
【００２５】
さらに、第１の発明は、耐タンパー装置が着脱自在であるため、例えば会社の利用者端末に装着してサービス提供を受けた後、耐タンパー装置を持ち帰り、自宅の利用者端末にてサービス提供を受ける等というように、異なる利用者端末でそれぞれサービス提供を受けることができるので、複数の利用者端末を所有する利用者に対し、利便性を向上させることができる。
【００２６】
なお、第１の発明は全体構成を「システム」として表現した場合を示しているが、これに限らず、全体構成又は各装置を「装置」、「プログラム」、「方法」又は「コンピュータ読取り可能な記憶媒体」といった他の名称やカテゴリーで表現しても良いことは言うまでもない。
【００２７】
【発明の実施の形態】
以下、本発明の一実施形態について図面を参照しながら説明する。
図１は本発明の一実施形態に係る匿名認証システムの構成を示す模式図である。この匿名認証システムは、属性発行管理サーバ１０、利用者端末３０、耐タンパー装置５０、サービス提供サーバ７０及び決済機関装置９０を備えている。ここで、各装置１０，３０，５０，７０，９０は、各々ハードウェア構成のみ、又はハードウェア構成とソフトウェア構成との組合せにより実現可能であるが、ソフトウェア構成による部分は、対応する機能を実現させるためのプログラムが予め記憶媒体又はネットワークから自装置１０，３０，５０，７０，９０のコンピュータにインストールされて実現される。
【００２８】
属性発行管理サーバ１０は、利用者端末３０からの参加要求に基づいて、サービスを受けられる権限グループに利用者が所属する旨を証明するグループ証明書を発行し、利用者情報を管理するサーバである。
【００２９】
具体的には、属性発行管理サーバ１０は、図２に示すように、システム情報記憶部１１、利用者管理情報記憶部１２、パラメータ生成部１３、グループ鍵生成部１４、管理受付部１５、要求受付部１６、チャレンジ生成部１７、第１証明情報検証部１８、メンバー秘密鍵乱数生成部１９、第２証明情報検証部２０、第３証明情報検証部２１、グループ証明書生成部２２、利用者情報管理部２３、グループ署名オープン部２４及び決済処理部２５を備えている。
【００３０】
ここで、システム情報記憶部１１は、パラメータ生成部１３からのシステムパラメータ、グループＩＤ、グループ公開鍵、グループ秘密鍵などのシステム情報が記憶されるものであり、各機能部１３〜２４から読出可能となっている。
【００３１】
利用者管理情報記憶部１２は、要求受付部１６からの利用者管理情報、利用者情報管理部２３からのグループ証明書が記憶されるものであり、グループ署名オープン部２４から読出可能となっている。
【００３２】
パラメータ生成部１３は、システムで用いる基本パラメータ（以下、システムパラメータという）を生成し、得られたシステムパラメータをシステム情報記憶部１１に格納する機能をもっている。ここで、システムパラメータは、後述する表１に示すように、セキュリティパラメータε，ビット長ｋ，鍵ビット長Ｌｎ，変数λ１，λ２，ν１，ν２，整数範囲Λ，Γ，変数ζ１〜ζ５等がある。
【００３３】
グループ鍵生成部１４は、管理受付部１５により起動され、管理申込みに応じたグループ公開鍵とグループ秘密鍵とを生成し、これらグループ公開鍵とグループ秘密鍵とをシステム情報記憶部１１に格納する機能とをもっている。
【００３４】
管理受付部１５は、サービス提供サーバ７０からの属性発行管理申込みに応じ、グループ鍵生成部１４を起動する機能と、システム情報記憶部１１内のグループ公開鍵のみをサービス提供サーバ７０へ送信する機能とをもっている。
【００３５】
要求受付部１６は、利用者端末３０からのアクセスにより、グループ証明書発行可能なサービスのグループ情報及びシステムパラメータを利用者端末３０に送信する機能と、グループＩＤ及び利用者情報を利用者管理情報として、利用者管理情報記憶部１２に格納する機能と、このグループＩＤに基づいて、システム情報記憶部１１内の対応するグループ公開鍵をチャレンジ生成部１７に送る機能とをもっている。
【００３６】
チャレンジ生成部１７は、要求受付部１６からグループ公開鍵を受けると、チャレンジ値の長さを入力として、チャレンジ生成部１７でチャレンジ値を生成する機能と、このチャレンジ値及びグループ公開鍵を利用者端末３０へ送信する機能とをもっている。なお、本実施形態では、チャレンジ値は、第１〜第３証明情報の生成処理及び検証処理にて共通のものが用いられるが、これに限らず、第１〜第３証明情報の生成処理毎に、新たなチャレンジ値を生成して利用者端末３０に送信する構成としてもよい。
【００３７】
第１証明情報検証部１８は、チャレンジ生成部からのチャレンジ値及び利用者端末からの第１証明情報ｐｒｏｏｆＡ及びコミットメント値Ｃ１に基づいて、第１証明情報の検証処理を実行し、第１検証結果をメンバー秘密鍵乱数生成部１９に送出する機能をもっている。
【００３８】
メンバー秘密鍵乱数生成部１９は、第１証明情報検証部１８から受けた第１検証結果が真のとき、乱数α，βを生成して利用者端末に送信する機能と、第１検証結果が偽のとき、検証失敗を利用者端末３０へ返す機能とをもっている。
【００３９】
第２証明情報検証部２０は、利用者端末３０から第２証明情報ｐｒｏｏｆＢを受けると、このｐｒｏｏｆＢに基づいてパラメータｚ２’〜ｚ４’を計算する機能と、このｚ２’〜ｚ４’に基づいてハッシュ値ｃ２’〜ｃ４’を計算する機能と、得られたハッシュ値ｃ２’〜ｃ４’を用いて第２証明情報ｐｒｏｏｆＢを検証する機能と、検証結果を利用者端末３０に送信する機能とをもっている。
【００４０】
第３証明情報検証部２１は、利用者端末３０から受けたＣ２とｐｒｏｏｆＣに基づいて、ｚ１’，ｚ５’，ｚ６’を計算する機能と、得られたｚ１’，ｚ５’，ｚ６’に基づいてハッシュ値ｃ１，ｃ５を計算する機能と、得られたハッシュ値ｃ１，ｃ５に基づいて、第３証明情報ｐｒｏｏｆＣを検証する機能と、第３検証結果をグループ証明書生成部２２に出力する機能とをもっている。
【００４１】
グループ証明書生成部２２は、第３証明情報検証部２１から受けた第３検証結果が偽の場合、処理を中止して検証が失敗した旨を利用者端末３０へ通知する機能と、第３検証結果が真の場合、利用者からのメンバー鍵（Ｃ２）の正当性を検証し、それに基づいたグループ証明書（Ａｉ，ｅｉ，Ｅｉ）を発行する機能と、グループ証明書（Ａｉ，ｅｉ，Ｅｉ）を利用者端末３０へ送信する機能とをもっている。
【００４２】
利用者情報管理部２３は、利用者端末からの完了通知により、グループ証明書（Ａｉ，ｅｉ，Ｅｉ）を利用者管理情報記憶部１２に格納し、最終結果（ＯＫ／ＮＧ）を利用者端末３０に送信する機能をもっている。
【００４３】
グループ署名オープン部２４は、サービス提供サーバ７０からアクセスログを受け取り、ログ送信完了をサービス提供サーバ７０に通知する機能と、アクセスログに含まれるグループ署名のオープン処理を行う機能と、オープン処理により得られたＡｉから利用者管理情報記憶部１２を参照して利用者情報を抽出する機能と、この利用者情報を決済処理部２５に送出する機能とをもっている。
【００４４】
決済処理部２５は、グループ署名オープン部２４から受けた利用者情報に基づいて、決済要求を決済機関装置９０とに送信する機能と、決済機関装置９０から決済結果を受けると、利用者を特定できる情報を削除して利用者を匿名とした決済結果（例、ＯＫ／ＮＧ）を作成し、この匿名の決済結果をサービス提供サーバ７０に通知する機能とをもっている。
【００４５】
利用者端末３０は、利用者が所有する端末で、例えばパーソナルコンピュータ（以下、ＰＣ）の如き汎用計算機が用いられている。
【００４６】
具体的には図３に示すように、利用者端末３０は、メモリ３１、参加要求部３２、メンバー鍵初期情報生成部３３、第１証明情報生成部３４、乱数入力部３５、第２証明情報生成部３６、第３証明情報生成部３７、グループ証明書検証部３８、サービス要求部３９、グループ署名生成部４０及びサービス受信部４１を備えている。
【００４７】
ここで、メモリ３１は、メンバー鍵初期情報生成部３３からのグループ公開鍵、乱数ｓｒ、コミットメント値Ｃ１や、チャレンジ値、乱数入力部３５からの乱数α、コミットメント値Ｃ２などを記憶するものであり、各部３３〜３８から読出可能となっている。
【００４８】
参加要求部３２は、属性発行管理サーバ１０とＳＳＬ接続し、属性発行管理サーバ１０からグループ証明書発行可能なサービスのグループ情報及びシステムパラメータを得る機能と、利用者の操作により、入力されるグループ選択情報と利用者情報とからなるグループ参加要求を属性発行管理サーバ１０へ送信する機能と、システムパラメータをメンバー鍵初期情報生成部３３に送出する機能とをもっている。
【００４９】
メンバー鍵初期情報生成部３３は、属性発行管理サーバ１０からチャレンジ値及びグループ公開鍵を受けると、グループ公開鍵をメモリ３１に格納する機能と、システムパラメータ及びグループ公開鍵を耐タンパー装置５０に入力する機能と、耐タンパー装置５０からコミットメント元情報Ｃ１’を受けると、乱数ｓｒを生成する機能と、乱数ｓｒをメモリ３１に格納する機能と、コミットメント値Ｃ１を求める機能と、このＣ１をメモリ３１に格納する機能とをもっている。
【００５０】
第１証明情報生成部３４は、ｚ１生成要求を耐タンパー装置５０に入力する機能と、耐タンパー装置５０からｚ１を受けると、乱数ｒ２に基づいてｚ２を計算する機能と、ｚ１，ｚ２に基づいてｚを計算する機能と、ｚに基づいてハッシュ値ｃを計算する機能と、ハッシュ値ｃを耐タンパー装置５０へ入力する機能と、耐タンパー装置５０からｓ１を受ける機能と、ハッシュ値ｃに基づいて、ｓ２を計算する機能と、第１の証明情報ｐｒｏｏｆＡ＝（ｃ，ｓ１，ｓ２）とコミットメント値Ｃ１とを属性発行管理サーバ１０へ送信する機能とをもっている。
【００５１】
乱数入力部３５は、属性発行管理サーバ１０から乱数αとβを受けると、乱数αをメモリ３１に格納する機能と、乱数α，βを耐タンパー装置５０に入力する機能と、耐タンパー装置５０から受けたコミットメント値Ｃ２をメモリ３１に格納する機能とをもっている。
【００５２】
第２証明情報生成部３６は、ｙｚ生成要求を耐タンパー装置５０に入力する機能と、耐タンパー装置５０からｙ１，ｙ２，ｚ２，ｚ３を受ける機能と、乱数α，ｓｒに基づいてｗを計算する機能と、得られたｗに基づいてｙ３を計算する機能と、乱数ｒ４を生成する機能と、得られた乱数ｒ４に基づいて、ｚ４を計算する機能と、パラメータｙ１〜ｙ３，ｚ２〜ｚ３に基づいてハッシュ値ｃ２〜ｃ４を計算する機能と、ハッシュ値ｃ４に基づいてｓ４を計算する機能と、ハッシュ値ｃ２，ｃ３を耐タンパー装置５０に入力する機能と、耐タンパー装置５０からｓ２，ｓ３を受ける機能と、これら（ｙ１，ｙ２，ｙ３，ｃ２，ｃ３，ｃ４，ｓ２，ｓ３，ｓ４ ）を第２証明情報ｐｒｏｏｆＢとして属性発行管理サーバ１０へ送信する機能とをもっている。
【００５３】
第３証明情報生成部３７は、属性発行管理サーバ１０からの応答が真のとき、チャレンジ値（ｃｈａｌｌｅｎｇｅ）を入力として、ｚ生成要求を耐タンパー装置５０へ入力する機能と、耐タンパー装置５０からｚ１，ｚ５，ｚ６を受ける機能と、これらｚ１，ｚ５，ｚ６を用いてハッシュ値ｃ１，ｃ５を計算する機能と、得られたハッシュ値ｃ１，ｃ５を耐タンパー装置５０へ入力する機能と、耐タンパー装置からｓ１，ｓ５を受けると、メモリ３１内のコミットメント値Ｃ２、及び第３証明情報ｐｒｏｏｆＣ＝（ｃ１，ｃ５，ｓ１，ｓ５ ）を属性発行管理サーバ１０に送信する機能とをもっている。
【００５４】
グループ証明書検証部３８は、属性発行管理サーバ１０から受けたグループ証明書（Ａｉ，ｅｉ，Ｅｉ）の正当性を検証する機能と、検証結果が正当のとき、グループ証明書を耐タンパー装置５０に格納する機能と、完了通知を属性発行管理サーバ１０に送信する機能とをもっている。
【００５５】
サービス要求部３９は、利用者の操作により、サービス提供サーバ７０へアクセスし、サービス提供サーバ７０が提供するメニューを受信する機能と、このメニューを表示させる機能と、利用者の操作により、メニューからサービスを選択し、選択内容をサービス要求としてサービス提供サーバ７０へ返す機能とをもっている。
【００５６】
グループ署名生成部４０は、サービス提供サーバ７０からメッセージ（ｍｓｇ）を受信すると、証明書要求を耐タンパー装置５０へ入力する機能と、耐タンパー装置５０からグループ証明書（Ａｉ，ｅｉ，Ｅｉ）を受けると、ｚ生成要求を耐タンパー装置５０に入力する機能と、耐タンパー装置５０からパラメータｚを受ける機能と、乱数ｗを生成し、この乱数ｗに基づいて、（Ｔ１，Ｔ２，Ｔ３）  を計算する機能と、３つの乱数（ｒ１，ｒ３，ｒ４）を生成する機能と、これら（Ｔ１，Ｔ２，Ｔ３，ｒ１，ｒ３，ｒ４）に基づいて、後述するハッシュ値ｃに用いる値（ｄ１，ｄ２，ｄ３，ｄ４）を計算する機能と、これらｄ１〜ｄ４に基づいてハッシュ値ｃを計算する機能と、このハッシュ値ｃを用い、（ｓ１，ｓ３，ｓ４）を計算する機能と、ｓ２生成要求及びハッシュ値ｃを耐タンパー装置５０に入力する機能と、耐タンパー装置５０からｓ２を受ける機能と、得られた（ｃ，ｓ１，ｓ２，ｓ３，ｓ４，Ｔ１，Ｔ２，Ｔ３）をグループ署名としてサービス提供サーバ７０に送信する機能と、サービス提供サーバ７０から受けた検証結果をサービス受信部４１に送出する機能とをもっている。
【００５７】
サービス受信部４１は、サービス提供サーバ７０による検証結果が真の場合には、サービスの提供要求をサービス提供サーバ７０へ送信する機能と、サービス提供サーバ７０からサービスを受信する機能とをもっている。
【００５８】
耐タンパー装置５０は、利用者がグループ証明書の発行の授受や、サービス提供サーバ７０へサービスの提供を受けるために、グループに所属している証明をするためのデータを生成するために、本人ならびに第三者にも秘匿する秘密情報を格納し、その秘密情報を用いた演算を行い、結果を利用者端末３０に出力する装置である。
【００５９】
耐タンパー装置５０は、例えば演算機能を有するＩＣカードが使用可能となっており、具体的には図４に示すように、耐タンパー性メモリ５１、Ｃ１’生成部５２、ｚ１生成部５３、ｓ１生成部５４、Ｃ２生成部５５、ｙｚ生成部５６、ｓ３生成部５７、ｚ２生成部５８、ｓ４生成部５９、情報書込部６０、証明書出力部６１、ｚ３生成部６２及びｓ２生成部６３を備えている。
【００６０】
ここで、耐タンパー性メモリ５１は、耐タンパー性を有し、各部５２，５５，５６等から情報書込部６０を介して格納されたシステムパラメータ、グループ公開鍵、グループ証明書、メンバー秘密鍵が記憶されるメモリであり、各部５２〜６３から読出可能となっている。
【００６１】
Ｃ１’生成部５２は、利用者端末３０からシステムパラメータ及びグループ公開鍵を受けると、乱数ｓｘｉを生成する機能と、この乱数ｓｘｉに基づいてコミットメント元情報Ｃ１’を計算する機能と、システムパラメータ及びグループ公開鍵を耐タンパー性メモリ５１に格納する機能と、コミットメント元情報Ｃ１’を利用者端末３０に出力する機能とをもっている。
【００６２】
ｚ１生成部５３は、利用者端末３０からｚ１生成要求を受けると、乱数ｒ１を生成する機能と、この乱数ｒ１に基づいてｚ１を計算する機能と、このｚ１を利用者端末３０に出力する機能とをもっている。
【００６３】
ｓ１生成部５４は、利用者端末３０からハッシュ値ｃを受けると、このハッシュ値ｃに基づいてｓ１を演算する機能と、このｓ１を利用者端末３０に出力する機能とをもっている。
【００６４】
Ｃ２生成部５５は、利用者端末３０から受けた乱数α，βに基づいて、メンバー秘密鍵ｘｉを計算する機能と、ｘｉの計算過程で得られる値「α・ｓｘｉ＋β」を耐タンパー性メモリ５１に格納する機能と、メンバー秘密鍵ｘｉを耐タンパー性メモリ５１に格納する機能と、メンバー秘密鍵ｘｉに基づいてコミットメント値Ｃ２を計算する機能と、得られたＣ２を利用者端末３０に出力する機能とをもっている。
【００６５】
ｙｚ生成部５６は、利用者端末３０から受けたｙｚ生成要求により、耐タンパー性メモリ５１を参照し、ｖ，ｕを算出する機能と、ｕを耐タンパー性メモリ５１に格納する機能と、ｕ，ｖに基づいてｙ１，ｙ２を計算する機能と、乱数ｒ２，ｒ３を生成する機能と、この乱数ｒ２，ｒ３に基づいてｚ２，ｚ３を計算する機能と、以上のように得られたｙ１，ｙ２，ｚ２，ｚ３を利用者端末３０に出力する機能と、ｙ１  を耐タンパー性メモリ５１に格納する機能とをもっている。
【００６６】
ｓ３生成部５７は、利用者端末３０から受けたハッシュ値ｃ２，ｃ３に基づいて、ｓ２，ｓ３を計算する機能と、得られたｓ２，ｓ３を利用者端末３０に出力する機能とをもっている。
【００６７】
ｚ２生成部５８は、利用者端末３０からｚ生成要求を受けると、乱数ｒ１，ｒ５を生成し、ｚ１，ｚ５，ｚ６を計算する機能と、得られたｚ１，ｚ５，ｚ６を利用者端末３０へ返す機能とをもっている。
【００６８】
ｓ４生成部５９は、利用者端末３０から受けたハッシュ値ｃ１，ｃ５に基づいてｓ１，ｓ５を計算する機能と、このｓ１，ｓ５を利用者端末３０に出力する機能とをもっている。
【００６９】
情報書込部６０は、各部５２，５５，５６等から受ける情報を耐タンパー性メモリ５１に格納する機能をもっている。
【００７０】
証明書出力部６１は、利用者端末３０から受けた証明書要求により、耐タンパー性メモリ５１から読出したグループ証明書（Ａｉ，ｅｉ，Ｅｉ）を利用者端末３０に出力する機能をもっている。
【００７１】
ｚ３生成部６２は、利用者端末３０から受けたｚ生成要求により、乱数ｒ２を生成し、この乱数ｒ２に基づいて、パラメータｚを計算する機能と、パラメータｚを利用者端末３０に出力する機能とをもっている。
【００７２】
ｓ２生成部６３は、利用者端末３０から受けたｓ２生成要求及びハッシュ値ｃに基づいて、パラメータｓ２を生成する機能と、このｓ２を利用者端末３０に出力する機能とをもっている。
【００７３】
サービス提供サーバ７０は、匿名の利用者の利用者端末３０から受けたグループ署名を認証して当該利用者端末３０にサービスを提供する機能をもっている。
【００７４】
具体的には図５に示すように、サービス提供サーバ７０は、システム情報記憶部７１、アクセスログ記憶部７２、決済情報記憶部７３、管理申込部７４、サービス部７５、グループ署名検証部７６、アクセス制御部７７、ログ送信部７８、決済管理部７９及び開示要求部８０を備えている。
【００７５】
ここで、システム情報記憶部７１は、管理申込部７４から書込まれたシステムパラメータ及びグループ公開鍵などのシステム情報を記憶するものであり、グループ署名検証部７６から読出可能となっている。
【００７６】
アクセスログ記憶部７２は、アクセス制御部７７から書込まれたアクセスログを記憶するものであり、ログ送信部７８から読出可能となっている。
【００７７】
決済情報記憶部７３は、アクセスログと決済結果とが関連付けて記憶されるメモリであり、決済管理部７９から読出／書込可能となっている。
【００７８】
管理申込部７４は、サービス提供者の操作により、属性発行管理申込みを属性発行管理サーバ１０に送信する機能と、属性発行管理サーバ１０から受けたグループ公開鍵やシステムパラメータをシステム情報記憶部７１に格納する機能をもっている。
【００７９】
サービス部７５は、利用者端末３０からのアクセスにより、メニューを利用者端末３０に提供する機能と、利用者端末３０から受けたサービス要求に含まれるグループＩＤにより、グループ署名検証部７６を起動する機能とをもっている。
【００８０】
グループ署名検証部７６は、サービス部７５から受けたグループＩＤに基づいて、テンポラリなメッセージ（ｍｓｇ）を利用者端末３０へ返す機能と、利用者端末３０から受けたグループ署名（ｃ，ｓ１，ｓ２，ｓ３，ｓ４，Ｔ１，Ｔ２，Ｔ３）を検証する機能と、検証結果をアクセス制御部７７及び利用者端末３０に送信する機能とをもっている。
【００８１】
アクセス制御部７７は、利用者端末３０から提供要求を受けると、グループ署名検証部７６による検証結果が真のとき、サービスを利用者端末３０へ送信する機能をもっている。
【００８２】
ログ送信部７８は、定期的に又はサービス提供者の操作により、アクセスログ記憶部７２内のアクセスログを属性発行管理サーバ７０に送信する機能と、属性発行管理サーバ７０からログ送信完了を受けると、送信完了したアクセスログを決済管理部７９に送出する機能とをもっている。
【００８３】
決済管理部７９は、ログ送信部７８から受けたアクセスログを決済情報記憶部７３に格納する機能と、属性発行管理サーバ７０から受けた決済結果に従って決済完了を確認すると、決済情報記憶部７３内の送信完了ログに対し、決済完了の旨を書込んで決済処理を終了する機能とをもっている。
【００８４】
なお、決済管理部７９は、属性発行管理サーバ７０から受けた決済結果が決済失敗を示すとき、送信完了ログを指定して決済失敗を開示要求部８０に通知する機能と、開示要求部８０から受けた利用者情報を決済情報記憶部７３に格納する機能とをもっている。
【００８５】
開示要求部８０は、決済管理部７９から受けた通知により、送信完了ログを指定して開示要求を属性発行管理サーバ１０に送信する機能と、属性発行管理サーバ１０から受けた利用者情報を決済管理部７９に出力する機能とをもっている。
【００８６】
決済機関装置９０は、銀行等の決済機関に用いられ、利用者の口座から決済が可能な装置であり、具体的には、属性発行管理サーバ１０から受けた利用者情報及び決済要求に基づいて、利用者の決済処理を実行し、決済結果を属性発行管理サーバ１０に返信する機能をもっている。
【００８７】
次に、以上のように構成された匿名認証システムの動作を説明する。
まず、属性発行管理サーバ１０は、パラメータ生成部１３により、システムパラメータを生成し、システム情報記憶部１１に格納する。生成したシステムパラメータのうち、秘密にしなければいけない情報は、システム情報記憶部１１内で安全に格納されているものとする。
【００８８】
属性発行管理サーバ１０が生成するシステムパラメータを表１に示す。
【００８９】
【表１】
2004320562.tif 000003
【００９０】
また、属性発行管理サーバ１０が、サービス提供サーバ７０が提供するサービスに対して、グループを構成し、そのグループに対する鍵情報を生成する。生成した鍵情報のうち、グループ公開鍵はサービス提供者に渡し、グループ秘密鍵は属性発行管理サーバ１０内で安全に管理され、外部への漏洩はないものとする。
【００９１】
具体的には、あるサービス提供者がサービス提供サーバ７０を用いて、例えば静止画データや動画データの閲覧サービスを行いたい場合を想定する。なお、サービス提供については、上記のような画像や動画などのマルチメディアデータの提供だけでなく、ネットワークの利用などへも利用できる。
【００９２】
また、サービス提供サーバ７０は、管理申込部７４が属性発行管理申込みを属性発行管理サーバ１０に送信する。この属性発行管理申込みは、例えば、サービス提供サーバ７０が提供するサービスに対して、サービス提供者が設定するグループに関する情報である。
【００９３】
例えば、ある画像Ａを閲覧するためには、１００円を支払う必要があるが、画像Ａと画像Ｂを閲覧するためには２００円を支払う必要がある場合を考える。この場合、画像Ａのみを閲覧するグループと、画像Ａ及び画像Ｂを閲覧するグループとが考えられる。このため、属性発行管理サーバ１０は、サービス提供サーバ７０からの管理申込みにより、利用者からの申込みに応じた、後述するグループ証明書を発行する契約をする。
【００９４】
属性発行管理サーバ１０は、管理受付部１５がサービス提供サーバ７０からの属性発行管理申込みを受けると、この申込みに応じたグループ公開鍵とグループ秘密鍵をグループ鍵生成部１４が生成する。
【００９５】
ここで、グループ公開鍵及びグループ秘密鍵の生成処理を説明する。
（グループ公開鍵生成処理）
グループ鍵生成部１４は、システム情報記憶部１１内のシステムパラメータを参照しつつ、次式を満たす素数ｐ，ｑを選定する。
【００９６】
ｐ＝２ｐ’＋１（ｐ’：素数）
ｑ＝２ｑ’＋１（ｑ’：素数）
次に、グループ鍵生成部１４は、鍵のビット長Ｌｎについて、素数ｐ，ｑが  Ｌｎ／２  ビットの自然数かどうかをチェックする。さらに、素数ｐ及びｑが２Ｌｎ／２−１  以上で且つ２Ｌｎ／２−１  以下であることを確認する。
【００９７】
続いて、グループ鍵生成部１４は、ｐ，ｑ，（ｐ−１）／２，（ｑ−１）／２が全て素数かどうかをチェックする。
【００９８】
全て素数の場合、グループ鍵生成部１４は、法となる積ｎ＝ｐｑを計算する。
【００９９】
しかる後、グループ鍵生成部１４は、平方剰余ＱＲ（ｎ）の生成元（ｇｅｎｅｒａｔｏｒ）を生成し、この生成元に基づいてＱＲ（ｎ）の要素ａ，ａ０，ｇ，ｈをランダムに選ぶ。
【０１００】
さらに、グループ鍵生成部１４は、乗法群Ｚｐ’ｑ’＊の要素ｘをランダムに選び、得られた要素ｘに基づいて、次式のようにｙを計算する。
ｙ＝ｇｘ（ｍｏｄ  ｎ）
また、グループ鍵生成部１４は、次式のようにｍを算出する。
ｍ＝（（ｐ−１）／２）・（（ｑ−１）／２）
しかる後、グループ鍵生成部１４は、グループ公開鍵（ｎ，ａ，ａ０，ｇ，ｈ，ｙ）及びグループ秘密鍵（ｐ，ｑ，ｘ，ｍ）をシステム情報記憶部１１に格納する。以上でグループ公開鍵及びグループ秘密鍵の生成処理が完了する。
なお、グループ公開鍵とグループ秘密鍵は表２に示す通りである。
【０１０１】
【表２】
2004320562.tif 000004
【０１０２】
続いて、管理受付部１５は、システム情報記憶部１１内のグループ公開鍵のみをサービス提供サーバ７０へ送信する。
サービス提供サーバ７０は、管理申込部７４がこのグループ公開鍵をシステム情報記憶部７１に格納する。
【０１０３】
なお、サービス提供者からの属性発行管理申込みや、属性発行管理サーバ１０からのグループ公開鍵の送信は、ネットワーク経由で送信しても良いし、属性発行管理申込みは書面、グループ公開鍵はＣＤ−ＲＯＭなどの記録媒体で送付してもよい。ネットワークを用いる場合は、少なくとも属性発行管理申込み時は、ＳＳＬ（Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔｓ  Ｌａｙｅｒ）などのセキュアな通信が成立しているものとする。
【０１０４】
次に、これらの準備が整い、利用者が属性発行管理サーバ１０へ利用申込みをし、グループ証明書の発行を受ける動作について、図６及び図７を用いて説明する。ここで、属性発行管理サーバ１０と利用者端末３０とは、ネットワークで接続され、ＳＳＬなどのセキュア通信が行われるものとする。なお、ＳＳＬ通信を行う場合、サーバ認証及びクライアント認証を行うＳＳＬ通信が望ましい。
【０１０５】
また、利用者端末３０と耐タンパー装置５０とは、例えば耐タンパー装置５０がＩＣカードである場合、リーダライタの様な装置により接続されているものとする。もしくは、ブルーツース（Ｂｌｕｅｔｏｏｔｈ）の様な無線通信により利用者端末３０（ＰＣ）と通信しても良い。この場合、無線通信路は一時的な鍵で通信路が暗号化されていることが望ましい。
【０１０６】
さて、利用者は、自己が所有する耐タンパー装置５０を利用者端末３０に挿入する。ここで、耐タンパー装置５０は、Ｊａｖａ（登録商標）カードの様なマルチアプリケーションに対応したＩＣカードであるとする。
【０１０７】
利用者端末３０は、属性発行管理サーバ１０とＳＳＬ接続し、属性発行管理サーバ１０の要求受付部１６からグループ証明書発行可能なサービスのグループ情報及びシステムパラメータを得る（ＳＴ１）。
【０１０８】
利用者端末３０は、利用者の操作により、グループ情報から、希望するグループが選択された後、利用者情報が入力される。続いて、利用者端末３０は、参加要求部３２がこれらグループ選択情報と利用者情報とからなるグループ参加要求を属性発行管理サーバ１０へ送信する（ＳＴ２）。
【０１０９】
グループ選択情報は、例えばグループＩＤである。利用者情報は、氏名、性別、住所、電話番号、生年月日、所属、決済用の口座番号もしくはクレジット番号、などが含まれる。
【０１１０】
属性発行管理サーバ１０では、要求受付部１６がこれらグループＩＤ及び利用者情報を利用者管理情報として、利用者管理情報記憶部１２に格納する。
【０１１１】
また、要求受付部１６は、このグループＩＤに基づいて、システム情報記憶部１１内の対応するグループ公開鍵をチャレンジ生成部１７に送る。チャレンジ値の長さを入力として、チャレンジ生成部１７でチャレンジ値（以下、ｃｈａｌｌｅｎｇｅともいう）が生成される。チャレンジ値は、０〜２Ｌｃ−１の範囲の乱数である。なお、チャレンジ生成部１７は、チャレンジ値を生成すると、このチャレンジ値及びグループ公開鍵を利用者端末３０へ送信する（ＳＴ３）。
【０１１２】
利用者端末３０は、メンバー鍵初期情報生成部３３が、チャレンジ値及びグループ公開鍵を受けると、耐タンパー装置５０と連携してコミットメント値Ｃ１を生成する。
【０１１３】
コミットメント値Ｃ１の生成処理を以下に示す。
【０１１４】
（コミットメント値Ｃ１生成処理）
メンバー鍵初期情報生成部３３は、引数として与えられたグループ公開鍵をメンバ変数としてメモリ３１に格納する。なお、既にメンバ変数にグループ公開鍵があっても、引数として与えられたものを利用する。
【０１１５】
メンバー鍵初期情報生成部３３は、システムパラメータ及びグループ公開鍵を耐タンパー装置５０内のＣ１’生成部５２に入力する（ＳＴ４）。
【０１１６】
Ｃ１’生成部５２では、システムパラメータ及びグループ公開鍵を受けると、乱数ｓｘｉ（０＜ｓｘｉ＜２λ２）を生成し、この乱数ｓｘｉに基づいて次式のようにコミットメント元情報Ｃ１’を計算する。
【０１１７】
Ｃ１’＝ｇｓｘｉ（ｍｏｄ  ｎ）
しかる後、Ｃ１’生成部では、システムパラメータ及びグループ公開鍵を耐タンパー性メモリ５１に格納し、コミットメント元情報Ｃ１’を利用者端末３０のメンバー鍵初期情報生成部３３へ出力する（ＳＴ５）。
【０１１８】
メンバー鍵初期情報生成部３３は、コミットメント元情報Ｃ１’を受けると、乱数ｓｒ（０＜ｓｒ＜ｎ２）を生成する。なお、生成した乱数ｓｒは、後で利用するため、メモリ３１内で保持される。
【０１１９】
続いて、メンバー鍵初期情報生成部３３は、コミットメント値Ｃ１を次式のように求め、このＣ１を後で利用するため、メモリ３１に格納する。
Ｃ１＝Ｃ１’・ｈｓｒ（ｍｏｄ  ｎ）
以上でコミットメント値Ｃ１生成処理が完了する。
【０１２０】
次に、第１証明情報生成部３４では、Ｃ１＝  ｇｓｘｉ・ｈｓｒ（ｍｏｄ  ｎ）のｓｘｉとｓｒとを知っていることの第１証明情報を生成する。
【０１２１】
以下、第１の証明情報の生成処理について説明する。
（第１証明情報生成処理）
第１証明情報生成部３４では、ｚ１生成要求を耐タンパー装置５０のｚ１生成部５３へ入力する（ＳＴ６）。
【０１２２】
ｚ１生成部５３は、以下のように乱数ｒ１を生成し、この乱数ｒ１に基づいてｚ１を計算し、このｚ１を第１証明情報生成部３４に出力する（ＳＴ７）。
【０１２３】
ｒ１：−２（ζ４＋１）＜ｒ１＜２（ζ４＋１）
ｚ１＝ｇｒ１（ｍｏｄ  ｎ）
第１証明情報生成部３４は、以下のように乱数ｒ２を生成し、この乱数ｒ２に基づいてｚ２を計算する。
ｒ２：−２（ζ４＋１）＜ｒ２ ＜２（ζ４＋１）
ｚ２＝ｈｒ２（ｍｏｄ  ｎ）
しかる後、第１証明情報生成部３４は、次式のようにｚを計算する。
ｚ＝  ｚ１・ｚ２（ｍｏｄ  ｎ）
また、第１証明情報生成部３４は、ハッシュ値ｃを次式のように計算する。
ｃ＝Ｈ（ｇ‖ｈ‖Ｃ１‖ｚ‖ｃｈａｌｌｅｎｇｅ）
但し、Ｈ（ｍ）：メッセージｍに対するハッシュ値の演算。
【０１２４】
さらに、第１証明情報生成部３４は、ハッシュ値ｃを耐タンパー装置５０のｓ１生成部５４へ入力する（ＳＴ８）。
【０１２５】
ｓ１生成部５４では、次式のようにｓ１を演算し、このｓ１を第１証明情報生成部３４へ返す（ＳＴ９）。
ｓ１＝ｒ１−ｃ・ｓｘｉ
第１証明情報生成部３４は、次式のようにｓ２を計算する。
ｓ２＝ｒ２−ｃ・ｓｒ
しかる後、第１証明情報生成部３４は、第１の証明情報ｐｒｏｏｆＡ＝（ｃ，ｓ１，ｓ２）とコミットメント値Ｃ１とを属性発行管理サーバ１０へ送信する（ＳＴ１０）。
以上で第１証明情報生成処理が完了する。
【０１２６】
属性発行管理サーバ１０は、第１の証明情報ｐｒｏｏｆＡ＝（ｃ，ｓ１，ｓ２）とコミットメント値Ｃ１とを受けると、Ｃ１＝ｇｓｘｉ・ｈｓｒ（ｍｏｄ  ｎ）のｓｘｉとｓｒを利用者端末３０が知っている旨の証明を検証する。
【０１２７】
具体的には、第１証明情報検証部１８が、前述したチャレンジ値及び受信したｐｒｏｏｆＡ、Ｃ１に基づいて以下の処理を実行する。
【０１２８】
（第１証明情報検証処理）
第１証明情報検証部１８は、後で利用するため、コミットメント値Ｃ１を属性発行管理サーバ１０のシステム情報記憶部１１に格納する。
【０１２９】
第１証明情報検証部１８は、次式のようにｚ’を計算する。
ｚ’＝Ｃ１ｃ・ｇｓ１・ｈｓ２  （ｍｏｄ  ｎ）
続いて、第１証明情報検証部１８は、得られたｚ’を用い、次式のようにハッシュ値ｃ’を計算する。
ｃ’＝Ｈ（ｇ‖ｈ‖Ｃ１‖ｚ’‖ｃｈａｌｌｅｎｇｅ）
このとき、第１証明情報検証部１８は、ｃ＝ｃ’の場合に真（ｔｒｕｅ）を第１検証結果とし、他の場合に偽（ｆａｌｓｅ）を第１検証結果としてメンバー秘密鍵乱数作成部１９に出力する。
以上で第１証明情報検証処理が完了する。
メンバー秘密鍵乱数生成部１９は、第１検証結果が真のとき、メンバー秘密鍵を構成する乱数αとβを生成する。なお、第１検証結果が偽のとき、検証失敗を利用者端末３０へ返す。
【０１３０】
ここで、メンバー秘密鍵の乱数αとβの生成処理は、以下の通りである。
（メンバー秘密鍵乱数生成処理）
メンバー秘密鍵乱数生成部１９は、Ｃ１が平方剰余であるかを検証し、平方剰余のとき、乱数α，β（０＜α，β＜２λ２ ）を生成し、この乱数α，βを利用者端末３０へ返す（ＳＴ１１）。なお、この乱数α，βは後で用いられるため、属性発行管理サーバ１０のシステム情報記憶部１１に書込まれる。
【０１３１】
以上でメンバー秘密鍵乱数生成処理が完了する。
【０１３２】
利用者端末３０は、乱数αとβを受けると、後で利用するため、乱数入力部３５が乱数αをメモリ３１に保持する。しかる後、利用者端末３０は、乱数入力部３５が乱数α，βを耐タンパー装置５０のＣ２生成部５５に入力し（ＳＴ１２）、耐タンパー装置５０にメンバー秘密鍵ｘｉとコミットメント値Ｃ２とを計算させる。これらの計算は、以下の処理により行う。
【０１３３】
（メンバー秘密鍵生成処理）
耐タンパー装置５０においては、乱数α，βに基づいて、Ｃ２生成部５５が次式のようにメンバー秘密鍵ｘｉを計算する。
ｘｉ＝２λ１  ＋（α・ｓｘｉ＋β（ｍｏｄ  ２λ２））
なお、この計算過程で得られる値「α・ｓｘｉ＋β」は、後で利用するため、耐タンパー性メモリ５１に保持される。また、Ｃ２生成部５５は、演算結果のメンバー秘密鍵ｘｉを耐タンパー性メモリ５１に格納する。なお、このメンバー秘密鍵ｘｉは、耐タンパー装置５０の外部に出されることはない。
【０１３４】
続いて、Ｃ２生成部５５は、メンバー秘密鍵ｘｉに基づいて、次式のようにコミットメント値Ｃ２を計算し、得られたＣ２を利用者端末３０に出力する（ＳＴ１３）。
Ｃ２＝ａｘｉ  （ｍｏｄ  ｎ）
以上でメンバー秘密鍵生成処理が完了する。
【０１３５】
利用者端末３０は、コミットメント値Ｃ２を受けると、後で利用するために、Ｃ２をメモリ３１に保持する。
次に、利用者端末３０は、メンバー秘密鍵ｘｉ＝ｌｏｇａＣ２が、コミットメント値Ｃ１及び乱数α，βから正しく計算されていることの知識証明を生成するため、第２証明情報生成部３６において、第２の証明情報を生成する。
【０１３６】
第２の証明情報の生成処理を以下に示す。
（第２証明情報生成処理）
第２証明情報生成部３６は、以下を満たすｕ，ｖ，ｗを計算するため、ｙｚ生成要求を耐タンパー装置５０のｙｚ生成部５６へ送る（ＳＴ１４）。
【０１３７】
ｙｚ生成部５６は、ｙｚ生成要求により、耐タンパー性メモリ５１内の値「α・ｓｘｉ＋β」に基づいて、次式のようにｖ，ｕを算出する。
【０１３８】
α・ｓｘｉ＋β＝  ｖ・２λ２  ＋  ｕ
−２λ２＋１  ＜ｕ＜２λ２＋１
具体的には、値「α・ｓｘｉ＋  β」の下位  λ２  ビットを  ｕとし、残りの上位ビットを  ｖ  とする。
【０１３９】
また、後で用いるため、ｕを耐タンパー性メモリ５１に保持しておく。
【０１４０】
続いて、ｙｚ生成部５６は、次式のようにｙ１，ｙ２を計算する。
【０１４１】
ｙ１＝ｇｕ  （ｍｏｄ  ｎ）
ｙ２＝ｇｖ （ｍｏｄ  ｎ）
また、ｙｚ生成部５６は、次式を満たす乱数ｒ２，ｒ３を生成する。
ｒ２：  −２（ζ２＋１）＜ｒ２＜２（ζ２＋１）
ｒ３：−２（ζ４＋１）＜ｒ３＜２（ζ４＋１）
さらに、ｙｚ生成部５６は、この乱数ｒ２，ｒ３に基づいて、次式のようにｚ２，ｚ３を計算する。
ｚ２＝ｇｒ２  （ｍｏｄ  ｎ）
ｚ３＝ｇｒ３  （ｍｏｄ  ｎ）
しかる後、ｙｚ生成部５６は、以上のように得られたｙ１，ｙ２，ｚ２，ｚ３を利用者端末３０の第２証明情報生成部３６に出力する（ＳＴ１５）。なお、後で利用するため  ｙ１  を耐タンパー性メモリ５１内に保持しておく。
【０１４２】
一方、第２証明情報生成部３６は、次式のようにｗを計算し、得られたｗに基づいてｙ３を計算する。
【０１４３】
ｗ＝α・ｓｒ
ｙ３＝ｈｗ（ｍｏｄ  ｎ）
また、第２証明情報生成部３６は、次式を満たす乱数ｒ４を生成する。
ｒ４：−２（ζ５＋１）＜ｒ４＜２（ζ５＋１）
第２証明情報生成部３６は、得られた乱数ｒ４に基づいて、次式のようにｚ４を計算する。
【０１４４】
ｚ４＝ｈｒ４  （ｍｏｄ  ｎ）
次に、第２証明情報生成部３６は、以下のハッシュ値ｃ２〜ｃ４を計算する。
【０１４５】
ｃ２＝  Ｈ（ｙ１‖ｇ‖ｚ２‖ｃｈａｌｌｅｎｇｅ）
ｃ３＝  Ｈ（ｙ２‖ｇ‖ｚ３‖ｃｈａｌｌｅｎｇｅ）
ｃ４＝  Ｈ（ｙ３‖ｈ‖ｚ４‖ｃｈａｌｌｅｎｇｅ）
また、第２証明情報生成部３６は、次式のようにｓ４を計算する。
ｓ４＝ｒ４−ｃ４・ｗ
しかる後、第２証明情報生成部３６は、ハッシュ値ｃ２，ｃ３を耐タンパー装置５０に入力する（ＳＴ１７）。
【０１４６】
耐タンパー装置５０では、ｓ３生成部５７がこのハッシュ値ｃ２，ｃ３に基づいて、次式のようにｓ２，ｓ３を計算し、得られたｓ２，ｓ３を利用者端末３０に出力する（ＳＴ１８）。
ｓ２＝ｒ２−ｃ２・ｕ
ｓ３＝ｒ３−ｃ３・ｖ
利用者端末３０では、第２証明情報生成部３６が、以上のように生成されたｐｒｏｏｆＢ＝（ｙ１，ｙ２，ｙ３，ｃ２，ｃ３，ｃ４，ｓ２，ｓ３，ｓ４ ）を、第２証明情報として属性発行管理サーバ１０へ送信する（ＳＴ１８）。
【０１４７】
以上で第２証明情報生成処理が完了する。
次に、属性発行管理サーバ１０では、メンバー秘密鍵ｘｉ＝ｌｏｇａＣ２がコミットメント値Ｃ１及び乱数α，βから正しく計算されていることの証明を検証するため、第２証明情報検証部２０が第２証明情報ｐｒｏｏｆＢと生成したチャレンジ値（ｃｈａｌｌｅｎｇｅ）とから、以下の検証処理を実行する。
【０１４８】
（第２証明情報検証処理）
属性発行管理サーバ１０では、第２証明情報検証部２０が第２証明情報ｐｒｏｏｆＢを受けると、後で利用するため、ｙ１をシステム情報記憶部１１に保持しておく。
【０１４９】
次に、第２証明情報検証部２０は、以下のｚ２’〜ｚ４’を計算する。
ｚ２’＝ｙ１ｃ２・ｇｓ２  （ｍｏｄ  ｎ）
ｚ３’＝ｙ２ｃ３・ｇｓ３  （ｍｏｄ  ｎ）
ｚ４’＝ｙ３ｃ３・ｈｓ４  （ｍｏｄ  ｎ）
また、第２証明情報検証部２０は、以下のハッシュ値ｃ２’〜ｃ４’を計算する。
ｃ２’＝  Ｈ（ｙ１‖ｇ‖ｚ２’‖ｃｈａｌｌｅｎｇｅ）
ｃ３’＝  Ｈ（ｙ２‖ｇ‖ｚ３’‖ｃｈａｌｌｅｎｇｅ）
ｃ４’＝  Ｈ（ｙ３‖ｈ‖ｚ４’‖ｃｈａｌｌｅｎｇｅ）
このとき、第２証明情報検証部２０は、ｃ２＝ｃ２’とｃ３＝ｃ３’とｃ４＝ｃ４’とを満たし、且つ、以下の（１）式を満たす場合には、検証結果の応答（ａｎｓ）として真（ｔｒｕｅ）を、他の場合には偽（ｆａｌｓｅ）を利用者端末３０の第３証明情報生成部３７へ送る（ＳＴ１９）。
【０１５０】
【数１】
2004320562.tif 000005
【０１５１】
以上で第２証明情報検証処理が完了する。
利用者端末３０では、応答が偽のとき、その旨を利用者へ表示する。
【０１５２】
応答が真のとき、第３証明情報生成部３７は、メンバー秘密鍵ｘｉ＝ｌｏｇａＣ２がコミットメント値Ｃ１及び乱数α，βから正しく計算されていることの知識証明を生成するため、以下の処理を実行する。
【０１５３】
（第３証明情報生成処理）
利用者端末３０では、第３証明情報生成部３７が、応答が真のとき、チャレンジ値（ｃｈａｌｌｅｎｇｅ）を入力として、ｚ生成要求を耐タンパー装置５０のｚ２生成部５８へ入力する（ＳＴ２０）。
【０１５４】
ｚ２生成部５８は、以下のように、乱数ｒ１，ｒ５を生成し、ｚ１，ｚ５，ｚ６を計算する。
ｒ１：−２（ζ２＋１）＜ｒ１＜２（ζ２＋１）
ｒ５：−２（ζ４＋１）＜ｒ５＜２（ζ４＋１）
ｚ１＝ａｒ１  （ｍｏｄ  ｎ）
ｚ５＝ａｒ５  （ｍｏｄ  ｎ）
ｚ６＝ｇｒ５  （ｍｏｄ  ｎ）
しかる後、ｚ２生成部５８は、得られたｚ１，ｚ５，ｚ６を利用者端末３０の第３証明情報生成部３７へ返す（ＳＴ２１）。
【０１５５】
第３証明情報生成部３７は、ｚ１，ｚ５，ｚ６を受け取ると、以下のハッシュ値ｃ１，ｃ５を計算する。
ｃ１＝Ｈ（Ｃ２‖ａ‖ｚ１‖ｃｈａｌｌｅｎｇｅ）
【数２】
2004320562.tif 000006
【０１５６】
続いて、第３証明情報生成部３７は、得られたハッシュ値ｃ１，ｃ５を、耐タンパー装置５０のｓ４生成部５９へ入力する（ＳＴ２２）。
ｓ４生成部５９は、以下のようにｓ１，ｓ５を計算して利用者端末３０の第３証明情報生成部３７へ出力する（ＳＴ２３）。なお、ｕは、第２証明情報生成処理で保持しておいた値を用いる。
【０１５７】
ｓ１＝ｒ１−ｃ１（ｘｉ−２λ１）
ｓ５＝ｒ５−ｃ５・ｕ
第３証明情報生成部３７は、ｓ１，ｓ５を受けると、メモリ３１内のコミットメント値Ｃ２、及び第３証明情報ｐｒｏｏｆＣ＝（ｃ１，ｃ５，ｓ１，ｓ５ ）を属性発行管理サーバ１０に送信する（ＳＴ２４）。
【０１５８】
以上で第３証明情報生成処理が完了する。
属性発行管理サーバ１０では、Ｃ２及びｐｒｏｏｆＣを受けると、メンバ秘密鍵ｘｉ＝ｌｏｇａＣ２がコミットメント値Ｃ１及び乱数α，βから正しく計算されていることの証明を検証するため、第３証明情報検証部２１において検証する。
【０１５９】
入力は、生成したｃｈａｌｌｅｎｇｅ、及び受信したＣ２とｐｒｏｏｆＣである。
【０１６０】
（第３証明情報検証処理）
第３証明情報検証部２１は、後で利用するため、コミットメント値Ｃ２をシステム情報記憶部１１に格納する。
【０１６１】
また、第３証明情報検証部２１は、以下のように、ｚ１’，ｚ５’，ｚ６’を計算する。
【０１６２】
【数３】
2004320562.tif 000007
【０１６３】
ｚ５’＝（Ｃ２）ｃ５・ａｓ５  （ｍｏｄ  ｎ）
ｚ６’＝ｙ１ｃ５・ｇｓ５  （ｍｏｄ  ｎ）
さらに、第３証明情報検証部２１は、以下のように、ハッシュ値ｃ１，ｃ５を計算する。
【０１６４】
ｃ１＝  Ｈ（Ｃ２‖ａ‖ｚ１’‖ｃｈａｌｌｅｎｇｅ）
【数４】
2004320562.tif 000008
【０１６５】
このとき、第３証明情報検証部２１は、ｃ１＝ｃ１’と、ｃ５＝ｃ５’とを満たす場合には、第３検証結果を真とし、他の場合には偽として、グループ証明書生成部２２に出力する。
【０１６６】
以上で第３証明情報検証処理が完了する。
グループ証明書生成部２２は、第３検証結果が偽の場合、処理を中止して検証が失敗した旨を利用者端末３０へ通知し、利用者端末３０はモニター等に表示し利用者に伝える。
【０１６７】
第３検証結果が真の場合、グループ証明書生成部２２は、利用者からのメンバー鍵の正当性を検証し、それに基づいたグループ証明書（Ａｉ，ｅｉ，Ｅｉ）を発行する。
まず以下の処理に従って、範囲Γのランダムな素数ｅｉを生成する。
（ｅｉの生成処理）
グループ証明書生成部２２は、システムパラメータを入力とし、０〜２ν２−１の範囲の乱数ｒを生成する。また、グループ証明書生成部２２は、乱数ｒに付す正負の符号をランダムに選択する。
【０１６８】
しかる後、グループ証明書生成部２２は、選択した符号に従って次式のいずれかを計算する。
【０１６９】
２ν１  ＋ｒ
２ν１  −ｒ
この計算結果が素数でなければ、再度、乱数ｒの生成から処理をし直す。一方、計算結果が素数ならばその素数をｅｉとして出力する。
【０１７０】
上記ｅｉが生成できたら、続いてグループ証明書の生成処理を実行する。
【０１７１】
（グループ証明書生成処理）
グループ証明書生成部２２は、コミットメント値Ｃ２が平方剰余であるかを検証する。Ｃ２が平方剰余であれば、グループ証明書生成部２２は、以下のように、σｉ，Ａｉ，Ｅｉを計算する。
σｉ＝ｅｉ−１  （ｍｏｄ  ２ｍ）
Ａｉ＝（Ｃ２・ａ０）σｉ  （ｍｏｄ  ｎ）
Ｅｉ＝ｇｅｉ  （ｍｏｄ  ｎ）
しかる後、グループ証明書生成部２２は、得られた（Ａｉ，ｅｉ，Ｅｉ）をグループ証明書として出力し、利用者端末３０へ送信する（ＳＴ２５）。
以上により、グループ証明書生成処理が完了する。
【０１７２】
利用者端末３０は、グループ証明書を受信すると、グループ証明書検証部３８において、以下の処理に従ってグループ証明書（Ａｉ，ｅｉ，Ｅｉ）の正当性を検証する。
【０１７３】
（グループ証明書検証処理）
グループ証明書検証部３８は、以下のように、ｂ１，ｂ２を計算し、ｂ１＝ｂ２となるかを検証する。
ｂ１＝Ｃ２・ａ０  （ｍｏｄ  ｎ）
ｂ２＝Ａｉｅｉ  （ｍｏｄ  ｎ）
ｂ１＝ｂ２となる場合には正当であるので、グループ証明書検証部３８は、グループ証明書として（Ａｉ，ｅｉ，Ｅｉ）を耐タンパー装置５０に格納し（ＳＴ２６）、完了通知（ａｃｋ）を属性発行管理サーバ１０に送信する（ＳＴ２７）。
【０１７４】
属性発行管理サーバ１０では、この完了通知により、利用者情報管理部２３がグループ証明書（Ａｉ，ｅｉ，Ｅｉ）を利用者管理情報記憶部１２に格納し、最終結果（ＯＫ／ＮＧ）を利用者端末３０に送信する（ＳＴ２８）。
【０１７５】
以上が終了すると、利用者が匿名でサービス提供者からサービスを受けられる準備が整う。
【０１７６】
次に、利用者がサービスを受ける場合の処理について、図８及び図９を用いて説明する。
利用者端末３０は、利用者の操作により、サービス要求部３９からサービス提供サーバ７０へアクセスし、サービス提供サーバ７０のサービス部７５が提供するメニューを受信し（ＳＴ３１）、このメニューを表示する。
【０１７７】
利用者端末３０は、利用者の操作により、メニューからサービスを選択し、選択内容をサービス要求としてサービス提供サーバ７０へ返す（ＳＴ３２）。
【０１７８】
なお、利用者端末３０とサービス提供サーバ７０との間の通信は、利用者の匿名性を出来るだけ確保するため、クライアント認証の無いサーバ認証によるＳＳＬなどのセキュアな通信を行うものとする。
【０１７９】
また、サービス要求部３９によるサービスの選択は、例えば利用者端末３０にあるＷｅｂブラウザを用いるＷｅｂサービスにより提供されても良い。
【０１８０】
この利用者端末３０とサービス提供サーバ７０との間の通信は、日時（Ｔｉｍｅｓｔａｍｐ）、セッションＩＤにより管理され、ログとして保存される。
【０１８１】
さて、サービス提供サーバ７０は、サービス要求に含まれるグループＩＤにより、提供するサービスが何であるかを判断し、利用者が権限グループに所属していることを確認するため、テンポラリなメッセージ（ｍｓｇ）を利用者端末３０へ返す（ＳＴ３３）。
【０１８２】
利用者端末３０は、メッセージを受信すると、グループ署名生成部４０において、以下の手順のようにグループ署名を生成する。
（グループ署名生成処理）
グループ署名生成部４０は、証明書要求を耐タンパー装置５０へ入力する（ＳＴ３４）。耐タンパー装置５０では、この証明書要求により、証明書出力部６１が耐タンパー性メモリ５１から読出したグループ証明書（Ａｉ，ｅｉ，Ｅｉ）をグループ署名生成部４０に出力する（ＳＴ３５）。
【０１８３】
また、グループ署名生成部４０は、ｚ生成要求を耐タンパー装置５０のｚ３生成部６２へ入力する（ＳＴ３６）。
【０１８４】
ｚ３生成部６２は、ｚ生成要求により、以下のように乱数ｒ２を生成し、この乱数ｒ２に基づいて、パラメータｚを計算する。
【０１８５】
ｒ２：  −２（ζ２＋１）＜ｒ２＜２（ζ２＋１）
ｚ＝ａｒ２  （ｍｏｄ  ｎ）
しかる後、ｚ３生成部６２は、パラメータｚをグループ署名生成部４０に出力する（ＳＴ３７）。
【０１８６】
グループ署名生成部４０は、乱数ｗ  （０＜ｗ＜ｎ）  を生成し、この乱数ｗに基づいて、（Ｔ１，Ｔ２，Ｔ３）  を以下のように計算する。
【０１８７】
Ｔ１＝Ａｉ・ｙｗ  （ｍｏｄ  ｎ）
Ｔ２＝ｇｗ  （ｍｏｄ  ｎ）
Ｔ３＝Ｅｉ・ｈｗ  （ｍｏｄ  ｎ）
また、グループ署名生成部４０は、３つの乱数（ｒ１，ｒ３，ｒ４）を以下の条件で生成する。
ｒ１：−２（ζ１＋１）  ＜  ｒ１ ＜  ２（ζ１＋１）
ｒ３：−２（ζ３＋１）  ＜  ｒ３ ＜  ２（ζ３＋１）
ｒ４：−２（ζ４＋１）  ＜  ｒ４ ＜  ２（ζ４＋１）
さらに、グループ署名生成部４０は、後述するハッシュ値ｃに用いる値（ｄ１，ｄ２，ｄ３，ｄ４）を以下のように計算する。
ｄ１＝Ｔ１ｒ１（ｚｙｒ３）−１  （ｍｏｄ  ｎ）
ｄ２＝Ｔ２ｒ１（ｇｒ３）−１  （ｍｏｄ  ｎ）
ｄ３＝ｇｒ４  （ｍｏｄ  ｎ）
ｄ４＝ｇｒ１・ｈｒ４（ｍｏｄ  ｎ）
しかる後、グループ署名生成部４０は、ハッシュ値ｃを次式のように計算する。
ｃ＝  Ｈ（ｇ‖ｈ‖ｙ‖ａ０‖ａ‖Ｔ１‖Ｔ２‖Ｔ３‖ｄ１‖ｄ２‖ｄ３‖ｄ４‖ｍｓｇ  ）
続いて、グループ署名生成部４０は、このハッシュ値ｃを用い、（ｓ１，ｓ３，ｓ４）を以下のように計算する。
【０１８８】
ｓ１＝ｒ１−ｃ（ｅｉ−２ν１）
ｓ３＝ｒ３−ｃ・ｅｉ・ｗ
ｓ４＝ｒ４−ｃ・ｗ
さらに、グループ署名生成部４０は、ｓ２生成要求及びハッシュ値ｃを耐タンパー装置５０に入力する（ＳＴ３８）。
【０１８９】
耐タンパー装置５０では、ｓ２生成部６３がこのハッシュ値ｃに基づいて、次式のようにパラメータｓ２を生成し、このｓ２をグループ署名生成部４０に出力する（ＳＴ３９）。
【０１９０】
ｓ２＝ｒ２−ｃ（ｘｉ−２λ１）
以上により、グループ署名生成部４０は、得られた（ｃ，ｓ１，ｓ２，ｓ３，ｓ４，Ｔ１，Ｔ２，Ｔ３）をグループ署名として出力する。
【０１９１】
グループ署名（ｃ，ｓ１，ｓ２，ｓ３，ｓ４，Ｔ１，Ｔ２，Ｔ３）は、サービス提供サーバ７０へ送信される（ＳＴ４０）。
サービス提供サーバ７０では、グループ署名検証部７６により、受信したグループ署名が正当であるか検証する。検証処理は、以下の手順で行う。
【０１９２】
（グループ署名検証処理）
グループ署名検証部７６は、受信したグループ署名（ｃ，ｓ１，ｓ２，ｓ３，ｓ４，Ｔ１，Ｔ２，Ｔ３）、生成したメッセージ（ｍｓｇ）、グループ公開鍵を入力とし、以下のように、ｓ１，ｓ２，ｓ３，ｓ４の範囲を検証する。範囲から逸脱したものが１つでもあれば、偽（ｆａｌｓｅ）を示す検証結果を出力する。
範囲検証：  −２（ζ１＋２）＜ｓ１＜２（ζ１＋２）
範囲検証：  −２（ζ２＋２）＜ｓ２＜２（ζ２＋２）
範囲検証：  −２（ζ３＋２）＜ｓ３＜２（ζ３＋２）
範囲検証：  −２（ζ４＋２）＜ｓ４＜２（ζ４＋２）
グループ署名検証部７６は、各ｓ１〜ｓ４の検証結果が真の場合、後述するハッシュ値ｃ’に用いる値（ｄ１’，ｄ２’，ｄ３’，ｄ４’）を以下のように計算する。
【０１９３】
【数５】
2004320562.tif 000009
【０１９４】
次に、グループ署名検証部７６は、これらｄ１’〜ｄ４’に基づいて、次式のようにハッシュ値ｃ’を計算する。
ｃ’＝Ｈ（ｇ‖ｈ‖ｙ‖ａ０‖ａ‖Ｔ１‖Ｔ２‖Ｔ３‖ｄ１’‖ｄ２’‖ｄ３’‖ｄ４’‖ｍｓｇ  ）
しかる後、グループ署名検証部７６は、ｃ＝ｃ’の場合には真（ｔｒｕｅ）を検証結果（ａｎｓ）として出力し、他の場合には偽（ｆａｌｓｅ）を検証結果（ａｎｓ）としてアクセス制御部７７に出力する一方、利用者端末３０へ送信する（ＳＴ４１）。
利用者端末３０は、受信した検証結果が偽の場合には処理を中止し、真の場合には、サービス受信部４１が、サービスの提供要求をサービス提供サーバ７０へ送信する（ＳＴ４２）。
【０１９５】
サービス提供サーバ７０は、提供要求を受けると、アクセス制御部７７が検証結果の真である旨を確認し、サービスを利用者端末３０へ送信する（ＳＴ４３）。
【０１９６】
また、サービス提供サーバ７０は、アクセス制御部７７が、グループＩＤ，ｍｓｇ，Ｔｉｍｅｓｔａｍｐ，セッションＩＤ，グループ署名といった情報をログとしてアクセスログ記憶部７２に格納しておく。
【０１９７】
最後に、利用者への提供サービスに対し、例えば決済する場合又は不正を確認する場合のように、利用者を開示する場合の処理について、図１０及び図１１を用いて説明する。ここで、利用者を開示する処理は、アクセスログに含まれるグループ署名からグループ証明書の一部Ａｉを抽出する処理に相当する。
【０１９８】
なお、サービス提供サーバ７０と属性発行管理サーバ１０との通信は、ＳＳＬなどのセキュアな通信が行われることが好ましい。
【０１９９】
属性発行管理サーバ１０は、サービス提供サーバ７０から、アクセスログを受け取り（ＳＴ５１）、ログ送信完了をサービス提供サーバ７０に通知した後（ＳＴ５２）、グループ署名のオープン処理を行う。
【０２００】
（グループ署名オープン処理）
グループ署名オープン部２４は、以下のように、ｂを計算し、このｂに基づいて、Ａｉを計算する。
ｂ＝Ｔ２ｘ  （ｍｏｄ  ｎ）
Ａｉ＝Ｔ１・ｂ−１  （ｍｏｄ  ｎ）
しかる後、グループ署名オープン部２４は、得られたＡｉから利用者情報を抽出し、この利用者情報を決済処理部２５に送出する。
【０２０１】
決済処理部２５は、この利用者情報に基づいて、決済要求を決済機関装置９０に送信する（ＳＴ５３）。決済機関装置９０は、この決済要求に従って決済処理を実行し、決済結果を属性発行管理サーバ１０に返信する（ＳＴ５４）。
【０２０２】
属性発行管理サーバ１０では、決済処理部２５がこの決済結果を受けると、利用者を特定できる情報を削除して利用者を匿名とした決済結果（例、ＯＫ／ＮＧ）を作成し、この匿名の決済結果をサービス提供サーバ７０に通知する（ＳＴ５５）。
【０２０３】
サービス提供サーバ７０では、決済管理部７９がこの決済結果に従って決済完了を確認すると、決済情報記憶部７３内の送信完了ログに対し、決済完了の旨を書込んで決済処理を終了する。
但し、ステップＳＴ５５で受けた決済結果が決済失敗を示すとき、決済管理部７９は、送信完了ログを指定して決済失敗を開示要求部８０に通知する。
開示要求部８０は、この通知により、送信完了ログを指定して開示要求を属性発行管理サーバ１０に送信する（ＳＴ５６）。属性発行管理サーバ１０では、グループ署名オープン部２４が前述同様に、送信完了ログから利用者情報を抽出し、この利用者情報をサービス提供サーバ７０に返信する（ＳＴ５７）。
【０２０４】
サービス提供サーバ７０では、この利用者情報を決済管理部７９が決済情報記憶部７３に格納する。以下、この利用者情報は、サービス提供者の図示しない端末等から読出され、適宜、決済の催促などに用いられる。
上述したように本実施形態によれば、グループ署名方式を用いて利用者が権限グループに所属する旨をサービス提供サーバ７０に証明することにより、利用者の個人情報をサービス提供者が管理する必要が無いので、サービス提供者による個人情報の管理の負担を軽減できると共に、権限の証明に不要な個人情報をサービス提供者から保護することができる。
【０２０５】
これに加え、利用者端末３０に保持される耐タンパー装置５０を設け、この耐タンパー装置５０内で秘密情報としてのメンバー秘密鍵ｘｉを生成し、且つメンバー秘密鍵ｘｉによる演算を実行するので、利用者端末３０に秘密情報を漏洩させずに実現できる。さらに、秘密情報を漏洩させないため、例えば秘密情報のコピーを不可として不正な利用を阻止でき、セキュリティ性を向上させることができる。
【０２０６】
さらに、耐タンパー装置５０が着脱自在であるため、例えば会社の利用者端末３０１に装着してサービス提供を受けた後、耐タンパー装置５０を持ち帰り、自宅の利用者端末３０２にてサービス提供を受ける等というように、異なる利用者端末３０１，３０２でそれぞれサービス提供を受けることができるので、複数の利用者端末を所有する利用者に対し、利便性を向上させることができる。
【０２０７】
（他の実施形態）
なお、上記実施形態では、第２証明情報（ｐｒｏｏｆＢ）と第３証明情報（ｐｒｏｏｆＣ）とを別々に送信した場合について説明したが、これに限らず、図１２に示すように、図７のステップＳＴ１９，ＳＴ２０を省略し、図７のステップＳＴ２４において、第２証明情報（ｐｒｏｏｆＢ）を併せて送信するステップＳＴ２４ｘを設け、第２証明情報（ｐｒｏｏｆＢ）と第３証明情報（ｐｒｏｏｆＣ）とを同時に送信する場合であっても、本発明を同様に実施して同様の効果を得ることができる。この場合、第２証明情報検証部２０による第２証明情報検証処理は、ステップＳＴ２４ｘにより第２証明情報（ｐｒｏｏｆＢ）を受信した後で行われることは言うまでもない。
【０２０８】
また、この場合、第２証明情報生成部３６及び第３証明情報生成部３７は、属性発行管理サーバ１０の段階的な検証による中断が無く、第２証明情報と第３証明情報との生成処理を連続的に実行する。同様に、第２証明情報検証部２０及び第３証明情報検証部２１は、利用者端末３０の段階的な生成による中断が無く、第２証明情報と第３証明情報との検証処理を連続的に実行する。
【０２０９】
また、上記各実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク（フロッピー（登録商標）ディスク、ハードディスクなど）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤなど）、光磁気ディスク（ＭＯ）、半導体メモリなどの記憶媒体に格納して頒布することもできる。
【０２１０】
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
【０２１１】
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているＯＳ（オペレーティングシステム）や、データベース管理ソフト、ネットワークソフト等のＭＷ（ミドルウェア）等が本実施形態を実現するための各処理の一部を実行しても良い。
【０２１２】
さらに、本発明における記憶媒体は、コンピュータと独立した媒体に限らず、ＬＡＮやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
【０２１３】
また、記憶媒体は１つに限らず、複数の媒体から本実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
【０２１４】
尚、本発明におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、本実施形態における各処理を実行するものであって、パソコン等の１つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
【０２１５】
また、本発明におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
【０２１６】
なお、本願発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組合せてもよい。
【０２１７】
【発明の効果】
以上説明したように本発明によれば、利用者装置からの秘密情報の漏洩を阻止できる。また、複数の利用者端末を所有する利用者に対し、利便性を向上できる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係る匿名認証システムの構成を示す模式図である。
【図２】同実施形態における属性発行管理サーバの構成を示す模式図である。
【図３】同実施形態における利用者端末の構成を示す模式図である。
【図４】同実施形態における耐タンパー装置の構成を示す模式図である。
【図５】同実施形態におけるサービス提供サーバの構成を示す模式図である。
【図６】同実施形態における動作を説明するための模式図である。
【図７】同実施形態における動作を説明するためのシーケンス図である。
【図８】同実施形態における動作を説明するための模式図である。
【図９】同実施形態における動作を説明するためのシーケンス図である。
【図１０】同実施形態における動作を説明するための模式図である。
【図１１】同実施形態における動作を説明するためのシーケンス図である。
【図１２】本発明の他の実施形態を説明するためのシーケンス図である。
【符号の説明】
属性発行管理サーバ１０、システム情報記憶部１１、利用者管理情報記憶部１２、パラメータ生成部１３、グループ鍵生成部１４、管理受付部１５、要求受付部１６、チャレンジ生成部１７、第１証明情報検証部１８、メンバー秘密鍵乱数生成部１９、第２証明情報検証部２０、第３証明情報検証部２１、グループ証明書生成部２２、利用者情報管理部２３、グループ署名オープン部２４、決済処理部２５、利用者端末３０、メモリ３１、参加要求部３２、メンバー鍵初期情報生成部３３、第１証明情報生成部３４、乱数入力部３５、第２証明情報生成部３６、第３証明情報生成部３７、グループ証明書検証部３８、サービス要求部３９、グループ署名生成部４０、サービス受信部４１、耐タンパー装置５０、耐タンパー性メモリ５１、Ｃ１’生成部５２、ｚ１生成部５３、ｓ１生成部５４、Ｃ２生成部５５、ｙｚ生成部５６、ｓ３生成部５７、ｚ２生成部５８、ｓ４生成部５９、情報書込部６０、証明書出力部６１、ｚ３生成部６２、ｓ２生成部６３、サービス提供サーバ７０、システム情報記憶部７１、アクセスログ記憶部７２、決済情報記憶部７３、管理申込部７４、サービス部７５、グループ署名検証部７６、アクセス制御部７７、ログ送信部７８、決済管理部７９、開示要求部８０、決済機関装置９０。
【図１】
2004320562.tif 000010
【図２】
2004320562.tif 000011
【図３】
2004320562.tif 000012
【図４】
2004320562.tif 000013
【図５】
2004320562.tif 000014
【図６】
2004320562.tif 000015
【図７】
2004320562.tif 000016
【図８】
2004320562.tif 000017
【図９】
2004320562.tif 000018
【図１０】
2004320562.tif 000019
【図１１】
2004320562.tif 000020
【図１２】
2004320562.tif 000021