一種基于多網(wǎng)盤的文件加密存儲(chǔ)系統(tǒng)及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于計(jì)算機(jī)領(lǐng)域,主要關(guān)注提高基于多網(wǎng)盤的文件加密存儲(chǔ)且可高效率訪問的裝置系統(tǒng)和方法。
【背景技術(shù)】
[0002]在公有存儲(chǔ)云情況下,基于多網(wǎng)盤的文件存儲(chǔ)能夠有效防止公有存儲(chǔ)云的服務(wù)商對(duì)用戶文件的非法訪問,特別是通過對(duì)文件加密存儲(chǔ)后進(jìn)一步防止了公有存儲(chǔ)云的服務(wù)商對(duì)用戶文件的潛在侵權(quán)問題。目前已有的解決方案是用戶將文件進(jìn)行整體加密后存儲(chǔ)到不同的網(wǎng)盤上,這種方案的缺點(diǎn)是:即便用戶只想讀取該文件的部分內(nèi)容,也需要用戶將整個(gè)加密文件從網(wǎng)盤上下載到本地,然后再解密整個(gè)文件,最后讀取該文件的指定部分內(nèi)容,這種解決方案下對(duì)文件的訪問效率極低,因?yàn)橛脩舨坏貌幌螺d整個(gè)文件。
【發(fā)明內(nèi)容】
[0003]本發(fā)明目的是解決現(xiàn)有公有存儲(chǔ)云解決方案下對(duì)文件的訪問效率極低的問題,提供一種基于多網(wǎng)盤的文件加密存儲(chǔ)且可高效率訪問的裝置系統(tǒng)和方法。本發(fā)明針對(duì)文件進(jìn)行分塊加密并存放到不同網(wǎng)盤上,這樣既提高了用戶文件的保密性,也提高了用戶訪問加密文件的訪問效率。
[0004]本發(fā)明給出的基于多網(wǎng)盤的文件加密存儲(chǔ)系統(tǒng)至少由一個(gè)或多個(gè)網(wǎng)盤以及“文件加密”裝置組成;本發(fā)明給出的基于多網(wǎng)盤的文件加密存儲(chǔ)方法,采用對(duì)文件先分塊再各塊獨(dú)自加密,再上傳到多個(gè)網(wǎng)盤的方法。
[0005]本發(fā)明技術(shù)方案
[0006]1.—種基于多網(wǎng)盤的文件加密存儲(chǔ)系統(tǒng),所述系統(tǒng)包括“網(wǎng)盤”裝置和“文件加密”裝置,二者通過網(wǎng)絡(luò)互聯(lián);“網(wǎng)盤”裝置,主要是用來存儲(chǔ)文件數(shù)據(jù),“網(wǎng)盤”裝置包括各種公有云中的網(wǎng)盤、私有云中的網(wǎng)盤、以及其它能夠提供文件存取服務(wù)的文件服務(wù)器;“文件加密”裝置,主要是用來存儲(chǔ)管理文件元數(shù)據(jù)以及加密文件的透明訪問,即實(shí)現(xiàn)對(duì)文件數(shù)據(jù)分塊、數(shù)據(jù)塊加解密、數(shù)據(jù)塊上傳下載、以及文件數(shù)據(jù)塊的合成功能,主要包括“文件訪問接口”模塊、“文件塊分解與合成”模塊、“文件塊索引”模塊、“文件塊加密解密”模塊、“文件塊發(fā)送接收”模塊、“網(wǎng)盤訪問”模塊以及“本地存儲(chǔ)介質(zhì)”模塊;
[0007]其中,
[0008]“文件訪問接口”模塊,負(fù)責(zé)完成調(diào)用者的文件訪問操作,包括將調(diào)用者的文件訪問操作所要訪問文件區(qū)域轉(zhuǎn)化為“文件塊”編號(hào)序列,將調(diào)用者寫訪問文件區(qū)域的新數(shù)據(jù)合并到所屬文件中,以及將調(diào)用者讀訪問文件區(qū)域從所屬文件中讀取到調(diào)用者指定空間;
[0009]“文件塊分解與合成”模塊,負(fù)責(zé)對(duì)指定的文件進(jìn)行“文件塊”的分解,以及將“文件±夬”合成為文件的功能;
[0010]“文件塊索引”模塊,負(fù)責(zé)對(duì)“文件”概要信息、“文件塊”概要信息的進(jìn)行維護(hù)管理,以及待訪問文件區(qū)域與“文件塊”的對(duì)應(yīng)關(guān)系之間的檢索;[0011 ] “文件塊加密解密”模塊,負(fù)責(zé)文件塊的密鑰產(chǎn)生以及針對(duì)“文件塊”的加密和解密操作;
[0012]“文件塊發(fā)送接收”模塊,負(fù)責(zé)對(duì)“加密文件數(shù)據(jù)塊”上傳到指定“網(wǎng)盤路徑”,以及將“加密文件數(shù)據(jù)塊”從指定“網(wǎng)盤路徑”下載到本地存儲(chǔ)介質(zhì)中;“文件塊發(fā)送接收”模塊直接通過“網(wǎng)盤訪問”模塊實(shí)現(xiàn)所述功能;
[0013]“網(wǎng)盤訪問”模塊,包括“網(wǎng)盤訪問統(tǒng)一接口驅(qū)動(dòng)”模塊和“網(wǎng)盤驅(qū)動(dòng)”模塊;“網(wǎng)盤訪問統(tǒng)一接口驅(qū)動(dòng)”模塊負(fù)責(zé)將不同類型的網(wǎng)盤訪問接口統(tǒng)一為相同的接口方式;“網(wǎng)盤驅(qū)動(dòng)”模塊負(fù)責(zé)針對(duì)特定“網(wǎng)盤”裝置的訪問;不同類型的“網(wǎng)盤”裝置有不同的“網(wǎng)盤驅(qū)動(dòng)”模塊,“網(wǎng)盤訪問統(tǒng)一接口驅(qū)動(dòng)”模塊將根據(jù)所要訪問的網(wǎng)盤類型來調(diào)用不同的“網(wǎng)盤驅(qū)動(dòng)”模塊;
[0014]“本地存儲(chǔ)介質(zhì)”模塊,包括系統(tǒng)配置信息庫(kù)、文件概要信息庫(kù)、文件塊概要信息庫(kù)、文件塊的本地存儲(chǔ)池以及臨時(shí)存儲(chǔ)空間;系統(tǒng)配置信息庫(kù)包括系統(tǒng)總?cè)萘?、“文件塊”長(zhǎng)度策略、默認(rèn)“文件塊”長(zhǎng)度和“網(wǎng)盤信息”列表,其中“網(wǎng)盤信息”包括網(wǎng)盤名稱、網(wǎng)盤用戶名、網(wǎng)盤訪問口令、網(wǎng)盤網(wǎng)絡(luò)地址、網(wǎng)盤用戶根目錄路徑以及網(wǎng)盤容量限制;文件概要信息庫(kù)包含所有文件的“文件”概要信息;每個(gè)“文件”概要信息包括文件名、文件編號(hào)、文件長(zhǎng)度、“文件塊”長(zhǎng)度策略、默認(rèn)“文件塊”長(zhǎng)度以及“文件塊”數(shù)目;文件塊概要信息庫(kù)包括所有文件的所有“文件塊”概要信息;每個(gè)“文件塊”概要信息包括“文件塊”基本信息和“文件塊”詳細(xì)信息,“文件塊”基本信息包括該“文件塊”的編號(hào)、“文件塊”所屬文件編號(hào)、“文件塊”的文件偏移量、“文件塊”長(zhǎng)度、“文件塊”狀態(tài);“文件塊”狀態(tài)包括未下載、未解密、已解密、已修改、已上傳;“文件塊”詳細(xì)信息包括該“文件塊”的編號(hào)、“文件塊”所屬文件編號(hào)、“文件±夬”的“網(wǎng)盤路徑”、“本地路徑”和“文件塊”密鑰;“文件塊”密鑰包括加密算法和密鑰值;
[0015]“文件訪問接口”模塊直接調(diào)用“文件塊索引”模塊來完成將調(diào)用者的文件訪問操作所要訪問文件區(qū)域轉(zhuǎn)化為“文件塊”編號(hào)序列;“文件訪問接口 ”模塊直接調(diào)用“文件塊分解與合成”模塊來完成指定“文件塊”的讀操作或者寫操作;“文件塊分解與合成”模塊直接調(diào)用“文件塊索引”模塊來完成查詢指定“文件塊”的“文件塊”文件偏移量和“文件塊”長(zhǎng)度;“文件塊分解與合成”模塊直接調(diào)用“文件塊加密解密”模塊來完成“文件塊”的加密和解密;“文件塊分解與合成”模塊直接調(diào)用“文件塊發(fā)送接收”模塊來完成“文件塊”數(shù)據(jù)在本地存儲(chǔ)與網(wǎng)盤之間的上傳下載,而“文件塊發(fā)送接收”模塊直接調(diào)用“網(wǎng)盤訪問”模塊來完成“文件塊”數(shù)據(jù)的網(wǎng)絡(luò)傳輸;上述模塊所涉及的整個(gè)系統(tǒng)以及文件元的信息都存儲(chǔ)在“本地存儲(chǔ)介質(zhì)”模塊,已下載的“文件塊”以及被操作處理的“文件塊”可存儲(chǔ)在“本地存儲(chǔ)介質(zhì)”模塊中的文件塊本地存儲(chǔ)池,上述模塊操作處理中產(chǎn)生的中間數(shù)據(jù)也可存儲(chǔ)在“本地存儲(chǔ)介質(zhì)”模塊中的臨時(shí)存儲(chǔ)空間。
[0016]所述的文件,文件的數(shù)據(jù)內(nèi)容以“文件塊”為最小單位存儲(chǔ)在多個(gè)“網(wǎng)盤”裝置中,文件的元信息即“文件”概要信息和“文件塊”概要信息存儲(chǔ)在“文件加密”裝置;同一個(gè)文件的不同“文件塊”既可以存儲(chǔ)在同一個(gè)“網(wǎng)盤”裝置中,也可以存儲(chǔ)在不同的“網(wǎng)盤”裝置中;“文件塊”長(zhǎng)度既可以是固定長(zhǎng)度,也可以是變長(zhǎng)長(zhǎng)度,“文件塊”長(zhǎng)度由“文件塊”長(zhǎng)度策略決定;一個(gè)文件所包含的所有“文件塊”長(zhǎng)度由該文件的“文件塊”概要信息給出;“文件塊”長(zhǎng)度策略由包含在系統(tǒng)配置信息和“文件”概要信息的“文件塊”長(zhǎng)度策略依次決定,“文件±夬”長(zhǎng)度策略包括全局固定長(zhǎng)度、全局變長(zhǎng)長(zhǎng)度、文件固定長(zhǎng)度、文件變長(zhǎng)長(zhǎng)度和自定義長(zhǎng)度策略。
[0017]所述的“文件塊”長(zhǎng)度,每個(gè)“文件塊”長(zhǎng)度的具體值由“網(wǎng)盤存儲(chǔ)分配算法”根據(jù)多級(jí)“文件塊”長(zhǎng)度策略來產(chǎn)生;針對(duì)全局變長(zhǎng)長(zhǎng)度策略和文件變長(zhǎng)長(zhǎng)度策略,“網(wǎng)盤存儲(chǔ)分配算法”按照文件的邏輯內(nèi)容結(jié)構(gòu)來進(jìn)行“文件塊”的劃分;文件的長(zhǎng)度、每個(gè)“文件塊”的文件偏移量以及“文件塊”長(zhǎng)度最終更新到對(duì)應(yīng)的“文件”概要信息和“文件塊”概要信息中。
[0018]所述的“網(wǎng)盤存儲(chǔ)分配算法”,“網(wǎng)盤存儲(chǔ)分配算法”主要負(fù)責(zé)根據(jù)“文件塊”長(zhǎng)度策略和“網(wǎng)盤信息”列表針對(duì)指定文件給出一整套“網(wǎng)盤文件塊存儲(chǔ)規(guī)劃”,包括“文件塊”劃分方案、每個(gè)“文件塊”的密鑰信息、以及每個(gè)“文件塊”數(shù)據(jù)的“網(wǎng)盤路徑”;“文件塊”劃分方案包括“文件塊”的文件偏移量和“文件塊”長(zhǎng)度。
[0019]所述“文件塊”的密鑰信息,“文件塊”的密鑰信息既可以是對(duì)稱密鑰,也可以是非對(duì)稱密鑰;同一個(gè)文件的不同“文件塊”的密鑰信息既可以是相同的,也可以是不同的;“文件塊”的密鑰信息持久存儲(chǔ)在“文件塊”概要信息中。
[0020]2.—種基于上述多網(wǎng)盤的文件加密存儲(chǔ)系統(tǒng)的讀方法,所述方法包括具體步驟如下:
[0021]第1、“文件訪問接口”模塊獲取調(diào)用者“讀操作請(qǐng)求”文件的所要讀操作區(qū)域,即讀操作的文件偏移量和長(zhǎng)度;
[0022]第2、“文件訪問接口”模塊獲取系統(tǒng)配置信息;
[0023]第3、“文件訪問接口”模塊調(diào)用“文件塊索引”模塊將第I步中讀操作區(qū)域轉(zhuǎn)化為所要讀的“文件塊”編號(hào)序列,具體步驟如下:
[0024]第3.1、“文件塊索引”模塊獲取第I步中文件的“文件”概要信息;
[0025]第3.2、“文件塊索引”模塊獲取第I步中文件的“文件塊”基本信息列表;
[0026]第3.3、“文件塊索引”模塊根據(jù)第I步中讀操作區(qū)域以及第3.2步中“文件塊”基本信息列表,計(jì)算出第I步中的讀操作區(qū)域所對(duì)應(yīng)的“文件塊”編號(hào)序列;
[0027]第4、“文件塊索引”模塊獲取第3.3步中“文件塊”編號(hào)序列所對(duì)應(yīng)的“文件塊”詳細(xì)信息列表;
[0028]第5、“文件訪問接口”模塊調(diào)用“文件塊分解與合成”模塊,“文件塊分解與合成”模塊針對(duì)第4步中的“文件塊”詳細(xì)信息列表,“文件塊分解與合成”模塊進(jìn)一步調(diào)用“文件塊發(fā)送接收”模塊下載所對(duì)應(yīng)的已“加密文件數(shù)據(jù)塊”序列;若全部下載成功則執(zhí)行第6步,否則執(zhí)行第7步;
[0029]第6、“加密文件數(shù)據(jù)塊”序列下載全部成功,執(zhí)行具體步驟如下:
[0030]第6.1、針對(duì)第5步中已下載“加密文件數(shù)據(jù)塊”序列,“文件塊分解與合成”模塊根據(jù)第4步中每個(gè)“文件塊”密鑰并調(diào)用“文件塊加密解密”模塊對(duì)所述已下載“加密文件數(shù)據(jù)±夬”進(jìn)行解密,生成對(duì)應(yīng)的“文件數(shù)據(jù)塊”;
[0031]第6.2、“文件訪問接口”模塊根據(jù)第I步中讀操作區(qū)域從第6.1步中已解密“文件數(shù)據(jù)塊”序列中抽取出所要讀操作區(qū)域的內(nèi)容到調(diào)用者指定的空間中;
[0032]第6.3、設(shè)置讀操作結(jié)果為成功;并執(zhí)行第8步;
[0033]第7、“加密文件數(shù)據(jù)塊”序列下載失敗,執(zhí)行具體步驟如下:
[0034]第7.1、在本地存儲(chǔ)中刪除所有第5步中已下載的“加密文件數(shù)據(jù)塊”;
[0035]第7.2、設(shè)置讀操作結(jié)果為失敗;并執(zhí)行第8步;
[0036]第8、返回讀操作結(jié)果,程序執(zhí)行結(jié)束。
[0037]3.—種基于上述多網(wǎng)盤的文件加密存儲(chǔ)系統(tǒng)的寫方法,所述方法包括具體步驟如下:
[0038]第1、“文件訪問接口”模塊獲取調(diào)用者“寫操作請(qǐng)求”文件的所要寫操作區(qū)域,即寫操作的文件偏移量和長(zhǎng)度;
[0039]第2、“文件訪問接口”模塊獲取系統(tǒng)配置信息庫(kù);
[0040]第3、“文件訪問接口”模塊調(diào)用“文件塊索引”模塊將第I步中的寫操作區(qū)域轉(zhuǎn)化為所要寫的“文件塊”編號(hào)序列,具體步驟如下:
[0041]第3.1、“文件塊索引”模塊獲取第I步中文件的“文件”概要信息,并建立“文件”概要信息副本;
[0042]第3.2、“文件塊索引”模塊獲取第I步中文件的“文件塊”概要信息,并建立“文件±夬”基本信息副本和“文件塊”詳細(xì)信息副本;
[0043]第3.3、“文件塊索引”模塊根據(jù)第I步中寫操作區(qū)域以及第3.2步中“文件塊”信息列表,計(jì)算出第I步中的寫操作區(qū)域所對(duì)應(yīng)的“文件塊”編號(hào)序列;
[0044]第4、“文件訪問接口”模塊調(diào)用“文件