导航:首页 > 源码编译 > rsa算法n

rsa算法n

发布时间:2022-03-31 23:59:25

⑴ 什么是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算法 网络中N个用户进行加密通信 需要的密钥个数是

(2008.04)采用RSA算法,网络中N个用户之间进行加密通信,需要的密钥个数是 。

A)N ×(N-1) B)N C)2N D)N*N

解析:RSA算法使用方便,尤其是公开密钥的特征使得用户在数据传输之前无须交换密钥,即使和多个用户进行秘密通信,也无须记忆太多密钥;原理上,N个用户进行通信,需要N对密钥,但每个用户只需记忆自己秘密密钥,并去公共存储区获取其他用户的公开密钥,所以答案是B。

⑶ 对于RSA算法,设截获e=5,n=35的用户密文C=10,请问明文M是多少

解密密钥:{d,n}={d,35},
密文:C=10,
选择两个素数:p=5,q=7,则n=35=5*7。
计算φ(p-1)(q-1)=(5-1)(7-1)=24,在[0,23]中选择一个和24互素的数,本题选e=5,得5*d=l mod 24,解出d。不难得出,d=5,因为e×d = 5×5 = 25 = 1*24+1=1 mod 24。
因为:m=Cd(mod n)
所以,m=Cd(mod n)=5。

⑷ RSA算法举例

首先看下rsa算法:
找两素数p和q
计算n=p*q和
t=(p-1)*(q-1)
取小于n的一个数e,并且e与t互质,就是最大公约数是1
找一个数d,d满足(ed-1)
mod
t
=0
公钥取(n,e),私钥取(n,d)
现在开始分析,
已知公钥是(n=35,e=5),那么
n=p*q,p与q只能是7和5
那么t就是24
而(ed-1)%t=0
也就是(5d-1)%24=0,那么可以取d为5
所以私钥是
(d=5,n=35)
解密公式:m=c^d
mod
n
=10^5
mod
35
=5
所以明文m是5

⑸ rsa算法中p,q,n,e,d一般大小都为多少啊

RSA遭受攻击的很多情况是因为算法实现的一些细节上的漏洞所导致的,所以在使用RSA算法构造密码系统时,为保证安全,在生成大素数的基础上,还必须认真仔细选择参数,防止漏洞的形成。根据RSA加解密过程,其主要参数有三个:模数N,加密密钥e,解密密钥d。
3.4.1 模数N的确定
虽然迄今人们无法证明,破解RSA系统等于对N因子分解,但一般相信RSA系统的安全性等同于因子分解,即:若能分解因子N,即能攻破RSA系统,若能攻破RSA系统,即能分解因子Ⅳ。因此,在使用RSA系统时,对于模数N的选择非常重要。在RSA算法中,通过产生的两个大素数p和q相乘得到模数N,而后分别通过对它们的数学运算得到密钥对。由此,分解模数N得到p和q是最显然的攻击方法,当然也是最困难的方法,如果模数N被分解,攻击者利用得到的P和q便可计算出,进而通过公开密钥e由解密密钥d,则RSA体制立刻被攻破。相当一部分的对RSA的攻击就是试图分解模数N,选择合适的N是实现RSA算法并防止漏洞的重要环节。一般地,模数N的确定可以遵循以下几个原则:
①p和q之差要大。
当p和q相差很小时,在已知n的情况下,可假定二者的平均值为,然后利用,若等式右边可开方,则得到及,即N被分解。
②p-1和q-1的最大公因子应很小。
③p和q必须为强素数。
一素数p如果满足:
条件一:存在两个大素数,,使得|p-1且|p+1;
条件二:存在四个大素数,,,使得。则此素数为强素数。其中,,,称为3级的素数,,称为2级的素数,p则称为1级的素数,很明显地,任何素数均为3级的素数。只有两个强素数的积所构成的N,其因子分解才是较难的数学问题。
④p和q应大到使得因子分解N为计算上不可能。
RSA的安全性依赖于大数的因子分解,若能因子分解模数N,则RSA即被攻破,因此模数N必须足够大直至因子分解N在计算上不可行。因子分解问题为密码学最基本的难题之一,如今,因子分解的算法已有长足的进步,但仍不足以说明RSA可破解。为保证安全性,实际应用中所选择的素数P和拿至少应该为300位以上的二进制数,相应的模数N将是600位以上的二进制数。
目前,SET(Secure Electronic Transaction)协议中要求CA采用2048比特长的密钥,其他实体使用1024比特的密钥。随着计算能力的提高和分布式运算的发展,安全密钥的长度将是动态增长的。
Jadith Moore给出了使用RSA时有关模数的一些限制:
①若给定模数的一个加/解密密钥指数对已知,攻击者就能分解这个模数。
②若给定模数的一个加/解密密钥指数对已知,攻击者无需分解模数Ⅳ就可以计算出别的加/解密密钥指数对。
③在通信网络中,利用RSA的协议不应该使用公共模数。
④消息应该用随机数填充以避免对加密指数的攻击。
3.4.2 e的选取原则
在RSA算法中,e和互质的条件容易满足,如果选择较小的e,则加、解密的速度加快,也便于存储,但会导致安全问题。
一般地,e的选取有如下原则:
①e不能够太小。在RSA系统中,每人的公开密钥P只要满足即可,也即e可以任意选择,为了减少加密运算时间,很多人采用尽可能小的e值,如3。但是已经证明低指数将会导致安全问题,故此,一般选择e为16位的素数,可以有效防止攻击,又有较快速度。
②e应选择使其在的阶为最大。即存在i,使得,
可以有效抗击攻击。
3.4.3 d的选取原则
一般地,私密密钥d要大于。在许多应用场合,常希望使用位数较短的密钥以降低解密或签名的时间。例如IC卡应用中,IC卡CPU的计算能力远低于计算机主机。长度较短的d可以减少IC卡的解密或签名时间,而让较复杂的加密或验证预算(e长度较长)由快速的计算机主机运行。一个直接的问题就是:解密密钥d的长度减少是否会造成安全性的降低?很明显地,若d的长度太
小,则可以利用已知明文M加密后得,再直接猜测d,求出是否等于M。若是,则猜测J下确,否则继续猜测。若d的长度过小,则猜测的空间变小,猜中的可能性加大,已有证明当时,可以由连分式算法在多项式时间内求出d值。因此其长度不能过小。

