数据加密技术范文

时间:2023-02-25 18:05:20

数据加密技术

数据加密技术范文第1篇

关键词:数据加密;加密算法;置换表;公钥;多步加密算法

中图分类号:TP309.7文献标识码:A文章编号:1009-3044(2009)33-9290-02

现代社会,信息的地位越来越重要,信息可以给我们带来财富,但是同时由于信息的特殊性我们又不得不面对信息丢失或者泄露越来越严重的现实。因此我们需要一种措施来保护我们的信息,防止被一些怀有不良用心的人所看到或者破坏。在竞争激烈的大公司中,我们常常防范间谍对情报的窃取。因此,在客观上就需要一种强有力的安全措施来保护机密数据不被窃取或篡改。数据加密与解密从宏观上讲是非常简单的,很容易理解。加密与解密的一些方法是非常直接的,很容易掌握,可以很方便的对机密数据进行加密和解密。

1 数据加密方法

数据加密交换又称密码学,它是一门历史悠久的技术,目前仍是计算机系统对信息进行保护的一种最可靠的办法。它利用密码技术对信息进行交换,实现信息隐蔽,从而保护信息的安全。考虑到用户可能试图旁路系统的情况,如物理地取走数据库,在通讯线路上窃听。对这样的威胁最有效的解决方法就是数据加密,即以加密格式存储和传输敏感数据。

数据加密的术语有:明文,即原始的或未加密的数据。通过加密算法对其进行加密,加密算法的输入信息为明文和密钥;密文,明文加密后的格式,是加密算法的输出信息。加密算法是公开的,而密钥则是不公开的。密文,不应为无密钥的用户理解,用于数据的存储以及传输。

在计算技术的传统上,我们往往使用几种方法加密数据流,这些方法实现容易,但是破译困难(当同时有原文和密文时,破译加密算法是可能的,但并不会轻松)。我们都认为最好的加密算法对系统性能几乎没有影响,甚至可以带来其他优点。在所有的加密算法中最简单的一种就是“置换表”算法,这种算法也能很好达到加密的需要。“置换表”算法的每一个数据段对应着“置换表”中的一个偏移量,偏移量所对应的值就输出成为加密后的文件。这个加密方法最早出现在凯撒的军队中,当然现在我们将它已经改进了。这样的加解密程序都需要 “置换表”。

这种简单的加密算速度很快,但是一旦“置换表”对于这个加密极其重要,一旦对方获知就满盘皆输。同时为了避免被人强力破解(这很有可能),对这种“置换表”方式的一个改进就是使用2个或者更多的“置换表”,这些表都是基于数据流中字节的位置的,或者基于数据流本身。这种方法一但大量使用将使得破译几乎无法实现,除非黑客知道正确的表,否则仅仅凭借暴力破解,黑客必须正确的做几次变换,这难度之大无法想象。

“变换数据位置” ,与使用“置换表”相类似,也在计算机加密中使用。但是,它主要是将输入的文字放入BUFFER中,以BUFFER的特点来改变字母的顺序,这几乎是无法破解的,因为同样的字母,其排列方式的变换将产生无限的可能。当然,这操作需要更多的执行时间。

还有一种只有计算机能够做的更好的算法,就是字/字节循环移位和xor操作。我们可以将数据流内的一个字或字节在一个做循环移位,使用左移或右移,就可以迅速的产生一个加密的数据流。

这种方法是很难破译的!一旦加入xor操作即按位做异或操作,可以使破译密码困难加倍。而这其中还可以使用伪随机的方法。例如一旦使用了fibbonaci数列或者相似的数列,我们可以对数列所产生的数做各种运算,然后循环移位数列运算的结果的次数。而这一切的目的就是将使破译次密码变成不可能完成的任务!这种伪随机的方式所产生的密码对编码和解密程序来讲却是非常容易的。我们只需要花很少的时间就可以实现这样的功能。

我们会在信息里加上一些CRC类似的代码以辨别数据是否完好,对于每一个数据块,它使用位循环移位和xor操作来产生一个16位或32位的校验和,一旦我们丢失一位或两个位的错误,我们一定会在他的帮助下发现的。这种方式一直应用于文件的传输,但是,基于标准crc算法的一种修改算法对于发现加密数据块中的错误和文件是否被病毒感染是很有效的。

2 基于公钥的加密算法

一个好的加密算法的重要特点之一是基于公钥的加密能力:

基于公钥的加密算法可以指定一个密码或密钥,并用它来加密明文。这又分为两种方式:对称密钥算法和非对称密钥算法。所谓对称密钥算法就是加密解密都使用相同的密钥,非对称密钥算法就是加密解密使用不同的密钥。

加密密钥与解密密钥,分别被称为公钥和私钥,两者大不相同。从理论上讲,几乎所有算法都是可逆的,例如,对于一个输入‘1’执行操作后,得到结果‘2’,那基于结果‘2’,做一个相对应的操作,一定能导出‘1’。很多时候,对于一种操作,我们可以得到一个确定值,对于没有定义的操作,在基于加密算法的情况下,可以成功地防止把公钥转化为私钥。因此,破译非对称加密算法,找到那个唯一的密钥,是关键,而唯一获得的方法只能是反复试验,这将是大量时间的投入。

rsa加密算法使用了两个非常大的素数来产生公钥和私钥。由于这个运算巨大的计算量,即使是从一个公钥进行破解,理论上虽然可以得到私钥,但实质上是不可行的。而很多加密算法本身速度受到限制,用rsa算法加密大量的数据不太可行。这就使得一些实际使用的加密算法都基于PGP。PGP算法(以及大多数基于rsa算法的加密方法)使用公钥来加密一个对称加密算法的密钥,之后以一个相对较快的对称加密算法加密数据。这个对称算法的密钥由于是随机产生,因此,得到这个密钥的唯一方法就是使用私钥来解密。

3 一个崭新的多步加密算法

现在出现了一种新的加密算法,被称为多步加密算法,这个算法中我们可以通过使用一系列的数字来产生一个伪随机的数字序列,这个数字序列是高度随机化的,是可重复。一次使用中包含256个表项,使用随机数序列来产生密码转表:

全部过程大体是这样的,我们将256个随机数放于矩阵中,排序,以此方式(但是注意,一定要记住最初的位置),依托起始位置产生一个随意排序表,表中数字范围是0到255。首先,产生了一个具体的256字节的表。让这个随机数产生器接着来产生这个表中的其余的数,以实现每个表独特性。下一步,使用“shotgun technique”技术来产生解码表。基本上,如果 a映射到b,那么b一定可以映射到a,所以b[a[n]] = n(n是一个在0到255之间的数)。使用一个循环赋值,使一个256字节的解码表它可以对应我们上一步产生的256字节的加密表。

在这个方法中产生的表绝对是一个随机表,因为产生256个字节的随机数使用了二次伪随机,这样就使用了两个额外的16位的密码.。而这种情况下实质上是已经有了两张转换表,我们可以将加密解密工作看作如下。前一个字节密文是这个256字节的表的索引,还可以这样看,为了提高加密效果,可以使用多余8位的值,或者校验和以及crc算法来产生索引字节。

4 结论

随着我国软件事业的发展,计算机普及的提高,现在我们不得不面对这样一个复杂而又棘手的问题,那就是我们的数据安全性保障问题。数据安全性在现在而言是很多公司生存的基础,而同时它也是一些道德缺乏者的目标,一旦数据被毁、篡改或者是丢失,将给公司照成巨大伤害,典型的例子就是911中,总部设置在世贸大厦的公司,一半丢失了数据的公司在两年内倒闭了。由此可见关键业务数据成了企业生存的命脉和宝贵的资源。数据安全性问题不得不重视起来。现在我们把重点放在了如何增强企业软件系统的安全性、保密性、真实性、完整性。

数据加密技术是在数据的存储和传送环节中,最基本的安全技术,被认为信息安全的核心。它通过各种各样的数学计算方法将现实数据变换成为密文,在此基础上才对数据进行存储或传输,这就可以保证,即使信息在存储或者传输过程为非授权人员所获得,也可不为其认知。该方法的保密性直接取决于所采用的密码算法和密钥复杂度以及长度。

参考文献:

[1] 余祥宣,刘伟.数据库的密文索引机制[J].华中科技大学学报:自然科学版,2002(3).

[2] 王晓峰,王尚平. 秘密同态技术在数据库安全中的应用[J]. 计算机工程与应用, 2003(14).

[3] 向广利,陈莘萌,马捷,等. 实数范围上的同态加密机制[J]. 计算机工程与应用, 2005(20).

[4] 李新. 密文数据库系统的设计[J]. 计算机工程与应用, 2005(32).

[5] 马勺布,胡磊,徐德启. 一种动态安全的密文数据库检索方法[J]. 计算机工程, 2005(6).

[6] 戴一奇,尚杰,苏中民. 密文数据库的快速检索[J]. 清华大学学报:自然科学版, 1997(4).

[7] 李亚秀,刘国华. 关系数据库中字符数据的保序加密方法[J]. 无线电工程, 2006(4).

[8] 蔡钢生. 在Excel中利用VB跨表汇总数据[J]. 南方钢铁, 1999(2).

[9] 刘奇琳, 张敏. Excel在实验数据处理中的应用[J]. 南平师专学报, 2004(2).

[10] 肖春连. AutoCAD与Excel的互相通信[J]. 有色冶金设计与研究, 2002(4).

[11] 卢智, 朱俊玲. Excel功能在食品工业中的应用[J]. 山西食品工业, 2003(1).

[12] 孙庆锋, 刘永恒, 赵恒延. 化验室工作中使用EXCEL的一些经验[J]. 水泥工程, 2004(5).

[13] 王越, 迟有高. EXCEL数据库在分析化学实验室管理中的运用[J]. 江苏冶金, 1999(6).

[14] 吴瑞芝. Excel 2000应用技巧数则[J]. 内蒙古石油化工, 2003(1).

[15] 姚小玲. Excel在工伤事故统计中的应用[J]. 水利电力劳动保护, 1998(2).

[16] 朱伟. EXCEL在劳资工作中的应用技巧[J]. 苏盐科技, 2001(1).

数据加密技术范文第2篇

一:数据加密方法

