CN113779597B - 加密文档的存储和相似检索方法、装置、设备及介质 - Google Patents

加密文档的存储和相似检索方法、装置、设备及介质 Download PDF

Info

Publication number
CN113779597B
CN113779597B CN202110954608.8A CN202110954608A CN113779597B CN 113779597 B CN113779597 B CN 113779597B CN 202110954608 A CN202110954608 A CN 202110954608A CN 113779597 B CN113779597 B CN 113779597B
Authority
CN
China
Prior art keywords
document
encrypted
storage
fingerprint
user side
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110954608.8A
Other languages
English (en)
Other versions
CN113779597A (zh
Inventor
西巴希·穆斯塔法·阿卜杜拉齐兹·穆特拉克
马军超
扎伊德·阿明·阿卜杜勒贾巴尔
阿亚德·易卜拉欣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Technology University
Original Assignee
Shenzhen Technology University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Technology University filed Critical Shenzhen Technology University
Priority to CN202110954608.8A priority Critical patent/CN113779597B/zh
Priority to PCT/CN2021/129874 priority patent/WO2023019762A1/zh
Publication of CN113779597A publication Critical patent/CN113779597A/zh
Application granted granted Critical
Publication of CN113779597B publication Critical patent/CN113779597B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database

Abstract

本发明涉及一种加密文档的存储和相似检索方法、装置、设备及介质,包括:获取检索用户端发送的相似性检索请求,加密源文档指纹集是采用存储用户端ID共享的索引构建秘钥生成的。获取对应的文档安全索引以及文档安全索引对应的加密文档指纹集,加密文档指纹集包括至少一个加密存储指纹。获取每一加密存储指纹的相似性分数,以从所有加密存储指纹中筛选出目标对比文档集。向检索用户端返回目标对比文档集。该加密文档的相似检索和存储方法可保持文档集的加密文档的隐私保护性的同时,给检索用户端提供轻量级、安全、高效地实现加密文档相似性检索的环境。

Description

加密文档的存储和相似检索方法、装置、设备及介质
技术领域
本发明涉及计算机数据安全领域,具体涉及了一种加密文档的存储和相似检索方法、装置、设备及介质。
背景技术
鉴于可以通过互联网访问的内容数量之多,在不承认原始作者或出处的情况下,抄袭者试图修改他人作品的写作、理论或形式,并将其他作者的理论或想法作为个人文档中的理论或想法是不难的,以便将修改后的文档呈现为自己的作品。基于上述现象,文档相似性检测(document similarity detection,DSD)一直存在于若干实际应用中。在DSD过程中,一个检测集群DSD系统会收集多个类似的文件,并且可以识别出重复的文档。这种方法可以用来检测,例如,最近针对某期刊提出的文章是否包含抄袭或类似的章节。但是,这些流行的DSD系统将文档假定为公共文档,并不关注所要匹配的文档的隐私性。
在实际实现和实际生活应用中,对文档隐私性的忽略可能会阻碍该DSD技术的有效应用性。例如,在两个会议或期刊中发现所提交论文的相似性必须以轻量级的方式维护论文的隐私性。还存在多种实际应用场景,需要以隐秘的方式保护这些应用场景的内容来定位可疑文档是否为近似作品。例如,为了更好地了解常见疾病,许多不同的卫生机构共同希望验证其疾病报告的相似性。但由于隐私问题,没有卫生机构愿意将其疾病报告披露给其他人。也即在不披露隐私的情况下比较疾病报告是非常必要的。
现有技术包括:
(1)通过候选检索、用语分级、语义角色标记和可比性检测,以识别句子每个部分的含义;
(2)通过向量空间模型来表示文档,并采用余弦相似度来衡量第三方服务器维护的每个文档对之间的全局相似度;
(3)交换两个相似的句子,实施私有且安全的多方计算协议来生成余弦和Srensen-Dice度量值,通过比较检测每对句子的相似性。由于这个过程发生在两端之间的每对句子中,因此需要多轮通信,这在实际中并不合适,特别是对于资源有限的设备。
现有技术存在以下缺点:(1)花费的资源较高,对于计算机的算力要求较高;(2)方法需要大量的计算和存储成本;(3)需要多轮通信,这在实际中并不合适,特别是对于资源有限的设备。
因此,如何在不披露文档隐私的情况下采用轻量级方式检测存储的加密文档之间的相似性成为亟待解决的问题。
发明内容
本发明的目的在于至少解决现有技术中存在的技术问题之一,提供了一种加密文档的存储和相似检索方法、装置、设备及介质,解决了现有技术的不足。
本发明的技术方案包括一种加密文档的存储方法,其特征在于,包括以下步骤:获取携带文档集的远程加密存储请求,所述文档集包括用于加密存储的至少一个待存储文档;获取所述文档集对应的文档指纹集,基于所述文档指纹集中的至少一个文档指纹,获取对应的倒排列表;根据每个所述文档指纹和其对应的倒排列表,形成所述文档集对应的倒排索引;基于预设秘钥生成机制,生成索引构建秘钥、数据加密秘钥以及Paillier密码系统中的函数加密公钥;采用所述函数加密公钥加密所述倒排索引,获取所述文档集对应的文档安全索引;采用所述索引构建秘钥加密所述文档指纹,获取加密存储指纹,结合所有所述加密存储指纹形成所述文档集对应的加密文档指纹集;采用所述数据加密秘钥加密每个所述待存储文档,形成所述文档集对应的加密文档集;向远程服务器发送加密文档存储请求,所述加密文档存储请求至少包括存储用户端ID、所述文档安全索引、所述加密文档指纹集以及所述加密文档集,以使所述远程服务器基于所述存储用户端ID关联存储所述文档安全索引、所述加密文档指纹集以及所述加密文档集。
根据所述的加密文档的存储方法,其中采用所述索引构建秘钥加密所述文档指纹,获取加密存储指纹,结合所有所述加密存储指纹形成所述文档集对应的加密文档指纹集还包括:生成与所述文档集的数据无关的随机伪造数据和随机伪造哈希值,将所述随机伪造数据和随机伪造哈希值分别添加到所述加密文档集中和文档安全索引中。
根据所述的加密文档的存储方法,其中向远程服务器发送加密文档存储请求之后还包括:获取任一携带检索用户端ID的检索用户端发送的信息共享请求;若所述检索用户端ID为新的检索用户端,则基于所述Paillier密码系统中的所述函数加密公钥,生成一所述函数加密公钥对应的更新的函数解密私钥;基于所述信息共享请求,向所述检索用户端共享所述存储用户端ID对应的所述函数解密私钥、所述索引构建秘钥以及所述数据加密秘钥。
本发明的技术还包括一种加密文档的相似检索方法,该方法包括以下步骤:获取发送的相似性检索请求,所述相似性检索请求包括加密源文档指纹集和存储用户端ID,所述加密源文档指纹集通过存储用户端ID共享的索引构建秘钥生成;根据所述存储用户端ID,获取对应的文档安全索引以及所述文档安全索引对应的加密文档指纹集,所述加密文档指纹集包括至少一个加密存储指纹;基于所述加密源文档指纹集,通过Paillier密码系统获取每一加密存储指纹的相似性分数,以从所有加密存储指纹中筛选出目标对比文档集;向检索用户端返回目标对比文档集,以使检索用户端通过存储用户端ID共享的Paillier密码系统对应的函数解密私钥解密目标对比文档集,并最终获取明文检索文档。
根据所述的加密文档的相似检索方法,其中从所有所述加密存储指纹中筛选出目标对比文档集还包括:将所有所述加密存储指纹的相似性分数按从大到小的顺序进行分数排序,获取排序结果;基于所述排序结果,按所述检索数量提取分数最多的每一所述加密存储指纹形成所述目标对比文档集。
根据所述的加密文档的相似检索方法,其中以使所述检索用户端通过所述存储用户端ID共享的所述Paillier密码系统对应的函数解密私钥解密所述目标对比文档集,并最终获取明文检索文档包括:以使所述检索用户端通过所述存储用户端ID共享的所述Paillier密码系统对应的函数解密私钥对所述目标对比文档集进行解密,获取目标对比文档集中每一组所述目标对比加密文档和其对应的相似性分数;基于每一所述相似性分数,从所有所述目标对比加密文档中获取至少一个目标检索加密文档;采用所述存储用户端ID共享的数据加密秘钥解密至少一个所述目标检索加密文档,以最终获取所述明文检索文档。
本发明的技术方案还包括一种加密文档的存储装置,其特征在于,包括存储用户端,所述存储用户端包括:获取存储请求模块,用于获取携带文档集的远程加密存储请求,所述文档集包括用于加密存储的至少一个待存储文档;获取文档指纹模块,用于获取所述文档集对应的文档指纹集,基于所述文档指纹集中的至少一个文档指纹,获取对应的倒排列表;形成倒排索引模块,用于结合每一所述文档指纹和其对应的倒排列表,形成所述文档集对应的倒排索引;获取加密公钥模块,用于基于预设秘钥生成机制,生成索引构建秘钥、数据加密秘钥以及Paillier密码系统中的函数加密公钥;形成加密文档集模块,用于采用所述函数加密公钥加密所述倒排索引,获取所述文档集对应的文档安全索引;采用所述索引构建秘钥加密所述文档指纹,获取加密存储指纹,结合所有所述加密存储指纹形成所述文档集对应的加密文档指纹集;采用所述数据加密秘钥加密每一所述待存储文档,形成所述文档集对应的加密文档集;发送存储请求模块,用于向远程服务器发送加密文档存储请求,所述加密文档存储请求包括存储用户端ID、所述文档安全索引、所述加密文档指纹集以及所述加密文档集,以使所述远程服务器基于所述存储用户端ID关联存储所述文档安全索引、所述加密文档指纹集以及所述加密文档集。
本发明的技术方案还包括一种加密文档的相似检索装置,包括远程服务器,其中远程服务器包括:获取检索请求模块,用于获取所述检索用户端发送的相似性检索请求,所述相似性检索请求包括加密源文档指纹集和存储用户端ID,所述加密源文档指纹集是采用所述存储用户端ID共享的索引构建秘钥生成的;获取安全索引模块,用于基于所述存储用户端ID,获取对应的文档安全索引以及所述文档安全索引对应的加密文档指纹集,所述加密文档指纹集包括至少一个加密存储指纹;获取相似性分数模块,用于基于所述加密源文档指纹集,采用Paillier密码系统获取每一所述加密存储指纹的相似性分数,以从所有所述加密存储指纹中筛选出目标对比文档集;返回对比文档集模块,用于向所述检索用户端返回所述目标对比文档集,以使所述检索用户端通过所述存储用户端ID共享的所述Paillier密码系统对应的函数解密私钥解密所述目标对比文档集,并最终获取明文检索文档。
本发明的技术方案还包括一种设备,该设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现任一项所述加密文档的存储方法,或者,所述处理器执行所述计算机程序时实现任一项所述加密文档的相似检索方法。
本发明的技术方案还包括一种计算机可读介质,所述计算机可读介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现任一项所述加密文档的存储方法,或者,所述计算机程序被处理器执行时实现任一项所述加密文档的相似检索方法。
本发明的有益效果为:通过存储用户端将文档集进行加密后生成对应的文档安全索引、加密文档指纹集以及加密文档集存储到远程服务器上,可保持加密文档集的隐私保护性的同时,给检索用户端提供可通过智能设备的实现轻量级、安全、高效地实现加密文档相似性检索的环境,以快速获取明文检索文档,适应各种需要进行加密文档相似性检索的应用场景。
附图说明
下面结合附图和实施例对本发明进一步地说明;
图1所示为根据本发明实施方式的加密文档的存储和相似检索方法的应用环境示意图;
图2所示为根据本发明实施方式的加密文档的存储和相似检索方法的流程图;
图3所示为根据本发明实施方式的加密文档的存储和相似检索方法的另一流程图;
图4所示为根据本发明实施方式的加密文档的存储和相似检索方法的另一流程图;
图5所示为根据本发明实施方式的加密文档的存储和相似检索方法的一应用场景图;
图6所示为根据本发明实施方式的加密文档的存储和相似检索装置的示意图;
图7所示为根据本发明实施方式的设备示意图。
附图标记:
存储装置10、获取存储请求模块11、获取文档指纹模块12、形成倒排索引模块13、获取加密公钥模块14、形成加密文档集模块15、发送存储请求模块16、似检索装置20、获取检索请求模块21、获取安全索引模块22、获取相似性分数模块23、返回对比文档集模块24
具体实施方式
本部分将详细描述本发明的具体实施例,本发明之较佳实施例在附图中示出,附图的作用在于用图形补充说明书文字部分的描述,使人能够直观地、形象地理解本发明的每个技术特征和整体技术方案,但其不能理解为对本发明保护范围的限制。
在本发明的描述中,若干的含义是一个或者多个,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。
在本发明的描述中,对方法步骤的连续标号是为了方便审查和理解,结合本发明的整体技术方案以及各个步骤之间的逻辑关系,调整步骤之间的实施顺序并不会影响本发明技术方案所达到的技术效果。
本发明的描述中,除非另有明确的限定,设置等词语应做广义理解,所属技术领域技术人员可以结合技术方案的具体内容合理确定上述词语在本发明中的具体含义。
本发明实施例提供的加密文档的相似检索方法,可应用在如图1的应用环境中,该加密文档的相似检索方法应用在加密文档的相似检索系统中,该加密文档的相似检索系统包括客户端和服务器,其中,客户端通过网络与服务器进行通信。客户端又称为用户端,是指与服务器相对应,为客户端提供本地服务的程序。该客户端可安装在但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备等设备上。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
该加密文档的存储方法包括存储用户端执行的如下步骤:获取携带文档集的远程加密存储请求,文档集包括用于加密存储的至少一个待存储文档;获取文档集对应的文档指纹集,基于文档指纹集中的至少一个文档指纹,获取对应的倒排列表;结合每一文档指纹和其对应的倒排列表,形成文档集对应的倒排索引;基于预设秘钥生成机制,生成索引构建秘钥、数据加密秘钥以及Paillier密码系统中的函数加密公钥;采用函数加密公钥加密倒排索引,获取文档集对应的文档安全索引;采用索引构建秘钥加密文档指纹,获取加密存储指纹,结合所有加密存储指纹形成文档集对应的加密文档指纹集;采用数据加密秘钥加密每一待存储文档,形成文档集对应的加密文档集;向远程服务器发送加密文档存储请求,加密文档存储请求包括存储用户端ID、文档安全索引、加密文档指纹集以及加密文档集,以使远程服务器基于存储用户端ID关联存储文档安全索引、加密文档指纹集以及加密文档集。
该加密文档的相似检索方法还包括远程服务器执行的如下步骤:获取检索用户端发送的相似性检索请求,相似性检索请求包括加密源文档指纹集和存储用户端ID,加密源文档指纹集是采用存储用户端ID共享的索引构建秘钥生成的;基于存储用户端ID,获取对应的文档安全索引以及文档安全索引对应的加密文档指纹集,加密文档指纹集包括至少一个加密存储指纹;基于加密源文档指纹集,采用Paillier密码系统获取每一加密存储指纹的相似性分数,以从所有加密存储指纹中筛选出目标对比文档集;向检索用户端返回目标对比文档集,以使检索用户端通过存储用户端ID共享的Paillier密码系统对应的函数解密私钥解密目标对比文档集,并最终获取明文检索文档。
在一实施例中,如图2所示,提供一种加密文档的相似检索方法,以该方法应用在图1中的存储用户端和远程服务器为例进行说明,具体包括如下步骤:
S11,存储用户端获取携带文档集的远程加密存储请求,文档集包括用于加密存储的至少一个待存储文档。
其中,存储用户端是存在多个待存储文档需要放置到远程服务器上进行加密存储的客户端,用以节省本地存储空间,同时需要保证待存储文档在远程服务器上的隐私保护性,比如远程服务器S是不受信任的,无法查看存储用户端Bob在其上存储的文档集个数为m的加密文档集D={d1,d2,...,dm}的内容,仅可根据检索用户端的请求执行相似加密文档的查找。
待存储文档也即构成文档集的用于进行加密存储的文档之一。
具体地,从整体来看,本实施例提供的步骤S11至S16是加密文档检索的初始配置阶段,包括:文档安全索引生成、文档指纹集的生成和文档集的加密。步骤S21至S24是基于文档安全索引之上的加密文档的索引,其中的Bob和Alice分别为不同请求行为的用户。
S12,存储用户端获取文档集对应的文档指纹集,基于文档指纹集中的至少一个文档指纹,获取对应的倒排列表。
其中,文档指纹集是采用常用文档指纹算法生成的文档集对应的每一指纹fj的集合。于本实施例中,可采用Winnowing算法提取文档集的指纹。
倒排列表是指包括指纹词fj的一组待存储文档的文档ID。倒排列表Pj只是数量为m的文档集的位向量(发布向量)。
具体地,指纹生成过程如下:
给定文档集D={d1,d2,...,dm}。数据所有者Bob为每个文档di生成指纹。而指纹是一组整数(项)的集。将F={f1,f2,...,fl}定义为文档集所有指纹的联合集。倒排索引I包括一组指纹词fj及其对应的倒排列表Pj,即I={((fj,Pj),j=1,...,l}。
采用Winnowing算法提取文档集的指纹过程如下:对全部和部分相似或复制的文本的检测,可通过使用哈希码有效地操控指纹识别。
首先,每一待存储文档被分为一组k-gram集以获得指纹。然后,对该k-gram集进行哈希处理和压缩。该算法从w个窗口滑片中指定最小的哈希值。当采用这样的哈希指纹时,存在用于检测重复文本和原始文本之间的相似性的特定边界。
给定字符串S为n个字符的序列。k-gram是长度为k的子字符串。例如,字符串S=“to be or not to be”的4-grams是长度为n-k+1的{'tobe','obeo','beor','eorn','orno','rnot','nott','otto','ttob','tobe'}。将k-gram集进行哈希是由Karp-Rabin算法来实现的。该算法允许第i+1个的k-gram的哈希可以从第i个k-gram有效地计算出来。假设第一个k-gram是基于b的t1,...,tk的数字集合。然后可以将这些数字哈希为:
F1=(t1×bk-1+t2×bk-2+...+tk-1×b+tk)modM (1)
其中M是定义的常数。数字t2,...,tk+1的第二个k-gram的有效计算式如下:
F2=(((F1-t1×bk)+tk+1)×b)modM (2)
通常,第i个k-gram的计算公式为:
现在描述Winnowing算法是如何从F1,...,Fn-k+1间的哈希码中选择指纹的。给定两个文档,该算法保证在这两个文档之间找到满足以下条件的子字符串匹配项:
1)匹配字符串的长度不少于保证阈值T;
2)匹配的子字符串的长度不超过噪声阈值k。
需要注意的是,T>K和k都是用户自定义的值。即使选择较大的k值可以防止两个文档之间的巧合匹配,但由于无法检测到任何长度小于k的子字符串的重定位,因此将限制对文档内容重新排序的敏感性。
因此,选择k的最小值是有必要的,使得巧合匹配可以忽略不计。该算法将窗口大小定义为:w=T-k+1。
序列1≤i≤(n-k+1)-w+1中的每个位置都定义了一个哈希Fi...Fi+w-1的窗口。在每个窗口中选择最小哈希值。如果在同一窗口中有多个具有最小值的哈希,选择最右边出现的一个。连续窗口中相同的哈希值不会插入指纹中。所有被选中的哈希值都被视为文档的指纹。
例如,假设有以下哈希码:77 72 42 17 98 50 17 98 8 88 67 39 77 72 42 1798,并且假设窗口大小w=4。整个窗口将是(77、72、42、17)(72、42、17、98)(42、17、98、50)(17、98、50、17)(98、50、17、98)(50,17,98,8)(17,98,8,88)(98,8,88,67)(8,88,67,39)(88,67,39,77)(67,39,77、72)(39、77、72、42)(77、72、42、17)(72、42、17、98)。根据Winnowing算法得到的文档指纹为:17 17 8 39 17。
S13,存储用户端结合每一文档指纹和其对应的倒排列表,形成文档集对应的倒排索引。
具体地,给定ID(di)作为文档di的标识符,如果倒排列表的发布向量Pj[ID(di)]=1,并且仅当di包括指纹词fj时。下表1示出了一个简单的倒排索引示例,其中包含来自14个待存储文档的五个指纹。例如,指纹500出现在五个文档(d1,d2,d4,d6和d14)中。
表1
S14,存储用户端基于预设秘钥生成机制,生成索引构建秘钥、数据加密秘钥以及Paillier密码系统中的函数加密公钥。
其中,·Kcoll:数据加密秘钥。
·K1:索引构建秘钥。
·kpub:Paillier密码系统中的加密函数公钥。
·kpriv:Paillier密码系统中的解密函数私钥。
具体地,数据所有者Bob在生成秘钥K1=(b,M),kpub,kpriv和Kcoll时,启动了隐私保护DSD机制的流程,其中b是基本参数,M是常数。之后,Bob与其他授权可进行加密文档检索的数据用户,比如Alice共享上述预设秘钥生成机制中的部分信息以启动安全的DSD机制。
S15,存储用户端采用函数加密公钥加密倒排索引,获取文档集对应的文档安全索引。采用索引构建秘钥加密文档指纹,获取加密存储指纹,结合所有加密存储指纹形成文档集对应的文档指纹集。采用数据加密秘钥加密每一待存储文档,形成文档集对应的加密文档集。
具体地,获取文档集对应的文档安全索引的实现过程为:
通过对文档集中的每一指纹及其相关的发布向量进行加密而转换为文档安全索引。每个指纹词(数字)本身也进行加密,以便只有授权的检索用户才能生成有效查询。否则,远程服务器可以学习给定加密文档的指纹。同样地对发布向量也进行加密,以隐藏给定指纹词目中的加密文档数量,以免用来进行频率攻击。
发布向量的加密是困难的。这是因为该发布向量必须要在加密的同时保留其对检索到的加密文档进行排序的能力。于本实施例中采用Paillier密码系统自带的特性来缓解这种挑战。Paillier密码系统是一种安全的语义和加性同态非对称加密方案。语义安全特征可确保多次加密相同的数字(举例中为0和1)将生成不同的密码。
令Enckpub和Deckpriv采用公钥kpub和私钥kpriv以分别具有Paillier密码系统中加密和解密功能。因此,如果m1=m2,则Enckpub(m1)≠Enckpub(m2),但Deckpriv(m1)=Deckpriv(m2)。加性同态性表示Enckpub(m1+m2)=Enckpub(m1)*Enckpub(m2)。使用Paillier密码系统来加密发布向量的每一位。这样,如果Pj[ID(di)]=1,则存储Enckpub(1);否则存储Enckpub(0)。由于Pailler密码系统在语义上是一种关于语义的有保证的加密方法,因此每个加密的0和加密的1值都是不同的。
采用索引构建秘钥加密文档指纹,获取加密存储指纹的过程包括:保护指纹的解决方案是将前述提供的等式(1)和(3)的参数b和M视为索引构建秘钥K1=(b,M)。这样,只有拥有索引构建秘钥K1的授权用户才能生成有效指纹。
采用数据加密秘钥加密每一待存储文档,形成文档集对应的加密文档集的过程包括:
Bob用数据加密秘钥Kcoll加密了他的文档集D。然后,他将加密的集合发送到远程服务器S。以便保护其加密文档的隐私。
优选地,即在形成文档集对应的加密文档集之后,还具体包括:存储用户端生成与文档集的数据无关的随机伪造数据和随机伪造哈希值,将随机伪造数据和随机伪造哈希值分别添加到加密文档集中和文档安全索引中。
具体地,在形成文档集对应的加密文档集之后,为了给加密文档的存储提供更多保护,存储用户端应将伪造的随机伪造哈希值插入文档安全索引中,以隐蔽集合中指纹词目的数量;采用与文档集的数据无关的随机伪造数据来随机映射加密文档文件,以隐藏加密文档集的真实大小。在构建安全加密文档索引之后执行此随机映射,以避免在此类索引内填充随机伪造数据。
加密文档集可能由于其实际大小而将重要信息泄露给远程服务器。为解决此问题,存储用户端使用附加的随机数据填充来处理存储的加密文档集,以使它们的实际大小不容易被检测。同样,为了防止统计攻击尝试,还添加随机伪造哈希值以隐藏存储在文档安全索引中的实际值的数量。
S16,存储用户端向远程服务器发送加密文档存储请求,加密文档存储请求包括存储用户端ID、文档安全索引、加密文档指纹集以及加密文档集,以使远程服务器基于存储用户端ID关联存储文档安全索引、加密文档指纹集以及加密文档集。
具体地,远程服务器可基于存储用户端ID关联存储文档安全索引、加密文档指纹集以及加密文档集到其的存储器上。但远程服务器无法具体获知文档集的任何具体内容。
S21.远程服务器获取检索用户端发送的相似性检索请求,相似性检索请求包括加密源文档指纹集和存储用户端ID,加密源文档指纹集是采用存储用户端ID共享的索引构建秘钥生成的。
其中,源加密文档是检索用户端自己持有的加密文档,用于从远程服务器存储的加密文档中检索出与该源加密文档相似的加密文档。相应地,加密源文档指纹集是基于源加密文档获取对应的指纹词的集合。
具体地,检索用户端可提前从存储用户端获取其共享的索引构建秘钥生成源加密文档对应的加密源文档指纹集,便于远程服务器基于相同索引构建秘钥生成的加密文档进行指纹相似性对比。
因远程服务器S不知道存储用户端ID共享的索引构建秘钥,远程服务器无法生成有效的检索用户端提供的源加密文档对应的加密源文档指纹集,也即可保证存储用户端的源加密文档的隐私性。
Alice想将其加密文档Q与集合D进行比较。她首先使用存储用户端ID共享的索引构建秘钥K1生成安全指纹词Qf={qf1,qf2,...,qfc},如上述等式(1)和(3)所示。完成此操作后,她将Qf发送给远程服务器S。
S22.远程服务器基于存储用户端ID,获取对应的文档安全索引以及文档安全索引对应的加密文档指纹集,加密文档指纹集包括至少一个加密存储指纹。
S23.远程服务器基于加密源文档指纹集,采用Paillier密码系统获取每一加密存储指纹的相似性分数,以从所有加密存储指纹中筛选出目标对比文档集。
具体地,在给定指纹集Qf的情况下,远程服务器S需要搜索其文档安全索引以找到匹配的指纹项。对于每个匹配,S检索对应的发布向量,即检索Pj=[e1j,...,emj],使得对于所有j=1...c,(fj,Pj)∈I且fj=qfj,其中,eij是与指纹词j相对应的加密文档i的加密位。S需要计算每个加密文档di的分数,并可使用Paillier密码系统提供的特性来获得每个加密文档的分数,如下表2所示:
分数α(di)=ei1+ei2+...+eih,其中h是匹配的指纹词的数目。
表2
S24,远程服务器向检索用户端返回目标对比文档集,以使检索用户端通过存储用户端ID共享的Paillier密码系统对应的函数解密私钥解密目标对比文档集,并最终获取明文检索文档。
具体地,远程服务器S将分数α(d1),α(d2),...,α(dm)发送给Alice对应的检索用户端。
结合表1中所示的倒排索引,假设查询加密文档的项为:400、500、600、710和800。从而这14个加密文档的得分按表2计算,可看出第1个加密文档和源加密文档最相似,得分为3,其次是第14个加密文档,得分为2等。
优选地,目标对比文档集包括至少一组目标对比加密文档和其对应的相似性分数。在步骤S24中,即以使检索用户端通过存储用户端ID共享的Paillier密码系统对应的函数解密私钥解密目标对比文档集,并最终获取明文检索文档,具体包括如下步骤:
S241,以使检索用户端通过存储用户端ID共享的Paillier密码系统对应的函数解密私钥对目标对比文档集进行解密,以获取目标对比文档集中每一组目标对比加密文档和其对应的相似性分数。基于每一相似性分数,从所有目标对比加密文档中获取至少一个目标检索加密文档。采用存储用户端ID共享的数据加密秘钥解密至少一个目标检索加密文档,以最终获取明文检索文档。
具体地,Alice通过使用存储用户端ID共享的Paillier密码系统对应的函数解密私钥Kpriv来解密哪个加密文档与其自己的加密文档Q相似,对所有i=1...m的所接收的分数值α(di)进行解密。当检索最相似的加密文档后,她使用存储用户端ID共享的数据加密秘钥Kcoll对该最相似的加密文档解密以继续执行人工调查。
本申请实施例提供的加密文档的存储和相似检索方法,通过存储用户端将文档集进行加密后生成对应的文档安全索引、加密文档指纹集以及加密文档集存储到远程服务器上,可保持加密文档集的隐私保护性的同时,给检索用户端提供可通过智能设备的实现轻量级、安全、高效地实现加密文档相似性检索的环境,以快速获取明文检索文档,适应各种需要进行加密文档的相似性检索,以提高隐私保护性的应用场景。
在一具体实施例中,在步骤S16之后,如图3所示,即在存储用户端向远程服务器发送加密文档存储请求之后,还具体包括如下步骤:
S161,获取任一携带检索用户端ID的检索用户端发送的信息共享请求。
S162,若检索用户端ID为新的检索用户端,则基于Paillier密码系统中的函数加密公钥,生成一函数加密公钥对应的更新的函数解密私钥。
S163,基于信息共享请求,向检索用户端共享存储用户端ID对应的函数解密私钥、索引构建秘钥以及数据加密秘钥。
具体地,每个搜索查询加密文档具有一个不同的函数解密私钥。因此,即使两个搜索查询来自相同的查询加密文档,它们也具有不同的函数解密私钥,这确保了不同的搜索查询之间无法链接。
在一具体实施例中,如图4所示,相似性检索请求还包括检索数量。在步骤S23中,即从所有加密存储指纹中筛选出目标对比文档集,具体包括如下步骤:
S231,将所有加密存储指纹的相似性分数按从大到小的顺序进行分数排序,获取排序结果。
其中,检索数量是与加密源文档指纹集最相似的关于加密存储指纹的个数,是检索用户端根据个人需求指定的。
S232,基于排序结果,按检索数量提取分数最多的每一加密存储指纹形成目标对比文档集。
具体地,因检索工程庞大,为了提高检索效率,检索用户端可提出指定个数的检索数量,由远程服务器来提供对应数量的加密的目标对比文档集,比如与加密源文档指纹集最相似的前h个加密存储指纹等。
综上,为了便于说明本实施提供的场景所要解决的问题,现举例一实际场景,以说明本实施例的实施完整过程如下:
数据所有者Bob拥有一数量为m的文档集D={d1,d2,...,dm}。Bob将其收集的存储和计算外包给远程服务器S,以有效的价格享受高质量的服务。但是,远程服务器S是不受信任的,无法查看文档集的内容。因此Bob在外包存储服务之前就必须加密其的文档集。为了有效地进行检索,Bob还从文档集中构建了一个文档安全索引,并将其一起上传到不受信任的服务器S。用户Alice有一个加密文档Q。她想检测自己的加密文档与存储在S中的Bob的所有m个加密文档之间的相似性,而不会向S透露Q,且S也不会向Alice透露D。为此,Alice首先提取其源加密文档的指纹,对其进行加密后形成加密源文档指纹集,然后将加密源文档指纹集发送到服务器S。
一旦从Alice处接收到加密文档Q的加密源文档指纹集,远程服务器S便将该加密源文档指纹集与其指定Bob提供的文档安全索引进行安全匹配。然后用代表所有存储的m个加密文档的匹配分数的分数响应给Alice。最后,Alice下载了指定数量的前h个加密文档,整体举例应用场景如图5所示。
本申请实施例提供的加密文档的存储和相似检索方法,通过存储用户端将文档集进行加密后生成对应的文档安全索引、加密文档指纹集以及加密文档集存储到远程服务器上,可保持加密文档集的隐私保护性的同时,给检索用户端提供可通过智能设备的实现轻量级、安全、高效地实现加密文档相似性检索的环境,以快速获取明文检索文档,适应各种需要进行加密文档相似性检索,以提高隐私保护性的应用场景。
进一步地,本申请基于轻量级加密文档检测,从加密文档隐私保护的角度出发允许对加密文档进行比较,而不会将加密文档内容泄露给不受信任的远程服务器。通过确定每个文档的指纹集,并使用整个指纹集开发对应的文档安全索引。在将该文档安全索引上载到不受信任的远程服务器之前,由Paillier密码系统对其进行保护。
本申请提供的方案利用哈希方法为每个待存储文档生成指纹。其中指纹是有代表性的但被压缩的一组数字。从整个文档集的指纹集中,存储用户端建立了倒排索引,以提供快速,轻量级的检索。这种倒排索引构成的结构由一组指纹词及其对应的倒排列表组成。每个列表都包含一组待存储文档对应的文档ID,其中包含相同的指纹词。
为了实现倒排索引的优点并保护数据,存储用户端建立了一个文档安全索引,然后对该索引采用了安全的DSD(document similarity detection,文档相似性检测)方法。在此阶段,使用秘钥以允许在不泄漏基础数据内容的情况下检测相似性的方式来加密指纹。任何人在没法得知密钥的情况下,都无法为待匹配的文档生成有效的指纹;存储用户端还利用Paillier密码系统提供的句法相似性优势:两个文档具有相同的含义,但具有不同关键词也不会被认为是相同的。
综上,本申请提供了一种高效,安全的解决方案来计算所提供文档和整个存储集合的通用指纹,能够以隐私方式检测近似副本,副本或者以前的提交物,并对检索到的类似加密文档进行排序。解决了隐私保护,相似加密文档检测,对加密数据进行检索和对它们进行排序的问题。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
参考图6,在一实施例中,提供一种加密文档的存储装置,该加密文档的存储装置与上述实施例中加密文档的存储方法一一对应。
如图6所示,该加密文档的存储装置10包括获取存储请求模块11、获取文档指纹模块12、形成倒排索引模块13、获取加密公钥模块14、形成加密文档集模块15和发送存储请求模块16。各功能模块详细说明如下:
获取存储请求模块11,用于获取携带文档集的远程加密存储请求,文档集包括用于加密存储的至少一个待存储文档。
获取文档指纹模块12,用于获取文档集对应的文档指纹集,基于文档指纹集中的至少一个文档指纹,获取对应的倒排列表。
形成倒排索引模块13,用于结合每一文档指纹和其对应的倒排列表,形成文档集对应的倒排索引。
获取加密公钥模块14,用于基于预设秘钥生成机制,生成索引构建秘钥、数据加密秘钥以及Paillier密码系统中的函数加密公钥。
形成加密文档集模块15,用于采用函数加密公钥加密倒排索引,获取文档集对应的文档安全索引。采用索引构建秘钥加密文档指纹,获取加密存储指纹,结合所有加密存储指纹形成文档集对应的加密文档指纹集。采用数据加密秘钥加密每一待存储文档,形成文档集对应的加密文档集。
发送存储请求模块16,用于向远程服务器发送加密文档存储请求,加密文档存储请求包括存储用户端ID、文档安全索引、加密文档指纹集以及加密文档集,以使远程服务器基于存储用户端ID关联存储文档安全索引、加密文档指纹集以及加密文档集。
优选地,该加密文档的存储装置还包括:
生成伪造数据模块,用于生成与文档集的数据无关的随机伪造数据和随机伪造哈希值,将随机伪造数据和随机伪造哈希值分别添加到加密文档集中和文档安全索引中。
优选地,该加密文档的存储装置还包括:
获取共享请求模块,用于获取任一携带检索用户端ID的检索用户端发送的信息共享请求。
生成解密私钥模块,用于若检索用户端ID为新的检索用户端,则基于Paillier密码系统中的函数加密公钥,生成一函数加密公钥对应的更新的函数解密私钥。
共享加密秘钥模块,用于基于信息共享请求,向检索用户端共享存储用户端ID对应的函数解密私钥、索引构建秘钥以及数据加密秘钥。
在一实施例中,提供一种加密文档的相似检索装置20,该加密文档的相似检索装置与上述实施例中加密文档的相似检索方法一一对应。如图6所示,该加密文档的相似检索装置包括获取检索请求模块21、获取安全索引模块22、获取相似性分数模块23和返回对比文档集模块24。各功能模块详细说明如下:
获取检索请求模块21,用于获取检索用户端发送的相似性检索请求,相似性检索请求包括加密源文档指纹集和存储用户端ID,加密源文档指纹集是采用存储用户端ID共享的索引构建秘钥生成的。
获取安全索引模块22,用于基于存储用户端ID,获取对应的文档安全索引以及文档安全索引对应的加密文档指纹集,加密文档指纹集包括至少一个加密存储指纹。
获取相似性分数模块23,用于基于加密源文档指纹集,采用Paillier密码系统获取每一加密存储指纹的相似性分数,以从所有加密存储指纹中筛选出目标对比文档集。
返回对比文档集模块24,用于向检索用户端返回目标对比文档集,以使检索用户端通过存储用户端ID共享的Paillier密码系统对应的函数解密私钥解密目标对比文档集,并最终获取明文检索文档。
优选地,获取相似性分数模块23包括:
获取排序结果子模块,用于将所有加密存储指纹的相似性分数按从大到小的顺序进行分数排序,获取排序结果。
形成对比文档集子模块,用于基于排序结果,按检索数量提取分数最多的每一加密存储指纹形成目标对比文档集。
优选地,返回对比文档集模块24包括:
获取明文检索文档子模块,用于以使检索用户端通过存储用户端ID共享的Paillier密码系统对应的函数解密私钥对目标对比文档集进行解密,以获取目标对比文档集中每一组目标对比加密文档和其对应的相似性分数。基于每一相似性分数,从所有目标对比加密文档中获取至少一个目标检索加密文档。采用存储用户端ID共享的数据加密秘钥解密至少一个目标检索加密文档,以最终获取明文检索文档。
关于加密文档的相似检索装置的具体限定可以参见上文中对于加密文档的相似检索方法的限定,在此不再赘述。上述加密文档的相似检索装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于设备中的处理器中,也可以以软件形式存储于设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一实施例中,提供了一种设备,该设备可以是服务器,其内部结构图可以如图7所示。该设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该设备的处理器用于提供计算和控制能力。该设备的存储器包括非易失性介质、内存储器。该非易失性介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性介质中的操作系统和计算机程序的运行提供环境。该设备的数据库用于加密文档的相似检索方法相关的数据。该设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种加密文档的相似检索方法。
在一实施例中,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例加密文档的存储和相似检索方法的步骤,例如图2所示的步骤S11至步骤S24。或者,处理器执行计算机程序时实现上述实施例中加密文档的存储和相似检索装置的各模块/单元的功能,例如图6所示模块10至模块20的功能。为避免重复,此处不再赘述。
在一实施例中,提供一种计算机可读介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例加密文档的存储和相似检索方法,或者,该计算机程序被处理器执行时实现上述装置实施例中加密文档的存储和相似检索装置中各模块/单元的功能。为避免重复,此处不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

