diff --git a/SM2-MFMM-(2).md b/SM2-MFMM-(2).md index b94d801..677021a 100644 --- a/SM2-MFMM-(2).md +++ b/SM2-MFMM-(2).md @@ -266,3 +266,24 @@ $t_5=t_5 - 0$ 移位: 2 加法:5 减法:4 + +## Order平方的模约减优化 +假设 $T=a^2$ : +$T=t_7 \ast 2^{448} + t_6 \ast 2^{384} + t_5 \ast 2^{320} + t_4 \ast 2^{256} + t_3 \ast 2^{192} + t_2 \ast 2^{128} + t_1 \ast 2^{64} + t_0 $ + +则共四次约减,第一次约减为: +$T_1=t_0$ +$Y=T_1 \ast k_0$ + +计算Y: +```asm + MOVQ acc0, AX + MULQ p256ordK0<>(SB) + MOVQ AX, t0 // Y = t0 = (k0 * acc0) mod 2^64 +``` + +使用MULX: +```asm + MOVQ acc0, DX + MULXQ p256ordK0<>(SB), t0, AX +```