Elliptic-Curves

Pohlig-Hellman 加密可以在橢圓曲線上完成嗎?

  • March 7, 2020

以下是關於 Pohlig-Hellman 加密主題的一堆問題。我想知道這是否可以簡單地適應橢圓曲線,就像我們創建 EC-DH 而不是 DH 一樣。令人驚訝的是,我的Google搜尋沒有找到任何參考資料,或者實際上沒有任何基於橢圓曲線的對稱加密。在我看來,橢圓曲線應該提供與 Pohlig-Hellman 相同的屬性,但允許使用較小的密鑰實現相同的安全性。

我想知道這是否可以簡單地適應橢圓曲線

如果你不介意明文被限制在曲線上的點(而不是元素 $ \mathbb{Z}^*_p $ ),那麼就很簡單了;選擇一把鑰匙 $ k $ 這是曲線順序的相對質數 $ q $ (如果你選擇一條具有質數順序的曲線很容易做到),然後:

$$ \begin{align} Enc_k(P) &= kP\ Dec_k(P) &= (k^{-1} \bmod q)P \end{align} $$ 現在,如果你不能忍受這個限制,一個明顯的可能性是使用具有“扭曲安全”的曲線(例如 Curve25519),所以如果曲線順序是 $ q $ , 扭曲階數為 $ q_T $ (筆記: $ q $ 和 $ q_T $ 是曲線的階,而不是素子群),那麼,

$$ \begin{align} Enc_k(P) &= kP\ Dec_k(P) &= (k^{-1} \bmod q)P&&\text{if P is on the curve}\ Dec_k(P) &= (k^{-1} \bmod q_T)P&&\text{if P is on the twist} \end{align} $$ Curve25519 點乘法只能使用 $ x $ 座標,因此我們可以處理 0 到 $ 2^{255}-19 $ 作為點。

現在,這種結構保留了 PH 的一些屬性(例如,

$$ Enc_a(Enc_b(M)) = Enc_b(Enc_a(M)) $$ 但不是其他人,例如,最近被問到的關於將兩個鍵組合成第三個鍵的問題 $ Dec_c(Enc_b(Enc_a(M))) = M $ ; 那也不行;我們不能定義一個 $ c $ 這將能夠解密曲線上的消息和扭曲上的消息(並且給某人兩者都將允許他們潛在地恢復值 $ a, b $ )

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