Claims (9)

1.一种加密文档的存储方法,其特征在于,包括以下步骤:
获取携带文档集的远程加密存储请求,所述文档集包括用于加密存储的至少一个待存储文档;
获取所述文档集对应的文档指纹集,基于所述文档指纹集中的至少一个文档指纹,获取对应的倒排列表;
根据每个所述文档指纹和其对应的倒排列表,形成所述文档集对应的倒排索引;
基于预设秘钥生成机制,生成索引构建秘钥、数据加密秘钥以及Paillier密码系统中的函数加密公钥;
采用所述函数加密公钥加密所述倒排索引,获取所述文档集对应的文档安全索引;
采用所述索引构建秘钥加密所述文档指纹,获取加密存储指纹,结合所有所述加密存储指纹形成所述文档集对应的加密文档指纹集;
采用所述数据加密秘钥加密每个所述待存储文档,形成所述文档集对应的加密文档集;
向远程服务器发送加密文档存储请求,所述加密文档存储请求至少包括存储用户端ID、所述文档安全索引、所述加密文档指纹集以及所述加密文档集,以使所述远程服务器基于所述存储用户端ID关联存储所述文档安全索引、所述加密文档指纹集以及所述加密文档集。
2.根据权利要求1所述的加密文档的存储方法,其特征在于,所述采用所述索引构建秘钥加密所述文档指纹,获取加密存储指纹,结合所有所述加密存储指纹形成所述文档集对应的加密文档指纹集还包括:
生成与所述文档集的数据无关的随机伪造数据和随机伪造哈希值,将所述随机伪造数据和随机伪造哈希值分别添加到所述加密文档集中和文档安全索引中。
3.根据权利要求1所述的加密文档的存储方法,其特征在于,所述向远程服务器发送加密文档存储请求之后还包括:
获取任一携带检索用户端ID的检索用户端发送的信息共享请求;
若所述检索用户端ID为新的检索用户端,则基于所述Paillier密码系统中的所述函数加密公钥,生成一所述函数加密公钥对应的更新的函数解密私钥;
基于所述信息共享请求,向所述检索用户端共享所述存储用户端ID对应的所述函数解密私钥、所述索引构建秘钥以及所述数据加密秘钥。
4.一种加密文档的相似检索方法,其特征在于,包括以下步骤:
存储用户端获取携带文档集的远程加密存储请求,所述文档集包括用于加密存储的至少一个待存储文档;
存储用户端获取所述文档集对应的文档指纹集,基于所述文档指纹集中的至少一个文档指纹,获取对应的倒排列表;
存储用户端根据每个所述文档指纹和其对应的倒排列表,形成所述文档集对应的倒排索引;
存储用户端基于预设秘钥生成机制,生成索引构建秘钥、数据加密秘钥以及Paillier密码系统中的函数加密公钥;
存储用户端采用所述函数加密公钥加密所述倒排索引,获取所述文档集对应的文档安全索引;
存储用户端采用所述索引构建秘钥加密所述文档指纹,获取加密存储指纹,结合所有所述加密存储指纹形成所述文档集对应的加密文档指纹集;
存储用户端采用所述数据加密秘钥加密每个所述待存储文档,形成所述文档集对应的加密文档集;
存储用户端向远程服务器发送加密文档存储请求,所述加密文档存储请求至少包括存储用户端ID、所述文档安全索引、所述加密文档指纹集以及所述加密文档集,以使所述远程服务器基于所述存储用户端ID关联存储所述文档安全索引、所述加密文档指纹集以及所述加密文档集;
存储用户端获取任一携带检索用户端ID的检索用户端发送的信息共享请求,若所述检索用户端ID为新的检索用户端,则基于所述Paillier密码系统中的所述函数加密公钥,生成一所述函数加密公钥对应的更新的函数解密私钥;
存储用户端基于所述信息共享请求,向所述检索用户端共享所述存储用户端ID对应的所述函数解密私钥、所述索引构建秘钥以及所述数据加密秘钥;
远程服务端获取所述检索用户端发送的相似性检索请求,所述相似性检索请求包括加密源文档指纹集和存储用户端ID,所述加密源文档指纹集通过所述存储用户端ID共享的索引构建秘钥生成;
远程服务端根据所述存储用户端ID,获取对应的文档安全索引以及所述文档安全索引对应的加密文档指纹集,所述加密文档指纹集包括至少一个加密存储指纹;
远程服务端基于所述加密源文档指纹集,通过Paillier密码系统获取每一加密存储指纹的相似性分数,以从所有加密存储指纹中筛选出目标对比文档集;
远程服务端向检索用户端返回目标对比文档集,以使检索用户端通过存储用户端ID共享的Paillier密码系统对应的函数解密私钥解密目标对比文档集,并最终获取明文检索文档。
5.根据权利要求4所述的加密文档的相似检索方法,其特征在于,所述从所有所述加密存储指纹中筛选出目标对比文档集还包括:
远程服务端将所有所述加密存储指纹的相似性分数按从大到小的顺序进行分数排序,获取排序结果;
远程服务端基于所述排序结果,按所述检索数量提取分数最多的每一所述加密存储指纹形成所述目标对比文档集。
6.根据权利要求4所述的加密文档的相似检索方法,其特征在于,所述以使所述检索用户端通过所述存储用户端ID共享的所述Paillier密码系统对应的函数解密私钥解密所述目标对比文档集,并最终获取明文检索文档包括:
远程服务端以使所述检索用户端通过所述存储用户端ID共享的所述Paillier密码系统对应的函数解密私钥对所述目标对比文档集进行解密,获取目标对比文档集中每一组所述目标对比加密文档和其对应的相似性分数;
远程服务端基于每一所述相似性分数,从所有所述目标对比加密文档中获取至少一个目标检索加密文档;
远程服务端采用所述存储用户端ID共享的数据加密秘钥解密至少一个所述目标检索加密文档,以最终获取所述明文检索文档。
7.一种加密文档的存储装置,其特征在于,包括存储用户端,所述存储用户端包括:
获取存储请求模块,用于获取携带文档集的远程加密存储请求,所述文档集包括用于加密存储的至少一个待存储文档;
获取文档指纹模块,用于获取所述文档集对应的文档指纹集,基于所述文档指纹集中的至少一个文档指纹,获取对应的倒排列表;
形成倒排索引模块,用于结合每一所述文档指纹和其对应的倒排列表,形成所述文档集对应的倒排索引;
获取加密公钥模块,用于基于预设秘钥生成机制,生成索引构建秘钥、数据加密秘钥以及Paillier密码系统中的函数加密公钥;
形成加密文档集模块,用于采用所述函数加密公钥加密所述倒排索引,获取所述文档集对应的文档安全索引;采用所述索引构建秘钥加密所述文档指纹,获取加密存储指纹,结合所有所述加密存储指纹形成所述文档集对应的加密文档指纹集;采用所述数据加密秘钥加密每一所述待存储文档,形成所述文档集对应的加密文档集;
发送存储请求模块,用于向远程服务器发送加密文档存储请求,所述加密文档存储请求包括存储用户端ID、所述文档安全索引、所述加密文档指纹集以及所述加密文档集,以使所述远程服务器基于所述存储用户端ID关联存储所述文档安全索引、所述加密文档指纹集以及所述加密文档集。
8.一种加密文档的相似检索装置,其特征在于,包括存储用户端和远程服务器,
所述存储用户端包括:
获取存储请求模块,用于获取携带文档集的远程加密存储请求,所述文档集包括用于加密存储的至少一个待存储文档;
获取文档指纹模块,用于获取所述文档集对应的文档指纹集,基于所述文档指纹集中的至少一个文档指纹,获取对应的倒排列表;
形成倒排索引模块,用于结合每一所述文档指纹和其对应的倒排列表,形成所述文档集对应的倒排索引;
获取加密公钥模块,用于基于预设秘钥生成机制,生成索引构建秘钥、数据加密秘钥以及Paillier密码系统中的函数加密公钥;
形成加密文档集模块,用于采用所述函数加密公钥加密所述倒排索引,获取所述文档集对应的文档安全索引;采用所述索引构建秘钥加密所述文档指纹,获取加密存储指纹,结合所有所述加密存储指纹形成所述文档集对应的加密文档指纹集;采用所述数据加密秘钥加密每一所述待存储文档,形成所述文档集对应的加密文档集;
发送存储请求模块,用于向远程服务器发送加密文档存储请求,所述加密文档存储请求包括存储用户端ID、所述文档安全索引、所述加密文档指纹集以及所述加密文档集,以使所述远程服务器基于所述存储用户端ID关联存储所述文档安全索引、所述加密文档指纹集以及所述加密文档集;
获取共享请求模块,用于获取任一携带检索用户端ID的检索用户端发送的信息共享请求;
生成解密私钥模块,用于若检索用户端ID为新的检索用户端,则基于Paillier密码系统中的函数加密公钥,生成一函数加密公钥对应的更新的函数解密私钥;
共享加密秘钥模块,用于基于信息共享请求,向检索用户端共享存储用户端ID对应的函数解密私钥、索引构建秘钥以及数据加密秘钥;
所述远程服务器包括:
获取检索请求模块,用于获取所述检索用户端发送的相似性检索请求,所述相似性检索请求包括加密源文档指纹集和存储用户端ID,所述加密源文档指纹集是采用所述存储用户端ID共享的索引构建秘钥生成的;
获取安全索引模块,用于基于所述存储用户端ID,获取对应的文档安全索引以及所述文档安全索引对应的加密文档指纹集,所述加密文档指纹集包括至少一个加密存储指纹;
获取相似性分数模块,用于基于所述加密源文档指纹集,采用Paillier密码系统获取每一所述加密存储指纹的相似性分数,以从所有所述加密存储指纹中筛选出目标对比文档集;
返回对比文档集模块,用于向所述检索用户端返回所述目标对比文档集,以使所述检索用户端通过所述存储用户端ID共享的所述Paillier密码系统对应的函数解密私钥解密所述目标对比文档集,并最终获取明文检索文档。
9.一种计算机可读介质,所述计算机可读介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至3任一项所述加密文档的存储方法,或者,所述计算机程序被处理器执行时实现如权利要求4至6任一项所述加密文档的相似检索方法。
CN202110954608.8A 2021-08-19 2021-08-19 加密文档的存储和相似检索方法、装置、设备及介质 Active CN113779597B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202110954608.8A CN113779597B (zh) 2021-08-19 2021-08-19 加密文档的存储和相似检索方法、装置、设备及介质
PCT/CN2021/129874 WO2023019762A1 (zh) 2021-08-19 2021-11-10 加密文档的存储和相似检索方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110954608.8A CN113779597B (zh) 2021-08-19 2021-08-19 加密文档的存储和相似检索方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN113779597A CN113779597A (zh) 2021-12-10
CN113779597B true CN113779597B (zh) 2023-08-18

