细粒度查询授权的可搜索加密方法及系统.pdf

上传人:g**** 文档编号:11719430 上传时间:2021-10-15 格式:PDF 页数:25 大小:1.16MB
收藏 版权申诉 举报 下载
细粒度查询授权的可搜索加密方法及系统.pdf_第1页
第1页 / 共25页
细粒度查询授权的可搜索加密方法及系统.pdf_第2页
第2页 / 共25页
细粒度查询授权的可搜索加密方法及系统.pdf_第3页
第3页 / 共25页
文档描述:

《细粒度查询授权的可搜索加密方法及系统.pdf》由会员分享,可在线阅读,更多相关《细粒度查询授权的可搜索加密方法及系统.pdf(25页完成版)》请在专利查询网上搜索。

1、(19)中华人民共和国国家知识产权局 (12)发明专利申请 (10)申请公布号 (43)申请公布日 (21)申请号 201910232696.3 (22)申请日 2019.03.26 (71)申请人 长沙学院 地址 410003 湖南省长沙市开福区洪山路 98号 (72)发明人 尹辉熊荫乔李方敏 (74)专利代理机构 湖南兆弘专利事务所(普通 合伙) 43008 代理人 谭武艺 (51)Int.Cl. H04L 29/06(2006.01) H04L 9/08(2006.01) H04L 9/06(2006.01) (54)发明名称 一种细粒度查询授权的可搜索加密方法及 系统 (57)摘要 本。

2、发明公开了一种细粒度查询授权的可搜 索加密方法及系统, 实施步骤包括数据提供者从 原始数据中抽取索引关键字、 对原始数据进行加 密; 生成两个密钥sk1和sk2; 为索引关键字建立 访问控制树、 对索引关键字进行加密, 将加密的 数据文件和加密的索引关键字提交至服务器; 查 询用户使用数据提供者授权的私钥对查询关键 字进行加密, 并将密文发送至服务器; 服务器根 据加密的查询关键字在加密索引关键字中进行 检索, 并返回满足查询要求的加密数据给查询用 户, 查询用户在本地解密密文得到明文。 本发明 在加密的数据上同时实现细粒度的数据访问控 制和密文搜索功能, 查询用户的属性数量对加密 查询关键字。

3、的时间开销基本没有影响, 适合多线 程并行处理, 具有密文存储空间小、 查询效率高 等优点。 权利要求书4页 说明书14页 附图6页 CN 109981643 A 2019.07.05 CN 109981643 A 1.一种细粒度查询授权的可搜索加密方法, 其特征在于实施步骤包括: 1)数据提供者从原始数据中抽取索引关键字集合W, 并使用对称加密算法加数据; 生成 两个密钥sk1和sk2; 对每一个索引关键字wW, 根据其系统访问权限定义一棵访问控制树 Tw, 使用密钥sk2和访问控制树Tw对索引关键字w进行加密, 得到索引关键字密文Iw。 最后将 加密数据和索引关键字密文提交至服务器; 2)。

4、查询用户u向数据提供者发送申请加入系统的请求。 数据提供者收到请求后对查询 用户u进行身份认证, 并利用u的属性信息和密钥sk1为其生成私钥Uu; 3)查询用户u使用私钥Uu对查询关键字w0进行加密, 得到相应的密文Tu(w0), 并发送至服 务器; 4)服务器根据Tu(w0)在加密的索引关键字Iw中进行检索, 并把满足查询要求的加密数 据返回给查询用户u; 5)查询用户u在对密文进行解密得到明文数据。 2.根据权利要求1所述的细粒度查询授权的可搜索加密方法, 其特征在于, 步骤1)中生 成两个密钥sk1和sk2的详细步骤包括: 选择两个阶为q的乘法循环群G1和G2, 定义双线性映射e将G1G。

5、1映射到G2, 用表示取 值为1至q-1之间且与q互素的整数构成模q的乘法群。 利用以上工具构造如式(1)所示的密 钥sk1和sk2; 式(1)中, 密钥sk1包括 、 1/ 、 g 三个元素, 密钥sk2包括e(g,g)和h两个元素, 其中 , 分 别从中随机均匀选择。 1/ 表示 在上的逆元, g为乘法循环群G1的生成元; e(g,g)表示 G1的生成元g的一次双线性映射运算后、 将其值再进行 次幂运算, h等于乘法循环群G1的生 成元g的 次幂运算。 3.根据权利要求1所述的细粒度查询授权的可搜索加密方法, 其特征在于, 步骤1)中为 索引关键字w建立访问控制树Tw的详细步骤包括: 定义。

