區(qū)塊鏈數(shù)字簽名和哈希算法

第五屆世界互聯(lián)網(wǎng)大會(huì)將在烏鎮(zhèn)舉行,此次互聯(lián)網(wǎng)大會(huì)的主題是“創(chuàng)造互信共治的數(shù)字世界--攜手共建網(wǎng)絡(luò)空間命運(yùn)共同體”。以“ABCDEHI5G”(人工智能、區(qū)塊鏈、云計(jì)算、大數(shù)據(jù)、邊緣計(jì)算、智慧家庭、物聯(lián)網(wǎng)和5G)為代表的新技術(shù)蓬勃興起,正深刻地改變?nèi)祟惖纳a(chǎn)方式、生活方式及思維方式,改變著人類文明的進(jìn)程。

區(qū)塊鏈發(fā)展進(jìn)入寒冬期,專注做事情,一起來深入學(xué)習(xí)區(qū)塊鏈數(shù)字簽名和哈希算法。為了防止發(fā)送節(jié)點(diǎn)信息和數(shù)據(jù)被惡意偽造和篡改,區(qū)塊鏈也引入數(shù)字簽名技術(shù)。

一? 交易過程

區(qū)塊鏈交易過程如下,如下圖1所示:

1 加密者生成公鑰私鑰對(duì)。

2 加密者對(duì)信息進(jìn)行哈希運(yùn)算生成摘要,利用加密者私鑰對(duì)摘要處理生成數(shù)字簽名信息。

3 加密后的數(shù)字簽名信息和信息連同公鑰三者一起發(fā)送給接受者。

4 接受者通過發(fā)送者公鑰對(duì)加密哈希數(shù)值進(jìn)行解密,還原哈希數(shù)值。

5 對(duì)簽名信息進(jìn)行驗(yàn)證。

圖1 區(qū)塊鏈數(shù)據(jù)層交易過程示意圖

區(qū)塊鏈中,數(shù)字簽名技術(shù)包含兩種運(yùn)算算法:簽名和驗(yàn)證。

信息數(shù)據(jù)的哈希,也稱為“摘要”,無論信息有多大,都可生成一個(gè)固定長(zhǎng)度的摘要,該摘要可校驗(yàn)信息是否被篡改,只要消息被修改任任意字節(jié),摘要的校驗(yàn)都會(huì)失敗。

簽名是利用私鑰和信息的哈希數(shù)值產(chǎn)生簽名;

發(fā)送節(jié)點(diǎn)信息數(shù)據(jù)通過Hash加密生成摘要,然后利用發(fā)送節(jié)點(diǎn)的私鑰對(duì)摘要進(jìn)行數(shù)字簽名,發(fā)送節(jié)點(diǎn)把信息數(shù)據(jù)/數(shù)字簽名/發(fā)送節(jié)點(diǎn)公鑰一起全網(wǎng)廣播給接收節(jié)點(diǎn)。

圖2 數(shù)字簽名及Hash加密示意圖

驗(yàn)證是使用公鑰驗(yàn)證簽名的真實(shí)性。

接收節(jié)點(diǎn)把接收到的數(shù)據(jù)信息進(jìn)行哈希加密得到散列數(shù)值,與發(fā)送節(jié)點(diǎn)發(fā)送來的數(shù)字簽名解密得到的散列數(shù)值進(jìn)行校驗(yàn),若相同在簽名有效,則數(shù)據(jù)正確。

圖 3 數(shù)字簽名驗(yàn)證示意圖

數(shù)字簽名技術(shù)作用是保證發(fā)送信息不會(huì)被篡改。

二 哈希算法及優(yōu)缺點(diǎn)

哈希算法解決了將信息簡(jiǎn)潔高效編碼并且可讓參與者安全快速進(jìn)行驗(yàn)證的問題。

以太坊與比特幣都采用了ECDSA算法,唯一區(qū)別是Hash函數(shù)不同;比特幣的哈希算法使用的是SHA2-256,以太坊的哈希算法采用的是全新的SHA3-256;

最早Hash算法標(biāo)準(zhǔn)之一還有MD5哈希算法,輸出固定128位字符串,因?yàn)樽址L(zhǎng)度較短并且操作較為簡(jiǎn)單,容易被破解而受攻擊。

SHA1是在MD5基礎(chǔ)上提高了輸出長(zhǎng)度,輸出160位固定長(zhǎng)度字符串,并未根本上提高其抵御更強(qiáng)大機(jī)器能力。

與SHA1/SHA2不一樣,SHA3并不是單純擴(kuò)展字節(jié)數(shù),而是采用了新的Keccak算法。目前SHA1已經(jīng)被攻破,SHA2被攻破只是時(shí)間問題。同樣字節(jié)寬度的SHA3比SHA2更安全。

SHA3是從根本上替代SHA2的新標(biāo)準(zhǔn),內(nèi)部算法機(jī)制完全不同,SHA3具備海綿結(jié)構(gòu)機(jī)制,可以使用隨機(jī)排列組合來吸收和輸出數(shù)據(jù),同時(shí)還給位未來輸入數(shù)值提供隨機(jī)源。

雖然現(xiàn)在已經(jīng)有SHA3,隨著計(jì)算機(jī)運(yùn)算能力提高,量子計(jì)算發(fā)展,但是Hash算法仍然面臨下面兩個(gè)問題:

1)Hash函數(shù)內(nèi)部復(fù)雜度不夠高

1)Hash函數(shù)生成的數(shù)值長(zhǎng)度不夠長(zhǎng)

三 數(shù)字簽名技術(shù)及優(yōu)缺點(diǎn)

數(shù)字簽名,又名為公鑰數(shù)字簽名,是一種通過公鑰加密鑒別數(shù)字信息的方法。基于該技術(shù)信息發(fā)送者可以通過發(fā)送別人不能偽造的一串?dāng)?shù)字字符,也可以證明發(fā)送信息真實(shí)性。

根據(jù)密鑰不同將現(xiàn)代密碼技術(shù)分為兩類:對(duì)稱加密算法和非對(duì)稱加密算法:?

A 對(duì)稱加密是只要一個(gè)密鑰,加密和解密都是使用同一個(gè)密鑰。

B 非對(duì)稱加密密鑰和解密鑰匙是不同的。

非對(duì)稱加密優(yōu)點(diǎn)是不需要在網(wǎng)絡(luò)上暴露加密的密鑰,從機(jī)制上來說更安全。缺點(diǎn)加密效率比對(duì)稱加密低很多,所以非對(duì)稱加密一般只是使用于數(shù)字簽名這樣數(shù)據(jù)量較小的加密運(yùn)算中。

區(qū)塊鏈公鑰加密系統(tǒng)采用是非對(duì)稱加密算法。采用較多的是公鑰加密算法, 如DSA、RSA、PGP、ECC。

目前區(qū)塊鏈中常用的數(shù)字簽名算法是橢圓曲線簽名算法ECDSA。以太坊與比特幣都采用了ECDSA算法;EOS采用多重簽名算法。網(wǎng)銀行系統(tǒng)采用的是RSA算法。

在ECSDA算法中,使用橢圓曲線密碼(ECC)對(duì)數(shù)字簽名算法(DSA)的模擬。ECC創(chuàng)建基于使用橢圓曲線上的點(diǎn)來定義的公鑰/私鑰對(duì),黑客很難用通常使用的暴力破解的方法來破解,是以較少的計(jì)算能力提供比RSA加密算法更快的加密算法。

ECC的主要缺點(diǎn):

1)比RSA加密顯著地增加了加密消息的大小。

2)ECC算法比RSA更復(fù)雜和難實(shí)現(xiàn),降低了算法的安全性。

四 未來

隨著數(shù)字計(jì)算迅速發(fā)展, 量子計(jì)算會(huì)破解RSA加密算法,也會(huì)暴力破解Hash算法,不論選擇何種算法,都會(huì)駛向一個(gè)計(jì)算更加高效的未來,須盡力挑選經(jīng)得起時(shí)間考驗(yàn)的好算法。

如果一個(gè)人全部信息全部局限于他的工作領(lǐng)域,那么他的工作不會(huì)做的很好。一個(gè)人必須有陽(yáng)光,他可以從書籍上或者人們身上-最好是兩者兼有培養(yǎng)眼光。

—哈維.費(fèi)爾斯通

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

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

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