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

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

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

特許7348848統合属性ベースグループ署名処理方法、統合属性ベースグループ署名処理システム、および、プログラム
<>
  • 特許-統合属性ベースグループ署名処理方法、統合属性ベースグループ署名処理システム、および、プログラム 図1
  • 特許-統合属性ベースグループ署名処理方法、統合属性ベースグループ署名処理システム、および、プログラム 図2
  • 特許-統合属性ベースグループ署名処理方法、統合属性ベースグループ署名処理システム、および、プログラム 図3
  • 特許-統合属性ベースグループ署名処理方法、統合属性ベースグループ署名処理システム、および、プログラム 図4
  • 特許-統合属性ベースグループ署名処理方法、統合属性ベースグループ署名処理システム、および、プログラム 図5
  • 特許-統合属性ベースグループ署名処理方法、統合属性ベースグループ署名処理システム、および、プログラム 図6
  • 特許-統合属性ベースグループ署名処理方法、統合属性ベースグループ署名処理システム、および、プログラム 図7
  • 特許-統合属性ベースグループ署名処理方法、統合属性ベースグループ署名処理システム、および、プログラム 図8
  • 特許-統合属性ベースグループ署名処理方法、統合属性ベースグループ署名処理システム、および、プログラム 図9
  • 特許-統合属性ベースグループ署名処理方法、統合属性ベースグループ署名処理システム、および、プログラム 図10
  • 特許-統合属性ベースグループ署名処理方法、統合属性ベースグループ署名処理システム、および、プログラム 図11
  • 特許-統合属性ベースグループ署名処理方法、統合属性ベースグループ署名処理システム、および、プログラム 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-12
(45)【発行日】2023-09-21
(54)【発明の名称】統合属性ベースグループ署名処理方法、統合属性ベースグループ署名処理システム、および、プログラム
(51)【国際特許分類】
   H04L 9/32 20060101AFI20230913BHJP
