• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于MD5算法的分布式無線傳感器網(wǎng)絡數(shù)據(jù)安全傳輸方法研究

      2019-04-09 05:17:10羅名君
      關鍵詞:分布式無線傳感器

      張 昊,宋 杰,羅名君

      (1.安徽城市管理職業(yè)學院 信息技術(shù)學院,安徽 合肥231635;2.安徽大學 計算機科學與技術(shù)學院,安徽 合肥230039;3.國防科技大學 電子對抗學院,安徽 合肥230031)

      無線傳感器網(wǎng)絡(Wireless Sensor Network,WSN)是一種分布式傳感網(wǎng)絡,是由部署在一定范圍內(nèi)的多個價格低廉的微型傳感節(jié)點組成,能以無線或有線方式相互通訊,形成一個自主系統(tǒng)的網(wǎng)絡。目前,無線傳感器網(wǎng)絡應用廣泛,主要適用于野外工作條件差,有線網(wǎng)絡和無線網(wǎng)絡無法覆蓋的環(huán)境,如:軍事領域的目標定位和追蹤,民用領域的草原監(jiān)測、醫(yī)學護理等。WSN 通常應用于無人管理的區(qū)域中,很容易被攻擊者侵入系統(tǒng)篡改和竊取數(shù)據(jù),所以無線傳感器網(wǎng)絡的安全問題是其被廣泛應用的一個重要瓶頸[1]。

      針對以上問題,已經(jīng)有不少公開發(fā)表的文獻提出了各種解決方法,如:基于數(shù)字水印的安全傳輸技術(shù)[2]、基于能量優(yōu)化的安全路由算法[3]、基于可信度的安全路由算法[4]、基于DV-Hop 的安全定位方法[5]等,可以有效地抵御針對WSN 的大多數(shù)攻擊。然而以上研究多是在網(wǎng)絡層面上進行的,數(shù)據(jù)比特流的完整性、準確性問題需要額外的手段加以保證,為此,筆者提出了一種基于MD5算法的分布式無線傳感器網(wǎng)絡數(shù)據(jù)安全傳輸方法,在發(fā)送端傳輸數(shù)據(jù)的末尾,附上一段用MD5算法生成的摘要,在接收端重新計算一次MD5 值,通過與接收到的MD5 值進行對比,可以檢測出數(shù)據(jù)是否存在的刪減、冗余、篡改等錯誤。MD5算法實現(xiàn)較為簡單,便于能量受限的WSN 節(jié)點使用,且MD5算法生成的散列值對數(shù)據(jù)中的錯誤極其敏感,因此,可以有效地提高系統(tǒng)數(shù)據(jù)傳輸?shù)陌踩浴?/p>

      1 無線傳感器網(wǎng)絡中的安全問題

      1.1 WSN簡介

      WSN不需依靠基礎設備,可快速地的在一定區(qū)域內(nèi)完成傳感器節(jié)點的部署工作,用于檢查周圍情況變化并通過無線網(wǎng)絡向數(shù)據(jù)監(jiān)控中心匯報,網(wǎng)絡組建靈活方便。通常部署一定規(guī)模的傳感節(jié)點,彼此之間通過無線網(wǎng)絡相互通訊,組成一個多跳自主無線網(wǎng)絡系統(tǒng)。

      無線傳感器網(wǎng)絡擁有數(shù)據(jù)眾多的傳感器節(jié)點,還包括功能較強的匯聚節(jié)點和管理節(jié)點。傳感器節(jié)點擁有一個或多個組件,這些組件監(jiān)測所處環(huán)境濕度、溫度、壓力等變化,對組件可以感知的數(shù)據(jù)進行初級處理。經(jīng)過多次跳轉(zhuǎn)后轉(zhuǎn)發(fā)給匯聚節(jié)點,最終傳輸?shù)胶笈_數(shù)據(jù)監(jiān)控中心。管理節(jié)點任務是對WSN 發(fā)送指令控制各節(jié)點正常有序運行。

      1.2 WSN的局限性

      限制分布式無線傳感器網(wǎng)快速發(fā)展的主要原因是安全性,WSN 主要部署在野外困難的環(huán)境,安全條件差,獲取的數(shù)據(jù)容易被篡改、被泄密。密鑰技術(shù)、認證服務是保障WSN 安全工作的首選技術(shù),但WSN 的局限性使得某些已成熟的網(wǎng)絡安全手段無法在WSN 中實現(xiàn)。

      WSN主要的局限性有以下幾個方面:

      (1)資源不足:因體積微小,傳感器的節(jié)點無法配備更多的物理設備,最為突出的受限資源是電能。每步運行都消耗WSN 節(jié)點的電能,結(jié)果造成WSN 的公鑰算法效果不佳。具體有:

      ①CPU能力不足:WSN 節(jié)點體積微小,不能安裝功能強勁的CPU,以致即使運算量很少的處理,也將占據(jù)大量的CPU 資源。

      ②電力不足:WSN 采用電池供電,WSN 各節(jié)點主要部署在野外環(huán)境,很難對它們更換電池。因此,電力不足極大地減少了WSN 的使用壽命。

      ③內(nèi)存不足:同樣是因為體積微小,在WSN 上不能安裝大空間的存儲器,只能是128 KB 可編程Flash Memory 和4 KB 的RAM,即使附加了512 KB 的Flash Memory 后,仍無法比肩GB 數(shù)量級的其他電子設備。

      (2)局部計算與通訊能力不足:分布式無線傳感器是基于節(jié)點的局部計算與通訊,各類節(jié)點能夠依據(jù)相鄰節(jié)點之間傳遞的信息做出決斷。但分布式局部計算和通訊與全局網(wǎng)絡相比,無論在信息獲取、運算能力、通訊速度等方面都凸顯劣勢。

      (3)大規(guī)模部署困難:分布式無線傳感器網(wǎng)需要放置數(shù)量眾多的傳感器節(jié)點來檢測環(huán)境變化或監(jiān)測特定目標。如何把成百上千的節(jié)點感知的信息發(fā)送給數(shù)據(jù)監(jiān)控中心,且在安全保障的前提下盡量減小資源的占用,這需要將WSN 的CPU 運算、數(shù)據(jù)存儲、信息轉(zhuǎn)發(fā)等環(huán)節(jié)綜合思考,協(xié)調(diào)處理。

      在WSN中應用簡單、高效的消息摘要算法,可以有效保護數(shù)據(jù)的完整性、可靠性。例如,在采樣數(shù)據(jù)末尾附上一段單向散列值,讓接收者可以對數(shù)據(jù)進行校驗;節(jié)點設備還可以添加簽名,便于網(wǎng)絡內(nèi)其他成員驗證節(jié)點身份。

      2 MD5數(shù)據(jù)加密算法

      2.1 認證過程

      使用MD5算法,對WSN 傳輸?shù)臄?shù)據(jù)進行安全認證的過程如圖1所示。

      在發(fā)送端,計算一次待傳輸數(shù)據(jù)的MD5 值并附在數(shù)據(jù)末尾發(fā)送出去,接收端重新計算接收數(shù)據(jù)的MD5值,并與發(fā)送端計算得出的MD5 值進行比較,若明顯不同則說明數(shù)據(jù)存在異常,可以啟動重傳機制,要求節(jié)點重新發(fā)送數(shù)據(jù)[6]。

      2.2 基于MD5算法的數(shù)據(jù)安全傳輸方法

      2.2.1 數(shù)據(jù)預處理

      MD5 加密操作是以512 比特為單位進行的,因此,在對數(shù)據(jù)進行摘要生成操作之前,首先要對其進行補位操作,使得補位之后的數(shù)據(jù)長度是512 比特的整數(shù)倍[7]。

      設待加密的數(shù)據(jù)為d

      其中di=0,1,i=1,2,…,N,表明數(shù)據(jù)長度是Nbits。補位的具體方法是:在數(shù)據(jù)結(jié)尾補1 個“1”,以及若干個“0”,直到數(shù)據(jù)長度滿足

      即此時N=(K×512+448) bits,其中K為一個自然數(shù)。將K用一個64 比特整數(shù)的形式附在數(shù)據(jù)的末尾。這時,數(shù)據(jù)被填補后的總長度為

      將補位后得到的數(shù)據(jù)d′以512 比特為單位進行分段,可以得到K+1 個數(shù)據(jù)子段

      2.2.2 參數(shù)定義

      在MD5算法中,需要定義若干初始參數(shù)與函數(shù),用于后續(xù)的變換操作[8]。

      (1)設置4 個名為鏈接變量(Chaining Variable)的4 字節(jié)整型參數(shù)

      然后,按以下規(guī)則使用鏈接變量對4 個新變量進行賦值

      這樣就得到了8 個初始變量A,B,C,D,a,b,c,d。

      (2)定義4 個非線性函數(shù)(X,Y,Z為4 字節(jié)整數(shù))

      繼續(xù)定義4 個分別用于四輪變換的函數(shù)。

      對于一個512 比特的數(shù)據(jù)子段,將其分割為16 個子塊Mj(j=0,1,2,…,15);<<

      式(8)-(11)中的“=”為向左賦值符號。

      2.2.3 基于MD5算法的數(shù)據(jù)加密過程

      MD5算法主要流程敘述如下:原始數(shù)據(jù)經(jīng)過補位,使得數(shù)據(jù)長度為512 bits 的整數(shù)倍;然后以512 bits長度的數(shù)據(jù)塊為單位循環(huán)處理,每個數(shù)據(jù)塊被劃分為32 bits 長度的16 個子分組,每輪循環(huán)操作16 步。通過若干步運算與處理,算法將輸出4 組32 位長度的散列值,通過級聯(lián)得到128 bits 長度的數(shù)字簽名[10]。

      具體步驟如下:

      這四輪(64 步)變換是:

      第一輪

      第二輪

      第三輪

      第四輪

      第i步中,i的單位是弧度,ti是常量屬于232×|sini|的整數(shù)部分。

      將一輪64 步運算全部完成后,得到的4 個值a,b,c,d加到A,B,C,D上去,作為新的鏈接變量值,即:A←A+a,B←B+b,C←C+c,D←D+d。然后使用下一個512 bits 的數(shù)據(jù)塊重復上述運算過程,當所有數(shù)據(jù)處理完成后,將A,B,C,D按比特流的形式級聯(lián),輸出一個128 位的序列,即為所求的MD5 摘要值[11]。

      2.2.4 算法偽代碼

      //說明:所有的變量都是32 位無符號整數(shù),并按2^32 換模計算

      int [64]m,n

      m[0..15]:={8,20,8,24,8,20,8,24,8,20,8,24,8,20,8,24}

      m[16..31]:={9,16,25,28,9,16,25,28,9,16,25,28,9,16,25,28}

      m[32..47]:={6,11,18,27,6,11,18,27,6,11,18,27,6,11,18,27}

      m[48..63]:={8,12,20,24,8,12,20,24,8,12,20,24,8,12,20,24}

      for (i=0:i<=63:i++)

      n[i]:=double(abs(sin(i+1))×2^32)

      //初始化變量:

      int k0 :=0x8659210A

      int k1 :=0xBC89CE68

      int k2 :=0x63EB72FD

      int k3 :=0xF264DC78

      //前期處理:

      append the bit '1' to the message

      append the bits '0' where length of message in bits≡448(mod 512)

      append length of message(before pre-processing),in bits,as 64-bit little-endian integer

      //在連續(xù)的512 位數(shù)據(jù)塊中處理消息

      break message into 512-bit chunks

      for each chunk

      break chunk into sixteen 32-bit little-endian words w[j],0<=j<=15

      //初始化哈希值:

      int a :=k0

      int b :=k1

      int c :=k2

      int d :=k3

      //主循環(huán):

      for (j=0:j<=63:j++)

      { if( 0<=j<=15)

      { p :=(x and y) or ((not x) and z)

      q :=j}

      else if 16<=j<=31

      { p :=(z and x) or ((not z) and y)

      q :=(5×j+1) mod 16}

      else if 32<=j<=47

      { p :=x xor y xor z

      q :=(3×j+5) mod 16}

      else if 48<=j<=63

      { p :=y xor (x or (not d))

      q :=(7×j) mod 16}

      temp :=z

      z :=y

      y :=x

      x :=leftrotate((w+p+n[j]+w[q]),r[j])+x

      w :=temp

      }

      //將哈希值添加到結(jié)果中

      k0 :=k0+w

      k1 :=k1+x

      k2 :=k2+y

      k3 :=k3+z

      End For Each 512-bit chunks

      int result :=k0 append k1 append k2 append k3

      3 仿真實驗

      通過計算機仿真實驗,將案例數(shù)據(jù)進行MD5 加密計算,得出的結(jié)果證明了文中提出的算法是可靠的、有效的。

      硬件環(huán)境:Intel Core i7 4710HQ 平臺計算機。

      軟件環(huán)境:Eclipse IDE for Java Developers,Version: Neon.1a Release (4.6.1)。

      文中采用Java 語言實現(xiàn)MD5算法。

      實驗IMD5算法驗證

      為證明MD5算法的可靠性和有效性,采用了已知的幾組MD5 值數(shù)據(jù)進行實驗,驗證結(jié)果見表1?!按用苄畔ⅰ绷惺? 條常用的用于驗證MD5算法的數(shù)據(jù),“已知的參考MD5 值”列是已知的MD5算法計算結(jié)果,該仿真實驗計算出的MD5 值在“計算出的MD5 值”列。

      表1 MD5算法安全性驗證

      以上的MD5 值都采用16 進制形式列出,輸出均是128 位單向散列值。對比可知計算無誤,文中編寫的程序可用于正確地計算MD5 值。

      實驗II算法安全性驗證

      下面對一條數(shù)據(jù)“GOLDEN_1dot6180339887”進行處理,在數(shù)據(jù)正確、缺失、冗余、篡改的條件下分別計算MD5 值,進而驗證算法的安全性,結(jié)果見表2。

      表2 算法安全性驗證

      在該實驗中,受攻擊的數(shù)據(jù)均與原數(shù)據(jù)有1 位的不同,而計算出的MD5 值完全不同。通過收、發(fā)兩端的MD5 加密后的數(shù)據(jù)對比驗證數(shù)據(jù)傳輸過程的安全可靠性。

      4 結(jié)語

      WSN 節(jié)點設備通常安置在不安全的野外環(huán)境中,很容易被攻擊者竊取、偽造、盜改傳感器中采集的數(shù)據(jù),降低了系統(tǒng)的安全性和有效性。在WSN 數(shù)據(jù)的末尾增加數(shù)字簽名,將極大地增加了攻擊者攻擊數(shù)據(jù)的難度,提高了無線傳感器網(wǎng)絡系統(tǒng)的安全穩(wěn)定性。該論文采用MD5算法為簽名加密算法,以Java 為軟件平臺仿真了對數(shù)據(jù)計算摘要的過程。目前的硬件水平限制了傳感器網(wǎng)絡的性能,因而無法使用更為復雜的加密算法,但相信隨著技術(shù)的發(fā)展,無線傳感器網(wǎng)絡的性能會越來越高,更安全、更復雜的算法可以應用到其中,WSN 將會更高效、更可靠。

      猜你喜歡
      分布式無線傳感器
      康奈爾大學制造出可拉伸傳感器
      《無線互聯(lián)科技》征稿詞(2021)
      簡述傳感器在物聯(lián)網(wǎng)中的應用
      電子制作(2019年22期)2020-01-14 03:16:52
      “傳感器新聞”會帶來什么
      傳媒評論(2019年5期)2019-08-30 03:50:18
      無線追蹤3
      跟蹤導練(三)2
      基于ARM的無線WiFi插排的設計
      電子制作(2018年23期)2018-12-26 01:01:08
      分布式光伏熱錢洶涌
      能源(2017年10期)2017-12-20 05:54:07
      分布式光伏:爆發(fā)還是徘徊
      能源(2017年5期)2017-07-06 09:25:54
      ADF7021-N在無線尋呼發(fā)射系統(tǒng)中的應用
      電子制作(2016年15期)2017-01-15 13:39:03
      甘德县| 潜江市| 固镇县| 朝阳县| 太原市| 墨竹工卡县| 南昌县| 江山市| 吉隆县| 和顺县| 大英县| 博客| 徐州市| 晋江市| 瑞金市| 甘德县| 黄山市| 崇礼县| 博客| 商丘市| 介休市| 彰化县| 荔浦县| 寿光市| 迁安市| 涪陵区| 义乌市| 桂平市| 宁德市| 新平| 嘉祥县| 双柏县| 松原市| 涡阳县| 子洲县| 扎赉特旗| 赤水市| 疏勒县| 襄汾县| 金秀| 台北县|