SHA-3 哈希函数:原理、变体与安全性
1. Keccak-p 置换概述
Keccak-p 是一种灵活的置换算法,有七种不同的规格,可处理 25 到 1600 位的置换操作。其轮函数 θ、ρ、π、χ 和 ι 经过精心设计,能在不同状态大小下以相似的方式运行。这些函数仅使用简单的位操作,不涉及模加法,具有简单的图形表示,便于理解和分析。
在硬件实现方面,Keccak 比其他所有 SHA - 3 候选算法都要快。然而,在软件环境以及没有针对 Keccak 进行优化指令集的 CPU 上,Keccak 的速度可能明显慢于 SHA - 2 或 SHA - 1。当输入消息非常大时,可以考虑使用 SHAKE128 或 SHAKE256,它们的速率比 SHA3 - 512 或 SHA3 - 384 更大,每次调用 Keccak - p 时能处理更多的输入消息位。此外,还可以使用 2016 年被 NIST 标准化的 ParallelHash 变体。最近,Keccak 的设计者还发布了 KangarooTwelve,它使用了 Keccak - p 的简化轮版本,并结合基于树的方案,以实现最佳速度,但这两个函数尚未经过与 Keccak 相同程度的审查。
2. SHA - 3 函数规范
2.1 基础函数概述
NIST 在 FIPS 202 和 SP 800 - 185 中对 Keccak 的不同变体进行了标准化。FIPS 202 定义了四个固定输出长度的哈希函数和两个可扩展输出函数,SP 800 - 185 在此基础上增加了四个额外的函数,包括加盐的可扩展输出函数(XOF)、消息认证码、用于对字符串元组进行哈希处理的函数以及用于长字符串快速并行哈希的版本
超级会员免费看
订阅专栏 解锁全文

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



