DES加密系统课程设计书.docxVIP

  • 13
  • 0
  • 约5.91千字
  • 约 12页
  • 2017-09-21 发布于江苏
  • 举报
课程设计书DES算法实现工业工程0601:彭鑫学号:012006009207一.DES算法简介:DES(Data Encryption Standard,DES)起源于1973年美国国家标准局(NBS)征求国家密码标准方案。IBM就提交了其在20世纪60年代末设立的一个计算机密码编码学方面的研究项目的结果,这个项目在1971年底研制出了一种称为Lucifer的算法。它是当时提出的最好的算法,因而在1977年被选为数据加密标准,有效期为5年,随后在1983年、1987年、1993年三次再度授权该算法续用5年。DES满足了美国国家标准局欲达到的4个目的:①提供高质量的数据保护即防止数据未经授权的泄露和未被察觉的修改②具有相当高的复杂性③使得破译的开销超过可能获得的利益④便于理解和掌握DES算法把64位的明文输入块变为64位的密文输出块,它所使用的密钥也是64位。首先,DES把输入的64位数据块按位重新组合,并把输出分为L0、R0左右两部分,每部分各长32位,并进行前后置换(输入的第58位换到第一位,第50位换到第2位,依此类推,最后一位是原来的第7位),最终由L0输出左32位,R0输出右32位,根据这个法则经过16次迭代运算后,得到L16、R16,将此作为输入,进行与初始置换相反的逆置换,即得到密文输出。DES算法的入口参数有三个:Key、Data、Mode。其中Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密,如果Mode为加密,则用Key去把数据Data进行加密,生成Data的密码形式作为DES的输出结果;如Mode为解密,则用Key去把密码形式的数据Data解密,还原为Data的明码形式作为DES的输出结果。在使用DES时,双方预先约定使用的“密码”即Key,然后用Key去加密数据;接收方得到密文后使用同样的Key解密得到原数据,这样便实现了安全性较高的数据传输。二.需求分析:数据加密标准曾被美国国家标准局(NBS,现为国家标准与技术研究所NIST)确定为联邦信息处理标准(FIPS PUB 46),使用广泛,特别是在金融领域,曾是对称密码体制事实上的世界标准。目前在国内,随着三金工程尤其是金卡工程的启动,DES算法在POS、ATM、智能卡(IC卡)、加油站、高速公路收费站等领域被广泛应用,以此来实现关键数据的保密,如信用卡持卡人的PIN的加密传输、IC卡与POS间的双向认证、金融交易数据包的MAC校验等,均用到DES算法。因此,对于目前的电子交易市场以及一些商业领域,DES依旧存在着广大的需求。这次课程设计所完成的DES算法,主要是要实现对输入的一组数据,进行DES加密,加密模式分为ECB、CBC、CFB、OFB四种。函数接口是用户自定义的,我们将完成它的内部构造,并封装成dll,以供用户程序调用。该算法所要完成的工作主要是,用户输入密钥以及明文,然后选择需要加密的方式。程序应该实现能判断用户输入的密钥长度是否正确以及输入的数据是否为空,在做出如上判断之后,还要对数据进行填充,填充的方式为:明文不足整块填充格式为L(1子节长度)+L个连续的0x80。比如刚好整块数据,最后填充7个0x80,填充的数据为:0x07 0x80 0x80 0x80 0x80 0x80 0x80 0x80。再比如最后一块为7字节,那么填充的数据就为:0x00。在这些准备工作之后,方可对数据进行加密。在解密的时候,还要完成将填充的数据去掉,恢复以前输入的明文。三.模块设计:对于DES算法,我分为两个模块来实现。其一是实现DES加密、解密的一个类,另外一个是负责向该类传输数据以及对传输的数据进行相关处理的一个函数。对于这样的一个Des类,其接口就是DES的四种不同加解密模式的函数,即ECB、CBC、CFB及OFB,对于这些成员函数的具体实现,我参考了网上的相关代码。而负责向这个类传输数据的函数则由自己编写,其主要要完成的功能应该包括:对于加密,应该实现能对密钥和明文长度进行限制,特别是当明文长度不足整块的时候还要进行填充,然后将密钥和经过处理的明文传送给Des类,而且还能获得加密后的数据;对于解密,也能实现将密钥和密文传送给Des类,并能获取解密后的明文。其具体的实现见下图所示:在DES类中,最主要的两个函数是Encrypt和Decrypt,主要实现DES模块的加解密,是整个程序的核心部分:ECB_Encrypt、ECB_Decrypt; ECB模式的加解密函数CBC_Encrypt、CBC_Decrypt; CBC模式的加解密函数CFB_Encrypt、CFB_Decrypt; CFB模式的加解密函数OFB_Encrypt

文档评论(0)

1亿VIP精品文档

相关文档