JP2012155088A - 署名処理システム、鍵生成装置、署名装置、検証装置、署名処理方法及び署名処理プログラム - Google Patents
署名処理システム、鍵生成装置、署名装置、検証装置、署名処理方法及び署名処理プログラム Download PDFInfo
- Publication number
- JP2012155088A JP2012155088A JP2011013281A JP2011013281A JP2012155088A JP 2012155088 A JP2012155088 A JP 2012155088A JP 2011013281 A JP2011013281 A JP 2011013281A JP 2011013281 A JP2011013281 A JP 2011013281A JP 2012155088 A JP2012155088 A JP 2012155088A
- Authority
- JP
- Japan
- Prior art keywords
- signature
- key
- integer
- vector
- verification
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
- H04L9/3073—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3255—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using group based signatures, e.g. ring or threshold signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Algebra (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
- Collating Specific Patterns (AREA)
- Complex Calculations (AREA)
Abstract
【解決手段】ノンモノトーンスパンプログラムに属性ベクトルの内積を適用することによりアクセスストラクチャを構成した。このアクセスストラクチャは、スパンプログラムの設計と、属性ベクトルの設計とに自由度があり、アクセス制御の設計に大きな自由度を有する。そして、このアクセスストラクチャに対して秘密分散の概念を用いることで、ノンモノトーン述語をサポートした属性ベース署名方式を実現した。
【選択図】図5
Description
この発明は、ノンモノトーン述語をサポートした属性ベース署名方式を提供することを目的とする。
鍵生成装置と署名装置と検証装置とを備え、t=0,...,d+1(dは1以上の整数)の各整数tについての基底Btと基底B* tとを用いて署名処理を実行する署名処理システムであり、
前記鍵生成装置は、
t=1,...,dの少なくとも1つ以上の整数tについて、識別情報tと、属性情報xtとを含む属性集合Γを入力する第1情報入力部と、
基底B* 0の基底ベクトルb* 0,1の係数として所定の値δを設定した鍵要素k* 0を生成する鍵要素0生成部と、
前記第1情報入力部が入力した属性集合Γに含まれる各識別情報tについて、基底B* tの基底ベクトルb* t,1の係数として前記所定の値δを設定し、基底ベクトルb* t,2の係数として属性情報xtに前記所定の値δを乗じたδxtを設定した鍵要素k* tを生成する鍵要素t生成部と、
基底B* d+1の基底ベクトルb* d+1,1の係数として前記所定の値δを設定した鍵要素k* d+1,1と、基底B* d+1の基底ベクトルb* d+1,2の係数として前記所定の値δを設定した鍵要素k* d+1,2とを生成する鍵要素d+1生成部と、
前記鍵要素0生成部が生成した鍵要素k* 0と、前記鍵要素t生成部が生成した前記属性集合Γに含まれる各識別情報tについての鍵要素k* tと、前記鍵要素d+1生成部が生成した鍵要素k* d+1,1及び鍵要素k* d+1,2と、前記属性集合Γとを含む署名鍵skΓを前記署名装置へ送信する署名鍵送信部と
を備え、
前記署名装置は、
i=1,...,L(Lは1以上の整数)の各整数iについての変数ρ(i)であって、識別情報t(t=1,...,dのいずれかの整数)と、属性情報viとの肯定形の組(t,vi)又は否定形の組¬(t,vi)のいずれかである変数ρ(i)と、L行r列(rは1以上の整数)の所定の行列Mと、メッセージmとを入力する第2情報入力部と、
前記署名鍵送信部が送信した署名鍵skΓを取得する署名鍵取得部と、
前記第2情報入力部が入力した変数ρ(i)と、前記署名鍵取得部が取得した署名鍵skΓに含まれる属性集合Γとに基づき、i=1,...,Lの各整数iのうち、変数ρ(i)が肯定形の組(t,vi)であり、かつ、その組のviと、その組の識別情報tが示す属性集合Γに含まれるxtとが等しいiと、変数ρ(i)が否定形の組¬(t,vi)であり、かつ、その組のviと、その組の識別情報tが示す属性集合Γに含まれるxtとが等しくないiとの集合Iを特定するとともに、特定した集合Iに含まれるiについて、前記第2情報入力部が入力した行列Mのi行目の要素であるMiに基づき、αiMiを合計した場合に所定のベクトルh→となる補完係数αiを計算する補完係数計算部と、
前記署名鍵skΓに含まれる鍵要素k* 0を含む署名要素s* 0を生成する署名要素0生成部と、
i=1,...,Lの各整数iについて、前記補完係数計算部が特定した集合Iに含まれる整数iであり、かつ、変数ρ(i)が肯定形の組(t,vi)である場合には値γi:=αiとし、前記集合Iに含まれるiであり、かつ、変数ρ(i)が否定形の組¬(t,vi)である場合には値γi:=αi/(vi−xt)とし、前記集合Iに含まれない整数iの場合には値γi:=0として、前記署名鍵skΓに含まれる鍵要素k* tに前記値γiを乗じたγik* tを含む署名要素s* iを生成する署名要素i生成部と、
前記署名鍵skΓに含まれる鍵要素k* d+1,1と、前記メッセージmを用いて生成される値m’を前記鍵要素k* d+1,2に乗じたm’・k* d+1,2との和を含む署名要素s* L+1を生成する署名要素L+1生成部と、
前記署名要素0生成部が生成した署名要素s* 0と、前記署名要素i生成部が生成したi=1,...,Lの各整数iについての署名要素s* iと、前記署名要素L+1生成部が生成した署名要素s* L+1と、前記メッセージmと、前記変数ρ(i)と、前記行列Mとを含む署名データσを前記検証装置へ送信する署名データ送信部と
を備え、
前記検証装置は、
前記署名データ送信部が送信した署名データσを取得するデータ取得部と、
r個の要素を有するベクトルf→と前記ベクトルh→と用いて生成される値s0:=h→・f→Tと、所定の値sL+1とから計算される−s0−sL+1を、基底B0の基底ベクトルb0,1の係数として設定して検証要素c0を生成する検証要素0生成部と、
前記ベクトルf→と前記データ取得部が取得した署名データσに含まれる行列Mとに基づき生成される列ベクトルs→T:=(s1,...,sL)T:=M・f→Tと、i=1,...,Lの各整数iについての所定の値θiとを用いて、i=1,...,Lの各整数iについて、変数ρ(i)が肯定形の組(t,vi)である場合には、その組の識別情報tが示す基底Btの基底ベクトルbt,1の係数としてsi+θiviを設定し、基底ベクトルbt,2の係数として−θiを設定して検証要素ciを生成し、変数ρ(i)が否定形の組¬(t,vi)である場合には、その組の識別情報tが示す基底ベクトルbt,1の係数としてsiviを設定し、基底ベクトルbt,2の係数として−siを設定して検証要素ciを生成する検証要素i生成部と、
基底Bd+1の基底ベクトルbd+1,1の係数として、前記所定の値sL+1と前記値m’と所定の値θL+1とから計算されるsL+1−θL+1m’を設定し、基底ベクトルbd+1,2の係数として前記所定の値θL+1を設定して検証要素cL+1を生成する検証要素L+1生成部と、
前記検証要素0生成部が生成した検証要素c0と、前記検証要素i生成部が生成した検証要素ciと、前記検証要素L+1生成部が生成した検証要素cL+1と、前記署名データσに含まれる署名要素s* 0,s* i,s* L+1とについて、ペアリング演算Πi=0 L+1e(ci,s* i)を行い、前記署名データσの正当性を検証するペアリング演算部と
を備えることを特徴とする。
以下の説明において、処理装置は後述するCPU911等である。記憶装置は後述するROM913、RAM914、磁気ディスク920等である。通信装置は後述する通信ボード915等である。入力装置は後述するキーボード902、通信ボード915等である。つまり、処理装置、記憶装置、通信装置、入力装置はハードウェアである。
Aがランダムな変数または分布であるとき、数101は、Aの分布に従いAからyをランダムに選択することを表す。つまり、数101において、yは乱数である。
bi(i=1,...,n)が空間Vのベクトルの要素であるとき、つまり、数110であるとき、数111は、数112によって生成される部分空間を表す。
同様に、Fq ntにおけるntはntのことである。
同様に、skgid,(t,xt)におけるxtはxtのことである。
同様に、“δi,j”が上付きで示されている場合、このδi,jは、δi,jを意味する。
また、ベクトルを意味する“→”が下付き文字又は上付き文字に付されている場合、この“→”は下付き文字又は上付き文字に上付きで付されていることを意味する。
この実施の形態では、「属性ベース署名方式」について説明する。
第1に、属性ベース署名について簡単に説明する。
第2に、属性ベース署名方式を実現するための空間である「双対ペアリングベクトル空間(Dual Pairing Vector Spaces,DPVS)」という豊かな数学的構造を有する空間を説明する。
第3に、属性ベース署名方式を実現するための概念を説明する。ここでは、「スパンプログラム(Span Program)」、「属性ベクトルの内積とアクセスストラクチャ」、「秘密分散方式(秘密共有方式)」について説明する。また、「衝突困難ハッシュ関数(Collision Resistant Hash Functions)」についても説明する。
第4に、この実施の形態に係る「属性ベース署名方式」を説明する。まず、「属性ベース署名方式」の基本構成について説明する。次に、「属性ベース署名方式」を実現する「署名処理システム10」の基本構成について説明する。そして、この実施の形態に係る「属性ベース署名方式」及び「署名処理システム10」について詳細に説明する。
デジタル署名の概念は、DiffieとHellmanとによって1976年に論文で紹介された。そこでは、デジタル署名の概念は、秘密にされる署名鍵skと公開される検証鍵pkとのペアが署名者に対して生成され、署名鍵skを用いて生成されたメッセージmの署名σが、対応する検証鍵pkによって検証されることとされた。つまり、署名鍵skを使って署名されたメッセージ(m,σ)の署名者が、検証鍵pkによって確認されることとされた。
これは、デジタル署名の要件の1つではある。しかし、署名鍵skと検証鍵pkとの関係が密接なため、署名者と署名によって証明される内容との間の関係に柔軟性やプライバシーがない。
署名のこのクラスでは、署名鍵と検証鍵とはそれぞれ、属性xと述語vとによってパラメータ化されている。そして、署名されたメッセージ(m,σ)は、パラメータxを伴う署名鍵skxによって生成され、公開された鍵pkとパラメータvとによって、述語vが属性xを受理する場合(v(x)が成立する場合)にのみ、正しいことが検証される。
署名のこのクラスにおける署名者のプライバシーとは、署名鍵skxによって生成された述語vに対する署名が、v(x)が成立することを除き属性xに関する情報を漏らさないことである。
なお、IDベース署名では、x=vのように、署名者の秘密鍵であるskxの属性xを述語vが一意に識別する。そのため、IDベース署名にはプライバシーの余地はない。
プライバシーの要件に基づき、秘密鍵skxを使って生成された署名はxがグループvのメンバーであることを除き、識別子xに関する情報を漏らさない。
存在する属性ベース署名方式における述語の最も広いクラスはモノトーンアクセスストラクチャである(非特許文献36,37参照)。モノトーンアクセスストラクチャでは、述語vは、属性(v1,...,vj)の組を伴うモノトーンスパンプログラム(M,ρ)(MSP(M,ρ))によって特定され、MSP(M,ρ)が(T(xi_1=v1),...,T(xi_j=vj))の真の値のベクトルを受理する場合のみ、v(x)が成立する。ここで、φが真である場合、T(φ):=1であり、φが偽である場合、T(φ):=1である。例えば、x=vである場合、T(x=v):=1であり、x≠vである場合、T(x=v):=0である。
このようなモノトーン述語は、AND、OR、閾値のゲートを表現することができる。
モノトーン述語vの例としては、(Institute=Univ.A)AND(TH2((Department=Biology),(Gender=Female),(Age=50‘s))OR(Position=Professor))である。ここで、TH2は閾値の値が2の閾値ゲート(つまり、2つ以上成立することを要求するゲート)を意味する。
アリスの属性xAが、(Institute=Univ.A),(Department=Biology),(Position=Postdoc),(Age=30),(Gender=Female)であり、ボブの属性xBが、(Institute=Univ.A),(Department=Mathematics),(Position=Professor),(Age=45),(Gender=Male)であるとする。属性xAと属性xBとは全く異なるが、v(xA)とv(xB)とがいずれも成立することは明らかである。また、述語vを満たす他の多くの属性があることは明らかである。
そのため、アリスとボブとは、この述語における署名を生成することができる。また、属性ベース署名のプライバシー要件に基づき、署名者の属性が述語vを満たすことを除き、述語vに対する署名は署名者、つまりアリスとボブ(又はその他)の属性に関して情報を漏らさない。
つまり、モノトーン述語では、(Institute=Univ.A)のように、肯定形の条件は設定できるが、(Institute≠Univ.A)(つまり、Not(Institute=Univ.A))のように否定形の条件は設定できない。これに対して、ノンモノトーン述語では、否定形の条件を設定できる。
大学がUniv.A以外にも多数存在する場合、肯定形の条件のみを用いて、Univ.A以外という否定形の条件を設定するのは困難である(記述が複雑になる)。このことからも、ノンモノトーン述語の有用性が分かる。
まず、対称双線形ペアリング群(Symmetric Bilinear Pairing Groups)について説明する。
対称双線形ペアリング群(q,G,GT,g,e)は、素数qと、位数qの巡回加法群Gと、位数qの巡回乗法群GTと、g≠0∈Gと、多項式時間で計算可能な非退化双線形ペアリング(Nondegenerate Bilinear Pairing)e:G×G→GTとの組である。非退化双線形ペアリングは、e(sg,tg)=e(g,g)stであり、e(g,g)≠1である。
以下の説明において、数115を、1λを入力として、セキュリティパラメータをλとする双線形ペアリング群のパラメータparamG:=(q,G,GT,g,e)の値を出力するアルゴリズムとする。
双対ペアリングベクトル空間(q,V,GT,A,e)は、対称双線形ペアリング群(paramG:=(q,G,GT,g,e))の直積によって構成することができる。双対ペアリングベクトル空間(q,V,GT,A,e)は、素数q、数116に示すFq上のN次元ベクトル空間V、位数qの巡回群GT、空間Vの標準基底A:=(a1,...,aN)の組であり、以下の演算(1)(2)を有する。ここで、aiは、数117に示す通りである。
空間Vにおけるペアリングは、数118によって定義される。
<第3−1.スパンプログラム>
図1は、行列M^の説明図である。
{p1,...,pn}を変数の集合とする。M^:=(M,ρ)は、ラベル付けされた行列である。ここで、行列Mは、Fq上の(L行×r列)の行列である。また、ρは、行列Mの各列に付されたラベルであり、{p1,...,pn,¬p1,...,¬pn}のいずれか1つのリテラルへ対応付けられる。なお、Mの全ての行に付されたラベルρi(i=1,...,L)がいずれか1つのリテラルへ対応付けられる。つまり、ρ:{1,...,L}→{p1,...,pn,¬p1,...,¬pn}である。
図2は、行列Mδの説明図である。なお、図2では、n=7,L=6,r=5としている。つまり、変数の集合は、{p1,...,p7}であり、行列Mは(6行×5列)の行列である。また、図2において、ラベルρは、ρ1が¬p2に、ρ2がp1に、ρ3がp4に、ρ4が¬p5に、ρ5が¬p3に、ρ6がp5にそれぞれ対応付けられているとする。
ここで、入力列δ∈{0,1}7が、δ1=1,δ2=0,δ3=1,δ4=0,δ5=0,δ6=1,δ7=1であるとする。この場合、破線で囲んだリテラル(p1,p3,p6,p7,¬p2,¬p4,¬p5)に対応付けられている行列Mの行からなる部分行列が行列Mδである。つまり、行列Mの1行目(M1),2行目(M2),4行目(M4)からなる部分行列が行列Mδである。
つまり、図2では、写像γ(j)=1(j=1,2,4)であり、写像γ(j)=0(j=3,5,6)である。したがって、(Mj)γ(j)=1は、M1,M2,M4であり、行列Mδである。
すなわち、写像γ(j)の値が“0”であるか“1”であるかによって、行列Mのj番目の行が行列Mδに含まれるか否かが決定される。
例えば、図2の例であれば、行列Mの1,2,4行目からなる行列Mδの各行を線形結合して1→が得られる場合に限り、スパンプログラムM^は入力列δを受理する。つまり、α1(M1)+α2(M2)+α4(M4)=1→となるα1,α2,α4が存在する場合には、スパンプログラムM^は入力列δを受理する。
上述したように、スパンプログラムがモノトーンではなく、ノンモノトーンであることにより、スパンプログラムを利用して構成する属性ベース署名方式の利用範囲が広がる。
ここでは、属性ベクトルの内積を用いて上述した写像γ(j)を計算する。つまり、属性ベクトルの内積を用いて、行列Mのどの行を行列Mδに含めるかを決定する。
つまり、アクセスストラクチャS:=(M,ρ)であり、ρ:{1,...,L}→{(t,v→),(t’,v’→),...,¬(t,v→),¬(t’,v’→),...}である。
アクセスストラクチャSにΓが与えられた場合、スパンプログラムM^:=(M,ρ)に対する写像γ:{1,...,L}→{0,1}は、以下のように定義される。i=1,...,Lの各整数iについて、[ρ(i)=(t,v→ i)]∧[(t,x→ t)∈Γ]∧[v→ i・x→ t=0]、又は、[ρ(i)=¬(t,v→ i)]∧[(t,x→ t)∈Γ]∧[v→ i・x→ t≠0]である場合、γ(j)=1であり、他の場合、γ(j)=0とする。
つまり、属性ベクトルv→とx→との内積に基づき、写像γが計算される。そして、上述したように、写像γにより、行列Mのどの行を行列Mδに含めるかが決定される。すなわち、属性ベクトルv→とx→との内積により、行列Mのどの行を行列Mδに含めるかが決定され、1→∈span<(Mi)γ(i)=1>である場合に限り、アクセスストラクチャS:=(M,ρ)はΓを受理する。
この場合、(t,x→ t):=(t,(1,x)),(t,v→ i):=(t,(vi,−1))である。しかし、これらを簡単化して(t,xt)、(t,vi)と表す。すると、アクセスストラクチャSは、ρ:={1,...,L}→{(t,v),(t’、v’),...,¬(t,v),¬(t’,v’),...}(v,v’,...∈Fq)であるS:=(M,ρ)となる。また、属性の集合Γは、Γ:={(t,xt)|xt∈Fq,1≦t≦d}となる。
そして、アクセスストラクチャSにΓが与えられた場合、スパンプログラムM^:=(M,ρ)に対する写像γ:{1,...,L}→{0,1}は、以下のように定義される。i=1,...,Lの各整数iについて、[ρ(i)=(t,vi)]∧[(t,xt)∈Γ]∧[vi=xt]、又は、[ρ(i)=¬(t,vi)]∧[(t,xt)∈Γ]∧[vi≠xt]である場合、γ(j)=1であり、他の場合、γ(j)=0とする。
アクセスストラクチャS:=(M,ρ)に対する秘密分散方式について説明する。
なお、秘密分散方式とは、秘密情報を分散させ、意味のない分散情報にすることである。例えば、秘密情報sを10個に分散させ、10個の分散情報を生成する。ここで、10個の分散情報それぞれは、秘密情報sの情報を有していない。したがって、ある1個の分散情報を手に入れても秘密情報sに関して何ら情報を得ることはできない。一方、10個の分散情報を全て手に入れれば、秘密情報sを復元できる。
また、10個の分散情報を全て手に入れなくても、一部だけ(例えば、8個)手に入れれば秘密情報sを復元できる秘密分散方式もある。このように、10個の分散情報のうち8個で秘密情報sを復元できる場合を、8−out−of−10と呼ぶ。つまり、n個の分散情報のうちt個で秘密情報sを復元できる場合を、t−out−of−nと呼ぶ。このtを閾値と呼ぶ。
また、d1,...,d10の10個の分散情報を生成した場合に、d1,...,d8までの8個の分散情報であれば秘密情報sを復元できるが、d3,...,d10までの8個の分散情報であれば秘密情報sを復元できないというような秘密分散方式もある。つまり、手に入れた分散情報の数だけでなく、分散情報の組合せに応じて秘密情報sを復元できるか否かを制御する秘密分散方式もある。
行列Mを(L行×r列)の行列とする。f→Tを数122に示す列ベクトルとする。
これは、図2の例で、α1(M1)+α2(M2)+α4(M4)=1→となるα1,α2,α4が存在する場合には、スパンプログラムM^は入力列δを受理すると説明したことからも明らかである。つまり、α1(M1)+α2(M2)+α4(M4)=1→となるα1,α2,α4が存在する場合には、スパンプログラムM^が入力列δを受理するのであれば、α1(M1)+α2(M2)+α4(M4)=1→となるα1,α2,α4が存在する。
そして、数125である。
衝突困難ハッシュ関数とは、出力が同じになる2つの入力を見つけることが困難なハッシュ関数である。
1.鍵空間系は、λによって索引付けされる。各鍵空間は、KHλによって示されるビット列における確率空間である。1λを入力とした場合の出力分布がKHλと等しい確率的多項式時間アルゴリズムが存在する。
2.ハッシュ関数系は、λと、KHλからランダムに選択されたhkと、D:={0,1}poly(λ)とによって索引付けされる。ここで、各関数Hhk λ,Dは、Dの要素からFq Xへの写像である。なお、qは、アルゴリズムGbpg(1λ)の出力paramGの最初の要素である。1λとhkとd∈Dとを入力として、Hhk λ,D(d)を出力する決定的多項式時間アルゴリズムがある。
<第4−1.属性ベース署名方式の基本構成>
属性ベース署名方式は、Setup、KeyGen、Sig、Verの4つのアルゴリズムを備える。
(Setup)
Setupアルゴリズムは、セキュリティパラメータλと、属性のフォーマットn→:=((d;nt,ut,wt,zt(t=1,...,d))とを入力として、公開パラメータpkと、マスター鍵skとを出力する確率的アルゴリズムである。
(KeyGen)
KeyGenアルゴリズムは、属性の集合であるΓ:={(t,x→ t)|x→ t∈Fq nt\{0→},1≦t≦d}と、公開パラメータpkと、マスター鍵skとを入力として、署名鍵skΓを出力する確率的アルゴリズムである。
(Sig)
Sigアルゴリズムは、メッセージmと、属性の集合Γを受理するようなアクセスストラクチャS:=(M,ρ)と、署名鍵skΓと、公開パラメータpkとを入力として、署名s→*とメッセージmとアクセスストラクチャSとを含む署名データσを出力する確率的アルゴリズムである。
(Ver)
Verアルゴリズムは、署名データσと、公開パラメータpkとを入力として、ブール値1(受理)又は0(拒絶)を出力するアルゴリズムである。
上述した属性ベース署名方式のアルゴリズムを実行する署名処理システム10について説明する。
図5は、属性ベース署名方式のアルゴリズムを実行する署名処理システム10の構成図である。
署名処理システム10は、鍵生成装置100、署名装置200、検証装置300を備える。
鍵生成装置100は、セキュリティパラメータλと、属性のフォーマットn→:=((d;nt,ut,wt,zt(t=1,...,d))とを入力としてSetupアルゴリズムを実行して、公開パラメータpkとマスター鍵skとを生成する。そして、鍵生成装置100は、生成した公開パラメータpkを公開する。また、鍵生成装置100は、属性の集合であるΓ:={(t,x→ t)|x→ t∈Fq nt\{0→},1≦t≦d}と、公開パラメータpkと、マスター鍵skとを入力としてKeyGenアルゴリズムを実行して、署名鍵skΓを生成して署名装置200へ秘密裡に配布する。
署名装置200は、メッセージmと、属性の集合Γを受理するようなアクセスストラクチャS:=(M,ρ)と、署名鍵skΓと、公開パラメータpkとを入力としてSigアルゴリズムを実行して、署名s→*とメッセージmとアクセスストラクチャSとを含む署名データσを生成する。署名装置200は、生成した署名データσを検証装置300へ送信する。
検証装置300は、署名データσと、公開パラメータpkとを入力としてVerアルゴリズムを実行して、ブール値1(受理)又は0(拒絶)を出力する。
図6から図12に基づき、属性ベース署名方式、及び、属性ベース署名方式を実行する署名処理システム10の機能と動作とについて説明する。
図6は、鍵生成装置100の機能を示す機能ブロック図である。図7は、署名装置200の機能を示す機能ブロック図である。図8は、検証装置300の機能を示す機能ブロック図である。
図9と図10とは、鍵生成装置100の動作を示すフローチャートである。なお、図9はSetupアルゴリズムの処理を示すフローチャートであり、図10はKeyGenアルゴリズムの処理を示すフローチャートである。図11は、署名装置200の動作を示すフローチャートであり、Sigアルゴリズムの処理を示すフローチャートである。図12は、検証装置300の動作を示すフローチャートであり、Verアルゴリズムの処理を示すフローチャートである。
図6に示すように、鍵生成装置100は、マスター鍵生成部110、マスター鍵記憶部120、情報入力部130(第1情報入力部)、署名鍵生成部140、鍵配布部150(署名鍵送信部)を備える。
また、署名鍵生成部140は、乱数生成部141、鍵要素0生成部142、鍵要素t生成部143、鍵要素d+1生成部144を備える。
(S101:正規直交基底生成ステップ)
マスター鍵生成部110は、処理装置により、数130を計算して、paramn→と、t=0,...,d+1の各整数tについて基底Bt及び基底B* tとをランダムに生成する。
(1)マスター鍵生成部110は、入力装置により、セキュリティパラメータλ(1λ)と、属性のフォーマットn→:=((d;nt,ut,wt,zt(t=0,...,d+1))とを入力する。ここで、dは1以上の整数である。t=0についてのntは1であり、t=1,...,dまでの各整数tについてntは1以上の整数であり、t=d+1についてのntは2である。t=0,...,d+1までの各整数tについてut,wt,ztは1以上の整数である。
(2)マスター鍵生成部110は、処理装置により、(1)で入力したセキュリティパラメータλ(1λ)を入力としてアルゴリズムGbpgを実行して、ランダムに双線形ペアリング群のパラメータparamG:=(q,G,GT,g,e)の値を生成する。
(3)マスター鍵生成部110は、処理装置により、乱数ψを生成する。また、マスター鍵生成部110は、t=0,...,d+1の各整数tについてNtにnt+ut+wt+ztを設定する。
(4)マスター鍵生成部110は、処理装置により、(1)で入力したセキュリティパラメータλ(1λ)と、(3)で設定したNtと、(2)で生成したparamG:=(q,G,GT,g,e)の値とを入力としてアルゴリズムGdpvsを実行して、双対ペアリングベクトル空間のパラメータparamVt:=(q,Vt,GT,At,e)の値を生成する。
(5)マスター鍵生成部110は、処理装置により、(3)で設定したNtと、Fqとを入力として、線形変換Xt:=(χt,i,j)i,jをランダムに生成する。なお、GLは、General Linearの略である。つまり、GLは、一般線形群であり、行列式が0でない正方行列の集合であり、乗法に関し群である。また、(χt,i,j)i,jは、行列χt,i,jの添え字i,jに関する行列という意味であり、ここでは、i,j=1,...,ntである。
(6)マスター鍵生成部110は、処理装置により、乱数ψと線形変換Xtとに基づき、(νt,i,j)i,j:=ψ・(Xt T)−1を生成する。なお、(νt,i,j)i,jも(χt,i,j)i,jと同様に、行列νt,i,jの添え字i,jに関する行列という意味であり、ここでは、i,j=1,...,ntである。
(7)マスター鍵生成部110は、処理装置により、(5)で生成した線形変換Xtに基づき、(4)で生成した標準基底Atから基底Btを生成する。
(8)マスター鍵生成部110は、処理装置により、(6)で生成した(νt,i,j)i,jに基づき、(4)で生成した標準基底Atから基底B* tを生成する。
(9)マスター鍵生成部110は、処理装置により、gTにe(g,g)ψを設定する。また、マスター鍵生成部110は、paramn→に(4)で生成した{paramVt}t=0,...,d+1と、gTとを設定する。なお、t=0,...,d+1とi=1,...,Ntとの各整数t,iについて、gT=e(bt,i,b* t,i)である。
マスター鍵生成部110は、処理装置により、基底B0の部分基底B^0と、t=1,...,dの各整数tについて基底Btの部分基底B^tと、基底Bd+1の部分基底B^d+1とを数133に示すように生成する。
マスター鍵生成部110は、基底B* 0の基底ベクトルb* 0,1をマスター鍵skとする。
マスター鍵記憶部120は、(S103)で生成した公開パラメータpkを記憶装置に記憶する。また、マスター鍵記憶部120は、(S104)で生成したマスター鍵skを記憶装置に記憶する。
なお、公開パラメータは、例えば、ネットワークを介して公開され、署名装置200や検証装置300が取得可能な状態にされる。
(S201:情報入力ステップ)
情報入力部130は、入力装置により、属性の集合Γ:={(t,x→ t:=(xt,i)(i=1,...,nt))|1≦t≦d}を入力する。tは、1以上d以下の全ての整数ではなく、1以上d以下の少なくとも一部の整数であってもよい。
乱数生成部141は、処理装置により、乱数δと、乱数φ0,φt,ι,φd+1,1,ι,φd+1,2,ι(t=1,...,d;ι=1,...,wt)とを数136に示すように生成する。
鍵要素0生成部142は、処理装置により、署名鍵skΓの要素である鍵要素k* 0を数137に示すように生成する。
基底B* 0の基底ベクトル1の係数として乱数δが設定される。基底ベクトル1+1,...,1+u0の係数として0が設定される。基底ベクトル1+u0+1,...,1+u0+w0の係数として乱数φ0,1,...,φ0,wo(ここで、w0はw0のことである)が設定される。基底ベクトル1+u0+w0+1,...,1+u0+w0+z0の係数として0が設定される。
鍵要素t生成部143は、処理装置により、属性の集合Γに含まれる(t,x→ t)の各整数tについて、署名鍵skΓの要素である鍵要素k* tを数138に示すように生成する。
基底ベクトル1,...,ntの係数としてδxt,1,...,δxt,nt(ここで、ntはntのことである)が設定される。基底ベクトルnt+1,...,nt+utの係数として0が設定される。基底ベクトルnt+ut+1,...,nt+ut+wtの係数として乱数φt,1,...,φt,wt(ここで、wtはwtのことである)が設定される。基底ベクトルnt+ut+wt+1,...,nt+ut+wt+ztの係数として0が設定される。
鍵要素d+1生成部144は、処理装置により、署名鍵skΓの要素である鍵要素k* d+1,1と鍵要素k* d+1,2とを数139に示すように生成する。
まず、鍵要素k* d+1,1については、基底ベクトル1の係数として乱数δが設定される。基底ベクトル2の係数として0が設定される。基底ベクトル2+1,...,2+ud+1の係数として0が設定される。基底ベクトル2+ud+1+1,...,2+ud+1+wd+1の係数として乱数φd+1,1,1,...,φd+1,1,wd+1(ここで、wd+1はwd+1のことである)が設定される。基底ベクトル2+ud+1+wd+1+1,...,2+ud+1+wd+1+zd+1の係数として0が設定される。
また、鍵要素k* d+1,2については、基底ベクトル1の係数として0が設定される。基底ベクトル2の係数として乱数δが設定される。基底ベクトル2+1,...,2+ud+1の係数として0が設定される。基底ベクトル2+ud+1+1,...,2+ud+1+wd+1の係数として乱数φd+1,2,1,...,φd+1,2,wd+1(ここで、wd+1はwd+1のことである)が設定される。基底ベクトル2+ud+1+wd+1+1,...,2+ud+1+wd+1+zd+1の係数として0が設定される。
鍵配布部150は、属性の集合Γと、鍵要素k* 0と、鍵要素k* t(tは属性の集合Γに含まれる(t,x→ t)におけるt)と、鍵要素k* d+1,1及び鍵要素k* d+1,2とを要素とする署名鍵skΓを、例えば通信装置によりネットワークを介して秘密裡に署名装置200へ配布する。もちろん、署名鍵skΓは、他の方法により署名装置200へ配布されてもよい。
図7に示すように、署名装置200は、署名鍵取得部210、情報入力部220(第2情報入力部)、スパンプログラム計算部230、補完係数計算部240、署名データ生成部250、署名データ送信部260(署名データ出力部)を備える。
また、情報入力部220は、述語情報入力部221、メッセージ入力部222を備える。また、署名データ生成部250は、乱数生成部251、署名要素0生成部252、署名要素i生成部253、署名要素L+1生成部254を備える。
(S301:署名鍵取得ステップ)
署名鍵取得部210は、例えば、通信装置によりネットワークを介して、鍵生成装置100が生成した署名鍵skΓを取得する。また、署名鍵取得部210は、鍵生成装置100が生成した公開パラメータpkを取得する。
述語情報入力部221は、入力装置により、アクセスストラクチャS:=(M,ρ)を入力する。なお、行列Mは、L行×r列の行列である。L,rは、1以上の整数である。
また、メッセージ入力部222は、入力装置により、署名を付すメッセージmを入力する。
なお、アクセスストラクチャSの行列Mの設定については、実現したいシステムの条件に応じて設定されるものである。
スパンプログラム計算部230は、処理装置により、(S302)で入力したアクセスストラクチャSが、(S301)で取得した署名鍵skΓに含まれる属性の集合Γを受理するか否かを判定する。
なお、アクセスストラクチャが属性の集合を受理するか否かの判定方法は、「第3.関数型暗号を実現するための概念」で説明した通りである。
スパンプログラム計算部230は、アクセスストラクチャSが属性の集合Γを受理する場合(S303で受理)、処理を(S304)へ進める。一方、アクセスストラクチャSが属性の集合Γを拒絶する場合(S303で拒絶)、処理を終了する。
補完係数計算部430は、処理装置により、数141となるIと、Iに含まれる各整数iについて定数(補完係数)αiとを計算する。
署名要素0生成部252は、処理装置により、署名データσの要素である署名要素s* 0を数143に示すように生成する。
署名要素i生成部253は、処理装置により、i=1,...,Lの各整数iについて、署名データσの要素である署名要素s* iを数145に示すように生成する。
署名要素L+1生成部254は、処理装置により、署名データσの要素である署名要素s* L+1を数148に示すように生成する。
署名データ送信部260は、署名要素s* 0と、署名要素s* i(i=1,...,L)と、署名要素s* L+1と、メッセージmと、アクセスストラクチャS:=(M,ρ)とを含む署名データσを、例えば通信装置によりネットワークを介して検証装置300へ送信する。もちろん、署名データσは、他の方法により検証装置300へ送信されてもよい。
図8に示すように、検証装置300は、公開パラメータ取得部310、データ受信部320、検証鍵生成部330、ペアリング演算部340を備える。
また、検証鍵生成部330は、乱数生成部331、fベクトル生成部332、sベクトル生成部333、検証要素0生成部334、検証要素i生成部335、検証要素L+1生成部336を備える。
(S401:公開パラメータ取得ステップ)
公開パラメータ取得部310は、例えば、通信装置によりネットワークを介して、鍵生成装置100が生成した公開パラメータpkを取得する。
データ受信部320は、例えば、通信装置によりネットワークを介して、署名装置200が送信した署名データσを受信する。
sベクトル生成部333は、処理装置により、(S402)で受信した署名データσに含まれるアクセスストラクチャSの(L行×r列)の行列Mと、(S403)で生成したr個の要素を有するベクトルf→とに基づき、ベクトルs→Tを数152に示すように生成する。
乱数生成部331は、処理装置により、i=1,...,z0の各整数iについて乱数η0,iと、i=1,...,zd+1の各整数iについて乱数ηL+1,iと、乱数θL+1と、乱数sL+1とを数154に示すように生成する。
検証要素0生成部334は、処理装置により、検証鍵の要素である検証要素c0を数155に示すように生成する。
基底B0の基底ベクトル1の係数として−s0−sL+1が設定される。基底ベクトル1+1,...,1+u0+w0の係数として0が設定される。基底ベクトル1+u0+w0+1,...,1+u0+w0+z0の係数として乱数η0,1,...,η0,z0(ここで、z0はz0のことである)が設定される。
検証要素i生成部335は、処理装置により、i=1,...,Lの各整数iについて、検証鍵の要素である検証要素ciを数156に示すように生成する。
ρ(i)が肯定形の組(t,v→ i)である場合には、基底ベクトル1の係数としてsi+θivi,1が設定される。基底ベクトル2,...,ntの係数としてθivi,2,...,θivi,nt(ここで、ntはntのことである)が設定される。基底ベクトルnt+1,...,nt+ut+wtの係数として0が設定される。基底ベクトルnt+ut+wt+1,...,nt+ut+wt+ztの係数としてηi,1,...,ηi,zt(ここで、ztはztのことである)が設定される。
一方、ρ(i)が否定形の組¬(t,v→ i)である場合には、基底ベクトル1,...,ntの係数としてsivi,1,...,θivi,nt(ここで、ntはntのことである)が設定される。基底ベクトル2の係数として−siが設定される。基底ベクトルnt+1,...,nt+ut+wtの係数として0が設定される。基底ベクトルnt+ut+wt+1,...,nt+ut+wt+ztの係数としてηi,1,...,ηi,zt(ここで、ztはztのことである)が設定される。
なお、θi及びηi,i’(i’=1,...,zt)は乱数生成部233によって生成される一様乱数である。
検証要素L+1生成部336は、処理装置により、検証鍵の要素である検証要素cL+1を数157に示すように生成する。
基底ベクトル1の係数としてsL+1−θL+1・Hhk λ,D(m||S)が設定される。基底ベクトル2の係数としてθL+1が設定される。基底ベクトル2+1,...,2+ud+1+wd+1の係数として0が設定される。基底ベクトル2+ud+1+wd+1+1,...,2+ud+1+wd+1+zd+1の係数として乱数ηL+1,1,...,ηL+1,zd+1(ここで、zd+1はzd+1のことである)が設定される。
ペアリング演算部340は、処理装置により、ペアリング演算e(b0,1,s* 0)を計算する。
ペアリング演算e(b0,1,s* 0)を計算した結果が値1であれば、ペアリング演算部340は、署名の検証に失敗したことを示す値0を出力して、処理を終了する。一方、ペアリング演算e(b0,1,s* 0)を計算した結果が値1でなければ、ペアリング演算部340は、処理をS410へ進める。
ペアリング演算部340は、処理装置により、数158に示すペアリング演算を計算する。
なお、数159に示すように、数158を計算することにより、署名データσが正当なものであれば、値1が得られる。
ペアリング演算e(b0,1,s* 0)は、署名要素s* 0に基底ベクトルb* 0,1が含まれているか、つまり基底ベクトルb* 0,1の係数として0以外の値が設定されているかを確認する演算である。ペアリング演算e(b0,1,s* 0)=1であれば、署名要素s* 0では基底ベクトルb* 0,1の係数として0が設定されており、署名データσは、基底ベクトルb* 0,1を用いることなく生成された署名データであるということになる。したがって、この場合、署名データσは不正なものであると認められる。
この場合、数135に示すSetupアルゴリズムは、数161のように書き換えられる。なお、Gobは数162のように書き換えられる。
この実施の形態では、「分散多管理者属性ベース署名方式」について説明する。
第1に、「分散多管理者(Decentralized Multi−Authority)」という概念について説明する。
第2に、この実施の形態に係る「分散多管理者属性ベース署名方式」を説明する。まず、「分散多管理者属性ベース署名方式」の基本構成について説明する。次に、「分散多管理者属性ベース署名方式」を実現する「署名処理システム10」の基本構成について説明する。そして、この実施の形態に係る「分散多管理者属性ベース署名方式」及び「署名処理システム10」について詳細に説明する。
まず、「多管理者」について説明する。多管理者とは、署名鍵を生成する管理者が複数存在するという意味である。
一般的な署名処理システムでは、システム全体のセキュリティはある1つの機関(管理者)に依存している。例えば、実施の形態1で説明した署名処理システム10であれば、システム全体のセキュリティは、マスター鍵skを生成する鍵生成装置100に依存している。鍵生成装置100のセキュリティが破られたり、マスター鍵skが漏洩した場合、署名処理システム10は全体が機能しなくなる。
しかし、多管理者とすることで、一部の管理者のセキュリティが破られたり、一部の管理者の秘密鍵(マスター鍵)が漏洩した場合であっても、署名処理システムの一部だけが機能しなくなるだけであり、他の部分については正常に機能する状態とすることができる。
図13では、役所が、住所、電話番号、年齢等の属性について管理する。また、警察が、運転免許の種別等の属性について管理する。また、会社Aが、会社Aにおける役職、会社Aにおける所属等の属性について管理する。そして、役所が管理する属性を示すための署名鍵1は役所が発行し、警察が管理する属性を示すための署名鍵2は警察が発行し、会社Aが管理する属性を示すための署名鍵3は会社Aが発行する。
署名をする署名者は、役所、警察、会社A等の各管理者が発行した署名鍵1,2,3を合わせた署名鍵用い、署名データを生成する。つまり、署名者から見た場合、各管理者から発行された署名鍵を合わせたものが、自分に発行された1つの署名鍵となる。
例えば、会社Aのマスター鍵が漏洩した場合、署名処理システムは、会社Aの属性に関しては機能しなくなるが、他の管理者が管理する属性に関しては機能する。つまり、署名データの検証ができた場合、会社Aが管理する属性については信頼できないが、他の属性については信頼することができる。
例えば、中央管理者がいる場合、分散とは言えない。中央管理者とは、他の管理者よりも上位の管理者である。中央管理者のセキュリティが破られた場合、全ての管理者のセキュリティが破られてしまう。
<第2−1.分散多管理者属性ベース署名方式の基本構成>
分散多管理者属性ベース署名方式は、GSetup、ASetup、AttrGen、Sig、Verの4つのアルゴリズムを備える。
(GSetup)
GSetupアルゴリズムは、セキュリティパラメータλが入力され、公開パラメータgparamを出力する確率的アルゴリズムである。
(ASetup)
ASetupアルゴリズムは、公開パラメータgparamと、管理者の識別情報tとを入力として、管理者秘密鍵asktと、管理者公開パラメータapktとを出力する確率的アルゴリズムである。
(AttrGen)
AttrGenアルゴリズムは、公開パラメータgparamと、管理者の識別情報tと、管理者秘密鍵asktと、ユーザの識別情報gidと、属性x→ t:=(xt,i)(i=1,...,nt)∈Fqとを入力として、署名鍵uskgid,(t,xt)を出力する確率的アルゴリズムである。
(Sig)
Sigアルゴリズムは、公開パラメータgparamと、署名鍵uskgid,(t,xt)と、メッセージmと、アクセスストラクチャS:=(M,ρ)とを入力として、署名s→*とメッセージmとアクセスストラクチャSとを含む署名データσを出力する確率的アルゴリズムである。
(Ver)
Verアルゴリズムは、署名データσと、公開パラメータgparamと、管理者公開パラメータapktとを入力として、ブール値1(受理)又は0(拒絶)を出力するアルゴリズムである。
上述した分散多管理者属性ベース署名方式のアルゴリズムを実行する署名処理システム10について説明する。
図14は、分散多管理者属性ベース署名方式のアルゴリズムを実行する署名処理システム10の構成図である。
署名処理システム10は、複数の鍵生成装置100、署名装置200、検証装置300を備える。
いずれか(1つ)の鍵生成装置100は、セキュリティパラメータλを入力としてGSetupアルゴリズムを実行して、公開パラメータgparamを生成する。そして、その鍵生成装置100は、生成した公開パラメータgparamを公開する。
各鍵生成装置100は、公開パラメータgparamと、その鍵生成装置100に割り当てられた識別情報tとを入力としてASetupアルゴリズムを実行して、管理者秘密鍵asktと、管理者公開パラメータapktとを生成する。そして、各鍵生成装置100は、公開パラメータgparamと、その鍵生成装置100に割り当てられた識別情報tと、管理者秘密鍵asktと、ユーザの識別情報gidと、属性xt:=(xt,i)(i=1,...,nt)∈Fqとを入力としてAttrGenアルゴリズムを実行して、署名鍵uskgid,(t,xt)を生成して署名装置200へ秘密裡に配布する。
署名装置200は、公開パラメータgparamと、署名鍵uskgid,(t,xt)と、メッセージmと、アクセスストラクチャS:=(M,ρ)とを入力としてSigアルゴリズムを実行して、署名s→*とメッセージmとアクセスストラクチャSとを含む署名データσを生成する。署名装置200は、生成した署名データσを検証装置300へ送信する。
検証装置300は、署名データσと、公開パラメータgparamと、管理者公開パラメータapktとを入力としてVerアルゴリズムを実行して、ブール値1(受理)又は0(拒絶)を出力する。
図15から図22に基づき、分散多管理者属性ベース署名方式、及び、分散多管理者属性ベース署名方式を実行する署名処理システム10の機能と動作とについて説明する。
図15は、各鍵生成装置100の機能を示す機能ブロック図である。図16は、署名装置200の機能を示す機能ブロック図である。図17は、検証装置300の機能を示す機能ブロック図である。
図18から図20は、鍵生成装置100の動作を示すフローチャートである。なお、図18はGSetupアルゴリズムの処理を示すフローチャートであり、図19はASetupアルゴリズムの処理を示すフローチャートであり、図20はAttrGenアルゴリズムの処理を示すフローチャートである。図21は、署名装置200の動作を示すフローチャートであり、Sigアルゴリズムの処理を示すフローチャートである。図22は、検証装置300の動作を示すフローチャートであり、Verアルゴリズムの処理を示すフローチャートである。
図15に示すように、鍵生成装置100は、マスター鍵生成部110、マスター鍵記憶部120、情報入力部130(第1情報入力部)、署名鍵生成部140、鍵配布部150(署名鍵送信部)を備える。
また、マスター鍵生成部110は、グローバルパラメータ生成部111、管理者秘密鍵生成部112を備える。署名鍵生成部140は、乱数生成部141、鍵要素生成部145を備える。
(S501:セキュリティパラメータ入力ステップ)
グローバルパラメータ生成部111は、入力装置により、セキュリティパラメータλ(1λ)を入力する。
グローバルパラメータ生成部111は、処理装置により、S501で入力したセキュリティパラメータλ(1λ)を入力としてアルゴリズムGbpgを実行して、ランダムに双線形ペアリング群のパラメータparamG:=(q,G,GT,g,e)の値を生成する。
ハッシュ関数H1とH2とを、数166に示すハッシュ関数とする。
マスター鍵記憶部120は、(S502)で生成したparamGと、(S503)でグローバルパラメータ生成部111が設定したハッシュ関数H1,H2と、生成した要素G0,G1,G2,G3,G4と、設定した値gt,g4とを、グローバルパラメータgparamとして記憶装置に記憶する。
なお、グローバルパラメータgparamは、例えば、ネットワークを介して公開され、他の鍵生成装置100や署名装置200や検証装置300が取得可能な状態にされる。
(S601:情報入力ステップ)
情報入力部130は、入力装置により、自己(その鍵生成装置100)に割り当てられた識別情報tを入力する。なお、各鍵生成装置100には、それぞれ異なる識別情報tが割り当てられている。
また、情報入力部130は、例えば、通信装置によりネットワークを介して、グローバルパラメータgparamを取得する。なお、自己がグローバルパラメータgparamを生成した鍵生成装置100である場合には、グローバルパラメータgparamをマスター鍵記憶部120から読み出せばよい。
管理者秘密鍵生成部112は、処理装置により、セキュリティパラメータλ(1λ)と、Nt=2nt+2+ut+wt+ztと、paramG:=(q,G,GT,g,e)の値とを入力としてアルゴリズムGdpvsを実行して、双対ペアリングベクトル空間のパラメータparamVt:=(q,Vt,GT,At,e)の値を生成する。
なお、nt,ut,wt,ztは、1以上の整数である。
管理者秘密鍵生成部112は、処理装置により、nt+ut+wt+ztと、Fqとを入力として、線形変換Xt:=(χt,i,j)i,jを数170に示すようにランダムに生成する。
管理者秘密鍵生成部112は、処理装置により、基底Bt及び基底B* tを数171に示すように生成する。
マスター鍵記憶部120は、(S602)で生成したパラメータparamVtと、(S606)で生成した部分基底B^t及び部分基底B^* tとを管理者公開パラメータapktとして記憶装置に記憶する。また、マスター鍵記憶部120は、(S604)で生成した線形変換Xtを管理者秘密鍵asktとして記憶装置に記憶する。
なお、管理者公開パラメータapktは、例えば、ネットワークを介して公開され、署名装置200や検証装置300が取得可能な状態にされる。
(S701:情報入力ステップ)
情報入力部130は、入力装置により、自己(その鍵生成装置100)に割り当てられた識別情報tと、署名鍵を発行するユーザの識別情報gidと、属性情報x→ t:=(xt,i)(i=1,...,nt)とを入力する。
また、情報入力部130は、例えば、通信装置によりネットワークを介して、グローバルパラメータgparamを取得する。なお、自己がグローバルパラメータgparamを生成した鍵生成装置100である場合には、グローバルパラメータgparamをマスター鍵記憶部120から読み出せばよい。
また、情報入力部130は、マスター鍵記憶部120から管理者秘密鍵asktを読み出す。
数176であるとする。
基底ベクトル1,...,ntの係数として(δj+1)xt,1,...,(δj+1)xt,nt(ここで、ntはntのことである)が設定される。基底tクトルnt+1,...,2ntの係数として−δjxt,1,...,−δjxt,nt(ここで、ntはntのことである)が設定される。基底ベクトル2nt+1,...,2nt+2+utの係数として0が設定される。基底ベクトル2nt+2+ut+1,...,2nt+2+ut+wtの係数として乱数φt,j、1,...,φt,j,wt(ここで、wtはwtのことである)が設定される。基底ベクトル2nt+2+ut+wt+1,...,2nt+2+ut+wt+ztの係数として0が設定される。
鍵配布部150は、ユーザの識別情報gidと、識別情報t及び属性情報x→ tと、鍵要素k* t,jとを要素とする署名鍵uskgid,(t,xt)を、例えば通信装置によりネットワークを介して秘密裡に署名装置200へ配布する。もちろん、署名鍵uskgid,(t,xt)は、他の方法により署名装置200へ配布されてもよい。
図16に示すように、署名装置200は、署名鍵取得部210、情報入力部220(第2情報入力部)、スパンプログラム計算部230、補完係数計算部240、署名データ生成部250、署名データ送信部260(署名データ出力部)を備える。
また、情報入力部220は、述語情報入力部221、メッセージ入力部222を備える。また、署名データ生成部250は、乱数生成部251、署名要素生成部255を備える。
(S801:署名鍵取得ステップ)
署名鍵取得部210は、例えば、通信装置によりネットワークを介して、各鍵生成装置100が生成した署名鍵uskgid,(t,xt)を取得する。また、署名鍵取得部210は、鍵生成装置100が生成したグローバルパラメータgparamを取得する。
述語情報入力部221は、入力装置により、アクセスストラクチャS:=(M,ρ)を入力する。なお、行列Mは、L行×r列の行列である。L,rは、1以上の整数である。
また、メッセージ入力部222は、入力装置により、署名を付すメッセージmを入力する。
なお、アクセスストラクチャSの行列Mの設定については、実現したいシステムの条件に応じて設定されるものである。
スパンプログラム計算部230は、処理装置により、(S802)で入力したアクセスストラクチャSが、(S801)で取得した署名鍵uskgid,(t,xt)に含まれる属性情報x→ tの集合Γを受理するか否かを判定する。
なお、アクセスストラクチャが属性の集合を受理するか否かの判定方法は、実施の形態1における「第3.関数型暗号を実現するための概念」で説明した通りである。
スパンプログラム計算部230は、アクセスストラクチャSが属性の集合Γを受理する場合(S803で受理)、処理を(S804)へ進める。一方、アクセスストラクチャSが属性情報x→ tの集合Γを拒絶する場合(S803で拒絶)、処理を終了する。
補完係数計算部430は、処理装置により、数179となるIと、Iに含まれる各整数iについて定数(補完係数)αiとを計算する。
署名要素生成部255は、処理装置により、i=1,...,Lの各整数iについて、署名データσの要素である署名要素s* iを数181に示すように生成する。
署名データ送信部260は、署名要素s* i(i=1,...,L)と、メッセージmと、アクセスストラクチャS:=(M,ρ)と、g0:=g4 ξ2(ここで、ξ2はξ2である)とを含む署名データσを、例えば通信装置によりネットワークを介して検証装置300へ送信する。もちろん、署名データσは、他の方法により検証装置300へ送信されてもよい。
図17に示すように、検証装置300は、公開パラメータ取得部310、データ受信部320(データ取得部)、検証鍵生成部330、ペアリング演算部340を備える。
また、検証鍵生成部330は、乱数生成部331、fベクトル生成部332、sベクトル生成部333、検証要素生成部337を備える。
(S901:公開パラメータ取得ステップ)
公開パラメータ取得部310は、例えば、通信装置によりネットワークを介して、各鍵生成装置100が生成したグローバルパラメータgparamと、管理者公開パラメータapktとを取得する。
データ受信部320は、例えば、通信装置によりネットワークを介して、署名装置200が送信した署名データσを受信する。
sベクトル生成部333は、処理装置により、(S902)で受信した署名データσに含まれるアクセスストラクチャSの(L行×r列)の行列Mと、(S903)で生成したr個の要素を有するベクトルf→とに基づき、ベクトルs→Tを数186に示すように生成する。
sベクトル生成部333は、処理装置により、(L行×r列)の行列Mと、r個の要素を有するベクトルf→’とに基づき、ベクトル(s→’)Tを数189に示すように生成する。
検証要素生成部337は、処理装置により、i=1,...,Lの各整数iについて、検証鍵の要素である検証要素ciを数191に示すように生成する。
ρ(i)が肯定形の組(t,v→ i)である場合には、基底ベクトル1の係数としてsi+θivi,1が設定される。基底ベクトル2,...,ntの係数としてθivi,2,...,θivi,nt(ここで、ntはntのことである)が設定される。基底ベクトルnt+1の係数としてsi’+θi’vi,1が設定される。基底ベクトルnt+2,...,2ntの係数としてθi’vi,2,...,θi’vi,nt(ここで、ntはntのことである)が設定される。基底ベクトル2nt+1の係数としてσi−θi’’H2(m,S)が設定される。なお、H2(m,S)とは、ハッシュ関数H2の入力として、メッセージmとアクセスストラクチャSとが与えられることを意味する。例えば、H2(m||S)としてもよい。基底ベクトル2nt+2の係数としてθi’’が設定される。基底ベクトル2nt+2+1,...,2nt+2+ut+wtの係数として0が設定される。基底ベクトル2nt+2+ut+wt+1,...,2nt+2+ut+wt+ztの係数としてηi,1,...,ηi,zt(ここで、ztはztのことである)が設定される。
一方、ρ(i)が否定形の組¬(t,v→ i)である場合には、基底ベクトル1,...,ntの係数としてsivi,1,...,sivi,nt(ここで、ntはntのことである)が設定される。基底ベクトルnt+1,...,2ntの係数としてsi’vi,1,...,si’vi,nt(ここで、ntはntのことである)が設定される。基底ベクトル2nt+1の係数としてσi−θi’’H2(m,S)が設定される。基底ベクトル2nt+2の係数としてθi’’が設定される。基底ベクトル2nt+2+1,...,2nt+2+ut+wtの係数として0が設定される。基底ベクトル2nt+2+ut+wt+1,...,2nt+2+ut+wt+ztの係数としてηi,1,...,ηi,zt(ここで、ztはztのことである)が設定される。
ペアリング演算部340は、処理装置により、数192に示すペアリング演算を計算する。
なお、数193に示すように、数192を計算することにより、署名データσが正当なものであれば、値1が得られる。
なお、実施の形態2に係る署名処理システム10は、実施の形態1に係る署名処理システム10と同様に、ノンモノトーン述語を伴う属性ベース署名方式を実現する。
この場合、数168に示すGSetupアルゴリズムは、数195のように書き換えられる。
また、上記説明では、GSetupアルゴリズムとASetupアルゴリズムとKeyGenアルゴリズムとを鍵生成装置100が実行するとしたが、GSetupアルゴリズムとASetupアルゴリズムとKeyGenアルゴリズムとをそれぞれ異なる装置が実行するとしてもよい。
以上の実施の形態では、双対ベクトル空間において署名処理を実現する方法について説明した。この実施の形態では、双対加群において署名処理を実現する方法について説明する。
言い替えると、ρ(i)=(t,v→ i)又はρ(i)=¬(t,v→ i)である場合に、関数ρ〜を、ρ〜(i)=tである{1,...,L}→{1,..,d}の写像であるとする。この場合、ρ〜が単射であると限定してもよい。なお、ρ(i)は、上述したアクセスストラクチャS:=(M,ρ(i))のρ(i)である。
この場合、KeyGenアルゴリズムにおいて、s0:=1→・f→Tではなく、s0:=h→・f→Tとすればよい。
図23は、鍵生成装置100、署名装置200、検証装置300のハードウェア構成の一例を示す図である。
図23に示すように、鍵生成装置100、署名装置200、検証装置300は、プログラムを実行するCPU911(Central・Processing・Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。CPU911は、バス912を介してROM913、RAM914、LCD901(Liquid Crystal Display)、キーボード902(K/B)、通信ボード915、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置920(固定ディスク装置)の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。磁気ディスク装置920は、所定の固定ディスクインタフェースを介して接続される。
ファイル群924には、上記の説明において「公開パラメータ」、「マスター鍵」、「署名データσ」、「署名鍵」、「アクセスストラクチャS」、「属性情報」、「属性の集合Γ」、「メッセージm」等の情報やデータや信号値や変数値やパラメータが、「ファイル」や「データベース」の各項目として記憶される。「ファイル」や「データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのCPU911の動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のCPU911の動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、上記の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。また、「〜装置」として説明するものは、「〜回路」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。さらに、「〜処理」として説明するものは「〜ステップ」であっても構わない。すなわち、「〜部」として説明するものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、ROM913等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラムは、上記で述べた「〜部」としてコンピュータ等を機能させるものである。あるいは、上記で述べた「〜部」の手順や方法をコンピュータ等に実行させるものである。
Claims (16)
- 鍵生成装置と署名装置と検証装置とを備え、t=0,...,d+1(dは1以上の整数)の各整数tについての基底Btと基底B* tとを用いて署名処理を実行する署名処理システムであり、
前記鍵生成装置は、
t=1,...,dの少なくとも1つ以上の整数tについて、識別情報tと、属性情報x→ t:=(xt,i)(i=1,...,nt,ntは1以上の整数)とを含む属性集合Γを入力する第1情報入力部と、
基底B* 0の基底ベクトルb* 0,1の係数として所定の値δを設定した鍵要素k* 0を生成する鍵要素0生成部と、
前記第1情報入力部が入力した属性集合Γに含まれる各識別情報tについて、基底B* tの基底ベクトルb* t,i(i=1,...,nt)の係数として属性情報x→ tに前記所定の値δを乗じたδxt,i(i=1,...,nt)を設定した鍵要素k* tを生成する鍵要素t生成部と、
基底B* d+1の基底ベクトルb* d+1,1の係数として前記所定の値δを設定した鍵要素k* d+1,1と、基底B* d+1の基底ベクトルb* d+1,2の係数として前記所定の値δを設定した鍵要素k* d+1,2とを生成する鍵要素d+1生成部と、
前記鍵要素0生成部が生成した鍵要素k* 0と、前記鍵要素t生成部が生成した前記属性集合Γに含まれる各識別情報tについての鍵要素k* tと、前記鍵要素d+1生成部が生成した鍵要素k* d+1,1及び鍵要素k* d+1,2と、前記属性集合Γとを含む署名鍵skΓを前記署名装置へ送信する署名鍵送信部と
を備え、
前記署名装置は、
i=1,...,L(Lは1以上の整数)の各整数iについての変数ρ(i)であって、識別情報t(t=1,...,dのいずれかの整数)と、属性情報v→ i:=(vi,i’)(i’=1,...,nt)との肯定形の組(t,v→ i)又は否定形の組¬(t,v→ i)のいずれかである変数ρ(i)と、L行r列(rは1以上の整数)の所定の行列Mと、メッセージmとを入力する第2情報入力部と、
前記署名鍵送信部が送信した署名鍵skΓを取得する署名鍵取得部と、
前記第2情報入力部が入力した変数ρ(i)と、前記署名鍵取得部が取得した署名鍵skΓに含まれる属性集合Γとに基づき、i=1,...,Lの各整数iのうち、変数ρ(i)が肯定形の組(t,v→ i)であり、かつ、その組のv→ iと、その組の識別情報tが示す属性集合Γに含まれるx→ tとの内積が0となるiと、変数ρ(i)が否定形の組¬(t,v→ i)であり、かつ、その組のv→ iと、その組の識別情報tが示す属性集合Γに含まれるx→ tとの内積が0とならないiとの集合Iを特定するとともに、特定した集合Iに含まれるiについて、前記第2情報入力部が入力した行列Mのi行目の要素であるMiに基づき、αiMiを合計した場合に所定のベクトルh→となる補完係数αiを計算する補完係数計算部と、
前記署名鍵skΓに含まれる鍵要素k* 0を含む署名要素s* 0を生成する署名要素0生成部と、
i=1,...,Lの各整数iについて、前記補完係数計算部が特定した集合Iに含まれる整数iであり、かつ、変数ρ(i)が肯定形の組(t,v→ i)である場合には値γi:=αiとし、前記集合Iに含まれるiであり、かつ、変数ρ(i)が否定形の組¬(t,v→ i)である場合には値γi:=αi/(v→ i・x→ t)とし、前記集合Iに含まれない整数iの場合には値γi:=0として、前記署名鍵skΓに含まれる鍵要素k* tに前記値γiを乗じたγik* tを含む署名要素s* iを生成する署名要素i生成部と、
前記署名鍵skΓに含まれる鍵要素k* d+1,1と、前記メッセージmを用いて生成される値m’を前記鍵要素k* d+1,2に乗じたm’・k* d+1,2との和を含む署名要素s* L+1を生成する署名要素L+1生成部と、
前記署名要素0生成部が生成した署名要素s* 0と、前記署名要素i生成部が生成したi=1,...,Lの各整数iについての署名要素s* iと、前記署名要素L+1生成部が生成した署名要素s* L+1と、前記メッセージmと、前記変数ρ(i)と、前記行列Mとを含む署名データσを前記検証装置へ送信する署名データ送信部と
を備え、
前記検証装置は、
前記署名データ送信部が送信した署名データσを取得するデータ取得部と、
r個の要素を有するベクトルf→と前記ベクトルh→と用いて生成される値s0:=h→・f→Tと、所定の値sL+1とから計算される−s0−sL+1を、基底B0の基底ベクトルb0,1の係数として設定して検証要素c0を生成する検証要素0生成部と、
前記ベクトルf→と前記データ取得部が取得した署名データσに含まれる行列Mとに基づき生成される列ベクトルs→T:=(s1,...,sL)T:=M・f→Tと、i=1,...,Lの各整数iについての所定の値θiとを用いて、i=1,...,Lの各整数iについて、変数ρ(i)が肯定形の組(t,v→ i)である場合には、その組の識別情報tが示す基底Btの基底ベクトルbt,1の係数としてsi+θivi,1を設定し、基底ベクトルbt,i’(i’=2,...,nt)の係数としてθivi,i’(i’=2,...,nt)を設定して検証要素ciを生成し、変数ρ(i)が否定形の組¬(t,v→ i)である場合には、その組の識別情報tが示す基底ベクトルbt,i’(i’=1,...,nt)の係数としてsivi,i’(i’=1,...,nt)を設定して検証要素ciを生成する検証要素i生成部と、
基底Bd+1の基底ベクトルbd+1,1の係数として、前記所定の値sL+1と前記値m’と所定の値θL+1とから計算されるsL+1−θL+1m’を設定し、基底ベクトルbd+1,2の係数として前記所定の値θL+1を設定して検証要素cL+1を生成する検証要素L+1生成部と、
前記検証要素0生成部が生成した検証要素c0と、前記検証要素i生成部が生成した検証要素ciと、前記検証要素L+1生成部が生成した検証要素cL+1と、前記署名データσに含まれる署名要素s* 0,s* i,s* L+1とについて、ペアリング演算Πi=0 L+1e(ci,s* i)を行い、前記署名データσの正当性を検証するペアリング演算部と
を備えることを特徴とする署名処理システム。 - 前記署名処理システムは、
少なくとも基底ベクトルbt,i(i=1,...,1+u0,...,1+u0+w0,...,1+u0+w0+z0)を有する基底B0と、
少なくとも基底ベクトルbt,i(i=1,...,nt,...,nt+ut,...,nt+ut+wt,...,nt+ut+wt+zt)(ut,wt,ztは1以上の整数)を有する基底Bt(t=1,...,d)と、
少なくとも基底ベクトルbt,i(i=1,2,...,2+ud+1,...,2+ud+1+wd+1,...,2+ud+1+wd+1+zd+1)を有する基底Bd+1と、
少なくとも基底ベクトルb* t,i(i=1,...,1+u0,...,1+u0+w0,...,1+u0+w0+z0)を有する基底B* 0と、
少なくとも基底ベクトルb* t,i(i=1,...,nt,...,nt+ut,...,nt+ut+wt,...,nt+ut+wt+zt)(ut,wt,ztは1以上の整数)を有する基底B* t(t=1,...,d)と、
少なくとも基底ベクトルb* t,i(i=1,2,...,2+ud+1,...,2+ud+1+wd+1,...,2+ud+1+wd+1+zd+1)を有する基底B* d+1と
を用いて署名処理を実行し、
前記鍵生成装置では、
前記鍵要素0生成部は、乱数δと乱数φ0,i(i=1,...,w0)とに基づき、数1に示す鍵要素k* 0を生成し、
前記鍵要素t生成部は、前記乱数δと乱数φt,i(i=1,...,wt)とに基づき、前記属性集合Γに含まれる各識別情報tについて、数2に示す鍵要素k* tを生成し、
前記鍵要素d+1生成部は、前記乱数δと乱数φd+1,1,i(i=1,...,wd+1)と乱数φd+1,2,i(i=1,...,wd+1)とに基づき、数3に示す鍵要素k* d+1,1と鍵要素k* d+1,2とを生成し、
前記署名装置では、
前記署名要素0生成部は、乱数ξに基づき、数4に示す署名要素s* 0を生成し、
前記署名要素i生成部は、i=1,...,Lの各整数iについて、前記乱数ξに基づき、数5に示す署名要素s* iを生成し、
前記署名要素L+1生成部は、前記乱数ξと前記値m’とに基づき、数6に示す署名要素s* L+1を生成し、
前記検証装置では、
前記検証要素0生成部は、前記値s0と乱数sL+1と乱数η0,i(i=1,...,z0)とに基づき、数7に示す検証要素c0を生成し、
前記検証要素i生成部は、前記列ベクトルs→Tと乱数θiと乱数ηi,i’(i=1,...,L;i’=1,...,zt)とに基づき、i=1,...,Lの各整数iについて、数8に示す検証要素ciを生成し、
前記検証要素L+1生成部は、前記乱数sL+1と乱数θL+1と乱数ηL+1,i’(i’=1,...,zd+1)と前記値m’とに基づき、数9に示す検証要素cL+1を生成する
ことを特徴とする請求項1に記載の署名処理システム。
- 前記署名装置では、
前記署名要素L+1生成部は、前記メッセージmと、前記行列Mと、i=1,...,Lの各整数iについての前記変数ρ(i)とを入力としたハッシュ値を前記値m’として用いて、署名要素s* L+1を生成し、
前記検証装置では、
前記検証要素L+1生成部は、前記ハッシュ値を前記値m’として用いて、検証要素cL+1を生成する
ことを特徴とする請求項1又は2に記載の署名処理システム。 - t=0,...,d+1(dは1以上の整数)の各整数tについての基底Btと基底B* tとを用いて署名処理を実行する署名処理システムにおいて、署名鍵skΓを生成する鍵生成装置であり、
t=1,...,dの少なくとも1つ以上の整数tについて、識別情報tと、属性情報x→ t:=(xt,i)(i=1,...,nt,ntは1以上の整数)とを含む属性集合Γを入力する第1情報入力部と、
基底B* 0の基底ベクトルb* 0,1の係数として所定の値δを設定した鍵要素k* 0を生成する鍵要素0生成部と、
前記第1情報入力部が入力した属性集合Γに含まれる各識別情報tについて、基底B* tの基底ベクトルb* t,i(i=1,...,nt)の係数として属性情報x→ tに前記所定の値δを乗じたδxt,i(i=1,...,nt)を設定した鍵要素k* tを生成する鍵要素t生成部と、
基底B* d+1の基底ベクトルb* d+1,1の係数として前記所定の値δを設定した鍵要素k* d+1,1と、基底B* d+1の基底ベクトルb* d+1,2の係数として前記所定の値δを設定した鍵要素k* d+1,2とを生成する鍵要素d+1生成部と、
前記鍵要素0生成部が生成した鍵要素k* 0と、前記鍵要素t生成部が生成した前記属性集合Γに含まれる各識別情報tについての鍵要素k* tと、前記鍵要素d+1生成部が生成した鍵要素k* d+1,1及び鍵要素k* d+1,2と、前記属性集合Γとを含む署名鍵skΓを署名装置へ送信する署名鍵送信部と
を備えることを特徴とする鍵生成装置。 - t=0,...,d+1(dは1以上の整数)の各整数tについての基底Btと基底B* tとを用いて署名処理を実行する署名処理システムにおいて、署名データσを生成する署名装置であり、
t=1,...,dの少なくとも1つ以上の整数tについて、識別情報tと、属性情報x→ t:=(xt,i)(i=1,...,nt,ntは1以上の整数)とを含む属性集合Γと、
基底B* 0の基底ベクトルb* 0,1の係数として所定の値δが設定された鍵要素k* 0と、
前記第1情報入力部が入力した属性集合Γに含まれる各識別情報tについて、基底B* tの基底ベクトルb* t,i(i=1,...,nt)の係数として属性情報x→ tに前記所定の値δを乗じたδxt,i(i=1,...,nt)が設定された鍵要素k* tと、
基底B* d+1の基底ベクトルb* d+1,1の係数として前記所定の値δが設定された鍵要素k* d+1,1と、
基底B* d+1の基底ベクトルb* d+1,2の係数として前記所定の値δが設定された鍵要素k* d+1,2と
を署名鍵skΓとして取得する署名鍵取得部と、
i=1,...,L(Lは1以上の整数)の各整数iについての変数ρ(i)であって、識別情報t(t=1,...,dのいずれかの整数)と、属性情報v→ i:=(vi,i’)(i’=1,...,nt)との肯定形の組(t,v→ i)又は否定形の組¬(t,v→ i)のいずれかである変数ρ(i)と、L行r列(rは1以上の整数)の所定の行列Mと、メッセージmとを入力する第2情報入力部と、
前記第2情報入力部が入力した変数ρ(i)と、前記署名鍵取得部が取得した署名鍵skΓに含まれる属性集合Γとに基づき、i=1,...,Lの各整数iのうち、変数ρ(i)が肯定形の組(t,v→ i)であり、かつ、その組のv→ iと、その組の識別情報tが示す属性集合Γに含まれるx→ tとの内積が0となるiと、変数ρ(i)が否定形の組¬(t,v→ i)であり、かつ、その組のv→ iと、その組の識別情報tが示す属性集合Γに含まれるx→ tとがの内積が0とならないiとの集合Iを特定するとともに、特定した集合Iに含まれるiについて、前記第2情報入力部が入力した行列Mのi行目の要素であるMiに基づき、αiMiを合計した場合に所定のベクトルh→となる補完係数αiを計算する補完係数計算部と、
前記署名鍵skΓに含まれる鍵要素k* 0を含む署名要素s* 0を生成する署名要素0生成部と、
i=1,...,Lの各整数iについて、前記補完係数計算部が特定した集合Iに含まれる整数iであり、かつ、変数ρ(i)が肯定形の組(t,v→ i)である場合には値γi:=αiとし、前記集合Iに含まれるiであり、かつ、変数ρ(i)が否定形の組¬(t,v→ i)である場合には値γi:=αi/(v→ i・x→ t)とし、前記集合Iに含まれない整数iの場合には値γi:=0として、前記署名鍵skΓに含まれる鍵要素k* tに前記値γiを乗じたγik* tを含む署名要素s* iを生成する署名要素i生成部と、
前記署名鍵skΓに含まれる鍵要素k* d+1,1と、前記メッセージmを用いて生成される値m’を前記鍵要素k* d+1,2に乗じたm’・k* d+1,2との和を含む署名要素s* L+1を生成する署名要素L+1生成部と、
前記署名要素0生成部が生成した署名要素s* 0と、前記署名要素i生成部が生成したi=1,...,Lの各整数iについての署名要素s* iと、前記署名要素L+1生成部が生成した署名要素s* L+1と、前記メッセージmと、前記変数ρ(i)と、前記行列Mとを含む署名データσを検証装置へ送信する署名データ送信部と
を備えることを特徴とする署名装置。 - t=0,...,d+1(dは1以上の整数)の各整数tについての基底Btと基底B* tとを用いて署名処理を実行する署名処理システムにおいて、署名データσを検証する検証装置であり、
署名要素s* 0と、i=1,...,Lの各整数iについての署名要素s* iと、署名要素s* L+1と、メッセージmと、i=1,...,L(Lは1以上の整数)の各整数iについての変数ρ(i)であって、識別情報t(t=1,...,dのいずれかの整数)と、属性情報v→ i:=(vi,i’)(i’=1,...,nt)との肯定形の組(t,v→ i)又は否定形の組¬(t,v→ i)のいずれかである変数ρ(i)と、L行r列(rは1以上の整数)の所定の行列Mとを含む署名データσを取得するデータ取得部と、
r個の要素を有するベクトルf→とr個の要素を有するベクトルh→と用いて生成される値s0:=h→・f→Tと、所定の値sL+1とから計算される−s0−sL+1を、基底B0の基底ベクトルb0,1の係数として設定して検証要素c0を生成する検証要素0生成部と、
前記ベクトルf→と前記データ取得部が取得した署名データσに含まれる行列Mとに基づき生成される列ベクトルs→T:=(s1,...,sL)T:=M・f→Tと、i=1,...,Lの各整数iについての所定の値θiとを用いて、i=1,...,Lの各整数iについて、変数ρ(i)が肯定形の組(t,v→ i)である場合には、その組の識別情報tが示す基底Btの基底ベクトルbt,1の係数としてsi+θivi,1を設定し、基底ベクトルbt,i’(i’=2,...,nt)の係数としてθivi,i’(i’=2,...,nt)を設定して検証要素ciを生成し、変数ρ(i)が否定形の組¬(t,v→ i)である場合には、その組の識別情報tが示す基底ベクトルbt,i’(i’=1,...,nt)の係数としてsivi,i’(i’=1,...,nt)を設定して検証要素ciを生成する検証要素i生成部と、
基底Bd+1の基底ベクトルbd+1,1の係数として、前記所定の値sL+1と前記値m’と所定の値θL+1とから計算されるsL+1−θL+1m’を設定し、基底ベクトルbd+1,2の係数として前記所定の値θL+1を設定して検証要素cL+1を生成する検証要素L+1生成部と、
前記検証要素0生成部が生成した検証要素c0と、前記検証要素i生成部が生成した検証要素ciと、前記検証要素L+1生成部が生成した検証要素cL+1と、前記署名データσに含まれる署名要素s* 0,s* i,s* L+1とについて、ペアリング演算Πi=0 L+1e(ci,s* i)を行い、前記署名データσの正当性を検証するペアリング演算部と
を備えることを特徴とする検証装置。 - d個(dは1以上の整数)の鍵生成装置と、署名装置と、検証装置とを備え、t=1,...,dの少なくとも1つ以上の整数tについての基底Btと基底B* tとを用いて署名処理を実行する署名処理システムであり、
前記d個の鍵生成装置の各鍵生成装置は、
t=1,...,dのうち鍵生成装置毎に予め定められた整数tについての属性情報x→ t:=(xt,i)(i=1,...,nt,ntは1以上の整数)を入力する第1情報入力部と、
前記整数tと、j=1,2の各整数jについて、前記第1情報入力部が入力した属性情報x→ tと、所定の値δjと、所定の値Δと、基底B* tの基底ベクトルb* t,i(i=1,...,2nt)とに基づき、数10に示すベクトルを含む鍵要素k* t,jを生成する鍵要素生成部と、
前記鍵要素生成部が生成した鍵要素k* t,jと、前記属性情報x→ tとを含む署名鍵uskを前記署名装置へ送信する署名鍵送信部と
を備え、
前記署名装置は、
i=1,...,L(Lは1以上の整数)の各整数iについての変数ρ(i)であって、識別情報t(t=1,...,dのいずれかの整数)と、属性情報v→ i:=(vi,i’)(i’=1,...,nt)との肯定形の組(t,v→ i)又は否定形の組¬(t,v→ i)のいずれかである変数ρ(i)と、L行r列(rは1以上の整数)の所定の行列Mと、メッセージmとを入力する第2情報入力部と、
前記d個の鍵生成装置のうち、少なくとも1つ以上の鍵生成装置の署名鍵送信部が送信した署名鍵uskを取得する署名鍵取得部と、
前記第2情報入力部が入力した変数ρ(i)と、前記署名鍵取得部が取得した署名鍵uskに含まれる属性情報xtとに基づき、i=1,...,Lの各整数iのうち、変数ρ(i)が肯定形の組(t,v→ i)であり、かつ、その組の識別情報tが示すxtを含む署名鍵uskを前記署名鍵取得部が取得しており、かつ、その組のv→ iと、その組の識別情報tが示す属性情報x→ tとの内積が0となるiと、変数ρ(i)が否定形の組¬(t,v→ i)であり、かつ、その組の識別情報tが示すx→ tを含む署名鍵uskを前記署名鍵取得部が取得しており、かつ、その組のv→ iと、その組の識別情報tが示す属性情報x→ tとの内積が0とならないiとの集合Iを特定するとともに、特定した集合Iに含まれるiについて、前記第2情報入力部が入力した行列Mのi行目の要素であるMiに基づき、αiMiを合計した場合に所定のベクトルh→となる補完係数αiを計算する補完係数計算部と、
前記署名鍵uskに含まれる鍵要素k* t,1及び鍵要素k* t,2と、所定の値ξ1,Ε,μと、前記メッセージmから計算される値m’とに基づき、i=1,...,Lの各整数iについて、前記補完係数計算部が特定した集合Iに含まれる整数iであり、かつ、変数ρ(i)が肯定形の組(t,v→ i)である場合には値γi:=αiとし、前記集合Iに含まれるiであり、かつ、変数ρ(i)が否定形の組¬(t,v→ i)である場合には値γi:=αi/(vi・xt)とし、前記集合Iに含まれない整数iの場合には値γi:=0として、基底B* tの基底ベクトルb* t,i(i=2nt+1,2nt+2)を用いて、数11に示すベクトルを含む署名要素s* iを生成する署名要素生成部と、
前記署名要素生成部が生成したi=1,...,Lの各整数iについての署名要素s* iと、前記メッセージmと、前記変数ρ(i)と、前記行列Mとを含む署名データσを前記検証装置へ送信する署名データ送信部と
を備え、
前記検証装置は、
前記署名データ送信部が送信した署名データσを取得するデータ取得部と、
r個の要素を有するベクトルf→と、前記データ取得部が取得した署名データσに含まれる行列Mとに基づき列ベクトルs→T:=(s1,...,sL)T:=M・f→Tを生成するとともに、s0:=h→・f→Tとして、s0=h→・(f→’)Tであるr個の要素を有するベクトルf→’と、前記行列Mとに基づき列ベクトル(s→’)T:=(s1’,...,sL’)T:=M・(f→’)Tを生成するベクトル生成部と、
前記ベクトル生成部が生成した列ベクトルs→T及び列ベクトル(s→’)Tと、i=1,...,Lの各整数iについての所定の値θi,θi’,θi’’,σiとに基づき、i=1,...,Lの各整数iについて、変数ρ(i)が肯定形の組(t,v→ i)である場合には、その組の識別情報tが示す基底Btの基底ベクトルbt,i’(i’=1,...,2nt+2)を用いて、数12に示すベクトルを含む検証要素ciを生成し、変数ρ(i)が否定形の組¬(t,v→ i)である場合には、その組の識別情報tが示す基底ベクトルbt,i(i’=1,...,2nt+2)を用いて、数13に示すベクトルを含む検証要素ciを生成する検証要素生成部と、
前記検証要素生成部が生成した検証要素ciと、前記署名データσに含まれる署名要素s* iとについて、ペアリング演算Πi=1 Le(ci,s* i)を行い、前記署名データσの正当性を検証するペアリング演算部と
を備えることを特徴とする署名処理システム。
- 前記署名処理システムは、
t=1,...,dの少なくとも1つ以上の整数tについて、少なくとも基底ベクトルbt,i(i=1,...,2nt+2,...,2nt+2+ut,...,2nt+2+ut+wt,...,2nt+2+ut+wt+zt)(ut,wt,ztは1以上の整数)を有する基底Btと、少なくとも基底ベクトルb* t,i(i=1,...,2nt+2,...,2nt+2+ut,...,2nt+2+ut+wt,...,2nt+2+ut+wt+zt)を有する基底B* tとを用いて署名処理を実行し、
前記鍵生成装置では、
前記属性情報x→ tと前記所定の値δj,Δと乱数φt,j,i(j=1,2;i=1,...,wt)とに基づき、前記整数tと、j=1,2の各整数jについて、数14に示す鍵要素k* t,jを生成し、
前記署名装置では、
前記署名要素生成部は、前記鍵要素k* t,1及び前記鍵要素k* t,2と乱数ξ1,ξ2と所定の値Ε,π,π’,μと前記値m’とに基づき、i=1,...,Lの各整数iについて、数15に示すr* i,γi,y→ i:=(yi,i)(i=1,...,nt),y’→ i:=(y’i,i)(i=1,...,nt)を用いて、数16に示す署名要素s* iを生成し、
前記検証装置では、
前記検証要素生成部は、前記列ベクトルs→T及び前記列ベクトル(s→’)Tと乱数θi,θi’,θi’’と前記所定の値σiと乱数ηi,i’(i=1,...,L;i’=1,...,zt)とに基づき、i=1,...,Lの各整数iについて、変数ρ(i)が肯定形の組(t,v→ i)である場合には、数17に示す検証要素ciを生成し、変数ρ(i)が否定形の組¬(t,v→ i)である場合には、数18に示す検証要素ciを生成する
ことを特徴とする請求項7に記載の署名処理システム。
- 前記署名装置では、
前記署名要素生成部は、前記メッセージmと、前記行列Mと、i=1,...,Lの各整数iについての前記変数ρ(i)とを入力としたハッシュ値を前記値m’として用いて、署名要素s* iを生成し、
前記検証装置では、
前記検証要素生成部は、前記ハッシュ値を前記値m’として用いて、検証要素ciを生成する
ことを特徴とする請求項7又は8に記載の署名処理システム。 - t=1,...,dの少なくとも1つ以上の整数tについての基底Btと基底B* tとを用いて署名処理を実行する署名処理システムにおいて、署名鍵uskを生成する鍵生成装置であり、
t=1,...,dのうち所定の整数tについて、属性情報x→ t:=(xt,i)(i=1,...,nt)を入力する第1情報入力部と、
前記整数tと、j=1,2の各整数jについて、前記第1情報入力部が入力した属性情報x→ tと、所定の値δjと、所定の値Δと、基底B* tの基底ベクトルb* t,i(i=1,...,2nt)とに基づき、数19に示すベクトルを含む鍵要素k* t,jを生成する鍵要素生成部と、
前記鍵要素生成部が生成した鍵要素k* t,jと、前記属性情報x→ tとを含む署名鍵uskを署名装置へ送信する署名鍵送信部と
を備えることを特徴とする鍵生成装置。
- t=1,...,dの少なくとも1つ以上の整数tについての基底Btと基底B* tとを用いて署名処理を実行する署名処理システムにおいて、署名データσを生成する署名装置であり、
t=1,...,dのうち少なくとも一部の整数tと、j=1,2の各整数jとについて、属性情報x→ t:=(xt,i)(i=1,...,nt)と、所定の値δjと、所定の値Δと、基底B* tの基底ベクトルb* t,i(i=1,...,2nt)とに基づき、数20に示すベクトルを含むように生成された鍵要素k* t,jと、前記属性情報x→ tとを含む署名鍵uskを取得する署名鍵取得部と、
i=1,...,L(Lは1以上の整数)の各整数iについての変数ρ(i)であって、識別情報t(t=1,...,dのいずれかの整数)と、属性情報v→ i:=(vi,i’)(i’=1,...,nt)との肯定形の組(t,v→ i)又は否定形の組¬(t,v→ i)のいずれかである変数ρ(i)と、L行r列(rは1以上の整数)の所定の行列Mと、メッセージmとを入力する第2情報入力部と、
前記第2情報入力部が入力した変数ρ(i)と、前記署名鍵取得部が取得した署名鍵uskに含まれる属性情報x→ tとに基づき、i=1,...,Lの各整数iのうち、変数ρ(i)が肯定形の組(t,v→ i)であり、かつ、その組の識別情報tが示すx→ tを含む署名鍵uskを前記署名鍵取得部が取得しており、かつ、その組のv→ iと、その組の識別情報tが示す属性情報x→ tとの内積が0となるiと、変数ρ(i)が否定形の組¬(t,v→ i)であり、かつ、その組の識別情報tが示すx→ tを含む署名鍵uskを前記署名鍵取得部が取得しており、かつ、その組のv→ iと、その組の識別情報tが示す属性情報x→ tとの内積が0とならないが等しくないiとの集合Iを特定するとともに、特定した集合Iに含まれるiについて、前記第2情報入力部が入力した行列Mのi行目の要素であるMiに基づき、αiMiを合計した場合に所定のベクトルh→となる補完係数αiを計算する補完係数計算部と、
前記署名鍵uskに含まれる鍵要素k* t,1及び鍵要素k* t,2と、所定の値ξ1,Ε,μと、前記メッセージmから計算される値m’とに基づき、i=1,...,Lの各整数iについて、前記補完係数計算部が特定した集合Iに含まれる整数iであり、かつ、変数ρ(i)が肯定形の組(t,v→ i)である場合には値γi:=αiとし、前記集合Iに含まれるiであり、かつ、変数ρ(i)が否定形の組¬(t,v→ i)である場合には値γi:=αi/(v→ i・x→ t)とし、前記集合Iに含まれない整数iの場合には値γi:=0として、基底B* tの基底ベクトルb* t,i(i=2nt+1,2nt+2)を用いて、数21に示すベクトルを含む署名要素s* iを生成する署名要素生成部と、
前記署名要素生成部が生成したi=1,...,Lの各整数iについての署名要素s* iと、前記メッセージmと、前記変数ρ(i)と、前記行列Mとを含む署名データσを前記検証装置へ送信する署名データ送信部と
を備えることを特徴とする署名装置。
- t=1,...,dの少なくとも1つ以上の整数tについての基底Btと基底B* tとを用いて署名処理を実行する署名処理システムにおいて、署名データσを検証する検証装置であり、
i=1,...,Lの各整数iについての署名要素s* iと、メッセージmと、i=1,...,L(Lは1以上の整数)の各整数iについての変数ρ(i)であって、識別情報t(t=1,...,dのいずれかの整数)と、属性情報v→ i:=(vi,i’)(i’=1,...,nt)との肯定形の組(t,v→ i)又は否定形の組¬(t,v→ i)のいずれかである変数ρ(i)と、L行r列(rは1以上の整数)の所定の行列Mとを含む署名データσを取得するデータ取得部と、
r個の要素を有するベクトルf→と、前記データ取得部が取得した署名データσに含まれる行列Mとに基づき列ベクトルs→T:=(s1,...,sL)T:=M・f→Tを生成するとともに、s0:=h→・f→Tとして、s0=h→・(f→’)Tであるr個の要素を有するベクトルf→’と、前記行列Mとに基づき列ベクトル(s→’)T:=(s1’,...,sL’)T:=M・(f→’)Tを生成するベクトル生成部と、
前記ベクトル生成部が生成した列ベクトルs→T及び列ベクトル(s→’)Tと、i=1,...,Lの各整数iについての所定の値θi,θi’,θi’’,σiとに基づき、i=1,...,Lの各整数iについて、変数ρ(i)が肯定形の組(t,v→ i)である場合には、その組の識別情報tが示す基底Btの基底ベクトルbt,i’(i’=1,...,2nt+2)を用いて、数22に示すベクトルを含む検証要素ciを生成し、変数ρ(i)が否定形の組¬(t,v→ i)である場合には、その組の識別情報tが示す基底ベクトルbt,i(i’=1,...,2nt+2)を用いて、数23に示すベクトルを含む検証要素ciを生成する検証要素生成部と、
前記検証要素生成部が生成した検証要素ciと、前記署名データσに含まれる署名要素s* iとについて、ペアリング演算Πi=1 Le(ci,s* i)を行い、前記署名データσの正当性を検証するペアリング演算部と
を備えることを特徴とする検証装置。
- t=0,...,d+1(dは1以上の整数)の各整数tについての基底Btと基底B* tとを用いて署名処理を実行する署名処理方法であり、
鍵生成装置が、t=1,...,dの少なくとも1つ以上の整数tについて、識別情報tと、属性情報x→ t:=(xt,i)(i=1,...,nt,ntは1以上の整数)とを含む属性集合Γを入力する第1情報入力工程と、
前記鍵生成装置が、基底B* 0の基底ベクトルb* 0,1の係数として所定の値δを設定した鍵要素k* 0を生成する鍵要素0生成工程と、
前記鍵生成装置が、前記第1情報入力工程で入力された属性集合Γに含まれる各識別情報tについて、基底B* tの基底ベクトルb* t,i(i=1,...,nt)の係数として属性情報x→ tに前記所定の値δを乗じたδxt,i(i=1,...,nt)を設定した鍵要素k* tを生成する鍵要素t生成工程と、
前記鍵生成装置が、基底B* d+1の基底ベクトルb* d+1,1の係数として前記所定の値δを設定した鍵要素k* d+1,1と、基底B* d+1の基底ベクトルb* d+1,2の係数として前記所定の値δを設定した鍵要素k* d+1,2とを生成する鍵要素d+1生成工程と、
前記鍵生成装置が、前記鍵要素0生成工程で生成された鍵要素k* 0と、前記鍵要素t生成工程で生成された前記属性集合Γに含まれる各識別情報tについての鍵要素k* tと、前記鍵要素d+1生成工程で生成された鍵要素k* d+1,1及び鍵要素k* d+1,2と、前記属性集合Γとを含む署名鍵skΓを署名装置へ送信する署名鍵送信工程と、
前記署名装置が、i=1,...,L(Lは1以上の整数)の各整数iについての変数ρ(i)であって、識別情報t(t=1,...,dのいずれかの整数)と、属性情報v→ i:=(vi,i’)(i’=1,...,nt)との肯定形の組(t,v→ i)又は否定形の組¬(t,v→ i)のいずれかである変数ρ(i)と、L行r列(rは1以上の整数)の所定の行列Mと、メッセージmとを入力する第2情報入力工程と、
前記署名装置が、前記署名鍵送信工程で送信された署名鍵skΓを取得する署名鍵取得工程と、
前記署名装置が、前記第2情報入力工程で入力された変数ρ(i)と、前記署名鍵取得工程で取得された署名鍵skΓに含まれる属性集合Γとに基づき、i=1,...,Lの各整数iのうち、変数ρ(i)が肯定形の組(t,v→ i)であり、かつ、その組のv→ iと、その組の識別情報tが示す属性集合Γに含まれるx→ tとの内積が0となるiと、変数ρ(i)が否定形の組¬(t,v→ i)であり、かつ、その組のv→ iと、その組の識別情報tが示す属性集合Γに含まれるx→ tとの内積が0とならないiとの集合Iを特定するとともに、特定された集合Iに含まれるiについて、前記第2情報入力工程で入力された行列Mのi行目の要素であるMiに基づき、αiMiを合計した場合に所定のベクトルh→となる補完係数αiを計算する補完係数計算工程と、
前記署名装置が、前記署名鍵skΓに含まれる鍵要素k* 0を含む署名要素s* 0を生成する署名要素0生成工程と、
前記署名装置が、i=1,...,Lの各整数iについて、前記補完係数計算工程で特定された集合Iに含まれる整数iであり、かつ、変数ρ(i)が肯定形の組(t,v→ i)である場合には値γi:=αiとし、前記集合Iに含まれるiであり、かつ、変数ρ(i)が否定形の組¬(t,v→ i)である場合には値γi:=αi/(v→ i・x→ t)とし、前記集合Iに含まれない整数iの場合には値γi:=0として、前記署名鍵skΓに含まれる鍵要素k* tに前記値γiを乗じたγik* tを含む署名要素s* iを生成する署名要素i生成工程と、
前記署名装置が、前記署名鍵skΓに含まれる鍵要素k* d+1,1と、前記メッセージmを用いて生成される値m’を前記鍵要素k* d+1,2に乗じたm’・k* d+1,2との和を含む署名要素s* L+1を生成する署名要素L+1生成工程と、
前記署名装置が、前記署名要素0生成工程で生成された署名要素s* 0と、前記署名要素i生成工程で生成されたi=1,...,Lの各整数iについての署名要素s* iと、前記署名要素L+1生成工程で生成された署名要素s* L+1と、前記メッセージmと、前記変数ρ(i)と、前記行列Mとを含む署名データσを検証装置へ送信する署名データ送信工程と、
前記検証装置が、前記署名データ送信工程で送信された署名データσを取得するデータ取得工程と、
前記検証装置が、r個の要素を有するベクトルf→と前記ベクトルh→と用いて生成される値s0:=h→・f→Tと、所定の値sL+1とから計算される−s0−sL+1を、基底B0の基底ベクトルb0,1の係数として設定して検証要素c0を生成する検証要素0生成工程と、
前記検証装置が、前記ベクトルf→と前記データ取得工程で取得された署名データσに含まれる行列Mとに基づき生成される列ベクトルs→T:=(s1,...,sL)T:=M・f→Tと、i=1,...,Lの各整数iについての所定の値θiとを用いて、i=1,...,Lの各整数iについて、変数ρ(i)が肯定形の組(t,v→ i)である場合には、その組の識別情報tが示す基底Btの基底ベクトルbt,1の係数としてsi+θivi,1を設定し、基底ベクトルbt,i’(i’=2,...,nt)の係数としてθivi,i’(i’=2,...,nt)を設定して検証要素ciを生成し、変数ρ(i)が否定形の組¬(t,v→ i)である場合には、その組の識別情報tが示す基底ベクトルbt,i’(i’=1,...,nt)の係数としてsivi,i’(i’=1,...,nt)を設定して検証要素ciを生成する検証要素i生成工程と、
前記検証装置が、基底Bd+1の基底ベクトルbd+1,1の係数として、前記所定の値sL+1と前記値m’と所定の値θL+1とから計算されるsL+1−θL+1m’を設定し、基底ベクトルbd+1,2の係数として前記所定の値θL+1を設定して検証要素cL+1を生成する検証要素L+1生成工程と、
前記検証装置が、前記検証要素0生成工程で生成された検証要素c0と、前記検証要素i生成工程で生成された検証要素ciと、前記検証要素L+1生成工程で生成された検証要素cL+1と、前記署名データσに含まれる署名要素s* 0,s* i,s* L+1とについて、ペアリング演算Πi=0 L+1e(ci,s* i)を行い、前記署名データσの正当性を検証するペアリング演算工程と
を備えることを特徴とする署名処理方法。 - 鍵生成プログラムと署名プログラムと検証プログラムとを備え、t=0,...,d+1(dは1以上の整数)の各整数tについての基底Btと基底B* tとを用いて署名処理を実行する署名処理プログラムであり、
前記鍵生成プログラムは、
t=1,...,dの少なくとも1つ以上の整数tについて、識別情報tと、属性情報x→ t:=(xt,i)(i=1,...,nt,ntは1以上の整数)とを含む属性集合Γを入力する第1情報入力処理と、
基底B* 0の基底ベクトルb* 0,1の係数として所定の値δを設定した鍵要素k* 0を生成する鍵要素0生成処理と、
前記第1情報入力処理で入力された属性集合Γに含まれる各識別情報tについて、基底B* tの基底ベクトルb* t,i(i=1,...,nt)の係数として属性情報x→ tに前記所定の値δを乗じたδxt,i(i=1,...,nt)を設定した鍵要素k* tを生成する鍵要素t生成処理と、
基底B* d+1の基底ベクトルb* d+1,1の係数として前記所定の値δを設定した鍵要素k* d+1,1と、基底B* d+1の基底ベクトルb* d+1,2の係数として前記所定の値δを設定した鍵要素k* d+1,2とを生成する鍵要素d+1生成処理と、
前記鍵要素0生成処理で生成された鍵要素k* 0と、前記鍵要素t生成処理で生成された前記属性集合Γに含まれる各識別情報tについての鍵要素k* tと、前記鍵要素d+1生成処理で生成された鍵要素k* d+1,1及び鍵要素k* d+1,2と、前記属性集合Γとを含む署名鍵skΓを前記署名装置へ送信する署名鍵送信処理と
をコンピュータに実行させ、
前記署名プログラムは、
i=1,...,L(Lは1以上の整数)の各整数iについての変数ρ(i)であって、識別情報t(t=1,...,dのいずれかの整数)と、属性情報v→ i:=(vi,i’)(i’=1,...,nt)との肯定形の組(t,v→ i)又は否定形の組¬(t,v→ i)のいずれかである変数ρ(i)と、L行r列(rは1以上の整数)の所定の行列Mと、メッセージmとを入力する第2情報入力処理と、
前記署名鍵送信処理で送信された署名鍵skΓを取得する署名鍵取得処理と、
前記第2情報入力処理で入力された変数ρ(i)と、前記署名鍵取得処理で取得された署名鍵skΓに含まれる属性集合Γとに基づき、i=1,...,Lの各整数iのうち、変数ρ(i)が肯定形の組(t,v→ i)であり、かつ、その組のv→ iと、その組の識別情報tが示す属性集合Γに含まれるx→ tとの内積が0となるiと、変数ρ(i)が否定形の組¬(t,v→ i)であり、かつ、その組のv→ iと、その組の識別情報tが示す属性集合Γに含まれるx→ tとの内積が0とならないiとの集合Iを特定するとともに、特定された集合Iに含まれるiについて、前記第2情報入力処理で入力された行列Mのi行目の要素であるMiに基づき、αiMiを合計した場合に所定のベクトルh→となる補完係数αiを計算する補完係数計算処理と、
前記署名鍵skΓに含まれる鍵要素k* 0を含む署名要素s* 0を生成する署名要素0生成処理と、
i=1,...,Lの各整数iについて、前記補完係数計算処理で特定された集合Iに含まれる整数iであり、かつ、変数ρ(i)が肯定形の組(t,v→ i)である場合には値γi:=αiとし、前記集合Iに含まれるiであり、かつ、変数ρ(i)が否定形の組¬(t,v→ i)である場合には値γi:=αi/(v→ i・x→ t)とし、前記集合Iに含まれない整数iの場合には値γi:=0として、前記署名鍵skΓに含まれる鍵要素k* tに前記値γiを乗じたγik* tを含む署名要素s* iを生成する署名要素i生成処理と、
前記署名鍵skΓに含まれる鍵要素k* d+1,1と、前記メッセージmを用いて生成される値m’を前記鍵要素k* d+1,2に乗じたm’・k* d+1,2との和を含む署名要素s* L+1を生成する署名要素L+1生成処理と、
前記署名要素0生成処理で生成された署名要素s* 0と、前記署名要素i生成処理で生成されたi=1,...,Lの各整数iについての署名要素s* iと、前記署名要素L+1生成処理で生成された署名要素s* L+1と、前記メッセージmと、前記変数ρ(i)と、前記行列Mとを含む署名データσを前記検証装置へ送信する署名データ送信処理と
をコンピュータに実行させ、
前記検証プログラムは、
前記署名データ送信処理で送信された署名データσを取得するデータ取得処理と、
r個の要素を有するベクトルf→と前記ベクトルh→と用いて生成される値s0:=h→・f→Tと、所定の値sL+1とから計算される−s0−sL+1を、基底B0の基底ベクトルb0,1の係数として設定して検証要素c0を生成する検証要素0生成処理と、
前記ベクトルf→と前記データ取得処理で取得された署名データσに含まれる行列Mとに基づき生成される列ベクトルs→T:=(s1,...,sL)T:=M・f→Tと、i=1,...,Lの各整数iについての所定の値θiとを用いて、i=1,...,Lの各整数iについて、変数ρ(i)が肯定形の組(t,v→ i)である場合には、その組の識別情報tが示す基底Btの基底ベクトルbt,1の係数としてsi+θivi,1を設定し、基底ベクトルbt,i’(i’=2,...,nt)の係数としてθivi,i’(i’=2,...,nt)を設定して検証要素ciを生成し、変数ρ(i)が否定形の組¬(t,v→ i)である場合には、その組の識別情報tが示す基底ベクトルbt,i’(i’=1,...,nt)の係数としてsivi,i’(i’=1,...,nt)を設定して検証要素ciを生成する検証要素i生成処理と、
基底Bd+1の基底ベクトルbd+1,1の係数として、前記所定の値sL+1と前記値m’と所定の値θL+1とから計算されるsL+1−θL+1m’を設定し、基底ベクトルbd+1,2の係数として前記所定の値θL+1を設定して検証要素cL+1を生成する検証要素L+1生成処理と、
前記検証要素0生成処理で生成された検証要素c0と、前記検証要素i生成処理で生成された検証要素ciと、前記検証要素L+1生成処理で生成された検証要素cL+1と、前記署名データσに含まれる署名要素s* 0,s* i,s* L+1とについて、ペアリング演算Πi=0 L+1e(ci,s* i)を行い、前記署名データσの正当性を検証するペアリング演算処理と
をコンピュータに実行させることを特徴とする署名処理プログラム。 - t=1,...,d(dは1以上の整数)の少なくとも1つ以上の整数tについての基底Btと基底B* tとを用いて署名処理を実行する署名処理方法であり、
d個の鍵生成装置の少なくとも1個以上の鍵生成装置が、t=1,...,dのうち鍵生成装置毎に予め定められた整数tについての属性情報x→ t:=(xt,i)(i=1,...,nt)を入力する第1情報入力工程と、
前記少なくとも1個以上の鍵生成装置が、前記整数tと、j=1,2の各整数jについて、前記第1情報入力工程で入力された属性情報x→ tと、所定の値δjと、所定の値Δと、基底B* tの基底ベクトルb* t,i(i=1,...,2nt)とに基づき、数24に示すベクトルを含む鍵要素k* t,jを生成する鍵要素生成工程と、
前記少なくとも1個以上の鍵生成装置が、前記鍵要素生成工程で生成された鍵要素k* t,jと、前記属性情報x→ tとを含む署名鍵uskを署名装置へ送信する署名鍵送信工程と、
前記署名装置が、i=1,...,L(Lは1以上の整数)の各整数iについての変数ρ(i)であって、識別情報t(t=1,...,dのいずれかの整数)と、属性情報v→ i:=(vi,i’)(i’=1,...,nt)との肯定形の組(t,v→ i)又は否定形の組¬(t,v→ i)のいずれかである変数ρ(i)と、L行r列(rは1以上の整数)の所定の行列Mと、メッセージmとを入力する第2情報入力工程と、
前記署名装置が、前記d個の鍵生成装置のうち、少なくとも1つ以上の鍵生成装置の署名鍵送信工程で送信された署名鍵uskを取得する署名鍵取得工程と、
前記署名装置が、前記第2情報入力工程で入力された変数ρ(i)と、前記署名鍵取得工程で取得された署名鍵uskに含まれる属性情報x→ tとに基づき、i=1,...,Lの各整数iのうち、変数ρ(i)が肯定形の組(t,v→ i)であり、かつ、その組の識別情報tが示すx→ tを含む署名鍵uskを前記署名鍵取得工程で取得しており、かつ、その組のv→ iと、その組の識別情報tが示す属性情報x→ tとの内積が0となるiと、変数ρ(i)が否定形の組¬(t,v→ i)であり、かつ、その組の識別情報tが示すx→ tを含む署名鍵uskを前記署名鍵取得工程で取得しており、かつ、その組のv→ iと、その組の識別情報tが示す属性情報x→ tとの内積が0とならないiとの集合Iを特定するとともに、特定された集合Iに含まれるiについて、前記第2情報入力工程で入力された行列Mのi行目の要素であるMiに基づき、αiMiを合計した場合に所定のベクトルh→となる補完係数αiを計算する補完係数計算工程と、
前記署名装置が、前記署名鍵uskに含まれる鍵要素k* t,1及び鍵要素k* t,2と、所定の値ξ1,Ε,μと、前記メッセージmから計算される値m’とに基づき、i=1,...,Lの各整数iについて、前記補完係数計算工程で特定された集合Iに含まれる整数iであり、かつ、変数ρ(i)が肯定形の組(t,v→ i)である場合には値γi:=αiとし、前記集合Iに含まれるiであり、かつ、変数ρ(i)が否定形の組¬(t,v→ i)である場合には値γi:=αi/(v→ i・x→ t)とし、前記集合Iに含まれない整数iの場合には値γi:=0として、基底B* tの基底ベクトルb* t,i(i=2nt+1,2nt+2)を用いて、数25に示すベクトルを含む署名要素s* iを生成する署名要素生成工程と、
前記署名装置が、前記署名要素生成工程で生成されたi=1,...,Lの各整数iについての署名要素s* iと、前記メッセージmと、前記変数ρ(i)と、前記行列Mとを含む署名データσを検証装置へ送信する署名データ送信工程と、
前記検証装置が、前記署名データ送信工程が送信された署名データσを取得するデータ取得工程と、
前記検証装置が、r個の要素を有するベクトルf→と、前記データ取得工程で取得された署名データσに含まれる行列Mとに基づき列ベクトルs→T:=(s1,...,sL)T:=M・f→Tを生成するとともに、s0:=h→・f→Tとして、s0=h→・(f→’)Tであるr個の要素を有するベクトルf→’と、前記行列Mとに基づき列ベクトル(s→’)T:=(s1’,...,sL’)T:=M・(f→’)Tを生成するベクトル生成工程と、
前記検証装置が、前記ベクトル生成工程で生成された列ベクトルs→T及び列ベクトル(s→’)Tと、i=1,...,Lの各整数iについての所定の値θi,θi’,θi’’,σiとに基づき、i=1,...,Lの各整数iについて、変数ρ(i)が肯定形の組(t,v→ i)である場合には、その組の識別情報tが示す基底Btの基底ベクトルbt,i’(i’=1,...,2nt+2)を用いて、数26に示すベクトルを含む検証要素ciを生成し、変数ρ(i)が否定形の組¬(t,v→ i)である場合には、その組の識別情報tが示す基底ベクトルbt,1から基底ベクトルbt,i(i’=1,...,2nt+2)を用いて、数27に示すベクトルを含む検証要素ciを生成する検証要素生成工程と、
前記検証装置が、前記検証要素生成工程で生成された検証要素ciと、前記署名データσに含まれる署名要素s* iとについて、ペアリング演算Πi=1 Le(ci,s* i)を行い、前記署名データσの正当性を検証するペアリング演算工程と
を備えることを特徴とする署名処理方法。
- d個(dは1以上の整数)の鍵生成装置で動作させる鍵生成プログラムと、署名装置で動作させる署名プログラムと、検証装置で動作させる検証プログラムとを備え、t=1,...,dの少なくとも1つ以上の整数tについての基底Btと基底B* tとを用いて署名処理を実行する署名処理プログラムであり、
前記鍵生成プログラムは、
t=1,...,dのうち鍵生成装置毎に予め定められた整数tについての属性情報x→ t:=(xt,i)(i=1,...,nt)を入力する第1情報入力処理と、
前記整数tと、j=1,2の各整数jについて、前記第1情報入力処理で入力された属性情報x→ tと、所定の値δjと、所定の値Δと、基底B* tの基底ベクトルb* t,i(i=1,...,2nt)とに基づき、数28に示すベクトルを含む鍵要素k* t,jを生成する鍵要素生成処理と、
前記鍵要素生成処理で生成された鍵要素k* t,jと、前記属性情報x→ tとを含む署名鍵uskを前記署名装置へ送信する署名鍵送信処理と
をコンピュータに実行させ、
前記署名プログラムは、
i=1,...,L(Lは1以上の整数)の各整数iについての変数ρ(i)であって、識別情報t(t=1,...,dのいずれかの整数)と、属性情報v→ i:=(vi,i’)(i’=1,...,nt)との肯定形の組(t,v→ i)又は否定形の組¬(t,v→ i)のいずれかである変数ρ(i)と、L行r列(rは1以上の整数)の所定の行列Mと、メッセージmとを入力する第2情報入力処理と、
前記d個の鍵生成装置のうち、少なくとも1つ以上の鍵生成装置の署名鍵送信処理で送信された署名鍵uskを取得する署名鍵取得処理と、
前記第2情報入力処理で入力された変数ρ(i)と、前記署名鍵取得処理で取得された署名鍵uskに含まれる属性情報x→ tとに基づき、i=1,...,Lの各整数iのうち、変数ρ(i)が肯定形の組(t,v→ i)であり、かつ、その組の識別情報tが示すx→ tを含む署名鍵uskを前記署名鍵取得処理で取得しており、かつ、その組のv→ iと、その組の識別情報tが示す属性情報x→ tとの内積が0となるiと、変数ρ(i)が否定形の組¬(t,v→ i)であり、かつ、その組の識別情報tが示すx→ tを含む署名鍵uskを前記署名鍵取得処理で取得しており、かつ、その組のv→ iと、その組の識別情報tが示す属性情報x→ tとの内積が0とならないiとの集合Iを特定するとともに、特定された集合Iに含まれるiについて、前記第2情報入力処理で入力された行列Mのi行目の要素であるMiに基づき、αiMiを合計した場合に所定のベクトルh→となる補完係数αiを計算する補完係数計算処理と、
前記署名鍵uskに含まれる鍵要素k* t,1及び鍵要素k* t,2と、所定の値ξ1,Ε,μと、前記メッセージmから計算される値m’とに基づき、i=1,...,Lの各整数iについて、前記補完係数計算処理で特定された集合Iに含まれる整数iであり、かつ、変数ρ(i)が肯定形の組(t,v→ i)である場合には値γi:=αiとし、前記集合Iに含まれるiであり、かつ、変数ρ(i)が否定形の組¬(t,v→ i)である場合には値γi:=αi/(v→ i・x→ t)とし、前記集合Iに含まれない整数iの場合には値γi:=0として、基底B* tの基底ベクトルb* t,i(i=2nt+1,2nt+2)を用いて、数29に示すベクトルを含む署名要素s* iを生成する署名要素生成処理と、
前記署名要素生成処理で生成されたi=1,...,Lの各整数iについての署名要素s* iと、前記メッセージmと、前記変数ρ(i)と、前記行列Mとを含む署名データσを前記検証装置へ送信する署名データ送信処理と
をコンピュータに実行させ、
前記検証プログラムは、
前記署名データ送信処理で送信された署名データσを取得するデータ取得処理と、
r個の要素を有するベクトルf→と、前記データ取得処理で取得された署名データσに含まれる行列Mとに基づき列ベクトルs→T:=(s1,...,sL)T:=M・f→Tを生成するとともに、s0:=h→・f→Tとして、s0=h→・(f→’)Tであるr個の要素を有するベクトルf→’と、前記行列Mとに基づき列ベクトル(s→’)T:=(s1’,...,sL’)T:=M・(f→’)Tを生成するベクトル生成処理と、
前記ベクトル生成処理で生成された列ベクトルs→T及び列ベクトル(s→’)Tと、i=1,...,Lの各整数iについての所定の値θi,θi’,θi’’,σiとに基づき、i=1,...,Lの各整数iについて、変数ρ(i)が肯定形の組(t,v→ i)である場合には、その組の識別情報tが示す基底Btの基底ベクトルbt,i’(i’=1,...,2nt+2)を用いて、数30に示すベクトルを含む検証要素ciを生成し、変数ρ(i)が否定形の組¬(t,v→ i)である場合には、その組の識別情報tが示す基底ベクトルbt,i(i’=1,...,2nt+2)を用いて、数31に示すベクトルを含む検証要素ciを生成する検証要素生成処理と、
前記検証要素生成処理で生成された検証要素ciと、前記署名データσに含まれる署名要素s* iとについて、ペアリング演算Πi=1 Le(ci,s* i)を行い、前記署名データσの正当性を検証するペアリング演算処理と
をコンピュータに実行させることを特徴とする署名処理プログラム。
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011013281A JP5606344B2 (ja) | 2011-01-25 | 2011-01-25 | 署名処理システム、鍵生成装置、署名装置、検証装置、署名処理方法及び署名処理プログラム |
EP11856860.9A EP2670081B1 (en) | 2011-01-25 | 2011-12-08 | Signature processing system, key generation device, signature device, verification device, signature processing method and signature processing program |
KR1020137022196A KR101431412B1 (ko) | 2011-01-25 | 2011-12-08 | 서명 처리 시스템, 키 생성 장치, 서명 장치, 검증 장치, 서명 처리 방법 및 서명 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 |
ES11856860.9T ES2684945T3 (es) | 2011-01-25 | 2011-12-08 | Sistema de procesamiento de firmas, dispositivo de generación de claves, dispositivo de firmas, dispositivo de verificación, método de procesamiento de firmas y programa de procesamiento de firmas |
CN201180065941.8A CN103348624B (zh) | 2011-01-25 | 2011-12-08 | 签名处理系统、密钥生成装置、签名装置、验证装置、签名处理方法以及签名处理程序 |
US13/981,679 US9106408B2 (en) | 2011-01-25 | 2011-12-08 | Signature processing system, key generation device, signature device, verification device, signature processing method, and signature processing program |
PCT/JP2011/078463 WO2012101913A1 (ja) | 2011-01-25 | 2011-12-08 | 署名処理システム、鍵生成装置、署名装置、検証装置、署名処理方法及び署名処理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011013281A JP5606344B2 (ja) | 2011-01-25 | 2011-01-25 | 署名処理システム、鍵生成装置、署名装置、検証装置、署名処理方法及び署名処理プログラム |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2012155088A true JP2012155088A (ja) | 2012-08-16 |
JP2012155088A5 JP2012155088A5 (ja) | 2014-01-09 |
JP5606344B2 JP5606344B2 (ja) | 2014-10-15 |
Family
ID=46580497
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011013281A Active JP5606344B2 (ja) | 2011-01-25 | 2011-01-25 | 署名処理システム、鍵生成装置、署名装置、検証装置、署名処理方法及び署名処理プログラム |
Country Status (7)
Country | Link |
---|---|
US (1) | US9106408B2 (ja) |
EP (1) | EP2670081B1 (ja) |
JP (1) | JP5606344B2 (ja) |
KR (1) | KR101431412B1 (ja) |
CN (1) | CN103348624B (ja) |
ES (1) | ES2684945T3 (ja) |
WO (1) | WO2012101913A1 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015136049A (ja) * | 2014-01-17 | 2015-07-27 | 日本電信電話株式会社 | 代理署名装置、署名検証装置、鍵生成装置、代理署名システム、およびプログラム |
US9640090B2 (en) | 2014-02-24 | 2017-05-02 | Mitsubishi Electric Corporation | Cryptographic system and computer readable medium |
JP2020149003A (ja) * | 2019-03-15 | 2020-09-17 | 三菱電機株式会社 | 署名装置、検証装置、署名方法、検証方法、署名プログラム及び検証プログラム |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2755158A1 (en) * | 2013-01-09 | 2014-07-16 | Thomson Licensing | Method and device for privacy-respecting data processing |
EP2860904A1 (en) * | 2013-10-08 | 2015-04-15 | Thomson Licensing | Method for signing a set of binary elements, and updating such signature, corresponding electronic device and computer program product |
EP2860905A1 (en) * | 2013-10-09 | 2015-04-15 | Thomson Licensing | Method for ciphering a message via a keyed homomorphic encryption function, corresponding electronic device and computer program product |
JP6204271B2 (ja) * | 2014-06-05 | 2017-09-27 | 日本電信電話株式会社 | 署名システム、鍵生成装置、およびプログラム |
WO2016014048A1 (en) * | 2014-07-23 | 2016-01-28 | Hewlett-Packard Development Company, L.P. | Attribute-based cryptography |
KR102575665B1 (ko) * | 2018-04-10 | 2023-09-06 | 비자 인터네셔널 서비스 어소시에이션 | 모바일 장치용 변조 방지 데이터 인코딩 |
CN109728910A (zh) * | 2018-12-27 | 2019-05-07 | 北京永恒纪元科技有限公司 | 一种高效的门限分布式椭圆曲线密钥生成及签名方法和系统 |
CN114189340B (zh) * | 2021-12-09 | 2023-05-23 | 电子科技大学 | 一种基于素数阶群的基于属性签名方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1997016903A1 (en) * | 1995-11-03 | 1997-05-09 | Stefanus Alfonsus Brands | Cryptographic methods for demonstrating satisfiable formulas from propositional logic |
WO2007135580A2 (en) * | 2006-05-21 | 2007-11-29 | International Business Machines Corporation | Assertion message signatures |
US20100115281A1 (en) * | 2008-08-28 | 2010-05-06 | International Business Machines Corporation | Attributes in cryptographic credentials |
WO2011007697A1 (ja) * | 2009-07-13 | 2011-01-20 | 日本電気株式会社 | 匿名認証署名システム、ユーザ装置、検証装置、署名方法、検証方法およびそれらのプログラム |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6320966B1 (en) | 1996-10-23 | 2001-11-20 | Stefanus A. Brands | Cryptographic methods for demonstrating satisfiable formulas from propositional logic |
US7181017B1 (en) * | 2001-03-23 | 2007-02-20 | David Felsher | System and method for secure three-party communications |
CN1954548B (zh) * | 2005-04-18 | 2010-07-21 | 松下电器产业株式会社 | 签名生成装置及签名验证装置 |
US8280039B2 (en) * | 2005-12-28 | 2012-10-02 | Panasonic Corporation | Signature generating device, signature generating method and signature generating program |
WO2008085579A2 (en) * | 2006-10-25 | 2008-07-17 | Spyrus, Inc. | Method and system for deploying advanced cryptographic algorithms |
KR101351789B1 (ko) * | 2009-04-24 | 2014-01-15 | 니뽄 덴신 덴와 가부시키가이샤 | 암호 시스템, 암호 통신 방법, 암호화 장치, 키 생성 장치, 복호 장치, 콘텐츠 서버 장치, 프로그램, 기억매체 |
JP5291795B2 (ja) * | 2009-04-24 | 2013-09-18 | 日本電信電話株式会社 | 暗号化装置、復号装置、暗号化方法、復号方法、セキュリティ方法、プログラム及び記録媒体 |
JP5693206B2 (ja) | 2010-12-22 | 2015-04-01 | 三菱電機株式会社 | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム |
-
2011
- 2011-01-25 JP JP2011013281A patent/JP5606344B2/ja active Active
- 2011-12-08 EP EP11856860.9A patent/EP2670081B1/en active Active
- 2011-12-08 WO PCT/JP2011/078463 patent/WO2012101913A1/ja active Application Filing
- 2011-12-08 KR KR1020137022196A patent/KR101431412B1/ko active IP Right Grant
- 2011-12-08 ES ES11856860.9T patent/ES2684945T3/es active Active
- 2011-12-08 US US13/981,679 patent/US9106408B2/en active Active
- 2011-12-08 CN CN201180065941.8A patent/CN103348624B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1997016903A1 (en) * | 1995-11-03 | 1997-05-09 | Stefanus Alfonsus Brands | Cryptographic methods for demonstrating satisfiable formulas from propositional logic |
WO2007135580A2 (en) * | 2006-05-21 | 2007-11-29 | International Business Machines Corporation | Assertion message signatures |
US20100115281A1 (en) * | 2008-08-28 | 2010-05-06 | International Business Machines Corporation | Attributes in cryptographic credentials |
WO2011007697A1 (ja) * | 2009-07-13 | 2011-01-20 | 日本電気株式会社 | 匿名認証署名システム、ユーザ装置、検証装置、署名方法、検証方法およびそれらのプログラム |
Non-Patent Citations (2)
Title |
---|
JPN6014031997; Khader, D.: 'Authenticating with Attributes' Cryptology ePrint Archive Report 2008/031, 20080128 * |
JPN6014031998; Maji, H. et al.: 'Attribute-Based Signatures: Achieving Attribute-Privacy and Collusion-Resistance' Cryptology ePrint Archive Report 2008/328, 20080803 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015136049A (ja) * | 2014-01-17 | 2015-07-27 | 日本電信電話株式会社 | 代理署名装置、署名検証装置、鍵生成装置、代理署名システム、およびプログラム |
US9640090B2 (en) | 2014-02-24 | 2017-05-02 | Mitsubishi Electric Corporation | Cryptographic system and computer readable medium |
JP2020149003A (ja) * | 2019-03-15 | 2020-09-17 | 三菱電機株式会社 | 署名装置、検証装置、署名方法、検証方法、署名プログラム及び検証プログラム |
WO2020188906A1 (ja) * | 2019-03-15 | 2020-09-24 | 三菱電機株式会社 | 署名装置、検証装置、署名方法、検証方法、署名プログラム及び検証プログラム |
JP7233265B2 (ja) | 2019-03-15 | 2023-03-06 | 三菱電機株式会社 | 署名装置、検証装置、署名方法、検証方法、署名プログラム及び検証プログラム |
Also Published As
Publication number | Publication date |
---|---|
US9106408B2 (en) | 2015-08-11 |
ES2684945T3 (es) | 2018-10-05 |
WO2012101913A1 (ja) | 2012-08-02 |
EP2670081B1 (en) | 2018-07-11 |
CN103348624B (zh) | 2016-04-27 |
US20130322627A1 (en) | 2013-12-05 |
CN103348624A (zh) | 2013-10-09 |
KR101431412B1 (ko) | 2014-08-19 |
JP5606344B2 (ja) | 2014-10-15 |
EP2670081A4 (en) | 2017-07-26 |
EP2670081A1 (en) | 2013-12-04 |
KR20130130810A (ko) | 2013-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5606344B2 (ja) | 署名処理システム、鍵生成装置、署名装置、検証装置、署名処理方法及び署名処理プログラム | |
JP5424974B2 (ja) | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置 | |
JP5618881B2 (ja) | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム | |
JP5693206B2 (ja) | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム | |
JP5680007B2 (ja) | 暗号システム、暗号方法及び暗号プログラム | |
JP5769401B2 (ja) | 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及びプログラム | |
JP5334873B2 (ja) | 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム | |
JP5921410B2 (ja) | 暗号システム | |
JP5606351B2 (ja) | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、鍵委譲装置、暗号処理方法及び暗号処理プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131114 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20131114 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20140729 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140826 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5606344 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |