JPWO2014112048A1 - 暗号システム、再暗号化装置及び暗号方法 - Google Patents

暗号システム、再暗号化装置及び暗号方法 Download PDF

Info

Publication number
JPWO2014112048A1
JPWO2014112048A1 JP2014557223A JP2014557223A JPWO2014112048A1 JP WO2014112048 A1 JPWO2014112048 A1 JP WO2014112048A1 JP 2014557223 A JP2014557223 A JP 2014557223A JP 2014557223 A JP2014557223 A JP 2014557223A JP WO2014112048 A1 JPWO2014112048 A1 JP WO2014112048A1
Authority
JP
Japan
Prior art keywords
ciphertext
encryption
information
key
renc
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
JP2014557223A
Other languages
English (en)
Other versions
JP5905128B2 (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 JP5905128B2 publication Critical patent/JP5905128B2/ja
Publication of JPWO2014112048A1 publication Critical patent/JPWO2014112048A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
    • 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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • 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/76Proxy, i.e. using intermediary entity to perform cryptographic operations

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)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)

Abstract

関数型暗号における代理人再暗号化方式を実現することを目的とする。復号装置300は、互いに対応する属性情報x,vのうちの一方の属性情報が設定された復号鍵k*を変換情報W1を用いて変換した復号鍵k*rkと、互いに対応する属性情報x’,v’のうちの一方の属性情報を設定して変換情報W1を暗号化した暗号化変換情報ψrkとを再暗号化装置400へ送信する。再暗号化装置400は、属性情報x,vのうちの他方の属性情報が設定された暗号文cencに、互いに対応する追加情報Η,Θのうちの少なくとも一方の追加情報を設定した暗号文crencと、追加情報Η,Θのうちの少なくとも他方の追加情報を復号鍵k*rkに設定した復号鍵k*rencとを再暗号文CTとする。

Description

