數(shù)據(jù)加密技術(shù)在嵌入式系統(tǒng)中的應(yīng)用
另外在把數(shù)據(jù)寫入隨機(jī)數(shù)序列X[i]時(shí)被寫數(shù)據(jù)也經(jīng)過(guò)了變換,變換規(guī)則可以采用高4位與低4位交換、取非、字/字節(jié)循環(huán)移位、XOR等各種方法,只要變換后不破壞數(shù)據(jù)的惟一性即可。設(shè)把數(shù)據(jù)寫入隨機(jī)數(shù)序列時(shí)的變換規(guī)則為F2,對(duì)應(yīng)的反變換表示為,則式(3)變?yōu)椋?br />
由于f隨機(jī)具有隨機(jī)特性,則每次加密數(shù)據(jù)時(shí),數(shù)據(jù)d寫入隨機(jī)數(shù)列的位置md具有隨機(jī)性、存儲(chǔ)md尋址地址的字節(jié)位置也具有隨機(jī)性;這樣就保證了系統(tǒng)每次在加密數(shù)據(jù)時(shí)數(shù)據(jù)地址及數(shù)據(jù)地址的存儲(chǔ)地址都是不相同的,大大增加了破譯難度。
綜上所述,把數(shù)據(jù)d插入隨機(jī)數(shù)列的過(guò)程是:第1步,產(chǎn)生一隨機(jī)數(shù)序列X[i],其中iN,N為數(shù)組長(zhǎng)度;第2步,根據(jù)規(guī)則F1得到基地址偏移量f隨機(jī);第3步,產(chǎn)生一隨機(jī)數(shù)md,其中mdN,并且沒(méi)有被使用過(guò);第4步,把數(shù)據(jù)d經(jīng)過(guò)F2規(guī)則變換后賦值給X[md];第5步,假設(shè)nd'為數(shù)據(jù)md的高8位,則把nd'經(jīng)過(guò)F2規(guī)則變換后賦值給X[Jmd+f隨機(jī)],其中Jnd是加密算法中數(shù)據(jù)d存儲(chǔ)地址的高字節(jié)的存儲(chǔ)基地址。第6步,假設(shè)kd'為數(shù)據(jù)md的低8位,則把kd'經(jīng)過(guò)F2規(guī)則變換后賦值給X[Jkd+f隨機(jī)],其中Jkd是加密算法中數(shù)據(jù)d存儲(chǔ)地址的低字節(jié)的存儲(chǔ)基地址。至此,即完成了一個(gè)數(shù)據(jù)插入隨機(jī)數(shù)列的過(guò)程。
根據(jù)隨機(jī)數(shù)列得到數(shù)據(jù)d的過(guò)程是:第1步,根據(jù)規(guī)則F1得到基地址偏移量f隨機(jī),第2步,把X[Jnd+f隨機(jī)]經(jīng)規(guī)則變換后賦值給nd';第3步,把X[Jkd+f隨機(jī)]經(jīng)規(guī)則變換后賦值給kd';第4步,X[nd'8+kd']經(jīng)規(guī)則變換后即得到原始數(shù)據(jù)d。
3.2 密文數(shù)據(jù)防篡改的方法
為防止密文數(shù)據(jù)被非法更改,采用了經(jīng)過(guò)改進(jìn)的循環(huán)冗余校驗(yàn)技術(shù)。即數(shù)列X[i]的字節(jié)x[M]存儲(chǔ)[0,M-1]地址段中所有數(shù)據(jù)的校驗(yàn)和,x[2M]字節(jié)存儲(chǔ)[M,2M-1]地址段中所有數(shù)據(jù)的校驗(yàn)和,…,在解密時(shí)首先檢查各地址段數(shù)據(jù)的校驗(yàn)和與“校驗(yàn)和存儲(chǔ)字節(jié)”的存儲(chǔ)值是否相等,即可判斷數(shù)據(jù)是否被非法更改。假設(shè)M是被計(jì)算的數(shù)據(jù)段長(zhǎng)度,則:
式中:F2代表數(shù)據(jù)寫入隨機(jī)數(shù)列時(shí)的變換規(guī)則;k=1,2,…,N/M。
通過(guò)這種方法,密文數(shù)據(jù)中的任何字節(jié)被非法更改,都可以被檢測(cè)到。另外被求和的字段長(zhǎng)度也可以設(shè)置成不相等,數(shù)據(jù)就更難被破解。
3.3 數(shù)列置換
為進(jìn)一步提高加密強(qiáng)度,埋入數(shù)據(jù)后的隨機(jī)數(shù)列X[i]還可經(jīng)過(guò)“置換表”技術(shù)進(jìn)行加密。在該方法中,置換表Z[i]是關(guān)鍵,它是數(shù)列[0,1,…,255]中的元素再經(jīng)過(guò)隨機(jī)排列而得到的。設(shè)Z[i]中的數(shù)據(jù)為x[i],則z[i]具有如下特征:
使用兩個(gè)或更多的“置換表”,在置換操作時(shí)按偽隨機(jī)的方式使用每個(gè)襲,可以進(jìn)一步提高加密強(qiáng)度。但每增加一個(gè)置換襲,嵌入式系統(tǒng)程序中就需要增加一個(gè)長(zhǎng)度為255 B的數(shù)組,因此置換表的數(shù)量還要根據(jù)加密強(qiáng)度需求、嵌入式系統(tǒng)的存儲(chǔ)和數(shù)據(jù)處理能力等因素確定。
4 結(jié)語(yǔ)
接本文所述方法加密后的數(shù)據(jù)是一組沒(méi)有任何規(guī)律的偽隨機(jī)數(shù),且完全相同的密文數(shù)據(jù)每次加密后都不相同,具有很高的加密強(qiáng)度和防破解能力。另外該加密方法還具有微處理器資源需求小,算法容易實(shí)現(xiàn),加、解密運(yùn)行時(shí)間短等優(yōu)點(diǎn)。該加密方法還可應(yīng)用于軟件用戶口令存儲(chǔ)加密、數(shù)字簽名等方面。該技術(shù)現(xiàn)已成功應(yīng)用在某型工業(yè)控制設(shè)備試用狀態(tài)管理和某型機(jī)載電子設(shè)備自動(dòng)測(cè)試系統(tǒng)使用權(quán)限管理等數(shù)據(jù)加密領(lǐng)域,取得了很好的應(yīng)用效果。在工業(yè)設(shè)備的試用狀態(tài)管理應(yīng)用中,當(dāng)需要對(duì)已經(jīng)交付用戶試用的設(shè)備進(jìn)行工作狀態(tài)設(shè)置時(shí)(如試用狀態(tài)升級(jí)到正式交付狀態(tài)等),生產(chǎn)廠商只需把密文文件通過(guò)互聯(lián)網(wǎng)發(fā)送給用戶,用戶把數(shù)據(jù)拷貝到U盤后再插入設(shè)備的USB口,重新啟動(dòng)設(shè)備即
可完成,使用起來(lái)十分方便。本文引用地址:http://www.ex-cimer.com/article/148137.htm
評(píng)論