本發(fā)明涉及硬件加密領(lǐng)域,特別是涉及一種虛擬存儲盤的計算機(jī)數(shù)據(jù)加密裝置及方法。
背景技術(shù):
當(dāng)今社會,計算機(jī)設(shè)備的數(shù)據(jù)安全性要求越來越高。計算機(jī)采用軟件加密的方式會增加運行負(fù)荷、又容易被人利用黑客手段破解,故目前多硬件加密的方法。
硬件加密是采用外部的硬件專用加密設(shè)備進(jìn)行加密,將加密或解密數(shù)據(jù)輸入加密模組內(nèi)進(jìn)行加密或解密,加密或解密完成后將數(shù)據(jù)返回給用戶或發(fā)送至后端硬盤存儲。
但是,目前的硬件加密方法采用的是串行處理,處理效率低,耗時長。
因此,如何提供一種處理效率高的一種虛擬存儲盤的計算機(jī)數(shù)據(jù)加密裝置及方法是本領(lǐng)域技術(shù)人員目前需要解決的問題。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是提供一種虛擬存儲盤的計算機(jī)數(shù)據(jù)加密裝置及方法,每個輸入的寫入加解密指令由不同的空白加解密單元進(jìn)行處理,即能夠?qū)崿F(xiàn)并行加密或解密,加密或解密的效率高。
為解決上述技術(shù)問題,本發(fā)明提供了一種虛擬存儲盤的計算機(jī)數(shù)據(jù)加密裝置,所述計算機(jī)數(shù)據(jù)加密裝置在計算機(jī)主機(jī)內(nèi)等效為標(biāo)準(zhǔn)存儲設(shè)備,且支持讀、寫命令;所述裝置包括:
存儲協(xié)議接口,用于接收計算機(jī)主機(jī)輸入的寫入加解密指令;所述寫入加解密指令內(nèi)攜帶有待加解密數(shù)據(jù)以及加解密運算存儲地址;接收計算機(jī)主機(jī)發(fā)送的讀取指令,所述讀取指令攜帶有待讀取的加解密運算存儲地址;
數(shù)據(jù)緩存,用于緩存所述存儲協(xié)議接口接收的所述寫入加解密指令以及所述讀取指令;
存儲空間管理模塊,用于檢測各個加解密單元的運行狀態(tài)并反饋至主控制器;
分別與所述數(shù)據(jù)緩存、所述存儲協(xié)議接口、所述存儲空間管理模塊連接的所述主控制器,用于依據(jù)各個所述加解密單元的運行狀態(tài)及所述寫入加解密指令攜帶的加解密運算存儲地址,控制所述數(shù)據(jù)緩存將所述寫入加解密指令發(fā)送至相應(yīng)的通道管理模塊;依據(jù)所述讀取指令攜帶的加解密運算存儲地址控制從相應(yīng)的加解密單元內(nèi)讀取出經(jīng)過加解密的數(shù)據(jù),并返回計算機(jī)主機(jī);
與各個所述加解密單元一一對應(yīng)設(shè)置的多個所述通道管理模塊,用于將接收到的所述寫入加解密指令發(fā)送至對應(yīng)的加解密單元內(nèi)的相應(yīng)地址空間內(nèi);每個所述加解密單元對應(yīng)所述標(biāo)準(zhǔn)存儲設(shè)備中的一段存儲地址空間;
多個所述加解密單元,用于依據(jù)接收到的所述寫入加解密指令內(nèi)的待加解密數(shù)據(jù)進(jìn)行加解密運算并進(jìn)行存儲;其中,每個所述加解密單元的存儲地址空間分成加密運算存儲地址和解密運算存儲地址。
優(yōu)選地,所述通道管理模塊具體包括:
通道數(shù)據(jù)緩存,用于緩存自身通過的數(shù)據(jù),
dma直接內(nèi)存存取模塊,用于對接收到的所述寫入加解密指令進(jìn)行直接內(nèi)存存取傳輸;
通道控制器,用于對所述dma模塊進(jìn)行控制;
通道總線協(xié)議接口,用于與對應(yīng)的加解密單元進(jìn)行通信。
優(yōu)選地,所述加解密單元具體包括:
單元總線協(xié)議接口,用于與對應(yīng)的通道管理模塊進(jìn)行數(shù)據(jù)通信;
加解密模塊,用于依據(jù)接收到的所述寫入加解密指令內(nèi)的待加解密數(shù)據(jù)進(jìn)行加解密運算;
單元控制器,用于控制所述加解密模塊的運算操作;
單元數(shù)據(jù)緩存,用于緩存加解密運算后得到的數(shù)據(jù)。
優(yōu)選地,所述加解密單元具體為專用的加解密芯片。
優(yōu)選地,所述標(biāo)準(zhǔn)存儲設(shè)備為硬盤接口,包括usb、ide、sata、sas、pcie、nvme及可通過網(wǎng)絡(luò)訪問的iscsi網(wǎng)絡(luò)盤中的任一種。。
為解決上述技術(shù)問題,本發(fā)明還提供了一種虛擬存儲盤的計算機(jī)數(shù)據(jù)加密方法,基于以上任一項所述的計算機(jī)數(shù)據(jù)加密裝置,包括:
步驟s1:接收計算機(jī)主機(jī)輸入的寫入加解密指令;所述寫入加解密指令內(nèi)攜帶有待加解密數(shù)據(jù)以及加解密運算存儲地址;
步驟s2:將所述寫入加解密指令內(nèi)攜帶的待加解密數(shù)據(jù)寫入所述加解密運算存儲地址對應(yīng)的加解密單元,由相應(yīng)的加解密單元對所述待加解密數(shù)據(jù)進(jìn)行加密或解密運算,并將運算結(jié)果數(shù)據(jù)存儲于當(dāng)前加解密單元內(nèi)的單元數(shù)據(jù)緩存內(nèi);
步驟s3:接收計算機(jī)主機(jī)發(fā)送的讀取指令,所述讀取指令攜帶有待讀取的加解密運算存儲地址;
步驟s4:依據(jù)所述讀取指令攜帶的加解密運算存儲地址從相應(yīng)的加解密單元內(nèi)讀取出運算結(jié)果數(shù)據(jù),并返回計算機(jī)主機(jī)。
優(yōu)選地,每個所述加解密單元在每個加解密運算存儲地址設(shè)置有一種加密或解密算法;
步驟s2中,將所述寫入加解密指令內(nèi)攜帶的待加解密數(shù)據(jù)寫入所述加解密運算存儲地址內(nèi)后,依據(jù)所述加解密運算存儲地址對應(yīng)的加密或解密算法對寫入的待加解密數(shù)據(jù)進(jìn)行加解或解密處理。
優(yōu)選地,步驟s2中,所述將所述寫入加解密指令內(nèi)攜帶的待加解密數(shù)據(jù)寫入所述加解密運算存儲地址對應(yīng)的加解密單元的過程具體為:
將所述寫入加解密指令內(nèi)攜帶的待加解密數(shù)據(jù)加入到寫入隊列,并返回寫入成功狀態(tài)至所述存儲空間管理模塊;
所述存儲空間管理模塊管理所述寫入隊列中的各個待加解密數(shù)據(jù),并按照順序?qū)⒏鱾€待加解密數(shù)據(jù)依次發(fā)送至相應(yīng)的加解密單元,進(jìn)行后續(xù)加解密處理。
優(yōu)選地,所述讀取指令具體為標(biāo)準(zhǔn)存儲設(shè)備的讀取命令;所述待讀取的加解密運算存儲地址與步驟s1中寫入加解密指令內(nèi)攜帶的加解密運算存儲地址相匹配。
優(yōu)選地,步驟s4具體包括:
將所述讀取指令加入讀出隊列;
所述存儲空間管理模塊管理所述讀出隊列,按照所述讀出隊列的順序依次讀取各個讀取指令對應(yīng)的加解密單元內(nèi)的運算結(jié)果數(shù)據(jù),并返回計算機(jī)主機(jī)。
本發(fā)明提供了一種虛擬存儲盤的計算機(jī)數(shù)據(jù)加密裝置及方法,包括存儲協(xié)議接口、數(shù)據(jù)緩存、存儲空間管理模塊、主控制器、與各個加解密單元一一對應(yīng)設(shè)置的多個通道管理模塊以及多個加解密單元,通過存儲協(xié)議接口輸入的寫入加解密指令攜帶有待加解密數(shù)據(jù)以及加解密運算存儲地址,主控制器依據(jù)寫入加解密指令攜帶的地址將其分配給相應(yīng)加解密單元內(nèi)的相應(yīng)地址進(jìn)行處理,可見,在接收到多個寫入加解密指令時,只要存在足夠的空白加解密單元,則這些寫入加解密指令對應(yīng)的寫入任務(wù)之間即可互不影響,分別由不同的加解密單元并行處理,從而大大提高了硬件加密或解密的處理效率以及處理速度,加密或解密的效率高。
附圖說明
為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對現(xiàn)有技術(shù)和實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明提供的一種虛擬存儲盤的計算機(jī)數(shù)據(jù)加密裝置的結(jié)構(gòu)示意圖;
圖2為本發(fā)明提供的一種虛擬存儲盤的計算機(jī)數(shù)據(jù)加密方法的過程的流程圖。
具體實施方式
本發(fā)明的核心是提供一種虛擬存儲盤的計算機(jī)數(shù)據(jù)加密裝置及方法,每個輸入的寫入加解密指令由不同的空白加解密單元進(jìn)行處理,即能夠?qū)崿F(xiàn)并行加密或解密,加密或解密的效率高。
為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明提供了一種虛擬存儲盤的計算機(jī)數(shù)據(jù)加密裝置,計算機(jī)數(shù)據(jù)加密裝置在計算機(jī)主機(jī)內(nèi)等效為標(biāo)準(zhǔn)存儲設(shè)備,且支持讀、寫命令;參見圖1所示,圖1為本發(fā)明提供的一種虛擬存儲盤的計算機(jī)數(shù)據(jù)加密裝置的結(jié)構(gòu)示意圖;該裝置包括:
存儲協(xié)議接口10,用于接收計算機(jī)主機(jī)輸入的寫入加解密指令;寫入加解密指令內(nèi)攜帶有待加解密數(shù)據(jù)以及加解密運算存儲地址;接收計算機(jī)主機(jī)發(fā)送的讀取指令,讀取指令攜帶有待讀取的加解密運算存儲地址;
數(shù)據(jù)緩存20,用于緩存存儲協(xié)議接口10接收的寫入加解密指令以及讀取指令;
存儲空間管理模塊22,用于檢測各個加解密單元30的運行狀態(tài)并反饋至主控制器21;
分別與數(shù)據(jù)緩存20、存儲協(xié)議接口10、存儲空間管理模塊22連接的主控制器21,用于依據(jù)各個加解密單元30的運行狀態(tài)及寫入加解密指令攜帶的加解密運算存儲地址,控制數(shù)據(jù)緩存20將寫入加解密指令發(fā)送至相應(yīng)的通道管理模塊23;依據(jù)讀取指令攜帶的加解密運算存儲地址控制從相應(yīng)的加解密單元30內(nèi)讀取出經(jīng)過加解密的數(shù)據(jù),并返回計算機(jī)主機(jī);
與各個加解密單元30一一對應(yīng)設(shè)置的多個通道管理模塊23,用于將接收到的寫入加解密指令發(fā)送至對應(yīng)的加解密單元30內(nèi)的相應(yīng)地址空間內(nèi);每個加解密單元30對應(yīng)標(biāo)準(zhǔn)存儲設(shè)備中的一段存儲地址空間;
多個加解密單元30,用于依據(jù)接收到的寫入加解密指令內(nèi)的待加解密數(shù)據(jù)進(jìn)行加解密運算并進(jìn)行存儲;其中,每個加解密單元30的存儲地址空間分成加密運算存儲地址和解密運算存儲地址。
其中,上述標(biāo)準(zhǔn)存儲設(shè)備為一般的硬盤接口,包括usb、ide、sata、sas、pcie、nvme及可通過網(wǎng)絡(luò)訪問的iscsi網(wǎng)絡(luò)盤中的任一種。當(dāng)然,本發(fā)明對此不作具體限定。
需要注意的是,用戶輸入一個寫入加密指令或?qū)懭虢饷苤噶詈?,不必等到處理完成即可發(fā)送下一個寫入加密指令或?qū)懭虢饷苤噶?,各個指令分別由不同的單元并行處理,互不干涉。只有空白的加解密單元30個數(shù)不夠時,才需要等待之前的指令對應(yīng)的任務(wù)完成后再進(jìn)行。
可以理解的是,讀取指令的發(fā)送在相應(yīng)的寫入加密指令或?qū)懭虢饷苤噶畹陌l(fā)送之后,但是,可以不必等待接收到任務(wù)完成響應(yīng)即可發(fā)送讀取指令,接收到讀取指令后,若對應(yīng)的加解密單元30尚未完成處理操作,則該讀取指令對應(yīng)的讀取任務(wù)處于等待狀態(tài),直至任務(wù)完成后,讀取處理數(shù)據(jù)并返回計算機(jī)主機(jī);該種方式能夠提高讀取的效率,進(jìn)而提高加密或解密處理的效率。
其中,處理區(qū)塊采用的加密算法可以為rsa、橢圓曲線/sm2、sm4等加密算法,當(dāng)然,本發(fā)明對此不作限定。
在具體實施例中,每個通道管理模塊23具體包括:
通道數(shù)據(jù)緩存,用于緩存自身通過的數(shù)據(jù),
dma(directmemoryaccess,直接內(nèi)存存取)模塊,用于對接收到的寫入加解密指令進(jìn)行直接內(nèi)存存取傳輸;
通道控制器,用于對dma模塊進(jìn)行控制;
通道總線協(xié)議接口,用于與對應(yīng)的加解密單元30進(jìn)行通信。
在優(yōu)選實施例中,加解密單元30具體包括:
單元總線協(xié)議接口,用于與對應(yīng)的通道管理模塊23進(jìn)行數(shù)據(jù)通信;
加解密模塊,用于依據(jù)接收到的寫入加解密指令內(nèi)的待加解密數(shù)據(jù)進(jìn)行加解密運算;
單元控制器,用于控制加解密模塊的運算操作;
單元數(shù)據(jù)緩存,用于緩存加解密運算后得到的數(shù)據(jù)。
其中,本發(fā)明中的加解密單元30具體為專用的加解密芯片,這里的加解密芯片具體可以為加密卡、加密機(jī)內(nèi)部芯片等,本發(fā)明對此不做限定。
另外,存儲協(xié)議接口10具體為標(biāo)準(zhǔn)硬盤通信接口。這里的存儲協(xié)議接口10可以包括pcie、sas、sata總線接口中的一種或幾種,還可包括與網(wǎng)絡(luò)用戶端連接的iscsi、fc等接口,當(dāng)然,本發(fā)明對此不作具體限定。
可以理解的是,通過采用標(biāo)準(zhǔn)硬盤通信接口以及通信協(xié)議,能夠使本發(fā)明中的加解密芯片用于各種系統(tǒng)中而不必額外設(shè)置用于兼容的驅(qū)動裝置,適用范圍廣泛。
本發(fā)明提供了一種虛擬存儲盤的計算機(jī)數(shù)據(jù)加密裝置,包括存儲協(xié)議接口、數(shù)據(jù)緩存、存儲空間管理模塊、主控制器、與各個加解密單元一一對應(yīng)設(shè)置的多個通道管理模塊以及多個加解密單元,通過存儲協(xié)議接口輸入的寫入加解密指令攜帶有待加解密數(shù)據(jù)以及加解密運算存儲地址,主控制器依據(jù)寫入加解密指令攜帶的地址將其分配給相應(yīng)加解密單元內(nèi)的相應(yīng)地址進(jìn)行處理,可見,在接收到多個寫入加解密指令時,只要存在足夠的空白加解密單元,則這些寫入加解密指令對應(yīng)的寫入任務(wù)之間即可互不影響,分別由不同的加解密單元并行處理,從而大大提高了硬件加密或解密的處理效率以及處理速度,加密或解密的效率高。
本發(fā)明還提供了一種虛擬存儲盤的計算機(jī)數(shù)據(jù)加密方法,基于上述的計算機(jī)數(shù)據(jù)加密裝置;參見圖2所示,圖2為本發(fā)明提供的一種虛擬存儲盤的計算機(jī)數(shù)據(jù)加密方法的過程的流程圖;該方法包括:
步驟s1:接收計算機(jī)主機(jī)輸入的寫入加解密指令;寫入加解密指令內(nèi)攜帶有待加解密數(shù)據(jù)以及加解密運算存儲地址;
步驟s2:將寫入加解密指令內(nèi)攜帶的待加解密數(shù)據(jù)寫入加解密運算存儲地址對應(yīng)的加解密單元,由相應(yīng)的加解密單元對所述待加解密數(shù)據(jù)進(jìn)行加密或解密運算,并將運算結(jié)果數(shù)據(jù)存儲于當(dāng)前加解密單元內(nèi)的單元數(shù)據(jù)緩存內(nèi);
步驟s3:接收計算機(jī)主機(jī)發(fā)送的讀取指令,讀取指令攜帶有待讀取的加解密運算存儲地址;
步驟s4:依據(jù)讀取指令攜帶的加解密運算存儲地址從相應(yīng)的加解密單元30內(nèi)讀取出運算結(jié)果數(shù)據(jù),并返回計算機(jī)主機(jī)。
其中,每個加解密單元30在每個加解密運算存儲地址設(shè)置有一種加密或解密算法;
步驟s2中,將寫入加解密指令內(nèi)攜帶的待加解密數(shù)據(jù)寫入加解密運算存儲地址內(nèi)后,依據(jù)加解密運算存儲地址對應(yīng)的加密或解密算法對寫入的待加解密數(shù)據(jù)進(jìn)行加解或解密處理。
在優(yōu)選實施例中,步驟s2中,將寫入加解密指令內(nèi)攜帶的待加解密數(shù)據(jù)寫入加解密運算存儲地址對應(yīng)的加解密單元的過程具體為:
將寫入加解密指令內(nèi)攜帶的待加解密數(shù)據(jù)加入到寫入隊列,并返回寫入成功狀態(tài)至存儲空間管理模塊22;
存儲空間管理模塊22管理寫入隊列中的各個待加解密數(shù)據(jù),并按照順序?qū)⒏鱾€待加解密數(shù)據(jù)依次發(fā)送至相應(yīng)的加解密單元30,進(jìn)行后續(xù)加解密處理。
另外,讀取指令具體為標(biāo)準(zhǔn)存儲設(shè)備的讀取命令;待讀取的加解密運算存儲地址與步驟s1中寫入加解密指令內(nèi)攜帶的加解密運算存儲地址相匹配。
即讀取指令內(nèi)攜帶的加解密運算存儲地址可以與步驟s1中寫入加解密指令內(nèi)攜帶的加解密運算存儲地址相同,或讀取指令內(nèi)攜帶有特定的偏移地址,該偏移地址與步驟s1中寫入加解密指令內(nèi)攜帶的加解密運算存儲地址對應(yīng),具體采用以上哪種方式,或采用其他方式,本發(fā)明不作具體限定。
進(jìn)一步可知,步驟s4具體包括:
將讀取指令加入讀出隊列;
存儲空間管理模塊22管理讀出隊列,按照讀出隊列的順序依次讀取各個讀取指令對應(yīng)的加解密單元30內(nèi)的運算結(jié)果數(shù)據(jù),并返回計算機(jī)主機(jī)。
可以理解的是,采用隊列對接收寫入加解密指令后生成的寫入任務(wù)以及接收讀取指令后生成的讀取任務(wù)進(jìn)行管理,方便記錄接收到的寫入加解密指令中哪些尚未開始處理、哪些正在處理中、哪些已經(jīng)處理完成等,提高了虛擬存儲盤的計算機(jī)數(shù)據(jù)加密裝置的處理效率。
本發(fā)明提供了一種虛擬存儲盤的計算機(jī)數(shù)據(jù)加密方法,包括存儲協(xié)議接口、數(shù)據(jù)緩存、存儲空間管理模塊、主控制器、與各個加解密單元一一對應(yīng)設(shè)置的多個通道管理模塊以及多個加解密單元,通過存儲協(xié)議接口輸入的寫入加解密指令攜帶有待加解密數(shù)據(jù)以及加解密運算存儲地址,主控制器依據(jù)寫入加解密指令攜帶的地址將其分配給相應(yīng)加解密單元內(nèi)的相應(yīng)地址進(jìn)行處理,可見,在接收到多個寫入加解密指令時,只要存在足夠的空白加解密單元,則這些寫入加解密指令對應(yīng)的寫入任務(wù)之間即可互不影響,分別由不同的加解密單元并行處理,從而大大提高了硬件加密或解密的處理效率以及處理速度,加密或解密的效率高。
本說明書中各個實施例采用遞進(jìn)的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對于實施例公開的裝置而言,由于其與實施例公開的方法相對應(yīng),所以描述的比較簡單,相關(guān)之處參見方法部分說明即可。
還需要說明的是,在本說明書中,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
對所公開的實施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其他實施例中實現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。