CN111740988B - 云存储数据加密方法、系统和存储介质 - Google Patents
云存储数据加密方法、系统和存储介质 Download PDFInfo
- Publication number
- CN111740988B CN111740988B CN202010564721.0A CN202010564721A CN111740988B CN 111740988 B CN111740988 B CN 111740988B CN 202010564721 A CN202010564721 A CN 202010564721A CN 111740988 B CN111740988 B CN 111740988B
- Authority
- CN
- China
- Prior art keywords
- user
- node
- attribute
- leaf
- root
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000011217 control strategy Methods 0.000 claims abstract description 16
- 238000004364 calculation method Methods 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 10
- 238000004422 calculation algorithm Methods 0.000 abstract description 24
- 230000006870 function Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 12
- 230000007547 defect Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了云存储数据加密方法、系统和存储介质,加密用户根据基于预先设定的用户访问控制策略构造的用户访问控制树以及可信密钥生成中心初始化生成的公共参数,利用属性加密方式对需加密的数据加密得到加密密文以使得符合用户访问控制树的解密用户根据可信密钥生成中心为其生成的用户私钥对加密密文进行解密。本发明取消了双线性对在基于属性加密体系(ABE)中的使用,可以较大程度地提高基于属性加密算法的效率,满足云存储环境下的高效率要求。
Description
技术领域
本发明属于信息安全技术领域,特别属于云存储数据加密技术领域涉及基于属性加密的云存储数据加密方法和系统。
背景技术
云存储是在云计算概念上延伸和衍生发展出来的一个新概念,它是指通过集群应用、网格技术或分布式文件系统等功能,网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统,保证数据的安全性,并节约存储空间。云存储服务的思路与理念对于无论企业用户还是个人用户都具有吸引力,但是其中的安全问题也引起了用户的担忧。云存储中的数据加密技术是保证云存储中数据安全的关键技术之一。
现有技术虽然能够在一定程度上满足云存储环境中用户访问控制要求,但是此类方法需要进一步实现更加细粒度的用户访问控制,并且加密和解密效率都有待提高。
发明内容
本发明旨在针对现有技术存在的以上不足,提供了云存储数据加密方法和系统,进一步实现了更加细粒度的用户访问控制,并且加密和解密效率都得到提高。
为实现上述技术目的,本发明采用了以下技术方案。
一方面,本发明提供一种云存储数据加密方法,包括以下步骤:
加密用户根据基于预先设定的用户访问控制策略构造的用户访问控制树,以及可信密钥生成中心初始化生成的公共参数,利用属性加密方式对需加密的数据加密得到加密密文以使得符合用户访问控制树的解密用户根据可信密钥生成中心为其生成的用户私钥对加密密文进行解密。
进一步地,可信密钥生成中心初始化公共参数的具体方法包括:
可信密钥生成中心初始化椭圆曲线参数(Fp,p,q,P)以及哈希函数H,其中Fp为特征为p的素数域,p为素数,q为基点P的阶,P为椭圆曲线上的基点,其阶为素数;
可信密钥生成中心选择随机数s∈{1,2,...,q-1}作为系统主私钥MSK,表示为:MSK=s;根据主私钥MSK计算主公钥MPK,计算公式为:MPK=[s]P;
可信密钥生成中心为属性空间S中的每一个属性Ai,随机选择ti∈{1,2,...,q-1},并计算属性i的公钥Ti,计算公式为Ti=[ti]P;
可信密钥生成中心选择两个随机数k1,k2,k1∈{1,2,...,q-1},k2∈{1,2,...,q-1},并计算第一辅助公钥K1,计算公式为:K1=[k1]P,计算第二辅助公钥K2,计算公式为:K2=[k2]P;可信密钥生成中心获得{{t1,t2,...,tn},s,k1,k2};
可信密钥生成中心公开公共参数{P,p,q,{T1,T2,...,Tn},MPK,K1,K2,H},其中{T1,T2,...,Tn}为属性的公钥集,其对应的属性的随机数集为{t1,t2,...,tn};n为属性空间S的属性个数。
再进一步地,可信密钥生成中心为每个用户生成用户私钥的具体方法包括:可信密钥生成中心根据用户属性集合SU中的每一个属性Aj,从属性的随机数集{t1,t2,...,tn}中按顺序确定属性Aj对应的随机数tj,随机选取中间变量其中用户属性集合m为SU中的元素个数,m小于等于n;然后针对每个属性Aj∈SU计算:
可信密钥生成中心为每个解密用户产生用户属性私钥为:
其中U1,U2,...,Um为用户属性的序号。
进一步地,加密用户根据基于预先设定的用户访问控制策略构造的用户访问控制树以及可信密钥生成中心初始化生成的公共参数,利用属性加密方式对需加密的数据加密得到加密密文的具体方法:加密者选择随机数x∈{1,2,...,q-1}并计算C1=[x]P以及 其中M为待加密消息,H为哈希函数,MPK为主公钥;加密用户根据随机数x,计算Y1=[x]K1以及Y2=[x]K2,其中K1为第一辅助公钥,K2为第二辅助公钥然后,令C3={Y1,Y2};获得加密密文CT,表达式如下CT={C1,C2,C3,{C′i}i∈{1,2,...}},其中{C′i}i∈{1,2,...}为访问控制树TREE的叶子节点i对应的密文。
再进一步地,加密用户基于预先设定的用户访问控制策略构造用户访问控制树的具体方法包括:
步骤一:对于根节点root,令Qroot(0)=x,其中x表示加密时所选的随机数;在此基础上构造一个阶为droot=(thrroot-1)∈{1,2,...,q-1}的多项式:其中droot表示多项式Qroot(v)的阶,thrroot表示根节点root的门限值,表示多项式Qroot(v)的系数且均在{1,2,...,q-1}范围内随机选取的;用Qroot(0)表示多项式Qroot(v)在变量v值取0时对应的多项式的值;对于所有非根节点node,用Qnode(v)表示非根节点node对应的多项式,该多项式阶为该节点所对应的门限值减1以及多项式的系数也是在{1,2,...,q-1}范围内随机选取的
步骤二、从根节点root的子节点开始,自上而下层层构造非根节点的多项式,对于非根节点node,应满足Qnode(0)=Qparent(node)(index(node)),
其中parent(node)表示非根节点node的父节点,index(node)表示node节点相对于其父节点的索引;
步骤三、重复步骤二,直到每一个叶子节点的值Qleaf(0)=Qparent(leaf)(index(leaf))被计算出来,其中index(leaf)表示节点leaf在访问控制树中的唯一编号;最后,令叶子节点leaf所对应的多项式Qleaf(v)=Qleaf(0);
再进一步地,符合用户访问控制树的解密用户根据用户私钥对加密密文进行解密的具体方法包括:用户U收到加密密文CT之后,结合自己拥有的属性集合SU,其中用户属性集合m为SU中的元素个数,m小于等于n,n为属性罕间S的属性个数,其中Sl为根据设定的用户访问控制策略确定的访问控制树TREE中所有叶子节点对应的属性集合,i为叶子节点编号,计算第i个叶子节点对应属性解密过程的中间值Ri,计算公式为:对于SU中每个属于Sl的属性属性Ai,计算表达式为:
用户U访问访问控制树,通过拉格朗日插值公式,由与第i个叶子节点leafi同一分支下至少个点得到parent(leafi)节点对应的多项式其中parent(leafi)表示第i个叶子节点leafi的父节点,表示该父节点的门限值;
第二方面,本发明提供了一种云存储数据加密系统,包括:可信密钥生成中心和数据解密模块;
所述可信密钥生成中心,用于初始化生成公共参数以及为每个解密用户生成用户私钥;
所述数据加密模块,用于加密用户基于预先设定的用户访问控制策略构造用户访问控制树以及可信密钥生成中心初始化产生的公共参数,利用属性加密方式对需加密的数据加密得到加密密文,以使得符合用户访问控制树的解密用户根据可信密钥生成中心为其生成的用户私钥对加密密文进行解密。
本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如以上技术方案所提供方法的步骤。
有益技术效果:
本发明将传统的SM2公钥加密算法与基于属性的加密体系(ABE)相结合,解决了SM2等传统的公钥加密算法在云存储环境下存在的诸多问题,包括但不限于证书管理和证书维护、无法应用于细粒度访问控制系统中等。本发明选择了访问控制树这一灵活动态的访问控制结构,在后续维护过程中方便访问控制策略的修改。本发明开创性地取消了双线性对在基于属性加密体系(ABE)中的使用,可以较大程度地提高基于属性加密算法的效率,满足云存储环境下的高效率要求。
附图说明
图1为本发明具体实施例提供的云存储环境整体架构图;
图2为本发明具体实施例提供的云存储数据加密方法数据流向示意图;
图3为本发明具体实施例系统初始化模块流程图;
图4为本发明具体实施例用户密钥生成流程图;
图5为本发明具体实施例数据加密流程图;
图6为本发明具体实施例数据解密模块流程图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
为了更好地理解本发明具体实施例,以下给出符号及定义:p:p为素数。
mod p:模p运算。例如,19mod 7=5。
Fp:特征为p的素数域。
a,b:Fq中的元素,它们定义Fq上的一条椭圆曲线E。
E:椭圆曲线,由上述参数定义。
O:无穷远点。
E(Fp):Fp上椭圆曲线E的所有有理点(包括无穷远点O)组成的集合。
P:椭圆曲线上的一个基点,其阶为素数。
q:基点P的阶。
H:安全的哈希函数。其输入为E(Fp)上有理点的横、纵坐标的拼接,
例如G=(xG,yG)∈E(Fp),则输入xG||yG,输出为任意长度比特串{0,1}*。
MSK:系统主私钥。
MPK:系统主公钥。
USK:用户私钥。
A1,A2,...,An:本专利中用到的属性。
S:属性空间,即全属性集合,包含专利中会涉及到的所有属性{A1,A2,...,An}。
n:属性空间S的属性个数。
U:泛指单个用户。
SU:用户拥有的属性集。
m:SU中的元素个数。
TREE:访问控制树。
root:访问控制树TREE的根节点。
node:泛指访问控制树TREE的非根节点。其关联符号和定义包括:
Qnode(v):节点node对应的多项式;
v:Qnode(v)多项式中的变量;
dnode:节点node对应多项式的次数;
thrnode:节点node对应的门限值,在本实施例中,对于叶子节点其门限值默认为1,非叶子节点的门限值意指“需要满足的子节点的个数”,如门限值为2,即指当且仅当其子节点至少有两个满足要求时,该节点才可以被解密。
parent(node):指节点node的父节点;
index(node):指节点node相对其父节点的索引,从左往右依次为1,2,3,...
leaf:泛指访问控制树TREE的叶子节点,本专利中使用leafi指代具体的叶子节点
Sl:树TREE中所有叶子节点对应的属性集合。
nleaf:访问控制树TREE的非叶子节点。
[u]G:椭圆曲线E中元素G的u倍。
KGC:密钥生成中心。
M:待加密消息。
CT:加密阶段得到的密文。
M′:解密结果。
实施例一、本实施例为克服传统加密方案在云存储环境中的不足,提出云存储数据加密方法,包括以下步骤:可信密钥生成中心初始化公共参数,所述公共参数包括椭圆曲线参数、哈希函数、主公钥、辅助公钥以及属性的公钥集;可信密钥生成中心为每个用户生成用户私钥;
加密用户根据可信密钥生成中心生成公共参数,利用属性加密方式将自己要的数据进行加密得到加密密文并对加密密文进行云存储,所述加密密文包含加密用户根据用户属性设定的用户访问控制树;
解密用户根据自身用户属性对加密密文进行解密。
本实施例中,可信密钥生成中心(KGC)调用该模块对本实施例的主公私钥和其他相关参数进行初始化,具体过程如下(如图3所示):
1.1)KGC产生本专利中使用的椭圆曲线参数(Fp,p,q,P)以及安全的哈希函数H(详见符号及定义)。
1.2)KGC选择随机数s∈{1,2,...,q-1}作为系统主私钥,即MSK=s,并计算系统主公钥MPK=[s]P。
1.3)对于属性空间S的每一个属性Ai,KGC随机选择ti∈{1,2,...,q-1},并计算Ti=[ti]P,Ti即属性属性Ai对应的公钥;
1.4)KGC选择两个随机数k1,k2∈{1,2,...,q-1},并计算K1=[k1]P,K2=[k2]P,K1和K2分别是第一辅助公钥和第二辅助公钥;
1.5)KGC公开公共参数{P,p,q,{T1,T2,...,Tn},MPK,K1,K2,H},秘密保存{{t1,t2,...,tn},s,k1,k2}。
可信密钥生成中心为每个用户生成用户私钥的具体方法包括(如图4所示):
3.2)加密者由上述选择的随机数x,计算Y1=[x]K1以及Y2=[x]K2,然后,令C3={Y1,Y2}。
3.3)在本实施例中,访问控制树TREE的每一个节点均与一个多项式相对应。不失一般性,记访问控制树TREE的非根节点为node,对应多项式为Qnode(v),其对应变量为v,该多项式的阶记为dnode,对应的门限值记为thrnode,且满足dnode=thrnode-1,门限的具体解释见“符号与定义”,跟节点root有相同的性质,不再赘述。
加密者根据该性质和上述选择的随机数x构造对应的访问控制树TREE,具体步骤如下:
3.3.a.对于根节点root,令Qroot(0)=x,在此基础上构造一个满足droot=thrroot-1的多项式Qroot(v)。其中Qroot(v)表示根节点root对应的多项式,阶为droot,thrroot表示根节点root的门限值(门限值由访问控制策略决定),Qroot(0)表示变量v取0时对应的值。门限值是划分用户能否满足该节点访问条件的分界点。
门限值取值范围:对于叶子节点,他的门限值为1,对于非叶子节点,它的门限值在[1,...,number]之间,这里number表示该节点拥有的孩子数量。意义:到用户拥有该节点孩子的个数超过这个门限值,则用户拥有该节点。
3.3.b.从根节点root的子节点开始,自上而下层层构造非根节点的多项式,对于非根节点node,应满足Qnode(0)=Qparent(node)(index(node)),然后在此要求下构造一个满足门限要求的多项式。其中parent(node)表示非根节点node的父节点,index(node)表示node节点相对于其父节点的索引。
Qnode(0)表示一个多项式的值,这个值是多项式Q(v)在v=0时的值。Q表示一个如f(x)=x^3+2x^2+1的多项式。
parent(node)表示一个节点,那么Qparent(node)表示该节点所对应的多项式。3.3.c.重复步骤3.3.b.直到每一个叶子节点的值Qleaf(0)=Qparent(leaf)(index(leaf))被计算出来,由于叶子节点的门限值为1(见符号与定义的解释),常数项Qleaf(0)的值即为叶子节点对应“多项式”的值。在构建每个访问控制树的时候,会为每个节点构造一个多项式(如f(x)=x^2+1,)这里用的是Q(v),他和常见的多项式表示f(x)一样,v表示变量。Q(0)表示该多项式在变量为0时的多项式值,也就是通常说的常数项。
3.5)加密者产生密文CT={C1,C2,C3,{C′i}i∈{1,2,...}},并广播于该系统的所有用户。
本实施例中,其解密具体过程描述如下(如图6所示):
可以证明:
4.3)由于用户U满足访问控制树TREE的门限要求,通过拉格朗日插值公式,可以由与叶子节点leafi同一分支下至少个点得到parent(leafi)节点对应的多项式其中parent(leafi)表示叶子节点leafi的父节点,表示该父节点的门限值。
4.4)由4.3)中拉格朗日插值公式的使用,自下而上层层推进,最终可以计算得到与根节点相关的中间值其中,Δi表示拉格朗日插值系数,然后计算解密结果该算法的正确行可以做如下证明: 故该解密结果可以证明是正确的。
SM2椭圆曲线公钥密码算法是由国家密码管理局发布的公钥密码算法(参见“GM/T0003-2012 SM2公钥密码算法”标准,国家密码管理局,2012年10月),算法包括数据加密、数字签名、密钥交换等算法和协议。其中,SM2公钥加密算法作为商用的公钥加密算法,具有高效性、强安全性等特点,可被广泛用于邮件传输、数据传输等领域。SM2公钥加密算法包括系统初始化算法(SM2_Setup)、加密算法(SM2_Enc)和解密算法(SM2_Dec)。然而,由于SM2加密算法是基于PKI框架设计的密码系统,需要证书授权中心(CA)维护管理用户公钥证书,主要包括证书的颁发、撤销等。证书的管理开销随着用户数量增加而成线性增长,因此,在云计算、大数据等多用户环境下,高昂的证书管理开销将限制SM2公钥密码算法的使用,更无法满足多用户环境下细粒度访问控制的要求。由于SM2加密算法中没有应用到双线性对计算,将该算法应用到属性加密方案中,可以极大提高属性加密和解密效率,更适合在云存储环境中得到应用。因此,本发明将传统SM2加密算法与基于属性加密体制相结合,提出一种云存储环境中基于SM2的属性加密方案实现云存储的数据加密方法,可极大满足云存储环境对于细粒度访问控制和高效率的要求。
实施例二、本实施例提供一种云存储数据加密方法,包括以下步骤:加密用户根据基于预先设定的用户访问控制策略构造的用户访问控制树以及可信密钥生成中心初始化生成的公共参数,利用属性加密方式对需加密的数据加密得到加密密文以使得符合用户访问控制树的解密用户根据可信密钥生成中心为其生成的用户私钥对加密密文进行解密。
本实施例中,可信密钥生成中心初始化椭圆曲线参数(Fp,p,q,P)以及哈希函数H,其中Fp为特征为p的素数域,p为素数,q为基点P的阶,P为椭圆曲线上的基点,其阶为素数;
可信密钥生成中心选择随机数s∈{1,2,...,q-1}作为系统主私钥MSK,表示为:MSK=s;根据主私钥MSK计算主公钥MPK,计算公式为:MPK=[s]P;
可信密钥生成中心对于属性空间S的每一个属性Ai,随机选择ti∈{1,2,...,q-1},并计算属性i的公钥Ti,计算公式为Ti=[ti]P;
可信密钥生成中心选择两个随机数k1,k2∈{1,2,...,q-1},并计算第一辅助公钥K1,计算公式为:K1=[k1]P,计算第二辅助公钥K2,计算公式为:K2=[k2]P;
可信密钥生成中心公开公共参数{P,p,q,{T1,T2,...,Tn},MPK,K1,K2,H},其中{T1,T2,...,Tn}为属性的公钥集,其对应的属性的随机数集为{t1,t2,...,tn};n为属性空间S的属性个数。
可选地,本实施例中可信密钥生成中心为每个解密用户生成用户私钥的具体方法包括:
可信密钥生成中心根据用户属性集合SU中的每一个属性Aj,从属性的随机数集{t1,t2,...,tn}中按顺序确定属性Aj对应的随机数tj,随机选取中间变量其中用户属性集合m为SU中的元素个数,m小于等于n;然后,针对每个属性Aj∈SU计算:
可信密钥生成中心为每个解密用户产生用户属性私钥
其中U1,U2,...,Um为用户属性的序号。
加密用户根据基于预先设定的用户访问控制策略构造的用户访问控制树以及可信密钥生成中心初始化生成的公共参数,利用属性加密方式对需加密的数据加密得到加密密文的具体方法如下:
加密用户根据随机数x,计算Y1=[x]K1以及Y2=[x]K2,其中K1、K2都为辅助公钥,然后,令C3={Y1,Y2};获得加密密文CT,表达式如下CT={C1,C2,C3,{C′i}i∈{1,2,...}},其中{C′i}i∈{1,2,...}为用户访问控制树TREE的叶子节点i对应的密文。
加密用户基于预先设定的用户访问控制策略构造用户访问控制树的具体方法包括:
步骤一:对于根节点root,令Qroot(0)=x,其中x表示加密时所选的随机数;在此基础上构造一个阶为droot=(thrroot-1)∈{1,2,...,q-1}的多项式:其中droot表示多项式Qroot(v)的阶,thrroot表示根节点root的门限值,表示多项式Qroot(v)的系数且均在{1,2,...,q-1}范围内随机选取的;用Qroot(0)表示多项式Qroot(v)在变量v值取0时对应的多项式的值;对于所有非根节点node,用Qnode(v)表示非根节点node对应的多项式,该多项式阶为该节点所对应的门限值减1以及多项式的系数也是在{1,2,...,q-1}范围内随机选取的
步骤二、从根节点root的子节点开始,自上而下层层构造非根节点的多项式,对于非根节点node,应满足Qnode(0)=Qparent(node)(index(node)),
其中parent(node)表示非根节点node的父节点,index(node)表示node节点相对于其父节点的索引;
步骤三、重复步骤二,直到每一个叶子节点的值Qleaf(0)=Qparent(leaf)(index(leaf))被计算出来,其中index(leaf)表示节点leaf在访问控制树中的唯一编号;最后,令叶子节点leaf所对应的多项式Qleaf(v)=Qleaf(0);
可选地,符合用户访问控制树的解密用户根据用户私钥对加密密文进行解密的具体方法包括:用户U收到加密密文CT之后,结合自已拥有的属性集合SU,其中用户属性集合m为SU中的元素个数,m小于等于n,n为属性空间S的属性个数,其中Sl为根据设定的用户访问控制策略确定的访问控制树TREE中所有叶子节点对应的属性集合,i为叶子节点编号,计算第i个叶子节点对应属性解密过程的中间值Ri,计算公式为:对于SU中每个属于Sl的属性属性Ai,计算表达式为:
用户U访问访问控制树,通过拉格朗日插值公式,由与第i个叶子节点leafi同一分支下至少个点得到parent(leafi)节点对应的多项式其中parent(leafi)表示第i个叶子节点leafi的父节点,表示该父节点的门限值;
实施例三、与实施例一提供的一种云存储数据加密方法相对应地,本实施例提供了一种云存储数据加密系统,如图1所示包括:系统初始化模块、用户密钥生成模块、数据加密模块和数据解密模块;
所述系统初始化模块,用于可信密钥生成中心初始化公共参数,所述公共参数包括椭圆曲线参数、哈希函数、主公钥、辅助公钥以及属性的公钥集;
所述用户密钥生成模块,用于可信密钥生成中心为每个解密用户生成用户私钥;;
所述数据加密模块,用于加密用户基于预先设定的用户访问控制策略构造用户访问控制树;加密用户根据可信密钥生成中心产生公共参数以及用户访问控制树,利用属性加密方式对需加密的数据加密得到加密密文;
所述数据解密模块,用于符合用户访问控制树的解密用户根据用户私钥对加密密文进行解密。
本实施例提供的一种云存储数据加密系统是基于三方的云存储数据加密系统,包括用户方(充当数据加密者和数据解密者),云存储服务提供商和可信密钥生成中心(KGC)。在本实施例三方模型中,每个用户都拥有相应的属性集,KGC首先生成系统主公私钥后根据每个解密用户的属性集生成用户私钥;加密用户将自己要存储的数据利用属性加密方式加密后上传到云存储服务器上,加密密文隐含着用户访问控制信息,规定了拥有哪些属性的用户才可以解密访问该数据;云存储服务提供商负责存储对应数据供其他用户访问;
需要访问数据的用户将作为解密者,如果用户拥有的属性符合访问控制策略,则可以成功解密访问数据,否则无法成功解密访问。
本实施例中,更具体地,本实施例涉及的基于三方的云存储数据加密系统(本实施例数据流向示意图如图2所示)可以描述如下:
1)KGC生成属性加密模型中的主公钥、主私钥(对应发明内容中的系统初始化阶段),并根据用户的属性集,为各解密用户生成对应的用户私钥(对应发明内容中的可信密钥生成中心为每个解密用户生成用户私钥);
2)用户需要存储数据时,生成随机数并以该随机数作为秘密值构造访问控制树,利用属性加密方案加密需要存储的数据并将访问控制树相关信息嵌入到密文中;完成加密阶段后,将密文上传至云存储服务器上进行存储(对应数据加密阶段);
3)云存储服务提供商维护云存储服务器,接收用户上传的存储密文并进行保存;
4)需要其他用户数据的用户将作为解密者,解密者首先从云存储服务器中下载其他用户上传的加密数据,如果解密者用户的属性集符合加密密文中的访问控制要求,解密者可以利用符合用户访问控制树的解密用户根据用户私钥对密文进行解密;否则解密者无法成功解密密文(对应数据解密阶段)。
本实施例包含四个模块(其具体架构见图1):系统初始化(Setup)模块、用户密钥生成(KeyGen)模块、数据加密(Encryption)模块、数据解密(Decryption)模块。在本发明内容中,除了部分随机生成数和中间结果,其他符号和定义均在“符号和定义”部分中给出,下面不再重复说明。
1.系统初始化(Setup)模块(执行方法如图3所示)
可信密钥生成中心(KGC)调用该模块对本实施例的主公私钥和其他相关参数进行初始化,具体过程如下:
1.1)KGC产生本专利中使用的椭圆曲线参数(Fp,p,q,P)以及安全的哈希函数H(详见符号及定义)。
1.2)KGC选择随机数s∈{1,2,...,q-1}作为系统主私钥,即MSK=s,并计算系统主公钥MPK=[s]P。
1.3)对于属性空间S的每一个属性Ai,KGC随机选择ti∈{1,2,...,q-1},并计算属性Ai对应的公钥Ti,Ti=[ti]P。
1.4)KGC选择两个随机数k1,k2∈{1,2,...,q-1},并计算辅助公钥K1,K1=[k1]P,辅助公钥K2,K2=[k2]P。
1.5)KGC公开公共参数{P,p,q,{T1,T2,...,Tn},MPK,K1,K2,H},秘密保存{{t1,t2,...,tn},s,k1,k2}。
2.用户密钥生成(KeyGen)模块(执行方法如图4所示)
3.数据加密(Encryption)模块(执行方法如图5所示)
用户上传存储数据之前需要调用的模块,将用户即将上传的数据进行属性加密,在加密完成后用户可将数据上传至云存储服务器进行存储,具体阐述如下:
3.2)加密者由上述选择的随机数x,计算Y1=[x]K1以及Y2=[x]K2,然后,令C3={Y1,Y2}。
3.3)在本实施例中,访问控制树TREE的每一个节点均与一个多项式相对应。不失一般性,记访问控制树TREE的非根节点为node,对应多项式为Qnode(v),其对应变量为v,该多项式的阶记为dnode,对应的门限值记为thrnode,且满足dnode=thrnode-1,门限的具体解释见“符号与定义”,跟节点root有相同的性质,不再赘述。
加密者根据该性质和上述选择的随机数x构造对应的访问控制树TREE,具体步骤如下:
3.3.a.对于根节点root,令Qroot(0)=x,在此基础上构造一个满足droot=thrroot-1的多项式Qroot(v)。其中Qroot(v)表示根节点root对应的多项式,阶为droot,thrroot表示根节点root的门限值,Qroot(0)表示变量v取0时对应的值。
3.3.b.从根节点root的子节点开始,自上而下层层构造非根节点的多项式,对于非根节点node,应满足Qnode(0)=Qparent(node)(index(node)),然后在此要求下构造一个满足门限要求的多项式。其中parent(node)表示非根节点node的父节点,index(node)表示node节点相对于其父节点的索引。
3.3.c.重复步骤3.3.b.直到每一个叶子节点的值Qleaf(0)=Qparent(leaf)(index(leaf))被计算出来,由于叶子节点的门限值为1(见符号与定义的解释),常数项Qleaf(0)的值即为叶子节点对应“多项式”的值。
3.5)加密者产生密文CT={C1,C2,C3,{C′i}i∈{1,2,...}},并广播于该系统的所有用户。
4.数据解密(Decryption)模块(执行方法如图6所示)
用户需要访问其他用户数据时调用的模块,用户首先在云存储服务器中下载对应加密密文,然后调用该模块尝试解密访问。对于每个用户U,其拥有的属性集合SU中若满足访问控制树TREE叶子节点中的属性对应,则用户U可以解密出密文分量C′i;若其拥有的属性集合满足访问控制树TREE的所有门限要求,则用户U可以根据解出的多个密文分量和拉格朗日插值公式,自下而上推出与根节点初值Qroot(0)相关的中间结果[Qroot(0)]MPK,进而得出解密结果M′。不妨假设用户U拥有满足访问控制树TREE的门限要求的属性集合,其解密具体过程描述如下:
可以证明:
4.3)由于用户U满足访问控制树TREE的门限要求,通过拉格朗日插值公式,可以由与叶子节点leafi同一分支下至少个点得到parent(leafi)节点对应的多项式其中parent(leafi)表示叶子节点leafi的父节点,表示该父节点的门限值。
4.4)由4.3)中拉格朗日插值公式的使用,自下而上层层推进,最终可以计算得到与根节点相关的中间值其中,Δi表示拉格朗日插值系数,然后计算解密结果该算法的正确行可以做如下证明: 故该解密结果可以证明是正确的。
实施例四、基于以上实施例,本实施例提供了一种云存储数据加密系统,包括:可信密钥生成中心和数据加密模块;
所述可信密钥生成中心,用于初始化生成公共参数以及为每个解密用户生成用户私钥;
所述数据加密模块,用于加密用户基于预先设定的用户访问控制策略构造用户访问控制树以及可信密钥生成中心初始化产生的公共参数,利用属性加密方式对需加密的数据加密得到加密密文,可选地将加密密文上传云服务器进行存储以使得符合用户访问控制树的解密用户根据可信密钥生成中心为其生成的用户私钥对加密密文进行解密。
本发明克服了传统加密方案在云存储环境中的不足,开创性地将传统SM2加密算法与基于属性加密体制相结合,在保留传统SM2加密算法优势的同时,弥补其在证书管理维护和访问策略上存在的不足,以满足云存储环境中对于细粒度访问控制、高效率等要求。同时,本发明开创性地取消了双线性对在密文策略的属性加密体系(CP-ABE)中的使用,可以较大程度地提高基于属性加密算法的效率。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
Claims (8)
1.一种云存储数据加密方法,其特征在于,包括以下步骤:
加密用户根据基于预先设定的用户访问控制策略构造的用户访问控制树,以及可信密钥生成中心初始化生成的公共参数,利用属性加密方式对需加密的数据加密得到加密密文以使得符合用户访问控制树的解密用户根据可信密钥生成中心为其生成的用户私钥对加密密文进行解密;
利用属性加密方式对需加密的数据加密得到加密密文的具体方法如下:
加密用户根据随机数x,计算Y1=[x]K1以及Y2=[x]K2,其中K1、K2都为辅助公钥,然后,令C3={Y1,Y2};获得加密密文CT,表达式如下CT={C1,C2,C3,{C′i}i∈{1,2,...}},
其中{C′i}i∈{1,2,...}为用户访问控制树TREE的叶子节点i对应的密文。
2.根据权利要求1所述的一种云存储数据加密方法,其特征在于,还包括可信密钥生成中心初始化生成公共参数,具体包括以下步骤:
可信密钥生成中心初始化椭圆曲线参数(Fp,p,q,P)以及哈希函数H,其中Fp为特征为p的素数域,p为素数,q为基点P的阶,P为椭圆曲线上的基点,其阶为素数;
可信密钥生成中心选择随机数s,∈{1,2,...,q-1}作为系统主私钥MSK,表示为:MSK=s;根据主私钥MSK计算主公钥MPK,计算公式为:MPK=[s]P;
可信密钥生成中心对于属性空间S的每一个属性Ai,随机选择ti∈{1,2,...,q-1},并计算属性Ai的公钥Ti,计算公式为Ti=[ti]P;
可信密钥生成中心选择两个随机数k1,k2∈{1,2,...,q-1},并计算第一辅助公钥K1,计算公式为:K1=[k1]P,计算第二辅助公钥K2,计算公式为:K2=[k2]P;
可信密钥生成中心公开公共参数
{P,p,q,{T1,T2,...,Tn},MPK,K1,K2,H},其中{T1,T2,...,Tn}为属性的公钥集,其对应的属性的随机数集为{t1,t2,...,tn};n为属性空间S的属性个数。
4.根据权利要求1所述的一种云存储数据加密方法,其特征在于,加密用户基于预先设定的用户访问控制策略构造用户访问控制树的具体方法包括:
步骤一:对于根节点root,令Qroot(0)=x,其中x表示加密时所选的随机数;在此基础上构造一个阶为droot=(thrroot-1)∈{1,2,...,q-1}的多项式:其中droot表示多项式Qroot(v)的阶,thrroot表示根节点root的门限值,表示多项式Qroot(v)的系数且均在{1,2,...,q-1}范围内随机选取的;用Qroot(0)表示多项式Qroot(v)在变量v值取0时对应的多项式的值;对于所有非根节点node,用Qnode(v)表示非根节点node对应的多项式,该多项式阶为该节点所对应的门限值减1以及多项式的系数也是在{1,2,...,q-1}范围内随机选取的;
步骤二、从根节点root的子节点开始,自上而下层层构造非根节点的多项式,对于非根节点node,应满足Qnode(0)=Qparent(node)(index(node)),
其中parent(node)表示非根节点node的父节点,index(node)表示node节点相对于其父节点的索引;
步骤三、重复步骤二,直到每一个叶子节点的值Qleaf(0)=Qparent(leaf)(index(leaf))被计算出来,其中index(leaf)表示节点leaf在访问控制树中的唯一编号;最后,令叶子节点leaf所对应的多项式Qleaf(v)=Qleaf(0);
parent(leaf)表示叶子节点leaf的父节点;Qparent(leaf)()表示叶子节点leaf的父节点对应的多项式。
5.根据权利要求4所述的一种云存储数据加密方法,其特征在于,
符合用户访问控制树的解密用户根据用户私钥对加密密文进行解密的具体方法包括:用户U收到加密密文CT之后,结合自己拥有的属性集合SU,其中用户属性集合m为SU中的元素个数,m小于等于n,n为属性空间S的属性个数,其中Sl为根据设定的用户访问控制策略确定的访问控制树TREE中所有叶子节点对应的属性集合,i为叶子节点编号,计算第i个叶子节点对应属性解密过程的中间值Ri,计算公式为:对于SU中每个属于Sl的属性属性Ai,计算表达式为:
用户U访问访问控制树,通过拉格朗日插值公式,由与第i个叶子节点leafi同一分支下至少个点得到parent(leafi)节点对应的多项式其中parent(leafi)表示第i个叶子节点leafi的父节点,表示该父节点的门限值;
6.一种云存储数据加密系统,其特征在于,包括:可信密钥生成中心和数据加密模块;
所述可信密钥生成中心,用于初始化生成公共参数以及为每个解密用户生成用户私钥;
所述数据加密模块,用于加密用户基于预先设定的用户访问控制策略构造用户访问控制树以及可信密钥生成中心初始化产生的公共参数,利用属性加密方式对需加密的数据加密得到加密密文,以使得符合用户访问控制树的解密用户根据可信密钥生成中心为其生成的用户私钥对加密密文进行解密;
所述数据加密模块利用属性加密方式对需加密的数据加密得到加密密的具体方法如下:
加密用户根据随机数x,计算Y1=[x]K1以及Y2=[x]K2,其中K1、K2都为辅助公钥,然后,令C3={Y1,Y2};获得加密密文CT,表达式如下CT={C1,C2,C3,{C′i}i∈{1,2,...}},
其中{C′i}i∈{1,2,...}为用户访问控制树TREE的叶子节点i对应的密文。
7.根据权利要求6所述的一种云存储数据加密系统,其特征在于,所述可信密钥生成中心初始化生成公共参数的具体方法包括:初始化椭圆曲线参数(Fp,p,q,P)以及哈希函数H,其中Fp为特征为p的素数域,p为素数,q为基点P的阶,P为椭圆曲线上的基点,其阶为素数;
可信密钥生成中心选择随机数s∈{1,2,...,q-1}作为系统主私钥MSK,表示为:MSK=s;根据主私钥MSK计算主公钥MPK,计算公式为:MPK=[s]P;
可信密钥生成中心对于属性空间S的每一个属性Ai,随机选择ti∈{1,2,...,q-1},并计算属性Ai的公钥Ti,计算公式为Ti=[ti]P;
可信密钥生成中心选择两个随机数k1,k2∈{1,2,...,q-1},并计算第一辅助公钥K1,计算公式为:K1=[k1]P,计算第二辅助公钥K2,计算公式为:K2=[k2]P;
可信密钥生成中心公开公共参数{P,p,q,{T1,T2,...,Tn},MPK,K1,K2,H},其中{T1,T2,...,Tn}为属性的公钥集,其对应的属性的随机数集为{t1,t2,...,tn};n为属性空间S的属性个数。
8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1~5任意一项权利要求所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010564721.0A CN111740988B (zh) | 2020-06-19 | 2020-06-19 | 云存储数据加密方法、系统和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010564721.0A CN111740988B (zh) | 2020-06-19 | 2020-06-19 | 云存储数据加密方法、系统和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111740988A CN111740988A (zh) | 2020-10-02 |
CN111740988B true CN111740988B (zh) | 2021-09-10 |
Family
ID=72650272
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010564721.0A Active CN111740988B (zh) | 2020-06-19 | 2020-06-19 | 云存储数据加密方法、系统和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111740988B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113225302B (zh) * | 2021-01-27 | 2022-06-24 | 暨南大学 | 一种基于代理重加密的数据共享系统及方法 |
CN112929153B (zh) * | 2021-02-23 | 2022-07-22 | 上海麟羿信息科技有限公司 | 基于完全同态加密的数据多级加密系统及方法 |
CN112994880B (zh) * | 2021-03-19 | 2022-11-01 | 深圳大学 | 一种密文策略属性基加密方法、装置及电子设备 |
CN114510734B (zh) * | 2022-02-22 | 2023-10-20 | 光大科技有限公司 | 数据访问控制方法、装置及计算机可读存储介质 |
CN115348017B (zh) * | 2022-10-18 | 2023-02-07 | 阿里巴巴(中国)有限公司 | 密文处理方法以及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111106936A (zh) * | 2019-11-27 | 2020-05-05 | 国家电网有限公司 | 一种基于sm9的属性加密方法与系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10219157B1 (en) * | 2016-10-05 | 2019-02-26 | Symantec Corporation | Secure verified attribute exchange between parties in physical proximity |
CN108449174B (zh) * | 2018-02-09 | 2021-07-30 | 孔泽一 | 云计算应用中智能终端的可撤销加密方法及装置 |
CN108900483B (zh) * | 2018-06-13 | 2021-02-09 | 江苏物联网研究发展中心 | 云存储细粒度访问控制方法、数据上传和数据访问方法 |
CN110519041B (zh) * | 2019-07-29 | 2021-09-03 | 同济大学 | 一种基于sm9标识加密的属性基加密方法 |
CN111064564B (zh) * | 2019-12-31 | 2023-03-28 | 武汉理工大学 | 一种sm9签名私钥生成和数字签名方法及系统和装置 |
CN111130757B (zh) * | 2019-12-31 | 2020-12-25 | 华中科技大学 | 一种基于区块链的多云cp-abe访问控制方法 |
-
2020
- 2020-06-19 CN CN202010564721.0A patent/CN111740988B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111106936A (zh) * | 2019-11-27 | 2020-05-05 | 国家电网有限公司 | 一种基于sm9的属性加密方法与系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111740988A (zh) | 2020-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111740988B (zh) | 云存储数据加密方法、系统和存储介质 | |
CN111106936B (zh) | 一种基于sm9的属性加密方法与系统 | |
Xu et al. | Secure fine-grained access control and data sharing for dynamic groups in the cloud | |
Guo et al. | TABE-DAC: Efficient traceable attribute-based encryption scheme with dynamic access control based on blockchain | |
WO2019101134A1 (zh) | 一种多分布式的sm9解密方法与介质及密钥生成方法 | |
CN108200181B (zh) | 一种面向云存储的可撤销属性基加密系统及方法 | |
CN110247767B (zh) | 雾计算中可撤销的属性基外包加密方法 | |
CN110602086B (zh) | 雾计算中可撤销和外包的多授权中心属性基加密方法 | |
CN109768863A (zh) | 一种基于椭圆曲线的区块链密钥共享和动态更新方法 | |
Ming et al. | Efficient revocable multi-authority attribute-based encryption for cloud storage | |
Islam et al. | Attribute-based encryption scheme for secure multi-group data sharing in cloud | |
CN112733177B (zh) | 基于全域哈希的层次标识密码加密方法 | |
Zhang et al. | Feacs: A flexible and efficient access control scheme for cloud computing | |
Hoang et al. | Forward-secure data outsourcing based on revocable attribute-based encryption | |
CN116112244A (zh) | 一种基于区块链和属性基加密的访问控制方法 | |
CN113904768A (zh) | 基于sm9密钥封装机制的在线离线解密方法 | |
CN113194089B (zh) | 一种支持属性撤销的密文策略基于属性加密方法 | |
CN109359475B (zh) | 一种支持多值属性的密文策略属性基加密方法 | |
CN114157424B (zh) | 无密钥托管且支持用户撤销的属性基加密系统及方法 | |
CN102347835A (zh) | 更新私钥的方法及设备、获得会话密钥的方法和通信设备 | |
CN110098926B (zh) | 一种属性撤销方法 | |
CN111431711B (zh) | 一种固定秘钥长度的轻量级cpabe方法 | |
Ge et al. | A secure fine-grained micro-video subscribing system in cloud computing | |
CN111641501B (zh) | 一种去双线性对的属性加密方法 | |
WO2021062517A1 (en) | Broadcasting in supersingular isogeny-based cryptosystems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |