《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計 > 設(shè)計應(yīng)用 > 一種基于數(shù)字水印的無線傳感器網(wǎng)絡(luò)敏感數(shù)據(jù)通信協(xié)議
一種基于數(shù)字水印的無線傳感器網(wǎng)絡(luò)敏感數(shù)據(jù)通信協(xié)議
任學(xué)軍1,2
1.武警工程學(xué)院 通信工程系,陜西 西安 710086;2.西北大學(xué) 信息科學(xué)與技術(shù)學(xué)院, 陜西 西
摘要: 基于信息隱藏技術(shù)開發(fā)了一種用于無線傳感器網(wǎng)絡(luò)的隱蔽的敏感數(shù)據(jù)通信協(xié)議。通過犧牲大值傳感數(shù)據(jù)的精度來隱蔽地傳輸敏感數(shù)據(jù),可廣泛應(yīng)用于多個領(lǐng)域。
Abstract:
Key words :

摘  要: 基于信息隱藏技術(shù)開發(fā)了一種用于無線傳感器網(wǎng)絡(luò)的隱蔽的敏感數(shù)據(jù)通信協(xié)議。通過犧牲大值傳感數(shù)據(jù)的精度來隱蔽地傳輸敏感數(shù)據(jù),可廣泛應(yīng)用于多個領(lǐng)域。
關(guān)鍵詞: 數(shù)字水印;信息隱藏;數(shù)據(jù)通信

    無線傳感器網(wǎng)絡(luò)具有節(jié)點成本低、電源消耗小、網(wǎng)絡(luò)自組織等優(yōu)點,已廣泛地應(yīng)用于很多領(lǐng)域[1]。
    無線傳感器網(wǎng)絡(luò)在很多應(yīng)用中,存在著在節(jié)點間傳輸敏感信息的需求。敏感數(shù)據(jù)是指密鑰、ID、軍事領(lǐng)域中的關(guān)鍵數(shù)據(jù)、節(jié)點的身份驗證信息等涉及系統(tǒng)安全、穩(wěn)定運行的一類關(guān)鍵數(shù)據(jù)。這類數(shù)據(jù)通常要求采用一種比常規(guī)通信方式更安全、可靠的方式傳遞。敏感數(shù)據(jù)的傳輸有很多種方法,比較常見的是基于加密技術(shù)來實現(xiàn)。但由于傳感器節(jié)點資源有限,復(fù)雜的算法無法在節(jié)點中實現(xiàn)[2],這些算法在資源耗費方面、加密強度方面尚不完美。
 本文基于數(shù)字水印的原理來實現(xiàn)敏感數(shù)據(jù)的傳輸,通過信息隱藏來實現(xiàn)敏感數(shù)據(jù)的傳輸。與加密傳輸相比,該算法具備簡單高效、不易察覺等優(yōu)點,適合于在無線傳感器網(wǎng)絡(luò)中實現(xiàn)。
 數(shù)字水?。╠igital watermarking)技術(shù)是實現(xiàn)信息隱藏的一種主要手段。敏感信息可以毫無察覺地嵌入到數(shù)據(jù)中,嵌入的信息就叫做水?。?]。數(shù)字水印是信息隱藏學(xué)的一個分支,是利用人類感覺器官的不敏感及多媒體數(shù)據(jù)中存在的冗余,將秘密信息隱藏到宿主信息中,水印的添加不會影響原數(shù)據(jù)的正常使用[4-7]。
 基于以上原理,本文提出一種基于數(shù)字水印技術(shù)和信息隱藏的敏感信息通信協(xié)議。
 目前絕大多數(shù)傳感器節(jié)點都支持16位的寄存器,傳感數(shù)據(jù)在通信時也是基于16位無符號數(shù)整數(shù)傳輸?shù)?。?6位無符號整數(shù)的取值范圍是0~65 535。當(dāng)實際采集的傳感數(shù)據(jù)值比較大時,改變最低位對傳感器數(shù)據(jù)值的影響很小,可以忽略不計。
 因此,本文通過16位無符號整數(shù)的最低位來傳輸敏感數(shù)據(jù),并利用數(shù)字水印嵌入算法將敏感數(shù)據(jù)嵌入其中,達(dá)到敏感數(shù)據(jù)隱蔽傳輸?shù)哪康?。為避免最低位的改變對傳感?shù)據(jù)的精度造成太大影響,本文設(shè)置了一個閥值,只有大于該值的數(shù)據(jù)才會被嵌入敏感信息。

