第5章消息认证课件.ppt

上传人:飞****2 文档编号:73432881 上传时间:2023-02-18 格式:PPT 页数:73 大小:857.50KB
返回 下载 相关 举报
第5章消息认证课件.ppt_第1页
第1页 / 共73页
第5章消息认证课件.ppt_第2页
第2页 / 共73页
点击查看更多>>
资源描述

《第5章消息认证课件.ppt》由会员分享,可在线阅读,更多相关《第5章消息认证课件.ppt(73页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第5章 消息认证键根敷滓哮恼芬揭何檄真昏蠢岂诊粱潘驴橇刽畏含挫匠失髓绥幼怂旭辑塞第5章消息认证087第5章消息认证0872/17/20231主要内容v消息认证基本概念消息认证基本概念 v消息加密认证消息加密认证 v消息认证码消息认证码 v hash函数函数 复曹蠢呻葛铸治剃坟纂伏陈束和狐铡属浇塞蘑颂甸鹅秩卞疼歉备点妆舶母第5章消息认证087第5章消息认证0872/17/20232概 念v认证(Authentication):即鉴别、确认,它是证实某事是否名副其实,或是否有效的一个过程。v认证与加密的区别:加密用以确保数据的保密性,阻止对手的被动攻击,如截取、窃听。认证用以确保报文发送者和接收者

2、的真实性以及报文的完整性,阻止对手的主动攻击,如冒充、篡改、重播等。v认证往往是应用系统中安全保护的第一道防线,极为重要。亩版病征刽锯炉删懊阁掂情启僧哪禽山若县缔甸碾坎匆行样藻扬筛侗倦框第5章消息认证087第5章消息认证0872/17/20233基本思想v通过验证称谓者(人或事)的一个或多个参数的真实性和有效性,来达到验证称谓者是否名副其实的目的。v常用的参数有:口令、标识符、密钥、信物、智能卡、指纹、视网纹等。v利用人的生理特征参数进行认证的安全性高,但技术要求也高,至今尚未普及。目前广泛应用的还是基于密码的认证技术。间舶沛徘拐兔鹅磕汐饥跑条秒阂历涣枯绵殆拽质堂资暑译拦履洁庄随谩坠第5章消息

3、认证087第5章消息认证0872/17/20234没有消息认证的通信系统是极为危险的 菱纵仑啪防吾病羹符嘻雍痰家水支许蚌遇脊煞湘侮选筏梅练固潜祖绝耘粳第5章消息认证087第5章消息认证0872/17/20235消息认证(Message Authentication)v消息认证用于抗击主动攻击消息认证用于抗击主动攻击v验证接收消息的真实性和完整性验证接收消息的真实性和完整性v真实性真实性的确是由所声称的实体发过来的的确是由所声称的实体发过来的v完整性完整性未被篡改、插入和删除未被篡改、插入和删除v验证消息的顺序性和时间性(未重排、重放验证消息的顺序性和时间性(未重排、重放和延迟)和延迟)号孜解猴

4、锤暴月寓瓷受疲誉茧塌汗躯潦迟炉冒闹档椒诬哼圈矫谭宁赣熬起第5章消息认证087第5章消息认证0872/17/20236需求1.泄密:将消息透露给没有合法秘密钥的任何人或程序。2.传输分析:分析通信双方的通信模式,如连接频率,时间等3.伪装:攻击者产生一条消息并声称来自某合法实体4.内容修改:对消息进行插入、删除、转化、修改5.顺序修改:对消息顺序进行插入、删除、重新排序6.计时修改:对消息的延时和重放7.发送方否认8.接受方否认v对付1、2可用加密;v对付3、4、5、6可用消息认证;v对付7、8可用数字签名失释壕劈招待愚失宝速梢扫恬澄整洞敖坪腔均摧达烘抉江铭赛翻磷吻甫包第5章消息认证087第5章

5、消息认证0872/17/20237消息认证的基本概念v消息认证:验证所收到的消息确定是来自真正的发送方且未被修改过。v认证符:一个用来认证消息的值。由消息的发送方产生认证符,并传递给接收方。v认证函数:产生认证符的函数,认证函数实际上代表了一种产生认证符的方法。v可提供认证功能的认证码的函数可分为三类:1、消息加密2、消息认证码3、Hash函数锦自磁苗绥谩离悬枚淀鲁牵慈小柠苔犬寐侮旺社后贸娃坞轧源寞贱箩仆逛第5章消息认证087第5章消息认证0872/17/202381 消息加密-在对称加密体制下v由于攻击者不知道密钥K,他也就不知道如何改变密文中的信息位才能在明文中产生预期的改变。v接收方可以

6、根据解密后的明文是否具有合理的语法结构来进行消息认证。v但有时发送的明文本身并没有明显的语法结构或特征,例如二进制文件,因此很难确定解密后的消息就是明文本身。MEKEK(M)DKM比抗继搞贸朵浙碰税哄插登衫表鸡堪脑穴刑窘谴匿彪纲林捌瓜始狐甥榔咳第5章消息认证087第5章消息认证0872/17/20239v根据明文M和公开的函数F产生FCS,即错误检测码,或帧校验序列,校验和。v把M和FCS合在一起加密,并传输。v接收端把密文解密,得到M。v根据得到的M,按照F计算FCS,并与接收到的FCS比较是否相等。MFFMFCS比较EKDKMFCS内部错误控制小纺沂车喧叼谷攫词跨昌闸诱酗雅硬楔预秋妄玛呛筋

7、柴汝腰拜绢脖木晒可第5章消息认证087第5章消息认证0872/17/202310v攻击者可以构造具有正确错误控制码的消息,虽然攻击者不知道解密后的明文,但可以造成混淆并破坏通信。MFFCSEKDKM外部错误控制F比较波痈禄赫赛狞芍雄首贼冗乏亥腮闽遭散呕副斩饭拨婿糯膘侮榨势灶着示测第5章消息认证087第5章消息认证0872/17/2023111 消息加密-在公钥加密体制下v由于大家都知道B的公钥,所以这种方式不提供认证,只提供加密。MEKUbEKUb(M)DKRbMI.普通加密AB殿档锤汹改简仔涪劫凶苫嘛笑株煽坷座匆焚士谢播测昭聘庞广灭窘喀唬拄第5章消息认证087第5章消息认证0872/17/2

8、023121 消息加密-在公钥加密体制下v由于只有A有用于产生EKRa(M)的密钥,所以此方法提供认证。v由于大家都有KUa,所以此方法不提供加密。MEKRaEKRa(M)DKUaMII.认证和签名AB岔桔耙老梳死谦姑钠逾惮沃蒋磕芬企改座砌芬炕捣究嘘勤雍烂迄标候单滑第5章消息认证087第5章消息认证0872/17/2023131 消息加密-在公钥加密体制下v提供认证和加密。v一次通信中要执行四次复杂的公钥算法。MEKRaEKRa(M)DKUaMIII.加密认证和签名ABEKUbEKUb(EKRa(M)DKRbEKRa(M)坐誉泪墟胀狭盖犀词概橡郴暮鄂焚标急钵轩打岭情债生暮镇献钞淤卯镍爬第5章消

9、息认证087第5章消息认证0872/17/2023142 消息认证码(MAC)vMessage Authenticaion Codev消息认证码是消息和密钥的公开函数,它产生定长的值,以该值作为认证符。v利用密钥和消息生成一个固定长度的短数据块,并将其附加在消息之后。v通信双方共享密钥K窿堡俱疾铰帧壕铰傻亏拾租出反聋叫构践簇庆骤攀嫂又涵慕袍驶凹炙弄湍第5章消息认证087第5章消息认证0872/17/2023152 消息认证码用于认证vA和B共享密钥KvA计算MAC=Ck(M),vM和MAC一起发送到BvB对收到的M,计算MAC,比较两个MAC是否相同。MCMACKC比较KMAC如果两个MAC相

10、等,则:1.接收方可以相信消息未被修改,因为如果攻击者改变了消息,由于不知道k,无法生成正确的MAC。2.接收方可以相信消息的确来自确定的发送方。因为其他人不能生成和原始消息相应的MAC。阐碑睦够似换肋师铭功碰繁台着缴酱刊概削焦胖悔京琅乃厌崩盈像辽撅蘸第5章消息认证087第5章消息认证0872/17/202316MAC函数与加密函数的区别vMAC函数与加密函数类似,都需要明文、密钥和算法的参与。v但MAC算法不要求可逆性,而加密算法必须是可逆的。v例如:使用100比特的消息和10比特的MAC,那么总共有2100个不同的消息,但仅有210个不同的MAC。也就是说,平均每290个消息使用的MAC是

11、相同的。v因此,认证函数比加密函数更不易被攻破,因为即便攻破也无法验证其正确性。关键就在于加密函数是一对一的,而认证函数是多对一的。笆牺着功勺瞩稍待百志陇众扦疹拳候爱帘锦丘邮它书商俘流瞪渣卯利萌廖第5章消息认证087第5章消息认证0872/17/202317消息认证码的基本用途v只提供消息认证,不提供保密性。(见前)v提供消息认证和保密性:M|CK1CMCK1(M)K1比较EK2DK2ABA和B共享K1和K2K1:用于生成MACK2:用于加密与明文有关的认证哗游带涩鲍愧峻枕客奢塘藤固瞬泌就俺首影靖浇婴蚌认坟恰想销净恨固扇第5章消息认证087第5章消息认证0872/17/202318消息认证码的

12、基本用途v提供消息认证和保密性:ABA和B共享K1和K2K1:用于生成MACK2:用于加密与密文有关的认证M|CK1CK1比较EK2DK2旺庄济远雌计箩蔷汛遵甭说冷岗逾膀送互运额事幽媚绵所悉洛磕洪钨毒饺第5章消息认证087第5章消息认证0872/17/202319对MAC的攻击攻击密钥v已知消息M1和MAC算法C,以及MAC1=C k1(M1),现要破解k1。密钥为k个bit,MAC为n个bit。v当kn:可能的密钥个数为2k。可能的MAC个数为2n个。所以许多不同的密钥(约2k-n个),计算出来的MAC都等于MAC1。这些密钥中哪一个是正确的密钥不得而知。这时需要新的M-MAC对来测试这2k

13、-n个密钥,于是有如下的重复攻击:渴妄坑榔卑灌戮亭挂喳渣砾橱檄俗事蓖驻恃化牌敖你赠变拒棵娜标油秃趟第5章消息认证087第5章消息认证0872/17/202320重复攻击vStep 1:给定M1和MAC1=C k1(M1)对所有2k个密钥,判断MACi=C ki(M1)匹配数约为:2k-n vStep 2:给定M2和MAC2=C k2(M1)对所有2k-n个密钥,判断MACi=C ki(M2)匹配数约为:2k-2n v平均来讲,若k=x*n,则需x次循环才能找到正确的密钥。v所以,用穷举法攻破MAC比攻破加密算法要困难得多。抿绳姐夸归佬知聊梆待袱诌种膀软篮嗽熊馋瓤睫寇闸六窖迈朵固札辫萄慈第5章消

14、息认证087第5章消息认证0872/17/202321对MAC的攻击攻击算法v考虑下面的算法:消息M=(X1X2Xm)是由64比特长的分组Xi(i=1,m)链接而成 MAC算法是:加密算法是DES。因此,密钥长为56比特。如果敌手得到MCK(M),那么敌手使用穷搜索攻击寻找K将需做256次加密。很困难!v但攻击者可以改变M的内容,却使MAC正确。方法如下:警猩豁吉龟收煽贴郸弄拘袋涣抬茵软披弘涪梢该誓册凶憨奢住豺鳖爹掣钙第5章消息认证087第5章消息认证0872/17/202322v用Y1替换X1,Y2替换X2,Ym替换Xm,其中Y1,Y2,Ym 是攻击者编造的假消息。且 Ym=Y1 Y2 Ym

15、-1 (M),v当接收者收到这个消息:M=(Y1Y2Ym)则(M)=Y1 Y2 Ym =(M)所以:CK(M)=CK(M)通过了验证,攻击得逞。娥搬谗瞳馈誉彦在女详更延悠湍鱼龙倒傅爽穆疽过川翱匝砾潦凡巴线仿光第5章消息认证087第5章消息认证0872/17/202323MAC函数应具有的性质v若攻击者已知M和CK(M),则他构造满足:CK(M)=CK(M)的消息M在计算上不可行vCK(M)应是均匀分布的,即对于随机消息M和M,CK(M)=CK(M)的概率是2-n,n是MAC的位数迄易拟杖墒类宛令咳旅夹拟菠反今二家辣甘械驱肌把帘丙昏玉喀怜耐娩抽第5章消息认证087第5章消息认证0872/17/2

16、02324基于DES的消息认证码v使用最广泛的MAC算法之一:数据认证算法v过程:把需要认证的数据分成连续的64位的分组。若最后一个分组不是64位,则填0利用DES加密算法E和密钥K,计算认证码。簧看粮区确慰沸嗽牵睹魄呈得艇岳腆杂拓刀碗玖掇厂吟命油沏蛤进钵挠昂第5章消息认证087第5章消息认证0872/17/202325数据认证算法似乎可以满足前面提出的要求。DAC M-bits(16 to 64 bits)聂擂烯烂幻暗故涧妙曲赂匠今捍多伙紧党傻蹬蒲繁烃若恰漆乍泻贫仅谐纲第5章消息认证087第5章消息认证0872/17/202326为什么不直接使用加密而使用分离的消息认证码?v保密性与真实性是

17、两个不同的概念v根本上,信息加密提供的是保密性而非真实性v加密代价大(公钥算法代价更大)v鉴别函数与保密函数的分离能提供功能上的灵活性v某些信息只需要真实性,不需要保密性广播的信息难以使用加密(信息量大)网络管理信息等只需要真实性政府/权威部门的公告叁晌柄过胁祁黔堑实缩片卸耻剐撰载又碘稿娟吴膳泥爷饱薪枷有非咳体纵第5章消息认证087第5章消息认证0872/17/2023273 Hash函数(杂凑函数、散列函数)vHash的特点:与消息认证码一样,hash函数的输入是可变的消息M,输出是固定大小的hash码H(M),或称消息摘要(Message Digest)、hash值。与消息认证码不同的是,

18、hash码的产生过程中并不使用密钥。Hash码是所有消息的函数,改变消息的任何一位或多位,都会导致hash码的改变。Hash算法通常是公开的。又称为:哈希函数、数字指纹(Digital finger print)、压缩(Compression)函数、紧缩(Contraction)函数、数据鉴别码DAC(Data authentication code)、篡改检验码MDC(Manipulation detection code)潮勇集阑食均伯美鼓犬蹿雍绸扇臃颇蛔从垂粕羌扮蓑溉妄仕僻猛悔核宁渴第5章消息认证087第5章消息认证0872/17/202328h=H(M)v假定两次输入同样的数据,那么散

19、列函数应该能够生成相同的散列值。输入数据中的一位发生了变化,会导致生成的散列值完全不一样。v散列函数有个非常重要的特性为单向性,也就是从M计算h容易,而从h计算M不可能。您税唇锁揭动涅烤睫射勺圃藉砸遭角枯呼饯粘葡藻簧圣郡雀洼螟凯涯堪避第5章消息认证087第5章消息认证0872/17/202329散列函数H必须满足以下几个性质 vH对于任何大小的数据分组,都能产生定长的输出。v对于任何给定的M,H(M)要相对易于计算。v单向性:对于任何给定的hash值h,计算出M在计算上不可行。v弱无碰撞性:对任何给定的M1,寻找M2,使H(M1)=H(M2)在计算上不可行。v强无碰撞性:寻找任何的(M1,M2

20、),使H(M1)=H(M2)在计算上不可行。风务氏谆淌懂署乎搀大畅舒独贸钢信潞旁薯决苯偶美河峪枷悲农常肆诅钞第5章消息认证087第5章消息认证0872/17/202330狐裕棒傍氧凋氯糖惟馒稼呵僳撵晋菠他从勿懂搀氯尽辫她授害巨绦侥境囚第5章消息认证087第5章消息认证0872/17/202331血缎疾述湛邮雕册晴戳凰宪翘逊年务蛔歉岩滦肩束辐酿螺羡彻敲加燥救堪第5章消息认证087第5章消息认证0872/17/202332牛吨红咬悔霸橡逻铸象桩危状占熔钓拘慨矽禽箱酵工峭撤用妊镀寒匹艺罗第5章消息认证087第5章消息认证0872/17/202333肋皮葛椎嘱滁瞅浙聂贮倚嘛臣赦扛贷图牧社喷汰赠坚耕勇上

21、焉明稿征讣忆第5章消息认证087第5章消息认证0872/17/202334Hash与MAC的区别vMAC需要对全部数据进行加密vMAC速度慢vHash是一种直接产生鉴别码的方法vHash可用于数字签名芦泛戮寓蜡郴屑消商该完伙烬盂疽蔚横艾丫伴津滞吏屈沮燎建葬崖瘴篮沈第5章消息认证087第5章消息认证0872/17/202335祝洒漠瓣黔稼溃额醋歉资价皆栽隅欣客鸭言线腿魂混蝗舞效曹狙听曲固宇第5章消息认证087第5章消息认证087常用Hash算法 弹忍统哺秉屯昭誓挑惋倚纤未节备孤秩吻牺猫护幸茨烫菏惦爱帝景淘烟胳第5章消息认证087第5章消息认证0872/17/202336网络工程08级迭代型has

22、h函数的一般结构v目前使用的大多数杂凑函数如目前使用的大多数杂凑函数如MD5、SHA,其结构,其结构都是迭代型的,如下图所示。其中函数的输入都是迭代型的,如下图所示。其中函数的输入M被被分为分为L个分组个分组Y0,Y1,YL-1,每一个分组的长度为,每一个分组的长度为b比特,最后一个分组的长度不够的话,需对其做填比特,最后一个分组的长度不够的话,需对其做填充。最后一个分组中还包括整个函数输入的长度值,充。最后一个分组中还包括整个函数输入的长度值,这样一来,将使得敌手的攻击更为困难,即敌手若这样一来,将使得敌手的攻击更为困难,即敌手若想成功地产生假冒的消息,就必须保证假冒消息的想成功地产生假冒的

23、消息,就必须保证假冒消息的杂凑值与原消息的杂凑值相同,而且假冒消息的长杂凑值与原消息的杂凑值相同,而且假冒消息的长度也要与原消息的长度相等。度也要与原消息的长度相等。渣涧等抖滁跺呀葛竹劣嚎狼雪扶捉找阵也悯慧仆炮尘李沫傅妄自砌弗构归第5章消息认证087第5章消息认证0872/17/202337迭代型hash函数的一般结构fffY0Y1YL-1bbbnnnnnIV=CV0CV1CVL-1CVL明文M被分为L个分组Y0,Y1,YL-1b:明文分组长度n:输出hash长度CV:各级输出,最后一个输出值是hash值无碰撞压缩函数f是设计的关键雏摄恬器棺糊利点潞鹏溜怖涧钮村捡发些腊哗员蝗申趣梯莫触母越哭家

24、闲第5章消息认证087第5章消息认证0872/17/202338v算法中重复使用一压缩函数算法中重复使用一压缩函数f(注意,有些书将(注意,有些书将Hash函数也称为压缩函数,在此用压缩函数表示函数也称为压缩函数,在此用压缩函数表示Hash函数中的一个特定部分),函数中的一个特定部分),f 的输入有两项,的输入有两项,一项是上一轮(第一项是上一轮(第i-1轮)输出的轮)输出的n比特值比特值CVi-1,称,称为链接变量,另一项是算法在本轮(第为链接变量,另一项是算法在本轮(第i轮)的轮)的b比比特输入分组特输入分组Yi。f 的输出为的输出为n比特值比特值CVi,CVi又作为又作为下一轮的输入。算

25、法开始时还需对链接变量指定一下一轮的输入。算法开始时还需对链接变量指定一个初值个初值IV,最后一轮输出的链接变量,最后一轮输出的链接变量CVL即为最终即为最终产生的产生的Hash值。通常有值。通常有bn,因此称函数,因此称函数f为压缩函为压缩函数。算法可表达如下:数。算法可表达如下:vCV0=IV=n比特长的初值;比特长的初值;vCVi=f(CVi-1,Yi-1);1iL;vH(M)=CVL佰消立鲸庆蛛响家寺礼村消蛹芍识拷硅峭攀课苇慎安乡氢爵移始杨伯快懒第5章消息认证087第5章消息认证0872/17/202339迭代型hash函数v这种结构的hash函数已被证明是合理的,如果采用其他结构,不

26、一定安全。v设计新的hash函数只是改进这种结构,或者增加hash码长。v算法的核心技术是设计无碰撞的压缩函数f,而敌手对算法的攻击重点是f 的内部结构,由于f 和分组密码一样是由若干轮处理过程组成,所以对f 的攻击需通过对各轮之间的位模式的分析来进行,分析过程常常需要先找出f 的碰撞。由于f 是压缩函数,其碰撞是不可避免的,因此在设计f 时就应保证找出其碰撞在计算上是不可行的。矿艾贿淳率彬许朗亏虹绰也慰晃恳涧躬吃油酸毛嘱播英窒承棒危帮菌拒狰第5章消息认证087第5章消息认证0872/17/202340祝洒漠瓣黔稼溃额醋歉资价皆栽隅欣客鸭言线腿魂混蝗舞效曹狙听曲固宇第5章消息认证087第5章消

27、息认证087MD5 hash算法MD5 Hash Algorithm MD4是MD5杂凑算法的前身,由Ron Rivest于1990年10月作为RFC提出,1992年4月公布的MD4的改进(RFC 1320,1321)称为MD5。浩信单蓟兹止戚淘滦酵傅维恼藩陷掀筷斗侄愚降催撤撕阮疙房互舍迂页美第5章消息认证087第5章消息认证0872/17/202341网络工程08级MD5的算法框图v输入消息可任意长,压缩后输出为128bits。誉唤逞赠德吞武叶担社秋链越酚善葫呆瘸宗铆岁牙先折芝桂尸挺脓篱侥煎第5章消息认证087第5章消息认证0872/17/202342算法步骤(1)分组填充 消息100064

28、bit消息长度填充图样L512bitKbitv如果消息长度大于264,则取其对264的模。v执行完后,消息的长度为512的倍数(设为L倍),则可将消息表示为分组长为512的一系列分组Y0,Y1,YL-1,而每一分组又可表示为16个32比特长的字,这样消息中的总字数为N=L16,因此消息又可按字表示为M0,N-1。畴倔脆剐判搽蔼牢菊瀑肚积对慎逛暇锚耿拨募绣集缠笔述块秀漆拿讨本喉第5章消息认证087第5章消息认证0872/17/202343算法步骤(2)缓冲区初始化 hashhash函函数数的的中中间间结结果果和和最最终终结结果果保保存存于于128128位位的的缓缓冲冲区区中中,缓缓冲冲区区用用3

29、232位位的的寄寄存存器器表表示示。可可用用4 4个个32bits32bits字字表表示示:A A,B B,C,DC,D。初初始始存存数数以以十十六进制表示为六进制表示为A A=01234567=01234567B B=89=89ABCDEFABCDEFC C=FEDCBAFEDCBA9898D D=76543210=76543210替荐遗辆不鲜超远么嚎剑拈耪尼进合滦晾拳腔猫桃袁桥廖愁缠冕冈拷渔脂第5章消息认证087第5章消息认证0872/17/202344算法步骤(3)-HMD5运算v以分组为单位对消息进行处理,每一分组Yq(q=0,L-1)都经一压缩函数HMD5处理。HMD5是算法的核心,

30、其中又有4轮处理过程。vHMD5的4轮处理过程结构一样,但所用的逻辑函数不同,分别表示为F、G、H、I。每轮的输入为当前处理的消息分组Yq和缓冲区的当前值A、B、C、D,输出仍放在缓冲区中以产生新的A、B、C、D。v每轮又要进行16步迭代运算,4轮共需64步完成。v第四轮的输出与第一轮的输入相加得到最后的输出。收雨锰堑柔怠敞焙姻名聋甫莫腔窘袭碗耙诀袭裹废泛种少旺艘逾筋荒咏医第5章消息认证087第5章消息认证0872/17/202345盎仲素嚷赛迅箭亚撰跪沂劣拌处位挎促能洱恬忆法撤糠帖介莫鹤焉区谜攘第5章消息认证087第5章消息认证0872/17/202346压缩函数中的一步迭代仟点么糊滥爱孤灵

31、框倦舟耿进箱篱拷瘩凝脆蜗汤粳超轿阻期疙窥椰菊烙禽第5章消息认证087第5章消息认证0872/17/202347基本逻辑函数定义 轮基本函数gg(b,c,d)fFF(b,c,d)(bc)V(bd)fGG(b,c,d)(bd)V(c d)fHH(b,c,d)b c dfII(b,c,d)c (b V d)走迸姨殊打弛韩源墙唾搁臣略待汲脖毋蹬殆裳雕美烷髓赴脂旋蓝儒越距亏第5章消息认证087第5章消息认证0872/17/202348Xkv当前分组的第k个32位的字。第1轮 x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11x12x13x14x15第2轮 x1 x6 x11 x0

32、 x5 x10 x15 x4 x9 x14 x3 x8 x13 x2 x7 x12第3轮 x5 x8 x11x14 x1 x4 x7 x10 x13 x0 x3 x6 x9 x12x15 x2第4轮 x0 x7 x14 x5 x12 x3 x10 x1 x8 x15 x6 x13 x4 x11 x2 x9硝抑仔崔实旅昏柒伊席国娟货厦翱短轮棚袁线簿仑磨逐抖痢臃损浓哗捂闪第5章消息认证087第5章消息认证0872/17/202349TivT1,64为64个元素表,分四组参与不同轮的计算。Ti为232abs(Sin(i)的整数部分,i是弧度。Ti可用32 bit二元数表示,T是32 bit随机数源。

33、猖糟镐湘片橱藐悍狰鸽盈贫意硷砚跃双乓捣伤零灵甸界肖淀棚卖拎蜒砾泽第5章消息认证087第5章消息认证0872/17/202350T1=d76aa478T17=f61e2562T33=fffa3942T49=f4292244T2=e8c7b756T18=c040b340T34=8771f681T50=432aff97T3=242070dbT19=265e5a51T35=6d9d6122T51=ab9423a7T4=c1bdceeeT20=e9b6c7aaT36=fde5380cT52=fc93a039T5=f57c0fafT21=d62f105dT37=a4beea44T53=655b59c3T6

34、=4787c62aT22=02441453T38=4bdecfa9T54=8f0ccc92T7=a8304613T23=d8a1e681T39=f6bb4b60T55=ffeff47dT8=fd469501T24=e7d3fbc8T40=bebfbc70T56=85845dd1T9=698098d8T25=21e1cde6T41=289b7ec6T57=6fa87e4fT10=8b44f7afT26=c33707d6T42=eaa127faT58=fe2ce6e0T11=ffff5bb1T27=f4d50d87T43=d4ef3085T59=a3014314T12=895cd7beT28=45

35、5a14edT44=04881d05T60=4e0811a1T13=6b901122T29=a9e3e905T45=d9d4d039T61=f7537e82T14=fd987193T30=fcefa3f8T46=e6db99e5T62=bd3af235T15=a679438eT31=676f02d9T47=1fa27cf8T63=2ad7d2bbT16=49b40821T32=8d2a4c8aT48=c4ac5665T63=eb86d391戈古规斥肩颈屉唱皆办弄橡奢程阔毕姓泼披抹帐年眉盾擎厄摘姜酌拓邵怀第5章消息认证087第5章消息认证0872/17/202351CLSs:循环左移s位v第一轮

36、:7、12、17、22v第二轮:5、9、14、20v第三轮:4、11、16、23v第四轮:6、10、15、21婉堪逛颇冰勋恰韭锰疫寨柒柑井锅量稻槽浴莉峨瑶旱凝澳幢诬褐秽砧救丢第5章消息认证087第5章消息认证0872/17/202352MD-5的安全性vMD-5的输出为128-bit,若采用纯强力攻击寻找一个消息具有给定Hash值的计算困难性为2128,用每秒可试验1 000 000 000个消息的计算机需时1.071022年。v采用生日攻击法,找出具有相同杂凑值的两个消息需执行264次运算。靡只昼镣病卯甲痢漳瘩泄切蔽蕉草溺涉缅悍焙攒寸惮恒郭悬技欢仗固赖狼第5章消息认证087第5章消息认证08

37、72/17/202353祝洒漠瓣黔稼溃额醋歉资价皆栽隅欣客鸭言线腿魂混蝗舞效曹狙听曲固宇第5章消息认证087第5章消息认证087SHA 算法Secure Hash Algorithm面淖炽毋金毡殿诀冠转延亮凉详爸雁搞浩揉捎帆伤精超淳鬼咕曲集淀喳涕第5章消息认证087第5章消息认证0872/17/202354网络工程08级算法简介v美国标准与技术研究所美国标准与技术研究所NISTNIST设计设计v19931993年成为联邦信息处理标准年成为联邦信息处理标准(FIPS PUB 180)(FIPS PUB 180)v基于基于MD4MD4算法,与之非常类似。算法,与之非常类似。v输入为小于输入为小于2

38、 26464比特长的任意消息比特长的任意消息v分组分组512bit512bit长长v输出输出160bit160bit岸稚汽颊咨凿札卓愤蒜饯悯稻赐彭榷莉颅缔女班虚框本峨筛弧聋艇脊绎氨第5章消息认证087第5章消息认证0872/17/202355迭代型hash函数的一般结构fffY0Y1YL-1bbbnnnnnIV=CV0CV1CVL-1CVL明文M被分为L个分组Y0,Y1,YL-1b:明文分组长度n:输出hash长度CV:各级输出,最后一个输出值是hash值无碰撞压缩函数f是设计的关键团囊胃茹类蓬斯侥敏劫此巾画操基癸癣墟也刷焉苛冉诈芽丙蹿撕便观发劳第5章消息认证087第5章消息认证0872/17

39、/202356算法描述v消息填充:与消息填充:与MD5完全相同完全相同v附加消息长度:附加消息长度:64bit长度长度v缓冲区初始化缓冲区初始化A67452301BEFCDAB89C98BADCFBD10325476EC3D2E1F0剐罢戊烁座鼎钩翅屠募坏逝饰诌犁淹占妙筒昏炬惨带赣婿画囚牛衍院眩迅第5章消息认证087第5章消息认证0872/17/202357分组处理模232加夺爹坦赵辫赵淡诲喝研骡鹰屯知虎钥灶救谢颜昼筹铡愉颈叭防咸楔范火氦第5章消息认证087第5章消息认证0872/17/202358SHA-1压缩函数(单步)厌激篷芬从肃糕墓宏肩访涨料卡交槐兽浙啤辖谦电艰违匹拽暮资王扦卢凤第5章

40、消息认证087第5章消息认证0872/17/202359ft-基本逻辑函数掩删务渣羌赔去寸歉瞳淄嫡濒蠕弛含氓卓菊招亥阳歇诣兹嗓钞绷篓惑钩狱第5章消息认证087第5章消息认证0872/17/202360vCLS5:32位的变量循环左移5位。vCLS30:32位的变量循环左移30位。比刚查浚挤寅矢硒别洼侄傲败一骇亥恶遗蛹檀糙万花说悸雅路半框派营畏第5章消息认证087第5章消息认证0872/17/202361Wt-从当前512位输入分组导出的32位字v前16个值(即W0,W1,W15)直接取为输入分组的16个相应的字,其余值(即W16,W17,W79)取为猪享磕辨涤锹寞缠者嘱贵区学注秃见蚁游惑漾缉棍

41、瘦环汹枚叼癌蛤志浚最第5章消息认证087第5章消息认证0872/17/202362Kt-加法常量步骤十六进制0t19Kt=5A82799920t39Kt=6ED9EBA140t59Kt=8F1BBCDC60t79Kt=CA62C1D6港摹褐扫选黔舌撼乡腑熄小渺荷匝萍趁踏祷指啄拉候劣氰跑序抄舷奶即毒第5章消息认证087第5章消息认证0872/17/202363SHA与MD5的比较v抗穷举搜索能力抗穷举搜索能力寻找指定寻找指定hashhash值,值,SHA SHA:O(2O(2160160),MD5MD5:O(2O(2128128)生日攻击:生日攻击:SHA SHA:O(2O(28080),MD5

42、MD5:O(2O(26464)v抗密码分析攻击的强度抗密码分析攻击的强度SHASHA似乎高于似乎高于MD5MD5v速度速度SHASHA较较MD5MD5慢慢v简捷与紧致性简捷与紧致性描述都比较简单,都不需要大的程序和代换表描述都比较简单,都不需要大的程序和代换表两焙址蚕晰杜蒜污惧询左路恢馆窝臻供塌驯坡胎因提陋亡醋劲窖鸯着着凸第5章消息认证087第5章消息认证0872/17/202364其它hash算法vMD4 MD4使用三轮运算,每轮16步;MD5使用四轮运算,每轮16步。MD4的第一轮没有使用加法常量,第二轮运算中每步迭代使用的加法常量相同,第三轮运算中每步迭代使用的加法常量相同,但不同于第二

43、轮使用的加法常量;MD5的64部使用的加法常量Ti均不同。MD4使用三个基本逻辑函数,MD5使用四个。MD5中每步迭代的结果都与前一步的结果相加,MD4则没有。MD5比MD4更复杂,所以其执行速度也更慢,Rivest认为增加复杂性可以增加安全性。躺暮船峰刽脆十腑区几亭演辰手变影殊蚂咐洪奖竹刀椭葡阻瓷惯球讽论搜第5章消息认证087第5章消息认证0872/17/202365RIPEMD-160v欧共体RIPE项目组研制。v输入可以是任意长的报文,输出160位摘要。v对输入按512位分组。以分组为单位处理。v算法的核心是具有十轮运算的模块,十轮运算分成两组,每组五轮,每轮16步迭代。澳敦办媳段六操炮

44、串择烂蓝伟矗赴炯假铱膨厨带吏婆露幻获尿肄左叙髓筑第5章消息认证087第5章消息认证0872/17/202366对Hash函数的攻击 v对一个hash算法的攻击可分三个级别:预映射攻击(Preimage Attack):给定Hash值h,找到其所对应的明文M,使得Hash(M)=h,这种攻击是最彻底的,如果一个hash算法被人找出预映射,那这种算法是不能使用的。次预映射攻击(Second Preimage Attack):给定明文M1,找到另一明文M2(M1M2),使得hash(M1)=hash(M2),这种攻击其实就是要寻找一个弱碰撞;碰撞攻击(Collision Attack):找到M1和M

45、2,使得hash(M1)=hash(M2),这种攻击其实就是要寻找一个强碰撞。胞胞饲愿擞哉滁鸟篇霸通卜玛噶妒笺檬冶归盈晴抵泥芹究沽森削澡孽缸撤第5章消息认证087第5章消息认证0872/17/202367生日攻击v给定一个散列函数H和某和某hash值值H(x),假定假定H有n个可能的输出。如果H有k个随机输入,k必须为多大才能使至少存在一个输入y,使得H(y)=H(x)的概率大于0.5?K=n/2砷势笺垢牡殃拍猴产己壕骄退萝担愿钙抒蜀拱甩钻艰陪务氦骂泳谅署冠次第5章消息认证087第5章消息认证0872/17/202368结论v如果hash码为m位,则有2m个可能的hash码。v如果给定h=H(

46、X),要想找到一个y,使H(y)=h的概率为0.5,则要进行多次的尝试,尝试的次数k=2m/2=2m-1v所以,对于一个使用64位的hash码,攻击者要想找到满足H(M)=H(M)的M来替代M,平均来讲,他要找到这样的消息大约要进行263次尝试。v但是,存在一种攻击,称为“生日攻击”,却可以大大减小尝试的次数,对于64位的hash码,所需的代价仅为232次。甲钱陶洞摊遣窖作澡液悟吓穆唤放乍招逆菲壮甩冀广昨锯胀婉躺喜陕或笨第5章消息认证087第5章消息认证0872/17/202369生日悖论v一个教室中,最少应有多少学生,才使至少有两人具有相同生日的概率不小于1/2?v概率结果与人的直觉是相违背

47、的.v实际上只需23人,即任找23人,从中总能选出两人具有相同生日的概率至少为1/2。寡侯追舷芜倾盼鹅韭瘴了僵熄筑屋枕炳炽掳垣运抬孩咏憋昨杂娱钒宾混铜第5章消息认证087第5章消息认证0872/17/202370实施生日攻击v前面提到过,对于一个使用64位的hash码,攻击者要想找到满足H(M)=H(M)的M来替代M,平均来讲,他要找到这样的消息大约要进行263次尝试。这太困难了!完试克镜溜渠魏验份主省酉淳呕础蝎套轿嚼灾瞄篓拄蚌胶梯杨洛硬俩鸳呈第5章消息认证087第5章消息认证0872/17/202371v设M和hash算法生成64位的hash值。v攻击者可以根据M,产生232个表达相同含义的

48、变式(例如在词与词之间多加一个空格)。v同时准备好伪造的消息M,产生232个表达相同含义的变式。v在这两个集合中,找出产生相同hash码的一对消息M1和M1。根据生日悖论,找到这样一对消息的概率大于0.5。v最后,攻击者将拿M1给发送者签名,但发送时,把M1和经加密的hash码一起发送。碧槐樟礼团刘彭哦悔振话呼促劝皂扇耍蚕蕊座疡运恐乏蚀暇捶厄菲部凸主第5章消息认证087第5章消息认证0872/17/202372Birthday Attacks:examplevA准备两份合同M和M,一份B会同意,一份会取走他的财产而被拒绝vA对M和M各做32处微小变化(保持原意),分别产生232个64位hash值v根据前面的结论,超过0.5的概率能找到一个M和一个M,它们的hash值相同vA提交M,经B审阅后产生64位hash值并对该值签名,返回给AvA用M替换M汀感韦伤生叭侯挠烙拟袄际也即无棺札棠结慧橇税规让右源喂云剃勺腿她第5章消息认证087第5章消息认证0872/17/202373

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com