一种基于属性加密的多用户可搜索对称加密方法

文档序号:36710277发布日期:2024-01-16 12:04阅读:18来源:国知局
一种基于属性加密的多用户可搜索对称加密方法

本发明涉及一种基于属性加密的多用户可搜索对称加密方法,属于信息安全领域。


背景技术:

1、随着云计算的日益普及,云存储也凭借使用便捷、维护成本低等优势,吸引越来越多的个人、企业及机构组织将数据保存在云上,然而云存储也存在隐私数据泄露隐患。近年来,医疗、保险等行业的用户隐私数据泄露事件时有发生。这些对于用户隐私极为敏感的行业,迫切需要可行技术手段保护用户数据隐私性。

2、加密是传统保护数据机密性的手段,但是加密后数据无法有效查询和利用。为了解决这一矛盾,可搜索对称加密技术应运而生。这一技术通过构建数据的密态索引并将其存储于云端,使得用户能够高效、安全地搜索、更新数据库中的数据。可搜索对称加密技术的实际应用不仅需要考虑数据安全性和搜索效率,也需要考虑操作易用性,除了简单的单关键词检索外,布尔查询、多用户场景等也是可搜索对称加密机制必备的功能。

3、多用户场景下,分发文档密钥并将服务器存储的密态数据共享给多个用户,存在技术挑战。传统密码能够解决点对点网络数据传输问题,但是对于数据共享等点对面网络传输问题,难以实现访问控制。而属性加密依据用户属性进行访问控制,可以有效解决这一问题,属性加密根据用户属性,为用户生成不同密钥,只有用户属性满足访问策略,才可以解密得到明文。

4、属性加密依据访问控制策略嵌入位置,可以划分为两类:密钥策略属性加密(kp-abe)和密文策略属性加密(cp-abe)。kp-abe机制将每个密文ct都与一组用户属性相关联,而每个用户的私钥sk都与一个访问策略a相关联;cp-abe机制将访问策略a嵌入到密文ct中,将一组用户属性与用户私钥sk相关联。

5、由于属性加密的解密运算开销较高,可外包解密的属性加密不失为一种有效解决手段。例如,中国专利(申请号:202010880595.x,公布号:cn 112104619 a)通过数据所有者生成中间密钥sk’并将之拆分为转换密钥tk和私钥sk后发送给用户,用户发送tk至服务器执行高运算量的代理解密,最终用户使用sk对解密结果进行简单的指对数运算后即可得到明文,有效降低用户解密的运算开销。


技术实现思路

1、现有可搜索对称加密机制大都实现了低查询泄露,却没有关注数据存取安全性和访问控制授权。另一方面,现有多用户场景下的可搜索对称加密机制数据所有者对用户检索的授权粒度,要么是用户,授权粒度过粗,无法控制用户具体的访问行为;要么是关键词,授权粒度过细,造成繁重的授权管理负担,这两种授权粒度都难以实际应用。

2、针对以上不足,本发明基于oxt框架,提出一种基于属性加密的多用户可搜索对称加密方法,通过将可外包解密的密文策略属性加密机制与可搜索对称加密机制相结合,采用数据所有者授权和用户属性双重访问控制,实现动态用户授权场景下的搜索授权与文档取回阶段文档解密密钥分发一体化。同时,考虑到数据库中列数有限,该系统采用以列为单位授权的方式,减少数据所有者授权量,简化授权管理。

3、本发明提出的访问控制机制,数据所有者通过控制授权信息的分发,控制用户生成的查询令牌token的检索范围和能否取回文档,系统管理员根据用户职位等信息,设置每个用户的权限,并依此为每个用户配置用户属性;此外,还根据数据库每一列的字段名,判定其中存储的数据是否敏感,如果敏感,则该列设置为加密列,设置访问控制策略限制其他用户的访问,依据用户属性限制用户的检索与取回数据范围;为了避免服务器了解敏感数据内容,列中数据还需要通过对称加密来脱敏,云服务提供商仅存储密态数据,为了保持加密数据的可搜索特性,还需要为加密列数据构建密态索引。在双重访问控制下,已授权用户仅可在其用户属性符合列访问控制策略的各列检索并取回相应数据。

4、按照本发明提供的方案,一种多用户场景下支持布尔查询的密态检索系统的具体步骤如下:

5、步骤1.系统初始化阶段。数据所有者输入属性全集u、全局参数λ初始化数据所有者的系统,生成一套系统密钥和属性加密密钥对(主公钥mpk,主私钥msk)。此外,管理员获取用户职位等背景信息,据此设置所有用户的权限及与权限相匹配的用户属性,然后初始化数据库,根据数据库各列字段名设置存储数据较为敏感的列为加密列。云服务提供商初始化数据库。最后,数据所有者配置每一个加密列的访问控制策略,并生成列一次加密和列二次加密的对称密码密钥k1、k2,k1用于对每一加密列进行第一次加密,k2用于对第一次加密后加密列进行第二次加密;用主私钥msk加密对称密钥k1得到其属性加密值ekey,将ekey和密钥k2上传到云服务提供商。

6、步骤2.上传文档阶段。数据所有者为待上传的明文文档中的对应加密列数据生成密态直接索引和密态倒排索引,然后利用k1、k2依次加密加密列数据,得到脱敏处理的文档,将脱敏处理后的文档、密态直接索引和密态倒排索引上传至云服务提供商。

7、步骤3.授权阶段。数据所有者根据用户ci的身份信息,审核用户ci对于数据库部分/全部列的访问申请,审核通过则根据用户ci的用户属性生成这些列的授权信息ωi,将授权信息ωi发送给申请用户ci,将用户ci对应的属性解密密钥集rkcoli、转换密钥集tki发送至云服务提供商。

8、步骤4.查询阶段。授权用户ci由查询q生成查询令牌tokeni,q并发起查询,只有查询关键词所在列全部得到授权,即云服务提供商拥有数据所有者上传的用户ci的属性解密密钥集rkcoli、转换密钥集tki,且用户ci的用户属性满足各列访问控制策略,云服务提供商才会返回密态倒排索引中符合查询条件的密态文档标识符,用户根据查询q中的查询词生成并使用密钥ke解密得到文档标识符。

9、步骤5.文档取回阶段。云服务提供商受理授权用户请求,根据文档标识符取出对应密态文档。使用密钥k2解密用户属性能够匹配列访问控制策略的各列数据(即用户属性所匹配的各列数据),使用转换密钥集tki转换对称密钥k1的属性加密值ekey,得到ctout。最后将非加密列和解密后的文件数据以及ctout发送给用户,用户使用取回密钥集rki取回对称密钥k1,然后使用对称密钥k1解密文档数据得到权限内的明文数据。

10、步骤6.授权撤销阶段。数据所有者要求云服务提供商删除所存储的用户ci的属性解密密钥rkcoli、tki,实现用户授权撤销。

11、上述的,各步骤用于生成密钥、索引、查询令牌的函数定义如下:哈希函数hi:{0,1}*→{0,1}λ,i∈n+。对称加密函数用enc表示。伪随机函数f:{0,1}λ×{0,1}λ→{0,1}λ;伪随机函数其中p为素数,是一个循环群;伪随机函数双线性对其中,和是三个素数阶循环群,和的生成元分别是g1和g2。

12、上述的,各步骤使用的可外包解密的密文策略属性加密机制分为属性加密abeenc、转换transform和取回retrieve三个步骤,即将属性解密拆分为转换、取回两个独立步骤。属性加密步骤基于访问控制策略加密信息;转换步骤使用转换密钥tki或tkcoli部分解密密文;取回步骤使用取回密钥rki或rkcoli完成解密,恢复明文信息。

13、上述的,步骤2中,密态倒排索引是一个元组集合,集合中每一个元组由键label和值(e,y)对组成,该索引的作用是用户查询时,根据查询词生成的查询令牌得到包含查询词的密态文档标识符e的集合。加密列数据分词后,得到(关键词w,文档标识符docid)二元组的集合,进而,对称加密文档标识符docid得到密态文档标识符e,根据关键词w和关键词所在列的列字段名col生成键label,根据文档标识符docid、关键词w和关键词所在列的列字段名col生成值y。密态文档标识符e、值y和键label的生成公式如下:

14、e=enc(ke,docid)

15、

16、label=f(stag,h1(xcol))

17、其中,ke、xind、z、xcol和stag的生成公式如下:

18、ke=f(ks,col||w)

19、xind=fp(ki,docid)

20、z=fp(kz,col||w)

21、xcol=ft(ka,col)

