本次文件加密传输系统的设计,基本上完成了预定的要求和目标。能够完成对单机上的文件进行简单的加密,然后实现加密后的文件在以太网内的传输,最后在接受方的单机上对文件进行解密恢复的功能。文件加密部分要求采用对称的加密方式对文件进行加密,本设计中采用了经典的对称加密算法DES对文件加解密,DES算法作为第一个数据加密标准出现,它是对称密码体制算法中最著名的代表。文件传输部分采用了TCP传输协议,TCP面向连接,能够保证数据的可靠交付。
本文的主要工作是研究分析了典型的加密方案,设计并实现了使用DES加密网络数据的传输方案,建立了网络数据传输平台,并在此基础上对系统的性能进行测试。本文是对加密技术在实际应用中实现的一次探索,在具体的应用过程中还存在加密大量数据时速度比较慢等缺点,系统的功能还有待于进一步加强。
课题目的和意义
通过做毕业设计题目“文件加密传输系统设计”,可以从中学习VC++编程,这是课堂之外学的编程知识,通过对它的学习,可以比其他很多同学多掌握一种非常有用的编程工具。还可以从此次设计中学习文件加密技术和以太网通信技术,文件加密技术是为完善现代internet的安全性而产生,是internet发展的必然产物,学习它很有必要;而以太网通信技术与本专业很相关,通过对它的学习,可以更深入的理解通信领域的知识,对本专业的就业很有帮助。
论文的主要内容
本论文是针对密码系统的当前研究状况,主要研究加密算法的应用设计与实现。本论文在研究经典算法的基础上,根据网络应用的具体情况,在 VC++平台上,设计并实现了将需要传输的明文文件经过加密以后生成密文文件,然后经过信道传输到网络的另一端再进行解密得到原始数据的安全传输系统,从而保证敏感数据在网络上传输的机密性和安全性。
文件加密方案的设计
3.1.1 对称密码体制算法的选择与描述
本设计选择对称密码体制中DES算法对文件进行加密,它是一种采用传统加密方法的区组密码。由于DES是一种开放的标准,其安全性取决于密钥的强度和算法的性质。DES算法的具体实现依赖于下列参数和设计特点的选择:
(1) 分组大小。分组越大意味着安全性越高,但加解密速度也就越慢。64比特的分组大小是一个合理的折衷,在分组密码设计中它几乎成为一个通用的数值。
(2) 密钥大小。密钥长度越长则安全性越高,但加解密速度越慢,应根据实际需要选择适当的密钥长度。
(3) 循环次数。循环次数越多则安全性越高,一般采用16次循环。
(4) 子密钥产生算法。这个算法越复杂则密钥分析就越困难。
(5) 函数Round。复杂性越高则抗击密码分析的能力就越强。
DES是一个分组加密算法,它以64位为分组对数据加密。64位一组的明文从算法的一端输入,64位的密文从另一段输出。在加密前,先对整个的明文进行分组。每一个组长64bit。然后对每一个64bit二进制数据进行加密处理,产生一组64bit的密文数据。最后将各组密文串接起来,即得出整个密文。
DES是一个对称算法,加密和解密用的是同一个算法。它所使用的密钥也是64位,首先,DES把输入的64位数据块按位重新组合,并把输出分为L0、R0两部分,每部分各长32位,并进行前后置换(输入的第58位换到第一位,第50位换到第2位,依此类推,最后一位是原来的第7位),最终由L0输出左32位,R0输出右32位,根据这个法则经过16次迭代运算后,得到L16、R16,将此作为输入,进行与初始置换相反的逆置换,即得到密文输出。
64bit明文经过初始置换后,其左边为32bit和右半边32bit分别记为L0和R0。然后经过16次的迭代。如果用Xi表示第i次的迭代结果,同时令Li和Ri分别代表Xi的左半边和右半边,从图3-1可看出,
= (3-1)
= ( , ) (3-2)
式中i=1,2…..,16,而Ki是48bit密钥(丛原来的64bit经过若干次变换出),(3-2)即是DES加密方程。每次迭代要进行函数f变换、模2加运算以及左右半边交换。最后一次的变换是最初变换的逆变换,其输入是R16L16。最后为输出密文,算法框图如下: