2015密学课设计报告.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2015密学课设计报告

课程设计报告题目:SPN和RSA密码算法的快速实现与安全性分析课程名称:密码学课程设计专业班级:信息安全1302班学号:姓名:指导教师:报告日期:2015.9.20计算机科学与技术学院任务书课题内容:(1)原始SPN(教材上)算法的实现。(2)对上述算法进行线性密码分析及差分密码分析(求出所有32比特密钥)。(3)增强以上SPN的安全性(如增加分组的长度、密钥的长度、S盒、轮数等)。(4)对原始及增强的SPN进行随机性检测,对检测结果进行说明。(5)生成RSA算法的参数(如p、q、N、私钥、公钥等)。(6)快速实现RSA(对比模重复平方、蒙哥马利算法和中国剩余定理)。(7)结合RSA和增强后的SPN实现文件(或通信)的加解密。课题任务要求:掌握线性、差分分析的基本原理与方法。体会位运算、预计算在算法快速实现中的作用。可借助OpenSSL、GMP、BIGINT等大数运算库的低层基本函数,实现过程中必须体现模重复平方、中国剩余定理和蒙哥马利算法的过程。独立完成课程设计内容,现场演示并讲解。课程设计完成后一周内,提交课程设计报告。主要参考文献(由指导教师选定)密码学原理与实践(第三版). DouglasR.Stinson著,冯登国译,电子工业出版社,2009应用密码学:协议算法与C源程序(第二版).Bruce Schneier?著,吴世忠等译,机械工业出版社,2014同组设计者 无1引言1.1课题背景与意义鉴于目前计算机技术水平的发展,信息的安全越来越显得尤为重要。如信今随着信息技术的发展,文件的加解密技术也受到了极大的挑战。如何才能对文件更快更好的加解密,如何才能对文件起到更好的保护也成为了一项热门的话题。1.2国内外研究现状目前,国内外一些主流的加解密算法大致有以下的几类:单向散列算法:MD5、SHA、SHA-1等对称加密算法:RC4流密码、TEA算法、IDEA算法、BlowFish算法、AES算法等公开密钥加密算法:RSA算法、ElGamal公钥算法、DSA数字签名算法、椭圆曲线密码编码学等其它算法:CRC32算法、Base64算法等目前,常见的一些数据加密库有:Mircal大数运算库、FGInt、freeLIP、Crypto++、GMP、OpenSSL、DCP、DEC、MicrosoftCryptoAPI、NTL等1.3课程设计的主要研究工作在本次课程设计中,主要研究的工作为:理解SPN及RSA的原理,实现其功能,并在此基础上对其进行改进加强并进行安全必分析,最终实现两者的结合,编译一个完整的文件加解密应用。2各内容实现及其说明2.1原始SPN(教材上)算法的实现2.1.1 算法原理SPN算法的实现基于代换-置换网络。其基本实现原理可描述为:第一轮将明文作为输入,接下来每一轮,先将上一轮得到的结果与本轮的密钥相异或,然后再将所得结果进行S盒置换,接着再进行P盒置换,最终将P盒置换得到的结果作为下一轮输入的结果。经过多轮的代换置换后,最后一轮得到的结果与最后一个轮密钥进行异或,得到的结果即为密文。2.1.2 算法实现说明1、主要函数声明void spn(char x[],char y[])//SPN加密程序,用于将X加密并用Y作用出口参数int bittoten(char x[])//用于将字符置换成十进制数,进而用于S盒代换void tentobit(int sum,char y[])//用于将代换后的十进制数重新转为二进制存储void baoli(int k6,int k8,char x[][16],char y[][16],char k0[])//暴力破解,用于穷举24位密钥void spnline(char x[][16],char y[][16],int n)//SPN线性分析void spnca(char x[][16],char y[][16],int T)//SPN差分分析2.1.3 程序运行截图所得结果与书上例子所给结果无异。2.2对上述算法进行线性密码分析及差分密码分析(求出所有32比特密钥)2.2.1线性及差分密码分析线性密码分析方法本质上是一种已知明文攻击方法。这种方法可用221个已知明文破译8一轮DES,可用247个已知明文破译16轮DES。该种方法在某些情况下,可用于唯密文攻击。差分密码分析6[]是迄今己知的攻击迭代密码最有效的方法之一,其基本思想是通过分析明文对的差值对相应密文对的差值所产生的影响来恢复某些密钥比特。2.2.2算法实现说明利用书上所给的伪代码,即通过计数器,来对满足条件的数据进行统计,最终被统计次数最多的就有最大的可能为所求的8bit密钥。利用这8bit密钥进而暴力破解的方式求解出剩余的24bit密钥,从而完整的破解出密钥。具体函数声明与上例一致。2.2.3程序运行截图

文档评论(0)

linjuanrong + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档