この発明は、関数型暗号における代理人再暗号化(Functional Proxy Re−Encryption、FPRE)に関するものである。
代理人再暗号化(Proxy Re−Encryption,PRE)は、暗号文を復号することなく、暗号文の復号権限を他者に委譲するシステムである。非特許文献1には、IDベース暗号におけるPRE(Identity−Based PRE,IBPRE)方式に関する記載がある。非特許文献2には、属性ベース暗号におけるPRE(Attribute−Based PRE,ABPRE)方式に関する記載がある。非特許文献2記載されたPRE方式では、論理積と否定とからなる属性のみを暗号文に指定することができる。
特許文献1には、関数型暗号(FE)に関する記載がある。
特開2012−133214号公報
M.Green, and G. Ateniese, Identity−Based Proxy Re−encryption. In Applied Cryptography and Network Security. volume 4521 of LNCS, pp 288−306 , 2007. Xiaohui Liang, Zhenfu Cao, Huang Lin, Jun Shao. Attribute based proxy re−encryption with delegating capabilities. ASIACCS 2009 pp.276−286. Okamoto, T Takashima, K.:Decentralized Attribute−Based Signatures.ePrint http://eprint.iacr.org/2011/701 Okamoto, T Takashima, K.:Fully Secure Unbounded Inner−Product and Attribute−Based Encryption.ePrint http://eprint.iacr.org/2012/671 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).
従来、FPRE方式は実現されていなかった。
従来実現されていたPRE方式は、1つの再暗号化鍵で委譲できる他者が、1人のユーザだけ、もしくは非常に制約のかかった属性を持つユーザに限られるという課題があった。
この発明は、1つの再暗号化鍵で委譲できる他者を、柔軟に選ぶことが可能なPRE方式を提供することを目的とする。
この発明に係る暗号システムは、
2つの情報が互いに対応している場合に一方の情報が設定された暗号文を他方の情報が設定された復号鍵により復号可能な暗号方式における代理人再暗号機能を実現する暗号システムであって、再暗号化鍵生成装置と再暗号化装置とを備える暗号システムであり、
前記再暗号化鍵生成装置は、
互いに対応する属性情報x,vのうちの一方の属性情報が設定された復号鍵kを、変換情報Wを用いて変換して復号鍵k*rkを生成する復号鍵k*rk生成部と、
互いに対応する属性情報x’,v’のうちの一方の属性情報を設定して前記変換情報Wを暗号化して暗号化変換情報ψrkを生成する変換情報W暗号化部と、
前記復号鍵k*rkと前記暗号化変換情報ψrkとを再暗号化鍵rkとして前記再暗号化装置へ送信する再暗号化鍵送信部と
を備え、
前記再暗号化装置は、
前記属性情報x,vのうちの他方の属性情報が設定された暗号文cencを受信する暗号文受信部と、
前記暗号文受信部が受信した暗号文cencに、互いに対応する追加情報Η,Θのうちの少なくとも一方の追加情報を設定して暗号文crencを生成する暗号文crenc生成部と、
前記再暗号化鍵rkに含まれる前記復号鍵k*rkに、前記追加情報Η,Θのうちの少なくとも他方の追加情報を設定して復号鍵k*rencを生成する復号鍵k*renc生成部と、
前記暗号文crencと前記復号鍵k*rencと前記暗号化変換情報ψrkとを再暗号文CTとして送信する再暗号文送信部と
を備えることを特徴とする。
この発明に係る暗号システムでは、FPRE方式を実現することが可能である。そのため、1つの再暗号化鍵で、様々な種類のユーザの集合に暗号文を転送することができるようになる。具体的には、再暗号化鍵に非単調性を持つ一般的なアクセス構造を埋め込むことができ、転送するユーザへの制限が存在せず、柔軟な転送設定が可能となる。
行列M^の説明図。 行列Mδの説明図。 の説明図。 →Tの説明図。 CP−FPRE方式を実行する暗号処理システム10の構成図。 鍵生成装置100の機能を示す機能ブロック図。 暗号化装置200の機能を示す機能ブロック図。 復号装置300の機能を示す機能ブロック図。 再暗号化装置400の機能を示す機能ブロック図。 再暗号文復号装置500の機能を示す機能ブロック図。 Setupアルゴリズムの処理を示すフローチャート。 KGアルゴリズムの処理を示すフローチャート。 Encアルゴリズムの処理を示すフローチャート。 RKGアルゴリズムの処理を示すフローチャート。 REncアルゴリズムの処理を示すフローチャート。 Dec1アルゴリズムの処理を示すフローチャート。 Dec2アルゴリズムの処理を示すフローチャート。 KP−FPRE方式を実行する暗号処理システム10の構成図。 鍵生成装置100の機能を示す機能ブロック図。 暗号化装置200の機能を示す機能ブロック図。 復号装置300の機能を示す機能ブロック図。 再暗号化装置400の機能を示す機能ブロック図。 再暗号文復号装置500の機能を示す機能ブロック図。 KGアルゴリズムの処理を示すフローチャート。 Encアルゴリズムの処理を示すフローチャート。 RKGアルゴリズムの処理を示すフローチャート。 REncアルゴリズムの処理を示すフローチャート。 Dec1アルゴリズムの処理を示すフローチャート。 Dec2アルゴリズムの処理を示すフローチャート。 鍵生成装置100、暗号化装置200、復号装置300、再暗号化装置400、再暗号文復号装置500のハードウェア構成の一例を示す図。
以下、図に基づき、発明の実施の形態を説明する。
以下の説明において、処理装置は後述するCPU911等である。記憶装置は後述するROM913、RAM914、磁気ディスク920等である。通信装置は後述する通信ボード915等である。入力装置は後述するキーボード902、通信ボード915等である。つまり、処理装置、記憶装置、通信装置、入力装置はハードウェアである。
以下の説明における記法について説明する。
Aがランダムな変数または分布であるとき、数101は、Aの分布に従いAからyをランダムに選択することを表す。つまり、数101において、yは乱数である。
Figure 2014112048
Aが集合であるとき、数102は、Aからyを一様に選択することを表す。つまり、数102において、yは一様乱数である。
Figure 2014112048
数103は、yがzにより定義された集合であること、又はyがzを代入された集合であることを表す。
Figure 2014112048
aが定数であるとき、数104は、機械(アルゴリズム)Aが入力xに対しaを出力することを表す。
Figure 2014112048
数105、つまりFは、位数qの有限体を示す。
Figure 2014112048
ベクトル表記は、有限体Fにおけるベクトル表示を表す。つまり、数106である。
Figure 2014112048
数107は、数108に示す2つのベクトルxとvとの数109に示す内積を表す。
Figure 2014112048
Figure 2014112048
Figure 2014112048
は、行列Xの転置行列を表す。
数110に示す基底Bと基底Bとに対して、数111である。
Figure 2014112048
Figure 2014112048
は、数112に示す正規基底ベクトルを示す。
Figure 2014112048
また、以下の説明において、“Vt”,“nt”,“ut”,“zt”が下付き又は上付きで示されている場合、このVt,nt,ut,ztはV,n,u,zを意味する。同様に、“δi,j”が上付きで示されている場合、このδi,jは、δi,jを意味する。
また、ベクトルを意味する“→”が下付き文字又は上付き文字に付されている場合、この“→”は下付き文字又は上付き文字に上付きで付されていることを意味する。
また、以下の説明において、暗号処理は、鍵生成処理、暗号化処理、再暗号化鍵生成処理、再暗号化処理、復号処理、再暗号文復号処理を含む。
実施の形態1.
この実施の形態では、FPRE方式を実現する基礎となる概念を説明した上で、この実施の形態に係るFPRE方式の構成について説明する。
第1に、FPREについて簡単に説明する。
第2に、FPRE方式を実現するための空間である双対ペアリングベクトル空間(Dual Pairing Vector Spaces,DPVS)という豊かな数学的構造を有する空間を説明する。
第3に、FPRE方式を実現するための概念を説明する。ここでは、スパンプログラム、属性ベクトルの内積とアクセス構造、秘密分散方式(秘密共有方式)について説明する。
第4に、この実施の形態に係るFPRE方式を説明する。この実施の形態では、暗号文ポリシーのFPRE方式(Ciphertext−Policy FPRE,CP−FPRE)方式について説明する。そこで、まず、CP−FPRE方式の基本構成について説明する。次に、このCP−FPRE方式を実現する暗号処理システム10の基本構成について説明する。次に、このCP−FPRE方式を実現するために用いられる部品について説明する。そして、この実施の形態に係るCP−FPRE方式、及び、暗号処理システム10について詳細に説明する。
<第1.FPRE>
FPREは、暗号化鍵(ek)と、復号鍵(dk)と、再暗号化鍵(rk)の関係をより高度化し、柔軟にした代理人再暗号化方式である。
FPREは、以下の2つの特徴を持つ。 1つ目に、暗号化鍵と復号鍵とは、それぞれ属性情報xと属性情報vとが設定されている。そして、関係Rに対して、R(x、v)が成立する場合に限り、復号鍵dkは暗号化鍵ekで暗号化された暗号文を復号することができる。 2つ目に、暗号化鍵と復号鍵とに属性情報xと属性情報vとがそれぞれ設定されていることに加え、再暗号化鍵は2つの属性情報(x',v)が設定されている。そして、R(x,v)が成立する場合に限り、再暗号化鍵rk(x',v)は、暗号化鍵ekで暗号化された暗号文を、R(x'、v’)が成立する復号鍵dkv’で復号可能な暗号文、つまり暗号化鍵ekx'で暗号化された暗号文に変更することができる。
関係Rが等号関係である場合、つまり、x=vである場合に限りR(x,v)が成立する場合、PRE方式はIDPREである。
IDPREよりも一般化されたPREとして、ABPREがある。ABPREでは、暗号化鍵と復号鍵とに設定される属性情報が属性情報の組である。例えば、暗号化鍵と復号鍵とに設定される属性情報が、それぞれ、X:=(x,...,x)と、V:=(v,...,v)とである。
属性情報のコンポーネントについて、コンポーネント毎の等号関係(例えば、{x=v}t∈{1,...,d})がアクセスストラクチャSに入力される。そして、アクセスストラクチャSが入力を受理した場合にのみ、R(X,V)が成立する。つまり、暗号化鍵で暗号化された暗号文を復号鍵で復号することができる。非特許文献2では、アクセスストラクチャSが暗号文に埋め込まれている暗号文ポリシーのPRE方式を提案している。その際のアクセスストラクチャは、論理積と否定のみで構成される構造である。
暗号文の転送機能が存在しない、つまり再暗号化鍵が存在しない、通常のFEがある。FEでは、再暗号化鍵、再暗号化処理は存在せず、暗号化鍵と復号鍵とは、それぞれ、属性情報xと属性情報vとが設定されている。そして、関係Rに対してR(x,v)が成立する場合に限り、復号鍵dk:=(dk,v)は暗号化鍵ek:=(ek,x)で暗号化された暗号文を復号することができる。
<第2.双対ペアリングベクトル空間>
まず、対称双線形ペアリング群について説明する。
対称双線形ペアリング群(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 2014112048
Figure 2014112048
演算(1):非退化双線形ペアリング
空間Vにおけるペアリングは、数115によって定義される。
Figure 2014112048
これは、非退化双線形である。つまり、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 2014112048
Figure 2014112048
ここで、線形変換φi,jをディストーション写像と呼ぶ。
以下の説明において、Gdpvsを、1λ(λ∈自然数)、N∈自然数、双線形ペアリング群のパラメータparam:=(q,G,G,g,e)の値を入力として、セキュリティパラメータがλであり、N次元の空間Vとする双対ペアリングベクトル空間のパラメータparam:=(q,V,G,A,e)の値を出力するアルゴリズムとする。
なお、ここでは、上述した対称双線形ペアリング群により、双対ペアリングベクトル空間を構成した場合について説明する。なお、非対称双線形ペアリング群により双対ペアリングベクトル空間を構成することも可能である。以下の説明を、非対称双線形ペアリング群により双対ペアリングベクトル空間を構成した場合に応用することは容易である。
<第3.FPRE方式を実現するための概念>
<第3−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}に対応付けられている場合、スパンプログラムはノンモノトーンと呼ばれる。ここでは、スパンプログラムはノンモノトーンとする。そして、ノンモノトーンスパンプログラムを用いて、アクセスストラクチャ(ノンモノトーンアクセスストラクチャ)を構成する。アクセスストラクチャとは、簡単に言うと暗号へのアクセス制御を行うものである。つまり、暗号文を復号できるか否かの制御を行うものである。
詳しくは後述するが、スパンプログラムがモノトーンではなく、ノンモノトーンであることにより、スパンプログラムを利用して構成するFPRE方式の利用範囲が広がる。
<第3−2.属性情報の内積とアクセスストラクチャ>
ここでは、属性情報の内積を用いて上述した写像γ(j)を計算する。つまり、属性情報の内積を用いて、行列Mのどの行を行列Mδに含めるかを決定する。
(t=1,...,dでありU⊂{0,1})は、部分全集合(sub−universe)であり、属性の集合である。そして、Uは、それぞれ部分全集合の識別情報(t)と、n次元ベクトル(v)とを含む。つまり、Uは、(t,v)である。ここで、t∈{1,...,d}であり、v∈F である。
:=(t,v)をスパンプログラムM^:=(M,ρ)における変数pとする。つまり、p:=(t,v)である。そして、変数(p:=(t,v),(t,v’),...)としたスパンプログラムM^:=(M,ρ)をアクセスストラクチャSとする。
つまり、アクセスストラクチャS:=(M,ρ)であり、ρ:{1,...,L}→{(t,v),(t,v’),...,¬(t,v),¬(t,v’),...}である。
次に、Γを属性の集合とする。つまり、Γ:={(t,x )|x ∈Fq,1≦t≦d}である。
アクセスストラクチャSにΓが与えられた場合、スパンプログラムM^:=(M,ρ)に対する写像γ:{1,...,L}→{0,1}は、以下のように定義される。i=1,...,Lの各整数iについて、[ρ(i)=(t,v )]∧[(t,x )∈Γ]∧[v ・x =0]、又は、[ρ(i)=¬(t,v )]∧[(t,x )∈Γ]∧[v ・x ≠0]である場合、γ(j)=1であり、他の場合、γ(j)=0とする。
つまり、属性情報vとxとの内積に基づき、写像γが計算される。そして、上述したように、写像γにより、行列Mのどの行を行列Mδに含めるかが決定される。すなわち、属性情報vとxとの内積により、行列Mのどの行を行列Mδに含めるかが決定され、1∈span<(Mγ(i)=1>である場合に限り、アクセスストラクチャS:=(M,ρ)はΓを受理する。
<第3−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 2014112048
数119に示すsを共有される秘密情報とする。
Figure 2014112048
また、数120に示すs→TをsのL個の分散情報のベクトルとする。
Figure 2014112048
そして、分散情報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 2014112048
なお、定数{α}は、行列Mのサイズにおける多項式時間で計算可能である。
以下の実施の形態に係るFPRE方式は、上述したように、スパンプログラムに内積述語と秘密分散方式とを適用してアクセスストラクチャを構成する。そのため、スパンプログラムにおける行列Mや、内積述語における属性情報x及び属性情報v(述語情報)を設計するにより、アクセス制御を自由に設計することができる。つまり、非常に高い自由度でアクセス制御の設計を行うことができる。なお、行列Mの設計は、秘密分散方式の閾値等の条件設計に相当する。
例えば、上述した属性ベース暗号方式は、以下の実施の形態に係るFPRE方式におけるアクセスストラクチャにおいて、内積述語の設計をある条件に限定した場合に相当する。つまり、以下の実施の形態に係るFPRE方式におけるアクセスストラクチャに比べ、属性ベース暗号方式におけるアクセスストラクチャは、内積述語における属性情報x及び属性情報v(述語情報)を設計の自由度がない分、アクセス制御の設計の自由度が低い。なお、具体的には、属性ベース暗号方式は、属性情報{x t∈{1,...,d}と{v t∈{1,...,d}とを、等号関係に対する2次元ベクトル、例えばx :=(1,x)とv :=(v,−1)とに限定した場合に相当する。
また、内積述語暗号方式におけるPREは、以下の実施の形態に係るFPRE方式におけるアクセスストラクチャにおいて、スパンプログラムにおける行列Mの設計をある条件に限定した場合に相当する。つまり、以下の実施の形態に係るFPRE方式におけるアクセスストラクチャに比べ、内積述語暗号方式におけるアクセスストラクチャは、スパンプログラムにおける行列Mの設計の自由度がない分、アクセス制御の設計の自由度が低い。なお、具体的には、内積述語暗号方式は、秘密分散方式を1−out−of−1(あるいは、d−out−of−d)に限定した場合である。
特に、以下の実施の形態に係るFPRE方式におけるアクセスストラクチャは、ノンモノトーンスパンプログラムを用いたノンモノトーンアクセスストラクチャを構成する。そのため、アクセス制御の設計の自由度がより高くなる。
具体的には、ノンモノトーンスパンプログラムには、否定形のリテラル(¬p)を含むため、否定形の条件を設定できる。例えば、第1会社には、A部とB部とC部とD部との4つの部署があったとする。ここで、第1会社のB部以外の部署の属するユーザにのみアクセス可能(復号可能)というアクセス制御をしたいとする。この場合に、否定形の条件の設定ができないとすると、「第1会社のA部とC部とD部とのいずれかに属すること」という条件を設定する必要がある。一方、否定形の条件の設定ができるとすると、「第1会社の社員であって、B部以外に属すること」という条件を設定することができる。つまり、否定形の条件が設定できることで、自然な条件設定が可能となる。なお、ここでは部署の数が少ないが、部署の数が多い場合等は非常に有効であることが分かる。
<第4.FPRE方式の基本構成>
<第4−1.CP−FPRE方式の基本構成>
CP−FPRE方式の構成を簡単に説明する。なお、CP(暗号文ポリシー)とは、暗号文にPolicyが埋め込まれること、つまりアクセスストラクチャが埋め込まれることを意味する。
CP−FPRE方式は、Setup、KG、Enc、RKG、REnc、Dec1、Dec2の7つのアルゴリズムを備える。
(Setup)
Setupアルゴリズムは、セキュリティパラメータλと、属性のフォーマットn:=(d;n,...,n;u,...,u;z,...,z)とを入力として、公開パラメータpkと、マスター鍵skとを出力する確率的アルゴリズムである。
(KG)
KGアルゴリズムは、属性集合Γ:={(t,x )|x ∈F nt,1≦t≦d}と、公開パラメータpkと、マスター鍵skとを入力として、復号鍵skΓを出力する確率的アルゴリズムである。
(Enc)
Encアルゴリズムは、メッセージmと、アクセスストラクチャS=(M,ρ)と、公開パラメータpkとを入力として、暗号文ctを出力する確率的アルゴリズムである。
(RKG)
RKGアルゴリズムは、復号鍵skΓと、アクセスストラクチャS’:=(M’,ρ’)と、公開パラメータpkとを入力として、再暗号化鍵rk(Γ.S’)を出力する確率的アルゴリズムである。
(REnc)
REncアルゴリズムは、暗号文ctと、再暗号化鍵rk(Γ.S’)と、公開パラメータpkとを入力として、再暗号文CTS’を出力する確率的アルゴリズムである。
(Dec1)
Dec1アルゴリズムは、再暗号文CTS’と、復号鍵skΓ’と、公開パラメータpkとを入力として、メッセージm、又は、識別情報⊥を出力するアルゴリズムである。
(Dec2)
Dec2アルゴリズムは、暗号文ctと、復号鍵skΓと、公開パラメータpkとを入力として、メッセージm、又は、識別情報⊥を出力するアルゴリズムである。
<第4−2.暗号処理システム10>
CP−FPRE方式のアルゴリズムを実行する暗号処理システム10について説明する。
図5は、CP−FPRE方式を実行する暗号処理システム10の構成図である。
暗号処理システム10は、鍵生成装置100、暗号化装置200、復号装置300(再暗号化鍵生成装置)、再暗号化装置400、再暗号文復号装置500を備える。
鍵生成装置100は、セキュリティパラメータλと、属性のフォーマットn:=(d;n,...,n;u,...,u;z,...,z)とを入力としてSetupアルゴリズムを実行して、公開パラメータpkとマスター鍵skとを生成する。
そして、鍵生成装置100は、公開パラメータpkを公開する。また、鍵生成装置100は、属性集合Γを入力としてKGアルゴリズムを実行して、復号鍵skΓを生成して復号装置300へ秘密裏に送信する。また、鍵生成装置100は、属性集合Γ’を入力としてKGアルゴリズムを実行して、復号鍵skΓ’を生成して再暗号文復号装置500へ秘密裏に送信する。
暗号化装置200は、メッセージmと、アクセスストラクチャSと、公開パラメータpkとを入力としてEncアルゴリズムを実行して、暗号文ctを生成する。暗号化装置200は、暗号文ctを再暗号化装置400へ送信する。
復号装置300は、公開パラメータpkと、復号鍵skΓと、アクセスストラクチャS’とを入力としてRKGアルゴリズムを実行して、再暗号化鍵rk(Γ.S’)を生成する。復号装置300は、再暗号化鍵rk(Γ.S’)を再暗号化装置に秘密裏に送信する。
また、復号装置300は、公開パラメータpkと、復号鍵skΓと、暗号文ctとを入力としてDec2アルゴリズムを実行して、メッセージm又は識別情報⊥を出力する。
再暗号化装置400は、公開パラメータpkと、再暗号化鍵rk(Γ.S’)と、暗号文ctとを入力として、REncアルゴリズムを実行して、再暗号文CTS’を生成する。再暗号化装置400は、再暗号文CTS’を再暗号文復号装置500へ送信する。
再暗号文復号装置500は、公開パラメータpkと、復号鍵skΓ’と、再暗号文CTS’とを入力として、Dec1アルゴリズムを実行して、メッセージm又は識別情報⊥を出力する。
<第4−3.CP−FPRE方式を実現するために用いられる部品>
CP−FPRE方式を実現するために、暗号文ポリシーの関数型暗号(CP−FE)とワンタイム署名とが用いられる。いずれも公知の技術であるため、ここでは以下の説明で用いる方式について簡単に説明する。なお、CP−FE方式については、特許文献1に一例が記載されている。
CP−FE方式は、SetupCP−FE、KGCP−FE、EncCP−FE、DecCP−FEの4つのアルゴリズムを備える。
(SetupCP−FE
SetupCP−FEアルゴリズムは、セキュリティパラメータλと、属性のフォーマットn:=(d;n,...,n)とを入力として、公開パラメータpkCP−FEと、マスター鍵skCP−FEとを出力する確率的アルゴリズムである。
(KGCP−FE
KGCP−FEアルゴリズムは、属性集合Γ:={(t,x )|x ∈F nt,1≦t≦d}と、公開パラメータpkCP−FEと、マスター鍵skCP−FEとを入力として、復号鍵skΓ CP−FEを出力する確率的アルゴリズムである。
(EncCP−FE
EncCP−FEアルゴリズムは、メッセージmと、アクセスストラクチャS=(M,ρ)と、公開パラメータpkCP−FEとを入力として、暗号文ψを出力する確率的アルゴリズムである。
(DecCP−FE
DecCP−FEアルゴリズムは、暗号文ψと、復号鍵skΓ CP−FEと、公開パラメータpkCP−FEとを入力として、メッセージm、又は、識別情報⊥を出力するアルゴリズムである。
ワンタイム署名方式は、SigKG、Sig、Verの3つのアルゴリズムを備える。
(SigKG)
SigKGアルゴリズムは、セキュリティパラメータλを入力として、署名鍵sigkと、検証鍵verkとを出力する確率的アルゴリズムである。
(Sig)
Sigアルゴリズムは、署名鍵sigkと、メッセージmとを入力として、署名Sを出力する確率的アルゴリズムである。
(Ver)
Verアルゴリズムは、検証鍵verkと、メッセージmと、署名Sとを入力として、検証鍵verkとメッセージmとに対して署名Sが正当であれば1を出力し、正当でなければ0を出力するアルゴリズムである。
<第4−4.CP−FPRE方式及び暗号処理システム10の詳細>
図6から図17に基づき、CP−FPRE方式、及び、CP−FPRE方式を実行する暗号処理システム10の機能と動作とについて説明する。
図6は、鍵生成装置100の機能を示す機能ブロック図である。図7は、暗号化装置200の機能を示す機能ブロック図である。図8は、復号装置300の機能を示す機能ブロック図である。図9は、再暗号化装置400の機能を示す機能ブロック図である。図10は、再暗号文復号装置500の機能を示す機能ブロック図である。
図11と図12とは、鍵生成装置100の動作を示すフローチャートである。なお、図11はSetupアルゴリズムの処理を示すフローチャートであり、図12はKGアルゴリズムの処理を示すフローチャートである。図13は、暗号化装置200の動作を示すフローチャートであり、Encアルゴリズムの処理を示すフローチャートである。図14は、復号装置300の動作を示すフローチャートであり、RKGアルゴリズムの処理を示すフローチャートである。図15は、再暗号化装置400の動作を示すフローチャートであり、REncアルゴリズムの処理を示すフローチャートである。図16は、再暗号文復号装置500の動作を示すフローチャートであり、Dec1アルゴリズムの処理を示すフローチャートである。図17は、復号装置300の動作を示すフローチャートであり、Dec2アルゴリズムの処理を示すフローチャートである。
鍵生成装置100の機能と動作とについて説明する。
鍵生成装置100は、マスター鍵生成部110、マスター鍵記憶部120、情報入力部130、復号鍵生成部140、鍵送信部150を備える。また、復号鍵生成部140は、CP−FE鍵生成部141、乱数生成部142、復号鍵k生成部143を備える。
まず、図11に基づき、Setupアルゴリズムの処理について説明する。
(S101:正規直交基底生成ステップ)
マスター鍵生成部110は、処理装置により、数122を計算して、パラメータparamn→と、基底B及び基底B と、基底B及び基底B とを生成する。
Figure 2014112048
つまり、マスター鍵生成部110は以下の処理を実行する。
(1)マスター鍵生成部110は、入力装置により、セキュリティパラメータλ(1λ)と、属性のフォーマットn:=(d;n,...,n;u,...,u;z,...,z)とを入力する。ここで、dは1以上の整数であり、t=1,...,dの各整数tについて、nは1以上の整数でありu,zは0以上の整数である。
(2)マスター鍵生成部110は、処理装置により、(1)で入力したセキュリティパラメータλを入力としてアルゴリズムGbpgを実行して、双線形ペアリング群のパラメータparam:=(q,G,G,g,e)の値を生成する。
(3)マスター鍵生成部110は、Nに7を設定し、t=1,...,dの各整数tについてNにn+u+z+1を設定する。また、マスター鍵生成部110は、乱数ψを生成する。また、マスター鍵生成部110は、e(G,G)ψをgに設定する。
続いて、マスター鍵生成部110は、t=0,...,dの各整数tについて以下の(4)から(7)までの処理を実行する。
(4)マスター鍵生成部110は、(1)で入力したセキュリティパラメータλ(1λ)と、(3)で設定したNと、(2)で生成したparam:=(q,G,G,g,e)の値とを入力としてアルゴリズムGdpvsを実行して、双対ペアリングベクトル空間のパラメータparamVt:=(q,V,G,A,e)の値を生成する。
(5)マスター鍵生成部110は、(3)で設定したNと、Fとを入力として、線形変換X:=(χt,i,ji,jをランダムに生成する。なお、GLは、General Linearの略である。つまり、GLは、一般線形群であり、行列式が0でない正方行列の集合であり、乗法に関し群である。また、(χt,i,ji,jは、行列χt,i,jの添え字i,jに関する行列という意味である。ここでは、(χt,i,ji,jではi,j=1,...,Nである。
(6)マスター鍵生成部110は、乱数ψと線形変換Xとに基づき、(νt,i,ji,j:=ψ・(X −1を生成する。なお、(νt,i,ji,jも(χt,i,ji,jと同様に、行列νt,i,jの添え字i,jに関する行列という意味である。ここでは、(νt,i,ji,jではi,j=1,...,Nである。
(7)マスター鍵生成部110は、(5)で生成した線形変換Xに基づき、(4)で生成した標準基底Aから基底Bを生成する。マスター鍵生成部110は、(6)で生成した(νt,i,ji,jに基づき、(4)で生成した標準基底Aから基底B を生成する。
(8)マスター鍵生成部110は、paramn→に(4)で生成した{paramVtt=0,...,dと、gとを設定する。
(S102:CP−FEマスター鍵生成ステップ)
マスター鍵生成部110は、処理装置により、数123を計算して、関数型暗号の公開パラメータpkCP−FEと、マスター鍵skCP−FEとを生成する。
Figure 2014112048
(S103:公開パラメータ生成ステップ) マスター鍵生成部110は、処理装置により、基底Bの部分基底B^と、基底Bの部分基底B^とを数124に示すように生成する。
Figure 2014112048
マスター鍵生成部110は、公開パラメータpkCP−FEと、セキュリティパラメータλと、paramn→と、部分基底B^及び部分基底B^と、基底ベクトルb 0.2,b 0.3,b 0.4,b 0.6と、t=1,...,dの各整数tについての基底ベクトルb t.1,...,b t.nt,b t.nt+ut+1,...,b t.nt+ut+ztとを合わせて、公開パラメータpkとする。
(S104:マスター鍵生成ステップ)
マスター鍵生成部110は、(S101)で生成した基底B の部分基底B^ を数125に示すように生成する。
Figure 2014112048
マスター鍵生成部110は、マスター鍵skCP−FEと、基底ベクトルb 0.1とをマスター鍵skとする。
(S105:マスター鍵記憶ステップ)
マスター鍵記憶部120は、(S103)で生成した公開パラメータpkを記憶装置に記憶する。また、マスター鍵記憶部120は、(S104)で生成したマスター鍵skを記憶装置に記憶する。
つまり、(S101)から(S104)において、鍵生成装置100は、数126−1、数126−2に示すSetupアルゴリズムを実行して、公開パラメータpkとマスター鍵skとを生成する。そして、(S105)で、鍵生成装置100は、生成した公開パラメータpkとマスター鍵skとを記憶装置に記憶する。
なお、公開パラメータは、例えば、ネットワークを介して公開され、暗号化装置200、復号装置300、再暗号化装置400、再暗号文復号装置500が取得可能な状態にされる。
Figure 2014112048
Figure 2014112048
次に、図12に基づき、KGアルゴリズムの処理について説明する。
(S201:情報入力ステップ)
情報入力部130は、入力装置により、属性集合Γ:={(t,x :=(xt.1,...,xt.nt∈F nt\{0}))|1≦t≦d}を入力する。なお、tは、1以上d以下の全ての整数ではなく、1以上d以下の少なくとも一部の整数であってもよい。また、属性集合Γは、例えば、復号鍵skΓの使用者の属性情報が設定されている。
(S202:CP−FE復号鍵生成ステップ)
CP−FE鍵生成部141は、処理装置により、数127を計算して、関数型暗号の復号鍵skΓ CP−FEを生成する。
Figure 2014112048
(S203:乱数生成ステップ)
乱数生成部142は、処理装置により、乱数を数128に示すように生成する。
Figure 2014112048
(S204:復号鍵k生成ステップ)
復号鍵k生成部143は、処理装置により、復号鍵k を数129に示すように生成する。
Figure 2014112048
なお、数110に示す基底Bと基底Bとに対して数111である。そのため、数129は、基底B の基底ベクトルb 0.1の係数として1が設定され、基底ベクトルb 0.2の係数としてδが設定され、基底ベクトルb 0.3,...,b 0.5の係数として0が設定され、基底ベクトルb 0.6の係数としてφが設定され、基底ベクトルb 0.7の係数として0が設定されることを意味する。
また、復号鍵k生成部143は、処理装置により、属性集合Γに含まれる各整数tについて、復号鍵k を数130に示すように生成する。
Figure 2014112048
なお、数130は、基底B の基底ベクトルb t.1,...,b t.ntの係数としてδxt.1,...,δxt.ntが設定され、基底ベクトルb t.nt+1,...,b t.nt+utの係数として0が設定され、基底ベクトルb t.nt+ut+1,...,b t.nt+ut+ztの係数としてφt.1,...,φt.ztが設定され、基底ベクトルb t.nt+ut+zt+1の係数として0が設定される。
(S205:鍵送信ステップ)
鍵送信部150は、関数型暗号の復号鍵skΓ CP−FEと、属性集合Γと、復号鍵k と、k とを要素とする復号鍵skΓを、例えば通信装置によりネットワークを介して秘密裡に復号装置300へ送信する。もちろん、復号鍵skΓは、他の方法により復号装置300へ送信されてもよい。
つまり、(S201)から(S204)において、鍵生成装置100は、数131に示すKGアルゴリズムを実行して、復号鍵skΓを生成する。そして、(S205)で、鍵生成装置100は、復号鍵skΓを復号装置300へ送信する。
Figure 2014112048
なお、鍵生成装置100は、(S201)において、復号鍵skΓ’の使用者の属性情報が設定された属性集合Γ’:={(t,x’ :=(x’t.1,...,x’t.nt∈F nt\{0}))|1≦t≦d}を入力して、KGアルゴリズムを実行して、復号鍵skΓ’を生成する。そして、鍵生成装置100は、復号鍵skΓ’:=(skΓ’ CP−FE,Γ’,k’ ,{k’ (t,x→t)∈Γ’)を再暗号文復号装置500へ送信する。
暗号化装置200の機能と動作とについて説明する。
暗号化装置200は、公開パラメータ受信部210、情報入力部220、署名処理部230、暗号化部240、暗号文送信部250を備える。また、暗号化部240は、fベクトル生成部241、sベクトル生成部242、乱数生成部243、暗号文cenc生成部244を備える。
図13に基づき、Encアルゴリズムの処理について説明する。
(S301:公開パラメータ受信ステップ)
公開パラメータ受信部210は、例えば、通信装置によりネットワークを介して、鍵生成装置100が生成した公開パラメータpkを受信する。
(S302:情報入力ステップ)
情報入力部220は、入力装置により、アクセスストラクチャS:=(M,ρ)を入力する。なお、アクセスストラクチャSの設定については、実現したいシステムの条件に応じて設定されるものである。また、アクセスストラクチャSのρは、例えば、暗号文ctを復号可能なユーザの属性情報が設定されている。ここで、ρ(i)=(t,v :=(vi.1,...,vi.nt)∈F nt\{0})(vi,nt≠0)である。
また、情報入力部220は、入力装置により、復号装置300へ送信するメッセージmを入力する。
(S303:署名鍵生成ステップ)
署名処理部230は、処理装置により、数132を計算して、ワンタイム署名の署名鍵sigkと、検証鍵verkとを生成する。
Figure 2014112048
(S304:fベクトル生成ステップ)
fベクトル生成部241は、処理装置により、r個の要素を有するベクトルfを数133に示すようにランダムに生成する。
Figure 2014112048
(S305:sベクトル生成ステップ)
sベクトル生成部242は、処理装置により、アクセスストラクチャSに含まれる(L行×r列)の行列Mと、ベクトルfとに基づき、ベクトルs→Tを数134に示すように生成する。
Figure 2014112048
また、sベクトル生成部242は、処理装置により、ベクトルfに基づき、値sを数135に示すように生成する。
Figure 2014112048
(S306:乱数生成ステップ)
乱数生成部243は、処理装置により、乱数を数136に示すように生成する。
Figure 2014112048
(S307:暗号文cenc生成ステップ)
暗号文cenc生成部244は、処理装置により、暗号文cenc を数137に示すように生成する。
Figure 2014112048
また、暗号文cenc生成部244は、処理装置により、i=1,...,Lの各整数iについて、暗号文cenc を数138に示すように生成する。
Figure 2014112048
また、暗号文cenc生成部244は、処理装置により、暗号文cenc d+1を数139に示すように生成する。
Figure 2014112048
(S308:署名生成ステップ)
署名処理部230は、処理装置により、数140を計算して、暗号文ctの要素C:=(S,{cenc i=0,...,L,cenc d+1)に対する署名Sigを生成する。
Figure 2014112048
(S309:暗号文送信ステップ)
暗号文送信部250は、アクセスストラクチャSと、暗号文cenc ,cenc ,...,cenc ,cenc d+1と、検証鍵verkと、署名Sigとを要素とする暗号文ctを、例えば通信装置によりネットワークを介して復号装置300へ送信する。もちろん、暗号文ctは、他の方法により復号装置300へ送信されてもよい。
つまり、(S301)から(S308)において、暗号化装置200は、数141に示すEncアルゴリズムを実行して、暗号文ctを生成する。そして、(S309)で、暗号化装置200は生成した暗号文ctを復号装置300へ送信する。
Figure 2014112048
復号装置300の機能と動作とについて説明する。
復号装置300は、復号鍵受信部310、情報入力部320、再暗号化鍵生成部330、再暗号化鍵送信部340、暗号文受信部350、検証部360、補完係数計算部370、ペアリング演算部380、メッセージ計算部390を備える。また、再暗号化鍵生成部330は、乱数生成部331、変換情報W生成部332、変換情報W暗号化部333、復号鍵k*rk生成部334、変換部335を備える。また、検証部360は、スパンプログラム計算部361、署名検証部362を備える
ここでは、図14に基づき、RKGアルゴリズムの処理について説明する。Dec2アルゴリズムについては後述する。
(S401:復号鍵受信ステップ)
復号鍵受信部310は、例えば、通信装置によりネットワークを介して、鍵生成装置100から送信された復号鍵skΓを受信する。また、復号鍵受信部310は、鍵生成装置100が生成した公開パラメータpkを受信する。
(S402:情報入力ステップ)
情報入力部320は、入力装置により、アクセスストラクチャS’:=(M’,ρ’)を入力する。なお、アクセスストラクチャS’の設定については、実現したいシステムの条件に応じて設定されるものである。また、アクセスストラクチャS’のρ’は、例えば、再暗号文CTS’を復号可能なユーザの属性情報が設定されている。ここで、ρ’(i)=(t,v→’ :=(v’i.1,...,v’i.nt)∈F nt\{0})(v’i,nt≠0)である。
(S403:乱数生成ステップ)
乱数生成部331は、処理装置により、乱数を数142に示すように生成する。
Figure 2014112048
(S404:変換情報W生成ステップ)
変換情報W生成部332は、処理装置により、変換情報Wを数143に示すように生成する。
Figure 2014112048
(S405:変換情報W暗号化ステップ)
変換情報W暗号化部333は、処理装置により、数144を計算して、変換情報Wを関数型暗号により暗号化して、暗号化変換情報ψrkを生成する。変換情報Wは、アクセスストラクチャS’を入力として関数型暗号により暗号化されるため、再暗号文CTS’を復号可能なユーザの属性情報が設定され暗号化される。
Figure 2014112048
(S406:復号鍵k*rk生成ステップ)
復号鍵k*rk生成部334は、処理装置により、復号鍵k*rk を数145に示すように生成する。
Figure 2014112048
また、復号鍵生成部334は、処理装置により、属性集合Γに含まれる各整数tについて、復号鍵k*rk を数146に示すように生成する。
Figure 2014112048
(S407:変換ステップ)
変換部335は、処理装置により、数147を計算して、基底D^* を生成する。
Figure 2014112048
(S408:鍵送信ステップ)
再暗号化鍵送信部340は、属性集合Γと、アクセスストラクチャS’と、復号鍵k*rk ,k*rk と、暗号化変換情報ψrkと、基底D^* とを要素とする再暗号化鍵rk(Γ.S’)を、例えば通信装置によりネットワークを介して秘密裡に再暗号化装置400へ送信する。もちろん、再暗号化鍵rk(Γ.S’)は、他の方法により再暗号化装置400へ送信されてもよい。
つまり、(S401)から(S407)において、復号装置300は、数148に示すRKGアルゴリズムを実行して、再暗号化鍵rk(Γ.S’)を生成する。そして、(S408)で、復号装置300は生成した再暗号化鍵rk(Γ.S’)を再暗号化装置400へ送信する。
Figure 2014112048
再暗号化装置400の機能と動作とについて説明する。
再暗号化装置400は、公開パラメータ受信部410、暗号文受信部420、再暗号化鍵受信部430、検証部440、暗号化部450、再暗号文送信部460を備える。また、検証部440は、スパンプログラム計算部441、署名検証部442を備える。また、暗号化部450は、乱数生成部451、fベクトル生成部452、sベクトル生成部453、変換情報W生成部454、変換情報W暗号化部455、暗号文crenc生成部456、復号鍵k*renc生成部457を備える。
図15に基づき、REncアルゴリズムの処理について説明する。
(S501:公開パラメータ受信ステップ)
公開パラメータ受信部410は、例えば、通信装置によりネットワークを介して、鍵生成装置100が生成した公開パラメータpkを受信する。
(S502:暗号文受信ステップ)
暗号文受信部420は、例えば、通信装置によりネットワークを介して、暗号化装置200が送信した暗号文ctを受信する。
(S503:再暗号化鍵受信ステップ)
再暗号化鍵受信部430は、例えば、通信装置によりネットワークを介して、復号装置300から送信された再暗号化鍵rk(Γ.S’)を受信する。
(S504:スパンプログラム計算ステップ)
スパンプログラム計算部441は、処理装置により、暗号文ctに含まれるアクセスストラクチャSが、再暗号化鍵rk(Γ.S’)に含まれるΓを受理するか否かを判定する。アクセスストラクチャSがΓを受理するか否かの判定方法は、実施の形態1における「第3.FPREを実現するための概念」で説明した通りである。
スパンプログラム計算部441は、アクセスストラクチャSがΓを受理する場合(S504で受理)、処理を(S505)へ進める。一方、アクセスストラクチャSがΓを拒絶する場合(S504で拒絶)、処理を終了する。
(S505:署名検証ステップ)
署名検証部442は、処理装置により、数149を計算した結果が1であるか否かを判定する。署名検証部442は、結果が1である場合(S505で正当)、処理を(S506)へ進める。一方、署名検証部442は、結果が0である場合(S505で不当)、処理を終了する。
Figure 2014112048
(S506:乱数生成ステップ)
乱数生成部451は、処理装置により、乱数を数150に示すように生成する。
Figure 2014112048
(S507:fベクトル生成ステップ)
fベクトル生成部452は、処理装置により、r個の要素を有するベクトルf→’を数151に示すようにランダムに生成する。
Figure 2014112048
(S508:sベクトル生成ステップ)
sベクトル生成部453は、処理装置により、アクセスストラクチャSに含まれる(L行×r列)の行列Mと、ベクトルf→’とに基づき、ベクトルs→’Tを数152に示すように生成する。
Figure 2014112048
また、sベクトル生成部453は、処理装置により、ベクトルf→’に基づき、値s を数153に示すように生成する。
Figure 2014112048
(S509:変換情報W生成ステップ)
変換情報W生成部454は、処理装置により、変換情報Wを数154に示すように生成する。
Figure 2014112048
(S510:変換情報W暗号化ステップ)
変換情報W暗号化部455は、処理装置により、数155を計算して、変換情報Wを関数型暗号により暗号化して、暗号化変換情報ψrencを生成する。変換情報Wは、アクセスストラクチャS’を入力として関数型暗号により暗号化されるため、再暗号文CTS’を復号可能なユーザの属性情報が設定され暗号化される。
Figure 2014112048
(S511:暗号文crenc生成ステップ)
暗号文crenc生成部456は、処理装置により、暗号文crenc を数156に示すように生成する。
Figure 2014112048
また、暗号文crenc生成部456は、処理装置により、i=1,...,Lの各整数iについて、暗号文crenc を数157に示すように生成する。
Figure 2014112048
また、暗号文crenc生成部456は、処理装置により、暗号文crenc d+1を数158に示すように生成する。
Figure 2014112048
(S512:復号鍵k*renc生成ステップ)
復号鍵k*renc生成部457は、処理装置により、復号鍵k*renc を数159に示すように生成する。
Figure 2014112048
また、復号鍵k*renc生成部457は、処理装置により、属性集合Γに含まれる各整数tについて、復号鍵k*renc を数160に示すように生成する。
Figure 2014112048
(S513:再暗号文送信ステップ)
再暗号文送信部460は、アクセスストラクチャS’と、アクセスストラクチャSと、属性集合Γと、復号鍵k*renc ,k*renc と、暗号文crenc ,crenc ,crenc d+1と、暗号化変換情報ψrkと、暗号化変換情報ψrencとを要素とする再暗号文CTS’を、例えば通信装置によりネットワークを介して秘密裡に再暗号化装置400へ送信する。もちろん、再暗号文CTS’は、他の方法により再暗号化装置400へ送信されてもよい。
つまり、(S501)から(S512)において、再暗号化装置400は、数161−1、数161−2に示すREncアルゴリズムを実行して、再暗号文CTS’を生成する。そして、(S513)で、再暗号化装置400は生成した再暗号文CTS’を再暗号文復号装置500へ送信する。
Figure 2014112048
Figure 2014112048
再暗号文復号装置500の機能と動作とについて説明する。
再暗号文復号装置500は、復号鍵受信部510、暗号文受信部520、スパンプログラム計算部530、補完係数計算部540、変換情報生成部550、変換部560、ペアリング演算部570、メッセージ計算部580を備える。なお、ペアリング演算部570とメッセージ計算部580とを総称して、復号部と呼ぶ。
図16に基づき、Dec1アルゴリズムの処理について説明する。
(S601:復号鍵受信ステップ)
復号鍵受信部510は、例えば、通信装置によりネットワークを介して、鍵生成装置100から送信された復号鍵skΓ’を受信する。また、復号鍵受信部310は、鍵生成装置100が生成した公開パラメータpkを受信する。
(S602:暗号文受信ステップ)
暗号文受信部520は、例えば、通信装置によりネットワークを介して、再暗号化装置400が送信した再暗号文CTS’を受信する。
(S603:スパンプログラム計算ステップ)
スパンプログラム計算部530は、処理装置により、再暗号文CTS’に含まれるアクセスストラクチャSが、再暗号文CTS’に含まれるΓを受理するか否かを判定するとともに、再暗号文CTS’に含まれるアクセスストラクチャS’が、復号鍵skΓ’に含まれるΓ’を受理するか否かを判定する。アクセスストラクチャSがΓを受理するか否か、及び、アクセスストラクチャS’がΓ’を受理するか否かの判定方法は、実施の形態1における「第3.FPREを実現するための概念」で説明した通りである。
スパンプログラム計算部530は、アクセスストラクチャSがΓを受理し、かつ、アクセスストラクチャS’がΓ’を受理する場合(S603で受理)、処理を(S604)へ進める。一方、アクセスストラクチャSがΓを拒絶する、又は、アクセスストラクチャS’がΓ’を拒絶する場合(S603で拒絶)、処理を終了する。
(S604:補完係数計算ステップ)
補完係数計算部540は、処理装置により、数162となるIと、定数(補完係数){αi∈Iとを計算する。
Figure 2014112048
(S605:変換情報生成ステップ)
変換情報生成部550は、処理装置により、変換情報W ,W を数163に示すように生成する。
Figure 2014112048
(S606:変換ステップ)
変換部560は、処理装置により、数164に示すように、復号鍵k*renc の基底を変換して復号鍵k を生成するとともに、暗号文crenc の基底を変換して暗号文c を生成する。
Figure 2014112048
(S607:ペアリング演算ステップ)
ペアリング演算部570は、処理装置により、数165を計算して、セッション鍵Kを生成する。
Figure 2014112048
(S608:メッセージ計算ステップ)
メッセージ計算部390は、処理装置により、m’=cenc d+1/Kを計算して、メッセージm’(=m)を生成する。
つまり、(S601)から(S608)において、再暗号文復号装置500は、数166に示すDec1アルゴリズムを実行して、メッセージm’(=m)を生成する。
Figure 2014112048
図17に基づき、Dec2アルゴリズムの処理について説明する。
(S701:復号鍵受信ステップ)
復号鍵受信部310は、例えば、通信装置によりネットワークを介して、鍵生成装置100から送信された復号鍵skΓを受信する。また、復号鍵受信部310は、鍵生成装置100が生成した公開パラメータpkを受信する。
(S702:暗号文受信ステップ)
暗号文受信部350は、例えば、通信装置によりネットワークを介して、再暗号化装置400が送信した暗号文ctを受信する。
(S703:スパンプログラム計算ステップ) スパンプログラム計算部361は、処理装置により、暗号文ctに含まれるアクセスストラクチャSが、復号鍵skΓに含まれるΓを受理するか否かを判定する。アクセスストラクチャSがΓを受理するか否かの判定方法は、実施の形態1における「第3.FPREを実現するための概念」で説明した通りである。
スパンプログラム計算部361は、アクセスストラクチャSがΓを受理する場合(S703で受理)、処理を(S704)へ進める。一方、アクセスストラクチャSがΓを拒絶する場合(S703で拒絶)、処理を終了する。
(S704:署名検証ステップ)
署名検証部362は、処理装置により、数167を計算した結果が1であるか否かを判定する。署名検証部442は、結果が1である場合(S704で正当)、処理を(S705)へ進める。一方、署名検証部442は、結果が0である場合(S704で不当)、処理を終了する。
Figure 2014112048
(S705:補完係数計算ステップ)
補完係数計算部370は、処理装置により、数168となるIと、定数(補完係数){αi∈Iとを計算する。
Figure 2014112048
(S706:ペアリング演算ステップ)
ペアリング演算部380は、処理装置により、数169を計算して、セッション鍵Kを生成する。
Figure 2014112048
(S707:メッセージ計算ステップ)
メッセージ計算部390は、処理装置により、m’=cenc d+1/Kを計算して、メッセージm’(=m)を生成する。
つまり、(S701)から(S707)において、復号装置300は、数170に示すDec2アルゴリズムを実行して、メッセージm’(=m)を生成する。
Figure 2014112048
以上のように、実施の形態1に係る暗号システムは、CP−FPRE方式を実現することが可能である。そのため、1つの再暗号化鍵で、様々な種類のユーザの集合に暗号文を転送することができるようになる。
その結果、例えば、ネットワーク上に存在する様々な暗号文を、復号せずに安全に様々な属性を持つユーザに転送することができるようになる。これにより、安全かつ実用的に暗号文の処理を信用できる第三者へ委託することが可能となる。
なお、上記説明では、復号装置300が再暗号化鍵生成装置を兼ねており、復号装置300がDec2アルゴリズムだけでなく、RKGアルゴリズムも実行するとした。しかし、復号装置300と再暗号化鍵生成装置とを別の装置としてもよい。この場合、復号装置300は、Dec2アルゴリズムを実行し、再暗号化鍵生成装置は、RKGアルゴリズムを実行する。したがって、この場合、復号装置300は、Dec2アルゴリズムを実行するのに必要な機能構成を備え、再暗号化鍵生成装置は、RKGアルゴリズムを実行するのに必要な機能構成を備える。
実施の形態2.
実施の形態1では、CP−FPRE方式について説明した。実施の形態2では、鍵ポリシーのFPRE方式(Key−Policy FPRE,KP−FPRE)方式について説明する。
まず、KP−FPRE方式の基本構成について説明する。次に、このKP−FPRE方式を実現する暗号処理システム10の基本構成について説明する。次に、このKP−FPRE方式を実現するために用いられる部品について説明する。そして、この実施の形態に係るKP−FPRE方式、及び、暗号処理システム10について詳細に説明する。
KP−FPRE方式の構成を簡単に説明する。なお、KP(鍵ポリシー)とは、鍵にPolicyが埋め込まれること、つまりアクセスストラクチャが埋め込まれることを意味する。
<第1−1.KP−FPRE方式の基本構成>
KP−FPRE方式は、Setup、KG、Enc、RKG、REnc、Dec1、Dec2の7つのアルゴリズムを備える。
(Setup)
Setupアルゴリズムは、セキュリティパラメータλと、属性のフォーマットn:=(d;n,...,n;u,...,u;z,...,z)とを入力として、公開パラメータpkと、マスター鍵skとを出力する確率的アルゴリズムである。
(KG)
KGアルゴリズムは、アクセスストラクチャS=(M,ρ)と、公開パラメータpkと、マスター鍵skとを入力として、復号鍵skを出力する確率的アルゴリズムである。
(Enc)
Encアルゴリズムは、メッセージmと、属性集合Γ:={(t,x )|x ∈F nt,1≦t≦d}と、公開パラメータpkとを入力として、暗号文ctΓを出力する確率的アルゴリズムである。
(RKG)
RKGアルゴリズムは、復号鍵skと、属性集合Γ’:={(t,x’ )|x’ ∈F nt,1≦t≦d}と、公開パラメータpkとを入力として、再暗号化鍵rk(S.Γ’)を出力する確率的アルゴリズムである。
(REnc)
REncアルゴリズムは、暗号文ctΓと、再暗号化鍵rk(S.Γ’)と、公開パラメータpkとを入力として、再暗号文CTΓ’を出力する確率的アルゴリズムである。
(Dec1)
Dec1アルゴリズムは、再暗号文CTΓ’と、復号鍵skS’と、公開パラメータpkとを入力として、メッセージm、又は、識別情報⊥を出力するアルゴリズムである。
(Dec2)
Dec2アルゴリズムは、暗号文ctΓと、復号鍵skΓと、公開パラメータpkとを入力として、メッセージm、又は、識別情報⊥を出力するアルゴリズムである。
<第1−2.暗号処理システム10>
KP−FPRE方式のアルゴリズムを実行する暗号処理システム10について説明する。
図18は、KP−FPRE方式を実行する暗号処理システム10の構成図である。
暗号処理システム10は、図5に示す暗号処理システム10と同様に、鍵生成装置100、暗号化装置200、復号装置300(再暗号化鍵生成装置)、再暗号化装置400、再暗号文復号装置500を備える。
鍵生成装置100は、セキュリティパラメータλと、属性のフォーマットn:=(d;n,...,n;u,...,u;z,...,z)とを入力としてSetupアルゴリズムを実行して、公開パラメータpkとマスター鍵skとを生成する。
そして、鍵生成装置100は、公開パラメータpkを公開する。また、鍵生成装置100は、アクセスストラクチャSを入力としてKGアルゴリズムを実行して、復号鍵skを生成して復号装置300へ秘密裏に送信する。また、鍵生成装置100は、アクセスストラクチャS’を入力としてKGアルゴリズムを実行して、復号鍵skS’を生成して再暗号文復号装置500へ秘密裏に送信する。
暗号化装置200は、メッセージmと、属性集合Γと、公開パラメータpkとを入力としてEncアルゴリズムを実行して、暗号文ctΓを生成する。暗号化装置200は、暗号文ctΓを再暗号化装置400へ送信する。
復号装置300は、公開パラメータpkと、復号鍵skと、属性集合Γ’とを入力としてRKGアルゴリズムを実行して、再暗号化鍵rk(S.Γ’)を生成する。復号装置300は、再暗号化鍵rk(S.Γ’)を再暗号化装置400に秘密裏に送信する。
また、復号装置300は、公開パラメータpkと、復号鍵skと、暗号文ctΓとを入力としてDec2アルゴリズムを実行して、メッセージm又は識別情報⊥を出力する。
再暗号化装置400は、公開パラメータpkと、再暗号化鍵rk(S.Γ’)と、暗号文ctΓとを入力として、REncアルゴリズムを実行して、再暗号文CTΓ’を生成する。再暗号化装置400は、再暗号文CTΓ’を再暗号文復号装置500へ送信する。
再暗号文復号装置500は、公開パラメータpkと、復号鍵skS’と、再暗号文CTΓ’とを入力として、Dec1アルゴリズムを実行して、メッセージm又は識別情報⊥を出力する。
<第1−3.KP−FPRE方式を実現するために用いられる部品>
KP−FPRE方式を実現するために、鍵ポリシーの関数型暗号(KP−FE)とワンタイム署名とが用いられる。いずれも公知の技術であるため、ここでは以下の説明で用いる方式について簡単に説明する。なお、KP−FE方式については、特許文献1に一例が記載されている。また、ワンタイム署名については、実施の形態1で説明した通りであるため、ここでは説明を省略する。
KP−FE方式は、SetupKP−FE、KGKP−FE、EncKP−FE、DecKP−FEの4つのアルゴリズムを備える。
(SetupKP−FE
SetupKP−FEアルゴリズムは、セキュリティパラメータλと、属性のフォーマットn:=(d;n,...,n)とを入力として、公開パラメータpkKP−FEと、マスター鍵skKP−FEとを出力する確率的アルゴリズムである。
(KGKP−FE
KGKP−FEアルゴリズムは、アクセスストラクチャS=(M,ρ)と、公開パラメータpkKP−FEと、マスター鍵skKP−FEとを入力として、復号鍵sk KP−FEを出力する確率的アルゴリズムである。
(EncKP−FE
EncKP−FEアルゴリズムは、メッセージmと、属性集合Γ:={(t,x )|x ∈F nt,1≦t≦d}と、公開パラメータpkKP−FEとを入力として、暗号文ψを出力する確率的アルゴリズムである。
(DecKP−FE
DecKP−FEアルゴリズムは、暗号文ψと、復号鍵sk KP−FEと、公開パラメータpkKP−FEとを入力として、メッセージm、又は、識別情報⊥を出力するアルゴリズムである。
<第1−4.KP−FPRE方式及び暗号処理システム10の詳細>
図19から図29に基づき、KP−FPRE方式、及び、KP−FPRE方式を実行する暗号処理システム10の機能と動作とについて説明する。
図19は、鍵生成装置100の機能を示す機能ブロック図である。図20は、暗号化装置200の機能を示す機能ブロック図である。図21は、復号装置300の機能を示す機能ブロック図である。図22は、再暗号化装置400の機能を示す機能ブロック図である。図23は、再暗号文復号装置500の機能を示す機能ブロック図である。
図24は、鍵生成装置100の動作を示すフローチャートであり、KGアルゴリズムの処理を示すフローチャートである。図25は、暗号化装置200の動作を示すフローチャートであり、Encアルゴリズムの処理を示すフローチャートである。図26は、復号装置300の動作を示すフローチャートであり、RKGアルゴリズムの処理を示すフローチャートである。図27は、再暗号化装置400の動作を示すフローチャートであり、REncアルゴリズムの処理を示すフローチャートである。図28は、再暗号文復号装置500の動作を示すフローチャートであり、Dec1アルゴリズムの処理を示すフローチャートである。図29は、復号装置300の動作を示すフローチャートであり、Dec2アルゴリズムの処理を示すフローチャートである。
鍵生成装置100の機能と動作とについて説明する。
鍵生成装置100は、マスター鍵生成部110、マスター鍵記憶部120、情報入力部130、復号鍵生成部140、鍵送信部150を備える。また、復号鍵生成部140は、乱数生成部142、復号鍵k生成部143、KP−FE鍵生成部144、fベクトル生成部145、sベクトル生成部146を備える。
Setupアルゴリズムの処理は、実施の形態1で説明したSetupアルゴリズムの処理と同じであるため、説明を省略する。但し、実施の形態1におけるS102では、CP−FEにおける公開パラメータpkCP−FEと、マスター鍵skCP−FEとを生成したが、実施の形態2では、KP−FEにおける公開パラメータpkKP−FEと、マスター鍵skKP−FEとを生成する。また、部分基底B^,B^,B^ ,B^ は、数171のように構成され、実施の形態1とは異なる。
Figure 2014112048
つまり、鍵生成装置100は、数172−1、数172−2に示すSetupアルゴリズムを実行して、公開パラメータpkとマスター鍵skとを生成する。
Figure 2014112048
Figure 2014112048
図24に基づき、KGアルゴリズムの処理について説明する。
(S801:情報入力ステップ)
情報入力部130は、入力装置により、アクセスストラクチャS:=(M,ρ)を入力する。なお、アクセスストラクチャSの行列Mの設定については、実現したいシステムの条件に応じて設定されるものである。また、アクセスストラクチャSのρは、例えば、復号鍵skの使用者の属性情報が設定されている。ここで、ρ(i)=(t,v :=(vi.1,...,vi.nt)∈F nt\{0})(vi,nt≠0)である。
(S802:KP−FE復号鍵生成ステップ)
KP−FE鍵生成部144は、処理装置により、数173を計算して、関数型暗号の復号鍵sk KP−FEを生成する。
Figure 2014112048
(S803:fベクトル生成ステップ)
fベクトル生成部145は、処理装置により、r個の要素を有するベクトルfを数174に示すようにランダムに生成する。
Figure 2014112048
(S804:sベクトル生成ステップ)
sベクトル生成部146は、処理装置により、アクセスストラクチャSに含まれる(L行×r列)の行列Mと、ベクトルfとに基づき、ベクトルs→T:=(s,...,sを数175に示すように生成する。
Figure 2014112048
また、sベクトル生成部146は、処理装置により、ベクトルfに基づき、値sを数176に示すように生成する。
Figure 2014112048
(S805:乱数生成ステップ)
乱数生成部142は、処理装置により、乱数を数177に示すように生成する。
Figure 2014112048
(S806:復号鍵k生成ステップ)
復号鍵k生成部143は、処理装置により、復号鍵k を数178に示すように生成する。
Figure 2014112048
また、復号鍵k生成部143は、処理装置により、i=1,...,Lの各整数iについて、復号鍵k を数179に示すように生成する。
Figure 2014112048
(S807:鍵送信ステップ)
鍵送信部150は、アクセスストラクチャSと、復号鍵k ,k とを要素とする復号鍵skを、例えば通信装置によりネットワークを介して秘密裡に復号装置300へ送信する。もちろん、復号鍵skは、他の方法により復号装置300へ送信されてもよい。
つまり、(S801)から(S806)において、鍵生成装置100は、数180に示すKGアルゴリズムを実行して、復号鍵skを生成する。そして、(S807)で、鍵生成装置100は、生成した復号鍵skを復号装置300へ送信する。
Figure 2014112048
なお、鍵生成装置100は、(S801)において、復号鍵skS’の使用者の属性情報が設定されたアクセスストラクチャS’:=(M’,ρ’)を入力して、KGアルゴリズムを実行して、復号鍵skS’を生成する。そして、復号鍵skS’:=(S’,k’ ,k’ )を再暗号文復号装置500へ送信する。ここで、ρ’(i)=(t,v→’ :=(v’i.1,...,v’i.nt)∈F nt\{0})(v’i,nt≠0)である。
暗号化装置200の機能と動作とについて説明する。
暗号化装置200は、公開パラメータ受信部210、情報入力部220、署名処理部230、暗号化部240、暗号文送信部250を備える。また、暗号化部240は、乱数生成部243、暗号文cenc生成部244を備える。
図25に基づき、Encアルゴリズムの処理について説明する。
(S901:公開パラメータ受信ステップ)
公開パラメータ受信部210は、例えば、通信装置によりネットワークを介して、鍵生成装置100が生成した公開パラメータpkを受信する。
(S902:情報入力ステップ)
情報入力部220は、入力装置により、属性集合Γ:={(t,x :=(xt.1,...,xt.nt∈Fqnt))|1≦t≦d}を入力する。なお、tは、1以上d以下の全ての整数ではなく、1以上d以下の少なくとも一部の整数であってもよい。また、属性集合Γは、例えば、復号可能なユーザの属性情報が設定されている。また、情報入力部220は、入力装置により、復号装置300へ送信するメッセージmを入力する。
(S903:署名鍵生成ステップ)
署名処理部230は、処理装置により、数181を計算して、ワンタイム署名の署名鍵sigkと、検証鍵verkとを生成する。
Figure 2014112048
(S904:乱数生成ステップ)
乱数生成部243は、処理装置により、乱数を数182に示すように生成する。
Figure 2014112048
(S905:暗号文cenc生成ステップ)
暗号文cenc生成部232は、処理装置により、暗号文cenc を数183に示すように生成する。
Figure 2014112048
また、暗号文cenc生成部232は、処理装置により、属性情報Γに含まれる各整数tについて、暗号文cenc を数184に示すように生成する。
Figure 2014112048
また、暗号文cenc生成部232は、処理装置により、暗号文cenc d+1を数185に示すように生成する。
Figure 2014112048
(S906:署名生成ステップ)
署名処理部230は、処理装置により、数186を計算して、暗号文ctΓの要素C:=(S,cenc ,{cenc (t,xt→)∈Γ,cenc d+1)に対する署名Sigを生成する。
Figure 2014112048
(S907:暗号文送信ステップ)
暗号文送信部250は、属性集合Γと、暗号文cenc ,cenc ,cenc d+1と、検証鍵verkと、署名Sigとを要素とする暗号文ctΓを、例えば通信装置によりネットワークを介して復号装置300へ送信する。もちろん、暗号文ctΓは、他の方法により復号装置300へ送信されてもよい。
つまり、(S901)から(S906)において、暗号化装置200は、数187に示すEncアルゴリズムを実行して、暗号文ctΓを生成する。そして、(S907)で、暗号化装置200は生成した暗号文ctΓを復号装置300へ送信する。
Figure 2014112048
復号装置300の機能と動作とについて説明する。
復号装置300は、復号鍵受信部310、情報入力部320、再暗号化鍵生成部330、再暗号化鍵送信部340、暗号文受信部350、検証部360、補完係数計算部370、ペアリング演算部380、メッセージ計算部390を備える。また、再暗号化鍵生成部330は、乱数生成部331、変換情報W生成部332、変換情報W暗号化部333、復号鍵k*rk生成部334、変換部335、fベクトル生成部336、sベクトル生成部337を備える。また、検証部360は、スパンプログラム計算部361、署名検証部362を備える。
ここでは、図26に基づき、RKGアルゴリズムの処理について説明する。Dec2アルゴリズムについては後述する。
(S1001:復号鍵受信ステップ)
復号鍵受信部310は、例えば、通信装置によりネットワークを介して、鍵生成装置100から送信された復号鍵skを受信する。また、復号鍵受信部310は、鍵生成装置100が生成した公開パラメータpkを受信する。
(S1002:情報入力ステップ)
情報入力部320は、入力装置により、属性集合Γ’:={(t,x’ :=(x’t.1,...,x’t.nt∈F nt\{0}))|1≦t≦d}を入力する。なお、tは、1以上d以下の全ての整数ではなく、1以上d以下の少なくとも一部の整数であってもよい。また、属性集合Γ’は、例えば、再暗号文CTΓ’を復号可能なユーザの属性情報が設定されている。
(S1003:乱数生成ステップ)
乱数生成部331は、処理装置により、乱数を数188に示すように生成する。
Figure 2014112048
(S1004:fベクトル生成ステップ)
fベクトル生成部336は、処理装置により、r個の要素を有するベクトルf→’を数189に示すようにランダムに生成する。
Figure 2014112048
(S1005:sベクトル生成ステップ)
sベクトル生成部337は、処理装置により、アクセスストラクチャSに含まれる(L行×r列)の行列Mと、ベクトルf→’とに基づき、ベクトルs→’Tを数190に示すように生成する。
Figure 2014112048
また、sベクトル生成部337は、処理装置により、ベクトルf→’に基づき、値s を数191に示すように生成する。
Figure 2014112048
(S1006:変換情報W生成ステップ)
変換情報W生成部332は、処理装置により、変換情報Wを数192に示すように生成する。
Figure 2014112048
(S1007:変換情報W暗号化ステップ)
変換情報W暗号化部333は、処理装置により、数193を計算して、変換情報Wを関数型暗号により暗号化して、暗号化変換情報ψrkを生成する。変換情報Wは、属性情報Γ’を入力として関数型暗号により暗号化されるため、再暗号文CTΓ’を復号可能なユーザの属性情報が設定され暗号化される。
Figure 2014112048
(S1008:復号鍵k*rk生成ステップ)
復号鍵生成部334は、処理装置により、復号鍵k*rk を数194に示すように生成する。
Figure 2014112048
また、復号鍵生成部334は、処理装置により、i=1,...,Lの各整数iについて、復号鍵k*rk を数195に示すように生成する。
Figure 2014112048
(S1009:変換ステップ)
変換部335は、処理装置により、数196を計算して、基底D^* を生成する。
Figure 2014112048
(S1010:鍵送信ステップ)
再暗号化鍵送信部340は、アクセスストラクチャSと、属性集合Γ’と、復号鍵k*rk ,k*rk と、暗号化変換情報ψrkと、基底D^* とを要素とする再暗号化鍵rk(S.Γ’)を、例えば通信装置によりネットワークを介して秘密裡に再暗号化装置400へ送信する。もちろん、再暗号化鍵rk(S.Γ’)は、他の方法により再暗号化装置400へ送信されてもよい。
つまり、(S1001)から(S1009)において、復号装置300は、数197に示すRKGアルゴリズムを実行して、再暗号化鍵rk(S.Γ’)を生成する。そして、(S1010)で、復号装置300は生成した再暗号化鍵rk(S.Γ’)を再暗号化装置400へ送信する。
Figure 2014112048
再暗号化装置400の機能と動作とについて説明する。
再暗号化装置400は、公開パラメータ受信部410、暗号文受信部420、再暗号化鍵受信部430、検証部440、暗号化部450、再暗号文送信部460を備える。また、検証部440は、スパンプログラム計算部441、署名検証部442を備える。また、暗号化部450は、乱数生成部451、fベクトル生成部452、sベクトル生成部453、変換情報W生成部454、変換情報W暗号化部455、暗号文crenc生成部456、復号鍵k*renc生成部457を備える。
図27に基づき、REncアルゴリズムの処理について説明する。
(S1101:公開パラメータ受信ステップ)
公開パラメータ受信部410は、例えば、通信装置によりネットワークを介して、鍵生成装置100が生成した公開パラメータpkを受信する。
(S1102:暗号文受信ステップ)
暗号文受信部420は、例えば、通信装置によりネットワークを介して、暗号化装置200が送信した暗号文ctΓを受信する。
(S1103:再暗号化鍵受信ステップ)
再暗号化鍵受信部430は、例えば、通信装置によりネットワークを介して、復号装置300から送信された再暗号化鍵rk(S.Γ’)を受信する。
(S1104:スパンプログラム計算ステップ)
スパンプログラム計算部441は、処理装置により、再暗号化鍵rk(S.Γ’)に含まれるアクセスストラクチャSが、暗号文ctΓに含まれるΓを受理するか否かを判定する。アクセスストラクチャSがΓを受理するか否かの判定方法は、実施の形態1における「第3.FPREを実現するための概念」で説明した通りである。
スパンプログラム計算部441は、アクセスストラクチャSがΓを受理する場合(S1104で受理)、処理を(S1105)へ進める。一方、アクセスストラクチャSがΓを拒絶する場合(S1104で拒絶)、処理を終了する。
(S1105:署名検証ステップ)
署名検証部442は、処理装置により、数198を計算した結果が1であるか否かを判定する。署名検証部442は、結果が1である場合(S1105で正当)、処理を(S1106)へ進める。一方、署名検証部442は、結果が0である場合(S1105で不当)、処理を終了する。
Figure 2014112048
(S1106:乱数生成ステップ)
乱数生成部451は、処理装置により、乱数を数199に示すように生成する。
Figure 2014112048
(S1107:fベクトル生成ステップ)
fベクトル生成部452は、処理装置により、r個の要素を有するベクトルf→’’を数200に示すようにランダムに生成する。
Figure 2014112048
(S1108:sベクトル生成ステップ)
sベクトル生成部453は、処理装置により、アクセスストラクチャSに含まれる(L行×r列)の行列Mと、ベクトルf→’’とに基づき、ベクトルs→’’Tを数201に示すように生成する。
Figure 2014112048
また、sベクトル生成部453は、処理装置により、ベクトルf→’’に基づき、値s ’’を数202に示すように生成する。
Figure 2014112048
(S1109:変換情報W生成ステップ)
変換情報W生成部454は、処理装置により、変換情報Wを数203に示すように生成する。
Figure 2014112048
(S1110:変換情報W暗号化ステップ)
変換情報W暗号化部455は、処理装置により、数204を計算して、変換情報Wを関数型暗号により暗号化して、暗号化変換情報ψrencを生成する。変換情報Wは、属性情報Γ’を入力として関数型暗号により暗号化されるため、再暗号文CTΓ’を復号可能なユーザの属性情報が設定され暗号化される。
Figure 2014112048
(S1111:暗号文crenc生成ステップ)
暗号文crenc生成部456は、処理装置により、暗号文crenc を数205に示すように生成する。
Figure 2014112048
また、暗号文crenc生成部456は、処理装置により、属性情報Γに含まれる各整数tについて、暗号文crenc を数206に示すように生成する。
Figure 2014112048
また、暗号文crenc生成部456は、処理装置により、暗号文crenc d+1を数207に示すように生成する。
Figure 2014112048
(S1112:復号鍵k*renc生成ステップ)
復号鍵k*renc生成部457は、処理装置により、復号鍵k*renc を数208に示すように生成する。
Figure 2014112048
また、復号鍵k*renc生成部457は、処理装置により、i=1,...,Lの各整数iについて、復号鍵k*renc を数209に示すように生成する。
Figure 2014112048
(S1113:再暗号文送信ステップ)
再暗号文送信部460は、属性集合Γ’と、アクセスストラクチャSと、属性集合Γと、復号鍵k*renc ,k*renc と、暗号文crenc ,crenc ,crenc d+1と、暗号化変換情報ψrkと、暗号化変換情報ψrencとを要素とする再暗号文CTΓ’を、例えば通信装置によりネットワークを介して秘密裡に再暗号化装置400へ送信する。もちろん、再暗号文CTΓ’は、他の方法により再暗号化装置400へ送信されてもよい。
つまり、(S1101)から(S1112)において、再暗号化装置400は、数210−1、数210−2に示すREncアルゴリズムを実行して、再暗号文CTΓ’を生成する。そして、(S1113)で、再暗号化装置400は生成した再暗号文CTΓ’を再暗号文復号装置500へ送信する。
Figure 2014112048
Figure 2014112048
再暗号文復号装置500の機能と動作とについて説明する。
再暗号文復号装置500は、復号鍵受信部510、暗号文受信部520、スパンプログラム計算部530、補完係数計算部540、変換情報生成部550、変換部560、ペアリング演算部570、メッセージ計算部580を備える。なお、ペアリング演算部570とメッセージ計算部580とを総称して、復号部と呼ぶ。
図28に基づき、Dec1アルゴリズムの処理について説明する。
(S1201:復号鍵受信ステップ)
復号鍵受信部510は、例えば、通信装置によりネットワークを介して、鍵生成装置100から送信された復号鍵skS’を受信する。また、復号鍵受信部310は、鍵生成装置100が生成した公開パラメータpkを受信する。
(S1202:暗号文受信ステップ)
暗号文受信部520は、例えば、通信装置によりネットワークを介して、再暗号化装置400が送信した再暗号文CTΓ’を受信する。
(S1203:スパンプログラム計算ステップ)
スパンプログラム計算部530は、処理装置により、再暗号文CTΓ’に含まれるアクセスストラクチャSが、再暗号文CTΓ’に含まれるΓを受理するか否かを判定するとともに、復号鍵skS’に含まれるアクセスストラクチャS’が、再暗号文CTΓ’に含まれるΓ’を受理するか否かを判定する。アクセスストラクチャSがΓを受理するか否か、及び、アクセスストラクチャS’がΓ’を受理するか否かの判定方法は、実施の形態1における「第3.FPREを実現するための概念」で説明した通りである。
スパンプログラム計算部530は、アクセスストラクチャSがΓを受理し、かつ、アクセスストラクチャS’がΓ’を受理する場合(S1203で受理)、処理を(S1204)へ進める。一方、アクセスストラクチャSがΓを拒絶する、又は、アクセスストラクチャS’がΓ’を拒絶する場合(S1203で拒絶)、処理を終了する。
(S1204:補完係数計算ステップ)
補完係数計算部540は、処理装置により、数211となるIと、定数(補完係数){αi∈Iとを計算する。
Figure 2014112048
(S1205:変換情報生成ステップ)
変換情報生成部550は、処理装置により、変換情報W ,W を数212に示すように生成する。
Figure 2014112048
(S1206:変換ステップ)
変換部560は、処理装置により、数213に示すように、復号鍵k*renc の基底を変換して復号鍵k を生成するとともに、暗号文crenc の基底を変換して暗号文c を生成する。
Figure 2014112048
(S1207:ペアリング演算ステップ)
ペアリング演算部570は、処理装置により、数214を計算して、セッション鍵Kを生成する。
Figure 2014112048
(S1208:メッセージ計算ステップ)
メッセージ計算部390は、処理装置により、m’=cenc d+1/Kを計算して、メッセージm’(=m)を生成する。
つまり、(S1201)から(S1208)において、再暗号文復号装置500は、数215に示すDec1アルゴリズムを実行して、メッセージm’(=m)を生成する。
Figure 2014112048
図29に基づき、Dec2アルゴリズムの処理について説明する。
(S1301:復号鍵受信ステップ)
復号鍵受信部310は、例えば、通信装置によりネットワークを介して、鍵生成装置100から送信された復号鍵skを受信する。また、復号鍵受信部310は、鍵生成装置100が生成した公開パラメータpkを受信する。
(S1302:暗号文受信ステップ)
暗号文受信部350は、例えば、通信装置によりネットワークを介して、再暗号化装置400が送信した暗号文ctΓを受信する。
(S1303:スパンプログラム計算ステップ)
スパンプログラム計算部361は、処理装置により、復号鍵skに含まれるアクセスストラクチャSが、暗号文ctΓに含まれるΓを受理するか否かを判定する。アクセスストラクチャSがΓを受理するか否かの判定方法は、実施の形態1における「第3.FPREを実現するための概念」で説明した通りである。
スパンプログラム計算部361は、アクセスストラクチャSがΓを受理する場合(S1303で受理)、処理を(S1304)へ進める。一方、アクセスストラクチャSがΓを拒絶する場合(S1303で拒絶)、処理を終了する。
(S1304:署名検証ステップ)
署名検証部362は、処理装置により、数216を計算した結果が1であるか否かを判定する。署名検証部442は、結果が1である場合(S1304で正当)、処理を(S1305)へ進める。一方、署名検証部442は、結果が0である場合(S1304で不当)、処理を終了する。
Figure 2014112048
(S1305:補完係数計算ステップ)
補完係数計算部370は、処理装置により、数217となるIと、定数(補完係数){αi∈Iとを計算する。
Figure 2014112048
(S1306:ペアリング演算ステップ)
ペアリング演算部570は、処理装置により、数218を計算して、セッション鍵Kを生成する。
Figure 2014112048
(S1307:メッセージ計算ステップ)
メッセージ計算部390は、処理装置により、m’=cenc d+1/Kを計算して、メッセージm’(=m)を生成する。
つまり、(S1301)から(S1307)において、復号装置300は、数219に示すDec2アルゴリズムを実行して、メッセージm’(=m)を生成する。
Figure 2014112048
以上のように、実施の形態2に係る暗号システムは、KP−FPRE方式を実現することが可能である。そのため、1つの再暗号化鍵で、様々な種類のユーザの集合に暗号文を転送することができるようになる。
その結果、例えば、ネットワーク上に存在する様々な暗号文を、復号せずに安全に様々な属性を持つユーザに転送することができるようになる。これにより、安全かつ実用的に暗号文の処理を信用できる第三者へ委託することが可能となる。
なお、上記説明では、復号装置300が再暗号化鍵生成装置を兼ねており、復号装置300がDec2アルゴリズムだけでなく、RKGアルゴリズムも実行するとした。しかし、復号装置300と再暗号化鍵生成装置とを別の装置としてもよい。この場合、復号装置300は、Dec2アルゴリズムを実行し、再暗号化鍵生成装置は、RKGアルゴリズムを実行する。したがって、この場合、復号装置300は、Dec2アルゴリズムを実行するのに必要な機能構成を備え、再暗号化鍵生成装置は、RKGアルゴリズムを実行するのに必要な機能構成を備える。
以上の実施の形態では、FEによりメッセージを暗号化して宛先へ送信する場合を想定して、再暗号化装置400が暗号文を再暗号化して、暗号文の宛先を変更することについて説明した。
FEは、メッセージを暗号化して宛先へ送信する機能だけでなく、暗号文を復号することなく検索可能にする検索可能暗号を実現することも可能である。FEにより検索可能暗号を実現した場合に、以上の実施の形態で説明したアルゴリズムにより、設定された検索キーワードを変更することが可能である。
以上の実施の形態では、暗号文に設定する属性情報が復号可能なユーザを指定していた。そして、属性情報を変更することにより、暗号文の宛先を変更した。FEにより検索可能暗号を実現する場合、暗号文に設定する属性情報の一部が、検索可能なユーザを指定し、残りの属性情報の一部が、検索キーワードを指定する。そこで、以上の実施の形態で説明したアルゴリズムを利用して、属性情報のうち、検索キーワードを指定した部分を変更することにより、設定された検索キーワードを変更することが可能である。
また、以上の実施の形態では、1台の鍵生成装置100が復号鍵を生成するとした。しかし、以上の実施の形態のアルゴリズムを、非特許文献3に記載された分散多管理者の方式と組み合わせて、複数の鍵生成装置100により1つの復号鍵が生成されるようにすることも可能である。
また、以上の実施の形態では、属性のカテゴリを追加する場合(属性のフォーマットnにおけるdの値を増やす場合)、公開パラメータを再発行する必要があった。しかし、以上の実施の形態のアルゴリズムを、非特許文献4に記載されたUnboundedの方式と組み合わせて、公開パラメータを再発行することなく、属性のカテゴリを追加できるようにすることも可能である。
また、以上の実施の形態では、内積暗号に用いるベクトルの長さをNとすると、公開パラメータやマスター秘密鍵のサイズはNに比例し、ユーザへ与える復号鍵の生成や暗号化の処理にNに比例する時間がかかる。しかし、以上の実施の形態のアルゴリズムを、非特許文献5に記載された方式と組み合わせて、公開パラメータやマスター秘密鍵のサイズを小さくするとともに、ユーザへ与える復号鍵の生成の処理や暗号化の処理にかかる時間を短くすることも可能である。
実施の形態3.
以上の実施の形態では、双対ベクトル空間において暗号処理を実現する方法について説明した。実施の形態3では、双対加群において暗号処理を実現する方法について説明する。
つまり、以上の実施の形態では、素数位数qの巡回群において暗号処理を実現した。しかし、合成数Mを用いて数220のように環Rを表した場合、環Rを係数とする加群においても、上記実施の形態で説明した暗号処理を適用することができる。
Figure 2014112048
以上の実施の形態で説明したアルゴリズムにおけるFをRに変更すれば、双対加群における暗号処理を実現することができる。
なお、以上の実施の形態において、安全性の証明の観点から、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)である。
次に、実施の形態における暗号システム10(鍵生成装置100、暗号化装置200、復号装置300、再暗号化装置400、再暗号文復号装置500)のハードウェア構成について説明する。
図30は、鍵生成装置100、暗号化装置200、復号装置300、再暗号化装置400、再暗号文復号装置500のハードウェア構成の一例を示す図である。
図30に示すように、鍵生成装置100、暗号化装置200、復号装置300、再暗号化装置400、再暗号文復号装置500は、プログラムを実行するCPU911(Central・Processing・Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。CPU911は、バス912を介してROM913、RAM914、LCD901(Liquid Crystal Display)、キーボード902(K/B)、通信ボード915、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置920(固定ディスク装置)の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。磁気ディスク装置920は、所定の固定ディスクインタフェースを介して接続される。
ROM913、磁気ディスク装置920は、不揮発性メモリの一例である。RAM914は、揮発性メモリの一例である。ROM913とRAM914と磁気ディスク装置920とは、記憶装置(メモリ)の一例である。また、キーボード902、通信ボード915は、入力装置の一例である。また、通信ボード915は、通信装置の一例である。さらに、LCD901は、表示装置の一例である。
磁気ディスク装置920又はROM913などには、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。プログラム群923のプログラムは、CPU911、オペレーティングシステム921、ウィンドウシステム922により実行される。
プログラム群923には、上記の説明において「マスター鍵生成部110」、「マスター鍵記憶部120」、「情報入力部130」、「復号鍵生成部140」、「鍵送信部150」、「公開パラメータ受信部210」、「情報入力部220」、「署名処理部230」、「暗号化部240」、「暗号文送信部250」、「復号鍵受信部310」、「情報入力部320」、「再暗号化鍵生成部330」、「再暗号化鍵送信部340」、「暗号文受信部350」、「検証部360」、「補完係数計算部370」、「ペアリング演算部380」、「メッセージ計算部390」、「公開パラメータ受信部410」、「暗号文受信部420」、「再暗号化鍵受信部430」、「検証部440」、「暗号化部450」、「再暗号文送信部460」、「復号鍵受信部510」、「暗号文受信部520」、「スパンプログラム計算部530」、「補完係数計算部540」、「変換情報生成部550」、「変換部560」、「ペアリング演算部570」、「メッセージ計算部580」等として説明した機能を実行するソフトウェアやプログラムやその他のプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。
ファイル群924には、上記の説明において「公開パラメータpk」、「マスター秘密鍵sk」、「復号鍵sk,skΓ」、「暗号文ctΓ,ct」、「再暗号化鍵rk(Γ,S’),rk(S,Γ’)」、「再暗号文CTS’,CTΓ’」、「アクセスストラクチャS,S’」、「属性集合Γ,Γ’」、「メッセージm」等の情報やデータや信号値や変数値やパラメータが、「ファイル」や「データベース」の各項目として記憶される。「ファイル」や「データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのCPU911の動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のCPU911の動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、上記の説明におけるフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、RAM914のメモリ、その他光ディスク等の記録媒体やICチップに記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体や電波によりオンライン伝送される。
また、上記の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。また、「〜装置」として説明するものは、「〜回路」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。さらに、「〜処理」として説明するものは「〜ステップ」であっても構わない。すなわち、「〜部」として説明するものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、ROM913等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラムは、上記で述べた「〜部」としてコンピュータ等を機能させるものである。あるいは、上記で述べた「〜部」の手順や方法をコンピュータ等に実行させるものである。
100 鍵生成装置、110 マスター鍵生成部、120 マスター鍵記憶部、130 情報入力部、140 復号鍵生成部、141 CP−FE鍵生成部、142 乱数生成部、143 復号鍵k生成部、144 KP−FE鍵生成部、145 fベクトル生成部、146 sベクトル生成部、150 鍵送信部、200 暗号化装置、210 公開パラメータ受信部、220 情報入力部、230 署名処理部、240 暗号化部、241 fベクトル生成部、242 sベクトル生成部、243 乱数生成部、244 暗号文cenc生成部、250 暗号文送信部、300 復号装置、310 復号鍵受信部、320 情報入力部、330 再暗号化鍵生成部、331 乱数生成部、332 変換情報W生成部、333 変換情報W暗号化部、334 復号鍵k*rk生成部、335 変換部、336 fベクトル生成部、337 sベクトル生成部、340 再暗号化鍵送信部、350 暗号文受信部、360 検証部、361 スパンプログラム計算部、362 署名検証部、370 補完係数計算部、380 ペアリング演算部、390 メッセージ計算部、400 再暗号化装置、410 公開パラメータ受信部、420 暗号文受信部、430 再暗号化鍵受信部、440 検証部、441 スパンプログラム計算部、442 署名検証部、450 暗号化部、451 乱数生成部、452 fベクトル生成部、453 sベクトル生成部、454 変換情報W生成部、455 変換情報W暗号化部、456 暗号文crenc生成部、457 復号鍵k*renc生成部、460 再暗号文送信部、500 再暗号文復号装置、510 復号鍵受信部、520 暗号文受信部、530 スパンプログラム計算部、540 補完係数計算部、550 変換情報生成部、560 変換部、570 ペアリング演算部、580 メッセージ計算部。

Claims (10)

  1. 2つの情報が互いに対応している場合に一方の情報が設定された暗号文を他方の情報が設定された復号鍵により復号可能な暗号方式における代理人再暗号機能を実現する暗号システムであって、再暗号化鍵生成装置と再暗号化装置とを備える暗号システムであり、
    前記再暗号化鍵生成装置は、
    互いに対応する属性情報x,vのうちの一方の属性情報が設定された復号鍵kを、変換情報Wを用いて変換して復号鍵k*rkを生成する復号鍵k*rk生成部と、
    互いに対応する属性情報x’,v’のうちの一方の属性情報を設定して前記変換情報Wを暗号化して暗号化変換情報ψrkを生成する変換情報W暗号化部と、
    前記復号鍵k*rkと前記暗号化変換情報ψrkとを再暗号化鍵rkとして前記再暗号化装置へ送信する再暗号化鍵送信部と
    を備え、
    前記再暗号化装置は、
    前記属性情報x,vのうちの他方の属性情報が設定された暗号文cencを受信する暗号文受信部と、
    前記暗号文受信部が受信した暗号文cencに、互いに対応する追加情報Η,Θのうちの少なくとも一方の追加情報を設定して暗号文crencを生成する暗号文crenc生成部と、
    前記再暗号化鍵rkに含まれる前記復号鍵k*rkに、前記追加情報Η,Θのうちの少なくとも他方の追加情報を設定して復号鍵k*rencを生成する復号鍵k*renc生成部と、
    前記暗号文crencと前記復号鍵k*rencと前記暗号化変換情報ψrkとを再暗号文CTとして送信する再暗号文送信部と
    を備えることを特徴とする暗号システム。
  2. 前記暗号文crenc生成部は、前記暗号文cencを、変換情報Wを用いて変換して暗号文crencを生成し、
    前記再暗号化装置は、さらに、
    前記属性情報x’,v’のうちの前記一方の属性情報を用いて前記変換情報Wを暗号化して暗号化変換情報ψrencを生成する変換情報W暗号化部
    を備え、
    前記再暗号文送信部は、前記暗号文crencと前記復号鍵k*rencと前記暗号化変換情報ψrkと前記暗号化変換情報ψrencとを前記再暗号文CTとして送信する
    ことを特徴とする請求項1に記載の暗号システム。
  3. 前記暗号文受信部は、署名鍵sigkで付された署名を検証する検証鍵verkが設定された前記暗号文cencと、前記暗号文cencに対して前記署名鍵sigkで付された署名Sigと、前記検証鍵verkとを受信し、
    前記暗号文crenc生成部は、前記追加情報Η,Θのうちの前記一方の追加情報として、前記検証鍵verkを前記暗号文cencに設定して暗号文crencを生成する
    ことを特徴とする請求項2に記載の暗号システム。
  4. 前記暗号システムは、さらに、再暗号文復号装置を備え、
    前記再暗号文送信部は、前記再暗号文CTを前記再暗号文復号装置へ送信し、
    前記再暗号文復号装置は、
    前記属性情報x’,v’のうちの他方の属性情報を用いて生成された復号鍵k’を受信する復号鍵受信部と、
    前記復号鍵受信部が受信した復号鍵k’により、前記暗号化変換情報ψrkを復号して前記変換情報Wを生成するとともに、前記復号鍵k’により、前記暗号化変換情報ψrencを復号して前記変換情報Wを生成する変換情報生成部と、
    前記変換情報Wにより復号鍵k*rencを変換して復号鍵k*〜を生成するとともに、前記変換情報Wにより前記暗号文crencを変換して暗号文cenc〜を生成する変換部と、
    前記変換部が生成した復号鍵k*〜により、前記暗号文cenc〜を復号する復号部と
    を備えることを特徴とする請求項3に記載の暗号システム。
  5. 前記復号鍵k*rk生成部は、数1に示すk とk とを含む復号鍵kから数2に示すk*rk とk*rk とを含む前記復号鍵k*rkを生成し、
    前記暗号文受信部は、数3に示すcenc とcenc とcenc d+1とを含む暗号文cencを受信し、
    前記暗号文crenc生成部は、数4に示すcrenc とcrenc とcrenc d+1とを含む暗号文crencを生成し、
    前記復号鍵k*renc生成部は、数5に示すk*renc とk*renc とを含む前記復号鍵k*rencを生成し、
    前記変換部は、数6に示すk*〜 及びc を生成し、
    前記復号部は、数7に示すメッセージmを計算する
    ことを特徴とする請求項4に記載の暗号システム。
    Figure 2014112048
    Figure 2014112048
    Figure 2014112048
    Figure 2014112048
    Figure 2014112048
    Figure 2014112048
    Figure 2014112048
  6. 前記復号鍵k*rk生成部は、数8に示すk とk とを含む復号鍵kから数9に示すk*rk とk*rk とを含む前記復号鍵k*rkを生成し、
    前記暗号文受信部は、数10に示すcenc とcenc とcenc d+1とを含む暗号文cencを受信し、
    前記暗号文crenc生成部は、数11に示すcrenc とcrenc とcrenc d+1とを含む暗号文crencを生成し、
    前記復号鍵k*renc生成部は、数12に示すk*renc とk*renc とを含む前記復号鍵k*rencを生成し、
    前記変換部は、数13に示すk*〜 及びc を生成し、
    前記復号部は、数14に示すメッセージmを計算する
    ことを特徴とする請求項4に記載の暗号システム。
    Figure 2014112048
    Figure 2014112048
    Figure 2014112048
    Figure 2014112048
    Figure 2014112048
    Figure 2014112048
    Figure 2014112048
  7. 2つの情報が互いに対応している場合に一方の情報が設定された暗号文を他方の情報が設定された復号鍵により復号可能な暗号方式における代理人再暗号機能を実現する暗号システムの再暗号化鍵生成装置であり、
    互いに対応する属性情報x,vのうちの一方の属性情報が設定された復号鍵kを、変換情報Wを用いて変換して復号鍵k*rkを生成する復号鍵k*rk生成部と、
    互いに対応する属性情報x’,v’のうちの一方の属性情報を用いて前記変換情報Wを暗号化して暗号化変換情報ψrkを生成する変換情報W暗号化部と、
    前記復号鍵k*rkと前記暗号化変換情報ψrkとを再暗号化鍵rkとして再暗号化装置へ送信する再暗号化鍵送信部と
    を備えることを特徴とする再暗号化鍵生成装置。
  8. 2つの情報が互いに対応している場合に一方の情報が設定された暗号文を他方の情報が設定された復号鍵により復号可能な暗号方式における代理人再暗号機能を実現する暗号システムの再暗号化装置であり、
    互いに対応する属性情報x,vのうちの一方の属性情報が設定された復号鍵kが、変換情報Wを用いて変換された復号鍵k*rkと、互いに対応する属性情報x’,v’のうちの一方の属性情報が設定されて前記変換情報Wが暗号化された暗号化変換情報ψrkとを再暗号化鍵rkとして受信する再暗号化鍵受信部と、
    前記属性情報x,vのうちの他方の属性情報が設定された暗号文cencを受信する暗号文受信部と、
    前記暗号文受信部が受信した暗号文cencに、互いに対応する追加情報Η,Θのうちの少なくとも一方の追加情報を設定して暗号文crencを生成する暗号文crenc生成部と、
    前記再暗号化鍵rkに含まれる前記復号鍵k*rkに、前記追加情報Η,Θのうちの少なくとも他方の追加情報を設定して復号鍵k*rencを生成する復号鍵k*renc生成部と、
    前記暗号文crencと前記復号鍵k*rencと前記暗号化変換情報ψrkとを再暗号文CTとして送信する再暗号文送信部と
    を備えることを特徴とする再暗号化装置。
  9. 2つの情報が互いに対応している場合に一方の情報が設定された暗号文を他方の情報が設定された復号鍵により復号可能な暗号方式における代理人再暗号機能を実現する暗号方法であり、
    再暗号化鍵生成装置が、互いに対応する属性情報x,vのうちの一方の属性情報が設定された復号鍵kを、変換情報Wを用いて変換して復号鍵k*rkを生成する復号鍵k*rk生成ステップと、
    前記再暗号化鍵生成装置が、互いに対応する属性情報x’,v’のうちの一方の属性情報を設定して前記変換情報Wを暗号化して暗号化変換情報ψrkを生成する変換情報W暗号化ステップと、
    前記再暗号化鍵生成装置が、前記復号鍵k*rkと前記暗号化変換情報ψrkとを再暗号化鍵rkとして再暗号化装置へ送信する再暗号化鍵送信ステップと
    を備え、
    前記再暗号化装置が、前記属性情報x,vのうちの他方の属性情報が設定された暗号文cencを受信する暗号文受信ステップと、
    前記再暗号化装置が、前記暗号文受信ステップで受信した暗号文cencに、互いに対応する追加情報Η,Θのうちの少なくとも一方の追加情報を設定して暗号文crencを生成する暗号文crenc生成ステップと、
    前記再暗号化装置が、前記再暗号化鍵rkに含まれる前記復号鍵k*rkに、前記追加情報Η,Θのうちの少なくとも他方の追加情報を設定して復号鍵k*rencを生成する復号鍵k*renc生成ステップと、
    前記再暗号化装置が、前記暗号文crencと前記復号鍵k*rencと前記暗号化変換情報ψrkとを再暗号文CTとして送信する再暗号文送信ステップと
    を備えることを特徴とする暗号方法。
  10. 2つの情報が互いに対応している場合に一方の情報が設定された暗号文を他方の情報が設定された復号鍵により復号可能な暗号方式における代理人再暗号機能を実現する暗号プログラムであって、再暗号化鍵生成プログラムと再暗号化プログラムとを備える暗号システムであり、
    前記再暗号化鍵生成プログラムは、
    互いに対応する属性情報x,vのうちの一方の属性情報が設定された復号鍵kを、変換情報Wを用いて変換して復号鍵k*rkを生成する復号鍵k*rk生成処理と、
    互いに対応する属性情報x’,v’のうちの一方の属性情報を設定して前記変換情報Wを暗号化して暗号化変換情報ψrkを生成する変換情報W暗号化処理と、
    前記復号鍵k*rkと前記暗号化変換情報ψrkとを再暗号化鍵rkとして前記再暗号化プログラムへ送信する再暗号化鍵送信処理と
    をコンピュータに実行させ、
    前記再暗号化プログラムは、
    前記属性情報x,vのうちの他方の属性情報が設定された暗号文cencを受信する暗号文受信処理と、
    前記暗号文受信処理で受信した暗号文cencに、互いに対応する追加情報Η,Θのうちの少なくとも一方の追加情報を設定して暗号文crencを生成する暗号文crenc生成処理と、
    前記再暗号化鍵rkに含まれる前記復号鍵k*rkに、前記追加情報Η,Θのうちの少なくとも他方の追加情報を設定して復号鍵k*rencを生成する復号鍵k*renc生成処理と、
    前記暗号文crencと前記復号鍵k*rencと前記暗号化変換情報ψrkとを再暗号文CTとして送信する再暗号文送信処理と
    をコンピュータに実行させることを特徴とする暗号プログラム。
JP2014557223A 2013-01-16 2013-01-16 暗号システム、再暗号化装置及び暗号方法 Active JP5905128B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/050653 WO2014112048A1 (ja) 2013-01-16 2013-01-16 暗号システム、再暗号化鍵生成装置、再暗号化装置、暗号方法及び暗号プログラム

Publications (2)

Publication Number Publication Date
JP5905128B2 JP5905128B2 (ja) 2016-04-20
JPWO2014112048A1 true JPWO2014112048A1 (ja) 2017-01-19

Family

ID=51209174

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014557223A Active JP5905128B2 (ja) 2013-01-16 2013-01-16 暗号システム、再暗号化装置及び暗号方法

Country Status (5)

Country Link
US (1) US9344276B2 (ja)
EP (1) EP2947810B1 (ja)
JP (1) JP5905128B2 (ja)
CN (1) CN104871477B (ja)
WO (1) WO2014112048A1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9755823B2 (en) 2013-05-15 2017-09-05 Mitsubishi Electric Corporation Cryptographic system, cryptographic method, and computer readable medium
JP6270683B2 (ja) * 2014-10-03 2018-01-31 三菱電機株式会社 暗号システム、暗号方法、普遍再暗号化鍵生成装置及び再暗号化鍵生成装置
US10116442B2 (en) * 2015-02-20 2018-10-30 Mitsubishi Electric Corporation Data storage apparatus, data updating system, data processing method, and computer readable medium
US11139952B2 (en) * 2017-01-18 2021-10-05 Mitsubishi Electric Corporation Homomorphic computation device, encryption system, and computer readable medium
US10484352B2 (en) * 2017-03-31 2019-11-19 Microsoft Technology Licensing, Llc Data operations using a proxy encryption key
EP3616384B1 (en) 2017-04-28 2022-06-01 Ironcore Labs, Inc. Orthogonal access control for groups via multi-hop transform encryption
JP6599055B2 (ja) * 2017-06-09 2019-10-30 三菱電機株式会社 再暗号化鍵生成装置、再暗号化装置、再暗号化暗号文復号装置及び暗号システム
CN111373401B (zh) * 2017-11-27 2023-04-25 三菱电机株式会社 同态推理装置、同态推理方法、计算机能读取的存储介质和隐匿信息处理系统
WO2019130528A1 (ja) * 2017-12-28 2019-07-04 三菱電機株式会社 変換鍵生成装置、暗号文変換装置、秘匿情報処理システム、変換鍵生成方法、変換鍵生成プログラム、暗号文変換方法及び暗号文変換プログラム
CN109740364B (zh) * 2019-01-04 2020-12-15 大连大学 可控搜索权限的基于属性的密文搜索方法
WO2020240630A1 (ja) * 2019-05-24 2020-12-03 三菱電機株式会社 再暗号化装置、再暗号化方法、再暗号化プログラム及び暗号システム
JP7126635B2 (ja) 2020-06-17 2022-08-26 三菱電機株式会社 再暗号化装置、暗号システム、再暗号化方法及び再暗号化プログラム
CN111800416B (zh) * 2020-07-03 2021-07-27 西南大学 基于非单调性动态认知逻辑的密码协议分析方法
US20240080203A1 (en) * 2021-01-06 2024-03-07 Ntt Research, Inc. Decentralized multi-authority attribute-based encryption from bilinear diffie-hellman assumptions
CN114826759B (zh) * 2022-05-11 2023-10-03 贵州大学 一种可验证的细粒度访问控制内积函数加密方法
CN115567247B (zh) * 2022-08-31 2024-03-19 西安电子科技大学 一种去中心化的多权威隐私保护数据访问控制方法及系统
WO2024151871A1 (en) * 2023-01-11 2024-07-18 Ntt Research, Inc. Decentralized multi-authority attribute-based encryption for large universe and unbounded

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8094810B2 (en) 2006-02-03 2012-01-10 Massachusetts Institute Of Technology Unidirectional proxy re-encryption
JP5144991B2 (ja) 2006-08-22 2013-02-13 株式会社エヌ・ティ・ティ・データ 暗号文復号権限委譲システム
JP5047638B2 (ja) 2006-12-14 2012-10-10 株式会社エヌ・ティ・ティ・データ 暗号文復号権委譲システム
CN101617351B (zh) * 2007-01-19 2011-06-22 三菱电机株式会社 密文生成装置、密码通信系统以及群参数生成装置
WO2009090750A1 (ja) * 2008-01-18 2009-07-23 Mitsubishi Electric Corporation 暗号パラメータ設定装置及び鍵生成装置及び暗号システム及びプログラム及び暗号パラメータ設定方法及び鍵生成方法
EP2228942B1 (en) * 2009-03-13 2012-06-06 Sap Ag Securing communications sent by a first user to a second user
JP5349261B2 (ja) * 2009-04-23 2013-11-20 三菱電機株式会社 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム
JP2011055309A (ja) 2009-09-03 2011-03-17 National Institute Of Information & Communication Technology 二機能付きidベース暗号化方法及び暗号システム
WO2011045723A1 (en) * 2009-10-15 2011-04-21 Koninklijke Philips Electronics N.V. Ciphertext-policy attribute-based encryption and re-encryption
JP2011147047A (ja) 2010-01-18 2011-07-28 Nippon Telegr & Teleph Corp <Ntt> プロキシ再暗号化システム、送信装置、再暗号化鍵生成装置、プロキシ装置、受信装置、プロキシ再暗号化方法、それらのプログラムおよび記録媒体
JP5693206B2 (ja) * 2010-12-22 2015-04-01 三菱電機株式会社 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム
JP2012150378A (ja) 2011-01-21 2012-08-09 Nippon Telegr & Teleph Corp <Ntt> プロキシ再暗号化システム、鍵生成装置、再暗号化装置、プロキシ再暗号化方法、プログラム
JP2012150399A (ja) 2011-01-21 2012-08-09 Nippon Telegr & Teleph Corp <Ntt> プロキシ再暗号化システム、委譲情報生成装置、被委譲情報生成装置、変換鍵生成装置、暗号文変換装置、プロキシ再暗号化方法、及びそれらのプログラム
US8873754B2 (en) * 2011-12-20 2014-10-28 Huawei Technologies Co., Ltd. Proxy-based encryption method, proxy-based decryption method, network equipment, network device and system
CN102546600B (zh) * 2011-12-20 2014-12-03 华为技术有限公司 基于代理的加密、解密方法,网络设备、网络装置及系统

Also Published As

Publication number Publication date
EP2947810A4 (en) 2016-08-31
CN104871477A (zh) 2015-08-26
WO2014112048A1 (ja) 2014-07-24
US9344276B2 (en) 2016-05-17
US20150318988A1 (en) 2015-11-05
EP2947810B1 (en) 2021-07-14
JP5905128B2 (ja) 2016-04-20
CN104871477B (zh) 2018-07-10
EP2947810A1 (en) 2015-11-25

Similar Documents

Publication Publication Date Title
JP5905128B2 (ja) 暗号システム、再暗号化装置及び暗号方法
JP6053966B2 (ja) 暗号システム及び再暗号化装置
JP5680007B2 (ja) 暗号システム、暗号方法及び暗号プログラム
JP6083234B2 (ja) 暗号処理装置
JP5618881B2 (ja) 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム
JP5951122B2 (ja) 暗号システム、暗号方法及び暗号プログラム
JP6022073B2 (ja) 暗号システム、再暗号化鍵生成装置及び再暗号化装置
JP2016012111A (ja) 暗号処理方法、暗号処理装置、および暗号処理プログラム
JP2014126865A (ja) 暗号処理装置および方法
JP5814880B2 (ja) 暗号システム、暗号方法、暗号プログラム及び復号装置
JP2016080766A (ja) 暗号処理方法、暗号処理装置、及び暗号処理プログラム
JP5921410B2 (ja) 暗号システム
CN103354984B (zh) 密码处理系统、密钥生成装置、加密装置、解密装置、密钥移交装置以及密码处理方法
WO2018043049A1 (ja) 暗号システム、暗号方法及び暗号プログラム
JP6270683B2 (ja) 暗号システム、暗号方法、普遍再暗号化鍵生成装置及び再暗号化鍵生成装置
JP6053983B2 (ja) 暗号システム、署名システム、暗号プログラム及び署名プログラム
JP7325689B2 (ja) 暗号文変換システム、変換鍵生成方法、及び、変換鍵生成プログラム
Chandra et al. STUDY OF RSA ALGORITHM FOR DATA ENCRYPTION AND DECRYPTION

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160121

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: 20160216

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160315

R150 Certificate of patent or registration of utility model

Ref document number: 5905128

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