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

上传人:san****019 文档编号:15891042 上传时间:2020-09-12 格式:PPT 页数:57 大小:236.10KB
返回 下载 相关 举报
《认证理论与技术》PPT课件_第1页
第1页 / 共57页
《认证理论与技术》PPT课件_第2页
第2页 / 共57页
《认证理论与技术》PPT课件_第3页
第3页 / 共57页
点击查看更多>>
资源描述
第11章 认证理论与技术(1),认证、认证码、Hash函数,11.1认证与认证系统,认证(Authentication)是防止主动攻 击的重要技术,对开发系统安全性有重 要作用. 认证的主要目的 实体认证(发送者非冒充) 消息认证(验证信息的完整性),11.1认证与认证系统(Cont.),网络环境中的攻击(认证的需求) 1.泄漏 2.通信量分析 3.伪装(假报文) 4.内容篡改(插入,删除,调换和修改) 5.序号篡改(报文序号的修改) 6.计时篡改(报文延迟或回放) 7.抵赖(否认收或发某报文) 1,2加密, 36报文认证, 7数字签名(36),保密和认证同时是信息系统安全的两个方面,但它 们是两个不同属性的问题,认证不能自动提供保密性, 而保密性也不能自然提供认证功能。一个纯认证系统的 模型如下图所示:,窜扰者,信宿,信源,认证编码器,认证译码器,信道,安全信道,密钥源,11.1认证与认证系统,三类产生认证码的函数 报文加密 以整个报文的密文为认证码; 报文认证码(MAC) 是报文和密钥的公共函数,产生一个定长 值作为认证码; Hash函数 一个将任意长度的报文映射为定长的Hash值 的公共函数,以Hash值作为认证码;,11.2报文加密提供认证,常规加密 问题:如果报文是任意比特的组合,接收方 没有自动的方法确定报文的合法性. 解决方案:强调明文的某种结构,这种结构 是易于识别但不能复制且无需加密的.,对称加密与认证的关系,A-B: E(K, M) 提供保密(仅A和B共享密钥K) 提供一定程度的认证 仅来自A 传输中不会被更改 需要某种结构或冗余 不提供签名 接收者可以伪造报文 发送者可以否认报文,下图的通信双方,用户A为发信方,用户 B为接收方。用户B接收到信息后,通过解密来 判决信息是否来自A,信息是否是完整的,有无 窜扰。,常规加密:具有机密性,可认证,11.2报文加密提供认证(Cont.),公开密钥加密 发送方用自己的私钥加密报文,接收方用发 送方的公钥解密(与对称密钥加密原理相 同,需要某种特定报文结构).该方案不提供 加密. 发送方先用自己的密钥加密以提供认证,然 后使用接收方公钥加密提供保密性.缺点是 效率不高.,公开密钥加密与认证的关系,A-B: E(KUb,M) 提供保密(仅B能解密) 不提供认证 A-B: E(KRa,M) 提供认证和签名(仅有A可加密,需要某种结构和冗余,任何一方均能验证签名) A-B: E(KUb,E(KRa, M) 可提供保密 可提供认证和签名,KUb(B方的公钥),(1) 公钥加密:具有机密性,(2) 公钥加密:认证和签名,(3) 公钥加密:机密性,可认证和签名,11.3 报文认证码(MAC),认证码(MAC,也称密码检验和) 对选定报文,使用一个密钥,产生一个短小的定长数据分组,称认证码,并将它附加在报文中,提供认证功能. (MAC = Ck(M) ,其中M是可变长的报文, K是共享密钥,Ck(M)是定长的认证码.) 应用认证码,如果只有收发方知道密钥,同时收到的MAC与计算得出的MAC匹配: 确认报文未被更改; 确信报文来自所谓的发送者; 如果报文包含序号,可确信该序号的正确性;,11.3 报文认证码(Cont.),报文认证码的基本用法1 A-B: M | Ck(M) 提供认证, 因仅A和B共享K;,C,M,M,Ck(M),K,C,K,比较,源点,终点,11.3 报文认证码(Cont.),报文认证码的基本用法2 A-B: Ek2 (M | Ck1(M) ) 提供认证, 因仅A和B共享K1; 提供保密,因仅A和B共享K2;,C,M,Ek2 (M | Ck1(M) ),K1,C,K1,比较,源点,终点,E,K2,D,K2,Ck1(M),11.3 报文认证码(Cont.),报文认证码的基本用法3 A-B: Ek2 (M) | Ck1(Ek2 (M) ) 提供认证, 因仅A和B共享K1; 提供保密,因仅A和B共享K2;,C,M,Ck1(Ek2 (M) ),K1,C,K2,比较,源点,终点,E,K2,D,K1,Ek2 (M),M,11.3 报文认证码(Cont.),为什么使用报文认证(而不是用常规加密) 适用于报文广播(并不需要每个点都有密钥); 报文加密解密的工作量比较大; 某些应用不关心报文的保密而只关心报文的真实性; 认证函数与保密函数的分离能提供结构上的灵活性(认证与保密可在网络协议的不同层次进行). 认证码可延长报文的保护期限,同时能处理报文内容(使用加密,当报文解密后,保护就失效了).,11.3 报文认证码(Cont.),注意 认证函数类似加密函数,但它是不可逆的,这个性质使其比加密函数更难破解; 认证函数并不提供数字签名; 认证码的信息论* G.J. Simmons发展的认证系统的信息理论,类似保密系统的信息理论,也是将信息论用于研究认证系统的理论安全性和实际安全性问题,指出认证系统的性能极限以及设计认证码必须遵循的原则,是研究认证问题的理论基础.,11.3 报文认证码(Cont.),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.),基于DES的报文认证码 描述如下: 被认证报文分成连续的64bit分组:D1,D2, Dn(必要时用0填充).使用DES算法E,密钥 K,数据认证码计算如下(16= M =64): C1 = Ek(D1) C2 = Ek(D2C1) Cn = Ek(Dn Cn-1),11.4 Hash函数(散列,哈希函数),Hash函数 Hash函数是将任意长度的报文映射成一个较短的定长输出报文的函数. 如下形式: h = H(M), M是变长的报文,h是定长的Hash值. Hash函数的目的是为文件、报文或其它的分组数据产生“数字指纹”.,11.4 Hash函数(Cont.),使用Hash码提供报文认证的方式 (a) A-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能生成EKRa( H(M) ),11.4Hash函数(Cont.),使用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.),为什么要避免加密的方法?(见方法(e) ) 加密软件慢; 加密硬件开销不可忽略; 加密硬件是针对大长度数据进行优化的(换而言之,对小数据分组加密开销大); 加密算法可能受专利保护; 加密算法易遭美国政府的出口限制;,11.4 Hash函数(Cont.),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.),简单的Hash函数 每个分组按比特异或: Ci = bi1bi2 . bim 其中, Ci是第i个比特的Hash码,1in; m是输入的n比特分组数; bij是第j分组的第i比特; (简单的奇偶校验) 针对应用中的可预测数据格式,提出如下 改进方案:,11.4 Hash函数(Cont.),简单的Hash函数的改进方案 先将n比特的Hash值设置为0; 按如下方式依次处理数据分组: 将当前的Hash值循环左移一位. 将数据分组与Hash值异或形成新的Hash值. 这将起到输入数据完全随机化的效果,并且 将输入中的数据格式掩盖掉.,11.4 Hash函数(Cont.),生日攻击(基于生日悖论) 在k个人中,找一个与某人生日相同的人的 概率超过0.5时,只需k183; 而在此人群中, 至少有两个人生日相同的概率超过0.5, 只需k23.,第12章 Hash算法,MD5和MD4 安全Hash算法SHA RIPEMD-160 HMAC,b,Y0,n,IV= CV0,f,b,Y1,n,f,b,YL-1,n,CVL-1,f,CV1,n,n,IV = 初始值 CV = 链接值 Yi = 第i 个输入数据块 f = 压缩算法 n = Hash码的长度 b = 输入块的长度,安全Hash算法的一般结构,CVL,CV0=IV= initial n-bit value CVi=f(CVi-1, Yi-1) (1 i L) H(M) = CVL,MD5 算法,输入:任意长度的消息 输出:128位消息摘要 处理:以512位输入数据块为单位,MD5 (RFC 1321) was developed by Ron Rivest (“R” of the RSA )at MIT in 90s.,报文,K bits,L512 bits=N 32bits,1000,Y0,512 bits,Y1,512 bits,Yq,512 bits,YL-1,512 bits,HMD5,IV,128,HMD5,CV1,128,HMD5,CVq,128,HMD5,CVL-1,128,512,512,512,512,128-bit 摘要,MD5产生报文摘要的过程,MD5算法描述,步骤1:添加填充位(一个1 和若干个0)。在消息的最后添加适当的填充位使得数据位的长度满足length 448 mod 512。 步骤2:添加长度。原始消息长度(二进制位的个数),用64位表示。如果长度超过264位,则仅取最低64位,即mod 264。 到此为止,我们已经得到一个512位的整倍数长度的新的消息。可以 表示为L个512位的数据块:Y0,Y1,YL-1。其长度为L512bits。令N=L16,则长度 为N个32位的字。令M0N-1表示以字为单位的消息表示。,MD5算法描述(Cont.),步骤3:初始化MD缓冲区。一个128位MD缓冲区用以保存中间和最终Hash函数的结果。它可以表示为4个32位的寄存器(A,B,C,D)。 寄存器初始化为以下的16进制值。 A = 67452301 B = EFCDAB89 C = 98BADCFE D = 10325476,MD5算法描述(Cont.),上述值的存储方式为:,Word A: 01 23 45 67 Word B: 89 AB CD EF Word C: FE DC BA 98 Word D: 76 54 32 10,MD5算法描述(Cont.),步骤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 = D76AA478 T2 = E8C7B756 T3 = 242070DB T4 = C1BDCEEE T16 = 49b40821,T49 = F4292244 T50 = 432AFF97 T51 = AB9423A7 T52 = FC93A039 T64 = 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 = 最终消息摘要结果 SUM32=分别按32位字计算的模232加法结果。,MD5算法描述(Cont.),F,T116,Xi 16 steps,G,T1732,X2i 16 steps,H,T3348,X3i 16 steps,I,T4964,X4i 16 steps,+,+,+,+,A,B,C,D,A,B,C,D,A,B,C,D,A,B,C,D,CVq,128,32,Yq,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位字; + = 模 232的加;,逻辑函数的真值表,b c d F G H I 0 0 0 0 0 0 1 0 0 1 1 0 1 0 0 1 0 0 1 1 0 0 1 1 1 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 1 1 0 0 1 1 1 1 1 1 0,A,B,C,D,A,B,C,D,+,+,+,CLSs,+,g,Xk,Ti,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) bcd 4 I(b,c,d) c(bd),2i = (1+5i) mod 16 3i = (5+3i) mod 16 4i = 7i mod 16,基本MD5操作(单步),MD4 (1990年10月作为RFC1320发表) by Ron Rivest at MIT,MD4的设计目标 安全性: 速度:32位体系结构下计算速度快. 简明与紧凑:易于编程. 有利的小数在前的结构(Intel 80 xxx, Pentium ) MD4与MD5的区别 MD4用3轮,每轮16 步,MD5用4轮,每轮16步. MD4中第一轮没有常量加;MD5中64步每一步用了一个不同的常量 Ti; MD5用了四个基本逻辑函数,每轮一个;MD4用了三个. MD5每轮加上前一步的结果;MD4没有.,SHA-1 算法逻辑,输入:最大长度为264位的消息; 输出:160位消息摘要; 处理:输入以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 = 67452301 B = EFCDAB89 C = 98BADCFE D = 10325476 E = C3D2E1F0 前四个与MD5相同,但存储为大数在前的形式. 步骤4:以512位数据块为单位处理消息。四轮,每轮20步。四个基本逻辑函数:f1,f2,f3,f4 步骤5:输出。全部L个512位数据块处理完毕后,输出160位消息摘要。,CV0 = IV CVq+1 = SUM32(CVq, ABCDEq) MD = CVL 其中:IV = ABCDE的初始值; ABCDEq对第q轮消息数据块处理最后一轮所得的结果; L = 数据块的个数 SUM32 = 对每一个输入对的字求加模232 MD = 最后的消息摘要值。,A,B,C,D,A,B,C,D,+,+,+,+,ft,E,E,S5,Wt,Kt,S30,基本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位字; Wt = 一个从当前512数据块导出的32位字; Kt = 一个用于加法的常量,四个不同的值,如前所述 + = 加模232。,f1,K,W019 20 steps,f2,K,W2039 20 steps,f3,K,W4059 20 steps,f4,K,W6079 20 steps,+,+,+,+,A,B,C,E,A,E,A,E,A,E,CVq,160,32,Yq,512,CVq+1,160,SHA-1 Processing of a single 512-bit block,+ is mod 232,D,B,C,D,B,C,D,B,C,D,+,StepFunction NameFunction 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 D,Wt = S1(Wt-16 Wt-14 Wt-3 ),Yq,512bits,W0,W1,W15,W16,S1,XOR,W0 W2 W8 W13,Wt,S1,XOR,Wt-16 Wt-14 Wt-8 Wt-3,W79,S1,XOR,W63 W65 W71 W76,RIPEMD-160,输入:任意长度的消息 输出:长度为160位的消息摘要 处理:以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 = 67452301 B = EFCDAB89 C = 98BADCFE D = 10325476 E = C3D2E1F0,步骤4:处理512位消息数据块(16字)。 10轮,每轮16步; 基本逻辑函数:f1,f2,f3,f4,f5,比较: 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 加法常数 6449 Endianness Little-endianBig-endianLittle-endian,性能 32.4 Mbps14.4Mbps13.6Mbps,Http:/,HMAC (RFC 2104),基于hash函数的消息认证码(MAC) MAC for IP security SSL,HMAC算法,H = 嵌入Hash函数(MD5,SHA-1,RIPEMD-160) M = 消息(包括Hash函数所需填充位) Yi = M的第i 个数据块,0 i L-1 L = M的数据块数 b = 数据块的位数 n = 嵌入Hash函数产生的Hash码长度位数 K = 保密密钥。如果密钥长度大于b,则密钥送入Hash函数 形成一个n位的密钥;推荐程度大于等于n K+ = K在左部添加0使得其长度为b位 ipad = 00110110重复 b/8次 opad = 01011010重复b/8次,HMACK = HK+opad) | H(K+ ipad)| M,HMAC的结构,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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


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

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


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