6、访问控制树Tw, 所述访问控制树Tw中的非叶子节点表示一个阈值门, 其阈值门包含 与门AND、 或门OR、 取部分属性阈值门m_of_n(表示n个元素中任意取m个元素)三种类型, 每 个叶子节点表示一个属性; 从访问控制树Tw的根节点开始, 以自上而下的方式, 为Tw中的每一个节点x构造一个多 项式qx, 并设置qx最高次项的次数为该节点的阈值少1, 且非叶子节点中的与门AND节点的阈 值为该节点孩子节点数量、 或门OR节点的阈值为1、 取部分属性阈值门m_of_n节点的阈值为 m, 叶子节点的阈值为1; 对于访问控制树Tw的根节点R, 数据拥有者从乘法群随机选择一个元素作为秘密值s, 构造关。

7、于根节点R的一个多项式qR, 设置该多项式的常数项为以上秘密值s, 即qR(0)s, 然 后根据根节点R的度dR选择dR个随机值, 完整定义根节点R的多项式qR; 对任何其它节点x, 构 造关于节点x的一个多项式qx, 设置该多项式的常数项的值为qparent(x)(index(x), qparent(x) (index(x)表示在关于节点x的父节点parent(x)的多项式中未知数取index(x)时的值, 其 权利要求书 1/4 页 2 CN 109981643 A 2 中parent(x)表示节点x的父节点, index(x)表示节点x在其父节点parent(x)中的索引号; 然后根据节。

8、点x的度dx选择其余的dx个随机值, 完整定义节点x的多项式qx。 4.根据权利要求1所述的细粒度查询授权的可搜索加密方法, 其特征在于, 步骤1)中使 用密钥sk2和访问控制树Tw对索引关键字进行加密得到索引关键字密文Iw的函数表达式如 式(2)所示; 式(2)中, Iw表示使用密钥sk2和访问控制树加密索引关键字w的结果, Iw的密文组件包 括Tw、 Iw、 I”w三个元素以及与访问控制树Tw的任一叶子节点y对应的Iy和Iy; Iw为用哈希 函数H1对索引关键字w进行哈希运算、 映射为乘法群上的一个元素H1(w), 再用秘密值s和 H1(w)做乘积运算得到sH1(w), 然后用密钥sk2中。

9、的e(g,g)进行sH1(w)次幂运算得到的结果; I”w为用密钥sk2中的h进行sH1(w)次幂运算得到的结果; y表示访问控制树Tw中叶子节点集 合Y中的一个叶子节点, Iy为对叶子节点y用乘法群G1的生成元g进行qy(0)次幂运算得到的 结果; Iy为用哈希函数H2对叶子节点y的属性信息attr(y)进行哈希运算映射到乘法群G1上 的一个元素, 再进行qy(0)次幂运算得到的结果。 5.根据权利要求2所述的细粒度查询授权的可搜索加密方法, 其特征在于, 步骤2)中根 据查询用户u的用户属性信息, 数据提供者采用密钥sk1为u生成私钥Uu的函数表达式如式 (3)所示; 式(3)中, Uu表。

10、示用户u的密钥, Uu包括U1、 U2以及与用户属性集合S中的任一属性a对应的 私钥部件Ua和Ua, 其中U1为使用密钥sk1中的g 进行1/ 次幂运算得到的结果, U2为对乘法群 G1的生成元g进行密钥sk1中的1/ 次幂运算得到的结果, a为查询用户u的用户属性集合S中 的一个属性, ra为属性a的一个随机元素且由数据提供者从乘法群中随机选取; 对查询用 户u的属性a使用哈希函数H2映射到乘法群G1上再进行ra次幂运算得到Ua; 对乘法群G1的生成 元g进行ra次幂运算得到Ua。 6.根据权利要求5所述的细粒度查询授权的可搜索加密方法, 其特征在于, 步骤3)中密 文Tu(w0)的结构如式。

11、(4)所示; 式(4)中, Tu(w0)为查询用户u使用私钥Uu对查询关键字w0进行加密得到的密文。 Tu(w0) 的密文组件包括T1,Ta和Ta, 其中T1表示查询用户u的私钥Uu中的U1与U2两个组件的r次幂结 果乘积, r为查询用户u随机地从乘法群中选取的一个元素, g为乘法群G1的生成元; a为查 询用户u的用户属性集合S中的一个属性, 查询用户u首先用哈希函数H1将查询关键字w0映射 权利要求书 2/4 页 3 CN 109981643 A 3 为乘法群上的一个元素H1(w0),再用元素r计算乘积值rH1(w0), 然后对乘法群G1的生成元 g做rH1(w0)次幂运算得到结果最后用查。

12、询用户u的私钥Uu中的私钥组件Ua计算乘积 得到Ta; Ta设置为查询用户u的私钥Uu中的私钥部件Ua。 7.根据权利要求5所述的细粒度查询授权的可搜索加密方法, 其特征在于, 步骤4)的详 细步骤包括: 4.1)服务器根据密文Tu(w0)判断查询用户u是否具有对加密索引关键字Iw的查询权限, 如果查询用户u不具有对加密索引关键字Iw的查询权限, 则查询结束并退出; 否则, 得到查 询用户u对索引关键字w的查询权限FR, 跳转执行步骤4.2); 4.2)服务器根据查询用户u对索引关键字w的查询权限FR, 判断查询用户u提交的查询关 键字w0是否与加密索引关键字Iw相等, 如果不相等则判定查询失。

