專利名稱:一種基于多個(gè)云存儲(chǔ)系統(tǒng)的安全存儲(chǔ)方法及其系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計(jì)算機(jī)存儲(chǔ)技術(shù)領(lǐng)域,具體涉及一種基于多個(gè)云存儲(chǔ)系統(tǒng)的安全存儲(chǔ)方法及其系統(tǒng)。
背景技術(shù):
云存儲(chǔ)系統(tǒng)是以海量數(shù)據(jù)存儲(chǔ)管理為目的在線存儲(chǔ)系統(tǒng),云存儲(chǔ)系統(tǒng)是提供商通過內(nèi)部高速網(wǎng)絡(luò)互連海量存儲(chǔ)服務(wù)器作為硬件基礎(chǔ),并在其上運(yùn)行分布式文件存儲(chǔ)系統(tǒng)協(xié)調(diào)服務(wù)器工作,對(duì)外提供統(tǒng)一的存儲(chǔ)服務(wù)接口的存儲(chǔ)服務(wù)。用戶可以使用這些存儲(chǔ)接口按需存儲(chǔ)數(shù)據(jù),并只需為自己所存儲(chǔ)的數(shù)據(jù)付費(fèi)。這種存儲(chǔ)方式相對(duì)于傳統(tǒng)的本地存儲(chǔ)有幾點(diǎn)好處:一、管理方便,所有存儲(chǔ)系統(tǒng)的軟、硬件升級(jí)維護(hù)由云服務(wù)提供商統(tǒng)一完成;二、所付即所用,用戶只需要為自己所存儲(chǔ)的數(shù)據(jù)付費(fèi),避免了存儲(chǔ)設(shè)備空間的浪費(fèi);三、擴(kuò)展方便,用戶無需為存儲(chǔ)空間不足而擔(dān)心,所有的存儲(chǔ)擴(kuò)展由云存儲(chǔ)服務(wù)提供商進(jìn)行。數(shù)據(jù)安全包括私密性、完整性、可靠性和不可否認(rèn)性。私密性保證數(shù)據(jù)不會(huì)被非法用戶獲取與查看;完整性保證數(shù)據(jù)不被惡意用戶篡改;可靠性保證數(shù)據(jù)不會(huì)丟失;不可否認(rèn)性是指用戶無法否認(rèn)自己創(chuàng)建的數(shù)據(jù)。在云存儲(chǔ)中,大數(shù)據(jù)分為一系列固定大小的數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊復(fù)制多份,并保存在不同的存儲(chǔ)服務(wù)器上。當(dāng)出現(xiàn)若干磁盤、服務(wù)器發(fā)生故障時(shí),這種副本機(jī)制保證了用戶數(shù)據(jù)不會(huì)丟失,通過從正常的服務(wù)器上拷貝丟失的副本數(shù)據(jù)塊,保證了用戶數(shù)據(jù)一定的可靠性。但單個(gè)云存儲(chǔ)系統(tǒng)服務(wù)仍舊無法保證數(shù)據(jù)的安全性。主要體現(xiàn)在以下方面:(1)單個(gè)云服務(wù)提供商存儲(chǔ)系統(tǒng)往往集中于單個(gè)數(shù)據(jù)中心,存在整個(gè)數(shù)據(jù)中心的單點(diǎn)故障帶來不可靠性風(fēng)險(xiǎn),如數(shù)據(jù)中心斷電或自然災(zāi)害會(huì)導(dǎo)致用戶無法訪問數(shù)據(jù)。(2)在單個(gè)云存儲(chǔ)系統(tǒng)內(nèi)部往往也存在單點(diǎn)故障瓶頸,如單點(diǎn)的元數(shù)據(jù)服務(wù)器故障將會(huì)導(dǎo)致所有數(shù)據(jù)無法正常訪問。(3)數(shù)據(jù)的非 加密存儲(chǔ)方式將無法保證數(shù)據(jù)的私密性和完整性,雖然現(xiàn)有的云存儲(chǔ)系統(tǒng)往往提供了一定的訪問控制權(quán)限來限制外界非法用戶對(duì)數(shù)據(jù)的訪問和修改,但所有對(duì)于存儲(chǔ)系統(tǒng)內(nèi)部是不設(shè)防的,云存儲(chǔ)服務(wù)提供商內(nèi)部人員存在泄露、篡改用戶數(shù)據(jù)的隱患,同時(shí)也增加了黑客攻擊存儲(chǔ)服務(wù)器,從內(nèi)部盜竊數(shù)據(jù)的風(fēng)險(xiǎn)。(4)在物理上存儲(chǔ)系統(tǒng)處于用戶不可控狀態(tài),傳統(tǒng)的安全機(jī)制很難保證用戶數(shù)據(jù)的真正安全。采用加密和簽名技術(shù),在云存儲(chǔ)系統(tǒng)端保存的是加密后的數(shù)據(jù)可以保證私密性和不可否認(rèn)性,但仍舊存在存儲(chǔ)系統(tǒng)內(nèi)部的安全風(fēng)險(xiǎn)。而且,許多用戶將加、解密密鑰同數(shù)據(jù)一起保存在了相同的云存儲(chǔ)系統(tǒng)端,或者使用的加、解密密碼是進(jìn)入該云服務(wù)的登陸密碼,更增加了云存儲(chǔ)的數(shù)據(jù)安全性風(fēng)險(xiǎn)。即使將大量的用戶密鑰交給用戶自己保存,這樣用戶密鑰在客戶端存儲(chǔ)的可靠性遠(yuǎn)低于數(shù)據(jù)在云存儲(chǔ)系統(tǒng)中可靠性,還存在著用戶密鑰丟失而導(dǎo)致數(shù)據(jù)無法還原的風(fēng)險(xiǎn)。針對(duì)以上問題,基于多個(gè)云存儲(chǔ)系統(tǒng)的存儲(chǔ)系統(tǒng),如圖1所示,將筆記本電腦、臺(tái)式機(jī)和個(gè)人移動(dòng)通信終端作為客戶端,通過廣域互聯(lián)網(wǎng)連接多個(gè)云存儲(chǔ)系統(tǒng),如云存儲(chǔ)系統(tǒng)A、云存儲(chǔ)系統(tǒng)B、云存儲(chǔ)系統(tǒng)C。2009年,“一種針對(duì)云存儲(chǔ)系統(tǒng)的高可用和完整性層” 一文,提供多個(gè)服務(wù)器向客戶端保證數(shù)據(jù)的完整性和可用性,但并沒有保證數(shù)據(jù)的私密性和不可否認(rèn)性。見"HAIL:ahigh-avaiIabiIity and integrity layer for cloud storage." Proceedings ofthel6th ACM conference on Computer and communications security.ACM,2009。2010年,“云存儲(chǔ)系統(tǒng)多樣性的一個(gè)案例”一文,采用RAID (冗余磁盤整列)的方式將數(shù)據(jù)條帶式存儲(chǔ)到多個(gè)云存儲(chǔ)設(shè)備上,提高數(shù)據(jù)可用性,但也沒有考慮數(shù)據(jù)的完整性和私密性。見 〃 RACS:a case for cloud storage diversity." Proceedings of the 1stACM symposium on Cloud computing.ACM,2010。
發(fā)明內(nèi)容
本發(fā)明提供一種基于多個(gè)云存儲(chǔ)系統(tǒng)的安全存儲(chǔ)方法,同時(shí)提供其安全存儲(chǔ)系統(tǒng),解決現(xiàn)有多個(gè)云存儲(chǔ)系統(tǒng)中同時(shí)保證數(shù)據(jù)和元數(shù)據(jù)安全性的問題。保證數(shù)據(jù)和元數(shù)據(jù)私密、高可用的同時(shí),用戶本身不用保存任何元數(shù)據(jù)信息用于索引、查詢數(shù)據(jù)。本發(fā)明所提供的一種基于多個(gè)云存儲(chǔ)系統(tǒng)的安全存儲(chǔ)方法,包括數(shù)據(jù)寫操作步驟和數(shù)據(jù)讀操作步驟,其特征在于 :(I)數(shù)據(jù)寫操作步驟,包括下述子步驟:(1.1)數(shù)據(jù)分塊:將原始數(shù)據(jù)D分割為k塊等大小的原始數(shù)據(jù)塊,不足一塊原始數(shù)據(jù)塊大小的剩余原始數(shù)據(jù)使用零或任意數(shù)據(jù)填充補(bǔ)足為原始數(shù)據(jù)塊大??;k〈n,云存儲(chǔ)系統(tǒng)的個(gè)數(shù)η > 3 ;(1.2)數(shù)據(jù)加密:通過對(duì)稱塊加密算法將k塊原始數(shù)據(jù)塊加密為k塊密文數(shù)據(jù)塊,同時(shí)產(chǎn)生一個(gè)密文元數(shù)據(jù),密文元數(shù)據(jù)包括密鑰kd、加密初始化向量IV和原始數(shù)據(jù)D的長(zhǎng)度Sd ;(1.3)冗余編碼:對(duì)k塊密文數(shù)據(jù)塊進(jìn)行冗余編碼,形成η塊冗余數(shù)據(jù)塊Cli, i = 1、…、η;冗余編碼過程產(chǎn)生一個(gè)冗余編碼元數(shù)據(jù),冗余編碼元數(shù)據(jù)包括冗余編碼的生成矩陣G以及各冗余數(shù)據(jù)塊和相應(yīng)云存儲(chǔ)系統(tǒng)的映射關(guān)系Map ;(1.4)數(shù)字簽名:對(duì)η塊冗余數(shù)據(jù)塊Cli分別進(jìn)行哈希運(yùn)算,得到η個(gè)哈希值,再使用簽名密鑰kds對(duì)η個(gè)哈希值分別進(jìn)行加密,相應(yīng)得到η個(gè)簽名塊文件Si ;(1.5)分享處理:將密文元數(shù)據(jù)、冗余編碼元數(shù)據(jù)、η個(gè)簽名塊文件Si和簽名密鑰kds合并為元數(shù)據(jù)文件,通過秘密分享方案將元數(shù)據(jù)文件分為η份不同的元數(shù)據(jù)分片文件;秘密分享方案保證根據(jù)η份元數(shù)據(jù)分片文件中任意不少于f份元數(shù)據(jù)分片文件可以恢復(fù)出元數(shù)據(jù)文件,少于f份元數(shù)據(jù)分片文件則得不到元數(shù)據(jù)的任何信息,2^f <n;(1.6)數(shù)據(jù)存儲(chǔ):將η塊冗余數(shù)據(jù)塊Cli和η個(gè)簽名塊文件Si按照映射關(guān)系Map分別存儲(chǔ)在η個(gè)云存儲(chǔ)系統(tǒng)中;將η份不同的元數(shù)據(jù)分片文件分別順序存儲(chǔ)于η個(gè)云存儲(chǔ)系統(tǒng)中;(2)數(shù)據(jù)讀操作步驟,包括下述子步驟:(2.1)解密元數(shù)據(jù)分片文件:
從η個(gè)云存儲(chǔ)系統(tǒng)中至少下載f個(gè)元數(shù)據(jù)分片文件;再通過秘密分享方案從f個(gè)元數(shù)據(jù)分片文件恢復(fù)元數(shù)據(jù)文件,從其中得到密文元數(shù)據(jù)、冗余編碼元數(shù)據(jù)和簽名密鑰kds;(2.2)數(shù)字簽名檢查:順序從η個(gè)云存儲(chǔ)系統(tǒng)中下載冗余數(shù)據(jù)塊Cli,每下載一塊冗余數(shù)據(jù)塊,對(duì)其使用簽名密鑰kds和簽名塊文件Si進(jìn)行簽名檢查,檢查通過則為有效冗余數(shù)據(jù)塊,否則為無效冗余數(shù)據(jù)塊,當(dāng)有效冗余數(shù)據(jù)塊達(dá)到k塊時(shí),停止下載,進(jìn)行子步驟(2.3);如果η塊冗余數(shù)據(jù)塊全部下載,有效冗余數(shù)據(jù)塊仍少于k塊,則認(rèn)為數(shù)據(jù)被永久性損壞而無法恢復(fù);(2.3)冗余解碼:利用冗余編碼元數(shù)據(jù)對(duì)k塊冗余數(shù)據(jù)塊解碼,得到k塊密文數(shù)據(jù)塊;(2.4)解密密文數(shù)據(jù)塊:通過密文元數(shù)據(jù)中的密鑰kd,解密各個(gè)密文數(shù)據(jù)塊,得到k塊原始數(shù)據(jù)塊,合并各個(gè)原始數(shù)據(jù)塊,根據(jù)密文元數(shù)據(jù)中·的原始數(shù)據(jù)長(zhǎng)度sd,將合并后的原始數(shù)據(jù)塊裁剪為原始數(shù)據(jù)。本發(fā)明中,k為保證數(shù)據(jù)可用所需的最少云存儲(chǔ)系統(tǒng)個(gè)數(shù),n-k為允許失效的云存儲(chǔ)系統(tǒng)個(gè)數(shù)。所述的安全存儲(chǔ)方法,其特征在于:所述子步驟(1.2)中,所述對(duì)稱塊加密算法,為3DES算法、AES算法、IDEA算法或Twofish 算法;所述子步驟(1.3)和子步驟(2.3)中,所述冗余編碼或冗余解碼為(n,k)里德-所羅門(Reed-solomon)碼,η為碼元長(zhǎng)度,對(duì)應(yīng)云存儲(chǔ)系統(tǒng)個(gè)數(shù),k為信息元長(zhǎng)度,對(duì)應(yīng)原始數(shù)據(jù)分塊個(gè)數(shù);所述子步驟(1.4)中,所述哈希運(yùn)算所使用的算法為SHA_1、MD5、MD4、HMAC、RIPEMD或HAVAL消息摘要算法;所述子步驟(1.5)和子步驟(2.1)中,所述秘密分享方案為Shamir門限方案或Blakley秘密分享方案。本發(fā)明所提供的一種基于多個(gè)云存儲(chǔ)系統(tǒng)的安全存儲(chǔ)系統(tǒng),包括加解密編碼模塊、冗余編碼模塊、秘密分享模塊和數(shù)字簽名模塊四個(gè)模塊,其特征在于:(2)所述加解密模塊,當(dāng)數(shù)據(jù)寫操作時(shí),將原始數(shù)據(jù)D分割為k塊等大小的原始數(shù)據(jù)塊,不足一塊原始數(shù)據(jù)塊大小的剩余原始數(shù)據(jù)使用零或任意數(shù)據(jù)填充補(bǔ)足為原始數(shù)據(jù)塊大??;k〈n,η ≥3,為云存儲(chǔ)系統(tǒng)的個(gè)數(shù);再通過對(duì)稱塊加密算法將k塊原始數(shù)據(jù)塊加密為k塊密文數(shù)據(jù)塊,同時(shí)產(chǎn)生一個(gè)密文元數(shù)據(jù),密文元數(shù)據(jù)包括密鑰kd、加密初始化向量IV和原始數(shù)據(jù)長(zhǎng)度Sd ;當(dāng)數(shù)據(jù)讀操作時(shí),通過密文元數(shù)據(jù)中的密鑰kd,解密各個(gè)密文數(shù)據(jù)塊,得到k塊原始數(shù)據(jù)塊,合并各個(gè)原始數(shù)據(jù)塊,根據(jù)密文元數(shù)據(jù)中的原始數(shù)據(jù)長(zhǎng)度sd,將合并后的原始數(shù)據(jù)塊裁剪為原始數(shù)據(jù);(2)所述冗余編碼模塊,當(dāng)數(shù)據(jù)寫操作時(shí),對(duì)k塊密文數(shù)據(jù)塊進(jìn)行冗余編碼,形成η塊冗余數(shù)據(jù)塊屯,i = 1、…、η ;冗余編碼過程產(chǎn)生一個(gè)冗余編碼元數(shù)據(jù),冗余編碼元數(shù)據(jù)包括冗余編碼的生成矩陣G以及各冗余數(shù)據(jù)塊和相應(yīng)云存儲(chǔ)系統(tǒng)的映射關(guān)系Map ;
當(dāng)數(shù)據(jù)讀操作時(shí),從η個(gè)云存儲(chǔ)系統(tǒng)中下載至少k塊有效冗余數(shù)據(jù)塊,利用冗余編碼元數(shù)據(jù)對(duì)k塊有效冗余數(shù)據(jù)塊解碼,得到密文數(shù)據(jù)塊;(4)所述秘密分享模塊,當(dāng)數(shù)據(jù)寫操作時(shí),將密文元數(shù)據(jù)、冗余編碼元數(shù)據(jù)和簽名密鑰kds合并為元數(shù)據(jù)文件,通過秘密分享方案將元數(shù)據(jù)文件分為η份不同的元數(shù)據(jù)分片文件;當(dāng)數(shù)據(jù)讀操作時(shí),從η個(gè)云存儲(chǔ)系統(tǒng)中至少下載f個(gè)元數(shù)據(jù)分片文件;再通過秘密分享方案從f個(gè)元數(shù)據(jù)分片文件恢復(fù)元數(shù)據(jù)文件,從其中得到密文元數(shù)據(jù)、冗余編碼元數(shù)據(jù)和簽名密鑰kds ;(4)所述數(shù)字簽名模塊,當(dāng)數(shù)據(jù)寫操作時(shí),對(duì)η塊冗余數(shù)據(jù)塊Cli分別進(jìn)行哈希運(yùn)算,得到η個(gè)哈希值,再使用簽名密鑰kds對(duì)η個(gè)哈希值分別進(jìn)行加密,得到相應(yīng)η個(gè)簽名塊文件Si ;當(dāng)數(shù)據(jù)讀操作時(shí),順序從η個(gè)云存儲(chǔ)系統(tǒng)中下載冗余數(shù)據(jù)塊,每下載一塊冗余數(shù)據(jù)塊,對(duì)其使用簽名密鑰kds進(jìn)行簽名檢查,檢查通過則為有效冗余數(shù)據(jù)塊,否則為無效冗余數(shù)據(jù)塊。所述的安全存儲(chǔ)系統(tǒng),其特征在于:所述加解密模塊中,所述對(duì)稱塊加密算法,為3DES算法、AES算法、IDEA算法或Twofish 算法;所述冗余編碼模塊中,所述冗余編碼或冗余解碼為(k,n)里德-所羅門(Reed-solomon)碼,η為碼元長(zhǎng)度,對(duì)應(yīng)云存儲(chǔ)系統(tǒng)個(gè)數(shù),k為信息元長(zhǎng)度,對(duì)應(yīng)原始數(shù)據(jù)分塊個(gè)數(shù);所述秘密分享模塊中,所述秘密分享方案為Shamir門限方案或Blakley秘密分享方案;所述數(shù)字簽名模塊中,所述哈希運(yùn)算所使用的算法為SHA_1、MD5、MD4、HMAC、RIPEMD或HAVAL消息摘要算法。本發(fā)明對(duì)用戶數(shù)據(jù)進(jìn)行加密、冗余編碼和簽名,保證數(shù)據(jù)的私密、可靠和不可否認(rèn);編碼后的數(shù)據(jù)分布在多個(gè)云存儲(chǔ)系統(tǒng)上,當(dāng)單個(gè)甚至多個(gè)云存儲(chǔ)系統(tǒng)發(fā)生故障或者數(shù)據(jù)丟失時(shí),仍舊保證了數(shù)據(jù)的可訪問和安全性。對(duì)編碼中產(chǎn)生的元數(shù)據(jù)信息使用秘密分享方案編碼,并存儲(chǔ)于多個(gè)云存儲(chǔ)系統(tǒng)中。這樣無論數(shù)據(jù)還是元數(shù)據(jù)都以一種密文形式保存,并且用戶本身并不保存任何元數(shù)據(jù)信息,通過多個(gè)云存儲(chǔ)系統(tǒng)的可靠性存儲(chǔ)保證元數(shù)據(jù)的可靠性,通過秘密分享方案保證元數(shù)據(jù)的安全性,從而達(dá)到數(shù)據(jù)安全、可靠存儲(chǔ)的目的。與現(xiàn)有的技術(shù)相比較,本發(fā)明具有以下優(yōu)點(diǎn):(I)數(shù)據(jù)通過冗余編碼存儲(chǔ)在多個(gè)云存儲(chǔ)系統(tǒng)中,實(shí)現(xiàn)了數(shù)據(jù)的高容錯(cuò)能力,避免了單一云存儲(chǔ)系統(tǒng)的故障導(dǎo)致的數(shù)據(jù)無法訪問。(2)元數(shù)據(jù)通過秘密分享技術(shù)存儲(chǔ)于多個(gè)云存儲(chǔ)系統(tǒng)中,提高了用戶存儲(chǔ)元數(shù)據(jù)的安全性和可靠性,徹底解決了傳統(tǒng)加解密密鑰存儲(chǔ)問題。(3)利用多個(gè)云存儲(chǔ)系統(tǒng)的存儲(chǔ)空間和網(wǎng)絡(luò)帶寬,獲取了更高的數(shù)據(jù)訪問速度和并發(fā)性能。(4)數(shù)據(jù)與元數(shù)據(jù)的分別存儲(chǔ),針對(duì)重要程度不同的數(shù)據(jù)進(jìn)行差別化存儲(chǔ)方法,進(jìn)一步保證了數(shù)據(jù)可靠、安全。
圖1為采用多個(gè)云存儲(chǔ)系統(tǒng)的存儲(chǔ)系統(tǒng)示意圖;圖2為本發(fā)明的實(shí)施例數(shù)據(jù)寫操作步驟流程示意圖;圖3為本發(fā)明的實(shí)施例數(shù)據(jù)讀操作步驟流程示意圖;圖4為本發(fā)明系統(tǒng)的實(shí)施例結(jié)構(gòu)示意圖。
具體實(shí)施例方式以下結(jié)合附圖和實(shí)施例對(duì)本發(fā)明進(jìn)一步說明。本發(fā)明的實(shí)施例用于包括5個(gè)云存儲(chǔ)系統(tǒng)的存儲(chǔ)系統(tǒng),包括數(shù)據(jù)寫操作步驟和數(shù)據(jù)讀操作步驟;數(shù)據(jù)寫操作步驟,如圖2所示,包括下述子步驟:(1.1)數(shù)據(jù)分塊:將長(zhǎng)度64MB的原始數(shù)據(jù)D分割為3塊等大小的原始數(shù)據(jù)塊,每塊原始數(shù)據(jù)塊大小為22MB,不足一塊原始數(shù)據(jù)塊大小的剩余原始數(shù)據(jù)使用零或任意數(shù)據(jù)填充補(bǔ)足為原始數(shù)據(jù)塊大?。籤(1.2)數(shù)據(jù)加密:通過AES算法將3塊原始數(shù)據(jù)塊加密為3塊密文數(shù)據(jù)塊,同時(shí)產(chǎn)生一個(gè)密文元數(shù)據(jù),密文元數(shù)據(jù)包括密鑰0 (427e7b5b2a55747a3b79552e30)、加密初始化向量IV(306b5a7448303e4c5829772f73)和原始數(shù)據(jù)長(zhǎng)度 sd (64MB);(1.3)冗余編碼:對(duì)3塊密文數(shù)據(jù)塊進(jìn)行(3,5)里德-所羅門冗余編碼,形成5塊冗余數(shù)據(jù)塊屯,i=1、…、5;冗余編碼過程產(chǎn)生一個(gè)冗余編碼元數(shù)據(jù),冗余編碼元數(shù)據(jù)包括冗余編碼的生成矩陣G以及各冗余數(shù)據(jù)塊和相應(yīng)云存儲(chǔ)系統(tǒng)的映射關(guān)系Map =Cd1-云存儲(chǔ)系統(tǒng)A、d2-云存儲(chǔ)系統(tǒng)B、d3-云存儲(chǔ)系統(tǒng)C、d4-云存儲(chǔ)D、d5-云存儲(chǔ)系統(tǒng)E);冗余編碼的生成矩陣G如下:.10 0 14.
0 10 12
_0 O I I I..
(1.4)數(shù)字簽名:對(duì)5塊冗余數(shù)據(jù)塊Cli分別進(jìn)行SHA-1消息摘要算法,得到η個(gè)哈希值,再使用簽名密鑰kds (65497c583864473c3f77505928)對(duì)5個(gè)哈希值分別進(jìn)行加密,得到相應(yīng)5個(gè)簽名塊文件Si, i = 1、…、5 ;(1.5)分享處理:將密文元數(shù)據(jù)、冗余編碼元數(shù)據(jù)和簽名密鑰kds合并為元數(shù)據(jù)文件,通過shamir-門限方案將元數(shù)據(jù)文件分為5份不同的元數(shù)據(jù)分片文件;(1.6)數(shù)據(jù)存儲(chǔ):將5塊冗余數(shù)據(jù)塊Cli和5個(gè)簽名塊文件Si按照映射關(guān)系Map分別存儲(chǔ)在5個(gè)云存儲(chǔ)系統(tǒng)中;將5份不同的元數(shù)據(jù)分片文件分別順序存儲(chǔ)于5個(gè)云存儲(chǔ)系統(tǒng)中;數(shù)據(jù)讀操作步驟,如圖3所示,包括下述子步驟:(2.1)解密元數(shù)據(jù)分片文件:從5個(gè)云存儲(chǔ)系統(tǒng)中的云存儲(chǔ)系統(tǒng)A、云存儲(chǔ)系統(tǒng)B、云存儲(chǔ)系統(tǒng)D、云存儲(chǔ)系統(tǒng)E下載4個(gè)元數(shù)據(jù)分片文件;再通過秘密分享方案從4個(gè)元數(shù)據(jù)分片文件恢復(fù)元數(shù)據(jù)文件,從其中得到密文元數(shù)據(jù)、冗余編碼元數(shù)據(jù)和簽名密鑰kds (65497c583864473c3f77505928);(2.2)數(shù)字簽名檢查:順序從5個(gè)云存儲(chǔ)系統(tǒng)中下載冗余數(shù)據(jù)塊,每下載一塊冗余數(shù)據(jù)塊,對(duì)其使用簽名密鑰kds (65497c583864473c3f77505928)和簽名塊文件Si進(jìn)行簽名檢查,檢查通過則為有效冗余數(shù)據(jù)塊,否則為無效冗余數(shù)據(jù)塊,本實(shí)施例中,有效冗余數(shù)據(jù)塊達(dá)到3塊,停止下載,進(jìn)行子步驟(2.3);(2.3)冗余解碼:利用冗余編碼元數(shù)據(jù)對(duì)3塊冗余數(shù)據(jù)塊解碼,得到3塊密文數(shù)據(jù)塊;(2.4)解密密文數(shù)據(jù)塊:通過密文元數(shù)據(jù)中的密鑰kd(427e7b5b2a55747a3b79552e30),解密各個(gè)密文數(shù)據(jù)塊,得到3塊原始數(shù)據(jù)塊,合并各個(gè)原始數(shù)據(jù)塊,合并后原始數(shù)據(jù)塊長(zhǎng)度為66MB,根據(jù)密文元數(shù)據(jù)中的原始數(shù)據(jù)長(zhǎng)度sd (64MB),將合并后的原始數(shù)據(jù)塊多于64MB部分裁剪掉,得到原始數(shù)據(jù)。
權(quán)利要求
1.一種基于多個(gè)云存儲(chǔ)系統(tǒng)的安全存儲(chǔ)方法,包括數(shù)據(jù)寫操作步驟和數(shù)據(jù)讀操作步驟,其特征在于: (1)數(shù)據(jù)寫操作步驟,包括下述子步驟: (1.1)數(shù)據(jù)分塊: 將原始數(shù)據(jù)D分割為k塊等大小的原始數(shù)據(jù)塊,不足一塊原始數(shù)據(jù)塊大小的剩余原始數(shù)據(jù)使用零或任意數(shù)據(jù)填充補(bǔ)足為原始數(shù)據(jù)塊大??;k〈n,云存儲(chǔ)系統(tǒng)的個(gè)數(shù)η > 3 ; (1.2)數(shù)據(jù)加密: 通過對(duì)稱塊加密算法將k塊原始數(shù)據(jù)塊加密為k塊密文數(shù)據(jù)塊,同時(shí)產(chǎn)生一個(gè)密文元數(shù)據(jù),密文元數(shù)據(jù)包括密鑰kd、加密初始化向量IV和原始數(shù)據(jù)D的長(zhǎng)度Sd ; (1.3)冗余編碼: 對(duì)k塊密文數(shù)據(jù)塊進(jìn)行冗余編碼,形成η塊冗余數(shù)據(jù)塊Cli, i = 1、…、η;冗余編碼過程產(chǎn)生一個(gè)冗余編碼元數(shù)據(jù),冗余編碼元數(shù)據(jù)包括冗余編碼的生成矩陣G以及各冗余數(shù)據(jù)塊和相應(yīng)云存儲(chǔ)系統(tǒng)的映射關(guān)系Map ; (1.4)數(shù)字簽名: 對(duì)η塊冗余數(shù)據(jù)塊Cli分別進(jìn)行哈希運(yùn)算,得到η個(gè)哈希值,再使用簽名密鑰kds對(duì)η個(gè)哈希值分別進(jìn)行加密,相應(yīng)得到η個(gè)簽名塊文件Si ; (1.5)分享處理: 將密文元數(shù)據(jù)、冗余編碼元數(shù)據(jù)、η個(gè)簽名塊文件Si和簽名密鑰kds合并為元數(shù)據(jù)文件,通過秘密分享方案將元數(shù)據(jù) 文件分為η份不同的元數(shù)據(jù)分片文件;秘密分享方案保證根據(jù)η份元數(shù)據(jù)分片文件中任意不少于f份元數(shù)據(jù)分片文件可以恢復(fù)出元數(shù)據(jù)文件,少于f份元數(shù)據(jù)分片文件則得不到元數(shù)據(jù)的任何信息,2 < f < η ; (1.6)數(shù)據(jù)存儲(chǔ): 將η塊冗余數(shù)據(jù)塊Cli和η個(gè)簽名塊文件Si按照映射關(guān)系Map分別存儲(chǔ)在η個(gè)云存儲(chǔ)系統(tǒng)中; 將η份不同的元數(shù)據(jù)分片文件分別順序存儲(chǔ)于η個(gè)云存儲(chǔ)系統(tǒng)中; (2)數(shù)據(jù)讀操作步驟,包括下述子步驟: (2.1)解密元數(shù)據(jù)分片文件: 從η個(gè)云存儲(chǔ)系統(tǒng)中至少下載f個(gè)元數(shù)據(jù)分片文件;再通過秘密分享方案從f個(gè)元數(shù)據(jù)分片文件恢復(fù)元數(shù)據(jù)文件,從其中得到密文元數(shù)據(jù)、冗余編碼元數(shù)據(jù)和簽名密鑰kds ; (2.2)數(shù)字簽名檢查: 順序從η個(gè)云存儲(chǔ)系統(tǒng)中下載冗余數(shù)據(jù)塊屯,每下載一塊冗余數(shù)據(jù)塊,對(duì)其使用簽名密鑰kds和簽名塊文件Si進(jìn)行簽名檢查,檢查通過則為有效冗余數(shù)據(jù)塊,否則為無效冗余數(shù)據(jù)塊,當(dāng)有效冗余數(shù)據(jù)塊達(dá)到k塊時(shí),停止下載,進(jìn)行子步驟(2.3);如果η塊冗余數(shù)據(jù)塊全部下載,有效冗余數(shù)據(jù)塊仍少于k塊,則認(rèn)為數(shù)據(jù)被永久性損壞而無法恢復(fù); (2.3)冗余解碼: 利用冗余編碼元數(shù)據(jù)對(duì)k塊冗余數(shù)據(jù)塊解碼,得到k塊密文數(shù)據(jù)塊; (2.4)解密密文數(shù)據(jù)塊: 通過密文元數(shù)據(jù)中的密鑰kd,解密各個(gè)密文數(shù)據(jù)塊,得到k塊原始數(shù)據(jù)塊,合并各個(gè)原始數(shù)據(jù)塊,根據(jù)密文元數(shù)據(jù)中的原始數(shù)據(jù)長(zhǎng)度sd,將合并后的原始數(shù)據(jù)塊裁剪為原始數(shù)據(jù)。
2.如權(quán)利要求1所述的安全存儲(chǔ)方法,其特征在于: 所述子步驟(1.2)中,所述對(duì)稱塊加密算法,為3DES算法、AES算法、IDEA算法或Twofish 算法; 所述子步驟(1.3)和子步驟(2.3)中,所述冗余編碼或冗余解碼為(n,k)里德-所羅門(Reed-solomon)碼,η為碼元長(zhǎng)度,對(duì)應(yīng)云存儲(chǔ)系統(tǒng)個(gè)數(shù),k為信息元長(zhǎng)度,對(duì)應(yīng)原始數(shù)據(jù)分塊個(gè)數(shù); 所述子步驟(1.4)中,所述哈希運(yùn)算所使用的算法為SHA-1、MD5、MD4、HMAC、RIPEMD或HAVAL消息摘要算法; 所述子步驟(1.5)和子步驟(2.1)中,所述秘密分享方案為Shamir門限方案或Blakley秘密分享方案。
3.一種基于多個(gè)云存儲(chǔ)系統(tǒng)的安全存儲(chǔ)系統(tǒng),包括加解密編碼模塊、冗余編碼模塊、秘密分享模塊和數(shù)字簽名模塊四個(gè)模塊,其特征在于: (1)所述加解密模塊,當(dāng)數(shù)據(jù)寫操作時(shí),將原始數(shù)據(jù)D分割為k塊等大小的原始數(shù)據(jù)塊,不足一塊原始數(shù)據(jù)塊大小的剩余原始數(shù)據(jù)使用零或任意數(shù)據(jù)填充補(bǔ)足為原始數(shù)據(jù)塊大小;k〈n,n ^ 3,為云存儲(chǔ)系統(tǒng)的個(gè)數(shù);再通過對(duì)稱塊加密算法將k塊原始數(shù)據(jù)塊加密為k塊密文數(shù)據(jù)塊,同時(shí)產(chǎn)生一個(gè)密文元數(shù)據(jù),密文元數(shù)據(jù)包括密鑰kd、加密初始化向量IV和原始數(shù)據(jù)長(zhǎng)度Sd ; 當(dāng)數(shù)據(jù)讀操作時(shí),通過密文元數(shù)據(jù)中的密鑰kd,解密各個(gè)密文數(shù)據(jù)塊,得到k塊原始數(shù)據(jù)塊,合并各個(gè)原始數(shù)據(jù)塊,根據(jù)密文元數(shù)據(jù)中的原始數(shù)據(jù)長(zhǎng)度Sd,將合并后的原始數(shù)據(jù)塊裁剪為原始數(shù)據(jù); (2)所述冗余編碼模塊,當(dāng)數(shù)據(jù)寫操作時(shí),對(duì)k塊密文數(shù)據(jù)塊進(jìn)行冗余編碼,形成η塊冗余數(shù)據(jù)塊Φ,i = 1、…、η ;冗余編碼過程產(chǎn)生一個(gè)冗余編碼元數(shù)據(jù),冗余編碼元數(shù)據(jù)包括冗余編碼的生成矩陣G以及各冗余數(shù)據(jù)塊和相應(yīng)云存儲(chǔ)系統(tǒng)的映射關(guān)系Map ; 當(dāng)數(shù)據(jù)讀操作時(shí),從η個(gè)云存儲(chǔ)系統(tǒng)中下載至少k塊有效冗余數(shù)據(jù)塊,利用冗余編碼元數(shù)據(jù)對(duì)k塊有效冗余數(shù)據(jù)塊解碼,得到密文數(shù)據(jù)塊; (3)所述秘密分享模塊,當(dāng)數(shù)據(jù)寫操作時(shí),將密文元數(shù)據(jù)、冗余編碼元數(shù)據(jù)和簽名密鑰kds合并為元數(shù)據(jù)文件,通過秘密分享方案將元數(shù)據(jù)文件分為η份不同的元數(shù)據(jù)分片文件; 當(dāng)數(shù)據(jù)讀操作時(shí),從η個(gè)云存儲(chǔ)系統(tǒng)中至少下載f個(gè)元數(shù)據(jù)分片文件;再通過秘密分享方案從f個(gè)元數(shù)據(jù)分片文件恢復(fù)元數(shù)據(jù)文件,從其中得到密文元數(shù)據(jù)、冗余編碼元數(shù)據(jù)和簽名密鑰kds ; (4)所述數(shù)字簽名模塊,當(dāng)數(shù)據(jù)寫操作時(shí),對(duì)η塊冗余數(shù)據(jù)塊Cli分別進(jìn)行哈希運(yùn)算,得到η個(gè)哈希值,再使用簽名密鑰kds對(duì)η個(gè)哈希值分別進(jìn)行加密,得到相應(yīng)η個(gè)簽名塊文件Si ; 當(dāng)數(shù)據(jù)讀操作時(shí),順序從η個(gè)云存儲(chǔ)系統(tǒng)中下載冗余數(shù)據(jù)塊,每下載一塊冗余數(shù)據(jù)塊,對(duì)其使用簽名密鑰kds進(jìn)行簽名檢查,檢查通過則為有效冗余數(shù)據(jù)塊,否則為無效冗余數(shù)據(jù)塊。
4.如權(quán)利要求3所述的安全存儲(chǔ)系統(tǒng),其特征在于: 所述加解密模塊中,所述對(duì)稱塊加密算法,為3DES算法、AES算法、IDEA算法或Twofish算法;所述冗余編碼模塊中,所述冗余編碼或冗余解碼為(k,η)里德-所羅門(Reed-solomon)碼,η為碼元長(zhǎng)度,對(duì)應(yīng)云存儲(chǔ)系統(tǒng)個(gè)數(shù),k為信息元長(zhǎng)度,對(duì)應(yīng)原始數(shù)據(jù)分塊個(gè)數(shù); 所述秘密分享模塊中,所述秘密分享方案為Shamir門限方案或Blakley秘密分享方 案; 所述數(shù)字簽名模塊中,所述哈希運(yùn)算所使用的算法為SHA-1、MD5、MD4、HMAC、RIPEMD或HAVAL消息摘要算法。
全文摘要
一種基于多個(gè)云存儲(chǔ)系統(tǒng)的安全存儲(chǔ)方法及其系統(tǒng),本發(fā)明屬于計(jì)算機(jī)存儲(chǔ)技術(shù)領(lǐng)域,解決現(xiàn)有多個(gè)云存儲(chǔ)系統(tǒng)中同時(shí)保證數(shù)據(jù)和元數(shù)據(jù)安全性的問題。本發(fā)明的安全存儲(chǔ)方法,包括數(shù)據(jù)寫操作步驟和數(shù)據(jù)讀操作步驟,數(shù)據(jù)寫操作步驟包括數(shù)據(jù)分塊、數(shù)據(jù)加密、冗余編碼、數(shù)字簽名、分享處理及數(shù)據(jù)存儲(chǔ)子步驟;數(shù)據(jù)讀操作步驟包括解密元數(shù)據(jù)分片文件、數(shù)字簽名檢查、冗余解碼及解密密文數(shù)據(jù)塊子步驟。本發(fā)明的安全存儲(chǔ)系統(tǒng),包括加解密編碼模塊、冗余編碼模塊、秘密分享模塊和數(shù)字簽名模塊。本發(fā)明保證數(shù)據(jù)和元數(shù)據(jù)私密、高可用的同時(shí),用戶本身不用保存任何元數(shù)據(jù)信息用于索引、查詢數(shù)據(jù)。
文檔編號(hào)H04L29/08GK103118089SQ201310025978
公開日2013年5月22日 申請(qǐng)日期2013年1月22日 優(yōu)先權(quán)日2013年1月22日
發(fā)明者馮丹, 柳青, 施展, 焦田豐, 李勇, 李寧 申請(qǐng)人:華中科技大學(xué)