CN110019994A - 数据加密、解密及查询方法、数据加密解密及查询装置 - Google Patents
数据加密、解密及查询方法、数据加密解密及查询装置 Download PDFInfo
- Publication number
- CN110019994A CN110019994A CN201711116308.2A CN201711116308A CN110019994A CN 110019994 A CN110019994 A CN 110019994A CN 201711116308 A CN201711116308 A CN 201711116308A CN 110019994 A CN110019994 A CN 110019994A
- Authority
- CN
- China
- Prior art keywords
- data
- subdata
- encrypted
- obtains
- query
- 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 57
- 230000002427 irreversible effect Effects 0.000 claims abstract description 64
- 230000002441 reversible effect Effects 0.000 claims description 32
- 238000004891 communication Methods 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 11
- 230000011218 segmentation Effects 0.000 claims description 10
- 238000013500 data storage Methods 0.000 claims description 7
- 238000012360 testing method Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 7
- 238000002474 experimental method Methods 0.000 description 7
- 238000012216 screening Methods 0.000 description 7
- 108020004414 DNA Proteins 0.000 description 4
- 241001269238 Data Species 0.000 description 4
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 3
- RTZKZFJDLAIYFH-UHFFFAOYSA-N Diethyl ether Chemical compound CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 238000001712 DNA sequencing Methods 0.000 description 1
- 108091028043 Nucleic acid sequence Proteins 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
-
- 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/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2107—File encryption
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本申请提供了数据加密、解密及查询方法、数据加密解密及查询装置,其中,数据加密方法包括:将原始数据切分为子数据;对所述子数据采用不可逆的加密算法进行加密,得到加密后的子数据。采用本申请实施例的加密方法,在后续查询的时候,会先对查询词也切分为子查询词,继而将子查询词在各加密后的子数据中进行匹配,从而实现加密查询,相比现有技术来说,本申请中查询数据的安全性较高。
Description
技术领域
本申请涉及数据处理技术领域,特别涉及一种数据加密方法、一种数据加密方法、数据查询方法,以及,一种数据加密装置、一种数据解密装置,以及,数据查询装置。
背景技术
目前,在进行数据存储时,可以采用数据库来存储数据。在从数据库中查询数据时,可以基于关键词进行查询。现有技术中,如果是加密存储,则数据库加密后,数据内容为密文,就无法再使用其中的子字符串匹配来查匹配的内容了。因此,对数据库中的密文可以预先建立索引字典,即分别建立关键词到各个密文的索引保存至索引字典中,然后在查询时通过查询该索引字典,再进一步查找到包含该关键词的数据。
还有另一种现有技术,在关键词查询时也可以先对数据库中的数据全部进行解密,再在全部数据都是明文的基础上进行关键词查询。
发明内容
发明人在研究过程中发现,第一种现有技术需要建立额外的索引,建立索引的过程较为复杂且索引字典会占用存储空间,并且索引中包括关键词所以有可能会泄露数据库中的加密内容。而第二种现有技术则需要在查询前对数据库中的所有数据都进行解密,在数据库中的数据量较大的情况下,使得过程较为缓慢且效率较为低下。
基于此,本申请提供了数据加密、解密和查询方法,用以采用在进行数据加密时,将原始数据先按照预设切分规则切分为子数据,例如各子数据的长度相同等,然后,对各个切分后的子数据采用带密钥的哈希加密算法进行加密,从而得到不可解密的、加密后的子数据。并且,在后续查询的时候,会先对查询词按照同样的预设切分规则切分为子查询词,继而将子查询词在各加密后的子数据中进行匹配,从而实现加密查询,相比现有技术来说,本申请实施例中查询数据的安全性较高。
并且,对于原始数据来讲,还会按照可解密的加密算法也进行一次加密,在需要验证匹配的加密后的子数据是否准确时,可以通过对匹配的加密的子数据进行解密,并直接进行未加密的查询词的校验即可实现筛选,即将不是用户希望查询到的数据筛选出来,保证查询结果的准确性,并且,因为不需要对全部的加密后的子数据进行解密,并且也不需要额外的建立索引字典,所以相比现有技术来说,也会提高查询效率,同时节省了索引字典所占用的存储空间。
本申请还提供了一种数据加密装置、数据解密装置,以及,数据查询装置,用以保证上述方法在实际中的实现及应用。
为了解决上述问题,本申请公开了一种数据加密方法,包括:
将原始数据切分为子数据;
对所述子数据采用不可逆的加密算法进行加密,得到加密后的子数据。
其中,所述将原始数据切分为子数据,包括:
确定需要切分的固定长度;
分别将所述原始数据中的各条数据,按照所述固定长度切分为与所述各条数据相对应的各子数据集合,所述子数据集合包括至少一个子数据。
其中,所述方法还包括:
将所述加密后的子数据和目标数据进行压缩。
其中,所述方法还包括:
对所述原始数据按照可逆的加密算法进行加密,得到目标数据。
本申请还提供了一种加密数据,所述加密数据包括:加密后的子数据,所述加密后的子数据通过以下方式得到:
将原始数据切分为子数据;
对所述子数据采用不可逆的加密算法进行加密,得到加密后的子数据。
其中,所述加密数据还包括:目标数据,所述目标数据通过以下方式得到:
对所述原始数据按照可逆的加密算法进行加密,得到目标数据。
本申请还提供了一种数据存储装置,所述数据存储装置用于存储加密后的子数据,所述加密后的子数据通过以下方式得到:
将原始数据切分为子数据;
对所述子数据采用不可逆的加密算法进行加密,得到加密后的子数据。
其中,所述装置还用于存储目标数据,所述目标数据通过以下方式得到:
对所述原始数据按照可逆的加密算法进行加密,得到目标数据。
本申请还提供了一种数据解密方法,包括:
接收待解密数据,所述待解密数据包括:已采用可逆的加密算法进行加密的目标数据,和,加密后的子数据;
按照所述可逆的加密算法对所述目标数据进行解密,得到原始数据;
将所述原始数据和所述加密后的子数据确定为解密后的数据。
本申请还提供了一种数据查询方法,包括:
接收输入的查询词;
按照不可逆的加密算法对所述查询词进行加密,得到加密后的查询词;
将所述加密后的查询词在加密数据中进行匹配,得到查询结果数据,所述加密数据为:将原始数据切分为子数据,并对所述子数据采用不可逆的加密算法进行加密得到的。
其中,所述按照不可逆的加密算法对所述查询词进行加密,得到加密后的查询词,包括:
确定需要切分的固定长度;
将所述查询词按照所述固定长度切分为至少一个子查询词;
对所述至少一个子查询词按照不可逆的加密算法进行加密,得到加密后的子查询词。
其中,所述将所述加密后的查询词在加密数据中进行匹配,得到查询结果数据,包括:
将所述加密后的查询词在加密数据中进行匹配,得到匹配的目标子数据;
以所述目标子数据对应的原始数据作为参考数据,对所述目标子数据进行校验;
将校验成功的目标子数据作为查询结果数据。
其中,所述以所述目标子数据对应的原始数据作为参考数据,对所述目标子数据进行校验,包括:
获取所述目标子数据所属的、至少一条目标数据;
对所述至少一条目标数据进行解密,得到与所述至少一条目标数据对应的至少一条原始数据;
将所述查询词与所述至少一条原始数据是否匹配的判断结果,作为所述各加密后的子数据的校验结果。
本申请还提供了一种数据查询方法,包括:
在接收到用户的数据查询请求后,将所述数据获取请求包括的查询词发送至服务器;
接收服务器返回的查询结果,并在结果页面上进行展示;
其中,所述查询结果通过以下方式得到:
按照不可逆的加密算法对所述查询词进行加密,得到加密后的查询词;以及,将所述加密后的查询词在加密数据中进行匹配,得到查询结果数据,所述加密数据为:将原始数据切分为子数据,并对所述子数据采用不可逆的加密算法进行加密得到的。
本申请还提供了一种数据加密装置,包括:
处理器,用于将原始数据切分为子数据;对所述子数据采用不可逆的加密算法进行加密,得到加密后的子数据;
通信接口,用于输出所述加密后的子数据。
其中,所述处理器用于按照预设切分规则将待加密的原始数据切分为子数据,包括:
确定需要切分的固定长度;
分别将所述原始数据中的各条数据,按照所述固定长度切分为与所述各条数据相对应的各子数据集合,所述子数据集合包括至少一个子数据。
其中,所述处理器还用于:
将所述加密后的子数据和目标数据进行压缩。
其中,所述处理器还用于:
对所述待加密的原始数据按照可逆的加密算法进行加密,得到目标数据。
本申请还提供了一种数据解密装置,包括:
通信接口,用于接收待解密数据,所述待解密数据包括:已采用可逆的加密算法进行加密的目标数据,和,加密后的子数据;处理器,用于按照所述可逆的加密算法对所述目标数据进行解密,得到原始数据;以及,将所述原始数据和所述加密后的子数据确定为解密后的数据。
本申请还提供了一种数据查询装置,包括:
通信接口,用于接收输入的查询词;
处理器,用于按照不可逆的加密算法对所述查询词进行加密,得到加密后的查询词;将所述加密后的查询词在加密数据中进行匹配,得到查询结果数据,所述加密数据为:将原始数据切分为子数据,并对所述子数据采用不可逆的加密算法进行加密得到的。
其中,所述处理器用于按照不可逆的加密算法对所述查询词进行加密,得到加密后的查询词,包括:
确定需要切分的固定长度;
将所述查询词按照所述固定长度切分为至少一个子查询词;
对所述至少一个子查询词按照不可逆的加密算法进行加密,得到加密后的子查询词。
其中,所述处理器用于将所述加密后的查询词在加密数据中进行匹配,得到查询结果数据,包括:
将所述加密后的查询词在加密数据中进行匹配,得到匹配的目标子数据;
以所述目标子数据对应的原始数据作为参考数据,对所述目标子数据进行校验;
将校验成功的目标子数据作为查询结果数据。
其中,所述处理器用于以所述目标子数据对应的原始数据作为参考数据,对所述目标子数据进行校验,包括:
获取所述目标子数据所属的、至少一条目标数据;
对所述至少一条目标数据进行解密,得到与所述至少一条目标数据对应的至少一条原始数据;
将所述查询词与所述至少一条原始数据是否匹配的判断结果,作为所述加密数据的校验结果。
本申请还提供了一种数据查询装置,包括:
通信接口,用于接收用户的数据查询请求,并将所述数据获取请求包括的查询词发送至服务器,以及,接收服务器返回的查询结果;其中,所述查询结果通过以下方式得到:按照不可逆的加密算法对所述查询词进行加密,得到加密后的查询词;以及,将所述加密后的查询词在加密数据中进行匹配,得到查询结果数据;
显示屏,用于在结果页面上展示所述查询结果数据,所述加密数据为:将原始数据切分为子数据,并对所述子数据采用不可逆的加密算法进行加密得到的。
本申请还提供了一种计算机可读介质,该计算机可读介质存储有使计算机执行用于数据加密的程序,该处理包括以下步骤:
切分步骤,其将原始数据切分为子数据;
加密步骤,其对所述子数据采用不可逆的加密算法进行加密,得到加密后的子数据。
本申请还提供了一种计算机可读介质,该计算机可读介质存储有使计算机执行用于数据解密的程序,该处理包括以下步骤:
接收步骤,其接收待解密数据,所述待解密数据包括:已采用可逆的加密算法进行加密的目标数据,和,加密后的子数据;
解密步骤,其按照所述可逆的加密算法对所述目标数据进行解密,得到原始数据;
确定步骤,其将所述原始数据和所述加密后的子数据确定为解密后的数据。
本申请还提供了一种计算机可读介质,该计算机可读介质存储有使计算机执行用于数据查询的程序,该处理包括以下步骤:
接收步骤,其接收输入的查询词;
加密步骤,其按照不可逆的加密算法对所述查询词进行加密,得到加密后的查询词;
匹配步骤,其将所述加密后的查询词在加密数据中进行匹配,得到查询结果数据,所述加密数据为:将原始数据切分为子数据,并对所述子数据采用不可逆的加密算法进行加密得到的。
本申请还提供了一种计算机可读介质,该计算机可读介质存储有使计算机执行用于数据查询的程序,该处理包括以下步骤:
发送步骤,其在接收到用户的数据查询请求后,将所述数据获取请求包括的查询词发送至服务器;
接收步骤,其接收服务器返回的查询结果,并在结果页面上进行展示;
其中,所述查询结果通过以下方式得到:
按照不可逆的加密算法对所述查询词进行加密,得到加密后的查询词;以及,将所述加密后的查询词在加密数据中进行匹配,得到查询结果数据,所述加密数据为:将原始数据切分为子数据,并对所述子数据采用不可逆的加密算法进行加密得到的。
与现有技术相比,本申请实施例包括以下优点:
在本申请实施例中,采用在进行数据加密时,将原始数据先切分为子数据,例如各长度相同的子数据等,然后,对各个切分后的子数据采用不可逆的加密算法进行加密,从而得到不可解密的、加密后的子数据。并且,在后续查询的时候,会先对查询词也切分为子查询词,继而将子查询词在各加密后的子数据中进行匹配,从而实现加密查询,相比现有技术来说,本申请中查询数据的安全性较高。
并且,对于原始数据来讲,还会按照可解密的加密算法也进行一次加密,在需要验证匹配的加密后的子数据是否准确时,可以通过对匹配的加密的子数据进行解密,并直接进行未加密的查询词的校验即可实现筛选,即将不是用户希望查询到的数据筛选出来,保证查询结果的准确性,并且,因为不需要对全部的加密后的子数据进行解密,并且也不需要额外的建立索引字典,所以相比现有技术来说,也会提高查询效率,同时节省了索引字典所占用的存储空间。
当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请的数据加密方法实施例的示例性流程图;
图2是本申请中进行子数据加密的示例性界面示意图;
图3是本申请的数据解密方法实施例的示例性流程图;
图4是本申请的数据查询方法实施例的示例性流程图;
图5是本申请的数据加密装置实施例的示例性结构示意图;
图6是本申请的数据查询装置实施例的示例性结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请实施例中,对于数据进行加密、解密以及查询的方法,可以应用于数据库中关于数据的加密存储以及模糊查询、长文本的加密和查询、以及DNA(脱氧核糖核酸)序列片段的加密存储与查询,等等。
对于数据库的应用场景来说,例如,关系型数据库,可以直接将数据库中需要加密的数据(例如敏感字段等)采用本申请中的数据加密方法进行加密。对这些敏感字段进行加密后,并使用本申请中的查询方法来查询加密后的敏感字段,例如,使用SQL(结构化查询语言,Structured Query Language)语句的“like”语句来检索匹配的子字符串。此外,对于长文本的加密和查询的应用场景来说,也可以通过对长文本进行滑窗切分得到各个子字符串后,对各个子字符串进行加密,并且可以定位各个加密的字符串,从而确定某个子字符串在长文本中出现的位置。
对于DNA序列片段的加密存储和查询来说,因为该序列就是一个字符串,因此可以对该序列进行滑窗切分得到各个子序列后,对各个子序列进行加密,然后再判断一个特定的片段是否存在一个输入的DNA上,从而达到诊断等医疗目的。因为一般情况下输入的DNA通常是加密的,以保证受试者的隐私,因此,可以先对特定的片段采用同样的方式进行加密,并在加密的DNA序列上进行查询,从而进行特定的片段查询的目的。
参考图1,示出了本申请一种数据加密方法实施例的流程图,本实施例可以包括以下步骤:
步骤101:将原始数据切分为子数据。
在本实施例中,原始数据,可以是数据库或者其他数据结构等中存储的数据,例如,数据库A中存储有100条地址信息,则该100条地址信息就是待加密的原始数据。对于原始数据,可以按照预设切分规则将其切分为多个子数据,其中,预设切分规则用于对待加密的原始数据进行切分,从而得到一系列固定长度的子数据。例如,预设切分规则可以是一个固定长度的滑动窗口(以下简称滑窗),则按照该滑窗的大小例如s,可以将前100条地址信息分别切分为一系列固定长度的子地址信息。
对于本步骤,具体可以先确定需要切分的固定长度,即滑窗的固定长度,然后分别将原始数据中的各条数据,按照滑窗的固定长度切分为与各条数据相对应的各子数据集合,每一个子数据集合中可以包括一个或多个子数据。
在实际应用中,滑窗的长度可以是固定的,也可以是可变的。固定的滑窗例如可以是2个汉字的长度。具体可以参考图2所示,图2为一种利用固定长度的滑窗来对待加密的原始数据进行切分的示例性示意图。假设待加密的原始数据为“待加密的文字待加密的文字待加密的文字待加密的文字”,则假设滑窗的长度为4个汉字,则第1个滑窗内的汉字为“待加密的”,第2个滑窗则从前往后滑动一个汉字,因此第2个滑窗内的汉字为“加密的文”,以此类推,第3个滑窗内的汉字为“密的文字”,等等,直至得到最后一个滑窗内的汉字,则结束对原始数据的切分。
同时,在对切分后的子数据进行加密时,分别针对第1个滑窗内的文字即“待加密的”这四个字进行加密,得到加密后的子数据“A”;对第2个滑窗内的文字即“加密的文”这四个字进行加密,得到加密后的子数据“B”;对第3个滑窗内的文字即“密的文字”进行加密得到加密后的子数据“C”,以此类推。
在实际应用中,可变的滑窗,例如保证至少包含2个汉字,或者4个英文或数字,或者1个汉字加上2个英文或数字。具体在按照滑窗切分原始数据的时候,假设滑窗的起始位置为s,滑窗的结束位置为e,则从s到e之间(包含s位置和e位置)的所有原始数据例如字符等就是窗口。
首先,假设s=1,e从1开始逐步增加,直到满足滑窗的最低长度要求,将此时s和e之间的字符作为第一个窗口W(n),n=1。其次,在滑窗滑动过程中,如果e已经是最后一个字符,而且窗口的长度不大于最低长度要求,则当前已经是最后一个窗口,则停止对原始数据的切分。否则n=n+1,计算第n个窗口,如果窗口当前正好是最低长度要求,且窗口后面下一位不是数字字母,且窗口内第一位是数字字母。则s不变,e往后挪动一个字符;否则s向后移动一个字符,e向后移动直至窗口重新满足最低长度要求。这就是下一个窗口W(n)。
例如,假设原始数据为“y3C又七城a开b币和ccc因为c”(其中,中文字符和英文字符之间没有空格),则采用可变长度的滑窗(保证至少包含2个汉字,或者4个英文或数字,或者1个汉字加上2个英文或数字)切分的子数据分别为:[y3C又][3C又][C又七][又七][七城][七城a][城a开][a开b][开b币][b币和][币和][币和c][和cc][和ccc][ccc因][cc因][c因为][因为][因为c]。其中,切分后的各子数据中的中文字符和英文字符之间没有空格。
表1
子数据 | 序号 | 子数据 | 序号 |
y3c又 | 1 | 币和 | 10 |
3C又 | 2 | 币和c | 11 |
C又七 | 3 | 和cc | 12 |
又七 | 4 | 和ccc | 13 |
七城 | 5 | ccc因 | 14 |
七城a | 6 | cc因 | 15 |
城a开 | 7 | c因为 | 16 |
a开b | 8 | 因为 | 17 |
开b币 | 9 | 因为c | 18 |
参考表1所示,在表1中,为对原始数据“y3C又七城a开b币和ccc因为c”(其中,中文字符和英文字符之间没有空格),按照可变长度的滑窗进行切分得到的18个子数据。其中,在各个子数据中,英文字符占据一个位置,中文字符占据两个位置,每个子数据的长度至少包含2个汉字,或者4个英文或数字,或者1个汉字加上2个英文或数字。
为了方便本领域技术人员在实际应用中更好的选择滑窗,下面对滑窗的确定方式进行详细介绍。
在实际应用中,滑窗的长度不可以太短,如果太短可能会降低对原始数据进行加密的安全性。如果滑窗长度为1个字符,则步骤101就是逐个字符进行加密。同时,滑窗的长度也不可以太长,由于子字符串在查询时需要将子字符串按照本实施例进行加密后再做查询,因此,短于滑窗的长度的子字符串是没有办法被加密的,所以如果滑窗的长度太长,相当于对子字符串的最短长度做了限制。如果滑窗的长度就是一条原始数据的长度,则步骤101即直接对各条数据进行加密,就不再是对子数据进行加密,因此,后续也无法完成子字符串的查询。
而在实际应用中,滑窗的长度与冲突率也有关系。其中,冲突指的是,用不同的子字符串有可能得到相同的“加密”结果。冲突的后果就是在进行子字符串匹配的时候,可能会输出真正的查询结果之外的结果。冲突率用于指输出的查询结果之外的结果的概率大小,下面将通过理论计算和实验数据来说明,通过本申请实施例的方式进行加密,冲突率不会特别高,因此不会造成需要筛选太多数据的情况。
下面首先通过第一个实验来说明滑窗的长度对冲突率的影响。
在计算理论冲突率的时候,考虑一个从N个变量到M个值的映射,N和M分别为大于零的整数,则任一变量经过映射后,会有k个值(k为大于零的整数)与其冲突的概率如公式(一)所示:
特别的,当k=1时,就是一个变量映射后,没有冲突的概率如公式(二)所示:
在N/M较小的时候,这个概率是比较大的。
在实际应用中,假设固定滑窗采用常用汉字进行实验,长度为2个汉字,在本实验中考虑常用的将近3000汉字的两两相邻每两个汉字的组合,因此共有862万的子数据,每一个子数据就是两个汉字。实验中,尝试将这些子数据用不同的压缩输出窗口输出,通过实验计算冲突概率,当压缩输出窗口的长度分别为3、4、5、6个字节时,冲突率可以参考表2所示。
表2
在表2中,可以看到输出窗口长度在4字节时,冲突率已经很低了,而且99.9%的情况下,最多出现2个输出结果互相冲突,输出窗口长度在5字节及其以上的时候,99.9%情况不出现冲突。
下面通过第二个实验来说明滑窗的长度对冲突率的影响,本实验中采用长度可变的滑窗以及子数据为汉字和字母组合的方式。
在本实验中,对滑窗的长度做了可变的限制:滑窗内可以至少包含不少于两个汉字或者4个字母或数字。因此,对于共有2539万的子数据,仍然尝试将这些子数据用不同的压缩输出窗口,分别为3、4、5、6个字节进行输出。通过实验计算冲突率,当输出字节分别为3、4、5、6时,冲突率可以参考表3所示。
表3
可以从表3中看出,输出窗口长度在4字节时,冲突率已经很低了,达到0.6%左右,而且在99.9%最多冲突条数的情况下,最多出现2个输出结果互相冲突。而输出窗口长度在5字节及其以上的时候,99.9%的情况不出现冲突。
因此,在本实施例中,滑窗可以是固定长度的,也可以是可变长度的。只需要满足子字符串(即子数据)相容性的性质,其中,假设一个字符串T的滑窗输出是W(T),假设它的任何可匹配的子字符串t都满足滑窗的输出W(t)是W(T)的子字符串,即称,该滑窗具有子字符串相容性。
可见,固定长度的滑窗显然具有子字符串相容性,除了采用固定长度的滑窗外,可变的滑窗也可以,例如,保证滑窗内至少包含2个汉字,或者4个英文或数字,或者,1个汉字加上2个英文或数字。因此,类似这样的可变滑窗也有多种,使用其中一种也可以保证子字符串相容性。
在介绍完采用滑窗切分原始数据之后,进入步骤102:
步骤102:对子数据分别采用不可逆的加密算法进行加密,得到加密后的子数据。
在使用滑窗得到固定长度的字符串后,可以使用不可逆的加密算法来对各个子数据进行加密,从而得到无法解密的、加密后的子数据,这样就可以实现在加密后的子数据的基础上进行存储或者查询等,增强数据存储和查询的安全性。不可逆的加密算法例如可以是带密钥的哈希算法,例如使用“hmac算法”进行加密,例如“hmac-AES”算法,本领域技术人员可以采用带密钥的哈希加密算法对各个子数据进行加密,从而保证加密数据不可加密。例如,有100条地址信息,采用固定长度的滑窗对每一条地址信息进行切分,得到对应的100个子数据集合,每一个子数据集合对应一条原始数据。则本步骤中则是分别对各个子数据集合中的子数据进行加密,从而得到加密后的各个子数据。
可见,在本申请实施例中,可以利用预设切分规则来对原始数据进行切分,得到多个子数据,例如利用固定长度的滑窗对原始数据切分得到多个窗口,再通过对多个子数据采用不可逆的加密算法进行加密,得到加密后的子数据,从而可以实现后续对子数据进行查询的时候,也可以将查询词先按照中滑窗的方式进行切分再加密,从而直接查询加密的子数据即可,这样就保证了原始数据的安全性。
此外,为了方便数据查询之后,向用户展示非加密数据便于用户查看等,在步骤102之后,还可以包括步骤103:
步骤103:对原始数据按照可逆的加密算法进行加密,得到目标数据。
在本实施例中,除了采用带密钥的哈希算法对各个子数据进行加密之后,还采用可逆的加密算法来直接对原始数据进行加密,从而得到加密后的原始数据作为目标数据。在实际应用中,可以将加密后的各子数据和目标数据拼接起来作为最终的输出数据。其中,本步骤中采用的加密算法例如可以是AES128算法等,只要是可以解密的加密算法均可以。
参考图2所示,在本步骤中可以利用可逆的加密算法来对原始数据“待加密的文字待加密的文字待加密的文字待加密的文字”整体进行加密从而得到目标数据。
通过以上方式,就将原始数据切分为多个子数据集合并且得到了各加密后的子数据,以及,加密的目标数据,则将各加密后的子数据以及目标数据进行拼接,从而得到待输出的结果数据。在实际应用中,由于结果数据可能比较大,通常来说,哈希加密的输出长度是128bit,再加上加密的目标数据,则整体输出数据的输出长度可能过长,因此通过压缩算法,可以将输出数据降低到较短的长度。则步骤103之后,还可以包括步骤104:
步骤104:将所述加密后的子数据和目标数据进行压缩。
在本步骤中,对加密后的子数据和目标数据进行压缩,其中,压缩算法可以采用deflate算法,例如,gzip、zlib以及图形格式png。只要能够将加密后的子数据和目标数据进行压缩,得到长度更短的整体输出数据即可。本申请实施例中并不限定压缩算法。
本申请实施例还提供了一种加密数据,该加密数据可以包括:加密后的子数据,该加密后的子数据可以采用图1所示的步骤101~步骤102加密得到;该加密数据还可以包括:目标数据,其中,目标数据可以采用步骤103得到。
本申请实施例还提供了一种数据存储装置,该数据存储装置可以用于存储加密后的子数据,所述加密后的子数据可以采用图1所示的步骤101~步骤102加密得到;该数据存储装置还可以用于存储目标数据,该目标数据可以采用步骤103得到。
参考图3,示出了本申请一种数据解密方法实施例的流程图,本实施例可以应用于客户端,本实施例可以包括以下步骤:
步骤301:接收待解密数据,所述待解密数据包括:已采用可逆的加密算法进行加密的目标数据,和,加密后的子数据。
在本实施例中,待解密的数据可以为图1所示的实施例中的输出数据。其中,待解密的数据可以包括,已采用可逆的加密算法对原始数据进行加密得到的目标数据,以及,步骤102中对各个子数据进行加密得到的加密后的子数据。
步骤302:按照所述可逆的加密算法对所述目标数据进行解密,得到原始数据。
在本步骤中,则直接对目标数据采用可解密的加密算法进行解密,得到原始数据。其中,可解密的解密算法与步骤103中采用的加密算法相匹配即可。
步骤303:将所述原始数据和所述加密后的子数据确定为解密后的数据。
在本实施例中,已经加密的子数据是不可解密的,因此仅将目标数据进行解密得到原始数据,并将原始数据和各个加密后的子数据确定为解密后的数据即可。
参考图4所示,示出了本申请一种数据查询方法实施例的流程图,本实施例可以应用于独立设备上,本实施例可以包括以下步骤:
步骤401:接收输入的查询词。
在本步骤中,接收到用户输入的查询词,例如用户输入“杭州市”,则查询词就是“杭州市”。
步骤402:按照不可逆的加密算法对所述查询词进行加密,得到加密后的查询词。
在本步骤中,即是按照步骤101~步骤102的方式,对该查询词也进行切分以及加密处理。具体的,本步骤可以包括步骤A1~步骤A3:
步骤A1:确定需要切分的固定长度。
首先,确定需要切分的固定长度是多大,可以将本步骤中确定的固定长度与对原始数据进行加密时采用的固定长度相同,例如,滑窗的大小为2个汉字。
步骤A2:将所述查询词按照固定长度切分为至少一个子查询词。
然后,则按照预先将原始数据切分为子数据时固定滑窗的大小对该查询词进行切分,例如固定滑窗的大小为2个汉字,则“杭州市”将被切分为[杭州][市]两个子数据。
步骤A3:对至少一个子查询词按照不可逆的加密算法进行加密,得到加密后的子查询词。
接着,就对切分后的[杭州]和[市]这两个子数据进行加密,可以采用对原始数据切分后的子数据进行加密时采用的加密算法相同的、不可逆的加密算法进行加密,例如带密钥的哈希加密算法来对[杭州]和[市]进行加密,从而得到加密后的子查询词,即加密后的[杭州]和[市]。
步骤403:将加密后的查询词在加密数据中进行匹配,得到查询结果数据,所述加密数据为:将原始数据切分为子数据,并对所述子数据采用不可逆的加密算法进行加密得到的。
在本步骤中,针对步骤402中加密后的[杭州]和[市],就可以用普通字符串匹配算法,将其在加密数据中进行匹配,并将匹配的结果作为查询结果数据。其中,加密数据可以为:将原始数据切分为子数据,并对所述子数据采用不可逆的加密算法进行加密得到的。
具体的,步骤403可以包括步骤B1~步骤B3:
步骤B1:将所述加密后的查询词在加密数据中进行匹配,得到匹配的目标子数据。
在一种可能的实施方式中,例如用户需要查询的是地址信息,则在将加密后的[杭州]和[市]在各加密后的子数据中进行匹配后,得到了若干条匹配的子数据。但是在实际应用中,因为子数据进行加密后,可能有些非地址信息的数据也包含“杭州”等内容,所以可能这些非地址信息的数据也可能会在本步骤中误作为匹配的目标子数据。
步骤B2:以所述目标子数据对应的原始数据作为参考数据,对所述目标子数据进行校验。
因此,在步骤B2中,对步骤B1得到的匹配的目标子数据进行校验。即是,通过将目标子数据所对应的原始数据(即未加密的数据是否为地址信息等)来作为参考数据,对目标子数据是否为用户希望查询的地址信息来进行校验。
具体的,因为对于可以先获取目标子数据所属的、至少一条目标数据,并对至少一条目标数据进行解密,得到与至少一条目标数据对应的至少一条未加密的原始数据,再将未加密的查询词与这至少一条原始数据是否匹配的判断结果,作为各加密后的子数据的校验结果。
例如,加密后的[杭州]和[市]匹配的目标子数据所属的目标数据有5条,则对这5条目标数据进行解密,得到与这5条目标数据相对应的5条原始数据,然后通过未加密的[杭州]和[市]直接在这5条原始数据内进行匹配,如果都能匹配,则说明这5条数据都校验通过;如果有2条数据未能匹配出[杭州]和[市],则说明这2条数据未校验通过。
步骤B3:将校验成功的目标子数据作为查询结果数据。
在本步骤中,仍以上述例子进行说明,如果5条数据都校验通过,则这5条数据都作为查询结果数据,而如果有2条数据未校验通过,则将另外3条数据作为查询结果数据。
在本实施例中,采用在进行数据加密时,可以将原始数据先按照预设切分规则切分为子数据,例如各子数据的长度相同等,然后,对各个切分后的子数据采用带密钥的哈希加密算法进行加密,从而得到不可解密的、加密后的子数据。并且,在后续查询的时候,会先对查询词按照同样的预设切分规则切分为子查询词,继而将子查询词在各加密后的子数据中进行匹配,从而实现加密查询,相比现有技术来说,本申请中查询数据的安全性较高。
并且,对于原始数据来讲,还会按照可逆的加密算法也进行一次加密,在需要验证匹配的加密后的子数据是否准确时,可以通过对匹配的加密的子数据进行解密,并直接进行未加密的查询词的校验即可实现筛选,即将不是用户希望查询到的数据筛选出来,保证查询结果的准确性,并且,因为不需要对全部的加密后的子数据进行解密,并且也不需要额外的建立索引字典,所以相比现有技术来说,也会提高查询效率,同时节省了索引字典所占用的存储空间。
在实际应用中,还需要说明的是,如果将查询方法应用于终端上,则终端接收到用户的数据查询请求后,将数据查询请求包括的查询词发送至服务器,然后服务器按照图4所示的方法对查询词进行查询,并将查询结果返回给终端,由终端在查询结果页面上将查询结果进行展示。
对于前述的方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
参见图5,本申请实施例还提供了一种数据加密装置实施例,在本实施例中,该装置可以包括:
处理器501,可以用于将原始数据切分为子数据;对所述子数据分别采用不可逆的加密算法进行加密,得到加密后的子数据;
与所述处理器501通过通信总线502连接的通信接口503,可以用于输出所述解密后的子数据。
其中,所述处理器501可以用于将原始数据切分为子数据,可以包括:
确定需要切分的固定长度;以及,分别将所述原始数据中的各条数据,按照所述固定长度切分为与所述各条数据相对应的各子数据集合,所述子数据集合包括至少一个子数据。
其中,所述处理器501还可以用于:将所述加密后的子数据和目标数据进行压缩。
其中,所述处理器501还可以用于:
对所述原始数据按照可逆的加密算法进行加密,得到目标数据。
本申请实施例还提供了一种数据解密装置,可以包括:
通信接口,用于接收待解密数据,所述待解密数据包括:已采用可逆的加密算法进行加密的目标数据,和,加密后的子数据;以及,处理器,用于按照所述可逆的加密算法对所述目标数据进行解密,得到原始数据;以及,将所述原始数据和所述加密后的子数据确定为解密后的数据。
本申请实施例还提供了一种数据查询装置,可以包括:
通信接口,可以用于接收输入的查询词;以及,处理器,可以用于按照不可逆的加密算法对所述查询词进行加密,得到加密后的查询词;将所述加密后的查询词在加密数据中进行匹配,得到查询结果数据,所述加密数据为:将原始数据切分为子数据,并对所述子数据采用不可逆的加密算法进行加密得到的。
其中,所述处理器可以用于按照不可逆的加密算法对所述查询词进行加密,得到加密后的查询词,可以包括:
确定需要切分的固定长度;将所述查询词按照所述固定长度切分为至少一个子查询词;以及,对所述至少一个子查询词按照不可逆的加密算法进行加密,得到加密后的子查询词。
其中,所述处理器可以用于将所述加密后的查询词在加密数据中进行匹配,得到查询结果数据,可以包括:
将所述加密后的查询词在加密数据中进行匹配,得到匹配的目标子数据;以所述目标子数据对应的原始数据作为参考数据,对所述目标子数据进行校验;以及,将校验成功的目标子数据作为查询结果数据。
其中,所述处理器可以用于以所述目标子数据对应的原始数据作为参考数据,对所述目标子数据进行校验,可以包括:
获取所述目标子数据所属的、至少一条目标数据;对所述至少一条目标数据进行解密,得到与所述至少一条目标数据对应的至少一条原始数据;以及,将所述查询词与所述至少一条原始数据是否匹配的判断结果,作为所述加密数据的校验结果。
参见图6,本申请还提供了一种数据查询装置实施例,在本实施例中,该装置可以包括:
通信接口601,用于接收用户的数据查询请求,并将所述数据获取请求包括的查询词发送至服务器,以及,接收服务器返回的查询结果;其中,所述查询结果通过以下方式得到:按照不可逆的加密算法对所述查询词进行加密,得到加密后的查询词;以及,将所述加密后的查询词在加密数据中进行匹配,得到查询结果数据;
与所述通信接口601通过通信总线602连接的显示屏603,用于在结果页面上展示所述查询结果数据,所述加密数据为:将原始数据切分为子数据,并对所述子数据采用不可逆的加密算法进行加密得到的。
一种计算机可读介质,该计算机可读介质存储有使计算机执行用于数据加密的程序,该处理包括以下步骤:
切分步骤,其将原始数据切分为子数据;
加密步骤,其对所述子数据采用不可逆的加密算法进行加密,得到加密后的子数据。
本申请实施例还公开了一种计算机可读介质,该计算机可读介质存储有使计算机执行用于数据解密的程序,该处理可以包括以下步骤:
接收步骤,其接收待解密数据,所述待解密数据包括:已采用可逆的加密算法进行加密的目标数据,和,加密后的子数据;解密步骤,其按照所述可逆的加密算法对所述目标数据进行解密,得到原始数据;以及,确定步骤,其将所述原始数据和所述加密后的子数据确定为解密后的数据。
本申请实施例还公开了一种计算机可读介质,该计算机可读介质存储有使计算机执行用于数据查询的程序,该处理可以包括以下步骤:
接收步骤,其接收输入的查询词;加密步骤,其按照不可逆的加密算法对所述查询词进行加密,得到加密后的查询词;以及,匹配步骤,其将所述加密后的查询词在加密数据中进行匹配,得到查询结果数据,所述加密数据为:将原始数据切分为子数据,并对所述子数据采用不可逆的加密算法进行加密得到的。
本申请实施例还公开了一种计算机可读介质,该计算机可读介质存储有使计算机执行用于数据查询的程序,该处理可以包括以下步骤:
发送步骤,其在接收到用户的数据查询请求后,将所述数据获取请求包括的查询词发送至服务器;以及,接收步骤,其接收服务器返回的查询结果,并在结果页面上进行展示;其中,所述查询结果通过以下方式得到:按照不可逆的加密算法对所述查询词进行加密,得到加密后的查询词;以及,将所述加密后的查询词在加密数据中进行匹配,得到查询结果数据,所述加密数据为:将原始数据切分为子数据,并对所述子数据采用不可逆的加密算法进行加密得到的。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的数据加密、解密和查询方法及装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (28)
1.一种数据加密方法,其特征在于,包括:
将原始数据切分为子数据;
对所述子数据采用不可逆的加密算法进行加密,得到加密后的子数据。
2.根据权利要求1所述的方法,其特征在于,所述将原始数据切分为子数据,包括:
确定需要切分的固定长度;
分别将所述原始数据中的各条数据,按照所述固定长度切分为与所述各条数据相对应的各子数据集合,所述子数据集合包括至少一个子数据。
3.根据权利要求1所述的方法,其特征在于,还包括:
将所述加密后的子数据和目标数据进行压缩。
4.根据权利要求1所述的方法,其特征在于,还包括:
对所述原始数据按照可逆的加密算法进行加密,得到目标数据。
5.一种加密数据,其特征在于,所述加密数据包括:加密后的子数据,所述加密后的子数据通过以下方式得到:
将原始数据切分为子数据;
对所述子数据采用不可逆的加密算法进行加密,得到加密后的子数据。
6.根据权利要求5所述的数据,其特征在于,还包括:目标数据,所述目标数据通过以下方式得到:
对所述原始数据按照可逆的加密算法进行加密,得到目标数据。
7.一种数据存储装置,其特征在于,所述数据存储装置用于存储加密后的子数据,所述加密后的子数据通过以下方式得到:
将原始数据切分为子数据;
对所述子数据采用不可逆的加密算法进行加密,得到加密后的子数据。
8.根据权利要求7所述的装置,其特征在于,所述装置还用于存储目标数据,所述目标数据通过以下方式得到:
对所述原始数据按照可逆的加密算法进行加密,得到目标数据。
9.一种数据解密方法,其特征在于,包括:
接收待解密数据,所述待解密数据包括:已采用可逆的加密算法进行加密的目标数据,和,加密后的子数据;
按照所述可逆的加密算法对所述目标数据进行解密,得到原始数据;
将所述原始数据和所述加密后的子数据确定为解密后的数据。
10.一种数据查询方法,其特征在于,包括:
接收输入的查询词;
按照不可逆的加密算法对所述查询词进行加密,得到加密后的查询词;
将所述加密后的查询词在加密数据中进行匹配,得到查询结果数据,所述加密数据为:将原始数据切分为子数据,并对所述子数据采用不可逆的加密算法进行加密得到的。
11.根据权利要求10所述的方法,其特征在于,所述按照不可逆的加密算法对所述查询词进行加密,得到加密后的查询词,包括:
确定需要切分的固定长度;
将所述查询词按照所述固定长度切分为至少一个子查询词;
对所述至少一个子查询词按照不可逆的加密算法进行加密,得到加密后的子查询词。
12.根据权利要求10所述的方法,其特征在于,所述将所述加密后的查询词在加密数据中进行匹配,得到查询结果数据,包括:
将所述加密后的查询词在加密数据中进行匹配,得到匹配的目标子数据;
以所述目标子数据对应的原始数据作为参考数据,对所述目标子数据进行校验;
将校验成功的目标子数据作为查询结果数据。
13.根据权利要求12所述的方法,其特征在于,所述以所述目标子数据对应的原始数据作为参考数据,对所述目标子数据进行校验,包括:
获取所述目标子数据所属的、至少一条目标数据;
对所述至少一条目标数据进行解密,得到与所述至少一条目标数据对应的至少一条原始数据;
将所述查询词与所述至少一条原始数据是否匹配的判断结果,作为所述各加密后的子数据的校验结果。
14.一种数据查询方法,其特征在于,包括:
在接收到用户的数据查询请求后,将所述数据获取请求包括的查询词发送至服务器;
接收服务器返回的查询结果,并在结果页面上进行展示;
其中,所述查询结果通过以下方式得到:
按照不可逆的加密算法对所述查询词进行加密,得到加密后的查询词;以及,将所述加密后的查询词在加密数据中进行匹配,得到查询结果数据,所述加密数据为:将原始数据切分为子数据,并对所述子数据采用不可逆的加密算法进行加密得到的。
15.一种数据加密装置,其特征在于,包括:
处理器,用于将原始数据切分为子数据;对所述子数据采用不可逆的加密算法进行加密,得到加密后的子数据;
通信接口,用于输出所述加密后的子数据。
16.根据权利要求15所述的装置,其特征在于,所述处理器用于按照预设切分规则将待加密的原始数据切分为子数据,包括:
确定需要切分的固定长度;
分别将所述原始数据中的各条数据,按照所述固定长度切分为与所述各条数据相对应的各子数据集合,所述子数据集合包括至少一个子数据。
17.根据权利要求15所述的装置,其特征在于,所述处理器还用于:
将所述加密后的子数据和目标数据进行压缩。
18.根据权利要求15所述的装置,其特征在于,所述处理器还用于:
对所述待加密的原始数据按照可逆的加密算法进行加密,得到目标数据。
19.一种数据解密装置,其特征在于,包括:
通信接口,用于接收待解密数据,所述待解密数据包括:已采用可逆的加密算法进行加密的目标数据,和,加密后的子数据;处理器,用于按照所述可逆的加密算法对所述目标数据进行解密,得到原始数据;以及,将所述原始数据和所述加密后的子数据确定为解密后的数据。
20.一种数据查询装置,其特征在于,包括:
通信接口,用于接收输入的查询词;
处理器,用于按照不可逆的加密算法对所述查询词进行加密,得到加密后的查询词;将所述加密后的查询词在加密数据中进行匹配,得到查询结果数据,所述加密数据为:将原始数据切分为子数据,并对所述子数据采用不可逆的加密算法进行加密得到的。
21.根据权利要求20所述的装置,其特征在于,所述处理器用于按照不可逆的加密算法对所述查询词进行加密,得到加密后的查询词,包括:
确定需要切分的固定长度;
将所述查询词按照所述固定长度切分为至少一个子查询词;
对所述至少一个子查询词按照不可逆的加密算法进行加密,得到加密后的子查询词。
22.根据权利要求20所述的装置,其特征在于,所述处理器用于将所述加密后的查询词在加密数据中进行匹配,得到查询结果数据,包括:
将所述加密后的查询词在加密数据中进行匹配,得到匹配的目标子数据;
以所述目标子数据对应的原始数据作为参考数据,对所述目标子数据进行校验;
将校验成功的目标子数据作为查询结果数据。
23.根据权利要求22所述的装置,其特征在于,所述处理器用于以所述目标子数据对应的原始数据作为参考数据,对所述目标子数据进行校验,包括:
获取所述目标子数据所属的、至少一条目标数据;
对所述至少一条目标数据进行解密,得到与所述至少一条目标数据对应的至少一条原始数据;
将所述查询词与所述至少一条原始数据是否匹配的判断结果,作为所述加密数据的校验结果。
24.一种数据查询装置,其特征在于,包括:
通信接口,用于接收用户的数据查询请求,并将所述数据获取请求包括的查询词发送至服务器,以及,接收服务器返回的查询结果;其中,所述查询结果通过以下方式得到:按照不可逆的加密算法对所述查询词进行加密,得到加密后的查询词;以及,将所述加密后的查询词在加密数据中进行匹配,得到查询结果数据;
显示屏,用于在结果页面上展示所述查询结果数据,所述加密数据为:将原始数据切分为子数据,并对所述子数据采用不可逆的加密算法进行加密得到的。
25.一种计算机可读介质,该计算机可读介质存储有使计算机执行用于数据加密的程序,该处理包括以下步骤:
切分步骤,其将原始数据切分为子数据;
加密步骤,其对所述子数据采用不可逆的加密算法进行加密,得到加密后的子数据。
26.一种计算机可读介质,该计算机可读介质存储有使计算机执行用于数据解密的程序,该处理包括以下步骤:
接收步骤,其接收待解密数据,所述待解密数据包括:已采用可逆的加密算法进行加密的目标数据,和,加密后的子数据;
解密步骤,其按照所述可逆的加密算法对所述目标数据进行解密,得到原始数据;
确定步骤,其将所述原始数据和所述加密后的子数据确定为解密后的数据。
27.一种计算机可读介质,该计算机可读介质存储有使计算机执行用于数据查询的程序,该处理包括以下步骤:
接收步骤,其接收输入的查询词;
加密步骤,其按照不可逆的加密算法对所述查询词进行加密,得到加密后的查询词;
匹配步骤,其将所述加密后的查询词在加密数据中进行匹配,得到查询结果数据,所述加密数据为:将原始数据切分为子数据,并对所述子数据采用不可逆的加密算法进行加密得到的。
28.一种计算机可读介质,该计算机可读介质存储有使计算机执行用于数据查询的程序,该处理包括以下步骤:
发送步骤,其在接收到用户的数据查询请求后,将所述数据获取请求包括的查询词发送至服务器;
接收步骤,其接收服务器返回的查询结果,并在结果页面上进行展示;
其中,所述查询结果通过以下方式得到:
按照不可逆的加密算法对所述查询词进行加密,得到加密后的查询词;以及,将所述加密后的查询词在加密数据中进行匹配,得到查询结果数据,所述加密数据为:将原始数据切分为子数据,并对所述子数据采用不可逆的加密算法进行加密得到的。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711116308.2A CN110019994A (zh) | 2017-11-13 | 2017-11-13 | 数据加密、解密及查询方法、数据加密解密及查询装置 |
TW107131690A TW201918924A (zh) | 2017-11-13 | 2018-09-10 | 資料加密、解密及查詢方法、資料加密、解密及查詢裝置 |
PCT/US2018/060700 WO2019094917A1 (en) | 2017-11-13 | 2018-11-13 | Device and method for increasing the security of a database |
US16/189,906 US11120142B2 (en) | 2017-11-13 | 2018-11-13 | Device and method for increasing the security of a database |
US17/402,010 US12008116B2 (en) | 2017-11-13 | 2021-08-13 | Device and method for increasing the security of a database |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711116308.2A CN110019994A (zh) | 2017-11-13 | 2017-11-13 | 数据加密、解密及查询方法、数据加密解密及查询装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110019994A true CN110019994A (zh) | 2019-07-16 |
Family
ID=66433254
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711116308.2A Pending CN110019994A (zh) | 2017-11-13 | 2017-11-13 | 数据加密、解密及查询方法、数据加密解密及查询装置 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11120142B2 (zh) |
CN (1) | CN110019994A (zh) |
TW (1) | TW201918924A (zh) |
WO (1) | WO2019094917A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111049856A (zh) * | 2019-12-26 | 2020-04-21 | 中国联合网络通信集团有限公司 | 认证方法及装置 |
CN111556496A (zh) * | 2020-04-30 | 2020-08-18 | 航天宏康智能科技(北京)有限公司 | 一种无线通信方法及收发装置 |
CN113132100A (zh) * | 2021-04-13 | 2021-07-16 | 电子科技大学 | 一种基于滑窗QC-LDPC码的McEliece体制加解密方法 |
CN117390687A (zh) * | 2023-12-11 | 2024-01-12 | 闪捷信息科技有限公司 | 敏感数据查询方法、装置、存储介质和电子设备 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110019112B (zh) * | 2017-08-25 | 2023-10-31 | 阿里巴巴集团控股有限公司 | 数据事务处理方法、装置以及电子设备 |
CN110019994A (zh) | 2017-11-13 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 数据加密、解密及查询方法、数据加密解密及查询装置 |
US10528556B1 (en) * | 2017-12-31 | 2020-01-07 | Allscripts Software, Llc | Database methodology for searching encrypted data records |
US20220309190A1 (en) * | 2021-03-27 | 2022-09-29 | Intel Corporation | Circuitry and methods for low-latency efficient chained decryption and decompression acceleration |
IT202100032048A1 (it) * | 2021-12-21 | 2023-06-21 | Nextage S R L | Sistema di gestione di dati criptati e metodo di ricerca di dati criptati |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120159180A1 (en) * | 2010-12-17 | 2012-06-21 | Microsoft Corporation | Server-side Encrypted Pattern Matching |
US20130238646A1 (en) * | 2012-03-06 | 2013-09-12 | Evrichart, Inc. | Partial-Match Searches of Encrypted Data Sets |
US20140355754A1 (en) * | 2013-05-28 | 2014-12-04 | Hong Kong Applied Sicence & Technology Research Institute Company Limited | Partial CipherText Updates Using Variable-Length Segments Delineated by Pattern Matching and Encrypted by Fixed-Length Blocks |
US20170060940A1 (en) * | 2015-08-26 | 2017-03-02 | International Business Machines Corporation | Providing secure indexes for searching encrypted data |
CN106850187A (zh) * | 2017-01-13 | 2017-06-13 | 温州大学瓯江学院 | 一种隐私字符信息加密查询方法及系统 |
Family Cites Families (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6850252B1 (en) | 1999-10-05 | 2005-02-01 | Steven M. Hoffberg | Intelligent electronic appliance system and method |
US5778368A (en) | 1996-05-03 | 1998-07-07 | Telogy Networks, Inc. | Real-time embedded software respository with attribute searching apparatus and method |
US20030021417A1 (en) | 2000-10-20 | 2003-01-30 | Ognjen Vasic | Hidden link dynamic key manager for use in computer systems with database structure for storage of encrypted data and method for storage and retrieval of encrypted data |
US20040117386A1 (en) | 2002-12-12 | 2004-06-17 | Sun Microsystems, Inc. | Syncronization facility for information domains employing dissimilar protective transformations |
US20050071239A1 (en) | 2003-09-12 | 2005-03-31 | Tormey Peter James | Consumer business search and commerce system |
US20050193198A1 (en) | 2004-01-27 | 2005-09-01 | Jean-Michel Livowsky | System, method and apparatus for electronic authentication |
US7519835B2 (en) * | 2004-05-20 | 2009-04-14 | Safenet, Inc. | Encrypted table indexes and searching encrypted tables |
US8639947B2 (en) * | 2004-06-01 | 2014-01-28 | Ben Gurion University Of The Negev Research And Development Authority | Structure preserving database encryption method and system |
US9820658B2 (en) | 2006-06-30 | 2017-11-21 | Bao Q. Tran | Systems and methods for providing interoperability among healthcare devices |
US20060212441A1 (en) | 2004-10-25 | 2006-09-21 | Yuanhua Tang | Full text query and search systems and methods of use |
WO2006108865A2 (fr) | 2005-04-12 | 2006-10-19 | Enrico Maim | Procedes pour permettre l'acces a des ressources modifiables par des utilisateurs dans un environnement informatique, et ressources structurees a cet effet |
US7818326B2 (en) * | 2005-08-31 | 2010-10-19 | Mcafee, Inc. | System and method for word indexing in a capture system and querying thereof |
US20070067833A1 (en) * | 2005-09-20 | 2007-03-22 | Colnot Vincent C | Methods and Apparatus for Enabling Secure Network-Based Transactions |
US7733224B2 (en) | 2006-06-30 | 2010-06-08 | Bao Tran | Mesh network personal emergency response appliance |
EP1965327A4 (en) | 2005-12-05 | 2015-11-11 | Sursen Corp | METHOD AND SYSTEM FOR DOCUMENT DATA SECURITY MANAGEMENT |
CA2540058A1 (en) | 2005-12-06 | 2007-06-08 | Emeka Akaezuwa | Portable search engine |
US7558622B2 (en) | 2006-05-24 | 2009-07-07 | Bao Tran | Mesh network stroke monitoring appliance |
WO2008006241A1 (en) * | 2006-07-03 | 2008-01-17 | Intel Corporation | Method and apparatus for fast audio search |
WO2008061121A2 (en) | 2006-11-14 | 2008-05-22 | Hayes Paul V | System and method for searching for internet-accessible content |
US8561116B2 (en) | 2007-09-26 | 2013-10-15 | Charles A. Hasek | Methods and apparatus for content caching in a video network |
US7877456B2 (en) | 2008-04-08 | 2011-01-25 | Post Dahl Co. Limited Liability Company | Data file forwarding storage and search |
AU2009238519C1 (en) * | 2008-04-20 | 2015-08-20 | Tigerlogic Corporation | Systems and methods of identifying chunks from multiple syndicated content providers |
WO2010029559A1 (en) * | 2008-09-15 | 2010-03-18 | Vaultive Ltd. | Method and system for secure use of services by untrusted storage providers |
US8478765B2 (en) | 2008-12-29 | 2013-07-02 | Plutopian Corporation | Method and system for compiling a multi-source database of composite investor-specific data records with no disclosure of investor identity |
US8365247B1 (en) | 2009-06-30 | 2013-01-29 | Emc Corporation | Identifying whether electronic data under test includes particular information from a database |
US20110040753A1 (en) | 2009-08-11 | 2011-02-17 | Steve Knight | Personalized search engine |
US8819408B2 (en) | 2011-12-20 | 2014-08-26 | Industrial Technology Research Institute | Document processing method and system |
US9197613B2 (en) | 2011-12-20 | 2015-11-24 | Industrial Technology Research Institute | Document processing method and system |
EP2667337A3 (en) | 2012-05-22 | 2014-03-12 | Hasso-Plattner-Institut für Softwaresystemtechnik GmbH | Transparent control of access invoking real-time analysis of the query history |
WO2013188838A2 (en) | 2012-06-15 | 2013-12-19 | Seqster, Inc. | Storage, retrieval, analysis, pricing, and marketing of personal health care data using social networks, expert networks, and markets |
JP5367179B1 (ja) * | 2012-09-20 | 2013-12-11 | 株式会社東芝 | データ処理装置、データ管理システム、データ処理方法およびプログラム |
US20140308930A1 (en) | 2013-04-12 | 2014-10-16 | Bao Tran | Timely, glanceable information on a wearable device |
WO2014175326A1 (ja) | 2013-04-24 | 2014-10-30 | 日本電気株式会社 | 暗号文照合システムと方法とプログラム |
US20150068069A1 (en) | 2013-07-27 | 2015-03-12 | Alexander Bach Tran | Personally powered appliance |
US9454673B1 (en) * | 2013-11-08 | 2016-09-27 | Skyhigh Networks, Inc. | Searchable encryption for cloud storage |
US10303769B2 (en) | 2014-01-28 | 2019-05-28 | Somol Zorzin Gmbh | Method for automatically detecting meaning and measuring the univocality of text |
US9501661B2 (en) * | 2014-06-10 | 2016-11-22 | Salesforce.Com, Inc. | Systems and methods for implementing an encrypted search index |
US10331649B2 (en) | 2014-06-29 | 2019-06-25 | Microsoft Technology Licensing, Llc | Transactional access to records on secondary storage in an in-memory database |
US9832208B1 (en) | 2014-12-23 | 2017-11-28 | Erasable, LLC | System and methods of providing secure messaging environment |
US10346737B1 (en) * | 2015-01-12 | 2019-07-09 | Gridspace Inc. | Distributed multisensor system to record spatially diverse events |
US10097522B2 (en) * | 2015-05-21 | 2018-10-09 | Nili Philipp | Encrypted query-based access to data |
US10176481B2 (en) | 2015-12-21 | 2019-01-08 | Beston Technologies Pty Ltd | Method and apparatus for managing and providing provenance of product using blockchain |
US10860735B2 (en) | 2016-08-05 | 2020-12-08 | Sensoriant, Inc. | Database system for protecting and securing stored data using a privacy switch |
CN110084088A (zh) | 2016-10-26 | 2019-08-02 | 奥康科技有限公司 | 用于分析图像和提供反馈的可佩戴设备和方法 |
US20180232693A1 (en) | 2017-02-16 | 2018-08-16 | United Parcel Service Of America, Inc. | Autonomous services selection system and distributed transportation database(s) |
US10691793B2 (en) | 2017-02-20 | 2020-06-23 | AlphaPoint | Performance of distributed system functions using a trusted execution environment |
US11138247B2 (en) | 2017-04-07 | 2021-10-05 | Druva, Inc. | Systems and methods for a full text search engine implemented using object storage techniques |
CN110019994A (zh) | 2017-11-13 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 数据加密、解密及查询方法、数据加密解密及查询装置 |
-
2017
- 2017-11-13 CN CN201711116308.2A patent/CN110019994A/zh active Pending
-
2018
- 2018-09-10 TW TW107131690A patent/TW201918924A/zh unknown
- 2018-11-13 WO PCT/US2018/060700 patent/WO2019094917A1/en active Application Filing
- 2018-11-13 US US16/189,906 patent/US11120142B2/en active Active
-
2021
- 2021-08-13 US US17/402,010 patent/US12008116B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120159180A1 (en) * | 2010-12-17 | 2012-06-21 | Microsoft Corporation | Server-side Encrypted Pattern Matching |
US20130238646A1 (en) * | 2012-03-06 | 2013-09-12 | Evrichart, Inc. | Partial-Match Searches of Encrypted Data Sets |
US20140355754A1 (en) * | 2013-05-28 | 2014-12-04 | Hong Kong Applied Sicence & Technology Research Institute Company Limited | Partial CipherText Updates Using Variable-Length Segments Delineated by Pattern Matching and Encrypted by Fixed-Length Blocks |
US20170060940A1 (en) * | 2015-08-26 | 2017-03-02 | International Business Machines Corporation | Providing secure indexes for searching encrypted data |
CN106850187A (zh) * | 2017-01-13 | 2017-06-13 | 温州大学瓯江学院 | 一种隐私字符信息加密查询方法及系统 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111049856A (zh) * | 2019-12-26 | 2020-04-21 | 中国联合网络通信集团有限公司 | 认证方法及装置 |
CN111556496A (zh) * | 2020-04-30 | 2020-08-18 | 航天宏康智能科技(北京)有限公司 | 一种无线通信方法及收发装置 |
CN113132100A (zh) * | 2021-04-13 | 2021-07-16 | 电子科技大学 | 一种基于滑窗QC-LDPC码的McEliece体制加解密方法 |
CN117390687A (zh) * | 2023-12-11 | 2024-01-12 | 闪捷信息科技有限公司 | 敏感数据查询方法、装置、存储介质和电子设备 |
CN117390687B (zh) * | 2023-12-11 | 2024-04-02 | 闪捷信息科技有限公司 | 敏感数据查询方法、装置、存储介质和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
US11120142B2 (en) | 2021-09-14 |
US12008116B2 (en) | 2024-06-11 |
US20190147172A1 (en) | 2019-05-16 |
WO2019094917A1 (en) | 2019-05-16 |
TW201918924A (zh) | 2019-05-16 |
US20210374257A1 (en) | 2021-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110019994A (zh) | 数据加密、解密及查询方法、数据加密解密及查询装置 | |
US11487897B2 (en) | Generating and processing obfuscated sensitive information | |
CN110110163B (zh) | 安全子字符串搜索以过滤加密数据 | |
US10476662B2 (en) | Method for operating a distributed key-value store | |
CN103780622B (zh) | 一种面向云存储的数据分类加密方法 | |
CN111199053B (zh) | 用于对加密数据进行多字符通配符搜索的系统和方法 | |
EP2336908B1 (en) | Search device, search method and search program using open search engine | |
US11764940B2 (en) | Secure search of secret data in a semi-trusted environment using homomorphic encryption | |
US10461924B2 (en) | Format-preserving cipher | |
US20130238646A1 (en) | Partial-Match Searches of Encrypted Data Sets | |
US20220019678A1 (en) | Method, apparatus, and computer-readable medium for automated construction of data masks | |
US9946720B1 (en) | Searching data files using a key map | |
US10164945B2 (en) | Method, apparatus, and computer-readable medium for masking data | |
US9313023B1 (en) | Format-preserving cipher | |
CN105827582A (zh) | 一种通信加密方法、装置和系统 | |
JP2016522931A (ja) | パスワードへの攻撃を阻害すること | |
Kroll et al. | Who is 1011011111 1110110010? Automated cryptanalysis of Bloom filter encryptions of databases with several personal identifiers | |
JP6557338B2 (ja) | 類似性秘匿検索システム、類似性秘匿検索方法 | |
CN106357608A (zh) | 一种面向个人医疗健康数据的隐私数据加密及解密方法 | |
CN110830261A (zh) | 加密方法、装置、计算机设备及存储介质 | |
Khalid et al. | Cryptanalysis of ultralightweight mutual authentication protocol for radio frequency identification enabled Internet of Things networks | |
CN106227783B (zh) | 一种政务数据聚合装置、数据提供端、系统和方法 | |
US20200389297A1 (en) | Adaptive encryption for entity resolution | |
US20220121768A1 (en) | Data tokenization and search in a distributed network | |
CN114978620B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190716 |