999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

SM3雜湊算法的軟件快速實(shí)現(xiàn)研究

2015-02-24 01:53:21楊先偉康紅娟
智能系統(tǒng)學(xué)報(bào) 2015年6期
關(guān)鍵詞:優(yōu)化

楊先偉,康紅娟

(1. 無(wú)錫職業(yè)技術(shù)學(xué)院 基礎(chǔ)部,江蘇 無(wú)錫 214121; 2. 四川長(zhǎng)虹電器股份有限公司,四川 成都 610041)

?

SM3雜湊算法的軟件快速實(shí)現(xiàn)研究

楊先偉1,康紅娟2

(1. 無(wú)錫職業(yè)技術(shù)學(xué)院 基礎(chǔ)部,江蘇 無(wú)錫 214121; 2. 四川長(zhǎng)虹電器股份有限公司,四川 成都 610041)

摘要:雜湊算法是密碼學(xué)中最基本的模塊之一,可廣泛應(yīng)用于密碼協(xié)議、數(shù)字簽名、消息鑒別等領(lǐng)域。我國(guó)國(guó)家密碼管理局在2010年發(fā)布了SM3密碼雜湊算法,該算法適用于商用密碼應(yīng)用中的數(shù)字簽名和驗(yàn)證、消息認(rèn)證碼的生成與驗(yàn)證以及隨機(jī)數(shù)的生成等。該文重點(diǎn)研究SM3密碼雜湊算法的軟件快速實(shí)現(xiàn),根據(jù)算法本身的特點(diǎn),尤其是壓縮函數(shù)的特點(diǎn),給出一種更加適用于軟件的快速實(shí)現(xiàn)方式。實(shí)驗(yàn)表明利用此方法可以將算法的效率提升60%左右。

關(guān)鍵詞:SM3算法;雜湊函數(shù);軟件快速實(shí)現(xiàn); 數(shù)字簽名;消息鑒別;完整性認(rèn)證;數(shù)字指紋; 壓縮函數(shù)

中文引用格式:楊先偉,康紅娟. SM3雜湊算法的軟件快速實(shí)現(xiàn)研究[J]. 智能系統(tǒng)學(xué)報(bào), 2015, 10(6): 954-959.

哈希(Hash)函數(shù),也叫雜湊函數(shù),是密碼學(xué)中最基本的模塊之一,廣泛應(yīng)用于密碼協(xié)議、數(shù)字簽名、消息鑒別、完整性認(rèn)證等領(lǐng)域。因此,它在密碼學(xué)中扮演著極其重要的角色。

雜湊函數(shù)的目的是產(chǎn)生數(shù)據(jù)塊的“指紋”,它可以對(duì)任意長(zhǎng)度的信息產(chǎn)生定長(zhǎng)的輸出。這個(gè)變換過(guò)程軟硬件均易于計(jì)算實(shí)現(xiàn),但其逆向變換過(guò)程在計(jì)算上不可行,即具有單向性。出于安全性的考慮,雜湊函數(shù)還必須滿足抗弱碰撞性和抗強(qiáng)碰撞性。1991年,Ron Rivest提出了MD5算法,這曾經(jīng)是使用最為廣泛的雜湊算法。從20世紀(jì)90年代年開(kāi)始,美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)研究院(NIST)陸續(xù)公布了SHA系列[1],并通過(guò)公開(kāi)競(jìng)賽方式征集SHA-3[2]。

中國(guó)國(guó)家密碼管理局在2010年發(fā)布了SM3密碼雜湊算法[3],該算法適用于商用密碼中的多種應(yīng)用,滿足多種密碼應(yīng)用的安全需求:1)數(shù)字簽名和驗(yàn)證,如作為SM2算法中數(shù)字簽名所需的雜湊函數(shù);2)消息認(rèn)證碼的生成與驗(yàn)證,消息認(rèn)證碼不僅可以使用分組密碼算法基于特定的工作模式生成,也可以使用SM3等雜湊函數(shù)生成;3)隨機(jī)數(shù)的生成。

