趙福祥
(西安外事學院 工學院,西安 710077)
網(wǎng)絡技術的迅速發(fā)展使得更多信息化應用需借助優(yōu)質平臺得到普及。網(wǎng)絡信息的傳播具有廣泛性和快速性,而信息收集依靠網(wǎng)絡下載才能完成。若要使網(wǎng)絡技術得到更高水平的提升,則需要擴大高速自動數(shù)據(jù)應用范圍替代緩慢的人工數(shù)據(jù),使網(wǎng)絡充分實現(xiàn)自動化。自物品條碼化以后,大量的物品信息被嵌入式功能設備自動注入網(wǎng)絡,構建自動識別的信息基礎。這類嵌入式功能設備的組裝成本確定了其應用的規(guī)模,而規(guī)模的形成則需要有技術的潛力。為削減成本,研究人員應采用低成本嵌入式功能器件附加簡化網(wǎng)絡協(xié)議來實現(xiàn),如中繼器網(wǎng)絡、物聯(lián)網(wǎng)等,這樣既保證了設備所屬的功能實現(xiàn),又具有網(wǎng)絡連接功能。由于嵌入式設備包含了功能實現(xiàn)與網(wǎng)絡連接雙重任務,因此其作為網(wǎng)絡節(jié)點的應用多為資源受限設備,而資源受限造成網(wǎng)絡協(xié)議的弱化,它們只能執(zhí)行用戶數(shù)據(jù)報協(xié)議,多數(shù)設備需支持移動而采用無線傳輸、電池供電等特點。
網(wǎng)絡信息的安全不能缺少安全機制的保障,無論是互聯(lián)網(wǎng)還是物聯(lián)網(wǎng),凡是涉及個人隱私信息、國家安全的機密信息、公務安全信息和法律保護的安全信息,都應有相應的機密保護。而安全認證則是涉及個人身份與實體身份合法性的安全保護,人物、網(wǎng)絡節(jié)點和程序代碼都可接受認證保護。網(wǎng)絡常用的分組密碼為AES、認證公鑰密碼為RSA,用于無線網(wǎng)絡協(xié)議流密碼為RC4等。這些常規(guī)密碼算法都有大規(guī)模迭代計算步驟,用于網(wǎng)絡安全協(xié)議,如IPSEC、SSL和IEEE 802.11等,然而卻無法將已有安全協(xié)議或安全算法直接用于嵌入式功能器件構成的物聯(lián)網(wǎng),解決沖突的方法是根據(jù)嵌入式設備的安全工作需求做全新密碼的算法設計,如輕重量密碼算法[1]和認證加密算法[2]。輕重量密碼算法的目標是為存儲器系統(tǒng)配置安全算法,因而所構造的算法多為哈希或流密碼的硬件算法[3],以減少算法對設備的系統(tǒng)占用,實現(xiàn)輕重量配置。而認證加密算法的目標是合并認證與加密兩個經典的安全步驟為一個步驟完成,縮短加密協(xié)議中的復雜過程。認證加密算法主體雖然為AES,但不排除輕重量加密算法對認證加密算法的構成?,F(xiàn)代加密技術強調算法采用多重疊加的綜合模式來提高安全強度,以抵御選擇明文攻擊(CPA)或選擇密文攻擊(CCA)。如密碼分組鏈(CBC)模式或可調加密模式[4]都是加密時疊加由密文本身產生的偽隨機數(shù)而引起的不確定性擾動,以差別化相同明文在不同位置的密文值,從而增加攻擊的難度。密碼分組鏈的缺點是擾動的來源僅來自加密數(shù)據(jù)的反饋,相同明文的排列順序會依然延續(xù)到密文中,若在公開的網(wǎng)絡環(huán)境中輸入經過巧妙設計的明文,所得密文強數(shù)字特征將可能增加被攻破的可能性。與密碼分組鏈不同,可調加密模式的不確性擾動來源于密文所在位置,通過采用順序的分布,所產生不確定性擾動分布使得不同位置的相同密文特征均不相同[5]。
數(shù)據(jù)安全是信息安全應用的重要保證,資源受限的低成本嵌入式設備所使用的輕量級網(wǎng)絡協(xié)議DTLS和壓縮IPSEC在采用常規(guī)密碼算法時,達不到實用效果。本文結合輕重量密碼、認證加密技術和可調加密技術,使密碼技術更適合資源受限制網(wǎng)絡安全環(huán)境,并通過改進原有安全技術,提出基于可調分組認證的加密實現(xiàn)方案,以硬件支持的可調分組認證加密實現(xiàn)低成本嵌入式設備網(wǎng)絡的安全支持。
本文方案的目標是實現(xiàn)嵌入式自身安全與數(shù)據(jù)實時加密的需求、涉及嵌入式防護與抗密文結構分析等。各項實用關鍵性技術及組合都應圍繞目標設置。
兼顧效率與成本,網(wǎng)絡數(shù)據(jù)傳輸采用分組數(shù)據(jù)的層次結構來管理數(shù)據(jù),稱為傳輸?shù)臄?shù)據(jù)包。按網(wǎng)絡節(jié)點單次處理數(shù)據(jù)的最大限度,把一個傳輸?shù)南⒎殖扇舾煞纸M。每個分組都以數(shù)據(jù)包標志序號作為區(qū)分,在分組內可通過設置包內計數(shù)器標記每個字節(jié)。實現(xiàn)加密數(shù)據(jù)的無縫嵌入是經濟而有效的方法,為簡化數(shù)據(jù)包內數(shù)據(jù)單位與加密分組實際長度比值關系,方案簡化各類傳輸單位為加密分組統(tǒng)一的數(shù)據(jù)塊單位(簡稱塊)。塊既做數(shù)據(jù)操作單位,也可做加密單位,同時還兼做密鑰更換單位??拐`用可調隨機串的結構是由存儲塊號構成的函數(shù),以保證密文在相同地址存儲時的可調因子取值不同。當從數(shù)據(jù)包讀出原來的數(shù)據(jù)值時則應按原始值讀出??拐`用可調結構的計算公式如下:
T=F(IDsec,contsec)
其中,IDsec是數(shù)據(jù)包標志號,contsec是數(shù)據(jù)包內加密塊偏移地址計數(shù)器的值。
基于置換的認證加密[8-10]是由海綿包和抗隨機串誤用的認證加密方案。海綿包生成一個密鑰流用以加密用戶數(shù)據(jù),而用附加數(shù)據(jù)通過對密鑰流的檢驗使加密數(shù)據(jù)得以認證。解密則使用反向的置換,整個算法緊湊,可用于在線方式處理數(shù)據(jù),但加密算法安全信息熵值來源于用戶密鑰,仍需可調安全模式延展加密算法,通過所選數(shù)據(jù)塊地址的加一操作取得新的隨機串,充當可調密鑰值,使不同加密數(shù)據(jù)塊密鑰不同。嵌入式加密的系統(tǒng)結構如圖1所示。
圖1 嵌入式加密的系統(tǒng)結構
設R:={0,1}r和C:={0,1}c,假設兩個字符串A和B,其中,A‖B與AB可互換,因此存在AB=A‖B∈R×C?{0,1}r+c。假設X∈R×C,Xr表示其在R方向的投影,也稱為比率分量,Xc表示其投影到C,即容量分量。標記0∈R為00…00∈R的簡寫表示,而1∈C為00…01∈C的簡寫表示,符號⊕表示兩個(或更多)字符串的按位異或運算。
R的一個元素稱為分組,設R*表示長度為r倍數(shù)的字符串的集合,最多2c/2個分組。確定邊界2c/2是為了定義一個隨機函數(shù)作為在有限的函數(shù)集上的采樣,應注意證明2c/2分組長度的查詢邊界變得較小[11]。同樣,設R+表示長度為r正倍數(shù)的字符串集合,最多2c/2個分組。給定M∈R+,將它劃分為分組,即M[1]M[2]…M[ω]←M,其中,每個M[i]是一個分組,ω是字符串M的分組長度。
加密算法E接受輸入密鑰K∈K=C,相關的數(shù)據(jù)A∈R*,消息M∈R+,并返回密文C∈R+和標簽T∈C,即(C,T)→EK(A,M)。另一方面,D接收輸入密鑰K∈C,相關的數(shù)據(jù)A∈R*,密文C∈R+和標簽T∈C,并返回消息M∈R+或拒絕符號⊥,即M/⊥←DK(A,C,T),如算法1、算法2所示。這兩個函數(shù)是合理的,每當加密消息(C,T)←EK(A,M),返回總是得到消息密文C與標簽T;如果解密的過程沒通過驗證,獲得拒絕⊥,否則可獲得M←DK(A,C,T)。
輸入KH,KT∈C,A∈R*,M∈R+
輸出C∈R+,T∈C
1.V←(0,KH)∈R×C
2.if A≠Φ then
3.A[1]A[2]…A[u]←A
4.for i=1 to u do
5.V←p(A[i]⊕Vr,Vc)
6.end
7.end
8.M[1]M[2]…M[w]←M
9.for i=1 to w do
11.V←p(M[i]⊕Vr,Vc)
12.C[i]←Vr
13.end
14.C←C[1]C[2]…C[w]
15.T←Vc⊕KH
16.return(C,T)
輸入KH,KT∈C,A∈R*,C∈R+,T∈C
輸出M∈R+or⊥
1.V←(0,KH)∈R×C
2.if A≠Φ then
3.A[1]A[2]…A[u]←A
4.for i=1 to u do
5.V←p(A[i]⊕Vr,Vc)
6.end
7.end
8.C[1]C[2]…C[w]←C
9.C[0]←Vr,V0←Vc
10.V←(C[w],KH⊕T
11.for i=w to 1 do
12.V←p-1(V)
13.M[i]←C[i-1]⊕Vr
15.V←C[i-1]‖Vc
16.end
17.M←M[1]M[2]…M[w]
18.if V0=Vcthen
19.return M
20.else
21.return ⊥
22.end
在基于置換的認證加密[12]中,隨機串的包是可選的。如果隨機串需要,它可以被包含作為相關數(shù)據(jù)的一部分。當允許隨機串為任意長度時,作為隨機串和相關的數(shù)據(jù)應清晰可辨[13]。
基于可調的認證加密的實現(xiàn)帶來了明顯的安全增益,實現(xiàn)認證與加密業(yè)務合并和抵御選擇明文/密文攻擊設置。輕量密碼算法的改進改善了資源的占用與能源的耗費,但作為經典算法,仍然固守了大數(shù)據(jù)量迭代算法方式。因此,本質特性決定了系統(tǒng)需做合理的設計選擇。因為受限資源設備的環(huán)境因素與可調加密認證加密算法的操作需求存在較大差異,所以在系統(tǒng)的任務目標和任務實現(xiàn)上應采取不同的配置,有效地發(fā)揮可調加密算法在系統(tǒng)中的安全效能[14]。
系統(tǒng)實現(xiàn)的目標確定出系統(tǒng)實現(xiàn)的原則與方法。體現(xiàn)其最關鍵的任務是確定可調認證加密的基礎算法。盡管輕量級算法中Keccak和Quark都屬于基于置換的密碼算法,且算法Keccak被選為sha3標準,但獨立設置的硬件算法更有利于受限設備程序的運行與能量控制,相比較而言,Quark參數(shù)更適合資源受限環(huán)境的應用,算法的相關參數(shù)如表1所示。實時系統(tǒng)應該利于短程序的執(zhí)行,而長處理程序與系統(tǒng)命令共同運行則需要設置更低的級別,使認證加密時間延長,系統(tǒng)處理效能降低。
表1 嵌入式加密算法的相關參數(shù)
采用密碼的硬件算法是封閉大數(shù)據(jù)處理峰值點有效提高并行度的方法[15]。Quark硬件算法可保留原有置換結構與相關參數(shù)作為新系統(tǒng)設置,增加可調密鑰設置達到獨立、安全與并行的目標,選擇出新算法的核心結構基調,根據(jù)實際數(shù)據(jù)寬度需求確定u-Quark作為系統(tǒng)算法的基礎,表1列出了Quark多種規(guī)格數(shù)據(jù)參數(shù)。從表1數(shù)據(jù)可以看出,數(shù)據(jù)簽名寬度為17字符,位寬為136位,輸入寬度為1字符,位寬為8位,選擇參數(shù)均以最小數(shù)據(jù)為標準,以適用資源受限系統(tǒng)的應用。
作為系統(tǒng)中可調硬件的并行數(shù)據(jù)處理器,具有獨立的算法控制信號系統(tǒng)十分必要??刂菩盘柦M織數(shù)據(jù)的輸入與輸出,并控制數(shù)據(jù)處理過程的步驟與迭代[16]。完全自主的控制信號使可調分組認證加密算法在系統(tǒng)中獨立完成整個加密處理,與系統(tǒng)中的其他部分構成并行處理過程。圖2給出算法控制信號波形的起始與結束過程,其中起始過程包括狀態(tài)初始化控制信號和數(shù)據(jù)輸入控制信號,結束過程包括簽名輸出的控制信號。圖3給出無數(shù)據(jù)輸入時的簽名仿真波形,波形包括空數(shù)據(jù)輸入、迭代處理與簽名數(shù)據(jù)輸出。迭代過程有544個時鐘步驟,累計輸出17個迭代過程,即位寬為136位。若選擇時鐘周期為100 ns,則完成簽名后用時為925 μs。
圖2 算法控制信號波形的起始與結束
圖3 簽名的仿真波形
對可調分組的認證加密方案所做評估應該完成兩個方面的工作,即證明所構建的系統(tǒng)能夠完成認證加密的所有工作任務,以及證明所構建系統(tǒng)足夠高效,可以在實際應用中被接受。因為方案的置換與結構來自于Quark算法,各項工作可從相關文獻中獲得,剩下只需證明方案可以完成認證加密的所有工作任務。認證加密算法屬大規(guī)模迭代算法,合理組織數(shù)據(jù)測試就變得較為方便[17-18]。在本文方案中,可把算法簽名的初始值看作密鑰,所得到的摘要值是對空附加數(shù)據(jù)的簽名,簽名后得C[0]=8a4ade386e562333f,T=166afab57b0bed748,可看作是空加密數(shù)據(jù)的認證加密值。然后,把可調密鑰的值與被加密數(shù)據(jù)值進行異或,導入算法后析出各分組加密值,從而完成認證加密基本任務的所有步驟。
現(xiàn)有方案中的算法只是一個基本的認證加密算法,除硬件算法的實現(xiàn)適合資源受限的嵌入式應用外,沒有實施任何加密模式的保護,不能抵御選擇明文方式的攻擊。與現(xiàn)有方案相比,本文方案增加了可調加密模式,使之可抵御選擇明文的攻擊,因而可適用于網(wǎng)絡的開放環(huán)境中,另外,現(xiàn)有方案算法為應用于資源受限的嵌入式硬件算法,在改進過程中只增加了包內加密計數(shù)器這類簡單硬件,并沒有增加系統(tǒng)資源的占用,因而仍適用于資源受限的嵌入式環(huán)境[19-20]。結合本文算法這兩項優(yōu)點,可將本文方案算法應用于物聯(lián)網(wǎng)對互聯(lián)網(wǎng)跨網(wǎng)絡的安全連接。
本文貢獻主要有以下3點:
1)提出采用可調模式支持的基于置換的認證加密算法,使應用于受限嵌入環(huán)境中認證加密算法可成功抵御選擇明文攻擊,滿足網(wǎng)絡開放條件下的安全需求。
2)給出適合于網(wǎng)絡數(shù)據(jù)包的可調模式的加密的實現(xiàn)方法,使可調模式能夠順利實現(xiàn),提高了網(wǎng)絡安全級別,且代價較小,從而最大限度地滿足了受限嵌入環(huán)境中的安全需求。
3)提供了硬件算法的實現(xiàn),支持資源受限環(huán)境下物聯(lián)網(wǎng)設備的安全需求,以硬件配制簡化了此類設備的結構設計。
在網(wǎng)絡異構環(huán)境下,各種設備運行條件并不相同,資源受限的嵌入式網(wǎng)絡設備選擇硬件算法處理可調認證加密的任務,而常規(guī)設備并無資源限制,則可采用軟件或硬件算法處理相應的任務。雖然軟硬件算法所使用的方法不同,但執(zhí)行的數(shù)字標準應相同。若物聯(lián)網(wǎng)段設備與互聯(lián)網(wǎng)段設備通信,當數(shù)據(jù)跨過物聯(lián)網(wǎng)特殊的路由器后,物聯(lián)網(wǎng)段設備運用硬件算法處理認證加密數(shù)據(jù),而互聯(lián)網(wǎng)段則使用軟件算法來處理相同認證加密數(shù)據(jù)。
本文提出一個基于可調加密認證的加密方案,以支持資源受限的物聯(lián)網(wǎng)絡設備的安全應用。在已有的認證加密方法基礎上實現(xiàn)可調模式操作,增加算法抵御選擇明文攻擊的能力,以數(shù)據(jù)包標志號與偏移地址計數(shù)器的值為可調參數(shù),使加密密文成為抗誤用可調隨機串的結構。本文改進方案使原認證加密算法不僅支持資源受限設備的應用,而且可支持物聯(lián)網(wǎng)對互聯(lián)網(wǎng)跨網(wǎng)絡開放的安全應用。由于嵌入式安全是一項綜合技術,對認證加密算法可調模式的處理雖然有效,但仍然存在未知風險,下一步將對貼合實際的固有安全數(shù)字特性進行研究,以更好地抵御選擇明文的攻擊。