信息安全原理及应用第5章消息认证课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《信息安全原理及应用第5章消息认证课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信息 安全 原理 应用 消息 认证 课件
- 资源描述:
-
1、第5章 消息认证主要内容 消息认证基本概念消息认证基本概念 消息加密认证消息加密认证 消息认证码消息认证码 hash函数函数 概 念 认证(Authentication):即鉴别、确认,它是证实某事是否名副其实,或是否有效的一个过程。认证与加密的区别:加密用以确保数据的保密性,阻止对手的被动攻击,如截取、窃听。认证用以确保报文发送者和接受者的真实性以及保文的完整性,阻止对手的主动攻击,如冒充、篡改、重播等。认证往往是应用系统中安全保护的第一道防线,极为重要。基本思想 通过验证称谓者(人或事)的一个或多个参数的真实性和有效性,来达到验证称谓者是否名副其实的目的。常用的参数有:口令、标识符、密钥、
2、信物、智能卡、指纹、视网纹等。利用人的生理特征参数进行认证的安全性高,但技术要求也高,至今尚未普及。目前广泛应用的还是基于密码的认证技术。没有消息认证的通信系统是极为危险的 消息认证(Message Authentication)消息认证用于抗击主动攻击消息认证用于抗击主动攻击 验证接收消息的真实性和完整性验证接收消息的真实性和完整性 真实性真实性 的确是由所声称的实体发过来的的确是由所声称的实体发过来的 完整性完整性 未被篡改、插入和删除未被篡改、插入和删除 验证消息的顺序性和时间性(未重排、重验证消息的顺序性和时间性(未重排、重放和延迟)放和延迟)需求1.泄密:将消息透露给没有合法秘密钥的
3、任何人或程序。2.传输分析:分析通信双方的通信模式,如连接频率,时间等3.伪装:攻击者产生一条消息并声称来自某合法实体4.内容修改:对消息进行插入、删除、转化、修改5.顺序修改:对消息顺序进行插入、删除、重新排序6.计时修改:对消息的延时和重放7.发送方否认8.接受方否然对付1、2可用加密;对付3、4、5、6可用消息认证;对付7、8可用数字签名消息认证的基本概念 消息认证:验证所受到的消息确定是来自真正的发送方且未被修改过。认证符:一个用来认证消息的值。由消息的发送方产生认证符,并传递给接收方。认证函数:产生认证符的函数,认证函数实际上代表了一种产生认证符的方法。消息加密消息认证码Hash函数
4、消息加密-在对称加密体制下 由于攻击者不知道密钥K,他也就不知道如何改变密文中的信息位才能在明文中产生预期的改变。接收方可以根据解密后的明文是否具有合理的语法结构来进行消息认证。但有时发送的明文本身并名优明显的语法结构或特征,例如二进制文件,因此很难确定解密后的消息就是明文本身。MEKEK(M)DKM 根据明文M和公开的函数F产生FCS,即错误检测码,或帧校验序列,校验和。把M和FCS合在一起加密,并传输。接收端把密文解密,得到M。根据得到的M,按照F计算FCS,并与接收到的FCS比较是否相等。MFFMFCS比较EK|()KEMF MDKMFCS内部错误控制 攻击者可以构造具有正确错误控制码的
5、消息,虽然攻击者不知道解密后的明文,但可以造成混淆并破坏通信。()KE MMFFCSEK()KF EMDKM外部错误控制F比较()KEM()KEM消息加密-在公钥加密体制下 由于大家都知道B的公钥,所以这种方式不提供认证,只提供加密。MEKUbEKUb(M)DKRbMI.普通加密AB消息加密-在公钥加密体制下 由于只有A有用于产生EKRa(M)的密钥,所以此方法提供认证。由于大家都有KUa,所以此方法不提供加密。MEKRaEKRa(M)DKUaMII.认证和签名AB消息加密-在公钥加密体制下 提供认证和加密。一次通信中要执行四次复杂的公钥算法。MEKRaEKRa(M)DKUaMIII.加密认证
6、和签名ABEKUbEKUb(EKRa(M)DKRbEKRa(M)消息认证码(MAC)Message Authenticaion Code 消息认证码是消息和密钥的公开函数,它产生定长的值,以该值作为认证符。利用密钥和消息生成一个固定长度的短数据块,并将其附加在消息之后。通信双方共享密钥K消息认证码用于认证A和B共享密钥KA计算MAC=Ck(M),M和MAC一起发送到BB对收到的M,计算MAC,比较两个MAC是否相同。M CMACK C比较MKMAC如果两个MAC相等,则:1.接收方可以相信消息未被修改,因为如果攻击者改变了消息,由于不知道k,无法生成正确的MAC。2.接收方可以相信消息的确来自
7、确定的发送方。因为其他人不能生成和原始消息相应的MAC。MAC函数与加密函数的区别 MAC函数与加密函数类似,都需要明文、密钥和算法的参与。但MAC算法不要求可逆性,而加密算法必须是可逆的。例如:使用100比特的消息和10比特的MAC,那么总共有2100个不同的消息,但仅有210个不同的MAC。也就是说,平均每290个消息使用的MAC是相同的。因此,认证函数比加密函数更不易被攻破,因为即便攻破也无法验证其正确性。关键就在于加密函数是一对一的,而认证函数是多对一的。消息认证码的基本用途 只提供消息认证,不提供保密性。(见前)提供消息认证和保密性:M|CK1CMCK(M)K1比较EK2)(|12M
8、CMEKKDK2ABA和B共享K1和K2K1:用于生成MACK2:用于加密与明文有关的认证消息认证码的基本用途 提供消息认证和保密性:ABA和B共享K1和K2K1:用于生成MACK2:用于加密与密文有关的认证M|CK1CK1比较EK2)(21MECKKDK2对MAC的攻击攻击密钥 已知消息M1和MAC算法C,以及MAC1=C k1(M1),现要破解k1。密钥为k个bit,MAC为n个bit。当knkn:可能的密钥个数为2k。可能的MAC个数为2n个。所以许多不同的密钥(约2k-n个),计算出来的MAC都等于MAC1。这些密钥中哪一个是正确的密钥不得而知。这时需要新的M-MAC对来测试这2k-n
9、个密钥,于是有如下的重复攻击:重复攻击 Step 1:给定M1和MAC1=C k1(M1)对所有2k个密钥,判断MACi=C ki(M1)匹配数约为:2k-n Step 2:给定M2和MAC2=C k1(M1)对所有2k-n个密钥,判断MACi=C ki(M2)匹配数约为:2k-2n 平均来讲,若k=x*n,则需x次循环才能找到正确的密钥。所以,用穷举法攻破MAC比攻破加密算法要困难得多。对MAC的攻击攻击算法 考虑下面的算法:消息M=(X1X2Xm)是由64比特长的分组Xi(i=1,m)链接而成 MAC算法是:加密算法是DES。因此,密钥长为56比特。如果敌手得到MCK(M),那么敌手使用穷
10、搜索攻击寻找K将需做256次加密。很困难!但攻击者可以改变M的内容,却使MAC正确。方法如下:12()()()mKKMXXXC MEM 用Y1替换X1,Y2替换X2,Ym替换Xm,其中Y1,Y2,Ym 是攻击者编造的假消息。且 Ym=Y1 Y2 Ym-1 (M),当接收者收到这个消息:M=(Y1Y2Ym)则(M)=Y1 Y2 Ym =(M)所以:CK(M)=CK(M)通过了验证,攻击得逞。MAC函数应具有的性质 若攻击者已知M和CK(M),则他构造满足:CK(M)=CK(M)的消息M在计算上不可行 CK(M)应试均匀分布的,即对于随机消息M和M,CK(M)=CK(M)的概率是2-n,n是MAC
11、的位数基于DES的消息认证码 使用最广泛的MAC算法之一:数据认证算法 过程:把需要认证的数据分成连续的64位的分组。若最后一个分组不是64位,则填0 利用DES加密算法E和密钥K,计算认证码。112213321()()()()KKKNKNNOEDOEDOOEDOOEDO数据认证算法似乎可以满足前面提出的要求。DAC M-bits(16 to 64 bits)为什么不直接使用加密而使用分离的消息认证码?保密性与真实性是两个不同的概念 根本上,信息加密提供的是保密性而非真实性 加密代价大(公钥算法代价更大)鉴别函数与保密函数的分离能提供功能上的灵活性 某些信息只需要真实性,不需要保密性 广播的信
12、息难以使用加密(信息量大)网络管理信息等只需要真实性 政府/权威部门的公告Hash函数(杂凑函数、散列函数)Hash的特点:与消息认证码一样,hash函数的输入是可变的消息M,输出是固定大小的hash码H(M),或称消息摘要(Message Digest)、hash值。与消息认证码不同的是,hash码的产生过程中并不使用密钥。Hash码是所有消息的函数,改变消息的任何一位或多位,都会导致hash码的改变。Hash算法通常是公开的。又称为:哈希函数、数字指纹(Digital finger print)、压缩(Compression)函数、紧缩(Contraction)函数、数据鉴别码DAC(Da
13、ta authentication code)、篡改检验码MDC(Manipulation detection code)h=H(M)假定两次输入同样的数据,那么散列函数应该能够生成相同的散列值。输入数据中的一位发生了变化,会导致生成的散列值完全不一样。散列函数有个非常重要的特性为单向性,也就是从M计算h容易,而从h计算M不可能。散列函数H必须满足以下几个性质 H对于任何大小的数据分组,都能产生定长的输出。对于任何给定的M,H(M)要相对易于计算。单向性:对于任何给定的hash值h,计算出M在计算上不可行。弱无碰撞性:对任何给定的M1,寻找M2,使H(M1)=H(M2)在计算上不可行。强无碰撞
14、性:寻找任何的(M1,M2),使H(M1)=H(M2)在计算上不可行。Hash与MAC的区别 MAC需要对全部数据进行加密 MAC速度慢 Hash是一种直接产生鉴别码的方法 Hash可用于数字签名常用Hash算法 迭代型hash函数的一般结构fffY0Y1YL-1bbbnnnnnIV=CV0CV1CVL-1CVL明文M被分为L个分组Y0,Y1,YL-1b:明文分组长度n:输出hash长度CV:各级输出,最后一个输出值是hash值无碰撞压缩函数f是设计的关键迭代型hash函数 这种结构的hash函数已被证明是合理的,如果采用其他结构,不一定安全。设计新的hash函数只是改进这种结构,或者增加ha
15、sh码长。算法的核心技术是设计无碰撞的压缩函数f,而敌手对算法的攻击重点是f 的内部结构,由于f 和分组密码一样是由若干轮处理过程组成,所以对f 的攻击需通过对各轮之间的位模式的分析来进行,分析过程常常需要先找出f 的碰撞。由于f 是压缩函数,其碰撞是不可避免的,因此在设计f 时就应保证找出其碰撞在计算上是不可行的。MD5 hash算法MD5 Hash Algorithm MD4是MD5杂凑算法的前身,由Ron Rivest于1990年10月作为RFC提出,1992年4月公布的MD4的改进(RFC 1320,1321)称为MD5。MD5的算法框图v输入消息可任意长,压缩后输出为128bits。
展开阅读全文