一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种面向密态数据库的密文查询计算方法与流程

2021-12-04 13:22:00 来源:中国专利 TAG:


1.本发明属于信息安全技术领域,涉及一种面向密态数据库的密文查询计算方法。


背景技术:

2.伴随着云基础设施的快速增长和成熟,与之对应的云数据库服务也层出不穷。近年来数据库用户逐渐转向使用云计算作为服务。无论是传统的线下数据库服务,还是日益增长的云数据库服务,数据库的核心任务都是帮助用户存储和管理数据。全密态数据库作为一种能够彻底解决数据全生命周期隐私保护的系统性解决方案,针对数据上云存在的数据安全的问题,可以有效保证数据不丢失、隐私不泄露:用户自己持有数据加解密密钥且数据加解密过程仅在客户端完成,数据以密文形态存在于数据库服务侧的整个生命周期过程中,并在数据库服务端完成查询运算。运算得到的结果仍然为密文,并最终返回客户端进行解密。
3.针对密文sql查询等涉及的加法、乘法运算,目前的密态数据库多采用非对称的同态加密方案(partial homomorphic encryption,phe)。现有的elgamal,paillier,rsa等都是非对称部分同态加密。非对称加密的公钥和私钥会导致非常大的密文空间,运算速度会很慢。此外,非对称方案的同态运算涉及到的计算比较复杂,同样影响了运算效率。由于非对称同态加密方案本身的限制,在现有的密态数据库中部署的同态可加、可乘加密方案中,开销和支持运算多样性无法兼顾的问题一直存在。
4.针对密文sql查询等涉及的范围查询等运算,保序加密(order

preserving encryption,ope)方案可以实现相关功能。在ope方案中,明文空间和密文空间都必须是数值型数据并且是有序的。此外,密文本身保留了底层明文的顺序。尽管此属性使ope适合于对加密数据执行范围查询,但它也限制了ope方案的安全性。目前已有(order

revealing encryption,ore)顺序揭示加密方案及其分支方案在保证更高运算效率的前提下,可以泄露更少的信息,从而提供比ope方案更强的安全性。ore相关方案可以抵抗(ordered chosen plaintext attack,ind

ocpa)。ind

ocpa是语义安全的一种表征,它指出,如果两个序列中消息的顺序相同,则没有不存在有效的对手可以区分任何对两个消息序列的加密。
5.针对密文sql查询等设计的等值判断运算,确定性加密方案(deterministic encryption,det)可以实现相关功能,目前相关方案较为成熟,在目前的密态数据库中应用广泛。
6.针对密态数据库的加密方案组合选择,经过专利查询,检索到一篇相关的专利,名称为一种基于sql改写实现的数据库同态加密方法,专利申请号为cn 109409129 a,该专利提出了使用ope支持保序查询,使用paillier支持加法运算。对于乘法运算并未说明是否有解决方案。此外,由于非对称加密的局限性,paillier的实际运算开销很大,且ope加密方案在安全性和运算效率上均有更好的替代方案。目前针对密态数据库部署更高运算效率的加密算法组合尚未有有效的解决方案。


技术实现要素:

7.本发明的目的在于克服上述现有技术的缺点,提供了一种面向密态数据库的密文查询计算方法,该方法支持多种运算类型,实现密文的增删、修改及查询,且运算效率较高。
8.为达到上述目的,本发明所述的面向密态数据库的密文查询计算方法包括以下步骤:
9.1)利用私有密钥对明文数据表进行加密后上传至密文数据库;
10.2)登陆密文数据库,输入明文sql语句,然后向云服务器提出增删修改查询请求;
11.3)根据所述增删修改查询请求利用用户自定义函数udf将明文sql语句转换为密文sql语句;
12.4)云服务器对密文数据执行密文sql语句的相关操作,将操作的结果返回至客户端。
13.步骤3)的具体操作为:对明文sql语句进行词法语法分析,再对查询树进行解析遍历,根据预设加密方案对明文字段进行相应的密文替换,同时对语法树的叶子节点进行加密,然后利用用户自定义函数udf将语法树转化为字符串sql,再将字符串sql转为密文sql语句。
14.步骤4)中的相关操作为支持范围查询、等值查询、加法运算、乘法运算或集聚函数运算。
15.用户自定义函数udf包括密文范围查询函数udf_ore_le(密文1,密文2)、udf_ore_lt(密文1,密文2)、udf_ore_gt(密文1,密文2)及udf_ore_ge(密文1,密文2)、密文运算函数sahe_add(密文1,密文2)及乘法smhe_mul(密文1,密文2)和密文聚合函数sum_sahe(加密列名)、ore_max(加密列名)、ore_min(加密列名)及avg_new(加密列名)。
16.密文范围查询函数udf_ore_le(密文1,密文2)、udf_ore_lt(密文1,密文2)、udf_ore_gt(密文1,密文2)及udf_ore_ge(密文1,密文2)分别用于表征小于等于、小于、大于及大于等于的比较运算。
17.密文运算函数sahe_add(密文1,密文2)及乘法smhe_mul(密文1,密文2)分别用于表征密文加法运算及密文乘法运算。
18.密文聚合函数sum_sahe(加密列名)、ore_max(加密列名)、ore_min(加密列名)及avg_new(加密列名)分别用于表征列求和运算、列取最大值运算、列取最小值运算及取均值运算。
19.所述预设加密方案包括对称同态可加加密方案、对称同态可乘加密方案、快速的ore方案及确定性加密方案。
20.本发明具有以下有益效果:
21.本发明所述的面向密态数据库的密文查询计算方法在具体操作时,根据所述增删修改查询请求利用用户自定义函数udf将明文sql语句转换为密文sql语句,云服务器对密文数据执行密文sql语句的相关操作,将操作的结果返回至客户端,以支持多种运算类型,实现密文的增删、修改及查询,运算效率较高,同时客户端及服务器端的相关开销较低,另外,本发明可移植性强,易部署于目前主流的oltp数据库。
附图说明
22.图1为本发明的系统架构图;
23.图2为密态数据库密文存储示意图;
24.图3为查询重写示例图。
具体实施方式
25.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,不是全部的实施例,而并非要限制本发明公开的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要的混淆本发明公开的概念。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
26.在附图中示出了根据本发明公开实施例的结构示意图。这些图并非是按比例绘制的,其中为了清楚表达的目的,放大了某些细节,并且可能省略了某些细节。图中所示出的各种区域、层的形状及它们之间的相对大小、位置关系仅是示例性的,实际中可能由于制造公差或技术限制而有所偏差,并且本领域技术人员根据实际所需可以另外设计具有不同形状、大小、相对位置的区域/层。
27.图1为系统总体架构图,主要涉及数据持有者,客户端以及云服务器端模块。
28.1)数据库拥有者利用私有密钥对明文数据表进行加密后上传至密文数据库。
29.其中,加密原则为:表名及列名使用哈希函数进行加密,对明文数据表中的数值型数据项分别使用det方案、对称同态加方案、对称同态乘方案及ore方案进行加密,对明文数据表中的字符串数据,使用det方案进行加密。
30.2)客户端使用者登陆密文数据库,再输入明文sql语句,然后向云服务器提出增删修改查询请求。
31.具体操作过程为:
32.21)支持from,where,group by,having,order by等子句以及相关聚集函数,加法乘法运算,以及范围查询等功能的查询语句。
33.22)创建数据表语句,创建索引语句以及插入数据项语句。
34.23)删除数据表语句,删除数据项语句。
35.24)更新表操作语句,修改索引语句。
36.3)密文转化模块对明文sql语句进行词法语法分析,对查询树进行解析遍历,根据涉及到的加密方案对明文字段进行相应的密文替换,同时对语法树的叶子节点进行加密。
37.其中,使用服务器实现的相关用户自定义函数udf(支持范围查询,等值查询,加法,乘法运算,以及相关的聚集函数)替换原始的运算,将语法树转化为字符串sql,再将字符串sql转为密文sql语句,从而将明文sql语句转化成密文sql语句。
38.4)服务器对密文数据库执行密文sql语句的相关操作,其中,对于查询操作,将密文查询结果返回至客户端,客户端对密文查询结果进行解密,得解密后的密文查询结果。
39.图2为密态数据库密文存储示意图,主要涉及四种加密方案对应的密文列存储方法,具体为:
40.1a)对称同态可加加密
41.定义对称同态可加加密方案∏sahe=(gen,enc,dec)。该对称同态可加加密方案在阿贝尔群z
n
上定义,阿贝尔群的阶n大于1,设f
k
(x)=f(k,x)(f:{0,1}
n
×
{0,1}
n

z
n
)为一个将长度为n的字符串映射到z
n
上的伪随机函数,其中,n表示密钥的长度。
42.gen(1
n
):输出k∈{0,1}
n
作为对称密钥。
43.enc(k,m):输入密钥k∈{0,1}
n
,明文m∈z
n
选择r∈{0,1}
n
作为伪随机函数的随机种子,经过以下公式输出加密后的密文结果:
[0044][0045]
其中,密文结果c为一个三元组<v,l
p
,l
n
>,v为模糊值,l
p
存储一组id值,该组id值被用于生成在z
n
中的随机元素,生成的伪随机函数值与明文值m相加。l
n
存储一组id值,该组id值被用于生成在z
n
中的随机元素,生成的伪随机函数值与明文值m相减。当首次加密一个明文值m时,则仅会进行m与伪随机函数运算结果的加法运算,即:
[0046]
v=(m f
k
(r))mod n
[0047]
其中,l
p
=[r],
[0048]
dec(k,c):给定对称密钥k∈{0,1}
n
,密文c=<v,l
p
,l
n
>,输出的原始明文为:
[0049][0050]
1b)对称同态可乘加密。
[0051]
定义对称同态可加加密方案∏smhe=(gen,enc,dec)
[0052]
具体的,该对称同态可加加密方案在阿贝尔群上定义,阿贝尔群的阶n大于1,和对称同态可加加密类似,定义f
k
(x)=f(k,x)生成中的元素,对于选定的群的阶,使用固定的生成元g。
[0053]
gen(1
n
):输出k∈{0,1}
n
作为对称密钥。
[0054]
enc(k,m):输入密钥k∈{0,1}
n
,明文选择r∈{0,1}
n
作为伪随机函数的随机种子,经过以下公式输出加密后的密文结果:
[0055][0056]
密文结果c为一个三元组<v,l
p
,l
n
>,l
p
存储一组id值,这组id被用于生成在中的随机元素,生成的伪随机函数值作为生成元g的幂和明文值相乘,由此生成最终的模糊值v,l
n
与此类似,不同的是l
n
存储的id值生成的伪随机函数值要取反之后作为生成元g的幂和明文值相乘。
[0057]
dec(k,c):给定对称密钥k∈{0,1}
n
,密文c=<v,l
p
,l
n
>,输出原始明文为:
[0058][0059]
1c)快速的ore方案。
[0060]
顺序显示排序ore方案是包括三种算法(密钥生成,加密,比较运算)的定义在有序域d的元组,它具有以下特性:
[0061]
setup(1
λ
)

sk:输入一个安全参数λ,该算法输出一个密钥sk。
[0062]
encrypt(sk,m)

ct:输入密钥sk和明文m∈d,加密算法输出密文ct。
[0063]
compare(ct1,ct2)

b:给定两个密文作为输入,比较算法输出b∈{

1,0,1}。
[0064]
1d)确定性加密方案。
[0065]
使用应用广泛的aes方案对字符型及数值型数据进行加密。
[0066]
图3为明文sql转换成密文sql的示例,参考图3,密文转化模块对明文sql语句进行词法语法分析,对语法树的叶子节点进行加密后将语法树转为字符串sql,再将字符串sql转换为密文sql语句,服务器端接收密文sql以后,可以按照既定的解析规则进行sql解析。
[0067]
用户自定义函数的实现方法包括:具体地,本加密数据库实现的用户自定义函数包括:
[0068]
2a)密文范围查询函数udf_ore_le(密文1,密文2)、udf_ore_lt(密文1,密文2)、udf_ore_gt(密文1,密文2)及udf_ore_ge(密文1,密文2),用于分别表征“<=”,“<”,“>”,“>=”等比较运算。以udf_ore_le(密文1,密文2)为例,若密文1的值小于密文2,则该函数返回1,否则,则返回0,密文值为经ore方案加密的数值型数据。
[0069]
2b)密文运算函数sahe_add(密文1,密文2)及乘法smhe_mul(密文1,密文2),用于分别表征密文加法及乘法运算,以sahe_add(密文1,密文2)为例,密文值为经对称同态可加加密方案加密的数值型数据,该用户自定义函数的运算结果解密之后即为明文相加的结果。
[0070]
2c)密文聚合函数sum_sahe(加密列名)、ore_max(加密列名)、ore_min(加密列名)及avg_new(加密列名),用于分别表征列求和、列取最大值、列取最小值及取均值运算。
[0071]
用户自定义函数的构建方式随部署的数据库平台不同而有所区别,以postgresql为例,postgresql支持c语言编写用户自定义函数,且提供与postgresql适配的语法规则、编译方式以及创建语句等。例如,编写sum_sahe(加密列名)函数实现某密文列所选元素求和需要以下几个步骤:
[0072]
3a)编写postgresql支持的c语言函数sahe_add(密文1,密文2)。
[0073]
3b)编译sahe_add(密文1,密文2),链接并生成共享库文件sahe.so(sahe.so为生成的共享库名称),并放置于postgresql中$libdir目录下。
[0074]
3c)登录数据库,切换postgres用户,输入创建用户自定义函数语句,完成用户自定义函数创建。
[0075]
在实际操作时,根据需要部署的目标数据库的相关适配规则,编写用户自定义函数,服务器端即可利用本发明的几种加密方案实现较为全面的运算需求。
[0076]
以上所述仅为本发明的较佳实施例,并不以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献