Elliptic-Curves
將素數域上的橢圓曲線與二元域上的 EC 進行比較
在哪些情況下我們會選擇素數場或二元場?請說明為什麼我們會選擇其中之一。
開發二進製欄位是因為它們產生了更有效的實現。考慮到英特爾 PCLMULQDQ 指令,這一點尤其正確。請注意,有一些特殊類型的二進製欄位甚至更有效,例如 Koblitz 曲線。
然而,總的來說,我們對這些曲線的安全性的信心低於素場曲線。因此,一般來說,我的偏好是使用素場曲線,除非有特殊原因不這樣做。
- 二進製欄位只需要執行異或和移位操作(即不需要乘法),因此在許多平台上速度更快;
- 出於同樣的原因,它們更容易使其實現抵抗定時攻擊(即不需要處理進位);
- 出於同樣的原因,在硬體中更容易實現;
- 一些處理器支持與 GCM 一起使用的二進制多項式乘法(例如 Intel PCLMULQDQ;ARM PMULL),這也可用於二進制 ECC,使其更快。