Elliptic-Curves
橢圓曲線 ElGamal 和 DSA - 平滑群階和大素數階元素
在正常 ElGamal 和 DSA 中,我們選擇大素數 $ p $ 和 $ q $ 這樣 $ p\equiv 1\pmod{q} $ , 和一個群元素 $ g $ 有秩序的 $ q $ 通過計算 $ a^{(p-1)/q} $ 對於一些隨機的 $ a $ . 這是為了防止平滑組順序被分解,離散對數問題可以通過 Pohlig-Hellman 算法解決。
對於有限域上的橢圓曲線上的一組點,如何實現同樣的效果?
- 確保團購不順暢
- 找到一個大素數階的元素 $ q $ .
對於當今密碼學中使用的曲線,點組的順序通常是 256 位,有時是 512。這樣的數字在目前因式分解算法的範圍內(實際上,這就是您不使用 512 位 RSA 密鑰的原因) ,因此通常可以對組的順序進行因式分解,並且很容易看出它是否具有較大的質因數。
此外,標準曲線如NIST 曲線或Curve25519的選擇使得點組的順序要麼是素數(如在 NIST 曲線中),要麼是一個大素數乘以一個小輔因子( $ 8 $ 在 Curve25519 的情況下),所以如果您使用標準曲線,您知道有一個大素數順序的子組供您工作。(重要的是,您必須在一組素數順序中工作以防止其他類型的攻擊。 )