它是怎樣運作的:陷門函式
所有公鑰加密演算法的關鍵在於它們各自都有其獨特的陷門函式。陷門函式只能被單向計算,或者至少只能容易地單向計算(使用現代計算機在不到幾百萬年的時間內)
不是陷門函式:A+B=C
如果被給到A與B,我就可以算出C。問題是如果我被給到B與C,我也可以算出A。並非是陷門函式。
陷門函式:
“我喜愛福克斯(Fox)與朋友們”+公鑰=“s80s1s9sadjds9s”
如果我被給到“我喜愛福克斯(Fox)與朋友們”+公鑰,我可以得出“s80s1s9sadjds9s”,但是如果我被給到“s80s1s9sadjds9s”與公鑰,那我無法得出資訊:“我愛福克斯(Fox)與朋友們”。
在RSA(可能是最流行的公鑰系統)中,陷門函式主要取決於將大數字納入其主要因子的難度。
公鑰:944,871,836,856,449,473
私鑰:961,748,941 and 982,451,653
在以上的例子中,公鑰是一個非常大的數字,私鑰是公鑰的兩個主要因子。這是陷門函式的一個好的例子,因為在私鑰中很容易將多個數字相乘以獲取公鑰,但如果你擁有的只是公鑰,那將花費一臺電腦很長的時間才能重建私鑰。
注意:在真實的加密中,私鑰需要200+位數以上的長度以確保安全。
是什麼讓橢圓曲線加密與眾不同
人們使用橢圓曲線加密的理由跟RSA完全相同。它生成公私鑰對並允許兩方安全溝通。然而,橢圓曲線加密有一勝過RSA的優勢。橢圓曲線加密中256位數的金鑰所提供的安全性與RSA演算法中3072位數金鑰所提供的安全性相同。這意味著在資源有限的系統中,如智慧手機、嵌入式電腦、加密網路,橢圓曲線加密相較於RSA加密演算法,它使用的硬碟空間和頻寬不到RSA演算法的10%。(藍狐筆記譯註:也就是說,橢圓曲線加密比RSA演算法在資源有限的情況下,更省資源,可行性更高。)
橢圓曲線加密的陷門函式
這可能是絕大多數讀者閱讀本文的原因。這是橢圓曲線加密有別於RSA加密演算法的部分,也是它的特殊之處。陷門函式類似於池中的數學遊戲。我們從曲線上的某一點開始。我們使用一個“點函式”(dot function)來發現一個新的點。不斷重複“點函式”並圍繞曲線跳躍(hop),直到我們最終抵達最後一個點上。讓我們看看以下整個演算法。
https://arstechnica.com/information-technology/2013/10/a-relatively-easy-to-understand-primer-on-elliptic-curve-cryptography/2/
l 從A點開始;
l A 點 B=-C(從A到B點畫一條線並最終落在-C點)
l 從-C到C跨X軸反射;
l A 點 C=-D(從A點向C點畫一條線並最終落在-D)
l 從-D到D跨X軸反射;
l A 點 D=-E(從A向D畫一條線並最終落在-E)
l 從-E到E跨X軸反射
這是一個偉大的陷門函式,因為如果你知道哪裡是起點(A)以及需要多少跳才能達到終點E,那麼找到終點會很容易。從另一方面來說,如果你知道的只是起點與終點的位置,那麼,要發現需要多少跳才能抵達終點幾乎是不可能的。
公鑰:起點A,終點E;
私鑰:從A到E的跳數
有問題嗎?
以下是我初次瞭解橢圓曲線加密時所產生的相關問題。希望我能妥善地解決它們。
如何發現第二點?如果點函式(dot function)只是在兩點之間畫一條線,難道不需要第二點來幫助開始嗎?
回答:不需要。第二點(我們將其稱為下圖中的-R點)實際上是P點函式P(讓我們假設第一個點被稱為P)
P點函式P=-R
那麼,什麼是P點函式P?它實際上只是P的切線。請看以下圖片:
https://devcentral.f5.com/articles/real-cryptography-has-curves-making-the-case-for-ecc-20832
如果點函式產生一條線路會走到某個極端,會發生什麼?
如果線沒有抵達靠近原點的曲線,我們實際上可以定義一個最大X值,其中線將回繞並從頭開始。有關示例,請參見下圖。
https://arstechnica.com/information-technology/2013/10/a-relatively-easy-to-understand-primer-on-elliptic-curve-cryptography/2/
我理解了暗門函式,但實踐中公私鑰是如何建立的?它們是如何與要加密的資料一起使用的?
這是一個好問題,但它要求更深入的答案。在這篇文章中我給出了關於RSA與橢圓曲線加密較為通俗的解釋。然而,還有更多技術資源,我期望你去研究它們。
------
風險警示:藍狐筆記所有文章都不構成投資推薦,投資有風險,投資應該考慮個人風險承受能力,建議對專案進行深入考察,慎重做好自己的投資決策。
通往區塊鏈的新世界:關注“藍狐筆記”區塊鏈公眾號:lanhubiji
或加入藍狐筆記的知識星球:https://t.zsxq.com/iaQNnIq