导航:首页 > 源码编译 > 不安全算法rsa

不安全算法rsa

发布时间:2023-01-08 04:43:46

Ⅰ 什么是RSA算法,求简单解释。

RSA公钥加密算法是1977年由Ron Rivest、Adi Shamirh和LenAdleman在(美国麻省理工学院)开发的。RSA取名来自开发他们三者的名字。RSA是目前最有影响力的公钥加密算法,它能够
抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准。RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。由于进行的都是大数计算,使得RSA最快的情况也比DES慢上好几倍,无论是软件还是硬件实现。速度一直是RSA的缺陷。一般来说只用于少量数据加密。RSA的速度比对应同样安全级别的对称密码算法要慢1000倍左右。
基础
大数分解和素性检测——将两个大素数相乘在计算上很容易实现,但将该乘积分解为两个大素数因子的计算量是相当巨大的,以至于在实际计算中是不能实现的。
1.RSA密码体制的建立:
(1)选择两个不同的大素数p和q;
(2)计算乘积n=pq和Φ(n)=(p-1)(q-1);
(3)选择大于1小于Φ(n)的随机整数e,使得gcd(e,Φ(n))=1;
(4)计算d使得de=1mod Φ(n);
(5)对每一个密钥k=(n,p,q,d,e),定义加密变换为Ek(x)=xemodn,解密变换为Dk(x)=ydmodn,这里x,y∈Zn;
(6)以{e,n}为公开密钥,{p,q,d}为私有密钥。
2.RSA算法实例:
下面用两个小素数7和17来建立一个简单的RSA算法:
(1)选择两个素数p=7和q=17;
(2)计算n=pq=7 17=119,计算Φ(n)=(p-1)(q-1)=6 16=96;
(3)选择一个随机整数e=5,它小于Φ(n)=96并且于96互素;
(4)求出d,使得de=1mod96且d<96,此处求出d=77,因为 77 5=385=4 96+1;
(5)输入明文M=19,计算19模119的5次幂,Me=195=66mod119,传出密文C=66;(6)接收密文66,计算66模119的77次幂;Cd=6677≡19mod119得到明文19。

Ⅱ RSA算法安全么

你用33当然很简单,rsa最低要求密钥1024比特,你可以试着分解一下。

Ⅲ RSA算法解析

要应用rsa密码,应当采用足够大的整数n. 一般加密密钥和认证密钥选n为1024位,而平台根密钥和存储根密钥则选n为2048位.

e 的二进制表示中应该尽量含有少的1.
e=3是不安全的,因为e太小,对于小的明文M,则有C=M的e次方<n,加密运算未取模.直接对密文C开e次方,即可求出明文M.

现在普遍使用e=2的16次方+1 = 65537 , 二进制表示中只有两个1,且安全.

Ⅳ RSA算法的安全问题

不安全 虽然没泄露n 但是e d都被知道后 有利于求得n的欧拉函数 进而分解n
这就是所谓的 “共模攻击”

为了防止共模攻击 所以Rsa使用有2个注意
1。私钥泄露,立刻换n
2。同组多用户不能使用同一个n

Ⅳ 不属于rsa算法的攻击方法是

不属于rsa算法的攻击方法是
公钥密码包含两个密钥,加密密钥和解密密钥,其加密密钥是可以公开的,解密密钥是不能公开的。公钥密码自1976年提出这个思想后就不断发展,其一般是基于数学上的一些困难问题所建造的,如rsa基于大整数分解的困难问题建立的,椭圆曲线是基于椭圆曲线上的离散对数困难问题建立的,elgamal上的DH密钥交换是基于有限域的离散对数困难问题建立的,格密码是基于格中困难问题的难解程度建立的等等。但是随着科技的发展,在一定条件下,有些困难问题变得不在困难,如rsa密码体系参数的选取,选取的bit长度随着计算机的发展变得越来越长,这提高了存储空间和计算时间,所以研究新型的公钥体系变得越来越火热。下面将会介绍RSA的基本原理和由于参数选取不当造成的攻击手段。
一、RSA算法
RSA属于非对称加密算法,因为RSA使用了两个不同的密钥分别用于加密和解密,这两个密钥称之为公私钥对,其中公钥用于加密,且公钥是公开的,而私钥用于解密,私钥是私有的。
RSA的计算过程如下:
找到两个大素数p和q,计算出n = pq;
计算出φ(n) = (p-1)*(q-1),选择一个e,满足1 < e <φ(n),且gcd(φ(n), e) = 1;
计算出d,使得d满足ed % φ(n) = 1;
此时,已经生成了公私钥对,其中(e, n)为公钥,(d, n)为私钥。
对于明文M,

Ⅵ RSA算法详解

总括: 本文详细讲述了RSA算法详解,包括内部使用数学原理以及产生的过程。

相濡以沫。到底需要爱淡如水。

之前写过一篇文章 SSL协议之数据加密过程 ,里面详细讲述了数据加密的过程以及需要的算法。SSL协议很巧妙的利用对称加密和非对称加密两种算法来对数据进行加密。这篇文章主要是针对一种最常见的非对称加密算法——RSA算法进行讲解。其实也就是对私钥和公钥产生的一种方式进行描述。首先先来了解下这个算法的历史:

RSA是1977年由 罗纳德·李维斯特 (Ron Rivest)、 阿迪·萨莫尔 (Adi Shamir)和 伦纳德·阿德曼 (Leonard Adleman)一起提出的。当时他们三人都在 麻省理工学院 工作。RSA就是他们三人姓氏开头字母拼在一起组成的。

但实际上,在1973年,在英国政府通讯总部工作的数学家 克利福德·柯克斯 (Clifford Cocks)在一个内部文件中提出了一个相同的算法,但他的发现被列入机密,一直到1997年才被发表。

所以谁是RSA算法的发明人呢?不好说,就好像贝尔并不是第一个发明电话的人但大家都记住的是贝尔一样,这个地方我们作为旁观者倒不用较真,重要的是这个算法的内容:

RSA算法用到的数学知识特别多,所以在中间介绍这个算法生成私钥和公钥的过程中会穿插一些数学知识。生成步骤如下:

随意选择两个大的质数p和q,p不等于q,计算N=p*q;

什么是质数?我想可能会有一部分人已经忘记了,定义如下:

比如2,3,5,7这些都是质数,9就不是了,因为3*3=9了

r = φ(N) = φ(p)φ(q) = (p-1)(q-1) 。

这里的数学概念就是什么是欧拉函数了,什么是欧拉函数呢?

欧拉函数 的定义:

互质 的定义:

例如: φ(8) = 4 ,因为 1,3,5,7 均和 8 互质。

推导欧拉函数:

(1)如果 n = 1 , φ(1) = 1 ;(小于等于1的正整数中唯一和1互质的数就是1本身);

(2)如果 n 为质数, φ(n) = n - 1 ;因为质数和每一个比它小的数字都互质。比如5,比它小的正整数1,2,3,4都和他互质;

(3) 如果 n 是 a 的 k 次幂,则 φ(n) = φ(a^k) = a^k - a^(k-1) = (a-1)a^(k-1) ;

(4) 若 m , n 互质,则 φ(mn) = φ(m)φ(n)

证明: 设 A , B , C 是跟 m , n , mn 互质的数的集,据 中国剩余定理 (经常看数学典故的童鞋应该了解,剩余定理又叫韩信点兵,也叫孙子定理), A * B 和 C 可建立双射一一对应)的关系。(或者也可以从初等代数角度给出 欧拉函数积性的简单证明 ) 因此的φ(n)值使用 算术基本定理 便知。(来自维基网络)

选择一个小于r并与r互质的整数e,求得e关于r的模反元素,命名为 d ( ed = 1(mod r) 模反元素存在,当且仅当e与r互质), e 我们通常取65537。

模反元素:

比如 3 和 5 互质, 3 关于 5 的模反元素就可能是2,因为 3*2-1=5 可以被5整除。所以很明显模反元素不止一个,2加减5的整数倍都是3关于5的模反元素 {...-3, 2,7,12…} 放在公式里就是 3*2 = 1 (mod 5)

上面所提到的欧拉函数用处实际上在于欧拉定理:

欧拉定理:

欧拉定理就可以用来证明模反元素必然存在。

由模反元素的定义和欧拉定理我们知道, a 的 φ(n) 次方减去1,可以被n整除。比如,3和5互质,而 5 的欧拉函数 φ(5) 等于4,所以 3 的 4 次方 (81) 减去1,可以被 5 整除( 80/5=16 )。

小费马定理:

此时我们的 (N , e) 是公钥, (N, d) 为私钥,爱丽丝会把公钥 (N, e) 传给鲍勃,然后将 (N, d) 自己藏起来。一对公钥和私钥就产生了,然后具体的使用方法呢?请看: SSL协议之数据加密过程详解

我们知道像RSA这种非对称加密算法很安全,那么到底为啥子安全呢?
我们来看看上面这几个过程产生的几个数字:

N 和 e 我们都会公开使用,最为重要的就是私钥中的 d , d 一旦泄露,加密也就失去了意义。那么得到d的过程是如何的呢?如下:

所以得出了在上篇博客说到的结论,非对称加密的原理:

将a和b相乘得出乘积c很容易,但要是想要通过乘积c推导出a和b极难。即对一个大数进行因式分解极难

目前公开破译的位数是768位,实际使用一般是1024位或是2048位,所以理论上特别的安全。

RSA算法的核心就是欧拉定理,根据它我们才能得到私钥,从而保证整个通信的安全。

Ⅶ 不安全的加密算法不包括什么

DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合。

3DES(Triple DES):是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高。

