算法的消息认证机制精品_第1页
算法的消息认证机制精品_第2页
算法的消息认证机制精品_第3页
全文预览已结束

下载本文档

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

文档简介

1、第 19卷第 1 期2005 年 3 月山西师范大学学报 (自然科学版 )Jou rna l of Shanxi Teache rs U nive rsityN atu ra l Sc ience Ed itionVo l. 19 No. 1M a r. 2005文章编号 : 1009 24490 ( 2005 ) 01 20030 204基于 HMAC - SHA1算法的消息认证机制王红霞1 , 2 , 陆塞群 2. 它可以有效地防 SHA1 消 息认证机 . 本文从 HMAC SHA1 算法的消息认证机制 ,分析了其原理与认证过程 ,并对( 11浙江大学软件学院 , 浙江 杭州 31002

2、7; 21浙江水利水电专科学校 , 浙江 杭州 310018 )摘 要: HMAC - SHA1是一种安全的基于加密 ha sh函数和共享密钥的消息认证协议 止数据在传输过程中被截获和篡改 ,维护了数据的完整性 、可靠性和安全性 . HMAC - 制的成功在于一个加密的 ha sh函数 、一个加密的随机密钥和一个安全的密钥交换机制 和 SHA1 算法的概念入手 ,提出了一个基于 其安全性作了进一步的研究 .关键词 : 消息认证 ; HMAC; SHA1 中图分类号 : 文献标识码 : A收稿日期 : 2004 207 208作者简介 : 王红霞 ( 1976) ,女 ,浙江金华人 ,浙江水利水

3、电专科学校教师,浙江大学软件工程硕士 ,主要从事网络安全方面的研究 .0 引言 消息认证是多媒体信息安全技术的一个重要 方面 ,主要解决数据在通信和存储过程的完整性问 题 , 以确保信息不受非法攻击和篡改. 由于认证技术提供了通信双方身份和通信内容 、过程的可信度 保证 ,从而被广泛应用于以多媒体信息为主要交流 方式的网络业务系统中 ,如电子商务 、电子政务等 . 而在上述系统中 ,由于信息往来比较频繁 ,而且信 息权限分级比较细 ,因此 ,如何保证信息的安全性 、 完整性和可靠性 ,是认证系统必须要解决的问题.目前 ,消息认证技术有很多 ,如 HMAC 、数字签名 、 易损水印 、生物认证等

4、 . 本文从 HMAC 和 SHA1 算 法的概念入手 ,提出了一个基于 SHA1 算法的消息 认证机制 ,分析了其原理与认证过程 .1 HMAC - SHA1 介绍 1 1. 1 HMACHMAC ( Keyed - H a sh ing fo r M e ssage A u then 2ti ca tion)是一个公开的协议 . 是一种基于密钥的报文 完整性的验证方法 ,其安全性是建立在H a sh 算法基础上的 . 它要求通信双方共享密钥 、约定算法 、对 报文进行 H ash 运算 ,如 MD5 、SHA、R IPEMD 等 ,形 成固定长度的认证码 (MAC ) . 通信双方通过认证

5、 码的校验来确定报文的合法性 . 这个协议可以用来 作加密 、数字签名 、报文验证之用等 .HMAC 的定义HMAC 是一种执行“ 校验和 ”的算法. 它 通过对数 据进行“求和 ”来 检查数据 是否被更 改 了. 在发送数据以前 , HMAC 算法对数据块和双方 约定的公钥进行“ 散列操作 ”,以生成称为“ 摘要 ” 的东西 ,附加在待发送的数据块中 . 当数据和摘要 到达其目的地时 , 就使用 HMAC 来生成另一个校 验和 . 如果两个数字相匹配 , 那么数据未被做任何 篡改 . 否则 ,就意味着数据在传输或存储过程中被 某些居心叵测的人作了手脚 . 简单地讲 ,校验和类 似于指纹 .

6、它根据消息中的数据生成一个唯一的摘 要. 正如指纹一样 , 如果消息块中有一个字节改变 了 ,那么消息摘要算法将会在另一端检测到这一改 变 ,因为每个摘要是独一无二的 .HMAC 的定义用公式表示如下 :HMAC ( K, M ) t = H ( ( K0 ? op ad ) H ( ( K0 ? ip ad) M ) ) t设 : B 为表示数据块的大小 (位为单位 ) , H 为 迭代的加密 ha sh 函数 , K0 为 B 长度的密钥 K, K 为双方约定的密钥 , L 为 ha sh 函数输出时的数据 块大小 (位为单位 ) , t 为认证码的长度 , ip ad 和 op ad分别

