5112是不是素数质数(素数),那哪两个数的乘...

两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,
发明RSA算法的三个人
RSA是1977年由Ron
Rivest、Adi
Shamirh和LenAdleman在(美国麻省理工学院)开发的。RSA取名来自开发他们三者的名字。RSA是目前最有影响力的,它能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥。RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。
RSA公开密钥密码体制。所谓的公开密钥密码体制就是使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。
在中,加密密钥(即公开密钥)PK是公开信息,而解密密钥(即秘密密钥)SK是需要保密的。E和解密算法D也都是公开的。虽然秘密密钥SK是由公开密钥PK决定的,但却不能根据PK计算出SK。正是基于这种理论,1978年出现了著名的RSA算法,它通常是先生成一对RSA
密钥,其中之一是保密密钥,由用户保存;另一个为公开密钥,可对外公开,甚至可在中注册。为提高保密强度,RSA密钥至少为500位长,一般推荐使用1024位。这就使加密的计算量很大。为减少计算量,在传送信息时,常采用传统加密方法与加密方法相结合的方式,即信息采用改进的DES或IDEA对话密钥加密,然后使用RSA密钥加密对话密钥和信息摘要。对方收到信息后,用不同的密钥解密并可核对信息摘要。
RSA算法是第一个能同时用于加密和的算法,也易于理解和操作。RSA是被研究得最广泛的算法,从提出到现今的三十多年里,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。
SET(Secure Electronic Transaction)协议中要求采用2048长的密钥,其他实体使用1024比特的密钥。C)RSA密钥长度随着保密级别提高,增加很快。下表列出了对同一安全级别所对应的密钥长度。
对称密钥长度(bit)
RSA密钥长度(bit)
ECC密钥长度(bit)
这种算法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)就是密钥对。其中(n,e1)为,(n,e2)为私钥。[1]
RSA加解密的算法完全相同,设A为明文,B为密文,则:A=B^e2 mod n;B=A^e1 mod
n;(公钥加密体制中,一般用公钥加密,私钥解密)
e1和e2可以互换使用,即:
A=B^e1 mod n;B=A^e2
RSA的安全性依赖于大数分解,但是否等同于大数分解一直未能得到理论上的证明,因为没有证明破解
RSA就一定需要作大数分解。假设存在一种无须分解大数的算法,那它肯定可以修改成为大数分解算法。 RSA
的一些变种算法已被证明等价于大数分解。不管怎样,分解n是最显然的攻击方法。人们已能分解多个十进制位的大素数。因此,模数n
必须选大一些,因具体适用情况而定。
由于进行的都是大数计算,使得RSA最快的情况也比DES慢上好几倍,无论是软件还是硬件实现。速度一直是RSA的缺陷。一般来说只用于少量。RSA的速度比对应同样安全级别的对称要慢1000倍左右。
若系统中共有一个模数,只是不同的人拥有不同的e和d,系统将是危险的。最普遍的情况是同一信息用不同的加密,这些公钥共模而且互质,那么该信息无需就可得到恢复。设P为信息明文,两个加密为e1和e2,公共模数是n,则:
C1 = P^e1mod n
C2 = P^e2 mod n
密码分析者知道n、e1、e2、C1和C2,就能得到P。
因为e1和e2互质,故用Euclidean算法能找到r和s,满足:
* e1 + s * e2 = 1
假设r为负数,需再用Euclidean算法计算C1^(-1),则
(C1^(-1))^(-r) * C2^s = P mod n
另外,还有其它几种利用公共模数攻击的方法。总之,如果知道给定模数的一对e和d,一是有利于攻击者分解模数,一是有利于攻击者计算出其它成对的e’和d’,而无需分解模数。解决办法只有一个,那就是不要共享模数n。
RSA的小指数攻击。有一种提高 RSA速度的建议是使e取较小的值,这样会使加密变得易于实现,速度有
所提高。但这样作是不安全的,对付办法就是e和d都取较大的值。
RSA的边信道攻击
针对RSA的边信道攻击现今大多处于实验室阶段,边信道攻击并不是直接对RSA的算法本身进行攻击,而是针对计算RSA的设备的攻击。现今的边信道攻击一般是针对硬件实现RSA算法的芯片进行的。[2]
现国内外防范公钥密码边信道攻击主要以牺牲效率为代价。公钥密码的实现效率一直是信息安全系统的应用瓶颈,进一步损害算法效率,必将造成信息系统性能恶化。因此,寻找高效又抗功耗分析的公钥算法实现途径,并结合其他层面抗攻击手段,使密码器件运行效率、功耗、面积等综合因素实现最优化,无疑是极富挑战性的课题,不仅对抗边信道攻击理论研究有重要价值,而且对广泛应用的智能卡(尤其是银行卡、手机SIM或USIM卡)、各种硬件密码电子设备、有时也包括软件实现的密码算法的安全应用无疑具有极大的现实意义。
边信道攻击以功耗分析和公钥密码为研究重点,在对各种类型、系列、型号、规模的基本电路运行过程中的功耗轨迹进行大量研究、掌握其变化规律的基础上,继续研究电路工艺、结构、算法、协议对功耗轨迹的影响,经过一系列处理,从中提取出密钥信息。目标是针对功耗分析攻击机理,提出抗功耗分析的综合优化新方法,并尽量兼顾算法效率。
边信道攻击研究涉及密码学、信息论、算法理论和噪声理论,还涉及硬件电路设计、通信、信号处理、统计分析、模式识别等诸多技术。
边信道攻击在若干关键问题研究上已取得了实质性进展。
目前国内已经有大学的研究者提出了公钥密码等功耗编码的综合优化方法,佐证了安全性和效率的可兼顾性。截至目前,研究团队已针对著名公钥密码算法RSA的多种实现算法和方式成功实施了计时攻击、简单功耗和简单差分功耗分析攻击,实验验证了多种防御方法,包括
“等功耗编码”方法的有效性,并完成了大规模功耗分析自动测试平台的自主开发。
1)产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密。
2)安全性,RSA的安全性依赖于大数的因子分解,但并没有从理论上证明破译RSA的难度与大数分解难度等价,而且密码学界多数人士倾向于因子分解不是NP问题。现今,人们已能分解140多个十进制位的大素数,这就要求使用更长的密钥,速度更慢;另外,人们正在积极寻找攻击RSA的方法,如选择密文攻击,一般攻击者是将某一信息作一下伪装(Blind),让拥有私钥的实体签署。然后,经过计算就可得到它所想要的信息。实际上,攻击利用的都是同一个弱点,即存在这样一个事实:乘幂保留了输入的乘法结构:
(XM)d = Xd *Md mod n
前面已经提到,这个固有的问题来自于公钥密码系统的最有用的特征--每个人都能使用公钥。但从算法上无法解决这一问题,主要措施有两条:一条是采用好的公钥协议,保证工作过程中实体不对其他实体任意产生的信息解密,不对自己一无所知的信息签名;另一条是决不对陌生人送来的随机文档签名,签名时首先使用One-Way
Function对文档作HASH处理,或同时使用不同的签名算法。除了利用公共模数,人们还尝试一些利用解密指数或φ(n)等等攻击.
3)速度太慢,由于RSA 的分组长度太大,为保证安全性,n 至少也要 600
bitx以上,使运算代价很高,尤其是速度较慢,较对称密码算法慢几个数量级;且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化。SET(Secure
Electronic
Transaction)协议中要求CA采用2048比特长的密钥,其他实体使用1024比特的密钥。为了速度问题,人们广泛使用单,密码结合使用的方法,优缺点互补:单钥密码加密速度快,人们用它来加密较长的文件,然后用RSA来给文件密钥加密,极好的解决了单钥密码的密钥分发问题。
针对RSA最流行的攻击一般是基于大数因数分解。1999年,RSA-155(512)被成功分解,花了五个月时间(约8000
MIPS 年)和224 CPU hours 在一台有3.2G中央内存的Cray C916计算机上完成。
2002年,RSA-158也被成功因数分解。
日,编号为 RSA-768 (768,232
digits)数也被成功分解。
北京时间日上午消息,据《》周二报道,欧美数学家和密码学家偶然发现,被全世界广泛应用的RSA存在漏洞。
他们发现,在700万个实验样本中有2.7万个并不是按理论随机产生的。也就是说,或许有人可以找出产生的秘密质数。
该研究项目是由美国独立密码学家James P.Hughes和数学家Arjen
K. Lenstra牵头的。他们的报告称:“我们发现绝大多数都是按理论产生的,但是每一千个公钥中会有两个存在安全隐患。”
报告称,为防止有人利用该漏洞,有问题的已从公众访问的数据库中移除。为确保系统的安全性,网站需要在做出改变。
RSA用到的公式和定理
一、数和互为素数
任何大于1的整数a能被因式分解为如下唯一形式:
a=p1p2…pl(p1,p2,…,pl为素数)
二、模运算
①{[a(mod n)]&[b(mod n)]}modn≡(a&b)(mod n)
②如果(a&b)=(a&c)(mod n),a与n互素,则
b=c(mod n)
三、费马定理
若p是素数,a与p互素,则
a^(p-1)≡1 (mod p)
四、欧拉定理
欧拉函数φ(n)表示不大于n且与n互素的正整数的个数。
当n是素数,φ(n)=n-1。n=pq,p,q均为素数时,则φ(n)= φ(p)φ(q)=(p-1)(q-1)。
对于互素的a和n,有a^φ(n)≡1(mod n)311和211质数311、211、511、287、928这些哪几个是质数.
为您推荐:
其他类似问题
311,211是质数。511=7*73,287=7*41
扫描下载二维码这是一篇旧文,点击以旧主题模式浏览。两个素数的和是2005,这两个素数的乘积是_______百度知道
两个素数的和是2005,这两个素数的乘积是______
两个素数的和是2005,这两个素数的乘积是______.
提问者采纳
为两个质数的和为奇数,所以另一个质数是2003,所以必有一个质数是奇数,另一个质数是偶数.因为2是唯一的偶质数,所以它们的乘积为2×.故答案为
其他类似问题
为您推荐:
素数的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 1为什么不是素数 的文章

 

随机推荐