- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
李浩-200930405901-RSA算法
昆明理工大学信息工程与自动化学院学生实验报告
( 2010—2011学年 第 一 学期 )
课程名称:计算机安全技术 开课实验室:自定 2010年 12月 20 日
年级、专业、班 07计科1班 学号 200930405901 姓名 李浩 成绩 实验项目名称 RSA算法实现 指导教师 付晓东 教师评语
教师签名:
年 月 日
一、实验目的
了解RSA算法的原理,学会用C/C++语言实现RSA加密算法。
二、实验原理及基本技术路线图(方框原理图)
RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。
RSA是被研究得最广泛的公钥算法,从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。RSA的安全性依赖于大数的因子分解,但并没有从理论上证明破译RSA的难度与大数分解难度等价。即RSA的重大缺陷是无法从理论上把握它的保密性能如何,而且密码学界多数人士倾向于因子分解不是NPC问题。
RSA的缺点主要有:A)产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密。B)分组长度太大,为保证安全性,n 至少也要 600 bits以上,使运算代价很高,尤其是速度较慢,较对称密码算法慢几个数量级;且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化。目前,SET(Secure Electronic Transaction)协议中要求CA采用2048比特长的密钥,其他实体使用1024比特的密钥。C)RSA密钥长度随着保密级别提高,增加很快。下表列出了对同一安全级别所对应的密钥长度。
保密级别 对称密钥长度(bit) RSA密钥长度(bit) ECC密钥长度(bit) 保密年限 80 80 1024 160 2010 112 112 2048 224 2030 128 128 3072 256 2040 192 192 7680 384 2080 256 256 15360 512 2120 这种算法1978年就出现了,它是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作,也很流行。算法的名字以发明者的名字命名:Ron Rivest, AdiShamir 和Leonard Adleman。早在1973年,英国国家通信总局的数学家Clifford Cocks就发现了类似的算法。但是他的发现被列为绝密,直到1998年才公诸于世。
RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密。
RSA的算法涉及三个参数,n、e1、e2。
其中,n是两个大质数p、q的积,n的二进制表示时所占用的位数,就是所谓的密钥长度。
e1和e2是一对相关的值,e1可以任意取,但要求e1与(p-1)*(q-1)互质;再选择e2,要求(e2*e1)mod((p-1)*(q-1))=1。
(n及e1),(n及e2)就是密钥对。
RSA加解密的算法完全相同,设A为明文,B为密文,则:A=B^e1 mod n;B=A^e2 mod n;
e1和e2可以互换使用,即:
A=B^e2 mod n;B=A^e1 mod n;
三、所用仪器、材料(设备名称、型号、规格等)
Windows XP操作系统,VC++6.0。
四、实验过程原始记录(数据、图表、计算等)
主要实验代码:
Attribute VB_Name = RSAv1
Public key(1 To 3) As Double
Public p As Double, q As Double
Public PHI As Double
Public Sub keyGen()
生成E, D 和N
Dim E#, D#, N#
Const PQ_UP As Integer = 9999 设置最小值
Const PQ_LW As Integer = 3170 设置最大值
Const KEY_LOWER_LIMIT As Long =设置64bit
p = 0: q = 0
Randomize
Do Until D KEY_LOWER_LIMIT 确定密钥最小 64bit
Do Until IsPrime(p) And IsPrime(q) 确定q and q
p = Int((PQ_UP - PQ_LW + 1) * Rnd + PQ_LW)
q = Int((PQ_UP - PQ_LW + 1) * Rnd + P
您可能关注的文档
最近下载
- 核心素养目标五年级上册道德与法治第1课《自主选择课余生活》教案教学设计(第一课时).pdf VIP
- 2025河南中原现代物流有限公司及下属子公司招聘12人备考试题及答案解析.docx VIP
- 北师大版二年级上册数学全册教学设计(配2025年秋新版教材).docx
- 2024-2025新人教版小学数学6六年级上册(全册)优秀课件.ppt
- 小学科学新教科版二年级上册第一单元 造房子教案(共6课)(2025秋最新版).doc
- 人教版2024新七年级入学分班考试卷(测试范围:初小衔接、有理数、代数式)原卷版.pdf VIP
- 《农业经济管理学》课程教学大纲.doc VIP
- 蓝牙BLE射频手动测试指导书.doc VIP
- 公安局辅警招聘考库《综合理论知识》(含政治理论、法律法规、公安工作基本知识)教程分析.doc VIP
- 某公司搬迁项目可行性研究报告.docx
文档评论(0)