用SM2算法芯片實(shí)現(xiàn)嵌入式系統(tǒng)的安全設(shè)計(jì)[圖]

相關(guān)專題: 芯片

引言

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

1 系統(tǒng)總體設(shè)計(jì)

本設(shè)計(jì)中嵌入式系統(tǒng)的CPU采用三星公司的S3C2440芯片,操作系統(tǒng)采用嵌入式Linux作為平臺(tái),內(nèi)存采用64 MB SDRAM,文件存儲(chǔ)采用128 MB NAND Flash,HS32U2U芯片提供SM2算法。

圖1 系統(tǒng)的總體設(shè)計(jì)結(jié)構(gòu)框圖

系統(tǒng)的總體設(shè)計(jì)結(jié)構(gòu)框圖如圖1所示。

系統(tǒng)各部分結(jié)構(gòu)功能如下:

◆ CPU:系統(tǒng)為提供運(yùn)行、計(jì)算以及和各個(gè)模塊進(jìn)行通信;

◆ RAM:為操作系統(tǒng)提供運(yùn)行空間;

◆ Flash:提供boot啟動(dòng)程序、內(nèi)核映像、文件系統(tǒng);

◆ Ethernet:提供網(wǎng)絡(luò)通信接口;

◆ SM2:提供SM2算法接口;

◆ UART:提供串口調(diào)試功能。

2 系統(tǒng)硬件接口

系統(tǒng)CPU通過(guò)SPI接口訪問(wèn)HS32U2U芯片,為系統(tǒng)應(yīng)用提供SM2算法。SM2芯片接口設(shè)計(jì)如圖2所示。

HS32U2U芯片支持主模式和從模式,支持4種通信模式,數(shù)據(jù)通行速率可達(dá)16 Mbps@80 MHz,支持低功耗模式。

主要的SPI接口介紹如下:

◆ SS:SPI從模式選擇;

◆ SCLK:SPI串行時(shí)鐘;

◆ MOSI:SPI主模式輸出,從模式輸入;

◆ MISO:SPI主模式輸出,從模式輸入。

三星CPU提供串行時(shí)鐘頻率,按照規(guī)定的格式進(jìn)行數(shù)據(jù)交互,根據(jù)傳入的不同格式所代表的不同的命令碼,獲取不同的數(shù)據(jù)。

圖2 SM2芯片接口設(shè)計(jì)

3 系統(tǒng)軟件設(shè)計(jì)

圖3 軟件系統(tǒng)設(shè)計(jì)結(jié)構(gòu)框圖

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

3.1 Bootloader設(shè)計(jì)

嵌入式系統(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)境。

3.2 內(nèi)核編譯選項(xiàng)

根據(jù)需要配置內(nèi)核選項(xiàng),主要包含:

◆ 啟動(dòng)傳遞參數(shù)

◆ devfs文件系統(tǒng)支持

◆ 芯片及系統(tǒng)類型配置

◆ 芯片及系統(tǒng)類型配置

◆ (DMA Engine support)DMA傳輸引擎支持

除此之外,在編譯內(nèi)核時(shí)還要將SPI總線和模塊加載的功能選項(xiàng)選中。因?yàn)橄到y(tǒng)最終通過(guò)加載模塊方式調(diào)用SM2算法芯片,同時(shí)通過(guò)SPI總線來(lái)交互數(shù)據(jù)。

3.3 SM2設(shè)備系統(tǒng)驅(qū)動(dòng)設(shè)計(jì)

Linux的內(nèi)核由設(shè)備管理、進(jìn)程管理、內(nèi)存管理和文件系統(tǒng)組成。Linux設(shè)備驅(qū)動(dòng)可以分為字符類設(shè)備、塊類設(shè)備、網(wǎng)絡(luò)接口類設(shè)備和其他非標(biāo)準(zhǔn)驅(qū)動(dòng)。SPI設(shè)備被看做是字符型設(shè)備。

每個(gè)SPI外設(shè)都由1個(gè)總線號(hào)、1個(gè)設(shè)備號(hào)和1個(gè)功能號(hào)來(lái)標(biāo)識(shí),共有3個(gè)訪問(wèn)空間,即內(nèi)存空間、I/O端口和配置寄存器。每個(gè)設(shè)備功能都有一個(gè)配置空間,用于決定SPI的工作方式和映射到系統(tǒng)中的地址。設(shè)備驅(qū)動(dòng)通過(guò)模塊方式加載到內(nèi)核中。相關(guān)函數(shù)代碼如下:

