diff --git a/SM2-MFMM-(2).md b/SM2-MFMM-(2).md index 328bc32..b6af0c9 100644 --- a/SM2-MFMM-(2).md +++ b/SM2-MFMM-(2).md @@ -55,6 +55,30 @@ $t_3=t_3 + t_0 \ast p_3$ 乘法: 3 加法:10 +使用MULXQ/ADCXQ/ADOXQ: +```asm + MOVQ t0, DX + XORQ BX, BX + XORQ SI, SI + + MULXQ p1, AX, DI + ADCXQ BX, AX + ADOXQ AX, t1 + + MULXQ p2, AX, BX + ADCXQ DI, AX + ADOXQ AX, t2 + + MULXQ p3, AX, t0 + ADCXQ BX, AX + ADOXQ AX, t3 + + ADCXQ SI, t0 + ADOXQ SI, t0 +``` +乘法: 3 +加法:8 + ### 方案二:(移位、加法、减法) $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$