医疗云搜索权限分享的模型的制作方法

文档序号:17072857发布日期:2019-03-08 23:28阅读:312来源:国知局
医疗云搜索权限分享的模型的制作方法

本发明属于可搜索加密领域,涉及一种可控搜索权限的基于属性的密文搜索方法。



背景技术:

随着云计算技术和大数据的飞速发展,云存储方式有效地降低了本地数据存储和管理成本,实现了高质量的应用服务,因此越来越多地受到企业和个人用户的青睐。因云服务器上的数据并不绝对安全,通常需对数据加密后再将密文数据存储在云服务器中,这一做法虽然解决了数据的安全问题,但加密后的数据密文检索和搜索访问控制成为一个难题。

为保证数据机密性的同时又能限制用户解密能力,属性基加密(attribute-basedencryption,abe)的方法被提出。基于属性加密方案的通信模式是一对多的,保证数据机密性的同时,具有灵活、方便的特点,可有效降低数据加密过程中的开销,很好地保护用户隐私。随着研究的深入,基于属性的加密方案按照密文或密钥关联属性的不同可以分为两种形式:密钥策略的属性基加密和密文策略的属性基加密。在属性加密的基础上,文献提出了基于属性的密文策略的可搜索加密(ciphertext-policyatrributebasedsearchableencryption,cp-abse)的方案,但文献的研究成果表明,cp-abs方案中密钥在没有任何处理情况下直接上传给云服务器会引发密钥泄露等不安全问题,且采用树形访问结构效率较低。

1998年,blazem等人提出了代理重加密(proxyre-encryption,pre)的概念,在pre中,授权者基于自己的私钥生成一个代理重加密密钥给代理者,代理者利用重加密密钥将授权人的密文转换成针对被授权人的密文,而代理者却无法获得明文,也无法根据重加密密钥获取授权人的私钥。2014年,文献将基于属性可搜索加密方案和代理重加密技术相结合,提出了一种支持可搜索功能的代理重加密,在满足条件的情况下,该方案可以将自身搜索能力赋给代理者,由代理者执行密文检索操作。2015年,liang等人提出了一种基于kp-abe的可搜索加密方案。该方案支持关键字更新,且具有较高的检索效率,并在随机预言模型下证明了方案的安全性。但是采用密钥策略的属性加密,访问策略的设定只能依赖授权中心。



技术实现要素:

针对上述问题,本发明提出一种医疗云搜索权限分享的模型,模型包含四个实体,分别是授权中心,云服务器,数据属主和搜索用户,数据属主把自己的个人医疗数据及数据关键字加密后上传至云端,随后的检索操作分为两种情况:

一是搜索用户需要查看个人医疗数据时,条件设置为c1={搜索用户}的访问条件,并将检索令牌并且将其发送给云服务器,委托云服务器完成密文检索;

二是搜索用户需要查看个人医疗数据与其他搜索用户共享,数据属主根据自己需要制定访问策略,产生重加密密钥并且发送给云服务器,委托云服务器将检索关键字的权限分享给满足访问条件的数据使用者;

在此模型中,授权中心负责管理属性集,并根据属性集为用户生成和分发对应的私钥,云服务器负责存储加密的数据、并为用户提供密文搜索服务以及使用重加密密钥,使得被授权者可以对重加密的密文进行关键字检索;

整个过程中,数据授权者完成了不在线且不与被授权用户相交互的情况下,将搜索权限分享给其他用户。

进一步的,执行可控搜索权限的基于属性的密文搜索方法。

进一步的,所述执行可控搜索权限的基于属性的密文搜索方法包括如下步骤:

s1.系统建立,获取公共参数和主私钥;

s2.密钥生成:输入用户的属性集合以及主私钥,获取对应属性集合的用户私钥;

s3.密文生成:输入访问结构、公共参数、主私钥和关键字,数据拥有者执行算法产生原密文;

