《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 用SM2算法芯片HS32U2-U實現(xiàn)嵌入式系統(tǒng)的安全設(shè)計
用SM2算法芯片HS32U2-U實現(xiàn)嵌入式系統(tǒng)的安全設(shè)計
單片機與嵌入式系統(tǒng)
王振 武漢三江
摘要: 本系統(tǒng)通過嵌入式系統(tǒng)實現(xiàn)了SM2算法接口,,為后續(xù)應(yīng)用系統(tǒng)做好了保障,,且已經(jīng)成功應(yīng)用在VPN系統(tǒng)以及CA中心,。SM2算法效率高,、破解難度大,。隨著信息安全的發(fā)展,,國家密碼管理局已經(jīng)指定SM2算法取代RSA算法,,在今后的應(yīng)用中會有更大的發(fā)展空間,。
Abstract:
Key words :

引言
隨著網(wǎng)絡(luò)技術(shù),,特別是互聯(lián)網(wǎng)技術(shù)在我國的迅速推廣和普及,各種網(wǎng)絡(luò)應(yīng)用,,如電子商務(wù),、電子政務(wù)、網(wǎng)上銀行,、網(wǎng)上證券交易等項目,,也在我國迅猛發(fā)展。但是網(wǎng)絡(luò)非法入侵,、詐騙等事件嚴重影響了網(wǎng)絡(luò)信息安全,。只有不斷發(fā)展和提高網(wǎng)絡(luò)信息安全技術(shù),才能保證網(wǎng)絡(luò)健康發(fā)展,。在信息安全技術(shù)領(lǐng)域,,公開密鑰基礎(chǔ)沒施(PKI)很好地為互聯(lián)網(wǎng)提供了安全服務(wù)。如今網(wǎng)絡(luò)應(yīng)用中的認證,、數(shù)據(jù)的加解密,、完整性驗證、不可否認性等功能已經(jīng)離不開PKI技術(shù)的支持,。隨著PKI密碼技術(shù)的發(fā)展,,SM2算法(國際上稱之為ECC算法)應(yīng)用越來越廣,效率較之前的算法更高,,破解難度更大,、更安全。本系統(tǒng)在嵌入式主板上實現(xiàn)SM2算法PKI技術(shù),,提供基于SM2算法的簽名驗證,、數(shù)字信封和解封、數(shù)據(jù)加解密來實現(xiàn)身份認證,,保證網(wǎng)絡(luò)信息安全交互,。

1 系統(tǒng)總體設(shè)計
本設(shè)計中嵌入式系統(tǒng)的CPU采用三星公司的S3C2440芯片,,操作系統(tǒng)采用嵌入式Linux作為平臺,內(nèi)存采用6 4 MB SDRAM,,文件存儲采用128 MB NANDFlash,,HS32U2-U芯片提供SM2算法。系統(tǒng)的總體設(shè)計結(jié)構(gòu)框圖如圖1所示,。

a.JPG


系統(tǒng)各部分結(jié)構(gòu)功能如下:
◆CPU:系統(tǒng)為提供運行,、計算以及和各個模塊進行通信;
◆RAM:為操作系統(tǒng)提供運行空間,;
◆Flash:提供boot啟動程序,、內(nèi)核映像、文件系統(tǒng),;
◆Fthernet:提供網(wǎng)絡(luò)通信接口,;
◆SM2:提供SM2算法接口;
◆UART:提供串口調(diào)試功能,。

2 系統(tǒng)硬件接口
系統(tǒng)CPU通過SPI接口訪問HS32U2-U芯片,,為系統(tǒng)應(yīng)用提供SM2算法。SM2芯片接口設(shè)計如圖2所示,。

b.JPG

HS32U2-U芯片支持主模式和從模式,,支持4種通信模式,數(shù)據(jù)通行速率可達16 Mbps@80 MHz,,支持低功耗模式,。
主要的SPI接口介紹如下:
◆SS:SPI從模式選擇;
◆SCLK:SPI串行時鐘,;
◆MOSI:SPI主模式輸出,,從模式輸入;
◆MISO:SPI主模式輸出,,從模式輸入,。
三星CPU提供串行時鐘頻率,按照規(guī)定的格式進行數(shù)據(jù)交互,,根據(jù)傳入的不同格式所代表的不同的命令碼,,獲取不同的數(shù)據(jù)。

