基于HMACSHA1算法的消息认证机制.doc

上传人:仙人指路1688 文档编号:4125152 上传时间:2023-04-06 格式:DOC 页数:4 大小:1.30MB
返回 下载 相关 举报
基于HMACSHA1算法的消息认证机制.doc_第1页
第1页 / 共4页
基于HMACSHA1算法的消息认证机制.doc_第2页
第2页 / 共4页
基于HMACSHA1算法的消息认证机制.doc_第3页
第3页 / 共4页
基于HMACSHA1算法的消息认证机制.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《基于HMACSHA1算法的消息认证机制.doc》由会员分享,可在线阅读,更多相关《基于HMACSHA1算法的消息认证机制.doc(4页珍藏版)》请在三一办公上搜索。

1、山西师范大学学报 (自然科学版 )Jou rna l of Shanxi Teache rs U n ive rsityN a tu ra l Sc ience Ed ition第 19卷第 1期2005年 3 月Vo l. 19M a r.No. 12005文章编号 : 1009 24490 ( 2005 ) 01 20030 204基于 HMAC - SHA1算法的消息认证机制王红霞 1 , 2 , 陆塞群 2( 11浙江大学软件学院 , 浙江 杭州 310027; 21浙江水利水电专科学校 , 浙江 杭州 310018 )摘 要 : HMAC - SHA1是一种安全的基于加密 ha sh

2、函数和共享密钥的消息认证协议 . 它可以有效地防止数据在传输过程中被截获和篡改 ,维护了数据的完整性 、可靠性和安全性 . HMAC - SHA1 消息认证机 制的成功在于一个加密的 ha sh函数 、一个加密的随机密钥和一个安全的密钥交换机制 . 本文从 HMAC和 SHA1算法的概念入手 ,提出了一个基于 SHA1算法的消息认证机制 ,分析了其原理与认证过程 ,并对其安全性作了进一步的研究 .关键词 : 消息认证 ; HMAC; SHA1中图分类号 :文献标识码 : A报文进行 H a sh 运算 ,如 MD5、SHA、R IPEMD 等 ,形成固定长度的认证码 (MAC ) . 通信双方

3、通过认证 码的校验来确定报文的合法性 . 这个协议可以用来 作加密 、数字签名 、报文验证之用等 .HMAC的定义HMAC 是一种执行“校 验和 ”的 算法 . 它 通过对数 据 进 行“求 和 ”来 检 查 数 据 是 否 被 更 改了. 在发送数据以前 , HMAC 算法对数据块和双方0 引言消息认证是多媒体信息安全技术的一个重要 方面 ,主要解决数据在通信和存储过程的完整性问 题 ,以确保信息不受非法攻击和篡改. 由于认证技 术提供了通信双方身份和通信内容 、过程的可信度 保证 ,从而被广泛应用于以多媒体信息为主要交流 方式的网络业务系统中 ,如电子商务 、电子政务等 . 而在上述系统中

4、 ,由于信息往来比较频繁 ,而且信 息权限分级比较细 ,因此 ,如何保证信息的安全性 、 完整性和可靠性 ,是认证系统必须要解决的问题 . 目前 ,消息认证技术有很多 ,如 HMAC、数字签名 、 易损水印 、生物认证等 . 本文从 HMAC 和 SHA1 算 法的概念入手 ,提出了一个基于 SHA1 算法的消息 认证机制 ,分析了其原理与认证过程.约定的公钥进行“散列操作 ”,以生成称为“摘要 ”的东西 ,附加在待发送的数据块中. 当数据和摘要到达其目的地时 , 就使用 HMAC 来生成另一个校 验和. 如果两个数字相匹配 ,那么数据未被做任何 篡改. 否则 ,就意味着数据在传输或存储过程中