1 敏感數(shù)據(jù)嵌入及提取過程
 嵌入敏感信息的方法與數(shù)字水印的嵌入方法基本相同。如圖1所示,首先將敏感信息轉(zhuǎn)化為一個二進制流,命名為輸入二進制流;將傳感數(shù)據(jù)轉(zhuǎn)化為一個16位無符號整數(shù)流,命名為輸入整數(shù)流;將輸出的含有敏感數(shù)據(jù)的無符號整數(shù)流命名為輸出整數(shù)流。則敏感數(shù)據(jù)嵌入過程描述如下:如果輸入整數(shù)流當(dāng)前位置的傳感數(shù)據(jù)值大于或等于閥值,且輸入二進制流中當(dāng)前位置的二進制值為“1”,則將整數(shù)流當(dāng)前位置的數(shù)據(jù)最低位置“1”,并添加到輸出整數(shù)流中,否則置“0”;如果輸入整數(shù)流當(dāng)前位置的傳感數(shù)據(jù)值小于閥值,則不添加水印,直接將該數(shù)添加到輸出整數(shù)流中。


    敏感數(shù)據(jù)的嵌入算法描述如下:
    #define N  0x0100;                        //閥值
    typedef BitStream TInputBitStream;    //定義輸入二進制流
    typedef Uint16Stream TInputUintStream; //定義輸入無符號整數(shù)流
    typedef Uint16Stream TOutputUintStream;//定義輸出無符號整數(shù)流
    //---------------------------------------
    /** 用敏感數(shù)據(jù)初始化輸入二進制流 **/
    TInputBitStream * TheIBS=
  new TInputBitStream(SensitiveData aData);
    /** 用傳感數(shù)據(jù)初始化輸入無符號整數(shù)流**/
    TInputUintStream * TheIUS=
  new TInputUintStream(SensorData aData);
    /** 用空數(shù)據(jù)初始化輸出無符號整數(shù)流 **/
    TOutputUintStream * TheOUS=new TOutputUintStream();
    //------------------------------------
    /**  數(shù)字水印嵌入方法
    ** 注意:本方法假定輸入整數(shù)流的長度
    *足以嵌入所有的敏感數(shù)據(jù)
    * 參數(shù)TheIBS: 輸入二進制流
    * 參數(shù)TheIUS:輸入無符號整數(shù)流
    * 參數(shù)N:預(yù)先定義的閥值
    * 返回值:輸出無符號整數(shù)流TheOUS  **/
    TOutputUintStream* InsertWaterMarking(TheIBS,TheIUS,N)
    {
      uint16_t  TheUintIndex=0; //用于保存輸入整數(shù)流的位號
      uint16_t  TheBitIndex=0; //用于保存輸入二進制流的位號
      uint16_t  CurrentUintData; //用于保存當(dāng)前的無符號整數(shù)值
      bit_t  CurrentBitData;     //用于保存當(dāng)前的二進制值
      while(TheBitIndex<TheIBS.Size)
    {
      CurrentUintData=TheIUS.Read(TheUintIndex,1);
      CurrentBitData=TheIBS.Read(TheBitIndex,1);
    /**若當(dāng)前無符號整數(shù)值小于閥值,則讀取下一個值,
    *直到大于閥值時,停止循環(huán)   **/
   while(CurrentUintData<N)
   {
       TheOUS.Write(CurrentUintData);//將當(dāng)前值加入輸出流
       TheUintIndex++;
       CurrentUintData=TheIUS.Read(TheUintIndex,1);
       }
    /** 如果當(dāng)前二進制值為1,則將當(dāng)前無符號整數(shù)值的最后一位置為“1”,并將該值加入到輸出流中;否則,將最后一位置為“0”,并將該值加入到輸出流中。 **/
  if(CurrentBitData==1)
   TheOUS.Write(CurrentUintData|0x0001);
    else TheOUS.Write(CurrentUintData&0xfff0);
    TheBitIndex++;
    TheUintIndex++;
  }
}
    敏感數(shù)據(jù)的提取過程與嵌入過程相反,將接收到的含有敏感數(shù)據(jù)的16位無符號整數(shù)流命名為輸入整數(shù)流,將提取出的二進制敏感數(shù)據(jù)流命名為輸出二進制流,將輸出的16位傳感數(shù)據(jù)流命名為輸出整數(shù)流。則敏感數(shù)據(jù)提取過程描述如下:首先將該值添加到輸出無符號整數(shù)流中,然后檢測輸入整數(shù)流中當(dāng)前位置的數(shù)據(jù)值,如果該值大于或等于閥值且最低位為“1”,則將“1”添加到二進制輸出流中;否則,將“0”添加到二進制輸出流中;如果該值小于閥值,則不往二進制輸出流添加數(shù)據(jù)。最后,將輸出二進制流轉(zhuǎn)化為敏感數(shù)據(jù),將輸出無符號整數(shù)流轉(zhuǎn)化為傳感數(shù)據(jù)。
    為進一步提升敏感數(shù)據(jù)傳輸?shù)陌踩墑e,還可以在預(yù)處理時對敏感數(shù)據(jù)加校驗、加簽名、加密等。
