第8章 消息认证哈希函数.pptVIP

  • 3
  • 0
  • 约8.59千字
  • 约 70页
  • 2025-10-21 发布于广东
  • 举报

杂凑函数输出长度n应足够大,以防止生日攻击。64-bits认为太小。通常128-512bits。*第29页,共70页,星期日,2025年,2月5日目前使用的大多数杂凑函数如MD5、SHA,其结构都是迭代型的,如图8.4所示。*第30页,共70页,星期日,2025年,2月5日CVL-1CV1IV=初始值CVi=链接变量,Yi=第i个输入分组f=压缩函数n=杂凑值的长度b=输入分组的长度迭代型杂凑函数的一般结构bY0nfbY1nfbYL-1nfnnCVLCV0=IV=initialn-bitvalueCVi=f(CVi-1,Yi-1)(1?i?L)H(M)=CVLIV=CV0图8.4迭代型杂凑函数的一般结构*第31页,共70页,星期日,2025年,2月5日其中函数的输入M被分为L个分组Y0,Y1,…,YL-1,每一个分组的长度为b比特,最后一个分组的长度不够的话,需对其做填充。最后一个分组中还包括整个函数输入的长度值,这样一来,将使得敌手的攻击更为困难,即敌手若想成功地产生假冒的消息,就必须保证假冒消息的杂凑值与原消息的杂凑值相同,而且假冒消息的长度也要与原消息的长度相等。*第32页,共70页,星期日,2025年,2月5日算法的核心技术是设计无碰撞的压缩函数f,而敌手对算法的攻击重点是f的内部结构,由于f和分组密码一样是由若干轮处理过程组成,所以对f的攻击需通过对各轮之间的位模式的分析来进行,分析过程常常需要先找出f的碰撞。由于f是压缩函数,其碰撞是不可避免的,因此在设计f时就应保证找出其碰撞在计算上是不可行的。*第33页,共70页,星期日,2025年,2月5日8.3MD5杂凑算法MD4是MD5杂凑算法的前身,由RonRivest于1990年10月作为RFC提出,1992年4月,改动很小的修订版以RFC1320发表。MD5(RFC1321)developedbyRonRivestatMITin90’s.*第34页,共70页,星期日,2025年,2月5日 报文KbitsL?512bits=N?32bits报文长度(Kmod264)100…0Y0512bitsY1512bitsYq512bitsYL-1512bitsHMD5IV128HMD5CV1128HMD5CVq128HMD5CVL-1128512512512512128-bit摘要图8.5MD5的算法框图填充(1to512bits)第35页,共70页,星期日,2025年,2月5日MD5算法描述步骤1:添加填充位(一个1和若干个0)。在消息的最后添加适当的填充位使得数据位的长度满足length?448mod512。即使消息长度已满足要求,仍需填充。例如,消息长为448比特,则需填充512比特,使其长度变为960。因此填充的比特数大于等于1而小于等于512。步骤2:添加长度。添加原始消息的长度(二进制位的个数),用64位表示。以小数在前的格式存储(即低位字节放在低地址字节上)。如果消息长度大于264,则以264为模数取模。这样报文表示为L个512位的数据块:Y0,Y1,…,YL-1。其长度为L?512bits。令N=L?16,则长度为N个32位的字。(令M[0…N-1]表示以字为单位的消息表示)*第36页,共70页,星期日,2025年,2月5日MD5算法描述步骤3:初始化MD缓冲区。一个128位MD缓冲区用以保存中间和最终散列函数的结果。它可以表示为4个32位的寄存器(A,B,C,D)。 寄存器初始化为以下的16进制值: A=B=EFCDAB89 C=98BADCFED=以小数在前的格式存储:WordA:01234567WordB:89ABCDEFWordC:FEDCBA98WordD:76543210*第37页,共70页,星期日,2025年,2月5日MD5算法描述步骤4:处理512位消息块(16个32位字)。压缩函数HMD5是本算法的核心。它包括4轮处理。4轮处理具有相似的结构,但每次使用不同的基本逻辑函数,记为F,G,H,I。每一轮以当前的512位数据块(Yq)和128位缓冲值ABC

文档评论(0)

1亿VIP精品文档

相关文档