趙福祥
(西安外事學院 工學院,西安 710077)
網絡技術的迅速發展使得更多信息化應用需借助優質平臺得到普及。網絡信息的傳播具有廣泛性和快速性,而信息收集依靠網絡下載才能完成。若要使網絡技術得到更高水平的提升,則需要擴大高速自動數據應用范圍替代緩慢的人工數據,使網絡充分實現自動化。自物品條碼化以后,大量的物品信息被嵌入式功能設備自動注入網絡,構建自動識別的信息基礎。這類嵌入式功能設備的組裝成本確定了其應用的規模,而規模的形成則需要有技術的潛力。為削減成本,研究人員應采用低成本嵌入式功能器件附加簡化網絡協議來實現,如中繼器網絡、物聯網等,這樣既保證了設備所屬的功能實現,又具有網絡連接功能。由于嵌入式設備包含了功能實現與網絡連接雙重任務,因此其作為網絡節點的應用多為資源受限設備,而資源受限造成網絡協議的弱化,它們只能執行用戶數據報協議,多數設備需支持移動而采用無線傳輸、電池供電等特點。
網絡信息的安全不能缺少安全機制的保障,無論是互聯網還是物聯網,凡是涉及個人隱私信息、國家安全的機密信息、公務安全信息和法律保護的安全信息,都應有相應的機密保護。而安全認證則是涉及個人身份與實體身份合法性的安全保護,人物、網絡節點和程序代碼都可接受認證保護。網絡常用的分組密碼為AES、認證公鑰密碼為RSA,用于無線網絡協議流密碼為RC4等。這些常規密碼算法都有大規模迭代計算步驟,用于網絡安全協議,如IPSEC、SSL和IEEE 802.11等,然而卻無法將已有安全協議或安全算法直接用于嵌入式功能器件構成的物聯網,解決沖突的方法是根據嵌入式設備的安全工作需求做全新密碼的算法設計,如輕重量密碼算法[1]和認證加密算法[2]。輕重量密碼算法的目標是為存儲器系統配置安全算法,因而所構造的算法多為哈希或流密碼的硬件算法[3],以減少算法對設備的系統占用,實現輕重量配置。而認證加密算法的目標是合并認證與加密兩個經典的安全步驟為一個步驟完成,縮短加密協議中的復雜過程。認證加密算法主體雖然為AES,但不排除輕重量加密算法對認證加密算法的構成。現代加密技術強調算法采用多重疊加的綜合模式來提高安全強度,以抵御選擇明文攻擊(CPA)或選擇密文攻擊(CCA)。如密碼分組鏈(CBC)模式或可調加密模式[4]都是加密時疊加由密文本身產生的偽隨機數而引起的不確定性擾動,以差別化相同明文在不同位置的密文值,從而增加攻擊的難度。密碼分組鏈的缺點是擾動的來源僅來自加密數據的反饋,相同明文的排列順序會依然延續到密文中,若在公開的網絡環境中輸入經過巧妙設計的明文,所得密文強數字特征將可能增加被攻破的可能性。與密碼分組鏈不同,可調加密模式的不確性擾動來源于密文所在位置,通過采用順序的分布,所產生不確定性擾動分布使得不同位置的相同密文特征均不相同[5]。
數據安全是信息安全應用的重要保證,資源受限的低成本嵌入式設備所使用的輕量級網絡協議DTLS和壓縮IPSEC在采用常規密碼算法時,達不到實用效果。本文結合輕重量密碼、認證加密技術和可調加密技術,使密碼技術更適合資源受限制網絡安全環境,并通過改進原有安全技術,提出基于可調分組認證的加密實現方案,以硬件支持的可調分組認證加密實現低成本嵌入式設備網絡的安全支持。
本文方案的目標是實現嵌入式自身安全與數據實時加密的需求、涉及嵌入式防護與抗密文結構分析等。各項實用關鍵性技術及組合都應圍繞目標設置。

兼顧效率與成本,網絡數據傳輸采用分組數據的層次結構來管理數據,稱為傳輸的數據包。按網絡節點單次處理數據的最大限度,把一個傳輸的消息分成若干分組。每個分組都以數據包標志序號作為區分,在分組內可通過設置包內計數器標記每個字節。實現加密數據的無縫嵌入是經濟而有效的方法,為簡化數據包內數據單位與加密分組實際長度比值關系,方案簡化各類傳輸單位為加密分組統一的數據塊單位(簡稱塊)。塊既做數據操作單位,也可做加密單位,同時還兼做密鑰更換單位。抗誤用可調隨機串的結構是由存儲塊號構成的函數,以保證密文在相同地址存儲時的可調因子取值不同。當從數據包讀出原來的數據值時則應按原始值讀出。抗誤用可調結構的計算公式如下:
T=F(IDsec,contsec)
其中,IDsec是數據包標志號,contsec是數據包內加密塊偏移地址計數器的值。
基于置換的認證加密[8-10]是由海綿包和抗隨機串誤用的認證加密方案。海綿包生成一個密鑰流用以加密用戶數據,而用附加數據通過對密鑰流的檢驗使加密數據得以認證。解密則使用反向的置換,整個算法緊湊,可用于在線方式處理數據,但加密算法安全信息熵值來源于用戶密鑰,仍需可調安全模式延展加密算法,通過所選數據塊地址的加一操作取得新的隨機串,充當可調密鑰值,使不同加密數據塊密鑰不同。嵌入式加密的系統結構如圖1所示。

圖1 嵌入式加密的系統結構
設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倍數的字符串的集合,最多2c/2個分組。確定邊界2c/2是為了定義一個隨機函數作為在有限的函數集上的采樣,應注意證明2c/2分組長度的查詢邊界變得較小[11]。同樣,設R+表示長度為r正倍數的字符串集合,最多2c/2個分組。給定M∈R+,將它劃分為分組,即M[1]M[2]…M[ω]←M,其中,每個M[i]是一個分組,ω是字符串M的分組長度。
加密算法E接受輸入密鑰K∈K=C,相關的數據A∈R*,消息M∈R+,并返回密文C∈R+和標簽T∈C,即(C,T)→EK(A,M)。另一方面,D接收輸入密鑰K∈C,相關的數據A∈R*,密文C∈R+和標簽T∈C,并返回消息M∈R+或拒絕符號⊥,即M/⊥←DK(A,C,T),如算法1、算法2所示。這兩個函數是合理的,每當加密消息(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]中,隨機串的包是可選的。如果隨機串需要,它可以被包含作為相關數據的一部分。當允許隨機串為任意長度時,作為隨機串和相關的數據應清晰可辨[13]。
基于可調的認證加密的實現帶來了明顯的安全增益,實現認證與加密業務合并和抵御選擇明文/密文攻擊設置。輕量密碼算法的改進改善了資源的占用與能源的耗費,但作為經典算法,仍然固守了大數據量迭代算法方式。因此,本質特性決定了系統需做合理的設計選擇。因為受限資源設備的環境因素與可調加密認證加密算法的操作需求存在較大差異,所以在系統的任務目標和任務實現上應采取不同的配置,有效地發揮可調加密算法在系統中的安全效能[14]。
系統實現的目標確定出系統實現的原則與方法。體現其最關鍵的任務是確定可調認證加密的基礎算法。盡管輕量級算法中Keccak和Quark都屬于基于置換的密碼算法,且算法Keccak被選為sha3標準,但獨立設置的硬件算法更有利于受限設備程序的運行與能量控制,相比較而言,Quark參數更適合資源受限環境的應用,算法的相關參數如表1所示。實時系統應該利于短程序的執行,而長處理程序與系統命令共同運行則需要設置更低的級別,使認證加密時間延長,系統處理效能降低。

表1 嵌入式加密算法的相關參數
采用密碼的硬件算法是封閉大數據處理峰值點有效提高并行度的方法[15]。Quark硬件算法可保留原有置換結構與相關參數作為新系統設置,增加可調密鑰設置達到獨立、安全與并行的目標,選擇出新算法的核心結構基調,根據實際數據寬度需求確定u-Quark作為系統算法的基礎,表1列出了Quark多種規格數據參數。從表1數據可以看出,數據簽名寬度為17字符,位寬為136位,輸入寬度為1字符,位寬為8位,選擇參數均以最小數據為標準,以適用資源受限系統的應用。
作為系統中可調硬件的并行數據處理器,具有獨立的算法控制信號系統十分必要。控制信號組織數據的輸入與輸出,并控制數據處理過程的步驟與迭代[16]。完全自主的控制信號使可調分組認證加密算法在系統中獨立完成整個加密處理,與系統中的其他部分構成并行處理過程。圖2給出算法控制信號波形的起始與結束過程,其中起始過程包括狀態初始化控制信號和數據輸入控制信號,結束過程包括簽名輸出的控制信號。圖3給出無數據輸入時的簽名仿真波形,波形包括空數據輸入、迭代處理與簽名數據輸出。迭代過程有544個時鐘步驟,累計輸出17個迭代過程,即位寬為136位。若選擇時鐘周期為100 ns,則完成簽名后用時為925 μs。

圖2 算法控制信號波形的起始與結束

圖3 簽名的仿真波形
對可調分組的認證加密方案所做評估應該完成兩個方面的工作,即證明所構建的系統能夠完成認證加密的所有工作任務,以及證明所構建系統足夠高效,可以在實際應用中被接受。因為方案的置換與結構來自于Quark算法,各項工作可從相關文獻中獲得,剩下只需證明方案可以完成認證加密的所有工作任務。認證加密算法屬大規模迭代算法,合理組織數據測試就變得較為方便[17-18]。在本文方案中,可把算法簽名的初始值看作密鑰,所得到的摘要值是對空附加數據的簽名,簽名后得C[0]=8a4ade386e562333f,T=166afab57b0bed748,可看作是空加密數據的認證加密值。然后,把可調密鑰的值與被加密數據值進行異或,導入算法后析出各分組加密值,從而完成認證加密基本任務的所有步驟。
現有方案中的算法只是一個基本的認證加密算法,除硬件算法的實現適合資源受限的嵌入式應用外,沒有實施任何加密模式的保護,不能抵御選擇明文方式的攻擊。與現有方案相比,本文方案增加了可調加密模式,使之可抵御選擇明文的攻擊,因而可適用于網絡的開放環境中,另外,現有方案算法為應用于資源受限的嵌入式硬件算法,在改進過程中只增加了包內加密計數器這類簡單硬件,并沒有增加系統資源的占用,因而仍適用于資源受限的嵌入式環境[19-20]。結合本文算法這兩項優點,可將本文方案算法應用于物聯網對互聯網跨網絡的安全連接。
本文貢獻主要有以下3點:
1)提出采用可調模式支持的基于置換的認證加密算法,使應用于受限嵌入環境中認證加密算法可成功抵御選擇明文攻擊,滿足網絡開放條件下的安全需求。
2)給出適合于網絡數據包的可調模式的加密的實現方法,使可調模式能夠順利實現,提高了網絡安全級別,且代價較小,從而最大限度地滿足了受限嵌入環境中的安全需求。
3)提供了硬件算法的實現,支持資源受限環境下物聯網設備的安全需求,以硬件配制簡化了此類設備的結構設計。
在網絡異構環境下,各種設備運行條件并不相同,資源受限的嵌入式網絡設備選擇硬件算法處理可調認證加密的任務,而常規設備并無資源限制,則可采用軟件或硬件算法處理相應的任務。雖然軟硬件算法所使用的方法不同,但執行的數字標準應相同。若物聯網段設備與互聯網段設備通信,當數據跨過物聯網特殊的路由器后,物聯網段設備運用硬件算法處理認證加密數據,而互聯網段則使用軟件算法來處理相同認證加密數據。
本文提出一個基于可調加密認證的加密方案,以支持資源受限的物聯網絡設備的安全應用。在已有的認證加密方法基礎上實現可調模式操作,增加算法抵御選擇明文攻擊的能力,以數據包標志號與偏移地址計數器的值為可調參數,使加密密文成為抗誤用可調隨機串的結構。本文改進方案使原認證加密算法不僅支持資源受限設備的應用,而且可支持物聯網對互聯網跨網絡開放的安全應用。由于嵌入式安全是一項綜合技術,對認證加密算法可調模式的處理雖然有效,但仍然存在未知風險,下一步將對貼合實際的固有安全數字特性進行研究,以更好地抵御選擇明文的攻擊。