s4.门限生成:输入公共参数、私钥和待查询关键字,数据拥有者生成关键字的令牌;

s5.重加密密钥生成:输入公共参数、私钥、访问结构,获取重加密密钥;

s6.重加密密文生成:输入公共参数、初始密文和重加密密钥,云服务器输出重加密密文;

s7.密文搜索:输入原密文和数据拥有者令牌,执行密文搜索算法;

s8.重加密密文搜索:输入重加密密文和数据使用者令牌,执行密文搜索算法。

进一步的,系统建立,获取公共参数和主私钥的步骤如下:

系统建立setup(n,n):输入系统的属性总个数n和访问控制矩阵m的最大列数n,生成一个4-多线性映射:{ei:g0×gi→gi+1|i=0,1,2},其中(g0,...,g3)是阶为p的素阶循环群,令g0∈g0,g0是g0的生成元,且对于i=0,1,2,gi+1=ei(g0,g1)是gi+1的生成元,取h1,1,h1,2,...,hn,n∈g0,定义哈希函数h:{0,1}*→g0,随机选取表示整数集合{0,1,…,p-1},,则公共参数为和主私钥为:

msk=(a,b)(2)。

进一步的,密钥生成的步骤如下:

密钥生成keygen(msk,s):输入用户的属性集合s以及主私钥msk,随机选取指数t1,...tn←zp,zp表示整数{0,1,…,p-1}的集合,设取x∈s,对应属性集合s的用户生的私钥为:

sk=(d,{lj}j∈[1,n],{dx}x∈s)(3)。

进一步的,密文生成的步骤如下:

密文生成enc(kw,pp,msk,(m,ρ)):输入访问结构(m,ρ)、公共参数pp、主私钥msk和关键字kw∈{0,1}*,数据拥有者执行该算法产生原密文,用l和n分别表示矩阵m的行数和列数,将访问结构每一行关联到属性,定义该映射函数为ρ,计算随机选取n-1个随机元素和选择s←zp作为共享秘密组成向量对于i∈{1,2,…,l},取和j∈{1,...,n},计算

并得出密文:

cph=((m,ρ),ai,j,b,ci,c1,c2)i∈[1,l],j∈[1,n](4)。

进一步的,门限生成tokengen(pp,sk,kw):输入公共参数pp、私钥sk和待查询关键字kw,对于i∈{1,2,…,l}分别计算t1=e0(h(kw),d),tj=e0(h(kw),lj),tx=e0(h(kw),dx)x∈s,则数据拥有者生成关键字kw的令牌为:

token=(s,t1,{tj}j∈[1,n],{tx}∈s)(5)。

进一步的,重加密密钥生成rekeygen(pp,sk,(m′,ρ′)):输入公共参数pp、私钥sk、访问结构(m′,ρ′),用l和n分别表示矩阵m′的行数和列数,将访问结构每一行关联到属性,定义该映射函数为ρ′,随机选取n-1个随即元素并组成向量对于i′∈{1,2,…,l},取和j′∈{1,...,n},计算

输出重加密密钥为:

rk(m′,ρ′)=(b′,{a′i,j}i∈[1,l],j∈[1,n])(6)。

进一步的,重加密密文生成reenc(cph,pp,rk(m′,ρ′)):输入公共参数pp、初始密文cph=(c1,c2)和重加密密钥rk(m′,ρ′),计算云服务器输出重加密密文为:

cphr=((m′,ρ′),c1′,c2′,b′,{ai,j}i∈[1,l],j∈[1,n])(7)。

进一步的,密文搜索search(token,cph):输入原密文cph和数据拥有者令牌token,执行密文搜索算法,验证用户属性集s是否满足访问结构p=(m,ρ),如果满足,则一定能够在多项式时间内得到集合ci,该集合满足∑ρ(i)∈sci·λi=(1,0,...,0),则计算

如果则证明搜索成功,否则搜索失败。

