JP2012133214A - 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム - Google Patents
暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム Download PDFInfo
- Publication number
- JP2012133214A JP2012133214A JP2010286511A JP2010286511A JP2012133214A JP 2012133214 A JP2012133214 A JP 2012133214A JP 2010286511 A JP2010286511 A JP 2010286511A JP 2010286511 A JP2010286511 A JP 2010286511A JP 2012133214 A JP2012133214 A JP 2012133214A
- Authority
- JP
- Japan
- Prior art keywords
- integer
- coefficient
- variable
- identification information
- vector
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 87
- 238000003672 processing method Methods 0.000 title claims 2
- 239000013598 vector Substances 0.000 claims abstract description 280
- 238000000034 method Methods 0.000 claims abstract description 81
- 239000013256 coordination polymer Substances 0.000 claims description 990
- 239000011159 matrix material Substances 0.000 claims description 89
- 230000000295 complement effect Effects 0.000 claims description 60
- 238000004364 calculation method Methods 0.000 claims description 36
- 230000006870 function Effects 0.000 abstract description 19
- 238000004891 communication Methods 0.000 description 16
- 230000009977 dual effect Effects 0.000 description 15
- 239000003643 water by type Substances 0.000 description 14
- 230000014509 gene expression Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 230000009466 transformation Effects 0.000 description 11
- 101150004781 Slc10a1 gene Proteins 0.000 description 8
- 238000013507 mapping Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 108091006611 SLC10A1 Proteins 0.000 description 5
- 102100021988 Sodium/bile acid cotransporter Human genes 0.000 description 5
- 125000004122 cyclic group Chemical group 0.000 description 4
- UREZNYTWGJKWBI-UHFFFAOYSA-M benzethonium chloride Chemical compound [Cl-].C1=CC(C(C)(C)CC(C)(C)C)=CC=C1OCCOCC[N+](C)(C)CC1=CC=CC=C1 UREZNYTWGJKWBI-UHFFFAOYSA-M 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000007639 printing Methods 0.000 description 2
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003121 nonmonotonic effect Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
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
-
- 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/006—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving public key infrastructure [PKI] trust models
- H04L9/007—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving public key infrastructure [PKI] trust models involving hierarchical structures
-
- 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/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Mathematical Analysis (AREA)
- Algebra (AREA)
- Storage Device Security (AREA)
Abstract
【解決手段】スパンプログラムに属性ベクトルの内積を適用することにより、アクセスストラクチャを構成した。このアクセスストラクチャは、スパンプログラムの設計と、属性ベクトルの設計とに自由度があり、アクセス制御の設計に大きな自由度を有する。このアクセスストラクチャを、暗号文と復号鍵とのそれぞれに持たせて関数型暗号処理を実現した。
【選択図】図5
Description
鍵生成装置と暗号化装置と復号装置とを備え、基底B0及び基底B0 *と、t=1,...,dKP(dKPは1以上の整数)の各整数tについての基底Bt KP及び基底B* t KPと、t=1,...,dCP(dCPは1以上の整数)の各整数tについての基底Bt CP及び基底B* t CPとを用いて暗号処理を実行する暗号処理システムであり、
前記鍵生成装置は、
i=1,...,LKP(LKPは1以上の整数)の各整数iについての変数ρKP(i)であって、識別情報t(t=1,...,dKPのいずれかの整数)と、属性ベクトルv→ i KP:=(vi,i’ KP)(i’=1,...,nt KP,nt KPは1以上の整数)との肯定形の組(t,v→ i KP)又は否定形の組¬(t,v→ i KP)のいずれかである変数ρKP(i)と、LKP行rKP列(rKPは1以上の整数)の所定の行列MKPとを入力する第1KP情報入力部と、
t=1,...,dCPの少なくとも1つ以上の整数tについて、識別情報tと、属性ベクトルx→ t CP:=(xt,i’ CP)(i’=1,...,nt CP,nt CPは1以上の整数)とを有する属性集合ΓCPを入力する第1CP情報入力部と、
基底B* 0の基底ベクトルb* 0,p(pは所定の値)の係数として値−s0 KP(s0 KP:=h→KP・(f→KP)T,h→KP及びf→KPはrKP個の要素を有するベクトル)を設定し、基底ベクトルb* 0,p’(p’は前記pとは異なる所定の値)の係数として乱数δCPを設定し、基底ベクトルb* 0,q(qは前記p及び前記p’とは異なる所定の値)の係数として所定の値κを設定して要素k* 0を生成する主復号鍵生成部と、
前記f→KPと、前記第1KP情報入力部が入力した行列MKPに基づき生成される列ベクトル(s→KP)T:=(s1 KP,...,si KP)T:=MKP・(f→KP)T(i=LKP)と、乱数θi KP(i=1,...,LKP)とに基づき、i=1,...,LKPの各整数iについての要素k* i KPを生成するKP復号鍵生成部であって、i=1,...,LKPの各整数iについて、変数ρKP(i)が肯定形の組(t,v→ i KP)である場合には、その組の識別情報tが示す基底B* t KPの基底ベクトルb* t,1 KPの係数としてsi KP+θi KPvi,1 KPを設定するとともに、前記識別情報tとi’=2,...,nt KPの各整数i’とが示す基底ベクトルb* t,i’ KPの係数としてθi KPvi,i’ KPを設定して要素k* i KPを生成し、変数ρKP(i)が否定形の組¬(t,v→ i KP)である場合には、その組の識別情報tとi’=1,...,nt KPの各整数i’とが示す基底ベクトルb* t,i’ KPの係数としてsi KPvi,i’ KPを設定して要素k* i KPを生成するKP復号鍵生成部と、
前記第1CP情報入力部が入力した属性集合ΓCPに含まれる各識別情報tについての要素k* t CPを生成するCP復号鍵生成部であって、基底B* t CPの基底ベクトルb* t,i’ CP(i’=1,...,nt CP)の係数として前記乱数δCP倍したxt,i’ CPを設定して要素k* t CPを生成するCP復号鍵生成部と
を備え、
前記暗号化装置は、
t=1,...,dKPの少なくとも1つ以上の整数tについて、識別情報tと、属性ベクトルx→ t KP:=(xt,i’ KP)(i’=1,...,nt KP)とを有する属性集合ΓKPを入力する第2KP情報入力部と、
i=1,...,LCP(LCPは1以上の整数)の各整数iについての変数ρCP(i)であって、識別情報t(t=1,...,dCPのいずれかの整数)と、属性ベクトルv→ i CP:=(vi,i’ CP)(i’=1,...,nt CP)との肯定形の組(t,v→ i CP)又は否定形の組¬(t,v→ i CP)のいずれかである変数ρCP(i)と、LCP行rCP列(rCPは1以上の整数)の所定の行列MCPとを入力する第2CP情報入力部と、
基底B0の基底ベクトルb0,pの係数として乱数ωKPを設定し、基底ベクトルb0,p’の係数として値−s0 CP(s0 CP:=h→CP・(f→CP)T,h→CP及びf→CPはrCP個の要素を有するベクトル)を設定し、基底ベクトルb0,qの係数として乱数ζを設定して要素c0を生成する主暗号化データ生成部と、
前記第2KP情報入力部が入力した属性集合ΓKPに含まれる各識別情報tについての要素ct KPを生成するKP暗号化データ生成部であって、基底Bt KPの基底ベクトルbt,i’ KP(i’=1,...,nt)の係数として前記乱数ωKP倍したxt,i’ KPを設定して要素ct KPを生成するKP暗号化データ生成部と、
前記f→CPと、前記第2CP情報入力部が入力した行列MCPとに基づき生成される列ベクトル(s→CP)T:=(s1 CP,...,si CP)T:=MCP・(f→CP)T(i=LCP)と、乱数θi CP(i=1,...,LCP)とに基づき、i=1,...,LCPの各整数iについての要素ci CPを生成するCP暗号化データ生成部であって、i=1,...,LCPの各整数iについて、変数ρCP(i)が肯定形の組(t,v→ i CP)である場合には、その組の識別情報tが示す基底Bt CPの基底ベクトルbt,1 CPの係数としてsi CP+θi CPvi,1 CPを設定するとともに、前記識別情報tとi’=2,...,nt CPの各整数i’とが示す基底ベクトルbt,i’ CPの係数としてθi CPvi,i’ CPを設定して要素ci CPを生成し、変数ρCP(i)が否定形の組¬(t,v→ i CP)である場合には、その組の識別情報tとi’=1,...,nt CPの各整数i’とが示す基底ベクトルbt,i’ CPの係数としてsi CPvi,i’ CPを設定して要素ci CPを生成するCP暗号化データ生成部と
を備え、
前記復号装置は、
前記主暗号化データ生成部が生成した要素c0と、前記KP暗号化データ生成部が生成した要素ct KPと、前記CP暗号化データ生成部が生成した要素ci CPと、前記属性集合ΓKPと、前記変数ρCP(i)とを含む暗号化データct(ΓKP,SCP)を取得するデータ取得部と、
前記主復号鍵生成部が生成した要素k* 0と、前記KP復号鍵生成部が生成した要素k* i KPと、前記CP復号鍵生成部が生成した要素k* t CPと、前記変数ρKP(i)と、前記属性集合ΓCPとを含む復号鍵sk(SKP,ΓCP)を取得する復号鍵取得部と、
前記データ取得部が取得した暗号化データct(ΓKP,SCP)に含まれる属性集合ΓKPと、前記復号鍵取得部が取得した復号鍵sk(SKP,ΓCP)に含まれる変数ρKP(i)とに基づき、i=1,...,LKPの各整数iのうち、変数ρKP(i)が肯定形の組(t,v→ i KP)であり、かつ、その組のv→ i KPと、その組の識別情報tが示すΓKPに含まれるx→ t KPとの内積が0となるiと、変数ρKP(i)が否定形の組¬(t,v→ i KP)であり、かつ、その組のv→ i KPと、その組の識別情報tが示すΓKPに含まれるx→ t KPとの内積が0とならないiとの集合IKPを特定するとともに、特定した集合IKPに含まれるiについて、αi KPMi KPを合計した場合に前記h→KPとなる補完係数αi KPを計算するKP補完係数計算部と、
前記暗号化データct(ΓKP,SCP)に含まれるi=1,...,LCPの各整数iについての変数ρCP(i)と、前記復号鍵sk(SKP,ΓCP)に含まれる属性集合ΓCPとに基づき、i=1,...,LCPの各整数iのうち、変数ρCP(i)が肯定形の組(t,v→ i CP)であり、かつ、その組のv→ i CPと、その組の識別情報tが示すΓCPに含まれるx→ t CPとの内積が0となるiと、変数ρCP(i)が否定形の組¬(t,v→ i CP)であり、かつ、その組のv→ i CPと、その組の識別情報tが示すΓCPに含まれるx→ t CPとの内積が0とならないiとの集合ICPを特定するとともに、特定した集合ICPに含まれるiについて、αi CPMi CPを合計した場合に前記h→CPとなる補完係数αi CPを計算するCP補完係数計算部と、
前記暗号化データct(ΓKP,SCP)に含まれる要素c0と要素ct KPと要素ci CPと、前記復号鍵sk(SKP,ΓCP)に含まれる要素k* 0と要素k* i KPと要素k* t CPとについて、前記KP補完係数計算部が特定した集合IKPと、前記KP補完係数計算部が計算した補完係数αi KPと、前記CP補完係数計算部が特定した集合ICPと、前記CP補完係数計算部が計算した補完係数αi CPとに基づき、数1に示すペアリング演算を行い値Kを計算するペアリング演算部と
を備えることを特徴とする。
以下の説明において、処理装置は後述するCPU911等である。記憶装置は後述するROM913、RAM914、磁気ディスク920等である。通信装置は後述する通信ボード915等である。入力装置は後述するキーボード902、通信ボード915等である。つまり、処理装置、記憶装置、通信装置、入力装置はハードウェアである。
Aがランダムな変数または分布であるとき、数101は、Aの分布に従いAからyをランダムに選択することを表す。つまり、数101において、yは乱数である。
数110に示す基底Bと基底B*とに対して、数111である。
同様に、復号鍵sk(SKP,ΓCP)におけるSKPはSKPのことであり、ΓCPはΓCPのことである。暗号化データct(ΓKP,SCP)におけるΓKPはΓKPのことであり、SCPはSCPのことである。
同様に、paramV0におけるV0はV0のことである。paramVtKPにおけるVtKPはVt KPのことである。paramVtCPにおけるVtCPはVt CPのことである。
同様に、“δi,j”が上付きで示されている場合、このδi,jは、δi,jを意味する。
また、ベクトルを意味する“→”が下付き文字又は上付き文字に付されている場合、この“→”は下付き文字又は上付き文字に上付きで付されていることを意味する。
この実施の形態では、「関数型暗号(Functional Encryption)方式」を実現する基礎となる概念と、関数型暗号の構成について説明する。
第1に、関数型暗号について簡単に説明する。
第2に、関数型暗号を実現するための空間である「双対ペアリングベクトル空間(Dual Pairing Vector Spaces,DPVS)」という豊かな数学的構造を有する空間を説明する。
第3に、関数型暗号を実現するための概念を説明する。ここでは、「スパンプログラム(Span Program)」、「属性ベクトルの内積とアクセスストラクチャ」、「秘密分散方式(秘密共有方式)」について説明する。
第4に、この実施の形態に係る「関数型暗号方式」を説明する。この実施の形態では、「Unified−Policy関数型暗号(Unified−Policy Functional Encryption,UP−FE)方式」について説明する。そこで、まず、「Unified−Policy関数型暗号方式」の基本構成について説明する。次に、この「Unified−Policy関数型暗号方式」を実現する「暗号処理システム10」の基本構成について説明する。そして、この実施の形態に係る「Unified−Policy関数型暗号方式」及び「暗号処理システム10」について詳細に説明する。
関数型暗号方式は、暗号化鍵(encryption−key,ek)と、復号鍵(decryption−key,dk)との間の関係をより高度化し、より柔軟にした暗号方式である。
関数型暗号方式において、暗号化鍵と復号鍵とは、それぞれ、属性xと属性vとが設定されている。そして、関係Rに対してR(x,v)が成立する場合に限り、復号鍵dkv:=(dk,v)は暗号化鍵ekx:=(ek,x)で暗号化された暗号文を復号することができる。
関数型暗号方式には、データベースのアクセスコントロール、メールサービス、コンテンツ配布等の様々なアプリケーションが存在する(非特許文献2,7,9,16,19,25−28,30参照)。
属性ベース暗号方式では、暗号化鍵と復号鍵とに設定される属性が属性の組である。例えば、暗号化鍵と復号鍵とに設定される属性が、それぞれ、X:=(x1,...,xd)と、V:=(v1,...,vd)とである。
そして、属性のコンポーネントについて、コンポーネント毎の等号関係(例えば、{xt=vt}t∈{1,...,d})がアクセスストラクチャSに入力される。そして、アクセスストラクチャSが入力を受理した場合にのみ、R(X,V)が成立する。つまり、暗号化鍵で暗号化された暗号文を復号鍵で復号することができる。
アクセスストラクチャSが復号鍵dkVに埋め込まれている場合、属性ベース暗号(ABE)方式は、Key−Policy ABE(KP−ABE)と呼ばれる。一方、アクセスストラクチャSが暗号文に埋め込まれている場合、属性ベース暗号(ABE)方式は、Ciphertext−Policy ABE(CP−ABE)と呼ばれる。そして、アクセスストラクチャSが復号鍵dkVと暗号文との両方に埋め込まれている場合、属性ベース暗号(ABE)方式は、Unified−Policy ABE(UP−ABE)と呼ばれる。
まず、対称双線形ペアリング群(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である。
以下の説明において、数113を、1λを入力として、セキュリティパラメータをλとする双線形ペアリング群のパラメータparamG:=(q,G,GT,g,e)の値を出力するアルゴリズムとする。
双対ペアリングベクトル空間(q,V,GT,A,e)は、対称双線形ペアリング群(paramG:=(q,G,GT,g,e))の直積によって構成することができる。双対ペアリングベクトル空間(q,V,GT,A,e)は、素数q、数114に示すFq上のN次元ベクトル空間V、位数qの巡回群GT、空間Vの標準基底A:=(a1,...,aN)の組であり、以下の演算(1)(2)を有する。ここで、aiは、数115に示す通りである。
空間Vにおけるペアリングは、数116によって定義される。
<第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,ρ)はΓを受理する。
アクセスストラクチャ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を数120に示す列ベクトルとする。
これは、図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が存在する。
そして、数123である。
例えば、上述した属性ベース暗号方式は、この実施の形態及び以下の実施の形態に係る関数型暗号方式におけるアクセスストラクチャにおいて、内積述語の設計をある条件に限定した場合に相当する。つまり、この実施の形態及び以下の実施の形態に係る関数型暗号方式におけるアクセスストラクチャに比べ、属性ベース暗号方式におけるアクセスストラクチャは、内積述語における属性情報x及び属性情報v(述語情報)を設計の自由度がない分、アクセス制御の設計の自由度が低い。なお、具体的には、属性ベース暗号方式は、属性情報{x→ t}t∈{1,...,d}と{v→ t}t∈{1,...,d}とを、等号関係に対する2次元ベクトル、例えばx→ t:=(1,xt)とv→ t:=(vt,−1)とに限定した場合に相当する。
また、上述した内積述語暗号方式は、この実施の形態及び以下の実施の形態に係る関数型暗号方式におけるアクセスストラクチャにおいて、スパンプログラムにおける行列Mの設計をある条件に限定した場合に相当する。つまり、この実施の形態及び以下の実施の形態に係る関数型暗号方式におけるアクセスストラクチャに比べ、内積述語暗号方式におけるアクセスストラクチャは、スパンプログラムにおける行列Mの設計の自由度がない分、アクセス制御の設計の自由度が低い。なお、具体的には、内積述語暗号方式は、秘密分散方式を1−out−of−1(あるいは、d−out−of−d)に限定した場合である。
具体的には、ノンモノトーンスパンプログラムには、否定形のリテラル(¬p)を含むため、否定形の条件を設定できる。例えば、第1会社には、A部とB部とC部とD部との4つの部署があったとする。ここで、第1会社のB部以外の部署の属するユーザにのみアクセス可能(復号可能)というアクセス制御をしたいとする。この場合に、否定形の条件の設定ができないとすると、「第1会社のA部とC部とD部とのいずれかに属すること」という条件を設定する必要がある。一方、否定形の条件の設定ができるとすると、「第1会社の社員であって、B部以外に属すること」という条件を設定することができる。つまり、否定形の条件が設定できることで、自然な条件設定が可能となる。なお、ここでは部署の数が少ないが、部署の数が多い場合等は非常に有効であることが分かる。
<第4−1.Unified−Policy関数型暗号方式の基本構成>
Unified−Policy関数型暗号方式の構成を簡単に説明する。なお、Unified−Policyとは、復号鍵及び暗号文にPolicyが埋め込まれること、つまりアクセスストラクチャが埋め込まれることを意味する。
Unified−Policy関数型暗号方式は、Setup、KeyGen、Enc、Decの4つのアルゴリズムを備える。
(Setup)
Setupアルゴリズムは、セキュリティパラメータλと、属性のフォーマットn→:=((dKP;nt KP,ut KP,wt KP,zt KP(t=1,...,dKP)),(dCP;nt CP,ut CP,wt CP,zt CP(t=1,...,dCP)))とが入力され、公開パラメータpkと、マスター鍵skとを出力する確率的アルゴリズムである。
(KeyGen)
KeyGenアルゴリズムは、アクセスストラクチャSKP:=(MKP,ρKP)と、属性の集合であるΓCP:={(t,x→ t CP)|x→ t CP∈Fq ntCP\{0→},1≦t≦dCP}と、公開パラメータpkと、マスター鍵skとを入力として、復号鍵sk(SKP,ΓCP)を出力する確率的アルゴリズムである。
(Enc)
Encアルゴリズムは、メッセージmと、属性の集合であるΓKP:={(t,x→ t KP)|x→ t KP∈Fq ntKP\{0→},1≦t≦dKP}と、アクセスストラクチャSCP:=(MCP,ρCP)と、公開パラメータpkとを入力として、暗号化データct(ΓKP,SCP)を出力する確率的アルゴリズムである。
(Dec)
Decアルゴリズムは、属性の集合及びアクセスストラクチャ(ΓKP,SCP)の下で暗号化された暗号化データct(ΓKP,SCP)と、アクセスストラクチャ及び属性の集合(SKP,ΓCP)に対する復号鍵sk(SKP,ΓCP)と、公開パラメータpkとを入力として、メッセージm(平文情報)、又は、識別情報⊥を出力するアルゴリズムである。
上述したUnified−Policy関数型暗号方式のアルゴリズムを実行する暗号処理システム10について説明する。
図5は、Unified−Policy関数型暗号方式を実行する暗号処理システム10の構成図である。
暗号処理システム10は、鍵生成装置100、暗号化装置200、復号装置300を備える。
鍵生成装置100は、セキュリティパラメータλと、属性のフォーマットn→:=((dKP;nt KP,ut KP,wt KP,zt KP(t=1,...,dKP)),(dCP;nt CP,ut CP,wt CP,zt CP(t=1,...,dCP)))とを入力としてSetupアルゴリズムを実行して、公開パラメータpkとマスター鍵skとを生成する。そして、鍵生成装置100は、生成した公開パラメータpkを公開する。また、鍵生成装置100は、アクセスストラクチャSKPと、属性の集合ΓCPと、公開パラメータpkと、マスター鍵skとを入力としてKeyGenアルゴリズムを実行して、復号鍵sk(SKP,ΓCP)を生成して復号装置300へ秘密裡に配布する。
暗号化装置200は、メッセージmと、属性の集合ΓKPと、アクセスストラクチャSCPと、公開パラメータpkとを入力としてEncアルゴリズムを実行して、暗号化データct(ΓKP,SCP)を生成する。暗号化装置200は、生成した暗号化データct(ΓKP,SCP)を復号装置300へ送信する。
復号装置300は、公開パラメータpkと、復号鍵sk(SKP,ΓCP)と、暗号化データct(ΓKP,SCP)とを入力としてDecアルゴリズムを実行して、メッセージm又は識別情報⊥を出力する。
図6から図12に基づき、Unified−Policy関数型暗号方式、及び、Unified−Policy関数型暗号方式を実行する暗号処理システム10の機能と動作とについて説明する。
図6は、鍵生成装置100の機能を示す機能ブロック図である。図7は、暗号化装置200の機能を示す機能ブロック図である。図8は、復号装置300の機能を示す機能ブロック図である。
図9と図10とは、鍵生成装置100の動作を示すフローチャートである。なお、図9はSetupアルゴリズムの処理を示すフローチャートであり、図10はKeyGenアルゴリズムの処理を示すフローチャートである。図11は、暗号化装置200の動作を示すフローチャートであり、Encアルゴリズムの処理を示すフローチャートである。図12は、復号装置300の動作を示すフローチャートであり、Decアルゴリズムの処理を示すフローチャートである。
なお、ここでは、xt,1 KP:=1,xt,1 CP:=1に正規化する。なお、xt,1 KP及びxt,1 CPが正規化されていない場合、(1/xt,1 KP)・xt,1 KP、及び、(1/xt,1 CP)・xt,1 CPとして正規化すればよい。この場合、xt,i KP及びxt,i CPは0でないものとする。
図6に示すように、鍵生成装置100は、マスター鍵生成部110、マスター鍵記憶部120、情報入力部130(第1情報入力部)、復号鍵生成部140、鍵配布部150を備える。
また、情報入力部130は、KP情報入力部131(第1KP情報入力部)、CP情報入力部132(第1CP情報入力部)を備える。また、復号鍵生成部140は、fベクトル生成部141、sベクトル生成部142、乱数生成部143、主復号鍵生成部144、KP復号鍵生成部145、CP復号鍵生成部146を備える。
(S101:正規直交基底生成ステップ)
マスター鍵生成部110は、処理装置により、数127を計算して、paramn→と、基底B0及び基底B* 0と、t=1,...,dKPの各整数tについて基底Bt KP及び基底B* t KPと、t=1,...,dCPの各整数tについて基底Bt CP及び基底B* t CPとをランダムに生成する。
まず、マスター鍵生成部110は、入力装置により、セキュリティパラメータλ(1λ)と、属性のフォーマットn→:=((dKP;nt KP,ut KP,wt KP,zt KP(t=1,...,dKP)),(dCP;nt CP,ut CP,wt CP,zt CP(t=1,...,dCP)))とを入力する。ここで、dKPは1以上の整数であり、t=1,...,dKPまでの各整数tについてnt KP,ut KP,wt KP,zt KPは1以上の整数である。また、dCPは1以上の整数であり、t=1,...,dCPまでの各整数tについてnt CP,ut CP,wt CP,zt CPは1以上の整数である。
また、マスター鍵生成部110は、設定したN0と、Fqとを入力として、線形変換X0:=(χ0,i,j)i,jをランダムに生成する。なお、GLは、General Linearの略である。つまり、GLは、一般線形群であり、行列式が0でない正方行列の集合であり、乗法に関し群である。また、(χ0,i,j)i,jは、行列χ0,i,jの添え字i,jに関する行列という意味であり、ここでは、i,j=1,...,N0である。
また、マスター鍵生成部110は、乱数ψと線形変換X0とに基づき、(ν0,i,j)i,j:=ψ・(X0 T)−1を生成する。なお、(ν0,i,j)i,jも(χ0,i,j)i,jと同様に、行列ν0,i,jの添え字i,jに関する行列という意味であり、ここでは、i,j=1,...,N0である。
そして、マスター鍵生成部110は、線形変換X0に基づき、標準基底A0から基底B0を生成する。同様に、マスター鍵生成部110は、(ν0,i,j)i,jに基づき、標準基底A0から基底B* 0を生成する。
マスター鍵生成部110は、入力したセキュリティパラメータλ(1λ)と、設定したNt KPと、生成したparamG:=(q,G,GT,g,e)の値とを入力としてアルゴリズムGdpvsを実行して、双対ペアリングベクトル空間のパラメータparamVtKP:=(q,Vt KP,GT,At KP,e)の値を生成する。
また、マスター鍵生成部110は、設定したNt KPと、Fqとを入力として、線形変換Xt KP:=(χt KP ,i,j)i,jをランダムに生成する。(χt KP ,i,j)i,jは、行列χt KP ,i,jの添え字i,jに関する行列という意味であり、ここでは、i,j=1,...,Nt KPである。
また、マスター鍵生成部110は、乱数ψと線形変換Xt KPとに基づき、(νt KP ,i,j)i,j:=ψ・((Xt KP)T)−1を生成する。なお、(νt KP ,i,j)i,jも(χt KP ,i,j)i,jと同様に、行列νt KP ,i,jの添え字i,jに関する行列という意味であり、ここでは、i,j=1,...,Nt KPである。
そして、マスター鍵生成部110は、線形変換Xt KPに基づき、標準基底At KPから基底Bt KPを生成する。同様に、マスター鍵生成部110は、(νt KP ,i,j)i,jに基づき、標準基底At KPから基底B* t KPを生成する。
マスター鍵生成部110は、入力したセキュリティパラメータλ(1λ)と、設定したNt CPと、生成したparamG:=(q,G,GT,g,e)の値とを入力としてアルゴリズムGdpvsを実行して、双対ペアリングベクトル空間のパラメータparamVtCP:=(q,Vt CP,GT,At CP,e)の値を生成する。
また、マスター鍵生成部110は、設定したNt CPと、Fqとを入力として、線形変換Xt CP:=(χt CP ,i,j)i,jをランダムに生成する。(χt CP ,i,j)i,jは、行列χt CP ,i,jの添え字i,jに関する行列という意味であり、ここでは、i,j=1,...,Nt CPである。
また、マスター鍵生成部110は、乱数ψと線形変換Xt CPとに基づき、(νt CP ,i,j)i,j:=ψ・((Xt CP)T)−1を生成する。なお、(νt CP ,i,j)i,jも(χt CP ,i,j)i,jと同様に、行列νt CP ,i,jの添え字i,jに関する行列という意味であり、ここでは、i,j=1,...,Nt CPである。
そして、マスター鍵生成部110は、線形変換Xt CPに基づき、標準基底At CPから基底Bt CPを生成する。同様に、マスター鍵生成部110は、(νt CP ,i,j)i,jに基づき、標準基底At CPから基底B* t CPを生成する。
また、マスター鍵生成部110は、paramn→にparamV0と、t=1,...,dKPの各整数tについてのparamVtKPと、t=1,...,dCPの各整数tについてのparamVtCPと、gTとを設定する。なお、i=1,...,N0の各整数iについて、gT=e(b0,i,b* 0,i)である。また、t=1,...,dKPとi=1,...,Nt KPとの各整数t,iについて、gT=e(bt,i,b* t,i)である。また、t=1,...,dCPとi=1,...,Nt CPとの各整数t,iについて、gT=e(bt,i,b* t,i)である。
マスター鍵生成部110は、処理装置により、基底B0の部分基底B^0と、t=1,...,dKPの各整数tについて、基底Bt KPの部分基底B^t KPと、t=1,...,dCPの各整数tについて、基底Bt CPの部分基底B^t CPとを数134に示すように生成する。
マスター鍵生成部110は、処理装置により、基底B* 0の部分基底B^* 0と、t=1,...,dKPの各整数tについて、基底B* t KPの部分基底B^* t KPと、t=1,...,dCPの各整数tについて、基底B* t CPの部分基底B^* t CPとを数135に示すように生成する。
マスター鍵記憶部120は、(S102)で生成した公開パラメータpkを記憶装置に記憶する。また、マスター鍵記憶部120は、(S103)で生成したマスター鍵skを記憶装置に記憶する。
なお、公開パラメータは、例えば、ネットワークを介して公開され、暗号化装置200や復号装置300が取得可能な状態にされる。
(S201:情報入力ステップ)
第1KP情報入力部131は、入力装置により、アクセスストラクチャSKP:=(MKP,ρKP)を入力する。なお、行列MKPは、LKP行×rKP列の行列である。LKP,rKPは、1以上の整数である。
また、第1CP情報入力部132は、入力装置により、属性の集合ΓCP:={(t,x→ t CP:=(xt,i CP(i=1,...,nt CP))∈Fq ntCP\{0→})|1≦t≦dCP}を入力する。tは、1以上dCP以下の全ての整数ではなく、1以上dCP以下の少なくとも一部の整数であってもよい。
なお、アクセスストラクチャSKPの行列MKPの設定については、実現したいシステムの条件に応じて設定されるものである。また、アクセスストラクチャSKPのρKPや属性の集合ΓCPは、例えば、復号鍵sk(SKP,ΓCP)の使用者の属性情報が設定されている。
sベクトル生成部142は、処理装置により、(S201)で入力したアクセスストラクチャSKPに含まれる(LKP行×rKP列)の行列MKPと、(S202)で生成したrKP個の要素を有するベクトルf→KPとに基づき、ベクトル(s→KP)Tを数138に示すように生成する。
乱数生成部143は、処理装置により、乱数δCPと、ΓCPに含まれる(t,x→ t CP)の各整数tについて乱数η→ t CPと、乱数η→ 0とを数140に示すように生成する。
主復号鍵生成部144は、処理装置により、復号鍵sk(SKP,ΓCP)の要素である主復号鍵k* 0を数141に示すように生成する。
基底B* 0の基底ベクトル1の係数として−s0 KPが設定される。基底ベクトル2の係数として乱数δCPが設定される。基底ベクトル2+1,...,2+u0の係数として0が設定される。基底ベクトル2+u0+1の係数として1が設定される。基底ベクトル2+u0+1+1,...,2+u0+1+w0の係数として乱数η0,1,...,η0,w0(ここで、w0はw0のことである)が設定される。基底ベクトル2+u0+1+w0+1,...,2+u0+1+w0+z0の係数として0が設定される。
KP復号鍵生成部145は、処理装置により、i=1,...,LKPの各整数iについて、復号鍵sk(SKP,ΓCP)の要素であるKP復号鍵k* i KPを数142に示すように生成する。
ρKP(i)が肯定形の組(t,v→ i KP)である場合には、基底ベクトル1の係数としてsi KP+θi KPvi,1 KPが設定される。なお、上述したように、e→ t,j KPは、数112に示す正規基底ベクトルを示す。また、基底ベクトル2,...,nt KPの係数としてθi KPvi,2 KP,...,θi KPvi,ntKP KP(ここで、ntKPはnt KPのことである)が設定される。基底ベクトルnt KP+1,...,nt KP+ut KPの係数として0が設定される。基底ベクトルnt KP+ut KP+1,...,nt KP+ut KP+wt KPの係数としてηi,1 KP,...,ηi,wtKP KP(ここで、wtKPはwt KPのことである)が設定される。基底ベクトルnt KP+ut KP+wt KP+1,...,nt KP+ut KP+wt KP+zt KPの係数として0が設定される。
一方、ρKP(i)が否定形の組¬(t,v→ i KP)である場合には、基底ベクトル1,...,nt KPの係数としてsi KPvi,1 KP,...,si KPvi,ntKP KP(ここで、ntKPはnt KPのことである)が設定される。基底ベクトルnt KP+1,...,nt KP+ut KPの係数として0が設定される。基底ベクトルnt KP+ut KP+1,...,nt KP+ut KP+wt KPの係数としてηi,1 KP,...,ηi,wtKP KP(ここで、wtKPはwt KPのことである)が設定される。基底ベクトルnt KP+ut KP+wt KP+1,...,nt KP+ut KP+wt KP+zt KPの係数として0が設定される。
なお、θi KP及びη→ i KPは乱数生成部143によって生成される乱数である。
CP復号鍵生成部146は、処理装置により、ΓCPに含まれる(t,x→ t CP)の各整数tについて、復号鍵sk(SKP,ΓCP)の要素であるCP復号鍵k* t CPを数143に示すように生成する。
基底ベクトル1,...,nt CPの係数としてδCPxt,1 CP,...,δCPxt,ntCP CP(ここで、ntCPはnt CPのことである)が設定される。基底ベクトルnt CP+1,...,nt CP+ut CPの係数として0が設定される。基底ベクトルnt CP+ut CP+1,...,nt CP+ut CP+wt CPの係数としてηt,1 CP,...,ηt,wtCP CP(ここで、wtCPはwt CPのことである)が設定される。基底ベクトルnt CP+ut CP+wt CP+1,...,nt CP+ut CP+wt CP+zt CPの係数として0が設定される。
鍵配布部150は、主復号鍵k* 0と、アクセスストラクチャSKP及びKP復号鍵k* i KP(i=1,...,LKP)と、属性の集合ΓCP及びCP復号鍵k* t CP(tは属性の集合ΓCPに含まれる(t,x→ t CP)におけるt)とを要素とする復号鍵sk(SKP,ΓCP)を、例えば通信装置によりネットワークを介して秘密裡に復号装置300へ配布する。もちろん、復号鍵sk(SKP,ΓCP)は、他の方法により復号装置300へ配布されてもよい。
図7に示すように、暗号化装置200は、公開パラメータ取得部210、情報入力部220(第2情報入力部)、暗号化データ生成部230、データ送信部240(データ出力部)を備える。
また、情報入力部220は、KP情報入力部221(第2KP情報入力部)、CP情報入力部222(第2CP情報入力部)、メッセージ入力部223を備える。また、暗号化データ生成部230は、fベクトル生成部231、sベクトル生成部232、乱数生成部233、主暗号化データ生成部234、KP暗号化データ生成部235、CP暗号化データ生成部236、メッセージ暗号化データ生成部237を備える。
(S301:公開パラメータ取得ステップ)
公開パラメータ取得部210は、例えば、通信装置によりネットワークを介して、鍵生成装置100が生成した公開パラメータpkを取得する。
KP情報入力部221は、入力装置により、属性の集合ΓKP:={(t,x→ t KP:=(xt,i KP(i=1,...,nt KP))∈Fq ntKP\{0→})|1≦t≦dKP}を入力する。tは、1以上dKP以下の全ての整数ではなく、1以上dKP以下の少なくとも一部の整数であってもよい。
また、CP情報入力部222は、入力装置により、アクセスストラクチャSCP:=(MCP,ρCP)を入力する。なお、行列MCPは、LCP行×rCP列の行列である。LCP,rCPは、1以上の整数である。
また、メッセージ入力部は、入力装置により、復号装置300へ送信するメッセージmを入力する。
なお、アクセスストラクチャSCPの行列MCPの設定については、実現したいシステムの条件に応じて設定されるものである。アクセスストラクチャSCPのρCPや属性の集合ΓKPは、例えば、復号可能なユーザの属性情報が設定されている。
乱数生成部233は、処理装置により、乱数ωKPと、乱数φ→ 0と、ΓKPに含まれる(t,x→ t KP)の各整数tについてφ→ t KPと、乱数ζとを数145に示すように生成する。
sベクトル生成部232は、処理装置により、(S302)で入力したアクセスストラクチャSCPに含まれる(LCP行×rCP列)の行列MCPと、(S304)で生成したrCP個の要素を有するベクトルf→CPとに基づき、ベクトル(s→CP)Tを数147に示すように生成する。
主暗号化データ生成部234は、処理装置により、暗号化データct(ΓKP,SCP)の要素である主暗号化データc0を数149に示すように生成する。
基底B0の基底ベクトル1の係数として乱数ωKPが設定される。基底ベクトル2の係数として−s0 CPが設定される。基底ベクトル2+1,...,2+u0の係数として0が設定される。基底ベクトル2+u0+1の係数として乱数ζが設定される。基底ベクトル2+u0+1+1,...,2+u0+1+w0の係数として0が設定される。基底ベクトル2+u0+1+w0+1,...,2+u0+1+w0+z0の係数として乱数φ0,1,...,φ0,z0(ここで、z0はz0のことである)が設定される。
KP暗号化データ生成部235は、処理装置により、ΓKPに含まれる(t,x→ t KP)の各整数tについて、暗号化データct(ΓKP,SCP)の要素であるKP暗号化データct KPを数150に示すように生成する。
基底ベクトル1,...,nt KPの係数としてωKPxt,1 KP,...,ωKPxt,ntKP KP(ここで、ntKPはnt KPのことである)が設定される。基底ベクトルnt KP+1,...,nt KP+ut KP+wt KPの係数として0が設定される。基底ベクトルnt KP+ut KP+wt KP+1,...,nt KP+ut KP+wt KP+zt KPの係数としてφt,1 KP,...,φt,ztKP KP(ここで、ztCPはzt CPのことである)が設定される。
CP暗号化データ生成部236は、処理装置により、i=1,...,LCPの各整数iについて、暗号化データct(ΓKP,SCP)の要素であるCP暗号化データci CPを数151に示すように生成する。
ρCP(i)が肯定形の組(t,v→ i CP)である場合には、基底ベクトル1の係数としてsi CP+θi CPvi,1 CPが設定される。なお、上述したように、e→ t,j CPは、数112に示す正規基底ベクトルを示す。また、基底ベクトル2,...,nt CPの係数としてθi CPvi,2 CP,...,θi CPvi,ntCP CP(ここで、ntCPはnt CPのことである)が設定される。基底ベクトルnt CP+1,...,nt CP+ut CP+wt CPの係数として0が設定される。基底ベクトルnt CP+ut CP+wt CP+1,...,nt CP+ut CP+wt CP+zt CPの係数としてφi,1 CP,...,φi,ztCP CP(ここで、ztCPはzt CPのことである)が設定される。
一方、ρCP(i)が否定形の組¬(t,v→ i CP)である場合には、基底ベクトル1,...,nt CPの係数としてsi CPvi,1 CP,...,si CPvi,ntCP CP(ここで、ntCPはnt CPのことである)が設定される。基底ベクトルnt CP+1,...,nt CP+ut CP+wt CPの係数として0が設定される。基底ベクトルnt CP+ut CP+wt CP+1,...,nt CP+ut CP+wt CP+zt CPの係数としてφi,1 CP,...,φi,ztCP CP(ここで、ztCPはzt CPのことである)が設定される。
なお、θi CP及びφ→ i CPは乱数生成部233によって生成される乱数である。
メッセージ暗号化データ生成部237は、処理装置により、暗号化データct(ΓKP,SCP)の要素であるメッセージ暗号化データcd+1を数152に示すように生成する。
データ送信部240は、主暗号化データc0と、属性の集合ΓKP及びKP暗号化データct KPと、アクセスストラクチャSCP及びCP暗号化データci CPと、メッセージ暗号化データcd+1とを要素とする暗号化データct(ΓKP,SCP)を、例えば通信装置によりネットワークを介して復号装置300へ送信する。もちろん、暗号化データct(ΓKP,SCP)は、他の方法により復号装置300へ送信されてもよい。
図8に示すように、復号装置300は、復号鍵取得部310、データ受信部320(データ取得部)、スパンプログラム計算部330、補完係数計算部340、ペアリング演算部350、メッセージ計算部360を備える。
また、スパンプログラム計算部330は、KPスパンプログラム計算部331、CPスパンプログラム計算部332を備える。また、補完係数計算部340は、KP補完係数計算部341、CP補完係数計算部342を備える。
(S401:復号鍵取得ステップ)
復号鍵取得部310は、例えば、通信装置によりネットワークを介して、鍵生成装置100から配布された復号鍵sk(SKP,ΓCP)を取得する。また、復号鍵取得部310は、鍵生成装置100が生成した公開パラメータpkを取得する。
データ受信部320は、例えば、通信装置によりネットワークを介して、暗号化装置200が送信した暗号化データct(ΓKP,SCP)を受信する。
KPスパンプログラム計算部331は、処理装置により、(S401)で取得した復号鍵sk(SKP,ΓCP)に含まれるアクセスストラクチャSKPが、(S402)で受信した暗号化データct(ΓKP,SCP)に含まれる属性の集合ΓKPを受理するか否かを判定する。
また、CPスパンプログラム計算部332は、処理装置により、(S402)で受信した暗号化データct(ΓKP,SCP)に含まれるアクセスストラクチャSCPが、(S401)で取得した復号鍵sk(SKP,ΓCP)に含まれる属性の集合ΓCPを受理するか否かを判定する。
なお、アクセスストラクチャが属性の集合を受理するか否かの判定方法は、「第3.関数型暗号を実現するための概念」で説明した通りである。
スパンプログラム計算部330は、アクセスストラクチャSKPが属性の集合ΓKPを受理し、かつ、アクセスストラクチャSCPが属性の集合ΓCPを受理する場合(S403で受理)、処理を(S404)へ進める。一方、アクセスストラクチャSKPが属性の集合ΓKPを拒絶する場合と、アクセスストラクチャSCPが属性の集合ΓCPを拒絶する場合との少なくともいずれかの場合(S403で拒絶)、暗号化データct(ΓKP,SCP)を復号鍵sk(SKP,ΓCP)で復号できないとして、識別情報⊥を出力して、処理を終了する。
KP補完係数計算部341は、処理装置により、数155となるIKPと、IKPに含まれる各整数iについて定数(補完係数)αi KPとを計算する。
ペアリング演算部350は、処理装置により、数157を計算して、セッション鍵K=gT ζを生成する。
メッセージ計算部360は、処理装置により、m’=cd+1/Kを計算して、メッセージm’(=m)を生成する。なお、メッセージ暗号化データcd+1は数152に示す通りgT ζmであり、KはgT ζであるから、m’=cd+1/Kを計算すればメッセージmが得られる。
特に、暗号処理システム10は、アクセスストラクチャSKPを復号鍵に持たせ、アクセスストラクチャSCPを暗号化データに持たせている。したがって、暗号処理システム10は、復号鍵と暗号化データとの両方でアクセスコントロールを行うことができる。
また、上記説明では、(S101)でNt KPにnt KP+ut KP+wt KP+zt KPを設定した。しかし、nt KP+ut KP+wt KP+zt KPをnt KP+nt KP+nt KP+1として、Nt KPに3nt KP+1を設定してもよい。
同様に、(S101)でNt CPにnt CP+ut CP+wt CP+zt CPを設定した。しかし、nt CP+ut CP+wt CP+zt CPをnt CP+nt CP+nt CP+1として、Nt CPに3nt CP+1を設定してもよい。
この場合、数136に示すSetupアルゴリズムは、数160のように書き換えられる。なお、Gob UPは数161のように書き換えられる。
言い替えると、ρKP(i)=(t,v→ i KP)又はρKP(i)=¬(t,v→ i KP)である場合に、関数ρ〜KPを、ρ〜KP(i)=tである{1,...,L}→{1,..,dKP}の写像であるとする。この場合、ρ〜KPが単射であると限定してもよい。なお、ρKP(i)は、上述したアクセスストラクチャSKP:=(MKP,ρKP(i))のρKP(i)である。
同様に、i=1,...,LCPの各整数iについてのρCP(i)は、それぞれ異なる識別情報tについての肯定形の組(t,v→ i CP)又は否定形の組¬(t,v→ i CP)であると限定してもよい。
言い替えると、ρCP(i)=(t,v→ i CP)又はρCP(i)=¬(t,v→ i CP)である場合に、関数ρ〜CPを、ρ〜CP(i)=tである{1,...,L}→{1,..,dCP}の写像であるとする。この場合、ρ〜CPが単射であると限定してもよい。なお、ρCP(i)は、上述したアクセスストラクチャSCP:=(MCP,ρCP(i))のρCP(i)である。
この場合、KeyGenアルゴリズムにおいて、s0 KP:=1→・(f→KP)Tではなく、s0:=h→KP・(f→KP)Tとすればよい。同様に、Encアルゴリズムにおいて、s0 CP:=1→・(f→CP)Tではなく、s0:=h→CP・(f→CP)Tとすればよい。
以上の実施の形態では、双対ベクトル空間において暗号処理を実現する方法について説明した。この実施の形態では、双対加群において暗号処理を実現する方法について説明する。
例えば、第1階層目(最上位)においては、t=1の基底Btと基底B* tとを用い、第2階層目においては、t=1,2の基底Btと基底B* tとを用い、・・・、第k階層目においては、t−1,...,kの基底Btと基底B* tとを用いる。用いる基底Btと基底B* tとが増える分、属性情報が多く設定されることになる。したがって、より復号鍵の権限が限定されることになる。
図13は、鍵生成装置100、暗号化装置200、復号装置300のハードウェア構成の一例を示す図である。
図13に示すように、鍵生成装置100、暗号化装置200、復号装置300は、プログラムを実行するCPU911(Central・Processing・Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。CPU911は、バス912を介してROM913、RAM914、LCD901(Liquid Crystal Display)、キーボード902(K/B)、通信ボード915、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置920(固定ディスク装置)の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。磁気ディスク装置920は、所定の固定ディスクインタフェースを介して接続される。
ファイル群924には、上記の説明において「公開パラメータpk」、「マスター鍵sk」、「暗号化データct(ΓKP,SCP)」、「復号鍵sk(SKP,ΓCP)」、「アクセスストラクチャSKP,SCP」、「属性の集合ΓKP,ΓCP」、「メッセージm」等の情報やデータや信号値や変数値やパラメータが、「ファイル」や「データベース」の各項目として記憶される。「ファイル」や「データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのCPU911の動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のCPU911の動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、上記の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。また、「〜装置」として説明するものは、「〜回路」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。さらに、「〜処理」として説明するものは「〜ステップ」であっても構わない。すなわち、「〜部」として説明するものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、ROM913等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラムは、上記で述べた「〜部」としてコンピュータ等を機能させるものである。あるいは、上記で述べた「〜部」の手順や方法をコンピュータ等に実行させるものである。
Claims (8)
- 鍵生成装置と暗号化装置と復号装置とを備え、基底B0及び基底B0 *と、t=1,...,dKP(dKPは1以上の整数)の各整数tについての基底Bt KP及び基底B* t KPと、t=1,...,dCP(dCPは1以上の整数)の各整数tについての基底Bt CP及び基底B* t CPとを用いて暗号処理を実行する暗号処理システムであり、
前記鍵生成装置は、
i=1,...,LKP(LKPは1以上の整数)の各整数iについての変数ρKP(i)であって、識別情報t(t=1,...,dKPのいずれかの整数)と、属性ベクトルv→ i KP:=(vi,i’ KP)(i’=1,...,nt KP,nt KPは1以上の整数)との肯定形の組(t,v→ i KP)又は否定形の組¬(t,v→ i KP)のいずれかである変数ρKP(i)と、LKP行rKP列(rKPは1以上の整数)の所定の行列MKPとを入力する第1KP情報入力部と、
t=1,...,dCPの少なくとも1つ以上の整数tについて、識別情報tと、属性ベクトルx→ t CP:=(xt,i’ CP)(i’=1,...,nt CP,nt CPは1以上の整数)とを有する属性集合ΓCPを入力する第1CP情報入力部と、
基底B* 0の基底ベクトルb* 0,p(pは所定の値)の係数として値−s0 KP(s0 KP:=h→KP・(f→KP)T,h→KP及びf→KPはrKP個の要素を有するベクトル)を設定し、基底ベクトルb* 0,p’(p’は前記pとは異なる所定の値)の係数として乱数δCPを設定し、基底ベクトルb* 0,q(qは前記p及び前記p’とは異なる所定の値)の係数として所定の値κを設定して要素k* 0を生成する主復号鍵生成部と、
前記f→KPと、前記第1KP情報入力部が入力した行列MKPに基づき生成される列ベクトル(s→KP)T:=(s1 KP,...,si KP)T:=MKP・(f→KP)T(i=LKP)と、乱数θi KP(i=1,...,LKP)とに基づき、i=1,...,LKPの各整数iについての要素k* i KPを生成するKP復号鍵生成部であって、i=1,...,LKPの各整数iについて、変数ρKP(i)が肯定形の組(t,v→ i KP)である場合には、その組の識別情報tが示す基底B* t KPの基底ベクトルb* t,1 KPの係数としてsi KP+θi KPvi,1 KPを設定するとともに、前記識別情報tとi’=2,...,nt KPの各整数i’とが示す基底ベクトルb* t,i’ KPの係数としてθi KPvi,i’ KPを設定して要素k* i KPを生成し、変数ρKP(i)が否定形の組¬(t,v→ i KP)である場合には、その組の識別情報tとi’=1,...,nt KPの各整数i’とが示す基底ベクトルb* t,i’ KPの係数としてsi KPvi,i’ KPを設定して要素k* i KPを生成するKP復号鍵生成部と、
前記第1CP情報入力部が入力した属性集合ΓCPに含まれる各識別情報tについての要素k* t CPを生成するCP復号鍵生成部であって、基底B* t CPの基底ベクトルb* t,i’ CP(i’=1,...,nt CP)の係数として前記乱数δCP倍したxt,i’ CPを設定して要素k* t CPを生成するCP復号鍵生成部と
を備え、
前記暗号化装置は、
t=1,...,dKPの少なくとも1つ以上の整数tについて、識別情報tと、属性ベクトルx→ t KP:=(xt,i’ KP)(i’=1,...,nt KP)とを有する属性集合ΓKPを入力する第2KP情報入力部と、
i=1,...,LCP(LCPは1以上の整数)の各整数iについての変数ρCP(i)であって、識別情報t(t=1,...,dCPのいずれかの整数)と、属性ベクトルv→ i CP:=(vi,i’ CP)(i’=1,...,nt CP)との肯定形の組(t,v→ i CP)又は否定形の組¬(t,v→ i CP)のいずれかである変数ρCP(i)と、LCP行rCP列(rCPは1以上の整数)の所定の行列MCPとを入力する第2CP情報入力部と、
基底B0の基底ベクトルb0,pの係数として乱数ωKPを設定し、基底ベクトルb0,p’の係数として値−s0 CP(s0 CP:=h→CP・(f→CP)T,h→CP及びf→CPはrCP個の要素を有するベクトル)を設定し、基底ベクトルb0,qの係数として乱数ζを設定して要素c0を生成する主暗号化データ生成部と、
前記第2KP情報入力部が入力した属性集合ΓKPに含まれる各識別情報tについての要素ct KPを生成するKP暗号化データ生成部であって、基底Bt KPの基底ベクトルbt,i’ KP(i’=1,...,nt)の係数として前記乱数ωKP倍したxt,i’ KPを設定して要素ct KPを生成するKP暗号化データ生成部と、
前記f→CPと、前記第2CP情報入力部が入力した行列MCPとに基づき生成される列ベクトル(s→CP)T:=(s1 CP,...,si CP)T:=MCP・(f→CP)T(i=LCP)と、乱数θi CP(i=1,...,LCP)とに基づき、i=1,...,LCPの各整数iについての要素ci CPを生成するCP暗号化データ生成部であって、i=1,...,LCPの各整数iについて、変数ρCP(i)が肯定形の組(t,v→ i CP)である場合には、その組の識別情報tが示す基底Bt CPの基底ベクトルbt,1 CPの係数としてsi CP+θi CPvi,1 CPを設定するとともに、前記識別情報tとi’=2,...,nt CPの各整数i’とが示す基底ベクトルbt,i’ CPの係数としてθi CPvi,i’ CPを設定して要素ci CPを生成し、変数ρCP(i)が否定形の組¬(t,v→ i CP)である場合には、その組の識別情報tとi’=1,...,nt CPの各整数i’とが示す基底ベクトルbt,i’ CPの係数としてsi CPvi,i’ CPを設定して要素ci CPを生成するCP暗号化データ生成部と
を備え、
前記復号装置は、
前記主暗号化データ生成部が生成した要素c0と、前記KP暗号化データ生成部が生成した要素ct KPと、前記CP暗号化データ生成部が生成した要素ci CPと、前記属性集合ΓKPと、前記変数ρCP(i)とを含む暗号化データct(ΓKP,SCP)を取得するデータ取得部と、
前記主復号鍵生成部が生成した要素k* 0と、前記KP復号鍵生成部が生成した要素k* i KPと、前記CP復号鍵生成部が生成した要素k* t CPと、前記変数ρKP(i)と、前記属性集合ΓCPとを含む復号鍵sk(SKP,ΓCP)を取得する復号鍵取得部と、
前記データ取得部が取得した暗号化データct(ΓKP,SCP)に含まれる属性集合ΓKPと、前記復号鍵取得部が取得した復号鍵sk(SKP,ΓCP)に含まれる変数ρKP(i)とに基づき、i=1,...,LKPの各整数iのうち、変数ρKP(i)が肯定形の組(t,v→ i KP)であり、かつ、その組のv→ i KPと、その組の識別情報tが示すΓKPに含まれるx→ t KPとの内積が0となるiと、変数ρKP(i)が否定形の組¬(t,v→ i KP)であり、かつ、その組のv→ i KPと、その組の識別情報tが示すΓKPに含まれるx→ t KPとの内積が0とならないiとの集合IKPを特定するとともに、特定した集合IKPに含まれるiについて、αi KPMi KPを合計した場合に前記h→KPとなる補完係数αi KPを計算するKP補完係数計算部と、
前記暗号化データct(ΓKP,SCP)に含まれるi=1,...,LCPの各整数iについての変数ρCP(i)と、前記復号鍵sk(SKP,ΓCP)に含まれる属性集合ΓCPとに基づき、i=1,...,LCPの各整数iのうち、変数ρCP(i)が肯定形の組(t,v→ i CP)であり、かつ、その組のv→ i CPと、その組の識別情報tが示すΓCPに含まれるx→ t CPとの内積が0となるiと、変数ρCP(i)が否定形の組¬(t,v→ i CP)であり、かつ、その組のv→ i CPと、その組の識別情報tが示すΓCPに含まれるx→ t CPとの内積が0とならないiとの集合ICPを特定するとともに、特定した集合ICPに含まれるiについて、αi CPMi CPを合計した場合に前記h→CPとなる補完係数αi CPを計算するCP補完係数計算部と、
前記暗号化データct(ΓKP,SCP)に含まれる要素c0と要素ct KPと要素ci CPと、前記復号鍵sk(SKP,ΓCP)に含まれる要素k* 0と要素k* i KPと要素k* t CPとについて、前記KP補完係数計算部が特定した集合IKPと、前記KP補完係数計算部が計算した補完係数αi KPと、前記CP補完係数計算部が特定した集合ICPと、前記CP補完係数計算部が計算した補完係数αi CPとに基づき、数1に示すペアリング演算を行い値Kを計算するペアリング演算部と
を備えることを特徴とする暗号処理システム。
- 前記暗号処理システムは、
少なくとも基底ベクトルb0,i(i=1,2,...,2+u0,2+u0+1,...,2+u0+1+w0,...,2+u0+1+z0)を有する基底B0と、
少なくとも基底ベクトルb* 0,i(i=1,2,...,2+u0,2+u0+1,...,2+u0+1+w0,...,2+u0+1+z0)を有する基底B* 0と、
少なくとも基底ベクトルbt,i KP(i=1,...,nt KP,...,nt KP+ut KP,...,nt KP+ut KP+wt KP,...,nt KP+ut KP+wt KP+zt KP)(ut KP,wt KP,zt KPは1以上の整数、)を有する基底Bt KP(t=1,...,d)と、
少なくとも基底ベクトルb* t,i KP(i=1,...,nt KP,...,nt KP+ut KP,...,nt KP+ut KP+wt KP,...,nt KP+ut KP+wt KP+zt KP)を有する基底B* t KP(t=1,...,dKP)と、
少なくとも基底ベクトルbt,i CP(i=1,...,nt CP,...,nt CP+ut CP,...,nt CP+ut CP+wt CP,...,nt CP+ut CP+wt CP+zt CP)(ut CP,wt CP,zt CPは1以上の整数、)を有する基底Bt CP(t=1,...,d)と、
少なくとも基底ベクトルb* t,i CP(i=1,...,nt CP,...,nt CP+ut CP,...,nt CP+ut CP+wt CP,...,nt CP+ut CP+wt CP+zt CP)を有する基底B* t CP(t=1,...,dCP)と
を用いて暗号処理を実行し、
前記鍵生成装置では、
前記主復号鍵生成部は、乱数δCP,η0,i(i=1,...,w0)と所定の値κとに基づき数2に示す要素k* 0を生成し、
前記KP復号鍵生成部は、前記変数ρKP(i)が肯定形の組(t,v→ i KP)である場合には、乱数θi KP,ηi,i’ KP(i=1,...,LKP,i’=1,...,wt KP)に基づき数3に示す要素k* i KPを生成し、変数ρKP(i)が否定形の組¬(t,v→ i KP)である場合には、乱数ηi,i’ KP(i=1,...,LKP,i’=1,...,wt KP)に基づき数4に示す要素k* i KPを生成し、
前記CP復号鍵生成部は、前記乱数δCPと乱数ηt,i CP(i=1,...,wt CP)に基づき数5に示す要素k* t CPとを生成し、
前記暗号化装置では、
前記主暗号化データ生成部は、前記乱数ωKPと乱数ζ,φ0,i(i=1,...,z0)とに基づき数6に示す要素c0を生成し、
前記KP暗号化データ生成部は、前記乱数ωKPと乱数φt,i KP(i=1,...,zt KP)に基づき数7に示す要素ct KPとを生成し、
前記CP暗号化データ生成部は、前記変数ρCP(i)が肯定形の組(t,v→ i CP)である場合には、乱数θi CP,φi,i’ CP(i=1,...,LCP,i’=1,...,zt CP)に基づき数8に示す要素ci CPを生成し、変数ρCP(i)が否定形の組¬(t,v→ i CP)である場合には、乱数φi,i’ CP(i=1,...,LCP,i’=1,...,zt CP)に基づき数9に示す要素ci CPを生成する
ことを特徴とする請求項1に記載の暗号処理システム。
- 前記暗号化装置は、さらに、
所定の値iについてgT=e(b0,i,b* 0,i)であり、t=1,...,dKPの各整数tと所定の値iとについてgT=e(bt,i,b* t,i)であり、t=1,...,dCPの各整数tと所定の値iとについてgT=e(bt,i,b* t,i)である値gTを用いて、メッセージmを埋め込んだ要素cd+1=gT ζmを生成するメッセージ暗号化データ生成部
を備え、
前記復号装置では、
前記データ取得部は、さらに前記要素cd+1を含む暗号化データct(ΓKP,SCP)を取得し、
前記復号装置は、さらに、
前記暗号化データct(ΓKP,SCP)に含まれる前記要素cd+1を、前記ペアリング演算部が計算した値Kで除して、前記メッセージmを計算するメッセージ計算部
を備えることを特徴とする請求項1又は2に記載の暗号処理システム。 - 基底B0及び基底B0 *と、t=1,...,dKP(dKPは1以上の整数)の各整数tについての基底Bt KP及び基底B* t KPと、t=1,...,dCP(dCPは1以上の整数)の各整数tについての基底Bt CP及び基底B* t CPとを用いて暗号処理を実行する暗号処理システムにおいて、復号鍵sk(SKP,ΓCP)を生成する鍵生成装置であり、
i=1,...,LKP(LKPは1以上の整数)の各整数iについての変数ρKP(i)であって、識別情報t(t=1,...,dKPのいずれかの整数)と、属性ベクトルv→ i KP:=(vi,i’ KP)(i’=1,...,nt KP,nt KPは1以上の整数)との肯定形の組(t,v→ i KP)又は否定形の組¬(t,v→ i KP)のいずれかである変数ρKP(i)と、LKP行rKP列(rKPは1以上の整数)の所定の行列MKPとを入力する第1KP情報入力部と、
t=1,...,dCPの少なくとも1つ以上の整数tについて、識別情報tと、属性ベクトルx→ t CP:=(xt,i’ CP)(i’=1,...,nt CP,nt CPは1以上の整数)とを有する属性集合ΓCPを入力する第1CP情報入力部と、
基底B* 0の基底ベクトルb* 0,p(pは所定の値)の係数として値−s0 KP(s0 KP:=h→KP・(f→KP)T,h→KP及びf→KPはrKP個の要素を有するベクトル)を設定し、基底ベクトルb* 0,p’(p’は前記pとは異なる所定の値)の係数として乱数δCPを設定し、基底ベクトルb* 0,q(qは前記p及び前記p’とは異なる所定の値)の係数として所定の値κを設定して復号鍵sk(SKP,ΓCP)の要素k* 0を生成する主復号鍵生成部と、
前記f→KPと、前記第1KP情報入力部が入力した行列MKPに基づき生成される列ベクトル(s→KP)T:=(s1 KP,...,si KP)T:=MKP・(f→KP)T(i=LKP)と、乱数θi KP(i=1,...,LKP)とに基づき、i=1,...,LKPの各整数iについての要素k* i KPを生成するKP復号鍵生成部であって、i=1,...,LKPの各整数iについて、変数ρKP(i)が肯定形の組(t,v→ i KP)である場合には、その組の識別情報tが示す基底B* t KPの基底ベクトルb* t,1 KPの係数としてsi KP+θi KPvi,1 KPを設定するとともに、前記識別情報tとi’=2,...,nt KPの各整数i’とが示す基底ベクトルb* t,i’ KPの係数としてθi KPvi,i’ KPを設定して復号鍵sk(SKP,ΓCP)の要素k* i KPを生成し、変数ρKP(i)が否定形の組¬(t,v→ i KP)である場合には、その組の識別情報tとi’=1,...,nt KPの各整数i’とが示す基底ベクトルb* t,i’ KPの係数としてsi KPvi,i’ KPを設定して復号鍵sk(SKP,ΓCP)の要素k* i KPを生成するKP復号鍵生成部と、
前記第1CP情報入力部が入力した属性集合ΓCPに含まれる各識別情報tについての要素k* t CPを生成するCP復号鍵生成部であって、基底B* t CPの基底ベクトルb* t,i’ CP(i’=1,...,nt CP)の係数として前記乱数δCP倍したxt,i’ CPを設定して復号鍵sk(SKP,ΓCP)の要素k* t CPを生成するCP復号鍵生成部と
を備えることを特徴とする鍵生成装置。 - 基底B0及び基底B0 *と、t=1,...,dKP(dKPは1以上の整数)の各整数tについての基底Bt KP及び基底B* t KPと、t=1,...,dCP(dCPは1以上の整数)の各整数tについての基底Bt CP及び基底B* t CPとを用いて暗号処理を実行する暗号処理システムにおいて、暗号化データct(ΓKP,SCP)を生成する暗号化装置であり、
t=1,...,dKPの少なくとも1つ以上の整数tについて、識別情報tと、属性ベクトルx→ t KP:=(xt,i’ KP)(i’=1,...,nt KP)とを有する属性集合ΓKPを入力する第2KP情報入力部と、
i=1,...,LCP(LCPは1以上の整数)の各整数iについての変数ρCP(i)であって、識別情報t(t=1,...,dCPのいずれかの整数)と、属性ベクトルv→ i CP:=(vi,i’ CP)(i’=1,...,nt CP)との肯定形の組(t,v→ i CP)又は否定形の組¬(t,v→ i CP)のいずれかである変数ρCP(i)と、LCP行rCP列(rCPは1以上の整数)の所定の行列MCPとを入力する第2CP情報入力部と、
基底B0の基底ベクトルb0,pの係数として乱数ωKPを設定し、基底ベクトルb0,p’の係数として値−s0 CP(s0 CP:=h→CP・(f→CP)T,h→CP及びf→CPはrCP個の要素を有するベクトル)を設定し、基底ベクトルb0,qの係数として乱数ζを設定して暗号化データct(ΓKP,SCP)の要素c0を生成する主暗号化データ生成部と、
前記第2KP情報入力部が入力した属性集合ΓKPに含まれる各識別情報tについての要素ct KPを生成するKP暗号化データ生成部であって、基底Bt KPの基底ベクトルbt,i’ KP(i’=1,...,nt)の係数として前記乱数ωKP倍したxt,i’ KPを設定して暗号化データct(ΓKP,SCP)の要素ct KPを生成するKP暗号化データ生成部と、
前記f→CPと、前記第2CP情報入力部が入力した行列MCPとに基づき生成される列ベクトル(s→CP)T:=(s1 CP,...,si CP)T:=MCP・(f→CP)T(i=LCP)と、乱数θi CP(i=1,...,LCP)とに基づき、i=1,...,LCPの各整数iについての要素ci CPを生成するCP暗号化データ生成部であって、i=1,...,LCPの各整数iについて、変数ρCP(i)が肯定形の組(t,v→ i CP)である場合には、その組の識別情報tが示す基底Bt CPの基底ベクトルbt,1 CPの係数としてsi CP+θi CPvi,1 CPを設定するとともに、前記識別情報tとi’=2,...,nt CPの各整数i’とが示す基底ベクトルbt,i’ CPの係数としてθi CPvi,i’ CPを設定して暗号化データct(ΓKP,SCP)の要素ci CPを生成し、変数ρCP(i)が否定形の組¬(t,v→ i CP)である場合には、その組の識別情報tとi’=1,...,nt CPの各整数i’とが示す基底ベクトルbt,i’ CPの係数としてsi CPvi,i’ CPを設定して暗号化データct(ΓKP,SCP)の要素ci CPを生成するCP暗号化データ生成部と
を備えることを特徴とする暗号化装置。 - 基底B0及び基底B0 *と、t=1,...,dKP(dKPは1以上の整数)の各整数tについての基底Bt KP及び基底B* t KPと、t=1,...,dCP(dCPは1以上の整数)の各整数tについての基底Bt CP及び基底B* t CPとを用いて暗号処理を実行する暗号処理システムにおいて、暗号化データct(ΓKP,SCP)を復号鍵sk(SKP,ΓCP)で復号する復号装置であり、
t=1,...,dKPの少なくとも1つ以上の整数tについて、識別情報tと、属性ベクトルx→ t KP:=(xt,i’ KP)(i’=1,...,nt KP,nt KPは1以上の整数)とを有する属性集合ΓKPと、
i=1,...,LCP(LCPは1以上の整数)の各整数iについての変数ρCP(i)であって、識別情報t(t=1,...,dCPのいずれかの整数)と、属性ベクトルv→ i CP:=(vi,i’ CP)(i’=1,...,nt CP,nt CPは1以上の整数)との肯定形の組(t,v→ i CP)又は否定形の組¬(t,v→ i CP)のいずれかである変数ρCP(i)と、
LCP行rCP列(rCPは1以上の整数)の所定の行列MCPと、
基底B0の基底ベクトルb0,pの係数として乱数ωKPが設定され、基底ベクトルb0,p’の係数として値−s0 CP(s0 CP:=h→CP・(f→CP)T,h→CP及びf→CPはrCP個の要素を有するベクトル)が設定され、基底ベクトルb0,qの係数として乱数ζが設定された要素c0と、
前記属性集合ΓKPに含まれる各識別情報tについて、基底Bt KPの基底ベクトルbt,i’ KP(i’=1,...,nt)の係数として前記乱数ωKP倍したxt,i’ KPが設定された要素ct KPと、
前記f→CPと、前記行列MCPとに基づき生成される列ベクトル(s→CP)T:=(s1 CP,...,si CP)T:=MCP・(f→CP)T(i=LCP)と、乱数θi CP(i=1,...,LCP)とに基づき、i=1,...,LCPの各整数iについて生成された要素ci CPであって、i=1,...,LCPの各整数iについて、変数ρCP(i)が肯定形の組(t,v→ i CP)である場合には、その組の識別情報tが示す基底Bt CPの基底ベクトルbt,1 CPの係数としてsi CP+θi CPvi,1 CPが設定されるとともに、前記識別情報tとi’=2,...,nt CPの各整数i’とが示す基底ベクトルbt,i’ CPの係数としてθi CPvi,i’ CPが設定され、変数ρCP(i)が否定形の組¬(t,v→ i CP)である場合には、その組の識別情報tとi’=1,...,nt CPの各整数i’とが示す基底ベクトルbt,i’ CPの係数としてsi CPvi,i’ CPが設定された要素ci CPと
を含む暗号化データct(ΓKP,SCP)を取得するデータ取得部と、
i=1,...,LKP(LKPは1以上の整数)の各整数iについての変数ρKP(i)であって、識別情報t(t=1,...,dKPのいずれかの整数)と、属性ベクトルv→ i KP:=(vi,i’ KP)(i’=1,...,nt KP)との肯定形の組(t,v→ i KP)又は否定形の組¬(t,v→ i KP)のいずれかである変数ρKP(i)と、
LKP行rKP列(rKPは1以上の整数)の所定の行列MKPと、
t=1,...,dCPの少なくとも1つ以上の整数tについて、識別情報tと、属性ベクトルx→ t CP:=(xt,i’ CP)(i’=1,...,nt CP)とを有する属性集合ΓCPと
基底B* 0の基底ベクトルb* 0,p(pは所定の値)の係数として値−s0 KP(s0 KP:=h→KP・(f→KP)T,h→KP及びf→KPはrKP個の要素を有するベクトル)が設定され、基底ベクトルb* 0,p’(p’は前記pとは異なる所定の値)の係数として乱数δCPが設定され、基底ベクトルb* 0,q(qは前記p及び前記p’とは異なる所定の値)の係数として所定の値κが設定された要素k* 0と、
前記f→KPと、前記第1KP情報入力部が入力した行列MKPに基づき生成される列ベクトル(s→KP)T:=(s1 KP,...,si KP)T:=MKP・(f→KP)T(i=LKP)と、乱数θi KP(i=1,...,LKP)とに基づき、i=1,...,LKPの各整数iについて生成された要素k* i KPであって、i=1,...,LKPの各整数iについて、変数ρKP(i)が肯定形の組(t,v→ i KP)である場合には、その組の識別情報tが示す基底B* t KPの基底ベクトルb* t,1 KPの係数としてsi KP+θi KPvi,1 KPが設定されるとともに、前記識別情報tとi’=2,...,nt KPの各整数i’とが示す基底ベクトルb* t,i’ KPの係数としてθi KPvi,i’ KPが設定され、変数ρKP(i)が否定形の組¬(t,v→ i KP)である場合には、その組の識別情報tとi’=1,...,nt KPの各整数i’とが示す基底ベクトルb* t,i’ KPの係数としてsi KPvi,i’ KPが設定された要素k* i KPと、
前記属性集合ΓCPに含まれる各識別情報tについて、基底B* t CPの基底ベクトルb* t,i’ CP(i’=1,...,nt CP)の係数として前記乱数δCP倍したxt,i’ CPが設定された要素k* t CPと
を含む復号鍵sk(SKP,ΓCP)を取得する復号鍵取得部と、
前記データ取得部が取得した暗号化データct(ΓKP,SCP)に含まれる属性集合ΓKPと、前記復号鍵取得部が取得した復号鍵sk(SKP,ΓCP)に含まれる変数ρKP(i)とに基づき、i=1,...,LKPの各整数iのうち、変数ρKP(i)が肯定形の組(t,v→ i KP)であり、かつ、その組のv→ i KPと、その組の識別情報tが示すΓKPに含まれるx→ t KPとの内積が0となるiと、変数ρKP(i)が否定形の組¬(t,v→ i KP)であり、かつ、その組のv→ i KPと、その組の識別情報tが示すΓKPに含まれるx→ t KPとの内積が0とならないiとの集合IKPを特定するとともに、特定した集合IKPに含まれるiについて、αi KPMi KPを合計した場合に前記h→KPとなる補完係数αi KPを計算するKP補完係数計算部と、
前記暗号化データct(ΓKP,SCP)に含まれるi=1,...,LCPの各整数iについての変数ρCP(i)と、前記復号鍵sk(SKP,ΓCP)に含まれる属性集合ΓCPとに基づき、i=1,...,LCPの各整数iのうち、変数ρCP(i)が肯定形の組(t,v→ i CP)であり、かつ、その組のv→ i CPと、その組の識別情報tが示すΓCPに含まれるx→ t CPとの内積が0となるiと、変数ρCP(i)が否定形の組¬(t,v→ i CP)であり、かつ、その組のv→ i CPと、その組の識別情報tが示すΓCPに含まれるx→ t CPとの内積が0とならないiとの集合ICPを特定するとともに、特定した集合ICPに含まれるiについて、αi CPMi CPを合計した場合に前記h→CPとなる補完係数αi CPを計算するCP補完係数計算部と、
前記暗号化データct(ΓKP,SCP)に含まれる要素c0と要素ct KPと要素ci CPと、前記復号鍵sk(SKP,ΓCP)に含まれる要素k* 0と要素k* i KPと要素k* t CPとについて、前記KP補完係数計算部が特定した集合IKPと、前記KP補完係数計算部が計算した補完係数αi KPと、前記CP補完係数計算部が特定した集合ICPと、前記CP補完係数計算部が計算した補完係数αi CPとに基づき、数10に示すペアリング演算を行い値Kを計算するペアリング演算部と
を備えることを特徴とする復号装置。
- 基底B0及び基底B0 *と、t=1,...,dKP(dKPは1以上の整数)の各整数tについての基底Bt KP及び基底B* t KPと、t=1,...,dCP(dCPは1以上の整数)の各整数tについての基底Bt CP及び基底B* t CPとを用いた暗号処理方法であり、
鍵生成装置が、i=1,...,LKP(LKPは1以上の整数)の各整数iについての変数ρKP(i)であって、識別情報t(t=1,...,dKPのいずれかの整数)と、属性ベクトルv→ i KP:=(vi,i’ KP)(i’=1,...,nt KP,nt KPは1以上の整数)との肯定形の組(t,v→ i KP)又は否定形の組¬(t,v→ i KP)のいずれかである変数ρKP(i)と、LKP行rKP列(rKPは1以上の整数)の所定の行列MKPとを入力する第1KP情報入力工程と、
前記鍵生成装置が、t=1,...,dCPの少なくとも1つ以上の整数tについて、識別情報tと、属性ベクトルx→ t CP:=(xt,i’ CP)(i’=1,...,nt CP,nt CPは1以上の整数)とを有する属性集合ΓCPを入力する第1CP情報入力工程と、
前記鍵生成装置が、基底B* 0の基底ベクトルb* 0,p(pは所定の値)の係数として値−s0 KP(s0 KP:=h→KP・(f→KP)T,h→KP及びf→KPはrKP個の要素を有するベクトル)を設定し、基底ベクトルb* 0,p’(p’は前記pとは異なる所定の値)の係数として乱数δCPを設定し、基底ベクトルb* 0,q(qは前記p及び前記p’とは異なる所定の値)の係数として所定の値κを設定して要素k* 0を生成する主復号鍵生成工程と、
前記鍵生成装置が、前記f→KPと、前記第1KP情報入力工程で入力した行列MKPに基づき生成される列ベクトル(s→KP)T:=(s1 KP,...,si KP)T:=MKP・(f→KP)T(i=LKP)と、乱数θi KP(i=1,...,LKP)とに基づき、i=1,...,LKPの各整数iについての要素k* i KPを生成するKP復号鍵生成工程であって、i=1,...,LKPの各整数iについて、変数ρKP(i)が肯定形の組(t,v→ i KP)である場合には、その組の識別情報tが示す基底B* t KPの基底ベクトルb* t,1 KPの係数としてsi KP+θi KPvi,1 KPを設定するとともに、前記識別情報tとi’=2,...,nt KPの各整数i’とが示す基底ベクトルb* t,i’ KPの係数としてθi KPvi,i’ KPを設定して要素k* i KPを生成し、変数ρKP(i)が否定形の組¬(t,v→ i KP)である場合には、その組の識別情報tとi’=1,...,nt KPの各整数i’とが示す基底ベクトルb* t,i’ KPの係数としてsi KPvi,i’ KPを設定して要素k* i KPを生成するKP復号鍵生成工程と、
前記鍵生成装置が、前記第1CP情報入力工程で入力した属性集合ΓCPに含まれる各識別情報tについての要素k* t CPを生成するCP復号鍵生成工程であって、基底B* t CPの基底ベクトルb* t,i’ CP(i’=1,...,nt CP)の係数として前記乱数δCP倍したxt,i’ CPを設定して要素k* t CPを生成するCP復号鍵生成工程と、
暗号化装置が、t=1,...,dKPの少なくとも1つ以上の整数tについて、識別情報tと、属性ベクトルx→ t KP:=(xt,i’ KP)(i’=1,...,nt KP)とを有する属性集合ΓKPを入力する第2KP情報入力工程と、
前記暗号化装置が、i=1,...,LCP(LCPは1以上の整数)の各整数iについての変数ρCP(i)であって、識別情報t(t=1,...,dCPのいずれかの整数)と、属性ベクトルv→ i CP:=(vi,i’ CP)(i’=1,...,nt CP)との肯定形の組(t,v→ i CP)又は否定形の組¬(t,v→ i CP)のいずれかである変数ρCP(i)と、LCP行rCP列(rCPは1以上の整数)の所定の行列MCPとを入力する第2CP情報入力工程と、
前記暗号化装置が、基底B0の基底ベクトルb0,pの係数として乱数ωKPを設定し、基底ベクトルb0,p’の係数として値−s0 CP(s0 CP:=h→CP・(f→CP)T,h→CP及びf→CPはrCP個の要素を有するベクトル)を設定し、基底ベクトルb0,qの係数として乱数ζを設定して要素c0を生成する主暗号化データ生成工程と、
前記暗号化装置が、前記第2KP情報入力工程で入力した属性集合ΓKPに含まれる各識別情報tについての要素ct KPを生成するKP暗号化データ生成工程であって、基底Bt KPの基底ベクトルbt,i’ KP(i’=1,...,nt)の係数として前記乱数ωKP倍したxt,i’ KPを設定して要素ct KPを生成するKP暗号化データ生成工程と、
前記暗号化装置が、前記f→CPと、前記第2CP情報入力工程で入力した行列MCPとに基づき生成される列ベクトル(s→CP)T:=(s1 CP,...,si CP)T:=MCP・(f→CP)T(i=LCP)と、乱数θi CP(i=1,...,LCP)とに基づき、i=1,...,LCPの各整数iについての要素ci CPを生成するCP暗号化データ生成工程であって、i=1,...,LCPの各整数iについて、変数ρCP(i)が肯定形の組(t,v→ i CP)である場合には、その組の識別情報tが示す基底Bt CPの基底ベクトルbt,1 CPの係数としてsi CP+θi CPvi,1 CPを設定するとともに、前記識別情報tとi’=2,...,nt CPの各整数i’とが示す基底ベクトルbt,i’ CPの係数としてθi CPvi,i’ CPを設定して要素ci CPを生成し、変数ρCP(i)が否定形の組¬(t,v→ i CP)である場合には、その組の識別情報tとi’=1,...,nt CPの各整数i’とが示す基底ベクトルbt,i’ CPの係数としてsi CPvi,i’ CPを設定して要素ci CPを生成するCP暗号化データ生成工程と、
復号装置が、前記主暗号化データ生成工程で生成した要素c0と、前記KP暗号化データ生成工程で生成した要素ct KPと、前記CP暗号化データ生成工程で生成した要素ci CPと、前記属性集合ΓKPと、前記変数ρCP(i)とを含む暗号化データct(ΓKP,SCP)を取得するデータ取得工程と、
前記復号装置が、前記主復号鍵生成工程で生成した要素k* 0と、前記KP復号鍵生成工程で生成した要素k* i KPと、前記CP復号鍵生成工程で生成した要素k* t CPと、前記変数ρKP(i)と、前記属性集合ΓCPとを含む復号鍵sk(SKP,ΓCP)を取得する復号鍵取得工程と、
前記復号装置が、前記データ取得工程で取得した暗号化データct(ΓKP,SCP)に含まれる属性集合ΓKPと、前記復号鍵取得工程で取得した復号鍵sk(SKP,ΓCP)に含まれる変数ρKP(i)とに基づき、i=1,...,LKPの各整数iのうち、変数ρKP(i)が肯定形の組(t,v→ i KP)であり、かつ、その組のv→ i KPと、その組の識別情報tが示すΓKPに含まれるx→ t KPとの内積が0となるiと、変数ρKP(i)が否定形の組¬(t,v→ i KP)であり、かつ、その組のv→ i KPと、その組の識別情報tが示すΓKPに含まれるx→ t KPとの内積が0とならないiとの集合IKPを特定するとともに、特定した集合IKPに含まれるiについて、αi KPMi KPを合計した場合に前記h→KPとなる補完係数αi KPを計算するKP補完係数計算工程と、
前記復号装置が、前記暗号化データct(ΓKP,SCP)に含まれるi=1,...,LCPの各整数iについての変数ρCP(i)と、前記復号鍵sk(SKP,ΓCP)に含まれる属性集合ΓCPとに基づき、i=1,...,LCPの各整数iのうち、変数ρCP(i)が肯定形の組(t,v→ i CP)であり、かつ、その組のv→ i CPと、その組の識別情報tが示すΓCPに含まれるx→ t CPとの内積が0となるiと、変数ρCP(i)が否定形の組¬(t,v→ i CP)であり、かつ、その組のv→ i CPと、その組の識別情報tが示すΓCPに含まれるx→ t CPとの内積が0とならないiとの集合ICPを特定するとともに、特定した集合ICPに含まれるiについて、αi CPMi CPを合計した場合に前記h→CPとなる補完係数αi CPを計算するCP補完係数計算工程と、
前記復号装置が、前記暗号化データct(ΓKP,SCP)に含まれる要素c0と要素ct KPと要素ci CPと、前記復号鍵sk(SKP,ΓCP)に含まれる要素k* 0と要素k* i KPと要素k* t CPとについて、前記KP補完係数計算工程で特定した集合IKPと、前記KP補完係数計算工程で計算した補完係数αi KPと、前記CP補完係数計算工程で特定した集合ICPと、前記CP補完係数計算工程で計算した補完係数αi CPとに基づき、数1に示すペアリング演算を行い値Kを計算するペアリング演算工程と
を備えることを特徴とする暗号処理方法。
- 鍵生成プログラムと暗号化プログラムと復号プログラムとを備え、基底B0及び基底B0 *と、t=1,...,dKP(dKPは1以上の整数)の各整数tについての基底Bt KP及び基底B* t KPと、t=1,...,dCP(dCPは1以上の整数)の各整数tについての基底Bt CP及び基底B* t CPとを用いて暗号処理を実行する暗号処理プログラムであり、
前記鍵生成プログラムは、
i=1,...,LKP(LKPは1以上の整数)の各整数iについての変数ρKP(i)であって、識別情報t(t=1,...,dKPのいずれかの整数)と、属性ベクトルv→ i KP:=(vi,i’ KP)(i’=1,...,nt KP,nt KPは1以上の整数)との肯定形の組(t,v→ i KP)又は否定形の組¬(t,v→ i KP)のいずれかである変数ρKP(i)と、LKP行rKP列(rKPは1以上の整数)の所定の行列MKPとを入力する第1KP情報入力処理と、
t=1,...,dCPの少なくとも1つ以上の整数tについて、識別情報tと、属性ベクトルx→ t CP:=(xt,i’ CP)(i’=1,...,nt CP,nt CPは1以上の整数)とを有する属性集合ΓCPを入力する第1CP情報入力処理と、
基底B* 0の基底ベクトルb* 0,p(pは所定の値)の係数として値−s0 KP(s0 KP:=h→KP・(f→KP)T,h→KP及びf→KPはrKP個の要素を有するベクトル)を設定し、基底ベクトルb* 0,p’(p’は前記pとは異なる所定の値)の係数として乱数δCPを設定し、基底ベクトルb* 0,q(qは前記p及び前記p’とは異なる所定の値)の係数として所定の値κを設定して要素k* 0を生成する主復号鍵生成処理と、
前記f→KPと、前記第1KP情報入力処理で入力した行列MKPに基づき生成される列ベクトル(s→KP)T:=(s1 KP,...,si KP)T:=MKP・(f→KP)T(i=LKP)と、乱数θi KP(i=1,...,LKP)とに基づき、i=1,...,LKPの各整数iについての要素k* i KPを生成するKP復号鍵生成処理であって、i=1,...,LKPの各整数iについて、変数ρKP(i)が肯定形の組(t,v→ i KP)である場合には、その組の識別情報tが示す基底B* t KPの基底ベクトルb* t,1 KPの係数としてsi KP+θi KPvi,1 KPを設定するとともに、前記識別情報tとi’=2,...,nt KPの各整数i’とが示す基底ベクトルb* t,i’ KPの係数としてθi KPvi,i’ KPを設定して要素k* i KPを生成し、変数ρKP(i)が否定形の組¬(t,v→ i KP)である場合には、その組の識別情報tとi’=1,...,nt KPの各整数i’とが示す基底ベクトルb* t,i’ KPの係数としてsi KPvi,i’ KPを設定して要素k* i KPを生成するKP復号鍵生成処理と、
前記第1CP情報入力処理で入力した属性集合ΓCPに含まれる各識別情報tについての要素k* t CPを生成するCP復号鍵生成処理であって、基底B* t CPの基底ベクトルb* t,i’ CP(i’=1,...,nt CP)の係数として前記乱数δCP倍したxt,i’ CPを設定して要素k* t CPを生成するCP復号鍵生成処理と
をコンピュータに実行させ、
前記暗号化プログラムは、
t=1,...,dKPの少なくとも1つ以上の整数tについて、識別情報tと、属性ベクトルx→ t KP:=(xt,i’ KP)(i’=1,...,nt KP)とを有する属性集合ΓKPを入力する第2KP情報入力処理と、
i=1,...,LCP(LCPは1以上の整数)の各整数iについての変数ρCP(i)であって、識別情報t(t=1,...,dCPのいずれかの整数)と、属性ベクトルv→ i CP:=(vi,i’ CP)(i’=1,...,nt CP)との肯定形の組(t,v→ i CP)又は否定形の組¬(t,v→ i CP)のいずれかである変数ρCP(i)と、LCP行rCP列(rCPは1以上の整数)の所定の行列MCPとを入力する第2CP情報入力処理と、
基底B0の基底ベクトルb0,pの係数として乱数ωKPを設定し、基底ベクトルb0,p’の係数として値−s0 CP(s0 CP:=h→CP・(f→CP)T,h→CP及びf→CPはrCP個の要素を有するベクトル)を設定し、基底ベクトルb0,qの係数として乱数ζを設定して要素c0を生成する主暗号化データ生成処理と、
前記第2KP情報入力処理で入力した属性集合ΓKPに含まれる各識別情報tについての要素ct KPを生成するKP暗号化データ生成処理であって、基底Bt KPの基底ベクトルbt,i’ KP(i’=1,...,nt)の係数として前記乱数ωKP倍したxt,i’ KPを設定して要素ct KPを生成するKP暗号化データ生成処理と、
前記f→CPと、前記第2CP情報入力処理で入力した行列MCPとに基づき生成される列ベクトル(s→CP)T:=(s1 CP,...,si CP)T:=MCP・(f→CP)T(i=LCP)と、乱数θi CP(i=1,...,LCP)とに基づき、i=1,...,LCPの各整数iについての要素ci CPを生成するCP暗号化データ生成処理であって、i=1,...,LCPの各整数iについて、変数ρCP(i)が肯定形の組(t,v→ i CP)である場合には、その組の識別情報tが示す基底Bt CPの基底ベクトルbt,1 CPの係数としてsi CP+θi CPvi,1 CPを設定するとともに、前記識別情報tとi’=2,...,nt CPの各整数i’とが示す基底ベクトルbt,i’ CPの係数としてθi CPvi,i’ CPを設定して要素ci CPを生成し、変数ρCP(i)が否定形の組¬(t,v→ i CP)である場合には、その組の識別情報tとi’=1,...,nt CPの各整数i’とが示す基底ベクトルbt,i’ CPの係数としてsi CPvi,i’ CPを設定して要素ci CPを生成するCP暗号化データ生成処理と
をコンピュータに実行させ、
前記復号プログラムは、
前記主暗号化データ生成処理で生成した要素c0と、前記KP暗号化データ生成処理で生成した要素ct KPと、前記CP暗号化データ生成処理で生成した要素ci CPと、前記属性集合ΓKPと、前記変数ρCP(i)とを含む暗号化データct(ΓKP,SCP)を取得するデータ取得処理と、
前記主復号鍵生成処理で生成した要素k* 0と、前記KP復号鍵生成処理で生成した要素k* i KPと、前記CP復号鍵生成処理で生成した要素k* t CPと、前記変数ρKP(i)と、前記属性集合ΓCPとを含む復号鍵sk(SKP,ΓCP)を取得する復号鍵取得処理と、
前記データ取得処理で取得した暗号化データct(ΓKP,SCP)に含まれる属性集合ΓKPと、前記復号鍵取得処理で取得した復号鍵sk(SKP,ΓCP)に含まれる変数ρKP(i)とに基づき、i=1,...,LKPの各整数iのうち、変数ρKP(i)が肯定形の組(t,v→ i KP)であり、かつ、その組のv→ i KPと、その組の識別情報tが示すΓKPに含まれるx→ t KPとの内積が0となるiと、変数ρKP(i)が否定形の組¬(t,v→ i KP)であり、かつ、その組のv→ i KPと、その組の識別情報tが示すΓKPに含まれるx→ t KPとの内積が0とならないiとの集合IKPを特定するとともに、特定した集合IKPに含まれるiについて、αi KPMi KPを合計した場合に前記h→KPとなる補完係数αi KPを計算するKP補完係数計算処理と、
前記暗号化データct(ΓKP,SCP)に含まれるi=1,...,LCPの各整数iについての変数ρCP(i)と、前記復号鍵sk(SKP,ΓCP)に含まれる属性集合ΓCPとに基づき、i=1,...,LCPの各整数iのうち、変数ρCP(i)が肯定形の組(t,v→ i CP)であり、かつ、その組のv→ i CPと、その組の識別情報tが示すΓCPに含まれるx→ t CPとの内積が0となるiと、変数ρCP(i)が否定形の組¬(t,v→ i CP)であり、かつ、その組のv→ i CPと、その組の識別情報tが示すΓCPに含まれるx→ t CPとの内積が0とならないiとの集合ICPを特定するとともに、特定した集合ICPに含まれるiについて、αi CPMi CPを合計した場合に前記h→CPとなる補完係数αi CPを計算するCP補完係数計算処理と、
前記暗号化データct(ΓKP,SCP)に含まれる要素c0と要素ct KPと要素ci CPと、前記復号鍵sk(SKP,ΓCP)に含まれる要素k* 0と要素k* i KPと要素k* t CPとについて、前記KP補完係数計算処理で特定した集合IKPと、前記KP補完係数計算処理で計算した補完係数αi KPと、前記CP補完係数計算処理で特定した集合ICPと、前記CP補完係数計算処理で計算した補完係数αi CPとに基づき、数1に示すペアリング演算を行い値Kを計算するペアリング演算処理と
をコンピュータに実行させることを特徴とする暗号処理プログラム。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010286511A JP5693206B2 (ja) | 2010-12-22 | 2010-12-22 | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム |
CN201180061703.XA CN103270719B (zh) | 2010-12-22 | 2011-12-06 | 密码处理系统、密钥生成装置、加密装置、解密装置、密码处理方法 |
US13/823,507 US8938623B2 (en) | 2010-12-22 | 2011-12-06 | Cryptographic processing system, key generation device, encryption device, decryption device, cryptographic processing method, and cryptographic processing program |
PCT/JP2011/078164 WO2012086405A1 (ja) | 2010-12-22 | 2011-12-06 | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム |
EP11851495.9A EP2613472A4 (en) | 2010-12-22 | 2011-12-06 | Encryption processing system, key generation device, encryption device, decryption device, encryption processing method, and encryption processing program |
KR1020137012670A KR101393899B1 (ko) | 2010-12-22 | 2011-12-06 | 암호 처리 시스템, 키 생성 장치, 암호화 장치, 복호 장치, 암호 처리 방법 및 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010286511A JP5693206B2 (ja) | 2010-12-22 | 2010-12-22 | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2012133214A true JP2012133214A (ja) | 2012-07-12 |
JP2012133214A5 JP2012133214A5 (ja) | 2014-01-09 |
JP5693206B2 JP5693206B2 (ja) | 2015-04-01 |
Family
ID=46313685
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010286511A Active JP5693206B2 (ja) | 2010-12-22 | 2010-12-22 | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム |
Country Status (6)
Country | Link |
---|---|
US (1) | US8938623B2 (ja) |
EP (1) | EP2613472A4 (ja) |
JP (1) | JP5693206B2 (ja) |
KR (1) | KR101393899B1 (ja) |
CN (1) | CN103270719B (ja) |
WO (1) | WO2012086405A1 (ja) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014061324A1 (ja) * | 2012-10-19 | 2014-04-24 | 三菱電機株式会社 | 暗号システム |
JP2014095847A (ja) * | 2012-11-12 | 2014-05-22 | Nippon Telegr & Teleph Corp <Ntt> | 関数型暗号システム、鍵生成装置、暗号化装置、復号装置、関数型暗号方法、およびプログラム |
WO2014112048A1 (ja) | 2013-01-16 | 2014-07-24 | 三菱電機株式会社 | 暗号システム、再暗号化鍵生成装置、再暗号化装置、暗号方法及び暗号プログラム |
WO2015052799A1 (ja) | 2013-10-09 | 2015-04-16 | 三菱電機株式会社 | 暗号システム、暗号化装置、再暗号化鍵生成装置、再暗号化装置及び暗号プログラム |
WO2015083210A1 (ja) * | 2013-12-02 | 2015-06-11 | 三菱電機株式会社 | データ処理システム及び暗号装置及び復号装置及びプログラム |
WO2015107620A1 (ja) | 2014-01-14 | 2015-07-23 | 三菱電機株式会社 | 暗号システム、再暗号化鍵生成装置、再暗号化装置及び暗号プログラム |
US9640090B2 (en) | 2014-02-24 | 2017-05-02 | Mitsubishi Electric Corporation | Cryptographic system and computer readable medium |
US10050782B2 (en) | 2014-12-05 | 2018-08-14 | Mitsubishi Electric Corporation | Decryption condition addition device, cryptographic system, and computer readable medium |
US10516534B2 (en) | 2015-04-07 | 2019-12-24 | Mitsubishi Electric Corporation | Cryptographic system and key generation apparatus |
WO2020070973A1 (ja) * | 2018-10-04 | 2020-04-09 | 三菱電機株式会社 | 復号装置、暗号システム、復号方法及び復号プログラム |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5606344B2 (ja) | 2011-01-25 | 2014-10-15 | 三菱電機株式会社 | 署名処理システム、鍵生成装置、署名装置、検証装置、署名処理方法及び署名処理プログラム |
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 |
KR102447476B1 (ko) * | 2015-08-20 | 2022-09-27 | 삼성전자주식회사 | 암복호 장치, 그것을 포함하는 저장 장치 및 그것의 암복호 방법 |
US10205713B2 (en) * | 2017-04-05 | 2019-02-12 | Fujitsu Limited | Private and mutually authenticated key exchange |
KR101994236B1 (ko) * | 2017-04-21 | 2019-09-30 | 한국전자통신연구원 | 프라이버시 보존형 각도 기반 이상치 검출 방법 및 장치 |
EP3698515B1 (en) * | 2017-10-17 | 2021-02-17 | Koninklijke Philips N.V. | Configurable device for lattice-based cryptography |
US10778410B2 (en) * | 2019-06-18 | 2020-09-15 | Alibaba Group Holding Limited | Homomorphic data encryption method and apparatus for implementing privacy protection |
US12099997B1 (en) | 2020-01-31 | 2024-09-24 | Steven Mark Hoffberg | Tokenized fungible liabilities |
CN113271309B (zh) * | 2021-05-24 | 2022-04-08 | 四川师范大学 | 一种分层文件加密方法及系统 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7349538B2 (en) * | 2002-03-21 | 2008-03-25 | Ntt Docomo Inc. | Hierarchical identity-based encryption and signature schemes |
CN101483523A (zh) * | 2002-04-15 | 2009-07-15 | 株式会社Ntt都科摩 | 利用双线性映射的签名方案 |
US6886096B2 (en) * | 2002-11-14 | 2005-04-26 | Voltage Security, Inc. | Identity-based encryption system |
US7003117B2 (en) * | 2003-02-05 | 2006-02-21 | Voltage Security, Inc. | Identity-based encryption system for secure data distribution |
US7499544B2 (en) * | 2003-11-03 | 2009-03-03 | Microsoft Corporation | Use of isogenies for design of cryptosystems |
EP1646174A1 (en) * | 2004-10-07 | 2006-04-12 | Axalto SA | Method and apparatus for generating cryptographic sets of instructions automatically and code generation |
CN101401141B (zh) * | 2006-03-14 | 2011-12-07 | 日本电气株式会社 | 信息处理系统以及信息处理方法 |
WO2008066671A2 (en) * | 2006-11-08 | 2008-06-05 | Voltage Security, Inc. | Indentity-based-encryption extensions formed using multiple instances of an identity based encryption scheme |
JP5424974B2 (ja) | 2010-04-27 | 2014-02-26 | 三菱電機株式会社 | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置 |
-
2010
- 2010-12-22 JP JP2010286511A patent/JP5693206B2/ja active Active
-
2011
- 2011-12-06 US US13/823,507 patent/US8938623B2/en active Active
- 2011-12-06 KR KR1020137012670A patent/KR101393899B1/ko active IP Right Grant
- 2011-12-06 CN CN201180061703.XA patent/CN103270719B/zh not_active Expired - Fee Related
- 2011-12-06 WO PCT/JP2011/078164 patent/WO2012086405A1/ja active Application Filing
- 2011-12-06 EP EP11851495.9A patent/EP2613472A4/en not_active Ceased
Non-Patent Citations (1)
Title |
---|
JPN7014002590; Tatsuaki Okamoto, Katsuyuki Takashima: Fully Secure Functional Encryption with General Relations from the Decisional Linear Assumption , 20101105, pp.1-49 * |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101676977B1 (ko) | 2012-10-19 | 2016-11-16 | 미쓰비시덴키 가부시키가이샤 | 암호 시스템 |
US9722783B2 (en) | 2012-10-19 | 2017-08-01 | Mitsubishi Electric Corporation | Cryptographic system |
EP2911137A4 (en) * | 2012-10-19 | 2016-09-07 | Mitsubishi Electric Corp | ENCRYPTION SYSTEM |
JP2014085358A (ja) * | 2012-10-19 | 2014-05-12 | Mitsubishi Electric Corp | 暗号システム |
WO2014061324A1 (ja) * | 2012-10-19 | 2014-04-24 | 三菱電機株式会社 | 暗号システム |
KR20150070383A (ko) * | 2012-10-19 | 2015-06-24 | 미쓰비시덴키 가부시키가이샤 | 암호 시스템 |
CN104718566A (zh) * | 2012-10-19 | 2015-06-17 | 三菱电机株式会社 | 密码系统 |
JP2014095847A (ja) * | 2012-11-12 | 2014-05-22 | Nippon Telegr & Teleph Corp <Ntt> | 関数型暗号システム、鍵生成装置、暗号化装置、復号装置、関数型暗号方法、およびプログラム |
WO2014112048A1 (ja) | 2013-01-16 | 2014-07-24 | 三菱電機株式会社 | 暗号システム、再暗号化鍵生成装置、再暗号化装置、暗号方法及び暗号プログラム |
US9344276B2 (en) | 2013-01-16 | 2016-05-17 | Mitsubishi Electric Corporation | Cryptographic system, re-encryption key generation device, re-encryption device, cryptographic method, and cryptographic program |
CN104871477A (zh) * | 2013-01-16 | 2015-08-26 | 三菱电机株式会社 | 加密系统、重加密密钥生成装置、重加密装置、加密方法和加密程序 |
CN104871477B (zh) * | 2013-01-16 | 2018-07-10 | 三菱电机株式会社 | 加密系统、重加密密钥生成装置、重加密装置、加密方法 |
WO2015052799A1 (ja) | 2013-10-09 | 2015-04-16 | 三菱電機株式会社 | 暗号システム、暗号化装置、再暗号化鍵生成装置、再暗号化装置及び暗号プログラム |
US9979536B2 (en) | 2013-10-09 | 2018-05-22 | Mitsubishi Electric Corporation | Cryptographic system, encryption device, re-encryption key generation device, re-encryption device, and cryptographic program |
WO2015083210A1 (ja) * | 2013-12-02 | 2015-06-11 | 三菱電機株式会社 | データ処理システム及び暗号装置及び復号装置及びプログラム |
JPWO2015083210A1 (ja) * | 2013-12-02 | 2017-03-16 | 三菱電機株式会社 | データ処理システム及び暗号装置及び復号装置及びプログラム |
JP6026017B2 (ja) * | 2013-12-02 | 2016-11-16 | 三菱電機株式会社 | データ処理システム及び暗号装置及び復号装置及びプログラム |
WO2015107620A1 (ja) | 2014-01-14 | 2015-07-23 | 三菱電機株式会社 | 暗号システム、再暗号化鍵生成装置、再暗号化装置及び暗号プログラム |
US9640090B2 (en) | 2014-02-24 | 2017-05-02 | Mitsubishi Electric Corporation | Cryptographic system and computer readable medium |
US10050782B2 (en) | 2014-12-05 | 2018-08-14 | Mitsubishi Electric Corporation | Decryption condition addition device, cryptographic system, and computer readable medium |
US10516534B2 (en) | 2015-04-07 | 2019-12-24 | Mitsubishi Electric Corporation | Cryptographic system and key generation apparatus |
WO2020070973A1 (ja) * | 2018-10-04 | 2020-04-09 | 三菱電機株式会社 | 復号装置、暗号システム、復号方法及び復号プログラム |
JP2020056960A (ja) * | 2018-10-04 | 2020-04-09 | 三菱電機株式会社 | 復号装置、暗号システム、復号方法及び復号プログラム |
JP7117964B2 (ja) | 2018-10-04 | 2022-08-15 | 三菱電機株式会社 | 復号装置、暗号システム、復号方法及び復号プログラム |
Also Published As
Publication number | Publication date |
---|---|
US8938623B2 (en) | 2015-01-20 |
CN103270719A (zh) | 2013-08-28 |
WO2012086405A1 (ja) | 2012-06-28 |
JP5693206B2 (ja) | 2015-04-01 |
CN103270719B (zh) | 2015-09-30 |
EP2613472A1 (en) | 2013-07-10 |
KR101393899B1 (ko) | 2014-05-12 |
KR20130084669A (ko) | 2013-07-25 |
US20130173929A1 (en) | 2013-07-04 |
EP2613472A4 (en) | 2017-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5693206B2 (ja) | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム | |
JP5424974B2 (ja) | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置 | |
JP5618881B2 (ja) | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム | |
JP5680007B2 (ja) | 暗号システム、暗号方法及び暗号プログラム | |
JP5769401B2 (ja) | 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及びプログラム | |
JP5606344B2 (ja) | 署名処理システム、鍵生成装置、署名装置、検証装置、署名処理方法及び署名処理プログラム | |
JP5334873B2 (ja) | 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム | |
JP5921410B2 (ja) | 暗号システム | |
JP5606351B2 (ja) | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、鍵委譲装置、暗号処理方法及び暗号処理プログラム | |
Wang et al. | New identity-based key-encapsulation mechanism and its applications in cloud computing |
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 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140902 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20141003 |
|
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: 20150106 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150203 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5693206 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 |