簡單理解橢圓曲線的非對稱加密應用

橢圓曲線的確很複雜,涉及理論知識較多,尤其是數學知識太多太多,無法一窺全貌,經過理解,我覺得最需要理解的就是,那條經典的橢圓曲線有什麼神祕之處,優勢如何實現非對稱密碼加密的,如果覺得有用,請給個簡短評論,我心歡喜。

橢圓曲線

橢圓曲線就是下圖那樣的一個對稱曲線,一點都不像橢圓啊!這個主要源於名稱來自於橢圓曲線積分,而這個積分主要是因爲通過積分計算橢圓邊長而得名。所以通過代數(可理解爲多項式)定義的橢圓曲線積分函數就是橢圓曲線。我們來看動圖理解橢圓曲線:
橢圓曲線的計算
(圖片來源鏈接)

上圖就是漂亮的橢圓曲線,基於X軸對稱,在曲線上面有A,B兩點,可以任意取,做一條直線,一定會與曲線相交於另外一點,做Y軸平行的垂線到另一邊,得到點C。這個運算過程就是基於橢圓曲線定義的加法運算,而且在數學上可以保證A+B=C一定成立(如何確保需要不少數學知識)。咱們拓展一下,如果A,B相同,那麼一個點就沒法畫線了,那麼聰明的數學家把該點的切線(光滑曲線一定有切線)定義爲P點,如果A,B等於P,那麼A+B=2P=C,這樣就定義了在曲線上的乘法,還包括其他…定義,就構建了一個高大上的名字—羣(高階數學啊)。有了2P的定義,就可以定義3P,4P…nP了,這樣就在曲線上形成了無數個離散的點,如下圖一樣。
A+B運算的離散點
上圖看起來這些點壓根就不像曲線啊,的確不像,那是因爲對曲線上的點進行模運算(%運算符),這樣在這個空間中,都是曲線上的點取模後繪製的,他們同樣滿足曲線上定義的規律。
如同在曲線上做的那樣,這些點通過繪製直線,仍然可以依然找到A+B=C的點(注意經過邊緣後,會對摺到下邊(模運算),到了最右邊會對摺到最左邊),而且這些點分佈完全沒有規律(除了基於X軸對稱)。如果把A,B看作是2P,那麼給定P點,和數字2,可以很容易找到C點,反過來,知道P點和C點,需要找到C=2P是很難的,可以通過窮舉法暴力破解的。這就是加密的核心了,給定一個祕密,驗證很容易,破解很複雜。給定一個數字n(這個需要在橢圓曲線中有定義),計算nP=C,就是加密過程了。

未來後續理解橢圓曲線,數學家們是定義的橢圓曲線:E(p,a,b,G,n,h), 這是一個多元組,這裏的p就是定義這個曲線的大小,p越大,這個曲線覆蓋面積就越大,窮舉難度也越大,a,b定義了橢圓曲線的多項式係數,這個在算法選定的時候就確定下來了。G表示生產元(複雜的概念),簡單理解就是曲線上的一個點G,例如(3,10)通過這個點G定義1G, 2G, 3P…nP的一個序列構成的集合,n越大,點集合越大。h是協因子,一般等於1,確保生成元G的點遠遠少於橢圓曲線定義的所有點數,這樣窮舉法成功的概率就接近於零了。另外,橢圓曲線有着比RSA算法在同樣位數加密下具有更好的加密性能。

橢圓曲線的加密

從上節我們知道橢圓曲線定義一個算法P = nG, 通過n可以很容易計算P,知道G,P很難猜測n,這樣就構成了加密基礎。本節我們看看如何通過這樣一個特性,科學家們如何定義非對稱加密的。
首先大家基於同樣的橢圓曲線參數進行加密通訊,雙方都知道:E(p,a,b,G,n,h)。Alice隨機選擇一個數ra, 要求小於n, 計算Pa = ra * G,發送給Bob.
Bob同樣隨機選擇一個數rb, 要求小於n,計算Pb = rb * G,發送給Alice.
這樣Alice和Bob的隨機數ra, rb相當於私鑰,公開給對方的Pa, Pb相當於公鑰。此時,Alice如果需要給Bob發送加密信息,就可以用Bob的公鑰加密,Bob可以用自己的私鑰進行解密,計算過程如下:
Alice選擇另一個隨機數k, 把需要加密的內容Pm(就是需要把原文編碼到橢圓曲線定義的空間中),計算出祕文Cm = {k*G, Pm + k * Pb},這裏Pb是Bob的公鑰,祕文由2個點構成。Bob收到祕文後進行如下計算:
Pm + k * Pb - rb * (k * G) = Pm + k * rb * G - rb * k * G = Pm
這個公式稍微解釋一下:Bob從網絡中接受到Pm + k * Pb的結果,k * G的結果,並有着自己的私鑰rb, 因此計算出Pm.
從而得到原文點Pm.

另外一個用處就是實現密鑰協商,比如https的ECDHE算法密鑰協商:
Alice通過計算得出協商祕鑰:Ka = ra * Pb
Bob通過計算得出協商密鑰:Kb = rb * Pa
可以通過簡單計算得到Ka = Kb:
Ka = ra * Pb = ra * (rb * G) = rb * (ra * G) = rb * Pa = Kb

神奇吧!非對稱密鑰是基於數學規律構建的方法。希望通過本文,可以讓你對橢圓曲線加密有一個簡單的理解。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章