Function core::arch::riscv32::sm3p0

source ·
pub fn sm3p0(x: u32) -> u32
🔬This is a nightly-only experimental API. (stdsimd #48556)
Available on RISC-V RV32 and target feature zksh only.
Expand description

SM3 哈希算法中使用的 P0 转换函数

该函数包含在 Zksh 扩展中。它被定义为:

P0(X) = X ⊕ (X ≪ 9) ⊕ (X ≪ 17)

其中 表示 32 位异或,≪ k 表示左移 k 位。

在 SM3 算法中,当压缩函数 CF 使用中间值 TT2 计算变量 E 一次迭代时,将 P0 转换作为 E ← P0(TT2) 用于后续处理。

根据 RISC-V Cryptography Extensions, Volume I,该指令的执行延迟必须始终独立于它所操作的数据。