13、败, 结束并退出; 否则判定 查询成功, 将满足查询要求的加密数据返回给查询用户u; 跳转执行步骤5)。 8.根据权利要求7所述的细粒度查询授权的可搜索加密方法, 其特征在于, 步骤4.1)中 判断查询用户u是否具有对加密索引关键字Iw的查询权限的详细步骤包括: 对于Tw中的每一个叶子节点x, 如果叶子节点x对应的属性a隶属于查询用户u的用户属 性集合S, 则根据式(5)计算查询用户u对叶子节点x的查询权限Fx, 如果属性a不属于查询用 户u的用户属性集合S, 则设置查询用户u对叶子节点x的查询权限Fx为空; 式(5)中, 其中Ta, Ta为查询用户提交的加密查询关键字密文组件, Ix,Ix为。

14、索引关键字 w的加密索引Iw中的密文组件, e表示一个双线性映射, g是群G1的生成元; 对于每一个节点阈值为kx的非叶子节点x, 如果存在一个包含kx个x的孩子节点的集合 Sx, 且对每个孩子节点zSx都满足Fz不为空, 其中Fz表示查询用户u对孩子节点z的查询权 限, 则根据式(6)计算查询用户u对非叶子节点x的查询权限Fx; 如果没有这样的集合存在, 则表明查询用户u的属性集合S不满足节点x的阈值, 那么定义查询用户u对非叶子节点x的 查询权限Fx为空; 式(6)中, Fx为查询用户u对非叶子节点x的查询权限, Fz表示查询用户u对孩子节点z的 查询权限, iindex(z),是拉格朗日。

15、系数, e是表示双线性 映射, g是群G1的生成元; 对 于 访 问 控 制 树 Tw的 根 节 点 , 根 据 以 上 递 归 操 作 后 , 如 果 可 以 得 到 则说明查询用户u的属性集合S满足访问控制树Tw, 该用户具有对关键字w的查询权限, 查询过程继续; 否则FR为空, 说明查询用户u的属性集合 S不满足访问控制树Tw, 则判定查询用户u不具有对加密索引关键字Iw的查询权限, 此时查询 过程结束。 9.根据权利要求7所述的细粒度查询授权的可搜索加密方法, 其特征在于, 步骤4.2)中 权利要求书 3/4 页 4 CN 109981643 A 4 判断查询用户u提交的查询关键字w0。

16、是否与加密索引关键字Iw相等的函数表达式如式(7)所 示; 式(7)中, Iw和I”w为索引关键字密文Iw中的密文组件, e为双线性映射, T1为查询用户提 交的加密查询关键字密文组件, FR为查询用户u对索引关键字w的查询权限。 10.一种细粒度查询授权的可搜索加密系统, 包括计算机设备, 其特征在于: 所述计算 机设备被编程以执行权利要求19中任意一项所述细粒度查询授权的可搜索加密方法的 步骤, 或者所述计算机设备的存储介质上存储有被编程以执行权利要求19中任意一项所 述细粒度查询授权的可搜索加密方法的计算机程序。 权利要求书 4/4 页 5 CN 109981643 A 5 一种细粒度查。

17、询授权的可搜索加密方法及系统 技术领域 0001 本发明涉及信息检索和密码学领域, 具体涉及一种细粒度查询授权的可搜索加密 方法及系统, 能够同时实现密文搜索和密文的细粒度访问控制, 非常适合于云存储系统中 的数据安全共享和信息检索应用场景。 背景技术 0002 随着云计算的快速发展和普及, 越来越多的用户开始考虑将自己的私有数据迁移 到云计算中心, 一方面减少本地IT投入, 另一方面借助于云计算平台的强大功能存储和处 理数据。 然而, 数据安全一直是人们担忧的关键问题之一。 因为数据一旦被外包至远程的云 中心, 它们将脱离数据所有者的直接物理控制。 这样, 数据面临着外部攻击者和云内部恶意 。

18、管理员的双重威胁。 数据提供者在外包数据之前, 对数据进行加密是保护数据安全的有效 途径之一。 然而, 传统的分组密码技术仅仅能保证数据的机密性, 缺乏对密文进行高效搜索 和访问控制的支持。 0003 可搜索加密(Searchable Encryption)是近年来学术界和工业界共同关注的密码 学原语, 它能够同时提供数据机密性保护和密文搜索功能。 目前, 可搜索加密技术在增强数 据安全强度和丰富查询功能的研究上取得了一定的突破, 提出了支持数据动态更新的前向 安全、 后向安全、 组合安全, 多关键字排名查询, 多关键字析取合取查询, 模糊查询, 个性化 智能查询等方案。 这些方案能够保证数据。

