- 1、本文档共38页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE \* MERGEFORMAT38
RSA数字签名系统设计与实现
上海电力学院
《应用密码学》课程设计
题 目: RSA数字签名系统的设计与实现
院 系: 计算机科学与技术
专业年级: 信息安全 2010
学生姓名: 范晓宁 学号:
指导教师: 田秀霞
2013年1月 8日
目录
1、开发环境与工具……………………….2
2、设计原理(算法工作原理)………….3
3、系统功能描述与软件模块划分……….4
4、设计核心代码………………………….4
5、设计结果及验证……………………….9
6、软件使用说明…………………………15
7、参考资料………………………………15
8、设计体会………………………………16
9、附录:代码……………………………17
1、开发环境与工具流程图
1)32位windows7操作系统
2)内存4GB
3)调试程序VC++6.0
4)
2、设计原理(算法工作原理)
在数字签名技术出现之前,曾经出现过一种“数字化签名”技术,简单地说就是在手写板上签名,然后将图像传输到电子文档中,这种“数字化签名”可以被剪切, 然后粘贴到任意文档上,这样非法复制变得非常容易,所以这种签名的方式是不安全的。数字签名技术与数字化签名技术是两种截然不同的安全技术,数字签名与用 户的姓名和手写签名形式毫无关系,它实际使用了信息发送者的私有密钥变换所需传输的信息。对于不同的文档信息,发送者的数字签名并不相同。没有私有密钥, 任何人都无法完成非法复制。从这个意义上来说,“数字签名”是通过一个单向函数对要传送的报文进行处理得到的,用以认证报文来源并核实报文是否发生变化的 一个字母数字串。
现在的信息化时代下,信息的安全与否就显得尤为重要,用RSA进行数字签名具有很高的安全性。本程序要完成可以实现对已知明文的加密和摘要已经对摘要进行RSA加密算法(即数字签名),还要实现对密文解密,和对数???签名解密得到明文的摘要,看是否与解密的明文的摘要相同,如果相同说明文件没有被人改过,否则文件已经被修改了。
RSA加密算法,依赖于大素数,公钥是公开的,而私钥是必威体育官网网址的,通过某种安全的渠道传输,公钥(e,n);私钥(d,n)
RSA的算法涉及三个参数,n、e、d。
其中,n是两个大质数p、q的积,n的二进制表示时所占用的位数,就是所谓的密钥长度。
e1和e2是一对相关的值,e1可以任意取,但要求e1与(p-1)*(q-1)互质;再选择e2,要求(d*e)mod((p-1)*(q-1))=1。
(e,n),(d,n)就是密钥对。其中 (e,n)为 HYPERLINK /view/355291.htm \t _blank 公钥,(d,n)为私钥。[
MD5的作用是让大容量信息在用 HYPERLINK /view/7626.htm \t _blank 数字签名软件签署私人 HYPERLINK /view/934.htm \t _blank 密钥前被压缩成一种必威体育官网网址的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串)。
3、系统功能描述与软件模块划分
本程序实现了3个功能:
随机有哪些信誉好的足球投注网站大素数,随机生成公钥和私钥;
用私钥对任意长度的明文签名;
用公钥对签名验证
软件分为5个模块:
1-对明文加密
2-对明文摘要
3-对明文签名
4-对密文解密
5-对签名验证
4、设计核心代码
要对指定的明文进行加密,必须要有公钥和密钥,而此的基础是随机产生两个素数、求公钥和私钥:
int chose() //从指定素数中随机产生两个素数
{
int temp;
int sourse[43]=
{
17,19,23,29,31,37,41,43,
47,53,59,61,67,71,73,79,83,89,
97,101,103,107,109,113,127,131,137,139,
149,151,157,163,167,173,179,181,191,193,
197,199,211
};
srand((int)time(NULL));
temp=sourse[rand()%43];
return temp;
}
unsigned int ask_e(unsigned
文档评论(0)