一文讀懂橢圓曲線加密學
蓝狐笔记
2019-03-19 04:37
本文约2938字,阅读全文需要约12分钟
加密橢圓曲線基礎入門。

編者按:本文來自藍狐筆記(ID:lanhubiji),作者:Lane Wager,來源於medium,由“藍狐筆記”公眾號社群的“王澤龍”翻譯,Odaily經授權轉載。

二級標題

圖片描述

二級標題

它是做什麼的?

橢圓曲線加密是一種加密數據方法,只有特定人,才能對其進行解密。它在現實生活中有許多應用場景,但其主要應用在於加密互聯網上的數據與流量。例如,橢圓加密曲線可以用於確保一封郵件何時發送,且除了收件人外無人可以讀取該郵件。

橢圓曲線加密是公鑰加密技術

圖片描述

圖片描述

http://itlaw.wikia.com/wiki/Key_pair

上圖展示了兩個鑰匙,一個公鑰和一個私鑰。這些密鑰用於加密和解密數據,這使得世界上的任何人都可以在傳輸時看到加密數據,但無法讀取信息。

讓我們假設Fcebook將收到來自特朗普的私密貼。 Facebook需要能夠確保特朗普通過網絡發文時,沒人(包括NSA或互聯網服務供應商)可在其中閱讀該消息。使用公鑰加密後,整個數據傳輸過程呈現如下狀態:

l 特朗普告知Facebook他將向後者發送一篇私密帖

l Facebook將其公鑰發送給特朗普

l 特朗普使用公鑰加密其帖子:

“我喜愛福克斯(Fox)與朋友們”+公鑰=“s80s1s9sadjds9s”

l 特朗普只把加密後的信息發送給Facebook

l Facebook使用他們的私鑰解密消息:

“s80s1s9sadjds9s” +公鑰=“我喜愛福克斯(Fox)與朋友們”

如你所見,這是一項非常有用的技術。以下是其中的一些要點:

l 公鑰可發送給任何人,它是公開的

l 私鑰必須被妥善保管,因為如果某人獲取了私鑰,他們便可以解密信息

l 計算機可以迅速地用公鑰來加密消息,並用私鑰來解密消息

l 如果沒有私鑰,計算機可能需要花費極長的時間(數百萬年)來破解加密後的消息

它是怎樣運作的:陷門函數

所有公鑰加密算法的關鍵在於它們各自都有其獨特的陷門函數。陷門函數只能被單向計算,或者至少只能容易地單向計算(使用現代計算機在不到幾百萬年的時間內)

不是陷門函數: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

二級標題

二級標題

是什麼讓橢圓曲線加密與眾不同

人們使用橢圓曲線加密的理由跟RSA完全相同。它生成公私鑰對並允許兩方安全溝通。然而,橢圓曲線加密有一勝過RSA的優勢。橢圓曲線加密中256位數的密鑰所提供的安全性與RSA算法中3072位數密鑰所提供的安全性相同。這意味著在資源有限的系統中,如智能手機、嵌入式電腦、加密網絡,橢圓曲線加密相較於RSA加密算法,它使用的硬盤空間和帶寬不到RSA算法的10%。 (藍狐筆記譯註:也就是說,橢圓曲線加密比RSA算法在資源有限的情況下,更省資源,可行性更高。)

圖片描述

圖片描述

 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)

圖片描述

圖片描述

https://devcentral.f5.com/articles/real-cryptography-has-curves-making-the-case-for-ecc-20832

圖片描述

圖片描述

https://arstechnica.com/information-technology/2013/10/a-relatively-easy-to-understand-primer-on-elliptic-curve-cryptography/2/

我理解了暗門函數,但實踐中公私鑰是如何創建的?它們是如何與要加密的數據一起使用的?

這是一個好問題,但它要求更深入的答案。在這篇文章中我給出了關於RSA與橢圓曲線加密較為通俗的解釋。然而,還有更多技術資源,我期望你去研究它們。

蓝狐笔记
作者文库