哈希函數(shù)在各種平臺(tái)和環(huán)境下的執(zhí)行效率是非常重要的考量指標(biāo)之一,比如服務(wù)器端常需執(zhí)行的SSL/TLS協(xié)議就使用了哈希函數(shù)進(jìn)行認(rèn)證。目前已有大量文章對(duì)SHA系列算法的軟件快速實(shí)現(xiàn)進(jìn)行研究,比如Acii?mez[4]提出基于SIMD技術(shù)快速實(shí)現(xiàn)哈希算法,Gueron等[5-6]對(duì)并行處理多個(gè)消息的情況進(jìn)行了研究。同樣也有大量文章對(duì)SM3算法的軟硬件快速實(shí)現(xiàn)進(jìn)行研究。張倩等[7]提出了一種ASIC高效實(shí)現(xiàn)架構(gòu);王曉燕等[8]基于FPGA設(shè)計(jì)SM3算法IP核的整體架構(gòu),對(duì)關(guān)鍵邏輯進(jìn)行優(yōu)化設(shè)計(jì);伍娟[9]以同方公司THD86智能卡芯片為硬件平臺(tái)實(shí)現(xiàn)了SM3算法;曾小波等[10]分析了基于8051軟核的SM3算法IP原理、設(shè)計(jì)流程及實(shí)現(xiàn)方案,該方案在時(shí)序和面積上均做到相當(dāng)程度的優(yōu)化,并提高了算法的效率;沈一公等[11]基于Android平臺(tái)研究了SM3算法的快速實(shí)現(xiàn),并以此為基礎(chǔ)研究文件防篡改以便檢查手機(jī)軟件的安裝;易叔賢等[12]結(jié)合已經(jīng)將SM系列算法納入其中的PBOC 3.0新規(guī)范,分析考慮SM2、SM3、SM4算法在金融IC卡領(lǐng)域的實(shí)現(xiàn)和應(yīng)用。

與這些研究相比,文本研究的側(cè)重點(diǎn)是SM3算法在普通軟件平臺(tái)下的快速實(shí)現(xiàn)方式。文本根據(jù)算法以及壓縮函數(shù)的特點(diǎn),給出一種更加適用于軟件快速實(shí)現(xiàn)的算法描述方式和實(shí)現(xiàn)方法,本文提出的實(shí)現(xiàn)方法具有以下優(yōu)點(diǎn):首先,此方法避免了普通實(shí)現(xiàn)中可能采用的效率較低的實(shí)現(xiàn)架構(gòu)和運(yùn)算方式,可較大地提高算法的軟件效率,經(jīng)多個(gè)軟件平臺(tái)對(duì)比測(cè)試,本文的實(shí)現(xiàn)方法可將算法效率提升60%左右;其次,此方式不基于特定的軟件平臺(tái)、架構(gòu)、指令等,具有很強(qiáng)的跨平臺(tái)性和兼容性。

1SM3算法簡(jiǎn)介

SM3雜湊算法可將長(zhǎng)度小于264比特的消息經(jīng)過(guò)填充、反復(fù)的消息擴(kuò)展和壓縮,生成長(zhǎng)度為256 比特的雜湊值。在SM3算法中,字表示長(zhǎng)度為32的比特串。

1.1函數(shù)

布爾函數(shù)FFi(X,Y,Z)、GGi(X,Y,Z),0≤i≤63的定義如下:

FFi(X,Y,Z)=

GGi(X,Y,Z)=

置換函數(shù)P0(X)和P1(X)的定義如下:

1.2填充

設(shè)消息的長(zhǎng)度為l 比特。填充方式為:首先將比特“1”添加到消息的末尾;然后添加k個(gè)“0”,k是滿足l+1+k=448mod512的最小的非負(fù)整數(shù);最后再將消息長(zhǎng)度l的64位二進(jìn)制表示添加在最末。填充后的消息比特長(zhǎng)度為512的倍數(shù)。

1.3迭代壓縮

填充后的消息m′按512 比特進(jìn)行分組:m′=B(0)‖…‖B(n-1).對(duì)每個(gè)分組利用壓縮函數(shù)CF進(jìn)行迭代:

FOR i=0 TO n-1

V(i+1)←CF(V(i),B(i))

END FOR

1.4壓縮函數(shù)

壓縮函數(shù)CF的計(jì)算過(guò)程如下:

首先,計(jì)算消息擴(kuò)展字Wi,0≤i≤67和Wi′,0≤i≤63,步驟如下:

W0‖…‖W15=B(i)

FOR i=16 TO 67

Wi←P1(Wi-16⊕Wi-9⊕(Wi-3<<<15))⊕(Wi-13<<<7)⊕Wi-6

