一种密文检索方法及装置

allin2026-07-07  15


本技术涉及数据安全,尤其涉及一种密文检索方法及装置。


背景技术:

1、随着云计算和大数据的快速发展,保护隐私和确保数据安全变得越来越重要。为了保护数据安全,数据上传至云端前需先进行加密处理过程。但密文形式的存储加剧了数据搜索的困难,为有效解决该问题,可搜索加密技术(searchable encryption,se)应运而生。

2、可搜索加密就是一种允许在加密状态下执行搜索的技术,允许用户对密文数据集搜索特定信息,而不暴露相关明文内容,从而提供数据的安全性。

3、在可搜索加密领域,song等人首次定义了可搜索加密问题,该方案有力的保障了文档的安全性,但全文搜索效率较低;goh ej提出安全索引的概念;curtmola r等人提出了两种针对抗非自适应选择关键词攻击的语义安全性和抗自适应选择关键词攻击的语义安全性方案。然而,上述方案在搜索结果处理上尚存在局限性;它们通常会将包含特定关键词的所有文件返回给用户,并没有顾及关键词频率等因素,因此关键词排序搜索方案被提出。

4、cao等人提出了k邻近算法(k-nearestneighbor,knn)安全技术,利用索引向量和查询向量的内积相似度进行排序,从而根据检索条件返回词频最高的文件,实现方案的可搜索排序,在一定程度上避免了资源的浪费。为了防止云服务器返回错误的搜索结果,我们还需要支持对搜索结果的验证。在可验证的可搜索加密领域,数据用户必须能够检测返回的文件是否准确,为了解决这个问题,支持可验证的关键词排序搜索方案被提出。zhang等人利用paillier加密系统实现验证功能,然而该方法由于公钥密码体制的属性开销较大。sun等人在cao的研究基础上进一步提出了一种支持可验证的根据相似性排序的搜索方案。

5、然而上述方案均存在检索结果验证较为复杂,效率较低,第三方验证不可信等亟待改进的问题。


技术实现思路

1、有鉴于此,本技术的主要目的在于提供一种密文检索方法及装置,目的在于实现在保证数据机密性的基础上提高用户检索效率以及快速验证检索结果的可信性。

2、本技术第一方面提供了一种密文检索方法,该方法包括:

3、从明文文档集中提取词典关键词构成关键词词典,并生成密钥;

4、根据关键词词典生成明文文档集中各明文文档的文档索引向量,并由文档索引向量构建明文文档的文档结点;根据各文档结点构建索引树,并通过密钥加密索引树,以得到加密后的索引树;

5、通过密钥加密明文文档集,以得到密文文档集;

6、根据密文文档集构建梅克尔merkle树,将merkle树中的路径结点、密文文档集以及加密后的索引树上传至云服务器,将merkle树的根结点上传至区块链;路径结点为merkle树中除根结点之外的结点;

7、根据查询关键词集合以及密钥生成检索陷门;

8、通过检索陷门、云服务器中的加密后的索引树以及密文文档集获取检索结果;

9、从区块链获取根结点,从云服务器获取路径结点,并根据路径结点确定新的根结点,根据根结点以及新的根结点对检索结果进行完整性校验。

10、在本技术第一方面的一些实现方式中,生成密钥,包括:

11、根据安全参数生成对应的对称密钥;

12、通过随机数发生器生成随机分割向量、第一可逆矩阵以及第二可逆矩阵。由对称密钥、随机分割向量、第一可逆矩阵以及第二可逆矩阵,构建密钥。

13、在本技术第一方面的一些实现方式中,根据关键词词典生成明文文档集中各明文文档的文档索引向量,包括:

14、为各明文文档生成对应的文档索引向量,文档索引向量包括:各词典关键词在文档索引向量对应的明文文档中的词频值。

15、在本技术第一方面的一些实现方式中,索引树中的结点包括:结点唯一标识、结点索引向量、左右孩子指针以及文档唯一标识;

16、根据各文档结点构建索引树,包括:

17、基于各文档结点构建索引树的各叶子结点,其中,索引树的叶子结点的左右孩子指针为空,且索引树的叶子结点的结点索引向量为文档结点的文档索引向量;

18、将相邻叶子结点作为子结点成对进行配对,并将成对配对后得到的父结点作为下一循环用于成对进行配对的子结点,直至得到索引树的根结点;