19、机密性的同时达到像百度、 谷歌专业搜索引擎的 查询灵活性。 然而, 它们缺乏对查询用户的查询权限的控制, 查询用户能够采用任何关键字 对加密数据进行任意查询。 在一些实际的应用场景中, 数据提供者需要根据查询用户的角 色权限严格地控制查询用户的查询权限。 比如, 一个公司的开发人员可以查询加密的技术 文档但无权访问财务报表, 财务人员可以获取财务报表而无法查询技术文档等。 图1所示的 模型图简要说明了这种应用场景。 0004 属性加密(Attribute-based Encryption)允许数据发布者根据数据用户的属性 (比如指纹、 虹膜、 角色、 职位等)对数据用户的数据访问能力进行细粒度。

20、控制。 其基本原理 是在密文或密文解密密钥中嵌入访问控制策略, 当且仅当数据访问者的属性集合满足访问 控制策略时, 才能对密文进行有效解密。 这样的加密机制能够灵活方便地设置数据的加密 条件、 控制用户的解密范围, 非常适合需要保护数据机密性, 而且需要对数据进行访问控制 的分布式数据共享环境。 依据访问控制策略被嵌入到密文还是密钥中, 属性加密主要分为 密文策略属性加密和密钥策略属性加密。 0005 为了在加密的数据上同时实现细粒度的访问控制和基于关键字的查询, 研究者提 出了基于属性的可搜索加密方法。 但是, 已存在的一些方法主要采用线性秘密共享方案 LSSS(Linear Secret 。

21、Sharing Scheme)实现访问控制, 其访问结构仅仅支持 “AND” ,“OR” 关系, 不能有效地表达 “阈值” 门限, 在访问控制结构的表达上非常受限。 还有一些方法使用 合数阶群构造基于访问控制的可搜索加密, 但是由于使用合数阶群, 其方案的查询效率非 常低下, 在实际的检索系统中并不适用。 还有方案使用密钥策略属性加密方案构造可搜索 说明书 1/14 页 6 CN 109981643 A 6 加密, 但这类方案虽然可以实现访问结构的 “AND” ,“OR” 和 “阈值” 关系, 但继承了密钥策略 属性加密的缺点, 即: 访问控制策略被集成在数据解密密钥中而不是数据中, 而且系统。

22、的正 确性需要依靠可信的密钥分发中心分发正确的密钥给正确的用户。 因为访问策略由密钥分 发中心定义并被嵌入到密钥而不是数据中, 所以数据提供者无法为加密的数据定义访问控 制结构并加密数据、 实现广播环境下的数据安全共享, 不适合可搜索加密的真实应用场景。 0006 2007年, Bethencourt等人设计了一个优秀的密文策略属性加密方案, 并已经在各 个领域中得到了广泛应用。 本发明利用该属性加密方案, 创新性地为其装备基于密文的关 键字搜索能力, 构造一个关键字细粒度查询授权的可搜索加密方法。 与相关技术相比, 本发 明所述方法具有如下创新: (1)是一种基于密文策略属性加密的可搜索加密。

23、方法, 允许数据 提供者根据查询用户的属性细粒度地控制用户查询能力, 对加密的数据实施访问控制; (2) 使用访问控制树结构表达访问控制策略, 能够表示属性的 “AND” ,“OR” 和 “阈值” 关系, 访问 控制策略具有很强的表达能力和灵活性。 (3)通过巧妙地设计索引关键字加密、 查询关键字 加密以及它们之间匹配算法, 该方法无缝地为Bethencourt等人提出的密文策略属性加密 方案集成了基于密文的关键字搜索能力, 具有一定的实用性。 发明内容 0007 本发明要解决的技术问题: 针对现有技术的上述问题, 提供一种细粒度查询授权 的可搜索加密方法及系统, 本发明在加密的数据上同时实现。

24、细粒度的数据访问控制和密文 搜索功能, 且查询用户的属性数量对加密查询关键字的时间开销基本没有影响, 具有查询 效率高的优点, 适合多线程并行处理。 0008 为了解决上述技术问题, 本发明采用的技术方案为: 0009 一种细粒度查询授权的可搜索加密方法, 实施步骤包括: 0010 1)数据提供者从原始数据中抽取索引关键字集合W, 并使用对称加密算法加数据; 生成两个密钥sk1和sk2; 对每一个索引关键字wW, 根据其系统访问权限定义一棵访问控制 树Tw, 使用密钥sk2和访问控制树Tw对索引关键字w进行加密得到索引关键字密文Iw, 将加密 数据、 所有的索引关键字密文提交至服务器; 001。