进一步的,重加密密文搜索searchr(tokenr,cphr):输入重加密密文cphr、和数据使用者令牌token,执行密文搜索算法,验证用户属性集s是否满足访问结构p=(m′,ρ′),如果满足,则一定能够在多项式时间内得到集合c′i,该集合满足∑ρ′(i)∈sc′i·λ′i=(1,0,...,0)然后计算

如果e2(k′,c′1)=c′2,则证明搜索成功,否则搜索失败。

有益效果:采用基于密文策略的可搜索属性加密方式实现可控搜索,结合代理重加密的方式分享搜索权限。方案中将密文中的关键字部分提取出来形成搜索令牌,检索和解密区分开使得设计上更加灵活易操作。采用的方式为lsss线性共享矩阵,细粒度控制访问的同时提高了搜索效率。新方案可在保证数据安全的同时可对搜索权限进行细粒度的控制。

附图说明

图1系统模型图。

具体实施方式

1基本概念说明

1.1双线性映射

定义1双线性映射。g和gt是两个阶为p的乘法循环群。双线性映射e:g×g→gt,g,gt分别为g,gt的生成元,同时满足以以下性质:

·双线性:存在e(ga,gb)=e(g,g)ab,其中

·非退化性:存在g∈g,使得e(g,g)≠1。

·可计算性:对e(u,v)都能有效的计算。

1.2困难性问题假设

n-多线性映射的定义:给定安全参数l和一个l比特的素数p,n-多线性映射是由n个p阶群(g0,g1,...,gn-1)和n-1个映射ei:g0×gi→gi+1(i=0,...n-2)组成。n-多线性映射应该满足下性质,对于(i=0,...n-2):

·如果g∈g0为g0的生成元,那么gi+1=ei(g0,gi)是gi+1的生成元。

满足

·ei可以有效计算。

n-多线性判定性diffie-hellman假设(n-mut-ilineardecisionaldiffie-hellmanassumption,n-mddh)选择g是g的生成元。给定ga,gb,gs,gz,不存在概率多项式时间算法可以以不可忽略的优势区分z=e(g,g)abs和z=e(g,g)z,其中算法的优势定义为|pr[α(ga,gb,gs,e(g,g)abs)=1]-pr[α(ga,gb,gs,e(g,g)z)=1]|。

2方案模型

2.1系统模型

本发明采用的系统模型如图1所示,以医疗云场景为例来阐释:模型包含四个实体,分别是授权中心,云服务器,数据属主alice和搜索用户bob。数据属主alice把自己的个人医疗数据及数据关键字加密后上传至云端,随后的检索操作可分为两种情况,一是当她的主治医生bob需要查看病例时,条件可以设置为c1={主治医生}的访问条件,并将检索令牌并且将其发送给云服务器,委托云服务器完成密文检索;二是主治医生需要查看她的病例与其他医生carol探讨病情时,alice可以根据自己需要制定访问策略如医生需满足c2={主治医生bob,医生carol}的条件产生重加密密钥并且发送给云服务器,委托云服务器将检索关键字的权限分享给满足访问条件的数据使用者。在此模型中,授权中心负责管理属性集,并根据属性集为用户生成和分发系对应的私钥。云服务器负责存储加密的数据、为用户提供密文搜索服务以及使用重加密密钥,使得被授权者可以对重加密的密文进行关键字检索。整个过程中,数据授权者完成了不在线且不与被授权用户相交互的情况下,将搜索权限分享给其他用户。

3算法实现

3.1方案的具体实现

系统建立setup(n,n):输入系统的属性总个数n和访问控制矩阵m的最大列数n,生成一个4-多线性映射:{ei:g0×gi→gi+1|i=0,1,2},其中(g0,...,g3)是阶为p的素阶循环群。令g0∈g0是g0的生成元,且对于i=0,1,2,gi+1=ei(g0,g1)是gi+1的生成元。取h1,1,h1,2,...,hn,n∈g0,定义哈希函数h:{0,1}*→g0。随机选取表示整数集合{0,1,…,p-1}的所有子集,从集合中均匀随机地选取元素a,b,c,则公共参数为和主私钥为:

msk=(a,b)(11)

密钥生成keygen(msk,s):输入用户的属性集合s以及主私钥msk。随机选取指数t1,...tn←zp,表示整数{0,1,…,p-1}的集合,此公式的意义为在集合中随机选取n个随机数,设取x∈s,对应属性集合s的用户生的私钥为:

sk=(d,{lj}j∈[1,n],{dx}x∈s)(12)

密文生成enc(kw,pp,msk,(m,ρ)):输入访问结构(m,ρ)、公共参数pp、主私钥msk和关键字kw∈{0,1}*,数据拥有者执行该算法产生原密文。用l和n分别表示矩阵m的行数和列数,将访问结构每一行关联到属性,定义该映射函数为ρ。计算随机选取n-1个随机元素和选择s←zp作为共享秘密组成向量对于i∈{1,2,…,l},取和j∈{1,...,n},计算需要说明书的是:h表示哈希函数,是一种运算。h(kw)表示对kw进行哈希运算。

由上述,得出密文:

cph=((m,ρ),ai,j,b,ci,c1,c2)i∈[1,l],j∈[1,n](13)。

门限生成tokengen(pp,sk,kw):输入公共参数pp、私钥sk和待查询关键字kw,对于i∈{1,2,…,l}分别计算t1=e0(h(kw),d),tj=e0(h(kw),lj),tx=e0(h(kw),dx)x∈s,则数据拥有者生成关键字kw的令牌为:

token=(s,t1,{tj}j∈[1,n],{tx}∈s)(14)

重加密密钥生成rekeygen(pp,sk,(m′,ρ′)):输入公共参数pp、私钥sk、访问结构(m′,ρ′)。用l和n分别表示矩阵m′的行数和列数,将访问结构每一行关联到属性,定义该映射函数为ρ′。随机选取n-1个随即元素并组成向量对于i′∈{1,2,…,l},取和j′∈{1,...,n},计算输出重加密密钥为:

rk(m′,ρ′)=(b′,{a′i,j}i∈[1,l],j∈[1,n])(15)

重加密密文生成reenc(cph,pp,rk(m′,ρ′)):输入公共参数pp、初始密文cph=(c1,c2)和重加密密钥rk(m′,ρ′)。计算云服务器输出重加密密文为:

cphr=((m′,ρ′),c′1,c′2,b′,{ai,j}i∈[1,l],j∈[1,n])(16)

密文搜索search(token,cph):输入原密文cph、和数据拥有者令牌token,执行密文搜索算法。验证用户属性集s是否满足访问结构p=(m,ρ),如果满足,则一定能够在多项式时间内得到集合ci,该集合满足∑ρ(i)∈sci·λi=(1,0,...,0),则计算

如果则证明搜索成功,输出1,否则搜索失败,输出0。

重加密密文搜索searchr(tokenr,cphr):输入重加密密文cphr、和数据使用者令牌token,执行密文搜索算法。

验证用户属性集s是否满足访问结构p=(m′,ρ′),如果满足,则一定能够在多项式时间内得到集合c′i,该集合满足∑ρ′(i)∈sc′i·λ′i=(1,0,...,0),然后计算

如果e2(k′,c′1)=c′2,则证明搜索成功,输出1,否则搜索失败,输出0。

3.2正确性

检索关键词正确性验证:

如果属性集s满足访问结构(m,ρ),且重加密密文对应关键相同,则

因此可以得到:

重加密后检索关键词正确性验证:

因此可以得到:

4安全性证明

4.1数据机密性

定理1如果4-mddh问题是难解的,那么cp-abrks方案在随机预言模型下是不可区分性选择关键字攻击安全的。

