资源预览内容
第1页 / 共46页
第2页 / 共46页
第3页 / 共46页
第4页 / 共46页
第5页 / 共46页
第6页 / 共46页
第7页 / 共46页
第8页 / 共46页
第9页 / 共46页
第10页 / 共46页
亲,该文档总共46页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第二讲 信息安全技术,第2章 密码技术基础 第3章 对称密码体系 第4章 公钥密码体系 第5章 公钥基础设施PKI 第6章 信息隐藏技术,第四章 内容,4.1公钥密学概述 4.2 Diffie-Hellman 密钥交换算法 4.3 RSA算法,4.1 公钥密码概述,1976年,Diffie 和Hellmann提出了公开密钥密码体制(简称公钥体制),它的加密、解密密钥是不同的,也是不能(在有效的时间内)相互推导。所以,它可称为双钥密码体制。 公开密钥密码体制的产生,是密码学革命性的发展。一方面,为数据的保密性、完整性、真实性提供了有效方便的技术。另一方面,科学地解决了密码技术的瓶颈密钥的分配问题。,第一个公钥体制是1977年由Rivest,Shamir,Adleman提出的,称为RSA公钥体制,其安全性是基于整数的因子分解的困难性。RSA公钥体制已得到了广泛的应用。 基于背包问题的Merkle-Hellman背包公钥体制 基于有限域上离散对数问题的ElGamal公钥体制 基于椭圆曲线的ECC密码体制 ,公钥体制算法,公钥密码体制介绍,公钥密码体制加解密过程主要有以下几步 :,不一样的密码,(1)简化密钥分配及管理问题 公钥体制用于数据加密时: 用户将自己的公开(加密)密钥登记在一个公开密钥库或实时公开,秘密密钥则被严格保密。信源为了向信宿发送信息,去公开密钥库查找对方的公开密钥,或临时向对方索取公钥,将要发送的信息用这个公钥加密后在公开信道上发送给对方,对方收到信息(密文)后,则用自己的秘密(解密)密钥解密密文,读取信息。 可见,这里省去了从秘密信道传递密钥的过程。这是公钥体制的一大优点。,安全的公开密钥密码达到的功能,一对密钥,(2)保护信息机密 任何人均可将明文加密成密文,此后只有拥有解密密钥的人才能解密。 (3)实现不可否认功能 公钥体制用于数字签名时: 信源为了他人能够验证自己发送的消息确实来自本人,他将自己的秘密(解密)密钥公布,而将公开(加密)密钥严格保密。与别人通信时,则用自己的加密密钥对消息加密称为签名,将原消息与签名后的消息一起发送. 对方收到消息后,为了确定信源的真实性,用对方的解密密钥解密签名消息称为(签名)验证,如果解密后的消息与原消息一致,则说明信源是真实的,可以接受,否则,拒绝接受。,续,4.2 Diffie-Hellman 密钥交换算法,W.Diffie和M.E.Hellman于1976年提出的,让A和B两个陌生人之间建立共享秘密密钥的公开密钥算法,称为Diffie-Hellman算法,它定义了公开密钥密码体制。它的目的是使得两个用户安全地交换一个密钥以便用于以后的报文加密,这个算法本身限于密钥交换的用途。许多商用产品都使用这种密钥交换技术。 在Diffie-Hellman密钥交换算法中的单向函数是模指数运算。它的逆过程是离散对数问题,其Diffie-Hellman算法的保密性基于求mod p解离散对数问题的困难。,离散对数,定义素数p的原元(原始根)为这样一个数,他能生成1p-1所有数的一个数。现设a为p的原元,则 两两互不相同,构成一个1p-1的全体数的一个排列。对于任意数b及素数p的原元a,可以找到一个唯一的指数 i,满足 则称指数i为以a为底、模p的b的离散对数。,用户A,用户B,公开,秘密,秘密,会话秘密,会话秘密,密钥交换过程,1.基本原理,公开,密钥交换过程,(1)选择一个素数P和它的一个原元a; (2)通信方A选择自己的秘密密钥XA,并计算自己的公开密钥YA: YA=a XA mod P (3)通信方B选择自己的秘密密钥XB,并计算自己的公开密钥YB: YB=a XB mod P (4)通信双方A和B交换YA和YB; (5)A独立计算会话密钥,B独立计算会话密钥KS; (6)通信双方利用会话密钥KS进行通信。,2.交换示例,为了计算简单,使用很小数字。设P=47和47的一个原元,a=3。 A选择秘密密钥XA=8,B选择秘密密钥XB=10,各自计算其公开密钥。 (1)双方各自计算 用户A计算:YA=3 8mod 47=6561 mod 47=28 mod 47 用户B计算:YB=3 10mod 47= 59049 mod 47=17 mod 47,2.交换示例(续),(2)交换YA和YB; (3)交换密钥后,A、B分别计算共享的秘密会话密钥KA、KB: 用户A计算: KA=YB XA mod 47=178 mod 47=4 mod 47 用户B计算: KB=YA XB mod 47=2810 mod 47=4 mod 47 A和B双方独立地决定采用数据“4”作为会话密钥。,特征与不足,特征: (1)仅当需要时才产生密钥,减少储存时间,减少受攻击的机会; (2)除对全局参数的约定外,密钥交换不需要事先存在的基础结构。 不足: (1)没有通信双方身份的信息; (2)计算是密集性的,容易受到阻塞性攻击; (3)没办法防止重放攻击; (4)容易受到中间人攻击。,4.3 RSA算法,1978年由Ron Rivest、AdiShamir和Len Adleman发明。 “A method for obtaining digital signatures and public key cryptosystem” 是一种块加密算法。 明文和密文在0n-1之间,n是一个正整数 应用最广泛的公钥密码算法 只有美国专利,且已于2000年9月到期,1RSA算法要点,算法产生一对密钥,一个人可以用密钥对中的一个加密消息,另一个人则可以用密钥对中的另一个解密消息。同时,任何人都无法通过公钥确定私钥,也没有人能使用加密消息的密钥解密。只有密钥对中的另一把可以解密消息。,2.RSA算法描述,加密: C=Me mod N, where 0MN 解密: M=Cd mod N 公钥为(e,N), 私钥为(d,N) 必须满足以下条件: 计算Me和Cd是比较容易的 由e和N确定d是不可行的,3.RSA 密钥产生过程,随机选择两个互质大素数 p, q (p,q 必须保密) 计算 n=p.q 计算z =(p-1)(q-1) 随机选择整数 e,使得1ez且gcd(e,z)=1 计算d :d=e-1 mod z 且 0 d n 公布公钥: KU=e,n 保存私钥: KR=d,n,4.RSA 的使用,发送方要加密明文M: 获得接收方的公钥 KU=e,N 计算: C=Me mod N, where 0MN 接收方解密密文C: 使用自己的私钥 KR=d,N 计算: M=Cd mod N 注意:M必须比N小,5RSA例1,取两个质数p=11,q=13,p和q的乘积为n=pq=143,算出另一个数z=(p-1)(q-1)=120; 再选取一个与z=120互质的数,例如e=7,则 公开密钥=(n,e)=(143,7)。 对于这个e值,可以算出其逆:d=103。 因为ed=7103=721,满足ed mod z =1;即721 mod 120=1成立。 则秘密密钥=(n,d)=(143,103)。,6RSA例2,张小姐需要发送机密信息(明文)m=85给李先生,她已经从公开媒体得到了李先生的公开密钥(n,e)=(143,7),于是她算出加密值: c= me mod n=857 mod 143=123,并发送给李先生。 李先生在收到密文c=123后,利用只有他自己知道的秘密密钥计算:m= cd mod n =123103 mod 143=85,所以,李先生可以得到张小姐发给他的真正的信息m=85,实现了解密。,7RSA算法的安全性,依赖于大数分解,但是否等同于大数分解一直未能证明。不管怎样,分解n是最显然的攻击方法。 1994年4月26日,美国各大媒体报道:由RSA发明人在17年前出的129位数字已被因子分解,并破解了附带的密语: The magic words are squeamish ossifrage. 目前,已能分解140位十进制的大素数。因此,模数n必须选大一些。 RSA最快的情况也比DES慢上100倍,无论是软件还是硬件实现。速度一直是RSA的缺陷。一般只用于少量数据加密。,8RSA算法的脆弱性,不能证明RSA密码破译等同于大数因子分解 速度问题:增大pq将使开销指数级增长 至少有9个明文,加密后不变,即me mod n=m 普通用户难于选择p、q。对p、q的基本要求: p、q不相同,即不要太接近,又不能差别太大 p-1、q-1都有大素数因子,增加猜测(r) 难度 gcd( p-1,q-1)应当小,RSA算法的脆弱性(续),4)p、q选择不当,则变换周期性、封闭性而泄密 例:p=17,q=11,e=7,则n=187。 设m=123,则 C1=1237 mod 187=183 C2=1837 mod 187=72 C3=727 mod 187=30 C4=307 mod 187=123 明文m经过4次加密,恢复成明文。 总之,RSA对用户要求太苛刻,密钥不能常更换。,9RSA算法的攻击方法,(1)选择密文攻击 (2)过小加密指数e (3) RSA的公共模数攻击 (4)RSA的计时攻击法,10. RSA的实用性,公开密钥密码体制有优点,但它的运算量大,计算复杂。 结合对称密钥密码体制使用 RSA算法在互联网的许多方面得以广泛应用。 基于RSA算法的公钥加密系统具有数据加密、数字签名(Digital Signature)、信息源识别及密钥交换等功能。,11. RSA算法的优缺点,优点 密钥空间大 缺点 1)产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密。 2)速度太慢。RSA速度比DES慢得多,无论是软件还是硬件实现,速度一直是RSA的缺陷。 3)为保证安全性,n 至少也要 600 bits以上,且还在增加。在运算上要付出代价。,12. RSA算法和DES算法比较,比较1 在加密、解密的处理效率方面,DES算法优于RSA算法。因为DES密钥的长度只有比特,可以利用软件和硬件实现高速处理;RSA算法需要进行诸如比特整数的乘幂和求模等多倍字长的处理,处理速度明显慢于DES算法。,续(1),比较2 在密钥的管理方面,RSA算法比DES算法更加优越。因为RSA算法可采用公开形式分配加密密钥,对加密密钥的更新也很容易,并且对不同的通信对象,只需对自己的解密密钥保密即可;DES算法要求通信前对密钥进行秘密分配,密钥的更换困难,对不同的通信对象,DES需产生和保管不同的密钥。,续(2),比较3 在安全性方面,DES算法和RSA算法的安全性都较好,还没有在短时间内破译它们的有效的方法。 比较4 在签名和认证方面,DES算法从原理上不可能实现数字签名和身份认证,但RSA算法能够容易地进行数字签名和身份认证。,13. 基于DES和RSA的加密方案,设发送方为A(加密密钥为Kea,解密密钥为Kda),接收方为B(加密密钥为Keb,解密密钥为Kdb)。 具体实现步骤: (1)发送方A生成用于DES加密的密钥K,为了提高数据的安全性,每一个密钥只用一次。 (2)发送方从密钥服务器中获取接收方的RSA的公开加密密钥Keb,并用Keb加密DES的密钥K形成密文Ck。,续(1),(3)发送方A生成需要签名的信息,并用自己的RSA的解密密钥Kda和Keb共同形成数字签名。 (4)发送方用K加密明文和签名的信息,然后连同Ck一起形成密文C发往接收方。 (5)接收方接收到C后,先用自己的解密密钥Kdb解密出C中的DES密钥K,再利用K解密出明文和签名信息。,续(2),(6)接收方用发送方的公开密钥Kea和自己的解密密钥Kdb对签名信息进行身份认证,然后对签名信息作适当处理后(例如填写自己的标识号等),再形成自己的数字签名信息发往发送方。 (7)发送、接收双方均删除DES密钥K。,思考题,1 . 对称密
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号