加密技术论文范文

时间:2022-07-28 02:16:58

引言:寻求写作上的突破?我们特意为您精选了4篇加密技术论文范文,希望这些范文能够成为您写作时的参考,帮助您的文章更加丰富和深入。

加密技术论文

篇1

一、混沌的基本原理

混沌是一种复杂的非线性、非平衡的动力学过程,其特点为:(1)混沌系统的行为是许多有序行为的集合,而每个有序分量在正常条件下,都不起主导作用;(2)混沌看起来似为随机,但都是确定的;(3)混沌系统对初始条件极为敏感,对于两个相同的混沌系统,若使其处于稍异的初态就会迅速变成完全不同的状态。

1963年,美国气象学家洛伦兹(Lorenz)提出混沌理论,认为气候从本质上是不可预测的,最微小的条件改变将会导致巨大的天气变化,这就是著名的“蝴蝶效应”。此后混沌在各个领域都得到了不同程度的运用。20世纪80年代开始,短短的二十几年里,混沌动力学得到了广泛的应用和发展。

二、混沌在加密算法中的应用

混沌系统由于对初值的敏感性,很小的初值误差就能被系统放大,因此,系统的长期性是不可预测的;又因为混沌序列具有很好的统计特性,所以它可以产生随机数列,这些特性很适合于序列加密技术。信息论的奠基人美国数学家Shannon指出:若能以某种方式产生一随机序列,这一序列由密钥所确定,任何输入值一个微小变化对输出都具有相当大影响,则利用这样的序列就可以进行加密。混沌系统恰恰符合这种要求。

混沌系统的特性使得它在数值分布上不符合概率统计学原理,得不到一个稳定的概率分布特征;另外,混沌数集是实数范围,还可以推广到复数范围。因此,从理论上讲,利用混沌原理对数据进行加密,可以防范频率分析攻击、穷举攻击等攻击方法,使得密码难于分析、破译。

从1992年至今,混沌保密通信经历了四代。混沌掩盖和混沌键控属于第一代混沌保密通信技术,安全性能非常低,实用性大大折扣。混沌调制属于第二代混沌保密通信技术,尽管第二代系统的安全性能比第一代高,但是仍然达不到满意的程度。混沌加密技术属于第三代混沌保密通信,该类方法将混沌和密码学的优点结合起来,具有非常高的安全性能。基于脉冲同步的混沌通信则属于第四代混沌保密通信。

三、混沌加密算法的性能评估

参考美国国家标准与技术协会(NIST)的评判规则LNIST的评判规则大体分为三个部分:安全性、代价和算法实现特性。介绍了一种基于Lorenz系统的混沌加密算法,以此标准分析了其性能,并将其与当前通用加密算法进行比较。

1.安全性分析

篇2

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

幸运的是,在所有的加密算法中最简单的一种就是“置换表”算法,这种算法也能很好达到加密的需要。每一个数据段(总是一个字节)对应着“置换表”中的一个偏移量,偏移量所对应的值就输出成为加密后的文件。加密程序和解密程序都需要一个这样的“置换表”。事实上,80x86cpu系列就有一个指令‘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字节的表。让这个随机数产生器接着来产生这个表中的其余的数,以至于每个表是不同的。下一步,使用"shotguntechnique"技术来产生解码表。基本上说,如果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操作。这个算法产生了一系列的随机数。算法如下:

unsignedlongdw1,dw2,dw3,dwmask;

inti1;

unsignedlongarandom[256];

