(57)【要約】【課題】ユーザが属性値自体を隠しつつもその属性値が特定の条件を満たすことを証明することを可能とする匿名認証システム等を提供する。【解決手段】ユーザ装置１０が電子署名データを作成して認証装置に送信する署名部１１０が、ユーザの持つ複数の属性を分類した複数の部分集合を入力として受け取る第１の機能１１１と、ユーザ装置公開鍵を特定装置公開鍵で暗号化した第１の暗号文を作成する第２の機能１１２と、部分集合のうちの特定のものに属する属性値を属性値開示装置公開鍵で暗号化した第２の暗号文を作成する第３の機能１１３と、ユーザ装置公開鍵の一部と全ての属性の各々に対応する属性値証明書の数値とを乗算したデータが予め与えられた特定の条件を満たすことを示す知識の署名文をグループ公開鍵の一部およびメンバー証明書の一部を用いて作成する第４の機能１１４とを有する。【選択図】図１
2011148902.tif 000002
【特許請求の範囲】
【請求項１】
特定のグループに属しているユーザ装置と、前記ユーザ装置の識別情報について特定せずに前記ユーザ装置が前記グループに属していることを検証する検証装置と、前記識別情報を特定する権限を持つ特定装置と、前記ユーザの持つ属性値を特定する権限を持つ属性値開示装置とが相互に接続されて構成される匿名認証システムであって、
前記ユーザ装置が、
ユーザ装置公開鍵とこれに対応するユーザ装置秘密鍵、前記ユーザ装置が前記グループに属していることを示すグループ公開鍵、前記グループ公開鍵に対応するグループ秘密鍵を使って作成されたメンバー証明書、前記ユーザの前記属性の各々に対応する属性値と前記ユーザ秘密鍵を使って作成された属性値証明書、前記特定装置の特定装置公開鍵、および前記属性値開示装置の属性値開示装置公開鍵を予め記憶している記憶手段と、電子署名データを作成して前記認証装置に送信する署名部とを有すると共に、
前記メンバー証明書が、前記グループ公開鍵の一部Φ＿１をユーザ秘密鍵δで冪乗剰余した数値と前記グループ公開鍵の別の一部Φ＿２を前記メンバー証明書の一部βで冪乗剰余した数値と前記グループ公開鍵のさらに別の一部Φ＿０とを乗算してこれを前記グループ秘密鍵πと前記メンバー証明書の一部κから作られたデータρの逆数で冪乗剰余した数値Ｅを含み、
前記属性のｉ番目χ［ｉ］に対応する前記属性値証明書が、前記χ［ｉ］から得られたデータΨ＿１［ｉ］を前記δで冪乗剰余した数値と前記χ［ｉ］から得られたデータΨ２を前記属性証明書の一部ｒ［ｉ］で冪乗剰余した数値と前記属性χ［ｉ］から得られたデータΨ＿０［ｉ］とを乗算してこれを前記ρの逆数で冪乗剰余した数値Ｅ’［ｉ］を含み、
前記署名部が、
前記ユーザの持つ複数の属性を分類した複数の部分集合を入力として受け取る第１の機能と、前記ユーザ装置公開鍵を前記特定装置公開鍵で暗号化した第１の暗号文を作成する第２の機能と、前記部分集合のうちの特定のものに属する前記属性値を前記属性値開示装置公開鍵で暗号化した第２の暗号文を作成する第３の機能と、前記ユーザ装置公開鍵の一部と全ての前記属性の各々に対応する前記属性値証明書の数値とを乗算したデータが予め与えられた特定の条件を満たすことを示す知識の署名文を前記グループ公開鍵の一部および前記メンバー証明書の一部を用いて作成し、前記第１および第２の暗号文と前記知識の署名文とを含む前記電子署名データを作成してこれを前記検証装置に対して出力する第４の機能とを有すると共に、
前記署名部の前記第３の機能で前記第２の暗号文を作成する際に使用した乱数をτ［ｉ］とし、χ［ｉ］に対応する前記Ｅ’［ｉ］と前記Ｅとを乗算した数値をＧとし、全ての属性χ［ｉ］に対応するｒ［ｉ］を全て加算してこれに前記βを加えたものをｒとすると、
前記署名部の前記第４の機能が、前記Ｇ、前記ｒ、前記特定の部分集合に属する属性値ζ［ｉ］、前記第２の機能で前記第１の暗号文を作成する際に使用した乱数τ、および前記τ’［ｉ］が前記与えられた特定の条件を、満たすことを示す知識の署名文を作成し、
前記検証装置が、
前記グループ公開鍵および前記特定装置公開鍵を予め記憶している記憶手段と、
前記ユーザ装置から受信した前記電子署名データに含まれる前記第１および第２の暗号文を抽出し、前記知識の署名文が正当であるか否かを前記グループ公開鍵を用いて検証する署名文検証機能と、
前記第１の暗号文を前記特定装置公開鍵に対応する特定装置秘密鍵を持つ前記特定装置に転送して前記ユーザ装置の識別情報の特定を依頼し、さらに前記第２の暗号文を前記属性値開示装置公開鍵に対応する属性値開示装置秘密鍵を持つ前記属性値開示装置に転送して前記属性値の特定を依頼する開示依頼機能と
を有することを特徴とする匿名認証システム。
【請求項２】
特定のグループに属し、前記ユーザ装置の識別情報について特定せずに前記ユーザ装置が前記グループに属していることを検証する検証装置、前記識別情報を特定する権限を持つ特定装置、および前記ユーザの持つ属性値を特定する権限を持つ属性値開示装置と相互に接続されて匿名認証システムを構成するユーザ装置であって、
ユーザ装置公開鍵とこれに対応するユーザ装置秘密鍵、前記ユーザ装置が前記グループに属していることを示すグループ公開鍵、前記グループ公開鍵に対応するグループ秘密鍵を使って作成されたメンバー証明書、前記ユーザの前記属性の各々に対応する属性値と前記ユーザ秘密鍵を使って作成された属性値証明書、前記特定装置の特定装置公開鍵、および前記属性値開示装置の属性値開示装置公開鍵を予め記憶している記憶手段と、
電子署名データを作成して前記認証装置に送信する署名部とを有すると共に、
前記メンバー証明書が、前記グループ公開鍵の一部Φ＿１をユーザ秘密鍵δで冪乗剰余した数値と前記グループ公開鍵の別の一部Φ＿２を前記メンバー証明書の一部βで冪乗剰余した数値と前記グループ公開鍵のさらに別の一部Φ＿０とを乗算してこれを前記グループ秘密鍵πと前記メンバー証明書の一部κから作られたデータρの逆数で冪乗剰余した数値Ｅを含み、
前記属性のｉ番目χ［ｉ］に対応する前記属性値証明書が、前記χ［ｉ］から得られたデータΨ＿１［ｉ］を前記δで冪乗剰余した数値と前記χ［ｉ］から得られたデータΨ２を前記属性証明書の一部ｒ［ｉ］で冪乗剰余した数値と前記属性χ［ｉ］から得られたデータΨ＿０［ｉ］とを乗算してこれを前記ρの逆数で冪乗剰余した数値Ｅ’［ｉ］を含み、
前記署名部が、
前記ユーザの持つ複数の属性を分類した複数の部分集合を入力として受け取る第１の機能と、
前記ユーザ装置公開鍵を前記特定装置公開鍵で暗号化した第１の暗号文を作成する第２の機能と、
前記部分集合のうちの特定のものに属する前記属性値を前記属性値開示装置公開鍵で暗号化した第２の暗号文を作成する第３の機能と、
前記ユーザ装置公開鍵の一部と全ての前記属性の各々に対応する前記属性値証明書の数値とを乗算したデータが予め与えられた特定の条件を満たすことを示す知識の署名文を前記グループ公開鍵の一部および前記メンバー証明書の一部を用いて作成し、前記第１および第２の暗号文と前記知識の署名文とを含む前記電子署名データを作成してこれを前記検証装置に対して出力する第４の機能と
を有すると共に、
前記署名部の前記第３の機能で前記第２の暗号文を作成する際に使用した乱数をτ［ｉ］とし、χ［ｉ］に対応する前記Ｅ’［ｉ］と前記Ｅとを乗算した数値をＧとし、全ての属性χ［ｉ］に対応するｒ［ｉ］を全て加算してこれに前記βを加えたものをｒとすると、
前記署名部の前記第４の機能が、前記Ｇ、前記ｒ、前記特定の部分集合に属する属性値ζ［ｉ］、前記第２の機能で前記第１の暗号文を作成する際に使用した乱数τ、および前記τ’［ｉ］が前記与えられた特定の条件を、満たすことを示す知識の署名文を作成することを特徴とするユーザ装置。
【請求項３】
前記グループ公開鍵が前記Φ＿０、Φ＿１、およびΦ＿２の他にΥおよびΩなるデータを含み、前記複数の部分集合が、前記属性のみを開示する第１の部分集合と、前記属性を開示して前記属性値を暗号化の対象とする第２の部分集合と、前記属性および前記属性値を開示する第３の部分集合とを含み、
前記署名部の前記第４の機能が、
まずＺ／ｑＺからα、ｄ、ｂ、ａ、ｋをランダムに選び、さらに前記第１および第２の部分集合に属する属性χ［ｉ］に対しｄ’［ｉ］をランダムに選び、全ての属性χ［ｉ］に対応するＥ’［ｉ］とＥと前記Φ＿２を前記αでべき乗剰余した数値を乗算した数値をＦとし、
続いて前記第１および第２の部分集合に属する属性χ［ｉ］に対応する前記Ψ＿１［ｉ］と前記ｄ’［ｉ］でべき乗剰余した数値を乗算した数値と前記Φ＿１を前記ｄでべき乗剰余した数値と前記Φ＿２を前記ｂでべき乗剰余した数値とを乗算した数値を前記Υとをペアリングした数値と、前記Φ＿２を前記ａでべき乗剰余した数値と前記Ωをペアリングした数値と、前記Υを前記ｋの符号反転でべき乗剰余した数値を前記Ｆとペアリングした数値とを乗算した数値をＬとし、
前記Ｆと前記Ｌとを含むデータのハッシュ値をｃとし、前記αと前記ｃとを乗算した数値に前記ａを加算した数値を所定のモジュラスで剰余した数値をＡとし、前記δと前記ｃとを乗算した数値に前記ｄを加算した数値を所定のモジュラスで剰余した数値をＤとし、前記κと前記ｃとを乗算した数値に前記ｋを加算した数値を所定のモジュラスで剰余した数値をＫとし、
全ての属性χ［ｉ］に対応するｒ［ｉ］を全て加算した数値に前記βを加算し、これに前記κと前記αの積を加算した数値に前記ｃを乗算した数値に、前記ｂを所定のモジュラスで剰余した数値をＢとし、
前記第１および第２の部分集合に属するχ［ｉ］に対応する各ｉに対して前記ζ［ｉ］と前記ｃとを乗算した数値に前記ｄ’［ｉ］を加算した数値を所定のモジュラスで剰余した数値をＤ’［ｉ］とし、
前記Ｆ、前記ｃ、前記Ａ、前記Ｄ、前記Ｔ、前記Ｂ、前記Ｋ、および前記Ｄ’［ｉ］を含むデータを署名文として出力することを特徴とする、請求項２に記載のユーザ装置。
【請求項４】
特定のグループに属しているユーザ装置、前記識別情報を特定する権限を持つ特定装置、および前記ユーザの持つ属性値を特定する権限を持つ属性値開示装置と相互に接続されて匿名認証システムを構成し、構成される前記ユーザ装置の識別情報について特定せずに前記ユーザ装置が前記グループに属していることを検証する検証装置であって、
ユーザ装置公開鍵、前記ユーザ装置が前記グループに属していることを示すグループ公開鍵、前記グループ公開鍵に対応するグループ秘密鍵を使って作成されたメンバー証明書、前記ユーザの前記属性の各々に対応する属性値と前記ユーザ秘密鍵を使って作成された属性値証明書、前記特定装置の特定装置公開鍵、および前記属性値開示装置の属性値開示装置公開鍵を予め記憶している記憶手段と、
前記グループ公開鍵および前記特定装置公開鍵を予め記憶している記憶手段と、
前記ユーザ装置から受信した前記電子署名データに含まれる前記第１および第２の暗号文を抽出し、前記知識の署名文が正当であるか否かを前記グループ公開鍵を用いて検証する署名文検証機能と、
前記第１の暗号文を前記特定装置公開鍵に対応する特定装置秘密鍵を持つ前記特定装置に転送して前記ユーザ装置の識別情報の特定を依頼し、さらに前記第２の暗号文を前記属性値開示装置公開鍵に対応する属性値開示装置秘密鍵を持つ前記属性値開示装置に転送して前記属性値の特定を依頼する開示依頼機能とを有することを特徴とする検証装置。
【請求項５】
前記グループ公開鍵がΦ＿０、Φ＿１、Φ＿２、Υ、Ωという各々のデータを含み、前記複数の部分集合が、前記属性のみを開示する第１の部分集合と、前記属性を開示して前記属性値を暗号化の対象とする第２の部分集合と、前記属性および前記属性値を開示する第３の部分集合とを含み、
前記署名文はＦ、ｃ、Ａ、Ｄ、Ｂ、Ｋという各々のデータと、前記第１および第２の部分集合に属するχ［ｉ］に対しＤ’［ｉ］を含むと共に、
前記署名文検証機能が、全ての前記部分集合に属する各属性χ［ｉ］からデータΨ＿０［ｉ］およびΨ＿１［ｉ］を計算し、
続いて前記第１および第２の部分集合に属するχ［ｉ］に対して前記Ψ＿１［ｉ］を前記Ｄ’［ｉ］でべき乗剰余した数値の積と前記Φ１を前記Ｄでべき乗剰余した数値と前記Φ２をＢでべき乗剰余した数値との積を前記Υとをペアリングした数値と、前記Φ＿２を前記Ａでべき乗剰余した数値に前記Ωをペアリングした数値と、前記Υに前記Ｋの符号反転と前記Ｆとをペアリングした数値と、全ての前記部分集合に属するχ［ｉ］に対応するΨ＿０［ｉ］の積と前記第３の集合に属するχ［ｉ］に対応するΨ＿１［ｉ］をζ［ｉ］でべき乗剰余した数値に前記Φ＿０を乗算した数値をＬとし、
続いて前記Ｆと前記Ｌを含むデータのハッシュ値がｃに等しければ署名文を受理し、そうでなければ拒否することを特徴とする、請求項４に記載の検証装置。
【請求項６】
特定のグループに属しているユーザ装置と、前記ユーザ装置の識別情報について特定せずに前記ユーザ装置が前記グループに属していることを検証する検証装置と、前記識別情報を特定する権限を持つ特定装置と、前記ユーザの持つ属性値を特定する権限を持つ属性値開示装置とが相互に接続されて構成される匿名認証システムにあって、
ユーザ装置公開鍵とこれに対応するユーザ装置秘密鍵、前記ユーザ装置が前記グループに属していることを示すグループ公開鍵、前記グループ公開鍵に対応するグループ秘密鍵を使って作成された前記グループ公開鍵の一部Φ＿１をユーザ秘密鍵δで冪乗剰余した数値と前記グループ公開鍵の別の一部Φ＿２を前記メンバー証明書の一部βで冪乗剰余した数値と前記グループ公開鍵のさらに別の一部Φ＿０とを乗算してこれを前記グループ秘密鍵πと前記メンバー証明書の一部κから作られたデータρの逆数で冪乗剰余した数値Ｅを含むメンバー証明書、前記ユーザの前記属性のｉ番目χ［ｉ］に対応する属性値と前記χ［ｉ］から得られたデータΨ＿１［ｉ］を前記δで冪乗剰余した数値と前記χ［ｉ］から得られたデータΨ２を前記属性証明書の一部ｒ［ｉ］で冪乗剰余した数値と前記属性χ［ｉ］から得られたデータΨ＿０［ｉ］とを乗算してこれを前記ρの逆数で冪乗剰余した数値Ｅ’［ｉ］を含む前記ユーザ秘密鍵を使って作成された属性値証明書、前記特定装置の特定装置公開鍵、および前記属性値開示装置の属性値開示装置公開鍵を予め記憶し、
前記ユーザの持つ複数の属性を分類した複数の部分集合を入力として受け取り、
前記ユーザ装置公開鍵を前記特定装置公開鍵で暗号化した第１の暗号文を作成し、
前記部分集合のうちの特定のものに属する前記属性値を前記属性値開示装置公開鍵で暗号化した第２の暗号文を作成し、
前記第２の暗号文を作成する際に使用した乱数をτ［ｉ］とし、χ［ｉ］に対応する前記Ｅ’［ｉ］と前記Ｅとを乗算した数値をＧとし、全ての属性χ［ｉ］に対応するｒ［ｉ］を全て加算してこれに前記βを加えたものをｒとすると、前記Ｇ、前記ｒ、前記特定の部分集合に属する属性値ζ［ｉ］、前記第２の機能で前記第１の暗号文を作成する際に使用した乱数τ、および前記τ’［ｉ］が前記与えられた特定の条件を、満たすことを示す知識の署名文を前記グループ公開鍵の一部および前記メンバー証明書の一部を用いて作成し、前記第１および第２の暗号文と前記知識の署名文とを含む前記電子署名データを作成してこれを前記検証装置に対して出力すると共に、
これらの各処理内容を前記ユーザ装置が実行し、
前記グループ公開鍵および前記特定装置公開鍵を予め記憶し、
前記ユーザ装置から受信した前記電子署名データに含まれる前記第１および第２の暗号文を抽出し、
前記知識の署名文が正当であるか否かを前記グループ公開鍵を用いて検証すると共に、
これらの各処理内容を前記検証装置が実行することを特徴とする匿名認証方法。
【請求項７】
特定のグループに属しているユーザ装置と、前記ユーザ装置の識別情報について特定せずに前記ユーザ装置が前記グループに属していることを検証する検証装置と、前記識別情報を特定する権限を持つ特定装置と、前記ユーザの持つ属性値を特定する権限を持つ属性値開示装置とが相互に接続されて構成される匿名認証システムにあって、
ユーザ装置公開鍵とこれに対応するユーザ装置秘密鍵、前記ユーザ装置が前記グループに属していることを示すグループ公開鍵、前記グループ公開鍵に対応するグループ秘密鍵を使って作成された前記グループ公開鍵の一部Φ＿１をユーザ秘密鍵δで冪乗剰余した数値と前記グループ公開鍵の別の一部Φ＿２を前記メンバー証明書の一部βで冪乗剰余した数値と前記グループ公開鍵のさらに別の一部Φ＿０とを乗算してこれを前記グループ秘密鍵πと前記メンバー証明書の一部κから作られたデータρの逆数で冪乗剰余した数値Ｅを含むメンバー証明書、前記ユーザの前記属性のｉ番目χ［ｉ］に対応する属性値と前記χ［ｉ］から得られたデータΨ＿１［ｉ］を前記δで冪乗剰余した数値と前記χ［ｉ］から得られたデータΨ２を前記属性証明書の一部ｒ［ｉ］で冪乗剰余した数値と前記属性χ［ｉ］から得られたデータΨ＿０［ｉ］とを乗算してこれを前記ρの逆数で冪乗剰余した数値Ｅ’［ｉ］を含む前記ユーザ秘密鍵を使って作成された属性値証明書、前記特定装置の特定装置公開鍵、および前記属性値開示装置の属性値開示装置公開鍵を予め記憶しているコンピュータに、
前記ユーザの持つ複数の属性を分類した複数の部分集合を入力として受け取る手順、
前記ユーザ装置公開鍵を前記特定装置公開鍵で暗号化した第１の暗号文を作成する手順、
前記部分集合のうちの特定のものに属する前記属性値を前記属性値開示装置公開鍵で暗号化した第２の暗号文を作成する手順、
前記第２の暗号文を作成する際に使用した乱数をτ［ｉ］とし、χ［ｉ］に対応する前記Ｅ’［ｉ］と前記Ｅとを乗算した数値をＧとし、全ての属性χ［ｉ］に対応するｒ［ｉ］を全て加算してこれに前記βを加えたものをｒとすると、前記Ｇ、前記ｒ、前記特定の部分集合に属する属性値ζ［ｉ］、前記第２の機能で前記第１の暗号文を作成する際に使用した乱数τ、および前記τ’［ｉ］が前記与えられた特定の条件を、満たすことを示す知識の署名文を前記グループ公開鍵の一部および前記メンバー証明書の一部を用いて作成し、前記第１および第２の暗号文と前記知識の署名文とを含む前記電子署名データを作成してこれを前記検証装置に対して出力する手順
を実行させることを特徴とする匿名認証プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は匿名認証システム、ユーザ装置、検証装置、匿名認証方法および匿名認証プログラムに関し、特に２値ではない具体的な数値を持つ属性値を扱うことができる匿名認証システム等に関する。
【背景技術】
【０００２】
コンピュータや携帯電話端末などによるネットワークが社会的に普及するにつれ、個人を認証するデジタル署名技術が利用される機会が増加している。しかしながら、デジタル署名を利用することにより、個人の行動履歴が事細かにコンピュータに記録されるので、プライバシー保護に関わる問題が発生しうる。【０００３】
非特許文献１および非特許文献２などに記載された匿名認証署名技術（Anonymous Credential）は、この問題を解決しうる技術である。各ユーザの持つ属性をχ［１］、…、χ［ｎ］とし、｛１、…、ｎ｝の任意の部分集合をＪ＝｛ｉ１、…、ｉｍ｝とすると、各ユーザはｉ∈Ｊに属する一部の属性χ［ｉ１］、…、χ［ｉｍ］を開示しつつ、残りの属性については隠して、匿名のまま電子署名データＳｉｇｎａｔｕｒｅを生成する事ができる。ちなみにｍおよびｎは自然数であり、かつｍ＜ｎである。【０００４】
この電子署名データＳｉｇｎａｔｕｒｅを受け取った者は、Ｓｉｇｎａｔｕｒｅを作成したユーザがｉ∈Ｊに属する属性χ［ｉ１］、…、χ［ｉｍ］を持っていることを確認することはできるが、その属性自体を知ることはできない。特定装置を持つ権限者のみが、その属性を知ることができる。【０００５】
たとえば、レンタカーを利用する際に、「運転免許証を保持している」という属性のみをレンタカー会社に開示して、時刻情報に署名することで匿名のまま車を借りることが可能である。そこで借りた車が事故や犯罪などに巻き込まれた場合にのみ、警察などの権限者が特定装置によって、その車を借りた人物を特定することができる。【０００６】
これに関連する技術文献として、次の各々の特許文献がある。その中でも特許文献１には、属性証明者を個別に特定できない場合に、その属性復号機関の公開鍵で属性証明書を再暗号化してその機関にその属性値の開示を依頼するという属性証明書発行方法などが記載されている。特許文献２には、「返信用」と「仮名」の各々の暗号化／復号化鍵を利用して、匿名公開鍵を発行依頼するという証明書発行装置などが記載されている。【０００７】
特許文献３には、ユーザが特定のグループに属することを証明するグループ・デジタル署名を可能とする匿名認証方法などが記載されている。特許文献４には、特定のユーザに関する情報をブラックリストとして保管し、そのユーザを特定することを可能とする匿名認証署名技術が記載されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００５−３１１６４８号公報
【特許文献２】特開２００７−２６７１５３号公報
【特許文献３】特開２００９−０２７７０８号公報
【特許文献４】特開２００９−１７１３２３号公報
【非特許文献】
【０００９】
【非特許文献１】JanCamenisch、 AnnaLysyanskaya: A Signature Scheme with Efficient Protocols. SCN 2002: 268-289
【非特許文献２】JunFurukawa、 Hideki Imai:An Efficient Group Signature Scheme from Bilinear Maps. ACISP 2005: 455-467
【発明の概要】
【発明が解決しようとする課題】
【００１０】
非特許文献１および非特許文献２などに記載された匿名認証署名技術では、たとえば「運転免許証を保持している」「男性である」「○○クレジットカードの会員である」などのように、「該当する」と「該当しない」の２値のみしかない属性値を扱っている。しかしながら、各ユーザの持つ属性値には、２値ではない具体的な数値を持ち、その数値が特定の範囲内であることに意味を持つものもある。【００１１】
たとえば「年齢」という属性値について、「自動車の運転」「酒や煙草の販売」など様々な場面で、該ユーザが未成年であるか否かを確認する必要がある。このような場合に、具体的な年齢の数値を隠しつつも、該ユーザが未成年でないことを証明することが可能な匿名認証署名技術は、前述の特許文献１〜４、および非特許文献１〜２には開示されていない。【００１２】
本発明の目的は、２値ではない具体的な数値を持つ属性値を扱うことができ、ユーザがその属性値自体を隠しつつもその属性値が特定の条件を満たすことを証明することを可能とする匿名認証システム、ユーザ装置、検証装置、匿名認証方法および匿名認証プログラムを提供することにある。
【課題を解決するための手段】
【００１３】
上記目的を達成するため、本発明に係る匿名認証システムは、特定のグループに属しているユーザ装置と、ユーザ装置の識別情報について特定せずにユーザ装置がグループに属していることを検証する検証装置と、識別情報を特定する権限を持つ特定装置と、ユーザの持つ属性値を特定する権限を持つ属性値開示装置とが相互に接続されて構成される匿名認証システムであって、ユーザ装置が、ユーザ装置公開鍵とこれに対応するユーザ装置秘密鍵、ユーザ装置がグループに属していることを示すグループ公開鍵、グループ公開鍵に対応するグループ秘密鍵を使って作成されたメンバー証明書、ユーザの属性の各々に対応する属性値とユーザ秘密鍵を使って作成された属性値証明書、特定装置の特定装置公開鍵、および属性値開示装置の属性値開示装置公開鍵を予め記憶している記憶手段と、電子署名データを作成して認証装置に送信する署名部とを有すると共に、メンバー証明書が、グループ公開鍵の一部Φ＿１をユーザ秘密鍵δで冪乗剰余した数値とグループ公開鍵の別の一部Φ＿２をメンバー証明書の一部βで冪乗剰余した数値とグループ公開鍵のさらに別の一部Φ＿０とを乗算してこれをグループ秘密鍵πとメンバー証明書の一部κから作られたデータρの逆数で冪乗剰余した数値Ｅを含み、属性のｉ番目χ［ｉ］に対応する属性値証明書が、χ［ｉ］から得られたデータΨ＿１［ｉ］をδで冪乗剰余した数値とχ［ｉ］から得られたデータΨ２を属性証明書の一部ｒ［ｉ］で冪乗剰余した数値と属性χ［ｉ］から得られたデータΨ＿０［ｉ］とを乗算してこれをρの逆数で冪乗剰余した数値Ｅ’［ｉ］を含み、署名部が、ユーザの持つ複数の属性を分類した複数の部分集合を入力として受け取る第１の機能と、ユーザ装置公開鍵を特定装置公開鍵で暗号化した第１の暗号文を作成する第２の機能と、部分集合のうちの特定のものに属する属性値を属性値開示装置公開鍵で暗号化した第２の暗号文を作成する第３の機能と、ユーザ装置公開鍵の一部と全ての属性の各々に対応する属性値証明書の数値とを乗算したデータが予め与えられた特定の条件を満たすことを示す知識の署名文をグループ公開鍵の一部およびメンバー証明書の一部を用いて作成し、第１および第２の暗号文と知識の署名文とを含む電子署名データを作成してこれを検証装置に対して出力する第４の機能とを有すると共に、署名部の第３の機能で第２の暗号文を作成する際に使用した乱数をτ［ｉ］とし、χ［ｉ］に対応するＥ’［ｉ］とＥとを乗算した数値をＧとし、全ての属性χ［ｉ］に対応するｒ［ｉ］を全て加算してこれにβを加えたものをｒとすると、署名部の第４の機能が、Ｇ、ｒ、特定の部分集合に属する属性値ζ［ｉ］、第２の機能で第１の暗号文を作成する際に使用した乱数τ、およびτ’［ｉ］が与えられた特定の条件を、満たすことを示す知識の署名文を作成し、検証装置が、グループ公開鍵および特定装置公開鍵を予め記憶している記憶手段と、ユーザ装置から受信した電子署名データに含まれる第１および第２の暗号文を抽出し、知識の署名文が正当であるか否かをグループ公開鍵を用いて検証する署名文検証機能と、第１の暗号文を特定装置公開鍵に対応する特定装置秘密鍵を持つ特定装置に転送してユーザ装置の識別情報の特定を依頼し、さらに第２の暗号文を属性値開示装置公開鍵に対応する属性値開示装置秘密鍵を持つ属性値開示装置に転送して属性値の特定を依頼する開示依頼機能とを有することを特徴とする。【００１４】
上記目的を達成するため、本発明に係るユーザ装置は、特定のグループに属し、ユーザ装置の識別情報について特定せずにユーザ装置がグループに属していることを検証する検証装置、識別情報を特定する権限を持つ特定装置、およびユーザの持つ属性値を特定する権限を持つ属性値開示装置と相互に接続されて匿名認証システムを構成するユーザ装置であって、ユーザ装置公開鍵とこれに対応するユーザ装置秘密鍵、ユーザ装置がグループに属していることを示すグループ公開鍵、グループ公開鍵に対応するグループ秘密鍵を使って作成されたメンバー証明書、ユーザの属性の各々に対応する属性値とユーザ秘密鍵を使って作成された属性値証明書、特定装置の特定装置公開鍵、および属性値開示装置の属性値開示装置公開鍵を予め記憶している記憶手段と、電子署名データを作成して認証装置に送信する署名部とを有すると共に、メンバー証明書が、グループ公開鍵の一部Φ＿１をユーザ秘密鍵δで冪乗剰余した数値とグループ公開鍵の別の一部Φ＿２をメンバー証明書の一部βで冪乗剰余した数値とグループ公開鍵のさらに別の一部Φ＿０とを乗算してこれをグループ秘密鍵πとメンバー証明書の一部κから作られたデータρの逆数で冪乗剰余した数値Ｅを含み、属性のｉ番目χ［ｉ］に対応する属性値証明書が、χ［ｉ］から得られたデータΨ＿１［ｉ］をδで冪乗剰余した数値とχ［ｉ］から得られたデータΨ２を属性証明書の一部ｒ［ｉ］で冪乗剰余した数値と属性χ［ｉ］から得られたデータΨ＿０［ｉ］とを乗算してこれをρの逆数で冪乗剰余した数値Ｅ’［ｉ］を含み、署名部が、ユーザの持つ複数の属性を分類した複数の部分集合を入力として受け取る第１の機能と、ユーザ装置公開鍵を特定装置公開鍵で暗号化した第１の暗号文を作成する第２の機能と、部分集合のうちの特定のものに属する属性値を属性値開示装置公開鍵で暗号化した第２の暗号文を作成する第３の機能と、ユーザ装置公開鍵の一部と全ての属性の各々に対応する属性値証明書の数値とを乗算したデータが予め与えられた特定の条件を満たすことを示す知識の署名文をグループ公開鍵の一部およびメンバー証明書の一部を用いて作成し、第１および第２の暗号文と知識の署名文とを含む電子署名データを作成してこれを検証装置に対して出力する第４の機能とを有すると共に、署名部の第３の機能で第２の暗号文を作成する際に使用した乱数をτ［ｉ］とし、χ［ｉ］に対応するＥ’［ｉ］とＥとを乗算した数値をＧとし、全ての属性χ［ｉ］に対応するｒ［ｉ］を全て加算してこれにβを加えたものをｒとすると、署名部の第４の機能が、Ｇ、ｒ、特定の部分集合に属する属性値ζ［ｉ］、第２の機能で第１の暗号文を作成する際に使用した乱数τ、およびτ’［ｉ］が与えられた特定の条件を、満たすことを示す知識の署名文を作成することを特徴とする。【００１５】
上記目的を達成するため、本発明に係る検証装置は、特定のグループに属しているユーザ装置、識別情報を特定する権限を持つ特定装置、およびユーザの持つ属性値を特定する権限を持つ属性値開示装置と相互に接続されて匿名認証システムを構成し、構成されるユーザ装置の識別情報について特定せずにユーザ装置がグループに属していることを検証する検証装置であって、ユーザ装置公開鍵、ユーザ装置がグループに属していることを示すグループ公開鍵、グループ公開鍵に対応するグループ秘密鍵を使って作成されたメンバー証明書、ユーザの属性の各々に対応する属性値とユーザ秘密鍵を使って作成された属性値証明書、特定装置の特定装置公開鍵、および属性値開示装置の属性値開示装置公開鍵を予め記憶している記憶手段と、グループ公開鍵および特定装置公開鍵を予め記憶している記憶手段と、ユーザ装置から受信した電子署名データに含まれる第１および第２の暗号文を抽出し、知識の署名文が正当であるか否かをグループ公開鍵を用いて検証する署名文検証機能と、第１の暗号文を特定装置公開鍵に対応する特定装置秘密鍵を持つ特定装置に転送してユーザ装置の識別情報の特定を依頼し、さらに第２の暗号文を属性値開示装置公開鍵に対応する属性値開示装置秘密鍵を持つ属性値開示装置に転送して属性値の特定を依頼する開示依頼機能とを有することを特徴とする。【００１６】
上記目的を達成するため、本発明に係る匿名認証方法は、特定のグループに属しているユーザ装置と、ユーザ装置の識別情報について特定せずにユーザ装置がグループに属していることを検証する検証装置と、識別情報を特定する権限を持つ特定装置と、ユーザの持つ属性値を特定する権限を持つ属性値開示装置とが相互に接続されて構成される匿名認証システムにあって、ユーザ装置公開鍵とこれに対応するユーザ装置秘密鍵、ユーザ装置がグループに属していることを示すグループ公開鍵、グループ公開鍵に対応するグループ秘密鍵を使って作成されたグループ公開鍵の一部Φ＿１をユーザ秘密鍵δで冪乗剰余した数値とグループ公開鍵の別の一部Φ＿２をメンバー証明書の一部βで冪乗剰余した数値とグループ公開鍵のさらに別の一部Φ＿０とを乗算してこれをグループ秘密鍵πとメンバー証明書の一部κから作られたデータρの逆数で冪乗剰余した数値Ｅを含むメンバー証明書、ユーザの属性のｉ番目χ［ｉ］に対応する属性値とχ［ｉ］から得られたデータΨ＿１［ｉ］をδで冪乗剰余した数値とχ［ｉ］から得られたデータΨ２を属性証明書の一部ｒ［ｉ］で冪乗剰余した数値と属性χ［ｉ］から得られたデータΨ＿０［ｉ］とを乗算してこれをρの逆数で冪乗剰余した数値Ｅ’［ｉ］を含むユーザ秘密鍵を使って作成された属性値証明書、特定装置の特定装置公開鍵、および属性値開示装置の属性値開示装置公開鍵を予め記憶し、ユーザの持つ複数の属性を分類した複数の部分集合を入力として受け取り、ユーザ装置公開鍵を特定装置公開鍵で暗号化した第１の暗号文を作成し、部分集合のうちの特定のものに属する属性値を属性値開示装置公開鍵で暗号化した第２の暗号文を作成し、第２の暗号文を作成する際に使用した乱数をτ［ｉ］とし、χ［ｉ］に対応するＥ’［ｉ］とＥとを乗算した数値をＧとし、全ての属性χ［ｉ］に対応するｒ［ｉ］を全て加算してこれにβを加えたものをｒとすると、Ｇ、ｒ、特定の部分集合に属する属性値ζ［ｉ］、第２の機能で第１の暗号文を作成する際に使用した乱数τ、およびτ’［ｉ］が与えられた特定の条件を、満たすことを示す知識の署名文をグループ公開鍵の一部およびメンバー証明書の一部を用いて作成し、第１および第２の暗号文と知識の署名文とを含む電子署名データを作成してこれを検証装置に対して出力すると共に、これらの各処理内容をユーザ装置が実行し、グループ公開鍵および特定装置公開鍵を予め記憶し、ユーザ装置から受信した電子署名データに含まれる第１および第２の暗号文を抽出し、知識の署名文が正当であるか否かをグループ公開鍵を用いて検証すると共に、これらの各処理内容を検証装置が実行することを特徴とする。【００１７】
上記目的を達成するため、本発明に係る匿名認証プログラムは、特定のグループに属しているユーザ装置と、ユーザ装置の識別情報について特定せずにユーザ装置がグループに属していることを検証する検証装置と、識別情報を特定する権限を持つ特定装置と、ユーザの持つ属性値を特定する権限を持つ属性値開示装置とが相互に接続されて構成される匿名認証システムにあって、
ユーザ装置公開鍵とこれに対応するユーザ装置秘密鍵、ユーザ装置がグループに属していることを示すグループ公開鍵、グループ公開鍵に対応するグループ秘密鍵を使って作成されたグループ公開鍵の一部Φ＿１をユーザ秘密鍵δで冪乗剰余した数値とグループ公開鍵の別の一部Φ＿２をメンバー証明書の一部βで冪乗剰余した数値とグループ公開鍵のさらに別の一部Φ＿０とを乗算してこれをグループ秘密鍵πとメンバー証明書の一部κから作られたデータρの逆数で冪乗剰余した数値Ｅを含むメンバー証明書、ユーザの属性のｉ番目χ［ｉ］に対応する属性値とχ［ｉ］から得られたデータΨ＿１［ｉ］をδで冪乗剰余した数値とχ［ｉ］から得られたデータΨ２を属性証明書の一部ｒ［ｉ］で冪乗剰余した数値と属性χ［ｉ］から得られたデータΨ＿０［ｉ］とを乗算してこれをρの逆数で冪乗剰余した数値Ｅ’［ｉ］を含むユーザ秘密鍵を使って作成された属性値証明書、特定装置の特定装置公開鍵、および属性値開示装置の属性値開示装置公開鍵を予め記憶しているコンピュータに、ユーザの持つ複数の属性を分類した複数の部分集合を入力として受け取る手順、ユーザ装置公開鍵を特定装置公開鍵で暗号化した第１の暗号文を作成する手順、部分集合のうちの特定のものに属する属性値を属性値開示装置公開鍵で暗号化した第２の暗号文を作成する手順、第２の暗号文を作成する際に使用した乱数をτ［ｉ］とし、χ［ｉ］に対応するＥ’［ｉ］とＥとを乗算した数値をＧとし、全ての属性χ［ｉ］に対応するｒ［ｉ］を全て加算してこれにβを加えたものをｒとすると、Ｇ、ｒ、特定の部分集合に属する属性値ζ［ｉ］、第２の機能で第１の暗号文を作成する際に使用した乱数τ、およびτ’［ｉ］が与えられた特定の条件を、満たすことを示す知識の署名文をグループ公開鍵の一部およびメンバー証明書の一部を用いて作成し、第１および第２の暗号文と知識の署名文とを含む電子署名データを作成してこれを検証装置に対して出力する手順を実行させることを特徴とする。
【発明の効果】
【００１８】
本発明は、上述したようにユーザ装置がユーザ装置公開鍵を特定装置公開鍵で暗号化した第１の暗号文、属性値を属性値開示装置公開鍵で暗号化した第２の暗号文、および知識の署名文とを含む電子署名データを作成して出力するように構成したので、検証装置がこの知識の署名文を検証したら属性値の特定を属性値開示装置に依頼することができる。これによって、２値ではない具体的な数値を持つ属性値を扱うことができ、ユーザがその属性値自体を隠しつつもその属性値が特定の条件を満たすことを証明することが可能である匿名認証システム、ユーザ装置、検証装置、匿名認証方法および匿名認証プログラムを提供することができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の第１の実施形態に係る匿名認証システムの構成を示す説明図である。
【図２】図１に示した署名部および検証部のより詳しい構成を示す説明図である。
【図３】図１に示した署名部の動作を示すフローチャートである。
【図４】図１に示した検証部の動作を示すフローチャートである。
【図５】図１に示した特定部の動作を示すフローチャートである。
【図６】図１に示した属性値開示部の動作を示すフローチャートである。
【図７】本発明の第２の実施形態に係る匿名認証システムの構成を示す説明図である。
【図８】図７の続きである。
【図９】図７〜８に示した署名部および検証部のより詳しい構成を示す説明図である。
【図１０】図７〜８に示した特定装置鍵生成部の動作を示すフローチャートである。
【図１１】図７〜８に示した属性値開示装置鍵生成部の、属性値開示装置公開鍵（ａｐｋ）を生成する動作を示すフローチャートである。
【図１２】図７〜８に示した属性値開示装置鍵生成部の、属性値開示装置鍵秘密鍵（ａｓｋ）を生成する動作を示すフローチャートである。
【図１３】図７〜８に示したグループ鍵生成部の動作を示すフローチャートである。
【図１４】図７〜８に示したユーザ装置鍵作成部の動作を示すフローチャートである。
【図１５】図７〜８に示したメンバー証明書発行部およびメンバー証明書獲得部の動作を示すフローチャートである。
【図１６】図７〜８に示した属性値証明書発行部および属性値証明書獲得部の動作について示すフローチャートである。
【図１７】図７〜８に示した署名部の動作について示すフローチャートである。
【図１８】図７〜８に示した検証部の動作について示すフローチャートである。
【図１９】図７〜８に示した特定部の動作について示すフローチャートである。
【図２０】図７〜８に示した属性値開示部の動作について示すフローチャートである。
【発明を実施するための形態】
【００２０】
（第１の実施形態）
以下、本発明の第１の実施形態の構成について添付図１〜２に基づいて説明する。
最初に、本実施形態の基本的な内容について説明し、その後でより具体的な内容について説明する。
本実施形態に係る匿名認証システム１は、特定のグループに属しているユーザ装置１０と、ユーザ装置の識別情報について特定せずにユーザ装置がグループに属していることを検証する検証装置２０と、識別情報を特定する権限を持つ特定装置３０と、ユーザの持つ属性値を特定する権限を持つ属性値開示装置４０とが相互に接続されて構成される匿名認証システムである。ユーザ装置１０は、ユーザ装置公開鍵１８１とこれに対応するユーザ装置秘密鍵１８２、ユーザ装置がグループに属していることを示すグループ公開鍵１９１、グループ公開鍵に対応するグループ秘密鍵１９２を使って作成されたメンバー証明書１９３、ユーザの属性の各々に対応する属性値とユーザ秘密鍵を使って作成された属性値証明書１８４、特定装置の特定装置公開鍵１６１、および属性値開示装置の属性値開示装置公開鍵１７１を予め記憶している記憶手段１３と、電子署名データを作成して認証装置に送信する署名部１１０とを有する。この署名部１１０は、ユーザの持つ複数の属性を分類した複数の部分集合を入力として受け取る第１の機能１１１と、ユーザ装置公開鍵を特定装置公開鍵で暗号化した第１の暗号文を作成する第２の機能１１２と、部分集合のうちの特定のものに属する属性値を属性値開示装置公開鍵で暗号化した第２の暗号文を作成する第３の機能１１３と、ユーザ装置公開鍵の一部と全ての属性の各々に対応する属性値証明書の数値とを乗算したデータが予め与えられた特定の条件を満たすことを示す知識の署名文をグループ公開鍵の一部およびメンバー証明書の一部を用いて作成し、第１および第２の暗号文と知識の署名文とを含む電子署名データを作成してこれを出力する第４の機能１１４とを有する。
【００２１】
このメンバー証明書１９３は、グループ公開鍵の一部Φ＿１をユーザ秘密鍵δで冪乗剰余した数値とグループ公開鍵の別の一部Φ＿２をメンバー証明書の一部βで冪乗剰余した数値とグループ公開鍵のさらに別の一部Φ＿０とを乗算してこれをグループ秘密鍵πとメンバー証明書の一部κから作られたデータρの逆数で冪乗剰余した数値Ｅを含み、属性のｉ番目χ［ｉ］に対応する属性値証明書１８４が、χ［ｉ］から得られたデータΨ＿１［ｉ］をδで冪乗剰余した数値とχ［ｉ］から得られたデータΨ２を属性証明書の一部ｒ［ｉ］で冪乗剰余した数値と属性χ［ｉ］から得られたデータΨ＿０［ｉ］とを乗算してこれをρの逆数で冪乗剰余した数値Ｅ’［ｉ］を含み、署名部１１０の第３の機能１１３で第２の暗号文を作成する際に使用した乱数をτ［ｉ］とし、χ［ｉ］に対応するＥ’［ｉ］とＥとを乗算した数値をＧとし、全ての属性χ［ｉ］に対応するｒ［ｉ］を全て加算してこれにβを加えたものをｒとすると、署名部１１０の第４の機能１１４が、Ｇ、ｒ、特定の部分集合に属する属性値ζ［ｉ］、第２の機能で第１の暗号文を作成する際に使用した乱数τ、およびτ’［ｉ］が与えられた特定の条件を満たすことを示す知識の署名文を作成する。
【００２２】
また、グループ公開鍵はΦ＿０、Φ＿１、およびΦ＿２の他にΥおよびΩなるデータを含み、複数の部分集合が、属性のみを開示する第１の部分集合と、属性を開示して属性値を暗号化の対象とする第２の部分集合と、属性および属性値を開示する第３の部分集合とを含む。署名部の第４の機能１１４は、まずＺ／ｑＺからα、ｄ、ｂ、ａ、ｋをランダムに選び、さらに第１および第２の部分集合に属する属性χ［ｉ］に対しｄ’［ｉ］をランダムに選び、全ての属性χ［ｉ］に対応するＥ’［ｉ］とＥとΦ＿２をαでべき乗剰余した数値を乗算した数値をＦとし、続いて第１および第２の部分集合に属する属性χ［ｉ］に対応するΨ＿１［ｉ］とｄ’［ｉ］でべき乗剰余した数値を乗算した数値とΦ＿１をｄでべき乗剰余した数値とΦ＿２をｂでべき乗剰余した数値とを乗算した数値をΥとをペアリングした数値と、Φ＿２をａでべき乗剰余した数値とΩをペアリングした数値と、Υをｋの符号反転でべき乗剰余した数値をＦとペアリングした数値とを乗算した数値をＬとし、ＦとＬとを含むデータのハッシュ値をｃとし、αとｃとを乗算した数値にａを加算した数値を所定のモジュラスで剰余した数値をＡとし、δとｃとを乗算した数値にｄを加算した数値を所定のモジュラスで剰余した数値をＤとし、κとｃとを乗算した数値にｋを加算した数値を所定のモジュラスで剰余した数値をＫとし、全ての属性χ［ｉ］に対応するｒ［ｉ］を全て加算した数値にβを加算し、これにκとαの積を加算した数値にｃを乗算した数値に、ｂを所定のモジュラスで剰余した数値をＢとし、第１および第２の部分集合に属するχ［ｉ］に対応する各ｉに対してζ［ｉ］とｃとを乗算した数値にｄ’［ｉ］を加算した数値を所定のモジュラスで剰余した数値をＤ’［ｉ］とし、Ｆ、ｃ、Ａ、Ｄ、Ｔ、Ｂ、Ｋ、およびＤ’［ｉ］を含むデータを署名文として出力する。
【００２３】
その一方で検証装置２０は、グループ公開鍵１９１および特定装置公開鍵１６１を予め記憶している記憶手段２３と、ユーザ装置から受信した電子署名データに含まれる第１および第２の暗号文を抽出し、知識の署名文が正当であるか否かをグループ公開鍵を用いて検証する署名文検証機能１２１と、第１の暗号文を特定装置公開鍵に対応する特定装置秘密鍵を持つ特定装置３０に転送してユーザ装置の識別情報の特定を依頼し、第２の暗号文を属性値開示装置公開鍵に対応する属性値開示装置秘密鍵を持つ属性値開示装置に転送して属性値の特定を依頼する開示依頼機能１２２とを有する。
【００２４】
また、グループ公開鍵がΦ＿０、Φ＿１、Φ＿２、Υ、Ωという各々のデータを含み、複数の部分集合が、属性のみを開示する第１の部分集合と、属性を開示して属性値を暗号化の対象とする第２の部分集合と、属性および属性値を開示する第３の部分集合とを含み、署名文はＦ、ｃ、Ａ、Ｄ、Ｂ、Ｋという各々のデータと、第１および第２の部分集合に属するχ［ｉ］に対しＤ’［ｉ］を含む。そして署名文検証機能１２１は、全ての部分集合に属する各属性χ［ｉ］からデータΨ＿０［ｉ］およびΨ＿１［ｉ］を計算し、続いて第１および第２の部分集合に属するχ［ｉ］に対してΨ＿１［ｉ］をＤ’［ｉ］でべき乗剰余した数値の積とΦ１をＤでべき乗剰余した数値とΦ２をＢでべき乗剰余した数値との積をΥとをペアリングした数値と、Φ＿２をＡでべき乗剰余した数値にΩをペアリングした数値と、ΥにＫの符号反転とＦとをペアリングした数値と、全ての部分集合に属するχ［ｉ］に対応するΨ＿０［ｉ］の積と第３の集合に属するχ［ｉ］に対応するΨ＿１［ｉ］をζ［ｉ］でべき乗剰余した数値にΦ＿０を乗算した数値をＬとし、続いてＦとＬを含むデータのハッシュ値がｃに等しければ署名文を受理し、そうでなければ拒否する。
【００２５】
この構成を備えることにより、本実施形態の匿名認証システムは、検証装置がこの知識の署名文を検証したら属性値の特定を属性値開示装置に依頼することができるので、２値ではない具体的な数値を持つ属性値を扱うことができ、ユーザがその属性値自体を隠しつつもその属性値が特定の条件を満たすことを証明することを可能とすることができる。
以下、これをより詳細に説明する。
【００２６】
まず、本実施形態の基本的な動作から説明する。通常の匿名認証署名技術では、まず各ユーザの秘密鍵をδ、公開鍵をΔ＝Θ＾δとし、予めメンバー証明書発行装置を持つ権限者から、以下の数１を満たすメンバー証明書（β、κ、Ｅ）を得ている。ここで関数ｅは双線形ペアリングであり、Φ＿０、Φ＿１、Φ＿２、Ω、Υは権限者の公開鍵である。本明細書では、数式以外の行では「Ａに上付き文字Ｂを付したもの（たとえばＡのＢ乗など）」を「Ａ＾Ｂ」と表記し、また「Ａに下付き文字Ｂを付したもの」を「Ａ＿Ｂ」と表記する。
【００２７】
【数１】
2011148902.tif 000003
各ユーザは、ｉ＝１、…、ｎに対し、属性χ［ｉ］の属性証明書として、以下の数２を満たすＥ［ｉ］を属性証明書発行装置を持つ権限者から得る。ここでΦ’［ｉ］は、権限者の公開鍵の一部である。
【００２８】
【数２】
2011148902.tif 000004
ここでＦを以下の数３のように定義すると、数１および数２より、以下の数４に示す関係が成立する。
【００２９】
【数３】
2011148902.tif 000005
【００３０】
【数４】
2011148902.tif 000006
以上の関係を満たす署名文を作成する際には、乱数τをランダムに選んで、以下の数５に示す暗号文Ｃｉｐｈｅｒを作成し、これと数４とを満たす（δ、β、Ｆ）を知識の署名として作成する。ここでｏｐｋは、特定装置の公開鍵である。
【００３１】
【数５】
2011148902.tif 000007
検証者は、この知識の署名を検証することで、署名文の正当性を確認することができる。また、特定装置はｏｐｋに対応する秘密鍵でＣｉｐｈｅｒを復号することで、ユーザの公開鍵Δ＝Θ＾δを得て、Δに対応するユーザのＩＤを特定することができる。
【００３２】
これに対して、本実施形態では、属性値を開示する権限者をおき、その権限者が持つ装置を属性値開示装置という。Ｈａｓｈ＿０およびＨａｓｈ＿１をハッシュ関数とし、χ［ｉ］を各ユーザの属性、ζ［ｉ］をχ［ｉ］の属性値、Ψ＿０［ｉ］＝Ｈａｓｈ＿０（χ［ｉ］）、Ψ＿１［ｉ］＝Ｈａｓｈ＿１（χ［ｉ］）として各々定義する。
【００３３】
本実施形態では、数２の関係を満たすＥ［ｉ］に代えて、各ユーザの属性を証明する属性値証明書として以下の数６の関係を満たす組（ｒ［ｉ］、Ｅ’［ｉ］）を用いる。
【００３４】
【数６】
2011148902.tif 000008
ユーザは、電子署名を生成する際自らの持つ属性を示す｛１、…、ｎ｝を、３つの部分集合Ｈ、Ｉ、Ｊに分割する。
ｉ∈Ｈとなる属性χ［ｉ］に対しては、属性値ζ［ｉ］を検証者にはもちろん、属性値開示装置を持つ権限者に対してすら隠したい。
ｉ∈Ｉとなる属性χ［ｉ］に対しては、属性値ζ［ｉ］を検証者には隠したいが、属性値開示装置を持つ権限者には開示してもよい。
ｉ∈Ｊとなる属性χ［ｉ］に対しては、属性値ζ［ｉ］を検証者に開示してもよい。
【００３５】
Ｇおよびｒを以下の数７のように定義すると、数１および数６より、以下の数８に示す関係が成立する。ここでＥｎｃおよびＥｎｃ’は暗号化関数であり、τ、τ’［ｉ］は乱数である。
【００３６】
【数７】
2011148902.tif 000009
【００３７】
【数８】
2011148902.tif 000010
ユーザの操作するユーザ装置は、以下の数９に示すＣｉｐｈｅｒ［ｉ］を計算する。そしてユーザ装置は、各ｉ∈Ｊに対して属性値ζ［ｉ］を開示し、各ｉ∈Ｉに対して属性値の開示の対象とする属性値開示装置Ｒ［ｉ］を選んでそのＲ［ｉ］の公開鍵をａｐｋ［ｉ］とすると、各ｉ∈Ｉに対して以下の数１０に示す暗号文Ｃｉｐｈｅｒ’［ｉ］を計算し、これによって署名文を作成する。
【００３８】
【数９】
2011148902.tif 000011
【００３９】
【数１０】
2011148902.tif 000012
属性値開示装置Ｒ［ｉ］は、ａｐｋ［ｉ］に対応する秘密鍵を持っているので、Ｃｉｐｈｅｒ’［ｉ］を復号化して属性値ζ［ｉ］を得ることができる。
【００４０】
図１は、本発明の第１の実施形態に係る匿名認証システム１の構成を示す説明図である。匿名認証システム１は、ユーザが操作するコンピュータ装置であるユーザ装置１０と、検証者が操作するコンピュータ装置である検証装置２０と、検証装置２０からの要求に応じて動作する特定装置３０および属性値開示装置４０とからなり、これらの各々の装置はネットワーク５０を介して相互に通信可能である。図１にはこれらの各装置を１台ずつしか表記しないが、実際にはその台数は１台以上何台でもよい。
【００４１】
ユーザ装置１０は、コンピュータプログラムを実行する主体である演算手段（ＣＰＵ、Central Processing Unit）１１と、ユーザからの入力操作を受け付け、また演算手段１１による計算結果を表示する入出力手段１２と、演算部１１が実行するコンピュータプログラムやデータなどを記憶する記憶手段（ＲＡＭ: Random Access Memory、およびＲＯＭ: Read Only Memory）１３と、他のコンピュータとネットワーク５０を介してデータの交換を行う通信手段１４とを備える。
【００４２】
検証装置２０も同様に、演算手段２１、記憶手段２３、通信手段２４を備え、さらに計算結果を表示する表示手段２２を備える。特定装置３０も同様に、演算手段３１、記憶手段３３、通信手段３４を備える。属性値開示装置４０も同様に、演算手段４１、記憶手段４３、通信手段４４を備える。ハードウェアとしてのこれら各手段の機能および構成は、各装置で同一である。
【００４３】
ユーザ装置１０の演算手段１１では、署名部１１０がコンピュータプログラムとして動作する。検証装置２０の演算手段２１では、検証部１２０がコンピュータプログラムとして動作する。そして特定装置３０の演算手段３１では、特定部１３０がコンピュータプログラムとして動作する。さらに属性値開示装置４０の演算手段４１では、属性値開示部１４０がコンピュータプログラムとして動作する。
【００４４】
また、これら各装置の各々の記憶手段１３、２３、３３、４３では、システムパラメータ１５０と呼ばれる共通のデータが予め周知され、記憶されている。システムパラメータ１５０は、素数ｑ、位数ｑの群ＧＲＰ［１］、ＧＲＰ［２］、ＧＲＰ［３］、ＧＲＰ’（の上の群演算を行う為に十分な情報）、ＧＲＰ［１］×ＧＲＰ［２］からＧＲＰ［３］への双線形写像ｅ：ＧＲＰ［１］×ＧＲＰ［２］→ＧＲＰ［３］（を計算する為に十分な情報）、およびＧＲＰ’の生成元Θからなる。
【００４５】
安全性上の観点から言えば、ＧＲＰ［１］、ＧＲＰ［２］、ＧＲＰ［３］上の離散対数問題が困難である事が望ましい。このような群の例として例えば楕円曲線群ないしその素数位数部分群がある。楕円曲線群は必ず数１１で示される代数方程式により特徴づけられるので（ａ、ｂ、ｐ）が与えられてさえいればば楕円曲線群上の群演算を行う事が可能である。
【００４６】
【数１１】
2011148902.tif 000013
楕円曲線群の素数位数部分群を使う場合は、その部分群の生成元も必要である。また双線形写像ｅとしては例えばＷｅｉｌペアリングやＴａｔｅペアリングを用いる事ができる。安全性上の観点から言えば、ＧＲＰ’上のＤＤＨ問題が困難である事が望ましい。このような群の例として例えば楕円曲線群、巡回群、ないしそれらの素数位数部分群がある。
【００４７】
また、特定装置３０には公開鍵および秘密鍵が事前に生成されて付与され、記憶手段３３に予め記憶されている。これらを各々特定装置公開鍵（ｏｐｋ）１６１、特定装置秘密鍵（ｏｓｋ）１６２という。特定装置公開鍵（ｏｐｋ）１６１は、ネットワーク５０を介してユーザ装置１０の記憶手段１３、および検証装置２０の記憶手段２３にも配布され、記憶されている。
【００４８】
この特定装置公開鍵（ｏｐｋ）１６１および特定装置秘密鍵（ｏｓｋ）１６２として、特定の公開鍵暗号方式の公開鍵・秘密鍵ペアが使用される。その公開鍵暗号方式の暗号化関数をＥｎｃと表記する。記号Ｅｎｃ（ｏｐｋ、Ｍ；ｒ）で、公開鍵ｏｐｋと乱数ｒを用いて平文Ｍを暗号化関数Ｅｎｃで暗号化した暗号文を表す。
【００４９】
さらに、属性値開示装置４０にも公開鍵および秘密鍵が事前に生成されて付与され、記憶手段４３に予め記憶されている。これらを各々属性値開示装置公開鍵（ａｐｋ）１７１、属性値開示装置秘密鍵（ａｓｋ）１７２という。属性値開示装置公開鍵（ａｐｋ）１７１は、ネットワーク５０を介してユーザ装置１０の記憶手段１３、および検証装置２０の記憶手段２３にも配布され、記憶されている。
【００５０】
この属性値開示装置公開鍵（ａｐｋ）１７１および属性値開示装置秘密鍵（ａｓｋ）１７２として、特定の公開鍵暗号方式の公開鍵・秘密鍵ペアが使用される。その公開鍵暗号方式の暗号化関数をＥｎｃ’と表記する。記号Ｅｎｃ’（ａｐｋ、Ｍ；ｒ）で、公開鍵ａｐｋと乱数ｒを用いて平文Ｍを暗号化関数Ｅｎｃで暗号化した暗号文を表す。
【００５１】
各々のユーザ装置１０には公開鍵および秘密鍵が事前に生成されて付与され、記憶手段１３に予め記憶されている。これらを各々ユーザ装置公開鍵１８１、ユーザ装置秘密鍵１８２という。さらに特定装置３０の記憶手段３３には、各ユーザ装置１０のＩＤとそのユーザ装置１０のユーザ装置公開鍵１８１との組からなるリスト（ＬＩＳＴ）１８３が特定装置３０の記憶手段３３に予め記憶されている。ここで、ユーザ装置公開鍵１８１はＧＲＰ’の元Δであり、ユーザ装置秘密鍵１８２はＺ／ｑＺの元δである。これらはΔ＝Θ＾δの関係を満たす。
【００５２】
本実施形態では、各々のユーザ装置１０は何らかのグループに属している。このグループには、グループ固有の公開鍵が付与されている。これをグループ公開鍵１９１という。以下、説明を簡単にするため、グループの数が１つのみであるものとするが、グループが複数存在する場合に対してもここで説明する本実施形態の方法は容易に拡張できる。グループ公開鍵１９１は事前に生成され、各々のユーザ装置１０の記憶手段１３に予め記憶されている。
【００５３】
グループ公開鍵１９１は、ＧＲＰ［１］の３元Φ＿０、Φ＿１、Φ＿２、およびＧＲＰ［２］の２元Υ、Ωからなる組である。これに対応するグループ秘密鍵は、Ω＝Υ＾ωを満たす元ωである。グループ公開鍵１９１およびこれに対応するグループ秘密鍵は、＊＊によって予め作成され、グループ公開鍵１９１のみがグループに属しているユーザ装置１０に与えられる。
【００５４】
グループに属しているユーザ装置１０には、同時にグループに属している事を証明する情報が付与される。この情報をメンバー証明書１９３という。メンバー証明書１９３は、Ｚ／ｑＺの２元β、κ、およびＧＲＰ［１］の元Ｅからなる組であり、以下の数１２の関係を満たす。ここでρ＝ω＋κである。
【００５５】
【数１２】
2011148902.tif 000014
Ω＝Υ＾ωであるので、数１２は以下の数１３のようにも書き換えることが可能である。
【００５６】
【数１３】
2011148902.tif 000015
またグループに属している各々のユーザ装置１０には、その各々のユーザ装置１０（を管理している個人もしくは団体）の属性χ［１］、…、χ［ｎ］が付与されている。それらの属性の一部または全てに属性値が割り振られており、さらにそれらの属性値の正当性を証明する情報が付与されている。この情報は属性値証明書１８４と呼ばれる。
【００５７】
属性値証明書１８４で付与される属性の例としては、名前、性別、年齢、住所、電話番号などがあるが、どのようなものであっても構わない。それらの属性値は、例えば性別であれば「男性」もしくは「女性」、年齢であれば「１８歳」「３５歳」などのようなものである。本実施形態では、属性は任意のビット列として表現され、属性値は０以上ｑ以下の数字であるものとする。
【００５８】
Ｈａｓｈ＿０およびＨａｓｈ＿１は、ＧＲＰ［１］に値を取る相異なるハッシュ関数である。ユーザ装置１０のメンバー証明書１９３が（β、κ、Ｅ）である場合、そのユーザ装置１０の属性χ［ｉ］の属性がζ［ｉ］である事を証明する属性値証明書１８４はＺ／ｑＺの元とＧＲＰ［１］の元との組（ｒ［ｉ］、Ｅ’［ｉ］）であり、以下の数１４の関係を満たす。
【００５９】
【数１４】
2011148902.tif 000016
ここで、Ψ＿０［ｉ］、Ψ＿１［ｉ］、ρ、およびΩは、以下の数１５の関係を満たすので、数１４は以下の数１６のようにも表現できる。
【００６０】
【数１５】
2011148902.tif 000017
【００６１】
【数１６】
2011148902.tif 000018
本実施形態として説明する方法は、グループに属しているユーザ装置１０しか利用する事ができないので、以下とくに断りがない限り、ユーザ装置１０はグループに属しているものとする。
【００６２】
図２は、図１に示した署名部１１０および検証部１２０のより詳しい構成を示す説明図である。署名部１１０は、入出力手段１２および記憶手段１３から入力を受け付ける第１の機能（入力受け付け機能）１１１と、後述の第１の暗号文（Ｃｉｐｈｅｒ）を作成する第２の機能（第１の暗号文作成機能）１１２と、後述の第２の暗号文（Ｃｉｐｈｅｒ’［ｉ］）を作成する第３の機能（第２の暗号文作成機能）１１３と、知識の署名Ｐｒｏｏｆを作成してこれを第１の暗号文（Ｃｉｐｈｅｒ）、第２の暗号文（Ｃｉｐｈｅｒ’［ｉ］）と合わせて電子署名データＳｉｇｎａｔｕｒｅとして出力する第４の機能（署名文出力機能）１１４とを有する。
【００６３】
これに対して検証部１２０は、ユーザ装置１０から受信した電子署名データＳｉｇｎａｔｕｒｅが正当であるか否かを判断する署名文検証機能１２１と、この電子署名データＳｉｇｎａｔｕｒｅが正当であれば特定装置３０にユーザの特定を依頼し、さらに属性値開示装置４０に属性値の開示を依頼する開示依頼機能１２２とを備える。
【００６４】
図３は、図１に示した署名部１１０の動作を示すフローチャートである。χ［１］、…、χ［Ｎ］をユーザ装置１０の属性とする。ユーザ装置１０は、入出力手段１２から文書Ｍが入力されると、署名部１１０はこの文書Ｍに対する署名文を作成する。
【００６５】
署名部１１０の第１の機能（入力受け付け機能）１１１には、システムパラメータ１５０、以下の数１７に示されるグループ公開鍵（ｉｐｋ）１９１、特定装置公開鍵（ｏｐｋ）１６１、ユーザ装置公開鍵（Δ）１８１とユーザ装置秘密鍵（δ）１８２とメンバー証明書１９３（β、κ、Ｅ）、文書Ｍ、以下の数１７に示されるユーザ装置１０の属性の組、属性の属性値の組、属性値証明書１８４の組、および属性値開示装置公開鍵（ａｐｋ）１７１の組が入力される（ステップＳ２０１）。
【００６６】
【数１７】
2011148902.tif 000019
署名部１１０の第２の機能（第１の暗号文作成機能）１１２は、これに続いてＺ／ｑＺから乱数τを選び、以下の数１８に示される暗号文Ｃｉｐｈｅｒを計算する（ステップＳ２０２）。
【００６７】
【数１８】
2011148902.tif 000020
署名部１１０の第３の機能（第２の暗号文作成機能）１１３は、さらに各ｉ∈Ｉに対しＺ／ｑＺから乱数τ’［ｉ］を選び、以下の数１９に示される各属性値に対する暗号文Ｃｉｐｈｅｒ’［ｉ］を計算する（ステップＳ２０３）。
【００６８】
【数１９】
2011148902.tif 000021
そして署名部１１０の第４の機能（署名文出力機能）１１４は、以下の数２０に示す知識の署名Ｐｒｏｏｆを作成する（ステップＳ２０４）。このＰｒｏｏｆは、以下の数２１に示す条件を満たす。
【００６９】
【数２０】
2011148902.tif 000022
【００７０】
【数２１】
2011148902.tif 000023
最後に署名部１１０の第４の機能（署名文出力機能）１１４は、以下の数２２に示す電子署名データＳｉｇｎａｔｕｒｅを出力する（ステップＳ２０５）。
【００７１】
【数２２】
2011148902.tif 000024
ここで、Ｇ’’、ｒ’’ 、ζ’’［ｉ］、τ’’［ｉ］として各々以下の数２３に示す数値を適用し、かつδ’’およびτ’’としてδ’およびτを各々適用すれば、上述の式を全て満たす事が分かる。
【００７２】
【数２３】
2011148902.tif 000025
生成された電子署名データＳｉｇｎａｔｕｒｅは、以下の数２４に示す質問文Ｑと共に検証装置２０に送られる。
【００７３】
【数２４】
2011148902.tif 000026
検証装置２０は、検証部１２０によって署名文が正当な方法で作成された事を確認する。図４は、図１に示した検証部１２０の動作を示すフローチャートである。検証部１２０の署名文検証機能１２１は、まず電子署名データＳｉｇｎａｔｕｒｅが正当なものであるか否かを検証し（ステップＳ２１１）、正当なものであれば受理し、そうでなければ拒否する（ステップＳ２１２〜２１３）。署名文検証機能１２１はこの受理および拒否の検証結果を、表示手段２２に表示させてもよいし、またユーザ装置１０にこの検証結果を返送して入出力手段１２に表示させてもよいし、認証に続く処理を行う他のコンピュータに転送してもよい。
【００７４】
また、電子署名データＳｉｇｎａｔｕｒｅが正当なものであれば、検証部１２０の開示依頼機能１２２は必要に応じて、質問文Ｑおよび電子署名データＳｉｇｎａｔｕｒｅを特定装置３０に送ってユーザの特定を依頼し（ステップＳ２１４）、さらにそれらを属性値開示装置４０に送って属性値の開示を依頼する（ステップＳ２１５）こともできる。ステップＳ２１４およびＳ２１５の処理は、必要のない場合には実行しなくてもよい。
【００７５】
特定装置３０はステップＳ２１４の依頼に応じて、特定部１３０によって署名文を作成した署名者を特定する。図５は、図１に示した特定部１３０の動作を示すフローチャートである。特定部１３０は、まず暗号文Ｃｉｐｈｅｒと特定装置秘密鍵（ｏｓｋ）１６２を読み込み（ステップＳ２２１）、この特定装置秘密鍵（ｏｓｋ）１６２によって、ステップＳ２０２および数１８で作成されたＣｉｐｈｅｒを復号して復号結果Δ＝θ＾δを得て（ステップＳ２２２）、これをリスト（ＬＩＳＴ）１８３と照合することにより公開鍵がΔであるユーザのＩＤを得て、これを検証装置２０に出力する（ステップＳ２２３）。
【００７６】
属性値開示装置４０はステップＳ２１５の依頼に応じて、属性値開示部１４０によってその署名文を作成した署名者の属性値χ［ｉ］を特定する。図６は、図１に示した属性値開示部１４０の動作を示すフローチャートである。
【００７７】
属性値開示部１４０は、まずＣｉｐｈｅｒ’［ｉ］と属性値開示装置秘密鍵（ａｓｋ［ｉ］）１７２を読み込み（ステップＳ２３１）、この属性値開示装置秘密鍵（ａｓｋ［ｉ］）１７２によって、ステップＳ２０３および数１９で作成されたＣｉｐｈｅｒ’［ｉ］を復号して復号結果χ［ｉ］を得て、これを検証装置２０に出力する（ステップＳ２３２）。
【００７８】
（第１の実施形態の全体的な動作）
次に、上記の実施形態の全体的な動作について説明する。本実施形態に係る匿名認証方法は、特定のグループに属しているユーザ装置と、ユーザ装置の識別情報について特定せずにユーザ装置がグループに属していることを検証する検証装置と、識別情報を特定する権限を持つ特定装置と、ユーザの持つ属性値を特定する権限を持つ属性値開示装置とが相互に接続されて構成される匿名認証システムにあって、ユーザ装置が、ユーザ装置公開鍵とこれに対応するユーザ装置秘密鍵、ユーザ装置がグループに属していることを示すグループ公開鍵、グループ公開鍵に対応するグループ秘密鍵を使って作成されたメンバー証明書、ユーザの属性の各々に対応する属性値とユーザ秘密鍵を使って作成された属性値証明書、特定装置の特定装置公開鍵、および属性値開示装置の属性値開示装置公開鍵を予め記憶し、ユーザの持つ複数の属性を分類した複数の部分集合を入力として受け取り（ステップＳ２０１）、ユーザ装置公開鍵を特定装置公開鍵で暗号化した第１の暗号文を作成し（ステップＳ２０２）、部分集合のうちの特定のものに属する属性値を属性値開示装置公開鍵で暗号化した第２の暗号文を作成し（ステップＳ２０３）、ユーザ装置公開鍵の一部と全ての属性の各々に対応する属性値証明書の数値とを乗算したデータが予め与えられた特定の条件を満たすことを示す知識の署名文をグループ公開鍵の一部およびメンバー証明書の一部を用いて作成し（ステップＳ２０４）、第１および第２の暗号文と知識の署名文とを含む電子署名データを作成してこれを出力する（ステップＳ２０５）。
【００７９】
また、この電子署名データを受信した検証装置は、グループ公開鍵および特定装置公開鍵を予め記憶し、ユーザ装置から受信した電子署名データに含まれる第１および第２の暗号文を抽出し、知識の署名文が正当であるか否かをグループ公開鍵を用いて検証する（ステップＳ２１１〜２１３）。
【００８０】
ここで、上記各動作ステップについては、これをコンピュータで実行可能にプログラム化し、これらを前記各ステップを直接実行するコンピュータであるユーザ装置１０および検証装置２０に実行させるようにしてもよい。
この動作により、本実施形態は以下のような効果を奏する。
【００８１】
本実施形態によれば、検証装置は電子署名データ（Ｓｉｎｎａｔｕｒｅ）に含まれる知識の署名文（Ｐｒｏｏｆ）を検証できた場合にこの電子署名データに含まれる第１および第２の暗号文（ＣｉｐｈｅｒおよびＣｉｐｈｅｒ’［ｉ］）を抽出して、これらの暗号文の作成に使用された特定装置公開鍵に対応する秘密鍵を持つ特定装置と、属性値開示装置公開鍵に対応する秘密鍵を持つ属性値開示装置にユーザの特定と属性値の特定を依頼することができる。従って、この電子署名データ（Ｓｉｎｎａｔｕｒｅ）で２値ではない具体的な数値を持つ属性値を扱うことができる。この属性値は、属性値開示装置を持つ権利者以外は扱えないので、ユーザは他の匿名認証システムと同様に、その属性値自体を隠しつつもその属性値が特定の条件を満たすことを証明することが可能である。
【００８２】
（第２の実施形態）
本発明の第２の実施形態は、匿名認証システム全体の基本的な構成は前述の第１の実施形態と同一としつつ、より実際の運用形態に即した構成とした。即ち、ユーザ装置をグループに追加および削除する権限を持つメンバー証明書発行装置３６０と、ユーザ装置の属性値が真正なものであることを証明する属性値証明書発行装置３７０とがさらに加わっている。
【００８３】
この実施形態によっても、第１の実施形態と同様の効果を得ることができ、かつユーザ装置のグループへの追加および削除、さらにユーザ装置の属性値の証明などを行うこともできるようになる。
以下、これをより詳細に説明する。
【００８４】
図７〜８は、本発明の第２の実施形態に係る匿名認証システム３０１の構成を示す説明図である。匿名認証システム３０１は、第１の実施形態に係る匿名認証システム１に加えて、ユーザが操作するコンピュータ装置であるユーザ装置３１０と、検証者が操作するコンピュータ装置である検証装置４３０と、検証装置３２０からの要求に応じて動作する特定装置３３０および属性値開示装置３４０とがネットワーク５０を介して相互に接続されて構成される。
【００８５】
匿名認証システム３０１には、これらに加えて、メンバー証明書発行装置３６０および属性値証明書発行装置３７０がネットワーク５０を介してユーザ装置３１０と相互に接続される。
【００８６】
ユーザ装置３１０、検証装置３２０、特定装置３３０、属性値開示装置３４０は、第１の実施形態に係るユーザ装置１０と、特定装置３０、属性値開示装置４０と、ハードウェアとしての構成は同一である。即ちユーザ装置３１０は、演算手段３１１、入出力手段３１２、記憶手段３１３、通信手段３１４を備える。検証装置３２０は、演算手段３２１、記憶手段３２３、通信手段３２４を備える。特定装置３３０は、演算手段３３１、記憶手段３３３、通信手段３３４を備える。属性値開示装置４０は、演算手段３４１、記憶手段３４３、通信手段３４４を備える。
【００８７】
また、メンバー証明書発行装置３６０および属性値証明書発行装置３７０も、ハードウェアとしての構成は同一である。即ちメンバー証明書発行装置３６０は、演算手段３６１、記憶手段３６３、通信手段３６４を備える。属性値証明書発行装置３７０も、演算手段３７１、記憶手段３７３、通信手段３７４を備える。
【００８８】
ユーザ装置３１０の演算手段３１１では、署名部４１０の他に、メンバー証明書獲得部４１５、属性値証明書獲得部４１６、ユーザ装置鍵作成部４１７がコンピュータプログラムとして動作する。検証装置３２０の演算手段３２１では、検証部４２０がコンピュータプログラムとして動作する。
【００８９】
メンバー証明書発行装置３６０の演算手段３６１では、グループ鍵生成部４６０およびメンバー証明書発行部４６１がコンピュータプログラムとして動作する。そして属性値証明書発行装置３７０の演算手段３７１では、属性値証明書発行部４７０がコンピュータプログラムとして動作する。
【００９０】
ユーザ装置３１０のメンバー証明書獲得部４１５は、メンバー証明書発行装置３６０のメンバー証明書発行部４６１に、既存のグループに対するメンバーの追加を要求する。属性値証明書獲得部４１６は、属性値証明書発行装置３７０の属性値証明書発行部４７０に、属性値証明書の発行を要求する。
【００９１】
特定装置３３０の演算手段３３１では、特定部４３０と、特定装置鍵生成部４３１がコンピュータプログラムとして動作する。特定装置鍵生成部４３１は、特定装置公開鍵（ｏｐｋ）１６１と特定装置秘密鍵（ｏｓｋ）１６２を生成する。属性値開示装置３４０の演算手段３４１では、属性値開示部４４０の他に、属性値開示装置鍵生成部４４１がコンピュータプログラムとして動作する。属性値開示装置鍵生成部４４１は、属性値開示装置公開鍵（ａｐｋ）１７１と属性値開示装置公開鍵（ａｓｋ）１７２を生成する。
【００９２】
メンバー証明書発行装置３６０のグループ鍵生成部４６０は、グループ公開鍵１９１とそれに対応する秘密鍵１９２を生成する。メンバー証明書発行部４６１は、ユーザ装置３１０のメンバー証明書獲得部４１５からの要求に応じて、既存のグループにメンバーの追加や変更などを行い、メンバー証明書１９３を発行する。属性値証明書発行装置３７０の属性値証明書発行部４７０は、ユーザ装置３１０の属性値証明書獲得部４１６からの要求に応じて、属性値証明書１８４を発行する。
【００９３】
なお、図７〜８には匿名認証システム３０１を構成する各装置を別々のコンピュータ装置として記載したが、属性値開示装置３４０、特定装置３３０、メンバー証明書発行装置３６０、属性値証明書発行装置３７０のうち２つ以上が物理的に同一のコンピュータ装置によって実現されてもよい。また、１つの匿名認証システム３０１の中に、属性値証明書発行装置３７０が属性に依存して複数台存在してもよい。
【００９４】
図９は、図７〜８に示した署名部４１０および検証部４２０のより詳しい構成を示す説明図である。署名部４１０は、第１の機能（入力受け付け機能）４１１と、第２の機能（第１の暗号文作成機能）４１２と、第３の機能（第２の暗号文作成機能）４１３と、第４の機能（署名文出力機能）４１４とを有する。検証部４２０は、署名文検証機能４２１と、開示依頼機能４２２とを備える。これらの各機能の基本的な動作は、概ね第１の実施形態で示した同名の機能と同一であるが、詳細な動作については後述する。
【００９５】
図１０は、図７〜８に示した特定装置鍵生成部４３１の動作を示すフローチャートである。特定装置鍵生成部４３１が生成する特定装置公開鍵（ｏｐｋ）１６１はＧＲＰ’の２元Λ＿１およびΛ＿２の組であり、特定装置秘密鍵（ｏｓｋ）１６２はＺ／ｑＺの元λであり、かつこれらは以下の数２５を満たす。
【００９６】
【数２５】
2011148902.tif 000027
特定装置鍵生成部４３１はまず、Ｚ／ｑＺの元λとＧＲＰ’の元Λ＿２とをランダムに選び、数２５を満たすようにΛ＿１を定義する（ステップＳ５０１）。続いて、Λ＿１およびΛ＿２の組を特定装置公開鍵（ｏｐｋ）１６１とし、λを特定装置秘密鍵（ｏｓｋ）１６２とする（ステップＳ５０２）。この特定装置公開鍵（ｏｐｋ）１６１は、匿名認証システム３０１を構成する他装置に転送されて周知のものとされる。
【００９７】
ｏｐｋ＝（Λ＿１、Λ＿２）を特定装置公開鍵（ｏｐｋ）１６１とし、ΔをＧＲＰ’の任意の元、τをＺ／ｑＺの元とすると、暗号化関数Ｅｎｃおよびこれに対応する復号関数Ｄｅｃは、以下の数２６で表現される。
【００９８】
【数２６】
2011148902.tif 000028
図１１は、図７〜８に示した属性値開示装置鍵生成部４４１の、属性値開示装置公開鍵（ａｐｋ）１７１を生成する動作を示すフローチャートである。属性値開示装置鍵生成部４４１の生成する属性値開示装置公開鍵（ａｐｋ）１７１はＧＲＰ’の２元Λ’＿１、Λ’＿２の組であり、属性値開示装置鍵秘密鍵（ａｓｋ）１７２はＺ／ｑＺの元λであり、かつこれらは以下の数２７を満たす。
【００９９】
【数２７】
2011148902.tif 000029
属性値開示装置鍵生成部４４１はまず、Ｚ／ｑＺの元λ’とＧＲＰ’の元Λ’＿２とをランダムに選び、数２７を満たすようにΛ’＿１を定義する（ステップＳ５１１）。続いて、Λ’＿１とΛ’＿２とからなる組を属性値開示装置公開鍵（ａｐｋ）１７１とし、λ’を属性値開示装置公開鍵（ａｓｋ）１７２とする（ステップＳ５１２）。この属性値開示装置公開鍵（ａｐｋ）１７１は、匿名認証システム３０１を構成する他装置に転送されて周知のものとされる。
【０１００】
ａｐｋ＝（Λ’＿１、Λ’＿２）を属性値開示装置公開鍵とし、ζおよびτ’をＺ／ｑＺの元とすると、暗号化関数Ｅｎｃ’
およびこれに対応する復号関数Ｄｅｃ’（ａｓｋ、Ｃｉｐｈｅｒ）は、以下の数２８で表現される。
【０１０１】
【数２８】
2011148902.tif 000030
図１２は、図７〜８に示した属性値開示装置鍵生成部４４１の、属性値開示装置鍵秘密鍵（ａｓｋ）１７２を生成する動作を示すフローチャートである。属性値開示装置鍵生成部４４１は属性値開示装置秘密鍵（ａｓｋ）１７２およびＣｉｐｈｅｒを数２８の第２式に適用し（ステップＳ５２１）、ζ’’＝１、２、…に対してΔ’＝Θ＾ζ’’が成立するか否かを判定し（ステップＳ５２２）、成立すればζ’’を出力して処理を終了する（ステップＳ５２３）。成立しなければζ’’の値を変更して（ステップＳ５２４）ステップＳ５２２の判定を繰り返す。
【０１０２】
復号関数Ｄｅｃ’は常に効率的に計算できるわけではないが、Ｃｉｐｈｅｒがビット長の短い平文ζを暗号化した暗号文である場合には、Ｄｅｃ’の計算は効率的なものとなる。従って、本実施形態は、復号する可能性のある各属性値のビット長が短い場合について有用である。
【０１０３】
図１３は、図７〜８に示したグループ鍵生成部４６０の動作を示すフローチャートである。グループ鍵生成部４６０は、Φ＿０、Φ＿１、Φ＿２をＧＲＰ［１］の中からランダムに選び、ΥをＧＲＰ［２］の中からランダムに選び、ωをＺ／ｑＺの中からランダムに選び、Ω＝Υ＾ωとする（ステップＳ５３１）。その上で、Φ＿０、Φ＿１、Φ＿２、Υ、Ωからなる組をグループ公開鍵１９１とし、ωをグループ秘密鍵１９２とする（ステップＳ５３２）。
【０１０４】
このグループ公開鍵１９１は、匿名認証システム３０１を構成する他装置に転送されて周知のものとされる。グループ秘密鍵１９２は、属性値証明書発行装置３７０のみに転送される。
【０１０５】
図１４は、図７〜８に示したユーザ装置鍵作成部４１７の動作を示すフローチャートである。ユーザ装置鍵作成部４１７は、次の手順でユーザ装置公開鍵１８１およびユーザ装置秘密鍵１８２を作成する。まずδをＺ／ｑＺの中からランダムに選び、Δ＝Θ＾δとする（ステップＳ５４１）。このΔをユーザ装置公開鍵１８１とし、δをユーザ装置秘密鍵１８２とする（ステップＳ５４２）。ユーザ装置公開鍵１８１は、匿名認証システム３０１を構成する他装置に転送されて周知のものとされ、また特定装置３３０のリスト（ＬＩＳＴ）１８３にも記憶される。
【０１０６】
メンバー証明書発行装置３６０とユーザ装置３１０が各々、メンバー証明書発行部４６１およびメンバー証明書獲得部４１５を実行すれば、ユーザ装置３１０はグループに加わる事ができる。
【０１０７】
図１５は、図７〜８に示したメンバー証明書発行部４６１およびメンバー証明書獲得部４１５の動作を示すフローチャートである。まずメンバー証明書獲得部４１５は、ξをＺ／ｑＺの中からランダムに選んで、以下の数２９で表現されるＣを計算する（ステップＳ５５１）。
【０１０８】
【数２９】
2011148902.tif 000031
続いてメンバー証明書獲得部４１５は、ＣとΔを正当な方法で作った事を示すゼロ知識証明文ｐｒｆを以下の数３０で示す方法で生成し、（Δ、Ｃ、ｐｒｆ）をメンバー証明書発行装置３６０に送信する（ステップＳ５５２）。
【０１０９】
【数３０】
2011148902.tif 000032
これを受信したメンバー証明書発行装置３６０のメンバー証明書発行部４６１は、受信したｐｒｆが正当であるか否かを以下の数３１に示す条件で検証する（ステップＳ５５３）。
【０１１０】
【数３１】
2011148902.tif 000033
ｐｒｆが正当でなければ、メンバー証明書発行部４６１はエラーを発して異常終了する。正当であれば、νおよびκをＺ／ｑＺの中からランダムに選び、数３２に示すＥを計算する（ステップＳ５５４）。
【０１１１】
【数３２】
2011148902.tif 000034
続いてメンバー証明書発行部４６１は、ユーザ装置１０のＩＤとΔとの組をリスト（ＬＩＳＴ）１８３に追加し（ステップＳ５５５）、（ν、κ、Ｅ）をユーザ装置３１０に送信する（ステップＳ５５６）。
【０１１２】
（ν、κ、Ｅ）を受信したユーザ装置３１０では、メンバー証明書獲得部４１５が以下の数３３に示す条件が成立しているか否かを判断する（ステップＳ５５７）。この条件が成立していなければメンバー証明書獲得部４１５はエラーを発して異常終了する。成立していれば、メンバー証明書獲得部４１５は（ν、κ、Ｅ）をメンバー証明書１９３として記憶して（ステップＳ５５８）処理を終了する。
【０１１３】
【数３３】
2011148902.tif 000035
属性値証明書発行装置３７０とユーザ装置３１０が各々、属性値証明書発行部４７０および属性値証明書獲得部４１６を実行すれば、ユーザ装置３１０の属性χ［ｉ］に対する属性値がζ［ｉ］である事を証明する属性値証明書１８４を発行できる。
【０１１４】
図１６は、図７〜８に示した属性値証明書発行部４７０および属性値証明書獲得部４１６の動作について示すフローチャートである。κをユーザ装置１０のメンバー証明書１９３の一部であるとすると、その動作は次のように示される。まずユーザ装置３１０の属性値証明書獲得部４１６が、ξ’をＺ／ｑＺの中からランダムに選び、数３４に示されるΨ＿１［ｉ］およびＣ’を計算する（ステップＳ５６１）。
【０１１５】
【数３４】
2011148902.tif 000036
続いて属性値証明書獲得部４１６は、数３５に示される、Ｃ’およびΔを正当な方法で作った事を示すゼロ知識証明文ｐｒｆ’を生成し、（Δ、Ｃ’、ｐｒｆ’）をメンバー証明書発行装置３６０に送信する（ステップＳ５６２）。
【０１１６】
【数３５】
2011148902.tif 000037
これを受信したメンバー証明書発行装置３６０の属性値証明書発行部４７０は、受信したｐｒｆ’が正当であるか否かを以下の数３６に示す条件で検証する（ステップＳ５６３）。
【０１１７】
【数３６】
2011148902.tif 000038
ｐｒｆ’が正当でなければ、属性値証明書発行部４７０はエラーを発して異常終了する。正当であれば、ν’をＺ／ｑＺの中からランダムに選び、数３７に示すΨ＿０［ｉ］およびＥ’［ｉ］を計算し（ステップＳ５６４）、（ν’ち、Ｅ’［ｉ］）をユーザ装置３１０に送信する（ステップＳ５６５）。
【０１１８】
【数３７】
2011148902.tif 000039
（ν’、Ｅ’［ｉ］）を受信したユーザ装置３１０では、属性値証明書獲得部４１６がこの（ν’、Ｅ’［ｉ］）が数３８に示す条件を満たしているか否かを判断し（ステップＳ５６６）、この条件が成立していなければ属性値証明書獲得部４１６はエラーを発して異常終了する。
【０１１９】
【数３８】
2011148902.tif 000040
条件を満たしていれば、属性値証明書獲得部４１６は受信した（ｒ［ｉ］、Ｅ’［ｉ］）を属性値証明書１８４として記憶して（ステップＳ５６７）処理を終了する。
【０１２０】
属性値証明書発行装置３７０がいかなる方法でκを含むメンバー証明書１９３を手に入れるのかは、本発明の範囲ではないので特には問わない。しかしながら、安全性上の観点から言えば、属性値証明書発行装置３７０はκが実際にユーザ装置１０のメンバー証明書１９３の一部である事を何らかの方法で確認する必要がある。たとえば、メンバー証明書発行装置３６０がκに署名を付与してその署名を属性値証明書発行装置３７０が確認する、メンバー証明書発行装置３６０がユーザ装置１０とκとの対応表を事前に公開しておく、などの方法が実際に考えられる。
【０１２１】
図１７は、図７〜８に示した署名部４１０の動作について示すフローチャートである。χ［１］、…、χ［Ｎ］をユーザ装置３１０の属性である。署名部４１０の第１の機能（入力受け付け機能）４１１はまず、システムパラメータ１５０と、以下の数３９に示すグループ公開鍵１９１、特定装置公開鍵（ｏｐｋ）１６１、ユーザ装置公開鍵（Δ）１８１とユーザ装置秘密鍵（δ）１８２とメンバー証明書１９３（β、κ、Ｅ）、文書Ｍ、ユーザ装置３１０の属性の組｛χ［ｉ］｝とこれらの属性の属性値の組｛ζ［ｉ］｝、属性値証明書１８４の組｛（ｒ［ｉ］、Ｅ’［ｉ］）｝、および属性値開示装置公開鍵（ａｐｋ）１７１の組｛ａｐｋ［ｉ］｝を入力として受け取る（ステップＳ５７１）。ここでＨ、Ｉ、Ｊは、集合｛１、…、Ｎ｝の相異なる任意の部分集合であり、第１の実施形態で説明したものと同様である。
【０１２２】
【数３９】
2011148902.tif 000041
次に署名部４１０の第２の機能（第１の暗号文作成機能）４１２は、τをＺ／ｑＺの中からランダムに選び、Δを暗号化した暗号文Ｃｉｐｈｅｒを以下の数４０に示す手順で計算する（ステップＳ５７２）。
【０１２３】
【数４０】
2011148902.tif 000042
続いて署名部４１０の第３の機能（第２の暗号文作成機能）４１３は、は、各々の各ｉ∈Ｉに対して、τ’［ｉ］をＺ／ｑＺの中からランダムに選び、ζ［ｉ］を暗号化した暗号文Ｃｉｐｈｅｒ’［ｉ］を以下の数４１に示す手順で計算する（ステップＳ５７３）。
【０１２４】
【数４１】
2011148902.tif 000043
署名部４１０の第４の機能（署名文出力機能）４１４は、知識の署名Ｐｒｏｏｆを以下の数４２に示す手順で計算する（ステップＳ５７４）。
【０１２５】
【数４２】
2011148902.tif 000044
そして署名部４１０の第４の機能（署名文出力機能）４１４は、以下の数４３に示す最終的に得られる電子署名データＳｉｇｎａｔｕｒｅを検証装置３２０に対して出力し（ステップＳ５７５）、処理を終了する。なお、Δ＝Θ＾δなので、Ｕ＿０をＵ＿０＝Θ＾（δ＋τ）として算出してもよい。
【０１２６】
【数４３】
2011148902.tif 000045
ユーザ装置３１０は、この署名部４１０による動作を実行する際、自身の記憶部３１１に記憶されているシステムパラメータ１５０、グループ公開鍵１９１、特定装置公開鍵（ｏｐｋ）１６１、ユーザ装置公開鍵１８１、ユーザ装置秘密鍵１８２、メンバー証明書１９３を用いる。
【０１２７】
またユーザは、属性の組｛χ［ｉ］｝としてユーザ装置１０に付与されている属性の中からユーザが任意に選んだものを用いることができ、これらの属性に対応した属性値および属性値証明書１８４を用いることができる。どの属性を用いるのかは、ユーザ装置３１０を操作する個人、団体、ないしプログラムが任意に決めることができる。その決め方自体は技術的な事項ではないので、本発明の範囲ではない。
【０１２８】
図１８は、図７〜８に示した検証部４２０の動作について示すフローチャートである。検証部４２０の署名文検証機能４２１は、システムパラメータ１５０と、以下の数４４に示すグループ公開鍵（ｉｐｋ）１９１、特定装置公開鍵（ｏｐｋ）４８１、文書Ｍ、属性の組｛χ［ｉ］｝、属性値の組｛ζ［ｉ］｝、属性値開示装置公開鍵（ａｐｋ）１７１の組｛ａｐｋ［ｉ］｝、電子署名データＳｉｇｎａｔｕｒｅを入力として受け取る（ステップＳ５８１）。
【０１２９】
【数４４】
2011148902.tif 000046
以下の説明で、暗号文ＣｉｐｈｅｒおよびＣｉｐｈｅｒ’［ｉ］と、ゼロ知識証明文Ｐｒｏｏｆとを以下の数４５のように定義する。
【０１３０】
【数４５】
2011148902.tif 000047
続いて検証部４２０の署名文検証機能４２１は、以下の数４６に示す手順でゼロ知識証明文Ｐｒｏｏｆが正当であるか否かを検証する（ステップＳ５８２）。正当であればこれを受理し、そうでなければ拒否して異常終了する（ステップＳ５８３〜５８４）。署名文検証機能４２１はこの受理および拒否の検証結果を、表示手段３２２に表示させてもよいし、またユーザ装置３１０にこの検証結果を返送して入出力手段３１２に表示させてもよいし、認証に続く処理を行う他のコンピュータに転送してもよい。
【０１３１】
【数４６】
2011148902.tif 000048
また、電子署名データＳｉｇｎａｔｕｒｅが正当なものであれば、検証部４２０の開示依頼機能４２２は必要に応じて、質問文Ｑおよび電子署名データＳｉｇｎａｔｕｒｅを特定装置４３０に送ってユーザの特定を依頼し（ステップＳ５８５）、さらにそれらを属性値開示装置４４０に送って属性値の開示を依頼する（ステップＳ５８６）こともできる。ステップＳ５８５およびＳ５８６の処理は、必要のない場合には実行しなくてもよい。
【０１３２】
検証装置３２０は、この検証部４２０による動作を行う際、自身の記憶部３２１に記憶されているシステムパラメータ１５０、グループ公開鍵１９１、特定装置公開鍵（ｏｐｋ）１６１を用い、またユーザ装置３１０から受信した文書Ｍ、属性、属性値、および署名文を用いる。
【０１３３】
図１９は、図７〜８に示した特定部４３０の動作について示すフローチャートである。特定装置公開鍵（ｏｐｋ）４８１、暗号文Ｃｉｐｈｅｒ、および電子署名データＳｉｇｎａｔｕｒｅを以下の数４７のように定義すると、まず特定部４３０は、以下の数４８に示される暗号文Ｃｉｐｈｅｒの復号結果Δを計算する（ステップＳ５９１）。
【０１３４】
【数４７】
2011148902.tif 000049
【０１３５】
【数４８】
2011148902.tif 000050
そして特定部４３０は、これをリスト（ＬＩＳＴ）１８３と照合することにより公開鍵がΔであるユーザのＩＤを得て、これを検証装置４２０に出力する（ステップＳ５９２）。
【０１３６】
図２０は、図７〜８に示した属性値開示部４４０の動作について示すフローチャートである。属性値開示装置公開鍵（ａｐｋ）４９１、暗号文Ｃｉｐｈｅｒ’［ｉ］、および電子署名データＳｉｇｎａｔｕｒｅを以下の数４９のように定義し、さらに属性値開示装置秘密鍵（ａｓｋ）１７２をλ’と定義すると、属性値開示部４４０は、以下の数５０に示される計算で、Δ’がΘ＾ξ’’と等しくなるまでξ’’を１ずつ増加させ、等しくなればこのξ’’を検証装置４２０に出力して処理を終了する（ステップＳ６０１〜６０４）。
【０１３７】
【数４９】
2011148902.tif 000051
【０１３８】
【数５０】
2011148902.tif 000052
これまで本発明について図面に示した特定の実施形態をもって説明してきたが、本発明は図面に示した実施形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができる。
【０１３９】
上述した各々の実施形態について、その新規な技術内容の要点をまとめると、以下のようになる。なお、上記実施形態の一部または全部は、新規な技術として以下のようにまとめられるが、本発明は必ずしもこれに限定されるものではない。
【０１４０】
前記コンピュータのプログラムは非一時的記録媒体に記録される。
【０１４１】
（付記１）  特定のグループに属しているユーザ装置と、前記ユーザ装置の識別情報について特定せずに前記ユーザ装置が前記グループに属していることを検証する検証装置と、前記識別情報を特定する権限を持つ特定装置と、前記ユーザの持つ属性値を特定する権限を持つ属性値開示装置とが相互に接続されて構成される匿名認証システムであって、
前記ユーザ装置が、
ユーザ装置公開鍵とこれに対応するユーザ装置秘密鍵、前記ユーザ装置が前記グループに属していることを示すグループ公開鍵、前記グループ公開鍵に対応するグループ秘密鍵を使って作成されたメンバー証明書、前記ユーザの前記属性の各々に対応する属性値と前記ユーザ秘密鍵を使って作成された属性値証明書、前記特定装置の特定装置公開鍵、および前記属性値開示装置の属性値開示装置公開鍵を予め記憶している記憶手段と、電子署名データを作成して前記認証装置に送信する署名部とを有すると共に、
前記メンバー証明書が、前記グループ公開鍵の一部Φ＿１をユーザ秘密鍵δで冪乗剰余した数値と前記グループ公開鍵の別の一部Φ＿２を前記メンバー証明書の一部βで冪乗剰余した数値と前記グループ公開鍵のさらに別の一部Φ＿０とを乗算してこれを前記グループ秘密鍵πと前記メンバー証明書の一部κから作られたデータρの逆数で冪乗剰余した数値Ｅを含み、
前記属性のｉ番目χ［ｉ］に対応する前記属性値証明書が、前記χ［ｉ］から得られたデータΨ＿１［ｉ］を前記δで冪乗剰余した数値と前記χ［ｉ］から得られたデータΨ２を前記属性証明書の一部ｒ［ｉ］で冪乗剰余した数値と前記属性χ［ｉ］から得られたデータΨ＿０［ｉ］とを乗算してこれを前記ρの逆数で冪乗剰余した数値Ｅ’［ｉ］を含み、
前記署名部が、
前記ユーザの持つ複数の属性を分類した複数の部分集合を入力として受け取る第１の機能と、前記ユーザ装置公開鍵を前記特定装置公開鍵で暗号化した第１の暗号文を作成する第２の機能と、前記部分集合のうちの特定のものに属する前記属性値を前記属性値開示装置公開鍵で暗号化した第２の暗号文を作成する第３の機能と、前記ユーザ装置公開鍵の一部と全ての前記属性の各々に対応する前記属性値証明書の数値とを乗算したデータが予め与えられた特定の条件を満たすことを示す知識の署名文を前記グループ公開鍵の一部および前記メンバー証明書の一部を用いて作成し、前記第１および第２の暗号文と前記知識の署名文とを含む前記電子署名データを作成してこれを前記検証装置に対して出力する第４の機能とを有すると共に、
前記署名部の前記第３の機能で前記第２の暗号文を作成する際に使用した乱数をτ［ｉ］とし、χ［ｉ］に対応する前記Ｅ’［ｉ］と前記Ｅとを乗算した数値をＧとし、全ての属性χ［ｉ］に対応するｒ［ｉ］を全て加算してこれに前記βを加えたものをｒとすると、
前記署名部の前記第４の機能が、前記Ｇ、前記ｒ、前記特定の部分集合に属する属性値ζ［ｉ］、前記第２の機能で前記第１の暗号文を作成する際に使用した乱数τ、および前記τ’［ｉ］が前記与えられた特定の条件を、満たすことを示す知識の署名文を作成し、
前記検証装置が、
前記グループ公開鍵および前記特定装置公開鍵を予め記憶している記憶手段と、
前記ユーザ装置から受信した前記電子署名データに含まれる前記第１および第２の暗号文を抽出し、前記知識の署名文が正当であるか否かを前記グループ公開鍵を用いて検証する署名文検証機能と、
前記第１の暗号文を前記特定装置公開鍵に対応する特定装置秘密鍵を持つ前記特定装置に転送して前記ユーザ装置の識別情報の特定を依頼し、さらに前記第２の暗号文を前記属性値開示装置公開鍵に対応する属性値開示装置秘密鍵を持つ前記属性値開示装置に転送して前記属性値の特定を依頼する開示依頼機能と
を有することを特徴とする匿名認証システム。
【０１４２】
（付記２）  前記グループ公開鍵が前記Φ＿０、Φ＿１、およびΦ＿２の他にΥおよびΩなるデータを含み、前記複数の部分集合が、前記属性のみを開示する第１の部分集合と、前記属性を開示して前記属性値を暗号化の対象とする第２の部分集合と、前記属性および前記属性値を開示する第３の部分集合とを含み、
前記署名部の前記第４の機能が、
まずＺ／ｑＺからα、ｄ、ｂ、ａ、ｋをランダムに選び、さらに前記第１および第２の部分集合に属する属性χ［ｉ］に対しｄ’［ｉ］をランダムに選び、全ての属性χ［ｉ］に対応するＥ’［ｉ］とＥと前記Φ＿２を前記αでべき乗剰余した数値を乗算した数値をＦとし、
続いて前記第１および第２の部分集合に属する属性χ［ｉ］に対応する前記Ψ＿１［ｉ］と前記ｄ’［ｉ］でべき乗剰余した数値を乗算した数値と前記Φ＿１を前記ｄでべき乗剰余した数値と前記Φ＿２を前記ｂでべき乗剰余した数値とを乗算した数値を前記Υとをペアリングした数値と、前記Φ＿２を前記ａでべき乗剰余した数値と前記Ωをペアリングした数値と、前記Υを前記ｋの符号反転でべき乗剰余した数値を前記Ｆとペアリングした数値とを乗算した数値をＬとし、
前記Ｆと前記Ｌとを含むデータのハッシュ値をｃとし、前記αと前記ｃとを乗算した数値に前記ａを加算した数値を所定のモジュラスで剰余した数値をＡとし、前記δと前記ｃとを乗算した数値に前記ｄを加算した数値を所定のモジュラスで剰余した数値をＤとし、前記κと前記ｃとを乗算した数値に前記ｋを加算した数値を所定のモジュラスで剰余した数値をＫとし、
全ての属性χ［ｉ］に対応するｒ［ｉ］を全て加算した数値に前記βを加算し、これに前記κと前記αの積を加算した数値に前記ｃを乗算した数値に、前記ｂを所定のモジュラスで剰余した数値をＢとし、
前記第１および第２の部分集合に属するχ［ｉ］に対応する各ｉに対して前記ζ［ｉ］と前記ｃとを乗算した数値に前記ｄ’［ｉ］を加算した数値を所定のモジュラスで剰余した数値をＤ’［ｉ］とし、
前記Ｆ、前記ｃ、前記Ａ、前記Ｄ、前記Ｔ、前記Ｂ、前記Ｋ、および前記Ｄ’［ｉ］を含むデータを署名文として出力することを特徴とする、付記１に記載の匿名認証システム。
【０１４３】
（付記３）  前記ユーザ装置公開鍵がΔというデータを含み、
前記署名部の前記第２の機能が、前記Δの暗号文である前記第１の暗号文Ｃｉｐｈｅｒを作成し、
前記署名部の前記第３の機能が、前記第１の部分集合に属するχ［ｉ］に対し、前記ζ［ｉ］の暗号文である前記第２の暗号文Ｃｉｐｈｅｒ’［ｉ］を作成し、
前記署名部の前記第４の機能が、前記Ｃｉｐｈｅｒおよび前記Ｃｉｐｈｅｒ’［ｉ］を含む前記知識の署名文を作成することを特徴とする、付記２に記載の匿名認証システム。
【０１４４】
（付記４）  前記ユーザ装置公開鍵および前記ユーザ装置秘密鍵をΔおよびδとし、前記Δは予め与えられた数値Θを前記δでべき乗剰余した数値とし、
前記署名部の前記第２の機能が、
前記特定装置公開鍵を（Λ＿１，Λ＿２）とし、前記第１の部分集合に属する各χ［ｉ］に対応する前記属性値開示装置公開鍵を（Λ’＿１［ｉ］，Λ’＿２［ｉ］）とすると、
τをランダムに選び、前記Θを前記τで冪乗剰余した数値に前記Δを乗算した数値をＵ＿０とし、前記Λ＿１を前記τで冪乗剰余した数値をＵ＿１とし、前記Λ＿２を前記τで冪乗剰余した数値をＵ＿２とし、
前記署名部の前記第３の機能が、
前記第２の部分集合に属する各χ［ｉ］に対しτ’［ｉ］をランダムに選び、前記Θを前記ζ［ｉ］に前記τ’［ｉ］を加算した数値で冪乗剰余した数値をＵ’＿０［ｉ］とし、前記Λ’＿１を前記τ’［ｉ］で冪乗剰余した数値をＵ’＿１［ｉ］とし、前記Λ’＿２を前記τ’［ｉ］で冪乗剰余した数値をＵ’＿２［ｉ］とし、
前記署名部の前記第４の機能が、
ｔをランダムに選び、前記第２の部分集合に属する各χ［ｉ］に対してｔ’［ｉ］をランダムに選び、前記Θを前記ｄに前記ｔを加算した数値で冪乗剰余した数値をＶ＿０とし、前記Λ＿１を前記ｔで冪乗剰余した数値をＶ＿１とし、前記Λ＿２を前記ｔで冪乗剰余した数値をＶ＿２とすると共に、
前記第２の部分集合に属する各χ［ｉ］に対応する各ｉに対して、前記Θを前記ｄ’［ｉ］と前記ｔ’［ｉ］とを加算した数値で冪乗剰余したものをＶ’＿０［ｉ］とし、前記Λ’＿１［ｉ］を前記ｔ’［ｉ］で冪乗剰余した数値をＶ’＿１［ｉ］とし、前記Λ’＿２［ｉ］を前記ｔ’［ｉ］で冪乗剰余した数値をＶ’＿２［ｉ］とし、前記τと前記ｃとを乗算した数値に前記ｔを加算した数値を所定のモジュラスで剰余した数値をＴとし、前記第２の部分集合に属する各χ［ｉ］に対応する各ｉに対して、前記τ’［ｉ］と前記ｃとを乗算した数値に前記ｔ’［ｉ］を加算した数値を所定のモジュラスで剰余したものをＴ’［ｉ］とし、
前記Ｕ＿０、前記Ｕ＿１、前記Ｕ＿２、前記Ｕ’＿０［ｉ］、Ｕ’＿１［ｉ］、Ｕ’＿２［ｉ］、前記Ｖ＿０、前記Ｖ＿１、前記Ｖ＿２、前記Ｖ’＿０［ｉ］、前記Ｖ’＿１［ｉ］、前記Ｖ’＿２［ｉ］、前記Ｔ、および前記Ｔ’［ｉ］を前記知識の署名文を作成することを特徴とする、付記３に記載の匿名認証システム。
【０１４５】
（付記５）  前記検証装置の前記署名文検証機能が、全ての前記部分集合に属する各属性χ［ｉ］からデータΨ＿０［ｉ］およびΨ＿１［ｉ］を計算し、
続いて前記第１および第２の部分集合に属するχ［ｉ］に対して前記Ψ＿１［ｉ］を前記Ｄ’［ｉ］でべき乗剰余した数値の積と前記Φ１を前記Ｄでべき乗剰余した数値と前記Φ２をＢでべき乗剰余した数値との積を前記Υとをペアリングした数値と、前記Φ＿２を前記Ａでべき乗剰余した数値に前記Ωをペアリングした数値と、前記Υに前記Ｋの符号反転と前記Ｆとをペアリングした数値と、全ての前記部分集合に属するχ［ｉ］に対応するΨ＿０［ｉ］の積と前記第３の集合に属するχ［ｉ］に対応するΨ＿１［ｉ］をζ［ｉ］でべき乗剰余した数値に前記Φ＿０を乗算した数値をＬとし、
続いて前記Ｆと前記Ｌを含むデータのハッシュ値がｃに等しければ署名文を受理し、そうでなければ拒否することを特徴とする、付記１に記載の匿名認証システム。
【０１４６】
（付記６）  前記検証装置の前記署名文検証機能が、前記署名文に含まれる他のデータを（Ｕ＿０，Ｕ＿１，Ｕ＿２，Ｕ’＿０［ｉ］，Ｕ’＿１［ｉ］，Ｕ’＿２［ｉ］）とすると、
前記Θを前記ＤとＴとを加算した数値でべき乗剰余した数値と前記Ｕ＿０を前記ｃでべき乗剰余した数値との積をＶ＿０とし、前記Λ＿１を前記Ｔでべき乗剰余した数値と前記Ｕ＿１を前記ｃでべき乗剰余した数値との積をＶ＿１とし、前記Λ＿２を前記Ｔでべき乗剰余した数値と前記Ｕ＿２を前記ｃでべき乗剰余した数値との積をＶ＿２とし、
前記第２の部分集合に属するχ［ｉ］に対して、前記Θを前記Ｄ’［ｉ］と前記Ｔ’［ｉ］とを加算した数値でべき乗剰余した数値と前記Ｕ’＿０［ｉ］を前記ｃでべき乗剰余した数値との積をＶ’＿０［ｉ］とし、前記Λ’＿１［ｉ］を前記Ｔ’［ｉ］でべき乗剰余した数値と前記Ｕ’＿１［ｉ］を前記ｃでべき乗剰余した数値との積をＶ’＿１［ｉ］とし、前記Λ’＿２［ｉ］を前記Ｔ’［ｉ］でべき乗剰余した数値と前記Ｕ’＿２［ｉ］を前記ｃでべき乗剰余した数値との積をＶ’＿２［ｉ］として、
前記Ｖ＿０、前記Ｖ＿１、前記Ｖ＿２、および前記第２の部分集合に属するχ［ｉ］に対するＶ’＿０［ｉ］、Ｖ’＿１［ｉ］、Ｖ’＿２［ｉ］とを含む前記データのハッシュ値を算出して前記ｃに等しいか否かを判定することを特徴とする、付記５に記載の匿名認証システム。
【０１４７】
（付記７）  特定のグループに属し、前記ユーザ装置の識別情報について特定せずに前記ユーザ装置が前記グループに属していることを検証する検証装置、前記識別情報を特定する権限を持つ特定装置、および前記ユーザの持つ属性値を特定する権限を持つ属性値開示装置と相互に接続されて匿名認証システムを構成するユーザ装置であって、
ユーザ装置公開鍵とこれに対応するユーザ装置秘密鍵、前記ユーザ装置が前記グループに属していることを示すグループ公開鍵、前記グループ公開鍵に対応するグループ秘密鍵を使って作成されたメンバー証明書、前記ユーザの前記属性の各々に対応する属性値と前記ユーザ秘密鍵を使って作成された属性値証明書、前記特定装置の特定装置公開鍵、および前記属性値開示装置の属性値開示装置公開鍵を予め記憶している記憶手段と、
電子署名データを作成して前記認証装置に送信する署名部とを有すると共に、
前記メンバー証明書が、前記グループ公開鍵の一部Φ＿１をユーザ秘密鍵δで冪乗剰余した数値と前記グループ公開鍵の別の一部Φ＿２を前記メンバー証明書の一部βで冪乗剰余した数値と前記グループ公開鍵のさらに別の一部Φ＿０とを乗算してこれを前記グループ秘密鍵πと前記メンバー証明書の一部κから作られたデータρの逆数で冪乗剰余した数値Ｅを含み、
前記属性のｉ番目χ［ｉ］に対応する前記属性値証明書が、前記χ［ｉ］から得られたデータΨ＿１［ｉ］を前記δで冪乗剰余した数値と前記χ［ｉ］から得られたデータΨ２を前記属性証明書の一部ｒ［ｉ］で冪乗剰余した数値と前記属性χ［ｉ］から得られたデータΨ＿０［ｉ］とを乗算してこれを前記ρの逆数で冪乗剰余した数値Ｅ’［ｉ］を含み、
前記署名部が、
前記ユーザの持つ複数の属性を分類した複数の部分集合を入力として受け取る第１の機能と、
前記ユーザ装置公開鍵を前記特定装置公開鍵で暗号化した第１の暗号文を作成する第２の機能と、
前記部分集合のうちの特定のものに属する前記属性値を前記属性値開示装置公開鍵で暗号化した第２の暗号文を作成する第３の機能と、
前記ユーザ装置公開鍵の一部と全ての前記属性の各々に対応する前記属性値証明書の数値とを乗算したデータが予め与えられた特定の条件を満たすことを示す知識の署名文を前記グループ公開鍵の一部および前記メンバー証明書の一部を用いて作成し、前記第１および第２の暗号文と前記知識の署名文とを含む前記電子署名データを作成してこれを前記検証装置に対して出力する第４の機能と
を有すると共に、
前記署名部の前記第３の機能で前記第２の暗号文を作成する際に使用した乱数をτ［ｉ］とし、χ［ｉ］に対応する前記Ｅ’［ｉ］と前記Ｅとを乗算した数値をＧとし、全ての属性χ［ｉ］に対応するｒ［ｉ］を全て加算してこれに前記βを加えたものをｒとすると、
前記署名部の前記第４の機能が、前記Ｇ、前記ｒ、前記特定の部分集合に属する属性値ζ［ｉ］、前記第２の機能で前記第１の暗号文を作成する際に使用した乱数τ、および前記τ’［ｉ］が前記与えられた特定の条件を、満たすことを示す知識の署名文を作成することを特徴とするユーザ装置。
【０１４８】
（付記８）  前記グループ公開鍵が前記Φ＿０、Φ＿１、およびΦ＿２の他にΥおよびΩなるデータを含み、前記複数の部分集合が、前記属性のみを開示する第１の部分集合と、前記属性を開示して前記属性値を暗号化の対象とする第２の部分集合と、前記属性および前記属性値を開示する第３の部分集合とを含み、
前記署名部の前記第４の機能が、
まずＺ／ｑＺからα、ｄ、ｂ、ａ、ｋをランダムに選び、さらに前記第１および第２の部分集合に属する属性χ［ｉ］に対しｄ’［ｉ］をランダムに選び、全ての属性χ［ｉ］に対応するＥ’［ｉ］とＥと前記Φ＿２を前記αでべき乗剰余した数値を乗算した数値をＦとし、
続いて前記第１および第２の部分集合に属する属性χ［ｉ］に対応する前記Ψ＿１［ｉ］と前記ｄ’［ｉ］でべき乗剰余した数値を乗算した数値と前記Φ＿１を前記ｄでべき乗剰余した数値と前記Φ＿２を前記ｂでべき乗剰余した数値とを乗算した数値を前記Υとをペアリングした数値と、前記Φ＿２を前記ａでべき乗剰余した数値と前記Ωをペアリングした数値と、前記Υを前記ｋの符号反転でべき乗剰余した数値を前記Ｆとペアリングした数値とを乗算した数値をＬとし、
前記Ｆと前記Ｌとを含むデータのハッシュ値をｃとし、前記αと前記ｃとを乗算した数値に前記ａを加算した数値を所定のモジュラスで剰余した数値をＡとし、前記δと前記ｃとを乗算した数値に前記ｄを加算した数値を所定のモジュラスで剰余した数値をＤとし、前記κと前記ｃとを乗算した数値に前記ｋを加算した数値を所定のモジュラスで剰余した数値をＫとし、
全ての属性χ［ｉ］に対応するｒ［ｉ］を全て加算した数値に前記βを加算し、これに前記κと前記αの積を加算した数値に前記ｃを乗算した数値に、前記ｂを所定のモジュラスで剰余した数値をＢとし、
前記第１および第２の部分集合に属するχ［ｉ］に対応する各ｉに対して前記ζ［ｉ］と前記ｃとを乗算した数値に前記ｄ’［ｉ］を加算した数値を所定のモジュラスで剰余した数値をＤ’［ｉ］とし、
前記Ｆ、前記ｃ、前記Ａ、前記Ｄ、前記Ｔ、前記Ｂ、前記Ｋ、および前記Ｄ’［ｉ］を含むデータを署名文として出力することを特徴とする、付記７に記載のユーザ装置。
【０１４９】
（付記９）  特定のグループに属しているユーザ装置、前記識別情報を特定する権限を持つ特定装置、および前記ユーザの持つ属性値を特定する権限を持つ属性値開示装置と相互に接続されて匿名認証システムを構成し、構成される前記ユーザ装置の識別情報について特定せずに前記ユーザ装置が前記グループに属していることを検証する検証装置であって、
ユーザ装置公開鍵、前記ユーザ装置が前記グループに属していることを示すグループ公開鍵、前記グループ公開鍵に対応するグループ秘密鍵を使って作成されたメンバー証明書、前記ユーザの前記属性の各々に対応する属性値と前記ユーザ秘密鍵を使って作成された属性値証明書、前記特定装置の特定装置公開鍵、および前記属性値開示装置の属性値開示装置公開鍵を予め記憶している記憶手段と、
前記グループ公開鍵および前記特定装置公開鍵を予め記憶している記憶手段と、
前記ユーザ装置から受信した前記電子署名データに含まれる前記第１および第２の暗号文を抽出し、前記知識の署名文が正当であるか否かを前記グループ公開鍵を用いて検証する署名文検証機能と、
前記第１の暗号文を前記特定装置公開鍵に対応する特定装置秘密鍵を持つ前記特定装置に転送して前記ユーザ装置の識別情報の特定を依頼し、さらに前記第２の暗号文を前記属性値開示装置公開鍵に対応する属性値開示装置秘密鍵を持つ前記属性値開示装置に転送して前記属性値の特定を依頼する開示依頼機能とを有することを特徴とする検証装置。
【０１５０】
（付記１０）  前記グループ公開鍵がΦ＿０、Φ＿１、Φ＿２、Υ、Ωという各々のデータを含み、前記複数の部分集合が、前記属性のみを開示する第１の部分集合と、前記属性を開示して前記属性値を暗号化の対象とする第２の部分集合と、前記属性および前記属性値を開示する第３の部分集合とを含み、
前記署名文はＦ、ｃ、Ａ、Ｄ、Ｂ、Ｋという各々のデータと、前記第１および第２の部分集合に属するχ［ｉ］に対しＤ’［ｉ］を含むと共に、
前記署名文検証機能が、全ての前記部分集合に属する各属性χ［ｉ］からデータΨ＿０［ｉ］およびΨ＿１［ｉ］を計算し、
続いて前記第１および第２の部分集合に属するχ［ｉ］に対して前記Ψ＿１［ｉ］を前記Ｄ’［ｉ］でべき乗剰余した数値の積と前記Φ１を前記Ｄでべき乗剰余した数値と前記Φ２をＢでべき乗剰余した数値との積を前記Υとをペアリングした数値と、前記Φ＿２を前記Ａでべき乗剰余した数値に前記Ωをペアリングした数値と、前記Υに前記Ｋの符号反転と前記Ｆとをペアリングした数値と、全ての前記部分集合に属するχ［ｉ］に対応するΨ＿０［ｉ］の積と前記第３の集合に属するχ［ｉ］に対応するΨ＿１［ｉ］をζ［ｉ］でべき乗剰余した数値に前記Φ＿０を乗算した数値をＬとし、
続いて前記Ｆと前記Ｌを含むデータのハッシュ値がｃに等しければ署名文を受理し、そうでなければ拒否することを特徴とする、付記９に記載の検証装置。
【０１５１】
（付記１１）  特定のグループに属しているユーザ装置と、前記ユーザ装置の識別情報について特定せずに前記ユーザ装置が前記グループに属していることを検証する検証装置と、前記識別情報を特定する権限を持つ特定装置と、前記ユーザの持つ属性値を特定する権限を持つ属性値開示装置とが相互に接続されて構成される匿名認証システムにあって、
ユーザ装置公開鍵とこれに対応するユーザ装置秘密鍵、前記ユーザ装置が前記グループに属していることを示すグループ公開鍵、前記グループ公開鍵に対応するグループ秘密鍵を使って作成された前記グループ公開鍵の一部Φ＿１をユーザ秘密鍵δで冪乗剰余した数値と前記グループ公開鍵の別の一部Φ＿２を前記メンバー証明書の一部βで冪乗剰余した数値と前記グループ公開鍵のさらに別の一部Φ＿０とを乗算してこれを前記グループ秘密鍵πと前記メンバー証明書の一部κから作られたデータρの逆数で冪乗剰余した数値Ｅを含むメンバー証明書、前記ユーザの前記属性のｉ番目χ［ｉ］に対応する属性値と前記χ［ｉ］から得られたデータΨ＿１［ｉ］を前記δで冪乗剰余した数値と前記χ［ｉ］から得られたデータΨ２を前記属性証明書の一部ｒ［ｉ］で冪乗剰余した数値と前記属性χ［ｉ］から得られたデータΨ＿０［ｉ］とを乗算してこれを前記ρの逆数で冪乗剰余した数値Ｅ’［ｉ］を含む前記ユーザ秘密鍵を使って作成された属性値証明書、前記特定装置の特定装置公開鍵、および前記属性値開示装置の属性値開示装置公開鍵を予め記憶し、
前記ユーザの持つ複数の属性を分類した複数の部分集合を入力として受け取り、
前記ユーザ装置公開鍵を前記特定装置公開鍵で暗号化した第１の暗号文を作成し、
前記部分集合のうちの特定のものに属する前記属性値を前記属性値開示装置公開鍵で暗号化した第２の暗号文を作成し、
前記第２の暗号文を作成する際に使用した乱数をτ［ｉ］とし、χ［ｉ］に対応する前記Ｅ’［ｉ］と前記Ｅとを乗算した数値をＧとし、全ての属性χ［ｉ］に対応するｒ［ｉ］を全て加算してこれに前記βを加えたものをｒとすると、前記Ｇ、前記ｒ、前記特定の部分集合に属する属性値ζ［ｉ］、前記第２の機能で前記第１の暗号文を作成する際に使用した乱数τ、および前記τ’［ｉ］が前記与えられた特定の条件を、満たすことを示す知識の署名文を前記グループ公開鍵の一部および前記メンバー証明書の一部を用いて作成し、前記第１および第２の暗号文と前記知識の署名文とを含む前記電子署名データを作成してこれを前記検証装置に対して出力すると共に、
これらの各処理内容を前記ユーザ装置が実行し、
前記グループ公開鍵および前記特定装置公開鍵を予め記憶し、
前記ユーザ装置から受信した前記電子署名データに含まれる前記第１および第２の暗号文を抽出し、
前記知識の署名文が正当であるか否かを前記グループ公開鍵を用いて検証すると共に、
これらの各処理内容を前記検証装置が実行することを特徴とする匿名認証方法。
【０１５２】
（付記１２）  特定のグループに属しているユーザ装置と、前記ユーザ装置の識別情報について特定せずに前記ユーザ装置が前記グループに属していることを検証する検証装置と、前記識別情報を特定する権限を持つ特定装置と、前記ユーザの持つ属性値を特定する権限を持つ属性値開示装置とが相互に接続されて構成される匿名認証システムにあって、
ユーザ装置公開鍵とこれに対応するユーザ装置秘密鍵、前記ユーザ装置が前記グループに属していることを示すグループ公開鍵、前記グループ公開鍵に対応するグループ秘密鍵を使って作成された前記グループ公開鍵の一部Φ＿１をユーザ秘密鍵δで冪乗剰余した数値と前記グループ公開鍵の別の一部Φ＿２を前記メンバー証明書の一部βで冪乗剰余した数値と前記グループ公開鍵のさらに別の一部Φ＿０とを乗算してこれを前記グループ秘密鍵πと前記メンバー証明書の一部κから作られたデータρの逆数で冪乗剰余した数値Ｅを含むメンバー証明書、前記ユーザの前記属性のｉ番目χ［ｉ］に対応する属性値と前記χ［ｉ］から得られたデータΨ＿１［ｉ］を前記δで冪乗剰余した数値と前記χ［ｉ］から得られたデータΨ２を前記属性証明書の一部ｒ［ｉ］で冪乗剰余した数値と前記属性χ［ｉ］から得られたデータΨ＿０［ｉ］とを乗算してこれを前記ρの逆数で冪乗剰余した数値Ｅ’［ｉ］を含む前記ユーザ秘密鍵を使って作成された属性値証明書、前記特定装置の特定装置公開鍵、および前記属性値開示装置の属性値開示装置公開鍵を予め記憶しているコンピュータに、
前記ユーザの持つ複数の属性を分類した複数の部分集合を入力として受け取る手順、
前記ユーザ装置公開鍵を前記特定装置公開鍵で暗号化した第１の暗号文を作成する手順、
前記部分集合のうちの特定のものに属する前記属性値を前記属性値開示装置公開鍵で暗号化した第２の暗号文を作成する手順、
前記第２の暗号文を作成する際に使用した乱数をτ［ｉ］とし、χ［ｉ］に対応する前記Ｅ’［ｉ］と前記Ｅとを乗算した数値をＧとし、全ての属性χ［ｉ］に対応するｒ［ｉ］を全て加算してこれに前記βを加えたものをｒとすると、前記Ｇ、前記ｒ、前記特定の部分集合に属する属性値ζ［ｉ］、前記第２の機能で前記第１の暗号文を作成する際に使用した乱数τ、および前記τ’［ｉ］が前記与えられた特定の条件を、満たすことを示す知識の署名文を前記グループ公開鍵の一部および前記メンバー証明書の一部を用いて作成し、前記第１および第２の暗号文と前記知識の署名文とを含む前記電子署名データを作成してこれを前記検証装置に対して出力する手順
を実行させることを特徴とする匿名認証プログラム。
【０１５３】
この出願は２０１０年５月２８日に出願された日本出願特願２０１０−１２２７９７を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【０１５４】
本発明は、匿名認証が利用される場面、特に属性値が特定の条件を満たしていることを証明することが必要である場面において、幅広く利用できる。より具体的には、レンタカーの利用、酒や煙草の販売、公営ギャンブルや成人映画への入場など、利用者が未成年でないことを確認する必要がある場面などで本発明を利用できる。
【符号の説明】
【０１５５】
１  匿名認証システム
１０、３１０  ユーザ装置
１１、２１、３１、４１、３１１、３２１、３３１、３４１、３６１、３７１  演算手段
１２、３１２  入出力手段
１３、２３、３３、４３、３１３、３２３、３３３、３４３、３６３、３７３  記憶手段
１４、２４、３４、４４、３１４、３２４、３３４、３４４、３６４、３７４  通信手段
２０、３２０  検証装置
２２、３２２  表示手段
３０、３３０  特定装置
４０、３４０  属性値開示装置
５０  ネットワーク
１１０、４１０  署名部
１１１、４１１  第１の機能（入力受け付け機能）
１１２、４１２  第２の機能（第１の暗号文作成機能）
１１３、４１３  第３の機能（第２の暗号文作成機能）
１１４、４１４  第４の機能（署名文出力機能）
１２０、４２０  検証部
１２１、４２１  署名文検証機能
１２２、４２２  開示依頼機能
１３０、４３０  特定部
１４０、４４０  属性値開示部
１５０  システムパラメータ
１６１  特定装置公開鍵（ｏｐｋ）
１６２  特定装置秘密鍵（ｏｓｋ）
１７１  属性値開示装置公開鍵（ａｐｋ）
１７２  属性値開示装置秘密鍵（ａｓｋ）
１８１  ユーザ装置公開鍵
１８２  ユーザ装置秘密鍵
１８３  リスト（ＬＩＳＴ）
１８４  属性値証明書
１９１  グループ公開鍵
１９２  グループ秘密鍵
１９３  メンバー証明書
３６０  メンバー証明書発行装置
３７０  属性値証明書発行装置
４１５  メンバー証明書獲得部
４１６  属性値証明書獲得部
４１７  ユーザ装置鍵作成部
４３１  特定装置鍵生成部
４４１  属性値開示装置鍵生成部
４６０  グループ鍵生成部
４６１  メンバー証明書発行部
４７０  属性値証明書発行部
【図１】
2011148902.tif 000053
【図２】
2011148902.tif 000054
【図３】
2011148902.tif 000055
【図４】
2011148902.tif 000056
【図５】
2011148902.tif 000057
【図６】
2011148902.tif 000058
【図７】
2011148902.tif 000059
【図８】
2011148902.tif 000060
【図９】
2011148902.tif 000061
【図１０】
2011148902.tif 000062
【図１１】
2011148902.tif 000063
【図１２】
2011148902.tif 000064
【図１３】
2011148902.tif 000065
【図１４】
2011148902.tif 000066
【図１５】
2011148902.tif 000067
【図１６】
2011148902.tif 000068
【図１７】
2011148902.tif 000069
【図１８】
2011148902.tif 000070
【図１９】
2011148902.tif 000071
【図２０】
2011148902.tif 000072
【国際調査報告】
2011148902.tif 000073
2011148902.tif 000074
2011148902.tif 000075
2011148902.tif 000076