3 系統(tǒng)軟件設(shè)計
軟件系統(tǒng)設(shè)汁的結(jié)構(gòu)框圖如圖3所示,。系統(tǒng)軟件設(shè)計主要包括SM2算法的應(yīng)用層API和SM2內(nèi)核層的驅(qū)動,。應(yīng)用層API實現(xiàn)系統(tǒng)應(yīng)用調(diào)用SM2算法,例如SM2公私密鑰對的產(chǎn)生,、SM2簽名功能,、SM2驗證功能、SM2加密功能,、SM2解密功能,、SM2密鑰交換功能以及SM2雜湊功能等,。SM2內(nèi)核層的驅(qū)動是SM2驅(qū)動通過SPI總線實現(xiàn)三星CPU與HS32U2-U芯片低層數(shù)據(jù)交互。

c.JPG


3.1 Bootloader設(shè)計
嵌入式系統(tǒng)中,,Bootloader是必需的,。它是在操作系統(tǒng)內(nèi)核運行之前的一小段程序,就像BIOS一樣,。這段程序可以初始化硬件設(shè)備,,建立內(nèi)存空間映射圖,從而將軟件的軟硬件環(huán)境設(shè)置到一個合適的狀態(tài),,為最終調(diào)用操作系統(tǒng)內(nèi)核準備好環(huán)境。
3.2 內(nèi)核編譯選項
根據(jù)需要配置內(nèi)核選項,,主要包含:
◆啟動傳遞參數(shù)
◆dcvfs文件系統(tǒng)支持
◆芯片及系統(tǒng)類型配置
◆芯片及系統(tǒng)類型配置
◆(DMA Engine support)DMA傳輸引擎支持
除此之外,,在編譯內(nèi)核時還要將SPI總線和模塊加載的功能選項選中。因為系統(tǒng)最終通過加載模塊方式調(diào)用SM2算法芯片,,同時通過SPI總線來交互數(shù)據(jù),。
3.3 SM2設(shè)備系統(tǒng)驅(qū)動設(shè)計
Linux的內(nèi)核由設(shè)備管理、進程管理,、內(nèi)存管理和文件系統(tǒng)組成,。Linux設(shè)備驅(qū)動可以分為字符類設(shè)備、塊類沒備,、網(wǎng)絡(luò)接口類設(shè)備和其他非標(biāo)準驅(qū)動,。SPI設(shè)備被看做是字符型沒備。
每個SPI外設(shè)都由1個總線號,、1個設(shè)備號和1個功能號來標(biāo)識,,共有3個訪問空間,即內(nèi)存空間,、I/O端口和配置奇存器,。每個設(shè)備功能郜有一個配置空間,用于決定SPI的工作方式和映射到系統(tǒng)中的地址,。設(shè)備驅(qū)動通過模塊方式加載到內(nèi)核中,。相關(guān)函數(shù)代碼如下:
d.JPG

 e.JPG
3.4 SM2 API設(shè)計
由于SM2算法主要有簽名驗簽、加解密,、獲取hash值等,,API函數(shù)有SM_HsEccSign、SM_HsEccSignVerify,、SM_HsEccEncrypt,、SM_HsEccDecrypt、SM_SM3Init,、SM_SM3Update,、SM_SM3Finalize,。通過這些API函數(shù)可以實現(xiàn)PKI中的身份認證、數(shù)據(jù)加解密,,保證信息安全傳遞,。
數(shù)據(jù)通信協(xié)議的結(jié)構(gòu)如下所示:

f.JPG


通過上述SPI通信協(xié)議,保證在內(nèi)核層和應(yīng)用層數(shù)據(jù)傳遞的穩(wěn)定,、可靠,。

結(jié)語
本系統(tǒng)通過嵌入式系統(tǒng)實現(xiàn)了SM2算法接口,為后續(xù)應(yīng)用系統(tǒng)做好了保障,,且已經(jīng)成功應(yīng)用在VPN系統(tǒng)以及CA中心,。SM2算法效率高、破解難度大,。隨著信息安全的發(fā)展,,國家密碼管理局已經(jīng)指定SM2算法取代RSA算法,在今后的應(yīng)用中會有更大的發(fā)展空間,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。