1. 程式人生 > 其它 >橢圓曲線密碼學:簡介

橢圓曲線密碼學:簡介

你們中知道公鑰密碼學的人可能已經聽說過ECC, ECDH或ECDSA。第一個是橢圓曲線密碼學的首字母縮寫,其他是基於它的演算法的名稱。

今天,我們可以在TLS、PGP和SSH中找到橢圓曲線密碼系統,這只是現代網路和IT世界所基於的三種主要技術之一。更不用說比特幣和其他加密貨幣了。

在ECC流行之前,幾乎所有的公鑰演算法都是基於RSA、DSA和DH等基於模組化演算法的可替代的密碼系統。RSA和它的朋友在今天仍然非常重要,並且經常和ECC一起使用。然而,雖然RSA及其朋友背後的魔力可以很容易地解釋,被廣泛理解,粗略的實現也可以很容易地編寫,但是ECC的基礎對大多數人來說仍然是一個謎。

本文通過一系列的部落格文章介紹橢圓曲線密碼學的世界。本文的目標不是提供一個完整詳細的ECC指南(網上有很多關於這個主題的資訊),而是提供一個簡單的“ECC是什麼”和“為什麼它被認為是安全”的概述,而不是浪費時間在冗長的數學證明或枯燥的實現細節。我還將提供一些有用的示例,以及視覺化互動工具和指令碼。

具體來說,以下是我將涉及的主題:

  1. 實數上的橢圓曲線和群定律(包括在這篇部落格中)
  2. 有限域上的橢圓曲線與離散對數問題
  3. 金鑰對生成和兩種ECC演算法:ECDH和ECDSA
  4. 破解ECC安全的演算法,並與RSA進行比較

為了理解這裡所寫的內容,您需要了解集合論、幾何和模運算的一些基本知識,並熟悉對稱和非對稱密碼學。最後,您需要清楚地知道什麼是“簡單”問題,什麼是“困難”問題,以及它們在密碼學中的作用。

橢圓曲線

首先,什麼是橢圓曲線?Wolfram數學世界給出了一個優秀而完整的定義。但對於我們的目標,橢圓曲線是簡單的由方程描述的點集:

其中(排除奇異曲線)。上面的方程就是所謂的橢圓曲線的維爾斯特拉斯正規化。