19、其中,索引树的非叶子结点以及索引树的根结点的结点索引向量,由左右孩子指针指向的结点的结点索引向量中每一位对应的最大值构成,且索引树的非叶子结点以及索引树的根结点的文档唯一标识为空,索引树的非叶子结点为索引树中除叶子结点和根结点以外的结点。

20、在本技术第一方面的一些实现方式中,通过密钥加密索引树,包括:

21、扩展索引树的各结点的结点索引向量的维度;

22、对于各扩展维度后的结点索引向量,通过随机分割向量将扩展维度后的结点索引向量分裂为第一随机向量以及第二随机向量,其中,扩展维度后的结点索引向量的扩展向量部分为随机值;

23、在第一随机向量和第二随机向量中,将与随机分割向量中值为1的位置对应的值,设置为随机数;并且,两个随机数的和,等于结点索引向量在随机分割向量中值为1的位置对应的值;

24、在第一随机向量和第二随机向量中,将与随机分割向量中值为0的位置对应的值,设置为结点索引向量在随机分割向量中值为0的位置对应的值;

25、通过第一可逆矩阵计算第一随机向量得到第一计算结果,通过第二可逆矩阵计算第二随机向量得到第二计算结果,由第一计算结果以及第二计算结果构建安全索引。

26、在本技术第一方面的一些实现方式中,根据密文文档集构建梅克尔merkle树,包括:

27、计算密文文档集中的各密文文档的哈希值;

28、将各密文文档的哈希值作为merkle树的叶子结点,

29、将相邻叶子结点作为子结点成对进行配对,并将成对配对后得到的父结点作为下一循环用于成对进行配对的子结点,直至得到merkle的根结点。

30、在本技术第一方面的一些实现方式中,根据查询关键词集合以及密钥生成检索陷门,包括:

31、为查询关键词集合中各查询关键词构建向量以得到第一查询向量;

32、扩展第一查询向量的维度得到第二查询向量,并确定第二查询向量的原始向量部分以及扩展向量部分;

33、在原始向量部分中,将存在于关键词词典中的查询关键词的值,设置为查询关键词对应的词典关键词在明文文档集合中的逆文档频率;

34、在扩展向量部分中,任意选择至少一个位置的值置1,其余位置的值置0;

35、通过密钥中的随机分割向量将第二查询向量分裂为第三随机向量以及第四随机向量;

36、在第三随机向量和第四随机向量中,将与随机分割向量中值为0的位置对应的值,设置为随机数;并且,两个随机数的和,等于第二查询向量在随机分割向量中值为0的位置对应的值;

37、在第三随机向量和第四随机向量中,将与随机分割向量中值为1的位置对应的值,设置为第二查询向量在随机分割向量中值为1的位置对应的值;

38、通过密钥中的第一可逆矩阵计算第三随机向量得到第三计算结果,通过密钥中的第二可逆矩阵计算第四随机向量得到第四计算结果,由第三计算结果以及第四计算结果构建检索陷门。

39、在本技术第一方面的一些实现方式中,通过检索陷门、云服务器中的加密后的索引树以及密文文档集获取检索结果,包括:

40、执行贪婪深度优先算法,根据相关性分数以及文档唯一标识得到预设数量的目标密文文档,其中,相关性分数根据检索陷门以及加密后的索引树中的结点计算得到;

41、由预设数量的目标密文文档构成检索结果。

42、在本技术第一方面的一些实现方式中,从路径结点中确定新的根结点,根据根结点以及新的根结点对检索结果进行完整性校验,包括:

43、获取根结点的哈希值,作为第一根哈希值;

44、根据merke l树结构以及路径结点的哈希值计算得到新的根结点的哈希值,作为第二根哈希值;

45、比较第一根哈希值和第二根哈希值,以生成比较结果,比较结果用于判断检索结果是否被纂改。

46、本技术第二方面提供了一种密文检索装置,该装置包括:

47、初始化模块,用于对明文文档集进行关键词提取得到关键词词典,并生成密钥;

48、索引加密模块,用于根据关键词词典生成明文文档集中各明文文档的文档索引向量,并由文档索引向量构建明文文档的文档结点;根据各文档结点构建索引树,并通过密钥加密索引树,以得到加密后的索引树;

49、文档加密模块,用于通过密钥加密明文文档集,以得到密文文档集;

50、merkle树构建模块,根据密文文档集构建梅克尔merkle树,将merkle树中的路径结点、密文文档集以及加密后的索引树上传至云服务器,将merkle树中的根结点上传至区块链;路径结点为merkle树中除根结点之外的结点;

51、检索陷门生成模块,用于根据查询关键词集合以及密钥生成检索陷门;

52、检索模块,用于通过检索陷门、云服务器中的加密后的索引树以及密文文档集获取检索结果;

53、完整性校验模块,用于从区块链获取根结点,从云服务器获取路径结点,并根据路径结点中确定新的根结点,根据根结点以及新的根结点对检索结果进行完整性校验。

54、本技术所提供的技术方案具有如下有益效果:

55、在本技术所提供的技术方案中,首先,从明文文档集中提取出关键词词典,并生成密钥;然后,通过构建各明文文档对应的文档结点完成索引树的构建,再通过密钥对索引树进行加密;此外,密钥还用于对明文文档集进行加密,以得到密文文档集;之后,通过密文文档集构建merkler树,将merkle树的路径结点、密文文档集、加密后的索引树上传至云服务器,将merkle树的根结点上传至区块链;最后,在需要进行文档检索时,根据查询关键词集合和密钥生成检索陷门,以依据索引树从密文文档集中得到检索结果;在得到检索结果后,从区块链获取merker树的根结点,从云服务器获取merkle树的路径结点,对检索结果进行完整性验证,以验证检索结构是否被纂改。其中,通过加密索引树以及明文文档集,确保了索引数据在数据传输过程中的安全性,保证数据的机密性;通过merkle树的构建,由于merkle的结构特点,merkle树中任何文档结点的改变都会导致根结点的改变,由此通过比较根结点和新的根结点即可验证数据完整性,使得整个验证过程简单且高效,提高了验证效率。此外,本技术将merkle的根结点存储在区块链上,利用区块链的不可纂改特性,保证根结点的真实性。整体上,实现了在保证数据机密性的基础上提高用户检索效率以及检索结果的可信性。


技术特征:

1.一种密文检索方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述生成密钥,包括:

3.根据权利要求2所述的方法,其特征在于,所述根据所述关键词词典生成所述明文文档集中各明文文档的文档索引向量,包括:

4.根据权利要求2所述的方法,其特征在于,所述索引树中的结点包括:结点唯一标识、结点索引向量、左右孩子指针以及文档唯一标识;

5.根据权利要求4所述的方法,其特征在于,所述通过所述密钥加密所述索引树,包括:

6.根据权利要求1所述的方法,其特征在于,所述根据所述密文文档集构建梅克尔merkle树,包括:

7.根据权利有要求3所述的方法,其特征在于,所述根据查询关键词集合以及所述密钥生成检索陷门,包括:

8.根据权利要求4所述的方法,其特征在于,所述通过所述检索陷门、所述云服务器中的所述加密后的索引树以及所述密文文档集获取检索结果,包括:

9.根据权利要求1所述的方法,其特征在于,所述从所述路径结点中确定新的根结点,根据所述根结点以及所述新的根结点对所述检索结果进行完整性校验,包括:

10.一种密文检索装置,其特征在于,所述装置包括:


技术总结
本申请公开了一种密文检索方法及装置,涉及数据安全领域,该方法包括:从明文文档集提取关键词词典,并生成密钥;根据关键词词典生成各明文文档的文档索引向量,并由文档索引向量构建明文文档的文档结点,根据各文档结点构建索引树,通过密钥加密索引树;通过密钥加密明文文档集;根据密文文档集构建Merkle树,将路径结点、密文文档集以及加密后的索引树上传至云服务器,将根结点上传至区块链;根据查询关键词集合以及密钥生成检索陷门;通过检索陷门、加密后的索引树以及密文文档集获取检索结果;从区块链获取根结点,从云服务器获取路径结点,根据根结点以及新的根结点对检索结果进行完整性校验。实现了提高检索效率以及检索结果的可信性。

技术研发人员:杨艳艳,王利朋,胡明生,关志,孙芊慧,承卓飞,陈钟
受保护的技术使用者:北京大学
技术研发日:
技术公布日:2024/10/31
转载请注明原文地址: https://www.8miu.com/read-29077.html

最新回复(0)