JP5618881B2 - 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム - Google Patents
暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム Download PDFInfo
- Publication number
- JP5618881B2 JP5618881B2 JP2011067471A JP2011067471A JP5618881B2 JP 5618881 B2 JP5618881 B2 JP 5618881B2 JP 2011067471 A JP2011067471 A JP 2011067471A JP 2011067471 A JP2011067471 A JP 2011067471A JP 5618881 B2 JP5618881 B2 JP 5618881B2
- Authority
- JP
- Japan
- Prior art keywords
- integer
- key
- vector
- encryption
- decryption
- 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.)
- Active
Links
Images
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- 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
-
- 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/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
- H04L9/0847—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving identity based encryption [IBE] schemes
-
- 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/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
- H04L9/3073—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/061—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
Description
非特許文献12,13,25,26,28には、多管理者属性ベース暗号(Multi−Authority Attribute−Based Encryption)についての記載がある。なお、属性ベース暗号は、関数型暗号の1つのクラスである。
非特許文献25には、分散多管理者属性ベース暗号についての記載がある。
この発明は、システム全体のセキュリティが1つの機関に依存することのない分散多管理者関数型暗号を提供することを目的とする。
d個(dは1以上の整数)の鍵生成装置と、暗号化装置と、復号装置とを備え、t=1,...,dの少なくとも1つ以上の整数tについての基底Btと基底B* tとを用いて暗号処理を実行する暗号処理システムであり、
前記d個の鍵生成装置の各鍵生成装置は、
t=1,...,dのうち鍵生成装置毎に予め定められた整数tについての属性情報x→ t:=(xt,i)(i=1,...,nt,ntは1以上の整数)を入力する第1情報入力部と、
前記整数tと、前記第1情報入力部が入力した属性情報x→ tと、所定の値δと、基底B* tの基底ベクトルb* t,i(i=1,...,2nt)とに基づき、数1に示すベクトルを含む鍵要素k* tを生成する鍵要素生成部と、
前記鍵要素生成部が生成した鍵要素k* tと、前記属性情報x→ tとを含む復号鍵uskを前記復号装置へ送信する復号鍵送信部と
を備え、
前記暗号化装置は、
i=1,...,L(Lは1以上の整数)の各整数iについての変数ρ(i)であって、識別情報t(t=1,...,dのいずれかの整数)と、属性情報v→ i:=(vi,i’)(i’=1,...,nt)との肯定形の組(t,v→ i)又は否定形の組¬(t,v→ i)のいずれかである変数ρ(i)と、L行r列(rは1以上の整数)の所定の行列Mとを入力する第2情報入力部と、
r個の要素を有するベクトルf→と、前記第2情報入力部が入力した行列Mとに基づき列ベクトルs→T:=(s1,...,sL)T:=M・f→Tを生成するとともに、s0:=h→・f→Tとして、s0=h→・(f→’)Tであるr個の要素を有するベクトルf→’と、前記行列Mとに基づき列ベクトル(s→’)T:=(s1’,...,sL’)T:=M・(f→’)Tを生成するベクトル生成部と、
前記ベクトル生成部が生成した列ベクトルs→T及び列ベクトル(s→’)Tと、i=1,...,Lの各整数iについての所定の値θi,θi’とに基づき、i=1,...,Lの各整数iについて、変数ρ(i)が肯定形の組(t,v→ i)である場合には、その組の識別情報tが示す基底Btの基底ベクトルbt,i’(i’=1,...,2nt)を用いて、数2に示すベクトルを含む暗号要素ciを生成し、変数ρ(i)が否定形の組¬(t,v→ i)である場合には、その組の識別情報tが示す基底ベクトルbt,i(i=1,...,2nt)を用いて、数3に示すベクトルを含む暗号要素ciを生成する暗号要素ci生成部と、
前記暗号要素ci生成部が生成したi=1,...,Lの各整数iについての暗号要素ciと、前記変数ρ(i)と、前記行列Mとを含む暗号化データctSを前記復号装置へ送信する暗号化データ送信部と
を備え、
前記復号装置は、
前記d個の鍵生成装置のうち、少なくとも1つ以上の鍵生成装置の前記復号鍵送信部が送信した復号鍵uskを受信する復号鍵受信部と、
前記暗号化データ送信部が送信した暗号化データctSを受信するデータ受信部と、
前記復号鍵受信部が受信した復号鍵uskに含まれる属性情報xt →と、前記データ受信部が受信した暗号化データctSに含まれる変数ρ(i)とに基づき、i=1,...,Lの各整数iのうち、変数ρ(i)が肯定形の組(t,v→ i)であり、かつ、その組の識別情報tが示すx→ tを含む復号鍵uskを前記復号鍵受信部が受信しており、かつ、その組のv→ iと、その組の識別情報tが示す属性情報x→ tとの内積が0となるiと、変数ρ(i)が否定形の組¬(t,v→ i)であり、かつ、その組の識別情報tが示すx→ tを含む復号鍵uskを前記復号鍵受信部が受信しており、かつ、その組のv→ iと、その組の識別情報tが示す属性情報x→ tとの内積が0とならないiとの集合Iを特定するとともに、特定した集合Iに含まれるiについて、前記暗号化データctSに含まれる行列Mのi行目の要素であるMiに基づき、αiMiを合計した場合に所定のベクトルh→となる補完係数αiを計算する補完係数計算部と、
前記補完係数計算部が計算した集合Iと補完係数αiとに基づき、前記暗号化データctSに含まれる暗号要素ciと、前記復号鍵uskに含まれる鍵要素k* tとについて、数4に示すペアリング演算を行い、前記所定の情報Kを計算するペアリング演算部と
を備えることを特徴とする。
以下の説明において、処理装置は後述するCPU911等である。記憶装置は後述するROM913、RAM914、磁気ディスク920等である。通信装置は後述する通信ボード915等である。入力装置は後述するキーボード902、通信ボード915等である。つまり、処理装置、記憶装置、通信装置、入力装置はハードウェアである。
Aがランダムな変数または分布であるとき、数101は、Aの分布に従いAからyをランダムに選択することを表す。つまり、数101において、yは乱数である。
数110に示す基底Bと基底B*とに対して、数111である。
また、ベクトルを意味する“→”が下付き文字又は上付き文字に付されている場合、この“→”は下付き文字又は上付き文字に上付きで付されていることを意味する。
また、復号鍵uskgid,(t,xt)におけるxtは、xtのことである。
この実施の形態では、「分散多管理者関数型暗号」を実現する基礎となる概念を説明した上で、分散多管理者関数型暗号の構成について説明する。
第1に、分散多管理者関数型暗号について簡単に説明する。まず、関数型暗号について説明する。次に、分散多管理者について説明する。
第2に、関数型暗号を実現するための空間である「双対ペアリングベクトル空間(Dual Pairing Vector Spaces,DPVS)」という豊かな数学的構造を有する空間を説明する。
第3に、関数型暗号を実現するための概念を説明する。ここでは、「スパンプログラム(Span Program)」、「属性ベクトルの内積とアクセスストラクチャ」、「秘密分散(秘密共有)」について説明する。
第4に、この実施の形態に係る「分散多管理者関数型暗号」を説明する。まず、「分散多管理者関数型暗号」の基本構成について説明する。次に、この「分散多管理者関数型暗号」を実現する「暗号処理システム10」の基本構成について説明する。そして、この実施の形態に係る「分散多管理者関数型暗号」及び「暗号処理システム10」について詳細に説明する。
<第1−1.関数型暗号>
関数型暗号は、公開鍵暗号の概念を発展させ、きめ細かくした暗号である。関数型暗号は、IDベース暗号(Identity−Based Encryption,IBE)(非特許文献3,4,6,14,17参照)、秘匿ベクトル暗号(Hidden−Vector Encryption)(非特許文献9参照)、述語暗号(Predicate Encryption)(非特許文献22)、属性ベース暗号(Attribute−Based Encryption,ABE)(特許文献2,20,32−34)を特別な場合として包含する暗号方式である。
一般的なアクセスストラクチャに対するCP(Ciphertext−Policy)属性ベース暗号の場合、パラメータψはユーザの属性の組(x1,...,xi)であり、関係R(・,γ)は一般的なアクセスストラクチャである。より正確には、関係R(・,γ)は(M^,(v1,...,vi))によって表される。そして、属性の要素の要素毎の等号関係、つまり{xt=vt}t∈{1,...,i}が(モノトーン)スパンプログラムM^に入力され、関係R(ψ,γ)は(T(x1=v1),...,T(xi=vi))の新の値のベクトルがスパンプログラムM^に受理された場合に限り成立する。ここで、ψが真ならT(ψ):=1であり、ψが偽ならT(ψ):=0である。例えば、x=vならT(x=v):=1であり、x≠vならT(x=v):=0である。
まず、「多管理者」について説明する。多管理者とは、ユーザの復号鍵を生成する管理者が複数存在するという意味である。
上述したように、通常の関数型暗号では、システム全体のセキュリティが1つの機関(管理者)に依存していた。しかし、多管理者とすることで、一部の管理者のセキュリティが破られたり、一部の管理者の秘密鍵(マスター鍵)が漏洩した場合であっても、システムの一部だけが機能しなくなるだけであり、他の部分については正常に機能する状態とすることができる。
図1では、役所が、住所、電話番号、年齢等の属性について管理する。また、警察が、運転免許の種別等の属性について管理する。また、会社Aが、会社Aにおける役職、会社Aにおける所属等の属性について管理する。そして、役所が管理する属性に関連付けられた復号鍵1は役所が発行し、警察が管理する属性に関連付けられた復号鍵2は警察が発行し、会社Aが管理する属性に関連付けられた復号鍵3は会社Aが発行する。
暗号文を復号する復号者は、役所、警察、会社A等の各管理者が発行した復号鍵1,2,3を合わせた復号鍵を用い、暗号文を復号する。つまり、復号者から見た場合、各管理者から発行された復号鍵を合わせたものが、自分に発行された1つの復号鍵となる。
例えば、会社Aのマスター鍵が漏洩した場合、暗号処理システムは、会社Aの属性に関しては機能しなくなるが、他の管理者が管理する属性に関しては機能する。つまり、会社Aが管理する属性については、指定した属性以外の属性のユーザによって復号されてしまう虞があるが、他の属性については、指定した属性のユーザによってのみ復号可能である。
例えば、中央管理者がいる場合、分散とは言えない。中央管理者とは、他の管理者よりも上位の管理者である。中央管理者のセキュリティが破られた場合、全ての管理者のセキュリティが破られてしまう。
まず、対称双線形ペアリング群(Symmetric Bilinear Pairing Groups)について説明する。
対称双線形ペアリング群(q,G,GT,g,e)は、素数qと、位数qの巡回加法群Gと、位数qの巡回乗法群GTと、g≠0∈Gと、多項式時間で計算可能な非退化双線形ペアリング(Nondegenerate Bilinear Pairing)e:G×G→GTとの組である。非退化双線形ペアリングは、e(sg,tg)=e(g,g)stであり、e(g,g)≠1である。
以下の説明において、数113を、1λを入力として、セキュリティパラメータをλとする双線形ペアリング群のパラメータparamG:=(q,G,GT,g,e)の値を出力するアルゴリズムとする。
双対ペアリングベクトル空間(q,V,GT,A,e)は、対称双線形ペアリング群(paramG:=(q,G,GT,g,e))の直積によって構成することができる。双対ペアリングベクトル空間(q,V,GT,A,e)は、素数q、数114に示すFq上のN次元ベクトル空間V、位数qの巡回群GT、空間Vの標準基底A:=(a1,...,aN)の組であり、以下の演算(1)(2)を有する。ここで、aiは、数115に示す通りである。
空間Vにおけるペアリングは、数116によって定義される。
<第3−1.スパンプログラム>
図2は、行列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}である。
図3は、行列Mδの説明図である。なお、図3では、n=7,L=6,r=5としている。つまり、変数の集合は、{p1,...,p7}であり、行列Mは(6行×5列)の行列である。また、図3において、ラベルρは、ρ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δである。
つまり、図3では、写像γ(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δに含まれるか否かが決定される。
例えば、図3の例であれば、行列Mの1,2,4行目からなる行列Mδの各行を線形結合して1→が得られる場合に限り、スパンプログラムM^は入力列δを受理する。つまり、α1(M1)+α2(M2)+α4(M4)=1→となるα1,α2,α4が存在する場合には、スパンプログラムM^は入力列δを受理する。
詳しくは後述するが、スパンプログラムがモノトーンではなく、ノンモノトーンであることにより、スパンプログラムを利用して構成する関数型暗号方式の利用範囲が広がる。
ここでは、属性ベクトルの内積を用いて上述した写像γ(j)を計算する。つまり、属性ベクトルの内積を用いて、行列Mのどの行を行列Mδに含めるかを決定する。
つまり、アクセスストラクチャS:=(M,ρ)であり、ρ:{1,...,L}→{(t,v→),(t’,v’→),...,¬(t,v→),¬(t’,v’→),...}である。
アクセスストラクチャSにΓが与えられた場合、スパンプログラムM^:=(M,ρ)に対する写像γ:{1,...,L}→{0,1}は、以下のように定義される。i=1,...,Lの各整数iについて、[ρ(i)=(t,v→ i)]∧[(t,x→ t)∈Γ]∧[v→ i・x→ t=0]、又は、[ρ(i)=¬(t,v→ i)]∧[(t,x→ t)∈Γ]∧[v→ i・x→ t≠0]である場合、γ(j)=1であり、他の場合、γ(j)=0とする。
つまり、属性ベクトルv→とx→との内積に基づき、写像γが計算される。そして、上述したように、写像γにより、行列Mのどの行を行列Mδに含めるかが決定される。すなわち、属性ベクトルv→とx→との内積により、行列Mのどの行を行列Mδに含めるかが決定され、1→∈span<(Mi)γ(i)=1>である場合に限り、アクセスストラクチャS:=(M,ρ)はΓを受理する。
アクセスストラクチャS:=(M,ρ)に対する秘密分散方式について説明する。
なお、秘密分散方式とは、秘密情報を分散させ、意味のない分散情報にすることである。例えば、秘密情報sを10個に分散させ、10個の分散情報を生成する。ここで、10個の分散情報それぞれは、秘密情報sの情報を有していない。したがって、ある1個の分散情報を手に入れても秘密情報sに関して何ら情報を得ることはできない。一方、10個の分散情報を全て手に入れれば、秘密情報sを復元できる。
また、10個の分散情報を全て手に入れなくても、一部だけ(例えば、8個)手に入れれば秘密情報sを復元できる秘密分散方式もある。このように、10個の分散情報のうち8個で秘密情報sを復元できる場合を、8−out−of−10と呼ぶ。つまり、n個の分散情報のうちt個で秘密情報sを復元できる場合を、t−out−of−nと呼ぶ。このtを閾値と呼ぶ。
また、d1,...,d10の10個の分散情報を生成した場合に、d1,...,d8までの8個の分散情報であれば秘密情報sを復元できるが、d3,...,d10までの8個の分散情報であれば秘密情報sを復元できないというような秘密分散方式もある。つまり、手に入れた分散情報の数だけでなく、分散情報の組合せに応じて秘密情報sを復元できるか否かを制御する秘密分散方式もある。
行列Mを(L行×r列)の行列とする。f→Tを数120に示す列ベクトルとする。
これは、図3の例で、α1(M1)+α2(M2)+α4(M4)=1→となるα1,α2,α4が存在する場合には、スパンプログラムM^は入力列δを受理すると説明したことからも明らかである。つまり、α1(M1)+α2(M2)+α4(M4)=1→となるα1,α2,α4が存在する場合には、スパンプログラムM^が入力列δを受理するのであれば、α1(M1)+α2(M2)+α4(M4)=1→となるα1,α2,α4が存在する。
そして、数123である。
例えば、属性ベース暗号方式は、この実施の形態関数型暗号方式におけるアクセスストラクチャにおいて、内積述語の設計をある条件に限定した場合に相当する。つまり、この実施の形態に係る関数型暗号方式におけるアクセスストラクチャに比べ、属性ベース暗号方式におけるアクセスストラクチャは、内積述語における属性情報x及び属性情報v(述語情報)の設計の自由度がない分、アクセス制御の設計の自由度が低い。なお、具体的には、属性ベース暗号方式は、属性情報{x→ t}t∈{1,...,d}と{v→ t}t∈{1,...,d}とを、等号関係に対する2次元ベクトル、例えばx→ t:=(1,xt)とv→ t:=(vt,−1)とに限定した場合に相当する。
具体的には、ノンモノトーンスパンプログラムには、否定形のリテラル(¬p)を含むため、否定形の条件を設定できる。例えば、第1会社には、A部とB部とC部とD部との4つの部署があったとする。ここで、第1会社のB部以外の部署の属するユーザにのみアクセス可能(復号可能)というアクセス制御をしたいとする。この場合に、否定形の条件の設定ができないとすると、「第1会社のA部とC部とD部とのいずれかに属すること」という条件を設定する必要がある。一方、否定形の条件の設定ができるとすると、「第1会社の社員であって、B部以外に属すること」という条件を設定することができる。つまり、否定形の条件が設定できることで、自然な条件設定が可能となる。なお、ここでは部署の数が少ないが、部署の数が多い場合等は非常に有効であることが分かる。
<第4−1.分散多管理者関数型暗号の基本構成>
分散多管理者関数型暗号の構成を簡単に説明する。
分散多管理者関数型暗号は、GSetup、ASetup、AttrGen、Enc、Decの5つのアルゴリズムを備える。
(GSetup)
GSetupアルゴリズムは、セキュリティパラメータλを入力として、グローバル公開パラメータgparamを出力する確率的アルゴリズムである。GSetupアルゴリズムは、ある1つの機関により実行される。グローバル公開パラメータgparamは公開される。
(ASetup)
ASetupアルゴリズムは、グローバル公開パラメータgparamと、管理者の識別情報tと、属性のフォーマットn→とを入力として、管理者公開鍵apktと、管理者秘密鍵asktとを出力する確率的アルゴリズムである。ASetupアルゴリズムは、1≦t≦dの少なくとも1つのtを識別情報として持つ管理者tによって実行される。管理者公開鍵apktは公開され、管理者秘密鍵asktは管理者tによって保持される。
(AttrGen)
AttrGenアルゴリズムは、グローバル公開パラメータgparamと、管理者の識別情報tと、管理者秘密鍵asktと、ユーザの識別情報gidと、属性x→ t:=(xt,i)(i=1,...,nt)∈Fqとを入力として、復号鍵uskgid,(t,xt)を出力する確率的アルゴリズムである。AttrGenアルゴリズムは、識別情報gidが示すユーザに属性x→ tに関連する復号鍵を管理者tが生成する場合に、管理者tによって実行される。管理者tは復号鍵uskgid,(t,xt)を識別情報gidが示すユーザに与える。
(Enc)
Encアルゴリズムは、グローバル公開パラメータgparamと、管理者公開鍵apktと、メッセージm∈GTと、アクセスストラクチャSとを入力として、暗号化データctSを出力する確率的アルゴリズムである。Encアルゴリズムは、暗号化データctSを生成するユーザによって実行される。
(Dec)
Decアルゴリズムは、グローバル公開パラメータgparamと、管理者公開鍵apktと、復号鍵uskgid,(t,xt)と、暗号化データctSとを入力として、メッセージm、又は、識別情報⊥を出力するアルゴリズムである。Decアルゴリズムは、暗号化データctSを復号するユーザによって実行される。
上述した分散多管理者関数型暗号のアルゴリズムを実行する暗号処理システム10について説明する。
図6は、分散多管理者関数型暗号を実行する暗号処理システム10の構成図である。
いずれか(1つ)の鍵生成装置100は、セキュリティパラメータλを入力としてGSetupアルゴリズムを実行して、グローバル公開パラメータgparamを生成する。そして、その鍵生成装置100は、生成したグローバル公開パラメータgparamを公開する。
各鍵生成装置100は、グローバル公開パラメータgparamと、その鍵生成装置100に割り当てられた識別情報tと、属性のフォーマットn→とを入力としてASetupアルゴリズムを実行して、管理者公開鍵apktと、管理者秘密鍵asktとを生成する。そして、各鍵生成装置100は、グローバル公開パラメータgparamと、その鍵生成装置100に割り当てられた識別情報tと、管理者秘密鍵asktと、ユーザの識別情報gidと、属性xt:=(xt,i)(i=1,...,nt)∈Fqとを入力としてAttrGenアルゴリズムを実行して、復号鍵uskgid,(t,xt)を生成して復号装置300へ秘密裡に配布する。
暗号化装置200は、グローバル公開パラメータgparamと、管理者公開鍵apktと、メッセージm∈GTと、アクセスストラクチャSとを入力としてEncアルゴリズムを実行して、暗号化データctSを生成する。暗号化装置200は、生成した暗号化データctSを復号装置300へ送信する。
復号装置300は、グローバル公開パラメータgparamと、管理者公開鍵apktと、復号鍵uskgid,(t,xt)と、暗号化データctSとを入力としてDecアルゴリズムを実行して、メッセージm、又は、識別情報⊥を出力する。
図7から図14に基づき、実施の形態1に係る分散多管理者関数型暗号、及び、分散多管理者関数型暗号を実行する暗号処理システム10の機能と動作とについて説明する。
図7は、鍵生成装置100の機能を示す機能ブロック図である。図8は、暗号化装置200の機能を示す機能ブロック図である。図9は、復号装置300の機能を示す機能ブロック図である。
図10から図12は、鍵生成装置100の動作を示すフローチャートである。なお、図10はGSetupアルゴリズムの処理を示すフローチャートであり、図11はASetupアルゴリズムの処理を示すフローチャートであり、図12はAttrGenアルゴリズムの処理を示すフローチャートである。図13は、暗号化装置200の動作を示すフローチャートであり、Encアルゴリズムの処理を示すフローチャートである。図14は、復号装置300の動作を示すフローチャートであり、Decアルゴリズムの処理を示すフローチャートである。
図7に示すように、鍵生成装置100は、マスター鍵生成部110、マスター鍵記憶部120、情報入力部130(第1情報入力部)、復号鍵生成部140、鍵配布部150(復号鍵送信部)を備える。
また、マスター鍵生成部110は、グローバルパラメータ生成部111、管理者秘密鍵生成部112を備える。復号鍵生成部140は、乱数生成部141、鍵要素生成部142を備える。
(S101:セキュリティパラメータ入力ステップ)
グローバルパラメータ生成部111は、入力装置により、セキュリティパラメータλ(1λ)を入力する。
グローバルパラメータ生成部111は、処理装置により、S101で入力したセキュリティパラメータλ(1λ)を入力としてアルゴリズムGbpgを実行して、ランダムに双線形ペアリング群のパラメータparamG:=(q,G,GT,g,e)の値を生成する。
ハッシュ関数Hを、数124に示すハッシュ関数とする。
マスター鍵記憶部120は、(S102)で生成したparamGと、(S103)で設定したハッシュ関数Hと、要素G0,G1と、値gTとを、グローバルパラメータgparamとして記憶装置に記憶する。
なお、グローバルパラメータgparamは、例えば、ネットワークを介して公開され、他の鍵生成装置100や暗号化装置200や復号装置300が取得可能な状態にされる。
(S201:情報入力ステップ)
情報入力部130は、入力装置により、自己(その鍵生成装置100)に割り当てられた識別情報tを入力する。なお、各鍵生成装置100には、それぞれ異なる識別情報tが割り当てられている。
また、情報入力部130は、例えば、通信装置によりネットワークを介して、グローバルパラメータgparamを取得する。なお、自己がグローバルパラメータgparamを生成した鍵生成装置100である場合には、グローバルパラメータgparamをマスター鍵記憶部120から読み出せばよい。
管理者秘密鍵生成部112は、処理装置により、セキュリティパラメータλ(1λ)と、Nt=2nt+ut+wt+ztと、paramG:=(q,G,GT,g,e)の値とを入力としてアルゴリズムGdpvsを実行して、双対ペアリングベクトル空間のパラメータparamVt:=(q,Vt,GT,At,e)の値を生成する。
なお、nt,ut,wt,ztは、1以上の整数である。
管理者秘密鍵生成部112は、処理装置により、Ntと、Fqとを入力として、線形変換Xt:=(χt,i,j)i,jを数128に示すようにランダムに生成する。
マスター鍵記憶部120は、(S202)で生成したパラメータparamVtと、(S206)で生成した部分基底B^tとを管理者公開鍵apktとして記憶装置に記憶する。また、マスター鍵記憶部120は、(S204)で生成した線形変換Xtを管理者秘密鍵asktとして記憶装置に記憶する。
なお、管理者公開鍵apktは、例えば、ネットワークを介して公開され、暗号化装置200や復号装置300が取得可能な状態にされる。
(S301:情報入力ステップ)
情報入力部130は、入力装置により、自己(その鍵生成装置100)に割り当てられた識別情報tと、復号鍵を発行するユーザの識別情報gidと、数132に示す属性情報x→ t:=(xt,i)(i=1,...,nt)とを入力する。
また、情報入力部130は、例えば、通信装置によりネットワークを介して、グローバルパラメータgparamを取得する。なお、自己がグローバルパラメータgparamを生成した鍵生成装置100である場合には、グローバルパラメータgparamをマスター鍵記憶部120から読み出せばよい。
また、情報入力部130は、マスター鍵記憶部120から管理者秘密鍵asktを読み出す。
数134であるとする。
基底ベクトル1,...,ntの係数として(δ+1)xt,1,...,(δ+1)xt,nt(ここで、ntはntのことである)が設定される。基底ベクトルnt+1,...,2ntの係数として−δxt,1,...,−δxt,nt(ここで、ntはntのことである)が設定される。基底ベクトル2nt+1,...,2nt+utの係数として0が設定される。基底ベクトル2nt+ut+1,...,2nt+ut+wtの係数として乱数φt、1,...,φt,wt(ここで、wtはwtのことである)が設定される。基底ベクトル2nt+ut+wt+1,...,2nt+ut+wt+ztの係数として0が設定される。
鍵配布部150は、ユーザの識別情報gidと、識別情報t及び属性情報x→ tと、鍵要素k* tとを要素とする復号鍵uskgid,(t,xt)を、例えば通信装置によりネットワークを介して秘密裡に復号装置300へ配布する。もちろん、復号鍵uskgid,(t,xt)は、他の方法により復号装置300へ配布されてもよい。
図8に示すように、暗号化装置200は、公開鍵取得部210、情報入力部220(第2情報入力部)、暗号化データ生成部230、暗号化データ送信部240を備える。
また、情報入力部220は、属性情報入力部221、メッセージ入力部222を備える。また、暗号化データ生成部230は、乱数生成部231、fベクトル生成部232、sベクトル生成部233、暗号要素ci生成部234、暗号要素cd+1生成部235を備える。
(S401:公開鍵取得ステップ)
公開鍵取得部210は、例えば、通信装置によりネットワークを介して、各鍵生成装置100が生成した管理者公開鍵apktを取得する。また、公開鍵取得部210は、鍵生成装置100が生成したグローバルパラメータgparamを取得する。
属性情報入力部221は、入力装置により、アクセスストラクチャS:=(M,ρ)を入力する。なお、行列Mは、L行×r列の行列である。L,rは、1以上の整数である。
また、メッセージ入力部222は、入力装置により、暗号化するメッセージmを入力する。
なお、アクセスストラクチャSの設定については、実現したいシステムの条件に応じて設定されるものである。
sベクトル生成部233は、処理装置により、(S402)で入力したアクセスストラクチャSの(L行×r列)の行列Mと、(S403)で生成したr個の要素を有するベクトルf→とに基づき、ベクトルs→Tを数138に示すように生成する。
sベクトル生成部233は、処理装置により、(S402)で入力したアクセスストラクチャSの(L行×r列)の行列Mと、r個の要素を有するベクトルf→’とに基づき、(S405)で生成したベクトル(s→’)Tを数141に示すように生成する。
乱数生成部231は、処理装置により、i=1,...,Lの各整数iについて乱数η→ i,θi,θ’iを数142に示すように生成する。
暗号要素生成部234は、処理装置により、i=1,...,Lの各整数iについて、暗号化データctSの要素である暗号要素ciを数143に示すように生成する。
ρ(i)が肯定形の組(t,v→ i)である場合には、基底ベクトル1の係数としてsi+θivi,1が設定される。基底ベクトル2,...,ntの係数としてθivi,2,...,θivi,nt(ここで、ntはntのことである)が設定される。基底ベクトルnt+1の係数としてsi’+θi’vi,1が設定される。基底ベクトルnt+2,...,2ntの係数としてθi’vi,2,...,θi’vi,nt(ここで、ntはntのことである)が設定される。基底ベクトル2nt+1,...,2nt+ut+wtの係数として0が設定される。基底ベクトル2nt+ut+wt+1,...,2nt+ut+wt+ztの係数としてηi,1,...,ηi,zt(ここで、ztはztのことである)が設定される。
一方、ρ(i)が否定形の組¬(t,v→ i)である場合には、基底ベクトル1,...,ntの係数としてsivi,1,...,sivi,nt(ここで、ntはntのことである)が設定される。基底ベクトルnt+1,...,2ntの係数としてsi’vi,1,...,si’vi,nt(ここで、ntはntのことである)が設定される。基底ベクトル2nt+1,...,2nt+ut+wtの係数として0が設定される。基底ベクトル2nt+ut+wt+1,...,2nt+ut+wt+ztの係数としてηi,1,...,ηi,zt(ここで、ztはztのことである)が設定される。
暗号化データ送信部240は、アクセスストラクチャS:=(M,ρ)と、暗号要素ci(i=1,...,L)と、暗号要素cd+1とを含む暗号化データctSを、例えば通信装置によりネットワークを介して復号装置300へ送信する。もちろん、暗号化データctSは、他の方法により復号装置300へ送信されてもよい。
図9に示すように、復号装置300は、復号鍵受信部310(復号鍵取得部)、データ受信部320(データ取得部)、スパンプログラム計算部330、補完係数計算部340、ペアリング演算部350、メッセージ計算部360を備える。
(S501:復号鍵取得ステップ)
復号鍵受信部310は、例えば、通信装置によりネットワークを介して、鍵生成装置100から配布された復号鍵uskgid,(t,xt)を受信する。また、復号鍵受信部310は、鍵生成装置100が生成した管理者公開鍵apktを受信する。
データ受信部320は、例えば、通信装置によりネットワークを介して、暗号化装置200が送信した暗号化データctSを受信する。
スパンプログラム計算部330は、処理装置により、(S502)で受信した暗号化データctSに含まれるアクセスストラクチャSが、(S501)で取得した復号鍵uskgid,(t,xt)に含まれる属性情報x→ tの集合Γを受理するか否かを判定する。アクセスストラクチャSがΓを受理するか否かの判定方法は、「第3.関数型暗号を実現するための概念」で説明した通りである。
スパンプログラム計算部330は、アクセスストラクチャSがΓを受理する場合(S503で受理)、処理を(S504)へ進める。一方、アクセスストラクチャSがΓを拒絶する場合(S503で拒絶)、暗号化データctSを復号鍵uskgid,(t,xt)で復号できないとして処理を終了する。
ペアリング演算部350は、処理装置により、数147を計算して、セッション鍵K=gT s0(ここで、s0はs0のことである)を生成する。
メッセージ計算部360は、処理装置により、m’=cd+1/Kを計算して、メッセージm’(=m)を生成する。なお、cd+1は数144に示す通りgT s0m(ここで、s0はs0のことである)であり、KはgT s0(ここで、s0はs0のことである)であるから、m’=cd+1/Kを計算すればメッセージmが得られる。
なお、実施の形態1に係る暗号処理システム10は、ノンモノトーン述語を伴う関数型暗号方式を実現する。
この場合、数131に示すASetupアルゴリズムは、数150のように書き換えられる。
また、上記説明では、GSetupアルゴリズムとASetupアルゴリズムとKeyGenアルゴリズムとを鍵生成装置100が実行するとしたが、GSetupアルゴリズムとASetupアルゴリズムとKeyGenアルゴリズムとをそれぞれ異なる装置が実行するとしてもよい。
実施の形態1では、双対ベクトル空間において暗号処理を実現する方法について説明した。この実施の形態では、双対加群において暗号処理を実現する方法について説明する。
言い替えると、ρ(i)=(t,v→ i)又はρ(i)=¬(t,v→ i)である場合に、関数ρ〜を、ρ〜(i)=tである{1,...,L}→{1,..,d}の写像であるとする。この場合、ρ〜が単射であると限定してもよい。なお、ρ(i)は、上述したアクセスストラクチャS:=(M,ρ(i))のρ(i)である。
この場合、Encアルゴリズムにおいて、s0:=1→・f→Tではなく、s0:=h→・f→Tとし、s0:=1→・f→’Tではなく、s0:=h→・f→’Tとすればよい。
図15は、鍵生成装置100、暗号化装置200、復号装置300のハードウェア構成の一例を示す図である。
図15に示すように、鍵生成装置100、暗号化装置200、復号装置300は、プログラムを実行するCPU911(Central・Processing・Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。CPU911は、バス912を介してROM913、RAM914、LCD901(Liquid Crystal Display)、キーボード902(K/B)、通信ボード915、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置920(固定ディスク装置)の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。磁気ディスク装置920は、所定の固定ディスクインタフェースを介して接続される。
ファイル群924には、上記の説明において「グローバルパラメータgparam」、「管理者公開鍵apk」、「管理者秘密鍵ask」、「復号鍵uskgid,(t,xt)」、「暗号化データctS」、「アクセスストラクチャS」、「属性情報」、「メッセージm」等の情報やデータや信号値や変数値やパラメータが、「ファイル」や「データベース」の各項目として記憶される。「ファイル」や「データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのCPU911の動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のCPU911の動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、上記の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。また、「〜装置」として説明するものは、「〜回路」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。さらに、「〜処理」として説明するものは「〜ステップ」であっても構わない。すなわち、「〜部」として説明するものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、ROM913等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラムは、上記で述べた「〜部」としてコンピュータ等を機能させるものである。あるいは、上記で述べた「〜部」の手順や方法をコンピュータ等に実行させるものである。
Claims (8)
- d個(dは1以上の整数)の鍵生成装置と、暗号化装置と、復号装置とを備え、t=1,...,dの少なくとも1つ以上の整数tについての基底Btと基底B* tとを用いて暗号処理を実行する暗号処理システムであり、
前記d個の鍵生成装置の各鍵生成装置は、
t=1,...,dのうち鍵生成装置毎に予め定められた整数tについての属性情報x→ t:=(xt,i)(i=1,...,nt,ntは1以上の整数)を入力する第1情報入力部と、
前記整数tと、前記第1情報入力部が入力した属性情報x→ tと、所定の値δと、基底B* tの基底ベクトルb* t,i(i=1,...,2nt)とに基づき、数1に示すベクトルを含む鍵要素k* tを生成する鍵要素生成部と、
前記鍵要素生成部が生成した鍵要素k* tと、前記属性情報x→ tとを含む復号鍵uskを前記復号装置へ送信する復号鍵送信部と
を備え、
前記暗号化装置は、
i=1,...,L(Lは1以上の整数)の各整数iについての変数ρ(i)であって、識別情報t(t=1,...,dのいずれかの整数)と、属性情報v→ i:=(vi,i’)(i’=1,...,nt)との肯定形の組(t,v→ i)又は否定形の組¬(t,v→ i)のいずれかである変数ρ(i)と、L行r列(rは1以上の整数)の所定の行列Mとを入力する第2情報入力部と、
r個の要素を有するベクトルf→と、前記第2情報入力部が入力した行列Mとに基づき列ベクトルs→T:=(s1,...,sL)T:=M・f→Tを生成するとともに、s0:=h→・f→Tとして、s0=h→・(f→’)Tであるr個の要素を有するベクトルf→’と、前記行列Mとに基づき列ベクトル(s→’)T:=(s1’,...,sL’)T:=M・(f→’)Tを生成するベクトル生成部と、
前記ベクトル生成部が生成した列ベクトルs→T及び列ベクトル(s→’)Tと、i=1,...,Lの各整数iについての所定の値θi,θi’とに基づき、i=1,...,Lの各整数iについて、変数ρ(i)が肯定形の組(t,v→ i)である場合には、その組の識別情報tが示す基底Btの基底ベクトルbt,i’(i’=1,...,2nt)を用いて、数2に示すベクトルを含む暗号要素ciを生成し、変数ρ(i)が否定形の組¬(t,v→ i)である場合には、その組の識別情報tが示す基底ベクトルbt,i(i=1,...,2nt)を用いて、数3に示すベクトルを含む暗号要素ciを生成する暗号要素ci生成部と、
前記暗号要素ci生成部が生成したi=1,...,Lの各整数iについての暗号要素ciと、前記変数ρ(i)と、前記行列Mとを含む暗号化データctSを前記復号装置へ送信する暗号化データ送信部と
を備え、
前記復号装置は、
前記d個の鍵生成装置のうち、少なくとも1つ以上の鍵生成装置の前記復号鍵送信部が送信した復号鍵uskを受信する復号鍵受信部と、
前記暗号化データ送信部が送信した暗号化データctSを受信するデータ受信部と、
前記復号鍵受信部が受信した復号鍵uskに含まれる属性情報x → t と、前記データ受信部が受信した暗号化データctSに含まれる変数ρ(i)とに基づき、i=1,...,Lの各整数iのうち、変数ρ(i)が肯定形の組(t,v→ i)であり、かつ、その組の識別情報tが示すx→ tを含む復号鍵uskを前記復号鍵受信部が受信しており、かつ、その組のv→ iと、その組の識別情報tが示す属性情報x→ tとの内積が0となるiと、変数ρ(i)が否定形の組¬(t,v→ i)であり、かつ、その組の識別情報tが示すx→ tを含む復号鍵uskを前記復号鍵受信部が受信しており、かつ、その組のv→ iと、その組の識別情報tが示す属性情報x→ tとの内積が0とならないiとの集合Iを特定
するとともに、特定した集合Iに含まれるiについて、前記暗号化データctSに含まれる行列Mのi行目の要素であるMiに基づき、αiMiを合計した場合に所定のベクトルh→となる補完係数αiを計算する補完係数計算部と、
前記補完係数計算部が計算した集合Iと補完係数αiとに基づき、前記暗号化データctSに含まれる暗号要素ciと、前記復号鍵uskに含まれる鍵要素k* tとについて、数4に示すペアリング演算を行い、所定の情報Kを計算するペアリング演算部と
を備えることを特徴とする暗号処理システム。
- 前記暗号処理システムは、
t=1,...,dの少なくとも1つ以上の整数tについて、少なくとも基底ベクトルbt,i(i=1,...,2nt,...,2nt+ut,...,2nt+ut+wt,...,2nt+ut+wt+zt)(ut,wt,ztは1以上の整数)を有する基底Btと、少なくとも基底ベクトルb* t,i(i=1,...,2nt,...,2nt+ut,...,2nt+ut+wt,...,2nt+ut+wt+zt)を有する基底B* tとを用いて暗号処理を実行し、
前記鍵生成装置では、
前記鍵要素生成部は、前記整数tについて、前記属性情報x→ tと、前記所定の値δと、i=1,...,wtの各整数iについての乱数φt,iとに基づき、数5に示す鍵要素k* tを生成し、
前記暗号化装置では、
前記暗号要素ci生成部は、前記列ベクトルs→T及び前記列ベクトル(s→’)Tと、i=1,...,Lの各整数iについての前記所定の値θi,θi’と、i=1,...,Lの各整数iとi’=1,...,ztの各整数i’とについての乱数ηi,i’とに基づき、i=1,...,Lの各整数iについて、変数ρ(i)が肯定形の組(t,v→ i)である場合には、数6に示す暗号要素ciを生成し、変数ρ(i)が否定形の組¬(t,v→ i)である場合には、数7に示す暗号要素ciを生成する
ことを特徴とする請求項1に記載の暗号処理システム。
- 前記暗号化装置は、さらに、
所定の整数iについて前記基底Btの基底ベクトルbt,iと前記基底B* tの基底ベクトルb* t,iとについてペアリング演算をして計算される値gTと、前記s0とに基づき、メッセージmを暗号化した数8に示す暗号要素cd+1を生成する暗号要素cd+1生成部
を備え、
前記暗号化データ送信部は、前記暗号要素ciと、前記暗号要素cd+1生成部が生成した暗号要素cd+1とを含む暗号化データctを前記復号装置へ送信し、
前記復号装置は、さらに、
前記ペアリング演算部が計算した所定の情報Kで、前記暗号要素cd+1を除して、前記メッセージmを計算するメッセージ計算部
を備えることを特徴とする請求項1に記載の暗号処理システム。
- t=1,...,d(dは1以上の整数)の少なくとも1つ以上の整数tについての基底Btと基底B* tとを用いて暗号処理を実行する暗号処理システムにおいて、復号鍵uskを生成する鍵生成装置であり、
t=1,...,dのうち予め定められた整数tについての属性情報x→ t:=(xt,i)(i=1,...,nt,ntは1以上の整数)を入力する第1情報入力部と、
前記整数tと、前記第1情報入力部が入力した属性情報x→ tと、所定の値δと、基底B* tの基底ベクトルb* t,i(i=1,...,2nt)とに基づき、数9に示すベクトルを含む鍵要素k* tを生成する鍵要素生成部と、
前記鍵要素生成部が生成した鍵要素k* tと、前記属性情報x→ tとを含む復号鍵uskを復号装置へ送信する復号鍵送信部と
を備えることを特徴とする鍵生成装置。
- t=1,...,d(dは1以上の整数)の少なくとも1つ以上の整数tについての基底Btと基底B* tとを用いて暗号処理を実行する暗号処理システムにおいて、暗号化データctSを生成する暗号化装置であり、
i=1,...,L(Lは1以上の整数)の各整数iについての変数ρ(i)であって、識別情報t(t=1,...,dのいずれかの整数)と、属性情報v→ i:=(vi,i’)(i’=1,...,nt,ntは1以上の整数)との肯定形の組(t,v→ i)又は否定形の組¬(t,v→ i)のいずれかである変数ρ(i)と、L行r列(rは1以上の整数)の所定の行列Mとを入力する第2情報入力部と、
r個の要素を有するベクトルf→と、前記第2情報入力部が入力した行列Mとに基づき列ベクトルs→T:=(s1,...,sL)T:=M・f→Tを生成するとともに、s0:=h→・f→Tとして、s0=h→・(f→’)Tであるr個の要素を有するベクトルf→’と、前記行列Mとに基づき列ベクトル(s→’)T:=(s1’,...,sL’)T:=M・(f→’)Tを生成するベクトル生成部と、
前記ベクトル生成部が生成した列ベクトルs→T及び列ベクトル(s→’)Tと、i=1,...,Lの各整数iについての所定の値θi,θi’とに基づき、i=1,...,Lの各整数iについて、変数ρ(i)が肯定形の組(t,v→ i)である場合には、その組の識別情報tが示す基底Btの基底ベクトルbt,i’(i’=1,...,2nt)を用いて、数10に示すベクトルを含む暗号要素ciを生成し、変数ρ(i)が否定形の組¬(t,v→ i)である場合には、その組の識別情報tが示す基底ベクトルbt,i(i=1,...,2nt)を用いて、数11に示すベクトルを含む暗号要素ciを生成する暗号要素ci生成部と、
前記暗号要素ci生成部が生成したi=1,...,Lの各整数iについての暗号要素ciと、前記変数ρ(i)と、前記行列Mとを含む暗号化データctSを復号装置へ送信する暗号化データ送信部と
を備えることを特徴とする暗号化装置。
- t=1,...,d(dは1以上の整数)の少なくとも1つ以上の整数tについての基底Btと基底B* tとを用いて暗号処理を実行する暗号処理システムにおいて、暗号化データctSを復号鍵uskで復号する復号装置であり、
t=1,...,dのうち少なくとも一部の整数tについて、属性情報x→ t:=(xt,i)(i=1,...,nt,ntは1以上の整数)と、数12に示すベクトルを含むように生成された鍵要素k* tとを含む復号鍵uskを受信する復号鍵受信部と、
i=1,...,L(Lは1以上の整数)の各整数iについての変数ρ(i)であって、識別情報t(t=1,...,dのいずれかの整数)と、属性情報v→ i:=(vi,i’)(i’=1,...,nt)との肯定形の組(t,v→ i)又は否定形の組¬(t,v→ i)のいずれかである変数ρ(i)と、L行r列(rは1以上の整数)の所定の行列Mと、i=1,...,Lの各整数iについて数13に示すベクトルを含むように生成された暗号要素ciとを含む暗号化データctSを受信するデータ受信部と、
前記復号鍵受信部が受信した復号鍵uskに含まれる属性情報x → t と、前記データ受信部が受信した暗号化データctSに含まれる変数ρ(i)とに基づき、i=1,...,Lの各整数iのうち、変数ρ(i)が肯定形の組(t,v→ i)であり、かつ、その組の識別情報tが示すx→ tを含む復号鍵uskを前記復号鍵受信部が受信しており、かつ、その組のv→ iと、その組の識別情報tが示す属性情報x→ tとの内積が0となるiと、変数ρ(i)が否定形の組¬(t,v→ i)であり、かつ、その組の識別情報tが示すx→ tを含む復号鍵uskを前記復号鍵受信部が受信しており、かつ、その組のv→ iと、その組の識別情報tが示す属性情報x→ tとの内積が0とならないiとの集合Iを特定するとともに、特定した集合Iに含まれるiについて、前記暗号化データctSに含まれる行列Mのi行目の要素であるMiに基づき、αiMiを合計した場合に所定のベクトルh→となる補完係数αiを計算する補完係数計算部と、
前記補完係数計算部が計算した集合Iと補完係数αiとに基づき、前記暗号化データctSに含まれる暗号要素ciと、前記復号鍵uskに含まれる鍵要素k* tとについて、数14に示すペアリング演算を行い、所定の情報Kを計算するペアリング演算部と
を備えることを特徴とする復号装置。
- t=1,...,d(dは1以上の整数)の少なくとも1つ以上の整数tについての基底Btと基底B* tとを用いて暗号処理を実行する暗号処理方法であり、
複数の鍵生成装置のうち少なくとも1つ以上の鍵生成装置が、t=1,...,dのうち鍵生成装置毎に予め定められた整数tについての属性情報x→ t:=(xt,i)(i=1,...,nt,ntは1以上の整数)を入力する第1情報入力工程と、
前記1つ以上の鍵生成装置が、前記整数tと、前記第1情報入力工程で入力された属性情報x→ tと、所定の値δと、基底B* tの基底ベクトルb* t,i(i=1,...,2nt)とに基づき、数15に示すベクトルを含む鍵要素k* tを生成する鍵要素生成工
程と、
前記1つ以上の鍵生成装置が、前記鍵要素生成工程で生成された鍵要素k* tと、前記属性情報x→ tとを含む復号鍵uskを復号装置へ送信する復号鍵送信工程と、
暗号化装置が、i=1,...,L(Lは1以上の整数)の各整数iについての変数ρ(i)であって、識別情報t(t=1,...,dのいずれかの整数)と、属性情報v→ i:=(vi,i’)(i’=1,...,nt)との肯定形の組(t,v→ i)又は否定形の組¬(t,v→ i)のいずれかである変数ρ(i)と、L行r列(rは1以上の整数)の所定の行列Mとを入力する第2情報入力工程と、
前記暗号化装置が、r個の要素を有するベクトルf→と、前記第2情報入力工程で入力された行列Mとに基づき列ベクトルs→T:=(s1,...,sL)T:=M・f→Tを生成するとともに、s0:=h→・f→Tとして、s0=h→・(f→’)Tであるr個の要素を有するベクトルf→’と、前記行列Mとに基づき列ベクトル(s→’)T:=(s1’,...,sL’)T:=M・(f→’)Tを生成するベクトル生成工程と、
前記暗号化装置が、前記ベクトル生成工程で生成された列ベクトルs→T及び列ベクトル(s→’)Tと、i=1,...,Lの各整数iについての所定の値θi,θi’とに基づき、i=1,...,Lの各整数iについて、変数ρ(i)が肯定形の組(t,v→ i)である場合には、その組の識別情報tが示す基底Btの基底ベクトルbt,i’(i’=1,...,2nt)を用いて、数16に示すベクトルを含む暗号要素ciを生成し、変数ρ(i)が否定形の組¬(t,v→ i)である場合には、その組の識別情報tが示す基底ベクトルbt,i(i=1,...,2nt)を用いて、数17に示すベクトルを含む暗号要素ciを生成する暗号要素ci生成工程と、
前記暗号化装置が、前記暗号要素ci生成工程で生成されたi=1,...,Lの各整数iについての暗号要素ciと、前記変数ρ(i)と、前記行列Mとを含む暗号化データctSを前記復号装置へ送信する暗号化データ送信工程と、
前記復号装置が、前記複数の鍵生成装置のうち、前記少なくとも1つ以上の鍵生成装置の前記復号鍵送信工程で送信された復号鍵uskを受信する復号鍵受信工程と、
前記暗号化データ送信工程で送信された暗号化データctSを受信するデータ受信工程と、
前記復号装置が、前記復号鍵受信工程で受信された復号鍵uskに含まれる属性情報x → t と、前記データ受信工程で受信された暗号化データctSに含まれる変数ρ(i)とに基づき、i=1,...,Lの各整数iのうち、変数ρ(i)が肯定形の組(t,v→ i)であり、かつ、その組の識別情報tが示すx→ tを含む復号鍵uskを前記復号鍵受信工程で受信されており、かつ、その組のv→ iと、その組の識別情報tが示す属性情報x→ tとの内積が0となるiと、変数ρ(i)が否定形の組¬(t,v→ i)であり、かつ、その組の識別情報tが示すx→ tを含む復号鍵uskを前記復号鍵受信工程で受信されており、かつ、その組のv→ iと、その組の識別情報tが示す属性情報x→ tとの内積が0とならないiとの集合Iを特定するとともに、特定した集合Iに含まれるiについて、前記暗号化データctSに含まれる行列Mのi行目の要素であるMiに基づき、αiMiを合計した場合に所定のベクトルh→となる補完係数αiを計算する補完係数計算工程と、
前記復号装置が、前記補完係数計算工程で計算された集合Iと補完係数αiとに基づき、前記暗号化データctSに含まれる暗号要素ciと、前記復号鍵uskに含まれる鍵要素k* tとについて、数18に示すペアリング演算を行い、所定の情報Kを計算するペアリング演算工程と
を備えることを特徴とする暗号処理方法。
- d個(dは1以上の整数)の鍵生成装置で動作させる鍵生成プログラムと、暗号化装置で動作させる暗号化プログラムと、復号装置で動作させる復号プログラムとを備え、t=1,...,dの少なくとも1つ以上の整数tについての基底Btと基底B* tとを用いて暗号処理を実行する暗号処理プログラムであり、
前記鍵生成プログラムは、
t=1,...,dのうち鍵生成装置毎に予め定められた整数tについての属性情報x→ t:=(xt,i)(i=1,...,nt,ntは1以上の整数)を入力する第1情報入力処理と、
前記整数tと、前記第1情報入力処理で入力された属性情報x→ tと、所定の値δと、基底B* tの基底ベクトルb* t,i(i=1,...,2nt)とに基づき、数19に示すベクトルを含む鍵要素k* tを生成する鍵要素生成処理と、
前記鍵要素生成処理で生成された鍵要素k* tと、前記属性情報x→ tとを含む復号鍵uskを前記復号装置へ送信する復号鍵送信処理と
をコンピュータに実行させ、
前記暗号化プログラムは、
i=1,...,L(Lは1以上の整数)の各整数iについての変数ρ(i)であって、識別情報t(t=1,...,dのいずれかの整数)と、属性情報v→ i:=(vi,i’)(i’=1,...,nt)との肯定形の組(t,v→ i)又は否定形の組¬(t,v→ i)のいずれかである変数ρ(i)と、L行r列(rは1以上の整数)の所定の行列Mとを入力する第2情報入力処理と、
r個の要素を有するベクトルf→と、前記第2情報入力処理で入力された行列Mとに基づき列ベクトルs→T:=(s1,...,sL)T:=M・f→Tを生成するとともに、s0:=h→・f→Tとして、s0=h→・(f→’)Tであるr個の要素を有するベクトルf→’と、前記行列Mとに基づき列ベクトル(s→’)T:=(s1’,...,sL’)T:=M・(f→’)Tを生成するベクトル生成処理と、
前記ベクトル生成処理で生成された列ベクトルs→T及び列ベクトル(s→’)Tと、i=1,...,Lの各整数iについての所定の値θi,θi’とに基づき、i=1,...,Lの各整数iについて、変数ρ(i)が肯定形の組(t,v→ i)である場合には、その組の識別情報tが示す基底Btの基底ベクトルbt,i’(i’=1,...,2nt)を用いて、数20に示すベクトルを含む暗号要素ciを生成し、変数ρ(i)が否定形の組¬(t,v→ i)である場合には、その組の識別情報tが示す基底ベクトルbt,i(i=1,...,2nt)を用いて、数21に示すベクトルを含む暗号要素ciを生成する暗号要素ci生成処理と、
前記暗号要素ci生成処理で生成されたi=1,...,Lの各整数iについての暗号要素ciと、前記変数ρ(i)と、前記行列Mとを含む暗号化データctSを前記復号装置へ送信する暗号化データ送信処理と
をコンピュータに実行させ、
前記復号プログラムは、
前記復号鍵送信処理で送信された復号鍵uskを受信する復号鍵受信処理と、
前記暗号化データ送信処理で送信された暗号化データctSを受信するデータ受信処理と、
前記復号鍵受信処理で受信された復号鍵uskに含まれる属性情報x → t と、前記データ受信処理で受信された暗号化データctSに含まれる変数ρ(i)とに基づき、i=1,...,Lの各整数iのうち、変数ρ(i)が肯定形の組(t,v→ i)であり、かつ、その組の識別情報tが示すx→ tを含む復号鍵uskを前記復号鍵受信処理で受信されており、かつ、その組のv→ iと、その組の識別情報tが示す属性情報x→ tとの内積が0となるiと、変数ρ(i)が否定形の組¬(t,v→ i)であり、かつ、その組の識別情報tが示すx→ tを含む復号鍵uskを前記復号鍵受信処理で受信されており、かつ、その組のv→ iと、その組の識別情報tが示す属性情報x→ tとの内積が0とならないiとの集合Iを特定するとともに、特定した集合Iに含まれるiについて、前記暗号化データctSに含まれる行列Mのi行目の要素であるMiに基づき、αiMiを合計した場合に所定のベクトルh→となる補完係数αiを計算する補完係数計算処理と、
前記補完係数計算処理で計算された集合Iと補完係数αiとに基づき、前記暗号化データctSに含まれる暗号要素ciと、前記復号鍵uskに含まれる鍵要素k* tとについて、数22に示すペアリング演算を行い、所定の情報Kを計算するペアリング演算処理と
をコンピュータに実行させることを特徴とする暗号処理プログラム。
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011067471A JP5618881B2 (ja) | 2011-03-25 | 2011-03-25 | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム |
US14/003,485 US9183411B2 (en) | 2011-03-25 | 2011-12-16 | Cryptographic processing system, key generation device, encryption device, decryption device, cryptographic processing method, and cryptographic processing program utilizing attribute information for generation of a key for decryption or encryption |
EP11862602.7A EP2690817B1 (en) | 2011-03-25 | 2011-12-16 | Code processing system, key generation device, encoder, decoder, code processing method and code processing program |
KR1020137028005A KR101443553B1 (ko) | 2011-03-25 | 2011-12-16 | 암호 처리 시스템, 키 생성 장치, 암호화 장치, 복호 장치, 암호 처리 방법 및 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 |
ES11862602.7T ES2627124T3 (es) | 2011-03-25 | 2011-12-16 | Sistema de procesamiento de código, dispositivo de generación de claves, dispositivo codificador, dispositivo descodificador, procedimiento de procesamiento de código y programa de procesamiento de código |
PCT/JP2011/079176 WO2012132136A1 (ja) | 2011-03-25 | 2011-12-16 | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム |
CN201180069640.2A CN103444126B (zh) | 2011-03-25 | 2011-12-16 | 密码处理系统、密钥生成装置、加密装置、解密装置以及密码处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011067471A JP5618881B2 (ja) | 2011-03-25 | 2011-03-25 | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2012203182A JP2012203182A (ja) | 2012-10-22 |
JP2012203182A5 JP2012203182A5 (ja) | 2014-01-16 |
JP5618881B2 true JP5618881B2 (ja) | 2014-11-05 |
Family
ID=46929933
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011067471A Active JP5618881B2 (ja) | 2011-03-25 | 2011-03-25 | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム |
Country Status (7)
Country | Link |
---|---|
US (1) | US9183411B2 (ja) |
EP (1) | EP2690817B1 (ja) |
JP (1) | JP5618881B2 (ja) |
KR (1) | KR101443553B1 (ja) |
CN (1) | CN103444126B (ja) |
ES (1) | ES2627124T3 (ja) |
WO (1) | WO2012132136A1 (ja) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5841955B2 (ja) * | 2013-01-21 | 2016-01-13 | 日本電信電話株式会社 | 関数型暗号システム及び方法 |
CN105637799B (zh) * | 2013-10-09 | 2019-06-25 | 三菱电机株式会社 | 加密系统、加密装置、重加密密钥生成装置以及重加密装置 |
WO2016002020A1 (ja) * | 2014-07-02 | 2016-01-07 | 三菱電機株式会社 | 行列生成装置及び行列生成方法及び行列生成プログラム |
US9900769B2 (en) | 2015-05-29 | 2018-02-20 | Nagravision S.A. | Methods and systems for establishing an encrypted-audio session |
US10122767B2 (en) * | 2015-05-29 | 2018-11-06 | Nagravision S.A. | Systems and methods for conducting secure VOIP multi-party calls |
US9891882B2 (en) | 2015-06-01 | 2018-02-13 | Nagravision S.A. | Methods and systems for conveying encrypted data to a communication device |
US10356059B2 (en) | 2015-06-04 | 2019-07-16 | Nagravision S.A. | Methods and systems for communication-session arrangement on behalf of cryptographic endpoints |
DE102016207635A1 (de) * | 2016-05-03 | 2017-11-09 | Siemens Aktiengesellschaft | Verfahren und Vorrichtung zur Absicherung von Gerätezugriffen |
CN107689867B (zh) * | 2017-09-08 | 2019-12-10 | 晋商博创(北京)科技有限公司 | 一种在开放环境下的密钥保护方法和系统 |
JP6936482B2 (ja) * | 2017-11-10 | 2021-09-15 | 地方独立行政法人東京都立産業技術研究センター | 暗号システム、ユーザシステム、暗号方法、及び暗号プログラム |
CN111654367B (zh) * | 2018-08-31 | 2023-05-12 | 创新先进技术有限公司 | 密码运算、创建工作密钥的方法、密码服务平台及设备 |
KR102123435B1 (ko) * | 2019-08-19 | 2020-06-16 | 세종대학교산학협력단 | 멀티 클라이언트 환경에서 동치 질의를 지원하는 암호화 방법 및 이를 이용한 장치 |
KR102123440B1 (ko) * | 2019-09-02 | 2020-06-16 | 세종대학교산학협력단 | 멀티 클라이언트 환경에서 범위 질의를 지원하는 암호화 방법 및 이를 이용한 장치 |
CN110738513B (zh) * | 2019-09-11 | 2022-08-02 | 完美世界(北京)软件科技发展有限公司 | 一种用于生成、验证兑换码的方法和装置 |
CN114301613B (zh) * | 2020-09-22 | 2023-08-22 | 华为技术有限公司 | 安全通信的方法和装置 |
WO2022232042A1 (en) * | 2021-04-26 | 2022-11-03 | Ntt Research, Inc. | Decentralized multi-authority attribute-based encryption with fully adaptive security |
WO2024013924A1 (ja) * | 2022-07-14 | 2024-01-18 | 日本電気株式会社 | 暗号システム、鍵発行装置、鍵発行方法及び鍵発行プログラム |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7257836B1 (en) * | 2000-04-24 | 2007-08-14 | Microsoft Corporation | Security link management in dynamic networks |
JP4292835B2 (ja) * | 2003-03-13 | 2009-07-08 | 沖電気工業株式会社 | 秘密再構成方法、分散秘密再構成装置、及び秘密再構成システム |
JP5257357B2 (ja) | 2007-05-25 | 2013-08-07 | 日本電気株式会社 | 鍵生成装置、暗号化装置及び復号装置 |
WO2009047113A1 (en) * | 2007-10-10 | 2009-04-16 | Telefonaktiebolaget Lm Ericsson (Publ) | Apparatus for reconfiguration of a technical system based on security analysis and a corresponding technical decision support system and computer program product |
JP5424974B2 (ja) * | 2010-04-27 | 2014-02-26 | 三菱電機株式会社 | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置 |
-
2011
- 2011-03-25 JP JP2011067471A patent/JP5618881B2/ja active Active
- 2011-12-16 WO PCT/JP2011/079176 patent/WO2012132136A1/ja active Application Filing
- 2011-12-16 CN CN201180069640.2A patent/CN103444126B/zh not_active Expired - Fee Related
- 2011-12-16 US US14/003,485 patent/US9183411B2/en active Active
- 2011-12-16 EP EP11862602.7A patent/EP2690817B1/en not_active Not-in-force
- 2011-12-16 ES ES11862602.7T patent/ES2627124T3/es active Active
- 2011-12-16 KR KR1020137028005A patent/KR101443553B1/ko active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
EP2690817A4 (en) | 2014-11-26 |
EP2690817B1 (en) | 2017-04-26 |
CN103444126A (zh) | 2013-12-11 |
WO2012132136A1 (ja) | 2012-10-04 |
KR101443553B1 (ko) | 2014-09-23 |
KR20130136555A (ko) | 2013-12-12 |
CN103444126B (zh) | 2017-04-12 |
JP2012203182A (ja) | 2012-10-22 |
EP2690817A1 (en) | 2014-01-29 |
US9183411B2 (en) | 2015-11-10 |
US20130339754A1 (en) | 2013-12-19 |
ES2627124T3 (es) | 2017-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5618881B2 (ja) | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム | |
JP5424974B2 (ja) | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置 | |
JP5693206B2 (ja) | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム | |
JP5680007B2 (ja) | 暗号システム、暗号方法及び暗号プログラム | |
JP5606344B2 (ja) | 署名処理システム、鍵生成装置、署名装置、検証装置、署名処理方法及び署名処理プログラム | |
JP5769401B2 (ja) | 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及びプログラム | |
JP5334873B2 (ja) | 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム | |
JP5921410B2 (ja) | 暗号システム | |
JP5606351B2 (ja) | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、鍵委譲装置、暗号処理方法及び暗号処理プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131125 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20131125 |
|
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: 20140819 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140916 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5618881 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 |