密码学课程设计_3.docVIP

  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文档。上传文档
查看更多
课程设计说明书 NO.1 数字签名 1、课程设计的目的 《密码学》是计算机科学与技术(信息安全)专业学生的基础必修课。本课程设计是在学生完成相关课程和理论之后,通过综合训练培养学生的实际分析问题、解决问题的能力,帮助学生从感性认识再到理性认识,最后达到质的飞跃,系统掌握密码学课程的主要内容,更好地完成教学任务。 为了加深对密码学基本思想方法的理解和提高学生对密码学基本算法的具体应用技术,本课程设计设置了一周的课程设计。通过本课程设计,使学生掌握密码学基本的加密和解密的一般步骤及方法,掌握密码学应用于实际的基本技术,为今后的专业应用打下良好的基础。 2.设计方案论证 当前全球电子互连互通的时代,由于计算机病毒。黑客、电子窃听和电子欺诈,是的信息安全性在任何时候都十分重要。密码学可以保护网络数据和资源不被泄漏,步骤数据和消息的真实性,保护系统不受基于网络的攻击。利用成熟的密码学技术可以开发出应用软件来加强网络的安全。在本课程的课程设计过程中,通过让每个学生完成1个具体题目,使学生学会把具体的加密解密算法作成简易的应用软件,从而今后可以利用计算机解决繁杂的实际问题,为后续课的学习和毕业设计奠定良好的基础。 布置具有一定难度的算法题目,帮助学生熟悉加密解密方法,并且能够用所学知识——程序设计语言编写出来,及时查究错误。 (1)要求学生达到熟练应用C语言的基本知识和C语言调试技能; (2)掌握用C语言开发一般加密解密应用程序的一般步骤和方法; (3)能够利用所学的密码学基本知识和技能,独立完成一个较为综合应用程序的开发,提高学生分析问题和解决问题的能力。每位同学的课程设计报告必需独立完成。 具体要求:若干名学生分成一组,在教师的指导下,每组完成一个题目。题目可由教师指定或学生自选。该组每个同学承担题目的不同部分,每位同学的课程设计报告必需独立完成。设计要求如下: 课程设计说明书 NO.2 (1)明确题目要求,进行需求分析,深入理解相应的算法思想。 (2)进行功能设计,编写设计说明 (3)进行程序设计与调试 (4)对设计过程进行系统的总结 2.1.一个简易的数字签名系统的实现 设计要求:该系统要求能够使用散列函数算法对消息生成消息摘要,然后使用一种公钥算法对消息摘要实现签名。 设计步骤:(1)建立一个基于C的应用程序。 (2)通过屏幕菜单方式选择需要完成的任务。 设计方法:应用所学散列函数的基本原理和公钥密码的基本理论知识,使用C语言实现设计要求。 2.2. 单向散列函数是消息认证码的一种变形 又叫 Hash 函数,哈希函数和杂凑函数。 把任意长的消息“压缩”成固定长消息的函数。 数字签名时,常被使用。 通常,HASH 函数是公开的。 一般认为, Hash 函数的输出为64位太小,应为128位以上,一般应为160位~190位。 2.3.RSA 计算模数 n=pq, ? (n) = (p-1)(q-1) 选择一个随机加密密钥 e ,使 e 满足: 0 e ?(n), gcd( e , ? (n) )=1 用欧几里德扩展算法计算解密密钥d,使d满足: e×d=1 mod ?(n) 且 0=d=n 即 d=e-1 mod ?(n) 课程设计说明书 NO.3 公开加密密钥 (公钥) : { e, n } 保存其解密密钥 (私钥) : { d, p, q } 需要选择足够大的素数p, q 通常选择小的加密指数e, 且与?(n) 互素 e 对所有用户可以是相同的 最初建议使用e=3 现在看3太小 常使用e=216+1 = 65537 解密指数 d 比较大 要加密消息M, 首先把明文数字化,并把明文进行分组(每个组的数字小于n)。 发送者要得到接收者的公钥 { e, n }。 发送者计算密文: C=Me mod n, 其中 0=Mn 接收者为解密密文C, 使用私钥{ d, p, q }。 接收者计算: M=Cd mod n 加密明文:public key encryptions 明文转化为一个十进制数: a b c d e f g h i j k l m 0 1 2 3 4 5 6 7 8 9 10 11 12 n o p q r s t u v w x y z 13 14 15 16 17 18 19 20 21 22 23 24 25

文档评论(0)

135****1100 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档