7、为输入输出助记符 ,其值为 0 ×36 和 0 × 5 c, M 为待发送的数据块 .其具体流程为 :3 Step1:对消息体 text 进行分组 ,生成若干个 消息序列 .3 Step2: 如果 length ( K) = B ,那么设 K0 = K, 转 step4.3 Step3: 如 果 length ( K ) > B , 则 令 K0 = H ( K) .3 Step4:如果 length ( K) < B ,则在 K的末尾添 加 B - length ( K)位的 0 , 形成一个新的密钥 K0.3 Step5:将 K0和 ip ad进行异或运算

8、.3 Step6: 将 M 数据添加在 step4生成的字节串 上.3 Step7:将 step5生成的结果运用 H 函 数 .3 Step8:将 K0和 op ad 进行异或运算 .3 Step9: 将 step6的 结果加在 step7生 成的字 节串上 .3 Step10: 截取 step8生成的结果的最左边的t位作为该信息传输的认证码 .图 1 HMAC 结构 F ig. 1 The struc tu re of HAMC1. 2 SHA1 算法SHA 1算法是建立在 SHA - 1 函数之上的安全认证协议算法 . SHA - 1 函 数是由美国国家标准技 术局和美国国家安全局设计的与

9、D SS一起使用的安全散列 SHA ,具有以下几个特征 :643 可以作用于一个最大长度不超过264 的数据块;3 产生一个固定长度的输出 ( 160 位 ) ;3 对任意给定的 x , SHA ( x) 计算相对容易 , 使得软件或硬件的实现可行 .3 对任意给 定码 h, 找到 x满足 SHA ( x) = h 在计算上是不可行的 (单向性 ) .3 对任意给定的数据块x, 找到满足 SHA ( y)= SHA ( x) ,而 y x 的 y是很困难的 .3 找到任 意 数 据 对 ( x, y) , 满 足 SHA ( x) = SHA ( y)也是计算不可行的 .前 3 个特点是在消息

10、认证的实际应用中所需 要的 . 第 4个特点是 “单向 ”特性 : 数据容易正向生 成验证码 ,但验证码反向却很难恢复原数据. 第 5个特点保证 :对给定数据是很难用替换数据生成相 同的哈 希值 . 第 6 个特性可 以防止诸如“生日攻 击 ”等复杂 类 型 的 外 来 攻 击 , 进 一 步 加 强 了 MAC 的强度 .SHA - 1相对 SHA 增加了左移循环的操作 ,其 具体实现过程 3 如下 :( 1 ) 填充附加位 . 一般经过填充使消息报文长 度 512取模余 64 b it. 该步骤通常是需要的 ,即使消 息长度已是所希望的长度 . 因此填充长度范围为 1 到 512 , 最高

11、位为 1 , 其余为 0.( 2 ) 附加报文长度 . 即把一个 64 b it块的报文 附加在上述报文之后 ,从而达到 512 b it的倍数 .( 3 ) 初始化 MD 缓冲区 . 可以使用 160 位来存 放哈希函数的初始变量 、中间摘要及最终摘要,但首先必须初始化 ,给初始变量 (每个变量 32 bit) 赋 值 , 即 :H0 = 0 ×67452301; H2 = 0 ×efcdab89;H3 = 0 ×98 badcfe; H4 = 0 ×10325476;H5 = 0 ×c3 d2 e1 f0.( 4)进入消息处理主循环 ,一次

12、处理 512 bit,共 有 4轮 , 每轮 20 次操作 . 图 2 列出了相应 的逻辑 图. 4 轮具有类似的结构 ,但每轮使用的辅助函数 和常数不同 , 分别为 :( a) 对于 t = 0 19ft (B , C , D ) = (B AND C) OR ( (NO T B ) AND D ) Kt = 0 ×5 a827999;( b)对于 t = 20 39ft (B , C , D ) = B ×OR C ×OR D Kt = 0 x6 ed9 eba1;( c)对于 t = 40 59ft (B , C, X ) = ( B AND C ) OR

13、( B AND D ) OR ( C AND D )Kt = 0 x8 f1 bbcdc;( d)对于 t = 60 79 ft (B , C , D ) = B ×OR C ×OR D Kt = 0 ×ca62 c1 d6;注 : AND 表示逻辑与 ; NO T表示逻辑非 ; XOR 表 示逻辑 异或 ; OR 表示逻辑或 .其中: A , B , C , D , E = 缓冲区的 5 个字; t = 步数 , 0 < = t < = 79; f ( t, B , C , D ) = 步 t的基本逻辑函 数;Sk =循环左移 k 位给定的 32 位

14、字 ; W t = 一个 从当前 512数据块导出的 32 位字 ; Kt = 一个用于 加法的常量 , 四 个不同的值 , 如 前所述 ; + =加模 322.( 5) H0 , H1 ,H2 ,H3 , H4 级联后即为输出. 512 b it的消息报文运算完成后就输出160 bit的消息摘要 .2 基于 HMAC - SHA1算法的消息认证2. 1 一般过程下面以一个 HMAC - SHA1 算法在 IP 电 话记 费上的应用 ,来说明 HMAC 认证的一般过程 :当用户使用时 ,用户只须直接拨入所叫的电话 号码即可 . 智能终端则自动拨向 IP 服务商 ,待响应 后 ,将终端序列号 、

15、主叫电话号码 、认证码一同发给 服务商 . 智能终端序列号相当于公钥,用户的密码就是密钥 . 智能终端对密钥进行 HMAC 协议的加 密运算自动生成认证码 .服务器接收数据码流 ,根据终端序列号确定用 户的基本信息 ,再通过数据库中存储的认证码与接 收到认证码的比较 ,确认用户的合法身份 . 如身份 无误 ,则接通话路 ,计时收费 .图 2 单个 512 块的 SHA - 1 处理逻辑F ig. 2 The SHA - 1 p roce ss of single 512 b lock s主循环开始先将消息块从 16 个 32 bit字 (M 0 M 15 )转化成 80个 32 bit字 (W

16、 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 ) + 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

17、+ D; H4 = H4 + E; 进入下一轮循环 .归纳起来为 :5A , B , C, D , E( E + f ( t, B , C, D ) + S5 (A ) +30W t + Kt ) , A , S (B ) , C , D图 3 HMAC 在 IP上的认证过程F ig. 3 The HMAC au then ica tion p roce ss on IP基于 HMAC 算法的消息认证步骤 4 大致如下 : 设K、N 分别为服务端和客户端约定的密钥和同步序 列号 .3 发送方Step1:利用密钥 K,求出相应的 B 长度的 K0.Step2:利用 HMAC - SHA 1算法

18、, 生成消息 摘 要 MAC 码 .Step3: N 加 1 ,并同时更新本地的 N.Step4: 采 用某种加密算法 /数字签名技术 , 对 M | |N | | HMAC 进行加密 ,发给验证方 .3 验证方Step5:先对接受到的数据运用某种 解密 算法(如 D ES)进行解密 ,再重复 step1 和 step2 的计算 , 生成一个 MAC 码 ,如果和收到的消息摘要码相符,则表明数据合法 .Step6:如果收到的 N 小于本地存储的 N , 则属 于重传 ,可以进行同步或丢弃 . 否则表示数据是新 鲜的 、合法的 .以上是一个单向的消息认证过程,若需要双向认证 ,则可以在此基础上采

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

20、 (即单向性 ) , 而且有优越的 抗攻击能力和良好的雪崩效应 .( 3 ) HMAC - SHA 1算法产生 160 b it摘要散列 , 而此时生日攻击仅有约 264的杂凑 ,因此它能有效 的抵抗穷举攻击 ,防止数据被任意地篡改和颠覆, 最大限度地实现了数据传输的完整性 .( 4)通信双方采用了同步序列号,可以有效地进行身份认证 ,防止数据重传 .( 5)在该机制中 ,对 SHA 1函数的初始变量 、中 间结果和最终摘要 ,都进行了有效的安全的存储和 保护 ,攻击者也是很难截获的 .3 结束语总的来讲 ,一个消息认证机制的安全与否取决 于所选择的 H a sh函数的安全性 ,主要体现在两个

21、 方面 : 一是该 ha sh函数对外界破坏事物的抵抗力;二是被 用于单个信息流时 H 函数的消息认证能 力. 实际上 ,这两个特性还决定了 HMAC 算法应具 体采用哪一类 ha sh函数 . 假如一个 ha sh函 数不具 备这两个特性 ,那么该函数就不适用于大多数待加 密的应用 ,包括基于该类函数的消息交互机制 .鉴于以上事实 , 一个安 全的 HMAC 消息鉴别 机制在于 :一个加密的 ha sh 函数 、一个加密的随机 密钥 ;一个安全的密钥交换机制 ;定期的密钥更新 ; 良好的密钥保护 .参考文献 : 1 Krawczyk H , B ella re M , Canet ti R.

22、 HMAC: Keyed - H ash ing fo r M essage A uthen ticat ion M . In te rne t Engineering Ta sk Fo rce, R eque st fo r Comm en ts ( R FC) 2104 , Feb rua ry 1997. 2 卢开澄. 计算机密码学 - 计算机网络中的数据保密与安全 M . 北京 :清华大学出版社 , 1998. 3 周晓东 ,卢东明. 软件保护技术 M . 北京: 清华大学出版社 , 1994. 4 蔡永泉. 计算机网络安全理论与技术教程 M . 北京: 北京航 空航天大学出版社 , 2003.A M echan ism for M e ssa ge A uthen ti ca ti on u sing HM AC - SHA11, 22W ANG Hong2x ia1, 2 , L U Sa i2qun2(11Collegeo f Software Technology, h Zejiang University, H angzhou, hZejiang3 10027, China;21Zhejiang W taer Conservancy aHnydd ropwo er College, Hangzhou,h e Zjiang

温馨提示

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

评论

0/150

提交评论