网络信息安全-第3章认证与数字签名(下)课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《网络信息安全-第3章认证与数字签名(下)课件.ppt》由用户(ziliao2023)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络 信息 安全 认证 数字签名 课件
- 资源描述:
-
1、第第3 3章章 认证与数字签名认证与数字签名(下)(下)信息安全系信息安全系主要内容主要内容v认证基本概念认证基本概念 v身份认证身份认证 v消息认证消息认证v数字签名数字签名 没有消息认证的通信系统是极为危险的没有消息认证的通信系统是极为危险的 需求需求1.1.泄密:泄密:将消息透露给没有合法秘密钥的任何人或程序。将消息透露给没有合法秘密钥的任何人或程序。2.2.传输分析:传输分析:分析通信双方的通信模式,如连接频率,时间等分析通信双方的通信模式,如连接频率,时间等3.3.伪装:伪装:攻击者产生一条消息并声称来自某合法实体攻击者产生一条消息并声称来自某合法实体4.4.内容修改:内容修改:对消
2、息进行插入、删除、转化、修改对消息进行插入、删除、转化、修改5.5.顺序修改:顺序修改:对消息顺序进行插入、删除、重新排序对消息顺序进行插入、删除、重新排序6.6.计时修改:计时修改:对消息的延时和重放对消息的延时和重放7.7.发送方否认发送方否认8.8.接受方否认接受方否认v对付对付1 1、2 2可用加密;可用加密;v对付对付3 3、4 4、5 5、6 6可用消息认证;可用消息认证;v对付对付7 7、8 8可用数字签名可用数字签名消息认证消息认证(Message Authentication)(Message Authentication)v消息认证用于抗击主动攻击消息认证用于抗击主动攻击v
3、验证接收消息的真实性和完整性验证接收消息的真实性和完整性v真实性真实性的确是由所声称的实体发过来的的确是由所声称的实体发过来的v完整性完整性未被篡改、插入和删除未被篡改、插入和删除v验证消息的顺序性和时间性(未重排、重放验证消息的顺序性和时间性(未重排、重放和延迟)和延迟)消息认证的基本概念消息认证的基本概念v认证符认证符:一个用来认证消息的值。由消息的:一个用来认证消息的值。由消息的发送方产生认证符,并传递给接收方。发送方产生认证符,并传递给接收方。v认证函数认证函数:产生认证符的函数,认证函数实:产生认证符的函数,认证函数实际上代表了一种产生认证符的方法。际上代表了一种产生认证符的方法。消
4、息加密函数消息加密函数消息认证码消息认证码HashHash函数函数消息加密函数消息加密函数v对消息的自身加密所得到的密文,可以作为对消息的自身加密所得到的密文,可以作为一个认证的度量。一个认证的度量。v消息认证符:消息认证符:用完整信息的密文作为对信息用完整信息的密文作为对信息鉴别的认证符。鉴别的认证符。v既可以使用对称加密模式,也可以使用公钥既可以使用对称加密模式,也可以使用公钥加密模式作为消息加密函数,两者有所不同。加密模式作为消息加密函数,两者有所不同。消息加密函数消息加密函数-在对称加密体制下在对称加密体制下v在对称加密体制下,发送者在对称加密体制下,发送者A A和接收者和接收者B B
5、双方共同拥有密钥,双方共同拥有密钥,A A把加密过的信息传送给把加密过的信息传送给B B,如上图所示。如上图所示。v由于攻击者不知道密钥由于攻击者不知道密钥K K,他也就不知道如何改变密文中的,他也就不知道如何改变密文中的信息位才能在明文中产生预期的改变。信息位才能在明文中产生预期的改变。v因此,接收方因此,接收方B B只要能顺利解出明文,就知道信息在中途没只要能顺利解出明文,就知道信息在中途没有被人更改过。可以根据解密后的明文是否具有合理的语法有被人更改过。可以根据解密后的明文是否具有合理的语法结构来进行消息认证。结构来进行消息认证。MEKEK(M)DKM消息加密函数消息加密函数-在对称加密
6、体制下在对称加密体制下v问题:问题:但有时发送的明文本身并没有明显的语法结构或特征,但有时发送的明文本身并没有明显的语法结构或特征,例如二进制文件,因此很难确定解密后的消息就是明文本身。例如二进制文件,因此很难确定解密后的消息就是明文本身。v为了解决这个问题,要求明文具有某种易于识别的结构,并为了解决这个问题,要求明文具有某种易于识别的结构,并且不通过加密函数是无法重复这个结构的。且不通过加密函数是无法重复这个结构的。v最简单的办法是在加密前对消息附加一个最简单的办法是在加密前对消息附加一个错误检测码错误检测码FCSFCS,或称帧校验序列、校验和。或称帧校验序列、校验和。MEKEK(M)DKM
7、根据明文根据明文M M和公开的函数和公开的函数F F产生产生FCSFCS。把把M M和和FCSFCS合在一起加密,并传输。合在一起加密,并传输。接收端把密文解密,得到接收端把密文解密,得到M M。根据得到的根据得到的M M,按照,按照F F计算计算FCSFCS,并与接收到的,并与接收到的FCSFCS比较是否相比较是否相等。等。注:注:如果攻击者修改了密文,则接收者计算出来的如果攻击者修改了密文,则接收者计算出来的FCSFCS与其收与其收到的到的FCSFCS将无法匹配。将无法匹配。MFFMFCS比较EK|()KEMF MDKMFCS内部错误控制内部错误控制v这里,加密函数和这里,加密函数和F函数
8、的执行顺序非常重要。函数的执行顺序非常重要。v由于函数由于函数F是公开的,若先加密再计算是公开的,若先加密再计算FCS,则则攻击者可以构造具有正确错误控制码的消息,虽攻击者可以构造具有正确错误控制码的消息,虽然攻击者不知道解密后的明文,但可以造成混淆然攻击者不知道解密后的明文,但可以造成混淆并破坏通信。并破坏通信。()KEMMFFCSEK()KF EMDKM外部错误控制外部错误控制F比较()KEM消息加密消息加密-在公钥加密体制下在公钥加密体制下v发送方发送方A A用接收方用接收方B B的公钥对消息加密,然后的公钥对消息加密,然后传输给传输给B B。vB B用自己的私钥解密。用自己的私钥解密。
9、MEKUbEKUb(M)DKRbMAB消息加密消息加密-在公钥加密体制下在公钥加密体制下v由于大家都知道由于大家都知道B B的公钥,任何人都可以向的公钥,任何人都可以向B B发送消发送消息,所以息,所以B B无法确认消息的来源和内容的真实性。无法确认消息的来源和内容的真实性。v因此,这种方式因此,这种方式不提供认证,只提供加密。不提供认证,只提供加密。MEKUbEKUb(M)DKRbMI.I.普通加密普通加密AB消息加密消息加密-在公钥加密体制下在公钥加密体制下v发送方发送方A A用自己的私钥进行加密,然后传输给接收用自己的私钥进行加密,然后传输给接收方方B B。vB B用用A A的公钥解密。
10、的公钥解密。v如果如果B B能够用能够用A A的公钥解密,则说明该消息的确是由的公钥解密,则说明该消息的确是由A A发送的,且消息内容没有被篡改。发送的,且消息内容没有被篡改。MEKRaEKRa(M)DKUaMAB消息加密消息加密-在公钥加密体制下在公钥加密体制下v由于只有由于只有A A有用于产生有用于产生E EKRaKRa(M)(M)的密钥,所以此方法的密钥,所以此方法提供认证提供认证。v由于大家都有由于大家都有K KUaUa ,所以此方法,所以此方法不提供加密不提供加密。MEKRaEKRa(M)DKUaMII.II.认证和签名认证和签名AB消息加密消息加密-在公钥加密体制下在公钥加密体制下
11、v提供认证和加密提供认证和加密。v一次通信中要执行四次复杂的公钥算法,计算代价一次通信中要执行四次复杂的公钥算法,计算代价非常高。非常高。v所以,第二、三两种方法一般在认证时极少应用。所以,第二、三两种方法一般在认证时极少应用。MEKRaEKRa(M)DKUaMIII.III.加密认证和签名加密认证和签名ABEKUbEKUb(EKRa(M)DKRbEKRa(M)消息认证码消息认证码(MAC)(MAC)vMessage Authenticaion CodeMessage Authenticaion Code,也称为,也称为报文报文鉴别码或是消息鉴别码鉴别码或是消息鉴别码。v消息认证码是消息和密钥
12、的公开函数,它产消息认证码是消息和密钥的公开函数,它产生定长的值,以该值作为认证符。生定长的值,以该值作为认证符。v这种这种机制的核心机制的核心是一个类似于加密的算法是一个类似于加密的算法C CK K。该算法需要使用一个密钥,并以需要认证的该算法需要使用一个密钥,并以需要认证的消息作为输入,算法的输出值是一个较短的消息作为输入,算法的输出值是一个较短的定长数据分组,也就是定长数据分组,也就是MACMAC,即:,即:MAC=CMAC=CK K(M M)消息认证码用于认证消息认证码用于认证vA A和和B B共享密钥共享密钥K KvA A计算计算MAC=CMAC=Ck k(M),(M),vM M和和
13、MACMAC一起发送到一起发送到B BvB B对收到的对收到的M M,计算,计算MACMAC,比较两个,比较两个MACMAC是否相同。是否相同。()KCMMCMACKC比较MKMAC如果两个如果两个MACMAC相等,则:相等,则:1.1.接收方可以相信消息未被修改,因为如果攻击者改变了消接收方可以相信消息未被修改,因为如果攻击者改变了消息,由于不知道息,由于不知道k k,无法生成正确的,无法生成正确的MACMAC。2.2.接收方可以相信消息的确来自确定的发送方。因为其他人接收方可以相信消息的确来自确定的发送方。因为其他人不能生成和原始消息相应的不能生成和原始消息相应的MACMAC。MACMAC
14、函数与加密函数的区别函数与加密函数的区别vMACMAC函数与加密函数类似,都需要明文、密钥和算函数与加密函数类似,都需要明文、密钥和算法的参与。法的参与。v而而两者的差别在于两者的差别在于:加密算法必须是:加密算法必须是可逆可逆的,对的,对其结果能够解密;而其结果能够解密;而MACMAC算法算法不要求可逆性不要求可逆性,甚至,甚至可以是一个单向函数。可以是一个单向函数。v例如:例如:使用使用100100比特的消息和比特的消息和1010比特的比特的MACMAC,那么,那么总共有总共有2 2100100个不同的消息,但仅有个不同的消息,但仅有2 21010个不同的个不同的MACMAC。也就是说,平
15、均每也就是说,平均每2 29090个消息使用的个消息使用的MACMAC是相同的。是相同的。消息认证码的基本用途消息认证码的基本用途v消息认证码消息认证码只提供消息认证,不提供保密性。只提供消息认证,不提供保密性。v若要提供保密性,可以结合加密体制,从而同时若要提供保密性,可以结合加密体制,从而同时提供消息认证和保密性:提供消息认证和保密性:M|CK1CMCK(M)K1比较EK2)(|12MCMEKKDK2ABA A和和B B共享共享K1K1和和K2K2K1K1:用于生成:用于生成MACMACK2K2:用于加密:用于加密与明文有关的认证与明文有关的认证消息认证码的基本用途消息认证码的基本用途v提
16、供消息认证和保密性:提供消息认证和保密性:ABA A和和B B共享共享K1K1和和K2K2K1K1:用于生成:用于生成MACMACK2K2:用于加密:用于加密与密文有关的认证与密文有关的认证M|CK1CK1比较EK2)(21MECKKDK2消息认证码的基本用途消息认证码的基本用途 问题:问题:为什么要专门找为什么要专门找MACMAC函数来提供认证,而不函数来提供认证,而不直接使用加密方法来提供认证呢?直接使用加密方法来提供认证呢?原因有三:原因有三:(1 1)信息加密主要是提供机密性而非真实性。)信息加密主要是提供机密性而非真实性。(2 2)加密计算的代价大,特别是当信息内容比较)加密计算的代
17、价大,特别是当信息内容比较长的时候,加密所占用的资源太多。长的时候,加密所占用的资源太多。(3 3)认证函数与加密函数的分离能提供功能上的)认证函数与加密函数的分离能提供功能上的灵活性。有时只需提供机密性,而不需要提供真灵活性。有时只需提供机密性,而不需要提供真实性;有时只需要真实性,不需要机密性。实性;有时只需要真实性,不需要机密性。基于基于DESDES的消息认证码的消息认证码v使用最广泛的使用最广泛的MACMAC算法之一:数据认证算法算法之一:数据认证算法v算法基于算法基于密文块链接密文块链接(CBCCBC)模式的)模式的DESDES算法,算法,计算数据认证码计算数据认证码DACDAC的的
18、过程如下过程如下:把需要认证的数据分成连续的把需要认证的数据分成连续的6464位的分组。位的分组。若最后一个分组不是若最后一个分组不是6464位,则填位,则填0 0利用利用DESDES加密算法加密算法E E和密钥和密钥K K,计算认证码。,计算认证码。112213321()()()()KKKNKNNOEDOEDOOEDOOEDODAC可以取整个可以取整个ON块,或者取为块,或者取为ON的最左的最左M个比特。个比特。DAC M-bits(16 to 64 bits)HashHash函数函数(杂凑函数、散列函数杂凑函数、散列函数)vHashHash的特点:的特点:与消息认证码一样与消息认证码一样,
19、hashhash函数的输入是长度可变的消息函数的输入是长度可变的消息M M,输出是固定大小的输出是固定大小的hashhash码码H(M)H(M),或称消息摘要,或称消息摘要(Message(Message Digest)Digest)、hashhash值。值。与消息认证码不同的是与消息认证码不同的是,hashhash码的产生过程中并不使用码的产生过程中并不使用密钥。密钥。HashHash码是所有消息的函数,改变消息的任何一位或多位,码是所有消息的函数,改变消息的任何一位或多位,都会导致都会导致hashhash码的改变。码的改变。HashHash算法通常是公开的。算法通常是公开的。又称为:哈希函
20、数、数字指纹(又称为:哈希函数、数字指纹(Digital finger print)Digital finger print)、压缩(压缩(Compression)Compression)函数、紧缩(函数、紧缩(Contraction Contraction)函数、)函数、数据鉴别码数据鉴别码DACDAC(Data authentication codeData authentication code)、篡改检)、篡改检验码验码MDC(Manipulation detection code)MDC(Manipulation detection code)h=H(M)h=H(M)v假定两次输入同
21、样的数据,那么散列函数应该能够假定两次输入同样的数据,那么散列函数应该能够生成相同的散列值。输入数据中的一位发生了变化,生成相同的散列值。输入数据中的一位发生了变化,会导致生成的散列值完全不一样。会导致生成的散列值完全不一样。v散列函数有个非常重要的特性为散列函数有个非常重要的特性为单向性单向性,也就是从,也就是从M M计算计算h h容易,而从容易,而从h h计算计算M M不可能。不可能。迭代型迭代型hashhash函数的一般结构函数的一般结构fffY0Y1YL-1bbbnnnnnIV=CV0CV1CVL-1CVL明文M被分为L个分组Y0,Y1,YL-1b:明文分组长度n:输出hash长度CV
22、:各级输出,最后一个输出值是hash值无碰撞压缩函数f是设计的关键迭代型迭代型hashhash函数函数v这种结构的这种结构的hashhash函数已被证明是合理的,如果采用函数已被证明是合理的,如果采用其他结构,不一定安全。其他结构,不一定安全。v设计新的设计新的hashhash函数只是改进这种结构,或者增加函数只是改进这种结构,或者增加hashhash码长。码长。v算法的核心技术算法的核心技术是设计无碰撞的压缩函数是设计无碰撞的压缩函数f f,而敌,而敌手对算法的攻击重点是手对算法的攻击重点是f f的内部结构,由于的内部结构,由于f f和分组和分组密码一样是由若干轮处理过程组成,所以对密码一样
23、是由若干轮处理过程组成,所以对f f的攻的攻击需通过对各轮之间的位模式的分析来进行,分析击需通过对各轮之间的位模式的分析来进行,分析过程常常需要先找出过程常常需要先找出f f的碰撞。由于的碰撞。由于f f是压缩函数,是压缩函数,其碰撞是不可避免的,其碰撞是不可避免的,因此在设计因此在设计f f时就应保证找时就应保证找出其碰撞在计算上是不可行的出其碰撞在计算上是不可行的。MD5 hashMD5 hash算法算法MD5 Hash AlgorithmMD5 Hash Algorithm MD4MD4是是MD5MD5杂凑算法的前身,由杂凑算法的前身,由Ron RivestRon Rivest于于199
24、01990年年1010月作为月作为RFCRFC提出,提出,19921992年年4 4月公布的月公布的MD4MD4的改进(的改进(RFC RFC 13201320,13211321)称为)称为MD5MD5。MD5MD5的算法框图的算法框图v输入消息可任意长,压缩后输出为输入消息可任意长,压缩后输出为128bits128bits。算法步骤算法步骤(1)(1)分组填充分组填充 消息100064bit消息长度填充图样L512bitKbitv如果消息长度大于如果消息长度大于2 26464,则取其对,则取其对2 26464的模。的模。v执行完后,消息的长度为执行完后,消息的长度为512512的倍数(设为的
25、倍数(设为L L倍),则可将消倍),则可将消息表示为分组长为息表示为分组长为512512的一系列分组的一系列分组Y Y0 0,Y Y1 1,Y YL-1L-1,而每,而每一分组又可表示为一分组又可表示为1616个个3232比特比特长的字,这样消息中的总字数长的字,这样消息中的总字数为为N=LN=L1616,因此消息又可按字表示为,因此消息又可按字表示为M0,M0,N-1,N-1。算法步骤算法步骤(2)(2)缓冲区初始化缓冲区初始化 hashhash函数的中间结果和最终结果保存于函数的中间结果和最终结果保存于128128位位的缓冲区中,缓冲区用的缓冲区中,缓冲区用3232位位的寄存器表示。可的寄
展开阅读全文