欢迎您访问52IJ教育培训网,今天小编为你分享的数学方面的学习知识是通过网络精心收集整理的:“rsa算法_RSA算法介绍[数学]”,注意:所整理内容不代表本站观点,如你有补充或疑问请在正文下方的评论处发表。下面是详细内容。
RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作. RSA是被研究得最广泛的公钥算法,从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一.RSA的安全性依赖于大数的因子分解,但并没有从理论上证明破译RSA的难度与大数分解难度等价.即RSA的重大缺陷是无法从理论上把握它的保密性能如何,而且密码学界多数人士倾向于因子分解不是NPC问题. RSA的缺点主要有:A)产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密.B)分组长度太大,为保证安全性,n 至少也要 600 bits以上,使运算代价很高,尤其是速度较慢,较对称密码算法慢几个数量级;且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化.目前,SET(Secure Electronic Transaction)协议中要求CA采用2048比特长的密钥,其他实体使用1024比特的密钥. 这种算法1978年就出现了,它是第一个既能用于数据加密也能用于数字签名的算法.它易于理解和操作,也很流行.算法的名字以发明者的名字命名:Ron Rivest, AdiShamir 和Leonard Adleman. 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)就是密钥对. RSA加解密的算法完全相同,设A为明文,B为密文,则:A=B^e1 mod n;B=A^e2 mod n; e1和e2可以互换使用,即: A=B^e2 mod n;B=A^e1 mod n;
[编辑本段]一、RSA 的安全性
RSA的安全性依赖于大数分解,但是否等同于大数分解一直未能得到理论上的证明,因为没有证明破解 RSA就一定需要作大数分解.假设存在一种无须分解大数的算法,那它肯定可以修改成为大数分解算法.目前, RSA 的一些变种算法已被证明等价于大数分解.不管怎样,分解n是最显然的攻击方法.现在,人们已能分解多个十进制位的大素数.因此,模数n 必须选大一些,因具体适用情况而定.
[编辑本段]二、RSA的速度
由于进行的都是大数计算,使得RSA最快的情况也比DES慢上好几倍,无论是软件还是硬件实现.速度一直是RSA的缺陷.一般来说只用于少量数据加密.
[编辑本段]三、RSA的选择密文攻击
RSA在选择密文攻击面前很脆弱.一般攻击者是将某一信息作一下伪装( Blind),让拥有私钥的实体签署.然后,经过计算就可得到它所想要的信息.实际上,攻击利用的都是同一个弱点,即存在这样一个事实:乘幂保留了输入的乘法结构: ( XM )^d = X^d *M^d mod n 前面已经提到,这个固有的问题来自于公钥密码系统的最有用的特征--每个人都能使用公钥.但从算法上无法解决这一问题,主要措施有两条:一条是采用好的公钥协议,保证工作过程中实体不对其他实体任意产生的信息解密,不对自己一无所知的信息签名;另一条是决不对陌生人送来的随机文档签名,签名时首先使用One-Way HashFunction 对文档作HASH处理,或
[编辑本段]四、RSA的公共模数攻击
若系统中共有一个模数,只是不同的人拥有不同的e和d,系统将是危险的.最普遍的情况是同一信息用不同的公钥加密,这些公钥共模而且互质,那末该信息无需私钥就可得到恢复.设P为信息明文,两个加密密钥为e1和e2,公共模数是n,则: C1 = P^e1 mod n C2 = P^e2 mod n 密码分析者知道n、e1、e2、C1和C2,就能得到P. 因为e1和e2互质,故用Euclidean算法能找到r和s,满足: r * 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都取较大的值.
可以直接hi我
给你一些例子
其他类似问题
问题1:关于RSA加密算法的问题假设通信双方使用RSA进行加密,接收方的公开钥是(e,n)=(5,35),接收到的密文是C=2,求明文M
先将n=35拆开=5*7,然后么就计算e*d=1(modΦ(n))即e*d=1(mod(5-1)*(7-1))即 5d=1(mod24),很显然,d=5那么M=C*d(modn),所以M=10,要知道原理的话我再补充,先讲下做法
问题2:RSA算法的具体过程同题[数学科目]
DES算法全称为Data Encryption Standard,即数据加密算法,它是IBM公司于1975年研究成功并公开发表的.DES算法的入口参数有三个:Key、Data、Mode.其中Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密.
DES算法把64位的明文输入块变为64位的密文输出块,它所使用的密钥也是64位,其算法主要分为两步:
1初始置换
其功能是把输入的64位数据块按位重新组合,并把输出分为L0、R0两部分,每部分各长3 2位,其置换规则为将输入的第58位换到第一位,第50位换到第2位……依此类推,最后一位是原来的第7位.L0、R0则是换位输出后的两部分,L0是输出的左32位,R0是右32位,例:设置换前的输入值为D1D2D3……D64,则经过初始置换后的结果为:L0=D58D50……D8;R0=D57D49……D7.
2逆置换
经过16次迭代运算后,得到L16、R16,将此作为输入,进行逆置换,逆置换正好是初始置换的逆运算,由此即得到密文输出.
RSA算法简介
这种算法1978年就出现了,它是第一个既能用于数据加密也能用于数字签名的算法.它易于理解和操作,也很流行.算法的名字以发明者的名字命名:Ron Rivest,AdiShamir 和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(二进制表示)时,首先把m分成等长数据块 m1 ,m2,...,mi ,块长s,其中 2^s
问题3:RSA算法的证明由第一步怎么证明命题?第二步看不懂,怎么来的?要证明的是c^d≡m (modulo n)看不清图片就下载以后看
分两种情况考虑,
1.m,n互素的时候.要证明c^d≡m (modulo n).在上面一步中 再加一步,读者应该就更好理解了.由欧拉定理退出XXXX,然后下面还有一步.m^kφ(n)≡1 modn 最后一步应该是写成m^(kφ(n)+1)≡1 mod n.然后你应该就知道c^d≡m (modulo n).
2.这步中的p-1其实就是φ(p),你先算m^kφ(n)≡1 modn 然后再φ(p),结果还是1啊.
另外,你看的是不是电子档的应用密码学的?建议你去看实体书,那个上面写的很详细.不会像这个那么简略,很多都不能理解
问题4:RSA算法计算用RSA算法加密时,已经公钥是(e=7,n=20),私钥是(e=3,n=20),用公钥对消息M=3加密,得到的密文是_____?[数学科目]
你所说的:
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了
我空间里面里的一篇文章写的非常清楚,还有例子,想了解清楚点可以再去看看
你取的两个素数太小了,所以n太小根本起不了作用.至少要取1024位的数字.
问题5:rsa算法具体过程用RSA算法加密时,己知公钥是(e=7,n=20),私钥(d=3,n=20),用公钥对消息M=3加密封,得到的密文是多少?[数学科目]
加密:C=M的E次方mod N
mod表示模运算
3的7次方 模 20等于7 所以加密后密文就是7
解密:M=C的D次方mod N
7的3次方 模 20等于3 所以解密密后就得到明文 就是原来的3
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
