[发明专利]支持大规模用户群的布尔关键词可搜索加密方法有效
申请号: | 202111561029.3 | 申请日: | 2021-12-15 |
公开(公告)号: | CN114357477B | 公开(公告)日: | 2023-07-18 |
发明(设计)人: | 徐玲玲;林宇 | 申请(专利权)人: | 华南理工大学 |
主分类号: | G06F21/60 | 分类号: | G06F21/60;G06F21/62;G06F16/9532 |
代理公司: | 广州市华学知识产权代理有限公司 44245 | 代理人: | 黄卫萍 |
地址: | 510640 广*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 支持 大规模 用户 布尔 关键词 搜索 加密 方法 | ||
1.一种支持大规模用户群的布尔关键词可搜索加密方法,其特征在于,所述加密方法包括以下步骤:
S1、系统初始化:可信权威机构TA根据安全参数K生成公共密钥pk以及主密钥mk,并将公共密钥pk公开发布于云服务器;
S2、生成私钥:数据用户将自己的属性组织成递归属性集然后将其发送给可信权威机构TA,可信权威机构TA使用主密钥mk和递归属性集生成私钥sk,并将私钥sk发送给数据用户,其中,属性集被解析为{A0,A1,...,An},Ai表示中的第i个子属性集,假设子属性集Ai含有mi个属性,其中ai,j表示子属性集Ai中的第j个属性;
S3、加密:数据拥有者使用系统公开密钥pk、递归关键词集合和访问树为文档生成密文C,并将密文C上传至云服务器,递归关键词集合WV中的元素表示的是递归关键词集合中的第i′个子集,被解析为递归关键词名称集合和递归关键词集合WV具有相同的结构,集合中的元素表示的是递归关键词名称集合中的第i′个子集,被解析为(ρ(i′,1),ρ(i′,2),...ρ(i′,m′i′)),其中,m′i′表示的是第i′个关键词子集中关键词的数目,ρ(i′,j′)表示第i′个关键词子集中第j′个关键词的名称,wρ(i′,j′)表示第i′个关键词子集中第j′个关键词的值;
S4、检索令牌生成:数据用户使用步骤S2中获得的私钥,结合数据用户本地的布尔关键词值表达式BV,生成检索令牌TK,其中,BV是访问树结构,BN表示的是布尔关键词名称表达式,具有和BV相同的访问树结构,对于BV中的叶子结点关键词值表示为其中表示对应的关键词名称;
所述步骤S4过程如下:
S4a、数据用户随机选择一个值用于后续参数生成,并计算用于转换结点处的转换计算的参数g是G的生成元,α,γ是用于实现私钥生成、文档加密和生成检索令牌的第三、第四参数;
S4b、数据用户使用秘密分享算法计算t的秘密分享,对于每个叶子结点数据用户计算用于关键词匹配算法DecryptNodeII计算的参数和对于每个转换结点数据用户计算用于转换结点处的转换计算的参数β2是用于实现私钥生成、文档加密和生成检索令牌的第二参数,哈希函数H0(·)满足以下映射:其中,是与素数p互素的所有数的集合,表示每个转换结点的秘密共享多项式中的常数;
S4c、数据用户将私钥sk解析为1≤j≤mi},{Ei|1≤i≤n},并计算用于密文与关键词匹配验证计算的参数用于属性匹配算法DecryptNodeI计算的参数和其中0≤i≤n,1≤j≤mi;和能使子集Ai的ri转换成子集A0的r0的参数其中,可信权威机构TA计算用于后续生成是属性集的子集Ai用于后续和访问树进行匹配验证的参数,假设递归属性集共有n+1个子集,对第2到第n+1个子集,它们的参数ri满足令第1个子集A0的参数r0=r;
S4d、数据用户根据上述步骤得到的变量,得到检索令牌
其中,可信权威机构TA计算用于后续生成
S5、密文搜索:数据用户将步骤S4生成的检索令牌TK发送至云服务器,云服务器接收后,使用检索令牌TK和存放在云服务器上的密文C进行校验,检查密文C是否匹配,并将满足匹配条件的密文C发送给数据用户;
所述步骤S5过程如下:
S5a、云服务器将密文C解析为是用于密文与关键词匹配验证计算的参数,是用于转换结点处的转换计算的参数,n′是随机参数si′的个数,Ki′是使递归关键词集合的子集的si′转换成子集的s0的参数,和都是用于属性匹配算法DecryptNodeI计算的参数,是访问树的转换结点集合,将检索令牌TK解析为
S5b、根据访问树和属性集针对访问树中的每个结点τ,云服务器会返回一个集合Sτ,其中,Sτ的元素是结点τ的标签,每个标签u对应一个集合Au,每个集合Au都能满足子访问树对于根结点R,则存在对应的集合为SR;
S5c、如果属性集满足访问树则对于每个结点τ,随机从集合Sτ中挑选一个标签,标记为u,并运行属性匹配算法DecryptNodeI(C,TK,τ,u),该算法输入密文C,检索令牌TK,结点τ和标签u,通过计算输出结点τ的计算结果Fτ,其中,Cτ和C′τ是密文C中结点τ对应的参数,和是检索令牌TK结点τ在子集Au中对应属性的参数;若不存在满足访问树的属性集则返回“0”;
所述步骤S5c中,根据结点τ的结点类型,属性匹配算法DecryptNodeI(C,TK,τ,u)有以下两种不同的计算方式:
当结点τ是叶子结点时,如果结点τ对应的属性att(τ)∈Ai,则运行属性匹配算法DecryptNodeI(C,TK,τ,u),输出e:G×G→GT是一个双线性映射;否则,算法返回“⊥”;
当结点τ是非叶子结点时,云服务器首先计算一个包含有结点τ的kτ个子结点的集合Eτ,Eτ中每个结点z必须满足标签u属于z的标签集合Sz,u∈Sz或z是一个转换结点,且至少存在一个标签u′∈Sz;接着运行属性匹配算法DecryptNodeI(C,TK,z,u,),输出接着,根据标签u的值对F′z使用转换公式进行转换,当u=0时,计算输出计算结果其中是标签u′在检索令牌TK中对应的参数,是密文C中结点z对应的参数;当u≠0时,计算输出计算结果其中是标签u在检索令牌TK中对应的参数;
计算完Eτ中每个结点后,使用下面式子计算Fτ:
其中,k=index(z),Uz={index(z):z∈Eτ},index(·)函数的作用是获取结点的标签;
接着,运行属性匹配算法DecryptNodeI(C,TK,R,u)对根结点R进行计算,当R的标签u=0时,输出计算结果FR=e(g,g)trs;当u≠0时,输出计算结果最后,根据标签u计算出F,当标签u=0时,令F=FR;当u≠0时,计算输出计算结果F=e(g,g)trs;
S5d、对给定的递归关键词名称集合WN和布尔关键词名称表达式BN,对于BN的每个结点云服务器计算一个标签集合每个标签h对应一个WN的子集每个子集合都能满足BN的子树对于根结点则存在对应的集合为
所述步骤S5d中,根据结点的结点类型,关键词匹配算法有以下两种不同的计算方式:
当结点是叶子结点时,如果关键词匹配算法返回“⊥”;否则,假设则并运行关键词匹配算法输出结果其中sh表示子集对应的匹配验证随机数,表示结点的秘密共享多项式中的常数;
当结点是非叶子结点时,云服务器首先计算一个包含有结点的个子结点的集合中的每个结点必须满足标签h属于的标签集合或是一个转换结点,且至少存在一个标签接着运行关键词匹配算法输出接着,根据标签h的值对使用转换公式进行转换,当h=0时,计算输出计算结果其中是结点在检索令牌TK中对应的参数,Kh′是标签h′在密文C中对应的参数;当h≠0时,计算输出计算结果其中Kh是标签h在密文C中对应的参数;
计算完中每个结点后,使用下面式子计算
其中,
接着,运行关键词匹配算法对根结点进行计算,当的标签h=0时,输出计算结果当h≠0时,输出计算结果最后,根据标签h计算出当标签h=0时,令当h≠0时,计算输出计算结果
S5e、如果递归关键词名称结构WN满足布尔关键词名称表达式BN,则对于每个结点随机从集合中挑选一个标签,标记为h,并运行关键词匹配算法该算法输入密文C,检索令牌TK,结点和标签h,通过计算输出结点的计算结果其中,和是检索令牌TK中结点对应的参数,Cρ(h,j′)和C′ρ(h,j′)是密文C中结点在子集中对应关键词名称的参数;若不存在满足布尔关键词名称表达式BN的递归关键词名称结构WN,则返回“0”;
S5f、云服务器计算用于验证匹配计算的参数并判断是否成立,其中,s0是子集用于进行匹配验证的参数,是密文关键词和用户检索关键词匹配计算的结果,F是访问树和用户属性匹配计算的结果,如果成立则输出“0”;如果不成立,则输出“1”;其中,e(g,g)表示的是将循环群G中的两个元素映射为乘法循环群GT中的元素。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华南理工大学,未经华南理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111561029.3/1.html,转载请声明来源钻瓜专利网。