一分鐘讀懂非對稱加密算法

【本文由贊我(zaneds.com)獨(dú)家冠名】


01


在說非對稱算法之前,我們先了解下什么是對稱算法?通俗的解釋是一個字符串可以通過某一個密鑰進(jìn)行加密和解密。比如說某原字符串是abcd,密鑰(解釋:秘密的鑰匙,在密碼學(xué)中,密鑰是在明文轉(zhuǎn)換為密文或者密文轉(zhuǎn)換成明文的算法中輸入的參數(shù))是key,通過密鑰key加密后是密文U2FsdGVkX18Uf4BsqpVyFHbYtcWrUNDt。反之此密文通過密鑰key解密可得出原字符串a(chǎn)bcd。即對稱算法是通過一個密鑰進(jìn)行加密和解密。比如諜戰(zhàn)片里,發(fā)電報一般都是用的對稱加密算法,這種算法的優(yōu)點(diǎn)就是速度快效率高,缺點(diǎn)就是不安全,如果密鑰和加密方法泄露,那就能根據(jù)密鑰解密出原文;再就是如果存在較大數(shù)目的密鑰難以管理等等。

02


而非對稱算法有兩個密鑰,即公鑰和私鑰(從字面意思可以了解公鑰即公開的密鑰,私鑰即私有的密鑰),這倆密鑰是成對的。有兩種方式,即公鑰加密私鑰解密,私鑰加密公鑰解密。通常公鑰加密私鑰解密用的居多。

那這種加密方式的實(shí)現(xiàn)過程是怎樣的呢?舉個例子:A方生成一對密鑰,將公鑰公開;B方得到公鑰后,對數(shù)據(jù)進(jìn)行加密然后發(fā)送給A方,A方拿到數(shù)據(jù)后通過私鑰解密。此種加密算法的優(yōu)點(diǎn)是保密性好,缺點(diǎn)是加密和解密花費(fèi)的時間長、速度慢。這種是對數(shù)據(jù)加密的實(shí)現(xiàn)方式,即公鑰加密,私鑰解密。

03


今天大概介紹下常見的兩種加密算法:RSA和ECC(橢圓曲線加密算法)。

RSA是以它的三個發(fā)明者的Ron Rivest、 Adi Shamir 和 Leonard Adleman的名字首字母命名。RSA可以說是最常見的非對稱加密算法,它即能用于數(shù)據(jù)加密,也能用于數(shù)字簽名,是目前最流行的公開密鑰算法。RSA的安全程度基于大質(zhì)數(shù)分解的難度。因?yàn)镽SA的公鑰和密鑰就是一對質(zhì)數(shù),如將想要傳遞的信息在編碼時加入質(zhì)數(shù)AB,編碼之后傳給收信人,即使數(shù)據(jù)被截取,如果沒有收信人的私鑰,則解密其實(shí)就是分解兩個質(zhì)數(shù)的過程。

由此看來,RSA的算法過程是比較簡單的,關(guān)鍵的是要找到足夠大的質(zhì)數(shù)(質(zhì)數(shù)越大則解密過程越復(fù)雜)。

橢圓曲線加密算法是基于橢圓曲線數(shù)學(xué)的一種公鑰密碼算法,其主要的安全性是利用了橢圓曲線對數(shù)問題的困難性。

在區(qū)塊鏈中,常用的是橢圓曲線數(shù)字簽名算法,它是利用橢圓曲線加密算法對數(shù)字簽名算法的模擬。橢圓曲線密碼算法實(shí)現(xiàn)了數(shù)據(jù)加解密、數(shù)字簽名和身份認(rèn)證等功能,該技術(shù)具有安全性高、生成公私鑰方便、處理速度快和存儲空間小等方面的優(yōu)勢。相對于RSA算法,在實(shí)際的開發(fā)使用中,橢圓曲線加密使用得更廣泛,比如比特幣就是使用了橢圓曲線中的SECP256k1,可以提供128位的安全保護(hù)。

04


那加密算法在區(qū)塊鏈中到底都有哪些應(yīng)用呢?今天舉幾個例子說明一下。

賬戶地址的生成 ?大家現(xiàn)在應(yīng)該有創(chuàng)建過錢包了,那是否注意錢包的地址是一個串不規(guī)則的字符串呢?這些字符串是怎么生成的呢?沒錯,就是公鑰和私鑰,我們對外的地址一般都是取的公鑰前的20個字符串作為公開的錢包地址,而私鑰則用于驗(yàn)證。

價值轉(zhuǎn)移保衛(wèi) ?其實(shí)不管是區(qū)塊鏈還是互聯(lián)網(wǎng),在做價值轉(zhuǎn)移的時候,都要解決兩個問題。其一就是證明數(shù)據(jù)的準(zhǔn)確性,即保證發(fā)出者和價值是真實(shí)的,不是被篡改和偽裝的。其二就是只有接收者才能對這部分?jǐn)?shù)據(jù)進(jìn)行解密。怎么實(shí)現(xiàn)的呢?來走個流程:

首先,發(fā)送者和接收者分別持有對方的公鑰和自己的私鑰。

第二步,發(fā)送者使用自己的私鑰加密簽名,在用對方的公鑰加密;

第三步,接收者拿到數(shù)據(jù)后使用發(fā)送者的公鑰進(jìn)行身份驗(yàn)證,使用自己的私鑰解密。

通過以上流程,就能保證數(shù)據(jù)不被截獲,即使被截獲也沒關(guān)系,因?yàn)闆]有私鑰也是拿不到原文的。

05


總而言之,非對稱加密算法其實(shí)就是用了一對密鑰,公鑰對外公開,私鑰自己留著。如果要傳送數(shù)據(jù)就用對方的公鑰加密,接收者用私鑰解密。如果要簽名就用自己的私鑰加密,對方用公鑰驗(yàn)證。密碼算法在區(qū)塊鏈中的應(yīng)用是非常重要的,這里只是做了簡單的理論介紹,列舉了幾個常用的應(yīng)用點(diǎn)。但是在實(shí)際應(yīng)用并不止如此。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容