2 實際驗證
  無線傳感器網(wǎng)絡(luò)在某軍事化應(yīng)用中,多個節(jié)點被布設(shè)于一個生疏地域內(nèi),實時采集該地域的溫度、濕度、光照等環(huán)境信息。為檢測各個節(jié)點未被敵方捕獲而傳回虛假信息,各節(jié)點將不定時地傳回自己的“識別碼”,以證明自己的身份。“識別碼”由節(jié)點ID、當(dāng)前時間、基站回復(fù)碼等信息實時運算生成,為一串?dāng)?shù)字。
    在該應(yīng)用中,采用了本文所述方法傳輸“識別碼”。具體做法是:在“光照”傳感數(shù)據(jù)中,當(dāng)數(shù)據(jù)值大于256(0x0100)時,嵌入“識別碼”。如圖2所示,“光照”數(shù)據(jù)的值通常白天在600以上,均大于閥值,方便嵌入水印,同時,嵌入水印后,對原值影響較小。


 嵌入“識別碼”前后數(shù)據(jù)對照如表1所示。表中左列為未嵌入“識別碼”時的“光照”數(shù)據(jù),中間列為嵌入“識別碼”后的“光照”數(shù)據(jù),右列是“識別碼”的二進制形式。中間列標(biāo)有*的數(shù)字為嵌入“識別碼”后發(fā)生變化的數(shù)據(jù)。


3 結(jié)果分析
3.1 水印嵌入對傳感數(shù)據(jù)的影響

    采用以上嵌入算法后,對傳感數(shù)據(jù)的影響可分為以下三類:
 (1)傳感數(shù)據(jù)的值大于等于閥值,且其最低位在嵌入水印時發(fā)生了變化,即原始數(shù)據(jù)的最低位由“0”變?yōu)?ldquo;1”或由“1”變?yōu)?ldquo;0”。這時,傳感數(shù)據(jù)的值在嵌入水印后發(fā)生了變化,變化前后傳感數(shù)據(jù)相差為“1”。其相對變化率如下:
 

 可見,其相對變化率小于1/N,當(dāng)N=0x0100,即十進制數(shù)256時,其相對變化率小于0.39%
 (2)傳感數(shù)據(jù)的值大于等于閥值,但其最低位在嵌入水印時未發(fā)生變化,其值不受影響。
 (3)傳感數(shù)據(jù)的值小于閥值。傳感數(shù)據(jù)的值小于閥值時,不嵌入水印,因此,其值不受影響。
3.2 N值大小對協(xié)議的影響
 當(dāng)N值較大時,水印嵌入對原始傳感數(shù)據(jù)的影響較小(相對變化率較?。珴M足條件的傳感數(shù)據(jù)則會變少,傳輸敏感數(shù)據(jù)的周期會變長;當(dāng)N值較小時,水印嵌入對原始數(shù)據(jù)的影響較大(相對變化率較大),但滿足條件的傳感數(shù)據(jù)多,敏感數(shù)據(jù)傳輸周期較短。因此,在實際應(yīng)用中應(yīng)根據(jù)數(shù)據(jù)的實際取值范圍合理地選取N值。
 本文所提出的基于數(shù)字水印原則無線傳感器網(wǎng)絡(luò)敏感數(shù)據(jù)通信協(xié)議,具備以下特點:
 (1)可實現(xiàn)敏感數(shù)據(jù)的隱蔽傳輸。由于水印嵌入算法僅改變了傳感數(shù)據(jù)的最低位,數(shù)據(jù)變化微小。在不知道原始數(shù)據(jù)的情況下,很難發(fā)現(xiàn)數(shù)據(jù)中嵌入了水印。達(dá)到了敏感數(shù)據(jù)隱蔽傳輸?shù)哪康模?br />  (2)對原始數(shù)據(jù)影響小。采用本協(xié)議后,僅大于閥值且最低位與水印當(dāng)前位不一致的值會發(fā)生變化,變化結(jié)果為值加“1”或減“1”,相對變化率最大為1/N。當(dāng)選取合適N值后,相對變化率可以控制在1%以下,基本上不會影響傳感數(shù)據(jù)的后續(xù)應(yīng)用;
 (3)算法簡單,易于實現(xiàn)。
 因此,該協(xié)議能很好地應(yīng)用于無線傳感器網(wǎng)絡(luò)需要傳輸敏感信息的場合中。
參考文獻(xiàn)
[1]AKYLIDIZ I F , SU W , SANKARASUBRAMANIAM Y , et al. Wireless sensor networks : a survey . Computer Networks , 2002.
[2]PERRIG A , SZEWCZYK R , WEN V , et al. SPINS : security protocols for sensor networks. ACM Wireless Networks,,2002,8(5):521- 534.                   
[3]COX J,MILLER M L. The first 50 years of electronic watermarking[J].Joumal of Applied Signal Processing,2002(2):126-132.
[4]COX I J , KILLIAN J,LEIGHTON F T , et al. Secure spread spectrum watermarking for multimedia[J]. IEEE Transactions on Image Processing, 1997,6(12):1673-1687.
[5]BRASSIL J , LOW S ,MAXEMCHUK N F , et al.Electronic marking and identification techniques to discourage document copying[J].IEEE Journal on Sel.Areas in Commun.1995,13(8):1495-1504.
[6]BRASSIL J T , LOW S , MAXEMCHUK N F . Copyright protection for the electronic distribution of text documents[J]. Proceedings of the IEEE, 1999, 87(7):1533-1536.
[7]ATALLAH M J , RASKIN V ,CROGAN  M , et al,  Natural language watermarking: design, analysis, and a proof-of-concept implementation. In Proc. Int. Workshop on Information Hiding, 2001(2137)185-199.
 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。