- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章公钥密码体制解析
概况 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 q,进而有Mk?(n) ≡1 mod q Mk?(n) ≡1 mod q 所以:Mk?(n) =1+bq (b为整数) 两边同乘以M: Mk?(n)+1 =M+Mbq 因为 M=cp 所以 Mk?(n)+1 =M+cpbq = M+cbn 因为cb为整数,令cb=K,即: Mk?(n)+1 =M+Kn 因为ed=k?(n)+1 所以Med =M+Kn 即Med≡ M 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 mod p 和x≡-1 mod p 证明: 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, 这是不可能的。 或者这样说 p为大于2的素数,如果有x使得 x2≡1 mod p成立,那么: x mod p=1 或者x mod p=p-1 素数的性质1 Let p be a prime number greater than 2. We can then write p-1 = 2kq, with k
您可能关注的文档
最近下载
- 《语文(基础模块)下册》(中职)教案 第24课 跨媒介阅读与交流(二).pdf VIP
- 《磨床安全操作规程》.docx VIP
- 青2013G02图集-标准图集.docx VIP
- 第36届全国中学生物理竞赛决赛理论考试试题与解答.pdf VIP
- DB45_T1900-2018_芒果成龄果树管理技术规程_广西壮族自治区 conv.docx VIP
- 软件测试-全套PPT课件.pptx
- 类风湿关节炎情景模拟教学案例范文.docx VIP
- 2025广西公需科目培训考试答案(90分)——“一区两地一园一通道”建设;人工智能时代的机遇与挑战(1).pdf VIP
- 化学核心素养引领单元主题学习之初探.docx VIP
- 钻床安全操作规程[共1页].doc VIP
文档评论(0)