Family

ID=78838642

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110954608.8A Active CN113779597B (zh) 2021-08-19 2021-08-19 加密文档的存储和相似检索方法、装置、设备及介质

Country Status (2)

Country Link
CN (1) CN113779597B (zh)
WO (1) WO2023019762A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116756778B (zh) * 2023-08-15 2023-11-14 四川玉米星球科技有限公司 私密文件存储及访问方法、装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103577418A (zh) * 2012-07-24 2014-02-12 北京拓尔思信息技术股份有限公司 海量文档分布式检索排重系统和方法
CN103595730A (zh) * 2013-11-28 2014-02-19 中国科学院信息工程研究所 一种密文云存储方法和系统
CN104765848A (zh) * 2015-04-17 2015-07-08 中国人民解放军空军航空大学 混合云存储中支持结果高效排序的对称可搜索加密方法
CN105610910A (zh) * 2015-12-18 2016-05-25 中南民族大学 面向云存储并基于全同态密码的密文全文检索方法及系统
CN106407447A (zh) * 2016-09-30 2017-02-15 福州大学 一种加密云数据下基于Simhash的模糊排序搜索方法
CN107885705A (zh) * 2017-10-09 2018-04-06 中国科学院信息工程研究所 一种高效可扩展的安全的文档相似性计算方法和装置
CN108632248A (zh) * 2018-03-22 2018-10-09 平安科技(深圳)有限公司 数据加密方法、数据查询方法、装置、设备及存储介质
CN109063509A (zh) * 2018-08-07 2018-12-21 上海海事大学 一种基于关键词语义排序的可搜索加密方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170371963A1 (en) * 2016-06-27 2017-12-28 Facebook, Inc. Systems and methods for identifying matching content
CN107491497B (zh) * 2017-07-25 2020-08-11 福州大学 支持任意语言查询的多用户多关键词排序可搜索加密系统
WO2019236635A1 (en) * 2018-06-04 2019-12-12 Scintillating, Inc. Blockchain-based methods and systems
CN109739945B (zh) * 2018-12-13 2022-11-08 南京邮电大学 一种基于混合索引的多关键词密文排序检索方法
CN111966778B (zh) * 2020-07-08 2022-07-29 南京邮电大学 一种基于关键词分组倒排索引的多关键词密文排序检索方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103577418A (zh) * 2012-07-24 2014-02-12 北京拓尔思信息技术股份有限公司 海量文档分布式检索排重系统和方法
CN103595730A (zh) * 2013-11-28 2014-02-19 中国科学院信息工程研究所 一种密文云存储方法和系统
CN104765848A (zh) * 2015-04-17 2015-07-08 中国人民解放军空军航空大学 混合云存储中支持结果高效排序的对称可搜索加密方法
CN105610910A (zh) * 2015-12-18 2016-05-25 中南民族大学 面向云存储并基于全同态密码的密文全文检索方法及系统
CN106407447A (zh) * 2016-09-30 2017-02-15 福州大学 一种加密云数据下基于Simhash的模糊排序搜索方法
CN107885705A (zh) * 2017-10-09 2018-04-06 中国科学院信息工程研究所 一种高效可扩展的安全的文档相似性计算方法和装置
CN108632248A (zh) * 2018-03-22 2018-10-09 平安科技(深圳)有限公司 数据加密方法、数据查询方法、装置、设备及存储介质
CN109063509A (zh) * 2018-08-07 2018-12-21 上海海事大学 一种基于关键词语义排序的可搜索加密方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"面向加密云数据的多关键字语义搜索方法";李彦等;计算机科学;第47卷(第(09)期);第318-323页 *

