Elliptic-Curves

試圖了解用於 MOV 攻擊的 Weil 配對中的第二個子組

  • November 24, 2022

編輯:賞金實際上是為了引起更多關注。我不小心選錯了理由。


  • $ E $ – 有限域上的橢圓曲線 $ \mathbb F_p $ .

  • 讓 $ k $ 是曲線相對於素數的嵌入度 $ q $ :所有的全扭群 $ q $ -扭轉點在於 $ E(\mathbb F_{p^k}) $ .

  • 對於 MOV 攻擊,我們使用 Full Torsion Group 的 2 個特定子群, $ H_1 $ 和 $ H_2 $ ,我們使用 Weil 配對 $$ H_1 \times H_2 \longrightarrow \mathbb F_{p^k} \text. $$

    • $ H_1 $ 是全扭群的子群,它具有所有 $ q $ -torsion 僅屬於基場上的 EC $ F_p $ .
    • $ H_2 $ 是滿扭群的另一個子群。大多數書上都說這是由 Frobenius Endomorphism 形成的。

Frobenius 自同態是

$$ F(r) = r^p $$ 在哪裡 $ p $ 是戒指的主要特徵。

大多數數學書籍將 Frobenius 自同態稱為僅適用於具有素數特徵的交換環。如果這是真的,那麼顯然不適用於橢圓曲線群。因此,如果我們必須在這裡應用它,它將應用於位於有限域(也是具有素數特徵的交換環)中的點的座標。地圖固定點在 $ H_1 $ — 即任何一點 $ R(x, y) $ 在 $ H_1 $ 將始終映射到自身,因為 $ x^p = x $ 和 $ y^p = y $ .

然而,對於擴展組上的點,它是一個非平凡的映射——即一個點將映射到另一個點。

我的問題如下:

  1. 在另一本書中,我還讀到如果你有一個來自子組的點 $ H_2 $ , 那麼地圖以兩種方式展示——即如果 $ A=(x,y) \in H_2 $ , 和 $ B=(x^p, y^p) $ , 那麼它也遵循 $ B $ 也是 $ B = p*A $ (即標量乘 $ A $ 經過 $ p $ ).

換句話說,地圖既是乘法又是加法。這是真的? 2. 我們如何形成子群的點 $ H_2 $ ?

是不是全扭群的所有點都不屬於 $ H_1 $ ?還是其中的一個子集? 3. 是 $ H_2 $ Endomorphism 的左側還是右側?無論哪種方式,另一邊是什麼團體?


我了解 MOV 攻擊本身是如何工作的——即你將 ECDH 轉換為 $ E(\mathbb F_p) $ 到 DH $ \mathbb F_{p^k} $ 如果嵌入度較小,則由於索引演算而更容易解決。

我上面的問題只是關於 MOV 攻擊的 Frobenius 自同態。

首先,我認為某些術語可能會引起一些問題。特徵域中的Frobenius自同構 $ p $ 是地圖 $ x\mapsto x^p $ 並尊重所有現場操作並修復子欄位的元素 $ \mathbb F_p $ 和其他子欄位在地圖下關閉。特徵域上橢圓曲線的 Frobenius自同態 $ p $ 是通過座標應用 Frobenius 自同構生成的映射: $ \phi:(x,y)\mapsto (x^p,y^p) $ . 由於橢圓曲線群律只用到座標和曲線係數的場運算, $ \phi $ 尊重兩點加法: $ \phi((x_1,y_1)+(x_2,y_2))=\phi(x_1,y_1)+\phi(x_2,y_2) $ 和標量乘法: $ \phi(k(x,y))=k\phi(x,y) $ . 地圖固定點 $ E(\mathbb F_p) $ 如果曲線係數位於 $ \mathbb F_p $ .

如果我們考慮全 $ q $ -torsion 子群這被定義為一組點,其中 $ {P:qP=\mathcal O} $ 從那以後 $ q\phi(P)=\phi(qP) $ 該子群在 Frobenius 自同態下是封閉的。同樣,很容易看出這個子群與 $ E(\mathbb F_p) $ 是固定的。然而,其他子群在這張圖下是封閉的,這並不是事實。如果您熟悉 sagemath,此時一個數值範例可能會有所幫助。讓我們舉一個係數為的超奇異曲線的簡單例子 $ GF(283) $ 這有 284 分 $ GF(283) $ 並且在基域上有一個階數為 71 的子群。超過 $ GF(283^2) $ , 有 $ 284^2 $ 點和完整的 71 扭轉子群 $ 71^2 $ 積分實現。我們可以將其分解為 $ H_1 $ 這 $ E(GF(283)) $ 子群和 $ H_2 $ 在哪裡 $ H_2 $ 由 a 生成的任何子群 $ q $ - 不在的扭轉點 $ E(GF(283)) $ . 注意 $ # H_1=71 $ 和 $ # H_2=71 $ 這樣撓群的點既不在 $ H_1 $ 也不 $ H_2 $ . 我們可以找到發電機 $ H_1 $ 和任意選擇 $ H_2 $ 以高機率取隨機點 $ E(GF(283)) $ 和 $ E(GF(283^2) $ 分別和標量乘以 4(在這種情況下是餘因子)。

sage: q=71
sage: p=283
sage: E1=EllipticCurve(GF(p),[-1,0])
sage: E1.count_points()
284
sage: E2=EllipticCurve(GF(p^2),[-1,0])
sage: E2.count_points()
80656
sage: P=E2(4*E1.random_point())
sage: P
(265 : 176 : 1)
sage: Q=4*E2.random_point()
sage: Q
(136*z2 + 63 : 148*z2 + 187 : 1)
sage: q*P
(0 : 1 : 0)
sage: q*Q
(0 : 1 : 0)

現在考慮將 Frobenius 映射應用於 $ Q $ 產生一個點 $ R $ ,我們得到一個在全扭轉子群中的點,但不是由生成的子群 $ Q $ :

sage: R=E2(Q[0]^p,Q[1]^p)
sage: R
(147*z2 + 199 : 135*z2 + 52 : 1)
sage: q*R
(0 : 1 : 0)
sage: for k in range(q):
....:     if(k*Q==R):
....:         print(k)
....:
sage:

尤其是, $ R $ 不是 $ pQ $ 和 $ H_2=\langle Q\rangle $ 在 Frobenius 下不封閉。

引用自:https://crypto.stackexchange.com/questions/102893