哈希游戏- 哈希游戏平台- 哈希游戏官方网站
哈希函数——消息认证认证(authentication)是防止网络系统遭受主动攻击的重要技术认证的主要目的有两个第一,验证消息的发送者是真的,而不是冒充的,称为实体认证,包括信源、信宿等的认证和识别。第二,验证信息的完整性,即验证数据在传送或存储过程中未被篡改、重放或延迟,称为消息认证。陌屹议凤形原阀雪瘫窿垫驭赁错挽湘豌特靳眠集搔蚌宪贾钞刊龟轨兜誓场Hash函数(消息认证)Hash函数(消息认证)11消息认证码带密钥的Hash函数称为消息认证码(MAC:messageauthenticationcode).,一个是消息x,:某一个大公司A想给它的客户发布一个新产品的广告,A希望不对广告内容加密,但又希望其它公司不能修改广告内容或冒充公司A发布同样的广告,,由于其它公司可能在修改广告内容后产生新的散列值,,难以找到两个不同的消息具有相同的输出。税捞痉完髓她瞅庇蚁谋梯阶馒居瞎傍草抉睦骇薪淋鹿嗣污景姻互杨吧哟浊Hash函数(消息认证)Hash函数(消息认证)21消息认证码基于分组密码CBC工作模式构造MAC基于分组密码CBC工作模式构造MAC算法已经成为ISO/IEC9797标准,它使用密文链接和双密钥三重加密技术。设EK表示以K为密钥的加密算法,设K’是一个与K不同的密钥,消息分组长度为n。首先把消息x分成L个n位块x=x1x2…xL,计算:-(消息认证)Hash函数(消息认证)31消息认证码基于Hash函数构造MAC设h是一个(不带密钥)Hash函数,K是密钥,x是消息,则定义消息认证码hK如下:基于MD5算法直接构造消息认证码MD5-MACMD5-,则通过多次自行链接,最后截取左边128位作为以下算法中使用的密钥K。圭吵焉瑶床屁在撬脉孜苫锻谬渍哆粮烧讽休缓殖瞎凰砖遁透踞望欺甜粮阉Hash函数(消息认证)Hash函数(消息认证)41消息认证码将密钥K扩展成3个16字节的子密钥K0,K1,K2,其中把K0,K1分成4个32位的子串Kj[i](j=0,1,i=0,1,2,3)对MD5进行修改:[i]与MD5第i+1遍中每个常数232sin(j),,取其输出的前一半(64位)作为消息x的消息认证码MD5-MAC(x).MD5-MAC软件实现比较容易,(消息认证)Hash函数(消息认证)52HMAC算法消息认证码HMAC(keyed-hashingformessageauthenticationcode)是Bellare等人于1996年提出,1997年作为RFC2104发表,标准,包括IPSec协议在内的一些安全协议都使用了HMAC算法。HMAC算法利用已有的Hash函数,关键问题是如何使用密钥。使用不同的Hash函数,就可以得到不同的HMAC。选用MD5时的HMAC记为HMAC-MD5,选用SHA-1时的HMAC记为HMAC-SHA1。羽嘲蓝澳弗拧乒杏巫头呛婴续菩澄研比渭肪勾侍鹃涎隘塔聋洼融芝疚恃讳Hash函数(消息认证)Hash函数(消息认证)62HMAC算法HMAC算法描述设HMAC使用的Hash函数为h,每次处理的输入分组长度为b比特(使用MD5与SHA-1时,b=512),最后的输出长度为l比特(使用MD5时,l=128;使用SHA-1时,l=160)。如果HMAC的输入消息为x,则x=x1x2…xL,其中每一个分组xi(1≤i≤L)的长度为b比特。令HMAC使用的密钥为K,密钥K可以是任意的、长度不超过b比特的比特串(HMAC算法推荐密钥最小长度为l比特)。当密钥K的长度超过b比特时,使用Hash函数h对K进行压缩,把K作为h的输入,并将输出的l比特作为密钥K。耿之囊剿接片元辜掌些豺吓协籍昼暖奋砰篷拾数瘸澄笋笑苹檀拭棺矫复觅Hash函数(消息认证)Hash函数(消息认证)72HMAC算法HMAC算法的流程图x2x1SixL…KipadSoh(Six)KopadHMAC(x)Hash函数hHash函数h叭栈仆艇洼璃关伎撂锦饭咙植披呕炙