25、1 2)查询用户u向数据提供者发送申请加入系统的请求。 数据提供者收到请求后对 查询用户u进行身份认证, 并利用u的属性信息和密钥sk1为其生成私钥Uu; 0012 3)查询用户u使用私钥Uu对查询关键字w0进行加密, 得到密文Tu(w0)并发送至服务 器; 0013 4)服务器根据密文Tu(w0)在加密索引关键字Iw中进行检索, 并把满足查询要求的 加密数据返回给查询用户u; 0014 5)查询用户u对密文进行解密得到明文数据。 0015 优选地, 步骤1)中生成两个密钥sk1和sk2的详细步骤包括: 0016选择两个阶为q的乘法循环群G1和G2, 定义双线性映射e将G1G1映射到G2, 用。

26、表 示取值为1至q-1之间且与q互素的整数构成模q的乘法群。 利用以上工具构造如式(1)所示 的密钥sk1和sk2; 说明书 2/14 页 7 CN 109981643 A 7 0017 0018 式(1)中, 密钥sk1包括 、 1/ 、 g 三个元素, 密钥sk2包括e(g,g)和h两个元素, 其中 , 分别为从乘法群中随机均匀选择两个元素, 1/ 表示对元素 求乘法群上的逆元, g 为乘法循环群G1的生成元; e(g,g)为乘法循环群G1生成元g进行一次双线性映射后求 次幂 的运算结果, h等于乘法循环群G1的生成元g的 次幂运算结果。 0019 优选地, 步骤1)中为索引关键字w建立访。

27、问控制树Tw的详细步骤包括: 0020 定义访问控制树Tw, 所述访问控制树Tw中的非叶子节点表示一个阈值门, 该阈值门 包括与门AND、 或门OR、 取部分属性阈值门m_of_n三种类型, 每个叶子节点表示一个属性; 0021 从访问控制树Tw的根节点开始, 以自上而下的方式, 为Tw中的每一个节点x构造一 个多项式qx, 并设置qx最高次项的次数为该节点的阈值少1, 且非叶子节点中与门AND节点的 阈值为该节点孩子节点数量、 或门OR节点的阈值为1、 取部分属性阈值门m_of_n节点的阈值 为m, 叶子节点的阈值全部为1; 0022对于访问控制树Tw的根节点R, 数据拥有者从乘法群随机选择。

28、一个元素作为秘 密值s, 构造关于根节点R的一个多项式qR, 设置该多项式的常数项为以上秘密值s, 即qR(0) s, 然后根据根节点R的度dR选择dR个随机值, 完整定义根节点R的多项式qR; 对任何其它节 点x, 构造关于节点x的一个多项式qx, 设置该多项式的常数项的值为qparent(x)(index(x), qparent(x)(index(x)表示在关于节点x的父节点parent(x)的多项式中未知数取index(x)时 的值, 其中parent(x)表示节点x的父节点, index(x)表示节点x关于其父节点的索引号; 然 后根据节点x的度dx选择其余的dx个随机值, 完整定义节。

29、点x的多项式qx。 0023 优选地, 步骤1)中使用密钥sk2和访问控制树Tw对索引关键字w进行加密得到索引 关键字密文Iw的表达式如式(2)所示; 0024 0025 式(2)中, Iw表示使用密钥sk2和访问控制树加密索引关键字w的结果, Iw的密文组 件包括Tw、 Iw、 Iw三个元素以及与访问控制树Tw中的任一叶子节点y对应的Iy和Iy; Iw为 用哈希函数H1对索引关键字w进行哈希运算、 映射为乘法群上的一个元素H1(w), 再用秘 密值s和H1(w)做乘积运算得到sH1(w), 然后用密钥sk2中的e(g,g)进行sH1(w)次幂运算得到 的结果; Iw为用密钥sk2中的h进行s。

30、 H1(w)次幂运算得到的结果; y表示访问控制树Tw中叶 子节点集合Y中的一个叶子节点, Iy为对叶子节点y用乘法群G1的生成元g进行qy(0)次幂运 算得到的结果; Iy为用哈希函数H2对叶子节点y的属性信息attr(y)进行哈希运算映射到乘 法群G1上的一个元素, 再进行qy(0)次幂运算得到的结果。 0026 优选地, 步骤2)中根据查询用户u的用户属性信息, 数据提供者采用密钥sk1为u生 成私钥Uu的表达式如式(3)所示; 说明书 3/14 页 8 CN 109981643 A 8 0027 0028 式(3)中, Uu表示用户u的密钥, Uu包括U1、 U2和与用户属性集合S中的。

31、任一属性a对 应的私钥部件Ua和Ua, 其中U1为使用密钥sk1中的g 进行1/ 次幂运算得到的结果, U2为对乘 法群G1的生成元g进行密钥sk1中的1/ 次幂运算得到的结果, a为查询用户u的用户属性集合 S中的一个属性, ra为属性a的一个随机元素且由数据提供者从乘法群中随机选取; 对查 询用户u的属性a使用哈希函数H2映射到乘法群G1上再进行ra次幂运算得到Ua; 对乘法群G1的 生成元g进行ra次幂运算得到Ua。 0029 优选地, 步骤3)中密文Tu(w0)的结构如式(4)所示; 0030 0031 式(4)中, Tu(w0)为查询用户u使用私钥Uu对查询关键字w0进行加密得到的密。

