基于endomorphism优化scalar multiplication及其用途
Posted mutourend
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于endomorphism优化scalar multiplication及其用途相关的知识,希望对你有一定的参考价值。
1. 引言
前序博客有:
本文主要考虑的是 Gallant等人2001年论文 Faster Point Multiplication on Elliptic Curves with Efficient Endomorphisms 中提到的曲线:
E
(
F
p
)
:
y
2
=
x
3
+
b
E(\\mathbbF_p):\\ y^2=x^3+b
E(Fp): y2=x3+b
其中
p
p
p为素数,满足
p
≡
1
m
o
d
3
p\\equiv 1 \\mod 3
p≡1mod3,即
3
∣
p
−
1
3|p-1
3∣p−1。
曲线
E
(
F
p
)
E(\\mathbbF_p)
E(Fp)具有prime order
q
q
q。该曲线上的所有非
O
\\mathcalO
O点都称为
F
p
\\mathbbF_p
Fp-rational points
(
x
,
y
)
(x,y)
(x,y)。取该曲线基点
G
G
G。
scalar multiplication
[
k
]
G
[k]G
[k]G 中的scalar值
k
∈
F
q
k\\in\\mathbbF_q
k∈Fq。
1.1 endomorphism定义
因
3
∣
p
−
1
3|p-1
3∣p−1,即
F
p
\\mathbbF_p
Fp 有 a primitive cube root of unity,若
ζ
p
∈
F
p
\\zeta_p\\in \\mathbbF_p
ζp∈Fp为an element of order 3(即
ζ
p
3
=
1
m
o
d
p
\\zeta_p^3=1\\mod p
ζp3=1modp),则椭圆曲线
y
2
=
x
3
+
b
y^2=x^3+b
y2=x3+b上的point
(
x
,
y
)
(x,y)
(x,y) 存在2个cousin points:
(
ζ
p
x
,
y
)
(\\zeta_px,y)
(ζpx,y)和
(
ζ
p
2
x
,
y
)
(\\zeta_p^2x,y)
(ζp2x,y)。
由于 ζ p 3 = 1 m o d p \\zeta_p^3=1\\mod p ζp3=1modp,有 o r d e r ( ζ p ) = 3 order(\\zeta_p)=3 order(ζp)=3,以及 ζ p 2 + ζ p + 1 ≡ 0 m o d p \\zeta_p^2+\\zeta_p+1\\equiv 0 \\mod p ζp2+ζp+1≡0modp。
使用map
(
x
,
y
)
↦
(
ζ
p
x
,
y
)
(x,y)\\mapsto (\\zeta_px,y)
(x,y)↦(ζpx,y)即为 应用an endomorphism over the curve,则对曲线
E
(
F
P
)
E(\\mathbbF_P)
E(FP)的endomorphism定义为:
ϕ
(
x
,
y
)
↦
(
ζ
p
x
,
y
)
,
ϕ
(
O
)
=
O
\\phi(x,y)\\mapsto(\\zeta_px,y), \\phi(\\mathcalO)=\\mathcalO
ϕ(x,y)↦(ζpx,y),ϕ(O)=O
具有如下属性:
ϕ
(
P
1
+
P
2
)
=
ϕ
(
P
1
)
+
ϕ
(
P
2
)
,
∀
P
1
,
P
2
∈
E
(
F
p
)
\\phi(P_1+P_2)=\\phi(P_1)+\\phi(P_2),\\forall P_1,P_2\\in E(\\mathbbF_p)
ϕ(P1+P2)=ϕ(P1)+ϕ(P2),∀P1,P2∈E(Fp)
(
ϕ
2
+
ϕ
+
1
)
(
P
)
=
O
,
∀
P
∈
E
(\\phi^2+\\phi+1)(P)=\\mathcalO,\\forall P\\in E
(ϕ2+ϕ+1)(P)=O,∀P∈E【因为
(
ϕ
2
+
ϕ
+
1
)
(
P
)
=
ϕ
2
(
P
)
+
ϕ
(
P
)
+
1
(
P
)
=
(
ζ
p
2
x
,
y
)
+
(
ζ
p
x
,
y
)
+
(
x
,
y
)
=
(
−
ζ
p
2
x
−
ζ
p
x
,
−
y
)
+
(
x
,
y
)
=
(
x
,
−
y
)
+
(
x
,
y
)
=
O
(\\phi^2+\\phi+1)(P)=\\phi^2(P)+\\phi(P)+1(P)=(\\zeta_p^2x,y)+(\\zeta_px,y)+(x,y)=(-\\zeta_p^2x-\\zeta_px,-y)+(x,y)=(x,-y)+(x,y)=\\mathcalO
(ϕ2+ϕ+1)(P)=ϕ2(P)+ϕ(P)+1(P)=(ζp2x,y)+(ζpx,y)+(x,y)=(−ζp2x−ζpx,−y)+(x,y)=(x,−y)+(x,y)=O】
若 ζ q ∈ F q \\zeta_q\\in\\mathbbF_q ζq∈Fq为an element of order 3 (即 ζ q 3 = 1 m o d q \\zeta_q^3=1\\mod q ζ带有opencv的三角形蒙版