一种用于数据库的数据加密及检索方法[发明专利]

(10)申请公布号 (43)申请公布日 2014.07.16
C N  103927357
A (21)申请号 201410150462.1
(22)申请日 2014.04.15
G06F 17/30(2006.01)
G06F 21/60(2013.01)
(71)申请人上海新炬网络技术有限公司
地址200063 上海市普陀区中山北路2000
号中期大厦3楼B
(72)发明人程永新  符强  曾天水
(74)专利代理机构上海申汇专利代理有限公司
31001
代理人
金碎平
(54)发明名称
一种用于数据库的数据加密及检索方法
(57)摘要
本发明公开了一种用于数据库的数据加密及
检索方法,包括如下步骤:a)先利用单向加密算
法对原数据加密,在保持原数据顺序不变的情况
下,生成非解密的可索引头部;b)接着再继续对
原数据加密生成可解密的密文数据;c)将可索引
头部和可解密的密文数据组合在一起生成加密组
合数据存储到数据库中;所述步骤a)中的单向加
密算法为MD5、SHA 或HMAC ;所述步骤b)中的加密
算法为对称密钥加密算法。本发明提供的用于数
据库的数据加密及检索方法,通过组合使用可索
引头部和可解密的密文数据对原数据全部采用密
文进行加密存储,利用可索引头部对加密后的数
据进行快速检索,从而避免全表扫描且能保证解
密数据的正确性及搜索数据的安全性。
(51)Int.Cl.
权利要求书1页  说明书5页  附图3页
(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书1页  说明书5页  附图3页(10)申请公布号CN 103927357 A
1/1页
1.一种用于数据库的数据加密方法,其特征在于,包括如下步骤:
a)先利用单向加密算法对原数据加密,在保持原数据顺序不变的情况下,生成非解密的可索引头部;
b)接着再继续对原数据加密生成可解密的密文数据;
c)将可索引头部和可解密的密文数据组合在一起生成加密组合数据存储到数据库中。
2.如权利要求1所述的用于数据库的数据加密方法,其特征在于,所述步骤a)中的单向加密算法为MD5、SHA 或HMAC ;所述步骤b)中的加密算法为对称密钥加密算法。
3.如权利要求2所述的用于数据库的数据加密方法,其特征在于,所述对称密钥加密算法为AES 、ARIA 、SEED 、TDES 或DES 。
4.如权利要求1所述的用于数据库的数据加密方法,其特征在于,所述步骤c)中还包括在组合数据的后面插入可索引头部的数据长度信息,然后再生成加密组合数据存储到数据库中。
5.一种用于数据库的数据检索方法,其特征在于,包括如下步骤:
a)获取权利要求1所述的数据加密方法生成的加密组合数据;
b)接着对待搜索数据采用相同的单向加密算法生成加密搜索数据,并和步骤a)中获取的加密组合数据中的可索引头部进行检索比对;
c)如果存在匹配的可索引头部,则确定该加密组合数据中的密文数据的起始位置,并对密文数据进行解密获取查询数据。
6.如权利要求5所述的用于数据库的数据检索方法,其特征在于,所述步骤a)和步骤b)中的单向加密算法为MD5、SHA 或HMAC ;所述步骤a)和步骤c)中的加密算法为对称密钥加密算法。
7.如权利要求5所述的用于数据库的数据检索方法,其特征在于,所述步骤a)还包括将加密组合数据中的可索引头部生成索引表,所述步骤b)利用索引表对所述加密搜索数据进行检索。
8.如权利要求7所述的用于数据库的数据检索方法,其特征在于,所述步骤c)根据索引表中的可索引头部确定密文数据的起始位置,所述加密组合数据中对应索引表中的可索引头部后面的数据即为密文数据的起始位置。
9.如权利要求5所述的用于数据库的数据检索方法,其特征在于,所述步骤a)中加密组合数据的后面插入有可索引头部的数据长度信息,所述步骤c)根据加密组合数据最后的可索引头部的数据长度信息确定密文数据的起始位置。
10.如权利要求5所述的用于数据库的数据检索方法,其特征在于,所述步骤a)中加密组合数据中的密文数据前插入有预设起始标识符,如果加密组合数据中存在多个预设起始标识符,依次对预设起始标识符后的密文数据进行解密,然后再对解密数据采用相同的单向加密算法加密并与加密组合数据中的可索引头部进行比较,直至两者完全匹配,则当前预设起始标识符为密文数据的起始位置。权  利  要  求  书CN 103927357 A
一种用于数据库的数据加密及检索方法
技术领域
[0001] 本发明涉及一种数据加密及检索方法,尤其涉及一种用于数据库的数据加密及检索方法。
背景技术
[0002] 随着计算机技术的飞速发展,数据库的应用已经十分广泛,深入到了各个领域。特别是进入云时代和大数据时代后,越来越多重要的数据存入了数据库中。但是,如果政府机构的一些政策法规、绝密文件,商业机构的一些商业秘密,金融机构的个人信息和金融财产信息等等各种敏感数据都以明文形式储存,那将是灾难性的。只要稍微具有一点数据库的专业知识,就可以轻而易举的获取到这些关系到国家的安全、企业的兴衰的信息。因此,如何有效地保证数据库系统的安全,实现数据库的保密性、完整性、有效性和可用性,已经成为业界人士研究的重要课题。目前,国内使用的主流商业数据库都从国外进口,由于法律的限制,安全数据库系统基本不对中国出口,因此对现有主流商业数据库系统的加密、保护技术和密文数据的高效检索技术的需求十分强烈。
[0003] 现有技术中,一般来说,数据加密是把纯文本数据利用DES,3DES,AES等的对称密钥算法进行永久变形。这种变形的数据在完全丧失加密之前的文本意义状态下储存到数据库中。如果在这时生成储存数据的索引表,排序(ordering)将变得乱七八糟无法进行索引搜索,从而导致数据库管理系统不能使用索引表,而只能进行整个表格的扫描(Table full Scan)。这种全表扫描性能大幅下降(最多能带来数十倍的性能低下),给数据库运营带来致命的问题。
[0004] 由上可见,现有的技术是直接对数据利用DES,3DES,AES等对称密钥算法进行永久变形,进行粗暴式的加密,存在如下缺点:
[0005] 1)、数据完全变形。这种变形的数据完全丧失加密之前的文本意义,储存到数据库中的数据变的杂乱无章,无法进行有效的序列和索引。
[0006] 2)、无法进行索引操作。这个时候产生的索引表变的杂乱无章,无法进行有效的索引,这就导致了对加密表的查询,只能进行全表扫描(TABLEFULLSCAN)。
[0007] 3)、查询性能大幅下降。这种技术虽然在形式上实现了数据的加密,但是在实际的操作中却存在不可操作的问题。因为目前的数据量不再是以前传统意义上的小数据加密,而是大批量数据的加密。这样产生的数据效果是一堆杂乱无章的数据的全表扫描,要查出想要的结果,将是一个漫长的过程,基本上没有实际的操作意义。
[0008] 4)、数据加密有漏洞。这种加密技术,在查询的时候,会生成一条加密后的查询条件语句,这种语句很容易被非法捕获并进行反解密,数据其实是能解密出来的,从而安全存在一定的漏洞。
发明内容
[0009] 本发明所要解决的技术问题是提供一种用于数据库的数据加密及检索方法,即能
对原数据进行加密存储,又能保证对加密后的数据进行快速检索,避免全表扫描,且能保证解密数据的正确性及搜索数据的安全性。
[0010] 本发明为解决上述技术问题而采用的技术方案是提供一种用于数据库的数据加密方法,其中,包括如下步骤:a)先利用单向加密算法对原数据加密,在保持原数据顺序不变的情况下,生成非解密的可索引头部;b)接着再继续对原数据加密生成可解密的密文数据;c)将可索引头部和可解密的密文数据组合在一起生成加密组合数据存储到数据库中。[0011] 上述的用于数据库的数据加密方法,其中,所述步骤a)中的单向加密算法为MD5、SHA或HMAC;所述步骤b)中的加密算法为对称密钥加密算法。
[0012] 上述的用于数据库的数据加密方法,其中,所述对称密钥加密算法为AES、ARIA、SEED、TDES或DES。
[0013] 上述的用于数据库的数据加密方法,其中,所述步骤c)中还包括在组合数据的后面插入可索引头部的数据长度信息,然后再生成加密组合数据存储到数据库中。[0014] 本发明为解决上述技术问题还提供一种用于数据库的数据检索方法,其中,包括如下步骤:a)获取上述的数据加密方法生成的加密组合数据;b)接着对待搜索数据采用相同的单向加密算法生成加密搜索数据,并和步骤a)中获取的加密组合数据中的可索引头部进行检索比对;c)如果存在匹配的可索引头部,则确定该加密组合数据中的密文数据的起始位置,并对密文数据进行解密获取查询数据。
[0015] 上述的用于数据库的数据检索方法,其中,所述步骤a)和步骤b)中的单向加密算法为MD5、SHA或HMAC;所述步骤a)和步骤c)中的加密算法为对称密钥加密算法。[0016] 上述的用于数据库的数据检索方法,其中,所述步骤a)还包括将加密组合数据中的可索引头部生成索引表,所述步骤b)利用所述索引表对所述加密搜索数据进行检索。[0017] 上述的用于数据库的数据检索方法,其中,所述步骤c)根据索引表中的可索引头部确定密文数据的起始位置,所述加密组合数据中对应索引表中的可索引头部后面的数据即为密文数据的起始位置。
[0018] 上述的用于数据库的数据检索方法,其中,所述步骤a)中加密组合数据的后面插入有可索引头部的数据长度信息,所述步骤c)根据加密组合数据最后的可索引头部的数据长度信息确定密文数据的起始位置。
[0019] 上述的用于数据库的数据检索方法,其中,所述步骤a)中加密组合数据中的密文数据前插入有预设起始标识符,如果加密组合数据中存在多个预设起始标识符,依次对预设起始标识符后的密文数据进行解密,然后再对解密数据采用相同的单向加密算法加密并与加密组合数据中的可索引头部进行比较,直至两者完全匹配,则当前预设起始标识符为密文数据的起始位置。
[0020] 本发明对比现有技术有如下的有益效果:本发明提供的用于数据库的数据加密及检索方法,通过组合使用可索引头部和可解密的密文数据对原数据全部采用密文进行加密存储,利用可索引头部对加密后的数据进行快速检索,从而避免全表扫描,且能保证解密数据的正确性及搜索数据的安全性。
附图说明
[0021] 图1为本发明用于数据库的数据加密流程示意图;
[0022] 图2为本发明用于数据库的数据加密变换及组合示意图;
[0023] 图3为本发明用于数据库的数据检索流程示意图。
具体实施方式
[0024] 下面结合附图和实施例对本发明作进一步的描述。
[0025] 图1为本发明用于数据库的数据加密流程示意图。
[0026] 请参见图1,本发明提供的用于数据库的数据加密方法包括如下步骤:
[0027] 步骤101:先利用单向加密算法对原数据加密,在保持原数据顺序不变的情况下,生成非解密的可索引头部;所述单向加密算法可以为MD5、SHA或HMAC等各种现有的算法,利用单向加密算法既可保持原数据顺序不变生成可索引头部,又能保证索引头部非可逆,不可解密。
[0028] 步骤102:接着再继续对原数据加密生成可解密的密文数据;如AES、ARIA、SEED、TDES或D
ES等对称密钥加密算法。
[0029] 步骤103:将可索引头部和可解密的密文数据组合在一起生成加密组合数据存储到数据库中。
[0030] 步骤104:为了便于正确快速定位加密组合数据中可解密的密文数据的起始位置,还可在组合数据的后面插入可索引头部的数据长度信息,然后再生成加密组合数据存储到数据库中。
[0031] 图2为本发明用于数据库的数据加密变换及组合示意图。
[0032] 请继续参见图2,把原数据110变换成可搜索的加密组合数据100过程如下:[0033] 首先将原数据110加密成索引头部:这时储存在原表格的数据,或者从应用(App)中直接输入的原始数据利用单向加密算法加密成索引头部,这里使用的单向加密算法是通常使用的公开算法,所以可以在多种算法中选择使用。因此,索引头部101保持原数据110的顺序,并在维持不被解密的状态下被加密。如图2的原数据110中保存着的“abcdefgh”通过单方向数据加密算法,被加密成索引头部“QlrxKgdDUCsyLpOgFbz4aOMk1Wo=”。这里根据使用的算法变化的数据形式会有所不同。同样地,原始数据“12345678”也进行单向加密生成可索引头部“fCIvspJ9goryL1khNOiTJIBjfA0=”。
[0034] 其次是将原数据110继续加密成加密数据102。这时,保存在原数据表中储存的原数据110,或是从应用软件中直接输入的原数据110是根据的标准的块加密算法或单方向算法被加密。在这里提到的块
加密算法基于AES,ARIA,SEED,TDES或DES等对称加密算法,但不限与此。单方向法则是指SHA-1、SHA-2等HASH函数,但算法不限于此,本实施例中采用的是SHA-1加密算法。
[0035] 因此,加密数据102与加密之前的原数据相比是完全不同,但可以被解读。如图2中的原始数据‘abcdefgh’以块加密算法或单向算法加密成:
[0036] “9E7AD9F674BD00CC6E45F510D4F79FB547091F8F61BF7197”。
[0037] 接着将索引头部101及加密数据102相互结合的生成组合数据100。即这个阶段的加密组合数据100是‘索引头部101’+‘加密数据102’格式。因此,从'abcdefgh'的原
‘QlrxKgdDUCsy 始数据110中,各个加密后的索引头部101及加密数据102相结合后形成:
LpOgFbz4aOMk1Wo=9E7AD9F674BD00CC6E45F510D4F79FB547091F8F61BF7197'格式的组合数

本文发布于:2024-09-23 20:18:59,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/416553.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   加密   数据库   组合   用于   方法
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议