RSA数字签名算法的模拟实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
RSA数字签名算法的模拟实现
摘要
本程序为简易版RSA算法加密解密过程的模拟实现。
程序分为加密和验证两部分。根据课上所学的MD5加密过程,以及RSA算法,本程序采用MD5算法,先对文件内容进行加密,得到文字摘要;再利用RSA算法的私钥,对文字摘要进行加密,得到数字签名。在验证部分,用RSA公钥对数字证书签名解密,得到文字摘要S1,再将需要验证的文档用公用的MD5算法处理,得到文字摘要S2,检验文字摘要S1与S2的一致性,从而断定原文是否被篡改。程序采用树形图对文件进行直观的显示管理。采用文本文档存储数字签名。
关键词:RSA MD5 文字摘要数字签名
Abstract
This program is simple version of the RSA algorithm encryption and decryption process simulation.
The procedures are divided into two parts, encryption and authentication. Lessons learned based on the MD5 encryption process, as well as RSA algorithm, the procedures used MD5 algorithm, first pairs contents of the file carry on encrypt, to obtain text abstract; re-use RSA algorithm's private key, encryption for text abstract, obtain the digital signature. In the verification part, with the RSA algorithm's public key pairs of digital certificate signature decryption, get text abstract S1, and then using a public MD5 algorithm encryption the document which need to be verify, to obtain text abstract S2, text the consistency of S1 and S2, thereby conclude that original text whether the been tampered with. Program uses the file tree intuitively display management the files. Adopt text document storage digital signatures.
Key words:RSA MD5 Text abstract Digital signature
目录
一引言 (1)
1.1理论背景 (1)
1.2教学目的 (1)
1.3任务和要求 (1)
1.4意义 (1)
1.5论文结构安排 (1)
二问题分析 (2)
2.1程序要求 (2)
2.2实验原理 (2)
2.2.1 MD5 (2)
2.2.2 RSA算法 (2)
三实验设计 (3)
3.1设计流程图 (3)
3.2关键问题及算法设计 (3)
3.2.1素数判定 (3)
3.2.2互质的判断 (3)
3.2.3乘法逆元求解 (4)
3.2.4快速幂模算法 (4)
3.2.5文字摘要生成 (5)
3.2.6文字摘要加密 (5)
3.3数据处理 (6)
3.3.1树形图显示 (6)
3.3.2文件存取 (6)
四实验实现 (7)
4.1整体界面如下设计: (7)
4.2文件操作 (8)
4.3加密区 (8)
五结束语 (15)
六源代码 (16)
一引言
1.1理论背景
RSA公钥加密算法是1977年由Ron Rivest、Adi Shamirh和Leonard Adleman 开发的,是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的所有的密码攻击,已被ISO推荐为公钥数据加密标准。
RSA是第一个能同时用于加密和数字签名的算法,采用公开密钥密码体制,即使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。
通常RSA先生成一对密钥,其中之一是保密的,由用户保存;另一个为公开密钥,可对外公开,甚至可以在网络服务器中注册,人们用公钥加密文件发送给个人,个人就可以用私钥解密接受。为提高保密强度,RSA密钥至少为500位长,一般推荐使用1024位。
1.2教学目的
通过模拟RSA数字签名算法,了解RSA数字签名体制原理,掌握一般数字签名算法的工作过程。
1.3任务和要求
1、实现RSA算法的参数选择;
2、用MD5算法得到给定电子文档的信息摘要;
3、将信息摘要变换为大整数形式,并在其上使用RSA数字签名体制进行签
名,得到电子文档的数字签名;
4、给定电子文档及其数字签名,判断电子文档的完整性和真实性。
1.4意义
通过模拟RSA数字签名算法,了解RSA算法的加密解密原理和过程,提升学生分析实际问题的能力以及动手能力,为今后在相关领域开展工作打下基础。
1.5论文结构安排
第一章、引言,说明课程设计理论背景、目的、要求和意义以及论文结构安排。第二章、问题分析,写出程序要求和主要算法原理。
第三章、实验设计,包括流程图和各个功能的原理和代码实现。
第四章、实验实现和成员分工,结合截图说明各个部件的功能以及小组成员分工。第五章、结束语,总结课程设计的体会。