一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于协同可搜索的密文数据共享方法及系统

2023-02-04 13:31:13 来源:中国专利 TAG:


1.本发明涉及数据共享领域,特别是涉及一种基于协同可搜索的密文数据共享方法及系统。


背景技术:

2.云存储的广泛应用使得更多的用户开始选择将自己的数据外包到云上进行存储,云存储具有强大的计算能力以及存储容量,减轻了用户本地数据存储及管理的负担。但是,云服务器并不是完全可信的,它可能会泄漏与用户相关的敏感数据,威胁着用户的安全。为了解决这一问题,数据在外包给云服务器之前应先加密,如电子医疗系统,该系统通常将电子健康记录数据先在本地加密后,再上传至云端存储使用。虽然加密的数据可以保证隐私性,但是它也给用户后期访问与共享数据造成困难。
3.可搜索加密是在不解密密文的条件下实现搜索功能的一种技术,它将文档或记录与一个个关键词相匹配,在检索时将需要检索的关键词与检索私钥绑定形成检索陷门,并将检索陷门上传至云服务执行检索操作,最后返回检索的结果。目前可搜索加密在效率和功能性上都已有较多的研究,在基于属性的可搜索加密的研究中,绝大多数的研究者都在研究基于一个人的属性是否满足检索策略的情况,然而,当出现一份文件需要某一公司内不同组的人访问或者需要上级协助下级访问时,并没有实现真正意义上的细粒度访问,且访问控制结构不够灵活。


技术实现要素:

4.本发明的目的是提供一种基于协同可搜索的密文数据共享方法及系统,可实现多人协同检索数据,提高访问控制结构的灵活性。
5.为实现上述目的,本发明提供了如下方案:
6.一种基于协同可搜索的密文数据共享方法,包括:
7.通过授权机构生成公共参数、系统主私钥及各组的组私钥;每组包括多个用户;同一组内各用户的组私钥相同;
8.针对任一用户,授权机构根据所述公共参数、所述用户的属性集及所述系统主私钥,确定所述用户的用户私钥;各用户的属性集中包括多个属性,多个属性分为普通属性及协同属性;所述用户私钥包括分密钥、协作密钥及各属性的属性密钥;
9.数据拥有者根据所述公共参数、访问策略树及所述数据拥有者的属性集,对关键字索引集进行加密,得到密文关键字索引,并将所述访问策略树及所述密文关键字索引上传至云服务器;所述数据拥有者为用户;所述关键字索引集中包括多个关键字,各关键字链接至对应的数据文档;
10.数据使用者根据所述公共参数及所述数据使用者的用户私钥,对待检索关键字进行加密,生成检索陷门,并上传至云服务器;
11.云服务器根据所述数据使用者的属性集及协同者的协同属性,判断是否满足所述
访问策略树,若不满足,则数据共享失败;若满足,则根据所述公共参数、所述检索陷门、所述密文关键字索引、所述数据使用者的协作密钥及属性集、所述协同者的协作密钥及协作属性、所述访问策略树,确定解密关键字索引;
12.判断所述解密关键字索引是否存在于所述密文关键字索引中,若存在,则检索成功,将所述待检索关键字对应的数据文档发送至所述数据使用者。
13.可选地,所述通过授权机构生成公共参数、系统主私钥,具体包括:
14.获取安全参数;
15.根据所述安全参数,确定两个阶为p的乘法循环群和
16.根据两个乘法循环群生成双线性映射e;
17.从模为p的正整数域中随机选择第一随机数α、第二随机数β1及第三随机数β2,并确定哈希函数h;
18.所述公共参数为其中,和为两个乘法循环群,p为乘法循环群的阶,e为双线性映射,α为第一随机数、β1为第二随机数、β2为第三随机数,g为乘法循环群的生成元;所述系统主私钥包括第一随机数α、第二随机数β1及第三随机数β2。
19.可选地,所述授权机构根据所述公共参数、所述用户的属性集及所述系统主私钥,确定所述用户的用户私钥,具体包括:
20.所述授权机构检查所述用户所属的组,并确定用户所属组的组私钥;
21.所述授权机构根据所述系统主私钥、所述用户所属组的组私钥及所述公共参数,计算分密钥;
22.随机选择第四随机数,并根据所述用户所属组的组私钥、所述第四随机数及所述公共参数,生成协作密钥;
23.针对所述用户的任一属性,根据所述第四随机数、所述属性及所述公共参数,确定所述属性的属性密钥。
24.可选地,采用以下公式,计算分密钥:
[0025][0026]
其中,k为分密钥,g、α、β1均为公共参数,θm为组私钥。
[0027]
可选地,采用以下公式,确定协作密钥:
[0028][0029]
其中,e为协作密钥,g、β2均为公共参数,γ为第四随机数,θm为组私钥。
[0030]
可选地,采用以下公式,确定属性j的属性密钥:
[0031][0032]
其中,kj为属性j的属性密钥,g为公共参数,γ为第四随机数,h()为哈希函数,aj为属性j。
[0033]
可选地,所述密文关键字索引包括访问策略树、第一密文索引、第二密文索引、第
三密文索引及访问策略树中各节点的密文分量;
[0034]
所述数据拥有者根据所述公共参数、访问策略树及所述数据拥有者的属性集,对关键字索引集进行加密,得到密文关键字索引,具体包括:
[0035]
随机选择一个秘密值;
[0036]
根据所述秘密值、所述公共参数及所述关键字索引集,生成第一密文索引、第二密文索引及第三密文索引;
[0037]
根据所述秘密值,确定所述访问策略树中各节点的多项式;所述访问策略树中根节点的多项式中的常数为所述秘密值;
[0038]
根据各节点的多项式、所述公共参数及所述数据拥有者的属性集,确定各节点的密文分量。
[0039]
可选地,所述数据使用者根据所述公共参数及所述数据使用者的用户私钥,对待检索关键字进行加密,生成检索陷门,具体包括:
[0040]
根据所述数据使用者的分密钥、所述公共参数及所述待检索关键字,计算第一陷门分量;
[0041]
根据所述第一陷门分量、所述数据使用者各属性的属性密钥及所述数据使用者的协作密钥,确定检索陷门。
[0042]
可选地,根据所述公共参数、所述检索陷门、所述密文关键字索引、所述数据使用者的协作密钥及属性集、所述协同者的协作密钥及协作属性、所述访问策略树,确定解密关键字索引,具体包括:
[0043]
针对所述访问策略树中的任一叶子节点,根据所述公共参数、所述叶子节点的多项式,确定所述叶子节点的中间量;
[0044]
针对所述访问策略树中的任一非叶子节点,从叶子节点开始,根据所述非叶子节点的各子节点的多项式、所述数据使用者的协作密钥、所述协同者的协作密钥,采用拉格朗日插值多项式,自下而上计算所述非叶子节点的中间变量;根节点的中间变量为秘密值;
[0045]
根据所述访问策略树中根节点的中间变量、所述数据使用者的协作密钥及所述密文关键字索引,确定解密关键字索引。
[0046]
为实现上述目的,本发明还提供了如下方案:
[0047]
一种基于协同可搜索的密文数据共享系统,包括:
[0048]
授权机构,用于生成公共参数、系统主私钥及各组的组私钥;针对任一用户,根据所述公共参数、所述用户的属性集及所述系统主私钥,确定所述用户的用户私钥;每组包括多个用户;各用户的属性集中包括多个属性,多个属性分为普通属性及协同属性;所述用户私钥包括分密钥、协作密钥及各属性的属性密钥;同一组内各用户的组私钥相同;
[0049]
数据拥有者,用于根据所述公共参数、访问策略树及所述数据拥有者的属性集,对关键字索引集进行加密,得到密文关键字索引,并将所述访问策略树及所述密文关键字索引上传至云服务器;所述数据拥有者为用户;所述关键字索引集中包括多个关键字,各关键字链接至对应的数据文档;
[0050]
数据使用者,用于根据所述公共参数及所述数据使用者的用户私钥,对待检索关键字进行加密,生成检索陷门;
[0051]
云服务器,用于根据所述数据使用者的属性集及协同者的协同属性,判断是否满
足所述访问策略树,若不满足,则数据共享失败;若满足,则根据所述公共参数、所述检索陷门、所述密文关键字索引、所述数据使用者的协作密钥及属性集、所述协同者的协作密钥及协作属性、所述访问策略树,确定解密关键字索引;判断所述解密关键字索引是否存在于所述密文关键字索引中,若存在,则检索成功,将所述待检索关键字对应的数据文档发送至所述数据使用者。
[0052]
根据本发明提供的具体实施例,本发明公开了以下技术效果:通过授权机构生成公共参数、系统主私钥及各组的组私钥,并为每个用户生成用户私钥,其中用户私钥包括分密钥、协作密钥及属性密钥,数据拥有者根据公共参数、访问策略树及数据拥有者的属性集,对关键字索引集进行加密,得到密文关键字索引,并将访问策略树及密文关键字索引上传至云服务器;数据使用者根据公共参数及数据使用者的用户私钥,对待检索关键字进行加密,生成检索陷门,并上传至云服务器;云服务器根据数据使用者和协同者的属性集,判断是否满足访问策略树,若不满足,则数据共享失败;若满足,则根据公共参数、检索陷门、密文关键字索引、数据使用者的属性集、数据使用者的协作密钥、协同者的协作密钥及访问策略树,确定解密关键字索引;判断解密关键字索引是否存在于密文关键字索引中,若存在,则检索成功,将待检索关键字对应的数据文档发送至数据使用者。在数据使用者的属性不足以访问数据时,能够与协同者的属性协同访问,即实现了多人协同检索数据,提高了访问控制的灵活性。
附图说明
[0053]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0054]
图1为本发明基于协同可搜索的密文数据共享方法的流程图;
[0055]
图2为本发明基于协同可搜索的密文数据共享系统的示意图。
[0056]
符号说明:
[0057]
授权机构-1,数据拥有者-2,数据使用者-3,云服务器-4。
具体实施方式
[0058]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0059]
本发明的目的是提供一种基于协同可搜索的密文数据共享方法及系统,解决当某一用户属性权限不足以支持检索时,可以通过另一个用户的属性,在允许可控的范围内进行协同检索。
[0060]
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
[0061]
实施例一
[0062]
如图1所示,本发明基于协同可搜索的密文数据共享方法包括:
[0063]
s1:通过授权机构生成公共参数、系统主私钥及各组的组私钥。每组包括多个用户。各组的组私钥不同。每个项目都与一个不同的组相关联。对于每个组m,选择一个唯一的组密钥来隐式表示特定用户所属的哪个组。同一组内各用户的组私钥相同。各组的组私钥组密钥来隐式表示特定用户所属的哪个组。同一组内各用户的组私钥相同。各组的组私钥为模为p的整数域。在本实施例中,授权机构为根据每个用户的属性给每个用户授权的机构。
[0064]
具体地,步骤s1包括:
[0065]
s11:获取安全参数λ。
[0066]
s12:根据所述安全参数λ,确定两个阶为p的乘法循环群和
[0067]
s13:根据两个乘法循环群生成双线性映射
[0068]
s14:从模为p的正整数域中随机选择第一随机数α、第二随机数β1及第三随机数β2,并确定哈希函数在本实施例中,第一随机数α、第二随机数β1及第三随机数β2作为系统主私钥msk。公共参数作为系统主私钥msk。公共参数g为两个乘法循环群的生成元。将公共参数公开。
[0069]
s2:针对任一用户,授权机构根据所述公共参数pp、所述用户的属性集s={a1,a2,...,am}及所述系统主私钥msk,确定所述用户的用户私钥sk。各用户的属性集中包括n个属性a1,a2,...,an,n个属性分为普通属性及协同属性。所述用户私钥包括分密钥k、协作密钥e及各属性的属性密钥kj。
[0070]
具体地,授权机构检查用户所属的组,并确定用户所属组的组私钥θm。根据所述系统主私钥、所述用户所属组的组私钥及所述公共参数,计算分密钥:其中,k为分密钥,g为公共参数中乘法循环群的生成元、α为公共参数中的第一随机数、β1为公共参数中的第二随机数,θm为组私钥。
[0071]
随机选择第四随机数随机选择第四随机数为模为p的正整数域,并根据所述用户所属组的组私钥θm、所述第四随机数γ及所述公共参数pp,生成协作密钥:其中,e为协作密钥(用于协作的翻译密钥),g为公共参数中乘法循环群的生成元、β2为公共参数中的第三随机数,γ为第四随机数,θm为组私钥。
[0072]
针对所述用户的任一属性aj∈s,根据所述第四随机数、所述属性aj及所述公共参数pp,确定所述属性的属性密钥:其中,kj为属性j的属性密钥,g为公共参数中乘法循环群的生成元,γ为第四随机数,h()为公共参数中的哈希函数,aj为属性j,1《j《n。
[0073]
最终用户私钥为
[0074]
每个用户的私钥都与其属性相关联,且嵌入一个随机数,使得私钥的安全性更高,不可伪造。
[0075]
s3:数据拥有者根据所述公共参数pp、访问策略树t及所述数据拥有者的属性集,对关键字索引集w进行加密,得到密文关键字索引并将所述访问策略树t及所述密文关键字索引上传至云服务器。所述数据拥有者为用户。所述关键字索引集中包括多个关键字,各关键字链接至对应的数据文档。访问策略树t上的一些节点设置为转换节点,即可以用于协同的节点。叶子节点对应用户的各个属性。
[0076]
进一步地,步骤s3包括:
[0077]
s31:随机选择一个秘密值s,
[0078]
s32:根据所述秘密值s、所述公共参数pp及所述关键字索引集w,生成第一密文索引第二密文索引及第三密文索引其中,其中,h()为公共参数中的哈希函数,g为公共参数中乘法循环群的生成元,α为公共参数中的第一随机数,β1为公共参数中的第二随机数,β2为公共参数中的第三随机数,e为公共参数中的双线性映射。
[0079]
s33:根据所述秘密值,确定所述访问策略树t中各节点的多项式。所述访问策略树中根节点的多项式中的常数为所述秘密值。
[0080]
具体地,对于访问策略树t中的每个非叶子节点,数据所有者从根节点r开始,以自顶而下的方式选择一个d
x
度的多项式q
x
::a'、b'、c'、d'、e'均为常数,其中d
x
=k
x-1,k
x
为节点x的阈值。
[0081]
对于访问策略树t的根节点,设置根节点的多项式q
root
(0)=s。
[0082]
对于其他的非根节点,设置q
x
(0)=q
parent(x)
(index(x)),其中,叶子节点的度为0。index(x)表示节点x的一个标签,q
parent(x)
表示节点x的父节点的多项式。
[0083]
s34:根据各节点的多项式、所述公共参数及所述数据拥有者的属性集,确定各节点的密文分量。叶子节点的密文分量包括第一密文分量和第二密文分量
[0084]
对于每个叶子节点,采用公式计算第一密文分量,采用公式计算第二密文分量,其中,g为公共参数中乘法循环群的生成元,q
x
(0)为节点x的多项式,h()为公共参数中的哈希函数,att(x)为节点x对应的数据拥有者的属性。
[0085]
对于每个转换节点y,采用公式计算密文分量,其中,g为公共参数中乘法循环群的生成元,β2为公共参数中的第三随机数,qy(0)为节点y的多项式。
[0086]
因此,密文关键字索引为
[0087]
s4:数据使用者根据所述公共参数及所述数据使用者的用户私钥,对待检索关键字进行加密,生成检索陷门,并上传至云服务器。
[0088]
进一步地,步骤s4包括:
[0089]
s41:根据所述数据使用者的分密钥k、所述公共参数pp及所述待检索关键字q,计算第一陷门分量算第一陷门分量其中,α为公共参数中的第一随机数、
β1为公共参数中的第二随机数,h()为公共参数中的哈希函数,θm为组私钥。
[0090]
s42:根据所述第一陷门分量所述数据使用者各属性的属性密钥及所述数据使用者的协作密钥e,确定检索陷门用者的协作密钥e,确定检索陷门用者的协作密钥e,确定检索陷门su为数据使用者的属性集合,a为数据使用者的属性,ta为属性a的属性密钥,γ为第四随机数,g为公共参数中乘法循环群的生成元,h()为公共参数中的哈希函数。
[0091]
s5:云服务器根据所述数据使用者的属性集及协同者的协同属性,判断是否满足所述访问策略树,若不满足,则数据共享失败;若满足,则根据所述公共参数、所述检索陷门、所述密文关键字索引、所述数据使用者的协作密钥及属性集、所述协同者的协作密钥及协同属性、所述访问策略树,确定解密关键字索引。
[0092]
具体地,首先云服务器会判断数据使用者的属性集合是否满足加密索引的访问策略树t,即将数据使用者的属性集代入访问策略树各叶子节点的多项式中,若最后能够解密出访问策略树的秘密值s,则满足访问策略,若不满足访问策略,则返回


