RSA加密解密算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

c≡m^e mod n
相关的代码与结果如下:
RSA加密算法实现
生成p和q的代码:
RSA加密算法实现
生成e的相关代码:
RSA加密算法实现
生成密文c的相关代码:
RSA加密算法实现
程序的运行结果:
RSA解密算法实现
我们知道公钥(n,e)利用n首先找出两个素数p和q,因为n=p*q 然后求n的欧拉函数值f(n),利用e和f(n)找出d,一旦找出来d就解决问 题了。 在我编写的程序中利用的公式如下: n=p*q
RSA加密解密算法
1.RSA算法的基本概念
2.RSA加密算法实现 3.RSA解密算法实现 4.遇到的问题 5.总结
RSA加密解密算法基本概念
RSA公钥加密算法是1977年由Ron Rivest、Adi Shamirh和 LenA dleman 开发的。 RSA 取名来自开发他们三者的名字。 RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为 止已知的所有密码攻击,已被 ISO 推荐为公钥数据加密标准。 RSA算法基于一个十分简单的数论事实:将两个大素数相乘十 分容易,但那时想要对其乘积进行因式分解却极其困难,因此 可以将乘积公开作为加密密钥。 RSA算法是第一个能同时用于加密和数字签名的算法,也 易于理解和操作。RSA是被研究得最广泛的公钥算法,从提出 到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受 ,普遍认为是目前最优秀的公钥方案之一。
与f(n)互素,由模运算可知,它的乘法逆元一定存在;
⑤ 以{e,n}为公开钥,{d,n}为秘密钥;
RSA加密解密算法基本概念
2.加密。 加密是首先将明文比特串分组,使得每个分组对应的 十进制数小于n,即分组长度小于 log2(n) 。然后每个明文 分组m ,作加密运算: c≡m^e mod n 3.解密。 对明文分组的解密运算为: m≡c^d mod n
总结
我编写的RSA加密解密算法的程序的功能特别的简单,我编写的 是对于五位以下数字的加密和解密。虽然看起来很简单,但是实现出 来不那么容易了,我通过编写这么小的一个RSA的加密解密算法,我 意识到了RSA算法的安全性很高。 虽然我编写了解密的算法,但没有详细的分析不了解密的一些问 题,我成功的解密了五位以下的数字的加密,超过了五位找不到到底 哪儿出了错误。
RSA加密算法实现
首先选取保密的两个大素数p和q。然后求他们的乘积 n=p*q,n的欧拉函数值。然后选取任意的e,并且满足1<e<f(n) ,e与n的欧拉函数值f(n)互素。最后利用我们选取的 e来加密明 文文件。 在我的程序中我把p和q 选取100内的素数,并且程序把p和 q自动生成。程序利用生成的p和q的值来求它们的乘积n=p*q和 n的欧拉函数值f(n)。然后选取与f(n)互素的整数e,按照给定的 公式生成密文文件 生成密钥和密文的相关公式 n=p*q f(n)=(p-1)*(q-1)
RSA加密解密算法基本概念
RSA算法的描述 1.密钥的产生。
① 选两个保密的大素数p和q; ② 计算n=p*q,f(n)=(p-1)*(q-1),其中f(n)是n的欧拉函数值; ③ 选一整数e,满足1<e<f(n),且gcd(f(n),e)=1; ④ 计算 d ,满足 d*e≡ 1mod(f(n)), 即 d是 e 在模 f(n) 下的乘法逆元因 e
f(n)=(p-1)*(q-1)
d*e≡1 mod f(n) m≡c^d mod n 相关的代码与结果如下:
RSA解密算法实现
相关n的分解求p和q的代码如下:
RSA解密算Baidu Nhomakorabea实现
相关求d的代码如下:
RSA解密算法实现
相关求明文m 的代码如下:
RSA解密算法实现
程序的运行结果如下:
遇到的问题
我写的程序有几种问题: 生成的n 超过五位时同样加密,但是解密是有的时候可以正确的 解密,有的时候解密结果出错。 生成的n超过六位是加密是出现错,比如说加密后的数据负数。 有时候生成的密文和原来的明文相同,出现这样的问题可能跟 e 的选取有关。
相关文档
最新文档