2021-05-26

                                                                 加密技术及其在数据库加密中的应用

 

摘要:数据库系统作为信息系统的核心,其安全直接影响信息系统的安全。本文简要介绍了加密技术的概念及主要方法,针对数据库系统的特点和安全问题提出数据库系统加密的策略,并对数据库系统加密的相关技术进行了阐述。最后讨论了数据库加密技术存在的局限性。

关键字:加密技术 数据库系统 安全

 

 

1、引言

随着因特网的普及和计算机技术的飞速发展,各行各业的信息化程度得到了显著的提高。信息系统已经成为企业、金融机构、政府及国防等部门现代化的重要标志。如何保证现代信息系统的安全是计算机领域面临的一大挑战。数据库系统作为信息的聚集体是信息系统的核心,其安全性对整个信息系统来说至关重要,数据库加密技术成为保障数据库系统安全的基石。

 

2、加密技术

加密技术主要是为了能够有效地保护数据的安全性,下面简单介绍加密技术的概念及主要算法。

2、1加密的概念

数据加密的基本过程就是对原来为明文的文件多数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”,使其只能在输入相应的密钥之后才恩能够显示出本来内容,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。该过程的逆过程为解密,即将该编码信息转化成为其原来数据的过程。

2、2数据加密的原理

数据加密就是把数据信息即明文转换为不可辨识的形式即密文的过程,目的是使不应了解该数据信息的人不能够知道和识别。将密文转变为明文的过程(如图1所示)就是解密。加密和解密过程形成加密系统,明文与密文统称为报文。任何加密系统通常都包括如下4个部分: 

(1)需要加密的报文,也称为明文P。 

(2)加密以后形成的报文,也称为密文Y。

(3)加密(解密)算法E(D)。

(4)用于加密和解密的钥匙,称为密钥K。 

加密过程可描述为:在发送端利用加密算法E和加密密钥Ke对明文P进行加密,得到密文Y=EKe(P)。密文Y被传送到接收端后应进行解密。解密过程可描述为:接收端利用解密算法D和解密密钥Kd对密文Y进行解密,将密文恢复为明文P=DKd(Y)。在密码学中,把设计密码的技术称为密码编码.把破译密码的技术称为密码分析。密码编码和密码分析合起来称为密码学。在加密系统中,算法是相对稳定的。为了加密数据的安全性,应经常改变密钥。

 

2、3加密的两种主要算法

加密技术通常通常分为两大类:“对称式”和“非对称式”。

对称式加密就是加密和解密使用同一个密钥,通常称之为“Session Key”。这种加密技术目前被广泛采用,如美国政府所采用的DES加密标准就是一种典型的“对称式”加密法,它的Session Key长度为56Bits。

非对称式加密就是加密和解密所使用的不是同一个密钥,通常有两个密钥,称为“公钥”和“私钥”,她们两个必须配对使用,否则不能打开加密文件。这里的“公钥”是指可以对外公布的,“私钥”则不能,只能由持有人一个人知道。它的优越性就在这里,因为对称式的加密方法如果是在网络上传输加密文件及很难把密钥告诉对方,不管用什么方法都有可能被窃听到。而非对称式的加密方法有两个密钥,且其中的“公钥”是可以公开的,也就不怕别人知道,收件人解密时只要用自己的私钥就可以,这样就很好的避免了密钥的传输安全性问题。

 

3、加密技术在数据库加密的应用

加密技术的应用是多方面的,例如电子商务、VPN、数据库系统等,下面主要介绍加密技术在数据库加密中的应用。

3、1、1快速随机存取

虽然数据库中的数据最终是以文件形式存储在物理介质上,却不能将整个数据作为一个文件来加密。一般情况下,文件是作为一个整体来使用的。传统的文件存储加密从头至尾顺序执行,访问加密文件时再从头至尾进行解密。而数据库操作最小单位是一个数据元素,该元素是数据库文件中随机的一段;同时,数据库文件较为庞大,如果每次访问数据库都一次全文加/解密,则执行速度很慢,以致数据库实际不可用。因此数据库加密必须解决对数据库文件快速随机存取问题和最小操作粒度的数据加/解密问题。

