简介
粗略的讲MOV攻击利用双线性对e(满足 e ( r P , s Q ) = e ( P , Q ) r s e(rP,sQ)=e(P,Q)^{rs} e(rP,sQ)=e(P,Q)rs)将 E ( F q ) E(F_q) E(Fq)中的两个点映射到 F q k F_{q^k} Fqk中的一个元素.如果要计算rP,可以计算 u = e ( P , Q ) , v = e ( r P , Q ) , ∀ Q u=e(P,Q),v=e(rP,Q),\forall Q u=e(P,Q),v=e(rP,Q),∀Q,有 v = e ( P , Q ) r = u r v=e(P,Q)^r=u^r v=e(P,Q)r=ur,这就变成了一个在 F q k F_{q^k} Fqk中的DL问题.
MOV 攻击
本文翻译自 Rong-Jaye Chen在ECC2008的PPT.https://people.cs.nctu.edu.tw/~rjchen/ECC2009/19_MOVattack.pdf
MOV攻击是1993年Menezes,Okamoto和Vanstone三人提出的一种攻击
E
(
F
q
)
E(F_q)
E(Fq)上DLP的方法,思路是利用Weil配对将
E
(
F
q
)
E(F_q)
E(Fq)上的DLP转化成
F
q
m
∗
F_{q^m}^*
Fqm∗的问题.
令 E E E是一个定义在 F q F_q Fq上的椭圆曲线.令 P , Q ∈ E ( F q ) , o r d ( P ) = N P,Q\in E(F_q),ord(P)=N P,Q∈E(Fq),ord(P)=N.假设 g c d ( N , q ) = 1 gcd(N,q)=1 gcd(N,q)=1我们需要找到 k k k使得 Q = k P Q=kP Q=kP.
Lemma 5.1
P , Q ∈ E ( F q ) , N = o r d ( P ) . g c d ( N , q ) = 1 P,Q \in E(F_q),N=ord(P).gcd(N,q)=1 P,Q∈E(Fq),N=ord(P).gcd(N,q)=1,则存在 k k k使得 Q = k P    ⟺    N Q = ∞ , e N ( P , Q ) = 1 Q=kP\iff NQ=\infty,e_N(P,Q)=1 Q=kP⟺NQ=∞,eN(P,Q)=1
Proof
⟹
\Longrightarrow
⟹
Q
=
k
P
→
N
Q
=
k
N
P
=
∞
Q=kP\rightarrow NQ=kNP=\infty
Q=kP→NQ=kNP=∞同时,
e
N
(
P
,
Q
)
=
e
N
(
P
,
P
)
k
=
1
k
=
1
e_N(P,Q)=e_N(P,P)^k=1^k=1
eN(P,Q)=eN(P,P)k=1k=1
⟸
\Longleftarrow
⟸
g
c
d
(
N
,
q
)
=
1
gcd(N,q)=1
gcd(N,q)=1,我们有
E
[
N
]
≃
Z
N
⊕
Z
N
E[N]\simeq Z_N\oplus Z_N
E[N]≃ZN⊕ZN
选择一个点
R
R
R以至于
P
,
R
{P,R}
P,R是
E
[
N
]
E[N]
E[N]的一组基,则
Q
=
a
P
+
b
R
Q=aP+bR
Q=aP+bR.
根据推论3.10,
e
N
(
P
,
R
)
=
ζ
e_N(P,R)=\zeta
eN(P,R)=ζ是单位元N次原根.
如果
e
N
(
P
,
Q
)
=
1
e_N(P,Q)=1
eN(P,Q)=1,则
1
=
e
N
(
P
,
Q
)
=
e
N
(
P
,
P
)
a
e
N
(
P
,
R
)
b
=
ζ
b
1=e_N(P,Q)=e_N(P,P)^ae_N(P,R)^b=\zeta^b
1=eN(P,Q)=eN(P,P)aeN(P,R)b=ζb
→
b
≡
0
 
