CN105610910B - 面向云存储并基于全同态密码的密文全文检索方法及系统 - Google Patents
面向云存储并基于全同态密码的密文全文检索方法及系统 Download PDFInfo
- Publication number
- CN105610910B CN105610910B CN201510964712.XA CN201510964712A CN105610910B CN 105610910 B CN105610910 B CN 105610910B CN 201510964712 A CN201510964712 A CN 201510964712A CN 105610910 B CN105610910 B CN 105610910B
- Authority
- CN
- China
- Prior art keywords
- document
- data
- ciphertext
- value
- key
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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
- G06F21/6227—Protecting 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 where protection concerns the structure of data, e.g. records, types, queries
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种面向云存储并基于全同态密码的密文全文检索方法,包括:数据拥有者将文档ID、加密后的文档密文以及加密后的文档倒排索引表上传到云服务器,倒排索引表上的文档词项用hash运算,TF和IDF值用整数上的全同态技术加密;将公钥证书颁发给数据使用者,数据使用者将待查关键词进行hash运算,上传给云服务提供商;云服务提供商将待查关键词的hash运算值与倒排索引表中文档词项的hash运算值进行比对搜索,云服务提供商进行全同态乘法和加法操作。本发明是在密文状态下计算进行,在计算过程中不会向云服务提供商和其他攻击者泄露与文档相关的任何信息,保护了数据拥有者的数据秘密以及数据使用者的查询数据秘密,同时,实现了数据使用权的可控性。
Description
技术领域
本发明属于云存储及云安全相关软件技术领域,更具体地,涉及一种面向云存储并基于全同态密码的密文全文检索方法及系统。
背景技术
当前,各大IT公司纷纷推出了免费的云盘(也称为网盘)存储服务,如百度云盘、腾讯微云、金山快盘等,因其容量大且可随时通过网络随时存取,吸引了越大越多的用户。然而,安全问题是云计算目前发展面临的最关键问题,云用户对云存储服务提供商的不信任已成为制约云存储推广的重要因素。在云存储模式下,用户的数据存储在云提供商中,这意味着用户的数据(包括敏感数据)完全由云提供商进行管理和存储,数据处于用户不可控域中,用户担心云提供商可能会窃取和篡改自己的敏感数据。用户希望能够将数据交由云提供商存储和管理,同时不会向云提供商泄露任何数据相关信息。
保护数据隐私和机密性最直接的方法是进行数据加密,这样不但使云提供商无法获取存储在云端的用户数据内容信息,也无法未经授权就盗用用户数据以获利,即使是黑客在云端窃取了用户数据,也无法得不到其明文信息。但是,如果用户需要对文档进行全文检索的话,需要将文档都下载下来再进行解密,然后搜索相关目标关键字,这样会导致资源和时间上的浪费,且搜索效率极低。此外,如今很多用户选择将文档交由第三方进行保存,但这存在用户的数据隐私性和数据使用权的可控性差等问题。
发明内容
针对现有的应用需求,本发明提供了一种面向云存储并基于全同态密码的密文全文检索方法及系统,其目的在于,通过将全同态加密技术运用到云存储服务中,云服务端能对密文进行相关计算操作,实现在密文状态下的文档全文检索服务,从而解决现有方法中存在的用户隐私性差、数据使用权的可控性差以及检索效率低下的技术问题。
为实现上述目的,按照本发明的一个方面,提供了一种面向云存储并基于全同态密码技术的密文全文检索方法,包括步骤:
(1)数据拥有者随机生成RSA公钥R_Pub_Key和RSA私钥R_Pri_Key,并根据生成的RSA公钥R_Pub_Key生成RSA公钥证书;随机产生安全大素数F_Key和q,并生成一个随机数r;
(2)数据拥有者利用分词器对其拥有的文档数据进行分词,对分词结果进行词项频率TF值、逆文档频率IDF值的计算,并将TF值、IDF值进行整数化,以得到明文状态下的倒排索引表;
(3)数据拥有者对其文档数据及步骤(2)得到的明文状态下的倒排索引表进行加密,并将加密结果上传给云服务提供商;
(4)数据使用者向数据拥有者发出查询请求,数据拥有者对提出查询请求的数据使用者进行身份验证,如果验证通过则进入步骤(5),否则过程结束;
(5)数据拥有者将RSA公钥证书以及步骤(3)中所采用的哈希签名运算的计算函数发送给数据使用者;
(6)数据使用者接收并保管该RSA公钥证书,对其待查关键词组中的每一个待查关键词进行哈希运算,以生成词项哈希值,并将此处生成的所有词项哈希值上传给云服务提供商;
(7)云服务提供商在密文状态下的倒排索引表上搜索来自数据使用者的词项哈希值,以得到对应的TF_FHE值、IDF_FHE值以及文档ID值;
(8)云服务提供商根据步骤(7)中搜索到的每个文档ID值计算其文档评分值,并将该文档评分值及其对应的文档ID值返回给数据拥有者;
(9)数据拥有者利用步骤(1)所生成的对称密钥F_Key对接收到的文档评分值进行解密,以得到解密后的查询结果文档的评分,并对其进行降序排列,以得到p个较高评分,并将前p个较高评分所对应的文档ID值返回到云服务提供商;
(10)云服务提供商根据接收到的文档ID值,在用户、文档ID以及对应文档密文之间的对应关系表中查找对应的密文C_RSA,并将该密文C_RSA返回给数据使用者;
(11)数据使用者使用RSA公钥R_Pub_Key对接收到的密文C_RSA进行解密,以获得对应的明文文档数据,过程结束。
优选地,步骤(3)包括以下子步骤:
(3-1)数据拥有者对其文档数据使用步骤(1)生成的私钥R_Pri_Key进行RSA加密,以得到文档密文C_RSA,并建立用户、文档ID以及对应文档密文之间的对应关系表;
(3-2)对步骤(2)的倒排索引表中的词项进行哈希签名运算,以得到64位签名指纹值Term_Hash;
(3-3)对倒排索引表中的TF、IDF值利用步骤(1)生成的对称密钥F_Key和q、r进行整数上的全同态加密:C=M+F_Key*q+F_Key*r,其中M为输入明文,C为输出密文,以得到全同态加密的词项频率TF_FHE以及全同态加密的逆文档频率IDF_FHE;
(3-4)利用签名指纹值Term_Hash、全同态加密的词项频率TF_FHE、全同态加密的逆文档频率IDF_FHE、以及倒排索引表中的文档ID值建立密文状态下的倒排索引表;
(3-5)将用户、文档ID以及对应文档密文之间的对应关系表和密文状态下的倒排索引表上传给云服务提供商,由云服务提供商在云服务端进行分布式存储。
优选地,步骤(8)包括以下子步骤:
(8-1)对每个文档ID值对应的TF_FHE值和IDF_FHE值在密文状态下进行全同态乘法和加法运算,计算式如下:文档评分值Score(IDi)=∑TF_FHEij*IDF_FHEj,其中IDi为密文状态下的倒排索引表中搜索到的文档ID值,TF_FHEij为密文状态下的倒排索引表表3中搜索到的IDi下Termj的全同态加密的词项频率,IDF_FHEj为密文状态下的倒排索引表中搜索到的Termj的全同态的逆文档频率;
(8-2)将所得的文档评分值及其对应的文档ID值构成二元组数据结构的形式,并将其发送到数据拥有者。
按照本发明的另一方面,提供了一种面向云存储并基于全同态密码技术的密文全文检索系统,包括:
第一模块,其设置于数据拥有者中,用于随机生成RSA公钥R_Pub_Key和RSA私钥R_Pri_Key,并根据生成的RSA公钥R_Pub_Key生成RSA公钥证书,随机产生安全大素数F_Key和q,并生成一个随机数r;
第二模块,其设置于数据拥有者中,用于利用分词器对其拥有的文档数据进行分词,对分词结果进行词项频率、逆文档频率的计算,以得到文档数据中词项的TF值、IDF值,并将TF值、IDF值进行整数化,以得到明文状态下的倒排索引表;
第三模块,其设置于数据拥有者中,用于对其文档数据及第二模块得到的明文状态下的倒排索引表进行加密,并将加密结果上传给云服务提供商;
第四模块,其设置于数据使用者中,用于向数据拥有者发出查询请求,数据拥有者对提出查询请求的数据使用者进行身份验证,如果验证通过则进入第五模块,否则过程结束;
第五模块,其设置于数据拥有者中,用于将RSA公钥证书以及步骤(3)中所采用的哈希签名运算的计算函数发送给数据使用者;
第六模块,其设置于数据使用者中,用于接收并保管该RSA公钥证书,对其待查关键词组中的每一个待查关键词进行哈希运算,以生成词项哈希值,并将此处生成的所有词项哈希值上传给云服务提供商;
第七模块,其设置于云服务提供商中,用于在密文状态下的倒排索引表上搜索来自数据使用者的词项哈希值,以得到对应的TF_FHE值、IDF_FHE值以及文档ID值;
第八模块,其设置于云服务提供商中,用于根据第七模块中搜索到的每个文档ID值计算其文档评分值,并将该文档评分值及其对应的文档ID值返回给数据拥有者;
第九模块,其设置于数据拥有者中,用于利用第一模块所生成的对称密钥F_Key对接收到的文档评分值进行解密,以得到解密后的查询结果文档的评分,并对其进行降序排列,以得到p个较高评分,并将前p个较高评分所对应的文档ID值返回到云服务提供商;
第十模块,其设置于云服务提供商中,用于根据接收到的文档ID值,在用户、文档ID以及对应文档密文之间的对应关系表中查找对应的密文C_RSA,并将该密文C_RSA返回给数据使用者;
第十一模块,其设置于数据使用者中,用于使用RSA公钥R_Pub_Key对接收到的密文C_RSA进行解密,以获得对应的明文文档数据,过程结束。
总体而言,通过本发明所构思的以上技术方案,能取得下列有益效果:
(1)本发明能够实现数据的隐私保护:现有技术在完成基于TF-IDF的文档全文检索时,是在明文状态下进行的。本发明中步骤(3)中对文档及索引进行了加密,步骤(3)对分词得到的词项以及查询词项进行了Hash运算,步骤(8)中词项搜索以及文档评分是在密文状态下操作得到的,因此,本发明的方法不会向云服务提供商和其他攻击者泄露与文档相关的任何信息,保护了数据拥有者的数据机密以及数据使用者的查询数据机密。
(2)本发明的检索效率高:本发明中步骤(8)中对文档评分的计算是在云服务提供商中进行的,充分利用了云上的计算资源,提高了密文检索效率;同时,与现有技术相比,无需解密即可进行文档评分计算操作,简化了操作步骤。
(3)本发明能够实现数据使用权的可控性:通过实施本发明的步骤(1,4,5,11)等相关操作,可以达到数据拥有者自己掌握数据使用权的目的,只有在数据拥有者授权下,数据使用者才能获悉数据内容。
(4)本发明提出的全同态密码方案的密文膨胀减少:步骤(1)和步骤(3)设计的整数上的FHE加密是基于近似最大公因子问题,与现有的基于LWE上的FHE方案相比,具有较短的密钥尺寸及密文膨胀系数小的特点。
附图说明
图1是本发明面向云存储并基于全同态密码技术的密文全文检索方法的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明的基本思路在于,数据拥有者对数据进行加密;云服务提供商存储加密后生成的密文数据并在密文状态下完成计算操作,以提供搜索服务;数据使用者通过解密密文数据满足其查询文档内容的需求。
如图1所示,本发明面向云存储并基于全同态密码技术的密文全文检索方法包括以下步骤:
(1)数据拥有者随机生成RSA公钥R_Pub_Key和RSA私钥R_Pri_Key,并根据生成的RSA公钥R_Pub_Key采用CA(Certificate Authority)认证生成RSA公钥证书;随机产生两个安全大素数F_Key和q(两个数的长度都接近512比特),其中F_Key用作对称密钥,并生成一个随机数r;
(2)数据拥有者利用分词器对其拥有的文档数据进行分词,以达到分词和去除停用词的目的,对分词结果进行词项频率(Term frequency,简称TF)、逆文档频率(Inversedocument frequency,简称IDF)的计算,以得到文档数据中词项的TF值、IDF值,并将TF值、IDF值进行整数化(即将该值乘以106后去除小数点后面的数),以得到明文状态下的倒排索引表,其结构如表1所示,其中TFij代表在IDi下Termj的词项频率,IDFj代表Termj的逆文档频率;
表1
(3)数据拥有者对其文档数据及步骤(2)得到的明文状态下的倒排索引表进行加密,并将加密结果上传给云服务提供商;具体而言,数据拥有者对其文档数据使用步骤(1)生成的私钥R_Pri_Key进行RSA加密,以得到文档密文C_RSA,并建立用户、文档ID以及对应文档密文之间的对应关系表,其组织结构如表2所示;对步骤(2)的倒排索引表中的词项进行哈希(Hash)签名运算,以得到64位签名指纹值Term_Hash;对倒排索引表中的TF、IDF值利用步骤(1)生成的对称密钥F_Key和q、r进行整数上的全同态加密(C=M+F_Key*q+F_Key*r,M为输入明文,C为输出密文),以得到全同态加密的词项频率TF_FHE以及全同态加密的逆文档频率IDF_FHE;利用签名指纹值Term_Hash、全同态加密的词项频率TF_FHE、全同态加密的逆文档频率IDF_FHE、以及倒排索引表中的文档ID值建立密文状态下的倒排索引表,其组织结构如表3所示(TF_FHEij代表在IDi下Termj的全同态加密的词项频率,IDF_FHEj代表Termj的全同态的逆文档频率);数据拥有者将用户、文档ID以及对应文档密文之间的对应关系表表2和密文状态下的倒排索引表表3上传给云服务提供商,由云服务提供商在云服务端进行分布式存储;
表2
用户ID | 文档ID | C_RSA |
UserID1 | ID1 | C_RSA1 |
ID2 | C_RSA2 | |
UserID2 | ID3 | C_RSA3 |
… | … | … |
表3
(4)数据使用者向数据拥有者发出查询请求,数据拥有者对提出查询请求的数据使用者进行身份验证,如果验证通过则进入步骤(5),否则过程结束;具体而言,将数据使用者身份信息与数据拥有者已有的用户信息进行比较,如果该数据使用者身份信息存在于已有的用户信息中,则该数据使用者身份验证通过,否则不通过;
(5)数据拥有者将RSA公钥证书以及步骤(3)中所采用的哈希签名运算的计算函数发送给数据使用者;
(6)数据使用者接收并保管该RSA公钥证书,对其待查关键词组中的每一个待查关键词进行哈希运算,以生成长度为64位的词项哈希值,并将此处生成的所有词项哈希值上传给云服务提供商;
(7)云服务提供商在密文状态下的倒排索引表表3上搜索来自数据使用者的词项哈希值,以得到对应的TF_FHE值、IDF_FHE值以及文档ID值;
(8)云服务提供商根据步骤(7)中搜索到的每个文档ID值计算其文档评分值,并将该文档评分值及其对应的文档ID值返回给数据拥有者;具体而言,本步骤是对每个文档ID值对应的TF_FHE值和IDF_FHE值在密文状态下进行全同态乘法和加法运算,计算式如下:文档评分值Score(IDi)=∑TF_FHEij*IDF_FHEj,其中IDi为密文状态下的倒排索引表表3中搜索到的文档ID值,TF_FHEij为密文状态下的倒排索引表表3中搜索到的IDi下Termj的全同态加密的词项频率,IDF_FHEj为密文状态下的倒排索引表表3中搜索到的Termj的全同态的逆文档频率。云服务提供商将所得的文档评分值及其对应的文档ID值构成二元组数据结构(文档ID,Score)的形式,并将其发送到数据拥有者;
(9)数据拥有者利用步骤(1)所生成的对称密钥F_Key对接收到的文档评分值进行解密,以得到解密后的查询结果文档的评分,并对其进行降序排列,以得到p个较高评分(p可由数据拥有者自行设定,其取值为1至5的自然数),并将前p个较高评分所对应的文档ID值返回到云服务提供商;
(10)云服务提供商根据接收到的文档ID值,在用户、文档ID以及对应文档密文之间的对应关系表表2中查找对应的密文C_RSA,并将该密文C_RSA返回给数据使用者;
(11)数据使用者使用RSA公钥R_Pub_Key对接收到的密文C_RSA进行解密,以获得对应的明文文档数据,过程结束。
本发明面向云存储并基于全同态密码技术的密文全文检索系统应用在包括数据使用者、数据拥有者和云服务提供商的面向云存储系统中,且包括以下模块:
第一模块,其设置于数据拥有者中,用于随机生成RSA公钥R_Pub_Key和RSA私钥R_Pri_Key,并根据生成的RSA公钥R_Pub_Key采用CA(Certificate Authority)认证生成RSA公钥证书;随机产生两个安全大素数F_Key和q(两个数的长度都接近512比特),其中F_Key用作对称密钥,并生成一个随机数r;
第二模块,其设置于数据拥有者中,用于其利用分词器对其拥有的文档数据进行分词,以达到分词和去除停用词的目的,对分词结果进行词项频率(Term frequency,简称TF)、逆文档频率(Inverse document frequency,简称IDF)的计算,以得到文档数据中词项的TF值、IDF值,并将TF值、IDF值进行整数化(即将该值乘以106后去除小数点后面的数),以得到明文状态下的倒排索引表;
第三模块,其设置于数据拥有者中,用于对明文状态下的倒排索引表进行加密,并将加密结果上传给云服务提供商;具体而言,数据拥有者对其文档数据使用第一模块生成的私钥R_Pri_Key进行RSA加密,以得到文档密文C_RSA,并建立用户、文档ID以及对应文档密文之间的对应关系表;对第二模块的倒排索引表中的词项进行哈希(Hash)签名运算,以得到64位签名指纹值Term_Hash;对倒排索引表中的TF、IDF值利用第一模块生成的对称密钥F_Key和q、r进行整数上的全同态加密(C=M+F_Key*q+F_Key*r,M为输入明文,C为输出密文),以得到全同态加密的词项频率TF_FHE以及全同态加密的逆文档频率IDF_FHE;根据签名指纹值Term_Hash、全同态加密的词项频率TF_FHE、全同态加密的逆文档频率IDF_FHE、以及倒排索引表中的文档ID值建立密文状态下的倒排索引表,数据拥有者将用户、文档ID以及对应文档密文之间的对应关系表和密文状态下的倒排索引表上传给云服务提供商,由云服务提供商在云服务端进行分布式存储;
第四模块,其设置于数据使用者中,用于向数据拥有者发出查询请求,数据拥有者根据该查询请求验证该数据使用者身份,如果验证通过则进入第五模块,否则过程结束;具体而言,将数据使用者身份信息与数据拥有者拥有的用户信息进行比较,二者如果相同,则该数据使用者身份验证通过,否则则表示不通过;
第五模块,其设置于数据拥有者中,用于将RSA公钥证书以及步骤(3)中所采用的哈希签名运算的计算函数发送给数据使用者;
第六模块,其设置于数据使用者,用于接收并保管该RSA公钥证书,对其待查关键词组中的每一个待查关键词进行哈希运算,以生成长度为64位的词项哈希值,并将此处生成的所有词项哈希值上传给云服务提供商;
第七模块,其设置于云服务提供者,用于在密文状态下的倒排索引表表上搜索来自数据使用者的词项哈希值,以得到对应的TF_FHE值、IDF_FHE值以及文档ID值;
第八模块,其设置于云服务提供者,用于根据第七模块中搜索到的每个文档ID值计算其文档评分值,并将该文档评分值及其对应的文档ID值返回给数据拥有者;具体而言,是对每个文档ID值对应的TF_FHE值和IDF_FHE值在密文状态下进行全同态乘法和加法运算,计算式如下:文档评分值Score(IDi)=∑TF_FHEij*IDF_FHEj,其中IDi为密文状态下的倒排索引表中搜索到的文档ID值,TF_FHEij为密文状态下的倒排索引表中搜索到的IDi下Termj的全同态加密的词项频率,IDF_FHEj为密文状态下的倒排索引表中搜索到的Termj的全同态的逆文档频率。云服务提供商将所得的文档评分值及其对应的文档ID值构成二元组数据结构(文档ID,Score)的形式,并将其发送到数据拥有者;
第九模块,其设置于数据拥有者,用于利用第一模块所生成的对称密钥F_Key对接收到的文档评分值进行解密,以得到解密后的查询结果文档的评分,并对其进行降序排列,以得到p个较高评分(p可由数据拥有者自行设定,其取值为1至5的自然数),并将前p个较高评分所对应的文档ID值返回到云服务提供商;
第十模块,其设置于云服务提供者,用于根据接收到的文档ID值,在用户、文档ID以及对应文档密文之间的对应关系表中查找对应的密文C_RSA,并将该密文C_RSA返回给数据使用者;
第十一模块,其设置于数据使用者,用于使用RSA公钥R_Pub_Key对接收到的密文C_RSA进行解密,以获得对应的明文文档数据,过程结束。总体而言,通过本发明所构思的以上技术方案,能取得下列有益效果:
(1)本发明能够实现数据的隐私保护:现有技术在完成基于TF-IDF的文档全文检索时,是在明文状态下进行的。本发明中步骤(3)中对文档及索引进行了加密,步骤(3)对分词得到的词项以及查询词项进行了Hash运算,步骤(8)中词项搜索以及文档评分是在密文状态下操作得到的,因此,本发明的方法不会向云服务提供商和其他攻击者泄露与文档相关的任何信息,保护了数据拥有者的数据机密以及数据使用者的查询数据机密。
(2)本发明的检索效率高:本发明中步骤(8)中对文档评分的计算是在云服务提供商中进行的,充分利用了云上的计算资源,提高了密文检索效率;同时,与现有技术相比,无需解密即可进行文档评分计算操作,简化了操作步骤。
(3)本发明能够实现数据使用权的可控性:通过实施本发明的步骤(1,4,5,11)等相关操作,可以达到数据拥有者自己掌握数据使用权的目的,只有在数据拥有者授权下,数据使用者才能获悉数据内容。
(4)本发明提出的全同态密码方案的密文膨胀减少:步骤(1)和步骤(3)设计的整数上的FHE加密是基于近似最大公因子问题,与现有的基于LWE上的FHE方案相比,具有较短的密钥尺寸及密文膨胀系数小的特点。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (2)
1.一种面向云存储并基于全同态密码技术的密文全文检索方法,其特征在于,包括步骤:
(1)数据拥有者随机生成RSA公钥R_Pub_Key和RSA私钥R_Pri_Key,并根据生成的RSA公钥R_Pub_Key生成RSA公钥证书,随机产生安全大素数F_Key和q,并生成一个随机数r;
(2)数据拥有者利用分词器对其拥有的文档数据进行分词,对分词结果进行词项频率TF值、逆文档频率IDF值的计算,并将TF值、IDF值进行整数化,即将该TF值、IDF值乘以106后去除小数点后面的数,以得到明文状态下的倒排索引表;
(3)数据拥有者对其文档数据及步骤(2)得到的明文状态下的倒排索引表进行加密,并将加密结果上传给云服务提供商;本步骤(3)包括以下子步骤:
(3-1)数据拥有者对其文档数据使用步骤(1)生成的私钥R_Pri_Key进行RSA加密,以得到文档密文C_RSA,并建立用户、文档ID以及对应文档密文之间的对应关系表;
(3-2)对步骤(2)的倒排索引表中的词项进行哈希签名运算,以得到64位签名指纹值Term_Hash;
(3-3)对倒排索引表中的TF、IDF值利用步骤(1)生成的安全大素数F_Key和q、r进行整数上的全同态加密:C=M+F_Key*q+F_Key*r,其中M为输入明文,C为输出密文,以得到全同态加密的词项频率TF_FHE以及全同态加密的逆文档频率IDF_FHE;
(3-4)利用签名指纹值Term_Hash、全同态加密的词项频率TF_FHE、全同态加密的逆文档频率IDF_FHE、以及倒排索引表中的文档ID值建立密文状态下的倒排索引表;
(3-5)将用户、文档ID以及对应文档密文之间的对应关系表和密文状态下的倒排索引表上传给云服务提供商,由云服务提供商在云服务端进行分布式存储;
(4)数据使用者向数据拥有者发出查询请求,数据拥有者对提出查询请求的数据使用者进行身份验证,如果验证通过则进入步骤(5),否则过程结束;
(5)数据拥有者将RSA公钥证书以及步骤(3)中所采用的哈希签名运算的计算函数发送给数据使用者;
(6)数据使用者接收并保管该RSA公钥证书,对其待查关键词组中的每一个待查关键词进行哈希运算,以生成词项哈希值,并将此处生成的所有词项哈希值上传给云服务提供商;
(7)云服务提供商在密文状态下的倒排索引表上搜索来自数据使用者的词项哈希值,以得到对应的全同态加密的词项频率TF_FHE值、全同态加密的逆文档频率IDF_FHE值以及文档ID值;
(8)云服务提供商根据步骤(7)中搜索到的每个文档ID值计算其文档评分值,并将该文档评分值及其对应的文档ID值返回给数据拥有者;本步骤(8)包括以下子步骤:
(8-1)对每个文档ID值对应的TF_FHE值和IDF_FHE值在密文状态下进行全同态乘法和加法运算,计算式如下:文档评分值Score(IDi)=∑TF_FHEij*IDF_FHEj,其中IDi为密文状态下的倒排索引表中搜索到的文档ID值,TF_FHEij为密文状态下的倒排索引表中搜索到的IDi下词项Termj的全同态加密的词项频率,IDF_FHEj为密文状态下的倒排索引表中搜索到的词项Termj的全同态加密的逆文档频率;
(8-2)将所得的文档评分值及其对应的文档ID值构成二元组数据结构的形式,并将其发送到数据拥有者;
(9)数据拥有者利用步骤(1)所生成的安全大素数F_Key对接收到的文档评分值进行解密,以得到解密后的查询结果文档的评分,并对其进行降序排列,以得到p个较高评分,并将前p个较高评分所对应的文档ID值返回到云服务提供商;
(10)云服务提供商根据接收到的文档ID值,在用户、文档ID以及对应文档密文之间的对应关系表中查找对应的密文C_RSA,并将该密文C_RSA返回给数据使用者;
(11)数据使用者使用RSA公钥R_Pub_Key对接收到的密文C_RSA进行解密,以获得对应的明文文档数据,过程结束。
2.一种面向云存储并基于全同态密码技术的密文全文检索系统,其是应用在包括数据使用者、数据拥有者和云服务提供商的面向云存储系统中,所述密文全文检索系统包括:
第一模块,其设置于数据拥有者中,用于随机生成RSA公钥R_Pub_Key和RSA私钥R_Pri_Key,并根据生成的RSA公钥R_Pub_Key生成RSA公钥证书,随机产生安全大素数F_Key和q,并生成一个随机数r;
第二模块,其设置于数据拥有者中,用于利用分词器对其拥有的文档数据进行分词,对分词结果进行词项频率TF值、逆文档频率IDF值的计算,并将TF值、IDF值进行整数化,即将该TF值、IDF值乘以106后去除小数点后面的数,以得到明文状态下的倒排索引表;
第三模块,其设置于数据拥有者中,用于对其文档数据及第二模块得到的明文状态下的倒排索引表进行加密,并将加密结果上传给云服务提供商;本模块包括以下子模块:
第一子模块,用于数据拥有者对其文档数据使用第一模块生成的私钥R_Pri_Key进行RSA加密,以得到文档密文C_RSA,并建立用户、文档ID以及对应文档密文之间的对应关系表;
第二子模块,用于对第二模块的倒排索引表中的词项进行哈希签名运算,以得到64位签名指纹值Term_Hash;
第三子模块,用于对倒排索引表中的TF、IDF值利用第一模块生成的安全大素数F_Key和q、r进行整数上的全同态加密:C=M+F_Key*q+F_Key*r,其中M为输入明文,C为输出密文,以得到全同态加密的词项频率TF_FHE以及全同态加密的逆文档频率IDF_FHE;
第四子模块,用于利用签名指纹值Term_Hash、全同态加密的词项频率TF_FHE、全同态加密的逆文档频率IDF_FHE、以及倒排索引表中的文档ID值建立密文状态下的倒排索引表;
第五子模块,用于将用户、文档ID以及对应文档密文之间的对应关系表和密文状态下的倒排索引表上传给云服务提供商,由云服务提供商在云服务端进行分布式存储;
第四模块,其设置于数据使用者中,用于向数据拥有者发出查询请求,数据拥有者对提出查询请求的数据使用者进行身份验证,如果验证通过则进入第五模块,否则过程结束;
第五模块,其设置于数据拥有者中,用于将RSA公钥证书以及第三模块中所采用的哈希签名运算的计算函数发送给数据使用者;
第六模块,其设置于数据使用者中,用于接收并保管该RSA公钥证书,对其待查关键词组中的每一个待查关键词进行哈希运算,以生成词项哈希值,并将此处生成的所有词项哈希值上传给云服务提供商;
第七模块,其设置于云服务提供商中,用于在密文状态下的倒排索引表上搜索来自数据使用者的词项哈希值,以得到对应的TF_FHE值、IDF_FHE值以及文档ID值;
第八模块,其设置于云服务提供商中,用于根据第七模块中搜索到的每个文档ID值计算其文档评分值,并将该文档评分值及其对应的文档ID值返回给数据拥有者;本模块具体包括以下子模块:
第六子模块,用于对每个文档ID值对应的TF_FHE值和IDF_FHE值在密文状态下进行全同态乘法和加法运算,计算式如下:文档评分值Score(IDi)=∑TF_FHEij*IDF_FHEj,其中IDi为密文状态下的倒排索引表中搜索到的文档ID值,TF_FHEij为密文状态下的倒排索引表中搜索到的IDi下词项Termj的全同态加密的词项频率,IDF_FHEj为密文状态下的倒排索引表中搜索到的词项Termj的全同态加密的逆文档频率;
第七子模块,用于将所得的文档评分值及其对应的文档ID值构成二元组数据结构的形式,并将其发送到数据拥有者;
第九模块,其设置于数据拥有者中,用于利用第一模块所生成的安全大素数F_Key对接收到的文档评分值进行解密,以得到解密后的查询结果文档的评分,并对其进行降序排列,以得到p个较高评分,并将前p个较高评分所对应的文档ID值返回到云服务提供商;
第十模块,其设置于云服务提供商中,用于根据接收到的文档ID值,在用户、文档ID以及对应文档密文之间的对应关系表中查找对应的密文C_RSA,并将该密文C_RSA返回给数据使用者;
第十一模块,其设置于数据使用者中,用于使用RSA公钥R_Pub_Key对接收到的密文C_RSA进行解密,以获得对应的明文文档数据,过程结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510964712.XA CN105610910B (zh) | 2015-12-18 | 2015-12-18 | 面向云存储并基于全同态密码的密文全文检索方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510964712.XA CN105610910B (zh) | 2015-12-18 | 2015-12-18 | 面向云存储并基于全同态密码的密文全文检索方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105610910A CN105610910A (zh) | 2016-05-25 |
CN105610910B true CN105610910B (zh) | 2018-08-31 |
Family
ID=55990444
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510964712.XA Active CN105610910B (zh) | 2015-12-18 | 2015-12-18 | 面向云存储并基于全同态密码的密文全文检索方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105610910B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105847305A (zh) * | 2016-06-21 | 2016-08-10 | 新昌县七星街道明盛模具厂 | 一种云资源的安全处理与访问方法 |
CN105871931A (zh) * | 2016-06-21 | 2016-08-17 | 新昌县七星街道明盛模具厂 | 一种云服务终端的安全处理与访问方法 |
CN106295401A (zh) * | 2016-08-13 | 2017-01-04 | 深圳市樊溪电子有限公司 | 一种用于区块链的只读安全文件存储系统及其方法 |
US10805080B2 (en) * | 2017-01-06 | 2020-10-13 | Microsoft Technology Licensing, Llc | Strong resource identity in a cloud hosted system |
CN106961427B (zh) * | 2017-03-10 | 2019-08-06 | 北京科技大学 | 一种基于5g通信标准的密文数据搜索方法 |
CN106934063B (zh) * | 2017-03-30 | 2020-08-07 | 沈阳航空航天大学 | 一种面向云计算应用的同态加密密文检索方法 |
CN107256248B (zh) * | 2017-06-07 | 2020-05-08 | 福州大学 | 云存储安全中基于通配符的可搜索加密方法 |
CN107704768A (zh) * | 2017-09-14 | 2018-02-16 | 上海海事大学 | 一种密文的多关键字分级安全检索方法 |
CN107766739B (zh) * | 2017-09-18 | 2020-09-11 | 北京理工大学 | 面向加密文本数据的短语检索方法及其装置 |
CN107734054A (zh) * | 2017-11-06 | 2018-02-23 | 福州大学 | 安全云存储中的加密数据检索系统 |
CN109344637B (zh) * | 2018-10-24 | 2021-08-24 | 北京理工大学 | 一种可搜索和保护隐私的数据共享云辅助电子医疗系统 |
CN109962778A (zh) * | 2019-03-21 | 2019-07-02 | 西北工业大学 | 基于整数的多方同态加密方法 |
CN111753312B (zh) * | 2019-03-26 | 2023-09-08 | 钉钉控股(开曼)有限公司 | 数据处理方法、装置、设备和系统 |
CN113779597B (zh) * | 2021-08-19 | 2023-08-18 | 深圳技术大学 | 加密文档的存储和相似检索方法、装置、设备及介质 |
CN114357522A (zh) * | 2022-01-13 | 2022-04-15 | 厦门荷月信息科技有限公司 | 一种隐私计算分组查询方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103281377A (zh) * | 2013-05-31 | 2013-09-04 | 北京鹏宇成软件技术有限公司 | 一种面向云的密文数据存储与查询方法 |
WO2014109828A2 (en) * | 2012-11-16 | 2014-07-17 | Raytheon Bbn Technologies Corp. | Method for secure substring search |
US9031229B1 (en) * | 2012-03-26 | 2015-05-12 | Newline Software, Inc. | Computer-implemented system and method for providing data privacy in a cloud using discrete homomorphic encryption |
-
2015
- 2015-12-18 CN CN201510964712.XA patent/CN105610910B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9031229B1 (en) * | 2012-03-26 | 2015-05-12 | Newline Software, Inc. | Computer-implemented system and method for providing data privacy in a cloud using discrete homomorphic encryption |
WO2014109828A2 (en) * | 2012-11-16 | 2014-07-17 | Raytheon Bbn Technologies Corp. | Method for secure substring search |
CN103281377A (zh) * | 2013-05-31 | 2013-09-04 | 北京鹏宇成软件技术有限公司 | 一种面向云的密文数据存储与查询方法 |
Non-Patent Citations (1)
Title |
---|
云计算中加密的多关键字检索技术研究;鲁鹏;《中国优秀硕士学位论文全文数据库信息科技辑》;20150715;I138-66 * |
Also Published As
Publication number | Publication date |
---|---|
CN105610910A (zh) | 2016-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105610910B (zh) | 面向云存储并基于全同态密码的密文全文检索方法及系统 | |
US11973889B2 (en) | Searchable encrypted data sharing method and system based on blockchain and homomorphic encryption | |
CN106803784B (zh) | 安全多媒体云存储中基于格的多用户模糊可搜索加密方法 | |
CN109450935B (zh) | 云存储中可验证的语义安全的多关键词搜索方法 | |
CN107491497B (zh) | 支持任意语言查询的多用户多关键词排序可搜索加密系统 | |
CN104021157B (zh) | 云存储中基于双线性对的关键词可搜索加密方法 | |
CN108632032A (zh) | 无密钥托管的安全多关键词排序检索系统 | |
CN106407822B (zh) | 一种关键词、多关键词可搜索加密方法和系统 | |
EP2348447B1 (en) | A computer implemented method for generating a set of identifiers from a private key, computer implemented method and computing device | |
CN108737374A (zh) | 一种区块链中数据存储的隐私保护方法 | |
CN103780393B (zh) | 一种面向多安全等级的虚拟桌面安全认证系统及方法 | |
CN104967693B (zh) | 面向云存储的基于全同态密码技术的文档相似度计算方法 | |
CN106850656B (zh) | 一种云环境下多用户文件共享控制方法 | |
CN107256248A (zh) | 云存储安全中基于通配符的可搜索加密方法 | |
CN109740364A (zh) | 可控搜索权限的基于属性的密文搜索方法 | |
Yu et al. | Traceable and undeniable ciphertext-policy attribute-based encryption for cloud storage service | |
Shekhawat et al. | Privacy-preserving techniques for big data analysis in cloud | |
Noorallahzade et al. | A survey on public key encryption with keyword search: Taxonomy and methods | |
Han et al. | Identity-based secure distributeddata storage schemes | |
CN106951791A (zh) | 一种基于密文的机密文档访问控制系统 | |
Dowlatshah et al. | A secure and robust smart card-based remote user authentication scheme | |
Sreekumari | Privacy-preserving keyword search schemes over encrypted cloud data: an extensive analysis | |
Wang et al. | An effective verifiable symmetric searchable encryption scheme in cloud computing | |
Yang et al. | Attribute-based keyword search over the encrypted blockchain | |
Zhao et al. | Searchable ciphertext-policy attribute-based encryption with multi-keywords for secure cloud storage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |