曲線密碼學(ECC)
橢圓曲線密碼學是區塊鏈公私鑰系統的數學基礎,用較短的金鑰提供高度安全性。
橢圓曲線密碼學(Elliptic Curve Cryptography, ECC)是一種利用橢圓曲線數學特性的加密技術。區塊鏈用它來生成公私鑰對——私鑰用來簽名交易,公鑰用來驗證簽名。
為什麼區塊鏈選擇 ECC?
傳統的 RSA 加密要達到足夠安全,需要 2048 甚至 4096 位元的金鑰。而 ECC 只需要 256 位元就能達到同等安全等級。
安全等級
RSA 金鑰長度
ECC 金鑰長度
80 bit
1024 bit
160 bit
112 bit
2048 bit
224 bit
128 bit
3072 bit
256 bit
256 bit
15360 bit
512 bit
橢圓曲線是什麼?
橢圓曲線並不是橢圓形的曲線!它是一種數學方程式:
y² = x³ + ax + b這個方程式在座標平面上畫出來的曲線,有一些神奇的數學特性,可以用來做加密。
比特幣和以太坊使用的曲線叫做 secp256k1。
公私鑰如何產生?
1. 生成私鑰
私鑰就是一個隨機的 256 位元數字。
2. 計算公鑰
把私鑰乘以曲線上的一個特定點(生成點 G),得到另一個點,這就是公鑰。
3. 單向性
從私鑰計算公鑰很容易,但從公鑰反推私鑰在數學上是不可行的。這就是 ECC 的安全基礎。
為什麼反推不了?
這叫做「離散對數問題」。就像你知道 3 × 5 = 15 很容易,但如果只告訴你答案是 15,要你猜出原來的數字是 3 和 5,就難多了。ECC 的版本比這複雜得多。
數位簽名(ECDSA)
區塊鏈用 ECC 來做數位簽名,證明交易是由私鑰持有者發起的:
簽名:用私鑰對交易訊息簽名,產生簽名資料
廣播:把交易和簽名發送到網路
驗證:任何人都可以用公鑰驗證簽名是否有效
如果簽名有效,就證明這筆交易確實是私鑰持有者授權的。
ECC 在區塊鏈中的應用
區塊鏈
使用的曲線
簽名算法
Bitcoin
secp256k1
ECDSA
Ethereum
secp256k1
ECDSA
Solana
ed25519
EdDSA
延伸閱讀
參考資料
Last updated