密码学与信息安全第12章散列算法和MAC算法_第1页
密码学与信息安全第12章散列算法和MAC算法_第2页
密码学与信息安全第12章散列算法和MAC算法_第3页
密码学与信息安全第12章散列算法和MAC算法_第4页
密码学与信息安全第12章散列算法和MAC算法_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

第12章散列算法和MAC算法第12章散列算法和MAC算法消息认证是用来验证消息完整性的一种机制或服务。产生消息认证符的函数分为如下三类:消息加密:整个消息的密文作为认证符。

消息认证码(MAC):它是消息和密钥的函数,它产生定长的值,以该值作为认证符。目前有两种MAC:HMAC和CMAC散列函数:它是将任意长的消息映射为定长的散列值的函数,以该散列值作为认证符。目前主要有:MD5,SHA-1,SHA256,SHA-384,SHA-512,Whirlpool等。在数字签名方案中也要用到散列函数。对需要签名的消息用一个函数,产生一个固定长度的消息摘要(MessageDigest),最后对消息摘要进行签名,得到确定长度的签名消息。典型的安全散列函数的总体结构典型的安全散列函数的总体结构散列函数将输入消息分为L个固定长度的分组,每一分组长为b位,最后一个分组不足b位时需要将其填充为b位,最后一个分组还需要一些空间保存输入的总长度。散列函数中重复使用了压缩函数f,它的输入是前一步中得出的n位结果(称为链接变量)和一个b位分组,输出为一个n位分组。链接变量的初值由算法在开始时指定,其终值即为散列值,通常b>n,因此称其为压缩函数。散列函数可归纳如下:CV0=IV=初始n位值

CVi=f(CVi-1,Yi-1)1≤i≤LH(M)=CVL安全散列算法安全散列算法(SHA)是由美国标准与技术协会(NIST)设计,并于1993年作为联邦信息处理标准(FIPS180)发布,修订版于1995年发布(FIPS180-1),通常称之为SHA-1.SHA-1产生160比特的散列值。2002年,NIST发布了修订版2,FIPS180-2,其中给出了三种新的SHA版本,散列值长度依次为256,384和512比特。分别称为SHA-256,SHA-384,SHA-512。这些新的版本和SHA-1具有相同的基础结构,使用了相同的模算术和二元逻辑运算。2005年,NIST宣布了逐步废除SHA-1的意图,到2010年,逐步转而依赖SHA的其他版本。安全散列算法1.所有的长度以比特为单位2.安全性是指对输出长度为n比特散列函数的生日攻击产生碰撞的工作量大约为2n/2SHA-1SHA-256SHA-384SHA-512消息摘要长度160256384512消息长度<264<264<2128<2128分组长度51251210241024字长度32326464步骤数80648080安全性80128192256SHA-512逻辑原理+为模264的逐字加SHA-512逻辑原理这个过程包含下列步骤:步骤1:附加填充位。填充消息使其长度模1024与896同余,即长度≡896(mod1024),即使消息已经满足上述长度要求,仍然需要进行填充,因此填充位数在1到1024之间。填充由一个1和后续的0组成。步骤2:附加长度。在消息后附加一个128比特的块,将其看做是128比特的无符号整数,它包含填充前消息的长度。SHA-512逻辑原理步骤3:初始化散列缓冲区。散列函数的中间结果和最终结果保存于512比特的缓冲区中,缓冲区用8个64比特的寄存器(a,b,c,d,e,f,g,h)表示,并将这些寄存器初始化为下列64比特的整数:

a=6A09E667F3BCC908e=510E527FADE682D1b=BB67AE8584CAA73Bf=9B05688C2B3E6C1Fc=3C6EF372FE94F82Bg=1F83D9ABFB41BD6Bd=A54FF53A5F1D36F1h=5BE0CD19137E2179SHA-512逻辑原理步骤4:以1024比特的分组(16个字)为单位处理消息。算法的核心是具有80轮运算的模块。每一轮,如t,使用一个64比特的值Wt,该值由当前被处理的1024比特消息分组Mi导出。每一轮还使用附加的常数Kt,其中0≤t≤79,用来表示轮数。这些常数如下获得:前80个素数取三次根,取小数部分的前64比特。第80轮的输出和第一轮的输入Hi-1进行模264相加产生Hi步骤5:输出。所有的N个1024比特分组都处理完以后,从第N阶段输出的是512比特的消息摘要。

Ho=IVHi=SUM64(Hi-1,abcdefghi)MD=HN

SHA-512轮函数SHA-512轮函数T1=h+Ch(e,f,g)+()+Wt+Kt

T2=()+Maj(a,b,c)a=T1+T2b=ac=bd=ce=d+T1f=eg=fh=gSHA-512轮函数

SHA-512轮函数

HMAC对于MAC,一种策略是利用hash函数来设计,因为:

1、一般像md5、sha-1这样的散列函数,其软件执行速度比诸如des这样的对称分组密码钥要快。

2、可以利用密码散列函数代码库。由于散列函数不是专为MAC设计的,其不依赖于秘密钥,所以不能直接用于MAC,目前提出了许多方案,其中HMAC是最受支持的一种方案。它是IP安全里必须实现的MAC方案,并且在其他Internet协议中也使用了HMACHMAC设计目标不必修改而直接使用现有的hash函数。特别地,很容易免费得到软件上执行速度较快的散列函数及其代码。如果找到或者需要更快或更安全的hash函数,应能很容易地替代原来嵌入的hash函数。应保持hash函数的原有性能。对密钥的使用和处理应较简单。如果已知嵌入的hash函数的强度,则完全可以知道认证机制抗密码分析的强度。HMAC算法H:嵌入的hash函数IV:作为散列函数的输入值M:HMAC的消息输入Yi:M的第i个分组L:M中的分组数b:每一分组所含的位数n:嵌入的散列函数所产生散列码长K:密钥,若k长度大于b,

温馨提示

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

评论

0/150

提交评论