本發(fā)明涉及數(shù)據(jù)加密,尤其涉及一種基于并行度可配置的sm3算法的數(shù)據(jù)加密方法及裝置。
背景技術(shù):
1、近年來,隨著我國數(shù)字經(jīng)濟(jì)加快發(fā)展,全社會數(shù)據(jù)總量爆發(fā)式增長,對算力的提升即數(shù)據(jù)處理能力的提升,提高數(shù)據(jù)的存儲速度已經(jīng)有了較高要求,同樣在高速的數(shù)據(jù)傳輸與處理過程中信息安全不可忽視,因此提高保障信息安全的能力具有重要意義。
2、密碼技術(shù)是現(xiàn)代信息安全技術(shù)產(chǎn)業(yè)發(fā)展的核心,其中,密碼雜湊算法(sm3)以其安全性、高效性、適用性廣泛應(yīng)用于網(wǎng)絡(luò)安全和數(shù)字簽名中。隨著技術(shù)的不斷發(fā)展,對sm3算法的硬件加密效率需求也隨之提高。目前,sm3算法主要借助流水線技術(shù)提高執(zhí)行效率與速度,由于相鄰的迭代計(jì)算之間存在依賴關(guān)系,光靠流水線技術(shù)難以提高硬件設(shè)計(jì)的吞吐率。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明提供一種基于并行度可配置的sm3算法的數(shù)據(jù)加密方法及裝置,用以解決難以提高硬件設(shè)計(jì)的吞吐率的問題。
2、本發(fā)明提供一種基于并行度可配置的sm3算法的數(shù)據(jù)加密方法,包括:
3、對待加密消息進(jìn)行消息填充之后得到的填充后的消息進(jìn)行分組,得到多個消息分組;
4、基于預(yù)先配置的第一并行度,對各所述消息分組進(jìn)行消息擴(kuò)展,得到各所述消息分組對應(yīng)的多個消息字;其中,所述第一并行度表示至少一個消息擴(kuò)展模塊級聯(lián),所述消息擴(kuò)展模塊用于生成所述消息字;
5、基于各所述消息分組分別對應(yīng)的各所述消息字,對所述待加密消息進(jìn)行數(shù)據(jù)加密,得到加密后的數(shù)據(jù)。
6、根據(jù)本發(fā)明提供的一種基于并行度可配置的sm3算法的數(shù)據(jù)加密方法,所述基于各所述消息分組分別對應(yīng)的各所述消息字,對所述待加密消息進(jìn)行數(shù)據(jù)加密,得到加密后的數(shù)據(jù),包括:
7、基于預(yù)先配置的第二并行度和各所述消息分組分別對應(yīng)的各所述消息字,對所述待加密消息進(jìn)行數(shù)據(jù)加密,得到所述加密后的數(shù)據(jù);所述第二并行度表示至少一個消息迭代模塊級聯(lián),所述消息迭代模塊用于生成所述加密后的數(shù)據(jù)。
8、根據(jù)本發(fā)明提供的一種基于并行度可配置的sm3算法的數(shù)據(jù)加密方法,所述基于預(yù)先配置的第一并行度,對各所述消息分組進(jìn)行消息擴(kuò)展,得到各所述消息分組對應(yīng)的多個消息字,包括:
9、針對每個所述消息分組,將所述消息分組劃分為多個第一消息字;
10、基于所述第一并行度表示的級聯(lián)的消息擴(kuò)展模塊的數(shù)量,確定消息擴(kuò)展所需的時鐘周期;
11、基于所述消息擴(kuò)展所需的時鐘周期、各所述第一消息字和預(yù)先配置的第一并行度表示的所述至少一個消息擴(kuò)展模塊,得到多個第二消息字;
12、將各所述第一消息字和各所述第二消息字,確定為所述消息分組對應(yīng)的多個消息字。
13、根據(jù)本發(fā)明提供的一種基于并行度可配置的sm3算法的數(shù)據(jù)加密方法,所述基于所述時鐘周期、各所述第一消息字和預(yù)先配置的第一并行度表示的所述至少一個消息擴(kuò)展模塊,得到多個第二消息字,包括:
14、在當(dāng)前消息擴(kuò)展所需的時鐘周期內(nèi),將各所述第一消息字輸入至所述至少一個消息擴(kuò)展模塊中的第一個消息擴(kuò)展模塊,得到所述至少一個消息擴(kuò)展模塊中的最后一個消息擴(kuò)展模塊輸出的多個第三消息字;
15、在下一個消息擴(kuò)展所需的時鐘周期內(nèi),將各所述第三消息字和各所述第一消息字輸入至所述至少一個消息擴(kuò)展模塊中的所述第一個消息擴(kuò)展模塊,得到所述至少一個消息擴(kuò)展模塊中的最后一個消息擴(kuò)展模塊輸出的多個第四消息字;
16、重復(fù)執(zhí)行上述步驟,直至所有的消息擴(kuò)展所需的時鐘周期執(zhí)行完成,得到多個第五消息字;
17、將各所述第三消息字、各所述第四消息字和各所述第五消息字,確定為各所述第二消息字。
18、根據(jù)本發(fā)明提供的一種基于并行度可配置的sm3算法的數(shù)據(jù)加密方法,所述基于預(yù)先配置的第二并行度和各所述消息分組分別對應(yīng)的各所述消息字,對所述待加密消息進(jìn)行數(shù)據(jù)加密,得到所述加密后的數(shù)據(jù),包括:
19、基于所述第二并行度表示的級聯(lián)的消息迭代模塊的數(shù)量,確定消息迭代所需的時鐘周期;
20、基于所述消息迭代所需的時鐘周期、各所述消息分組分別對應(yīng)的各所述消息字和預(yù)先配置的第二并行度表示的所述至少一個消息迭代模塊,對所述待加密消息進(jìn)行數(shù)據(jù)加密,得到所述加密后的數(shù)據(jù)。
21、根據(jù)本發(fā)明提供的一種基于并行度可配置的sm3算法的數(shù)據(jù)加密方法,所述基于所述消息迭代所需的時鐘周期、各所述消息分組分別對應(yīng)的各所述消息字和預(yù)先配置的第二并行度表示的所述至少一個消息迭代模塊,對所述待加密消息進(jìn)行數(shù)據(jù)加密,得到所述加密后的數(shù)據(jù),包括:
22、在當(dāng)前消息迭代所需的時鐘周期內(nèi),將上一輪迭代的結(jié)果、各所述消息分組分別對應(yīng)的各所述消息字和尋址變量輸入至所述至少一個消息迭代模塊中的第一個消息迭代模塊,得到所述至少一個消息迭代模塊中的最后一個消息迭代模塊輸出的迭代結(jié)果;
23、在所述消息迭代所需的下一個時鐘周期內(nèi),將上個時鐘周期的迭代結(jié)果、各所述消息分組分別對應(yīng)的各所述消息字和新的尋址變量輸入至所述至少一個消息迭代模塊中的所述第一個消息迭代模塊,得到所述至少一個消息迭代模塊中的最后一個消息迭代模塊輸出的迭代結(jié)果;
24、重復(fù)執(zhí)行上述步驟,直至所有的消息迭代所需的時鐘周期執(zhí)行完成,最終得到所述加密后的數(shù)據(jù)。
25、本發(fā)明還提供一種基于并行度可配置的sm3算法的數(shù)據(jù)加密裝置,包括:
26、分組模塊,用于對待加密消息進(jìn)行消息填充之后得到的填充后的消息進(jìn)行分組,得到多個消息分組;
27、擴(kuò)展模塊,用于基于預(yù)先配置的第一并行度,對各所述消息分組進(jìn)行消息擴(kuò)展,得到各所述消息分組對應(yīng)的多個消息字;其中,所述第一并行度表示至少一個消息擴(kuò)展模塊級聯(lián),所述消息擴(kuò)展模塊用于生成所述消息字;
28、加密模塊,用于基于各所述消息分組分別對應(yīng)的各所述消息字,對所述待加密消息進(jìn)行數(shù)據(jù)加密,得到加密后的數(shù)據(jù)。
29、本發(fā)明還提供一種電子設(shè)備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運(yùn)行的計(jì)算機(jī)程序,所述處理器執(zhí)行所述計(jì)算機(jī)程序時實(shí)現(xiàn)如上述任一種所述基于并行度可配置的sm3算法的數(shù)據(jù)加密方法。
30、本發(fā)明還提供一種非暫態(tài)計(jì)算機(jī)可讀存儲介質(zhì),其上存儲有計(jì)算機(jī)程序,該計(jì)算機(jī)程序被處理器執(zhí)行時實(shí)現(xiàn)如上述任一種所述基于并行度可配置的sm3算法的數(shù)據(jù)加密方法。
31、本發(fā)明還提供一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時實(shí)現(xiàn)如上述任一種所述基于并行度可配置的sm3算法的數(shù)據(jù)加密方法。
32、本發(fā)明提供的基于并行度可配置的sm3算法的數(shù)據(jù)加密方法及裝置,通過對待加密消息進(jìn)行消息填充之后得到的填充后的消息進(jìn)行分組,得到多個消息分組;基于預(yù)先配置的第一并行度,對各所述消息分組進(jìn)行消息擴(kuò)展,得到各所述消息分組對應(yīng)的多個消息字;其中,所述第一并行度表示至少一個消息擴(kuò)展模塊級聯(lián),所述消息擴(kuò)展模塊用于生成所述消息字;基于各所述消息分組分別對應(yīng)的各所述消息字,對所述待加密消息進(jìn)行數(shù)據(jù)加密,得到加密后的數(shù)據(jù)。通過預(yù)先配置的第一并行度,實(shí)現(xiàn)各消息分組的消息擴(kuò)展,而且預(yù)先配置第一并行度可根據(jù)實(shí)際情況進(jìn)行調(diào)整,進(jìn)而實(shí)現(xiàn)數(shù)據(jù)加密,能夠提高硬件設(shè)計(jì)的吞吐率。