pub fn sm3p1(x: u32) -> u32
🔬This is a nightly-only experimental API. (
stdsimd
#48556)Available on RISC-V RV64 and target feature
zksh
only.Expand description
SM3 哈希算法中使用的 P1
转换函数
该函数包含在 Zksh
扩展中。它被定义为:
P1(X) = X ⊕ (X ≪ 15) ⊕ (X ≪ 23)
其中 ⊕
表示 32 位异或,≪ k
表示左移 k
位。
在 SM3 算法中,P1
转换用于扩展消息,其中扩展词 Wj
可以从前面的词生成。
整个过程可以用下面的伪代码来描述:
FOR j=16 TO 67
Wj ← P1(Wj−16 ⊕ Wj−9 ⊕ (Wj−3 ≪ 15)) ⊕ (Wj−13 ≪ 7) ⊕ Wj−6
ENDFOR
根据 RISC-V Cryptography Extensions, Volume I,该指令的执行延迟必须始终独立于它所操作的数据。