END FOR

FOR i=0 TO 63

END FOR

然后,進(jìn)行包含64輪迭代的壓縮,步驟如下:

A‖B‖C‖D‖E‖F(xiàn)‖G‖H←V(i)

FOR i=0 TO 63

SS1←((A<<<12)+E+(Tj<<

SS2←SS1⊕(A<<<12)

TT1←FFi(A,B,C)+D+SS2+Wi′

TT2←GGi(E,F,G)+H+SS1+Wi

D←C

C←B<<<9

B←A

A←TT1

H←G

G←F<<<19

F←E

E←P0(TT2)

END FOR

V(i+1)←V(i)⊕(A‖B‖C‖D‖E‖F(xiàn)‖G‖H)1.5輸出雜湊值

256比特雜湊值y的計(jì)算方式為

2軟件快速實(shí)現(xiàn)

從理論上講,SM3算法中使用最多且最耗時(shí)的是64輪壓縮函數(shù)和消息擴(kuò)展。利用Intel VTune Amplifier XE分析算法熱點(diǎn),得出信息如下表。

表1 普通實(shí)現(xiàn)時(shí)的熱點(diǎn)

熱點(diǎn)信息顯示,壓縮函數(shù)和消息擴(kuò)展的確是最耗時(shí)的2個(gè)部分,其耗時(shí)分別占總耗時(shí)的65.9%和24.3%。因此,快速實(shí)現(xiàn)的關(guān)鍵在怎樣快速實(shí)現(xiàn)壓縮函數(shù)和消息擴(kuò)展。

2.1消息擴(kuò)展的快速實(shí)現(xiàn)

1)首先在執(zhí)行64輪壓縮函數(shù)前只計(jì)算初始的4個(gè)字W0,…,W3;

2.2壓縮函數(shù)的快速實(shí)現(xiàn)

壓縮函數(shù)的快速實(shí)現(xiàn)可以從結(jié)構(gòu)調(diào)整、流程變更、常數(shù)計(jì)算等方面著手。

1)壓縮函數(shù)的結(jié)構(gòu)可以做適當(dāng)?shù)恼{(diào)整。壓縮函數(shù)每一輪的最末會(huì)執(zhí)行如下所示的循環(huán)右移,A‖B‖C‖D←(A‖B‖C‖D)>>>32,E‖F(xiàn)‖G‖H←(E‖F(xiàn)‖G‖H)>>>32。為了減少循環(huán)移位導(dǎo)致的不必要的賦值運(yùn)算,可以將字的循環(huán)右移變更每輪輸入字順序的變動(dòng),且這個(gè)順序變動(dòng)會(huì)在4輪后還原,具體情況如下(以下用OneRound(·)表示一輪壓縮):

OneRound(i+0,A,B,C,D,E,F,G,H,W)

OneRound(i+1,D,A,B,C,H,E,F,G,W)

OneRound(i+2,C,D,A,B,G,H,E,F,W)

OneRound(i+3,B,C,D,A,F,G,H,E,W)

2)可以優(yōu)化壓縮函數(shù)的中間變量的生成流程。此優(yōu)化生成流程可以去除不必要的賦值,減少中間變量個(gè)數(shù)。優(yōu)化后的執(zhí)行步驟如下(其中ti=Ti<<

TT2←A<<<12

TT1←TT2+E+ti

TT1←TT1<<<7

TT2←TT2⊕TT1

3)利用上述調(diào)整以及消息擴(kuò)展部分的調(diào)整可以將原來(lái)計(jì)算TT1、TT2、D和H的過(guò)程進(jìn)行如下的進(jìn)一步簡(jiǎn)化。

H←H+GGi(A,B,C)+TT1+Wi

4)預(yù)先計(jì)算并存儲(chǔ)常數(shù)ti=Ti<<

2.3調(diào)整后的算法描述

優(yōu)化后的算法將消息擴(kuò)展和壓縮函數(shù)結(jié)合在一起。下面先描述調(diào)整后的消息處理算法,該算法完成消息擴(kuò)展和64輪壓縮迭代;再描述調(diào)整后的一輪算法,該算法完成一輪壓縮迭代,包括計(jì)算必需的消息擴(kuò)展字Wi+4。調(diào)整后的消息處理算法描述如下。

算法1 調(diào)整后的消息處理算法

ProcessBlock(V,M)

輸入:上輪迭代結(jié)果V,一個(gè)消息分組B

輸出:本輪迭代結(jié)果V

中間變量:字寄存器A—H,

步驟:

1)W0‖W1‖W2‖W3←B0‖B1‖B2‖B3,

2)A‖B‖C‖D‖E‖F(xiàn)‖G‖H←V,

3)FOR (i=0,4,8,…,60),

OneRound(i+0,A,B,C,D,E,F,G,H,W),

OneRound(i+1,D,A,B,C,H,E,F,G,W),

OneRound(i+2,C,D,A,B,G,H,E,F,W),

OneRound(i+3,B,C,D,A,F,G,H,E,W),

END FOR

4)V←V⊕(A‖B‖C‖D‖E‖F(xiàn)‖G‖H),

5)返回V。

對(duì)算法1做以下幾點(diǎn)說(shuō)明:這里的B0‖B1‖…‖B15=B分別代表消息的16個(gè)字;前4個(gè)消息擴(kuò)展字W0、W1、W2、W3需在循環(huán)前計(jì)算出來(lái),進(jìn)入后面的循環(huán)后,每次執(zhí)行OneRound(i,*)將計(jì)算Wi+4。

調(diào)整后的一輪壓縮算法如下。

算法2調(diào)整后的一輪壓縮算法

OneRound(i,A,B,C,D,E,F,G,H,W)

輸入:字寄存器A—H,輪序號(hào)i,消息擴(kuò)展字?jǐn)?shù)組W=(W0,…,W67)

輸出:更新后的A—H和W=(W0,…,W67)

步驟:

1)計(jì)算消息擴(kuò)展字Wi+4

IF(i<12)Wi+4←Bi+4

ELSE Wi+4←P1(Wi-12⊕Wi-5⊕(Wi+1<<<15))⊕(Wi-9<<<7)⊕Wi-2

END IF

2)計(jì)算中間變量TT1和TT2

TT2←A<<<12

TT1←TT2+E+ti

TT1←TT1<<<7

TT2←TT2⊕TT1

3)僅更新字寄存器B、D、F、H。

H←H+GGi(E,F,G)+TT1+Wi

F←F<<<19

H←P0(H)

4)返回更新后的A—H和W=(W0,…,W67)。

對(duì)算法2做以下幾點(diǎn)說(shuō)明:進(jìn)入第i輪的算法2之時(shí),消息擴(kuò)展字只有{Wk|k

32種實(shí)現(xiàn)方式的計(jì)算量分析評(píng)估

為了從理論上評(píng)估新方法的效率,本節(jié)對(duì)2種方法的計(jì)算量進(jìn)行詳細(xì)對(duì)比。由于算法的操作主要集中在壓縮函數(shù)中,因此以下對(duì)壓縮函數(shù)的計(jì)算量進(jìn)行統(tǒng)計(jì)、分析和對(duì)比。優(yōu)化前的方法嚴(yán)格按照標(biāo)準(zhǔn)文檔,先計(jì)算消息擴(kuò)展字,再進(jìn)行64輪迭代,優(yōu)化后的方法則按照上一節(jié)描述的算法1和算法2進(jìn)行實(shí)現(xiàn)。以下用LOAD和STORE表示數(shù)據(jù)加載和存儲(chǔ),XOR表示異或運(yùn)算,ROT表示移位運(yùn)算,ADD表示加法運(yùn)算,AND表示與運(yùn)算,OR表示或運(yùn)算,NOT表示非運(yùn)算。

優(yōu)化前的算法中,消息擴(kuò)展的計(jì)算量為:

1)計(jì)算前16個(gè)Wi時(shí)每個(gè)需執(zhí)行1次LOAD和1次STORE,計(jì)算后52個(gè)Wi時(shí)每個(gè)需執(zhí)行5次LOAD、1次STORE、6次XOR、4次ROT;

3)計(jì)算壓縮函數(shù)的一次迭代需要執(zhí)行3次LOAD、12次STORE、8次ADD、3次XOR、8次ROT、1次FFi函數(shù)和1次GGi函數(shù),

4)FFi函數(shù)和GGi函數(shù)的計(jì)算量是,前16次FFi函數(shù)需執(zhí)行2次XOR和2次ROT,前16次GGi函數(shù)需執(zhí)行2次XOR和2次ROT,后48次FFi函數(shù)需執(zhí)行3次AND和2次OR,后48次GGi函數(shù)需執(zhí)行2次AND、1次OR、1次NOT。

