ch报文鉴别技术课件_第1页
ch报文鉴别技术课件_第2页
ch报文鉴别技术课件_第3页
ch报文鉴别技术课件_第4页
ch报文鉴别技术课件_第5页
已阅读5页,还剩125页未读 继续免费阅读

下载本文档

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

文档简介

与消息鉴别和数字签名有关的问题也许是网络安全中最易引起混淆的领域,攻击和抗攻击对策的发展呈螺旋式。值得庆幸的是,不像那些古老的天文学家,今天的密码协议的设计者是在完全合理的模型上来进行研究的。与消息鉴别和数字签名有关的问题也许是网络安全中最易引起混淆的1第九讲消息鉴别当Bob从Alice那里接收消息时,他怎么知道消息是可信的呢?第九讲消息鉴别当Bob从Alice那里接收消息时,他怎么知2在应用环境中,用户通过网络传输大量的报文(或称消息),出于安全性考虑,必须对消息或报文的有效性和合法性进行鉴别或认证。因为网络中的攻击者很可能通过对正在传输的消息或报文进行攻击(伪造、篡改、删除等),来达到入侵系统的目的。

在应用环境中,用户通过网络传输大量的报3复习:网络通信环境中可能的攻击消息泄密和传输分析——被动攻击伪造、伪装和篡改顺序修改和及时修改行为抵赖主动攻击复习:网络通信环境中可能的攻击消息泄密和传输分析——被动攻击4针对保密性的攻击信息泄密和传输分析防止信息泄漏的最有效的措施是加强消息和报文的保密性,这可通过加密手段来实现。针对保密性的攻击信息泄密和传输分析5伪造和篡改:伪装、伪造消息、内容篡改、顺序篡改、计时篡改。防范信息伪造和篡改的一般方法是消息鉴别技术。针对完整性的攻击伪造和篡改:伪装、伪造消息、内容篡改、顺序篡改、计时篡改。针6针对抗否认性的攻击行为抵赖:发送端否认、接收端否认。数字签名机制提供了一种抗否认性,通常情况下,数字签名技术也具有防止信息伪造和篡改的能力。针对抗否认性的攻击行为抵赖:发送端否认、接收端否认。7信息和网络安全中另一个重要领域是消息鉴别以及相关的数字签名技术。消息鉴别技术用于防范信息伪造和篡改。数字签名机制提供了一种抗否认性。消息(报文)鉴别提供了一种证实收到的报文来自可信的源点且未被篡改的过程,它也可证实序列编号和及时性。消息(报文)鉴别信息和网络安全中另一个重要领域是消息鉴别以及相关的数字签名技8消息鉴别系统消息鉴别系统需要提供某种报文鉴别函数f来产生一个鉴别符或鉴别代码,用于实现报文鉴别。鉴别符是一个根据消息或报文计算出来的值,源端和目的端利用消息鉴别函数f来进行报文鉴别。消息鉴别系统消息鉴别系统需要提供某种报文鉴别函数f来产生一9报文Mf()鉴别函数报文M鉴别符报文M’鉴别符f()比较鉴别结果传输路径鉴别过程示意图报文f()鉴别函数报文报文f()比较鉴别结果传输路径10鉴别函数分类根据鉴别符的生成方式,鉴别函数可以分为以下几类:基于报文加密方式的函数:以整个报文的密文作为鉴别符;报文鉴别码(MAC)方式;散列函数方式:采用一个公共散列函数,将任意长度的报文映射为一个定长的散列值,并以散列值作为鉴别符。鉴别函数是决定鉴别系统特征的主要因素。鉴别函数分类根据鉴别符的生成方式,鉴别函数可以分为以下几类:11本讲主要内容鉴别函数基于报文加密方式的函数 对称密钥密码 公钥密码报文鉴别码散列函数散列函数报文鉴别本讲主要内容鉴别函数12基于对称密钥加密方式的报文鉴别1、对称密钥加密方式提供的保密和报文鉴别功能

