CN115459967A - 一种基于可搜索加密的密文数据库查询方法及系统 - Google Patents
一种基于可搜索加密的密文数据库查询方法及系统 Download PDFInfo
- Publication number
- CN115459967A CN115459967A CN202211027665.2A CN202211027665A CN115459967A CN 115459967 A CN115459967 A CN 115459967A CN 202211027665 A CN202211027665 A CN 202211027665A CN 115459967 A CN115459967 A CN 115459967A
- Authority
- CN
- China
- Prior art keywords
- data
- ciphertext
- key
- query
- data content
- 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
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 77
- 238000012545 processing Methods 0.000 claims abstract description 9
- 238000013475 authorization Methods 0.000 claims description 23
- 238000012217 deletion Methods 0.000 claims description 10
- 230000037430 deletion Effects 0.000 claims description 10
- 238000010276 construction Methods 0.000 claims description 7
- 238000009795 derivation Methods 0.000 claims description 3
- 230000004044 response Effects 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 9
- 238000007726 management method Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000010845 search algorithm Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- BASFCYQUMIYNBI-UHFFFAOYSA-N platinum Chemical compound [Pt] BASFCYQUMIYNBI-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/221—Column-oriented storage; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2462—Approximate or statistical queries
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/321—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
- H04L9/3213—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Fuzzy Systems (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开了一种基于可搜索加密的密文数据库查询方法及系统。首先获取明文源数据,明文源数据中包括数据文件名和数据内容;对数据内容进行关键字提取得到关键字列表,并根据数据文件名基于索引生成密钥得到密文索引库,并将密文数据内容和密文索引库对应存储进密文数据库;然后获取目标查询关键字,通过陷门生成密钥对目标查询关键字进行处理生成查询密文;基于查询密文在密文索引库中进行查询得到密文查询结果并获取其对应的密文数据内容;最后基于数据解密密钥对密文数据内容进行数据解密得到明文数据内容。本申请中所有算法采用对称密码原语进行设计,保证了算法执行的高效性,同时以关键字作为键值采用了倒排索引技术,提高了搜索效率。
Description
技术领域
本发明涉及数据处理领域,特别涉及一种基于可搜索加密的密文数据库查询方法及系统。
背景技术
随着互联网的深入应用和大数据时代的来临,企业甚至个人都有大量的数据需要存储。目前许多云服务厂商为数据存储提供了性价比较高的外包存储服务,因此企业或个人通常都会购买这些存储服务来存储自己的数据。为了保护这些数据的安全性或隐私性,人们倾向于将这些数据加密后再存储在云服务器中,然而密文形式的数据给数据的使用带来了很大的阻碍。比如,常见的数据查询场景中,数据拥有者想通过某个关键字查询云服务器上存储的相关数据(数据可以是文档、音频、视频等),但通常的加密算法并不支持在数据密文上进行查询。若是把待查询的数据下载到本地进行解密后查询,则通信代价和解密时间往往是不可接受的。为了解决密文数据上的查询问题,可搜索加密技术应运而生。该技术通过设计特殊的加密算法,将明文数据加密成具有索引结构的密文数据。将这些密文数据形成一个密文数据库,其中的索引结构具有可搜索的能力。查询时通过一个特定的密钥对查询的关键字生成查询陷门T,然后利用T来对密文索引进行搜索找到匹配关键字的数据,最后输出查询结果。
根据生成密文索引的密钥和查询陷门的密钥是否相同,可搜索加密技术具体分为两类:对称可搜索加密SSE(Symmetric Searchable Encryption)和公钥可搜索加密PEKS(Public key Encryption with Keyword Search)。
然而,现有可搜索加密算法搜索时需要扫描数据库全文,搜索时间与数据库大小成线性关系,算法效率较低,在数据分享场景下没有兼顾安全性和高效性,并且无法对密文查询请求进行有效的控制,难以干预密文数据的解密和感知高价值数据资源,影响数据提供者的数据分享收益。
发明内容
基于此,本申请实施例提供了一种基于可搜索加密的密文数据库查询方法及系统,解决了现有可搜索加密算法在密文数据库查询中存在的问题。
第一方面,提供了一种基于可搜索加密的密文数据库查询方法,该方法包括:
获取明文源数据,所述明文源数据中包括数据文件名和数据内容;基于数据加密密钥对所述数据内容进行数据加密得到密文数据内容;
对所述数据内容进行关键字提取得到关键字列表,并根据所述数据文件名基于索引生成密钥得到密文索引库,并将所述密文数据内容和所述密文索引库对应存储进密文数据库;
获取目标查询关键字,通过陷门生成密钥对所述目标查询关键字进行处理生成查询密文;
基于所述查询密文在密文索引库中进行查询得到密文查询结果并获取其对应的密文数据内容;
基于数据解密密钥对所述密文数据内容进行数据解密得到明文数据内容。
在基于数据解密密钥对所述密文数据内容进行数据解密得到明文数据内容之前,所述方法还包括:响应于明文源数据提供方的解密授权请求,生成该明文源数据的数据解密密钥。
可选地,基于数据加密密钥对所述数据内容进行数据加密得到密文数据内容,包括:
通过分组加密算法对数据内容进行加密,其中,所述分组加密算法至少包括AES算法和SM4算法。
可选地,数据加密密钥和所述索引生成密钥,包括:
生成一个随机值作为密钥生成的种子,然后利用这个种子和一个密钥导出函数为每个文件生成对应的加密密钥。
可选地,将所述密文数据内容和所述密文索引库对应存储进密文数据库,还包括:
在密文数据库中建立数据删除表,所述数据删除表用于记录被删除的数据,当查询结果包含被删除的数据,则在解密时通过访问这个表跳过被删除数据的解密操作,从而返回的查询结果中不会包含已删除的数据。
可选地,在通过陷门生成密钥对所述目标查询关键字进行处理生成查询密文之前,包括:
基于token/nonce的陷门生成算法得到陷门生成密钥。
第二方面,提供了一种基于可搜索加密的密文数据库查询系统,该系统包括:
数据加密模块,用于获取明文源数据,所述明文源数据中包括数据文件名和数据内容;基于数据加密密钥对所述数据内容进行数据加密得到密文数据内容;
密文索引库构造模块,用于对所述数据内容进行关键字提取得到关键字列表,并根据所述数据文件名基于索引生成密钥得到密文索引库,并将所述密文数据内容和所述密文索引库对应存储进密文数据库;
密文数据库存储模块,用于对密文数据内容和密文索引库进行存储;
查询陷门生成模块,用于获取目标查询关键字,通过陷门生成密钥对所述目标查询关键字进行处理生成查询密文;
密文索引库查询模块,基于所述查询密文在密文索引库中进行查询得到密文查询结果并获取其对应的密文数据内容;
数据解密模块,用于基于数据解密密钥对所述密文数据内容进行数据解密得到明文数据内容。
可选地,系统还包括:
密钥管理和授权模块,响应于明文源数据提供方的解密授权请求,生成该明文源数据的数据解密密钥。
可选地,数据加密模块包括:
通过分组加密算法对数据内容进行加密,其中,所述分组加密算法至少包括AES算法和SM4算法。
可选地,密文数据库存储模块,还包括:
建立数据删除表,所述数据删除表用于记录被删除的数据,当查询结果包含被删除的数据,则在解密时通过访问这个表跳过被删除数据的解密操作,从而返回的查询结果中不会包含已删除的数据。
本申请实施例提供的技术方案带来的有益效果至少包括:
(1)采用一数据一密钥的高强度加密方式、基于对称密码原语以及倒排索引搜索等技术设计了一种高效安全的密文查询方法和系统,尤其适用于数据的安全共享和数据价值的流通场景。
(2)支持数据新增或删除等数据动态变化下的密文查询,适配数据的可更新性,满足实际应用场景中数据变化的需求。
(3)利用token机制保证了数据查询请求的即时性和合法性,避免敌手发起非法查询或重放攻击,进一步提高了数据查询的业务安全性。
(4)数据提供者可以根据授权信息统计出被频繁查询的数据,从而能够感知数据价值并进行数据标价的灵活调整。在实际场景中,这有利于数据提供者在数据共享中获得更加合理的收益。
附图说明
为了更清楚地说明本发明的实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引申获得其它的实施附图。
图1为本申请实施例提供的一种基于可搜索加密的密文数据库查询方法流程图;
图2为本申请实施例提供的明文源数据的加密示意图;
图3为本申请实施例提供的密文索引数据库EDB示意图;
图4为本申请实施例提供的明文数据形式的查询结果示意图;
图5为本申请实施例提供的一种基于可搜索加密的密文数据库查询系统框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在本发明的描述中,术语“包括”、“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包括了一系列步骤或单元的过程、方法、系统、产品或设备不必限于已明确列出的那些步骤或单元,而是还可包含虽然并未明确列出的但对于这些过程、方法、产品或设备固有的其它步骤或单元,或者基于本发明构思进一步的优化方案所增加的步骤或单元。
本申请针对有多个数据提供者的数据共享场景设计了一种可搜索加密的密文数据库查询方法和系统架构,解决了以下技术问题:
1、查询的高效性:设计的密文数据库查询方法从架构设计上规避了公钥加密技术,全部采用对称密码原语进行设计,利用系统级的密钥共享完成明文数据的索引结构和密文数据生成,搜索时采用倒排索引技术,保证了数据加解密的效率和密文数据库搜索效率。
2、查询的安全性:算法采用不同的密钥生成索引结构和数据密文,密文数据库中存储的索引和数据都是密文形式。此外,查询时关键字也会首先加密转换成查询陷门,密文数据库无法从查询陷门中恢复出关键字。这样保证了原始数据和查询关键字的安全性。
3、查询的可控制性:算法中通过查询令牌token或是随机数nonce来对查询请求进行有效控制,即使针对同一个关键字的查询请求,生成的查询陷门也是不同的。重放的查询请求也可以准确地被检测出来。
4、解密需要授权,数据价值可以进行排序:数据查询者获得密文形式的查询结果后,发起解密请求,系统向数据提供者请求解密授权,授权通过后系统将解密后的明文数据发送给数据查询方。数据提供者可以根据数据解密的授权记录进行统计,发现查询频率较高的高价值数据资源,从而可以调整数据的定价来提高数据共享的收益。
具体地,请参考图1,其示出了本申请实施例提供的一种基于可搜索加密的密文数据库查询方法的流程图,该方法可以包括以下步骤:
S1,获取明文源数据,基于数据加密密钥对数据内容进行数据加密得到密文数据内容。
其中,明文源数据中包括数据文件名和数据内容。本步骤对应于图中箭头1和2。步骤S1中涉及到了明文源数据的加密算法PlainEnc。具体地:
明文源数据的加密算法对数据提供者提供的明文源数据进行加密,产生对应的密文数据。
算法输入:明文源数据M,加密密钥K;
算法输出:密文数据C=Enc(M,K),其中Enc为一个分组加密算法,如AES算法、SM4算法等。可选地,本申请对称加解密算法不局限于AES、SM4等分组密码算法,实际上可以使用其他任何分组密码算法或者流密码算法进行替换。
算法详细描述:
以明文源数据为文件为例,假设一共有三个数据提供者A,B,C,他们提供的文件列表分别为{A-01,A-02,A-03},{B-01,B-02},{C-01}.对这些文件分别生成明文数据的加密密钥{KA01,KA02,KA03},{KB01,KB02},{KC01}.采用分组密码算法Enc对这些文件内容分别进行加密,如对明文A-01的数据内容加密得到密文文件Cipher_A01=Enc(A01,KA01).类似地,加密所有的明文源数据后得到对应的密文文件{Cipher_A01,Cipher_A02,Cipher_A03},{Cipher_B01,Cipher_B02}以及{Cipher_C01},如图2所示。
具体实现时,为了减少明文数据加密密钥的存储量,可以只为每个数据提供者生成一个随机值作为密钥生成的种子,然后利用这个种子和一个密钥导出函数KDF为每个数据提供者的每个文件生成对应的加密密钥,比如,为A用户设置密钥种子seed_A,利用KDF生成A用户的3个明文数据加密密钥为:
KA0i=KDF(seed_A,A-0i),其中i=1,2,3。
S2,对数据内容进行关键字提取得到关键字列表,并根据数据文件名基于索引生成密钥得到密文索引库,并将密文数据内容和密文索引库对应存储进密文数据库。
其中,本步骤对应于图中箭头3和4。步骤S2中涉及到密文索引数据库构造算法BuildIndex,具体地:
密文索引数据库构造算法是对所有数据提供者的明文数据包含的关键字进行处理,生成密文索引,这些密文索引共同形成密文索引数据库,如图3所示。
算法输入:所有的明文源数据{M_1,M_2,…,M_n},每个源数据M_i提取的关键字列表{W_i1,W_i2,…,W_im},即假设总共有n个源数据,第i个源数据包含有im个关键字。
算法输出:密文索引生成密钥K,密文索引数据库EDB。
算法详细描述:
(a)设所有数据的关键字集合为W,安全参数为λ,随机选择λ比特长度的关键字密文索引生成密钥K*;
(b)对关键字集合中的每个关键字w∈W,用DB(w)表示包含关键字w的文件名的集合,利用密钥K*和一个伪随机函数F:{0,1}λ×{0,1}*→{0,1}λ,计算出两个密钥K1和K2:
K1=F(K*,w||key1),K2=F(K*,w||key2),
其中符号||表示w与字符串“key1”或“key2”的级联。
首先初始化密文索引数据库EDB为空,执行下面的循环:
1)初始化计数器c=0;
2)计算标签l=F(K1,c),选择id∈DB(w),计算其密文d=Enc(K2,id);
3)计数器递增c++;
4)将标签和密文对(l,d)添加到密文索引数据库中(l,d)→EDB.
(c)输出密文索引生成密钥K*和密文索引数据库EDB。
S3,获取目标查询关键字,通过陷门生成密钥对目标查询关键字进行处理生成查询密文。
其中,本步骤对应于图中箭头5和6,在本步骤中包括了查询陷门生成算法TrapGen,具体地:
查询陷门生成算法是利用陷门生成密钥(与密文索引生成密钥K*相同)对数据查询者的查询关键字w生成密文的查询条件(即查询陷门),并提交到密文索引数据库EDB进行查询。
本申请设计了基于token/nonce的陷门生成算法,这样数据查询者每次得到的查询陷门是不同的,即使对于同一个关键字w的两次查询得到的陷门也不相同。为了记号方便,本申请统一使用token来表示查询令牌token或随机数nonce.
算法输入:查询关键字和token对(w,token);
算法输出:查询陷门T.
算法描述:
(a)利用索引生成密钥K*计算K1=F(K*,w||key1),H=F(K*,token);
(c)输出查询陷门T=(Kt,H)。
S4,基于查询密文在密文索引库中进行查询得到密文查询结果并获取其对应的密文数据内容。
由于密文索引只是用来寻找到对应的密文数据,最后对密文数据解密得到明文数据即可,只有最终的明文数据才是数据查询者需要的,所以在本申请中无需返回给数据查询者明文索引,仅返回明文数据内容。
在本实施例中,本步骤对应于图中箭头7、8和9。本步骤涉及密文索引数据库搜索算法Search,具体地:
密文索引数据库搜索算法是利用查询陷门搜索密文索引数据库,得到对应标签的密文文件名集合。
算法输入:查询陷门T,密文索引数据库EDB;
算法输出:密文文件名的集合Cipher_ID;
算法描述:
(a)初始化计算器c=0,Cipher_ID=empty;
1)计算标签l=F(K1,c),在EDB里查询对应标签l的密文索引,查询结果d=find(EDB,l);
2)如果上一步EDB的查询结果d不为空,则将d添加到Cipher_ID中,并且递增计数器c++;若查询结果d为空,则退出循环。
(c)输出密文文件名的集合Cipher_ID。
在本申请一个可选的实施例中,在步骤S4还包括
响应于明文源数据提供方的解密授权请求,生成该明文源数据的数据解密密钥。在本实施例中,本步骤对应于图中箭头10。
S5,基于数据解密密钥对密文数据内容进行数据解密得到明文数据内容。
在本实施例中,本步骤对应于图中箭头11和12。本步骤涉及密文索引解密算法DecryptIndex以及密文数据解密算法CipherDec,具体地:
密文索引解密算法是对密文文件名的集合Cipher_ID进行解密,得到对应的明文文件名集合Plain_ID。
算法输入:本次查询信息(w,token,H,Cipher_ID);
算法输出:明文文件名集合Plain_ID.
算法描述:
(a)利用查询信息中的token和H验证本次查询是否有效,计算F(K*,token),若和本次查询信息中的H相等,且token与之前查询历史查询的token值都不同,则查询有效,否则输出无效查询,算法退出;
(b)初始化Plain_ID为空,恢复出解密密钥K2=F(K*,w||key2);
(c)对每个d∈Cipher_ID,计算:
1)解密出明文文件名id=Dec(K2,d),其中Dec表示Enc对应的解密算法。
2)将id添加到明文文件名集合Plain_ID。
(d)输出明文文件名集合Plain_ID。
密文数据解密算法是对密文数据内容进行解密,首先根据Plain_ID中的文件名确认明文数据来源,然后通过数据提供者授权获取到对应的解密密钥,解密出明文的文件内容,过程如图4所示。
算法输入:明文文件名集合Plain_ID;
算法输出:明文数据集合PlainData.
算法描述:
(a)初始化PlainData为空,对每个id∈Plain_ID,执行:
1)获取id对应的解密密钥DK,例如id为A-02,则数据来源于提供者A,密文数据内容的解密密钥为DK=KDF(seed_A,A-02).
2)解密得到明文数据内容Plain=Dec(Cipher,DK),其中Cipher表示对应于本次id的密文数据内容。
3)将明文数据Plain添加到集合PlainData中。
(b)输出明文数据集合PlainData。
如图5,利用上面给出的6个算法,本申请设计了基于可搜索加密的密文数据库查询系统,系统由密钥管理和授权模块、数据加密模块、密文索引库构造模块、查询陷门生成模块、密文索引库查询模块、数据解密模块以及密文数据库存储模块等7个模块构成。
(1)密钥管理和授权模块:负责生成和管理数据加解密密钥和密文索引生成密钥,在数据提供者授权的前提下,提供密文索引生成密钥和数据解密密钥。
(2)数据加密模块:负责从密钥管理和授权模块获取数据加密密钥,运行PlainEnc算法对明文数据内容进行加密,产生密文数据内容。
(3)密文索引库构造模块:负责从密钥管理和授权模块获取密文索引生成密钥,运行BuildIndex算法对所有的数据名称和关键字列表生成密文索引库,并存储到密文数据库存储模块。此外,可以看出给出的密文索引数据库构造算法BuildIndex能够应对数据动态变化的情况(新增或删除),新增的数据只需要把数据文件名添加到其包含的关键字w的文件名列表DB(w)中,然后计算一个新的索引对(标签,文件名密文)即可,注意这时算法中计数器c是已有的最大值加1.数据删除时最简单的处理方式就是添加一个数据删除表,记录被删除的数据,若是查询结果包含被删除的数据,则在解密时通过访问这个表就可以跳过被删除数据的解密操作,从而返回的查询结果中不会包含已删除的数据。
(4)查询陷门生成模块:负责接收数据查询者的查询关键字,从密钥管理和授权模块获取陷门生成密钥,运行TrapGen算法生成对应的查询陷门。
(5)密文索引库查询模块:负责从查询陷门生成模块接收查询陷门,运行Search算法从密文存储模块中密文索引库进行查询,获得密文形式的查询结果。
(6)数据解密模块:负责从密文索引库查询模块接收密文查询结果,从密钥管理和授权模块获取索引生成密钥,运行DecryptIndex算法解密得到明文的文件名列表。解析文件名列表,发起内容解密授权请求,请求通过后运行CipherDec算法从密钥管理和授权模块获取到数据内容解密密钥,解密出明文数据内容,返回给数据查询者。
(7)密文数据库存储模块:负责统一存储密文索引库和密文数据内容,供密文索引库查询模块进行查询以及为数据解密模块提供密文数据内容。
如图1,是实现上述系统的运行流程(用流程箭头上数字表示),从数据提供者提供的数据及关键字列表开始处理,首先生成密文数据内容和密文索引库,存储在密文存储模块中。然后数据查询者利用查询关键字发起查询,查询陷门生成模块产生出查询陷门,密文索引库查询模块利用查询陷门进行密文查询获得密文结果。数据解密模块解密密文查询结果,向相应的数据提供者发起授权并解密出明文结果返回给查询者。
(1)所有算法采用对称密码原语进行设计,避免采用双线性对或格密码等复杂和耗时的公钥密码,保证了算法执行的高效性。
(2)密文索引库搜索算法采用了倒排索引技术,即以关键字作为键值,其对应的数据值为包含该关键字的文件名id,这样能够提高搜索效率。因为正排的索引(文件名,关键字)在搜索时只能按照文件名来搜索,搜索时间为文件总个数的线性复杂度,而使用倒排索引技术,则在搜索时的循环次数为包含有该关键字的文件个数,搜索时间为亚线性时间复杂度,提高了搜索效率。
同时,对不同的数据提供者的不同数据文件采用了不同的加密密钥(一数据一密钥),高强度地保护了数据内容的安全性。
密文存储模块中存储的都是密文形式的索引库和数据内容,即使密文存储模块被攻破,敌手也无法解密。
数据查询者提供的查询关键字会被陷门生成模块加密,密文索引库查询模块和密文存储模块都不能知道查询的关键字,保证了关键字的安全性。
本申请实施例提供的基于可搜索加密的密文数据库查询系统用于实现上述基于可搜索加密的密文数据库查询方法,关于基于可搜索加密的密文数据库查询系统的具体限定可以参见上文中对于基于可搜索加密的密文数据库查询方法的限定,在此不再赘述。上述基于可搜索加密的密文数据库查询系统中的各个部分可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于设备中的处理器中,也可以以软件形式存储于设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种基于可搜索加密的密文数据库查询方法,其特征在于,所述方法包括:
获取明文源数据,所述明文源数据中包括数据文件名和数据内容;基于数据加密密钥对所述数据内容进行数据加密得到密文数据内容;
对所述数据内容进行关键字提取得到关键字列表,并根据所述数据文件名基于索引生成密钥得到密文索引库,并将所述密文数据内容和所述密文索引库对应存储进密文数据库;
获取目标查询关键字,通过陷门生成密钥对所述目标查询关键字进行处理生成查询密文;
基于所述查询密文在密文索引库中进行查询得到密文查询结果并获取其对应的密文数据内容;
基于数据解密密钥对所述密文数据内容进行数据解密得到明文数据内容。
2.根据权利要求1所述的方法,其特征在于,在基于数据解密密钥对所述密文数据内容进行数据解密得到明文数据内容之前,所述方法还包括:
响应于明文源数据提供方的解密授权请求,生成该明文源数据的数据解密密钥。
3.根据权利要求1所述的方法,其特征在于,基于数据加密密钥对所述数据内容进行数据加密得到密文数据内容,包括:
通过分组加密算法对数据内容进行加密,其中,所述分组加密算法至少包括AES算法和SM4算法。
4.根据权利要求1所述的方法,其特征在于,所述数据加密密钥和所述索引生成密钥,包括:
生成一个随机值作为密钥生成的种子,然后利用这个种子和一个密钥导出函数为每个文件生成对应的加密密钥。
5.根据权利要求1所述的方法,其特征在于,将所述密文数据内容和所述密文索引库对应存储进密文数据库,还包括:
在密文数据库中建立数据删除表,所述数据删除表用于记录被删除的数据,当查询结果包含被删除的数据,则在解密时通过访问这个表跳过被删除数据的解密操作,从而返回的查询结果中不会包含已删除的数据。
6.根据权利要求1所述的方法,其特征在于,在通过陷门生成密钥对所述目标查询关键字进行处理生成查询密文之前,包括:
基于token/nonce的陷门生成算法得到陷门生成密钥。
7.一种基于可搜索加密的密文数据库查询系统,其特征在于,所述系统包括:
数据加密模块,用于获取明文源数据,所述明文源数据中包括数据文件名和数据内容;基于数据加密密钥对所述数据内容进行数据加密得到密文数据内容;
密文索引库构造模块,用于对所述数据内容进行关键字提取得到关键字列表,并根据所述数据文件名基于索引生成密钥得到密文索引库,并将所述密文数据内容和所述密文索引库对应存储进密文数据库;
密文数据库存储模块,用于对密文数据内容和密文索引库进行存储;
查询陷门生成模块,用于获取目标查询关键字,通过陷门生成密钥对所述目标查询关键字进行处理生成查询密文;
密文索引库查询模块,基于所述查询密文在密文索引库中进行查询得到密文查询结果并获取其对应的密文数据内容;
数据解密模块,用于基于数据解密密钥对所述密文数据内容进行数据解密得到明文数据内容。
8.根据权利要求7所述的系统,其特征在于,所述系统还包括:
密钥管理和授权模块,响应于明文源数据提供方的解密授权请求,生成该明文源数据的数据解密密钥。
9.根据权利要求7所述的系统,其特征在于,所述数据加密模块包括:
通过分组加密算法对数据内容进行加密,其中,所述分组加密算法至少包括AES算法和SM4算法。
10.根据权利要求7所述的系统,其特征在于,所述密文数据库存储模块,还包括:
建立数据删除表,所述数据删除表用于记录被删除的数据,当查询结果包含被删除的数据,则在解密时通过访问这个表跳过被删除数据的解密操作,从而返回的查询结果中不会包含已删除的数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211007665 | 2022-08-22 | ||
CN2022110076656 | 2022-08-22 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115459967A true CN115459967A (zh) | 2022-12-09 |
Family
ID=84297869
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211027665.2A Pending CN115459967A (zh) | 2022-08-22 | 2022-08-25 | 一种基于可搜索加密的密文数据库查询方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115459967A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115514481A (zh) * | 2022-09-30 | 2022-12-23 | 上海同态信息科技有限责任公司 | 一种基于可搜索加密技术的密文查询方法、系统、设备及终端 |
CN116305293B (zh) * | 2023-05-15 | 2023-08-22 | 杭州安司源科技有限公司 | 加密搜索方法和加密搜索系统 |
CN116662388A (zh) * | 2023-05-24 | 2023-08-29 | 山东浪潮科学研究院有限公司 | 一种高效的隐匿查询方法和系统 |
CN116701493A (zh) * | 2023-08-07 | 2023-09-05 | 中电信量子科技有限公司 | 支持模糊查询的数据库操作方法及用户端 |
CN118550957A (zh) * | 2024-07-26 | 2024-08-27 | 中国兵工物资集团有限公司 | 一种加密数据库的建立及模糊查询方法 |
CN118627130A (zh) * | 2024-08-13 | 2024-09-10 | 天翼视联科技有限公司 | 密态模糊搜索方法、装置以及计算机设备 |
-
2022
- 2022-08-25 CN CN202211027665.2A patent/CN115459967A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115514481A (zh) * | 2022-09-30 | 2022-12-23 | 上海同态信息科技有限责任公司 | 一种基于可搜索加密技术的密文查询方法、系统、设备及终端 |
CN116305293B (zh) * | 2023-05-15 | 2023-08-22 | 杭州安司源科技有限公司 | 加密搜索方法和加密搜索系统 |
CN116662388A (zh) * | 2023-05-24 | 2023-08-29 | 山东浪潮科学研究院有限公司 | 一种高效的隐匿查询方法和系统 |
CN116701493A (zh) * | 2023-08-07 | 2023-09-05 | 中电信量子科技有限公司 | 支持模糊查询的数据库操作方法及用户端 |
CN116701493B (zh) * | 2023-08-07 | 2023-10-31 | 中电信量子科技有限公司 | 支持模糊查询的数据库操作方法及用户端 |
CN118550957A (zh) * | 2024-07-26 | 2024-08-27 | 中国兵工物资集团有限公司 | 一种加密数据库的建立及模糊查询方法 |
CN118627130A (zh) * | 2024-08-13 | 2024-09-10 | 天翼视联科技有限公司 | 密态模糊搜索方法、装置以及计算机设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022007889A1 (zh) | 基于区块链与同态加密的可搜索加密数据共享方法及系统 | |
CN103731432B (zh) | 一种支持多用户的可搜索加密方法 | |
CN115459967A (zh) | 一种基于可搜索加密的密文数据库查询方法及系统 | |
US7373330B1 (en) | Method and apparatus for tracking and controlling e-mail forwarding of encrypted documents | |
Salam et al. | Implementation of searchable symmetric encryption for privacy-preserving keyword search on cloud storage | |
CN108959567B (zh) | 一种云环境下适用于大规模图像的安全检索方法 | |
CN108494768A (zh) | 一种支持访问控制的密文搜索方法及系统 | |
CN109361644B (zh) | 一种支持快速搜索和解密的模糊属性基加密方法 | |
CN112685753B (zh) | 一种用于加密数据存储的方法及设备 | |
Yang et al. | MU-TEIR: Traceable encrypted image retrieval in the multi-user setting | |
CN111159352B (zh) | 一种支持多关键词加权检索和结果排序且可验证的加解密方法 | |
Rashid et al. | Secure enterprise data deduplication in the cloud | |
CN117454414A (zh) | 一种基于分布式存储的动态可搜索加密方法及系统 | |
KR101140576B1 (ko) | 암호화 문서에 대한 다자간 검색 시스템 및 그 방법 | |
Verma | Secure client-side deduplication scheme for cloud with dual trusted execution environment | |
Cui et al. | Harnessing encrypted data in cloud for secure and efficient image sharing from mobile devices | |
Shen et al. | Multi-keywords searchable attribute-based encryption with verification and attribute revocation over cloud data | |
CN107454059A (zh) | 一种云储存环境下基于序列密码的搜索加密方法 | |
CN119311644A (zh) | 一种基于硬件加密卡的同态加密密文检索方法及系统 | |
KR102386717B1 (ko) | 익명 사용자 속성기반의 데이터 접근 제어 시스템 및 방법 | |
CN118094636B (zh) | 一种具有多层级权限访问控制的数据检索方法及系统 | |
KR101422759B1 (ko) | 데이터 위탁 환경에서 결탁을 방지하는 데이터 저장 및 공유 방법 | |
CN117744120B (zh) | 一种多用户可搜索加密方法及系统 | |
Yan et al. | Secure and efficient big data deduplication in fog computing | |
CN115694921B (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 |