MOV 攻击

简介

粗略的讲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,QE(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,QE(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=kPNQ=,eN(P,Q)=1

Proof

⟹ \Longrightarrow Q = k P → N Q = k N P = ∞ Q=kP\rightarrow NQ=kNP=\infty Q=kPNQ=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]ZNZN
选择一个点 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 b0modN
→ 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} μNFqm
我们为了计算出满足 Q = k P Q=kP Q=kP的k,作如下计算:

  1. 选择一个随机点KaTeX parse error: Expected '}', got 'EOF' at end of input: T\in E(F_{q^m))
  2. 计算 M = o r d ( T ) M=ord(T) M=ord(T)
  3. 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),dN, T 1 ∈ E [ N ] T_1\in E[N] T1E[N]
  4. 计算 ζ 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μdFqm
  5. 计算如下离散对数问题 ζ 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
  6. 重复上述计算直到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) PE(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 ϕq2aϕq+q=0ϕq2=1.
(2)令 S ∈ E [ N ] S\in E[N] SE[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+1Nq+111modN
ϕ 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}) SE(Fq2)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值