历史上的今天
返回首页

历史上的今天

今天是:2025年12月20日(星期六)

2022年12月20日 | 用SM2算法芯片HS32U2-U实现嵌入式系统的安全设计

2022-12-20 来源:21ic

引言
随着网络技术,特别是互联网技术在我国的迅速推广和普及,各种网络应用,如电子商务、电子政务、网上银行、网上证券交易等项目,也在我国迅猛发展。但是网络非法入侵、诈骗等事件严重影响了网络信息安全。只有不断发展和提高网络信息安全技术,才能保证网络健康发展。在信息安全技术领域,公开密钥基础没施(PKI)很好地为互联网提供了安全服务。如今网络应用中的认证、数据的加解密、完整性验证、不可否认性等功能已经离不开PKI技术的支持。随着PKI密码技术的发展,SM2算法(国际上称之为ECC算法)应用越来越广,效率较之前的算法更高,破解难度更大、更安全。本系统在嵌入式主板上实现SM2算法PKI技术,提供基于SM2算法的签名验证、数字信封和解封、数据加解密来实现身份认证,保证网络信息安全交互。

1 系统总体设计
本设计中嵌入式系统的CPU采用三星公司的S3C2440芯片,操作系统采用嵌入式Linux作为平台,内存采用6 4 MB SDRAM,文件存储采用128 MB NANDFlash,HS32U2-U芯片提供SM2算法。系统的总体设计结构框图如图1所示。

a.JPG


系统各部分结构功能如下:
◆CPU:系统为提供运行、计算以及和各个模块进行通信;
◆RAM:为操作系统提供运行空间;
◆Flash:提供boot启动程序、内核映像、文件系统;
◆Fthernet:提供网络通信接口;
◆SM2:提供SM2算法接口;
◆UART:提供串口调试功能。

2 系统硬件接口
系统CPU通过SPI接口访问HS32U2-U芯片,为系统应用提供SM2算法。SM2芯片接口设计如图2所示。

b.JPG

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芯片低层数据交互。

c.JPG


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的工作方式和映射到系统中的地址。设备驱动通过模块方式加载到内核中。相关函数代码如下:
d.JPG

 e.JPG
3.4 SM2 API设计
由于SM2算法主要有签名验签、加解密、获取hash值等,API函数有SM_HsEccSign、SM_HsEccSignVerify、SM_HsEccEncrypt、SM_HsEccDecrypt、SM_SM3Init、SM_SM3Update、SM_SM3Finalize。通过这些API函数可以实现PKI中的身份认证、数据加解密,保证信息安全传递。
数据通信协议的结构如下所示:

f.JPG


通过上述SPI通信协议,保证在内核层和应用层数据传递的稳定、可靠。

结语
本系统通过嵌入式系统实现了SM2算法接口,为后续应用系统做好了保障,且已经成功应用在VPN系统以及CA中心。SM2算法效率高、破解难度大。随着信息安全的发展,国家密码管理局已经指定SM2算法取代RSA算法,在今后的应用中会有更大的发展空间。


推荐阅读

史海拾趣

Harvatek Corporation公司的发展小趣事

背景:随着电子技术的飞速发展,Hantronix始终站在技术创新的前沿。公司不断投入研发资源,致力于开发具有自主知识产权的新产品和技术。

发展:Hantronix成功推出了一系列创新产品,如液晶显示器、图形模块、触摸屏等,这些产品不仅性能卓越,而且设计独特,满足了市场多样化的需求。同时,公司还积极申请专利保护,确保其技术成果得到法律的有效保障。

CONEXANT公司的发展小趣事

作为一家在半导体和通信领域具有深厚技术底蕴的公司,Conexant始终致力于技术创新和市场拓展。在不断变化的市场环境中,Conexant紧跟行业趋势,加大在新技术研发和市场推广方面的投入。通过持续创新和市场拓展,Conexant成功巩固了在行业内的领先地位,并为全球用户提供了更加优质的产品和服务。

这些故事只是CONEXANT公司在电子行业发展中的一部分,它们展示了公司在不同时期的战略决策、技术创新和市场拓展能力。这些成就不仅为CONEXANT公司赢得了业界的尊重和认可,也为整个电子行业的发展做出了重要贡献。

德力西(DELIXI)公司的发展小趣事

1984年,胡成中偕其弟胡成国等人在浙江省乐清市创立了“乐清县求精开关厂”,这便是德力西的前身。当时,企业仅有3位股东,5万元的资本,8名员工,以及单一的热继电器产品。凭借“以质取胜”的经营理念和灵活的机制,德力西在温州市电器行业中逐渐崭露头角。

Diodes Incorporated公司的发展小趣事

值得一提的是,Diodes Incorporated还荣获了亚洲金选奖殊荣。公司的超高功率密度(UHPD)充电器解决方案在亚洲金选奖中获得了金选节能系统功率半导体供货商项目公司奖。这一奖项的获得,不仅彰显了公司在节能系统功率半导体产品领域的领先地位,也进一步提升了公司的品牌形象和市场竞争力。

