俞興木,鄭旭飛
(1. 重慶人文科技學院計算機工程學院,重慶 401524;2. 西南大學計算機與信息科學學院,重慶 400715)
網絡數(shù)據(jù)傳輸技術廣泛應用在工業(yè)、醫(yī)院和國防等重要領域[1],傳感器是組成無線傳感器網絡的最小單位,網絡規(guī)模越大、網絡環(huán)境越復雜,網絡通信過程中所具有的挑戰(zhàn)性就越大。隨著網絡在各個領域的推廣,傳感器節(jié)點所產生的弊端越來越突出,并且在網絡傳輸過程中數(shù)據(jù)的安全性及隱私性也備受關注[2-4]。
為了提高無線傳感器網絡通信過程中的效率、安全性及保密性,大量研究者從壓縮感知加密方法出發(fā),以此為基礎,構建基于壓縮感知的數(shù)據(jù)傳輸加密算法。文獻[5]針對數(shù)據(jù)傳輸過程中受到的篡改攻擊,基于里德-所羅門碼對篡改進行定位,并對數(shù)據(jù)進行恢復,結合壓縮感知輕量級加密方法對終端數(shù)據(jù)加密,保證數(shù)據(jù)的保密性,并對測量值進行局部歸一化處理,實現(xiàn)能量值的高強度加密,利用壓縮感知和RS特性實現(xiàn)數(shù)據(jù)的雙重篡改恢復,實驗結果表明該方法具有廣泛的適應性。文獻[6]設計了由預加密和嵌入兩階段構成的加密方法,通過Arnold置亂和Sine映射所產生的受控矩陣對數(shù)據(jù)進行加密與壓縮,為減少數(shù)據(jù)所承受的攻擊,利用伯恩斯坦多項式對嵌入階段的密文圖像進行處理,將其隱藏到載體圖像中,提高加密算法抵抗攻擊的能力,實驗結果表明,該方法具有較高的安全性。文獻[7]采用離散小波變換對數(shù)據(jù)進行稀疏化處理,基于壓縮感知方法加密和測量稀疏矩陣,并加入隨機數(shù),對矩陣進行Hilbert置亂操作,將加密后的圖像隱藏到載體圖像中,實驗結果表明,該方法具有較好的魯棒性,應用范圍較廣泛。
基于以上研究,壓縮感知為網絡數(shù)據(jù)傳輸?shù)募用芗夹g提供了關鍵性的支持,可以解決無線網絡的安全性和適應性等問題,因此提出基于矩陣張量積的輕量網絡數(shù)據(jù)傳輸加密方法。基于矩陣張量感知理論,引入輔助矩陣,實現(xiàn)靈活觀測信息,結合TCP加密算法,提高數(shù)據(jù)傳輸?shù)募用苄逝c安全性。
為保證數(shù)據(jù)采樣精度,通常使采樣信號的頻率高于最高信號頻率的兩倍,但這種方式采集的信號具有較高的冗余度。為了提高空間的利用率,需要對這些數(shù)據(jù)進行壓縮,然后再進行使用。然而壓縮感知不僅可以對稀疏信號降維,還可以通過重構算法將數(shù)據(jù)恢復成原來的信號。壓縮感知過程如圖1所示。
圖1 壓縮感知過程
Rn×nmx
x=Ωa
(1)
其中,a∈Rn×n表示信號x在標準正交變換域Ω中的b個稀疏信號(b表示非零項的個數(shù)),良好的正交變換域可以保證信號稀疏化的效果。
壓縮觀測的過程中通過測量矩陣Ψ對信號x線性投影,公式可表示為
y=Ψx=ΨΩa=Ζa
(2)
其中,Ψ表示與稀疏矩陣Ω不相關的測量矩陣;Ζ表示感知矩陣。測量矩陣對壓縮感知過程中信號精度的恢復有著重要的作用,為了使信號具有唯一性,測量矩陣應滿足Spark性質、非相干性質和有限等距原則這三個約束條件。
Spark性質是滿足信號重構成功的首要條件,用公式表示為
(3)
相干性質可通過兩個列向量的歸一化內積最大絕對值表示,公式可表示為
(4)
其中,βi,βj表示任意的兩個列向量,α(Ζ)的值越大,表示矩陣列向量相關性越高;反之,相關性越低,因此通過相干性可以構造出較好的指導測量矩陣。
有限等距原則表示若所有b階稀疏矩陣均小于一個最小常數(shù),那么矩陣Ζ滿足b階有限等距原則,公式可表示為
(5)
其中,χb表示約束等距常數(shù)。只要滿足上述三個約束條件,就可以保證原始信號的重構。信號的重構恢復是將壓縮后的低維采樣信號恢復為原始信號的過程,公式表示為
(6)
為了轉化成凸優(yōu)化問題,進一步將公式表示為
(7)
在數(shù)據(jù)傳輸過程中,數(shù)據(jù)信息具有冗余度高和可壓縮性等特點,通過數(shù)據(jù)信息的低采樣,降低成本。對于數(shù)據(jù)的稀疏化操作,本文采用離散小波變換方法,經過稀疏化處理得出信號中較大的非零系數(shù),稀疏處理過程描述如下
A=ΩXΩT
(8)
其中,Ω是稀疏基底矩陣;X是原始傳輸數(shù)據(jù)。稀疏處理后的數(shù)據(jù),通過測量矩陣壓縮觀測可表示為
Y=ΨX=ΨΩTAΩ
(9)
其中,Ψ表示測量矩陣;Y表示數(shù)據(jù)壓縮結果。根據(jù)重構恢復算法將稀疏后的傳輸數(shù)據(jù)進行恢復,并通過逆稀疏化得到原數(shù)據(jù)。
壓縮感知技術不僅可以對信息進行壓縮觀測,還能對信息進行加密處理,但加密程度不能抵抗較為嚴重的攻擊。網絡數(shù)據(jù)傳輸過程中若安全性要求較高,壓縮感知技術無法滿足安全性的需求,因此需要增加信息的加密強度。本文提出矩陣張量壓縮感知方法,不僅可以對不同規(guī)模的數(shù)據(jù)進行觀測,還能大大提高數(shù)據(jù)的安全性。
張量積是矩陣乘法中一種特殊形式,分為左、右張量積,可實現(xiàn)2個任意大小矩陣間的乘法運算。以右張量積為例,假設矩陣C=[c1,c2,…,cn]和矩陣D的維數(shù)分別為m×n和p×q,C?D那么經過計算后的右張量積可表示為
(10)
矩陣張量積運算過程具有矩陣乘法的特性,可以使乘法中的矩陣維數(shù)不匹配,即張量積中的左右因式列數(shù)與行數(shù)不需要相等,這大大提高了矩陣乘法的靈活性。張量壓縮感知模型用公式可表示為
y=E×x
(11)
其中,E表示張量觀測矩陣;x表示被測量的數(shù)據(jù)信息;y表示觀測值。假定s為左因式列數(shù)與右因式行數(shù)最小公倍數(shù),進一步將模型表示為
(12)
經過張量積的運算,觀測矩陣的維數(shù)變大,從理論上表明觀測矩陣滿足Spark性質、相干性質和有限等距原則。因此可通過矩陣張量壓縮感知對傳輸數(shù)據(jù)進行壓縮與重構。通過構建,本文設計的新模型可表示為
y=γE×x+ηF
(13)
其中,γ和η表示可變參數(shù),E表示原始矩陣;γ表示輔助矩陣。通過調整γ和η的參數(shù)值,可以滿足不同的需求,使加密后的數(shù)據(jù)信息具有更高的安全性。原始矩陣可以是任意類型的矩陣,當測量矩陣為可逆矩陣時,可完成數(shù)據(jù)信息的精準構建,這樣可大幅度降低數(shù)據(jù)節(jié)點的存儲。輔助矩陣可以是任意類型的矩陣,通過混沌系統(tǒng)產生的矩陣序列具有良好的統(tǒng)計學特性,且服從均勻分布,安全性較高。
原始矩陣通過Tent混沌系統(tǒng)產生,假定系統(tǒng)參數(shù)為λE,初始值為zE0,采樣間隔為dE。通過采樣間隔對數(shù)據(jù)的采樣,可求出隨機序列,用公式可表示為
(14)
其中,zE(i×dE)表示第i個隨機序列;且滿足g=m/p和h=n/p。按照?Ei=1-2zE(i×dE)對隨機序列進行規(guī)格化操作,得到的新序列可表示為
(15)
新序列在區(qū)間(-1,1)上均勻分布,通過重新調整結構,可求出原始矩陣E。
輔助矩陣可通過Logistic混沌系統(tǒng)產生,假定系統(tǒng)參數(shù)為λF,初始值為zF0,采樣間隔為dF。將系統(tǒng)參數(shù)和初值代入混沌系統(tǒng),并按照采樣間隔進行采樣,可以求出隨機序列,用公式可表示為
(16)
zF(i×dF)是第i個隨機序列。將zF(i×dF)采取規(guī)格化處理,得到的新序列如下
(17)
通過重新調整結構,可求出輔助矩陣F。
以往的重構方法通常是把壓縮數(shù)據(jù)做分割操作,并對分割后的一維信息進行重構,但相鄰的數(shù)據(jù)信息間具有極強的關聯(lián)性,隨著消耗時間的增加,傳統(tǒng)方法嚴重影響了壓縮感知性能,因此采用解凸優(yōu)化問題的方法,將原始數(shù)據(jù)的稀疏值用公式表示為
(18)
其中,P表示張量矩陣。該重構算法不僅提高數(shù)據(jù)重構的效率,還明顯改善了數(shù)據(jù)重構的效果。
在采取對稱加密時,加、解密需要共享密鑰;在采取非對稱加密時,加、解密過程使用不同的密鑰。AES技術廣泛應用在數(shù)據(jù)傳輸過程中,具體實現(xiàn)過程為:發(fā)送方對需要加密的傳輸數(shù)據(jù)進行加密,通過網絡傳輸將加密后的數(shù)據(jù)發(fā)送給接收方,接收方通過密鑰對密文進行解密,得到明文。加密解密過程如圖2所示。
圖2 AES加密解密過程
發(fā)送方與接收方產生的密鑰不能直接傳輸?shù)骄W絡中,為了提高網絡數(shù)據(jù)傳輸?shù)陌踩?,大多情況下密鑰通過非對稱加密方法對密文加密再傳輸,因此密鑰對網絡數(shù)據(jù)的傳輸安全具有極其重要的作用,一旦密鑰被泄露,攻擊者通過密鑰便可以竊取數(shù)據(jù)機密,本文采用對稱加密方法對網絡傳輸數(shù)據(jù)進行加密處理。
AES加密過程是將數(shù)據(jù)分為多個組,并對每一組進行加密操作,每個組的數(shù)據(jù)包大小為16個字節(jié),可以選擇不同長度的密鑰,但密鑰長度決定了加密的輪數(shù)。AES加密是可逆的,因此AES解密是加密過程的逆過程,通過反序操作即可解密出明文。
數(shù)據(jù)包屬于TCP/IP協(xié)議通信中的數(shù)據(jù)單元,主要由源IP地址、目的IP地址和網絡負載數(shù)據(jù)三部分組成,網絡數(shù)據(jù)傳輸過程需要對數(shù)據(jù)進行封裝,封裝后的數(shù)據(jù)包發(fā)送過程如圖3所示。
圖3 網絡數(shù)據(jù)發(fā)送過程
用戶數(shù)據(jù)由數(shù)據(jù)頭和數(shù)據(jù)體兩部分構成,但在網絡數(shù)據(jù)加密傳輸過程中,通常對數(shù)據(jù)體進行加密,而對包含版本號、數(shù)據(jù)長度及數(shù)據(jù)類型等重要信息的數(shù)據(jù)頭并沒有進行加密。那么攻擊者竊取包含用戶信息的數(shù)據(jù)頭后,會導致網絡傳輸安全性降低,因此采用TCP協(xié)議對數(shù)據(jù)體和數(shù)據(jù)頭同時進行加密。
TCP是IP的傳輸層協(xié)議,每個TCP只能擁有一個發(fā)送端和接收端,當數(shù)據(jù)傳輸完畢后,需要解釋已經建立好的TCP傳輸連接。由于TCP數(shù)據(jù)傳輸過程中的數(shù)據(jù)段大小由應用層的消息大小和最大傳輸單元的大小決定,因此TCP段大小具有不確定性。TCP傳輸通過最大報文段長度判斷是否對數(shù)據(jù)包進行分段處理。若發(fā)送的TCP數(shù)據(jù)較長,則進行分段處理;若發(fā)送的TCP數(shù)據(jù)較短,等緩存中的數(shù)據(jù)達到一定長度后再進行發(fā)送處理。在采用對數(shù)據(jù)頭和數(shù)據(jù)體加密的過程中,若通過密文方式發(fā)送數(shù)據(jù)頭,無法判斷出密文的長度,導致接收端無法確定出密文破解的時間,因此采用固定傳輸大小的方案進行處理。
由AES加密特點,按每組16個字節(jié)大小進行分組處理,若數(shù)據(jù)小于16個字節(jié)則對數(shù)據(jù)填充。TCP傳輸過程如下:將明文大小固定為1kB,若大于1kB則按數(shù)據(jù)包形式處理;若小于1kB則填充。通過AES對數(shù)據(jù)頭和數(shù)據(jù)體進行加密,當接收端收到1kB的數(shù)據(jù)時進行解密,完成數(shù)據(jù)的傳輸。
為了驗證基于矩陣張量積的輕量網絡數(shù)據(jù)傳輸加密方法的有效性,在Windows環(huán)境中對數(shù)據(jù)的重構效果與時間消耗兩方面進行測試,其中硬件環(huán)境包含接收端、發(fā)送端和服務器。在對數(shù)據(jù)的重構效果分析時,采用峰值信噪比對數(shù)據(jù)重構效果進行評價,峰值信噪比越大,表明數(shù)據(jù)的重構效果越好。實驗中采用3組傳輸數(shù)據(jù),可變參數(shù)γ=0.6、η=0.4,經過實驗,3組數(shù)據(jù)在不同壓縮比下的峰值信噪比如圖4所示。
從圖中可以看出,隨著壓縮比的增加,3組數(shù)據(jù)的峰值信噪比均有提升,壓縮比在0.3~0.4之間的峰值信噪比變化率較大,當壓縮比為0.4時,數(shù)據(jù)的恢復效果依然較好,針對不同數(shù)據(jù),隨著壓縮比的增加,數(shù)據(jù)的峰值信噪比均呈現(xiàn)相同的變化情況,表明本文提出的方法具有較好的數(shù)據(jù)恢復效果,并且適用性較為廣泛。
圖4 傳輸數(shù)據(jù)的壓縮比與重構效果圖
為了進一步驗證本文方法的加密傳輸效率,通過統(tǒng)計加密與解密時CPU的計算時間來進行數(shù)據(jù)傳輸效率的判斷。實驗仍采用3組傳輸數(shù)據(jù),將僅加密數(shù)據(jù)體所需要的時間與本文方法進行對比,通過測試CPU計算時間對加密和解密過程進行分析,結果如表1和表2所示。
表1 加密過程CPU計算時間
表2 解密過程CPU計算時間
從表中可以看出,本文方法雖然同時對數(shù)據(jù)體與數(shù)據(jù)頭進行加密,但加密與解密過程CPU計算時間與僅對數(shù)據(jù)體加密的時間沒有很大差別,并且通過對數(shù)據(jù)頭的加密,可以使網絡數(shù)據(jù)在傳輸過程中具有更高的安全性,通過測試,表明本文方法可以滿足網絡數(shù)據(jù)加密與解密傳輸效率的要求。
為改善壓縮感知模型中測量矩陣和被測量信息列數(shù)與行數(shù)的匹配度,提高壓縮感知的安全性,提出矩陣張量積感知模型。由于網絡數(shù)據(jù)傳輸容易遭受到攻擊者對數(shù)據(jù)信息的竊取,為更好的提高機密效果,采用TPC協(xié)議對數(shù)據(jù)體和數(shù)據(jù)頭進行加密處理。在Windows環(huán)境中,選擇3組傳輸數(shù)據(jù),對數(shù)據(jù)的重構效果與時間消耗兩方面進行測試。實驗結果表明,本文方法壓縮比在0.3~0.4之間的峰值信噪比變化率較大,具有較好的適用性,同時對數(shù)據(jù)體與數(shù)據(jù)頭進行加密,CPU計算時間與僅對數(shù)據(jù)體加密的時間沒有很大差別,說明本文方法完全可以滿足網絡數(shù)據(jù)加密與解密傳輸效率的要求。