static const struct file_operations spi_fops{

.owner=THIS_MODULE,

.open=spi_open,//設(shè)備打開(kāi)

.read=spi_read,//讀數(shù)據(jù)

.ioctl=spi_ioctl,//控制

.release=spi_release, //釋放SPI

.write=spi_write,//寫數(shù)據(jù)

}//SPI驅(qū)動(dòng)數(shù)據(jù)結(jié)構(gòu)

static int __init spimodule_init(void){

int result;

result=register_chrdev(spi_major,spi_name,&spi_fops);

if(result<0) {

return -1;

}

s3c2440_clkcon=(int *)ioremap(0x4C00000c,3);

spi_gpgcon=(int *)ioremap(0x56000060,4);

spi_gpgdat=(int *)ioremap(0x56000064,4);

spi_gpgup=(int *)ioremap(0x56000068,2);

spi_gpecon=(int *)ioremap(0x56000040,4);

spi_gpedat=(int *)ioremap(0x56000044,1);

spi_gpeup=(int *)ioremap(0x56000048,2);

SPCON0=(int *)ioremap(0x59000000,1);

SPSTA0=(int *)ioremap(0x59000004,1);

SPPIN0=(int *)ioremap(0x59000008,1);

SPPRE0=(int *)ioremap(0x5900000c,1);//波特率設(shè)置寄存器

SPTDAT0=(int *)ioremap(0x59000010,1);//SPI TX DATA REGISTER

SPRDAT0=(int *)ioremap(0x59000014,1);//SPI RX DATA REGISTER

return result;

} //SPI設(shè)備注冊(cè),以及初始化SPI寄存器函數(shù)

3.4 SM2 API設(shè)計(jì)

由于SM2算法主要有簽名驗(yàn)簽、加解密、獲取hash值等,API函數(shù)有SM_HsEccSign、SM_HsEccSignVerify、SM_HsEccEncrypt、SM_HsEccDecrypt、SM_SM3Init、SM_SM3Update、SM_SM3Finalize。通過(guò)這些API函數(shù)可以實(shí)現(xiàn)PKI中的身份認(rèn)證、數(shù)據(jù)加解密,保證信息安全傳遞。

數(shù)據(jù)通信協(xié)議的結(jié)構(gòu)如下所示:

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

結(jié)語(yǔ)

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

參考文獻(xiàn)

[1] 關(guān)振勝.公鑰基礎(chǔ)設(shè)施PKI與認(rèn)證機(jī)構(gòu)CA[M].北京:電子工業(yè)出版社,2002.

[2] 符意德,陸陽(yáng). 嵌入式系統(tǒng)原理及接口技術(shù)[M].北京:清華大學(xué)出版社,2007.

[3] 李俊. 嵌入式設(shè)備驅(qū)動(dòng)開(kāi)發(fā)詳解[M].北京:人民郵電出版社,2008.

[4] Samsung Electronics. S3C2440A 32BIT CMOS MICROCONTROLLER USERS MANUAL[EB/OL].[20111123]. http://www.samsungsemi.com/.

作者:王振 來(lái)源:《單片機(jī)與嵌入式系統(tǒng)應(yīng)用》

我推薦大家讀

輕松參與

VS

表達(dá)立場(chǎng)

這是垃圾文章


微信掃描分享本文到朋友圈
掃碼關(guān)注5G通信官方公眾號(hào),免費(fèi)領(lǐng)取以下5G精品資料
  • 1、回復(fù)“YD5GAI”免費(fèi)領(lǐng)取《中國(guó)移動(dòng):5G網(wǎng)絡(luò)AI應(yīng)用典型場(chǎng)景技術(shù)解決方案白皮書
  • 2、回復(fù)“5G6G”免費(fèi)領(lǐng)取《5G_6G毫米波測(cè)試技術(shù)白皮書-2022_03-21
  • 3、回復(fù)“YD6G”免費(fèi)領(lǐng)取《中國(guó)移動(dòng):6G至簡(jiǎn)無(wú)線接入網(wǎng)白皮書
  • 4、回復(fù)“LTBPS”免費(fèi)領(lǐng)取《《中國(guó)聯(lián)通5G終端白皮書》
  • 5、回復(fù)“ZGDX”免費(fèi)領(lǐng)取《中國(guó)電信5GNTN技術(shù)白皮書
  • 6、回復(fù)“TXSB”免費(fèi)領(lǐng)取《通信設(shè)備安裝工程施工工藝圖解
  • 7、回復(fù)“YDSL”免費(fèi)領(lǐng)取《中國(guó)移動(dòng)算力并網(wǎng)白皮書
  • 8、回復(fù)“5GX3”免費(fèi)領(lǐng)取《R1623501-g605G的系統(tǒng)架構(gòu)1
  • 本周熱點(diǎn)本月熱點(diǎn)

     

      最熱通信招聘

    業(yè)界最新資訊


      最新招聘信息