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