接收端B发送端A网络报文M加密E()EK(M)密钥K解密D()密钥K报文M基于对称密钥加密方式的报文鉴别1、对称密钥加密方式提供的保密13由于消息M的内容对于终点B来说是未知的,例如:二进制形式的电话录音B如何用自动化的方法来判断收到的密文的合法性?讨论由于消息M的内容对于终点B来说是未知的,例如:讨论14强制明文具有某种结构,这种结构易于识别,不能被复制,并且是不依赖于加密的。例如:可以在加密前对每个消息附加一个错误检测码(校验和),如下图所示。解决方法强制明文具有某种结构,这种结构易于识别,不能被复制,并且是不15附加报文鉴别结构注意:校验码的生成和加密函数执行的顺序是至关重要的。校验码必须被作为内部的差错控制,在加密之前附加到明文上,才能提供鉴别功能。接收端B发送端AMF(M)网络报文M加密E()EK[M|F(M)]密钥KF()MF(M)比较解密D()密钥KF()鉴别结果附加报文鉴别结构注意:校验码的生成和加密函数执行的顺序是至关16讨论事实上,再要发送的消息中加入任何类型的结构信息都会增强认证能力。如TCP/IP的报头信息。收发双方共享密钥,暗示通信之前必须生成会话密钥并分配之,有没有更好的解决办法?一个很自然的想法是采用公钥加密机制代替对称密钥加密机制。讨论事实上,再要发送的消息中加入任何类型的结构信息都会增强认172、基于公钥加密方式的报文鉴别在公开密钥体系结构中,直接使用非对称密钥加密方式只能提供保密,而不能提供鉴别功能。因为:任何人均可以使用B的公开密钥来加密报文,而假称报文是发自A的,终点B无法断定消息的发送者。ABZEPKB(M)||IDA2、基于公钥加密方式的报文鉴别在公开密钥体系结构中,直接使用18为了提供鉴别功能,源点A可以使用其私有密钥KRa报文文进行加密,而终点B使用A的公开密钥KUa进行解密。注意:上述方案不提供保密性。只要拥有A的公开密钥,任何人都能对该密文进行解密。复习:用公钥密码实现鉴别为了提供鉴别功能,源点A可以使用其私有密钥KRa报文文进行加19复习:保密性+签名以下方法既提供保密性又提供鉴别功能:发端:收端:复习:保密性+签名以下方法既提供保密性又提供鉴别功能:20存在的问题但是,这种既提供保密性又提供数字签名的方法,一次通信中要执行四次复杂的公钥算法。即使不提供保密性,也要用公钥算法对整个消息进行加密。存在的问题但是,这种既提供保密性又提供数字签名的方法,一次通21本讲主要内容鉴别函数基于报文加密方式的函数 对称密钥密码 公钥密码报文鉴别码散列函数散列函数报文鉴别本讲主要内容鉴别函数22采用报文鉴别码MAC的鉴别方式