[0093]
进一步地,步骤s5中,根据所述公共参数、所述检索陷门、所述密文关键字索引、所述数据使用者的协作密钥及属性集、所述协同者的协作密钥及协同属性、所述访问策略树,确定解密关键字索引,具体包括:
[0094]
针对所述访问策略树中的任一叶子节点,根据所述公共参数、所述叶子节点的多项式,确定所述叶子节点的中间量f
x
::
[0095]
针对所述访问策略树中的任一非叶子节点,从叶子节点开始,根据所述非叶子节点的各子节点的多项式、所述数据使用者的协作密钥、所述协同者的协作密钥,采用拉格朗日插值多项式,自下而上计算所述非叶子节点的中间变量。
[0096]
具体地,首先计算节点x的k
x
个子节点z的中间变量个子节点z的中间变量并将其存储在s
x
中。s
x
表示选择满足的子节点来满足节点x所表示的谓词。e

为协同者的协作密钥。f
′z为协同属性的中间变量。
[0097]
如果没有这样的k
x
大小的子节点z,则返回

,即查询失败。
[0098]
其次使用拉格朗日插值多项式计算中间量其次使用拉格朗日插值多项式计算中间量通过如此迭代循环,根节点r的中间变量计算为
[0099]
根据所述访问策略树中根节点的中间变量、所述数据使用者的协作密钥及所述密文关键字索引,确定解密关键字索引。
[0100]
具体地,云服务器采用公式计算总中间量f。再按照
该匹配公式计算解密关键字索引
[0101]
s6:判断所述解密关键字索引i与所述密文关键字索引中的第一密文索引是否对应,若对应,则检索成功,将所述待检索关键字对应的数据文档发送至所述数据使用者。即若解密关键字索引存在于密文关键字索引中,则检索成功。
[0102]
本发明在密钥生成阶段时生成协同密钥,并在检索时在协同密钥的协作下实现密文关键字的检索,实现了某一用户可在允许可控的范围内在另一用户的协同下进行密文关键字的检索。并且基于dbdh(decisional bilinear diffie-hellman)困难问题假设,能够在选择明文攻击下能保证数据的机密性,并能抵抗共谋攻击。
[0103]
实施例二
[0104]
为了执行上述实施例一对应的方法,以实现相应的功能和技术效果,下面提供一种基于协同可搜索的密文数据共享系统。
[0105]
如图2所示,本实施例提供的基于协同可搜索的密文数据共享系统包括:授权机构1、数据拥有者2、数据使用者3及云服务器4。
[0106]
其中,授权机构1用于生成公共参数、系统主私钥及各组的组私钥;针对任一用户,根据所述公共参数、所述用户的属性集及所述系统主私钥,确定所述用户的用户私钥。每组包括多个用户。各用户的属性集中包括多个属性,多个属性分为普通属性及协同属性。所述用户私钥包括分密钥、协作密钥及各属性的属性密钥。同一组内各用户的组私钥相同。
[0107]
数据拥有者2用于根据所述公共参数、访问策略树及所述数据拥有者的属性集,对关键字索引集进行加密,得到密文关键字索引,并将所述访问策略树及所述密文关键字索引上传至云服务器4。所述数据拥有者2为用户。所述关键字索引集中包括多个关键字,各关键字链接至对应的数据文档。
[0108]
数据使用者3用于根据所述公共参数及所述数据使用者3的用户私钥,对待检索关键字进行加密,生成检索陷门。
[0109]
云服务器4用于根据所述数据使用者3的属性集及协同者的协同属性,判断是否满足所述访问策略树,若不满足,则数据共享失败;若满足,则根据所述公共参数、所述检索陷门、所述密文关键字索引、所述数据使用者3的协作密钥及所述数据使用者的属性集、所述协同者的协作密钥及协作属性、所述访问策略树,确定解密关键字索引;判断所述解密关键字索引是否存在于所述密文关键字索引中,若存在,则检索成功,将所述待检索关键字对应的数据文档发送至所述数据使用者3。
[0110]
在本实施例中,授权机构1、数据拥有者2、数据使用者3均为计算机或其他终端设备。
[0111]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
[0112]
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献