第六章认证理论与技术.ppt_第1页
第六章认证理论与技术.ppt_第2页
第六章认证理论与技术.ppt_第3页
第六章认证理论与技术.ppt_第4页
第六章认证理论与技术.ppt_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第11章 认证理论与技术(1),认证、认证码、Hash函数,11.1认证与认证系统,认证(Authentication)是防止主动攻 击的重要技术,对开发系统安全性有重 要作用. 认证的主要目的 实体认证(发送者非冒充) 消息认证(验证信息的完整性),11.1认证与认证系统(Cont.),网络环境中的攻击(认证的需求) 1.泄漏 2.通信量分析 3.伪装(假报文) 4.内容篡改(插入,删除,调换和修改) 5.序号篡改(报文序号的修改) 6.计时篡改(报文延迟或回放) 7.抵赖(否认收或发某报文) 1,2加密, 36报文认证, 7数字签名(36),保密和认证同时是信息系统安全的两个方面,但它 们

2、是两个不同属性的问题,认证不能自动提供保密性, 而保密性也不能自然提供认证功能。一个纯认证系统的 模型如下图所示:,窜扰者,信宿,信源,认证编码器,认证译码器,信道,安全信道,密钥源,11.1认证与认证系统,三类产生认证码的函数 报文加密 以整个报文的密文为认证码; 报文认证码(MAC) 是报文和密钥的公共函数,产生一个定长 值作为认证码; Hash函数 一个将任意长度的报文映射为定长的Hash值 的公共函数,以Hash值作为认证码;,11.2报文加密提供认证,常规加密 问题:如果报文是任意比特的组合,接收方 没有自动的方法确定报文的合法性. 解决方案:强调明文的某种结构,这种结构 是易于识别

3、但不能复制且无需加密的.,对称加密与认证的关系,A-B: E(K, M) 提供保密(仅A和B共享密钥K) 提供一定程度的认证 仅来自A 传输中不会被更改 需要某种结构或冗余 不提供签名 接收者可以伪造报文 发送者可以否认报文,下图的通信双方,用户A为发信方,用户 B为接收方。用户B接收到信息后,通过解密来 判决信息是否来自A,信息是否是完整的,有无 窜扰。,常规加密:具有机密性,可认证,11.2报文加密提供认证(Cont.),公开密钥加密 发送方用自己的私钥加密报文,接收方用发 送方的公钥解密(与对称密钥加密原理相 同,需要某种特定报文结构).该方案不提供 加密. 发送方先用自己的密钥加密以提

4、供认证,然 后使用接收方公钥加密提供保密性.缺点是 效率不高.,公开密钥加密与认证的关系,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,也称密码检验和) 对选定报文,使用一个密钥,产生一个短小的定长数据分组,称认证码,并将它附加在报文中,

5、提供认证功能. (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; 提供

6、保密,因仅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.),为什么使用报文认证(而不是用常规加密) 适用于报文广播(并不需要每个点都有密钥); 报文加密解密的工作量比较大; 某些应用不关心报

7、文的保密而只关心报文的真实性; 认证函数与保密函数的分离能提供结构上的灵活性(认证与保密可在网络协议的不同层次进行). 认证码可延长报文的保护期限,同时能处理报文内容(使用加密,当报文解密后,保护就失效了).,11.3 报文认证码(Cont.),注意 认证函数类似加密函数,但它是不可逆的,这个性质使其比加密函数更难破解; 认证函数并不提供数字签名; 认证码的信息论* G.J. Simmons发展的认证系统的信息理论,类似保密系统的信息理论,也是将信息论用于研究认证系统的理论安全性和实际安全性问题,指出认证系统的性能极限以及设计认证码必须遵循的原则,是研究认证问题的理论基础.,11.3 报文认证

8、码(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 = E

9、k(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) )

10、(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.),为什么要避免加密的方法

11、?(见方法(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)在计算上不可行(

12、强抗攻击性);,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 H

13、ash函数(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-b

14、it 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-

15、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算法描述(C

16、ont.),步骤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位字)。压缩函数是本算法的

17、核心(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 =

18、 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 = 使用基本逻辑函数

19、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 +

20、 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,

21、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

22、 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

23、设计。,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位数据块为单位处理消息。

24、四轮,每轮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)

25、+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

26、,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位数据块为单位,欧洲RAC

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论