报文鉴别码(messageauthenticationcode,MAC),也叫“消息认证码”MAC=CK(M)函数CK()需要使用一个共享的密钥K作为参数,并以变长的报文内容M作为输入,其输出MAC是一个定长的短分组。采用报文鉴别码MAC的鉴别方式报文鉴别码(message23使用消息鉴别码发送端在发送消息报文时,将计算出来的MAC附加在报文中传输。接收者通过重新计算MAC来对报文进行合法性的鉴别。使用方式:基本的:消息为明文方式保密的:消息为密文方式使用消息鉴别码发送端在发送消息报文时,将计算出来的MAC附241、基本的MAC报文鉴别接收端B发送端AMMAC网络报文M密钥KC()MMAC比较密钥KC()鉴别结果1、基本的MAC报文鉴别接收端B发送端A网络报文密钥KC(25计算MAC的密钥K只有A和B共享。攻击者若要更改报文必须同时更改MAC但由于攻击者不知道密钥K,故他不可能计算出一个与更改后的报文相对应的MAC值。若接收者B计算出相同的MAC,便能确信:报文未被修改;报文M是来自发送者A的;如果报文含有序号,顺序也是正确的。说明计算MAC的密钥K只有A和B共享。说明26一种计算MAC

的方法基于DES的MAC算法是应用最广泛的。采用密码分组连接(CBC)方式的迭代算法。被鉴别的报文数据被划分为连续的64比特的分段:D1,D2,…,DN,必要时对DN填充。

以0为初始值。DES()KD1O0=0DES()KD2O1DES()KDNON-1ON…MAC一种计算MAC的方法基于DES的MAC算法是应用最广泛的。27算法说明算法的表示O0=0Oi=EK(Di

Oi-1)i=1,2,…,N,K为56位的密钥MAC=ON=EK(DN

ON-1)数据鉴别代码MAC:算法的最终输出ON,或ON最左边的M比特构成(16≤M≤64)。注意:在这里,DES算法并没有用于对数据保密,而是用于计算MAC。算法说明算法的表示282、保密的MAC消息鉴别

——MAC与明文有关接收端B发送端AMMAC网络报文MK1C()MMAC比较K1C()鉴别结果K2EDK22、保密的MAC消息鉴别

——MAC与明文有关接收端B发送端293、保密的MAC消息鉴别

——MAC与密文有关接收端B发送端AMMAC网络报文MK1C()MMAC比较K1C()K2EDK2报文M鉴别结果3、保密的MAC消息鉴别

——MAC与密文有关接收端B发送端30消息鉴别码的安全性分析MAC函数的构造特性对MAC进行攻击的重点安全的MAC函数的特性消息鉴别码的安全性分析MAC函数的构造特性31MAC的构造特性MAC函数是一个多对一的函数。即报文空间>MAC空间例如:假定100位消息,10位MAC,5位密钥定义域:2100种不同消息;值域:210种不同的MAC;平均而言,同一MAC可由2100/210=290条不同消息产生;同一消息可能得到25=32种不同的MAC值。而实际上,定义域是有任意长的消息组成。MAC的构造特性MAC函数是一个多对一的函数。即32对MAC进行攻击的重点可以证明,由于MAC函数的构造特性,与加密相比,MAC函数更不易被攻破。因此攻击的重点不是获取鉴别密钥,而是利用MAC的构造特性来发送一些欺骗性的报文,对接收端造成破坏。对MAC进行攻击的重点可以证明,由于MAC函数的构造特性,与33安全的MAC函数的特性在设计MAC函数的时候,该使其满足如下特性:假定攻击者窃取到报文M即MAC,但他在伪造报文M’使CK(M’)=CK(M)在计算上是不可行的。CK(M)函数的值域空间应该是均匀分布的。对报文M进行某种已知变换后,其MAC值相等的概率很小。安全的MAC函数的特性在设计MAC函数的时候,该使其满足如下34讨论MAC函数与加密函数的区别在哪里?(见后页)既然加密可以提供认证,为什么还要使用MAC?将加密与认证分离,有些场合只关心认证,而不关心保密性。MAC能够提供数字签名?不能,因为收发双方共享密钥。能不能在没有共享密钥的情况下,也能进行对消息的真实性进行鉴别?可以,用散列函数讨论MAC函数与加密函数的区别在哪里?(见后页)35MAC函数与加密函数的比较相同点都需要一个共享密钥不同点加密函数必须是可逆的;MAC函数可以是一个单向函数。从定义域到值域,加密是一一对应函数;而MAC是多对一函数。从攻击来看,针对加密的是企图恢复明文或密钥;而针对MAC的是企图找到一个“碰撞”。MAC函数与加密函数的比较相同点36本讲主要内容基于报文加密方式的函数 对称密钥密码 公钥密码报文鉴别码散列函数报文鉴别本讲主要内容基于报文加密方式的函数37单向散列(hash)函数

单向散列函数实际上是消息鉴别码MAC的一种变形。与MAC类似,一个散列函数H()以一个变长消息报文M作为其输入,产生一个固定长度的H(M)——散列码。与MAC不同,计算散列码并不使用密钥。散列码H(M)有时也称为消息(报文)摘要。单向散列(hash)函数单向散列函数实际上是消息鉴别码MA38散列码与消息的关系散列码是报文中所有比特的函数值,并具有差错检测能力。即:报文中任意内容的变化将导致散列码的改变。散列码与消息的关系散列码是报文中所有比特的函数值,并具有差错39散列码的基本用途散列码的基本用途40散列函数的基本用途-1加密消息及hash码提供保密性鉴别,H(M)受密码保护散列函数的基本用途-1加密消息及hash码41散列函数的基本用途-2加密hash码——共享的密钥提供鉴别,H(M)受密码保护散列函数的基本用途-2加密hash码——共享的密钥42散列函数的基本用途-3加密hash码——发送方私钥提供鉴别,H(M)受密码保护,数字签名,只有A能产生EKRA[H(M)]散列函数的基本用途-3加密hash码——发送方私钥43散列函数的基本用途-4加密用途3的结果——共享的密钥提供鉴别数字签名提供保密性,只有A和B共享密钥K散列函数的基本用途-4加密用途3的结果——共享的密钥44散列函数的基本用途-5计算消息和秘密值的hash码提供鉴别,只有A和B共享S散列函数的基本用途-5计算消息和秘密值的hash码45散列函数的基本用途-6加密用途5的结果提供认证,只有A和B共享S;保密性,只有A和B共享K散列函数的基本用途-6加密用途5的结果46散列函数的安全性分析散列函数的性质安全性分析散列函数的安全性分析散列函数的性质47散列函数的性质

散列函数可以用以生成文件、消息、报文或其它数据的特征“指纹”。若要将散列算法用于报文鉴别,必须具有如下性质:散列函数的性质散列函数可以用以生成文件、消息、报文或其它数48散列函数的性质

基本性质,即任何散列函数都必须满足的:散列函数H()的输入可以是任意大小的数据块;散列函数H()的输出是定长的;对任何给定的输入M,H(M)函数的计算需要相对简单,用硬件和软件均可实现。散列函数的性质基本性质,即任何散列函数都必须满足的:49散列函数的性质

其他性质:单向性:对任意散列码值h,要寻找一个M,使H(M)=h在计算上是不可行的。弱抗冲突(碰撞)性:对任何给定的报文M,要寻找不等于M的报文M1使H(M1)=H(M),在计算上是不可行的。强抗冲突(碰撞)性:要找到两个报文M和N使H(M)=H(N),在计算上是不可行的。散列函数的性质其他性质:50散列函数安全性散列码抗击强行攻击的强度仅依赖于算法产生的散列码的长度。对于一个长度为m的散列码,有效的数量级分别为:针对单向性:2m;针对弱抗冲突性:2m;针对强抗冲突性:2m/2。散列函数安全性散列码抗击强行攻击的强度仅依赖于算法产生的散列51结论通常在设计安全散列函数时都希望使用强抗冲突算法。散列码的长度是抗击强行攻击能力的主要因素。结论通常在设计安全散列函数时都希望使用强抗冲突算法。52散列码的构造散列码的构造53构造散列函数时采用的一般性原则对输入进行划分,即首先将报文数据划分为若干n比特的定长分组B1,B2,…,Bm,必要时需对数据进行填充,使其长度为n比特的整数倍。计算散列值时,采用迭代方式每次处理一个数据分组Bi,最终产生一个n比特的散列值。构造散列函数时采用的一般性原则对输入进行划分,即首先将报文数54一类不太安全的散列函数散列函数的构造方式可以使任意的,只要满足散列函数的性质即可。例如:方法一: C=H(M)=B1⊕B2⊕…⊕Bm方法二:

C0=0 Ci=ROR(Ci-1)⊕Bi但是,由于容易构造另一消息M’,使C(M)=C(M’)因此这样的散列函数缺乏足够的安全性一类不太安全的散列函数散列函数的构造方式可以使任意的,只要满55一类用加密技术构造的散列函数

将报文M划分成固定长度的分组M1,M2,…,MN,采用类似DES加密的算法来计算散列码C:H0为初始值Hi=EMi(Hi-1)C=HN(散列码)这个算法不需要使用密钥,但容易受到所谓的“生日攻击”。一类用加密技术构造的散列函数将报文M划分成固定长度的分组M56生日攻击

生日悖论:在人数为k的一个人群中,至少两个人生日相同的概率是多少?结论:只要k=23,出现两个人生日相同的概率就超过0.5;k=41时,概率大于0.9。生日攻击生日悖论:在人数为k的一个人群中,至少两个人生日相57生日悖论推论推论:设整数随机变量服从1到n间的均匀分布,集合Y是包含k个这类随机变量的选集,当k=1.18n1/2时,出现一个重复元的概率>0.5。两个集合X和Y中均有k个元素。当k=0.83n1/2时,XY交集非空的概率>0.5。生日悖论推论推论:设整数随机变量服从1到n间的均匀分布,58生日攻击举例-1Alice准备一份合同的两种版本X和Y,X对Bob有利,而Y将使他破产。Alice对这两种版本的每一份都做一些细微的改变(如利用空格、回车等),分别产生232份不同的文件,并计算所有文件的散列值。X1H(X1)X2H(X2)X3H(X3)Y1H(Y1)Y2H(Y2)Y3H(Y3)……232份232份生日攻击举例-1Alice准备一份合同的两种版本X和Y,X对59Alice比较两种不同版本的文件的散列值集合,找到散列值相同的一组。根据生日悖论,成功的可能性大于0.5。Alice挑选出这一组,将其中的X传给Bob。Bob在对他有利的那份合同版本签名。在以后的某个时候,Alice用Bob未签名的合同代替他签过名的合同。现在他能使公证人员确信Bob签署过另一份合同。X1H(X1)X2H(X2)X3H(X3)Y1H(Y1)Y2H(Y2)Y3H(Y3)……232份232份Bob签名Alice公证Alice比较两种不同版本的文件的散列值集合,找到散列值相同60生日攻击举例-2将报文M划分成定长分组M1,M2,…,MN,

采用类似CBC算法计算散列码C:H0为初始值Hi=EMi(Hi-1)I=1,2,…,NC=HN(C就是最终散列码)攻击者截获一个报文M及签名C,他可以采用“中间符合”方式实现攻击

生日攻击举例-2将报文M划分成定长分组M1,M2,…,MN61利用上面的算法产生报文M的散列码CM;任意生成一个伪造报文Q,报文形式为Q1,Q2,…,QN-2,报文Q比原报文M少两个分组;对报文Q,计算HiQ=EQi(HQi-1),i=1,2,…,N-2,得到CQ=HQi-2生成2m/2个随机分组,对每个分组X,计算EX(CQ);另外生成2m/2个随机分组,对每个分组Y,计算DY(CM),其中D()是与E()对应的解密函数;根据生日悖论,有较高的概率找到X和Y,使EX(CQ)=DY(CM);在报文Q后面加上分组X和Y,构成报文Q1,Q2,…,QN-2,X,Y;这个报文的散列码等于CM,就可以与原报文的加密签名一起发送,欺骗接受者。利用上面的算法产生报文M的散列码CM;62安全散列算法的一般结构这个结构是一个迭代的散列函数,大多数安全散列函数都采用了该结构。将报文分为L个b比特的定长分组Y0,Y1,…,YL-1。其中最后一个分组需要填充至b位。最后一个分组包含了散列函数H()的输入总长度。包含长度值增加了攻击的难度。攻击者需要找到等长且散列值相等的报文。其搜索难度大大增加了。一般情况下,b>n,因此函数f()具有位数压缩的功能

安全散列算法的一般结构这个结构是一个迭代的散列函数,大多数安63迭代结构这种迭代结构所依据的数学基础是:如果该压缩函数f()是抗冲突的,那么f()的迭代函数合成值也是抗冲突的。因此该结构能够用于安全散列函数的构造。安全散列函数的设计问题变为了抗冲突的压缩函数的设计问题。对散列函数进行密码分析攻击的重点在于分析压缩函数的内部结构。攻击者需要通过尝试来寻找f()产生冲突的高效办法。同时,攻击者还必须考虑算法的初值IV。迭代结构这种迭代结构所依据的数学基础是:64常用的散列算法

MD5消息摘要算法可以一个任意长数据块作为输入,输入被划分成512位的数据块,输出一个128位的消息,即散列码摘要处理过程遵循安全散列算法的一般结构

SHA-1安全的散列算法

按照512位的分组进行处理输出160比特的报文摘要总体过程与MD5结构类似常用的散列算法MD5消息摘要算法65与消息鉴别和数字签名有关的问题也许是网络安全中最易引起混淆的领域,攻击和抗攻击对策的发展呈螺旋式。值得庆幸的是,不像那些古老的天文学家,今天的密码协议的设计者是在完全合理的模型上来进行研究的。与消息鉴别和数字签名有关的问题也许是网络安全中最易引起混淆的66第九讲消息鉴别当Bob从Alice那里接收消息时,他怎么知道消息是可信的呢?第九讲消息鉴别当Bob从Alice那里接收消息时,他怎么知67在应用环境中,用户通过网络传输大量的报文(或称消息),出于安全性考虑,必须对消息或报文的有效性和合法性进行鉴别或认证。因为网络中的攻击者很可能通过对正在传输的消息或报文进行攻击(伪造、篡改、删除等),来达到入侵系统的目的。

在应用环境中,用户通过网络传输大量的报68复习:网络通信环境中可能的攻击消息泄密和传输分析——被动攻击伪造、伪装和篡改顺序修改和及时修改行为抵赖主动攻击复习:网络通信环境中可能的攻击消息泄密和传输分析——被动攻击69针对保密性的攻击信息泄密和传输分析防止信息泄漏的最有效的措施是加强消息和报文的保密性,这可通过加密手段来实现。针对保密性的攻击信息泄密和传输分析70伪造和篡改:伪装、伪造消息、内容篡改、顺序篡改、计时篡改。防范信息伪造和篡改的一般方法是消息鉴别技术。针对完整性的攻击伪造和篡改:伪装、伪造消息、内容篡改、顺序篡改、计时篡改。针71针对抗否认性的攻击行为抵赖:发送端否认、接收端否认。数字签名机制提供了一种抗否认性,通常情况下,数字签名技术也具有防止信息伪造和篡改的能力。针对抗否认性的攻击行为抵赖:发送端否认、接收端否认。72信息和网络安全中另一个重要领域是消息鉴别以及相关的数字签名技术。消息鉴别技术用于防范信息伪造和篡改。数字签名机制提供了一种抗否认性。消息(报文)鉴别提供了一种证实收到的报文来自可信的源点且未被篡改的过程,它也可证实序列编号和及时性。消息(报文)鉴别信息和网络安全中另一个重要领域是消息鉴别以及相关的数字签名技73消息鉴别系统消息鉴别系统需要提供某种报文鉴别函数f来产生一个鉴别符或鉴别代码,用于实现报文鉴别。鉴别符是一个根据消息或报文计算出来的值,源端和目的端利用消息鉴别函数f来进行报文鉴别。消息鉴别系统消息鉴别系统需要提供某种报文鉴别函数f来产生一74报文Mf()鉴别函数报文M鉴别符报文M’鉴别符f()比较鉴别结果传输路径鉴别过程示意图报文f()鉴别函数报文报文f()比较鉴别结果传输路径75鉴别函数分类根据鉴别符的生成方式,鉴别函数可以分为以下几类:基于报文加密方式的函数:以整个报文的密文作为鉴别符;报文鉴别码(MAC)方式;散列函数方式:采用一个公共散列函数,将任意长度的报文映射为一个定长的散列值,并以散列值作为鉴别符。鉴别函数是决定鉴别系统特征的主要因素。鉴别函数分类根据鉴别符的生成方式,鉴别函数可以分为以下几类:76本讲主要内容鉴别函数基于报文加密方式的函数 对称密钥密码 公钥密码报文鉴别码散列函数散列函数报文鉴别本讲主要内容鉴别函数77基于对称密钥加密方式的报文鉴别1、对称密钥加密方式提供的保密和报文鉴别功能

接收端B发送端A网络报文M加密E()EK(M)密钥K解密D()密钥K报文M基于对称密钥加密方式的报文鉴别1、对称密钥加密方式提供的保密78由于消息M的内容对于终点B来说是未知的,例如:二进制形式的电话录音B如何用自动化的方法来判断收到的密文的合法性?讨论由于消息M的内容对于终点B来说是未知的,例如:讨论79强制明文具有某种结构,这种结构易于识别,不能被复制,并且是不依赖于加密的。例如:可以在加密前对每个消息附加一个错误检测码(校验和),如下图所示。解决方法强制明文具有某种结构,这种结构易于识别,不能被复制,并且是不80附加报文鉴别结构注意:校验码的生成和加密函数执行的顺序是至关重要的。校验码必须被作为内部的差错控制,在加密之前附加到明文上,才能提供鉴别功能。接收端B发送端AMF(M)网络报文M加密E()EK[M|F(M)]密钥KF()MF(M)比较解密D()密钥KF()鉴别结果附加报文鉴别结构注意:校验码的生成和加密函数执行的顺序是至关81讨论事实上,再要发送的消息中加入任何类型的结构信息都会增强认证能力。如TCP/IP的报头信息。收发双方共享密钥,暗示通信之前必须生成会话密钥并分配之,有没有更好的解决办法?一个很自然的想法是采用公钥加密机制代替对称密钥加密机制。讨论事实上,再要发送的消息中加入任何类型的结构信息都会增强认822、基于公钥加密方式的报文鉴别在公开密钥体系结构中,直接使用非对称密钥加密方式只能提供保密,而不能提供鉴别功能。因为:任何人均可以使用B的公开密钥来加密报文,而假称报文是发自A的,终点B无法断定消息的发送者。ABZEPKB(M)||IDA2、基于公钥加密方式的报文鉴别在公开密钥体系结构中,直接使用83为了提供鉴别功能,源点A可以使用其私有密钥KRa报文文进行加密,而终点B使用A的公开密钥KUa进行解密。注意:上述方案不提供保密性。只要拥有A的公开密钥,任何人都能对该密文进行解密。复习:用公钥密码实现鉴别为了提供鉴别功能,源点A可以使用其私有密钥KRa报文文进行加84复习:保密性+签名以下方法既提供保密性又提供鉴别功能:发端:收端:复习:保密性+签名以下方法既提供保密性又提供鉴别功能:85存在的问题但是,这种既提供保密性又提供数字签名的方法,一次通信中要执行四次复杂的公钥算法。即使不提供保密性,也要用公钥算法对整个消息进行加密。存在的问题但是,这种既提供保密性又提供数字签名的方法,一次通86本讲主要内容鉴别函数基于报文加密方式的函数 对称密钥密码 公钥密码报文鉴别码散列函数散列函数报文鉴别本讲主要内容鉴别函数87采用报文鉴别码MAC的鉴别方式

报文鉴别码(messageauthenticationcode,MAC),也叫“消息认证码”MAC=CK(M)函数CK()需要使用一个共享的密钥K作为参数,并以变长的报文内容M作为输入,其输出MAC是一个定长的短分组。采用报文鉴别码MAC的鉴别方式报文鉴别码(message88使用消息鉴别码发送端在发送消息报文时,将计算出来的MAC附加在报文中传输。接收者通过重新计算MAC来对报文进行合法性的鉴别。使用方式:基本的:消息为明文方式保密的:消息为密文方式使用消息鉴别码发送端在发送消息报文时,将计算出来的MAC附891、基本的MAC报文鉴别接收端B发送端AMMAC网络报文M密钥KC()MMAC比较密钥KC()鉴别结果1、基本的MAC报文鉴别接收端B发送端A网络报文密钥KC(90计算MAC的密钥K只有A和B共享。攻击者若要更改报文必须同时更改MAC但由于攻击者不知道密钥K,故他不可能计算出一个与更改后的报文相对应的MAC值。若接收者B计算出相同的MAC,便能确信:报文未被修改;报文M是来自发送者A的;如果报文含有序号,顺序也是正确的。说明计算MAC的密钥K只有A和B共享。说明91一种计算MAC

的方法基于DES的MAC算法是应用最广泛的。采用密码分组连接(CBC)方式的迭代算法。被鉴别的报文数据被划分为连续的64比特的分段:D1,D2,…,DN,必要时对DN填充。

以0为初始值。DES()KD1O0=0DES()KD2O1DES()KDNON-1ON…MAC一种计算MAC的方法基于DES的MAC算法是应用最广泛的。92算法说明算法的表示O0=0Oi=EK(Di

Oi-1)i=1,2,…,N,K为56位的密钥MAC=ON=EK(DN

ON-1)数据鉴别代码MAC:算法的最终输出ON,或ON最左边的M比特构成(16≤M≤64)。注意:在这里,DES算法并没有用于对数据保密,而是用于计算MAC。算法说明算法的表示932、保密的MAC消息鉴别

——MAC与明文有关接收端B发送端AMMAC网络报文MK1C()MMAC比较K1C()鉴别结果K2EDK22、保密的MAC消息鉴别

——MAC与明文有关接收端B发送端943、保密的MAC消息鉴别

——MAC与密文有关接收端B发送端AMMAC网络报文MK1C()MMAC比较K1C()K2EDK2报文M鉴别结果3、保密的MAC消息鉴别

——MAC与密文有关接收端B发送端95消息鉴别码的安全性分析MAC函数的构造特性对MAC进行攻击的重点安全的MAC函数的特性消息鉴别码的安全性分析MAC函数的构造特性96MAC的构造特性MAC函数是一个多对一的函数。即报文空间>MAC空间例如:假定100位消息,10位MAC,5位密钥定义域:2100种不同消息;值域:210种不同的MAC;平均而言,同一MAC可由2100/210=290条不同消息产生;同一消息可能得到25=32种不同的MAC值。而实际上,定义域是有任意长的消息组成。MAC的构造特性MAC函数是一个多对一的函数。即97对MAC进行攻击的重点可以证明,由于MAC函数的构造特性,与加密相比,MAC函数更不易被攻破。因此攻击的重点不是获取鉴别密钥,而是利用MAC的构造特性来发送一些欺骗性的报文,对接收端造成破坏。对MAC进行攻击的重点可以证明,由于MAC函数的构造特性,与98安全的MAC函数的特性在设计MAC函数的时候,该使其满足如下特性:假定攻击者窃取到报文M即MAC,但他在伪造报文M’使CK(M’)=CK(M)在计算上是不可行的。CK(M)函数的值域空间应该是均匀分布的。对报文M进行某种已知变换后,其MAC值相等的概率很小。安全的MAC函数的特性在设计MAC函数的时候,该使其满足如下99讨论MAC函数与加密函数的区别在哪里?(见后页)既然加密可以提供认证,为什么还要使用MAC?将加密与认证分离,有些场合只关心认证,而不关心保密性。MAC能够提供数字签名?不能,因为收发双方共享密钥。能不能在没有共享密钥的情况下,也能进行对消息的真实性进行鉴别?可以,用散列函数讨论MAC函数与加密函数的区别在哪里?(见后页)100MAC函数与加密函数的比较相同点都需要一个共享密钥不同点加密函数必须是可逆的;MAC函数可以是一个单向函数。从定义域到值域,加密是一一对应函数;而MAC是多对一函数。从攻击来看,针对加密的是企图恢复明文或密钥;而针对MAC的是企图找到一个“碰撞”。MAC函数与加密函数的比较相同点101本讲主要内容基于报文加密方式的函数 对称密钥密码 公钥密码报文鉴别码散列函数报文鉴别本讲主要内容基于报文加密方式的函数102单向散列(hash)函数

单向散列函数实际上是消息鉴别码MAC的一种变形。与MAC类似,一个散列函数H()以一个变长消息报文M作为其输入,产生一个固定长度的H(M)——散列码。与MAC不同,计算散列码并不使用密钥。散列码H(M)有时也称为消息(报文)摘要。单向散列(hash)函数单向散列函数实际上是消息鉴别码MA103散列码与消息的关系散列码是报文中所有比特的函数值,并具有差错检测能力。即:报文中任意内容的变化将导致散列码的改变。散列码与消息的关系散列码是报文中所有比特的函数值,并具有差错104散列码的基本用途散列码的基本用途105散列函数的基本用途-1加密消息及hash码提供保密性鉴别,H(M)受密码保护散列函数的基本用途-1加密消息及hash码106散列函数的基本用途-2加密hash码——共享的密钥提供鉴别,H(M)受密码保护散列函数的基本用途-2加密hash码——共享的密钥107散列函数的基本用途-3加密hash码——发送方私钥提供鉴别,H(M)受密码保护,数字签名,只有A能产生EKRA[H(M)]散列函数的基本用途-3加密hash码——发送方私钥108散列函数的基本用途-4加密用途3的结果——共享的密钥提供鉴别数字签名提供保密性,只有A和B共享密钥K散列函数的基本用途-4加密用途3的结果——共享的密钥109散列函数的基本用途-5计算消息和秘密值的hash码提供鉴别,只有A和B共享S散列函数的基本用途-5计算消息和秘密值的hash码110散列函数的基本用途-6加密用途5的结果提供认证,只有A和B共享S;保密性,只有A和B共享K散列函数的基本用途-6加密用途5的结果111散列函数的安全性分析散列函数的性质安全性分析散列函数的安全性分析散列函数的性质112散列函数的性质

散列函数可以用以生成文件、消息、报文或其它数据的特征“指纹”。若要将散列算法用于报文鉴别,必须具有如下性质:散列函数的性质散列函数可以用以生成文件、消息、报文或其它数113散列函数的性质

基本性质,即任何散列函数都必须满足的:散列函数H()的输入可以是任意大小的数据块;散列函数H()的输出是定长的;对任何给定的输入M,H(M)函数的计算需要相对简单,用硬件和软件均可实现。散列函数的性质基本性质,即任何散列函数都必须满足的:114散列函数的性质

其他性质:单向性:对任意散列码值h,要寻找一个M,使H(M)=h在计算上是不可行的。弱抗冲突(碰撞)性:对任何给定的报文M,要寻找不等于M的报文M1使H(M1)=H(M),在计算上是不可行的。强抗冲突(碰撞)性:要找到两个报文M和N使H(M)=H(N),在计算上是不可行的。散列函数的性质其他性质:115散列函数安全性散列码抗击强行攻击的强度仅依赖于算法产生的散列码的长度。对于一个长度为m的散列码,有效的数量级分别为:针对单向性:2m;针对弱抗冲突性:2m;针对强抗冲突性:2m/2。散列函数安全性散列码抗击强行攻击的强度仅依赖于算法产生的散列116结论通常在设计安全散列函数时都希望使用强抗冲突算法。散列码的长度是抗击强行攻击能力的主要因素。结论通常在设计安全散列函数时都希望使用强抗冲突算法。117散列码的构造散列码的构造118构造散列函数时采用的一般性原则对输入进行划分,即首先将报文数据划分为若干n比特的定长分组B1,B2,…,Bm,必要时需对数据进行填充,使其长度为n比特的整数倍。计算散列值时,采用迭代方式每次处理一个数据分组Bi,最终产生一个n比特的散列值。构造散列函数时采用的一般性原则对输入进行划分,即首先将报文数119一类不太安全的散列函数散列函数的构造方式可以使任意的,只要满足散列函数的性质即可。例如:方法一: C=H(M)=B1⊕B2⊕…⊕Bm方法二:

C0=0 Ci=ROR(Ci-1)⊕Bi但是,由于容易构造另一消息M’,使C(M)=C(M’)因此这样的散列函数缺乏足够的安全性一类不太安全的散列函数散列函数的构造方式可以使任意的,只要满120一类用加密技术构造的散列函数

将报文M划分成固定长度的分组M1,M2,…,MN,采用类似DES加密的算法来计算散列码C:H0为初始值Hi=EMi(Hi-1)C=HN(散列码)这个算法不需要使用密钥,但容易受到所谓的“生日攻击”。一类用加密技术构造的散列函数将报文M划分成固定长度的分组M121生日攻击

生日悖论:在人数为k的一个人群中,至少两个人生日相同的概率是多少?结论:只要k=23,出现两个人生日相同的概率就超过0.5;k=41时,概率大于0.9。生日攻击生日悖论:在人数为k的一个人群中,至少两个人生日相122生日悖论推论推论:设整数随机变量服从1到n间的均匀分布,集合Y是包含k个这类随机变量的选集,当k=1.18n1/2时,出现一个重复元的概率>0.5。两个集合X和Y中均有k个元素。当k=0.83n1/2时,XY

温馨提示

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

评论

0/150

提交评论