CN116701493A - 支持模糊查询的数据库操作方法及用户端 - Google Patents

支持模糊查询的数据库操作方法及用户端 Download PDF

Info

Publication number
CN116701493A
CN116701493A CN202310982875.5A CN202310982875A CN116701493A CN 116701493 A CN116701493 A CN 116701493A CN 202310982875 A CN202310982875 A CN 202310982875A CN 116701493 A CN116701493 A CN 116701493A
Authority
CN
China
Prior art keywords
data
database
byte
encryption key
statement
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
CN202310982875.5A
Other languages
English (en)
Other versions
CN116701493B (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.)
China Telecom Quantum Technology Co ltd
Original Assignee
China Telecom Quantum Technology 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 China Telecom Quantum Technology Co ltd filed Critical China Telecom Quantum Technology Co ltd
Priority to CN202310982875.5A priority Critical patent/CN116701493B/zh
Publication of CN116701493A publication Critical patent/CN116701493A/zh
Application granted granted Critical
Publication of CN116701493B publication Critical patent/CN116701493B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2468Fuzzy queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • 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
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Fuzzy Systems (AREA)
  • Automation & Control Theory (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开一种支持模糊查询的数据库操作方法及用户端,方法包括截获用户端对数据库的insert语句;调用数据库密码机采用数据加密密钥对insert语句中的明文数据进行加密得到第一密文数据;调用数据库密码机对insert语句中每列明文数据按字节采用每列对应的单字节加密密钥进行单字节加密处理,得到辅助数据;将insert语句中的明文数据替换为拼接后的第一密文数据和辅助数据并发送至数据库服务器以使数据库服务器将第一密文数据和辅助数据存入同一列表项;本发明方便用户对加密列的数据进行模糊查找,且不会增加明文泄露风险,存储容量仅增加一倍。

Description

支持模糊查询的数据库操作方法及用户端
技术领域
本发明涉及密码应用技术领域,具体涉及一种支持模糊查询的数据库操作方法及用户端。
背景技术
数据库的数据加密以后,对其内容的查询会存在一定的问题,特别是对于模糊查找,因为数据库中的每一条数据内容都是整体进行加密,精确查找可以对需要查找的内容进行同样算法和相同密钥的加密,然后比较匹配即可,而模糊查询时只是对部分查找关键词进行,对这部分需查找的关键词,即使采用同样算法和相同密钥,加密后的结果与包括该关键词的数据内容整体加密的结果也完全无法匹配。如果对数据库被查找列各条数据逐一解密后进行比较匹配,效率和安全性都非常低。
当前常用的方案,是对数据内容进行分词处理,即从数据内容中拆分和组合出常用的关键词,然后对这些关键词进行加密处理后组成集合,模糊查询时加密查询关键词并先在关键词密文集合中比较匹配,比如公布号为CN114201532A和公布号为CN113076562A的专利申请文献都是基于分词原理,即将明文分出很多小的字段进行加密,形成模糊查询的检索集合,但这种方法如果要覆盖所有的分词组合,所得的集合将远远超出加密数据内容本身容量,存储量和运算量都相当大。
发明内容
本发明所要解决的技术问题在于如何提供一种支持模糊查询的数据库操作方法,实现对数据库加密内容进行模糊查找,且存储容量不高。
本发明是通过以下技术手段解决上述技术问题的:
一方面,本发明提出了一种支持模糊查询的数据库操作方法,应用于用户端,所述方法包括:
截获用户端对数据库的insert语句;
调用数据库密码机采用数据加密密钥对所述insert语句中的明文数据进行加密得到第一密文数据;
调用所述数据库密码机对所述insert语句中每列明文数据按字节采用每列对应的单字节加密密钥进行单字节加密处理,得到辅助数据;
将所述insert语句中的明文数据替换为拼接后的所述第一密文数据和所述辅助数据并发送至数据库服务器以使所述数据库服务器将所述第一密文数据和所述辅助数据存入同一列表项。
进一步地,在所述截获用户端对数据库的insert语句之前,所述方法还包括:
获取用户端对数据库的数据定义语句;
基于所述数据定义语句的内容,向所述数据库密码机发送密钥申请信息;
接收所述数据库密码机反馈的每个新建列对应的各密钥ID和随机数,各密钥ID包括数据加密密钥的ID、单字节混淆密钥的ID和单字节加密密钥的ID,所述单字节加密密钥包括所述单字节混淆密钥和所述单字节加密密钥。
进一步地,在所述截获用户端对数据库的insert语句之前,所述方法还包括:
为用户端产生公私钥对,并将用户端的第一公钥导入所述数据库密码机;
接收所述数据库密码机产生的第二公钥,建立TLS安全通道。
进一步地,所述调用数据库密码机采用数据加密密钥对所述insert语句中的明文数据进行加密得到第一密文数据,包括:
基于所述insert语句中新增数据行中每列明文数据对应的数据加密密钥的ID,调用所述数据库密码机采用与该数据加密密钥的ID对应的数据加密密钥对所述insert语句中的明文数据进行对称分组加密,得到所述密文数据。
进一步地,所述调用所述数据库密码机对所述insert语句中每列明文数据按字节采用每列对应的单字节加密密钥进行单字节加密处理,得到辅助数据,包括:
基于所述insert语句中新增数据行下的每列数据对应的单字节加密密钥的ID,调用所述数据库密码机采用相应的单字节加密密钥进行单字节加密处理;
接收所述数据库密码机每次进行单字节加密处理返回的一个字节,按序将返回的字节组合成与该列密文数据等长的辅助数据。
进一步地,所述单字节加密密钥包括单字节混淆密钥、单字节加密密钥以及随机数;
所述基于所述insert语句中新增数据行下的每列数据对应的单字节加密密钥的ID,调用所述数据库密码机采用相应的单字节加密密钥进行单字节加密处理,包括:
基于insert语句中新增数据行下的每列数据对应的单字节混淆密钥的ID、单字节加密密钥的ID和随机数,调用所述数据库密码机采用相应的随机数对该列数据进行分组长度取模,并在根据所述取模结果选取单字节混淆密钥的对应字节以将该字节与需要加密的单字节进行异或操作后,采用单字节加密密钥对单字节混淆密钥进行对称分组加密,得到加密结果;
相应地,所接收的所述数据库密码机返回的字节为从加密结果中选取与所述取模结果对应的字节。
进一步地,所述方法还包括:
截获用户端对数据库的读操作语句;
调用所述数据库密码机对所述读操作语句中的模糊查找关键词按字节采用相关列对应的单字节加密密钥进行单字节加密处理;
接收所述数据库密码机对模糊查找关键词每字节进行加密处理返回的一个字节,并将返回的字节按序组合后替换所述读操作语句中的明文关键词,得到新的读操作语句;
将新的读操作语句发送至所述数据库服务器,以使所述数据库服务器执行新的读操作语句,查询对应的数据行;
接收所述数据库服务器返回的数据行,并基于该数据行各列对应的数据加密密钥的ID,调用所述数据库密码机采用对应的数据加密密钥该数据行每列数据进行对称分组解密,得到与所述模糊查找关键词对应的明文数据;
接收所述数据库密码机返回的所述明文数据。
进一步地,所述方法还包括:
截获用户端对数据库的写操作语句;
调用所述数据库密码机对所述写操作语句中的模糊查找关键词按字节采用相关列对应的单字节加密密钥进行单字节加密处理,得到密文关键词;
根据与所述写操作语句相关的列对应的数据加密密钥ID,调用所述数据库密码机对所述写操作语句中的明文数据进行对称分组加密处理,得到第二密文数据;
根据与所述写操作语句相关的列对应的单字节加密密钥的ID,调用所述数据库密码机对所述写操作语句中的该列明文数据进行单字节加密处理;
接收所述数据库密码机每次进行单字节加密处理返回的一个字节,按序将返回的字节组合成与该第二密文数据等长的查询辅助数据;
将所述查询辅助数据与所述第二密文数据拼接后替换所述写操作语句中的明文数据,得到新的写操作语句;
将新的写操作语句发送至所述数据库服务器,以使所述数据库服务器将所述查询辅助数据和所述第二密文数据存入所述密文关键词命中的数据库的行。
进一步地,所述方法还包括:
截获用户端对数据库的包含模糊查找操作的语句;
调用所述数据库密码机对语句中的模糊查找关键词按字节采用相关列对应的单字节加密密钥进行单字节加密处理,得到密文关键词;
将所述密文关键词替换所述包含模糊查找操作的语句中的明文关键词,得到新的包含模糊查找操作的语句;
将新的包含模糊查找操作的语句发送至所述数据库服务器,以使所述数据库服务器执行删除所述密文关键词匹配命中的数据库的行数据。
此外,本发明还提出了一种用户端,所述用户端中部署有服务网格,所述服务网格用于执行如上所述的支持模糊查询的数据库操作方法。
本发明的优点在于:
(1)本发明通过为需要加密的数据库列建立辅助数据,针对每个明文字节只增加一个辅助查找字节,方便用户对该加密列的数据进行模糊查找,查找辅助数据是针对每个字节进行加密变换,查找时效率和灵活性更高;而且建立的查询辅助数据,基于同样强度的密码算法和密钥长度,不会增加明文泄露风险,存储容量仅增加一倍。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
图1是本发明一实施例提出的一种支持模糊查询的数据库操作方法的流程示意图;
图2是本发明一实施例提出的一种支持模糊查询的数据库操作系统的结构示意图;
图3是本发明一实施例提出的一种支持模糊查询的数据库操作系统的工作流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明一实施例公开了一种支持模糊查询的数据库操作方法,应用于用户端,所述方法包括以下步骤:
S10、截获用户端对数据库的insert语句;
S20、调用数据库密码机采用数据加密密钥对所述insert语句中的明文数据进行加密得到第一密文数据;
S30、调用所述数据库密码机对所述insert语句中每列明文数据按字节采用每列对应的单字节加密密钥进行单字节加密处理,得到辅助数据;
S40、将所述insert语句中的明文数据替换为拼接后的所述第一密文数据和所述辅助数据并发送至数据库服务器以使所述数据库服务器将所述第一密文数据和所述辅助数据存入同一列表项。
本实施例调用数据库密码机采用数据加密密钥对明文数据进行加密得到第一密文数据,采用每列明文数据对应的单字节加密密钥进行单字节加密处理,得到辅助数据,并将第一密文数据和辅助数据一起存入数据库中的同一列表项;通过为需要加密的数据库列建立辅助数据,方便用户对该加密列的数据进行模糊查找,而且建立的查询辅助数据,基于同样强度的密码算法和密钥长度,不会增加明文泄露风险,存储容量仅增加一倍。
在一实施例中,在所述步骤S10:截获用户端对数据库的insert语句之前,所述方法还包括以下步骤:
获取用户端对数据库的数据定义语句;
基于所述数据定义语句的内容,向所述数据库密码机发送密钥申请信息;
接收所述数据库密码机反馈的每个新建列对应的各密钥ID和随机数,各密钥ID包括数据加密密钥的ID、单字节混淆密钥的ID和单字节加密密钥的ID,所述单字节加密密钥包括所述单字节混淆密钥和所述单字节加密密钥。
本实施例在用户端部署服务网格,用于获取用户对数据库的DDL语句(数据库定义语句)内容,并为每个新建列向数据库密码机申请三支对称加密密钥,分别为:数据加密密钥、单字节混淆密钥(与对称密码算法分组长度等长)、单字节加密密钥和一个随机数,并保存数据库密码机返回的各密钥ID和随机数至用户端。
其中,数据加密密钥用于对明文数据进行加密处理,单字节混淆密钥、单字节加密密钥和随机数构成所述单字节加密密钥,用于对每列数据按字节进行单字节特殊加密处理。
在一实施例中,在所述步骤S10:截获用户端对数据库的insert语句之前,所述方法还包括以下步骤:
为用户端产生公私钥对,并将用户端的第一公钥导入所述数据库密码机;
接收所述数据库密码机产生的第二公钥,建立TLS安全通道。
具体地,本实施例通过为各用户端的设备或应用安装服务网格,服务网格为用户产生公私钥对,将各用户的公钥导入数据库密码机,数据库密码机产生设备公私钥对并将设备公钥导入各服务网格,各服务网格和数据库密码机之间基于以上公私钥对建立TLS安全通道。
在一实施例中,所述步骤S20:调用数据库密码机采用数据加密密钥对所述insert语句中的明文数据进行加密得到第一密文数据,具体包括:
基于所述insert语句中新增数据行中每列明文数据对应的数据加密密钥的ID,调用所述数据库密码机采用与该数据加密密钥的ID对应的数据加密密钥对所述insert语句中的明文数据进行对称分组加密,得到所述密文数据。
在一实施例中,所述步骤S30:调用所述数据库密码机对所述insert语句中每列明文数据按字节采用每列对应的单字节加密密钥进行单字节加密处理,得到辅助数据,具体包括以下步骤:
S31、基于所述insert语句中新增数据行下的每列数据对应的单字节加密密钥的ID,调用所述数据库密码机采用相应的单字节加密密钥进行单字节加密处理;
S32、接收所述数据库密码机每次进行单字节加密处理返回的一个字节,按序将返回的字节组合成与该列密文数据等长的辅助数据。
在一实施例中,所述步骤S31:基于所述insert语句中新增数据行下的每列数据对应的单字节加密密钥的ID,调用所述数据库密码机采用相应的单字节加密密钥进行单字节加密处理,包括以下步骤:
基于insert语句中新增数据行下的每列数据对应的单字节混淆密钥的ID、单字节加密密钥的ID和随机数,调用所述数据库密码机采用相应的随机数对该列数据进行分组长度取模,并在根据所述取模结果选取单字节混淆密钥的对应字节以将该字节与需要加密的单字节进行异或操作后,采用单字节加密密钥对单字节混淆密钥进行对称分组加密,得到加密结果;
相应地,所接收的所述数据库密码机返回的字节为从加密结果中选取与所述取模结果对应的字节。
需要说明的是,本实施例利用数据库密码机对每列insert的明文数据按字节采用该列对应的单字节混淆密钥ID、单字节加密密钥ID、随机数逐个调用数据库密码机进行单字节特殊加密处理,数据库密码机的单字节特殊加密处理过程如下:采用随机数(对称密码算法)对分组长度取模,根据取模结果选取单字节混淆密钥的对应字节,将该字节与需要加密的单字节进行异或,然后采用单字节加密密钥对单字节混淆密钥进行对称分组加密,从加密结果中选取上述取模结果对应字节作为返回结果,按序将返回的字节组合成与该列密文数据等长的数据作为辅助数据,并将辅助数据和密文数据拼接在一起替换明文insert数据,在数据库服务器执行该insert语句,将密文数据和辅助数据一起存入数据库的同一个列表项。
在一实施例中,所述方法还包括以下步骤:
截获用户端对数据库的读操作语句;
调用所述数据库密码机对所述读操作语句中的模糊查找关键词按字节采用相关列对应的单字节加密密钥进行单字节加密处理;
接收所述数据库密码机对模糊查找关键词每字节进行加密处理返回的一个字节,并将返回的字节按序组合后替换所述读操作语句中的明文关键词,得到新的读操作语句;
将新的读操作语句发送至所述数据库服务器,以使所述数据库服务器执行新的读操作语句,查询对应的数据行;
接收所述数据库服务器返回的数据行,并基于该数据行各列对应的数据加密密钥的ID,调用所述数据库密码机采用对应的数据加密密钥该数据行每列数据进行对称分组解密,得到与所述模糊查找关键词对应的明文数据;
接收所述数据库密码机返回的所述明文数据。
具体地,服务网格截获用户对数据库的select等读语句,对读语句中涉及到的模糊查找关键词,调用数据库密码机对关键词按字节采用相关列对应的单字节混淆密钥、单字节加密密钥、随机数逐个调用数据库密码机进行单字节特殊加密处理,返回的字节按序组合后替换select语句的明文关键词,在数据库服务器执行该select语句,命中返回的数据行再采用该行各列对应的数据加密密钥的ID调用数据库密码机对该列数据进行对称分组解密得到明文数据并返给用户端。
在一实施例中,所述方法还包括以下步骤:
截获用户端对数据库的写操作语句;
调用所述数据库密码机对所述写操作语句中的模糊查找关键词按字节采用相关列对应的单字节加密密钥进行单字节加密处理,得到密文关键词;
根据与所述写操作语句相关的列对应的数据加密密钥ID,调用所述数据库密码机对所述写操作语句中的明文数据进行对称分组加密处理,得到第二密文数据;
根据与所述写操作语句相关的列对应的单字节加密密钥的ID,调用所述数据库密码机对所述写操作语句中的该列明文数据进行单字节加密处理;
接收所述数据库密码机每次进行单字节加密处理返回的一个字节,按序将返回的字节组合成与该第二密文数据等长的查询辅助数据;
将所述查询辅助数据与所述第二密文数据拼接后替换所述写操作语句中的明文数据,得到新的写操作语句;
将新的写操作语句发送至所述数据库服务器,以使所述数据库服务器将所述查询辅助数据和所述第二密文数据存入所述密文关键词命中的数据库的行。
具体地,服务网格截获用户对数据库的update等包含模糊查找操作的写语句,对其包含的模糊查找关键词调用数据库密码机进行单字节特殊加密处理后形成密文关键词替换明文关键词,然后采用需update的相关列对应的数据加密密钥ID调用数据库密码机对update的明文数据进行对称分组加密得到密文数据,并对需update的相关列的update的明文数据按字节采用该列对应的单字节混淆密钥ID、单字节加密密钥ID、随机数逐个调用数据库密码机进行单字节特殊加密处理,按序将返回的字节组合成与该列密文数据等长的数据作为查询辅助数据并与密文数据拼接后替换明文update数据,在数据库服务器执行该update语句,将新的密文数据和辅助数据一起存入密文关键词匹配命中的数据库的行。
在一实施例中,所述方法还包括以下步骤:
截获用户端对数据库的包含模糊查找操作的语句;
调用所述数据库密码机对语句中的模糊查找关键词按字节采用相关列对应的单字节加密密钥进行单字节加密处理,得到密文关键词;
将所述密文关键词替换所述包含模糊查找操作的语句中的明文关键词,得到新的包含模糊查找操作的语句;
将新的包含模糊查找操作的语句发送至所述数据库服务器,以使所述数据库服务器执行删除所述密文关键词匹配命中的数据库的行数据。
具体地,服务网格截获用户对数据库的delete等无实际读写内容但包含模糊查找操作的语句,首先对模糊查找关键词调用数据库密码机进行单字节特殊加密处理后形成密文关键词替换明文关键词,然后在数据库服务器执行该delete语句,删除密文关键词匹配命中的数据库的行。
在一实施例中,本发明还公开了一种用户端,所述用户端中部署有服务网格,所述服务网格用于执行如上述实施例所述的支持模糊查询的数据库操作方法,其中,服务网格为以sidecar方式运行的网络服务代理,具备路由、流控、身份认证、访问控制、流量分析、加密安全连接等安全功能,是用户端侧设备或应用的安全代理,服务网格对于访问数据库的读写流量调用数据库密码机进行加解密处理的具体实施例或具有实现方法可参照上述各方法实施例,此处不再赘余。
此外,如图2所示,本发明一实施例还提出了一种支持模糊查询的数据库操作系统,所述系统包括:第一用户端、第二用户端、数据库服务器和数据库密码机,所述第一用户端和所述第二用户端均分别与所述数据库服务器和所述数据库密码机连接;其中:
所述第一用户端和所述第二用户端均部署有服务网格,该服务网格用于执行如上实施例所述的支持模数查询的数据库操作方法。
具体地,本实施例提出的支持模数查询的数据库操作系统的工作流程如图3所示,其中,用户端一般是调用数据库客户端对数据库进行远程操作的用户端侧设备或应用。
服务网格为以sidecar方式运行的网络服务代理,具备路由、流控、身份认证、访问控制、流量分析、加密安全连接等安全功能,是用户端侧设备或应用的安全代理。本方案中的服务网格负责对于访问数据库的读写流量调用数据库密码机进行加解密处理。
数据库密码机为符合安全要求的硬件密码设备,内置随机数发生器和安全存储器,从随机数发生器采集合格的随机数作为密钥,并存入安全存储器,使用统一编号的密钥ID进行识别和索引。
数据库服务器为用户提供公有数据库服务的设备,该设备具备通用性,为运行关系型数据库。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (10)

1.一种支持模糊查询的数据库操作方法,其特征在于,应用于用户端,所述方法包括:
截获用户端对数据库的insert语句;
调用数据库密码机采用数据加密密钥对所述insert语句中的明文数据进行加密得到第一密文数据;
调用所述数据库密码机对所述insert语句中每列明文数据按字节采用每列对应的单字节加密密钥进行单字节加密处理,得到辅助数据;
将所述insert语句中的明文数据替换为拼接后的所述第一密文数据和所述辅助数据并发送至数据库服务器以使所述数据库服务器将所述第一密文数据和所述辅助数据存入同一列表项。
2.如权利要求1所述的支持模糊查询的数据库操作方法,其特征在于,在所述截获用户端对数据库的insert语句之前,所述方法还包括:
获取用户端对数据库的数据定义语句;
基于所述数据定义语句的内容,向所述数据库密码机发送密钥申请信息;
接收所述数据库密码机反馈的每个新建列对应的各密钥ID和随机数,各密钥ID包括数据加密密钥的ID、单字节混淆密钥的ID和单字节加密密钥的ID,所述单字节加密密钥包括所述单字节混淆密钥和所述单字节加密密钥。
3.如权利要求1所述的支持模糊查询的数据库操作方法,其特征在于,在所述截获用户端对数据库的insert语句之前,所述方法还包括:
为用户端产生公私钥对,并将用户端的第一公钥导入所述数据库密码机;
接收所述数据库密码机产生的第二公钥,建立TLS安全通道。
4.如权利要求1所述的支持模糊查询的数据库操作方法,其特征在于,所述调用数据库密码机采用数据加密密钥对所述insert语句中的明文数据进行加密得到第一密文数据,包括:
基于所述insert语句中新增数据行中每列明文数据对应的数据加密密钥的ID,调用所述数据库密码机采用与该数据加密密钥的ID对应的数据加密密钥对所述insert语句中的明文数据进行对称分组加密,得到所述密文数据。
5.如权利要求1所述的支持模糊查询的数据库操作方法,其特征在于,所述调用所述数据库密码机对所述insert语句中每列明文数据按字节采用每列对应的单字节加密密钥进行单字节加密处理,得到辅助数据,包括:
基于所述insert语句中新增数据行下的每列数据对应的单字节加密密钥的ID,调用所述数据库密码机采用相应的单字节加密密钥进行单字节加密处理;
接收所述数据库密码机每次进行单字节加密处理返回的一个字节,按序将返回的字节组合成与当前列密文数据等长的辅助数据。
6.如权利要求5所述的支持模糊查询的数据库操作方法,其特征在于,所述单字节加密密钥包括单字节混淆密钥、单字节加密密钥以及随机数;
所述基于所述insert语句中新增数据行下的每列数据对应的单字节加密密钥的ID,调用所述数据库密码机采用相应的单字节加密密钥进行单字节加密处理,包括:
基于insert语句中新增数据行下的每列数据对应的单字节混淆密钥的ID、单字节加密密钥的ID和随机数,调用所述数据库密码机采用相应的随机数对该列数据进行分组长度取模,并在根据取模结果选取单字节混淆密钥的对应字节以将该字节与需要加密的单字节进行异或操作后,采用单字节加密密钥对单字节混淆密钥进行对称分组加密,得到加密结果;
相应地,所接收的所述数据库密码机返回的字节为从加密结果中选取与所述取模结果对应的字节。
7.如权利要求1所述的支持模糊查询的数据库操作方法,其特征在于,所述方法还包括:
截获用户端对数据库的读操作语句;
调用所述数据库密码机对所述读操作语句中的模糊查找关键词按字节采用相关列对应的单字节加密密钥进行单字节加密处理;
接收所述数据库密码机对模糊查找关键词每字节进行加密处理返回的一个字节,并将返回的字节按序组合后替换所述读操作语句中的明文关键词,得到新的读操作语句;
将新的读操作语句发送至所述数据库服务器,以使所述数据库服务器执行新的读操作语句,查询对应的数据行;
接收所述数据库服务器返回的数据行,并基于该数据行各列对应的数据加密密钥的ID,调用所述数据库密码机采用对应的数据加密密钥该数据行每列数据进行对称分组解密,得到与所述模糊查找关键词对应的明文数据;
接收所述数据库密码机返回的所述明文数据。
8.如权利要求1所述的支持模糊查询的数据库操作方法,其特征在于,所述方法还包括:
截获用户端对数据库的写操作语句;
调用所述数据库密码机对所述写操作语句中的模糊查找关键词按字节采用相关列对应的单字节加密密钥进行单字节加密处理,得到密文关键词;
根据与所述写操作语句相关的列对应的数据加密密钥ID,调用所述数据库密码机对所述写操作语句中的明文数据进行对称分组加密处理,得到第二密文数据;
根据与所述写操作语句相关的列对应的单字节加密密钥的ID,调用所述数据库密码机对所述写操作语句中的该列明文数据进行单字节加密处理;
接收所述数据库密码机每次进行单字节加密处理返回的一个字节,按序将返回的字节组合成与该第二密文数据等长的查询辅助数据;
将所述查询辅助数据与所述第二密文数据拼接后替换所述写操作语句中的明文数据,得到新的写操作语句;
将新的写操作语句发送至所述数据库服务器,以使所述数据库服务器将所述查询辅助数据和所述第二密文数据存入所述密文关键词命中的数据库的行。
9.如权利要求1所述的支持模糊查询的数据库操作方法,其特征在于,所述方法还包括:
截获用户端对数据库的包含模糊查找操作的语句;
调用所述数据库密码机对语句中的模糊查找关键词按字节采用相关列对应的单字节加密密钥进行单字节加密处理,得到密文关键词;
将所述密文关键词替换所述包含模糊查找操作的语句中的明文关键词,得到新的包含模糊查找操作的语句;
将新的包含模糊查找操作的语句发送至所述数据库服务器,以使所述数据库服务器执行删除所述密文关键词匹配命中的数据库的行数据。
10.一种用户端,其特征在于,所述用户端中部署有服务网格,所述服务网格用于执行如权利要求1~9任一项所述的支持模糊查询的数据库操作方法。
CN202310982875.5A 2023-08-07 2023-08-07 支持模糊查询的数据库操作方法及用户端 Active CN116701493B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310982875.5A CN116701493B (zh) 2023-08-07 2023-08-07 支持模糊查询的数据库操作方法及用户端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310982875.5A CN116701493B (zh) 2023-08-07 2023-08-07 支持模糊查询的数据库操作方法及用户端

Publications (2)

Publication Number Publication Date
CN116701493A true CN116701493A (zh) 2023-09-05
CN116701493B CN116701493B (zh) 2023-10-31

Family

ID=87841869

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310982875.5A Active CN116701493B (zh) 2023-08-07 2023-08-07 支持模糊查询的数据库操作方法及用户端

Country Status (1)

Country Link
CN (1) CN116701493B (zh)

Citations (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106326360A (zh) * 2016-08-10 2017-01-11 武汉科技大学 一种云环境中密文数据的模糊多关键词检索方法
US20170063528A1 (en) * 2014-05-14 2017-03-02 Samsung Electronics Co., Ltd. Method and apparatus for encrypting data
CN106874401A (zh) * 2016-12-30 2017-06-20 中安威士(北京)科技有限公司 一种面向数据库加密字段模糊检索的密文索引方法
US20200074109A1 (en) * 2016-12-02 2020-03-05 Equifax Inc. Generating and processing obfuscated sensitive information
US20200210595A1 (en) * 2018-12-30 2020-07-02 Sze Yuen Wong CryptoJSON Indexed Search Systems and Methods
CN111475543A (zh) * 2020-03-27 2020-07-31 深圳壹账通智能科技有限公司 一种模糊搜索方法、装置、计算机设备及存储介质
CN111552849A (zh) * 2020-03-19 2020-08-18 西安电子科技大学 可搜索加密方法、系统、存储介质、车载网、智能电网
US20200372023A1 (en) * 2018-02-07 2020-11-26 South China University Of Technology Full-text fuzzy search method for similar-form chinese characters in ciphertext domain
US20210042305A1 (en) * 2019-08-08 2021-02-11 Cisco Technology, Inc. Systems and methods for fuzzy search without full text
CN112380557A (zh) * 2020-12-01 2021-02-19 江西师范大学 一种关系型数据库加密方法及该加密数据库查询方法
US10997301B1 (en) * 2020-04-20 2021-05-04 Cyberark Software Ltd. Variable encryption techniques for secure and efficient searchable encryption
CN112905669A (zh) * 2021-03-16 2021-06-04 吴伟峰 一种加密数据快速模糊查询方法
CN113076562A (zh) * 2021-05-08 2021-07-06 北京炼石网络技术有限公司 基于gcm加密模式的数据库加密字段模糊检索方法
US20210374268A1 (en) * 2020-05-26 2021-12-02 Intuit Inc. Fast querying of encrypted data set
CN113742362A (zh) * 2021-09-03 2021-12-03 西安电子科技大学 一种面向密态数据库的密文查询计算方法
CN114036565A (zh) * 2021-11-19 2022-02-11 上海勃池信息技术有限公司 隐私信息检索系统及隐私信息检索方法
CN114218582A (zh) * 2021-11-18 2022-03-22 厦门市美亚柏科信息股份有限公司 一种数据库的数据加密方法及终端
CN115168881A (zh) * 2022-06-24 2022-10-11 山东浪潮智慧医疗科技有限公司 支持模糊检索的信息加密方法及系统、检索方法及系统
CN115459967A (zh) * 2022-08-22 2022-12-09 翼方健数(北京)信息科技有限公司 一种基于可搜索加密的密文数据库查询方法及系统
US20230048229A1 (en) * 2021-08-03 2023-02-16 Zhejiang University Method for encrypting database supporting composable sql query
CN115712621A (zh) * 2022-11-15 2023-02-24 康键信息技术(深圳)有限公司 向数据库写入数据的方法以及从数据库读取数据的方法
CN115913621A (zh) * 2022-09-27 2023-04-04 中电信量子科技有限公司 适合云环境的数据库加密方法、终端及系统
US20230185800A1 (en) * 2021-12-14 2023-06-15 International Business Machines Corporation Secure database-as-a-service system

Patent Citations (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170063528A1 (en) * 2014-05-14 2017-03-02 Samsung Electronics Co., Ltd. Method and apparatus for encrypting data
CN106326360A (zh) * 2016-08-10 2017-01-11 武汉科技大学 一种云环境中密文数据的模糊多关键词检索方法
US20200074109A1 (en) * 2016-12-02 2020-03-05 Equifax Inc. Generating and processing obfuscated sensitive information
CN106874401A (zh) * 2016-12-30 2017-06-20 中安威士(北京)科技有限公司 一种面向数据库加密字段模糊检索的密文索引方法
US20200372023A1 (en) * 2018-02-07 2020-11-26 South China University Of Technology Full-text fuzzy search method for similar-form chinese characters in ciphertext domain
US20200210595A1 (en) * 2018-12-30 2020-07-02 Sze Yuen Wong CryptoJSON Indexed Search Systems and Methods
US20210042305A1 (en) * 2019-08-08 2021-02-11 Cisco Technology, Inc. Systems and methods for fuzzy search without full text
CN111552849A (zh) * 2020-03-19 2020-08-18 西安电子科技大学 可搜索加密方法、系统、存储介质、车载网、智能电网
CN111475543A (zh) * 2020-03-27 2020-07-31 深圳壹账通智能科技有限公司 一种模糊搜索方法、装置、计算机设备及存储介质
US10997301B1 (en) * 2020-04-20 2021-05-04 Cyberark Software Ltd. Variable encryption techniques for secure and efficient searchable encryption
US20210374268A1 (en) * 2020-05-26 2021-12-02 Intuit Inc. Fast querying of encrypted data set
CN112380557A (zh) * 2020-12-01 2021-02-19 江西师范大学 一种关系型数据库加密方法及该加密数据库查询方法
CN112905669A (zh) * 2021-03-16 2021-06-04 吴伟峰 一种加密数据快速模糊查询方法
CN113076562A (zh) * 2021-05-08 2021-07-06 北京炼石网络技术有限公司 基于gcm加密模式的数据库加密字段模糊检索方法
US20230048229A1 (en) * 2021-08-03 2023-02-16 Zhejiang University Method for encrypting database supporting composable sql query
CN113742362A (zh) * 2021-09-03 2021-12-03 西安电子科技大学 一种面向密态数据库的密文查询计算方法
CN114218582A (zh) * 2021-11-18 2022-03-22 厦门市美亚柏科信息股份有限公司 一种数据库的数据加密方法及终端
CN114036565A (zh) * 2021-11-19 2022-02-11 上海勃池信息技术有限公司 隐私信息检索系统及隐私信息检索方法
US20230185800A1 (en) * 2021-12-14 2023-06-15 International Business Machines Corporation Secure database-as-a-service system
CN115168881A (zh) * 2022-06-24 2022-10-11 山东浪潮智慧医疗科技有限公司 支持模糊检索的信息加密方法及系统、检索方法及系统
CN115459967A (zh) * 2022-08-22 2022-12-09 翼方健数(北京)信息科技有限公司 一种基于可搜索加密的密文数据库查询方法及系统
CN115913621A (zh) * 2022-09-27 2023-04-04 中电信量子科技有限公司 适合云环境的数据库加密方法、终端及系统
CN115712621A (zh) * 2022-11-15 2023-02-24 康键信息技术(深圳)有限公司 向数据库写入数据的方法以及从数据库读取数据的方法

Also Published As

Publication number Publication date
CN116701493B (zh) 2023-10-31

Similar Documents

Publication Publication Date Title
CN112800088B (zh) 基于双向安全索引的数据库密文检索系统及方法
US9509494B2 (en) Computer-implemented system and method for providing secure data processing in a cloud using discrete homomorphic encryption
US10614135B2 (en) Wildcard search in encrypted text using order preserving encryption
US7783899B2 (en) System and method for performing a conjunctive keyword search over encrypted data
US10554385B2 (en) Method for providing encrypted data in a database and method for searching on encrypted data
Chai et al. Verifiable symmetric searchable encryption for semi-honest-but-curious cloud servers
CN103107889B (zh) 一种可搜索的云计算环境数据加密存储系统和方法
US8533489B2 (en) Searchable symmetric encryption with dynamic updating
WO2021068726A1 (zh) 一种区块链中的交易哈希值存储和搜索方法及装置
Örencik et al. An efficient privacy-preserving multi-keyword search over encrypted cloud data with ranking
CN105138585B (zh) 数据库加密字段部分匹配查询方法及系统
Wang et al. Fast query over encrypted character data in database
US20090138698A1 (en) Method of searching encrypted data using inner product operation and terminal and server therefor
CN116186108A (zh) 加密敏感字段支持模糊查询的方法
Li et al. Enabling efficient fuzzy keyword search over encrypted data in cloud computing
CN106874379B (zh) 一种面向密文云存储的多维区间检索方法与系统
Meharwade et al. Efficient keyword search over encrypted cloud data
Zhang et al. Backward private dynamic searchable encryption with update pattern
Purushothama et al. Efficient query processing on outsourced encrypted data in cloud with privacy preservation
Chatterjee et al. Efficient backward private searchable encryption
EP2775420A1 (en) Semantic search over encrypted data
CN116701493B (zh) 支持模糊查询的数据库操作方法及用户端
US20240056427A1 (en) Private search service
CN108259172B (zh) 云存储系统中的密文搜索方法
Waage et al. Practical application of order-preserving encryption in wide column stores

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