数据加密技术范文
时间:2023-04-02 19:53:03
导语:如何才能写好一篇数据加密技术,这就需要搜集整理更多的资料和文献,欢迎阅读由公务员之家整理的十篇范文,供你借鉴。
篇1
一:数据加密方法
在传统上,我们有几种方法来加密数据流。所有这些方法都可以用软件很容易的实现,但是当我们只知道密文的时候,是不容易破译这些加密算法的(当同时有原文和密文时,破译加密算法虽然也不是很容易,但已经是可能的了)。最好的加密算法对系统性能几乎没有影响,并且还可以带来其他内在的优点。例如,大家都知道的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! pgpi.com/
cyber knights(new link) members.tripod.com/cyberkt/
(old link: netnet.com/~merlin/knights/ )
2 . crypto chamber jyu.fi/~paasivir/crypt/
3 . ssh cryptograph a-z (includes info on ssl and https) ssh.fi/tech/crypto/
篇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/
8.rsadatasecurity(whynotincludethemtoo!)/
篇3
21世纪是一个信息大爆炸的时代,计算机和网络的发展越来越先进的同时,我们亟待解决的问题也是层出不穷,为了保证我们个人的信息数据安全,除了安装杀毒软件之外,我们还应该使用加密技术保证信息数据的安全性。以下是目前的一些计算机信息数据加密技术的介绍。
1.1计算机信息数据的存储加密以及传输加密
存储加密和传输加密是计算机信息数据安全的重要组成部分。下面就计算机的传输加密和存储加密技术进行详细的介绍:
(1)计算机信息存储加密技术:存储加密技术是计算机在运行过程中数据在计算机中存储的过程的安全。存储加密技术根据是实现的方式的不同,又可以分为存储控制和密文存储两种类型。加密模块或者加密算法是实行密文存储的主要方式,限制用户的权限和辨别用户的合法性是实现存储控制的两种方式。这两种加密技术均可有效的防治计算机信息在存储的过程中的盗取。
(2)计算机信息传输加密技术:对需要传输的数据进行加密处理是传输加密技术的主要方式,来确保计算机信息数据在传输过程中的安全性。传输加密技术也包括两种类型:端-端加密和线路加密。对传输路线进行不同的加密密匙是线路加密技术的主要实现方式。发送用户在发送信息数据的时候就对信息进行加密处理,用无法识别的方式或者无法阅读的方式进行信息的传输,当数据到达目的地以后,接受用户解码这些数据包,就变成了可供用户使用信息了。
1.2确认加密技术和密匙管理加密技术
除了上文中提到的计算机存储加密技术和传输加密技术以外,还有另外一种加密技术即确认加密技术和密匙管理加密技术。
(1)密匙管理加密技术:密匙的媒体主要有磁卡、半导体存储器以及磁盘等,密匙的产生、保存以及销毁时密匙管理技术的重要组成部分。为保证信息数据的安全性我们可以通过密匙管理加密技术,密匙的管理技术就是通过管理以上各个环节的安全来保证计算机信息数据的安全。
(2)确认加密技术:通过限制计算机数据信息的共享范围是确认加密技术的只要实现方式,防治恶意程序的修改和仿造,更好的保证了计算机信息数据的安全性。确认加密技术可以有效防止别人伪造虚假信息。还能够使接受者辨别自己收到的信息是否合法真实的。在确认加密技术中,根据目的的不同信息确认的系统主要有以下几种不同的形式:消息确认、身份确认、数字签字。
1.3消息摘要和完整性鉴别技术
(1)消息摘要就是与一个消息或者文本唯一相对应的一个值,从国一个单项的hash加密函数对消息发生作用而产生的加密技术。
(2)完整性鉴别技术:完整性鉴别技术是一套完整的鉴别系统,由信息数据、身份、口令和密匙等多项内容组成。在运行计算机的过程中,系统会验证这些输入的项目,判断输入的数值是否和设定的值一致。有效的保护了计算机数据信息的安全。
2结束语
篇4
1数据加密技术在计算机安全中的应用
在运行计算机网络的过程中,所有应用系统在提供服务的过程中,该应用系统运行时都需要通过数据资料的传输。所以数据信息的安全性是保障整个计算机网络正常运行的关键所在。数据加密的过程就是根据某种算法,对原有合法文件、数据资料进行适当的处理,使其成为一段不可读取的代码,一般情况下被称为“密文”,并使其只能在输入相应的密钥后才能够显示出原有的资料内容,利用这种技术手段能够实现保护网络数据资料不会受到非法入侵人员窃取的目的。数据加密是按照既定的密码将强设别性能的明文密码改成识别难度大的数据形式,并利用不同的密钥,采取相同的加密算法将文件进行加密,从而形成了不同的密文模式将数据资料保护起来。数据加密技术在整个社会的各个领域中的应用方式与应用形式都不相同。在硬件的应用方面,公交IC卡、门禁卡、二代身份证等,均嵌入了IC芯片,而怎样将数据加密技术应用到IC芯片中,将会成为数据加密技术新的发展方向。现阶段,在计算机网络交易的过程中,我国的各大银行都采用的是数据加密技术和计算机网络进行了互换机械设备的联动,并将所有数据流的信息资料安全传输到设备中,系统再按照其传输的数据信息进行了环境分析,一旦检查到安全隐患,将会立刻采取必要的手段,将计算机网络安全问题的具体反映动作准确传输到交换机上,交换机及西宁端口关闭,从而保护了数据库中的数据信息并更改了密码。密钥作为目前数据加密的重要表现形式,相比较而言,数据的安全性能更高,具备公用与私人这两种不同形式,所适用的范围较为广泛,尤其是在计算机网络的交易过程中,使用这种形式更加广泛,例如:利用信用卡进行购物的过程中,商家使用的是公用密钥,这为解读利用信用卡在购物过程中产生的信息提供了方便,也可能会留下信用卡户主的个人信息记录。数字签名认证作为目前数据加密技术的另一种主要表现形式。基于在数据加密技术上数字签名认证技术,采用加密解密的计算方法进行数据安全保障。数字加密技术也分为公用与私人这两种形式,但是通常情况下,签名安全认证系统在计算机网站的税务安全部门得到了比较广泛的应用。此外,在电子商务运行平台方面,数据加密技术充分利用自身安全性高这一特征,保障了SSL协议中能够安全传输用户密码与个人信息数据等。
2结语
人们在使用计算机网络的同时也越来越关注重要数据资料的保密性与安全性。现阶段,数据加密技术成为了保障数据信息安全性的有效技术手段。人们应该加大对数据加密技术的研究力度。
作者:易鸣亮单位:湖北工业大学
篇5
关键词:信息数据 安全 加密技术
当前形势下,人们进行信息数据的传递与交流主要面临着两个方面的信息安全影响:人为因素和非人为因素。其中人为因素是指:黑客、病毒、木马、电子欺骗等;非人为因素是指:不可抗力的自然灾害如火灾、电磁波干扰、或者是计算机硬件故障、部件损坏等。在诸多因素的制约下,如果不对信息数据进行必要的加密处理,我们传递的信息数据就可能泄露,被不法分子获得,损害我们自身以及他人的根本利益,甚至造成国家安全危害。因此,信息数据的安全和加密在当前形势下对人们的生活来说是必不可少的,通过信息数据加密,信息数据有了安全保障,人们不必再顾忌信息数据的泄露,能够放心地在网络上完成便捷的信息数据传递与交流。
1、信息数据安全与加密的必要外部条件
1.1 计算机安全。每一个计算机网络用户都首先把自己的信息数据存储在计算机之中,然后,才进行相互之间的信息数据传递与交流,有效地保障其信息数据的安全必须以保证计算机的安全为前提,计算机安全主要有两个方面包括:计算机的硬件安全与计算机软件安全。1)计算机硬件安全技术。保持计算机正常的运转,定期检查是否出现硬件故障,并及时维修处理,在易损器件出现安全问题之前提前更换,保证计算机通电线路安全,提供备用供电系统,实时保持线路畅通。2)计算机软件安全技术。首先,必须有安全可靠的操作系统。作为计算机工作的平台,操作系统必须具有访问控制、安全内核等安全功能,能够随时为计算机新加入软件进行检测,如提供windows安全警报等等。其次,计算机杀毒软件,每一台计算机要正常的上网与其他用户交流信息,都必须实时防护计算机病毒的危害,一款好的杀毒软件可以有效地保护计算机不受病毒的侵害。
1.2 通信安全。通信安全是信息数据的传输的基本条件,当传输信息数据的通信线路存在安全隐患时,信息数据就不可能安全的传递到指定地点。尽管随着科学技术的逐步改进,计算机通信网络得到了进一步完善和改进,但是,信息数据仍旧要求有一个安全的通信环境。主要通过以下技术实现。1)信息加密技术。这是保障信息安全的最基本、最重要、最核心的技术措施。我们一般通过各种各样的加密算法来进行具体的信息数据加密,保护信息数据的安全通信。2)信息确认技术。为有效防止信息被非法伪造、篡改和假冒,我们限定信息的共享范围,就是信息确认技术。通过该技术,发信者无法抵赖自己发出的消息;合法的接收者可以验证他收到的消息是否真实;除合法发信者外,别人无法伪造消息。3)访问控制技术。该技术只允许用户对基本信息库的访问,禁止用户随意的或者是带有目的性的删除、修改或拷贝信息文件。与此同时,系统管理员能够利用这一技术实时观察用户在网络中的活动,有效的防止黑客的入侵。
2、信息数据的安全与加密技术
随着计算机网络化程度逐步提高,人们对信息数据传递与交流提出了更高的安全要求,信息数据的安全与加密技术应运而生。然而,传统的安全理念认为网络内部是完全可信任,只有网外不可信任,导致了在信息数据安全主要以防火墙、入侵检测为主,忽视了信息数据加密在网络内部的重要性。以下介绍信息数据的安全与加密技术。
2.1 存储加密技术和传输加密技术。存储加密技术分为密文存储和存取控制两种,其主要目的是防止在信息数据存储过程中信息数据泄露。密文存储主要通过加密算法转换、加密模块、附加密码加密等方法实现;存取控制则通过审查和限制用户资格、权限,辨别用户的合法性,预防合法用户越权存取信息数据以及非法用户存取信息数据。
传输加密技术分为线路加密和端-端加密两种,其主要目的是对传输中的信息数据流进行加密。线路加密主要通过对各线路采用不同的加密密钥进行线路加密,不考虑信源与信宿的信息安全保护。端-端加密是信息由发送者端自动加密,并进入TCP/IP信息数据包,然后作为不可阅读和不可识别的信息数据穿过互联网,这些信息一旦到达目的地,将被自动重组、解密,成为可读信息数据。
2.2 密钥管理加密技术和确认加密技术。密钥管理加密技术是为了信息数据使用的方便,信息数据加密在许多场合集中表现为密钥的应用,因此密钥往往是保密与窃密的主要对象。密钥的媒体有:磁卡、磁带、磁盘、半导体存储器等。密钥的管理技术包括密钥的产生、分配、保存、更换与销毁等各环节上的保密措施。网络信息确认加密技术通过严格限定信息的共享范围来防止信息被非法伪造、篡改和假冒。一个安全的信息确认方案应该能使:合法的接收者能够验证他收到的消息是否真实;发信者无法抵赖自己发出的消息;除合法发信者外,别人无法伪造消息;发生争执时可由第三人仲裁。按照其具体目的,信息确认系统可分为消息确认、身份确认和数字签名。数字签名是由于公开密钥和私有密钥之间存在的数学关系,使用其中一个密钥加密的信息数据只能用另一个密钥解开。发送者用自己的私有密钥加密信息数据传给接收者,接收者用发送者的公钥解开信息数据后,就可确定消息来自谁。这就保证了发送者对所发信息不能抵赖。
2.3 消息摘要和完整性鉴别技术。消息摘要是一个惟一对应一个消息或文本的值,由一个单向Hash加密函数对消息作用而产生。信息发送者使用自己的私有密钥加密摘要,也叫做消息的数字签名。消息摘要的接受者能够通过密钥解密确定消息发送者,当消息在途中被改变时,接收者通过对比分析消息新产生的摘要与原摘要的不同,就能够发现消息是否中途被改变。所以说,消息摘要保证了消息的完整性。
完整性鉴别技术一般包括口令、密钥、身份(介入信息传输、存取、处理的人员的身份)、信息数据等项的鉴别。通常情况下,为达到保密的要求,系统通过对比验证对象输入的特征值是否符合预先设定的参数,实现对信息数据的安全保护。
3、结束语
综上所述,信息数据的安全与加密技术,是保障当前形势下我们安全传递与交流信息的基本技术,对信息安全至关重要。希望通过本文的研究,能够抛砖引玉,引起国内外专家的重视,投入更多的精力以及更多的财力、物力来研究信息数据安全与加密技术,以便更好的保障每一个网络使用者的信息安全。
参考文献
[1]曾莉红,基于网络的信息包装与信息数据加密[J].包装工程,2007(08).
[2]华硕升级光盘加密技术[J].消费电子商讯,2009(11).
篇6
Abstract: Data encryption is an effective way to protect data security. It treats a paragraph in some calculating method and to change the paragraph into a cipher text to prevent data from stealing and reading by unauthorized people. Data encryption could be divided into "symmetric" encryption and "asymmetric" encryption. Multi-step belongs to the symmetric encryption and is widely used because of its high security.
关键词:多步数据加密;密钥;伪随机序列
Key words: multi-step data encryption;encryption key;pseudo-random sequence
中图分类号:TP30 文献标识码:A文章编号:1006-4311(2010)18-0185-02
1数据加密的概念、理由及标准
1.1 数据加密的概念数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”,使其只能在输入相应的密钥之后才能显示出本来内容,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。该过程的逆过程为解密,即将该编码信息转化为其原来数据的过程。
1.2 数据加密的标准最早、最著名的保密密钥或对称密钥加密算法DES(Data Encryption Standard)是由IBM公司在20世纪70年展起来,并经政府的加密标准筛选后,于1976年11月被美国政府采用,DES随后被美国国家标准局和美国国家标准协会(American National Standard Institute,ANSI)承认。DES使用56位密钥对64位的数据块进行加密,并对64位的数据块进行16轮编码。当时DES被认为是一种十分强大的加密方法。
随着计算机硬件的速度越来越快,制造一台这样特殊的机器的花费已经降到了十万美元左右,而用它来保护十亿美元的银行,那显然是不够保险了。另一方面,如果只用它来保护一台普通服务器,那么DES确实是一种好的办法,因为黑客绝不会仅仅为入侵一个服务器而花那么多的钱破解DES密文。另一种非常著名的加密算法就是RSA了,RSA(Rivest-Shamir-Adleman)算法是基于大数不可能被质因数分解假设的公钥体系。简单地说就是找两个很大的质数。一个对外公开的为“公钥”(Prblic key) ,另一个不告诉任何人,称为“私钥”(Private key)。这两个密钥是互补的,也就是说用公钥加密的密文可以用私钥解密,反过来也一样。
2数据加密方法
对称加密算法是应用较早的加密算法,技术成熟。对称式加密就是加密和解密使用同一个密钥。在对称加密算法中,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。对称加密算法的特点是算法公开、计算量小、加密速度快、加密效率高。不足之处是,交易双方都使用同样钥匙,安全性得不到保证。此外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的惟一钥匙,这会使得发收信双方所拥有的钥匙数量成几何级数增长,密钥管理成为用户的负担。对称加密算法在分布式网络系统上使用较为困难,主要是因为密钥管理困难,使用成本较高。在计算机专网系统中广泛使用的对称加密算法有DES、IDEA和AES。
3多步加密算法
下面将介绍一种崭新的数据加密算法,这个算法在1998年6月1日才正式公布的,据说是几乎不可能被破译的。下面详细的介绍这个算法:使用一系列的数字(比如说128位密钥),来产生一个可重复的但高度随机化的伪随机的数字的序列。一次使用256个表项,使用随机数序列来产生密码转表,把256个随机数放在一个距阵中,然后对他们进行排序,使用这样一种方式(我们要记住最初的位置)使用最初的位置来产生一个表,随意排序的表,表中的数字在0到255之间。如果不是很明白如何来做,就可以不管它。但是,下面也提供了一些原码(在下面)是我们明白是如何来做的。现在,产生了一个具体的256字节的表。让这个随机数产生器接着来产生这个表中的其余的数,以至于每个表是不同的。下一步,使用“shotgun technique”技术来产生解码表。基本上说,如果a映射到b,那么b一定可以映射到a,所以b[a[n]]=n.(n是一个在0到255之间的数)。在一个循环中赋值,使用一个256字节的解码表它对应于我们刚才在上一步产生的256字节的加密表。
4加密技术的应用
现在人们开始用RSA(一种公开/私有密钥)的加密技术,提高信用卡交易的安全性,从而使电子商务走向实用成为可能。NETSCAPE公司是Internet商业中领先技术的提供者,该公司提供了一种基于RSA和保密密钥的应用于因特网的技术,被称为安全插座层(Secure Sockets Layer,SSL)。
Socket是一个编程界面,并不提供任何安全措施,而SSL不但提供编程界面,而且向上提供一种安全的服务,SSL3.0现在已经应用到了服务器和浏览器上,SSL2.0则只能应用于服务器端。SSL3.0用一种电子证书(electric certificate)来实行身份进行验证后,双方就可以用保密密钥进行安全的会话了。它同时使用“对称”和“非对称”加密方法,在客户与电子商务的服务器进行沟通的过程中,客户会产生一个Session Key,然后客户用服务器端的公钥将Session Key进行加密,再传给服务器端,在双方都知道Session Key后,传输的数据都是以Session Key进行加密与解密的,但服务器端发给用户的公钥必需先向有关发证机关申请,以得到公证。基于SSL3.0提供的安全保障,用户就可以自由订购商品并且给出信用卡号了,也可以在网上和合作伙伴交流商业信息并且让供应商把订单和收货单从网上发过来,这样可以节省大量的纸张,为公司节省大量的电话、传真费用。
现在,越多越多的公司走向国际化,一个公司可能在多个国家都有办事机构或销售中心,每一个机构都有自己的局域网LAN(Local Area Network),但在当今的网络社会人们的要求不仅如此,用户希望将这些LAN连结在一起组成一个公司的广域网,这个在现在已不是什么难事了。
篇7
关键词:关系型数据库;加密;加密算法;粒度
中图分类号:F062.5文献标志码:A文章编号:1673-291X(2009)32-0258-02
数据库技术是信息系统的核心和基础,它的出现极大地促进了计算机应用向各行各业的渗透。数据库的建设规模、数据库信息量的大小和使用频度已逐渐成为衡量一个国家信息化程度的重要标志。在众多数据库模型中关系型数据库是现今使用最广泛、最容易理解和使用的数据库模型。大多数的企业级系统数据库都采用关系型数据库。下面本文就将对关系型数据库加密进行一些探讨性的研究。
1关系型数据库加密的必要性
关系型数据库系统的安全不仅依赖自身内部的安全机制,还与外部网络环境、应用环境、从业人员素质等因素息息相关。因此,从广义上讲,数据库系统的安全框架可以划分为三个层次,即网络系统层次、宿主操作系统层次、数据库管理系统层次。
这三个层次构筑成数据库系统的安全体系,与数据安全的关系是逐步紧密的,防范的重要性也逐层加强,从外到内、由表及里保证数据的安全。但是,值得注意的是OS和DBMS对数据库文件本身仍然缺乏有效的保护措施,无法阻挡对数据文件本身的攻击。最简单的,如有人偷走了存放数据文件的硬盘,则文件中的信息将被泄露。
据有关资料报道,80%的计算机犯罪来自系统内部。在传统的关系型数据库系统中,数据库管理员的权力是至高无上,他既负责各项系统管理工作,又可以查询数据库中的一切信息。为此,不少系统以种种手段来削弱系统管理员的权力。实现关系型数据库加密以后,各用户(或用户组)的数据由用户用自己的密钥加密,数据库管理员获得的信息无法进行正常解密,从而保证了用户信息的安全。
2关系型数据库加密的要求与限制
2.1关系型数据库加密的要求
由于关系型数据库本身的特点和实际应用需求,对关系型数据库加密一般应实现以下功能:
(1)由于关系型数据库数据信息的生命周期一般比较长,所以加强加密的力度,难以破译;
(2)数据信息在加密后,不能明显地扩大存储空间;
(3)不能影响数据库的使用速度,即加/解密速度都应足够快;
(4)加密系统应同时提供一套安全的、灵活的密钥管理机构,提供灵活的加密要求满足;
(5)加密后的关系型数据库仍能满足用户在不同类别程度上的访问。
2.2关系型数据库加密的限制
数据加密通过对明文进行复杂的加密操作,以达到无法发现明文和密文之间、密文和密钥之间的内在关系,复杂性已经破译的难度要求足够高,也就是说经过加密的数据经得起来自DS和DBMS的攻击。另一方面,DBMS要完成对数据库文件的管理和使用,必须具有能够识别部分数据的条件。因此,只能对数据库中数据进行部分加密。以下几点是我们在给关系型数据库加密时应该注意的问题。
(1)索引字段不能加密
为了达到快速查询的目的,关系型数据库文件需要建立一些索引,它们的建立和应用必须是明文状态,否则将失去索引的作用。
(2)关系运算的比较字段不能加密
DBMS要组织和完成关系运算,运算的数据一般都要经过条件筛选,这种“条件”选择项必须是明文,否则DBMS将无法进行比较筛选。
(3)表间的连接码字段不能加密
关系型数据库中表之间存在着密切的联系,这种相关性往往是“外部编码”联系的,这些编码若加密就无法进行表与表之间的连接运算。
3关系型数据库加密方式
关系型数据库加密方式数据库加密,主要分为两种方式:DBMS外部加密和DBMS内部加密。
3.1 DBMS外部加密
DBMS外部加密的优点是,不需要修改DBMS,只需要在应用程序或者操作系统中增加相应的加/解密模块即可。但是,这种方法也有一些缺点,首先它不能支持各种加密粒度。其次,它仅仅对用户数据进行加密,而不能对元数据、索引数据、日志等进行加密。因此,安全性受到影响。再者,数据的完整性检查需要应用程序来完成,不能尽量发挥DBMS的作用,因为数据加密后,没有办法在DBMS完整性检查,而需要在应用程序中增加这项功能,实现起来非常麻烦。
3.2 DBMS内部加密
一般选择在数据物理存取之前进行加/解密操作。这种方法的优点是,由于DBMS能够区分各种粒度的数据,所以,可以支持各种粒度的加密,加密粒度可以灵活地选择。另外,在DBMS内部实现加密,可以更有效地利用DBMS内部的访问控制机制、授权机制等各种功能。更重要的是,关系型数据库一个重要特点是被多个应用共享,这种方法的加解密都是在DBMS内部完成,对应用程序是透明的,不需要在多个应用中进行修改,使用起来比较方便,且容易保持数据的一致性,缺点是需要修改DBMS的内核。关系型数据库的关键术语有:数据库、表、字段、行和数据元素。基本上可以针对这几方面形成一种加密的方法。
(1)数据库级
加密的对象是整个数据库,对数据库中所有的对象进行加密处理。这种加密方法只需要对存储在磁盘中的相应数据库文件进行加密处理即可,密钥的数量少,便于管理。但是,采用此加密粒度,对性能会带来很大的影响。即使只需要查询一条记录,也需要对整个数据库进行解密。这样,访问的速度不可避免的要降低。
(2)表级
加密的对象是数据库中的基本元素表。关系型数据库包含多个表,并不是所有的表都有很高的安全需要,因而只需要对其中一些包含敏感信息的表进行加密。与数据库级加密相比,采用表级加密粒度,系统的查询性能会有所改善,因为对于未加密表的查询,系统性能不会受到影响,对于加密表的查询,只需要解密对应的加密表,而不要解密整个数据库。但是,这种方法与DBMS集成时,需要对DBMS内部一些核心模块进行修改,这些工作是很困难完成的。
(3)记录级
加密的对象是数据表中的记录,即对整条记录一起进行加密处理。在实现记录级加密时,通过调用专门的加密函数,对记录进行加密。与数据库和表级加密相比,这种加密的粒度更细,可选择的灵活性更好。但是,它和表级加密一样,这种方法也需要对DBMS内核进行修改。
(4)字段级
加密的对象是关系中的某个字段,即表中的列。一张表包含多个字段,在某些时候,并不是所有的字段都需要加密。因为在实际生活中,一些重要和敏感的信息往往出现在关系中的某些列,只需要对这些重要数据进行加密保护,而不用对所有字段。在实现字段级加密时,可以采取多种方式,既可以在DBMS外部完成,也可以在DBMS内部完成。
(5)数据项级
加密的对象是记录中的某个字段值,它是数据库加密的最小粒度。数据项级加密的方法更为灵活,它的实现方式与字段级加密相似,但其密钥管理将会更加复杂。
4加密算法比较
加密算法是一些公式和法则,它规定了明文和密文之间的变换方法。密钥是控制加密算法和解密算法的关键信息,它的产生、传输、存储等工作是十分重要的。
DES算法,DES(Data Encryption Standard)是把64位的明文输入块变为64位的密文输出块,它所使用的密钥也是64位,但只用到其中56位。Des的密码学缺点是密钥长度相对比较短,因此,人们又想出了一个解决其长度的方法,即采用三重DES,三重DES是DES的一种变形。
RSA算法,它是第一个既能用于数据加密也能用于数字签名的算法。RSA的重大缺陷是无法从理论上把握它的保密性能如何,而且密码学界多数人士倾向于因子分解不是NPC问题,RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。
AES算法,将在未来几十年里代替DES在各个领域中得到广泛应用,总体来说,AES作为新一代的数据加密标准汇聚了强安全性、高性能、高效率、易用和灵活等优点。AES设计有三个密钥长度:128、192、256位,相对而言,AES的128密钥比DES的56密钥强1 021倍。AES算法主要包括三个方面:轮变化、圈数和密钥扩展。
5结束语
上面介绍的只是关系型数据库加密方法的一些探讨性研究,这些论述还远远没达到关系型数据库安全需要,比如现在的关系型数据库基本都给与网络架构,网际的安全传输等,也是要重点考虑的方面,等等。一个好的安全系统必须综合考虑如何运用这些技术,以保证数据的安全。
参考文献:
[1]胡志奇.数据库安全与加密技术研究[J].计算机与现代化,2003,(11):24-3.
[2]王晓峰,王尚平,秦波.数据库加密方法研究[J].西安理工大学学报,2002,(6):68-73.
篇8
1.1人为因素
计算机信息数据安全与否的问题,其重要性将直接关系到人们是否能够正常运用计算机办公工作的问题,但产生这种计算机信息数据安全问题最主要的影响因素也是因为人为所导致。部分计算机使用者意识到计算机网络信息技术的发展发达已成为人们工作和生活中不可或缺的工具之一,为此他们为了利用这种计算机的高使用率来谋取个人利益,通过对计算机进行代码的恶意编写来对系统和网络数据造成阻碍和破坏,甚至一些不法分子通过对计算机进行计算机网络电子欺诈、病毒的导入或者是恶意的木马植入等,这些行为都将直接对计算机的使用带来可怕的安全隐患,对此,也只有通过对计算机信息数据在安全问题方面加以更强更高的研究分析和防范,利用加密技术和电脑安全技术来确保信息数据的安全性。
1.2非人为因素
计算机的信息数据安全问题,除了人为因素的存在,非人为因素也是影响计算机信息安全的重要因素。这种非人为因素的存在主要是针对计算机自身所出现的问题,其中包括了计算机所出现的硬件故障或者电磁波的信息干扰等问题。所以人们在使用计算机的过程中,要谨防和避免计算机出现这种问题,并通过对计算机的认识和使用学习更好地掌握如何通过采取必要的防范措施来避免这种情况的发生,从而有效地确保计算机的信息数据不被破坏和丢失。
1.3安全使用计算机的外在因素
作为计算机的广大使用群体,习惯性地把计算机作为储存设备将大量的个人信息和工作资料保存在计算机储存盘里,要确保这些资料和信息能够安全地储存,就必须保证计算机本身所具备的安全性。而计算机本身的安全问题包括了计算机的软件安全和硬件安全。对于计算机的硬件方面,需要计算机使用者经常对计算机进行检查并在出现硬件故障时及时维修,从而保障计算机的正常运转;而计算机软件方面,通常最好安全杀毒软件例如360安全卫士、金山卫士等等,这些杀毒软件的安装,能够在计算机出现木马、漏洞或者恶意代码和各种不明病毒时自动为其清除,从而确保计算机信息数据的安全。
2计算机信息数据的加密技术
2.1计算机信息数据的存储加密和传输加密
在计算机的广泛使用过程中,计算机信息数据的存储加密和传输加密是计算机信息数据安全的最关键的两个过程。对于计算机信息数据的存储加密技术,旨在通过计算机的运行来保障存储资料信息能够安全进行,这种存储加密技术会因为存储方式的区别,又将这种加密技术分为存储控制、密文存储这两种不同的方式,通过这种方式能够让计算机在进行信息存储过程中对用户进行权限的限制,并通过一定的方式来对计算机使用者进行辨认,保证信息数据的合法安全性,从而确保计算机信息数据不被外人盗取;而计算机信息数据的传输加密技术,是保证计算机用户在进行数据的传输时进行加密技术的处理,从而保障信息数据传输的安全性。这种计算机信息数据的传输加密技术又分为端—端加密和线路加密两种类型,这两种不同类型的传输加密技术主要是针对不同的加密密钥进行加密的最重要的加密实现方法。当用户在进行信息数据传输之前,这种信息传输加密技术就已经对信息进行了安全检测并进行加密处理,使得信息数据在传输过程中不被外来人进行阅读和识别,并在数据传输到达目的地之后,在验证确认是接收者之后才能够对这些信息数据进行解码,从而供用户安全使用。
2.2确认加密技术和密钥管理加密技术
密钥管理加密技术是通过密钥的磁卡、半导体存储器以及磁盘进行技术支持和管理,在计算机信息数据进行传输时,密钥管理加密技术的运用,能够对计算机信息数据在传输过程中的各个环节进行把关和控制管理,从而保证计算机信息数据的安全传输;而确认加密技术是对计算机数据信息的共享范围进行了区别限制,通过这种识别性的共享限制技术来抵制一些不法分子通过恶意程序的修改和伪造所带来的对计算机的破坏和导致的安全隐患,同时,这种确认加密技术能够对计算机用户接收到的信息数据进行识别和辨认,防止病毒或者木马的携带,从而更好地确保计算机信息数据能够安全有效地传输。
2.3加密技术中的消息摘要和完整性鉴别技术
对于计算机信息数据的加密技术中的消息摘要,是通过一个连接一个消息或者文本中单一的一个对应值所实现的加密类型;而完整性鉴别技术是一套比较完整的信息数据的鉴别系统,包括了信息数据、口令、身份鉴别和密钥等多个内容所组成。计算机用户在进行信息数据的传输时,系统自动会对这些信息数据进行验证和检测,对所输入的内容信息进行判断和识别,确认这些数据是否能够与已设置的数值相吻合,从而确保信息数据的传输安全。
3结语
篇9
【关键词】计算机信息数据;安全与加密技术
一、计算机信息数据安全隐患出现的影响因素
(一)计算机信息数据安全与否的问题,其重要性将直接关系到人们是否能够正常运用计算机办公工作的问题,但产生这种计算机信息数据安全问题最主要的影响因素也是因为人为所导致。部分计算机使用者意识到计算机网络信息技术的发展发达已成为人们工作和生活中不可或缺的工具之一,为此他们为了利用这种计算机的高使用率来谋取个人利益,通过对计算机进行代码的恶意编写来对系统和网络数据造成阻碍和破坏,甚至一些不法分子通过对计算机进行计算机网络电子欺诈、病毒的导入或者是恶意的木马植入等,这些行为都将直接对计算机的使用带来可怕的安全隐患,对此,也只有通过对计算机信息数据在安全问题方面加以更强更高的研究分析和防范,利用加密技术和电脑安全技术来确保信息数据的安全性。
(二)计算机的信息数据安全问题,除了人为因素的存在,非人为因素也是影响计算机信息安全的重要因素。这种非人为因素的存在主要是针对计算机自身所出现的问题,其中包括了计算机所出现的硬件故障或者电磁波的信息干扰等问题。所以人们在使用计算机的过程中,要谨防和避免计算机出现这种问题,并通过对计算机的认识和使用学习更好地掌握如何通过采取必要的防范措施来避免这种情况的发生,从而有效地确保计算机的信息数据不被破坏和丢失。
(三)作为计算机的广大使用群体,习惯性地把计算机作为储存设备将大量的个人信息和工作资料保存在计算机储存盘里,要确保这些资料和信息能够安全地储存,就必须保证计算机本身所具备的安全性。而计算机本身的安全问题包括了计算机的软件安全和硬件安全。对于计算机的硬件方面,需要计算机使用者经常对计算机进行检查并在出现硬件故障时及时维修,从而保障计算机的正常运转;而计算机软件方面,通常最好安全杀毒软件例如360安全卫士、金山卫士等等,这些杀毒软件的安装,能够在计算机出现木马、漏洞或者恶意代码和各种不明病毒时自动为其清除,从而确保计算机信息数据的安全。
二、计算机信息大数据安全面临的挑战
在信息化的时代,个人的安全和隐私是较为重要的问题。传统的数据保护方式已经不能适应社会发展的潮流,大数据安全性面临众多的挑战:第一,大数据隐私。数据的隐私包括两方面内容:一方面,个人隐私保护,个人的兴趣、爱好、身体特征、习惯等隐私部分容易被盗取。另一方面,即使得到用户的允许,个人的财务、信息等重要隐私也有被泄露的风险。第二,数据质量。低质量的数据浪费传输和存放资源,甚至其发展被制约。其制约数据质量的因素很多,例如:采集、传输、生成以及存储过程中都可能影响数据的质量发展。第三,大数据的安全机制。大数据的规模和种类为其保密性带来了巨大的挑战。面对结构化、半结构化和非结构化的数据需要进行有效的安全管理、安全通信和访问控制。第四。信息安全领域大数据的应用。大数据为信息安全注入了新的活力,例如:病毒特征、攻击特征以及漏洞特征等易通过大数据分析被掌握。除此之外,大数据为企业的内部管理和制度带来便利和认可。信息时代下计算机大数据在某些方面会得到更加充分的利用,国家需要加大开发力度和发现人才。
三、计算机信息数据的加密技术的应用
(一)计算机信息数据的存储加密和传输加密
在计算机的广泛使用过程中,计算机信息数据的存储加密和传输加密是计算机信息数据安全的最关键的两个过程。对于计算机信息数据的存储加密技术,旨在通过计算机的运行来保障存储资料信息能够安全进行,这种存储加密技术会因为存储方式的区别,又将这种加密技术分为存储控制、密文存储这两种不同的方式,通过这种方式能够让计算机在进行信息存储过程中对用户进行权限的限制,并通过一定的方式来对计算机使用者进行辨认,保证信息数据的合法安全性,从而确保计算机信息数据不被外人盗取;而计算机信息数据的传输加密技术,是保证计算机用户在进行数据的传输时进行加密技术的处理,从而保障信息数据传输的安全性。这种计算机信息数据的传输加密技术又分为端―端加密和线路加密两种类型,这两种不同类型的传输加密技术主要是针对不同的加密密钥进行加密的最重要的加密实现方法。
(二)确认加密技术和密钥管理加密技术
密钥管理加密技术是通过密钥的磁卡、半导体存储器以及磁盘进行技术支持和管理,在计算机信息数据进行传输时,密钥管理加密技术的运用,能够对计算机信息数据在传输过程中的各个环节进行把关和控制管理,从而保证计算机信息数据的安全传输;而确认加密技术是对计算机数据信息的共享范围进行了区别限制,通过这种识别性的共享限制技术来抵制一些不法分子通过恶意程序的修改和伪造所带来的对计算机的破坏和导致的安全隐患,同时,这种确认加密技术能够对计算机用户接收到的信息数据进行识别和辨认,防止病毒或者木马的携带,从而更好地确保计算机信息数据能够安全有效地传输。
(三)加密技术中的消息摘要和完整性鉴别技术
对于计算机信息数据的加密技术中的消息摘要,是通过一个连接一个消息或者文本中单一的一个对应值所实现的加密类型;而完整性鉴别技术是一套比较完整的信息数据的鉴别系统,包括了信息数据、口令、身份鉴别和密钥等多个内容所组成。计算机用户在进行信息数据的传输时,系统自动会对这些信息数据进行验证和检测,对所输入的内容信息进行判断和识别,确认这些数据是否能够与已设置的数值相吻合,从而确保信息数据的传输安全。
篇10
关键词:数据加密方法;数据加密技术;信息安全
随着计算机互联网的骤步实现,数据加密技术显得越来越重要。因为在竞争激烈的信息时代,信息不仅给我们带来很大的方便,同样,信息也可以用来对他们构成威胁、造成破坏。因此,在客观上就需要一种强有力的安全措施来保护机密数据不被窃取或篡改,数据加密技术就应运而生。所谓数据加密(Data Encryption)技术是指将一个信息(或称明文,plain text)经过加密钥匙(Encryption key)及加密函数转换,变成无意义的密文(cipher text),而接收方则将此密文经过解密函数、解密钥匙(Decryption key)还原成明文。加密技术是网络安全技术的基石。
1、数据加密技术
1.1 数据加密的概念
所谓加密[1],就是把数据信息即明文转换为不可辨识的形式即密文的过程,目的是使不应了解该数据信息的人不能够知道和识别。将密文转变为明文的过程就是解密。加密和解密过程形成加密系统,明文与密文统称为报文。任何加密系统,不论形式如何复杂,实现的算法如何不同,但其基本组成部分是相同的,通常都包括如下4个部分:
(1)需要加密的报文,也称为明文;
(2)加密以后形成的报文,也称为密文;
(3)加密、解密的装置或算法;
(4)用于加密和解密的钥匙,称为密钥。密钥可以是数字、词汇或者语句。
数据加密与解密从宏观上讲是非常简单的,很容易理解。加密与解密的一些方法是非常直接的,很容易掌握,可以很方便的对机密数据进行加密和解密。数据加密技术要求只有在指定的用户或网络下,才能解除密码而获得原来的数据,这就需要给数据发送方和接受方以一些特殊的信息用于加解密,这就是所谓的密钥。其密钥的值是从大量的随机数中选取的。
1.2 数据加密方法
1.2.1 基于单钥技术的传统加密方法
这类方法的特点是采用单钥技术[2],即加密和解密过程中使用同一密钥,所以它也称为对称式加密方法;这类方法主要包括代码加密法、替换加密法、变位加密法和一次性密码簿加密法等。
(1)代码加密法。通信双方使用预先设定的一组代码表达特定的意义而实现的一种最简单的加密方法。
(2)替换加密法。这种方法是制定一种规则,将明文中的每个字母或每组字母替换成另一个或一组字母。
(3)变位加密法。变位加密法不隐藏原来明文的字符,而是将字符重新排序。比如,加密方首先选择一个用数字表示的密钥,写成一行,然后把明文逐行写在数字下。按照密钥中数字指示的顺序,将原文重新抄写,就形成密文。
(4)一次性密码簿加密法。这种方法要先制定出一个密码薄,该薄每一页都是不同的代码表。加密时,使用一页上的代码加密一些词,用后撕掉或烧毁该页;然后再用另一页上的代码加密另一些词,直到全部的明文都加密成为密文。破译密文的唯一办法就是获得一份相同的密码簿。
又因为传统的加密方法在许多方面有一定的局限性,于是人们又想出了很多算法来加强和改进这些方法。
1.2.2 改进的传统加密方法
此类加密方法的共同特点是采用双钥技术,也就是加密和解密过程中使用两个不同的密钥,它也称为非对称式加密方法。这类方法主要包括数据加密标准DES、三层DES、RC2和RC4、数字摘要、国际数据加密算法IDEA和基于硬件的加密方法[3]。
(1)数据加密标准DES。DES(Data Encryption Standard)是一个对称密钥系统,加密和解密使用相同的密钥。它通常选取一个64位(bit)的数据块,使用56位的密钥,在内部实现多次替换和变位操作来达到加密的目的。DES有ECB,CBC和CFB三种工作模式,其中ECB采用的是数据块加密模式,CBC与CFB采用的是数据流加密模式。
(2)三层DES(Triple-DES)。这种方法是DES的改进加密算法,它使用两把密钥对报文作三次DES加密,效果相当于将DES密钥的长度加倍。三层DES克服了DES的显著缺点,即其56位的短密钥。
(3)RC2和RC4。RC指Rivest Code,它是以发明人美国麻省理工学院的Ron Rivest教授的姓氏命名的,由RSADSI公司发行,是不公开的专有算法。RC2采用的是数据块加密算法,RC4采用的是数据流加密算法。
(4)数字摘要(Digital Digest)。该加密方法也是由Ron Rivest设计的,也被称为安全Hash编码法SHA(Secure Hash Algorithm)或MD5(MD Standards for Message Digest)。SHA其实就是RC方法的一种实现。
(5)国际数据加密算法IDEA[4]。IDEA(International Data Encryption Algorithm)是1990年瑞士的James Massey,Xuejia Lai等人发表的一个数据块加密算法。该算法使用128位的密钥,能够有效地消除试图穷尽搜索密钥的可能攻击。
(6)基于硬件的加密算法。为克服软件加密算法在容易复制、容易尝试方面的不足,人们又开发了基于硬件的加密算法。
2、数据加密在银行系统中的应用
随着社会的进步,计算机信息系统广泛地深入到社会各行各业,尤其是金融系统。随着“网上银行”的兴起,银行系统的安全问题显得越来越重要,安全隐患已成为迫在眉睫的首要问题。为了解决银行的安全隐患,因此新一级别的安全措施也就脱颖而出。数据加密就是其中之一。数据加密就是按照确定的密码算法把敏感的明文数据变换成难以识别的密文数据,通过使用不同的密钥,可用同一加密算法把同一明文加密成不同的密文。当需要时,可使用密钥把密文数据还原成明文数据,称为解密。这样就可以实现数据的保密性。众所周知,各种相关网络安全的黑客和病毒都是依赖网络平台进行的,而如果在网络平台上就能切断黑客和病毒的传播途径,那么就能更好地保证安全。众多银行如农业银行、建设银行、工商银行等都采取了数据加密技术与网络交换设备联动。即是指交换机或防火墙在运行的过程中,将各种数据流的信息上报给安全设备,数字加密系统可根据上报信息和数据流内容进行检测,在发现网络安全事件的时候,进行有针对性的动作,并将这些对安全事件反应的动作发送到交换机或防火墙上,由交换机或防火墙来实现精确端口的关闭和断开,这样就可以使数据库得到及时充分有效的保护。