本發(fā)明涉及密碼分析領(lǐng)域,尤指一種針對(duì)SM3-HMAC(采用SM3密碼算法的哈希消息認(rèn)證碼)的側(cè)信道能量分析方法和裝置。
背景技術(shù):
隨著信息科技的發(fā)展,信息的安全性被提升到了一個(gè)前所未有的高度。各種密碼算法正被廣泛地應(yīng)用于經(jīng)濟(jì)、軍事、行政等重要部門(mén),以保護(hù)信息的安全性。對(duì)稱(chēng)密碼和公鑰密碼的出現(xiàn)使得信息能從算法級(jí)和軟件級(jí)得到保護(hù)。但是進(jìn)入21世紀(jì)后,隨著分析形式的多樣化,分析性越來(lái)越強(qiáng)的方法也隨之產(chǎn)生。
側(cè)信道分析避開(kāi)分析復(fù)雜的密碼算法本身,利用的是密碼算法在軟件、硬件實(shí)現(xiàn)過(guò)程中泄漏的各種信息進(jìn)行密碼分析。側(cè)信道分析的基本原理是:密碼算法在密碼芯片上實(shí)現(xiàn)時(shí),由于設(shè)備的物理特性,總會(huì)產(chǎn)生執(zhí)行時(shí)間、功耗、電磁輻射、故障輸出等側(cè)信道泄漏;同時(shí)由于密碼芯片計(jì)算資源和處理能力的限制,密碼算法的主密鑰大都被分割成若干個(gè)子密鑰塊并按照一定的順序參與運(yùn)算,不同時(shí)間使用這些子密鑰塊的側(cè)信道泄漏可被分析者采集到;這些側(cè)信道泄漏同明文、密文和子密鑰具有一定的相關(guān)性,分析者可以利用一定的分析方法恢復(fù)出子密鑰塊值;在得到足夠的子密鑰塊值后,結(jié)合密鑰擴(kuò)展設(shè)計(jì)即可恢復(fù)主密鑰值。根據(jù)側(cè)信道泄漏采集過(guò)程中對(duì)密碼芯片接口的破壞程度,可以分為侵入式攻擊、半侵入式攻擊和非侵入式攻擊。非侵入式攻擊由于實(shí)施方便,實(shí)驗(yàn)設(shè)備簡(jiǎn)單,攻擊成本較低被廣泛使用。非侵入式攻擊中,攻擊者不需要對(duì)密碼芯片接口進(jìn)行破壞,只需要利用專(zhuān)用設(shè)備正常訪問(wèn)密碼芯片接口,典型分析方法包括計(jì)時(shí)分析、功耗分析、電磁分析等。側(cè)信道能量分析利用了密碼模塊功耗與運(yùn)算數(shù)據(jù)和執(zhí)行的操作之間的相關(guān)性,基于密碼算法實(shí)現(xiàn)的能量泄露函數(shù),建立能量模型,使用統(tǒng)計(jì)方法,猜測(cè)和驗(yàn)證密碼模塊使用的受保護(hù)密鑰或敏感信息。側(cè)信道能量分析具體有多種不同的方法,目前常用的方法包括簡(jiǎn)單功耗分析(SPA),差分功耗分析(DPA),相關(guān)性功耗分析(CPA),模板分析等。
相關(guān)性功耗分析(CPA)對(duì)部分密鑰位(一個(gè)二進(jìn)制密鑰位或是多個(gè)二進(jìn)制密鑰位)參與的運(yùn)算過(guò)程,考慮側(cè)信道泄漏的功耗與部分中間計(jì)算結(jié)果漢明重量(或者漢明距離,根據(jù)實(shí)際芯片而定)的線性相關(guān)性,如果在某個(gè)位置相關(guān)性最強(qiáng),那么可以判斷該位置猜測(cè)密鑰位正確值。
選擇明文分析是在分析者可以控制加密設(shè)備輸入的情況的,通過(guò)分析密碼算法的結(jié)構(gòu),選定一組或者幾組特定的明文,使密碼設(shè)備正常運(yùn)算,得到最后的加密結(jié)果。再將選擇明文的思想與功耗分析的方法結(jié)合,采集密碼設(shè)備執(zhí)行某些特定明文時(shí)的功耗信息,獲得部分?jǐn)?shù)據(jù)與功耗信息之間的相關(guān)性,再使用CPA或DPA的思想進(jìn)行分析,獲得密鑰等受保護(hù)的信息。
SM3密碼算法是國(guó)家密碼局公開(kāi)算法中唯一的雜湊算法(也稱(chēng)為Hash哈希函數(shù))。對(duì)長(zhǎng)度為l(l<264)比特的消息m,SM3雜湊算法經(jīng)過(guò)填充、迭代壓縮和輸出的選裁,生成雜湊值,雜湊值輸出長(zhǎng)度為256比特。
SM3的運(yùn)算分為以下三大步驟:
一、消息填充
假設(shè)消息m的長(zhǎng)度為l比特,則首先將比特“1”添加到消息的末尾,再添加k個(gè)“0”,k是滿足l+1+k≡448(mod 512)的最小的非負(fù)整數(shù)。然后再添加一個(gè)64位比特串。該比特串是長(zhǎng)度l的二進(jìn)制表示。填充后消息記作m′。
二、迭代壓縮
三、雜湊值
ABCDEFGH←V(n),輸出256比特的雜湊值y=ABCDEFGH。
算法中涉及到的常數(shù)與函數(shù)見(jiàn)下:
IV=7380166f 4914b2b9172442d7 da8a0600a96f30bc163138aa e38dee4db0fb0e4e
式中X,Y,Z均為字。
如圖1所示,HMAC(Keyed-Hash Message Authentication Code,哈希消息認(rèn)證碼)算法描述如下:
對(duì)于給定的消息m,使用密鑰K,計(jì)算HMAC值的操作如下:
式中為異或(XOR)運(yùn)算,||為拼接運(yùn)算,H為hash函數(shù)(如SHA-1,SHA-256,MD5,SM3等),K0為密鑰K進(jìn)行預(yù)處理的結(jié)果(通過(guò)末尾補(bǔ)0將長(zhǎng)度變?yōu)榕cH函數(shù)的分組長(zhǎng)度相同),ipad和opad為固定值,ipad=0x3636…3636,opad=0x5C5C…5C5C,長(zhǎng)度與H函數(shù)的分組長(zhǎng)度相同。IV為雜湊函數(shù)H的初始狀態(tài)值,F(xiàn)為H中壓縮函數(shù),m1,m2,…,mn為輸入的消息分組,Kin,Kout為密鑰,CV1,…,CVN-1為每次雜湊運(yùn)算的中間狀態(tài)。
SM3作為國(guó)家密碼局公開(kāi)算法中唯一的雜湊算法,其安全性越來(lái)越受到重視,側(cè)信道分析作為最有效的一種分析手段,被廣泛的應(yīng)用于各種不同算法、多種不同實(shí)現(xiàn)的分析中,對(duì)算法的安全性產(chǎn)生了較大的威脅。但是目前對(duì)于SM3的側(cè)信道分析研究較少,研究的也不夠深入。雖然近兩年來(lái)也提出了兩種SM3-HMAC的分析方法,但是都不適用于分析純硬件實(shí)現(xiàn)的SM3-HMAC。
技術(shù)實(shí)現(xiàn)要素:
為了解決上述技術(shù)問(wèn)題,本發(fā)明提供了一種針對(duì)SM3-HMAC的側(cè)信道能量分析方法和裝置,可以針對(duì)硬件實(shí)現(xiàn)的SM3-HMAC進(jìn)行側(cè)信道能量分析。
為了達(dá)到本發(fā)明目的,本發(fā)明提供了一種針對(duì)采用SM3密碼算法的哈希消息認(rèn)證碼SM3-HMAC的側(cè)信道能量分析方法,包括:
針對(duì)硬件實(shí)現(xiàn)的SM3-HMAC,通過(guò)選擇性輸入多組明文的方式,使用漢明距離模型分別獲取SM3密碼算法的中間值θ0θ1θ2θ3η0η1η2η3;
根據(jù)所述中間值θ0θ1θ2θ3η0η1η2η3分別計(jì)算參數(shù)A0,B0,C0,D0,E0,F0,G0,H0,得到密鑰Kin;
其中,SM3-HMAC根據(jù)如下公式得到:
式中為異或運(yùn)算,||為拼接運(yùn)算,H為采用SM3密碼算法的哈希函數(shù),K0為密鑰K進(jìn)行預(yù)處理的結(jié)果,m為輸入的明文,ipad和opad為固定值,IV為首次執(zhí)行SM3密碼算法時(shí)壓縮函數(shù)的初始狀態(tài)值;Kin為HMAC運(yùn)算中調(diào)用SM3密碼算法時(shí)壓縮函數(shù)的初始狀態(tài)A0B0C0D0E0F0G0H0。
可選地,所述通過(guò)選擇性輸入多組明文的方式,使用漢明距離模型分別獲取SM3密碼算法的中間值θ0θ1θ2θ3η0η1η2η3的步驟中,
將每個(gè)中間值劃分為多個(gè)部分,通過(guò)選擇性輸入多組明文的方式,使用漢明距離模型分別獲取所述中間值的每個(gè)部分,得到所述中間值。
可選地,所述將每個(gè)中間值劃分為多個(gè)部分,通過(guò)選擇性輸入多組明文的方式,使用漢明距離模型分別獲取所述中間值的每個(gè)部分,得到所述中間值的步驟中,
每4比特為一組,將每個(gè)中間值劃分為8組,通過(guò)選擇性輸入多組明文的方式,使用漢明距離模型,通過(guò)功耗分析,分別獲取所述中間值的每個(gè)部分,得到所述中間值;
其中,所述功耗分析為相關(guān)性功耗分析CPA或差分功耗分析DPA。
可選地,所述通過(guò)選擇性輸入多組明文的方式,使用漢明距離模型分別獲取SM3密碼算法的中間值θ0θ1θ2θ3η0η1η2η3的步驟中,
在獲取中間值θ0θ1θ2θ3時(shí),針對(duì)每個(gè)中間值,進(jìn)行如下操作:
將明文中部分字固定,其它部分字作為隨機(jī)數(shù)輸入,輸入多組明文并進(jìn)行功耗分析,獲得所述中間值的每一部分,進(jìn)而得到所述中間值。
可選地,所述通過(guò)輸入多組明文的方式,使用漢明距離模型分別獲取SM3密碼算法的中間值θ0θ1θ2θ3η0η1η2η3的步驟中,
在獲取中間值η0η1η2η3時(shí),針對(duì)每個(gè)中間值,進(jìn)行如下操作:
將明文中的一個(gè)字作為可變字,其它部分字固定,部分字作為隨機(jī)數(shù)輸入;
針對(duì)所述中間值的每一部分,均執(zhí)行:將所述可變字中的部分比特固定,其它比特作為隨機(jī)數(shù)輸入,輸入多組明文并進(jìn)行功耗分析,獲得所分析的部分;
根據(jù)獲得所述中間值的每一部分,進(jìn)而得到所述中間值。
可選地,所述方法還包括:
按照得到密鑰Kin的方式,通過(guò)選擇性輸入多組明文的方式,使用漢明距離模型獲取SM3密碼算法的中間值,進(jìn)而得到密鑰Kout;
其中,
本發(fā)明還提供一種針對(duì)采用SM3密碼算法的哈希消息認(rèn)證碼SM3-HMAC的側(cè)信道能量分析裝置,包括:
中間值計(jì)算模塊,用于針對(duì)硬件實(shí)現(xiàn)的SM3-HMAC,通過(guò)選擇性輸入多組明文的方式,使用漢明距離模型分別獲取SM3密碼算法的中間值θ0θ1θ2θ3η0η1η2η3;
密碼計(jì)算模塊,用于根據(jù)所述中間值θ0θ1θ2θ3η0η1η2η3分別計(jì)算參數(shù)A0,B0,C0,D0,E0,F0,G0,H0,得到密鑰Kin;
其中,SM3-HMAC根據(jù)如下公式得到:
式中為異或運(yùn)算,||為拼接運(yùn)算,H為采用SM3密碼算法的哈希函數(shù),K0為密鑰K進(jìn)行預(yù)處理的結(jié)果,m為輸入的明文,ipad和opad為固定值,IV為首次執(zhí)行SM3密碼算法時(shí)壓縮函數(shù)的初始狀態(tài)值;Kin為HMAC運(yùn)算中調(diào)用SM3密碼算法時(shí)壓縮函數(shù)的初始狀態(tài)A0B0C0D0E0F0G0H0。
可選地,所述中間值計(jì)算模塊,進(jìn)一步用于將每個(gè)中間值劃分為多個(gè)部分,通過(guò)選擇性輸入多組明文的方式,使用漢明距離模型分別獲取所述中間值的每個(gè)部分,得到所述中間值。
可選地,所述中間值計(jì)算模塊,進(jìn)一步用于設(shè)置每4比特為一組,將每個(gè)中間值劃分為8組,通過(guò)選擇性輸入多組明文的方式,使用漢明距離模型,通過(guò)功耗分析,分別獲取所述中間值的每個(gè)部分,得到所述中間值;
其中,所述功耗分析為相關(guān)性功耗分析CPA或差分功耗分析DPA。
可選地,所述中間值計(jì)算模塊,進(jìn)一步用于:
在獲取中間值θ0θ1θ2θ3時(shí),針對(duì)每個(gè)中間值,進(jìn)行如下操作:將明文中部分字固定,其它部分字作為隨機(jī)數(shù)輸入,輸入多組明文并進(jìn)行功耗分析,獲得所述中間值的每一部分,進(jìn)而得到所述中間值;
在獲取中間值η0η1η2η3時(shí),針對(duì)每個(gè)中間值,進(jìn)行如下操作:將明文中的一個(gè)字作為可變字,其它部分字固定,部分字作為隨機(jī)數(shù)輸入;針對(duì)所述中間值的每一部分,均執(zhí)行:將所述可變字中的部分比特固定,其它比特作為隨機(jī)數(shù)輸入,輸入多組明文并進(jìn)行功耗分析,獲得所分析的部分;根據(jù)獲得所述中間值的每一部分,進(jìn)而得到所述中間值。。
與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例具有以下優(yōu)點(diǎn):
(1)可以對(duì)純硬件實(shí)現(xiàn)的SM3-HMAC的密鑰進(jìn)行有效分析。現(xiàn)有的分析方案中使用的泄漏模型是漢明重量模型或者是漢明重量模型與漢明距離模型混合使用,而對(duì)于硬件實(shí)現(xiàn)的算法主要泄漏的信息是漢明距離,漢明重量的泄漏很少,因此漢明重量模型并不適合于硬件實(shí)現(xiàn)算法的分析。本發(fā)明實(shí)施例提出的分析方法可以分析純硬件實(shí)現(xiàn)的SM3-HMAC,分析成功率也較高。
(2)使用兩級(jí)選擇明文的方法,使分析中可以使用漢明距離模型。密碼設(shè)備在執(zhí)行密碼運(yùn)算時(shí),側(cè)信道方面會(huì)有明顯的信息泄漏,不同的實(shí)現(xiàn)方式泄漏的信息也不相同,軟件實(shí)現(xiàn)的加密運(yùn)算主要泄漏的是漢明重量,硬件實(shí)現(xiàn)的主要泄漏的是漢明距離;為了能夠分析硬件實(shí)現(xiàn)的SM3-HMAC,需要使用漢明距離模型,為此本發(fā)明實(shí)施例創(chuàng)新性的提出了兩級(jí)選擇明文的方法。
(3)通過(guò)多次部分CPA分析,降低遍歷空間。本發(fā)明實(shí)施例分析中間值時(shí)每4bit一組進(jìn)行分析,進(jìn)行多次部分CPA分析,可以使分析過(guò)程中的遍歷數(shù)由8×232≈343億降低到了8×8×24=1024,大大縮小遍歷空間,有效縮短分析時(shí)間。
本發(fā)明的其它特征和優(yōu)點(diǎn)將在隨后的說(shuō)明書(shū)中闡述,并且,部分地從說(shuō)明書(shū)中變得顯而易見(jiàn),或者通過(guò)實(shí)施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點(diǎn)可通過(guò)在說(shuō)明書(shū)、權(quán)利要求書(shū)以及附圖中所特別指出的結(jié)構(gòu)來(lái)實(shí)現(xiàn)和獲得。
附圖說(shuō)明
附圖用來(lái)提供對(duì)本發(fā)明技術(shù)方案的進(jìn)一步理解,并且構(gòu)成說(shuō)明書(shū)的一部分,與本申請(qǐng)的實(shí)施例一起用于解釋本發(fā)明的技術(shù)方案,并不構(gòu)成對(duì)本發(fā)明技術(shù)方案的限制。
圖1為HMAC算法示意圖;
圖2為本發(fā)明實(shí)施例的針對(duì)SM3-HMAC的側(cè)信道能量分析方法流程圖;
圖3為本發(fā)明實(shí)施例的針對(duì)HMAC分析的示意圖;
圖4為本發(fā)明應(yīng)用示例的分析θ0的流程圖;
圖5為本發(fā)明應(yīng)用示例的分析η0的流程圖;
圖6為本發(fā)明應(yīng)用示例的分析θ1的流程圖;
圖7為本發(fā)明應(yīng)用示例的分析η1的流程圖;
圖8為本發(fā)明應(yīng)用示例的分析θ2的流程圖;
圖9為本發(fā)明應(yīng)用示例的分析η2的流程圖;
圖10為本發(fā)明應(yīng)用示例的分析θ3的流程圖;
圖11為本發(fā)明應(yīng)用示例的分析η3的流程圖;
圖12為本發(fā)明實(shí)施例的針對(duì)SM3-HMAC的側(cè)信道能量分析裝置示意圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,下文中將結(jié)合附圖對(duì)本發(fā)明的實(shí)施例進(jìn)行詳細(xì)說(shuō)明。需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互任意組合。
在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行。并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
現(xiàn)有的針對(duì)SM3-HMAC的側(cè)信道分析方案主要有以下幾個(gè)缺點(diǎn):
(1)現(xiàn)在的分析方案只適合于分析軟件實(shí)現(xiàn)的SM3-HMAC算法,不能分析硬件實(shí)現(xiàn)的算法?,F(xiàn)有的分析方案中使用的泄漏模型是漢明重量模型或者是漢明重量模型與漢明距離模型混合使用,而對(duì)于硬件實(shí)現(xiàn)的算法主要泄漏的信息是漢明距離,漢明重量的泄漏很少,因此漢明重量模型并不適合于硬件實(shí)現(xiàn)算法的分析。在本發(fā)明實(shí)施例中,為了能夠分析硬件實(shí)現(xiàn)的SM3-HMAC,在分析過(guò)程中使用了漢明距離模型。
(2)現(xiàn)有的分析方案分析時(shí)遍歷空間過(guò)大?,F(xiàn)有的分析方案分析時(shí)遍歷的空間高達(dá)8×232≈343億,需要分析8個(gè)中間值或者直接分析密鑰中的一個(gè)字,每一個(gè)都需要分別將232個(gè)不同的值帶入到算法中,分別計(jì)算中間值,再與功耗曲線上的每一點(diǎn)計(jì)算相關(guān)系數(shù)。由于遍歷空間較大,使計(jì)算需要大量的內(nèi)存空間,同時(shí)也需要消耗大量的時(shí)間。在本發(fā)明實(shí)施例中,通過(guò)將整體CPA(或DPA)轉(zhuǎn)換為部分CPA(或DPA),縮小遍歷空間,減少分析過(guò)程中的內(nèi)存消耗,縮短分析計(jì)算時(shí)間。
如圖2所示,本發(fā)明實(shí)施例的針對(duì)SM3-HMAC的側(cè)信道能量分析方法包括:
步驟101,針對(duì)硬件實(shí)現(xiàn)的SM3-HMAC,通過(guò)選擇性輸入多組明文的方式,使用漢明距離模型分別獲取SM3密碼算法的中間值θ0θ1θ2θ3η0η1η2η3;
步驟102,根據(jù)所述中間值θ0θ1θ2θ3η0η1η2η3分別計(jì)算參數(shù)A0,B0,C0,D0,E0,F0,G0,H0,得到密鑰Kin;
其中,SM3-HMAC根據(jù)如下公式得到:
式中為異或運(yùn)算,||為拼接運(yùn)算,H為采用SM3密碼算法的哈希函數(shù),K0為密鑰K進(jìn)行預(yù)處理的結(jié)果,m為輸入的明文,ipad和opad為固定值,IV為首次執(zhí)行SM3密碼算法時(shí)壓縮函數(shù)的初始狀態(tài)值;Kin為HMAC運(yùn)算中調(diào)用SM3密碼算法時(shí)壓縮函數(shù)的初始狀態(tài)A0B0C0D0E0F0G0H0。
在本發(fā)明實(shí)施例中,在分析過(guò)程中使用了漢明距離模型,可以對(duì)純硬件實(shí)現(xiàn)的SM3-HMAC的密鑰進(jìn)行有效分析。
其中,步驟101中,可以將每個(gè)中間值劃分為多個(gè)部分,通過(guò)選擇性輸入多組明文的方式,使用漢明距離模型分別獲取所述中間值的每個(gè)部分,得到所述中間值。
可選地,步驟101中,每4比特(bit)為一組,將每個(gè)中間值劃分為8組,通過(guò)選擇性輸入多組明文的方式,使用漢明距離模型,通過(guò)功耗分析,分別獲取所述中間值的每個(gè)部分,得到所述中間值;
其中,所述功耗分析為CPA或DPA。
可選地,步驟101中,在獲取中間值θ0θ1θ2θ3時(shí),針對(duì)每個(gè)中間值,進(jìn)行如下操作:
將明文中部分字固定,其它部分字作為隨機(jī)數(shù)輸入,輸入多組明文并進(jìn)行功耗分析,獲得所述中間值的每一部分,進(jìn)而得到所述中間值。
可選地,步驟101中,在獲取中間值η0η1η2η3時(shí),針對(duì)每個(gè)中間值,進(jìn)行如下操作:
將明文中的一個(gè)字作為可變字,其它部分字固定,部分字作為隨機(jī)數(shù)輸入;
針對(duì)所述中間值的每一部分,均執(zhí)行:將所述可變字中的部分比特固定,其它比特作為隨機(jī)數(shù)輸入,輸入多組明文并進(jìn)行功耗分析,獲得所分析的部分;
根據(jù)獲得所述中間值的每一部分,進(jìn)而得到所述中間值。
在步驟101中,可采用兩級(jí)選擇明文的方式,結(jié)合功耗分析,獲得中間值的部分比特。其中,兩級(jí)選擇明文的方式是指:在明文中的部分字固定,部分字作為隨機(jī)數(shù)輸入的基礎(chǔ)上,另外的字中部分比特固定,部分比特作為隨機(jī)數(shù)輸入。在本實(shí)施例中,獲取中間值η0η1η2η3時(shí),采取兩級(jí)選擇明文的方式。
通過(guò)第一級(jí)選擇明文,使之分別分析θ0θ1θ2θ3η0η1η2η3八個(gè)中間值的32bit是可行的,但是需要一起分析32bit,分析復(fù)雜度較高。為了降低分析復(fù)雜度,進(jìn)行多次部分功耗分析,每4bit一組,分析一個(gè)中間值分成8次部分CPA進(jìn)行。但是對(duì)于η0η1η2η3由于算法設(shè)計(jì)時(shí)引入了一個(gè)非線性的變換P0(),使直接使用8次CPA進(jìn)行分析不可行;為了解決這個(gè)問(wèn)題,再進(jìn)行一次選擇明文,每次選擇明文用來(lái)分析η0η1η2η3的4bit。
所述方法還可包括:按照得到密鑰Kin的方式,通過(guò)輸入多組明文的方式,使用漢明距離模型獲取SM3密碼算法的中間值,進(jìn)而得到密鑰Kout;
其中,
在本發(fā)明實(shí)施例中,可以通過(guò)兩級(jí)選擇明文,每次選擇明文后進(jìn)行部分功耗分析,獲得中間值的部分bit,多次選擇明文和部分功耗分析后可以得到八個(gè)中間值的全部bit,通過(guò)公式計(jì)算出使用的密鑰。這樣可以降低遍歷空間,有效縮短分析時(shí)間。
如圖3所示,分析的目標(biāo)為Kin和Kout,分析Kin時(shí)的分析對(duì)象為圖中上邊標(biāo)出來(lái)的陰影部分的哈希函數(shù),分析Kout時(shí)的分析對(duì)象為圖中下邊標(biāo)出來(lái)的陰影部分的哈希函數(shù)。兩者分析方式相同,下述分析方法的描述以Kin為例,Kout完全類(lèi)似。
通過(guò)改變目標(biāo)哈希函數(shù)(SM3)的輸入(圖3中的m1),采集不同的功耗曲線,利用功耗曲線進(jìn)行分析,得到目標(biāo)哈希函數(shù)的運(yùn)算中間值,然后利用中間值計(jì)算出密鑰Kin。
1.令SM3的輸入明文m1=W0,W1,W2,W3,W4,W5,W6,W7為隨機(jī)值,采集N組不同明文對(duì)應(yīng)的功耗曲線(也稱(chēng)為能量跡)。
SM3算法的壓縮函數(shù)的計(jì)算過(guò)程如下:
1:For j=0 To 63
2:SS1←((A<<<12)+E+(Tj<<<(j mod 32)))<<<7
3:
4:TT1←FFj(A,B,C)+D+SS2+W′j
5:TT2←GGj(E,F,G)+H+SS1+Wj
6:D←C
7:C←B<<<9
8:B←A
9:A←TT1
10:H←G
11:G←F<<<19
12:F←E
13:E←P0(TT2)
14:EndFor
第0輪運(yùn)算:對(duì)于第4步,TT10=FF0(A0,B0,C0)+D0+SS20+W′0,必須在第0輪計(jì)算,且為4項(xiàng)的和。記θ0=FF0(A0,B0,C0)+D0+SS20,則TT10=θ0+W′0,A1=TT10。同時(shí)假設(shè)A0和θ0,使用漢明距離模型
HD(A0,A1)=HD(A0,TT10)=HD(A0,θ0+W′0)
式中W0′為已知可變值,A0和θ0為假設(shè)值,HD表示漢明距離。使用CPA分析可以同時(shí)得到A0和θ0。但如果同時(shí)假設(shè)A0和θ0的32bit則遍歷空間為264,在現(xiàn)有計(jì)算條件下,耗時(shí)太長(zhǎng),空間消耗太大,本發(fā)明實(shí)施例中使用多次部分CPA來(lái)降低遍歷空間,具體如下:
令SM3的輸入明文m=W0,W1,W2,W3,W4,W5,W6,W7為隨機(jī)值,采集N組不同明文對(duì)應(yīng)的功耗曲線。N組不同的明文記為其中Wij表示第i組明文的第j個(gè)“字”(字,即Word,一個(gè)字=4Byte=32bit),得到的N組功耗曲線用矩陣表示為其中T表示選擇的運(yùn)算部分的持續(xù)時(shí)長(zhǎng),pit表示第i組明文對(duì)應(yīng)的功耗曲線的t時(shí)刻的功耗值,qt表示不同明文在t時(shí)刻的功耗組成的列向量。
1.1分析θ0的0~3bit
假設(shè)和使用漢明距離模型
用CPA分析得到具體分析如下:
(1)計(jì)算中間值矩陣
分別將的24=16種不同的值代入SM3-HMAC的算法流程,計(jì)算出不同明文在第0輪迭代時(shí)的結(jié)果得到中間結(jié)果矩陣其中
表示第j個(gè)的假設(shè)值代入第i條功耗曲線對(duì)應(yīng)的明文計(jì)算得到的中間值。
(2)使用漢明距離模型將中間值矩陣轉(zhuǎn)成功耗矩陣,由于需要使用到而該值為未知值,對(duì)于其24=16種不同的值分別代入漢明距離模型,可以得到一個(gè)共有16*16=256列的仿真功耗矩陣
其中的第一個(gè)下標(biāo)i表示第i組明文,第二個(gè)下標(biāo)j表示的假設(shè)值為j,上標(biāo)k表示的假設(shè)值為k。此步得到一個(gè)N*256的功耗矩陣,矩陣的列數(shù)由j,k決定。
(3)計(jì)算相關(guān)系數(shù)
計(jì)算仿真功耗矩陣H與實(shí)測(cè)功耗矩陣P之間的相關(guān)系數(shù),得到相關(guān)系數(shù)矩陣
C的行數(shù)與H的列數(shù)相等,C的列數(shù)與P的列數(shù)相等,表示仿真功耗矩陣H的第l列于與實(shí)測(cè)功耗P的第t列之間的相關(guān)系數(shù),
其中
(4)選取候選值
找出相關(guān)系數(shù)矩陣C的最大元素則仿真功耗矩陣H的m列對(duì)應(yīng)的第二個(gè)下標(biāo)為的正確值,m列對(duì)應(yīng)的上標(biāo)為的正確值。
1.2分析θ0的4~7bit
與分析0~3bit類(lèi)似,但是要考慮到0~3bit運(yùn)算時(shí)加法的進(jìn)位會(huì)對(duì)4~7bit的運(yùn)算有影響,因此4~7bit分析過(guò)程為,假設(shè)使用漢明距離模型
式中表示普通的帶有進(jìn)位的加,+表示模24的模加,用CPA分析得到
1.3分析θ0的8~31bit
與1.2類(lèi)似,依次分析θ0的4bit,每次分析的假設(shè)值和使用的漢明距離模型分別如下:
通過(guò)該步的分析,可以得到的全部32bit。如圖4所示,為本發(fā)明應(yīng)用示例的分析θ0的流程圖。
2.分析η0
對(duì)于第5步,TT2←GGj(E,F,G)+H+SS1+Wj,必須在第0輪計(jì)算,且為4項(xiàng)的和。記η0=GG0(E0,F0,G0)+H0+SS10,則TT20=η0+W0,E1=P0(TT20)。同時(shí)假設(shè)E0和η0,使用漢明距離模型
HD(E0,E1)=HD(E0,P0(TT20))=HD(E0,P0(η0+W0))
式中W0為已知可變值,E0和η0為假設(shè)值,HD表示漢明距離。使用CPA分析可以同時(shí)得到E0和η0。但如果同時(shí)假設(shè)E0和η0的32bit則遍歷空間為264,在現(xiàn)有計(jì)算條件下,耗時(shí)太長(zhǎng),空間消耗太大,考慮每4bit一組,進(jìn)行部分CPA,降低分析復(fù)雜度。如圖5所示,為本發(fā)明應(yīng)用示例的分析η0的流程圖。
2.1分析η0的0~3bit
因此,可見(jiàn)分析低4bit時(shí)不能只對(duì)低4bit進(jìn)行假設(shè),因?yàn)镻0(X)函數(shù)中引入了移位,bit15~18,bit23~26也有參與。
為了解決這個(gè)問(wèn)題,我們?cè)龠M(jìn)行一次選擇明文,令隨機(jī),則η0+W0只有bit0~3會(huì)產(chǎn)生進(jìn)位,而進(jìn)位一直到bit15的可能性極小,我們忽略這種可能,則上式可以變?yōu)椋?/p>
其中
因此,令隨機(jī),W1,W2,W3,W4,W5,W6,W7隨機(jī),采集N組不同明文的功耗曲線,同時(shí)假設(shè)和可以利用上式使用CPA分析得到具體分析如下:
(1)采集功耗曲線
令隨機(jī),W1,W2,W3,W4,W5,W6,W7隨機(jī),采集N組不同明文的功耗曲線。N組不同的明文記為其中Wij表示第i組明文的第j個(gè)“字”,得到的N組功耗曲線用矩陣表示為
其中T表示選擇的運(yùn)算部分的持續(xù)時(shí)長(zhǎng),pit表示第i組明文對(duì)應(yīng)的功耗曲線的t時(shí)刻的功耗值,qt表示不同明文在t時(shí)刻的功耗組成的列向量。
(2)計(jì)算中間值矩陣
分別將的24=16種不同的值代入SM3-HMAC的算法流程,計(jì)算出不同明文在第0輪迭代時(shí)的結(jié)果得到中間結(jié)果矩陣其中
η0=GG0(E0,F0,G0)+H0+SS10
表示第j個(gè)的假設(shè)值代入第i條功耗曲線對(duì)應(yīng)的明文計(jì)算得到的中間值。
(3)使用漢明距離模型將中間值矩陣轉(zhuǎn)成功耗矩陣,
由于需要使用到而該值為未知值,對(duì)于其24=16種不同的值分別代入漢明距離模型,可以得到一個(gè)共有16*16=256列的仿真功耗矩陣
其中的第一個(gè)下標(biāo)i表示第i組明文,第二個(gè)下標(biāo)j表示的假設(shè)值為j,上標(biāo)k表示的假設(shè)值為k。此步得到一個(gè)N*256的功耗矩陣,矩陣的列數(shù)由j,k決定。
(4)計(jì)算相關(guān)系數(shù)
計(jì)算仿真功耗矩陣H與實(shí)測(cè)功耗矩陣P之間的相關(guān)系數(shù),得到相關(guān)系數(shù)矩陣
C的行數(shù)與H的列數(shù)相等,C的列數(shù)與P的列數(shù)相等,表示仿真功耗矩陣H的第l列于與實(shí)測(cè)功耗P的第t列之間的相關(guān)系數(shù),
其中
(5)選取候選值
找出相關(guān)系數(shù)矩陣C的最大元素則仿真功耗矩陣H的m列對(duì)應(yīng)的第二個(gè)下標(biāo)為的正確值,m列對(duì)應(yīng)的上標(biāo)為的正確值。
2.2分析η0的4~7bit
令W1,W2,W3,W4,W5,W6,W7,為隨機(jī)值,采集N組不同明文的功耗曲線,同時(shí)假設(shè)使用漢明距離模型
使用CPA分析得到其中:
與2.1類(lèi)似,只需要對(duì)以下幾步稍作修改即可:
2.1(1)中采集功耗曲線時(shí),需要令W1,W2,W3,W4,W5,W6,W7,為隨機(jī)值,采集N組不同明文的功耗曲線;
2.1(2)中計(jì)算中間值矩陣時(shí)
2.1(3)中使用漢明距離模型
其他步驟與2.1相同。
2.3分析η0的8~11bit
令W1,W2,W3,W4,W5,W6,W7,為隨機(jī)值,采集N組不同明文的功耗曲線,同時(shí)假設(shè)使用漢明距離模型
使用CPA分析得到
2.4分析η0的12~15bit
令W1,W2,W3,W4,W5,W6,W7,為隨機(jī)值,采集N組不同明文的功耗曲線,同時(shí)假設(shè)使用漢明距離模型
使用CPA分析得到
2.5分析η0的16~19bit
令W1,W2,W3,W4,W5,W6,W7,為隨機(jī)值,采集N組不同明文的功耗曲線,同時(shí)假設(shè)使用漢明距離模型
使用CPA分析得到
2.6分析η0的20~23bit
令W1,W2,W3,W4,W5,W6,W7,為隨機(jī)值,采集N組不同明文的功耗曲線,同時(shí)假設(shè)使用漢明距離模型
使用CPA分析得到
2.7分析η0的24~27bit
令W1,W2,W3,W4,W5,W6,W7,為隨機(jī)值,采集N組不同明文的功耗曲線,同時(shí)假設(shè)使用漢明距離模型
使用CPA分析得到
2.8分析η0的28~31bit
令W1,W2,W3,W4,W5,W6,W7,為隨機(jī)值,采集N組不同明文的功耗曲線,同時(shí)假設(shè)使用漢明距離模型
使用CPA分析得到
3.分析θ1
如圖6所示,為本發(fā)明應(yīng)用示例的分析θ1的流程圖。令W1,W2,W3,W5,W6,W7為隨機(jī)數(shù),W0=W4=0,采集N組不同明文的功耗曲線,用來(lái)分析θ1。每4bit一組,分別進(jìn)行CPA分析,獲得θ1的部分bit。具體步驟如下表所示。
4.分析η1
圖7為本發(fā)明應(yīng)用示例的分析η1的流程圖。
4.1分析η1的0~3bit
令W2,W3,W5,W6,W7,為隨機(jī)值,W0=W4=0,采集N組不同明文的功耗曲線,同時(shí)假設(shè)使用漢明距離模型
使用CPA分析得到
4.2分析η1的4~7bit
令W2,W3,W5,W6,W7,W1[7:4]為隨機(jī)值,W0=W4=0,W1[31:8]=W1[3:0]=0,采集N組不同明文的功耗曲線,同時(shí)假設(shè)使用漢明距離模型
使用CPA分析得到
4.3分析η1的8~11bit
令W2,W3,W5,W6,W7,W1[11:8]為隨機(jī)值,W0=W4=0,W1[31:12]=W1[7:0]=0,采集N組不同明文的功耗曲線,同時(shí)假設(shè)使用漢明距離模型
使用CPA分析得到
4.4分析η1的12~15bit
令W2,W3,W5,W6,W7,W1[15:12]為隨機(jī)值,W0=W4=0,W1[31:16]=W1[11:0]=0,采集N組不同明文的功耗曲線,同時(shí)假設(shè)使用漢明距離模型
使用CPA分析得到
4.5分析η1的16~19bit
令W2,W3,W5,W6,W7,W1[19:16]為隨機(jī)值,W0=W4=0,W1[31:20]=W1[15:0]=0,采集N組不同明文的功耗曲線,同時(shí)假設(shè)使用漢明距離模型
使用CPA分析得到
4.6分析η1的20~23bit
令W2,W3,W5,W6,W7,W1[23:20]為隨機(jī)值,W0=W4=0,W1[31:24]=W1[19:0]=0,采集N組不同明文的功耗曲線,同時(shí)假設(shè)使用漢明距離模型
使用CPA分析得到
4.7分析η1的24~27bit
令W2,W3,W5,W6,W7,W1[27:24]為隨機(jī)值,W0=W4=0,W1[31:28]=W1[23:0]=0,采集N組不同明文的功耗曲線,同時(shí)假設(shè)使用漢明距離模型
使用CPA分析得到
4.8分析η1的28~31bit
令W2,W3,W5,W6,W7,W1[31:28]為隨機(jī)值,W0=W4=0,W1[27:0]=0,采集N組不同明文的功耗曲線,同時(shí)假設(shè)使用漢明距離模型
使用CPA分析得到
5.分析θ2
圖8為本發(fā)明應(yīng)用示例的分析θ2的流程圖。令W2,W3,W6,W7為隨機(jī)數(shù),W0=W4=W1=W5=0,采集N組不同明文的功耗曲線,用來(lái)分析θ2。每4bit一組,分別進(jìn)行部分CPA分析,獲得θ2的部分bit。具體步驟如下表所示。
6.分析η2
圖9為本發(fā)明應(yīng)用示例的分析η2的流程圖。
6.1分析η2的0~3bit
令W3,W6,W7,為隨機(jī)值,W0=W4=W1=W5=0,采集N組不同明文的功耗曲線,同時(shí)假設(shè)使用漢明距離模型
使用CPA分析得到
6.2分析η2的4~7bit
令W3,W6,W7,為隨機(jī)值,W0=W4=W1=W5=0,采集N組不同明文的功耗曲線,同時(shí)假設(shè)使用漢明距離模型
使用CPA分析得到
6.3分析η2的8~11bit
令W3,W6,W7,為隨機(jī)值,W0=W4=W1=W5=0,采集N組不同明文的功耗曲線,同時(shí)假設(shè)使用漢明距離模型
使用CPA分析得到
6.4分析η2的12~15bit
令W3,W6,W7,為隨機(jī)值,W0=W4=W1=W5=0,采集N組不同明文的功耗曲線,同時(shí)假設(shè)使用漢明距離模型
使用CPA分析得到
6.5分析η2的16~19bit
令W3,W6,W7,為隨機(jī)值,W0=W4=W1=W5=0,采集N組不同明文的功耗曲線,同時(shí)假設(shè)使用漢明距離模型
使用CPA分析得到
6.6分析η2的20~23bit
令W3,W6,W7,為隨機(jī)值,W0=W4=W1=W5=0,采集N組不同明文的功耗曲線,同時(shí)假設(shè)使用漢明距離模型
使用CPA分析得到
6.7分析η2的24~27bit
令W3,W6,W7,為隨機(jī)值,W0=W4=W1=W5=0,采集N組不同明文的功耗曲線,同時(shí)假設(shè)使用漢明距離模型
使用CPA分析得到
6.8分析η2的28~31bit
令W3,W6,W7,為隨機(jī)值,W0=W4=W1=W5=0,采集N組不同明文的功耗曲線,同時(shí)假設(shè)使用漢明距離模型
使用CPA分析得到
7.分析θ3
圖10為本發(fā)明應(yīng)用示例的分析θ3的流程圖。令W3,W7為隨機(jī)數(shù),W0=W4=W1=W5=W2=W6=0,采集N組不同明文的功耗曲線,用來(lái)分析θ3。每4bit一組,分別進(jìn)行部分CPA分析,獲得θ3的部分bit。具體步驟如下表所示。
8.分析η3
圖11為本發(fā)明應(yīng)用示例的分析η3的流程圖。
8.1分析η3的0~3bit
令W7,為隨機(jī)值,W0=W4=W1=W5=W2=W6=0,采集N組不同明文的功耗曲線,同時(shí)假設(shè)使用漢明距離模型
使用CPA分析得到
8.2分析η3的4~7bit
令W7,為隨機(jī)值,W0=W4=W1=W5=W2=W6=0,采集N組不同明文的功耗曲線,同時(shí)假設(shè)使用漢明距離模型
使用CPA分析得到
8.3分析η3的8~11bit
令W7,為隨機(jī)值,W0=W4=W1=W5=W2=W6=0,采集N組不同明文的功耗曲線,同時(shí)假設(shè)使用漢明距離模型
使用CPA分析得到
8.4分析η3的12~15bit
令W7,為隨機(jī)值,W0=W4=W1=W5=W2=W6=0,采集N組不同明文的功耗曲線,同時(shí)假設(shè)使用漢明距離模型
使用CPA分析得到
8.5分析η3的16~19bit
令W7,為隨機(jī)值,W0=W4=W1=W5=W2=W6=0,采集N組不同明文的功耗曲線,同時(shí)假設(shè)使用漢明距離模型
使用CPA分析得到
8.6分析η3的20~23bit
令W7,為隨機(jī)值,W0=W4=W1=W5=W2=W6=0,采集N組不同明文的功耗曲線,同時(shí)假設(shè)使用漢明距離模型
使用CPA分析得到
8.7分析η3的24~27bit
令W7,為隨機(jī)值,W0=W4=W1=W5=W2=W6=0,采集N組不同明文的功耗曲線,同時(shí)假設(shè)使用漢明距離模型
使用CPA分析得到
8.8分析η3的28~31bit
令W7,為隨機(jī)值,W0=W4=W1=W5=W2=W6=0,采集N組不同明文的功耗曲線,同時(shí)假設(shè)使用漢明距離模型
使用CPA分析得到
上述分析中間數(shù)θ0,η0,θ1,η1,θ2,η2,θ3,η3的順序可以變換,對(duì)結(jié)果沒(méi)有影響。
9.使用中間值計(jì)算密鑰
通過(guò)上述8個(gè)步驟的分析可以得到θ0,η0,θ1,η1,θ2,η2,θ3,η3,本步通過(guò)一系列的計(jì)算得到A0,B0…H0。
在第3輪迭代中有,A3=θ2,B3=A2=θ1,C3=(B2<<<9)=(θ0<<<9),D3=C2=(A0<<<9),因此
式中只有A0為未知值,可以直接計(jì)算得到A0。同理有
式中只有E0為未知值,可以直接計(jì)算得到E0。
在第2輪迭代中有,
式中只有B0為未知值,可以直接計(jì)算得到B0。同理有
式中只有F0為未知值,可以直接計(jì)算得到F0。
在第1輪迭代有,
式中只有C0為未知值,可以直接計(jì)算得到C0。同理有
式中只有G0為未知值,可以直接計(jì)算得到G0。
在第0輪迭代中有,
式中只有D0為未知值,可以直接計(jì)算得到D0。同理有
式中只有H0為未知值,可以直接計(jì)算得到H0。
至此,我們得到了A0,B0…H0的全部值,即得到了Kin。
通過(guò)改變輸入的明文m1,可得到不同的hn,則hn為已知可變,Kout為hn進(jìn)行壓縮運(yùn)算時(shí)的初始狀態(tài),為未知固定,不斷改變m1的輸入值,進(jìn)而改變的hn值,一層一層地分析出,Kout具體的分析步驟與Kin一致。
恢復(fù)出密鑰Kin和Kout,從而成功分析出SM3-HMAC的敏感信息。通過(guò)密鑰Kin和Kout,分析者可輸出任意消息的消息鑒別碼。
需要說(shuō)明的是,上述實(shí)施例采用了CPA方式進(jìn)行分析,采用DPA方式同樣適合本發(fā)明實(shí)施例。
另外,上述實(shí)施例采用每4bit為一組,將每個(gè)中間值劃分為8組的方式,在其它實(shí)施例中,也可以采用其它劃分方式。
如圖12所示,本發(fā)明實(shí)施例的針對(duì)SM3-HMAC的側(cè)信道能量分析裝置包括:
中間值計(jì)算模塊21,用于針對(duì)硬件實(shí)現(xiàn)的SM3-HMAC,通過(guò)選擇性輸入多組明文的方式,使用漢明距離模型分別獲取SM3密碼算法的中間值θ0θ1θ2θ3η0η1η2η3;
密碼計(jì)算模塊22,用于根據(jù)所述中間值θ0θ1θ2θ3η0η1η2η3分別計(jì)算參數(shù)A0,B0,C0,D0,E0,F0,G0,H0,得到密鑰Kin;
其中,SM3-HMAC根據(jù)如下公式得到:
式中為異或運(yùn)算,||為拼接運(yùn)算,H為采用SM3密碼算法的哈希函數(shù),K0為密鑰K進(jìn)行預(yù)處理的結(jié)果,m為輸入的明文,ipad和opad為固定值,IV為首次執(zhí)行SM3密碼算法時(shí)壓縮函數(shù)的初始狀態(tài)值;Kin為HMAC運(yùn)算中調(diào)用SM3密碼算法時(shí)壓縮函數(shù)的初始狀態(tài)A0B0C0D0E0F0G0H0。
可選地,所述中間值計(jì)算模塊21,進(jìn)一步用于將每個(gè)中間值劃分為多個(gè)部分,通過(guò)選擇性輸入多組明文的方式,使用漢明距離模型分別獲取所述中間值的每個(gè)部分,得到所述中間值。
可選地,所述中間值計(jì)算模塊21,進(jìn)一步用于設(shè)置每4比特為一組,將每個(gè)中間值劃分為8組,通過(guò)選擇性輸入多組明文的方式,使用漢明距離模型,通過(guò)功耗分析,分別獲取所述中間值的每個(gè)部分,得到所述中間值;
其中,所述功耗分析為相關(guān)性功耗分析CPA或差分功耗分析DPA。
可選地,所述中間值計(jì)算模塊21,進(jìn)一步用于:
在獲取中間值θ0θ1θ2θ3時(shí),針對(duì)每個(gè)中間值,進(jìn)行如下操作:將明文中部分字固定,其它部分字作為隨機(jī)數(shù)輸入,輸入多組明文并進(jìn)行功耗分析,獲得所述中間值的每一部分,進(jìn)而得到所述中間值;
在獲取中間值η0η1η2η3時(shí),針對(duì)每個(gè)中間值,進(jìn)行如下操作:將明文中的一個(gè)字作為可變字,其它部分字固定,部分字作為隨機(jī)數(shù)輸入;針對(duì)所述中間值的每一部分,均執(zhí)行:將所述可變字中的部分比特固定,其它比特作為隨機(jī)數(shù)輸入,輸入多組明文并進(jìn)行功耗分析,獲得所分析的部分;根據(jù)獲得所述中間值的每一部分,進(jìn)而得到所述中間值。
顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明實(shí)施例的模塊或步驟可以用通用的計(jì)算裝置來(lái)實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算裝置上,或者分布在多個(gè)計(jì)算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算裝置可執(zhí)行的程序代碼來(lái)實(shí)現(xiàn),從而,可以將它們存儲(chǔ)在存儲(chǔ)裝置中由計(jì)算裝置來(lái)執(zhí)行,并且在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟,或者將它們分別制作成集成電路模塊,或者將它們中的多個(gè)模塊或步驟制作成單個(gè)集成電路模塊來(lái)實(shí)現(xiàn)。這樣,本發(fā)明實(shí)施例不限制于任何特定的硬件和軟件結(jié)合。
雖然本發(fā)明所揭露的實(shí)施方式如上,但所述的內(nèi)容僅為便于理解本發(fā)明而采用的實(shí)施方式,并非用以限定本發(fā)明。任何本發(fā)明所屬領(lǐng)域內(nèi)的技術(shù)人員,在不脫離本發(fā)明所揭露的精神和范圍的前提下,可以在實(shí)施的形式及細(xì)節(jié)上進(jìn)行任何的修改與變化,但本發(fā)明的專(zhuān)利保護(hù)范圍,仍須以所附的權(quán)利要求書(shū)所界定的范圍為準(zhǔn)。