密码学及安全应用2_2_第1页
密码学及安全应用2_2_第2页
密码学及安全应用2_2_第3页
密码学及安全应用2_2_第4页
密码学及安全应用2_2_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第二章 密码学基础http:/http:/目录v2.5公钥密码体制解决的问题公钥密码体制解决的问题v2.6 数字信封数字信封v2.7 单向散列函数单向散列函数http:/http:/2.5 公钥密码体制解决的问题对称密码体制已经能够对信息进行加密,对称密码体制已经能够对信息进行加密,为什么还需要公钥密码体制呢?为什么还需要公钥密码体制呢?公钥密码体制仅仅比对称密钥密码体制多用公钥密码体制仅仅比对称密钥密码体制多用了一个密钥而已吗,两个密钥好在哪里呢?了一个密钥而已吗,两个密钥好在哪里呢?思考http:/http:/公钥密码体制解决的问题v密钥分配密钥分配 v密码系统密钥管理问题密码系统密钥管理

2、问题 v数字签名问题数字签名问题http:/http:/2.5.1 密钥分配用密钥用密钥K加密的密文加密的密文生成密钥生成密钥K攻击者攻击者接收方接收方B发送方发送方A明文可能被窃听明文可能被窃听信息的明文信息的明文信息是否安全了呢信息是否安全了呢密文加密后可防止被窃取密文加密后可防止被窃取http:/http:/发送方生成密钥加密明文v问题:密钥问题:密钥K可能被窃取可能被窃取用密钥用密钥K加密的密文加密的密文密钥密钥K(明文形式)(明文形式)生成密钥生成密钥K攻击者攻击者接收方接收方B发送方发送方A问题:密钥可能被窃取问题:密钥可能被窃取http:/http:/改进第一步:接收方生成密钥v

3、改进传递加密信息的过程(第一步)改进传递加密信息的过程(第一步) 用密钥用密钥K加密的密文加密的密文密钥密钥K(明文形式)(明文形式)生成密钥生成密钥K攻击者攻击者接收方接收方B发送方发送方A窃取密钥为了解密窃取密钥为了解密使发送方和攻击者获取密钥的目的不同。使发送方和攻击者获取密钥的目的不同。获得密钥为了加密获得密钥为了加密http:/http:/改进第二步:接收方生成公钥用公钥用公钥KUB加密的密文加密的密文公钥公钥KUB:明文形式明文形式生成生成公钥公钥KUB和私钥和私钥KRB攻击者攻击者接收方接收方B发送方发送方A公钥被窃取也不能解密公钥被窃取也不能解密http:/http:/总结v解

4、决密钥分配问题的关键有两点:解决密钥分配问题的关键有两点:w 第一,线路上传输的必须是公钥;第一,线路上传输的必须是公钥;w 第二,这个公钥必须是接收方的。第二,这个公钥必须是接收方的。提示:如果提示:如果A、B双方需要使用公钥加密算法相双方需要使用公钥加密算法相互发送加密的信息给对方,则需要互发送加密的信息给对方,则需要两对公两对公/私钥私钥,即即A用用B的公钥加密信息发送给的公钥加密信息发送给B,B用用A的公钥的公钥加密信息发送给加密信息发送给A。 http:/http:/v这样,发送方用接收方的公钥加密信息,接收方这样,发送方用接收方的公钥加密信息,接收方用该公钥对应的私钥解密信息,攻击

5、者即使截获用该公钥对应的私钥解密信息,攻击者即使截获公钥也不能解密信息。公钥也不能解密信息。 v但要防止接收方的公钥被假冒但要防止接收方的公钥被假冒v即攻击者也生成一对公私钥,然后把自己的公钥即攻击者也生成一对公私钥,然后把自己的公钥Ku冒充接收方冒充接收方B的公钥的公钥Ku发给发送方,发送方发给发送方,发送方没有察觉,于是用该假冒的公钥没有察觉,于是用该假冒的公钥Ku加密信息,加密信息,攻击者就能用其对应的私钥攻击者就能用其对应的私钥Kr解密该信息了。解密该信息了。 要防止攻击者假冒公钥http:/http:/攻击者假冒公钥用公钥用公钥KUB加密加密的密文的密文假冒的公钥假冒的公钥KUB生成