证明假设存在一个概率多项式时间敌手a以不可忽略的优势ε攻破cp-abrk的随机预言模型下不可区分性选择关键字攻击安全游戏,那么就可以构造出一个挑战者以不可忽略的概率解决4-mddh问题,其中qt是敌手查询应答器的最大次数。

挑战者c给定一个4-mddh问题的实例其中w是从集合中的随机数,按如下方式模拟游戏:

初始化:敌手a选择一个挑战访问结构(m**)其中m*为l*×k*的矩阵,l*为行数,k*为列数,并将它们发送给挑战者。假设系统中属性总个数为n,访问控制矩阵m*的最大列数为nmax,挑战者按照如下方式产生公共参数和主私钥:

⑴给定访问结构(m**),对于每一对(j,x),其中1≤x≤n,1≤j≤nmax,选择如果存在一个i使得ρ*(i)=x且i≤k*,则令是矩阵的i行j列;否则令设公共参数为:

主私钥为mk=(a,b)。

⑵挑战者按照如下方式模拟应答器h

oh(kw):给定一个关键字kw,模拟器按照如下方式工作:

如果kw未被查询过,取且以概率pr[ci=0]=1/(qt+1)选择一个比特ci∈{0,1}。如果ci=0,计算否则计算把(kw,ai,h(kw),ci)加入表lh中并且返回h(kw)。否则,从lh中检索出与kw对应的h(kw)且返回h(kw)。

阶段1:a可进行多项式次以下应答器的查询:

(a)okeygen(s)给定属性集s,挑战者按如下方式工作:

如果s满足访问结构,返回⊥(结束符)。

否则,如果s不满足访问结构(m**),则存在一个向量表示整数{0,1,…,p-1}中n次向量运算的集合,使得w1=-1且对于k*≤j≤n设计算随机选择且隐含地定义tj=rj+wjb,然后对于每一个x∈s,设定如果存在i使得否则设

(b)ork(s,p):输入一个属性集s和一个访问结构p=(m,ρ),其中m为l×k的矩阵,挑战者按如下方式工作:

lrk是重加密列表,如果lrk表中记录不存在,返回⊥。否则如果记录存在,则随机选取n个指数并组成向量否则,组成向量其中定义s=cs′。

(c)oreenc(s,cph):给定一个属性集s和原密文cph,挑战者按如下方式工作:

如果lrk表中已存在记录或时p≠p*,用(s,p)查询ork得到重加密密钥rkuid→p,且计算cphr←reenc(cph,pp,rkp)。可理解为属性集与访问结构构成的组合。

否则,如果在如中lh存在kwi,使得ci=1且选择d∈zp,设且对于每一对i=1,...n,且j=1,...n返回cphr=(c1,c′2,b,{ri,j}i∈[1,l],j∈[1,n])。

否则,发生错误且停止。

(d)otoken(s,kw):给定一个属性集s和一个关键字kw,挑战者按如下方式工作:

用kw查询oh得到(ai,h(kw),ci)。

如果ci=1,选择计算l′j=e0(h(kw),lj)j∈[1,n];且对于每一个x∈s,

如果ci=0且不符合访问结构,用s查询okeygen得到sk对于j=1,...n,计算方式同上。

否则,产生错误且停止。

挑战:a两个等长的关键字(kw0,kw1)。如果c0=1且c1=0,设η=1;当c0=0且c1=1,那么设η=0;如果c0=1∧c1=1,挑战者产生错误且停止;否则,随机选择

挑战者将用kwη查询得到密文返回给a。

