《认证理论与技术》PPT课件

上传人:san****019 文档编号:23740814 上传时间:2021-06-10 格式:PPT 页数:57 大小:605.31KB
返回 下载 相关 举报
《认证理论与技术》PPT课件_第1页
第1页 / 共57页
《认证理论与技术》PPT课件_第2页
第2页 / 共57页
《认证理论与技术》PPT课件_第3页
第3页 / 共57页
点击查看更多>>
资源描述
第11章 认证理论与技术(1)n认证、认证码、Hash函数 11.1认证与认证系统认证(Authentication)是防止主动攻击的重要技术,对开发系统安全性有重要作用.n认证的主要目的实体认证(发送者非冒充)消息认证(验证信息的完整性) 11.1认证与认证系统(Cont.)n网络环境中的攻击(认证的需求) 1.泄漏 2.通信量分析 3.伪装(假报文) 4.内容篡改(插入,删除,调换和修改) 5.序号篡改(报文序号的修改) 6.计时篡改(报文延迟或回放) 7.抵赖(否认收或发某报文)1,2加密, 36报文认证, 7数字签名(36) 保密和认证同时是信息系统安全的两个方面,但它们是两个不同属性的问题,认证不能自动提供保密性,而保密性也不能自然提供认证功能。一个纯的模型如下图所示:窜扰者信宿信源认证编码器认证译码器信道安全信道密钥源 11.1认证与认证系统n三类产生认证码的函数报文加密以整个报文的密文为认证码;报文认证码(MAC)是报文和密钥的公共函数,产生一个定长值作为认证码; Hash函数一个将任意长度的报文映射为定长的Hash值的公共函数,以Hash值作为认证码; 11.2报文加密提供认证n常规加密问题:如果报文是任意比特的组合,接收方没有自动的方法确定报文的合法性.解决方案:强调明文的某种结构,这种结构是易于识别但不能复制且无需加密的. 对称加密与认证的关系A-B: E(K, M)n提供保密(仅A和B共享密钥K)n提供一定程度的认证仅来自A传输中不会被更改需要某种结构或冗余n不提供签名接收者可以伪造报文发送者可以否认报文 下图的通信双方,用户A为发信方,用户B为接收方。用户B接收到信息后,通过解密来判决信息是否来自A,信息是否是完整的,有无窜扰。信源信宿M E Ek(M) D MA方B方k kD k(Ek(M) 常规加密:具有机密性,可认证 11.2报文加密提供认证(Cont.)n公开密钥加密发送方用自己的私钥加密报文,接收方用发送方的公钥解密(与对称密钥加密原理相同,需要某种特定报文结构).该方案不提供加密.发送方先用自己的密钥加密以提供认证,然后使用接收方公钥加密提供保密性.缺点是效率不高. 公开密钥加密与认证的关系n A-B: E(KUb,M)提供保密(仅B能解密)不提供认证n A-B: E(KRa,M)提供认证和签名(仅有A可加密,需要某种结构和冗余,任何一方均能验证签名)n A-B: E(KUb,E(KRa, M)可提供保密可提供认证和签名 KUb(B方的公钥)M E EKUb(M) D MA方B方KRb(1) 公钥加密:具有机密性M E E KRa(M) D MA方B方KRa KUb(2) 公钥加密:认证和签名 M E EkRa(M) E EKUb(EkRa(M)A方KRa KUbD EkRa(M) D M B方KRb KUa(3) 公钥加密:机密性,可认证和签名 11.3 报文认证码(MAC)n认证码(MAC,也称密码检验和)对选定报文,使用一个密钥,产生一个短小的定长数据分组,称认证码,并将它附加在报文中,提供认证功能. (MAC = Ck(M) ,其中M是可变长的报文, K是共享密钥,Ck(M)是定长的认证码.)n应用认证码,如果只有收发方知道密钥,同时收到的MAC与计算得出的MAC匹配:确认报文未被更改;确信报文来自所谓的发送者;如果报文包含序号,可确信该序号的正确性; 11.3 报文认证码(Cont.)n报文认证码的基本用法1A-B: M | Ck(M) 提供认证, 因仅A和B共享K; CM MC k(M)K CK比较源点终点 11.3 报文认证码(Cont.)n报文认证码的基本用法2A-B: Ek2 (M | Ck1(M) ) 提供认证, 因仅A和B共享K1; 提供保密,因仅A和B共享K2;CM E k2 (M | Ck1(M) )K1 CK1比较源点终点EK2 DK2 Ck1(M) 11.3 报文认证码(Cont.)n报文认证码的基本用法3A-B: Ek2 (M) | Ck1(Ek2 (M) ) 提供认证, 因仅A和B共享K1; 提供保密,因仅A和B共享K2;CM C k1(Ek2 (M) )K1 C K2比较源点终点EK2 DK1Ek2 (M) M 11.3 报文认证码(Cont.)n为什么使用报文认证(而不是用常规加密)适用于报文广播(并不需要每个点都有密钥);报文加密解密的工作量比较大;某些应用不关心报文的保密而只关心报文的真实性;认证函数与保密函数的分离能提供结构上的灵活性(认证与保密可在网络协议的不同层次进行).认证码可延长报文的保护期限,同时能处理报文内容(使用加密,当报文解密后,保护就失效了). 11.3 报文认证码(Cont.)n注意认证函数类似加密函数,但它是不可逆的,这个性质使其比加密函数更难破解;认证函数并不提供数字签名;n认证码的信息论*G.J. Simmons发展的认证系统的信息理论,类似保密系统的信息理论,也是将信息论用于研究认证系统的理论安全性和实际安全性问题,指出认证系统的性能极限以及设计认证码必须遵循的原则,是研究认证问题的理论基础. 11.3 报文认证码(Cont.)n MAC函数应有如下性质(攻击者没有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)的概率为2-n. 11.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) )提供认证(加密保护 H(M) )(c) A- B: M | EKRa( H(M) )提供认证和数字签名(加密保护 H(M) ,且仅A能生成E KRa( H(M) ) 11.4Hash函数(Cont.)n使用Hash码提供报文认证的方式(续.) (d) A-B: Ek(M | EKRa( H(M) ) )提供认证和数字签名提供保密(仅A和B共享K)(e)A-B: M | H(M | S)提供认证(S是通信双方共享的一个秘密值, 仅A和B共享S)(f)A-B: Ek(M | H(M | S )提供认证和数字签名(仅A和B共享S)提供保密(仅A和B共享K) 11.4 Hash函数(Cont.)n为什么要避免加密的方法?(见方法(e) )加密软件慢;加密硬件开销不可忽略;加密硬件是针对大长度数据进行优化的(换而言之,对小数据分组加密开销大);加密算法可能受专利保护;加密算法易遭美国政府的出口限制; 11.4 Hash函数(Cont.)n Hash函数的需求 H能用于任何大小的数据分组; H产生定长输出;对任意给定的x, H(x)要相对易于计算,使得软硬件实现都实际可行;对任意给定的码h, 寻求x使得H(x)=h在计算上是不可行的(单向性);任意给定分组x, 寻求不等于x的y, 使得H(y)= H(x)在计算上不可行(弱抗攻击性);寻求对任何的(x,y)对使得H(x)=H(y)在计算上不可行(强抗攻击性); 11.4 Hash函数(Cont.)n简单的Hash函数每个分组按比特异或:Ci = bi1bi2 . bim其中, Ci是第i个比特的Hash码,1in; m是输入的n比特分组数; bij是第j分组的第i比特; (简单的奇偶校验)针对应用中的可预测数据格式,提出如下改进方案: 11.4 Hash函数(Cont.)n简单的Hash函数的改进方案先将n比特的Hash值设置为0;按如下方式依次处理数据分组:将当前的Hash值循环左移一位.将数据分组与Hash值异或形成新的Hash值.这将起到输入数据完全随机化的效果,并且将输入中的数据格式掩盖掉. 11.4 Hash函数(Cont.)n生日攻击(基于生日悖论) 在k个人中,找一个与某人生日相同的人的概率超过0.5时,只需k183; 而在此人群中,至少有两个人生日相同的概率超过0.5,只需k23. 第12章 Hash算法n MD5和MD4n安全Hash算法SHAn RIPEMD-160n HMAC bY0nIV=CV0 f bY1n f bYL-1nCVL-1 fCV1 n nIV = 初始值CV = 链接值Yi = 第i 个输入数据块f = 压缩算法n = Hash码的长度b = 输入块的长度安全Hash算法的一般结构CVLCV0=IV= initial n-bit valueCVi=f(CVi-1, Yi-1) (1 i L)H(M) = CVL MD5 算法n输入:任意长度的消息n输出:128位消息摘要n处理:以512位输入数据块为单位MD5 (RFC 1321) was developed by Ron Rivest (“R” of the RSA )at MIT in 90s. 报文K bitsL512 bits=N 32bits报文长度(K mod 264)填充(1 to 512 bits)1000Y0512 bits Y1512 bits Yq512 bits YL-1512 bitsH MD5IV128 HMD5CV1128 HMD5CVq128 HMD5CVL-1128512 512512512 128-bit 摘要MD5产生报文摘要的过程 MD5算法描述步骤1:添加填充位(一个1 和若干个0)。在消息的最后添加适当的填充位使得数据位的长度满足length 448 mod 512。步骤2:添加长度。原始消息长度(二进制位的个数),用64位表示。如果长度超过264位,则仅取最低64位,即mod 264。到此为止,我们已经得到一个512位的整倍数长度的新的消息。可以表示为L个512位的数据块:Y 0,Y1,YL-1。其长度为L512bits。令N=L16,则长度为N个32位的字。令M0N-1表示以字为单位的消息表示。 MD5算法描述(Cont.)n步骤3:初始化MD缓冲区。一个128位MD缓冲区用以保存中间和最终Hash函数的结果。它可以表示为4个32位的寄存器(A,B,C,D)。 寄存器初始化为以下的16进制值。A = 67452301B = EFCDAB89C = 98BADCFED = 10325476 MD5算法描述(Cont.)n上述值的存储方式为:Word A: 01 23 45 67Word B: 89 AB CD EFWord C: FE DC BA 98Word D: 76 54 32 10 MD5算法描述(Cont.)n步骤4:处理消息块(512位 = 16个32位字)。压缩函数是本算法的核心(HMD5)。它包括4轮处理。四轮处理具有相似的结构,但每次使用不同的基本逻辑函数,记为F,G,H,I。每一轮以当前的512位数据块(Yq)和128位缓冲值ABCD作为输入,并修改缓冲值的内容。每次使用64元素表T164中的四分之一. T表,由sin 函数构造而成。T的第i个元素表示为Ti,其值等于 232abs(sin(i),其中i是弧度。由于abs(sin(i)是一个0到1之间的数,T的每一个元素是一个可以表示成32位的整数。T表提供了随机化的32位模板,消除了在输入数据中的任何规律性的特征。 T1 = D76AA478T2 = E8C7B756T3 = 242070DBT4 = C1BDCEEET16 = 49b40821T49 = F4292244T50 = 432AFF97T51 = AB9423A7T52 = FC93A039T64 = EB86D391 步骤5:输出结果。所有L个512位数据块处理完毕后,最后的结果就是128位消息摘要。 CV0 = IV CVq+1 = SUM32(CVq,RFIYq,RFHYq,RFGYq,RFFYq,CVq) MD = CVL 其中:IV = ABCD的初始值(见步骤3) Yq = 消息的第q个512位数据块 L = 消息中数据块数; CVq = 链接变量,用于第q个数据块的处理 RFx = 使用基本逻辑函数x的一轮功能函数。 MD = 最终消息摘要结果 SUM 32=分别按32位字计算的模232加法结果。 MD5算法描述(Cont.) F,T116,Xi16 stepsG,T1732,X2i16 stepsH,T3348,X3i16 stepsI,T4964,X 4i16 steps+ + + + A B C DA B C DA B C DA B C DCVq 128 32Yq 512 CVq+1 128单个 512-bit 分组的MD5 处理过程+ is mod 232 MD5 压缩函数每一轮包含对缓冲区ABCD的16步操作所组成的一个序列。ab + ( a + g(b,c,d) + Xk +Ti)s)其中,a,b,c,d = 缓冲区的四个字,以一个给定的次序排列;g = 基本逻辑函数F,G,H,I之一;s = 对32位字循环左移s位Xk = Mq16 + k = 在第q个512位数据块中的第k个32位字Ti = 表T中的第i个32位字;+ = 模 2 32的加; 逻辑函数的真值表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 A B C DA B C D+CLSs+ gXkTi Function g g(b,c,d)1 F(b,c,d) (bc)(bd)2 G(b,c,d) (bd)(cd)3 H(b,c,d) bcd4 I(b,c,d) c(bd) 2i = (1+5i) mod 163i = (5+3i) mod 164i = 7i mod 16 基本MD5操作(单步) MD4 (1990年10月作为RFC1320发表) by Ron Rivest at MITMD4的设计目标安全性:速度:32位体系结构下计算速度快.简明与紧凑:易于编程.有利的小数在前的结构(Intel 80 xxx, Pentium )MD4与MD5的区别MD4用3轮,每轮16 步,MD5用4轮,每轮16步.MD4中第一轮没有常量加;MD5中64步每一步用了一个不同的常量 Ti;MD5用了四个基本逻辑函数,每轮一个;MD4用了三个.MD5每轮加上前一步的结果;MD4没有. SHA-1 算法逻辑n输入:最大长度为264位的消息;n输出:160位消息摘要;n处理:输入以512位数据块为单位处理;SHA由美国国家标准技术研究所NIST开发,作为联邦信息处理标准于1993年发表(FIPS PUB 180),1995年修订,作为SHA-1(FIPS PUB 180-1),SHA-1基于MD4设计。 SHA-1 算法描述步骤1:添加填充位(一个1 和若干个0)。在消息的最后添加适当的填充位使得数据位的长度满足length 448 mod 512。步骤2:添加长度。一个64位块,表示原始消息长度,64位无符号整数。 步骤3:初始化MD缓冲区。一个160位MD缓冲区用以保存中间和最终Hash函数的结果。它可以表示为5个32位的寄存器(A,B,C,D,E)。 初始化为:A = 67452301B = EFCDAB89C = 98BADCFED = 10325476E = C3D2E1F0前四个与MD5相同,但存储为大数在前的形式.步骤4:以512位数据块为单位处理消息。四轮,每轮20步。四个基本逻辑函数:f1,f2,f3,f4步骤5:输出。全部L个512位数据块处理完毕后,输出160位消息摘要。 CV0 = IVCVq+1 = SUM32(CVq, ABCDEq)MD = CVL其中:IV = ABCDE的初始值; ABCDEq对第q轮消息数据块处理最后一轮所得的结果; L = 数据块的个数 SUM32 = 对每一个输入对的字求加模232 MD = 最后的消息摘要值。 A B C DA B C D +ft EES5 WtKtS30 基本SHA操作(单步) SHA-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位字;W t = 一个从当前512数据块导出的32位字;Kt = 一个用于加法的常量,四个不同的值,如前所述+ = 加模232。 f1,K,W01920 stepsf2,K,W203920 stepsf3,K,W405920 stepsf 4,K,W607920 steps+ + + + A B C EA EA EA ECVq 160 32Yq 512 CVq+1 160 SHA-1 Processing ofa single 512-bit block+ is mod 232 DB C DB C DB C D+ Step Function Name Function Value(0 t 19) f1 = f(t,B,C,D) (BC)(BD)(20 t 39) f2 = f(t,B,C,D) BC D(40 t 59) f3 = f(t,B,C,D) (BC)(BD) (CD)(60 t 79) f4 = f(t,B,C,D) BC DWt = S1(Wt-16 Wt-14 Wt-3 )Yq512bits W0 W1 W15 W16 S1XORW0 W2 W8 W13 Wt S1XORWt-16 Wt-14 Wt-8 Wt-3 W79 S1XORW63 W65 W71 W76 RIPEMD-160n输入:任意长度的消息n输出:长度为160位的消息摘要n处理:以512位数据块为单位欧洲RACE Integrity Primitives Evaluation(RIPE) Project.最早为128位RIPEMD,后改进成为160位消息摘要。 RIPEMD-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 比较: MD5 SHA-1 RIPEMD-160摘要长度 128位160位160位基本处理单位 512位512位512位步数 64(4 of 16) 80(4 of 20) 160(5 paired of 16)最大消息长度 无限264-1位264-1位基本逻辑函数 4 4 5加法常数 64 4 9Endianness Little-endian Big-endian Little-endian性能 32.4 Mbps 14.4Mbps 13.6Mbps Http:/ HMAC (RFC 2104)n基于hash函数的消息认证码(MAC)n MAC for IP securityn SSL HMAC算法H = 嵌入Hash函数(MD5,SHA-1,RIPEMD-160)M = 消息(包括Hash函数所需填充位)Yi = M的第i 个数据块,0 i L-1L = M的数据块数b = 数据块的位数n = 嵌入Hash函数产生的Hash码长度位数K = 保密密钥。如果密钥长度大于b,则密钥送入Hash函数 形成一个n位的密钥;推荐程度大于等于nK+ = K在左部添加0使得其长度为b位ipad = 00110110重复 b/8次opad = 01011010重复b/8次HMAC K = HK+opad) | H(K+ ipad)| M HMAC的结构
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


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

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


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