本發(fā)明專利技術(shù)實(shí)施例涉及一種SM4加速方法與裝置。方法包括:在計(jì)算裝置原有內(nèi)部寄存器的基礎(chǔ)上,增設(shè)輔助寄存器,對(duì)加密密鑰進(jìn)行輪密鑰擴(kuò)展計(jì)算以生成輪密鑰,以輪密鑰處理輸入的消息;輪密鑰擴(kuò)展計(jì)算和以所述輪密鑰處理輸入的消息中的至少其中之一,通過擴(kuò)展指令實(shí)現(xiàn);將所述計(jì)算產(chǎn)生的輪密鑰和處理結(jié)果存入預(yù)設(shè)寄存器。實(shí)施本發(fā)明專利技術(shù)實(shí)施例,通過軟硬結(jié)合的方式提升SM4運(yùn)算的效率并兼顧成本,達(dá)到資源的更佳配置。
A SM4 Acceleration Method and Device
【技術(shù)實(shí)現(xiàn)步驟摘要】
一種SM4加速方法和裝置
本專利技術(shù)實(shí)施例涉及計(jì)算機(jī)
,尤其涉及一種SM4加速方法和裝置。
技術(shù)介紹
SM4是國(guó)家密碼管理局發(fā)布的一種分組密碼算法(GMT0002-2012),該算法的分組長(zhǎng)度和密鑰長(zhǎng)度均為128比特。加密算法和密鑰擴(kuò)展算法都采用32輪非線性迭代結(jié)構(gòu)。加密和解密的算法結(jié)構(gòu)相同,只是輪密鑰的使用順序相反,解密輪密鑰是加密輪密鑰的逆序。對(duì)于某些計(jì)算裝置,如通用處理器,使用純軟件進(jìn)行SM4雜湊運(yùn)算時(shí),往往出現(xiàn)效率低下以及長(zhǎng)時(shí)間占用該裝置的缺點(diǎn),由此導(dǎo)致系統(tǒng)資源分配緊張和功耗的增加。而一些硬件解決方案,純硬件實(shí)現(xiàn)SM4雜湊運(yùn)算,又過多的增加了硬件成本。如何提升SM4運(yùn)算的效率并兼顧成本,達(dá)到資源的更佳配置,是本領(lǐng)域亟待解決的問題。
技術(shù)實(shí)現(xiàn)思路
本專利技術(shù)實(shí)施例提供一種SM4加速方法和裝置,可有效提升SM4運(yùn)算的效率并兼顧成本,達(dá)到資源的更佳配置。第一方面,本專利技術(shù)實(shí)施例提供一種SM4加速方法,應(yīng)用于設(shè)有內(nèi)部寄存器的計(jì)算裝置,方法包括:為所述裝置增加預(yù)設(shè)數(shù)量的輔助寄存器;對(duì)加密密鑰進(jìn)行輪密鑰擴(kuò)展計(jì)算以生成輪密鑰;以所述輪密鑰處理輸入的消息;所述輪密鑰擴(kuò)展計(jì)算和以所述輪密鑰處理輸入的消息中的至少其中之一,通過擴(kuò)展指令實(shí)現(xiàn);將所述計(jì)算產(chǎn)生的輪密鑰和處理結(jié)果存入預(yù)設(shè)寄存器。可選的,輸入的消息具體為消息明文或消息密文;所述以所述輪密鑰處理輸入的消息,具體為以所述輪密鑰加密消息明文的計(jì)算或以所述輪密鑰解密消息密文的計(jì)算。可選的,擴(kuò)展指令既調(diào)用所述內(nèi)部寄存器,也調(diào)用所述輔助寄存器。可選的,擴(kuò)展指令包括6個(gè)操作數(shù),其中2個(gè)操作數(shù)由所述裝置內(nèi)部寄存器賦值,其中4個(gè)操作數(shù)由所述輔助寄存器賦值。可選的,所述裝置為32位寬的裝置。另一方面,本專利技術(shù)實(shí)施例還提供一種SM4加速裝置,設(shè)有內(nèi)部寄存器,包括:預(yù)設(shè)數(shù)量的輔助寄存器;擴(kuò)展指令計(jì)算單元,用于對(duì)加密密鑰進(jìn)行輪密鑰擴(kuò)展計(jì)算以生成輪密鑰,以及,以所述輪密鑰處理輸入的消息;所述擴(kuò)展指令計(jì)算單元,對(duì)所述輪密鑰擴(kuò)展計(jì)算的執(zhí)行和以所述輪密鑰處理輸入的消息的執(zhí)行中的至少其中之一,通過擴(kuò)展指令實(shí)現(xiàn);存儲(chǔ)單元,用于將所述計(jì)算產(chǎn)生的輪密鑰和處理結(jié)果存入預(yù)設(shè)寄存器。可選的,輸入的消息具體為消息明文或消息密文;以所述輪密鑰處理輸入的消息,具體為以所述輪密鑰加密所述消息明文的計(jì)算或以所述輪密鑰解密所述消息密文的計(jì)算。可選的,擴(kuò)展指令既調(diào)用所述內(nèi)部寄存器,也調(diào)用所述輔助寄存器。可選的,擴(kuò)展指令包括6個(gè)操作數(shù),其中2個(gè)操作數(shù)由所述裝置內(nèi)部寄存器賦值,其中4個(gè)操作數(shù)由所述輔助寄存器賦值。可選的,所述裝置為32位寬的裝置。本專利技術(shù)實(shí)施例中,在計(jì)算裝置原有內(nèi)部寄存器的基礎(chǔ)上,增設(shè)輔助寄存器,對(duì)加密密鑰進(jìn)行輪密鑰擴(kuò)展計(jì)算以生成輪密鑰,以輪密鑰處理輸入的消息;輪密鑰擴(kuò)展計(jì)算和以所述輪密鑰處理輸入的消息中的至少其中之一,通過擴(kuò)展指令實(shí)現(xiàn);將所述計(jì)算產(chǎn)生的輪密鑰和處理結(jié)果存入預(yù)設(shè)寄存器,實(shí)施本專利技術(shù)實(shí)施例。通過軟硬結(jié)合的方式提升SM4運(yùn)算的效率并兼顧成本,達(dá)到資源的更佳配置。附圖說明為了更清楚地說明本專利技術(shù)實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖對(duì)應(yīng)的是本專利技術(shù)的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本專利技術(shù)實(shí)施例提供的SM4加速方法實(shí)施例的流程圖;圖2為本專利技術(shù)實(shí)施例提供的SM4輪密鑰擴(kuò)展示意圖;圖3為本專利技術(shù)實(shí)施例提供的SM4以輪密鑰加密輸入消息的示意圖;圖4為本專利技術(shù)實(shí)施例提供的SM4加速裝置示意圖;圖5為本專利技術(shù)實(shí)施例提供的SM4加速裝置結(jié)合執(zhí)行流程的示意圖。具體實(shí)施方式為使本專利技術(shù)實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本專利技術(shù)實(shí)施例中的附圖,對(duì)本專利技術(shù)實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本專利技術(shù)一部分實(shí)施例,而不是全部的實(shí)施例。基于本專利技術(shù)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本專利技術(shù)保護(hù)的范圍。SM4雜湊算法的主要流程包括:消息填充,消息擴(kuò)展和壓縮函數(shù)。請(qǐng)參閱圖1,為本專利技術(shù)提供的SM4加速方法實(shí)施例的流程圖;本實(shí)施例的方法應(yīng)用于設(shè)有內(nèi)部寄存器的計(jì)算裝置,例如32位寬的通用處理器,包括步驟:S101、為所述裝置增加預(yù)設(shè)數(shù)量的輔助寄存器;可選的,增加的輔助寄存器為4個(gè),此處分別命名為smau40、smau41、smau42、smau43。這些命名是示例性的,且先后順序不做限定;可以理解的是,增加輔助寄存器的數(shù)量可以根據(jù)實(shí)際需要做調(diào)整,在本專利技術(shù)實(shí)施例構(gòu)思的基礎(chǔ)上,對(duì)輔助寄存器的數(shù)量進(jìn)行任何的調(diào)整均應(yīng)屬于本專利技術(shù)保護(hù)范圍。S102、對(duì)加密密鑰進(jìn)行輪密鑰擴(kuò)展計(jì)算以生成輪密鑰;SM4是一種基于128比特長(zhǎng)度分組的密碼運(yùn)算,加密密鑰長(zhǎng)度是128比特。SM4密碼運(yùn)算需要進(jìn)行32輪,每一輪均需要一個(gè)不同的輪密鑰。輪密鑰是由加密密鑰通過密鑰擴(kuò)展算法產(chǎn)生的。輪密鑰擴(kuò)展如圖2所示。圖中為異或運(yùn)算;MK0、MK1、MK2、MK3為128比特加密密鑰的分解,均為32比特;FK0、FK1、FK2、FK3均為固定常數(shù),用十六進(jìn)制表示為:FK0=A3B1BAC6,FK1=56AA3350,FK2=677D9197,FK3=B27022DC。CKn也是固定常數(shù),n為≥0且≤31的整數(shù),在32輪中,每一輪數(shù)值都不同,CK0、CK1、……CK31用十六進(jìn)制表示分別為:00070e15,1c232a31,383f464d,545b6269,70777e85,8c939aa1,a8afb6bd,c4cbd2d9,e0e7eef5,fc030a11,181f262d,343b4249,50575e65,6c737a81,888f969d,a4abb2b9,c0c7ced5,dce3eaf1,f8ff060d,141b2229,30373e45,4c535a61,686f767d,848b9299,a0a7aeb5,bcc3cad1,d8dfe6ed,f4fb0209,10171e25,2c333a41,484f565d,646b7279。X0、X1、X2、X3、X4、……X32、X33、X34、X35為計(jì)算過程中產(chǎn)生的32比特變量。S為S盒,其實(shí)質(zhì)為非線性變換,可通過查找表的方式實(shí)現(xiàn),本專利技術(shù)實(shí)施例不再一一列舉,具體可見GMT0002-2012標(biāo)準(zhǔn)。標(biāo)記為A的矩形框,之前的計(jì)算結(jié)果是32比特的,標(biāo)記為A的矩形框表示將32比特的數(shù)分成四個(gè)8比特的數(shù),然后分別輸入S盒中。L′-Layer為線性變換,滿足公式:L′(X)=XXOR(X<<<13)XOR(X<<<23),其中,XOR為異或運(yùn)算,<<<為循環(huán)左移運(yùn)算。每經(jīng)過一輪計(jì)算,會(huì)產(chǎn)生一個(gè)輪密鑰,比如第一輪計(jì)算完成后,產(chǎn)生的X4即第一輪的輪密鑰rk0,第二輪計(jì)算完成后,產(chǎn)生的X5即為第二輪的輪密鑰rk1,以此類推,第32輪計(jì)算完成后,產(chǎn)生的X35即為第32輪的輪密鑰rk31。本實(shí)施例中,輪密鑰擴(kuò)展計(jì)算可通過擴(kuò)展指令實(shí)現(xiàn),該擴(kuò)展指令命名為SM4CRPT。SM4CRPT一共有六個(gè)操作數(shù),其中兩個(gè)可用該計(jì)算裝置的內(nèi)部寄存器賦值,其他四個(gè)操作數(shù)需借助前述四個(gè)輔助寄存器smau40、smau41、smau42、smau43。初始化本文檔來自技高網(wǎng)...
【技術(shù)保護(hù)點(diǎn)】
1.一種SM4加速方法,應(yīng)用于設(shè)有內(nèi)部寄存器的計(jì)算裝置,其特征在于,所述方法包括:為所述裝置增加預(yù)設(shè)數(shù)量的輔助寄存器;對(duì)加密密鑰進(jìn)行輪密鑰擴(kuò)展計(jì)算以生成輪密鑰;以所述輪密鑰處理輸入的消息;所述輪密鑰擴(kuò)展計(jì)算和以所述輪密鑰處理輸入的消息中的至少其中之一,通過擴(kuò)展指令實(shí)現(xiàn);將所述計(jì)算產(chǎn)生的輪密鑰和處理結(jié)果存入預(yù)設(shè)寄存器。
【技術(shù)特征摘要】
1.一種SM4加速方法,應(yīng)用于設(shè)有內(nèi)部寄存器的計(jì)算裝置,其特征在于,所述方法包括:為所述裝置增加預(yù)設(shè)數(shù)量的輔助寄存器;對(duì)加密密鑰進(jìn)行輪密鑰擴(kuò)展計(jì)算以生成輪密鑰;以所述輪密鑰處理輸入的消息;所述輪密鑰擴(kuò)展計(jì)算和以所述輪密鑰處理輸入的消息中的至少其中之一,通過擴(kuò)展指令實(shí)現(xiàn);將所述計(jì)算產(chǎn)生的輪密鑰和處理結(jié)果存入預(yù)設(shè)寄存器。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述輸入的消息具體為消息明文或消息密文;所述以所述輪密鑰處理輸入的消息,具體為以所述輪密鑰加密消息明文的計(jì)算或以所述輪密鑰解密消息密文的計(jì)算。3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述擴(kuò)展指令既調(diào)用所述內(nèi)部寄存器,也調(diào)用所述輔助寄存器。4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述擴(kuò)展指令包括6個(gè)操作數(shù),其中2個(gè)操作數(shù)由所述裝置內(nèi)部寄存器賦值,其中4個(gè)操作數(shù)由所述輔助寄存器賦值。5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述裝置為32位寬的裝置。6.一種SM4加速裝置,...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:高夫,
申請(qǐng)(專利權(quán))人:深圳市紐創(chuàng)信安科技開發(fā)有限公司,
類型:發(fā)明
國(guó)別省市:廣東,44
還沒有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。