⑹ RSA算法计算

你所说的:
n=20
d=7 公钥
e=3 私钥
对M=3 进行加密
M'=M^d%n (M的d次方,然后除以n取余数)
M'=3^7%20=2187%20=7 加密后等于7

对M'=7进行解密
M=M'^e%n=7^3%20=343%20=3 解密后又变成3了

我空间里面里的一篇文章写的非常清楚,还有例子,想了解清楚点可以再去看看
http://hi..com/lsgo/blog/item/5fd0da24d495666834a80fb8.html

你取的两个素数太小了,所以n太小根本起不了作用。至少要取1024位的数字。

⑺ RSA算法的具体过程

具体过程很复杂哦。主要思想是基于大数分解的复杂度:
例如:
你的明文是abc,可用ASCII等方式化成整数串,例如化成117.
选取密钥为129,
开始加密,进行质数计算:117*129=15093。 这个过程很快。

把密文15093公开到网络上。
敌人解密时,只知道15093,想要得到117会花费很长的时间。解密非常控困难。

而你的朋友由于知道密钥129,则可以很快得到明文117.

⑻ 已知RSA算法中,素数p=5,q=7,模数n=35,公开密钥e=5,密文c=10,求明文

密钥d=5

明文m=c的d次方mod n

m=100000mod35

=5


解密密钥:{d,n}={d,35},

密文:C=10,

选择两个素数:p=5,q=7,则n=35=5*7。

计算φ(p-1)(q-1)=(5-)(7-1)=24,在[0,23]中选择一个和24互素的数,本题选e=5,得5*d=l mod 24,解出d。不难得出,d=5,因为e×d = 5×5 = 25 = 1*24+1=1 mod 24。

因为:m=Cd(mod n)

所以,m=Cd(mod n)=5。

(8)rsa算法n扩展阅读:

当公钥e取较小的值,虽然会使加密变得易于实现,速度有所提高,但这样做也是不安全的。最简单的办法就是e和d都取较大的值。

因为密钥的产生受素数产生技术的限制,所以也有它的局限性。

(1)密钥的产生受素数产生技术的限制,因而难以做到一次一密。

(2)分组长度太大,为保证安全性,n至少也要600比特以上,使运算代价很高,尤其是速度较慢,比对称密码算法慢几个数量级;随着大整数素因数分解算法的改进和计算机计算能力的提高,对n的长度在不断增加,不利于实现数据格式的标准化。

⑼ RSA加密算法,已知e=31、n=35 求d,C=10怎么得出明文M和私钥d,最好能有详细的计算过程~

你太强了吧,私钥几乎推导不出来!这个难度太大了,而且n也不可能等于35,它的长度必须是128的倍数

阅读全文

与rsa算法n相关的资料

热点内容
游戏不同的服务器有什么区别 浏览:68
jar线上编译 浏览:115
程序员论坛代码被怼 浏览:996
win7文件夹选项注册表 浏览:786
中央编译局常艳博士照片 浏览:304
濡沫江湖安卓怎么下载 浏览:954
陕西省电信dns服务器云服务器 浏览:826
美辑编译多长时间润色好 浏览:466
服务器心跳地址是什么 浏览:981
编译原理与区别 浏览:978
安利微购app怎么样 浏览:931
ios程序员适合什么键盘 浏览:722
如何把加密pdf转换成excel 浏览:623
文件夹7z如何压缩成rar 浏览:870
android蓝牙低功耗 浏览:277
如何下载好大夫app 浏览:966
linux查看txt 浏览:155
linux硬盘格式化命令 浏览:521
神舞幻想存档放哪个文件夹 浏览:653
怎样把pdf转为图片 浏览:339