5、被某些居心叵测的人作了手脚 . 简单地讲 ,校验和类似于指纹 . 它根据消息中的数据生成一个唯一的摘 要. 正如指纹一样 ,如果消息块中有一个字节改变 了 ,那么消息摘要算法将会在另一端检测到这一改 变 ,因为每个摘要是独一无二的.HMAC的定义用公式表示如下 :HMAC ( K, M ) t = H ( ( K0 op ad ) H ( ( K0 ip ad) M ) ) t设 : B 为表示数据块的大小 (位为单位 ) , H 为1 HMAC - SHA1 介绍1. 1HMAC 1 HMAC ( Keyed - H a sh ing fo r M e ssage A u then ti2

6、ca tion)是一个公开的协议 . 是一种基于密钥的报文 完整性的验证方法 ,其安全性是建立在 H a sh 算法 基础上的 . 它要求通信双方共享密钥 、约定算法 、对收稿日期 : 2004207 208作者简介 : 王红霞 ( 1976) ,女 ,浙江金华人 ,浙江水利水电专科学校教师 ,浙江大学软件工程硕士 ,主要从事网络安全方面的研究 .迭代的加密 ha sh 函数 , K0 为 B 长 度的 密 钥 K, K为双方约定的密钥 , L 为 ha sh 函数输出时的数据 块大小 (位 为 单 位 ) , t 为 认 证 码 的 长 度 , ip ad 和op ad分别为输入输出助记符

7、,其值为 0 36 和 0 5 c, M 为待发送的数据块.其具体流程为 :认证协议算法. SHA - 1 函数是由美国国家标准技术局和美国国家安全局设计的与 D SS一起使用的 安全散列 SHA ,具有以下几个特征 :3 可以作用于一个最大长度不超过 264的数据块 ;3 产生一个固定长度的输出 ( 160 位 ) ;3 对任意给定的 x , SHA ( x) 计算相对容易 ,使得软件或硬件的实现可行.3 对任意给 定 码 h, 找到 x满足 SHA ( x) = h在计算上是不可行的 (单向性 ) .3 对任意给定的数据块 x,找到满足 SHA ( y)= SHA ( x) ,而 yx的

8、y是很困难的.3 找到任 意 数 据 对 ( x, y) , 满 足 SHA ( x) = SHA ( y)也是计算不可行的 .前 3 个特点是在消息认证的实际应用中所需 要的. 第 4个特点是“单向 ”特性 : 数据容易正向生 成验证码 ,但验证码反向却很难恢复原数据. 第 5个特点保证 :对给定数据是很难用替换数据生成相 同的哈 希 值 . 第 6 个 特 性 可 以 防 止 诸 如“生 日 攻 击 ”等复杂 类 型 的 外 来 攻 击 , 进 一 步 加 强 了 MAC 的强度 .SHA - 1相对 SHA 增加了左移循环的操作 ,其具体实现过程 3 如下 :( 1 )填充附加位 . 一

9、般经过填充使消息报文长 度 512取模余 64 b it. 该步骤通常是需要的 ,即使消 息长度已是所希望的长度. 因此填充长度范围为 1 到 512 ,最高位为 1 ,其余为 0.( 2 ) 附加报文长度 . 即把一个 64 b it块的报文 附加在上述报文之后 ,从而达到 512 b it的倍数 .( 3 )初始化 MD 缓冲区 . 可以使用 160 位来存 放哈希函数的初始变量 、中间摘要及最终摘要 ,但 首先必须初始化 ,给初始变量 (每个变量 32 b it)赋值 ,即 :H0 = 0 67452301; H2 = 0 efcdab89; H3 = 0 98 badcfe; H4 =

10、 0 10325476; H5 = 0 c3 d2 e1 f0.( 4 )进入消息处理主循环 ,一次处理 512 b it,共有 4轮 , 每轮 20 次操作. 图 2 列出了相应 的 逻辑 图. 4 轮具有类似的结构 ,但每轮使用的辅助函数 和常数不同 ,分别为 :( a)对于 t = 019ft (B , C , D ) = (B AND C) OR ( (NO T B ) AND D ) Kt = 0 5 a827999;( b)对于 t = 20 393 Step1:对消息体消息序列 .text进行分组 ,生成若干个3 Step2:如果转 step4.length ( K)= B ,那

11、么设K0 = K,3H ( K) .3加 B -33上 .333length ( K )Step3: 如 果 B , 则 令K0=Step4:如果 length ( K) B ,则在 K的末尾添length ( K)位的 0 ,形成一个新的密钥 K0. Step5:将 K0和 ip ad进行异或运算.Step6:将 M 数据添加在 step4生成的字节串Step7:将 step5生成的结果运用 H 函数.Step8:将 K0和 op ad进行异或运算 .Step9: 将 step6 的结果加在 step7 生成的字节串上.3 Step10:截取 step8生成的结果的最左边的 位作为该信息传输

