diff --git a/SM2-WWMM-(2).md b/SM2-WWMM-(2).md index f397542..c841219 100644 --- a/SM2-WWMM-(2).md +++ b/SM2-WWMM-(2).md @@ -122,6 +122,13 @@ $t_0=t_0 - a_1$ 移位: 2 加法:4 减法:4 + + +| 方案 | 乘法 | 移位 | 加法 | 减法 | +| ----------- | ----------- | ----------- | ----------- | ----------- | +| 方案一 | 3 | 0 | 10 | 0 | +| 方案一(MULX/ADCX/ADOX) | 3 | 0 | 7 | 0 | +| 方案二 | 0 | 2 | 4 | 4 | ## P域乘法的WWMM约减优化 乘法没有和平方一样,先把乘法做完再约减,而是乘法和约减混合在一起做的。 @@ -267,6 +274,12 @@ $t_5=t_5 - 0$ 加法:5 减法:4 +| 方案 | 乘法 | 移位 | 加法 | 减法 | +| ----------- | ----------- | ----------- | ----------- | ----------- | +| 方案一 | 3 | 0 | 11 | 0 | +| 方案一(MULX/ADCX/ADOX) | 3 | 0 | 8 | 0 | +| 方案二 | 0 | 2 | 5 | 4 | + ## SM2 P256 Order表示 SM2的素数Order=0xFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF7203DF6B21C6052B53BBF40939D54123 @@ -466,6 +479,13 @@ $T_3=t_7 \ast 2^{448} + t_6 \ast 2^{384} + t_5 \ast 2^{320} + (t_4+Y) \ast 2^{25 加法:7 减法:3 +| 方案 | 乘法 | 移位 | 加法 | 减法 | +| ----------- | ----------- | ----------- | ----------- | ----------- | +| 方案一 | 5 | 0 | 14 | 0 | +| 方案一(MULX/ADCX/ADOX) | 5 | 0 | 9 | 0 | +| 方案二 | 3 | 2 | 8 | 3 | +| 方案二(MULX) | 3 | 2 | 7 | 3 | + 看来在支持**MULXQ/ADCXQ/ADOXQ**的情况下,使用方案一更好! ## Order域乘法的WWMM约减优化 @@ -650,4 +670,11 @@ $t_5=t_5 - 0$ 加法:8 减法:4 +| 方案 | 乘法 | 移位 | 加法 | 减法 | +| ----------- | ----------- | ----------- | ----------- | ----------- | +| 方案一 | 5 | 0 | 15 | 0 | +| 方案一(MULX/ADCX/ADOX) | 5 | 0 | 10 | 0 | +| 方案二 | 3 | 2 | 9 | 4 | +| 方案二(MULX) | 3 | 2 | 8 | 4 | + 看来在支持**MULXQ/ADCXQ/ADOXQ**的情况下,使用方案一更好!