梅雁翔
(江蘇科技大學電子信息學院 鎮(zhèn)江 212000)
最近,人們越來越關(guān)注監(jiān)測海洋環(huán)境的科學探索、商業(yè)開發(fā)和軍事應用。廣泛監(jiān)測的理想方法是分布式水下無線傳感器系統(tǒng),稱為水下無線傳感器網(wǎng)絡(UWSN)。UWSN是一種無線通信系統(tǒng),由數(shù)十或數(shù)百個電池供電的水下傳感器節(jié)點組成。水下環(huán)境的特點包括水流、高壓、海洋生物等,水下信道的特殊性包括傳播延遲、窄帶寬和多徑效應等,這些因素將導致高錯誤率和低的運輸可靠性。因此,UWSN容易受到各種攻擊,其安全性是設計網(wǎng)絡系統(tǒng)時需要考慮的一個至關(guān)重要的難題[1~2]。
水下無線傳感器網(wǎng)絡是一種新型的水下網(wǎng)絡系統(tǒng)。由于UWSN和水下信道的特點,UWSN容易受到惡意攻擊,導致WSN提出的現(xiàn)有數(shù)據(jù)安全性方案不能直接用于 UWSN。Yamini Kularia[3]等分析了水下無線傳感器網(wǎng)絡聲信道傳播延遲、傳輸損耗和信噪比,構(gòu)建了精確的水下通信模型。Muhammad R Ahmed[4]等提出了利用支持向量機方法來評估水下無線傳感器網(wǎng)絡中的攻擊,因為向量機花費的時間較少。惡意節(jié)點始終保持異常屬性,通過使用節(jié)點的異常屬性來識別惡意節(jié)點,從而鑒別數(shù)據(jù)是否完整。Evaldo Souza[5]等提出了一種基于水下無線傳感器端對端的身份認證的數(shù)字簽名方法,該方法有效地起到了數(shù)據(jù)認證功能,保證了數(shù)據(jù)的真實性,但增加了額外的通信開銷,且將數(shù)據(jù)直接加載到數(shù)據(jù)包中,增加了保持數(shù)據(jù)完整性的風險。
目前為止,研究人員一直致力于研究如何使用數(shù)字水印技術(shù)來解決水下無線傳感器網(wǎng)絡中存在的安全問題。盡管已經(jīng)取得了一些研究成果,但很少能夠?qū)崿F(xiàn),距離實際應用還有很長的路要走。本文在充分考慮聲學通信信道、帶寬限制、高傳播延遲以及多徑效應等影響的情況下,結(jié)合文獻[6~7],提出了基于FRFT和SVD的數(shù)字水印方案。與現(xiàn)有的基于SVD的水印方案不同,提出的方案將水印嵌入到密鑰矩陣的奇異值中。該奇異值是從非重疊塊分割,然后通過FRFT和SVD獲得的。首先獲取的傳感器傳輸數(shù)據(jù)將轉(zhuǎn)換為FRFT域,然后將其分割成不重疊的塊,獲得每個塊的最高奇異值,并將其堆疊成陣列以形成關(guān)鍵矩陣。水印嵌入在密鑰矩陣中,通過水印奇異值修改其奇異值來完成嵌入。通過在Sink節(jié)點獲取到數(shù)據(jù)來提取相應的水印信息,并與原始數(shù)據(jù)進行對比來判斷傳感器的數(shù)據(jù)完整性。實驗證明,該方法具有較好的安全性和透明性,能夠檢測數(shù)據(jù)是否遭受到攻擊,確保傳感器數(shù)據(jù)的完整性。
FRFT作為傅里葉變換的一種廣義形式,可以解釋為信號在時頻平面內(nèi)坐標軸繞原點逆時針旋轉(zhuǎn)任意角度后構(gòu)成的分數(shù)階傅里葉變換域上的表示方法[8]。它提供一個參數(shù)α,表示為在時頻平面中旋轉(zhuǎn)角度α或者用chirps分解信號。通常,此參數(shù)稱為與FRFT關(guān)聯(lián)的角度或變換順序。數(shù)學上,一維函數(shù)s(t)的FRFT定義為
其中α是變換階,Kα(t,x)是變換核,并給出:
其中n是給定的整數(shù)。信號的FRFT存在于其傅立葉變換存在的相同條件下。該逆FRFT可視為具有變換階α的FRFT。FRFT的主要特性是:如果變換階α為0,則得到的信號在純時域內(nèi);如果變換階α為π/2,則得到的信號在純頻域內(nèi)。此外,由于變換的可分離性,可以通過沿所有方向連續(xù)取一維FRFT來獲得高維FRFT。
FRFT在水印中的主要優(yōu)點是它依賴于變換階數(shù)。這些變換階數(shù)被用作水印提取的關(guān)鍵,因為沒有使用正確的變換階數(shù),任何人都無法獲得嵌入水印的正確變換域。因此,沒有人能夠有效地利用錯誤的轉(zhuǎn)換命令來提取水印。
SVD是線性代數(shù)中處理矩陣的一種重要工具,能夠獲取矩陣數(shù)據(jù)的奇異值[9]。設 A為m×n的一般實(復)矩陣,A的奇異值分解(SVD)是因式分解:
其中U 和V 是正交矩陣,S=diag(σ1,σ2,…,σr),σi是矩陣 A的奇異值,r=min(m,n)且滿足σ1≥σ2≥…≥σr。U 是m×n的正交矩陣,其列是左奇異向量;V是一個n×n的正交矩陣,其列被稱為右奇異向量。
在使用奇異值分解時,具有如下的特性:1)來自SVD變換的矩陣大小不固定,它可以是正方形或矩形;2)當原矩陣奇異值發(fā)生較小浮動時,通過逆變換至原矩陣后,原矩陣數(shù)據(jù)變化可以忽略,即將水印信息嵌入奇異值矩陣后,嵌入的水印信息對原始數(shù)據(jù)無太大影響;3)當原始矩陣數(shù)據(jù)浮動范圍不大時,經(jīng)過奇異值分解后的奇異值并不會受到很大影響,即當原始數(shù)據(jù)受到一些因素的影響而發(fā)生小范圍正常變化時,如信號處理,嵌入在矩陣內(nèi)的水印信息不會輕易發(fā)生變化。
本文利用混沌序列作為水印信號具有易于生成、數(shù)量多以及初始值條件敏感等優(yōu)勢。由于水下傳感器網(wǎng)絡節(jié)點較多,該水印生成方法很適合水下傳感器網(wǎng)絡環(huán)境?;煦缋碚搧碜苑蔷€性動力系統(tǒng),動態(tài)系統(tǒng)描述了隨時間變化的過程,過程是確定性的、隨機的、非周期性的、收斂的、極其敏感的初始值依賴性。一維Logistic映射是一種來自數(shù)學表達式的非常簡單的混沌映射:
式中,0≤μ≤4,稱為分支參數(shù)。當3.569 945 6<μ≤4時,Logistic映射處于混沌狀態(tài)。根據(jù)不同的初始值,映射生成的序列是非周期的、非收斂的、不相關(guān)的、不可預測的,且對初始值非常敏感。本文采用μ=4時的Logistic映射。在相同參數(shù)下和非常接近的初始值條件下,經(jīng)過幾次迭代,結(jié)果完全不同,成為兩個不相關(guān)的序列。本文選擇適當?shù)拈L度,利用閾值函數(shù)設定閾值,生成二進制序列稱為水印信號。公式如下:
本文中閾值R取0.5,即當Xk≥0.5時,L(Xk)的值為1;當Xk<0.5時,L(Xk)的值為0。
數(shù)據(jù)采集過程中,不同數(shù)據(jù)的采集時間不同。本文利用數(shù)據(jù)的采集時間與采集節(jié)點的編號生成水印序列。一個數(shù)據(jù)包由數(shù)據(jù)包頭和k個數(shù)據(jù)(S1,S2,…,Sk)組成[10]。因此,水印信號的生成可以按照以下步驟:利用數(shù)據(jù)包中某個數(shù)據(jù)項Si的采集時間與采集節(jié)點編號生成一個Logistic序列初始值Xk;利用式(4)和式(5)生成一段混沌二值序列,選取合適的長度作為該數(shù)據(jù)包的水印信息。本算法中選取長度為m×n的序列作為水印信息,并將其轉(zhuǎn)化為m×n的矩陣。
本算法是從節(jié)點緩存區(qū)域中選取前M×N個敏感數(shù)據(jù)并轉(zhuǎn)化成了M×N的矩陣進行分析。具體水印嵌入算法如下:
1)選取某一簇內(nèi)節(jié)點i,在節(jié)點緩沖區(qū)域選取前M×N個 感 知 數(shù) 據(jù)data(1),data(2),…,data(M×N),將其轉(zhuǎn)換為矩陣形式并對其進行FRFT變換,用f表示。
2)將f分段為大小為p1×p2的非重疊塊,由fq表示,其中且q=mn是塊的總數(shù)。
3)對所有的非重疊塊fq執(zhí)行奇異值分解變換:
4)收集所有非重疊塊fq的最高奇異值并堆疊成大小為m×n的數(shù)組,以形成密鑰矩陣K:
5)對K和水印序列W 執(zhí)行奇異值分解變換:
6)利用水印的奇異值修改K的奇異值:
其中β為給出水印強度。
7)執(zhí)行逆SVD以構(gòu)造修改的K:
8)在其原始位置上修改最高奇異值,然后反向SVD以獲得修改的非重疊塊,后將修改后的塊映射到其原始位置,然后逆FRFT以獲得帶水印的數(shù)據(jù)F?,然后將F?發(fā)送至簇頭并最終發(fā)送到Sink節(jié)點。
1)在Sink節(jié)點受到數(shù)據(jù)包解壓后,選取節(jié)點i,選data'(1),data'(2),…,data'(M×N),對帶水印的數(shù)據(jù)F?進行FRFT變換,用f?表示。
2)將f?分段為大小為p1×p2的非重疊塊,由f?q表示,其中且q=mn是塊的總數(shù)。
3)對所有的非重疊塊f?q執(zhí)行SVD:
4)收集所有非重疊塊f?q的最高奇異值并堆疊成小為m×n的數(shù)組,以形成水印密鑰矩陣K?:
5)在 K?上執(zhí)行SVD變換:
6)從含水印數(shù)據(jù)中提取水印的奇異值:
7)獲取提取的水印為
8)在Sink節(jié)點將提取的水印Wext與原始水印W做出比較。檢驗數(shù)據(jù)包是否安全,否則將丟棄虛假數(shù)據(jù)包。
本文實驗中采用OMNET++仿真工具,所有實驗結(jié)果利用Matlab 2014a仿真得到。本文的仿真在如表1所示模擬仿真環(huán)境中進行,通過源節(jié)點將隨機生成的數(shù)據(jù)作為采集數(shù)據(jù),嵌入水印,形成數(shù)據(jù)包,發(fā)送給基站節(jié)點?;竟?jié)點接收數(shù)據(jù)后,提取水印,還原數(shù)據(jù)。
表1 仿真參數(shù)
為了驗證算法的水印透明性,隨機選取部分節(jié)點生成的數(shù)據(jù)包進行對比實驗。表2是原始數(shù)據(jù)和嵌入水印后的數(shù)據(jù)均值、標準差以及兩者變化率的統(tǒng)計值。從表2統(tǒng)計計算的結(jié)果可以得出,原始數(shù)據(jù)在嵌入水印后,數(shù)據(jù)均值和標準差的變化值很小,說明該算法引起的誤差很小,數(shù)據(jù)相對穩(wěn)定,對數(shù)據(jù)的使用基本沒有什么影響??梢?,水印具有很好的透明性。
表2 水印嵌入前后數(shù)據(jù)統(tǒng)計
分數(shù)階傅里葉變換的變換階數(shù)具有密鑰功能,故本算法具有較高的安全性。若不知道正確的FRFT的變換階數(shù),想要提取正確的水印信息十分困難。同時,如果不知道生成水印序列的密鑰和初始值,將很難偽造含有水印的數(shù)據(jù)包。每個傳感器會生成不同的水印,水印信號具有唯一性,所以攻擊者偽造水印是不可能的。因此,該算法在理論上有較強的安全性。
表3 數(shù)據(jù)完整性驗證
為了進一步驗證算法的安全性,本文隨機選擇5個節(jié)點進行不同類型的攻擊,攻擊類型為數(shù)據(jù)延時傳輸、重放、選擇性轉(zhuǎn)發(fā)、數(shù)據(jù)篡改以及偽造數(shù)據(jù)包,然后分析數(shù)據(jù)的完整性。每次攻擊都重復100次,實驗結(jié)果如表3所示。
本方案中檢測每個數(shù)據(jù)包,數(shù)據(jù)傳輸延時會造成水印的提取時間延時,水印信息并不會改變,但對提取結(jié)果沒有影響。重放攻擊是通過多次重放消息欺騙節(jié)點,使得節(jié)點不能正確提取水印信息,導致驗證其完整性失敗。選擇性轉(zhuǎn)發(fā)攻擊致使有些數(shù)據(jù)包不能到達基站,破壞了數(shù)據(jù)包的完整性,導致水印信息生成前后的值不一致,算法能夠正確判斷其完整性。數(shù)據(jù)篡改攻擊改變消息中的數(shù)據(jù)值,數(shù)據(jù)的變化導致水印信息的變化。在節(jié)點提取的水印信息與變化的水印信息不一致,說明數(shù)據(jù)被破壞。偽造數(shù)據(jù)包由于節(jié)點沒有嵌入水印,導致數(shù)據(jù)包中不能夠檢測到水印信息,故可以判斷該數(shù)據(jù)包的完整性。
水下傳感器節(jié)點的能耗取決于諸如水印生成和嵌入時間、數(shù)據(jù)存儲、廣播和數(shù)據(jù)傳輸?shù)纫蛩?。由于?shù)據(jù)包中冗余空間的固定長度,假設提出的方案的能耗對于數(shù)據(jù)存儲、廣播等是固定的。因此,只用考慮水印生成、嵌入和數(shù)據(jù)傳輸中消耗的能量。通常情況下,傳感器節(jié)點消耗的大部分能量是在無線通信模塊。實驗證明,1 bit信息100 m的距離需要消耗的能量相當于執(zhí)行3 000條計算指令所消耗的能量[11~12]??梢姡瑪?shù)據(jù)處理消耗的能量遠遠小于數(shù)據(jù)在網(wǎng)絡中傳輸消耗的能量。本文采用的水印生成算法較為簡單,沒有經(jīng)過復雜的處理,同時水印信息嵌入到原始數(shù)據(jù)的最大奇異值上,沒有增加數(shù)據(jù)的傳輸量,表明在數(shù)據(jù)傳輸過程中沒有增加能量消耗。比傳統(tǒng)的安全方案,所提方案數(shù)據(jù)消耗較小,總能量消耗更少。
本文提出了一種基于分數(shù)傅里葉變換和奇異值分解的簡單而有效的水印方案。所提方案使用了FRFT,因為變換階數(shù)起著關(guān)鍵的重要作用,在不知道變換階數(shù)的情況下,將無法獲得嵌入水印的正確域,進而無法正確地提取水印。同時,采取混沌序列生成水印信息,確保了每個傳感器節(jié)點生成的水印的安全性和唯一性,再利用閾值函數(shù)生成二進制序列作為水印信息。該算法很適合水下無線傳感器網(wǎng)絡的應用場景,在不知道初始值和密鑰的情況下,很難獲取正確的水印信息。實驗結(jié)果表明,本文提取的算法在面對水下復雜環(huán)境時具有良好的水印透明性和安全性,并有效驗證了水下無線傳感器數(shù)據(jù)的完整性,也不會增加額外的能量消耗。