一种支持多值属性的密文策略属性基加密方法与流程

文档序号:16899180发布日期:2019-02-19 17:47阅读:730来源:国知局
一种支持多值属性的密文策略属性基加密方法与流程

本发明涉及信息安全技术领域,具体涉及一种支持多值属性的密文策略属性基加密方法。



背景技术:

随着互联网、云计算等信息技术的发展,分布开放的计算环境愈发流行,人们对数据进行共享和处理的操作越来越频繁。而数据在共享和处理的过程中,遭遇了前所未有的安全问题,如果没有一个健全的安全机制,容易引发数据窃取、隐私泄露等问题的发生。传统公钥加密技术能够在一定程度上确保数据的机密性,但是也存在着诸多缺陷,比如,加密方必须获取数据使用者的公钥证书方能实现加密;加密方需要接收所有用户的公钥证书,并将计算好的密文一一发送给所有数据使用者,导致加密方的计算开销、存储开销、通信开销较大。

密文策略属性基加密(cp-abe)是一种被广泛研究和使用的非对称加密方法。在cp-abe的中,访问结构性能优劣直接影响着加密系统的整体效率,如加密阶段、密钥生成阶段、解密阶段的实现效率。相比于传统的加密方法,cp-abe具有诸多优势,但是目前的cp-abe方案大多采用门限结构作为加密阶段的访问结构,而该类型的访问结构需要针对每个节点进行秘密拆分(加密阶段)及秘密重构(解密阶段),导致计算过程中包含大量的双线性对运算以及群内的指数运算,增加了算法复杂度。另外,由于门限结构不能直接支持多值属性系统,在将其应用于多值属性系统时,需要将多值属性进行分解,这将显著增加系统中属性数量,并最终增加系统开销。显而易见,访问结构显著影响着加密系统的整体效率,而门限结构并非cp-abe方案中实现密文加密的最佳选择。



技术实现要素:

本发明所要解决的是现有密文策略属性基加密方法采用门限结构作为加密阶段的访问结构,从而导致效率低下、只支持二值属性的问题,提供一种支持多值属性的密文策略属性基加密方法。

为解决上述问题,本发明是通过以下技术方案实现的:

一种支持多值属性的密文策略属性基加密方法,具体包括步骤如下:

步骤1、可信中心进行系统初始化,生成加密参数并公开;

步骤2、加密方设定的用户访问权限,根据设定的访问权限生成mdd访问结构,并生成对应密文返回加密方;即:

步骤21、加密方将用户的属性表示为mdd访问结构的节点;将属性的属性值表示为mdd访问结构中的边,每条边连接2个不同的节点;这样,从mdd访问结构的根节点开始到最后一层的节点结束,会形成多条由节点和边组成的路径;

步骤22、对于mdd访问结构的每一条路径:如果该条路径中的每个节点的属性值均符合访问权限,则将该条路径的最后一个节点指向节点1,并被定义为有效路径;如果该条路径中存在任何一个节点的属性值不符合访问权限,则将该条路径的最后一个节点指向节点0,并被定义为无效路径;

步骤23、对mdd访问结构的每条有效路径分别生成不同的密文组件;

步骤3、加密方根据密文组件和加密参数对数据进行加密,并将加密后的数据即密文发送给解密方;

步骤4、解密方接收到加密方发来的密文后,向可信中心提供自己的属性集合及其对应的属性值;

步骤5、可信中心根据解密方发来的属性集合及其对应的属性值生成解密密钥,并发送给解密方;

步骤6、解密方根据收到的解密密钥对加密方发来的加密后的数据进行解密:当收到的解密密钥与mdd访问结构中的有效路径相匹配时,则解密方能够利用该解密密钥完成对加密后的数据的解密;当收到的解密密钥与mdd访问结构中的有效路径不匹配时,则解密方无法利用该解密密钥完成对加密后的数据的解密。

与现有技术相比,本发明采用了mdd作为cp-abe中的访问结构,使得所提方案能够直接支持多值属性;此外,由于mdd访问结构减少了系统判断属性的次数,减少了访问结构中的节点数量,从而显著提高了cp-abe策略在加密、解密等方面的实现效率。

