JP2013186181A - 暗号システム、暗号方法及び暗号プログラム - Google Patents
暗号システム、暗号方法及び暗号プログラム Download PDFInfo
- Publication number
- JP2013186181A JP2013186181A JP2012049275A JP2012049275A JP2013186181A JP 2013186181 A JP2013186181 A JP 2013186181A JP 2012049275 A JP2012049275 A JP 2012049275A JP 2012049275 A JP2012049275 A JP 2012049275A JP 2013186181 A JP2013186181 A JP 2013186181A
- Authority
- JP
- Japan
- Prior art keywords
- vector
- index
- integer
- key
- base
- 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
- 238000000034 method Methods 0.000 title claims abstract description 117
- 239000013598 vector Substances 0.000 claims abstract description 233
- 230000005540 biological transmission Effects 0.000 claims abstract description 31
- 238000012545 processing Methods 0.000 claims description 129
- 238000012795 verification Methods 0.000 claims description 44
- 230000008569 process Effects 0.000 claims description 38
- 230000014509 gene expression Effects 0.000 claims description 34
- 230000009977 dual effect Effects 0.000 abstract description 22
- 239000011159 matrix material Substances 0.000 description 52
- 238000004364 calculation method Methods 0.000 description 49
- 238000010586 diagram Methods 0.000 description 40
- 230000006870 function Effects 0.000 description 35
- 238000004891 communication Methods 0.000 description 29
- 238000003860 storage Methods 0.000 description 29
- 238000009826 distribution Methods 0.000 description 23
- 239000003643 water by type Substances 0.000 description 16
- 230000000295 complement effect Effects 0.000 description 15
- 238000013461 design Methods 0.000 description 10
- 238000013507 mapping Methods 0.000 description 10
- 230000009466 transformation Effects 0.000 description 7
- 125000004122 cyclic group Chemical group 0.000 description 4
- 230000008520 organization Effects 0.000 description 3
- 238000003672 processing method Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 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
- 244000309464 bull Species 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
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003121 nonmonotonic effect Effects 0.000 description 1
- 230000005477 standard model Effects 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/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
- H04L9/16—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms the keys or algorithms being changed during operation
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Mathematical Physics (AREA)
- Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【解決手段】暗号システム10は、双対ペアリングベクトル空間における双対システム暗号において、、インデックス付けの技法を用いる。具体的には、暗号システム10は、インデックスjについての送信側ベクトルtjについては、所定の基底ベクトルの係数としてインデックスjに予め割り当てられた情報Jを設定し、インデックスjに対応するインデックスj’の受信側ベクトルrj’については、前記所定の基底ベクトルに対応する基底ベクトルの係数として情報Jとの内積が0になる情報J’を設定する。
【選択図】図5
Description
この発明は、公開パラメータの再発行をすることなく、属性カテゴリの追加を可能とすることを目的とする。
所定の基底B及び所定の基底B*を用いて処理を行う暗号システムであり、
複数のインデックスjのうちの1つ以上のインデックスjについての送信側ベクトルtjであって、前記基底Bにおける所定の基底ベクトルbindexの係数に、インデックスjに予め割り当てられた情報Jを設定し、前記基底Bにおける他の基底ベクトルbattの係数に、インデックスjについてのパラメータΦjを設定した送信側ベクトルtjを生成する送信装置と、
複数のインデックスj’のうちの1つ以上のインデックスj’についての受信側ベクトルrj’であって、前記基底ベクトルbindexに対応する前記基底B*における基底ベクトルb* indexの係数に、インデックスj’に対応するインデックスjに予め割り当てられた情報Jとの内積が0になる情報J’を設定し、前記基底ベクトルbattに対応する前記基底B*における基底ベクトルb* attの係数に、インデックスj’についてのパラメータΨj’を設定した受信側ベクトルrj’を用いて、インデックスjについての前記送信側ベクトルtjと前記インデックスjに対応するインデックスj’についての前記受信側ベクトルrj’とに対して、対応する基底ベクトル毎のペアリング演算の積を計算する受信装置と
を備えることを特徴とする。
以下の説明において、処理装置は後述するCPU911等である。記憶装置は後述するROM913、RAM914、磁気ディスク920等である。通信装置は後述する通信ボード915等である。入力装置は後述するキーボード902、通信ボード915等である。つまり、処理装置、記憶装置、通信装置、入力装置はハードウェアである。
Aがランダムな変数または分布であるとき、数101は、Aの分布に従いAからyをランダムに選択することを表す。つまり、数101において、yは乱数である。
bi(i=1,...,n)が空間Vのベクトルの要素であるとき、つまり、数110であるとき、数111は、数112によって生成される部分空間を表す。
また、ベクトルを意味する“→”が下付き文字又は上付き文字に付されている場合、この“→”は下付き文字又は上付き文字に上付きで付されていることを意味する。
この実施の形態では、以下の実施の形態で説明する、公開パラメータを再発行することなく、属性カテゴリの追加が可能な暗号プリミティブの処理を実現する基礎となる概念をする。
第1に、属性カテゴリの追加について説明する。
第2に、関数型暗号方式と、関数型暗号方式の基本構成とについて簡単に説明する。
第3に、公開パラメータを再発行することなく、属性カテゴリの追加を可能とするキーテクニックについて説明する。
第4に、関数型暗号方式を実現するための空間である「双対ペアリングベクトル空間(Dual Pairing Vector Spaces,DPVS)」という豊かな数学的構造を有する空間を説明する。
第5に、関数型暗号方式を実現するための概念を説明する。ここでは、スパンプログラム(Span Program)」、「属性情報の内積とアクセスストラクチャ」、「秘密分散方式(秘密共有方式)」について説明する。
属性カテゴリとは、例えば、所属機関、所属部署、役職、年齢、性別等、各ユーザの属性の分類のことである。
通常、アクセスコントロールに使用する属性カテゴリは、システム設計時に予め決定される。しかし、後にシステムの運用が変更され、アクセスコントロールに使用する属性カテゴリの追加が必要になる場合がある。
例えば、A会社内のみで使用することを想定して暗号システムを構築したとする。この場合、使用する属性カテゴリとしては、所属部署、役職、個人のID等が想定される。しかし、後に、A会社だけでなく、A会社の関連会社でも暗号システムを使用するように運用が変更されたとする。この場合、使用する属性カテゴリとして、新たに所属会社を追加する必要がある。
そのため、公開パラメータを再発行することなく、属性カテゴリを追加できることは重要である。
関数型暗号方式は、暗号化鍵ekと、復号鍵dkとの間の関係をより高度化し、より柔軟にした暗号方式である。
関数型暗号方式において、暗号化鍵ekと復号鍵dkとには、それぞれ、パラメータΦとパラメータΨとが設定される。そして、関係R(Φ,Ψ)が成立する場合に限り、復号鍵dkは暗号化鍵ekで暗号化された暗号文を復号することができる。
関数型暗号方式には、属性ベース暗号方式やIDベース暗号方式が含まれる。
関数型暗号方式は、Setup、KeyGen、Enc、Decの4つのアルゴリズムを備える。
(Setup)
Setupアルゴリズムは、公開パラメータpkと、マスター鍵skとを出力するアルゴリズムである。
(KeyGen)
KeyGenアルゴリズムは、公開パラメータpkと、マスター鍵skと、パラメータΨとを入力として、復号鍵skΨを出力するアルゴリズムである。
(Enc)
Encアルゴリズムは、公開パラメータpkと、パラメータΦと、メッセージmとを入力として、暗号文ctΦを出力するアルゴリズムである。
(Dec)
Decアルゴリズムは、公開パラメータpkと、復号鍵skΨと、暗号文ctΦとを入力として、メッセージm、又は、識別情報⊥を出力するアルゴリズムである。
なお、パラメータΨとパラメータΦとが関係Rを満たす場合(R(Φ,Ψ)が成立する場合)に限り、暗号文ctΦを復号鍵skΨで復号して、メッセージmを得ることができる。
公開パラメータを再発行することなく、属性カテゴリの追加を可能とするキーテクニックは、双対ペアリングベクトル空間における双対システム暗号に、インデックス付けの技法を適用することである。
ここで、基底B^1,...,基底B^dが公開パラメータであることから明らかなように、後に基底B^を追加する場合、すなわちdの値を増やす場合には、公開パラメータを再発行しなければならない。つまり、dの値は公開パラメータによって制限されている。
ここで、公開パラメータには、基底B^は含まれているものの、インデックスベクトルは含まれていない。そのため、後にインデックスベクトルを追加し、dの値を増やす場合、公開パラメータを再発行する必要はない。つまり、dの値は公開パラメータによって制限されていない。
まず、対称双線形ペアリング群について説明する。
対称双線形ペアリング群(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である。
以下の説明において、Gbpgを、1λを入力として、セキュリティパラメータをλとする双線形ペアリング群のパラメータparamG:=(q,G,GT,g,e)の値を出力するアルゴリズムとする。
双対ペアリングベクトル空間(q,V,GT,A,e)は、対称双線形ペアリング群(paramG:=(q,G,GT,g,e))の直積によって構成することができる。双対ペアリングベクトル空間(q,V,GT,A,e)は、素数q、数116に示すFq上のN次元ベクトル空間V、位数qの巡回群GT、空間Vの標準基底A:=(a1,...,aN)の組であり、以下の演算(1)(2)を有する。ここで、aiは、数117に示す通りである。
空間Vにおけるペアリングは、数118によって定義される。
<第5−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を数121に示す列ベクトルとする。
これは、図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が存在する。
そして、数124である。
例えば、上述した属性ベース暗号方式は、以下の実施の形態に係る関数型暗号方式におけるアクセスストラクチャにおいて、内積述語の設計をある条件に限定した場合に相当する。つまり、以下の実施の形態に係る関数型暗号方式におけるアクセスストラクチャに比べ、属性ベース暗号方式におけるアクセスストラクチャは、内積述語における属性情報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部以外に属すること」という条件を設定することができる。つまり、否定形の条件が設定できることで、自然な条件設定が可能となる。なお、ここでは部署の数が少ないが、部署の数が多い場合等は非常に有効であることが分かる。
この実施の形態では、狭義の暗号処理方式について説明する。特に、この実施の形態では、Key−Policy関数型暗号(KP−FE)方式について説明する。
なお、Key−Policyとは、復号鍵にPolicyが埋め込まれること、つまりアクセスストラクチャが埋め込まれることを意味する。
第2に、KP−FE方式を実現する暗号システム10の構成について説明する。
第3に、KP−FE方式について詳細に説明する。
KP−FE方式は、Setup、KeyGen、Enc、Decの4つのアルゴリズムを備える。
(Setup)
Setupアルゴリズムは、セキュリティパラメータλが入力され、公開パラメータpkと、マスター鍵skとを出力する確率的アルゴリズムである。
(KeyGen)
KeyGenアルゴリズムは、アクセスストラクチャS:=(M,ρ)と、公開パラメータpkと、マスター鍵skとを入力として、復号鍵skSを出力する確率的アルゴリズムである。
(Enc)
Encアルゴリズムは、メッセージmと、属性の集合であるΓ:={(t,x→ t)|x→ t∈Fq n,1≦t≦d}と、公開パラメータpkとを入力として、暗号文ctΓを出力する確率的アルゴリズムである。
(Dec)
Decアルゴリズムは、属性の集合であるΓの下で暗号化された暗号文ctΓと、アクセスストラクチャSに対する復号鍵skSと、公開パラメータpkとを入力として、メッセージm、又は、識別情報⊥を出力するアルゴリズムである。
図5は、実施の形態2に係るKP−FE方式を実行する暗号システム10の構成図である。
暗号システム10は、鍵生成装置100、暗号化装置200、復号装置300を備える。
鍵生成装置100は、セキュリティパラメータλを入力としてSetupアルゴリズムを実行して、公開パラメータpkとマスター鍵skとを生成する。そして、鍵生成装置100は、生成した公開パラメータpkを公開する。また、鍵生成装置100は、アクセスストラクチャSを入力としてKeyGenアルゴリズムを実行して、復号鍵skSを生成して復号装置300へ秘密裡に配布する。
暗号化装置200は、メッセージmと、属性の集合Γと、公開パラメータpkとを入力としてEncアルゴリズムを実行して、暗号文ctΓを生成する。暗号化装置200は、生成した暗号文ctΓを復号装置300へ送信する。
復号装置300は、公開パラメータpkと、復号鍵skSと、暗号文ctΓとを入力としてDecアルゴリズムを実行して、メッセージm又は識別情報⊥を出力する。
図6から図12に基づき、KP−FE方式、及び、KP−FE方式を実行する暗号システム10の機能と動作とについて説明する。
図6は、実施の形態2に係る鍵生成装置100の構成図である。図7は、実施の形態2に係る暗号化装置200の構成図である。図8は、実施の形態2に係る復号装置300の構成図である。
図9と図10とは、鍵生成装置100の動作を示すフローチャートである。なお、図9はSetupアルゴリズムの処理を示すフローチャートであり、図10はKeyGenアルゴリズムの処理を示すフローチャートである。図11は、暗号化装置200の動作を示すフローチャートであり、Encアルゴリズムの処理を示すフローチャートである。図12は、復号装置300の動作を示すフローチャートであり、Decアルゴリズムの処理を示すフローチャートである。
なお、以下の説明では、xt,1:=1であるとする。
鍵生成装置100は、マスター鍵生成部110、マスター鍵記憶部120、情報入力部130、復号鍵生成部140、鍵配布部150を備える。また、復号鍵生成部140は、fベクトル生成部141、sベクトル生成部142、乱数生成部143、鍵要素生成部144を備える。
(S101:正規直交基底生成ステップ)
マスター鍵生成部110は、処理装置により、数125を計算して、パラメータparamと、基底B0及び基底B* 0と、基底B1(基底B)及び基底B* 1(基底B*)とを生成する。
(1)マスター鍵生成部110は、入力装置により、セキュリティパラメータλ(1λ)を入力する。
(2)マスター鍵生成部110は、処理装置により、(1)で入力したセキュリティパラメータλ(1λ)を入力としてアルゴリズムGbpgを実行して、双線形ペアリング群のパラメータparamG:=(q,G,GT,g,e)の値を生成する。
(3)マスター鍵生成部110は、処理装置により、乱数ψを生成するとともに、N0に1+u0+1+w0+z0を、N1に2+n+u+w+zを設定する。なお、nは1以上の整数であり、u0,w0,z0,u,w,zはそれぞれ0以上の整数である。
(4)マスター鍵生成部110は、処理装置により、(1)で入力したセキュリティパラメータλ(1λ)と、(3)で設定したNtと、(2)で生成したparamG:=(q,G,GT,g,e)の値とを入力としてアルゴリズムGdpvsを実行して、双対ペアリングベクトル空間のパラメータparamVt:=(q,Vt,GT,At,e)の値を生成する。
(5)マスター鍵生成部110は、処理装置により、(3)で設定したNtと、Fqとを入力として、線形変換Xt:=(χt,i,j)i,jをランダムに生成する。なお、GLは、General Linearの略である。つまり、GLは、一般線形群であり、行列式が0でない正方行列の集合であり、乗法に関し群である。また、(χt,i,j)i,jは、行列χt,i,jの添え字i,jに関する行列という意味であり、ここでは、i,j=1,...,Ntである。
(6)マスター鍵生成部110は、処理装置により、乱数ψと線形変換Xtとに基づき、(νt,i,j)i,j:=ψ・(Xt T)−1を生成する。なお、(νt,i,j)i,jも(χt,i,j)i,jと同様に、行列νt,i,jの添え字i,jに関する行列という意味であり、ここでは、i,j=1,...,Ntである。
(7)マスター鍵生成部110は、処理装置により、(5)で生成した線形変換Xtに基づき、(4)で生成した標準基底Atから基底Btを生成する。なお、x→ t,iとは、線形変換Xtのi行目を示す。
(8)マスター鍵生成部110は、処理装置により、(6)で生成した(νt,i,j)i,jに基づき、(4)で生成した標準基底Atから基底B* tを生成する。なお、v→ t,iとは、線形変換X* tのi行目を示す。
(9)マスター鍵生成部110は、処理装置により、gTにe(g,g)ψを設定する。また、マスター鍵生成部110は、paramに(4)で生成した{paramVt}t=0,1と、gTとを設定する。
マスター鍵生成部110は、処理装置により、(S101)で生成した基底B0の部分基底B^0と、基底Bの部分基底B^とを数127に示すように生成する。
マスター鍵生成部110は、処理装置により、(S101)で生成した基底B* 0の部分基底B^* 0と、基底B*の部分基底B^*とを数128に示すように生成する。
マスター鍵記憶部120は、(S102)で生成した公開パラメータpkを記憶装置に記憶する。また、マスター鍵記憶部120は、(S103)で生成したマスター鍵skを記憶装置に記憶する。
なお、公開パラメータは、例えば、ネットワークを介して公開され、暗号化装置200や復号装置300が取得可能な状態にされる。
(S201:情報入力ステップ)
情報入力部130は、入力装置により、上述したアクセスストラクチャS:=(M,ρ)を入力する。なお、アクセスストラクチャSの行列Mの設定については、実現したいシステムの条件に応じて設定されるものである。また、アクセスストラクチャSのρは、例えば、復号鍵skSの使用者の属性情報が設定されている。
sベクトル生成部142は、処理装置により、(S201)で入力したアクセスストラクチャSに含まれる(L行×r列)の行列Mと、(S202)で生成したベクトルf→とに基づき、ベクトルs→T:=(s1,...,sL)Tを数131に示すように生成する。
鍵要素生成部144は、処理装置により、復号鍵skSの要素k* 0を数134に示すように生成する。
また、鍵要素生成部144は、処理装置により、i=1,...,Lの各整数iについて、復号鍵skSの要素k* iを数135に示すように生成する。
一方、ρ(i)が否定形の組¬(t,v→ i)である場合には、基底B*の基底ベクトルb* 1,の係数としてμitを設定し、基底ベクトルb* 2の係数として−μiを設定し、基底ベクトルb* 2+1,...,b* 2+nの係数としてsivi,1,...,sivi,nを設定し、基底ベクトルb* 2+n+1,...,b* 2+n+uの係数として0を設定し、基底ベクトルb* 2+n+u+1,...,b* 2+n+u+wの係数としてηi,1,...,ηi,wを設定し、基底ベクトルb* 2+n+u+w+1,...,b* 2+n+u+w+zの係数として0を設定することを意味する。
鍵配布部150は、(S201)で入力したアクセスストラクチャSと、(S205)で生成されたk* 0,k* 1,...,k* Lとを要素とする復号鍵skSを、例えば通信装置によりネットワークを介して秘密裡に復号装置300へ配布する。もちろん、復号鍵skSは、他の方法により復号装置300へ配布されてもよい。
暗号化装置200は、公開パラメータ取得部210、情報入力部220、暗号化データ生成部230、データ送信部240を備える。また、暗号化データ生成部230は、乱数生成部231、暗号要素生成部232を備える。
(S301:公開パラメータ取得ステップ)
公開パラメータ取得部210は、例えば、通信装置によりネットワークを介して、鍵生成装置100が生成した公開パラメータpkを取得する。
情報入力部220は、入力装置により、復号装置300へ送信するメッセージmを入力する。また、情報入力部220は、入力装置により、属性の集合Γ:={(t,x→ t:=(xt,1,...,xt,n∈Fqn))|1≦t≦d}を入力する。なお、tは、1以上d以下の全ての整数ではなく、1以上d以下の少なくとも一部の整数であってもよい。また、属性の集合Γは、例えば、復号可能なユーザの属性情報が設定されている。
暗号要素生成部232は、処理装置により、暗号文ctΓの要素c0を数138に示すように生成する。
データ送信部240は、(S302)で入力した属性の集合Γと、(S304)で生成されたc0,ct,cd+1とを要素とする暗号文ctΓを、例えば通信装置によりネットワークを介して復号装置300へ送信する。もちろん、暗号文ctΓは、他の方法により復号装置300へ送信されてもよい。
復号装置300は、復号鍵取得部310、データ受信部320、スパンプログラム計算部330、補完係数計算部340、ペアリング演算部350、メッセージ計算部360を備える。
(S401:復号鍵取得ステップ)
復号鍵取得部310は、例えば、通信装置によりネットワークを介して、鍵生成装置100から配布された復号鍵skS:=(S,k* 0,k* 1,...,k* L)を取得する。また、復号鍵取得部310は、鍵生成装置100が生成した公開パラメータpkを取得する。
データ受信部320は、例えば、通信装置によりネットワークを介して、暗号化装置200が送信した暗号文ctΓを受信する。
スパンプログラム計算部330は、処理装置により、(S401)で取得した復号鍵skSに含まれるアクセスストラクチャSが、(S402)で受信した暗号文ctΓに含まれるΓを受理するか否かを判定する。アクセスストラクチャSがΓを受理するか否かの判定方法は、「実施の形態1における第5.関数型暗号を実現するための概念」で説明した通りである。
スパンプログラム計算部330は、アクセスストラクチャSがΓを受理する場合(S403で受理)、処理を(S404)へ進める。一方、アクセスストラクチャSがΓを拒絶する場合(S403で拒絶)、暗号文ctΓを復号鍵skSで復号できないとして処理を終了する。
ペアリング演算部350は、処理装置により、数143を計算して、セッション鍵K=gT ζを生成する。
メッセージ計算部360は、処理装置により、m’=cd+1/Kを計算して、メッセージm’(=m)を生成する。なお、cd+1は数142に示す通りgT ζmであり、KはgT ζであるから、m’=cd+1/Kを計算すればメッセージmが得られる。
そのため、対応するインデックスtについての要素k* iと要素ctとのペアリング演算を行うと、基底ベクトルb* 1,b* 2と基底ベクトルb1,b2との部分については、内積が0となり、キャンセルされる。つまり、対応するインデックスtについての要素k* iと要素ctとのペアリング演算を行うと、基底ベクトルの係数として設定したインデックス部(基底ベクトルb* 1,b* 2と基底ベクトルb1,b2との部分)はキャンセルされ、残りの部分についてのペアリング演算の結果が得られる。
この実施の形態では、実施の形態2と同様に、狭義の暗号処理方式について説明する。特に、この実施の形態では、Ciphertext−Policy関数型暗号(CP−FE)方式について説明する。
なお、Ciphertext−Policyとは、暗号文にPolicyが埋め込まれること、つまりアクセスストラクチャが埋め込まれることを意味する。
第2に、CP−FE方式を実現する暗号システム10の構成について説明する。
第3に、CP−FE方式について詳細に説明する。
CP−FE方式は、Setup、KeyGen、Enc、Decの4つのアルゴリズムを備える。
(Setup)
Setupアルゴリズムは、セキュリティパラメータλが入力され、公開パラメータpkと、マスター鍵skとを出力する確率的アルゴリズムである。
(KeyGen)
KeyGenアルゴリズムは、属性の集合であるΓ:={(t,x→ t)|x→ t∈Fq n,1≦t≦d}と、公開パラメータpkと、マスター鍵skとを入力として、復号鍵skΓを出力する確率的アルゴリズムである。
(Enc)
Encアルゴリズムは、メッセージmと、アクセスストラクチャS:=(M,ρ)と、公開パラメータpkとを入力として、暗号文ctSを出力する確率的アルゴリズムである。
(Dec)
Decアルゴリズムは、アクセスストラクチャSの下で暗号化された暗号文ctSと、属性の集合であるΓに対する復号鍵skΓと、公開パラメータpkとを入力として、メッセージm、又は、識別情報⊥を出力するアルゴリズムである。
図13は、実施の形態3に係るCP−FE方式を実行する暗号システム10の構成図である。
暗号システム10は、鍵生成装置100、暗号化装置200、復号装置300を備える。
鍵生成装置100は、セキュリティパラメータλを入力としてSetupアルゴリズムを実行して、公開パラメータpkとマスター鍵skとを生成する。そして、鍵生成装置100は、生成した公開パラメータpkを公開する。また、鍵生成装置100は、属性の集合Γを入力としてKeyGenアルゴリズムを実行して、復号鍵skΓを生成して復号装置300へ秘密裡に配布する。
暗号化装置200は、メッセージmと、アクセスストラクチャSと、公開パラメータpkとを入力としてEncアルゴリズムを実行して、暗号文ctSを生成する。暗号化装置200は、生成した暗号文ctSを復号装置300へ送信する。
復号装置300は、公開パラメータpkと、復号鍵skSと、暗号文ctSとを入力としてDecアルゴリズムを実行して、メッセージm又は識別情報⊥を出力する。
図14から図19に基づき、CP−FE方式、及び、CP−FE方式を実行する暗号システム10の機能と動作とについて説明する。
図14は、実施の形態3に係る鍵生成装置100の構成図である。図15は、実施の形態3に係る暗号化装置200の構成図である。図16は、実施の形態3に係る復号装置300の構成図である。
図17は、鍵生成装置100の動作を示すフローチャートであり、KeyGenアルゴリズムの処理を示すフローチャートである。図18は、暗号化装置200の動作を示すフローチャートであり、Encアルゴリズムの処理を示すフローチャートである。図19は、復号装置300の動作を示すフローチャートであり、Decアルゴリズムの処理を示すフローチャートである。
なお、以下の説明では、xt,1:=1であるとする。
鍵生成装置100は、マスター鍵生成部110、マスター鍵記憶部120、情報入力部130、復号鍵生成部140、鍵配布部150を備える。また、復号鍵生成部140は、乱数生成部143、鍵要素生成部144を備える。
(S501:情報入力ステップ)
情報入力部130は、入力装置により、属性の集合Γ:={(t,x→ t:=(xt,1,...,xt,n∈Fq n))|1≦t≦d}を入力する。なお、属性の集合Γは、例えば、復号鍵skΓの使用者の属性情報が設定されている。
鍵要素生成部144は、処理装置により、復号鍵skΓの要素k* 0を数151に示すように生成する。
鍵配布部150は、(S501)で入力した属性の集合Γと、(S503)で生成されたk* 0,k* tとを要素とする復号鍵skΓを、例えば通信装置によりネットワークを介して秘密裡に復号装置300へ配布する。もちろん、復号鍵skΓは、他の方法により復号装置300へ配布されてもよい。
暗号化装置200は、公開パラメータ取得部210、情報入力部220、暗号化データ生成部230、データ送信部240を備える。また、暗号化データ生成部230は、乱数生成部231、暗号要素生成部232、fベクトル生成部233、sベクトル生成部234を備える。
(S601:公開パラメータ取得ステップ)
公開パラメータ取得部210は、例えば、通信装置によりネットワークを介して、鍵生成装置100が生成した公開パラメータpkを取得する。
情報入力部220は、入力装置により、アクセスストラクチャS:=(M,ρ)を入力する。なお、アクセスストラクチャSの設定については、実現したいシステムの条件に応じて設定されるものである。また、アクセスストラクチャSのρは、例えば、復号可能なユーザの属性情報が設定されている。
また、情報入力部220は、入力装置により、復号装置300へ送信するメッセージmを入力する。
sベクトル生成部234は、処理装置により、(S602)で入力したアクセスストラクチャSに含まれる(L行×r列)の行列Mと、(S603)で生成したベクトルf→とに基づき、ベクトルs→T:=(s1,...,sL)Tを数155に示すように生成する。
暗号要素生成部232は、処理装置により、暗号化データcの要素c0を数158に示すように生成する。
データ送信部240は、(S602)で入力したアクセスストラクチャSと、(S606)で生成されたc0,c1,...,cL,cd+1とを要素とする暗号文ctSを、例えば通信装置によりネットワークを介して復号装置300へ送信する。もちろん、暗号文ctSは、他の方法により復号装置300へ送信されてもよい。
復号装置300は、復号鍵取得部310、データ受信部320、スパンプログラム計算部330、補完係数計算部340、ペアリング演算部350、メッセージ計算部360を備える。
(S701:復号鍵取得ステップ)
復号鍵取得部310は、例えば、通信装置によりネットワークを介して、鍵生成装置100から配布された復号鍵skΓを取得する。また、復号鍵取得部310は、鍵生成装置100が生成した公開パラメータpkを取得する。
データ受信部320は、例えば、通信装置によりネットワークを介して、暗号化装置200が送信した暗号文ctSを受信する。
スパンプログラム計算部330は、処理装置により、(S702)で取得した暗号文ctSに含まれるアクセスストラクチャSが、(S701)で受信した復号鍵skΓに含まれるΓを受理するか否かを判定する。アクセスストラクチャSがΓを受理するか否かの判定方法は、「実施の形態1における第5.関数型暗号を実現するための概念」で説明した通りである。
スパンプログラム計算部330は、アクセスストラクチャSがΓを受理する場合(S703で受理)、処理を(S704)へ進める。一方、アクセスストラクチャSがΓを拒絶する場合(S703で拒絶)、暗号文ctSを復号鍵skΓで復号できないとして処理を終了する。
この実施の形態では、実施の形態2,3と同様に、狭義の暗号処理方式について説明する。特に、この実施の形態では、階層的内積述語暗号(HIPE)方式について説明する。
なお、HIPE方式とは、権限委譲可能な内積述語暗号方式である。権限委譲とは、上位の鍵を有する利用者が、その鍵(上位の鍵)よりも機能が制限された下位の鍵を生成することである。機能が制限されたとは、上位の鍵で復号可能な暗号文のうち、一部の暗号文のみ下位の鍵で復号可能であるという意味である。内積述語暗号方式は、実施の形態1で説明した通り、関数型暗号方式におけるアクセスストラクチャの設計を限定した場合に相当する。
HIPE方式には、効率的な第1方式と、効率は第1方式よりも劣るが、暗号文に設定された属性情報の秘匿性まで保証される第2方式とがある(非特許文献29参照)。ここでは、一例として、第2方式について、公開パラメータを再発行することなく、属性カテゴリの追加を可能とした方式を説明する。しかし、非特許文献29に記載されたアルゴリズムに対して同様の変更を加えることにより、第1方式についても、公開パラメータを再発行することなく、属性カテゴリの追加を可能とすることができる。
第2に、HIPE方式を実現する暗号システム10の構成について説明する。
第3に、HIPE方式について詳細に説明する。
HIPE方式は、Setup、KeyGen、Enc、Dec、DelegateLの5つのアルゴリズムを備える。
(Setup)
Setupアルゴリズムは、セキュリティパラメータ1λを入力として、マスター公開鍵pkとマスター秘密鍵skとを出力する確率的アルゴリズムである。マスター秘密鍵skは最も上位の鍵である。
(KeyGen)
KeyGenアルゴリズムは、マスター公開鍵pkとマスター秘密鍵skと述語情報(v→ 1,...,v→ L)(1≦L≦d)とを入力として、第L層目の秘密鍵skLを出力する確率的アルゴリズムである。
(Enc)
Encアルゴリズムは、マスター公開鍵pkと属性情報(x→ 1,...,x→ h)(1≦h≦d)とメッセージmとを入力として、暗号文ctを出力する確率的アルゴリズムである。
(Dec)
Decアルゴリズムは、マスター公開鍵pkと第L層目の秘密鍵skLと暗号文ctとを入力として、メッセージm又は識別情報⊥を出力する確率的アルゴリズムである。
(DelegateL)
DelegateLは、マスター公開鍵pkと第L層目の秘密鍵skLと第L+1層目の述語情報v→ L+1(L+1≦d)とを入力として、第L+1層目の秘密鍵skL+1を出力する確率的アルゴリズムである。つまり、DelegateLアルゴリズムでは、下位の秘密鍵が出力される。
図20は、実施の形態4に係るHIPE方式を実行する暗号システム10の構成図である。
暗号システム10は、鍵生成装置100、暗号化装置200、復号装置300、鍵委譲装置400を備える。なお、ここでは、復号装置300が、鍵委譲装置400を備えるものとして説明するが、鍵委譲装置400は、復号装置300とは別に設けられていてもよい。
鍵生成装置100は、セキュリティパラメータλを入力としてSetupアルゴリズムを実行して、マスター公開鍵pkとマスター秘密鍵skとを生成する。そして、鍵生成装置100は、生成したマスター公開鍵pkを公開する。また、鍵生成装置100は、マスター公開鍵pkとマスター秘密鍵skと述語情報(v→ 1,...,v→ L)(1≦L≦d)とを入力としてKeyGenアルゴリズムを実行して、第L層目の秘密鍵skLを生成して第L層目の復号装置300へ秘密裡に配布する。
暗号化装置200は、マスター公開鍵pkと属性情報(x→ 1,...,x→ h)(1≦h≦d)とメッセージmとを入力としてEncアルゴリズムを実行して、暗号文ctを生成する。暗号化装置200は、生成した暗号文ctを復号装置300へ送信する。
復号装置300は、マスター公開鍵pkと第L層目の秘密鍵skLと暗号文ctとを入力としてDecアルゴリズムを実行して、メッセージm又は識別情報⊥を出力する。
鍵委譲装置400は、マスター公開鍵pkと第L層目の秘密鍵skLと第L+1層目の述語情報v→ L+1(L+1≦d)とを入力としてDelegateLアルゴリズムを実行して、第L+1層目の秘密鍵skL+1を生成して第L+1層目の復号装置300へ秘密裡に配布する。
図21から図29に基づき、実施の形態4に係るHIPE方式、及び、HIPE方式を実行する暗号システム10の機能と動作とについて説明する。
図21は、実施の形態4に係る鍵生成装置100の構成図である。図22は、実施の形態4に係る暗号化装置200の構成図である。図23は、実施の形態4に係る復号装置300の構成図である。図24は、実施の形態4に係る鍵委譲装置400の構成図である。
図25と図26とは、鍵生成装置100の動作を示すフローチャートである。なお、図25はSetupアルゴリズムの処理を示すフローチャートであり、図26はKeyGenアルゴリズムの処理を示すフローチャートである。図27は、暗号化装置200の動作を示すフローチャートであり、Encアルゴリズムの処理を示すフローチャートである。図28は、復号装置300の動作を示すフローチャートであり、Decアルゴリズムの処理を示すフローチャートである。図29は、鍵委譲装置400の動作を示すフローチャートであり、DelegateLアルゴリズムの処理を示すフローチャートである。
鍵生成装置100は、マスター鍵生成部110、マスター鍵記憶部120、情報入力部130、復号鍵生成部140、鍵配布部150を備える。また、復号鍵生成部140は、乱数生成部143、鍵要素生成部144、ランダム化要素生成部145、委譲要素生成部146を備える。
S801は、実施の形態2における図9に示す(S101)と同様である。
マスター鍵生成部110は、処理装置により、(S801)で生成した基底B0の部分基底B^0と、基底Bの部分基底B^と、基底B* 0の部分基底B^* 0,pkと、基底B*の部分基底B^* pkとを数167に示すように生成する。
マスター鍵生成部110は、処理装置により、(S801)で生成した基底B* 0の部分基底B^* 0,skと、基底B*の部分基底B^* skとを数168に示すように生成する。
マスター鍵記憶部120は、(S802)で生成した公開パラメータpkを記憶装置に記憶する。また、マスター鍵記憶部120は、(S803)で生成したマスター鍵skを記憶装置に記憶する。
なお、公開パラメータは、例えば、ネットワークを介して公開され、暗号化装置200や復号装置300が取得可能な状態にされる。
(S901:情報入力ステップ)
情報入力部130は、入力装置により、述語情報(v→ 1,...,v→ L)を入力する。i=1,...,Lの各整数について、v→ i:=vi,1,...,vi,nである。なお、述語情報としては、鍵を使用する者の属性が入力される。
乱数生成部143は、処理装置により、乱数を数170に示すように生成する。
ランダム化要素生成部145は、処理装置により、j=1,...,2Lの各整数jについて、復号鍵skLの要素である第1ランダム化要素k* L,ran,1,jを数173に示すように生成する。
ランダム化要素生成部145は、処理装置により、τ=L+1,...,dの各整数τについて、復号鍵skLの要素である第2ランダム化要素k* L,ran,2,τを数174に示すように生成する。
委譲要素生成部146は、処理装置により、τ=L+1,...,dの各整数τと、各整数τについてι=1,2の各整数ιとについて、復号鍵skLの要素である委譲要素k* L,del,(τ,ι)を数175に示すように生成する。
鍵配布部150は、鍵要素k* L,decと、第1ランダム化要素k* L,ran,1,jと、第2ランダム化要素k* L,ran,2,τと、委譲要素k* L,del,(τ,ι)とを要素とする復号鍵skLを、例えば通信装置によりネットワークを介して秘密裡に復号装置300へ配布する。もちろん、復号鍵skLは、他の方法により復号装置300へ配布されてもよい。
暗号化装置200は、公開パラメータ取得部210、情報入力部220、暗号化データ生成部230、データ送信部240を備える。また、暗号化データ生成部230は、乱数生成部231、暗号要素生成部232を備える。
(S1001:マスター公開鍵取得ステップ)
公開パラメータ取得部210は、例えば、通信装置によりネットワークを介して、鍵生成装置100が生成したマスター公開鍵pkを取得する。
情報入力部220は、入力装置により、属性情報(x→ 1,...,x→ L)を入力する。i=1,...,Lの各整数について、x→ i:=xi,1,...,xi,Lである。なお、属性情報としては、暗号化したメッセージを復号可能な者の属性が入力される。
また、情報入力部220は、入力装置により、暗号化するメッセージmを入力する。
データ送信部240は、暗号要素c1と、暗号要素c2とを含む暗号文ctを、例えば通信装置によりネットワークを介して復号装置300へ送信する。もちろん、暗号文ctは、他の方法により復号装置300へ送信されてもよい。
復号装置300は、復号鍵取得部310、データ受信部320、ペアリング演算部350、メッセージ計算部360を備える。
(S1101:復号鍵取得ステップ)
復号鍵取得部310は、例えば、通信装置によりネットワークを介して、復号鍵skLを取得する。また、復号鍵取得部310は、鍵生成装置100が生成した公開パラメータpkを取得する。
データ受信部320は、例えば、通信装置によりネットワークを介して、暗号化装置200が送信した暗号文ctを受信する。
メッセージ計算部360は、処理装置により、暗号要素c2をセッション鍵Kで割ることにより、メッセージm’(=m)を計算する。
鍵委譲装置400は、復号鍵取得部410、情報入力部420、委譲鍵生成部430、鍵配布部440を備える。また、委譲鍵生成部430は、乱数生成部431、下位鍵要素生成部432、下位ランダム化要素生成部433、下位委譲要素生成部434を備える。
(S1201:復号鍵取得ステップ)
復号鍵取得部410は、例えば、通信装置によりネットワークを介して、復号鍵skLを取得する。また、復号鍵取得部410は、鍵生成装置100が生成した公開パラメータpkを取得する。
情報入力部420は、入力装置により、述語情報v→ L+1:=(vL+1,i(i=1,...,nL+1))を入力する。なお、述語情報としては、鍵を委譲される者の属性が入力される。
下位ランダム化要素生成部433は、処理装置により、j’=1,...,2(L+1)の各整数j’について、委譲鍵skL+1の要素である第1下位ランダム化要素k* L+1,ran,1,j’を数186に示すように生成する。
下位ランダム化要素生成部433は、処理装置により、τ=L+2,...,dの各整数τについて、委譲鍵skL+1の要素である第2下位ランダム化要素k* L+1,ran,2,τを数187に示すように生成する。
下位委譲要素生成部434は、処理装置により、τ=L+2,...,dの各整数τと、各整数τについてι=1,...,nの各整数ιとについて、委譲鍵skL+1の要素である下位委譲要素k* L+1,del,(τ,ι)を数188に示すように生成する。
鍵配布部150は、下位鍵要素k* L+1,decと、第1下位ランダム化要素k* L+1,ran,1,j’と、第2下位ランダム化要素k* L+1,ran,2,τと、下位委譲要素k* L+1,del,(τ,ι)とを要素とする委譲鍵skL+1(下位の復号鍵)を、例えば通信装置によりネットワークを介して秘密裡に下位の復号装置300へ配布する。もちろん、委譲鍵skL+1は、他の方法により下位の復号装置300へ配布されてもよい。
この実施の形態では、署名方式について説明する。特に、この実施の形態では、実施の形態3で説明したCP−FE方式に基づく、署名方式について説明する。
第2に、署名方式を実現する暗号システム10の構成について説明する。
第3に、署名方式について詳細に説明する。
署名方式は、Setup、KeyGen、Sig、Verの4つのアルゴリズムを備える。
(Setup)
Setupアルゴリズムは、セキュリティパラメータλが入力され、公開パラメータpkと、マスター鍵skとを出力する確率的アルゴリズムである。
(KeyGen)
KeyGenアルゴリズムは、属性の集合であるΓ:={(t,x→ t)|x→ t∈Fq n,1≦t≦d}と、公開パラメータpkと、マスター鍵skとを入力として、署名鍵skΓを出力する確率的アルゴリズムである。
(Sig)
Sigアルゴリズムは、メッセージmと、署名鍵skΓと、アクセスストラクチャS:=(M,ρ)と、公開パラメータpkとを入力として、署名データsigを出力する確率的アルゴリズムである。
(Ver)
Verアルゴリズムは、メッセージmと、アクセスストラクチャS:=(M,ρ)と、署名データsigと、公開パラメータpkとを入力として、署名の検証に成功したことを示す値“1”、又は、署名の検証に失敗したことを示す値“0”を出力するアルゴリズムである。
図30は、実施の形態5に係る署名方式を実行する暗号システム10の構成図である。
暗号システム10は、鍵生成装置100、署名装置500、検証装置600を備える。
鍵生成装置100は、セキュリティパラメータλを入力としてSetupアルゴリズムを実行して、公開パラメータpkとマスター鍵skとを生成する。そして、鍵生成装置100は、生成した公開パラメータpkを公開する。また、鍵生成装置100は、属性の集合Γを入力としてKeyGenアルゴリズムを実行して、署名鍵skΓを生成して署名装置500へ秘密裡に配布する。
署名装置500は、メッセージmと、アクセスストラクチャSと、公開パラメータpkと、署名鍵skΓとを入力としてSigアルゴリズムを実行して、署名情報s→*を生成する。署名装置500は、生成した署名情報s→*と、メッセージmと、アクセスストラクチャSとを検証装置600へ送信する。
検証装置600は、署名情報s→*と、メッセージmと、アクセスストラクチャSと、公開パラメータpkとを入力としてVerアルゴリズムを実行して、値“1”、又は、値“0”を出力する。
図31から図37に基づき、署名方式、及び、署名方式を実行する暗号システム10の機能と動作とについて説明する。
図31は、実施の形態5に係る鍵生成装置100の構成図である。図32は、実施の形態5に係る署名装置500の構成図である。図33は、実施の形態5に係る検証装置600の構成図である。
図34と図35とは、鍵生成装置100の動作を示すフローチャートである。なお、図34はSetupアルゴリズムの処理を示すフローチャートであり、図35はKeyGenアルゴリズムの処理を示すフローチャートである。図36は、署名装置500の動作を示すフローチャートであり、Sigアルゴリズムの処理を示すフローチャートである。図37は、検証装置600の動作を示すフローチャートであり、Verアルゴリズムの処理を示すフローチャートである。
具体的には、アルゴリズムGbpgに関する衝突困難ハッシュ関数系Hと、多項式poly(λ)とについて以下の2つのことが言える。
1.鍵空間系は、λによって索引付けされる。各鍵空間は、KHλによって示されるビット列における確率空間である。1λを入力とした場合の出力分布がKHλと等しい確率的多項式時間アルゴリズムが存在する。
2.ハッシュ関数系は、λと、KHλからランダムに選択されたhkと、D:={0,1}poly(λ)とによって索引付けされる。ここで、各関数Hhk λ,Dは、Dの要素からFq Xへの写像である。なお、qは、アルゴリズムGbpg(1λ)の出力paramGの最初の要素である。1λとhkとd∈Dとを入力として、Hhk λ,D(d)を出力する決定的多項式時間アルゴリズムがある。
鍵生成装置100は、マスター鍵生成部110、マスター鍵記憶部120、情報入力部130、復号鍵生成部140、鍵配布部150を備える。また、復号鍵生成部140は、乱数生成部143、鍵要素生成部144を備える。
(S1301)は、実施の形態2における図9に示す(S101)と原則として同様である。但し、t=0,1,d+1について、(4)から(8)までの処理を実行する点と、N0が1+u0+w0+z0である点とが異なる。なお、Nd+1は、2+ud+1+wd+1+zd+1であり、ud+1,wd+1,zd+1はそれぞれ1以上の整数である。
マスター鍵生成部110は、処理装置により、(S1301)で生成した基底B0の部分基底B^0と、基底Bの部分基底B^と、基底Bd+1の部分基底B^d+1と、基底B* 0の部分基底B^* 0と、基底B*の部分基底B^*と、基底B* d+1の部分基底B^* d+1とを数197に示すように生成する。
マスター鍵生成部110は、基底B^* 0の基底ベクトルb* 0,1をマスター鍵skとする。
マスター鍵記憶部120は、(S1303)で生成した公開パラメータpkを記憶装置に記憶する。また、マスター鍵記憶部120は、(S1304)で生成したマスター鍵skを記憶装置に記憶する。
なお、公開パラメータは、例えば、ネットワークを介して公開され、署名装置500や検証装置600が取得可能な状態にされる。
(S1401:情報入力ステップ)
情報入力部130は、入力装置により、属性の集合Γ:={(t,x→ t:=(xt,1,...,xt,n∈Fq n))|1≦t≦d}を入力する。なお、属性の集合Γは、例えば、署名鍵skΓの使用者の属性情報が設定されている。
鍵要素生成部144は、処理装置により、署名鍵skΓの要素k* 0を数200に示すように生成する。
鍵配布部150は、(S1401)で入力した属性の集合Γと、(S1403)で生成されたk* 0,k* t,k* d+1,k* d+2とを要素とする署名鍵skΓを、例えば通信装置によりネットワークを介して秘密裡に署名装置500へ配布する。もちろん、署名鍵skΓは、他の方法により署名装置500へ配布されてもよい。
署名装置500は、署名鍵取得部510、情報入力部520、補完係数計算部530、署名データ生成部540、データ送信部550を備える。また、署名データ生成部540は、乱数生成部541、署名要素生成部542を備える。
(S1501:署名鍵取得ステップ)
署名鍵取得部510は、例えば、通信装置によりネットワークを介して、鍵生成装置100が生成した署名鍵skΓを取得する。また、署名鍵取得部510は、鍵生成装置100が生成した公開パラメータpkを取得する。
情報入力部520は、入力装置により、アクセスストラクチャS:=(M,ρ)を入力する。なお、アクセスストラクチャSの行列Mの設定については、実現したいシステムの条件に応じて設定されるものである。
また、情報入力部520は、入力装置により、署名を付すメッセージmを入力する。
補完係数計算部530は、処理装置により、(S1502)で入力したアクセスストラクチャSが、(S1501)で取得した署名鍵skΓに含まれる属性の集合Γを受理するか否かを判定する。
なお、アクセスストラクチャが属性の集合を受理するか否かの判定方法は、「実施の形態1における第5.関数型暗号を実現するための概念」で説明した通りである。
補完係数計算部530は、アクセスストラクチャSが属性の集合Γを受理する場合(S1503で受理)、処理を(S1504)へ進める。一方、アクセスストラクチャSが属性の集合Γを拒絶する場合(S1503で拒絶)、処理を終了する。
署名要素生成部542は、処理装置により、署名データsigの要素である署名要素s* 0を数206に示すように生成する。
データ送信部550は、署名要素s* 0と、署名要素s* i(i=1,...,L)と、署名要素s* L+1と、メッセージmと、アクセスストラクチャS:=(M,ρ)とを含む署名データsigを、例えば通信装置によりネットワークを介して検証装置600へ送信する。もちろん、署名データsigは、他の方法により検証装置600へ送信されてもよい。
検証装置600は、公開パラメータ取得部610、データ受信部620、検証データ生成部630、ペアリング演算部640を備える。また、検証データ生成部630は、fベクトル生成部631、sベクトル生成部632、乱数生成部633、検証要素生成部634を備える。
(S1601:公開パラメータ取得ステップ)
公開パラメータ取得部610は、例えば、通信装置によりネットワークを介して、鍵生成装置100が生成した公開パラメータpkを取得する。
データ受信部620は、例えば、通信装置によりネットワークを介して、署名装置500が送信した署名データsigを受信する。
sベクトル生成部632は、処理装置により、(S1602)で受信した署名データsigに含まれるアクセスストラクチャSの(L行×r列)の行列Mと、(S1603)で生成したr個の要素を有するベクトルf→とに基づき、ベクトルs→Tを数215に示すように生成する。
検証要素生成部634は、処理装置により、検証鍵の要素である検証要素c0を数218に示すように生成する。
ペアリング演算部640は、処理装置により、ペアリング演算e(b0,1,s* 0)を計算する。
ペアリング演算e(b0,1,s* 0)を計算した結果が値1であれば、ペアリング演算部640は、署名の検証に失敗したことを示す値0を出力して、処理を終了する。一方、ペアリング演算e(b0,1,s* 0)を計算した結果が値1でなければ、ペアリング演算部640は、処理をS1608へ進める。
ペアリング演算部640は、処理装置により、数221に示すペアリング演算を計算する。
この実施の形態では、多管理者関数型暗号方式及び多管理者署名方式について説明する。
通常の関数型暗号では、システム全体のセキュリティが1つの機関(管理者)に依存している。例えば、実施の形態2,3で説明した暗号システム10では、システム全体のセキュリティが鍵生成装置100に依存している。鍵生成装置100の秘密鍵であるマスター秘密鍵skが漏洩した場合、システム全体のセキュリティが破られてしまう。
しかし、多管理者とすることで、一部の管理者のセキュリティが破られたり、一部の管理者の秘密鍵(マスター鍵)が漏洩した場合であっても、システムの一部だけが機能しなくなるだけであり、他の部分については正常に機能する状態とすることができる。
図38では、役所が、住所、電話番号、年齢等の属性について管理する。また、警察が、運転免許の種別等の属性について管理する。また、会社Aが、会社Aにおける役職、会社Aにおける所属等の属性について管理する。そして、役所が管理する属性に関連付けられた復号鍵1は役所が発行し、警察が管理する属性に関連付けられた復号鍵2は警察が発行し、会社Aが管理する属性に関連付けられた復号鍵3は会社Aが発行する。
暗号文を復号する復号者は、役所、警察、会社A等の各管理者が発行した復号鍵1,2,3を合わせた復号鍵を用い、暗号文を復号する。つまり、復号者から見た場合、各管理者から発行された復号鍵を合わせたものが、自分に発行された1つの復号鍵となる。
例えば、会社Aのマスター鍵が漏洩した場合、暗号処理システムは、会社Aの属性に関しては機能しなくなるが、他の管理者が管理する属性に関しては機能する。つまり、会社Aが管理する属性については、指定した属性以外の属性のユーザによって復号されてしまう虞があるが、他の属性については、指定した属性のユーザによってのみ復号可能である。
例えば、中央管理者がいる場合、分散多管理者とは言えない。中央管理者とは、他の管理者よりも上位の管理者である。中央管理者のセキュリティが破られた場合、全ての管理者のセキュリティが破られてしまう。
図39では、図38と同様に、役所が、住所、電話番号、年齢等の属性について管理する。また、警察が、運転免許の種別等の属性について管理する。また、会社Aが、会社Aにおける役職、会社Aにおける所属等の属性について管理する。そして、役所が管理する属性に関連付けられた復号鍵1は役所が発行し、警察が管理する属性に関連付けられた復号鍵2は警察が発行し、会社Aが管理する属性に関連付けられた復号鍵3は会社Aが発行する。
ここで、役所は、基底B^1と基底B^* 1とをそれぞれ公開パラメータpkとマスター秘密鍵skとして生成する。そして、基底B^* 1を用いて、住所、電話番号、年齢等の属性についての復号鍵1を生成する。同様に、警察は、基底B^2と基底B^* 2とをそれぞれ公開パラメータpkとマスター秘密鍵skとして生成する。そして、基底B^* 2を用いて、運転免許の種別等の属性についての復号鍵2を生成する。同様に、会社Aは、基底B^3と基底B^* 3とをそれぞれ公開パラメータpkとマスター秘密鍵skとして生成する。そして、基底B^* 3を用いて、会社Aにおける役職、会社Aにおける所属等の属性についての復号鍵3を生成する。
送信者は、基底B^1を用いて住所、電話番号、年齢等の属性を設定し、基底B^2を用いて運転免許の種別等の属性を設定し、基底B^3を用いて会社Aにおける役職、会社Aにおける所属等の属性を設定して、暗号文を生成する。そして、復号者は、復号鍵1−3を用いて、暗号文を復号する。
例えば、役所で管理する属性カテゴリに追加をする場合、役所の公開パラメータpkを再発行することなく、属性カテゴリを追加することが可能である。
以上の実施の形態では、双対ベクトル空間において暗号プリミティブの処理を実現する方法について説明した。実施の形態7では、双対加群において暗号プリミティブの処理を実現する方法について説明する。
言い替えると、ρ(i)=(t,v→)又はρ(i)=¬(t,v→)である場合に、関数ρ~を、ρ~(i)=tである{1,...,L}→{1,...d}の写像であるとする。この場合、ρ~が単射であると限定してもよい。なお、ρ(i)は、上述したアクセスストラクチャS:=(M,ρ(i))のρ(i)である。
図40は、鍵生成装置100、暗号化装置200、復号装置300、鍵委譲装置400、署名装置500、検証装置600のハードウェア構成の一例を示す図である。
図40に示すように、鍵生成装置100、暗号化装置200、復号装置300、鍵委譲装置400、署名装置500、検証装置600は、プログラムを実行するCPU911(Central・Processing・Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。CPU911は、バス912を介してROM913、RAM914、LCD901(Liquid Crystal Display)、キーボード902(K/B)、通信ボード915、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置920(固定ディスク装置)の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。磁気ディスク装置920は、所定の固定ディスクインタフェースを介して接続される。
ファイル群924には、上記の説明において「公開パラメータpk」、「マスター秘密鍵sk」、「復号鍵skS,skΓ」、「暗号文ctΓ,ctS」、「アクセスストラクチャS」、「属性情報」、「メッセージm」等の情報やデータや信号値や変数値やパラメータが、「ファイル」や「データベース」の各項目として記憶される。「ファイル」や「データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのCPU911の動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のCPU911の動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、上記の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。また、「〜装置」として説明するものは、「〜回路」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。さらに、「〜処理」として説明するものは「〜ステップ」であっても構わない。すなわち、「〜部」として説明するものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、ROM913等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラムは、上記で述べた「〜部」としてコンピュータ等を機能させるものである。あるいは、上記で述べた「〜部」の手順や方法をコンピュータ等に実行させるものである。
Claims (11)
- 所定の基底B及び所定の基底B*を用いて処理を行う暗号システムであり、
複数のインデックスjのうちの1つ以上のインデックスjについての送信側ベクトルtjであって、前記基底Bにおける所定の基底ベクトルbindexの係数に、インデックスjに予め割り当てられた情報Jを設定し、前記基底Bにおける他の基底ベクトルbattの係数に、インデックスjについてのパラメータΦjを設定した送信側ベクトルtjを生成する送信装置と、
複数のインデックスj’のうちの1つ以上のインデックスj’についての受信側ベクトルrj’であって、前記基底ベクトルbindexに対応する前記基底B*における基底ベクトルb* indexの係数に、インデックスj’に対応するインデックスjに予め割り当てられた情報Jとの内積が0になる情報J’を設定し、前記基底ベクトルbattに対応する前記基底B*における基底ベクトルb* attの係数に、インデックスj’についてのパラメータΨj’を設定した受信側ベクトルrj’を用いて、インデックスjについての前記送信側ベクトルtjと前記インデックスjに対応するインデックスj’についての前記受信側ベクトルrj’とに対して、対応する基底ベクトル毎のペアリング演算の積を計算する受信装置と
を備えることを特徴とする暗号システム。 - 前記送信装置は、暗号文ctを生成する暗号化装置であり、t=1,...,d(dは1以上の整数)の整数tを前記インデックスjとし、整数tについての属性情報xtを前記インデックスjについての前記パラメータΦjとして、1つ以上の整数tについて、前記基底ベクトルbindexの係数に、整数tに割り当てられた情報Jを設定し、前記基底ベクトルbattの係数に、整数tについての属性情報xtを設定した暗号ベクトルctを前記送信側ベクトルtjとして含む暗号文ctを生成し、
前記受信装置は、前記暗号文ctを復号する復号装置であり、i=1,...,L(Lは1以上の整数)の整数iを前記インデックスj’とし、整数iについての述語情報viを前記インデックスj’についての前記パラメータΨj’として、各整数iについて、前記基底ベクトルb* indexの係数に、整数iに対応する整数tに割り当てられた情報Jとの内積が0になる情報J’を設定し、前記基底ベクトルb* attの係数に、整数iについての述語情報viを設定した鍵ベクトルk* iを前記受信側ベクトルrj’として用いて、前記各整数iについて、その整数iについての鍵ベクトルk* iと、その整数iに対応する整数tについての暗号ベクトルctとに対して、対応する基底ベクトル毎のペアリング演算の積を計算する
ことを特徴とする請求項1に記載の暗号システム。 - 前記送信装置は、暗号文ctを生成する暗号化装置であり、i=1,...,L(Lは1以上の整数)の整数iを前記インデックスjとし、整数iについての述語情報viを前記インデックスjについての前記パラメータΦjとして、各整数iについて、前記基底ベクトルbindexの係数に、整数iに割り当てられた情報Jを設定し、前記基底ベクトルbattの係数に、整数iについての述語情報viを設定した暗号ベクトルciを前記送信側ベクトルtjとして含む暗号文ctを生成し、
前記受信装置は、前記暗号文ctを復号する復号装置であり、t=1,...,d(dは1以上の整数)の整数tを前記インデックスj’とし、整数tについての属性情報xtを前記インデックスj’についての前記パラメータΨj’として、1つ以上の整数tについて、前記基底ベクトルb* indexの係数に、整数tに対応する整数iに割り当てられた情報Jとの内積が0になる情報J’を設定し、前記基底ベクトルb* attの係数に、整数tについての属性情報xtを設定した鍵ベクトルk* tを前記受信側ベクトルrj’として用いて、前記各整数iについて、その整数iについての暗号ベクトルciと、その整数iに対応する整数tについての鍵ベクトルk* tとに対して、対応する基底ベクトル毎のペアリング演算の積を計算する
ことを特徴とする請求項1に記載の暗号システム。 - 前記送信装置は、暗号文ctを生成する暗号化装置であり、i=1,...,L(Lは1以上の整数)の整数iを前記インデックスjとし、整数iについての属性情報xiを前記インデックスjについての前記パラメータΦjとして、各整数iについて、前記基底ベクトルbindexの係数に、整数iに割り当てられた情報Jを設定し、前記基底ベクトルbattの係数に、整数iについての属性情報xiを設定した暗号ベクトルciを前記送信側ベクトルtjとして含む暗号文ctを生成し、
前記受信装置は、前記暗号文ctを復号する復号装置であり、前記整数iを前記インデックスj’とし、整数iについての述語情報viを前記インデックスj’についての前記パラメータΨj’として、各整数iについて、前記基底ベクトルb* indexの係数に、整数iに割り当てられた情報Jとの内積が0になる情報J’を設定し、前記基底ベクトルb* attの係数に、整数iについての述語情報viを設定した鍵ベクトルk* iを前記受信側ベクトルrj’として用いて、前記各整数iについて、その整数iについての鍵ベクトルk* iと暗号ベクトルctとに対して、対応する基底ベクトル毎のペアリング演算の積を計算する
ことを特徴とする請求項1に記載の暗号システム。 - 前記送信装置は、署名データsigを生成する署名装置であり、t=1,...,d(dは1以上の整数)の整数tを前記インデックスjとし、整数tについての属性情報xtを前記インデックスjについての前記パラメータΦjとして、1つ以上の整数tについて、前記基底ベクトルbindexの係数に、整数tに割り当てられた情報Jを設定し、前記基底ベクトルbattの係数に、整数tについての属性情報xtを設定した鍵ベクトルk* tを用いて、i=1,...,L(Lは1以上の整数)の各整数iについて、整数iに対応する整数tについての鍵ベクトルk* tを含めた署名要素siを前記送信側ベクトルtjとして含む署名データsigを生成し、
前記受信装置は、前記署名データsigを検証する検証装置であり、前記整数iを前記インデックスj’とし、整数iについての述語情報viを前記インデックスj’についての前記パラメータΨj’として、各整数iについて、前記基底ベクトルb* indexの係数に、整数iに対応する整数tに割り当てられた情報Jとの内積が0になる情報J’を設定し、前記基底ベクトルb* attの係数に、整数iについての述語情報viを設定した検証要素ciを前記受信側ベクトルrj’として用いて、前記各整数iについて、その整数iについての署名要素siと検証要素ciとに対して、対応する基底ベクトル毎のペアリング演算の積を計算する
ことを特徴とする請求項1に記載の暗号システム。 - 前記暗号システムは、所定の基底B0及び所定の基底B* 0と、所定の基底B及び所定の基底B*と、所定の基底Bd+1及び所定の基底B* d+1とを用いて処理を行い、
前記送信装置は、鍵ベクトルk* 0とt=1,...,dの1つ以上の整数tについての鍵ベクトルk* tと鍵ベクトルd+1,1と鍵ベクトルd+1,2とであって、数9に示す鍵ベクトルk* 0と鍵ベクトルk* tと鍵ベクトルd+1,1と鍵ベクトルd+1,2とを用いて、i=0,...,L+1の各整数iについての署名要素siであって、数10に示す署名要素siを含む署名データsigを生成し、
前記受信装置は、前記各整数iについての検証要素ciであって、数11に示す検証要素ciと、前記署名要素siとについて、数12を計算する
ことを特徴とする請求項8に記載の暗号システム。
- 所定の基底B及び所定の基底B*を用いて処理を行う暗号方法であり、
送信装置が、複数のインデックスjのうちの1つ以上のインデックスjについての送信側ベクトルtjであって、前記基底Bにおける所定の基底ベクトルbindexの係数に、インデックスjに予め割り当てられた情報Jを設定し、前記基底Bにおける他の基底ベクトルbattの係数に、インデックスjについてのパラメータΦjを設定した送信側ベクトルtjを生成する送信工程と、
受信装置が、複数のインデックスj’のうちの1つ以上のインデックスj’についての受信側ベクトルrj’であって、前記基底ベクトルbindexに対応する前記基底B*における基底ベクトルb* indexの係数に、インデックスj’に対応するインデックスjに予め割り当てられた情報Jとの内積が0になる情報J’を設定し、前記基底ベクトルbattに対応する前記基底B*における基底ベクトルb* attの係数に、インデックスj’についてのパラメータΨj’を設定した受信側ベクトルrj’を用いて、インデックスjについての前記送信側ベクトルtjと前記インデックスjに対応するインデックスj’についての前記受信側ベクトルrj’とに対して、対応する基底ベクトル毎のペアリング演算の積を計算する受信工程と
を備えることを特徴とする暗号方法。 - 所定の基底B及び所定の基底B*を用いて処理を行う暗号プログラムであり、
複数のインデックスjのうちの1つ以上のインデックスjについての送信側ベクトルtjであって、前記基底Bにおける所定の基底ベクトルbindexの係数に、インデックスjに予め割り当てられた情報Jを設定し、前記基底Bにおける他の基底ベクトルbattの係数に、インデックスjについてのパラメータΦjを設定した送信側ベクトルtjを生成する送信処理と、
複数のインデックスj’のうちの1つ以上のインデックスj’についての受信側ベクトルrj’であって、前記基底ベクトルbindexに対応する前記基底B*における基底ベクトルb* indexの係数に、インデックスj’に対応するインデックスjに予め割り当てられた情報Jとの内積が0になる情報J’を設定し、前記基底ベクトルbattに対応する前記基底B*における基底ベクトルb* attの係数に、インデックスj’についてのパラメータΨj’を設定した受信側ベクトルrj’を用いて、インデックスjについての前記送信側ベクトルtjと前記インデックスjに対応するインデックスj’についての前記受信側ベクトルrj’とに対して、対応する基底ベクトル毎のペアリング演算の積を計算する受信処理と
をコンピュータに実行させることを特徴とする暗号プログラム。
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012049275A JP5680007B2 (ja) | 2012-03-06 | 2012-03-06 | 暗号システム、暗号方法及び暗号プログラム |
ES13757621.1T ES2604817T3 (es) | 2012-03-06 | 2013-03-01 | Sistema de cifrado, método de cifrado y programa de cifrado |
PCT/JP2013/055661 WO2013133158A1 (ja) | 2012-03-06 | 2013-03-01 | 暗号システム、暗号方法及び暗号プログラム |
US14/376,147 US9407438B2 (en) | 2012-03-06 | 2013-03-01 | Cryptographic system, cryptographic method, and cryptographic program |
CN201380012925.1A CN104160437B (zh) | 2012-03-06 | 2013-03-01 | 密码系统以及密码方法 |
EP13757621.1A EP2824652B1 (en) | 2012-03-06 | 2013-03-01 | Cipher system, cipher method, and cipher program |
KR1020147026078A KR101588992B1 (ko) | 2012-03-06 | 2013-03-01 | 암호 시스템, 암호 방법 및 암호 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012049275A JP5680007B2 (ja) | 2012-03-06 | 2012-03-06 | 暗号システム、暗号方法及び暗号プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013186181A true JP2013186181A (ja) | 2013-09-19 |
JP5680007B2 JP5680007B2 (ja) | 2015-03-04 |
Family
ID=49116638
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012049275A Active JP5680007B2 (ja) | 2012-03-06 | 2012-03-06 | 暗号システム、暗号方法及び暗号プログラム |
Country Status (7)
Country | Link |
---|---|
US (1) | US9407438B2 (ja) |
EP (1) | EP2824652B1 (ja) |
JP (1) | JP5680007B2 (ja) |
KR (1) | KR101588992B1 (ja) |
CN (1) | CN104160437B (ja) |
ES (1) | ES2604817T3 (ja) |
WO (1) | WO2013133158A1 (ja) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10050782B2 (en) | 2014-12-05 | 2018-08-14 | Mitsubishi Electric Corporation | Decryption condition addition device, cryptographic system, and computer readable medium |
US10965459B2 (en) | 2015-03-13 | 2021-03-30 | Fornetix Llc | Server-client key escrow for applied key management system and process |
US10931653B2 (en) * | 2016-02-26 | 2021-02-23 | Fornetix Llc | System and method for hierarchy manipulation in an encryption key management system |
US10333695B2 (en) * | 2016-11-10 | 2019-06-25 | Microsoft Technology Licensing, Llc | Rational number arithmetic in homomorphic encryption |
US11290252B2 (en) | 2017-01-20 | 2022-03-29 | Enveil, Inc. | Compression and homomorphic encryption in secure query and analytics |
US11507683B2 (en) | 2017-01-20 | 2022-11-22 | Enveil, Inc. | Query processing with adaptive risk decisioning |
US11777729B2 (en) | 2017-01-20 | 2023-10-03 | Enveil, Inc. | Secure analytics using term generation and homomorphic encryption |
WO2018136801A1 (en) | 2017-01-20 | 2018-07-26 | Enveil, Inc. | End-to-end secure operations using a query matrix |
US11196541B2 (en) | 2017-01-20 | 2021-12-07 | Enveil, Inc. | Secure machine learning analytics using homomorphic encryption |
US20180212753A1 (en) | 2017-01-20 | 2018-07-26 | Enveil, Inc. | End-To-End Secure Operations Using a Query Vector |
US10205713B2 (en) * | 2017-04-05 | 2019-02-12 | Fujitsu Limited | Private and mutually authenticated key exchange |
US10902133B2 (en) | 2018-10-25 | 2021-01-26 | Enveil, Inc. | Computational operations in enclave computing environments |
US10817262B2 (en) | 2018-11-08 | 2020-10-27 | Enveil, Inc. | Reduced and pipelined hardware architecture for Montgomery Modular Multiplication |
JP7087965B2 (ja) * | 2018-11-29 | 2022-06-21 | 日本電信電話株式会社 | 暗号システム、暗号化装置、復号装置、暗号化方法、復号方法及びプログラム |
US11601258B2 (en) | 2020-10-08 | 2023-03-07 | Enveil, Inc. | Selector derived encryption systems and methods |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011083678A1 (ja) * | 2010-01-08 | 2011-07-14 | 三菱電機株式会社 | 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム |
WO2011086687A1 (ja) * | 2010-01-15 | 2011-07-21 | 三菱電機株式会社 | 秘匿検索システム及び暗号処理システム |
WO2011135895A1 (ja) * | 2010-04-27 | 2011-11-03 | 三菱電機株式会社 | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置 |
WO2012011575A1 (ja) * | 2010-07-23 | 2012-01-26 | 日本電信電話株式会社 | 暗号システム、暗号通信方法、暗号化装置、鍵生成装置、復号装置、コンテンツサーバ装置、プログラム、記憶媒体 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7634085B1 (en) | 2005-03-25 | 2009-12-15 | Voltage Security, Inc. | Identity-based-encryption system with partial attribute matching |
US20090080658A1 (en) | 2007-07-13 | 2009-03-26 | Brent Waters | Method and apparatus for encrypting data for fine-grained access control |
JP5349261B2 (ja) | 2009-04-23 | 2013-11-20 | 三菱電機株式会社 | 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム |
ES2512115T3 (es) * | 2009-04-24 | 2014-10-23 | Nippon Telegraph And Telephone Corporation | Dispositivo de generación de información, método de generación de información, y programa de generación de información y medio de almacenamiento del mismo |
-
2012
- 2012-03-06 JP JP2012049275A patent/JP5680007B2/ja active Active
-
2013
- 2013-03-01 ES ES13757621.1T patent/ES2604817T3/es active Active
- 2013-03-01 EP EP13757621.1A patent/EP2824652B1/en not_active Not-in-force
- 2013-03-01 US US14/376,147 patent/US9407438B2/en active Active
- 2013-03-01 CN CN201380012925.1A patent/CN104160437B/zh not_active Expired - Fee Related
- 2013-03-01 WO PCT/JP2013/055661 patent/WO2013133158A1/ja active Application Filing
- 2013-03-01 KR KR1020147026078A patent/KR101588992B1/ko active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011083678A1 (ja) * | 2010-01-08 | 2011-07-14 | 三菱電機株式会社 | 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム |
WO2011086687A1 (ja) * | 2010-01-15 | 2011-07-21 | 三菱電機株式会社 | 秘匿検索システム及び暗号処理システム |
WO2011135895A1 (ja) * | 2010-04-27 | 2011-11-03 | 三菱電機株式会社 | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置 |
WO2012011575A1 (ja) * | 2010-07-23 | 2012-01-26 | 日本電信電話株式会社 | 暗号システム、暗号通信方法、暗号化装置、鍵生成装置、復号装置、コンテンツサーバ装置、プログラム、記憶媒体 |
Also Published As
Publication number | Publication date |
---|---|
WO2013133158A1 (ja) | 2013-09-12 |
EP2824652A1 (en) | 2015-01-14 |
EP2824652A4 (en) | 2015-12-02 |
EP2824652B1 (en) | 2016-10-19 |
JP5680007B2 (ja) | 2015-03-04 |
US9407438B2 (en) | 2016-08-02 |
CN104160437A (zh) | 2014-11-19 |
ES2604817T3 (es) | 2017-03-09 |
KR20140138176A (ko) | 2014-12-03 |
CN104160437B (zh) | 2016-06-08 |
KR101588992B1 (ko) | 2016-01-26 |
US20150010147A1 (en) | 2015-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5680007B2 (ja) | 暗号システム、暗号方法及び暗号プログラム | |
JP5424974B2 (ja) | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置 | |
JP5618881B2 (ja) | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム | |
JP5693206B2 (ja) | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム | |
JP5905128B2 (ja) | 暗号システム、再暗号化装置及び暗号方法 | |
JP5606344B2 (ja) | 署名処理システム、鍵生成装置、署名装置、検証装置、署名処理方法及び署名処理プログラム | |
JP5921410B2 (ja) | 暗号システム | |
JP5334873B2 (ja) | 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム | |
JP5606351B2 (ja) | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、鍵委譲装置、暗号処理方法及び暗号処理プログラム | |
JP6022073B2 (ja) | 暗号システム、再暗号化鍵生成装置及び再暗号化装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140114 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140819 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140926 |
|
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: 20141209 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150106 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5680007 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 |