根據(jù)以上統(tǒng)計(jì)分析,表2列出了優(yōu)化前的算法中對(duì)一個(gè)512 比特的消息塊執(zhí)行一次完整的壓縮所需的計(jì)算量。

優(yōu)化后的算法中,消息擴(kuò)展的計(jì)算量為:

1)計(jì)算前12個(gè)Wi+4時(shí)每個(gè)需執(zhí)行1次LOAD和1次STORE,計(jì)算后52個(gè)Wi+4時(shí)每個(gè)需執(zhí)行5次LOAD、1次STORE、6次XOR、4次ROT;

2)計(jì)算中間變量TT1和TT2需要執(zhí)行1次LOAD、2次STORE、2次ADD、1次XOR、2次ROT;

3)更新字寄存器B、D、F、H需要執(zhí)行:1次LOAD、1次STORE、6次ADD、3次XOR、4次ROT、1次FFi函數(shù)和1次GGi函數(shù);

4)FFi函數(shù)和GGi函數(shù)的計(jì)算量同優(yōu)化前的計(jì)算量。

根據(jù)以上統(tǒng)計(jì)分析,表2列出了優(yōu)化后的算法中對(duì)一個(gè)512 比特的消息塊執(zhí)行一次完整的壓縮所需的計(jì)算量。

表2 優(yōu)化前后一次壓縮函數(shù)的計(jì)算量

從表2可知,優(yōu)化后的壓縮函數(shù)通過(guò)輪函數(shù)的調(diào)整和消息擴(kuò)展函數(shù)的優(yōu)化,大大減少了LOAD和STORE的次數(shù),同時(shí)中間變量TT1和TT2的優(yōu)化實(shí)現(xiàn)又進(jìn)一步減少了ROT的次數(shù),其余運(yùn)算的計(jì)算量無(wú)變化。

如果從操作總數(shù)的角度考慮,優(yōu)化后算法的速度可提升(3 792-2 824)/2 824=34.3%。但實(shí)際上CPU執(zhí)行這些操作指令時(shí),不同的操作具有不同的指令執(zhí)行周期(cycle),甚至不同的CPU執(zhí)行相同的運(yùn)算所需的指令周期也各不相同。大部分CPU執(zhí)行整數(shù)的算數(shù)運(yùn)算和邏輯運(yùn)算需1個(gè)時(shí)鐘周期,而執(zhí)行LOAD和STORE則需要多個(gè)時(shí)鐘周期,且各CPU的執(zhí)行時(shí)間也有較大差異。以下假設(shè)執(zhí)行每個(gè)算數(shù)邏輯運(yùn)算需1個(gè)時(shí)鐘周期。如果執(zhí)行LOAD需1個(gè)時(shí)鐘周期,執(zhí)行STORE需2個(gè)時(shí)鐘周期,則優(yōu)化后算法的速度可提升52.3%。;如果假設(shè)執(zhí)行LOAD需1.5個(gè)時(shí)鐘周期,執(zhí)行STORE需2.5個(gè)時(shí)鐘周期,則優(yōu)化后算法的速度可提升59.6%;如果假設(shè)執(zhí)行LOAD需2個(gè)時(shí)鐘周期,執(zhí)行STORE需3個(gè)時(shí)鐘周期,則優(yōu)化后算法的速度可提升65.6%。不同假設(shè)下的速度提升情況見(jiàn)下表3。

表3 不同情況下的優(yōu)化前后速度提升估計(jì)值

4模擬實(shí)驗(yàn)與對(duì)比測(cè)試

為了模擬真實(shí)環(huán)境中對(duì)SM3算法軟件實(shí)現(xiàn)的需求,下面的實(shí)驗(yàn)中進(jìn)行了4組測(cè)試,每組測(cè)試方法對(duì)多個(gè)數(shù)據(jù)包進(jìn)行雜湊,每個(gè)數(shù)據(jù)包為特定長(zhǎng)度字節(jié),然后統(tǒng)計(jì)耗時(shí)和速度。以下為4組測(cè)試的詳細(xì)情況說(shuō)明。

