ImageVerifierCode 换一换
格式:DOC , 页数:7 ,大小:32.50KB ,
资源ID:2993794      下载积分:15 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-2993794.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(SHA1算法原理.doc)为本站会员(11****ws)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

SHA1算法原理.doc

1、SHA1 算法原理1 SHA1 算法简介安全哈希算法(Secure HashAlgorithm)主要适用于数字签名标准(Digital Signature StandardDSS)里面定义的数字签名算法(Digital Signature AlgorithmDSA) 。对于长度小于 264 位的消息,SHA1 会产生一个 160 位的消息摘要。当接收到消息的时候,这个消息摘要可以用来验证数据的完整性。在传输的过程中,数据很可能会发生变化,那么这时候就会产生不同的消息摘要。 SHA1 有如下特性:不可以从消息摘要中复原信息;两个不同的消息不会产生同样的消息摘要。2 术语和概念2.1 位(Bit)

2、,字节( Byte)和字(Word )SHA1 始终把消息当成一个位(bit )字符串来处理。本文中,一个“字” (Word)是 32 位,而一个“字节” (Byte )是 8 位。比如,字符串“abc”可以被转换成一个位字符串:01100001 0110001001100011。它也可以被表示成 16 进制字符串: 0x616263.2.2 运算符和符号下面的逻辑运算符都被运用于“字” (Word) XY = X, Y 逻辑与 X / Y = X, Y 逻辑或 X XOR Y= X, Y 逻辑异或 X = X 逻辑取反 X+Y 定义如下: 字 X 和 Y 代表两个整数 x 和 y, 其中 0

3、 32-n) Xn 是抛弃右边的 n 位,将各个位依次向右移动 n 位,然后在左边的 n 位填 0。因此可以叫 Sn(X)位循环移位运算3 SHA1 算法描述在 SHA1 算法中,我们必须把原始消息(字符串,文件等)转换成位字符串。SHA1 算法只接受位作为输入。假设我们对字符串“abc”产生消息摘要。首先,我们将它转换成位字符串如下: 01100001 01100010 01100011 a=97 b=98 c=99 这个位字符串的长度为 24。下面我们需要 5 个步骤来计算MD5。3.1 补位消息必须进行补位,以使其长度在对 512 取模以后的余数是448。也就是说, (补位后的消息长度)

4、%512 = 448。即使长度已经满足对 512 取模后余数是 448,补位也必须要进行。 补位是这样进行的:先补一个 1,然后再补 0,直到长度满足对512 取模后余数是 448。总而言之,补位是至少补一位,最多补 512位。还是以前面的“abc ”为例显示补位的过程。 原始信息: 01100001 01100010 01100011 补位第一步:01100001 01100010 01100011 1 首先补一个“1” 补位第二步:01100001 01100010 01100011 10.0 然后补 423 个“0” 我们可以把最后补位完成后的数据用 16 进制写成下面的样子 61626

5、380 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 现在,数据的长度是 448 了,我们可以进行下一步操作。3.2 补长度所谓的补长度是将原始数据的长度补到已经进行了补位操作的消息后面。通常用一个 64 位的数据来表示原始消息的长度。如果消息长度不大于 264,那么第一个字就是 0。在进行了补长度的操作以后,整个消息就变成下面这样了(16 进制格式) 61626380 00000000 00000000 0

6、0000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000018 如果原始的消息长度超过了 512,我们需要将它补成 512 的倍数。然后我们把整个消息分成一个一个 512 位的数据块,分别处理每一个数据块,从而得到消息摘要。3.3 使用的常量一系列的常量字 K(0), K(1), . , K(79),如果以 16 进制给出。它们如下: Kt = 0x5A827999 (0 = t = 19) Kt = 0x6ED9EBA1 (2

7、0 = t = 39) Kt = 0x8F1BBCDC (40 = t = 59) Kt = 0xCA62C1D6 (60 = t = 79).3.4 需要使用的函数在 SHA1 中我们需要一系列的函数。每个函数 ft (0 = t = 79)都操作 32 位字 B,C ,D 并且产生 32 位字作为输出。ft(B,C,D)可以如下定义 ft(B,C,D) = (B AND C) or (NOT B) AND D) ( 0 = t = 19) ft(B,C,D) = B XOR C XOR D (20 = t = 39) ft(B,C,D) = (B AND C) or (B AND D) o

8、r (C AND D) (40 = t = 59) ft(B,C,D) = B XOR C XOR D (60 = t = 79).3.5 计算消息摘要必须使用进行了补位和补长度后的消息来计算消息摘要。计算需要两个缓冲区,每个都由 5 个 32 位的字组成,还需要一个 80 个 32位字的缓冲区。第一个 5 个字的缓冲区被标识为 A,B,C,D,E。第一个 5 个字的缓冲区被标识为 H0, H1, H2, H3, H4 。80 个字的缓冲区被标识为 W0, W1,., W79 另外还需要一个一个字的 TEMP 缓冲区。 为了产生消息摘要,在第 4 部分中定义的 16 个字的数据块 M1, M2

9、,., Mn 会依次进行处理,处理每个数据块 Mi 包含 80 个步骤。 在处理每个数据块之前,缓冲区Hi 被初始化为下面的值(16进制) H0 = 0x67452301 H1 = 0xEFCDAB89 H2 = 0x98BADCFE H3 = 0x10325476 H4 = 0xC3D2E1F0. 现在开始处理 M1, M2, . , Mn。为了处理 Mi,需要进行下面的步骤 (1). 将 Mi 分成 16 个字 W0, W1, . , W15, W0 是最左边的字 (2). 对于 t = 16 到 79 令 Wt = S1(Wt-3 XOR Wt-8 XOR Wt- 14 XOR Wt-1

10、6). (3). 令 A = H0, B = H1, C = H2, D = H3, E = H4. (4) 对于 t = 0 到 79,执行下面的循环 TEMP = S5(A) + ft(B,C,D) + E + Wt + Kt; E = D; D = C; C = S30(B); B = A; A = TEMP; (5). 令 H0 = H0 + A, H1 = H1 + B, H2 = H2 + C, H3 = H3 + D, H4 = H4 + E. 在处理完所有的 Mn, 后,消息摘要是一个 160 位的字符串,以下面的顺序标识 H0 H1 H2 H3 H4.对于 SHA256,SHA384,SHA512。你也可以用相似的办法来计算消息摘要。对消息进行补位的算法完全是一样的。sha1 是一种比 md5 的安全性强的算法,当然 sha256 和 sha512 更好,但计算开销更大一些,理论上,凡是采取“消息摘要”方式的数字验证算法都是有“碰撞”的也就是两个不同的东西算出的消息摘要相同,互通作弊图就是如此。但是安全性高的算法要找到指定数据的“碰撞”很困难(困难到用暴力法寻找要花去几百年甚至几千年) ,而利用公式来计算“碰撞”就更困难目前为止通用安全算法中仅有 md5 被破解.

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。