一种数字对象的可搜索加密方法与系统
未命名
08-26
阅读:77
评论:0

1.本技术涉及数字对象架构技术领域,以及数据加密技术领域,特别是涉及一种数字对象的可搜索加密方法与系统。
背景技术:
2.数字对象架构(digital object architecture,简称doa)通过数字对象统一规范互联网的数据资源,每个数字对象由三部分组成:标识、元数据、数据实体,分别在数字对象标识解析系统、数字对象注册系统、数字对象仓库系统中进行存储和管理。
3.相关技术中,通过将数字对象标识解析系统、数字对象注册系统、数字对象仓库系统部署在云服务器上,能够在满足数字对象数据基础存储管理需求的同时,拥有着高性能、高灵活性、低成本的技术优势。
4.但现有技术方案里,将数据上传到云端服务器进行存储,而云端服务器并不一定是可信赖的,为了保护数据安全、防止隐私泄露,需要将数据加密上传,但这样会造成数据搜索和使用的不便,因此出现了可搜索加密技术。可搜索加密技术能够使用户在在加密的数据上进行关键词搜索,达到保护数据隐私的效果。可搜索加密技术,一般来说分为四个阶段,第一个阶段为加密阶段,这个过程中用户会使用某种密码学技术对明文文件进行加密,形成密文并将其上传至服务器;第二个阶段为陷门生成阶段,所谓的陷门指的是查询关键词,这种关键词也需要某种方式进行加密,防止泄露相关数据信息,拥有查询权限的用户可以使用该陷门进行查询;第三个阶段为检索阶段,在服务器端输入查询陷门,执行检索算法,服务器会通过索引找到该陷门对应关键词的密文文件并返回,这个过程中,服务器所能知道的信息只是该密文文件是否包含查询陷门,除此之外一无所知;第四个阶段为解密阶段,服务器返回查询好的密文文件之后,用户可以使用相应的密码学技术进行解密,最终得到所需查询的明文文件。
5.目前的多服务器加密方案主要采用将文件分块的方式,将每个文件块分别加密存储,并构建双重索引,通过第一重索引,可以从陷门关键词找到对应的文件id;通过第二重索引,根据文件id找到对应的文件块,每个文件块都有块id,块id和服务器一一对应。在文件加密的过程中,需要通过与文件相对应的密钥1与分块后的文件块所对应的服务器的密钥2对文件块进行加密,其中服务器密钥是半公开的信息,用户可以直接取得,因此一旦文件对应的密钥也被泄露,则加密文件会被破解。
6.并且,目前的多服务器加密方案中,文件块存储在不同的服务器上,当某一服务器发生故障宕机时,其上存储的相应加密文件的文件块将无法获取,进而无法恢复对应的完整明文数据,当该宕机的服务器上存储有多个文件的加密块时,这些文件都会受到影响,更严重的是,即便在宕机的服务器数量不多且加密块存储的较为分散的情况下,也容易出现大量文件无法恢复的极端情况。
7.因此,如何降低文件加密和解密过程中密钥泄露的风险,以及在部分服务器发生宕机时保证加密文件的数据能够正常使用,是目前需要解决的问题。
技术实现要素:
8.有鉴于此,本技术旨在提出一种数字对象的可搜索加密方法与系统,以解决目前的文件搜索加密和解密过程中,密钥容易泄露导致加密文件被破解,以及少量服务器宕机导致其上存储的加密文件损坏无法恢复明文数据的问题。
9.为达到上述目的,本技术的技术方案如下:
10.本技术实施例第一方面提供一种数字对象的可搜索加密方法,包括:
11.使用随机密钥将数据所有者上传的数字对象文件的文件名进行加密,生成文件id;执行秘密共享算法对所述数字对象文件进行分片,并生成分片索引;
12.所述分片索引包括:其对应的文件id、所述分片所在的储服务器列表以及最小分片数;所述最小分片数表示恢复所述数字对象文件的明文数据所需要的最少的分片数量;
13.将所述分片与所述分片索引存储在存储服务器中;所述任一存储服务器至少存储以下数据其中之一:所述分片或所述分片索引;
14.从所述数字对象文件中提取至少一个初始关键词,使用公钥对所述初始关键词加密生成对应的陷门关键词;构建用于表征所述文件id与所述陷门关键词的映射关系的关键词索引,并发送到索引服务器进行存储;
15.根据所述关键词索引,在所述索引服务器中构建倒排索引表。
16.可选地,将所述分片与所述分片索引发送到所述存储服务器进行存储,包括:
17.对所述系统中所有服务器进行编号,执行排序选取算法,获取存储所述分片索引的存储服务器选取方案;执行排序选取算法,获取存储所述分片的存储服务器选取方案。
18.可选地,从所述数字对象文件中提取至少一个初始关键词,使用公钥对所述初始关键词加密生成对应的陷门关键词,包括:
19.使用分词技术,从所述数字对象文件中提取至少一个初始关键词,将所述初始关键词按照优先级排序;
20.使用所述公钥对每一个初始关键词进行哈希加密,生成对应的陷门关键词;每一个陷门关键词都具有与其一一对应的权重。
21.可选地,当对数字对象文件进行搜索时,从用户输入的查询信息中提取至少一个查询关键词,使用所述公钥对所述查询关键词进行哈希加密,生成对应的查询陷门关键词;
22.根据所述查询陷门关键词,在任一存储了所述关键词索引的索引服务器中,查找并获取所述查询陷门关键词对应的至少一个文件id,将所述文件id按照权重进行排序;所述权重表示所述文件id对应的数字对象文件与所述查询陷门关键词的相关程度;
23.根据排序结果,依次获取每一个文件id对应的分片索引所在的所有存储服务器,从中选择任一存储服务器获取所述文件id对应的分片索引,根据所述分片索引获取所述文件id对应的数字对象文件的所有分片所在的存储服务器列表。
24.可选地,所述数字对象的可搜索加密方法还包括:
25.按照所述存储服务器列表,依次从每一个分片对应的存储服务器中下载所述分片;
26.执行秘密共享算法,根据所述下载的分片恢复所述数字对象文件的明文数据。
27.可选地,获取存储所述分片索引的存储服务器选取方案,以及获取存储所述分片的存储服务器选取方案,包括:
28.选择与所述分片的数量相同的服务器存储所述分片,每一个分片分别存储在一个存储服务器中;根据所述最小分片数,计算存储所述分片索引的存储服务器数量:
29.存储分片索引的存储服务器数量=分片的总数-最小分片数+1。
30.根据本技术实施例的第二方面,提供一种数字对象的可搜索加密系统,所述系统用于执行第一方面所述的数字对象的可搜索加密方法,所述系统包括:分片模块、存储服务器、关键词索引构建模块以及索引服务器;
31.所述分片模块,被配置为使用随机密钥将数据所有者上传的数字对象文件的文件名进行加密,生成文件id;执行秘密共享算法对所述数字对象文件进行分片,并生成分片索引;
32.所述分片索引包括:其对应的文件id、所述分片所在的储服务器列表以及最小分片数;所述最小分片数表示恢复所述数字对象文件的明文数据所需要的最少的分片数量;
33.所述存储服务器,被配置为至少存储以下数据其中之一:所述分片或所述分片索引;
34.所述关键词索引构建模块,被配置为从所述数字对象文件中提取至少一个初始关键词,使用公钥对所述初始关键词加密生成对应的陷门关键词;构建用于表征所述文件id与所述陷门关键词的映射关系的关键词索引,并发送到索引服务器进行存储;
35.所述索引服务器,被配置为根据所述关键词索引构建倒排索引表。
36.可选地,所述分片模块包括存储选择子模块,所述存储选择子模块被配置为对所述系统中所有服务器进行编号,执行排序选取算法,获取存储所述分片索引的存储服务器选取方案;
37.执行排序选取算法,获取存储所述分片的存储服务器选取方案。
38.可选地,所述关键词索引构建模块包括:
39.关键词提取子模块,被配置为使用分词技术,从所述数字对象文件中提取至少一个初始关键词,将所述初始关键词按照优先级排序;
40.陷门关键词生成子模块,被配置为使用所述公钥对每一个初始关键词进行哈希加密,生成对应的陷门关键词;每一个陷门关键词都具有与其一一对应的权重。
41.可选地,所述数字对象的可搜索加密系统还包括搜索模块,用于对数字对象文件进行搜索,所述搜索模块包括以下子模块:
42.查询关键词生成子模块,被配置为从用户输入的查询信息中提取至少一个查询关键词,使用所述公钥对所述查询关键词进行哈希加密,生成对应的查询陷门关键词;
43.索引定位子模块,被配置为根据所述查询陷门关键词,在任一存储了所述关键词索引的索引服务器中,查找并获取所述查询陷门关键词对应的至少一个文件id,将所述文件id按照权重进行排序;所述权重表示所述文件id对应的数字对象文件与所述查询陷门关键词的相关程度;
44.分片定位子模块,被配置为根据排序结果,依次获取每一个文件id对应的分片索引所在的所有存储服务器,从中选择任一存储服务器获取所述文件id对应的分片索引,根据所述分片索引获取所述文件id对应的数字对象文件的所有分片所在的存储服务器列表。
45.可选地,所述数字对象的可搜索加密系统还包括解密模块,用于恢复数字对象文件的明文数据,所述解密模块包括以下子模块:
46.下载子模块,被配置为按照所述存储服务器列表,依次从每一个分片对应的存储服务器中下载所述分片;
47.恢复子模块,被配置为执行秘密共享算法,根据所述下载的分片恢复所述数字对象文件的明文数据。
48.可选地,所述存储选择子模块,还被配置为选择与所述分片的数量相同的服务器存储所述分片,每一个分片分别存储在一个存储服务器中;根据所述最小分片数,计算存储所述分片索引的存储服务器数量:
49.存储分片索引的存储服务器数量=分片的总数-最小分片数+1。
50.可选地,所述数字对象的可搜索加密系统还包括客户端,被配置为将数据所有者上传的数字对象文件发送给所述分片模块;将数据用户输入的查询信息发送给所述搜索模块。
51.本技术所提供的数字对象的可搜索加密方法,采用秘密共享的方式加密文件,利用秘密共享具有成员共同管理秘密的特性,使分片的数量达到最小分片数时才能恢复文件的明文数据,从而在一定程度上降低数据泄露的风险,同时保证文件明文数据的恢复不受部分服务器节点宕机的影响,提高系统的稳定性,并且本系统中的数据加密不涉及具体的密钥信息,因此无需进行密钥管理,无需担心密钥泄露。
附图说明
52.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
53.图1是本技术一实施例提出的数字对象的可搜索加密方法的流程图;
54.图2是本技术一实施例提出的数字对象的可搜索加密系统的结构示意图;
55.图3是本技术一实施例提出的构建陷门关键词的流程示意图。
具体实施方式
56.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
57.应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本技术的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
58.在本技术的各种实施例中,应理解,下述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
59.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及
附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
60.需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。
61.本技术中涉及多项关键技术,包括秘密共享、哈希技术、分词技术、倒排索引技术。秘密共享是在一组参与者中共享秘密的技术,它主要用于保护重要信息,防止信息被丢失、被破坏、被篡改。简单来说,秘密共享就是指共享的秘密在一个用户群体里进行合理分配,以达到由所有成员共同掌管秘密的目的。秘密共享通过把秘密进行分割,并把秘密在多个参与者中分享,使得只有多于特定数量的参与者合作才可以恢复秘密,而参与者数量未达到特定的数量则不能得到有关秘密。另一方面,当某些秘密碎片丢失或被毁时,利用其它的秘密份额仍能够恢复秘密。本技术中采用秘密共享技术将文件进行分片存储,提高文件数据的安全性,同时也可抗部分存储服务器宕机,从而提高系统的可靠性。
62.hmac(hash-based message authentication code,散列消息认证码)是通过密码散列函数结合一个加密密钥,通过一定的算法计算得到的消息散列码。hmac可以保证消息的完整性,它通过消息生成摘要,当消息发生改变时,摘要的内容也会不同,因此也可以将其作为消息的认证。该项技术的安全性建立在哈希加密算法之上,同样的密钥对相同的消息用hmac产生的摘要是相同的。散列函数是单向函数,无法从结果推知初始输入的数据,通过对消息形成摘要来压缩消息的大小,也能够验证消息的完整性。在一个实施例中,使用hmac-sha256的哈希加密技术进行文件加密,sha256(secure hash algorithm256,安全散列算法256)是散列函数的一种,该函数可以对任意长度的消息进行计算,结果固定32个字节,即256比特长度的字符串。在一个实施例中,在文件存储阶段,每个文件都有随机生成的一个密钥,该随机密钥与文件名通过hmac-sha256来生成的唯一标识,即文件id。在索引构建阶段,分词后的关键词不能使用明文保存,因此需要通过hmac-sha256对关键词进行处理加密生成陷门关键词。同样地,在搜索阶段,不能直接通过明文关键词搜索,也需要通过哈希加密技术转换为加密的查询陷门关键词。
63.在一个实施例中,在构建关键词索引的阶段,为了形成文件到关键词的映射关系,对文件进行分词,从中提取关键词。在一个实施例中,分词技术采用tf-idf(term frequency-inverse document frequency,词频-逆文本频率指数),通过统计的方式来评估一个词语在文件或者语料库中的重要程度,关键词的重要性随着其在文件中出现次数的上升而增加。
64.在一个实施例中在文件id到陷门关键词的映射基础上构建倒排索引。倒排索引又叫做反向索引,一般索引通常是从文件到关键词的映射,在进行加密文本查询时需要对文档逐个检索查找是否含有相关关键词,查询效率较低,在一个实施例中构建倒排索引,形成关键词到文件id的映射关系,在进行加密文本的查询时可以直接通过索引查找文间id,提高查询效率。
65.下面将参考附图并结合实施例来详细说明本实施例。
66.图1是本技术一实施例提出的数字对象的可搜索加密方法的流程图。如图1所示,该方法包括:
67.s11:使用随机密钥将数据所有者上传的数字对象文件的文件名进行加密,生成文件id;执行秘密共享算法对所述数字对象文件进行分片,并生成分片索引;
68.所述分片索引包括:其对应的文件id、所述分片所在的储服务器列表以及最小分片数;所述最小分片数表示恢复所述数字对象文件的明文数据所需要的最少的分片数量。
69.在一个实施例中,为了区分相同文件名的不同文件,通过hmac-sha256哈希加密技术,使用随机密钥将文件名加密生成文件id,文件id为该文件的全网唯一标识。其中,随机密钥是通过prng(pseudorandom number generator,伪随机数生成器)技术随机生成的。
70.在一个实施例中,在进行文件分片时,根据服务器可信程度以及故障率来选取秘密共享门限参数t和n,其中t是最小分片数,即能够恢复消息的最少分片数量;n是分片总数,即在进行文件分片时将文件划分多少分片进行存储。通过秘密共享算法将文件分片后,还要生成文件的分片索引,分片索引中包含的信息主要是文件id、分片存储服务器列表以及参数t,其中分片存储服务器列表为该文件的所有分片所在的存储服务器位置的列表。
71.s12:将所述分片与所述分片索引存储在存储服务器中;所述任一存储服务器至少存储以下数据其中之一:所述分片或所述分片索引。
72.在一个实施例中,将分片及分片索引发送到存储服务器进行存储时,需要选择对应数量的存储服务器存储文件的分片以及分片索引,这里生成的分片索引为在一个实施例中的第二重索引。
73.s121:对所述系统中所有服务器进行编号,执行排序选取算法,获取存储所述分片索引的存储服务器选取方案;执行排序选取算法,获取存储所述分片的存储服务器选取方案。
74.在一个实施例中,通过排序选取算法来进行分片存储和分片索引存储的服务器的选取。具体地,排序选取算法的步骤如下:
75.假设系统中可选的服务器总数为n,需要从n个服务器中选出m个服务器用于存储,则:
76.将n个服务器按顺序编号为:1、2、...、n;
77.建立一个数组,其长度为n,数组存储一系列0或1的二进制数字,初始阶段其前m位设为1,表示初始的选取方式为选取排序的前m个服务器用于存储;
78.从左到右扫描数组元素值,判断相邻两个元素值是否为“10”组合,当发现第一个这样的组合时将其变为“01”,同时将该组合左侧所有为1的元素移动到数组最左侧,使左侧所有为0的元素在“1”和“01”的中间,记录下当前的服务器选取方式;
79.重复上述操作,直到数组最右侧的元素全为1,即表示所有选取方式都被找到。
80.s13:从所述数字对象文件中提取至少一个初始关键词,使用公钥对所述初始关键词加密生成对应的陷门关键词;构建用于表征所述文件id与所述陷门关键词的映射关系的关键词索引,并发送到索引服务器进行存储。
81.在一个实施例中的第一重索引为关键词索引。构建关键词索引,主要阶段包括:分词、构建陷门、构建关键词索引及构建倒排索引。其中,第一个阶段是对文件进行分词。
82.如图3所示为本技术一实施例提出的构建陷门关键词的流程示意图,在一个实施例中通过tf-idf技术从数字对象文件进行分词,从中提取出m个初始关键词,作为分词结果。
83.第二个阶段为陷门关键词构建。在在一个实施例中,搜索过程为加密搜索,相关的索引信息也需要加密,如图3所示,第一个阶段得到的m个初始关键词通过hmac-sha256技术进行哈希加密生成m个对应的陷门关键词,这里使用的加密密钥为所有用户商定好的公钥(即公用密钥)以保证搜索过程的有效。
84.第三个阶段为构建关键词索引。在生成陷门关键词后,将文件id与多个陷门关键词构建映射,生成关键词索引(即文件id到陷门关键词的映射)并发送到索引服务器:存储。在一个实施例中,生成的关键词索引会发送给系统中所有索引服务器,即系统中的每个索引服务器上都存有全文索引以供查找。
85.s131:使用分词技术,从所述数字对象文件中提取至少一个初始关键词,将所述初始关键词按照优先级排序。
86.在一个实施例中,可对一个数字对象文件进行分词得到大量初始关键词进行筛选,选取优先级高的前k个关键词作为分词结果。其中,关键词的优先级表示该关键词在数字对象文件中的重要程度(例如,出现的频率越高优先级越高),则此时分词结果为:k个关键词以及每个关键词对应的tf-idf权重。
87.s132:使用所述公钥对每一个初始关键词进行哈希加密,生成对应的陷门关键词;每一个陷门关键词都具有与其一一对应的权重。
88.在一个实施例中,根据上述分词的结果将k个关键词通过所有用户商定好的公钥(即公用密钥)进行哈希加密,生成对应的k个陷门关键词,相应的,将上述与关键词对应的tf-idf权重也同样作为与陷门关键词对应的权重。
89.s14:根据所述关键词索引,在所述索引服务器中构建倒排索引表。
90.在一个实施例中,加密数字对象文件的第四个阶段为构建倒排索引。在索引服务器收到客户端发送的关键词索引信息后,构建倒排索引,将原本从文件id到陷门关键词的映射索引进行倒排,生成从陷门关键词到文件id的映射,从而在后续进行查询时,能够通过陷门关键词直接获取对应的文件id,提高查询效率。在一个实施例中,只需设置少量的服务器作为索引服务器,一般来说,系统中设置2到3个就足够。
91.s151:当对数字对象文件进行搜索时,从用户输入的查询信息中提取至少一个查询关键词,使用所述公钥对所述查询关键词进行哈希加密,生成对应的查询陷门关键词;
92.在一个实施例中,从用户输入的查询信息中提取至少一个查询关键词进行加密,构建查询陷门关键词。在查询关键词的提取过程中,首先判断用户输入的查询信息是一个或多个查询关键词,还是一行文字;如果是关键词,则可直接进行查询陷门关键词的构建;如果是一行文字,则需要先对其进行分词,得到一个或多个查询关键词,再进行查询陷门关键词的构建,在这里进行分词得到的查询关键词没有优先级的概念。
93.得到一个或多个查询关键词后,同样使用上述提到的所有用户商定好的公钥对其进行哈希加密,生成对应的一个或多个查询陷门关键词。
94.s152:根据所述查询陷门关键词,在任一存储了所述关键词索引的索引服务器中,查找并获取所述查询陷门关键词对应的至少一个文件id,将所述文件id按照权重进行排序;所述权重表示所述文件id对应的数字对象文件与所述查询陷门关键词的相关程度;
95.在一个实施例中,根据查询陷门关键词,在系统中任选一个索引服务器,查找该索引服务器中的倒排索引表,获取该陷门关键词对应的多个文件id。对于获取的多个文件id,
可对其按照文件相关程度排序。具体地,可以根据不同文件id在同一关键词下的权重系数(例如,关键词出现频率越高的文件id的权重系数越高),按权重系数从高到低排序,选择排在前q(q可根据实际情况指定)的多个文件id作为查找结果。
96.s153:根据排序结果,依次获取每一个文件id对应的分片索引所在的所有存储服务器,从中选择任一存储服务器获取所述文件id对应的分片索引,根据所述分片索引获取所述文件id对应的数字对象文件的所有分片所在的存储服务器列表。
97.在一个实施例中,根据索引定位子模块获取的查找结果,依次根据查找结果中每个文件id,从存储文件分片索引的存储服务器中获取所述文件id对应的所有分片所在的位置,即获取对应的分片存储服务器列表。在一个实施例中,在存储分片索引时,通过上述排序选取算法选取了唯一固定的分片索引的存储方式,因此此处只需通过排序选取算法,找到该存储方式的所有存储服务器中任一存储服务器进行查找即可。
98.即在在一个实施例中,用户输入查信息对加密的数字对象文件进行搜索,查询信息可能是一个或多个关键词,也可能是一行文字。首先根据用户输入的查询信息构建查询陷门关键词,然后根据查询陷门关键词从索引服务器中的倒排索引查找符合所述查询信息的文件id,最后根据文件id获取其对应的所有分片的存储位置,即获取分片索引中所有分片所在的存储服务器的列表。
99.s161:按照所述存储服务器列表,依次从每一个分片对应的存储服务器中下载所述分片;
100.s162:执行秘密共享算法,根据所述下载的分片恢复所述数字对象文件的明文数据。
101.在一个实施例中,通过上述获取到的所有分片所在的存储服务器的列表,根据列表中每一个分片所在的位置,从对应的存储服务器中下载分片文件,当下载的分片数量达到最小分片数t时,再次通过秘密共享算法进行文件的恢复,得到文件的明文数据。
102.s1211:选择与所述分片的数量相同的服务器存储所述分片,每一个分片分别存储在一个存储服务器中;根据所述最小分片数,计算存储所述分片索引的存储服务器数量:
103.存储分片索引的存储服务器数量=分片的总数-最小分片数+1。
104.在一个实施例中,假定服务器的总体数量为n,需要选取n-t+1个存储服务器来存储文件片索引,选取n(即分片的总数)个服务器来存储各个分片。需要注意的是,系统中的存储服务器既可以单独存储分片或分片索引,也可以同时存储分片和分片索引,一个文件的每一个分片分别存储在不同的存储服务器中。
105.基于上述排序选取算法,从n个服务器中选出n-t+1个服务器作为文件片索引的存储服务器,步骤如下:
106.根据上述排序选取算法,得到x种选取方式,这些选取方式有着固定的顺序;
107.用文件id与x做哈希计算,得到0到x-1之间的一个数y,选择第y+1种选取方式进行存储。这样做的目的是在搜索过程中可以根据文件id计算得到相应文件片索引的存放位置,通过唯一的文件id,能够获取唯一的存储服务器选取方式。
108.在一个实施例中,同样基于上述排序选取算法,从n个服务器中选出与文件分片数量相同的n个服务器作为文件片索引的存储服务器,步骤如下:
109.根据上述排序选取算法,得到z种选取方式;
110.在z种方式中随机选取一种选取方式进行存储,文件片的存储服务器选取方式不固定。
111.基于同一发明构思,本技术一实施例提供数字对象的可搜索加密系统,所述系统用于执行第一方面所述的数字对象的可搜索加密方法。图2是本技术一实施例提出的数字对象的可搜索加密系统200的结构示意图。
112.如图2所示,所述系统包括分片模块201、存储服务器202、关键词索引构建模块203以及索引服务器204;
113.所述分片模块201,被配置为使用随机密钥将数据所有者上传的数字对象文件的文件名进行加密,生成文件id;执行秘密共享算法对所述数字对象文件进行分片,并生成分片索引;
114.所述分片索引包括:其对应的文件id、所述分片所在的储服务器列表以及最小分片数;所述最小分片数表示恢复所述数字对象文件的明文数据所需要的最少的分片数量;
115.所述存储服务器202,被配置为至少存储以下数据其中之一:所述分片或所述分片索引;
116.所述关键词索引构建模块203,被配置为从所述数字对象文件中提取至少一个初始关键词,使用公钥对所述初始关键词加密生成对应的陷门关键词;构建用于表征所述文件id与所述陷门关键词的映射关系的关键词索引,并发送到索引服务器204进行存储;
117.所述索引服务器204,被配置为根据所述关键词索引构建倒排索引表。
118.可选地,所述分片模块201包括存储选择子模块,所述存储选择子模块被配置为对所述系统中所有服务器进行编号,执行排序选取算法,获取存储所述分片索引的存储服务器选取方案;
119.执行排序选取算法,获取存储所述分片的存储服务器选取方案。
120.可选地,所述关键词索引构建模块203包括:
121.关键词提取子模块,被配置为使用分词技术,从所述数字对象文件中提取至少一个初始关键词,将所述初始关键词按照优先级排序;
122.陷门关键词生成子模块,被配置为使用所述公钥对每一个初始关键词进行哈希加密,生成对应的陷门关键词;每一个陷门关键词都具有与其一一对应的权重。
123.可选地,所述数字对象的可搜索加密系统还包括搜索模块,用于对数字对象文件进行搜索,所述搜索模块包括以下子模块:
124.查询关键词生成子模块,被配置为从用户输入的查询信息中提取至少一个查询关键词,使用所述公钥对所述查询关键词进行哈希加密,生成对应的查询陷门关键词;
125.索引定位子模块,被配置为根据所述查询陷门关键词,在任一存储了所述关键词索引的索引服务器中,查找并获取所述查询陷门关键词对应的至少一个文件id,将所述文件id按照权重进行排序;所述权重表示所述文件id对应的数字对象文件与所述查询陷门关键词的相关程度;
126.分片定位子模块,被配置为根据排序结果,依次获取每一个文件id对应的分片索引所在的所有存储服务器,从中选择任一存储服务器获取所述文件id对应的分片索引,根据所述分片索引获取所述文件id对应的数字对象文件的所有分片所在的存储服务器列表。
127.可选地,所述数字对象的可搜索加密系统还包括解密模块,用于恢复数字对象文
件的明文数据,所述解密模块包括以下子模块:
128.下载子模块,被配置为按照所述存储服务器列表,依次从每一个分片对应的存储服务器中下载所述分片;
129.恢复子模块,被配置为执行秘密共享算法,根据所述下载的分片恢复所述数字对象文件的明文数据。
130.可选地,所述存储选择子模块,还被配置为选择与所述分片的数量相同的服务器存储所述分片,每一个分片分别存储在一个存储服务器中;根据所述最小分片数,计算存储所述分片索引的存储服务器数量:
131.存储分片索引的存储服务器数量=分片的总数-最小分片数+1。
132.可选地,所述数字对象的可搜索加密系统还包括客户端,被配置为将数据所有者上传的数字对象文件发送给所述分片模块;将数据用户输入的查询信息发送给所述搜索模块。
133.在一个实施例中,用户通过客户端输入查询信息,并发送给搜索模块,所述查询信息可以是关键词的形式,例如一个或多个查询关键词,也可以是一行文字的形式,搜索模块从其中提取出一个或多个查询关键词。
134.关于上述实施例中的方法,其中各个步骤的具体执行过程已经在有关该系统的实施例中进行了详细描述,此处将不做详细阐述说明。
135.以上所述仅为本技术的较佳实施例而已,并不用以限制本技术,凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
136.对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和部件并不一定是本技术所必须的。
137.本领域内的技术人员应明白,本技术实施例可提供为方法、装置、或计算机程序产品。因此,本技术实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
138.本技术实施例是参照根据本技术实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
139.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
140.这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
141.尽管已描述了本技术实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本技术实施例范围的所有变更和修改。
142.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
143.以上对本技术所提供的数字对象的可搜索加密方法与系统进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。
技术特征:
1.一种数字对象的可搜索加密方法,其特征在于,包括:使用随机密钥将数据所有者上传的数字对象文件的文件名进行加密,生成文件id;执行秘密共享算法对所述数字对象文件进行分片,并生成分片索引;所述分片索引包括:其对应的文件id、所述分片所在的储服务器列表以及最小分片数;所述最小分片数表示恢复所述数字对象文件的明文数据所需要的最少的分片数量;将所述分片与所述分片索引存储在存储服务器中;所述任一存储服务器至少存储以下数据其中之一:所述分片或所述分片索引;从所述数字对象文件中提取至少一个初始关键词,使用公钥对所述初始关键词加密生成对应的陷门关键词;构建用于表征所述文件id与所述陷门关键词的映射关系的关键词索引,并发送到索引服务器进行存储;根据所述关键词索引,在所述索引服务器中构建倒排索引表。2.根据权利要求1所述的数字对象的可搜索加密方法,其特征在于,将所述分片与所述分片索引发送到所述存储服务器进行存储,包括:对所述系统中所有服务器进行编号,执行排序选取算法,获取存储所述分片索引的存储服务器选取方案;执行排序选取算法,获取存储所述分片的存储服务器选取方案。3.根据权利要求1所述的数字对象的可搜索加密方法,其特征在于,从所述数字对象文件中提取至少一个初始关键词,使用公钥对所述初始关键词加密生成对应的陷门关键词,包括:使用分词技术,从所述数字对象文件中提取至少一个初始关键词,将所述初始关键词按照优先级排序;使用所述公钥对每一个初始关键词进行哈希加密,生成对应的陷门关键词;每一个陷门关键词都具有与其一一对应的权重。4.根据权利要求1所述的数字对象的可搜索加密方法,其特征在于,当对数字对象文件进行搜索时,从用户输入的查询信息中提取至少一个查询关键词,使用所述公钥对所述查询关键词进行哈希加密,生成对应的查询陷门关键词;根据所述查询陷门关键词,在任一存储了所述关键词索引的索引服务器中,查找并获取所述查询陷门关键词对应的至少一个文件id,将所述文件id按照权重进行排序;所述权重表示所述文件id对应的数字对象文件与所述查询陷门关键词的相关程度;根据排序结果,依次获取每一个文件id对应的分片索引所在的所有存储服务器,从中选择任一存储服务器获取所述文件id对应的分片索引,根据所述分片索引获取所述文件id对应的数字对象文件的所有分片所在的存储服务器列表。5.根据权利要求4所述的数字对象的可搜索加密方法,其特征在于,还包括:按照所述存储服务器列表,依次从每一个分片对应的存储服务器中下载所述分片;执行秘密共享算法,根据所述下载的分片恢复所述数字对象文件的明文数据。6.根据权利要求2所述的数字对象的可搜索加密方法,其特征在于,获取存储所述分片索引的存储服务器选取方案,以及获取存储所述分片的存储服务器选取方案,包括:选择与所述分片的数量相同的服务器存储所述分片,每一个分片分别存储在一个存储服务器中;根据所述最小分片数,计算存储所述分片索引的存储服务器数量:存储分片索引的存储服务器数量=分片的总数-最小分片数+1。
7.一种数字对象的可搜索加密系统,其特征在于,用于执行权利要求1-6任一所述的数字对象的可搜索加密方法,所述系统包括:分片模块、存储服务器、关键词索引构建模块以及索引服务器;所述分片模块,被配置为使用随机密钥将数据所有者上传的数字对象文件的文件名进行加密,生成文件id;执行秘密共享算法对所述数字对象文件进行分片,并生成分片索引;所述分片索引包括:其对应的文件id、所述分片所在的储服务器列表以及最小分片数;所述最小分片数表示恢复所述数字对象文件的明文数据所需要的最少的分片数量;所述存储服务器,被配置为至少存储以下数据其中之一:所述分片或所述分片索引;所述关键词索引构建模块,被配置为从所述数字对象文件中提取至少一个初始关键词,使用公钥对所述初始关键词加密生成对应的陷门关键词;构建用于表征所述文件id与所述陷门关键词的映射关系的关键词索引,并发送到索引服务器进行存储;所述索引服务器,被配置为根据所述关键词索引构建倒排索引表。8.根据权利要求7所述的数字对象的可搜索加密系统,其特征在于,所述分片模块包括存储选择子模块,所述存储选择子模块被配置为对所述系统中所有服务器进行编号,执行排序选取算法,获取存储所述分片索引的存储服务器选取方案;执行排序选取算法,获取存储所述分片的存储服务器选取方案。9.根据权利要求7所述的数字对象的可搜索加密系统,其特征在于,所述关键词索引构建模块包括:关键词提取子模块,被配置为使用分词技术,从所述数字对象文件中提取至少一个初始关键词,将所述初始关键词按照优先级排序;陷门关键词生成子模块,被配置为使用所述公钥对每一个初始关键词进行哈希加密,生成对应的陷门关键词;每一个陷门关键词都具有与其一一对应的权重。10.根据权利要求7所述的数字对象的可搜索加密系统,其特征在于,还包括搜索模块,用于对数字对象文件进行搜索,所述搜索模块包括以下子模块:查询关键词生成子模块,被配置为从用户输入的查询信息中提取至少一个查询关键词,使用所述公钥对所述查询关键词进行哈希加密,生成对应的查询陷门关键词;索引定位子模块,被配置为根据所述查询陷门关键词,在任一存储了所述关键词索引的索引服务器中,查找并获取所述查询陷门关键词对应的至少一个文件id,将所述文件id按照权重进行排序;所述权重表示所述文件id对应的数字对象文件与所述查询陷门关键词的相关程度;分片定位子模块,被配置为根据排序结果,依次获取每一个文件id对应的分片索引所在的所有存储服务器,从中选择任一存储服务器获取所述文件id对应的分片索引,根据所述分片索引获取所述文件id对应的数字对象文件的所有分片所在的存储服务器列表。
技术总结
本申请涉及一种数字对象的可搜索加密方法与系统。该方法包括:使用随机密钥加密数字对象文件的文件名,生成文件ID;执行秘密共享算法对数字对象文件进行分片并生成分片索引;将分片与分片索引存储在存储服务器中;从数字对象文件中提取至少一个初始关键词,使用公钥对初始关键词加密生成对应的陷门关键词;构建用于表征文件ID与陷门关键词的映射关系的关键词索引并发送到索引服务器进行存储;根据关键词索引在索引服务器中构建倒排索引表。本方法采用秘密共享的方式加密文件,从而在一定程度上降低数据泄露的风险,同时保证文件明文数据的恢复不受部分服务器节点宕机的影响,并且本系统中不涉及具体的密钥信息,无需担心密钥泄露。泄露。泄露。
技术研发人员:黄罡 马郓 蔡华谦 杨婧如
受保护的技术使用者:北京大学
技术研发日:2023.06.06
技术公布日:2023/8/23
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/