12、的认证码.t图 1 HMAC结构F ig. 1 The struc tu re of HAMC1. 2SHA1 算法 2 SHA 1算法是建立在 SHA - 1 函数之上的安全ft (B , C , D ) = B OR C OR DKt = 0 x6 ed9 eba1;( c)对于 t = 4059其中 : A , B , C , D , E = 缓冲区的 5 个字 ; t = 步数 , 0 = t = 79; f ( t, B , C , D ) =步 t的基本逻辑函 数 ;Sk =循环左移 k 位给定的 32 位字 ; W t =一个从当前 512数据块导出的 32 位字 ; Kt =一

13、个用于 加法的常量 , 四个不同的值 , 如前所述 ; + =加模232 .( 5 ) H0 , H1 , H2 , H3 , H4 级 联 后 即 为 输 出.512 b it的消息报文运算完成后就输出 160 b it的消 息摘要 .ft (B , C, X ) = ( B ANDAND D )Kt = 0 x8 f1 bbcdc;( d)对于 t = 6079C ) OR ( B AND D ) OR ( Cft (B , C , D ) = B OR C OR DKt = 0 ca62 c1 d6;注 : AND 表示逻辑与 ; NO T表示逻辑非 ; XOR 表示逻辑 异或 ; OR

14、 表示逻辑或 .2 基于 HMAC - SHA 1算法的消息认证2. 1 一般过程下面以一个 HMAC - SHA1 算法在 IP 电话记 费上的应用 ,来说明 HMAC认证的一般过程 :当用户使用时 ,用户只须直接拨入所叫的电话 号码即可 . 智能终端则自动拨向 IP 服务商 ,待响应后 ,将终端序列号 、主叫电话号码 、认证码一同发给 服务商 . 智能终端序列号相当于公钥 ,用户的密码 就是密钥 . 智能终端对密钥进行 HMAC 协议的加 密运算自动生成认证码 .服务器接收数据码流 ,根据终端序列号确定用户的基本信息 ,再通过数据库中存储的认证码与接 收到认证码的比较 ,确认用户的合法身份

15、. 如身份 无误 ,则接通话路 ,计时收费.图 2 单个 512块的 SHA - 1处理逻辑F ig. 2 The SHA - 1 p roce ss of single 512 b lock s主循环开始先将消息块从 16 个 32 b it字 (M 0M 15 )转化成 80个 32 b it字 (W 0W 79 ) . fo r t = 0 to 15 doW t = M t;fo r t = 16 to 79 doW t = ( W t - 3 XOR 8 XOR W t - 14 XOR W t - 16 ) 1;fo r t = 0 to 79 doTEM P = (A 5 ) +

16、 ft (B , C, D ) + E + W t + Kt; E = D; D = C; C = S30 (B ) ; B = A; A = TEM P;H0 = H0 + A; , H1 = H1 + B ; H2 = H2 + C;H3 = H3 + D; H4 = H4 + E; 进入下一轮循环.归纳起来为 :图 3 HMAC在 IP上的认证过程F ig. 3 The HMAC au then ica tion p roce ss on IP基于 HMAC算法的消息认证步骤 4 大致如下 : 设K、N 分别为服务端和客户端约定的密钥和同步序 列号.3 发送方Step1:利用密钥 K,求

17、出相应的 B 长度的 K0. Step2:利用 HMAC - SHA 1 算法 , 生成 消 息摘要 MAC码 .Step3: N 加 1 ,并同时更新本地的 N.+ f ( t, B , C , D ) + S5 (A )A , B , C, D , E ( E+W t + Kt) , A , S30 (B ) , C , DStep4: 采用某种加密算法 /数字签名技术 , 对M | |N | | HMAC进行加密 ,发给验证方 .3 验证方Step5:先对接受到的数据运用某 种 解密 算法 (如 D ES)进行解密 ,再重复 step1 和 step2 的计算 , 生成一个 MAC码 ,

18、如果和收到的消息摘要码相符 , 则表明数据合法.Step6:如果收到的 N 小于本地存储的 N ,则属 于重传 ,可以进行同步或丢弃. 否则表示数据是新 鲜的 、合法的.以上是一个单向的消息认证过程 ,若需要双向 认证 ,则可以在此基础上采用两个同步序列号 ,在最大限度地实现了数据传输的完整性.( 4 )通信双方采用了同步序列号 ,可以有效地 进行身份认证 ,防止数据重传 .( 5 )在该机制中 ,对 SHA 1函数的初始变量 、中间结果和最终摘要 ,都进行了有效的安全的存储和 保护 ,攻击者也是很难截获的 .3 结束语总的来讲 ,一个消息认证机制的安全与否取决 于所选择的 H a sh函数的

19、安全性 ,主要体现在两个 方面 :一是该 ha sh函数对外界破坏事物的抵抗力 ; 二是被 用于 单个 信 息流 时 H 函 数的 消 息 认 证 能 力. 实际上 ,这两个特性还决定了 HMAC 算法应具 体采用哪一类 ha sh函数. 假如一个 ha sh 函数不具 备这两个特性 ,那么该函数就不适用于大多数待加 密的应用 ,包括基于该类函数的消息交互机制.鉴于以上事实 , 一个安 全的 HMAC 消 息 鉴别 机制在于 :一个加密的 ha sh函数 、一个加密的随机密钥 ;一个安全的密钥交换机制 ;定期的密钥更新 ;良好的密钥保护.交互时 ,双方需彼此验证对方的序列号.2. 2 安全性分

20、析HMAC 码和同步基于 SHA - 1 算法的机制能有效地保护传输过程中数据的完整性和有效性 ,体现在 :( 1 )基于一个通信双方共享的密钥 . 在发送数 据前 ,对密钥进行了 SHA 散列运算 ;在生成消息摘 要的过程中 ,又对密钥进行了两次异或运算 ,大大 加深了攻击者破译的难度 ; 另外 ,周期性地动态更 新密钥 ,克服了 ha sh 函数和密钥本身潜在的不安 全隐 患 , 降 低 了 由 此 带 来 的 危 害 , 进 一 步 加 强 了 MAC的认证强度.( 2 )基于一个加密的散列函数 SHA - 1 , 该函 数不仅具有不可逆性 (即单向性 ) , 而且有优越的 抗攻击能力和

21、良好的雪崩效应.( 3 ) HMAC - SHA 1算法产生 160 b it摘要散列 , 而此时生日攻击仅有约 264的杂凑 ,因此它能有效 的抵抗穷举攻击 ,防止数据被任意地篡改和颠覆 ,参考文献 : 1 Krawczyk H , B e lla re M , Cane tti R. HMAC: Keyed - H a sh ing fo r M e ssage A u then tica tion M . In te rne t Engineering Ta sk Fo rce, R eque st fo r Comm en ts ( R FC) 2104 , Feb rua ry 19

22、97. 2 卢开澄. 计算机 密码 学 - 计 算机 网络中 的数 据保 密 与 安 全M . 北京 :清华大学出版社 , 1998. 3 周晓东 ,卢东明. 软件保护技术 M . 北京 : 清华大学出版社 ,1994. 4 蔡永泉. 计算机网络安全理论与技术教程 M . 北京 : 北京航 空航天大学出版社 , 2003.A M echan ism for M e ssa ge A u then t ica t ion u s in g HM AC - SHA1W A NG Hon g2x ia1, 2 , L U Sa i2qun2( 11College of S of tw a re Te

23、chnology, Z hejiang U n iversity, Hangzhou, Z hejiang 310027, Ch ina;21Z hejiang W a ter Conservancy and Hyd ropow er College, Hangzhou, Z hejiang 310018, Ch ina)A b stra c t: HMAC - SHA1 is a safe m echan ism fo r m e ssage au then tica tion u sing c ryp tograp h ic ha sh func2tion s and key. In th

24、e tran sm ission way da ta cou ldnt be in se rted, mod ified and registe red comp le te ly. It p ro tec ts the in tegrity, re liab ility and the secu rity of da ta. The succe ss is due to the secu rity of the se lec ted ha sh func2 tion s, key and key exchanging m echan ism. B eginn ing w ith the co

25、ncep t of HMAC and SHA 1 , the the sis b rings fo rwa rd to a m e ssage au then tica tion m echan ism ba sed on SHA 1 , ana lyse s the p rinc ip le and p roce ss, and d iscu s2se s the secu re p e rfo rm ance u lte rio rly.Key word s: M e ssage au thena tica tion; HMAC ( ha sh m e ssage au then tica tion code) ; SHA1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号