◇中國電子科技集團(tuán)公司第二十九研究所 羅熹
在電子設(shè)備上PowerPC與可拆卸存儲設(shè)備互聯(lián)的硬件構(gòu)型下,本文提出合理的加載數(shù)據(jù)的加解密方法。該方法的核心是密鑰分布式存儲。通過密鑰管理機(jī)使用一級密鑰加密隨機(jī)二級密鑰得到三級密鑰。使用二級密鑰加密加載數(shù)據(jù)。通過網(wǎng)絡(luò)將加載的數(shù)據(jù),三級密鑰均分布在可拆卸存儲設(shè)備上不同分區(qū)。PowerPc通過讀取加密的數(shù)據(jù)、三級密鑰,使用一級密鑰及對稱解密算法對加密的三級密鑰進(jìn)行解密得到二級密鑰,再使用二級密鑰對加載的數(shù)據(jù)進(jìn)行解密。使用的加解密算法為256位的AES。
隨著電子設(shè)備技術(shù)的迅猛發(fā)展,基于嵌入式平臺開發(fā)的應(yīng)用逐年增多,而這些應(yīng)用在存儲設(shè)備上讀取加載數(shù)據(jù)是正常運(yùn)行必要步驟。常見的應(yīng)用包括數(shù)據(jù)鏈[5],無人機(jī)加密應(yīng)用等。數(shù)據(jù)加密技術(shù)對于保護(hù)用戶加載數(shù)據(jù)的隱私有著不可替代作用。所謂數(shù)據(jù)加密技術(shù)是指將信息(或稱明文)經(jīng)過加密鑰匙(密鑰)及加密函數(shù)轉(zhuǎn)換,變成無意義的密文,而接收方將此密文經(jīng)過解密函數(shù),解密鑰匙還原成明文的技術(shù)[1]。各種不同的加解密方法包括混合加密算法[2], 數(shù)字混沌加密加密系統(tǒng)[3],多種加密體制混合加密[4],通過增加加解密算法的復(fù)雜度從而提高了破解加解密系統(tǒng)的難度。但上述加解密算法僅從軟件角度考慮了加密算法的復(fù)雜度,未考慮數(shù)據(jù)密鑰分布式硬件存儲。同時(shí),加密密鑰為固定密鑰,無法靈活修改。
常見的嵌入式加解密的架構(gòu)為:加密終端通過對加載數(shù)據(jù)進(jìn)行加密的得到密文數(shù)據(jù),密文數(shù)據(jù)通過信道進(jìn)行傳輸至可拆卸存儲設(shè)備,終端電子設(shè)備的計(jì)算機(jī)功能單元駐留PowerPC讀取可拆卸存儲設(shè)備的加載數(shù)據(jù),使用解密算法對密文數(shù)據(jù)進(jìn)行解密得到明文加載數(shù)據(jù),如圖1所示。
圖1 常見嵌入式加解密方法的架構(gòu)圖
在常見的嵌入式加解密方法中,該方法優(yōu)點(diǎn)為由于密鑰存在于密鑰管理機(jī)的程序中、計(jì)算機(jī)單元的嵌入式軟件中,同時(shí)在信道部分傳輸也是使用的密文進(jìn)行傳輸和存儲,惡意的用戶在獲取可拆卸存儲設(shè)備后無法得到加載數(shù)據(jù)。
該方法的確缺點(diǎn)為密鑰固定,使用對稱加密算法來進(jìn)行加密加載數(shù)據(jù),如DES、3DES、AES等,加解密需要使用相同的密鑰解密。因此,若存于密鑰管理機(jī)及計(jì)算機(jī)單元的嵌入式軟件的密鑰被泄露,所有的按照上述加解密方法的加載數(shù)據(jù)均被破解。設(shè)計(jì)一種每次加載密鑰均不同,同時(shí)密鑰分布式存儲的嵌入式加解密方法便可解決單次密鑰泄露,不會影響所有加載數(shù)據(jù)的問題。
基于嵌入式平臺的分布式密鑰加解密加載數(shù)據(jù)的方法實(shí)現(xiàn)采用下面兩個(gè)部分進(jìn)行闡述:選用數(shù)據(jù)加解密算法[6]和基于嵌入式平臺分布式密鑰的加解密加載數(shù)據(jù)方法整體流程。
AES(Advanced Encryption Standard)高級加密標(biāo)準(zhǔn)是以Rijndael算法為基礎(chǔ)發(fā)展而來。AES加密算法在數(shù)據(jù)處理上以字為基礎(chǔ)單位。常見的AES密鑰長度、分組大小及加密輪數(shù)對應(yīng)關(guān)系如表1所示。本方法采用的是AES256。
表1 AES密鑰長度、分組大小、及加密輪數(shù)對應(yīng)關(guān)系
AES算法主要分為四個(gè)步驟分別為字節(jié)代換,行移位,列混合,輪密鑰四個(gè)步驟。加密為順操作,解密操作與解密操作相同采用逆變換替代原來的變換。
(1)字節(jié)代換。AES的字節(jié)代換就是一個(gè)簡單的查表操作。AES定義了一個(gè)S盒和逆S盒。S盒用來加密,逆S盒用來解密。S盒的變換舉例如下所示。
(2)行變換。AES的行變換是一個(gè)簡單的左循環(huán)移位操作。狀態(tài)矩陣的第0行左移0字節(jié),第1行左移1字節(jié),第2行左移2字節(jié),第3行左移3字節(jié),如圖2所示。
圖2 行變換示意圖
(3)列混合。AES的列混合是指從狀態(tài)中選擇出一列,在將器轉(zhuǎn)變?yōu)槎囗?xiàng)式的基礎(chǔ)上,以固定多項(xiàng)式a(x)進(jìn)行相乘,取其相乘的結(jié)果,以結(jié)果進(jìn)行取模運(yùn)算操作。代表狀態(tài)多項(xiàng)式。具體如下所示:
(4)輪密鑰。AES的輪密鑰是指將256位輪密鑰 同狀態(tài)矩陣中的數(shù)據(jù)進(jìn)行逐位異或操作。
基于嵌入式平臺的分布式密鑰加解密加載數(shù)據(jù)的方法的系統(tǒng)架構(gòu)如下圖3所示。密鑰的分布式體現(xiàn)為密鑰分為三個(gè)不同的等級。這三個(gè)不同等級的密鑰分布在不同的物理設(shè)備上,同時(shí)具有物理隔絕的特點(diǎn)。
圖3 基于嵌入式平臺的分布式密鑰加解密加載數(shù)據(jù)的方法架構(gòu)圖
一級密鑰:使用計(jì)算機(jī)單元的PowerPc生成的一級密鑰僅存在自身的動態(tài)內(nèi)存和存儲在密鑰管理機(jī)的程序中。
二級密鑰:由用戶在對加載數(shù)據(jù)加密時(shí)隨機(jī)生成的二級密鑰。具有隨機(jī)性,同時(shí)該密鑰不會保存。
三級密鑰:密鑰管理機(jī)使用一級密鑰加密二級密鑰得到。存儲于可拆卸存儲設(shè)備中。
該方法的實(shí)現(xiàn)步驟如下所示。
(1)PowerPC通過內(nèi)嵌程序動態(tài)生成一級密鑰。PowerPC的內(nèi)嵌程序使用隨機(jī)數(shù)、行變換,列轉(zhuǎn)秩,數(shù)字替換等方法得到一級密鑰,核心思想為內(nèi)嵌程序中不能出現(xiàn)一級密鑰的明文數(shù)字。
(2)PowerPC生成一級密鑰后告知密鑰管理人員。
(3)密鑰管理機(jī)隨機(jī)生成二級密鑰。
(4)密鑰管理機(jī)使用一級密鑰,使用AES(256位)加密算法,對隨機(jī)二級密鑰進(jìn)行加密得到三級密鑰。
(5)密鑰管理機(jī)使用二級密鑰對加載數(shù)據(jù)進(jìn)行加密。
(6)通過總線傳輸將加載數(shù)據(jù)及三級密鑰進(jìn)行上傳置可卸載存儲設(shè)備上。
(7)可卸載存儲設(shè)備對加載數(shù)據(jù)及三級密鑰進(jìn)行校驗(yàn)和驗(yàn)證,如果通過則加載成功,如果不通過則加載失敗。
(8)可卸載存儲設(shè)備將加載數(shù)據(jù)及三級密鑰進(jìn)行物理分區(qū)隔離放置。
(9)PowerPC內(nèi)嵌程序通過與可拆卸設(shè)備互聯(lián)讀取上面的加載數(shù)據(jù)及三級密鑰。
(10)PowerPC內(nèi)嵌程序在運(yùn)行中使用一級密鑰解密三級密鑰得到二級密鑰。
(11)PowerPC內(nèi)嵌程序在運(yùn)行中使用二級密鑰解密加載數(shù)據(jù)。
本文提出了基于嵌入式平臺的分布式密鑰加解密加載數(shù)據(jù)的方法,并將該方法用于與國外合作研究的某電子設(shè)備。相關(guān)實(shí)驗(yàn)及相關(guān)理論表明,本文提出的方法可以較大的提升加載數(shù)據(jù)加密的方便性、可靠性。該方法采用的加解密算法后續(xù)可考慮采用其他方法進(jìn)行替換,并作進(jìn)一步研究。