用SM2算法芯片實現(xiàn)嵌入式系統(tǒng)的安全設計
HS32U2-U芯片支持主模式和從模式,支持4種通信模式,數(shù)據通行速率可達16 Mbps@80 MHz,支持低功耗模式。
主要的SPI接口介紹如下:
◆SS:SPI從模式選擇;
◆SCLK:SPI串行時鐘;
◆MOSI:SPI主模式輸出,從模式輸入;
◆MISO:SPI主模式輸出,從模式輸入。
三星CPU提供串行時鐘頻率,按照規(guī)定的格式進行數(shù)據交互,根據傳入的不同格式所代表的不同的命令碼,獲取不同的數(shù)據。
3 系統(tǒng)軟件設計
軟件系統(tǒng)設汁的結構框圖如圖3所示。系統(tǒng)軟件設計主要包括SM2算法的應用層API和SM2內核層的驅動。應用層API實現(xiàn)系統(tǒng)應用調用SM2算法,例如SM2公私密鑰對的產生、SM2簽名功能、SM2驗證功能、SM2加密功能、SM2解密功能、SM2密鑰交換功能以及SM2雜湊功能等。SM2內核層的驅動是SM2驅動通過SPI總線實現(xiàn)三星CPU與HS32U2-U芯片低層數(shù)據交互。
3.1 Bootloader設計
嵌入式系統(tǒng)中,Bootloader是必需的。它是在操作系統(tǒng)內核運行之前的一小段程序,就像BIOS一樣。這段程序可以初始化硬件設備,建立內存空間映射圖,從而將軟件的軟硬件環(huán)境設置到一個合適的狀態(tài),為最終調用操作系統(tǒng)內核準備好環(huán)境。
3.2 內核編譯選項
根據需要配置內核選項,主要包含:
◆啟動傳遞參數(shù)
◆dcvfs文件系統(tǒng)支持
◆芯片及系統(tǒng)類型配置
◆芯片及系統(tǒng)類型配置
◆(DMA Engine support)DMA傳輸引擎支持
除此之外,在編譯內核時還要將SPI總線和模塊加載的功能選項選中。因為系統(tǒng)最終通過加載模塊方式調用SM2算法芯片,同時通過SPI總線來交互數(shù)據。
3.3 SM2設備系統(tǒng)驅動設計
Linux的內核由設備管理、進程管理、內存管理和文件系統(tǒng)組成。Linux設備驅動可以分為字符類設備、塊類沒備、網絡接口類設備和其他非標準驅動。SPI設備被看做是字符型沒備。
每個SPI外設都由1個總線號、1個設備號和1個功能號來標識,共有3個訪問空間,即內存空間、I/O端口和配置奇存器。每個設備功能郜有一個配置空間,用于決定SPI的工作方式和映射到系統(tǒng)中的地址。設備驅動通過模塊方式加載到內核中。相關函數(shù)代碼如下:
評論