專利名稱:數(shù)據(jù)加密方法和裝置、數(shù)據(jù)解密方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)處理技術(shù),特別涉及數(shù)據(jù)加密方法和裝置、數(shù)據(jù)解密方法和裝置。
技術(shù)背景
目前,比較常用的加密技術(shù)主要有直接加密、文件透明加密和系統(tǒng)自帶加密。這 三種加密技術(shù)雖然都能實(shí)現(xiàn)加密,但都有各自的缺點(diǎn),下面一一描述
直接加密,其用于直接對磁盤中的文件進(jìn)行加密,代表軟件為WinRar。但是,該直 接加密的缺點(diǎn)是每次使用文件前進(jìn)行手工解密,使用完畢后再手工進(jìn)行加密,非常依賴于 手工操作,比較復(fù)雜、繁瑣。
文件透明加密,其使用Windows過濾驅(qū)動對文件進(jìn)行動態(tài)加密、解密,克服了直接 加密需要手工加密解密的缺點(diǎn)。但是,該文件透明加密具有以下缺點(diǎn)由于使用的Windows 過濾驅(qū)動處于Windows文件系統(tǒng)驅(qū)動之上,因此,使用Windows過濾驅(qū)動之后還需要對所有 文件操作進(jìn)行大規(guī)模的過濾操作,嚴(yán)重影響系統(tǒng)性能。
基于上面描述可以看出,一種可靠、安全、有效的文件加密方法是當(dāng)前亟待解決的 技術(shù)問題。發(fā)明內(nèi)容
本發(fā)明提供了數(shù)據(jù)加密方法和裝置,以避免現(xiàn)有加密的缺點(diǎn),實(shí)現(xiàn)可靠、安全、有 效的數(shù)據(jù)加密。
本發(fā)明還相應(yīng)提供了與上述數(shù)據(jù)加密方法和裝置對應(yīng)的數(shù)據(jù)解密方法和裝置,以 實(shí)現(xiàn)利用虛擬磁盤進(jìn)行數(shù)據(jù)解密,不影響文件的讀性能。
本發(fā)明提供的技術(shù)方案包括
一種數(shù)據(jù)加密方法,包括創(chuàng)建虛擬磁盤;該方法還包括
所述虛擬磁盤接收來自文件系統(tǒng)的寫請求,對寫請求攜帶的數(shù)據(jù)進(jìn)行加密,并通 知文件系統(tǒng)將加密后的數(shù)據(jù)寫入至對應(yīng)的物理磁盤,以使文件系統(tǒng)接收到來自虛擬磁盤的 通知后將加密后的數(shù)據(jù)寫入至對應(yīng)的物理磁盤。
一種文件解密方法,包括創(chuàng)建虛擬磁盤;該方法還包括
A,所述虛擬磁盤將接收的來自文件系統(tǒng)的讀請求重定向至物理磁盤,以使文件系 統(tǒng)從所述物理磁盤中獲取所述讀請求所請求的數(shù)據(jù);
B,所述虛擬磁盤接收文件系統(tǒng)從所述物理磁盤獲取的數(shù)據(jù),并對接收的數(shù)據(jù)進(jìn)行 解密,將解密后的數(shù)據(jù)發(fā)送給文件系統(tǒng),由文件系統(tǒng)提供解密后的數(shù)據(jù)給用戶端。
一種文件加密裝置,包括
虛擬磁盤創(chuàng)建單元,用于創(chuàng)建虛擬磁盤;
虛擬磁盤驅(qū)動單元,用于接收來自文件系統(tǒng)的寫請求,對寫請求攜帶的數(shù)據(jù)進(jìn)行 加密,并通知文件系統(tǒng)將加密后的數(shù)據(jù)寫入至對應(yīng)的物理磁盤,以使文件系統(tǒng)接收到來自 虛擬磁盤的通知后將加密后的數(shù)據(jù)寫入至對應(yīng)的物理磁盤。
一種文件解密裝置,包括
虛擬磁盤創(chuàng)建單元,用于創(chuàng)建虛擬磁盤;
虛擬磁盤驅(qū)動單元,包括重定向模塊和解密模塊;其中,
所述重定向模塊,用于將接收的來自文件系統(tǒng)的讀請求重定向至物理磁盤,以使 文件系統(tǒng)從所述物理磁盤中獲取所述讀請求所請求的數(shù)據(jù);
解密模塊,用于接收文件系統(tǒng)從所述物理磁盤獲取的數(shù)據(jù),并對接收的數(shù)據(jù)進(jìn)行 解密,將解密后的數(shù)據(jù)發(fā)送給文件系統(tǒng),由文件系統(tǒng)提供解密后的數(shù)據(jù)給用戶端。
由以上技術(shù)方案可以看出,本發(fā)明中,利用虛擬磁盤對寫請求中的數(shù)據(jù)進(jìn)行加密、 以及利用虛擬磁盤對讀請求所請求的數(shù)據(jù)進(jìn)行解密,這一方面克服了直接加密需要手工加 密解密的缺點(diǎn),另一方面,克服了文件透明加密中使用Windows過濾驅(qū)動加密所帶來的缺 陷,即避免了現(xiàn)有加密的缺點(diǎn),實(shí)現(xiàn)了可靠、安全、有效的數(shù)據(jù)加密。
圖1為本發(fā)明實(shí)施例提供的虛擬磁盤建立方法流程圖2為本發(fā)明實(shí)施例1提供的基本流程圖3為本發(fā)明實(shí)施例1提供的詳細(xì)流程圖4為本發(fā)明實(shí)施例1提供的裝置結(jié)構(gòu)圖5為本發(fā)明實(shí)施例2提供的基本流程圖6為本發(fā)明實(shí)施例2提供的詳細(xì)流程圖7為本發(fā)明實(shí)施例2提供的裝置結(jié)構(gòu)圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖和具體實(shí)施例對本發(fā)明進(jìn)行詳細(xì)描述。
本發(fā)明提供的文件加密方法和裝置、文件解密方法和裝置均基于Windows虛擬磁 盤,其中,所謂虛擬磁盤其實(shí)質(zhì)與現(xiàn)有的物理磁盤類似,其指Windows里面的卷(Volume), 與至少一個設(shè)備對應(yīng)。
在描述本發(fā)明提供的文件加密方法和裝置、文件解密方法和裝置之前,先描述如 何建立虛擬磁盤
參見圖1,圖1為本發(fā)明實(shí)施例提供的虛擬磁盤建立方法流程圖。如圖1所示,該 流程可包括以下步驟
步驟101,對待建立的虛擬磁盤所對應(yīng)的物理磁盤的文件進(jìn)行初始化。
本步驟101中,虛擬磁盤所對應(yīng)的物理磁盤的文件可由人工預(yù)先配置,其具體為 后綴為qbox”的文件,用于存放向該虛擬磁盤寫入的數(shù)據(jù)。也就是說,當(dāng)向虛擬磁盤寫 入數(shù)據(jù)時,需要將該數(shù)據(jù)重定向至該虛擬磁盤對應(yīng)的物理磁盤的文件;當(dāng)向該虛擬磁盤發(fā) 送讀請求以讀取數(shù)據(jù)時,需要將該讀請求重定向至該虛擬磁盤對應(yīng)的物理磁盤的文件,以 獲取該讀請求所請求的數(shù)據(jù)。
步驟102,在建立所述虛擬磁盤時,要求用戶提供使用所述物理磁盤文件的密鑰, 并驗(yàn)證用戶提供的密鑰,如果驗(yàn)證通過,則執(zhí)行步驟103,否則,返回步驟102,或者結(jié)束當(dāng)前流程。
步驟103,創(chuàng)建所述虛擬磁盤。
本步驟103在具體實(shí)現(xiàn)時,可包括以下步驟
步驟1,初始化運(yùn)行在內(nèi)核的驅(qū)動,以使該驅(qū)動后續(xù)作為虛擬磁盤的驅(qū)動,來處理 針對該虛擬磁盤的讀請求、寫請求。這里,該驅(qū)動可為=Windows可執(zhí)行程序文件的一種,后 綴名為syS”。
步驟2,初始化內(nèi)核加密、解密線程。
這里,線程為Windows任務(wù)調(diào)度的基本單位,內(nèi)核加密線程為運(yùn)行在系統(tǒng)內(nèi)核空 間用于加密的線程,內(nèi)核解密線程為運(yùn)行在系統(tǒng)內(nèi)核空間用于解密的線程。
需要說明的是,步驟I和步驟2僅是Windows下創(chuàng)建虛擬磁盤所需要的初始化工 作的一種舉例,在不同的Windows環(huán)境中,該創(chuàng)建虛擬磁盤所需要的初始化工作不同,本發(fā) 明并不具體限定。
步驟3,使用用于創(chuàng)建虛擬磁盤的控件創(chuàng)建虛擬磁盤。
本步驟3中,用于創(chuàng)建虛擬磁盤的控件具體實(shí)現(xiàn)時可為Windows下的 IoCteateDevice 控件。
另夕卜,本步驟3創(chuàng)建的虛擬磁盤具有唯一的標(biāo)識,比如為\Device\ HarddiskVolume2,也具有對應(yīng)的設(shè)備類型,比如為FILE_DEVICE_DISK,用于表示是磁盤設(shè)備。
如此,通過上述步驟I至步驟3,能夠?qū)崿F(xiàn)步驟103創(chuàng)建虛擬磁盤的操作。
優(yōu)選地,本發(fā)明中,為了使該虛擬磁盤在用戶態(tài)可見,可使用盤符分配控件比如 Windows下的IoCreateSymbolicLink為虛擬磁盤分配盤符。并且,為了在windows的“我 的電腦”里面能夠看到該分配的盤符,本發(fā)明還需要給這個設(shè)備安排一個符號連接。
至此,涉及虛擬磁盤創(chuàng)建的主要工作已經(jīng)執(zhí)行。但是,考慮到本發(fā)明提供的虛 擬磁盤的即插即用特性,還需要通知所述虛擬磁盤至Windows下的磁盤掛載管理模塊 (MountManger);和/或,使用廣播消息通知所述虛擬磁盤至Windows下的資源管理模塊 (Explorer),以使所述資源管理模塊重新枚舉該虛擬磁盤。
如此,之后用戶可按照類似對普通物理磁盤的讀寫操作對該虛擬磁盤執(zhí)行讀寫操 作,只不過在對該虛擬磁盤執(zhí)行讀寫操作時,該虛擬磁盤會將該讀寫操作重定向至其對應(yīng) 的物理磁盤文件,具體在下文實(shí)施例1和實(shí)施例2進(jìn)行描述。
實(shí)施例1 :
本實(shí)施例1基于上面描述的虛擬磁盤來描述數(shù)據(jù)加密方法。
參見圖2,圖2為本發(fā)明實(shí)施例1提供的基本流程圖。如圖2所示,該流程可包括 以下步驟
步驟201,虛擬磁盤接收來自文件系統(tǒng)的寫請求,對寫請求攜帶的數(shù)據(jù)進(jìn)行加密。
步驟202,虛擬磁盤通知文件系統(tǒng)將加密后的數(shù)據(jù)寫入至對應(yīng)的物理磁盤,以使文 件系統(tǒng)接收到來自虛擬磁盤的通知后將加密后的數(shù)據(jù)寫入至對應(yīng)的物理磁盤。
為使圖2所示的流程更加清楚,下面通過圖3對圖2所示流程進(jìn)行詳細(xì)描述
參見圖3,圖3為本發(fā)明實(shí)施例1提供的詳細(xì)流程圖。如圖3所示,該流程可包括 以下步驟
步驟301,用戶使用如WriteFile等用于發(fā)出寫請求的控件在用戶態(tài)發(fā)出寫請求。該寫請求攜帶了虛擬磁盤的標(biāo)識,以及向虛擬磁盤寫入的數(shù)據(jù)。其中,所述用戶態(tài)用于表示步驟301中發(fā)出寫請求是在用戶空間執(zhí)行的。步驟302,文件系統(tǒng)在內(nèi)核態(tài)接收來自用戶態(tài)的寫請求,發(fā)現(xiàn)所述寫請求攜帶了所述虛擬磁盤的標(biāo)識,則向虛擬磁盤發(fā)送該寫請求。具體地,本實(shí)施例1中的文件系統(tǒng)可為文件系統(tǒng)驅(qū)動(FSD)或者其他具有類似功能的模塊。其中,所述內(nèi)核態(tài)用于表示步驟302中文件系統(tǒng)接收寫請求是在內(nèi)核空間執(zhí)行的。步驟303,虛擬磁盤接收來自文件系統(tǒng)的寫請求,對寫請求攜帶的數(shù)據(jù)進(jìn)行加密。本步驟303具體由虛擬磁盤的驅(qū)動執(zhí)行的。另外,在windows系統(tǒng)下,磁盤的讀寫始終是以簇為單位的,一個簇的大小大于512字節(jié)且小于64k字節(jié),并且為2的N次冪。在windows系統(tǒng)下NTFS文件系統(tǒng)的默認(rèn)簇大小是4096字節(jié),F(xiàn)AT32文件系統(tǒng)的默認(rèn)簇大小是512字節(jié)。因?yàn)榇疟P的這個特性,可以很方便的使用目前的各種主流算法來對數(shù)據(jù)進(jìn)行加密。其中,目前主流的加密算法主要分為流加密算法和塊加密算法,相比于流加密算法,塊加密算法有最小加密長度和對齊要求,其最小加密長度通常是2的N次冪,比如8字節(jié)或16字節(jié)或32字節(jié),這樣磁盤的最小讀寫單位剛好可以保證邊界是對齊的,不需要為了使用塊加密而增加無效數(shù)據(jù)。而通常透明加密里面為了使用塊加密算法不得不在后面追寫一些無效數(shù)據(jù)來實(shí)現(xiàn)邊界對齊。優(yōu)選地,考慮到數(shù)據(jù)的安全性,本發(fā)明實(shí)施例可使用塊加密算法中安全級別較高的AES加密算法進(jìn)行數(shù)據(jù)加密。步驟304,虛擬磁盤確定自身對應(yīng)的物理磁盤中的文件,用確定的物理磁盤文件的標(biāo)識替換寫請求中虛擬磁盤的標(biāo)識,之后發(fā)送寫請求至文件系統(tǒng)。本步驟304確定的物理磁盤文件,即為上述步驟101所述的經(jīng)過初始化的文件。另外,本步驟304具體由虛擬磁盤的驅(qū)動執(zhí)行的。其中,發(fā)送寫請求至文件系統(tǒng),是由該虛擬磁盤驅(qū)動使用如ZffffriteFile等用于發(fā)出寫請求的控件實(shí)現(xiàn)的。步驟305,文件系統(tǒng)接收到來自虛擬磁盤的寫請求后,將該寫請求中加密后的數(shù)據(jù)寫入至寫請求中物理磁盤文件標(biāo)識對應(yīng)的物理磁盤文件。至此,即完成圖3所示的流程。由于虛擬磁盤僅在內(nèi)核態(tài)可見,因此,本實(shí)施例1利用內(nèi)核態(tài)的虛擬磁盤對數(shù)據(jù)加密,是用戶態(tài)中的用戶看不到的,這樣,即使用戶登錄Windows也不可以隨意讀取,實(shí)現(xiàn)了可靠的加密效果。另外,本實(shí)施例1中,僅利用虛擬磁盤對數(shù)據(jù)加密,不影響普通的讀寫性能,對系統(tǒng)性能幾乎無影響。至此,完成實(shí)施例1提供的方法描述。對應(yīng)該實(shí)施例1提供的方法,本實(shí)施例1還提供了文件加密裝置。參見圖4,圖4為本發(fā)明實(shí)施例1提供的裝置結(jié)構(gòu)圖。如圖4所示,該裝置包括虛擬磁盤創(chuàng)建單元,用于創(chuàng)建虛擬磁盤;虛擬磁盤驅(qū)動單元,用于接收來自文件系統(tǒng)的寫請求,對寫請求攜帶的數(shù)據(jù)進(jìn)行加密,并通知文件系統(tǒng)將加密后的數(shù)據(jù)寫入至對應(yīng)的物理磁盤,以使文件系統(tǒng)接收到來自虛擬磁盤的通知后將加密后的數(shù)據(jù)寫入至對應(yīng)的物理磁盤。其中,所述虛擬磁盤在內(nèi)核態(tài)可見,具有唯一的標(biāo)識;并且,優(yōu)選地,如圖4所示,該裝置進(jìn)一步包括虛擬磁盤通知單元,用于在所述虛擬磁盤創(chuàng)建單元創(chuàng)建虛擬磁盤之后、且在虛擬磁盤驅(qū)動單元接收寫請求之前,通知所述虛擬磁盤至Windows下的磁盤掛載管理模塊;和/或,使用廣播消息通知所述虛擬磁盤至Windows下的資源管理模塊Explorer,以使所述資源管理模塊重新枚舉該虛擬磁盤。本實(shí)施例1中,所述虛擬磁盤驅(qū)動單元包括接收模塊,用于接收來自文件系統(tǒng)的寫請求;加密模塊,用于對寫請求攜帶的數(shù)據(jù)進(jìn)行加密;重定向模塊,用于確定所述虛擬磁盤對應(yīng)的物理磁盤中的文件,用確定的物理磁盤文件的標(biāo)識替換寫請求中虛擬磁盤的標(biāo)識,之后發(fā)送寫請求至文件系統(tǒng),以使所述文件系統(tǒng)接收到來自虛擬磁盤的寫請求后,將該寫請求中加密后的數(shù)據(jù)寫入至寫請求中物理磁盤文件標(biāo)識對應(yīng)的物理磁盤文件。本實(shí)施例中,所述虛擬磁盤創(chuàng)建單元包括初始化模塊、處理模塊和虛擬磁盤建立模塊;其中,初始化模塊,用于對所述虛擬磁盤所對應(yīng)的物理磁盤中的文件進(jìn)行初始化;處理模塊,用于在觸發(fā)所述虛擬磁盤建立模塊創(chuàng)建所述虛擬磁盤時,要求用戶提供使用所述物理磁盤文件的密鑰,并驗(yàn)證用戶提供的密鑰,如果驗(yàn)證通過,則觸發(fā)所述初始化模塊繼續(xù)執(zhí)行創(chuàng)建所述虛擬磁盤所需要的初始化工作,在檢測到所述初始化模塊完成所述初始化工作后,觸發(fā)所述虛擬磁盤建立模塊創(chuàng)建所述虛擬磁盤;虛擬磁盤建立模塊,用于在所述處理模塊的觸發(fā)下創(chuàng)建所述虛擬磁盤。至此,完成實(shí)施例1提供的裝置描述。下面對實(shí)施例2進(jìn)行描述實(shí)施例2 本實(shí)施例2基于上面描述的虛擬磁盤來描述數(shù)據(jù)加密方法。參見圖5,圖5為本發(fā)明實(shí)施例2提供的基本流程圖。如圖5所示,該流程可包括以下步驟步驟501,虛擬磁盤將接收的來自文件系統(tǒng)的讀請求重定向至物理磁盤,以使文件系統(tǒng)從所述物理磁盤中獲取所述讀請求所請求的數(shù)據(jù)。步驟502,虛擬磁盤接收文件系統(tǒng)從所述物理磁盤獲取的數(shù)據(jù),并對接收的數(shù)據(jù)進(jìn)行解密,將解密后的數(shù)據(jù)發(fā)送給文件系統(tǒng),由文件系統(tǒng)提供解密后的數(shù)據(jù)給用戶端。為使圖5所示的流程更加清楚,下面通過圖6對圖5所示流程進(jìn)行詳細(xì)描述參見圖6,圖6為本發(fā)明實(shí)施例2提供的詳細(xì)流程圖。如圖6所示,該流程可包括以下步驟步驟601,用戶使用如ReadFi Ie等用于發(fā)出讀請求的控件在用戶態(tài)發(fā)出讀請求。該讀請求攜帶了虛擬磁盤的標(biāo)識。步驟602,文件系統(tǒng)在內(nèi)核態(tài)接收來自用戶態(tài)的讀請求,判斷出所述讀請求攜帶了所述虛擬磁盤的標(biāo)識,則將所述讀請求發(fā)送至所述虛擬磁盤。具體地,本實(shí)施例2中的文件系統(tǒng)可為FSD或者其他具有類似功能的模塊。步驟603,虛擬磁盤接收到來自文件系統(tǒng)的讀請求后,確定自身對應(yīng)的物理磁盤中的文件。本步驟603確定的物理磁盤文件,即為上述步驟101所述的經(jīng)過初始化的文件。另外,本步驟603具體由虛擬磁盤的驅(qū)動執(zhí)行的。步驟604,虛擬磁盤用確定的物理磁盤文件的標(biāo)識替換讀請求中虛擬磁盤的標(biāo)識,并發(fā)送該讀請求至文件系統(tǒng)。本步驟604的發(fā)送可由虛擬磁盤驅(qū)動使用如ZWReadFile等用于發(fā)出讀請求的控件實(shí)現(xiàn)的。步驟605,文件系統(tǒng)接收到來自虛擬磁盤的讀請求后,向與該讀請求攜帶的物理磁盤文件標(biāo)識對應(yīng)的物理磁盤文件發(fā)送讀請求,以從該物理磁盤文件中獲取所述讀請求所請求的數(shù)據(jù)。基于實(shí)施例1的描述可以知道,本步驟605中,文件系統(tǒng)獲取的數(shù)據(jù)為加密的數(shù)據(jù)。步驟606,虛擬磁盤接收文件系統(tǒng)從所述物理磁盤獲取的數(shù)據(jù),并對接收的數(shù)據(jù)進(jìn)行解密,將解密后的數(shù)據(jù)發(fā)送給文件系統(tǒng)。本步驟606中實(shí)現(xiàn)解密的算法與實(shí)施例1中加密算法對應(yīng),比如也可為安全級別較高的AES解密算法。步驟607,文件系統(tǒng)提供解密后的數(shù)據(jù)給用戶端。至此,完成圖6所示的流程。下面對本實(shí)施例2中提供的文件解密裝置的結(jié)構(gòu)進(jìn)行描述。參見圖7,圖7為本發(fā)明實(shí)施例2提供的裝置結(jié)構(gòu)圖。如圖7所示,該裝置包括虛擬磁盤創(chuàng)建單元,用于創(chuàng)建虛擬磁盤;虛擬磁盤驅(qū)動單元,包括重定向模塊和解密模塊;其中,所述重定向模塊,用于將接收的來自文件系統(tǒng)的讀請求重定向至物理磁盤,以使文件系統(tǒng)從所述物理磁盤中獲取所述讀請求所請求的數(shù)據(jù);解密模塊,用于接收文件系統(tǒng)從所述物理磁盤獲取的數(shù)據(jù),并對接收的數(shù)據(jù)進(jìn)行解密,將解密后的數(shù)據(jù)發(fā)送給文件系統(tǒng),由文件系統(tǒng)提供解密后的數(shù)據(jù)給用戶端。其中,所述虛擬磁盤在內(nèi)核態(tài)可見,具有唯一的標(biāo)識;并且,如圖7所示,所述裝置進(jìn)一步包括虛擬磁盤通知單元,用于在所述虛擬磁盤創(chuàng)建單元創(chuàng)建虛擬磁盤之后、且在虛擬磁盤驅(qū)動單元接收讀請求之前,通知所述虛擬磁盤至Windows下的磁盤掛載管理模塊;和/或,使用廣播消息通知所述虛擬磁盤至Windows下的資源管理模塊,以使所述資源管理模塊重新枚舉該虛擬磁盤。另外,優(yōu)選地,如圖7所示,所述重定向模塊可包括確定子模塊,用于接收到讀請求后,確定自身對應(yīng)的物理磁盤中的文件;重定向子模塊,用于用確定的物理磁盤文件的標(biāo)識替換讀請求中虛擬磁盤的標(biāo)識,并發(fā)送該讀請求至文件系統(tǒng),以使文件系統(tǒng)接收到來自虛擬磁盤的讀請求后,向與該讀請求攜帶的物理磁盤文件標(biāo)識對應(yīng)的物理磁盤文件發(fā)送讀請求,以從該物理磁盤文件中獲取所述讀請求所請求的數(shù)據(jù)。本實(shí)施例中,所述虛擬磁盤創(chuàng)建單元包括初始化模塊、處理模塊和虛擬磁盤建立模塊;其中,初始化模塊,用于對所述虛擬磁盤所對應(yīng)的物理磁盤中的文件進(jìn)行初始化;處理模塊,用于在觸發(fā)所述虛擬磁盤建立模塊創(chuàng)建所述虛擬磁盤時,要求用戶提供使用所述物理磁盤文件的密鑰,并驗(yàn)證用戶提供的密鑰,如果驗(yàn)證通過,則觸發(fā)所述初始化模塊繼續(xù)執(zhí)行創(chuàng)建所述虛擬磁盤所需要的初始化工作,在檢測到所述初始化模塊完成所述初始化工作后,觸發(fā)所述虛擬磁盤建立模塊創(chuàng)建所述虛擬磁盤;虛擬磁盤建立模塊,用于在所述處理模塊的觸發(fā)下創(chuàng)建所述虛擬磁盤。至此,完成實(shí)施例2提供的裝置描述。由以上技術(shù)方案可以看出,本發(fā)明中,利用虛擬磁盤對寫請求中的數(shù)據(jù)進(jìn)行加密、以及利用虛擬磁盤對讀請求所請求的數(shù)據(jù)進(jìn)行解密,這一方面克服了直接加密需要手工加密解密的缺點(diǎn),另一方面,克服了文件透明加密中使用Windows過濾驅(qū)動加密所帶來的缺陷,即避免了現(xiàn)有加密的缺點(diǎn),實(shí)現(xiàn)了可靠、安全、有效的數(shù)據(jù)加密。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。
權(quán)利要求
1.一種數(shù)據(jù)加密方法,其特征在于,創(chuàng)建虛擬磁盤;該方法包括所述虛擬磁盤接收來自文件系統(tǒng)的寫請求,對寫請求攜帶的數(shù)據(jù)進(jìn)行加密,并通知文件系統(tǒng)將加密后的數(shù)據(jù)寫入至對應(yīng)的物理磁盤,以使文件系統(tǒng)接收到來自虛擬磁盤的通知后將加密后的數(shù)據(jù)寫入至對應(yīng)的物理磁盤。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述虛擬磁盤在內(nèi)核態(tài)可見,具有唯一的標(biāo)識;在創(chuàng)建虛擬磁盤之后、且在虛擬磁盤接收來自文件系統(tǒng)的寫請求之前進(jìn)一步包括通知所述虛擬磁盤至Windows下的磁盤掛載管理模塊;和/或,使用廣播消息通知所述虛擬磁盤至Windows下的資源管理模塊,以使所述資源管理模塊重新枚舉該虛擬磁盤。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述文件系統(tǒng)通過以下步驟發(fā)送寫請求給虛擬磁盤包括文件系統(tǒng)在內(nèi)核態(tài)接收來自用戶態(tài)的寫請求,判斷出所述寫請求攜帶了所述虛擬磁盤的標(biāo)識,則將所述寫請求發(fā)送至所述虛擬磁盤。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述虛擬磁盤通知文件系統(tǒng)將加密后的數(shù)據(jù)寫入至對應(yīng)的物理磁盤包括所述虛擬磁盤確定自身對應(yīng)的物理磁盤中的文件,用確定的物理磁盤文件的標(biāo)識替換寫請求中虛擬磁盤的標(biāo)識,之后發(fā)送寫請求至文件系統(tǒng);所述文件系統(tǒng)接收到來自虛擬磁盤的通知后將加密后的數(shù)據(jù)寫入至對應(yīng)的物理磁盤包括所述文件系統(tǒng)接收到來自虛擬磁盤的寫請求后,將該寫請求中加密后的數(shù)據(jù)寫入至寫請求中物理磁盤文件標(biāo)識對應(yīng)的物理磁盤文件。
5.根據(jù)權(quán)利要求1至4任一所述的方法,其特征在于,所述創(chuàng)建虛擬磁盤包括對所述虛擬磁盤所對應(yīng)的物理磁盤中的文件進(jìn)行初始化;在創(chuàng)建所述虛擬磁盤時,要求用戶提供使用所述物理磁盤文件的密鑰,并驗(yàn)證用戶提供的密鑰,如果驗(yàn)證通過,則執(zhí)行創(chuàng)建所述虛擬磁盤所需要的初始化工作,在完成初始化后使用用于創(chuàng)建虛擬磁盤的控件創(chuàng)建虛擬磁盤。
6.一種文件解密方法,其特征在于,創(chuàng)建虛擬磁盤;該方法包括A,所述虛擬磁盤將接收的來自文件系統(tǒng)的讀請求重定向至物理磁盤,以使文件系統(tǒng)從所述物理磁盤中獲取所述讀請求所請求的數(shù)據(jù);B,所述虛擬磁盤接收文件系統(tǒng)從所述物理磁盤獲取的數(shù)據(jù),并對接收的數(shù)據(jù)進(jìn)行解密,將解密后的數(shù)據(jù)發(fā)送給文件系統(tǒng),由文件系統(tǒng)提供解密后的數(shù)據(jù)給用戶端。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述虛擬磁盤在內(nèi)核態(tài)可見,具有唯一的標(biāo)識;在創(chuàng)建虛擬磁盤之后、且在執(zhí)行步驟A之前進(jìn)一步包括通知所述虛擬磁盤至Windows下的磁盤掛載管理模塊;和/或,使用廣播消息通知所述虛擬磁盤至Windows下的資源管理模塊,以使所述資源管理模塊重新枚舉該虛擬磁盤。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,步驟A中,文件系統(tǒng)通過以下步驟發(fā)送讀請求至虛擬磁盤文件系統(tǒng)在內(nèi)核態(tài)接收來自用戶態(tài)的讀請求,判斷出所述讀請求攜帶了所述虛擬磁盤的標(biāo)識,則將所述讀請求發(fā)送至所述虛擬磁盤。
9.根據(jù)權(quán)利要求7所述的方法,其特征在于,步驟A包括所述虛擬磁盤接收到讀請求后,確定自身對應(yīng)的物理磁盤中的文件,用確定的物理磁盤文件的標(biāo)識替換讀請求中虛擬磁盤的標(biāo)識,并發(fā)送該讀請求至文件系統(tǒng);所述文件系統(tǒng)接收到來自虛擬磁盤的讀請求后,向與該讀請求攜帶的物理磁盤文件標(biāo)識對應(yīng)的物理磁盤文件發(fā)送讀請求,以從該物理磁盤文件中獲取所述讀請求所請求的數(shù)據(jù)。
10.根據(jù)權(quán)利要求6至9任一所述的方法,其特征在于,所述創(chuàng)建虛擬磁盤包括對所述虛擬磁盤所對應(yīng)的物理磁盤中的文件進(jìn)行初始化;在建立所述虛擬磁盤時,要求用戶提供使用所述物理磁盤文件的密鑰,并驗(yàn)證用戶提供的密鑰,如果驗(yàn)證通過,則執(zhí)行創(chuàng)建所述虛擬磁盤所需要的初始化工作,在完成初始化后使用用于創(chuàng)建虛擬磁盤的控件創(chuàng)建虛擬磁盤。
11.一種文件加密裝置,其特征在于,該裝置包括虛擬磁盤創(chuàng)建單元,用于創(chuàng)建虛擬磁盤;虛擬磁盤驅(qū)動單元,用于接收來自文件系統(tǒng)的寫請求,對寫請求攜帶的數(shù)據(jù)進(jìn)行加密, 并通知文件系統(tǒng)將加密后的數(shù)據(jù)寫入至對應(yīng)的物理磁盤,以使文件系統(tǒng)接收到來自虛擬磁盤的通知后將加密后的數(shù)據(jù)寫入至對應(yīng)的物理磁盤。
12.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述虛擬磁盤在內(nèi)核態(tài)可見,具有唯一的標(biāo)識;該裝置進(jìn)一步包括虛擬磁盤通知單元,用于在所述虛擬磁盤創(chuàng)建單元創(chuàng)建虛擬磁盤之后、且在虛擬磁盤驅(qū)動單元接收寫請求之前,通知所述虛擬磁盤至Windows下的磁盤掛載管理模塊;和/或, 使用廣播消息通知所述虛擬磁盤至Windows下的資源管理模塊,以使所述資源管理模塊重新枚舉該虛擬磁盤。
13.根據(jù)權(quán)利要求12所述的裝置,其特征在于,所述虛擬磁盤驅(qū)動單元包括接收模塊,用于接收來自文件系統(tǒng)的寫請求;加密模塊,用于對寫請求攜帶的數(shù)據(jù)進(jìn)行加密;重定向模塊,用于確定所述虛擬磁盤對應(yīng)的物理磁盤中的文件,用確定的物理磁盤文件的標(biāo)識替換寫請求中虛擬磁盤的標(biāo)識,之后發(fā)送寫請求至文件系統(tǒng),以使所述文件系統(tǒng)接收到來自虛擬磁盤的寫請求后,將該寫請求中加密后的數(shù)據(jù)寫入至寫請求中物理磁盤文件標(biāo)識對應(yīng)的物理磁盤文件。
14.根據(jù)權(quán)利要求11至13任一所述的裝置,其特征在于,所述虛擬磁盤創(chuàng)建單元包括 初始化模塊、處理模塊和虛擬磁盤建立模塊;其中,初始化模塊,用于對所述虛擬磁盤所對應(yīng)的物理磁盤中的文件進(jìn)行初始化;處理模塊,用于在觸發(fā)所述虛擬磁盤建立模塊創(chuàng)建所述虛擬磁盤時,要求用戶提供使用所述物理磁盤文件的密鑰,并驗(yàn)證用戶提供的密鑰,如果驗(yàn)證通過,則觸發(fā)所述初始化模塊繼續(xù)執(zhí)行創(chuàng)建所述虛擬磁盤所需要的初始化工作,在檢測到所述初始化模塊完成所述初始化工作后,觸發(fā)所述虛擬磁盤建立模塊創(chuàng)建所述虛擬磁盤;虛擬磁盤建立模塊,用于在所述處理模塊的觸發(fā)下創(chuàng)建所述虛擬磁盤。
15.一種文件解密裝置,其特征在于,該裝置包括虛擬磁盤創(chuàng)建單元,用于創(chuàng)建虛擬磁盤;虛擬磁盤驅(qū)動單元,包括重定向模塊和解密模塊;其中,所述重定向模塊,用于將接收的來自文件系統(tǒng)的讀請求重定向至物理磁盤,以使文件系統(tǒng)從所述物理磁盤中獲取所述讀請求所請求的數(shù)據(jù);解密模塊,用于接收文件系統(tǒng)從所述物理磁盤獲取的數(shù)據(jù),并對接收的數(shù)據(jù)進(jìn)行解密, 將解密后的數(shù)據(jù)發(fā)送給文件系統(tǒng),由文件系統(tǒng)提供解密后的數(shù)據(jù)給用戶端。
16.根據(jù)權(quán)利要求15所述的裝置,其特征在于,所述虛擬磁盤在內(nèi)核態(tài)可見,具有唯一的標(biāo)識;所述裝置進(jìn)一步包括虛擬磁盤通知單元,用于在所述虛擬磁盤創(chuàng)建單元創(chuàng)建虛擬磁盤之后、且在虛擬磁盤驅(qū)動單元接收讀請求之前,通知所述虛擬磁盤至Windows下的磁盤掛載管理模塊;和/或, 使用廣播消息通知所述虛擬磁盤至Windows下的資源管理模塊,以使所述資源管理模塊重新枚舉該虛擬磁盤。
17.根據(jù)權(quán)利要求15所述的裝置,其特征在于,所述重定向模塊包括確定子模塊,用于接收到讀請求后,確定自身對應(yīng)的物理磁盤中的文件;重定向子模塊,用于用確定的物理磁盤文件的標(biāo)識替換讀請求中虛擬磁盤的標(biāo)識,并發(fā)送該讀請求至文件系統(tǒng),以使文件系統(tǒng)接收到來自虛擬磁盤的讀請求后,向與該讀請求攜帶的物理磁盤文件標(biāo)識對應(yīng)的物理磁盤文件發(fā)送讀請求,以從該物理磁盤文件中獲取所述讀請求所請求的數(shù)據(jù)。
18.根據(jù)權(quán)利要求15至17任一所述的裝置,其特征在于,所述虛擬磁盤創(chuàng)建單元包括: 初始化模塊、處理模塊和虛擬磁盤建立模塊;其中,初始化模塊,用于對所述虛擬磁盤所對應(yīng)的物理磁盤中的文件進(jìn)行初始化;處理模塊,用于在觸發(fā)所述虛擬磁盤建立模塊創(chuàng)建所述虛擬磁盤時,要求用戶提供使用所述物理磁盤文件的密鑰,并驗(yàn)證用戶提供的密鑰,如果驗(yàn)證通過,則觸發(fā)所述初始化模塊繼續(xù)執(zhí)行創(chuàng)建所述虛擬磁盤所需要的初始化工作,在檢測到所述初始化模塊完成所述初始化工作后,觸發(fā)所述虛擬磁盤建立模塊創(chuàng)建所述虛擬磁盤;虛擬磁盤建立模塊,用于在所述處理模塊的觸發(fā)下創(chuàng)建所述虛擬磁盤。
全文摘要
本發(fā)明提供了數(shù)據(jù)加密方法和裝置、數(shù)據(jù)解密方法和裝置。其中,數(shù)據(jù)加密方法包括創(chuàng)建虛擬磁盤;所述虛擬磁盤接收來自文件系統(tǒng)的寫請求,對寫請求攜帶的數(shù)據(jù)進(jìn)行加密,并通知文件系統(tǒng)將加密后的數(shù)據(jù)寫入至對應(yīng)的物理磁盤,以使文件系統(tǒng)接收到來自虛擬磁盤的通知后將加密后的數(shù)據(jù)寫入至對應(yīng)的物理磁盤。
文檔編號G06F21/62GK103020537SQ20111028389
公開日2013年4月3日 申請日期2011年9月22日 優(yōu)先權(quán)日2011年9月22日
發(fā)明者畢廷禮 申請人:騰訊科技(深圳)有限公司