在传统上,我们有几种方法来加密数据流。所有这些方法都可以用软件很容易的实现,但是当我们只知道密文的时候,是不容易破译这些加密算法的(当同时有原文和密文时,破译加密算法虽然也不是很容易,但已经是可能的了)。最好的加密算法对系统性能几乎没有影响,并且还可以带来其他内在的优点。例如,大家都知道的pkzip,它既压缩数据又加密数据。又如,dbms的一些软件包总是包含一些加密方法以使复制文件这一功能对一些敏感数据是无效的,或者需要用户的密码。所有这些加密算法都要有高效的加密和解密能力。

幸运的是,在所有的加密算法中最简单的一种就是“置换表”算法,这种算法也能很好达到加密的需要。每一个数据段(总是一个字节)对应着“置换表”中的一个偏移量,偏移量所对应的值就输出成为加密后的文件。加密程序和解密程序都需要一个这样的“置换表”。事实上,80x86 cpu系列就有一个指令‘xlat’在硬件级来完成这样的工作。这种加密算法比较简单,加密解密速度都很快,但是一旦这个“置换表”被对方获得,那这个加密方案就完全被识破了。更进一步讲,这种加密算法对于黑客破译来讲是相当直接的,只要找到一个“置换表”就可以了。这种方法在计算机出现之前就已经被广泛的使用。

对这种“置换表”方式的一个改进就是使用2个或者更多的“置换表”,这些表都是基于数据流中字节的位置的,或者基于数据流本身。这时,破译变的更加困难,因为黑客必须正确的做几次变换。通过使用更多的“置换表”,并且按伪随机的方式使用每个表,这种改进的加密方法已经变的很难破译。比如,我们可以对所有的偶数位置的数据使用a表,对所有的奇数位置使用b表,即使黑客获得了明文和密文,他想破译这个加密方案也是非常困难的,除非黑客确切的知道用了两张表。

与使用“置换表”相类似,“变换数据位置”也在计算机加密中使用。但是,这需要更多的执行时间。从输入中读入明文放到一个buffer中,再在buffer中对他们重排序,然后按这个顺序再输出。解密程序按相反的顺序还原数据。这种方法总是和一些别的加密算法混合使用,这就使得破译变的特别的困难,几乎有些不可能了。例如,有这样一个词,变换起字母的顺序,slient 可以变为listen,但所有的字母都没有变化,没有增加也没有减少,但是字母之间的顺序已经变化了。

但是,还有一种更好的加密算法,只有计算机可以做,就是字/字节循环移位和xor操作。如果我们把一个字或字节在一个数据流内做循环移位,使用多个或变化的方向(左移或右移),就可以迅速的产生一个加密的数据流。这种方法是很好的,破译它就更加困难!而且,更进一步的是,如果再使用xor操作,按位做异或操作,就就使破译密码更加困难了。如果再使用伪随机的方法,这涉及到要产生一系列的数字,我们可以使用fibbonaci数列。对数列所产生的数做模运算(例如模3),得到一个结果,然后循环移位这个结果的次数,将使破译次密码变的几乎不可能!但是,使用fibbonaci数列这种伪随机的方式所产生的密码对我们的解密程序来讲是非常容易的。

在一些情况下,我们想能够知道数据是否已经被篡改了或被破坏了,这时就需要产生一些校验码,并且把这些校验码插入到数据流中。这样做对数据的防伪与程序本身都是有好处的。但是感染计算机程序的病毒才不会在意这些数据或程序是否加过密,是否有数字签名。所以,加密程序在每次load到内存要开始执行时,都要检查一下本身是否被病毒感染,对与需要加、解密的文件都要做这种检查!很自然,这样一种方法体制应该保密的,因为病毒程序的编写者将会利用这些来破坏别人的程序或数据。因此,在一些反病毒或杀病毒软件中一定要使用加密技术。

循环冗余校验是一种典型的校验数据的方法。对于每一个数据块,它使用位循环移位和xor操作来产生一个16位或32位的校验和 ,这使得丢失一位或两个位的错误一定会导致校验和出错。这种方式很久以来就应用于文件的传输,例如 xmodem-crc。 这是方法已经成为标准,而且有详细的文档。但是,基于标准crc算法的一种修改算法对于发现加密数据块中的错误和文件是否被病毒感染是很有效的。

二.基于公钥的加密算法

一个好的加密算法的重要特点之一是具有这种能力:可以指定一个密码或密钥,并用它来加密明文,不同的密码或密钥产生不同的密文。这又分为两种方式:对称密钥算法和非对称密钥算法。所谓对称密钥算法就是加密解密都使用相同的密钥,非对称密钥算法就是加密解密使用不同的密钥。非常著名的pgp公钥加密以及rsa加密方法都是非对称加密算法。加密密钥,即公钥,与解密密钥,即私钥,是非常的不同的。从数学理论上讲,几乎没有真正不可逆的算法存在。例如,对于一个输入‘a’执行一个操作得到结果‘b’,那么我们可以基于‘b’,做一个相对应的操作,导出输入‘a’。在一些情况下,对于每一种操作,我们可以得到一个确定的值,或者该操作没有定义(比如,除数为0)。对于一个没有定义的操作来讲,基于加密算法,可以成功地防止把一个公钥变换成为私钥。因此,要想破译非对称加密算法,找到那个唯一的密钥,唯一的方法只能是反复的试验,而这需要大量的处理时间。

rsa加密算法使用了两个非常大的素数来产生公钥和私钥。即使从一个公钥中通过因数分解可以得到私钥,但这个运算所包含的计算量是非常巨大的,以至于在现实上是不可行的。加密算法本身也是很慢的,这使得使用rsa算法加密大量的数据变的有些不可行。这就使得一些现实中加密算法都基于rsa加密算法。pgp算法(以及大多数基于rsa算法的加密方法)使用公钥来加密一个对称加密算法的密钥,然后再利用一个快速的对称加密算法来加密数据。这个对称算法的密钥是随机产生的,是保密的,因此,得到这个密钥的唯一方法就是使用私钥来解密。

我们举一个例子:假定现在要加密一些数据使用密钥‘12345’。利用rsa公钥,使用rsa算法加密这个密钥‘12345’,并把它放在要加密的数据的前面(可能后面跟着一个分割符或文件长度,以区分数据和密钥),然后,使用对称加密算法加密正文,使用的密钥就是‘12345’。当对方收到时,解密程序找到加密过的密钥,并利用rsa私钥解密出来,然后再确定出数据的开始位置,利用密钥‘12345’来解密数据。这样就使得一个可靠的经过高效加密的数据安全地传输和解密。

一些简单的基于rsa算法的加密算法可在下面的站点找到:

ftp://ftp.funet.fi/pub/crypt/cryptography/asymmetric/rsa

三.一个崭新的多步加密算法

现在又出现了一种新的加密算法,据说是几乎不可能被破译的。这个算法在1998年6月1日才正式公布的。下面详细的介绍这个算法:使用一系列的数字(比如说128位密钥),来产生一个可重复的但高度随机化的伪随机的数字的序列。一次使用256个表项,使用随机数序列来产生密码转表,如下所示:

把256个随机数放在一个距阵中,然后对他们进行排序,使用这样一种方式(我们要记住最初的位置)使用最初的位置来产生一个表,随意排序的表,表中的数字在0到255之间。如果不是很明白如何来做,就可以不管它。但是,下面也提供了一些原码(在下面)是我们明白是如何来做的。现在,产生了一个具体的256字节的表。让这个随机数产生器接着来产生这个表中的其余的数,以至于每个表是不同的。下一步,使用"shotgun technique"技术来产生解码表。基本上说,如果 a映射到b,那么b一定可以映射到a,所以b[a[n]] = n.(n是一个在0到255之间的数)。在一个循环中赋值,使用一个256字节的解码表它对应于我们刚才在上一步产生的256字节的加密表。

使用这个方法,已经可以产生这样的一个表,表的顺序是随机,所以产生这256个字节的随机数使用的是二次伪随机,使用了两个额外的16位的密码.现在,已经有了两张转换表,基本的加密解密是如下这样工作的。前一个字节密文是这个256字节的表的索引。或者,为了提高加密效果,可以使用多余8位的值,甚至使用校验和或者crc算法来产生索引字节。假定这个表是256*256的数组,将会是下面的样子:

crypto1 = a[crypto0][value]

变量'crypto1'是加密后的数据,'crypto0'是前一个加密数据(或着是前面几个加密数据的一个函数值)。很自然的,第一个数据需要一个“种子”,这个“种子” 是我们必须记住的。如果使用256*256的表,这样做将会增加密文的长度。或者,可以使用你产生出随机数序列所用的密码,也可能是它的crc校验和。顺便提及的是曾作过这样一个测试: 使用16个字节来产生表的索引,以128位的密钥作为这16个字节的初始的"种子"。然后,在产生出这些随机数的表之后,就可以用来加密数据,速度达到每秒钟100k个字节。一定要保证在加密与解密时都使用加密的值作为表的索引,而且这两次一定要匹配。

加密时所产生的伪随机序列是很随意的,可以设计成想要的任何序列。没有关于这个随机序列的详细的信息,解密密文是不现实的。例如:一些ascii码的序列,如“eeeeeeee"可能被转化成一些随机的没有任何意义的乱码,每一个字节都依赖于其前一个字节的密文,而不是实际的值。对于任一个单个的字符的这种变换来说,隐藏了加密数据的有效的真正的长度。

如果确实不理解如何来产生一个随机数序列,就考虑fibbonacci数列,使用2个双字(64位)的数作为产生随机数的种子,再加上第三个双字来做xor操作。 这个算法产生了一系列的随机数。算法如下:

unsigned long dw1, dw2, dw3, dwmask;

int i1;

unsigned long arandom[256];

