當(dāng)前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]數(shù)據(jù)加密技術(shù)在嵌入式系統(tǒng)中的應(yīng)用

摘要:在裝備的試用狀態(tài)管理和敏感數(shù)據(jù)保護等方面,數(shù)據(jù)加密技術(shù)的應(yīng)用越來越廣泛。針對嵌入式系統(tǒng)的特點和數(shù)據(jù)加密需求,給出了一種可應(yīng)用到嵌入式系統(tǒng)的數(shù)據(jù)加密算法。該方法在隨機數(shù)序列的基礎(chǔ)上實現(xiàn)數(shù)據(jù)加密,并綜合應(yīng)用了數(shù)據(jù)二次尋址、置換表、數(shù)據(jù)字節(jié)運算、改進(jìn)的循環(huán)冗余校驗等技術(shù),相同明文每次加密后形成的密文數(shù)據(jù)各不相同,具有加密強度高、算法容易實現(xiàn)、密文數(shù)據(jù)防篡改等特點。該技術(shù)已成功應(yīng)用于C8051F020和MSP430F135單片機系統(tǒng),分別實現(xiàn)了某兩型裝備的試用期狀態(tài)管理和敏感數(shù)據(jù)保護。
關(guān)鍵詞:嵌入式系統(tǒng),數(shù)據(jù)加密;數(shù)據(jù)尋址;密鑰

0 引言
    當(dāng)前嵌入式系統(tǒng)已經(jīng)廣泛應(yīng)用在武器裝備和民用產(chǎn)品的各個領(lǐng)域,在其越來越智能化的同時,與之運行有關(guān)的各種工作參數(shù)等設(shè)置數(shù)據(jù)也越來越成為需要保護的對象。
    某些系統(tǒng)中,系統(tǒng)工作狀態(tài)設(shè)置參數(shù)、測量結(jié)果等敏感數(shù)據(jù)必須經(jīng)過授權(quán)才能被設(shè)置或查看。在沒有授權(quán)的情況下,即使得到敏感數(shù)據(jù),也無法破解數(shù)據(jù)的真正含義。在具有“試用風(fēng)險管理”功能的民用產(chǎn)品中,產(chǎn)品交付用戶的日期、試用期限及試用狀態(tài)(類似于軟件產(chǎn)品的“試用版本”)、試用狀態(tài)到交付狀態(tài)的設(shè)置、產(chǎn)品序列號、產(chǎn)品工作狀態(tài)設(shè)置口令等數(shù)據(jù)直接關(guān)系到產(chǎn)品生產(chǎn)廠商的經(jīng)濟利益。產(chǎn)品試用期結(jié)束后,產(chǎn)品工作狀態(tài)升級等設(shè)置數(shù)據(jù)需要通過用戶傳遞給設(shè)備,因此,在客觀上就需要一種強有力的安全措施來保護這些敏感數(shù)據(jù)不被篡改或非法應(yīng)用到其他同型產(chǎn)品。

1 數(shù)據(jù)加密的應(yīng)用實例
    
數(shù)據(jù)加密在嵌入式系統(tǒng)中的應(yīng)用實例如圖1所示。在該應(yīng)用中,包括“遠(yuǎn)程控制端”和“用戶端”兩個子系統(tǒng),其中“遠(yuǎn)程控制端”可以是上級機關(guān),也可以是民用產(chǎn)品的生產(chǎn)、銷售單位。在“遠(yuǎn)程控制端”,根據(jù)密鑰文件,敏感數(shù)據(jù)被加密處理后形成密文數(shù)據(jù),就可以通過互聯(lián)網(wǎng)或非涉密人員進(jìn)行傳遞。密文數(shù)據(jù)傳送到設(shè)備的使用單位后,再由非涉密的使用人員(或民用產(chǎn)品用戶)把這些數(shù)據(jù)輸入嵌入式設(shè)備。設(shè)備根據(jù)其存儲的密鑰數(shù)據(jù)把密文還原成內(nèi)部可識別的敏感數(shù)據(jù),再進(jìn)行相應(yīng)操作,從而最終實現(xiàn)遠(yuǎn)程控制端對設(shè)備的控制;把嵌入式設(shè)備中的數(shù)據(jù)傳輸?shù)竭h(yuǎn)程控制端的過程與之相反,首先敏感數(shù)據(jù)由嵌入式設(shè)備進(jìn)行加密處理,再通過互聯(lián)網(wǎng)或其他非涉密渠道傳送到遠(yuǎn)程控制端,密文數(shù)據(jù)解密后即可還原成原始數(shù)據(jù)。


    在設(shè)備試用狀態(tài)管理的應(yīng)用實例中,“遠(yuǎn)程控制端”密文數(shù)據(jù)的產(chǎn)生由“遠(yuǎn)程控制端”密文數(shù)據(jù)產(chǎn)生程序?qū)崿F(xiàn),密文數(shù)據(jù)的具體功能由數(shù)據(jù)“任務(wù)類型”定義,包括升級到交裝狀態(tài)、延長試用期限、交裝狀態(tài)和試用狀態(tài)出廠參數(shù)設(shè)置等4種任務(wù),用戶界面如圖2所示。只要操作人員在用戶界面上輸入設(shè)備序列號、用戶密碼、任務(wù)類型等數(shù)據(jù),再點擊“創(chuàng)建文件”,密文數(shù)據(jù)即可生成,然后即可把該密文數(shù)據(jù)文件通過互聯(lián)網(wǎng)等傳遞給用戶。當(dāng)用戶把該密文數(shù)據(jù)注入設(shè)備時,設(shè)備按規(guī)定的算法把數(shù)據(jù)解密后,再判斷設(shè)備序列號和用戶密碼是否與設(shè)備定義一致,如果一致則執(zhí)行密文數(shù)據(jù)定義的任務(wù)。通過這樣的方法,設(shè)備生產(chǎn)廠商即可實現(xiàn)對設(shè)備試用狀態(tài)的遠(yuǎn)程控制。