dw1={seed#1};

dw2={seed#2};

dwmask={seed#3};

//thisgivesyou332-bit"seeds",or96bitstotal

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

{

dw3=(dw1+dw2)^dwmask;

arandom[i1]=dw3;

dw1=dw2;

dw2=dw3;

}

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

int__cdeclmysortproc(void*p1,void*p2)

{

unsignedlong**pp1=(unsignedlong**)p1;

unsignedlong**pp2=(unsignedlong**)p2;

if(**pp1<**pp2)

return(-1);

elseif(**pp1>*pp2)

return(1);

return(0);

}

...

inti1;

unsignedlong*aprandom[256];

unsignedlongarandom[256];//samearrayasbefore,inthiscase

intaresult[256];//resultsgohere

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

{

aprandom[i1]=arandom+i1;

}

//nowsortit

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

//finalstep-offsetsforpointersareplacedintooutputarray

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

{

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

}

...

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

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

四.结论:

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

参考文献:

1.pgp!/

cyberknights(newlink)/cyberkt/

(oldlink:/~merlin/knights/)

2.cryptochamberjyu.fi/~paasivir/crypt/

3.sshcryptographa-z(includesinfoonsslandhttps)ssh.fi/tech/crypto/

4.funet''''cryptologyftp(yetanotherfinlandresource)ftp://ftp.funet.fi/pub/crypt/

agreatenigmaarticle,howthecodewasbrokenbypolishscientists

/nbrass/1enigma.htm

5.ftpsiteinukftp://sable.ox.ac.uk/pub/crypto/

6.australianftpsiteftp://ftp.psy.uq.oz.au/pub/

7.replayassociatesftparchiveftp://utopia.hacktic.nl/pub/replay/pub/crypto/

篇3

当前,大部分计算机的系统为Windows系统,只有少数计算机的系统为Linux系统。Windows系统受众面广,受网络攻击的可能性更大,再加上系统本身存在很多漏洞,严重影响了计算机数据信息的安全性。如果黑客攻击系统所存在的漏洞,就会导致病毒通过漏洞感染计算机。计算机操作系统建设所用的代码会涉及到汇编、反汇编等底层代码,并且所有代码的编写需要整个团队来完成,这样往往在代码编写过程中就会出现漏洞,需要用专门的补丁来修复。系统漏洞的存在给计算机的安全使用带来了极大的威胁,导致银行账号、密码,游戏账号、密码等泄露,从而对计算机使用者造成一定的损失。

1.2计算机病毒

计算机病毒具有感染性强、蔓延范围广、传播速度快等特点,是威胁计算机数据安全的重要因素。在病毒进入到计算机程序后,如果将带有病毒的数据文件应用于计算机网络传输或共享,那么其他计算机在浏览或打开此数据文件时也会被感染,出现连锁式病毒传播。另外,如果计算机病毒过多,会对计算机操作系统造成十分严重的影响,出现死机或者数据丢失等事故。

1.3非正常入侵

计算机网络具有开放性特点,在互联网背景下,很多不法分子利用系统本身存在的漏洞非法入侵用户计算机。非法入侵者一般采取窃听、监视等手段,获取计算机网络用户的口令、IP包和用户信息等,然后利用各种信息进入计算机局域网内,并采用冒充系统客户或者用合法用户的IP地址代替自己的IP地址等方式,篡改或窃取计算机网络内的数据信息。

2数据加密技术的应用

2.1密钥保护

密钥保护是数据加密中一种常用的加密技术。改变密钥的表达方式,可提高密文书写的多变性,体现多层次的加密方式。密钥保护可分为公钥保护和私钥保护两种方式。通常这两种方式相互配合,对提高计算机数据信息的安全性具有重要意义。私钥保护具有一定的局限性,在使用时必须借助公钥保护来完成整个保护动作。密钥保护的原理是:当计算机进行数据传输时,选用公钥对需要传输的信息进行加密,在用户接收数据后,需要通过私钥来完成解密动作,以此来确保传输数据的安全性,避免攻击者非法窃取传输过程中的数据。当前,秘钥保护方式一般用于管理系统和金融系统中,可以完成对私人信息、用户登录和访问过程等方面的保护。

2.2USBkey保护

USBkey是数据加密技术的典型代表,一般用于银行交易系统中,保证网络交易环境的安全性。USBkey服务于客户端到银行系统,对每项数据信息的传输都需要加密处理,避免数据在传输过程中受到恶意攻击。就现状来看,银行系统通过计算机网络来完成工作的概率逐渐上升。USBkey可以保护银行系统能够在相对安全的环境中完成交易。在用户利用计算机网络进行银行交易时,USBkey中的加密技术会自动匹配用户信息,即便用户行为被跟踪,攻击者也无法破译USBkey中的加密技术,通过加强用户登录身份的验证,保证用户财务安全。

2.3数字签名保护

数字签名保护是比较常用的一种数据加密技术,具有很好的保护效果。数字签名保护的原理是利用加密、解密过程,识别用户身份,从而保证数据信息的安全性。数字签名保护也分为公钥保护和私钥保护两种,如果只使用其中的一种保护方式,会在本质上降低安全保护的效果。因此,通常情况下,常在私钥签名处外加一层公钥保护,提高数字签名保护的效果。

篇4

随着电子商务逐渐越来越多的应用,数据的安全问题越来越受到重视。一是企业本身需要对自己的关键数据进行有效的保护;二是企业从应用服务提供商(ApplicationServiceProvider,ASP)处获得应用支持和服务,在这种情况下,企业的业务数据存放在ASP处,其安全性无法得到有效的保障。因为传统的数据库保护方式是通过设定口令字和访问权限等方法实现的,数据库管理员可以不加限制地访问和更改数据库中的所有数据。解决这一问题的关键是要对数据本身加密,即使数据不幸泄露或丢失,也难以被人破译,关于这一点现基本数据库产品都支持对数据库中的所有数据加密存储。

-对数据进行加密,主要有三种方式:系统中加密、客户端(DBMS外层)加密、服务器端(DBMS内核层)加密。客户端加密的好处是不会加重数据库服务器的负载,并且可实现网上的传输加密,这种加密方式通常利用数据库外层工具实现。而服务器端的加密需要对数据库管理系统本身进行操作,属核心层加密,如果没有数据库开发商的配合,其实现难度相对较大。此外,对那些希望通过ASP获得服务的企业来说,只有在客户端实现加解密,才能保证其数据的安全可靠。

1.常用数据库加密技术

信息安全主要指三个方面。一是数据安全,二是系统安全,三是电子商务的安全。核心是数据库的安全,将数据库的数据加密就抓住了信息安全的核心问题。

对数据库中数据加密是为增强普通关系数据库管理系统的安全性,提供一个安全适用的数据库加密平台,对数据库存储的内容实施有效保护。它通过数据库存储加密等安全方法实现了数据库数据存储保密和完整性要求,使得数据库以密文方式存储并在密态方式下工作,确保了数据安全。

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

经过近几年的研究,我国数据库加密技术已经比较成熟。

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

(1)身份认证:

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

(2)通信加密与完整性保护:

有关数据库的访问在网络传输中都被加密,通信一次一密的意义在于防重放、防篡改。

(3)数据库数据存储加密与完整性保护:

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

(4)数据库加密设置:

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

(5)多级密钥管理模式:

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

(6)安全备份:

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

1.2对数据库加密系统基本要求

(1)字段加密;

(2)密钥动态管理;

(3)合理处理数据;

(4)不影响合法用户的操作;

(5)防止非法拷贝;

1.3数据加密的算法

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

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

DES算法,DES(DataEncryptionStandard)是由IBM公司在1970年以后发展起来的,于1976年11月被美国政府采用,DES随后被美国国家标准局和美国国家标准协会(AmericanNationalStandardInstitute,ANSI)承认,DES算法把64位的明文输入块变为64位的密文输出块,它所使用的密钥也是64位,DES算法中只用到64位密钥中的其中56位。

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

RSA算法它是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作,也很流行。算法的名字就是发明者的名字:RonRivest,AdiShamir和LeonardAdleman,但RSA的安全性一直未能得到理论上的证明,RSA的安全性依赖于大数的因子分解,但并没有从理论上证明破译RSA的难度与大数分解难度等价。即RSA的重大缺陷是无法从理论上把握它的保密性能如何,而且密码学界多数人士倾向于因子分解不是NPC问题,RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。RSA是被研究得最广泛的公钥算法,从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。

AES是美国高级加密标准算法,将在未来几十年里代替DES在各个领域中得到广泛应用,尽管人们对AES还有不同的看法,但总体来说,AES作为新一代的数据加密标准汇聚了强安全性、高性能、高效率、易用和灵活等优点。AES设计有三个密钥长度:128,192,256位,相对而言,AES的128密钥比DES的56密钥强1021倍。AES算法主要包括三个方面:轮变化、圈数和密钥扩展。在理论上,此加密方法需要国家军事量级的破解设备运算10年以上时间才可能破译。

1.4数据库数据加密的实现

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

在系统中加密,在系统中无法辨认数据库文件中的数据关系,将数据先在内存中进行加密,然后文件系统把每次加密后的内存数据写入到数据库文件中去,读入时再逆方面进行解密就,这种加密方法相对简单,只要妥善管理密钥就可以了。缺点对数据库的读写都比较麻烦,每次都要进行加解密的工作,对程序的编写和读写数据库的速度都会有影响。

在DBMS内核层实现加密需要对数据库管理系统本身进行操作。这种加密是指数据在物理存取之前完成加解密工作。这种加密方式的优点是加密功能强,并且加密功能几乎不会影响DBMS的功能,可以实现加密功能与数据库管理系统之间的无缝耦合。其缺点是加密运算在服务器端进行,加重了服务器的负载,而且DBMS和加密器之间的接口需要DBMS开发商的支持。

在DBMS外层实现加密的好处是不会加重数据库服务器的负载,并且可实现网上的传输,加密比较实际的做法是将数据库加密系统做成DBMS的一个外层工具,根据加密要求自动完成对数据库数据的加解密处理。

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

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

按以上方式实现的数据库加密系统具有很多优点:首先,系统对数据库的最终用户是完全透明的,管理员可以根据需要进行明文和密文的转换工作;其次,加密系统完全独立于数据库应用系统,无须改动数据库应用系统就能实现数据加密功能;第三,加解密处理在客户端进行,不会影响数据库服务器的效率。

数据库加解密引擎是数据库加密系统的核心部件,它位于应用程序与数据库服务器之间,负责在后成数据库信息的加解密处理,对应用开发人员和操作人员来说是透明的。数据加解密引擎没有操作界面,在需要时由操作系统自动加载并驻留在内存中,通过内部接口与加密字典管理程序和用户应用程序通讯。数据库加解密引擎由三大模块组成:加解密处理模块、用户接口模块和数据库接口模块。

2.结束语

上面的论述还远远没达到数据库安全需要,比如现在的数据库基本都给与网络架构,网际的安全传输等,也是要重点考虑的方面,等等。一个好的安全系统必须综合考虑核运用这些技术,以保证数据的安全,通过一上论述希望对大家有所帮助,同时也和大家一起讨论一起学习,共同进步。

参考文献:

友情链接