- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1 引言
1.1 性质
网络安全概论是网络工程专业的主要专业基础课。网络安全在信息安全中越来越重要,了解和掌握网络安全知识对于网络工程专业的学生来说至关重要。本课程使学生掌握网络安全的基本概念、基本原理、网络安全实现方法和实现技术,具有初步分析和配置安全网络的能力,训练分析和解决实际问题能力,为其今后在相关领域开展工作打下坚实的基础。
1.2 教学目的
本科程通过具体设计数字签名算法,应使学生加深对加密和数字签名的工作原理和实现方法的理解,系统科学地受到分析问题和解决问题的训练,提高运用理论知识解决实际问题的能力。为学生从事科学研究和独立负担计算机及其应用方面的工作打好扎实的基础。
1.3 任务和要求
此系统模拟RSA数字签名算法,主要实现对字符串和文件的加密和签名。模拟RSA算法主要分四个模块:RSA算法的参数选择;用MD5算法得到给定电子文档的信息摘要;将信息摘要变换为大整数形式,并在其上使用RSA数字签名体制进行签名,得到电子文档的数字签名;根据给定的电子文档及其数字签名,判断电子文档的完整性和真实性。
1.4 意义
通过本模拟系统的设计,可以加深学生对数字签名算法原理的理解,明白数字签名的过程和算法具体实现,提高学生的动手能力。
1.5 论文结构安排
第2章为系统分析与设计,写出系统要求,分析出包含哪些功能模块、每个模块的计划采用的实现方法和原理。
第3章为系统实现,写出主要模块的实现,包括全局变量说明和主要功能的实现流程。
第4章为结束语,总结课程设计的体会。
2 系统分析与设计
2.1 RSA算法的参数选择
RSA的安全性依赖于大数分解。公钥和私钥都是两个大素数(大于100个十进制位)的函数。据猜测,从一个密钥和密文推断出明文的难度等同于分解两个大素数的积。
密钥对的产生。选择两个大素数,p 和q 。计算:
n = p * q
然后随机选择加密密钥e(最常用的e值有3,17和65537,采用3个中的任何一个都不存在安全问题),要求 e 和 ( p - 1 ) * ( q - 1 ) 互质。最后,利用Euclid 算法计算解密密钥d, 满足:
e * d = 1 ( mod ( p - 1 ) * ( q - 1 ) ) 其中n和d也要互质。公钥KU=( e ,n ),私钥KR=( d , n )。两个素数p和q不再需要,应该丢弃,不要让任何人知道。
加密信息 m(二进制表示)时,首先把m分成等长数据块 m1 ,m2,..., mi ,块长s,其中 2^s = n, s 尽可能的大。对应的密文是:
ci = mi^e ( mod n ) ( a )
解密时作如下计算:
mi = ci^d ( mod n ) ( b ) .NET提供常用的加密算法类,支持RSA的类是RSACryptoServiceProvider(命名空间:System.Security.Cryptography),但只支持公钥加密,私钥解密。RSACryptoServiceProvider类包括:Modulus、Exponent、P、Q、DP、DQ、InverseQ、D等8个属性,其中Modulus和Exponent就是公钥,Modulus和D就是私钥,RSACryptoServiceProvider类提供导出公钥的方法,也提供导出私钥的方法,但导出的私钥包含上面8个属性,显然要用RSACryptoServiceProvider实现私钥加密公钥是不可行的。
从RSA的原理来看,公钥加密私钥解密和私钥加密公钥解密应该是等价的,在某些情况下,比如共享软件加密,我们需要用私钥加密注册码或注册文件,发给用户,用户用公钥解密注册码或注册文件进行合法性验证。
2.2 得到信息摘要
用MD5算法等到给定电子文档的信息摘要。
MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。
MD5算法将数据(如汉字)运算为另一固定长度值,是杂凑算法的基础原理,MD5的前身有MD2、MD3和MD4。
MD5的作用是让大容量信息在用数字签名软件签署私人密钥前被压缩成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串)。
本设计利用.Net自带的MD5算法,获得电子文档的信息摘要,以备下一步使用。
2.3 进行数字签名
将信息摘要变换为大整数形式,并在其上使用RSA数字签名体制进行签名,得到电子文档的数字签名。
首先,将得到的信息摘要变换为大整数形式。具体为对摘要的每一位进行转换。然后,用加密函数进行加密。
2.4 完整性验证
根据给定的电子文档及其数字签名,判断电子文档的完整性和真实性。
首
文档评论(0)