32、文。 Tu (w0)的密文组件包括T1,Ta和Ta, 其中T1表示查询用户u的私钥Uu中的U1与U2两个组件的r次 幂结果乘积, r为查询用户u随机地从乘法群中选取的一个元素, g为乘法群G1的生成元; a 为查询用户u的用户属性集合S中的一个属性, 查询用户u首先用哈希函数H1将查询关键字w0 映射为乘法群上的一个元素H1(w0),再用元素r计算乘积值rH1(w0), 然后对乘法群G1的生 成元g做rH1(w0)次幂运算得到结果最后用查询用户u的私钥Uu中的私钥组件Ua计算 乘积得到Ta; Ta设置为查询用户u的私钥Uu中的私钥部件Ua。 0032 优选地, 步骤4)的详细步骤包括: 003。

33、3 4.1)服务器根据密文Tu(w0)判断查询用户u是否具有对加密索引关键字Iw的查询 权限, 如果查询用户u不具有对加密索引关键字Iw的查询权限, 则查询结束并退出; 否则, 得 到查询用户u对索引关键字w的查询权限FR, 跳转执行步骤4.2); 0034 4.2)服务器根据查询用户u对索引关键字w的查询权限FR判断查询用户u提交的查 询关键字w0是否与加密索引关键字Iw相等, 如果不相等则判定查询失败, 结束并退出; 否则 判定查询成功, 将满足查询要求的加密数据返回给查询用户u; 跳转执行步骤5)。 0035 优选地, 步骤4.1)中判断查询用户u是否具有对加密索引关键字Iw的查询权限的。

34、 详细步骤包括: 0036 首先对访问控制树Tw自下而上进行递归操作: 0037 对于Tw中的每一个叶子节点x, 如果叶子节点x对应的属性a隶属于查询用户u的用 户属性集合S, 则根据式(5)计算查询用户u对叶子节点x的查询权限Fx, 如果属性a不属于查 询用户u的用户属性集合S, 则设置查询用户u对叶子节点x的查询权限Fx为空; 说明书 4/14 页 9 CN 109981643 A 9 0038 0039 式(5)中, 其中Ta, Ta为查询用户提交的加密查询关键字密文组件, Ix,Ix为索引 关键字w的加密索引Iw中的密文组件, e表示一个双线性映射, g是群G1的生成元; 对于每一个 。

35、节点阈值为kx的非叶子节点x, 如果存在一个包含kx个x的孩子节点的集合Sx, 且对每个孩子 节点zSx都满足Fz不为空, 其中Fz表示查询用户u对孩子节点z的查询权限, 则根据式(6)计 算查询用户u对非叶子节点x的查询权限Fx; 如果没有这样的集合存在, 则表明查询用户u的 属性集合S不满足节点x的阈值, 那么定义查询用户u对非叶子节点x的查询权限Fx为空; 0040 0041 式(6)中, Fx为查询用户u对非叶子节点x的查询权限, Fz表示查询用户u对孩子节点 z的查询权限, iindex(z),是拉格朗日系数, e表示一个双 线性映射, g是乘法群G1的生成元; 0042 对 于 访。

36、 问 控 制 树 Tw的 根 节 点 , 根 据以 上 递 归 操 作 后 , 如 果 可 以 得 到 则说明查询用户u的属性集合S满足访问控制树Tw, 该用户具有对关键字w的查询权限, 查询过程继续; 否则FR为空, 说明查询用户u的属性集合 S不满足访问控制树Tw, 则判定查询用户u不具有对加密索引关键字Iw的查询权限, 此时查询 过程结束。 0043 优选地, 步骤4.2)中判断查询用户u提交的查询关键字w0是否与加密索引关键字Iw 相等的函数表达式如式(7)所示; 0044 0045 式(7)中, Iw和Iw为索引关键字密文Iw中的密文组件, e为双线性映射, T1为查询 用户提交的加。

37、密查询关键字密文组件, FR为查询用户u对索引关键字w的查询权限。 0046 本发明还提供一种细粒度查询授权的可搜索加密系统, 包括计算机设备, 所述计 算机设备被编程以执行本发明前述细粒度查询授权的可搜索加密方法的步骤, 或者计算机 设备的存储介质上存储有被编程以执行本发明前述细粒度查询授权的可搜索加密方法的 计算机程序。 0047 和现有技术相比, 本发明具有下述优点: 本发明通过数据提供者将原始数据抽取 索引关键字并加密生成加密数据, 生成两个密钥, 为索引关键字建立访问控制树, 生成加密 索引关键字, 将加密数据、 所有加密索引关键字及访问控制树提交至服务器; 查询用户使用 数据提供者。