22、stag=f(kt,w||c)

23、其中,c是关键词w的词频计数器,ks、ka、ki、kz和kt是步骤1系统初始化时产生的系统密钥。

24、上述的,步骤2中,密态直接索引是一个集合,基于该索引判断文档中是否包含某个查询词w。直接索引中元素xtag的生成公式如下:

25、

26、其中,xcol和xind生成公式与倒排索引相同,xtrap的生成公式如下:

27、xtrap=fp(kx,w)

28、其中,kx是步骤1系统初始化时产生的系统密钥。

29、上述的,步骤3中,授权信息ωi=(ks,kx,kz,kt,rki,partdec),ks,kx,kz,kt,partdec用于生成查询令牌,rki用于步骤5中从列密钥ekey的转换结果ctout中解密获取第一轮加密密钥k1。其中,partdec由数据所有者授权用户ci的各xcol得到,生成公式如下:

30、partdec=transform(tkcoli,abeeec(xcol,mpk,ac))

31、上述的,步骤3中,数据所有者向云服务提供商上传属性解密密钥集rkcoli和tki。属性解密密钥集rkcoli和tki与(数据所有者,用户)元组唯一对应。其中,rkcoli在步骤4中用于云服务提供商解密partdec得到xcol;tki在步骤5中用于对属性加密的列密钥ekey进行转换。

32、上述的,步骤4中,对于包含n个查询词的查询q,其查询令牌tokeni,q由1个stag、n-1个xtoken、密钥ks,kt和各个查询词所在列的xcol的转换结果partdec组成。

33、上述的,步骤4中,云服务提供商根据查询令牌tokeni,q进行查询由3个环节组成,首先,云服务提供商使用rkcoli解密partdec得到各个查询词所在列的xcol,生成过程如下:

34、xcol=retrieve(rkcoli,partdec)

35、然后,云服务提供商计算倒排索引的键label,得到包含首查询词的文档标识符集合;最后,计算xtag,判断xtag是否属于直接索引集合,得到满足查询条件的密态文档标识符集合。

36、上述的,步骤4中,用户根据查询词w和查询的列的列字段名col生成密态文档标识符e的解密密钥ke,生成过程如下:

37、ke=f(ks,col||w)。

38、上述的,步骤5中,云服务提供商首先使用tki对第一轮加密密钥属性加密值ekey进行转换,判断用户属性是否匹配各列的访问控制策略,输出ctout,生成过程如下:

39、ctout=transform(tki,ekey)

40、然后,仅对满足访问控制条件约束的各列数据使用第二轮加密密钥k2进行解密,将文档解密结果和其对应的第一轮加密密钥的转换结果发送至授权用户。

41、授权用户使用数据据所有者授权信息中的rki解密得到各列第一轮加密密钥k1,生成过程如下:

42、k1=retrieve(rki,ctout)

43、然后用户用k1解密得到用户权限范围内的文档明文数据。

44、本发明的关键点包括:

45、1.本方法提出一种多用户场景下的完整系统平台,基于属性加密的可搜索加密系统,有效整合对用户检索和数据存取行为的访问控制。

46、2.本方法提出的系统,其访问控制粒度为数据库中的列,实现管理便捷的细粒度访问控制。

47、3.本方法提出兼容数据所有者授权以及用户属性与访问控制策略检查两套管理机制,共同实现访问控制,动态授权管理。

48、与现有技术相比,本发明的积极效果为:

49、1.本发明针对目前多用户场景下的可搜索加密系统中,缺少在根据文档标识符取回数据过程进行访问控制机制的问题,提出借助属性加密算法,通过验证用户属性是否匹配各列的访问控制策略,限制用户取回数据的范围,有效维护数据的机密性。

50、2.本发明针对目前方法中检索的访问控制粒度难以实际应用,粒度为用户难以控制用户行为,而粒度为关键词,关键词数量众多导致授权管理过于繁琐。因此,以数据库中有限的列为单位授权,实现约束用户行为,简化授权管理。

51、3.本发明通过数据所有者审核用户并授权查询范围以及系统管理员设定用户属性和数据库各列的访问控制策略这双保险机制,提高了系统安全性。同时,撤销授权通过撤换云服务提供商存储的用户密钥即可实现,无需重新加密密态文件数据,降低了授权更新的维护成本。

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