深入解析SHA-2与SHA-3哈希函数
1. SHA-2哈希函数概述
SHA-2系列函数和SHA-1、MD5一样,属于Merkle–Damgård函数,采用了专门的压缩函数设计,可视为Davies–Meyer压缩函数的变体,使用模加法而非异或操作。以下是NIST在FIPS 180中标准化的哈希函数参数概述:
| 算法 | 消息大小 | 块大小 | 字大小 | 状态大小 | 输出大小 |
| — | — | — | — | — | — |
| SHA-1 | < 2^64 | 512 | 32 | 160 | 160 |
| SHA-224 | < 2^64 | 512 | 32 | 256 | 224 |
| SHA-256 | < 2^64 | 512 | 32 | 256 | 256 |
| SHA-384 | < 2^128 | 1024 | 64 | 512 | 384 |
| SHA-512 | < 2^128 | 1024 | 64 | 512 | 512 |
| SHA-512/224 | < 2^128 | 1024 | 64 | 512 | 224 |
| SHA-512/256 | < 2^128 | 1024 | 64 | 512 | 256 |
SHA-2的六个函数可分为两组:
- 基于SHA-256的组 :包含SHA-256和SHA-224,基于32位字操作,消息块大小为512位,内部状态为256位。使用Merkle–Damgård强化填充,消息长度预留64位,理论最大消息长度为2^64 - 1位
超级会员免费看
订阅专栏 解锁全文
2335

被折叠的 条评论
为什么被折叠?



