《第11部分认证理论与技术1》由会员分享,可在线阅读,更多相关《第11部分认证理论与技术1(57页珍藏版)》请在金锄头文库上搜索。
1、礼耽肌勒雅沫汤癌帕驯酱氓始纱为锦豹颖晰业出纹颁杏何泡钠冻鲸荆镜乡第11部分认证理论与技术1第11部分认证理论与技术1第第11章章 认证理论与技术认证理论与技术(1)n认证、认证码、认证、认证码、Hash函数函数活协酸措砸赡榆痞赢囤未倪厘酞烈酱妹宾登碘世窖连涎光碰决旦集望帧九第11部分认证理论与技术1第11部分认证理论与技术111.1认证与认证系统认证与认证系统认证认证(Authentication)是防止主动攻是防止主动攻击的重要技术击的重要技术,对开发系统安全性有重对开发系统安全性有重要作用要作用.n认证的主要目的认证的主要目的实体认证实体认证(发送者非冒充发送者非冒充)消息认证消息认证(验
2、证信息的完整性验证信息的完整性)肥友容酝疤稚隐富沾义灼阎郭渠吮洼助肌负再惜吁咒箍帐扮遁篱抢贿摈巷第11部分认证理论与技术1第11部分认证理论与技术111.1认证与认证系统认证与认证系统(Cont.)n网络环境中的攻击网络环境中的攻击(认证的需求认证的需求)1.泄漏泄漏2.通信量分析通信量分析3.伪装伪装(假报文假报文)4.内容篡改内容篡改(插入插入,删除删除,调换和修改调换和修改)5.序号篡改序号篡改(报文序号的修改报文序号的修改)6.计时篡改计时篡改(报文延迟或回放报文延迟或回放)7.抵赖抵赖(否认收或发某报文否认收或发某报文)1,2加密加密, 36报文认证报文认证, 7数字签名数字签名(3
3、6)逻掸兢废涯摄刃拔汾舍孙董叹您陶嗜抚保捅宜戳篙樱蛔于缎冕累谩渐姆霞第11部分认证理论与技术1第11部分认证理论与技术1 保密和认证同时是信息系统安全的两个方面,但它保密和认证同时是信息系统安全的两个方面,但它们是两个不同属性的问题,认证不能自动提供保密性,们是两个不同属性的问题,认证不能自动提供保密性,而保密性也不能自然提供认证功能。一个纯而保密性也不能自然提供认证功能。一个纯认证系统认证系统认证系统认证系统的的模型如下图所示:模型如下图所示:窜扰者信宿信源认证编码器认证译码器信道信道安全信道密钥源拴商晰姑嚷译淖丧荤恫魂颁救循紫猿适纲译蚤咆断唆苟媒薛毖亡出沉传京第11部分认证理论与技术1第1
4、1部分认证理论与技术111.1认证与认证系统认证与认证系统n三类产生认证码的函数三类产生认证码的函数报文加密报文加密以整个报文的密文为认证码以整个报文的密文为认证码;报文认证码报文认证码(MAC)是报文和密钥的公共函数,产生一个定长是报文和密钥的公共函数,产生一个定长值作为认证码值作为认证码;Hash函数函数一个将任意长度的报文映射为定长的一个将任意长度的报文映射为定长的Hash值值的公共函数的公共函数,以以Hash值作为认证码值作为认证码;痰谜漫汀筒强纫衡冰博堪钟扇沛杨阵气辙沛歹影渭穿包娃白封诱葫豫漫孵第11部分认证理论与技术1第11部分认证理论与技术111.2报文加密提供认证报文加密提供认
5、证n常规加密常规加密问题问题:如果报文是任意比特的组合如果报文是任意比特的组合,接收方接收方没有自动的方法确定报文的合法性没有自动的方法确定报文的合法性.解决方案解决方案:强调明文的某种结构强调明文的某种结构,这种结构这种结构是易于识别但不能复制且无需加密的是易于识别但不能复制且无需加密的.恒吾琴都询付窟琳勒装新笋蹦控薛馏最逼季慨腻停眠顿牧甚啊初蚌实刚麻第11部分认证理论与技术1第11部分认证理论与技术1对称加密与认证的关系对称加密与认证的关系A-B: E(K, M)n提供保密提供保密(仅仅A和和B共享密钥共享密钥K)n提供一定程度的认证提供一定程度的认证仅来自仅来自A传输中不会被更改传输中不
6、会被更改需要某种结构或冗余需要某种结构或冗余n不提供签名不提供签名接收者可以伪造报文接收者可以伪造报文发送者可以否认报文发送者可以否认报文藻休痉种匈旷秀设谣优堆录涩谁游押充黑份谆际若鞘剧升韶枝遗貉胺祁士第11部分认证理论与技术1第11部分认证理论与技术1下图的通信双方,用户下图的通信双方,用户A为发信方,用户为发信方,用户B为接收方。用户为接收方。用户B接收到信息后,通过解密来接收到信息后,通过解密来判决信息是否来自判决信息是否来自A,信息是否是完整的,有无,信息是否是完整的,有无窜扰。窜扰。信源信源信宿信宿MEEk(M)DMA方方B方方kkDk(Ek(M) 常规加密:具有机密性,可认证常规加
7、密:具有机密性,可认证流信邪稳始卑身锋霸旭瘦算蛊臂瑶塔驴窝盆胺肥曳稳淋寐酵禾剃躬肚诞沁第11部分认证理论与技术1第11部分认证理论与技术111.2报文加密提供认证报文加密提供认证(Cont.)n公开密钥加密公开密钥加密发送方用自己的私钥加密报文发送方用自己的私钥加密报文,接收方用发接收方用发送方的公钥解密送方的公钥解密(与对称密钥加密原理相与对称密钥加密原理相同同,需要某种特定报文结构需要某种特定报文结构).该方案不提供该方案不提供加密加密.发送方先用自己的密钥加密以提供认证发送方先用自己的密钥加密以提供认证,然然后使用接收方公钥加密提供保密性后使用接收方公钥加密提供保密性.缺点是缺点是效率不
8、高效率不高.汤阂桑躬娥狮揉磕鸽澄劣尹萎壳拾争狐籍垒姿匆桶舰涣呕叭命奖潞臀娠立第11部分认证理论与技术1第11部分认证理论与技术1公开密钥加密与认证的关系公开密钥加密与认证的关系nA-B: E(KUb,M)提供保密提供保密(仅仅B能解密能解密)不提供认证不提供认证nA-B: E(KRa,M)提供认证和签名提供认证和签名(仅有仅有A可加密可加密,需要某种结需要某种结构和冗余构和冗余,任何一方均能验证签名任何一方均能验证签名)nA-B: E(KUb,E(KRa, M)可提供保密可提供保密可提供认证和签名可提供认证和签名潍些拢频沧层灾坛西闽腋迹因结涉臀虾滴然悔狼哪桩骡许密借滦详关梭抢第11部分认证理论
9、与技术1第11部分认证理论与技术1KUb(B方的方的公钥公钥)MEEKUb(M)DMA方方B方方KRb(1) 公钥加密:具有机密性公钥加密:具有机密性MEE KRa(M)DMA方方B方方KRaKUb(2) 公钥加密:认证和签名公钥加密:认证和签名铅探侧腹胖实纤朱制段识烃三簧琴触也赦态庆定浙舷祖德铃砖懊姐帅筷束第11部分认证理论与技术1第11部分认证理论与技术1MEEkRa(M)EEKUb(EkRa(M)A方方KRaKUbDEkRa(M)DMB方方KRbKUa(3) 公钥加密:机密性,可认证和签名公钥加密:机密性,可认证和签名纶举泄仇蚜阶弧脯淄环赌茶坊尽列滥馈翰蹬尊嘿暂紊忱闹臭萌唯瀑烈冤揽第11
10、部分认证理论与技术1第11部分认证理论与技术111.3 报文认证码报文认证码(MAC)n认证码认证码(MAC,也称密码检验和也称密码检验和)对选定报文对选定报文,使用一个密钥使用一个密钥,产生一个短小的产生一个短小的定长数据分组定长数据分组,称认证码称认证码,并将它附加在报文并将它附加在报文中中,提供认证功能提供认证功能. (MAC = Ck(M) ,其中其中M是是可变长的报文可变长的报文, K是共享密钥是共享密钥,Ck(M)是定长的是定长的认证码认证码.)n应用认证码应用认证码,如果只有收发方知道密钥如果只有收发方知道密钥,同同时收到的时收到的MAC与计算得出的与计算得出的MAC匹配匹配:确
11、认报文未被更改确认报文未被更改;确信报文来自所谓的发送者确信报文来自所谓的发送者;如果报文包含序号如果报文包含序号,可确信该序号的正确性可确信该序号的正确性;沿蛰炼仆婶盟往便寇翼邯盯雄孙层杂胁牌诡贺耿笆骸橡鸵阀拌虫瘤杨佩厉第11部分认证理论与技术1第11部分认证理论与技术111.3 报文认证码报文认证码(Cont.)n报文认证码的基本用法报文认证码的基本用法1A-B: M | Ck(M) 提供认证提供认证, 因仅因仅A和和B共享共享K; CMMCk(M)KCK比较比较源点源点终点终点柱捎垒轮炕品炽挽佯骋酿纽措志浊惭迁驴糠俩曹隋佛慑叮邹甚垃乐鳞税弃第11部分认证理论与技术1第11部分认证理论与技
12、术111.3 报文认证码报文认证码(Cont.)n报文认证码的基本用法报文认证码的基本用法2A-B: Ek2 (M | Ck1(M) ) 提供认证提供认证, 因仅因仅A和和B共享共享K1; 提供保密提供保密,因仅因仅A和和B共享共享K2;CMEk2 (M | Ck1(M) )K1CK1比较比较源点源点终点终点EK2DK2Ck1(M)功散骨霖馈麦俄夜刀迭撩逾柿造许吏叉卯杠描绕卉劣仲瘫锰柏尿儿爵蜜县第11部分认证理论与技术1第11部分认证理论与技术111.3 报文认证码报文认证码(Cont.)n报文认证码的基本用法报文认证码的基本用法3A-B: Ek2 (M) | Ck1(Ek2 (M) ) 提供
13、认证提供认证, 因仅因仅A和和B共享共享K1; 提供保密提供保密,因仅因仅A和和B共享共享K2;CMCk1(Ek2 (M) )K1CK2比较比较源点源点终点终点EK2DK1Ek2 (M)M亲腥煎残湍荆哺含烤耻靳姨管止悔糊肉别淘积袋洼肝霄识貌寞恨搪丰戊宫第11部分认证理论与技术1第11部分认证理论与技术111.3 报文认证码报文认证码(Cont.)n为什么使用报文认证为什么使用报文认证(而不是用常规加密而不是用常规加密)适用于报文广播适用于报文广播(并不需要每个点都有密钥并不需要每个点都有密钥);报文加密解密的工作量比较大报文加密解密的工作量比较大;某些应用不关心报文的保密而只关心报文的某些应用
14、不关心报文的保密而只关心报文的真实性真实性;认证函数与保密函数的分离能提供结构上的认证函数与保密函数的分离能提供结构上的灵活性灵活性(认证与保密可在网络协议的不同层认证与保密可在网络协议的不同层次进行次进行).认证码可延长报文的保护期限认证码可延长报文的保护期限,同时能处理同时能处理报文内容报文内容(使用加密使用加密,当报文解密后当报文解密后,保护就失保护就失效了效了).磁滥干里矮拿付圭薛铅川峦聊得举箍挖念踩朔羞肚婶镣词意赴挨争震护萌第11部分认证理论与技术1第11部分认证理论与技术111.3 报文认证码报文认证码(Cont.)n注意注意认证函数类似加密函数认证函数类似加密函数,但它是不可逆的
15、但它是不可逆的,这这个性质使其比加密函数更难破解个性质使其比加密函数更难破解;认证函数并不提供数字签名认证函数并不提供数字签名;n认证码的信息论认证码的信息论*G.J. Simmons发展的认证系统的信息发展的认证系统的信息理论理论,类似保密系统的信息理论类似保密系统的信息理论,也是将也是将信息论用于研究认证系统的理论安全信息论用于研究认证系统的理论安全性和实际安全性问题性和实际安全性问题,指出认证系统的指出认证系统的性能极限以及设计认证码必须遵循的性能极限以及设计认证码必须遵循的原则原则,是研究认证问题的理论基础是研究认证问题的理论基础.映融倘巳韭顾豫颜者忽我粗任蝇灭株锋氖侯吾紊今赵大疵在沃
16、事偿岸旁砸第11部分认证理论与技术1第11部分认证理论与技术111.3 报文认证码报文认证码(Cont.)nMAC函数应有如下性质函数应有如下性质(攻击者没有攻击者没有K):有有M和和Ck(M),试图生成试图生成M, 使得使得Ck(M)= Ck(M), 这在计算上不可行这在计算上不可行;Ck(M)应能均匀分布应能均匀分布;对于随机选取的报文对于随机选取的报文M和和M, Ck(M)= Ck(M)的概率为的概率为2-n其中其中n 为为 MAC的比特长度的比特长度;(抗选择明文攻击抗选择明文攻击)报文报文M为为M的某种已知代换的某种已知代换,即即M=f(M),则则Ck(M)= Ck(M)的概率为的概
17、率为2-n.克罕排滑宰悼饭丧劲艾绽摆潮镜幸兜捻峦基句查坛亮俄历已澎铅赁陈皑寄第11部分认证理论与技术1第11部分认证理论与技术111.3 报文认证码报文认证码(Cont.)n基于基于DES的报文认证码的报文认证码描述如下描述如下:被认证报文分成连续的被认证报文分成连续的64bit分组分组:D1,D2, Dn(必要时用必要时用0填充填充).使用使用DES算法算法E,密钥密钥K,数据认证码计算如下数据认证码计算如下(16= M B: Ek(M | H(M) )提供保密提供保密(仅仅A和和B共享共享K)提供认证提供认证(加密保护加密保护 H(M) )(b) A-B: M | Ek( H(M) )提供
18、认证提供认证(加密保护加密保护 H(M) )(c) A- B: M | EKRa( H(M) )提供认证和数字签名提供认证和数字签名(加密保护加密保护 H(M) ,且仅且仅A能生成能生成EKRa( H(M) )快爵贪缕立祸堕脾窍曰氮寝私同汀椽蛹誊雁了各林哈菇扦尊屏占搞钙懒噬第11部分认证理论与技术1第11部分认证理论与技术111.4Hash函数函数(Cont.)n使用使用Hash码提供报文认证的方式码提供报文认证的方式(续续.)(d) A-B: Ek(M | EKRa( H(M) ) )提供认证和数字签名提供认证和数字签名提供保密提供保密(仅仅A和和B共享共享K)(e)A-B: M | H(M
19、 | S)提供认证提供认证(S是通信双方共享的一个秘密值是通信双方共享的一个秘密值, 仅仅A和和B共享共享S)(f)A-B: Ek(M | H(M | S )提供认证和数字签名提供认证和数字签名(仅仅A和和B共享共享S)提供保密提供保密(仅仅A和和B共享共享K)猿彬铲敷蔡泊剩泪彩陪暗乓救拉茫斌孩胜帜狠椰歇绘刹灰烬喧棱市妮磨郡第11部分认证理论与技术1第11部分认证理论与技术111.4 Hash函数函数(Cont.)n为什么要避免加密的方法为什么要避免加密的方法?(见方法见方法(e) )加密软件慢加密软件慢;加密硬件开销不可忽略加密硬件开销不可忽略;加密硬件是针对大长度数据进行优化加密硬件是针对
20、大长度数据进行优化的的(换而言之换而言之,对小数据分组加密开销大对小数据分组加密开销大);加密算法可能受专利保护加密算法可能受专利保护;加密算法易遭美国政府的出口限制加密算法易遭美国政府的出口限制;敛蛰灸歪肤音渴冠隙邀衰步曲渴亿错烷湿晓婿陷削从嫉乎壹啡侥窜踩缀兄第11部分认证理论与技术1第11部分认证理论与技术111.4 Hash函数函数(Cont.)nHash函数的需求函数的需求H能用于任何大小的数据分组能用于任何大小的数据分组;H产生定长输出产生定长输出;对任意给定的对任意给定的x, H(x)要相对易于计算要相对易于计算,使得使得软硬件实现都实际可行软硬件实现都实际可行;对任意给定的码对任
21、意给定的码h, 寻求寻求x使得使得H(x)=h在计算在计算上是不可行的上是不可行的(单向性单向性);任意给定分组任意给定分组x, 寻求不等于寻求不等于x的的y, 使得使得H(y)= H(x)在计算上不可行在计算上不可行(弱抗攻击性弱抗攻击性);寻求对任何的寻求对任何的(x,y)对使得对使得H(x)=H(y)在计算在计算上不可行上不可行(强抗攻击性强抗攻击性);韦钝萎嘘砾顶寒甫时伏晤冉良庄掌孕训鼎苦莲敞庸航待痢晤答轩琉吠掇癣第11部分认证理论与技术1第11部分认证理论与技术111.4 Hash函数函数(Cont.)n简单的简单的Hash函数函数每个分组按比特异或每个分组按比特异或:Ci = bi
22、1 bi2 . bim其中其中, Ci是第是第i个比特的个比特的Hash码码,1 i n; m是输入的是输入的n比特分组数比特分组数; bij是第是第j分组的第分组的第i比特比特; (简单的奇偶校验简单的奇偶校验)针对应用中的可预测数据格式针对应用中的可预测数据格式,提出如下提出如下改进方案改进方案:鞭袱篆它抬余章爆服网嫂俐看梢谬杖跪官敞缀茧长寨哀效槐睁盔旱申寞面第11部分认证理论与技术1第11部分认证理论与技术111.4 Hash函数函数(Cont.)n简单的简单的Hash函数的改进方案函数的改进方案先将先将n比特的比特的Hash值设置为值设置为0;按如下方式依次处理数据分组按如下方式依次处
23、理数据分组:将当前的将当前的Hash值循环左移一位值循环左移一位.将数据分组与将数据分组与Hash值异或形成新的值异或形成新的Hash值值.这将起到输入数据完全随机化的效果这将起到输入数据完全随机化的效果,并且并且将输入中的数据格式掩盖掉将输入中的数据格式掩盖掉.赐哩邓豹笆瑞茁备钢颓岁每眉津链媳宦酝眺章背断辉阵菲迄哩擦转蕊窗熟第11部分认证理论与技术1第11部分认证理论与技术111.4 Hash函数函数(Cont.)n生日攻击生日攻击(基于生日悖论基于生日悖论) 在在k个人中个人中,找一个与某人生日相同的人的找一个与某人生日相同的人的概率超过概率超过0.5时时,只需只需k183; 而在此人群中
24、而在此人群中,至少有两个人生日相同的概率超过至少有两个人生日相同的概率超过0.5,只需只需k23.适泡轮呕赡疚叁兵咎摔绅痛恢泌吉后怕疡缀磊壹讥讨威策萝论俄死觉出钟第11部分认证理论与技术1第11部分认证理论与技术1第第12章章 Hash算法算法nMD5和和MD4n安全安全Hash算法算法SHAnRIPEMD-160nHMAC苯猾缩网妓磊透普蜜遥阻妓耸讼太澎您坪必贤柯叔确掸竭揩势级纂栏阜共第11部分认证理论与技术1第11部分认证理论与技术1bY0nIV=CV0fbY1nfbYL-1nCVL-1fCV1nnIV = 初始值初始值CV = 链接值链接值Yi = 第第i 个输入数据块个输入数据块f =
25、 压缩算法压缩算法n = Hash码的长度码的长度b = 输入块的长度输入块的长度安全安全Hash算法的一般结构算法的一般结构CVLCV0=IV= initial n-bit valueCVi=f(CVi-1, Yi-1) (1 i L)H(M) = CVL聪展恫乍报读赔匿严呸邵厉罚掇找您介盏赏阳推桥令骸衍藏窘孕常铂被狄第11部分认证理论与技术1第11部分认证理论与技术1MD5 算法算法n输入:任意长度的消息输入:任意长度的消息n输出:输出:128位消息摘要位消息摘要n处理:以处理:以512位输入数据块为单位位输入数据块为单位MD5 (RFC 1321) was developed by Ro
26、n Rivest (“R” of the RSA )at MIT in 90s.频伴位趁蔬斩雹寐委屑馒扦胰蒂楞沂骇训形拐裴浙踞娄陪倔吗曹牲粤迪助第11部分认证理论与技术1第11部分认证理论与技术1报文报文K bitsL 512 bits=N 32bits报文长度报文长度(K mod 264)填充填充(1 to 512 bits)1000Y0512 bitsY1512 bitsYq512 bitsYL-1512 bitsHMD5IV128HMD5CV1128HMD5CVq128HMD5CVL-1128512512512512128-bit 摘要摘要MD5产生报文摘要的过程产生报文摘要的过程形蛀犯
27、呕怨完最时吱测君着安丘契捆听贼绦壹定殖澈设肩喀梁穷谜帧梳挞第11部分认证理论与技术1第11部分认证理论与技术1MD5算法描述算法描述步骤步骤1:添加填充位添加填充位(一个一个1 和若干个和若干个0)。在消息的。在消息的最后添加适当的填充位使得数据位的长度满足最后添加适当的填充位使得数据位的长度满足length 448 mod 512。步骤步骤2:添加长度添加长度。原始消息长度(二进制位的个。原始消息长度(二进制位的个数),用数),用64位表示。如果长度超过位表示。如果长度超过264位,则仅取最位,则仅取最低低64位,即位,即mod 264。到此为止,我们已经得到一个到此为止,我们已经得到一个5
28、12位的整倍数长度位的整倍数长度的新的消息。可以的新的消息。可以表示为表示为L个个512位的数据块:位的数据块:Y0,Y1,YL-1。其长度。其长度为为L 512bits。令。令N=L 16,则长度则长度为为N个个32位的字。令位的字。令M0N-1表示以字为单位的消表示以字为单位的消息表示。息表示。砚病珠率歌暮瓣肩蓬蓬拿人卡堪岂晌岿酒篙嫌机厌涂袖勾吗扼奈迟若考勇第11部分认证理论与技术1第11部分认证理论与技术1MD5算法描述算法描述(Cont.)n步骤步骤3:初始化初始化MD缓冲区缓冲区。一个。一个128位位MD缓冲区用以保存中间和最终缓冲区用以保存中间和最终Hash函函数的结果。它可以表示
29、为数的结果。它可以表示为4个个32位的寄存位的寄存器器(A,B,C,D)。 寄存器初始化为以下的寄存器初始化为以下的16进制值。进制值。A = 67452301B = EFCDAB89C = 98BADCFED = 10325476波颅犀酗饥曝憨薯拯膜饮嘶钾匈维蕴含猿头闲窘溪斋沽责萍抒咯坎殉即潮第11部分认证理论与技术1第11部分认证理论与技术1MD5算法描述算法描述(Cont.)n上述值的存储方式为:上述值的存储方式为:Word A: 01 23 45 67Word B: 89 AB CD EFWord C: FE DC BA 98Word D: 76 54 32 10椽集匪册发收焚匠剿琐欺
30、现晚兄镭矾纲纂烯端向崔鳖噪演因陌任肩烂尚回第11部分认证理论与技术1第11部分认证理论与技术1MD5算法描述算法描述(Cont.)n步骤步骤4:处理消息块处理消息块(512位位 = 16个个32位位字)。压缩函数是本算法的核心字)。压缩函数是本算法的核心(HMD5)。它包括它包括4轮处理。四轮处理具有相似的结轮处理。四轮处理具有相似的结构构,但每次使用不同的但每次使用不同的基本逻辑函数基本逻辑函数,记,记为为F,G,H,I。每一轮以当前的。每一轮以当前的512位数据块位数据块(Yq)和和128位缓冲值位缓冲值ABCD作为输入,并作为输入,并修改缓冲值的内容。每次使用修改缓冲值的内容。每次使用6
31、4元素表元素表T164中的四分之一中的四分之一.蜒阶刃扛欢点漠碰裕惕徒丧孜磨遂泻切幸昧防官羌滨直感纶弦乙踊签桌莆第11部分认证理论与技术1第11部分认证理论与技术1T表表,由,由sin 函数构造而成。函数构造而成。T的第的第i个元素表示为个元素表示为Ti,其值等于,其值等于 232 abs(sin(i),其中其中i是弧度。由于是弧度。由于abs(sin(i)是一个是一个0到到1之间的数,之间的数,T的每一个元素是一的每一个元素是一个可以表示成个可以表示成32位的整数。位的整数。T表提供了随机化的表提供了随机化的32位位模板,消除了在输入数据中的任何规律性的特征。模板,消除了在输入数据中的任何规
32、律性的特征。 T1 = D76AA478T2 = E8C7B756T3 = 242070DBT4 = C1BDCEEET16 = 49b40821T49 = F4292244T50 = 432AFF97T51 = AB9423A7T52 = FC93A039T64 = EB86D391止送皱撵缩噬花恋孰茨桓鸣晨隆蓬类炊伦噪篡判憎窄荒没贯腊你午枯盒后第11部分认证理论与技术1第11部分认证理论与技术1步骤步骤5:输出结果输出结果。所有。所有L个个512位数据块处理完毕后,最位数据块处理完毕后,最后的结果就是后的结果就是128位消息摘要。位消息摘要。 CV0 = IV CVq+1 = SUM32(
33、CVq,RFIYq,RFHYq,RFGYq,RFFYq,CVq) MD = CVL 其中:其中:IV = ABCD的初始值(见步骤的初始值(见步骤3) Yq = 消息的第消息的第q个个512位数据块位数据块 L = 消息中数据块数;消息中数据块数; CVq = 链接变量,用于第链接变量,用于第q个数据块的处理个数据块的处理 RFx = 使用基本逻辑函数使用基本逻辑函数x的一轮功能函数。的一轮功能函数。 MD = 最终消息摘要结果最终消息摘要结果 SUM32=分别按分别按32位字计算的模位字计算的模232加法结果。加法结果。MD5算法描述算法描述(Cont.)谩讥神惑诵殃阶柞报暮卿葫替斜劳兢海龙
34、蟹诬卓磅藉静紊瘸座婚湍紧爆麓第11部分认证理论与技术1第11部分认证理论与技术1F,T116,Xi16 stepsG,T1732,X2i16 stepsH,T3348,X3i16 stepsI,T4964,X4i16 steps+ABCDABCDABCDABCDCVq12832Yq512CVq+1128单个单个 512-bit 分组的分组的MD5 处理过程处理过程+ is mod 232单莹流碰炳耪镍抬秽粤狸枷荔假滨二参柒龄豢试邪禁织釉茹驹至唐收蛆迎第11部分认证理论与技术1第11部分认证理论与技术1MD5 压缩函数压缩函数每一轮包含对缓冲区每一轮包含对缓冲区ABCD的的16步操作所组成的一个
35、步操作所组成的一个序列。序列。ab + ( a + g(b,c,d) + Xk +Ti)s)其中,其中,a,b,c,d = 缓冲区的四个字,以一个给定的次序排列缓冲区的四个字,以一个给定的次序排列;g = 基本逻辑函数基本逻辑函数F,G,H,I之一;之一;s = 对对32位字循环左移位字循环左移s位位Xk = Mq 16 + k = 在第在第q个个512位数据块中的第位数据块中的第k个个32位字位字Ti = 表表T中的第中的第i个个32位字;位字;+ = 模模 232的加;的加;言茫俊烧抠损庄短员涛凰刃糯祝插湾蔬诫馒昔豫奸要菊钩扇蛊雅政冒辟眠第11部分认证理论与技术1第11部分认证理论与技术1
36、逻辑函数的真值表逻辑函数的真值表b c d F G H I0 0 0 0 0 0 10 0 1 1 0 1 00 1 0 0 1 1 00 1 1 1 0 0 11 0 0 0 0 1 11 0 1 0 1 0 11 1 0 1 1 0 01 1 1 1 1 1 0愈肪崖坐款品雕缮讶向辰煤续彝临揖妻喻豫挑忿扒奄骇溅稼雄浦瞒悯靡烹第11部分认证理论与技术1第11部分认证理论与技术1ABCDABCD+CLSs+gXkTiFunction g g(b,c,d)1 F(b,c,d) (b c) (b d)2 G(b,c,d) (b d) (c d)3 H(b,c,d) b c d4 I(b,c,d)
37、c (b d)2i = (1+5i) mod 163i = (5+3i) mod 164i = 7i mod 16基本基本MD5操作操作(单步单步)惦啪钉惦剪桓堂叁拒傈爷补娃甘则邱异斡伐变碱药踏裁慰钠滔烬秃菩锈铀第11部分认证理论与技术1第11部分认证理论与技术1MD4 (1990年年10月作为月作为RFC1320发表发表) by Ron Rivest at MITMD4的设计目标的设计目标安全性:安全性:速度:速度:32位体系结构下计算速度快位体系结构下计算速度快.简明与紧凑:易于编程简明与紧凑:易于编程.有利的小数在前的结构有利的小数在前的结构(Intel 80xxx, Pentium )
38、MD4与与MD5的区别的区别MD4用用3轮轮,每轮每轮16 步步,MD5用用4轮轮,每轮每轮16步步.MD4中第一轮没有常量加;中第一轮没有常量加;MD5中中64步每一步每一步用了一个不同的常量步用了一个不同的常量 Ti;MD5用了四个基本逻辑函数,每轮一个;用了四个基本逻辑函数,每轮一个;MD4用了三个用了三个.MD5每轮加上前一步的结果;每轮加上前一步的结果;MD4没有没有.蝗决颧锌柔圣机陪丘守境的麻哮靡在杖匣石吴挪希呀屉舔渣奔倡箕嘛惑穴第11部分认证理论与技术1第11部分认证理论与技术1SHA-1 算法逻辑算法逻辑n输入:最大长度为输入:最大长度为264位的消息;位的消息;n输出:输出:
39、160位消息摘要;位消息摘要;n处理:输入以处理:输入以512位数据块为单位处理;位数据块为单位处理;SHA由美国国家标准技术研究所由美国国家标准技术研究所NIST开发,作为联邦开发,作为联邦信息处理标准信息处理标准于于1993年发表(年发表(FIPS PUB 180),),1995年修订,作为年修订,作为SHA-1(FIPS PUB 180-1),SHA-1基于基于MD4设计。设计。夕丑豆鄙滁舶楷暖猖纲洒寝坚斑索擂戒硅割伤严鹰锅贪陆位史买檬仆好桶第11部分认证理论与技术1第11部分认证理论与技术1SHA-1 算法描述算法描述步骤步骤1:添加填充位添加填充位(一个一个1 和若干个和若干个0)。
40、在。在消息的最后添加适当的填充位使得数据位的消息的最后添加适当的填充位使得数据位的长度满足长度满足length 448 mod 512。步骤步骤2:添加长度添加长度。一个。一个64位块,表示原始位块,表示原始消息长度,消息长度,64位无符号整数。位无符号整数。 步骤步骤3:初始化初始化MD缓冲区缓冲区。一个。一个160位位MD缓冲区用以保存中间和最终缓冲区用以保存中间和最终Hash函数的结函数的结果。它可以表示为果。它可以表示为5个个32位的寄存器位的寄存器(A,B,C,D,E)。魄燕雨辗剧维币琅纂钙董砖耗昏函诽五妙常秽居憎铝漾鞍萌独吧铃佬贸值第11部分认证理论与技术1第11部分认证理论与技术
41、1初始化为:初始化为:A = 67452301B = EFCDAB89C = 98BADCFED = 10325476E = C3D2E1F0前四个与前四个与MD5相同,但存储为大数在前的形式相同,但存储为大数在前的形式.步骤步骤4:以:以512位数据块为单位位数据块为单位处理消息处理消息。四轮,。四轮,每轮每轮20步。四个基本逻辑函数:步。四个基本逻辑函数:f1,f2,f3,f4步骤步骤5:输出输出。全部。全部L个个512位数据块处理完毕后,位数据块处理完毕后,输出输出160位消息摘要。位消息摘要。平窘辟基朴臂抚撒爬瞳书忌苔棵乳钒柒颈仔陨艺役慌嘎葱职埋脐左讫辐疥第11部分认证理论与技术1第1
42、1部分认证理论与技术1CV0 = IVCVq+1 = SUM32(CVq, ABCDEq)MD = CVL其中:其中:IV = ABCDE的初始值;的初始值; ABCDEq对第对第q轮消息数据块处理最轮消息数据块处理最后一轮所得的结果;后一轮所得的结果; L = 数据块的个数数据块的个数 SUM32 = 对每一个输入对的字求加对每一个输入对的字求加模模232 MD = 最后的消息摘要值。最后的消息摘要值。壁窜嘛假泌成联兵锚栈沏拒锗嗅穷羊储厩缺成儿饿煎魏采殴谎房雇岁避斑第11部分认证理论与技术1第11部分认证理论与技术1ABCDABCD+ftEES5WtKtS30基本基本SHA操作操作(单步单步
43、)倔惨趟铡澜躬葬道绚邯孝蹄底顶著郭辅喝结蔬汽童韧揖戏蛋朔卓读楷惑毕第11部分认证理论与技术1第11部分认证理论与技术1SHA-1 压缩函数压缩函数A,B,C,D,E (E + f(t,B,C,D)+S5(A) +Wt + Kt),A,S30(B),C,D其中,其中,A,B,C,D,E = 缓冲区的缓冲区的5个字;个字;t = 步数,步数,0= t = 79;f(t,B,C,D) = 步步t的基本逻辑函数;的基本逻辑函数;Sk = 循环左移循环左移k位给定的位给定的32位字;位字;Wt = 一个从当前一个从当前512数据块导出数据块导出的的32位字;位字;Kt = 一个用于加法的常量,四一个用于
44、加法的常量,四个不同的值,如前所述个不同的值,如前所述+ = 加模加模232。臣语楞桩控硼涸侈恬轰惜糊戴湖辉库愿忱扦冤过烯态槽烘郎衫挞磅拖隆绎第11部分认证理论与技术1第11部分认证理论与技术1f1,K,W01920 stepsf2,K,W203920 stepsf3,K,W405920 stepsf4,K,W607920 steps+ +ABCEAEAEAECVq16032Yq512CVq+1160SHA-1 Processing ofa single 512-bit block+ is mod 232DBCDBCDBCD+革眨络侧职马徊糊臆驮碟沧脓尖记煞代芋筏堆叔锰音宛如深痪斯蚊闷撩驹第1
45、1部分认证理论与技术1第11部分认证理论与技术1StepFunction NameFunction Value(0 t 19)f1 = f(t,B,C,D)(B C) (B D)(20 t 39)f2 = f(t,B,C,D) B C D(40 t 59)f3 = f(t,B,C,D) (B C) (B D) (C D)(60 t 79)f4 = f(t,B,C,D) B C DWt = S1(Wt-16 Wt-14 Wt-3 )Yq512bitsW0W1W15W16 S1XORW0 W2 W8 W13Wt S1XORWt-16 Wt-14 Wt-8 Wt-3W79 S1XORW63 W65
46、W71 W76欧丝计享玫悠觅剔教舱雾朱痕错畦步绝折菲哦诛溅良媳深颤混箱霍册积轰第11部分认证理论与技术1第11部分认证理论与技术1RIPEMD-160n输入:任意长度的消息输入:任意长度的消息n输出:长度为输出:长度为160位的消息摘要位的消息摘要n处理:以处理:以512位数据块为单位位数据块为单位欧洲欧洲RACE Integrity Primitives Evaluation(RIPE) Project.最早为最早为128位位RIPEMD,后改进成为后改进成为160位消息摘要。位消息摘要。底痹湿馒震洒迈钧养跺拴爸荡浇金拯芹择悍挠粳笔否鼓墨崖幸唉铺刻委醛第11部分认证理论与技术1第11部分认证
47、理论与技术1RIPEMD-160 Logic步骤步骤1:添加填充位。:添加填充位。100,满足,满足length 448 mod 512步骤步骤2:添加长度。:添加长度。64位无符号整数,位无符号整数,little-endian步骤步骤3:初始化:初始化MD缓冲区。缓冲区。A = 67452301B = EFCDAB89C = 98BADCFED = 10325476E = C3D2E1F0步骤步骤4:处理:处理512位消息数据块(位消息数据块(16字)。字)。10轮,每轮轮,每轮16步;步;基本逻辑函数:基本逻辑函数:f1,f2,f3,f4,f5攒金紫藤淋局闭考蛀系爸鼎邱混绚洗您耪钠傀婪毡端
48、啊唱渺九沉潞涵辊闻第11部分认证理论与技术1第11部分认证理论与技术1比较比较: MD5SHA-1RIPEMD-160摘要长度摘要长度 128位位160位位160位位基本处理单位基本处理单位 512位位512位位512位位步数步数 64(4 of 16)80(4 of 20)160(5 paired of 16)最大消息长度最大消息长度 无限无限264-1位位264-1位位基本逻辑函数基本逻辑函数 445加法常数加法常数 6449Endianness Little-endianBig-endianLittle-endian性能性能 32.4 Mbps14.4Mbps13.6MbpsHttp:/
49、 (RFC 2104)n基于基于hash函数的消息认证码(函数的消息认证码(MAC)nMAC for IP securitynSSL再措思聂哑绍地阉悔钉腿但煽怀对巩低孝德茎迪还袜撑胞众巢列漫的捉碳第11部分认证理论与技术1第11部分认证理论与技术1HMAC算法算法H = 嵌入嵌入Hash函数(函数(MD5,SHA-1,RIPEMD-160)M = 消息(包括消息(包括Hash函数所需填充位)函数所需填充位)Yi = M的第的第i 个数据块,个数据块,0 i L-1L = M的数据块数的数据块数b = 数据块的位数数据块的位数n = 嵌入嵌入Hash函数产生的函数产生的Hash码长度位数码长度位
50、数K = 保密密钥。如果密钥长度大于保密密钥。如果密钥长度大于b,则密钥送入则密钥送入Hash函数函数 形成一个形成一个n位的密钥;推荐程度大于等于位的密钥;推荐程度大于等于nK+ = K在左部添加在左部添加0使得其长度为使得其长度为b位位ipad = 00110110重复重复 b/8次次opad = 01011010重复重复b/8次次HMACK = HK+ opad) | H(K+ ipad)| M缎泥项践公苑掉军滚复禽铲敖飘羹岔晓捶肚炔伞军淮咀杀旦葱搜林饰翰透第11部分认证理论与技术1第11部分认证理论与技术1HMAC的结构蔚既哇季把蹿铺降栽莎回秦眩动媒坑瘴胆览派炊硅雷侮堤椅嘴勘涉倾炉袖第11部分认证理论与技术1第11部分认证理论与技术1