cc2530 AES加密

快速配置算法

clip_image002

      Z-stack對Zigbee2006提供了全面的支持,功能之強大,性能穩定、安全性高,說到安全性是咱們今天的主題。CC2430硬件支持128bit的AES加密算法,在協議棧中爲了避開相同設備的干擾,和防止被其餘設備監聽,咱們就採用這個技術將數據加密來提升數據的安全性。安全

      AES(The Advanced Encryption Standard)是美國國家標準與技術研究所用於加密電子數據的規範。它被預期能成爲人們公認的加密包括金融、電信和政府數字信息的方法。AES 是一個新的能夠用於保護電子數據的加密算法。明確地說,AES 是一個迭代的、對稱密鑰分組的密碼,它能夠使用12八、192 和 256 位密鑰,而且用 128 位(16字節)分組加密和解密數據。與公共密鑰密碼使用密鑰對不一樣,對稱密鑰密碼使用相同的密鑰加密和解密數據。經過分組密碼返回的加密數據的位數與輸入數據相同。迭代加密使用一個循環結構,在該循環中重複置換(permutations )和替換(substitutions)輸入數據。網絡

      在Z-stack中採用的是128bit的加密,首先須要一個128bit的key,這個KEY不一樣,加密出來的內容也不一樣在Z-stack中是經過DEFAULT_KEY="{0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x 0F, 0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0D}"這種方式來定義的。函數

在Z-stack中已經在協議棧中實現了這個加密算法,若是須要使用直接開啓這個服務就能夠了,下面咱們主要將Z-stack的加密算法的開啓。性能

 

Z-stack1.4.3加密算法的功能開啓方法:ui

1.將f8wConfig.cfg文件中設置爲-DSECURE=1,這句話的意思是SECURE=1,這個變量在協議棧中做爲if語句的條件使用,條件爲真的語句中就是開啓加密算法的函數。因此要使用第一步是要將這個參數設置爲1。加密

2.將ZGlobals.c中的uint8 zgPreConfigKeys = FLASE;修改成uint8 zgPreConfigKeys = TRUE;spa

3.準備一個key,這個能夠在函數nwk_global.c中修改:3d

CONST byte defaultKey[SEC_KEY_LEN] =
{
#if defined ( APP_TP ) || defined ( APP_TP2 )
  // Key for ZigBee Conformance Testing
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x89, 0x67, 0x45, 0x23, 0x01, 0xEF, 0xCD, 0xAB
#else
  // Key for In-House Testing
  0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
  0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
#endif
};

若是使用了加密算法後,網絡中全部的設備都須要開啓這個算法,並且各個設備中的key必須相同。不然後果是很嚴重的,這會致使你的網絡不能正常通信,由於沒有加密的數據或者相同key加密,這些數據網絡是不認識的,根本就不會傳到網絡層。code

加密算法開啓之後,若是你須要修改代碼,就必須改變你的key,或者是擦除一次你的flash,不然會出現不可逾期的錯誤,並且沒有規律。一般的作法是擦除flash一次,這樣能夠保證和整個網絡的key相同。

採用這個加密算法的好處是:若是一個網絡在作實驗,你再隨便加入一個協調器或者路由或者終端對現有的網絡狀態不會形成影響,這樣就能夠進行多個並行實驗了。

___By Nazs_X

相關文章
相關標籤/搜索