密码学
SHA-256
别称: SHA-2(256 位), FIPS 180-4 SHA-256
定义
SHA-2 系列中的 256 位密码学哈希函数,广泛用于数字签名、TLS、区块链与完整性校验。
SHA-256 是 NIST 在 FIPS 180-4 中标准化的 SHA-2 系列成员,可将不超过 2^64 比特的输入压缩为 256 位(32 字节)摘要。它采用 Merkle-Damgård 结构,内部使用类似 Davies-Meyer 的压缩函数,对 512 位分组进行 64 轮运算。SHA-256 是 TLS 1.2/1.3、X.509 证书、Bitcoin 工作量证明、代码签名以及 HMAC-SHA-256 的基石。目前没有任何实际攻击优于通用的 2^128 碰撞与 2^256 原像界,因此被认为足够安全;但用于口令哈希时,仍应包裹在 Argon2、scrypt 或 PBKDF2 等慢速 KDF 中。
示例
- Bitcoin 使用双 SHA-256 进行区块哈希和工作量证明。
- 现代 X.509 证书使用 SHA-256 签名(sha256WithRSAEncryption)。
相关术语
密码学哈希函数
将任意长度输入映射为固定长度摘要的确定性单向函数,具备抗碰撞、抗原像和抗第二原像三大安全性质。
SHA-1
由美国国家安全局于 1995 年设计的密码学哈希函数,输出 160 位摘要,目前在抗碰撞性方面已被视为破解。
SHA-3
基于 Keccak 海绵结构的哈希函数家族,由 NIST 标准化为与 SHA-2 结构上完全不同的替代方案。
HMAC
基于密码学哈希函数的带密钥消息认证码结构,由 RFC 2104 与 FIPS 198-1 定义。
数字签名
一种公钥密码学机制,用于证明消息或文档的真实性、完整性以及不可否认性。
BLAKE2
RFC 7693 规范的现代高速密码学哈希函数,安全性可与 SHA-3 相比,在软件上性能显著更高。