6、公钥生成公钥KUB和私和私钥钥KRB攻击者攻击者接收方接收方B发送方发送方A生成公钥生成公钥KUB和私钥和私钥KRB窃取窃取KUB加密的密文加密的密文http:/http:/公钥的特殊要求v公钥虽然不需要保密,但需要保证其真实性公钥虽然不需要保密,但需要保证其真实性v常用手段:常用手段:数字证书数字证书http:/http:/本节提纲v密钥分配密钥分配 v密码系统密钥管理问题密码系统密钥管理问题 v数字签名问题数字签名问题http:/http:/对称密码系统需要的密钥数v思考:在一个密码系统中,用户通常不止思考:在一个密码系统中,用户通常不止A和和B两个人,有时候有几千人之间要相互发送加密两个

7、人,有时候有几千人之间要相互发送加密信息,能否使用对称密钥进行操作呢?信息,能否使用对称密钥进行操作呢? v假设假设A要与两个人(要与两个人(B和和C)安全通信,)安全通信,A能否用能否用同一个密钥处理与同一个密钥处理与B和与和与C的消息?的消息?v当然,这是不行的,否则怎么保证当然,这是不行的,否则怎么保证B不会打开不会打开A给给C的信,的信,C不会打开不会打开A给给B的信?的信? http:/http:/对称密码系统需要的密钥数v因此,因此,A为了和两个人安全通信,必须使用两个为了和两个人安全通信,必须使用两个密钥(密钥(KAB与与KAC),如果),如果B要与要与C通信,则要另通信,则要另

