一種基于數字水印的無(wú)線(xiàn)傳感器網(wǎng)絡(luò )敏感數據通信協(xié)議
while(CurrentUintDataN)
{
TheOUS.Write(CurrentUintData);//將當前值加入輸出流
TheUintIndex++;
CurrentUintData=TheIUS.Read(TheUintIndex,1);
}
/** 如果當前二進(jìn)制值為1,則將當前無(wú)符號整數值的最后一位置為“1”,并將該值加入到輸出流中;否則,將最后一位置為“0”,并將該值加入到輸出流中。 **/
if(CurrentBitData==1)
TheOUS.Write(CurrentUintData|0x0001);
else TheOUS.Write(CurrentUintData0xfff0);
TheBitIndex++;
TheUintIndex++;
}
}
敏感數據的提取過(guò)程與嵌入過(guò)程相反,將接收到的含有敏感數據的16位無(wú)符號整數流命名為輸入整數流,將提取出的二進(jìn)制敏感數據流命名為輸出二進(jìn)制流,將輸出的16位傳感數據流命名為輸出整數流。則敏感數據提取過(guò)程描述如下:首先將該值添加到輸出無(wú)符號整數流中,然后檢測輸入整數流中當前位置的數據值,如果該值大于或等于閥值且最低位為“1”,則將“1”添加到二進(jìn)制輸出流中;否則,將“0”添加到二進(jìn)制輸出流中;如果該值小于閥值,則不往二進(jìn)制輸出流添加數據。最后,將輸出二進(jìn)制流轉化為敏感數據,將輸出無(wú)符號整數流轉化為傳感數據。
為進(jìn)一步提升敏感數據傳輸的安全級別,還可以在預處理時(shí)對敏感數據加校驗、加簽名、加密等。
2 實(shí)際驗證
無(wú)線(xiàn)傳感器網(wǎng)絡(luò )在某軍事化應用中,多個(gè)節點(diǎn)被布設于一個(gè)生疏地域內,實(shí)時(shí)采集該地域的溫度、濕度、光照等環(huán)境信息。為檢測各個(gè)節點(diǎn)未被敵方捕獲而傳回虛假信息,各節點(diǎn)將不定時(shí)地傳回自己的“識別碼”,以證明自己的身份?!白R別碼”由節點(diǎn)ID、當前時(shí)間、基站回復碼等信息實(shí)時(shí)運算生成,為一串數字。
在該應用中,采用了本文所述方法傳輸“識別碼”。具體做法是:在“光照”傳感數據中,當數據值大于256(0x0100)時(shí),嵌入“識別碼”。如圖2所示,“光照”數據的值通常白天在600以上,均大于閥值,方便嵌入水印,同時(shí),嵌入水印后,對原值影響較小。本文引用地址:http://dyxdggzs.com/article/163209.htm
評論