- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
RSA算法
RSA算法 RSA Algorithm 概况 MIT三位年青数学家R.L.Rivest,A.Shamir和L.Adleman[Rivest等1978, 1979]发现了一种用数论构造双钥的方法,称作MIT体制,后来被广泛称之为RSA体制。 它既可用于加密、又可用于数字签字。 RSA算法的安全性基于数论中大整数分解的困难性。 迄今为止理论上最为成熟完善的公钥密码体制,该体制已得到广泛的应用。 算法原理 RSA算法使用了乘方运算。 要求: 明文M经过加密得到密文C: C=Me mod n 密文C经过解密得到明文M: Cd mod n=(Me mod n)d mod n= Med mod n=M 即:必须存在e,d,n,使Med mod n=M成立 如何确定e,d,n 确定n: 独立地选取两大素数p和q(各100~200位十进制数字) 计算 n=p×q,其欧拉函数值?(n)=(p-1)(q-1) 确定e: 随机选一整数e,1?e?(n),gcd(?(n), e)=1 确定d: 根据ed=1 mod ?(n)在模?(n)下,计算d 这样确定的e,d,n是否能使Med mod n=M成立呢? 因为ed=1 mod ?(n) 即ed=k?(n)+1 所以:Med=Mk?(n)+1 如果M和n互素,即gcd(M,n)=1 那么, 根据欧拉定理(如果gcd(a,n)=1,则 aФ(n) ≡1 mod n): 有:M?(n) ≡1 mod n 所以:Med ≡ Mk?(n)+1 ≡M[M?(n) ]kmod n ≡ M[1]kmod n ≡ M mod n 如果M和n不互素,即gcd(M,n)≠1,即M和n有大于1的公约数。 因为n=pq,而p、q都是素数,不可再分解,所以M一定包含了p或q为因子。 又因为Mn,所以M不可能既是p的倍数又是q的倍数。 不妨设M是p的倍数,M=cp。 由于M不是q的倍数,所以gcd(M,q)=1,则 M?(q) ≡1 mod q ,所以:[M?(q) ] ?(p) ≡1 mod q 即M?(n) ≡1 mod n,即M?(n) =1+kq M?(n) =1+kq 两边同乘以M=cp,则: M?(n)+1=M+kqcp=M+kcn 把kc看作一个常数,则:M?(n)+1=M+tn 即:M?(n)+1 ≡M mod n,即M?(n) ≡1 mod n 因为ed=1 mod ?(n), 所以: Med ≡ Mk?(n)+1 ≡ M[M?(n) ]kmod n ≡ M[1]kmod n ≡ M mod n 综上,这样的e,d,n可以实现加密C=Me mod n和解密M=Cd mod n 密钥 以n,e为公钥。秘密钥为d。(p, q不再需要,可以销毁。) RSA算法在计算上的可行性 加密和解密 无论是加密还是解密都需要计算某个整数的模n整数次幂,即C=Me mod n、M=Cd mod n。但不需要先求出整数的幂再对n取模,而可利用模运算的性质: (a mod n) * (b mod n)= (a*b) mod n 对于Me mod n,可先求出M1 mod n,M2 mod n, M4 mod n……,再求Me mod n RSA算法在计算上的可行性 产生密钥 由于n是公开的,为了避免攻击者用穷举法求出p和q(根据n=pq),应该从足够大的集合中选取p和q,即p和q必须是大素数。 目前还没有有效的方法可以产生任意大素数,通常使用的方法是:随机挑选一个期望大小的奇数,然后测试它是否是素数,若不是,则挑选下一个随机数直至检测到素数为止。 素性检验 引理:如果p为大于2的素数,则方程x2≡1 mod p的解只有和x≡1和x≡-1 证明: x2≡1 mod p ? x2 -1 ≡0 mod p (x+1)(x-1)≡0 mod p 所以,p|(x+1)或p|(x-1) 或p|(x+1)且p|(x-1)?存在k,j,x+1=kp, x-1=jp?2=(k-j)p, 这是不可能的。 引理的逆命题:若方程x2≡1 mod p有唯一解x不为+1或-1,p不是素数 素性检验 Miller-Rabin素性概率检测法 n为待检测数,a为小于n的整数,将n-1表示为二进制形式bkbk-1…b0,d
文档评论(0)