您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 数据通信与网络 > 第3章-信息认证技术
第3章信息认证技术第三章信息认证技术•3.1概述•3.2哈希函数•3.3消息认证技术•3.4数字签名•3.5身份认证1第3章信息认证技术3.1概述•在网络通信和电子商务中很容易发生如下问题。1.否认,发送信息的一方不承认自己发送过某一信息。2.伪造,接收方伪造一份文件,并声称它来自某发送方。3.冒充,网络上的某个用户冒充另一个用户接收或发送信息。4.篡改,信息在网络传输过程中已被篡改,或接收方对收到的信息进行篡改。用数字签名(DigitalSignature)可以有效地解决这些问题。数字签名就是主要用于对数字信息进行的签名,以防止信息被伪造或篡改等。2第3章信息认证技术3.1概述•一个安全的认证系统应满足以下条件:(1)合法的接收者能够检验所接收消息的合法性和真实性。(2)合法的发送方对所发送的消息无法进行否认。(3)除了合法的发送方之外,任何人都无法伪造、篡改消息。3第3章信息认证技术3.2哈希函数•哈希函数,单向散列函数•基本思想•输入任意长度的消息M,产生固定长度的数据输出。向hash函数输入一任意长度的信息M时,hash函数将输出一固定长度为m的散列值h。即:h=H(M)4第3章信息认证技术3.2哈希函数性质:固定长度输出散列值h。给定M,很容易计算h。给定h,根据H(M)=h计算M很难。给定M,找到另一消息M’,满足H(M)=H(M’),在计算上是不可行的---弱抗碰撞性。对于任意两个不同的消息M≠M’,它们的散列值不可能相同---强抗碰撞性。注:碰撞性是指对于两个不同的消息M和M’,如果它们的摘要值相同,则发生了碰撞。5第3章信息认证技术3.2哈希函数•常用的哈希函数•MD5•SHA-1•RIPEMD-160•等等6第3章信息认证技术3.2.2MD5算法•麻省理工学院RonRivest提出,可将任意长度的消息经过变换得到一个128位的散列值。•MD5算法:•MD5以512位分组来处理输入的信息,每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后生成128位散列值。7第3章信息认证技术3.2.2MD5算法ADCBA第1轮DCB第2轮第3轮第4轮++++MD5主循环8第3章信息认证技术3.2.2MD5算法MD5算法步骤•1.数据填充与分组(1)将输入信息M按顺序每512位一组进行分组:M=M1,M2,…,Mn-1,Mn(2)将信息M的Mn长度填充为448位。当Mn长度L(bit为单位)448时,在信息Mn后加一个“1”,然后再填充447-L个“0”,使最后的信息Mn长度为448位。当Mn长度L448时,在信息Mn后加一个“1”,然后再填充512-L+447个“0”,使最后的信息Mn长度为512位,Mn+1长度为448位9第3章信息认证技术3.2.2MD5算法2.初始化散列值•在MD5算法中要用到4个32位变量,分别为A、B、C、D:A=0x01234567B=0x89abcdefC=0xfedcba98D=0x76543210•在MD5算法过程中,这四个32位变量被称为链接变量,它们始终参与运算并形成最终的散列值。10第3章信息认证技术3.2.2MD5算法3.计算散列值(1)将填充后的信息按每512位分为一块(Block),每块按32位为一组划分成16个分组,即Mi=Mi0,Mi2,…,Mi15,i=1~n。(2)分别对每一块信息进行4轮计算(即主循环)。每轮定义一个非线性函数:(3)将A、B、C、D这四个变量分别复制到变量a、b、c、d中。))(()(),,(ZXYXZYXF))(()(),,(ZYZXZYXGZYXZYXH),,())((),,(ZXYZYXI11第3章信息认证技术3.2.2MD5算法(4)每一轮进行16次操作,每次操作对a、b、c、d中的三个变量作一次非线性函数运算,然后将所得的结果与第四个变量、信息的一个分组Mj和一个常数ti相加。再将所得的结果循环左移一个不定数s,并加上a、b、c、d中的一个变量。•FF(a,b,c,d,Mj,s,ti)表示a=b+((a+F(b,c,d)+Mj+ti)s)•GG(a,b,c,d,Mj,s,ti)表示a=b+((a+G(b,c,d)+Mj+ti)s)•HH(a,b,c,d,Mj,s,ti)表示a=b+((a+H(b,c,d)+Mj+ti)s)•II(a,b,c,d,Mj,s,ti)表示a=b+((a+I(b,c,d)+Mj+ti)s)在第i步中,常数ti取值为232×abs(sin(i))的整数部分。这样就可以得到4轮共64步操作。12第3章信息认证技术第一轮•FF(a,b,c,d,M0,7,0xD76AA478)•FF(d,a,b,c,M1,12,0xE8C7B756)•FF(c,d,a,b,M2,17,0x242070DB)•……•FF(b,c,d,a,M15,22,0x49B40821)第二轮•GG(a,b,c,d,M1,5,0xF61E2562)•GG(d,a,b,c,M6,9,0xC040B340)•GG(c,d,a,b,M11,14,0x265E5A51)•……•GG(b,c,d,a,M12,20,0x8D2A4C8A)第三轮HH(a,b,c,d,M5,4,0xFFFA3942)HH(d,a,b,c,M8,11,0x8771F681)HH(c,d,a,b,M11,16,0x6D9D6122)……HH(b,c,d,a,M2,23,0xC4AC5665)第四轮II(a,b,c,d,M0,6,0xF4292244)II(d,a,b,c,M7,10,0x432AFF97)II(c,d,a,b,M14,15,0xAB9423A7)……II(b,c,d,a,M9,21,0xEB86D391){1613第3章信息认证技术a非线性函数+++tiMjs+bcdabcdMD5的基本操作过程3.2.2MD5算法14第3章信息认证技术3.2.2MD5算法•4轮循环操作完成之后,将A、B、C、D分别加上a、b、c、d,即A=A+aB=B+bC=C+cD=D+d•这里的加法是模232加法•然后用下一分组数据继续运行算法,最后的输出是A、B、C和D的级联。15第3章信息认证技术3.2.3SHA-1算法•SHA(SecureHashAlgorithm)是美国国家标准与技术研究所(NIST)提出,于1993年作为联邦信息处理标准(FIPS180)发布的,1995年又发布了其修订版(FIPS180-1),通常称为SHA-1。•SHA-1算法的输入是长度小于264位的消息,输出160位的散列值。16第3章信息认证技术•与MD5算法类似,SHA-1算法也需要对消息进行填充补位。•补位是这样进行的:先添加一个1,然后再添加多个0,使得消息长度满足对512取模后余数是448。•SHA-1的中间结果和最终结果保存在160位的缓冲区中,缓冲区用5个32位的变量表示,这些变量初始化为:A=0x67452301B=0xefcdab89C=0x98badcfeD=0x10325476E=0xc3d2e1f03.2.3SHA-1算法17第3章信息认证技术A第1轮DCB第2轮第4轮E+++第3轮++ADCBESHA-1的主循环3.2.3SHA-1算法18第3章信息认证技术79605940))()()(3920190))(()(),,(tZYXtZYZXYXtZYXtZXYXZYXftSHA-1的非线性函数3.2.3SHA-1算法19第3章信息认证技术•对512位的消息进行处理,将其从16个32位的消息分组变成80个32位的消息分组。•用到的80对常数:79...,17,161)(15...,,1,0161483,当当tMMMMtMWtttttt3.2.3SHA-1算法79606162059401803920196019082799950tdcxcatbbcdcfxtebaedxtaxKt20第3章信息认证技术SHA-1的基本操作过程a非线性函数+++KtWt5+bcdabcde30e3.2.3SHA-1算法21第3章信息认证技术•2001年,NIST发布FIPS180-2,新增了三个哈希函数,分别为SHA-256,SHA-384,SHA-512,其散列值的长度分别为256,384,512。同时,NIST指出FIPS180-2的目的是要与使用AES而增加的安全性相适应。SHA-1SHA-256SHA-384SHA-512散列值长度160256384512消息大小26426421282128分组大小51251210241024字长32326464步数808080803.2.3SHA-1算法22第3章信息认证技术3.3消息认证技术•网络传输过程中信息保密性的要求:(1)对敏感的数据进行加密,即使别人截获文件也无法得到真实内容。(2)保证数据的完整性,防止截获人对数据进行篡改。(3)对数据和信息的来源进行验证,以确保发信人的身份。•消息认证是指使合法的接收方能够检验消息是否真实的方法。检验内容包括验证通信的双方和验证消息内容是否伪造或遭篡改。23第3章信息认证技术3.3消息认证技术常见的认证函数:(1)消息加密:将整个消息的密文作为认证码。(2)哈希函数:通过哈希函数使消息产生定长的散列值作为认证码。(3)消息认证码(MAC):将消息与密钥一起产生定长值作为认证码。24第3章信息认证技术消息M加密E(·)密钥KInternet解密D(·)密钥K消息M基于对称密钥加密的消息认证过程3.3消息认证技术(1)消息加密认证25第3章信息认证技术添加校验码的消息认证过程消息M加密E(·)密钥KInternet解密D(·)密钥K消息MF(M)F(M)消息MF(·)F(·)Match?3.3消息认证技术(1)消息加密认证26第3章信息认证技术基于公钥加密的消息认证过程加密E(·)Internet解密D(·)消息M消息M加密E(·)密钥KAS解密D(·)密钥KBP密钥KBS密钥KAP(1)消息加密认证3.3消息认证技术27第3章信息认证技术使用哈希函数的消息认证过程InternetH(M)消息M密钥K解密D(·)密钥KH加密E(·)H(M)EK(H(M))消息MEK(H(M))消息MHH(M)Match?3.3消息认证技术(2)哈希函数认证28第3章信息认证技术保证机密性的哈希函数消息认证过程Internet消息M密钥K解密D(·)密钥KH加密E(·)H(M))消息MMatch?EK(M||H(M))EK(M||H(M))H(M))消息MHH(M))(2)哈希函数认证3.3消息认证技术29第3章信息认证技术混合加密认证(2)哈希函数认证3.3消息认证技术Internet消息M密钥KH||H(M)消息M密钥KASEKAS(H(M))消息MEKAS(H(M))加密E(·)加密E(·)密钥KBP密文1密文2密文1密文2密钥K解密D(·)解密D(·)密钥KBS消息MEKAS(H(M))HH(M)加密E(·)解密D(·)密钥KAPH(M)Match?发送方接收方30第3章信息认证技术基于消息认证码的认证过程Internet消息M密钥KCMAC消息MMatch?密钥KMAC消息MCMACMAC(3)消息认证码(MAC)的认证3.3消息认证技术31第3章信息认证技术3.3消息认证技术•MAC函数与加密函数相似之处在于使用了密钥,但差别在于加密函数是可逆的,而MAC函数可以是单向的,它无需可逆,因此比加密更不容易破解。•哈希函数同样也可以用来产生消息认证码。•假设K是通信双方A和B共同拥有的密钥,A要发送消息M给B,在不需要进行加密的条件下,A只需将M和K合起来一起通过哈希函数计算出其散列值,即H(M||K),该散列值就是M的消息认证码。32第3
本文标题:第3章-信息认证技术
链接地址:https://www.777doc.com/doc-5188334 .html