劉桂雄,張 龍,徐欽桂
(1.華南理工大學(xué)機(jī)械與汽車工程學(xué)院,廣東 廣州 510640;2.東莞理工學(xué)院,廣東 東莞 523808)
物聯(lián)網(wǎng)平臺(tái)監(jiān)測(cè)節(jié)點(diǎn)的完整性是保證其運(yùn)行可信的前提,是物聯(lián)網(wǎng)平臺(tái)數(shù)據(jù)來源可信度的重要因素[1]。物聯(lián)網(wǎng)監(jiān)測(cè)節(jié)點(diǎn)完整性驗(yàn)證與增強(qiáng)涉及部署于現(xiàn)場(chǎng)的節(jié)點(diǎn)硬件(包括固件)完整性表征方法、完整性增強(qiáng)方法以及完整性驗(yàn)證方法等3個(gè)層次。不同現(xiàn)場(chǎng)監(jiān)測(cè)節(jié)點(diǎn)固有屬性、賦予屬性、屬性融合算法產(chǎn)生不同派生屬性,為實(shí)施不同完整性驗(yàn)證策略創(chuàng)造條件。不變屬性融合算法通過派生屬性值可靠地反映現(xiàn)場(chǎng)節(jié)點(diǎn)不變屬性變化的能力,是現(xiàn)場(chǎng)節(jié)點(diǎn)完整性驗(yàn)證的基礎(chǔ)[2],雖然使用MD5和SHA-1等散列算法壓縮融合節(jié)點(diǎn)不變屬性獲得的節(jié)點(diǎn)標(biāo)識(shí)特征碼、固件數(shù)字指紋等派生屬性能較好地表征被融合屬性的不變特征[3];但給定數(shù)字指紋,利用算法結(jié)構(gòu)漏洞,尋找具有特定特征明文的計(jì)算時(shí)間、難度都在不斷降低[4-6]。
為滿足物聯(lián)網(wǎng)平臺(tái)監(jiān)測(cè)節(jié)點(diǎn)完整性要求,提出一種基于改進(jìn)SHA-1物聯(lián)網(wǎng)監(jiān)測(cè)節(jié)點(diǎn)完整性驗(yàn)證與增強(qiáng)方法,引入基于SHA-1的不變屬性融合增強(qiáng)算法技術(shù),并通過迭代結(jié)構(gòu)、變換函數(shù)、融合順序改進(jìn)方法,增強(qiáng)物聯(lián)網(wǎng)監(jiān)測(cè)節(jié)點(diǎn)完整性保護(hù)能力、完整性驗(yàn)證可信度。
完整性驗(yàn)證方法是現(xiàn)場(chǎng)節(jié)點(diǎn)完整性驗(yàn)證與增強(qiáng)的最后層次,與現(xiàn)場(chǎng)節(jié)點(diǎn)硬件(包括固件)完整性表征方法、完整性增強(qiáng)方法等層次內(nèi)容緊密相關(guān)。