[!--empirenews.page--]
2 嵌入式系統(tǒng)數(shù)據(jù)加密技術(shù)的特點
    
所謂數(shù)據(jù)加密技術(shù)是指將信息(或稱明文)經(jīng)過加密鑰匙及加密函數(shù)轉(zhuǎn)換,變成無意義的密文,而接收方將此密文經(jīng)過解密函數(shù)、解密鑰匙還原成明文的技術(shù)。
    數(shù)據(jù)加密技術(shù)要求只有在指定的用戶或網(wǎng)絡(luò)下,才能解除密碼而獲得原來的數(shù)據(jù),因此數(shù)據(jù)發(fā)送方和接收方都需要一些特殊的信息用于加解密,這就是所謂的密鑰(或加密算法)。密鑰分為專用密鑰和公開密鑰兩種。嵌入式系統(tǒng)中用戶端的密鑰存儲在硬件設(shè)備中,因數(shù)據(jù)存儲芯片在硬件上設(shè)置有加密機制,無法被讀取或破譯,因此采用專用密鑰這種簡單的形式即可滿足要求。
    在嵌入式系統(tǒng)中,“遠(yuǎn)程控制端”的密鑰由遠(yuǎn)程控制人員掌握,“用戶端”的密鑰存儲在嵌入式系統(tǒng)中,用戶無法得到密鑰數(shù)據(jù),就無法破解密文數(shù)據(jù),從而無法擅自設(shè)置嵌入式設(shè)備中需要保護的工作參數(shù)和工作狀態(tài)。
    根據(jù)嵌入式系統(tǒng)的特點及加密技術(shù)的應(yīng)用環(huán)境,應(yīng)用到嵌入式系統(tǒng)時,數(shù)據(jù)加密具有以下幾個特點:
    (1)加密算法要簡單且容易在MCU上實現(xiàn),占用的字節(jié)數(shù)要盡可能少;
    (2)應(yīng)具有較高的加密強度。如果用戶有多臺設(shè)備,就有機會獲得多套密文數(shù)據(jù)。由于設(shè)備和密文數(shù)據(jù)都處于用戶掌控之下,如果加密強度不夠,密文數(shù)據(jù)將很容易被破解,并被非法應(yīng)用到其他設(shè)備;
    (3)加密技術(shù)應(yīng)能識別密文數(shù)據(jù)是否被非法篡改,以防止用戶更改數(shù)據(jù)后再在設(shè)備上試驗,進(jìn)而逐步掌握密文數(shù)據(jù)的加密規(guī)則;
    (4)密文數(shù)據(jù)中應(yīng)包含設(shè)備序列號信息,以防止數(shù)據(jù)被非法應(yīng)用到其他設(shè)備。

3 數(shù)據(jù)加密的實現(xiàn)方法
    
