不同橢圓曲線的公鑰大小
假設我在使用 ECIES 時需要一定程度的安全性(例如 128 位),但我也想盡量減少通信,使用的橢圓曲線對公鑰的大小有影響嗎?如果它確實重要,那麼目前最先進的橢圓曲線是什麼?它與流行的橢圓曲線(如 Curve25519 或 secp256k1)相比如何?
如果它確實重要,那麼目前最先進的橢圓曲線是什麼?它與流行的橢圓曲線(如 Curve25519 或 secp256k1)相比如何?
好吧,如果你有一個橢圓曲線的大小子組很大 $ q $ (這是素數),那麼我們知道如何計算該子組中的離散對數 $ O(\sqrt{q}) $ 時間,這適用於所有橢圓曲線(實際上是所有組)。
所以,為了使這次攻擊採取 $ 2^{128} $ 時間,我們需要一個 $ q \approx 2^{256} $ .
並且,由於哈斯定理,對於特徵曲線 $ p $ , 我們有 $ p + 2\sqrt{p} > q $ ,或者換句話說,最小的 $ p $ 可以是大約256位。
表示公鑰的標準方法是給出 $ x $ 座標為整數;這是一個介於 0 和 $ p-1 $ ; 也就是說,一個 256 位的值。
因此,選擇 Curve25519、secp256k1 或 P256 以外的曲線不會給我們帶來任何好處。該替代曲線要麼會降低安全性,要麼具有至少一樣大的公鑰。
關於唯一可以嘗試想出一種簡化的傳輸方法的方法 $ x $ 協調; 一種簡單的方法是總是選擇一個 $ x $ 協調 $ k $ 頂部的 0 位(只是不傳輸那些 $ k $ 位顯式);使用拒絕採樣找到這樣的密鑰需要 $ O(2^k) $ 時間,並會節省 $ k $ 位 - 如果您需要保存一兩個字節,也許是可行的 - 顯然不可行保存更多。我不知道找到符合類似空間節省技術的公鑰的更聰明的方法。