CN105787387A - 一种数据库加密方法及该加密数据库查询方法 - Google Patents

一种数据库加密方法及该加密数据库查询方法 Download PDF

Info

Publication number
CN105787387A
CN105787387A CN201610129024.6A CN201610129024A CN105787387A CN 105787387 A CN105787387 A CN 105787387A CN 201610129024 A CN201610129024 A CN 201610129024A CN 105787387 A CN105787387 A CN 105787387A
Authority
CN
China
Prior art keywords
data
row
aes
name
encrypted
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.)
Granted
Application number
CN201610129024.6A
Other languages
English (en)
Other versions
CN105787387B (zh
Inventor
杨庚
汪海伟
刘国秀
曾橙焜
闵兆娥
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tuotuobao (Nanjing) Electric Power Technology Co.,Ltd.
Original Assignee
Nanjing Post and Telecommunication University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nanjing Post and Telecommunication University filed Critical Nanjing Post and Telecommunication University
Priority to CN201610129024.6A priority Critical patent/CN105787387B/zh
Publication of CN105787387A publication Critical patent/CN105787387A/zh
Application granted granted Critical
Publication of CN105787387B publication Critical patent/CN105787387B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2107File encryption

Abstract

本发明涉及一种数据库加密方法,具体设计引入等值加密算法、保存加密算法和同态加密算法针对数据库中的数据进行分类加密,并存储在服务器端数据库中,消除了不可信服务器端探查、泄露机密数据的隐患,从而保护了数据的隐私性;并且本发明还涉及一种基于数据库加密方法的该加密数据库查询方法,在具体设计引入等值加密算法、保存加密算法和同态加密算法针对数据库中的数据进行分类加密的基础之上,提供了在密文上直接执行查询操作的处理方法,提高了执行效率,并减少了用户的通信和计算开销。

Description

一种数据库加密方法及该加密数据库查询方法
技术领域
本发明涉及一种数据库加密方法及该加密数据库查询方法,属于数据隐私保护技术领域。
背景技术
隐私保护是数据库安全的重要内容,其安全威胁来自于两方面,一方面是数据库系统外部,攻击者利用系统的漏洞或者非法获取访问权限,从而窃取隐私数据;另一方面是数据库系统内部,具有合法访问权限的数据库管理员,存在探查、泄露隐私数据的可能性。
对此,现有技术中的解决方案是对隐私数据进行加密后存储在数据库中,在查询时,对密文数据进行解密。这种方法的缺陷是,明文数据经过加密后,失去了明文的一些属性,如数据之间的顺序关系,原有对明文的运算也无法在密文上执行,需要将所有密文解密为明文才能完成操作,这种方案在面对大规模的数据库存储需求时,在执行效率上远低于明文数据库。
发明内容
本发明所要解决的技术问题是提供一种基于高效、安全加密模型为基础,在保证安全性与隐私性的同时,能够直接进行密文数据操作的数据库加密方法。
本发明为了解决上述技术问题采用以下技术方案:本发明设计了一种数据库加密方法,包括如下步骤:
步骤001.分别针对数据库里各张表中各数据列的数据类型进行判断,若数据列的数据类型是数值型,则进入步骤002;若数据列的数据类型是字符型,则进入步骤003;
步骤002.分别针对该数值型数据列中的各个数据,分别采用等值加密算法、保存加密算法和同态加密算法分别进行加密,并将该数值型数据列扩展为三列,然后按该三列与等值加密算法、保存加密算法、同态加密算法彼此一一对应的关系,分别定义该三列的列名,同时将经过等值加密算法、保存加密算法、同态加密算法分别加密的加密结果数据填入对应列中,其中,该数值型数据列所对应扩展三列中各个加密结果数据所对应的密钥存储于数据库中;
步骤003.分别针对该字符型数据列中的各个数据,采用等值加密算法进行加密,然后根据等值加密算法,定义该字符型数据列的列名,同时将经过等值加密算法加密的加密结果数据填入该字符型数据列中,其中,该字符型数据列所对应各个加密结果数据的密钥存储于数据库中。
作为本发明的一种优选技术方案,所述步骤002中分别针对各个数值型数据列中各个数据进行等值加密算法,以及所述步骤003中分别针对各个字符型数据列中各个数据进行等值加密算法,均采用如下步骤实现:
步骤A01.针对数据采用预设指定加密算法进行加密,构成该数据的内层加密,同时根据系统主密钥,以及该数据所在数据列的列名获得该数据内层加密的密钥,并存储于数据库中,然后进入步骤A02;
步骤A02.针对该数据内层加密,进一步采用随机加密算法进行加密,构成该数据内层加密的外层加密,同时根据系统主密钥、该数据所在数据列的列名,以及该数据所在行的唯一行标识获得该数据内层加密进一步外层密钥的密钥,并存储于数据库中,由此,针对该数据实现等值加密算法的加密。
本发明所述一种基于数据库加密方法采用以上技术方案与现有技术相比,具有以下技术效果:本发明所设计的一种基于数据库加密方法,具体设计引入等值加密算法、保存加密算法和同态加密算法针对数据库中的数据进行分类加密,并存储在服务器端数据库中,消除了不可信服务器端探查、泄露机密数据的隐患,从而保护了数据的隐私性,并提供了在密文上直接执行查询操作的处理方法,提高了执行效率,并减少了用户的通信和计算开销。
与之相应,本发明所要解决的技术问题是基于本发明所设计数据库加密方法,提供一种在保证安全性与隐私性的同时,能够直接进行密文数据操作的加密数据库查询方法。
本发明为了解决上述技术问题采用以下技术方案:本发明设计了一种基于数据库加密方法的该加密数据库查询方法,包括创建表操作、插入操作、选择查询操作、更新操作和删除操作,创建表操作包括如下步骤:
步骤C01.针对创建表操作语句进行解析,获得所创建表的表名、所创建表中各数据列的列名,以及各数据列所对应的数据类型,然后进入步骤C02;
步骤C02.分别针对所创建表中的各个数据列进行判断,并分别针对所创建表中各个数据列做出相应处理,然后根据针对所创建表中各个数据列的相应操作,改写创建表操作语句,再发送至数据库进行执行,实现创建表操作,其中,分别针对所创建表中的各个数据列进行判断,并分别做出相应处理中,若数据列的数据类型是数值型,则进入步骤C03;若数据列的数据类型是字符型,则进入步骤C05;
步骤C03.将该数值型数据列扩展为三列,分别存储该数值型数据列中数据分别对应等值加密算法、保存加密算法和同态加密算法的加密结果数据,并相应定义该数值型数据列所扩展三列的数据类型,然后进入步骤C04;
步骤C04.根据按该数值型数据列所扩展三列与等值加密算法、保存加密算法、同态加密算法彼此一一对应的关系,分别定义该数值型数据列所扩展三列的列名,并用该数值型数据列所扩展三列的列名替换创建表操作语句中该数值型数据列的列名;
步骤C05.将该字符型数据列用于存储该字符型数据列中数据对应于等值加密算法的加密结果数据,然后进入步骤C06;
步骤C06.根据等值加密算法,定义该字符型数据列的列名,并用该字符型数据列的列名替换创建表操作语句中该数值型数据列的列名。
作为本发明的一种优选技术方案,所述插入操作包括如下步骤:
步骤I01.针对插入操作语句进行解析,获得各个所插入的数据,以及各个所插入数据分别所对应表的表名、所对应数据列的列名,然后进入步骤I02;
步骤I02.分别针对各个所插入数据,根据所插入数据所对应表的表名,获得所插入数据对应数据列的数据类型,并进入步骤I03;
步骤I03.分别针对各个所插入数据,针对所插入数据对应数据列的数据类型进行判断,并针对所插入数据所对应数据列的列名和所插入数据做出相应处理,然后根据针对所插入数据所对应数据列的列名,以及针对所插入数据的相应操作,改写插入操作语句,再发送至数据库进行执行,实现插入操作,其中,针对所插入数据对应数据列的数据类型进行判断,并针对所插入数据所对应数据列的列名和所插入数据做出相应处理中,若数据列的数据类型是数值型,则进入步骤I04;若数据列的数据类型是字符型,则进入步骤I06;
步骤I04.根据所插入数据对应表的表名、所插入数据对应的数据列,获得所插入数据对应数据库该表中对应三列的列名,并用该三列的列名替换插入操作语句中所插入数据所对应数据列的列名,然后进入步骤I05;
步骤I05.针对所插入数据分别采用等值加密算法、保存加密算法、同态加密算法进行加密,分别获得所插入数据所对应三种加密方法的加密结果数据,并用该三种加密结果数据替换插入操作语句中的所插入数据,并与插入操作语句中所替换三列的列名分别对应;其中,所插入数据分别所对应三种加密结果数据的密钥存储于数据库中;
步骤I06.根据所插入数据对应表的表名、所插入数据对应的数据列,获得所插入数据对应数据库该表中对应列的列名,并用该列的列名替换插入操作语句中所插入数据所对应数据列的列名,然后进入步骤I07;
步骤I07.针对所插入数据分别采用等值加密算法进行加密,获得所插入数据对应等值加密算法的加密结果数据,并用该加密结果数据替换插入操作语句中的所插入数据,并与插入操作语句中所替换列的列名相对应;其中,所插入数据分别所对应加密结果数据的密钥存储于数据库中。
作为本发明的一种优选技术方案,所述选择查询操作包括如下步骤:
步骤S01.针对选择查询语句进行解析,获得表名、查询内容和谓词,然后进入步骤S02;
步骤S02.针对表名所对应表中采用等值加密算法进行加密的加密结果数据的外层加密进行解密,并进入步骤S03;
步骤S03.针对谓词所对应的表达式进行判断,若谓词所对应表达式为等值匹配表达式,则将谓词所对应表达式中的列名,替换为其在数据库表中对应列经等值加密算法处理后的列名,同时将谓词所对应表达式中列名所相等的常量,采用等值加密算法中预设指定加密算法进行加密,且其密钥与谓词所对应表达式中列对应等值加密算法中预设指定加密算法的密钥相同,然后用该加密结果替换谓词所对应表达式中列名所相等的常量,接着进入步骤S05;若谓词所对应表达式为范围查询表达式,则进入步骤S04;
步骤S04.将谓词所对应表达式中的列名,替换为其在数据库表中对应列经保存加密算法处理后的列名,同时将谓词所对应表达式中列名所对应的常量,采用保存加密算法进行加密,且其密钥与谓词所对应表达式中列所对应保存加密算法的密钥相同,然后进入步骤S05;
步骤S05.针对查询内容进行判断,若查询内容为列,则将该查询内容所对应的列名替换为其对应等值加密算法的列名,然后进入步骤S06;若查询内容为针对列的聚集函数,则将该查询内容中聚集函数中的列名替换为其对应同态加密算法的列名,然后进入步骤S06;
步骤S06.将替换后的选择查询语句发送至数据库进行执行,实现选择查询操作,获得由数据库中选择查询获得的加密结果数据,并针对该加密结果数据进行解密,获得选择查询数据,然后进入步骤S07;
步骤S07.针对选择查询语句中表名所对应表中采用等值加密算法进行加密的加密结果数据,重新采用随机加密算法进行加密,构成该加密结果数据内层加密的外层加密。
作为本发明的一种优选技术方案,所述更新操作包括如下步骤:
步骤U01.针对更新操作语句进行解析,获得数据更新表达式、数据更新表达式所对应表的表名、所对应列的列名,以及条件谓词,然后进入步骤U02;
步骤U02.根据数据更新表达式所对应表的表名,针对数据更新表达式所对应表中采用等值加密算法进行加密的加密结果数据的外层加密进行解密,然后进入步骤U03;
步骤U03.针对更新操作语句中数据更新表达式中的列名进行判断,若该列名所对应数据列的数据类型为数值型,则进入步骤U04;若该列名所对应数据列的数据类型为字符型,则进入步骤U06;
步骤U04.将更新操作语句中数据更新表达式中的列名,替换为其分别对应等值加密算法、保存加密算法、同态加密算法三种加密算法的三个列名,然后进入步骤U05;
步骤U05.针对更新操作语句中数据更新表达式中的数据,分别采用保存加密算法、同态加密算法、等值加密算法中预设指定加密算法进行加密,并用所获三种加密结果数据替换数据更新表达式中的数据,且与数据更新表达式中所替换的三个列名相对应,然后进入步骤U08;
步骤U06.将更新操作语句中数据更新表达式中的列名,替换为其对应等值加密算法的列名,然后进入步骤U07;
步骤U07.针对更新操作语句中数据更新表达式中的数据,采用等值加密算法中预设指定加密算法进行加密,并用所获加密结果数据替换数据更新表达式中的数据,然后进入步骤U08;
步骤U08.判断条件谓词是否为空,是则进入步骤U011;否则进入步骤U09;
步骤U09.针对条件谓词所对应的表达式进行判断,若条件谓词所对应表达式为等值匹配表达式,则将条件谓词所对应表达式中的列名,替换为其在数据库表中对应列经等值加密算法处理后的列名,同时将条件谓词所对应表达式中列名所相等的常量,采用等值加密算法中预设指定加密算法进行加密,且其密钥与条件谓词所对应表达式中列对应等值加密算法中预设指定加密算法的密钥相同,然后用该加密结果替换条件谓词所对应表达式中列名所相等的常量,接着进入步骤U11;若条件谓词所对应表达式为范围查询表达式,则进入步骤U10;
步骤U10.将条件谓词所对应表达式中的列名,替换为其在数据库表中对应列经保存加密算法处理后的列名,同时将条件谓词所对应表达式中列名所对应的常量,采用保存加密算法进行加密,且其密钥与条件谓词所对应表达式中列所对应保存加密算法的密钥相同,然后进入步骤U11;
步骤U11.将替换后的更新操作语句发送至数据库进行执行,实现更新操作,然后进入步骤U12;
步骤U12.针对更新操作语句中数据更新表达式所对应表中,采用等值加密算法进行加密的加密结果数据,重新采用随机加密算法进行加密,构成该加密结果数据内层加密的外层加密。
作为本发明的一种优选技术方案,所述删除操作包括如下步骤:
步骤D01.针对删除操作语句进行解析,获得表名和条件谓词,然后进入步骤D02;
步骤D02.判断条件谓词是否为空,是则直接将删除操作语句发送至数据库中执行,否则进入步骤D03;
步骤D03.针对表名所对应表中采用等值加密算法进行加密的加密结果数据的外层加密进行解密,然后进入步骤D04;
步骤D04.针对条件谓词所对应的表达式进行判断,若条件谓词所对应表达式为等值匹配表达式,则将条件谓词所对应表达式中的列名,替换为其在数据库表中对应列经等值加密算法处理后的列名,同时将条件谓词所对应表达式中列名所相等的常量,采用等值加密算法中预设指定加密算法进行加密,且其密钥与条件谓词所对应表达式中列对应等值加密算法中预设指定加密算法的密钥相同,然后用该加密结果替换条件谓词所对应表达式中列名所相等的常量,接着进入步骤D06;若条件谓词所对应表达式为范围查询表达式,则进入步骤D05;
步骤D05.将条件谓词所对应表达式中的列名,替换为其在数据库表中对应列经保存加密算法处理后的列名,同时将条件谓词所对应表达式中列名所对应的常量,采用保存加密算法进行加密,且其密钥与条件谓词所对应表达式中列所对应保存加密算法的密钥相同,然后进入步骤D06;
步骤D06.将替换后的删除操作语句发送至数据库进行执行,实现删除操作,然后进入步骤D07;
步骤D07.针对表名所对应表中采用等值加密算法进行加密的加密结果数据,重新采用随机加密算法进行加密,构成该加密结果数据内层加密的外层加密。
本发明所述一种基于数据库加密方法的该加密数据库查询方法采用以上技术方案与现有技术相比,具有以下技术效果:本发明所设计的一种基于数据库加密方法的该加密数据库查询方法,在具体设计引入等值加密算法、保存加密算法和同态加密算法针对数据库中的数据进行分类加密的基础之上,提供了在密文上直接执行查询操作的处理方法,提高了执行效率,并减少了用户的通信和计算开销。
附图说明
图1是本发明设计应用中创建表操作(create)的示意图;
图2是本发明设计应用中插入操作(insert)的示意图;
图3是本发明设计应用中选择查询操作(select)的示意图;
图4是本发明设计应用中更新操作(update)的示意图;
图5是本发明设计应用中删除操作(delete)的示意图。
具体实施方式
下面结合说明书附图对本发明的具体实施方式作进一步详细的说明。
本发明所设计一种数据库加密方法在实际应用过程当中,包括如下步骤:
步骤001.分别针对数据库里各张表中各数据列的数据类型进行判断,若数据列的数据类型是数值型(int、float、double),则进入步骤002;若数据列的数据类型是字符型(char、varchar、text),则进入步骤003。
步骤002.分别针对该数值型数据列中的各个数据,分别采用等值加密算法、保存加密算法和同态加密算法分别进行加密,并将该数值型数据列扩展为三列,然后按该三列与等值加密算法、保存加密算法、同态加密算法彼此一一对应的关系,分别定义该三列的列名,比如对于数值型(int、float、double)来说,采用等值加密算法的列在列名后添加后缀DET,采用保存加密算法的列在列名后添加后缀OPE,采用同态加密算法的列在列名后添加后缀HOM;相应的,对于字符型(char、varchar、text)来说,采用等值加密算法的列在列名后添加后缀DET;同时将经过等值加密算法、保存加密算法、同态加密算法分别加密的加密结果数据填入对应列中,其中,该数值型数据列所对应扩展三列中各个加密结果数据所对应的密钥存储于数据库中。
其中,分别针对各个数值型数据列中各个数据进行等值加密算法,采用如下步骤实现:
步骤A01.针对数据采用预设指定加密算法进行加密,构成该数据的内层加密,同时根据系统主密钥,以及该数据所在数据列的列名获得该数据内层加密的密钥,并存储于数据库中,然后进入步骤A02。
步骤A02.针对该数据内层加密,进一步采用随机加密算法进行加密,构成该数据内层加密的外层加密,同时根据系统主密钥、该数据所在数据列的列名,以及该数据所在行的唯一行标识获得该数据内层加密进一步外层密钥的密钥,并存储于数据库中,由此,针对该数据实现等值加密算法的加密。
步骤003.分别针对该字符型数据列中的各个数据,采用等值加密算法进行加密,然后根据等值加密算法,定义该字符型数据列的列名,同时将经过等值加密算法加密的加密结果数据填入该字符型数据列中,其中,该字符型数据列所对应各个加密结果数据的密钥存储于数据库中。
其中,分别针对各个字符型数据列中各个数据进行等值加密算法,采用如下步骤实现:
步骤A01.针对数据采用预设指定加密算法进行加密,构成该数据的内层加密,同时根据系统主密钥,以及该数据所在数据列的列名获得该数据内层加密的密钥,并存储于数据库中,然后进入步骤A02。
步骤A02.针对该数据内层加密,进一步采用随机加密算法进行加密,构成该数据内层加密的外层加密,同时根据系统主密钥、该数据所在数据列的列名,以及该数据所在行的唯一行标识获得该数据内层加密进一步外层密钥的密钥,并存储于数据库中,由此,针对该数据实现等值加密算法的加密。
等值加密模型使用了两层加密,外层采用随机加密算法进行加密,内层采用确定加密算法进行加密。明文加密时先用确定加密算法进行内层加密,再使用随机加密算法进行外层加密,加密后的数据存储在数据库中。随机加密算法密钥根据用户的主密钥、列名和行标识符生成,每一行的行标识符唯一;确定加密算法密钥根据列名和用户的主密钥生成。生成的密钥存储在数据库中。在对数据应用SQL语句进行查询处理过程中,若查询语句中不包含等值验证的谓词,数据保持在两层加密的状态;若查询语句中包含等值验证的谓词,需先将外层解密,保留内层的密文,等值验证的操作直接在内层的密文上执行,查询操作完成后,需使用随机加密算法重新进行外层加密,数据始终保持两层加密的状态,上述两种情况均不会暴露明文。
保序加密模型使用单层加密,明文加密时使用保序加密算法进行加密。该模型用于对数值类型的数据进行加密,支持密文上直接进行SQL语句的数据范围查询。
同态加密模型使用单层加密,明文加密时使用加法同态算法进行加密。该模型用于对数值类型的数据进行加密,支持密文上直接执行SQL语句的SUM和AVG函数。
基于上述本发明所设计数据库加密方法技术方案的基础之上,本发明进一步设计了该加密数据库查询方法,包括创建表操作(create)、插入操作(insert)、选择查询操作(select)、更新操作(update)和删除操作(delete),接下来,我们针对这几种操作分别作介绍,其中,创建表操作(create)包括如下步骤:
步骤C01.针对创建表操作语句(create)进行解析,获得所创建表的表名、所创建表中各数据列的列名,以及各数据列所对应的数据类型,然后进入步骤C02。
步骤C02.分别针对所创建表中的各个数据列进行判断,并分别针对所创建表中各个数据列做出相应处理,然后根据针对所创建表中各个数据列的相应操作,改写创建表操作语句(create),再发送至数据库进行执行,实现创建表操作,其中,分别针对所创建表中的各个数据列进行判断,并分别做出相应处理中,若数据列的数据类型是数值型(int、float、double),则进入步骤C03;若数据列的数据类型是字符型(char、varchar、text),则进入步骤C05。
步骤C03.将该数值型数据列扩展为三列,分别存储该数值型数据列中数据分别对应等值加密算法、保存加密算法和同态加密算法的加密结果数据,并相应定义该数值型数据列所扩展三列的数据类型,然后进入步骤C04。
步骤C04.根据按该数值型数据列所扩展三列与等值加密算法、保存加密算法、同态加密算法彼此一一对应的关系,分别定义该数值型数据列所扩展三列的列名,并用该数值型数据列所扩展三列的列名替换创建表操作语句(create)中该数值型数据列的列名。
步骤C05.将该字符型数据列用于存储该字符型数据列中数据对应于等值加密算法的加密结果数据,然后进入步骤C06。
步骤C06.根据等值加密算法,定义该字符型数据列的列名,并用该字符型数据列的列名替换创建表操作语句(create)中该数值型数据列的列名。
如图1所示,描述了SQL语句创建表操作(create)的详细流程,其中,该请求语句createtablemytable(mycolumn_1数值型,mycolumn_2字符型),按上述具体步骤进行分析操作,首先针对接收的create语句进行解析,获取到表的名字为mytable,列的名字分别为mycolumn_1和mycolumn_2,列对应的数据类型分别为数值型和字符型,并将获取到的信息存入数据库;然后将数值型的列mycolumn_1扩展为三列,分别使用等值加密算法、保存加密算法、同态加密算法进行加密,相应的列名为mycolumn_1_DET、mycolumn_1_OPE和mycolumn_1_HOM,并将等值加密模型中的数据类型设置为text,保序加密模型、同态加密模型中的数据类型设置为double;将字符型的列mycolumn_2使用等值加密模型进行加密,相应的列名为mycolumn_2_DET,并将数据类型改写为text,增加一列行标识符作为主键,则改写后的语句为:
createtablemytable(mycolumn_1_DETtext,mycolumn_1_OPEdouble,mycolumn_1_HOMdouble,mycolumn_2_DETtext,rowidintprimarykeyauto_incrementnotnull);
最后将改写后的创建表操作语句(create)发送到数据库中执行。
插入操作(insert)包括如下步骤:
步骤I01.针对插入操作语句(insert)进行解析,获得各个所插入的数据,以及各个所插入数据分别所对应表的表名、所对应数据列的列名,然后进入步骤I02。
步骤I02.分别针对各个所插入数据,根据所插入数据所对应表的表名,获得所插入数据对应数据列的数据类型,并进入步骤I03。
步骤I03.分别针对各个所插入数据,针对所插入数据对应数据列的数据类型进行判断,并针对所插入数据所对应数据列的列名和所插入数据做出相应处理,然后根据针对所插入数据所对应数据列的列名,以及针对所插入数据的相应操作,改写插入操作语句(insert),再发送至数据库进行执行,实现插入操作,其中,针对所插入数据对应数据列的数据类型进行判断,并针对所插入数据所对应数据列的列名和所插入数据做出相应处理中,若数据列的数据类型是数值型(int、float、double),则进入步骤I04;若数据列的数据类型是字符型(char、varchar、text),则进入步骤I06。
步骤I04.根据所插入数据对应表的表名、所插入数据对应的数据列,获得所插入数据对应数据库该表中对应三列的列名,并用该三列的列名替换插入操作语句(insert)中所插入数据所对应数据列的列名,然后进入步骤I05。
步骤I05.针对所插入数据分别采用等值加密算法、保存加密算法、同态加密算法进行加密,分别获得所插入数据所对应三种加密方法的加密结果数据,并用该三种加密结果数据替换插入操作语句(insert)中的所插入数据,并与插入操作语句(insert)中所替换三列的列名分别对应;其中,所插入数据分别所对应三种加密结果数据的密钥存储于数据库中。
步骤I06.根据所插入数据对应表的表名、所插入数据对应的数据列,获得所插入数据对应数据库该表中对应列的列名,并用该列的列名替换插入操作语句(insert)中所插入数据所对应数据列的列名,然后进入步骤I07。
步骤I07.针对所插入数据分别采用等值加密算法进行加密,获得所插入数据对应等值加密算法的加密结果数据,并用该加密结果数据替换插入操作语句(insert)中的所插入数据,并与插入操作语句(insert)中所替换列的列名相对应;其中,所插入数据分别所对应加密结果数据的密钥存储于数据库中。
如图2所示,描述了SQL语句插入操作(insert)的详细流程,其中,该请求语句insertintomytable(mycolumn_1,mycolumn_2)values(value_1,value_2);按上述具体步骤进行分析操作,首先,针对接收的insert语句进行解析,获取表的名字student,列的名字分别为mycolumn_1,mycolumn_2,列对应的插入数据(value_1,value_2),根据表名在数据库中查询相关列的数据类型,mycolumn_1为数值型,mycolumn_2为字符型;由于mycolumn_1列的数据类型是数值型,因此扩展为三列,对应的插入数据是value_1,分别使用确定加密算法、保序加密算法和同态加密算法对该插入数据进行加密,加密后的数据为value_1_DET,value_1_OPE,value_1_HOM,并将列名改写为mycolumn_1_DET,mycolumn_1_OPE,mycolumn_1_HOM,每一列名对应了数据库中单独的一个列存储空间。mycolumn_2列是字符型,对应的插入数据是value_2,使用确定加密算法对插入数据进行加密,加密后的数据为value_2_DET,并将列名改写为mycolumn_2_DET;则改写后的语句为:
insertintostudent(
mycolumn_1_DET,mycolumn_1_OPE,mycolumn_1_HOM,mycolumn_2_DET)
values(value_1_DET,value_1_OPE,value_1_HOM,value_2_DET);
接着将改写后的插入操作语句(insert)发送到数据库中执行;最后对采用等值加密算法进行加密的内层密文(value_1_DET、value_2_DET)使用随机加密算法进行外层加密,形成两层加密结构,其密钥根据用户的主密钥、列名和行标识符生成,每一行的行标识符唯一。
选择查询操作(select)包括如下步骤:
步骤S01.针对选择查询语句(select)进行解析,获得表名、查询内容和谓词,然后进入步骤S02。
步骤S02.针对表名所对应表中采用等值加密算法进行加密的加密结果数据的外层加密进行解密,并进入步骤S03。
步骤S03.针对谓词所对应的表达式进行判断,若谓词所对应表达式为等值匹配表达式,则将谓词所对应表达式中的列名,替换为其在数据库表中对应列经等值加密算法处理后的列名,同时将谓词所对应表达式中列名所相等的常量,采用等值加密算法中预设指定加密算法进行加密,且其密钥与谓词所对应表达式中列对应等值加密算法中预设指定加密算法的密钥相同,然后用该加密结果替换谓词所对应表达式中列名所相等的常量,接着进入步骤S05;若谓词所对应表达式为范围查询表达式,则进入步骤S04。
步骤S04.将谓词所对应表达式中的列名,替换为其在数据库表中对应列经保存加密算法处理后的列名,同时将谓词所对应表达式中列名所对应的常量,采用保存加密算法进行加密,且其密钥与谓词所对应表达式中列所对应保存加密算法的密钥相同,然后进入步骤S05。
步骤S05.针对查询内容进行判断,若查询内容为列,则将该查询内容所对应的列名替换为其对应等值加密算法的列名,然后进入步骤S06;若查询内容为针对列的聚集函数sum(列名)或avg(列名),则将该查询内容中聚集函数中的列名替换为其对应同态加密算法的列名,然后进入步骤S06。
步骤S06.将替换后的选择查询语句(select)发送至数据库进行执行,实现选择查询操作,获得由数据库中选择查询获得的加密结果数据,并针对该加密结果数据进行解密,获得选择查询数据,然后进入步骤S07。
步骤S07.针对选择查询语句(select)中表名所对应表中采用等值加密算法进行加密的加密结果数据,重新采用随机加密算法进行加密,构成该加密结果数据内层加密的外层加密。
如图3所示,描述了SQL语句选择查询操作(select)的详细流程,其中,该请求语句selectmycolumn或SUM(mycolumn)、AVG(mycolumn)frommytablewhere条件谓词P;按上述具体步骤进行分析操作,首先,针对接收的select语句进行解析,获取表的名字为mytable,查询内容是列mycolumn或者聚集函数sum(mycolumn)、avg(mycolumn),条件谓词,根据表名在数据库中查询相关列的数据类型及加密列的密钥;接着将数据库中等值加密模型的外层(随机加密层)密文解密,其密钥根据用户的主密钥、列名和行标识符生成,每一行的行标识符唯一;再将解析到的条件谓词P分为等值匹配和范围查询两类,改写为新的条件谓词P*,其中,等值匹配表达式:列名=(常量),将列名改写为等值加密模型对应的列名,记为column_DET。并将常量使用确定加密算法进行加密,其密钥与表达式左边的列中的确定加密算法的密钥相同;范围查询表达式:列名[<>≤≥]常量,将列名改写为保序加密模型对应的列名,记为column_OPE。并将表达式右边的常量使用保序加密算法进行加密,其密钥与表达式左边的列中的保序加密算法的密钥相同;然后,若查询内容是某列mycolumn,将该列名改写为mycolumn_DET;若查询内容是聚集函数sum(mycolumn)或avg(mycolumn),将其中的列名改写为mycolumn_HOM;则综上,改写后的语句为:
selectmycolumn_DET或sum(mycolumn_HOM)、avg(mycolumn_HOM)frommytablewhere条件谓词P*;
接着将该改写后的选择查询操作(select)发送到数据库中执行;最后对采用等值加密算法进行加密的内层密文使用随机加密算法进行外层加密,形成两层加密结构,其密钥根据用户的主密钥、列名和行标识符生成,每一行的行标识符唯一。
更新操作(update)包括如下步骤:
步骤U01.针对更新操作语句(update)进行解析,获得数据更新表达式、数据更新表达式所对应表的表名、所对应列的列名,以及条件谓词,然后进入步骤U02。
步骤U02.根据数据更新表达式所对应表的表名,针对数据更新表达式所对应表中采用等值加密算法进行加密的加密结果数据的外层加密进行解密,然后进入步骤U03。
步骤U03.针对更新操作语句(update)中数据更新表达式中的列名进行判断,若该列名所对应数据列的数据类型为数值型(int、float、double),则进入步骤U04;若该列名所对应数据列的数据类型为字符型(char、varchar、text),则进入步骤U06。
步骤U04.将更新操作语句(update)中数据更新表达式中的列名,替换为其分别对应等值加密算法、保存加密算法、同态加密算法三种加密算法的三个列名,然后进入步骤U05。
步骤U05.针对更新操作语句(update)中数据更新表达式中的数据,分别采用保存加密算法、同态加密算法、等值加密算法中预设指定加密算法进行加密,并用所获三种加密结果数据替换数据更新表达式中的数据,且与数据更新表达式中所替换的三个列名相对应,然后进入步骤U08。
步骤U06.将更新操作语句(update)中数据更新表达式中的列名,替换为其对应等值加密算法的列名,然后进入步骤U07。
步骤U07.针对更新操作语句(update)中数据更新表达式中的数据,采用等值加密算法中预设指定加密算法进行加密,并用所获加密结果数据替换数据更新表达式中的数据,然后进入步骤U08。
步骤U08.判断条件谓词是否为空,是则进入步骤U011;否则进入步骤U09。
步骤U09.针对条件谓词所对应的表达式进行判断,若条件谓词所对应表达式为等值匹配表达式,则将条件谓词所对应表达式中的列名,替换为其在数据库表中对应列经等值加密算法处理后的列名,同时将条件谓词所对应表达式中列名所相等的常量,采用等值加密算法中预设指定加密算法进行加密,且其密钥与条件谓词所对应表达式中列对应等值加密算法中预设指定加密算法的密钥相同,然后用该加密结果替换条件谓词所对应表达式中列名所相等的常量,接着进入步骤U11;若条件谓词所对应表达式为范围查询表达式,则进入步骤U10。
步骤U10.将条件谓词所对应表达式中的列名,替换为其在数据库表中对应列经保存加密算法处理后的列名,同时将条件谓词所对应表达式中列名所对应的常量,采用保存加密算法进行加密,且其密钥与条件谓词所对应表达式中列所对应保存加密算法的密钥相同,然后进入步骤U11。
步骤U11.将替换后的更新操作语句(update)发送至数据库进行执行,实现更新操作,然后进入步骤U12。
步骤U12.针对更新操作语句(update)中数据更新表达式所对应表中,采用等值加密算法进行加密的加密结果数据,重新采用随机加密算法进行加密,构成该加密结果数据内层加密的外层加密。
如图4所示,描述了SQL语句更新操作语句(update)的详细流程,其中,该请求语句updatemytablesetmycolumn=valuewhere条件谓词P;按上述具体步骤进行分析操作,首先,针对接收的update语句进行解析,获取表的名字为mytable,列的名字为mycolumn、更新值为value和条件谓词P,根据表名在数据库中查询相关列的数据类型及加密列的密钥;接着将数据库中等值加密模型的外层(随机加密层)密文解密,其密钥根据用户的主密钥、列名和行标识符生成,每一行的行标识符唯一;再对set子句中的表达式mycolumn=value,若列mycolumn对应的数据类型是数值类型,将扩展的三列分别进行如下更新,其中,将mycolumn改为写等值加密模型下的列名:mycolumn_DET,并将value使用确定加密算法加密为value_DET,加密密钥与左边列的确定加密算法的密钥相同;并且将mycolumn改为保序加密模型下的列名:mycolumn_OPE,并将value使用保序加密算法加密成value_OPE,加密密钥与左边列的确定加密算法的密钥相同;将mycolumn改写为同态加密模型下的列名:mycolumn_HOM,并将value使用同态加密算法加密为value_HOM,加密密钥与左边列的确定加密算法的密钥相同;以及若列对应的数据类型是字符型,将mycolumn改写为等值加密模型下的列名mycolumn_DET,并将value使用确定加密算法加密为value_DET,其密钥与左边列的确定加密算法的密钥相同。如果存在where子句,则将解析到的谓词分为等值匹配和范围查询两类分别处理,形成新的条件谓词P*;则综上,改写后的语句为:
updatemytablesetmycolumn_DET=value_DET,(mycolumn_OPE=value_OPE,mycolumn_HOM=value_HOM)where条件谓词P*;
接着将该改写后的更新操作语句(update)发送到数据库中执行;最后对采用等值加密算法进行加密的内层密文使用随机加密算法进行外层加密,形成两层加密结构,其密钥根据用户的主密钥、列名和行标识符生成,每一行的行标识符唯一。
删除操作(delete)包括如下步骤:
步骤D01.针对删除操作语句(delete)进行解析,获得表名和条件谓词,然后进入步骤D02。
步骤D02.判断条件谓词是否为空,是则直接将删除操作语句(delete)发送至数据库中执行,否则进入步骤D03。
步骤D03.针对表名所对应表中采用等值加密算法进行加密的加密结果数据的外层加密进行解密,然后进入步骤D04。
步骤D04.针对条件谓词所对应的表达式进行判断,若条件谓词所对应表达式为等值匹配表达式,则将条件谓词所对应表达式中的列名,替换为其在数据库表中对应列经等值加密算法处理后的列名,同时将条件谓词所对应表达式中列名所相等的常量,采用等值加密算法中预设指定加密算法进行加密,且其密钥与条件谓词所对应表达式中列对应等值加密算法中预设指定加密算法的密钥相同,然后用该加密结果替换条件谓词所对应表达式中列名所相等的常量,接着进入步骤D06;若条件谓词所对应表达式为范围查询表达式,则进入步骤D05。
步骤D05.将条件谓词所对应表达式中的列名,替换为其在数据库表中对应列经保存加密算法处理后的列名,同时将条件谓词所对应表达式中列名所对应的常量,采用保存加密算法进行加密,且其密钥与条件谓词所对应表达式中列所对应保存加密算法的密钥相同,然后进入步骤D06。
步骤D06.将替换后的删除操作语句(delete)发送至数据库进行执行,实现删除操作,然后进入步骤D07。
步骤D07.针对表名所对应表中采用等值加密算法进行加密的加密结果数据,重新采用随机加密算法进行加密,构成该加密结果数据内层加密的外层加密。
如图5所示,描述了SQL语句删除操作语句(delete)的详细流程,其中,该请求语句deletefrommytable(where条件谓词P);按上述具体步骤进行分析操作,首先,针对接收的delete语句进行解析,获取表的名字为mytable,条件谓词P,根据表名在数据库中查询相关列的数据类型及加密列的密钥;依据上述一系列逻辑调度过程,则改写后的语句为:
deletefrommytable(where条件谓词P*);
接着将该改写后的删除操作语句(delete)发送到数据库中执行;最后对采用等值加密算法进行加密的内层密文使用随机加密算法进行外层加密,形成两层加密结构,其密钥根据用户的主密钥、列名和行标识符生成,每一行的行标识符唯一。
综上所述,本发明所设计的一种基于数据库加密方法及该加密数据库查询方法,具体设计引入等值加密算法、保存加密算法和同态加密算法针对数据库中的数据进行分类加密,并存储在服务器端数据库中,消除了不可信服务器端探查、泄露机密数据的隐患,从而保护了数据的隐私性,并提供了在密文上直接执行查询操作的处理方法,提高了执行效率,并减少了用户的通信和计算开销。
上面结合附图对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。

Claims (7)

1.一种数据库加密方法,其特征在于,包括如下步骤:
步骤001.分别针对数据库里各张表中各数据列的数据类型进行判断,若数据列的数据类型是数值型,则进入步骤002;若数据列的数据类型是字符型,则进入步骤003;
步骤002.分别针对该数值型数据列中的各个数据,分别采用等值加密算法、保存加密算法和同态加密算法分别进行加密,并将该数值型数据列扩展为三列,然后按该三列与等值加密算法、保存加密算法、同态加密算法彼此一一对应的关系,分别定义该三列的列名,同时将经过等值加密算法、保存加密算法、同态加密算法分别加密的加密结果数据填入对应列中,其中,该数值型数据列所对应扩展三列中各个加密结果数据所对应的密钥存储于数据库中;
步骤003.分别针对该字符型数据列中的各个数据,采用等值加密算法进行加密,然后根据等值加密算法,定义该字符型数据列的列名,同时将经过等值加密算法加密的加密结果数据填入该字符型数据列中,其中,该字符型数据列所对应各个加密结果数据的密钥存储于数据库中。
2.根据权利要求1所述一种数据库加密方法,其特征在于,所述步骤002中分别针对各个数值型数据列中各个数据进行等值加密算法,以及所述步骤003中分别针对各个字符型数据列中各个数据进行等值加密算法,均采用如下步骤实现:
步骤A01.针对数据采用预设指定加密算法进行加密,构成该数据的内层加密,同时根据系统主密钥,以及该数据所在数据列的列名获得该数据内层加密的密钥,并存储于数据库中,然后进入步骤A02;
步骤A02.针对该数据内层加密,进一步采用随机加密算法进行加密,构成该数据内层加密的外层加密,同时根据系统主密钥、该数据所在数据列的列名,以及该数据所在行的唯一行标识获得该数据内层加密进一步外层密钥的密钥,并存储于数据库中,由此,针对该数据实现等值加密算法的加密。
3.一种基于权利要求2所述一种数据库加密方法的该加密数据库查询方法,包括创建表操作、插入操作、选择查询操作、更新操作和删除操作,其特征在于,创建表操作包括如下步骤:
步骤C01.针对创建表操作语句进行解析,获得所创建表的表名、所创建表中各数据列的列名,以及各数据列所对应的数据类型,然后进入步骤C02;
步骤C02.分别针对所创建表中的各个数据列进行判断,并分别针对所创建表中各个数据列做出相应处理,然后根据针对所创建表中各个数据列的相应操作,改写创建表操作语句,再发送至数据库进行执行,实现创建表操作,其中,分别针对所创建表中的各个数据列进行判断,并分别做出相应处理中,若数据列的数据类型是数值型,则进入步骤C03;若数据列的数据类型是字符型,则进入步骤C05;
步骤C03.将该数值型数据列扩展为三列,分别存储该数值型数据列中数据分别对应等值加密算法、保存加密算法和同态加密算法的加密结果数据,并相应定义该数值型数据列所扩展三列的数据类型,然后进入步骤C04;
步骤C04.根据按该数值型数据列所扩展三列与等值加密算法、保存加密算法、同态加密算法彼此一一对应的关系,分别定义该数值型数据列所扩展三列的列名,并用该数值型数据列所扩展三列的列名替换创建表操作语句中该数值型数据列的列名;
步骤C05.将该字符型数据列用于存储该字符型数据列中数据对应于等值加密算法的加密结果数据,然后进入步骤C06;
步骤C06.根据等值加密算法,定义该字符型数据列的列名,并用该字符型数据列的列名替换创建表操作语句中该数值型数据列的列名。
4.根据权利要求3所述一种基于数据库加密方法的该加密数据库查询方法,其特征在于,所述插入操作包括如下步骤:
步骤I01.针对插入操作语句进行解析,获得各个所插入的数据,以及各个所插入数据分别所对应表的表名、所对应数据列的列名,然后进入步骤I02;
步骤I02.分别针对各个所插入数据,根据所插入数据所对应表的表名,获得所插入数据对应数据列的数据类型,并进入步骤I03;
步骤I03.分别针对各个所插入数据,针对所插入数据对应数据列的数据类型进行判断,并针对所插入数据所对应数据列的列名和所插入数据做出相应处理,然后根据针对所插入数据所对应数据列的列名,以及针对所插入数据的相应操作,改写插入操作语句,再发送至数据库进行执行,实现插入操作,其中,针对所插入数据对应数据列的数据类型进行判断,并针对所插入数据所对应数据列的列名和所插入数据做出相应处理中,若数据列的数据类型是数值型,则进入步骤I04;若数据列的数据类型是字符型,则进入步骤I06;
步骤I04.根据所插入数据对应表的表名、所插入数据对应的数据列,获得所插入数据对应数据库该表中对应三列的列名,并用该三列的列名替换插入操作语句中所插入数据所对应数据列的列名,然后进入步骤I05;
步骤I05.针对所插入数据分别采用等值加密算法、保存加密算法、同态加密算法进行加密,分别获得所插入数据所对应三种加密方法的加密结果数据,并用该三种加密结果数据替换插入操作语句中的所插入数据,并与插入操作语句中所替换三列的列名分别对应;其中,所插入数据分别所对应三种加密结果数据的密钥存储于数据库中;
步骤I06.根据所插入数据对应表的表名、所插入数据对应的数据列,获得所插入数据对应数据库该表中对应列的列名,并用该列的列名替换插入操作语句中所插入数据所对应数据列的列名,然后进入步骤I07;
步骤I07.针对所插入数据分别采用等值加密算法进行加密,获得所插入数据对应等值加密算法的加密结果数据,并用该加密结果数据替换插入操作语句中的所插入数据,并与插入操作语句中所替换列的列名相对应;其中,所插入数据分别所对应加密结果数据的密钥存储于数据库中。
5.根据权利要求3所述一种基于数据库加密方法的该加密数据库查询方法,其特征在于,所述选择查询操作包括如下步骤:
步骤S01.针对选择查询语句进行解析,获得表名、查询内容和谓词,然后进入步骤S02;
步骤S02.针对表名所对应表中采用等值加密算法进行加密的加密结果数据的外层加密进行解密,并进入步骤S03;
步骤S03.针对谓词所对应的表达式进行判断,若谓词所对应表达式为等值匹配表达式,则将谓词所对应表达式中的列名,替换为其在数据库表中对应列经等值加密算法处理后的列名,同时将谓词所对应表达式中列名所相等的常量,采用等值加密算法中预设指定加密算法进行加密,且其密钥与谓词所对应表达式中列对应等值加密算法中预设指定加密算法的密钥相同,然后用该加密结果替换谓词所对应表达式中列名所相等的常量,接着进入步骤S05;若谓词所对应表达式为范围查询表达式,则进入步骤S04;
步骤S04.将谓词所对应表达式中的列名,替换为其在数据库表中对应列经保存加密算法处理后的列名,同时将谓词所对应表达式中列名所对应的常量,采用保存加密算法进行加密,且其密钥与谓词所对应表达式中列所对应保存加密算法的密钥相同,然后进入步骤S05;
步骤S05.针对查询内容进行判断,若查询内容为列,则将该查询内容所对应的列名替换为其对应等值加密算法的列名,然后进入步骤S06;若查询内容为针对列的聚集函数,则将该查询内容中聚集函数中的列名替换为其对应同态加密算法的列名,然后进入步骤S06;
步骤S06.将替换后的选择查询语句发送至数据库进行执行,实现选择查询操作,获得由数据库中选择查询获得的加密结果数据,并针对该加密结果数据进行解密,获得选择查询数据,然后进入步骤S07;
步骤S07.针对选择查询语句中表名所对应表中采用等值加密算法进行加密的加密结果数据,重新采用随机加密算法进行加密,构成该加密结果数据内层加密的外层加密。
6.根据权利要求3所述一种基于数据库加密方法的该加密数据库查询方法,其特征在于,所述更新操作包括如下步骤:
步骤U01.针对更新操作语句进行解析,获得数据更新表达式、数据更新表达式所对应表的表名、所对应列的列名,以及条件谓词,然后进入步骤U02;
步骤U02.根据数据更新表达式所对应表的表名,针对数据更新表达式所对应表中采用等值加密算法进行加密的加密结果数据的外层加密进行解密,然后进入步骤U03;
步骤U03.针对更新操作语句中数据更新表达式中的列名进行判断,若该列名所对应数据列的数据类型为数值型,则进入步骤U04;若该列名所对应数据列的数据类型为字符型,则进入步骤U06;
步骤U04.将更新操作语句中数据更新表达式中的列名,替换为其分别对应等值加密算法、保存加密算法、同态加密算法三种加密算法的三个列名,然后进入步骤U05;
步骤U05.针对更新操作语句中数据更新表达式中的数据,分别采用保存加密算法、同态加密算法、等值加密算法中预设指定加密算法进行加密,并用所获三种加密结果数据替换数据更新表达式中的数据,且与数据更新表达式中所替换的三个列名相对应,然后进入步骤U08;
步骤U06.将更新操作语句中数据更新表达式中的列名,替换为其对应等值加密算法的列名,然后进入步骤U07;
步骤U07.针对更新操作语句中数据更新表达式中的数据,采用等值加密算法中预设指定加密算法进行加密,并用所获加密结果数据替换数据更新表达式中的数据,然后进入步骤U08;
步骤U08.判断条件谓词是否为空,是则进入步骤U011;否则进入步骤U09;
步骤U09.针对条件谓词所对应的表达式进行判断,若条件谓词所对应表达式为等值匹配表达式,则将条件谓词所对应表达式中的列名,替换为其在数据库表中对应列经等值加密算法处理后的列名,同时将条件谓词所对应表达式中列名所相等的常量,采用等值加密算法中预设指定加密算法进行加密,且其密钥与条件谓词所对应表达式中列对应等值加密算法中预设指定加密算法的密钥相同,然后用该加密结果替换条件谓词所对应表达式中列名所相等的常量,接着进入步骤U11;若条件谓词所对应表达式为范围查询表达式,则进入步骤U10;
步骤U10.将条件谓词所对应表达式中的列名,替换为其在数据库表中对应列经保存加密算法处理后的列名,同时将条件谓词所对应表达式中列名所对应的常量,采用保存加密算法进行加密,且其密钥与条件谓词所对应表达式中列所对应保存加密算法的密钥相同,然后进入步骤U11;
步骤U11.将替换后的更新操作语句发送至数据库进行执行,实现更新操作,然后进入步骤U12;
步骤U12.针对更新操作语句中数据更新表达式所对应表中,采用等值加密算法进行加密的加密结果数据,重新采用随机加密算法进行加密,构成该加密结果数据内层加密的外层加密。
7.根据权利要求3所述一种基于数据库加密方法的该加密数据库查询方法,其特征在于,所述删除操作包括如下步骤:
步骤D01.针对删除操作语句进行解析,获得表名和条件谓词,然后进入步骤D02;
步骤D02.判断条件谓词是否为空,是则直接将删除操作语句发送至数据库中执行,否则进入步骤D03;
步骤D03.针对表名所对应表中采用等值加密算法进行加密的加密结果数据的外层加密进行解密,然后进入步骤D04;
步骤D04.针对条件谓词所对应的表达式进行判断,若条件谓词所对应表达式为等值匹配表达式,则将条件谓词所对应表达式中的列名,替换为其在数据库表中对应列经等值加密算法处理后的列名,同时将条件谓词所对应表达式中列名所相等的常量,采用等值加密算法中预设指定加密算法进行加密,且其密钥与条件谓词所对应表达式中列对应等值加密算法中预设指定加密算法的密钥相同,然后用该加密结果替换条件谓词所对应表达式中列名所相等的常量,接着进入步骤D06;若条件谓词所对应表达式为范围查询表达式,则进入步骤D05;
步骤D05.将条件谓词所对应表达式中的列名,替换为其在数据库表中对应列经保存加密算法处理后的列名,同时将条件谓词所对应表达式中列名所对应的常量,采用保存加密算法进行加密,且其密钥与条件谓词所对应表达式中列所对应保存加密算法的密钥相同,然后进入步骤D06;
步骤D06.将替换后的删除操作语句发送至数据库进行执行,实现删除操作,然后进入步骤D07;
步骤D07.针对表名所对应表中采用等值加密算法进行加密的加密结果数据,重新采用随机加密算法进行加密,构成该加密结果数据内层加密的外层加密。
CN201610129024.6A 2016-03-07 2016-03-07 一种数据库加密方法及该加密数据库查询方法 Active CN105787387B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610129024.6A CN105787387B (zh) 2016-03-07 2016-03-07 一种数据库加密方法及该加密数据库查询方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610129024.6A CN105787387B (zh) 2016-03-07 2016-03-07 一种数据库加密方法及该加密数据库查询方法

Publications (2)

Publication Number Publication Date
CN105787387A true CN105787387A (zh) 2016-07-20
CN105787387B CN105787387B (zh) 2018-09-14

Family

ID=56387244

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610129024.6A Active CN105787387B (zh) 2016-03-07 2016-03-07 一种数据库加密方法及该加密数据库查询方法

Country Status (1)

Country Link
CN (1) CN105787387B (zh)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106850187A (zh) * 2017-01-13 2017-06-13 温州大学瓯江学院 一种隐私字符信息加密查询方法及系统
CN106850192A (zh) * 2017-03-13 2017-06-13 国家电网公司 一种优化移动设备数据库加密效率的方法
CN106953722A (zh) * 2017-05-09 2017-07-14 深圳市全同态科技有限公司 一种全同态加密的密文查询方法和系统
CN107592195A (zh) * 2017-09-12 2018-01-16 北京电子科技学院 一种准全同态密文数据操作方法和系统
WO2018154581A1 (en) * 2017-02-22 2018-08-30 Kindite Ltd. Encrypting data records and processing encrypted records without exposing plaintext
CN108536446A (zh) * 2018-04-19 2018-09-14 四川师范大学 一种基于Android系统的Spatialite空间数据库加密方法
CN109492415A (zh) * 2018-11-06 2019-03-19 深圳市东宝信息技术有限公司 一种基于敏感数字的安全存储方法及系统
CN109495455A (zh) * 2018-10-26 2019-03-19 吴晓军 一种数据处理系统、方法及设备
CN109522727A (zh) * 2018-10-26 2019-03-26 吴晓军 一种数据处理方法、装置及设备
CN109597829A (zh) * 2018-11-20 2019-04-09 南京邮电大学 一种实现可搜索加密关系型数据库缓存的中间件方法
CN109840423A (zh) * 2018-11-27 2019-06-04 吴晓军 一种数据关系的记录方法、装置及设备
CN109918938A (zh) * 2018-12-29 2019-06-21 亚信科技(中国)有限公司 一种云计算平台用户数据的存储、查询方法及装置
CN111510413A (zh) * 2019-01-30 2020-08-07 阿里巴巴集团控股有限公司 数据的处理方法、装置及设备
CN111639349A (zh) * 2020-05-14 2020-09-08 瀚高基础软件股份有限公司 一种数据加密处理方法、装置和存储介质
CN112380557A (zh) * 2020-12-01 2021-02-19 江西师范大学 一种关系型数据库加密方法及该加密数据库查询方法
CN114513351A (zh) * 2022-02-08 2022-05-17 中国人民解放军海军军医大学 一种偏远地区信息加密传输方法、系统及可存储介质
CN116108466A (zh) * 2022-12-28 2023-05-12 南京邮电大学盐城大数据研究院有限公司 一种基于统计语言模型的加密方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1303065A (zh) * 1999-09-30 2001-07-11 卡西欧计算机株式会社 数据库管理装置和加密/解密系统
CN101162493A (zh) * 2007-10-11 2008-04-16 天津理工大学 维护数据库安全的方法和系统
CN101504706A (zh) * 2009-03-03 2009-08-12 中国科学院软件研究所 数据库信息加密方法和系统
CN101504668A (zh) * 2009-03-24 2009-08-12 北京理工大学 一种支持密文索引的数据库透明加密方法
CN102246166A (zh) * 2008-12-30 2011-11-16 国际商业机器公司 利用哈希算法的搜索引擎服务

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1303065A (zh) * 1999-09-30 2001-07-11 卡西欧计算机株式会社 数据库管理装置和加密/解密系统
CN101162493A (zh) * 2007-10-11 2008-04-16 天津理工大学 维护数据库安全的方法和系统
CN102246166A (zh) * 2008-12-30 2011-11-16 国际商业机器公司 利用哈希算法的搜索引擎服务
CN101504706A (zh) * 2009-03-03 2009-08-12 中国科学院软件研究所 数据库信息加密方法和系统
CN101504668A (zh) * 2009-03-24 2009-08-12 北京理工大学 一种支持密文索引的数据库透明加密方法

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106850187A (zh) * 2017-01-13 2017-06-13 温州大学瓯江学院 一种隐私字符信息加密查询方法及系统
US11361099B2 (en) 2017-02-22 2022-06-14 Ringcentral, Inc. Encrypting data records and processing encrypted records without exposing plaintext
WO2018154581A1 (en) * 2017-02-22 2018-08-30 Kindite Ltd. Encrypting data records and processing encrypted records without exposing plaintext
US11366921B2 (en) 2017-02-22 2022-06-21 Ringcentral, Inc. Encrypting data records and processing encrypted records without exposing plaintext
CN106850192A (zh) * 2017-03-13 2017-06-13 国家电网公司 一种优化移动设备数据库加密效率的方法
CN106953722A (zh) * 2017-05-09 2017-07-14 深圳市全同态科技有限公司 一种全同态加密的密文查询方法和系统
CN106953722B (zh) * 2017-05-09 2017-11-07 深圳市全同态科技有限公司 一种全同态加密的密文查询方法和系统
CN107592195A (zh) * 2017-09-12 2018-01-16 北京电子科技学院 一种准全同态密文数据操作方法和系统
CN108536446A (zh) * 2018-04-19 2018-09-14 四川师范大学 一种基于Android系统的Spatialite空间数据库加密方法
CN109495455A (zh) * 2018-10-26 2019-03-19 吴晓军 一种数据处理系统、方法及设备
CN109522727A (zh) * 2018-10-26 2019-03-26 吴晓军 一种数据处理方法、装置及设备
CN109492415A (zh) * 2018-11-06 2019-03-19 深圳市东宝信息技术有限公司 一种基于敏感数字的安全存储方法及系统
CN109597829A (zh) * 2018-11-20 2019-04-09 南京邮电大学 一种实现可搜索加密关系型数据库缓存的中间件方法
CN109597829B (zh) * 2018-11-20 2022-11-01 南京邮电大学 一种实现可搜索加密关系型数据库缓存的中间件方法
CN109840423A (zh) * 2018-11-27 2019-06-04 吴晓军 一种数据关系的记录方法、装置及设备
CN109840423B (zh) * 2018-11-27 2023-12-05 吴晓军 一种数据关系的记录方法、装置及设备
CN109918938A (zh) * 2018-12-29 2019-06-21 亚信科技(中国)有限公司 一种云计算平台用户数据的存储、查询方法及装置
CN111510413A (zh) * 2019-01-30 2020-08-07 阿里巴巴集团控股有限公司 数据的处理方法、装置及设备
CN111639349B (zh) * 2020-05-14 2022-09-06 瀚高基础软件股份有限公司 一种数据加密处理方法、装置和存储介质
CN111639349A (zh) * 2020-05-14 2020-09-08 瀚高基础软件股份有限公司 一种数据加密处理方法、装置和存储介质
CN112380557B (zh) * 2020-12-01 2021-10-12 江西师范大学 一种关系型数据库加密方法及该加密数据库查询方法
CN112380557A (zh) * 2020-12-01 2021-02-19 江西师范大学 一种关系型数据库加密方法及该加密数据库查询方法
CN114513351A (zh) * 2022-02-08 2022-05-17 中国人民解放军海军军医大学 一种偏远地区信息加密传输方法、系统及可存储介质
CN116108466A (zh) * 2022-12-28 2023-05-12 南京邮电大学盐城大数据研究院有限公司 一种基于统计语言模型的加密方法
CN116108466B (zh) * 2022-12-28 2023-10-13 南京邮电大学盐城大数据研究院有限公司 一种基于统计语言模型的加密方法

Also Published As

Publication number Publication date
CN105787387B (zh) 2018-09-14

Similar Documents

Publication Publication Date Title
CN105787387A (zh) 一种数据库加密方法及该加密数据库查询方法
CN110337649B (zh) 用于搜索模式未察觉的动态对称可搜索加密的方法和系统
CN106934030B (zh) 一种面向数据库加密的密文索引方法和库内加密系统
CN108881195A (zh) 基于云环境的数据安全共享方法和装置
CN112380557B (zh) 一种关系型数据库加密方法及该加密数据库查询方法
CN104657673A (zh) 平均复杂度理想安全的保序加密
CN102567688B (zh) 一种安卓操作系统上的文件保密系统及其保密方法
CN104881280A (zh) 一种支持多查询的密文数据库中间件的设计方法
WO2023010727A1 (zh) 密钥更新及文件共享方法、装置、设备、计算机存储介质
CA3087924C (en) Methods for securing data
KR20100062013A (ko) 결합 키워드를 이용한 데이터 암호화 방법 및 데이터 검색방법
CN112989375B (zh) 一种分级优化加密无损隐私保护方法
CN103955654A (zh) 基于虚拟文件系统的u盘安全存储方法
CN110069946B (zh) 一种基于sgx的安全索引系统
CN108400970A (zh) 云环境中相似数据消息锁定加密去重方法、云存储系统
CN106992851A (zh) 基于TrustZone的数据库文件口令加解密方法、装置及终端设备
CN104868998A (zh) 一种向电子设备供应加密数据的系统、设备和方法
CN103973698B (zh) 一种云存储环境中的用户访问权限回收方法
CN103607273B (zh) 一种基于时间期限控制的数据文件加解密方法
CN115118419A (zh) 安全芯片的数据传输方法、安全芯片装置、设备及介质
CN113434739B (zh) 一种云环境下前向安全的多用户动态对称加密检索方法
CN100596058C (zh) 可信计算平台密钥授权数据管理系统及方法
Dayıoğlu Secure database in cloud computing-cryptdb revisited
CN113132085A (zh) 一种基于可搜索加密的密文查询方法
KR102248756B1 (ko) 순방향 안정성을 갖는 탐색 가능한 암호화 시스템과 그 장치 및 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20200622

Address after: Room 1703-2, 1704, building 1-1, No.19 Changqing street, Jiangning District, Nanjing City, Jiangsu Province

Patentee after: TPL (Nanjing) Information Technology Co., Ltd

Address before: The city of Nanjing city of Jiangsu Province, 210013 Yuen Road Xianlin University No. 9

Patentee before: NANJING University OF POSTS AND TELECOMMUNICATIONS

TR01 Transfer of patent right
CP01 Change in the name or title of a patent holder

Address after: 211106 room 1703-2, 1704, building 1-1, 19 Changqing street, Jiangning District, Nanjing City, Jiangsu Province (Jiangning Development Zone)

Patentee after: Tuotuobao (Nanjing) Electric Power Technology Co.,Ltd.

Address before: 211106 room 1703-2, 1704, building 1-1, 19 Changqing street, Jiangning District, Nanjing City, Jiangsu Province (Jiangning Development Zone)

Patentee before: TPL (Nanjing) Information Technology Co., Ltd

CP01 Change in the name or title of a patent holder