應用密碼學
橢圓曲線密碼學
橢圓曲線密碼學(ECC)把公鑰密碼學建立在橢圓曲線的點上——這是定義於有限體上、形如 y^2 = x^3 + ax + b 的平滑方程式。其神奇之處在於有一套良好定義的方式可以「相加」兩個曲線上的點,得到第三個同樣落在曲線上的點。
點加法有個幾何圖像:通過兩點畫一條直線,找出它與曲線相交的第三點,再對 x 軸鏡射。把固定的基點 G 與自己相加 k 次便得到 kG——這就是純量乘法,ECC 的核心單向函數。由 k 與 G 計算 P = kG 很快(倍加法);但由 P 與 G 還原 k 則是橢圓曲線離散對數問題(ECDLP),被認為很困難。最佳的通用攻擊 Pollard rho 對群階為 n 位元的曲線約需 2^(n/2) 的成本。
這種平方根級的困難度正是 ECC 金鑰如此小巧的原因:256 位元的曲線提供約 128 位元的安全性,與 3072 位元的 RSA 相當。私鑰是純量 k,公鑰則是點 kG。幾乎每條區塊鏈都以 ECC 簽章——比特幣與以太坊用 secp256k1,許多較新的鏈用建構於 Curve25519 上的 Ed25519——因為精簡的金鑰與簽章能節省稀缺的鏈上位元組。
y^2 = x^3 + a*x + b ; publicKey = d * G
ECC 的安全性建立在離散對數問題上,而非整數因式分解。一台大型容錯量子電腦執行 Shor 演算法會同時攻破兩者——這正是後量子簽章與雜湊式簽章的動機所在。
又稱
另見