CN105850071A - 加密系统、重加密密钥生成装置、重加密装置和加密程序 - Google Patents

加密系统、重加密密钥生成装置、重加密装置和加密程序 Download PDF

Info

Publication number
CN105850071A
CN105850071A CN201480071416.0A CN201480071416A CN105850071A CN 105850071 A CN105850071 A CN 105850071A CN 201480071416 A CN201480071416 A CN 201480071416A CN 105850071 A CN105850071 A CN 105850071A
Authority
CN
China
Prior art keywords
rightarrow
ciphertext
numerical expression
prime
key
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201480071416.0A
Other languages
English (en)
Other versions
CN105850071B (zh
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
Publication of CN105850071A publication Critical patent/CN105850071A/zh
Application granted granted Critical
Publication of CN105850071B publication Critical patent/CN105850071B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0464Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload using hop-by-hop encryption, i.e. wherein an intermediate entity decrypts the information and re-encrypts it before forwarding it
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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/0825Key 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) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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
    • 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/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)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Storage Device Security (AREA)
  • Complex Calculations (AREA)

Abstract

加密装置(200)输出被设定了相互对应的属性信息x0、v0中的一方的密文ct0。解密装置(300)接收被设定了属性信息x0、v0中的另一方的解密密钥k*,输出包含解密密钥k*rk 0和密文ct’1的重加密密钥rk1,其中,解密密钥k*rk 0是利用转换信息r1对接收到的解密密钥k*进行转换而得到的,密文ct’1是被设定了相互对应的属性信息x1、v1中的一方且对转换信息r1进行加密而得到的。重加密装置(400)输出包含利用解密密钥k*rk 0对密文ct0进行解密而得到的会话密钥K’0和密文ct’1的重密文ct1

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中,具有与函数型加密(Functional Encryption:FE)方式有关的记载。在非专利文献3中,具有与FPRE方式有关的记载。
现有技术文献
专利文献
专利文献1:日本特开2012-133214号公报
非专利文献
非专利文献1:M.Green,and G.Ateniese,Identity-Based Proxy Re-encryption.InApplied Cryptography and Network Security.volume 4521of LNCS,pp 288-306,2007.
非专利文献2:Xiaohui Liang,Zhenfu Cao,Huang Lin,Jun Shao.Attribute basedproxy re-encryption with delegating capabilities.ASIACCS 2009pp.276-286.
非专利文献3:Yutaka kawai and Katuyuki Takashima,Fully-Anonymous FunctionalProxy-Re-Encryption.Cryptology ePrint Archive:Report 2013/318
非专利文献4:R.Canetti and S.Hohenberger.Chosen-Ciphertext Secure ProxyRe-encryption.In ACMCCS 2007.
非专利文献5:Okamoto,T Takashima,K.:Decentralized Attribute-BasedSignatures.ePrint http://eprint.iacr.org/2011/701
非专利文献6:Okamoto,T Takashima,K.:Fully Secure Unbounded Inner-Productand Attribute-Based Encryption.ePrint http://eprint.iacr.org/2012/671
非专利文献7:Okamoto,T.,Takashima,K.:Achieving Short Ciphertexts or ShortSecret-Keys for Adaptively Secure General Inner-Product Encryption.CANS 2011,LNCS,vol.7092,pp.138-159Springer Heidelberg(2011).
发明内容
发明要解决的课题
在非专利文献3所述的FPRE方式中,当对通过加密算法生成的原始密文进行重加密时,密文尺寸成为3倍。当进一步对重密文进行重加密时,密文尺寸进一步成为3倍。即,当执行n次重加密时,与原始密文相比,密文尺寸成为3n倍,相对于重加密次数,密文尺寸以指数函数的方式增加。
本发明的目的在于,实现抑制了伴随重加密的密文尺寸的增加量的FPRE方式。
用于解决课题的手段
本发明的加密系统实现在2个信息相互对应的情况下,能够利用被设定了一个信息的解密密钥对被设定了另一个信息的密文进行解密的加密方式下的代理重加密功能,其特征在于,所述加密系统具有:加密装置,其输出被设定了相互对应的属性信息x0、v0中的一方的密文ct0;重加密密钥生成装置,其取得被设定了所述属性信息x0、v0中的另一方的解密密钥k*,输出包含解密密钥k*rk 0和密文ct’1的重加密密钥rk1,其中,所述解密密钥k*rk 0是利用转换信息r1对所取得的解密密钥k*进行转换而得到的,所述密文ct’1是被设定了相互对应的属性信息x1、v1中的一方且对所述转换信息r1进行加密而得到的;以及重加密装置,其输出包含利用所述解密密钥k*rk 0对所述密文ct0进行解密而得到的会话密钥K’0和所述密文ct’1的重密文ct1
发明效果
在本发明的加密系统中,将利用由转换信息转换后的解密密钥对密文进行解密而得到的会话密钥和以传送目的地的利用者能够解密的方式对转换信息进行加密后的密文作为重加密密钥rk。由此,能够抑制伴随重加密的密文尺寸的增加量。
附图说明
图1是矩阵M^的说明图。
图2是矩阵Mδ的说明图。
图3是s0的说明图。
图4是s→T的说明图。
图5是执行CP-FPRE方式的加密系统10的结构图。
图6是示出密钥生成装置100的功能的功能框图。
图7是示出加密装置200的功能的功能框图。
图8是示出解密装置300的功能的功能框图。
图9是示出重加密装置400的功能的功能框图。
图10是示出重密文解密装置500的功能的功能框图。
图11是示出Setup算法的处理的流程图。
图12是示出KG算法的处理的流程图。
图13是示出Enc算法的处理的流程图。
图14是示出RKG算法的处理的流程图。
图15是示出REnc算法的处理的流程图。
图16是示出Dec1算法的处理的流程图。
图17是示出Dec2算法的处理的流程图。
图18是示出Setup算法的处理的流程图。
图19是执行KP-FPRE方式的加密系统10的结构图。
图20是示出密钥生成装置100的功能的功能框图。
图21是示出加密装置200的功能的功能框图。
图22是示出解密装置300的功能的功能框图。
图23是示出重加密装置400的功能的功能框图。
图24是示出重密文解密装置500的功能的功能框图。
图25是示出KG算法的处理的流程图。
图26是示出Enc算法的处理的流程图。
图27是示出RKG算法的处理的流程图。
图28是示出REnc算法的处理的流程图。
图29是示出Dec1算法的处理的流程图。
图30是示出Dec2算法的处理的流程图。
图31是示出实施方式1~4所示的加密系统10的各装置的硬件结构的例子的图。
具体实施方式
对以下说明中的记法进行说明。
在A是随机的变量或分布时,数式101表示根据A的分布而从A中随机选择y。即,在数式101中,y是随机数。
【数式101】
y ← R A
在A是集合时,数式102表示从A中均匀选择y。即,在数式102中,y是均匀随机数。
【数式102】
y ← U A
数式103表示在y中设定z,通过z定义y,或y代入z。
【数式103】
y:=z
在a是常数时,数104表示机械(算法)A相对于输入x而输出a。
【数式104】
A(x)→a
例如,
A(x)→1
数式105即Fq表示位数q的有限体。
【数式105】
Fq
矢量表记表示有限体Fq中的矢量显示。即,是数式106。
【数式106】
表示
( x 1 , ... , x n ) ∈ F q n .
数式107表示数式108所示的2个矢量x与v的数式109所示的内积。
【数式107】
x → · v →
【数式108】
x → = ( x 1 , ... , x n ) ,
v → = ( v 1 , ... , v n )
【数式109】
Σ i = 1 n x i v i
XT表示矩阵X的转置矩阵。
相对于数式110所示的基B和基B*,是数式111。
【数式110】
B:=(b1,...,bN),
B * : = ( b 1 * , ... , b N * )
【数式111】
( x 1 , ... , x N ) B : = Σ i = 1 N x i b i ,
( y 1 , ... , y N ) B * : = Σ i = 1 N y i b i *
e j表示数式112所示的标准基矢量。
【数式112】
并且,在以下的说明中,在利用下标或上标表示Vt、nt、wt、zt、nu、wu、zu的情况下,该Vt、nt、wt、zt、nu、wu、zu意味着Vt、nt、wt、zt、nu、wu、zu。同样,在利用上标表示δi、j的情况下,该δi、j意味着δi、j。同样,在利用上标表示的情况下,该意味着
并且,在对下标文字或上标文字标注意味着矢量的→的情况下,该→意味着利用上标标注在下标文字或上标文字上。
实施方式1
在该实施方式中,对实现FPRE方式的基础概念进行说明后,对该实施方式的FPRE方式的结构进行说明。
第1,对FPRE进行简单说明。
第2,对用于实现FPRE方式的空间即对偶配对矢量空间(Dual Pairing VectorSpaces:DPVS)这样的具有丰富数学构造的空间进行说明。
第3,对用于实现FPRE方式的概念进行说明。这里,对张成方案、属性矢量的内积和访问构造、秘密分散方式(秘密共享方式)进行说明。
第4,对该实施方式的FPRE方式进行说明。在该实施方式中,对密文策略的FPRE方式(Ciphertext-Policy FPRE:CP-FPRE)方式进行说明。因此,首先,对CP-FPRE方式的基本结构进行说明。接着,对实现该CP-FPRE方式的加密系统10的基本结构进行说明。然后,对该实施方式的CP-FPRE方式和加密系统10进行详细说明。
<第1.FPRE>
FPRE是使加密密钥(ek)、解密密钥(dk)、重加密密钥(rk)的关系更加高度化并且变得灵活的代理重加密方式。
FPRE具有以下的2个特征。
第一,加密密钥和解密密钥分别设定属性信息x和属性信息v。而且,针对关系R,仅在R(x、v)成立的情况下,解密密钥dkv能够对由加密密钥ekx加密后的密文进行解密。
第二,除了分别对加密密钥和解密密钥设定属性信息x和属性信息v以外,重加密密钥设定2个属性信息(x’、v)。而且,仅在R(x、v)成立的情况下,重加密密钥rk(x’、v)能够将由加密密钥ekx加密后的密文,变更成能够利用R(x’、v’)成立的解密密钥dkv’进行解密的密文即由加密密钥ekx’加密后的密文。
仅在关系R为等号关系的情况下即x=v的情况下,在R(x、v)成立的情况下,PRE方式是IDPRE。
作为比IDPRE更加一般化的PRE,具有ABPRE。在ABPRE中,加密密钥和解密密钥中设定的属性信息是属性信息的组。例如,加密密钥和解密密钥中设定的属性信息分别是X:=(x1、...、xd)和V:=(v1、...、vd)。
关于属性信息的成分,每个成分的等号关系(例如{xt=vt}t∈{1、...、d})被输入到访问结构S。然后,仅在访问结构S受理了输入的情况下,R(X,V)成立。即,能够利用解密密钥对由加密密钥加密后的密文进行解密。在非专利文献2中提出了访问结构S被嵌入密文中的密文策略的PRE方式。此时的访问结构是仅由逻辑“与”和“非”构成的构造。
具有不存在密文的传送功能即不存在重加密密钥的通常的FE。在FE中,不存在重加密密钥、重加密处理,加密密钥和解密密钥分别设定有属性信息x和属性信息v。而且,针对关系R,仅在R(x、v)成立的情况下,解密密钥dkv:=(dk、v)能够对由加密密钥ekx:=(ek、x)加密后的密文进行解密。
<第2.对偶配对矢量空间>
首先,对对称双线性配对组进行说明。
对称双线性配对组(q、G、GT、g、e)是质数q、位数q的循环加法组G、位数q的循环乘法组GT、g≠0∈G、能够利用多项式时间计算的非退化双线性配对(Nondegenerate Bilinear Pairing)e:G×G→GT的组。非退化双线性配对是e(sg、tg)=e(g、g)st,e(g、g)≠1。
在以下的说明中,设Gbpg为如下算法:将1λ作为输入,输出设安全参数为λ的双线性配对组的参数paramG:=(q、G、GT、g、e)的值。
接着,对对偶配对矢量空间进行说明。
对偶配对矢量空间(q、V、GT、A、e)可以由对称双线性配对组(paramG:=(q、G、GT、g、e))的直积构成。对偶配对矢量空间(q、V、GT、A、e)是质数q、数式113所示的Fq上的N维矢量空间V、位数q的循环组GT、空间V的标准基A:=(a1、...、aN)的组,具有以下的运算(1)(2)。这里,ai如数式114所示。
【数式113】
【数式114】
运算(1):非退化双线性配对
空间V中的配对由数式115定义。
【数式115】
e ( x , y ) : = &Pi; i = 1 N e ( G i , H i ) &Element; G T
其中,
(G1,...,GN):=x∈V,
(H1,...,HN):=y∈V
这是非退化双线性。即,e(sx、ty)=e(x、y)st,相对于全部的y∈V,在e(x、y)=1的情况下,x=0。并且,相对于全部的i和j,e(ai、aj)=e(g、g)δi、j。这里,如果i=j,则δi、j=1,如果i≠j,则δi、j=0。并且,e(g、g)≠1∈GT
运算(2):失真映射
数式116所示的空间V中的线性变换能够进行数式117。
【数式116】
φi,j(aj)=ai
如果k≠j,则φi,j(ak)=0。
【数式117】
其中,
(g1,...gN):=x
这里,将线性变换称作失真映射。
在以下的说明中,设Gdpvs为如下算法:将1λ(λ∈自然数)、N∈自然数、双线性配对组的参数paramG:=(q、G、GT、g、e)的值作为输入,输出安全参数为λ、设为N维空间V的对偶配对矢量空间的参数paramV:=(q、V、GT、A、e)的值。
另外,这里,对通过上述对称双线性配对组构成对偶配对矢量空间的情况进行说明。另外,也可以通过非对称双线性配对组构成对偶配对矢量空间。在通过非对称双线性配对组构成对偶配对矢量空间的情况下,容易应用以下的说明。
<第3.用于实现FPRE方式的概念>
<第3-1.张成方案>
图1是矩阵M^的说明图。
设{p1、...、pn}为变量的集合。M^:=(M、ρ)是带标签的矩阵。这里,矩阵M是Fq上的(L行×r列)的矩阵。并且,ρ是对矩阵M的各行附加的标签,与{p1、...、pn、¬p1、...、¬pn}中的任意一个常量对应。另外,对M的全部行附加的标签ρi(i=1、...、L)与任意一个常量对应。即,ρ:{1、...、L}→{p1、...、pn、¬p1、...、¬pn}。
针对全部输入列δ∈{0、1}n来定义矩阵M的部分矩阵Mδ。矩阵Mδ是由通过输入列δ使值“1”与标签ρ对应的矩阵M的行构成的部分矩阵。即,矩阵Mδ是由与δi=1的pi对应的矩阵M的行和与δi=0的¬pi对应的矩阵M的行构成的部分矩阵。
图2是矩阵Mδ的说明图。另外,在图2中,设n=7、L=6、r=5。即,变量的集合是{p1、...、p7},矩阵M是(6行×5列)的矩阵。并且,在图2中,关于标签ρ,ρ1与¬p2对应,ρ2与p1对应,ρ3与p4对应,ρ4与¬p5对应,ρ5与¬p3对应,ρ6与p5对应。
这里,设输入列δ∈{0、1}7为δ1=1、δ2=0、δ3=1、δ4=0、δ5=0、δ6=1、δ7=1。该情况下,由与虚线包围的常量(p1、p3、p6、p7、¬p2、¬p4、¬p5)对应的矩阵M的行构成的部分矩阵是矩阵Mδ。即,由矩阵M的第1行(M1)、第2行(M2)、第4行(M4)构成的部分矩阵是矩阵Mδ
换言之,在映射γ:{1、...、L}→{0、1}为[ρ(j)=pi]∧[δi=1]或[ρ(j)=¬pi]∧[δi=0]的情况下,γ(j)=1,在其它情况下,γ(j)=0。该情况下,Mδ:=(Mj)γ(j)=1。这里,Mj是矩阵M的第j行。
即,在图2中,映射γ(j)=1(j=1、2、4),映射γ(j)=0(j=3、5、6)。因此,(Mj)γ(j)=1是M1、M2、M4,是矩阵Mδ
即,根据映射γ(j)的值是“0”还是“1”,决定矩阵M的第j行是否包含在矩阵Mδ中。
仅在1∈span<Mδ>的情况下,张成方案M^受理输入列δ,在其它情况下,拒绝输入列δ。即,仅在对通过输入列δ从矩阵M^得到的矩阵Mδ的行进行线性耦合而得到1的情况下,张成方案M^受理输入列δ。另外,1是各要素为值“1”的行矢量。
例如,如果是图2的例子,则仅在对由矩阵M的第1、2、4行构成的矩阵Mδ的各行进行线性耦合而得到1的情况下,张成方案M^受理输入列δ。即,在存在α1(M1)+α2(M2)+α4(M4)=1的α1、α2、α4的情况下,张成方案M^受理输入列δ。
这里,在标签ρ仅与正的常量{p1、...、pn}对应的情况下,张成方案被称作单调。另一方面,在标签ρ与常量{p1、...、pn、¬p1、...、¬pn}对应的情况下,张成方案被称作非单调。这里,设张成方案为非单调。而且,使用非单调张成方案构成访问结构(非单调访问结构)。简单地讲,访问结构是指进行对加密的访问控制。即,是指进行是否能够对密文进行解密的控制。
在后面详细叙述,由于张成方案不是单调而是非单调,由此,利用张成方案构成的FPRE方式的利用范围较广。
<第3-2.属性信息的内积和访问结构>
这里,使用属性信息的内积计算上述映射γ(j)。即,使用属性信息的内积决定将矩阵M的哪个行包含在矩阵Mδ中。
是部分全集合(sub-universe),是属性的集合。而且,Ut分别包含部分全集合的识别信息(t)和n维矢量(v)。即,Ut是(t、v)。这里,t∈{1、...、d},v∈Fq n
设Ut:=(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 t)|x t∈Fqn、1≦t≦d}。
在对访问结构S赋予Γ的情况下,如下定义针对张成方案M^:=(M、ρ)的映射γ:{1、...、L}→{0、1}。关于i=1、...、L的各整数i,在[ρ(i)=(t、v i)]∧[(t、x t)∈Γ]∧[v i·x t=0]或[ρ(i)=¬(t、v i)]∧[(t、x t)∈Γ]∧[v i·x t≠0]的情况下,γ(j)=1,在其它情况下,γ(j)=0。
即,根据属性信息v与x的内积来计算映射γ。然后,如上所述,通过映射γ决定将矩阵M的哪个行包含在矩阵Mδ中。即,通过属性信息v与x的内积来决定将矩阵M的哪个行包含在矩阵Mδ中,仅在1∈span<(Mi)γ(i)=1>的情况下,访问结构S:=(M、ρ)受理Γ。
<第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称作阈值。
并且,还存在如下的秘密分散方式:在生成d1、...、d10这10个分散信息的情况下,如果是d1、...、d8这8个分散信息,则能够恢复秘密信息s,如果是d3、...、d10这8个分散信息,则无法恢复秘密信息s。即,还存在不仅根据得到的分散信息的数量还根据分散信息的组合来控制是否能够恢复秘密信息s的秘密分散方式。
图3是s0的说明图。图4是s→T的说明图。
设矩阵M为(L行×r列)的矩阵。设f→T为数式118所示的列矢量。
【数式118】
f &RightArrow; T : = ( f 1 , ... f r ) T &LeftArrow; U F q r
设数式119所示的s0为共享的秘密信息。
【数式119】
s 0 : = 1 &RightArrow; &CenterDot; f &RightArrow; T : = &Sigma; k = 1 r f k
并且,设数式120所示的s→T为s0的L个分散信息的矢量。
【数式120】
s &RightArrow; T : = ( s 1 , ... s L ) T : = M &CenterDot; f &RightArrow; T
而且,设分散信息si属于ρ(i)。
在访问结构S:=(M、ρ)受理Γ的情况下,即,关于γ:{1、...、L}→{0、1},在1∈span<(Mi)γ(i)=1>的情况下,存在的常数{αi∈Fq|i∈I}。
在图2的例子中,说明了在存在α1(M1)+α2(M2)+α4(M4)=1的α1、α2、α4的情况下张成方案M^受理输入列δ,因此,这是显而易见的。即,在存在α1(M1)+α2(M2)+α4(M4)=1的α1、α2、α4的情况下,如果张成方案M^受理输入列δ,则存在α1(M1)+α2(M2)+α4(M4)=1的α1、α2、α4
然后,是数式121。
【数式121】
i∈Iαisi:=s0
另外,常数{αi}能够利用矩阵M的尺寸下的多项式时间进行计算。
如上所述,以下的实施方式的FPRE方式在张成方案中应用内积谓语和秘密分散方式构成访问结构。因此,通过设计张成方案中的矩阵M、内积谓语中的属性信息x和属性信息v(谓语信息),能够自由设计访问控制。即,能够以非常高的自由度进行访问控制的设计。另外,矩阵M的设计相当于秘密分散方式的阈值等的条件设计。
例如,上述基于属性的加密方式相当于在以下的实施方式的FPRE方式下的访问结构中将内积谓语的设计限定成某个条件的情况。即,与以下的实施方式的FPRE方式下的访问结构相比,在基于属性的加密方式下的访问结构中,没有内积谓语中的属性信息x和属性信息v(谓语信息)的设计的自由度,相应地,访问控制的设计自由度较低。另外,具体而言,基于属性的加密方式相当于将属性信息{x t}t∈{1、...、d}和{v t}t∈{1、...、d}限定成针对等号关系的二维矢量例如x t:=(1、xt)和v t:=(vt、-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;n1、...、nd;u1、...、ud;z1、...、zd)、表示重加密次数的上限值的值Q作为输入而输出公开参数pk和主密钥sk的概率算法。
(KG)
KG算法是将属性集合Γ:={(t、x t)|x t∈Fq nt、1≦t≦d}、公开参数pk、主密钥sk作为输入而输出解密密钥skΓ的概率算法。
(Enc)
Enc算法是将消息m、访问结构S=(M、ρ)、公开参数pk作为输入而输出密文ctn S的概率算法。
(RKG)
RKG算法是将解密密钥skΓ、访问结构S’:=(M’、ρ’)、公开参数pk、表示对要进行重加密的密文ctn S进行重加密的次数的值n作为输入而输出重加密密钥rkn Γ.S’的概率算法。
(REnc)
REnc算法是将密文ctn S、重加密密钥rkn Γ.S’、公开参数pk作为输入而输出重密文ctn+1 S’的概率算法。
(Dec1)
Dec1算法是将重密文ctn S’、解密密钥skΓ’、公开参数pk作为输入而输出消息m或识别信息⊥的算法。
(Dec2)
Dec2算法是将密文ctn S(ct0 S)、解密密钥skΓ、公开参数pk作为输入而输出消息m或识别信息⊥的算法。
<第4-2.加密系统10>
对执行CP-FPRE方式的算法的加密系统10进行说明。
图5是执行CP-FPRE方式的加密系统10的结构图。
加密系统10具有密钥生成装置100、加密装置200、解密装置300(重加密密钥生成装置)、重加密装置400、重密文解密装置500(重加密密钥生成装置)。
密钥生成装置100将安全参数λ、属性的格式n:=(d;n1、...、nd;u1、...、ud;z1、...、zd)、值Q作为输入来执行Setup算法,生成公开参数pk和主密钥sk。
然后,密钥生成装置100对公开参数pk进行公开。并且,密钥生成装置100将属性集合Γ作为输入来执行KG算法,生成解密密钥skΓ,秘密地向解密装置300发送。并且,密钥生成装置100将属性集合Γ’作为输入来执行KG算法,生成解密密钥skΓ’,秘密地向重密文解密装置500发送。
加密装置200将消息m、访问结构S、公开参数pk作为输入来执行Enc算法,生成密文ctn S。加密装置200向重加密装置400发送密文ctn S
解密装置300将公开参数pk、解密密钥skΓ、访问结构S’、值n作为输入来执行RKG算法,生成重加密密钥rkn Γ.S’。解密装置300秘密地向重加密装置发送重加密密钥rkn Γ.S’
并且,解密装置300将公开参数pk、解密密钥skΓ、密文ctn S(ct0 S)作为输入来执行Dec2算法,输出消息m或识别信息⊥。
重加密装置400将公开参数pk、重加密密钥rkn Γ.S’、密文ctn S作为输入来执行REnc算法,生成重密文ctn+1 S’。重加密装置400向重密文解密装置500发送重密文ctn+1 S’
重密文解密装置500将公开参数pk、解密密钥skΓ’、重密文ctn+1 S’作为输入来执行Dec1算法,输出消息m或识别信息⊥。
<第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的功能和动作进行说明。
如图6所示,密钥生成装置100具有主密钥生成部110、主密钥存储部120、信息输入部130、解密密钥生成部140、密钥发送部150(密钥输出部)。并且,解密密钥生成部140具有随机数生成部141、解密密钥k*生成部142。
首先,根据图11对Setup算法的处理进行说明。
(S101:初始设定步骤)
主密钥生成部110执行初始设定。
具体而言,主密钥生成部110执行以下的(1)~(3)的处理。
(1)主密钥生成部110通过输入装置输入安全参数λ(1λ)、属性的格式n:=(d;n1、...、nd;w1、...、wd;z1、...、zd)。这里,d是1以上的整数,关于t=1、...、d的各整数t,nt是1以上的整数,wt、zt是0以上的整数。
(2)主密钥生成部110通过处理装置将(1)中输入的安全参数λ作为输入来执行算法Gbpg,生成双线性配对组的参数paramG:=(q、G、GT、g、e)的值。
(3)主密钥生成部110在N0中设定5,关于t=1、...、d的各整数t,在Nt中设定nt+wt+zt+1。
(S102:重加密次数输入步骤)
主密钥生成部110通过输入装置输入表示重加密次数的上限的值Q。值Q是1以上的整数。
主密钥生成部110反复执行j=0、...、Q次以下的S103~S105的处理。
(S103:标准正交基生成步骤)
主密钥生成部110通过处理装置,针对t=0、...、d的各整数t计算数式122,生成参数paramn→、基B0.j和基B* 0.j、基Bt.j和基B* t.j
【数式122】
(1)
关于t=0、...、d的各整数t,执行(2)~(4)的处理
(2)
(3)
(4)
(5)
b t . j , i * : = &Sigma; j = 1 N t &nu; t , i , j a t , j , B t , j * : = ( b t . j , 1 * , ... , b t . j , N t * )
(6)
即,主密钥生成部110执行以下的处理。
(1)主密钥生成部110生成随机数ψj。并且,主密钥生成部110在gT.j中设定e(G、G)ψj
关于t=0、...、d的各整数t,执行(2)~(5)的处理。
(2)主密钥生成部110将安全参数λ、Nt、paramG:=(q、G、GT、g、e)的值作为输入来执行算法Gdpvs,生成对偶配对矢量空间的参数paramVt:=(q、Vt、GT、At、e)的值。
(3)主密钥生成部110将Nt、Fq作为输入,随机生成线性变换Xt:=(χt、i、j’)i、j’。另外,GL是General Linear的缩写。即,GL是一般线性组,是矩阵式不为0的正方矩阵的集合,是与乘法有关的组。并且,(χt、i、j’)i、j’意味着与矩阵χt、i、j’的小标i、j’有关的矩阵。这里,在(χt、i、j’)i、j’中,i、j’=1、...、Nt
(4)主密钥生成部110根据随机数ψ和线性变换Xt生成(νt、i、j’)i、j’:=ψ·(Xt T)-1。另外,(νt、i、j’)i、j’也与(χt、i、j’)i、j’同样,意味着与矩阵νt、i、j’的小标i、j’有关的矩阵。这里,在(νt、i、j’)i、j’中,i、j’=1、...、Nt
(5)主密钥生成部110根据(3)中生成的线性变换Xt,根据(2)中生成的标准基At生成基Bt.j。主密钥生成部110根据(4)中生成的(νt、i、j’)i、j’,根据(2)中生成的标准基At生成基B* t.j
(6)主密钥生成部110在paramn→.j中设定(1)中生成的gT.j和(2)中生成的{paramVt}t=0、...、d
(S104:公开参数生成步骤)
主密钥生成部110通过处理装置,如数式123所示生成基B0.j的部分基B^0.j、基Bt.j的部分基B^t.j、基B* 0.j的部分基B^* 0.j、基B* t.j的部分基B^* t.j
【数式123】
B ^ 0. j * : = ( b 0. j , 2 * , b 0. j , 4 * ) ,
B ^ t , j * : = ( b t . j , 1 * , ... , b t . j , n t * , b t . j , n t + w t + 1 * , ... , b t . j , n t + w t + z t * ) f o r t = 1 , ... , d ,
主密钥生成部110将安全参数λ、paramn→.j、部分基B^0.j、B^t.j、B^* 0.j、B^* t.j作为公开参数pk。
(S105:主密钥生成步骤)
主密钥生成部110将基矢量b* 0.j.1作为主密钥sk。
(S106:主密钥存储步骤)
主密钥存储部120将(S104)中生成的公开参数pk存储在存储装置中。并且,主密钥存储部120将(S105)中生成的主密钥sk存储在存储装置中。
即,在(S101)~(S105)中,密钥生成装置100执行数式124所示的Setup算法,生成公开参数pk和主密钥sk。然后,在(S106)中,密钥生成装置100将生成的公开参数pk和主密钥sk存储在存储装置中。
另外,公开参数例如经由网络公开,成为加密装置200、解密装置300、重加密装置400、重密文解密装置500能够取得的状态。
【数式124】
S e t u p ( 1 &lambda; , n &RightArrow; = ( d ; n 1 , ... , n d ; w 1 , ... , w d ; z 1 , ... , z d ) ) :
param G : = ( q , G , G T , g , e ) &LeftArrow; R G b p g ( 1 &lambda; ) ,
N0:=5,Nt:=nt+wt+zt+1for t=1,...,d,
for j=0,...,Q,
&psi; j &LeftArrow; U F q &times; , g T . j : = e ( g , g ) &psi; j ,
for t=0,...,d
X t = &chi; ~ t , 1 . . . &chi; ~ t , N t : = ( &chi; t , i , j &prime; ) i , j &prime; &LeftArrow; U G L ( N t , F q ) ,
&nu; &RightArrow; t , 1 . . . &nu; &RightArrow; t , N t : = ( &nu; t , i , j &prime; ) i , j &prime; : = &psi; &CenterDot; ( X t T ) - 1 ,
b t . j , i : = &Sigma; j = 1 N t &chi; t , i , j &prime; a t , j &prime; , B t . j : = ( b t . j , 1 , ... , b t . j , N t ) , ,
b t . j , i * : = &Sigma; j = 1 N t &nu; t , i , j &prime; a t , j &prime; , B t , j * : = ( b t . j , 1 * , ... , b t . j , N t * ) ,
B ^ 0. j * : = ( b 0. j , 2 * , b 0. j , 4 * ) ,
B ^ t . j * : = ( b t . j , 1 * , ... , b t . j , n t * , b t . j , n t + w t + 1 * , ... , b t . j , n t + w t + z t * ) f o r t = 1 , ... , d ,
s k = ( { b 0. j , 1 * } j = 0 , ... , Q ) .
接着,根据图12对KG算法的处理进行说明。
(S201:信息输入步骤)
信息输入部130通过输入装置输入属性集合 另外,t也可以不是1以上d以下的全部整数而是1以上d以下的至少一部分整数。并且,属性集合Γ例如设定解密密钥skΓ的使用者的属性信息。
(S202:随机数生成步骤)
随机数生成部141通过处理装置,如数式125所示生成随机数。
【数式125】
(S203:解密密钥k*生成步骤)
解密密钥k*生成部142通过处理装置,关于j=0、...、Q的各整数j,如数式126所示生成解密密钥k* 0、j
【数式126】
另外,相对于数式110所示的基B和基B*,是数式111。因此,数式126意味着设定1作为基B* 0的基矢量b* 0.j.1的系数,设定δj作为基矢量b* 0.j.2的系数,设定0作为基矢量b* 0.j.3的系数,设定作为基矢量b* 0.j.4的系数,设定0作为基矢量b* 0.j.5的系数。
并且,解密密钥k*生成部142通过处理装置,关于属性集合Γ中包含的各整数t和j=0、...、Q的各整数j,如数式127所示生成解密密钥k* t.j
【数式127】
另外,数式127意味着设定δjxt.1、...、δjxt.nt作为基B* t的基矢量b* t.j.1、...、b* t.j.nt的系数,设定0作为基矢量b* t.j.nt+1、...、b* t.j.nt+wt的系数,设定作为基矢量b* t.j.nt+wt+1、...、b* t.j.nt+wt+zt的系数,设定0作为基矢量b* t.j.nt+wt+zt+1的系数。
(S204:密钥发送步骤)
密钥发送部150例如通过通信装置,经由网络秘密地向解密装置300发送将属性集合Γ、解密密钥k* 0.j、k* t.j作为要素的解密密钥skΓ。当然,也可以通过其它方法向解密装置300发送解密密钥skΓ
即,在(S201)~(S203)中,密钥生成装置100执行数式128所示的KG算法,生成解密密钥skΓ。然后,在(S204)中,密钥生成装置100向解密装置300发送解密密钥skΓ
【数式128】
K G = ( p k , s k , &Gamma; = ( { t , x &RightArrow; t ) | x &RightArrow; t &Element; F q n t \ { 0 &RightArrow; } , 1 &le; t &le; d } ) :
for j=0,...,Q
r e t u r n sk &Gamma; : = ( &Gamma; , { k 0. j * , { k t . j * } ( t , x &RightArrow; t ) &Element; &Gamma; } j = 0 , ... , Q ) .
另外,密钥生成装置100在(S201)中输入设定了解密密钥skΓ’的使用者的属性信息的属性集合Γ’:={(t、x’ t:=(x’t、1、...、x’t、nt∈Fq nt\{0}))|1≦t≦d},执行KG算法,生成解密密钥skΓ’。然后,密钥生成装置100向重密文解密装置500发送解密密钥skΓ’:=(Γ’、{k’* 0.j、{k’* t.j}(t、x→t)∈Γ’}j=0、...、Q)。
对加密装置200的功能和动作进行说明。
如图7所示,加密装置200具有公开参数接收部210、信息输入部220、加密部230、密文发送部240(密文输出部)。并且,加密部230具有f矢量生成部231、s矢量生成部232、随机数生成部233、密文c生成部234。
根据图13对Enc算法的处理进行说明。
(S301:公开参数接收步骤)
公开参数接收部210例如通过通信装置,经由网络接收密钥生成装置100生成的公开参数pk。
(S302:信息输入步骤)
信息输入部220通过输入装置输入访问结构S:=(M、ρ)。另外,访问结构S是根据希望实现的系统的条件进行设定的。并且,访问结构S的ρ例如设定有能够对密文ct0 S进行解密的用户的属性信息。这里,ρ(i)=(t、v i:=(vi、1、...、vi、nt)∈Fq nt\{0})(vi、nt≠0)。另外,M是L行r列的矩阵。
并且,信息输入部220通过输入装置输入向解密装置300发送的消息m。
并且,信息输入部220通过输入装置输入重加密次数n。这里输入的重加密次数n通常为0,在后述RKG算法中调出Enc算法的情况下,成为由RKG算法指定的值。
(S303:f矢量生成步骤)
f矢量生成部231通过处理装置,如数式129所示生成矢量f
【数式129】
(S304:s矢量生成步骤)
s矢量生成部232通过处理装置,如数式130所示生成矢量s→T
【数式130】
s &RightArrow; T : = ( s 1 , ... , s L ) T : = M &CenterDot; f &RightArrow; T
并且,s矢量生成部232通过处理装置,如数式131所示生成值s0
【数式131】
s 0 : = 1 &RightArrow; &CenterDot; f &RightArrow; T
(S305:随机数生成步骤)
随机数生成部233通过处理装置,如数式132所示生成随机数。
【数式132】
&eta; 0. n , &zeta; &LeftArrow; U F q ,
&theta; i . n , &eta; i . n &LeftArrow; U F q f o r i = 1 , ... , L
(S306:密文c生成步骤)
密文c生成部234通过处理装置,如数式133所示生成密文c0.n
【数式133】
c0.n:=(ζ,-s0,0,0,η0.n)B0.n
并且,密文c生成部234通过处理装置,关于i=1、...、L的各整数i,如数式134所示生成密文ci.n
【数式134】
for i=1,...,L,
i f &rho; ( i ) = ( t , v &RightArrow; i ) ,
并且,密文c生成部234通过处理装置,如数式135所示生成密文cT.n
【数式135】
c T . n : = m &CenterDot; g T . n &zeta;
(S307:密文发送步骤)
密文发送部240例如通过通信装置,经由网络向解密装置300发送将访问结构S、密文c0.n、c1.n、...、cL.n、cT.n、重加密次数n作为要素的密文ctn S。当然,也可以通过其它方法向解密装置300发送密文ctn S
即,在(S301)~(S306)中,加密装置200执行数式136所示的Enc算法,生成密文ctn S。然后,在(S307)中,加密装置200向解密装置300发送已生成的密文ctn S
【数式136】
Enc=(pk,m,S=(M,ρ),n):
s &RightArrow; T : = ( s 1 , ... , s L ) T : = M &CenterDot; f &RightArrow; T , s 0 : = 1 &RightArrow; &CenterDot; f &RightArrow; T ,
&eta; 0. n , &zeta; &LeftArrow; U F q ,
c 0. n : = ( &zeta; , - s 0 , 0 , 0 , &eta; 0. n ) B 0. n , c T . n : = m &CenterDot; g T . n &zeta; ,
for i=1,...,L,
i f &rho; ( i ) = ( t , v &RightArrow; i ) , &theta; i . n , &eta; i . n &LeftArrow; U F q ,
r e t u r n ct S n : = ( S , { c i . n } i = 0 , ... , L , c T . n , n ) .
对解密装置300的功能和动作进行说明。
如图8所示,解密装置300具有解密密钥接收部310(解密密钥取得部)、信息输入部320、重加密密钥生成部330、重加密密钥发送部340(重加密密钥输出部)、密文接收部350、张成方案计算部360、补充系数计算部370、配对运算部380、消息计算部390。并且,重加密密钥生成部330具有随机数生成部331、加密部332、解密密钥k*rk生成部333。
这里,根据图14对RKG算法的处理进行说明。在后面叙述Dec2算法。
(S401:解密密钥接收步骤)
解密密钥接收部310例如通过通信装置,经由网络接收从密钥生成装置100发送的解密密钥skΓ。并且,解密密钥接收部310接收密钥生成装置100生成的公开参数pk。
(S402:信息输入步骤)
信息输入部320通过输入装置输入访问结构S’:=(M’、ρ’)。另外,访问结构S’是根据希望实现的系统的条件进行设定的。并且,访问结构S’的ρ’例如设定有能够对重密文ctn+1 S’进行解密的用户的属性信息。这里,ρ’(i)=(t、v→’ i:=(v’i、1、...、v’i、nt)∈Fq nt\{0})(v’i、nt≠0)。
并且,信息输入部320通过输入装置输入重加密次数n。这里输入的重加密次数n表示生成用于对几次重加密后的密文进行重加密的重加密密钥。即,在生成用于对一次也没重加密的密文ct0 S进行重加密的重加密密钥的情况下,输入0作为重加密次数n。并且,在生成用于对一次重加密后的密文ct1 S进行重加密的重加密密钥的情况下,输入1作为重加密次数n。
(S403:随机数生成步骤)
随机数生成部331通过处理装置,如数式137所示生成随机数。
【数式137】
(S404:随机数加密步骤)
加密部332通过处理装置,如数式138所示对随机数rn+1(转换信息)进行加密,生成密文ct’n+1 S’。这里,函数En+1是从Fq到GT.n+1的编码函数。
【数式138】
ct S &prime; &prime; n + 1 : = ( S &prime; , { c i . n + 1 } i = 0 , ... , L , c T . n + 1 )
&LeftArrow; R E n c ( p k , E n + 1 ( r n + 1 ) , S &prime; = ( M &prime; , &rho; &prime; ) )
(S405:解密密钥k*rk生成步骤)
解密密钥k*rk生成部333通过处理装置,如数式139所示生成解密密钥k*rk 0.n
【数式139】
并且,解密密钥k*rk生成部333通过处理装置,关于属性集合Γ中包含的各整数t,如数式140所示生成解密密钥k*rk t.n
【数式140】
(S406:密钥发送步骤)
重加密密钥发送部340例如通过通信装置,经由网络秘密地向重加密装置400发送将属性集合Γ、访问结构S’、解密密钥k*rk 0.n、k*rk t.n、密文ct’n+1 S’、重加密次数n(这里是(S402)中输入的值)作为要素的重加密密钥rkn Γ、S’。当然,也可以通过其它方法向重加密装置400发送重加密密钥rkn Γ、S’
即,在(S401)~(S405)中,解密装置300执行数式141所示的RKG算法,生成重加密密钥rkn Γ、S’。然后,在(S406)中,解密装置300向重加密装置400发送已生成的重加密密钥rkn Γ、S’
【数式141】
RKG=(pk,skΓ,n,S′):
ct S &prime; &prime; n + 1 : = ( S &prime; , { c i . n + 1 } i = 0 , ... , L , c T . n + 1 )
&LeftArrow; R E n c ( p k , E n + 1 ( r n + 1 ) , S &prime; = ( M &prime; , &rho; &prime; ) ) ,
r e t u r n rk &Gamma; , S &prime; n : = ( &Gamma; , S &prime; , k 0. n * r k , { k t . n * r k } ( t , x &RightArrow; t ) &Element; &Gamma; , ct S &prime; &prime; n + 1 , n ) .
对重加密装置400的功能和动作进行说明。
如图9所示,重加密装置400具有公开参数接收部410、密文接收部420(密文取得部)、重加密密钥接收部430(重加密密钥取得部)、张成方案计算部440、补充系数计算部450、配对运算部460、重密文发送部470(重密文输出部)。
根据图15对REnc算法的处理进行说明。
(S501:公开参数接收步骤)
公开参数接收部410例如通过通信装置,经由网络接收密钥生成装置100生成的公开参数pk。
(S502:密文接收步骤)
密文接收部420例如通过通信装置,经由网络接收加密装置200发送的密文ctn S
(S503:重加密密钥接收步骤)
重加密密钥接收部430例如通过通信装置,经由网络接收从解密装置300发送的重加密密钥rkn Γ、S’
(S504:张成方案计算步骤)
张成方案计算部440通过处理装置判定密文ctn S中包含的访问结构S是否受理重加密密钥rkn Γ、S’中包含的Γ。访问结构S是否受理Γ的判定方法如实施方式1中的“第3.用于实现FPRE的概念”中说明的那样。
张成方案计算部440在访问结构S受理Γ的情况下(S504:受理),使处理进入(S505)。另一方面,在访问结构S拒绝Γ的情况下(S504:拒绝),结束处理。
(S505:补充系数计算步骤)
补充系数计算部450通过处理装置计算成为数式142的I和常数(补充系数){αi}i∈I
【数式142】
1 &RightArrow; = &Sigma; i &Element; I &alpha; i M i
where Mi is the i-th row of M,
(S506:配对运算步骤)
配对运算部460通过处理装置计算数式143,生成会话密钥K’n
【数式143】
(S507:重密文发送步骤)
重密文发送部470例如通过通信装置,经由网络秘密地向重密文解密装置500发送将会话密钥K’n、密文cT.n、访问结构S’、密文ct’n+1 S’、重加密次数n+1(这里是(S502)中接收到的密文ctn S中包含的重加密次数n或(S503)中接收到的重加密密钥rkn Γ、S’中包含的重加密次数n加1而得到的值)作为要素的重密文ctn+1 S’。当然,也可以通过其它方法向重密文解密装置500发送重密文ctn+1 S’
另外,这里,假设对加密装置200输出的密文ctn S(ct0 S)进行重加密的情况进行了说明。但是,也可以进一步对重加密装置400输出的重密文ctn+1 S’进行重加密。
该情况下,在(S502)中,密文接收部420代替加密装置200输出的密文ctn S而取得重加密装置400输出的重密文ctn+1 S’作为密文ctn S。另外,在密文ctn+1 S’中作为要素包含访问结构S’,但是,为了简便而将该访问结构S’改写成访问结构S。并且,在密文ctn+1 S’中,重加密次数成为n+1,但是,为了简便而将该重加密次数改写成n。
然后,在(S507)中,重密文发送部470向重密文解密装置500发送除了上述要素以外还将(S502)中取得的密文ctn S中包含的要素(会话密钥{K’j}j=1、...、n和密文{cT.j}j=0、...、n-1)作为要素的重密文ctn+1 S’
其它处理如上所述。
即,在(S501)~(S506)中,重加密装置400执行数式144所示的REnc算法,生成重密文ctn+1 S’。然后,在(S507)中,重加密装置400向重密文解密装置500发送已生成的重密文ctn+1 S’
【数式144】
R E n c = ( p k , rk &Gamma; , S &prime; n , ct S n )
If S acceptsΓ,then com pute I and{αi}i∈I such that
1 &RightArrow; = &Sigma; i &Element; I &alpha; i M i
where Mi is the i-th row of M,
r e t u r n ct S &prime; n + 1 : = ( S &prime; , { c T . j , K j &prime; } j = 0 , ... , n , ct S &prime; &prime; n + 1 , n + 1 ) .
另外,在(S502)中接收到的密文ctn S中包含的重加密次数n和(S503)中接收到的重加密密钥rkn Γ、S’中包含的重加密次数n不一致的情况下,无法进行重加密。
对重密文解密装置500的功能和动作进行说明。
如图10所示,重密文解密装置500具有解密密钥接收部510、密文接收部520、张成方案计算部530、补充系数计算部540、配对运算部550、随机数计算部560、消息计算部570。
根据图16对Dec1算法的处理进行说明。
(S601:解密密钥接收步骤)
解密密钥接收部510例如通过通信装置,经由网络接收从密钥生成装置100发送的解密密钥skΓ’。并且,解密密钥接收部310接收密钥生成装置100生成的公开参数pk。
(S602:密文接收步骤)
密文接收部520例如通过通信装置,经由网络接收重加密装置400发送的重密文ctn S’
另外,在REnc算法中是输出重密文ctn+1 S’,但是,这里,将表记变更成重密文ctn S’。即,在利用重加密密钥rkn Γ、S’(rk0 Γ、S’)对重加密次数0(n=0)的密文ctn S(ct0 S)进行重加密而生成重密文ctn+1 S(ct0+1 S)的情况下,这里,将该重密文ctn+1 S(ct0+1 S)表记成重密文ctn S(ct1 S)。
(S603:张成方案计算步骤)
张成方案计算部530通过处理装置判定重密文ctn S’中包含的访问结构S’是否受理解密密钥skΓ’中包含的Γ’。访问结构S’是否受理Γ’的判定方法如实施方式1中的“第3.用于实现FPRE的概念”中说明的那样。
张成方案计算部530在访问结构S’受理Γ’的情况下(S603:受理),使处理进入(S604)。另一方面,在访问结构S’拒绝Γ’的情况下(S603:拒绝),结束处理。
(S604:补充系数计算步骤)
补充系数计算部540通过处理装置计算成为数式145的I和常数(补充系数){αi}i∈I
【数式145】
1 &RightArrow; = &Sigma; i &Element; I &alpha; i M i &prime;
where Mi' is the i-th row of M',
(S605:配对运算步骤)
配对运算部550通过处理装置计算数式146,生成会话密钥K’n
【数式146】
(S606:随机数计算步骤)
随机数计算部560通过处理装置计算数式147,生成随机数rn
【数式147】
En(rn):=cT.n/K'n,
rn:=decode(En(rn))
进而,在n为2以上的情况下,随机数计算部560通过处理装置,关于j=n-1、...、1的各整数j,依次计算数式148,生成随机数r1
【数式148】
E j ( r j ) : = c T . j / ( K j &prime; ) r j + 1 ,
rj:=decode(Ej(rj))
(S607:消息计算步骤)
消息计算部570通过处理装置计算m=cT.0/(K’0)r1,生成消息m。这里,r1意味着随机数r1
即,在(S601)~(S607)中,重密文解密装置500执行数式149所示的Dec1算法,生成消息m。
【数式149】
D e c 1 = ( p k , sk &Gamma; &prime; , ct S &prime; n )
If S′acceptsΓ′,then com pute I and{αi}i∈I such that
1 &RightArrow; = &Sigma; i &Element; I &alpha; i M i &prime;
where Mi'is the i-th row of M',
En(rn):=cT.n/K'n,rn:=decode(En(rn)),
for j=n-1,...,1,
E j ( r j ) : = c T . j / ( K j &prime; ) r j + 1 , r j : = d e c o d e ( E j ( r j ) ) ,
m:=cT.0/(K'0)r1,
return m.
根据图17对Dec2算法的处理进行说明。
(S701:解密密钥接收步骤)
解密密钥接收部310例如通过通信装置,经由网络接收从密钥生成装置100发送的解密密钥skΓ。并且,解密密钥接收部310接收密钥生成装置100生成的公开参数pk。
(S702:密文接收步骤)
密文接收部350例如通过通信装置,经由网络接收加密装置200发送的密文ctn S(ct0 S)。
(S703:张成方案计算步骤)
张成方案计算部360通过处理装置判定密文ctS中包含的访问结构S是否受理解密密钥skΓ中包含的Γ。访问结构S是否受理Γ的判定方法如实施方式1中的“第3.用于实现FPRE的概念”中说明的那样。
张成方案计算部360在访问结构S受理Γ的情况下(S703:受理),使处理进入(S704)。另一方面,在访问结构S拒绝Γ的情况下(S703:拒绝),结束处理。
(S704:补充系数计算步骤)
补充系数计算部370通过处理装置计算成为数式150的I和常数(补充系数){αi}i∈I
【数式150】
1 &RightArrow; = &Sigma; i &Element; I &alpha; i M i
where Mi is the i-th row of M,
(S705:配对运算步骤)
配对运算部380通过处理装置计算数式151,生成会话密钥K0
【数式151】
(S706:消息计算步骤)
消息计算部390通过处理装置计算m=cT.0/K0,生成消息m。
即,在(S701)~(S706)中,解密装置300执行数式152所示的Dec2算法,生成消息m。
【数式152】
D e c 2 = ( p k , sk &Gamma; , ct S 0 )
If S acceptsΓ,then com pute I and{αi}i∈I such that
1 &RightArrow; = &Sigma; i &Element; I &alpha; i M i
where Mi is the i-th row of M,
m:=cT.0/K0,
return m.
如上所述,实施方式1的加密系统10实现CP-FPRE方式。因此,能够利用1个重加密密钥向多种用户的集合传送密文。
特别地,在实施方式1的加密系统10中,通过一次重加密,密文尺寸增加常数尺寸的要素量。因此,即使执行n次重加密,关于密文尺寸,相对于重加密的执行次数n,仅仅是多项式倍的要素增加。与现有FPRE方式相比,这是非常高效的,能够更加广泛地使用FPRE方式。
另外,在上述说明中,解密装置300兼作重加密密钥生成装置,解密装置300不仅执行Dec2算法,还执行RKG算法。但是,重密文解密装置500作为重加密密钥生成装置,执行RKG算法,生成进一步对重密文ctn S’进行重加密的情况下的重加密密钥。因此,该情况下,重密文解密装置500还具有解密装置300具有的功能结构中的执行RKG算法所需要的功能结构。
并且,解密装置300(或重密文解密装置500)和重加密密钥生成装置也可以是不同的装置。该情况下,解密装置300执行Dec2算法,重加密密钥生成装置执行RKG算法。因此,该情况下,解密装置300具有执行Dec2算法所需要的功能结构,重加密密钥生成装置具有执行RKG算法所需要的功能结构。
并且,在上述说明中是在Nt中设定nt+wt+zt+1。但是,也可以在Nt中设定nt+wt+ztt。这里,βt是0以上的整数。
并且,在上述说明中是在N0中设定5。但是,也可以在N0中设定1+1+w0+z00。这里,w0、z0、β0是0以上的整数。
实施方式2
在实施方式1中说明的FPRE方式中,在Setup算法中,输入表示重加密次数的上限值的值Q,关于j=1、...、Q的各整数j,分别生成不同的基Bt.j和基B* t.j。因此,重加密次数的上限值越大,则公开参数的尺寸越大,加密处理的效率越差。
在实施方式2中,对如下的FPRE方式进行说明:通过使用带索引的方法,消除重加密次数的上限值,并且,与重加密次数的上限值无关地使公开参数的尺寸固定。
在实施方式2中,省略与实施方式1相同的部分的说明,对与实施方式1不同的部分进行说明。
加密系统10的结构与图5所示的实施方式1的加密系统10的结构相同。但是,在Setup算法中不需要输入值Q。并且,构成加密系统10的各装置的结构与图6~图10所示的实施方式1的各装置的结构相同。
图18是示出Setup算法的处理的流程图。其它算法的处理流程与图12~图17所示的各算法的处理流程相同。REnc算法和Dec2算法的处理内容也与实施方式1相同。
根据图18对Setup算法的处理进行说明。
(S801:标准正交基生成步骤)
主密钥生成部110通过处理装置计算数式153,生成参数paramn→、基B0和基B* 0、基Bt和基B* t
【数式153】
param G : = ( q , G , G T , g , e ) &LeftArrow; R G b p g ( 1 &lambda; ) ,
N0:=5,Nt:=2+nt+wt+zt+1for t=1,...,d,
&psi; &LeftArrow; U F q &times; , g T : = e ( g , g ) &psi; ,
for t=0,...,d,
X t = &chi; ~ t , 1 . . . &chi; ~ t , N t : = ( &chi; t , i , j ) i , j &LeftArrow; U G L ( N t , F q ) ,
&nu; &RightArrow; t , 1 . . . &nu; &RightArrow; t , N t : = ( &nu; t , i , j ) i , j : = &psi; &CenterDot; ( X t T ) - 1 ,
b t , i : = &Sigma; j = 1 N t &chi; t , i , j a t , j , B t : = ( b t , 1 , ... , b t , N t ) , ,
b t , i * : = &Sigma; j = 1 N t &nu; t , i , j a t , j , B t * : = ( b t , 1 * , ... , b t , N t * ) ,
param n &RightArrow; : = ( g T , { param t } t = 0 , ... , d )
(S802:公开参数生成步骤)
主密钥生成部110通过处理装置,如数式154所示生成基B0的部分基B^0、基Bt的部分基B^t、基B* 0的部分基B^* 0、基B* t的部分基B^* t
【数式154】
B ^ 0 * : = ( b 0 , 2 * , b 0 , 4 * ) ,
B ^ t * : = ( b t , 1 * , ... , b t , 2 + n t * , b t , 2 + n t + w t + 1 * , ... , b t , 2 + n t + w t + z t * ) f o r t = 1 , ... , d ,
主密钥生成部110对安全参数λ、paramn→、部分基B^0、B^t、B^* 0、B^* t进行合并,设为公开参数pk。
(S803:主密钥生成步骤)
主密钥生成部110将基矢量b* 0.1作为主密钥sk。
(S804:主密钥存储步骤)
主密钥存储部120将(S802)中生成的公开参数pk存储在存储装置中。并且,主密钥存储部120将(S803)中生成的主密钥sk存储在存储装置中。
即,在(S801)~(S803)中,密钥生成装置100执行数式155所示的Setup算法,生成公开参数pk和主密钥sk。然后,在(S804)中,密钥生成装置100将生成的公开参数pk和主密钥sk存储在存储装置中。
【数式155】
S e t u p ( 1 &lambda; , n &RightArrow; = ( d ; n 1 , ... , n d ; w 1 , ... , w d ; z 1 , ... , z d ) ) :
param G : = ( q , G , G T , g , e ) &LeftArrow; R G b p g ( 1 &lambda; ) ,
N0:=5,Nt:=2+nt+wt+zt+1for t=1,...,d,
&psi; &LeftArrow; U F q &times; , g T : = e ( g , g ) &psi; ,
for t=0,...,d,
X t = &chi; ~ t , 1 . . . &chi; ~ t , N t : = ( &chi; t , i , j ) i , j &LeftArrow; U G L ( N t , F q ) ,
&nu; &RightArrow; t , 1 . . . &nu; &RightArrow; t , N t : = ( &nu; t , i , j ) i , j : = &psi; &CenterDot; ( X t T ) - 1 ,
b t , i : = &Sigma; j = 1 N t &chi; t , i , j a t , j , B t : = ( b t , 1 , ... , b t , N t ) , ,
b t , i * : = &Sigma; j = 1 N t &nu; t , i , j a t , j , B t * : = ( b t , 1 * , ... , b t , N t * ) ,
param n &RightArrow; : = ( g T , { param t } t = 0 , ... , d )
B ^ 0 * : = ( b 0 , 2 * , b 0 , 4 * ) ,
B ^ t * : = ( b t , 1 * , ... , b t , 2 + n t * , b t , 2 + n t + w t + 1 * , ... , b t , 2 + n t + w t + z t * ) f o r t = 1 , ... , d , ,
sk = ( b 0,1 * ) .
根据图12对KG算法的处理进行说明。
(S201)的处理与实施方式1相同。
(S202:随机数生成步骤)
随机数生成部141通过处理装置,如数式156所示生成随机数。
【数式156】
(S203:解密密钥k*生成步骤)
解密密钥k*生成部142通过处理装置,如数式157所示生成解密密钥k* 0
【数式157】
并且,解密密钥k*生成部142通过处理装置,关于属性集合Γ中包含的各整数t,如数式158所示生成解密密钥k* t
【数式158】
(S204:密钥发送步骤)
密钥发送部150例如通过通信装置,经由网络秘密地向解密装置300发送将属性集合Γ、解密密钥k* 0、k* t作为要素的解密密钥skΓ
即,在(S201)~(S203)中,密钥生成装置100执行数式159所示的KG算法,生成解密密钥skΓ。然后,在(S204)中,密钥生成装置100向解密装置300发送解密密钥skΓ
【数式159】
K G = ( p k , s k , &Gamma; = ( { t , x &RightArrow; t ) | x &RightArrow; t &Element; F q n t \ { 0 &RightArrow; } , 1 &le; t &le; d } ) :
r e t u r n sk &Gamma; : = ( &Gamma; , k 0 * { k t * } ( t , x &RightArrow; t ) &Element; &Gamma; ) .
根据图13对Enc算法的处理进行说明。
(S301)~(S304)和(S307)的处理与实施方式1相同。
(S305:随机数生成步骤)
随机数生成部233通过处理装置,如数式160所示生成随机数。
【数式160】
&eta; 0. n , &zeta; , &mu; n &LeftArrow; U F q ,
&theta; i . n , &eta; i . n &LeftArrow; U F q f o r i = 1 , ... , L
(S306:密文c生成步骤)
密文c生成部234通过处理装置,如数式161所示生成密文c0.n
【数式161】
c0.n:=(ζ,-s0,0,0,η0.n)B0
并且,密文c生成部234关于i=1、...、L的各整数i,如数式162所示生成密文ci.n
【数式162】
for i=1,...,L,
i f &rho; ( i ) = ( t , v &RightArrow; i ) ,
并且,密文c生成部234通过处理装置,如数式163所示生成密文cT.n
【数式163】
c T . n : = m &CenterDot; g T &zeta;
即,在(S301)~(S306)中,加密装置200执行数式164所示的Enc算法,生成密文ctn S。然后,在(S307)中,加密装置200向解密装置300发送已生成的密文ctn S
【数式164】
Enc=(pk,m,S=(M,ρ),n):
s &RightArrow; T : = ( s 1 , ... , s L ) T : = M &CenterDot; f &RightArrow; T , s 0 : = 1 &RightArrow; &CenterDot; f &RightArrow; T ,
&eta; 0. n , &zeta; , &mu; n &LeftArrow; U F q ,
c 0. n : = ( &zeta; , - s 0 , 0 , 0 , &eta; 0. n ) B 0 , c T . n : = m &CenterDot; g T &zeta; ,
for i=1,...,L,
i f &rho; ( i ) = ( t , v &RightArrow; i ) , &theta; i . n , &eta; i . n &LeftArrow; U F q ,
r e t u r n ct S n : = ( S , { c i . n } i = 0 , ... , L , c T . n , n ) .
根据图14对RKG算法的处理进行说明。
(S401)~(S402)、(S404)、(S406)的处理与实施方式1相同。
(S403:随机数生成步骤)
随机数生成部331通过处理装置,如数式165所示生成随机数。
【数式165】
(S405:解密密钥k*rk生成步骤)
解密密钥k*rk生成部333通过处理装置,如数式166所示生成解密密钥k*rk 0.n
【数式166】
并且,解密密钥k*rk生成部333关于属性集合Γ中包含的各整数t,如数式167所示生成解密密钥k*rk t.n
【数式167】
f o r ( t , x &RightArrow; t ) &Element; &Gamma;
即,在(S401)~(S405)中,解密装置300执行数式168所示的RKG算法,生成重加密密钥rkn Γ、S’。然后,在(S406)中,解密装置300向重加密装置400发送已生成的重加密密钥rkn Γ、S’
【数式168】
RKG=(pk,skΓ,n,S′):
ct S &prime; &prime; n + 1 : = ( S &prime; , { c i . n + 1 } i = 0 , ... , L , c T . n + 1 )
&LeftArrow; R E n c ( p k , E n + 1 ( r n + 1 ) , S &prime; = ( M &prime; , &rho; &prime; ) ) ,
f o r ( t , x &RightArrow; t ) &Element; &Gamma; ,
r e t u r n rk &Gamma; , S &prime; n : = ( &Gamma; , S &prime; , k 0. n * r k , { k t . n * r k } ( t , x &RightArrow; t ) &Element; &Gamma; , ct S &prime; &prime; n + 1 , n ) .
根据图16对Dec1算法的处理进行说明。
(S601)~(S604)、(S606)~(S607)的处理与实施方式1相同。
(S605:配对运算步骤)
配对运算部550通过处理装置计算数式169,生成会话密钥Kn
【数式169】
即,在(S601)~(S607)中,重密文解密装置500执行数式170所示的Dec1算法,生成消息m。
【数式170】
D e c 1 = ( p k , sk &Gamma; &prime; , ct S &prime; n )
If S′acceptsΓ′,then com pute I and{αi}i∈I such that
1 &RightArrow; = &Sigma; i &Element; I &alpha; i M i &prime;
where Mi'is the i-th row of M',
En(rn):=cT.n/K'n,rn:=decode(En(rn)),
for j=n-1,...,1,
E j ( r j ) : = c T . j / ( K j &prime; ) r j + 1 , r j : = d e c o d e ( E j ( r j ) ) ,
m:=cT.0/(K'0)r1,
return m.
如上所述,实施方式2的加密系统10在密文ci.0的开头2个基矢量中设定索引μn(n、-1),在解密密钥k*rk t.n的开头2个基矢量中嵌入索引σn(1、n)。由此,每当进行重加密时,不用使用不同的基,能够使用相同的基进行重加密。
其结果是,不需要设定重加密次数的上限值。并且,能够与重加密次数的上限值无关地使公开参数的尺寸固定。
另外,关于设定了索引的部分,内积的结果为0即可。因此,在上述说明中,在开头2个基矢量的二维中设定了索引,但是不限于此,也可以在三维以上设定索引。并且,作为索引设定的值也不限于上述说明的值,也可以是其它值。
实施方式3
在实施方式1中,对CP-FPRE方式进行了说明。在实施方式3中,对密钥策略的FPRE方式(Key-Policy FPRE:KP-FPRE)方式进行说明。
在实施方式3中,省略与实施方式1相同的部分的说明,对与实施方式1不同的部分进行说明。
首先,对KP-FPRE方式的基本结构进行说明。接着,对实现该KP-FPRE方式的加密系统10的基本结构进行说明。然后,对该实施方式的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;n1、...、nd;w1、...、wd;z1、...、zd)、表示重加密次数的上限值的值Q作为输入而输出公开参数pk和主密钥sk的概率算法。
(KG)
KG算法是将访问结构S=(M、ρ)、公开参数pk、主密钥sk作为输入而输出解密密钥skS的概率算法。
(Enc)
Enc算法是将消息m、属性集合Γ:={(t、x t)|x t∈Fq nt、1≦t≦d}、公开参数pk作为输入而输出密文ctn Γ的概率算法。
(RKG)
RKG算法是将解密密钥skS、属性集合Γ’:={(t、x’ t)|x’ t∈Fq nt、1≦t≦d}、公开参数pk作为输入而输出重加密密钥rkn S、Γ’的概率算法。
(REnc)
REnc算法是将密文ctn Γ、重加密密钥rkn S.Γ’、公开参数pk作为输入而输出重密文ctn+1 Γ’的概率算法。
(Dec1)
Dec1算法是将重密文ctn Γ’、解密密钥skS’、公开参数pk作为输入而输出消息m或识别信息⊥的算法。
(Dec2)
Dec2算法是将密文ctn Γ(ct0 Γ)、解密密钥skS、公开参数pk作为输入而输出消息m或识别信息⊥的算法。
<第1-2.加密系统10>
对执行KP-FPRE方式的算法的加密系统10进行说明。
图19是执行KP-FPRE方式的加密系统10的结构图。
与图5所示的加密系统10同样,加密系统10具有密钥生成装置100、加密装置200、解密装置300(重加密密钥生成装置)、重加密装置400、重密文解密装置500(重加密密钥生成装置)。
密钥生成装置100将安全参数λ、属性的格式n:=(d;n1、...、nd;w1、...、wd;z1、...、zd)、值Q作为输入来执行Setup算法,生成公开参数pk和主密钥sk。
然后,密钥生成装置100对公开参数pk进行公开。并且,密钥生成装置100将访问结构S作为输入来执行KG算法,生成解密密钥skS,秘密地向解密装置300发送。并且,密钥生成装置100将访问结构S’作为输入来执行KG算法,生成解密密钥skS’,秘密地向重密文解密装置500发送。
加密装置200将消息m、属性集合Γ、公开参数pk作为输入来执行Enc算法,生成密文ctn Γ。加密装置200向重加密装置400发送密文ctn Γ
解密装置300将公开参数pk、解密密钥skS、属性集合Γ’、值n作为输入来执行RKG算法,生成重加密密钥rkn S、Γ’。解密装置300秘密地向重加密装置400发送重加密密钥rkn S、Γ’
并且,解密装置300将公开参数pk、解密密钥skS、密文ctn Γ(ct0 Γ)作为输入来执行Dec2算法,输出消息m或识别信息⊥。
重加密装置400将公开参数pk、重加密密钥rkn S、Γ’、密文ctn Γ作为输入来执行REnc算法,生成重密文ctn+1 Γ’。重加密装置400向重密文解密装置500发送重密文ctn+1 Γ’
重密文解密装置500将公开参数pk、解密密钥skS’、重密文rctn+1 Γ’作为输入来执行Dec1算法,输出消息m或识别信息⊥。
<第1-4.KP-FPRE方式和加密系统10的详细>
根据图20~图30对KP-FPRE方式和执行KP-FPRE方式的加密系统10的功能和动作进行说明。
图20是示出密钥生成装置100的功能的功能框图。图21是示出加密装置200的功能的功能框图。图22是示出解密装置300的功能的功能框图。图23是示出重加密装置400的功能的功能框图。图24是示出重密文解密装置500的功能的功能框图。
图25是示出密钥生成装置100的动作的流程图,是示出KG算法的处理的流程图。图26是示出加密装置200的动作的流程图,是示出Enc算法的处理的流程图。图27是示出解密装置300的动作的流程图,是示出RKG算法的处理的流程图。图28是示出重加密装置400的动作的流程图,是示出REnc算法的处理的流程图。图29是示出重密文解密装置500的动作的流程图,是示出Dec1算法的处理的流程图。图30是示出解密装置300的动作的流程图,是示出Dec2算法的处理的流程图。
对密钥生成装置100的功能和动作进行说明。
如图20所示,密钥生成装置100具有主密钥生成部110、主密钥存储部120、信息输入部130、解密密钥生成部140、密钥发送部150(密钥输出部)。并且,解密密钥生成部140具有随机数生成部141、解密密钥k*生成部142、f矢量生成部143、s矢量生成部144。
Setup算法的处理基本上与实施方式1中说明的Setup算法的处理相同,因此省略说明。但是,基B^0、基B^t、基B*^0、基B*^t中包含的基矢量与实施方式1不同。
密钥生成装置100执行数式171所示的Setup算法,生成公开参数pk和主密钥sk。
【数式171】
S e t u p ( 1 &lambda; , n &RightArrow; = ( d ; n 1 , ... , n d ; w 1 , ... , w d ; z 1 , ... , z d ) ) :
param G : = ( q , G , G T , g , e ) &LeftArrow; R G b p g ( 1 &lambda; ) ,
N0:=5,Nt:=nt+wt+zt+1for t=1,...,d,
for j=0,...,Q,
&psi; j &LeftArrow; U F q &times; , g T . j : = e ( g , g ) &psi; j ,
for t=0,...,d,
X t = &chi; ~ t , 1 . . . &chi; ~ t , N t : = ( &chi; t , i , j &prime; ) i , j &prime; &LeftArrow; U G L ( N t , F q ) ,
&nu; &RightArrow; t , 1 . . . &nu; &RightArrow; t , N t : = ( &nu; t , i , j &prime; ) i , j &prime; : = &psi; &CenterDot; ( X t T ) - 1 ,
b t . j , i : = &Sigma; j = 1 N t &chi; t , i , j &prime; a t , j &prime; , B t . j : = ( b t . j , 1 , ... , b t . j , N t ) , ,
b t . j , i * : = &Sigma; j = 1 N t &nu; t , i , j &prime; a t , j &prime; , B t , j * : = ( b t . j , 1 * , ... , b t . j , N t * ) ,
B ^ 0. j * : = ( b 0. j , 2 * , b 0. j , 5 * ) ,
B ^ t . j * : = ( b t . j , 1 * , ... , b t . j , n t * , b t . j , N t * ) f o r t = 1 , ... , d ,
s k = ( { b 0. j , 1 * } j = 0 , ... , Q ) .
根据图25对KG算法的处理进行说明。
(S901:信息输入步骤)
信息输入部130通过输入装置输入访问结构S:=(M、ρ)。另外,访问结构S的矩阵M是根据希望实现的系统的条件进行设定的。并且,访问结构S的ρ例如设定有解密密钥skS的使用者的属性信息。这里,ρ(i)=(t、v i:=(vi.1、...、vi.nt)∈Fq nt\{0})(vi、nt≠0)。
(S902:f矢量生成步骤)
f矢量生成部143通过处理装置,如数式172所示生成矢量f
【数式172】
(S903:s矢量生成步骤)
s矢量生成部144通过处理装置,如数式173所示生成矢量s→T:=(s1、...、sL)T。
【数式173】
s &RightArrow; T : = ( s 1 , ... , s L ) T : = M &CenterDot; f &RightArrow; T
并且,s矢量生成部144通过处理装置,如数式174所示生成值s0
【数式174】
s 0 : = 1 &RightArrow; &CenterDot; f &RightArrow; T
(S904:随机数生成步骤)
随机数生成部141通过处理装置,如数式175所示生成随机数。
【数式175】
&eta; 0. j &LeftArrow; U F q , j = 0 , ... , Q ,
&theta; i , &eta; i . j &LeftArrow; U F q f o r i = 1 , ... , L ; j = 1 , ... , Q
(S905:解密密钥k*生成步骤)
解密密钥k*生成部142通过处理装置,关于j=0、...、Q的各整数j,如数式176所示生成解密密钥k* 0.j
【数式176】
k 0. j * : = ( 1 , - s 0 , 0 , 0 , &eta; 0. j ) B 0. j * f o r j = 0 , ... , Q
并且,解密密钥k*生成部142通过处理装置,关于i=1、...、L的各整数i和j=0、...、Q的各整数j,如数式177所示生成解密密钥k* i.j
【数式177】
for i=1,...,L;j=0,...,Q,
i f &rho; ( i ) = ( t , v &RightArrow; i ) ,
(S906:密钥发送步骤)
密钥发送部150例如通过通信装置,经由网络秘密地向解密装置300发送将访问结构S、解密密钥k* 0.j、k* i.j作为要素的解密密钥skS。当然,也可以通过其它方法向解密装置300发送解密密钥skS
即,在(S901)~(S905)中,密钥生成装置100执行数式178所示的KG算法,生成解密密钥skS。然后,在(S906)中,密钥生成装置100向解密装置300发送已生成的解密密钥skS
【数式178】
KG=(pk,sk,S=(M,ρ)):
s &RightArrow; T : = ( s 1 , ... , s L ) T : = M &CenterDot; f &RightArrow; T , s 0 : = 1 &RightArrow; &CenterDot; f &RightArrow; T ,
for j=0,...,Q
&eta; 0. j &LeftArrow; U F q ,
k 0. j * : = ( 1 , - s 0 , 0 , 0 , &eta; 0. j ) B 0. j * ,
for i=1,...,L,
i f &rho; ( i ) = ( t , v &RightArrow; i ) , &theta; i , &eta; i . j &LeftArrow; U F q ,
r e t u r n sk &Gamma; : = ( S , { k i . j * } i = 0 , ... , L ; j = 0 , ... , Q ) .
另外,密钥生成装置100在(S901)中输入设定有解密密钥skS’的使用者的属性信息的访问结构S’:=(M’、ρ’),执行KG算法,生成解密密钥skS’。然后,向重密文解密装置500发送解密密钥skS’:=(S’、k’* 0、k’* i)。这里,ρ’(i)=(t、v→’ i:=(v’i.1、...、v’i.nt)∈Fq nt\{0})(v’i、nt≠0)。
对加密装置200的功能和动作进行说明。
如图21所示,加密装置200具有公开参数接收部210、信息输入部220、加密部230、密文发送部240(密文输出部)。并且,加密部230具有随机数生成部233、密文c生成部234。
根据图26对Enc算法的处理进行说明。
(S1001:公开参数接收步骤)
公开参数接收部210例如通过通信装置,经由网络接收密钥生成装置100生成的公开参数pk。
(S1002:信息输入步骤)
信息输入部220通过输入装置输入属性集合Γ:={(t、x t:=(xt.1、...、xt.nt∈Fqnt))|1≦t≦d}。另外,t也可以不是1以上d以下的全部整数而是1以上d以下的至少一部分整数。并且,属性集合Γ例如设定有能够解密的用户的属性信息。
并且,信息输入部220通过输入装置输入向解密装置300发送的消息m。
并且,信息输入部220通过输入装置输入重加密次数n。这里输入的重加密次数n通常为0,在后述RKG算法中调出Enc算法的情况下,成为由RKG算法指定的值。
(S1003:随机数生成步骤)
随机数生成部233通过处理装置,如数式139所示生成随机数。
【数式179】
(S1004:密文c生成步骤)
密文c生成部234通过处理装置,如数式180所示生成密文c0.n
【数式180】
并且,密文c生成部234通过处理装置,关于属性信息Γ中包含的各整数t,如数式181所示生成密文ct.n
【数式181】
并且,密文c生成部234通过处理装置,如数式182所示生成密文cT.n
【数式182】
c T . n : = m &CenterDot; g T . n &zeta;
(S1005:密文发送步骤)
密文发送部240例如通过通信装置,经由网络向解密装置300发送将属性集合Γ、密文c0.n、ct.n、cT.n作为要素的密文ctn Γ。当然,也可以通过其它方法向解密装置300发送密文ctn Γ
即,在(S1001)~(S1004)中,加密装置200执行数式183所示的Enc算法,生成密文ctn Γ。然后,在(S1005)中,加密装置200向解密装置300发送已生成的密文ctn Γ
【数式183】
E n c = ( p k , m , &Gamma; = ( { t , x &RightArrow; t ) | x &RightArrow; t &Element; F q n t \ { 0 &RightArrow; } , 1 &le; t &le; d } , n ) :
r e t u r n ct &Gamma; n : = ( &Gamma; , c 0. n , { c t . n } ( t , x &RightArrow; t ) , &Element; &Gamma; , c T . n , n ) .
对解密装置300的功能和动作进行说明。
如图22所示,解密装置300具有解密密钥接收部310、信息输入部320、重加密密钥生成部330、重加密密钥发送部340(重加密密钥输出部)、密文接收部350、张成方案计算部360、补充系数计算部370、配对运算部380、消息计算部390。并且,重加密密钥生成部330具有随机数生成部331、加密部332、解密密钥k*rk生成部333。
这里,根据图27对RKG算法的处理进行说明。在后面叙述Dec2算法。
(S1101:解密密钥接收步骤)
解密密钥接收部310例如通过通信装置,经由网络接收从密钥生成装置100发送的解密密钥skS。并且,解密密钥接收部310接收密钥生成装置100生成的公开参数pk。
(S1102:信息输入步骤)
信息输入部320通过输入装置输入属性集合Γ’:={(t、x’ t:=(x’t.1、...、x’t.nt∈Fq nt\{0}))|1≦t≦d}。另外,t也可以不是1以上d以下的全部整数而是1以上d以下的至少一部分整数。并且,属性集合Γ’例如设定有能够对重密文ctn+1 Γ’进行解密的用户的属性信息。
并且,信息输入部320通过输入装置输入重加密次数n。这里输入的重加密次数n表示生成用于对重加密几次的密文进行重加密的重加密密钥。
(S1103:随机数生成步骤)
随机数生成部331通过处理装置,如数式184所示生成随机数。
【数式184】
r n + 1 , &eta; 0. n r a n &LeftArrow; U F q ,
&eta; i . n r a n &LeftArrow; U F q f o r i = 1 , ... , L
(S1104:随机数加密步骤)
加密部332通过处理装置,如数式185所示对随机数rn+1(转换信息)进行加密,生成密文ct’n+1 Γ’。这里,函数En+1是从Fq到GT.n+1的编码函数。
【数式185】
ct &Gamma; &prime; &prime; n + 1 : = ( &Gamma; &prime; , c 0. n + 1 , { c i . n + 1 } ( t , x &RightArrow; t ) , &Element; &Gamma; , c T . n + 1 )
&LeftArrow; R E n c ( p k , E n + 1 ( r n + 1 ) , &Gamma; &prime; )
(S1105:解密密钥k*rk生成步骤)
解密密钥k*rk生成部333通过处理装置,如数式186所示生成解密密钥k*rk 0.n
【数式186】
k 0. n * r k : = ( r n + 1 k 0. n * + ( 0 , 0 , 0 , 0 , &eta; 0. n r a n ) B 0. n * )
并且,解密密钥k*rk生成部333通过处理装置,关于i=1、...、L的各整数i,如数式187所示生成解密密钥k*rk i.n
【数式187】
k i . n * r k : = ( r n + 1 k i . n * + ( 0 n t , 0 w t , 0 z t , &eta; i . n r a n ) B i . n * ) ) f o r i = 1 , ... , L
(S1106:密钥发送步骤)
重加密密钥发送部340例如通过通信装置,经由网络秘密地向重加密装置400发送将访问结构S、属性集合Γ’、解密密钥k*rk 0.n、k*rk i.n、密文ct’n+1 Γ’、重加密次数n(这里是(S1102)中输入的值)作为要素的重加密密钥rkn S、Γ’。当然,也可以通过其它方法向重加密装置400发送重加密密钥rkn S、Γ’
即,在(S1101)~(S1105)中,解密装置300执行数式188所示的RKG算法,生成重加密密钥rkn S、Γ’。然后,在(S1106)中,解密装置300向重加密装置400发送已生成的重加密密钥rkn S、Γ’
【数式188】
RKG=(pk,skΓ,n,S′):
r n + 1 , &eta; 0. n r a n &LeftArrow; U F q ,
&eta; i . n r a n &LeftArrow; U F q f o r i = 1 , ... , L ,
ct &Gamma; &prime; &prime; n + 1 : = ( &Gamma; &prime; , c 0. n + 1 , { c i . n + 1 } ( t , x &RightArrow; t ) , &Element; &Gamma; , c T . n + 1 )
&LeftArrow; R E n c ( p k , E n + 1 ( r n + 1 ) , &Gamma; &prime; ) ,
k 0. n * r k : = ( r n + 1 k 0. n * + ( 0 , 0 , 0 , 0 , &eta; 0. n r a n ) B 0. n * ) ,
k i . n * r k : = ( r n + 1 k i . n * + ( 0 n t , 0 w t , 0 z t , &eta; i . n r a n ) B i . n * ) ) f o r i = 1 , ... , L ,
r e t u r n rk S , &Gamma; &prime; n : = ( S , &Gamma; &prime; , k 0. n * r k , { k i . n * r k } i = 1 , ... , L , ct &Gamma; &prime; &prime; n + 1 , n ) .
对重加密装置400的功能和动作进行说明。
如图23所示,重加密装置400具有公开参数接收部410、密文接收部420、重加密密钥接收部430、张成方案计算部440、补充系数计算部450、配对运算部460、重密文发送部470(重密文输出部)。
根据图28对REnc算法的处理进行说明。
(S1201:公开参数接收步骤)
公开参数接收部410例如通过通信装置,经由网络接收密钥生成装置100生成的公开参数pk。
(S1202:密文接收步骤)
密文接收部420例如通过通信装置,经由网络接收加密装置200发送的密文ctn Γ(ct0 Γ)。
(S1203:重加密密钥接收步骤)
重加密密钥接收部430例如通过通信装置,经由网络接收从解密装置300发送的重加密密钥rkn S、Γ’
(S1204:张成方案计算步骤)
张成方案计算部440通过处理装置判定重加密密钥rkn S、Γ’中包含的访问结构S是否受理密文ctn Γ中包含的Γ。访问结构S是否受理Γ的判定方法如实施方式1中的“第3.用于实现FPRE的概念”中说明的那样。
张成方案计算部440在访问结构S受理Γ的情况下(S1204:受理),使处理进入(S1205)。另一方面,在访问结构S拒绝Γ的情况下(S1204:拒绝),结束处理。
(S1205:补充系数计算步骤)
补充系数计算部450通过处理装置计算成为数式189的I和常数(补充系数){αi}i∈I
【数式189】
1 &RightArrow; = &Sigma; i &Element; I &alpha; i M i
where Mi is the i-th row of M,
(S1206:配对运算步骤)
配对运算部460通过处理装置计算数式190,生成会话密钥K’n
【数式190】
(S1207:重密文发送步骤)
重密文发送部470例如通过通信装置,经由网络秘密地向重密文解密装置500发送将会话密钥K’n、密文cT.n、属性集合Γ’、密文ct’n+1 Γ’、重加密次数n+1(这里是(S1202)中接收到的密文ctn Γ中包含的重加密次数n或(S1203)中接收到的重加密密钥rkn S、Γ’中包含的重加密次数n加1而得到的值)作为要素的重密文ctn+1 Γ’。当然,也可以通过其它方法向重密文解密装置500发送重密文ctn+1 Γ’
另外,这里,假设对加密装置200输出的密文ctn Γ进行重加密的情况进行了说明。
但是,也可以进一步对重加密装置400输出的重密文ctn+1 Γ’进行重加密。
该情况下,在(S1202)中,密文接收部420代替加密装置200输出的密文ct0 Γ而取得重加密装置400输出的重密文ctn+1 Γ’作为密文ctn Γ。另外,在密文ctn+1 Γ’中作为要素包含属性集合Γ’,但是,为了简便而将该属性集合Γ’改写成属性集合Γ。并且,在密文ctn+1 Γ’中,重加密次数成为n+1,但是,为了简便而将该重加密次数改写成n。
然后,在(S1207)中,重密文发送部470向重密文解密装置500发送除了上述要素以外还将(S1202)中取得的密文ctn Γ中包含的要素(会话密钥{K’j}j=1、...、n和密文{cT.j}j=0、...、n-1)作为要素的重密文ctn+1 Γ’
其它处理如上所述。
即,在(S1201)~(S1206)中,重加密装置400执行数式191所示的REnc算法,生成重密文ctn+1 Γ’。然后,在(S1207)中,重加密装置400向重密文解密装置500发送已生成的重密文ctn+1 Γ’
【数式191】
R E n c = ( p k , rk S , &Gamma; &prime; n , ct &Gamma; n )
If S acceptsΓ,then com pute I and{αi}i∈I such that
1 &RightArrow; = &Sigma; i &Element; I &alpha; i M i
where Mi is the i-th row of M,
r e t u r n ct &Gamma; &prime; n + 1 : = ( &Gamma; &prime; , { c T . j , K j &prime; } j = 0 , ... , n , ct &Gamma; &prime; &prime; n + 1 , n + 1 ) .
另外,在(S1202)中接收到的密文ctn Γ中包含的重加密次数n和(S1203)中接收到的重加密密钥rkn S、Γ’中包含的重加密次数n不一致的情况下,无法进行重加密。
对重密文解密装置500的功能和动作进行说明。
如图24所示,重密文解密装置500具有解密密钥接收部510、密文接收部520、张成方案计算部530、补充系数计算部540、配对运算部550、随机数计算部560、消息计算部570。
根据图29对Dec1算法的处理进行说明。
(S1301:解密密钥接收步骤)
解密密钥接收部510例如通过通信装置,经由网络接收从密钥生成装置100发送的解密密钥skS’。并且,解密密钥接收部310接收密钥生成装置100生成的公开参数pk。
(S1302:密文接收步骤)
密文接收部520例如通过通信装置,经由网络接收重加密装置400发送的重密文ctn Γ’
另外,在REnc算法中,输出重密文ctn+1 Γ’,但是,这里,将表记变更成重密文ctn Γ’
(S1303:张成方案计算步骤)
张成方案计算部530通过处理装置判定解密密钥skS’中包含的访问结构S’是否受理重密文ctn Γ’中包含的Γ’。访问结构S’是否受理Γ’的判定方法如实施方式1中的“第3.用于实现FPRE的概念”中说明的那样。
张成方案计算部530在访问结构S’受理Γ’的情况下(S1303:受理),使处理进入(S1304)。另一方面,在访问结构S’拒绝Γ’的情况下(S1303:拒绝),结束处理。
(S1304:补充系数计算步骤)
补充系数计算部540通过处理装置计算成为数式192的I和常数(补充系数){αi}i∈I
【数式192】
1 &RightArrow; = &Sigma; i &Element; I &alpha; i M i &prime;
where Mi'is the i-th row of M',
(S1305:配对运算步骤)
配对运算部550通过处理装置计算数式193,生成会话密钥K’n
【数式193】
(S1306)~(S1307)的处理与图16所示的实施方式1的(S606)~(S607)的处理相同。
即,在(S1301)~(S1307)中,重密文解密装置500执行数式194所示的Dec1算法,生成消息m。
【数式194】
D e c 1 = ( p k , sk S &prime; , ct &Gamma; &prime; n )
If S′acceptsΓ′,then com pute I and{αi}i∈I such that
1 &RightArrow; = &Sigma; i &Element; I &alpha; i M i &prime;
where Mi'is the i-th row of M',
En(rn):=cT.n/K'n,rn:=decode(En(rn)),
for j=n-1,...,1,
E j ( r j ) : = c T . j / ( K j &prime; ) r j + 1 , r j : = d e c o d e ( E j ( r j ) ) ,
m:=cT.0/(K'0)r1,
return m.
根据图30对Dec2算法的处理进行说明。
(S1401:解密密钥接收步骤)
解密密钥接收部310例如通过通信装置,经由网络接收从密钥生成装置100发送的解密密钥skS。并且,解密密钥接收部310接收密钥生成装置100生成的公开参数pk。
(S1402:密文接收步骤)
密文接收部350例如通过通信装置,经由网络接收重加密装置400发送的密文ct0 Γ
(S1403:张成方案计算步骤)
张成方案计算部360通过处理装置判定解密密钥skS中包含的访问结构S是否受理密文ctΓ中包含的Γ。访问结构S是否受理Γ的判定方法如实施方式1中的“第3.用于实现FPRE的概念”中说明的那样。
张成方案计算部360在访问结构S受理Γ的情况下(S1403:受理),使处理进入(S1404)。另一方面,在访问结构S拒绝Γ的情况下(S1403:拒绝),结束处理。
(S1404:补充系数计算步骤)
补充系数计算部370通过处理装置计算成为数式195的I和常数(补充系数){αi}i∈I
【数式195】
1 &RightArrow; = &Sigma; i &Element; I &alpha; i M i
where Mi is the i-th row of M,
(S1405:配对运算步骤)
配对运算部380通过处理装置计算数式196,生成会话密钥K0
【数式196】
(S1406:消息计算步骤)
消息计算部390通过处理装置计算m=cT.0/K0,生成消息m。
即,在(S1401)~(S1406)中,解密装置300执行数式197所示的Dec2算法,生成消息m。
【数式197】
D e c 2 = ( p k , sk S , ct &Gamma; 0 )
If S acceptsΓ,then com pute I and{αi}i∈I such that
1 &RightArrow; = &Sigma; i &Element; I &alpha; i M i
where Mi is the i-th row of M,
m:=cT.0/K0,
return m.
如上所述,实施方式3的加密系统10实现KP-FPRE方式。因此,能够利用1个重加密密钥向多种用户的集合传送密文。
另外,在实施方式2中,对针对实施方式1中说明的CP-FPRE方式应用带索引的方法的方式进行了说明。而且,在实施方式2中,实现了消除重加密次数的上限值并且与重加密次数的上限值无关地使公开参数的尺寸固定的CP-FPRE方式。
同样,针对实施方式3中说明的KP-FPRE方式,如数式198~数式201所示,也可以应用带索引的方法。另外,RKG算法、REnc算法、Dec2算法的处理内容也与上述KP-FPRE方式相同。
由此,能够实现消除重加密次数的上限值并且与重加密次数的上限值无关地使公开参数的尺寸固定的KP-FPRE方式。
【数式198】
S e t u p ( 1 &lambda; , n &RightArrow; = ( d ; n 1 , ... , n d ; w 1 , ... , w d ; z 1 , ... , z d ) ) :
param G : = ( q , G , G T , g , e ) &LeftArrow; R G b p g ( 1 &lambda; ) ,
N0:=5,Nt:=2+nt+wt+zt+1for t=1,...,d,
&psi; &LeftArrow; U F q &times; , g T : = e ( g , g ) &psi; ,
for t=0,...,d,
X t = &chi; ~ t , 1 . . . &chi; ~ t , N t : = ( &chi; t , i , j ) i , j &LeftArrow; U G L ( N t , F q ) ,
&nu; &RightArrow; t , 1 . . . &nu; &RightArrow; t , N t : = ( &nu; t , i , j ) i , j : = &psi; &CenterDot; ( X t T ) - 1 ,
b t , i : = &Sigma; j = 1 N t &chi; t , i , j a t , j , B t : = ( b t , 1 , ... , b t , N t ) , ,
b t , i * : = &Sigma; j = 1 N t &nu; t , i , j a t , j , B t * : = ( b t , 1 * , ... , b t , N t * ) ,
param n &RightArrow; : = ( g T , { param t } t = 0 , ... , d ) ,
B ^ 0 * : = ( b 0 , 2 * , b 0 , 5 * ) ,
B ^ t * : = ( b t , 1 * , ... , b t , 2 + n t * , b t , N t * ) f o r t = 1 , ... , d , ,
s k = ( b 0 , 1 * ) .
【数式199】
KG=(pk,sk,S=(M,ρ)):
s &RightArrow; T : = ( s 1 , ... , s L ) T : = M &CenterDot; f &RightArrow; T , s 0 : = 1 &RightArrow; &CenterDot; f &RightArrow; T ,
&eta; 0 &LeftArrow; U F q ,
k 0.0 * : = ( 1 , - s 0 , 0 , 0 , &eta; 0 ) B 0 * ,
for j=0,...,Q
for i=1,...,L,
i f &rho; ( i ) = ( t , v &RightArrow; i ) , &mu; j , &theta; i , &eta; i . j &LeftArrow; U F q ,
r e t u r n sk &Gamma; : = ( S , { k i . j * } i = 0 , ... , L ; j = 0 , ... , Q ) .
【数式200】
E n c = ( p k , m , &Gamma; = ( { t , x &RightArrow; t ) | x &RightArrow; t &Element; F q n t \ { 0 &RightArrow; } , 1 &le; t &le; d } , n ) :
r e t u r n ct &Gamma; 0 : = ( &Gamma; , c 0. n , { c t . n } ( t , x &RightArrow; t ) , &Element; &Gamma; , c T . n , n ) .
【数式201】
D e c 1 = ( p k , sk S &prime; , ct &Gamma; &prime; n )
If S′acceptsΓ′,then com pute I and{αi}i∈I such that
1 &RightArrow; = &Sigma; i &Element; I &alpha; i M i &prime;
where Mi'is the i-th row of M',
En(rn):=cT.n/K'n,rn:=decode(En(rn)),
for j=n-1,...,1,
E j ( r j ) : = c T . j / ( K j &prime; ) r j + 1 , r j : = d e c o d e ( E j ( r j ) ) ,
m:=cT.0/(K'0)r1,
return m.
实施方式4
在以上的实施方式中,对在对偶矢量空间中实现加密处理的方法进行了说明。在实施方式4中,对在对偶模块中实现加密处理的方法进行说明。
即,在以上的实施方式中,在质数位数q的循环组内实现了加密处理。但是,在使用合成数M如数式202那样表示环R的情况下,在将环R作为系数的模块中,也能够应用上述实施方式中说明的加密处理。
【数式202】
R:=Z/MZ
其中,
Z:整数
M合成数
如果将在以上的实施方式中说明的算法中的Fq变更成R,则能够实现对偶模块中的加密处理。
另外,在以上的实施方式中,假设通过FE对消息进行加密并向目的地发送的情况,说明了重加密装置400对密文进行重加密并变更密文的目的地。
FE不仅能够实现对消息进行加密并向目的地发送的功能,还能够实现不对密文进行解密就能够进行检索的可检索加密。在通过FE实现了可检索加密的情况下,能够通过在以上的实施方式中说明的算法来变更所设定的检索关键字。
在以上的实施方式中,指定了能够对密文中设定的属性信息进行解密的用户。而且,通过变更属性信息,对密文的目的地进行变更。在通过FE实现可检索加密的情况下,密文中设定的属性信息的一部分指定能够进行检索的用户,属性信息的其余一部分指定检索关键字。因此,通过利用在以上的实施方式中说明的算法来变更属性信息中的指定了检索关键字的部分,能够对所设定的检索关键字进行变更。
并且,在以上的实施方式中,设一台密钥生成装置100生成解密密钥。但是,也可以将以上的实施方式的算法与非专利文献5所述的分散多管理者的方式进行组合,通过多个密钥生成装置100生成一个解密密钥。
并且,在以上的实施方式中,在追加属性的范畴的情况下(增加属性的格式n中的d值的情况下),需要再次发行公开参数。但是,也可以将以上的实施方式的算法与非专利文献6所述的Unbounded的方式进行组合,不用再次发行公开参数,也能够追加属性的范畴。
并且,在以上的实施方式中,当设内积加密中使用的矢量的长度为N时,公开参数和主秘密密钥的尺寸与N2成比例,赋予用户的解密密钥的生成和加密处理需要花费与N2成比例的时间。但是,也可以将以上的实施方式的算法与非专利文献7所述的方式进行组合,能够减小公开参数和主秘密密钥的尺寸,并且,能够缩短赋予用户的解密密钥的生成处理和加密处理所需要花费的时间。
并且,在以上的实施方式中,设为向发送目的地的装置发送密钥和密文。但是,取而代之,也可以将密钥和密文输出到CD或DVD等存储介质,发送目的地的装置读入存储介质。因此,可以将发送改写成输出,将接收改写成取得。
另外,在以上的实施方式中,根据安全性证明的观点,与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)。
图31是示出实施方式1~4所示的加密系统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、张成方案计算部360、补充系数计算部370、配对运算部380、消息计算部390、公开参数接收部410、密文接收部420、重加密密钥接收部430、张成方案计算部440、补充系数计算部450、配对运算部460、重密文发送部470、解密密钥接收部510、密文接收部520、张成方案计算部530、补充系数计算部540、配对运算部550、随机数计算部560、消息计算部570说明的功能的程序。
进而,在外部存储装置902中还存储有操作系统(OS),OS的至少一部分被下载到主存储装置903中,运算装置901执行OS并执行上述程序。
并且,在实施方式1~5的说明中,在主存储装置903中作为文件存储有作为“公开参数pk”、“主秘密密钥sk”、“解密密钥skS、skΓ”、“密文ctn Γ、ctn S”、“重加密密钥rkn Γ、S’、rkn S、Γ’”、“重密文ctn S’、ctn Γ’”、“访问结构S、S’”、“属性集合Γ、Γ”、“消息m”等说明的信息、数据、信号值、变量值。
另外,图31的结构只不过示出加密系统10的各装置的硬件结构的一例,加密系统10的各装置的硬件结构不限于图31所述的结构,也可以是其它结构。
标号说明
10:加密系统;100:密钥生成装置;110:主密钥生成部;120:主密钥存储部;130:信息输入部;140:解密密钥生成部;141:随机数生成部;142:解密密钥k*生成部;143:f矢量生成部;144:s矢量生成部;150:密钥发送部;200:加密装置;210:公开参数接收部;220:信息输入部;230:加密部;231:f矢量生成部;232:s矢量生成部;233:随机数生成部;234:密文c生成部;240:密文发送部;300:解密装置;310:解密密钥接收部;320:信息输入部;330:重加密密钥生成部;331:随机数生成部;332:加密部;333:解密密钥k*rk生成部;340:重加密密钥发送部;350:密文接收部;360:张成方案计算部;370:补充系数计算部;380:配对运算部;390:消息计算部;400:重加密装置;410:公开参数接收部;420:密文接收部;430:重加密密钥接收部;440:张成方案计算部;450:补充系数计算部;460:配对运算部;470:重密文发送部;500:重密文解密装置;510:解密密钥接收部;520:密文接收部;530:张成方案计算部;540:补充系数计算部;550:配对运算部;560:随机数计算部;570:消息计算部。

Claims (10)

1.一种加密系统,其实现在2个信息相互对应的情况下,能够利用被设定了一个信息的解密密钥对被设定了另一个信息的密文进行解密的加密方式下的代理重加密功能,其特征在于,所述加密系统具有:
加密装置,其输出被设定了相互对应的属性信息x0、v0中的一方的密文ct0
重加密密钥生成装置,其取得被设定了所述属性信息x0、v0中的另一方的解密密钥k*,输出包含解密密钥k*rk 0和密文ct’1的重加密密钥rk1,其中,所述解密密钥k*rk 0是利用转换信息r1对所取得的解密密钥k*进行转换而得到的,所述密文ct’1是被设定了相互对应的属性信息x1、v1中的一方且对所述转换信息r1进行加密而得到的;以及
重加密装置,其输出包含利用所述解密密钥k*rk 0对所述密文ct0进行解密而得到的会话密钥K’0和所述密文ct’1的重密文ct1
2.根据权利要求1所述的加密系统,其特征在于,
所述加密系统还具有重密文解密装置,该重密文解密装置取得被设定了所述属性信息x1、v1中的另一方的解密密钥k*’,利用所取得的解密密钥k*’对所述密文ct’1进行解密而生成所述转换信息r1,根据所生成的转换信息r1和所述会话密钥K’0生成消息m。
3.根据权利要求2所述的加密系统,其特征在于,
所述重密文解密装置输出包含解密密钥k*rk 1和密文ct’2的重加密密钥rk2,其中,所述解密密钥k*rk 1是利用转换信息r2对所述解密密钥k*’进行转换而得到的,所述密文ct’2是被设定了相互对应的属性信息x2、v2中的一方且对所述转换信息r2进行加密而得到的,
所述重加密装置输出包含利用所述解密密钥k*rk 1对所述重密文ct1进行解密而得到的会话密钥K’1和所述密文ct’2的重密文ct2
4.根据权利要求1~3中的任意一项所述的加密系统,其特征在于,
所述加密装置输出数式1所示的密文ct0
所述重加密密钥生成装置取得数式2所示的解密密钥k*,输出包含数式3所示的解密密钥k*rk 0和数式4所示的密文ct’1的重加密密钥rk1
所述重加密装置输出包含数式5所示的会话密钥K’0的重密文ct1
【数式1】
c 0.0 : = ( &zeta; , - s 0 ) B 0.0 ,
for i=1,...,L,
i f &rho; ( i ) = ( t , v &RightArrow; i ) ,
c T . 0 : = m &CenterDot; g T . 0 &zeta; ,
ct0:=(c0.0,{ci.0}i=1,...,L,cT.0)
其中,
s &RightArrow; T : = ( s 1 , ... , s L ) T : = M &CenterDot; f &RightArrow; T ,
s 0 : = 1 &RightArrow; &CenterDot; f &RightArrow; T ,
v 0 : = v &RightArrow; i : = ( v i . 1 , . . . , v i . n t ) ,
M是L行r列的矩阵,
nt是1以上的整数,
【数式2】
k 0.0 * : = ( 1 , &delta; 0 ) B 0.0 * ,
k * : = ( k 0.0 * , { k t .0 * } ( t , x &RightArrow; t ) , &Element; &Gamma; )
其中,
&Gamma; = ( { ( t , x &RightArrow; t ) , 1 &le; t &le; d } ,
x 0 : = x &RightArrow; t : = ( x t , 1 , ... , x t , n t )
【数式3】
k 0.0 * r k : = ( r 1 k 0.0 * + ( 0 , &delta; 0 r a n ) B 0.0 * ) ,
k t .0 * r k : = ( r 1 k t .0 * + ( &delta; 0 r a n x &RightArrow; t ) B t .0 * ) ) f o r ( t , x &RightArrow; t ) &Element; &Gamma; ,
k 0 * r k : = ( k 0.0 * r k , { k t .0 * r k } ( t , x &RightArrow; t ) &Element; &Gamma; )
其中,
【数式4】
c 0.1 : = ( &zeta; &prime; , - s 0 &prime; ) B 0.1 ,
for i=1,...,L′,
i f &rho; &prime; ( i ) = ( t , v &RightArrow; i &prime; ) ,
c T .1 : = ( E 1 ( r 1 ) ) &CenterDot; g T .1 &zeta; &prime; ,
ct′1:=(c0.1,{ci.1}i=1,...,L′,cT.1)
其中,
s &RightArrow; &prime; T : = ( s 1 &prime; , ... , s L &prime; ) T : = M &prime; &CenterDot; f &RightArrow; &prime; T ,
s 0 &prime; : = 1 &RightArrow; &CenterDot; f &RightArrow; &prime; T ,
v 1 : = v &RightArrow; i &prime; : = ( v i .1 &prime; , ... , v i . n t &prime; ) ,
E1是编码函数,
【数式5】
其中,
1 &RightArrow; = &Sigma; i &Element; I &alpha; i M i
其中Mi是M的第i行,
5.根据权利要求1~3中的任意一项所述的加密系统,其特征在于,
所述加密装置输出数式6所示的密文ct0
所述重加密密钥生成装置取得数式7所示的解密密钥k*,输出包含数式8所示的解密密钥k*rk 0和数式9所示的密文ct’1的重加密密钥rk1
所述重加密装置输出包含数式10所示的会话密钥K’0的重密文ct1
【数式6】
c 0.0 : = ( &zeta; , - s 0 ) B 0 ,
for i=1,...,L,
i f &rho; ( i ) = ( t , v &RightArrow; i ) ,
c T .0 : = m &CenterDot; g T &zeta; ,
ct0:=(c0.0,{ci.0}i=1,...,L,cT.0)
其中,
s &RightArrow; T : = ( s 1 , ... , s L ) T : = M &CenterDot; f &RightArrow; T ,
s 0 : = 1 &RightArrow; &CenterDot; f &RightArrow; T ,
v 0 : = v &RightArrow; i : = ( v i .1 , ... , v i . n t ) ,
M是L行r列的矩阵,
nt是1以上的整数,
【数式7】
k 0.0 * : = ( 1 , &delta; 0 ) B 0 * ,
k * : = ( k 0.0 * , { k t .0 * } ( t , x &RightArrow; t ) , &Element; &Gamma; )
其中,
&Gamma; = ( { ( t , x &RightArrow; t ) , 1 &le; t &le; d } ,
x 0 : = x &RightArrow; t : = ( x t , 1 , ... , x t , n t ) ,
【数式8】
k 0.0 * r k : = ( r 1 k 0.0 * + ( 0 , &delta; 0 r a n ) B 0 * ) ,
k t .0 * r k : = ( r 1 k t .0 * + ( &sigma; 0 ( 1 , 0 ) , &delta; 0 r a n x &RightArrow; t ) B t * ) ) f o r ( t , x &RightArrow; t ) &Element; &Gamma; ,
k 0 * r k : = ( k 0.0 * r k , { k t .0 * r k } ( t , x &RightArrow; t ) &Element; &Gamma; )
其中,
【数式9】
c 0.1 : = ( &zeta; &prime; , - s 0 &prime; ) B 0 ,
for i=1,...,L′,
i f &rho; &prime; ( i ) = ( t , v &RightArrow; i &prime; ) ,
c T .1 : = ( E 1 ( r 1 ) ) &CenterDot; g T &zeta; &prime; ,
ct′1:=(c0.1,{ci.1}i=1,...,L′,cT.1)
其中,
s &RightArrow; &prime; T : = ( s 1 &prime; , ... , s L &prime; ) T : = M &prime; &CenterDot; f &RightArrow; &prime; T ,
s 0 &prime; : = 1 &RightArrow; &CenterDot; f &RightArrow; &prime; T ,
v 1 : = v &RightArrow; i &prime; : = ( v i .1 &prime; , ... , v i . n t &prime; ) ,
E1是编码函数,
【数式10】
其中,
1 &RightArrow; = &Sigma; i &Element; I &alpha; i M i
其中Mi是M的第i行,
6.根据权利要求1~3中的任意一项所述的加密系统,其特征在于,
所述加密装置输出数式11所示的密文ct0
所述重加密密钥生成装置取得数式12所示的解密密钥k*,输出包含数式13所示的解密密钥k*rk 0和数式14所示的密文ct’1的重加密密钥rk1
所述重加密装置输出包含数式15所示的会话密钥K’0的重密文ct1
【数式11】
c 0.0 : = ( &zeta; , &delta; 0 ) B 0.0 ,
c T .0 : = m &CenterDot; g T .0 &zeta; ,
ct 0 : = ( c 0.0 , { c t .0 } ( t , x &RightArrow; t ) , &Element; &Gamma; , c T .0 )
其中,
&Gamma; = ( { ( t , x &RightArrow; t ) , 1 &le; t &le; d } ,
x 0 : = x &RightArrow; t : = ( x t , 1 , ... , x t , n t ) ,
nt是1以上的整数,
【数式12】
k 0.0 * : = ( 1 , - s 0 ) B 0.0 * ,
for i=1,...,L,
i f &rho; ( i ) = ( t , v &RightArrow; i ) ,
k * : = ( k 0.0 * , { k i .0 * } i = 1 , ... , L )
其中,
s &RightArrow; T : = ( s 1 , ... , s L ) T : = M &CenterDot; f &RightArrow; T ,
s 0 : = 1 &RightArrow; &CenterDot; f &RightArrow; T ,
v 0 : = v &RightArrow; i : = ( v i .1 , ... , v i . n t ) ,
M是L行r列的矩阵,
【数式13】
k 0.0 * r k : = r 1 k 0.0 * ,
k i .0 * r k : = r 1 k i .0 * f o r i = 1 , ... , L ,
k 0 * r k : = ( k 0.0 * r k , { k i .0 * r k } i = 1 , ... , L )
【数式14】
c 0.1 : = ( &zeta; &prime; , &delta; 1 ) B 0.1 ,
c T .1 : = m &CenterDot; g T .1 &zeta; ,
ct 1 &prime; : = ( c 0.1 , { c t .1 } ( t , x &RightArrow; t &prime; ) , &Element; &Gamma; , c T .1 )
其中,
&Gamma; &prime; = ( { ( t , x &RightArrow; t &prime; ) , 1 &le; t &le; d } ,
x 1 : = x &RightArrow; t &prime; : = ( x t , 1 &prime; , ... , x t , n t &prime; ) ,
【数式15】
其中,
1 &RightArrow; = &Sigma; i &Element; I &alpha; i M i
其中Mi是M的第i行,
7.根据权利要求1~3中的任意一项所述的加密系统,其特征在于,
所述加密装置输出数式16所示的密文ct0
所述重加密密钥生成装置取得数式17所示的解密密钥k*,输出包含数式18所示的解密密钥k*rk 0和数式19所示的密文ct’1的重加密密钥rk1
所述重加密装置输出包含数式20所示的会话密钥K’0的重密文ct1
【数式16】
c 0.0 : = ( &zeta; , &delta; 0 ) B 0 ,
c T .0 : = m &CenterDot; g T &zeta; ,
ct 0 : = ( c 0.0 , { c t .0 } ( t , x &RightArrow; t ) , &Element; &Gamma; , c T .0 )
其中,
&Gamma; = ( { ( t , x &RightArrow; t ) , 1 &le; t &le; d } ,
x 0 : = x &RightArrow; t : = ( x t , 1 , ... , x t , n t ) ,
nt是1以上的整数,
【数式17】
k 0.0 * : = ( 1 , - s 0 ) B 0 * ,
for i=1,...,L,
i f &rho; ( i ) = ( t , v &RightArrow; i ) ,
k * : = ( k 0.0 * , { k i .0 * } i = 1 , ... , L )
其中,
s &RightArrow; T : = ( s 1 , ... , s L ) T : = M &CenterDot; f &RightArrow; T ,
s 0 : = 1 &RightArrow; &CenterDot; f &RightArrow; T ,
v 0 : = v &RightArrow; i : = ( v i .1 , ... , v i . n t ) ,
M是L行r列的矩阵,
【数式18】
k 0.0 * r k : = r 1 k 0.0 * ,
k i .0 * r k : = r 1 k i .0 * f o r i = 1 , ... , L ,
k 0 * r k : = ( k 0.0 * r k , { k i .0 * r k } i = 1 , ... , L )
【数式19】
c 0.1 : = ( &zeta; &prime; , &delta; 1 ) B 0 ,
c T .1 : = m &CenterDot; g T &zeta; ,
ct 1 &prime; : = ( c 0.1 , { c t .1 } ( t , x &RightArrow; t &prime; ) , &Element; &Gamma; , c T .1 )
其中,
&Gamma; &prime; = ( { ( t , x &RightArrow; t &prime; ) , 1 &le; t &le; d } ,
x 1 : = x &RightArrow; t &prime; : = ( x t , 1 &prime; , ... , x t , n t &prime; ) ,
【数式20】
其中,
1 &RightArrow; = &Sigma; i &Element; I &alpha; i M i
其中Mi是M的第i行,
8.一种加密系统中的重加密密钥生成装置,该加密系统实现在2个信息相互对应的情况下,能够利用被设定了一个信息的解密密钥对被设定了另一个信息的密文进行解密的加密方式下的代理重加密功能,其特征在于,所述重加密密钥生成装置具有:
解密密钥取得部,其取得被设定了相互对应的属性信息x0、v0中的另一方的解密密钥k*;以及
重加密密钥输出部,其输出包含解密密钥k*rk 0和密文ct’1的重加密密钥rk1,其中,所述解密密钥k*rk 0是利用转换信息r1对所述解密密钥k*进行转换而得到的,所述密文ct’1是被设定了相互对应的属性信息x1、v1中的一方且对所述转换信息r1进行加密而得到的。
9.一种加密系统中的重加密装置,该加密系统实现在2个信息相互对应的情况下,能够利用被设定了一个信息的解密密钥对被设定了另一个信息的密文进行解密的加密方式下的代理重加密功能,其特征在于,所述重加密装置具有:
密文取得部,其取得被设定了相互对应的属性信息x0、v0中的一方的密文ct0
重加密密钥取得部,其取得包含解密密钥k*rk 0和密文ct’1的重加密密钥rk1,其中,所述解密密钥k*rk 0是利用转换信息r1对被设定了所述属性信息x0、v0中的另一方的解密密钥k*进行转换而得到的,所述密文ct’1是被设定了相互对应的属性信息x1、v1中的一方且对所述转换信息r1进行加密而得到的;以及
重密文输出部,其输出包含利用所述解密密钥k*rk 0对所述密文ct0进行解密而得到的会话密钥K’0和所述密文ct’1的重密文ct1
10.一种加密程序,其实现在2个信息相互对应的情况下,能够利用被设定了一个信息的解密密钥对被设定了另一个信息的密文进行解密的加密方式下的代理重加密功能,其特征在于,所述加密程序使计算机执行以下处理:
加密处理,输出被设定了相互对应的属性信息x0、v0中的一方的密文ct0
重加密密钥生成处理,取得被设定了所述属性信息x0、v0中的另一方的解密密钥k*,输出包含解密密钥k*rk 0和密文ct’1的重加密密钥rk1,其中,所述解密密钥k*rk 0是利用转换信息r1对所取得的解密密钥k*进行转换而得到的,所述密文ct’1是被设定了相互对应的属性信息x1、v1中的一方且对所述转换信息r1进行加密而得到的;以及
重加密处理,输出包含利用所述解密密钥k*rk 0对所述密文ct0进行解密而得到的会话密钥K’0和所述密文ct’1的重密文ct1
CN201480071416.0A 2014-01-14 2014-01-14 加密系统、重加密密钥生成装置以及重加密装置 Active CN105850071B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/050445 WO2015107620A1 (ja) 2014-01-14 2014-01-14 暗号システム、再暗号化鍵生成装置、再暗号化装置及び暗号プログラム

Publications (2)

Publication Number Publication Date
CN105850071A true CN105850071A (zh) 2016-08-10
CN105850071B CN105850071B (zh) 2019-06-25

Family

ID=53542545

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480071416.0A Active CN105850071B (zh) 2014-01-14 2014-01-14 加密系统、重加密密钥生成装置以及重加密装置

Country Status (5)

Country Link
US (1) US20160344708A1 (zh)
EP (1) EP3096487B1 (zh)
JP (1) JP6053966B2 (zh)
CN (1) CN105850071B (zh)
WO (1) WO2015107620A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106612175A (zh) * 2016-08-25 2017-05-03 四川用联信息技术有限公司 移动云中多要素访问控制的代理重加密算法

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6273951B2 (ja) * 2014-03-24 2018-02-07 富士通株式会社 暗号化装置、暗号化方法、情報処理装置および暗号化システム
US9264370B1 (en) 2015-02-10 2016-02-16 Centripetal Networks, Inc. Correlating packets in communications networks
US9866576B2 (en) 2015-04-17 2018-01-09 Centripetal Networks, Inc. Rule-based network-threat detection
CN105897709B (zh) * 2016-04-01 2019-02-22 西安电子科技大学 分布式网络中非单调访问结构的用户属性加解密方法
JP6599055B2 (ja) * 2017-06-09 2019-10-30 三菱電機株式会社 再暗号化鍵生成装置、再暗号化装置、再暗号化暗号文復号装置及び暗号システム
KR102515606B1 (ko) * 2017-10-31 2023-03-28 삼성에스디아이 주식회사 배터리 충전량 표시 방법 및 이를 수행하는 배터리 팩 및 전자 기기
US10084600B1 (en) * 2018-04-16 2018-09-25 Xage Security, Inc. Decentralized information protection for confidentiality and tamper-proofing on distributed database
CN113853764A (zh) * 2019-05-24 2021-12-28 三菱电机株式会社 重加密装置、重加密方法、重加密程序和加密系统
DE112020007079B4 (de) 2020-06-17 2024-04-25 Mitsubishi Electric Corporation Neuverschlüsselungseinrichtung, kryptografisches system, neuverschlüsselungsverfahren und neuverschlüsselungsprogramm
WO2022187369A1 (en) * 2021-03-02 2022-09-09 Sri International Attribute based encryption with bounded collusion resistance
CN114142996B (zh) * 2021-11-18 2023-09-05 贵州大学 一种基于sm9密码算法的可搜索加密方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101617351A (zh) * 2007-01-19 2009-12-30 三菱电机株式会社 密文生成装置、密码通信系统以及群参数生成装置
US20100235627A1 (en) * 2009-03-13 2010-09-16 Sap Ag Securing communications sent by a first user to a second user
CN101911582A (zh) * 2008-01-18 2010-12-08 三菱电机株式会社 密码参数设定装置、密钥生成装置、密码系统、程序、密码参数设定方法和密钥生成方法
WO2011045723A1 (en) * 2009-10-15 2011-04-21 Koninklijke Philips Electronics N.V. Ciphertext-policy attribute-based encryption and re-encryption
CN102415047A (zh) * 2009-04-23 2012-04-11 三菱电机株式会社 密码处理系统
CN102546600A (zh) * 2011-12-20 2012-07-04 华为技术有限公司 基于代理的加密、解密方法,网络设备、网络装置及系统

Family Cites Families (9)

* 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
US20090210697A1 (en) * 2008-01-17 2009-08-20 Songqing Chen Digital Rights Protection in BitTorrent-like P2P Systems
DE102008001855A1 (de) * 2008-05-19 2009-11-26 Evonik Degussa Gmbh Zweikomponenten-Zusammensetzung zur Herstellung von flexiblen Polyurethan-Gelcoats
JP5693206B2 (ja) 2010-12-22 2015-04-01 三菱電機株式会社 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム
US8769705B2 (en) * 2011-06-10 2014-07-01 Futurewei Technologies, Inc. Method for flexible data protection with dynamically authorized data receivers in a content network or in cloud storage and content delivery services
JP5367039B2 (ja) * 2011-09-30 2013-12-11 株式会社東芝 サーバ装置及びプログラム
JP2013105065A (ja) * 2011-11-15 2013-05-30 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
US20130212388A1 (en) * 2012-02-13 2013-08-15 Alephcloud Systems, Inc. Providing trustworthy workflow across trust boundaries

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101617351A (zh) * 2007-01-19 2009-12-30 三菱电机株式会社 密文生成装置、密码通信系统以及群参数生成装置
CN101911582A (zh) * 2008-01-18 2010-12-08 三菱电机株式会社 密码参数设定装置、密钥生成装置、密码系统、程序、密码参数设定方法和密钥生成方法
US20100235627A1 (en) * 2009-03-13 2010-09-16 Sap Ag Securing communications sent by a first user to a second user
CN102415047A (zh) * 2009-04-23 2012-04-11 三菱电机株式会社 密码处理系统
WO2011045723A1 (en) * 2009-10-15 2011-04-21 Koninklijke Philips Electronics N.V. Ciphertext-policy attribute-based encryption and re-encryption
CN102546600A (zh) * 2011-12-20 2012-07-04 华为技术有限公司 基于代理的加密、解密方法,网络设备、网络装置及系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
KAWAI,YUTAKA,ET AL.: "Fully-Anonymous Functional Proxy-Re-Encryption", 《CRYPTOLOGY EPRINT ARCHIVE》 *
SONG LUO,ET AL.: "Ciphertext Policy Attribute-Based Proxy Re-encryption", 《INFORMATION AND COMMUNICATIONS SECURITY,SPRINGER BERLIN HEIDELBERG》 *
XIAOHUI LIANG,ET AL.: "Attribute Based Proxy Re-encryption with Delegation Capabilities", 《ASIACCS ’09,SYDNEY,NSW,AUSTRALIA》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106612175A (zh) * 2016-08-25 2017-05-03 四川用联信息技术有限公司 移动云中多要素访问控制的代理重加密算法

Also Published As

Publication number Publication date
WO2015107620A1 (ja) 2015-07-23
JPWO2015107620A1 (ja) 2017-03-23
US20160344708A1 (en) 2016-11-24
EP3096487B1 (en) 2020-04-29
CN105850071B (zh) 2019-06-25
JP6053966B2 (ja) 2016-12-27
EP3096487A4 (en) 2017-09-06
EP3096487A1 (en) 2016-11-23

Similar Documents

Publication Publication Date Title
CN105850071A (zh) 加密系统、重加密密钥生成装置、重加密装置和加密程序
CN104871477B (zh) 加密系统、重加密密钥生成装置、重加密装置、加密方法
US10033708B2 (en) Secure computation using a server module
JP5680007B2 (ja) 暗号システム、暗号方法及び暗号プログラム
CN105210133B (zh) 加密系统和加密方法
WO2012132136A1 (ja) 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム
CN104718566B (zh) 密码系统
CN107086912B (zh) 一种异构存储系统中的密文转换方法、解密方法及系统
JP2019528028A (ja) 幾何代数を用いた高度データ中心型暗号化システムのための方法およびシステム
CN105637799B (zh) 加密系统、加密装置、重加密密钥生成装置以及重加密装置
CN106031080B (zh) 加密系统
JP7325689B2 (ja) 暗号文変換システム、変換鍵生成方法、及び、変換鍵生成プログラム
JP4143036B2 (ja) 鍵生成システム、鍵生成サーバ及び鍵生成方法
Shoba et al. An Efficient Encryption and Decryption for Privacy-Preserving in Big Data by Using Data Anonymization Technique
Navlani Improvised Version: Fully Homomorphic Encryption

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant