◆田承東
同態(tài)加密在物聯(lián)網(wǎng)區(qū)塊鏈數(shù)據(jù)安全中的應用
◆田承東
(中國電子科技集團公司信息科學研究院 北京 100098)
當今,物聯(lián)網(wǎng)在全球范圍內(nèi)呈現(xiàn)加速發(fā)展的態(tài)勢。著名咨詢機構Gartner預計到2020年全球聯(lián)網(wǎng)設備數(shù)量將達到260億個,物聯(lián)網(wǎng)市場規(guī)模達到1.9萬億美元。與此同時,物聯(lián)網(wǎng)潛在的數(shù)據(jù)傳輸和隱私保護上的安全漏洞也迅速增長,給物聯(lián)網(wǎng)的發(fā)展帶來了極大的困難。“設計始于安全”是降低泄露風險的最佳思路,本文將以數(shù)據(jù)傳輸計算的基本周期為依據(jù),來闡述同態(tài)加密作為數(shù)據(jù)保護技術對物聯(lián)網(wǎng)的推動作用。詳細講解同態(tài)加密的發(fā)展歷程、原理及物聯(lián)網(wǎng)區(qū)塊鏈數(shù)據(jù)保護的思路,并對同態(tài)加密的具體案例進行分析,提出同態(tài)加密在物聯(lián)網(wǎng)區(qū)塊鏈數(shù)據(jù)安全中的具體應用方案,給出物聯(lián)網(wǎng)在數(shù)據(jù)安全及隱私保護發(fā)展上的新方向。
物聯(lián)網(wǎng);同態(tài)加密;隱私保護;應用;區(qū)塊鏈;數(shù)據(jù)安全
同態(tài)加密是很久以前密碼學界就提出來的一個開放性問題。早在1978年,Rivest等人就以銀行為應用背景提出了這個概念。以往人們只找到一些部分實現(xiàn)這種操作的方法。而2009年9月Craig Gentry的論文從數(shù)學上提出了“全同態(tài)加密”的可行方法,即可以在不解密的條件下對加密數(shù)據(jù)進行任何可以在明文上進行的運算,使這項技術取得了決定性的突破。人們正在此基礎上研究更完善的實用技術,這對信息技術產(chǎn)業(yè)具有重大價值。
同態(tài)加密是一種加密形式,它允許人們對密文進行特定的代數(shù)運算得到仍然是加密的結果,將其解密所得到的結果與對明文進行同樣的運算結果一樣。換言之,這項技術令人們可以在加密的數(shù)據(jù)中進行諸如檢索、比較等操作,得出正確的結果,而在整個處理過程中無需對數(shù)據(jù)進行解密。其意義在于,真正從根本上解決將數(shù)據(jù)及其操作委托給第三方時的保密問題。
一般的加密方案關注的都是數(shù)據(jù)存儲安全,即數(shù)據(jù)持有者要給其他人發(fā)個加密的東西,或者要在計算機和其他服務器上存儲一樣東西,就需要對數(shù)據(jù)進行加密后進行發(fā)送或者存儲。沒有密鑰的用戶,不可能從加密結果中得到有關原始數(shù)據(jù)的任何信息,只有擁有密鑰的用戶才能夠正確解密,得到原始的內(nèi)容。我們注意到,這個過程中用戶是不能對加密結果做任何操作的,只能進行存儲、傳輸。對加密結果做任何操作,都將會導致錯誤的解密,甚至解密失敗。同態(tài)加密技術關注的是數(shù)據(jù)處理安全,提供了一種對加密數(shù)據(jù)進行處理的功能,也就是說,其他人可以對加密數(shù)據(jù)進行處理,但是處理過程不會泄露任何原始內(nèi)容。同時,擁有密鑰的用戶對處理過的數(shù)據(jù)進行解密后,得到的正好是處理后的結果。
假設有函數(shù)E滿足E(a)+E(b)=E(a+b);E(a)*E(b)=E(a*b),那么這就叫全同態(tài),滿足其中之一就是半同態(tài),加密就是那個E函數(shù),解密就理解為如果F(a)=x,D(x)=a整個加密E和解密D就是全同態(tài)加密,其中還有公鑰、私鑰等變量,這個函數(shù)的優(yōu)點在于我們對密文F(x)運算,對結果解密之后,就得到了想要的原文運算結果。同態(tài)性是指在加密后保持一定的結構穩(wěn)定,使對明文的運算等價于對密文的運算。在現(xiàn)實中,可以用于云計算加密,比如公司需要將大量數(shù)據(jù)交由其他云計算公司去做,但數(shù)據(jù)比較敏感,不希望別人知道,這時候就可以利用同態(tài)加密。同態(tài)加密中設置的算法可以是多種多樣的,但是同態(tài)加密的根本知識還是依賴于數(shù)論,數(shù)學矩陣等一系列基礎知識。
(1)同態(tài)加密中的函數(shù)映射
數(shù)據(jù)發(fā)送者在處理數(shù)據(jù)的整個過程大致是這樣的:發(fā)送者首先對數(shù)據(jù)進行加密,并把加密后的數(shù)據(jù)發(fā)送給傳遞數(shù)據(jù)的中間媒介(可能是數(shù)據(jù)傳遞廠商、數(shù)據(jù)傳遞平臺),用戶向中間媒介提交數(shù)據(jù)的處理方法,這里用函數(shù)F來表示;中間媒介在函數(shù)F下對數(shù)據(jù)進行處理,并且將處理后的結果發(fā)送給用戶,用戶對數(shù)據(jù)進行解密,得到結果。據(jù)此,我們可以很直觀的得到一個該方案應該擁有的函數(shù):密鑰生成函數(shù)。這個函數(shù)由用戶運行,用于產(chǎn)生加密數(shù)據(jù)所用的密鑰。當然了,應該還有一些公開常數(shù)a,b等。同時也會得到一個函數(shù):加密E函數(shù)。這個函數(shù)也由用戶運行,用K函數(shù)對用戶數(shù)據(jù)進行加密,得到密文CT和評估函數(shù)。這個函數(shù)就可以由中間媒介運行,在用戶給定的數(shù)據(jù)處理方法F下,對密文進行操作,使得結果相當于用戶用密鑰對數(shù)據(jù)進行加密。同樣的,根據(jù)F的限制條件不同,該方案實際上分為了兩類:一類是該方案支持任意給定的F函數(shù),只要這個F函數(shù)可以通過算法描述,用計算機實現(xiàn),但這種F函數(shù)計算開銷極大,暫時還無法在實際中使用;另一類是指在特定的條件下改進后的F函數(shù),改進后的方案只支持一些特定的F函數(shù),所以這個方案的表達能力稍弱,但這也意味著開銷會變得較小,容易實現(xiàn),重要的是現(xiàn)在已經(jīng)可以在實際中使用。
那么我們怎么判斷這個方案的安全性呢?直觀地說,就是密文不泄露明文中的任意信息。這里密文的意思就是加密后的結果;明文的意思就是原始的數(shù)據(jù)。如果用公式表述的話,為:
這里pk代表公鑰,是非對稱加密體制中可以公開的一個量。公式中的約等于符號,意味著多項式不可區(qū)分性,即不存在高效的算法,可以區(qū)分兩個結果,即使已知m0,m1和pk,也不一定能夠得到精確地結果。原因在于加密算法中還用到一個很重要的量:隨機數(shù)。也就是說,對于同樣的明文m進行加密,得到的結果都不一樣,即一個明文可以對應多個密文。所以即使已經(jīng)知道m(xù)0,m1了,在看到加密結果后,對m0或者m1再執(zhí)行一次加密算法,也不會有精確相同的結果。
(2)矩陣向量工具在同態(tài)加密的優(yōu)勢
從上面的論述中我們知道了同態(tài)加密的概念,了解了同態(tài)加密的基本原理,認識到了同態(tài)加密的重要性,下面我們就來討論一下同態(tài)加密中矩陣向量的作用。眾所周知,向量是一個具有大小和方向的量,同時向量具有指向性,只要在向量前面加一個負號,向量就會反向。而向量在數(shù)學中是作為一個工具。所以我們在同態(tài)加密的設計加密算法中可以借助向量的知識進行加密。通過用數(shù)學的方法我們可以用多組向量對數(shù)據(jù)進行加密,加密完畢之后,再用計算機軟件生成隨機向量來測試該加密結果的可靠性,然后根據(jù)這組向量的反方向向量做出相應的密鑰,這個密鑰的制造方法很簡單,但是破解起來卻很難。當數(shù)據(jù)傳輸完成,接收者就可以通過密鑰進行解鎖,獲得原始數(shù)據(jù)。如果將矩陣應用在同態(tài)加密這個領域,那么同態(tài)加密將會變得更加安全可行。矩陣是由一系列列向量組成的,如果我們用許多組向量組成一個矩陣,然后測試該矩陣的行列式是否等于零,如果不等于零,那么該矩陣就有逆矩陣了,而且這個逆矩陣是唯一確定的。所以我們在設置加密算法的時候可以很好的應用矩陣這個優(yōu)勢,采取多個矩陣組成一個矩陣組,用計算機軟件對這些不相干的矩陣組對數(shù)據(jù)進行加密,然后同樣借助計算機工具求出這個矩陣組的逆矩陣,將他們進行隨機編排,形成解密數(shù)據(jù)的密鑰,那么這樣相比向量組來說,安全性能會更高一點,但是計算量也會隨之增大。
物聯(lián)網(wǎng)安全性的核心缺陷,就是缺乏設備與設備之間相互的信任機制,所有的設備都需要和物聯(lián)網(wǎng)中心的數(shù)據(jù)進行核對,一旦數(shù)據(jù)庫崩塌,會對整個物聯(lián)網(wǎng)造成很大的破壞。而區(qū)塊鏈分布式的網(wǎng)絡結構提供一種機制,使得設備之間保持共識,無需與中心進行驗證,這樣即使一個或多個節(jié)點被攻破,整體網(wǎng)絡體系的數(shù)據(jù)依然是可靠、安全的。
區(qū)塊鏈技術可以為物聯(lián)網(wǎng)提供點對點直接互聯(lián)的方式來傳輸數(shù)據(jù),而不是通過中央服務器,這樣分布式的計算就可以處理數(shù)以億計的交易了。同時,還可以充分利用分布在不同位置的海量閑置設備的計算力、存儲容量和帶寬,用于交易處理,大幅度降低計算和儲存的成本。另外,區(qū)塊鏈技術疊加智能合約可將每個智能設備變成可以自我維護調(diào)節(jié)的獨立的網(wǎng)絡節(jié)點,這些節(jié)點可在事先規(guī)定或植入的規(guī)則基礎上執(zhí)行與其他節(jié)點交換信息或核實身份等功能。這樣無論設備生命周期有多長,物聯(lián)網(wǎng)產(chǎn)品都不會過時,節(jié)省了大量的設備維護成本。
由于物聯(lián)網(wǎng)平臺設備功能不斷增強,用戶數(shù)量的增加,物聯(lián)網(wǎng)需要傳輸?shù)臄?shù)據(jù)也越來越多。而且在這些數(shù)據(jù)中,還夾雜著許多關乎某些項目甚至企業(yè)的關鍵性數(shù)據(jù),這些數(shù)據(jù)的安全等級是毋庸置疑的。但是目前如果只憑借物聯(lián)網(wǎng)自己的數(shù)據(jù)處理傳輸技術,不能很好的保證這些數(shù)據(jù)在傳輸過程中的安全性,這就需要我們借助外部工具對其進行加密處理,同態(tài)加密的重要性也就顯示出來了。
物聯(lián)網(wǎng)中數(shù)據(jù)產(chǎn)生的主要部分是傳感網(wǎng)絡,通過傳感網(wǎng)絡可以獲悉物聯(lián)網(wǎng)設備的眾多信息,其中包括物本身的ID信息以及相關的屬性、狀態(tài)、位置、能力等信息。我們可以利用區(qū)塊鏈對于傳感網(wǎng)絡產(chǎn)生的ID、圖像、聲音、環(huán)境數(shù)據(jù)、位置數(shù)據(jù)、狀態(tài)信息、能力信息等進行存證。利用區(qū)塊鏈無中心化且非經(jīng)過多方驗證無法修改的特性產(chǎn)生應用場景,為了確保存儲在各節(jié)點的共享公共賬本中的數(shù)據(jù)安全性,我們引入同態(tài)加密的技術,核心在于解決物體之間進行互操作的信息安全問題,將區(qū)塊鏈公共賬本的數(shù)據(jù)內(nèi)容和交互數(shù)據(jù)、物體狀態(tài)能力數(shù)據(jù)進行同態(tài)加密。利用加密算法的同態(tài)特性實現(xiàn)在物體信息存證和物體互操作時,無需解密成明文即可完成信息的運算交互處理。例如可以在供應鏈上追蹤物品ID和位置信息,或者在保險領域記錄突發(fā)事件的環(huán)境數(shù)據(jù)和其他重要機器狀態(tài)數(shù)據(jù),在需要綜合驗證場景信息時候提供證偽。
實現(xiàn)同態(tài)加密的關鍵是對于任意復雜的明文操作,要求都能構造出相應的加密操作,使得加密算法在復雜環(huán)境下對于加法和乘法都具有良好的同態(tài)性。這并不是一個簡單的問題。目前尚沒有真正可用于實際的全同態(tài)加密算法,現(xiàn)有的多數(shù)同態(tài)加密算法要么是只對加法同態(tài)(例如Paillier算法),要么是只對乘法同態(tài)(例如RSA算法),或者同時對加法和簡單的標量乘法同態(tài)(例如IHC算法和MRS算法)。但是不能同時具有加同態(tài)和乘同態(tài)。這種同態(tài)性用處就不大了,只能作為一個性質,這類方案的同態(tài)性一般也不會在實際中使用的。在此我們看一下SWHE加密方案,看看是怎么有乘同態(tài)特性。SWHE加密方案的密文形式為:r是加密過程中選的一個隨機數(shù),g是一個生成元,h是公鑰。如果我們有兩個密文:我們把這兩個密文的第一部分相乘,第二部分相乘,會得到:也就是說,相乘以后的密文正好是m1,m2所對應的密文。這樣,用戶解密后得到的就是m1,m2的結果了。而且注意,整個運算過程只涉及到密文和公鑰,運算過程不需要知道m(xù)1,m2的確切值。所以我們說m1,m2具有乘同態(tài)性質。但是很遺憾,其沒有加同態(tài)性質。
區(qū)塊鏈數(shù)據(jù)安全的核心在于去中心化的實現(xiàn)價值交換及合約驗證。我們用物聯(lián)網(wǎng)中物體的屬性、狀態(tài)、位置、能力等數(shù)據(jù)內(nèi)容作為物體價值的載體。傳感網(wǎng)絡產(chǎn)生的信息本身就具備價值特性,執(zhí)行機構也能用行為產(chǎn)生價值,這些價值在設備間流動可以利用區(qū)塊鏈的貨幣特性;可以催生出具備自主資源產(chǎn)生能力的設備,這些設備產(chǎn)生的資源可以為機器服務更能為人服務,價值交換與合約完全以區(qū)塊鏈數(shù)字貨幣與智能合約的方式進行保障。
在已有的物聯(lián)網(wǎng)網(wǎng)絡中加入?yún)^(qū)塊鏈機制,將每個物體的狀態(tài)能力等信息利用物聯(lián)網(wǎng)邊緣節(jié)點進行分布式存儲。我們在物聯(lián)網(wǎng)邊緣節(jié)點按10:1的比例分配獨立計算單元,處理同態(tài)加密解密等運算能力較高的任務。首先我們定義物體交互能力是指該物體能夠被其他物體調(diào)用的數(shù)據(jù)或功能,能力交互就是指在多個物體之間利用差異能力的組合共同完成需求任務。在一個區(qū)塊鏈網(wǎng)絡上,一個物體發(fā)起能力交互需求,經(jīng)全網(wǎng)節(jié)點驗證,交互接收物體收到交互訴求并完成能力交互操作,該方法的步驟具體為:同態(tài)密鑰生成,由一個可信任的第三方機構生成一對同態(tài)密鑰作為全網(wǎng)的同態(tài)密鑰,公開其同態(tài)公鑰,私鑰保存在第三方機構中。發(fā)送物體的區(qū)塊鏈賬戶分為待交互的能力描述和未交互的能力描述;用全網(wǎng)同態(tài)公鑰加密該物體的待交互能力與未交互能力,記為密文capX1和capX2;用接收物體的同態(tài)公鑰加密待交互能力,得到密文capY1,此操作采用FHE同態(tài)加密的算法;發(fā)送者發(fā)起交互,交互能力內(nèi)容包含capX1、capX2和capY1三個字段;全網(wǎng)節(jié)點驗證能力交互信息,由于公共賬本上以同態(tài)加密密文形式存儲全網(wǎng)物體的真實能力描述,驗證后統(tǒng)一維護公共賬本;更新接收物體的剩余能力描述。此方法實現(xiàn)了利用同態(tài)加密技術隱藏區(qū)塊鏈上的能力交互描述和物體已用未用的能力信息,解決了傳統(tǒng)的區(qū)塊鏈交易中暴露了真實的物體屬性、狀態(tài)、位置等隱私信息的問題,實現(xiàn)了物聯(lián)網(wǎng)區(qū)塊鏈上的隱私保護功能。
我們希望FHE方案可以支持任意的函數(shù)F,這恰恰和物聯(lián)網(wǎng)的核心不謀而和,物體之間的交互算法不是固定不變的。但是我們想要構造FHE,就需要計算機原理考慮。計算機無論做何種運算,歸根到底都是位運算。那么,計算機至少要支持哪些位運算,才能夠支持所有的運算呢?實際上,一個計算機只要支持邏輯與運算,以及異或運算,那么這個計算機理論上就可以實現(xiàn)計算機的其他運算了(我們稱之為圖靈完備性)從抽象代數(shù)考慮,我們只需要加法和乘法就可以完成全部運算了。但其實更嚴格的說,只要我們在一個域上構造FHE,理論上我們就可以支持所有的F?;贚WE問題的FHE只能針對1 bit進行加密,因此現(xiàn)在的構造都是從計算機原理考慮。也就是在bit的層面上實現(xiàn)FHE方案,或者更嚴謹?shù)卣f,從電路層實現(xiàn)FHE方案,如果要考慮電路層的具體構造,就會上升至一個新的領域的加密問題,需要跨專業(yè),跨行業(yè)進行研究,雖然有難度,但是有很大的開發(fā)空間。
在本文中采用同態(tài)公鑰加密函數(shù)來對物聯(lián)網(wǎng)節(jié)點之間傳遞的信息進行加密,因而是安全的,不會被攻擊者攻破,從而可以保護目標移動路徑、狀態(tài)信息、所處位置等相關隱私信息。此外,字典攻擊也有可能被攻擊者采用。也就是說,攻擊者只需要不斷地向中間信息轉發(fā)節(jié)點交換相遇概率信息,就可能將目標節(jié)點與轉發(fā)節(jié)點的相遇概率鎖定在很小的范圍內(nèi)。此時的處理分析如下:首先,保護基于消息發(fā)送節(jié)點相遇概率P的隱私。消息發(fā)送節(jié)點在發(fā)送自己與目標節(jié)點的相遇概率P給中間轉發(fā)節(jié)點(如果是攻擊者假冒)之前,對該概率采用同態(tài)加密函數(shù)及密鑰進行了加密處理,攻擊者如果沒有掌握密鑰KID,不能攻擊該加密數(shù)據(jù)。其次,基于消息轉發(fā)節(jié)點相遇概率的隱私保護。對于消息發(fā)送節(jié)點與轉發(fā)節(jié)點之間的信息交互也需要保護,以保護轉發(fā)節(jié)點與目標節(jié)點之間的相遇概率P隱私。主要有以下兩方面的措施。第一,真實數(shù)據(jù)隱藏。為避免攻擊者直接竊取相遇概率,文中將相遇概率P所在的區(qū)間端點信息以及其他一些虛擬的數(shù)據(jù)共同組成一個集合,將真實的數(shù)據(jù)隱藏在集合中。第二,集合元素加密。為避免字典攻擊,消息轉發(fā)節(jié)點用私鑰加密集合中的每個元素,沒有獲取該私鑰,攻擊者將很難解密信息。
我國物聯(lián)網(wǎng)行業(yè)在國家政策的大力扶持下,取得了非常顯著的成績,但是物聯(lián)網(wǎng)在大數(shù)據(jù)處理和傳輸上面依然是有很大的風險,同態(tài)加密是確保數(shù)據(jù)處理安全非常有效的手段,將會對物聯(lián)網(wǎng)的區(qū)塊鏈數(shù)據(jù)安全起到重要作用。同態(tài)加密不僅能夠將原始數(shù)據(jù)進行加密,在傳輸過程中也可以讓外部媒介對數(shù)據(jù)進行處理,接收者借助密鑰對加密過的數(shù)據(jù)信息進行解密后,得到的與原始數(shù)據(jù)處理后的結果一致。解決物體之間數(shù)據(jù)和能力交互傳輸?shù)陌踩詥栴},同時在人機交流、傳感器和信息采集方面也有顯著的作用。隨著同態(tài)加密技術的不斷發(fā)展,相信在不久的將來,在困擾物聯(lián)網(wǎng)的物體智慧互聯(lián)、能力交互數(shù)據(jù)安全等疑難問題上,同態(tài)加密也將顯示出其強大的動力,能夠推動物聯(lián)網(wǎng)數(shù)據(jù)安全的發(fā)展進步。
[1]Ron Rivest, Leonard Adleman, and Michael L. Dertouzos. On data banks and privacy homomorphisms. Foundations of Secure Computation,1978.
[2]Craig Gentry. Fully homomorphic encryption using ideal lattices. STOC 2009. Also, see “A fully homomorphic encryption scheme”, PhD thesis, Stanford University,2009.
[3]劉艮, 蔣天發(fā).同態(tài)加密技術及其在物聯(lián)網(wǎng)中的應用研究[J].信息網(wǎng)絡安全,2011.
[4]李超良, 劉琴, 謝永明等.基于同態(tài)加密的物聯(lián)網(wǎng)隱私保護計算方案[J].計算機工程與應用,2015.
[5]曾萍, 張歷, 楊亞濤等.一種基于HECRT的物聯(lián)網(wǎng)密鑰管理方案[J].計算機工程,2014.
[6]吳琦.淺談同態(tài)加密技術及其在物聯(lián)網(wǎng)中的應用[J].通訊世界,2015.
[7]劉培鶴, 孟一諾, 涂津塵等.應用于物聯(lián)網(wǎng)的Paillier同態(tài)信息檢索方案設計[J].北京電子科技學院學報,2012.