文档详情

文件型数据库加密技术分析.doc

发布:2018-03-13约4.8千字共8页下载文档
文本预览下载声明
文件型数据库加密技术分析   随着计算机科学技术的发展与普及,特别是计算机在经济、社会、政治各重要领域的广泛应用,计算机安全问题已成为当今信息社会关注的重点。而数据库系统担负着存储和管理信息的任务,集中存放大量数据,为许多终端客户共享。许多数据信息的机密性很强,泄漏或破坏这些信息小则给部门或单位带来损害,大则给国家带来巨额损失,甚至危及国家安全。因而使安全性问题更为突出。如何保证和加强数据库的安全性和机密性,已成为目前迫切需要解决的问题。数据库的安全性主要是指保护数据库以防止非法存取,保证数据库中数据的完整性、一致性以及数据库备份与恢复。数据库安全保密的目标是:非授权用户进不来,拿不走,看不懂。即攻击者很难进入数据库系统,即使进入系统也无法获取有用的信息,即使获取了信息,也无法辨识。      1 文件型数据库常用加密方式   所谓文件型数据库,顾名思义,是基于文件的(file-based)数据库,数据被按照一定格式储存在磁盘里,使用时由应用程序通过相应的驱动程序甚至直接对数据文件进行读取。[1]这种数据库访问起来比较简单、便捷,只要了解其文件格式,任何程序都可以直接读取,这也决定了它的安全性能相对较差。但正因为对它的访问简单、便捷,在当今数据库技术不断革新的时代,文件型数据库仍然占有一席之地。根据文件型数据库的特点,文件型数据库的常用加密方式一般有两种:   1.1 库外加密   基于文件型数据库的特点,库外加密的方式主要是针对文件IO操作或操作系统而言的。因为数据库管理系统与操作系统的接口方式有三种:一是直接利用文件系统的功能;二是利用操作系统的I/O模块;三是直接调用存储管理。所以采用库外加密时,可以先在内存中使用DES、RSA等方法对数据进行加密,然后文件系统把每次加密后的内存数据写入到数据库文件中(注意这里是把整个数据库作为普通的文件看待,而不是按数据关系写入),读入时再逆方向进行解密。这种加密方法相对简单,只要妥善管理密钥就可以了。缺点是对数据库的读写比较麻烦,每次都要进行加解密的工作,对程序的编写和读写数据库的速度都会有影响。   1.2 库内加密   如果从关系型数据库的各个方面出发,很容易形成库内加密的思想。关系型数据库的关键术语有:表、字段、行和数据元素。基本上可以针对这几方面形成一种加密的方法。   (1) 以表为单位:对于文件型数据库来说,一个文件只有一张表,因而对表的加密可以说是对文件的加密了。通过更改文件分配表(FAT)中的说明等手段可以实现对文件的简单加密,但这种加密方式涉及到文件系统底层,误操作容易造成FAT混乱,而且与文件系统格式有关,因而通常不宜采用。   (2) 以记录或字段(即二维表的行或列)为单位加密:通常情况下,我们访问数据库时都是以二维表方式进行的,二维表的每一行就是数据库的一条记录,二维表的每一列就是数据库的一个字段。如果以记录为单位进行加密,那么每读写一条记录只需进行一次加解密的操作,对于不需要访问到的记录,完全不需要进行任何操作,所以使用起来效率会高一些。但是由于每一个记录都必须有一个密钥与之匹配,因此产生和管理记录密钥比较复杂。以字段为单位的加密分析与以记录为单位的加密情况相似。   (3) 以数据元素为单位加密:由于数据元素是数据库库内加密的最小单位,因而这种加密方式是最彻底的但也是效率最低的。每个被加密的元素会有一个相应的密钥,所以密钥的产生和管理比记录加密方式还要复杂。      2 常用的加密算法   加密算法是数据加密的核心。一个好的加密算法产生的密文应该频率平衡,随机无重码,周期很长而又不可能产生重复现象。窃密者很难通过对密文频率或者重码等特征的分析获得成功。同时,算法必须适应数据库系统的特性,加/解密,尤其是解密响应迅速。常用的加密算法有DES 加密算法和RSA 加密算法两种。   2.1 DES 加密算法   DES算法是由美国IBM公司在1970年以后发展起来的,1977年l月15日被美国国家标准局颁布为数据加密标准(Data Encryption Standard)。   (1) 算法的数学描述   DES中,明文m是0和1组成的长度为64比特的符号串,密钥k也是64比特的0、1符号串。设   m = m lm 2… m 6 4   k= k 1k 2… k64   mi ,k i= 0 或 1 , i=1,2 ,…,64   则加密过程为:   DES ( m ) = IP -1#8226;T16#8226;T15#8226;… #8226;T2#8226;T1#8226;IP (m)   解密过程为:   DES- 1= IP#8226;T1#8226;T2#8226;… #8226;T15#8226
显示全部
相似文档