dw1 = {seed #1};

dw2 = {seed #2};

dwmask = {seed #3};

// this gives you 3 32-bit "seeds", or 96 bits total

for(i1=0; i1 < 256; i1++)

{

dw3 = (dw1 + dw2) ^ dwmask;

arandom[i1] = dw3;

dw1 = dw2;

dw2 = dw3;

}

如果想产生一系列的随机数字,比如说,在0和列表中所有的随机数之间的一些数,就可以使用下面的方法:

int __cdecl mysortproc(void *p1, void *p2)

{

unsigned long **pp1 = (unsigned long **)p1;

unsigned long **pp2 = (unsigned long **)p2;

if(**pp1 < **pp2)

return(-1);

else if(**pp1 > *pp2)

return(1);

return(0);

}

...

int i1;

unsigned long *aprandom[256];

unsigned long arandom[256]; // same array as before, in this case

int aresult[256]; // results go here

for(i1=0; i1 < 256; i1++)

{

aprandom[i1] = arandom + i1;

}

// now sort it

qsort(aprandom, 256, sizeof(*aprandom), mysortproc);

// final step - offsets for pointers are placed into output array

for(i1=0; i1 < 256; i1++)

{

aresult[i1] = (int)(aprandom[i1] - arandom);

}

...

变量'aresult'中的值应该是一个排过序的唯一的一系列的整数的数组,整数的值的范围均在0到255之间。这样一个数组是非常有用的,例如:对一个字节对字节的转换表,就可以很容易并且非常可靠的来产生一个短的密钥(经常作为一些随机数的种子)。这样一个表还有其他的用处,比如说:来产生一个随机的字符,计算机游戏中一个物体的随机的位置等等。上面的例子就其本身而言并没有构成一个加密算法,只是加密算法一个组成部分。

作为一个测试,开发了一个应用程序来测试上面所描述的加密算法。程序本身都经过了几次的优化和修改,来提高随机数的真正的随机性和防止会产生一些短的可重复的用于加密的随机数。用这个程序来加密一个文件,破解这个文件可能会需要非常巨大的时间以至于在现实上是不可能的。

四.结论:

由于在现实生活中,我们要确保一些敏感的数据只能被有相应权限的人看到,要确保信息在传输的过程中不会被篡改,截取,这就需要很多的安全系统大量的应用于政府、大公司以及个人系统。数据加密是肯定可以被破解的,但我们所想要的是一个特定时期的安全,也就是说,密文的破解应该是足够的困难,在现实上是不可能的,尤其是短时间内。

参考文献:

1 . pgp! http

:///cyber knights(new link) /cyberkt/

(old link: /~merlin/knights/ )

2 . crypto chamber www.jyu.fi/~paasivir/crypt/

3 . ssh cryptograph a-z (includes info on ssl and https) www.ssh.fi/tech/crypto/

4 . funet' cryptology ftp (yet another finland resource) ftp://ftp.funet.fi/pub/crypt/

a great enigma article, how the code was broken by polish scientists

/nbrass/1enigma.htm

5 . ftp site in uk ftp://sable.ox.ac.uk/pub/crypto/

6 . australian ftp site ftp://ftp.psy.uq.oz.au/pub/

7 . replay associates ftp archive ftp://utopia.hacktic.nl/pub/replay/pub/crypto/

8 . rsa data security (why not include them too!) /

netscape's whitepaper on ssl

数据加密技术范文第3篇

[关键字] 信息 数据加密 对称密钥加密技术 非对称密钥加密技术

随着全球经济一体化的到来,信息技术的快速发展和信息交换的大量增加给整个社会带来了新的驱动力和创新意识。信息技术的高速度发展,信息传输的安全日益引起人们的关注。世界各个国家分别从法律上、管理上加强了对数据的安全保护,而从技术上采取措施才是有效手段,技术上的措施分别可以从软件和硬件两方面入手。随着对信息数据安全的要求的提高,数据加密技术和物理防范技术也在不断的发展。数据加密是防止数据在数据存储和和传输中失密的有效手段。信息数据加密技术是利用数学或物理手段,对电子信息在传输过程中和存储体内进行保护,以防止泄漏的技术。信息数据加密与解密从宏观上讲是非常简单的,很容易掌握,可以很方便的对机密数据进行加密和解密。从而实现对数据的安全保障。

1.信息数据加密技术的基本概念

信息数据加密就是通过信息的变换或编码,把原本一个较大范围的人(或者机器)都能够读懂、理解和识别的信息(这些信息可以是语音、文字、图像和符号等等)通过一定的方法(算法),使之成为难以读懂的乱码型的信息,从而达到保障信息安全,使其不被非法盗用或被非相关人员越权阅读的目的。在加密过程中原始信息被称为“明文”,明文经转换加密后得到的形式就是“密文”。那么由“明文”变成“密文”的过程称为“加密”,而把密文转变为明文的过程称为“解密”。

2. 信息数据加密技术分类

信息数据加密技术一般来说可以分为两种,对称密钥加密技术及非对称密钥加密技术。

2.1 对称密钥加密技术

对称密钥加密技术,又称专用密钥加密技术或单密钥加密技术。其加密和解密时使用同一个密钥,即同一个算法。对称密钥是一种比较传统的加密方式,是最简单方式。在进行对称密钥加密时,通信双方需要交换彼此密钥,当需要给对方发送信息数据时,用自己的加密密钥进行加密,而在需要接收方信息数据的时候,收到后用对方所给的密钥进行解密。在对称密钥中,密钥的管理极为重要,一旦密钥丢失,密文将公开于世。这种加密方式在与多方通信时变得很复杂,因为需要保存很多密钥,而且密钥本身的安全就是一个必须面对的大问题。

对称密钥加密算法主要包括:DES、3DES、IDEA、FEAL、BLOWFISH等。

DES 算法的数据分组长度为64 位,初始置换函数接受长度为64位的明文输入,密文分组长度也是64 位,末置换函数输出64位的密文;使用的密钥为64 位,有效密钥长度为56 位,有8 位用于奇偶校验。DES的解密算法与加密算法完全相同,但密钥的顺序正好相反。所以DES是一种对二元数据进行加密的算法。DES加密过程是:对给定的64 位比特的明文通过初始置换函数进行重新排列,产生一个输出;按照规则迭代,置换后的输出数据的位数要比迭代前输入的位数少;进行逆置换,得到密文。

DES 算法还是比别的加密算法具有更高的安全性,因为DES算法具有相当高的复杂性,特别是在一些保密性级别要求高的情况下使用三重DES 或3DES 系统较可靠。DES算法由于其便于掌握,经济有效,使其应用范围更为广泛。目前除了用穷举搜索法可以对DES 算法进行有效地攻击之外, 还没有发现其它有效的攻击办法。

IDEA算法1990年由瑞士联邦技术协会的Xuejia Lai和James Massey开发的。经历了大量的详细审查,对密码分析具有很强的抵抗能力,在多种商业产品中被使用。IDEA以64位大小的数据块加密的明文块进行分组,密匙长度为128位,它基于“相异代数群上的混合运算”设计思想算法用硬件和软件实现都很容易且比DES在实现上快的多。

IDEA算法输入的64位数据分组一般被分成4个16位子分组:A1,A2,A3和A4。这4个子分组成为算法输入的第一轮数据,总共有8轮。在每一轮中,这4个子分组相互相异或,相加,相乘,且与6个16位子密钥相异或,相加,相乘。在轮与轮间,第二和第三个子分组交换。最后在输出变换中4个子分组与4个子密钥进行运算。

FEAL算法不适用于较小的系统,它的提出是着眼于当时的DES只用硬件去实现,FEAL算法是一套类似美国DES的分组加密算法。但FEAL在每一轮的安全强度都比DES高,是比较适合通过软件来实现的。FEAL没有使用置换函数来混淆加密或解密过程中的数据。FEAL使用了异或(XOR)、旋转(Rotation)、加法与模(Modulus)运算,FEAL中子密钥的生成使用了8轮迭代循环,每轮循环产生2个16bit的子密钥,共产生16个子密钥运用于加密算法中。

2.2 非对称密钥加密技术

非对称密钥加密技术又称公开密钥加密,即非对称加密算法需要两个密钥,公开密钥和私有密钥。有一把公用的加密密钥,有多把解密密钥,加密和解密时使用不同的密钥,即不同的算法,虽然两者之间存在一定的关系,但不可能轻易地从一个推导出另一个。使用私有密钥对数据信息进行加密,必须使用对应的公开密钥才能解密,而 公开密钥对数据信息进行加密,只有对应的私有密钥才能解密。在非对称密钥加密技术中公开密钥和私有密钥都是一组长度很大、数字上具有相关性的素数。其中的一个密钥不可能翻译出信息数据,只有使用另一个密钥才能解密,每个用户只能得到唯一的一对密钥,一个是公开密钥,一个是私有密钥,公开密钥保存在公共区域,可在用户中传递,而私有密钥则必须放在安全的地方。

非对称密钥加密技术的典型算法是RSA算法。RSA算法是世界上第一个既能用于数据加密也能用于数字签名的非对称性加密算法,RSA算法是1977年由Ron Rivest、Adi Shamirh和LenAdleman在(美国麻省理工学院)开发的。RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准。

RSA算法的安全性依赖于大数分解,但现在还没有证明破解RSA就一定需要作大数分解。所以是否等同于大数分解一直没有理论证明的支持。由于RSA算法进行的都是大数计算,所以无论是在软件还是硬件方面实现相对于DES算法RSA算法最快的情况也会慢上好几倍。速度一直是RSA算法的缺陷。

3.总结

随着计算机网络的飞速发展,在实现资源共享、信息海量的同时,信息安全达到了前所未有的需要程度,信息加密技术也凸显了其必不可少的地位,同时也加密技术带来了前所未有的发展需求,加密技术发展空间无限。

参考文献:

[1] IDEA算法 中国信息安全组织 2004-07-17.

[2] baike.省略/view/1364549.htm.

[3]浅析信息加密技术 张岭松 《科技信息》 2010年33期.

作者简介:

数据加密技术范文第4篇

关键词:数据库 加密 安全

中图分类号:TP309.7 文献标识码:A 文章编号:1007-9416(2016)05-0000-00

1 数据库加密技术的要求

鉴于数据库所存储的数据具有一定的复杂性、执行查询操作的频繁性、数据存储的长期性等特征,对于数据库的加解密算法及对应的密钥管理机制要具备以下几点:

(1)数据库加密系统要充分保证数据的安全性,这点体现在加密算法对于数据的保密性及完整性的要求,它有效的防止了对未授权数据的访问和修改。(2)应用数据库时频繁的查询操作,需要具备高强度的解密效率,避免造成数据库系统性能的大幅度下降。(3)明文与密文的长度要尽可能的做到相等或相当,相对于数据库管理系统而言数据库结构的变动差异不可过大。(4)数据存储时间久且密钥又较为复杂,这需要更为坚固、灵活且安全的密钥管理机制。

2 数据库加密的方法

(1)静态加密技术。静态加密是指实施加密时待加密文件已存在但未使用,通过密码、密钥证书或数字签名的方式进行加密,实施加密后使用时必须先通过解密取得明文方可使用的加密方法。此种方式一般应用于应用系统或软件加密当中。(2)动态加密技术。动态加密是指动态的跟踪数据流,对相关的数据自动进行时时加解密操作,无需人工参与亦不会对用户有任何影响,有权限的用户在使用已加密文件时,无需先取得明文解密即可直接使用。所以对于有权限的用户来讲,动态加密操作是透明的,访问未加密或加密文件基本感觉不到区别。反之,对于没有访问权限的用户来讲,即便通过非法手段取得了加密文件,也无法识别,只是得到乱码而已,更谈不到获取有效信息了。近年来,动态加密技术因其便捷的使用方法得到广泛的应用。(3)文件级动态加解密技术。在文件系统层当中,既能获取到文件自身的详细信息,又能获取到用户信息及访问此种文件的进程等各类相关信息,因文件系统层其特有的属性可以开发出功能极其强大的文档安全产品。在动态加解密的产品中,其部分文件系统自身就支持文件的动态加解密,而在实际操作当中,加密文件一般以分区或目录为单位,对于用户的个性化需求是难以满足的,即使存在诸多不足之处,文件级动态加解密技术的安全性依然可以与磁盘级加密技术相匹敌。但鉴于文件级动态加解密技术对于用户个性化需求的不足,也为第三方提供了动态加解密安全产品提供了足够的发展空间。

在不同的操作系统中要研发的文件级动态加解密安全产品也各不相同,有多种方法可供选择,可利用过滤驱动或Hook等方法将其转化为文件系统的一个组成部分,即将嵌入到文件系统中。从某个角度上讲,可以将第三方动态加解密产品近似于文件系统的一种功能扩展,这种功能扩展是通过模块化的形式根据客户需求进行挂接或载操作来完成的,而这是作为文件系统内嵌的动态加密系统难以实现的。

3 数据库加密技术对数据库造成的影响

所谓数据加密即是对明文进行一系列较为复杂的加密操作,使明文和密文、密文和密钥间的内在联系不被发现,从而使加密过的数据经得住数据库管理系统和操作系统的攻击。数据库管理系统的功能一般情况下是较为完备的,但针对数据库中以密文形式存在的敏感性数据是无法应用其部分功能的,且当数据库的数据加密后,数据库管理系统部分功能将无法直接应用。

(1)加密字段不能实现索引功能。在数据库当中为了查询和检索的快速及便捷,常常要建立一些索引。而索引要发挥其作用必须使其建立和应用在明文的状态下,且某些数据库管理系统中所建立的索引也必须在明文的状态下建立、维护和使用,否则索引将失去作用。(2)加密功能不能用于表间的连接码字段。数据模型构建后,数据库表之间的相关性是通过局部编码进行关联的,如若对这些局部编码进行加密操作,则将无法进行数据表之间的连接运算。(3)加密后无法进行数据约束的定义。数据库管理系统通常会定义数据约束,如若此类数据一旦进行了加密操作,数据库管理系统将无法实现数据约束功能,且值域也无法进行定义。(4)密文数据不能应用于数据库的排序、分组和分类功能。SQL的Select语句中分组、排序、分类等操作分别通过Group、Orderby、Having子句来实现,如若将此类子句的操作对象设为加密数据,将无满足用户的需求,因为即使明文数据进行了解密操作也失去了原有语句的分组、排序、分类等作用。(5)加密数据无法被SQL语言中的内部函数所应用。(6)加密数据无法直接应用于数据库管理系统为各类数据所提供的某些内部函数上。(7)加密数据将使数据库管理系统的某些应用开发工具使用受限。数据库管理系统的某些应用开发工具不能对加密数据进行直接操作,因此在对其应用时会受限。由此可见,对数据库进行加密操作会影响到部分数据库管理系统的功能,好比阅读语句中的函数、排序、分组等,如想应用此类功能亦可通过组件技术来实现,如利用SQL的解释器。所以当数据库加密后致使数据库管理系统部分功能无法直接使用时,可以通过在数据库管理系统的安全管理系统中增加组件来实现这部分功能的应用。

4 结语

随着时代的发展,数据库管理系统以其自身优势在社会各界得到广泛应用,其使用率较高对数据的安全性要求就越高。目前,人们在数据库安全及加密技术的研究方面只做了部分的尝试性工作,还有诸多重要性细节问题有待于进一步深入解决。

参考文献

[1] 张敏,等.数据库安全[M].北京:科学出版社,2005.

数据加密技术范文第5篇

关键词:加密;解密;算法;多步加密

中图分类号:TP309文献标识码:A文章编号:1009-3044(2007)15-30696-01

On the Data Encryption Technology

YANG Jin-hua

(Xi'an Railway Vocational and Technical College of Computer Studies,Xi'an 710014,China)

Abstract:This paper introduced a data encryption method and the general public key encryption algorithm based on the method, introduced a multi-step encryption algorithm.

Key words:encryption, decryption, algorithm, multi-step encryption

1 引言

随着网络技术的发展,网络安全也就成为当今网络社会关注的焦点,病毒、黑客程序、邮件炸弹、远程侦听等这一切都无不让人胆战心惊,谈网色变,无所适从。 现代电脑的数据加密技术就是适应了网络安全的需要而应运产生的,它为我们进行一般的电子商务活动提供了安全保障。

2 常见的数据加密算法

最好的加密算法不仅对系统性能几乎没有影响,并且还可以产生其他内在的优点。例如,我们在压缩、解压文件时用的pkzip软件,它既压缩数据又加密数据。又如,数据库管理系统的一些软件包也包含一些加密方法以使复制文件这一功能对一些敏感数据是无效的,需要用户的密码方可复制。所有这些加密算法都要有高效的加密和解密能力。

在所有的加密算法中最简单的一种就是“转换表”算法。每一个数据段(总是一个字节)对应着“转换表”中的一个偏移量,偏移量所对应的值就是加密后输出的数据。加密程序和解密程序都需要一个这样的“置换表”。这种加密算法比较简单,加密解密速度都很快,但是如果这个“转换表”一旦被对方获得,那么这个加密方案就完全被识破了。对这种“转换表”方式的一个改进,就是使用两个或者更多的“转换表”,这些表都是基于数据流中字节的位置,或者基于数据流本身。我们或者通过使用更多的“转换表”,并且按伪随机的方式使用每个表,或者对所有的偶数位置的数据使用一张表,对所有的奇数位置使用另一张表,即使黑客获得了明文和密文,破译这个加密方案也是非常困难的。

与使用“置换表”相类似,“变换数据位置”也在计算机加密中使用。但是,这需要更多的执行时间。从输入中读入明文放到一个数据缓冲存贮器中,再在数据缓冲存贮器中对他们重排序,然后按这个顺序再输出。解密程序按相反的顺序还原数据。这种方法总是和一些别的加密算法混合使用,这就使得破译变的特别的困难,几乎有些不可能了。例如,有这样一个词slient,变换起字母的顺序,可以变为listen,但所有的字母都没有变化,但是字母之间的顺序已经变化了。

还有一种只有计算机可以做的加密算法,就是字/字节循环移位和异或操作。如果我们把一个字/字节在一个数据流内做循环移位,使用多次的左移或右移,就可以迅速的产生一个加密的数据流。这种方法是很好的。如果再使用异或操作,按位做异或操作,就使破译密码更加困难了。如果再使用伪随机的方法,即首先使用fibbonaci数列,对数列所产生的数做模运算,得到一个结果,然后再循环移位n次。将使破译密码变的几乎不可能!

3 使用公钥、私钥概念的加密算法

还可以借助密码或密钥的概念,来加密明文,不同的密码或密钥产生不同的密文。加密密钥,即公钥,与解密密钥,即私钥,是不同的。从数学理论上讲,几乎没有真正不可逆的算法存在。例如,对于一个输入‘a’,执行一个操作得到结果‘b’,那么我们可以基于‘b’,做一个相对应的操作,导出输入‘a’。在一些情况下,对于每一种操作,我们可以得到一个确定的值,或者该操作没有定义(比如,除数为0)。对于一个没有定义的操作来说,基于加密算法,找到那个唯一的密钥,唯一的方法只能是反复的试验,而这需要大量的处理时间。

Rsa加密算法,使用了两个非常大的素数来产生公钥和私钥。即使从一个公钥中通过因数分解可以得到私钥,但这个运算所包含的计算量是非常巨大的,以至于在现实上是不可行的。加密算法本身也是很慢的,这使得使用Rsa算法加密大量的数据变的有些不可行。现实中一些加密算法都是基于Rsa加密算法。Pgp算法(以及大多数基于rsa算法的加密方法)使用公钥来加密一个对称加密算法的密钥,然后再利用一个快速的对称加密算法来加密数据。这个对称算法的密钥是随机产生的,是保密的。因此,得到这个密钥的唯一方法就是使用私钥来解密。我们举一个例子:假定现在要加密一些数据使用密钥‘abc’。当对方收到时,解密程序找到加密过的密钥,并利用Rsa私钥解密出来,然后再确定出数据的开始位置,利用密钥‘abc’来解密数据。这样就使得一个可靠的经过高效加密的数据安全传输和解密。

4 新的多步加密算法

1998年6月1日正式公布了一种新的多步加密算法。其算法是,假设我们用128位密钥,首先产生一个可重复的但高度随机化的伪随机的数字的序列来做为“种子”。然后再用随机数产生器产生256个随机数放在一个距阵中,表中的数字在0到255之间,使用最初的位置来产生一个表,再对他们进行随意排序又产生一个表,下一步使用“shortgun technique”技术来产生解码表。由于第一个“种子”是随机数,第二步产生的256个字节的随机数使用的是二次伪随机,同时还获得了两张转换表。基本的加密解密是如下这样工作是,前一个字节密文是这个256字节的表的索引。如果想提高加密效果,还可以使用多余8位的值,甚至使用校验和或者crc算法来产生索引字节。假定这个表是256*256的数组,将会是下面的样子:crypto1=a[crypto0][value],变量‘crypto1’是加密后的数据,‘crypto0’是前一个加密数据(或者是前面几个加密数据的一个函数值)。据说这种加密算法几乎是不可能被破译的。

5 结论

数据加密肯定是可以被破解的,但需要一定的时间。只要做

到在一个特定时间段内的安全就行。也就是说,密文的破解应该做到足够的困难,尤其是短时间内。这样就确保重要数据只能被有相应权限的人看到,并且要确保数据在传输的过程中不会被篡改,截取。

参考文献:

[1]冯常宇,袁飞. 数据加密技术的方法以及应用[J]. 国门时报E周刊,2005.6.8.

[2]王志军. 数据加密三部曲[J]. 中国电脑教育报,2004.7.12.

数据加密技术范文第6篇

关键词:数据库加密;加密算法、加密实现;加密的应用

一、加密的概念

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

二、 数据库加密技术的功能和特性

一般而言,一个行之有效的数据库加密技术主要有以下6个方面的功能和特性。

1、身份认证。用户除提供用户名、口令外,还必须按照系统安全要求提供其它相关安全凭证。如使用终端密钥。

2、通信加密与完整性保护。有关数据库的访问在网络传输中都被加密,通信一次一密的意义在于防泄密、防篡改。

3、数据库数据存储加密与完整性保护。数据库系统采用数据项级存储加密,即数据库中不同的记录、每条记录的不同字段都采用不同的密钥加密,辅以校验措施来保证数据库数据存储的保密性和完整性,防止数据的非授权访问和修改。

4、数据库加密设置。系统中可以选择需要加密的数据库列,以便于用户选择那些敏感信息进行加密而不是全部数据都加密。只对用户的敏感数据加密可以提高数据库访问速度。这样有利于用户在效率与安全性之间进行自主选择。

5、多级密钥管理模式。主密钥和主密钥变量保存在安全区域,二级密钥受主密钥变量加密保护,数据加密的密钥存储或传输时利用二级密钥加密保护,使用时受主密钥保护。

6、安全备份。系统提供数据库明文备份功能和密钥备份功能。

三、 数据加密的算法

加密算法是一些公式和法则,它规定了明文和密文之间的变换方法。密钥是控制加密算法和解密算法的关键信息,它的产生、传输、存储等工作是十分重要的。

数据加密的基本过程包括对明文(即可读信息)进行翻译,译成密文或密码的代码形式。该过程的逆过程为解密,即将该编码信息转化为其原来的形式的过程。

DES算法,对称密钥加密算法DES(Data Encryption Standard)是把64位的明文输入块变为64位的密文输出块,它所使用的密钥也是64位,DES算法中只用到64位密钥中的其中56位。DES的密码学缺点是密钥长度相对比较短,因此,人们又想出了一个解决其长度的方法,即采用三重DES,三重DES是DES的一种变形。这种方法使用两个独立的56位密钥对交换的信息如EDI数据进行3次加密,从而使其有效密钥长度达到112位或168位, 对安全性有特殊要求时则要采用它。

RSA(Rivest-Shamir-Adleman)算法它是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作,也很流行。但RSA的安全性一直未能得到理论上的证明, RSA的安全性依赖于大数的因子分解,但并没有从理论上证明破译RSA的难度与大数分解难度等价。

AES是美国高级加密标准算法,将在未来几十年里代替DES在各个领域中得到广泛应用,尽管人们对AES还有不同的看法,但总体来说,AES作为新一代的数据加密标准汇聚了强安全性、高性能、高效率、易用和灵活等优点。

四、数据库数据加密的实现

使用数据库安全保密中间件对数据库进行加密是最简便直接的方法。主要是通过系统中加密、DBMS内核层(服务器端)加密和DBMS外层(客户端)加密。

在系统中加密,在系统中无法辨认数据库文件中的数据关系,将数据先在内存中进行加密,然后文件系统把每次加密后的内存数据写入到数据库文件中去,读入时再逆方面进行解密,这种加密方法相对简单,只要妥善管理密钥就可以了。

在DBMS内核层实现加密需要对数据库管理系统本身进行操作。这种加密是指数据在物理存取之前完成加解密工作。这种加密方式的优点是加密功能强,并且加密功能几乎不会影响DBMS的功能,可以实现加密功能与数据库管理系统之间的无缝耦合。

数据库加密系统分成两个功能独立的主要部件:一个是加密字典管理程序,另一个是数据库加解密引擎。数据库加密系统将用户对数据库信息具体的加密要求以及基础信息保存在加密字典中,通过调用数据加解密引擎实现对数据库表的加密、解密及数据转换等功能。数据库信息的加解密处理是在后成的,对数据库服务器是透明的。

五、加密技术的应用

1、在电子商务方面的应用

电子商务(E-business)要求顾客可以在网上进行各种商务活动,不必担心自己的信用卡会被人盗用。在过去,用户为了防止信用卡的号码被窃取到,一般是通过电话订货,然后使用用户的信用卡进行付款。现在人们开始用RSA(一种公开/私有密钥)的加密技术,提高信用卡交易的安全性,从而使电子商务走向实用成为可能。

2、加密技术在VPN中的应用

当今的网络社会人们的要求希望将这些LAN连结在一起组成一个公司的广域网,这个在现在已不是什么难事了。现在具有加密/解密功能的路由器已到处都是,这就使人们通过互联网连接这些局域网成为可能,这就是我们通常所说的虚拟专用网(Virtual Private Network ,VPN)。当数据离开发送者所在的局域网时,该数据首先被用户湍连接到互联网上的路由器进行硬件加密,数据在互联网上是以加密的形式传送的,当达到目的LAN的路由器时,该路由器就会对数据进行解密,这样目的LAN中的用户就可以看到真正的信息了。

3、密钥交换

假设你需要发送一份受保护报文给某人,而你们相互不认识。这种情形比你想像的要普遍。例如,可能想发送你的所得税申报表给政府。你希望信息受保护,但并不需要知道接收信息的人是谁。同样,可能想用你的web浏览器连接一个购物站点,或交换私人的(加密的)E-mail,或安排两台主机建立受保护的信道。这些情形都需要交换加密密钥,并且没有其他人能截取它。事先不认识的双方交换密码密钥的问题既困难也重要。实际上,这个问题几乎是循环的:为了建立一个加密的会话,就需要一个加密的手段来交换密钥。

4、数字签名

普通人会遇到的另一种典型情形是:从一个人到另一个人的资金转移。换句话说,我们希望能用电子方式发送计算机化的支票。使用支票的交易要依赖规定格式的有形事物,但通过计算机交易就不存在有形事物了,因此,通过计算机同意支付就需要一种不同的方式。数字签名(digital signature)就是产生和真实签名相同效果的协议:它是一个只有发送者才可以生成的标志,而且其他人可以轻易的辨认出它是否属于发送者。就像真实签名一样,数字签名用来证实对报文的批准。公钥加密完全适合于数字签名,但还有其他的一些途径来实现,有人使用对称加密,有人使用非对称的。

六、总结

数据加密技术范文第7篇

关键词:数据加密;密码学;加密算法

中图分类号:TP309文献标识码:A文章编号:1009-3044(2010)20-5448-03

Data Encryption Technology Primary Research

ZHU Hai-yan, ZHAO Xin-ping

(Fenyang Normal Scholl of Lvliang University, Fenyang 032200, China)

Abstract: With the spectacularcarrying out of information technology and application, cornucopia information security attract more and more attention. All the sensitive information on the exchange and store is encrypted or mask, to ensure that secret message was not malicious alter or malicious use. To this a security vulnerability, there are many encryption algorithm is to bring up, modify, improve or denied. However, the research of data security area will be continued and profitability. To understand the more mature algorithm and to improvethe algorithm are similarly substantial.

Key words: data encryption; cryptology; encryption algorithm

计算机工业的飞速发展使得世界范围内人计算机用户不断增多,计算机网络进一步推动了信息时代的到来。人们在享受信息交流之方便的同时,也遇到层出不穷的安全问题。我们要给我们的数据穿上“防弹衣”,防止被别人看到或恶意利用。因此,就迫切需要安全有效地保护那些机密数据不被窃取或篡改。

1 加密技术

1.1 加密技术概述

20世纪70年代,密码学逐步形成一门新的学科, 它的理论基础可以追溯到1949年Shammon写的《保密通讯的信息理论》。“电子政务”和“电子商务”的提出推动了密码学的发展,使得密码学开始成为一些学科的基础理论。近代密码学的研究异常热火,也大大地推动了它的发展进程。

现代密码学已发展成为集信息论、数论、代数、概率论、混沌等理论于一体,并与通信技术、计算机网络技术和微电子技术等科学技术紧密结合的一门综合性学科。――密码编码学 (Cryptography)和密码分析学(Ccryptanalytic)是密码学(Cryptology)的两个相互对立的分支。前者的目标是找到安全性能较高的算法和协议,来满足对信息进行加密或认证的要求。而后者的目标是破译密码或者伪造认证信息,实现对机密信息的窃取从而进行破坏活动。

当前密码学的研究大致分成两类:一类是基于数学密码理论与技术,包括公钥密码、公钥基础设施(PKI)、密钥管理、分组密码、序列密码、数字标识、认证码、身份识别、数字签名、虚拟专用网(VPN)技术等;另一类是基于非数学的密码理论与技术,包括量子密码、基于光学的加密理论与技术、基于生物特征的识别理论与技术等。

数据加密的基本思想是通过改变信息的表示形式来伪装需要保护的信息,使非授权者不能了解被保护信息的内容。明文是那些需要被伪装的信息;加密即伪装的过程;密文是最终产生的结果;密码算法就是在加密时使用的信息变换规则;加密者是对明文加密的人,接收者是接收明文的人;而破译者则是那些利用各种手段劫取信息的人。图1是加密通信的模型的一般示意图。

1) 对一个良构的加密算法最基本的要求是“保密”,也就是说密文要具不可识别性,进一步讲,它要有较好的抗攻击性。第二个要求是简单的密钥和加密算法,还要求注意误差的扩散;最后要求密文不能比原来的明文更长。其实在设计加密系统时,加密算法是可以公开的,密钥才是真正需要保密的。公开了加密算法不会从根本上让攻击者有利可图。只要破译者没有掌握密钥,就不能有效地识别明文。密码算法是相对稳定的。从这个方面来说,密码算法就是一个常量,而密钥则是一个变量。从理论上来说,任何一个加密算法都是可以破译的,但是破译者也要衡量破译的代价是否过多,也就是说有效的密码破译算法能否在有限资源的条件下及有限的时间内找到。假如破译需要100年甚至几千年,这样的密码毋庸置疑在现实意义上来说是安全的。总而言之,一个相对来说安全的密码即它的破译算法所需要的计算时间和计算能力的总和超出现实的范围,也就是现实的范围不能满足破译算法所需的时间复杂度和空间复杂度。

2) 设计加密系统时又可分为两种方式――对称性密钥体制及非对称性密钥体制。所谓对称性密钥体制就是加密与解密时都使用相同的密钥,而非对称性密钥体制则是加密与解密时使用不同的密钥。非对称性加密体制的典型代表是PGP公钥加密与RSA加密算法。对一个加密系统来说加密密钥(公钥)与解密密钥(私钥)是两个非相关性的概念。从数学理论范围来讲,任何算法都是可逆的,也就是说可以从算法结果导出源数据。除了那些没有意义的操作(如除法运算时除数为0的操作)则每一步操作的结果值都是确定。应用于加密系统的设计时的意义是设计的一个加密算法,它是应用无意义的操作的,则把公钥变换成为私钥的操作是相当困难的。因此,想要破译这样的非对称性的加密算法,找到唯一的密钥,只能用穷举法了。一个加密体制中的密钥可以看作是密码算法中的可变参数。从数学的角度来看,改变了密钥,实际上也就改变了明文与密文之间等价的数学函数关系,以此保证不同的密码对应不同的密文。

1.2 传统的加密算法

简单的,我们可能用一些带加密功能的软件来加密数据。虽然我们同时掌握原文和密文的时候,可能破译该加密算法,但也不是很轻松的;如果只知道密文则破译者是很难识别出明文的。 计算机系统性能对一个好的加密算法来说是不会有影响的,而且我们还能利用它的优势。例如, DBMS的软件包通常应用加密体制以禁用“复制”功能,从而保护用户的一些敏感数据;或者需要提供用户密码才能使用“复制”功能。另外,PKZIP软件不仅有压缩数据的功能还有加密数据的功能,这些功能无疑对用户是有好处的。

“置换表”算法是能满足加密需求的最简单一的种加密算法。每个数据段(通常是一个字节)对应着“置换表”中的一个值,密文就是由这些对应值组成的。加密和解密时都要用到这年表。80x86 系列CPU 中的“XLAT”的指令就是一个专门在硬件级来完成这种转换工作的指令。这是一个加密解密速度都很快的简单算法,它的致命弱点是这个“置换表”的安全问题,一旦这个表被破译者劫获,那这个加密方案就完全失败了。其实这种方法在计算机出现之前就已经被广泛的使用。如在电视剧《潜伏》中传递情报时所用的“密码册”,也就是我们说的“置换表”。这个“密码册”是一定要保管好的,否则后果不堪设想。

对原来的加密算法改进的方案是我们可以按伪随机的方式使用两个甚至更多的“置换表”来加密。这时,劫获者必须做若干回正确的变换才能破译密文,这将会增加破译的难度。比如,我们可以使用A表来置换明文中所有在奇数位置的数据,使用B表来置换所有在偶数位置的数据。除非劫获者确切地知道是用了几张表来转换的,否则即便他劫获密文,也很难破译它。

另一种经常在计算机加密中使用的方案是变换数据位置。但是,这样做的代价是执行时间的增加。这个算法的基本思想是在缓冲区中将读入的明文重新排序再输出就得到密文。还原明文的解密程序则做逆运算就可以了。一般情况下,我们会混合使用这个方法会和一些别的加密算法,这样就将大大增加破译难度,几乎不可能破译。举个简单的例子,通过变换字母顺序,listen 就变为silent,组成单词的字母既没增加也没减少,数据长度也没变,显然这是一个成功地满足加密要求的转换。

设计加密算法时可以利用计算机做字/字节循环移位和异或操作,这会进一步加大破译难度。把一个字或字节在一个数据段内左移或右移,通过这种循环移位的方法对明文加密的效率特别高。如果再使用XOR操作,即按位做异或操作,这样会使破译密码更加困难。

某些时候,我们需要确切地知道自己的数据是否被破坏或篡改了,这时就要用到校验码技术。将这些选定的校验码插入到数据段中。但是每次开始执行已加载到内存中的加密程序前,必须检查是否已被病毒感染,也要检查所有需要加密解密的文件!显然,这种工作流程是要秘密执行的,否则将会被病毒程序的编写者利用。所以,杀病毒软件中必须应用加密算法。

一种比较典型的校验数据方法就是循环冗余校验。它的工作原理是以数据块为单位,按位做循环移位和异或操作,等到一个16位或32位的校验和,如果在传输过程中如果丢失一位或两位数据,那校验和一定会出错。这种方式在文件的传输中已经应用了很久,如 XMODEM-CRC。 这种循环冗余校验方法已经成为标准,而且有详细的文档。

1.3DES加密算法

1977 年美国国家标准局公布了IBM 公司的一种数据加密算法,定名为DES( Data Encryption Standard数据加密标准)。

DES是一种分组密码。其主要思想是:

假设明文P 是 由0、1代码组成的长度为64 比特的符号串,密钥k 也是64 比特的0,1代码 。记

P=P1P2P3……P64

k=k1k2k3……k64

其中

Pi,ki=0 或1 (其中i=1,2,……,64)

DES 加密过程表达如下:

DES ( P ) =W -1. T16 . T15…… T1. W (P)

W 是初始变换, W -1是它的逆变换,

T16 , T15 ,……, T1是变换。

DES 解密过程表达如下:

DES =W.T1.T2……T16 .W

可以证明这两个式子是成立的:

DES-1(DES(P))=P

DES(DES-1 (P))=P

如:

明文: computer

密钥: program

用ASCII码表示为:

P=01100011 01101111 01101101 01110000

01110101 01110100 01100101 01110010

k =01110000 01110010 01101111 01100111

01110010 01100001 01101101

最后结果, 密文

01011000 10101000 00000110 10111000

01101001 111111110 10101110 00110011

(以上详细计算过程请参考相关书籍)

DES 加密方法最大特点是加密密钥与解密密钥是相同。显然, 密钥必须通过秘密的方式传递,存储时也需要特别注意安全问题。在实际过程中,这会带来很多的问题。如, 假设现有n 个用户, 则他们所需要的密钥个数是:C(n,2)=n/2*(n-1)

当 n=1000 时,C(1000,2)约500000(50 万)。

这么多的密钥,管理起来是很麻烦的。

1.4 RSA加密算法

目前,RSA加密体制是理论上最为成熟的一种公钥密码体制。广泛应用于数字签名、密钥管理和认证等方面。

RSA加密体制的核心思想是公钥和私钥的产生要借助于两个较大的素数。劫获公钥后想通过因数分解得到私钥的破译算法,运算复杂度超出现实范围,是不可行的。运行RSA加密算法本身也需要很长的时间,因此,RSA算法不适合加密大量的数据段。 通常现实中的加密算法都是基于RSA加密算法的。如用对称加密算法来加密数据,用RSA算法加密密钥。只要这个密钥是随机产生的,而且没有泄密出去,如果想得到这个密钥,只能通过私钥来解密。

假设现在要使用密钥“secret”加密一些数据。使用RSA公钥加密这个密钥,并把它放在明文中。为了区分数据和密钥,通常要加上特殊的符号。然后,加密正文使用的是对称加密算法,密钥就是“secret”。当接收者收到密文时,解密程序要先从密文中提取出密钥,然后用RSA私钥将它解密,接下来就可用密钥“secret”来解密数据了。数据这样通过可靠高效的加密之后就能进行安全地传输和解密。

可利用下面的站点参考一些简单的基于RSA算法的加密算法:

ftp://ftp.funet.fi/pub/crypt/cryptography/asymmetric/rsa

1.5 多步加密算法

大约10年前公布的一种新的加密算法――多步加密算法,安全级别很高。

这个算法的基本过程是,第一步用一个128位的密钥生成一个随机数字序列,使用这个随机数序列来生成密码转换表。由于开始时的数字序列具有重复和随机的特点,可以保证这个转换表的随机性,表中是256个介于0~255之间的数字。第二步在一个矩阵把256个随机数进行排序。这个表中其余的数是由随机数产生器来生成的,这样得到不同的多张表。然后利用“shotgun technique”技术来生成解码表。

显然,开始的那个数据需要一个“种子”才能正常进行加密,而这个“种子”将会使密文的长度增加。或者,可以那个128位的密码,或是它的CRC校验和。

加密时可以使用Fibonacci数列来产生伪随机序列,而种子是一个64位的数,与第三个双字做异或操作。

这种多步加密算法每一步加密都与上一步的数据有关,这样会增加密文的长度。另外,加密时所用的第一个“种子”对整个解密过程是相当重要的,要保管好。

1.6 其它加密算法

近年来,混沌理论的应用和生物学理论的发展,产生了混沌密码学及基于生物特征的人工神经网络加密方法。

混沌密码学是一个交叉学科的研究领域,它综合应用了混沌理论、密码学、通信工程等方面的理论。混沌密码学具体的研究有混沌信号的状态空间重构、混沌序列的频谱分析、混沌吸引子维数的提取、李雅普诺夫指数的算法等研究;同时也有直接服务于混沌密码学的应用研究,如混沌生成及其模型的建立、混沌信号的处理以及混沌信号在工程中的应用。这些研究内容相互联系,相互支持,混沌算法理论方面的研究为应用研究提供理论基础,而服务于应用的研究又对混沌算法理论方面不断地提出研究课题,从而对其起到巨大的推动作用。

基于生物特征的人工神经网络方法在数据加密中的应用已初见端倪。利用人体在身材、指纹、唇印、口音、脚步声、体味、视网膜、血型、遗传因子、笔迹等方面的唯一性来确保身份的唯一性。

这种新型的数据加密方法有如下几个特点:1) 范围广泛:能快速实现任何的非线性变换来满足各种加密算法。2) 较高的灵活度:可以灵活地选择密钥及密锁。3) 安全级别高:要破解具有极高复杂性的密锁与密钥,所需的计算空间复杂度和时间复杂度相当可观,故具有较高的安全级别。

2 结论

在现实生活中,信息作为一种资源,在社会生产、生活中的作用日益显著,信息安全问题已成为信息化社会的焦点与难点,而数据加密技术则是信息安全的一个核心问题。随着计算机科学技术的发展,信息和信息技术对密码学提出了越来越高的要求,各种加密算法陆续的被提出、应用、否定和改进。

数据加密领域的研究将会不断更新和改进的。

参考文献:

[1] 胡予濮,张玉清,肖国镇.对称密码学[M].北京:机械工业出版社,2002.

[2] 冯登国.密码分析学[M].北京:清华大学出版社,2000.

[3] 刘春花.金晨辉.混沌序列密码算法OCMLE的分析[J].上海:计算机工程,2007,33(6).

[4] 柳葆芳.信息伪装与数据隐藏算法研究[D].郑州:信息工程大学,2002.

数据加密技术范文第8篇

关键词:数据库安全;数据库加密;加密粒度;加密算法

中图分类号:TP311.13 文献标识码:A 文章编号:1009-3044(2008)18-20ppp-0c

Discuss About Database Encryption Technology

QIN Xiao-xia, LI Wen-hua, LUO Jian-fen

(College of Computer Science, Yangtze University, Jingzhou 434023, China)

Abstract: Begins with requirement of the database security , it proposes an aim of the database encryption ,and then analyzes several key technologies in the database encryption technology, and compares them. Finally the influence of encryption system will be summarized.

