CN115510490A - 一种非密钥共享的加密数据查询方法、装置、系统及设备 - Google Patents
一种非密钥共享的加密数据查询方法、装置、系统及设备 Download PDFInfo
- Publication number
- CN115510490A CN115510490A CN202211233484.5A CN202211233484A CN115510490A CN 115510490 A CN115510490 A CN 115510490A CN 202211233484 A CN202211233484 A CN 202211233484A CN 115510490 A CN115510490 A CN 115510490A
- Authority
- CN
- China
- Prior art keywords
- query
- key
- encrypted
- data
- target file
- 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.)
- Pending
Links
Images
Classifications
-
- 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
-
- 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/602—Providing cryptographic facilities or services
-
- 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/604—Tools and structures for managing or administering access control systems
Abstract
本发明涉及数据处理技术领域,尤其涉及一种非密钥共享的加密数据查询方法、装置、系统及设备。包括,密钥生成中心生成数据拥有者、数据使用者和存储服务方的密钥,使数据拥有者根据自身的密钥对目标文件的查询索引中的关键词进行加密,然后上传至存储服务方,数据使用者利用自身的密钥对查询条件中的关键词进行加密,然后发送给存储服务方,存储服务方利用自身的密钥对数据拥有者的查询索引中加密的关键词进行重加密、对数据使用者的查询条件中加密的关键词进行重加密,利用查询条件中重加密的关键词在查询索引中进行查找,得到目标文件。通过本发明实施例的方法,实现了数据拥有者在不向数据使用者共享密钥的情况下,完成数据的加密查询。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种非密钥共享的加密数据查询方法、装置、系统及设备。
背景技术
本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
随着云计算技术的不断发展,将个人数据外包到云服务器已经成为流行趋势。用户从服务提供商那里购买或租用一定的存储空间并由云服务提供商提供一定的数据管理服务。用户将文件上传到云端,与朋友、同事进行数据共享。支持云服务器在加密文件上进行内容相关的搜索技术是云计算场景中一个重要且现实的需求。在实际的云存储场景中,用户(数据拥有者)上传文件并不仅是进行存储外包,而是希望将文件查询权限共享给其他用户(数据使用者)。
现有技术中需要数据拥有者向数据使用者共享密钥,数据使用者利用共享的密钥进行加密查询,但在数据拥有者不再允许数据使用者查询加密数据时,只能更换新的密钥,并向其他仍能够查询数据的数据使用者重新同步更换的密钥,大幅增加了计算量。
现在亟需一种非密钥共享的加密数据查询方法,从而解决现有技术中需要数据拥有者向数据使用者共享密钥才能进行加密查询,导致数据使用者权限管理困难的问题。
发明内容
为解决现有技术中存在的问题,本发明实施例提供了一种非密钥共享的加密数据查询方法、装置、系统及设备,实现了数据拥有者在不向数据使用者共享密钥的情况下,完成数据的加密查询,解决了现有技术中需要数据拥有者向数据使用者共享密钥才能进行加密查询,导致数据使用者权限管理困难的问题。
为了解决上述技术问题,本发明的具体技术方案如下:
一方面,本发明实施例提供一种非密钥共享的加密数据查询方法,由密钥生成中心执行,该方法包括:
根据用户权限确定数据拥有者和数据使用者,并生成所述数据拥有者对应的第一密钥、数据使用者对应的第二密钥以及存储服务方对应的第一重加密密钥和第二重加密密钥;
将所述第一密钥发送给所述数据拥有者,以使所述数据拥有者在向所述存储服务方上传目标文件时,根据所述目标文件的内容提取所述目标文件的关键词,并生成查询索引,利用数据拥有者的特定密钥对所述目标文件进行加密,利用第一密钥对所述查询索引中的关键词进行加密,将加密后的所述目标文件以及所述查询索引发送给所述存储服务方;
将所述第二密钥发送给所述数据使用者,以使所述数据使用者在向所述存储服务方查询所述目标文件时,根据查询的所述关键词生成查询条件,并利用所述第二密钥对所述查询条件中的所述关键词进行加密,将所述查询条件发送给所述存储服务方;
将所述第一重加密密钥、第二重加密密钥发送给所述存储服务方,以使所述存储服务方利用所述第一重加密密钥对所述查询索引中的加密后的所述关键词进行重加密,并在接收到所述查询条件后,利用所述第二重加密密钥对所述查询条件中的加密后的所述关键词进行重加密,所述查询条件中重加密后的所述关键词与所述查询索引中重加密后的关键词对应,利用所述查询条件中重加密后的所述关键词在所述查询索引中进行查找,得到与所述关键词对应的加密后的目标文件,将查找到的加密后的所述目标文件发送给所述数据使用者,以使所述数据使用者利用与所述特定密钥对应的密钥对加密后的所述目标文件进行解密,完成查询。
进一步地,生成所述第一密钥、第二密钥、第一重加密密钥和第二重加密密钥的步骤包括,
首先定义一个素数阶q的有限循环群G,设HF:x→G为一个哈希函数并定义为随机预言机,其中HF表示哈希函数,x表示函数输入,G表示函数输出,→表示输出过程;
将FDDH:Zq×x→G定义为FDDH(k,x)←HF(x)k,其中,FDDH(k,x)表示一个函数,Zq表示整数,k表示整数;
设定HLSH:Rd→N是p-stable的位置敏感函数,其中p-stable是局部敏感哈希算法,其中,HLSH表示p-stable的位置敏感函数,Rd表示d维特征向量,N表示整数集;
密钥生成中心根据HF:x→G、FDDH:Zq×x→G、HLSH:Rd→N生成数据拥有者的密钥skO={KX,KI,KO_z,KO_T,KS},其中{KX,KI,KO_z,KO_T,KS}整个集合表示数据拥有者的主密钥;
并根据KO_z为数据拥有者分发索引生成第一密钥KU_z,为存储服务方分发第一重加密密钥KRE_z,满足KO_z=KU_z+KRE_z,其中+表示加法;
同时根据KO_T为数据使用者分发索引生成第二秘钥KU_T,为存储服务方分发第二重加密密钥KRE_T,满足KO_T=KU_T+KRE_T;
数据使用者的密钥为skU={KU_z,KU_T,KS};存储服务方的密钥为skRe={KRE_z,KRE_T}。
基于同一发明构思,本发明实施例还提供了一种非密钥共享的加密数据查询装置,包括,
密钥生成单元,用于根据用户权限确定数据拥有者和数据使用者,并生成所述数据拥有者对应的第一密钥、数据使用者对应的第二密钥以及存储服务方对应的第一重加密密钥和第二重加密密钥;
密钥发送单元,用于将所述第一密钥发送给所述数据拥有者,以使所述数据拥有者在向所述存储服务方上传目标文件时,根据所述目标文件的内容提取所述目标文件的关键词,并生成查询索引,利用数据拥有者的特定密钥对所述目标文件进行加密,利用第一密钥对所述查询索引中的关键词进行加密,将加密后的所述目标文件以及所述查询索引发送给所述存储服务方;将所述第二密钥发送给所述数据使用者,以使所述数据使用者在向所述存储服务方查询所述目标文件时,根据查询的所述关键词生成查询条件,并利用所述第二密钥对所述查询条件中的所述关键词进行加密,将所述查询条件发送给所述存储服务方;将所述第一重加密密钥、第二重加密密钥发送给所述存储服务方,以使所述存储服务方利用所述第一重加密密钥对所述查询索引中的加密后的所述关键词进行重加密,并在接收到所述查询条件后,利用所述第二重加密密钥对所述查询条件中的加密后的所述关键词进行重加密,所述查询条件中重加密后的所述关键词与所述查询索引中重加密后的关键词对应,利用所述查询条件中重加密后的所述关键词在所述查询索引中进行查找,得到与所述关键词对应的加密后的目标文件,将查找到的加密后的所述目标文件发送给所述数据使用者,以使所述数据使用者利用与所述特定密钥对应的密钥对加密后的所述目标文件进行解密,完成查询。
基于同一发明构思,本发明实施例还提供了一种非密钥共享的加密数据查询方法,由数据拥有者执行,所述方法包括,
接收密钥生成中心发送的第一密钥;
根据目标文件内容提取所述目标文件的关键词;
根据所述关键词生成所述目标文件的查询索引;
利用所述密钥对所述查询索引中的关键词进行加密;
利用所述数据拥有者的特定密钥对所述目标文件进行加密;
将加密后的所述目标文件以及加密后的所述查询索引发送给存储服务方,以使所述存储服务方利用数据使用者查询的所述关键词在所述查询索引中进行查找,得到与所述关键词对应的加密后的目标文件。
进一步地,根据所述关键词生成所述目标文件的查询索引进一步包括,
构建所述关键词和包括该关键词的全部目标文件的索引关系,得到第一查询索引;
根据所述目标文件和该目标文件包含的全部关键词的索引关系,得到第二查询索引;
将所述第一查询索引和第二查询索引作为所述查询索引。
基于同一发明构思,本发明实施例还提供了一种非密钥共享的加密数据查询装置,包括,
第一密钥接收单元,用于接收密钥生成中心发送的第一密钥;
第一关键词提取单元,用于根据目标文件内容提取所述目标文件的第一关键词;
查询索引生成单元,用于根据所述关键词生成所述目标文件的查询索引;
加密单元,用于利用所述密钥对所述查询索引中的关键词进行加密,利用所述数据拥有者的特定密钥对所述目标文件进行加密;
加密文件发送单元,用于将加密后的所述目标文件以及加密后的所述查询索引发送给存储服务方,以使所述存储服务方利用数据使用者查询的所述关键词在所述查询索引中进行查找,得到与所述关键词对应的加密后的目标文件。
基于同一发明构思,本发明实施例还提供了一种非密钥共享的加密数据查询方法,由数据使用者执行,所述方法包括,
接收密钥生成中心发送的第二密钥;
根据查询的关键词生成查询条件;
利用所述第二密钥对所述查询条件中的所述关键词进行加密;
将所述查询条件发送给存储服务方,以使所述存储服务方利用所述查询条件在数据拥有者发送的查询索引中进行查找,得到与所述关键词对应的加密后的目标文件;
接收所述存储服务方发送的加密后的目标文件;
利用与数据拥有者的特定密钥对应的密钥对所述加密后的目标文件进行解密,完成查询,所述加密后的目标文件是所述数据拥有者利用所述特定密钥对所述目标文件进行加密后得到的。
进一步地,根据查询的关键词生成查询条件进一步包括,
将多个所述关键词进行排序,将排序后的多个所述关键词作为所述查询条件。
基于同一发明构思,本发明实施例还提供了一种非密钥共享的加密数据查询装置,包括,
第二密钥接收单元,用于接收密钥生成中心发送的第二密钥;
查询条件生成单元,用于根据查询的关键词生成查询条件;
加密单元,用于利用所述第二密钥对所述查询条件中的所述关键词进行加密;
加密查询条件发送单元,用于将所述查询条件发送给存储服务方,以使所述存储服务方利用所述查询条件在数据拥有者发送的查询索引中进行查找,得到与所述关键词对应的加密后的目标文件;
目标文件接收单元,用于接收所述存储服务方发送的加密后的目标文件;
目标文件解密单元,用于利用与数据拥有者的特定密钥对应的密钥对所述加密后的目标文件进行解密,完成查询,所述加密后的目标文件是所述数据拥有者利用所述特定密钥对所述目标文件进行加密后得到的。
基于同一发明构思,本发明实施例还提供了一种非密钥共享的加密数据查询方法,由存储服务方执行,所述方法包括,
接收密钥生成中心发送的第一重加密密钥和第二重加密密钥;
接收数据拥有者发送的加密后的查询索引以及加密后的目标数据,并利用所述第一重加密密钥对的所述查询索引中加密后的关键词进行重加密,所述查询索引是数据拥有者根据所述关键词生成的;
在接收到数据使用者发送的查询条件后,利用所述第二重加密密钥对所述查询条件中加密后的所述关键词进行重加密,所述查询条件是所述数据使用者根据查询的所述关键词生成的,所述查询条件中重加密后的所述关键词与所述查询索引中重加密后的所述关键词对应;
利用所述查询条件中重加密后的所述关键词在所述查询索引中进行查找,得到与所述关键词对应的加密后的目标文件;
将查找到的加密后的所述目标文件发送给所述数据使用者。
进一步地,所述查询索引包括第一查询索引和第二查询索引;
所述第一查询索引包括所述关键词和包括该关键词的全部目标文件的索引关系;
所述第二查询索引包括所述目标文件和该目标文件包含的全部关键词的索引关系;
所述查询条件包括排序后的多个所述关键词。
进一步地,利用所述查询条件中重加密后的所述关键词在所述查询索引中进行查找,得到与所述关键词对应的加密后的目标文件查询条件进一步包括,
利用所述查询条件中重加密后的第一个所述关键词在所述第一查询索引中进行查找,得到与该重加密后的关键词对应的多个加密后的目标文件,将得到的多个加密后的目标文件作为第一查询结果;
根据所述第一查询结果中的多个加密后的目标文件在所述第二查询索引中进行查询,得到每个加密后的目标文件所包含的重加密后的所述关键词,将每个加密后的目标文件所包含的重加密后的所述关键词作为第二查询结果;
分别将第二查询结果中的每一个加密后的目标文件包含的重加密后的所述关键词与所述查询条件中除第一个重加密后的关键词之外的其它重加密后的关键词进行匹配,将匹配的加密后的目标文件作为最终的查询结果。
基于同一发明构思,本发明实施例还提供了一种非密钥共享的加密数据查询装置,包括,
密钥接收单元,用于接收密钥生成中心发送的第一重加密密钥和第二重加密密钥;
目标数据接收单元,用于接收数据拥有者发送的加密后的查询索引以及加密后的目标数据,并利用所述第一重加密密钥对的所述查询索引中加密后的关键词进行重加密,所述查询索引是数据拥有者根据所述关键词生成的;
查询条件接收单元,用于在接收到数据使用者发送的查询条件后,利用所述第二重加密密钥对所述查询条件中加密后的所述关键词进行重加密,所述查询条件是所述数据使用者根据查询的所述关键词生成的,所述查询条件中重加密后的所述关键词与所述查询索引中重加密后的所述关键词对应;
查询单元,用于利用所述查询条件中重加密后的所述关键词在所述查询索引中进行查找,得到与所述关键词对应的加密后的目标文件;
查询结果发送单元,用于将查找到的加密后的所述目标文件发送给所述数据使用者。
另一方面,本发明实施例还提供了一种非密钥共享的加密数据查询系统,包括密钥生成中心、数据拥有者、数据使用者以及存储服务方;
所述密钥生成中心在进行非密钥共享的加密数据查询时,执行上述密钥生成中心所执行的方法;
所述数据拥有者在进行非密钥共享的加密数据查询时,执行上述数据拥有者所执行的方法;
所述数据使用者在进行非密钥共享的加密数据查询时,执行上述数据使用者所执行的方法;
所述存储服务方在进行非密钥共享的加密数据查询时,执行上述存储服务方所执行的方法。
另一方面,本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法。
另一方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述方法。
最后,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述方法。
本发明实施例中,数据拥有者将需要上传/共享的数据上传到存储服务方,数据使用者从存储服务方获取数据拥有者上传的文件,密钥生成中心生成数据拥有者、数据使用者和存储服务方的密钥,以使数据拥有者根据自身的密钥对待上传文件(目标文件)的查询索引中的关键词进行加密,然后上传至存储服务方,当数据使用者需要查询文件时,利用自身的密钥对查询条件中的关键词进行加密,然后发送给存储服务方,其中数据使用者生成查询条件的关键词和数据拥有者生成查询索引的关键词相同,存储服务方利用自身的密钥对数据拥有者的查询索引中加密的关键词进行重加密、对数据使用者的查询条件中加密的关键词进行重加密,重加密后的关键词能够相互对应,然后存储服务方利用查询条件中重加密的关键词在查询索引中进行查找,得到与查询条件中的关键词对应的加密的目标文件,最后将查询到的加密的目标文件发送给数据使用者,数据使用者利用与数据拥有者对目标文件的密钥对应的密钥进行解密,从而使用解密的目标文件。通过本发明实施例的方法,实现了数据拥有者在不向数据使用者共享密钥的情况下,完成数据的加密查询,解决了现有技术中需要数据拥有者向数据使用者共享密钥才能进行加密查询,导致数据使用者权限管理困难的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实施例中一种非密钥共享的加密数据查询方法的实施系统示意图;
图2至图5为本发明实施例中一种非密钥共享的加密数据查询方法的流程示意图;
图6至图9为本发明实施例中一种非密钥共享的加密数据查询装置的结构示意图;
图10为本发明实施例中查询索引的示意图;
图11所示为本发明实施例中一种非密钥共享的加密数据查询系统的数据流图;
图12为本发明实施例计算机设备的结构示意图。
附图符号说明:
101、密钥生成中心;
102、数据拥有者;
103、数据使用者;
104、存储服务方;
601、密钥生成单元;
602、密钥发送单元;
701、第一密钥接收单元;
702、第一关键词提取单元;
703、查询索引生成单元;
704、加密单元;
705、加密文件发送单元;
801、第二密钥接收单元;
802、查询条件生成单元;
803、加密单元;
804、加密查询条件发送单元;
805、目标文件接收单元;
806、目标文件解密单元;
901、密钥接收单元;
902、目标数据接收单元;
903、查询条件接收单元;
904、查询单元;
905、查询结果发送单元;
1202、计算机设备;
1204、处理设备;
1206、存储资源;
1208、驱动机构;
1210、输入/输出模块;
1212、输入设备;
1214、输出设备;
1216、呈现设备;
1218、图形用户接口;
1220、网络接口;
1222、通信链路;
1224、通信总线。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
需要说明的是,本申请技术方案中对数据的获取、存储、使用、处理等均符合相关法律法规的规定”
如图1所示为本发明实施例一种非密钥共享的加密数据查询方法的实施系统示意图,可以包括密钥生成中心101、数据拥有者102、数据使用者103以及存储服务方104,所述数据拥有者102与密钥生成中心101之间、数据使用者103与密钥生成中心101之间、存储服务方104与密钥生成中心101之间、数据拥有者102与存储服务方104之间、数据使用者103与存储服务方104之间建立通信连接,能够实现数据的交互。首先由密钥生成中心101生成数据拥有者102、数据使用者103以及存储服务方104的密钥,然后数据拥有者102利用自身的密钥对数据进行加密,并上传到存储服务方104,数据使用者103对自己的数据查询消息利用自身的密钥进行加密,并发送给存储服务方104,存储服务方104利用自身的密钥对数据拥有者102加密的数据、数据使用者103加密的数据查询消息进行重加密,并进行查询,最终将查询结果发送给数据使用者103。
在本说明书实施例中,所述存储服务方104可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(CDN,Content Delivery Network)、以及大数据和人工智能平台等基础云计算服务的云服务器。
在一个可选的实施例中,数据拥有者102或数据使用者103可以包括但不限于台式计算机、平板电脑、笔记本电脑等类型的电子设备。可选的,电子设备上运行的操作系统可以包括但不限于安卓系统、IOS系统、Linux、Windows等。
此外,需要说明的是,图1所示的仅仅是本公开提供的一种应用环境,在实际应用中,还可以包括其他应用环境,本说明书不做限制。
针对现有技术中存在的问题,本发明实施例提供了一种非密钥共享的加密数据查询方法,实现了数据拥有者在不向数据使用者共享密钥的情况下,完成数据的加密查询。图2所示为本发明实施例一种非密钥共享的加密数据查询方法的流程示意图。在本图中描述了密钥生成中心生成密钥的过程,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或装置产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行。具体的如图2所示,由密钥生成中心所述方法可以包括:
步骤201:根据用户权限确定数据拥有者和数据使用者,并生成所述数据拥有者对应的第一密钥、数据使用者对应的第二密钥以及存储服务方对应的第一重加密密钥和第二重加密密钥;
步骤202:将所述第一密钥发送给所述数据拥有者;
步骤203:将所述第二密钥发送给所述数据使用者;
步骤204:将所述第一重加密密钥、第二重加密密钥发送给所述存储服务方。
相对应地,本发明实施例提供了一种非密钥共享的加密数据查询方法,图3所示为本发明实施例一种非密钥共享的加密数据查询方法的流程示意图。在图3中描述了数据拥有者上传文件的过程,可以包括如下步骤:
步骤301:接收密钥生成中心发送的第一密钥;
步骤302:根据目标文件内容提取所述目标文件的关键词;
步骤303:根据所述关键词生成所述目标文件的查询索引;
步骤304:利用所述密钥对所述查询索引中的关键词进行加密;
步骤305:利用所述数据拥有者的特定密钥对所述目标文件进行加密;
步骤306:将加密后的所述目标文件以及加密后的所述查询索引发送给存储服务方,以使所述存储服务方利用数据使用者查询的所述关键词在所述查询索引中进行查找,得到与所述关键词对应的加密后的目标文件。
相对应地,本发明实施例提供了一种非密钥共享的加密数据查询方法,图4所示为本发明实施例一种非密钥共享的加密数据查询方法的流程示意图。在图4中描述了数据使用者查询目标文件的过程,可以包括如下步骤:
步骤401:接收密钥生成中心发送的第二密钥;
步骤402:根据查询的关键词生成查询条件;
步骤403:利用所述第二密钥对所述查询条件中的所述关键词进行加密;
步骤404:将所述查询条件发送给存储服务方,以使所述存储服务方利用所述查询条件在数据拥有者发送的查询索引中进行查找,得到与所述关键词对应的加密后的目标文件;
步骤405:接收所述存储服务方发送的加密后的目标文件;
步骤406:利用与数据拥有者的特定密钥对应的密钥对所述加密后的目标文件进行解密,完成查询,所述加密后的目标文件是所述数据拥有者利用所述特定密钥对所述目标文件进行加密后得到的。
相对应地,本发明实施例提供了一种非密钥共享的加密数据查询方法,图5所示为本发明实施例一种非密钥共享的加密数据查询方法的流程示意图。在图5中描述了存储服务方存储文件以及查询目标文件的过程,可以包括如下步骤:
步骤501:接收密钥生成中心发送的第一重加密密钥和第二重加密密钥;
步骤502:接收数据拥有者发送的加密后的查询索引以及加密后的目标数据,并利用所述第一重加密密钥对的所述查询索引中加密后的关键词进行重加密,所述查询索引是数据拥有者根据所述关键词生成的;
步骤503:在接收到数据使用者发送的查询条件后,利用所述第二重加密密钥对所述查询条件中加密后的所述关键词进行重加密,所述查询条件是所述数据使用者根据查询的所述关键词生成的,所述查询条件中重加密后的所述关键词与所述查询索引中重加密后的所述关键词对应;
步骤504:利用所述查询条件中重加密后的所述关键词在所述查询索引中进行查找,得到与所述关键词对应的加密后的目标文件;
步骤505:将查找到的加密后的所述目标文件发送给所述数据使用者。
在本发明实施例中,数据拥有者将需要上传/共享的数据上传到存储服务方,数据使用者从存储服务方获取数据拥有者上传的文件,密钥生成中心生成数据拥有者、数据使用者和存储服务方的密钥,以使数据拥有者根据自身的密钥对待上传文件(目标文件)的查询索引中的关键词进行加密,然后上传至存储服务方,当数据使用者需要查询文件时,利用自身的密钥对查询条件中的关键词进行加密,然后发送给存储服务方,其中数据使用者生成查询条件的关键词和数据拥有者生成查询索引的关键词相同,存储服务方利用自身的密钥对数据拥有者的查询索引中加密的关键词进行重加密、对数据使用者的查询条件中加密的关键词进行重加密,重加密后的关键词能够相互对应,然后存储服务方利用查询条件中重加密的关键词在查询索引中进行查找,得到与查询条件中的关键词对应的加密的目标文件,最后将查询到的加密的目标文件发送给数据使用者,数据使用者利用与数据拥有者对目标文件的密钥对应的密钥进行解密,从而使用解密的目标文件。通过本发明实施例的方法,实现了数据拥有者在不向数据使用者共享密钥的情况下,完成数据的加密查询,解决了现有技术中需要数据拥有者向数据使用者共享密钥才能进行加密查询,导致数据使用者权限管理困难的问题。
在本发明实施例中,数据拥有者的第一密钥和数据使用者的第二密钥不同,因此实现了数据使用者利用共享的密钥进行加密查询,若数据拥有者不再允许数据使用者向存储服务方查询加密的目标文件时,只需要存储服务方删除数据使用者的第二密钥以及对应的第二重加密密钥即可,然后密钥生成中心再次生成新的第二密钥以及第二重加密密钥,并将新生成的第二密钥发送给数据拥有着重新授权使用加密的目标文件的数据使用者,将第二重加密密钥发送给存储服务方即可,从而避免数据拥有者更换新的第一密钥,减小了数据拥有者的计算量(因为一旦第一密钥更换,当数据拥有者更新已上传到存储服务方的加密后的目标文件之后,还需要重新生成查询索引)。
在本发明实施例中,数据拥有者利用特定密钥对目标文件进行加密,并将加密的目标文件上传至存储服务方,由于存储服务方未持有与特定密钥对应的解密密钥,从而保证了目标文件在存储服务方上的保密,当存储服务方查询到加密的目标文件后,将加密的目标文件发送给数据使用者,数据使用者利用与数据拥有者的特定密钥相对应的解密密钥对目标文件进行解密,从而获取到解密后的目标文件中的内容。在本发明实施例中,特定密钥和解密密钥可以满足对称加密关系,例如特定密钥为数据使用者的公钥,与特定密钥对应的解密密钥为数据使用者的私钥,数据拥有者利用数据使用者的私钥对目标文件进行加密,数据使用者利用自身的私钥对加密的目标文件进行解密。除此之外,还可以采用其他的加密技术对目标文件进行加密和解密,本发明实施例不做限制。
在本发明实施例中,目标文件的关键词可以是数据使用者对目标文件的内容进行分析后确定的,然后将该关键词利用广播的方式发送给所有的数据使用者,以便于数据使用者利用该关键词生成查询条件。数据使用者可以建立目标文件的唯一标识与该目标文件的关键词的对应关系,将该对应关系作为查询索引。
在数据拥有者向存储服务方上传查询索引和目标文件之前,利用第一密钥对查询索引中的关键词进行加密,不对查询索引中关键词和目标文件的唯一标识之间的对应关系进行加密,从而保证存储服务方能够识别该对应关系,利用特定密钥对目标文件进行加密,将加密后的目标文件以及加密关键词后的查询索引上传至存储服务方。
在数据使用者向存储服务方查询文件时,利用关键词生成查询条件,该查询条件可以包括多个关键词之间的逻辑运算关系(与、或、非等),然后利用第二密钥对查询条件中的关键词进行加密,不对多个关键词之间的逻辑关系进行加密,从而保证存储服务方能够识别关键词之间的逻辑运算关系。将加密关键词后的查询条件发送给存储服务方。
存储服务方在接收到数据拥有者发送的加密后的目标文件和加密关键词后的查询索引后,对目标文件进行存储,然后利用第一重加密密钥对查询索引中加密后的关键词进行重加密,得到重加密后的第一个关键词。在接收到数据使用者发送的加密关键词后的查询条件后,对查询条件中的关键词进行重加密,得到重加密后的第二个关键词,重加密后的第二个关键词和重加密后的第一个关键词能够对应,从而利用重加密后的第二个关键词在查询索引中进行查询,得到对应的目标文件的唯一标识,然后将该唯一标识对应的加密后的目标文件发送给数据使用者。
根据本发明的一个实施例,生成所述第一密钥、第二密钥、第一重加密密钥和第二重加密密钥的步骤包括,
首先定义一个素数阶q的有限循环群G,设HF:x→G为一个哈希函数并定义为随机预言机,其中HF表示哈希函数,x表示函数输入,G表示函数输出,→表示输出过程;
将FDDH:Zq×x→G定义为FDDH(k,x)←HF(x)k,其中,FDDH(k,x)表示一个函数,Zq表示整数,k表示整数;
设定HLSH:Rd→N是p-stable的位置敏感函数,其中p-stable是局部敏感哈希算法,其中,HLSH表示p-stable的位置敏感函数,Rd表示d维特征向量,N表示整数集;
密钥生成中心根据HF:x→G、FDDH:Zq×x→G、HLSH:Rd→N生成数据拥有者的密钥skO={KX,KI,KO_z,KO_T,KS},其中{KX,KI,KO_z,KO_T,KS}整个集合表示数据拥有者的主密钥;
并根据KO_z为数据拥有者分发索引生成第一密钥KU_z,为存储服务方分发第一重加密密钥KRE_z,满足KO_z=KU_z+KRE_z,其中+表示加法;
同时根据KO_T为数据使用者分发索引生成第二秘钥KU_T,为存储服务方分发第二重加密密钥KRE_T,满足KO_T=KU_T+KRE_T;
数据使用者的密钥为skU={KU_z,KU_T,KS};存储服务方的密钥为skRe={KRE_z,KRE_T}。
根据本发明的一个实施例,为了提高查询效率,根据所述关键词生成所述目标文件的查询索引进一步包括,
构建所述关键词和包括该关键词的全部目标文件的索引关系,得到第一查询索引;
根据所述目标文件和该目标文件包含的全部关键词的索引关系,得到第二查询索引;
将所述第一查询索引和第二查询索引作为所述查询索引。
在本发明实施例中,查询索引可以如图10所示,TSet表示第一查询索引,XSet表示第二查询索引,在第一查询索引TSet中,包括多个关键词(Keyword)W1、W2、W3、W4,以及包括每个关键词的全部目标文件,例如,包括关键词W1的全部目标文件为Doc2和Doc4,包括关键词W2的全部目标文件为Doc1和Doc3、包括关键词W3的全部目标文件为Doc3、Doc2和Doc5、包括关键词W4的全部目标文件为Doc3和Doc4。在第二查询索引XSet中,包括多个目标文件以及该目标文件包括的全部关键词,例如,目标文件Doc1包括关键词W2,目标文件Doc2包括关键词W1和W3,目标文件Doc3包括关键词W2、W3和W4,目标文件Doc4包括关键词W1和W4,目标文件Doc5包括关键词W3。
具体地,数据拥有者通过如下步骤建立查询索引:输入数据库DB(ind,Wind)以及密钥skO={KX,KI,KO_z,KO_T,KS},通过伪随机函数以及单向函数对关键词信息以及文件信息性加密处理,得到查询索引和加密后的目标文件,其中,ind表示文件标识,Wind表示该文件标识ind对应的文件的关键词:
首先对DB中的文件标识进行加密处理,计算得到xind←FDDH(KI,ind),其中xind表示加密后的文件标识;
然后根据文件标识ind得到文件集合DB(ind),针对文件集合DB(ind)中每个关键词w计算stag(w)←HLSH(w)·FDDH(KO_T,r),其中,stag(w)表示第一查询索引TSet中的索引内容,HLSH(w)表示p-stable的位置敏感函数,FDDH(KO_T,r)表示伪随机函数,·表示乘法,r表示系统公开参数;
然后完成第一查询索引TSet的具体设计,TSet是一个数组结构,每一项为关键词对应的文件列表(e,y),其中e表示根据下面公式计算得到的值,y表示根据下面公式计算得到的值,(e,y)的结构如下:
其中,zO←HLSH(w)·FDDH(KO_z,r),Enc()为常用的对称加密方案,将计算得到的(e,y)添加到对应的T[stag(w)]中,从而形成TSet,其中T[stag(w)]表示存储(e,y)的一个集合。
然后继续设计第二查询索引XSet。针对DB中的每一组(ind,w),w∈Wind,计算关联关键词与文件标识的数据xtag←gH LSH (w)·xind,其中gH LSH (w)·xind表示计算方式,HLSH (w)表示p-stable的位置敏感函数,并将xtag作为XSet中的数据内容。
进一步地,根据本发明的一个实施例,根据查询的关键词生成查询条件进一步包括,
将多个所述关键词进行排序,将排序后的多个所述关键词作为所述查询条件。
在本发明实施例中,查询条件可以为Q={W1^W2^…^Wq},其中W1、W2至Wq表示关键词,^表示逻辑运算关系中的与运算,在查询时,按照查询条件中的关键词顺序在查询索引中进行查找。
具体地,数据使用者使用密钥skU={KU_T,KU_z}通过以下步骤完成查询索引的建立:
首先,对于W1,计算TSet中的索引内容stagU←HLSH(W1)·FDDH(KU_T,r),并计算后续查询需要的变量zU←HLSH(W1)·FDDH(KU_z,r)。
然后,对于W2...Wq,计算查询XSet所需的变量xtokenU[i-2]←gZ U ·H LSH (Wi)。
最后,数据使用者将计算得到的Token←(stagU,xtokenU)发送给存储服务方。
进一步地,根据本发明的一个实施例,利用所述查询条件中重加密后的所述关键词在所述查询索引中进行查找,得到与所述关键词对应的加密后的目标文件查询条件进一步包括,
利用所述查询条件中重加密后的第一个所述关键词在所述第一查询索引中进行查找,得到与该重加密后的关键词对应的多个加密后的目标文件,将得到的多个加密后的目标文件作为第一查询结果;
根据所述第一查询结果中的多个加密后的目标文件在所述第二查询索引中进行查询,得到每个加密后的目标文件所包含的重加密后的所述关键词,将每个加密后的目标文件所包含的重加密后的所述关键词作为第二查询结果;
分别将第二查询结果中的每一个加密后的目标文件包含的重加密后的所述关键词与所述查询条件中除第一个重加密后的关键词之外的其它重加密后的关键词进行匹配,将匹配的加密后的目标文件作为最终的查询结果。
示例性地,以图10所示的查询索引以及查询条件Q={W1^W3}为例,首先利用关键词W1在第一查询索引TSet中进行查找,得到包括关键词W1的全部目标文件Doc2和Doc4;然后在第二查询索引XSet中进行查找,首先得到目标文件Doc2包括的全部关键词W1和W3,得到目标文件Doc4包括的全部关键词W1和W4,然后匹配查询条件中的关键词W3,得到匹配后的目标文件Doc2。可以理解为,通过上述查询方法,避免了在全部的目标文件中进行关键词的查找,从而在一定程度上减小了查询的计算量,提高了查询效率。
具体地,该查询过程主要分为两部分,包括索引的重加密操作以及查询计算过程:
首先,存储服务方根据用户的访问权限,利用对应的重加密密钥skRe={KRe_T,KRe_z}对数据使用者上传的查询内容进行重加密处理,如下所示:
然后根据处理后的(stag,xtoken)进行查询:
首先根据stag确定含有关键词W1的文件集合T[stag(W1)]。
然后根据查询项xtoken与T[stag(W1)]中的y计算xtoken[i]y,判断xtoken[i]y与xtag是否相等。
如果对于所有xtoken,xtoken[i]y均属于XSet,则判定文件中包含查询中的所有关键词。数据使用者将对应e值作为查询结果返回给数据使用者,其中,e表示查询结果。
数据使用者根据W1计算得到FDDH(KS,HLSH(W1)),解密e值即可获得对应文件标识。
另一方面,本发明实施例还提供了一种非密钥共享的加密数据查询装置,如图6所示,包括,
密钥生成单元601,用于根据用户权限确定数据拥有者和数据使用者,并生成所述数据拥有者对应的第一密钥、数据使用者对应的第二密钥以及存储服务方对应的第一重加密密钥和第二重加密密钥;
密钥发送单元602,用于将所述第一密钥发送给所述数据拥有者,以使所述数据拥有者在向所述存储服务方上传目标文件时,根据所述目标文件的内容提取所述目标文件的关键词,并生成查询索引,利用数据拥有者的特定密钥对所述目标文件进行加密,利用第一密钥对所述查询索引中的关键词进行加密,将加密后的所述目标文件以及所述查询索引发送给所述存储服务方;将所述第二密钥发送给所述数据使用者,以使所述数据使用者在向所述存储服务方查询所述目标文件时,根据查询的所述关键词生成查询条件,并利用所述第二密钥对所述查询条件中的所述关键词进行加密,将所述查询条件发送给所述存储服务方;将所述第一重加密密钥、第二重加密密钥发送给所述存储服务方,以使所述存储服务方利用所述第一重加密密钥对所述查询索引中的加密后的所述关键词进行重加密,并在接收到所述查询条件后,利用所述第二重加密密钥对所述查询条件中的加密后的所述关键词进行重加密,所述查询条件中重加密后的所述关键词与所述查询索引中重加密后的关键词对应,利用所述查询条件中重加密后的所述关键词在所述查询索引中进行查找,得到与所述关键词对应的加密后的目标文件,将查找到的加密后的所述目标文件发送给所述数据使用者,以使所述数据使用者利用与所述特定密钥对应的密钥对加密后的所述目标文件进行解密,完成查询。
另一方面,本发明实施例还提供了一种非密钥共享的加密数据查询装置,如图7所示,包括,
第一密钥接收单元701,用于接收密钥生成中心发送的第一密钥;
第一关键词提取单元702,用于根据目标文件内容提取所述目标文件的第一关键词;
查询索引生成单元703,用于根据所述关键词生成所述目标文件的查询索引;
加密单元704,用于利用所述密钥对所述查询索引中的关键词进行加密,利用所述数据拥有者的特定密钥对所述目标文件进行加密;
加密文件发送单元705,用于将加密后的所述目标文件以及加密后的所述查询索引发送给存储服务方,以使所述存储服务方利用数据使用者查询的所述关键词在所述查询索引中进行查找,得到与所述关键词对应的加密后的目标文件。
另一方面,本发明实施例还提供了一种非密钥共享的加密数据查询装置,如图8所示,包括,
第二密钥接收单元801,用于接收密钥生成中心发送的第二密钥;
查询条件生成单元802,用于根据查询的关键词生成查询条件;
加密单元803,用于利用所述第二密钥对所述查询条件中的所述关键词进行加密;
加密查询条件发送单元804,用于将所述查询条件发送给存储服务方,以使所述存储服务方利用所述查询条件在数据拥有者发送的查询索引中进行查找,得到与所述关键词对应的加密后的目标文件;
目标文件接收单元805,用于接收所述存储服务方发送的加密后的目标文件;
目标文件解密单元806,用于利用与数据拥有者的特定密钥对应的密钥对所述加密后的目标文件进行解密,完成查询,所述加密后的目标文件是所述数据拥有者利用所述特定密钥对所述目标文件进行加密后得到的。
另一方面,本发明实施例还提供了一种非密钥共享的加密数据查询装置,如图9所示,包括,
密钥接收单元901,用于接收密钥生成中心发送的第一重加密密钥和第二重加密密钥;
目标数据接收单元902,用于接收数据拥有者发送的加密后的查询索引以及加密后的目标数据,并利用所述第一重加密密钥对的所述查询索引中加密后的关键词进行重加密,所述查询索引是数据拥有者根据所述关键词生成的;
查询条件接收单元903,用于在接收到数据使用者发送的查询条件后,利用所述第二重加密密钥对所述查询条件中加密后的所述关键词进行重加密,所述查询条件是所述数据使用者根据查询的所述关键词生成的,所述查询条件中重加密后的所述关键词与所述查询索引中重加密后的所述关键词对应;
查询单元904,用于利用所述查询条件中重加密后的所述关键词在所述查询索引中进行查找,得到与所述关键词对应的加密后的目标文件;
查询结果发送单元905,用于将查找到的加密后的所述目标文件发送给所述数据使用者。
由于上述装置解决问题的原理与上述方法相似,因此上述装置的实施可以参见上述方法的实施,重复之处不再赘述。
另一方面,本发明实施例还提供了一种非密钥共享的加密数据查询系统,包括密钥生成中心、数据拥有者、数据使用者以及存储服务方。图11所示为本发明实施例非密钥共享的加密数据查询系统的数据流图,具体地,可以包括如下步骤:
步骤1101:密钥生成中心生成密钥;
在本步骤中,密钥生成中心根据用户权限确定数据拥有者和数据使用者,并生成数据拥有者对应的第一密钥、数据使用者对应的第二密钥以及存储服务方对应的第一重加密密钥和第二重加密密钥。
步骤1102:密钥生成中心将第一密钥发送给数据拥有者;
步骤1103:密钥生成中心将第二密钥发送给数据使用者;
步骤1104:密钥生成中心将第一重加密密钥、第二重加密密钥发送给存储服务方;
步骤1105:数据拥有者根据关键词生成目标文件的查询索引;
在本步骤中,关键词是数据拥有者根据目标文件的内容提取到的。
步骤1106:数据拥有者利用密钥对所述查询索引中的关键词进行加密;
步骤1107:数据拥有者将加密后的目标文件以及加密后的所述查询索引发送给存储服务方;
步骤1108:存储服务方利用第一重加密密钥对的查询索引中加密后的关键词进行重加密;
步骤1109:数据使用者根据查询的关键词生成查询条件;
步骤1110:数据使用者利用第二密钥对查询条件中的关键词进行加密;
步骤1111:数据使用者将查询条件发送给存储服务方;
步骤1112:存储服务方利用第二重加密密钥对查询条件中加密后的所述关键词进行重加密;
步骤1113:存储服务方利用查询条件中重加密后的关键词在查询索引中进行查找,得到与关键词对应的加密后的目标文件;
步骤1114:将查找到的加密后的目标文件发送给数据使用者。
如图12所示为本文实施例计算机设备的结构示意图,本文中的装置可以为本实施例中的计算机设备,执行上述本文的方法。计算机设备1202可以包括一个或多个处理设备1204,诸如一个或多个中央处理单元(CPU),每个处理单元可以实现一个或多个硬件线程。计算机设备1202还可以包括任何存储资源1206,其用于存储诸如代码、设置、数据等之类的任何种类的信息。非限制性的,比如,存储资源1206可以包括以下任一项或多种组合:任何类型的RAM,任何类型的ROM,闪存设备,硬盘,光盘等。更一般地,任何存储资源都可以使用任何技术来存储信息。进一步地,任何存储资源可以提供信息的易失性或非易失性保留。进一步地,任何存储资源可以表示计算机设备1202的固定或可移除部件。在一种情况下,当处理设备1204执行被存储在任何存储资源或存储资源的组合中的相关联的指令时,计算机设备1202可以执行相关联指令的任一操作。计算机设备1202还包括用于与任何存储资源交互的一个或多个驱动机构1208,诸如硬盘驱动机构、光盘驱动机构等。
计算机设备1202还可以包括输入/输出模块1210(I/O),其用于接收各种输入(经由输入设备1212)和用于提供各种输出(经由输出设备1214)。一个具体输出机构可以包括呈现设备1216和相关联的图形用户接口(GUI)1218。在其他实施例中,还可以不包括输入/输出模块1210(I/O)、输入设备1212以及输出设备1214,仅作为网络中的一台计算机设备。计算机设备1202还可以包括一个或多个网络接口1220,其用于经由一个或多个通信链路1222与其他设备交换数据。一个或多个通信总线1224将上文所描述的部件耦合在一起。
通信链路1222可以以任何方式实现,例如,通过局域网、广域网(例如,因特网)、点对点连接等、或其任何组合。通信链路1222可以包括由任何协议或协议组合支配的硬连线链路、无线链路、路由器、网关功能、名称服务器等的任何组合。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述方法。
本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述方法。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (17)
1.一种非密钥共享的加密数据查询方法,其特征在于,由密钥生成中心执行,所述方法包括,
根据用户权限确定数据拥有者和数据使用者,并生成所述数据拥有者对应的第一密钥、数据使用者对应的第二密钥以及存储服务方对应的第一重加密密钥和第二重加密密钥;
将所述第一密钥发送给所述数据拥有者,以使所述数据拥有者在向所述存储服务方上传目标文件时,根据所述目标文件的内容提取所述目标文件的关键词,并生成查询索引,利用数据拥有者的特定密钥对所述目标文件进行加密,利用第一密钥对所述查询索引中的关键词进行加密,将加密后的所述目标文件以及所述查询索引发送给所述存储服务方;
将所述第二密钥发送给所述数据使用者,以使所述数据使用者在向所述存储服务方查询所述目标文件时,根据查询的所述关键词生成查询条件,并利用所述第二密钥对所述查询条件中的所述关键词进行加密,将所述查询条件发送给所述存储服务方;
将所述第一重加密密钥、第二重加密密钥发送给所述存储服务方,以使所述存储服务方利用所述第一重加密密钥对所述查询索引中的加密后的所述关键词进行重加密,并在接收到所述查询条件后,利用所述第二重加密密钥对所述查询条件中的加密后的所述关键词进行重加密,所述查询条件中重加密后的所述关键词与所述查询索引中重加密后的关键词对应,利用所述查询条件中重加密后的所述关键词在所述查询索引中进行查找,得到与所述关键词对应的加密后的目标文件,将查找到的加密后的所述目标文件发送给所述数据使用者,以使所述数据使用者利用与所述特定密钥对应的密钥对加密后的所述目标文件进行解密,完成查询。
2.根据权利要求1所述的方法,其特征在于,生成所述第一密钥、第二密钥、第一重加密密钥和第二重加密密钥的步骤包括,
首先定义一个素数阶q的有限循环群G,设HF:x→G为一个哈希函数并定义为随机预言机,其中HF表示哈希函数,x表示函数输入,G表示函数输出,→表示输出过程;
将FDDH:Zq×x→G定义为FDDH(k,x)←HF(x)k,其中,FDDH(k,x)表示一个函数,Zq表示整数,k表示整数;
设定HLSH:Rd→N是p-stable的位置敏感函数,其中p-stable是局部敏感哈希算法,其中,HLSH表示p-stable的位置敏感函数,Rd表示d维特征向量,N表示整数集;
密钥生成中心根据HF:x→G、FDDH:Zq×x→G、HLSH:Rd→N生成数据拥有者的密钥skO={KX,KI,KO_z,KO_T,KS},其中{KX,KI,KO_z,KO_T,KS}整个集合表示数据拥有者的主密钥;
并根据KO_z为数据拥有者分发索引生成第一密钥KU_z,为存储服务方分发第一重加密密钥KRE_z,满足KO_z=KU_z+KRE_z,其中+表示加法;
同时根据KO_T为数据使用者分发索引生成第二秘钥KU_T,为存储服务方分发第二重加密密钥KRE_T,满足KO_T=KU_T+KRE_T;
数据使用者的密钥为skU={KU_z,KU_T,KS};存储服务方的密钥为skRe={KRE_z,KRE_T}。
3.一种非密钥共享的加密数据查询装置,其特征在于,包括,
密钥生成单元,用于根据用户权限确定数据拥有者和数据使用者,并生成所述数据拥有者对应的第一密钥、数据使用者对应的第二密钥以及存储服务方对应的第一重加密密钥和第二重加密密钥;
密钥发送单元,用于将所述第一密钥发送给所述数据拥有者,以使所述数据拥有者在向所述存储服务方上传目标文件时,根据所述目标文件的内容提取所述目标文件的关键词,并生成查询索引,利用数据拥有者的特定密钥对所述目标文件进行加密,利用第一密钥对所述查询索引中的关键词进行加密,将加密后的所述目标文件以及所述查询索引发送给所述存储服务方;将所述第二密钥发送给所述数据使用者,以使所述数据使用者在向所述存储服务方查询所述目标文件时,根据查询的所述关键词生成查询条件,并利用所述第二密钥对所述查询条件中的所述关键词进行加密,将所述查询条件发送给所述存储服务方;将所述第一重加密密钥、第二重加密密钥发送给所述存储服务方,以使所述存储服务方利用所述第一重加密密钥对所述查询索引中的加密后的所述关键词进行重加密,并在接收到所述查询条件后,利用所述第二重加密密钥对所述查询条件中的加密后的所述关键词进行重加密,所述查询条件中重加密后的所述关键词与所述查询索引中重加密后的关键词对应,利用所述查询条件中重加密后的所述关键词在所述查询索引中进行查找,得到与所述关键词对应的加密后的目标文件,将查找到的加密后的所述目标文件发送给所述数据使用者,以使所述数据使用者利用与所述特定密钥对应的密钥对加密后的所述目标文件进行解密,完成查询。
4.一种非密钥共享的加密数据查询方法,其特征在于,由数据拥有者执行,所述方法包括,
接收密钥生成中心发送的第一密钥;
根据目标文件内容提取所述目标文件的关键词;
根据所述关键词生成所述目标文件的查询索引;
利用所述密钥对所述查询索引中的关键词进行加密;
利用所述数据拥有者的特定密钥对所述目标文件进行加密;
将加密后的所述目标文件以及加密后的所述查询索引发送给存储服务方,以使所述存储服务方利用数据使用者查询的所述关键词在所述查询索引中进行查找,得到与所述关键词对应的加密后的目标文件。
5.根据权利要求4所述的方法,其特征在于,根据所述关键词生成所述目标文件的查询索引进一步包括,
构建所述关键词和包括该关键词的全部目标文件的索引关系,得到第一查询索引;
根据所述目标文件和该目标文件包含的全部关键词的索引关系,得到第二查询索引;
将所述第一查询索引和第二查询索引作为所述查询索引。
6.一种非密钥共享的加密数据查询装置,其特征在于,包括,
第一密钥接收单元,用于接收密钥生成中心发送的第一密钥;
第一关键词提取单元,用于根据目标文件内容提取所述目标文件的第一关键词;
查询索引生成单元,用于根据所述关键词生成所述目标文件的查询索引;
加密单元,用于利用所述密钥对所述查询索引中的关键词进行加密,利用所述数据拥有者的特定密钥对所述目标文件进行加密;
加密文件发送单元,用于将加密后的所述目标文件以及加密后的所述查询索引发送给存储服务方,以使所述存储服务方利用数据使用者查询的所述关键词在所述查询索引中进行查找,得到与所述关键词对应的加密后的目标文件。
7.一种非密钥共享的加密数据查询方法,其特征在于,由数据使用者执行,所述方法包括,
接收密钥生成中心发送的第二密钥;
根据查询的关键词生成查询条件;
利用所述第二密钥对所述查询条件中的所述关键词进行加密;
将所述查询条件发送给存储服务方,以使所述存储服务方利用所述查询条件在数据拥有者发送的查询索引中进行查找,得到与所述关键词对应的加密后的目标文件;
接收所述存储服务方发送的加密后的目标文件;
利用与数据拥有者的特定密钥对应的密钥对所述加密后的目标文件进行解密,完成查询,所述加密后的目标文件是所述数据拥有者利用所述特定密钥对所述目标文件进行加密后得到的。
8.根据权利要求7所述的方法,其特征在于,根据查询的关键词生成查询条件进一步包括,
将多个所述关键词进行排序,将排序后的多个所述关键词作为所述查询条件。
9.一种非密钥共享的加密数据查询装置,其特征在于,包括,
第二密钥接收单元,用于接收密钥生成中心发送的第二密钥;
查询条件生成单元,用于根据查询的关键词生成查询条件;
加密单元,用于利用所述第二密钥对所述查询条件中的所述关键词进行加密;
加密查询条件发送单元,用于将所述查询条件发送给存储服务方,以使所述存储服务方利用所述查询条件在数据拥有者发送的查询索引中进行查找,得到与所述关键词对应的加密后的目标文件;
目标文件接收单元,用于接收所述存储服务方发送的加密后的目标文件;
目标文件解密单元,用于利用与数据拥有者的特定密钥对应的密钥对所述加密后的目标文件进行解密,完成查询,所述加密后的目标文件是所述数据拥有者利用所述特定密钥对所述目标文件进行加密后得到的。
10.一种非密钥共享的加密数据查询方法,其特征在于,由存储服务方执行,所述方法包括,
接收密钥生成中心发送的第一重加密密钥和第二重加密密钥;
接收数据拥有者发送的加密后的查询索引以及加密后的目标数据,并利用所述第一重加密密钥对的所述查询索引中加密后的关键词进行重加密,所述查询索引是数据拥有者根据所述关键词生成的;
在接收到数据使用者发送的查询条件后,利用所述第二重加密密钥对所述查询条件中加密后的所述关键词进行重加密,所述查询条件是所述数据使用者根据查询的所述关键词生成的,所述查询条件中重加密后的所述关键词与所述查询索引中重加密后的所述关键词对应;
利用所述查询条件中重加密后的所述关键词在所述查询索引中进行查找,得到与所述关键词对应的加密后的目标文件;
将查找到的加密后的所述目标文件发送给所述数据使用者。
11.根据权利要求10所述的方法,其特征在于,所述查询索引包括第一查询索引和第二查询索引;
所述第一查询索引包括所述关键词和包括该关键词的全部目标文件的索引关系;
所述第二查询索引包括所述目标文件和该目标文件包含的全部关键词的索引关系;
所述查询条件包括排序后的多个所述关键词。
12.根据权利要求11所述的方法,其特征在于,利用所述查询条件中重加密后的所述关键词在所述查询索引中进行查找,得到与所述关键词对应的加密后的目标文件查询条件进一步包括,
利用所述查询条件中重加密后的第一个所述关键词在所述第一查询索引中进行查找,得到与该重加密后的关键词对应的多个加密后的目标文件,将得到的多个加密后的目标文件作为第一查询结果;
根据所述第一查询结果中的多个加密后的目标文件在所述第二查询索引中进行查询,得到每个加密后的目标文件所包含的重加密后的所述关键词,将每个加密后的目标文件所包含的重加密后的所述关键词作为第二查询结果;
分别将第二查询结果中的每一个加密后的目标文件包含的重加密后的所述关键词与所述查询条件中除第一个重加密后的关键词之外的其它重加密后的关键词进行匹配,将匹配的加密后的目标文件作为最终的查询结果。
13.一种非密钥共享的加密数据查询装置,其特征在于,包括,
密钥接收单元,用于接收密钥生成中心发送的第一重加密密钥和第二重加密密钥;
目标数据接收单元,用于接收数据拥有者发送的加密后的查询索引以及加密后的目标数据,并利用所述第一重加密密钥对的所述查询索引中加密后的关键词进行重加密,所述查询索引是数据拥有者根据所述关键词生成的;
查询条件接收单元,用于在接收到数据使用者发送的查询条件后,利用所述第二重加密密钥对所述查询条件中加密后的所述关键词进行重加密,所述查询条件是所述数据使用者根据查询的所述关键词生成的,所述查询条件中重加密后的所述关键词与所述查询索引中重加密后的所述关键词对应;
查询单元,用于利用所述查询条件中重加密后的所述关键词在所述查询索引中进行查找,得到与所述关键词对应的加密后的目标文件;
查询结果发送单元,用于将查找到的加密后的所述目标文件发送给所述数据使用者。
14.一种非密钥共享的加密数据查询系统,其特征在于,包括密钥生成中心、数据拥有者、数据使用者以及存储服务方;
所述密钥生成中心在进行非密钥共享的加密数据查询时,执行如权利要求1至2任一所述的方法;
所述数据拥有者在进行非密钥共享的加密数据查询时,执行如权利要求4至5任一所述的方法;
所述数据使用者在进行非密钥共享的加密数据查询时,执行如权利要求7至8任一所述的方法;
所述存储服务方在进行非密钥共享的加密数据查询时,执行如权利要求10至12任一所述的方法。
15.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至2、4至5、7至8、10至12任一所述方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至2、4至5、7至8、10至12任一所述方法。
17.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现权利要求1至2、4至5、7至8、10至12任一所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211233484.5A CN115510490A (zh) | 2022-10-10 | 2022-10-10 | 一种非密钥共享的加密数据查询方法、装置、系统及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211233484.5A CN115510490A (zh) | 2022-10-10 | 2022-10-10 | 一种非密钥共享的加密数据查询方法、装置、系统及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115510490A true CN115510490A (zh) | 2022-12-23 |
Family
ID=84508228
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211233484.5A Pending CN115510490A (zh) | 2022-10-10 | 2022-10-10 | 一种非密钥共享的加密数据查询方法、装置、系统及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115510490A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116150445A (zh) * | 2023-04-04 | 2023-05-23 | 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) | 一种批量信息查询方法及电子设备、存储介质 |
-
2022
- 2022-10-10 CN CN202211233484.5A patent/CN115510490A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116150445A (zh) * | 2023-04-04 | 2023-05-23 | 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) | 一种批量信息查询方法及电子设备、存储介质 |
CN116150445B (zh) * | 2023-04-04 | 2023-07-21 | 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) | 一种批量信息查询方法及电子设备、存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109784931B (zh) | 一种基于区块链的数据查询平台的查询方法 | |
Salam et al. | Implementation of searchable symmetric encryption for privacy-preserving keyword search on cloud storage | |
Pandiaraja et al. | A novel data privacy-preserving protocol for multi-data users by using genetic algorithm | |
Liu et al. | An efficient privacy-preserving outsourced computation over public data | |
CN111026788B (zh) | 一种混合云中基于同态加密的多关键词密文排序检索方法 | |
CN108111587B (zh) | 一种基于时间释放的云存储搜索方法 | |
JP2014002365A (ja) | プライバシーを保護することができる暗号化データの問い合わせ方法及びシステム | |
CN109361644B (zh) | 一种支持快速搜索和解密的模糊属性基加密方法 | |
CN112800445B (zh) | 一种用于密文数据的前后向安全和可验证的布尔查询方法 | |
JP6770075B2 (ja) | 暗号化メッセージ検索方法、メッセージ送受信システム、端末、プログラム | |
WO2019090841A1 (zh) | 一种加密文件的检索方法、系统、终端设备及存储介质 | |
CN103873236A (zh) | 一种可搜索加密方法及设备 | |
Pitchai et al. | Searchable encrypted data file sharing method using public cloud service for secure storage in cloud computing | |
EP4020265A1 (en) | Method and device for storing encrypted data | |
Sun et al. | Research on logistics information blockchain data query algorithm based on searchable encryption | |
US10733317B2 (en) | Searchable encryption processing system | |
EP2942899B1 (en) | Information processing method, trust server and cloud server | |
CN110175169A (zh) | 一种加密数据去重方法、系统及相关装置 | |
CN114528331A (zh) | 基于区块链的数据查询方法及装置、介质、设备 | |
KR101697868B1 (ko) | 공유 또는 검색을 위한 데이터 암호화 방법 및 이를 수행하는 장치 | |
Sandhia et al. | Secure sharing of data in cloud using MA-CPABE with elliptic curve cryptography | |
CN115510490A (zh) | 一种非密钥共享的加密数据查询方法、装置、系统及设备 | |
CN113630250A (zh) | 基于数据加密的模型训练方法及系统 | |
CN109672525B (zh) | 一种具有前向索引的可搜索公钥加密方法及系统 | |
CN108920968B (zh) | 一种基于连接关键词的文件可搜索加密方法 |
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 |