附图说明

图1为基于mdd的访问结构。

图2为一种支持多值属性的密文策略属性基加密方法的整体流程图。

图3为基于mdd的访问结构实例图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实例,并参照附图,对本发明进行详细说明。

多值决策图(multi-valueddecisiondiagram,mdd)是一个具有多个终端节点的有向无环图。描述一个带有n个变量离散函数f:d1×…×dk×…×dn→s(1≤k≤n),其中:(1)dk={0,1,…,nk-1}为多值变量xk的有限值域,s为多值函数f的有限值域,即mdd终端节点的取值集合。(2)mdd的节点包括终端节点和非终端节点。因此将mdd作为cp-abe中的访问结构,利用mdd直接支持多值属性的优势,来提高cp-abe系统的效率是一种可行的方法。

本发明中所构造的基于mdd的访问结构由节点和边构成,其中节点对应于属性、边对应于属性值,其中变量序π:属性v1<v2<v3,如图1所示。

定义系统中的属性个数为n,这些属性可以表示为一个集合v={v1,v2,......,vn},vi是一个属性,i是一个自然数,1≤i≤n,每个属性有多个属性值,ni为属性vi的属性值个数,其属性值集合可以表示为ni是一个自然数。

基于mdd的访问结构可表示为:

其中,id为当前节点变量的编号,id为mdd所有节点编号集合,i为所有属性变量编号集合,ni为节点编号为i的节点所包含的属性值个数,(1≤ki≤ni)为节点i所包含属性的全部取值,为节点i所包含属性的取值为时所对应的子节点编号。用来维持父亲节点和子节点的关系。

定义有效路径:在根节点与终结点“1”间的某条路径上,如果所有变量严格按照mdd构造过程中所定义的变量序π出现,则称该路径为有效路径。

定义无效路径:在根节点与终结点“0”间的某条路径上,如果所有变量严格按照mdd构造过程中所定义的变量序π出现,则称该路径为无效路径。

定义满足mdd访问结构:如果用户所具有的属性集合l(及其属性值)能够沿mdd访问结构w中的某条有效路径到达终结点“1”,则称l满足w,记为

定义不满足mdd访问结构:如果用户所具有的属性集合l(及其属性值)无法沿mdd访问结构w中的任意有效路径到达终结点“1”,则称l不满足w,记为

一种支持多值属性的密文策略属性基加密方法,主要包含4个阶段,即初始化阶段、数据加密阶段、解密密钥生成阶段、数据解密阶段,如图2所示。

步骤1、系统初始化阶段。

在系统初始化过程中,可信中心生成公共系统参数。

步骤11、选择两个阶为大素数p的乘法循环群双线性群g和gt,其生成元g。构造双线性映射e:g×g→gt。

步骤12、zp是一个关于p的自然数集合。随机选择y∈zp,定义y=e(g,g)y为双线性群gt中的元素。

步骤13、生成公钥pk=<e,g,y,主密钥mk=<y,其中pk公开。

步骤2、数据加密阶段。

在数据加密阶段,加密方根据数据保护策略生成mdd访问结构,并基于mdd访问结构完成对数据m的加密操作。

步骤21、假设在mdd访问机构中有效路径共有vp条有效路径,记为r={r1,r2,…rvp}。

步骤22、对于有效路径rt(1≤t≤vp),如果包含属性vi(1≤i≤n)且其取值为(1≤ki≤ni),则令

步骤23、可信中心生成针对路径rt的密文组件(1≤i≤n,1≤ki≤ni)。

步骤24、加密方随机选择s∈zp,并定义c1=gs,c2=m·ys

步骤25、加密方生成最终密文ct=<mdd,c1,c2{crt|rt∈r}>。

步骤3、解密密钥生成阶段。

在解密密钥生成阶段,可信中心根据解密方所提供的属性集合以及属性值为其生成解密密钥,并将解密密钥发送给解密方。

步骤31、可信中心随机选择r∈zp。

步骤32、计算d1=gy-r

