diff --git a/MFMM.md b/MFMM.md index 2cdebb0..6bcb0e8 100644 --- a/MFMM.md +++ b/MFMM.md @@ -1,6 +1,10 @@ MFMM=[Montgomery Friendly modules Montgomery Multiplication](https://eprint.iacr.org/2013/816.pdf) -首先NIST P256 / SM2 256 的素数P都是Montgomery Friendly modules。 +首先NIST P256 / SM2 256 的素数P都是Montgomery Friendly modules。 + +SM2 256 的素数P=0xfffffffeffffffffffffffffffffffffffffffff00000000ffffffffffffffff,也可以表示为 + +$P = 2^{256}-(2^{32} \ast 2^{192} + 0 \ast 2^{128} + (2^{32} - 1) \ast 2^{64} + 1)$ 输入: X, Y都是Montgomery数值表示 @@ -12,6 +16,7 @@ MFMM=[Montgomery Friendly modules Montgomery Multiplication](https://eprint.iacr 输出: X * Y * 2^(-256) mod p + acc0, acc1, acc2, acc3, acc4, acc5是64位寄存器 ### 第一步,计算X * Y0