CN107168998B - 一种基于保留格式的数据库透明加密方法 - Google Patents
一种基于保留格式的数据库透明加密方法 Download PDFInfo
- Publication number
- CN107168998B CN107168998B CN201710203028.9A CN201710203028A CN107168998B CN 107168998 B CN107168998 B CN 107168998B CN 201710203028 A CN201710203028 A CN 201710203028A CN 107168998 B CN107168998 B CN 107168998B
- Authority
- CN
- China
- Prior art keywords
- data
- encryption
- database
- integer
- ciphertext
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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
- G06F21/6227—Protecting 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 where protection concerns the structure of data, e.g. records, types, queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本发明提出一种基于保留格式的数据库透明加密方法,能有效地保护数据库的安全性,以密文的形式进行存储。同时又能够对合法用户透明化,拥有与非加密数据库相同的增删改查方法,不影响用户使用。本发明方法利用保留格式的加密方式来对数据库中每一数据项中的记录进行加密,使其以相同数据类型的密文形式存储在数据库中。在用户需要对该加密的数据库进行增删改查时,将用户输入的明文字段进行加密转化为相同数据类型的密文,使其与加密数据库中的数据一致,再将查询得到的结果进行解密,以明文的形式呈现给用户,从而来实现对用户透明化。
Description
技术领域
本发明涉及数据库安全加密领域,具体涉及保留格式的数据库透明加密方法。
背景技术
随着互联网的发展,信息安全问题日趋严峻,数据库作为信息的主要存储方式也已成为需要重点保护的对象。然而传统的防火墙以及部分安全保护软件已经不足以对抗数据库入侵窃取问题。目前经常出现各种黑客入侵网络事件,并毫不费力地盗取服务器中数据库,极大地威胁着用户信息的安全性。因此需要利用加密技术来对数据库进行保护,使其以密文的形式进行存储。入侵者即使数据库中数据被盗取,也能够保证数据信息不会存在泄漏问题,从而确保了数据的安全性,极大地避免了因机密、隐私数据的公开对其所有者造成的损失[李刚彪.数据库加密技术的研究与实现[D].太原理工大学,2010.]。
20世纪八十年代初,美国开始对数据库加密进行研究,IBM公司的C.Wood,E.B.Ferriandea,R.C.Summers发表《Database Security:Requirement,Policies,andModels》,以及George I,Davida LW,John BK在1981年发表《A Database EncryptionSystem with Subkey》[David.GI,Wells.DL,Kam.JB.A Database Eneryption Systemwith Subkeys[J].ACM Transaction Database System,1981,6(2):31-37],从此开始有学者对数据库加密技术进行研究。与此同时D.E.Denning在1982年发表了《Cyrptography andData Security》一文,并提出了一些对数据库加密的见解。此后,一些主流数据库管理软件,如Oracle,开始添加加密功能来对数据进行保护。
对数据库加密的研究中,起初采用了变密钥字段的方法来实现[Davida G I,Wells D L,Kam J B.A database encryption system with subkeys[J].ACMTransactions on Database Systems(TODS),1981,6(2):312-328.],随后有人提出耳机密钥管理方案,并提出了一些密钥管理协议,并用子密钥来对数据库进行加密[Davida G I,Wells D L,Kam J B.Database encryption and decryption circuit and method usingsubkeys:U.S.Patent 4,375,579[P].1983-3-1.],然而这些方法对数据库进行加密极大地影响软件的运行速度。随后有人提出了采用同余定理对数据库加密的思路[],直接对其中的密文进行四则运算,从而来提高其计算速度。[郝立柱,李安平.财务软件中的数据安全策略[J].黑龙江大学学报(自然科学版),2007,9(3):55-58]。随后有学者引入了秘密同态理论,直接对密文做加密运算,并被Domingo等人做出了适当的改进[SONG D.X.WAGNERD.PERRING A.Practical.Techniques for Searches on Encrypted Data[J].Proc.ofIEEE Security and Privacy Symposium,2000,7(6):22-26]。2013年Deshmukh等人针对数据库的安全性,突出一种数据透明加密的方法,保证在磁盘等硬件中的数据以密文的形式进行存储,并使其在使用时以明文的形式展现出来[Deshmukh D,Pasha A,QureshiD.Transparent Data Encryption--Solution for Security of Database Contents[J].arXiv preprint arXiv:1303.0418,2013.]。随后Shmueli等人对当前的数据库加密方法进行评估,并支持某些高安全性的加密方法具有运行性能差的缺点[Shmueli E,Vaisenberg R,Gudes E,et al.Implementing a database encryption solution,designand implementation issues[J].Computers&security,2014,44:33-50.]。商业软件中有SafeNetProtectDB、Oracle、SQL Server分别在在SQL语句、存储层、系统层来实现对数据的加密[SafeNet Inc.Database encryption;2009.;Microsoft Corporation.Databaseencryption in SQL Server 2008Enterprise edition;2008.]。Elovici等人提出一种保留格式的数据库加密方法[Elovici Y,Waisenberg R,Shmueli E.Structure preservingdatabase encryption method and system:U.S.Patent 8,639,947[P].2014-1-28.],Freeman等人则提出一种在数据库字段层面上来对其进行加密的方法[Freeman W C,Hom RV.Field level database encryption using a transient key:U.S.Patent 9,251,355[P].2016-2-2.],但是该方法实现过于复杂,使用不利于存储以及移植性差的缺点。同样的,目前部分大型数据库管理系统(DBMS)软件,虽然已经提供了一些简单的数据加密功能,但其加密性能很有限,且均采用DBMS各自的加密方法来对数据进行加密保护,使得这些数据在不同的DBMS之间难以相互移植。
发明内容
本发明采用的方法是在DBMS外部设计一个加密系统,承担这对数据进行加密以及解密的操作,并以相同数据类型的密文对数据进行存储,从而在保证了数据的安全性的同时还使得数据库具有良好的移植性。同时,还设计一套完整的自动加解密方案,使得在使用过程具有良好的用户体验,避免用户对数据加解密流程的参与,使其拥有与明文数据库相同的使用方法。因此该方法具有良好的移植性、运算速度块、对用户使用的透明性等特点。
本发明的目的通过以下的技术方案实现:一种基于保留格式的数据库透明加密方法,该项方案需实现的主要技术包括:不同类型数据的保留格式加解密方法以及自动加解密实现流程的实现避免用户的参与。具体实现方案分别如下:
1、对数据库中各种类型数据实现保留格式加密,并将数据转化为相同数据类型的密文存储在数据库中,即:
c=PreEncrypt(k,m]
c=PreDnciypt(k,m)
其中,PreEncrypt()表示保留格式加密函数,PreDncrypt()表示保留格式解密函数,k为密钥,m为明文,c为密文,且c与m为相同数据类型。
在数据库中需要实现的数据加密类型包括如下:
a.单字符类型,即BYTE。
b.整数类型,即INT。
c.短整型类型,即SHORT。
d.长整型类型,即LONG。
e.浮点类型,即FLOAT。
f.双浮点型,即DOUBLE。
g.字符串类型,即STRING。
h.时间类型,即TIME。
i.时间戳类型,即TIMESTEMP。
j.日期类型,即DATE。
利用这种保留格式加密方式,对原始数据库中明文进行加密,包括所有表名、字段名称以及每一数据项,再利用产生的密文数据来生成一个新的密文数据库。
2、实现对用户使用的透明性,即保证拥有加密密钥的用户以与明文数据库相同的操作来访问数据库,自动实现对数据的加解密,避免用户参与。在实际应用中用户对数据库的访问包括,增删改查,下面分别对这四种访问操作实现透明加解密:
(1)添加操作:利用保留格式加密的方式对用户需要添加的各字段数据进行加密,再将加密后的数据添加到数据库中。以insert语句为例:
用户输入:insert into table values(item1,item2,item3from table);
实际执行:insert into PreEncrypt(k,table)values(PreEncrypt(k,item1),PreEncrypt(k,item2),PreEncrypt(k,item3)).
(2)删除操作:利用保留格式加密的方式对用户需要删除的各个字段数据进行加密,再从密文数据库中删除对应的数据项。以delete语句为例:
用户输入:delete from table where item=value;
实际执行:delete from PreEncrypt(k,table)where PreEncrypt(k,item)=PreEncrypt(k,value);
(3)修改操作:利用保留格式加密的方式对用户需要修改的各个字段、数据项及表名进行加密,再将加密后的数据写入密文数据库。以update语句为例
用户输入:update table set item=value_new where item=value_old;
实际执行:update PreEncrypt(k,table)set PreEncrypt(k,item)=PreEncrypt(k,value_new)where PreEncrypt(k,item)=PreEncrypt(k,value_old);
(4)查询操作:将要查询的字段进行加密,并对密文来对数据库进行查询获取其密文数据,再对密文数据进行解密,并把解密后的数据反馈给用户。以select语句为例:
用户输入:select item1,item2from table;
实际执行:select PreEncrypt(k,item1),PreEncrypt(k,item2)fromPreEncrypt(k,table);
对查询到的数据使用PreDecrypt()进行解密,并将明文信息反馈给用户。
附图说明
图1是本发明专利的基于保留格式的数据库透明加密方法流程图;
图2是本发明专利中保留格式加密的框架流程图。
具体实施方式
下面对本发明内容中的加密解密过程作进一步详细的介绍,但本发明的实施方式不限于此。
数据库中所使用的基本数据类型为:单字符类型(char)、整数类型(int)、短整型类型(short)、长整型类型(long)、浮点类型(float)、双浮点型(double)、字符串类型(string)、时间类型(time)、时间戳类型(timestamp)、日期类型(date)。其总体框架如图2所示。
这十种基本的数据类型中,根据其数据的特点,可以将部分数据类型合为一组使用相同的加解密方法,如下:
1.“整数类型”、“短整型类型”、“长整型类型”使用相同的加解密方法,分别记为:IntegerEncrypt/IntegerDecrypt;
2.“浮点类型”、“双浮点类型”使用相同的加解密方法,分别记为:FloatEncrypt/FloatDecrypt;
3.“单字符类型”,加解密方法记为:CharacterEncrypt/CharacterDecrypt;
4.“字符串类型”,加解密方法记为:StringrEncrypt/StringDecrypt;
5.“时间类型”,加解密方法记为:TimeEncrypt/TimeDecrypt;
6.“时间戳类型”,加解密方法记为:TimestampEncrypt/TimestampDecrypt;
7.“日期类型”,加解密方法记为:DateEncrypt/DateDecrypt;
下面分别对上面这七组加解密方法做详细介绍。
1.IntegerEncrypt(k,num)/IntegerDecrypt(k,num)
本方法中直接使用DES或AES等对称加密算法来实现加密与解密,并将加解密后的数据转化为常用的十进制数据进行存储。
2.FloatEncrypt/FloatDecrypt
(1)以整数的形式来读取浮点数据,由于在计算机中数据均以0和1的形式进行存储,因此可以直接将浮点数据转化为十进制的整型数据。
(2)在整数域中利用1中方法实现加密,进而生成密文整型数据。
(3)根据浮点数的表示方法,整型的密文数据转换为浮点数据。
3.CharacterEncrypt/CharacterDecrypt
(1)将字符数据转化为整型数据,转化流程如下:
a.记字符数据charn长度为n,确定每个字符的取值空间记为L。
b.为字符空间L指定一种全序<,设ci,为charn中第i个字符,并随机选取字符空间Ln,中一个元素作为基准值ref。
c.根据全序关系来建立字符空间内元素与整数之间的双射,并进行编码,再将编码转化为十进制整型数据。
(2)在整数域中利用1中方法实现加密,进而生成密文整型数据。
(3)利用(1)中逆运算,即可产生相同数据类型的密文。
4.StringrEncrypt/StringDecrypt
由于字符串这一数据类型在数据库中任意编码均可进行存储,因此可以直接使用传统的DES或AES等对称加密方法来实现,并直接将生成的密文以字符串的形式存储进数据库。
5.TimeEncrypt/TimeDecrypt
(1)在数据库中Time数据类型表示形式为:HH:MM:SS,可直接将时间转化为十进制数据的形式,计算公式如下:
INT=H×60×60+M×60+S
(2)在整数域中利用1中方法实现加密,进而生成密文整型数据。
(3)将整型密文数据转化为时间的形式,转化公式如下:
S=INT%60、M=(INT-S)%60、H=(INT-M×60-S)%(60×60)
6.TimestampEncrypt/TimestampDecrypt
(1)在数据库中时间戳Timestamp数据类型表示形式为:YYY-MM-DD HH:MM:SS,这个值是从1970开始直到目前为止,所经过的秒数,通过计算转化得来的,因此可以直接将其转化为整数型,以秒数来表示。
(2)在整数域中利用1中方法实现加密,进而生成密文整型数据。
(3)利用(1)中逆运算,即可产生相同表示形式的时间戳密文。
7.DateEncrypt/DateDecrypt
(1)在数据库中日期Date数据类型表示形式为:YYY-MM-DD,将该值转化为整型数据,计算公式如下
INT=Y×12×31+M×12+D×31
(2)在整数域中利用1中方法实现加密,进而生成密文整型数据。
(3)将整型密文数据转化为日期的形式,转化公式如下:
D=INT%31、M=(INT-D)%12、Y=(INT-M×12-D)%(12×31)
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。
Claims (1)
1.一种基于保留格式的数据库透明加密方法,其特征在于:
将保留格式加密的方法与数据库结合起来,实例化数据库中每一种数据类型的加密方法,使数据以与明文相同类型的密文进行存储,有效地确保数据的安全性;
在使用时能够自动实现对数据的加密与解密,中间过程无需用户参与,用户只需要初始化时提供密钥即可,用户拥有与以明文存储的数据库相同的操作体验;
在加密与解密过程中,先将用户所需查询的字段进行保留格式加密,再对密文进行增删改查操作,实现如下:
(1)添加操作:利用保留格式加密的方式对用户需要添加的各字段数据进行加密,再将加密后的数据添加到数据库中;
(2)删除操作:利用保留格式加密的方式对用户需要删除的各个字段数据进行加密,再从密文数据库中删除对应的数据项;
(3)修改操作:利用保留格式加密的方式对用户需要修改的各个字段、数据项及表名进行加密,再将加密后的数据写入密文数据库;
(4)查询操作:将要查询的字段进行加密,并对密文来对数据库进行查询获取其密文数据,再对密文数据进行解密,并把解密后的数据反馈给用户;对查询到的数据进行解密,并将明文信息反馈给用户;
对各种不同的数据类型使用对应的保留格式加密方法,对数据库中五种类型的加解密方法实现如下:
(1)整数类型加解密方法:直接使用 DES 或 AES对称加密算法来实现加密与解密,并将加解密后的数据转化为十进制数据进行存储;
(2)浮点数类型加解密方法:a1.以整数的形式来读取浮点数据,在计算机中数据均以0 和 1 的形式进行存储,直接将浮点数据转化为十进制的整型数据;
b1.在整数域中利用整数类型加解密方法实现加密,进而生成密文整型数据;
c1.根据浮点数的表示方法,整型的密文数据转换为浮点数据;
(3)字符类型加解密方法:记字符数据charn长度为n,确定每个字符的取值空间记为L;为字符空间L指定一种全序,设ci为charn中第i个字符,并随机选取字符空间Ln中一个元素作为基准值ref;根据全序关系来建立字符空间内元素与整数之间的双射,并进行编码,再将编码转化为十进制整型数据;
a2.利用上述编码方法将字符数据转化为整型数据;
b2.在整数域中利用整数类型加解密方法实现加密,进而生成密文整型数据;
c2.利用a2中逆运算,即可产生相同数据类型的密文;
(4)字符串类型加解密方法:直接使用传统的DES或AES对称加密方法来实现,并直接将生成的密文以字符串的形式存储进数据库;
(5)Time数据类型加解密方法:
a3.在数据库中Time数据类型表示形式为:HH:MM:SS,直接将时间转化为十进制数据的形式,计算公式如下:
INT=HH×60×60+MM×60+SS
b3.在整数域中利用整数类型加解密方法实现加密,进而生成密文整型数据;
c3.将整型密文数据转化为时间的形式,转化公式如下:
SS=INT%60、MM=(INT-SS)%60、HH=(INT-MM×60-SS)%(60×60)
(6)时间戳类型加解密方法:
a4.在数据库中时间戳Timestamp数据类型表示形式为值YYYY-MM-DD HH:MM:SS,值YYYY-MM-DD HH:MM:SS是从1970开始直到目前为止,所经过的秒数,通过计算转化得来的,将其转化为整数型,以秒数来表示;
b4.在整数域中利用整数类型加解密方法实现加密,进而生成密文整型数据;
c4.利用a4中逆运算,即可产生相同表示形式的时间戳密文;
(7)日期Date类型:
a5.在数据库中日期Date数据类型表示形式为值YYYY-MM-DD,将值YYYY-MM-DD转化为整型数据,计算公式如下 :
INT=YYYY×12×31+MM×12+DD×31
b5.在整数域中利用整数类型加解密方法实现加密,进而生成密文整型数据;
c5.将整型密文数据转化为日期的形式,转化公式如下:
DD=INT%31、MM=(INT-DD)%12、YYYY=(INT-MM×12-DD)%(12×31)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710203028.9A CN107168998B (zh) | 2017-03-30 | 2017-03-30 | 一种基于保留格式的数据库透明加密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710203028.9A CN107168998B (zh) | 2017-03-30 | 2017-03-30 | 一种基于保留格式的数据库透明加密方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107168998A CN107168998A (zh) | 2017-09-15 |
CN107168998B true CN107168998B (zh) | 2021-02-12 |
Family
ID=59849027
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710203028.9A Active CN107168998B (zh) | 2017-03-30 | 2017-03-30 | 一种基于保留格式的数据库透明加密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107168998B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10831869B2 (en) * | 2018-07-02 | 2020-11-10 | International Business Machines Corporation | Method for watermarking through format preserving encryption |
CN110795741B (zh) * | 2018-08-01 | 2024-04-05 | 京东科技控股股份有限公司 | 对数据进行安全性处理的方法和装置 |
CN109492415A (zh) * | 2018-11-06 | 2019-03-19 | 深圳市东宝信息技术有限公司 | 一种基于敏感数字的安全存储方法及系统 |
CN109657492B (zh) * | 2018-12-12 | 2021-01-15 | 泰康保险集团股份有限公司 | 数据库管理方法、介质及电子设备 |
CN109697371A (zh) * | 2018-12-12 | 2019-04-30 | 泰康保险集团股份有限公司 | 数据库管理方法、装置、介质及电子设备 |
CN110489394B (zh) * | 2019-07-23 | 2023-07-21 | 中国平安人寿保险股份有限公司 | 中间数据处理方法及设备 |
CN111783112B (zh) * | 2020-06-09 | 2023-09-12 | 三未信安科技股份有限公司 | 一种保留格式加密的快速实现方法、系统、介质及设备 |
US12056259B2 (en) * | 2020-08-18 | 2024-08-06 | International Business Machines Corporation | Secure ingress and egress for data engines |
CN113111357B (zh) * | 2021-03-09 | 2022-02-22 | 深圳市教育信息技术中心(深圳市教育装备中心) | 字段加密方法、装置、设备和介质 |
CN113204779B (zh) * | 2021-05-20 | 2022-04-15 | 郑州信大捷安信息技术股份有限公司 | 基于对称密码算法的保留格式加密算法的实现方法及装置 |
-
2017
- 2017-03-30 CN CN201710203028.9A patent/CN107168998B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN107168998A (zh) | 2017-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107168998B (zh) | 一种基于保留格式的数据库透明加密方法 | |
US9825925B2 (en) | Method and apparatus for securing sensitive data in a cloud storage system | |
US9747456B2 (en) | Secure query processing over encrypted data | |
US7743069B2 (en) | Database system providing SQL extensions for automated encryption and decryption of column data | |
CN108520183A (zh) | 一种数据存储方法及装置 | |
Xu et al. | Applications of cryptography in database: a review | |
US9069987B2 (en) | Secure data access using SQL query rewrites | |
US20180254901A1 (en) | Method and system for secure delegated access to encrypted data in big data computing clusters | |
WO2012095973A1 (ja) | データ処理装置及びデータ保管装置 | |
EP2472426B1 (en) | Accelerated cryptography with an encryption attribute | |
US20130046974A1 (en) | Dynamic symmetric searchable encryption | |
US8769302B2 (en) | Encrypting data and characterization data that describes valid contents of a column | |
US11070357B2 (en) | Techniques for privacy-preserving data processing across multiple computing nodes | |
US20230254126A1 (en) | Encrypted search with a public key | |
US20210224242A1 (en) | Systems and methods for indexing and searching data | |
JP2022544484A (ja) | 暗号化されたナレッジ・グラフ | |
Rao et al. | R-PEKS: RBAC enabled PEKS for secure access of cloud data | |
Liu | Securing outsourced databases in the cloud | |
Kamara | Restructuring the NSA metadata program | |
CN113158210A (zh) | 数据库加密方法及装置 | |
Alomari et al. | SecloudDB: A unified API for secure SQL and NoSQL cloud databases | |
Pramanick et al. | Searchable encryption with pattern matching for securing data on cloud server | |
Chen et al. | Memory leakage-resilient dynamic and verifiable multi-keyword ranked search on encrypted smart body sensor network data | |
EP3891641B1 (en) | Selective and total query redaction | |
Sun et al. | ISDB: An effective ciphertext retrieval method for electronic health records based on SDB |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |