第5章 报文鉴别与散列函数12-03

上传人:无*** 文档编号:244047865 上传时间:2024-10-02 格式:PPT 页数:40 大小:213.50KB
返回 下载 相关 举报
第5章 报文鉴别与散列函数12-03_第1页
第1页 / 共40页
第5章 报文鉴别与散列函数12-03_第2页
第2页 / 共40页
第5章 报文鉴别与散列函数12-03_第3页
第3页 / 共40页
点击查看更多>>
资源描述
,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,第,5,章 报文鉴别与散列函数,内容,鉴别的需求;,散列函数;,报文鉴别码,签名,5.1,鉴别的需求,网络通信环境中会受到下列攻击,泄露,;,通信量分析:连接的频率和持续的时间、报文数量等。,伪装:假源点,;,内容篡改,:,修改内容,;,序号篡改,:,增删内容,;,计时篡改:报文回放,;,抵赖:终点否认收到、源点否认发送过。,5.2,鉴别函数,鉴别函数:用来产生用于鉴别一个报文的值:鉴别符。,鉴别符用于鉴别报文在通信过程中是否被篡改、删除和修改等。,产生鉴别符的几类函数:,报文加密,:,以整个报文作为它的鉴别符号,报文鉴别码,(MAC),散列函数,鉴别函数,-,报文加密,对称加密:,提供保密:仅源点和终点共享,K,。,一定程度的鉴别:仅来自源点。,不提供签名:接收人可以伪造、发送人可以否认。,E,M,M,D,K,K,E,k,(M,),鉴别函数,-,报文加密,私钥加密:,提供鉴别和签名:仅源点有私钥,K,S,。,任何一方都能用公开密钥,K,p,脱密。,E,M,M,D,K,s,K,p,E,Ks,(M,),鉴别函数,-,报文加密,公开密钥加密:,提供报密:仅终点有脱密的私钥,K,S,。,不提供签名:接收人可以伪造、发送人可以否认。,E,M,M,D,K,p,K,S,E,Kp,(M,),鉴别函数,-,报文加密,对称密钥加密:,提供保密:,BK,p,鉴别与签名:,AK,s,E,M,M,D,AK,s,BK,s,E,BKp,(E,AK,s,(M,),E,BK,p,A,B,D,AK,p,为什么需要报文鉴别,E,M,M,D,K,K,Y=,E,k,(M,),Z,E,k,(M,),N,D,K,消息鉴别,VS,常规加密,保密性与真实性是两个不同的概念,根本上,信息加密提供的是保密性而非真实性,加密代价大,(,公钥算法代价更大,),鉴别函数与保密函数的分离能提供功能上的灵活性,某些信息只需要真实性,不需要保密性,广播的信息难以使用加密,(,信息量大,),网络管理信息等只需要真实性,政府,/,权威部门的公告,为什么需要报文鉴别码,加密与鉴别分离,使得结构灵活。例如:应用层鉴别,底层加密;,减少工作量,验证鉴别码较容易;,监控计算机程序,防止程序被修改,但装载时不要对程序解密。,报文鉴别码,MAC,MAC,,,也称为密码检验和,由如下形式的函数,C,生成,:,MAC=,C,k,(M,),其中,M,是变长的报文,K,是仅由收发双方共享的密钥,C,k,M),是定长的鉴别符。,当报文确信或已知是正确时,终点每次将,MAC,附加到报文中。接收者通过重新计算,MAC,来对报文进行鉴别。,5.2.2,散列函数,(,Hash Function,),散列函数的定义,散列函数:,M:,变长报文,H(M):,定长的散列码,(,报文摘要),主要用于为文件、报文或其它分组数据产生指纹,散列函数的说明,H(M):,输入为任意长度的消息,M;,输出为一个固定长度的散列值,称为消息摘要,(,MessageDigest,),H(M),是消息,M,的所有位的函数并提供错误检测能力:消息中的任何一位或多位的变化都将导致该散列值的变化,H(M),又称为:哈希函数、数字指纹(,Digital finger print),、,压缩(,Compression),函数、数据鉴别码(,Dataauthentication,code,),等,Hash,vs,MAC,MAC,需要对全部数据进行加密,MAC,速度慢,Hash,是一种直接产生鉴别码的方法,散列函数方法,(a),提供了保密和鉴别。,M,H,|,E,D,M,H,E,k,M|H(M,),k,k,H(M),比较,散列函数方法,(b),散列与加密结果合并为一个整体函数实际上就是一个,MAC,。,EH(M),是变长报文,M,和密钥,K,的函数值,且它生成一个定长的输出,对不知道该密钥的对手来说是安全的。,提供鉴别,M,H,E,|,M,H,D,E,k,H(M,),K,K,E,K,(H(M),比较,散列函数方法,(c),提供鉴别、抵赖,。,M,H,E,|,M,H,D,E,KRa,(H(M,),K,Ra,K,Ua,E,KRa,(H(M,),比较,散列函数方法,(d),同时提供保密性、鉴别和抵赖。,M,H,E,|,E,D,M,H,D,E,k,M|E,KRa,(H(M,),k,k,K,Ra,K,Ua,E,KRa,(H(M,),比较,散列函数方法,(e),通信各方共享一个公共的秘密值,s,。,对报文鉴别。,M,|,H,|,H (,M|s,),s,比较,|,H,s,散列函数方法,(f),通过包含报文和散列码的整体进行加密就能对上一种方法,(e),增加保密功能,M,|,H,|,E,k,(H, (,M|s,),s,比较,|,H,s,E,k,H (,M|s,),D,k,散列函数的目标,散列函数的目的是为文件、报文或其他的分组数据产生“指纹”。要用于报文鉴别,散列函数,H,必须具有如下性质:,H,能用于任何大小的数据分组。,H,产生定长输出。,对任何给定的,x,,,H(x,),要相对易于计算,使得硬件和软件实现成为实际可行。,对任何给定的码,H(x,),,,从,H(x,),计算,x,,在计算上是不可行的。这就是所谓的单向性质。,对任何给定的分组,x,,,寻找不等于,x,的,y,,,使得,H(y,)=,H(x,),在计算上是不可行的。,寻找对任何的,(,x,y,),对使得,H(x,)=,H(y,),在计算上是不可行的。,5.2.3,散列算法,5.2.3.1 MD5,MD5,描述,Merkle,于,1989,年提出,hash function,模型,Ron,Rivest,于,1990,年提出,MD4,1992,年, Ron,Rivest,完成,MD5 (RFC 1321),在最近数年之前,MD5,是最主要的,hash,算法,现行美国标准,SHA-1,以,MD5,的前身,MD4,为基础,MD5,描述,输入:任意长度的报文,输入分组长度:,512 bit,输出:,128 bit,报文,5.2.3.1.1,设计目标,安全性,直接安全性,速度,简单性和紧凑性,有利的,Little-,Endian,结构,MD5,描述,step 1,附加填充比特,对报文进行填充,使其比特数与,448,模,512,同余,即填充长度为,512,的整数倍减去,64,填充方法:填充比特串的最高位为,1,,其余各位均为,0,MD5,描述,step 2,附加长度值,|M2|,为,512,的倍数,: Y0,Y1,YL-1,MD5,描述,step 3,初始化,MD,缓存,MD,为,128bit,,,用于存放散列函数的中间及最终结果,MD,可表示为,4,个,32bit,的寄存器,(A,B,C,D),,,初始化如下:,MD5,描述,step 4,以,512,个比特(,16,个字)分组处理消息,主循环包含共,64,步操作,分别使用,4,个非线性函数。,每一次循环可以表示为,7,步。,64,步操作形式:,a,b+(a+g(b,c,c)+Xk+Ti,s),MD5,报文摘要算法,(,Rivest,,,RFC1321),Y,1,512,Y,0,512,Y,q,512,Y,L-1,512, , ,H,MD5,H,MD5,H,MD5,H,MD5,报文,L*512-64-,填充长度,填充,1-512,长度,64,IV,CV,q,CV,1,CV,L-1,128,位摘要,MD5: RFC1321,MD4: RFC1320,MD2: RFC1319,H,MD5,CV,q,128,B,A,C,D,G, T17,18,32,X,2,(,k),16,个步骤,B,A,C,D,F, T1,2,16,Xk,16,个步骤,B,A,C,D 32,B,A,C,D,H, T33,34,48,X,3,(k),16,个步骤,I, T49,50,64,X,4,(,k),16,个步骤,Y,q,512,+,+,+,+,CV,q+1,128,4,轮,每轮,16,步骤,A,B,C,D,A,B,C,D,+,+,+,CLS,s,+,Xk,Ti,g,Xk,是分组的第,k,个,32,比特, k=1,2, 16,Ti,= 2,32,abs(sin(i,),的整数部分,b=,b+(a+g(b,c,d)+Xi+Ti,)s),MD5,的,安全性,Berson,表明,对单循环,MD5,,,使用不用的密码分析可能在合理的时间内找出能够产生相同摘要的两个报文,这个结果被证明对四个循环中的任意一个循环也成立,但作者没有能够提出如何攻击包含全部,4,个循环,MD5,的攻击,Boer,和,Bosselaers,显示了即使缓存,ABCD,不同,,MD5,对单个,512bit,分组的执行将得到相同的输出,(,伪冲突),Dobbertin,的,攻击技术:使,MD5,的,压缩函数产生冲突,即寻找,MD5,被认为是易受攻击的,逐渐被,SHA-1,和,RIPEMD-160,替代,5.2.3.2,安全散列算法,SHA-1,安全散列算法,(SHA),由美国国家标准和技术协会,(NIST),提出,作为联邦信息处理标准,(FIPS PUB 180),在,1993,年公布。,1995,年发布了一个修订版,FIPS PUB 180-1,通常称为,SHA-1,SHA,也是基于,MD4,的。,最大报文长度,2,64-1,,散列码长度,160bit,。,结构与,MD5,类似,抗攻击能力比,MD5,强;,HMAC,(,密码散列算法,RFC2104,),Keyed-Hashing for Message Authentication Code,在最近几年,研究的热点转向由密码散列码导出,MAC,。,这样的目的在于:,密码散列函数如,MD5,和,SHA-1,的软件执行速度比对称分组密码如,DES,的快。,很容易获得密码散列函数的库代码。,美国或其他国家对密码散列函数没有出口限制,而对称分组密码,即便用作,MAC,也是限制的。,HMAC,的主要设计目标:,无需修改地使用现有的散列函数,(,比如,MD5,或,SHA-1),。特别是,散列函数的软件实现执行很快,且程序代码码是公开的和容易获得的。,当出现或获得更快的或更安全的散列函数时,对算法中嵌入的散列函数要能轻易地进行替换。,保持散列函数的原有性能不会导致算法性能的降低。,使用和处理密钥的方式很简单。,HMAC,HMAC,算法,RFC2104,Si,Y0,Y1,Y,L-1,散列,函数,b bits,b bits,b bits,K,+,ipad,K,+,opad,S0,H(Si|M,),散列,函数,HMAC,k,(M,),n bits,IV,n bits,IV,填充到,b bits,HMAC,算法,对密钥,K,的左端填充一些,0,生成一个,b bits,的串,K,+,。,ipad,: b/8,个,00110110,,,opad,: 01011010,。,将,K,+,与中,ipad,按比特异或,(XOR),产生一个,b bits,分组,S,i,。,将报文,M,附加到,S,i,后。,使用,H,计算第,3,步产生流的散列值。,将,K,+,与,opad,按比特异或产生一个,b bits,的分组,S,0,.,将第,4,步产生的散列值附加到,S0,后。,使用,H,计算第,6,步产生流的散列值,并输出这个结果。,HMAC,的安全性,HMAC,的安全性取决于所使用的散列函数的安全性,使用,MD5,或,SHA-1,作为,HMAC,算法中的散列函数,H,时,安全性是可以保证的,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!