38、提供的私钥对查询关键字进行加密得到密文并发送至服务器; 服务器根据密文 在加密索引关键字中进行检索, 并返回满足查询要求的加密数据返回给查询用户; 查询用 户解密加密数据得到明文数据, 在加密的数据上同时实现细粒度的数据访问控制和密文搜 说明书 5/14 页 10 CN 109981643 A 10 索功能, 且查询用户的属性数量对加密查询关键字的时间开销基本没有影响, 具有查询效 率高的优点, 适合多线程并行处理。 附图说明 0048 图1为本发明实施例的应用环境结构示意图。 0049 图2为本发明实施例的应用原理示意图。 0050 图3为本发明实施例中的访问控制树结构。 0051 图4为本。

39、发明实施例中查询用户授权的时间开销实验图。 0052 图5为本发明实施例中查询用户加密查询关键字的时间开销实验图。 0053 图6为本发明实施例中固定数据文件数量变化索引关键字数量时, 索引关键字加 密的时间开销实验图; 0054 图7为本发明实施例中固定索引关键字数量变化数据文件数量时, 索引关键字加 密的时间开销实验图; 0055 图8为本发明实施例中固定数据文件数量变化索引关键字数量时, 云服务器执行 查询的时间开销实验图; 0056 图9为本发明实施例中固定数据文件数量为4000和属性数量为5时, 云服务器执行 查询的时间开销实验图。 0057 图10为本发明实施例中固定索引关键字数量。

40、为400和属性数量为5时, 云服务器执 行查询的时间开销实验图。 具体实施方式 0058 下文将以图1所示的应用为例, 对本发明细粒度查询授权的可搜索加密方法及系 统进行进一步的详细说明。 参见图1, 其中技术部负责人和财务部负责人为数据提供者, 分 别将加密后的技术文档和财务报表上传到云服务器, 普通的开发人员和财务人员则为查询 用户u, 用于采用本发明细粒度查询授权的可搜索加密方法及系统进行查询。 0059 如图2所示, 本实施例细粒度查询授权的可搜索加密方法的实施步骤包括: 0060 1)数据提供者将原始数据抽取索引关键字w并用对称加密算法加密生成加密数 据, 生成两个密钥sk1和sk2。

41、, 为索引关键字w建立访问控制树Tw, 使用密钥sk2和访问控制树 加密索引关键字得到加密索引关键字Iw, 将加密数据、 所有加密索引关键字Iw及访问控制树 Tw提交至服务器; 0061 2)查询用户u向数据提供者发送申请加入系统的请求。 数据提供者收到请求后对 查询用户u进行身份认证, 并利用u的属性信息和密钥sk1为其生成私钥Uu; 0062 3)查询用户u使用私钥Uu对查询关键字w0进行加密, 得到密文Tu(w0)并发送至服务 器; 0063 4)服务器根据密文Tu(w0)在加密索引关键字Iw中进行检索, 并返回满足查询要求 的加密数据返回给查询用户u; 0064 5)查询用户u对密文进。

42、行解密得到明文数据。 0065 参见图2, 数据提供者将加密数据、 所有加密索引关键字Iw及访问控制树Tw提交至 云服务器; 查询用户u使用私钥Uu对查询关键字w0进行加密得到密文Tu(w0)并发送至云服务 说明书 6/14 页 11 CN 109981643 A 11 器, 并获取云返回的查询结果, 查询结果分为没有查询权限、 有查询权限但关键字匹配失 败、 以及有权限且关键字匹配成功三种结果。 图2所示的系统模型包含三个实体, 分别是数 据提供者, 查询用户和云服务器。 数据提供者对数据文件和索引关键字分别加密后外包于 云服务器中(索引关键字从数据文件中抽取, 数据文件采用传统的对称加密技。

43、术进行加密, 索引关键字采用本发明所述的方法进行加密); 数据提供者根据查询用户的属性对其进行 授权, 分发相关密钥。 当查询用户需要查询数据文件时, 他利用数据提供者授予的密钥加密 查询关键字并提交给云服务器。 云服务器收到查询用户提交的加密的查询关键字后负责在 加密的索引关键字中检索, 并返回满足查询要求的数据文件给查询用户。 最后查询用户解 密密文, 获得明文文件。 本应用示例采用真实的RFC数据集中, 随机地选取4000个文本文件 作为实验数据集, 所有的程序采用Java语言实现。 应用示例的运行环境如下: 客户端计算机 的主要硬件配置是2.3GHZ双核处理器, 4G内存, 320G硬。

44、盘, 安装的操作系统版本为windows 7; 服务器端也是一个windows7操作系统, 3.6GHZ i7-7700处理器, 8G内存, 1T硬盘。 客户端 计算机主要用来加密索引关键字和查询关键字, 服务器端计算机模拟云服务器执行查询操 作。 0066 本实施例中预先建立运行环境如下: 0067 选择两个阶为素数q的乘法循环群G1和G2, g为乘法群G1的一个生成元; 0068 双线性映射e:G1G1G2, 其具有下述性质: 00691、 双线性: 对于乘法群G1中的任意集合U和V, 以及群中的任意元素a和b满足e (Va,Ub)e(V,U)ab。 0070 2、 非退化性: 如果g是G。

