首页> 中国专利> 基于GCM加密模式的数据库加密字段模糊检索方法

基于GCM加密模式的数据库加密字段模糊检索方法

摘要

本发明提供一种基于GCM加密模式的数据库加密字段模糊检索方法。通过将已加密字段的原始明文按照指定长度或长度序列进行分割,并应用基于GCM加密模式的加密算法,对明文分割后形成的各个片段进行加密操作,求取对应的认证值Tag,生成对应的密文索引集合,将密文索引集合中的认证值Tag与密文拼接在一起,存储在密文字段中。在进行模糊检索时,本发明利用密文索引集合中的元素与待检索内容进行匹配,既可以过滤掉大量不匹配记录,降低需要解密进行模糊匹配的记录数,提高查询效率,又由于应用GCM加密模式,可以灵活选择认证值Tag长度,从而对于数据库字段存储空间具有强适应性。

著录项

  • 公开/公告号CN113076562A

    专利类型发明专利

  • 公开/公告日2021-07-06

    原文格式PDF

  • 申请/专利权人 北京炼石网络技术有限公司;

    申请/专利号CN202110502398.9

  • 发明设计人 桂阳;薛景辉;王芷玲;邓斯红;

    申请日2021-05-08

  • 分类号G06F21/62(20130101);G06F21/60(20130101);G06F40/126(20200101);G06F16/2458(20190101);

  • 代理机构11474 北京孚睿湾知识产权代理事务所(普通合伙);

  • 代理人王冬杰

  • 地址 100080 北京市海淀区北三环西路32号楼7层0710-1

  • 入库时间 2023-06-19 11:44:10

说明书

技术领域

本发明涉及一种基于GCM(Galois/Counter Mode)加密模式的数据库加密字段模糊检索方法,属于信息安全以及数据库加密技术领域。

背景技术

随着信息化、网络化的飞速发展,在大数据时代下,面对海量的数据资源,数据库的安全防护日趋重要,而对数据库中的敏感字段进行加密已然成为数据库安全防护的一种有效方法。但是,对于已经加密的字段,如果需要对内容进行模糊查询,一般需要将原内容解密后再进行匹配,严重影响查询效率。针对此场景的解决方案中,有的需要对数据库系统进行较大改造,有的则对数据库资源消耗较大。

现有技术中,有通过计算加密字段明文片段的哈希值索引来构建密文索引的方法,由于需要新增索引字段,并且哈希值长度固定,需要较大存储空间,对于大型数据库的海量记录,需要增加较大的存储开销,同时因为哈希算法固有的碰撞特性,存在检索出无关记录的可能性,进而影响查询效率。

发明内容

为了克服现有技术的不足,本发明针对现有数据库加密内容检索技术对字符型加密字段进行模糊检索时效率不高,哈希值索引等现有密文索引方式对数据库存储字段长度要求较高,且需要改造数据库表结构等缺陷,提出一种基于GCM加密模式的数据库加密字段模糊检索方法。

本发明提出的一种基于GCM加密模式的数据库加密字段模糊检索方法,是将已加密字段明文按照指定长度或长度序列进行分割,并应用基于GCM加密模式的加密算法,对明文分割后形成的各个片段进行加密操作,得到对应的认证值Tag,形成密文索引集合,并将集合中的认证值Tag与密文拼接在一起,替换原密文,并存储在密文字段中;针对查询条件,利用密文索引集合中的元素进行模糊检索。通过该方法,一方面,可以过滤掉大量不匹配记录,降低需要解密进行模糊匹配的记录数,提高查询效率;另一方面,由于应用GCM模式,可以灵活选择认证值Tag长度,能够较好地适配不同的应用场景,且允许选用的认证值Tag长度更小,大大减少对存储空间的消耗,从而对于数据库字段存储空间具有强适应性;另外,由于多因素参与,算法复杂性高,在实践中,从索引逆向推导出原文基本无法实现,能够有效确保模糊检索时的数据安全。

为实现上述目的,本发明所采用的解决方案为:

一种基于GCM加密模式的数据库加密字段模糊检索方法,其包括以下步骤:

步骤1:对加密字段M中待检索内容C建立索引,得到改造后的密文值,具体包括以下步骤:

步骤11:记所述步骤1中待检索内容C的明文为字符串P,采用分割方法对所述明文字符串P进行拆分,获得所述明文字符串P的所有子串;

步骤12:对所述步骤11中获得的明文字符串P的所有子串执行去重操作,得到子串集合S;

步骤13:对所述步骤12中获得的子串集合S中的每个子串应用GCM模式的加密算法进行加密,确定认证值Tag长度,计算所述子串集合S中的每个子串的认证值Tag,得到认证值Tag的集合S’;

步骤14:对所述步骤13中获得的认证值Tag的集合S’中的元素按顺序拼接,得到所述明文字符串P的索引值Index_P;

步骤15:返回所述步骤14中获得的明文字符串P的索引值Index_P,将所述索引值Index_P与待检索内容C拼接得到改造后的密文值,并将所述改造后的密文值替换所述待检索内容C,存储在加密字段M中;

步骤2:对所述明文字符串P使用模糊检索的查询条件进行匹配,其中模糊检索的查询条件字符串P

步骤21:采用所述步骤11中的分割方法,对所述步骤2中的查询条件字符串P

步骤22:对所述步骤21中获得的查询条件字符串P

步骤23:对所述步骤22中获得的子串集合S

步骤24:对所述步骤23中获得的集合S

步骤25:返回所述步骤24中获得的改造后的查询条件字符串P

步骤26:将所述待检索内容C解密,得到明文P,对所述明文P使用模糊检索的查询条件P

可优选的是,所述骤13中的认证值Tag长度允许选用:128bit、120bit、112bit、104bit、96bit、64bit或32bit。

可优选的是,所述步骤11中的分割方法包括固定长度K和可变长度序列{K}。

进一步,所述长度序列{K}为一组按顺序排列的长度数值的集合。

可优选的是,所述步骤13中的加密算法包括SM4算法、AES算法的分组加密算法。

可优选的是,步骤15中获得的改造后的密文值为在所述明文字符串P的索引值Index_P与所述待检索内容C之间使用分隔符拼接。

可优选的是,所述步骤25中改造后的查询条件字符串P

可优选的是,所述步骤25中改造后的查询条件字符串P

可优选的是,所述步骤25中改造后的查询条件字符串P

与现有技术相比,本发明的有益效果在于:

利用GCM模式加密算法计算认证值Tag,得到模糊检索的索引,可以有效提升数据库加密字段的检索性能。一方面,由于采用与密文共同存储的方式存储,不需要增加字段,因而无需对现有数据库表结构进行改造,可以在大多数场景下部署应用;另一方面,由于认证值Tag长度可以灵活选择,可选长度包括:128bit,120bit,112bit,104bit,96bit,64bit,32bit,允许选择更小的认证值Tag长度,可以节约大量数据库存储空间;

在构建索引时允许采用多种分割方式,适用数据库中不同格式特征字段的检索需求;另外,由于多因素参与及算法的复杂性,使得在相关知识未知的条件下,从索引逆向推导出原文极为困难,有效提升了模糊检索时的数据库安全性。

附图说明

图1为本发明基于GCM加密模式的数据库加密字段模糊检索方法的流程示意图;

图2为本发明基于GCM加密模式的数据库加密字段模糊检索方法中建立索引阶段流程示意图;

图3为本发明基于GCM加密模式的数据库加密字段模糊检索方法中模糊检索匹配阶段流程示意图。

具体实施方式

以下,参照附图对本发明的实施方式进行说明。

本发明实施例提供了一种基于GCM加密模式的数据库加密字段模糊检索方法,也是一种基于GCM加密模式的数据库加密字段的搜索方法或者确定方法,如图1-图3所示,其中图1为基于GCM加密模式的数据库加密字段模糊检索方法的流程示意图,按照左上方四个步骤首先完成对密文的改造,再按照右上方四个步骤对查询条件进行改造,最后对改造后的密文和查询条件进行匹配,具体步骤包括:

步骤1:假定在数据库的表中某字段M为已加密字段。设M中待搜索的内容为E

步骤11:对明文P分割,此处采用固定长度K的分割方法,设K=2,将P分割为若干子串AB、CD、EF、AB和C。

步骤12:对P的所有子串中的重复串进行合并执行去重操作,得到子串集合S={AB,CD,EF,C},由于集合元素的不重复性,故S中不包含相同的子串。如果K%(len(P))!=0,则必然存在长度小于K的子串,在本实施例不作特别处理。

步骤13:对子串集合S中的每个子串应用GCM加密模式,采用SM4加密算法并确定认证值Tag长度为4字节,即32bit,并以16进制形式表示,计算S中的每个子串的认证值Tag,得到认证值Tag的集合S’={f4859a2c,6102e9f2,2f10cc8d,be5c4907}。

应用GCM加密模式时认证值Tag长度的选择较为自由,其中包括:128bit、120bit、112bit、104bit、96bit、64bit或32bit,具体操作时可以根据实际场景来确定适合的认证值Tag长度,一方面,认证值Tag长度越短,可以节省更多的存储空间,提高查询速度,但理论上发生碰撞的概率也会提高;而认证值Tag长度越长,虽然会占用更多的存储空间,但发生碰撞的概率小,搜索准确度会提高;所以,在具体操作时需要根据客户的需求和具体的环境配置,选择合适的认证值Tag长度。

步骤14:将认证值Tag的集合S’中的各个子串的认证值Tag按照从小到大的顺序拼接,按顺序拼接,将在一定程度上提升后续检索匹配效率,拼接后得到明文P的索引值Index_P=6102e9f2be5c4907f4859a2c2f10cc8d。

步骤15:返回明文P的索引值Index_P,将索引值Index_P与待检索的内容E

如下表所示,在本实施例中,数据库表中的字段M为敏感字段,且为字符型,则其第i条记录的内容为Index_P与待检索的内容E

本实施例中,设定认证值Tag长度为4字节,即32bit。加密过程中,SM4GCM算法使用的加密密钥key为:a0640bcfc01f40692a81090710754e1e,附加认证数据aad为:30313233,初始向量iv为:99aa3e68ed8173a0eed0668400000000。如果采用不同的加密密钥、初始向量和附加认证数据,将得到不同的密文和认证值Tag。

步骤2:进行模糊检索匹配,记需要进行模糊检索的查询条件为字符串P

步骤21:对查询条件字符串P

步骤22:对P

步骤23:对子串集合S

步骤24:对步骤23中获得的集合S

步骤25:返回步骤24中获得的新的查询条件P

一种匹配方式是:对P

另一种匹配方式是:直接进行字符串比对。由于P

关于模糊查询条件中含有通配符情况,在步骤21中,采取忽略并重新分割的办法处理;在步骤24中,对S

本实施例步骤25中,在部分严格约束场景下,为抵消可能的认证值Tag碰撞对查询结果造成的影响,可选择对匹配的记录解密,并利用明文条件P

由于GCM模式是一种有大吞吐能力的加密认证模式,认证值Tag经过GHASH算法得到,利用有限域上的乘法进行HASH,其实现过程涉及初始化向量、明文、附加认证数据等因素,并通过截取指定长度的MSB加权码得到最终认证值Tag,确保从索引值逆向还原出原文的困难性,保证了算法安全。在匹配过程中,具有同哈希值检索同样的效果,即可以过滤掉大量的候选记录,仅对匹配成功的记录实施精准匹配,可以有效提升性能。而且,本发明利用认证值Tag生成索引,算法在保证安全性的前提下,可以根据应用场景,灵活选择认证值Tag长度,最短可设置为4字节,即32bit,极大节省了数据库的存储空间,相比其他数据库加密字段检索方法,具有显著的优势。

以上所述的实施例仅是对本发明的优选实施方式进行描述,并非对本发明的范围进行限定,在不脱离本发明设计精神的前提下,本领域普通技术人员对本发明的技术方案做出的各种变形和改进,均应落入本发明权利要求书确定的保护范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号