Key words: Database security; Database encryption; Encryption granularity; Encryption algorithm

1 引言

随着网络技术的不断发展及信息处理的不断增多,巨量级数据扑面而来。数据库系统担负着集中存储和处理大量信息的任务,从而使数据安全问题变得也非常显著。传统地,物理安全和操作系统安全机制为数据库提供了一定的安全措施和技术,但并不能全部满足数据库安全的需求,特别是无法保证一些重要部门如政府、金融、国防和一些敏感数据如信用卡、身份证、个人的医疗信息的安全,因此对数据库加密是提高数据库安全的最重要的手段之一,也成了数据库安全研究的一个焦点。

2 数据库安全概述

数据库在信息系统中的核心地位使得数据库面临着严重的安全威胁,根据数据库受到的威胁和可能的攻击,数据库的安全性要求着重在几方面:

(1)物理上的数据完整性。预防数据库数据物理方面的问题,如掉电,以及灾害破坏后的恢复、重构数据库。

(2)逻辑上的数据完整性。保持数据的结构。

(3)元素的完整性。包含在每个元素中的数据是准确的。

(4)可审计性。能追踪到谁访问或修改过数据库中的元素。

(5)访问控制。确保用户只能访问授权数据,限制用户访问模式。

(6)用户认证。用户除提供用户名、口令外,还可按照系统安全要求提供其它相关安全凭证。系统可以选择使用终端密钥、用户USB Key等来增强身份认证的安全性。

(7)可获用性。用户能够对数据库进行授权的访问。

3 数据库加密要实现的目标

与一般的数据加密和文件加密相比,由于数据库中数据有很强的相关性,并且数据量大,因此对它加密要比普通数据加密和文件加密有更大的难度,密钥管理更加困难。数据加密是防止数据库中数据在存储和传输中失密的有效手段。数据加密的过程实际上就是根据一定的算法将原始数据变换为不可直接识别的格式,从而使得不知道解密算法的人无法获知数据的内容,而仅允许经过授权的人员访问和读取数据,从而确保数据的保密性,是一种有助于保护数据的机制。

因此,数据库加密要求做到:

(1)数据库中信息保存时间比较长,采用合适的加密方式,从根本上达到不可破译;

(2)加密后,加密数据占用的存储空间不宜明显增大;

(3)加密/解密速度要快,尤其是解密速度,要使用户感觉不到加密/解密过程中产生的时延,以及系统性能的变化;

(4)授权机制要尽可能灵活。在多用户环境中使用数据库系统,每个用户只用到其中一小部分数据。所以,系统应有比较强的访问控制机制,再加上灵活的授权机制配合起来对数据库数据进行保护。这样既增加了系统的安全性,又方便了用户的使用;

(5)提供一套安全的、灵活的密钥管理机制;

