欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    密码学课程设计AES加密解密文档.docx

    • 资源ID:1786686       资源大小:216.68KB        全文页数:21页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    密码学课程设计AES加密解密文档.docx

    1、密码学课程设计AES加密解密文档工程学院课程设计报告AES加密解密的实现课程名称:应用密码算法程序设计 学生姓名: 学生学号: 专业班级: 任课教师: 年 月 日附件:课程设计成绩评价表指导老师评阅成绩表学习与工作态度(30%)选题意义(10%)文献综述(10%)研究水平与设计能力(20%)课程设计说明说(论文)撰写质量(20%)设计创新(10%)总分指导老师签名: 年 月 日课程设计答辩记录及评价表学生讲述情况教师主要提问记录学生回答问题情况答辩评分评分项目分值评价参考标准评分总分优良中及格差选题意义1098764文献综述1098764研究水平与设计能力201917151310课程设计说明书

    2、(论文)撰写质量201917151310设计创新1098764答辩效果302825221915答辩小组成员签名答辩小组组长签名: 年 月 日课程设计成绩评定表成绩汇总评分项目评分比例分数课程设计总分指导老师评分50%答辩小组评分50%1 背景AES,密码学中的高级加密标准(Advanced Encryption Standard,AES),又称 Rijndael加密法,是美国联邦政府采纳的一种区块加密标准。那个标准用来替代原先的DES,已经被多方分析且广为全世界所利用。通过五年的甄选流程,高级加密标准由美国国家标准与技术研究院 (NIST)于2001年11月26日发布于FIPS PUB 197

    3、,并在2002年5月26日成为有效的标准。2006年,高级加密标准已然成为对称密钥加密中最流行的算法之一。AES 有一个固定的128位的块大小和128,192或256位大小的密钥大小。该算法为比利时密码学家Joan Daemen和Vincent Rijmen所设计,结合两位作者的名字,以Rijndael之命名之,投稿高级加密标准的甄选流程。(Rijdael的发音近于 Rhine doll。)AES在软体及硬件上都能快速地加解密,相对来讲较易于实作,且只需要很少的经历体。作为一个新的加密标准,目前正被部署应用到更广大的范围.系统要紧目标大体要求部份:1在深切明白得AES加密/解密算法理论的基础上

    4、,设计一个AES加密/解密软件系统;2完成一个明文分组的加解密,明文和密钥是十六进制,长度都为64比特(16个16进制数),输入明文和密钥,输出密文,进行加密后,能够进行正确的解密;3. 程序运行时,要求输出每一轮利用的密钥,和每一轮加密或解密以后的16进制表示的值;4. 要求提供所设计系统的报告及完整的软件。较高要求部份:1.若是明文不止一个分组,程序能完成份组,然后加密;最后一个分组长度不足时要求完成填充;密钥长度不足时能进行填充,太长那么自动截取前脸部份。2.密钥采纳ASCII码,明文要求输入信息能够是文字(能够是汉字或英文,信息量要求不止一个加密分组长度),任意字符,或是文本文档,或一

    5、般文件。进行加密后,能够进行正确的解密;3.程序代码有比较好的结构,模块划分合理,如用类进行封装,通过挪用类的成员函数实现加密解密功能,函数的参数及返回值设置合理等;4.界面友好,程序实现有新意。 要紧软件需求(运行环境)本软件适用VC语言编写,编译成功后的EXE文件能够在装有windows系统的任何运算机上利用。测试平台:Windows XP Professional利用软件:Visual C+ 功能模块与系统结构要紧功能模块如下:1.字节替换SubByteA0,0A0,1A0,2A0,3A1,0A1,1A1,2A1,3A2,0A2,1A2,2A2,3A3,0A3,1A3,2A3,3B0,0

    6、B0,1B0,2B0,3B1,0B1,1B1,2B1,3B2,0B2,1B2,2B2,3B3,0B3,1B3,2B3,32.行移位ShiftRow 通过逆S盒的映射变换取得与加密时的行移位区别在于移位方向相反。加密与解密系统流程图如下所示,3 系统功能程序设计 大体要求部份 字节替换SubBytes()变换是一个基于S盒的非线性置换,它用于将输入或中间态的每一个字节通过一个简单的查表操作,将其映射为另一个字节。映射方式是把输入字节的高四位作为S盒的行值,低四位作为列值,然后掏出S盒中对应的行和列的元素作为输出。unsigned char subbytes(unsigned char state

    7、44) printf(after subbyte:n); addroundkey(state,w); for(round=2;round11;round+) printf(第 %d 轮加密 : n,round);subbytes(state); shiftrows(state);mixcolumns(state);keyexpand(w, round);addroundkey(state,w);subbytes(state); 测试报告 为查验程序的正确性,需要将结果与标准相对照。参照教师课件里的AES运行程序的运行结果,与我的运行结果对照如下: 下面是我的运行界面: 上面的是标准,接着的是我

    8、的运行测试,下面的是我从终端中复制的进程:密钥扩展 Round key: ef a8 b6 db 44 52 71 0b a5 5b 25 ad 41 7f 3b 00addroundkey 5 : e0 c8 d9 85 92 63 b1 b8 7f 63 35 be e8 c0 50 01第 6 轮加密 :after subbyte: e1 e8 35 97 4f fb c8 6c d2 fb 96 ae 9b ba 53 7cafter shiftrows: e1 e8 35 97 fb c8 6c 4f 96 ae d2 fb 7c 9b ba 53after mixcolumns:

    9、25 bd b6 4c d1 11 3a 4c a9 d1 33 c0 ad 68 8e b0after keyexpand:rotword():0b ad 00 dbsubword():2b 95 63 b9after Rcon():3b 95 63 b9w20 : d4 d1 c6 f8w21 : 7c 83 9d 87w22 : ca f2 b8 bcw23 : 11 f9 15 bc密钥扩展 Round key: d4 7c ca 11 d1 83 f2 f9 c6 9d b8 15 f8 87 bc bcaddroundkey 6 : f1 c1 7c 5d 00 92 c8 b5

    10、6f 4c 8b d5 55 ef 32 0c第 7 轮加密 :after subbyte: a1 78 10 4c 63 4f e8 d5 a8 29 3d 03 fc df 23 feafter shiftrows: a1 78 10 4c 4f e8 d5 63 3d 03 a8 29 fe fc df 23after mixcolumns: 4b 2c 33 37 86 4a 9d d2 8d 89 f4 18 6d 80 e8 d8after keyexpand:rotword():f9 15 bc 11subword():99 59 65 82after Rcon():b9 59

    11、65 82w24 : 6d 88 a3 7aw25 : 11 0b 3e fdw26 : db f9 86 41w27 : ca 00 93 fd密钥扩展 Round key: 6d 11 db ca 88 0b f9 00 a3 3e 86 93 7a fd 41 fdaddroundkey 7 : 26 3d e8 fd 0e 41 64 d2 2e b7 72 8b 17 7d a9 25第 8 轮加密 :after subbyte: f7 27 9b 54 ab 83 43 b5 31 a9 40 3d f0 ff d3 3fafter shiftrows: f7 27 9b 54 8

    12、3 43 b5 ab 40 3d 31 a9 3f f0 ff d3after mixcolumns: 14 46 27 34 15 16 46 2a b5 15 56 d8 bf ec d7 43after keyexpand:rotword():00 93 fd casubword():63 dc 54 74after Rcon():23 dc 54 74w28 : 4e 54 f7 0ew29 : 5f 5f c9 f3w30 : 84 a6 4f b2w31 : 4e a6 dc 4f密钥扩展 Round key: 4e 5f 84 4e 54 5f a6 a6 f7 c9 4f dc

    13、 0e f3 b2 4faddroundkey 8 : 5a 19 a3 7a 41 49 e0 8c 42 dc 19 04 b1 1f 65 0c第 9 轮加密 :after subbyte: be d4 0a da 83 3b e1 64 2c 86 d4 f2 c8 c0 4d feafter shiftrows: be d4 0a da 3b e1 64 83 d4 f2 2c 86 fe c8 c0 4dafter mixcolumns: 00 b1 54 fa 51 c8 76 1b 2f 89 6d 99 d1 ff cd eaafter keyexpand:rotword()

    14、:a6 dc 4f 4esubword():24 86 84 2fafter Rcon():a4 86 84 2fw32 : ea d2 73 21w33 : b5 8d ba d2w34 : 31 2b f5 60w35 : 7f 8d 29 2f密钥扩展 Round key: ea b5 31 7f d2 8d 2b 8d 73 ba f5 29 21 d2 60 2faddroundkey 9 : ea 04 65 85 83 45 5d 96 5c 33 98 b0 f0 2d ad c5第 10 轮加密 :after subbyte: 87 f2 4d 97 ec 6e 4c 90

    15、4a c3 46 e7 8c d8 95 a6after shiftrows: 87 f2 4d 97 6e 4c 90 ec 46 e7 4a c3 a6 8c d8 95after mixcolumns: 47 40 a3 4c 37 d4 70 9f 94 e4 3a 42 ed a5 a6 bcafter keyexpand:rotword():8d 29 2f 7fsubword():5d a5 15 d2after Rcon():46 a5 15 d2w36 : ac 77 66 f3w37 : 19 fa dc 21w38 : 28 d1 29 41w39 : 57 5c 00

    16、6e密钥扩展 Round key: ac 19 28 57 77 fa d1 5c 66 dc 29 00 f3 21 41 6eaddroundkey 10 : eb 59 8b 1b 40 2e a1 c3 f2 38 13 42 1e 84 e7 d2after subbyte: e9 cb 3d af 09 31 32 2e 89 07 7d 2c 72 5f 94 b5after shiftrows: e9 cb 3d af 31 32 2e 09 7d 2c 89 07 b5 72 5f 94after keyexpand:rotword():5c 00 6e 57subword(

    17、):4a 63 9f 5bafter Rcon():7c 63 9f 5bw40 : d0 14 f9 a8w41 : c9 ee 25 89w42 : e1 3f 0c c8w43 : b6 63 0c a6密钥扩展 Round key: d0 c9 e1 b6 14 ee 3f 63 f9 25 0c 0c a8 89 c8 a6输出明文加密后的密文 : 39 02 dc 19 25 dc 11 6a 84 09 85 0b 1d fb 97 32Welcome to AES encrypt and decryptFirst You should make a choice ! AES_e

    18、ncrypt加密 A: 自动查验AES加密实现进程! B: 用户输入明文,实现AES加密! AES_decrypt解密 C: 自动查验AES解密实现进程! D: 用户输入密文,实现AES解密!Its over! Please input again:请选择:当输入的明文和密钥位数有误是,会产生错误报告:Welcome to AES encrypt and decryptFirst You should make a choice ! AES_encrypt加密 A: 自动查验AES加密实现进程! B: 用户输入明文,实现AES加密! AES_decrypt解密 C: 自动查验AES解密实现进程

    19、! D: 用户输入密文,实现AES解密!请选择:pSorry,there isnt the choice!Please input again:请选择:5结论 本程序是处置的AES分组大小和密钥长度都为128位,迭代轮数为10轮。由于我能力有限,程序还有很多不足的地方,比如不能自动填充缺失位等,只能说是完成了AES的大体功能,我也希望能将它的功能变得更壮大,但多次修改后均没有成功。通过量次调试,对SubBytes,ShiftRows,MixColumns,AddRoundKey等加密进程,InvMixColumns,InvShiftRows,InvSubBytes等解密进程的编程运行进程有了清楚的熟悉,深切明白得了AES的加密和解密进程,对算法、密码保密性和平安性有了新的熟悉,收成很多。参考文献1 谭浩强C程序设计(第二版) 清华大学出版社19992 张海藩软件工程导论和(第四版) 清华大学出版社20033杨波现代密码学清华大学出版社20034 张福泰 密码学教程(第一版) 武汉大学出版社 2006


    注意事项

    本文(密码学课程设计AES加密解密文档.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开