实验四 SHA1算法原理 (1)分析.pdf

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SHA1算法原理 1 SHA1 算法简介 安全哈希算法(Secure HashAlgorithm)主要适用于数字签名标准 (Digital Signature StandardDSS )里面定义的数字签名算法(Digital Signature AlgorithmDSA)。对于长度小于2^64 位的消息,SHA1 会产 生一个160 位的消息摘要。当接收到消息的时候,这个消息摘要可以 用来验证数据的完整性。在传输的过程中,数据很可能会发生变化, 那么这时候就会产生不同的消息摘要。 SHA1 有如下特性:不可以从消息摘要中复原信息;两个不同的 消息不会产生同样的消息摘要。 2 术语和概念 2.1位(Bit),字节(Byte)和字(Word) SHA1 始终把消息当成一个位(bit )字符串来处理。本文中,一个“字” (Word)是32 位,而一个“字节”(Byte )是8 位。比如,字符串“abc ” 可以被转换成一个位字符串0110001001100011。它也可以 被表示成16 进制字符串: 0x616263. 2.2 运算符和符号 下面的逻辑运算符都被运用于“字”(Word) X^Y = X, Y 逻辑与 X \/ Y = X, Y 逻辑或 X XOR Y= X, Y 逻辑异或 ~X = X 逻辑取反 X+Y 定义如下: 字 X 和 Y 代表两个整数 x 和y, 其中 0 = x 2^32 且 0 = y 2^32. 令整数z = (x + y) mod 2^32. 这时候 0 = z 2^32. 将z 转换 成字Z, 那么就是 Z = X + Y. 循环左移位操作符Sn(X) 。X 是一个字,n 是一个整数,0=n=32 。 Sn(X) = (Xn)OR(X32-n) Xn 定义如下:抛弃最左边的n 位数字,将各个位依次向左移 动n 位,然后用0 填补右边的n 位(最后结果还是32 位)。Xn 是 抛弃右边的n 位,将各个位依次向右移动n 位,然后在左边的n 位填 0 。因此可以叫Sn(X)位循环移位运算 3 SHA1 算法描述 在SHA1 算法中,我们必须把原始消息(字符串,文件等)转换 成位字符串。SHA1 算法只接受位作为输入。假设我们对字符串“abc ” 产生消息摘要。首先,我们将它转换成位字符串如下: 01100010 ――――――――――――― ‘a ’=97 ‘’=98 ‘c ’=99 这个位字符串的长度为24 。下面我们需要5 个步骤来计算MD5 。 3.1 补位 消息必须进行补位,以使其长度在对512 取模以后的余数是448 。 也就是说,(补位后的消息长度)%512 = 448。即使长度已经满足对 512 取模后余数是448 ,补位也必须要进行。 补位是这样进行的:先补一个1,然后再补0 ,直到长度满足对 512 取模后余数是448 。总而言之,补位是至少补一位,最多补512 位。还是以前面的“abc ”为例显示补位的过程。 原始信息:01100010 补位第一步011000101 首先补一个“1” 补位第二步0110001010…..0 然后补423 个“0 ” 我们可以把最后补位完成后的数据用16 进制写成下面的样子 0000000000000000 0000000000000000 0000000000000000 00000000 现在,数据的长度是448 了,我们可以进行下一步操作。 3.2 补长度 所谓的补长度是将原始数据的长度补到已经进行了补位操作的消 息后面。通常用一个64 位的数据来表示原始消息的长度。如果消息 长度不大于2^64,那么第一个字就是0 。在进行了补长度的操作以后, 整个消息就变成下面这样了(16 进制格式)

文档评论(0)

tianya189 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体阳新县融易互联网技术工作室
IP属地上海
统一社会信用代码/组织机构代码
92420222MA4ELHM75D

1亿VIP精品文档

相关文档