(6)不影响数据库系统的原有功能,保持对数据库操作(如查询,检索,修改,更新)的灵活性和简便性;

(7)加密后仍能满足用户对数据库不同的粒度进行访问。

4 数据库加密技术中的关键问题

数据库加密需要考虑几个重要问题:是在数据库引擎内或产生数据的应用程序中或是在硬件设备上进行加密/解密?加密数据粒度基于数据库、表还是字段?加密效果与其对性能的影响如何?

针对上述几个问题,结合数据库数据存储时间长、共享性高等特点,在数据库加密技术中,重点是要选择合适的加密执行层次、加密粒度和加密算法,并且要与实际的安全需求紧密结合起来。

4.1 加密执行层次

对数据库的数据进行加密主要是通过操作系统层加密、DBMS内核层(服务器端)加密和DBMS外层(客户端)加密三个不同层次实现的;DBMS内核层、外层加密分别如图1、图2所示:

(1)在OS层

在操作系统(OS)层执行加密/解密,数据库元素以及各元素之间的关系无法辨认,所以无法产生合理的密钥。一般在OS层,针对数据库文件要么不加密,要么对整个数据库文件进行加密,加密/解密不能合理执行。尤其对于大型数据库来说,在操作系统层次实现数据库的加密/解密,目前还难做到有效保证数据库的安全,因此一般不采用在OS层进行数据库加密。

(2)在DBMS内核层执行加密/解密

在内核层执行加密解密有如下特点:

加密/解密执行时间:在数据存入数据库或从数据库中取出时,即在物理数据存取之前;

加密/解密执行主体:在DBMS内核层,由用户定制的或者DBMS提供的存储过程函数执行;

加密/解密过程:在存储数据时,通过触发器调用加密存储过程对数据加密,然后将密文数据存入数据库在读取数据时,触发器调用相应存储过程解密数据,然后读出结果;

加密/解密算法:由DBMS系统提供。多数不提供添加自己算法的接口,因此算法选择比较受限制。

在DBMS内核层实现加密需要对数据库管理系统本身进行操作,这种加密是指数据在物理存取之前完成加密/解密工作。优点是加密功能强,并且加密功能几乎不会影响DBMS的功能,可以实现加密功能与数据库管理系统之间的无缝耦合。由于与DBMS系统结合紧密,可以提供对各种粒度加密的灵活性,灵活的加密配合DBMS的访问控制、授权控制,不失是一种有效的数据库数据保护方案。另外,这种层次的加密对于应用程序来说是透明的。其缺点是加密运算在服务器端进行,加重了服务器的负载,而且DBMS和加密器之间的接口需要DBMS开发商的支持。

(3)在DBMS外层执行加密/解密

在DBMS外层执行加密/解密包含两种实现方式:第一种方式如图2(a)所示,是在应用程序中实现,加密时调用应用程序中的加密模块来完成数据的加密工作,然后把密文数据传送到DBMS存储;解密时把密文数据取出到应用程序中,然后由应用程序中的解密模块将数据解密并给出结果。第二种方式如图2(b)所示,是直接利用操作系统提供的功能实现加密,这种加密方式是在文件级别上的加密,直接加密数据库文件。

在DBMS外层实现加密的好处是不会加重数据库服务器的负载, 采用这种加密方式进行加密,加解密运算可在客户端进行,它的优点是不会加重数据库服务器的负载并且可以实现网上传输的加密,缺点是加密功能会受到一些限制,与数据库管理系统之间的耦合性稍差。

(4)不同层次实现数据库加密效果比较

在DBMS内核层和DBMS外层加密的特点如表1所示:

由表可知:在DBMS内核层执行加密/解密,不会增加额外的处理负担,对本身性能影响小;实现了密钥与密文的分离,安全程度相对较高;算法由应用程序提供,选择性大。

DBMS外层加密主要存在着可用性与安全性的矛盾;加密粒度受DBMS接口支持的限制,灵活性不够强;安全升级时,应用程序改动比较大;对于密文数据,DBMS本身的一些功能会受到影响。

4.2 加密粒度选择

数据库的加密粒度指的是数据加密的最小单位,主要有表、字段、数据元素等。数据库中执行加密,加密粒度越小,则可以选择加密数据的灵活性就越大,但是产生的密钥数量也大,带来管理方面问题。数据库中加密粒度的选择要根据需要,充分衡量安全性和灵活性等需求。选择的过程中,由于数据库中存储的数据包括非敏感数据,因此,可以只选择敏感数据部分进行加密,从而加密粒度越小,加密执行消耗资源就少,投入费用就少。

4.3 算法选择

数据库加密技术的安全很大程度上取决于加密算法的强度,加密算法直接影响到数据库加密的安全和性能。因此,加密算法的选择在数据库加密方案中也显得举足轻重。传统的数据加密技术包括以下三种:

(1)对称加密

也称为共享密钥加密。对称加密算法是应用较早的加密算法,在对称加密算法中,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。由于对称加密算法算法公开、计算量小、加密速度快、加密效率高,因此它是最常用的加密技术。主要的对称加密算法有DES、IDEA和AES。

(2)非对称加密

又称为公钥加密。非对称加密算法使用两把完全不同但又是完全匹配的一对钥匙――公钥和私钥。非对称加密算法的基本原理是,如果发信方想发送只有收信方才能解读的加密信息,发信方必须首先知道收信方的公钥,然后利用收信方的公钥来加密原文;收信方收到加密密文后,使用自己的私钥才能解密密文。显然,采用非对称加密算法,收发信双方在通信之前,收信方必须将自己早已随机生成的公钥送给发信方,而自己保留私钥。由于非对称算法拥有两个密钥,因而特别适用于分布式系统中的数据加密。常用的公钥加密算法是RSA,它不但可以用来加密数据,还可用来进行身份认证和数据完整性验证。

(3)混合加密

由于对称加密算法更简单,数据的加密和解密都使用同一个密钥,所以比起非对称加密,它的速度要快得多,适合大量数据的加密和解密;主要缺点也是由于使用相同的密钥加密和解密数据引起的,所有的数据发送方和接收方都必须知道或可以访问加密密钥,必须将此加密密钥发送给所有要求访问加密数据的一方,所以在密钥的生成、分发、备份、重新生成和生命周期等方面常存在安全问题。而公钥加密属于非对称加密,不存在密钥的分发问题,因此在多用户和网络系统中密钥管理非常简单,但由于它主要基于一些难解的数学问题,所以安全强度没有对称加密高,速度也比较慢。

为了充分发挥对称加密与非对称加密的优势,混合加密方案被提出。在混合加密方案中,加密者首先利用一个随机生成的密钥和对称加密算法加密数据,然后通过使用接收者的公钥把随机密钥进行加密,并与密文一起传送给接受者。接收者通过自己的私钥首先解密随机密钥,再利用其解密密文。此方案既利用了对称加密安全强度高、速度快的特点,也利用了非对称加密密钥管理简单的特性。“一次一密”的加密是最安全的一种加密技术,加密者在每次加密时都使用与明文长度一样的随机密钥,并且每个密钥都不重复使用。但在数据库加密中,由于密钥的产生和保存都存在很大的困难,因此在实际应用中并不常用。

5 数据库加密后对系统的影响

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

(1)性能下降:数据加密后,由于其失去了本身所固有的一些特性,如有序性,相似性和可比性,这样导致对加密数据的查询,往往需要对所有加密数据先进行解密,然后才能进行查询。而解密操作的代价往往很大,这样使得系统的性能急剧下降。

(2)索引字段的加密问题:索引的建立和应用必须在明文状态下进行,这样才能够保证索引文件中键的有序性,以便提高查询性能。否则,索引将失去作用。

(3)加密字符串的模糊匹配:对加密数据上的大量模糊查询,例如,当SQL条件语句包“Like”时,很难进行处理。

(4)加密数据库的完整性:当数据库加密后,实体完整性不会被破坏,而引用完整性难以维护。

(5)加密数据的存储空间增加问题:对数据库加密,通常采用分组加密算法,这有可能导致数据加密后的存储空间增加。

(6)密钥管理问题:在现代密码学中算法的安全性都是基于密钥的安全性,而不是基于算法的细节的安全性。对数据库采取加密技术来保证其安全性,但是在现实生活中,如何保证密钥本身的安全性又是一件非常困难的事情心。在数据库管理系统中,由于数据的共享性和存储数据的持久性等原因,要求更加灵活和安全的密钥管理机制。

参考文献:

[1] 万红艳.一种数据库加密系统的设计与实现[J].黄石理工学院学报,2007,23(3):27-29.

[2] 赵晓峰.几种数据库加密方法的研究与比较[J].计算机技术与发展,2007,17(2):219-222.

[3] 王正飞,施伯乐.数据库加密技术及其应用研究[D].上海:复旦大学,2005.

[4] 庄海燕,徐江峰.数据库加密技术及其在Oracle中的应用[D].郑州:郑州大学,2006.

[5] 黄玉蕾.数据库加密算法的分析与比较[J].科技情报开发与经济,2008,18(2):159-161.

收稿日期:

数据加密技术范文第9篇

关键词:数据库;加密;研究

中图分类号:TP31 文献标识码:A

数据库技术的最初应用领域主要是信息管理领域,如政府部门、工商企业、图书情报、交通运输、银行金融、科研教育等各行各业的信息管理和信息处理。事实上,只要有数据需要管理,就可以使用数据库。

1数据库的特点

数据结构化是数据库和文件系统的本质区别。数据结构化是按照一定的数据棋型来组织和存放数据.也就是采用复杂的数据模型表示数据结构。数据模型不仅描述数据本身以特点,还描述数据之间的联系。这种结构化的数据反映了数据之间的自然联系,是实现对另据的集中控制和减少数据冗余的前提和保证。

由于数据库是从一个企事业单位的总体应用来全盘考虑井集成教据结构的.所以数拒库中的数据不再是面向个别应用而是面向系统的。各个不同的应用系统所需的数据只是翅体模型的一个子集。数据库设计的基础是数据模型。在进行教据库设计时,要站在全局需耍的角度抽象和组织数据,要完整地、准确地描述数据自身和数据之间联系的情况,建立话合总体需耍的数据棋型。数据库系统是以数据库为荃础的,各种应用程序应建立在数据阵之上。数据库系统的这种特点决定了它的设计方法,即系统设计时应先设计数据库,再设计功能程序.而不能像文件系统那样,先设计程序,再考虑程序需要的数据。

1.1有较高的数据独立性

数据库中的数据不是孤立的,数据与数据之间是相互关联的。也就是说,在数据库个不仅要能够表水数据本身,还要能够表水数据与数据之间的联系。例如布银行的储蓄数据库中,有储户信息和账户情息,储户信息和账户信息联的。 数据库能够根据石同的需要按不同的方法组织数据,比如顺序组织方法、索引组织方法、倒排索引组织力法等。这样做的目的就是要最大限度地提高用户或应用程序访问数据烽的效率。闭于有数据库技术之前。数据文件都是独立的,所以任何数据文件都必须含有满足某一应用的全部数据。而在数据库中数据是被所有应用共享的。在设计数据库时,从全局应剧小发,可以使数据库中包含为整个应用服务的全部数据,然后通过模式定义可以灵活组合数据满足每一个应用。数据形具有较高的数据独仅件数据独立性是指数据的组织和存储方法与应蝴程序互不依赖、彼此独立的特性。在数据库技术之前,数据文件的织纠方式和应用程序是密切相关的。当改企数据结构时相应的应用程序也必须陨之修改,这样就大大增加了应用程斤的开发代价和维护代价。而数据库技术以使数据的组织和存储方法与应用程序巨不依赖,从而人大降低应用程序的开发代价和维护代价。

1.2数据冗余度小、数据共享度高

数据冗余度小是指存储在数据库中的皿复数据少。在非数据库系统中,每个应用程序有它自己的数据文件,从而造成存储数据的大盆宜复。由于在数据库系统方式下.教据不再是面向某个应用,而是面向整个系统,这就使得数据库中的数据冗余度小.从而避免了由于数据大扭冗余带来的数据冲突问题。

据库系统通过数据模型和数据控制机制提高数据的共享性。数据共享度高会提高数据的利用率,使得数据更有价值,能够更容易、更方使地使用。

2数据库加密方法

从所面临的安全与保密威胁方面来看,数据库系统应该重点对付以下威胁: 非授权访问、假冒合法用广、数据完整性受破坏系统的正常运行、病毒、通信线路被窃听等。而威胁网络安全的因素:计算机系统的脆弱性、协议安全的脆弱性、数据库管理系统安全的脆弱性、人为的因素、各种外部威胁,主要包括以下方面。

数据欺骗:非法篡改数据或输人假数据;特洛伊木马术:非法装人秘密指令或程序,由计算机执行犯罪活动;意大利香肠术:利用计算机从金融银行信息系统上一点点窃取存款,如窃取账户的利息尾数,积少成多;逻辑炸弹:输人犯罪指令,以便在指定的时间或条件下删除数据文卷,或者破坏系统功能;线路截收:从系统通信线路上截取信息;陷阱术:利用程序中用于调试或修改、增加程序功能而特设的断点,插人犯罪指令或在硬件中相应的地方增设某种供犯罪用的装置,总之是利用软件和硬件的某些断点或接口插入犯罪指令或装置;寄生术:用某种方式紧跟有特权的用户进人系统,或者在系统中装人“寄生虫”;超级冲杀:用共享程序突破系统防护,进行非法存取或破坏数据及系统功能;异步攻击:将犯罪指令混杂在正常作业程序中,以获取数据文件.电脑病毒:将具有破坏系统功能和系统服务与破坏或删除数据文卷的犯罪程序装人系统某个功能程序中,让系统在运行期间将犯罪程序自动拷贝给其他系统,这就好像传染性病毒一样四处蔓延。

2.1数据库加密技术探索

密码学是一门古老而深奥的学科,对一般人来说是陌生的,因为长期以来它只在很小的范围内(如军事、外交、悄报等部门)使用。计算机密码学是研究计算机信息加密、解密及其变换的科学.是数学和计算机的交叉学科,也是一门新兴的学科,随着计算机网络和计算机通信技术的发展,计算机密码学得到前所未有的重视并迅速普及和发展起来。数据加密技术主要分为传输加密和存储加密,而数据传输加密技术是对传输中的数据流进行加密,常用的有链路加密、节点加密和端到端加密三种方式。

(1)链路加密,是传输数据仅在物理层前的数据链路层进行加密,不考虑信源和信宿。它用于保护通信节点间的数据,接收方是传送路径上的各台节点机,信息在每台节点机内都要被解密和再加密,依次进行,直至到达目的地。

(2)节点加密,是在节点处采用一个与节点机相连的密码装置。密文在该装置中被解密并被重新加密,明文不通过节点机,避免了链路加密节点处易受攻击铂缺点。

结语

数据加密技术是最基本的安全技术,被誉为信息安全的核心,最初主要用于保证数据在存储和传输过程中的保密性。它通过变换和置换等各种方法将被保护信息置换成密文,然后再进行信息的存储或传输,即使加密信息在存储或者传输过程为非授权人员所获得,也可以保证这些信息不为其认知.从而达到保护信息的目的。该方法的保密性直接取决于所采用的密码算法和密钥长度。

参考文献

[1]钱雪忠.数据库原理及技术[M].北京:清华大学出版社,2011.

上一篇:水利管理范文 下一篇:水文档案论文范文