技術向 | 橢圓曲線密碼學簡介

買賣虛擬貨幣
本文要介紹的是 ECC ( Elliptic Curve Cryptography ),也就是橢圓曲線密碼學。跟 RSA 一樣,ECC 也屬於公開金鑰加密,ECC 演算法也是用來生成公鑰的私鑰的。本節我們不會深入橢圓曲線演算法本身,只是對 ECC 做一下簡介。

ECC 的作用

之所以要解釋這麼一個生僻的名詞,還是因為它很有用。
ECC 跟 RSA 演算法一樣,都可以生成公鑰和私鑰,然後進行加密通訊和數字簽名操作。ECC 在區塊鏈領域有著特殊的地位。因為比特幣就是用 ECC 來生成地址和私鑰的。注意,比特幣地址不是原封不動的公鑰,而是公鑰的一種轉換形式。著名的以太坊專案,也使用了 ECC 。既然區塊鏈領域的兩個老大都會用到 ECC ,其他的公鏈專案中當然也都非常可能用到。HTTPS 也會用到 ECC 。現代的瀏覽器也都支援基於橢圓曲線金鑰對的認證證書。
總之,ECC 應用範圍很廣,有人說”ECC是下一代的公開金鑰加密演算法”,似乎有取代 RSA 的意味。

對比 RSA 的改進

我們知道 RSA 是公鑰密碼學的鼻祖,那麼後來者 ECC 到底有何改進呢?其實簡單來說就是兩個字“效能”。
我們先說 RSA 的不足。RSA 基於整數分解問題,我們可以相信只要兩個大素數的乘積的反向求解問題沒有解決,RSA 演算法就是安全的,所以 RSA 可以說是非常簡單的密碼學。但是 RSA 的效能是短板,需要設定很長的秘鑰,才能保證演算法的安全。而秘鑰越長,運算效率就越低。一個很尷尬的情況是,我們的超級計算機越來越厲害,所以就要求 RSA 的秘鑰要越來越長。但是矛盾的是,移動裝置又很流行,這就要求秘鑰不能太長,不然在資源有限的移動裝置上 RSA 演算法就不能用了。這個矛盾越來越尖銳,所以更高效的演算法就呼聲很高。
ECC 演算法從 2004 年開始才被廣泛應用,要比 RSA 要晚很多,它的關鍵改進就是效能。同樣的秘鑰長度下,ECC 要安全很多。ECC 和 RSA 基於的都是正向運算很容易,反向運算很難的單向函式來設計的。運算越難,也就是意味著破解它運算所耗費的能源越多,或者說對應的碳排放量越多。比如給定一個228位元組長度 RSA 秘鑰,破解需要花費煮沸一勺水的能量。而同樣長度的 ECC 秘鑰,需要煮沸整個地球上所有水的能量。
可見,ECC 作為後來出現的演算法要比 RSA 高效很多。

ECC 的缺陷

但是,ECC 雖好也不是沒有問題,如果真的是完美的,那麼 RSA 應該早就被徹底替代了。
ECC 的數學原理是橢圓曲線和離散對數,橢圓曲線並不是一個很好理解的數學理論。造成了 ECC 其實要比 RSA 複雜很多。複雜帶來的好處就是效能的提升,但是也同時潛藏了一些問題。橢圓曲線理論不展開討論,但是粗略的講,設計 ECC 的一套運算標準,涉及到的一個問題就是要選擇一條合適的橢圓曲線。注意,ECC 使用的所謂的橢圓曲線其實並不是橢圓形,而只是在運算上跟橢圓運算有關聯,實際上是一個類似乳頭的形狀。根據曲線選擇的不同,ECC 的運算也會不同,所以就會形成不同的標準。
首先第一個潛藏的問題是,一套標準對應的這條曲線,是不是有可能有人暗藏數學機關呢?造成演算法其實是可以透過後門來破解的。目前使用面很廣的一套標準是 NSA ,也就是美國國家安全域性釋出的,這套標準就被懷疑是有後門的。
另外一個問題就是專利。基於 ECC 的各種使用方式,有人申請了很多個專利。而且這些專利很多都被一個公司所持有,這個公司就是黑莓。你永遠也不知道自己開發一套新的 ECC 方案,會不會被認為觸犯了某個專利,這一點也是很噁心的。
總之,雖然 ECC 目前發展良好,但是也面臨著各種挑戰。

總結

關於橢圓曲線密碼學 ECC , Peter 覺得暫時理解這些就夠了。首先比較重要的是大家要理解什麼是加密,這樣才能理解 ECC 的使用場景。ECC 被稱為新一代公開金鑰加密技術,就是因為它比 RSA 演算法更高效。但是 ECC 也因為演算法複雜,導致了出各種問題的可能,例如被植入後門或者涉及專利之爭。
參考

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;