IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社国際電気通信基礎技術研究所の特許一覧

特許7301652匿名認証方法、プログラム、および、匿名認証システム
<>
  • 特許-匿名認証方法、プログラム、および、匿名認証システム 図1
  • 特許-匿名認証方法、プログラム、および、匿名認証システム 図2
  • 特許-匿名認証方法、プログラム、および、匿名認証システム 図3
  • 特許-匿名認証方法、プログラム、および、匿名認証システム 図4
  • 特許-匿名認証方法、プログラム、および、匿名認証システム 図5
  • 特許-匿名認証方法、プログラム、および、匿名認証システム 図6
  • 特許-匿名認証方法、プログラム、および、匿名認証システム 図7
  • 特許-匿名認証方法、プログラム、および、匿名認証システム 図8
  • 特許-匿名認証方法、プログラム、および、匿名認証システム 図9
  • 特許-匿名認証方法、プログラム、および、匿名認証システム 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-06-23
(45)【発行日】2023-07-03
(54)【発明の名称】匿名認証方法、プログラム、および、匿名認証システム
(51)【国際特許分類】
   H04L 9/32 20060101AFI20230626BHJP
【FI】
H04L9/32 200B
【請求項の数】 4
(21)【出願番号】P 2019130116
(22)【出願日】2019-07-12
(65)【公開番号】P2021015218
(43)【公開日】2021-02-12
【審査請求日】2022-05-02
(73)【特許権者】
【識別番号】393031586
【氏名又は名称】株式会社国際電気通信基礎技術研究所
(74)【代理人】
【識別番号】100143498
【弁理士】
【氏名又は名称】中西 健
(74)【代理人】
【識別番号】100136319
【弁理士】
【氏名又は名称】北原 宏修
(74)【代理人】
【識別番号】100148275
【弁理士】
【氏名又は名称】山内 聡
(74)【代理人】
【識別番号】100142745
【弁理士】
【氏名又は名称】伊藤 世子
(72)【発明者】
【氏名】ペレーラ マハラゲ ニサンサラ セウワンディ
(72)【発明者】
【氏名】中村 徹
(72)【発明者】
【氏名】橋本 真幸
(72)【発明者】
【氏名】横山 浩之
【審査官】中里 裕正
(56)【参考文献】
【文献】KHADER, D.,Attribute Based Group Signature with Revocation,Cryptology ePrint Archive,Report 2007/241,[online],2007年06月19日,<URL:https://eprint.iacr.org/2007/241>
【文献】LANGLOIS, A. et al.,Lattice-based Group Signature Scheme with Verifier-local Revocation,Cryptology ePrint Archive,Report 2014/033, ver:20160805:095033,[online],2016年08月05日,pp.1-24,<URL:https://eprint.iacr.org/archive/2014/033/20160805:095033>
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
JSTPlus/JMEDPlus/JST7580(JDreamIII)
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
複数のグループユーザーを含むグループを対象として、失効機能付き属性ベースグループ署名を行うための匿名認証方法であ
グループ管理装置と、グループユーザー用装置と、認証装置と、前記グループ管理装置と、前記グループユーザー用装置と、前記認証装置とに接続されるネットワークと、を備える匿名認証システムを用いて実行される匿名認証方法であって、
前記グループ管理装置が、(1)グループに含まれるグループユーザーと、前記グループに含まれるグループユーザー数の最大値とを特定し、(2)属性の汎用セットを規定し、(3)鍵生成処理、署名処理、および、検証処理において使用されるパラメータを規定するセットアップステップと、
前記グループ管理装置が、公開鍵暗号方式により、(1)グループ公開鍵と、グループ管理用秘密鍵とを生成し、(2)1つのグループユーザーについての全ての属性について、ユーザー秘密鍵を生成し、当該グループユーザーが所有していない前記属性の汎用セットに含まれる属性について偽データを割り当てる第1ステップを実行し、(3)当該グループユーザーが所有している属性および所有していない属性についてトークンを生成する第2ステップを実行し、(4)前記グループに含まれる全てのグループユーザーについて、前記第1ステップと前記第2ステップを繰り返し実行することで、前記グループに含まれる全てのグループユーザーについての前記ユーザー秘密鍵と属性トークンとを個別に生成する鍵生成ステップと、
前記グループユーザー用装置が、前記ポリシーで設定されている署名権限が許可される条件を満たす場合、前記グループ公開鍵と、割り当てられたユーザー秘密鍵と、属性トークンとを用いて、署名対象のメッセージについての署名データを生成するステップであって、(1)前記属性トークンを暗号化し、(2)グループユーザーの有効性と、失効リストに属性トークンが含まれていないことと、前記属性トークンが生成された後変更されていないこととについてのゼロ知識証明を生成し、(3)署名対象のメッセージと、暗号化された属性トークンと、前記ゼロ知識証明とを含む署名データを生成する署名ステップと、
前記認証装置が、前記署名データに対して、前記ポリシーに設定されている署名権限を特定する条件と、前記グループ公開鍵と、所定のグループユーザーについて失効された属性を特定するデータが記録されている失効リストと、前記ゼロ知識証明とに基づいて、前記署名データに対して検証処理を行うことで、前記メッセージに対してなされた署名が有効であるか否かを判定する検証ステップと、
前記グループ管理装置が、グループユーザーがもはや所有していない属性が存在する場合、当該グループユーザーがもはや所有していない属性を前記失効リストに追加することで、前記グループユーザーのもはや所有していない属性を失効させる失効ステップと、
を備える匿名認証方法。
【請求項2】
前記公開鍵暗号方式は、格子暗号であり、
前記グループ公開鍵は、前記格子暗号の格子を規定するための行列であって、素数qを法とする剰余系により規定される整数を要素とするn×mの行列と、前記属性データの集合とにより生成されるデータである、
請求項1に記載の匿名認証方法。
【請求項3】
請求項1または2に記載の匿名認証方法をコンピュータに実行させるためのプログラム。
【請求項4】
複数のグループユーザーを含むグループを対象として、失効機能付き属性ベースグループ署名を行うための匿名認証システムであって、
グループ管理装置と、
グループユーザー用装置と、
認証装置と、
前記グループ管理装置と、前記グループユーザー用装置と、前記認証装置とに接続されるネットワークと、
を備え、
前記グループ管理装置は、(1)グループに含まれるグループユーザーと、前記グループに含まれるグループユーザー数の最大値とを特定し、(2)属性の汎用セットを規定し、(3)鍵生成処理、署名処理、および、検証処理において使用されるパラメータを規定するセットアップステップと、
公開鍵暗号方式により、(1)グループ公開鍵と、グループ管理用秘密鍵とを生成し、(2)1つのグループユーザーについての全ての属性について、ユーザー秘密鍵を生成し、当該グループユーザーが所有していない前記属性の汎用セットに含まれる属性について偽データを割り当てる第1ステップを実行し、(3)当該グループユーザーが所有している属性および所有していない属性についてトークンを生成する第2ステップを実行し、(4)前記グループに含まれる全てのグループユーザーについて、前記第1ステップと前記第2ステップを繰り返し実行することで、前記グループに含まれる全てのグループユーザーについての前記ユーザー秘密鍵と属性トークンとを個別に生成する鍵生成ステップと、
を実行し、
前記グループユーザー用装置は、前記ポリシーで設定されている署名権限が許可される条件を満たす場合、前記グループ公開鍵と、割り当てられたユーザー秘密鍵と、属性トークンとを用いて、署名対象のメッセージについての署名データを生成するステップであって、(1)前記属性トークンを暗号化し、(2)グループユーザーの有効性と、失効リストに属性トークンが含まれていないことと、前記属性トークンが生成された後変更されていないこととについてのゼロ知識証明を生成し、(3)署名対象のメッセージと、暗号化された属性トークンと、前記ゼロ知識証明とを含む署名データを生成する署名ステップを実行し、
前記認証装置は、前記署名データに対して、前記ポリシーに設定されている署名権限を特定する条件と、前記グループ公開鍵と、所定のグループユーザーについて失効された属性を特定するデータが記録されている失効リストと、前記ゼロ知識証明とに基づいて、前記署名データに対して検証処理を行うことで、前記メッセージに対してなされた署名が有効であるか否かを判定する検証ステップを実行し、
前記グループ管理装置は、グループユーザーがもはや所有していない属性が存在する場合、当該グループユーザーがもはや所有していない属性を前記失効リストに追加することで、前記グループユーザーのもはや所有していない属性を失効させる失効ステップを実行する、
匿名認証システム。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、匿名認証技術に関し、特に、グループ署名を利用する匿名認証技術に関する。
【背景技術】
【0002】
所定の属性を有するユーザーのみが匿名での認証を可能にする技術(例えば、特許文献1を参照)として、グループ署名(例えば、属性ベースグループ署名(ABGS:Attribute Based Group Signature))が知られている。例えば、属性ベースグループ署名(ABGS)では、公開鍵暗号方式を用いて、グループ管理者がグループ公開鍵と、ユーザー秘密鍵と、グループ管理用秘密鍵とを生成する。属性ベースグループ署名(ABGS)では、グループユーザーごとに、ユーザー秘密鍵を生成し、各グループユーザーに生成したユーザー秘密鍵が渡される。また、属性ベースグループ署名(ABGS)では、各グループユーザーが有する属性を特定するための属性トークンが生成され、生成された属性トークンが各グループユーザーに渡される。
【0003】
そして、属性ベースグループ署名(ABGS)では、ポリシー(Policy)を設定し、当該ポリシーに基づく条件を満たす属性を有するグループユーザーのみが、所定のデータ(例えば、署名を要求する外部ユーザー(例えば、この外部ユーザーの名前を「アリス」とする)のドキュメント)に対して署名をすることができる。つまり、属性ベースグループ署名では、各グループユーザーが、ポリシーにより要求される属性を有していれば、当該グループユーザーが、当該グループユーザーのプライバシーを守りながら(当該グループユーザーを特定するデータ(例えば、当該グループユーザーのID等)を外部に漏らすことなく)、所定のデータ(例えば、署名を要求する外部ユーザー「アリス」のドキュメント)に対して、署名(真正の署名)をすることが可能となる。
【0004】
しかしながら、属性ベースグループ署名では、各グループユーザーがユーザー秘密鍵を有しているので、例えば、所定のグループユーザーの属性が変更され、署名をする権限が失効された場合に、依然として、署名を行うことが可能である。
【0005】
このような問題に対処するために、属性ベースグループ署名では、効率的な失効処理(属性失効処理(Attribute Revocation))を行うメカニズムが求められる。属性ベースグループ署名において、効率的な失効処理(属性失効処理(Attribute Revocation))を行う技術として、VLR(Verifier-local Revocation)技術がある。VLR技術では、失効リスト(Revocation list)を用いて、署名が真正であるか否かを判断することができる。つまり、VLR技術では、失効させるグループユーザーの属性を失効リストに記録する。そして、VLR技術では、失効リストに記録されている属性を有しているグループユーザーによる署名は、無効(invalid)であると判定することで、効率的な失効処理(属性失効処理(Attribute Revocation))を実現できる。
【0006】
つまり、属性ベースグループ署名と、VLR技術とを用いることで、効率的な失効処理ができる属性ベースグループ署名を実現できる。非特許文献1に、このようなVLRを用いた属性ベースグループ署名についての技術の開示がある。
【0007】
ここで、VLRを用いた属性ベースグループ署名(ABGS)について、図面を用いて説明する。
【0008】
図6は、VLRを用いた属性ベースグループ署名(ABGS)を実行するための認証システム900の概略構成図である。
【0009】
図6に示すように、認証システム900は、グループ管理装置91と、グループユーザー用装置92と、認証装置93と、データ格納部DB9とを備える。グループ管理装置91と、グループユーザー用装置92と、認証装置93とは、例えば、ネットワークにより接続されており、各装置間において、データ通信が可能である。
【0010】
(処理1(鍵生成処理(KeyGen))):
処理1において、グループ管理装置91は、公開鍵暗号方式の鍵生成処理を実行する。具体的には、グループ管理装置91は、グループ署名の対象とするグループの公開鍵gpkと、当該グループに属する各グループユーザーの秘密鍵gsk(={gsk[0],gsk[1],・・・,gsk[N-1]})(N:グループユーザーの数)および属性トークンgrt(={grt[0],grt[1],・・・,grt[N-1]})を生成する。
【0011】
なお、説明便宜のため、グループユーザー数N=4として、以下、説明する。
【0012】
また、属性トークンgrt(={grt[0],grt[1],・・・,grt[N-1]})は、グループユーザーの有している属性を特定するためのデータである。ここでは、説明便宜のため、属性数が「3」であり、各属性を示す変数を、att,att,attとし、各属性は、例えば、下記の属性を表すものとする。
属性att:会社Bに属していること
属性att:製造チームに属していること
属性att:管理職であること
そして、ユーザーk(k:自然数、0≦k≦N-1)が属性att(j:自然数、1≦j≦3)を有していることを示す表記を「grt[k].att」とする。つまり、各グループユーザーの属性トークンにより、各グループユーザーが有している属性を特定することができる。
【0013】
(処理2(ポリシー設定処理)):
処理2において、認証システム900では、ポリシーが設定される。例えば、属性att,att,attを有しているグループユーザーが、署名できるように、ポリシーが設定される。なお、以下では、説明便宜のため、ポリシーにおいて、属性att(例えば、ボブの会社に属していることを示す属性),属性att(例えば、製造チームに属していることを示す属性),属性att(例えば、マネージャーであることを示す属性)を有しているグループユーザーが署名できると設定されているものとする。このように設定されたポリシーが、例えば、認証装置93からグループユーザー用装置92に送信される。
【0014】
(処理3(署名処理(Sign))):
処理3において、所定のグループユーザーが署名処理を行う。ここでは、説明便宜のため、グループユーザーIDが「3」(d=3)であるグループユーザー3が、アリス(署名要件者)のドキュメントM(メッセージM)に対して、署名処理を行う場合について、説明する。また、グループユーザー(ユーザー0~ユーザー3)のユーザー秘密鍵、属性トークンは、図7に示すように設定されているものとする。
【0015】
設定されているポリシー(ポリシー要求条件)から、属性att、att、attを有しているグループユーザーがアリスのドキュメントMに対して署名できる。ユーザー3は、図7から分かるように、属性att、att、attについての属性トークン(grt[3].att、grt[3].att、grt[3].att)を有しているので、アリスのドキュメントMに対して署名できる(署名する権限を有している)。
【0016】
そして、ユーザー3のグループユーザー用装置92において、非特許文献1に開示されているように、(1)当該グループユーザー(ここでは、ユーザー3)が有効な属性トークンを有していることを証明するデータと、(2)当該グループユーザー(ここでは、ユーザー3)が有している属性トークンが、失効リストRLに記録されていないことを証明するデータとを含むゼロ知識証明Πを、ゼロ知識証明技術を使用して、生成する。
【0017】
そして、ユーザー3のグループユーザー用装置92は、生成したゼロ知識証明Πと、メッセージM(署名したドキュメント)とを含む署名データΣ(=(M,Π))を、メッセージMとともに、認証装置93に送信する。
【0018】
(処理4(検証処理(Verify)):
処理4において、認証装置93は、検証処理を実行する。具体的には、認証装置93は、グループユーザー用端末から受信した署名データΣ(=(M,Π))と、メッセージMと、グループ公開鍵gpkとを用いて、ゼロ知識証明処理を行う。つまり、認証装置93は、ゼロ知識証明技術を用いて、(1)当該グループユーザー(ここでは、ユーザー3)が有効な属性トークンを有しているか否かをチェックし、さらに、(2)失効リストRLを参照し、当該グループユーザー(ここでは、ユーザー3)が有している属性トークンが失効リストRLに記録されているか否かをチェックする。
【0019】
そして、上記のチェックの結果、(1)当該グループユーザー(ここでは、ユーザー3)が有効な属性トークンを有しており、かつ、(2)失効リストRLを参照し、当該グループユーザー(ここでは、ユーザー3)が有している属性トークンが失効リストRLに記録されていない場合、認証装置93は、当該グループユーザー(ここでは、ユーザー3)よるメッセージMに対する署名(グループ署名)が「有効」(Valid)であることを示す検証結果を出力し、上記以外の場合、認証装置93は、当該グループユーザー(ここでは、ユーザー3)よるメッセージMに対する署名(グループ署名)が「無効」(Invalid)であることを示す検証結果を出力する。
【0020】
図6図7の場合(ケース1)、上記(1)、(2)の要件を満たすので、認証装置93は、当該グループユーザー(ここでは、ユーザー3)よるメッセージMに対する署名(グループ署名)が「有効」(Valid)であることを示す検証結果を出力する。
【0021】
(処理5(失効処理(Revoke)):
次に、認証システム900における失効処理について、説明する。例えば、所定のグループユーザーの属性が変更され、当該グループユーザーに対して、署名権限を失効させる処理について、説明する。
【0022】
ここでは、説明便宜のため、ユーザー3(d=3のグループユーザー)が属性attの条件を満たさなくなった場合(例えば、ユーザー3が製造チームから他のチームに移動となり、上記の場合のポリシー要求条件(属性att~attを有していることという条件)を満たさなくなった場合について、以下説明する。
【0023】
この場合、図8に示すように、グループ管理装置91は、失効処理(Revoke)を行う。つまり、ユーザー3(d=3のグループユーザー)の属性トークンgrt[3].attを失効リストRLに記録(追加)する。
【0024】
そして、例えば、上記と同様に、ユーザー3は、署名処理を行った場合について、説明する。
【0025】
この場合、上記の処理3と同様の署名処理が実行され、ユーザー3のグループユーザー用装置92により生成された署名データΣ(=(M,Π))と、メッセージMとが、ユーザー3のグループユーザー用装置92から、認証装置93に送信される。
【0026】
認証装置93は、上記の処理4と同様に、検証処理を実行する。具体的には、認証装置93は、グループユーザー用端末から受信した署名データΣ(=(M,Π))と、メッセージMと、グループ公開鍵gpkとを用いて、ゼロ知識証明処理を行う。つまり、認証装置93は、ゼロ知識証明技術を用いて、(1)当該グループユーザー(ここでは、ユーザー3)が有効な属性トークンを有しているか否かをチェックし、さらに、(2)失効リストRLを参照し、当該グループユーザー(ここでは、ユーザー3)が有している属性トークンが失効リストRLに記録されているか否かをチェックする。
【0027】
そして、上記のチェックの結果、(1)当該グループユーザー(ここでは、ユーザー3)が有効な属性トークンを有しており、(2)失効リストRLを参照し、当該グループユーザー(ここでは、ユーザー3)が有している属性トークン(ユーザー3(d=3のグループユーザー)の属性トークンgrt[3].att)が失効リストRLに記録されていると判定する。
【0028】
そして、認証装置93は、当該グループユーザー(ここでは、ユーザー3)よるメッセージMに対する署名(グループ署名)が「無効」(Invalid)であることを示す検証結果を出力する。つまり、図9の下図に示したように、図8の場合(これをケース2とする)、ユーザー3は、属性トークンgrt[3].att、属性トークンgrt[3].att、属性トークンgrt[3].attを有しているので、メッセージMに対して署名をすることができるが、失効リストRLに、属性トークンgrt[3].attが記録されているため、ユーザー3が署名処理により生成した署名は、検証の結果、「無効」(Invalid)であると判定される。
【0029】
以上のように、認証システム900では、失効させる属性トークンを、失効リストRLに記録(追加)するだけで、署名権限を失効させたグループユーザーの署名が無効であることを示す検証結果を出力することができる。したがって、認証システム900では、各グループユーザーのプライバシーを確保しつつ(各グループユーザーを特定する情報の秘匿性を確保しつつ)、グループユーザーの属性の変更にともなう失効処理(Revocation)を、適切かつ効率的に行うことができる。
【先行技術文献】
【特許文献】
【0030】
【文献】特開2011-114504号公報
【非特許文献】
【0031】
【文献】Y. Zhang, Y. Gan, Y. Yin, and H. Jia, Attribute-Based VLR Group Signature Scheme from Lattices: 18th International Conference, ICA3PP 2018, Guangzhou, China, November 15-17, 2018, Proceedings, Part IV, 11 2018, pp. 600-610.
【発明の概要】
【発明が解決しようとする課題】
【0032】
しかしながら、上記の技術では、属性トークンが暗号化されておらず、悪意の第三者が属性トークンを取得した場合、当該悪意の第三者により、失効リストRLが不正に書き換えられ、その結果、ユーザーの匿名性及び属性の匿名性が損なわれる可能性がある。
【0033】
例えば、非特許文献1の技術では、非特許文献1に記載されているように、ユーザー秘密鍵が格子暗号により、下記のように生成される。
gsk[d]={ei,1,ei,2i∈{1,2,...,u}
u:属性の数
上記において、ei,1、ei,2は、格子暗号(Lattice-based cryptography)により取得された秘密鍵を構成するデータである。
【0034】
そして、非特許文献1の技術では、属性トークンgrtが、
grt[d]={u’
u’=(u’d,ii∈{1,2,...,u}=(A・ei,1 mod q)i∈{1,2,...,u}
A∈Zn×m
により生成される。
【0035】
つまり、非特許文献1の技術では、ユーザー秘密鍵gsk[d]が漏洩した場合、ユーザー秘密鍵gsk[d]から、ei,1が取得でき、そして、ei,1から、上記演算を行うことで、属性トークンgrtを取得できる。
【0036】
すなわち、非特許文献1の技術は、ユーザー秘密鍵が漏洩しないことを前提としており、ユーザー秘密鍵が漏洩した場合に、上記の通り、属性トークンgrtが不正に取得され、不正に取得した属性トークンgrtを用いて、失効リストRLが不正に書き換えられ、結果としてユーザーの匿名性及び属性の匿名性が損なわれる可能性がある。
【0037】
そこで、本発明は、上記課題に鑑み、ユーザー秘密鍵が漏洩した場合であっても、属性トークンgrtが不正に取得され、失効リストRLが不正に書き換えられ、結果としてユーザーの匿名性及び属性の匿名性が損なわれることのない匿名認証方法、匿名認証システム、すなわち、完全匿名性(full anonymity)を実現する匿名認証方法、匿名認証システム、を実現することを目的とする。
【課題を解決するための手段】
【0038】
上記課題を解決するために、第1の発明は、複数のグループユーザーを含むグループを対象として、失効機能付き属性ベースグループ署名を行うための匿名認証方法であって、セットアップステップと、鍵生成ステップと、署名ステップと、検証ステップと、失効ステップとを備える。
【0039】
セットアップステップは、(1)グループに含まれるグループユーザーと、グループに含まれるグループユーザー数の最大値とを特定し、(2)属性の汎用セットを規定し、(3)鍵生成処理、署名処理、および、検証処理において使用されるパラメータを規定する。
【0040】
鍵生成ステップは、公開鍵暗号方式により、(1)グループ公開鍵と、グループ管理用秘密鍵とを生成し、(2)1つのグループユーザーについての全ての属性について、ユーザー秘密鍵を生成し、当該グループユーザーが所有していない属性の汎用セットに含まれる属性について偽データを割り当てる第1ステップを実行し、(3)当該グループユーザーが所有している属性および所有していない属性についてトークンを生成する第2ステップを実行し、(4)前記グループに含まれる全てのグループユーザーについて、前記第1ステップと前記第2ステップを繰り返し実行することで、前記グループに含まれる全てのグループユーザーについての前記ユーザー秘密鍵と属性トークンとを個別に生成する。
【0041】
署名ステップは、ポリシーで設定されている署名権限が許可される条件を満たす場合、前記グループ公開鍵と、割り当てられたユーザー秘密鍵と、属性トークンとを用いて、署名対象のメッセージについての署名データを生成するステップであって、(1)属性トークンを暗号化し、(2)グループユーザーの有効性と、失効リストに属性トークンが含まれていないことと、属性トークンが生成された後変更されていないこととについてのゼロ知識証明を生成し、(3)署名対象のメッセージと、暗号化された属性トークンと、前記ゼロ知識証明とを含む署名データを生成する。
【0042】
検証ステップは、署名データに対して、ポリシーに設定されている署名権限を特定する条件と、グループ公開鍵と、所定のグループユーザーについて失効された属性を特定するデータが記録されている失効リストと、ゼロ知識証明とに基づいて、署名データに対して検証処理を行うことで、メッセージに対してなされた署名が有効であるか否かを判定する。
【0043】
失効ステップは、グループユーザーがもはや所有していない属性が存在する場合、当該グループユーザーがもはや所有していない属性を失効リストに追加することで、グループユーザーのもはや所有していない属性を失効させる。
【0044】
この匿名認証方法では、属性トークンに対して公開鍵暗号(例えば、格子暗号)による暗号化処理を行うことで取得した、暗号化属性トークン(例えば、格子暗号アルゴリズムによりサンプルされた属性トークン)を用いて、署名処理を行うので、ユーザー秘密鍵が漏洩した場合であっても、属性トークンが不正に取得され、失効リストが不正に書き換えられるリスクをなくすことができる。また、この匿名認証方法では、属性トークンを公開鍵暗号(例えば、格子暗号)により暗号化処理して取得したデータ(暗号化データ)を署名データに含め、当該署名データに対して検証処理が実行されるので、セキュリティ強度の高い検証処理を実行することができる。
【0045】
つまり、この匿名認証方法では、(1)ユーザーの匿名性(User anonymity)を完全に実現でき、かつ、(2)属性の匿名性(Attribute anonymity)を完全に実現できる。すなわち、この匿名認証方法では、(1)ユーザーの匿名性(User anonymity)についての完全匿名性(Full anonymity)、および、(2)属性の匿名性(Attribute anonymity)についての完全匿名性(Full anonymity)を実現することができる。
【0046】
したがって、この匿名認証方法により、ユーザー秘密鍵が漏洩した場合であっても、属性トークンが不正に取得され、失効リストが不正に書き換えられたとしても、ユーザーの匿名性及び属性の匿名性が損なわれることのない、セキュリティ強度の高いシステム(動的に失効処理が可能な属性ベースグループ署名を実行するシステム)を実現することができる。
【0047】
第2の発明は、第1の発明であって、公開鍵暗号方式は、格子暗号である。
【0048】
グループ公開鍵は、格子暗号の格子を規定するための行列であって、素数qを法とする剰余系により規定される整数を要素とするn×mの行列と、属性データの集合とにより生成されるデータである。
【0049】
これにより、格子暗号を用いて、匿名認証方法を実現することができる。
【0050】
第3の発明は、第1または第2の発明である匿名認証方法をコンピュータに実行させるためのプログラムである。
【0051】
これにより、第1または第2の発明と同様の効果を奏する匿名認証方法をコンピュータに実行させるためのプログラムを実現することができる。
【0052】
第4の発明は、複数のグループユーザーを含むグループを対象として、失効機能付き属性ベースグループ署名を行うための匿名認証システムであって、グループ管理装置と、グループユーザー用装置と、認証装置と、ネットワークとを備える。
【0053】
ネットワークは、グループ管理装置と、グループユーザー用装置と、認証装置とに接続される。
【0054】
グループ管理装置は、(1)グループに含まれるグループユーザーと、グループに含まれるグループユーザー数の最大値とを特定し、(2)属性の汎用セットを規定し、(3)鍵生成処理、署名処理、および、検証処理において使用されるパラメータを規定するセットアップステップと、
公開鍵暗号方式により、(1)グループ公開鍵と、グループ管理用秘密鍵とを生成し、(2)1つのグループユーザーについての全ての属性について、ユーザー秘密鍵を生成し、当該グループユーザーが所有していない属性の汎用セットに含まれる属性について偽データを割り当てる第1ステップを実行し、(3)当該グループユーザーが所有している属性および所有していない属性についてトークンを生成する第2ステップを実行し、(4)グループに含まれる全てのグループユーザーについて、前記第1ステップと前記第2ステップを繰り返し実行することで、グループに含まれる全てのグループユーザーについてのユーザー秘密鍵と属性トークンとを個別に生成する鍵生成ステップと、
を実行する。
【0055】
グループユーザー用装置は、ポリシーで設定されている署名権限が許可される条件を満たす場合、前記グループ公開鍵と、割り当てられたユーザー秘密鍵と、属性トークンとを用いて、署名対象のメッセージについての署名データを生成するステップであって、(1)前記属性トークンを暗号化し、(2)グループユーザーの有効性と、失効リストに属性トークンが含まれていないことと、前記属性トークンが生成された後変更されていないこととについてのゼロ知識証明を生成し、(3)署名対象のメッセージと、暗号化された属性トークンと、前記ゼロ知識証明とを含む署名データを生成する署名ステップを実行する。
【0056】
認証装置は、署名データに対して、ポリシーに設定されている署名権限を特定する条件と、グループ公開鍵と、所定のグループユーザーについて失効された属性を特定するデータが記録されている失効リストと、ゼロ知識証明とに基づいて、署名データに対して検証処理を行うことで、メッセージに対してなされた署名が有効であるか否かを判定する検証ステップを実行する。
【0057】
また、グループ管理装置は、グループユーザーがもはや所有していない属性が存在する場合、当該グループユーザーがもはや所有していない属性を前記失効リストに追加することで、前記グループユーザーのもはや所有していない属性を失効させる失効ステップを実行する。
【0058】
これにより、第1の発明と同様の効果を奏する匿名認証システムを実現することができる。
【発明の効果】
【0059】
本発明によれば、ユーザー秘密鍵が漏洩した場合であっても、属性トークンgrtが不正に取得され、失効リストRLが不正に書き換えられたとしても、ユーザー匿名性及び属性の匿名性が損なわれる可能性がない匿名認証方法、匿名認証システム、すなわち、完全匿名性(full anonymity)を実現する匿名認証方法、匿名認証システム、を実現することができる。
【図面の簡単な説明】
【0060】
図1】第1実施形態に係る匿名認証システム1000の概略構成図。
図2】匿名認証システム1000で実行されるセットアップ処理のフローチャート。
図3】匿名認証システム1000で実行される鍵生成処理のフローチャート。
図4】匿名認証システム1000で実行される署名処理のフローチャート。
図5】匿名認証システム1000で実行される検証処理のフローチャート。
図6】VLRを用いた属性ベースグループ署名(ABGS)を実行するための認証システム900の概略構成図(ケース1)。
図7】属性ごとに設定された、グループユーザーの秘密鍵、属性の一覧、および、失効リストRLを示す図(ケース1)。
図8】VLRを用いた属性ベースグループ署名(ABGS)を実行するための認証システム900の概略構成図(ケース2)。
図9】属性ごとに設定された、グループユーザーの秘密鍵、属性の一覧、および、失効リストRLを示す図(ケース1、2)。
図10】CPUバス構成を示す図。
【発明を実施するための形態】
【0061】
[第1実施形態]
第1実施形態について、図面を参照しながら、以下、説明する。
【0062】
<1.1:認証システムの構成>
図1は、第1実施形態に係る匿名認証システム1000の概略構成図である。
【0063】
匿名認証システム1000は、図1に示すように、グループ管理装置1と、グループユーザー用装置2と、認証装置3と、データ格納部DB1とを備える。グループ管理装置1と、グループユーザー用装置2と、認証装置3とは、例えば、ネットワークにより接続されており、各装置間において、データ通信が可能である。
【0064】
グループ管理装置1は、コンピュータや、サーバーを用いて実現される装置であり、公開鍵暗号方式による鍵生成処理、失効処理(Revocation)等を実行する。また、グループ管理装置1は、データ格納部DB1と接続されており、データ格納部DB1に対して、データの読み出し/書き込みを行うことができる。グループ管理装置1は、データ格納部DB1により、例えば、グループユーザーのID、ポリシーで設定する対象の属性、属性トークン等のデータを記憶保持し、所望のタイミングで上記データを読み出す。
【0065】
また、グループ管理装置1は、失効処理により取得した失効リストRLを、認証装置3に出力(送信)する。
【0066】
データ格納部DB1は、データ記憶装置であり、グループ管理装置1と接続されている。データ格納部DB1は、グループ管理装置1からの指令に従い、所定のデータの読み出し処理/書き込み処理を行う。
【0067】
グループユーザー用装置2は、コンピュータや、サーバーを用いて実現される装置であり、各グループユーザーに割り当てられたユーザー秘密鍵、属性トークン等のデータを保持し、当該ユーザー秘密鍵、属性トークンを用いて、署名処理等を実行する。グループユーザー用装置2は、グループユーザーごとに、個別に設けられていてもよいし((グループユーザー用装置2の数)=(グループユーザーの数)であってもよいし)、複数のグループユーザーごとに、共有できるように設けられていてもよい((グループユーザー用装置2の数)<(グループユーザーの数)であってもよい)。
【0068】
認証装置3は、コンピュータや、サーバーを用いて実現される装置であり、グループ公開鍵gpk、グループ管理装置1により生成された署名、署名対象のメッセージ、および、グループ管理装置1により管理されている失効リストRL等を用いて、検証処理を実行する。
【0069】
<1.2:匿名認証システムの動作>
以上のように構成された匿名認証システム1000の動作について、以下、説明する。
【0070】
図2は、匿名認証システム1000で実行されるセットアップ処理のフローチャートである。
【0071】
図3は、匿名認証システム1000で実行される鍵生成処理のフローチャートである。
【0072】
図4は、匿名認証システム1000で実行される署名処理のフローチャートである。
【0073】
図5は、匿名認証システム1000で実行される検証処理のフローチャートである。
【0074】
以下では、(1)セットアップ処理と、(2)鍵生成処理と、(3)署名処理と、(4)検証処理と、(5)失効処理とに分けて、匿名認証システム1000の動作を、フローチャートを参照しながら、説明する。
【0075】
(1.2.1:セットアップ処理)
まず、セットアップ処理(Setup(1λ))について説明する。
【0076】
(ステップS101~S102):
ステップS101において、グループ管理装置1は、セキュリティパラメータλを設定する。
【0077】
そして、グループ管理装置1は、非特許文献1に開示されているのと同様に、下記の通り、多項式時間で処理が可能となるように、セキュリティパラメータλに基づいて、各パラメータを設定する(ステップS102)。
N=2=poly(λ)
n=poly(λ)
m=ceil(2n×log(q))
q=O(Ln
σ=ω(log(m))
β=O(sqrt(Ln))
ceil(x):天井関数(x以上の最小整数を取得する関数)
sqrt(x):xの平方根を取得する関数
なお、O(),ω()は、ランダウの記号である。
【0078】
(ステップS103):
ステップS103において、グループ管理装置1は、属性のセットAttを以下のように定義(規定)する。
【数1】

また、グループ管理装置1は、ハッシュ関数Hを以下のように設定する。
ハッシュ関数H:{0,1}→{1,2,3}
t=ω(log(n))
(ステップS104):
ステップS104において、グループ管理装置1は、上記により取得したデータから公開パラメータPP=(para,Att,attL,H)(para:ステップS102で取得したパラメータを含むデータ)を取得し、取得した公開パラメータPPを出力する。
【0079】
(1.2.2:鍵生成処理)
次に、鍵生成処理(KeyGen(PP,N))について説明する。
【0080】
(ステップS201):
ステップS201において、グループ管理装置1は、セットアップ処理で取得した公開パラメータPP(=(para,Att,attL,H))と、グループユーザー数の最大値N=2を入力する。
【0081】
そして、グループ管理装置1は、例えば、下記先行技術文献(先行技術文献A)に開示されている方法と同様にして、modified Boyen's signature scheme のための検証キー(検証用行列)A,A,A,...,A∈Zn×m (Z:整数全体の集合)とトラップドアーT∈Zn×m とを生成する。
(先行技術文献A):
D. Micciancio and C. Peikert, “Trapdoors for lattices: Simpler, tighter, faster, smaller.” in EUROCRYPT 2012, LNCS, vol. 7237. Springer Berlin Heidelberg, 2012, pp. 700-718.
そして、グループ管理装置1は、グループ公開鍵gpkと、グループ管理用秘密鍵gmskを以下のように設定する。
gpk=(A,A,A,...,AL,,u,...,u
gmsk=T
なお、匿名認証システム1000では、格子暗号を用いることを前提としており、格子は、整数n、m、素数q、A∈Zn×m 、u∈Z とすると、格子Λは、以下のように定義される。
【数2】

(ステップS202~S213):
ステップS202~S213において、グループ管理装置1は、グループユーザー用秘密鍵gsk[d]と、暗号化属性トークンgrt[d]とを取得する。
【0082】
グループユーザーのID(index)をd∈{0,1,...,N-1}とする。グループユーザーのID(index)がdであるグループユーザーについて、
d[i]...d[L]⊆{0,1}
をdの二値表現形式を表すものとし、
={ua1,ua2,...,uas}⊆Att(|S|=s)
をdの属性のセットを表すものとする。
【0083】
そして、グループ管理装置1は、各グループユーザーのd(dの初期値を「0」とする。ステップS202)について、以下の処理を実行する。
【0084】
(a)
グループ管理装置1は、グループユーザー(ID=d)の検証キー(検証用行列)Aを下記に相当する処理により取得する。
【数3】

(b)
グループ管理装置1は、上記で取得した検証キーAを用いて、データzd,ajを、下記を満たすようにサンプル取得する。
【数4】

つまり、IDがdであるグループユーザーが属性uを有している場合(ステップS206で「Yes」の場合)、グループ管理装置1は、上記処理を行う。
【0085】
(c)
一方、IDがdであるグループユーザーが属性uを有していない場合(ステップS206で「No」の場合)、グループ管理装置1は、下記処理を行う。
【0086】
すなわち、グループ管理装置1は、上記(処理(b))以外の属性u-sについて、偽データ(fake credentials)fd,fjを、下記を満たすようにサンプル取得する(下記先行技術文献Bを参照)。
【数5】

(先行技術文献B):
R. El Bansarkhani and A. El Kaafarani, “Post-quantum attribute-based signatures from lattice assumptions.” IACR Cryptology ePrint Archive, vol. 2016, p. 823, 2016.
(d)
次に、グループ管理装置1は、下記数式に相当する処理を実行して、データA’を取得する。
【数6】

すなわち、グループ管理装置1は、上記のAを取得する数式において、AおよびAをゼロ行列に置換することで、データA’を取得する。
【0087】
(e)
次に、グループ管理装置1は、上記処理で取得したA’を用いて、dのグループユーザーの全ての属性(正規の属性データzd,aj、および、偽の属性データfd,fj)について、下記数式に相当する処理を実行して、データvdjを取得する。
【数7】

(f)
次に、グループ管理装置1は、上記処理で取得したvdjを用いて、dのグループユーザーの全ての属性(正規の属性データzd,aj、および、偽の属性データfd,fj)について、格子暗号サンプル処理SampleD(T,A,u-vdj,σ)を実行して、データtdjを取得する。
【0088】
なお、格子暗号サンプル処理SampleD(T,A,u-vdj,σ)は、格子を規定する行列Aと、画像A(行列Aにより規定される格子)の中のベクトルu-vdjと、トラップドアーTと、標準偏差σ=sqrt(n×log(q)×log(n))を入力とし、下記数式を満たすデータx(x∈Z)を、標準偏差σの離散ガウス分布よりサンプルして取得(出力)する。
【数8】

(g)
そして、グループ管理装置1は、IDがdであるグループユーザーの秘密鍵であるグループユーザー用秘密鍵gsk[d]と、暗号化属性トークンgrt[d]とを、以下の通り、取得する。
【数9】

上記のようにして、グループ管理装置1は、IDがdであるグループユーザーについて、(1)グループユーザー用秘密鍵gsk[d]、および、(2)暗号化属性トークンgrt[d]を取得する(ステップS205~S211)。
【0089】
そして、グループ管理装置1は、全てのグループユーザーについて、上記処理を実行することで(d=0からd=N-1まで、ステップS205~S211の処理を繰り返し実行することで)、全てのグループユーザーについての(1)グループユーザー用秘密鍵gsk[d]、および、(2)暗号化属性トークンgrt[d]を取得する(ステップS203~S213)。
【0090】
そして、グループ管理装置1は、上記処理により取得した鍵について、以下のように処理する。
(1)グループ管理装置1は、グループ管理用秘密鍵gmsk=Tを秘密裏に保持する。
(2)グループ管理装置1は、グループユーザー用秘密鍵gsk[d]、および、暗号化属性トークンgrt[d]を、IDがdであるグループユーザーに秘密裏に渡す(例えば、グループユーザー用装置2へ秘密裏に(他者に漏洩しないように)送信する)。
(3)グループ管理装置1は、グループ公開鍵gpkを認証装置3に送信する。
【0091】
(1.2.3:署名処理)
次に、署名処理(Sign(PP,Γ,gpk,gsk[d],grt[d],S,M))について説明する。
【0092】
(ステップS301):
ステップS301において、署名をしようとしているグループユーザーは、例えば、グループユーザー用装置2により、ポリシー(属性についての要求条件を決定するためのポリシー)、および、メッセージM(署名対象のデータ)を取得する。そして、グループユーザー用装置2は、メッセージMに対して署名する権限があるか否かのチェック処理、すなわち、署名しようとしているグループユーザー(このユーザーのIDをdとする)が、ポリシーにより設定されている属性の要求条件(署名するために所有している必要がある属性を特定する条件)を満たすか否かのチェック処理(属性チェック処理)を実行する。
【0093】
(ステップS302):
ステップS302では、属性チェック処理の結果、署名しようとしているグループユーザー(ID=d)が要求されている属性を利用可能である(要求されている属性を有している)か否かの判定処理が実行される。そして、当該判定処理の結果、署名しようとしているグループユーザー(ID=d)が要求されている属性を有していないと判定された場合(ステップS302において「No」の場合)、署名処理を終了させる。一方、署名しようとしているグループユーザー(ID=d)が要求されている属性を有していると判定された場合(ステップS302において「Yes」の場合)、処理をステップS303に進める。
【0094】
(ステップS303):
ステップS303において、グループユーザー用装置2は、属性トークンの暗号化処理を実行し、暗号化データbを取得する。この処理について、以下、具体的に説明する。なお、説明便宜のため、ID=dのグループユーザー(以下、「グループユーザーd」という)が、メッセージMに対して署名を実行しようとしているものとして、以下、説明する。
【0095】
グループユーザー用装置2は、グループユーザーdの属性のセットS⊆Attを取得し、ポリシーにより設定されている属性の要求条件(署名するために所有している必要がある属性を特定する条件)を特定するための閾値述語データ(threshold predicate)Γ=(t,S={u,u,...,u}⊆Att)を取得する。なお、1≦t≦|S|=pである。
【0096】
そして、グループユーザーdが所有している属性と集合Sとのマッチしている属性を示す集合Sとする。つまり、
⊆(S∩S)⊆Att、|S|=t
である。
【0097】
また、集合Sの要素(元)から、集合Sの要素(元)を除いた集合S\Sの元となる属性については、グループユーザーdは、偽データ(fake credentials)を有しているものとする。
【0098】
そして、グループユーザー用装置2は、i∈pである全ての属性について、以下の処理を実行する。
【0099】
グループユーザー用装置2は、
ρ←{0,1}
により、{0,1}からランダムにサンプルしたデータをρに設定する。
【0100】
そして、グループユーザー用装置2は、以下の処理により、暗号化データbを取得する。
【数10】

なお、A・tdiは、グループユーザーdのi番目の属性の暗号化属性トークンgrt[d].att(=A・tdi)である。
【0101】
グループユーザー用装置2は、上記処理を、i∈pである全ての属性について、行うことで、暗号化データbを取得する。
【0102】
(ステップS304):
次に、グループユーザー用装置2は、ゼロ知識証明Π(ゼロ知識証明データΠ)を生成する処理を行う。
【0103】
つまり、グループユーザー用装置2は、グループユーザーd(証明者)が、(1)少なくともt個(S⊆(S∩S)⊆Att、|S|=t)の属性を所有している有効なグループユーザーであり、かつ、(2)署名する権限を失効されていないことを証明するためのゼロ知識証明Πを生成する。
【0104】
なお、上記の(1)、(2)は、強化ゼロ知識証明技術(Zero-Knowledge Argument of knowledge proof)(例えば、下記の先行技術文献C、Dを参考)で規定されるプロトコルによる処理を、公開データ(=(A,A,A,...,AL,,u,...,u,B,B,...,B,b,b,...,b)、および、証明データwitness=(d,z,z,...,z,e,e,...,e)を入力として、t=ω(log(n))回繰り返し実行することで証明できる(ゼロ知識証明できる)。
【0105】
そして、上記処理をFiat-Shamirヒューリスティック方式により実行することで、ゼロ知識証明Π=({CMT(k) k=1,CH,{RSP(k) k=1}として取得する。
【0106】
なお、チャレンジCHは、
CH=({Ch(k) k=1)=H(M,A,{A i=0,{u i=1,{B i=1,{b i=1,{CMT(k) k=1
である。なお、H()は、ハッシュ関数である。
【0107】
また、上記のゼロ知識証明プロトコルによる処理は、証明者(prover)をグループユーザー用装置2(グループユーザーd)とし、検証者(verifier)を認証装置3として、実行される。
【0108】
そして、上記処理により取得されたゼロ知識証明Πには、以下の証明(証明データ)が含まれる。
(1)グループユーザーdが有効な属性を所有していることの証明
(2)属性トークンが有効であることの証明
(3)属性トークンが失効リストRLに記録されていないことの証明
(先行技術文献C):
R. El Bansarkhani and A. El Kaafarani, “Post-quantum attribute-based signatures from lattice assumptions.” IACR Cryptology ePrint Archive, vol. 2016, p. 823, 2016.
(先行技術文献D):
S. Ling, K. Nguyen, and H. Wang, “Group signatures from lattices: simpler, tighter, shorter, ring-based,” in PKC 2015, LNCS, vol. 9020. Springer Berlin Heidelberg, 2015, pp. 427-449.
(ステップS305):
グループユーザー用装置2は、上記処理により生成したゼロ知識証明Πを用いて、署名Σ=(M,{ρ i=1,{b i=1,Π)を生成し、生成した署名Σ(署名データ)を、メッセージMとともに、認証装置3に出力する。
【0109】
(1.2.4:検証処理)
次に、検証処理(Verify(PP,Γ,gpk,RL,M,Σ))について説明する。
【0110】
(ステップS401):
ステップS401において、認証装置3は、ポリシー(属性についての要求条件を決定するためのポリシー)を取得する。そして、認証装置3は、当該ポリシーから、属性の要求条件(署名するために所有している必要がある属性を特定する条件)を特定するための閾値述語データ(threshold predicate)Γ=(t,S={u,u,...,u}⊆Att)を取得する。
【0111】
また、認証装置3は、グループユーザー用装置2から送信された、メッセージM(署名対象のデータ)および署名Σ(=(M,{ρ i=1,{b i=1,Π))を取得する。
【0112】
また、グループ管理装置1は、失効処理により取得した失効リストRL(グループ管理装置1により管理している失効リストRL)を認証装置3に送信する。
【0113】
認証装置3は、グループ管理装置1から送信される失効リストRLを受信する。
【0114】
なお、認証装置3は、失効リストRLを、以下のデータとして取得するものとする。
【数11】

なお、a<u(=|Att|)である。
【0115】
また、認証装置3は、グループ管理装置1が生成したグループ公開鍵pkを受信し、当該グループ公開鍵gpk(=(A,A,A,...,AL,,u,...,u))を記憶保持している。
【0116】
また、認証装置3は、公開パラメータPP(=(para,Att,attL,H))を取得する。
【0117】
(ステップS402、S403):
ステップS402において、認証装置3は、ゼロ知識証明Πのチェック処理を実行する。
【0118】
まず、認証装置3は、取得した署名Σ(=(M,{ρ i=1,{b i=1,Π))を解析して、署名Σに含まれる各データを取得する。
【0119】
次に、認証装置3は、A,u,M,ρを用いて、関数G(上記(数式10)に示した関数G)による処理を実行する。すなわち、認証装置3は、下記数式に相当する処理を実行して、データBを取得する。
【数12】

そして、認証装置3は、ゼロ知識証明Πを用いて、以下の検証処理を実行する。
(検証処理1):
Π=({CMT(k) k=1,{Ch(k) k=1,{RSP(k) k=1
認証装置3は、t個のチェレンジ{Ch(k) k=1に、1つでも、ハッシュ関数Hにより取得された値(すなわち、H(M,A,{A i=0,{u i=1,{B i=1,{b i=1,{CMT(k) k=1)の値)が一致しないものがある場合、検証処理(検証処理1)の結果(戻り値)を「0」にする。
(検証処理2):
認証装置3は、i=0からtにおいて、後述のゼロ知識証明プロトコルによる処理を実行し、公開データ(=(A,A,A,...,AL,,u,...,u,B,B,...,B,b,b,...,b)を入力としたときに、コミットメントCMT、および、チャレンジChに対するレスポンスRESの有効性をチェックし、後述のゼロ知識証明プロトコルで規定した条件の1つでも満たさないものが存在する場合、検証処理(検証処理2)の結果(戻り値)を「0」にする。
【0120】
ステップS403において、認証装置3は、
(1)検証処理1の結果(戻り値)が「0」ではなく、かつ、
(2)検証処理2の結果(戻り値)が「0」ではない、
場合、ゼロ知識証明Πは、有効であると判定し(ステップS403において「Yes」)、処理をステップS404に進める。
【0121】
一方、上記以外の場合は、ゼロ知識証明Πは、無効であると判定し(ステップS403において「No」)、処理をステップS407に進める。
【0122】
(ステップS404、S405):
ステップS404において、認証装置3は、属性トークンのチェック処理を行う。
【0123】
具体的には、認証装置3は、各属性データu=(ua1,...,uau)∈RL、a<Nについて、下記数式に相当する処理を実行する。
【数13】

そして、上記処理の結果、下記数式を満たすe’が存在する場合、認証装置3は、uに相当する属性データが失効リストRLに含まれていると判定する。すなわち、この場合、認証装置3は、属性トークンに対応する属性が失効リストRLに含まれていると判定する。
【数14】

ステップS405において、認証装置3は、上記の判定結果に基づいて、属性トークンが失効リストRLに含まれていると判定した場合(ステップS405において「Yes」の場合)、処理をステップS407に進める。
【0124】
一方、認証装置3は、属性トークンが失効リストRLに含まれていないと判定した場合(ステップS405において「No」の場合)、処理をステップS406に進める。
【0125】
(ステップS406):
ステップS406において、認証装置3は、署名Σが有効(「Valid」)であることを示す検証結果データを出力する。
【0126】
(ステップS407):
ステップS407において、認証装置3は、署名Σが無効(「Invalid」)であることを示す検証結果データを出力する。
【0127】
(1.2.5:失効処理)
次に、失効処理(Revoke(PP,gpk,gmsk,RL,d,S))について説明する。
【0128】
グループ管理装置1は、署名権限のあるグループユーザーd(有効なグループユーザー)の取り消し属性のセットS(下記数式で表される取り消し属性のセットSr)と、失効リストRLを用いて、以下の処理を行うことで、失効処理を行う。
【数15】

なお、r<u(=|Att|)である。
【0129】
失効リストRLに、u djが存在していない場合であって、グループユーザーdの取り消し属性のセットSに、u djが含まれている場合、グループ管理装置1は、当該失効対象である属性u djを、失効リストRLに追加する。
【0130】
これにより、失効させるべき属性u djが失効リストRLに追加される。
【0131】
そして、グループ管理装置1は、上記により生成(更新)した失効リストを記憶保持するとともに、認証装置3に出力する。
【0132】
≪ゼロ知識証明≫
次に、ゼロ知識証明の処理方法の詳細について、以下説明する。
【0133】
グループユーザーdが有効な属性S={u,u,...u}を所有しており、ポリシーから、属性の要求条件(署名するために所有している必要がある属性を特定する条件)を特定するための閾値述語データ(threshold predicate)Γが以下のものであるとする。
Γ={t out of S⊆Att,t∈N∧(S=u,u,...,u)}
また、S=S∩S、S=S\S、|S|=t、|S|=p-tであるものとする。
【0134】
このとき、根拠とするプロトコルは、下記の通りである。
公開パラメータ:
(1)下記の数式により規定される行列
【数16】

なお、l(小文字のエル)=Lである(以下、同様)。
(2)ベクトルのセット:{u i=1
(3)閾値述語データΓ=(t,S)
(4)行列{B∈Zm×n i=1
(5)ベクトル{b∈Z i=1
証明データwitness:
(1)id
(2)t個のベクトルz
(3)p-t個のベクトルz
(4)p個のベクトルt
(5)p個のベクトルe∈Z
証明者の目的は、検証者に以下のことをゼロ知識証明により確認させることである。
【数17】

そして、証明者と検証者は、ともに、以下の計算を行う。
【数18】

そして、以下の処理を実行する。
(1)Sについて、証明者は、分解拡張テクニック(Decomposition Extension technique)をzに適用して、検証者が、下記数式によるチェックができるように、マスキングターム(Masking term){r z(i)}、i∈[t]、j∈[k]を生成する。
【数19】

(2)Sについて、証明者は、fに対して、分割、拡張を行い、検証者が、下記数式によるチェックができるように、マスキングターム(Masking term){r z(i)}、i∈[p-t]、j∈[k]を生成する。
【数20】

(3)Sについて、証明者は、tおよびeに対して、分割、拡張を行い、検証者が、下記数式によるチェックができるように、マスキングターム(Masking term){r t(i)}、i∈[p]、j∈[k]、{r e(i)}、i∈[p]、j∈[k]、を生成する。
【数21】

また、同様に、検証者が、下記数式によるチェックができるようにする。
【数22】

次に、ゼロ知識証明のプロトコルについて、説明する。
(A)コミットメント(Commitments)は、下記により実行する。
【数23】

そして、証明者は、コミットメントCMT=(c,c,c)を生成し、検証者に送信うする。なお、c,c,cは、下記の通りである。
【数24】

(B)チャレンジ(Challenge)は、下記により実行する。
【0135】
検証者がランダムにチャレンジCH←{1,2,3}を選択し、選択したチャレンジを証明者に送信する。
(C)レスポンス(Response)は、下記により実行する。
【0136】
CHの値に従い、証明者は、以下のように応答する。
(C1)CH=1の場合、以下の処理により応答する。
【数25】

(C2)CH=2の場合、以下の処理により応答する。
【数26】

(C3)CH=3の場合、以下の処理により応答する。
【数27】

(D)検証(Verification)は、下記により実行する。
【0137】
検証者は、受信したレスポンスRSPを下記のようにチェックする。
(D1)CH=1の場合、検証者は、wd*∈B2L、w z(i)が、少なくともt個(tセット)のベクトルと、全てのj∈[k]、w t(i)∈B、w e(i)∈B3mとについてのwd*に関して、有効であることをチェックする。そして、検証者は、下記のチェックを行う。
【数28】

(D2)CH=2の場合、検証者は、下記のチェックを行う。
【数29】

(D3)CH=3の場合、検証者は、下記のチェックを行う。
【数30】

そして、検証者は、上記の全ての条件を満たすとき「1」を返信し、それ以外のときは、「0」を返信する。
【0138】
上記により、匿名認証システム1000では、ゼロ知識証明を行う。
【0139】
以上のように、匿名認証システム1000では、属性トークンに対して格子暗号による暗号化処理を行うことで取得した、暗号化属性トークンgrtを用いて、署名処理を行うので、ユーザー秘密鍵が漏洩した場合であっても、属性トークンgrtが不正に取得され、失効リストRLが不正に書き換えられ、結果としてユーザーの匿名性及び属性の匿名性が損なわれるリスクをなくすことができる。また、匿名認証システム1000では、属性トークンを格子暗号により暗号化処理して取得したデータ(暗号化データ)bを署名Σに含めて、グループユーザー用装置2から認証装置3に出力するので、セキュリティ強度の高いゼロ知識証明を実行できるとともに、セキュリティ強度の高い検証処理を実行することができる。
【0140】
つまり、匿名認証システム1000では、(1)ユーザーの匿名性(User anonymity)を完全に実現でき、かつ、(2)属性の匿名性(Attribute anonymity)を完全に実現できる。すなわち、匿名認証システム1000では、(1)ユーザーの匿名性(User anonymity)についての完全匿名性(Full anonymity)、および、(2)属性の匿名性(Attribute anonymity)についての完全匿名性(Full anonymity)を実現することができる。
【0141】
したがって、匿名認証システム1000により、ユーザー秘密鍵が漏洩した場合であっても、属性トークンgrtが不正に取得され、失効リストRLが不正に書き換えられる可能性がない、セキュリティ強度の高いシステム(動的に失効処理が可能な属性ベースグループ署名を実行するシステム)を実現することができる。
【0142】
[他の実施形態]
上記実施形態では、公開鍵暗号方式として、格子暗号を用いる場合について、説明したが、これに限定されることはなく、他の公開鍵暗号方式を用いてもよい。
【0143】
また、ゼロ知識証明についても、上記以外の方法を採用してもよい。
【0144】
また、上記実施形態で説明した匿名認証システム1000において、各ブロックは、LSIなどの半導体装置により個別に1チップ化されても良いし、一部又は全部を含むように1チップ化されても良い。
【0145】
なお、ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
【0146】
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
【0147】
また、上記各実施形態の各機能ブロックの処理の一部または全部は、プログラムにより実現されるものであってもよい。そして、上記各実施形態の各機能ブロックの処理の一部または全部は、コンピュータにおいて、中央演算装置(CPU)により行われる。また、それぞれの処理を行うためのプログラムは、ハードディスク、ROMなどの記憶装置に格納されており、ROMにおいて、あるいはRAMに読み出されて実行される。
【0148】
また、上記実施形態の各処理をハードウェアにより実現してもよいし、ソフトウェア(OS(オペレーティングシステム)、ミドルウェア、あるいは、所定のライブラリとともに実現される場合を含む。)により実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現しても良い。
【0149】
例えば、上記実施形態の各機能部を、ソフトウェアにより実現する場合、図16に示したハードウェア構成(例えば、CPU、ROM、RAM、入力部、出力部等をバスBusにより接続したハードウェア構成)を用いて、各機能部をソフトウェア処理により実現するようにしてもよい。
【0150】
また、上記実施形態における処理方法の実行順序は、必ずしも、上記実施形態の記載に制限されるものではなく、発明の要旨を逸脱しない範囲で、実行順序を入れ替えることができるものである。
【0151】
前述した方法をコンピュータに実行させるコンピュータプログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体は、本発明の範囲に含まれる。ここで、コンピュータ読み取り可能な記録媒体としては、例えば、フレキシブルディスク、ハードディスク、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、大容量DVD、次世代DVD、半導体メモリを挙げることができる。
【0152】
上記コンピュータプログラムは、上記記録媒体に記録されたものに限られず、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク等を経由して伝送されるものであってもよい。
【0153】
なお、本発明の具体的な構成は、前述の実施形態に限られるものではなく、発明の要旨を逸脱しない範囲で種々の変更および修正が可能である。
【符号の説明】
【0154】
1000 匿名認証システム
1 グループ管理装置
2 グループユーザー用装置
3 認証装置
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10