本發(fā)明屬于信息安全領域,具體涉及一種應用于信息安全的雜湊算法的硬件實現(xiàn)系統(tǒng)。
背景技術:
隨著信息技術的不斷進步,互聯(lián)網(wǎng)、大數(shù)據(jù)、物聯(lián)網(wǎng)、智能生活等技術應用的普及與發(fā)展,使得信息安全的重要性日益提高,身份認證與數(shù)據(jù)保護成為整個信息安全技術的核心與基礎。
目前公鑰加密體制作為已知最安全的信息加密處理方式,被廣泛應用在各領域的安全體系中,并且結(jié)合雜湊算法與對稱加解密算法可以形成完整的安全加解密及認證體系,滿足各類安全應用場景的需要。
2010年12月,國家密碼管理局發(fā)布了具有自主知識產(chǎn)權(quán)的《SM2橢圓曲線公鑰密碼算法》與《SM3密碼雜湊算法》等算法,實現(xiàn)了一套完整的安全加密與認證的算法體系,既統(tǒng)一規(guī)范了國內(nèi)的相關領域,又保證了無國外可利用的算法后門。其中SM3密碼雜湊算法既是SM2算法中重要的組成部分,用于身份認證運算;又可獨立使用,用于數(shù)據(jù)完整性驗證,是信息安全技術中的一個重要安全算法。
技術實現(xiàn)要素:
(一)要解決的技術問題
本發(fā)明要解決的技術問題是:針對信息安全中身份認證與數(shù)據(jù)完整性的實現(xiàn)需求,使用國家具有自主知識產(chǎn)權(quán)的《SM3密碼雜湊算法》,如何提供一種基于硬件的高效的雜湊算法實現(xiàn)系統(tǒng)。該系統(tǒng)作為獨立的算法核,實現(xiàn)對指定地址的數(shù)據(jù)進行Hash運算,并且對《SM3密碼雜湊算法》中算法實現(xiàn)進行了硬件優(yōu)化,可有效減少硬件存儲空間及節(jié)省運算周期。該系統(tǒng)應用于SoC芯片設計或FPGA開發(fā)中,可掛載使用常見的SoC片內(nèi)互連總線協(xié)議,如AXI、AHB協(xié)議等,并且支持具有安全屬性的芯片架構(gòu)。
(二)技術方案
為解決上述技術問題,本發(fā)明提供一種應用于信息安全的雜湊算法的硬件實現(xiàn)系統(tǒng),該系統(tǒng)包括:
消息輸入模塊,其用于按照SoC片內(nèi)互連總線協(xié)議獲取消息,并發(fā)送至消息填充模塊;
消息填充模塊,其用于滿足《SM3密碼雜湊算法》中5.2節(jié)的填充算法規(guī)范,將輸入的消息填充至512比特;
消息擴展模塊,其用于滿足《SM3密碼雜湊算法》中5.3.2節(jié)的擴展算法中W擴展與W’擴展的規(guī)范,對512比特消息進行擴展,W擴展將原消息擴展至2176比特,W’擴展采用W擴展結(jié)果得到2048比特數(shù)據(jù),共計4224比特;
每組消息的壓縮迭代過程需要連續(xù)64次循環(huán)調(diào)用壓縮變量模塊與壓縮運算模塊:
所述壓縮變量模塊,其用于滿足《SM3密碼雜湊算法》中4.3節(jié)的布爾運算FF與布爾運算GG,以及5.3.3節(jié)中規(guī)定的生成變量SS1、SS2、TT1、TT2;
壓縮運算模塊,其用于滿足《SM3密碼雜湊算法》中4.4節(jié)的置換函數(shù)P0與置換函數(shù)P1,以及5.3.3節(jié)中規(guī)定的生成變量A、B、C、D、E、F、G、H;
每組512比特的消息進行一輪消息迭代,所有消息迭代結(jié)束后產(chǎn)生最終結(jié)果;
下面描述所述消息擴展模塊、壓縮變量模塊、壓縮運算模塊三個模塊中消息的運算時序;定義《SM3密碼雜湊算法》中5.3.2節(jié)的擴展算法中W擴展使用的存儲空間為W空間共512比特,W’擴展使用的空間為W’空間共32比特;
時鐘周期T0:消息擴展模塊的啟動周期,滿足《SM3密碼雜湊算法》中5.3.2節(jié)的擴展算法生成數(shù)據(jù)W16與W’0;
時鐘周期T1:消息擴展模塊生成W17與W’1,壓縮變量模塊與壓縮運算模塊啟動并使用W0及T0周期生成的W’0,將T0周期生成的W16存儲至W0的空間;
時鐘周期T2:消息擴展模塊生成W18與W’2,壓縮變量模塊與壓縮運算模塊使用W1及T1周期生成的W’1,將T1周期生成的W17存儲至W1的空間;
時鐘周期T3:消息擴展模塊生成W19與W’3,壓縮變量模塊與壓縮運算模塊使用W2及T2周期生成的W’2,將T2周期生成的W18存儲至W2的空間;
時鐘周期T4:消息擴展模塊生成W20與W’4,壓縮變量模塊與壓縮運算模塊使用W3及T3周期生成的W’3,將T3周期生成的W19存儲至W3的空間;
由此直至-
時鐘周期T17:消息擴展模塊生成W33與W’17,壓縮變量模塊與壓縮運算模塊使用T0周期生成的W16及T16周期生成的W’16,系統(tǒng)將T16周期生成的W32存儲至W16的空間,即W0的空間;
由此直至-
時鐘周期T51:消息擴展模塊的W擴展運算完成,W’擴展運算生成W’51,壓縮變量模塊與壓縮運算模塊使用之前生成的W16與W’16,系統(tǒng)將T50周期生成的W66存儲至W50的空間,即W2的空間;
由此直至-
時鐘周期T63:消息擴展模塊的W’擴展運算完成;
時鐘周期T64:壓縮變量模塊與壓縮運算模塊運算完成。
(三)有益效果
首先,本發(fā)明的硬件結(jié)構(gòu)滿足《SM3密碼雜湊算法》(以下簡稱《算法》)的規(guī)范?!端惴ā芬?guī)定可處理最大263-1比特的消息,并對消息進行分組處理,每組處理的數(shù)據(jù)寬度固定為512比特,若最后一組消息不足512比特,則使用《算法》中5.2節(jié)規(guī)定的填充算法擴展至512比特,《算法》采用迭代處理的結(jié)構(gòu),每組消息的處理結(jié)果固定為256比特,最后一組迭代結(jié)果為最終算法結(jié)果。
其次本發(fā)明的硬件結(jié)構(gòu)優(yōu)化《算法》中的運算過程?!端惴ā愤\算過程主要包括:消息填充過程,即使用《算法》中5.2節(jié)填充算法擴展每輪輸入消息至512比特;消息擴展過程,即使用《算法》中5.3.2節(jié)的擴展算法將每輪填充后的512比特消息擴展為4224比特;迭代壓縮過程,即使用《算法》中5.3.1節(jié)的迭代算法與5.3.3節(jié)的壓縮算法對擴展后的消息進行64輪迭代處理,最后得到256比特的壓縮結(jié)果,完成一組消息的處理。本發(fā)明結(jié)構(gòu)的運算時序,可節(jié)省消息擴展過程中使用的數(shù)據(jù)存儲空間,又可對消息擴展過程與迭代壓縮過程實現(xiàn)并行處理,節(jié)省運算周期。
與現(xiàn)有技術相比較,本發(fā)明具備如下有益效果:
1.該系統(tǒng)實現(xiàn)滿足《算法》規(guī)范的SM3密碼雜湊算法的功能,可滿足身份認證與數(shù)據(jù)完整性驗證等應用需求;
2.該系統(tǒng)實現(xiàn)優(yōu)化了《算法》規(guī)范中數(shù)據(jù)存儲結(jié)構(gòu),節(jié)省了存儲擴展消息運算所需的硬件資源;
3.該系統(tǒng)實現(xiàn)優(yōu)化了《算法》規(guī)范中運算周期,將擴展運算整合至壓縮迭代過程中,有效的節(jié)省了擴展運算周期;
4.該系統(tǒng)支持使用SoC片內(nèi)互連總線協(xié)議,可作為IP核的形式靈活嵌入各類SoC芯片與FPGA設計中。
附圖說明
圖1:本發(fā)明的具體實施結(jié)構(gòu)框圖。
圖2:本發(fā)明的運算時序結(jié)構(gòu)示意圖。
具體實施方式
為使本發(fā)明的目的、內(nèi)容、和優(yōu)點更加清楚,下面結(jié)合附圖和實施例,對本發(fā)明的具體實施方式作進一步詳細描述。
為解決現(xiàn)有技術的問題,本發(fā)明提供一種應用于信息安全的雜湊算法的硬件實現(xiàn)系統(tǒng),如圖1所示,該系統(tǒng)包括:
消息輸入模塊,其用于按照SoC片內(nèi)互連總線協(xié)議獲取消息,本結(jié)構(gòu)推薦使用AHB總線協(xié)議,并發(fā)送至消息填充模塊;
消息填充模塊,其用于滿足《SM3密碼雜湊算法》中5.2節(jié)的填充算法規(guī)范,將輸入的消息填充至512比特;
消息擴展模塊,其用于滿足《SM3密碼雜湊算法》中5.3.2節(jié)的擴展算法中W擴展與W’擴展的規(guī)范,對512比特消息進行擴展,W擴展將原消息擴展至2176比特,W’擴展采用W擴展結(jié)果得到2048比特數(shù)據(jù),共計4224比特;
每組消息的壓縮迭代過程需要連續(xù)64次循環(huán)調(diào)用壓縮變量模塊與壓縮運算模塊:
所述壓縮變量模塊,其用于滿足《SM3密碼雜湊算法》中4.3節(jié)的布爾運算FF與布爾運算GG,以及5.3.3節(jié)中規(guī)定的生成變量SS1、SS2、TT1、TT2;
壓縮運算模塊,其用于滿足《SM3密碼雜湊算法》中4.4節(jié)的置換函數(shù)P0與置換函數(shù)P1,以及5.3.3節(jié)中規(guī)定的生成變量A、B、C、D、E、F、G、H;
每組512比特的消息進行一輪消息迭代,所有消息迭代結(jié)束后產(chǎn)生最終結(jié)果;
本發(fā)明結(jié)構(gòu)的具體運算過程如附圖2所示,下面描述附圖1中所述消息擴展模塊、壓縮變量模塊、壓縮運算模塊三個模塊中消息的運算時序;定義《SM3密碼雜湊算法》中5.3.2節(jié)的擴展算法中W擴展使用的存儲空間為W空間共512比特,W’擴展使用的空間為W’空間共32比特;
時鐘周期T0:消息擴展模塊的啟動周期,滿足《SM3密碼雜湊算法》中5.3.2節(jié)的擴展算法生成數(shù)據(jù)W16與W’0;
時鐘周期T1:消息擴展模塊生成W17與W’1,壓縮變量模塊與壓縮運算模塊啟動并使用W0及T0周期生成的W’0,將T0周期生成的W16存儲至W0的空間;
時鐘周期T2:消息擴展模塊生成W18與W’2,壓縮變量模塊與壓縮運算模塊使用W1及T1周期生成的W’1,將T1周期生成的W17存儲至W1的空間;
時鐘周期T3:消息擴展模塊生成W19與W’3,壓縮變量模塊與壓縮運算模塊使用W2及T2周期生成的W’2,將T2周期生成的W18存儲至W2的空間;
時鐘周期T4:消息擴展模塊生成W20與W’4,壓縮變量模塊與壓縮運算模塊使用W3及T3周期生成的W’3,將T3周期生成的W19存儲至W3的空間;
由此直至-
時鐘周期T17:消息擴展模塊生成W33與W’17,壓縮變量模塊與壓縮運算模塊使用T0周期生成的W16及T16周期生成的W’16,系統(tǒng)將T16周期生成的W32存儲至W16的空間,即W0的空間;
由此直至-
時鐘周期T51:消息擴展模塊的W擴展運算完成,W’擴展運算生成W’51,壓縮變量模塊與壓縮運算模塊使用之前生成的W16與W’16,系統(tǒng)將T50周期生成的W66存儲至W50的空間,即W2的空間;
由此直至-
時鐘周期T63:消息擴展模塊的W’擴展運算完成;
時鐘周期T64:壓縮變量模塊與壓縮運算模塊運算完成。
以上所述僅是本發(fā)明的優(yōu)選實施方式,應當指出,對于本技術領域的普通技術人員來說,在不脫離本發(fā)明技術原理的前提下,還可以做出若干改進和變形,這些改進和變形也應視為本發(fā)明的保護范圍。