以上五个故事概述了Diodes Incorporated公司在电子行业中发展起来的相关事实。通过这些故事,我们可以看到公司在技术创新、市场拓展、财务表现以及品牌建设等方面所取得的成就和进步。

创基(CBI)公司的发展小趣事

随着环保意识的不断提高,电子行业对环保的要求也越来越高。CBI公司积极响应国家环保政策,致力于研发环保型电子产品。通过采用环保材料、降低能耗等措施,CBI的产品在环保方面取得了显著成效。这一做法不仅赢得了消费者的青睐,也为公司树立了良好的社会形象。

Eon公司的发展小趣事

在成立初期,E.ON面临着天然气产量下滑而消费量增长的挑战。为了应对这一局面,E.ON开始积极寻找天然气供应渠道,并与俄罗斯天然气工业集团(Gazprom)进行了多轮谈判。虽然初期合作并未如愿,但E.ON并未放弃,通过不断努力和策略调整,最终实现了与Gazprom的合作,为公司的天然气业务发展奠定了坚实基础。

问答坊 | AI 解惑

三洋818s伺服电机怎样提高速度

我这有一套用溧阳92-03伺服电机改三洋818s电机的速度系统,改过后,实际速度只有原来的1/5,请教高手我该怎么处理…

查看全部问答>

求一份hzk16f的点阵字库

是一个16*16的繁体点阵字库,目前只发现pudn这个沙比网站有: http://www.pudn.com/downloads94/sourcecode/others/detail372553.html 希望有账号的大大能帮我下一份 字库就传到eeworld上的资源共享上吧,这样也算是造福大家.....顺便再鄙视一下 ...…

查看全部问答>

DDK编译程序出现的怪现象

DDK可以编译成两种版本。一个Free另外一个好象是Checked版本 有什么不同。 有时候我用Checked编译通过  Free不能通过编译  晕。 还有 VC里面不能 _asm mov ebp,esp 不能修改ebp的值吗?…

查看全部问答>

[zz]首款国产嵌入式软件在线性能分析工具(HoloTrace)面世啦,免费提供DEMO版!

HoloTrace可以做到: ★ 帮助您快速定位复杂软件系统的性能瓶颈,迅速提升产品性能; ★ 帮助您挖掘系统深藏的内存缺陷,不断提升产品质量; ★ 以极短的学习周期和测试过程自动化,为您节约大量的人力成本和时间成本; ★ 以完备的测试数据, ...…

查看全部问答>

EVC中在基于对话框的情况下,怎样不使用按钮就能读取指定的路径呢?

用按钮的打开对话框我会,但是不用按钮直接读取得就不知道怎么弄了? 那位高手可以指点一下呢? 应该用哪个函数呢?…

查看全部问答>

AVR控制W25X16读写不一致

我用的是AVR单片机控制的W25X16读写的结果不一致,找不到原因,我自认为跟SPI的设置有关系 void SPI_Init(void){ SPI_PORT = (1 << SPI_SS) | (1 << SPI_MISO) | (0 << SPI_SCK);//将SS置位输出拉高,MISO输入带上拉 SPI_DDR ...…

查看全部问答>

stm32 i2c问题

我用的是神州stm32103系列的芯片,用开发板提供的程序i2c读写的读写函数放在液晶显示初始化ili9320的初始化程序下面就不能运行,我跟踪了程序,是在i2c读写函数的checkevent这里出现死循环, 导致程序没有办法继续往下执行,求指点,很急。 ...…

查看全部问答>

求高手预测电子设计试题

本帖最后由 paulhyde 于 2014-9-15 03:48 编辑 2012TI杯山东省大学生电子设计竞赛 基本仪器和主要元器件清单 1、基本仪器清单 数字电桥 直流稳压电源 量角器 米尺 四位半数字万用表 0~200℃温度计 秒表 20MHz双路普通示波 ...…

查看全部问答>

【团购】JlinK、STLink,仅30RMB,包邮

JlinK、STLink团购中,仅30RMB,包邮stlink:http://item.taobao.com/item.htm?spm=a1z10.3.w1017-1672293370.12.lzSr7g&id=20027966186&jlink:http://item.taobao.com/item.htm?spm=a1z10.3.w1017-1672293370.9.ref3oQ&id=19557218550& [ 本帖最 ...…

查看全部问答>

在TivaWare1.1版上是不用装仿真器驱动的

呵呵,这次在TI的会议上有个浙大的某老师,让俺给他 演示一下在TivaWare软件上随便运行一个例程,呵呵 问题出来了,他的那台电脑无法连接(CCS5.4)。俺认为 是没有装仿真器驱动,因为俺从EK-LM4F120XL LaunchPad开始装这个软件 的时候是装个仿 ...…

查看全部问答>