一种具有策略隐藏功能的密文加密方法、系统及存储介质与流程

文档序号:16246038发布日期:2018-12-11 23:35阅读:244来源:国知局
一种具有策略隐藏功能的密文加密方法、系统及存储介质与流程

本申请涉及计算机技术领域,尤其涉及一种具有策略隐藏功能的密文加密方法、系统及存储介质。

背景技术

云计算在当下的大数据领域扮演了一个至关重要的角色,数据拥有者都希望将自己的数据外包给云服务供应商,这样无论是数据消费者还是数据拥有者都能够随时随地地访问他们所需要的数据。但是,云服务并不是完全可靠的。这就意味着云服务供应商除了为用户提供相应的云服务之外,它还会获取用户的个人隐私信息。然而,以往的一些访问控制方案并不能很好的适应云环境的要求,因此模糊的基于身份的加密方案(fuzzyidentity-basedencryption)被提出,同时我们也可以称它为基于属性的加密方案(attribute-basedencryption,以下简称abe)。在abe的基础上通过将策略引入到密钥或密文中,使得abe发展为密钥策略属性加密方案(kp-abe)和密文策略属性加密方案(cp-abe)。

在cp-abe中数据拥有者可以根据外包数据的内容来规定一个合适的访问策略,而数据消费者只有在满足加密数据中的访问策略时,才能对密文进行解密。

但是cp-abe存在一个很严重的问题,在cp-abe中加密数据是由访问策略和密文两部分构成。而访问策略是没有经过加密的,这就意味着,攻击者可以通过访问策略间接推测出数据消费者和数据拥有者的隐私信息。



技术实现要素:

本申请提供了一种具有策略隐藏功能的密文加密方法、系统及存储介质,旨在解决访问策略带来的安全隐患,提高云计算环境中用户的隐私安全。

第一方面,本申请提供了一种具有策略隐藏功能的密文加密方法,其包括:

第一服务器收到第一终端的请求后生成系统公共参数和主密钥,并将所述系统公共参数发送至所述第一终端;

所述第一终端通过预设规则对外包数据进行加密得到加密结果,并将所述加密结果发送给第二服务器;

第二终端根据需要向所述第二服务器请求第二目标加密数据,并获取所述第一服务器内对应所述第二终端的用户私钥;

所述第二终端根据所述用户私钥对所述目标加密数据进行解密,获取所述目标加密数据对应的明文。

第二方面,本申请还提供了一种密文策略属性加密系统,包括至少四台计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现本申请提供的任意一项所述具有策略隐藏功能的密文加密方法的步骤。

第三方面,本申请还提供了一种存储介质,其中所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行本申请提供的任意实施例所述的具有策略隐藏功能的密文加密方法的步骤。

本申请实施例提供了具有策略隐藏功能的密文加密方法、系统及存储介质,通过第一服务器收到第一终端的请求后生成系统公共参数和主密钥,并将系统公共参数发送至第一终端,第一终端通过预设规则对外包数据进行加密得到加密结果,并将加密结果发送给第二服务器,第二终端根据需要向第二服务器请求第二目标加密数据,并获取第一服务器内对应第二终端的用户私钥,第二终端根据用户私钥对目标加密数据进行解密,获取目标加密数据对应的明文。从而使得四方的交互运作能够解决访问策略带来的安全隐患,并提高云计算环境中用户的隐私安全。

附图说明

为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请一实施例提供的一种具有策略隐藏功能的密文加密系统模型示意图;

图2是本申请一实施例提供的一种具有策略隐藏功能的密文加密方法的示意流程图;

图3是本申请一实施例提供的一种具有策略隐藏功能的密文加密方法的布谷鸟过滤器的结构示意图;

图4是本申请一实施例提供的一种具有策略隐藏功能的密文加密方法的需要插入到布谷鸟过滤器中的元素结构图;

图5是本申请一实施例提供的一种计算机设备的示意性框图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。

还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

本申请实施例提供了一种具有策略隐藏功能的密文加密方法、系统和存储介质。

为了便于理解,先对本申请实施例的具有策略隐藏功能的密文加密方法所适用的应用场景组成进行介绍。该应用场景包括用户终端和服务器。

