一种数据加密处理方法、装置和存储介质与流程

文档序号:22130354发布日期:2020-09-08 12:47阅读:103来源:国知局
本发明涉及数据库加密安全
技术领域
:,尤其涉及一种数据加密处理方法、装置和存储介质。
背景技术
::随着云数据库技术的发展,数据安全的问题一直受到广泛的关注。使用第三方的数据托管服务意味着数据需要全部交与对方保管,难免存在数据泄露的问题。对于数据库托管服务的数据加密问题,采用i/o层的透明加密。此方案在数据向磁盘读写时的i/o层进行加密,保证在磁盘上的数据文件都是密文,该方案虽然可以防止磁盘丢失或者直接盗窃数据文件造成的数据泄露,但是因为在数据库服务器中访问数据会自动解密成明文,无法阻止通过数据库服务器来获取数据,甚至第三方不可信的数据库管理员可以随意访问数据,造成很大的风险。由此可见,如何提高数据托管服务中数据访问的安全性成为现有技术中亟待解决的技术问题之一。技术实现要素:本发明实施例提供一种数据加密处理方法、装置和存储介质,用以提高数据托管服务中数据访问的安全性。第一方面,本发明实施例提供一种数据加密处理方法,包括:接收并解析原始的数据表创建语句,所述原始的数据表创建语句中携带有敏感列标识和需要支持的第一数据操作类型;根据所述敏感列标识,针对相应的第一敏感列生成密钥;利用生成的密钥对第一敏感列数据加密得到对应的第一密文;根据所述第一数据操作类型,针对第一敏感列生成第一洋葱列;根据所述第一密文和第一洋葱列,向数据托管服务器发送改造后的数据表创建语句。在一种实施方式中,根据所述需要支持的第一数据操作类型,针对第一敏感列生成第一洋葱列,包括:根据所述需要支持的第一数据操作类型,确定第一洋葱列的操作层级;针对第一洋葱列的每一操作层级,分别生成该操作层级对应的密钥;并按照第一洋葱列的操作层级,利用每一操作层级对应的密钥分别对所述第一敏感列加密得到第一洋葱列。在一种实施方式中,本发明实施例提供的数据加密处理方法,还包括:接收原始的数据查询语句,所述第一数据语句中携带有针对数据表的第二数据操作类型;如果所述数据表包含有第二敏感列且本次数据表操作涉及第二敏感列数据操作,则判断数据表操作是否支持所述第二数据操作类型;如果数据表操作支持所述第二数据操作类型,则根据所述第二数据操作类型对应的操作层级向数据托管服务器发送洋葱操作层级调整命令,以将洋葱列调整到所述第二数据操作类型对应的可操作层级;利用存储的洋葱列密钥对原始的数据查询语句中包含的第二敏感列数据进行加密处理得到改造后的数据查询语句并发送给所述数据托管服务器;接收所述数据托管服务器针对所述改造后的数据查询语句返回的满足条件的第一筛选数据;利用第二敏感列对应的密钥对第一筛选数据中包含的第二敏感列数据进行解密后发送给请求方。在一种实施方式中,如果数据表操作不支持所述第二数据操作类型,则所述方法还包括:从所述原始的数据查询语句中拆分出不涉及第二敏感列数据操作的子句并发送给所述数据托管服务器;接收所述数据托管服务器针对所述子句返回的满足条件的第二筛选数据;针对第二筛选数据,利用第二敏感列对应的密钥对第二敏感列进行解密并执行涉及第二敏感列数据操作的子句得到满足条件的第三筛选数据发送给请求方。第二方面,本发明还提供一种数据加密处理装置,包括:第一接收单元,用于接收并解析原始的数据表创建语句,所述原始的数据表创建语句中携带有敏感列标识和需要支持的第一数据操作类型;密钥生成单元,用于根据所述敏感列标识,针对相应的第一敏感列生成密钥;加密单元,用于利用生成的密钥对第一敏感列数据加密得到对应的第一密文;洋葱列生成单元,用于根据所述第一数据操作类型,针对第一敏感列生成第一洋葱列;发送单元,用于根据所述第一密文和第一洋葱列,向数据托管服务器发送改造后的数据表创建语句。在一种实施方式中,所述洋葱列生成单元,具体用于根据所述需要支持的第一数据操作类型,确定第一洋葱列的操作层级;针对第一洋葱列的每一操作层级,分别生成该操作层级对应的密钥;并按照第一洋葱列的操作层级,利用每一操作层级对应的密钥分别对所述第一敏感列加密得到第一洋葱列。在一种实施方式中,本发明实施例提供的数据加密处理装置,还包括判断单元、加密单元、第二接收单元和解密单元,其中:所述第一接收单元,还用于接收原始的数据查询语句,所述第一数据语句中携带有针对数据表的第二数据操作类型;判断单元,用于如果所述数据表包含有第二敏感列且本次数据表操作涉及第二敏感列数据操作,则判断数据表操作是否支持所述第二数据操作类型;所述发送单元,还用于如果数据表操作支持所述第二数据操作类型,则根据所述第二数据操作类型对应的操作层级向数据托管服务器发送洋葱操作层级调整命令,以将洋葱列调整到所述第二数据操作类型对应的可操作层级;以及利用第二敏感列对应的密钥对第一筛选数据中包含的第二敏感列数据进行解密后发送给请求方;加密单元,用于利用存储的洋葱列密钥对原始的数据查询语句中包含的第二敏感列数据进行加密处理得到改造后的数据查询语句并发送给所述数据托管服务器;第二接收单元,用于接收所述数据托管服务器针对所述改造后的数据查询语句返回的满足条件的第一筛选数据。在一种实施方式中,本发明实施例提供的数据加密处理装置,还包括拆分单元,其中:所述拆分单元,用于从所述原始的数据查询语句中拆分出不涉及第二敏感列数据操作的子句并发送给所述数据托管服务器;所述第二接收单元,还用于接收所述数据托管服务器针对所述子句返回的满足条件的第二筛选数据;所述发送单元,还用于针对第二筛选数据,利用第二敏感列对应的密钥对第二敏感列进行解密并执行涉及第二敏感列数据操作的子句得到满足条件的第三筛选数据发送给请求方。第三方面,本发明实施例提供一种计算装置,所述计算装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述任一项所述的方法的步骤。第四方面,本发明实施例提供一种计算机存储介质,所述计算机存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。采用上述技术方案,本发明至少具有下列优点:本发明所述的数据加密处理方法、装置和存储介质,针对用户需要严格保护的敏感数据列,利用加密算法对其进行加密后存储,并针对敏感列创建可以支持不通数据操作类型的洋葱列,对于洋葱列进行不同操作层级的加密,根据加密后的敏感列密文数据及其对应的洋葱列向数据托管服务器发送数据表创建语句,由此可见,在数据托管服务器中存储的数据为敏感列密文数据,由此提高了数据托管服务中数据访问的安全性。附图说明图1为根据本发明实施方式的应用场景示意图;图2为根据本发明实施方式的数据加密处理方法流程示意图;图3为根据本发明实施方式的数据插入方法流程示意图;图4为根据本发明实施方式的数据查询方法流程示意图;图5为根据本发明实施方式的数据加密处理装置的结构示意图。具体实施方式为更进一步阐述本发明为达成预定目的所采取的技术手段及功效,以下结合附图及较佳实施例,对本发明进行详细说明如后。需要说明的是,本发明实施例中的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。在本文中提及的“多个或者若干个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本发明实施例中,为了提高数据托管服务中的数据方案安全性,在用户端设置代理服务器,连接数据托管服务器。本发明实施例提供的数据加密处理方法可以应用于上述的代理服务器中。如图1所示,其为本发明实施例提供的数据加密处理方法的应用场景示意图。用户通过客户端访问代理服务器,代理服务器与数据托管服务器。根据本发明实施例提供的数据加密处理方法,用户对代理服务器的操作无感知,其正常执行sql(结构化查询语言)语句增删改查操作即可,代理服务器负责密钥生成及存储,sql加密改造和返回数据解密操作,数据托管服务器中存储的敏感列数据自始至终都是密文。如图2所示,其为本发明实施例提供的数据加密处理方法的实施流程示意图,包括以下步骤:s21、接收并解析客户端发来的原始的数据表创建语句。具体实施时,用户需要在数据托管服务器中创建数据表时,构建建表语句,并通过客户端向代理服务器发送原始的数据表创建语句,原始的数据表创建语句中携带有敏感列标识和需要支持的第一数据操作类型。代理服务器解析接收到的原始的数据表创建语句。例如,用户通过客户端发送标准化建表语句“createtablestudents(nametext,scoreinteger,scoresupportorder)”,指定score列为敏感列,在标准化建表语句中,用户还指定了创建的数据表需要支持的操作类型,本例中,数据表需要支持的数据类型为“scoresupportorder”,即支持score列的排序操作。代理服务器接收到语句进行解析,确定score列为敏感列。s22、根据敏感列标识,针对相应的第一敏感列数据生成密钥。本步骤中,代理服务器针对敏感列生成密钥,延续上例,即代理服务器针对“score”列生成密钥。需要说明的是,具体实施时,敏感列可以包括至少一列,即用户可以根据实际需要指定若干列作为敏感列。s23、利用生成的密钥对第一敏感列数据加密得到对应的第一密文。本步骤中,代理服务器利用生成的密钥对第一敏感列数据加密得到对应的第一密文。延续上例,即代理服务器利用生成的密钥采用加密算法对score列进行加密,具体实施时,代理服务器可以使用aes(高级加密标准)或者其他对称加密算法对score列数据进行加密。s24、根据第一数据操作类型,针对第一敏感列数据生成第一洋葱列。具体实施时,代理服务器根据所述需要支持的第一数据操作类型,确定第一洋葱列的操作层级;针对第一洋葱列的每一操作层级,分别生成该操作层级对应的密钥;并按照第一洋葱列的操作层级,利用每一操作层级对应的密钥分别对第一敏感列加密得到第一洋葱列。延续上例,代理服务器在分析原始的数据表创建语句后,首先为原有的score列生成密钥,并利用对称加密算法,例如aes对score列数据进行加密,然后新增一个洋葱列,列名可如例子中类似由原列名加支持的操作组合而成,例如可以为score_order。而后为多操作层级的洋葱分别生成密钥,具体实施时,洋葱的操作层级有多种划分方式,洋葱列的设计原则遵从最内层为明文,越外层可操作的范围越小的原则,最外层可以为非同态的对称加密,提升在没有对敏感列进行操作时的安全性。例如,在一个实施例中,可以由低到高依次为:明文-支持跨列比较的密文-支持本列比较的密文-无法进行比较操作的密文。洋葱列操作层级信息及其对应的密钥均保存在代理服务器中,在之后的数据读取过程中被使用。s25、根据第一密文和第一洋葱列,向数据托管服务器发送改造后的数据表创建语句。本步骤中,代理服务器根据第一密文和第一洋葱列,对原始的数据表创建语句进行改造得到改造后的数据表创建语句。例如,将上例中的原始的数据表创建语句“createtablestudents(nametext,scoreinteger,scoresupportorder)”改造为改造后的数据表创建语句“createtablestudents(nametext,scoreinteger,socre_orderinteger)”并发送给数据托管服务器,数据托管服务器根据接收到的改造后的数据表创建语句创建数据表。上述过程中,对于建表语句的改写,重点在于敏感列以及需要支持的操作类型指定方式,代理服务器对洋葱列的构建规则。上例中,用户通过建表语句添加scoresupportorder子句的方式,指明了score列为敏感列,并且应该支持排序操作,也就是创建的数据表需要支持密文的大小比较操作。如图3所示,其为在创建的数据表中插入数据的流程示意图,包括以下步骤:s31、代理服务器接收客户端发送的原始的数据插入语句。例如,用户在需要向上述创建的数据表中插入数据时,通过客户端向代理服务器发送原始的数据插入语句“insertintostudents(name,score)values(‘alice’,92),(‘bob’,87)”。s32、代理服务器解析接收的原始的数据插入语句。具体实施时,代理服务器解析接收的原始的数据插入语句,通过分析得知score列为敏感列,并且拥有附属的洋葱列score_order,首先使用敏感列的密钥对值92和87使用加密算法进行加密。s33、代理服务器按照洋葱列的操作层级信息生成敏感列对应的洋葱列。本步骤中,代理服务器可以使用支持排序的半同态算法,按照洋葱列的操作层级信息,分别利用每一操作层级对应的密钥对score列的数据进行多次加密,得到score列对应的洋葱列。s34、代理服务器根据敏感列对应的密文和洋葱列改造原始的数据插入语句得到改造后的数据插入语句。具体实施时,代理服务器利用步骤s32中得到的密文替换score列中的明文数据,并增加洋葱列数据得到改造后的数据插入语句,例如,insertintostudents(name,score,score_order)values(‘alice’,@@@,###),(‘bob’,$$$,&&&)。s35、代理服务器向数据托管服务器发送改造后的数据插入语句。本步骤中,代理服务器将改造后的数据插入语句发送给数据托管服务器,数据托管服务器根据接收到的改造后的数据插入语句在数据表中插入相应的数据。上述的数据加密处理方法中,对于用户需要严格保护的敏感数据列,使用例如aes,sm4等对称加密算法对数据进行加密后存储,其密钥由代理服务器生成并由代理服务器保管;对于非敏感信息可以直接正常使用明文存储。具体实施时,由用户指定敏感列常用的操作类型,为敏感列创建洋葱列,其加密算法以及密钥由代理服务器指定生成;对于洋葱列,使用多级加密,级别越高,其安全性越高,但是其可操作的范围却更小;由代理服务器生成特定的洋葱层调整函数,在托管数据库服务器中创建这些洋葱调整函数;在使用洋葱列进行特定操作时,如果当前级别可以满足,直接执行,若当前级别无法满足操作,则会由代理服务器向数据托管服务器发送语句和参数,调用洋葱调整函数调整洋葱列到合适的操作层级,然后进行操作;在向敏感列写入数据前,先由代理服务器使用对称加密算法对其进行加密,并且为其洋葱列分别使用对应算法加密到对应的级别,一并存储;在客户端发送sql语句时,先由代理服务器进行分析,重写后发往托管数据库服务器;对于ddl(数据定义语言)语句,仅在建表过程中,需要根据用户指定的敏感列,改造建表语句,然后发往数据托管服务器。对于dml(数据操纵语言)语句,除了上述对于洋葱层以及操作类型的检查,需要着重分析条件子句的执行。基于创建的数据表以及插入的数据,本发明实施例还提供了一种对于此种包含已加密数据的任一数据表操作的处理方法。如图4所示,其为本发明实施例提供的数据查询流程示意图,包括以下步骤:s41、代理服务器接收客户端发来的原始的数据查询语句。具体实施时,用户在需要在数据表中查询数据时,通过客户端向代理服务器发送原始的数据查询语句,在原始的数据查询语句中携带有针对任一数据表的第二数据操作类型。例如,用户通过客户端向代理服务器发送原始的数据查询语句“selectname,scorefromstudentswherename=‘bob’andsocre<90”。s42、代理服务器解析接收到的原始的数据查询语句。s43、代理服务器判断任一数据表中是否包含第二敏感列数据,如果是,执行步骤s44,否则,执行步骤s413。s44、代理服务器判断本次数据表操作是否涉及第二敏感列数据操作,如果是,执行步骤s45,否则执行步骤s413。s45、判断本次数据表操作是否支持所述第二数据操作类型,如果是,执行步骤s46,否则,执行步骤s410。延续上例,代理服务器通过步骤s42中解析接收到的原始的数据查询语句可知,其中包含敏感列“score”列且支持密文排序操作,而原始的数据查询语句中包含的数据表操作类型为大小比较操作,因此,接收到的原始的数据查询语句为数据表支持的密文操作类型。在另一实施例中,以代理服务器接收到的原始的数据查询语句为“selectname,scorefromstudentswherename=‘bob’andsocre=90”,代理服务器解析接收到的原始的数据查询语句可知,其中包含敏感列“score”列且支持密文排序操作,而原始的数据查询语句中包含的数据表操作类型为等值判断操作,因此,原始的数据查询语句为数据表不支持的密文操作类型。s46、根据第二数据操作类型对应的操作层级向数据托管服务器发送洋葱操作层级调整命令,以将洋葱列调整到第二数据操作类型对应的可操作层级。如果数据表操作为数据表支持的操作类型,则根据自身存储的洋葱列操作层级信息及每一操作层级对应的密钥,生成洋葱操作层级调整命令并发送给数据托管服务器。将洋葱列调整为第二数据操作类型对应的可操作层级,本例中,即将score列调整为支持自身排序的操作层级。以洋葱列划分为3个操作层级为例,假设由外到内依次为支持跨列比较的密文-支持本列比较的密文-无法进行比较操作的密文,具体实施时,根据原始的数据查询语句可以确定本次数据库表操作类型为支持本列比较的密文,即需要进行第二操作层级的密文操作,代理服务器可以根据第一操作层级的密钥,即支持跨列比较的密文的密钥生成洋葱列操作层级调整命令发送给数据托管服务器,数据托管服务器执行接收到的洋葱列操作层级调整命令,将洋葱列调整到第二操作层级可操作。s47、利用存储的洋葱列密钥对原始的数据查询语句中包含的第二敏感列数据进行加密处理得到改造后的数据查询语句并发送给所述数据托管服务器。本步骤中,代理服务器利用洋葱列的第二操作层级和第三操作层级密钥对原始的数据查询语句中包含的第二敏感列数据进行加密处理得到第二查询语句。本例中,即代理服务器将score<90的值90加密为可比较的密文形式**,改写查询语句为:selectname,scorefromstudentswherename=‘bob’andsocre_order<**;发往数据托管服务器。s48、代理服务器接收数据托管服务器针对改造后的数据查询语句返回的满足条件的第一筛选数据。具体实施中,数据托管服务器执行接收到的改造后的数据查询语句从数据表中筛选出满足条件的第一筛选数据并发送给代理服务器。需要说明的是,具体实施时,数据托管服务器向代理服务器返回的第一筛选数据可以为满足条件的敏感列密文数据。即根据本发明实施例,洋葱列可以作为查询条件查询,返回的数据为敏感列满足条件的密文数据,而不是洋葱列满足条件的数据。当然,具体实施时,也可以返回洋葱列满足条件的数据,本发明实施例对此不进行限定。s49、利用第二敏感列对应的密钥对第一筛选数据中包含的第二敏感列数据进行解密后发送给请求方,流程结束。本步骤中,代理服务器利用自身存储的第二敏感列对应的密钥对第一筛选数据中包含的第二敏感列数据进行解密后发送给用户。s410、从原始的数据查询语句中拆分出不涉及第二敏感列数据操作的子句并发送给数据托管服务器。本步骤中,代理服务器拆分接收到原始的数据查询语句,将其中不涉及第二敏感列的子句分离出来发送给数据托管服务器。本例中,代理服务器将子句“selectname,socrefromstudentswherename=‘bob’”分离出来发送给托管服务器。s411、接收数据托管服务器针对子句返回的满足条件的第二筛选数据。具体实施时,数据托管服务器接收到代理服务器发送的查询子句后,在数据表中查询满足条件的第二筛选数据并返回给代理服务器。第二筛选数据中包含敏感数据密文。s412、针对第二筛选数据,利用第二敏感列对应的密钥对第二敏感列进行解密并执行涉及第二敏感列数据操作的子句得到满足条件的第三筛选数据发送给请求方,流程结束。本步骤中,代理服务器利用自身存储的敏感列对应的密钥第二筛选数据中包含的敏感列数据密文进行解密,并执行原始的数据查询语句中涉及敏感列操作的查询子句,即利用涉及敏感列操作的查询子句在解密后的第二筛选数据中进一步进行筛选得到第三筛选数据,将得到的第三筛选数据发送给用户。s413、将原始的数据查询语句发送给数据托管服务器。数据托管服务器执行接收到的原始的数据查询语句得到相应的筛选数据后返回给代理服务器,由代理服务器返回给用户。上述过程中,如果查询数据语句没有涉及到任何敏感列的查询语句,不需要对sql语句做任何修改直接发往托管数据库服务器;如果数据查询语句涉及到了敏感列,并且数据表支持相应操作类型的,会由代理服务器将此数据查询语句重写,在数据托管服务器以加密的形式进行相应的操作。若数据查询语句为多个,则先由代理服务器分离出可直接发送的和需要改写的,然后仅针对需要改写的部分进行重写;如果数据查询语句涉及到了敏感列,但是数据表不支持相应操作类型,那么代理服务器会先分离出可以直接执行的部分发往数据托管服务器执行,而敏感列则整列获取到代理服务器,而后由代理服务器解密后对其进行剩余的条件判断。本发明实施例中,还允许设置触发器或者手动更新洋葱列,使其重新加密回到最高安全级别,其密钥会由代理服务器重新生成。根据本发明实施例提供的数据加密处理方法,一开始需要先建立数据表,由用户构造建表语句,并通过语句指明敏感列以及需要支持的操作类型;代理服务器接收用户客户端发来的创建数据表的标准化查询语句,对其进行解析;在代理服务器中,针对敏感列生成密钥,并依据所需操作类型,生成对应的洋葱列及其密钥,所有相关信息均保存于代理服务器中;洋葱列的设计原则遵从最内层为明文,越外层可操作的范围越小的原则,但是最外层为非同态的对称加密,提升在没有对敏感列进行操作时的安全性;数据表创建完成后,对其写入数据时,用户不需要关注敏感列和洋葱列的特殊性,仅按正常的数据插入方式操作;代理服务器在接收到新的数据后,先确定写入的目标列是否为敏感列,如果是获取其加密算法及密钥,同时获取其洋葱列以及洋葱列的算法密钥;在代理服务器中针对敏感列及其附属洋葱列计算变换后的密文的值,改造插入数据的标准化查询语句,然后将其发送到数据托管服务器;数据托管服务器接收到来自代理服务器的标准化查询语句后,执行相应操作即可,无需更改。本发明实施例提供的数据加密处理方法,针对含有敏感数据的数据库托管业务情景,通过搭建代理服务器,改造数据库中数据表结构以及数据查询语句,实现在托管服务器端不解密的情况下,又可以充分运用托管服务器的计算资源,并且不会对数据库操作造成任何影响。对于已支持同态计算的查询操作,可以经由代理服务器改写查询语句(如有必要还会进行洋葱操作层级调整)后,直接由托管数据库服务器计算出最终结果,而后返回结果数据,由代理服务器解密结果再返回给客户端,整个过程中在托管数据库服务器中不会对敏感列进行解密,充分保证敏感数据的安全性,又可以充分利用托管服务器的资源来进行查询操作。对于暂未支持同态计算的查询操作,可以同样经由代理服务器改写查询语句,将涉及到敏感列操作的子句分离出来,由托管服务器执行与敏感列无关的查询行为,待托管服务器将结果返回后,由代理服务器将敏感列解密后再执行针对敏感列的操作。同样的整个过程无需在托管服务器端解密敏感列,并且保证最大限度的利用了托管服务器的计算资源,而依靠于代理服务器的语句拆分,实现暂不支持同态操作的查询,以达到对数据库操作的全覆盖。基于相同的技术构思,本发明实施例还提供了一种数据加密处理装置,如图5所示,包括:第一接收单元51,用于接收并解析原始的数据表创建语句,所述原始的数据表创建语句中携带有敏感列标识和需要支持的第一数据操作类型;密钥生成单元52,用于根据所述敏感列标识,针对相应的第一敏感列生成密钥;加密单元53,用于利用生成的密钥对第一敏感列数据加密得到对应的第一密文;洋葱列生成单元54,用于根据所述第一数据操作类型,针对第一敏感列生成第一洋葱列;发送单元55,用于根据所述第一密文和第一洋葱列,向数据托管服务器发送改造后的数据表创建语句。在一种实施方式中,所述洋葱列生成单元,具体用于根据所述需要支持的第一数据操作类型,确定第一洋葱列的操作层级;针对第一洋葱列的每一操作层级,分别生成该操作层级对应的密钥;并按照第一洋葱列的操作层级,利用每一操作层级对应的密钥分别对所述第一敏感列加密得到第一洋葱列。在一种实施方式中,本发明实施例提供的数据加密处理装置,还包括判断单元、加密单元、第二接收单元和解密单元,其中:所述第一接收单元,还用于接收原始的数据查询语句,所述第一数据语句中携带有针对数据表的第二数据操作类型;判断单元,用于如果所述数据表包含有第二敏感列且本次数据表操作涉及第二敏感列数据操作,则判断数据表操作是否支持所述第二数据操作类型;所述发送单元,还用于如果数据表操作支持所述第二数据操作类型,则根据所述第二数据操作类型对应的操作层级向数据托管服务器发送洋葱操作层级调整命令,以将洋葱列调整到所述第二数据操作类型对应的可操作层级;以及利用第二敏感列对应的密钥对第一筛选数据中包含的第二敏感列数据进行解密后发送给请求方;加密单元,用于利用存储的洋葱列密钥对原始的数据查询语句中包含的第二敏感列数据进行加密处理得到改造后的数据查询语句并发送给所述数据托管服务器;第二接收单元,用于接收所述数据托管服务器针对所述改造后的数据查询语句返回的满足条件的第一筛选数据。在一种实施方式中,本发明实施例提供的数据加密处理装置,还包括拆分单元,其中:所述拆分单元,用于从所述原始的数据查询语句中拆分出不涉及第二敏感列数据操作的子句并发送给所述数据托管服务器;所述第二接收单元,还用于接收所述数据托管服务器针对所述子句返回的满足条件的第二筛选数据;所述发送单元,还用于针对第二筛选数据,利用第二敏感列对应的密钥对第二敏感列进行解密并执行涉及第二敏感列数据操作的子句得到满足条件的第三筛选数据发送给请求方。基于相同的技术构思,本发明实施例还提供了一种计算装置,所述计算装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述任一数据加密处理方法所述的步骤。基于相同的技术构思,本发明实施例还提供了一种计算机存储介质,所述计算机存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一数据加密处理方法所述的步骤。通过具体实施方式的说明,应当可对本发明为达成预定目的所采取的技术手段及功效得以更加深入且具体的了解,然而所附图示仅是提供参考与说明之用,并非用来对本发明加以限制。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1