本公開涉及計(jì)算機(jī),尤其涉及一種數(shù)據(jù)處理方法、裝置、存儲(chǔ)介質(zhì)及電子設(shè)備。
背景技術(shù):
1、密碼芯片是主機(jī)設(shè)備安全啟動(dòng)、數(shù)據(jù)加密,確保系統(tǒng)的穩(wěn)定運(yùn)行和數(shù)據(jù)安全的重要解決方案。sm3算法作為國(guó)密算法中唯一的雜湊算法廣泛應(yīng)用于數(shù)據(jù)安全中,因此,開發(fā)高性能、低復(fù)雜度的sm3硬件加速器,對(duì)于提升國(guó)家信息安全和密碼技術(shù)自主創(chuàng)新能力具有重要意義。
2、目前,許多基于sm3算法的密碼芯片仍采用傳統(tǒng)的串行計(jì)算架構(gòu),在算法硬件實(shí)現(xiàn)時(shí)并未優(yōu)化復(fù)雜的壓縮函數(shù)計(jì)算路徑,而是直接使用組合邏輯的rtl描述。傳統(tǒng)的串行架構(gòu)吞吐量低,無(wú)法滿足大規(guī)模數(shù)據(jù)流的加解密需求;復(fù)雜的壓縮函數(shù)計(jì)算路徑限制了sm3算法的工作頻率,降低了計(jì)算效率。另外,在少量并行計(jì)算硬件實(shí)現(xiàn)的技術(shù)方案中,未考慮資源利用率的問(wèn)題,導(dǎo)致邏輯資源消耗過(guò)多、性能和效率較低的問(wèn)題。
技術(shù)實(shí)現(xiàn)思路
1、本公開提供了一種數(shù)據(jù)處理方法、裝置、存儲(chǔ)介質(zhì)及電子設(shè)備,以至少解決現(xiàn)有技術(shù)中存在的以上技術(shù)問(wèn)題。
2、本公開實(shí)施例的技術(shù)方案是這樣實(shí)現(xiàn)的:
3、第一方面,本公開實(shí)施例提供了一種數(shù)據(jù)處理裝置,所述裝置包括:
4、數(shù)據(jù)填充模塊,用于對(duì)接收的第一數(shù)據(jù)進(jìn)行數(shù)據(jù)填充,得到第二數(shù)據(jù);對(duì)所述第二數(shù)據(jù)進(jìn)行拆分,得到至少一個(gè)塊消息;
5、消息字?jǐn)U展模塊,用于對(duì)每個(gè)所述塊消息進(jìn)行消息字?jǐn)U展,得到用于壓縮計(jì)算的消息字;
6、壓縮函數(shù)模塊,用于對(duì)所述消息字進(jìn)行壓縮計(jì)算,得到計(jì)算結(jié)果;所述壓縮函數(shù)模塊采用基于壓縮器和工作變量寄存器構(gòu)成的流水線計(jì)算架構(gòu),所述壓縮函數(shù)模塊中存儲(chǔ)有壓縮計(jì)算所需的計(jì)算變量,所述計(jì)算變量隨著輪數(shù)變化而變化。
7、上述方案中,所述壓縮函數(shù)模塊中的壓縮器包括:第一csa(carry-save?adder,進(jìn)位保存加法器)、第二csa、第三csa;
8、所述第一csa,用于執(zhí)行第一加法操作,所述第一加法操作為針對(duì)第一特定操作結(jié)果、第一寄存器值和第一消息字的加法操作;
9、所述第二csa,用于執(zhí)行第二加法操作,所述第二加法操作為針對(duì)第一移位結(jié)果、所述計(jì)算變量和第二寄存器值的加法操作;
10、所述第三csa,用于執(zhí)行第三加法操作,所述第三加法操作為針對(duì)第二特定操作結(jié)果、第三寄存器值和第二消息字的加法操作;其中,所述第二消息字為所述第一消息字的處理結(jié)果。
11、上述方案中,所述壓縮函數(shù)模塊,包括:存儲(chǔ)器,用于接收輪數(shù),輸出所述輪數(shù)對(duì)應(yīng)的計(jì)算變量。
12、上述方案中,還用于接收并存儲(chǔ)壓縮計(jì)算所需的至少一個(gè)輪數(shù)和每個(gè)輪數(shù)對(duì)應(yīng)的計(jì)算變量。
13、上述方案中,所述存儲(chǔ)器采用雙端口模式,在同一時(shí)鐘內(nèi),支持同時(shí)對(duì)所述存儲(chǔ)器進(jìn)行讀操作和寫操作。
14、上述方案中,所述壓縮函數(shù)模塊還包括:8個(gè)工作變量寄存器;
15、所述第一寄存器值為第八工作變量寄存器的值;
16、所述第二寄存器值為第五工作變量寄存器的值;
17、所述第三寄存器值為第四工作變量寄存器的值。
18、上述方案中,所述壓縮函數(shù)模塊包括64個(gè)壓縮單元,每個(gè)所述壓縮單元包括:壓縮器和8個(gè)工作變量寄存器,所述壓縮器包括:第一csa、第二csa、第三csa。
19、上述方案中,所述消息字?jǐn)U展模塊,包括:
20、擴(kuò)展器,用于接收所述塊消息,將所述塊消息擴(kuò)展為用于壓縮計(jì)算的消息字;
21、消息字寄存器組,用于存放所述消息字,并在每一輪進(jìn)行消息字更新;以及,將第一消息字和第二消息字的消息字發(fā)送給所述壓縮函數(shù)模塊中的壓縮器。
22、上述方案中,所述擴(kuò)展器中定義有寄存器,用于存放第二消息字。
23、上述方案中,每完成一輪迭代計(jì)算,所述消息字寄存器組,用于序號(hào)最小的消息字更新為當(dāng)前迭代計(jì)算對(duì)應(yīng)的消息字。
24、上述方案中,所述消息字寄存器組包括:16個(gè)消息字寄存器,用于存儲(chǔ)隨迭代計(jì)算變化的所述消息字。
25、上述方案中,所述壓縮函數(shù)模塊采用sm3雜湊算法。
26、第二方面,本公開實(shí)施例提供了一種數(shù)據(jù)處理方法,所述方法包括:
27、對(duì)接收的第一數(shù)據(jù)進(jìn)行數(shù)據(jù)填充,得到第二數(shù)據(jù);對(duì)所述第二數(shù)據(jù)進(jìn)行拆分,得到至少一個(gè)塊消息;
28、對(duì)每個(gè)所述塊消息進(jìn)行消息字?jǐn)U展,得到用于壓縮計(jì)算的消息字;
29、對(duì)所述消息字進(jìn)行壓縮計(jì)算,得到計(jì)算結(jié)果;其中,采用基于壓縮器和工作變量寄存器構(gòu)成的流水線計(jì)算架構(gòu)對(duì)所述消息字進(jìn)行壓縮計(jì)算,所述壓縮計(jì)算所需的計(jì)算變量預(yù)先存儲(chǔ)于存儲(chǔ)器中,所述計(jì)算變量隨著輪數(shù)變化而變化。
30、第三方面,本公開實(shí)施例提供了一種電子設(shè)備,包括:至少一個(gè)處理器;以及,與所述至少一個(gè)處理器通信連接的存儲(chǔ)器;其中,
31、所述存儲(chǔ)器存儲(chǔ)有可被所述至少一個(gè)處理器執(zhí)行的指令,所述指令被所述至少一個(gè)處理器執(zhí)行,以使所述至少一個(gè)處理器能夠執(zhí)行任一項(xiàng)所述的數(shù)據(jù)處理方法。
32、第四方面,本公開實(shí)施例提供了一種存儲(chǔ)有計(jì)算機(jī)指令的非瞬時(shí)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)指令用于使計(jì)算機(jī)執(zhí)行根據(jù)任一項(xiàng)所述數(shù)據(jù)處理方法。
33、本公開實(shí)施例具有以下有益效果:
34、應(yīng)用本公開實(shí)施例提供的數(shù)據(jù)處理方法、裝置、存儲(chǔ)介質(zhì)及電子設(shè)備,數(shù)據(jù)填充模塊,用于對(duì)接收的第一數(shù)據(jù)進(jìn)行數(shù)據(jù)填充,得到第二數(shù)據(jù);對(duì)所述第二數(shù)據(jù)進(jìn)行拆分,得到至少一個(gè)塊消息;消息字?jǐn)U展模塊,用于對(duì)每個(gè)所述塊消息進(jìn)行消息字?jǐn)U展,得到用于壓縮計(jì)算的消息字;壓縮函數(shù)模塊,用于對(duì)所述消息字進(jìn)行壓縮計(jì)算,得到計(jì)算結(jié)果;所述壓縮函數(shù)模塊采用基于壓縮器和工作變量寄存器構(gòu)成的流水線計(jì)算架構(gòu),所述壓縮函數(shù)模塊中存儲(chǔ)有壓縮計(jì)算所需的計(jì)算變量,所述計(jì)算變量隨著輪數(shù)變化而變化。如此,通過(guò)流水線計(jì)算架構(gòu)解決現(xiàn)有技術(shù)中密碼芯片對(duì)大規(guī)模數(shù)據(jù)安全計(jì)算效率低的問(wèn)題,結(jié)合預(yù)存儲(chǔ)的計(jì)算變量提高了數(shù)據(jù)計(jì)算效率。
35、應(yīng)當(dāng)理解,本部分所描述的內(nèi)容并非旨在標(biāo)識(shí)本公開的實(shí)施例的關(guān)鍵或重要特征,也不用于限制本公開的范圍。本公開的其它特征將通過(guò)以下的說(shuō)明書而變得容易理解。
1.一種數(shù)據(jù)處理裝置,其特征在于,所述裝置包括:
2.根據(jù)權(quán)利要求1所述的裝置,其特征在于,所述壓縮函數(shù)模塊中的壓縮器包括:第一csa、第二csa、第三csa;
3.根據(jù)權(quán)利要求1所述的裝置,其特征在于,所述壓縮函數(shù)模塊,包括:存儲(chǔ)器,用于接收輪數(shù),輸出所述輪數(shù)對(duì)應(yīng)的計(jì)算變量。
4.根據(jù)權(quán)利要求3所述的裝置,其特征在于,所述存儲(chǔ)器,還用于接收并存儲(chǔ)壓縮計(jì)算所需的至少一個(gè)輪數(shù)和每個(gè)輪數(shù)對(duì)應(yīng)的計(jì)算變量。
5.根據(jù)權(quán)利要求3所述的裝置,其特征在于,所述存儲(chǔ)器采用雙端口模式,在同一時(shí)鐘內(nèi),支持同時(shí)對(duì)所述存儲(chǔ)器進(jìn)行讀操作和寫操作。
6.根據(jù)權(quán)利要求2所述的裝置,其特征在于,所述壓縮函數(shù)模塊還包括:8個(gè)工作變量寄存器;
7.根據(jù)權(quán)利要求1所述的裝置,其特征在于,所述壓縮函數(shù)模塊包括64個(gè)壓縮單元,每個(gè)所述壓縮單元包括:壓縮器和8個(gè)工作變量寄存器,所述壓縮器包括:第一csa、第二csa、第三csa。
8.根據(jù)權(quán)利要求1所述的裝置,其特征在于,所述消息字?jǐn)U展模塊,包括:
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述擴(kuò)展器中定義有寄存器,用于存放第二消息字。
10.根據(jù)權(quán)利要求8所述的裝置,其特征在于,每完成一輪迭代計(jì)算,所述消息字寄存器組用于將序號(hào)最小的消息字更新為當(dāng)前迭代計(jì)算對(duì)應(yīng)的消息字。
11.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述消息字寄存器組包括:16個(gè)消息字寄存器,用于存儲(chǔ)隨迭代計(jì)算變化的所述消息字。
12.根據(jù)權(quán)利要求1所述的裝置,其特征在于,所述壓縮函數(shù)模塊采用sm3雜湊算法。
13.一種數(shù)據(jù)處理方法,其特征在于,所述方法包括:
14.一種電子設(shè)備,其特征在于,包括:至少一個(gè)處理器;以及,與所述至少一個(gè)處理器通信連接的存儲(chǔ)器;其中,所述存儲(chǔ)器存儲(chǔ)有可被所述至少一個(gè)處理器執(zhí)行的指令,所述指令被所述至少一個(gè)處理器執(zhí)行,以使所述至少一個(gè)處理器能夠執(zhí)行權(quán)利要求13所述的方法。
15.一種存儲(chǔ)有計(jì)算機(jī)指令的非瞬時(shí)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所述計(jì)算機(jī)指令用于使計(jì)算機(jī)執(zhí)行根據(jù)權(quán)利要求13所述的方法。