其中,用户终端可以是智能手机、平板电脑、笔记本电脑、台式电脑、个人数字助理和穿戴式设备等电子设备;服务器可以是独立的服务器,也可以是多个服务器组成的服务器集群。

参见图1,图1为本申请实施例提供的一种具有策略隐藏功能的密文加密系统的示意图,其包括第一终端、第二终端、第一服务器以及第二服务器,在具体实现中,第一终端的执行者为数据拥有者,第二终端的执行者为数据消费者,第一服务器的执行者可例如为第三方权威机构,第二服务器的执行者可例如为云服务供应商,通过上述四方的交互运作来解决访问策略带来的安全隐患,提高云计算环境中用户的隐私安全。其具体实现规则参见下文提供的一种具有策略隐藏功能的密文加密方法。

请参阅图2,图2是本申请一实施例提供的一种具有策略隐藏功能的密文加密方法的示意流程图。如图2所示,该具有策略隐藏功能的密文加密方法包括步骤s101~s105。

步骤s101:第一服务器收到第一终端的请求后生成系统公共参数和主密钥,并将所述系统公共参数发送至所述第一终端。

具体地,当第一终端(相当于数据拥有者(dataowners),以下简称do)想要将拥有的数据外包给第二服务器(相当于云服务供应商(cloudserviceprovider),以下简称csp)时。do会先向第一服务器(相当于第三方权威机构(attributeauthority),以下简称aa))提出请求,aa以系统参数λ为输入,输出系统公共参数pk以及主密钥msk。其中pk会被发送给do,而msk则由aa自己保存。

步骤s102:所述第一终端通过预设规则对外包数据进行加密得到加密结果,并将所述加密结果发送给第二服务器。

具体地,do在将数据外包给csp前,会通过加密算法对要外包的数据进行加密。加密算法分为两部分,分别是enc子算法(加密)和acf-create子算法(acf生成)。其中enc子算法用于将明文m加密,acf-create子算法被用来隐藏访问策略(是一个1×m的访问矩阵,ρ是映射函数)。具体的加密流程为:

(1)enc子算法以系统公共参数pk、明文m以及访问策略作为输入,输出密文ct。

(2):acf-create子算法以访问策略为输入,输出布谷鸟过滤器(attributecuckoofilter,以下简称acf)。acf的作用在于隐藏访问策略

(3):执行完步骤(1)和(2)后,加密流程结束。do将加密后的数据以(acf,ct)的形式发送给csp,完成数据外包的工作。

步骤s103:第二终端根据需要向所述第二服务器请求第二目标加密数据,并获取所述第一服务器内对应所述第二终端的用户私钥。

具体地,当第二终端(相当于数据消费者(dataconsumer),以下简称dc)想要访问云服务器中某个被加密的数据(acf,ct)时,它先向csp提出请求,csp收到请求后将该加密数据(acf,ct)发送给dc。获得了加密数据(acf,ct)后。dc会向aa提出申请,aa会检查dc身份的合法性,并根据dc的特点为其分配属性集u。然后aa以主密钥msk、系统公共参数pk以及用户属性集u作为输入,生成用户私钥sk。最后aa通过安全信道将私钥sk发送给dc。

步骤s104:所述第二终端根据所述用户私钥对所述目标加密数据进行解密,获取所述目标加密数据对应的明文。

具体地,dc在获得了加密数据(acf,ct)和自身的私钥sk后,进入解密流程。解密算法也由两部分组成,分别是acf-check子算法和dec子算法。其中acf-check子算法用于恢复隐藏的访问策略而dec子算法则使用恢复后的访问策略对密文ct解密,具体的解密流程为:

(1):acf-check子算法以系统公共参数pk、acf以及用户属性集u为输入,输出访问策略

(2):恢复访问策略后,dec子算法以访问策略用户私钥sk以及密文ct为输入,输出明文m完成解密流程。

参见图1-图4,以下为本申请实施例的一个的运算过程:

步骤1:初始化系统参数,并以系统安全参数λ为输入,输出系统公共参数pk和主密钥msk,具体过程如下:

第三方权威机构aa初始化算法,并指定为两个阶为p的乘法循环群。是一个双线性映射。aa选择一个生成元g∈g,和n个与系统中属性相关联的随机的元素h1,…,hn∈g,随机的选择u,(是由小于p的非负整数组成的循环域,p是一个素数),公共系统参数为:

