1 概述
隨著計算機和網絡技術的發(fā)展,存儲模式也由個人集中式的存儲發(fā)展為分布式存儲。分布式存儲就是將數據存儲在多臺獨立的存儲服務器上。分布式存儲通過備份、冗余編碼等手段,可以提高系統的可靠性、可用性和存取效率,還易于擴展[1]。因此,越來越多的用戶將自己的大量數據外包給存儲服務方進行分布式存儲。這種模式在給用戶帶來方便和快捷的同時,也帶來了新的問題。例如:用戶如何保證數據的隱私性。為解決這個問題,研究者提出了新的方案[2]。但該方案完全使用公鑰加密,導致方案的加解密效率不高,而且加密時仍然需要集中式的處理,沒有實現真正意義下的“去中心化”。本文針對分布式存儲,研究如何將“去中心化”和用戶數據進行高效加解密結合,提出一種去中心化的安全分布式存儲系統。
2 相關工作
分布式存儲通常以提高可靠性為目的。為提高可靠性,存儲數據的一般方法是通過編碼增加冗余信息,利用糾刪編碼的原理,對數據進行糾刪編碼,將編碼后的各個數據片段分布式地存儲于異地的存儲服務器中。
分布式存儲原理如圖1 所示。具體如下:對于一個文件M,首先將其分成k 個等長的分組(最后一組不足可填充0),形成向量 M’= (M1,M2 , , , M k),然后利用(n, k)糾刪碼對其進行編碼來增加冗余,得到與M’ 相關的碼字向量C =(C1, C2 , , Cn)。將碼字的n 個部分分別存儲在n 個存儲服務器中。數據恢復時,只需存取n個存儲服務器中的任意k 個即可解碼恢復出原始數據M。
圖1 分布式存儲原理
目前分布式存儲的研究重在研究系統的計算復雜度、通信效率、魯棒性等。一個好的分布式存儲系統應滿足計算復雜度低、通信代價小、具有較好的抗災難性等。
在一般情況下,分布式存儲系統是將分組消息形成的向量 M’= M1,M2 , , , M k集中進行編碼處理的。但如果數據來源是異地的,則需先將所有的數據匯聚在某個服務器上集中進行編碼處理,之后再將處理好的分組數據發(fā)送給各個異地的存儲服務器。
文獻[1]討論了異地數據源(如傳感器網絡中的傳感器采集的數據)分布式存儲中如何去中心化,即:使數據的編碼不再集中進行,而轉由各個存儲服務器分布式地進行。其思想是使用分布式的糾刪碼原理實現分布式編碼以去中心化的。由于省去了集中化處理所需的匯聚步驟,編碼過程轉由各個存儲服務器分布式地完成,因此整個系統的架構有了較大的簡化。同時,由于所采用的糾刪碼所使用的生成矩陣實際上是一個稀疏矩陣,因此編碼和譯碼的效率較高。去中心化的分布式存儲原理如圖2 所示。
圖2 去中心化的分布式存儲原理
分布式存儲對于如何保證數據的保密性方面研究相對較少。文獻[2]在去中心化分布式存儲的基礎上增加數據的保密性。該文利用了特殊的具有同態(tài)性的公鑰密碼算法,使對密文的糾刪編碼可以直接進行解密后再進行糾刪解碼,其系統結構如圖3 所示。
圖3 文獻[2]系統結構
但公鑰密碼算法的算法復雜度實質是非常高的,幾乎從來不會場直接應用于對大量數據加解密,而分布式存儲的應用場景很多都是大量數據的存儲,因此,文獻[2]方案的實用性較低。該方案具有以下缺點:
(1)方案使用了公鑰算法,至使其數據的加解密速度慢,難以達到實時性要求。由于公鑰算法的安全性一般都基于一些數學上的困難問題,如離散對數、大整數分解等,因此公鑰算法的算法復雜度高,加密和解密速度很慢,一般只是用于對少量數據(如密鑰)的加密。以RSA 公鑰算法為例,它加解密所針對的數據一般是1 024 bit。因此,對于大量的數據,只能將其以1 024 bit 為一組進行分割,然后逐組進行加密,解密也是分組進行。而在分布式存儲中,用戶一般都是借助第三方服務器來存儲大量數據的,這樣公鑰算法對大量數據的加解密都難以達到實時性的要求,更不適合于計算能力弱的網絡環(huán)境(如無線傳感器網等)。
(2)數據的分布存儲并沒有完全實現去中心化。雖然方案借助了文獻[1]中的去中心化的糾刪碼的思想,但之前的加密操作卻是集中處理的。由于所有的密文需要共享一個相同的標識hID=H (M1,M2 , , , M n),而且該標識參與了加密運算,這就導致了方案中的加密過程不可能去中心化,因而就失去了文獻[1]方案“去中心化”的特性。
(3)系統架構復雜。方案中解密時需要借助分布式的解密服務器,而且要求合謀的服務器個數不超過t 個。在文獻[2]中,解密服務器是獨立于存儲服務器的,專門用于為用戶進行解密操作。用戶的私鑰通過(t, m)門限體制存儲于m 個密鑰服務器中。文中假設解密服務器的安全級別比存儲服務器要高:存儲服務器可以允許任意多個服務器合謀,而對于解密服務器卻中允許不超過t 個服務器間的合謀。
(4)在方案的解密操作中,分布式的解密服務器需要進行的是計算復雜度很高的模指數算法,而用戶最后的合成階段,即使利用了所使用的公鑰算法的同態(tài)性質也需要至少O(k)次模指數操作和復雜度更高的雙線性配對操作。
3 去中心化的安全分布式存儲系統
本文針對文獻[2]方案,提出一個新的通用的去中心化的安全存儲系統,如圖4 所示。
圖4 去中心化的安全分布式存儲系統
以上方案描述假設了每個Mi 都是有限域Fq 上的元素,如果Mi 很多,可以將其分成若干個Fq 上的元素,逐個參與以上的各個步驟。同一個Mi 中的各塊數據是共享一個對稱密鑰Ki 的,而且對其密文的糾錯編碼時,編碼時共享同一組編碼系數。
4 性能分析
對本文提出的分布式存儲系統的性能分析如下:
(1)本方案中通過公鑰體制和對稱密碼體制之間的結合,且消息的各個部分消息Mi 使用了不同的對稱密鑰Ki,使得整個加密操作都可以分布式完成,實現了加密階段的去中心化,且分布式存儲服務器的存儲代價與文獻[2]方案的相同。(2)計算復雜度高的公鑰密碼只用于加密對稱密鑰,而其它的大量數據都使用對稱密碼,使得加密步驟的計算復雜度大大降低。
(3)采用了文獻[1]中的分布式糾刪編碼方法,實現編碼階段的去中心化。由于所采用的糾刪碼的生成矩陣實質上是一個隨機的稀疏矩陣,因此其編碼和譯碼的計算復雜度都小于O(n3)。
(4)從密文中恢復出明文,對稱密鑰的恢復非常重要。為了保證密鑰的恢復,這里采用RS 糾錯碼中的多項式編碼[5-6]和List Decoding 的譯碼方法[3-4]。糾錯碼的應用保證了即使某些存儲服務器提供的數據有誤,在不知道錯誤存儲器的位置的情況下,只要發(fā)生服務器出錯個數不超過其糾錯能力,一般的RS 譯碼都可以將其糾正。使用ListDecoding,其糾錯能力更加強大,它可以糾RS 碼糾錯能力之外的錯誤。通過放松與接收碼字的距離,可以輸出多個碼字,而其中的一個必定是其中的正確解。
5 結束語
本文提出一種去中心化的安全分布式存儲系統。該系統具有如下特點:(1)只需要存儲服務器,而無需解密服務器,從而簡化了系統的架構;(2)保證系統中的加密操作分布式進行,實現真正意義上的去中心化;(3)利用公鑰密碼體制和單鑰密碼體制相結合的傳統思想,保證了數據的快速加解密;(4)無論是存儲服務器還是解密服務器,都可以達到防止全合謀的特性,即無論多少個服務器合謀,其安全性都不會受到破壞。下一步工作將研究如何提高系統效率。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業(yè)務領域、行業(yè)應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業(yè)務領域的管理,全面涵蓋了企業(yè)關注ERP管理系統的核心領域,是眾多中小企業(yè)信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://www.ezxoed.cn/
本文標題:去中心化的安全分布式存儲系統