Updated SM2 MFMM (2) (markdown)

Sun Yimin 2024-02-22 09:51:01 +08:00
parent 8ebf0bcd44
commit 3cc8105148

@ -28,6 +28,31 @@ $t_1=t_1 + t_0 \ast 0xFFFFFFFF00000001$
$t_2=t_2 + t_0 \ast p_2$
$t_3=t_3 + t_0 \ast p_3$
伪代码:
```asm
MOVQ $0xFFFFFFFF00000001, AX
MULQ t0
ADDQ AX, t1
ADCQ $0, DX
MOVQ DX, BX // carry
MOVQ p2, AX
MULQ t0
ADDQ BX, t2
ADCQ $0, DX
ADDQ AX, t2
ADCQ $0, DX
MOVQ DX, BX // carry
MOVQ p3, AX
MULQ t0
ADDQ BX, t3
ADCQ $0, DX
ADDQ AX, t3
ADCQ $0, DX
MOVQ DX, t0
```
### 方案二:(移位、加法、减法)
$T_2=T_1 \ast P=t_0 \ast P= t_0 \ast (2^{256}-(2^{32} \ast 2^{192} + 0 \ast 2^{128} + (2^{32} - 1) \ast 2^{64} + 1))$
$T_2=t_0 \ast 2^{256} - t_0 \ast 2^{32} \ast 2^{192} - t_0 \ast (2^{32} - 1) \ast 2^{64} - t_0$