采用SM2算法PKI技术实现嵌入式系统的安全性设计

引言
随着网络技术,特别是互联网技术在我国的迅速推广和普及,各种网络应用,如电子商务、电子政务、网上银行、网上证券交易等项目,也在我国迅猛发展。但是网络非法入侵、诈骗等事件严重影响了网络信息安全。只有不断发展和提高网络信息安全技术,才能保证网络健康发展。在信息安全技术领域,公开密钥基础没施(pki)很好地为互联网提供了安全服务。如今网络应用中的认证、数据的加解密、完整性验证、不可否认性等功能已经离不开pki技术的支持。随着pki密码技术的发展,sm2算法(国际上称之为ecc算法)应用越来越广,效率较之前的算法更高,破解难度更大、更安全。本系统在嵌入式主板上实现sm2算法pki技术,提供基于sm2算法的签名验证、数字信封和解封、数据加解密来实现身份认证,保证网络信息安全交互。
1 系统总体设计
本设计中嵌入式系统的cpu采用三星公司的s3c2440芯片,操作系统采用嵌入式linux作为平台,内存采用6 4 mb sdram,文件存储采用128 mb nandflash,hs32u2-u芯片提供sm2算法。系统的总体设计结构框图如图1所示。
系统各部分结构功能如下:
◆cpu:系统为提供运行、计算以及和各个模块进行通信;
◆ram:为操作系统提供运行空间;
◆flash:提供boot启动程序、内核映像、文件系统;
◆fthernet:提供网络通信接口;
◆sm2:提供sm2算法接口;
◆uart:提供串口调试功能。
2 系统硬件接口
系统cpu通过spi接口访问hs32u2-u芯片,为系统应用提供sm2算法。sm2芯片接口设计如图2所示。
hs32u2-u芯片支持主模式和从模式,支持4种通信模式,数据通行速率可达16 mbps@80 mhz,支持低功耗模式。
主要的spi接口介绍如下:
◆ss:spi从模式选择;
◆sclk:spi串行时钟;
◆mosi:spi主模式输出,从模式输入;
◆miso:spi主模式输出,从模式输入。
三星cpu提供串行时钟频率,按照规定的格式进行数据交互,根据传入的不同格式所代表的不同的命令码,获取不同的数据。
3 系统软件设计
软件系统设汁的结构框图如图3所示。系统软件设计主要包括sm2算法的应用层api和sm2内核层的驱动。应用层api实现系统应用调用sm2算法,例如sm2公私密钥对的产生、sm2签名功能、sm2验证功能、sm2加密功能、sm2解密功能、sm2密钥交换功能以及sm2杂凑功能等。sm2内核层的驱动是sm2驱动通过spi总线实现三星cpu与hs32u2-u芯片低层数据交互。
3.1 bootloader设计
嵌入式系统中,bootloader是必需的。它是在操作系统内核运行之前的一小段程序,就像bios一样。这段程序可以初始化硬件设备,建立内存空间映射图,从而将软件的软硬件环境设置到一个合适的状态,为最终调用操作系统内核准备好环境。
3.2 内核编译选项
根据需要配置内核选项,主要包含:
◆启动传递参数
◆dcvfs文件系统支持
◆芯片及系统类型配置
◆芯片及系统类型配置
◆(dma engine support)dma传输引擎支持
除此之外,在编译内核时还要将spi总线和模块加载的功能选项选中。因为系统最终通过加载模块方式调用sm2算法芯片,同时通过spi总线来交互数据。
3.3 sm2设备系统驱动设计
linux的内核由设备管理、进程管理、内存管理和文件系统组成。linux设备驱动可以分为字符类设备、块类没备、网络接口类设备和其他非标准驱动。spi设备被看做是字符型没备。
每个spi外设都由1个总线号、1个设备号和1个功能号来标识,共有3个访问空间,即内存空间、i/o端口和配置奇存器。每个设备功能郜有一个配置空间,用于决定spi的工作方式和映射到系统中的地址。设备驱动通过模块方式加载到内核中。相关函数代码如下:
3.4 sm2 api设计
由于sm2算法主要有签名验签、加解密、获取hash值等,api函数有sm_hseccsign、sm_hseccsignverify、sm_hseccencrypt、sm_hseccdecrypt、sm_sm3init、sm_sm3update、sm_sm3finalize。通过这些api函数可以实现pki中的身份认证、数据加解密,保证信息安全传递。
数据通信协议的结构如下所示:
通过上述spi通信协议,保证在内核层和应用层数据传递的稳定、可靠。
结语
本系统通过嵌入式系统实现了sm2算法接口,为后续应用系统做好了保障,且已经成功应用在vpn系统以及ca中心。sm2算法效率高、破解难度大。随着信息安全的发展,国家密码管理局已经指定sm2算法取代rsa算法,在今后的应用中会有更大的发展空间。

俄罗斯首个现代化重型火箭 “安加拉 - A5M”计划于 2024 年底发射
基于TOP234Y的电压可调数控开关电源设计
如何读取贴片电阻代码的值
聊聊光伏新能源行业烧录痛点那些事
气压传感器原理_气压传感器的作用_气压传感器应用
采用SM2算法PKI技术实现嵌入式系统的安全性设计
如何选择更合适的工业物联网应用
电池隔膜生产设备
以太网供电设计的理想选择
Littelfuse推出瞬态抑制二极管阵列 为超高速接口提供超低电容ESD保护
真无线蓝牙耳机评测,真无线蓝牙耳机推荐
智能电表怎么看度数和余额
如何正确选择伺服电机和步进电机?
RGB/TTL转CVBS的转换IC介绍
到底什么是天线?天线是怎样发射信号的?
9500B示波器校准仪维修前面板松动 按键失灵故障
5G+北斗强强联合实现高精度定位
用于O-RAN无线解决方案的5G技术设备
AMD在PC处理器市场份额有望超过30%
对比评测〔京东与小米〕AA可循环充电锂电池,论:锂电池替代干电池市场前景!