基于rs糾刪碼的安全存儲方法和裝置的制造方法
【技術領域】
[0001] 本發明涉及計算機存儲和安全技術領域,特別涉及一種基于RS糾刪碼的安全存 儲方法和裝置。
【背景技術】
[0002]IT技術的迅猛發展,導致全球數據量猛增,帶動了整個存儲市場的快速發展,使得 云存儲技術正在大規模應用。云存儲是指通過集群應用、網格技術或分布式文件系統等功 能,將網絡中大量各種不同類型的存儲設備通過應用軟件集合起來協同工作,共同對外提 供數據存儲和業務訪問功能的一個系統。在云計算環境中,文件一般被分片保存在多個存 儲服務器中,個別存儲節點或者磁盤損壞,不會影響數據的完整性。
[0003] 最近幾年,各類智能移動終端如智能手機、平板電腦、智能家電等得到了長足的發 展。但此類移動介質由于體積有限,不可能無限制增加存儲設備,存儲總容量必然受限。為 了在移動介質中保存更多的圖片、視頻、短彩信、通訊錄等資料或者為數據做備份,它們都 普遍支持云上傳功能,將送些數據上傳到云端保存。
[0004] 對于移動終端個人用戶,使用云上傳功能的一個主要擔必就是數據安全性和隱私 性。前者主要擔必存放的數據可能由于各種原因被丟失、損壞;后者主要是擔必用戶數據被 非法竊取、復制從而泄露秘密或隱私。云存儲平臺采用多副本或者糾刪碼巧rasureCodes, 簡稱EC)技術,可W解決數據安全性問題。但對于隱私性,則面臨各種不同類型的威脅,如; 數據上傳到云存儲系統或者從云存儲系統下載時,在網絡上被竊聽;不懷好意的管理員偷 窺、復制云空間上的用戶數據;其它用戶或者黑客入侵系統非法訪問用戶數據;存儲服務 器或者磁盤等硬件被盜,或者由于云服務商的誤用或過失,導致用戶數據泄露。因此,為了 在移動終端上更加安全的使用云,解決用戶隱私泄露的后顧之憂,必須提供一種安全存儲 機制,從源頭上解決送些問題。
[0005] 1960年,里德(I.S.Reed)和所羅口(G.Solomon)提出一種構造糾刪碼的方法,使 用該方法的糾刪碼被稱作Reed-Solomon碼,簡稱RS碼。基于RS編碼技術構造的糾刪碼則 稱作RS糾刪碼。一個(n,k)糾刪碼是把k個源數據編碼為n(n〉k)個數據,使得用送n個 數據中任意k個數據均可重構原來的k個源數據。采用m個數據分片和n個校驗分片的糾 刪碼體制就是(m+n,m)糾刪碼。RS糾刪碼的實現技術關鍵是尋找一個生成矩陣G,該矩陣 中任意k列均線性無關。RS編碼技術中,比較常用的生成矩陣是范德蒙德矩陣和柯西矩陣。 使用范德蒙德矩陣生成的編碼叫范德蒙德碼(VandermondCode),使用柯西矩陣生成的編 碼叫柯西碼(CauchyCode)。
[0006] 編碼原理是;原始數據D扣1,D2,. .Dm]乘W生成矩陣G,產生m個原始數據0巧1, D2,..Dm]和n個校驗數據P[P1,P2,…,化]。
[0007] 解碼原理是;在m+n個原始數據和校驗數據中任意獲得m個數據,組成待解碼數據 D',例如巧1,一Di,Pl..門]。在生成矩陣中去掉n個未出現數據對應的郝一列,組成一個 新的生成矩陣G,然后計算G的逆矩陣G',最后D' *G' =D。為了使矩陣運算的結果保持在 實數域,運算改為限定在伽羅瓦(Galois)域G(2~8)或者G(2~16)進行。RS和伽羅瓦域運 算、矩陣求逆等的具體運算流程和特性,早已被研究透徹,在相關數學書籍和公開刊物上可 W查到,因此本發明不再賞述。
[000引 目前的云存儲系統,為了解決可靠性的問題,一般采用多副本或者EC技術。其中 EC技術,將文件編碼后,分為大小相同的m個數據分片和n個校驗分片,分別存儲到m+n個 獨立的節點或者磁盤上。讀取文件時,只要獲得其中任意m個分片,即可通過解碼恢復原文 件或者數據,因此可W抗n個分片損壞或者丟失,因此糾刪碼通過計算能力換取存儲能力, 顯著降低了存儲成本和運維成本。
【發明內容】
[0009] 針對現有技術的上述缺陷,本發明所要解決的技術問題是如何實現在用戶使用云 存儲時通過使用RS糾刪碼,確保用戶數據在上傳、存儲、下載時,即使數據被竊聽竊取,也 無法解碼獲取原有數據信息,從而保證用戶的數據隱私。
[0010] 為實現上述目的,一方面,本發明提供一種基于RS糾刪碼的安全存儲方法,所述 方法包括步驟:
[0011]步驟Si、在本地客戶端執行編碼時,根據編碼文件和/或數據選取第一文件和/或 數據作為解密密鑰存放在本地,將編碼文件和/或數據中的第二文件和/或數據上傳至云 存儲空間保存;
[0012] 步驟S2、本地存放文件元數據信息中通過采用范德蒙德矩陣或柯西矩陣獲得的第 一生成矩陣對應的逆矩陣數據。
[0013] 優選地,所述方法還包括步驟S3、將編碼后的文件和/或數據下載到本地客戶端, 按照編碼的倒序進行解碼,通過保存在本地客戶端的所述解密密鑰和文件元數據信息中的 通過采用范德蒙德矩陣或柯西矩陣獲得的第一生成矩陣對應的逆矩陣數據,獲取原文件和 /或數據。
[0014] 優選地,所述方法中步驟Sl具體包括:
[0015] 本地客戶端執行編碼完成后,選取編碼文件和/或數據中的一片文件和/或數據 作為解密密鑰存放在本地客戶端,將編碼文件和/或數據中的剩余文件和/或數據上傳至 云存儲空間保存。
[0016] 優選地,所述方法中步驟Sl還包括:
[0017] 當編碼文件和/或數據數量多時,則采用多級編碼方式,對第一次編碼產生的解 密密鑰再次進行編碼;
[0018] 將再次編碼后的編碼文件和/或數據中的一片文件和/或數據保存在本地客戶 端,將再次編碼后的編碼文件和/或數據中的剩余文件和/或數據上傳至云存儲空間保存。
[0019] 優選地,所述方法中步驟S2具體包括:
[0020] 從云存儲空間中下載保存的剩余文件和/或數據,在本地客戶端中獲得解密密鑰 和逆矩陣數據,當采用多級編碼方式編碼時,則按照倒序進行多次解碼;
[0021] 通過RS糾刪碼計算出所有的原數據,根據保存在本地客戶端的解密密鑰和文件 元數據信息中的逆矩陣數據,獲取原文件和/或數據。
[0022] 優選地,所述方法中步驟Sl具體包括:
[0023] 在本地客戶端編碼文件和/或數據時,對每個編碼文件和/或數據生成一個固定 長度的隨機字符串作為解密密鑰保存在本地客戶端,將編碼文件中的剩余文件和/或數據 上傳至云存儲空間保存。
[0024] 優選地,所述方法中步驟S1還包括:
[00巧]當編碼文件和/或數據長度大于解密密鑰長度時,則循環使用解密密鑰,從頭至 尾使用隨機字符串的內容作為解密密鑰參與編碼。
[0026] 優選地,所述方法中步驟S2具體包括:
[0027] 從云存儲空間中下載保存的剩余文件和/或數據,在本地客戶端中獲得解密密鑰 和逆矩陣數據,當解碼文件和/或數據較長時,從頭至尾循環使用解密密鑰中的內容作為 編碼數據;
[0028] 通過RS糾刪碼計算出所有的原數據,根據保存在本地客戶端的解密密鑰和文件 元數據信息中的逆矩陣數據,獲取原文件和/或數據。
[0029] 另一方面,本發明還同時提供一種基于RS糾刪碼的安全存儲裝置,所述裝置包 括:
[0030] 編碼單元,用于在本地客戶端執行編碼時,根據編碼文件和/或數據選取第一文 件和/或數據作為解密密鑰存放在本地,將編碼文件和/或數據中的第二文件和/或數據 上傳至云存儲空間保存;
[0031] 解碼單元,用于將編碼后的文件和/或數據下載到本地客戶端,按照編碼的倒序 進行解碼,通過保存在本地客戶端的所述解密密鑰和文件元數據信息中的逆矩陣數據,獲 取原文件和/或數據。
[0032] 優選地,所述編碼單元具體包括:
[0033] 第一編碼子單元,用于當編碼文件和/或數據較大時,則采用多級編碼方式,對第 一次編碼產生的解密密鑰再次進行編碼;
[0034] 第一保存單元,用于將再次編碼后的編碼文件和/或數據中的一片文件和/或數 據保存在本地客戶端,將再次編碼后的編碼文件和/或數據中的剩余文件和/或數據上傳 至云存儲空間保存。
[0035] 優選地,所述解碼單元具體包括:
[0036] 第一解碼子單元,用于從云存儲空間中下載保存的剩余文件和/或數據,在本地 客戶端中獲得解密密鑰和逆矩陣數據,當采用多級編碼方式編碼時,則按照倒序進行多次 解碼;
[0037] 第一獲取單元,用于通過RS糾刪碼計算出所有的原數據,根據保存在本地客戶端 的解密密鑰和文件元數據信息中的逆矩陣數據,獲取原文件和/或數據。
[0038] 優選地,所述編碼單元具體包括:
[0039] 第二編碼子單元,在本地客戶端編碼文件和/或數據時,對每個編碼文件和/或數 據生成一個固定長度的隨機字符串作為解密密鑰;
[0040] 第二保存單元,用于將解密密鑰保存在本地客戶端,將編碼文件中的剩余文件和/ 或數據上傳至云存儲空間保存。
[0041] 優選地,所述解碼單元具體包括:
[0042] 第二解碼子單元,用于從云存儲空間