Also Published As

Publication number Publication date
WO2023019762A1 (zh) 2023-02-23
CN113779597A (zh) 2021-12-10

Similar Documents

Publication Publication Date Title
CN107547525B (zh) 一种大数据查询处理的隐私保护方法
Yuan et al. SEISA: Secure and efficient encrypted image search with access control
CN105933281B (zh) 一种量子同态对称可搜索加密的方法及系统
WO2017166054A1 (zh) 一种量子同态对称可搜索加密的方法及系统
US10721058B2 (en) Ultra-secure blockchain enabled analytics
Anju et al. A faster secure content-based image retrieval using clustering for cloud
Abduljabbar et al. Privacy-preserving image retrieval in IoT-cloud
Al Sibahee et al. Efficient encrypted image retrieval in IoT-cloud with multi-user authentication
KR20220092811A (ko) 암호화 데이터를 저장하는 방법 및 장치
Zitar et al. Hashing generation using recurrent neural networks for text documents
Yuan et al. Towards privacy-preserving and practical image-centric social discovery
Kumar et al. Secure and efficient image retrieval through invariant features selection in insecure cloud environments
Ritzdorf et al. On information leakage in deduplicated storage systems
CN109740378B (zh) 一种抗关键词隐私泄露的安全对索引构造及其检索方法
CN113779597B (zh) 加密文档的存储和相似检索方法、装置、设备及介质
CN110535630B (zh) 密钥生成方法、装置及存储介质
CN108920968B (zh) 一种基于连接关键词的文件可搜索加密方法
Li et al. Secure and verifiable multi-owner ranked-keyword search in cloud computing
Kozak et al. Efficiency and security in similarity cloud services
Kumari et al. Privacy preserving similarity based text retrieval through blind storage
Maragathavalli et al. Cloud data security model using modified decoy technique in fog computing for E-healthcare
Aritomo et al. A privacy-preserving similarity search scheme over encrypted word embeddings
Tian et al. BPPIR: Blockchain-assisted privacy-preserving similarity image retrieval over multiple clouds
Handa et al. An efficient cluster-based multi-keyword search on encrypted cloud data
Kamini et al. Encrypted multi-keyword ranked search supporting gram based search technique

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant