CN104144057B - 一种生成安全解密密钥的cp‑abe方法 - Google Patents
一种生成安全解密密钥的cp‑abe方法 Download PDFInfo
- Publication number
- CN104144057B CN104144057B CN201410328522.4A CN201410328522A CN104144057B CN 104144057 B CN104144057 B CN 104144057B CN 201410328522 A CN201410328522 A CN 201410328522A CN 104144057 B CN104144057 B CN 104144057B
- Authority
- CN
- China
- Prior art keywords
- key
- content
- applicant
- decruption key
- content applicant
- 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.)
- Expired - Fee Related
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
- H04L9/3073—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
Abstract
本发明公开了一种生成安全解密密钥的CP‑ABE方法。本方法为:1)授权者根据安全参数建立自己的公开/秘密参数,同时内容申请者建立自己的公私钥及其它公开/秘密参数;2)内容拥有者利用该授权者的公钥等公开参数,使用CP‑ABE算法,对消息M进行加密,得到密文CT;3)该内容申请者向该授权者申请解密密钥,该授权者根据该内容申请者的属性生成解密密钥,生成解密密钥过程中,将该内容申请者的公钥信息嵌入到解密密钥中,然后将解密密钥发送给该内容申请者;4)该内容申请者获取该消息M的密文CT后,用自己的私钥和解密密钥对该密文CT进行解密,得到该消息M。本发明具有开销很小、解密密钥可直接在网络传输,且安全性高。
Description
技术领域
本发明涉及一种生成安全解密密钥的CP-ABE方法,属于信息安全技术领域。
背景技术
现有的基于属性的加密(Attribute Based Encryption,ABE)系统有四种角色:
(1)内容拥有者
内容可包含任何数字信息。内容拥有者加密和发布自己的内容。加密过程分为两阶段:第一阶段,内容拥有者使用对称加密算法加密自己的数字内容。第二阶段,内容拥有者使用ABE算法加密包含该内容元数据和该加密内容对应的对称密钥信息的消息。
(2)内容申请者
内容申请者可申请内容,获取该内容,用自己的解密密钥来解密该内容。
(3)授权者
授权者可对内容申请者进行授权,根据内容申请者的属性生成内容申请者的解密密钥,把解密密钥发送给内容申请者。
(4)第三方
第三方为可选的角色。第三方可提供辅助功能。如第三方可执行解密过程中的部分计算,并产生中间结果,来减轻内容申请者的解密计算开销。此中间结果不是最终解密的明文内容。
ABE算法分为四个基本算法组成:
1.建立
在建立算法中,产生公共系统参数,授权者的公共和秘密参数。
2.消息加密
在消息加密算法中,内容拥有者使用ABE算法加密包含该内容元数据和该加密内容对应的对称密钥信息的消息。
3.解密密钥生成
在解密密钥生成算法中,授权者根据内容申请者的属性生成内容申请者的解密密钥,把解密密钥发送给内容申请者。
4.消息解密
在消息解密算法中,内容申请者用自己的解密密钥来解密该内容。
相应的,一个ABE系统中,包含建立、消息加密、解密密钥生成和消息解密四个基本的ABE功能模块。
从策略角度,ABE算法分为密钥策略的ABE(Key Policy Attribute BasedEncryption,KP-ABE)算法和密文策略的ABE(Ciphertext Policy Attribute BasedEncryption,CP-ABE)算法。对于KP-ABE算法,密文与一组属性相关联,并且用户的解密密钥与访问控制结构相关联。只有与密文关联的属性满足相应访问控制结构,用户才能使用解密密钥对密文解密。对于CP-ABE算法,密文基于访问控制结构加密,而相应的解密密钥基于一组属性创建。只有用户的解密密钥相关的一组属性满足给定的密文的访问控制结构,用户才能使用解密密钥对密文解密。
外包解密:内容申请者可将部分解密运算外包给第三方,第三方可可执行解密过程中的部分计算,并产生中间结果,来减轻内容申请者的解密计算开销。
解密密钥在网络环境中安全传输是一个关键问题。从现有文献检索来看,尚未有文献明确的针对此问题提出解决方法。现有文献的算法,只能通过离线的方法或者SSL协议的方法来传输密钥。离线方式对一些应用,比如存在大量用户的公有云计算环境下不适用。对这类应用,解密密钥只能通过网络进行传输。如果采用SSL协议,则存在以下劣势:(1)产生的额外开销。SSL协议协商与建立产生开销;对称加密对解密密钥加解密产生开销。(2)不支持外包解密。
现有的外包解密方式的劣势:用户需要产生随机密钥对解密密钥进行处理后,再发给第三方,此过程产生计算开销。
发明内容
针对现有技术存在的技术问题,本发明目的在于提出一种生成安全解密密钥的CP-ABE(Attribute Based Encryption Generating Secure Decryption Key,SK-CP-ABE)方法。
本发明的技术方案为:
一种生成安全解密密钥的CP-ABE方法,其步骤为:
1)授权者根据安全参数建立自己的公开/秘密参数,同时内容申请者建立自己的公私钥及其它公开/秘密参数;
2)内容拥有者利用该授权者的公钥等公开参数,使用CP-ABE算法,对消息M进行加密,得到密文CT;
3)该内容申请者向该授权者申请解密密钥,该授权者根据该内容申请者的属性生成解密密钥,生成解密密钥过程中,将该内容申请者的公钥信息嵌入到解密密钥中,然后将解密密钥发送给该内容申请者;
4)该内容申请者获取该消息M的密文CT后,用自己的私钥和解密密钥对该密文CT进行解密,得到该消息M。
进一步的,将该内容申请者的公钥嵌入到该解密密钥的方法为:
如果消息加密算法采用基于线性秘密共享方案的访问控制结构,则生成的表达式中所有以g为底数的部分,αj必表现为g的指数的一个乘数,即以g为底数的部分为Z表示指数的其余部分;生成的计算过程为:以为底数,Z为指数进行运算,其中,是一个基于椭圆曲线的乘法循环群,其阶为p,生成元为g,αj为内容申请者的私钥,对应的公钥为
如果消息加密算法采用基于树的访问控制结构,则以为底数,(α+r)·Y为指数进行运算,生成表达式结果为其中,α为授权者的秘密参数,Y表示指数的其余部分,r为针对该解密秘钥生成而产生的随机秘密数。或者以为底数,Z为指数进行运算,Z表示指数的其余部分,同时Z中包含r;其中,是一个基于椭圆曲线的乘法循环群,其阶为p,生成元为g,αj为内容申请者的私钥,对应的公钥为
进一步的,该内容申请者从所述椭圆曲线上随机选取的一个随机密钥对作为自己的公私钥对。
进一步的,所述对该密文CT进行解密的方法为:该内容申请者先用解密密钥对该密文CT进行解密,得到一中间结果,然后利用自己的私钥,并根据计算需要使用解密密钥的一部分或不使用解密密钥,对该中间结果进行解密,得到该消息M。
进一步的,所述对该密文CT进行解密的方法为:该内容申请者将解密密钥发送给第三方。第三方对密文CT进行解密计算,生成ElGamal形式的中间结果,并把该中间结果发送给该内容申请者;该内容申请者根据此中间结果,内容申请者使用自己的私钥,并根据计算需要使用解密密钥的一部分或不使用解密密钥,计算生成该消息M。
进一步的,所述步骤2)中,该密文CT为CP-ABE算法生成的密文;所述步骤4)中,该内容申请者对该密文CT进行解密的方法为:如果密文CT的表达式中,除Me(g,g)XY外,对第i项属性还存在有的表达式,且Ci中不包含M;其中,M为消息,e(g,g)为双线性映射函数,X,Y为表达式的其余部分,Xi,Yi分别为第i向属性的密文表达式的其余部分;则将所有Ci修改为C′i其中如果Yi为空,则该内容申请者将其私钥αj增加为所有Ci中底数e(g,g)的指数的一个乘数即如果Yi不为空,则该内容申请者将其私钥αj增加为所有Ci中底数e(g,g)的指数的一个乘数,并将αj增加为所有底数Yi的指数的一个乘数,即然后,该内容申请者使用自己的解密密钥和私钥αj对上述结果进行计算生成该消息M。
SK-CP-ABE方法在CP-ABE算法的不同基本算法中体现如下:
1.建立
输入:安全参数λ。
输出:系统的公共参数,内容申请者公私钥,授权者的公共/秘密参数。
建立算法中,首先系统建立一个基于椭圆曲线的乘法循环群其阶为p,生成元为g。
系统可建立一些其它全部公共/秘密参数。
授权者建立自己的公共/秘密参数。
每个内容申请者选择椭圆曲线上的一个随机密钥对作为自己的公私钥对。一个内容申请者j选择一个随机的αj∈Zp作为自己的私钥,对应的公钥为
2.消息加密
输入:消息M,系统的公共参数,授权者的公共/秘密参数
输出:密文CT
内容拥有者选择一定的访问控制结构,用系统和授权者的公共参数对消息M,采用CP-ABE算法进行加密,得到密文CT。
3.解密密钥生成
输入:系统的公共参数,授权者的公共/秘密参数,内容申请者公钥及属性,属性集。
输出:解密密钥。
内容申请者向授权者申请解密密钥,授权者根据内容申请者的属性,生成相应的解密密钥。
在解密密钥生成算法中,当一个授权者为一个内容申请者生成解密密钥的过程中,授权者将该内容申请者的公钥信息嵌入到该内容申请者的解密密钥中。
具体嵌入过程为:设内容申请者的公钥为
(1)如果消息加密算法采用基于线性秘密共享方案(Linear Secret SharingScheme)的访问控制结构,则生成的表达式中所有以g为底数的部分,αj必表现为g的指数的一个乘数,即以g为底数的部分为Z表示指数的其余部分,可为单个参数,或多个参数组合运算成的表示式。生成的计算过程为:以为底数,Z为指数进行运算,
该内容申请者的属性组成集合S′(属性个数为n),令Tx为小于x的自然数的集合,该内容申请者的解密密钥形式为:
v∈Tm,w∈Tn,r∈Tl, Zrs这里,k,m,n,l∈N,k≥0,l≥0,m≥1,n≥1,
展开为:
Z11,...,Z1n,...,Zl1,...,Zln。
X1,Y1,...,Xk,Yk,X11,Y11,...,X1n,Y1n,...,Xm1,Ym1,...,Xmn,Ymn,Z11,...,Z1n,...,Zl1,...,Zln都不包含g,表示解密密钥的表达式的其余部分,可为单个参数,或多个参数组合运算成的表示式。
(2)如果消息加密算法采用基于树的访问控制结构,则以为底数,(α+r)·Y为指数进行运算,生成表达式结果为其中,α为授权者的秘密参数,Y表示指数的其余部分,r为针对该解密秘钥生成而产生的随机秘密数。或者以为底数,Z为指数进行运算,Z表示指数的其余部分,同时Z中包含r。
该解密密钥可以在网络上明文传输,攻击者截获该密钥也不能用于解密消息,因此是安全解密密钥。
授权者将解密密钥发送给内容申请者。
4.消息解密
输入:密文CT,系统的公共参数,授权者的公共参数,内容申请者的解密密钥DKj,内容申请者的私钥αj;
输出:消息M
在消息解密算法中,当一个内容申请者解密CT时,解密过程分为两个阶段。在第1阶段,不使用该内容申请者的私钥,使用解密秘钥生成ElGamal形式的中间结果。在第2阶段,该内容申请者使用自己的私钥,并根据计算需要使用解密密钥的一部分或不使用解密密钥,计算产生最终解密的消息M。
内容申请者可选择是否将第1阶段的计算外包给第三方。如果内容申请者选择将第1阶段的解密计算外包给第三方,则内容申请者将自己的解密密钥发送给第三方。第三方用内容申请者的解密密钥进行第1阶段的解密计算,生成ElGamal形式的中间结果,并把中间结果发送给内容申请者。在第2阶段,根据此中间结果,内容申请者使用自己的私钥,并根据计算需要使用解密密钥的一部分或不使用解密密钥,计算生成最终的解密消息M。
本发明的方法可对CP-ABE算法进行改造,改造后的算法能支持生成安全解密密钥和外包解密。该方法也可用于设计新的CP-ABE算法。
与现有技术相比,本发明的优点:
(1)解密密钥产生过程中,通过将内容申请者的公钥信息嵌入解密密钥中,嵌入过程的计算为轻量级,开销很小。
(2)产生的解密密钥可以直接在网络传输,且安全性高(基于离散对数的安全基础)。
(3)采用外包解密时,用户可以直接发送解密密钥给第三方,不产生额外计算开销。
具体实施方式
下面结合具体实例对本发明进行进一步详细描述。
本发明的方法对CP-ABE算法的改造流程:
对于满足以下条件的CP-ABE算法,SK-CP-ABE算法可以对此算法进行改造形成新的算法:此CP-ABE算法中没有外包解密的描述。
对满足以上条件的CP-ABE算法改造的通用流程描述如下(只描述修改的部分):
1.建立
输入:安全参数λ。
输出:系统的公共参数,内容申请者公私钥,授权者的公共/秘密参数。
原CP-ABE算法中,全局参数中,是一个基于椭圆曲线的乘法循环群,其阶为p,生成元为g。CP-ABE算法中,如果内容申请者已选择椭圆曲线上的一个随机密钥对作为自己的公私钥对的描述,则建立算法不需要改造,否则每个内容申请者j选择一个秘密随机数αj∈Zp作为自己私钥,对应的公钥为
2.解密密钥生成
对于内容申请者j(公钥为),
(1)如果消息加密算法采用基于线性秘密共享方案的访问控制结构,CP-ABE算法φ生成的内容申请者j的解秘密钥形式如下:
Z11,...,Z1n,...,Zl1,...,Zln.
这里,k,m,n,l∈N,k≥0,l≥0,m≥1,n≥1,
X1,Y1,...,Xk,Yk,X11,Y11,...,X1n,Y1n,...,Xm1,Ym1,...,Xmn,Ymn,Z11,...,Z1n,...,Zl1,...,Zln都不包含g,表示解秘密钥的表达式的其余部分。
改造后的算法生成内容申请者j的解秘密钥的方法为:对于原算法的解密密钥表达式中所有以g为底数的部分,用替代g到原算法中的解密密钥表达式中进行计算,结果表现为αj被增加为g的指数的一个乘数,形式如下:
Z11,...,Z1n,...,Zl1,Zln.
(2)如果消息加密算法采用基于树的访问控制结构,对于原算法中的解密密钥表达式中具有以下特点之一的表达式,对于该表达式中所有以g为底数的部分,用替代g到原算法中的解密密钥表达式中时行计算,结果为将αj增加为g的指数的一个乘数:
(Ⅰ)该表达式为g(α+r)·Y;其中,α为授权者的秘密参数,Y表示指数的其余部分,r为针对该解密秘钥生成而产生的随机秘密数。
(Ⅱ)对于其它所有包含(Ⅰ)描述的随机数r的表达式。
3.消息解密
改造后的消息解密算法:改造后的消息解密算法包含准备阶段,解密过程包含两个阶段。准备阶段:如果密文的表达式中,除Me(g,g)XY(M为消息,e(g,g)为双线性映射函数,X,Y为表达式的其余部分,Y可能有空),第i项属性还存在有的表达式(Xi,Yi为表达式的其余部分,Yi可能为空),则将所有Ci修改为C′i:
(1)如果Yi为空,则内容申请者(私钥为αj)将αj增加为所有Ci中底数e(g,g)的指数的一个乘数,形式为:
(2)如果Yi不为空,内容申请者(私钥为αj)将αj增加为所有Ci中底数e(g,g)的指数的一个乘数,并将αj增加为所有底数Yi的指数的一个乘数,形式为:
在消息解密算法中,当一个内容申请者解密某消息时,解密过程分为两个阶段。在第1阶段,内容申请者使用自己的解密密钥来解密消息,不使用该内容申请者的私钥,得到ElGamal形式的中间结果。在第2阶段,该内容申请者使用自己的私钥,,并根据计算需要使用解密密钥的一部分或不使用解密密钥,计算生成最终解密的消息。
内容申请者可选择是否将第1阶段的计算外包给第三方。如果内容申请者选择将第1阶段的计算外包给第三方,则内容申请者将自己的解密密钥发送给第三方。第三方通过网络获取密文CT,并使用内容申请者的解密密钥进行第1阶段的解密计算,生成ElGamal形式的中间结果,并把中间结果发送给内容申请者。如果内容申请者不选择将第1阶段的计算外包给第三方,则内容申请者通过网络获取密文CT,使用解密密钥完成第1阶段的计算。在第2阶段,根据此中间结果,内容申请者使用自己的私钥,并根据计算需要使用解密密钥的一部分或不使用解密密钥,计算生成最终的解密消息。
改造例子:
1.对文献“John Bethencourt,Amit Sahai,and Brent Waters.Cipheretxt-Policy Attribute-BasedEncryption.In IEEE Symposium on Security and Privacy,may2007,pp.321-334.”算法的改造:
改造后的算法如下:
(1)建立
输入:安全参数λ
输出:系统的公共参数,内容申请者公私钥,授权者的公共/秘密参数
算法描述:
建立算法根据安全参数λ,产生这里p是一个λ位的素数阶,和是阶为p的两个乘法循环群,g为上的一个生成元,e为上的一个双线性映射,下一步选择哈希函数
每个内容申请者j选择一个在整数集上的一个随机的指数αj作为自己的私钥,相应的公钥为
授权者选择一个在整数集上的随机的指数α,β,将(β,α,gα)作为主密钥,授权者的公共参数为:g,e(g,g)α,h=gβ,f=g1/β。
(2)消息加密
输入:消息M,系统的公共参数,授权者的公共/秘密参数
输出:密文CT
算法描述:
内容拥有者用一个基于树的访问控制结构加密消息M,
消息加密算法首先对树中的每个节点(包括叶子节点)选择一个多项式参数qx。多项式选择从根节点开始,以一种自顶向下的顺序进行。对于每个树中的每个节点x,多项式的阶dx为该节点的阀值kx减1,即dx=kx-1。
算法从根节点R选择一个随机的设置qr(0)=s。然后,随机选择多项式qR上的dR个其它节点。对任意节点x,设置qx(0)=qparent(x)(index(x)),然后选择dx个随机节点来完全定义qx。令Y为树上的叶子节点集合。
当内容拥有者加密消息M,内容拥有者构造访问控制结构树使用授权者的公共参数来加密消息:
(3)解密密钥产生
输入:系统的公共参数,授权者的公共/秘密参数,内容申请者公钥及属性,属性集S。
输出:解密密钥。
算法描述:
内容申请者j具有属性集S上的一组属性,向授权者申请解密密钥,授权者生成内容申请者j的解密密钥过程如下描述。
对于该解密密钥表达式中具有以下特点之一的表达式,对于该表达式中所有以g为底数的部分,用替代g到原算法中的解密密钥表达式中进行计算,结果为αj被增加为g的指数的一个乘数:
(Ⅰ)该表达式为g(α+r)·Y;其中,α为授权者的秘密参数,Y表示指数的其余部分,r为针对该解密秘钥生成而产生的随机秘密数。
(Ⅱ)对于其它所有包含(Ⅰ)描述的随机数r的表达式。
具体的,解密密钥产生算法选择随机数然后计算解密密钥为:
授权者将解密密钥发送给内容申请者。
(4)消息解密
输入:密文CT,系统的公共参数,授权者的公共参数,内容申请者的解密密钥DKj,内容申请者的私钥αj;
输出:消息M
算法描述:
此消息解密算法没有准备阶段,因此分为第1阶段和第2阶段。
第1阶段:
内容申请者可选择是否将第1阶段的计算外包给第三方。如果内容申请者选择将第1阶段的计算外包给第三方,则第三方通过网络获取密文CT。内容申请者将解密密钥发送给第三方。第三方使用内容申请者的解密密钥进行第1阶段的解密计算,生成中间结果,并把中间结果发送给内容申请者。如果内容申请者不选择将第1阶段的计算外包给第三方,则内容申请者通过网络获取密文CT,使用解密密钥,完成第1阶段的计算。
具体的计算过程为:
首先定义递归的过程DecryptNode(CT,DKj,x),x是访问控制结构树的一个节点。该过程以输入密文CT,解密密钥DKj,x作为输入参数,该过程计算过程为:
如果节点x是访问控制结构树的一个叶子节点,k=att(x),如果k∈S,则
如果x是一个非叶子节点,则采用一个递归过程DecryptNode(CT,DKj,x):
对x的所有叶子节点,调用DecryptNode(CT,DKj,z),结果为Fz。令Sx为任意有kx个孩子节点z的集合,对每个z,Fz≠⊥。如果没有这样的集合存在,则功能返回⊥。
否则,计算如下:
其中i=index(x),S′x={index(z):z∈Sx}
如上,已定义节点的解密功能。解密算法调用根节点的解密功能。如果S符合访问结构树,则可得到
如果该第1阶段为第三方计算,则第三方计算出中间结果并发送给内容申请者。
第2阶段:
内容申请者j使用自己的私钥和部分解密密钥计算出M:
2.对文献“Allison Lewko,Tatsuaki Okamoto,Amit Sahai,KatsuyukiTakashima,Brent Waters.fully secure functional encryption attribute basedencryption and(hierarchical)inner product encryption,Advances in Cryptology–EUROCRYPT2010,Lecture Notes in Computer Science Volume6110,2010,pp62-91”算法的改造:
改造后的算法如下:
(1)建立
输入:安全参数λ
输出:系统的公共参数,内容申请者公私钥,授权者的公共/秘密参数
算法描述:
选择一个双线性群G,阶为N=p1p2p3(p1,p2,p3为3个不同的质数)。令表示G的一个阶为pi的子群。g为的一个生成元。系统的公共参数为N,G,g。
每个内容申请者j选择一个在整数集上的一个随机的指数αj作为自己的私钥,相应的公钥为
授权者选择一个随机指数α∈ZN作为自己的秘密参数,授权者进一步选择β∈ZN及上的一个生成元X3作为自己的秘密参数。属性集上S为包含所有属性的集合。对于属性集上S的每个属性,选择一个随机的si∈ZN作为秘密参数。授权者的公共参数包括:gα,e(g,g)β,
(2)消息加密
输入:消息M,系统的公共参数,授权者的公共/秘密参数
输出:密文CT
算法描述:
A是一个l×n的矩阵,ρ为矩阵的每行Ax到属性ρ(x)的一个映射。消息加密算法选择一个上的随机向量v=(s,v2,...,vn)。对于A上的每行Ax,选择一个随机数
内容拥有者加密消息M,生成密文如下:
C=Me(g,g)αs,C′=gs,
(3)解密密钥生成
输入:系统的公共参数,授权者的公共/秘密参数,内容申请者公钥及属性,属性集S。
输出:解密密钥。
算法描述:当内容申请者j拥有一组属性组成集合S,授权者生成内容申请者j的解密密钥。对于原算法的解密密钥表达式中所有以g为底数的部分,用替代g到原算法中的解密密钥表达式中进行计算,结果表现为αj被增加为g的指数的一个乘数,具体如下:
解密密钥生成算法选择随机的t∈ZN,和上的随机元素R0,R′,Ri,计算解密密钥为:
授权者将解密密钥发送给内容申请者。
(3)消息解密
输入:密文CT,系统的公共参数,授权者的公共参数,内容申请者的解密密钥DKj,内容申请者的私钥αj。
输出:消息M
算法描述:
此消息解密算法没有准备阶段,因此分为第1阶段和第2阶段。
第1阶段:
内容申请者可选择是否将第1阶段的计算外包给第三方。如果内容申请者选择将第1阶段的计算外包给第三方,则第三方通过网络获取密文CT。内容申请者将解密密钥发送给第三方。第三方使用内容申请者的解密密钥进行第1阶段的解密计算,生成中间结果,并把中间结果发送给内容申请者。如果内容申请者不选择将第1阶段的计算外包给第三方,则内容申请者通过网络获取密文CT,使用解密密钥,完成第1阶段的计算。
具体的计算过程为:
计算出常量ωx∈ZN使得∑ρ(x)∈SωxAx=(1,0,...,0).然后计算:
如果该第1阶段为第三方计算,则第三方计算出中间结果并发送给内容申请者。
第2阶段:内容申请者j使用自己的私钥αj计算出M:
3.对文献“A.Lewko and B.Waters,Decentralizing attribute-basedencryption,Advances in Cryptology CEUROCRYPT2011,pp.568-588.”中算法的改造
改造后算法为:
(1)建立算法:
输入:参数λ
输出:系统的公共参数,内容申请者公私钥,授权者的公共/秘密参数
算法描述:
选择一个阶为N=p1p2p3(p1,p2,p3为3个互不相同的素数)的双线性群G,g1是群的一个生成元。哈希函数H:{0,1}*→G将全局的身份GID映射为群G上的元素。系统的公共参数为:N,g1,H
每个内容申请者者选择一个随机的指数αj作为自己的私钥,相应的公钥为
授权者i选择一个随机的指数αi作为自己的秘密参数,授权者i负责对某项属性i授权,则选择一个随机指数yi∈ZN作为秘密参数。授权者的公共参数为:
(2)消息加密:
输入:消息M,一个n×l的访问矩阵A,将矩阵A的行映射到属性的函数ρ,系统及授权者的公共参数
输出:密文CT
算法描述:
消息加密算法选择一个随机s∈ZN和一个随机向量s为v的第一个数。令λx表示Ax·v,Ax为A的第x行。然后选择一个随机的第一个数为0的向量令ωx表示Ax·ω。对A的每一行Ax,选择一个随机数rx∈ZN,计算密文CT为:
C0=Me(g1,g1)s,
(3)解密密钥生成算法:
输入:内容申请者j公钥和属性k,系统和授权者的公共参数,授权者的秘密参数
输出:申请者j的解密密钥
算法描述:
内容申请者j向授权者i申请属性k的解密密钥,授权者计算解密密钥。对于原算法的解密密钥表达式中所有以g1为底数的部分,用替代g1到原算法中的解密密钥表达式中进行计算,结果表现为αj被增加为g1的指数的一个乘数,具体为:
授权者将解密密钥发送给内容申请者。
(4)消息解密算法
输入:密文,内容申请者的解密密钥Kj,系统和授权者的公共参数;
输出:消息M;
算法描述:
此消息解密算法包含准备阶段,解密过程分为第1阶段和第2阶段。
准备阶段:内容申请者j使用自己的私钥对密文CT中的C1,x进行计算得到:
第1阶段:
内容申请者可选择是否将第1阶段的计算外包给第三方。如果内容申请者选择将第1阶段的计算外包给第三方,则第三方通过网络获取密文CT。内容申请者将解密密钥发送给第三方。第三方使用内容申请者的解密密钥进行第1阶段的解密计算,生成中间结果,并把中间结果发送给内容申请者。如果内容申请者不选择将第1阶段的计算外包给第三方,则内容申请者通过网络获取密文CT,使用解密密钥,完成第1阶段的计算。
具体的计算过程为:
对每个属性x,计算:
然后选择常量cx∈ZN使得∑xcxAx=(1,0,...,0),并计算:
如果该第1阶段为第三方计算,则第三方计算出中间结果并发送给内容申请者。
第2阶段:内容申请者使用自己的私钥计算:
实现SK-CP-ABE系统:
SK-CP-ABE系统的ABE功能模块运行的设备可包含服务器,台式机或智能移动终端,或其它能运行ABE功能模块的任意计算设备;
SK-CP-ABE系统的ABE功能模块可用软件或硬件实现,或混合实现。
SK-CP-ABE系统包含除ABE功能模块外的其它必要的功能模块。
SK-CP-ABE系统可用于各种需要数据加密和访问控制的应用中。
SK-CP-ABE系统可与其它一个或多个信息系统结合,或者作为其它更大信息系统的一部分。
Claims (6)
1.一种生成安全解密密钥的CP-ABE方法,其步骤为:
1)授权者根据安全参数建立自己的公开/秘密参数,同时内容申请者建立自己的公私钥及其它公开/秘密参数;
2)内容拥有者利用该授权者的公钥公开参数,使用CP-ABE算法,对消息M进行加密,得到密文CT;
3)该内容申请者向该授权者申请解密密钥,该授权者根据该内容申请者的属性生成解密密钥,生成解密密钥过程中,将该内容申请者的公钥信息嵌入到解密密钥中,然后将解密密钥发送给该内容申请者;
4)该内容申请者获取该消息M的密文CT后,用自己的私钥和解密密钥对该密文CT进行解密,得到该消息M;
其中,生成解密密钥过程中,将该内容申请者的公钥信息嵌入到解密密钥中,具体的方法为:如果消息加密算法采用基于线性秘密共享方案的访问控制结构,则生成的表达式中所有以g为底数的部分,αj必表现为g的指数的一个乘数,即以g为底数的部分为Z表示指数的其余部分;生成的计算过程为:以为底数,Z为指数进行运算,其中,是一个基于椭圆曲线的乘法循环群,其阶为p,生成元为g,αj为内容申请者的私钥,对应的公钥为。
2.如权利要求1所述的方法,其特征在于生成解密密钥过程中,将该内容申请者的公钥信息嵌入到解密密钥中,具体的方法为:如果消息加密算法采用基于树的访问控制结构,则以为底数,(α+r)·Y为指数进行运算,生成表达式结果为其中,α为授权者的秘密参数,Y表示指数的其余部分,r为针对该解密密钥生成而产生的随机秘密数;或者以为底数,Z为指数进行运算,Z表示指数的其余部分,同时Z中包含r;其中,是一个基于椭圆曲线的乘法循环群,其阶为p,生成元为g,αj为内容申请者的私钥,对应的公钥为。
3.如权利要求1或2所述的方法,其特征在于该内容申请者从所述椭圆曲线上随机选取的一个随机密钥对作为自己的公私钥对。
4.如权利要求1或2所述的方法,其特征在于所述对该密文CT进行解密的方法为:该内容申请者先用解密密钥对该密文CT进行解密,得到ElGamal形式的中间结果,然后利用自己的私钥,并根据计算需要使用解密密钥的一部分或不使用解密密钥,对该中间结果进行解密,得到该消息M。
5.如权利要求1或2所述的方法,其特征在于所述对该密文CT进行解密的方法为:该内容申请者将解密密钥发送给第三方,第三方对密文CT进行解密计算,生成ElGamal形式的中间结果,并把该中间结果发送给该内容申请者;该内容申请者根据此中间结果,内容申请者使用自己的私钥,并根据计算需要使用解密密钥的一部分或不使用解密密钥,计算生成该消息M。
6.如权利要求1或2所述的方法,其特征在于所述步骤2)中,该密文CT为CP-ABE算法生成的密文;所述步骤4)中,该内容申请者对该密文CT进行解密的方法为:如果密文CT的表达式中,第i项属性还存在有的表达式,且Ci中不包含M;其中,M为消息,e(g,g)为双线性映射函数,X,Y为表达式的其余部分,Xi,Yi分别为第i向属性的密文表达式的其余部分;则将所有Ci修改为C′i:其中如果Yi为空,则该内容申请者将其私钥αj增加为所有Ci中底数e(g,g)的指数的一个乘数即如果Yi不为空,则该内容申请者将其私钥αj增加为所有Ci中底数e(g,g)的指数的一个乘数,并将αj增加为所有底数Yi的指数的一个乘数,即然后,该内容申请者使用自己的解密密钥和私钥αj对上述修改后的密文CT进行计算生成该消息M。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410328522.4A CN104144057B (zh) | 2014-07-10 | 2014-07-10 | 一种生成安全解密密钥的cp‑abe方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410328522.4A CN104144057B (zh) | 2014-07-10 | 2014-07-10 | 一种生成安全解密密钥的cp‑abe方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104144057A CN104144057A (zh) | 2014-11-12 |
CN104144057B true CN104144057B (zh) | 2017-10-31 |
Family
ID=51853129
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410328522.4A Expired - Fee Related CN104144057B (zh) | 2014-07-10 | 2014-07-10 | 一种生成安全解密密钥的cp‑abe方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104144057B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102014105241A1 (de) * | 2013-12-05 | 2015-06-11 | Deutsche Post Ag | Verriegelungseinheit, Gehäuse mit Verriegelungseinheit und Verfahren zum Entriegeln von ein oder mehreren Türen des Gehäuses |
CN104753947A (zh) * | 2015-04-02 | 2015-07-01 | 河海大学 | 一种固定密文长度的可验证外包解密的属性基系统及方法 |
CN107743133B (zh) * | 2017-11-30 | 2020-06-09 | 中国石油大学(北京) | 移动终端及其基于可信安全环境的访问控制方法和系统 |
WO2022187369A1 (en) * | 2021-03-02 | 2022-09-09 | Sri International | Attribute based encryption with bounded collusion resistance |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102523093A (zh) * | 2011-12-16 | 2012-06-27 | 河海大学 | 一种带标签的基于证书密钥封装方法及系统 |
WO2013046102A2 (en) * | 2011-09-28 | 2013-04-04 | Koninklijke Philips Electronics N.V. | Hierarchical attribute-based encryption and decryption |
CN103401839A (zh) * | 2013-07-02 | 2013-11-20 | 河海大学 | 一种基于属性保护的多授权中心加密方法 |
-
2014
- 2014-07-10 CN CN201410328522.4A patent/CN104144057B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013046102A2 (en) * | 2011-09-28 | 2013-04-04 | Koninklijke Philips Electronics N.V. | Hierarchical attribute-based encryption and decryption |
CN102523093A (zh) * | 2011-12-16 | 2012-06-27 | 河海大学 | 一种带标签的基于证书密钥封装方法及系统 |
CN103401839A (zh) * | 2013-07-02 | 2013-11-20 | 河海大学 | 一种基于属性保护的多授权中心加密方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104144057A (zh) | 2014-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Dong et al. | Achieving an effective, scalable and privacy-preserving data sharing service in cloud computing | |
CN104038341B (zh) | 一种基于身份的跨系统代理重加密方法 | |
CN111143471B (zh) | 一种基于区块链的密文检索方法 | |
CN104320393B (zh) | 重加密可控的高效属性基代理重加密方法 | |
CN104158880B (zh) | 一种用户端云数据共享解决方法 | |
CN105763528B (zh) | 一种混合机制下多重接收者匿名的加密装置 | |
CN108494760A (zh) | 一种保护隐私的群智感知真值发现方法 | |
CN105141419B (zh) | 大属性域的属性基签名方法及系统 | |
US10630476B1 (en) | Obtaining keys from broadcasters in supersingular isogeny-based cryptosystems | |
CN104144057B (zh) | 一种生成安全解密密钥的cp‑abe方法 | |
CN104135473A (zh) | 一种由密文策略的属性基加密实现身份基广播加密的方法 | |
CN107086912B (zh) | 一种异构存储系统中的密文转换方法、解密方法及系统 | |
Tu et al. | Fine-grained access control and revocation for sharing data on clouds | |
CN108462575A (zh) | 基于无可信中心门限混合加密的上传数据加密方法 | |
CN111917721A (zh) | 基于区块链的属性加密方法 | |
CN116112244A (zh) | 一种基于区块链和属性基加密的访问控制方法 | |
Shao et al. | Privacy-preserving online/offline and outsourced multi-authority attribute-based encryption | |
Mittal et al. | A quantum secure ID-based cryptographic encryption based on group rings | |
CN114095171A (zh) | 一种基于身份的可穿刺代理重加密方法 | |
Terada et al. | Password-based authenticated key exchange from standard isogeny assumptions | |
CN116319058A (zh) | 一种基于区块链的属性和策略隐藏的访问控制方法 | |
CN104601323B (zh) | 基于bdd解决社会主义百万富翁问题的方法 | |
CN104144056B (zh) | 一种自主授权的cp‑abe系统和方法 | |
CN109359475A (zh) | 一种支持多值属性的密文策略属性基加密方法 | |
CN109561067A (zh) | 基于cp-abe的策略更新方法与系统 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20171031 Termination date: 20210710 |