11.29 區塊鏈未來的安全鎧甲:抗量子密碼技術

區塊鏈未來的安全鎧甲:抗量子密碼技術 | 火星技術帖

免責聲明:本文旨在傳遞更多市場信息,不構成任何投資建議。文章僅代表作者觀點,不代表火星財經官方立場。

投資區塊鏈,猛戳:火星財經App下載

分享嘉賓

韋雲川,北京理工大學博士、加州大學戴維斯分校訪問學者、IEEE會員、中國計算機學會CCF會員。現任BitAsset Labs首席科學家。在區塊鏈技術、無線通信安全、抗量子密碼技術等領域有廣泛研究和積累。曾榮獲中國航天科技集團一院技術改進獎一等獎。學術論文曾被頂級國際會議 IEEE INFOCOM 錄用並作專題報告,研究成果發表於IEEE Trans. Mobile Computing、Computer Networks等頂級期刊,獲得10餘項發明專利授權。

分享環節

1. 前言

目前區塊鏈的應用領域已經十分廣泛,2018年由工業和信息化部主編的《2018年中國區塊鏈產業白皮書》中提到了供應鏈金融、物聯網等22個重點應用領域。當然區塊鏈的應用領域並不僅僅侷限在這22個領域,任何高價值數據的管理、流通與共享都可以用區塊鏈。

另外區塊鏈在數據安全、網絡安全方面也起到重要的作用。美國國防部正在嘗試利用區塊鏈技術創建一個黑客無法入侵的安全信息服務系統,北約也在探索使用區塊鏈技術開發下一代軍事系統以實現北約網絡防禦平臺的現代化。我軍也在積極探索區塊鏈在軍事領域的應用價值。區塊鏈在越來越多的重要場景中被應用,在這些場景中安全性是非常重要的。但是,目前區塊鏈本身存在嚴重的安全問題。

2018年,是區塊鏈發展最迅猛的一年,全球加密貨幣總市值一度接近8000億美金。但層出不窮的漏洞,使2018年成為黑客最為猖獗的一年。安全事件的頻發,嚴重阻礙了區塊鏈的健康發展,不僅給用戶帶來了不小的損失,還直接導致了許多項目的“終結”。

2. 2018年區塊鏈行業安全問題回顧

*本章節數據和圖表引用自bcsec、獵豹區塊鏈安全中心。

2018年,無論是安全事件的數量,還是造成的損失,都呈現指數級上升:

区块链未来的安全铠甲:抗量子密码技术 | 火星技术帖

圖2-1 安全事件造成的經濟損失趨勢(萬美元)

区块链未来的安全铠甲:抗量子密码技术 | 火星技术帖

圖2-2 重大安全事件數量統計

3. 區塊鏈面臨的安全問題分析

3.1.密碼算法的安全問題

一般來說多數區塊鏈中使用的通用標準密碼算法在目前是安全的,但是這些算法從間接和未來看也存在安全隱患。

首先從間接來看,SHA256算法對應的ASIC礦機以及礦池的出現打破了中本聰設想的“一CPU一票”的理念,使得全網節點減少,權力日趨集中,51%攻擊難度變小,對應的區塊鏈系統受到安全性威脅。

其次從未來發展看,2018年3月6日Google宣佈製造了72量子比特的量子計算機“Bristlecone”。隨著量子計算的興起,實用的密碼體制都存在安全威脅。根據對傳統密碼算法和量子計算算法的研究,量子計算對現有密碼體制的威脅如下表所示:

加密算法類型作用安全基礎安全性威脅

AES對稱密碼加密——攻擊難度減半

SHA256哈希函數數據指紋——-攻擊難度減半

RSA非對稱密碼簽名、密鑰生成大整數分解可被完全破解

ECDSA、ECDH非對稱密碼簽名、密鑰交換橢圓曲線離散對數可被完全破解

DSA非對稱密碼簽名、密鑰交換離散對數可被完全破解

另外,雖然哈希算法在設計時考慮了抗碰撞,SHA256等算法在現在也是相對安全的,但是也存在對哈希算法的碰撞攻擊和針對Merkle-Damgard散列函數(在區塊鏈中被廣泛使用的SHA-256也是此類算法)的長度擴展攻擊,這些攻擊方式有可能會對哈希算法造成威脅。

