JPWO2015125293A1 - 暗号システム、署名システム、暗号プログラム及び署名プログラム - Google Patents

暗号システム、署名システム、暗号プログラム及び署名プログラム Download PDF

Info

Publication number
JPWO2015125293A1
JPWO2015125293A1 JP2016503892A JP2016503892A JPWO2015125293A1 JP WO2015125293 A1 JPWO2015125293 A1 JP WO2015125293A1 JP 2016503892 A JP2016503892 A JP 2016503892A JP 2016503892 A JP2016503892 A JP 2016503892A JP WO2015125293 A1 JPWO2015125293 A1 JP WO2015125293A1
Authority
JP
Japan
Prior art keywords
vector
ciphertext
key
base
unit
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
Application number
JP2016503892A
Other languages
English (en)
Other versions
JP6053983B2 (ja
Inventor
克幸 高島
克幸 高島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Application granted granted Critical
Publication of JP6053983B2 publication Critical patent/JP6053983B2/ja
Publication of JPWO2015125293A1 publication Critical patent/JPWO2015125293A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/006Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving public key infrastructure [PKI] trust models
    • H04L9/007Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving public key infrastructure [PKI] trust models involving hierarchical structures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key 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/083Key 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public 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/3073Public 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)

Abstract

暗号システム(10)は、基底B及び基底B*を利用し、暗号処理を行う。暗号化装置(200)は、xiを根とする多項式の係数yjからなる第1ベクトルと、v1のべき乗v1iからなる第2ベクトルとの一方のベクトルを用いて生成された送信側ベクトルであって、基底Bにおけるベクトルである送信側ベクトルを含む暗号文を生成する。復号装置(300)は、第1ベクトルと第2ベクトルとの他方のベクトルを用いて生成された受信側ベクトルであって、基底B*におけるベクトルである受信側ベクトルを含む復号鍵を用いて、暗号化装置(200)が生成した暗号文を復号する。

Description

この発明は、関数型暗号(Functional Encryption,FE)方式に関するものである。
特許文献1には、関数型暗号(Functional Encryption,FE)方式に関する記載がある。
特開2012−133214号公報
Attrapadung, N., Libert, B., de Panafieu, E.: Expressive key−policy attribute−based encryption with constant−size ciphertexts. In: Catalano et al. [6], pp. 90.108 Okamoto, T., Takashima, K.: Achieving Short Ciphertexts or Short Secret−Keys for Adaptively Secure General Inner−Product Encryption. CANS 2011, LNCS, vol. 7092, pp. 138−159 Springer Heidelberg (2011). Okamoto, T Takashima, K.:Decentralized Attribute−Based Signatures.ePrint http://eprint.iacr.org/2011/701
特許文献1に記載された関数型暗号方式では、属性のカテゴリt毎に、暗号文を構成するベクトルあるいは復号鍵を構成するベクトルを生成する必要があり、暗号文のサイズが大きく、復号等にも処理時間がかかる。
この発明は、暗号文、復号鍵、署名等のサイズを小さくすることを目的とする。
この発明に係る暗号システムは、
基底B及び基底Bを利用し、暗号処理を行う暗号システムであり、
を根とする多項式の係数yからなる第1ベクトルと、vのべき乗v からなる第2ベクトルとの一方のベクトルを用いて生成された送信側ベクトルであって、前記基底Bにおけるベクトルである送信側ベクトルを生成する送信装置と、
前記第1ベクトルと前記第2ベクトルとの他方のベクトルを用いて生成された受信側ベクトルであって、前記基底Bにおけるベクトルである受信側ベクトルと、前記送信側ベクトルとについて、ペアリング演算を行う受信装置と
を備えることを特徴とする。
この発明に係る暗号システムは、送信側ベクトルや受信側ベクトルを生成するために用いるベクトルの構成を工夫したことにより、暗号文、復号鍵、署名等のサイズを小さくできる。
行列M^の説明図。 行列Mδの説明図。 の説明図。 →Tの説明図。 実施の形態1に係るKP−ABE方式を実現する暗号システム10の構成図。 実施の形態1に係る鍵生成装置100の構成図。 実施の形態1に係る暗号化装置200の構成図。 実施の形態1に係る復号装置300の構成図。 実施の形態1に係るSetupアルゴリズムの処理を示すフローチャート。 実施の形態1に係るKeyGenアルゴリズムの処理を示すフローチャート。 実施の形態1に係るEncアルゴリズムの処理を示すフローチャート。 実施の形態1に係るDecアルゴリズムの処理を示すフローチャート。 実施の形態2に係るCP−ABE方式を実現する暗号システム10の構成図。 実施の形態2に係る鍵生成装置100の構成図。 実施の形態2に係る暗号化装置200の構成図。 実施の形態2に係るKeyGenアルゴリズムの処理を示すフローチャート。 実施の形態2に係るEncアルゴリズムの処理を示すフローチャート。 実施の形態4に係るABS方式を実現する暗号システム10の構成図。 実施の形態4に係る鍵生成装置100の構成図。 実施の形態4に係る署名装置400の構成図。 実施の形態4に係る検証装置500の構成図。 実施の形態4に係るSetupアルゴリズムの処理を示すフローチャート。 実施の形態4に係るKeyGenアルゴリズムの処理を示すフローチャート。 実施の形態4に係るSigアルゴリズムの処理を示すフローチャート。 実施の形態4に係るVerアルゴリズムの処理を示すフローチャート。 実施の形態1〜5に示した暗号システム10の各装置のハードウェア構成の例を示す図。
実施の形態1.
以下の説明における記法について説明する。
Aがランダムな変数または分布であるとき、数101は、Aの分布に従いAからyをランダムに選択することを表す。つまり、数101において、yは乱数である。
Figure 2015125293
Aが集合であるとき、数102は、Aからyを一様に選択することを表す。つまり、数102において、yは一様乱数である。
Figure 2015125293
数103は、yにzが設定されたこと、yがzにより定義されたこと、又はyがzを代入されたことを表す。
Figure 2015125293
aが定数であるとき、数104は、機械(アルゴリズム)Aが入力xに対しaを出力することを表す。
Figure 2015125293
数105、つまりFは、位数qの有限体を示す。
Figure 2015125293
ベクトル表記は、有限体Fにおけるベクトル表示を表す。つまり、数106である。
Figure 2015125293
数107は、数108に示す2つのベクトルxとvとの数109に示す内積を表す。
Figure 2015125293
Figure 2015125293
Figure 2015125293
は、行列Xの転置行列を表す。
数110に示す基底Bと基底Bとに対して、数111である。
Figure 2015125293
Figure 2015125293
は、数112に示す正規基底ベクトルを示す。
Figure 2015125293
また、以下の説明において、Vt,nt,ut,wt,zt,nu,wu,zuが下付き又は上付きで示されている場合、このVt,nt,ut,wt,zt,nu,wu,zuはV,u,n,w,z,n,w,zを意味する。同様に、δi,jが上付きで示されている場合、このδi,jは、δi,jを意味する。同様に、φjが上付きで示されている場合、このφjは、φを意味する。同様に、s0が下付き又は上付きで示されている場合、このs0は、sを意味する。
また、ベクトルを意味する→が下付き文字又は上付き文字に付されている場合、この→は下付き文字又は上付き文字に上付きで付されていることを意味する。
また、以下の説明において、暗号処理、暗号方式は、情報を第三者から秘匿するための狭義の暗号処理だけでなく、署名処理をも含むものであり、鍵生成処理、暗号化処理、復号処理、署名処理、検証処理を含む。
実施の形態1では、暗号方式を実現する基礎となる概念を説明した上で、実施の形態1に係る暗号方式の構成について説明する。
第1に、暗号方式を実現するための空間である双対ペアリングベクトル空間(Dual Pairing Vector Spaces,DPVS)という豊かな数学的構造を有する空間について説明する。
第2に、暗号方式を実現するための概念について説明する。ここでは、スパンプログラム、アクセス構造、秘密分散方式(秘密共有方式)について説明する。
第3に、実施の形態1に係る暗号方式の基本構成について説明する。実施の形態1では、鍵ポリシーの属性ベース暗号(Key−Policy Attribute−Based Encryption,KP−ABE)方式について説明する。
第4に、実施の形態1に係る暗号方式を実現する暗号システム10の基本構成について説明する。
第5に、実施の形態1に係る暗号方式のキーテクニック及び簡略化した暗号方式について説明する。
第6に、実施の形態1に係る暗号方式について詳細に説明する。
<第1.双対ペアリングベクトル空間>
まず、対称双線形ペアリング群について説明する。
対称双線形ペアリング群(q,G,G,g,e)は、素数qと、位数qの巡回加法群Gと、位数qの巡回乗法群Gと、g≠0∈Gと、多項式時間で計算可能な非退化双線形ペアリング(Nondegenerate Bilinear Pairing)e:G×G→Gとの組である。非退化双線形ペアリングは、e(sg,tg)=e(g,g)stであり、e(g,g)≠1である。
以下の説明において、Gbpgを、1λを入力として、セキュリティパラメータをλとする双線形ペアリング群のパラメータparam:=(q,G,G,g,e)の値を出力するアルゴリズムとする。
次に、双対ペアリングベクトル空間について説明する。
双対ペアリングベクトル空間(q,V,G,A,e)は、対称双線形ペアリング群(param:=(q,G,G,g,e))の直積によって構成することができる。双対ペアリングベクトル空間(q,V,G,A,e)は、素数q、数113に示すF上のN次元ベクトル空間V、位数qの巡回群G、空間Vの標準基底A:=(a,...,a)の組であり、以下の演算(1)(2)を有する。ここで、aは、数114に示す通りである。
Figure 2015125293
Figure 2015125293
演算(1):非退化双線形ペアリング
空間Vにおけるペアリングは、数115によって定義される。
Figure 2015125293
これは、非退化双線形である。つまり、e(sx,ty)=e(x,y)stであり、全てのy∈Vに対して、e(x,y)=1の場合、x=0である。また、全てのiとjとに対して、e(a,a)=e(g,g)δi,jである。ここで、i=jであれば、δi,j=1であり、i≠jであれば、δi,j=0である。また、e(g,g)≠1∈Gである。
演算(2):ディストーション写像
数116に示す空間Vにおける線形変換φi,jは、数117を行うことができる。
Figure 2015125293
Figure 2015125293
ここで、線形変換φi,jをディストーション写像と呼ぶ。
以下の説明において、Gdpvsを、1λ(λ∈自然数)、N∈自然数、双線形ペアリング群のパラメータparam:=(q,G,G,g,e)の値を入力として、セキュリティパラメータがλであり、N次元の空間Vとする双対ペアリングベクトル空間のパラメータparam:=(q,V,G,A,e)の値を出力するアルゴリズムとする。
なお、ここでは、上述した対称双線形ペアリング群により、双対ペアリングベクトル空間を構成した場合について説明する。なお、非対称双線形ペアリング群により双対ペアリングベクトル空間を構成することも可能である。以下の説明を、非対称双線形ペアリング群により双対ペアリングベクトル空間を構成した場合に応用することは容易である。
<第2.暗号方式を実現するための概念>
<第2−1.スパンプログラム>
図1は、行列M^の説明図である。
{p,...,p}を変数の集合とする。M^:=(M,ρ)は、ラベル付けされた行列である。ここで、行列Mは、F上の(L行×r列)の行列である。また、ρは、行列Mの各行に付されたラベルであり、{p,...,p,¬p,...,¬p}のいずれか1つのリテラルへ対応付けられる。なお、Mの全ての行に付されたラベルρi(i=1,...,L)がいずれか1つのリテラルへ対応付けられる。つまり、ρ:{1,...,L}→{p,...,p,¬p,...,¬p}である。
全ての入力列δ∈{0,1}に対して、行列Mの部分行列Mδは定義される。行列Mδは、入力列δによってラベルρに値“1”が対応付けられた行列Mの行から構成される部分行列である。つまり、行列Mδは、δ=1であるようなpに対応付けられた行列Mの行と、δ=0であるような¬pに対応付けられた行列Mの行とからなる部分行列である。
図2は、行列Mδの説明図である。なお、図2では、n=7,L=6,r=5としている。つまり、変数の集合は、{p,...,p}であり、行列Mは(6行×5列)の行列である。また、図2において、ラベルρは、ρが¬pに、ρがpに、ρがpに、ρが¬pに、ρが¬pに、ρがpにそれぞれ対応付けられているとする。
ここで、入力列δ∈{0,1}が、δ=1,δ=0,δ=1,δ=0,δ=0,δ=1,δ=1であるとする。この場合、破線で囲んだリテラル(p,p,p,p,¬p,¬p,¬p)に対応付けられている行列Mの行からなる部分行列が行列Mδである。つまり、行列Mの1行目(M),2行目(M),4行目(M)からなる部分行列が行列Mδである。
言い替えると、写像γ:{1,...,L}→{0,1}が、[ρ(j)=p]∧[δ=1]又は[ρ(j)=¬p]∧[δ=0]である場合、γ(j)=1であり、他の場合、γ(j)=0であるとする。この場合に、Mδ:=(Mγ(j)=1である。ここで、Mは、行列Mのj番目の行である。
つまり、図2では、写像γ(j)=1(j=1,2,4)であり、写像γ(j)=0(j=3,5,6)である。したがって、(Mγ(j)=1は、M,M,Mであり、行列Mδである。
すなわち、写像γ(j)の値が“0”であるか“1”であるかによって、行列Mのj番目の行が行列Mδに含まれるか否かが決定される。
∈span<Mδ>である場合に限り、スパンプログラムM^は入力列δを受理し、他の場合には入力列δを拒絶する。つまり、入力列δによって行列M^から得られる行列Mδの行を線形結合して1が得られる場合に限り、スパンプログラムM^は入力列δを受理する。なお、1とは、各要素が値“1”である行ベクトルである。
例えば、図2の例であれば、行列Mの1,2,4行目からなる行列Mδの各行を線形結合して1が得られる場合に限り、スパンプログラムM^は入力列δを受理する。つまり、α(M)+α(M)+α(M)=1となるα,α,αが存在する場合には、スパンプログラムM^は入力列δを受理する。
ここで、ラベルρが正のリテラル{p,...,p}にのみ対応付けられている場合、スパンプログラムはモノトーンと呼ばれる。一方、ラベルρがリテラル{p,...,p,¬p,...,¬p}に対応付けられている場合、スパンプログラムはノンモノトーンと呼ばれる。ここでは、スパンプログラムはノンモノトーンとする。そして、ノンモノトーンスパンプログラムを用いて、アクセスストラクチャ(ノンモノトーンアクセスストラクチャ)を構成する。アクセスストラクチャとは、簡単に言うと暗号へのアクセス制御を行うものである。つまり、暗号文を復号できるか否かの制御を行うものである。
スパンプログラムがモノトーンではなく、ノンモノトーンであることにより、スパンプログラムを利用して構成する暗号方式の利用範囲が広がる。
<第2−2.アクセスストラクチャ>
U(⊂{0,1})は、全集合(universe)であり、属性の集合である。そして、Uは、属性の値、つまり、v∈F (:=F\{0})によって表される。
属性がM^:=(M,ρ)における変数pになるように定義する。つまり、p:=vである。アクセスストラクチャSは、変数p:=v,p’:=v’,...であるスパンプログラムM^:=(M,ρ)である。つまり、アクセスストラクチャSは、ρ:{1,...,L}→{v,v’,...,¬v,¬v’,...}であるS:=(M,ρ)である。
次に、Γを属性の集合とする。つまり、Γ:={x1≦j≦n’}である。
アクセスストラクチャSにΓが与えられた場合、スパンプログラムM^:=(M,ρ)に対する写像γ:{1,...,L}→{0,1}は、以下のように定義される。i=1,...,Lの各整数iについて、[ρ(i)=v]∧[v∈Γ]、又は、[ρ(i)=¬v]∧[v∈Γ]である場合、γ(j)=1であり、他の場合、γ(j)=0とする。
∈span<(Mγ(i)=1>である場合に限り、アクセスストラクチャS:=(M,ρ)はΓを受理する。
<第2−3.秘密分散方式>
アクセスストラクチャ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を閾値と呼ぶ。
また、d,...,d10の10個の分散情報を生成した場合に、d,...,dまでの8個の分散情報であれば秘密情報sを復元できるが、d,...,d10までの8個の分散情報であれば秘密情報sを復元できないというような秘密分散方式もある。つまり、手に入れた分散情報の数だけでなく、分散情報の組合せに応じて秘密情報sを復元できるか否かを制御する秘密分散方式もある。
図3は、sの説明図である。図4は、s→Tの説明図である。
行列Mを(L行×r列)の行列とする。f→Tを数118に示す列ベクトルとする。
Figure 2015125293
数119に示すsを共有される秘密情報とする。
Figure 2015125293
また、数120に示すs→TをsのL個の分散情報のベクトルとする。
Figure 2015125293
そして、分散情報sをρ(i)に属するものとする。
アクセスストラクチャS:=(M,ρ)がΓを受理する場合、つまりγ:{1,...,L}→{0,1}について1∈span<(Mγ(i)=1>である場合、I⊆{i∈{1,...,L}|γ(i)-=1}である定数{α∈F|i∈I}が存在する。
これは、図2の例で、α(M)+α(M)+α(M)=1となるα,α,αが存在する場合には、スパンプログラムM^は入力列δを受理すると説明したことからも明らかである。つまり、α(M)+α(M)+α(M)=1となるα,α,αが存在する場合には、スパンプログラムM^が入力列δを受理するのであれば、α(M)+α(M)+α(M)=1となるα,α,αが存在する。
そして、数121である。
Figure 2015125293
なお、定数{α}は、行列Mのサイズにおける多項式時間で計算可能である。
<第3.暗号方式(KP−ABE方式)の基本構成>
KP−ABE方式の構成を簡単に説明する。なお、KP(鍵ポリシー)とは、暗号文にPolicyが埋め込まれること、つまりアクセスストラクチャが埋め込まれることを意味する。
KP−ABE方式は、Setup、KeyGen、Enc、Decの4つのアルゴリズムを備える。
(Setup)
Setupアルゴリズムは、セキュリティパラメータλと、暗号文に対する属性の数の上限nとを入力として、公開パラメータpkと、マスター鍵skとを出力する確率的アルゴリズムである。
(KeyGen)
KeyGenアルゴリズムは、公開パラメータpkと、マスター鍵skと、アクセスストラクチャS:=(M,ρ)とを入力として、復号鍵skを出力する確率的アルゴリズムである。
(Enc)
Encアルゴリズムは、公開パラメータpkと、メッセージmと、属性集合Γ:={x1≦j≦n’とを入力として、暗号文ctΓを出力する確率的アルゴリズムである。
(Dec)
Decアルゴリズムは、公開パラメータpkと、復号鍵skと、暗号文ctΓとを入力として、メッセージm、又は、識別情報⊥を出力するアルゴリズムである。
<第4.暗号システム10の基本構成>
KP−ABE方式のアルゴリズムを実現する暗号システム10について説明する。
図5は、実施の形態1に係るKP−ABE方式を実現する暗号システム10の構成図である。
暗号システム10は、鍵生成装置100、暗号化装置200(送信装置の一例)、復号装置300(受信装置の一例)を備える。
鍵生成装置100は、セキュリティパラメータλと暗号文に対する属性の数の上限nとを入力としてSetupアルゴリズムを実行して、公開パラメータpkとマスター鍵skとを生成する。
そして、鍵生成装置100は、公開パラメータpkを公開する。また、鍵生成装置100は、アクセスストラクチャSを入力としてKGアルゴリズムを実行して、復号鍵skを生成して復号装置300へ秘密裏に送信する。
暗号化装置200は、公開パラメータpkと、メッセージmと、属性集合Γとを入力としてEncアルゴリズムを実行して、暗号文ctΓを生成する。暗号化装置200は、暗号文ctΓを復号装置300へ送信する。
復号装置300は、公開パラメータpkと、復号鍵skと、暗号文ctΓとを入力としてDecアルゴリズムを実行して、メッセージm又は識別情報⊥を出力する。
<第5.キーテクニック及び簡略化した暗号方式>
<第5−1.エンコーディング>
特許文献1に記載された関数型暗号方式では、各属性カテゴリに識別子tが割り当てられ、識別子t毎に暗号文(あるいは復号鍵)の要素であるベクトルが生成された。
実施の形態1では、属性情報のエンコード方法を工夫することにより、属性カテゴリの識別子tをなくし、暗号文の要素であるベクトルを1つにする。
実施の形態1では、属性情報xを根とする多項式の係数yからなるベクトルy:=(y,...,y)(第1ベクトル)の各要素を基底Bの各基底ベクトルの係数に設定して、暗号文の要素である(1つの)ベクトルを生成する。つまり、f(z)=(z−x)(z−x)・・・(z−x)=y+・・・+yn−1z+yであるベクトルy:=(y,...,y)を基底Bの各基底ベクトルの係数に設定して、暗号文の要素であるベクトルを生成する。
また、i=1,...,Lの各整数iについて、vのべき乗v からなるベクトルv :=(v n−1,...,v,1)(第2ベクトル)を基底Bの各基底ベクトルの係数に設定して、復号鍵の要素である(1つ以上の)ベクトルを生成する。
これにより、暗号文の要素であるベクトルと、復号鍵の要素であるベクトルとについてペアリング演算を行うと、vがf(z)に代入され、vがx,...,xのいずれかと等しければ、f(v)=0となり、vがx,...,xのいずれかとも等しくなければ、f(v)≠0となるように制御することが可能になる。
<第5−2.疎行列>
特許文献1に記載された関数型暗号方式では、双対基底のペアである基底Bと基底Bとが生成される。基底Bと基底Bとは、GL(N,F)から一様に選択された、完全にランダムな線形変換X(基底変換行列)を用いて生成される。特に、基底Bと基底Bとは、それぞれ、線形変換Xと、(X−1とにより、標準基底Aを変換して生成される。なお、Nは、span<B>とspan<B>との次元数である。
そして、双対ペアリングベクトル空間を暗号処理に適用した典型的なアプリケーションでは、基底Bの一部(B^という)が公開パラメータとして用いられ、これに対応する基底Bの一部(B^という)が秘密鍵又はトラップドアとして用いられる。
実施の形態1では、上述した完全にランダムな線形変換Xに代えて、X∈GL(N,F)であるランダムな線形変換Xの特別な形式(疎行列)を用いる。
<第5−3.簡略化した暗号方式>
簡略化したKP−ABE方式について説明する。
簡略化したKP−ABE方式における暗号文は、2個のベクトル要素(c,c)∈G×Gと、c∈Gとからなる。秘密鍵は、アクセスストラクチャS:=(M,,ρ)に対するL+1個のベクトル要素(k ,k ,...,k ∈G×(G)からなる。ここで、行列Mの行数はLであり、各ベクトル要素k は、行列Mの各行に対応している。なお、(c,c)∈G×Gとは、cがGの5個の要素であり、cがGのn個の要素であることを意味する。同様に、(k ,k ,...,k ∈G×(Gとは、k がGの5個の要素であり、k ,...,k がGのn個の要素であることを意味する。
そのため、暗号文のサイズを定数サイズにするには、c∈Gをnについての定数サイズに圧縮する必要がある。
実施の形態1では、数122に示す特別な線形変換Xを用いる。
Figure 2015125293
ここで、μ,μ’,...,μ’は有限体Fから一様に選択された値であり、線形変換Xにおける空白は0∈Fであることを示す。また、H(n,F)とは、有限体Fを要素とするn次元の行列の集合を意味する。
公開鍵(DPVSの基底)は、数123に示す基底Bである。
Figure 2015125293
属性集合Γ:=(x,...,xn’)に関連付けられた暗号文を、数123に示す暗号文cとする。
Figure 2015125293
ここで、ωは有限体Fから一様に選択された値である。また、y:=(y,...,y)は、数124に示すベクトルである。
Figure 2015125293
すると、暗号文cは、数125に示す2つのグループの要素C,Cと、ベクトルyとに圧縮できる。
Figure 2015125293
暗号文cは、(y,...,yn−1,C)によって得られるためである。なお、i=1,...,n−1の各iについて、y=yωμgである。
したがって、暗号文(ベクトルyを除いた部分)は、2つのグループの要素とすることができ、nについての定数サイズとなる。
:=(b )を、B:=(b)の双対正規直交基底とし、基底Bを、簡略化したKP−ABE方式におけるマスター秘密鍵であるとする。
(c,k ,c)を、e(c,k )=g ζ−ωs0であり、c:=g ζm∈Gであるとする。ここで、s0(s)は、アクセスストラクチャSに関連付けられた共有情報{si=1,...,Lのセンターシークレットである。
共有情報{si=1,...,Lを用いて、アクセスストラクチャSに対する秘密鍵の集合を数126のように設定する。
Figure 2015125293
基底Bと基底Bとの双対正規直交性から、アクセスストラクチャSが属性集合Γを受理するなら、数127となる補完係数{αi∈Iが存在する。
Figure 2015125293
そのため、アクセスストラクチャSが属性集合Γを受理する場合に限り、復号者はg ωs0を計算でき、メッセージmが得られる。
また、暗号文cは、(y,...,yn−1,C)∈Gとして表され、秘密鍵k〜*は、(D ,...,D )のn組に分解される。そのため、e(c,k〜*)の値は、数128である。
Figure 2015125293
つまり、e(c,k〜*)を計算するには、Gにおけるn−1個のスカラー乗法と、2つのペアリング演算とで十分である。すなわち、復号には、少ない数(定数)のペアリング演算だけが必要となる。一般に、ペアリング演算は、処理時間がかかる演算であるため、ペアリング演算の数を減らすことにより、処理全体としての処理時間を短くすることができる。
なお、簡略化したKP−ABE方式では、暗号文cはベクトルyが設定される基底ベクトル(実際の符号化部)のみを備え、秘密鍵k はベクトルvが設定される基底ベクトル(実際の符号化部)のみを備えた。
以下に説明するKP−ABE方式では、安全性を高めるため、暗号文cと秘密鍵k とに、実際の符号化部に加え、秘匿部と、秘密鍵ランダム化部と、暗号文ランダム化部とのための基底ベクトルを加える。
そのため、線形変換Xを数129のように6倍に拡張する。そして、実際の符号化部と、秘匿部と、秘密鍵ランダム化部と、暗号文ランダム化部とにそれぞれ、n、2n、2n、n次元ずつ割り当てる。
Figure 2015125293
ここで、各Xi,jは、数122に示すX∈H(n,F)である。そして、ベクトル空間は、4つの直交する部分空間で構成される。つまり、ベクトル空間は、符号化部と、秘匿部と、秘密鍵ランダム化部と、暗号文ランダム化部とのための4つの直交する部分空間で構成される。
<第6.暗号方式>
図6は、実施の形態1に係る鍵生成装置100の構成図である。図7は、実施の形態1に係る暗号化装置200の構成図である。図8は、実施の形態1に係る復号装置300の構成図である。
図9と図10とは、実施の形態1に係る鍵生成装置100の動作を示すフローチャートである。なお、図9は、実施の形態1に係るSetupアルゴリズムの処理を示すフローチャートであり、図10は、実施の形態1に係るKeyGenアルゴリズムの処理を示すフローチャートである。図11は、実施の形態1に係る暗号化装置200の動作を示すフローチャートであり、実施の形態1に係るEncアルゴリズムの処理を示す。図12は、実施の形態1に係る復号装置300の動作を示すフローチャートであり、実施の形態1に係るDecアルゴリズムの処理を示す。
鍵生成装置100の機能と動作とについて説明する。
図6に示すように、鍵生成装置100は、マスター鍵生成部110、マスター鍵記憶部120、情報入力部130、復号鍵生成部140、鍵送信部150を備える。マスター鍵生成部110は、空間生成部111、行列生成部112、基底生成部113、鍵生成部114を備える。復号鍵生成部140は、fベクトル生成部141、sベクトル生成部142、乱数生成部143、鍵要素生成部144を備える。
図9に基づき、Setupアルゴリズムの処理について説明する。
(S101:空間生成ステップ)
空間生成部111は、セキュリティパラメータ1λを入力として、処理装置によりGbpgを実行して、対称双線形ペアリング群のパラメータparam:=(q,G,G,g,e)を生成する。
さらに、空間生成部111は、N:=5、N:=6nを設定する。そして、空間生成部111は、t=0,1の各整数tについて、セキュリティパラメータ1λと、Nと、対称双線形ペアリング群のパラメータparamとを入力として、処理装置によりGdpvsを実行して、双対ペアリングベクトル空間のパラメータparamVt:=(q,V,G,A,e)を生成する。
(S102:線形変換生成ステップ)
行列生成部112は、処理装置により、線形変換Xを数130に示すように生成する。
Figure 2015125293
なお、数130における(χ0,i,ji,j=1,...,5は、行列χ0,i,jの添え字i,jに関する行列という意味である。
また、行列生成部112は、処理装置により、線形変換Xを数131に示すように生成する。
Figure 2015125293
数131におけるL(6,n,F)は、数132に示す通りである。
Figure 2015125293
なお、以下、{μi,j,μ’i,j,Li,j=1,...,6;L=1,...,nは、線形変換Xにおける0以外の要素を示す。
(S103:基底B生成ステップ)
基底生成部113は、処理装置により、基底Bと変数Bi,jと変数B’i,j,Lとを数133に示すように生成する。
Figure 2015125293
また、基底生成部113は、処理装置により、基底B と基底B とを数134に示すように生成する。
Figure 2015125293
(S104:基底B^生成ステップ)
鍵生成部114は、処理装置により、基底B^と、基底B^と、基底B^ と、基底B^ とを数135に示すように生成する。
Figure 2015125293
(S105:マスター鍵生成ステップ)
鍵生成部114は、処理装置により、公開パラメータpk:=(1λ,param,{B^t=0,1)とし、マスター秘密鍵sk:={B^ t=0,1とする。そして、鍵生成部114は、公開パラメータpkと、マスター秘密鍵skとをマスター鍵記憶部120に記憶する。
なお、param:=({paramVtt=0,1,g:=e(g,g)φ)である。
つまり、(S101)から(S105)において、鍵生成装置100は、数136に示すアルゴリズムGABE(1) obを用いた、数137に示すSetupアルゴリズムを実行して、公開パラメータpkとマスター秘密鍵skとを生成する。
Figure 2015125293
Figure 2015125293
なお、公開パラメータは、例えば、ネットワークを介して公開され、暗号化装置200や復号装置300が取得可能な状態にされる。
S103では、基底Bを生成せず、代わりに変数Bi,jを生成した。基底Bを生成するのであれば、数138のようになる。
Figure 2015125293
数138の行列における空白部分は成分の値が0∈Gであることを示している。基底Bは、基底B の正規直交基底である。つまり、e(b1,i,b 1,i)=gであり、1≦i≠j≦6nの整数i,jに対して、e(b1,i,b 1,j)=1である。
図10に基づき、KeyGenアルゴリズムの処理について説明する。
(S201:情報入力ステップ)
情報入力部130は、入力装置により、アクセスストラクチャS:=(M,ρ)を入力する。なお、アクセスストラクチャSの行列Mの設定については、実現したいシステムの条件に応じて設定されるものである。また、アクセスストラクチャSのρは、例えば、復号鍵skの使用者の属性情報が設定されている。
(S202:fベクトル生成ステップ)
fベクトル生成部141は、処理装置により、ベクトルfを数139に示すようにランダムに生成する。
Figure 2015125293
(S203:sベクトル生成ステップ)
sベクトル生成部142は、処理装置により、ベクトルs→T:=(s,...,sを数140に示すように生成する。
Figure 2015125293
また、sベクトル生成部142は、処理装置により、値sを数141に示すように生成する。
Figure 2015125293
(S204:乱数生成ステップ)
乱数生成部143は、処理装置により、乱数を数142に示すように生成する。
Figure 2015125293
(S205:鍵要素生成ステップ)
鍵要素生成部144は、処理装置により、復号鍵skの要素k を数143に示すように生成する。
Figure 2015125293
また、鍵要素生成部144は、処理装置により、i=1,...,Lの各整数iについて、復号鍵skの要素k を数144に示すように生成する。
Figure 2015125293
(S206:鍵送信ステップ)
鍵送信部150は、(S201)で入力したアクセスストラクチャSと、(S205)で生成されたk ,k ,...,k とを要素とする復号鍵skを、例えば通信装置によりネットワークを介して秘密裡に復号装置300へ送信する。もちろん、復号鍵skは、他の方法により復号装置300へ送信されてもよい。
つまり、(S201)から(S205)において、鍵生成装置100は、数145に示すKeyGenアルゴリズムを実行して、復号鍵skを生成する。そして、(S206)で、鍵生成装置100は、生成した復号鍵skを復号装置300へ送信する。
Figure 2015125293
暗号化装置200の機能と動作とについて説明する。
図7に示すように、暗号化装置200は、公開パラメータ受信部210、情報入力部220、暗号化データ生成部230、データ送信部240を備える。また、暗号化データ生成部230は、乱数生成部231、暗号要素生成部232を備える。
図11に基づき、Encアルゴリズムの処理について説明する。
(S301:公開パラメータ受信ステップ)
公開パラメータ受信部210は、例えば、通信装置によりネットワークを介して、鍵生成装置100が生成した公開パラメータpkを受信する。
(S302:情報入力ステップ)
情報入力部220は、入力装置により、復号装置300へ送信するメッセージmを入力する。また、情報入力部220は、入力装置により、属性集合Γ:={x,...,xn’|x∈Fq,n’≦n−1}を入力する。また、属性集合Γは、例えば、復号可能なユーザの属性情報が設定されている。
(S303:乱数生成ステップ)
乱数生成部231は、処理装置により、乱数を数146に示すように生成する。
Figure 2015125293
(S304:暗号要素生成ステップ)
暗号要素生成部232は、処理装置により、暗号文ctΓの要素cを数147に示すように生成する。
Figure 2015125293
また、暗号要素生成部232は、処理装置により、暗号文ctΓの要素C1,j,C2,jを数148に示すように生成する。
Figure 2015125293
また、暗号要素生成部232は、処理装置により、暗号文ctΓの要素cを数149に示すように生成する。
Figure 2015125293
(S305:データ送信ステップ)
データ送信部240は、(S302)で入力した属性集合Γと、(S304)で生成されたc,C1,j,C2,j,cとを要素とする暗号文ctΓを、例えば通信装置によりネットワークを介して復号装置300へ送信する。もちろん、暗号文ctΓは、他の方法により復号装置300へ送信されてもよい。
つまり、(S301)から(S304)において、暗号化装置200は、数150に示すEncアルゴリズムを実行して、暗号文ctΓを生成する。そして、(S305)で、暗号化装置200は生成した暗号文ctΓを復号装置300へ送信する。
Figure 2015125293
復号装置300の機能と動作とについて説明する。
図8に示すように、復号装置300は、復号鍵受信部310、データ受信部320、スパンプログラム計算部330、補完係数計算部340、復号部350を備える。
図12に基づき、Decアルゴリズムの処理について説明する。
(S401:復号鍵受信ステップ)
復号鍵受信部310は、例えば、通信装置によりネットワークを介して、鍵生成装置100から送信された復号鍵skを受信する。また、復号鍵受信部310は、鍵生成装置100が生成した公開パラメータpkを受信する。
(S402:データ受信ステップ)
データ受信部320は、例えば、通信装置によりネットワークを介して、暗号化装置200が送信した暗号文ctΓを受信する。
(S403:スパンプログラム計算ステップ)
スパンプログラム計算部330は、処理装置により、(S401)で受信した復号鍵skに含まれるアクセスストラクチャSが、(S402)で受信した暗号文ctΓに含まれるΓを受理するか否かを判定する。アクセスストラクチャSがΓを受理するか否かの判定方法は、「第2.暗号方式を実現するための概念」で説明した通りである。
スパンプログラム計算部330は、アクセスストラクチャSがΓを受理する場合(S403で受理)、処理を(S404)へ進める。一方、アクセスストラクチャSがΓを拒絶する場合(S403で拒絶)、暗号文ctΓを復号鍵skで復号できないとして処理を終了する。
(S404:補完係数計算ステップ)
補完係数計算部340は、処理装置により、数151となるIと、定数(補完係数){αi∈Iとを計算する。
Figure 2015125293
(S405:復号要素生成ステップ)
復号部350は、処理装置により、復号要素D ,...,D 6n,E を数152に示すように生成する。
Figure 2015125293
(S406:ペアリング演算ステップ)
復号部350は、処理装置により、数153を計算して、セッション鍵K=g ζを生成する。
Figure 2015125293
(S407:メッセージ計算ステップ)
復号部350は、処理装置により、m’=c/Kを計算して、メッセージm’(=m)を生成する。
つまり、(S401)から(S407)において、復号装置300は、数154に示すDecアルゴリズムを実行して、メッセージm’(=m)を生成する。
Figure 2015125293
なお、数138からB:=(b1,1,...,b1,6n)は、{Bi,j,B’i,j,Li,j=1,...,6;L=1,...,nによって特定される。また、Setupアルゴリズムの出力に含まれる{Bi,j,B’i,j,Li=1,6;j=1,...,6;L=1,...,nは、B^:=(b1,1,...,b1,n,b1,5n+1,...,b1,6n)によって特定される。
そして、Decアルゴリズムは、数155に示すDec’アルゴリズムのように記述することができる。
Figure 2015125293
数156に示すように、Dec'アルゴリズムを用いた場合、K:=gζ が得られる。そのため、c=gζ mをKで除することにより、メッセージm’(=m)が得られる。
Figure 2015125293
実施の形態1で説明したKP−ABE方式では、暗号文ctΓは、要素cで5個と、j=1,...,6の各整数jについての要素C1,j及び要素C2,jで12個との合計17個のGの要素と、要素cで1個のGの要素とから構成される。つまり、暗号文ctΓは、nについて定数サイズである。
また、実施の形態1で説明したKP−ABE方式では、復号処理(Decアルゴリズム)は、数153に示すe(c,k )で5個と、Πj=1 (e(C1,j,E )・e(C2,j,D jn))で12個との合計17個のみペアリング演算を実行する。つまり、復号処理で必要となるペアリング演算は少ない。
実施の形態2.
実施の形態2では、秘密鍵のサイズを定数サイズとした暗号文ポリシーの属性ベース暗号(Ciphertext−Policy ABE,CP−ABE)方式について説明する。
実施の形態2では、実施の形態1と同じ部分については説明を省略し、実施の形態1と異なる部分について説明する。
第1に、実施の形態2に係る暗号方式の基本構成について説明する。
第2に、実施の形態2に係る暗号方式を実現する暗号システム10の構成について説明する。
第3に、実施の形態2に係る暗号方式について詳細に説明する。
<第1.暗号方式の基本構成>
CP−ABE方式の構成を簡単に説明する。なお、Ciphertext−Policyとは、暗号文にPolicyが埋め込まれること、つまりアクセスストラクチャが埋め込まれることを意味する。
CP−ABE方式は、Setup、KeyGen、Enc、Decの4つのアルゴリズムを備える。
(Setup)
Setupアルゴリズムは、セキュリティパラメータλと、暗号文に対する属性の数の上限nとが入力され、公開パラメータpkと、マスター鍵skとを出力する確率的アルゴリズムである。
(KeyGen)
KeyGenアルゴリズムは、公開パラメータpkと、マスター鍵skと、属性集合Γ:={x1≦j≦n’とを入力として、復号鍵skΓを出力する確率的アルゴリズムである。
(Enc)
Encアルゴリズムは、公開パラメータpkと、メッセージmと、アクセスストラクチャS:=(M,ρ)とを入力として、暗号文ctを出力する確率的アルゴリズムである。
(Dec)
Decアルゴリズムは、公開パラメータpkと、復号鍵skΓと、暗号文ctとを入力として、メッセージm、又は、識別情報⊥を出力するアルゴリズムである。
<第2.CP−ABE方式を実現する暗号システム10の構成>
図13は、実施の形態2に係るCP−ABE方式を実現する暗号システム10の構成図である。
暗号システム10は、鍵生成装置100、暗号化装置200(送信装置の一例)、復号装置300(受信装置の一例)を備える。
鍵生成装置100は、セキュリティパラメータλと暗号文に対する属性の数の上限nとを入力としてSetupアルゴリズムを実行して、公開パラメータpkとマスター鍵skとを生成する。そして、鍵生成装置100は、生成した公開パラメータpkを公開する。また、鍵生成装置100は、属性集合Γを入力としてKeyGenアルゴリズムを実行して、復号鍵skΓを生成して復号装置300へ秘密裡に送信する。
暗号化装置200は、公開パラメータpkと、メッセージmと、アクセスストラクチャSとを入力としてEncアルゴリズムを実行して、暗号文ctを生成する。暗号化装置200は、生成した暗号文ctを復号装置300へ送信する。
復号装置300は、公開パラメータpkと、復号鍵skΓと、暗号文ctとを入力としてDecアルゴリズムを実行して、メッセージm又は識別情報⊥を出力する。
<第3.暗号方式>
図14は、実施の形態2に係る鍵生成装置100の構成図である。図15は、実施の形態2に係る暗号化装置200の構成図である。復号装置300の構成は、図8に示す実施の形態1に係る復号装置300の構成と同じである。
図16は、実施の形態2に係るKeyGenアルゴリズムの処理を示すフローチャートである。図17は、実施の形態2に係るEncアルゴリズムの処理を示すフローチャートである。Setupアルゴリズムの処理とDecアルゴリズムの処理とは、それぞれ図9、図12に示す実施の形態1に係るSetupアルゴリズムの処理とDecアルゴリズムの処理と同じ流れである。
鍵生成装置100の機能と動作とについて説明する。
図14に示すように、鍵生成装置100は、マスター鍵生成部110、マスター鍵記憶部120、情報入力部130、復号鍵生成部140、鍵送信部150を備える。マスター鍵生成部110は、空間生成部111、行列生成部112、基底生成部113、鍵生成部114を備える。復号鍵生成部140は、乱数生成部143、鍵要素生成部144を備える。
図9に基づき、Setupアルゴリズムの処理について説明する。
(S101)から(S102)までの処理は、実施の形態1と同じである。
(S103:基底B生成ステップ)
基底生成部113は、処理装置により、実施の形態1における基底Bと変数Bi,jと変数B’i,j,Lと同様に、基底Dと変数Di,jと変数D’i,j,Lとを数157に示すように生成する。
Figure 2015125293
また、基底生成部113は、処理装置により、実施の形態1における基底B と基底B と同様に、基底D と基底D とを数158に示すように生成する。
Figure 2015125293
そして、基底生成部113は、基底D を基底Bとし、基底Dを基底B とし、基底D を基底Bとする。また、基底生成部113は、i,j=1,...,6の各整数i,jと、L=1,...,nの各整数Lとについて、変数Di,jを変数B i,jとし、変数D’i,j,Lを変数B’ i,j,Lとする。
(S104:基底B^生成ステップ)
鍵生成部114は、処理装置により、基底B^と、基底B^と、基底B^ と、基底B^ とを数159に示すように生成する。
Figure 2015125293
(S105)の処理は、実施の形態1と同じである。
つまり、(S101)から(S105)において、鍵生成装置100は、数160に示すアルゴリズムGABE(2) obを用いた、数161に示すSetupアルゴリズムを実行して、公開パラメータpkとマスター秘密鍵skとを生成する。ここで、数160に示すように、アルゴリズムGCP−ABE(2) obは、数136に示すアルゴリズムGABE(1) obを用いる。
Figure 2015125293
Figure 2015125293
なお、公開パラメータは、例えば、ネットワークを介して公開され、暗号化装置200や復号装置300が取得可能な状態にされる。
図16に基づき、KeyGenアルゴリズムの処理について説明する。
(S501:情報入力ステップ)
情報入力部130は、入力装置により、属性集合Γ:={x,...,xn’|x∈Fq,n’≦n−1}を入力する。なお、属性集合Γは、例えば、復号鍵skΓの使用者の属性情報が設定されている。
(S502:乱数生成ステップ)
乱数生成部143は、処理装置により、乱数を数162に示すように生成する。
Figure 2015125293
(S503:鍵要素生成ステップ)
鍵要素生成部144は、処理装置により、復号鍵skΓの要素k を数163に示すように生成する。
Figure 2015125293
また、鍵要素生成部144は、処理装置により、復号鍵skΓの要素K 1,j,K 2,jを数164に示すように生成する。
Figure 2015125293
(S504:鍵送信ステップ)
鍵送信部150は、(S501)で入力した属性の集合Γと、(S503)で生成されたk ,K 1,j,K 2,jとを要素とする復号鍵skΓを、例えば通信装置によりネットワークを介して秘密裡に復号装置300へ送信する。もちろん、復号鍵skΓは、他の方法により復号装置300へ送信されてもよい。
つまり、(S501)から(S503)において、鍵生成装置100は、数165に示すKeyGenアルゴリズムを実行して、復号鍵skΓを生成する。そして、(S504)で、鍵生成装置100は、生成した復号鍵skΓを復号装置300へ送信する。
Figure 2015125293
暗号化装置200の機能と動作とについて説明する。
図15に示すように、暗号化装置200は、公開パラメータ受信部210、情報入力部220、暗号化データ生成部230、データ送信部240を備える。また、暗号化データ生成部230は、乱数生成部231、暗号要素生成部232、fベクトル生成部233、sベクトル生成部234を備える。
図17に基づき、Encアルゴリズムの処理について説明する。
(S601)の処理は、図11に示す(S301)の処理と同じである。
(S602:情報入力ステップ)
情報入力部220は、入力装置により、アクセスストラクチャS:=(M,ρ)を入力する。なお、アクセスストラクチャSの設定については、実現したいシステムの条件に応じて設定されるものである。また、アクセスストラクチャSのρは、例えば、復号可能なユーザの属性情報が設定されている。
また、情報入力部220は、入力装置により、復号装置300へ送信するメッセージmを入力する。
(S603:fベクトル生成ステップ)
fベクトル生成部233は、処理装置により、ベクトルfを数166に示すようにランダムに生成する。
Figure 2015125293
(S604:sベクトル生成ステップ)
sベクトル生成部234は、処理装置により、ベクトルs→T:=(s,...,sを数167に示すように生成する。
Figure 2015125293
また、sベクトル生成部234は、処理装置により、値sを数168に示すように生成する。
Figure 2015125293
(S605:乱数生成ステップ)
乱数生成部231は、処理装置により、乱数を数169に示すように生成する。
Figure 2015125293
(S606:暗号要素生成ステップ)
暗号要素生成部232は、処理装置により、暗号文ctの要素cを数170に示すように生成する。
Figure 2015125293
また、暗号要素生成部232は、処理装置により、i=1,...,Lの各整数iについて、暗号文ctの要素cを数171に示すように生成する。
Figure 2015125293
また、暗号要素生成部232は、処理装置により、暗号文ctの要素cを数172に示すように生成する。
Figure 2015125293
(S607:データ送信ステップ)
データ送信部240は、(S602)で入力したアクセスストラクチャSと、(S606)で生成されたc,c,...,c,cとを要素とする暗号文ctを、例えば通信装置によりネットワークを介して復号装置300へ送信する。もちろん、暗号文ctは、他の方法により復号装置300へ送信されてもよい。
つまり、(S601)から(S606)において、暗号化装置200は、数173に示すEncアルゴリズムを実行して、暗号文ctを生成する。そして、(S607)で、暗号化装置200は生成した暗号文ctを復号装置300へ送信する。
Figure 2015125293
復号装置300の機能と動作とについて説明する。
図12に基づき、Decアルゴリズムの処理について説明する。
(S401:復号鍵受信ステップ)
復号鍵受信部310は、例えば、通信装置によりネットワークを介して、鍵生成装置100から送信された復号鍵skΓを受信する。また、復号鍵受信部310は、鍵生成装置100が生成した公開パラメータpkを受信する。
(S402:データ受信ステップ)
データ受信部320は、例えば、通信装置によりネットワークを介して、暗号化装置200が送信した暗号文ctを受信する。
(S403:スパンプログラム計算ステップ)
スパンプログラム計算部330は、処理装置により、(S402)で受信した暗号文ctに含まれるアクセスストラクチャSが、(S401)で受信した復号鍵skΓに含まれるΓを受理するか否かを判定する。
スパンプログラム計算部330は、アクセスストラクチャSがΓを受理する場合(S403で受理)、処理を(S404)へ進める。一方、アクセスストラクチャSがΓを拒絶する場合(S403で拒絶)、暗号文ctΓを復号鍵skで復号できないとして処理を終了する。
(S404)の処理は、実施の形態1と同じである。
(S405:復号要素生成ステップ)
復号部350は、処理装置により、暗号要素D ,...,D 6n,E を数174に示すように生成する。
Figure 2015125293
(S406:ペアリング演算ステップ)
復号部350は、処理装置により、数175を計算して、セッション鍵K=g ζを生成する。
Figure 2015125293
(S407)の処理は、実施の形態1と同じである。
つまり、(S401)から(S407)において、復号装置300は、数176に示すDecアルゴリズムを実行して、メッセージm’(=m)を生成する。
Figure 2015125293
実施の形態2で説明したCP−ABE方式では、復号鍵skΓは、要素kで5個と、j=1,...,6の各整数jについての要素C1,j及び要素C2,jで12個との合計17個のGの要素から構成される。つまり、復号鍵skΓは、nについて定数サイズである。
実施の形態2で説明したCP−ABE方式では、実施の形態1で説明したKP−ABE方式と同様に、復号処理(Decアルゴリズム)は、合計17個のみペアリング演算を実行する。つまり、復号処理で必要となるペアリング演算は少ない。
実施の形態3.
実施の形態3では、実施の形態1,2で説明したABE方式を応用したFE方式について説明する。
実施の形態3では、実施の形態1,2と同じ部分については説明を省略し、実施の形態1,2と異なる部分について説明する。
ここでは、実施の形態1で説明したKP−ABE方式を応用したKP−FE方式について説明する。
実施の形態1で説明したKP−ABE方式では、暗号文の要素(C1,j,C2,j)と、復号鍵の要素{k i=1,...,Lとが対応していた。KP−FE方式では、カテゴリt毎に、暗号文の要素(C1,j,t,C2,j,t)と、復号鍵の要素{k i.ti=1,...,Lとが生成される。そして、暗号文の要素(C1,j,t,C2,j,t)と、復号鍵の要素{k i,ti=1,...,Lとが対応する。
鍵生成装置100、暗号化装置200、復号装置300の構成は、それぞれ図6〜図8に示す実施の形態1に係る鍵生成装置100、暗号化装置200、復号装置300の構成と同じである。
また、各アルゴリズムの処理は、図9〜図12に示す実施の形態1に係る各アルゴリズムの処理と同じ流れである。
図9に基づき、Setupアルゴリズムの処理について説明する。
(S101:空間生成ステップ)
空間生成部111は、実施の形態1と同様に、パラメータparam:=(q,G,G,g,e)を生成する。
さらに、空間生成部111は、N:=5、t=1,...,dの各整数tについて、N1,t:=6nを設定する。ここで、dは属性カテゴリの数を表す値であり、1以上の整数である。また、nは1以上の整数である。そして、空間生成部111は、セキュリティパラメータ1λと、Nと、対称双線形ペアリング群のパラメータparamとを入力として、処理装置によりGdpvsを実行して、双対ペアリングベクトル空間のパラメータparamV0:=(q,V,G,A,e)を生成する。また、空間生成部111は、t=1,...,dの各整数tについて、セキュリティパラメータ1λと、N1,tと、対称双線形ペアリング群のパラメータparamとを入力として、処理装置によりGdpvsを実行して、双対ペアリングベクトル空間のパラメータparamV1,t:=(q,V1,t,G,A,e)を生成する。
(S102:線形変換生成ステップ)
行列生成部112は、処理装置により、線形変換Xと線形変換{X1,tt=1,...,dとを生成する。
線形変換Xは、実施の形態1と同じである。線形変換{X1,tt=1,...,dは数177のように生成される。
Figure 2015125293
なお、以下、{μi,j,t,μ’i,j,L,ti,j=1,...,6;L=1,...,nは、線形変換X1,tにおける0以外の要素を示す。
(S103:基底B生成ステップ)
基底生成部113は、処理装置により、基底Bと変数Bi,j,tと変数B’i,j,L,tとを数178に示すように生成する。
Figure 2015125293
また、基底生成部113は、処理装置により、基底B と基底B 1,tとを数179に示すように生成する。
Figure 2015125293
(S104:基底B^生成ステップ)
鍵生成部114は、処理装置により、基底B^と、基底B^1,tと、基底B^ と、基底B^ 1,tとを数180に示すように生成する。
Figure 2015125293
(S105:マスター鍵生成ステップ)
鍵生成部114は、処理装置により、公開パラメータpk:=(1λ,param,B^,{B^1,tt=1,...,d)とし、マスター秘密鍵sk:=(B^ ,{B^ 1,tt=1,...,dとする。そして、鍵生成部114は、公開パラメータpkと、マスター秘密鍵skとをマスター鍵記憶部120に記憶する。
なお、param:=(paramV0,{paramV1,tt=1,...,d,g)である。
つまり、(S101)から(S105)において、鍵生成装置100は、数181に示すアルゴリズムGFE(1) obを用いた、数182に示すSetupアルゴリズムを実行して、公開パラメータpkとマスター秘密鍵skとを生成する。
Figure 2015125293
Figure 2015125293
図10に基づき、KeyGenアルゴリズムの処理について説明する。
(S201)から(S202)までの処理は、実施の形態1と同じである。
(S203:sベクトル生成ステップ)
sベクトル生成部142は、処理装置により、ベクトルs→T:=(s,...,sを数183に示すように生成する。
Figure 2015125293
また、sベクトル生成部142は、処理装置により、値sを数184に示すように生成する。
Figure 2015125293
(S204:乱数生成ステップ)
乱数生成部143は、処理装置により、乱数を数185に示すように生成する。
Figure 2015125293
(S205:鍵要素生成ステップ)
鍵要素生成部144は、処理装置により、復号鍵skの要素k を実施の形態1と同様に生成する。
また、鍵要素生成部144は、処理装置により、i=1,...,Lの各整数i及び集合Ivi→に含まれるインデックスtについて、復号鍵skの要素k を数186に示すように生成する。
Figure 2015125293
(S206)の処理は、実施の形態1と同じである。
つまり、(S201)から(S205)において、鍵生成装置100は、数187に示すKeyGenアルゴリズムを実行して、復号鍵skを生成する。そして、(S206)で、鍵生成装置100は、生成した復号鍵skを復号装置300へ送信する。
Figure 2015125293
図11に基づき、Encアルゴリズムの処理について説明する。
(S301)の処理は、実施の形態1と同じである。
(S302:情報入力ステップ)
情報入力部220は、入力装置により、復号装置300へ送信するメッセージmを入力する。また、情報入力部220は、入力装置により、属性集合Γ:={x1,t,...,xnt,t,n’≦n−1,t=1,...,d}を入力する。
(S303:乱数生成ステップ)
乱数生成部231は、処理装置により、乱数を数188に示すように生成する。
Figure 2015125293
(S304:暗号要素生成ステップ)
暗号要素生成部232は、処理装置により、暗号文ctΓの要素c及び要素cを実施の形態1と同様に生成する。
また、暗号要素生成部232は、処理装置により、暗号文ctΓの要素C1,j,t,C2,j,tを数189に示すように生成する。
Figure 2015125293
(S305)の処理は、実施の形態1と同じである。
つまり、(S301)から(S304)において、暗号化装置200は、数190に示すEncアルゴリズムを実行して、暗号文ctΓを生成する。そして、(S305)で、暗号化装置200は生成した暗号文ctΓを復号装置300へ送信する。
Figure 2015125293
図12に基づき、Decアルゴリズムの処理について説明する。
(S401)から(S404)までの処理は、実施の形態1と同じである。
(S405:復号要素生成ステップ)
復号部350は、処理装置により、復号要素D 1,t,...,D 6n,t,E j,tを数191に示すように生成する。
Figure 2015125293
(S406:ペアリング演算ステップ)
復号部350は、処理装置により、数192を計算して、セッション鍵K=g ζを生成する。
Figure 2015125293
(S407)の処理は、実施の形態1と同じである。
つまり、(S401)から(S407)において、復号装置300は、数193に示すDecアルゴリズムを実行して、メッセージm’(=m)を生成する。
Figure 2015125293
ここでは、実施の形態1で説明したKP−ABE方式を応用したKP−FE方式について説明した。実施の形態2で説明したCP−ABE方式を応用したCP−FE方式についても、同様の考え方により構成できる。実施の形態2で説明したCP−ABE方式を応用したCP−FE方式の各アルゴリズムは、数194から数198に示す通りである。
Figure 2015125293
Figure 2015125293
Figure 2015125293
Figure 2015125293
Figure 2015125293
以上のように、実施の形態1,2に係るABE方式を応用してFE方式を構成することができる。
実施の形態4.
実施の形態4では、実施の形態2で説明したCP−ABE方式を応用した属性ベース署名(Attribute−Based Signeture ABS)方式について説明する。
実施の形態4では、実施の形態2と同じ部分については説明を省略し、実施の形態1と異なる部分について説明する。
第1に、実施の形態4に係る署名方式の基本構成について説明する。
第2に、実施の形態4に係る署名方式を実現する暗号システム10の構成について説明する。
第3に、実施の形態4に係る署名方式について詳細に説明する。
<第1.暗号方式の基本構成>
ABS方式の構成を簡単に説明する。ABS方式は、Setup、KeyGen、Sig、Verの4つのアルゴリズムを備える。
(Setup)
Setupアルゴリズムは、セキュリティパラメータλと、暗号文に対する属性の数の上限nとが入力され、公開パラメータpkと、マスター鍵skとを出力する確率的アルゴリズムである。
(KeyGen)
KeyGenアルゴリズムは、公開パラメータpkと、マスター鍵skと、属性集合Γ:={x1≦j≦n’とを入力として、署名鍵skΓを出力する確率的アルゴリズムである。
(Sig)
Sigアルゴリズムは、公開パラメータpkと、メッセージmと、アクセスストラクチャS:=(M,ρ)と、署名鍵skΓとを入力として、署名σを出力する確率的アルゴリズムである。
(Ver)
Verアルゴリズムは、公開パラメータpkと、メッセージmと、アクセスストラクチャS:=(M,ρ)と、署名σとを入力として、署名の検証に成功したことを示す値“1”、又は、署名の検証に失敗したことを示す値“0”を出力するアルゴリズムである。
<第2.ABS方式を実現する暗号システム10の構成>
図18は、実施の形態4に係るABS方式を実現する暗号システム10の構成図である。
暗号システム10は、鍵生成装置100、署名装置400(送信装置の一例)、検証装置500(受信装置の一例)を備える。
鍵生成装置100は、セキュリティパラメータλと、暗号文に対する属性の数の上限nとを入力としてSetupアルゴリズムを実行して、公開パラメータpkとマスター鍵skとを生成する。そして、鍵生成装置100は、生成した公開パラメータpkを公開する。また、鍵生成装置100は、属性集合Γを入力としてKeyGenアルゴリズムを実行して、署名鍵skΓを生成して署名装置400へ秘密裡に送信する。
署名装置400は、公開パラメータpkと、メッセージmと、アクセスストラクチャSと、署名鍵skΓとを入力としてSigアルゴリズムを実行して、署名σを生成する。署名装置400は、生成した署名σと、メッセージmと、アクセスストラクチャSと、を検証装置500へ送信する。
検証装置500は、公開パラメータpkと、メッセージmと、アクセスストラクチャSと、署名σとを入力としてVerアルゴリズムを実行して、値“1”、又は、値“0”を出力する。
<第3.署名方式>
図19は、実施の形態4に係る鍵生成装置100の構成図である。図20は、実施の形態4に係る署名装置400の構成図である。図21は、実施の形態4に係る検証装置500の構成図である。
図22と図23とは、実施の形態4に係る鍵生成装置100の動作を示すフローチャートである。なお、図22は、実施の形態4に係るSetupアルゴリズムの処理を示すフローチャートであり、図23は、実施の形態4に係るKeyGenアルゴリズムの処理を示すフローチャートである。図24は、実施の形態4に係る署名装置400の動作を示すフローチャートであり、実施の形態4に係るSigアルゴリズムの処理を示す。図25は、実施の形態4に係る検証装置500の動作を示すフローチャートであり、実施の形態4に係るVerアルゴリズムの処理を示す。
なお、以下の説明において、H:=(KHλ,Hhk λ,D)は、衝突困難ハッシュ関数である(非特許文献30参照)。衝突困難ハッシュ関数とは、出力が同じになる2つの入力を見つけることが困難なハッシュ関数である。
具体的には、アルゴリズムGbpgに関する衝突困難ハッシュ関数系Hと、多項式poly(λ)とについて以下の2つのことが言える。
1.鍵空間系は、λによって索引付けされる。各鍵空間は、KHλによって示されるビット列における確率空間である。1λを入力とした場合の出力分布がKHλと等しい確率的多項式時間アルゴリズムが存在する。
2.ハッシュ関数系は、λと、KHλからランダムに選択されたhkと、D:={0,1}poly(λ)とによって索引付けされる。ここで、各関数Hhk λ,Dは、Dの要素からF への写像である。なお、qは、アルゴリズムGbpg(1λ)の出力paramの最初の要素である。1λとhkとd∈Dとを入力として、Hhk λ,D(d)を出力する決定的多項式時間アルゴリズムがある。
鍵生成装置100の機能と動作とについて説明する。
図19に示すように、鍵生成装置100は、マスター鍵生成部110、マスター鍵記憶部120、情報入力部130、復号鍵生成部140、鍵送信部150を備える。マスター鍵生成部110は、空間生成部111、行列生成部112、基底生成部113、鍵生成部114を備える。復号鍵生成部140は、乱数生成部143、鍵要素生成部144を備える。
図22に基づき、Setupアルゴリズムの処理について説明する。
(S701:空間生成ステップ)
空間生成部111は、図9の(S101)と同様に、パラメータparam:=(q,G,G,g,e)を生成する。
さらに、空間生成部111は、N:=4、N:=6n、N:=7を設定する。そして、空間生成部111は、t=0,1,2の各整数tについて、セキュリティパラメータ1λと、Nと、対称双線形ペアリング群のパラメータparamとを入力として、処理装置によりGdpvsを実行して、双対ペアリングベクトル空間のパラメータparamVt:=(q,V,G,A,e)を生成する。
(S702:線形変換生成ステップ)
行列生成部112は、処理装置により、t=0,2の各整数tについて、線形変換Xを数199に示すように生成する。
Figure 2015125293
また、行列生成部112は、処理装置により、線形変換Xを数200に示すように生成する。
Figure 2015125293
なお、以下、{μi,j,μ’i,j,Li,j=1,...,6;L=1,...,nは、線形変換Xにおける0以外の要素を示す。
(S703:基底B生成ステップ)
基底生成部113は、処理装置により、基底B と基底B と変数B i,jと変数B’ i,j,Lとを数201に示すように生成する。
Figure 2015125293
また、基底生成部113は、処理装置により、基底Bと基底Bと基底Bとを数202に示すように生成する。
Figure 2015125293
(S704:基底B^生成ステップ)
鍵生成部114は、処理装置により、基底B^と、基底B^と、基底B^と、基底B^ と、基底B^ と、基底B^ とを数203に示すように生成する。
Figure 2015125293
(S705:ハッシュキー生成ステップ)
マスター鍵生成部110は、処理装置により、数204を計算して、ハッシュキーhkをランダムに生成する。
Figure 2015125293
(S706:マスター鍵生成ステップ)
鍵生成部114は、処理装置により、公開パラメータpk:=(1λ,hk,param,{B^t=0,1,2,{B^ t=1,2,b 0,3)とし、マスター秘密鍵sk:=b 0,1とする。そして、鍵生成部114は、公開パラメータpkと、マスター秘密鍵skとをマスター鍵記憶部120に記憶する。
なお、param:=({paramVtt=0,1,2,g:=e(g,g)φ)である。
つまり、(S701)から(S706)において、鍵生成装置100は、数205に示すアルゴリズムGABS obを用いた、数206に示すSetupアルゴリズムを実行して、公開パラメータpkとマスター秘密鍵skとを生成する。
Figure 2015125293
Figure 2015125293
図23に基づき、KeyGenアルゴリズムの処理について説明する。
(S801)の処理は、図16の(S501)の処理と同じである。但し、アクセスストラクチャSのρは、例えば、署名鍵skΓの使用者の属性情報が設定されている。
(S802:乱数生成ステップ)
乱数生成部143は、処理装置により、乱数を数207に示すように生成する。
Figure 2015125293
(S803:鍵要素生成ステップ)
鍵要素生成部144は、処理装置により、署名鍵skΓの要素k を数208に示すように生成する。
Figure 2015125293
また、鍵要素生成部144は、処理装置により、署名鍵skΓの要素L 1,j,L 2,jを数209に示すように生成する。
Figure 2015125293
また、鍵要素生成部144は、処理装置により、署名鍵skΓの要素k 2,1,k 2,2を数210に示すように生成する。
Figure 2015125293
(S804:鍵送信ステップ)
鍵送信部150は、(S801)で入力した属性の集合Γと、(S803)で生成されたk ,L 1,j,L 2,j,k 2,1,k 2,2とを要素とする署名鍵skΓを、例えば通信装置によりネットワークを介して秘密裡に署名装置400へ送信する。もちろん、署名鍵skΓは、他の方法により署名装置400へ送信されてもよい。
つまり、(S801)から(S803)において、鍵生成装置100は、数211に示すKeyGenアルゴリズムを実行して、復号鍵skΓを生成する。そして、(S804)で、鍵生成装置100は、生成した復号鍵skΓを復号装置300へ送信する。
Figure 2015125293
なお、{L 1,j,L 2,jj=1,...,6と、ベクトルyとから、要素k は数212のように定義される。
Figure 2015125293
署名装置400の機能と動作とについて説明する。
図20に示すように、署名装置400は、署名鍵受信部410、情報入力部420、補完係数計算部430、署名データ生成部440、データ送信部450を備える。また、署名データ生成部440は、乱数生成部441、署名要素生成部442を備える。
図24に基づき、Sigアルゴリズムの処理について説明する。
(S901:署名鍵受信ステップ)
署名鍵受信部410は、例えば、通信装置によりネットワークを介して、鍵生成装置100が生成した署名鍵skΓを受信する。また、署名鍵受信部410は、鍵生成装置100が生成した公開パラメータpkを受信する。
(S902:情報入力ステップ)
情報入力部420は、入力装置により、アクセスストラクチャS:=(M,ρ)を入力する。また、情報入力部420は、入力装置により、署名を付すメッセージmを入力する。
(S903:スパンプログラム計算ステップ)
補完係数計算部430は、処理装置により、(S902)で入力したアクセスストラクチャSが、(S901)で受信した署名鍵skΓに含まれる属性集合Γを受理するか否かを判定する。
補完係数計算部430は、アクセスストラクチャSが属性集合Γを受理する場合(S903で受理)、処理を(S904)へ進める。一方、アクセスストラクチャSが属性集合Γを拒絶する場合(S903で拒絶)、処理を終了する。
(S904:補完係数計算ステップ)
補完係数計算部430は、処理装置により、数213となるベクトルyと、数214となるIと、Iに含まれる各整数iについて定数(補完係数)αとを計算する。
Figure 2015125293
Figure 2015125293
(S905:乱数生成ステップ)
乱数生成部441は、処理装置により、乱数を数215に示すように生成する。
Figure 2015125293
(S906:署名要素生成ステップ)
署名要素生成部442は、処理装置により、署名σの要素s を数216に示すように生成する。
Figure 2015125293
ここで、r は、数217である。
Figure 2015125293
また、署名要素生成部442は、処理装置により、i=1,...,Lの各整数iについて、署名σの要素s を数218に示すように生成する。
Figure 2015125293
ここで、r は、数219である。
Figure 2015125293
また、γとu :=(ui,i’(i’=1,...,n)とは、数220である。
Figure 2015125293
また、署名要素生成部442は、処理装置により、署名σの要素s L+1を数221に示すように生成する。
Figure 2015125293
ここで、r L+1は、数222である。
Figure 2015125293
(S907:データ送信ステップ)
データ送信部450は、要素s ,s ,s L+1と、メッセージmと、アクセスストラクチャS:=(M,ρ)とを含む署名σを、例えば通信装置によりネットワークを介して検証装置500へ送信する。もちろん、署名σは、他の方法により検証装置500へ送信されてもよい。
つまり、(S901)から(S906)において、署名装置400は、数223に示すSigアルゴリズムを実行して、署名σを生成する。そして、(S907)で、署名装置400は、生成した署名σを検証装置500へ送信する。
Figure 2015125293
Figure 2015125293
検証装置500の機能と動作とについて説明する。
図21に示すように、検証装置500は、公開パラメータ受信部510、データ受信部520、検証データ生成部530、検証部540を備える。また、検証データ生成部530は、fベクトル生成部531、sベクトル生成部532、乱数生成部533、検証要素生成部534を備える。
図25に基づき、Verアルゴリズムの処理について説明する。
(S1001:公開パラメータ受信ステップ)
公開パラメータ受信部510は、例えば、通信装置によりネットワークを介して、鍵生成装置100が生成した公開パラメータpkを受信する。
(S1002:署名受信ステップ)
データ受信部520は、例えば、通信装置によりネットワークを介して、署名装置400が送信した署名σを受信する。
(S1003:fベクトル生成ステップ)
fベクトル生成部531は、処理装置により、ベクトルfを数224に示すようにランダムに生成する。
Figure 2015125293
(S1004:sベクトル生成ステップ)
sベクトル生成部532は、処理装置によりベクトルs→T:=(s,...,sを数225に示すように生成する。
Figure 2015125293
また、sベクトル生成部532は、処理装置により、値sを数226に示すように生成する。
Figure 2015125293
(S1005:乱数生成ステップ)
乱数生成部533は、処理装置により、乱数を数227に示すように生成する。
Figure 2015125293
(S1006:検証要素生成ステップ)
検証要素生成部534は、処理装置により、検証鍵の要素cを数228に示すように生成する。
Figure 2015125293
また、検証要素生成部534は、処理装置により、i=1,...,Lの各整数iについて、検証鍵の要素cを数229に示すように生成する。
Figure 2015125293
また、検証要素生成部534は、処理装置により、検証鍵の要素cL+1を数230に示すように生成する。
Figure 2015125293
(S1007:第1ペアリング演算ステップ)
検証部540は、処理装置により、ペアリング演算e(b0,1,s )を計算する。
ペアリング演算e(b0,1,s )を計算した結果が値1であれば、検証部540は、署名の検証に失敗したことを示す値0を出力して、処理を終了する。一方、ペアリング演算e(b0,1,s )を計算した結果が値1でなければ、検証部540は、処理をS1008へ進める。
(S1008:第2ペアリング演算ステップ)
検証部540は、処理装置により、数231に示すペアリング演算を計算する。
Figure 2015125293
数231に示すペアリング演算を計算した結果が値1であれば、検証部540は、署名の検証に成功したことを示す値1を出力する。一方、その他の値であれば、検証部540は、署名の検証に失敗したことを示す値0を出力する。
つまり、(S1001)から(S1008)において、検証装置500は、数232に示すVerアルゴリズムを実行して、署名σを検証する。
Figure 2015125293
以上のように、実施の形態2で説明したCP−ABE方式を応用したABS方式を構成することができる。
実施の形態2で説明したCP−ABE方式で復号鍵skΓのサイズを小さくできたのと同様に、実施の形態4で説明したABS方式では、署名鍵skΓのサイズを小さくすることができる。
なお、ここでは、実施の形態2で説明したCP−ABE方式を応用したABS方式について説明した。実施の形態3で説明したCP−FE方式を応用したABS方式についても、実施の形態4で説明したABS方式に対して、実施の形態3の考え方を応用することにより構成できる。
実施の形態5.
以上の実施の形態では、双対ベクトル空間において暗号処理を実現する方法について説明した。実施の形態5では、双対加群において暗号処理を実現する方法について説明する。
つまり、以上の実施の形態では、素数位数qの巡回群において暗号処理を実現した。しかし、合成数Mを用いて数233のように環Rを表した場合、環Rを係数とする加群においても、上記実施の形態で説明した暗号処理を適用することができる。
Figure 2015125293
以上の実施の形態で説明したアルゴリズムにおけるFをRに変更すれば、双対加群における暗号処理を実現することができる。
なお、以上の実施の形態では、符号化部、秘匿部、秘密鍵ランダム化部、暗号文ランダム化部の次元をそれぞれ、n、2n、2n、n次元とし、基底B及び基底B の次元を6n次元とした。しかし、これに限らず、秘匿部、秘密鍵ランダム化部、暗号文ランダム化部の次元をそれぞれ、nに依存しない、u,w,z次元とし、基底B及び基底B の次元をn+u+w+z次元としてもよい。なお、u,w,zは、0以上の整数である。
また、上記説明では、KPの場合には、暗号文のサイズが小さくなるように、第1ベクトルを用いて暗号文の要素を生成し、第2ベクトルを用いて復号鍵の要素を生成した。しかし、KPの場合に、復号鍵のサイズが小さくなるように、第1ベクトルを用いて復号鍵の要素を生成し、第2ベクトルを用いて暗号文の要素を生成してもよい。
同様に、上記説明では、CPの場合には、復号鍵のサイズが小さくなるように、第1ベクトルを用いて復号鍵の要素を生成し、第2ベクトルを用いて暗号文の要素を生成した。しかし、CPの場合に、暗号文のサイズが小さくなるように、第1ベクトルを用いて暗号文の要素を生成し、第2ベクトルを用いて復号鍵の要素を生成してもよい。
また、以上の実施の形態では、1台の鍵生成装置100が復号鍵を生成するとした。しかし、以上の実施の形態のアルゴリズムを、非特許文献3に記載された分散多管理者の方式と組み合わせて、複数の鍵生成装置100により1つの復号鍵が生成されるようにすることも可能である。
なお、以上の実施の形態において、安全性の証明の観点から、i=1,...,Lの各整数iについてのρ(i)は、それぞれ異なる識別情報tについての肯定形の組(t,v)又は否定形の組¬(t,v)であると限定してもよい。
言い替えると、ρ(i)=(t,v)又はρ(i)=¬(t,v)である場合に、関数ρ~を、ρ~(i)=tである{1,...,L}→{1,...d}の写像であるとする。この場合、ρ~が単射であると限定してもよい。なお、ρ(i)は、上述したアクセスストラクチャS:=(M,ρ(i))のρ(i)である。
図26は、実施の形態1〜5に示した暗号システム10の各装置(鍵生成装置100、暗号化装置200、復号装置300、署名装置400、検証装置500)のハードウェア構成の例を示す図である。
暗号システム10の各装置はコンピュータであり、暗号システム10の各装置の各要素をプログラムで実現することができる。
暗号システム10の各装置のハードウェア構成としては、バスに、演算装置901、外部記憶装置902、主記憶装置903、通信装置904、入出力装置905が接続されている。
演算装置901は、プログラムを実行するCPU(Central Processing Unit)等である。外部記憶装置902は、例えばROM(Read Only Memory)やフラッシュメモリ、ハードディスク装置等である。主記憶装置903は、例えばRAM(Random Access Memory)等である。通信装置904は、例えば通信ボード等である。入出力装置905は、例えばマウス、キーボード、ディスプレイ装置等である。
プログラムは、通常は外部記憶装置902に記憶されており、主記憶装置903にロードされた状態で、順次演算装置901に読み込まれ、実行される。
プログラムは、マスター鍵生成部110、マスター鍵記憶部120、情報入力部130、復号鍵生成部140、鍵送信部150、公開パラメータ受信部210、情報入力部220、暗号化データ生成部230、データ送信部240、復号鍵受信部310、データ受信部320、スパンプログラム計算部330、補完係数計算部340、復号部350、署名鍵受信部410、情報入力部420、補完係数計算部430、署名データ生成部440、データ送信部450、公開パラメータ受信部510、データ受信部520、検証データ生成部530、検証部540として説明している機能を実現するプログラムである。
更に、外部記憶装置902にはオペレーティングシステム(OS)も記憶されており、OSの少なくとも一部が主記憶装置903にロードされ、演算装置901はOSを実行しながら、上記プログラムを実行する。
また、実施の形態1〜5の説明において、「公開パラメータpk」、「マスター秘密鍵sk」、「復号鍵skΓ,sk」、「暗号文ct,ctΓ」、「署名鍵skΓ」、「検証鍵」、「アクセスストラクチャS」、「属性集合Γ」、「メッセージm」、「署名σ」等として説明している情報やデータや信号値や変数値が主記憶装置903にファイルとして記憶されている。
なお、図26の構成は、あくまでも暗号システム10の各装置のハードウェア構成の一例を示すものであり、暗号システム10の各装置のハードウェア構成は図26に記載の構成に限らず、他の構成であってもよい。
100 鍵生成装置、110 マスター鍵生成部、111 空間生成部、112 行列生成部、113 基底生成部、114 鍵生成部、120 マスター鍵記憶部、130 情報入力部、140 復号鍵生成部、141 fベクトル生成部、142 sベクトル生成部、143 乱数生成部、144 鍵要素生成部、150 鍵送信部、200 暗号化装置、210 公開パラメータ受信部、220 情報入力部、230 暗号化データ生成部、231 乱数生成部、232 暗号要素生成部、233 fベクトル生成部、234 sベクトル生成部、240 データ送信部、300 復号装置、310 復号鍵受信部、320 データ受信部、330 スパンプログラム計算部、340 補完係数計算部、350 復号部、400 署名装置、410 署名鍵受信部、420 情報入力部、430 補完係数計算部、440 署名データ生成部、441 乱数生成部、442 署名要素生成部、450 データ送信部、500 検証装置、510 公開パラメータ受信部、520 データ受信部、530 検証データ生成部、531 fベクトル生成部、532 sベクトル生成部、533 乱数生成部、534 検証要素生成部、540 検証部。

Claims (9)

  1. 基底B及び基底Bを利用し、暗号処理を行う暗号システムであり、
    属性情報x(i=1,...,n’,n’は1以上n−1以下の整数,nは2以上の整数)を根とする多項式の係数y(j=1,...,n)からなる第1ベクトルと、述語情報vのべき乗v (i=0,...,n−1)からなる第2ベクトルとの一方のベクトルを用いて生成された送信側ベクトルであって、前記基底Bにおけるベクトルである送信側ベクトルを生成する送信装置と、
    前記第1ベクトルと前記第2ベクトルとの他方のベクトルを用いて生成された受信側ベクトルであって、前記基底Bにおけるベクトルである受信側ベクトルと、前記送信側ベクトルとについて、ペアリング演算を行う受信装置と
    を備えることを特徴とする暗号システム。
  2. 前記基底B及び前記基底Bは、各行各列に少なくとも1つは定数値0以外の値を有する疎行列を用いて基底Aを変形して生成された基底である
    ことを特徴とする請求項1に記載の暗号システム。
  3. 前記第1ベクトルは、数1に示すベクトルであり、
    前記第2ベクトルは、数2に示すベクトルである
    ことを特徴とする請求項1又は2に記載の暗号システム。
    Figure 2015125293
    Figure 2015125293
  4. 前記送信装置は、暗号文ctΓを生成する暗号化装置であり、数3に示す送信側ベクトルcを含む暗号文ctΓを生成し、
    前記受信装置は、前記暗号文ctΓを復号する復号装置であり、数4に示す受信側ベクトルk を含む復号鍵skを用いて前記暗号文ctΓを復号する
    ことを特徴とする請求項3に記載の暗号システム。
    Figure 2015125293
    Figure 2015125293
  5. 前記送信装置は、暗号文ctを生成する暗号化装置であり、数5に示す送信側ベクトルcを含む暗号文ctを生成し、
    前記受信装置は、前記暗号文ctを復号する復号装置であり、数6に示す受信側ベクトルk を含む復号鍵skΓを用いて前記暗号文ctを復号する
    ことを特徴とする請求項3に記載の暗号システム。
    Figure 2015125293
    Figure 2015125293
  6. 前記送信装置は、暗号文ctΓを生成する暗号化装置であり、数7に示す送信側ベクトルc1.tを含む暗号文ctΓを生成し、
    前記受信装置は、前記暗号文ctΓを復号する復号装置であり、数8に示す受信側ベクトルk i.tを含む復号鍵skを用いて前記暗号文ctΓを復号する
    ことを特徴とする請求項3に記載の暗号システム。
    Figure 2015125293
    Figure 2015125293
  7. 前記送信装置は、暗号文ctを生成する暗号化装置であり、数9に示す送信側ベクトルci.tを含む暗号文ctを生成し、
    前記受信装置は、前記暗号文ctを復号する復号装置であり、数10に示す受信側ベクトルk 1.tを含む復号鍵skΓを用いて前記暗号文ctを復号する
    ことを特徴とする請求項3に記載の暗号システム。
    Figure 2015125293
    Figure 2015125293
  8. 前記送信装置は、署名Sigを生成する署名装置であり、数11に示す送信側ベクトルs を含む署名Sigを生成し、
    前記受信装置は、前記署名Sigを検証する検証装置であり、数12に示す受信側ベクトルcを含む検証鍵vkを用いて前記署名Sigを検証する
    ことを特徴とする請求項3に記載の暗号システム。
    Figure 2015125293
    Figure 2015125293
  9. 基底B及び基底Bを利用し、暗号処理を行う暗号プログラムであり、
    属性情報x(i=1,...,n’,n’は1以上n−1以下の整数,nは2以上の整数)を根とする多項式の係数y(j=1,...,n)からなる第1ベクトルと、述語情報vのべき乗v (i=0,...,n−1)からなる第2ベクトルとの一方のベクトルを用いて生成された送信側ベクトルであって、前記基底Bにおけるベクトルである送信側ベクトルを生成する送信側処理と、
    前記第1ベクトルと前記第2ベクトルとの他方のベクトルを用いて生成された受信側ベクトルであって、前記基底Bにおけるベクトルである受信側ベクトルと、前記送信側ベクトルとについて、ペアリング演算を行う受信側処理と
    をコンピュータに実行させることを特徴とする暗号プログラム。
JP2016503892A 2014-02-24 2014-02-24 暗号システム、署名システム、暗号プログラム及び署名プログラム Active JP6053983B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/054280 WO2015125293A1 (ja) 2014-02-24 2014-02-24 暗号システム及び暗号プログラム

Publications (2)

Publication Number Publication Date
JP6053983B2 JP6053983B2 (ja) 2016-12-27
JPWO2015125293A1 true JPWO2015125293A1 (ja) 2017-03-30

Family

ID=53877826

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016503892A Active JP6053983B2 (ja) 2014-02-24 2014-02-24 暗号システム、署名システム、暗号プログラム及び署名プログラム

Country Status (5)

Country Link
US (1) US9640090B2 (ja)
EP (1) EP3113405B1 (ja)
JP (1) JP6053983B2 (ja)
CN (1) CN106031080B (ja)
WO (1) WO2015125293A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10396984B2 (en) * 2014-05-02 2019-08-27 Barclays Services Limited Apparatus and system having multi-party cryptographic authentication
EP3226460A1 (en) * 2016-04-01 2017-10-04 Institut Mines-Telecom Secret key estimation methods and devices
CN106600788A (zh) * 2016-12-23 2017-04-26 嘉应学院 一种用于密码锁的实现时间数据安全交互的方法
JP7248120B2 (ja) * 2019-07-10 2023-03-29 日本電信電話株式会社 暗号システム、鍵生成装置、暗号化装置、復号装置、及びプログラム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10148415C2 (de) * 2001-09-29 2003-07-31 Univ Braunschweig Tech Verfahren und Vorrichtung zum Verschlüsseln und Entschlüsseln von Daten
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 三菱電機株式会社 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム
WO2011062136A1 (ja) 2009-11-20 2011-05-26 三菱電機株式会社 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム
JP5325755B2 (ja) 2009-12-11 2013-10-23 株式会社エヌ・ティ・ティ・データ 暗号文復号権限委譲システム、暗号文復号権限委譲方法、暗号文変換装置、復号権限所持者用装置および暗号文変換プログラム
JP5424974B2 (ja) 2010-04-27 2014-02-26 三菱電機株式会社 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置
JP5693206B2 (ja) 2010-12-22 2015-04-01 三菱電機株式会社 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム
JP5606344B2 (ja) 2011-01-25 2014-10-15 三菱電機株式会社 署名処理システム、鍵生成装置、署名装置、検証装置、署名処理方法及び署名処理プログラム
JP5513444B2 (ja) 2011-05-31 2014-06-04 日本電信電話株式会社 ベクトル構成システム、方法、装置及びプログラム並びに暗号システム
JP5651609B2 (ja) 2012-01-23 2015-01-14 日本電信電話株式会社 検索可能暗号システム、検索装置、計算装置、及びプログラム
JP5814880B2 (ja) * 2012-07-31 2015-11-17 三菱電機株式会社 暗号システム、暗号方法、暗号プログラム及び復号装置
US8559631B1 (en) * 2013-02-09 2013-10-15 Zeutro Llc Systems and methods for efficient decryption of attribute-based encryption

Also Published As

Publication number Publication date
EP3113405A1 (en) 2017-01-04
EP3113405A4 (en) 2017-11-01
JP6053983B2 (ja) 2016-12-27
EP3113405B1 (en) 2020-10-28
WO2015125293A1 (ja) 2015-08-27
US9640090B2 (en) 2017-05-02
US20170053566A1 (en) 2017-02-23
CN106031080B (zh) 2019-07-16
CN106031080A (zh) 2016-10-12

Similar Documents

Publication Publication Date Title
Wang et al. Cryptanalysis of a symmetric fully homomorphic encryption scheme
Hermassi et al. Security analysis of an image encryption algorithm based on a DNA addition combining with chaotic maps
JP6053966B2 (ja) 暗号システム及び再暗号化装置
JP5680007B2 (ja) 暗号システム、暗号方法及び暗号プログラム
JP5618881B2 (ja) 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム
JP5905128B2 (ja) 暗号システム、再暗号化装置及び暗号方法
KR101606317B1 (ko) 암호 시스템, 암호 방법, 암호 프로그램을 기록한 컴퓨터 판독가능한 기록 매체 및 복호 장치
JP5951122B2 (ja) 暗号システム、暗号方法及び暗号プログラム
KR101431412B1 (ko) 서명 처리 시스템, 키 생성 장치, 서명 장치, 검증 장치, 서명 처리 방법 및 서명 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
JP2010273317A (ja) 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム
CN111783129A (zh) 一种保护隐私的数据处理方法及系统
WO2016112954A1 (en) Method and system for providing encrypted data
WO2016088453A1 (ja) 暗号化装置、復号装置、暗号処理システム、暗号化方法、復号方法、暗号化プログラム、及び復号プログラム
JP6053983B2 (ja) 暗号システム、署名システム、暗号プログラム及び署名プログラム
JP6022073B2 (ja) 暗号システム、再暗号化鍵生成装置及び再暗号化装置
CN114362912A (zh) 基于分布式密钥中心的标识密码生成方法、电子设备及介质
JP6266130B2 (ja) 暗号システム、マスター鍵更新装置及びマスター鍵更新プログラム
Gomathisankaran et al. HORNS: A semi-perfectly secret homomorphic encryption system
JP6087849B2 (ja) 代理署名装置、署名検証装置、鍵生成装置、代理署名システム、およびプログラム
EP4024755B1 (en) Secured performance of an elliptic curve cryptographic process
Chandra et al. STUDY OF RSA ALGORITHM FOR DATA ENCRYPTION AND DECRYPTION
Sirajudeen et al. Matrix-Based Data Security in Cloud Computing Using Advanced Cramer–Shoup Cryptosystem
Babenko et al. Influence of S-Boxes to the resistance of GOST algorithm against linear cryptanalysis

Legal Events

Date Code Title Description
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: 20161101

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161129

R150 Certificate of patent or registration of utility model

Ref document number: 6053983

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