8、一个密钥(一个密钥(KBC),因此三方通信的话需要),因此三方通信的话需要3个个密钥。密钥。v对称密码系统有对称密码系统有n人需要安全通信时,这人需要安全通信时,这n人中人中两两之间需要一个密钥,需要的密钥数是:两两之间需要一个密钥,需要的密钥数是:v密钥数与参与通信人数的平方成正比密钥数与参与通信人数的平方成正比 2) 1(2nnCnhttp:/http:/公钥密码系统需要的密钥数v采用公钥密码系统,假设采用公钥密码系统,假设A要与要与n个人进行安全个人进行安全通信,他只需把他的公钥发布出去通信,他只需把他的公钥发布出去v。v也就是说,也就是说,A与与n人之间安全通信,只需要一对人之间安全通

9、信,只需要一对密钥,同样,密钥,同样,B与与n人之间安全通信,也只需要人之间安全通信,也只需要一对密钥。一对密钥。 v对于公钥密码系统,有对于公钥密码系统,有n人之间需要相互安全通人之间需要相互安全通信时,只需要信时,只需要n对密钥对密钥即可,即可,密钥量大大减少密钥量大大减少。 v这这n对密钥中的私钥由用户自己保存,公钥由专对密钥中的私钥由用户自己保存,公钥由专门的公钥管理机构保管和分发。门的公钥管理机构保管和分发。http:/http:/两种系统密钥管理的比较v公钥密码系统所需管理的密钥数(公钥密码系统所需管理的密钥数(n对)比对称对)比对称密码系统所需的密钥数(密码系统所需的密钥数(n2

10、个)大大减少个)大大减少v对称密码系统和公钥密码系统都需要一个密钥对称密码系统和公钥密码系统都需要一个密钥分配中心(分配中心(KDC)。因此,不要误认为公钥密)。因此,不要误认为公钥密码技术使得密钥管理非常简单,事实上,仍需码技术使得密钥管理非常简单,事实上,仍需要一个代理中心。只是它需要管理的密钥可以要一个代理中心。只是它需要管理的密钥可以大大减少大大减少http:/http:/本节提纲v密钥分配密钥分配 v密码系统密钥管理问题密码系统密钥管理问题 v数字签名问题数字签名问题http:/http:/2.5.3 数字签名问题v公钥密码算法的加密机制是:公钥密码算法的加密机制是:v下面考虑另外一

11、种机制:下面考虑另外一种机制:vA的公钥是公开的,从而无法实现保密性。的公钥是公开的,从而无法实现保密性。 如果如果A是发送方,是发送方,B是接收方,则是接收方,则A用用B的公的公钥加密信息,并将其发送给钥加密信息,并将其发送给B如果如果A是发送方,是发送方,B是接收方,则是接收方,则A用用A的私的私钥加密信息,并将其发送给钥加密信息,并将其发送给Bhttp:/http:/数字签名的基本原理 A的私钥的私钥发送方发送方A明明文文-密密文文加密加密A的公钥的公钥接收方接收方B明明文文密密文文解密解密http:/http:/实现消息认证v接收方用接收方用A的公钥解密,如果解密成功,则的公钥解密,如

12、果解密成功,则B可可以断定这个消息是以断定这个消息是A发来的。发来的。v因为,用因为,用A的私钥加密的信息只能用的私钥加密的信息只能用A的公钥解的公钥解密,反过来说,用密,反过来说,用A的公钥能解密成功就证明消的公钥能解密成功就证明消息一定是用息一定是用A的私钥加密的。的私钥加密的。http:/http:/实现不可抵赖性v如果今后发生争议,如果今后发生争议,A也无法否认自己发了消息,也无法否认自己发了消息,因为因为B可以拿出加密信息,用可以拿出加密信息,用A 的公钥解密,从的公钥解密,从而证明这个消息是而证明这个消息是A发来的。发来的。http:/http:/总结:数字签名的作用v消息认证消息

13、认证:证实某个消息确实是某用户发:证实某个消息确实是某用户发出的。出的。v实现不可抵赖性实现不可抵赖性:消息的发送方不能否认:消息的发送方不能否认他曾经发过该消息。他曾经发过该消息。v完整性保证完整性保证:如果消息能够用公钥解密成:如果消息能够用公钥解密成功,还可确信消息在传输过程中没有被篡功,还可确信消息在传输过程中没有被篡改过。改过。 http:/http:/v2.5公钥密码体制解决的问题公钥密码体制解决的问题v2.6 数字信封数字信封v2.7 单向散列函数单向散列函数目录http:/http:/公钥密码体制的优缺点v公钥密码体制公钥密码体制存在一个严重的缺点,就是存在一个严重的缺点,就是

14、加、解密速度很慢加、解密速度很慢例如:例如:512比特模数的比特模数的RSA算法与算法与DES算法相算法相比,用软件实现的话比,用软件实现的话RSA大约比大约比DES慢慢1000倍,倍,用硬件实现的话用硬件实现的话RSA大约比大约比DES慢慢1500倍倍http:/http:/对称密钥加密与公钥加密比较 特征特征对称密钥加密对称密钥加密公钥加密公钥加密加密加密/解密所用解密所用的密钥的密钥相同相同不同不同加密加密/解密速度解密速度 快快慢慢得到的密文长得到的密文长度度通常等于或小于明通常等于或小于明文长度文长度大于明文长度大于明文长度密钥分配密钥分配大问题大问题没问题没问题系统所需密钥系统所需

15、密钥总数总数大约为参与者的平大约为参与者的平方个方个等于参与者的个数等于参与者的个数用法用法主要用于加密主要用于加密/解解密密主要用于加密会话密钥,主要用于加密会话密钥,数字签名数字签名http:/http:/数字信封(混合密码体制)v数字信封数字信封用一个对称密钥加密明文,而用公用一个对称密钥加密明文,而用公钥密码体制的公钥加密这个对称密钥钥密码体制的公钥加密这个对称密钥v这样就既能使加密有很高的效率,又不必担心对这样就既能使加密有很高的效率,又不必担心对称密钥在传输中被窃取,实现了两全其美的效果称密钥在传输中被窃取,实现了两全其美的效果v具体是:信息发送方具体是:信息发送方A首先利用随机产

16、生的对称首先利用随机产生的对称密钥加密信息,再利用接收方密钥加密信息,再利用接收方B的公钥加密该对的公钥加密该对称密钥,被公钥加密后的对称密钥被称之为称密钥,被公钥加密后的对称密钥被称之为数字数字信封信封。http:/http:/数字信封的工作过程 v在实际中,公钥密码体制更多的用来加密对称在实际中,公钥密码体制更多的用来加密对称密码体制的密钥,而不是加密普通的明文信息。密码体制的密钥,而不是加密普通的明文信息。明文信息一般用对称密钥加密。此时对称密钥明文信息一般用对称密钥加密。此时对称密钥也被称为也被称为会话密钥会话密钥该会话密钥需要经常更换。该会话密钥需要经常更换。 发送方发送方A接收方接

17、收方B对称对称密钥密钥对称对称密钥密钥明文密文加密加密A的公钥明文解密解密接收方接收方公钥公钥加密加密密文接收方接收方私钥私钥解密数字数字信封信封http:/http:/v2.5公钥密码体制解决的问题公钥密码体制解决的问题v2.6 数字信封数字信封v2.7 单向散列函数单向散列函数目 录http:/http:/不可逆加密体制v不可逆加密体制又称为不可逆加密体制又称为单向密码体制单向密码体制,它是一,它是一种从明文到密文的不可逆变换,种从明文到密文的不可逆变换,v通常在明文到密文的转换中存在信息的损失,通常在明文到密文的转换中存在信息的损失,因此密文无法恢复成明文,实现不可逆密码体因此密文无法恢

18、复成明文,实现不可逆密码体制的方法是通过制的方法是通过单向散列函数单向散列函数。v单向散列函数用于某些只需要加密、不需要解单向散列函数用于某些只需要加密、不需要解密的特殊场合,例如密的特殊场合,例如:w 文件完整性保证文件完整性保证w 口令存储口令存储http:/http:/单向散列函数的性质 函数的输入(明文)可以是任意长度;函数的输入(明文)可以是任意长度; 函数的输出(密文)是固定长度的;函数的输出(密文)是固定长度的; 已知明文已知明文m,求,求H(m)较为容易,可用硬件或软件实现;较为容易,可用硬件或软件实现; 已知散列值已知散列值h,求使得,求使得H(m)=h的明文的明文m在计算上

19、是不可行在计算上是不可行的,这一性质称为函数的单向性,称的,这一性质称为函数的单向性,称H(m)为单向散列函为单向散列函数;数; 散列函数具有防伪造性(又称弱抗冲突性),即已知散列函数具有防伪造性(又称弱抗冲突性),即已知m,找出找出m(mm)使得使得H(m)=H(m)在计算上是不可行的;在计算上是不可行的; 散列函数具有很好的抵抗攻击的能力(又称强抗冲突散列函数具有很好的抵抗攻击的能力(又称强抗冲突性),即找出任意两个不同的输入性),即找出任意两个不同的输入x、y,使得,使得H(y)=H(x)在计算上是不可行的。在计算上是不可行的。http:/http:/单向散列函数的性质和种类v提示:强抗

20、冲突性自然包含弱抗冲突性。提示:强抗冲突性自然包含弱抗冲突性。v第第和第和第个条件给出了散列函数无碰撞性的个条件给出了散列函数无碰撞性的概念,如果散列函数对不同的输入可产生相同概念,如果散列函数对不同的输入可产生相同的输出,则称该函数具有碰撞性的输出,则称该函数具有碰撞性collision。v常见的单向散列函数有常见的单向散列函数有MD5和和SHA-1,散列函,散列函数的安全性主要来源于它的单向性。数的安全性主要来源于它的单向性。http:/http:/散列函数算法被破解的含义vMD5的散列码长度是的散列码长度是128比特,而比特,而SHA-1的散列的散列码长度是码长度是160比特。近年来有报

21、道称已可以在比特。近年来有报道称已可以在24小时内找到小时内找到MD5的一个冲突,使得的一个冲突,使得MD5对于不对于不同的输入有相同的输出结果,因此说同的输入有相同的输出结果,因此说MD5算法算法已经被破解。已经被破解。v注意:注意:说说MD5算法被破解,只是说可以通过密算法被破解,只是说可以通过密文找到与明文有相同散列值的一个碰撞,而绝文找到与明文有相同散列值的一个碰撞,而绝不是说可以将不是说可以将MD5算法加密的密文还原成明文。算法加密的密文还原成明文。 http:/http:/2.7.2 对散列函数的攻击 v由于单向散列函数接受的输入长度是任意的,由于单向散列函数接受的输入长度是任意的

22、,而它的输出长度是固定值,因此单向散列函数而它的输出长度是固定值,因此单向散列函数将带来数据的压缩,单向散列函数肯定会存在将带来数据的压缩,单向散列函数肯定会存在碰撞的可能。碰撞的可能。v如果用单向散列函数对消息求散列值,是不希如果用单向散列函数对消息求散列值,是不希望发生碰撞的,否则攻击者可以把消息修改成望发生碰撞的,否则攻击者可以把消息修改成特定的模式,使其和原始消息具有相同的散列特定的模式,使其和原始消息具有相同的散列值,而用户却无法通过计算散列值发现数据已值,而用户却无法通过计算散列值发现数据已经被修改经被修改 v因此散列函数又被称为因此散列函数又被称为数字指纹数字指纹,就是说一般,就

23、是说一般每个不同的消息都有其独特的散列值。每个不同的消息都有其独特的散列值。 http:/http:/两类生日攻击v对单向散列函数的攻击是指找到散列函数对不对单向散列函数的攻击是指找到散列函数对不同输入的碰撞,这称为生日攻击,它包括两类,同输入的碰撞,这称为生日攻击,它包括两类,分别对应攻击散列函数的弱抗冲突性和强抗冲分别对应攻击散列函数的弱抗冲突性和强抗冲突性突性 v1. 第第类生日攻击类生日攻击v2. 第第类生日攻击(基于生日悖论)类生日攻击(基于生日悖论)http:/http:/第类生日攻击 v已知一散列函数已知一散列函数H有有n个可能的输出,个可能的输出,H(x)是一是一个特定的输出,

24、如果对个特定的输出,如果对H随机取随机取k个输入,则至个输入,则至少有一个输入少有一个输入y使得使得H(y)=H(x)的概率为的概率为0.5时,时,k有多大?有多大?v由由(1+x)k1+kx,其中,其中|x|1,可得,可得1-1-1/nk1-1-k/n=k/nv 若使上述概率等于若使上述概率等于0.5,则,则k=n/2。特别地,如。特别地,如果果H的输出为的输出为m比特长,即可能的输出个数比特长,即可能的输出个数n=2m,则则k=2m-1 http:/http:/第类生日攻击(基于生日悖论)v生日悖论是指:任意找生日悖论是指:任意找23个人,则他们中有两个人,则他们中有两个人生日相同的概率会

25、大于个人生日相同的概率会大于50%,如果有,如果有30人,人,则此概率大约为则此概率大约为70%,这比我们凭感觉认为的,这比我们凭感觉认为的概率要大得多,因此称为生日悖论。概率要大得多,因此称为生日悖论。v设散列函数设散列函数H有有2m个可能的输出(即输出长为个可能的输出(即输出长为m比特),如果比特),如果H的的k个随机输入中至少有两个产个随机输入中至少有两个产生相同输出的概率大于生相同输出的概率大于0.5,则,则k=2m/2。称寻找函。称寻找函数数H的具有相同输出的两个任意输入的攻击方式的具有相同输出的两个任意输入的攻击方式为第为第类生日攻击。类生日攻击。 http:/http:/两类生日

26、攻击的难度比较v可看出第可看出第类生日攻击比第类生日攻击比第类生日攻击容易,类生日攻击容易,因为它只需要寻找因为它只需要寻找2m/2个输入。因此抵抗第个输入。因此抵抗第类类生日攻击(对应强抗冲突性)比抵抗第生日攻击(对应强抗冲突性)比抵抗第类生类生日攻击(对应弱抗冲突性)要难。日攻击(对应弱抗冲突性)要难。v例子:针对散列函数的第例子:针对散列函数的第类生日攻击的方法类生日攻击的方法 http:/http:/散列函数的设计及MD5算法v一个好的散列函数的设计有一些基本原则:一个好的散列函数的设计有一些基本原则:v1)对不同的输入,要尽量不产生相同的散列值)对不同的输入,要尽量不产生相同的散列值

27、(抗冲突性抗冲突性)。)。v2)两个明文即使只有微小的差别(如只有一位)两个明文即使只有微小的差别(如只有一位不同),它们的散列值也会有很多位都发生变不同),它们的散列值也会有很多位都发生变化(化(扩散性扩散性),这样根本不能从散列值看出两),这样根本不能从散列值看出两个明文的相似性。个明文的相似性。v3)将明文的长度信息记录在散列值中将明文的长度信息记录在散列值中,这样可,这样可以更好的防止冲突以更好的防止冲突 http:/http:/MD5散列算法http:/http:/散列函数的分类 v1)带秘密密钥的)带秘密密钥的Hash函数函数:消息的散列值由:消息的散列值由只有通信双方知道的秘密密钥只有通信双方知道的秘密密钥K来控制。此时,来控制。此时,散列码称作散列码称作MAC(Message Authentication Code,消息认证码),消息认证码) 原文消息摘要MACHash函数密钥密钥khttp:/http:/消息认证码的实现vMAC的实现的一个简单方法是先对消息求散列的实现的一个简单方法是先对消息求散列值,再用一个对称

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论