【FI】
H04L9/32 200C
【請求項の数】 6
(21)【出願番号】P 2020004943
(22)【出願日】2020-01-16
(65)【公開番号】P2021114641
(43)【公開日】2021-08-05
【審査請求日】2022-11-09
(73)【特許権者】
【識別番号】393031586
【氏名又は名称】株式会社国際電気通信基礎技術研究所
(74)【代理人】
【識別番号】100143498
【弁理士】
【氏名又は名称】中西 健
(74)【代理人】
【識別番号】100136319
【弁理士】
【氏名又は名称】北原 宏修
(74)【代理人】
【識別番号】100148275
【弁理士】
【氏名又は名称】山内 聡
(74)【代理人】
【識別番号】100142745
【弁理士】
【氏名又は名称】伊藤 世子
(72)【発明者】
【氏名】ペレーラ マハラゲ ニサンサラ セウワンディ
(72)【発明者】
【氏名】中村 徹
(72)【発明者】
【氏名】橋本 真幸
(72)【発明者】
【氏名】横山 浩之
【審査官】行田 悦資
(56)【参考文献】
【文献】国際公開第2010/137508(WO,A1)
【文献】特表2013-536651(JP,A)
【文献】国際公開第2016/014048(WO,A1)
【文献】藤井 裕城 ほか,ペアリングを用いた効率的な属性ベースグループ署名方式の提案,電子情報通信学会技術研究報告,日本,社団法人電子情報通信学会 The Institute of Electronics,Information and Communication Engineers,2009年11月05日,第109巻,第271号,pp.15-22
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
(57)【特許請求の範囲】
【請求項1】
複数のグループユーザーを含むグループを対象とする属性ベースグループ署名処理であって、署名権限の条件が属性に基づいて規定されているポリシーΓに基づいて、署名の有効性が判定される前記属性ベースグループ署名処理を行うための統合属性ベースグループ署名処理方法であり、
鍵生成装置と、認証装置と、グループ管理装置と、グループユーザー用装置と、を備える統合属性ベースグループ署名処理システムを用いて実行される統合属性ベースグループ署名処理方法であって、
前記鍵生成装置が、(1)グループに含まれるグループユーザーと、前記グループに含まれるグループユーザー数の最大値とを特定し、(2)属性の汎用セットを規定し、(3)鍵生成処理、署名処理、および、検証処理において使用されるパラメータを規定するセットアップステップと、
前記鍵生成装置が、前記パラメータに基づいて、(1)ゼロ知識証明用の共通ステートメントcrsと、(2)グループ管理者用の公開鍵gmpkおよび秘密鍵gspkと、(3)追跡用の公開鍵tmpkおよび秘密鍵tmskと、(4)各グループユーザーi(i:自然数、1≦i≦Num1(Num1:グループユーサー数))が所有しうる各属性j(j:自然数、1≦j≦Num2(Num2:各グループユーザーが所有しうる属性数))についての公開鍵uapkijおよびuaskijと、を生成する鍵生成ステップと、
前記認証装置が、前記ポリシーΓを設定するポリシー設定ステップと、
前記グループユーザー用装置が、各グループユーザーiが所有する属性attを、秘密鍵uaskijを用いて署名処理することで暗号化属性署名σijを取得し、当該暗号化属性署名σijを属性att、および、グループユーザー識別子dと対応付けたデータ<att,σij,d>を、追跡用公開鍵tmpkにより暗号化することで、暗号化データcijを取得するとともに、前記共通ステートメントcrsを用いてゼロ知識証明データπijを生成し、さらに、属性署名セットデータΣ=(cij,πij)を生成する処理を、グループユーザーiが所有する属性であって、ポリシーΓに設定されている属性と一致する属性の数に対応する回数であるm回(m:自然数)繰り返し実行することで、属性-ユーザー署名セットデータ{att,Σj∈{1,...,m}を取得するユーザー属性署名ステップと、
前記グループ管理装置が、前記共通ステートメントcrsを用いて、前記ユーザー属性署名ステップにより生成されたデータの有効性を検証し、有効であると判定されたデータを、属性について重複がないように蓄積することで、有効データリストvlを取得するユーザー属性署名認証ステップと、
前記グループ管理装置が、
(1)グループを識別するためのグループ識別子gに基づいて、暫定公開鍵tapk、および、暫定秘密鍵taskを生成し、
(2)前記有効データリストに含まれる属性データattと署名データΣと、グループ署名対象のメッセージMとを対応付けたデータ<att,Σ,M>を、暫定秘密鍵taskで暗号化することで、暗号化データσ’を取得し、暗号化データσ’をグループ識別子gに対応付けたデータを、追跡用公開鍵tmpkにより暗号化することで、暗号化データcを取得するとともに、前記共通ステートメントcrsを用いてゼロ知識証明データΠを生成し、さらに、公開鍵セットgpk=(crs,gmpk,tmpk)とし、データ<att ,σ ij ,d >を前記追跡用公開鍵tmpkにより暗号化したデータをc とし、統合署名セットデータΣ=(gpk,{cj∈{1,...,v},c,Π)を生成する、統合署名処理ステップと、
を備える統合属性ベースグループ署名処理方法。
【請求項2】
前記統合属性ベースグループ署名処理システムは追跡装置を備え、
前記統合属性ベースグループ署名処理方法は、さらに、
前記追跡装置が、前記統合署名セットデータΣを取得する統合署名セットデータ取得ステップと、
前記追跡装置が、前記統合署名セットデータΣから暗号化データcを取得し、当該暗号化データcを、追跡用秘密鍵tmskにより復号したデータからグループ識別子gを取得する追跡処理ステップと、
を備える、
請求項1に記載の統合属性ベースグループ署名処理方法。
【請求項3】
前記追跡処理ステップは、さらに、
前記追跡装置が、前記統合署名セットデータΣから暗号化データcを取得し、当該暗号化データcを、追跡用秘密鍵tmskにより復号したデータから、属性attについての署名をしたグループユーザーのグループユーザー識別子dを取得する、
請求項2に記載の統合属性ベースグループ署名処理方法
【請求項4】
複数のグループユーザーを含むグループを対象とする属性ベースグループ署名処理であって、署名権限の条件が属性に基づいて規定されているポリシーΓに基づいて、署名の有効性が判定される前記属性ベースグループ署名処理を行うための統合属性ベースグループ署名処理システムであって、
鍵生成装置と、
認証装置と、
グループ管理装置と、
グループユーザー用装置と、
を備え、
前記鍵生成装置は、
(1)グループに含まれるグループユーザーと、前記グループに含まれるグループユーザー数の最大値とを特定し、(2)属性の汎用セットを規定し、(3)鍵生成処理、署名処理、および、検証処理において使用されるパラメータを規定するセットアップステップと、
前記パラメータに基づいて、(1)ゼロ知識証明用の共通ステートメントcrsと、(2)グループ管理者用の公開鍵gmpkおよび秘密鍵gspkと、(3)追跡用の公開鍵tmpkおよび秘密鍵tmskと、(4)各グループユーザーi(i:自然数、1≦i≦Num1(Num1:グループユーサー数))が所有しうる各属性j(j:自然数、1≦j≦Num2(Num2:各グループユーザーが所有しうる属性数))についての公開鍵uapkijおよびuaskijと、を生成する鍵生成ステップと、
を実行し、
前記認証装置は、前記ポリシーΓを設定するポリシー設定ステップを実行し、
前記グループユーザー用装置は、
各グループユーザーiが所有する属性attを、秘密鍵uaskijを用いて署名処理することで暗号化属性署名σijを取得し、当該暗号化属性署名σijを属性att、および、グループユーザー識別子dと対応付けたデータ<att,σij,d>を、追跡用公開鍵tmpkにより暗号化することで、暗号化データcijを取得するとともに、前記共通ステートメントcrsを用いてゼロ知識証明データπijを生成し、さらに、属性署名セットデータΣ=(cij,πij)を生成する処理を、グループユーザーiが所有する属性であって、ポリシーΓに設定されている属性と一致する属性の数に対応する回数であるm回(m:自然数)繰り返し実行することで、属性-ユーザー署名セットデータ{att,Σj∈{1,...,m}を取得するユーザー属性署名ステップを実行し、
前記グループ管理装置は、
前記共通ステートメントcrsを用いて、前記ユーザー属性署名ステップにより生成されたデータの有効性を検証し、有効であると判定されたデータを、属性について重複がないように蓄積することで、有効データリストvlを取得するユーザー属性署名認証ステップと、
グループを識別するためのグループ識別子gに基づいて、暫定公開鍵tapk、および、暫定秘密鍵taskを生成し、
前記有効データリストに含まれる属性データattと署名データΣと、グループ署名対象のメッセージMとを対応付けたデータ<att,Σ,M>を、暫定秘密鍵taskで暗号化することで、暗号化データσ’を取得し、暗号化データσ’をグループ識別子gに対応付けたデータを、追跡用公開鍵tmpkにより暗号化することで、暗号化データcを取得するとともに、前記共通ステートメントcrsを用いてゼロ知識証明データΠを生成し、さらに、公開鍵セットgpk=(crs,gmpk,tmpk)とし、データ<att ,σ ij ,d >を前記追跡用公開鍵tmpkにより暗号化したデータをc とし、統合署名セットデータΣ=(gpk,{cj∈{1,...,v},c,Π)を生成する、統合署名処理ステップと、
を実行する、
統合属性ベースグループ署名処理システム。
【請求項5】
前記認証装置は、前記共通ステートメントcrsを用いて、前記統合署名セットデータΣのゼロ知識証明Πについてのゼロ知識認証処理を行う認証ステップを実行する、
請求項4に記載の統合属性ベースグループ署名処理システム。
【請求項6】
請求項1乃至3に記載の統合属性ベースグループ署名処理方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、匿名認証技術に関し、特に、グループ署名を利用する匿名認証技術に関する。
【背景技術】
【0002】
所定の属性を有するユーザーのみが匿名での認証を可能にする技術(例えば、特許文献1を参照)として、グループ署名(例えば、属性ベースグループ署名(ABGS:Attribute Based Group Signature))が知られている。例えば、属性ベースグループ署名(ABGS)では、公開鍵暗号方式を用いて、グループ管理者がグループ公開鍵と、ユーザー秘密鍵と、グループ管理用秘密鍵とを生成する。属性ベースグループ署名(ABGS)では、グループユーザーごとに、ユーザー秘密鍵を生成し、各グループユーザーに生成したユーザー秘密鍵が渡される。また、属性ベースグループ署名(ABGS)では、各グループユーザーが有する属性を特定するための属性トークンが生成され、生成された属性トークンが各グループユーザーに渡される。
【0003】
そして、属性ベースグループ署名(ABGS)では、ポリシー(Policy)を設定し、当該ポリシーに基づく条件を満たす属性を有するグループユーザーのみが、所定のデータ(例えば、署名を要求する外部ユーザー(例えば、この外部ユーザーの名前を「アリス」とする)のドキュメント)に対して署名をすることができる。つまり、属性ベースグループ署名では、各グループユーザーが、ポリシーにより要求される属性を有していれば、当該グループユーザーが、当該グループユーザーのプライバシーを守りながら(当該グループユーザーを特定するデータ(例えば、当該グループユーザーのID等)を外部に漏らすことなく)、所定のデータ(例えば、署名を要求する外部ユーザー「アリス」のドキュメント)に対して、署名(真正の署名)をすることが可能となる。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2011-114504号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、属性ベースグループ署名では、ポリシーが要求する条件が複数の属性を有していることである場合、当該複数の属性を有している単独のグループユーザーが存在しないとき、有効な署名を行うことができない。
【0006】
ポリシーが要求する条件が複数の属性を有していることである場合であって、当該複数の属性を有している単独のユーザーが存在しない場合において、複数のユーザーが有している属性をマージして、有効な署名を生成することができれば便利である。例えば、ポリシーが、(1)弁護士であるという属性、および、(2)マネージャーであるという属性を満たすことを要求している場合において、グループユーザーAが弁護士であり、かつ、グループユーザーBがマネージャーである場合、グループユーザーAの弁護士であるということの属性と、グループユーザーBのマネージャーであるということの属性とをマージして、有効な署名を生成することができれば便利である。
【0007】
このようなグループユーザーの属性をマージして、ポリシーが要求する条件を満たす有効な署名(これを「統合属性ベースグループ署名」(C-ABGS:Collaborative Attribute-based Group Signatures)という)を行う技術を実現する場合、(1)グループユーザーの匿名性、(2)属性の匿名性、(3)追跡可能性(traceability)を確保する必要がある。
【0008】
そこで、本発明は、上記課題に鑑み、グループユーザーの匿名性、属性の匿名性、および、追跡可能性(traceability)を確保しつつ、グループユーザーの属性をマージして、ポリシーが要求する条件を満たす有効な署名を行うことができる統合属性ベースグループ署名処理方法、統合属性ベースグループ署名認証処理方法、統合属性ベースグループ署名追跡処理方法、統合属性ベースグループ署名処理システム、および、プログラムを実現することを目的とする。
【課題を解決するための手段】
【0009】
上記課題を解決するために、第1の発明は、複数のグループユーザーを含むグループを対象とする属性ベースグループ署名処理であって、署名権限の条件が属性に基づいて規定されているポリシーΓに基づいて、署名の有効性が判定される属性ベースグループ署名処理を行うための統合属性ベースグループ署名処理方法である。統合属性ベースグループ署名処理方法は、セットアップステップと、鍵生成ステップと、ポリシー設定ステップと、ユーザー属性署名ステップと、ユーザー属性署名認証ステップと、統合署名処理ステップと、を備える。
【0010】
セットアップステップは、(1)グループに含まれるグループユーザーと、グループに含まれるグループユーザー数の最大値とを特定し、(2)属性の汎用セットを規定し、(3)鍵生成処理、署名処理、および、検証処理において使用されるパラメータを規定する。
【0011】
鍵生成ステップは、パラメータに基づいて、(1)ゼロ知識証明用の共通ステートメントcrsと、(2)グループ管理者用の公開鍵gmpkおよび秘密鍵gspkと、(3)追跡用の公開鍵tmpkおよび秘密鍵tmskと、(4)各グループユーザーi(i:自然数、1≦i≦Num1(Num1:グループユーサー数))が所有しうる各属性j(j:自然数、1≦j≦Num2(Num2:各グループユーザーが所有しうる属性数))についての公開鍵uapkijおよびuaskijと、を生成する。
【0012】
ポリシー設定ステップは、ポリシーΓを設定する。
【0013】
ユーザー属性署名ステップは、各グループユーザーiが所有する属性attを、秘密鍵uaskijを用いて署名処理することで暗号化属性署名σijを取得し、当該暗号化属性署名σijを属性att、および、グループユーザー識別子dと対応付けたデータ<att,σij,d>を、追跡用公開鍵tmpkにより暗号化することで、暗号化データcijを取得するとともに、共通ステートメントcrsを用いてゼロ知識証明データπijを生成し、さらに、属性署名セットデータΣ=(cij,πij)を生成する処理を、グループユーザーiが所有する属性であって、ポリシーΓに設定されている属性と一致する属性の数に対応する回数であるm回(m:自然数)繰り返し実行することで、属性-ユーザー署名セットデータ{att,Σj∈{1,...,m}を取得する。
【0014】
ユーザー属性署名認証ステップは、共通ステートメントcrsを用いて、ユーザー属性署名ステップにより生成されたデータの有効性を検証し、有効であると判定されたデータを、属性について重複がないように蓄積することで、有効データリストvlを取得する。
【0015】
統合署名処理ステップは、
(A)グループを識別するためのグループ識別子gに基づいて、暫定公開鍵tapk、および、暫定秘密鍵taskを生成し、
(B)有効データリストに含まれる属性データattと署名データΣと、グループ署名対象のメッセージMとを対応付けたデータ<att,Σ,M>を、暫定秘密鍵taskで暗号化することで、暗号化データσ’を取得し、暗号化データσ’をグループ識別子gに対応付けたデータを、追跡用公開鍵tmpkにより暗号化することで、暗号化データcを取得するとともに、共通ステートメントcrsを用いてゼロ知識証明データΠを生成し、さらに、公開鍵セットgpk=(crs,gmpk,tmpk)とし、統合署名セットデータΣ=(gpk,{cj∈{1,...,v},c,Π)を生成する。
【0016】
この統合属性ベースグループ署名処理方法では、ユーザー属性署名ステップにおいて、各グループユーザー(グループユーザーi)が、自らが有している属性attをユーザー属性用秘密鍵uaskijにより暗号化(電子署名処理)した署名σijを生成し、当該署名σijと、グループユーザー識別子dと、属性attとを含む属性署名データ<att,σij,d>を、追跡用公開鍵tmpkで暗号化することで、属性署名データの暗号化データcijを取得するとともに、属性署名データのゼロ知識証明πijを取得する。つまり、この統合属性ベースグループ署名処理方法では、グループユーザー識別子dのグループユーザーが、属性署名セットデータ(att,Σ)(Σ=(cij,πij))を取得する。
【0017】
また、この統合属性ベースグループ署名処理方法では、ユーザー属性署名認証ステップにおいて、属性署名セットデータ(att,Σ)に対して、ユーザー属性署名認証処理を行う。ここで、属性署名セットデータ(att,Σ)は、グループユーザー識別子dを暗号化したデータを含むだけなので、どのグループユーザーがその属性を所有しているかを知ることはできない。つまり、この統合属性ベースグループ署名処理方法において、グループユーザーの匿名性、属性の匿名性が確保される。
【0018】
また、この統合属性ベースグループ署名処理方法では、ユーザー属性署名認証ステップでは、属性署名セットデータに対して、ゼロ知識認証処理を行いながら、有効な属性署名セットデータのみを重複なくリストした有効データリストvlを生成する。
【0019】
そして、この統合属性ベースグループ署名処理方法では、統合署名処理ステップにおいて、統合署名処理(aSign)を行い、有効データリストvlに含まれる属性署名セットデータにメッセージMを追加したデータに対して、グループ識別子gに基づいて生成された暫定秘密鍵taskにより暫定署名処理を行うことで、電子署名σ’を取得する。
【0020】
また、この統合属性ベースグループ署名処理方法では、統合署名処理ステップにおいて、そして、グループ管理装置2は、暫定署名データの集合データにグループ識別子gを対応づけた統合署名データ<{σ’j∈{1,...,v},g>を、追跡用公開鍵tmpkを用いて暗号化することで、統合署名データの暗号化データcを取得するするとともに、統合署名データのゼロ知識証明Πを取得する。そして、統合署名セットデータΣ(=(gpk,{cj∈{1,...,v},c,Π))が取得される。ここで、統合署名データの暗号化データcは、追跡用公開鍵tmpkで暗号化されているため、追跡用秘密鍵がなければ復号することはできない。つまり、複数のグループユーザーが有する属性を統合して生成した統合署名セットデータΣにおいても、ユーザーの匿名性、属性の匿名性が確保される。
【0021】
このように、この統合属性ベースグループ署名処理方法では、グループユーザーの匿名性、属性の匿名性を確保しつつ、グループユーザーの属性をマージして、ポリシーが要求する条件を満たす有効な署名を行うことができる。
【0022】
第2の発明は、第1の発明である統合属性ベースグループ署名処理方法により生成されたデータを認証するための統合属性ベースグループ署名認証処理方法であって、認証ステップを備える。
【0023】
認証ステップは、共通ステートメントcrsを用いて、統合署名セットデータΣのゼロ知識証明Πについてのゼロ知識認証処理を行う。
【0024】
この統合属性ベースグループ署名認証処理方法では、統合署名セットデータΣに対して認証処理を行うだけでよいので、認証処理を簡易化することができる。例えば、複数のグループユーサーが別々に署名を行い、当該署名に対して、個別に認証するマルチ署名方法(Multi-signatures)では、複数回の認証処理が必要になるが、この統合属性ベースグループ署名認証処理方法では、統合署名セットデータΣに対して認証処理を行うだけでよいので、認証処理を簡易化することができる。
【0025】
第3の発明は、第1の発明である統合属性ベースグループ署名処理方法により生成されたデータに追跡処理を行うための統合属性ベースグループ署名追跡処理方法であって、追跡処理ステップを備える。
【0026】
追跡処理ステップは、統合署名セットデータΣから統合署名データの暗号化データcを取得し、当該暗号化データcを、追跡用秘密鍵tmskにより復号することで、統合署名データの暗号化データcの復号データを取得し、当該復号データからグループ識別子gを取得する。
【0027】
これにより、この統合属性ベースグループ署名追跡処理方法では、メッセージMについての統合署名データΣから、グループ識別子gを取得(特定)することができる。
【0028】
第4の発明は、第3の発明であって、追跡処理ステップは、統合署名セットデータΣから属性署名データの暗号化データcを取得し、当該暗号化データcを、追跡用秘密鍵tmskにより復号することで、属性署名データの暗号化データcの復号データを取得し、当該復号データから、属性attについての署名をしたグループユーザーのグループユーザー識別子dを取得する。
【0029】
これにより、この統合属性ベースグループ署名追跡処理方法では、メッセージMについての統合署名データΣから、グループ識別子gを取得(特定)し、さらに、属性attについて署名をしたグループユーザー識別子dを取得(特定)することができる。つまり、この統合属性ベースグループ署名追跡処理方法では、追跡可能性(traceability)を確保することができる。
【0030】
第5の発明は、複数のグループユーザーを含むグループを対象とする属性ベースグループ署名処理であって、署名権限の条件が属性に基づいて規定されているポリシーΓに基づいて、署名の有効性が判定される属性ベースグループ署名処理を行うための統合属性ベースグループ署名処理システムである。統合属性ベースグループ署名処理システムは、鍵生成装置と、認証装置と、グループ管理装置と、グループユーザー用装置と、を備える。
【0031】
鍵生成装置は、
(1)グループに含まれるグループユーザーと、グループに含まれるグループユーザー数の最大値とを特定し、(2)属性の汎用セットを規定し、(3)鍵生成処理、署名処理、および、検証処理において使用されるパラメータを規定するセットアップステップと、
パラメータに基づいて、(1)ゼロ知識証明用の共通ステートメントcrsと、(2)グループ管理者用の公開鍵gmpkおよび秘密鍵gspkと、(3)追跡用の公開鍵tmpkおよび秘密鍵tmskと、(4)各グループユーザーi(i:自然数、1≦i≦Num1(Num1:グループユーサー数))が所有しうる各属性j(j:自然数、1≦j≦Num2(Num2:各グループユーザーが所有しうる属性数))についての公開鍵uapkijおよびuaskijと、を生成する鍵生成ステップと、
を実行する。
【0032】
認証装置は、ポリシーΓを設定するポリシー設定ステップを実行する。
【0033】
グループユーザー用装置は、
各グループユーザーiが所有する属性attを、秘密鍵uaskijを用いて署名処理することで暗号化属性署名σijを取得し、当該暗号化属性署名σijを属性att、および、グループユーザー識別子dと対応付けたデータ<att,σij,d>を、追跡用公開鍵tmpkにより暗号化することで、暗号化データcijを取得するとともに、共通ステートメントcrsを用いてゼロ知識証明データπijを生成し、さらに、属性署名セットデータΣ=(cij,πij)を生成する処理を、グループユーザーiが所有する属性であって、ポリシーΓに設定されている属性と一致する属性の数に対応する回数であるm回(m:自然数)繰り返し実行することで、属性-ユーザー署名セットデータ{att,Σj∈{1,...,m}を取得するユーザー属性署名ステップを実行する。
【0034】
グループ管理装置は、
共通ステートメントcrsを用いて、ユーザー属性署名ステップにより生成されたデータの有効性を検証し、有効であると判定されたデータを、属性について重複がないように蓄積することで、有効データリストvlを取得するユーザー属性署名認証ステップと、
グループを識別するためのグループ識別子gに基づいて、暫定公開鍵tapk、および、暫定秘密鍵taskを生成し、
有効データリストに含まれる属性データattと署名データΣと、グループ署名対象のメッセージMとを対応付けたデータ<att,Σ,M>を、暫定秘密鍵taskで暗号化することで、暗号化データσ’を取得し、暗号化データσ’をグループ識別子gに対応付けたデータを、追跡用公開鍵tmpkにより暗号化することで、暗号化データcを取得するとともに、共通ステートメントcrsを用いてゼロ知識証明データΠを生成し、さらに、公開鍵セットgpk=(crs,gmpk,tmpk)とし、統合署名セットデータΣ=(gpk,{cj∈{1,...,v},c,Π)を生成する、統合署名処理ステップと、
を実行する。
【0035】
これにより、第1の発明と同様の効果を奏する統合属性ベースグループ署名処理システムを実現することができる。
【0036】
第6の発明は、第1の発明である統合属性ベースグループ署名処理方法をコンピュータに実行させるためのプログラムである。
【0037】
これにより、第1の発明と同様の効果を奏する統合属性ベースグループ署名処理方法をコンピュータに実行させるためのプログラムを実現することができる。
【0038】
第7の発明は、第2の発明である統合属性ベースグループ署名認証処理方法をコンピュータに実行させるためのプログラムである。
【0039】
これにより、第2の発明と同様の効果を奏する統合属性ベースグループ署名認証処理方法をコンピュータに実行させるためのプログラムを実現することができる。
【0040】
第8の発明は、第3または第4の発明である統合属性ベースグループ署名追跡処理方法をコンピュータに実行させるためのプログラムである。
【0041】
これにより、第3または第4の発明と同様の効果を奏する統合属性ベースグループ署名追跡処理方法をコンピュータに実行させるためのプログラムを実現することができる。
【発明の効果】
【0042】
本発明によれば、グループユーザーの匿名性、属性の匿名性、および、追跡可能性(traceability)を確保しつつ、グループユーザーの属性をマージして、ポリシーが要求する条件を満たす有効な署名を行うことができる統合属性ベースグループ署名処理方法、統合属性ベースグループ署名認証処理方法、統合属性ベースグループ署名追跡処理方法、統合属性ベースグループ署名処理システム、および、プログラムを実現することができる。
【図面の簡単な説明】
【0043】
図1】第1実施形態に係る統合属性ベースグループ署名処理システム1000の概略構成図。
図2】統合属性ベースグループ署名処理システム1000で実行される処理のシーケンス図。
図3】統合属性ベースグループ署名処理システム1000で実行される処理のシーケンス図。
図4】統合属性ベースグループ署名処理システム1000で実行される処理のシーケンス図。
図5】統合属性ベースグループ署名処理システム1000で実行されるセットアップ処理のフローチャート。
図6】統合属性ベースグループ署名処理システム1000で実行される鍵生成処理のフローチャート。
図7】統合属性ベースグループ署名処理システム1000で実行されるユーザー属性署名処理のフローチャート。
図8】統合属性ベースグループ署名処理システム1000で実行されるユーザー属性署名認証処理のフローチャート。
図9】統合属性ベースグループ署名処理システム1000で実行される統合署名処理のフローチャート。
図10】統合属性ベースグループ署名処理システム1000で実行される認証処理のフローチャート。
図11】統合属性ベースグループ署名処理システム1000で実行される追跡処理のフローチャート。
図12】CPUバス構成を示す図。
【発明を実施するための形態】
【0044】
[第1実施形態]
第1実施形態について、図面を参照しながら、以下、説明する。
【0045】
<1.1:統合属性ベースグループ署名処理システムの構成>
図1は、第1実施形態に係る統合属性ベースグループ署名処理システム1000の概略構成図である。
【0046】
統合属性ベースグループ署名処理システム1000は、図1に示すように、認証装置1と、グループ管理装置2と、グループユーザー用装置UE(d)~UE(d)と、鍵生成装置3と、追跡装置4とを備える。認証装置1と、グループ管理装置2と、グループユーザー用装置UE(d)~UE(d)とは、例えば、ネットワークにより接続されており、各装置間において、データ通信が可能である。また、鍵生成装置3および追跡装置も上記ネットワークに接続し、認証装置1と、グループ管理装置2と、グループユーザー用装置UE(d)~UE(d)とデータ通信可能としてもよい。
【0047】
なお、説明便宜のため、グループユーザーは、n人(n:自然数)であり、グループユーザー識別子d(i:自然数、1≦i≦n)により、各グループユーザーは識別されるものとする。また、グループユーザー識別子dのグループユーザーが使用する装置がグループユーザー用装置UE(d)であるものとする。なお、この形態に限定されることはなく、例えば、1つのグループユーザー用装置を複数のグループユーザーが使用するようにしてもよい。
【0048】
認証装置1は、コンピュータや、サーバーを用いて実現される装置であり、ポリシー設定処理を実行することでポリシーΓを生成し、生成したポリシーΓを、グループ管理装置2、グループユーザー用装置UE(d)~UE(d)に配布する。また、認証装置1は、グループ管理装置2から出力されるメッセージM(グループ署名対象のドキュメント)、ポリシーΓ、および、統合署名Σを入力し、認証処理(Verify)を実行する。
【0049】
グループ管理装置2は、コンピュータや、サーバーを用いて実現される装置であり、ユーザー属性署名認証処理(aVerify)、統合署名処理(aSign)等を実行する。また、グループ管理装置1は、統合署名処理により取得した統合署名Σを、メッセージM、および、ポリシーΓとともに、認証装置1に出力する。
【0050】
グループユーザー用装置UE(d)(i:自然数、1≦i≦n)は、コンピュータや、サーバーを用いて実現される装置である。グループユーザー用装置UE(d)は、グループユーザー識別子がdであるグループユーザーiに割り当てられたユーザー属性用秘密鍵(usk)を保持し、当該ユーザー属性用秘密鍵を用いて、ユーザー属性署名処理を実行することで、属性署名セットデータ{att,Σj∈{1,...,m}を取得する。そして、グループユーザー用装置UE(d)は、ユーザー属性署名処理により取得した属性署名セットデータ{att,Σj∈{1,...,m}をグループ管理装置2に出力する。なお、グループユーザー用装置UE(d)は、グループユーザーごとに、個別に設けられていてもよいし((グループユーザー用装置UE(d)の数)=(グループユーザーの数)であってもよいし)、複数のグループユーザーごとに、共有できるように設けられていてもよい((グループユーザー用装置UE(d)の数)<(グループユーザーの数)であってもよい)。
【0051】
鍵生成装置3は、コンピュータや、サーバーを用いて実現される装置であり、セットアップ処理(Setup)、鍵生成処理(KeyGen)、鍵配布処理を行う。具体的には、鍵生成装置3は、鍵生成処理により、以下の鍵ペア(公開鍵暗号方式による鍵ペア)を生成する。
(1)グループ管理用鍵ペア(gmpk、gmsk)
gmpk:グループ管理用公開鍵
gmsk:グループ管理用秘密鍵
(2)追跡用鍵ペア(tmpk、tmsk)
tmpk:追跡用公開鍵
tmsk:追跡用秘密鍵
(3)ユーザー属性用鍵ペア(uapkij、uaskij
uapkij:グループユーザーiの属性j用の公開鍵
uaskij:グループユーザーiの属性j用の秘密鍵
また、鍵生成装置3は、ゼロ知識証明処理用の共通ステートメントcrsを生成する。
【0052】
鍵生成装置3は、上記により生成した公開鍵(gmpk、tmpk、uapkij)、および、ゼロ知識証明処理用の共通ステートメントcrsを公開する。
【0053】
また、鍵生成装置3は、グループ管理用秘密鍵gmskを、グループ管理装置2に秘密裏に送付し、グループ管理装置2は、グループ管理用秘密鍵gmskを秘密裏に保持する。
【0054】
また、鍵生成装置3は、追跡用秘密鍵tmskを、追跡装置4に秘密裏に送付し、追跡装置4は、追跡用秘密鍵tmskを秘密裏に保持する。
【0055】
また、鍵生成装置3は、グループユーザーiの属性j用の秘密鍵uaskijを、グループユーザー用装置UE(d)に秘密裏に送付し、グループユーザー用装置UE(d)は、グループユーザーiの属性j用の秘密鍵uaskijを秘密裏に保持する。
【0056】
なお、鍵生成装置3は、信頼できる外部機関(Trusted Authority)により実現(提供)されるものであってもよい。
【0057】
追跡装置4は、コンピュータや、サーバーを用いて実現される装置であり、メッセージM、ポリシーΓ、および、統合署名Σを取得し、メッセージM、ポリシーΓ、および、統合署名Σを用いて追跡処理(Open)を実行する。
【0058】
<1.2:匿名認証システムの動作>
以上のように構成された統合属性ベースグループ署名処理システム1000の動作について、以下、説明する。
【0059】
図2図4は、統合属性ベースグループ署名処理システム1000で実行される処理のシーケンス図である。
【0060】
図5は、統合属性ベースグループ署名処理システム1000で実行されるセットアップ処理のフローチャートである。
【0061】
図6は、統合属性ベースグループ署名処理システム1000で実行される鍵生成処理のフローチャートである。
【0062】
図7は、統合属性ベースグループ署名処理システム1000で実行されるユーザー属性署名処理のフローチャートである。
【0063】
図8は、統合属性ベースグループ署名処理システム1000で実行されるユーザー属性署名認証処理のフローチャートである。
【0064】
図9は、統合属性ベースグループ署名処理システム1000で実行される統合署名処理のフローチャートである。
【0065】
図10は、統合属性ベースグループ署名処理システム1000で実行される認証処理のフローチャートである。
【0066】
図11は、統合属性ベースグループ署名処理システム1000で実行される追跡処理のフローチャートである。
【0067】
以下では、統合属性ベースグループ署名処理システム1000の動作を、シーケンス図とフローチャートとを参照しながら、説明する。
【0068】
なお、統合属性ベースグループ署名処理システム1000では、(1)デジタル署名技術(Digitalsignature sheme)、(2)公開鍵暗号技術(Publickey encryption scheme)、および、(3)非対話ゼロ知識証明技術(Non-interactivezero-knowledge proof)を使用して処理を行う。
(1)デジタル署名技術(Digital signature sheme)DSは、DS.Gen、DS.Sign、および、DS.Verifyを含む。処理DS.Genは、1λが入力されると、鍵ペア(公開鍵pkおよび秘密鍵sk)を生成する処理である。処理DS.Signは、秘密鍵skとメッセージmを入力とし、署名σを出力する処理である。処理DS.Verifyは、署名σがメッセージmについて有効であるとき、「1」を出力し、署名σがメッセージmについて有効ではないとき、「0」を出力する。
(2)公開鍵暗号技術PKEは、PKE.Gen、PKE.Enc、および、PKE.Decを含む。処理PKE.Genは、1λが入力されると、鍵ペア(公開鍵pkおよび秘密鍵sk)を生成する処理である。処理PKE.Encは、公開鍵pkとメッセージmと、乱数rとを入力とし、暗号文cを出力する処理である。処理PKE.Decは、秘密鍵skおよび暗号文cを入力とし、平文mを出力する。
(3)非対話ゼロ知識証明技術(Non-interactive zero-knowledge proof)NIZKにおいて、Rを効率的に計算可能な関係とし、LをRにおけるステートメントを有する言語であるとし、ステートメントをxとし、(x,w)∈Rでであるウィットネス(witness)をwとする。このとき、非対話ゼロ知識証明技術NIZKは、ZK.Gen、ZK.P、および、ZK.Vを含む。処理ZK.Genは、1λが入力されると、共通ステートメントcrsを出力する。処理ZK.Pは、共通ステートメントcrs、ステートメントx、および、ウィットネスwを入力とし、証明πを出力する。処理ZK.Vは、共通ステートメントcrs、ステートメントx、および、証明πを入力し、証明πが有効であるとき、「1」を出力し、証明πが有効はないとき、「0」を出力する。
【0069】
なお、説明便宜のため、グループユーザー数n=2とし、統合属性ベースグループ署名処理システム1000に、グループユーザー用装置UE(d)、および、グループユーザー用装置UE(d)が含まれている場合について、以下説明する。
【0070】
(1.2.1:セットアップ処理(ステップS1))
ステップS1において、鍵生成装置3は、セットアップ処理(Setup(1λ))を実行する。
【0071】
(ステップS101~S102):
ステップS101において、鍵生成装置3は、セキュリティパラメータλを設定する。
【0072】
そして、鍵生成装置3は、例えば、下記の先行技術文献Aに開示されているのと同様に、下記の通り、多項式時間で処理が可能となるように、セキュリティパラメータλに基づいて、各パラメータを設定する(ステップS102)。
(先行技術文献A):
Y. Zhang, Y. Gan, Y. Yin, and H.Jia, Attribute-Based VLR Group Signature Scheme from Lattices: 18thInternational Conference, ICA3PP 2018, Guangzhou, China, November 15-17, 2018,Proceedings, Part IV, 11 2018, pp. 600-610.
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(),ω()は、ランダウの記号である。
【0073】
(ステップS103):
ステップS103において、鍵生成装置3は、属性のセットAttを以下のように定義(規定)する。
【数1】

なお、|x|は、集合xの位数を示す。
【0074】
また、鍵生成装置3は、ハッシュ関数Hを以下のように設定する。
ハッシュ関数H:{0,1}→{1,2,3}
t=ω(log(n))
(ステップS104):
ステップS104において、鍵生成装置3は、上記により取得したデータから公開パラメータPP=(para,Att,attL,H)(para:ステップS102で取得したパラメータを含むデータ)を取得し、取得した公開パラメータPPを出力する。
【0075】
(1.2.2:鍵生成処理(ステップS2))
ステップS2において、鍵生成装置3は、鍵生成処理(KeyGen(1λ,G))を実行する。
【0076】
(ステップS201~S204):
ステップS201において、鍵生成装置3は、グループ識別子g(g:自然数)を設定する。
【0077】
ステップS202において、鍵生成装置3は、セキュリティパラメータλに基づいて、ゼロ知識証明処理用の共通ステートメントcrsを生成する(ZK.Gen(1λ)→crsに相当する処理を実行する)。
【0078】
ステップS203において、鍵生成装置3は、セキュリティパラメータλに基づいて、グループ管理用鍵ベア、すなわち、グループ管理用公開鍵gmpkおよびグループ管理用秘密鍵gmskを生成する(DS.Gen(1λ)→gmpk,gmskに相当する処理を実行する)。
【0079】
ステップS204において、鍵生成装置3は、セキュリティパラメータλに基づいて、追跡用鍵ベア、すなわち、追跡用公開鍵tmpkおよび追跡用秘密鍵tmskを生成する(PKE.Gen(1λ)→tmpk,tmskに相当する処理を実行する)。
【0080】
(ステップS205):
ステップS205において、ループ処理(ループ1)が開始される。当該ループ処理は、iを変数とし、グループユーザー数nに相当する回数だけ繰り返される(For i∈{1,...,n})。
【0081】
(ステップS206):
ステップS206において、鍵生成装置3は、グループユーザーiのグループユーザー識別子d(d:自然数)を設定する。
【0082】
(ステップS207~S209):
ステップS207において、ループ処理(ループ2)が開始される。当該ループ処理は、jを変数とし、属性数sに相当する回数だけ繰り返される(For j∈{1,...,s})。
【0083】
ステップS208において、鍵生成装置3は、処理DS.Gen(1λ)を実行し、グループユーザーiの属性jについてのユーザー属性用鍵ペア、すなわち、ユーザー属性用公開鍵uapkij、および、ユーザー属性用秘密鍵uaskijを生成する。
【0084】
ステップS209において、鍵生成装置3は、ループ処理(ループ2)が終了条件を満たしているか否かを判定し、終了条件を満たしていないと判定したときは、処理をステップS207に戻し、終了条件を満たしていると判定した場合、処理をステップS210に進める。
【0085】
(ステップS210):
ステップS210において、鍵生成装置3は、グループユーザーiのユーザー属性用公開鍵の集合データおよびユーザー属性用秘密鍵、すなわち、
ユーザー属性用公開鍵upk={upkijj∈{1,...,s}
ユーザー属性用秘密鍵usk={uskijj∈{1,...,s}
を取得する。
【0086】
(ステップS211):
ステップS211において、鍵生成装置3は、ループ処理(ループ1)が終了条件を満たしているか否かを判定し、終了条件を満たしていないと判定したときは、処理をステップS205に戻し、終了条件を満たしていると判定した場合、処理をステップS212に進める。
【0087】
(ステップS212):
ステップS212において、鍵生成装置3は、公開鍵セットデータgpk=(crs,gmpk,tmpk)を取得する。
【0088】
(1.2.3:鍵配送処理(ステップS3))
ステップS3において、鍵生成装置3は、鍵生成処理(KeyGen(1λ,G))により生成した鍵を各装置に配布する。具体的には、鍵生成装置3は、追跡用公開鍵tmpk、グループ管理用公開鍵gmpk、グループユーザーiのユーザー属性用公開鍵upk、および、共通ステートメントcrsを公開する。また、鍵生成装置3は、追跡装置4へ、追跡用秘密鍵tmskを秘密裏に送付する。また、鍵生成装置3は、グループ管理装置2へ、グループ管理用秘密鍵gmskを秘密裏に送付する。また、鍵生成装置3は、グループユーザー用装置UE(d)へ、グループユーザーiのユーザー属性用秘密鍵uskを秘密裏に送付する。
【0089】
(1.2.4:公開鍵取得処理(ステップS4))
ステップS4において、グループ管理装置2、および、グループユーザー用装置UE(d)は、公開鍵セットデータgpk(=(crs,gmpk,tmpk))を取得する。
【0090】
(1.2.5:ポリシー設定処理(ステップS5))
ステップS5において、認証装置1は、ポリシー設定処理を行う。具体的には、認証装置1は、グループ署名対象のメッセージのグループ署名が満たすべき条件(ポリシー要求条件)を設定したポリシーΓを生成する。具体的には、ポリシーΓは、S個の属性のうち、t個の属性を満たすことを要求する場合、当該ポリシーΓを、Γ=(t,S)と表記する。ここでは、説明便宜のため、図1に示すように、ポリシー要求条件を、3つの属性att,att,attを満たすこととし、
(1)属性attが、「財務部(Financial Department)に所属していること」であり(なお、属性attを属性attと表記することがある(att=att))、
(2)属性attが、「弁護士(Lawyer)であること」であり(なお、属性attを属性attと表記することがある(att=att))、
(3)属性attが、「マネージャー(Manager)であること」である(なお、属性attを属性attと表記することがある(att=att))、
として、以下説明する。
【0091】
認証装置1は、上記のポリシー要求条件を設定したポリシーΓを生成し、当該ポリシーΓを、グループ管理装置2、および、グループユーザー用装置UE(d)に配布する。
【0092】
(1.2.6:ユーザー属性署名処理(ステップS6))
ステップS6において、グループユーザー用装置UE(d)は、ユーザー属性署名処理を行う。
【0093】
(ステップS601):
グループユーザー用装置UE(d)は、グループユーザーiが有している属性と、ポリシーΓに設定されている属性とのマッチングを行い、マッチング数mを求める。つまり、グループユーザー用装置UE(d)は、m=|S∩S|に相当する処理を実行し、属性のマッチング数mを取得する。
【0094】
例えば、グループユーザー1(i=1)が財務部に属しており、かつ、弁護士であるとすると、グループユーザー1(i=1)が有している属性は、S={att,att}(={att,att})である。ポリシーΓに設定されている属性の集合S={att,att,att}(={att,att,att})であるので、グループユーザー1(i=1)について、m=|S∩S|=2である。
【0095】
また、例えば、グループユーザー2(i=2)が財務部に属しており、かつ、マネージャーであるとすると、グループユーザー2(i=2)が有している属性は、S={att,att}(={att,att})である。ポリシーΓに設定されている属性の集合S={att,att,att}(={att,att,att})であるので、グループユーザー2(i=2)について、m=|S∩S|=2である。
【0096】
なお、説明便宜のため、グループユーザー1、グループユーザー2が上記の属性を有しているものとして、以下説明する。
【0097】
上記のように、mが求められた後、ループ処理1(ループ1)が開始される(ステップS601)。当該ループ処理1は、jを変数(属性を示す変数)とし、各グループユーザーの属性のマッチング数mに相当する回数だけ繰り返される(For j∈{1,...,m}, m=|S∩S|)。
【0098】
(ステップS602):
ステップS602において、グループユーザー用装置UE(d)は、属性jの署名処理を行う。具体的には、グループユーザー用装置UE(d)は、属性用秘密鍵uaskijを用いて、属性attに対して処理DS.Sign(uaskij,att)を実行し、属性attについての電子署名σijを取得する。
【0099】
(ステップS603):
ステップS603において、グループユーザー用装置UE(d)は、属性署名データの暗号化処理を行う。具体的には、グループユーザー用装置UE(d)は、属性att、属性attについての電子署名σij、および、グループユーザー識別子dのセットデータ<att,σij,d>に対して、追跡用公開鍵tmpk、乱数rijを用いて、処理PKE.Enc(tmpk,<att,σij,d>,rij)を実行し、暗号化データcijを取得する。
【0100】
(ステップS604):
ステップS604において、グループユーザー用装置UE(d)は、属性署名データのゼロ知識証明処理を行う。具体的には、グループユーザー用装置UE(d)は、共通ステートメントcrsを用いて、
ステートメントx=<gpk,att,cij>、
ウィットネスw=<uaskij,σij,d,rij
として、処理ZK.P(crs,x,w)を実行し、ゼロ知識証明πijを取得する。
【0101】
(ステップS605):
ステップS605において、グループユーザー用装置UE(d)は、属性署名セットデータΣ=(cij,πij)を取得する。
【0102】
(ステップS606):
ステップS606において、グループユーザー用装置UE(d)は、ループ処理1(ループ1)が終了条件を満たしているか否かを判定し、終了条件を満たしていないと判定したときは、処理をステップS601に戻し、終了条件を満たしていると判定した場合、ユーザー属性署名処理を終了させる。
【0103】
グループユーザー用装置UE(d)は、ユーザー属性署名処理が完了した後、ユーザー属性署名処理により取得した属性署名セットデータ{att,Σj∈{1,...,m}をグループ管理装置2に出力する。
【0104】
なお、本実施形態では、グループユーザー用装置UE(d)の属性署名セットデータ{att,Σj∈{1,...,m}は、下記の通りである。
{att,Σj∈{1,...,m}={(att,Σ),(att,Σ)}
={(att,Σ),(att,Σ)}
また、グループユーザー用装置UE(d)の属性署名セットデータ{att,Σj∈{1,...,m}は、下記の通りである。
{att,Σj∈{1,...,m}={(att,Σ),(att,Σ)}
={(att,Σ),(att,Σ)}
(1.2.7:ユーザー属性署名認証処理(ステップS7))
ステップS7において、グループ管理装置2は、ユーザー属性署名認証処理を行う。
【0105】
(ステップS701):
ステップS701において、グループ管理装置2は、有効データリストvlの初期化処理を実行する。つまり、グループ管理装置2は、有効データリストvlを空のリストに設定する。
【0106】
(ステップS702):
ステップS702において、ループ処理1(ループ1)が開始される。当該ループ処理1は、jを変数(属性を示す変数)とし、グループ管理装置2が、グループユーザー用装置UE(d)から受信した属性署名セットデータの数kに相当する回数だけ繰り返される(For j∈{1,...,k})。
【0107】
(ステップS703):
ステップS703において、グループ管理装置2は、属性attについてのデータ(属性署名セットデータ)が、有効データリストvlに含まれているか否かの判定処理を行う。当該判定の結果、属性attについてのデータ(属性署名セットデータ)が、有効データリストvlに含まれている場合、処理をステップS704に進め、一方、有効データリストvlに含まれていない場合、処理をステップS707に進める。
【0108】
(ステップS704):
ステップS704において、グループ管理装置2は、属性署名セットデータのゼロ知識認証処理を行う。具体的には、グループ管理装置2は、共通ステートメントcrsを用いて、処理ZK.V(crs,<gpk,att,πij>)を実行する。
【0109】
(ステップS705):
ステップS705において、グループ管理装置2は、処理ZK.V(crs,<gpk,att,πij>)の処理結果の判定処理を行う。判定の結果、ZK.V(crs,<gpk,att,πij>)=1である場合、処理をステップS706に進め、一方、ZK.V(crs,<gpk,att,πij>)が「1」ではない場合、処理をステップS707に進める。
【0110】
(ステップS706):
ステップS706において、グループ管理装置2は、有効データリストvlに、ステップS705の処理で有効と判定された属性署名セットデータ(att,Σ)を追加する。つまり、グループ管理装置2は、
vl=vl∪(att,Σ
に相当する処理を実行する。
【0111】
(ステップS707):
ステップS707において、グループ管理装置2は、ループ処理1(ループ1)が終了条件を満たしているか否かを判定し、終了条件を満たしていないと判定したときは、処理をステップS702に戻し、終了条件を満たしていると判定した場合、処理をステップS708に進める。
【0112】
(ステップS707):
ステップS708において、グループ管理装置2は、グループ署名破棄判定処理を行う。具体的には、グループ管理装置2は、有効データリストvlに、ポリシーΓが要求している属性、すなわち、S={att,att,att}(={att,att,att})に対応する属性署名セットデータが含まれているか否かを判定する。判定の結果、有効データリストvlに、ポリシーΓが要求している全ての属性に対応するデータが含まれていない場合、グループ管理装置2は、有効なグループ署名ができないと判断し、統合属性ベースグループ署名処理システム1000で実行されている処理(統合属性ベースグループ署名を生成する処理)を終了させる。一方、判定の結果、有効データリストvlに、ポリシーΓが要求している全ての属性に対応するデータが含まれている場合、統合属性ベースグループ署名処理システム1000で実行されている処理(統合属性ベースグループ署名を生成する処理)を続行させる。
【0113】
本実施形態の場合、(1)att(=att)に対応する属性署名セットデータ(att,Σ)(=(att,Σ))は、グループユーザー用装置UE(d)およびグループユーザー用装置UE(d)から、グループ管理装置2に送付されており、(2)att(=att)に対応する属性署名セットデータ(att,Σ)(=(att,Σ))は、グループユーザー用装置UE(d)から、グループ管理装置2に送付されており、(3)att(=att)に対応する属性署名セットデータ(att,Σ)(=(att,Σ))は、グループユーザー用装置UE(d)から、グループ管理装置2に送付されている。
【0114】
したがって、ステップS708において、有効データリストvlには、S={att,att,att}(={att,att,att})に対応する属性署名セットデータが含まれていると判定され、統合属性ベースグループ署名処理システム1000で実行されている処理(統合属性ベースグループ署名を生成する処理)を続行される。
【0115】
なお、ステップS702~S707の処理において、同一の属性attについて、複数の属性署名セットデータ(att,Σ)が、グループ管理装置2に送付されている場合、重複されているデータを有効データリストvlに更新(追加)しないように処理が実行される。つまり、グループ管理装置2は、ユーザー属性署名認証処理により、属性attについて、重複のない有効データリストvl(本実施形態の場合、vl={(att,Σ),(att,Σ),(att,Σ)})を取得する。
【0116】
(1.2.8:統合署名処理(ステップS8))
ステップS8において、グループ管理装置2は、統合署名処理を行う。
【0117】
(ステップS801):
ステップS801において、ループ処理1(ループ1)が開始される。当該ループ処理1は、jを変数(属性を示す変数)とし、有効データリストvlの要素数(属性署名セットデータの数)vに相当する回数だけ繰り返される(For j∈{1,...,v})。
【0118】
(ステップS802):
ステップS802において、グループ管理装置2は、有効データリストvlから、属性署名セットデータvl[j]=(att,Σ)を抽出する。
【0119】
(ステップS803):
ステップS803において、グループ管理装置2は、グループ識別子gに基づいて、暫定鍵ペア(暫定公開鍵tapk、および、暫定秘密鍵task)を生成する。つまり、グループ管理装置2は、処理DS.Gen(1)に相当する処理を実行して、暫定鍵ペア(暫定公開鍵tapk、および、暫定秘密鍵task)を生成する。
【0120】
(ステップS804):
ステップS804において、グループ管理装置2は、暫定署名処理を行う。具体的には、グループ管理装置2は、暫定秘密鍵taskを用いて、属性署名セットデータにメッセージMを追加したデータ<att,Σ,M>に対して、処理DS.Sign(task,<att,Σ,M>)を実行し、電子署名σ’を取得する。
【0121】
(ステップS805):
ステップS805において、グループ管理装置2は、ループ処理1(ループ1)が終了条件を満たしているか否かを判定し、終了条件を満たしていないと判定したときは、処理をステップS801に戻し、終了条件を満たしていると判定した場合、処理をステップS808に進める。
【0122】
(ステップS806):
ステップS806において、グループ管理装置2は、統合署名データの暗号化処理を行う。具体的には、グループ管理装置2は、上記ループ処理1により取得した暫定署名データの集合データ{σ’j∈{1,...,v}にグループ識別子gを対応づけたデータ(統合署名データ)<{σ’j∈{1,...,v},g>を、追跡用公開鍵tmpkと、乱数rを用いて暗号化する。つまり、グループ管理装置2は、処理PKE.Enc(tmpk,<{σ’j∈{1,...,v},g>,r)に相当する処理を実行して、統合署名データの暗号化データcを取得する。
【0123】
(ステップS807):
ステップS807において、グループ管理装置2は、統合署名データのゼロ知識証明処理を行う。具体的には、グループ管理装置2は、共通ステートメントcrsを用いて、
ステートメントx=<gpk,tapk,M,{att,cj∈{1,...,v},c>、
ウィットネスw=<task,{σ’j∈{1,...,v},vl,g,r>
として、処理ZK.P(crs,x,w)を実行し、ゼロ知識証明Πを取得する。
【0124】
(ステップS808):
ステップS808において、グループ管理装置2は、統合署名セットデータΣ=(gpk,{cj∈{1,...,v},c,Π)を取得する。
【0125】
そして、グループ管理装置2は、メッセージM、ポリシーΓ、および、統合署名セットデータΣを認証装置1に出力する。
【0126】
(1.2.9:認証処理(ステップS9))
ステップS9において、認証装置1は、認証処理を行う。
【0127】
(ステップS901):
ステップS901において、認証装置1は、統合署名セットデータのゼロ知識認証処理を行う。具体的には、認証装置1は、共通ステートメントcrsを用いて、処理ZK.V(crs,<gpk,{cj∈{1,...,v},c>,Π)を実行する。
【0128】
(ステップS902~S904):
ステップS902において、認証装置1は、処理ZK.V(crs,<gpk,{cj∈{1,...,v},c>,Π)の処理結果の判定処理を行う。判定の結果、ZK.V(crs,<gpk,{cj∈{1,...,v},c>,Π)=1である場合、統合署名セットデータΣが有効であると判定する(ステップS903)。一方、判定の結果、ZK.V(crs,<gpk,{cj∈{1,...,v},c>,Π)が「1」ではない場合、統合署名セットデータΣは有効ではない(無効である)と判定する(ステップS904)。
【0129】
(1.2.10:追跡処理(ステップS10))
ステップS10において、追跡装置4は、追跡処理を行う。
【0130】
(ステップS1001):
ステップS1001において、追跡装置4は、統合署名セットデータΣ(=(gpk,{cj∈{1,...,v},c,Π))から、統合署名データの暗号化データcを取得する。
【0131】
(ステップS1002):
ステップS1002において、追跡装置4は、統合署名データの暗号化データの復号処理を行う。つまり、追跡装置4は、処理PKE.Dec(tmsk,c)を行い、復号されたデータ({σ’j∈{1,...,v},g)を取得する。これにより、グループ識別子gが取得される。
【0132】
(ステップS1008):
ステップS1008において、ループ処理1(ループ1)が開始される。当該ループ処理1は、jを変数(属性を示す変数)とし、統合署名セットデータに含まれる属性データの数vにに相当する回数だけ繰り返される(For j∈{1,...,v})。
【0133】
(ステップS1004):
ステップS1004において、追跡装置4は、統合署名セットデータΣ(=(gpk,{cj∈{1,...,v},c,Π))から、署名属性データの暗号化データcを取得する。
【0134】
(ステップS1005):
ステップS1005において、追跡装置4は、属性署名データの暗号化データの復号処理を行う。つまり、追跡装置4は、処理PKE.Dec(tmsk,c)を行い、復号されたデータ<att,σij,d>を取得する。これにより、属性attについての署名をしたグループユーザーのグループユーザー識別子dが取得される。
【0135】
(ステップS1006):
ステップS1006において、追跡装置4は、ループ処理1(ループ1)が終了条件を満たしているか否かを判定し、終了条件を満たしていないと判定したときは、処理をステップS1003に戻し、終了条件を満たしていると判定した場合、処理をステップS1007に進める。
【0136】
(ステップS1007、S1008):
ステップS1007において、追跡装置4は、グループ識別子gを取得する。
【0137】
ステップS1008において、追跡装置4は、属性attについての署名をしたグループユーザーのグループユーザー識別子dを取得する。
【0138】
以上のように処理することで、統合属性ベースグループ署名処理システム1000では、グループユーザーの匿名性、属性の匿名性、および、追跡可能性(traceability)を確保しつつ、グループユーザーの属性をマージして、ポリシーが要求する条件を満たす有効な署名を行うことができる。
【0139】
統合属性ベースグループ署名処理システム1000では、各グループユーザー(グループユーザーi)が、自らが有している属性attをユーザー属性用秘密鍵uaskijにより暗号化(電子署名処理)した署名σijを生成し、当該署名σijと、グループユーザー識別子dと、属性attとを含む属性署名データ<att,σij,d>を、追跡用公開鍵tmpkで暗号化することで、属性署名データの暗号化データcijを取得するとともに、属性署名データのゼロ知識証明πijを取得する。つまり、統合属性ベースグループ署名処理システム1000では、グループユーザー用装置UE(d)が、属性署名セットデータ(att,Σ)(Σ=(cij,πij))を取得し、当該属性署名セットデータ(att,Σ)をグループ管理装置2に送信する。
【0140】
グループ管理装置2は、グループユーザー用装置UE(d)から受信した属性署名セットデータ(att,Σ)に対して、ユーザー属性署名認証処理を行う。ここで、属性署名セットデータ(att,Σ)は、グループユーザー識別子dを暗号化したデータを含むだけなので、どのグループユーザーがその属性を所有しているかを知ることはできない。つまり、統合属性ベースグループ署名処理システム1000において、グループユーザーの匿名性、属性の匿名性が確保される。
【0141】
また、グループ管理装置2は、属性署名セットデータに対して、ゼロ知識認証処理を行いながら、有効な属性署名セットデータのみを重複なくリストした有効データリストvlを生成する。
【0142】
グループ管理装置2は、統合署名処理(aSign)を行い、有効データリストvlに含まれる属性署名セットデータにメッセージMを追加したデータに対して、グループ識別子gに基づいて生成された暫定秘密鍵taskにより暫定署名処理を行うことで、電子署名σ’を取得する。
【0143】
そして、グループ管理装置2は、暫定署名データの集合データにグループ識別子gを対応づけた統合署名データ<{σ’j∈{1,...,v},g>を、追跡用公開鍵tmpkと、乱数rを用いて暗号化することで、統合署名データの暗号化データcを取得するするとともに、統合署名データのゼロ知識証明Πを取得する。そして、グループ管理装置2は、統合署名セットデータΣ(=(gpk,{cj∈{1,...,v},c,Π))を取得する。ここで、統合署名データの暗号化データcは、追跡用公開鍵tmpkで暗号化されているため、追跡装置4以外が復号することはできない。つまり、複数のグループユーザーが有する属性を統合して生成した統合署名セットデータΣにおいても、ユーザーの匿名性、属性の匿名性が確保される。
【0144】
また、統合属性ベースグループ署名処理システム1000では、認証装置1が、共通ステートメントcrsを用いて、統合署名データΣのゼロ知識証明Πについてのゼロ知識認証処理を行う。これにより、認証装置1により、統合署名セットデータΣの有効性を判定することができるとともに、認証装置1に対しても、ユーザーの匿名性、属性の匿名性が確保される。
【0145】
また、統合属性ベースグループ署名処理システム1000では、統合署名セットデータΣに対して認証処理を行うだけでよいので、認証処理を簡易化することができる。例えば、複数のグループユーサーが別々に署名を行い、当該署名に対して、個別に認証するマルチ署名方法(Multi-signatures)では、複数回の認証処理が必要になるが、統合属性ベースグループ署名処理システム1000では、統合署名セットデータΣに対して認証処理を行うだけでよいので、認証処理を簡易化することができる。
【0146】
そして、統合属性ベースグループ署名処理システム1000では、追跡処理が必要となったときに、追跡装置4により、追跡処理を行うことで、メッセージMについての統合署名データΣから、グループ識別子gを取得(特定)し、さらに、属性attについて署名をしたグループユーザー識別子dを取得(特定)することができる。つまり、統合属性ベースグループ署名処理システム1000では、追跡可能性(traceability)を確保することができる。
【0147】
[他の実施形態]
また、上記実施形態で説明した統合属性ベースグループ署名処理システム1000、認証装置1、グループ管理装置2、グループユーザー用装置UE(d)、鍵生成装置3、および、追跡装置4において、各ブロックは、LSIなどの半導体装置により個別に1チップ化されても良いし、一部又は全部を含むように1チップ化されても良い。
【0148】
なお、ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
【0149】
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
【0150】
また、上記各実施形態の各機能ブロックの処理の一部または全部は、プログラムにより実現されるものであってもよい。そして、上記各実施形態の各機能ブロックの処理の一部または全部は、コンピュータにおいて、中央演算装置(CPU)により行われる。また、それぞれの処理を行うためのプログラムは、ハードディスク、ROMなどの記憶装置に格納されており、ROMにおいて、あるいはRAMに読み出されて実行される。
【0151】
また、上記実施形態の各処理をハードウェアにより実現してもよいし、ソフトウェア(OS(オペレーティングシステム)、ミドルウェア、あるいは、所定のライブラリとともに実現される場合を含む。)により実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現しても良い。
【0152】
例えば、上記実施形態の各機能部を、ソフトウェアにより実現する場合、図12に示したハードウェア構成(例えば、CPU、ROM、RAM、入力部、出力部等をバスBusにより接続したハードウェア構成)を用いて、各機能部をソフトウェア処理により実現するようにしてもよい。
【0153】
また、上記実施形態における処理方法の実行順序は、必ずしも、上記実施形態の記載に制限されるものではなく、発明の要旨を逸脱しない範囲で、実行順序を入れ替えることができるものである。
【0154】
前述した方法をコンピュータに実行させるコンピュータプログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体は、本発明の範囲に含まれる。ここで、コンピュータ読み取り可能な記録媒体としては、例えば、フレキシブルディスク、ハードディスク、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、大容量DVD、次世代DVD、半導体メモリを挙げることができる。
【0155】
上記コンピュータプログラムは、上記記録媒体に記録されたものに限られず、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク等を経由して伝送されるものであってもよい。
【0156】
なお、本発明の具体的な構成は、前述の実施形態に限られるものではなく、発明の要旨を逸脱しない範囲で種々の変更および修正が可能である。
【符号の説明】
【0157】
1000 統合属性ベースグループ署名処理システム
1 認証装置
2 グループ管理装置
3 鍵生成装置
4 追跡装置
UE(d)~UE(d) グループユーザー用装置
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12