ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:161.33KB ,
资源ID:10383908      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10383908.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(现代密码学课程设计实验报告.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

现代密码学课程设计实验报告.docx

1、现代密码学课程设计实验报告西安科技大学现代密码学课程设计报告题 目: 密码学计算器 学院: 计算机科学与技术学院 班级: 姓 名: 学 号: 日 期: 2015.1.8 1课程设计题目 密码学计算器的研究与实现二分工对称密码程序实现Des算法 组长: 古典密码程序设计(置换) SHA算法 ECC算法 三软件运行环境 Windows7操作系统 visual C+4算法设计思想 1.古典密码置换算法 置换密码算法的原理是不改变明文字符,只将字符在明文中的排列顺序改变,从而实现明文信息的加密。置换密码又称为换位密码。矩阵换位法是实现置换密码的一种常用方法。它将明文中的字母按照给定的顺序安排在一个矩阵

2、中,然后又根据密钥提供的顺序重新组合矩阵中的字母,从而形成密文。例如,明文为 attack begins at five ,密钥为 cipher ,将明文按照每行6个字母的形式排在矩阵中,形成如下形式: a t t a c k b e g i n s a t f i v e根据密钥 cipher 中各字母在字母表中出现的先后顺序,得到给定的一个置换: f = 1 4 5 3 2 6因此有: 密钥: 1 4 5 3 2 6 明文: a t t a c k b e g i n s a t f i v e根据上面的置换,将原有矩阵中的字母按照第1列、第4列、第5列、第3列、第2列、第6列的顺序排列、

3、则有下面的形式:a a c t t k b i n g e s a i v f t e从而得到密文:abatgftetcnvaiikse其解密过程是根据密钥的字母数作为列数,将密文按照列、行的顺序写出,再根据由密钥给出的矩阵置换产生新的矩阵,从而恢复明文。 2.ECC算法 ECC(Elliptic Curves Cryptography)加密算法是一种公钥加密算法,与主流的RSA算法相比,ECC算法可以使用较短的密钥达到相同的安全程度。近年来,人们对ECC的认识已经不再处于研究阶段,开始逐步进入实际应用,如国家密码管理局颁布的SM2算法就是基于ECC算法的在引入椭圆曲线之前,不得不提到一种新的

4、坐标系-射影平面坐标系,它是对笛卡尔直角坐标系的扩展,增加了无穷远点的概念。在此坐标系下,两条平行的直线是有交点的,而交点就是无穷远点。两者的变换关系为:笛卡尔坐标系中的点a(x,y),令x=X/Z,y=Y/Z,则射影平面坐标系下的点a的坐标为(X,Y,Z),如点(2,3)就转换为(2Z,3Z,Z)。加法法则运算法则:任意取椭圆曲线上两点P、Q (若P、Q两点重合,则做P点的切线)做直线交于椭圆曲线的另一点R,过R做y轴的平行线交于R。我们规定P+Q=R。(如图)下面,我们利用P、Q点的坐标(x1,y1),(x2,y2),求出R=P+Q的坐标(x4,y4)。P,Q,R共线,设为y=kx+b,若

5、PQ,k=(y1-y2)/(x1-x2)若P=Q,k=(3x2+2a2x+a4-a1y) /(2y+a1x+a3)解方程组得到:x4=k2+ka1-a2-x1-x2;y4=k(x1-x4)-y1-a1x4-a3; 3.对称密码DES算法 DES是一个16轮的Feistel型结构密码,它的分组长度为64比特,用一个56比特的密钥来加密一个64比特的明文串,输出一个64比特的密文串。其中,使用密钥为64比特,实用56比特,另8位用作奇偶校验。加密的过程是先对64位明文分组进行初始置换,然后分左、右两部分分别经过16轮迭代,然后再进行循环移位与变换,最后进行逆变换得出密文。加密与解密使用相同的密钥,

6、因而它属于对称密码体制。图4-3给出了DES过程框图。假设输入的明文数据是64比特。首先经过初始置换IP后把其左半部分32比特记为L0,右半部分32比特记为R0,即成了置换后的输入;然后把R0与密钥产生器产生的子密钥k1进行运算,其结果计为f (R0,k1);再与L0进行摸2加得到L0f (R0 , k1), 把R0记为L1放在左边,而把L0f (R0 , k1)记为R1放在右边,从而完成了第一轮迭代运算。在此基础上,重复上述的迭代过程,一直迭代至第16轮。所得的第16轮迭代结果左右不交换,即L15f (R15 , k16)记为R16,放在左边,而R15记为L16放在右边,成为预输出,最后经过

7、初始置换的逆置换IP-1运算后得到密文。 图4-3 DES框图DES的解密过程与加密过程共用了同样的计算过程。两者的不同之处仅在于解密时子密钥ki的使用顺序与加密时相反。如果加密的子密钥k1,k2,k16, 那么,解密时子密钥的使用顺序为与k16,k15,k1。即:用DES解密时,将以64位密文作为输入,第一轮迭代使用子密钥k16;第二轮迭代使用子密钥k15 , , 第16轮迭代使用子密钥k1, 其他运算与加密时一样,最后输出的便是64位明文。 4.SHA算法散列是信息的提炼,通常其长度要比信息小得多,且为一个固定长度。加密性强的散列一定是不可逆的,这就意味着通过散列结果,无法推出任何部分的原

8、始信息。任何输入信息的变化,哪怕仅一位,都将导致散列结果的明显变化,这称之为雪崩效应。散列还应该是防冲突的,即找不出具有相同散列结果的两条信息。具有这些特性的散列结果就可以用于验证信息是否被修改。SHA-1是一种数据加密算法,该算法的思想是接收一段明文,然后以一种不可逆的方式将它转换成一段(通常更小)密文,也可以简单的理解为取一串输入码(称为预映射或信息),并把它们转化为长度较短、位数固定的输出序列即散列值(也称为信息摘要或信息认证代码)的过程。单向散列函数的安全性在于其产生散列值的操作过程具有较强的单向性。如果在输入序列中嵌入密码,那么任何人在不知道密码的情况下都不能产生正确的散列值,从而保

9、证了其安全性。SHA将输入流按照每块512位(64个字节)进行分块,并产生20个字节的被称为信息认证代码或信息摘要的输出。该算法输入报文的长度不限,产生的输出是一个160位的报文摘要。输入是按512 位的分组进行处理的。SHA-1是不可逆的、防冲突,并具有良好的雪崩效应。通过散列算法可实现数字签名实现,数字签名的原理是将要传送的明文通过一种函数运算(Hash)转换成报文摘要(不同的明文对应不同的报文摘要),报文摘要加密后与明文一起传送给接受方,接受方将接受的明文产生新的报文摘要与发送方的发来报文摘要解密比较,比较结果一致表示明文未被改动,如果不一致表示明文已被篡改。MAC (信息认证代码)就是

10、一个散列结果,其中部分输入信息是密码,只有知道这个密码的参与者才能再次计算和验证MAC码的合法性。5算法设计与分析(含流程图)该密码学计算器实现了四个功能,其中两个: (1)古典密码程序设计(置换)(2)对称密码程序实现(DES) (3)SHA算法 (4)ECC算法 我负责的是古典密码置换算法,我的思想是:不改变原给字母的字符,只根据所给秘钥改变原给字符串的顺序,从而对明文加密,解密思想与加密一样。加密核心代码如下: printf (请输入需要加密的字符数量(不大于100):); scanf(%d,&k); printf(请输入明文(字符串): n); for(i=0;ik;i+) scanf

11、(%d,&mingi); for(j=0;jk;j+) l=1; a=mingj; m=1; for (i=1;i=e;i+) m=m*a; l=m%n; if (l0) l=l+n; cj=l; printf(加密后的密文是:n); for(j=0;jk;j+) printf(%d,cj);解密核心代码如下:printf (请输入需要解密的字符数量(不大于100):); scanf(%d,&k); printf(请输入密文(字符串): n); for(i=0;ik;i+) scanf(%d,&ci); for(j=0;jk;j+) m=1;l=1; a=cj; for (i=1;i=d;i+

12、) m=m*a; l=m%n; if (l0) /在进行Mod操作时,会出现负数,我进行了+n 操作。 l=l+n; mingj=l; printf(解密后的明文是:n); for(j=0;jk;j+) printf(%d,mingj); 1.公钥e与t的互素判断函数 Y N N Y N 2. Main函数 Y N Y N 六测试结果与分析 加密如下: 解密: 七总结 这次课程设计,使我对密码学这门课有了更深刻地理解,也为毕业设计打下了一定的密码学基础。我负责的是古典密码置换算法,在算法编程实现时,确实遇到了出现乱码的以及加密后出现问题,通过和组员的讨论和查资料,解决了这一问题,收获颇多。八参考文献 1.杨义先 . 应用密码学. 北京邮电大学出版社. 2005年 2.杨波. 现代密码学.清华大学出版社.2007年

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1