數據加密技術在嵌入式系統中的應用
另外在把數據寫入隨機數序列X[i]時被寫數據也經過了變換,變換規則可以采用高4位與低4位交換、取非、字/字節循環移位、XOR等各種方法,只要變換后不破壞數據的惟一性即可。設把數據寫入隨機數序列時的變換規則為F2,對應的反變換表示為

由于f隨機具有隨機特性,則每次加密數據時,數據d寫入隨機數列的位置md具有隨機性、存儲md尋址地址的字節位置也具有隨機性;這樣就保證了系統每次在加密數據時數據地址及數據地址的存儲地址都是不相同的,大大增加了破譯難度。
綜上所述,把數據d插入隨機數列的過程是:第1步,產生一隨機數序列X[i],其中iN,N為數組長度;第2步,根據規則F1得到基地址偏移量f隨機;第3步,產生一隨機數md,其中mdN,并且沒有被使用過;第4步,把數據d經過F2規則變換后賦值給X[md];第5步,假設nd'為數據md的高8位,則把nd'經過F2規則變換后賦值給X[Jmd+f隨機],其中Jnd是加密算法中數據d存儲地址的高字節的存儲基地址。第6步,假設kd'為數據md的低8位,則把kd'經過F2規則變換后賦值給X[Jkd+f隨機],其中Jkd是加密算法中數據d存儲地址的低字節的存儲基地址。至此,即完成了一個數據插入隨機數列的過程。
根據隨機數列得到數據d的過程是:第1步,根據規則F1得到基地址偏移量f隨機,第2步,把X[Jnd+f隨機]經
3.2 密文數據防篡改的方法
為防止密文數據被非法更改,采用了經過改進的循環冗余校驗技術。即數列X[i]的字節x[M]存儲[0,M-1]地址段中所有數據的校驗和,x[2M]字節存儲[M,2M-1]地址段中所有數據的校驗和,…,在解密時首先檢查各地址段數據的校驗和與“校驗和存儲字節”的存儲值是否相等,即可判斷數據是否被非法更改。假設M是被計算的數據段長度,則:
式中:F2代表數據寫入隨機數列時的變換規則;k=1,2,…,N/M。
通過這種方法,密文數據中的任何字節被非法更改,都可以被檢測到。另外被求和的字段長度也可以設置成不相等,數據就更難被破解。
3.3 數列置換
為進一步提高加密強度,埋入數據后的隨機數列X[i]還可經過“置換表”技術進行加密。在該方法中,置換表Z[i]是關鍵,它是數列[0,1,…,255]中的元素再經過隨機排列而得到的。設Z[i]中的數據為x[i],則z[i]具有如下特征:

使用兩個或更多的“置換表”,在置換操作時按偽隨機的方式使用每個襲,可以進一步提高加密強度。但每增加一個置換襲,嵌入式系統程序中就需要增加一個長度為255 B的數組,因此置換表的數量還要根據加密強度需求、嵌入式系統的存儲和數據處理能力等因素確定。
4 結語
接本文所述方法加密后的數據是一組沒有任何規律的偽隨機數,且完全相同的密文數據每次加密后都不相同,具有很高的加密強度和防破解能力。另外該加密方法還具有微處理器資源需求小,算法容易實現,加、解密運行時間短等優點。該加密方法還可應用于軟件用戶口令存儲加密、數字簽名等方面。該技術現已成功應用在某型工業控制設備試用狀態管理和某型機載電子設備自動測試系統使用權限管理等數據加密領域,取得了很好的應用效果。在工業設備的試用狀態管理應用中,當需要對已經交付用戶試用的設備進行工作狀態設置時(如試用狀態升級到正式交付狀態等),生產廠商只需把密文文件通過互聯網發送給用戶,用戶把數據拷貝到U盤后再插入設備的USB口,重新啟動設備即
可完成,使用起來十分方便。本文引用地址:http://cqxgywz.com/article/148137.htm









評論