mirror of
https://github.com/emmansun/gmsm.git
synced 2025-09-18 12:53:49 +08:00
Created SM2 MFMM 续 (markdown)
parent
d52a2af3b0
commit
c652a75b3f
31
SM2-MFMM-续.md
Normal file
31
SM2-MFMM-续.md
Normal file
@ -0,0 +1,31 @@
|
||||
## SM2 P256 P表示
|
||||
SM2 256 的素数P=0xfffffffeffffffffffffffffffffffffffffffff00000000ffffffffffffffff,也可以表示为
|
||||
|
||||
$P = 2^{256}-(2^{32} \ast 2^{192} + 0 \ast 2^{128} + (2^{32} - 1) \ast 2^{64} + 1)$
|
||||
|
||||
## 平方的模约减优化
|
||||
### 方案一
|
||||
假设:
|
||||
$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$
|
||||
|
||||
$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$
|
||||
|
||||
$T_3=T + T_2=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 \ast 2^{256} - t_0 \ast 2^{32} \ast 2^{192} - t_0 \ast (2^{32} - 1) \ast 2^{64} - t_0 $
|
||||
$T_3=t_7 \ast 2^{448} + t_6 \ast 2^{384} + t_5 \ast 2^{320} + (t_4+t_0) \ast 2^{256}+(t_3 - t_0 \ast 2^{32}) \ast 2^{192} + t_2 \ast 2^{128} + (t_1 + t_0 - t_0 \ast 2^{32}) \ast 2^{64} $
|
||||
|
||||
先处理加法,后处理减法,后三个加法是带进位加法
|
||||
$t_1=t_0 + t_1$
|
||||
$t_2=t_2 + 0$
|
||||
$t_3=t_3 + 0$
|
||||
$t_0=t_0 + 0$
|
||||
t<sub>0</sub>,t<sub>2</sub>,t<sub>3</sub>会不会同时是0xffffffffffffffff呢?**这里没法给出证明**。
|
||||
|
||||
接着处理减法,假定a<sub>0</sub>是 $t_0 \ast 2^{32}$ 的低64位,a<sub>1</sub>是 $t_0 \ast 2^{32}$ 的高64位。后三个减法是带借位减法:
|
||||
$t_1=t_1 - a_0$
|
||||
$t_2=t_2 - a_1$
|
||||
$t_3=t_3 - a_0$
|
||||
$t_0=t_0 - a_1$
|
Loading…
x
Reference in New Issue
Block a user