新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 數據加密技術在嵌入式系統中的應用

        數據加密技術在嵌入式系統中的應用

        作者: 時間:2013-01-16 來源:網絡 收藏

        2 技術的特點
        所謂技術是指將信息(或稱明文)經過加匙及加密函數轉換,變成無意義的密文,而接收方將此密文經過解密函數、解匙還原成明文的技術。
        技術要求只有在指定的用戶或網絡下,才能解除密碼而獲得原來的數據,因此數據發送方和接收方都需要一些特殊的信息用于加解密,這就是所謂的(或加密算法)。密鑰分為專用密鑰和公開密鑰兩種。中用戶端的密鑰存儲在硬件設備中,因數據存儲芯片在硬件上設置有加密機制,無法被讀取或破譯,因此采用專用密鑰這種簡單的形式即可滿足要求。
        中,“遠程控制端”的密鑰由遠程控制人員掌握,“用戶端”的密鑰存儲在嵌入式系統中,用戶無法得到密鑰數據,就無法破解密文數據,從而無法擅自設置嵌入式設備中需要保護的工作參數和工作狀態。
        根據嵌入式系統的特點及加密技術的應用環境,應用到嵌入式系統時,數據加密具有以下幾個特點:
        (1)加密算法要簡單且容易在MCU上實現,占用的字節數要盡可能少;
        (2)應具有較高的加密強度。如果用戶有多臺設備,就有機會獲得多套密文數據。由于設備和密文數據都處于用戶掌控之下,如果加密強度不夠,密文數據將很容易被破解,并被非法應用到其他設備;
        (3)加密技術應能識別密文數據是否被非法篡改,以防止用戶更改數據后再在設備上試驗,進而逐步掌握密文數據的加密規則;
        (4)密文數據中應包含設備序列號信息,以防止數據被非法應用到其他設備。

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

        本文引用地址:http://www.104case.com/article/148137.htm

        b.JPG


        假設某數據d在隨機數列中的存儲位置為md(雙字節),地址md為小于N的隨機數,md在隨機數列中的存儲位置為nd'(高字節)和kd'(低字節),則原始數據d可表述為:
        c.JPG
        為提高加密強度,數據d的存儲地址的存儲地址nd'和kd'是偽隨機的,每次加密操作時,其值將分別在地址空間Jnd±F,Jkd±F的范圍內變化,其中,Jnd,Jkd分別為數據d存儲地址的高、低字節的存儲基地址,F為存儲地址最大偏移量。這3個量都是事先定義好的。為簡化算法的復雜程度,降低算法對隨機存儲器的需求,所有原始數據基地址的最大偏移量可以設置成相等。
        加密操作時基地址偏移量的具體值,f隨機,由隨機數列中某些元素通過規定的算法運算得到:
        f隨機=F1(X[xa],…,X[xb]) (2)
        式中:xa,…,xb分別為小于N的固定值;F1表示運算規則。運算規則可以采用求和再取低幾位、取反求和等各種規則,但要保證運算結果f隨機F。為簡化加密過程,可以在隨機數列中規定某段數據專門用于產生基地址偏移量。
        考慮到f隨機,則式(1)變為:
        e.JPG
        式中:Jnd,Jkd分別是數據nd'和kd'在隨機數列X[i]中的基地址;f隨機是本次加密操作的地址偏移量。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 宁安市| 花垣县| 长子县| 泽州县| 扎鲁特旗| 武川县| 山西省| 通海县| 惠州市| 明溪县| 卢龙县| 南通市| 巴中市| 张家川| 焉耆| 体育| 淮滨县| 什邡市| 平凉市| 迁西县| 湘西| 调兵山市| 屏边| 麻栗坡县| 巧家县| 肃北| 绥德县| 武穴市| 福鼎市| 南昌市| 怀安县| 泸水县| 安溪县| 丰原市| 华池县| 松原市| 肇庆市| 滦南县| 苏州市| 彭州市| 富平县|