阶段2:增加限制(kw0,kw1)不可以查询otoken,其他类似阶段1。如果s满足访问结构,那么(s,kw0)和((s,kw1)不能查询

猜测:a输出一个猜测μ′。如果μ=μ′,挑战者输出否则,输出

至此完成了游戏的模拟。现对工作正常的条件下挑战者赢得游戏概率进行分析。如果输出那么cph*实际上是kwμ的一个有效密文,所以a输出μ=μ′的概率为1/2+ε。如果z是从g3中随机选择的,那么a输出μ=μ′的概率为1/2。因此,挑战者正确猜测出的概率为1/2(1/2+ε)+1/2·1/2=1/2+ε/2。

也就是说,挑战者具有解决4-mddh问题的优势为(1/e+1/qt)ε/2。

5功能分析

在本节中,将本发明提出方案与文献[1]、文献[2]的方法从性能方面进行比较,见表1。文献[1]的方案支持可搜索加密但不支持重加密,不利用户对数据检索权限的共享,搜索的灵活性降低;且树形访问结构效率较低,这在云计算的数据转发和搜索机制中并不占优势。文献[16]虽可以实现关键词搜索和代理重加密,但采用基于密钥策略的属性加密方案极不利于数据属主对于访问权限的控制。而本发明方案由于采用访问效率较高的lsss结构,可以同时实现关键词搜索和代理重加密的功能,因此更适用于云计算和实际应用。

[1]zhengq,xus,atenieseg.vabks:verifiableattribute-basedkeywordsearchoveroutsourcedencrypteddata[c]//procofieeeinfocom.2014:522-530.

[2]liangk,susilow.searchableattribute-basedmechanismwithefficientdatasharingforsecurecloudstorage[j].ieeetransoninformationforensics&security,2015,10(9):1981-1992.

表1方案性能比较

6效率分析

本节将从效率方面与文献[1]、文献[2]进行对比,比较结果见表2。其中s表示属性集中属性个数,l表示访问结构中属性的个数,e是用来表示g上的一次指数操作指数运算,p是表示双线性对配对运算。由于哈希算法、非生成元群元素上的指数操作计算量较小,故忽略不计两种算法的计算量。

表2计算开销比较

从表2可以看出本发明的方案在密钥生成和密文生成阶段明显优于文献[1]。当属性集中属性个数与访问结构数相近时,本发明方案在密钥生成阶段的效率将远高于文献[2],在门限生成和搜索阶段,同时高于这两种方案。这是由于本发明采用基于密文策略加密方式而文献[2]采用密钥生成阶段计算访问结构密钥策略,因此效率降低。即使在密文生成阶段加入访问控制的加密计算后,本发明方案的效率仍高于文献[2]。综合分析可得出,本方案相比于同阶段的基于属性的搜索方案更具实用性。

7效果

针对云环境下存在的密文检索、检索权限共享和访问控制问题,本发明采用关键字与密文分割运算的方式,结合基于密钥策略的属性代理重加密方案,提出了一种云端可控搜索权限的基于属性的密文搜索方案。方案在云端密文条件下,可进行条件设置的数据检索及搜索权限的共享。同时,结合云计算能力,节省了本地存储以及管理维护的成本,提高了检索速度,使得用户在不在线的情况下仍能够共享搜索权限。方案虽然实现了访问控制、提升了检索速度,但在功能上,只能实现单关键词的搜索,尚不能实现多关键字或关键字的模糊查询、排序、关系运算等功能,因此如何解决上述问题,也是未来的一个研究方向。

云存储环境下,支持关键词搜索的密文检索方案无法实现细粒度访问控制,不能对搜索权限进行分享。为此,本发明将基于属性的可搜索加密方案与代理重加密技术相结合提出一种云端可控搜索权限的基于属性的密文搜索方案。本方案中,采用关键字与密文分割运算的方式,多个属性组成的访问结构与关键字实现搜索访问控制;通过代理重加密技术可实现用户不在线的情况下,将搜索权限分享给符合访问条件的其他用户。安全分析表明,本方案在多线性判定性diffie-hellman假设下可以有效证明本方案的安全性。

以上所述,仅为本发明创造较佳的具体实施方式,但本发明创造的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明创造披露的技术范围内,根据本发明创造的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明创造的保护范围之内。

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