JP2012163917A - 暗号処理システム、鍵生成装置、暗号化装置、復号装置、鍵委譲装置、暗号処理方法及び暗号処理プログラム - Google Patents
暗号処理システム、鍵生成装置、暗号化装置、復号装置、鍵委譲装置、暗号処理方法及び暗号処理プログラム Download PDFInfo
- Publication number
- JP2012163917A JP2012163917A JP2011026216A JP2011026216A JP2012163917A JP 2012163917 A JP2012163917 A JP 2012163917A JP 2011026216 A JP2011026216 A JP 2011026216A JP 2011026216 A JP2011026216 A JP 2011026216A JP 2012163917 A JP2012163917 A JP 2012163917A
- Authority
- JP
- Japan
- Prior art keywords
- integer
- basis
- del
- ran
- key
- 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 113
- 238000003672 processing method Methods 0.000 title claims 3
- 239000013598 vector Substances 0.000 claims abstract description 447
- 238000004364 calculation method Methods 0.000 claims abstract description 27
- 238000000034 method Methods 0.000 claims description 60
- 230000005540 biological transmission Effects 0.000 claims description 24
- 238000004519 manufacturing process Methods 0.000 claims description 2
- 238000012546 transfer Methods 0.000 claims description 2
- 230000000877 morphologic effect Effects 0.000 claims 1
- 230000014509 gene expression Effects 0.000 description 37
- 238000004891 communication Methods 0.000 description 22
- 230000006870 function Effects 0.000 description 20
- 238000009826 distribution Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 16
- 230000009977 dual effect Effects 0.000 description 15
- 238000003860 storage Methods 0.000 description 14
- 239000003643 water by type Substances 0.000 description 14
- 239000011159 matrix material Substances 0.000 description 5
- 230000009466 transformation Effects 0.000 description 5
- 125000004122 cyclic group Chemical group 0.000 description 4
- 238000005516 engineering process Methods 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
- 238000000605 extraction Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003121 nonmonotonic effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012360 testing method Methods 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/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
-
- 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/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
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/083—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
- H04L9/0833—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
- H04L9/0836—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key using tree structure or hierarchical structure
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
【解決手段】暗号処理システム10は、鍵生成装置100と暗号化装置200と復号装置300とを備える。鍵生成装置100は、t=1,...,Lの各整数tについての基底B* tの基底ベクトルに述語情報v→ tを埋め込んだベクトルを復号鍵skLとして生成する。暗号化装置200は、t=1,...,Lのうち少なくとも一部の整数tについての基底Btの基底ベクトルに属性情報x→ tを埋め込んだベクトルを暗号化データctとして生成する。復号装置300は、鍵生成装置100が生成した復号鍵skLと暗号化装置200が生成した暗号化データctとについてペアリング演算を行い、暗号化データctを復号する。
【選択図】図7
Description
この発明は、演算等の効率をよくした階層的内積述語暗号を提供することを目的とする。
t=1,...,L+1(Lは1以上の整数)の各整数tについての基底Btと基底B* tとを用いて暗号処理を行う暗号処理システムであり、
t=1,...,Lのうち少なくとも一部の整数tについての基底Btの基底ベクトルに属性情報x→ tを埋め込んだベクトルを暗号化データctとして生成する暗号化装置と、
t=1,...,Lの各整数tについての基底B* tの基底ベクトルに述語情報v→ tを埋め込んだベクトルを復号鍵skLとして、前記暗号化装置が生成した暗号化データctと前記復号鍵skLとについてペアリング演算を行い前記暗号化データctを復号する復号装置と、
基底B* L+1の基底ベクトルに述語情報を埋め込んだベクトルと、前記復号装置が使用した復号鍵skLとに基づき、前記復号鍵skLの下位の復号鍵skL+1を生成する鍵委譲装置と
を備えることを特徴とする。
以下の説明において、処理装置は後述するCPU911等である。記憶装置は後述するROM913、RAM914、磁気ディスク920等である。通信装置は後述する通信ボード915等である。入力装置は後述するキーボード902、通信ボード915等である。出力装置は後述するRAM914、磁気ディスク920、通信ボード915、LCD901等である。つまり、処理装置、記憶装置、通信装置、入力装置、出力装置はハードウェアである。
Aがランダムな変数または分布であるとき、数101は、Aの分布に従いAからyをランダムに選択することを表す。つまり、数101において、yは乱数である。
数110に示す基底Bと基底B*とに対して、数111である。
同様に、秘密鍵sk(v→1,...,v→L)における(v→1,...,v→L)は(v→ 1,...,v→ L)のことであり、秘密鍵sk(v→1,...,v→L+1)における(v→1,...,v→L+1)は(v→ 1,...,v→ L+1)のことである。
同様に、“δi,j”が上付きで示されている場合、このδi,jは、δi,jを意味する。
また、ベクトルを意味する“→”が下付き文字又は上付き文字に付されている場合、この“→”は下付き文字又は上付き文字に上付きで付されていることを意味する。
この実施の形態では、「階層的内積述語暗号」を実現する基礎となる概念と、「階層的内積述語暗号」の構成について説明する。
第1に、階層的内積述語暗号の概念について説明する。階層的内積述語暗号という概念を説明するに当たり、まず「権限委譲」という概念を説明する。また、併せて、「階層的(Hierarchial)な権限委譲」という概念を説明する。次に、「内積述語暗号」を説明する。そして、階層的な権限委譲という概念を内積述語暗号に加えた「階層的内積述語暗号」を説明する。さらに、階層的内積述語暗号の理解を深めるため、階層的内積述語暗号の応用例を説明する。
第2に、ベクトル空間における階層的内積述語暗号を説明する。この実施の形態及び以下の実施の形態では、階層的述語暗号と階層的述語鍵秘匿方式とをベクトル空間において実現する。ここでは、まず、「基底」と「基底ベクトル」について説明する。次に、「ベクトル空間における内積述語暗号」について説明する。そして、「ベクトル空間における階層構造の実現方法」について説明する。さらに、理解を深めるため、階層構造の実現例を説明する。
第3に、階層的内積述語暗号を実現するための空間である「双対ペアリングベクトル空間(Dual Pairing Vector Spaces,DPVS)」という豊かな数学的構造を有する空間を説明する。
第4に、この実施の形態に係る「階層的内積述語暗号方式」の基本構成を説明する。次に、階層的述語暗号を実行する「暗号処理システム10」の基本構成を説明する。そして、この実施の形態に係る階層的述語暗号方式及び暗号処理システム10について詳細に説明する。
<第1−1.権限委譲(階層的な権限委譲)という概念>
図1は、「権限委譲(階層的な権限委譲)」という概念を説明するための図である。
権限委譲とは、上位の鍵を有する利用者が、その鍵(上位の鍵)よりも機能が制限された下位の鍵を生成することである。
図1では、Root(鍵生成装置)は、マスター秘密鍵を用いて、第1層目(Level−1)の利用者へ秘密鍵を生成する。つまり、Rootは、第1層目の利用者1,2,3それぞれへ鍵1,2,3を生成する。そして、例えば、利用者1であれば、鍵1を用いて、利用者1の下位(第2層目)の利用者である利用者11,12,13それぞれへ鍵11,12,13を生成することができる。ここで、利用者1が有する鍵1よりも、利用者11,12,13が有する鍵11,12,13は機能が制限されている。機能が制限されているとは、その秘密鍵によって復号できる暗号文が限定されているということである。つまり、上位の秘密鍵で復号できる暗号文の一部の暗号文のみ下位の秘密鍵で復号できることを意味する。すなわち、利用者1が有する鍵1で復号できる暗号文のうち、一部の暗号文のみ利用者11,12,13が有する鍵11,12,13で復号することができる。また、通常は、鍵11と鍵12と鍵13とが復号できる暗号文は異なる。一方、鍵11と鍵12と鍵13が復号できる暗号文は、鍵1で復号することができる。
また、図1に示すように、各秘密鍵が階層(レベル)分けされていることを「階層的」という。つまり、図1に示すように、階層的に下位の鍵を生成することを「階層的な権限委譲」と呼ぶ。
次に、「内積述語暗号」について説明する。
まず、述語暗号とは、述語情報fvに属性情報xを入力した場合に1(True)となる場合(fv(x)=1となる場合)に、暗号文を復号できる暗号方式である。通常、暗号文に属性情報xが埋め込まれ、秘密鍵に述語情報fvが埋め込まれる。つまり、述語暗号では、属性情報xに基づき暗号化された暗号文cを、述語情報fvに基づき生成された秘密鍵SKfにより復号する。述語暗号は、例えば、述語情報fvが条件式であり、属性情報xがその条件式への入力情報であり、入力情報(属性情報x)が条件式(述語情報fv)を満たせば(fv(x)=1)、暗号文を復号できる暗号方式であるとも言える。
なお、述語暗号について詳しくは非特許文献17に記載されている。
実施の形態1では、原則として、属性情報xと述語情報fvとの内積が0の場合に、fv(x)=1となるものとする。
階層的内積述語暗号(階層的内積述語鍵秘匿方式)とは、上述した「階層的な権限委譲」という概念を有する「内積述語暗号」である。
図3は、属性情報と述語情報との階層構造を示す図である。
図3において、符号が対応する属性情報と述語情報とは対応する(つまり、内積が0となる)ものとする。つまり、属性1と述語1との内積は0となり、属性11と述語11との内積は0となり、属性12と述語12との内積は0となり、属性13と述語13との内積は0となるとする。すなわち、属性1により暗号化された暗号文c1は、述語1に基づき生成された秘密鍵k1であれば復号できる。また、属性11により暗号化された暗号文c11は、述語11に基づき生成された秘密鍵k11であれば復号できる。属性12と述語12、属性13と述語13についても同様のことが言える。
上記の通り、階層的内積述語暗号は階層的な権限委譲システムを有する。そのため、述語1に基づき生成された秘密鍵k1と、述語11とに基づき、秘密鍵k11を生成することができる。つまり、上位の秘密鍵k1を有する利用者は、その秘密鍵k1と下位の述語11とから、秘密鍵k1の下位の秘密鍵k11を生成することができる。同様に、秘密鍵k1と述語12とから秘密鍵k12を生成でき、秘密鍵k1と述語13とから秘密鍵k13を生成できる。
また、下位の秘密鍵に対応する鍵(公開鍵)で暗号化された暗号文を上位の秘密鍵で復号できる。一方、上位の秘密鍵に対応する鍵(公開鍵)で暗号化された暗号文は、下位の秘密鍵で復号できない。つまり、属性11、属性12、属性13により暗号化された暗号文c11、c12、c13は、述語1に基づき生成された秘密鍵k1であれば復号できる。一方、属性1により暗号化された暗号文c1は、述語11、述語12、述語13に基づき生成された秘密鍵k11、k12、k13では復号できない。すなわち、属性11、属性12、属性13と述語1との内積は0となる。一方、属性1と述語11、述語12、述語13との内積は0とならない。
図4は、後述する階層的内積述語暗号の応用例である階層的IDベース暗号(Hierarchial Identifier Based Encryption,HIBE)の例を示す図である。なお、階層的IDベース暗号とは、IDベース暗号が階層的になった暗号処理である。IDベース暗号は、述語暗号の一種であり、暗号文に含まれるIDと秘密鍵に含まれるIDとが一致する場合に暗号文を復号できるマッチング述語暗号である。
図4に示す例では、Root(鍵生成装置)は、マスター秘密鍵skとA会社のIDである「A」とに基づき、ID「A」に対応する秘密鍵(鍵A)を生成する。例えば、A会社のセキュリティ担当者は、鍵Aと各部門のIDとに基づき、そのIDに対応する秘密鍵を生成する。例えば、セキュリティ担当者は、営業部門のIDである「A−1」に対応する秘密鍵(鍵1)を生成する。次に、例えば、各部門の管理者は、その部門の秘密鍵とその部門に属する各課のIDとに基づき、そのIDに対応する秘密鍵を生成する。例えば、営業部門の管理者は、営業1課のIDである「A−11」に対応する秘密鍵(鍵11)を生成する。
ここで、営業1課のID「A−11」に対応する秘密鍵である鍵11により、営業1課のID「A−11」で暗号化された暗号文を復号することができる。しかし、鍵11により、営業2課や営業3課のIDで暗号化された暗号文は復号することはできない。また、鍵11により、営業部門のIDで暗号化された暗号文は復号することができない。
営業部門のID「A−1」に対応する秘密鍵である鍵1により、営業部門のID「A−1」で暗号化された暗号文を復号することができる。また、鍵1により、営業部門に属する課のIDで暗号化された暗号文を復号することができる。つまり、鍵1により、営業1課、営業2課、営業3課のIDで暗号化された暗号文を復号することができる。しかし、鍵1により、製造部門(ID:A−2)やスタッフ部門(ID:A−3)のIDで暗号化された暗号文は復号することができない。また、鍵1により、A会社のIDで暗号化された暗号文は復号することができない。
A会社のID「A」に対応する秘密鍵である鍵Aにより、A会社のID「A」で暗号化された暗号文を復号することができる。また、A会社に属する各部門や、その部門に属する課のIDで暗号化された暗号文を復号することができる。
つまり、後の実施の形態で説明する階層的述語鍵秘匿方式と階層的述語暗号とは、IDベース暗号や検索可能暗号等へ幅広い応用が可能である。
階層的述語鍵秘匿方式と階層的述語暗号とは、後述する双対ペアリングベクトル空間という高次元ベクトル空間において実現される。そこで、ベクトル空間における階層的内積述語暗号を説明する。
まず、ベクトル空間の説明において使用する「基底」と「基底ベクトル」とについて簡単に説明する。
図5は、基底と基底ベクトルとを説明するための図である。
図5は、2次元ベクトル空間におけるベクトルvを示す。ベクトルvは、c1a1+c2a2である。また、ベクトルvは、y1b1+y2b2である。ここで、a1,a2を基底Aにおける基底ベクトルといい、基底A:=(a1,a2)と表す。また、b1,b2を基底Bにおける基底ベクトルといい、基底B:=(b1,b2)と表す。また、c1,c2,y1,y2は、各基底ベクトルに対する係数である。図5では、2次元ベクトル空間であったため、各基底における基底ベクトルは2個であった。しかし、N次元ベクトル空間であれば、各基底における基底ベクトルはN個である。
次に、ベクトル空間における内積述語暗号を説明する。
上記の通り、内積述語暗号とは、属性情報xと述語情報fvとの内積が所定の値(ここでは、0)の場合に、fv(x)=1となる述語暗号である。属性情報xと述語情報fvとがベクトルであった場合、つまり属性ベクトルx→と述語ベクトルv→とであった場合、内積述語は数120のように定義される。
次に、ベクトル空間における階層構造の実現方法を説明する。
図6は、ベクトル空間における階層構造の実現方法の一例を説明するための図である。
ここではd個(dは1以上の整数)のベクトル空間を扱う。各ベクトル空間は、高次元(Nt次元(t=1,...,d))ベクトル空間である。つまり、各ベクトル空間における所定の基底Ct(t=1,...,d)には、基底ベクトルci(i=1,...,Nt)のNt個の基底ベクトルが存在する。
そして、基底C1を第1層目の属性情報や述語情報を設定するための空間とする。また、基底C2を第2層目の属性情報や述語情報を設定するための空間とする。以下同様に、基底CLを第L層目の属性情報や述語情報を設定するための空間とする。したがって、ここでは、d層の階層を表すことができる。
ここで、第L層目の秘密鍵は、基底CLを用いて第L層目の述語情報を設定するだけでなく、基底C1から基底CL−1を用いて第1層目から第L−1層目の述語情報を設定して生成される。つまり、下位の層の秘密鍵には、上位の層の秘密鍵に設定される述語情報も設定される。これにより、述語情報に階層構造を持たせる。そして、この述語情報に持たせた階層構造を利用して、内積述語暗号における権限委譲システムを構成する。
ここで、簡単な例を用いて階層構造を説明する。ここでは、3つの階層を備え、各階層に割り当てられた空間が2次元で構成された例を用いて説明する。つまり、n→:=(d;N1,...,Nd)=(3;2,2,2)である。
第1層目の述語ベクトルv→ 1:=(v1,v2)に基づき生成された第1層目の秘密鍵sk1を有する利用者は、第1層目の秘密鍵sk1と第2層目の述語ベクトルv→ 2:=(v3,v4)に基づき第2層目の秘密鍵sk2を生成することができる。つまり、第2層目の秘密鍵sk2は、述語ベクトル(v→ 1,v→ 2)に基づき生成される。同様に、第2層目の秘密鍵sk2を有する利用者は、第2層目の秘密鍵sk2と第3層目の述語ベクトルv→ 3:=(v5,v6)に基づき第3層目の秘密鍵sk3を生成することができる。つまり、第3層目の秘密鍵sk3は、述語ベクトル(v→ 1,v→ 2,v→ 3)に基づき生成される。
第1層目の述語ベクトルv→ 1に基づき生成された第1層目の秘密鍵sk1は、(v→ 1,(0,0),(0,0))により生成された秘密鍵である。そのため、第1層目の秘密鍵sk1は、属性ベクトル(x→ 1,(*,*),(*,*)):=((x1,x2),(*,*),(*,*))により暗号化された暗号文を、v→ 1・x→ 1=0である場合には復号できる。なぜなら、(*,*)・(0,0)=0であるためである。ここで、“*”は、任意の値を示す。
同様に、第2層目の述語ベクトル(v→ 1,v→ 2)に基づき生成された第2層目の秘密鍵sk2は、(v→ 1,v→ 2,(0,0))により生成された秘密鍵である。そのため、第2層目の秘密鍵sk2は、属性ベクトル(x→ 1,x→ 2,(*,*)):=((x1,x2),(x3,x4),(*,*))により暗号化された暗号文を、v→ 1・x→ 1=0かつv→ 2・x→ 2=0である場合には復号できる。
しかし、第2層目の秘密鍵sk2は、第1層目の属性ベクトルx→ 1:=(x1,x2)(つまり、(x→ 1,(*,*),(*,*))により暗号化された暗号文を復号することはできない。なぜなら、v→ 2=(0,0)でなければ、(*,*)・v→ 2≠0であり、v→ 2・x→ 2≠0であるためである。そのため、第2層目の秘密鍵sk2は、親である秘密鍵鍵sk2よりも限定された能力のみを有していると言える。
まず、対称双線形ペアリング群(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である。
以下の説明において、数121を、1λを入力として、セキュリティパラメータをλとする双線形ペアリング群のパラメータparamG:=(q,G,GT,g,e)の値を出力するアルゴリズムとする。
双対ペアリングベクトル空間(q,V,GT,A,e)は、対称双線形ペアリング群(paramG:=(q,G,GT,g,e))の直積によって構成することができる。双対ペアリングベクトル空間(q,V,GT,A,e)は、素数q、数122に示すFq上のN次元ベクトル空間V、位数qの巡回群GT、空間Vの標準基底A:=(a1,...,aN)の組であり、以下の演算(1)(2)を有する。ここで、aiは、数123に示す通りである。
空間Vにおけるペアリングは、数124によって定義される。
<第4−1.階層的内積述語暗号の基本構成>
階層的内積述語暗号方式の構成を簡単に説明する。
階層的内積述語暗号方式は、Setup、KeyGen、Enc、Dec、DelegateL(L=1,...,d−1)の5つの確率的多項式時間アルゴリズムを備える。
(Setup)
Setupアルゴリズムでは、セキュリティパラメータ1λと階層情報n→:=(d;N0,...,Nd)とが入力され、マスター公開鍵pkとマスター秘密鍵skとが出力される。マスター秘密鍵skは最も上位の鍵である。
(KeyGen)
KeyGenアルゴリズムでは、マスター公開鍵pkとマスター秘密鍵skと述語ベクトル(v→ 1,...,v→ L)(1≦L≦d)が入力され、第L層目の秘密鍵sk(v→1,...,v→L)が出力される。
(Enc)
Encアルゴリズムでは、マスター公開鍵pkと属性ベクトル(x→ 1,...,x→ h)(1≦h≦d)と平文情報mとが入力され、暗号化データct(暗号文)が出力される。つまり、Encアルゴリズムでは、平文情報mを埋め込み、属性ベクトル(x→ 1,...,x→ h)により暗号化された暗号化データctが出力される。
(Dec)
Decアルゴリズムでは、マスター公開鍵pkと第L層目の秘密鍵sk(v→1,...,v→L)と暗号化データctとが入力され、平文情報m又は識別情報⊥が出力される。識別情報⊥とは、復号に失敗したことを示す情報である。つまり、Decアルゴリズムでは、暗号化データctを第L層目の秘密鍵で復号して、平文情報mを抽出する。また、復号に失敗した場合には識別情報⊥を出力する。
(DelegateL)
DelegateLでは、マスター公開鍵pkと第L層目の秘密鍵sk(v→1,...,v→L)と第L+1層目の述語ベクトルv→ L+1(L+1≦d)とが入力され、第L+1層目の秘密鍵sk(v→1,...,v→L+1)が出力される。つまり、DelegateLアルゴリズムでは、下位の秘密鍵が出力される。
階層的内積述語暗号方式のアルゴリズムを実行する暗号処理システム10について説明する。
図7は、階層的内積述語暗号方式のアルゴリズムを実行する暗号処理システム10の構成図である。
暗号処理システム10は、鍵生成装置100、暗号化装置200、復号装置300、鍵委譲装置400を備える。なお、ここでは、復号装置300が、鍵委譲装置400を備えるものとして説明するが、鍵委譲装置400は、復号装置300とは別に設けられていてもよい。
鍵生成装置100は、セキュリティパラメータλと、階層情報n→:=(d;N0,...,Nd)とを入力としてSetupアルゴリズムを実行して、マスター公開鍵pkとマスター秘密鍵skとを生成する。そして、鍵生成装置100は、生成したマスター公開鍵pkを公開する。また、鍵生成装置100は、マスター公開鍵pkとマスター秘密鍵skと述語ベクトル(v→ 1,...,v→ L)(1≦L≦d)とを入力としてKeyGenアルゴリズムを実行して、第L層目の秘密鍵sk(v→1,...,v→L)を生成して第L層目の復号装置300へ秘密裡に配布する。
暗号化装置200は、マスター公開鍵pkと属性ベクトル(x→ 1,...,x→ h)(1≦h≦d)と平文情報mとを入力としてEncアルゴリズムを実行して、暗号化データctを生成する。暗号化装置200は、生成した暗号化データctを復号装置300へ送信する。
復号装置300は、マスター公開鍵pkと第L層目の秘密鍵sk(v→1,...,v→L)と暗号化データctとを入力としてDecアルゴリズムを実行して、平文情報m又は識別情報⊥を出力する。
鍵委譲装置400は、スター公開鍵pkと第L層目の秘密鍵sk(v→1,...,v→L)と第L+1層目の述語ベクトルv→ L+1(L+1≦d)とを入力としてDelegateLアルゴリズムを実行して、第L+1層目の秘密鍵sk(v→1,...,v→L+1)を生成して第L+1層目の復号装置300へ秘密裡に配布する。
図8から図16に基づき、実施の形態1に係る階層的内積述語暗号方式、及び、階層的内積述語暗号方式を実行する暗号処理システム10の機能と動作とについて説明する。
図8は、鍵生成装置100の機能を示す機能ブロック図である。図9は、暗号化装置200の機能を示す機能ブロック図である。図10は、復号装置300の機能を示す機能ブロック図である。図11は、鍵委譲装置400の機能を示す機能ブロック図である。
図12と図13とは、鍵生成装置100の動作を示すフローチャートである。なお、図12はSetupアルゴリズムの処理を示すフローチャートであり、図13はKeyGenアルゴリズムの処理を示すフローチャートである。図14は、暗号化装置200の動作を示すフローチャートであり、Encアルゴリズムの処理を示すフローチャートである。図15は、復号装置300の動作を示すフローチャートであり、Decアルゴリズムの処理を示すフローチャートである。図16は、鍵委譲装置400の動作を示すフローチャートであり、DelegateLアルゴリズムの処理を示すフローチャートである。
図8に示すように、鍵生成装置100は、マスター鍵生成部110、マスター鍵記憶部120、情報入力部130(第1情報入力部)、復号鍵生成部140、鍵配布部150(復号鍵送信部)を備える。
また、復号鍵生成部140は、乱数生成部141、復号要素生成部142、ランダム化要素生成部143、委譲要素生成部144を備える。
(S101:正規直交基底生成ステップ)
マスター鍵生成部110は、処理装置により、数128を計算して、paramn→と、t=0,...,dの各整数tについて基底Bt及び基底B* tとをランダムに生成する。
(1)マスター鍵生成部110は、入力装置により、セキュリティパラメータλ(1λ)と、属性のフォーマットn→:=(d;n1,...,nd,u0,...,ud,w0,...,wd,z0,...,zd)とを入力する。ここで、dは1以上の整数である。t=1,...,dの各整数tについてntは1以上の整数である。t=0,...,dまでの各整数tについてut,wt,ztは1以上の整数である。また、マスター鍵生成部110は、N0:=1+u0+1+w0+z0とし、t=1,...,dの各整数tについてNt:=nt+ut+wt+ztとする。
(2)マスター鍵生成部110は、処理装置により、(1)で入力したセキュリティパラメータλ(1λ)を入力としてアルゴリズムGbpgを実行して、ランダムに双線形ペアリング群のパラメータparamG:=(q,G,GT,g,e)の値を生成する。
(3)マスター鍵生成部110は、処理装置により、乱数ψを生成する。
(4)マスター鍵生成部110は、処理装置により、(1)で入力したセキュリティパラメータλ(1λ)及び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と、gTとを設定する。なお、t=0,...,dとi=1,...,Ntとの各整数t,iについて、gT=e(bt,i,b* t,i)である。
マスター鍵生成部110は、処理装置により、基底B0の部分基底B^0と、t=1,...,dの各整数tについて、基底Btの部分基底B^tを数130に示すように生成する。
マスター鍵生成部110は、処理装置により、基底B* 0の部分基底B^* 0と、t=1,...,dの各整数tについて、基底B* tの部分基底B^* tを数131に示すように生成する。
マスター鍵記憶部120は、(S102)で生成したマスター公開鍵pkを記憶装置に記憶する。また、マスター鍵記憶部120は、(S103)で生成したマスター秘密鍵skを記憶装置に記憶する。
なお、マスター公開鍵pkは、例えば、ネットワークを介して公開され、復号装置300が取得可能な状態にされる。
(S201:情報入力ステップ)
情報入力部130は、入力装置により、述語情報(v→ 1,...,v→ L):=((v1,i(i=1,...,n1)),...,(vL,i(i=1,...,nL)))を入力する。なお、述語情報としては、鍵を使用する者の属性が入力される。
乱数生成部141は、処理装置により、j=1,...,2Lと,τ=L+1,...,dと,(τ,ι)=(τ,1),...,(τ,nτ)との各整数j,τ,ιについて、乱数ψと、乱数sdec,t,sran,j,t(t=1,...,L)と、乱数θdec,t,θran,j,t,η→ dec,t,η→ ran,j,t(t=0,...,L)と、乱数sran,(τ,ι),t,sdel,(τ,ι),t(t=1,...,L+1)と、乱数θran,(τ,ι),t,θdel,(τ,ι),t,η→ ran,(τ,ι),t,η→ del,(τ,ι),t(t=0,...,L+1)とを数133に示すように生成する。
復号要素生成部142は、処理装置により、復号鍵skLの要素である復号要素k* L,decを数135に示すように生成する。
まず、基底B* 0の部分について説明する。ここでは、表記を簡略化して、基底ベクトルb* 0,iのうち、iの部分のみで基底ベクトルを特定する。例えば、基底ベクトル1であれば、基底ベクトルb* 0,1を意味する。また、基底ベクトル1,...,3であれば、基底ベクトルb* 0,1,...,b* 0,3を意味する。
基底B* 0の基底ベクトル1の係数として−sdec,0が設定される。基底ベクトル1+1,...,1+u0の係数として0が設定される。基底ベクトル1+u0+1の係数として1が設定される。基底ベクトル1+u0+1+1,...,1+u0+1+w0の係数としてηdec,0,1,...,ηdec,0,wo(ここで、w0はw0のことである)が設定される。基底ベクトル1+u0+1+w0+1,...,1+u0+1+w0+z0の係数として0が設定される。
次に、基底B* t(t=1,...,L)の部分について説明する。ここでは、表記を簡略化して、基底ベクトルb* t,iのうち、iの部分のみで基底ベクトルを特定する。例えば、基底ベクトル1であれば、基底ベクトルb* t,1を意味する。また、基底ベクトル1,...,3であれば、基底ベクトルb* t,1,...,b* t,3を意味する。
基底B* t(t=1,...,L)の基底ベクトル1の係数としてsdec,t+θdec,tvt,1が設定される。基底ベクトル2,...,ntの係数としてθdec,tvt,2,...,θdec,tvt,nt(ここで、ntはntのことである)が設定される。基底ベクトルnt+1,...,nt+utの係数として0が設定される。基底ベクトルnt+ut+1,...,nt+ut+wtの係数としてηdec,t,1,...,ηdec,t,wt(ここで、wtはwtのことである)が設定される。基底ベクトルnt+ut+wt+1,...,nt+ut+wt+ztの係数として0が設定される。
ランダム化要素生成部143は、処理装置により、j=1,...,2Lの各整数jについて、復号鍵skLの要素である第1ランダム化要素k* L,ran,jを数136に示すように生成する。
まず、基底B* 0の部分について説明する。ここでは、表記を簡略化して、基底ベクトルb* 0,iのうち、iの部分のみで基底ベクトルを特定する。例えば、基底ベクトル1であれば、基底ベクトルb* 0,1を意味する。また、基底ベクトル1,...,3であれば、基底ベクトルb* 0,1,...,b* 0,3を意味する。
基底B* 0の基底ベクトル1の係数として−sran,j,0が設定される。基底ベクトル1+1,...,1+u0+1の係数として0が設定される。基底ベクトル1+u0+1+1,...,1+u0+1+w0の係数としてηran,j,0,1,...,ηran,j,0,wo(ここで、w0はw0のことである)が設定される。基底ベクトル1+u0+1+w0+1,...,1+u0+1+w0+z0の係数として0が設定される。
次に、基底B* t(t=1,...,L)の部分について説明する。ここでは、表記を簡略化して、基底ベクトルb* t,iのうち、iの部分のみで基底ベクトルを特定する。例えば、基底ベクトル1であれば、基底ベクトルb* t,1を意味する。また、基底ベクトル1,...,3であれば、基底ベクトルb* t,1,...,b* t,3を意味する。
基底B* t(t=1,...,L)の基底ベクトル1の係数としてsran,j,t+θran,j,tvt,1が設定される。基底ベクトル2,...,ntの係数としてθran,j,tvt,2,...,θran,j,tvt,nt(ここで、ntはntのことである)が設定される。基底ベクトルnt+1,...,nt+utの係数として0が設定される。基底ベクトルnt+ut+1,...,nt+ut+wtの係数としてηran,j,t,1,...,ηran,j,t,wt(ここで、wtはwtのことである)が設定される。基底ベクトルnt+ut+wt+1,...,nt+ut+wt+ztの係数として0が設定される。
ランダム化要素生成部143は、処理装置により、τ=L+1,...,dの各整数τと、各整数τについてι=1,...,nτの各整数ιとについて、復号鍵skLの要素である第2ランダム化要素k* L,ran,(τ,ι)を数137に示すように生成する。
まず、基底B* 0の部分について説明する。ここでは、表記を簡略化して、基底ベクトルb* 0,iのうち、iの部分のみで基底ベクトルを特定する。例えば、基底ベクトル1であれば、基底ベクトルb* 0,1を意味する。また、基底ベクトル1,...,3であれば、基底ベクトルb* 0,1,...,b* 0,3を意味する。
基底B* 0の基底ベクトル1の係数として−sran,(τ,ι),0が設定される。基底ベクトル1+1,...,1+u0+1の係数として0が設定される。基底ベクトル1+u0+1+1,...,1+u0+1+w0の係数としてηran,(τ,ι),0,1,...,ηran,(τ,ι),0,wo(ここで、w0はw0のことである)が設定される。基底ベクトル1+u0+1+w0+1,...,1+u0+1+w0+z0の係数として0が設定される。
次に、基底B* t(t=1,...,L)の部分について説明する。ここでは、表記を簡略化して、基底ベクトルb* t,iのうち、iの部分のみで基底ベクトルを特定する。例えば、基底ベクトル1であれば、基底ベクトルb* t,1を意味する。また、基底ベクトル1,...,3であれば、基底ベクトルb* t,1,...,b* t,3を意味する。
基底B* t(t=1,...,L)の基底ベクトル1の係数としてsran,(τ,ι),t+θran,(τ,ι),tvt,1が設定される。基底ベクトル2,...,ntの係数としてθran,(τ,ι),tvt,2,...,θran,(τ,ι),tvt,nt(ここで、ntはntのことである)が設定される。基底ベクトルnt+1,...,nt+utの係数として0が設定される。基底ベクトルnt+ut+1,...,nt+ut+wtの係数としてηran,(τ,ι),t,1,...,ηran,(τ,ι),t,wt(ここで、wtはwtのことである)が設定される。基底ベクトルnt+ut+wt+1,...,nt+ut+wt+ztの係数として0が設定される。
次に、基底B* τの部分について説明する。ここでは、表記を簡略化して、基底ベクトルb* τ,iのうち、iの部分のみで基底ベクトルを特定する。例えば、基底ベクトル1であれば、基底ベクトルb* τ,1を意味する。また、基底ベクトル1,...,3であれば、基底ベクトルb* τ,1,...,b* τ,3を意味する。
基底B* τの基底ベクトル1の係数としてsran,(τ,ι),L+1が設定される。基底ベクトル2,...,nτ,...,nτ+uτの係数として0が設定される。基底ベクトルnτ+uτ+1,...,nτ+uτ+wτの係数としてηran,(τ,ι),L+1,1,...,ηran,(τ,ι),L+1,wτ(ここで、wτはwτのことである)が設定される。基底ベクトルnτ+uτ+wτ+1,...,nτ+uτ+wτ+zτの係数として0が設定される。
委譲要素生成部144は、処理装置により、τ=L+1,...,dの各整数τと、各整数τについてι=1,...,nτの各整数ιとについて、復号鍵skLの要素である委譲要素k* L,del,(τ,ι)を数138に示すように生成する。
まず、基底B* 0の部分について説明する。ここでは、表記を簡略化して、基底ベクトルb* 0,iのうち、iの部分のみで基底ベクトルを特定する。例えば、基底ベクトル1であれば、基底ベクトルb* 0,1を意味する。また、基底ベクトル1,...,3であれば、基底ベクトルb* 0,1,...,b* 0,3を意味する。
基底B* 0の基底ベクトル1の係数として−sdel,(τ,ι),0が設定される。基底ベクトル1+1,...,1+u0+1の係数として0が設定される。基底ベクトル1+u0+1+1,...,1+u0+1+w0の係数としてηdel,(τ,ι),0,1,...,ηdel,(τ,ι),0,wo(ここで、w0はw0のことである)が設定される。基底ベクトル1+u0+1+w0+1,...,1+u0+1+w0+z0の係数として0が設定される。
次に、基底B* t(t=1,...,L)の部分について説明する。ここでは、表記を簡略化して、基底ベクトルb* t,iのうち、iの部分のみで基底ベクトルを特定する。例えば、基底ベクトル1であれば、基底ベクトルb* t,1を意味する。また、基底ベクトル1,...,3であれば、基底ベクトルb* t,1,...,b* t,3を意味する。
基底B* t(t=1,...,L)の基底ベクトル1の係数としてsdel,(τ,ι),t+θdel,(τ,ι),tvt,1が設定される。基底ベクトル2,...,ntの係数としてθdel,(τ,ι),tvt,2,...,θdel,(τ,ι),tvt,nt(ここで、ntはntのことである)が設定される。基底ベクトルnt+1,...,nt+utの係数として0が設定される。基底ベクトルnt+ut+1,...,nt+ut+wtの係数としてηdel,(τ,ι),t,1,...,ηdel,(τ,ι),t,wt(ここで、wtはwtのことである)が設定される。基底ベクトルnt+ut+wt+1,...,nt+ut+wt+ztの係数として0が設定される。
次に、基底B* τの部分について説明する。ここでは、表記を簡略化して、基底ベクトルb* τ,iのうち、iの部分のみで基底ベクトルを特定する。例えば、基底ベクトル1であれば、基底ベクトルb* τ,1を意味する。また、基底ベクトル1,...,3であれば、基底ベクトルb* τ,1,...,b* τ,3を意味する。
基底B* τの基底ベクトル1,...,nτの係数としてsdel,(τ,ι),L+1e→ τ,1+ψe→ τ,ιが設定される。基底ベクトルnτ+1,...,nτ+uτの係数として0が設定される。基底ベクトルnτ+uτ+1,...,nτ+uτ+wτの係数としてηdel,(τ,ι),L+1,1,...,ηdel,(τ,ι),L+1,wτ(ここで、wτはwτのことである)が設定される。基底ベクトルnτ+uτ+wτ+1,...,nτ+uτ+wτ+zτの係数として0が設定される。
鍵配布部150は、復号要素k* L,decと、第1ランダム化要素k* L,ran,j(j=1,...,2L)と、第2ランダム化要素k* L,ran,(τ,ι)(τ=L+1,...,d;(τ,ι)=(τ,1),...,(τ,nτ))と、委譲要素k* L,del,(τ,ι)(τ=L+1,...,d;(τ,ι)=(τ,1),...,(τ,nτ))とを要素とする復号鍵skLを、例えば通信装置によりネットワークを介して秘密裡に復号装置300へ配布する。もちろん、復号鍵skLは、他の方法により復号装置300へ配布されてもよい。
図9に示すように、暗号化装置200は、マスター公開鍵取得部210、情報入力部220(第2情報入力部)、暗号化データ生成部230、データ送信部240を備える。
また、情報入力部220は、属性情報入力部221、メッセージ入力部222を備える。また、暗号化データ生成部230は、乱数生成部231、暗号化データc1生成部232、暗号化データc2生成部233を備える。
(S301:マスター公開鍵取得ステップ)
マスター公開鍵取得部210は、例えば、通信装置によりネットワークを介して、鍵生成装置100が生成したマスター公開鍵pkを取得する。
属性情報入力部221は、入力装置により、属性情報(x→ 1,...,x→ L):=((x1,i(i=1,...,n1)),...,(xL,i(i=1,...,nL)))を入力する。なお、属性情報としては、暗号化したメッセージを復号可能な者の属性が入力される。
また、メッセージ入力部222は、入力装置により、暗号化するメッセージmを入力する。
乱数生成部231は、処理装置により、乱数(x→ L+1,...,x→ d):=((xL+1,i(i=1,...,nL+1)),...,(xd,i(i=1,...,nd)))と、乱数ω,ζ,φ→ t(t=0,...,d)とを数141に示すように生成する。
暗号化データc1生成部232は、処理装置により、暗号化データctの要素である暗号化データc1を数142に示すように生成する。
まず、基底B0の部分について説明する。ここでは、表記を簡略化して、基底ベクトルb0,iのうち、iの部分のみで基底ベクトルを特定する。例えば、基底ベクトル1であれば、基底ベクトルb0,1を意味する。また、基底ベクトル1,...,3であれば、基底ベクトルb0,1,...,b0,3を意味する。
基底B0の基底ベクトル1の係数としてωが設定される。基底ベクトル1+1,...,1+u0の係数として0が設定される。基底ベクトル1+u0+1の係数としてζが設定される。基底ベクトル1+u0+1+1,...,1+u0+1+w0の係数として0が設定される。基底ベクトル1+u0+1+w0+1,...,1+u0+1+w0+z0の係数としてφ0,1,...,φ0,zo(ここで、z0はz0のことである)が設定される。
次に、基底Bt(t=1,...,d)の部分について説明する。ここでは、表記を簡略化して、基底ベクトルbt,iのうち、iの部分のみで基底ベクトルを特定する。例えば、基底ベクトル1であれば、基底ベクトルbt,1を意味する。また、基底ベクトル1,...,3であれば、基底ベクトルbt,1,...,bt,3を意味する。
基底Bt(t=1,...,d)の基底ベクトル1,...,ntの係数としてωxt,1,...,ωxt,nt(ここで、ntはntのことである)が設定される。基底ベクトルnt+1,...,nt+ut+wtの係数として0が設定される。基底ベクトルnt+ut+wt+1,...,nt+ut+wt+ztの係数としてφt,1,...,φt,zt(ここで、ztはztのことである)が設定される。
データ送信部240は、暗号化データc1と、暗号化データc2とを含む暗号化データctを、例えば通信装置によりネットワークを介して復号装置300へ送信する。もちろん、暗号化データctは、他の方法により復号装置300へ送信されてもよい。
図10に示すように、復号装置300は、復号鍵取得部310、データ受信部320、ペアリング演算部330、メッセージ計算部340を備える。
(S401:復号鍵取得ステップ)
復号鍵取得部310は、例えば、通信装置によりネットワークを介して、復号鍵skLを取得する。また、復号鍵取得部310は、鍵生成装置100が生成した公開パラメータpkを取得する。
データ受信部320は、例えば、通信装置によりネットワークを介して、暗号化装置200が送信した暗号化データctを受信する。
ペアリング演算部330は、処理装置により、数145に示すペアリング演算を行い、セッション鍵K=gT ζを計算する。
メッセージ計算部340は、処理装置により、暗号化データc2をセッション鍵Kで割ることにより、メッセージm’(=m)を計算する。
図11に示すように、鍵委譲装置400は、復号鍵取得部410、情報入力部420(第3情報入力部)、委譲鍵生成部430、鍵配布部440(委譲鍵送信部)を備える。
また、委譲鍵生成部430は、乱数生成部431、下位復号要素生成部432、下位ランダム化要素生成部433、下位委譲要素生成部434を備える。
(S501:復号鍵取得ステップ)
復号鍵取得部410は、例えば、通信装置によりネットワークを介して、復号鍵skLを取得する。また、復号鍵取得部410は、鍵生成装置100が生成した公開パラメータpkを取得する。
情報入力部420は、入力装置により、述語情報v→ L+1:=(vL+1,i(i=1,...,nL+1))を入力する。なお、述語情報としては、鍵を委譲される者の属性が入力される。
乱数生成部431は、処理装置により、j=1,...,2Lと,j’=1,...,2(L+1)と,τ=L+2,...,dと,(τ,ι)=(τ,1),...,(τ,nτ)と,t=0,...,L+1,τと,(t,i)=(t,1),...,(t,nt)との各整数j,j’,τ,ι,t,iについて、乱数αdec,j,σdec,αran,j’,j,σran,j’,αran,(τ,ι),j,σran,(τ,ι),φran,(τ,ι),αdel,(τ,ι),j,σdel,(τ,ι),φdel,(τ,ι),ψ’,ηdec,(t,i),ηran,j’,(t,i),ηran,(τ,ι),(t,i),ηdel,(τ,ι),(t,i)を数147に示すように生成する。
下位ランダム化要素生成部433は、処理装置により、j’=1,...,2(L+1)の各整数j’について、委譲鍵skL+1の要素である第1下位ランダム化要素k* L+1,ran,j’を数149に示すように生成する。
下位ランダム化要素生成部433は、処理装置により、τ=L+2,...,dの各整数τと、各整数τに関してι=1,...,nτの各整数ιとについて、委譲鍵skL+1の要素である第2下位ランダム化要素k* L+1,ran,(τ,ι)を数150に示すように生成する。
下位委譲要素生成部434は、処理装置により、τ=L+2,...,dの各整数τと、各整数τについてι=1,...,nτの各整数ιとについて、委譲鍵skL+1の要素である下位委譲要素k* L+1,del,(τ,ι)を数151に示すように生成する。
鍵配布部150は、下位復号要素k* L+1,decと、第1下位ランダム化要素k* L+1,ran,j’(j’=1,...,2(L+1))と、第2下位ランダム化要素k* L+1,ran,(τ,ι)(τ=L+2,...,d;(τ,ι)=(τ,1),...,(τ,nτ))と、下位委譲要素k* L+1,del,(τ,ι)(τ=L+2,...,d;(τ,ι)=(τ,1),...,(τ,nτ))とを要素とする委譲鍵skL+1(下位の復号鍵)を、例えば通信装置によりネットワークを介して秘密裡に下位の復号装置300へ配布する。もちろん、委譲鍵skL+1は、他の方法により下位の復号装置300へ配布されてもよい。
この場合、数132に示すSetupアルゴリズムは、数154のように書き換えられる。なお、Gobは数155のように書き換えられる。
この実施の形態では、実施の形態1で説明した方式を一般化した階層的内積述語暗号方式について説明する。
しかし、実施の形態2で説明する階層的内積述語暗号方式では、暗号化データctに設定された属性情報と、復号鍵に設定された述語情報との内積が0とならない場合であっても復号可能となるように設定できる。
具体的には、以下の説明において、ρt(t=1,...,d)の値が0である整数tについては、属性情報x→ tと述語情報v→ tとの内積が0となり、ρt(t=1,...,d)の値が1である整数tについては、属性情報x→ tと述語情報v→ tとの内積が0とならない場合に、復号可能となる。
これにより、例えば、ρt(t=1,...,d)の値の設定に応じて、肯定形の条件式(例えば、属性情報=述語情報)と否定形の条件式(属性情報≠述語情報)との設定をすることができる。
なお、実施の形態2に係る暗号処理システム10の機能構成については、図8から図11に示す実施の形態1に係る暗号処理システム10の機能構成と同一である。
図17は、鍵生成装置100の動作を示すフローチャートであり、KeyGenアルゴリズムの処理を示すフローチャートである。図18は、復号装置300の動作を示すフローチャートであり、Decアルゴリズムの処理を示すフローチャートである。図19は、鍵委譲装置400の動作を示すフローチャートであり、DelegateLアルゴリズムの処理を示すフローチャートである。
なお、実施の形態2に係るSetupアルゴリズムとEncアルゴリズムとの処理は、実施の形態1に係るSetupアルゴリズムとEncアルゴリズムとの処理と同一であるため、説明を省略する。但し、Encアルゴリズムでは、暗号化データctに、暗号化データc1,c2だけでなく、属性情報x→ i(i=1,...,L)も含めて、復号装置300へ送信する。
(S601:情報入力ステップ)
情報入力部130は、入力装置により、述語情報((v→ 1,ρ1),...,(v→ L,ρL)):=((v1,i(i=1,...,n1),ρ1∈{0,1}),...,(vL,i(i=1,...,nL),ρL∈{0,1}))を入力する。なお、述語情報としては、鍵を使用する者の属性が入力される。
乱数生成部141は、処理装置により、j=1,...,2Lと、τ=L+1,...,dと、(τ,ι)=(τ,1),...,(τ,nτ)との各整数j,τ,ιについて、乱数ψと、乱数sdec,t,sran,j,t(t=1,...,L)と、乱数θdec,t,θran,j,t,η→ dec,t,η→ ran,j,t,η→ ran,0,t,η→ del,0,t,η→ del,1,t(t=0,...,L)と、乱数sran,0,t,sdel,0,t,sdel,1,t(t=0,...,L+1)と、乱数θran,0,t,θdel,0,t,θdel,1,t(t=0,...,L+1)と、乱数η→ ran,(τ,ι),η→ del,0,(τ,ι),η→ del,1,(τ,ι)とを数161に示すように生成する。
復号要素生成部142は、処理装置により、復号鍵skLの要素である復号要素k* L,decを数163に示すように生成する。
まず、基底B* 0の部分について説明する。ここでは、表記を簡略化して、基底ベクトルb* 0,iのうち、iの部分のみで基底ベクトルを特定する。例えば、基底ベクトル1であれば、基底ベクトルb* 0,1を意味する。また、基底ベクトル1,...,3であれば、基底ベクトルb* 0,1,...,b* 0,3を意味する。
基底B* 0の基底ベクトル1の係数として−sdec,0が設定される。基底ベクトル1+1,...,1+u0の係数として0が設定される。基底ベクトル1+u0+1の係数として1が設定される。基底ベクトル1+u0+1+1,...,1+u0+1+w0の係数としてηdec,0,1,...,ηdec,0,wo(ここで、w0はw0のことである)が設定される。基底ベクトル1+u0+1+w0+1,...,1+u0+1+w0+z0の係数として0が設定される。
次に、基底B* t(t=1,...,L)の部分について説明する。ここでは、表記を簡略化して、基底ベクトルb* t,iのうち、iの部分のみで基底ベクトルを特定する。例えば、基底ベクトル1であれば、基底ベクトルb* t,1を意味する。また、基底ベクトル1,...,3であれば、基底ベクトルb* t,1,...,b* t,3を意味する。また、基底B* t(t=1,...,L)については、ρtの値が0であるか、1であるかによって場合分けされる。
ρtの値が0の場合、基底B* t(t=1,...,L)の基底ベクトル1の係数としてsdec,t+θdec,tvt,1が設定される。基底ベクトル2,...,ntの係数としてθdec,tvt,2,...,θdec,tvt,nt(ここで、ntはntのことである)が設定される。基底ベクトルnt+1,...,nt+utの係数として0が設定される。基底ベクトルnt+ut+1,...,nt+ut+wtの係数としてηdec,t,1,...,ηdec,t,wt(ここで、wtはwtのことである)が設定される。基底ベクトルnt+ut+wt+1,...,nt+ut+wt+ztの係数として0が設定される。
一方、ρtの値が1の場合、基底B* t(t=1,...,L)の基底ベクトル1,...,ntの係数としてsdec,tvt,1,...,sdec,tvt,nt(ここで、ntはntのことである)が設定される。基底ベクトルnt+1,...,nt+utの係数として0が設定される。基底ベクトルnt+ut+1,...,nt+ut+wtの係数としてηdec,t,1,...,ηdec,t,wt(ここで、wtはwtのことである)が設定される。基底ベクトルnt+ut+wt+1,...,nt+ut+wt+ztの係数として0が設定される。
ランダム化要素生成部143は、処理装置により、j=1,...,2Lの各整数jについて、復号鍵skLの要素である第1ランダム化要素k* L,ran,jを数164に示すように生成する。
まず、基底B* 0の部分について説明する。ここでは、表記を簡略化して、基底ベクトルb* 0,iのうち、iの部分のみで基底ベクトルを特定する。例えば、基底ベクトル1であれば、基底ベクトルb* 0,1を意味する。また、基底ベクトル1,...,3であれば、基底ベクトルb* 0,1,...,b* 0,3を意味する。
基底B* 0の基底ベクトル1の係数として−sran,j,0が設定される。基底ベクトル1+1,...,1+u0+1の係数として0が設定される。基底ベクトル1+u0+1+1,...,1+u0+1+w0の係数としてηran,j,0,1,...,ηran,j,0,wo(ここで、w0はw0のことである)が設定される。基底ベクトル1+u0+1+w0+1,...,1+u0+1+w0+z0の係数として0が設定される。
次に、基底B* t(t=1,...,L)の部分について説明する。ここでは、表記を簡略化して、基底ベクトルb* t,iのうち、iの部分のみで基底ベクトルを特定する。例えば、基底ベクトル1であれば、基底ベクトルb* t,1を意味する。また、基底ベクトル1,...,3であれば、基底ベクトルb* t,1,...,b* t,3を意味する。また、基底B* t(t=1,...,L)については、ρtの値が0であるか、1であるかによって場合分けされる。
ρtの値が0の場合、基底B* t(t=1,...,L)の基底ベクトル1の係数としてsran,j,t+θran,j,tvt,1が設定される。基底ベクトル2,...,ntの係数としてθran,j,tvt,2,...,θran,j,tvt,nt(ここで、ntはntのことである)が設定される。基底ベクトルnt+1,...,nt+utの係数として0が設定される。基底ベクトルnt+ut+1,...,nt+ut+wtの係数としてηran,j,t,1,...,ηran,j,t,wt(ここで、wtはwtのことである)が設定される。基底ベクトルnt+ut+wt+1,...,nt+ut+wt+ztの係数として0が設定される。
一方、ρtの値が1の場合、基底B* t(t=1,...,L)の基底ベクトル1,...,ntの係数としてsran,j,tvt,1,...,sran,j,tvt,nt(ここで、ntはntのことである)が設定される。基底ベクトルnt+1,...,nt+utの係数として0が設定される。基底ベクトルnt+ut+1,...,nt+ut+wtの係数としてηran,j,t,1,...,ηran,j,t,wt(ここで、wtはwtのことである)が設定される。基底ベクトルnt+ut+wt+1,...,nt+ut+wt+ztの係数として0が設定される。
ランダム化要素生成部143は、処理装置により、τ=L+1,...,dの各整数τと、各整数τに関してι=1,...,nτの各整数ιとについて、復号鍵skLの要素である第2ランダム化要素k* L,ran,(τ,ι,0)を数165に示すように生成する。
まず、基底B* 0の部分について説明する。ここでは、表記を簡略化して、基底ベクトルb* 0,iのうち、iの部分のみで基底ベクトルを特定する。例えば、基底ベクトル1であれば、基底ベクトルb* 0,1を意味する。また、基底ベクトル1,...,3であれば、基底ベクトルb* 0,1,...,b* 0,3を意味する。
基底B* 0の基底ベクトル1の係数として−sran,0,0が設定される。基底ベクトル1+1,...,1+u0+1の係数として0が設定される。基底ベクトル1+u0+1+1,...,1+u0+1+w0の係数としてηran,0,0,1,...,ηran,0,0,wo(ここで、w0はw0のことである)が設定される。基底ベクトル1+u0+1+w0+1,...,1+u0+1+w0+z0の係数として0が設定される。
次に、基底B* t(t=1,...,L)の部分について説明する。ここでは、表記を簡略化して、基底ベクトルb* t,iのうち、iの部分のみで基底ベクトルを特定する。例えば、基底ベクトル1であれば、基底ベクトルb* t,1を意味する。また、基底ベクトル1,...,3であれば、基底ベクトルb* t,1,...,b* t,3を意味する。また、基底B* t(t=1,...,L)については、ρtの値が0であるか、1であるかによって場合分けされる。
ρtの値が0の場合、基底B* t(t=1,...,L)の基底ベクトル1の係数としてsran,0,t+θran,0,tvt,1が設定される。基底ベクトル2,...,ntの係数としてθran,0,tvt,2,...,θran,0,tvt,nt(ここで、ntはntのことである)が設定される。基底ベクトルnt+1,...,nt+utの係数として0が設定される。基底ベクトルnt+ut+1,...,nt+ut+wtの係数としてηran,0,t,1,...,ηran,0,t,wt(ここで、wtはwtのことである)が設定される。基底ベクトルnt+ut+wt+1,...,nt+ut+wt+ztの係数として0が設定される。
一方、ρtの値が1の場合、基底B* t(t=1,...,L)の基底ベクトル1,...,ntの係数としてsran,0,tvt,1,...,sran,0,tvt,nt(ここで、ntはntのことである)が設定される。基底ベクトルnt+1,...,nt+utの係数として0が設定される。基底ベクトルnt+ut+1,...,nt+ut+wtの係数としてηran,0,t,1,...,ηran,0,t,wt(ここで、wtはwtのことである)が設定される。基底ベクトルnt+ut+wt+1,...,nt+ut+wt+ztの係数として0が設定される。
次に、基底B* τの部分について説明する。ここでは、表記を簡略化して、基底ベクトルb* τ,iのうち、iの部分のみで基底ベクトルを特定する。例えば、基底ベクトル1であれば、基底ベクトルb* τ,1を意味する。また、基底ベクトル1,...,3であれば、基底ベクトルb* τ,1,...,b* τ,3を意味する。
基底B* τの基底ベクトル1の係数としてsran,0,L+1が設定される。基底ベクトル2,...,nτ,...,nτ+uτの係数として0が設定される。基底ベクトルnτ+uτ+1,...,nτ+uτ+wτの係数としてηran,0,(τ,ι),1,...,ηran,0,(τ,ι)s,wτ(ここで、wτはwτのことである)が設定される。基底ベクトルnτ+uτ+wτ+1,...,nτ+uτ+wτ+zτの係数として0が設定される。
委譲要素生成部144は、処理装置により、τ=L+1,...,dの各整数τと、各整数τに関してι=1,...,nτの各整数ιとについて、復号鍵skLの要素である第1委譲要素k* L,del,(τ,ι,0)を数166に示すように生成する。
まず、基底B* 0の部分について説明する。ここでは、表記を簡略化して、基底ベクトルb* 0,iのうち、iの部分のみで基底ベクトルを特定する。例えば、基底ベクトル1であれば、基底ベクトルb* 0,1を意味する。また、基底ベクトル1,...,3であれば、基底ベクトルb* 0,1,...,b* 0,3を意味する。
基底B* 0の基底ベクトル1の係数として−sdel,0,0が設定される。基底ベクトル1+1,...,1+u0+1の係数として0が設定される。基底ベクトル1+u0+1+1,...,1+u0+1+w0の係数としてηdel,0,0,1,...,ηdel,0,0,wo(ここで、w0はw0のことである)が設定される。基底ベクトル1+u0+1+w0+1,...,1+u0+1+w0+z0の係数として0が設定される。
次に、基底B* t(t=1,...,L)の部分について説明する。ここでは、表記を簡略化して、基底ベクトルb* t,iのうち、iの部分のみで基底ベクトルを特定する。例えば、基底ベクトル1であれば、基底ベクトルb* t,1を意味する。また、基底ベクトル1,...,3であれば、基底ベクトルb* t,1,...,b* t,3を意味する。また、基底B* t(t=1,...,L)については、ρtの値が0であるか、1であるかによって場合分けされる。
ρtの値が0の場合、基底B* t(t=1,...,L)の基底ベクトル1の係数としてsdel,0,t+θdel,0,tvt,1が設定される。基底ベクトル2,...,ntの係数としてθdel,0,tvt,2,...,θdel,0,tvt,nt(ここで、ntはntのことである)が設定される。基底ベクトルnt+1,...,nt+utの係数として0が設定される。基底ベクトルnt+ut+1,...,nt+ut+wtの係数としてηdel,0,t,1,...,ηdel,0,t,wt(ここで、wtはwtのことである)が設定される。基底ベクトルnt+ut+wt+1,...,nt+ut+wt+ztの係数として0が設定される。
一方、ρtの値が1の場合、基底B* t(t=1,...,L)の基底ベクトル1,...,ntの係数としてsdel,0,tvt,1,...,sdel,0,tvt,nt(ここで、ntはntのことである)が設定される。基底ベクトルnt+1,...,nt+utの係数として0が設定される。基底ベクトルnt+ut+1,...,nt+ut+wtの係数としてηdel,0,t,1,...,ηdel,0,t,wt(ここで、wtはwtのことである)が設定される。基底ベクトルnt+ut+wt+1,...,nt+ut+wt+ztの係数として0が設定される。
次に、基底B* τの部分について説明する。ここでは、表記を簡略化して、基底ベクトルb* τ,iのうち、iの部分のみで基底ベクトルを特定する。例えば、基底ベクトル1であれば、基底ベクトルb* τ,1を意味する。また、基底ベクトル1,...,3であれば、基底ベクトルb* τ,1,...,b* τ,3を意味する。
基底B* τの基底ベクトル1,...,nτの係数としてsdel,0,L+1e→ τ,1+ψe→ τ,ιが設定される。基底ベクトルnτ+1,...,nτ+uτの係数として0が設定される。基底ベクトルnτ+uτ+1,...,nτ+uτ+wτの係数としてηdel,0,(τ,ι),1,...,ηdel,0,(τ,ι),wτ(ここで、wτはwτのことである)が設定される。基底ベクトルnτ+uτ+wτ+1,...,nτ+uτ+wτ+zτの係数として0が設定される。
委譲要素生成部144は、処理装置により、τ=L+1,...,dの各整数τと、各整数τに関してι=1,...,nτの各整数ιとについて、復号鍵skLの要素である第2委譲要素k* L,del,(τ,ι,1)を数167に示すように生成する。
まず、基底B* 0の部分について説明する。ここでは、表記を簡略化して、基底ベクトルb* 0,iのうち、iの部分のみで基底ベクトルを特定する。例えば、基底ベクトル1であれば、基底ベクトルb* 0,1を意味する。また、基底ベクトル1,...,3であれば、基底ベクトルb* 0,1,...,b* 0,3を意味する。
基底B* 0の基底ベクトル1の係数として−sdel,1,0が設定される。基底ベクトル1+1,...,1+u0+1の係数として0が設定される。基底ベクトル1+u0+1+1,...,1+u0+1+w0の係数としてηdel,1,0,1,...,ηdel,1,0,wo(ここで、w0はw0のことである)が設定される。基底ベクトル1+u0+1+w0+1,...,1+u0+1+w0+z0の係数として0が設定される。
次に、基底B* t(t=1,...,L)の部分について説明する。ここでは、表記を簡略化して、基底ベクトルb* t,iのうち、iの部分のみで基底ベクトルを特定する。例えば、基底ベクトル1であれば、基底ベクトルb* t,1を意味する。また、基底ベクトル1,...,3であれば、基底ベクトルb* t,1,...,b* t,3を意味する。また、基底B* t(t=1,...,L)については、ρtの値が0であるか、1であるかによって場合分けされる。
ρtの値が0の場合、基底B* t(t=1,...,L)の基底ベクトル1の係数としてsdel,1,t+θdel,1,tvt,1が設定される。基底ベクトル2,...,ntの係数としてθdel,1,tvt,2,...,θdel,1,tvt,nt(ここで、ntはntのことである)が設定される。基底ベクトルnt+1,...,nt+utの係数として0が設定される。基底ベクトルnt+ut+1,...,nt+ut+wtの係数としてηdel,1,t,1,...,ηdel,1,t,wt(ここで、wtはwtのことである)が設定される。基底ベクトルnt+ut+wt+1,...,nt+ut+wt+ztの係数として0が設定される。
一方、ρtの値が1の場合、基底B* t(t=1,...,L)の基底ベクトル1,...,ntの係数としてsdel,1,tvt,1,...,sdel,1,tvt,nt(ここで、ntはntのことである)が設定される。基底ベクトルnt+1,...,nt+utの係数として0が設定される。基底ベクトルnt+ut+1,...,nt+ut+wtの係数としてηdel,1,t,1,...,ηdel,1,t,wt(ここで、wtはwtのことである)が設定される。基底ベクトルnt+ut+wt+1,...,nt+ut+wt+ztの係数として0が設定される。
次に、基底B* τの部分について説明する。ここでは、表記を簡略化して、基底ベクトルb* τ,iのうち、iの部分のみで基底ベクトルを特定する。例えば、基底ベクトル1であれば、基底ベクトルb* τ,1を意味する。また、基底ベクトル1,...,3であれば、基底ベクトルb* τ,1,...,b* τ,3を意味する。
基底B* τの基底ベクトル1,...,nτの係数としてsdel,1,L+1e→ τ,ιが設定される。基底ベクトルnτ+1,...,nτ+uτの係数として0が設定される。基底ベクトルnτ+uτ+1,...,nτ+uτ+wτの係数としてηdel,1,(τ,ι),1,...,ηdel,1,(τ,ι),wτ(ここで、wτはwτのことである)が設定される。基底ベクトルnτ+uτ+wτ+1,...,nτ+uτ+wτ+zτの係数として0が設定される。
鍵配布部150は、復号要素k* L,decと、第1ランダム化要素k* L,ran,j(j=1,...,2L)と、第2ランダム化要素k* L,ran,(τ,ι,0)(τ=L+1,...,d;(τ,ι)=(τ,1),...,(τ,nτ))と、第1委譲要素k* L,del,(τ,ι,0)(τ=L+1,...,d;(τ,ι)=(τ,1),...,(τ,nτ))と、第2委譲要素k* L,del,(τ,ι,1)(τ=L+1,...,d;(τ,ι)=(τ,1),...,(τ,nτ))とを要素とする復号鍵skLを、例えば通信装置によりネットワークを介して秘密裡に復号装置300へ配布する。もちろん、復号鍵skLは、他の方法により復号装置300へ配布されてもよい。
(S701:復号鍵取得ステップ)
復号鍵取得部310は、例えば、通信装置によりネットワークを介して、復号鍵skLを取得する。また、復号鍵取得部310は、鍵生成装置100が生成した公開パラメータpkを取得する。
データ受信部320は、例えば、通信装置によりネットワークを介して、暗号化装置200が送信した暗号化データctを受信する。
ペアリング演算部330は、処理装置により、数170に示すペアリング演算を行い、セッション鍵K=gT ζを計算する。
メッセージ計算部340は、処理装置により、暗号化データc2をセッション鍵Kで割ることにより、メッセージm’(=m)を計算する。
(S801:復号鍵取得ステップ)
復号鍵取得部410は、例えば、通信装置によりネットワークを介して、復号鍵skLを取得する。また、復号鍵取得部410は、鍵生成装置100が生成した公開パラメータpkを取得する。
情報入力部420は、入力装置により、述語情報(v→ L+1,ρL+1):=(vL+1,i(i=1,...,nL+1),ρL+1∈{0,1})を入力する。なお、述語情報としては、鍵を委譲される者の属性が入力される。
乱数生成部431は、処理装置により、j=1,...,2Lと,j’=1,...,2(L+1)と,τ=L+2,...,dと,(τ,ι)=(τ,1),...,(τ,nτ)と,t=0,...,L+1,τと,(t,i)=(t,1),...,(t,nt)との各整数j,j’,τ,ι,t,iについて、乱数αdec,j,σdec,αran,j’,j,σran,j’,αran,(τ,ι,0),j,σran,(τ,ι,0),φran,(τ,ι,0),αdel,(τ,ι,0),j,σdel,(τ,ι,0),φdel,(τ,ι,0),αdel,(τ,ι,1),j,σdel,(τ,ι,1),φdel,(τ,ι,1),ηdec,(t,i),ηran,j’,(t,i),ηran,(τ,ι,0),(t,i),ηdel,(τ,ι,0),(t,i),ηdel,(τ,ι,1),(t,i),ψ0,ψ1を数173に示すように生成する。
下位ランダム化要素生成部433は、処理装置により、j’=1,...,2(L+1)の各整数j’について、委譲鍵skL+1の要素である第1下位ランダム化要素k* L+1,ran,j’を数175に示すように生成する。
下位ランダム化要素生成部433は、処理装置により、τ=L+2,...,dの各整数τと、各整数τについてι=1,...,nτの各整数ιとについて、委譲鍵skL+1の要素である第2下位ランダム化要素k* L+1,ran,(τ,ι)を数176に示すように生成する。
下位委譲要素生成部434は、処理装置により、τ=L+2,...,dの各整数τと、各整数τについてι=1,...,nτの各整数ιとについて、委譲鍵skL+1の要素である第1下位委譲要素k* L+1,del,(τ,ι,0)を数177に示すように生成する。
下位委譲要素生成部434は、処理装置により、τ=L+2,...,dの各整数τと、各整数τについてι=1,...,nτの各整数ιとについて、委譲鍵skL+1の要素である第2下位委譲要素k* L+1,del,(τ,ι,1)を数178に示すように生成する。
鍵配布部150は、下位復号要素k* L+1,decと、第1下位ランダム化要素k* L+1,ran,j’(j’=1,...,2(L+1))と、第2下位ランダム化要素k* L+1,ran,(τ,ι,0)(τ=L+2,...,d;(τ,ι)=(τ,1),...,(τ,nτ))と、第1下位委譲要素k* L+2,del,(τ,ι,0)(τ=L+2,...,d;(τ,ι)=(τ,1),...,(τ,nτ))と、第2下位委譲要素k* L+2,del,(τ,ι,1)(τ=L+2,...,d;(τ,ι)=(τ,1),...,(τ,nτ))とを要素とする委譲鍵skL+1を、例えば通信装置によりネットワークを介して秘密裡に下位の復号装置300へ配布する。もちろん、委譲鍵skL+1は、他の方法により下位の復号装置300へ配布されてもよい。
この場合、数168、数169に示すKeyGenアルゴリズムは、数181、数182のように書き換えられる。
以上の実施の形態では、双対ベクトル空間において暗号処理を実現する方法について説明した。この実施の形態では、双対加群において暗号処理を実現する方法について説明する。
図20は、鍵生成装置100、暗号化装置200、復号装置300、鍵委譲装置400のハードウェア構成の一例を示す図である。
図20に示すように、鍵生成装置100、暗号化装置200、復号装置300、鍵委譲装置400は、プログラムを実行するCPU911(Central・Processing・Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。CPU911は、バス912を介してROM913、RAM914、LCD901(Liquid Crystal Display)、キーボード902(K/B)、通信ボード915、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置920(固定ディスク装置)の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。磁気ディスク装置920は、所定の固定ディスクインタフェースを介して接続される。
ファイル群924には、上記の説明において「マスター公開鍵pk」、「マスター秘密鍵sk」、「復号鍵skL」、「委譲鍵skL+1」、「暗号化データct」、「属性情報」、「述語情報」、「メッセージm」等の情報やデータや信号値や変数値やパラメータが、「ファイル」や「データベース」の各項目として記憶される。「ファイル」や「データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのCPU911の動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のCPU911の動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、上記の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。また、「〜装置」として説明するものは、「〜回路」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。さらに、「〜処理」として説明するものは「〜ステップ」であっても構わない。すなわち、「〜部」として説明するものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、ROM913等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラムは、上記で述べた「〜部」としてコンピュータ等を機能させるものである。あるいは、上記で述べた「〜部」の手順や方法をコンピュータ等に実行させるものである。
Claims (18)
- t=1,...,L+1(Lは1以上の整数)の各整数tについての基底Btと基底B* tとを用いて暗号処理を行う暗号処理システムであり、
t=1,...,Lのうち少なくとも一部の整数tについての基底Btの基底ベクトルに属性情報x→ tを埋め込んだベクトルを暗号化データctとして生成する暗号化装置と、
t=1,...,Lの各整数tについての基底B* tの基底ベクトルに述語情報v→ tを埋め込んだベクトルを復号鍵skLとして、前記暗号化装置が生成した暗号化データctと前記復号鍵skLとについてペアリング演算を行い前記暗号化データctを復号する復号装置と、
基底B* L+1の基底ベクトルに述語情報v→ L+1を埋め込んだベクトルと、前記復号装置が使用した復号鍵skLとに基づき、前記復号鍵skLの下位の復号鍵skL+1を生成する鍵委譲装置と
を備えることを特徴とする暗号処理システム。 - 前記暗号処理システムは、さらに、前記復号鍵skLを生成する鍵生成装置を備え、
前記鍵生成装置は、
t=1,...,Lの各整数tについて述語情報v→ t:=(vt,i)(i=1,...,nt)を入力する第1情報入力部と、
前記第1情報入力部が入力した述語情報v→ tと、所定の値Δと、t=1,...,Lの各整数tについての所定の値θdec,tと、sdec,0=Σt=1 Lsdec,tであるようなt=0,...,Lの各整数tについての所定の値sdec,tとを用いて、基底B* 0の基底ベクトルb* 0,p(pは所定の値)の係数として−sdec,0を設定し、基底B* 0の基底ベクトルb* 0,q(qは所定の値)の係数として前記Δを設定し、t=1,...,Lの各整数tについての基底B* tの基底ベクトルb* t,i(i=1,...,nt)の係数としてsdec,te→ t,1+θdec,tvt,i(i=1,...,nt)を設定した復号要素k* L,decを生成する復号要素生成部と、
前記復号要素生成部が生成した復号要素k* L,decを含む復号鍵skLを前記復号装置へ送信する復号鍵送信部と
を備え、
前記暗号化装置は、
t=1,...,Lの少なくとも一部の整数tについて属性情報x→ t:=(xt,i)(i=1,...,nt)を入力する第2情報入力部と、
前記第2情報入力部が入力した属性情報x→ tと、所定の値ω,ζとを用いて、基底B0の基底ベクトルb0,pの係数として前記ωを設定し、基底B0の基底ベクトルb0,qの係数として前記ζを設定し、前記少なくとも一部の整数tについての基底Btの基底ベクトルbt,i(i=1,...,nt)の係数としてωxt,i(i=1,...,nt)を設定した暗号化データc1を生成する暗号化データc1生成部と、
前記暗号化データc1生成部が生成した暗号化データc1を含む暗号化データctを前記復号装置へ送信するデータ送信部と
を備え、
前記復号装置は、
前記データ送信部が送信した暗号化データctに含まれる暗号化データc1と、前記復号鍵送信部が送信した前記復号鍵skLに含まれる復号要素k* L,decとについて、ペアリング演算e(c1,k* L,dec)を行うペアリング演算部
を備えることを特徴とする請求項1に記載の暗号処理システム。 - 前記暗号化装置は、さらに、
値gT=e(b0,1,b* 0,1)と、前記Δと、前記ζとから得られるgT Δζを、メッセージmに乗じた暗号化データc2を生成する暗号化データc2生成部
を備え、
前記データ送信部は、暗号化データc1と、前記暗号化データc2生成部が生成した暗号化データc2とを含む暗号化データctを前記復号装置へ送信し、
前記ペアリング演算部は、前記ペアリング演算e(c1,k* L,dec)を行い、セッション鍵K:=gT Δζを計算し、
前記復号装置は、さらに、
前記ペアリング演算部が計算したセッション鍵Kで、前記暗号化データc2を除して、前記メッセージmを計算するメッセージ計算部
を備えることを特徴とする請求項2に記載の暗号処理システム。 - 前記鍵生成装置は、さらに、
τ=L+1である整数τと、ι=1,...,nτの各整数ιとについて委譲要素k* L,del,(τ,ι)を生成する委譲要素生成部であって、t=1,...,Lの各整数tについての所定の値θdel,(τ,ι),tと、所定の値ψと、sdel,(τ,ι),0=Σt=1 L+1sdel,(τ,ι),tであるようなt=0,...,L+1の各整数tについての所定の値sdel,(τ,ι),tとを用いて、基底B* 0の基底ベクトルb* 0,pの係数として−sdel,(τ,ι),0を設定し、t=1,...,Lの各整数tについての基底B* tの基底ベクトルb* t,i(i=1,...,nt)の係数としてsdel,(τ,ι),te→ t,1+θdel,(τ,ι),tvt,i(i=1,...,nt)を設定し、基底B* τの基底ベクトルb* τ,i(i=1,...,nτ)の係数としてsdel,(τ,ι),L+1e→ τ,1+ψe→ τ,ι(i=1,...,nτ)を設定して委譲要素k* L,del,(τ,ι)を生成する委譲要素生成部
を備え、
前記復号鍵送信部は、前記復号要素k* L,decと、前記委譲要素生成部が生成した委譲要素k* L,del,(τ,ι)とを含む復号鍵skLを前記委譲装置へ送信し、
前記鍵委譲装置は、
述語情報v→ L+1:=(vL+1,i)(i=1,...,nL+1)を入力する第3情報入力部と、
前記第3情報入力部が入力した述語情報v→ L+1と、前記復号鍵送信部が送信した復号鍵skLとを用いて、数1に示すベクトルを含む下位復号要素k* L+1,decを生成する下位復号要素生成部と、
前記下位復号要素生成部が生成した下位復号要素k* L+1,decを含む下位の復号鍵skL+1を下位の復号装置へ送信する委譲鍵送信部と
を備えることを特徴とする請求項2に記載の暗号処理システム。
- 前記暗号処理システムは、
少なくとも基底ベクトルb0,i(i=1,...,1+n0,1+n0+1,...,1+n0+1+u0,...,1+n0+1+u0+w0,...,1+n0+1+u0+w0+z0)(n0,u0,w0,z0は1以上の整数)を有する基底B0と、
少なくとも基底ベクトルb* 0,i(i=1,...,1+n0,1+n0+1,...,1+n0+1+u0,...,1+n0+1+u0+w0,...,1+n0+1+u0+w0+z0)(n0,u0,w0,z0は1以上の整数)を有する基底B* 0と、
少なくとも基底ベクトルbt,i(i=1,...,nt,...,nt+ut,...,nt+ut+wt,...,nt+ut+wt+zt)(ut,wt,ztは1以上の整数)を有する基底Bt(t=1,...,L+1)と、
少なくとも基底ベクトルb* t,i(i=1,...,nt,...,nt+ut,...,nt+ut+wt,...,nt+ut+wt+zt)を有する基底B* t(t=1,...,L+1)と
を用いて暗号処理を行い、
前記復号要素生成部は、t=0,...,Lの各整数tについての乱数η→ dec,t:=(ηdec,t,i)(i=1,...,wt)に基づき、数2に示す復号要素をk* L,decを生成し、
前記暗号化データc1生成部は、t=0,...,Lの各整数tについての乱数φ→ t:=(φt,i)(i=1,...,zt)に基づき、数3に示す暗号化データc1を生成する
ことを特徴とする請求項2に記載の暗号処理システム。
- 前記鍵生成装置は、さらに、
j=1,...,2Lの各整数jについて、第1ランダム化要素k* L,ran,jを生成するとともに、τ=L+1,...,d(dはL+1以上の整数)の各整数τと、各整数τに関してι=1,...,nτの各整数ιとについて、第2ランダム化要素k* L,ran,(τ,ι)を生成するランダム化要素生成部であって、
t=1,...,Lの各整数tについての所定の値θran,j,tと、sran,j,0=Σt=1 Lsran,j,tであるようなt=0,...,Lについての所定の値sran,j,tと、t=0,...,Lの各整数tについての乱数η→ ran,j,t:=(ηran,j,t,i)(i=1,...,wt)とに基づき、数4に示す第1ランダム化要素k* L,ran,jを生成し、
t=1,...,Lの各整数tについての所定の値θran,(τ,ι),tと、sran,(τ,ι),0=Σt=1 L+1sran,(τ,ι),tであるようなt=0,...,L+1についての所定の値sran,(τ,ι),tと、t=0,...,L+1の各整数tについての乱数η→ ran,(τ,ι),t:=(ηran,(τ,ι),t,i)(i=1,...,wt)とに基づき、数5に示す第2ランダム化要素k* L,ran,(τ,ι)を生成するランダム化要素生成部
を備え、
前記委譲要素生成部は、τ=L+1,...,dの各整数τと、各整数τに関してι=1,...,nτの各整数ιとについて、t=0,...,L+1の各整数tについての乱数η→ del,(τ,ι),t:=(ηdel,(τ,ι),t,i)(i=1,...,wt)に基づき、数6に示す委譲要素k* L,del,(τ,ι)を生成し、
前記復号鍵送信部は、前記復号要素k* L,decと、前記ランダム化要素生成部が生成した第1ランダム化要素k* L,ran,j及び第2ランダム化要素k* L,ran,(τ,ι)と、前記委譲要素生成部が生成した委譲要素k* L,del,(τ,ι)とを含む復号鍵skLを前記委譲装置へ送信し、
前記下位復号要素生成部は、前記述語情報v→ L+1と、前記復号鍵送信部が送信した復号鍵skLと、j=1,...,2Lの各整数jについての乱数αdec,jと、乱数σdecと、t=0,...,L+1の各整数tとi=1,...,wtの各整数iとについての乱数ηdec,(t,i)とを用いて、数7に示す下位復号要素k* L+1,decを生成する
ことを特徴とする請求項5に記載の暗号処理システム。
- 前記委譲装置は、さらに、
j’=1,...,2(L+1)の各整数j’について、第1下位ランダム化要素k* L+1,ran,j’を生成するとともに、τ=L+2,...,d(dはL+2以上の整数)の各整数τと、各整数τに関してι=1,...,nτの各整数ιについて、第2下位ランダム化要素k* L+1,ran,(τ,ι)を生成する下位ランダム化要素生成部であって、
前記述語情報v→ L+1と、前記復号鍵skLと、j=1,...,2Lの各整数jとj’=1,...,2(L+1)の各整数j’とについての乱数αran,j’,jと、j’=1,...,2(L+1)の各整数j’についての乱数σran,j’と、t=0,...,L+1の各整数tとi=1,...,wtの各整数iとについての乱数ηran,j’,(t,i)とに基づき、数8に示す第1下位ランダム化要素k* L+1,ran,j’を生成し、
前記述語情報v→ L+1と、前記復号鍵skLと、j=1,...,2Lの各整数jについての乱数αran,(τ,ι),jと、乱数σran,(τ,ι)と、乱数φran,(τ,ι)と、t=0,...,L+1,τの各整数tとi=1,...,wtの各整数iとについてのηran,(τ,ι),(t,i)とに基づき、数9に示す第2下位ランダム化要素k* L+1,ran,(τ,ι)を生成する下位ランダム化要素生成部と、
τ=L+2,...,d(dはL+2以上の整数)の各整数τと、各整数τに関してι=1,...,nτの各整数ιについて、下位委譲要素k* L+1,del,(τ,ι)を生成する下位委譲要素生成部であって、前記述語情報v→ L+1と、前記復号鍵skLと、j=1,...,2Lの各整数jについての乱数αdel,(τ,ι),jと、乱数σdel,(τ,ι)と、乱数ψ’と、乱数φdel,(τ,ι)と、t=0,...,L+1,τの各整数tとi=1,...,wtの各整数iとについてのηdel,(τ,ι),(t,i)とに基づき、数10に示す下位委譲要素k* L+1,del,(τ,ι)を生成する下位委譲要素生成部と
を備え、
前記委譲鍵送信部は、前記下位復号要素生成部が生成した下位復号要素k* L+1,decと、前記下位ランダム化要素生成部が生成した第1下位ランダム化要素k* L+1,ran,j’及び第2下位ランダム化要素k* L+1,ran,(τ,ι)と、前記下位委譲要素生成部が生成した下位委譲要素k* L+1,del,(τ,ι)とを含む下位の復号鍵skL+1を下位の委譲装置へ送信する
ことを特徴とする請求項6に記載の暗号処理システム。
- 前記第1情報入力部は、t=1,...,Lの各整数tについて述語情報(v→ t:=(vt,i)(i=1,...,nt),ρt∈{0,1})を入力し、
前記復号要素生成部は、基底ベクトルb* 0,pの係数として−sdec,0を設定し、基底ベクトルb* 0,qの係数として前記Δを設定し、t=1,...,Lの各整数tについての基底ベクトルb* t,iの係数として、ρtが0の場合にはsdec,te→ t,1+θdec,tvt,i(i=1,...,nt)を設定し、ρtが1の場合にはsdec,tvt,i(i=1,...,nt)を設定した復号要素k* L,decを生成する
ことを特徴とする請求項2に記載の暗号処理システム。 - 前記鍵生成装置は、さらに、
τ=L+1である整数τと、ι=1,...,nτの各整数ιとについて第1委譲要素k* L,del,(τ,ι,0)と第2委譲要素k* L,del,(τ,ι,1)とを生成する委譲要素生成部であって、
t=1,...,Lの各整数tについての所定の値θdel,0,tと、所定の値ψと、sdel,0,0=Σt=1 L+1sdel,0,tであるようなt=0,...,L+1についての所定の値sdel,0,tとを用いて、基底B* 0の基底ベクトルb* 0,pの係数として−sdel,0,0を設定し、t=1,...,Lの各整数tについての基底B* tの基底ベクトルb* t,i(i=1,...,nt)の係数として、ρtが0の場合にはsdel,0,te→ t,1+θdel,0,tvt,i(i=1,...,nt)を設定し、ρtが1の場合にはsdel,0,tvt,i(i=1,...,nt)を設定し、基底B* τの基底ベクトルb* τ,i(i=1,...,nτ)の係数としてsdel,0,L+1e→ τ,1+ψe→ τ,ι(i=1,...,nτ)を設定して第1委譲要素k* L,del,(τ,ι,0)を生成し、
t=1,...,Lの各整数tについての所定の値θdel,1,tと、sdel,1,0=Σt=1 L+1sdel,1,tであるようなt=0,...,L+1についての所定の値sdel,1,tとを用いて、基底B* 0の基底ベクトルb* 0,pの係数として−sdel,1,0を設定し、t=1,...,Lの各整数tについての基底B* tの基底ベクトルb* t,i(i=1,...,nt)の係数として、ρtが0の場合にはsdel,1,te→ t,1+θdel,1,tvt,i(i=1,...,nt)を設定し、ρtが1の場合にはsdel,1,tvt,i(i=1,...,nt)を設定し、基底B* τの基底ベクトルb* τ,i(i=1,...,nτ)の係数としてsdel,1,L+1e→ τ,1(i=1,...,nτ)を設定して第2委譲要素k* L,del,(τ,ι,1)を生成する委譲要素生成部
を備え、
前記復号鍵送信部は、前記復号要素k* L,decと、前記委譲要素生成部が生成した第1委譲要素k* L,del,(τ,ι,0)及び第2委譲要素k* L,del,(τ,ι,1)とを含む復号鍵skLを前記委譲装置へ送信し、
前記鍵委譲装置は、
述語情報(v→ L+1:=(vL+1,i)(i=1,...,nL+1),ρL+1∈{0,1})を入力する第3情報入力部と、
前記第3情報入力部が入力した述語情報v→ L+1と、前記復号鍵送信部が送信した復号鍵skLとを用いて、数11に示すベクトルを含む下位復号要素k* L+1,decを生成する下位復号要素生成部
を備えることを特徴とする請求項8に記載の暗号処理システム。
- 前記暗号処理システムは、
少なくとも基底ベクトルb0,i(i=1,...,1+n0,1+n0+1,...,1+n0+1+u0,...,1+n0+1+u0+w0,...,1+n0+1+u0+w0+z0)(n0,u0,w0,z0は1以上の整数)を有する基底B0と、
少なくとも基底ベクトルb* 0,i(i=1,...,1+n0,1+n0+1,...,1+n0+1+u0,...,1+n0+1+u0+w0,...,1+n0+1+u0+w0+z0)(n0,u0,w0,z0は1以上の整数)を有する基底B* 0と、
少なくとも基底ベクトルbt,i(i=1,...,nt,...,nt+ut,...,nt+ut+wt,...,nt+ut+wt+zt)(ut,wt,ztは1以上の整数)を有する基底Bt(t=1,...,L+1)と、
少なくとも基底ベクトルb* t,i(i=1,...,nt,...,nt+ut,...,nt+ut+wt,...,nt+ut+wt+zt)を有する基底B* t(t=1,...,L+1)と
を用いて暗号処理を行い、
前記復号要素生成部は、t=0,...,Lの各整数tについての乱数η→ dec,t:=(ηdec,t,i)(i=1,...,wt)に基づき、数12に示す復号要素をk* L,decを生成し、
前記暗号化データc1生成部は、t=0,...,Lの各整数tについての乱数φ→ t:=(φt,i)(i=1,...,zt)に基づき、数13に示す暗号化データc1を生成する
ことを特徴とする請求項8に記載の暗号処理システム。
- 前記鍵生成装置は、さらに、
j=1,...,2Lの各整数jについて、第1ランダム化要素k* L,ran,jを生成するとともに、τ=L+1,...,d(dはL+1以上の整数)の各整数τと、各整数τに関してι=1,...,nτの各整数ιとについて、第2ランダム化要素k* L,ran,(τ,ι,0)を生成するランダム化要素生成部であって、
t=1,...,Lの各整数tについての所定の値θran,j,tと、sran,j,0=Σt=1 Lsran,j,tであるようなt=0,...,Lについての所定の値sran,j,tと、t=0,...,Lの各整数tについての乱数η→ ran,j,t:=(ηran,j,t,i)(i=1,...,wt)に基づき、数14に示す第1ランダム化要素k* L,ran,jを生成し、
t=1,...,Lの各整数tについての所定の値θran,0,tと、sran,0,0=Σt=1 L+1sran,0,tであるようなt=0,...,L+1についての所定の値sran,0,tと、t=0,...,Lの各整数tについての乱数η→ ran,0,t:=(ηran,0,t,i)(i=1,...,wt)と、乱数η→ ran,0,(τ,ι):=(ηran,0,(τ,ι),i)(i=1,...,wt)とに基づき、数15に示す第2ランダム化要素k* L,ran,(τ,ι,0)を生成するランダム化要素生成部
を備え、
前記委譲要素生成部は、τ=L+1,...,dの各整数τと、各整数τに関してι=1,...,nτの各整数ιとについて、t=0,...,Lの各整数tについての乱数η→ del,0,t:=(ηdel,0,t,i)(i=1,...,wt)と、乱数η→ del,0,(τ,ι):=(ηdel,0,(τ,ι),i)(i=1,...,wt)とに基づき、数16に示す第1委譲要素k* L,del,(τ,ι,0)を生成するとともに、τ=L+1,...,dの各整数τと、各整数τに関してι=1,...,nτの各整数ιとについて、t=0,...,Lの各整数tについての乱数η→ del,1,t:=(ηdel,1,t,i)(i=1,...,wt)と、乱数η→ del,1,(τ,ι):=(ηdel,1,(τ,ι),i)(i=1,...,wt)とに基づき、数17に示す第2委譲要素k* L,del,(τ,ι,1)を生成し、
前記復号鍵送信部は、前記復号要素k* L,decと、前記ランダム化要素生成部が生成した第1ランダム化要素k* L,ran,j及び第2ランダム化要素k* L,ran,(τ,ι,0)と、前記委譲要素生成部が生成した第1委譲要素k* L,del,(τ,ι,0)及び第2委譲要素k* L,del,(τ,ι,1)とを含む復号鍵skLを前記委譲装置へ送信し、
前記下位復号要素生成部は、前記述語情報v→ L+1と、前記復号鍵送信部が送信した復号鍵skLと、j=1,...,2Lの各整数jについての乱数αdec,jと、乱数σdecと、t=0,...,L+1の各整数tとi=1,...,wtの各整数iとについての乱数ηdec,(t,i)とを用いて、数18に示す下位復号要素k* L+1,decを生成する
ことを特徴とする請求項10に記載の暗号処理システム。
- 前記委譲装置は、さらに、
j’=1,...,2(L+1)の各整数j’について、第1下位ランダム化要素k* L+1,ran,j’を生成するとともに、τ=L+2,...,d(dはL+2以上の整数)の各整数τと、各整数τに関してι=1,...,nτの各整数ιについて、第2下位ランダム化要素k* L+1,ran,(τ,ι,0)を生成する下位ランダム化要素生成部であって、
前記述語情報v→ L+1と、前記復号鍵skLと、j=1,...,2Lの各整数jとj’=1,...,2(L+1)の各整数j’とについての乱数αran,j’,jと、j’=1,...,2(L+1)の各整数j’についての乱数σran,j’と、t=0,...,L+1の各整数tとi=1,...,wtの各整数iとについての乱数ηran,j’,(t,i)とに基づき、数19に示す第1下位ランダム化要素k* L+1,ran,j’を生成し、
前記述語情報v→ L+1と、前記復号鍵skLと、j=1,...,2Lの各整数jについての乱数αran,(τ,ι),jと、乱数σran,(τ,ι,0)と、乱数φran,(τ,ι,0)と、t=0,...,L+1の各整数tとi=1,...,wtの各整数iとについてのηran,(τ,ι,0),(t,i)とに基づき、数20に示す第2下位ランダム化要素k* L+1,ran,(τ,ι,0)を生成する下位ランダム化要素生成部と、
τ=L+2,...,d(dはL+2以上の整数)の各整数τと、各整数τに関してι=1,...,nτの各整数ιについて、第1下位委譲要素k* L+1,del,(τ,ι,0)と第2下位委譲要素k* L+1,del,(τ,ι,1)とを生成する下位委譲要素生成部であって、
前記述語情報v→ L+1と、前記復号鍵skLと、j=1,...,2Lの各整数jについての乱数αdel,(τ,ι,0),jと、乱数σdel,(τ,ι,0)と、乱数ψ0と、乱数φdel,(τ,ι,0)と、t=0,...,L+1の各整数tとi=1,...,wtの各整数iとについてのηdel,(τ,ι,0),(t,i)とに基づき、数21に示す第1下位委譲要素k* L+1,del,(τ,ι,0)を生成し、
前記述語情報v→ L+1と、前記復号鍵skLと、j=1,...,2Lの各整数jについての乱数αdel,(τ,ι,1),jと、乱数σdel,(τ,ι,1)と、乱数ψ1と、乱数φdel,(τ,ι,1)と、t=0,...,L+1の各整数tとi=1,...,wtの各整数iとについてのηdel,(τ,ι,1),(t,i)とに基づき、数22に示す第2下位委譲要素k* L+1,del,(τ,ι,1)を生成する下位委譲要素生成部と
を備える
ことを特徴とする請求項11に記載の暗号処理システム。
- t=1,...,L(Lは1以上の整数)の各整数tについての基底Btと基底B* tとを用いて暗号処理を行う暗号処理システムにおいて、復号鍵skLを生成する鍵生成装置であり、
t=1,...,Lの各整数tについて述語情報v→ t:=(vt,i)(i=1,...,nt)を入力する第1情報入力部と、
前記第1情報入力部が入力した述語情報v→ tと、所定の値Δと、t=1,...,Lの各整数tについての所定の値θdec,tと、sdec,0=Σt=1 Lsdec,tであるようなt=0,...,Lの各整数tについての所定の値sdec,tとを用いて、基底B* 0の基底ベクトルb* 0,p(pは所定の値)の係数として−sdec,0を設定し、基底B* 0の基底ベクトルb* 0,q(qは所定の値)の係数として前記Δを設定し、t=1,...,Lの各整数tについての基底B* tの基底ベクトルb* t,i(i=1,...,nt)の係数としてsdec,te→ t,1+θdec,tvt,i(i=1,...,nt)を設定した復号要素k* L,decを生成する復号要素生成部と、
前記復号要素生成部が生成した復号要素k* L,decを含む復号鍵skLを復号装置へ送信する復号鍵送信部と
を備えることを特徴とする鍵生成装置。 - t=1,...,L(Lは1以上の整数)の各整数tについての基底Btと基底B* tとを用いて暗号処理を行う暗号処理システムにおいて、暗号化データctを生成する暗号化装置であり、
t=1,...,Lの少なくとも一部の整数tについて属性情報x→ t:=(xt,i)(i=1,...,nt)を入力する第2情報入力部と、
前記第2情報入力部が入力した属性情報x→ tと、所定の値ω,ζとを用いて、基底B0の基底ベクトルb0,p(pは所定の値)の係数として前記ωを設定し、基底B0の基底ベクトルb0,q(qは所定の値)の係数として前記ζを設定し、前記少なくとも一部の整数tについての基底Btの基底ベクトルbt,i(i=1,...,nt)の係数としてωxt,i(i=1,...,nt)を設定した暗号化データc1を生成する暗号化データc1生成部と、
前記暗号化データc1生成部が生成した暗号化データc1を含む暗号化データctを復号装置へ送信するデータ送信部と
を備えることを特徴とする暗号化装置。 - t=1,...,L(Lは1以上の整数)の各整数tについての基底Btと基底B* tとを用いて暗号処理を行う暗号処理システムにおいて、暗号化データc1を復号鍵skLにより復号する復号装置であり、
属性情報x→ t:=(xt,i)(i=1,...,nt)と、所定の値ω,ζとを用いて、基底B0の基底ベクトルb0,p(pは所定の値)の係数として前記ωを設定し、基底B0の基底ベクトルb0,q(qは所定の値)の係数として前記ζを設定し、前記少なくとも一部の整数tについての基底Btの基底ベクトルbt,i(i=1,...,nt)の係数としてωxt,i(i=1,...,nt)を設定した暗号化データc1を暗号化装置から受信するデータ受信部と、
述語情報v→ t:=(vt,i)(i=1,...,nt)と、所定の値Δと、t=1,...,Lの各整数tについての所定の値θdec,tと、sdec,0=Σt=1 Lsdec,tであるようなt=0,...,Lの各整数tについての所定の値sdec,tとを用いて、基底B* 0の基底ベクトルb* 0,p(pは所定の値)の係数として−sdec,0を設定し、基底B* 0の基底ベクトルb* 0,q(qは所定の値)の係数として前記Δを設定し、t=1,...,Lの各整数tについての基底B* tの基底ベクトルb* t,i(i=1,...,nt)の係数としてsdec,te→ t,1+θdec,tvt,i(i=1,...,nt)を設定した復号要素k* L,decを含む復号鍵skLを鍵生成装置から取得する復号鍵取得部と、
前記データ受信部が受信した暗号化データc1と、前記復号鍵取得部が取得した前記復号鍵skLに含まれる復号要素k* L,decとについて、ペアリング演算e(c1,k* L,dec)を行い、前記暗号化データc1を復号するペアリング演算部と
を備えることを特徴とする復号装置。 - t=1,...,L+1(Lは1以上の整数)の各整数tについての基底Btと基底B* tとを用いて暗号処理を行う暗号処理システムにおいて、復号鍵skLの下位の復号鍵skL+1を生成する鍵委譲装置であり、
t=1,...,Lの各整数tについての基底B* tの基底ベクトルに述語情報v→ tを埋め込んだベクトルを復号鍵skLとして取得する復号鍵取得部と、
前記復号鍵取得部が取得した復号鍵skLと、基底B* L+1の基底ベクトルに述語情報v→ L+1を埋め込んだベクトルとに基づき、前記復号鍵skLの下位の復号鍵skL+1を生成する委譲鍵生成部と
を備えることを特徴とする鍵委譲装置。 - t=1,...,L+1(Lは1以上の整数)の各整数tについての基底Btと基底B* tとを用いた暗号処理方法であり、
暗号化装置が、t=1,...,Lのうち少なくとも一部の整数tについての基底Btの基底ベクトルに属性情報x→ tを埋め込んだベクトルを暗号化データctとして生成する暗号化工程と、
復号装置が、t=1,...,Lの各整数tについての基底B* tの基底ベクトルに述語情報v→ tを埋め込んだベクトルを復号鍵skLとして、前記暗号化工程で生成した暗号化データctと前記復号鍵skLとについて、ペアリング演算を行い前記暗号化データctを復号する復号工程と、
鍵委譲装置が、基底B* L+1の基底ベクトルに述語情報を埋め込んだベクトルv→ L+1と、前記復号工程で使用した復号鍵skLとに基づき、前記復号鍵skLの下位の復号鍵skL+1を生成する鍵委譲工程と
を備えることを特徴とする暗号処理方法。 - t=1,...,L+1(Lは1以上の整数)の各整数tについての基底Btと基底B* tとを用いて暗号処理を実行する暗号処理プログラムであり、
t=1,...,Lのうち少なくとも一部の整数tについての基底Btの基底ベクトルに属性情報x→ tを埋め込んだベクトルを暗号化データctとして生成する暗号化処理と、
t=1,...,Lの各整数tについての基底B* tの基底ベクトルに述語情報v→ tを埋め込んだベクトルを復号鍵skLとして、前記暗号化装置が生成した暗号化データctと前記復号鍵skLとについて、ペアリング演算を行い前記暗号化データctを復号する復号処理と、
基底B* L+1の基底ベクトルに述語情報を埋め込んだベクトルv→ L+1と、前記復号処理で使用した復号鍵skLとに基づき、前記復号鍵skLの下位の復号鍵skL+1を生成する鍵委譲処理と
を備えることを特徴とする暗号処理プログラム。
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011026216A JP5606351B2 (ja) | 2011-02-09 | 2011-02-09 | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、鍵委譲装置、暗号処理方法及び暗号処理プログラム |
PCT/JP2011/078668 WO2012108100A1 (ja) | 2011-02-09 | 2011-12-12 | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、鍵委譲装置、暗号処理方法及び暗号処理プログラム |
ES11858018T ES2699535T3 (es) | 2011-02-09 | 2011-12-12 | Sistema de procesamiento de cifrado, dispositivo de generación de claves, dispositivo de cifrado, dispositivo de desciframiento, dispositivo de delegación de claves, método de procesamiento de cifrado y programa de procesamiento de cifrado |
CN201180067247.XA CN103354984B (zh) | 2011-02-09 | 2011-12-12 | 密码处理系统、密钥生成装置、加密装置、解密装置、密钥移交装置以及密码处理方法 |
EP11858018.2A EP2675107B1 (en) | 2011-02-09 | 2011-12-12 | Encryption processing system, key generation device, encryption device, decryption device, key delegation device, encryption processing method, and encryption processing program |
US13/982,778 US9385867B2 (en) | 2011-02-09 | 2011-12-12 | Cryptographic processing system, key generation device, encryption device, decryption device, key delegation device, cryptographic processing method, and cryptographic processing program |
KR1020137023636A KR101432462B1 (ko) | 2011-02-09 | 2011-12-12 | 암호 처리 시스템, 키 생성 장치, 암호화 장치, 복호 장치, 키 위양 장치, 암호 처리 방법 및 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011026216A JP5606351B2 (ja) | 2011-02-09 | 2011-02-09 | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、鍵委譲装置、暗号処理方法及び暗号処理プログラム |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2012163917A true JP2012163917A (ja) | 2012-08-30 |
JP2012163917A5 JP2012163917A5 (ja) | 2014-01-09 |
JP5606351B2 JP5606351B2 (ja) | 2014-10-15 |
Family
ID=46638329
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011026216A Active JP5606351B2 (ja) | 2011-02-09 | 2011-02-09 | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、鍵委譲装置、暗号処理方法及び暗号処理プログラム |
Country Status (7)
Country | Link |
---|---|
US (1) | US9385867B2 (ja) |
EP (1) | EP2675107B1 (ja) |
JP (1) | JP5606351B2 (ja) |
KR (1) | KR101432462B1 (ja) |
CN (1) | CN103354984B (ja) |
ES (1) | ES2699535T3 (ja) |
WO (1) | WO2012108100A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014112170A1 (ja) * | 2013-01-16 | 2014-07-24 | 三菱電機株式会社 | 情報処理装置及び情報処理方法及びプログラム |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016088251A1 (ja) * | 2014-12-05 | 2016-06-09 | 三菱電機株式会社 | 暗号システム、マスター鍵更新装置及びマスター鍵更新プログラム |
CN110140161B (zh) * | 2017-01-12 | 2023-02-17 | 三菱电机株式会社 | 加密标签生成装置、检索查询生成装置和隐匿检索系统 |
JP6885325B2 (ja) * | 2017-12-26 | 2021-06-16 | 日本電信電話株式会社 | 暗号化装置、復号装置、暗号化方法、復号方法、プログラム |
JP6971917B2 (ja) * | 2018-06-11 | 2021-11-24 | 三菱電機株式会社 | 復号装置、暗号化装置及び暗号システム |
JP7233265B2 (ja) * | 2019-03-15 | 2023-03-06 | 三菱電機株式会社 | 署名装置、検証装置、署名方法、検証方法、署名プログラム及び検証プログラム |
US12099997B1 (en) | 2020-01-31 | 2024-09-24 | Steven Mark Hoffberg | Tokenized fungible liabilities |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003081780A2 (en) * | 2002-03-21 | 2003-10-02 | Docomo Communications Laboratories Usa, Inc. | Hierarchical identity-based encryption and signature schemes |
WO2008099831A1 (ja) * | 2007-02-13 | 2008-08-21 | Nec Corporation | 鍵生成装置、鍵導出装置、暗号化装置、復号化装置、方法、及び、プログラム |
US20090225986A1 (en) * | 2008-03-06 | 2009-09-10 | International Business Machines Corporation | Non-Interactive Hierarchical Identity-Based Key-Agreement |
WO2010122926A1 (ja) * | 2009-04-23 | 2010-10-28 | 三菱電機株式会社 | 暗号処理システム |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5214698A (en) * | 1991-03-20 | 1993-05-25 | International Business Machines Corporation | Method and apparatus for validating entry of cryptographic keys |
US20090080658A1 (en) * | 2007-07-13 | 2009-03-26 | Brent Waters | Method and apparatus for encrypting data for fine-grained access control |
-
2011
- 2011-02-09 JP JP2011026216A patent/JP5606351B2/ja active Active
- 2011-12-12 WO PCT/JP2011/078668 patent/WO2012108100A1/ja active Application Filing
- 2011-12-12 US US13/982,778 patent/US9385867B2/en active Active
- 2011-12-12 KR KR1020137023636A patent/KR101432462B1/ko active IP Right Grant
- 2011-12-12 ES ES11858018T patent/ES2699535T3/es active Active
- 2011-12-12 CN CN201180067247.XA patent/CN103354984B/zh active Active
- 2011-12-12 EP EP11858018.2A patent/EP2675107B1/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003081780A2 (en) * | 2002-03-21 | 2003-10-02 | Docomo Communications Laboratories Usa, Inc. | Hierarchical identity-based encryption and signature schemes |
WO2008099831A1 (ja) * | 2007-02-13 | 2008-08-21 | Nec Corporation | 鍵生成装置、鍵導出装置、暗号化装置、復号化装置、方法、及び、プログラム |
US20090225986A1 (en) * | 2008-03-06 | 2009-09-10 | International Business Machines Corporation | Non-Interactive Hierarchical Identity-Based Key-Agreement |
WO2010122926A1 (ja) * | 2009-04-23 | 2010-10-28 | 三菱電機株式会社 | 暗号処理システム |
Non-Patent Citations (3)
Title |
---|
JPN6014031994; Shi, E. and Waters, B.: 'Delegating Capabilities in Predicate Encryption Systems' Lecture Notes in Computer Science Vol.5126, 2008, p.560-578 * |
JPN6014031995; Okamoto T. and Takashima, K.: 'Hierarchical Predicate Encryption for Inner-Products' Lecture Notes in Computer Science Vol.5912, 2009, p.214-231 * |
JPN6014031996; Lewko, A. et al.: 'Fully Secure Functional Encryption: Attribute-Based Encryption and (Hierarchical) Inner Product Encr' Lecture Notes in Computer Science Vol.6110, 2010, p.62-91 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014112170A1 (ja) * | 2013-01-16 | 2014-07-24 | 三菱電機株式会社 | 情報処理装置及び情報処理方法及びプログラム |
JP5901803B2 (ja) * | 2013-01-16 | 2016-04-13 | 三菱電機株式会社 | 情報処理装置及び情報処理方法及びプログラム |
US9698977B2 (en) | 2013-01-16 | 2017-07-04 | Mitsubishi Electric Corporation | Information processing apparatus, information processing method, and program |
Also Published As
Publication number | Publication date |
---|---|
EP2675107B1 (en) | 2018-10-24 |
KR20130122678A (ko) | 2013-11-07 |
US9385867B2 (en) | 2016-07-05 |
US20130336474A1 (en) | 2013-12-19 |
CN103354984A (zh) | 2013-10-16 |
WO2012108100A1 (ja) | 2012-08-16 |
JP5606351B2 (ja) | 2014-10-15 |
EP2675107A4 (en) | 2017-07-19 |
EP2675107A1 (en) | 2013-12-18 |
CN103354984B (zh) | 2015-11-25 |
KR101432462B1 (ko) | 2014-08-20 |
ES2699535T3 (es) | 2019-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5424974B2 (ja) | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置 | |
JP5769401B2 (ja) | 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及びプログラム | |
JP5618881B2 (ja) | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム | |
JP5693206B2 (ja) | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム | |
JP5334873B2 (ja) | 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム | |
JP5680007B2 (ja) | 暗号システム、暗号方法及び暗号プログラム | |
JP5606344B2 (ja) | 署名処理システム、鍵生成装置、署名装置、検証装置、署名処理方法及び署名処理プログラム | |
JP5606351B2 (ja) | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、鍵委譲装置、暗号処理方法及び暗号処理プログラム | |
JP5921410B2 (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: 5606351 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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |