本發(fā)明屬于信息安全的,更具體地,涉及一種支持多用戶多任務的usb加密卡及其實現(xiàn)方法。
背景技術(shù):
1、usb加密卡是一種采用標準usb接口、集成加密技術(shù)的安全設備,其廣泛應用于政府、軍隊、金融、電子商務等領域,為這些行業(yè)提供數(shù)據(jù)加解密、簽名驗證、密鑰交換等基礎密碼服務。
2、中國發(fā)明專利cn116707970a公開一種基于硬件協(xié)議的網(wǎng)絡數(shù)據(jù)加密卡及傳輸方法,包括數(shù)據(jù)傳輸?shù)陌l(fā)送端和接收端通過各自的網(wǎng)絡數(shù)據(jù)加密卡連接到傳輸信道中,所述網(wǎng)絡數(shù)據(jù)加密卡包括:依次連接的接收模塊、密碼算法模塊和發(fā)送模塊;接收模塊用于接收待加解密的數(shù)據(jù),并傳輸給密碼算法模塊;密碼算法模塊基于內(nèi)嵌的國密算法對收到的數(shù)據(jù)進行實時加解密,還內(nèi)嵌同態(tài)加密算法支持對關(guān)鍵數(shù)據(jù)密文的運算操作,并傳輸給發(fā)送模塊;發(fā)送模塊用于輸出加解密后的數(shù)據(jù)。
3、常見的usb加密卡對多任務的處理往往是通過驅(qū)動將多個任務的數(shù)據(jù)形成串行的數(shù)據(jù)流在加密卡進行加解密處理,對數(shù)據(jù)加密的速度帶來了限制,特別是影響用戶處理大量數(shù)據(jù)時的效率。usb加密卡往往只支持單用戶,無法同時對多個用戶的數(shù)據(jù)進行加解密處理;而對單個的多任務需求,常見的處理方式是通過串行下發(fā)數(shù)據(jù)進行計算的方式解決,無法對多個任務同時進行計算,效率低下。
技術(shù)實現(xiàn)思路
1、本發(fā)明旨在克服上述現(xiàn)有技術(shù)的至少一種缺陷,提供一種支持多用戶多任務的usb加密卡,以解決usb加密卡往往只支持單用戶,無法同時對多個用戶的數(shù)據(jù)進行加解密處理;而對單個用戶的多任務需求,常見的處理方式是通過串行下發(fā)數(shù)據(jù)進行加解密的方式解決,無法對多個任務同時進行加解密,效率低下的問題。
2、另一方面,本發(fā)明還提供一種支持多用戶多任務的usb加密卡的實現(xiàn)方法。
3、一種支持多用戶多任務的usb加密卡,采用模塊化設計,包括管理核心板、多個資源核心板和底板;
4、所述管理核心板包括管理cpu、數(shù)據(jù)中轉(zhuǎn)fpga、ai加速fpga以及存儲器;
5、管理cpu,負責加解密資源調(diào)度、與上位機進行互通、與其他加密卡進行互聯(lián)和對資源fpga進行配置;
6、數(shù)據(jù)中轉(zhuǎn)fpga,負責報文的識別與轉(zhuǎn)發(fā),包括多個usb用戶接口、一個加密卡互聯(lián)接口,加密卡互聯(lián)接口用于兩個加密卡的互聯(lián);所述數(shù)據(jù)中轉(zhuǎn)fpga中包括一個基于tcam的轉(zhuǎn)發(fā)關(guān)系表,用于記錄報文的轉(zhuǎn)發(fā)方向,管理cpu中基于ai的資源調(diào)度模塊每次分配、刪除資源時都要對這個轉(zhuǎn)發(fā)關(guān)系表進行增加和刪除;
7、ai加速fpga,負責對管理cpu中的ai算法進行硬件加速;
8、存儲器,負責存儲管理cpu的系統(tǒng)文件和算法核的配置文件;
9、所述資源核心板包括一個資源fpga和外圍電路;
10、資源fpga,負責執(zhí)行加密卡的加密算法。
11、進一步地,所述資源fpga被分割為多個互相隔離的可重構(gòu)區(qū)域,每個可重構(gòu)區(qū)域作為一個vfpga按需求配置算法核,執(zhí)行加密算法,使得一個資源fpga同時為多個用戶、多個任務提供相同或者不同的加解密;同時,在資源fpga中構(gòu)建資源中轉(zhuǎn)模塊,負責內(nèi)部各vfpga與數(shù)據(jù)中轉(zhuǎn)fpga的中轉(zhuǎn);
12、所述資源fpga有兩種配置方式:如果對vfpga進行配置,則通過icap接口;如果對fpga進行配置,則通過selectmap接口。
13、進一步地,所述管理cpu包括基于ai的資源調(diào)度模塊、上位機通信模塊、加密卡協(xié)同模塊、算法核配置模塊:
14、基于ai的資源調(diào)度模塊,通過ai優(yōu)化和管理多用戶、多任務下的資源調(diào)度問題,其中包括加解密資源的分配和回收;
15、上位機通信模塊,實現(xiàn)與上位機的數(shù)據(jù)互通,所述數(shù)據(jù)的報文類型包括用戶的資源請求、加密卡的資源請求響應、用戶的待加解密數(shù)據(jù)、加密卡的加解密處理數(shù)據(jù)、加密卡的資源回收請求、用戶的資源回收響應;
16、加密卡協(xié)同模塊,實現(xiàn)兩個加密卡之間的協(xié)同,便于加密卡的加解密資源擴展,使得用戶同時調(diào)用兩個加密卡中的加解密資源;
17、算法核配置模塊,按照用戶需求將對應的算法核配置到資源fpga中。
18、本發(fā)明還包括一種支持多用戶多任務的usb加密卡的實現(xiàn)方法,所述方法包括:
19、s1、用戶通過上位機告知加密卡此次任務使用的資源請求,并經(jīng)數(shù)據(jù)中轉(zhuǎn)fpga傳輸至管理cpu進行解析,得到資源分配結(jié)果并上傳上位機;
20、s2、若資源分配結(jié)果顯示需要加密卡間進行協(xié)同處理,則:
21、首先,將兩個加密卡通過加密卡互聯(lián)接口相連,進入?yún)f(xié)同模式;其中,連接了上位機的加密卡自動被設置為主加密卡,另一個加密卡為從加密卡,主加密卡的管理cpu進行統(tǒng)一的資源調(diào)度;
22、然后,用戶調(diào)用主加密卡進行加解密,再調(diào)用從加密卡進行加解密;
23、若資源分配結(jié)果顯示不需要加密卡間進行協(xié)同處理,則用戶直接調(diào)用主加密卡進行加解密;
24、s3、上位機將加解密后數(shù)據(jù)發(fā)送給對應的任務。
25、進一步地,所述s1具體包括:
26、s11、用戶通過上位機告知加密卡此次任務使用的資源請求,并經(jīng)數(shù)據(jù)中轉(zhuǎn)fpga到達管理cpu中的上位機通信模塊;
27、s12、管理cpu的上位機通信模塊對用戶的資源請求進行解析;然后,將請求的vfpga數(shù)量和每個vfpga配置的算法類型發(fā)送至基于ai的資源調(diào)度模塊;
28、s13、管理cpu中基于ai的資源調(diào)度模塊對當前資源使用情況進行分析得到資源分配結(jié)果;如果有可用資源則返回與請求對應的可用的加解密資源的信息,完成資源分配;如果當前沒有可用的資源,則預測一個等待時間,告知用戶在一個等待時間之后再申請資源;
29、s14、管理cpu的上位機通信模塊將資源分配的結(jié)果封裝成資源響應請求報文,然后經(jīng)由數(shù)據(jù)中轉(zhuǎn)fpga發(fā)送至上位機;同時,數(shù)據(jù)中轉(zhuǎn)fpga將用戶和算法資源位置信息的對應關(guān)系更新到轉(zhuǎn)發(fā)關(guān)系表中;
30、s15、上位機接收到加密卡的資源請求響應后,如果顯示已經(jīng)分配了資源,則開始進行加解密;如果顯示沒有分配到資源,則等待一段時間后重新申請。
31、進一步地,所述將兩個加密卡通過加密卡互聯(lián)接口相連,進入?yún)f(xié)同模式具體包括:
32、s21、將兩個加密卡通過加密卡互聯(lián)接口相連,連接了上位機的加密卡自動被設置為主加密卡;
33、s22、主加密卡管理cpu中的加密卡協(xié)同模塊發(fā)送請求報文,經(jīng)過主加密卡的數(shù)據(jù)中轉(zhuǎn)fpga、從加密卡的數(shù)據(jù)中轉(zhuǎn)fpga兩層轉(zhuǎn)發(fā),到達從加密卡管理cpu中的加密卡協(xié)同模塊;
34、s23、從加密卡管理cpu中的加密卡協(xié)同模塊發(fā)送可用的資源信息,經(jīng)過從加密卡的數(shù)據(jù)中轉(zhuǎn)fpga、主加密卡的數(shù)據(jù)中轉(zhuǎn)fpga兩層轉(zhuǎn)發(fā),到達主加密卡管理cpu中的加密卡協(xié)同模塊;
35、s24、主加密卡管理cpu中的加密卡協(xié)同模塊將從加密卡的資源信息發(fā)送到基于ai的資源調(diào)度模塊,進行統(tǒng)一的資源調(diào)度。
36、進一步地,所述用戶調(diào)用主加密卡進行加解密具體包括:
37、s31、用戶通過上位機將任務中待加解密的數(shù)據(jù)和分配的算法資源信息組包發(fā)送給主加密卡;
38、s32、主加密卡中數(shù)據(jù)中轉(zhuǎn)fpga根據(jù)轉(zhuǎn)發(fā)關(guān)系表記錄的信息,然后將報文轉(zhuǎn)發(fā)到對應的資源fpga;
39、s33、資源fpga的數(shù)據(jù)中轉(zhuǎn)模塊根據(jù)算法資源信息將報文轉(zhuǎn)發(fā)到對應的vfpga;
40、s34、vfpga中的算法核對數(shù)據(jù)進行加解密,并將加解密結(jié)果和算法資源信息組包發(fā)送;
41、s35、資源fpga中的數(shù)據(jù)中轉(zhuǎn)模塊將報文轉(zhuǎn)發(fā)到數(shù)據(jù)中轉(zhuǎn)fpga,再經(jīng)由數(shù)據(jù)中轉(zhuǎn)fpga發(fā)送到對應的用戶接口上;
42、s36、上位機將接收到的加解密結(jié)果發(fā)送給對應的任務。
43、進一步地,所述用戶調(diào)用從加密卡進行加解密具體包括:
44、s41、用戶通過上位機將任務中待加解密的數(shù)據(jù)和分配的算法資源信息組包發(fā)送給主加密卡;
45、s42、主加密卡中數(shù)據(jù)中轉(zhuǎn)fpga根據(jù)轉(zhuǎn)發(fā)關(guān)系表記錄的信息,然后將報文轉(zhuǎn)發(fā)到對應的資源fpga;如果對應的資源fpga在從加密卡,則通過加密卡互聯(lián)接口發(fā)送至從加密卡的數(shù)據(jù)中轉(zhuǎn)fpga;
46、s43、從加密卡的數(shù)據(jù)中轉(zhuǎn)fpga將待加解密的數(shù)據(jù)發(fā)送至對應的資源fpga;
47、s44、資源fpga的數(shù)據(jù)中轉(zhuǎn)模塊根據(jù)算法資源信息將報文轉(zhuǎn)發(fā)到對應的vfpga;
48、s45、vfpga中的算法核對數(shù)據(jù)進行加解密,并將加解密結(jié)果和算法資源信息組包發(fā)送;
49、s46、資源fpga中的數(shù)據(jù)中轉(zhuǎn)模塊將報文轉(zhuǎn)發(fā)到數(shù)據(jù)中轉(zhuǎn)fpga,再經(jīng)由數(shù)據(jù)中轉(zhuǎn)fpga發(fā)送到對應的用戶接口上;
50、s47、上位機將接收到的加解密結(jié)果發(fā)送給對應的任務。
51、進一步地,在s1-s3的過程中實時進行加解密資源回收,具體包括:
52、s51、數(shù)據(jù)中轉(zhuǎn)fpga實時統(tǒng)計各任務對加密卡的調(diào)用情況,并將統(tǒng)計結(jié)果定時發(fā)送給管理cpu中基于ai的資源調(diào)度模塊;
53、s52、管理cpu中基于ai的資源調(diào)度模塊對資源調(diào)用統(tǒng)計進行分析,判斷可被回收的加解密資源,并將被回收資源的信息發(fā)送給上位機通信模塊;
54、s53、管理cpu中上位機通信模塊將資源回收請求通過數(shù)據(jù)中轉(zhuǎn)fpga發(fā)送到上位機;
55、s54、上位機收到資源回收請求后,給出響應;
56、s55、管理cpu中上位機通信模塊對數(shù)據(jù)中轉(zhuǎn)fpga轉(zhuǎn)發(fā)的資源回收響應進行解析,并將解析結(jié)果發(fā)送到基于ai的資源調(diào)度模塊;若上位機長時間無響應,則視為進行資源回收;
57、s56、管理cpu中基于ai的資源調(diào)度模塊根據(jù)上位機的回復對資源進行保留或者回收;若上位機同意對資源進行回收,則更新自身對資源的統(tǒng)計,并通知數(shù)據(jù)中轉(zhuǎn)fpga刪除待回收資源的轉(zhuǎn)發(fā)關(guān)聯(lián)信息。
58、與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果為:
59、(1)本發(fā)明提供了一種支持多用戶多任務的usb加密卡及其實現(xiàn)方法,從“對內(nèi)細分”、“對外擴展”兩個方面進行設計,將加密卡中的每個資源fpga劃分為多個互相隔離的vfpga,然后將各資源fpga通過數(shù)據(jù)中轉(zhuǎn)fpga進行聯(lián)通;同時兩個加密卡能夠通過互聯(lián)接口進行資源擴展,實現(xiàn)了對多個用戶的多個加解密任務的并行處理。
60、(2)本發(fā)明提供了一種支持多用戶多任務的usb加密卡及其實現(xiàn)方法,對于單個用戶而言,本發(fā)明支持對多個加解密任務進行并行處理,而無需像傳統(tǒng)加密卡一樣對多個任務進行串行處理,提高了加解密的速度;
61、(3)本發(fā)明提供了一種支持多用戶多任務的usb加密卡及其實現(xiàn)方法,應用了ai技術(shù),利用ai實時監(jiān)測加解密資源的使用情況,通過分析歷史數(shù)據(jù)和實時數(shù)據(jù),動態(tài)地調(diào)整資源分配和回收。