数据加密技术初探

时间:2022-08-28 03:34:07

数据加密技术初探

摘要:随着信息技术的广泛开展及应用,各类信息的安全问题越来越引人关注。涉及各行各业的敏感信息在交流存储时需要进行加密或伪装,以保证私密信息不被恶意篡改或恶意利用。针对这一安全隐患,已有很多加密算法被提出、修改、改进、否定。然而这一领域的研究必会持续不断、与时俱进。理解那些比较成熟的算法并提出改进算法和开辟新算法同样重要。

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

中图分类号: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.

[5] 李伟.图文数据的同步混沌加密研究[D].保定:华北电力大学,2008.

上一篇:一种数据驱动的Web测试技术 下一篇:医学院校计算机教学改革初探