HASH算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SHA-1算法描述
• 步骤2:补长度。将原始数据的长度补到补 位操作后的消息后面。
补位后 的序列 转换成 16进制
61626380 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000018
SHA-1算法描述
• 步骤6:重复步骤5,对消息块M1…Mn进行 处理。
TEMP = S5(A) + ft(B,C,D) + E + Wt + Kt E = D ; D = C ; C = S30(B) ; B = A ; A = TMP
• 处理完所有的Mn后,得到160bit消息摘要
H0 H1 H2 H3 H4
SHA-1算法描述
• 步骤3:初始化缓冲区{Hi},160bit。
H0 = 0x67452301 H1 = 0xEFCDAB89 H2 = 0x98BADCFE H3 = 0x10325476 H4 = 0xC3D2E1F0
SHA-1算法描述
• 步骤4:将步骤2得到的消息M以512bit分 组。
SHA-1算法描述
• 步骤5:对于Mi进行以下处理 • (4)对于0 ≤ t ≤ 79,执行以下循环:
TEMP = S5(A) + ft(B,C,D) + E + Wt + Kt
ft(B,C,D) = (B ∧C) ∨((¬ B) ∧ D) ft(B,C,D) = B ⊕ C ⊕ D ft(B,C,D) = (B ∧ C) ∨ (B ∧ D) ∨ (C ∧ D) ft(B,C,D) = B ⊕ C ⊕ D ( 0 ≤ t ≤ 19) (20 ≤ t ≤ 39) (40 ≤ t ≤ 59) (60 ≤ t ≤ 79)
‘a’=0x61 ‘b’=0x62 ‘c’=0x63
SHA-1算法描述
• 步骤1:补位。最高位补1,其余补0,使得 数据位总长度对512取余的结果为448。
原始序列 01100001 01100010 01100011 补位后 序列
24位
01100001 01100010 01100011
10000000000 … … 00000000000
SHA-1算法描述
• 步骤5:对于Mi进行以下处理 • (2)扩展W16,W17,…,W79 Wt = S1(Wt-3 ⊕Wt-8 ⊕Wt-14 ⊕Wt-16) (0 ≤ t ≤ 19)
St(W) 将W循环左移t位
SHA-1算法描述
• 步骤5:对于Mi进行以下处理 • (3)令
A = H0 B = H1 C = H2 D = H3 E = H4
SHA-1算法描述
• 步骤5:对于Mi进行以下处理 • (4)对于0 ≤ t ≤ 79,执行以下循环:
TEMP = S5(A) + ft(B,C,D) + E + Wt + Kt
ft(B,C,D) = (B ∧C) ∨((¬ B) ∧ D) ft(B,C,D) = B ⊕ C ⊕ D ft(B,C,D) = (B ∧ C) ∨ (B ∧ D) ∨ (C ∧ D) ft(B,C,D) = B ⊕ C ⊕ D ( 0 ≤ t ≤ 19) (20 ≤ t ≤ 39) (40 ≤ t ≤ 59) (60 ≤ t ≤ 79)
Hash算法
• 散列算法 • 作用:对任何不定长的比特串(消息),计算 出一个定长的比特串(消息摘要或散列值) • 常见Hash算法:SHA-1,MD5,SM3
Hash算法特点
• 定长输出 • 单向性:对任意给定的码h, 寻求x使得 H(x)=h在计算上是不可行的 • 弱抗攻击性:任意给定分组x, 寻求不等于x 的y, 使得H(y)= H(x)在计算上不可行 • 强抗攻击性:寻求对任何的(x,y)对使得 H(x)=H(y)在计算上不可行
SHA-1
• 可以对长度不超过2^64比特的消息进行计 算,输入以512位数据块为单位处理,产生 160比特的消息摘要作为输出。
小于2^64bit
消息 输入 SHA-1 变换 输出 摘要
160bΒιβλιοθήκη Baidut
SHA-1算法描述
• 准备工作:把原始消息(如字符串、文件 等)转换成bit序列。
原始消息 转换 “abc” 01100001 01100010 01100011 bit序列
Hash算法
2014.09.09
• 目录
消息认证
Hash算法特点 SHA-1原理
SHA-1、SM3对比
消息认证
• 定义:通过对消息或者消息有关的信息进 行加密或签名变换进行的认证 • 作用:允许通信的当事人验证所接受的消 息为可信消息。 • 消息认证技术中通常都会用到一类特殊的 数学算法——哈希算法。
SHA-1算法描述
• 步骤5:对于Mi进行以下处理 • (2)扩展W16,W17,…,W79 Wt = S1(Wt-3 ⊕Wt-8 ⊕Wt-14 ⊕Wt-16) (0 ≤ t ≤ 19)
St(W) 将W循环左移t位
SHA-1算法描述
• 步骤5:对于Mi进行以下处理 • (3)令
A = H0 B = H1 C = H2 D = H3 E = H4
压缩函数
压缩成160bit
压缩成256bit
• Thank You!
00000000 00000000 00000000 00000018
M1
SHA-1算法描述
• 步骤5:对于Mi进行以下处理 • (1)将Mi分成16个字W0,W1,…,W15
M1 = 61626380 00000000 00000000 00000000 W0 W1 W2 W3 00000000 00000000 00000000 00000000 W4 W5 W6 W7 00000000 00000000 00000000 00000000 W8 W9 W10 W11 00000000 00000000 00000000 00000018 13/18 W12 W13 W14 W15
448位
补1位1,补423位0
SHA-1算法描述
• 步骤1:补位。最高位补1,其余补0,使得 数据位总长度对512取余的结果为448。
补位后 的序列 转换成 16进制
61626380 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
SHA-1算法描述
• 步骤5:对于Mi进行以下处理 • (4)对于0 ≤ t ≤ 79,执行以下循环:
TEMP = S5(A) + ft(B,C,D) + E + Wt + Kt A = H0,B = H1,C = H2,D = H3,E = H4
SHA-1算法描述
• 步骤5:对于Mi进行以下处理 • (4)对于0 ≤ t ≤ 79,执行以下循环:
• 步骤5:对于Mi进行以下处理 • (4)对于0 ≤ t ≤ 79,执行以下循环:
TEMP = S5(A) + ft(B,C,D) + E + Wt + Kt E = D ; D = C ; C = S30(B) ; B = A ; A = TMP
SHA-1算法描述
• 步骤5:对于Mi进行以下处理 • (5)上一步循环执行完成后,令 H0 = H0 + A H1 = H1 + B H2 = H2 + C H3 = H3 + D H4 = H4 + E
M = M1 || M2 || … || Mi || … || Mn 例
512bit 512bit 512bit 512bit
M = 61626380 00000000 00000000 12/18 00000000
00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000
SHA-1与SM3对比
SHA-1 输入 输出 填充 分组 扩展 ≤2^64 160bit SM3 ≤2^64 256bit
添加1bit 1、nbit 0和64bit原始消息的长度,使 得总长度是512的整数倍 按512bit分组 将每一分组划分16个 将每一分组划分16个 字W0…W15,再扩展 字W0…W15,再扩展 W16…W79,共80个字 W16…W63,共64个字
TEMP = S5(A) + ft(B,C,D) + E + Wt + Kt
Kt = 5A827999 ( 0 ≤ t ≤ 19) Kt = 6ED9EBA1 (20 ≤ t ≤ 39) Kt = 8F1BBCDC (40 ≤ t ≤ 59) Kt = CA62C1D6 (60 ≤ t ≤ 79)
SHA-1算法描述