AES(Advanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高;

算法原理
AES 算法基于排列和置换运算。排列是对数据重新进行安排,置换是将一个数据单元替换为另一个。AES 使用几种不同的方法来执行排列和置换运算。

Ⅷ RSA算法的原理及演算过程

RSA算法非常简单,概述如下:
找两素数p和q
取n=p*q
取t=(p-1)*(q-1)
取任何一个数e,要求满足e<t并且e与t互素(就是最大公因数为1)
取d*e%t==1

这样最终得到三个数: n d e

设消息为数M (M <n)
设c=(M**d)%n就得到了加密后的消息c
设m=(c**e)%n则 m == M,从而完成对c的解密。
注:**表示次方,上面两式中的d和e可以互换。

在对称加密中:
n d两个数构成公钥,可以告诉别人;
n e两个数构成私钥,e自己保留,不让任何人知道。
给别人发送的信息使用e加密,只要别人能用d解开就证明信息是由你发送的,构成了签名机制。
别人给你发送信息时使用d加密,这样只有拥有e的你能够对其解密。

rsa的安全性在于对于一个大数n,没有有效的方法能够将其分解
从而在已知n d的情况下无法获得e;同样在已知n e的情况下无法
求得d。

RSA简洁幽雅,但计算速度比较慢,通常加密中并不是直接使用RSA 来对所有的信息进行加密,
最常见的情况是随机产生一个对称加密的密钥,然后使用对称加密算法对信息加密,之后用
RSA对刚才的加密密钥进行加密。

最后需要说明的是,当前小于1024位的N已经被证明是不安全的
自己使用中不要使用小于1024位的RSA,最好使用2048位的。

Ⅸ RSA算法的缺点

1)产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密。
2)安全性,RSA的安全性依赖于大数的因子分解,但并没有从理论上证明破译RSA的难度与大数分解难度等价,而且密码学界多数人士倾向于因子分解不是NP问题。现今,人们已能分解140多个十进制位的大素数,这就要求使用更长的密钥,速度更慢;另外,人们正在积极寻找攻击RSA的方法,如选择密文攻击,一般攻击者是将某一信息作一下伪装(Blind),让拥有私钥的实体签署。然后,经过计算就可得到它所想要的信息。实际上,攻击利用的都是同一个弱点,即存在这样一个事实:乘幂保留了输入的乘法结构:
(XM)d = Xd *Md mod n
前面已经提到,这个固有的问题来自于公钥密码系统的最有用的特征--每个人都能使用公钥。但从算法上无法解决这一问题,主要措施有两条:一条是采用好的公钥协议,保证工作过程中实体不对其他实体任意产生的信息解密,不对自己一无所知的信息签名;另一条是决不对陌生人送来的随机文档签名,签名时首先使用One-Way Hash Function对文档作HASH处理,或同时使用不同的签名算法。除了利用公共模数,人们还尝试一些利用解密指数或φ(n)等等攻击.
3)速度太慢,由于RSA 的分组长度太大,为保证安全性,n 至少也要 600 bits以上,使运算代价很高,尤其是速度较慢,较对称密码算法慢几个数量级;且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化。SET(Secure Electronic Transaction)协议中要求CA采用2048比特长的密钥,其他实体使用1024比特的密钥。为了速度问题,人们广泛使用单,公钥密码结合使用的方法,优缺点互补:单钥密码加密速度快,人们用它来加密较长的文件,然后用RSA来给文件密钥加密,极好的解决了单钥密码的密钥分发问题。

Ⅹ 为什么说RSA加密不安全呢

5d=1mod96是模运算啊。。。就是问。。5和多少乘在一起,模96为1.。。。因为5×77 = 385 385mod96 = 1.。。所以d = 77了。。。

求模的方程。。直接试就行了。。。实际上是有一个算法的。。。从欧几里德除法演化来的。。。你找本数论的书就知道了。。

不知道你是不是最后一步不清楚。。。如果你总的算法都不清楚那就麻烦了。。。

这个实际上是利用了大数分解的困难性的,

PKI的原理基本上是利用数学难题产生的。。这里的数学难题实际上就是第四步那个。。你自己产生乘法很简单。但是让破解者分解因子就难了。。。

这个。。说不明白。。。介绍密码学的书上一般都有的。。

阅读全文

与不安全算法rsa相关的资料

热点内容
苹果app怎么开启权限 浏览:677
排序算法图解 浏览:991
算法如何规制 浏览:866
单片机继电器驱动 浏览:659
小薯仔编程软件下载 浏览:153
单片机opencv 浏览:257
千锋python人工智能培训 浏览:856
合理的文件夹划分 浏览:258
十点读书app哪里下载 浏览:964
uu跑腿押金上app在哪里解约 浏览:37
华为如何将app移到桌面 浏览:597
阿里安卓面试算法题 浏览:705
语文知识手册pdf 浏览:841
为什么安卓手机oled屏很白很亮 浏览:252
如何找回iphone手机隐藏的app 浏览:21
linuxc多进程 浏览:649
android飞行游戏 浏览:965
数据挖掘常见算法 浏览:135
python单实例化 浏览:351
str中python 浏览:89