而對於新型密碼,由於其沒有經過足夠的時間檢驗和充分的攻防考驗,其在實際應用中更容易成為短板。比如NehaNarula和她的團隊在麻省理工學院媒體實驗室的數字貨幣計劃中發現IOTA哈希算法中的致命漏洞,使得IOTA團隊緊急更換算法。

區塊鏈中的算法曾經出現過隨機數漏洞。對於區塊鏈而言,隨機算法十分重要,使用密碼學安全的隨機數(甚至是真隨機)來生成私鑰。對於大額資產來說,甚至應考慮冷存儲的方式來離線、斷網的保管私鑰。但即便這樣還不夠,因為簽名也需要安全,簽名交易時同樣需要隨機數,該隨機數的品質決定了私鑰的安全。但是,不同的幣種在實現各自隨機算法的過程不同,有的採用了瀏覽器服務器端隨機數函數Math.Random,有的採用鍵盤輸入或者鼠標點擊生成對應函數,有的採用了單詞語句的方式等,進而導致隨機數算法漏洞,發生被攻擊事件。

由於區塊鏈大量應用了各種密碼學技術,屬於算法高度密集工程,在實現上較容易出現問題。例如,NSA對RSA算法事先埋入後門漏洞,使其能夠輕鬆破解別人的加密信息。一旦爆發這種級別的漏洞,區塊鏈的基礎都將不再安全,後果極其可怕。另外,根據理論分析,如果在簽名過程中兩次使用同一個隨機數,就能推導出私鑰。

3.2.協議的安全問題

協議安全在網絡層表現為P2P協議設計安全,利用網絡協議漏洞可以進行日蝕攻擊和路由攻擊。黑客利用一個節點的出度受限可以用日蝕攻擊將節點從主網中隔離,出度越多、節點隨機化鏈接程度越高,黑客的攻擊難度就越大。網絡協議的好壞通常決定了信息流轉的能力,由於P2P網絡結構不同,以太坊就遠比比特幣更容易受到日蝕攻擊的影響。

協議安全在共識層表現為共識協議安全。首先共識協議本身存在安全問題,由於不同共識協議容錯能力不同,PoW存在51%算力攻擊,PoS存在51%幣天攻擊,而DPoS和DAG還存在著中心化風險。

3.3.軟件實現的安全問題

實現安全風險包括:系統實現代碼漏洞帶來的安全風險;智能合約語言自身與合約設計,以及智能合約代碼都可能存在漏洞,帶來一定的安全風險;系統實現的業務設計缺陷導致的安全風險。具體包括如下27類:

(1)以太坊編程語言Solidity漏洞;

(2)以太坊短地址漏洞;

(3)交易順序依賴性;

(4)時間戳依賴性;

(5)可重入性攻擊;

(6)The DAO漏洞;

(7)Parity多重簽名錢包合約漏洞;

(8)Parity多重簽名錢包提款漏洞;

(9)太陽風暴;

(10)智能合約fallback函數;

(11)智能合約遞歸函數(recursive);

(12)調用深度限制(call depth);

(13)以太坊瀏覽器Mist;

(14)區塊鏈節點漏洞;

(15)日食攻擊(eclipse attack);

(16)Geth客戶端DoS攻擊漏洞;

(17)浪子合約漏洞;

(18)自殺合約漏洞;

(19)貪婪合約漏洞;

(20)遺囑合約漏洞;

(21)挖礦中心化;

(22)冷熱存儲誤用;

(23)BEC智能合約batch Transfer函數漏洞;

(24)智能合約proxy transfer函數整數溢出漏洞;

(25)Equihash漏洞;

(26)系統實現代碼漏洞;

(27)系統業務設計缺陷。

3.4.用戶使用的安全問題

區塊鏈使用過程中,私鑰的生產、存儲、保管等帶來的安全風險。區塊鏈上的信息具有不可篡改性,其前提是私鑰是安全的。但是私鑰的保護存在一系列的安全風險,如私鑰託管容易造成監守自盜以及黑客盜取;區塊鏈錢包的口令存在被恢復的危險;私鑰一旦丟失,便無法對賬戶的資產做任何操作;私鑰一旦被黑客拿到,就能轉移數字貨幣。

目前,普遍採用的私鑰存儲方案是由區塊鏈系統中每個用戶自行將私鑰加密後保管在用戶設備上,但無法抵抗攻擊者在獲取用戶設備後對其使用的離線字典攻擊,因此區塊鏈面臨私鑰被竊取的風險。私鑰一旦丟失即無法找回,用戶將無法對賬戶資產做任何操作,導致資產被盜。

3.5.傳統網絡安全問題

區塊鏈系統本身還面臨著病毒、木馬等惡意程序的威脅,大規模DDoS攻擊、DNS汙染、路由廣播劫持等傳統網絡安全風險。具體地,攻擊者為了竊取數字貨幣可以採用BGP路由廣播劫持方法。另外,區塊鏈系統被攻擊者作為攻擊目標,通過發起DDoS攻擊導致區塊鏈系統暫時無法提供服務。

4. 密碼技術發展歷史

4.1.古典密碼

從古代到19世紀末的手工密碼階段。這個時期由於生產力水平低下,密碼形式還處於比較低級的階段,比如象形文字就可以看作是一種原始的密寫術。我們稱這個時期的密碼體制為“古典密碼體制(classicalcryptography)”。古典密碼體制主要有兩大類,移位密碼(transpositioncipher)和替換密碼(substitutioncipher)。它們都可以利用“手工作業”進行加解密處理,與此對應的密碼分析也基本上是“手工作業”。

舉例:比如A部落給B部落傳遞一個信息M,為了不讓敵方部落獲悉信息。A部落先用一塊布纏繞在一根特定尺寸的木頭上,然後寫上打算傳遞的信息。寫完解開布,送去給B部落,並讓可靠的信使告訴B部落木頭的尺寸。B部落用相應尺寸的木頭,把寫了秘密的布纏繞上去,即可解讀正確的信息。敵方部落截獲了這塊布,因為不知道用什麼尺寸的木頭進行纏繞,就難以破譯信息。

区块链未来的安全铠甲:抗量子密码技术 | 火星技术帖

從現代密碼的視角:部落間傳遞的信息M為明文,木頭尺寸為密鑰,寫上信息的布為密文。

古典密碼編碼方法歸根結底主要有兩種,即置換和代換。把明文中的字母重新排列,字母本身不變,但其位置改變了,這樣編成的密碼稱為置換密碼。最簡單的置換密碼是把明文中的字母順序倒過來,然後截成固定長度的字母組作為密文。代換密碼則是將明文中的字符替代成其他字符。

一些經典的古典密碼,例如凱撒密碼被用於高盧戰爭,採用將英文字母向前推移K位,以此字母替代明文。

在歐洲的法國外交官維吉尼亞,對貝拉索密碼採用自身密鑰體制,即以一個共同約定的字母作為起始密鑰,以之對第一個密文脫密,得到第一個明文,以第一個明文為密鑰對第二個密文脫密,此類類推,不會重複使用密鑰,被後世稱為維吉尼亞密碼。

4.2.(近代密碼)機械密碼

從20世紀初到20世紀50年代末的機械密碼階段,這個時期的密碼技術使用的是“機械計算部件”。在這半個世紀裡,由於莫爾斯(SamuelF.B.Morse)發明了電報,利用電磁波進行通信己成為一個必然的趨勢。為了適應電報通信,密碼設計者設計出了一些採用複雜的機械和電動設備來進行信息加解密處理的方法。我們稱這個時期的密碼體制為“近代密碼體制”。近代密碼體制己被證明是不安全的,但是要想破譯它們往往需要很大的計算量。

Enigma轉輪機代表了機械密碼發展的一個頂峰,但是在第二次世界大戰中服役的Enigma卻被完全破譯。

区块链未来的安全铠甲:抗量子密码技术 | 火星技术帖

典型代表:Enigm輪轉機

4.3.(現代密碼)電子密碼

從1949年開始的電子密碼階段。自從1949年香農(ClaudeE.Shannon)發表了劃時代論文《保密體制的通信理論》之後,隨著電子技術的發展,電子密碼走上了歷史舞臺,催生了“現代密碼體制”。特別是20世紀70年代中期,美國聯邦數據加密標準密碼算法(DataEncryptionStandard,DES)的公開,以及公共密鑰(publickey)思想的提出,極大地促進了現代密碼學的蓬勃發展。但是,廣泛使用的“電子密碼”的安全性大多沒有得到完備性證明。

里程碑:

1949年香農(Claude Shannon)《保密系統的通信理論》,為近代密碼學建立了理論基礎。

1976年Diffie和Hellman發表的文章“密碼學的新動向”一文掀起了密碼學上的一場革命。

1978年,R.L.Rivest,A.Shamir和L. Adleman實現了RSA公鑰密碼體制。

1969年,哥倫比亞大學的StephenWiesner首次提出“共軛編碼”(Conjugate coding)的概念。

1984年,H. Bennett和G. Brassard在次思想啟發下,提出量子理論BB84協議,從此量子密碼理論宣告誕生。其安全性在於:1、可以發現竊聽行為;2、可以抗擊無限能力計算行為。

1985年,Miller和Koblitz首次將有限域上的橢圓曲線用到了公鑰密碼系統中,其安全性是基於橢圓曲線上的離散對數問題。

1989年R. Mathews, D. Wheeler,L. M. Pecora和Carroll等人首次把混沌理論使用到序列密碼及保密通信理論,為序列密碼研究開闢了新途徑。

2000年,歐盟啟動了新歐洲數據加密、數字簽名、數據完整性計劃NESSIE,究適應於21世紀信息安全發展全面需求的序列密碼、分組密碼、公開密鑰密碼、hash函數以及隨機噪聲發生器等技術。

5. 量子計算機的威脅

5.1.現代密碼學基石

現有的幾乎所有的密碼都是建立在一種類似單向函數的假設上的,也就是說我們需要尋找一個函數,它的計算複雜度是多項式時間可計算的,而他的反函數的計算複雜度不是多項式時間可計算的,例如RSA算法所基於的大數分解問題,ECC基於的離散對數問題,這些問題的解決難度都是要用“非確定性圖靈機”在多項式時間內計算的問題,屬於NP問題。而這兩個公鑰算法利用的則是基於這兩個困難問題的單向陷門函數來實現的。而在量子計算條件下,部分NP問題有多項式時間的算法,也就是說這種一邊兒是P問題,一邊是NP問題的函數不再是單向函數了,即這些密碼算法就無法使用了。

5.2.對公鑰密碼體制的影響

在1994年,PeterShor開發了一種用於整數分解的量子算法(Shor算法),該算法在多項式時間內運行,因此能夠破壞任何RSA或離散的基於對象的密碼系統(包括那些使用橢圓曲線的密碼系統)。

對於量子計算機而言,所有廣泛使用的公鑰密碼都是不安全的。

有人說:把RSA的長度從1024加到2048比特甚至更長,不就安全了嗎?答案是:對於現有的經典計算機和算法,這樣是可以的。但對於量子計算機和算法,這是徒勞的(除非RSA的長度增大到1GB或更長。但這樣的話,算法還能用嗎?)

5.3.對對稱密鑰體制的影響

Grover算法能夠在O(√n)時間內反轉函數。該算法會通過根因子降低對稱密鑰加密的安全性,因此AES-256只能提供128位的安全性。類似地,找到256位散列函數的前映像只需要2^128次。由於將哈希函數或AES的安全性提高兩倍並不是非常繁瑣,因此,Grover的算法不會對對稱加密造成嚴重威脅,但是會降低安全性。

6. 後量子時代的來臨

6.1.後量子密碼是什麼

在2015年,美國國家標準技術研究院(NIST)發佈了一份後量子密碼報告,對公鑰密碼算法的換代工作以及後量子子密碼算法研究工作產生了極大的推動作用。NIST的後量子密碼報告強化了量子計算機出現的預期,同時NIST也開始在全球範圍內開展後量子密碼算法標準的徵集工作。2019年1月30日,NIST啟動了第二輪徵集工作。

区块链未来的安全铠甲:抗量子密码技术 | 火星技术帖

後量子密碼,是能夠抵抗量子計算機對現有密碼算法攻擊的]新一代密碼算法。所謂“後”,是因為量子計算機的出現,現有的絕大多數公鑰密碼算法(RSA、Diffie-Hellman、橢圓曲線等)能被足夠大和穩定的量子計算機攻破,所以可以抵抗這種攻擊的密碼算法可以在量子計算和其之後時代存活下來,所以被稱為“後”量子密碼。也有人稱之為“抗量子密碼”,說的都是一個意思。

6.2.後量子密碼算法基本要求

① 安全

② 運行速度快

③ 通信開銷合理

④ 更廣應用場景

6.3.主流後量子密碼算法

① 基於編碼的密碼

基於編碼的公鑰密碼體制利用糾錯碼對信息進行編碼,並添加足夠的隨機錯誤信息,使得信息無法被攻擊者破譯,而接收方通過私鑰進行糾錯,最終恢復出原始信息。

② 基於格的密碼

格密碼主要用於構造加密、數字簽名、密鑰交換,以及眾多高級密碼學應用,如:屬性加密(Attribute-based encryption)、陷門函數(Trapdoorfunctions)、偽隨機函(Pseudorandomfunctions)、同態加密(Homomorphic Encryption)等,儘管格子密碼系統的優化和安全性證明都需要極其複雜的數學,但基本思想只需要基本的線性代數,後量子性基於格上的一些困難性問題,如最短向量問題(shortest vectorproblem,SVP)、最近向量問題(closest vectorproblem,CVP)、SIS(small integersolutions)問題、LWE(learning with errors)問題,能抗量子計算機攻擊。目前以1996年提出的NTRU(NumberTheoryResearchUnit)公鑰密碼體制最具影響力。

③ 多變量密碼

MQ密碼體制。它的安全性基於有限域上非線性方程求解的困難性,代表方法/算法:HFE(Hidden Field Equations)、Rainbow(Unbalanced Oil and Vinegar(UOV)方法)、HFEv-等。

④ 基於哈希算法的簽名

哈希簽名使用哈希函數的輸入作為密鑰並輸出作為公鑰。這些密鑰僅適用於一個簽名,因為簽名本身會顯示密鑰的一部分。基於散列的簽名的極端低效導致區塊鏈使用Merkle樹來減少空間消耗(是的,比特幣中使用的相同Merkle樹)。

不幸的是,用哈希構造KEM或公鑰加密方案是不可能的。因此,基於散列的簽名不是完整的後量子密碼學的解決方案。而且,它們不是空間有效的;一種更有前途的簽名方案SPHINCS產生41kb的簽名和1kb的公鑰/私鑰。另一方面,基於散列的方案非常快,因為它們只需要計算散列函數。它們還具有極強的安全性證據,完全基於存在具有抗衝突和抗圖像抗性的散列函數的假設。

由於沒有任何跡象表明當前廣泛使用的哈希函數(如SHA3或BLAKE2)容易受到這些攻擊,因此基於哈希的簽名是安全的。

⑤ 基於超奇異橢圓曲線上的同源問題的密碼

在橢圓曲線加密中,我們使用Diffie-Hellman類型協議來獲取共享秘密,但是我們不是將組元素提升到某個冪,而是遍歷橢圓曲線上的點。在基於同源的密碼學中,我們再次使用Diffie-Hellman類型協議,但我們不是通過橢圓曲線上的點遍歷,而是通過一系列橢圓曲線本身。

與其他後量子方案相比,基於同源的密碼學具有極小的密鑰大小,僅使用330個字節用於公鑰。不幸的是,在這篇文章中討論的所有技術中,它們是最慢的,對於密鑰生成和共享秘密計算都需要11-13毫秒。然而,他們確實支持完美的前向保密,這不是其他後量子密碼系統所擁有的。

⑥ 基於辮群(braidgroups)的密碼

辮群引起密碼學學者興趣的一個主要原因是其上有許多“難解”的數學問題,這些問題有的可用於構造新的密碼體制,現在主要介紹涉及到的3類:(1)扭結共軛搜索問題(2)根搜索問題(3)子群成員判斷問題

7. 總結與思考

面對量子計算機的必然到來,區塊鏈行業已經在佈局和謀劃對策,越來越多的公鏈項目開始提出抗量子攻擊的方案。比如一個由美國UNC大學著名教授發起的公鏈項目,就提出了非常全面、具體的抗量子解決方案,並得到美國NIST密碼專家的高度肯定。我們有理由相信,以這類項目為代表的一批公鏈項目將會引領區塊鏈行業邁上安全新臺階。

小雨智媒:專注於技術與應用的知識普及和公益分享的科技媒體,經過兩年的積累,已連續舉辦100期優質宣講,其音頻及文字被廣泛傳播及轉發,分享嘉賓包括行業領袖及專家、技術專才、投資人/機構及項目創始人等。微信加人小雨分享社群:biomed2017。


分享到:


相關文章: