區(qū)塊鏈簡單理解就是一個分布式賬本亦或一個數(shù)據(jù)庫,當區(qū)塊鏈憑借其獨特的技術(shù)特點,在各行各業(yè)被研究被采用時,面對大量的數(shù)據(jù),區(qū)塊鏈是如何保護數(shù)據(jù)的隱私安全的呢?這主要依賴于密碼學(xué)。
密碼學(xué)使用先進的數(shù)學(xué)原理和方法來傳輸和存儲數(shù)據(jù),這種存儲方式要求只有數(shù)據(jù)接收者才能對數(shù)據(jù)進行讀取和處理。在密碼學(xué)中,加密是密碼學(xué)中的核心概念,它以一種“除接收者外任何人都無法解密的方式”對消息進行編碼,其他人無法讀取和理解數(shù)據(jù)格式,以此來保護數(shù)據(jù)免受攻擊。
據(jù)說,第一個使用密碼學(xué)技術(shù)的是古羅馬凱撒大帝,他發(fā)明了“凱撒密碼(Caesar cipher)”來保護重要的軍事情報。凱撒密碼先將正常的文本內(nèi)容通過一套規(guī)則編譯成密碼文本,然后通過通信渠道發(fā)送出去,接收者再用這套規(guī)則對密文進行解密。他的方法很簡單, 就是將字母表依次往后移動幾個位置。具體移動的數(shù)量n就是密鑰了。比如移動兩個,則:

用這種方法加密hello, 則密文是jgnnq。拿到密文后再倒著將每個字母往前移動n個位置就解密了。大家可以試著解密dmqemejckp, 密鑰是2。
凱撒密碼有個問題就是很容易破解, 因為總共只有26種可能(移動27個位置, 跟移動1個位置是一樣的),很容易就暴力破解了。只需要把0-25都試一下, 看看“解密”出來的文字哪個是有具體含義的即可。比如大家可以破解一下"thnpj"。
加密技術(shù)有兩種加密類型:
1.對稱加密(Symmetric cryptography)
對稱加密算法是應(yīng)用較早的加密算法,在對稱加密算法中,數(shù)據(jù)發(fā)送者和接收者使用同一套規(guī)則來對數(shù)據(jù)進行加密和解密。簡單理解就是加密密鑰和解密密鑰是同樣的,前面說的凱撒密碼采用的就是一種加密算法。
優(yōu)點:與公鑰加密相比運算速度快。
缺點:
密鑰傳輸問題:由于對稱加密的加密和解密使用的是同一個密鑰,所以對稱加密的安全性不僅僅取決于加密算法本身的強度,也取決于密鑰是否被安全的保管。當我們使用對稱加密技術(shù)來保證數(shù)據(jù)安全傳輸?shù)耐瑫r,也必須將密鑰共享給接收者,但是怎么把這個“密鑰”安全的傳輸給接受者呢?
密鑰管理問題:隨著密鑰數(shù)量的增多,密鑰的管理問題會逐漸顯現(xiàn)出來。比如我們在加密用戶的信息時,不可能所有用戶都用同一個密鑰加密解密吧,這樣的話,一旦密鑰泄漏,就相當于泄露了所有用戶的信息,因此需要為每一個用戶單獨的生成一個密鑰并且管理,這樣密鑰管理的代價也會非常大。
常用算法:DES、3DES、Blowfish、IDEA、RC4、RC5、RC6和AES。
2.非對稱加密(Asymmetric cryptography)
非對稱加密指為滿足安全性需求和所有權(quán)驗證需求而集成到區(qū)塊鏈中的加密技術(shù)。它和對稱加密的主要區(qū)別是:對稱加密使用共享密鑰來解密數(shù)據(jù),而非對稱加密使用“密鑰對”來解密數(shù)據(jù)。密鑰對包含兩部分:一個公鑰,一個私鑰。
舉個例子,當你給你媽的銀行卡轉(zhuǎn)錢時,需要知道她的銀行卡賬號,那么這個賬號就相當于她的公鑰,是公開可見的。私鑰就相當于是她的密碼,在沒有告訴你密碼的情況下只她自己知道賬戶里的資金情況。
發(fā)送數(shù)據(jù)時,我們需要使用私鑰(即密碼)和接收者公鑰(即用戶名)。接收者則使用他的私鑰(密碼)和發(fā)送者的公鑰(用戶名)來解密數(shù)據(jù)。整個流程如下圖所示:
值得提醒大家注意的是區(qū)塊鏈是去中心化的,私鑰一旦丟失就無法找回,所以有數(shù)字資產(chǎn)的朋友一定要謹慎對待,不要以為和銀行卡一樣,密碼忘記了帶著身份證和相關(guān)資料去銀行就能解決。
優(yōu)點:解決了密鑰傳輸中的安全問題
缺點:無法驗證發(fā)送方是否正確,發(fā)送方可能存在被偽造
常用算法:RSA、ECC(橢圓曲線加密算法)
非對稱加密一般劃分為三類主要方式:
1.大整數(shù)分解問題類:指用兩個較大的質(zhì)數(shù)的乘積作為加密數(shù)。由于質(zhì)數(shù)的出現(xiàn)具有不規(guī)律性,尋找破解只能通過不斷的試算。
2.離散對數(shù)問題類:指的是基于離散對數(shù)的難解性,利用強的單向散列函數(shù)的一種非對稱分布式加密算法。
3.橢圓曲線類:指利用平面橢圓曲線來計算成組非對稱特殊值,比特幣就使用此類加密算法。
非對稱加密技術(shù)在區(qū)塊鏈的應(yīng)用場景:
1.信息加密場景:主要是由信息發(fā)送者(記為A)使用接受者(記為B)的公鑰對信息加密后再發(fā)送給B,B利用自己的私鑰對信息解密。比特幣交易的加密即屬于此場景。
2.數(shù)字簽名場景:由發(fā)送者A采用自己的私鑰加密信息后發(fā)送給B,B使用A的公鑰對信息解密、從而可確保信息是由A發(fā)送的。? ?
數(shù)字簽名,可以保證收到的文件沒有被篡改,也可以保證發(fā)送者的身份。因為私鑰生產(chǎn)了數(shù)字簽名,私鑰是不公開的。
3.登錄認證場景:是由客戶端使用私鑰加密登錄信息后發(fā)送給服務(wù)器,后者接收后采用該客戶端的公鑰解密并認證登錄信息.
目前非對稱加密技術(shù)大多應(yīng)用在區(qū)塊鏈數(shù)字貨幣交易中,防止篡改和偽造信息。
上述三種場景加密的不同之處主要在于:
信息加密是公鑰加密,私鑰解密,確保信息的安全性;
數(shù)字簽名是私鑰加密公鑰解密,確保數(shù)字簽名的歸屬性;
登錄認證私鑰加密,公鑰解密。