關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 基于分簇的有效無線傳感器網絡密鑰管理方案

        基于分簇的有效無線傳感器網絡密鑰管理方案

        作者: 時間:2012-02-03 來源:網絡 收藏

        2.3 節點身份的預分配
        采用將節點身份與節點標識3者相結合的思想完成密鑰的預分配階段和共享密鑰發現階段來提高抵抗被俘獲攻擊的能力。
        假設中放置n個節點,符號表示如下:
        id:每個節點的唯一標識,其中id=1,2,…n;
        Sid:標識為id的節點;
        P:密鑰分配中心產生的密鑰池;
        m:每個傳感器節點的密鑰個數,m個密鑰構成節點的密鑰環;
        ,將Hash函數的輸出作為第i個密鑰新的標識。重復執行m次得到該節點一個新的密鑰標識集合,通過這一步使得密鑰中心產生的密鑰標識與所配置的節點身份聯系了起來,將重新得到的密鑰和密鑰標識集載入節點的內存中。
        ③按照與②中相同的規則,將基站的身份id與每個節點的密鑰建立聯系,得出基站與每個節點的共享密鑰。到此,節點密鑰的預分配已經完成,每個節點都分配了各自的密鑰環,并且完成了節點與基站的密鑰協商。
        2)共事密鑰發現階段
        每個傳感器節點廣播自己的身份標識id,對于節點i的其中一個鄰居節點j,將j的身份作為輸入求出該節點所對應的密鑰標識集合IDj。然后將IDj與自己的密鑰標識集合比較,如果存在相同的密鑰標識,那么就以該密鑰標識對應的密鑰作為這兩個節點之間的共享密鑰。
        3)路徑密鑰建立階段
        如果兩個節點沒有發現共享密鑰,那么需要第3個節點作為中間節點,分別與第3個節點建立安全的鏈接協商路徑密鑰,這個過程與上述兩個階段相同。

        3 分簇的密鑰
        在上述算法中,每個節點都存儲一定數目的密鑰,不同的節點可能會共事密鑰,當節點被攻破時,它所存儲的密鑰將被泄露,所有其它使用這些密鑰進行的通信都將不再安全。我們可以把一部分存儲的密鑰替換為包含某種中間信息的特殊信息,這些特殊信息也可以建立安全鏈接,而且泄露后不會對其它鏈接產生任何不利后果,這樣可以地提高安全性,同時對連通度沒有太大影響。
        3.1 初始化階段
        首先為每個簇創建一個容量為P的密鑰池。簇內每個節點從密鑰池里隨機選擇m個密鑰,并從這串密鑰中隨機選u個密鑰,將它們替換成特殊信息。特殊信息EK可計算如下,f.jpg其中IDk為密鑰k所對應的ID,g.jpg為二進制異或,H0為哈希操作,k0為使用密鑰k進行的加密操作,節點會存儲一個各自不同的密鑰K'。由于K'對每個節點都不同,一旦某個節點被俘獲,它所擁有的K'不能被用于解密其它節點問的加密通信。當節點把某個密鑰k替換成對應的EK后,只需存儲EK而不再存儲對應的k以節省存儲空間,因為算法中它不需要靠k來對EK進行解密操作,每個節點遙過K',ID和H求出EK解密后的值,即h.jpg,這個值被作為建立通信的密鑰,而另外一個節點只需擁有k,就可以通過解密EK來獲取這個通信密鑰,從而建立安全鏈接。
        3.2 鏈接建立過程
        在通信密鑰建立過程中,每個節點都需要發現周圍能和其密鑰相匹配的節點。如果兩個節點擁有相同的密鑰,或者一個節點擁有密鑰,另一個節點擁有由該密鑰運算得到的EK,都可以認為兩個節點擁有相匹配的密鑰。在密鑰發現過程中,每個節點將自己的密鑰ID列表進行廣播,這些ID對應自己擁有的密鑰以及EK。當廣播完成后,擁有匹配密鑰的節點就可以建立安全鏈接了。這可以由2種方式達成,第1種,如果雙方都擁有密鑰k,他們可以使用k作為通信密鑰來建立安全鏈接。第2種,如果一方擁有密鑰k,另一方擁有對應的EK,那么它們也能建立安全鏈接,所使用的密鑰雙方可以按如下步驟計算,對于擁有EK的一方,它計算如下i.jpg。對于擁有k的一方,它首先接受另一方傳輸過來的EK,然后計算kreal=Dk(EKk),其中Dk()為使用k來進行的解密操作。當雙方都擁有了相同的密鑰K’后,可以用它來加密通信。由于每個節點的K’都不一樣,每個密鑰的ID也不相同,所以每個K’只在兩個節點之間共享,即使它被泄露了也不會影響其它節點間的通信。哈希函數H用于保護密鑰信息,如果攻擊者已經獲取了密鑰k,以及某個節點對應密鑰k的EK,攻擊者也無法解密EK來獲取這個節點的K’信息,這樣也就無法計算出這個節點跟另外節點通信所使用的kreal。


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 吴忠市| 夏邑县| 泗洪县| 大城县| 隆子县| 西林县| 伊金霍洛旗| 那曲县| 宣恩县| 成都市| 闻喜县| 姜堰市| 宜章县| 郑州市| 罗田县| 平顶山市| 淮北市| 高青县| 鞍山市| 乌拉特前旗| 客服| 察隅县| 余江县| 建德市| 横山县| 邵武市| 陕西省| 德清县| 祁连县| 珲春市| 香格里拉县| 电白县| 建平县| 鄢陵县| 岑巩县| 元朗区| 鸡西市| 伊春市| 枞阳县| 黄浦区| 中超|