专利汇可以提供一种可高效更新权限的多用户可搜索加密方法和系统专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种可高效更新权限的多用户可搜索加密方法,属于 云 计算存储和 密码学 技术领域。数据拥有者先确定查询用户对文件的权限,构建出 访问 控制列表,然后将数据加密生成对应的密文数据以及元数据,并将它们上传到云服务端。同时数据拥有者返回给查询用户相应的访问密钥,用来从向云服务端生成查询认证。用户检索时,发送相应关键字的查询密文标识以及由认证密钥生成的认证标识。服务端接收到这些信息后,先根据认证标识进行认证,确定有权查询后再进行密文上的检索。本发明一方面避免了数据拥有者和查询用户的实时交互;另一方面使数据拥有者可以高效地更新查询用户的权限且不影响其他用户;再一方面可扩展到大规模加密 数据库 中。,下面是一种可高效更新权限的多用户可搜索加密方法和系统专利的具体信息内容。
1.一种可高效更新权限的多用户可搜索加密方法,其特征在于,包括以下步骤:
(1)用户端利用从数据拥有者处获取的密钥Ωi生成查询关键字密文,并将其发给服务端;步骤(1)包括以下子步骤:
(1-1)用户端利用从数据拥有者获取密钥Ωi,其包括对关键字进行加密的密钥KS、KX、KZ,第i个用户端能够查询的密文关键字的集合CSKi={cski,w1,cski,w2,…,cski,wU},以及数据拥有者分配给第i个用户端的标识uki,其中wj表示用户端能够查询的第j个密文关键字,且j∈[1,U],U表示第i个用户端能够查询的密文关键字总数量;其中密钥Ωi是通过如下步骤构建:
A、数据拥有者得到该加入用户的公钥pki及其可以访问的关键字集合 通过密钥KR以及公钥pki计算用户随机数ri=Fp(KR,pki),并计算用户标识 初始化密钥集合
CSKi为空集;
B、对于 中每个关键字w执行如下步骤,利用密钥KC计算关键字密钥值Kw=F(KC,w),并以此为密钥,计算用户公钥pki的哈希值cski,w=H1(Kw,pki),然后将cski,w加入到CSKi集合中,将公钥pki添加到与关键字w关联的访问控制列表KAL[w]中;
C、数据拥有者将KS,KX,KZ,CSKi,uki封装成Ωi返回给该用户;
(1-2)用户端确定其所要查询的关键字集合 其中 表示用户端所
要查询的第k个关键字,且k∈[1,n],n表示用户端所要查询的关键字的总数量;
(1-3)在第i个用户端能够查询的密文关键字的集合CSKi中找到与所要查询的第一个关键字 对应的密文关键字 用两个不同的带密钥的哈希函数分别对密文关键字
和第i个用户端的标识uki进行计算,以分别得到第一哈希值 以及第二哈希
值
(1-4)对于关键字集合 中除了 外的所有关键字,计算其交叉查询
密文值
其中Fp表示伪随机函数;ski表示第i个用户持有的私钥;
(1-5)将步骤(1-4)得到的交叉查询密文值、第一哈希值 以及第二哈希值
作为查询关键字密文发送给服务端;
(2)服务端根据来自于用户端的查询关键字密文获取满足用户端查询条件的加密文件标识符集合,并将该加密文件标识符集合发送到用户端;步骤(2)包括以下子步骤:
(2-1)服务端接收用户发来查询关键字密文,从构建好的用户关键字索引集合CSet中获取第一哈希值 所对应的密文e1,并根据第二哈希值 和密文e1计算明文
(2-2)服务端判断明文p1的最后λ比特是否全为0,如果不是,则过程结束,如果是,则获取提取前λ比特作为第一标签值 然后进入步骤(2-3);其中λ为8到512之间的整数;
(2-3)服务端初始化计数器cnt=1;
(2-4)服务端根据哈希算法对第一标签值 和cnt进行计算,将得到的哈希值l作为
键,判断是否能够在创建好的关键字文件标识符集合TSet中查找到键l对应的密文对(e2,y),如果是则进入步骤(2-5),否则进入步骤(2-7);
(2-5)服务端针对所有的v∈[2,n],判断是否所有的 是否都在构建好的
交叉匹配集合XSet中,如果是,则将密文对中的e2加入加密文件标识符集合R中,并进入步骤(2-6),否则进入步骤(2-6);
(2-6)服务端设置计数器cnt=cnt+1,并返回步骤(2-4);
(2-7)服务端将加密文件标识符集合R返回给用户端;
其中用户关键字索引集合CSet、关键字文件标识符集合TSet、以及交叉匹配集合XSet是通过如下步骤构建:
(a)数据拥有者初始化用户关键字索引集合CSet、关键字文件标识符集合TSet、以及交叉匹配集合XSet为空集;
(b)对于整个关键字集合W中的每个关键字w,数据拥有者构建用户权限索引表CSet、关键字文件标识符集合TSet以及交叉匹配集合XSet;
(3)数据拥有者获取授权给用户的密钥,并通知服务端根据该密钥修改用户关键字索引集合以及交叉匹配集合;步骤(3)包括以下子步骤:
(3-1)数据拥有者确定所要更新的用户的公钥pk以及所要更新的关键字w;
(3-2)数据拥有者根据密钥KT、以及所要更新关键字w计算更新标签值stag=F(KT,w),并将该更新后的标签值发送给服务端;
(3-3)服务端根据更新后的标签值stag查询关键字文件标识符集合TSet,以得到密文对集合{(e2,y)},提取其中所有的密文e2组成索引密文集合EnInds,并将索引密文集合EnInds发送给数据拥有者;
(3-4)数据拥有者将索引密文集合EnInds保存到本地,根据密钥KC和关键字w计算关键字密钥值Kw=F(KC,w),并根据密钥KR和用户公钥pk计算用户随机值r=Fp(KR,pk);
(3-5)数据拥有者将关键字密钥值Kw作为密钥,用带该密钥的哈希函数计算用户公钥pk的哈希值csk;
(3-6)数据拥有者根据用户随机值r得到用户标识 并以csk作为密钥,用两个不
同的且带密钥的哈希函数分别计算第一更新哈希值ctag以及第二更新哈希值dtag;
(3-7)数据拥有者在更新标签值stag后连接λ个0,得到更新后的认证标签值stag||0λ,并将该认证标签值stag||0λ与第二更新哈希值dtag做异或运算得到更新密文
(3-8)数据拥有者利用密钥KX以及关键字w计算群关键字密文值xtrap=Fp(KX,w);
(3-9)对于索引密文集合EnInds中每个密文e2,数据拥有者根据解密该密文获得标识符明文ind,并使用密钥KI计算标识符群映射xind=Fp(KI,ind),进而计算出与该ind相关的交叉匹配集合XSet中的元素 并将其添加到更新交叉匹配集合XTags
中;
(3-10)数据拥有者将第一更新哈希值ctag,更新密文e1,更新交叉匹配集合XTags以及操作变量op发送给服务端;
(3-11)服务端根据来自数据所有者op的值判断对应的操作是增加还是删除,如果是增加,则执行步骤(3-12),如果是删除,则执行步骤(3-13);
(3-12)服务端将(ctag,e1)加入用户关键字索引集合CSet集合中,并将更新交叉匹配集合XTags中的元素加入到交叉匹配集合XSet中;
(3-13)服务端从用户关键字索引集合CSet中删除与第一更新哈希值ctag关联的数据项,并将更新交叉匹配集合XTags中的所有元素从交叉匹配集合XSet中删除。
2.根据权利要求1所述的多用户可搜索加密方法,其特征在于,步骤(b)包括以下子步骤:
(b1)数据拥有者判断关键字集合W中取关键字w是否都已被取到,如果是,则进入步骤(b12)否则提取下一个关键字w,并进入步骤(b2);
(b2)数据拥有者分别利用三个密钥KS,KT,KX,KC和关键字w计算加密关键字密钥Ke=F(KS,w),索引关键字标签值stagw=F(KT,w),关键字交叉值xtrapw=Fp(KX,w)以及权限关键字密钥Kw=F(KC,w),并初始化公钥随机数集合K为空;
(b3)数据拥有者从访问控制列表KAL中查询出与该关键字w关联的所有用户公钥的集合PKw.
(b4)数据拥有者判断公钥集合中的用户公钥是否全部被取到,如果是,则进入步骤(b11),否则提取下一个用户公钥pki,并进入步骤(b5);
(b5)数据拥有者计算用户随机数ri=Fp(KR,pki),将用户公钥随机数 添加到K
中;
(b6)数据拥有者以权限关键字密钥Kw为密钥,计算pki的带密钥的哈希函数值cski,w=H1(Kw,pki);
(b7)数据拥有者以cski,w为密钥,利用两个不同的带密钥的哈希函数,分别计算uki的权限关键字哈希值 和关键字混淆哈希值
(b8)数据拥有者在索引关键字标签值stagw后添加λ位0,构成索引关键字认证标签值stagw||0λ;
(b9)数据拥有者对索引关键字认证标签值stagw||0λ和关键字混淆哈希值 进行
异或运算,得到权限关键字密文值
(b10)数据拥有者将 添加到CSet集合中并进入步骤(b4);
(b11)数据拥有者初始化计数器cnt值为1;
(b12)数据拥有者利用密钥KZ和关键字w计算盲因子z=Fp(KZ,w);
(b13)数据拥有者从明文数据库中获取关键字w关联的所有文件明文标识符的集合DB(w);
(b14)数据拥有者判断文件明文标识符的集合DB(w)中的所有文件明文标识符ind是否都被取到,如果是则返回步骤(b1),否则进入步骤(b15);
(b15)数据拥有者利用密钥KI和ind计算文件群标识符xind=Fp(KI,ind)并利用加密关键字密钥Ke和ind计算关键字标识符密文索引e2=Enc(Ke,ind);
(b16)数据拥有者计算索引交叉值 并利用stagw为密钥,计算关于cnt带密钥
的哈希值l=H4(stagw,cnt)
(b17)数据拥有者将(e2,y)加入到以l为索引的TSet中,并将cnt的值自增1;
(b18)数据拥有者判断用户公钥随机数集合K中的所有用户公钥随机数vki是否都被取到,如果是,则返回步骤(b14),否则取下一个vki,并进入步骤(b19);
(b19)数据拥有者计算交叉匹配值 并将xtag加入到XSet中,并
返回步骤(b18)。
3.一种可高效更新权限的多用户可搜索加密系统,其特征在于,包括:
第一模块,其设置于用户端中,用于利用从数据拥有者处获取的密钥Ωi生成查询关键字密文,并将其发给服务端;第一模块包括以下子模块:
第一子模块,其设置于用户端,用于利用从数据拥有者获取密钥Ωi,其包括对关键字进行加密的密钥KS、KX、KZ,第i个用户端能够查询的密文关键字的集合CSKi={cski,w1,cski,w2,…,cski,wU},以及数据拥有者分配给第i个用户端的标识uki,其中wj表示用户端能够查询的第j个密文关键字,且j∈[1,U],U表示第i个用户端能够查询的密文关键字总数量;其中密钥Ωi是通过如下步骤构建:
A、数据拥有者得到该加入用户的公钥pki及其可以访问的关键字集合 通过密钥KR以及公钥pki计算用户随机数ri=Fp(KR,pki),并计算用户标识 初始化密钥集合
CSKi为空集;
B、对于 中每个关键字w执行如下步骤,利用密钥KC计算关键字密钥值Kw=F(KC,w),并以此为密钥,计算用户公钥pki的哈希值cski,w=H1(Kw,pki),然后将cski,w加入到CSKi集合中,将公钥pki添加到与关键字w关联的访问控制列表KAL[w]中;
C、数据拥有者将KS,KX,KZ,CSKi,uki封装成Ωi返回给该用户;
第二子模块,其设置于用户端,用于确定其所要查询的关键字集合
其中 表示用户端所要查询的第k个关键字,且k∈[1,n],n表示用户端所要查询的关键字的总数量;
第三子模块,其设置于用户端,用于在第i个用户端能够查询的密文关键字的集合CSKi中找到与所要查询的第一个关键字 对应的密文关键字 用两个不同的带密钥的哈
希函数分别对密文关键字 和第i个用户端的标识uki进行计算,以分别得到第一哈希值 以及第二哈希值
第四子模块,用于对于关键字集合 中除了 外的所有关键字,计算
其交叉查询密文值
其中Fp表示伪随机函数;ski表示第i个用户持有的私钥;
第五子模块,其设置于用户端,用于将第四子模块得到的交叉查询密文值、第一哈希值以及第二哈希值 作为查询关键字密文发送给服务端;
第二模块,其设置于服务端中,用于根据来自于用户端的查询关键字密文获取满足用户端查询条件的加密文件标识符集合,并将该加密文件标识符集合发送到用户端;第二模块包括以下子模块:
第六子模块,其设置于服务端,用于接收用户发来查询关键字密文,从构建好的用户关键字索引集合CSet中获取第一哈希值 所对应的密文e1,并根据第二哈希值 和
密文e1计算明文
第七子模块,其设置于服务端,用于判断明文p1的最后λ比特是否全为0,如果不是,则过程结束,如果是,则获取提取前λ比特作为第一标签值 然后进入第八子模块;其中λ为
8到512之间的整数;
第八子模块,其设置于服务端,用于初始化计数器cnt=1;
第九子模块,其设置于服务端,用于根据哈希算法对第一标签值 和cnt进行计算,将得到的哈希值l作为键,判断是否能够在创建好的关键字文件标识符集合TSet中查找到键l对应的密文对(e2,y),如果是则进入第十子模块,否则进入第十二子模块;
第十子模块,其设置于服务端,用于针对所有的v∈[2,n],判断是否所有的
是否都在构建好的交叉匹配集合XSet中,如果是,则将密文对中的e2加入加
密文件标识符集合R中,并进入第十一子模块,否则进入第十一子模块;
第十一子模块,其设置于服务端,用于设置计数器cnt=cnt+1,并返回第九子模块;
第十二子模块,其设置于服务端,用于将加密文件标识符集合R返回给用户端;
其中用户关键字索引集合CSet、关键字文件标识符集合TSet、以及交叉匹配集合XSet是通过如下步骤构建:
(a)数据拥有者初始化用户关键字索引集合CSet、关键字文件标识符集合TSet、以及交叉匹配集合XSet为空集;
(b)对于整个关键字集合W中的每个关键字w,数据拥有者构建用户权限索引表CSet、关键字文件标识符集合TSet以及交叉匹配集合XSet;
第三模块,其设置于数据拥有者中,用于获取授权给用户的密钥,并通知服务端根据该密钥修改用户关键字索引集合以及交叉匹配集合;第三模块包括以下子模块:
第十三子模块,其设置于数据拥有者,用于确定所要更新的用户的公钥pk以及所要更新的关键字w;
第十四子模块,其设置于数据拥有者,用于根据密钥KT、以及所要更新关键字w计算更新标签值stag=F(KT,w),并将该更新后的标签值发送给服务端;
第十五子模块,其设置于服务端,用于根据更新后的标签值stag查询关键字文件标识符集合TSet,以得到密文对集合{(e2,y)},提取其中所有的密文e2组成索引密文集合EnInds,并将索引密文集合EnInds发送给数据拥有者;
第十六子模块,其设置于数据拥有者,用于将索引密文集合EnInds保存到本地,根据密钥KC和关键字w计算关键字密钥值Kw=F(KC,w),并根据密钥KR和用户公钥pk计算用户随机值r=Fp(KR,pk);
第十七子模块,其设置于数据拥有者,用于将关键字密钥值Kw作为密钥,用带该密钥的哈希函数计算用户公钥pk的哈希值csk;
第十八子模块,其设置于数据拥有者,用于根据用户随机值r得到用户标识 并
以csk作为密钥,用两个不同的且带密钥的哈希函数分别计算第一更新哈希值ctag以及第二更新哈希值dtag;
第十九子模块,其设置于数据拥有者,用于在更新标签值stag后连接λ个0,得到更新后的认证标签值stag||0λ,并将该认证标签值stag||0λ与第二更新哈希值dtag做异或运算得到更新密文
第二十子模块,其设置于数据拥有者,用于利用密钥KX以及关键字w计算群关键字密文值xtrap=Fp(KX,w);
第二十一子模块,其用于对于索引密文集合EnInds中每个密文e2,数据拥有者根据解密该密文获得标识符明文ind,并使用密钥KI计算标识符群映射xind=Fp(KI,ind),进而计算出与该ind相关的交叉匹配集合XSet中的元素 并将其添加到更新交
叉匹配集合XTags中;
第二十二子模块,其设置于数据拥有者,用于将第一更新哈希值ctag,更新密文e1,更新交叉匹配集合XTags以及操作变量op发送给服务端;
第二十三子模块,其设置于服务端,用于根据来自数据所有者op的值判断对应的操作是增加还是删除,如果是增加,则执行第二十四子模块,如果是删除,则执行第二十五子模块;
第二十四子模块,其设置于服务端,用于将(ctag,e1)加入用户关键字索引集合CSet集合中,并将更新交叉匹配集合XTags中的元素加入到交叉匹配集合XSet中;
第二十五子模块,其设置于服务端,用于从用户关键字索引集合CSet中删除与第一更新哈希值ctag关联的数据项,并将更新交叉匹配集合XTags中的所有元素从交叉匹配集合XSet中删除。
标题 | 发布/更新时间 | 阅读量 |
---|---|---|
区块链实施的事件锁加密的方法和系统 | 2020-05-08 | 478 |
一种基于零知识身份认证的人车交互系统设计与实现方法 | 2020-05-11 | 173 |
检测虚假数据注入攻击的方法、装置及可读存储介质 | 2020-05-11 | 857 |
一种基于网页客户端本地服务的电子文件安全签署方法及其系统 | 2020-05-12 | 440 |
一种基于自反馈混沌光的真随机数发生器 | 2020-05-15 | 21 |
一种不限制签名算法的许可链账户系统 | 2020-05-12 | 50 |
基于硬件加密机的电子签章方法 | 2020-05-14 | 117 |
无反作用地将数据单向传输到远程的应用服务器的设备和方法 | 2020-05-15 | 963 |
基于同源曲线的后量子密码学的高速模乘器及其模乘方法 | 2020-05-13 | 1061 |
一种基于区块链的分布式可编程业务研发平台 | 2020-05-13 | 822 |
高效检索全球专利专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。
我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。
专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。