武漢三江航天網(wǎng)絡(luò)通信有限公司研發(fā)部 王 振
隨著網(wǎng)絡(luò)技術(shù),特別是互聯(lián)網(wǎng)技術(shù)在我國的迅速推過和普及,各種網(wǎng)絡(luò)應(yīng)用,如電子商務(wù),電子政務(wù),網(wǎng)上銀行,網(wǎng)上證券交易等也在我國迅猛發(fā)展。但是網(wǎng)絡(luò)非法入侵、詐騙等嚴(yán)重影響了網(wǎng)絡(luò)信息安全。只有不斷發(fā)展和提高網(wǎng)絡(luò)信息安全技術(shù),才能保證網(wǎng)絡(luò)健康發(fā)展。在信息安全技術(shù)領(lǐng)域,公開密鑰基礎(chǔ)設(shè)施(PKI),很好的為互聯(lián)網(wǎng)提供了安全服務(wù)。如今網(wǎng)絡(luò)應(yīng)用中的認(rèn)證,數(shù)據(jù)的加解密,完整性驗(yàn)證,不可否認(rèn)性等,已經(jīng)離不開PKI技術(shù)的支持。目前通用的軟件算法例如DES,3DES,RC4等在安全上無法得到保證,有些算法已經(jīng)被破解。而SM1算法基于PKI技術(shù),是一種基于硬件芯片的對稱算法,并且是國家密碼管理局明文指定的一種算法。要求在網(wǎng)絡(luò)大數(shù)據(jù)量傳輸?shù)倪^程中,主要是通過對稱算法SM1來實(shí)現(xiàn)數(shù)據(jù)的加解密工作,保證網(wǎng)絡(luò)信息安全交互,而非對稱算法來實(shí)現(xiàn)身份認(rèn)證和唯一性。
圖1 系統(tǒng)總體圖
圖2 SM1芯片接口設(shè)計(jì)
圖3 晶振時(shí)鐘圖
圖4 軟件設(shè)計(jì)圖
系統(tǒng)采用嵌入式系統(tǒng),CPU采用三星公司S3C2440,操作系統(tǒng)采用嵌入式linux,64M SDRAM,128M NAND FLASH,SSX-E提供SM1算法。系統(tǒng)的總體設(shè)計(jì)如圖1。
CPU:提供系統(tǒng)運(yùn)行和計(jì)算以及和各個(gè)模塊進(jìn)行通信;
RAM:提供操作系統(tǒng)運(yùn)行空間;
FLASH:提供boot啟動程序,內(nèi)核映像,文件系統(tǒng);
ETHERNET:提供網(wǎng)絡(luò)通信接口;
SM1:提供SM1算法接口;
UART:提供串口調(diào)試功能。
系統(tǒng)CPU通過32為數(shù)據(jù)總線接口訪問SSX-E芯片,為系統(tǒng)應(yīng)用提供SM1算法。
SSX-E芯片:分組密碼算法芯片,實(shí)現(xiàn)SM1密碼算法。該分組密碼算法的分組長度為128比特,密鑰長度為128比特。具有ECB、CBC和OFB等多種運(yùn)算模式,在32位數(shù)據(jù)總線寬度、ECB模式下運(yùn)算速率可達(dá)到300Mbps以上,可滿足各種條件下的應(yīng)用需求。
主要的接口為:
HD[0:31]:32位數(shù)據(jù)總線;
HA[0:2]:地址總線;
/HCS:芯片片選信號;
/HRD:芯片讀信號;
/HWR:芯片寫信號。
根據(jù)SSX-E器件的要求,外部時(shí)鐘使用50MHZ有源晶振作為芯片的主工作時(shí)鐘,如圖3所示。
系統(tǒng)軟件設(shè)計(jì)主要包括SM1算法的應(yīng)用層API和內(nèi)核層的驅(qū)動。應(yīng)用層API實(shí)現(xiàn)系統(tǒng)應(yīng)用調(diào)用SM1算法例如:ecb模式加密,ecb模式解密、cbc模式加密,cbc模式解密等。內(nèi)核層的驅(qū)動:三星cpu通過32位數(shù)據(jù)總線,與SSX-E芯片交互數(shù)據(jù)。軟件系統(tǒng)設(shè)計(jì)如圖4所示。
嵌入式系統(tǒng)中,bootloader是必須的。它是在操作系統(tǒng)內(nèi)核運(yùn)行之前的一小段程序,就像BIOS一樣。這段程序可以初始化硬件設(shè)備,建立內(nèi)存空間映射圖,從而將軟件的軟硬件環(huán)境設(shè)置到一個(gè)合適的狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核準(zhǔn)備好正確的環(huán)境。
根據(jù)需要配置內(nèi)核選項(xiàng),主要包含:
(1)啟動傳遞參數(shù)
(2)devfs文件系統(tǒng)支持
(3)芯片及系統(tǒng)類型配置
(4)DMA Engine support
(5)MMC/SD/SDIO card support
Linux的內(nèi)核是有設(shè)備管理、進(jìn)程管理、內(nèi)存管理和文件系統(tǒng)組成,linux設(shè)備驅(qū)動可以分為字符類設(shè)備、塊類設(shè)備、網(wǎng)絡(luò)接口類設(shè)備和其他非標(biāo)準(zhǔn)驅(qū)動。SM1設(shè)備被看做是字符型設(shè)備。
每個(gè)SPI外設(shè)都由1個(gè)總線號、1個(gè)設(shè)備號和1個(gè)功能號來標(biāo)示,共有3個(gè)訪問空間,即內(nèi)存空間、I/O端口、和配置寄存器。每個(gè)設(shè)備功能都有一個(gè)配置空間,用于決定SPI的工作方式和映射到系統(tǒng)中的地址。相關(guān)函數(shù):
由于SM1算法主要有:ecb模式加密,ecb模式解密、cbc模式加密,cbc模式解密等,API函數(shù)有:SM1_OpenDev,SM1_CloseDev,SM1_Initdev,SM1_LoadKeyIV,SM1_EcbEncrypt,SM1_EcbDecrypt,SM1_CbcEncrypt,SM1_CbcDecrypt。通過這些API函數(shù)可以對數(shù)據(jù)信息進(jìn)行加解密,當(dāng)黑客截獲數(shù)據(jù)也無法破解,保證信息安全傳遞。
本系統(tǒng)通過嵌入式系統(tǒng)實(shí)現(xiàn)了SM1算法接口,為后續(xù)應(yīng)用系統(tǒng)做好了保障。已經(jīng)成功應(yīng)用在VPN系統(tǒng)以及CA中心。SM1算法效率高,速度快,破解難度大。隨著信息安全的發(fā)展,國家密碼管理局已經(jīng)指定SM1算法作為對稱加解密算法,而禁止使用軟件算法,在今后的應(yīng)用中會有更大的發(fā)展空間。
[1]公鑰基礎(chǔ)設(shè)施PKI與認(rèn)證機(jī)構(gòu)CA[M].北京:電子工業(yè)出版社,2002.
[2]嵌入式系統(tǒng)原理及接口技術(shù)[M].北京:清華大學(xué)出版社,2007.
[3]嵌入式設(shè)備驅(qū)動開發(fā)詳解[M].北京:人民郵電出版社,2008.
[4]S3C2440A 32-BIT CMOS MICROCONTROLLER USER'S MANUAL,2004.