(57)【特許請求の範囲】
【請求項１】
ユーザから入力された文書に対する署名データを生成して出力するユーザ装置と、前記ユーザ装置によって生成された前記署名データが正当であるか否かを検証してその結果を出力する検証装置とが相互に接続されて構成された匿名認証署名システムであって、
前記ユーザ装置が、
あらかじめ与えられた各々の第１パラメータである第１のシステムパラメータ、グループ公開鍵、開示公開鍵、ユーザ公開鍵、ユーザ秘密鍵、メンバー証明書、および属性証明書を記憶している第１の記憶部と、
ユーザからの文書と前記ユーザが開示しようとする属性の入力を受け付ける入出力部と、
入力された前記文書と前記開示しようとする属性、および前記各々の第１パラメータから暗号文を作成する暗号文作成手段と、
作成された前記暗号文からゼロ知識署名文を作成する署名文作成手段と、
前記暗号文および前記ゼロ知識署名文とを前記署名データとして出力する署名出力手段とを有し、
前記検証装置が、
あらかじめ与えられた各々の第２パラメータである第２のシステムパラメータ、前記開示公開鍵、前記グループ公開鍵および前記属性証明書を記憶している第２の記憶部と、
前記ユーザ装置からの前記文書および前記署名データの入力を受け付ける入力受け取り手段と、
前記各々の第２パラメータを用いて前記署名データに含まれるゼロ知識証明文を検証してこのゼロ知識証明文が受理できるか否かを判断し、受理できると判断されれば前記署名データを受理するゼロ知識証明検証手段とを有し、
前記ユーザ秘密鍵および前記属性証明書は同一の冪を使って作成されたものであり、
前記ユーザ装置の前記署名文作成手段は、前記ユーザ公開鍵の一部と開示されなかった前記属性に対応する前記属性証明書の一部とをかけ合わせ、このかけ合わせたデータが事前に定められた式を満たす事を示す前記ゼロ知識署名文を作成することを特徴とする匿名認証署名システム。
【請求項２】
前記ユーザ装置の前記第１の記憶部は、あらかじめ与えられた各々のパラメータであるグループ公開鍵およびグループ秘密鍵を記憶していて、
前記ユーザ装置の前記暗号文作成手段は、前記属性証明書の中で前記開示しようとする属性に対応するデータと、前記ユーザ公開鍵、前記ユーザ秘密鍵、前記グループ公開鍵、および前記グループ秘密鍵から前記暗号文を作成することを特徴とする、請求項１に記載の匿名認証署名システム。
【請求項３】
前記ユーザ装置の前記署名文作成手段は、前記暗号文作成手段が作成した暗号文が前記ユーザ公開鍵に含まれるデータの暗号文であることに対するゼロ知識署名文を作成することを特徴とする、請求項１に記載の匿名認証署名システム。
【請求項４】
前記検証装置の前記入力受け取り手段は、前記ユーザが開示する属性のデータの入力を受け付け、
前記検証装置の前記ゼロ知識証明検証手段は、このユーザが開示する属性と前記各々のパラメータとを用いて前記署名データに含まれる前記ゼロ知識証明文を検証することを特徴とする、請求項１に記載の匿名認証署名システム。
【請求項５】
前記検証装置の前記第２の記憶部は、グループ公開鍵をあらかじめ与えられた前記パラメータとして記憶していて、
前記検証装置の前記ゼロ知識証明検証手段は、前記ユーザが開示した属性に対応するデータと、前記ユーザ公開鍵、前記グループ公開鍵、および開示公開鍵から前記ゼロ知識証明文を検証することを特徴とする、請求項４に記載の匿名認証署名システム。
【請求項６】
前記ユーザ装置および前記検証装置と相互に接続された属性認証装置を有し、
前記属性認証装置は、前記ユーザに与えられた属性に対応するデータとグループ秘密鍵および前記ユーザ装置に依存して決まるデータに基づいて前記属性証明書を生成する属性認証部を有することを特徴とする、請求項１に記載の匿名認証署名システム。
【請求項７】
前記ユーザ装置、前記検証装置および前記属性認証装置と相互に接続された属性検証装置を有し、
前記属性検証装置は、前記ユーザに与えられた属性に対応するデータと前記ユーザの属するグループに対応するデータから前記属性証明書が正当なものであるか否かを検証する属性検証部を有することを特徴とする、請求項６に記載の匿名認証署名システム。
【請求項８】
ユーザから入力された文書に対する署名データを生成して出力するユーザ装置であって、
あらかじめ与えられた各々のパラメータであるシステムパラメータ、グループ公開鍵、開示公開鍵、ユーザ公開鍵、ユーザ秘密鍵、メンバー証明書、および属性証明書を記憶している記憶部と、
ユーザからの文書と前記ユーザが開示しようとする属性の入力を受け付ける入出力部と、
入力された前記文書と前記開示しようとする属性、および前記各々のパラメータから暗号文を作成する暗号文作成手段と、
作成された前記暗号文からゼロ知識署名文を作成する署名文作成手段と、
前記暗号文および前記ゼロ知識署名文とを前記署名データとして出力する署名出力手段とを有し、
前記ユーザ公開鍵および前記属性証明書は同一の冪を使って作成されたものであり、
前記署名文作成手段は、前記ユーザ公開鍵の一部と開示されなかった前記属性に対応する前記属性証明書の一部とをかけ合わせ、このかけ合わせたデータが事前に定められた式を満たす事を示す前記ゼロ知識署名文を作成することを特徴とするユーザ装置。
【請求項９】
ユーザ装置によって生成された署名データが正当であるか否かを検証してその結果を出力する検証装置であって、
あらかじめ与えられた各々のパラメータであるシステムパラメータ、開示公開鍵、グループ公開鍵および属性証明書を記憶している記憶部と、
ユーザからの文書および前記署名データの入力を受け付ける入力受け取り手段と、
前記各々のパラメータを用いて前記署名データに含まれるゼロ知識証明文を検証してこのゼロ知識証明文が受理できるか否かを判断し、受理できると判断されれば前記署名データを受理するゼロ知識証明検証手段とを有し、
前記ユーザ公開鍵および前記属性証明書は同一の冪を使って作成されたものであることを特徴とする検証装置。
【請求項１０】
ユーザから入力された文書に対する署名データを生成して出力する署名方法であって、
あらかじめ与えられた各々のパラメータであるシステムパラメータ、グループ公開鍵、開示公開鍵、ユーザ公開鍵、ユーザ秘密鍵、メンバー証明書、および前記ユーザ秘密鍵と同一の冪を使って作成された属性証明書を事前に記憶し、
ユーザからの文書と前記ユーザが開示しようとする属性の入力を受け付け、
入力された前記文書と前記開示しようとする属性、および前記各々のパラメータから暗号文を作成し、
前記ユーザ公開鍵の一部と開示されなかった前記属性に対応する前記属性証明書の一部とをかけ合わせ、このかけ合わせたデータが事前に定められた式を満たす事を示すゼロ知識署名文を作成し、
前記暗号文および前記ゼロ知識署名文とを前記署名データとして出力する
ことを特徴とする署名方法。
【請求項１１】
ユーザ装置によって生成された署名データが正当であるか否かを検証してその結果を出力する検証方法であって、
あらかじめ与えられた各々のパラメータであるシステムパラメータ、開示公開鍵、グループ公開鍵およびユーザ秘密鍵と同一の冪を使って作成された属性証明書を事前に記憶し、
ユーザからの文書および前記署名データの入力を受け付け、
前記各々のパラメータを用いて前記署名データに含まれるゼロ知識証明文を検証してこのゼロ知識証明文が受理できるか否かを判断し、
受理できると判断されれば前記署名データを受理する
ことを特徴とする検証方法。
【請求項１２】
ユーザから入力された文書に対する署名データを生成して出力する署名プログラムであって、
あらかじめ与えられた各々のパラメータであるシステムパラメータ、グループ公開鍵、開示公開鍵、ユーザ公開鍵、ユーザ秘密鍵、メンバー証明書、および前記ユーザ秘密鍵と同一の冪を使って作成された属性証明書が事前に記憶されているコンピュータに、
ユーザからの文書と前記ユーザが開示しようとする属性の入力を受け付ける手順と、
入力された前記文書と前記開示しようとする属性、および前記各々のパラメータから暗号文を作成する手順と、
前記ユーザ公開鍵の一部と開示されなかった前記属性に対応する前記属性証明書の一部とをかけ合わせ、このかけ合わせたデータが事前に定められた式を満たす事を示すゼロ知識署名文を作成する手順と、
前記暗号文および前記ゼロ知識署名文とを前記署名データとして出力する手順と
を実行させることを特徴とする署名プログラム。
【請求項１３】
ユーザ装置によって生成された署名データが正当であるか否かを検証してその結果を出力する検証プログラムであって、
あらかじめ与えられた各々のパラメータであるシステムパラメータ、開示公開鍵、グループ公開鍵およびユーザ秘密鍵と同一の冪を使って作成された属性証明書が事前に記憶されているコンピュータに、
ユーザからの文書および前記署名データの入力を受け付ける手順と、
前記各々のパラメータを用いて前記署名データに含まれるゼロ知識証明文を検証してこのゼロ知識証明文が受理できるか否かを判断する手順と、
受理できると判断されれば前記署名データを受理する手順と
を実行させることを特徴とする検証プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、匿名認証署名システム、ユーザ装置、検証装置、署名方法、検証方法およびそれらのプログラムに関し、特に匿名認証証明書の生成と検証に必要な計算量を削減しうる匿名認証署名システム等に関する。
【背景技術】
【０００２】
匿名認証署名技術（Anonymous Credential）とは、とは、複数の属性を持つ匿名認証証明書と、これにより裏付けられた署名鍵とを権限者から与えられて所持するユーザ（署名者）が、これらを利用して与えられた文書に対して匿名認証証明書の属性を一部開示する署名を生成することができるという技術である。この署名からは開示された属性と、署名がある匿名認証証明書に基づく署名鍵で生成されたことしか分からない。【０００３】
この匿名認証署名技術を利用すれば、たとえばユーザがレンタカーを借りる場合、自らの「運転免許書を持っている」という属性のみを事業者であるレンタカー会社に開示し、時刻情報に署名する事で匿名のまま車を借りることができる。このユーザが借りたレンタカーで事故や犯罪事件を起こされたなどのように、該ユーザの属性を明確にする必要のある事態が生じた場合には、事業者は権限者（例えば警察や公安委員会）に問い合わせることによって、該ユーザの属性を特定できる。【０００４】
ユーザは、個人情報の漏洩などに対して敏感になっているので、事業者に対して開示する個人情報をできるだけ少なくしようとしている。また事業者は、個人情報の管理にかかるコストが増大しているので、保有するユーザの個人情報をできるだけ少なくしようとしている。そのため、匿名認証技術は、ユーザと事業者の両方に対して有用な個人情報の利用方法を提供することができるものとして期待されている。【０００５】
非特許文献１には、そのような匿名認証署名を実現する技術の一つである、カメニッシ−リジアンスカヤ（Camenisch-Lysyanskaya）署名について記載されている。ここで、各ユーザに割り振られている属性をχ［１］，…，χ［ｎ］とし、その中でユーザはχ［ｉ１］，…，χ［ｉｍ］を開示しつつも残りの属性χ［ｊ１］，…，χ［ｊｎ−ｍ］を隠して、匿名のまま署名データを生成する。ただしｎおよびｍは自然数であり、ｎ＞ｍである。ｉ１〜ｉｍは、１≦ｉ≦ｎを満たすｍ個の相異なる自然数の組である。ｊ１〜ｊｎ−ｍは、１≦ｊ≦ｎを満たしかつｉ１〜ｉｍに含まれないｎ−ｍ個の相異なる自然数の組である。【０００６】
各ユーザは自身の秘密鍵δと、属性χ［１］，…，χ［ｎ］に対するカメニッシ−リジアンスカヤ署名（β，Ｅ，κ）とを持つ。ここで（β，Ｅ，κ）は、下の数１に示す条件を満たすデータである。Ω，Φ，Ψ，Ｈ［１］，…，Ｈ［ｎ］，Ｎは公開情報であり、かつＮはＲＳＡモジュラス（RSA Modulus、ＲＳＡ＝Rivest, Shamir and Adleman）である。
【数１】
0005532048.tif 000002
【０００７】
ユーザはχ［ｉ１］，…，χ［ｉｍ］を公開し、前述の数１に示す条件を満たすデータ（δ，β，χ［ｊ１］，…，χ［ｊｎ−ｍ］）を知っている事を示す知識の署名文Ｓｉｇｎａｔｕｒｅを作成する（第１の方法）。【０００８】
他には、以下の方法でも匿名認証署名技術を実現できる。各ユーザは自身の持つ複数の秘密鍵の各々に対応したカメニッシ−リジアンスカヤ署名を持つ。この秘密鍵とカメニッシ−リジアンスカヤ署名の組を、秘密鍵（δ，χ［１］）に対するカメニッシ−リジアンスカヤ署名（β［１］，Ｅ［１］，κ［１］）、…（δ，χ［ｎ］）に対するカメニッシ−リジアンスカヤ署名（β［ｎ］，Ｅ［ｎ］，κ［ｎ］）とする。【０００９】
ユーザは属性の一部χ［ｉ１］，…，χ［ｉｍ］を公開し，（δ，χ［ｉ１］）に対するカメニッシ−リジアンスカヤ署名（β［１］，Ｅ［１］，κ［１］），…，  （δ，χ［ｉｍ］）に対するカメニッシ−リジアンスカヤ署名（β［ｎ］，Ｅ［ｎ］，κ［ｎ］）を全て知っている事を示す知識の署名文Ｓｉｇｎａｔｕｒｅを作る（第２の方法）。【００１０】
また、これに関連する技術文献としては、次の各々がある。特許文献１には、適切な保証人装置を介して特性を証明する証明書を発行してもらいこれを交換することにより、匿名で相互に交渉を行うことができるというサービス提供方法が記載されている。特許文献２には、証明書からユーザのプライバシ情報を取り除いた代替証明書を発行し、これを利用するという証明書検証システムが記載されている。特許文献３には、受信した属性証明書を変形もしくは暗号化して利用し、サーバはこれを検証することができるという属性認証システムが記載されている。非特許文献２には、カメニッシ−リジアンスカヤ署名方式と類似の署名方式の一例が記載されている。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００１−１８８７５７号公報
【特許文献２】特開２００５−１５９４６３号公報
【特許文献３】特開２００８−１３１０５８号公報
【非特許文献】
【００１２】
【非特許文献１】JanCamenisch, Anna Lysyanskaya: A Signature Scheme with Efficient Protocols. SCN2002: 268-289
【非特許文献２】JunFurukawa, Hideki Imai: An Efficient Group Signature Scheme from Bilinear Maps.ACISP 2005: 455-467.
【発明の概要】
【発明が解決しようとする課題】
【００１３】
背景技術で説明した２つの方法で、第１の方法ではｎ−ｍ個に比例する個数のデータ（δ，β，χ［ｊ１］，…，χ［ｊｎ−ｍ］）の知識を証明することになる。第２の方法では、ｍに比例する個数のデータ（β［１］，Ｅ［１］，κ［１］），…，（β［ｎ］，Ｅ［ｎ］，κ［ｎ］）の知識を証明することになる。【００１４】
いずれの方法も、ＲＳＡをベースにしているので、署名長が長い。そのため、１回あたりの冪乗剰余の計算に大量の計算を必要とする。証明すべきゼロ知識の個数だけ、この計算を行わなければならないので、署名文を生成する際の冪乗剰余の計算回数が、第１の方法ではｎ−ｍ、第２の方法ではｍに比例することになる。いずれにせよ、大量の計算を必要とすることには変わりはない。また、この問題を解決しうる構成は、前述の特許文献１〜３および非特許文献１〜２には記載されていない。【００１５】
本発明の目的は、署名文を生成する際の冪乗剰余の計算回数を少なくし、より少ない量の計算で匿名認証証明書の生成と検証を行うことを可能とする匿名認証署名システム、ユーザ装置、検証装置、署名方法、検証方法およびそれらのプログラムを提供することにある。
【課題を解決するための手段】
【００１６】
上記目的を達成するため、本発明に係る匿名認証署名システムは、ユーザから入力された文書に対する署名データを生成して出力するユーザ装置と、ユーザ装置によって生成された署名データが正当であるか否かを検証してその結果を出力する検証装置とが相互に接続されて構成された匿名認証署名システムであって、ユーザ装置が、あらかじめ与えられた各々の第１パラメータである第１のシステムパラメータ、グループ公開鍵、開示公開鍵、ユーザ公開鍵、ユーザ秘密鍵、メンバー証明書、および属性証明書を記憶している第１の記憶部と、ユーザからの文書とユーザが開示しようとする属性の入力を受け付ける入出力部と、入力された文書と開示しようとする属性、および各々の第１パラメータから暗号文を作成する暗号文作成手段と、作成された暗号文からゼロ知識署名文を作成する署名文作成手段と、暗号文およびゼロ知識署名文とを署名データとして出力する署名出力手段とを有し、検証装置が、あらかじめ与えられた各々の第２パラメータである第２のシステムパラメータ、開示公開鍵、グループ公開鍵および属性証明書を記憶している第２の記憶部と、ユーザ装置からの文書および署名データの入力を受け付ける入力受け取り手段と、各々の第２パラメータを用いて署名データに含まれるゼロ知識証明文を検証してこのゼロ知識証明文が受理できるか否かを判断し、受理できると判断されれば署名データを受理するゼロ知識証明検証手段とを有し、ユーザ秘密鍵および属性証明書は同一の冪を使って作成されたものであり、ユーザ装置の署名文作成手段は、ユーザ公開鍵の一部と開示されなかった属性に対応する属性証明書の一部とをかけ合わせ、このかけ合わせたデータが事前に定められた式を満たす事を示すゼロ知識署名文を作成することを特徴とする。
【００１７】
上記目的を達成するため、本発明に係るユーザ装置は、ユーザから入力された文書に対する署名データを生成して出力するユーザ装置であって、あらかじめ与えられた各々のパラメータであるシステムパラメータ、グループ公開鍵、開示公開鍵、ユーザ公開鍵、ユーザ秘密鍵、メンバー証明書、および属性証明書を記憶している記憶部と、ユーザからの文書とユーザが開示しようとする属性の入力を受け付ける入出力部と、入力された文書と開示しようとする属性、および各々のパラメータから暗号文を作成する暗号文作成手段と、作成された暗号文からゼロ知識署名文を作成する署名文作成手段と、暗号文およびゼロ知識署名文とを署名データとして出力する署名出力手段とを有し、ユーザ公開鍵および属性証明書は同一の冪を使って作成されたものであり、署名文作成手段は、ユーザ公開鍵の一部と開示されなかった属性に対応する属性証明書の一部とをかけ合わせ、このかけ合わせたデータが事前に定められた式を満たす事を示すゼロ知識署名文を作成することを特徴とする。
【００１８】
上記目的を達成するため、本発明に係る検証装置は、ユーザ装置によって生成された署名データが正当であるか否かを検証してその結果を出力する検証装置であって、あらかじめ与えられた各々のパラメータであるシステムパラメータ、開示公開鍵、グループ公開鍵および属性証明書を記憶している記憶部と、ユーザからの文書および署名データの入力を受け付ける入力受け取り手段と、各々のパラメータを用いて署名データに含まれるゼロ知識証明文を検証してこのゼロ知識証明文が受理できるか否かを判断し、受理できると判断されれば署名データを受理するゼロ知識証明検証手段とを有し、ユーザ秘密鍵および属性証明書は同一の冪を使って作成されたものであることを特徴とする。
【００１９】
上記目的を達成するため、本発明に係る署名方法は、ユーザから入力された文書に対する署名データを生成して出力する署名方法であって、あらかじめ与えられた各々のパラメータであるシステムパラメータ、グループ公開鍵、開示公開鍵、ユーザ公開鍵、ユーザ秘密鍵、メンバー証明書、およびユーザ秘密鍵と同一の冪を使って作成された属性証明書を事前に記憶し、ユーザからの文書とユーザが開示しようとする属性の入力を受け付け、入力された文書と開示しようとする属性、および各々のパラメータから暗号文を作成し、ユーザ公開鍵の一部と開示されなかった属性に対応する属性証明書の一部とをかけ合わせ、このかけ合わせたデータが事前に定められた式を満たす事を示すゼロ知識署名文を作成し、暗号文およびゼロ知識署名文とを署名データとして出力することを特徴とする。
【００２０】
上記目的を達成するため、本発明に係る検証方法は、ユーザ装置によって生成された署名データが正当であるか否かを検証してその結果を出力する検証方法であって、あらかじめ与えられた各々のパラメータであるシステムパラメータ、開示公開鍵、グループ公開鍵およびユーザ秘密鍵と同一の冪を使って作成された属性証明書を事前に記憶し、ユーザからの文書および署名データの入力を受け付け、各々のパラメータを用いて署名データに含まれるゼロ知識証明文を検証してこのゼロ知識証明文が受理できるか否かを判断し、受理できると判断されれば署名データを受理することを特徴とする。
【００２１】
上記目的を達成するため、本発明に係る署名プログラムは、ユーザから入力された文書に対する署名データを生成して出力する署名プログラムであって、あらかじめ与えられた各々のパラメータであるシステムパラメータ、グループ公開鍵、開示公開鍵、ユーザ公開鍵、ユーザ秘密鍵、メンバー証明書、およびユーザ秘密鍵と同一の冪を使って作成された属性証明書が事前に記憶されているコンピュータに、ユーザからの文書とユーザが開示しようとする属性の入力を受け付ける手順と、入力された文書と開示しようとする属性、および各々のパラメータから暗号文を作成する手順と、ユーザ公開鍵の一部と開示されなかった属性に対応する属性証明書の一部とをかけ合わせ、このかけ合わせたデータが事前に定められた式を満たす事を示すゼロ知識署名文を作成する手順と、暗号文およびゼロ知識署名文とを署名データとして出力する手順とを実行させることを特徴とする。
【００２２】
上記目的を達成するため、本発明に係る検証プログラムは、ユーザ装置によって生成された署名データが正当であるか否かを検証してその結果を出力する検証プログラムであって、あらかじめ与えられた各々のパラメータであるシステムパラメータ、開示公開鍵、グループ公開鍵およびユーザ秘密鍵と同一の冪を使って作成された属性証明書が事前に記憶されているコンピュータに、ユーザからの文書および署名データの入力を受け付ける手順と、各々のパラメータを用いて署名データに含まれるゼロ知識証明文を検証してこのゼロ知識証明文が受理できるか否かを判断する手順と、受理できると判断されれば署名データを受理する手順とを実行させることを特徴とする。
【発明の効果】
【００２３】
本発明は、上述したように同一の冪を使って作成されたユーザ公開鍵および属性証明書を用いて、ユーザが開示しようとする属性に対応して暗号文を作成し、その暗号文から属性証明書の一部とをかけ合わせ、このかけ合わせたデータが事前に定められた式を満たす事の知識の署名文であるゼロ知識署名文を作成するように構成したので、証明しなければならないデータの数を少なく済ませることができる。これによって、署名文を生成する際の冪乗剰余の計算回数を少なくし、より少ない量の計算で匿名認証証明書の生成と検証を行うことが可能であるという、優れた特徴を持つ匿名認証署名システム、ユーザ装置、検証装置、署名方法、検証方法およびそれらのプログラムを提供することができる。
【図面の簡単な説明】
【００２４】
【図１】本発明の実施形態に係る匿名認証署名システム全体の構成を示す説明図である。
【図２】図１に示した開示装置、ユーザ装置、検証装置として機能するコンピュータ装置のハードウェアとしての構成を示す説明図である。
【図３】図１で示したユーザ装置で動作する署名部の動作を示すフローチャートである。
【図４】図１で示した検証装置で動作する検証部の動作を示すフローチャートである。
【図５】図１で示した開示装置で動作する開示部の動作を示すフローチャートである。
【図６】本発明の第２の実施形態に係る匿名認証署名システムの全体の構成を示す説明図である。
【図７】図６で示した発行装置で動作するグループ鍵生成部の動作を示すフローチャートである。
【図８】図６で示した開示装置で動作する開示鍵生成部の動作を示すフローチャートである。
【図９】図６で示したユーザ装置で動作するユーザ装置鍵作成部の動作を示すフローチャートである。
【図１０】図６で示した発行装置とユーザ装置とで各々動作する発行部と所属部の動作を示すフローチャートである。
【図１１】図６で示した属性認証装置で動作する属性認証部の動作を示すフローチャートである。
【図１２】図６で示したユーザ装置で動作する検証部の動作を示すフローチャートである。
【発明を実施するための形態】
【００２５】
（第１の実施形態）
以下、本発明の第１の実施形態の構成について添付図１、２に基づいて説明する。
最初に、本実施形態の基本的な内容について説明し、その後でより具体的な内容について説明する。
本実施形態に係る匿名認証署名システム１は、ユーザから入力された文書に対する署名データを生成して出力するユーザ装置２２と、ユーザ装置によって生成された署名データが正当であるか否かを検証してその結果を出力する検証装置２３とが相互に接続されて構成された匿名認証署名システムである。ユーザ装置２２は、あらかじめ与えられた各々の第１パラメータである第１のシステムパラメータ、開示公開鍵、ユーザ公開鍵、ユーザ秘密鍵、メンバー証明書、および属性証明書を記憶している第１の記憶部１３と、ユーザからの文書とユーザが開示しようとする属性の入力を受け付ける入出力部１２と、入力された文書と開示しようとする属性、および各々の第１パラメータから暗号文を作成する暗号文作成手段２２１ａと、作成された暗号文からゼロ知識署名文を作成する署名文作成手段２２１ｂと、暗号文およびゼロ知識署名文とを署名データとして出力する署名出力手段２２１ｃとを有する。検証装置２３は、あらかじめ与えられた各々の第２パラメータである第２のシステムパラメータ、開示公開鍵、ユーザ公開鍵および属性証明書を記憶している第２の記憶部１３と、ユーザ装置からの文書および署名データの入力を受け付ける入力受け取り手段２３１ａと、各々の第２パラメータを用いて署名データに含まれるゼロ知識証明文を検証してこのゼロ知識証明文が受理できるか否かを判断し、受理できると判断されれば署名データを受理するゼロ知識証明検証手段２３１ｂとを有する。ここで、ユーザ公開鍵および属性証明書は同一の冪を使って作成されたものであり、ユーザ装置の署名文作成手段２２１ａは、ユーザ公開鍵の一部と開示されなかった属性に対応する属性証明書の一部とをかけ合わせ、このかけ合わせたデータが事前に定められた式を満たす事の知識の署名文を作成する。
【００２６】
ここで、ユーザ装置の記憶部１３は、あらかじめ与えられた各々のパラメータであるグループ公開鍵およびグループ秘密鍵を記憶していて、暗号文作成手段２２１ａは、属性証明書の中で開示しようとする属性に対応するデータと、ユーザ公開鍵、ユーザ秘密鍵、グループ公開鍵、およびグループ秘密鍵から暗号文を作成する。さらに、署名文作成手段２２１ｂは、暗号文作成手段が作成した暗号文がユーザ公開鍵に含まれるデータの暗号文であることに対するゼロ知識署名文を作成する。
【００２７】
また、検証装置の入力受け取り手段２３１ａは、ユーザが開示する属性のデータの入力を受け付け、ゼロ知識証明検証手段２３１ｂは、このユーザが開示する属性と各々のパラメータとを用いて署名データに含まれるゼロ知識証明文を検証する。さらに、記憶部１３は、グループ公開鍵をあらかじめ与えられたパラメータとして記憶していて、ゼロ知識証明検証手段２３１ｂは、ユーザが開示した属性に対応するデータと、ユーザ公開鍵、グループ公開鍵、およびグループ秘密鍵からゼロ知識証明文を検証する。
【００２８】
以上の構成を備えることにより、匿名認証署名システムは署名文を生成する際の冪乗剰余の計算回数を少なくし、より少ない量の計算で匿名認証証明書の生成と検証を行うことが可能となる。
以下、これをより詳細に説明する。
【００２９】
図１は、本発明の実施形態に係る匿名認証署名システム１全体の構成を示す説明図である。匿名認証署名システム１は、発行署名鍵に基づいて署名を生成するユーザ装置２２、生成された署名が特定の署名鍵によって生成されたことを検証する検証装置２３、および署名を行った人物を特定する開示装置２１が、ネットワーク３０によって相互に接続されて構成される。開示装置２１、ユーザ装置２２、検証装置２３は、いずれもコンピュータ装置である。
【００３０】
図２は、図１に示した開示装置２１、ユーザ装置２２、検証装置２３として機能するコンピュータ装置１０のハードウェアとしての構成を示す説明図である。コンピュータ装置１０は、コンピュータプログラムを実行する主体となるプロセッサである演算部１１と、データの入出力を行う入出力部１２と、コンピュータプログラムおよびデータを記憶する記憶部１３と、ネットワーク３０を介して他のコンピュータ装置とのデータ通信を行う通信部１４とを備える。
【００３１】
演算部１１で各々のコンピュータプログラムが実行されることにより、コンピュータ装置１０は図１に示す開示装置２１、ユーザ装置２２、検証装置２３の各々として機能する。即ち、開示装置２１の備える演算部１１では、開示部２１１が動作する。ユーザ装置２２１の備える演算部１１では、署名部２２１が動作する。検証装置２３の備える演算部１１では、検証部２３１が動作する。各々の機能手段は、各々のコンピュータ装置１０が備える記憶部１３に予め記憶されており、演算部１１に読み込まれて動作する。これらの各機能部の機能及び動作については後述する。
【００３２】
署名部２２１はさらに、暗号文Ｃｉｐｈｅｒを作成する暗号文作成手段２２１ａ、署名文Ｐｒｏｏｆを作成する署名文作成手段２２１ｂ、暗号文Ｃｉｐｈｅｒと署名文Ｐｒｏｏｆとを合わせて署名Ｓｉｇｎａｔｕｒｅを出力する署名出力手段２２１ｃといった機能手段に分かれる。また、検証部２３１は署名文Ｓｉｇｎａｔｕｒｅを入力として受け取る入力受け取り手段２３１ａと、ゼロ知識証明文を検証するゼロ知識証明検証手段２３１ｂとを備える。これらの各手段の機能及び動作についても後述する。
【００３３】
本実施形態では、匿名認証署名システム１を構成する全装置に予め周知され、各装置の記憶部１３に記憶されているデータをシステムパラメータという。より具体的には、ここでいうシステムパラメータとは、
（１）素数ｑ、
（２）位数ｑの群ＧＲＰ［１］の上の群演算を行う為に十分な情報、
（３）位数ｑの群ＧＲＰ［２］の上の群演算を行う為に十分な情報、
（４）位数ｑの群ＧＲＰ［３］の上の群演算を行う為に十分な情報、
（５）位数ｑの群ＧＲＰ’の上の群演算を行う為に十分な情報、
（６）ＧＲＰ［１］×ＧＲＰ［２］からＧＲＰ［３］への双線形写像ｅ：ＧＲＰ［１］×ＧＲＰ［２］→ＧＲＰ［３］を計算する為に十分な情報、
（７）ＧＲＰ’の生成元Θ、
以上の各々である。
【００３４】
安全性上の観点から言えば、ＧＲＰ［１］、ＧＲＰ［２］、ＧＲＰ［３］上の離散対数問題を解くことが困難である事が望ましい。このような群の例として例えば楕円曲線群ないしその素数位数部分群がある。楕円曲線群は必ずＹ＾２＝Ｘ＾３＋ａＸ＋（ｂ  ｍｏｄ  ｐ）という代数方程式により特徴づけられるので、（ａ，ｂ，ｐ）さえあれば楕円曲線群上の群演算を行う事ができる。楕円曲線群の素数位数部分群を使う場合は、その部分群の生成元も必要である。なお、本明細書では、数式以外の行ではたとえば「Ｙの２乗」を「Ｙ＾２」などと表記する。
【００３５】
また双線形写像ｅとしては、例えばＷｅｉｌペアリングやＴａｔｅペアリングを用いる事ができる。安全性上の観点から言えば、ＧＲＰ’上のＤＤＨ問題（Computational Diffie-Hellman）が困難である事が望ましい。このような群の例として例えば楕円曲線群、巡回群、ないしそれらの素数位数部分群がある。
【００３６】
開示装置２１には、これらのシステムパラメータに加えて、公開鍵および秘密鍵が付与されている。これらをそれぞれ開示装置公開鍵、開示装置秘密鍵という。開示装置公開鍵および開示装置秘密鍵は事前に生成され、開示装置２１の記憶部１３に記憶されている。また開示装置公開鍵は予めユーザ装置２２にも配布され、ユーザ装置２２の記憶部１３にも記憶されている。本実施形態では、開示装置公開鍵はＧＲＰ’の２元Γ，Λの組で、開示装置秘密鍵はＺ／ｑＺの２元γ，λの組であり、数２を満たすものを用いる。
【数２】
0005532048.tif 000003
【００３７】
ユーザ装置２２には、前述のシステムパラメータに加えて、公開鍵および秘密鍵が付与されている。これらをそれぞれユーザ装置公開鍵、ユーザ装置秘密鍵という。ユーザ装置公開鍵およびユーザ装置秘密鍵は事前に生成され，ユーザ装置２２の記憶部１３に記憶されている。また開示装置２１は各ユーザ装置２２のユーザ装置公開鍵をすべて知っており、各ユーザ装置２２のＩＤとそのユーザ装置２２のユーザ装置公開鍵との組からなるリスト２１２が開示装置２１の記憶部１３に記憶されている。本実施形態では、ユーザ装置公開鍵はＧＲＰ’の元Δで，ユーザ装置秘密鍵はＺ／ｑＺの元δであり、数３を満たすものを用いる。
【数３】
0005532048.tif 000004
【００３８】
また、本実施形態では、ユーザ装置２２（を管理している個人・団体）からなる何らかのグループが運営されており、このグループには固有の公開鍵が付与されている。この公開鍵をグループ公開鍵という。グループ公開鍵は事前に各ユーザ装置２２に配布され、ユーザ装置２２の記憶部にも記憶されている。以下、説明を簡単にするため、グループの数が一つであるものとして説明を行うが、グループが複数存在する場合も同様である。
【００３９】
本実施形態では、グループ公開鍵はＧＲＰ［１］の３元Φ，Ψ，Ω、ＧＲＰ［２］の２元Υ，Πからなる組である。πは数４を満たす元とであり、このπがグループ秘密鍵である。
【数４】
0005532048.tif 000005
【００４０】
グループに属しているユーザ装置２２には、グループに属している事を証明する情報が付与されている。この情報をメンバー証明書という。本実施形態では、メンバー証明書はＺ／ｑＺの２元β，κ，およびＧＲＰ［１］の元Ｅからなる組で、数５を満たすものを用いる。ここでρ＝π＋κである。
【数５】
0005532048.tif 000006
【００４１】
またグループに属している各ユーザ装置２２には、そのユーザ装置２２（を管理している個人もしくは団体）の属性χ［１］，…，χ［ｎ］が付与されており、さらにそれらの属性を証明する情報が付与されている。この情報を属性証明書という。この属性証明書に対して付与されている具体的な属性は、たとえば名前、性別、年齢、住所、電話番号、運転免許証の有無、クレジットカードの加入状況、年金情報などが考えられる。
【００４２】
属性証明書はこれらの属性に依存して作られ、従ってｎ個の属性が付与されているユーザ装置２２にはｎ個の属性証明書が付与されることになる。本実施形態では、属性は任意のビット列として表される。ユーザ装置２２のメンバー証明書が（β，κ，Ｅ）である場合、そのユーザ装置２２の属性χ［ｉ］に対応する属性証明書Ｇ［ｉ］はＧＲＰ［１］の元であり、数６を満たすものである。ここでＨａｓｈはＧＲＰ［１］に値をとるハッシュ関数であり、ρ＝π＋κである。
【数６】
0005532048.tif 000007
【００４３】
本実施形態では、グループに属しているユーザ装置２２しか使う事ができないので、以下とくに断りがなければ、ユーザ装置２２はグループに属していて、メンバー証明書（β，κ，Ｅ）が予め与えられているものとする。
【００４４】
ユーザ装置２２は、入出力部１２を介して文書Ｍが入力されると、署名部２２１を実行し、この文書Ｍに対する署名文Ｓｉｇｎａｔｕｒｅを作成する。署名部２２１に対しては、文書Ｍと、ユーザが開示しようとする属性χ［ｉ１］，…，χ［ｉｍ］が入力される。
【００４５】
ここで、各ユーザに割り振られている全ての属性をχ［１］，…，χ［ｎ］とし、その中でユーザはχ［ｉ１］，…，χ［ｉｍ］を開示しつつも残りの属性χ［ｊ１］，…，χ［ｊｎ−ｍ］を隠そうとしている。ただしｎおよびｍは自然数であり、ｎ＞ｍである。ｉ１〜ｉｍは、１≦ｉ≦ｎを満たすｍ個の相異なる自然数の組である。ｊ１〜ｊｎ−ｍは、１≦ｊ≦ｎを満たしかつｉ１〜ｉｍに含まれないｎ−ｍ個の相異なる自然数の組である。ユーザ装置２２に付与されている属性の中でいずれの属性をχ［ｉ１］，…，χ［ｉｍ］として開示するかは、各々のユーザが任意に決定することができる。
【００４６】
生成された署名文Ｓｉｇｎａｔｕｒｅは文書Ｍおよびχ［ｉ１］，…，χ［ｉｍ］とともに、検証装置２３に送られる。検証装置２３は検証部２３１を実行して、この署名文Ｓｉｇｎａｔｕｒｅが正当な方法で作成されたか否か、即ち文書Ｍに対する署名文Ｓｉｇｎａｔｕｒｅが属性χ［ｉ１］，…，χ［ｉｍ］を持つ事が認証されているユーザ装置２２により作成されたか否かを確認する。
【００４７】
また、文書Ｍと署名文Ｓｉｇｎａｔｕｒｅは必要に応じて開示装置２１にも送られる。開示装置２１は、開示部２１１を実行して署名文を作成した署名者を特定することができる。
【００４８】
図３は、図１で示したユーザ装置２２で動作する署名部２２１の動作を示すフローチャートである。まず署名部２２１の暗号文作成手段２２１ａは、ユーザ装置２２の入出力部１２を介して、文書Ｍとユーザが開示しようとする属性χ［ｉ１］，…，χ［ｉｍ］を入力として受け取る（ステップＳ４１）。暗号文作成手段２２１ａは同時に、予め与えられているシステムパラメータ、グループ公開鍵ｉｐｋ＝（Φ，Ψ，Ω，Υ，Π）、開示公開鍵ｏｐｋ＝（Γ，Λ）、ユーザ装置公開鍵Δ、ユーザ装置秘密鍵δ、メンバー証明書（β，κ，Ｅ）、属性証明書Ｇ［ｉ１］，…，Ｇ［ｉｍ］も、ユーザ装置２２の記憶部１３から読み出す。
【００４９】
暗号文作成手段２２１ａは、これらの値から、まずτをＺ／ｑＺからランダムに選び、数７に示すＵを算出する。そして数８に示すΔを暗号化した暗号文Ｃｉｐｈｅｒを署名文作成手段２２１ｂに出力する（ステップＳ４２）。
【数７】
0005532048.tif 000008
【数８】
0005532048.tif 000009
【００５０】
署名文作成手段２２１ｂは、暗号文作成手段２２１ａから出力された値から、数９の条件を満たす（δ，β，κ，Ｆ’）を知っており、かつＣｉｐｈｅｒがΔを暗号化した暗号文である事を示す知識の署名文ｐｒｏｏｆを数１０に示す手順で作成する（ステップＳ４３）。その際、署名文作成手段２２１ｂはまずξ，ｄ，ｔ，ｂ，ｘ，ｋをＺ／ｑＺからランダムに選び、その後で数１０に示す演算を行う。ここでＨａｓｈ’はＺ／ｑＺに値を取るハッシュ関数である。また、ｅ（・，・）は双線形ペアリングである。
【数９】
0005532048.tif 000010
【数１０】
0005532048.tif 000011
【００５１】
署名出力手段２２１ｃは、数８に示した演算で暗号文作成手段２２１ａが出力した暗号文Ｃｉｐｈｅｒと、数１０に示した演算で署名文作成手段２２１ｂが出力した署名文ｐｒｏｏｆとから、数１１に示す演算で署名Ｓｉｇｎａｔｕｒｅを作成して、文書Ｍ、属性χ［ｉ１］，…，χ［ｉｍ］と共に検証装置２３に出力する。
【数１１】
0005532048.tif 000012
【００５２】
なお、Δ＝Θ＾δであるので、前述の数７でＵをＵ＝Θ＾（δ＋τ）として算出してもよい。
【００５３】
図４は、図１で示した検証装置２３で動作する検証部２３１の動作を示すフローチャートである。まず入力受け取り手段２３１ａが、ユーザ装置２２の署名部２２１から出力された文書Ｍ、属性χ［ｉ１］，…，χ［ｉｍ］、署名文Ｓｉｇｎａｔｕｒｅを入力として受け取る（ステップＳ５１）。入力受け取り手段２３１ａは同時に、システムパラメータ、グループ公開鍵ｉｐｋ＝（Φ，Ψ，Ω，Υ，Π）、開示公開鍵ｏｐｋ＝（Γ，Λ）を、検証装置２３の記憶部１３から読み出す。
【００５４】
ゼロ知識証明検証手段２３１ｂは、これらの数値から数１２で示す演算を行い、ゼロ知識証明文（Ｆ，ｃ，Ｄ，Ｔ，Ｂ，Ｘ，Ｋ）を検証する（ステップＳ５２）。そして、数１３で示す条件によって、このゼロ知識証明文が受理できるか否かを判断する（ステップＳ５３）。受理できれば署名文Ｓｉｇｎａｔｕｒｅを受理する旨を検証装置２３の入出力部１２に出力して処理を終了し（ステップＳ５４）、そうでなければ拒否する旨を出力して終了する（ステップＳ５５）。
【数１２】
0005532048.tif 000013
【数１３】
0005532048.tif 000014
【００５５】
図５は、図１で示した開示装置２１で動作する開示部２１１の動作を示すフローチャートである。まず入力受け取り手段２１１ａが、ユーザ装置２２の署名部２２１から出力された文書Ｍ、属性χ［ｉ１］，…，χ［ｉｍ］、署名文Ｓｉｇｎａｔｕｒｅを入力として受け取る（ステップＳ６１）。入力受け取り手段２１１ａは同時に、システムパラメータ、グループ公開鍵ｉｐｋ＝（Φ，Ψ，Ω，Υ，Π）、開示公開鍵ｏｐｋ＝（Γ，Λ）を、開示装置２１の記憶部１３から読み出す。
【００５６】
ゼロ知識証明検証手段２３１ｂは、これらの数値から数１２で示す演算を行い、ゼロ知識証明文（Ｆ，ｃ，Ｄ，Ｔ，Ｂ，Ｘ，Ｋ）を検証する（ステップＳ６２）。そして、数１３で示す条件によって、このゼロ知識証明文が受理できるか否かを判断する（ステップＳ６３）。なお、ここまでで説明したステップＳ６１〜６３は、図４のステップＳ５１〜５３と同一の処理である。
【００５７】
このゼロ知識証明文が受理できれば、暗号文Ｃｉｐｈｅｒ＝（Ｕ，Ｖ，Ｗ）の復号結果Δを数１４で計算し（ステップＳ６４）、この復号結果Δに対応するＩＤをリスト２１２から探し出して開示装置２１の入出力部１２に出力する（ステップＳ６５）。ステップＳ６３でゼロ知識証明文が受理できなければ、拒否を出力してそのまま終了する（ステップＳ６６）。
【数１４】
0005532048.tif 000015
【００５８】
（第２の実施形態）
本発明の第２の実施形態の構成について添付図６に基づいて説明する。
本実施形態に係る匿名認証署名システム１は、前述したユーザ装置２２と検証装置２３とが相互に接続されて構成されるのに加えて、それらのユーザ装置および検証装置と相互に接続された属性認証装置２５を有し、この属性認証装置は、ユーザに与えられた属性に対応するデータとユーザ秘密鍵およびユーザ装置に依存して決まるデータに基づいて属性証明書を生成する属性認証部２５１を有する。
【００５９】
また、このシステムはユーザ装置、検証装置および属性認証装置と相互に接続された属性検証装置（ユーザ装置２２ｂ）を有し、属性検証装置は、ユーザに与えられた属性に対応するデータとユーザの属するグループに対応するデータから属性証明書が正当なものであるか否かを検証する属性検証部（属性認証子検証部２２３）を有する。
【００６０】
図６は、本発明の第２の実施形態に係る匿名認証署名システム３０１の全体の構成を示す説明図である。匿名認証署名システム３０１は、第１の実施形態で説明した匿名認証署名システム１と比べて、開示装置２１およびユーザ装置２２が第１の実施形態と異なる開示装置２１ｂおよびユーザ装置２２ｂに置き換わっている。検証装置２３は、第１の実施形態と同一である。さらに、開示装置２１ｂ、ユーザ装置２２ｂ、検証装置２３に加えて、発行装置２４および属性認証装置２５が、同一のネットワーク３０によって相互に接続されて構成されている。
【００６１】
発行装置２４および属性認証装置２５は、いずれも図２で説明したものと同一のコンピュータ装置である。また、発行装置２４および属性認証装置２５は、開示装置２１と同一の装置でもよいし、異なる装置であってもよい。さらに、属性認証装置２５は属性に依存して複数台存在してもよい。
【００６２】
発行装置２４の備える演算部１１では、グループ鍵生成部２４１と発行部２４２とが動作する。また、属性認証装置２５の備える演算部１１では、属性認証部２５１が動作する。さらに、開示装置２１ｂの備える演算部１１では、開示部２１１の他に開示鍵生成部２１３が動作する。ユーザ装置２２ｂの備える演算部１１では、署名部２２１の他に、所属部２２２、属性認証子検証部２２３、ユーザ装置鍵作成部２２４が動作する。これらの機能部は、いずれもコンピュータプログラムとして各々の演算部１１で動作する。
【００６３】
発行部２４２は、グループにメンバーを追加および削除する。属性認証部２５１は、属性証明書を生成する。所属部２２２は、ユーザが特定のグループに所属する機能を持つ。属性認証子検証部２２３は、属性認証部２５１が生成した属性証明書の正当性を検証する。開示鍵生成部２１３は、開示公開鍵と開示秘密鍵とを生成する。
【００６４】
グループ鍵生成部２４１は、グループ公開鍵とそれに対応するグループ秘密鍵を生成する。本実施形態では、グループ鍵生成部２４１が発行装置２４で動作する例を説明するが、これが属性認証装置２５で動作していてもよい。
【００６５】
図７は、図６で示した発行装置２４で動作するグループ鍵生成部２４１の動作を示すフローチャートである。動作を開始すると、グループ鍵生成部２４１はまずΦ，Ψ，ΩをＧＲＰ［１］の中からランダムに選び、ΥをＧＲＰ［２］の中からランダムに選び、πをＺ／ｑＺの中からランダムに選び、そして数１５のようにΠを定義する（ステップＳ４１１）。
【数１５】
0005532048.tif 000016
【００６６】
そしてグループ鍵生成部２４１は、Φ，Ψ，Ω，Υ，Πからなる組をグループ公開鍵として、匿名認証署名システム３０１全体に公開する（ステップＳ４１２）。そしてπをグループ秘密鍵として、発行装置２４と属性認証装置２５のみに送信および記憶させる（ステップＳ４１３）。
【００６７】
図８は、図６で示した開示装置２１ｂで動作する開示鍵生成部２１３の動作を示すフローチャートである。動作を開始すると、開示鍵生成部２１３はまず、γ，λをＺ／ｑＺの中からランダムに選び、数１６のようにΓおよびΛを定義する（ステップＳ４２１）。そしてΓとΛからなる組を開示公開鍵として、匿名認証署名システム３０１全体に公開する（ステップＳ４２２）。γとλからなる組を開示秘密鍵として、開示装置２１ｂの記憶部１３のみに記憶させる（ステップＳ４２３）。
【数１６】
0005532048.tif 000017
【００６８】
図９は、図６で示したユーザ装置２２ｂで動作するユーザ装置鍵作成部２２４の動作を示すフローチャートである。動作を開始すると、ユーザ装置鍵作成部２２４はまず、γ，λをＺ／ｑＺの中からランダムに選び、数１７のようにΔを定義する（ステップＳ４３１）。そして、Δをユーザ装置公開鍵として、匿名認証署名システム３０１全体に公開する（ステップＳ４３２）。ステップＳ４３１で選択したδはユーザ装置秘密鍵として、ユーザ装置２２ｂの記憶部１３のみに記憶する（ステップＳ４３３）。
【００６９】
なお、ユーザ装置鍵作成部２２４は、ユーザ装置２２ｂと異なるコンピュータで動作して、作成されたユーザ装置公開鍵およびユーザ装置秘密鍵をユーザ装置２２ｂが受け取るように構成してもよい。
【数１７】
0005532048.tif 000018
【００７０】
図１０は、図６で示した発行装置２４とユーザ装置２２ｂとで各々動作する発行部２４２と所属部２２２の動作を示すフローチャートである。動作を開始すると、所属部２２２はまず、μをＺ／ｑＺからランダムに選び、数１８のようにＣを定義する（ステップＳ４４１）。そして所属部２２２は、δ’，μ’をＺ／ｑＺからランダムに選んで、数１９に示すΔ’とＣ’を計算した後、数２０に示す手順で、ゼロ知識証明文ｐｒｆを生成し（ステップＳ４４２）、（Δ，Ｃ，ｐｒｆ）を発行装置２４に送信する（ステップＳ４４３）。
【数１８】
0005532048.tif 000019
【数１９】
0005532048.tif 000020
【数２０】
0005532048.tif 000021
【００７１】
（Δ，Ｃ，ｐｒｆ）を受信した発行装置２４の発行部２４２は、まず数２１の計算を行って、数２２の条件からｐｒｆの正当性を検証し（ステップＳ４４４〜４４５）、正当であればこれを受理して数２３の計算をして（ν，κ，Ｅ）をユーザ装置２２ｂに返し（ステップＳ４４６〜７）、さらに開示装置２１にユーザ装置２２ｂのＩＤとΔとの組を送信してリスト２１２に記憶させる（ステップＳ４４８）。ステップＳ４４５でｐｒｆが正当でなければユーザ装置２２ｂにエラーを返して処理を終了する（ステップＳ４４９）。
【数２１】
0005532048.tif 000022
【数２２】
0005532048.tif 000023
【数２３】
0005532048.tif 000024
【００７２】
ステップＳ４４７で発行装置２４から（ν，κ，Ｅ）を返信されたユーザ装置２２ｂは、数２４に示すβを計算し、数２５に示す条件を満たすか否かを判断する（ステップＳ４５０〜４５１）。条件を満たしていれば（β，κ，Ｅ）をメンバー証明書としてプロトコルを正常終了し（ステップＳ４５２）、そうでなければプロトコルを異常終了する（ステップＳ４５３）。
【数２４】
0005532048.tif 000025
【数２５】
0005532048.tif 000026
【００７３】
図１１は、図６で示した属性認証装置２５で動作する属性認証部２５１の動作を示すフローチャートである。属性認証部２５１は、属性χ［ｉ］を持つユーザ装置２２ｂに対して、この属性χに対応する属性証明書を発行する。その際、属性認証部２５１は、数２６として示した処理でＧ［ｉ］を算出し、これをメンバー証明書として出力する（ステップＳ４６１）。ここでκはユーザ装置２２ｂのメンバー証明書の一部である。
【数２６】
0005532048.tif 000027
【００７４】
属性認証装置２５がいかなる方法でκを手に入れるのかは特に問わないが、安全性上の観点から言えば、属性認証装置２５はκが実際にユーザ装置２２ｂのメンバー証明書の一部である事を何らかの方法で確認することが望ましい。より具体的には、発行装置２４がκに署名を付与してその署名を属性認証装置２５が確認するか、もしくは発行装置２４がユーザ装置２２ｂとκとの対応表を事前に公開しておくなどの方法がある。
【００７５】
図１２は、図６で示したユーザ装置２２ｂで動作する属性認証子検証部２２３の動作を示すフローチャートである。ユーザ装置２２ｂは属性認証子検証部２２３を実行して、属性認証装置２５が発行した属性証明書の正当性を検証する。その際、属性認証子検証部２２３は、数２７として示した条件が成立するか否かでＧ［ｉ］の正当性を判断し（ステップＳ４７１）、正当であればＧ［ｉ］を受理し（ステップＳ４７２）、そうでなければ拒否する（ステップＳ４７３）。
【数２７】
0005532048.tif 000028
【００７６】
（第１・第２の実施形態の全体的な動作）
次に、上記の実施形態の全体的な動作について説明する。本発明に係る署名方法は、ユーザから入力された文書に対する署名データを生成して出力する署名方法であって、あらかじめ与えられた各々のパラメータであるシステムパラメータ、開示公開鍵、ユーザ公開鍵、ユーザ秘密鍵、メンバー証明書、およびユーザ公開鍵と同一の冪を使って作成された属性証明書を事前に記憶し、ユーザからの文書とユーザが開示しようとする属性の入力を受け付け（図３：ステップＳ４１）、入力された文書と開示しようとする属性、および各々のパラメータから暗号文を作成し（図３：ステップＳ４２）、作成された暗号文からゼロ知識署名文を作成し（図３：ステップＳ４３）、暗号文およびゼロ知識署名文とを署名データとして出力する（図３：ステップＳ４４）。
【００７７】
そして本発明に係る検証方法は、ユーザ装置によって生成された署名データが正当であるか否かを検証してその結果を出力する検証方法であって、あらかじめ与えられた各々のパラメータであるシステムパラメータ、開示公開鍵および属性証明書を事前に記憶し、ユーザからの文書および署名データの入力を受け付け（図４：ステップＳ５１）、各々のパラメータを用いて署名データに含まれるゼロ知識証明文を検証してこのゼロ知識証明文が受理できるか否かを判断し（図４：ステップＳ５２〜５３）、受理できると判断されれば署名データを受理する（図４：ステップＳ５４）。
【００７８】
ここで、上記各動作ステップについては、これをコンピュータで実行可能にプログラム化し、これらを前記各ステップを直接実行する主体であるユーザ装置２２もしくは検証装置２３に実行させるようにしてもよい。
この構成および動作により、本実施形態（第１・第２の実施形態）は以下のような効果を奏する。
【００７９】
本実施形態では、ＲＳＡではなく双線形ペアリングを持つ群を使用しているので、署名長を短くでき、処理をより効率的にすることができる。また、署名文（β，Ｅ，κ）とは別個に、前述の数６で属性χ［ｉ］ごとにＧ［ｉ］を生成し、そのＧ［ｉ］をユーザが属性χ［ｉ］を持っている事の証明書として用いる。
【００８０】
なお，Π＝Υ＾πを満たす（Υ，Π）を使えば、前述の数６が以下の数２８と等価であることを示せる。
【数２８】
0005532048.tif 000029
【００８１】
数２９に示す各々は同一の冪π＋κを用いている。これらの式を掛け合わせて数３０のようにすることにより、数３１が成立する。
【数２９】
0005532048.tif 000030
【数３０】
0005532048.tif 000031
【数３１】
0005532048.tif 000032
【００８２】
従って、ユーザはχ［ｉ１］，…，χ［ｉｍ］を開示する属性として、前述の数３１を満たす（δ，β，Ｆ’，κ）の知識の署名を生成する事ができる。ここで証明しなければならないデータはδ、β、Ｆ’の３つだけであり、開示する属性の数に比例した多量の計算を必要としない。
【００８３】
以上のように、本実施形態では同一の冪π＋κを用いた数２９に示す各式をかけ合わせることによって、開示する属性の数に比例した個数のデータＥ，Ｇ［ｉ１］，…，Ｇ［ｉｍ］を数３０に示す一つのデータＦ’＝ＥＧ［ｉ１］…Ｇ［ｉｍ］に縮約している。これによって、匿名認証において証明しなければならないデータの数を削減し、必要な計算量を大幅に削減することができる。
【００８４】
これまで本発明について図面に示した特定の実施形態をもって説明してきたが、本発明は図面に示した実施形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができる。
【００８５】
この出願は２００９年７月１３日に出願された日本出願特願２００９−１６４８８４を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【００８６】
本発明は、匿名認証を利用するシステムおよび装置において利用できる。
【符号の説明】
【００８７】
１、３０１  匿名認証署名システム
１０  コンピュータ装置
１１  演算部
１２  入出力部
１３  記憶部
１４  通信部
２１、２１ｂ  開示装置
２２、２２ｂ  ユーザ装置
２３  検証装置
２４  発行装置
２５  属性認証装置
３０  ネットワーク
２１１  開示部
２１２  リスト
２１３  開示鍵生成部
２２１  署名部
２２１ａ  暗号文作成手段
２２１ｂ  署名文作成手段
２２１ｃ  署名出力手段
２２２  所属部
２２３  属性認証子検証部
２２４  ユーザ装置鍵作成部
２３１  検証部
２３１ａ  入力受け取り手段
２３１ｂ  ゼロ知識証明検証手段
２４１  グループ鍵生成部
２４２  発行部
２５１  属性認証部
【図１】
0005532048.tif 000033
【図２】
0005532048.tif 000034
【図３】
0005532048.tif 000035
【図４】
0005532048.tif 000036
【図５】
0005532048.tif 000037
【図６】
0005532048.tif 000038
【図７】
0005532048.tif 000039
【図８】
0005532048.tif 000040
【図９】
0005532048.tif 000041
【図１０】
0005532048.tif 000042
【図１１】
0005532048.tif 000043
【図１２】
0005532048.tif 000044