《Linux下3DES加密算法实现的毕业论文.doc》由会员分享,可在线阅读,更多相关《Linux下3DES加密算法实现的毕业论文.doc(50页珍藏版)》请在三一办公上搜索。
1、本科毕业论文(设计)设计题目:Linux下3DES加密算法的实现学 院:计算机科学与信息学院 专 业: 信息安全 班 级: 信息081 学 号: 080806110211 学生姓名:杨彪 指导教师: 余珮嘉 2012年6月04日贵州大学本科毕业论文(设计)诚信责任书本人郑重声明:本人所呈交的毕业论文(设计),是在导师的指导下独立进行研究所完成。毕业论文(设计)中凡引用他人已经发表或未发表的成果、数据、观点等,均已明确注明出处。特此声明。论文(设计)作者签名: 日 期: 目录AbstractIII第一章 前言11.1课题背景11.2 DES、3DES加密算法简介21.3 课题研究的目的和意义21
2、.3.1 研究的目的21.3.2 研究的意义2第二章 DES加密的详细描述42.1 DES加密的计算部件及其过程42.1.1 密钥的计算42.1.2初始置换IP52.1.3初始置换的逆IP-162.1.4 F函数运算的原理72.1.5 DES加密的原理102.2 DES解密的过程132.2.1 DES解密的原理132.2.2 DES解密的过程13第三章3DES加密原理153.1.1 3DES加密算法简介153.2.1 3DES-EEE3加密153.2.2 3DES-EDE3加密163.2.3 3DES-EEE2加密163.2.4 3DES-EDE2加密163.2.1 3DES-EEE3解密17
3、3.2.2 3DES-EDE3解密173.2.3 3DES-EEE2解密173.2.4 3DES-EDE2解密18第四章 DES与3DES加密算法的设计与实现194.1 DES与3DES加密算法的设计194.1.1 需求分析194.2 DES与3DES加密算法的实现195.1 界面设计225.1.1 DES与3DES界面原理225.2 DES与3DES加密算法功能设计235.3 程序代码29第六章 结束语43参考文献44致谢45Linux下3DES加密算法的实现摘 要 近年来,随着计算机技术、通信技术的飞速发展,Linux的用户在快速的增长。Linux是一种类似Unix的操作系统,并且它是开源
4、的、免费的,而且比Windows操作系统更稳定。可以说,今天这个完善并强大的Linux完全是一个热情、自由、开源的网络产物。因此受到越来越多的用户的喜爱。随着Linux操作系统在我国的不断普及和发展,它也面临着许多的安全问题。随之而来的信息安全问题也日益突出。所以我们不得不通过一些有效的办法来保证我们的信息的安全性。3DES加密算法是一个可以有效解决这些问题的加密算法。本文首先介绍了对称加密算法的研究意义和研究背景,由于3DES加密算法是基于DES的,换句话说,3DES的核心算法就是DES加密算法;接着分析DES加密原理,着重介绍了DES加密算法的原理步骤,核心算法主要分为子密钥的生成和加密流
5、程循环,其中子密钥核心为置换和移位,DES加密过程主要包括16次迭代,F函数,S盒运算等。关键词: Linux下的加密,对称密码,DES,3DES,信息加密Under LINUX 3DES encryption algorithm implementationAbstractIn recent years, with the rapid development of computer technology, communications technology, user of Linux rapid growth. Linux is a Unix-like operating system,
6、and it is open source, free, and is more stable than the Windows operating system. It can be said that this comprehensive and powerful Linux is completely a passion, freedom, development of network products. Therefore welcomed by more and more users. With the growing popularity of the Linux operatin
7、g system is China and development, is also faces many security issues. Followed by information security issues become increasingly prominent. So we have some effective ways to ensure the security of our information. 3DES encryption algorithm is an effective encryption algorithm to solve these proble
8、ms.This paper first introduced the symmetrical encryption algorithm research significance and research background. Because of Three-DES encryption algorithm is base of DES encryption algorithm. In other words, DES encryption algorithm is the core of Three-DESs. So then analysing DES encryption princ
9、iple, focusing on the principle and steps of the encryption algorithm of DES, Algorithm core is divided into the sub-key generation and encryption process cycle, which key work for replacement and shift, the mainstream procedure is composed of 16 iteration, F function, S box of operation and so on.K
10、ey Words: Linux encryption, symmetric cryptography, DES, 3DES message encryption 第一章 前言1.1课题背景 Linux是一种自由和开放源码的类Unix操作系统。它诞生于1991 年的10 月5 日(这是第一次正式向外公布的时间)。以后借助于Internet 网络,并经过全世界各地计算机爱好者的共同努力下,现已成为今天世界上使用最多的一种UNIX 类操作系统,并且使用人数还在迅猛增长。目前存在着许多不同的Linux,但它们都使用了Linux内核。Linux 操作系统的诞生、发展和成长过程始终依赖着以下五个重要支柱:
11、UNIX 操作系统、MINIX 操作系统、GNU 计划、POSIX 标准和Internet 网络。DES加密算法是由IBM公司研制的,美国国家标准局(NBS)于1977年公布,并批准把该算法作为非机要部门使用的数据加密标准(Data Encryption Standard),简称DES。自公布以来,它一直超越国界成为国际上商用保密通讯和计算机通讯的最常用的加密算法。当时规定DES的使用期为10年。后来美国政府宣布延长其使用期。DES超期服役了很长时间,在国际通讯保密的舞台上活跃了20年。DES持续了相当长的时间才过时,人们夜以继日、不惜一切代价地研究,后来终于被破,但是DES是很值得研究的,因
12、为它代表了一类流行的密码算法,其很多核心的东西,后来的加密算法在一定程度上都有其踪迹。为了增强DES算法应对差分或线性攻击的可能性,人们提出了采用增加密钥长度,可将分组密钥进行级联,在不同的密钥作用下,连续多次对一组明文进行加密。三重DES加密效果就很好,它可使密钥长度扩展到128位,在提高加密强度的同时,使得他的安全性得以提高,足以应对各种攻击。3DES加密算法的核心也就是DES加密算法,三重DES加密算法只是将多个密钥以DES级联的方式来实现的。1.2 DES、3DES加密算法简介DES是一个分组加密算法,他以64位为分组对数据加密。64位的分组明文序列作为加密算法的输入,经过16轮加密得
13、到64位的密文序列。加密的密钥位64位,实际长度为56位,DES算法的保密性取决于密钥。DES对64位的明文进行操作。首先通过一个初始置换IP,将64位的明文分成各32位的左半部分和右半部分,该初始置换只在16轮加密过程进行之前进行一次。在经过初始置换操作后,对得到的64位序列进行16轮的加密运算,这些运算被称为函数f,在运算过程中,输入数据与密钥结合。经过16轮运算后,左右两部分合在一起得到一个64位的输出序列,再将该序列经过一个IP逆置换后得到最终的加密结果。3DES也是一个分组加密算法,在3DES加密算法中,加密过程用4种不同的模式,有密钥K1、K2和K3这3个密钥来实现加密,以及有密钥
14、K1和K2这2个密钥来实现加密的对一个分组消息进行3次DES加密。1.3 课题研究的目的和意义1.3.1 研究的目的信息在社会中的地位和作用越来越重要,已成为社会发展的重要战略资源。如何保证信息在传送过程中不被黑客复制、插入、篡改、重排或重放,以及对已损坏的数据进行恢复,成为信息安全所研究一个重要内容。随着科学技术的发展,信息交流己经深入到社会生活的各个角落,安全问题给用户或者国家造成了重大的损失。为了杜绝或降低这种损失,利用加密技术对数据信息加密是一种有效的手段和方法。而基于数据加密标准的DES的三重DES加密算法有着高强度的安全性能,虽然三重DES加密算法在速度上比不上DES加密算法但是其
15、有着更好的安全性,有利于加密算法的研究和发展。1.3.2 研究的意义目前,无论是对称密码体制还是非对称密码体制,都存在一定的缺陷。首先,它们都是基于一个目前难以解决的数学问题,安全性局限于当前的计算能力;其次,经典密码体制中的密钥分发问题一直是个比较困难的问题,密钥分发后,没有充分的理由说明该密钥在传输过程中未被窃取、篡改或调换。另外,由于Shor分解大数因子的量子算法和Grover随机数据库 搜索等量子算法的发泄,对经典密码构成了很大的威胁。可以毫不夸张的说,量子计算机面世之日,就是经典密码学土崩瓦解之时。在这种情况下,虽然一次一密方法仍能保持完好的不可破的密码,但却存在着严重的密钥分配欺诈
16、问题。一般来说,只要消息保密,通信双方就共享一个密钥,但事实上无法确保。本文在传统密码学的基础上,融入量子密码学的优越性,介绍了量子密钥分配的安全性,使经典密码与量子密码相结合,达到加密的高度可靠性,从而保证了密钥分配过程中信息的完整性。第二章 DES加密的详细描述2.1 DES加密的计算部件及其过程2.1.1 密钥的计算DES的密钥是由一个64位的主密钥产生16轮48位的子密钥来对要加密的信息来加密的。DES的加密算法的密钥扩展需要用到两个缩减变换PC-1(置换选择1(PC-1)和PC-2以及一个循环左移变换。57 49 41 33 25 17 9 1 58 50 42 34 26 1810
17、 2 59 51 43 35 2719 11 3 60 52 44 3663 55 47 39 31 23 15 7 62 54 46 38 30 2214 6 61 53 45 57 2921 13 5 28 20 12 4 图2-1置换选择1(PC-1)上图2-1对输入的64位密钥进行缩减使其变为56位。这个过程实际上就是去除原密钥的第8,16,24,32,40,48,56,64位,再按照一定的次序进行排列。密钥中被缩减的位被用来作为奇偶校验位。通过PC-1的置换,密钥种子的第56位作为输出的第1位,而密钥种子的49位作为输出的第2位等等以此类推直到密钥种子的第4位作为输出的第56位位置。
18、循环序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16转动比特数 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1 图2-1 左移调度 在PC-1置换以后对其输出的56位子密钥分为左28位和右28位,可将其分别记为A0和B0。A0和B0分别循环左移2位得到A1和B1,然后A1和B1分别循环左移1位得到A2和B2依次类推进行16次移位操作,并得到Ai和Bi(i=1,2,316)。然后将其作为置换选择(PC-2)的输入,在其移位的过程中,1、2、9、16左移的为数和上图2-1中“转动比特数”的值保持一致都为1位,其他位移动2位。14 17 11 24
19、1 5 3 2815 6 21 10 23 19 12 426 8 16 7 2 20 13 241 52 31 37 47 55 30 4051 45 33 48 44 49 39 5634 53 46 42 50 36 29 32 图2-3 置换选择2(PC-2)PC-2每次循环都将Ai和Bi(116)一起作为PC-2的16次置换的输入,通过PC-2置换得到16轮的48位子密钥记为Kn共16组。如上图2-3通过PC-2的置换,Ai和Bi的第14位作为输出的第1位,第17位作为第2位等等以此类推,第32位作为输出的第56位。通过PC-2置换后的输出就得到16轮的48位子密钥。到这里就得到了1
20、6轮的48位子密钥。2.1.2初始置换IP如下图2-4:初始置换(IP)是标准数据加密算法的第一个步骤。它是将64位的明文按照一定的规则进行重新排列,也叫置换。IP置换后的输出依然为64位的分组,其左边的32位组成L,右边的32位组成R。L和R是F函数的初始输入。其中R作为扩充E的初始输入,L作为置换P后面所要进行的左右异或的输入。58 50 42 34 26 18 10 260 52 44 36 28 20 12 462 54 46 38 30 22 14 664 56 48 40 32 24 16 857 49 41 33 25 17 9 159 51 43 35 27 19 11 361
21、 53 45 37 29 21 13 563 55 47 39 31 23 15 7 图2-4 初始置换(IP)2.1.3初始置换的逆IP-1如下图2-4:逆初始置换IP-1是数据加密标准算法的最后一个步骤,即通过它可以得到数据加密标准加密后的最终结果。它的输入作为F函数的输出,加密过程中,数据通过初始置换,E扩展等一系列的包含F函数中的种种函数置换或缩减,或扩充,或移位得到的结果必须经过初始逆置换IP-1的变换才的出最终的加密信息。40 8 48 16 56 24 64 3239 7 47 15 55 23 63 3138 6 46 14 54 22 62 3037 5 45 13 53 2
22、1 61 2936 4 44 12 52 20 60 2835 3 43 11 51 19 59 2734 2 42 10 50 18 58 2633 1 41 9 49 17 57 25图2-4 逆初始置换(IP-1)2.1.4 F函数运算的原理F函数包括了:E扩展的置换选择,与密钥的异或,S盒的缩减选择,以及P置换选择和与上一轮的L(左)32位异或,从而形成了DES的16轮迭代中的每一轮。下图为F函数运算图:Li CiRi Di 左移 左移移置换压缩(置换选择2)扩展置换(E表)异或运算Li+1Ci+1Ri+1Di+1替代选择(S盒) 置换(P)异或运算Li CiRi Di 左移 右移置换
23、压缩(置换选择2)扩展置换(E表)异或运算 32位 48位Ki48位 48位Li+1Ci+1Ri+1Di+1替代选择(S盒) 置换(P)异或运算 32位 图2-5 F函数运算1. 扩充置换E扩充置换E的作用是将32位的输入(即IP输出的右32位)进行操作使其变成48位的输出,并作为与相对应的48位子密钥异或的输入。E扩充置换的规则是将输入的32位作为输出的第1位,输入的第1位作为输出的第2位。32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11 12 1312 13 14 15 16 1716 17 18 19 20 2120 21 22 23 24 2524 25 26 27
24、 28 2928 29 30 31 32 1 图2-6 扩展置换盒E设输入为M,输出为C,那么有函数E(M)=C,则有C1=M32,C2=M1如上图位置转换得出最终的扩充结果。2. S盒置换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 s盒置换的作用主要是对48位的输入进行缩减置换为32位输出,也是整个DES中唯一的非线性组件,是保证安全的
25、关键所在。其中每个s盒以6位输入,产生4位的输出结果。对于s盒的选择函数是被一个事先指定的方式表示的,每个s盒是一个4*16的矩阵表示,下面就是8个s盒的 具体叙述: 图2-7 S1盒 15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10 3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5 0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15 13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9 图2-8 S2盒10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8 13 7 0 9
26、3 4 6 10 2 8 5 14 12 11 15 1 13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7 1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12 7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15 13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9 10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4 3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14 图2-9 S3盒图2-10 S4 盒2 12 4 1 7 10 11 6 8 5 3
27、15 13 0 14 9 14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6 4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14 11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3 图2-11 S5 盒12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11 10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8 9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6 4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13 图2-12 S6盒4
28、11 2 14 15 0 8 13 3 12 9 7 5 10 6 1 13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6 1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2 6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12 图2-13 S7盒4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1 13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6 1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2 6 11 13 8 1 4 10 7 9 5 0 15
29、 14 2 3 12 图2-14 S8盒 s盒选择规则:输入到s盒的位数为48位,并将其分成8组,每组6位,用B表示每一组,用m表示每一位。那么就有B1到B8 这么8个组,其中每个组有6位分别为m1到m6。每个组的Bi的第一位和第六位组成一个2进制数其值可能为:00,01,10,11分别代表这个矩阵中的第1行,第2行,第3行,第4行。而中间的4位就是0到15这16个数值,用它来选取这个矩阵的16列中的其中一列。这样8个s盒就选出了4*8=32位的结果输出,这样就将48位的数据缩减为32位了。3. P置换16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10 2
30、 8 24 14 32 27 3 919 13 30 6 22 11 4 25p置换的输入时s盒的32位输出,在进行p置换后输出结果依然为32位只是改变了置换前的顺序,置换规则如下图2-6: 图2-15 P置换将输入的第16位输出到第1位,将第7位输出到第2位,以此类推。再将p置换后的数据与最初的左半部分进行异或,然后将其与右半部分进行交换后再进行下一轮。2.1.5 DES加密的原理DES加密将传统的代替法和换位法进行多次组合,利用分散和错乱的相互作用得出了密码强度高的密文。加密时,DES对以64位为分组的明文进行操作,通过一个初始置换,将明文分组分成左半部分和右半部分,各32位长,作为加密运
31、算的初始输入。然后进行16轮完全相同的运算,最后经过一个末置换(初始置换的逆置换),将64位的密文输出Ln-1Rn-1LnRnf(Rn1,kn)异或Kn 图2-16 输出交换 第N-1层和第N层的输出有如下关系: 式中表示以2为模的逻辑异或运算。为向第n层输入的48比特的轮密钥。和分别表示第n-1层的左右输出。f是DES加密的关键,其为一个非线性函数,此非线性运算提供了很好的安全性,它由S盒来实现。在f函数中,32为的明文先被扩展为48位,然后与48为轮密钥进行异或后分为6位一组,分别对应作为8个S盒的输入。S盒有4行16列,每个行与列的交叉处有一个数值。S盒的操作规则是将6位一组的输入中的第
32、1位和第6位看作是选行信号,此两位二进制信息的组合可由0、1、2、3各行中选中一行;第2位至第5位看作是选列信号,共16种组合,故可由S盒的16列中选中一列,选中的行与列的交叉点的数即为S盒的输出,此数的值在0与15之间,正好以4比特的输出表示,8个S盒正好输出32位。将得出的32位值作为置换P的输入,在与前一轮的Ln-1进行异或运算得出下一轮的Rn。前一轮的Ri-1作为本轮的Ln。这样经过16轮的运算得到L15和R15进行一次左右交换再进行逆初始置换得出最终的密文就完成了加密的过程。过程如下图2-17:第2轮64比特密文56比特密钥初始置换置换选择2左循环移位第1轮置换选择2左循环移位置换选
33、择2左循环移位第16轮左右交换64比特明文逆初始置换K1K2K166图2-17 加密过程2.2 DES解密的过程2.2.1 DES解密的原理DES加密算法的解密与它本身的加密算法的原理是一样的,因为DES加密算法是对称加密算法,所以它在收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密。所以DES解密的过程就是它对密文,用加密时所使用的密钥对密文进行加密而得到的结果,这个结果就是我们所加密之前的明文。2.2.2 DES解密的过程在DES对密文进行解密
34、之前,首先要对密文进行分组,将密文分别分为64Bit为一组来进行解密,在解密之后再将这些分组按照先后顺序组合起来。在解密的时候将分好组的密文按照DES加密的过程来进行。通过一个初始置换,将密文分组分成左半部分和右半部分,各32位长,作为加密运算的初始输入。然后进行16轮完全相同的运算,将64位的密文分为左右2部分Li和Ri。将Ri作为下一轮的Li+1的输入。Ri经过E表将32位的密文扩展为48位,在将将其与经过置换选择2的密钥进行异或运算后,再经过S盒运算后将48位转换为32位,再经过P置换后与Li进行异或运算得出Ri+1。经过这样的16轮运算后得出L15和R15,在经过位置交换最后经过一个末
35、置换(初始置换的逆置换),将64位的明文输出。过程如下图:64比特明文56比特密钥初始置换置换选择2左循环移位第1轮置换选择2左循环移位置换选择2左循环移位第16轮左右交换64比特密文逆初始置换K1K2K166第2轮图2-18 解密过程第三章3DES加密原理3.1 3DES加密算法简介3.1.1 3DES加密算法简介对于3DES加密过程而言其实质就是运用3次DES加密算法来实现的,3DES又称Triple DES,是DES加密算法的一种模式,它使用3条56位的密钥对数据进行三次加密。根据使用的密钥数和加解密变换过程不同,三重DES有四种模型: 3DES-EEE3,使用三个不同的密钥,顺序进行三
36、次加密 3DES-EDE3,使用三个不同的密钥,依次进行加密-解密-加密 3DES-EEE2,使用两个不同的密钥,其中K1=K3,顺序进行三次加密 3DES-EDE2,使用两个不同的密钥,其中K1=K3,依次进行加密-解密-加密数据加密标准(DES)是美国的一种由来已久的加密标准,它使用对称密钥加密法, DES使用56位密钥和密码块的方法,而在密码块的方法中,文本被分成64位大小的文本块然后再进行加密。比起最初的DES,3DES更为安全。3.2 3DES的加密过程3.2.1 3DES-EEE3加密3DES加密算法是以DES为基本模块,通过组合分组方法设计出分组加密算法,其具体实现如下:设Ek(
37、)和Dk()代表DES算法的加密和解密过程,K代表DES算法使用的密钥,P代表明文,C代表密文,这样, 3DES加密过程为:C=Ek3(Ek2(Ek1(P)如下图3-1:密钥K3明文P加密算法E加密算法E加密算法E密文C密钥K1密钥K2图3-1 3DES-EEE3加密 3.2.2 3DES-EDE3加密3DES加密算法是以DES为基本模块,通过组合分组方法设计出分组加密算法,其具体实现如下:设Ek()和Dk()代表DES算法的加密和解密过程,K代表DES算法使用的密钥,P代表明文,C代表密文,这样, 3DES加密过程为:C=Ek3(Dk2(Ek1(P)如下图3-2:密钥K1明文P加密算法E解密
38、算法D加密算法E密文C密钥K3密钥K2图3-2 3DES-EDE3加密3.2.3 3DES-EEE2加密3DES加密算法是以DES为基本模块,通过组合分组方法设计出分组加密算法,其具体实现如下:设Ek()和Dk()代表DES算法的加密和解密过程,K代表DES算法使用的密钥,P代表明文,C代表密文,这样, 3DES加密过程为:C=Ek1(Ek2(Ek1(P)如下图3-3:密钥K1明文P加密算法E加密算法E加密算法E密文C密钥K1密钥K2图3-3 3DES-EEE2加密3.2.4 3DES-EDE2加密3DES加密算法是以DES为基本模块,通过组合分组方法设计出分组加密算法,其具体实现如下:设Ek
39、()和Dk()代表DES算法的加密和解密过程,K代表DES算法使用的密钥,P代表明文,C代表密文,这样, 3DES加密过程为:C=Ek1(Dk2(Ek1(P)如下图3-4:密钥K1明文P加密算法E解密算法D加密算法E密文C密钥K1密钥K2图3-4 3DES-EDE2加密3.3 3DES的解密过程3.2.1 3DES-EEE3解密其对于3DES-EEE3解密来说,第一次用K1对初始数据解密,再用K2对K1解密后的数据解密,再用K3对K2加密后的数据进行解密,这样就实现了对数据的3DES解密算法的实现。3DES-EEE3解密过程为:P=Dk1(DK2(Dk3(C) 如下图3-5:密钥K3密文C解密
40、算法E解密算法E解密算法E明文P密钥K1密钥K2图3-5 3DES-EEE3解密3.2.2 3DES-EDE3解密其对于3DES-EDE3解密来说,第一次用K1对初始数据解密,再用K2对K1加密后的数据加密,再用K3对K2加密后的数据进行解密,这样就实现了对数据的3DES解密算法的实现。密钥K3密文C解密算法E加密算法E解密算法E明文P密钥K1密钥K23DES-EDE3解密过程为:P=Dk1(EK2(Dk3(C) 如下图3-6:图3-6 3DES-EDE3解密3.2.3 3DES-EEE2解密其对于3DES-EEE2解密来说,第一次用K1对初始数据解密,再用K2对K1解密后的数据解密,再用K1
41、对K2解密后的数据进行解密,这样就实现了对数据的3DES解密算法的实现。3DES-EEE2解密过程为:P=Dk1(DK2(Dk1(C) 如下图3-7:密钥K1密文C解密算法E解密算法E解密算法E明文P密钥K1密钥K2图3-7 3DES-EEE2解密3.2.4 3DES-EDE2解密其对于3DES-EDE2解密来说,第一次用K1对初始数据解密,再用K2对K1解密后的数据加密,再用K1对K2加密后的数据进行解密,这样就实现了对数据的3DES解密算法的实现。3DES-EDE2解密过程为:P=Dk1(EK2(Dk3(C) 如下图3-8:密钥K1密文C解密算法E加密算法E解密算法E明文P密钥K1密钥K2
42、图3-8 3DES-EDE2解密对于3DES加密算法而言它的解密过程其原理与DES加密算法是一样的,也是运用相应K对其解密,这里所运用的密钥的顺序正好与加密密钥顺序相反,在加密的时候用的是Ki加密/解密的,在解密的时候就用对应的Ki进行解密/加密后得出明文。第四章 DES与3DES加密算法的设计与实现4.1 DES与3DES加密算法的设计4.1.1 需求分析本系统是一个加密算法功能实现的系统。其主要实现的功能DES与3DES加密算法对明文以及文件系统的加密功能和解密功能的实现来保护信息安全。4.2 DES与3DES加密算法的功能实现4.2.1实现功能根据需求分析,确定本设计至少应该包含如下一些功能:1、运用DES加密算法对明文实现加密与解密。2、运用DES加密算法对文件