欢迎来到天天文库
浏览记录
ID:35618175
大小:164.00 KB
页数:18页
时间:2019-04-02
《课程设计报告--DES算法程序设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、XXXXXXXXXX学院课程设计报告DES加密解密的实现课程名称:DES算法程序设计学生姓名:XXX学生学号:XXXX专业班级:XXX任课教师:XXXX200X年X月X日附件:课程设计成绩评价表指导老师评阅成绩表学习与工作态度(30%)选题意义(10%)文献综述(10%)研究水平与设计能力(20%)课程设计说明说(论文)撰写质量(20%)设计创新(10%)总分指导老师签名:年月日课程设计答辩记录及评价表学生讲述情况教师主要提问记录学生回答问题情况答辩评分评分项目分值评价参考标准评分总分优良中及格差选题意义1098764文献综述109876
2、4研究水平与设计能力201917151310课程设计说明书(论文)撰写质量201917151310设计创新1098764答辩效果302825221915答辩小组成员签名答辩小组组长签名:年月日课程设计成绩评定表成绩汇总评分项目评分比例分数课程设计总分指导老师评分50%答辩小组评分50%目录1.背景12.系统设计12.1系统主要目标12.2主要软件需求(运行环境)12.3功能模块与系统结构13系统功能程序设计23.1基本要求部分23.1.1字节替换23.1.2行移位23.1.3列混合33.1.4密钥加33.1.5密钥扩展43.1.6获取Ro
3、undKey53.1.7逆字节替换53.1.8逆行移位53.1.9逆列混合63.1.10加密73.1.11解密73.2较高要求部分83.2.1明文分组实现83.2.2明文最后分组的填充83.2.3密钥的填充与截取83.2.4……93.2.5……93.13程序界面预览94.测试报告95.结论10参考文献101.背景美国国家标准局1973年开始研究除国防部外的其它部门的计算机系统的数据加密标准,于1973年5月15日和1974年8月27日先后两次向公众发出了征求加密算法的公告。加密算法要达到的目的(通常称为DES密码算法要求)主要为以下四点:
4、☆提供高质量的数据保护,防止数据未经授权的泄露和未被察觉的修改;☆具有相当高的复杂性,使得破译的开销超过可能获得的利益,同时又要便于理解和掌握;☆DES密码体制的安全性应该不依赖于算法的保密,其安全性仅以加密密钥的保密为基础;☆实现经济,运行有效,并且适用于多种完全不同的应用。 1977年1月,美国政府颁布:采纳IBM公司设计的方案作为非机密数据的正式数据加密标准(DES棗DataEncryptionStandard)。 目前在国内,随着三金工程尤其是金卡工程的启动,DES算法在POS、ATM、磁卡及智能卡(IC卡)、加油站、高速公路
5、收费站等领域被广泛应用,以此来实现关键数据的保密,如信用卡持卡人的PIN的加密传输,IC卡与POS间的双向认证、金融交易数据包的MAC校验等,均用到DES算法。2.系统设计2.1系统主要目标基本要求部分:1.在深入理解DES加密/解密算法理论的基础上,设计一个DES加密/解密软件系统;第15页共10页2.完成一个明文分组的加解密,明文和密钥是十六进制,长度都为64比特(16个16进制数),输入明文和密钥,输出密文,进行加密后,能够进行正确的解密;3.程序运行时,要求输出每一轮使用的密钥,以及每一轮加密或解密之后的16进制表示的值;4.要求
6、提供所设计系统的报告及完整的软件。较高要求部分:1.如果明文不止一个分组,程序能完成分组,然后加密;最后一个分组长度不足时要求完成填充;密钥长度不足时能进行填充,过长则自动截取前面部分。2.密钥采用ASCII码,明文要求输入信息可以是文字(可以是汉字或英文,信息量要求不止一个加密分组长度),任意字符,或者是文本文档,或者普通文件。进行加密后,能够进行正确的解密;3.程序代码有比较好的结构,模块划分合理,如用类进行封装,通过调用类的成员函数实现加密解密功能,函数的参数及返回值设置合理等;4.界面友好,程序实现有新意。2.2主要软件需求(运行
7、环境)本软件适用VC语言编写,编译成功后的EXE文件可以在装有windows系统的任何计算机上使用。测试平台:WindowsXPProfessional使用软件:VisualC++6.02.3功能模块与系统结构数组数据:初始置换表IP,逆初始置换表IP^-1,扩充置换表E,置换函数P,S盒,置换选择1,置换选择2,对左移次数的规定。函数列表:voidByteToBit(charch,charbit[8]);voidBitToByte(charbit[8],char*ch);第15页共10页voidChar8ToBit64(charch[8
8、],charbit[64]);voidBit64ToChar8(charbit[64],charch[8]);voidDES_MakeSubKeys(charkey[64],charsubKe
此文档下载收益归作者所有