为了快速的查询、更新数据,数据库管理系统通常有一系列快速随机存取的方法,这些方法的实现基于存储数据的模型和描述应用数据的元数据。关系数据库中,组织存储数据的模型就是系统表。系统表是保证数据库管理系统正常工作的数据信息。

关系数据库所使用的关系语言是高度的非过程化的,用户不必请求数据库管理员为其建立特殊的存取路径,存取路径的选择是由DBMS自动完成的。这是关系数据库的主要优点之一。因此,在关系数据库存储加密系统中,沿用数据库管理系统对存储数据的定位和维护功能,是实现快速随机存取数据库文件的一个好办法。

3、1、2存储容量

数据库存储数据量大、存储时间长,这给敌方破译加密数据带来一定的有利条件。因此,数据库存储加密必须采用高强度的算法,同时要保证密钥定期更换。由于数据存储量大,应尽量避免加密造成的数据长度增加,防止数据库存储容量大幅度膨胀。

3、1、3一次一密

数据库中的数据是结构化的。因此,必须保证加密后的数据仍然是结构化的。同时,由于数据库中数据的结构化存储,同一字段的数据类型(长度、值域)和逻辑含义相同,这便于破译者分析密文数据结构,获得大量相同密文,从而利用统计规律获得明文。数据数存储加密也应采取“一次一密”。因此,这里的“一次一密”与传输加密的一次一密不同,是指每个加密单位采用不同的密钥。对于实现最小操作粒度的加密来说,就是一个数据元素一个密钥。保证即使明文中同段值重复出现,对应的密文也各不相同。

3、2数据库加密的方法

3、2、1加密粒度的选择

数据库加密的粒度一直是一个令人困扰的问题。一般来讲,数据库加密的粒度可以有三种:表、记录和数据项。

(1)表级加密:表级加密是在表一级进行加密,加密解密的对象是整个表。这种加密方法完全是照搬操作系统中文件的加密方法,用于数据库的加密显然是不合适的。

    (2)记录级加密:记录级加密是在表一级上进行,即记录加密方法。它将数据库中的记录看成操作对象,统一作加密解密处理。这种方法比第一种能更好地保证数据的安全,使用时较为方便,但其灵活性不高。

3、2、2加密算法的选择

密码算法在早期有序列算法,移位算法等。当前,加密技术通常通常分为两大类:“对称式”和“非对称式”。如DES就是一种对称密钥算法,而RSA是一种公开密钥算法。选择合适的加密算法是很重要的,其加密强度应能满足系统安全需要,但要考虑加密结果是否符合数据约束条件,存储会不会造成额外负担;对加密速度的要求则是不应该对系统性能产生明显影响,响应时间越短越好。同时,对应用系统的用户来说,数据库加解密过程应该是透明的,不能影响合法用户的正常操作。数据库加密要求加密效率要尽可能的高,以DES算法为代表的对称密钥加密算法则是简单高效,适合进行数据库加密,不过由于DES密钥长度过短,随着计算机运算能力的增强和密码分析技术的发展,DES将会由AES替代。而以RSA算法为代表的公开密钥加密算法加密强度较高,但算法复杂,效率较低,但由于它的非对称加密的特点,可以用它来对AES加密的密钥进行加密保护,这样用户只要保证自己的私钥安全,在保证加密信息安全性的同时,大大简化了加密数据库的密钥管理。

3、2、3数据类型的转换

数据库中的数据是以结构化方式存储的,各种类型的数据有其特定的格式、长度、值域。如果要将加密后的数据仍然存储在原来的表(简称明表)中,则必须保证加密后数据的格式、长度、值域都仍然保持不变。这样的要求对于加密算法来说是难以达到的。于是我们将各种类型的数据以统一的格式加密,并存储在一张表(简称密文表)中,对数据进行查询和更新操作时,再将密文表中所操作的各字段数据根据加密字典“属性信息表”中相应的类型进行转换。

3、2、4密钥的管理

数据库具有高度共享的特点,数据库中数据信息长期存储,反复加密解密,相应地密钥也需要长期存储,宜采用共享密钥机制。数据库加密的主要目的在于防止非法用户通过非法途径获得明文数据,而仍要保证任何合法用户可以通过合法渠道获得解密数据。所以,密钥共享机制一方面要求加密算法的绝对保密和一定的强度,另一方面则要求密钥的共享是一定范围和程度的,不是任何人都可以无条件地获得密钥。

  1. 密钥管理体制应该具备的特性 

首先,密钥难以被窃取。

其次,一定条件下窃取了密钥也是没有用的,密钥的使用范围和时间有一定的限制。

再者,密钥的分配和更换过程对用户透明,用户不一定要亲自掌管密钥。

  1. 密钥管理方式 

层次化的密钥管理方式,用于数据加密的工作密钥需要动态产生:工作密钥由上层的加密密钥进行保护,最上层的密钥称为主密钥,是整个管理系统的核心;多层密钥体制大大加强了密码系统的可靠性,因为用得最多的工作密钥时时更换,而高层密钥的数量有限,使得破译的难度大大提升。 

3、3 数据库加密的局限性

   数据库加密技术在保证安全性的同时,也给数据库系统的可用性带来一些影响

3、3、1系统运行效率受到影响

加密技术带来的主要问题之一是影响效率。为了减少这种影响,一般对加密的范围做一些约束,如不加密索引字段和关系运算的比较字段等。

 

4、总结

为了应用到其他的数据库,可以在界面中设置数据库路径,选择需要加密的数据库,然后设置加密算法加密密匙等策略,对数据库进行加密。随着数据库安全性越来越重要,对数据库的加密技术也层出不穷。所有的技术都是为了保障数据库的安全。保障我们在网络开放的时代,数据的安全性。

 

 

 

 

2021-03-26 20:54:33,596 - Model - INFO - Epoch 1 (1/200): 2021-03-26 20:57:40,380 - Model - INFO - Train Instance Accuracy: 0.571037 2021-03-26 20:58:16,623 - Model - INFO - Test Instance Accuracy: 0.718528, Class Accuracy: 0.627357 2021-03-26 20:58:16,623 - Model - INFO - Best Instance Accuracy: 0.718528, Class Accuracy: 0.627357 2021-03-26 20:58:16,623 - Model - INFO - Save model... 2021-03-26 20:58:16,623 - Model - INFO - Saving at log/classification/pointnet2_msg_normals/checkpoints/best_model.pth 2021-03-26 20:58:16,698 - Model - INFO - Epoch 2 (2/200): 2021-03-26 21:01:26,685 - Model - INFO - Train Instance Accuracy: 0.727947 2021-03-26 21:02:03,642 - Model - INFO - Test Instance Accuracy: 0.790858, Class Accuracy: 0.702316 2021-03-26 21:02:03,642 - Model - INFO - Best Instance Accuracy: 0.790858, Class Accuracy: 0.702316 2021-03-26 21:02:03,642 - Model - INFO - Save model... 2021-03-26 21:02:03,643 - Model - INFO - Saving at log/classification/pointnet2_msg_normals/checkpoints/best_model.pth 2021-03-26 21:02:03,746 - Model - INFO - Epoch 3 (3/200): 2021-03-26 21:05:15,349 - Model - INFO - Train Instance Accuracy: 0.781606 2021-03-26 21:05:51,538 - Model - INFO - Test Instance Accuracy: 0.803641, Class Accuracy: 0.738575 2021-03-26 21:05:51,538 - Model - INFO - Best Instance Accuracy: 0.803641, Class Accuracy: 0.738575 2021-03-26 21:05:51,539 - Model - INFO - Save model... 2021-03-26 21:05:51,539 - Model - INFO - Saving at log/classification/pointnet2_msg_normals/checkpoints/best_model.pth 我有类似于这样的一段txt文件,请你帮我写一段代码来可视化这些训练结果
最新发布
02-06
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值