您好,欢迎访问三七文档
第9章公钥密码学与RSA公钥密码学是密码学一次伟大的革命1976年,Diffie和Hellman在“密码学新方向”一文中提出使用两个密钥:公密钥、私密钥加解密的非对称性利用数论的方法是对对称密码的重要补充公钥密码学解决的基本问题密钥交换对称密码进行密钥交换的要求:已经共享一个密钥利用密钥分配中心数字签名与传统的签名比较公钥密码体制重要特点仅根据密码算法和加密密钥来确定解密密钥在计算上不可行两个密钥中的任何一个都可用来加密,另一个用来解密。六个组成部分:明文、密文;公钥、私钥;加密、解密算法公钥密码体制公钥密码体制的加密功能A向B发消息X,B的公钥为KUb,私钥为KRb加密Y=EKUb(X)解密X=DKRb(Y)公钥密码体制的加密公钥密码体制的认证A向B发送消息XA的公钥为KUa,私钥为KRa“加密”:Y=EKRa(X)(数字签名)“解密”:X=DKUa(Y)注意:不能保证消息的保密性公钥密码体制的认证具有保密与认证的公钥体制对称密码公钥密码一般要求:1、加密解密用相同的密钥2、收发双方必须共享密钥安全性要求:1、密钥必须保密2、没有密钥,解密不可行3、知道算法和若干密文不足以确定密钥一般要求:1、加密解密算法相同,但使用不同的密钥2、发送方拥有加密或解密密钥,而接收方拥有另一个密钥安全性要求:1、两个密钥之一必须保密2、无解密密钥,解密不可行3、知道算法和其中一个密钥以及若干密文不能确定另一个密钥关于公钥密码的几种误解公钥密码比传统密码安全?公钥密码是通用方法,所以传统密码已经过时?公钥密码实现密钥分配非常简单?RSA算法由MIT的Rivest,Shamir&Adleman在1977提出最著名的且被广泛应用的公钥加密体制明文、密文是0到n-1之间的整数,通常n的大小为1024位或309位十进制数RSA算法描述加密:C=MemodN,where0≤MN解密:M=CdmodN公钥为(e,N),私钥为(d,N)必须满足以下条件:Med=MmodN计算Me和Cd是比较容易的由e和n确定d是不可行的RSA密钥产生过程随机选择两个大素数p,q计算N=p.q注意ø(N)=(p-1)(q-1)选择e使得1eø(N),且gcd(e,ø(N))=1解下列方程求出de.d=1modø(N)且0≤d≤N公布公钥:KU={e,N}保存私钥:KR={d,p,q}RSA的使用发送方要加密明文M:获得接收方的公钥KU={e,N}计算:C=MemodN,where0≤MN接收方解密密文C:使用自己的私钥KR={d,N}计算:M=CdmodN注意:M必须比N小为什么RSA可以加解密因为Euler定理的一个推论:Mkø(n)+1=MmodNRSA中:N=p.qø(N)=(p-1)(q-1)选择e&d使得ed=1modø(N)因此存在k使得e.d=1+k.ø(N)因此Cd=(Me)d=M1+k.ø(N)=MmodNRSAExample1.Selectprimes:p=17&q=112.Computen=pq=17×11=1873.Computeø(n)=(p–1)(q-1)=16×10=1604.Selecte:gcd(e,160)=1;choosee=75.Determined:de=1mod160andd160Valueisd=23since23×7=161=10×160+16.PublishpublickeyKU={7,187}7.KeepsecretprivatekeyKR={23,17,11}RSAExamplecontsampleRSAencryption/decryptionis:givenmessageM=88(nb.88187)encryption:C=887mod187=11decryption:M=1123mod187=88模幂运算模幂运算是RSA中的主要运算[(amodn)×(bmodn)]modn=(a×b)modn利用中间结果对n取模,实现高效算法ExponentiationRSA密钥生成必须做确定两个大素数:p,q选择e或者d,并计算d或者e素数测试是重要的算法由e求d要使用到扩展Euclid算法RSA的安全性三种攻击RSA的方法:强力穷举密钥数学攻击:实质上是对两个素数乘积的分解时间攻击:依赖解密算法的运行时间因子分解问题三种数学攻击方法分解N=p.q,因此可计算出ø(N),从而确定d直接确定ø(N),然后找到d直接确定d大家相信:由N确定ø(N)等价于因子分解TimingAttacksdevelopedinmid-1990’sexploittimingvariationsinoperationseg.multiplyingbysmallvslargenumberorIF'svaryingwhichinstructionsexecutedinferoperandsizebasedontimetakenRSAexploitstimetakeninexponentiationcountermeasuresuseconstantexponentiationtimeaddrandomdelaysblindvaluesusedincalculationsSummaryhaveconsidered:principlesofpublic-keycryptographyRSAalgorithm,implementation,security
本文标题:公钥密码学与RSA
链接地址:https://www.777doc.com/doc-3782761 .html