本科学年论文
题 目 数据加密技术在计算机安全中的应用
成 绩 完成时间 2013 年 11 月
数据加密技术在计算机安全中的应用
摘 要:在当代社会中,计算机数量和及其产生的信息量日益增多,个人或者企业的计算机储存的重要文档都有较高的保密需求。本篇论文介绍了计算机面临的威胁,数据加密的原理,分类及其应用。加密系统的体系,几种数据加密算法,以及数据加密在生活工作中的具体应用,希望能为使用计算机工作的人提供一些有用的技术信息。
关键词:信息安全;数据加密;算法
Data Encryption Technology in The Application of Computer
Security
Abstract:In contemporary society, and the resulting number of computers and the
increasing amount of information, personal or business computer storage of important documents have higher security needs. This paper describes a computer threats, data encryption principle, classification and its application. Encryption system architecture, several data encryption algorithms, and data encryption in living and working in the specific application, hoping to use the computer to work to provide some useful computer technical information.
Key words:Information Security;Data Encryption;Algorithm
目 录
第一章 引言 ............................................................................................................................ 1 1.1研究背景 ........................................................................................................................... 1 1.2研究方案 ........................................................................................................................... 1 第二章 数据加密技术概述 .................................................................................................... 1 2.1计算机安全面临的威胁 ................................................................................................... 1 2.2数据加密技术原理 ........................................................................................................... 2 2.3加密系统体系 ................................................................................................................... 2 2.3.1对称加密算法 ............................................................................................................ 2 2.3.2不对称加密算法 ........................................................................................................ 2 2.3.3不可逆加密算法 ........................................................................................................ 3 第三章 具体数据加密算法 .................................................................................................... 4 3.1 DES算法 .......................................................................................................................... 4 3.1.1 DES介绍 .................................................................................................................... 4 3.1.2主要流程 .................................................................................................................... 4 3.1.3 DES特点 .................................................................................................................... 6 3.2 AES算法 .......................................................................................................................... 6 3.2.1 AES介绍 .................................................................................................................... 6 3.2.2 AES算法结构 ............................................................................................................ 6 3.2.3 AES算法步骤 ............................................................................................................ 7 3.3 其他数据加密算法 .......................................................................................................... 7 3.3.1数据指印MD5码 ...................................................................................................... 7 3.3.2椭圆曲线密码体制 .................................................................................................... 8 第四章 计算机安全加密技术的应用 .................................................................................... 9 致 谢 .................................................................................................................................... 9 参考文献 .................................................................................................................................. 10
第一章 引言
1.1研究背景
随着计算机技术的发展,计算机安全也就成为当今计算机领域的重中之重,几乎没有人不在谈论计算机的安全问题,病毒、黑客程序、邮件炸弹、远程侦听等这一切都无不让人胆战心惊。用户必需清楚地认识到,这一切一切的安全问题不可一下全部找到解决方案,况且有的是根本无法找到彻底的解决方案。现代的计算机加密技术就是适应了计算机安全的需要而应运而生的,它为用户进行一般的电子商务活动提供了安全保障,随着计算机的发展,运算能力增强,人们又不断地研究出了新的数据加密方式。
当今网络社会选择加密已是我们必然选择,一方面是因为在互联网上进行文件传输、电子邮件商务往来存在许多不安全因素,特别是对于一些大公司和一些机密文件在网络上传输。为了解决这一对矛盾,选择数据加密以及基于加密技术的数字签名已成为必然选择。随着信息技术的发展与应用,信息安全的内涵在不断的延伸,从最初的信息 保密性发展到信息的完整性、可用性、可控性和不可否认性,进而又发展为\"攻(攻击) 、防(防范)、测(检测)、控(控制)、管(管理)、评(评估)\"等多方面的基础理论和实施技术。就理论研究而言,一些关键的基础理论需要保密,因为从基础理论研究到实际应用的距离很短。现代信息系统中的信息安全其核心问题是密码理论及其应用,其基础是可信信息系统的构作与评估。
1.2研究方案
本文研究的内容为几种数据加密技术的原理及应用。第一章,主要是介绍数据加密技术的背景。第二章分为三个部分,第一个部分主要是介绍计算机安全面临的威胁,第二三个部分主要是介绍数据加密技术的原理、数据加密技术分类体系。第三章分为三个部分,第一部分主要是介绍DES加密标准算法及DES介绍和DES算法框架,DES算法流程和算法特点,第二部分介绍AES加密算法的结构和步骤以及AES算法的应用。第三部分,主要是介绍其他几种加密技术的原理及应用。第四章主要介绍了计算机安全加密技术的应用。
第二章 数据加密技术概述
2.1计算机安全面临的威胁
随着计算机技术的革新,对网络的通信安全要求水平水涨船高,与此同时,各种各
1
样的网络信息窃取和破坏也使得社会各领域在对计算机安全方面的需求日益强烈。总的来说,计算机的信息安全包涵了两个层面的要求:一方面是对计算机信息的存储安全要求。另外一方面就是对计算机网络的通信安全要求。在对计算机安全存在的威胁中人为因素要比非人为因素的影响大的多,人为的安全威胁又分为被动攻击和主动攻击。其中被动攻击主要影响计算机的数据保密性,常用的手段有:对通信线路上传递信息的窃取和监听;对窃取和监听的数据分析;冒充用户身份;对网络中传播的信息进行篡改;拒绝确认所发信息等其他手段。
2.2数据加密技术原理
数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”,使其只能在输入相应的密钥之后才能显示出本来内容,通过这样的途径达到保护数据不被人非法窃取、阅读的目的。该过程的逆过程为解密,即将该编码信息转化为其原来数据的过程。 当信息发送者需要发送信息时,首先生成一个对称密钥,用该对称密钥加密要发送的报文;信息发送者用信息接收者的公钥加密上述对称密钥;信息发送者将第一步和第二步的结果结合在一起传给信息接收者,称为数字信封;信息接收者使用自己的私钥解密被加密的对称密钥,再用此对称密钥解密被发送方加密的密文,得到真正的原文。
2.3加密系统体系
2.3.1对称加密算法
对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。对称加密算法的特点是算法公开、计算量小、加密速度快、加密效率高。应用于:电子商务。
不足之处是,交易双方都使用同样钥匙,安全性得不到保证。此外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的惟一钥匙,这会使得发收信双方所拥有的钥匙数量成几何级数增长,密钥管理成为用户的负担。。
2.3.2不对称加密算法
不对称加密算法使用两把完全不同但又是完全匹配的一对钥匙—公钥和私钥。在使
2
用不对称加密算法加密文件时,只有使用匹配的一对公钥和私钥,才能完成对明文的加密和解密过程。加密明文时采用公钥加密,解密密文时使用私钥才能完成,而且发信方(加密者)知道收信方的公钥,只有收信方(解密者)才是唯一知道自己私钥的人。不对称加密算法的基本原理是,如果发信方想发送只有收信方才能解读的加密信息,发信方必须首先知道收信方的公钥,然后利用收信方的公钥来加密原文;收信方收到加密密文后,使用自己的私钥才能解密密文。显然,采用不对称加密算法,收发信双方在通信之前,收信方必须将自己早已随机生成的公钥送给发信方,而自己保留私钥。由于不对称算法拥有两个密钥,因而特别适用于分布式系统中的数据加密。
不对称加密算法使用两把完全不同但又是完全匹配的一对钥匙—公钥和私钥。在使用不对称加密算法加密文件时,只有使用匹配的一对公钥和私钥,才能完成对明文的加密和解密过程。加密明文时采用公钥加密,解密密文时使用私钥才能完成,而且发信方(加密者)知道收信方的公钥,只有收信方(解密者)才是唯一知道自己私钥的人。不对称加密算法的基本原理是,如果发信方想发送只有收信方才能解读的加密信息,发信方必须首先知道收信方的公钥,然后利用收信方的公钥来加密原文;收信方收到加密密文后,使用自己的私钥才能解密密文。显然,采用不对称加密算法,收发信双方在通信之前,收信方必须将自己早已随机生成的公钥送给发信方,而自己保留私钥。由于不对称算法拥有两个密钥,因而特别适用于分布式系统中的数据加密。
2.3.3不可逆加密算法
不可逆加密算法的特征是加密过程中不需要使用密钥,输入明文后由系统直接经过加密算法处理成密文,这种加密后的数据是无法被解密的,只有重新输入明文,并再次经过同样不可逆的加密算法处理,得到相同的加密密文并被系统重新识别后,才能真正解密。显然,在这类加密过程中,加密是自己,解密还得是自己,而所谓解密,实际上就是重新加一次密,所应用的“密码”也就是输入的明文。不可逆加密算法不存在密钥保管和分发问题,非常适合在分布式网络系统上使用,但因加密计算复杂,工作量相当繁重,通常只在数据量有限的情形下使用, 广泛应用在计算机系统中的口令加密,利用的就是不可逆加密算法。近年来,随着计算机系统性能的不断提高,不可逆加密的应用领域正在逐渐增大。
不可逆加密算法不存在密钥保管和分发问题,非常适合在分布式网络系统上使用,但因加密计算复杂,工作量相当繁重,通常只在数据量有限的情形下使用,如广泛应用在计算机系统中的口令加密,利用的就是不可逆加密算法。
3
第三章 具体数据加密算法
3.1 DES算法
3.1.1 DES介绍
DES 使用一个 56 位的密钥以及附加的 8 位奇偶校验位,产生最大 64 位的分组大小。这是一个迭代的分组密码,其中将加密的文本块分成两半。使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算;接着交换这两半,这一过程会继续下去,但最后一个循环不交换。DES 使用 16 个循环。
DES 的主要形式被称为蛮力的或彻底密钥搜索,即重复尝试各种密钥直到有一个符合为止。如果 DES 使用 56 位的密钥,则可能的密钥数量是 2 的 56 次方个。随着计算机系统能力的不断发展,DES 的安全性比它刚出现时会弱得多,然而从非关键性质的实际出发,仍可以认为它是足够的。
3.1.2主要流程
DES算法把64位的明文输入块变为64位的密文输出块,它所使用的密钥也是64位,整个算法的主流程图2.1所示:
明文 IP L0 R0 L1=R0 R1=L0⊕f(R0,K1) 经过16轮相同计算 R16=L15⊕f(R15,K16) L16=R15 IP-1 密文 图2.1 DES算法流程图
4
置换规则表
其功能是把输入的64位数据块按位重新组合,并把输出分为L0、R0两部分,每部分各长32位,其置换规则如下:
58,50,42,34,26,18,10,2,60,52,44,36,28,20,12,4 62,54,46,38,30,22,14,6,64,56,48,40,32,24,16,8 57,49,41,33,25,17,9,1,59,51,43,35,27,19,11,3 61,53,45,37,29,21,13,5,63,55,47,39,31,23,15,7
即将输入的第58位换到第一位,第50位换到第2位,...,依此类推,最后一位是原来的第7位。L0、R0则是换位输出后的两部分,L0是输出的左32位,R0 是右32位,例:设置换前的输入值为D1D2D3......D64,则经过初始置换后的结果为:L0=D58D50...D8;R0=D57D49...D7。
经过16次迭代运算后。得到L16、R16,将此作为输入,进行逆置换,即得到密文输出。逆置换正好是初始置换的逆运算。例如,第1位经过初始置换后,处于第40位,而通过逆置换,又将第40位换回到第1位,其逆置换规则如下:
40,8,48,16,56,24,64,32,39,7,47,15,55,23,63,31 38,6,46,14,54,22,62,30,37,5,45,13,53,21,61,29 36,4,44,12,52,20,60,28,35,3,43,11,51,19,59,27 34,2,42,10,50,18,58 26,33,1,41,9,49,17,57,25 放大换位表
32,1,2,3,4,5,4,5,6,7,8,9,8,9,10,11,
12,13,12,13,14,15,16,17,16,17,18,19,20,21,20,21 22,23,24,25,24,25,26,27,28,29,28,29,30,31,32,1 单纯换位表
16,7,20,21,29,12,28,17,1,15,23,26,5,18,31,10 2,8,24,14,32,27,3,9,19,13,30,6,22,11,4,25 功能表
在f(Ri,Ki)算法描述中,S1,S2...S8为选择函数,其功能是把48bit数据变为32bit数据。下面给出选择函数Si(i=1,2......8)的功能表:
选择函数Si S1:
14,4,13,1,2,15,11,8,3,10,6,12,5,9,0,7 0,15,7,4,14,2,13,1,10,6,12,11,9,5,3,8 4,1,14,8,13,6,2,11,15,12,9,7,3,10,5,0 15,12,8,2,4,9,1,7,5,11,3,14,10,0,6,13
在此以S1为例说明其功能,我们可以看到:在S1中,共有4行数据,命名为0,
5
1、2、3行;每行有16列,命名为0、1、2、3,......,14、15列。
现设输入为:D=D1D2D3D4D5D6 令:列=D2D3D4D5,行=D1D6
然后在S1表中查得对应的数,以4位二进制表示,此即为选择函数S1的输出。由此可得出其64位的密文。
3.1.3 DES特点
DES算法具有极高安全性,到目前为止,除了用穷举搜索法对DES算法进行攻击外,还没有发现更有效的办法。而56位长的密钥的穷举空间为256,这意味着如果一台计算机的速度是每一秒钟检测一百万个密钥,则它搜索完全部密钥就需要将近2285年的时间,可见,这是难以实现的。然而,这并不等于说DES是不可破解的。而实际上,随着硬件技术和网络的发展,其破解的可能性越来越大,而且,所需要的时间越来越少。
3.2 AES算法
3.2.1 AES介绍
AES是分组密钥,算法输入128位数据,密钥长度也是128位。用Nr表示对一个数据分组加密的轮数。每一轮都需要一个与输入分组具有相同长度的扩展密匙的参与。由于外部输入的加密密钥K长度有限,所以在算法中要用一个密钥扩展程序把外部密钥扩展成更长的比特串,以生成各轮的加密和解密密钥。
它主要用于基于私钥数据加密算法的各种信息安全技术和安全产品中,例如:无线网络应用,信息安全领域,AES软件应用,虚拟专用网,同步光网络,远程访问服务器,高速路由器,移动通信,卫星通信,电子金融业务等。
3.2.2 AES算法结构
AES算法采用多组密钥位数:128位、192位、256位,并使用128字节进行分组加密和解密。传统密钥使用的加密和解密数据相同,在使用过分组密码后所得到的返回数据与输入数据相同。接下来利用循环的结构进行迭代加密,并在循环中重复替换和置换输入的数据。
这种加密算法使用的是一个128字节的方阵分组,并将这些方阵复制至状态数组,加密步骤每进行一步,这个状态数组都会发生改变,直至最后一步,生成的状态数组会被复制为输出矩阵。在128字节的方阵中,子密钥的44个字(单字占4个字节)按列排序。
6
3.2.3 AES算法步骤
AES算法的步骤主要分为四步:字节替换、行移位、列混合以及轮密钥加。 1.字节替换
使用S-盒对上述的分组逐一进行字节替换,其中S-盒中的4个高位代表行值,4个低位代表列值,表中对应的元素即为输出值。这个步骤表现了AES加密算法的非线性特征,可以有效避免简单的代数攻击。 2.行移位
使用上述的分组列表,每一行均按照某个偏移量向左循环移位。比如S-盒中的首行固定,则第二行可以按照一个字节的偏移量做循环移位。那么在完成全部的循环移位后,分组列表中的所有列均是由不同列中的元素结合成。每次移位,其线性距离均为4字节的整倍数。 3.列混合
在完成上述的线性变换后的分组列表,将按列分别进行相对独立的操作。这个操作过程是将单列的4个元素作为系数,合并为有限域的某一多项式,并用这个多项式与固定多项式做乘运算。该过程也即可认为是在有限域条件下的矩阵加、乘运算。在经过几轮的行移位变换和列混合变换后,分组列表中的所有输入位均与输出位相关。 4.轮密钥加
在第二步的行移位和第三步的列混合循环过程中,没进行一次,都会通过主密钥产生一个密钥组,该轮密钥组与原字节分组列表相同。这第四个步骤即是对原始矩阵中的对应元素做异或运算。
这种加密变换过程虽然很简单,但却能够影响到分组列表中的每一个元素,并且复杂的扩展性和复杂性,可以有效的提高算法的安全性。
3.3 其他数据加密算法
3.3.1数据指印MD5码
对MD5算法简要的叙述可以为:MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。
在MD5算法中,首先需要对信息进行填充,使其位长对512求余的结果等于448。因此,信息的位长(Bits Length)将被扩展至N*512+448,即N*64+56个字节(Bytes),N为一个非负整数,N可以是零。填充的方法如下,在信息的后面填充一个1和无数个0,直到满足上面的条件时才停止用0对信息的填充。然后,在这个结果后面附加一个以64位二进制表示的填充前信息长度。经过这两步的处理,现在的信息的位长长度恰
7
好是512的整数倍。这样做的原因是为满足后面处理中对信息长度的要求。
MD5中有四个32位被称作链接变量(Chaining Variable)的整数参数,他们分别为:A=0x67452301,B=0xefcdab89,C=0x98badcfe,D=0x10325476。 当设置好这四个链接变量后,就开始进入算法的四轮循环运算。循环的次数是信息中512位信息分组的数目。
将上面四个链接变量复制到另外四个变量中:A到a,B到b,C到c,D到d。 主循环有四轮(MD4只有三轮),每轮循环都很相似。第一轮进行16次操作。每次操作对a、b、c和d中的其中三个作一次非线性函数运算,然后将所得结果加上第四个变量,文本的一个子分组和一个常数。再将所得结果向左环移一个不定的数,并加上a、b、c或d中之一。最后用该结果取代a、b、c或d中之一。
MD5将整个文件当作一个大文本信息,通过其不可逆的字符串变换算法,产生了这个唯一的MD5信息摘要。下面以一个比方和一个实例来简要描述一下其工作过程:
大家都知道,地球上任何人都有自己独一无二的指纹,这常常成为公安机关鉴别罪犯身份最值得信赖的方法;与之类似,MD5就可以为任何文件(不管其大小、格式、数量)产生一个同样独一无二的“数字指纹”,如果任何人对文件做了任何改动,其MD5值也就是对应的“数字指纹”都会发生变化。
常常在某些软件下载站点的某软件信息中看到其MD5值,它的作用就在于我们可以在下载该软件后,对下载回来的文件用专门的软件(如Windows MD5 Check等)做一次MD5校验,以确保我们获得的文件与该站点提供的文件为同一文件。利用MD5算法来进行文件校验的方案被大量应用到软件下载站、论坛数据库、系统文件安全等方面。
3.3.2椭圆曲线密码体制
椭圆曲线密码体制来源于对椭圆曲线的研究,所谓椭圆曲线指的是由韦尔斯特拉斯(Weierstrass)方程: y2+a1xy+a3y=x3+a2x2+a4x+a6 (1)所确定的平面曲线。其中系数ai(I=1,2,„,6)定义在某个域上,可以是有理数域、实数域、复数域,还可以是有限域GF(pr),椭圆曲线密码体制中用到的椭圆曲线都是定义在有限域上的。
椭圆曲线上所有的点外加一个叫做无穷远点的特殊点构成的集合连同一个定义的加法运算构成一个Abel群。在等式 mP=P+P..+P=Q (2) 中,已知m和点P求点Q比较容易,反之已知点Q和点P求m却是相当困难的,这个问题称为椭圆曲线上点群的离散对数问题。椭圆曲线密码体制正是利用这个困难问题设计而来。
椭圆曲线密码体制是目前已知的公钥体制中,对每比特所提供加密强度最高的一种体制。解椭圆曲线上的离散对数问题的最好算法是Pollard rho方法,其时间复杂度为,是完全指数阶的。其中n为等式(2)中m的二进制表示的位数。当n=234, 约为2117,需要1.6x1023 MIPS 年的时间。而RSA所利用的是大整数分解的困难问题,目前对于一般情况下的因数分解的最好算法的时间复杂度是子指数阶的,当n=2048时,需要
8
2x1020MIPS年的时间。也就是说当RSA的密钥使用2048位时,ECC的密钥使用234位所获得的安全强度还高出许多。它们之间的密钥长度却相差达9倍,当ECC的密钥更大时它们之间差距将更大。更ECC密钥短的优点是非常明显的,随加密强度的提高,密钥长度变化不大。
第四章 计算机安全加密技术的应用
DES和AES加密算法在整个社会各个行业中的应用方式与形式均有不同,比如在无线网络的应用中,就通过协议将AES加入到计算机安全机制中,甚至一些保障传输数据安全性的网络技术也应用到了AES算法;在电子商务的运行平台上,AES就充分利用其安全性高的特点,保证在SSL协议中可以安全的传输用户的密码和个人信息等数据;在硬件应用上,公交IC卡,门禁卡甚至人人都有的二代身份证,都嵌入了IC芯片,如何 将AES这种高安全性加密算法应用在IC芯片中,也将成为加密技术发展的新方向。
综上所述,在计算机网络安全中应用加密技术,是保障当前形势下我们安全传递与交流信息的基本技术,对计算机网络安全至关重要。
因此,在计算机网络安全中应用加密技术在当前形势下对人们的生活来说是必不可少的,通过数据加密,数据有了安全保障,人们不必再顾忌数据的泄露,能够放心地在网络上完成便捷的数据传递与交流。
致 谢
在这篇论文的写作过程中,我的导师给了我初步的思路,查阅资料的方法,而且耐心的给我讲解了该怎样去写这篇论文。从论文题目的审定到最初的提纲到论文的初具规模,以至最后的修改润色,都有着老师的指导。老师的指导和建议,使我在写作这篇论文的过程中受益匪浅。还要感谢其他任课老师和同学给我的帮助和指导,是他们教会了我专业知识,教会了我如何学习,教会了我如何做人,正是由于他们,我才能在各方面取得进步,在此向各位老师表示我由衷的谢意,并祝老师们培养出越来越多的人才。
9
参考文献
[1]王秀翠.数据加密技术在计算机网络通信安全中的应用[J].软件导刊,2011,(03):32-35. [2]朱丽娟.数据加密技术的研究与发展[J].中国制造业信息化,2011,40(17):63-68.
[3]徐洪波,李颖华.DES加密算法在保护文件传输中数据安全的应用[J].信息网络安全,2009,(06):22-25.
[4]姚磊.计算机网络安全中数据加密技术的运用研究[J].数字技术与应用,2013,(01):11-13. [5]李浩军,于晓亮.基于数据加密技术的计算机安全分析研究[J].数字化用户,2013,19(09):39-42. [6]北京大学电子政务研究院电子政务与信息安全技术实验室.数据安全基础[M].北京:人民邮电出版社.2008:178-223.
[7] 关可亓,淑敏.信息论与编码技术[M].北京:清华大学出版社.2009:196-217.
10
本科生学年论文成绩表
姓名 论文 题目 郑旭彤 专业 计算机科学与技术 班级 计算机科学与技术本科班 指定 任选 是 数据加密技术在计算机安全中的应用 指 导 教 师 评 语 及 评 分 指导教师评语: 指导教师评分___________ 指导教师签字:_________ 年 月 日 主管院长签字________(盖公章) 年 月 日
因篇幅问题不能全部显示,请点此查看更多更全内容