劉桂雄,張 龍,徐欽桂
(1.華南理工大學(xué)機械與汽車工程學(xué)院,廣東 廣州 510640;2.東莞理工學(xué)院,廣東 東莞 523808)
物聯(lián)網(wǎng)平臺監(jiān)測節(jié)點的完整性是保證其運行可信的前提,是物聯(lián)網(wǎng)平臺數(shù)據(jù)來源可信度的重要因素[1]。物聯(lián)網(wǎng)監(jiān)測節(jié)點完整性驗證與增強涉及部署于現(xiàn)場的節(jié)點硬件(包括固件)完整性表征方法、完整性增強方法以及完整性驗證方法等3個層次。不同現(xiàn)場監(jiān)測節(jié)點固有屬性、賦予屬性、屬性融合算法產(chǎn)生不同派生屬性,為實施不同完整性驗證策略創(chuàng)造條件。不變屬性融合算法通過派生屬性值可靠地反映現(xiàn)場節(jié)點不變屬性變化的能力,是現(xiàn)場節(jié)點完整性驗證的基礎(chǔ)[2],雖然使用MD5和SHA-1等散列算法壓縮融合節(jié)點不變屬性獲得的節(jié)點標識特征碼、固件數(shù)字指紋等派生屬性能較好地表征被融合屬性的不變特征[3];但給定數(shù)字指紋,利用算法結(jié)構(gòu)漏洞,尋找具有特定特征明文的計算時間、難度都在不斷降低[4-6]。
為滿足物聯(lián)網(wǎng)平臺監(jiān)測節(jié)點完整性要求,提出一種基于改進SHA-1物聯(lián)網(wǎng)監(jiān)測節(jié)點完整性驗證與增強方法,引入基于SHA-1的不變屬性融合增強算法技術(shù),并通過迭代結(jié)構(gòu)、變換函數(shù)、融合順序改進方法,增強物聯(lián)網(wǎng)監(jiān)測節(jié)點完整性保護能力、完整性驗證可信度。
完整性驗證方法是現(xiàn)場節(jié)點完整性驗證與增強的最后層次,與現(xiàn)場節(jié)點硬件(包括固件)完整性表征方法、完整性增強方法等層次內(nèi)容緊密相關(guān)。
圖1 物聯(lián)網(wǎng)監(jiān)測節(jié)點完整性驗證架構(gòu)圖
圖1為物聯(lián)網(wǎng)監(jiān)測節(jié)點完整性驗證基本方法構(gòu)架。應(yīng)用層測控服務(wù)器啟動節(jié)點完整性驗證流程,現(xiàn)場節(jié)點完整性監(jiān)控模塊發(fā)出驗證請求,現(xiàn)場節(jié)點收到驗證請求后產(chǎn)生其現(xiàn)場節(jié)點派生屬性,對派生屬性進行防分析破壞、動態(tài)隨機化處理得到完整性證據(jù)?,F(xiàn)場節(jié)點完整性監(jiān)控模塊收到完整性證據(jù)后,進行分析與解耦,恢復(fù)實際節(jié)點完整性表征值,再與預(yù)存的現(xiàn)場節(jié)點信息庫中的節(jié)點完整性信息比較分析,最后給出完整性驗證結(jié)果。
由現(xiàn)場節(jié)點完整性驗證基本流程可看出,通過改變節(jié)點完整標準值計算、使用方式和完整性證據(jù)生產(chǎn)算法,可使現(xiàn)場節(jié)點完整性驗證方法在范圍、效率和可信度等方面得以增強,滿足不同測控應(yīng)用需求。
改進SHA-1散列算法基本思想是:通過包含消息分組、填充、擴展、移位、位與、位或等操作的迭代過程將被融合不變屬性值的明文消息壓縮到一個固定長度(160b)的數(shù)據(jù)串中,使不同明文間的相互聯(lián)系模糊化、隨機化,保留明文消息不變特征,放大明文消息中的微小擾動,使對明文消息的篡改檢測變得容易。圖2是一種基于SHA-1不變屬性融合增強算法基本框架。
圖2 基于SHA-1不變屬性融合增強算法基本框架
基于SHA-1不變屬性融合增強算法核心體現(xiàn)在不變屬性值合并與消息分組填充、交叉雙管道迭代結(jié)構(gòu)、消息分組壓縮變換算法、迭代變量初始化等方面。其中不變屬性值合并與消息分組填充主要完成獲得明文消息,按512b分組,填充比特串,以便按分組進行迭代壓縮;壓縮變換的交叉雙管道迭代結(jié)構(gòu)是通過將兩個壓縮變換過程輸出交叉送往另一壓縮變換過程,防范利用兩個沖突前綴構(gòu)造更多沖突明文攻擊行為;消息分組壓縮變換算法主要是使不同明文間的相互聯(lián)系模糊化,保留明文消息不變特征;迭代變量初始化目的就是將隨機性注入到壓縮變換過程。
2.2.1 不變屬性值合并與消息分組填充
(1)將節(jié)點在時刻T的待融合屬性SF1、…、SFn連接得到明文消息M=VALR(SF1,T)||…||VALR(SFn,T)。
(2)將M按512b分組,填充比特串(首位填1,其余填0)使末組長度為448位,將表示明文消息原始長度的32b的整數(shù)值,按先高后低字節(jié)序附加到末組,形成 L 個帶相關(guān)性的 512b 消息分組(M1,M2,…,ML)。
2.2.2 壓縮變換的交叉雙管道迭代結(jié)構(gòu)
圖3是基于SHA-1不變屬性融合增強算法交叉雙管道迭代結(jié)構(gòu)。采用一種由兩個壓縮變換過程GA、GB構(gòu)成的交叉雙管道結(jié)構(gòu)對消息分組進行迭代壓縮,整個壓縮過程由L個迭代構(gòu)成,前一輪迭代GHi-1=(GAi-1,GBi-1)輸出傳給后一輪迭代 GHi=(GAi,GBi)兩個壓縮算法作為輸入,第i輪迭代產(chǎn)生輸出Hi=(HAi,HBi),即:
圖3 基于SHA-1不變屬性融合增強算法交叉雙管道迭代結(jié)構(gòu)
最后一次迭代輸出值為待融合屬性SA1、…、SAn在時刻T的160b數(shù)字指紋H=GH(M)。通過將兩個壓縮變換過程的輸出交叉送往另一壓縮變換過程,可防范利用兩個沖突前綴構(gòu)造更多沖突明文攻擊行為。
2.2.3 消息分組壓縮變換算法
(1)第i輪壓縮過程GA將前一輪壓縮過程GB的160 b輸出HBi-1和512 b消息分組Mi合并形成672b擴展消息分組EMi;(2)將EMi擴展成80個32b字,672bEMi劃分成 21 個 32b 字形成 W1~W20;采用取子串、異或、移位等操作產(chǎn)生W21~W79,使包含在HBi-1和Mi中的不變屬性特征被打亂、模糊化,分散到80個32b字中,即:
(3)壓縮過程GA、GB通過4輪處理過程上一輪輸入HAi-1、HBi-1和80個消息字Wt(0≤t≤79)壓縮變換成兩個160b輸出HAi、HBi。每輪處理由20步迭代運算組成,迭代運算采用邏輯函數(shù)ft(B,C,D)、加、移位等運算對緩沖區(qū)字A、B、C、D、E進行更新:
2.2.4 迭代變量初始化
壓縮變換過程GA和GB采用不同隨機整數(shù)值初始化5個緩沖區(qū)字ABCDE(即HA0和HB0),使兩個壓縮過程產(chǎn)生不同輸出序列HA1,…,HAL和HB1,…,HBL。為將隨機性注入到壓縮變換過程,將HA0和HB0分別初始化為前5個素數(shù)和接下來5個素數(shù)小數(shù)部分前32位二進制代碼組成的整數(shù),即:
在Windows XP環(huán)境下,運用開發(fā)工具Visual Studio 2008,從防碰撞性能、混亂與散布性能兩方面的性能測試來評價基于SHA-1改進不變屬性融合增強算法的性能。
碰撞是指找到兩個或兩個以上具有相同數(shù)字指紋的明文消息,從而發(fā)生多對一不變屬性到數(shù)字指紋的融合映射[7]。可用表示數(shù)字指紋部分對應(yīng)字節(jié)相同的擊中次數(shù)Nhits、數(shù)字指紋距離Ldist指標來描述不變屬性融合算法的防碰撞性能。其中,Nhits是指兩個20字節(jié)數(shù)字指紋在相同位置字節(jié)具有相同數(shù)值的字節(jié)數(shù),測試方法是創(chuàng)建一個隨機串作為明文消息,計算其數(shù)字指紋,隨機改變該明文消息1個比特,重新計算數(shù)字指紋,比較兩個數(shù)字指紋對應(yīng)位置字節(jié)數(shù)值,若有n個字節(jié)相同,被擊中n次;Ldist是指定義兩個數(shù)字指紋各個對應(yīng)位置上字節(jié)值差的絕對值和,si和si′分別是兩個數(shù)字指紋第i字節(jié),ν(si)和ν(si′)對應(yīng)字節(jié)的數(shù)值,則:
具體指標有最大距離LdistMAX、最小距離LdistMIN、平均距離和平均距離/字符等。
利用隨機數(shù)產(chǎn)生2kB明文消息,連續(xù)測試4096次,表1為本文改進SHA-1算法、SHA-1算法的Nhits、LdistMAX、LdistMIN值比較表。可以看出,改進SHA-1算法碰撞率很低,碰撞性能略強于SHA-1算法;改進 SHA-1 算法的 LdistMAX、LdistMIN、明顯大于SHA-1算法,防碰撞性能得到明顯提高。Lˉdist=85.795,僅與理論值85.333[8]相差0.54%,獲得很好隨機性。
混亂與散布性能是指明文消息特征被相應(yīng)數(shù)字指紋模糊化、散亂化的程度。一種測試該指標的方法是隨機選取一段明文消息,對每個明文消息計算其數(shù)字指紋,再任意改變1b明文,計算新數(shù)字指紋,比較兩個數(shù)字指紋,統(tǒng)計置亂數(shù)均值Gˉ、置亂數(shù)方差ΔG等指標來加以比較分析。其中Gˉ、ΔG分別定義為N輪測試各輪測試結(jié)果置亂數(shù)Gi的平均值、各輪測試結(jié)果置亂數(shù)Gi的標準差,即:
分別取 N=256,512,1 024,2 048 進行 4 輪測試,利用隨機數(shù)產(chǎn)生2 kB明文消息,表2為本文改進SHA-1算法、SHA-1算法的、ΔG 值比較表。可以看出,改進算法達80.0107,與理想數(shù)80已非常接近,ΔG低至6.3,與SHA-1相比均獲得一定改善。
研究現(xiàn)場節(jié)點完整性表征值融合增強方法,提出基于SHA-1的改進現(xiàn)場節(jié)點完整性表征值融合算法。將待融合屬性值附加其長度劃分為L個512b消息分組(M1,M2,…,ML),提供碰撞攻擊難度;采用交叉雙管道迭代結(jié)構(gòu)壓縮變換成160b完整性表征值,抗擊利用沖突前綴構(gòu)造沖突明文攻擊行為;利用素數(shù)小數(shù)部分前32位二進制編碼構(gòu)成的整數(shù)對迭代變量初始化,增強初始值隨機性。仿真實驗表明,改變明文消息1b帶來的數(shù)字指紋平均距離=85.795,僅與理論值85.333偏差0.54%;與SHA-1相比,改進SHA-1算法置亂數(shù)均值從80.3583下降到80.0107,更接近理想值80。
表2 混亂與散布性能指標測試結(jié)果
[1]寧煥生,徐群玉.全球物聯(lián)網(wǎng)發(fā)展及中國物聯(lián)網(wǎng)建設(shè)若干思考[J].電子學(xué)報,2010,38(11):2590-2599.
[2]單紅.一組完整性校驗算法極其效率分析[J].安徽大學(xué)學(xué)報:自然科學(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]李恒,徐自勵,金立杰.數(shù)據(jù)關(guān)聯(lián)方法在對點定位系統(tǒng)中的應(yīng)用[J].中國測試,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.