CN108632248A - 数据加密方法、数据查询方法、装置、设备及存储介质 - Google Patents

数据加密方法、数据查询方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN108632248A
CN108632248A CN201810239555.XA CN201810239555A CN108632248A CN 108632248 A CN108632248 A CN 108632248A CN 201810239555 A CN201810239555 A CN 201810239555A CN 108632248 A CN108632248 A CN 108632248A
Authority
CN
China
Prior art keywords
file
secret key
random
target
data
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.)
Granted
Application number
CN201810239555.XA
Other languages
English (en)
Other versions
CN108632248B (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.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen Co Ltd
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 Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN201810239555.XA priority Critical patent/CN108632248B/zh
Priority to PCT/CN2018/091912 priority patent/WO2019178958A1/zh
Publication of CN108632248A publication Critical patent/CN108632248A/zh
Application granted granted Critical
Publication of CN108632248B publication Critical patent/CN108632248B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network 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
    • H04L63/0442Network 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 wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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
    • G06F21/6227Protecting 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network 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
    • H04L63/0478Network 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 applying multiple layers of encryption, e.g. nested tunnels or encrypting the content with a first key and then with at least a second key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/009Security arrangements; Authentication; Protecting privacy or anonymity specially adapted for networks, e.g. wireless sensor networks, ad-hoc networks, RFID networks or cloud networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Power Engineering (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开一种数据加密方法、数据查询方法、装置、设备及存储介质。该数据加密方法包括:获取明文文件的明文关键词,基于所述明文关键词采用局部敏感哈希函数建立所述明文文件的文件索引;获取秘钥管理中心发送的第一随机用户秘钥;采用第一随机用户秘钥分别加密所述明文文件和所述文件索引,获取加密文件和加密索引;将所述加密文件和所述加密索引发送至服务器端,以指示服务器端采用由秘钥管理中心发送的第一随机服务器端秘钥对所述加密文件进行加密,形成密文文件;其中,所述第一随机用户秘钥和所述第一随机服务器端秘钥相关联。该数据加密方法降低了系统存储压力,并提高了数据的安全性。

Description

数据加密方法、数据查询方法、装置、设备及存储介质
技术领域
本发明涉及数据处理领域,尤其涉及一种数据加密方法、数据查询方法、装置、设备及存储介质。
背景技术
随着云计算技术的发展,越来越多的企业和个人选择将数据借助云服务器端进行存储和管理。基于安全考虑,在上传到云服务器端之前,用户会选择对数据进行加密处理。然而,加密后的数据会给数据的检索带来困难,使得数据查询过程效率不高。当前云服务器端主要采用模糊搜索算法对存储在云服务器端的数据进行查询,这种模糊搜索算法主要依赖于建立一个可以扩展的关键词集作为索引,该关键词集包含了所有用户可能拼写错误的关键词,这就不可避免地使文件索引的大小变得非常巨大,增加了系统的存储开销。
发明内容
本发明实施例提供一种数据加密方法、装置、设备及储存介质,以解决在数据加密中占据过多系统存储空间的问题。
本发明实施例提供一种数据查询方法、装置、设备及储存介质,以解决数据查询效率不高的问题。
第一方面,本发明实施例提供一种数据加密方法,包括数据拥有端执行的如下步骤:
获取明文文件的明文关键词,基于所述明文关键词采用局部敏感哈希函数建立所述明文文件的文件索引;
获取秘钥管理中心发送的第一随机用户秘钥;
采用第一随机用户秘钥分别加密所述明文文件和所述文件索引,获取加密文件和加密索引;
将所述加密文件和所述加密索引发送至服务器端,以指示服务器端采用由秘钥管理中心发送的第一随机服务器端秘钥对所述加密文件进行加密,形成密文文件;
其中,所述第一随机用户秘钥和所述第一随机服务器端秘钥相关联。
第二方面,本发明实施例提供一种数据加密装置,包括:
文件索引建立模块,用于获取明文文件的明文关键词,基于所述明文关键词采用局部敏感哈希函数建立所述明文文件的文件索引;
第一随机用户秘钥获取模块,用于获取秘钥管理中心发送的第一随机用户秘钥;
加密文件和加密索引获取模块,用于采用第一随机用户秘钥分别加密所述明文文件和所述文件索引,获取加密文件和加密索引;
加密文件和加密索引发送模块,用于将所述加密文件和所述加密索引发送至服务器端,以指示服务器端采用由秘钥管理中心发送的第一随机服务器端秘钥对所述加密文件进行加密,形成密文文件,其中第一随机用户秘钥和第一随机服务器端秘钥相关联。
第三方面,本发明实施例提供一种数据查询方法,包括服务器端执行的如下步骤:
获取查询关键词,采用局部敏感哈希函数对所述查询关键词进行处理,以形成查询陷门;
基于所述查询关键词和所述查询陷门,将与查询陷门匹配成功的加密索引作为目标加密索引;
基于目标加密索引,将与所述目标加密索引相对应的密文文件确定为目标密文文件;其中,所述密文文件是采用秘钥管理中心发送的第一随机服务器端秘钥对数据拥有端发送的加密文件进行加密后形成的;
获取秘钥管理中心发送的第二随机服务器端秘钥;
基于所述第二随机服务器端秘钥,对目标密文文件进行解密,获取目标加密文件;
将所述目标加密文件发送至授权用户端,以指示所述授权用户端采用由秘钥管理中心发送的第二随机用户秘钥对所述目标加密文件进行解密,获取对应的明文文件;
其中,所述第二随机用户秘钥和所述第二随机服务器端秘钥相关联。
第四方面,本发明实施例提供一种数据查询装置,包括:
查询陷门获取模块,用于获取查询关键词,采用局部敏感哈希函数对所述查询关键词进行处理,以形成查询陷门;
目标加密索引获取模块,用于基于所述查询关键词和所述查询陷门,将与查询陷门匹配成功的加密索引作为目标加密索引;
目标密文文件获取模块,用于基于目标加密索引,将与所述目标加密索引相对应的密文文件确定为目标密文文件;其中,所述密文文件是采用秘钥管理中心发送的第一随机服务器端秘钥对数据拥有端发送的加密文件进行加密后形成的;
第二随机服务器端秘钥获取模块,用于获取秘钥管理中心发送的第二随机服务器端秘钥;
目标加密文件获取模块,用于基于所述第二随机服务器端秘钥,对目标密文文件进行解密,获取目标加密文件;
目标加密文件发送模块,用于将所述目标加密文件发送至授权用户端,以指示所述授权用户端采用由秘钥管理中心发送的第二随机用户秘钥对所述目标加密文件进行解密,获取对应的明文文件,其中,所述第二随机用户秘钥和所述第二随机服务器端秘钥相关联。
本发明第五方面提供一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本发明第一方面所述数据加密方法的步骤;或者,所述处理器执行所述计算机程序时实现如本发明第三方面所述数据查询方法的步骤。
本发明第六方面提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如本发明第一方面所述数据加密方法的步骤;或者,所述计算机程序被处理器执行时实现如本发明第三方面所述数据查询方法的步骤。
本发明实施例提供的数据加密方法、装置、设备及储存介质中,对明文文件的明文关键词通过局部敏感哈希进行哈希转换,形成文件索引,不需要扩展索引文件的大小,也不需要预先构建模糊关键词集,降低了系统存储压力以及后续查询的复杂性。并且明文文件在发送至服务器端时预先进行了加密,提高了数据的安全性。
本发明实施例提供的数据查询方法、装置、设备及储存介质中,采用局部敏感哈希函数对查询关键词进行处理,以形成查询陷门。并基于查询关键词和所述查询陷门得到对应的目标加密索引以定位到对应的目标密文文件,提高了数据查询的效率,降低了数据查询的复杂度。而且,通过服务器端和授权用户端对目标密文文件二次解密才可以获得对应的明文文件,提高了数据的安全性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中应用场景的一示意图;
图2是本发明实施例1中的数据加密方法的一流程图;
图3是图2中步骤S11的一具体实施方式的一流程图;
图4是图2中步骤S13的一具体实施方式的一流程图;
图5是本发明实施例2中的数据加密装置的一示意图;
图6是本发明实施例3中的数据查询方法的一流程图;
图7是图6中步骤S21的一具体实施方式的一流程图;
图8是图6中步骤S22的一具体实施方式的一流程图;
图9是本发明实施例4中的数据查询装置的一示意图;
图10是本发明实施例6中的计算机设备的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例1-实施例6应用在图1所示的应用场景中,该应用场景包括数据拥有端、秘钥管理中心、服务器端和授权用户端四个终端。其中数据拥有端是指拥有明文文件的终端。授权用户端是指获得授权可以在服务器端中进行数据查询的终端。密钥管理中心(KMC,Key Management Center)是公钥基础设施中的一个重要组成部分,负责为认证中心(CA,Certification Authority)系统提供密钥的生成、保存、备份、更新、恢复或查询等密钥服务,以解决分布式企业应用环境中大规模密码技术应用所带来的密钥管理问题。服务器端主要用于存储数据以及对数据进行加密和解密操作,以便与客户端进行信息交互,以使客户端可从服务器端获取相应的数据,该客户端包括但不限于与服务器端通信相连的PC机、智能手机等终端。
其中,数据拥有端、秘钥管理中心、服务器端和授权用户端间均可以进行数据交互。具体地,数据拥有端、秘钥管理中心、服务器端和数据授权端可以通过蓝牙、网络或本地连接的方式进行数据交互。
实施例1
图2示出本实施例中数据加密方法的流程图。该数据加密方法应用在各种终端中,以解决数据加密过程中占据过多系统存储空间的问题。如图2所示,该数据加密方法包括数据拥有端执行的如下步骤:
S11:获取明文文件的明文关键词,基于明文关键词采用局部敏感哈希函数建立明文文件的文件索引。
其中,明文文件是指未经加密的原始文件。局部敏感哈希(LSH,LocalitySensitive Hashing)函数是近似最近邻(ANN,Approximate Nearest Neighbor)搜索中的一种,用于衡量文本相似度。局部敏感哈希函数可以从海量的数据中挖掘出相似的数据,具体可以应用到文本相似度检测、网页搜索等领域。
数据拥有端中预先存储有需要上传给服务器端的明文文件,在数据拥有端将该明文文件上传给服务器端之前,需从明文文件中获取明文关键词,再基于明文关键词采用局部敏感哈希函数建立明文文件的文件索引。
在一个具体实施方式中,获取明文文件的明文关键词,基于明文关键词采用局部敏感哈希函数建立明文文件的文件索引,如图3所示,具体包括以下步骤:
S111:从明文文件中提取明文关键词,将明文关键词转化成明文关键词向量。
从明文文件中提取明文关键词可以采用textrank算法、rake算法、topic-model算法或TF-IDF算法来实现。具体地,数据拥有端从明文文件File={file1,file2,…,filen}中提取出明文关键词,并将明文关键词转化成明文关键词向量WD={w1,w2,…,wn},其中,File是指明文文件集合,filen是指明文文件集合中的每一明文文件元素,WD是明文关键词向量集合,wn是明文关键词向量集合中的每一明文关键词向量元素,而且,wi∈{0,1}26*26。具体地,将明文关键词转换成一个二元集合,由关键词中相邻的2个字符组成,例如关键词“network”的二元集合为{ne,et,tw,wo,or,rk}。我们使用一个长为26*26位的向量wi∈{0,1}26*26来表示所有可能的二元集合。每一个向量元素表示26*26个可能的2个字母组合中的一个。如果对应的元素值设置为1,表示相应的字母组合存在给定的关键词中。这种基于向量的关键词表示降低了拼写错位和字母拼错的敏感度。例如,采用“netword”、“nedwork”或者“netwosk”这些拼写方式对应的向量表示与原来“network”的向量只有2个元素的不同。使用这种表示,即使一个关键词可能会被误拼成很多形式,但是它们的向量表示都会很接近正确的那个,这个相似性可以使用欧氏距离来度量。可选地,也可以采用3或4个字母组合来表示关键词向量,主要取决于实际的模糊程度。
S112:采用p-stable局部敏感哈希函数将每一明文关键词向量进行哈希转换,获取对应的明文哈希值。
其中,p-stable局部敏感哈希函数是指应用到p-稳定分布(p-stabledistribution)中的局部敏感哈希函数。在这个步骤中,从p-stable局部敏感哈希函数群H={h:{0,1}26*26—>{0,1}m}}中选取l个独立的p-stable局部敏感哈希函数hi,l为一随机数。使用p-stable局部敏感哈希函数hi∈H将每一个明文关键词向量进行哈希转换,得到对应的明文哈希值。具体地,p-stable局部敏感哈希函数hi可以为:其中a是一个m维的向量,b∈[0,c]是一个实数,c是一个固定值,并且l与c的取值可以根据实际的m而确定。例如,当m=8000时,可以取l=30,c=4,通过该p-stable局部敏感哈希函数hi将每一明文关键词向量wi进行哈希转换,得到对应的明文哈希值。
S113:将每一明文哈希值插入到布隆过滤器进行过滤,得到文件索引。
其中,布隆过滤器(Bloom Filter)是由一个很长的二进制向量和一系列随机映射函数组成,布隆过滤器可以用于检索一个元素是否在一个集合中。具体地,为每一明文文件构造一个n位的布隆过滤器,并将布隆过滤器中的每一位初始化为0。将步骤S112中得到的明文哈希值插入到对应的布隆过滤器中,即可得到文件索引。
在这个实施方式中,先将明文关键词转换为明文关键词向量,再通过p-stable局部敏感哈希函数对明文关键词向量进行哈希转换再经布隆过滤器进行过滤,直接形成文件索引,不需要扩展索引文件的大小,也不需要预先构建模糊关键词集,降低了系统存储压力以及后续基于文件索引进行查询的复杂性,以提高数据查询的效率。
S12:获取秘钥管理中心发送的第一随机用户秘钥。
在该步骤中,数据拥有端获取从秘钥管理中心获取其发送的第一随机用户秘钥,以供后续对相关数据(明文文件和文件索引)进行加密。其中,第一随机用户秘钥是由密钥管理中心基于私钥生成并发送给数据拥有端的密钥。
在一个具体实施方式中,秘钥管理中心发送的第一随机用户秘钥在秘钥管理中心的初始化过程中生成。其中,秘钥管理中心的初始化包括以下步骤:
(1)数据拥有端发送安全参数k到秘钥管理中心,秘钥管理中心将安全参数k作为输入,输出一个循环群G、一个素数q和一个哈希映射函数f,其中,循环群G包括一个生成元g。
其中,循环群G是指:如果一个群G可以由元素g生成,即对任意b∈G,都存在a∈Z,使得b=ga,则称G=<g>是一个循环群,而g是循环群G的一个生成元。其中,Z表示全体素数q的所有剩余类构成的集合,该集合在素数q的加法下构成阶为q的交换群。安全参数k属于正整数,基于安全参数k,秘钥管理中心会选择一个k比特的素数q。此外,秘钥管理中心还会选择一个哈希映射函数f,该哈希映射函数f以任意长的比特串为输入,以循环群G上的元素为输出,即f:{0,1}*→G。
(2)从Zq*中选取一个随机数x,并计算h=gx,获取公钥PK=(G,g,q,h,f),私钥MSK=x。
其中,Zq *表示Zq中与q互素的剩余类构成的集合,即Zq *中的元素在同余意义下都是小于q且与q互素的正整数,因此,Zq *可以写作集合Zq *={1,2,…,q-1}。
该步骤中,通过从Zq *中选取一个随机数x作为私钥MSK=x,并在计算出h=gx之后,形成对应的公钥PK=(G,g,q,h,f)。
(3)对于数据拥有端i,秘钥管理中心从Zq *中随机选择一个数xi1,并计算xi2=x-xi1
(4)将xi1作为输入参数,获取SK=(M1,M2,S),其中M1,M2∈Rm*m为可逆矩阵,S∈{0,1}m为一个向量,其中xi1=m;由此得到第一随机用户秘钥Kui=(xi1,SK)和第一随机服务器端秘钥Ksi=(i,xi2)。
(5)秘钥管理中心将第一随机用户秘钥Kui=(xi1,SK)发送给数据拥有端i,将第一随机服务器端秘钥Ksi=(i,xi2)发送给服务器端。服务器端接收到Ksi=(i,xi2)后,就更新存储在服务器端中的第一随机用户-密钥映射关系Ks=Ks∪(i,xi2)。
在这个实施方式中,通过密钥管理中心初始化生成对应的密钥,提高了密钥生成的便利性,也保证了密钥的安全。
S13:采用第一随机用户秘钥分别加密明文文件和文件索引,获取加密文件和加密索引。
数据拥有端在获取到第一随机用户秘钥Kui之后,采用该第一随机用户秘钥Kui分别加密明文文件和文件索引,获取对应的加密文件和加密索引。
在一个具体实施方式中,采用第一随机用户秘钥分别加密明文文件和文件索引,获取加密文件和加密索引,如图4所示,步骤S13具体包括以下步骤:
S131:基于第一随机用户秘钥,采用ElGamal算法加密明文文件,获取加密文件。
其中,ElGamal算法是一种非对称加密算法,它是基于1985年提出的公钥密码体制和椭圆曲线加密体系,ElGamal算法既能用于数据加密,也能用于数字签名。
在该步骤中,数据拥有端基于第一随机用户秘钥Kui=(xi1,SK),采用ElGamal代理加密算法加密明文文件,获取加密文件:C(filei)=(gx,grxi1filei),其中,filei为数据拥有端i的明文文件。
S132:基于第一随机用户秘钥,采用哈希映射函数对第一随机用户秘钥进行处理,产生密钥KI
其中,哈希映射函数是秘钥管理中心生成的公钥中的哈希映射函数f,基于第一随机用户秘钥,采用哈希映射函数f产生密钥KI=f(xi1)。
S133:将文件索引ID按如下规则划分为两个索引向量{I′,I″}:对于每个元素ij∈ID,如果Sj∈S且Sj等于1,则设置ij′=ij″=ij;否则,ij′=1/2·ij+r,ij″=1/2·ij-r,其中,r为一随机数,S∈{0,1}m
在该步骤中,通过秘钥管理中心中的SK=(M1,M2,S)将文件索引ID划分为两个索引向量{I′,I″}。具体地,对于文件索引ID中的一个元素ij∈ID,先从S中获取对应的向量Sj,若Sj等于1,则划分元素ij为{ij′,ij″}。若Sj不等于1,则划分元素ij为{1/2·ij+r,1/2·ij-r},其中,r为一随机数,S∈{0,1}m
S134:基于密钥KI和两个索引向量{I′,I″}加密文件索引,获取加密索引:EncSK(ID)={M1 T·I′,M2 T·I″,Enc(KI,fidi)},其中,fidi为明文文件的文件ID,M1,M2∈Rm*m为可逆矩阵。
在将索引文件划分为两个索引向量之后,基于密钥KI和两个索引向量{I′,I″}加密文件索引,得到加密索引:EncSK(ID)={M1 T·I′,M2 T·I″,Enc(KI,fidi)}。
在一个实施方式中,Enc可以通过AES或者DES实现。其中,AES是指高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。而DES为密码体制中的对称密码体制,又被称为美国数据加密标准,是1972年美国IBM公司研制的对称密码体制加密算法。
在一个具体实施方式中,采用第一随机用户秘钥分别加密明文文件和文件索引,获取加密文件和加密索引(步骤S13)的步骤也可以在服务器端执行,即数据拥有端将索引文件发送至服务器端。此时,服务器从秘钥管理中心获取的第一随机服务器端秘钥为Ksi=(i,xi2,SK)。服务器端将文件索引ID按如下规则划分为两个索引向量{I′,I″}:对于每个元素ij∈ID,如果Sj∈S且Sj等于1,则设置ij′=ij″=ij;否则ij′=1/2·ij+r,ij″=1/2·ij-r,其中,r为一随机数,S∈{0,1}m。再对索引向量进行加密,获取加密索引:EncSK(ID)={M1 T·I′,M2 T·I″}。
在这个实施方式中,通过第一随机用户秘钥对明文文件和文件索引进行加密,提高了数据的安全性。
S14:将加密文件和加密索引发送至服务器端,以指示服务器端采用由秘钥管理中心发送的第一随机服务器端秘钥对加密文件进行加密,形成密文文件,其中,第一随机用户秘钥和第一随机服务器端秘钥相关联。
数据拥有端在获取到加密文件和加密索引后,将加密文件和加密索引发送至服务器端。如此,即使服务器端中的数据遭到窃取,由于服务器端缺少加密文件对应的解密秘钥,因此是没办法对该加密文件进行解密以得到对应的明文文件的,充分保证了数据的安全。在一个具体实施方式中,该步骤还包括将索引文件发送至服务器端。
服务器端在接收到数据拥有端发送的加密文件之后,会采用由秘钥管理中心发送的第一随机服务器端秘钥Ksi=(i,xi2)对加密文件进行加密,形成密文文件。具体地,服务器端先找到与数据拥有端i对应的第一随机服务器端密钥Ksi=(i,xi2),再基于xi2采用ElGamal算法对加密文件进行加密:
C*(filei)=(gx,(gr)xi2·grxi1·filei)=(gx,(gr)xi2+xi1·filei)=(gx,grx·filei);
因此,最终获得密文文件C*(filei)=(gx,grxfilei),其中,filei∈File。
在这个实施方式中,第一随机用户秘钥和第一随机服务器端秘钥是相关联的。具体地,第一随机用户秘钥Kui=(xi1,SK)中的xi1和第一随机服务器端秘钥Ksi=(i,xi2)中的xi2是通过私钥MSK=x相关联的:xi2=x-xi1
本实施例提供的数据加密方法中,先将明文文件的明文关键词转换成明文关键词向量,再通过局部敏感哈希对明文关键词向量进行哈希转换,形成文件索引,不需要扩展索引文件的大小,也不需要预先构建模糊关键词集,降低了系统存储压力以及后续的查询的复杂性。而且,明文文件在发送至服务器端时预先进行了加密,提高了数据的安全性。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
实施例2
图5示出与实施例1中数据加密方法一一对应的数据加密装置的原理框图。如图2所示,该数据加密装置包括文件索引建立模块11、第一随机用户秘钥获取模块12、加密文件和加密索引获取模块13和加密文件和加密索引发送模块14。其中,文件索引建立模块11、第一随机用户秘钥获取模块12、加密文件和加密索引获取模块13和加密文件和加密索引发送模块14的实现功能与实施例1中数据加密方法对应的步骤一一对应,为避免赘述,本实施例不一一详述。
文件索引建立模块11,用于获取明文文件的明文关键词,基于明文关键词采用局部敏感哈希算法建立明文文件的文件索引。
第一随机用户秘钥获取模块12,用于获取秘钥管理中心发送的第一随机用户秘钥。
加密文件和加密索引获取模块13,用于采用第一随机用户秘钥分别加密明文文件和文件索引,获取加密文件和加密索引。
加密文件和加密索引发送模块14,用于将加密文件和加密索引发送至服务器端,以指示服务器端采用由秘钥管理中心发送的第一随机服务器端秘钥对加密文件进行加密,形成密文文件,其中第一随机用户秘钥和第一随机服务器端秘钥相关联。
优选地,文件索引建立模块11包括明文关键词获取单元111、哈希转换单元112和文件索引获取单元113。
明文关键词获取单元111,用于从明文文件中提取明文关键词,将明文关键词转化成明文关键词向量。
哈希转换单元112,用于采用p-stable局部敏感哈希函数将每一明文关键词向量进行哈希转换,获取对应的明文哈希值。
文件索引获取单元113,用于将每一明文哈希值插入到布隆过滤器进行过滤,得到文件索引。
优选地,加密文件和加密索引获取模块13包括加密文件获取单元131、密钥KI产生单元132、索引向量划分单元133和加密索引获取单元134。
加密文件获取单元131,用于基于第一随机用户秘钥,采用ElGamal算法加密明文文件,获取加密文件。
密钥KI产生单元132,用于基于第一随机用户秘钥,采用哈希映射函数对第一随机用户秘钥进行处理,产生密钥KI
索引向量划分单元133,用于将文件索引ID按如下规则划分为两个索引向量{I′,I″}:对于每个元素ij∈ID,如果Sj∈S且Sj等于1,则设置ij′=ij″=ij;否则,ij′=1/2·ij+r,ij″=1/2·ij-r,其中,r为一随机数,S∈{0,1}m
加密索引获取单元134,用于基于密钥KI和两个索引向量{I′,I″}加密文件索引,获取加密索引:EncSK(ID)={M1 T·I′,M2 T·I″,Enc(KI,fidi)},其中,fidi为明文文件的文件ID,M1,M2∈Rm*m为可逆矩阵。
实施例3
图6示出本实施例中数据查询方法的流程图。该数据查询方法应用在各种终端中,以解决数据查询效率不高的问题。如图6所示,该数据查询方法包括服务器端执行的如下步骤:
S21:获取查询关键词,采用局部敏感哈希函数对查询关键词进行处理,以形成查询陷门。
其中,查询关键词是指用于对明文文件进行查询的关键词。查询关键词由授权用户端发送到服务器端中。服务器端从授权用户端获取查询关键词,采用局部敏感哈希函数对查询关键词进行处理,以形成查询陷门。其中,陷门是在某个系统或某个文件中设置的"机关",使得在提供特定的输入数据时,允许违反安全策略。例如,一个登录处理子系统允许处理一个特定的用户识别码,以绕过通常的口令检查。
在一个具体实施方式中,获取查询关键词,采用局部敏感哈希函数对查询关键词进行处理,以形成查询陷门,如图7所示,包括以下步骤:
S211:获取查询关键词,将查询关键词转换成查询关键词向量。
服务器端从授权用户端j获取查询关键词之后,将查询关键词转换成查询关键词向量,具体的转换过程和步骤S111相似,在此不再赘述。
S212:采用p-stable局部敏感哈希函数将每一查询关键词向量进行转换,获取对应的查询哈希值。
服务器端获取授权用户端j发送的查询关键词。从p-stable局部敏感哈希函数群H={h:{0,1}26*26—>{0,1}m}}中选取l个独立的p-stable局部敏感哈希函数hj,l为一随机数。对于每一查询关键词,使用p-stable局部敏感哈希函数hj∈H将每一个查询关键词向量进行哈希转换,得到对应的查询哈希值。具体的哈希转换过程和步骤S112相似,在此不再赘述。
S213:将每一查询哈希值插入到布隆过滤器进行过滤,获取查询关键值Q。
具体地,为每一明文文件构造一n位的布隆过滤器,并将布隆过滤器中的每一位初始化为0。将步骤S211中得到的对应的查询哈希值插入到对应的布隆过滤器中,得到查询关键值Q。
S214:将查询关键值Q按照以下规则划分为两个查询向量{Q′,Q″},对于查询关键值Q中的一个元素qj∈Q,如果Sj∈S且Sj等于1,则设置qj′=qj″=qj;否则,qj′=1/2·qj+r′,qj″=1/2·qj-r′,其中,r′为一随机数,S∈{0,1}m
在该步骤中,通过秘钥管理中心中的SK=(M1,M2,S)将查询关键值Q划分为两个查询向量{Q′,Q″}。具体地,对于查询关键值Q中的一个元素qj∈Q,先从S中获取对应的向量Sj,若Sj等于1,则划分元素qj为{qj',qj″}。若Sj不等于1,则划分元素qj为{1/2·qj+r′,1/2·qj-r′},其中,r′为一随机数,S∈{0,1}m
S215:基于两个查询向量{Q′,Q″}加密查询关键值Q,获取查询陷门:EncSK(Q)={M1 -1·Q′,M2 -1·Q″},其中,M1,M2∈Rm*m为可逆矩阵。
在将查询关键值Q划分为两个查询向量{Q′,Q″}之后,基于两个查询向量{Q′,Q″}加密查询关键值Q,得到查询陷门:EncSK(Q)={M1 -1·Q′,M2 -1·Q″}。
在一个实施方式中,Enc可以通过AES或者DES实现。其中,AES是指高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。而DES算法为密码体制中的对称密码体制,又被称为美国数据加密标准,是1972年美国IBM公司研制的对称密码体制加密算法。
在这个实施方式中,采用局部敏感哈希函数对查询关键词进行处理,得到查询陷门,以提高数据查询的效率,降低数据查询中的复杂度。
在一个具体实施方式中,获取查询关键词,采用局部敏感哈希函数对查询关键词进行处理,以形成查询陷门的步骤(即步骤S21)也可以在授权用户端完成,即授权用户端获取到查询陷门之后,再将查询陷门发送到服务器端,以减轻服务器端的查询负担,提高查询效率。
S22:基于查询关键词和查询陷门,将与查询陷门匹配成功的加密索引作为目标加密索引。
服务器端获取到查询陷门后,基于查询陷门查询加密索引,将与查询陷门匹配成功的加密索引作为目标加密索引。
在一个具体实施方式中,基于查询关键词和查询陷门,将与查询陷门匹配成功的加密索引作为目标加密索引,如图8所示,具体包括以下步骤:
S221:获取查询陷门与每一加密索引的内积值,作为查询内积值。
其中,内积是指接受在实数R上的两个向量并返回一个实数值标量的二元运算。而内积值则是通过内积运算得到的结果值。具体地,两个向量a=[a1,a2,…,an]和b=[b1,b2,…,bn]的内积值的计算方式为:a·b=a1b1+a2b2+……+anbn
在这个实施方式中,通过计算查询陷门EncSK(Q)与每一加密索引EncSK(ID)的内积值,即得到查询内积值:M1 TI′·M1 -1Q′+M2 TI″·M2 -1Q″。
S222:获取查询关键词与每一文件索引的内积值,作为数据内积值。
通过计算查询关键词与每一文件索引的内积值,得到数据内积值:IT·Q=I′T·Q′+I″T·Q″。
S223:获取查询内积值和数据内积值的差值,若查询内积值和数据内积值的差值在预设范围内,则查询陷门和加密索引匹配成功,将加密索引作为目标加密索引。
在获取到查询内积值和数据内积值之后,计算查询内积值和数据内积值的差值,若查询查询内积值和数据内积值的差值在预设范围内,则查询陷门和对应的加密索引匹配成功,将该加密索引作为目标加密索引。其中,预设范围可以是一个预设区间,通过实际需要设置。优选地,该预设范围也可为0,即当查询查询内积值和数据内积值的差值为0时,则查询陷门和对应的加密索引匹配成功。
在这个实施方式中,服务器端基于查询关键词和查询陷门,获取查询内积值和数据内积值的差值,若查询内积值和数据内积值的差值在预设范围内,则将对应的加密索引作为目标加密索引。通过这个方式可以在数据查询中快速定位到目标加密索引,进一步地提高了数据查询效率。
S23:基于目标加密索引,将与目标加密索引相对应的密文文件确定为目标密文文件;其中,密文文件是采用秘钥管理中心发送的第一随机服务器端秘钥对数据拥有端发送的加密文件进行加密后形成的。
确定目标加密索引之后,根据该目标加密索引定位到对应的密文文件,将该密文文件确定为目标密文文件。具体地,可以对目标加密索引进行解密,以得到明文文件的文件ID:fidi。基于明文文件的文件ID即可定位到对应的密文文件。其中,密文文件是采用秘钥管理中心发送的第一随机服务器端秘钥对数据拥有端发送的加密文件进行加密后形成的。服务器端在接收到数据拥有端发送的加密文件之后,会采用由秘钥管理中心发送的第一随机服务器端秘钥Ksi=(i,xi2)对加密文件进行加密,形成密文文件。具体地,服务器端先找到与数据拥有端对应的第一服务器端密钥Ksi=(i,xi2),再基于xi2采用ElGamal算法对加密文件进行加密:
C*(filei)=(gx,(gr)xi2·grxi1·filei)=(gx,(gr)xi2+xi1·filei)=(gx,grx·filei);
因此,最终获得密文文件C*(filei)=(gx,grxfilei),filei∈File。
S24:获取秘钥管理中心发送的第二随机服务器端秘钥。
在该步骤中,服务器端获取从秘钥管理中心发送的第二随机服务器端秘钥,以供后续对相关数据(明文文件和文件索引)进行加密。
在一个具体实施方式中,秘钥管理中心发送的第二随机服务器端秘钥在秘钥管理中心的初始化过程中生成。其中,秘钥管理中心的初始化包括以下步骤:
(1)数据拥有端发送安全参数k到秘钥管理中心,秘钥管理中心将安全参数k作为输入,输出一个循环群G、一个素数q和一个哈希映射函数f,其中,循环群G包括一个生成元g。
其中,循环群G是指:如果一个群G可以由元素g生成,即对任意b∈G,都存在a∈Z,使得b=ga,则称G=<g>是一个循环群,g是循环群G的一个生成元。其中,Z表示全体素数q的所有剩余类构成的集合,该集合在素数q的加法下构成阶为q的交换群。安全参数k属于正整数,基于安全参数k,秘钥管理中心会选择一个k比特的素数q。此外,秘钥管理中心还会选择一个哈希映射函数f,该哈希映射函数f以任意长的比特串为输入,以循环群G上的元素为输出的哈希函数f,即f:{0,1}*→G。
(2)从Zq*中选取一个随机数x,计算出h=gx,获取公钥PK=(G,g,q,h,f),私钥MSK=x。
其中,Zq *表示Zq中与q互素的剩余类构成的集合,即Zq *中的元素在同余意义下都是小于q且与q互素的正整数,因此,Zq *可以写作集合Zq *={1,2,…,q-1}。
该步骤中,通过从Zq *中选取一个随机数x作为私钥MSK=x,并在计算出h=gx之后,形成对应的公钥PK=(G,g,q,h,f)。
(3)对于授权用户端j,秘钥管理中心从Zq *中随机选择一个数xj1,并计算xj2=x-xj1。形成授权用户端j对应的服务器端秘钥Ksj=xj2和用户秘钥Kuj=xj1。密钥管理中心将第二随机用户密钥Kuj=(xj1,SK)发送给授权用户端j,将第二随机服务器端密钥Ksj=(j,xj2)发送给服务器端。服务器端接收到Ksj后,就更新存储在它上面的第二随机用户-密钥映射关系Ks=Ks∪(j,xj2)。
可选地,这个实施方式中秘钥管理中心的初始化可以和实施例1中的秘钥管理中心的初始化同时进行。在另一个实施方式中,密钥管理中心在实施例1中完成初始化之后,在本实施方式中仅执行上述步骤(3),步骤(1)和(2)已在实施例1中完成。
进一步地,为每一授权用户端分配第二随机用户密钥时,还生成一授权用户端ID,该授权用户端ID和该授权用户端的第二随机用户密钥一一对应。在授权用户端进行数据查询时,服务器端根据授权用户端ID选择对应的第二随机服务器端密钥进行解密。
优选地,还可以为授权用户端配置和授权用户端ID对应的密码。如此,可以更好地保证数据的安全性,即使该授权用户端的第二随机用户密钥被盗取,如果没有该授权用户端对应的授权用户端ID和密码,也无法成功地利用手中的第二随机用户密钥从服务器端获取到数据。
在这个实施方式中,针对不同授权用户端,生成和分配和该授权用户端对应的第二随机服务器端密钥和第二随机用户密钥,如此可以在增加了文件的安全性的同时也可实现多个授权用户端共享文件的目的。
S25:基于第二随机服务器端秘钥,对目标密文文件进行解密,获取目标加密文件。
服务器端获取存储在其上的授权用户端对应的第二随机服务器端秘钥Ksj=xj2,利用xj2对目标密文文件C*(filei)进行解密,得到目标加密文件。具体地,目标加密文件C’(filei)为:
C’(filei)=(gr,grxfilei·(gr)-xj2)=(gr,g(x-xj2)rfilei)=grxj1filei
S26:将目标加密文件发送至授权用户端,以指示授权用户端采用由秘钥管理中心发送的第二随机用户秘钥对目标加密文件进行解密,获取对应的明文文件。
服务器端将获取到的目标加密文件发送至对应的授权用户端j,以指示授权用户端j采用由秘钥管理中心发送的第二随机用户秘钥对目标加密文件进行解密,获取对应的明文文件。具体地,授权用户端j收到服务器端发送的目标加密文件后,利用第二随机用户秘钥xj1对目标加密文件进行解密,获取对应的明文文件:grxj1filei·(gr)-xj1=filei,以解密该加密文件,得到最终的明文文件。
在这个实施方式中,第二随机用户秘钥和第二随机服务器端秘钥是相关联的。具体地,第二随机用户秘钥xj1和第二随机服务器端秘钥xj2是通过私钥MSK=x相关联的:xj2=x-xj1
本实施例提供的数据查询方法中,采用局部敏感哈希函数对查询关键词进行处理,以形成查询陷门。并基于查询关键词和查询陷门得到对应的目标加密索引以定位到对应的目标密文文件,提高了数据查询的效率,降低了数据查询的复杂度。而且,通过服务器端和授权用户端对目标密文文件二次解密才可以获得对应的明文文件,提高了数据的安全性。
实施例4
图9示出与实施例1中数据查询方法一一对应的数据查询装置的原理框图。如图9所示,该数据查询装置包括查询陷门获取模块21、目标加密索引获取模块22、目标密文文件获取模块23、第二随机服务器端秘钥获取模块24、目标加密文件获取模块25和目标加密文件发送模块26。其中,查询陷门获取模块21、目标加密索引获取模块22、目标密文文件获取模块23、第二随机服务器端秘钥获取模块24、目标加密文件获取模块25和目标加密文件发送模块26的实现功能与实施例3中数据查询方法对应的步骤一一对应,为避免赘述,本实施例不一一详述。
查询陷门获取模块21,用于获取查询关键词,采用局部敏感哈希函数对查询关键词进行处理,以形成查询陷门。
目标加密索引获取模块22,用于基于查询关键词和查询陷门,将与查询陷门匹配成功的加密索引作为目标加密索引。
目标密文文件获取模块23,用于基于目标加密索引,将与目标加密索引相对应的密文文件确定为目标密文文件;其中,密文文件是采用秘钥管理中心发送的第一随机服务器端秘钥对数据拥有端发送的加密文件进行加密后形成的。
第二随机服务器端秘钥获取模块24,用于获取秘钥管理中心发送的第二随机服务器端秘钥。
目标加密文件获取模块25,用于基于第二随机服务器端秘钥,对目标密文文件进行解密,获取目标加密文件。
目标加密文件发送模块26,用于将目标加密文件发送至授权用户端,以指示授权用户端采用由秘钥管理中心发送的第二随机用户秘钥对目标加密文件进行解密,获取对应的明文文件,其中,第二随机用户秘钥和第二随机服务器端秘钥相关联。
优选地,查询陷门获取模块21包括查询关键词向量转换单元211、查询哈希值获取单元212、查询关键值Q获取单元213、查询向量划分单元214和查询陷门获取单元215。
查询关键词向量转换单元211,用于获取查询关键词,将查询关键词转换成查询关键词向量。
查询哈希值获取单元212,用于采用p-stable局部敏感哈希函数将每一查询关键词向量进行转换,获取对应的查询哈希值。
查询关键值Q获取单元213,用于将每一查询哈希值插入到布隆过滤器进行过滤,获取查询关键值Q。
查询向量划分单元214,用于将查询关键值Q按照以下规则划分为两个查询向量{Q′,Q″},对于查询关键值Q中的一个元素qj∈Q,如果Sj∈S且Sj等于1,则设置qj′=qj″=qj;否则,qj′=1/2·qj+r′,qj″=1/2·qj-r′,其中,r′为一随机数,S∈{0,1}m
查询陷门获取单元215,用于基于两个查询向量{Q′,Q″}加密查询关键值Q,获取查询陷门:EncSK(Q)={M1 -1·Q′,M2 -1·Q″},其中,M1,M2∈Rm*m为可逆矩阵。
优选地,目标加密索引获取模块22包括查询内积值获取单元221、数据内积值获取单元222和目标加密索引获取单元223。
查询内积值获取单元221,用于获取查询陷门与每一加密索引的内积值,作为查询内积值。
数据内积值获取单元222,用于获取查询关键词与每一文件索引的内积值,作为数据内积值。
目标加密索引获取单元223,用于获取查询内积值和数据内积值的差值,若查询内积值和数据内积值的差值在预设范围内,则查询陷门和加密索引匹配成功,将加密索引作为目标加密索引。
实施例5
本实施例提供一计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现实施例1中数据加密方法,或者实现实施例3中数据查询方法,为避免重复,这里不再赘述。或者,该计算机程序被处理器执行时实现实施例2中数据加密装置中各模块/单元的功能,或者实现实施例4中数据查询装置中各模块/单元的功能,为避免重复,这里不再赘述。
可以理解地,所述计算机可读存储介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号和电信信号等。
实施例6
图10是本发明一实施例提供的计算机设备的示意图。如图10所示,该实施例的计算机设备60包括:处理器61、存储器62以及存储在存储器62中并可在处理器61上运行的计算机程序63。处理器61执行计算机程序63时实现上述实施例1中数据加密方法的步骤,例如图2所示的步骤S11至S14。或者,处理器61执行计算机程序63时实现实施例2中数据加密装置中各模块/单元的功能,例如图5所示文件索引建立模块11、第一随机用户秘钥获取模块12、加密文件和加密索引获取模块13和加密文件和加密索引发送模块14的功能。或者,处理器61执行计算机程序63时实现上述实施例3中数据查询方法的步骤,例如图6所示的步骤S21至S26。或者,处理器61执行计算机程序63时实现实施例4中数据查询装置中各模块/单元的功能,例如图9所示包括查询陷门获取模块21、目标加密索引获取模块22、目标密文文件获取模块23、第二随机服务器端秘钥获取模块24、目标加密文件获取模块25和目标加密文件发送模块26的功能。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

Claims (10)

1.一种数据加密方法,其特征在于,包括数据拥有端执行的如下步骤:
获取明文文件的明文关键词,基于所述明文关键词采用局部敏感哈希函数建立所述明文文件的文件索引;
获取秘钥管理中心发送的第一随机用户秘钥;
采用第一随机用户秘钥分别加密所述明文文件和所述文件索引,获取加密文件和加密索引;
将所述加密文件和所述加密索引发送至服务器端,以指示服务器端采用由秘钥管理中心发送的第一随机服务器端秘钥对所述加密文件进行加密,形成密文文件;
其中,所述第一随机用户秘钥和所述第一随机服务器端秘钥相关联。
2.如权利要求1所述的数据加密方法,其特征在于,所述获取明文文件的明文关键词,基于所述明文关键词采用局部敏感哈希函数建立所述明文文件的文件索引,包括:
从明文文件中提取明文关键词,将所述明文关键词转化成明文关键词向量;
采用p-stable局部敏感哈希函数将每一明文关键词向量进行转换,获取对应的明文哈希值;
将每一所述明文哈希值插入到布隆过滤器进行过滤,得到文件索引。
3.如权利要求1所述的数据加密方法,其特征在于,所述采用第一随机用户秘钥分别加密所述明文文件和所述文件索引,获取加密文件和加密索引,包括:
基于第一随机用户秘钥,采用ElGamal算法加密所述明文文件,获取加密文件;
基于第一随机用户秘钥,采用哈希映射函数对所述第一随机用户秘钥进行处理,产生密钥KI
将文件索引ID按如下规则划分为两个索引向量{I′,I″}:对于每个元素ij∈ID,如果Sj∈S且Sj等于1,则设置i′j=i″j=ij;否则,i′j=1/2·ij+r,i″j=1/2·ij-r,其中,r为一随机数,S∈{0,1}m
基于密钥KI和两个索引向量{I′,I″}加密文件索引,获取加密索引:EncSK(ID)={M1 T·I′,M2 T·I″,Enc(KI,fidi)},其中,fidi为明文文件的文件ID,M1,M2∈Rm*m为可逆矩阵。
4.一种数据查询方法,其特征在于,包括服务器端执行的如下步骤:
获取查询关键词,采用局部敏感哈希函数对所述查询关键词进行处理,以形成查询陷门;
基于所述查询关键词和所述查询陷门,将与查询陷门匹配成功的加密索引作为目标加密索引;
基于目标加密索引,将与所述目标加密索引相对应的密文文件确定为目标密文文件;其中,所述密文文件是采用秘钥管理中心发送的第一随机服务器端秘钥对数据拥有端发送的加密文件进行加密后形成的;
获取秘钥管理中心发送的第二随机服务器端秘钥;
基于所述第二随机服务器端秘钥,对目标密文文件进行解密,获取目标加密文件;
将所述目标加密文件发送至授权用户端,以指示所述授权用户端采用由秘钥管理中心发送的第二随机用户秘钥对所述目标加密文件进行解密,获取对应的明文文件;
其中,所述第二随机用户秘钥和所述第二随机服务器端秘钥相关联。
5.如权利要求4所述的数据查询方法,其特征在于,所述获取查询关键词,采用局部敏感哈希函数对所述查询关键词进行处理,以形成查询陷门,具体包括:
获取查询关键词,将查询关键词转换为查询关键词向量;
采用p-stable局部敏感哈希函数将每一查询关键词向量进行转换,获取对应的查询哈希值;
将每一所述查询哈希值插入到布隆过滤器进行过滤,获取查询关键值Q;
将查询关键值Q按照以下规则划分为两个查询向量{Q′,Q″},对于查询关键值Q中的一个元素qj∈Q,如果Sj∈S且Sj等于1,则设置q′j=q″j=qj;否则,q′j=1/2·qj+r′,q″j=1/2·qj-r′,其中,r′为一随机数,S∈{0,1}m
基于两个查询向量{Q′,Q″}加密查询关键值Q,获取查询陷门:EncSK(Q)={M1 -1·Q′,M2 -1·Q″},其中,M1,M2∈Rm*m为可逆矩阵。
6.如权利要求4所述的数据查询方法,其特征在于,所述基于所述查询关键词和所述查询陷门,将与查询陷门匹配成功的加密索引作为目标加密索引,具体包括:
获取所述查询陷门与每一所述加密索引的内积值,作为查询内积值;
获取所述查询关键词与每一文件索引的内积值,作为数据内积值;
获取查询内积值和数据内积值的差值,若查询内积值和数据内积值的差值在预设范围内,则查询陷门和所述加密索引匹配成功,将所述加密索引作为目标加密索引。
7.一种数据加密装置,其特征在于,包括:
文件索引建立模块,用于获取明文文件的明文关键词,基于所述明文关键词采用局部敏感哈希函数建立所述明文文件的文件索引;
第一随机用户秘钥获取模块,用于获取秘钥管理中心发送的第一随机用户秘钥;
加密文件和加密索引获取模块,用于采用第一随机用户秘钥分别加密所述明文文件和所述文件索引,获取加密文件和加密索引;
加密文件和加密索引发送模块,用于将所述加密文件和所述加密索引发送至服务器端,以指示服务器端采用由秘钥管理中心发送的第一随机服务器端秘钥对所述加密文件进行加密,形成密文文件,其中第一随机用户秘钥和第一随机服务器端秘钥相关联。
8.一种数据查询装置,其特征在于,包括:
查询陷门获取模块,用于获取查询关键词,采用局部敏感哈希函数对所述查询关键词进行处理,以形成查询陷门;
目标加密索引获取模块,用于基于所述查询关键词和所述查询陷门,将与查询陷门匹配成功的加密索引作为目标加密索引;
目标密文文件获取模块,用于基于目标加密索引,将与所述目标加密索引相对应的密文文件确定为目标密文文件;其中,所述密文文件是采用秘钥管理中心发送的第一随机服务器端秘钥对数据拥有端发送的加密文件进行加密后形成的;
第二随机服务器端秘钥获取模块,用于获取秘钥管理中心发送的第二随机服务器端秘钥;
目标加密文件获取模块,用于基于所述第二随机服务器端秘钥,对目标密文文件进行解密,获取目标加密文件;
目标加密文件发送模块,用于将所述目标加密文件发送至授权用户端,以指示所述授权用户端采用由秘钥管理中心发送的第二随机用户秘钥对所述目标加密文件进行解密,获取对应的明文文件,其中,所述第二随机用户秘钥和所述第二随机服务器端秘钥相关联。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至3任一项所述数据加密方法的步骤,或者所述处理器执行所述计算机程序时实现如权利要求4至6任一项所述数据查询方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至3任一项所述数据加密方法的步骤,或者所述计算机程序被处理器执行时实现如权利要求4至6任一项所述数据查询方法的步骤。
CN201810239555.XA 2018-03-22 2018-03-22 数据加密方法、数据查询方法、装置、设备及存储介质 Active CN108632248B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201810239555.XA CN108632248B (zh) 2018-03-22 2018-03-22 数据加密方法、数据查询方法、装置、设备及存储介质
PCT/CN2018/091912 WO2019178958A1 (zh) 2018-03-22 2018-06-20 数据加密方法、数据查询方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810239555.XA CN108632248B (zh) 2018-03-22 2018-03-22 数据加密方法、数据查询方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN108632248A true CN108632248A (zh) 2018-10-09
CN108632248B CN108632248B (zh) 2019-10-29

Family

ID=63696270

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810239555.XA Active CN108632248B (zh) 2018-03-22 2018-03-22 数据加密方法、数据查询方法、装置、设备及存储介质

Country Status (2)

Country Link
CN (1) CN108632248B (zh)
WO (1) WO2019178958A1 (zh)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109656600A (zh) * 2019-01-02 2019-04-19 延锋伟世通电子科技(上海)有限公司 车载软件升级方法、系统、装置及介质
CN109857385A (zh) * 2018-12-24 2019-06-07 四川长虹电器股份有限公司 应用程序文件打包方法、安装方法及启动方法
CN110351079A (zh) * 2019-07-09 2019-10-18 政采云有限公司 基于父子关系验证的三方解密方法
CN110489998A (zh) * 2019-08-21 2019-11-22 青岛大学 一种可搜索加密方法、装置、设备及可读存储介质
CN111859421A (zh) * 2020-07-08 2020-10-30 中国软件与技术服务股份有限公司 一种基于词向量的多关键字密文存储、检索方法及系统
CN111988133A (zh) * 2020-08-18 2020-11-24 浪潮商用机器有限公司 系统sm4加密解密验证方法、装置、设备、及存储介质
CN112668042A (zh) * 2020-12-16 2021-04-16 西安电子科技大学 一种文件加密方法
CN113094573A (zh) * 2020-01-09 2021-07-09 中移(上海)信息通信科技有限公司 多关键词排序可搜索加密方法、装置、设备及存储介质
CN113225318A (zh) * 2021-04-14 2021-08-06 山东省计算中心(国家超级计算济南中心) 一种政务大数据加密传输及安全存储的方法及系统
CN113779597A (zh) * 2021-08-19 2021-12-10 深圳技术大学 加密文档的存储和相似检索方法、装置、设备及介质
US20220027498A1 (en) * 2020-07-21 2022-01-27 4IQ, Inc. Secure exchange of password presence data
CN113987557A (zh) * 2021-12-24 2022-01-28 亿次网联(杭州)科技有限公司 一种文件加密处理方法、系统、电子设备和存储介质
CN114978560A (zh) * 2021-02-24 2022-08-30 中国联合网络通信集团有限公司 明文密码加密解密方法、装置、设备、介质及产品
CN115292737A (zh) * 2022-10-08 2022-11-04 成都泛联智存科技有限公司 一种多关键词模糊搜索加密方法、系统及电子设备
CN115310132A (zh) * 2022-08-25 2022-11-08 北京华宜信科技有限公司 一种数据身份标识与数据碎片化方法及装置
CN115391642A (zh) * 2022-07-28 2022-11-25 京信数据科技有限公司 一种基于秘密共享的隐私查询方法及系统
CN115935429B (zh) * 2022-12-30 2023-08-22 上海零数众合信息科技有限公司 一种数据处理方法、装置、介质以及电子设备

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112233666A (zh) * 2020-10-22 2021-01-15 中国科学院信息工程研究所 一种云存储环境下中文语音密文存储、检索方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101064689A (zh) * 2006-04-28 2007-10-31 晶发科技股份有限公司 包含若干个信息包的传输串流加密/解密方法及相关装置
WO2012156648A1 (fr) * 2011-05-18 2012-11-22 Morpho Acces protege par biometrie a des dispositifs electroniques
CN105262843A (zh) * 2015-11-12 2016-01-20 武汉理工大学 一种针对云存储环境的数据防泄漏保护方法
CN106326360A (zh) * 2016-08-10 2017-01-11 武汉科技大学 一种云环境中密文数据的模糊多关键词检索方法
CN107220343A (zh) * 2017-05-26 2017-09-29 福州大学 基于局部敏感哈希的中文多关键词模糊排序密文搜索方法
CN107359986A (zh) * 2017-07-03 2017-11-17 暨南大学 可撤销用户的外包加解密cp‑abe方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101190061B1 (ko) * 2008-12-01 2012-10-11 한국전자통신연구원 결합 키워드를 이용한 데이터 암호화 방법 및 데이터 검색방법
CN106330865B (zh) * 2016-08-12 2019-03-29 安徽大学 云环境下支持高效撤销的属性基关键字搜索方法及云计算应用系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101064689A (zh) * 2006-04-28 2007-10-31 晶发科技股份有限公司 包含若干个信息包的传输串流加密/解密方法及相关装置
WO2012156648A1 (fr) * 2011-05-18 2012-11-22 Morpho Acces protege par biometrie a des dispositifs electroniques
CN105262843A (zh) * 2015-11-12 2016-01-20 武汉理工大学 一种针对云存储环境的数据防泄漏保护方法
CN106326360A (zh) * 2016-08-10 2017-01-11 武汉科技大学 一种云环境中密文数据的模糊多关键词检索方法
CN107220343A (zh) * 2017-05-26 2017-09-29 福州大学 基于局部敏感哈希的中文多关键词模糊排序密文搜索方法
CN107359986A (zh) * 2017-07-03 2017-11-17 暨南大学 可撤销用户的外包加解密cp‑abe方法

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109857385A (zh) * 2018-12-24 2019-06-07 四川长虹电器股份有限公司 应用程序文件打包方法、安装方法及启动方法
CN109656600A (zh) * 2019-01-02 2019-04-19 延锋伟世通电子科技(上海)有限公司 车载软件升级方法、系统、装置及介质
CN110351079B (zh) * 2019-07-09 2022-03-01 政采云有限公司 基于父子关系验证的三方解密方法
CN110351079A (zh) * 2019-07-09 2019-10-18 政采云有限公司 基于父子关系验证的三方解密方法
CN110489998A (zh) * 2019-08-21 2019-11-22 青岛大学 一种可搜索加密方法、装置、设备及可读存储介质
CN110489998B (zh) * 2019-08-21 2021-02-26 青岛大学 一种可搜索加密方法、装置、设备及可读存储介质
CN113094573A (zh) * 2020-01-09 2021-07-09 中移(上海)信息通信科技有限公司 多关键词排序可搜索加密方法、装置、设备及存储介质
CN111859421A (zh) * 2020-07-08 2020-10-30 中国软件与技术服务股份有限公司 一种基于词向量的多关键字密文存储、检索方法及系统
US11550949B2 (en) * 2020-07-21 2023-01-10 Constella Intelligence, Inc. Secure exchange of password presence data
US20220027498A1 (en) * 2020-07-21 2022-01-27 4IQ, Inc. Secure exchange of password presence data
CN111988133A (zh) * 2020-08-18 2020-11-24 浪潮商用机器有限公司 系统sm4加密解密验证方法、装置、设备、及存储介质
CN111988133B (zh) * 2020-08-18 2023-05-16 浪潮商用机器有限公司 系统sm4加密解密验证方法、装置、设备、及存储介质
CN112668042B (zh) * 2020-12-16 2022-12-02 西安电子科技大学 一种文件加密方法
CN112668042A (zh) * 2020-12-16 2021-04-16 西安电子科技大学 一种文件加密方法
CN114978560A (zh) * 2021-02-24 2022-08-30 中国联合网络通信集团有限公司 明文密码加密解密方法、装置、设备、介质及产品
CN114978560B (zh) * 2021-02-24 2023-07-18 中国联合网络通信集团有限公司 明文密码加密解密方法、装置、设备及介质
CN113225318A (zh) * 2021-04-14 2021-08-06 山东省计算中心(国家超级计算济南中心) 一种政务大数据加密传输及安全存储的方法及系统
CN113779597B (zh) * 2021-08-19 2023-08-18 深圳技术大学 加密文档的存储和相似检索方法、装置、设备及介质
CN113779597A (zh) * 2021-08-19 2021-12-10 深圳技术大学 加密文档的存储和相似检索方法、装置、设备及介质
CN113987557A (zh) * 2021-12-24 2022-01-28 亿次网联(杭州)科技有限公司 一种文件加密处理方法、系统、电子设备和存储介质
CN115391642A (zh) * 2022-07-28 2022-11-25 京信数据科技有限公司 一种基于秘密共享的隐私查询方法及系统
CN115391642B (zh) * 2022-07-28 2023-03-10 京信数据科技有限公司 一种基于秘密共享的隐私查询方法及系统
CN115310132A (zh) * 2022-08-25 2022-11-08 北京华宜信科技有限公司 一种数据身份标识与数据碎片化方法及装置
CN115292737B (zh) * 2022-10-08 2022-12-09 成都泛联智存科技有限公司 一种多关键词模糊搜索加密方法、系统及电子设备
CN115292737A (zh) * 2022-10-08 2022-11-04 成都泛联智存科技有限公司 一种多关键词模糊搜索加密方法、系统及电子设备
CN115935429B (zh) * 2022-12-30 2023-08-22 上海零数众合信息科技有限公司 一种数据处理方法、装置、介质以及电子设备

Also Published As

Publication number Publication date
WO2019178958A1 (zh) 2019-09-26
CN108632248B (zh) 2019-10-29

Similar Documents

Publication Publication Date Title
CN108632248B (zh) 数据加密方法、数据查询方法、装置、设备及存储介质
CN110224986B (zh) 一种基于隐藏策略cp-abe的高效可搜索访问控制方法
Liu et al. An efficient privacy-preserving outsourced calculation toolkit with multiple keys
Paulet et al. Privacy-preserving and content-protecting location based queries
JP5300983B2 (ja) データ処理装置
CN107256248B (zh) 云存储安全中基于通配符的可搜索加密方法
Xhafa et al. An efficient PHR service system supporting fuzzy keyword search and fine-grained access control
CN109151053A (zh) 基于公共非对称密钥池的抗量子计算云存储方法和系统
CN109150519A (zh) 基于公共密钥池的抗量子计算云存储安全控制方法和系统
CN106487506B (zh) 一种支持预加密和外包解密的多机构kp-abe方法
CN111143471B (zh) 一种基于区块链的密文检索方法
CN104967693B (zh) 面向云存储的基于全同态密码技术的文档相似度计算方法
CN111431897B (zh) 用于云协助物联网的带追踪的多属性机构属性基加密方法
CN106875325B (zh) 一种可搜索图像加密算法
CN109361644B (zh) 一种支持快速搜索和解密的模糊属性基加密方法
CN108111587B (zh) 一种基于时间释放的云存储搜索方法
CN110866135B (zh) 一种基于响应长度隐藏的k-NN图像检索方法及系统
CN107005408A (zh) 公共密钥加密系统
CN108038128A (zh) 一种加密文件的检索方法、系统、终端设备及存储介质
Wang et al. Privacy-preserving collaborative model learning scheme for E-healthcare
CN1918844B (zh) 基于保密共享方案的保密信息管理系统和方法
CN109981265A (zh) 一种基于身份的不使用双线性对的密文等值判定方法
CN111556048B (zh) 一种支持密文模式匹配的属性基安全通信方法及系统
CN109274659B (zh) 一种无证书的在线/离线可搜索密文方法
CN114139194A (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
GR01 Patent grant
GR01 Patent grant