下面介紹的數(shù)據(jù)加密方法已成功應(yīng)用薊某嵌入式設(shè)備中。其基本過程是,先把被加密數(shù)據(jù)通過“置換表”法、數(shù)據(jù)字節(jié)運算等加密算法進(jìn)行加密處理,再把加密后的數(shù)據(jù)根據(jù)一定的規(guī)則隨機地插入到一隨機數(shù)序列中,同時把該數(shù)據(jù)在數(shù)列中的存儲地址插入該數(shù)列的某規(guī)定位置。操作完成后再對該數(shù)列采用“置換表”法進(jìn)行數(shù)據(jù)置換,并采用循環(huán)冗余校驗技術(shù)分段計算數(shù)列的校驗和,并把校驗和插入數(shù)列的規(guī)定位置。該方法加密強度高,代碼量少,運算量小,隨機存儲器需求量小,適合應(yīng)用到嵌入式系統(tǒng)中。
3.1 數(shù)據(jù)加密方法
    
在加密數(shù)據(jù)前,首先產(chǎn)生一隨機數(shù)序列X[i],其中i<N,N為數(shù)組長度(單位為B),其大小可根據(jù)原始數(shù)據(jù)的數(shù)量、加密強度、嵌入式系統(tǒng)的存儲和處理能力等綜合考慮后確定。
    在加密過程中,原始數(shù)據(jù)通過二次尋址的方式插入隨機數(shù)列,這樣數(shù)據(jù)在數(shù)列中的存儲位置可以是隨機的,被加密數(shù)據(jù)的存儲地址是相對固定的。數(shù)據(jù)二次尋址方式原理示意圖如圖3所示。圖中,每次加密操作時原始數(shù)據(jù)0x7E的存儲位置是隨機的,本次加密操作時其存儲地址0x01C2存儲在0x00D9和0x01D8兩個字節(jié)中。


    假設(shè)某數(shù)據(jù)d在隨機數(shù)列中的存儲位置為md(雙字節(jié)),地址md為小于N的隨機數(shù),md在隨機數(shù)列中的存儲位置為nd‘(高字節(jié))和kd‘(低字節(jié)),則原始數(shù)據(jù)d可表述為:
    
    為提高加密強度,數(shù)據(jù)d的存儲地址的存儲地址nd‘和kd‘是偽隨機的,每次加密操作時,其值將分別在地址空間Jnd±F,Jkd±F的范圍內(nèi)變化,其中,Jnd,Jkd分別為數(shù)據(jù)d存儲地址的高、低字節(jié)的存儲基地址,F(xiàn)為存儲地址最大偏移量。這3個量都是事先定義好的。為簡化算法的復(fù)雜程度,降低算法對隨機存儲器的需求,所有原始數(shù)據(jù)基地址的最大偏移量可以設(shè)置成相等。
    加密操作時基地址偏移量的具體值,f隨機,由隨機數(shù)列中某些元素通過規(guī)定的算法運算得到:
    f隨機=F1(X[xa],…,X[xb])            (2)
    式中:xa,…,xb分別為小于N的固定值;F1表示運算規(guī)則。運算規(guī)則可以采用求和再取低幾位、取反求和等各種規(guī)則,但要保證運算結(jié)果f隨機<F。為簡化加密過程,可以在隨機數(shù)列中規(guī)定某段數(shù)據(jù)專門用于產(chǎn)生基地址偏移量。
    考慮到f隨機,則式(1)變?yōu)椋?br />     
    式中:Jnd,Jkd分別是數(shù)據(jù)nd‘和kd‘在隨機數(shù)列X[i]中的基地址;f隨機是本次加密操作的地址偏移量。[!--empirenews.page--]
    另外在把數(shù)據(jù)寫入隨機數(shù)序列X[i]時被寫數(shù)據(jù)也經(jīng)過了變換,變換規(guī)則可以采用高4位與低4位交換、取非、字/字節(jié)循環(huán)移位、XOR等各種方法,只要變換后不破壞數(shù)據(jù)的惟一性即可。設(shè)把數(shù)據(jù)寫入隨機數(shù)序列時的變換規(guī)則為F2,對應(yīng)的反變換表示為,則式(3)變?yōu)椋?br />     
    由于f隨機具有隨機特性,則每次加密數(shù)據(jù)時,數(shù)據(jù)d寫入隨機數(shù)列的位置md具有隨機性、存儲md尋址地址的字節(jié)位置也具有隨機性;這樣就保證了系統(tǒng)每次在加密數(shù)據(jù)時數(shù)據(jù)地址及數(shù)據(jù)地址的存儲地址都是不相同的,大大增加了破譯難度。
    綜上所述,把數(shù)據(jù)d插入隨機數(shù)列的過程是:第1步,產(chǎn)生一隨機數(shù)序列X[i],其中i<N,N為數(shù)組長度;第2步,根據(jù)規(guī)則F1得到基地址偏移量f隨機;第3步,產(chǎn)生一隨機數(shù)md,其中md<N,并且沒有被使用過;第4步,把數(shù)據(jù)d經(jīng)過F2規(guī)則變換后賦值給X[md];第5步,假設(shè)nd‘為數(shù)據(jù)md的高8位,則把nd‘經(jīng)過F2規(guī)則變換后賦值給X[Jmd+f隨機],其中Jnd是加密算法中數(shù)據(jù)d存儲地址的高字節(jié)的存儲基地址。第6步,假設(shè)kd‘為數(shù)據(jù)md的低8位,則把kd‘經(jīng)過F2規(guī)則變換后賦值給X[Jkd+f隨機],其中Jkd是加密算法中數(shù)據(jù)d存儲地址的低字節(jié)的存儲基地址。至此,即完成了一個數(shù)據(jù)插入隨機數(shù)列的過程。
    根據(jù)隨機數(shù)列得到數(shù)據(jù)d的過程是:第1步,根據(jù)規(guī)則F1得到基地址偏移量f隨機,第2步,把X[Jnd+f隨機]經(jīng)規(guī)則變換后賦值給nd‘;第3步,把X[Jkd+f隨機]經(jīng)規(guī)則變換后賦值給kd‘;第4步,X[nd‘<<8+kd‘]經(jīng)規(guī)則變換后即得到原始數(shù)據(jù)d。
