摘要:所谓数据加密(Data Encryption)技术是指将一个信息(或称明文,plain text)经过加密钥匙(Encryption key)及加密函数转换,变成无意义的密文(cipher text),而接收方则将此密文经过解密函数、解密钥匙(Decryption key)还原成明文。加密技术是网络安全技术的基石。该文介绍几种数据加密的方法,其中以数据加密技术中的基于公钥的加密算法,以及一种新的多步加密算法为主,希望由此实现保证信息传递安全的目的。
关键词:数据加密;加密算法;置换表;公钥;多步加密算法
中***分类号: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).
[17] 景昌, 洪辉. 利用Microsoft Excel制作西安市地表水及排污监测数据库[J]. 陕西环境, 2003(4).