區(qū)塊鏈學(xué)習(xí)網(wǎng)站
https://web3study.club/
簡介?
ECC(Ellipse Curve Cryptography)又稱橢圓曲線密碼體制、橢圓曲線加密算法等。 橢圓曲線加密算法在比特幣、區(qū)塊鏈上有著廣泛的應(yīng)用。
公式: y^2 = x^3 + ax + b
這里使用簡單易懂的方式對大家介紹這部分內(nèi)容,讓大家有個簡單的理解
原理簡介?
公私鑰加密內(nèi)容?
公鑰未公開部分,私鑰則是不可泄露的 過程就是吧需要加密的信息用公鑰進(jìn)行加密,然后發(fā)送給私鑰進(jìn)行解密,且只有私鑰可以進(jìn)行解密 這里就會牽扯出兩個問題:
- 公鑰加密的過程是快速的,且簡單的
- 加密后的信息是不可逆的且直接進(jìn)行解密是困難的,即不可逆。
圖形講解?
橢圓曲線示例:
- 橢圓曲線是x軸對稱的,在y軸正向隨便選擇一個點(diǎn),-y一定會有一個對稱點(diǎn)
- 隨便在圖形上找兩個點(diǎn),兩個點(diǎn)連成線,然后延長會經(jīng)過第三個點(diǎn)(垂直線除外)
如圖,A、B延長線之后,尋找y軸的對稱點(diǎn),會得到點(diǎn)C,即一個運(yùn)算,A-B得到C 簡單的說為點(diǎn)運(yùn)算(此點(diǎn)運(yùn)算就是橢圓曲線的加運(yùn)算):A點(diǎn)B=C
連接AC,相交于一點(diǎn),找到其對稱點(diǎn) D,即:A點(diǎn)C=D
依次類推,比如點(diǎn)E,再一次連接AE,可以找到更多的點(diǎn)
假設(shè)一個條件: 已知起點(diǎn)為A、終點(diǎn)為F點(diǎn),請問經(jīng)過多少次點(diǎn)運(yùn)算可以得到點(diǎn)F
如果說給出路徑來看的話,肯定是可以得出F點(diǎn)的點(diǎn)運(yùn)算次數(shù),但是如果沒有的話就相當(dāng)困難了,比如你打桌球,讓你的朋友看到白球的起點(diǎn),然后閉眼, 你開始打,停到某個位置后告訴你朋友睜眼,問他:請問我打出白球的路線,這肯定是不知道的,包括有可能你自己都忘記了。 這也就是其中的一個原則:正向容易,逆向難(加密簡單,解密困難)
但是有一個特例,比如說上圖,點(diǎn)P是一個切點(diǎn),延長線的對稱點(diǎn)為Q點(diǎn),切點(diǎn)可以當(dāng)做是2個點(diǎn)的重合點(diǎn),即P點(diǎn)P=Q = 2P 然后再次延長相交對稱:P點(diǎn)2P=3P 再依次對稱可以得到6P點(diǎn),6P就很特殊了,只看此定義,可以這樣: (3p)2 = 6P (2p)3 = 6p 乘法問題。
DH算法原理?
簡單舉一個例子糖醋排骨,Alice和Bob都有一個獨(dú)特的配方,Alice的糖,Bob的醋,Cindy是他們之間的聯(lián)絡(luò)員,但是Cindy總想偷他們的配方 Alice這里加糖處理好排骨之后,會通過Cindy發(fā)給Bob,Bob使用醋處理好排骨之后會通過Cindy發(fā)給Alice, 這時候Cindy是沒法獲取完全的配方及成品的,然后Alice和Bob獲得各自貨物后,進(jìn)行再加工,Alice加白糖,Bob加醋,就形成了糖醋排骨的原始材料, 進(jìn)行烹制后就是糖醋排骨了,這樣就可以拿取賣了,這里會發(fā)現(xiàn),Cindy雖然都接觸到了,但是沒有拿到核心的配方,也么有辦法竊取他們的成果。
其中排骨是公開的,這個就可以類比為公鑰,Cindy因?yàn)闆]有其他人的私鑰,所以最終也獲取不到糖醋排骨。
在此基礎(chǔ)上加上橢圓曲線算法
- Alice生成私鑰a,Bob生成私鑰b,
- Alice和Bob都有一個公共的數(shù)據(jù)G,其是開放的,所有人都可以知道,然后Alice使用私鑰經(jīng)過a次點(diǎn)運(yùn)算生成公鑰A,Bob也是用生成公鑰B
- 然后進(jìn)行交換,A、B的運(yùn)算就是使用的橢圓曲線加密運(yùn)算,因?yàn)閍次后生成A,這個次數(shù)是很難知道的,不可逆的,所以A是不能反向退出a的,相同的B也不能反向退出點(diǎn)b
- 互換之后,Alice產(chǎn)生一個新密鑰,aB,Bob產(chǎn)生一個新密鑰bA,然后根據(jù)剛才描述的(3p)2 = 6P問題,將aB與bA拆解:
- aB = a(bG)
- bA=b(aG) 其中就可以把 a(bG) = b(aG) ,即 aB = bA
ECDHE就是以上的橢圓曲線與DH混合起來的密鑰交換算法,正向容易、逆向困難
擴(kuò)展閱讀?
ECC橢圓曲線密碼學(xué)的原理、公式推導(dǎo)、例子、Python實(shí)現(xiàn)和應(yīng)用 - 知乎
[以太坊源代碼分析] IV. 橢圓曲線密碼學(xué)和以太坊中的橢圓曲線數(shù)字簽名算法應(yīng)用 - 程序員大本營文章來源:http://www.zghlxwxcb.cn/news/detail-408427.html
ECC橢圓曲線詳解(有具體實(shí)例) - Kalafinaian - 博客園文章來源地址http://www.zghlxwxcb.cn/news/detail-408427.html
到了這里,關(guān)于ECC橢圓曲線入門的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!