3.2 密文數(shù)據(jù)防篡改的方法
    
為防止密文數(shù)據(jù)被非法更改,采用了經(jīng)過改進(jìn)的循環(huán)冗余校驗技術(shù)。即數(shù)列X[i]的字節(jié)x[M]存儲[0,M-1]地址段中所有數(shù)據(jù)的校驗和,x[2M]字節(jié)存儲[M,2M-1]地址段中所有數(shù)據(jù)的校驗和,…,在解密時首先檢查各地址段數(shù)據(jù)的校驗和與“校驗和存儲字節(jié)”的存儲值是否相等,即可判斷數(shù)據(jù)是否被非法更改。假設(shè)M是被計算的數(shù)據(jù)段長度,則:
    
    式中:F2代表數(shù)據(jù)寫入隨機數(shù)列時的變換規(guī)則;k=1,2,…,N/M。
    通過這種方法,密文數(shù)據(jù)中的任何字節(jié)被非法更改,都可以被檢測到。另外被求和的字段長度也可以設(shè)置成不相等,數(shù)據(jù)就更難被破解。
3.3 數(shù)列置換
    
為進(jìn)一步提高加密強度,埋入數(shù)據(jù)后的隨機數(shù)列X[i]還可經(jīng)過“置換表”技術(shù)進(jìn)行加密。在該方法中,置換表Z[i]是關(guān)鍵,它是數(shù)列[0,1,…,255]中的元素再經(jīng)過隨機排列而得到的。設(shè)Z[i]中的數(shù)據(jù)為x[i],則z[i]具有如下特征:
    
    使用兩個或更多的“置換表”,在置換操作時按偽隨機的方式使用每個襲,可以進(jìn)一步提高加密強度。但每增加一個置換襲,嵌入式系統(tǒng)程序中就需要增加一個長度為255 B的數(shù)組,因此置換表的數(shù)量還要根據(jù)加密強度需求、嵌入式系統(tǒng)的存儲和數(shù)據(jù)處理能力等因素確定。

4 結(jié)語
    
接本文所述方法加密后的數(shù)據(jù)是一組沒有任何規(guī)律的偽隨機數(shù),且完全相同的密文數(shù)據(jù)每次加密后都不相同,具有很高的加密強度和防破解能力。另外該加密方法還具有微處理器資源需求小,算法容易實現(xiàn),加、解密運行時間短等優(yōu)點。該加密方法還可應(yīng)用于軟件用戶口令存儲加密、數(shù)字簽名等方面。該技術(shù)現(xiàn)已成功應(yīng)用在某型工業(yè)控制設(shè)備試用狀態(tài)管理和某型機載電子設(shè)備自動測試系統(tǒng)使用權(quán)限管理等數(shù)據(jù)加密領(lǐng)域,取得了很好的應(yīng)用效果。在工業(yè)設(shè)備的試用狀態(tài)管理應(yīng)用中,當(dāng)需要對已經(jīng)交付用戶試用的設(shè)備進(jìn)行工作狀態(tài)設(shè)置時(如試用狀態(tài)升級到正式交付狀態(tài)等),生產(chǎn)廠商只需把密文文件通過互聯(lián)網(wǎng)發(fā)送給用戶,用戶把數(shù)據(jù)拷貝到U盤后再插入設(shè)備的USB口,重新啟動設(shè)備即
可完成,使用起來十分方便。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