45、1的生成元, 则e(g,g)是G2生成元。 0071 3、 可计算性: 对于乘法群G1中的任意集合U和V, 总是存在一个有效的多项式时间 算法计算e(V,U)G2。 0072 两个哈希函数H1和H2: 0073 0074H1和H2分别把一个任意长度的二进制字符串哈希为群和群G1上的元素, 0,1* 代表一个任意长度的二进制字符串。表示模q的乘法群, 其元素取值为1至q-1之间且与q 互素的整数。 0075 定义拉格朗日系数: 0076 0077S是群是的一个集合,拉格朗日系数可用于对多项式进行插值恢复 出秘密值。 比如可以看出, 集合中的元素为1至14之间且 与15互素的所有整数。 0078 。

46、本实施例中, 步骤1)中数据提供者采用Hermetic Word Frequency Counter工具 从4000个文本文件中抽取索引关键字集合W, 然后使用对称加密算法AES对4000个文本文件 说明书 7/14 页 12 CN 109981643 A 12 进行加密生成相应的密文。 0079 本实施例中, 步骤1)中生成两个密钥sk1和sk2的详细步骤包括: 0080选择两个阶为q的乘法循环群G1和G2, 定义双线性映射e将G1G1映射到G2, 用表 示取值为1至q-1之间且与q互素的整数构成模q的乘法群。 利用以上工具构造如式(1)所示 的密钥sk1和sk2; 0081 0082 式(。

47、1)中, 密钥sk1包括 、 1/ 、 g 三个元素, 密钥sk2包括e(g,g)和h两个元素, 其中 , 分别为从乘法群中随机均匀选择两个元素, 1/ 表示对元素 求乘法群上的逆元, g 为乘法循环群G1的生成元; e(g,g)为乘法循环群G1生成元g进行一次双线性映射后求 次幂 的运算结果, h等于乘法循环群G1的生成元g的 次幂运算结果。 对G1的生成元g求 次幂运算 得到g G1。 中生成两个密钥sk1和sk2后, 数据提供者使用sk1为查询用户生成私钥, 该私钥 被嵌入查询用户的属性信息; 使用sk2加密索引关键字, 该索引关键字通过嵌入一棵访问控 制树定义来它的访问权限。 0083。

48、 为了防止敌手(云服务器)从索引关键字中获取明文信息, 数据拥有者对索引关键 字进行加密。 不失一般性, 本实施例中使用w表示一个索引关键字, 一棵访问控制树结构如 图3所示。 该树中的非叶子节点表示一个阈值门, 包括 “与(AND)” ,“或(OR)” 和 “阈值(m of n)” 三种类型, 每个叶子节点表示一个属性。 在图3所示的访问控制树结构中, 如果某个用户 是 “计算机系并且承担数据结构, 算法和计算机网络中任意两门课程的教授或者博士” , 那 么该用户的属性满足这颗访问控制树。 以下对访问控制树结构定义几个符号: 0084 R:访问控制树的根节点; 0085 x:访问控制树中除根。

49、节点以外的任意节点; 0086 parent(x):x节点的父节点; 0087 index(x):x节点的索引号。 给定一个节点y, 其孩子节点的索引号为从左至右的顺 序数字编号。 比如在图3中, 给定节点 “2of 3” , 其孩子节点索引号分别为index(数据结构) 1, index(算法)2, index(计算机网络)3。 0088 attr(x):如果x是一个叶子节点, 则用attr(x)表示x表示的属性。 0089 kx:节点x的阈值。 0090 本实施例中步骤1)中为索引关键字w建立访问控制树Tw的详细步骤包括: 0091 定义访问控制树Tw, 所述访问控制树Tw中的非叶子节点表。

50、示一个阈值门, 该阈值门 分为与门AND、 或门OR、 取部分属性阈值门m_of_n三种类型, 每个叶子节点表示一个属性, 一 个属性为一个索引关键字; 本实施例定义的访问控制树Tw能够灵活地表达属性之间的 “与” ,“或” 和阈值关系。 索引关键字加密算法通过巧妙运用属性加密和秘密共享技术, 并基 于访问控制树Tw的结构, 对索引关键字w的进行概率性加密。 基于离散对数困难问题, 任意 的概率多项式敌手无法从密文中恢复出关键字w的明文信息, 并且构造的密文能有效地抵 抗选择明文攻击。 说明书 8/14 页 13 CN 109981643 A 13 0092 从访问控制树Tw的根节点开始, 以。

展开阅读全文
内容关键字: 细粒度 查询 授权 搜索 加密 方法 系统
关于本文
本文标题:细粒度查询授权的可搜索加密方法及系统.pdf
链接地址:https://www.zhuanlichaxun.net/pdf/11719430.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1