步骤33、最终生成解密密钥为sk=<d1,d2>,并将解密密钥sk发送给解密方。

步骤4、数据解密阶段。

步骤41、解密方收到加密方传送的密文后,向可信中心提交自己的属性和属性值,可信中心将与这些属性、属性值所对应的解密密钥发送给解密方。

步骤42、解密方读取密文中的mdd访问结构,并查询有效路径,并将自身的私钥与密文中的密文组件进行匹配。如果私钥不满足密文组件,即私钥匹配不到任何一条有效路径,则表明该用户无法完成密文解密。

步骤43、如果私钥满足密文组件,即私钥至少能够匹配到一条有效路径,则表明用户能够完成数据密解,解密过程如下:

下面通过一个具体实例对本发明进行进一步详细说明:

假定刘老师(加密方)预先设定了用户访问权限,即:规定某一文件只允许以下三种人员进行访问:第一种是计算机学院的研究生,第二种是法学院的研究生,第三种是商学院的本科生。

首先将属性及属性值进行符号表示,如表1所示。

表1属性及属性值符号对照表

在本实例中,系统属性集合为{dep,stu},属性值集合分别为{cs,ls,bs,non}、{und,gra,non},因此给出如下符号表达:v1=dep,v2=stu,v1,1=cs,v1,2=ls,v1,3=bs,v1,4=non,v2,1=und,v2,2=gra,v2,3=non。

(1)系统初始化阶段。

选择两个阶为大素数p的乘法循环群g和gt,其生成元g。构造双线性映射e:g×g→gt;

随机选择y,t1,1,t1,2,t1,3,t1,4,t2,1,t2,2,t2,3∈zp。定义y=e(g,g)y

生成公钥pk=<e,g,y,mk=<y,{t1,1,t1,2,t1,3,t1,4,t2,1,t2,2,t2,3}>。其中pk公开。

(2)数据加密阶段。

刘老师根据属性、属性值以及访问权限构建出mdd访问结构,如图3,并读取mdd访问结构的有效路径,分别为:r1:r2:针对mdd访问结构的3条有效路径分别生成密文组件

刘老师根据mdd访问结构完成对数据m的加密操作:刘老师随机选择s∈zp,并定义c1=gs,c2=m·ys,并根据可信中心发来的加密参数对数据m进行加密,并生成最终密文ct=<mdd,c1,c2,{r1,r2,r3}>。

(3)解密密钥生成阶段。

张山和李士(解密方)分别是计算机学院的研究生和法学院的本科生。他们的解密密钥生成过程具体如下:

他们的属性以及属性值分别表示为{cs(v1,1),gra(v2,2)}、{ls(v1,2),und(v2,1)}。

针对张山,可信中心随机选择r1∈zp,计算最终生成解密密钥

针对李士,可信中心随机选择r2∈zp,计算最终生成解密密钥

(4)数据解密阶段。

张山和李士分别用可信中心发来的解密密钥进行解密,具体过程如下:

张山首先根据自身拥有的属性以及属性值查找有效路径,经匹配,能够查找到有效路径r1。根据密文中的密文组件cr1进行如下计算,最终能够成功完成数据的解密。

李士首先根据自身拥有的属性以及属性值查找有效路径,经匹配,无法找到有效路径,因此李士无法成功解密。

综上,由于基于mdd的访问结构直接支持多值属性,该方案能够直接应用于多值属性系统的数据加密工作,可见本发明所提出的mdd访问结构功能表现更为优良。此外,这一方案在所生成的密钥的大小恒定,解密阶段所进行的双线性对运算、群内指数运算极少,整体时间复杂度仅为o(1),因此,本发明中所提出的cp-abe方案能够适用于更加复杂的应用场景,并且在工作效率方面获得了显著提高。

需要说明的是,尽管以上本发明所述的实施例是说明性的,但这并非是对本发明的限制,因此本发明并不局限于上述具体实施方式中。在不脱离本发明原理的情况下,凡是本领域技术人员在本发明的启示下获得的其它实施方式,均视为在本发明的保护之内。

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