- 1、本文档共36页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
rsa加密,实验报告(共10篇)
rsa加密,实验报告(共10篇)
RSA加密算法实验报告
四 川 大 学 计 算 机 学 院
实验报告
篇二:RSA算法实验报告
实 验 报 告
姓名:XXXXXXXXX学号:0XXXXX 班级:XXXXXXXXX 日期:2013/12/*
题目:RSA算法实验
一、实验环境
1.硬件配置:
处理器:Inter(R) Core(TM) i5-2430M CPU @ 2.40GHz (4 CPUs) ,~2.4GHz 内存:2048MB RAM
2.使用软件:
(1)操作系统:win7 旗舰版
(2)软件工具:Microsoft Visual c++ 6.0
二、实验涉及的相关概念或基本原理
它是第一个既能用于数据加密也能用于数字签名的算法。算法的名字以发明者的名字命名:Ron Rivest, Adi Shamir 和Leonard Adleman。但RSA的安全性一直未能得到理论上的证明。它经历了各种攻击,至今未被完全攻破。
RSA的安全性依赖于大数分解。公钥和私钥都是两个大素数( 大于 100 个十进制位)的函数。从一个密钥和密文推断出明文的难度等同于分解两个大素数的积。
密钥对的产生。选择两个大素数,p 和q 。计算:
n = p * q
然后随机选择加密密钥e,要求 e 和 ( p - 1 ) * ( q - 1 ) 互质。最后,利用 Euclid 算法计算解密密钥d,满足
e * d = 1 ( mod ( p - 1 ) * ( q - 1 ) )
其中n和d也要互质。数e和 n是公钥,d是私钥。两个素数p和q不再需要,应该丢弃,不要让任何人知道。
加密信息 m(二于大数分解一直未能得到理论上的证明,因为没有证明破解 RSA就一定需要作大数分解。假设存在一种无须分解大数的算法,那它肯定可以修改成为大数分解算法。目前, RSA 的一些变种算法已被证明等价于大数分解。不管怎样,分解n是最显然的攻击方法。现在,人们已能分解多个十进制位的大素数。因此,模数n 必须选大一些,因具体适用情况而定。
RSA的速度。 由于进行的都是大数计算,使得RSA最快的情况也比DES慢上倍,无论是软件还是硬件实现。速度一直是RSA的缺陷。一般来说只用于少量数据加密。程中实体不对其他实体任意产生的信息解密,不对自己一无所知的信息签名;另一条是决不对陌生人送来的随机文档签名,签名时首先使用One-Way HashFunction 对文档作HASH处理,或同时使用不同的签名算法。在中提到了几种不同类型的攻击方法。
RSA的公共???数攻击。 若系统中共有一个模数,只是不同的人拥有不同的e和d,系统将是危险的。最普遍的情况是同一信息用不同的公钥加密,这些公钥共模而且互质,那末该信息无需私钥就可得到恢复。设P为信息明文,两个加密密钥为e1和e2,公共模有利于攻击者分解模数,一是有利于攻击者计算出其它成对的e’和d’,而无需分解模数。解决办法只有一个,那就是不要共享模数n。
RSA的小指数攻击。 有一种提高 RSA速度的建议是使公钥e取较小的值,这样会使加密变得易于实现,速度有所提高。但这样作是不安全的,对付办法就是e和d都取较大的值。
三、实验内容
主要的方法:
(1)、public static void GetPrime()
方法名称:产生大数的方法。
说明:
利用Java语言的中的java.math.BigInteger类的方法中随机产生大数。
(2)、public static boolean MillerRobin(BigInteger num)
方法名称:判断是否是素数的方法。
参数说明:
num是由GetPrime方法产生的大数。
说明:
这个方法判断GetPrime方法传过来的是否是一个素数,是就返回true,否就返回false。
(3)、public static BigInteger powmod( BigInteger a, BigInteger t, BigInteger num )
方法名称:大数的幂运算方法。
说明:
这个方法对传入的大数进行幂运算。
(4)、public static BigInteger invmod(BigInteger a, BigInteger b)
方法名称:大数的取模运算方法。
说明:这个方法对大数进行取模运算。
(5)、public static String Encode(String inStr,BigInteger PrimeP,BigInteger PrimeQ,
BigInteger n,int nLen,int m,JTextField d)
方法名称:加密算法。
参数说
您可能关注的文档
最近下载
- 分公司营销部门薪酬与绩效方案.docx VIP
- 哲学与人生-第8课《在实践中提高认识能力》第二框《明辨是非,追求真理》教案.docx
- 2024-2025人教版小学1一年级数学上册(全册)教案【新教材】.doc
- 宝洁麦克销售模式Ⅱ.pdf
- GB-T 3511-2018硫化橡胶或热塑性橡胶 耐候性(新版本).pdf
- 春节后复产复工“六个一”安全工作台帐.docx
- XXX200MW.400MWh储能电站项目技术规范书-(20230415).docx VIP
- 清华特奖教你怎么用学术不端来走上学术巅峰.pdf
- ISO TR 17671-1-02焊接—金属材料焊接的推荐1:电弧焊一般指导.pdf
- 互联网医院建设方案.pptx
文档评论(0)