都在說的密碼學到底跟區(qū)塊鏈有什么關(guān)系?

對稱加密(也叫私鑰加密)指加密和解密使用相同密鑰的加密算法。有時又叫傳統(tǒng)密碼算法,就是加密密鑰能夠從解密密鑰中推算出來,同時解密密鑰也可以從加密密鑰中推算出來。

2345截圖20211028093243.png

區(qū)塊鏈對于大家來說,應(yīng)該都不陌生。這門從上世紀七十年代就已經(jīng)被提出的技術(shù),在最近這短短的十多年里迅速而又深刻的影響著我們的生活。大家在聊區(qū)塊鏈的時候,經(jīng)常都會提到密碼學,其實縱觀區(qū)塊鏈的成長史,密碼學一直扮演著不可或缺的角色,本期我們就來聊聊密碼學以及密碼學和區(qū)塊鏈的那些事兒!

密碼學的發(fā)展階段

密碼學的發(fā)展大概可以分為三個階段:古典密碼學、現(xiàn)代密碼學、公鑰密碼學。

古典密碼學:這階段的核心密碼學思想主要為代替和置換。代替就是將明文每個字符替換成另外一種字符產(chǎn)生密文,接收者根據(jù)對應(yīng)的字符替換密文就得到明文了。置換就是將明文的字符順序按照某種規(guī)則打亂。中國古代兵書《龍韜陰符》篇和《龍韜陰書》篇就講述了君主如何在戰(zhàn)爭中與在外的將領(lǐng)進行保密通信,而古希臘在大約在公元前700年,軍隊已經(jīng)用上了一種叫做Scytale的圓木棍來進行保密通信。

現(xiàn)代密碼學:這階段的發(fā)展主要是對稱加密算法。對稱加密是發(fā)送方使用某種公開的算法使用密鑰對明文進行加密,接收方使用之前發(fā)送方給予的密鑰對密文進行解密得到明文。大家在電視上經(jīng)??吹蕉啻蟮哪λ姑艽a就是現(xiàn)代密碼學的一個典型。摩斯密碼是一種時通時斷的信號代碼,通過不同的排列順序來表達不同的英文字母、數(shù)字和標點符號,屬于一種早期的數(shù)字化通信形式。

公匙密碼學:這個階段的發(fā)展主要是非對稱加密算法。非對稱加密的原理是公鑰加密,私鑰解密。它的實現(xiàn)過程是A通過某種算法產(chǎn)生一對密鑰,分別是公鑰和私鑰,然后將公鑰公開。B想發(fā)送信息給A,就使用A的公鑰對明文進行加密產(chǎn)生密文并發(fā)送給A。A接收到密文后,用自己的私鑰對密文進行解密,得到明文。

密碼學在區(qū)塊鏈技術(shù)上的應(yīng)用

密碼學在區(qū)塊鏈技術(shù)上的應(yīng)用主要體現(xiàn)在現(xiàn)代密碼學和公鑰密碼學上。密碼學在區(qū)塊鏈的應(yīng)用非常廣泛,可分為3類:對稱加密算法、非對稱加密算法和哈希散列算法。常見的方法有:Merkle tree哈希樹算法,橢圓曲線算法,SHA-256算法,Base58編碼。主要作用是通過hash算法快速查找、對明文進行加解密、對信息進行簽名以及驗證、產(chǎn)生數(shù)字證書、生成賬戶地址等。

對稱加密(也叫私鑰加密)指加密和解密使用相同密鑰的加密算法。有時又叫傳統(tǒng)密碼算法,就是加密密鑰能夠從解密密鑰中推算出來,同時解密密鑰也可以從加密密鑰中推算出來。而在大多數(shù)的對稱算法中,加密密鑰和解密密鑰是相同的,所以也稱這種加密算法為秘密密鑰算法或單密鑰算法。它要求發(fā)送方和接收方在安全通信之前,商定一個密鑰。對稱算法的安全性依賴于密鑰,泄漏密鑰就意味著任何人都可以對他們發(fā)送或接收的消息解密,所以密鑰的保密性對通信的安全性至關(guān)重要。基于“對稱密鑰”的加密算法主要有DES、TripleDES、RC2、RC4、RC5和Blowfish等

對稱加密算法的特點是算法公開、計算量小、加密速度快、加密效率高,最大的優(yōu)點在于加解密的高速度和使用長密鑰時的難破解性。

不足之處是,交易雙方都使用同樣鑰匙,安全性得不到保證。此外,每對用戶每次使用對稱加密算法時,都需要使用其他人不知道的惟一鑰匙,這會使得發(fā)收信雙方所擁有的鑰匙數(shù)量呈幾何級數(shù)增長,密鑰管理成為用戶的負擔。

非對稱加密需要兩個密鑰:公鑰(publickey)和私鑰(privatekey)。公鑰和私鑰是一對,如果用公鑰對數(shù)據(jù)加密,那么只能用對應(yīng)的私鑰解密。如果用私鑰對數(shù)據(jù)加密,只能用對應(yīng)的公鑰進行解密。因為加密和解密用的是不同的密鑰,所以稱為非對稱加密。非對稱加密的主要算法有RSA、Elgamal、背包算法、Rabin、D-H、ECC(橢圓曲線加密算法)等。其中使用最廣泛的是RSA算法和Elgamal。我們常見的數(shù)字證書、加密狗即是采用非對稱加密來完成安全驗證的。

非對稱加密的優(yōu)點是安全性更高,公鑰是公開的,秘鑰是自己保存的,不需要將私鑰給別人。缺點是加密和解密花費時間長、速度慢,只適合對少量數(shù)據(jù)進行加密。

Hash算法可以將一個數(shù)據(jù)轉(zhuǎn)換為一個標志,這個標志和源數(shù)據(jù)的每一個字節(jié)都有十分緊密的關(guān)系。Hash算法還具有一個特點,就是很難找到逆向規(guī)律。Hash算法是一個廣義的算法,也可以認為是一種思想,使用Hash算法可以提高存儲空間的利用率,可以提高數(shù)據(jù)的查詢效率,也可以做數(shù)字簽名來保障數(shù)據(jù)傳遞的安全性。所以Hash算法被廣泛地應(yīng)用在互聯(lián)網(wǎng)應(yīng)用中。Hash算法也被稱為散列算法,Hash算法雖然被稱為算法,但實際上它更像是一種思想。Hash算法沒有一個固定的公式,只要符合散列思想的算法都可以被稱為是Hash算法。常見的Hash算法是MD5和SHA-1。

哈希算法的優(yōu)點多得讓人難以置信。不論哈希表中有多少數(shù)據(jù),插入和刪除(有時包括側(cè)除)只需要接近常量的時間即0(1)的時間級。對我們來說,這是一瞬間的事。哈希表運算得非常快,在計算機程序中,如果需要快速查詢數(shù)據(jù)的話,哈希表的速度明顯比樹快,樹的操作通常需要O(N)的時間級。哈希表不僅速度快,編程實現(xiàn)也相對容易。

哈希表的缺點是它是基于數(shù)組的,數(shù)組創(chuàng)建后難于擴展某些哈希表被基本填滿時,當數(shù)組被填滿后,性能會受到很大的影響。并且也沒有一種簡便的方法可以遍歷表中數(shù)據(jù)項。如果需要遍歷,就只能選擇其他數(shù)據(jù)結(jié)構(gòu)。

區(qū)塊鏈的發(fā)展與密碼學緊密相連

如果我們打開區(qū)塊鏈的歷史,會發(fā)現(xiàn)區(qū)塊鏈的歷史和密碼學的進展是緊密相連的。

比特幣的pow算法的實現(xiàn)就是利用了hash函數(shù),而pow算法是1993年提出的。

IPFS的整個算法的核心是時空證明算法(PoST),這是2014年提出的。

chia(奇亞)的核心算法同樣也是時空證明算法。

drand區(qū)塊鏈的核心算法是來自于多方隨機數(shù)協(xié)議,這也是最近幾年提出的。

每一個新的區(qū)塊鏈核心都往往需要一個核心算法,這個算法來支撐著整個系統(tǒng)的架構(gòu)。

人物簡介

韓冬,1981年生,現(xiàn)任變量數(shù)字化研究院院長。韓院長04年畢業(yè)于鄭州大學計算機專業(yè),從事科技行業(yè)17載,指導項目超過70個,服務(wù)用戶超過1000萬。自2016年起,韓院長專注于前沿科技產(chǎn)業(yè),致力于服務(wù)企業(yè)進行數(shù)字化轉(zhuǎn)型,為多家企業(yè)提供數(shù)字化能力服務(wù)。

THEEND

最新評論(評論僅代表用戶觀點)

更多
暫無評論