1)第1組測(cè)試中測(cè)試1個(gè)數(shù)據(jù)包,該數(shù)據(jù)包為256×106個(gè)字節(jié),此測(cè)試用以模擬大量數(shù)據(jù)雜湊的情況,如大型文件雜湊;

2)第2組測(cè)試中雜湊200個(gè)數(shù)據(jù)包,每個(gè)數(shù)據(jù)包1.28×106個(gè)字節(jié),此測(cè)試用以模擬中型數(shù)據(jù)包雜湊的情況,如圖片等;

3)第3組測(cè)試中雜湊40 000個(gè)數(shù)據(jù)包,每個(gè)數(shù)據(jù)包6.4×103個(gè)字節(jié),此測(cè)試用以模擬普通網(wǎng)絡(luò)數(shù)據(jù)包雜湊的情況;

4)第4組測(cè)試中雜湊8×106個(gè)數(shù)據(jù)包,每個(gè)數(shù)據(jù)包32個(gè)字節(jié),此測(cè)試用以模擬頻繁的微小型數(shù)據(jù)包雜湊的情況。

為了統(tǒng)計(jì)每種測(cè)試的準(zhǔn)確耗時(shí)值,每組測(cè)試都反復(fù)進(jìn)行21次并記錄各次的時(shí)間,最后從大到小排列后取最中間的值作為統(tǒng)計(jì)耗時(shí)值。

測(cè)試使用的軟件平臺(tái)詳情如下:Windows XP SP3 32 比特、Intel Core i3@3400 MHz、4 GB DDR3-1600 SDRAM、Microsoft Visual Studio 8.0。速度單位為Mbit/s。其中處理器的緩存情況為[13]:一級(jí)緩存為每個(gè)核心32 KB,2級(jí)緩存為每個(gè)核心64 KB,3級(jí)緩存為多核共享3 MB。

表42種實(shí)現(xiàn)方式的性能比較

Table 4The performance comparison of two implementation methods

測(cè)試類別速度/(Mb·s-1)優(yōu)化前優(yōu)化后速度提升/%第1組測(cè)試739120362.8第2組測(cè)試733119162.5第3組測(cè)試701107453.2第4組測(cè)試64297351.6平均704111057.7

上表列出的測(cè)試結(jié)果表明:1)數(shù)據(jù)包越大,執(zhí)行效率越高,這是因?yàn)榇笮蛿?shù)據(jù)包減少了一頭一尾的初始化、消息填充和反初始化等工作:2)優(yōu)化調(diào)整后的算法效率提升顯著,可以提升60%左右,在雜湊大中型數(shù)據(jù)包時(shí)速度提升60%以上,即使在雜湊微小型數(shù)據(jù)包時(shí)效率也能提升50%以上。

4結(jié)束語(yǔ)

本文對(duì)我國(guó)國(guó)家密碼管理局發(fā)布的SM3密碼雜湊算的軟件快速實(shí)現(xiàn)進(jìn)行研究,根據(jù)算法自身的特點(diǎn),尤其是壓縮函數(shù)的特點(diǎn),給出一種更加適用于軟件快速實(shí)現(xiàn)的算法描述方式和實(shí)現(xiàn)方法。理論分析得出的算法計(jì)算量以及模擬實(shí)驗(yàn)結(jié)果均表明,利用此軟件快速實(shí)現(xiàn)方法可以將算法的效率提升60%左右。另外,此軟件快速實(shí)現(xiàn)方式不基于特定的平臺(tái)、架構(gòu)、指令等,因此具有很強(qiáng)的跨平臺(tái)性和兼容性。

參考文獻(xiàn):

[1]NIST. Federal information processing standards publication 180-3, secure hash standards (SHS) [S]. Gaithersburg, MD, USA: Information Technology Laboratory of National Institute of Standards and Technology, 2008. http://csrc.nist.gov/publications.

[2]NIST. Cryptographic hash algorithm competition [EB/OL]. (2005-04-15)[2015-08-05]. http://csrc.nist.gov/groups/ST/hash/sha-3/index.html.

[3]國(guó)家密碼管理局. SM3密碼雜湊算法[S]. 北京: 國(guó)家密碼管理局, 2010.

National Cryptography Administration. SM3 cryptographic hash algorithm[S]. Beijing: National Cryptography Administration, 2010.

[4]ACIICMEZ O. Fast hashing on pentium SIMD architecture[D]. Corvallis, Oregon: Oregon State University, 2004.