pk=<g,e(g,g)μ,gu,h1,…,hn,lattr,lrnum,hf(),he()>(1)

主密钥为:

msk=gμ(2)

式中,lattr,lrnum是元素x的相应字段长度,x是待插入到布谷鸟过滤器中的元素,其中lattr是元素中属性字段的长度,lrnum是元素中行号字段的长度。hf()为生成元素“指纹”的哈希函数,该“指纹”能唯一标识一个元素。he()是计算元素在布谷鸟过滤器中位置的函数。

步骤2:数据的加密和acf的创建。该过程以系统公共参数pk、访问策略以及明文m为输入,输出加密数据(acf,ct),具体过程如下:

步骤2.1:do先将要上传到云服务器的数据进行加密,即先执行加密子算法enc(pk,m,)。其中(m,ρ)是访问策略,m是一个1×m的访问矩阵,ρ是映射函数。enc子算法先挑选一个随机的向量是由系统生成的随机数,zpn为zp的n次方,一般将s作为秘密。对于矩阵的第i行,计算λi=mi·v,其中mi是与矩阵m的第i行相关的向量(需要注意的是λi与系统公共参数λ并无关联,λi是对秘密s进行分享所得的秘密分享值)。然后输出密文为:

式中,c用于将明文m嵌入,c′是密文组件其公式格式,与解密过程相对应,ci用于将秘密分享值嵌入。

步骤2.2:acf-create子算法以为输入,先将访问矩阵中的属性和与之相关的行号绑定在一起,并生成一组元素ux={i||attx}i∈[1,l],其中i是访问矩阵的行号,而attx是与之相关的属性,它们之间可以通过映射函数ρ(i)=attx来相互关联。当需要向acf中插入一个元素x(x∈ux)的时候,hf是用来生成元素指纹的哈希函数,令he为将元素映射到acf中的哈希函数,具体计算过程下:

f=hf(attx)(4)

i1=he(attx)(5)

上式中,f是元素x的“指纹”,具有唯一标识一个元素的作用,i1和i2分别是x的两个候选位置,根据侯选位置对acf中相应的位置进行检查,判断是否已经有其他元素存在,如果两个中至少有一个是空的,那么就将如下计算结果插入到其中:

如果两个候选位置没有一个是空闲的,则再创建一个新的acf将元素x插入,当单个acf的空间利用率超过50%时,算法会自动创建一个新的acf,新元素会被插入到新创建的acf中。

具体地,参见如图3,是一个布谷鸟过滤器,在布谷鸟过滤器中我们将一行称作一个“桶”,一行中的几个块称为“盒子”,元素x根据侯选位置1或2的空闲与否被插入到一行中的某一个“盒子”中(在我们的算法中元素x并不直接插入到布谷鸟过滤器中,而是以的形式被插入到“盒子”中)。侯选位置1和2由函数hf(),he()通过公式计算。

具体地,图4是被插入到布谷鸟过滤器中的元素x的结构图,一个将要插入到布谷鸟过滤器中的元素x是由访问策略中的映射函数ρ(i)=atti得到的,其中i对应行号,atti对应属性λ-bit表示元素x的比特长度,lrnum-bit表示行号字段的比特长度,latt-bit表示属性字段的比特长度。

acf-create子算法执行结束后得到acf,然后do以(acf,ct)的形式将加密数据发送给csp。

步骤3:当dc想要访问do外包给csp的数据时,他会向csp提出请求,csp在收到请求后将do上传到云服务器中加密数据(acf,ct)发送给dc。dc在收到加密数据后向aa提出密钥申请,算法转到执行步骤4。

步骤4:当aa收到来自dc的申请。在检查dc身份的合法性后,aa根据dc的特点为其分配相对应的属性集u。然后aa以主密钥msk、系统公共参数pk以及dc的属性集u为输入,输出用户私钥sk。

步骤4.1:dc向aa提出申请,aa收到请求后检查dc身份的合法性。如果是合法的,就根据dc的特点分配相应的属性集u。

步骤4.2:aa通过密钥生成算法以系统公共参数pk、主密钥msk以及dc的属性集u为输入,并选择一个随机数然后计算:

用户私钥为:

sk=<e,i,{ex}x∈u,u>(9)

dc获得私钥sk后,算法转到执行步骤5。

步骤5:当dc获得私钥sk和do上传到云服务器中的加密数据(acf,ct)后,就可以通过解密算法得到明文m。具体过程如下:

步骤5.1:用户在对密文ct解密前,需要对访问策略进行恢复。首先调用acf-check子算法,acf-check子算法将系统公共参数pk、acf以及用户属性组u作为输入,输出访问策略具体过程如下:

f′=hf(att),att∈u(10)

i1=he(att)(11)

将f′与i1和i2位置上的f进行比较,当f=f′时利用如下公式恢复元素x:

x∈ux,ux={i||attx}i∈[1,l],令rnum=i,att′=attx。将(rnum,att′)添加到映射函数ρ′中去,得到访问策略为

步骤5.2:当恢复访问策略后,用户通过dec子算法对密文进行解密。dec子算法以用户私钥sk、密文ct以及恢复后的访问策略为输入,输出解密结果明文m。

如果用户的属性组u能够满足访问策略的要求,就可以得到一个系数集{τi|i∈i},然后计算出∑i∈iτiλi=s,其中dec子算法会计算出明文m,通过以下公式:

m=c/e(g,g)μs(15)式中,c′和ci来自密文,是构成密文的组件,e和l以及eρ′(i)来自第二终端的私钥,是构成私钥的组件,e(g,g)μs是运算结果用于恢复明文m,(i集合实质是第二终端的属性集与矩阵表示的属性集的交集对应于矩阵中的行号,矩阵的每一行对应一个属性),{τi|i∈i}为所述第二终端的属性组u在能够满足访问策略要求的情况下由第二终端产生的系数集(其实质是当集合i中存在相应的i时,对应的τi=1),然后根据公式∑i∈iτiλi=s可以恢复秘密s(其中λi是秘密分享值,通过公式计算得出,被嵌在密文组件ci中;s由第一终端生成,在加密时被嵌入密文组件c和ci后便被“销毁”,满足访问策略的用户可以通过上述公式恢复s)。

请参阅图5,图5是本申请实施例提供的一种计算机设备的示意性框图。该计算机设备700设备可以是终端或服务器。

参照图5,该计算机设备700包括通过系统总线710连接的处理器720、存储器和网络接口750,其中,存储器可以包括非易失性存储介质730和内存储器740。

该非易失性存储介质730可存储操作系统731和计算机程序732。该计算机程序732被执行时,可使得处理器720执行任意一种具有策略隐藏功能的密文加密方法。

该处理器720用于提供计算和控制能力,支撑整个计算机设备700的运行。

该内存储器740为非易失性存储介质730中的计算机程序732的运行提供环境,该计算机程序732被处理器720执行时,可使得处理器720执行任意一种具有策略隐藏功能的密文加密方法。

该网络接口750用于进行网络通信,如发送分配的任务等。本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备700的限定,具体的计算机设备700可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。其中,所述处理器720用于运行存储在存储器中的程序代码,以实现如下步骤:

第一服务器收到第一终端的请求后生成系统公共参数和主密钥,并将系统公共参数发送至第一终端;第一终端通过预设规则对外包数据进行加密得到加密结果,并将加密结果发送给第二服务器;第二终端根据需要向第二服务器请求第二目标加密数据,并获取第一服务器内对应第二终端的用户私钥;第二终端根据用户私钥对目标加密数据进行解密,获取目标加密数据对应的明文。

应当理解,在本申请实施例中,处理器720可以是中央处理单元(centralprocessingunit,cpu),该处理器720还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

本领域技术人员可以理解,图5中示出的计算机设备700结构并不构成对计算机设备700的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

本领域普通技术人员可以理解的是实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一存储介质中,该存储介质为计算机可读存储介质。如本发明实施例中,该计算机程序可存储于计算机系统的存储介质中,并被该计算机系统中的至少一个处理器执行,以实现包括如上述各方法的实施例的流程步骤。

该计算机可读存储介质可以是磁碟、光盘、u盘、移动硬盘、只读存储器(rom,read-onlymemory)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

在本申请所提供的几个实施例中,应该理解到,所揭露的具有策略隐藏功能的密文加密方法,可以通过其它的方式实现。例如,以上所描述的具有策略隐藏功能的密文加密方法实施例仅仅是示意性的。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。

本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1