第五屆世界互聯(lián)網(wǎng)大會將在烏鎮(zhèn)舉行,此次互聯(lián)網(wǎng)大會的主題是“創(chuàng)造互信共治的數(shù)字世界--攜手共建網(wǎng)絡(luò)空間命運共同體”狈谊。以“ABCDEHI5G”(人工智能富弦、區(qū)塊鏈萍丐、云計算错森、大數(shù)據(jù)瞻惋、邊緣計算儡首、智慧家庭渣玲、物聯(lián)網(wǎng)和5G)為代表的新技術(shù)蓬勃興起蔑鹦,正深刻地改變?nèi)祟惖纳a(chǎn)方式夺克、生活方式及思維方式,改變著人類文明的進程嚎朽。
區(qū)塊鏈發(fā)展進入寒冬期铺纽,專注做事情,一起來深入學(xué)習(xí)區(qū)塊鏈數(shù)字簽名和哈希算法哟忍。為了防止發(fā)送節(jié)點信息和數(shù)據(jù)被惡意偽造和篡改狡门,區(qū)塊鏈也引入數(shù)字簽名技術(shù)陷寝。
一? 交易過程
區(qū)塊鏈交易過程如下,如下圖1所示:
1 加密者生成公鑰私鑰對其馏。
2 加密者對信息進行哈希運算生成摘要凤跑,利用加密者私鑰對摘要處理生成數(shù)字簽名信息。
3 加密后的數(shù)字簽名信息和信息連同公鑰三者一起發(fā)送給接受者叛复。
4 接受者通過發(fā)送者公鑰對加密哈希數(shù)值進行解密仔引,還原哈希數(shù)值。
5 對簽名信息進行驗證褐奥。
圖1 區(qū)塊鏈數(shù)據(jù)層交易過程示意圖
區(qū)塊鏈中咖耘,數(shù)字簽名技術(shù)包含兩種運算算法:簽名和驗證。
信息數(shù)據(jù)的哈希撬码,也稱為“摘要”儿倒,無論信息有多大,都可生成一個固定長度的摘要呜笑,該摘要可校驗信息是否被篡改夫否,只要消息被修改任任意字節(jié),摘要的校驗都會失敗蹈垢。
簽名是利用私鑰和信息的哈希數(shù)值產(chǎn)生簽名慷吊;
發(fā)送節(jié)點信息數(shù)據(jù)通過Hash加密生成摘要,然后利用發(fā)送節(jié)點的私鑰對摘要進行數(shù)字簽名曹抬,發(fā)送節(jié)點把信息數(shù)據(jù)/數(shù)字簽名/發(fā)送節(jié)點公鑰一起全網(wǎng)廣播給接收節(jié)點溉瓶。
圖2 數(shù)字簽名及Hash加密示意圖
驗證是使用公鑰驗證簽名的真實性。
接收節(jié)點把接收到的數(shù)據(jù)信息進行哈希加密得到散列數(shù)值谤民,與發(fā)送節(jié)點發(fā)送來的數(shù)字簽名解密得到的散列數(shù)值進行校驗堰酿,若相同在簽名有效,則數(shù)據(jù)正確张足。
圖 3 數(shù)字簽名驗證示意圖
數(shù)字簽名技術(shù)作用是保證發(fā)送信息不會被篡改触创。
二 哈希算法及優(yōu)缺點
哈希算法解決了將信息簡潔高效編碼并且可讓參與者安全快速進行驗證的問題。
以太坊與比特幣都采用了ECDSA算法为牍,唯一區(qū)別是Hash函數(shù)不同哼绑;比特幣的哈希算法使用的是SHA2-256,以太坊的哈希算法采用的是全新的SHA3-256碉咆;
最早Hash算法標準之一還有MD5哈希算法抖韩,輸出固定128位字符串,因為字符串長度較短并且操作較為簡單疫铜,容易被破解而受攻擊茂浮。
SHA1是在MD5基礎(chǔ)上提高了輸出長度,輸出160位固定長度字符串,并未根本上提高其抵御更強大機器能力席揽。
與SHA1/SHA2不一樣顽馋,SHA3并不是單純擴展字節(jié)數(shù),而是采用了新的Keccak算法幌羞。目前SHA1已經(jīng)被攻破寸谜,SHA2被攻破只是時間問題。同樣字節(jié)寬度的SHA3比SHA2更安全新翎。
SHA3是從根本上替代SHA2的新標準程帕,內(nèi)部算法機制完全不同,SHA3具備海綿結(jié)構(gòu)機制地啰,可以使用隨機排列組合來吸收和輸出數(shù)據(jù)愁拭,同時還給位未來輸入數(shù)值提供隨機源。
雖然現(xiàn)在已經(jīng)有SHA3亏吝,隨著計算機運算能力提高岭埠,量子計算發(fā)展,但是Hash算法仍然面臨下面兩個問題:
1)Hash函數(shù)內(nèi)部復(fù)雜度不夠高
1)Hash函數(shù)生成的數(shù)值長度不夠長
三 數(shù)字簽名技術(shù)及優(yōu)缺點
數(shù)字簽名蔚鸥,又名為公鑰數(shù)字簽名惜论,是一種通過公鑰加密鑒別數(shù)字信息的方法≈古纾基于該技術(shù)信息發(fā)送者可以通過發(fā)送別人不能偽造的一串數(shù)字字符馆类,也可以證明發(fā)送信息真實性。
根據(jù)密鑰不同將現(xiàn)代密碼技術(shù)分為兩類:對稱加密算法和非對稱加密算法:?
A 對稱加密是只要一個密鑰弹谁,加密和解密都是使用同一個密鑰乾巧。
B 非對稱加密密鑰和解密鑰匙是不同的。
非對稱加密優(yōu)點是不需要在網(wǎng)絡(luò)上暴露加密的密鑰预愤,從機制上來說更安全沟于。缺點加密效率比對稱加密低很多,所以非對稱加密一般只是使用于數(shù)字簽名這樣數(shù)據(jù)量較小的加密運算中植康。
區(qū)塊鏈公鑰加密系統(tǒng)采用是非對稱加密算法旷太。采用較多的是公鑰加密算法, 如DSA销睁、RSA供璧、PGP、ECC冻记。
目前區(qū)塊鏈中常用的數(shù)字簽名算法是橢圓曲線簽名算法ECDSA睡毒。以太坊與比特幣都采用了ECDSA算法;EOS采用多重簽名算法檩赢。網(wǎng)銀行系統(tǒng)采用的是RSA算法。
在ECSDA算法中,使用橢圓曲線密碼(ECC)對數(shù)字簽名算法(DSA)的模擬贞瞒。ECC創(chuàng)建基于使用橢圓曲線上的點來定義的公鑰/私鑰對偶房,黑客很難用通常使用的暴力破解的方法來破解,是以較少的計算能力提供比RSA加密算法更快的加密算法军浆。
ECC的主要缺點:
1)比RSA加密顯著地增加了加密消息的大小棕洋。
2)ECC算法比RSA更復(fù)雜和難實現(xiàn),降低了算法的安全性乒融。
四 未來
隨著數(shù)字計算迅速發(fā)展掰盘, 量子計算會破解RSA加密算法,也會暴力破解Hash算法赞季,不論選擇何種算法愧捕,都會駛向一個計算更加高效的未來,須盡力挑選經(jīng)得起時間考驗的好算法申钩。
如果一個人全部信息全部局限于他的工作領(lǐng)域次绘,那么他的工作不會做的很好。一個人必須有陽光撒遣,他可以從書籍上或者人們身上-最好是兩者兼有培養(yǎng)眼光邮偎。
—哈維.費爾斯通