[5]GUERON S, KRASNOV V. Parallelizing message schedules to accelerate the computations of hash functions[R]. 2012. http://eprint.iacr.org/2012/067.pdf

[6]GUERON S, KRASNOV V. Simultaneous hashing of multiple messages[J]. Journal of Information Security, 2012, 3(4): 319-325.

[7]張倩, 李樹(shù)國(guó). SM3雜湊算法的ASIC設(shè)計(jì)和實(shí)現(xiàn)[J]. 微電子學(xué)與計(jì)算機(jī), 2014, 31(9): 143-146, 152.

ZHANG Qian, LI Shuguo. Design and implementation of SM3 algorithm in ASIC[J]. Microelectronics & Computer, 2014, 31(9): 143-146, 152.

[8]王曉燕, 楊先文. 基于FPGA的SM3算法優(yōu)化設(shè)計(jì)與實(shí)現(xiàn)[J]. 計(jì)算機(jī)工程, 2012, 38(6): 244-246.

WANG Xiaoyan, YANG Xianwen. Optimization design and implementation of SM3 algorithm based on FPGA[J]. Computer Engineering, 2012, 38(6): 244-246.

[9]伍娟. 國(guó)密SM3算法在COS上的研究與實(shí)現(xiàn)[J]. 科技信息, 2013, (2): 294-295.

WU Juan. Research and implementation of SM3 algorithm on COS[J]. Science & Technology Information, 2013, (2): 294-295.

[10]曾小波, 唐忠彪, 焦歆. 基于單片機(jī)的SM3算法優(yōu)化及Verilog模型驗(yàn)證[J]. 電子科技, 2015, 28(2): 38-40.

ZENG Xiaobo, TANG Zhongbiao, JIAO Xin. Optimization of SM3 algorithm and Verilog model validation based on SCM[J]. Electronic Science and Technology, 2015, 28(2): 38-40.

[11]沈一公, 蘇厚勤. 基于Android的SM3密碼雜湊算法研究與實(shí)現(xiàn)[J]. 電子技術(shù)與軟件工程, 2013(18): 69-70.

SHEN Yigong, SU Houqin. Research and implementation of SM3 algorithm based on android[J]. Electronic Technology & Software Engineering, 2013(18): 69-70.

[12]易叔賢, 張非凡. SM系列算法在金融IC卡領(lǐng)域的應(yīng)用[J]. 金融電子化, 2013(7): 49-52.

YI Shuxian, ZHANG Feifan. Application of SM series algorithm in the field of financial IC card[J]. Financial Computerizing, 2013(7): 49-52.

[13]ntel. 2nd generation intel?coreTM processor family desktop datasheet[EB/OL]. (2011-01-04)[2013-07-08]. http://www.intel.com/content/www/us/en/processors/core/2nd-gen-core-desktop-vol-1-datasheet.html.

楊先偉,男,1980年生,講師,主要研究方向?yàn)橥ㄐ排c系統(tǒng)工程。

康紅娟,女,1983年生,工程師,主要研究方向?yàn)楸C芡ㄐ拧?/p>

網(wǎng)絡(luò)出版地址:http://www.cnki.net/kcms/detail/23.1538.tp.20151110.1354.004.html

英文引用格式:YANG Xianwei, KANG Hongjuan. Fast software implementation of SM3 Hash algorithm[J]. CAAI Transactions on Intelligent Systems, 2015, 10(2): 954-959.

Fast software implementation of SM3 Hash algorithm

YANG Xianwei1, KANG Hongjuan2

(1. Department of Fundamental Courses, Wuxi Prof Technology inst., Wuxi 214121, China; 2. Sichuan Changhong Electric Co., Ltd., Chengdu 610041, China)

Abstract:The hash algorithm is one of the most basic cryptography modules, and is widely used in cryptographic protocols, digital signatures, message authentication, and in other fields. The Chinese National Cryptography Administration released the SM3 hash algorithm in 2010. This algorithm is applied to digital signature and verification, the generation and verification of message authentication codes, and random number generation. This paper addresses the fast software implementation of the SM3 algorithm. Based on the SM3 features, and especially its compression function characteristics, we propose a method that is highly suitable for fast software implementation. Experimental results show that this method can improve the implementation speed by 60%.

Keywords:SM3 algorithm; hash function; fast software implementation; digital signature; message authentication; integrity authentication; digital fingerprint; compression function

作者簡(jiǎn)介:

通信作者:楊先偉. E-mail:yangxianwei2018@163.com.

基金項(xiàng)目:國(guó)家自然科學(xué)基金資助項(xiàng)目(11471144).

收稿日期:2015-07-23. 網(wǎng)絡(luò)出版日期:2015-11-10.

中圖分類號(hào):TP309

文獻(xiàn)標(biāo)志碼:A

文章編號(hào):1673-4785(2015)06-0954-06

DOI:10.11992/tis.201507036

猜你喜歡
優(yōu)化
超限高層建筑結(jié)構(gòu)設(shè)計(jì)與優(yōu)化思考
PEMFC流道的多目標(biāo)優(yōu)化
能源工程(2022年1期)2022-03-29 01:06:28
民用建筑防煙排煙設(shè)計(jì)優(yōu)化探討
關(guān)于優(yōu)化消防安全告知承諾的一些思考
一道優(yōu)化題的幾何解法
由“形”啟“數(shù)”優(yōu)化運(yùn)算——以2021年解析幾何高考題為例
圍繞“地、業(yè)、人”優(yōu)化產(chǎn)業(yè)扶貧
事業(yè)單位中固定資產(chǎn)會(huì)計(jì)處理的優(yōu)化
4K HDR性能大幅度優(yōu)化 JVC DLA-X8 18 BC
幾種常見(jiàn)的負(fù)載均衡算法的優(yōu)化
電子制作(2017年20期)2017-04-26 06:57:45
主站蜘蛛池模板: 少妇露出福利视频| 免费无码网站| 日韩精品一区二区三区大桥未久| 精品人妻系列无码专区久久| 国产乱人免费视频| 大乳丰满人妻中文字幕日本| 欧美不卡视频在线观看| 久久免费成人| 丰满人妻被猛烈进入无码| 亚洲综合久久一本伊一区| 欧洲亚洲欧美国产日本高清| 免费亚洲成人| 麻豆AV网站免费进入| 亚洲天堂在线免费| 国产H片无码不卡在线视频| 国产美女在线免费观看| 在线视频一区二区三区不卡| 亚洲精品国产精品乱码不卞| 欧美成人怡春院在线激情| 国产精品内射视频| 欧美一级一级做性视频| a免费毛片在线播放| 国产精品久久久久无码网站| 国产精品成人免费视频99| 色网站在线免费观看| 日韩欧美中文字幕在线精品| 久久狠狠色噜噜狠狠狠狠97视色| 欧美特黄一级大黄录像| 欧美视频在线不卡| 免费A∨中文乱码专区| 欧美成人a∨视频免费观看| 久久免费观看视频| 亚亚洲乱码一二三四区| 91亚洲国产视频| 99久久精品免费看国产电影| 中文无码精品A∨在线观看不卡| 一级毛片免费不卡在线视频| 国产99欧美精品久久精品久久| 四虎影视库国产精品一区| 老色鬼欧美精品| 国产欧美专区在线观看| 国产在线观看人成激情视频| 欧美人与性动交a欧美精品| 在线观看精品自拍视频| 亚洲午夜18| 欧美国产精品拍自| 熟妇丰满人妻| 亚洲AV无码一区二区三区牲色| 亚洲二区视频| 亚洲第一在线播放| 久久一级电影| 极品国产在线| 乱人伦99久久| 首页亚洲国产丝袜长腿综合| 97在线免费| 午夜成人在线视频| 国产亚洲现在一区二区中文| 992tv国产人成在线观看| 四虎永久在线| 伊人久久福利中文字幕| 久久久久久高潮白浆| 一级福利视频| 国产精品页| 亚洲成a人片77777在线播放| 色九九视频| 免费观看国产小粉嫩喷水| 国产SUV精品一区二区6| 国产女人在线观看| 伊人狠狠丁香婷婷综合色| 二级特黄绝大片免费视频大片| 99久久精品视香蕉蕉| 国产精品lululu在线观看| 99精品高清在线播放| 久久综合伊人77777| 国产爽爽视频| 久久精品人妻中文系列| 国产精品视频导航| 青青国产在线| 国产男女免费完整版视频| 在线播放精品一区二区啪视频| 怡春院欧美一区二区三区免费| 久久狠狠色噜噜狠狠狠狠97视色|