圖1 物聯(lián)網(wǎng)監(jiān)測(cè)節(jié)點(diǎn)完整性驗(yàn)證架構(gòu)圖
圖1為物聯(lián)網(wǎng)監(jiān)測(cè)節(jié)點(diǎn)完整性驗(yàn)證基本方法構(gòu)架。應(yīng)用層測(cè)控服務(wù)器啟動(dòng)節(jié)點(diǎn)完整性驗(yàn)證流程,現(xiàn)場(chǎng)節(jié)點(diǎn)完整性監(jiān)控模塊發(fā)出驗(yàn)證請(qǐng)求,現(xiàn)場(chǎng)節(jié)點(diǎn)收到驗(yàn)證請(qǐng)求后產(chǎn)生其現(xiàn)場(chǎng)節(jié)點(diǎn)派生屬性,對(duì)派生屬性進(jìn)行防分析破壞、動(dòng)態(tài)隨機(jī)化處理得到完整性證據(jù)。現(xiàn)場(chǎng)節(jié)點(diǎn)完整性監(jiān)控模塊收到完整性證據(jù)后,進(jìn)行分析與解耦,恢復(fù)實(shí)際節(jié)點(diǎn)完整性表征值,再與預(yù)存的現(xiàn)場(chǎng)節(jié)點(diǎn)信息庫(kù)中的節(jié)點(diǎn)完整性信息比較分析,最后給出完整性驗(yàn)證結(jié)果。
由現(xiàn)場(chǎng)節(jié)點(diǎn)完整性驗(yàn)證基本流程可看出,通過改變節(jié)點(diǎn)完整標(biāo)準(zhǔn)值計(jì)算、使用方式和完整性證據(jù)生產(chǎn)算法,可使現(xiàn)場(chǎng)節(jié)點(diǎn)完整性驗(yàn)證方法在范圍、效率和可信度等方面得以增強(qiáng),滿足不同測(cè)控應(yīng)用需求。
改進(jìn)SHA-1散列算法基本思想是:通過包含消息分組、填充、擴(kuò)展、移位、位與、位或等操作的迭代過程將被融合不變屬性值的明文消息壓縮到一個(gè)固定長(zhǎng)度(160b)的數(shù)據(jù)串中,使不同明文間的相互聯(lián)系模糊化、隨機(jī)化,保留明文消息不變特征,放大明文消息中的微小擾動(dòng),使對(duì)明文消息的篡改檢測(cè)變得容易。圖2是一種基于SHA-1不變屬性融合增強(qiáng)算法基本框架。

圖2 基于SHA-1不變屬性融合增強(qiáng)算法基本框架
基于SHA-1不變屬性融合增強(qiáng)算法核心體現(xiàn)在不變屬性值合并與消息分組填充、交叉雙管道迭代結(jié)構(gòu)、消息分組壓縮變換算法、迭代變量初始化等方面。其中不變屬性值合并與消息分組填充主要完成獲得明文消息,按512b分組,填充比特串,以便按分組進(jìn)行迭代壓縮;壓縮變換的交叉雙管道迭代結(jié)構(gòu)是通過將兩個(gè)壓縮變換過程輸出交叉送往另一壓縮變換過程,防范利用兩個(gè)沖突前綴構(gòu)造更多沖突明文攻擊行為;消息分組壓縮變換算法主要是使不同明文間的相互聯(lián)系模糊化,保留明文消息不變特征;迭代變量初始化目的就是將隨機(jī)性注入到壓縮變換過程。
2.2.1 不變屬性值合并與消息分組填充
(1)將節(jié)點(diǎn)在時(shí)刻T的待融合屬性SF1、…、SFn連接得到明文消息M=VALR(SF1,T)||…||VALR(SFn,T)。
(2)將M按512b分組,填充比特串(首位填1,其余填0)使末組長(zhǎng)度為448位,將表示明文消息原始長(zhǎng)度的32b的整數(shù)值,按先高后低字節(jié)序附加到末組,形成 L 個(gè)帶相關(guān)性的 512b 消息分組(M1,M2,…,ML)。
2.2.2 壓縮變換的交叉雙管道迭代結(jié)構(gòu)
圖3是基于SHA-1不變屬性融合增強(qiáng)算法交叉雙管道迭代結(jié)構(gòu)。采用一種由兩個(gè)壓縮變換過程GA、GB構(gòu)成的交叉雙管道結(jié)構(gòu)對(duì)消息分組進(jìn)行迭代壓縮,整個(gè)壓縮過程由L個(gè)迭代構(gòu)成,前一輪迭代GHi-1=(GAi-1,GBi-1)輸出傳給后一輪迭代 GHi=(GAi,GBi)兩個(gè)壓縮算法作為輸入,第i輪迭代產(chǎn)生輸出Hi=(HAi,HBi),即:


圖3 基于SHA-1不變屬性融合增強(qiáng)算法交叉雙管道迭代結(jié)構(gòu)
最后一次迭代輸出值為待融合屬性SA1、…、SAn在時(shí)刻T的160b數(shù)字指紋H=GH(M)。通過將兩個(gè)壓縮變換過程的輸出交叉送往另一壓縮變換過程,可防范利用兩個(gè)沖突前綴構(gòu)造更多沖突明文攻擊行為。
2.2.3 消息分組壓縮變換算法
(1)第i輪壓縮過程GA將前一輪壓縮過程GB的160 b輸出HBi-1和512 b消息分組Mi合并形成672b擴(kuò)展消息分組EMi;(2)將EMi擴(kuò)展成80個(gè)32b字,672bEMi劃分成 21 個(gè) 32b 字形成 W1~W20;采用取子串、異或、移位等操作產(chǎn)生W21~W79,使包含在HBi-1和Mi中的不變屬性特征被打亂、模糊化,分散到80個(gè)32b字中,即:

(3)壓縮過程GA、GB通過4輪處理過程上一輪輸入HAi-1、HBi-1和80個(gè)消息字Wt(0≤t≤79)壓縮變換成兩個(gè)160b輸出HAi、HBi。每輪處理由20步迭代運(yùn)算組成,迭代運(yùn)算采用邏輯函數(shù)ft(B,C,D)、加、移位等運(yùn)算對(duì)緩沖區(qū)字A、B、C、D、E進(jìn)行更新:

2.2.4 迭代變量初始化
壓縮變換過程GA和GB采用不同隨機(jī)整數(shù)值初始化5個(gè)緩沖區(qū)字ABCDE(即HA0和HB0),使兩個(gè)壓縮過程產(chǎn)生不同輸出序列HA1,…,HAL和HB1,…,HBL。為將隨機(jī)性注入到壓縮變換過程,將HA0和HB0分別初始化為前5個(gè)素?cái)?shù)和接下來5個(gè)素?cái)?shù)小數(shù)部分前32位二進(jìn)制代碼組成的整數(shù),即:

在Windows XP環(huán)境下,運(yùn)用開發(fā)工具Visual Studio 2008,從防碰撞性能、混亂與散布性能兩方面的性能測(cè)試來評(píng)價(jià)基于SHA-1改進(jìn)不變屬性融合增強(qiáng)算法的性能。
碰撞是指找到兩個(gè)或兩個(gè)以上具有相同數(shù)字指紋的明文消息,從而發(fā)生多對(duì)一不變屬性到數(shù)字指紋的融合映射[7]。可用表示數(shù)字指紋部分對(duì)應(yīng)字節(jié)相同的擊中次數(shù)Nhits、數(shù)字指紋距離Ldist指標(biāo)來描述不變屬性融合算法的防碰撞性能。其中,Nhits是指兩個(gè)20字節(jié)數(shù)字指紋在相同位置字節(jié)具有相同數(shù)值的字節(jié)數(shù),測(cè)試方法是創(chuàng)建一個(gè)隨機(jī)串作為明文消息,計(jì)算其數(shù)字指紋,隨機(jī)改變?cè)撁魑南?個(gè)比特,重新計(jì)算數(shù)字指紋,比較兩個(gè)數(shù)字指紋對(duì)應(yīng)位置字節(jié)數(shù)值,若有n個(gè)字節(jié)相同,被擊中n次;Ldist是指定義兩個(gè)數(shù)字指紋各個(gè)對(duì)應(yīng)位置上字節(jié)值差的絕對(duì)值和,si和si′分別是兩個(gè)數(shù)字指紋第i字節(jié),ν(si)和ν(si′)對(duì)應(yīng)字節(jié)的數(shù)值,則:

具體指標(biāo)有最大距離LdistMAX、最小距離LdistMIN、平均距離和平均距離/字符等。
利用隨機(jī)數(shù)產(chǎn)生2kB明文消息,連續(xù)測(cè)試4096次,表1為本文改進(jìn)SHA-1算法、SHA-1算法的Nhits、LdistMAX、LdistMIN值比較表。可以看出,改進(jìn)SHA-1算法碰撞率很低,碰撞性能略強(qiáng)于SHA-1算法;改進(jìn) SHA-1 算法的 LdistMAX、LdistMIN、明顯大于SHA-1算法,防碰撞性能得到明顯提高。Lˉdist=85.795,僅與理論值85.333[8]相差0.54%,獲得很好隨機(jī)性。
混亂與散布性能是指明文消息特征被相應(yīng)數(shù)字指紋模糊化、散亂化的程度。一種測(cè)試該指標(biāo)的方法是隨機(jī)選取一段明文消息,對(duì)每個(gè)明文消息計(jì)算其數(shù)字指紋,再任意改變1b明文,計(jì)算新數(shù)字指紋,比較兩個(gè)數(shù)字指紋,統(tǒng)計(jì)置亂數(shù)均值Gˉ、置亂數(shù)方差ΔG等指標(biāo)來加以比較分析。其中Gˉ、ΔG分別定義為N輪測(cè)試各輪測(cè)試結(jié)果置亂數(shù)Gi的平均值、各輪測(cè)試結(jié)果置亂數(shù)Gi的標(biāo)準(zhǔn)差,即:

分別取 N=256,512,1 024,2 048 進(jìn)行 4 輪測(cè)試,利用隨機(jī)數(shù)產(chǎn)生2 kB明文消息,表2為本文改進(jìn)SHA-1算法、SHA-1算法的、ΔG 值比較表。可以看出,改進(jìn)算法達(dá)80.0107,與理想數(shù)80已非常接近,ΔG低至6.3,與SHA-1相比均獲得一定改善。
研究現(xiàn)場(chǎng)節(jié)點(diǎn)完整性表征值融合增強(qiáng)方法,提出基于SHA-1的改進(jìn)現(xiàn)場(chǎng)節(jié)點(diǎn)完整性表征值融合算法。將待融合屬性值附加其長(zhǎng)度劃分為L(zhǎng)個(gè)512b消息分組(M1,M2,…,ML),提供碰撞攻擊難度;采用交叉雙管道迭代結(jié)構(gòu)壓縮變換成160b完整性表征值,抗擊利用沖突前綴構(gòu)造沖突明文攻擊行為;利用素?cái)?shù)小數(shù)部分前32位二進(jìn)制編碼構(gòu)成的整數(shù)對(duì)迭代變量初始化,增強(qiáng)初始值隨機(jī)性。仿真實(shí)驗(yàn)表明,改變明文消息1b帶來的數(shù)字指紋平均距離=85.795,僅與理論值85.333偏差0.54%;與SHA-1相比,改進(jìn)SHA-1算法置亂數(shù)均值從80.3583下降到80.0107,更接近理想值80。

表2 混亂與散布性能指標(biāo)測(cè)試結(jié)果
[1]寧煥生,徐群玉.全球物聯(lián)網(wǎng)發(fā)展及中國(guó)物聯(lián)網(wǎng)建設(shè)若干思考[J].電子學(xué)報(bào),2010,38(11):2590-2599.
[2]單紅.一組完整性校驗(yàn)算法極其效率分析[J].安徽大學(xué)學(xué)報(bào):自然科學(xué)版,2004,31(5):28-31.
[3]Weber R H.Internet of things-new security and privacy challenges[J].Computer Law&Security Review,2010(26):23-30.
[4]Wang X Y,Yin Y L,Yu H B.Finding collisions in the full SHA-1[C]∥In Victor Shoup,editor,Advances in Cryptology-CRYPTO'05,Lecture Notes in Computer Science,2005,3621:17-36.
[5]Wang X Y,Yin Y L,Yu H Bo.Efficient collision search at tacks on SHA-0[C]∥In Victor Shoup,editor,Advances in Cryptology-CRYPTO'05,Lecture Notes in Computer Science,2005,3621:1-16.
[6]Xie T,F(xiàn)eng D G.How to find weak input differences for MD5 collision attacks[OIML],2009.http://eprint.iacr.org/2009/223.pdf.1-20.
[7]李恒,徐自勵(lì),金立杰.數(shù)據(jù)關(guān)聯(lián)方法在對(duì)點(diǎn)定位系統(tǒng)中的應(yīng)用[J].中國(guó)測(cè)試,2012(5):69-72.
[8]YI X.Hash function based on chaotic tent maps[J].IEEE Transactions on Circuits and Systems-Ⅱ:Express.briefs,2005,52(6):354-357.