《第9章公钥密码学与RSA.ppt》由会员分享,可在线阅读,更多相关《第9章公钥密码学与RSA.ppt(26页珍藏版)》请在三一办公上搜索。
1、第9章 公钥密码学与RSA,公钥密码学,是密码学一次伟大的革命1976年,Diffie和Hellman 在“密码学新方向”一文中提出使用两个密钥:公密钥、私密钥加解密的非对称性利用数论的方法是对对称密码的重要补充,公钥密码学解决的基本问题,密钥交换对称密码进行密钥交换的要求:已经共享一个密钥利用密钥分配中心数字签名与传统的签名比较,公钥密码体制,重要特点仅根据密码算法和加密密钥来确定解密密钥在计算上不可行两个密钥中的任何一个都可用来加密,另一个用来解密。六个组成部分:明文、密文;公钥、私钥;加密、解密算法,公钥密码体制,公钥密码体制的加密功能,A向B发消息X,B的公钥为KUb,私钥为KRb加密
2、 Y=EKUb(X)解密 X=DKRb(Y),公钥密码体制的加密,公钥密码体制的认证,A向B发送消息XA的公钥为KUa,私钥为KRa“加密”:Y=EKRa(X)(数字签名)“解密”:X=DKUa(Y)注意:不能保证消息的保密性,公钥密码体制的认证,具有保密与认证的公钥体制,对称密码 公钥密码,关于公钥密码的几种误解,公钥密码比传统密码安全?公钥密码是通用方法,所以传统密码已经过时?公钥密码实现密钥分配非常简单?,RSA算法,由MIT的 Rivest,Shamir&Adleman 在 1977 提出最著名的且被广泛应用的公钥加密体制 明文、密文是0到n-1之间的整数,通常n的大小为1024位或3
3、09位十进制数,RSA算法描述,加密:C=Me mod N,where 0MN解密:M=Cd mod N 公钥为(e,N),私钥为(d,N)必须满足以下条件:Med=M mod N计算Me和Cd是比较容易的由e和n确定d是不可行的,RSA 密钥产生过程,随机选择两个大素数 p,q 计算 N=p.q注意(N)=(p-1)(q-1)选择 e使得1e(N),且gcd(e,(N)=1 解下列方程求出 d e.d=1 mod(N)且 0dN 公布公钥:KU=e,N 保存私钥:KR=d,p,q,RSA 的使用,发送方要加密明文M:获得接收方的公钥 KU=e,N 计算:C=Me mod N,where 0M
4、N接收方解密密文C:使用自己的私钥 KR=d,N 计算:M=Cd mod N 注意:M必须比N小,为什么RSA 可以加解密,因为 Euler 定理的一个推论:Mk(n)1=M mod NRSA 中:N=p.q(N)=(p-1)(q-1)选择 e&d 使得ed1 mod(N)因此 存在k使得e.d=1+k.(N)因此Cd=(Me)d=M1+k.(N)=M mod N,RSA Example,Select primes:p=17 choose e=7Determine d:de=1 mod 160 and d 160 Value is d=23 since 237=161=10160+1Publi
5、sh public key KU=7,187Keep secret private key KR=23,17,11,RSA Example cont,sample RSA encryption/decryption is:given message M=88(nb.88187)encryption:C=887 mod 187=11 decryption:M=1123 mod 187=88,模幂运算,模幂运算是RSA中的主要运算(a mod n)(b mod n)mod n=(a b)mod n利用中间结果对n取模,实现高效算法,Exponentiation,RSA 密钥生成,必须做确定两个大素
6、数:p,q 选择e或者d,并计算d或者e素数测试是重要的算法由e求d要使用到扩展Euclid算法,RSA 的安全性,三种攻击 RSA的方法:强力穷举密钥数学攻击:实质上是对两个素数乘积的分解时间攻击:依赖解密算法的运行时间,因子分解问题,三种数学攻击方法分解 N=p.q,因此可计算出(N),从而确定d直接确定(N),然后找到d直接确定d大家相信:由N确定(N)等价于因子分解,Timing Attacks,developed in mid-1990sexploit timing variations in operationseg.multiplying by small vs large nu
7、mber or IFs varying which instructions executedinfer operand size based on time taken RSA exploits time taken in exponentiationcountermeasuresuse constant exponentiation timeadd random delaysblind values used in calculations,Summary,have considered:principles of public-key cryptographyRSA algorithm,implementation,security,