m
o
d
 
N
\rightarrow b\equiv 0\bmod N
→b≡0modN
→
b
R
=
∞
\rightarrow bR=\infty
→bR=∞
→
Q
=
a
P
\rightarrow Q=aP
→Q=aP
证毕.
MOV 攻击
选择m使得
E
[
N
]
⊂
E
(
F
q
m
)
E[N]\sub E(F_{q^m})
E[N]⊂E(Fqm)根据推论3.11,有
μ
N
⊂
F
q
m
\mu_N\sub F_{q^m}
μN⊂Fqm
我们为了计算出满足
Q
=
k
P
Q=kP
Q=kP的k,作如下计算:
- 选择一个随机点KaTeX parse error: Expected '}', got 'EOF' at end of input: T\in E(F_{q^m))
- 计算 M = o r d ( T ) M=ord(T) M=ord(T)
- 令 d = g c d ( M , N ) d=gcd(M,N) d=gcd(M,N)并且令 T 1 = ( M / d ) T T_1=(M/d)T T1=(M/d)T,则 d = o r d ( T 1 ) , d ∣ N , d=ord(T_1),d|N, d=ord(T1),d∣N,则 T 1 ∈ E [ N ] T_1\in E[N] T1∈E[N]
- 计算 ζ 1 = e N ( P , T 1 ) \zeta_1=e_N(P,T_1) ζ1=eN(P,T1)以及 ζ 2 = e N ( Q , T 1 ) \zeta_2=e_N(Q,T_1) ζ2=eN(Q,T1),那么 ζ 1 , ζ 2 ∈ μ d ⊂ F q m ∗ \zeta_1,\zeta_2\in\mu_d\sub F_{q^m}^* ζ1,ζ2∈μd⊂Fqm∗
- 计算如下离散对数问题 ζ 2 = ζ 1 k i n F q m ∗ \zeta_2=\zeta_1^k in F_{q^m}^* ζ2=ζ1kinFqm∗这给出了 k   m o d   d k\bmod d kmodd
- 重复上述计算直到d的最小公倍数是N,这就决定了 k   m o d   N k\bmod N kmodN
事实上m可能会非常巨大,这种情况下在 F q m F_{q^m} Fqm中的离散对数问题可能和在 E ( F q ) E(F_q) E(Fq)中的离散对数问题一样难于求解,但是在超奇异曲线中,我们通常令m=2.
命题
E / F q E/F_q E/Fq,假设 a = q + 1 − # E ( F q ) a=q+1-\#E(F_q) a=q+1−#E(Fq)=0,则存在N阶元 P ∈ E ( F q ) P \in E(F_q) P∈E(Fq),则 E [ N ] ⊂ E ( F q 2 ) E[N]\sub E(F_{q^2}) E[N]⊂E(Fq2)
proof
(1)
ϕ
q
2
−
a
ϕ
q
+
q
=
0
→
ϕ
q
2
=
−
1
\phi_q^2-a\phi_q+q=0\rightarrow \phi_q^2=-1
ϕq2−aϕq+q=0→ϕq2=−1.
(2)令
S
∈
E
[
N
]
S\in E[N]
S∈E[N],因为
o
r
d
(
P
)
=
N
,
#
E
(
F
q
)
=
q
+
1
→
N
∣
q
+
1
  
⟺
  
−
1
≡
1
 
m
o
d
 
N
ord(P)=N,\#E(F_q)=q+1\rightarrow N|q+1\iff -1\equiv 1\bmod N
ord(P)=N,#E(Fq)=q+1→N∣q+1⟺−1≡1modN
ϕ
q
2
(
S
)
=
−
q
S
=
1
S
=
S
\phi_q^2(S)=-qS=1S=S
ϕq2(S)=−qS=1S=S
根据引理4.5,
S
∈
E
(
F
q
2
)
S\in E(F_{q^2})
S∈E(Fq2)