一块用于V2X通信的国密安全芯片设计与验证
2023-06-14汪钊旭,邹雪城,江鸿,孙添平,刘政林
汪钊旭,邹雪城,江鸿,孙添平,刘政林
摘 要:随着车联网的不断发展,人们对车联网系统的安全性也提出了更高的要求。为了保护用户的隐私和人身安全,需要采用加解密算法对车联网通信进行保护。在中国,国密算法是被广泛采用的一种加解密算法,因此,本文设计了一块支持SM2、SM3、SM4算法,用于车联网场景的安全芯片,同时兼容RSA和ECC算法,完成了仿真及FPGA验证并使用55nm工艺库进行了流片。电路总面积为3.98mm2,约1.2×106个MOS管,外设最高工作频率为200MHz,可在2.14M时钟周期内完成一次257位二元扩域点乘运算,具有较高的面积利用率和兼容性。
关键词:国密算法;SOC;安全芯片;SM2
中图分类号:U462.1 文献标识码:A 文章编号:1005-2550(2023)03-0065-06
Design and Verification of a National Security Chip for V2X Communication
WANG Zhao-Xu1, ZOU Xue-cheng1, JIANG Hong2, SUN Tian-ping3, LIU Zheng-lin1
(1.School of Integrated Circuit, Huazhong University of Science and Technology, Wuhan 430074, China; 2.Wuhan Single Cloud Network Technology Co.,Ltd, Wuhan 430072, China;
3. Shenzhen AiXieSheng Technology Co.,LTD, Shenzhen 518101, China)
Abstract: With the continuous development of Telematics, there comes higher requirements for the security of Telematics systems. In order to protect the privacy and personal safety of users, encryption and decryption algorithms need to be used to protect the Telematics communication. In China, the SM algorithm is a widely adopted encryption and decryption algorithm. Therefore,this paper designs a security chip that supports SM2, SM3, and SM4 algorithms, also compatible with RSA and ECC algorithms. The simulation and FPGA verification have been completed and taped out using the 55nm process library. The total area of the circuit is 3.98 mm2, with about 1.2×106 MOS tubes, the maximum peripheral operating frequency is 200 MHz, which can complete a 257-bit binary extended domain dot product operation in 2.14M clock cycles with high area utilization and compatibility.
Key Words: SM Cryptographic Algorithm; SOC; Security Chip; SM2
1 引言
當前,各国政府和产业界正在着力发展智能汽车,据中国汽车工程学会预测,到2025年和2030年,我国网联车销售占比将增长到80%、100%,其销售规模将达到2800万辆、3800万辆。其中车辆与外界的通信是实现辅助驾驶乃至自动驾驶、信息娱乐、出行管理等智能汽车重要功能的基础,汽车专用的V2X(Vehicle-to-Everything)通信将成为未来智能交通系统信息网络的关键组成部分。
V2X系统是一种和用户高度关联的终端设备,会产生大量与个人隐私相关的数据和信息。进行通信时如果不对数据的机密性、可用性和完整性进行保护,用户与车辆会面临非常严重的信息安全风险。2019年7月,IMT-2020(5G)推进组发布《LTE-V2X安全技术》白皮书,该白皮书指出,LTE-V2X车联网系统在业务应用、网络通信、路侧设备和车载终端等多方面都面临安全风险。比如,在接入网络的过程中,车辆面临假冒终端、伪基站、消息窃听/篡改/重放等风险,车载终端和电子控制单元可能会被入侵。
V2X中进行通信的信息包含车辆位置、速度、路况等敏感信息,需要进行加密以保证安全性。目前的加密算法分为对称加密和不对称加密两种,前者安全性较差,对密钥的保密性有严格要求;后者的安全性较好,但是所需的计算量十分庞大。车载安全芯片一般存在算力不足的问题,不足以支撑完全使用不对称加密进行通信。较为常用的方式是使用一次较短的不对称加密传输密钥,再使用对称加密进行通信。这要求安全芯片同时具备对称和不对称加解密的功能。
V2X在通信过程中,对于信息的发送者和接收者需要进行认证,确保信息的来源和目的地可信。同时需要避免某一方在通信过程中发生抵赖行为,对整个系统造成影响。数字签名机制可以同时提供认证功能和防抵赖能力,因此安全芯片也应当具备数字签名功能。
尽管学界提出过一些轻量化车载安全算法,但是只停留在理论研究阶段。由于没有经过大规模,长时间的产品应用,其安全性有待进一步检验。因此在IMT-2020(5G)推进组发布的《LTE-V2X安全技术》白皮书中,建议使用国家密码管理局批准的密码算法保护V2X场景下的通信安全。
SM系列密码算法是由我国国家密码管理局主导研发、制定并推广使用的国家标准密码,近年来陆续成为国际标准,在国内外的产品中都得到了大量应用。SM2算法、SM3算法、SM4算法分别对应于国外Elliptic Curve Cryptography(ECC)不对称加解密算法、Secure Hash Algorithm(SHA)签名算法、Advanced Encryption Standard(AES)对称加解密算法[9]。在性能表现上,SM系列密码优于同类型的国际密码[8]。同时,SM系列密码是由我国研发的,具有自主知识产权。2020年1月1日起施行的《中华人民共和国密码法》鼓励商用密码从业单位采用商用密码推荐性国家标准、行业标准,提升商用密码的防护能力,维护用户的合法权益。
在SM系列算法得到更加广泛应用的同时,依旧有很多以ECC和RSA算法为核心的非对称加密协议仍在使用。由于SM2、ECC和RSA算法具有一定的通用性,因此可以付出較小代价的同时使用单个外设兼容以上三种算法。
目前,国内已经有许多公司成功研发并批量生产出基于国密算法的安全芯片,例如苏州国芯的CCM3310S-T[11]、上海芯钛的Mizar TTM20[12]、国民技术的Z32HUA[13]。但这些商用芯片普遍在兼容性上存在不足之处。例如以上三种芯片均不支持2048位以上的RSA算法,部分国密芯片也不支持高位数的SM2算法。
本文设计并实现了支持SM2,SM3,SM4国密算法同时兼容RSA和ECC算法的安全芯片,以外设方式提供各种国密算法的硬件加速器。其中SM2外设不仅可以完成384位SM2计算,同时兼容ECC和4096位RSA运算。SM3外设可以生成单组和多组的杂凑值。SM4外设可以完成单组和多组的对称加解密。同样配有种类数量丰富的接口,包括Controller Area Network(CAN)总线以及Serial Peripheral Interface(SPI),Inter-Integrated Circuit(I2C),Universal Asynchronous Receiver/Transmitter(UART)接口,以方便V2X在不同场景中的应用。
2 安全芯片结构与外设
2.1 硬件整体架构
硬件架构部分的设计如图1所示:
安全芯片总线矩阵为AHB接口,内核通过总线矩阵与SRAM,DMA外设,AHB总线,APB总线,cache与eflash相连。eflash用来存储指令,与其相连的cache仅用来缓存指令。DMA可以进行I2C,UART和SPI的收发,以加快安全芯片的数据传输速度。AHB总线连接SM2,SM3,SM4外设、I2C,CAN总线和中断控制器。APB总线通过转接模块与总线矩阵连接,上面挂载看门狗,TRNG,计时器和CRC外设以及UART,GPIO,SPI接口。
2.2 外设种类与作用
2.2.1 SM2外设
RSA公钥加密算法是第一个被提出的非对称加密算法,是目前最有影响力的公钥加密算法之一。虽然提出的时间较老,依旧有大量的软硬件在使用这种算法。ECC算法相较RSA算法具有安全性高、计算速度快、存储空间小等优点,有望取代RSA密码体制,成为下一代公钥密码标准。SM2国密算法本质上是适用于基域为素数域和二元扩域的椭圆曲线密码算法。
本文设计的SM2外设不仅支持SM2算法,同时兼容RSA和ECC算法。这是由于这三个算法在算法底层具有通用性。
RSA算法的加密过程需要对明文求公钥的幂之后取模,解密需要对密文求私钥的幂之后取模。显而易见,RSA算法依赖模幂运算,模幂运算则可以被分解为模乘运算。ECC和SM2密码系统需要将私钥与选择的曲线上基点相乘获得公钥,加密时需要进行随机数与基点和公钥的点乘和明文的点加;解密时需要进行私钥与密文的点乘和密文的点加,所以SM2和ECC最核心的运算为点乘和点加运算。同时SM2和ECC算法也需要用到模加减和模逆算法,而模逆可以被分解为模乘。综上所述,RSA、ECC和SM2均可通过几种简单算法的排列组合完成。
SM2外设对外接口为一个AHB总线接口和一个高速时钟接口,ARM处理器通过读写SRAM来送入待计算的数据和取出计算结果;通过读写工作寄存器来配置参数,控制外设的运算。可以实现8个算法:模加减算法、模乘算法、模乘参数Q预计算算法、模幂算法、模逆算法、点的加法、点的倍乘和点的标量乘算法。由于ECC,RSA,SM2均可被分解成以上8种算法的排列组合。因此通过以上8种算法,配合上合适的软件程序即可完成以上三种公钥密码算法的协议。
模乘、模加减和Q值计算算法不依赖其它的算法,因此称为底层算法。模幂、点加和点乘算法只依赖底层算法,称为中层算法;模逆、点的标量乘算法则依赖了中层算法,称为顶层算法。处理器能够直接调用的是模乘、模逆、Q值计算和点的标量乘算法。
底层算法中,模乘使用蒙哥马利算法实现,主要包含华莱士树形三级流水线乘法器和64位双域加法器;Q值的计算电路中主体为状态机和双域乘法器;模加减算法较为简单。只需通过状态机即可实现。中层算法中,模幂算法使用R-L扫描快速幂算法调用模乘实现,R-L算法可以减少使用的模乘次数;点的加法和点的倍乘均通过状态机调用模乘和模加减电路进行运算,由于点的加法和点的倍乘不会在同一时刻同时执行,因此这两者可以共享一片堆栈空间,以达到节省内存空间的效果。顶层算法中,模逆算法使用欧拉定理,将求模逆转化为求模幂,使用状态机调用模幂算法实现;点乘算法使用状态机调用模逆、模乘、点加和点乘算法计算。
以计算消耗的高速时钟周期数衡量该外设的计算用时,则该外设执行一次素数域256位椭圆曲线的点乘运算需要约3M个周期,执行一次二元扩域257位椭圆曲线的点乘运算约2.14M个周期,执行一次4096位RSA私钥运算耗时约74.44M个周期,执行一次4096位公钥运算耗时约0.58M个周期。
2.2.2 SM3,SM4外设
SM3密码杂凑算法可以将任意长度的消息生成固定长度的摘要,用于文件签名和完整性保护。消息分组长度512位,输出长度256位。本文中的SM3外设可以完成单组和多组计算,在200MHz时钟下可以在1ms后完成单组计算,输出256位杂凑值。
SM4密码算法是一个对称加密分组算法,每个分组和密钥长度为128比特。加密算法与密钥扩展算法都采用32轮非线性迭代结构。数据解密和数据加密的算法结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。本文中的SM4外设可以完成单组和多组加密与解密,在200MHz时钟下能在0.3ms输出256位杂凑值。
由于SM3和SM4的结构缺乏内在联系,难以使用同一组硬件完成,因此本文中的SM3和SM4外设分为两个硬件模块实现。本文中的SM3和SM4外设的结构类似,均由接口、寄存器模块、输入FIFO、输出FIFO、计算模块构成。两种外设的主要差别在于其计算模块不同。SM3外设的计算模块主要为压缩模块,SM4外设的计算模块主要为迭代分组模块,由状态机控制。
2.2.3 其余外设种类与作用
本文的国密安全芯片提供了多种外设接口,以方便V2X场景的使用。本文自行设计的CAN外设拥有64字节的接收FIFO,支持11位和29位标识符。除正常发送以外还可以进行只听,自测和单次传输。错误处理方面,拥有错误计数器、可编程的错误警告、错误中断和波特率检测功能。
SPI接口可被配置为主从模式,支持中断,查询和DMA发送数据。支持四线传输,时钟极性和相位可配置。数据宽度可配置为4-16比特。I2C接口可被配置为主从模式,可以通过DMA发送数据,支持7bit 设备地址和从机地址掩码。UART支持中断和DMA传输方式,输出数据可配置为5,6,7,8位,同时支持四种校验方式。停止位位宽可配置为1或2比特。支持错误检测。
本文的国密安全芯片中共有14个中断源,外设,接口和DMA均可触发中断。每个中斷源均可使能或屏蔽,设置优先级,配置成FIQ或者IRQ中断。DMA共有6个通道,分别用于进行UART;SPI;I2C三个接口的收发。数据宽度支持8,16,32位,格式支持大小端。中断可在DMA传输完成和出现错误时触发。
3 软硬件协同验证
3.1 设计与验证平台
本文使用了一台安装有linux系统的服务器,一台安装windows系统的电脑和一块Artix-7系列的FPGA开发板。其中linux系统服务器用于进行硬件设计,可进行verilog编程、仿真与版图绘制;windows系统电脑用于进行软硬件协同验证,安装有C语言调试和硬件烧录工具;FPGA开发板用于硬件验证。
3.2 协同验证流程
3.2.1 软件操作
首先进行工程创建。先编写地址文件,新建工程之后,导入启动文件和核文件。之后导入与本工程对应的寄存器地址文件。编译之后查看有无错误出现。如果没有错误出现,应当进行程序编写,没有错误后在工程设置中选择输出hex文件,生成hex文件备用。
之后下载程序至安全芯片。首先下载FLX文件的模板,根据eflash控制器的手册编写下载算法。将下载算法导入C语言调试工具中,之后选择下载,即可将代码烧录进安全芯片当中。
3.2.2 硬件仿真
硬件仿真需要将C语言调试工具编译生成的hex文件使用脚本进行处理后,生成bin文件并加载进入eflash中。仿真时的tb文件不提供激励,只负责复位并启动安全芯片。激励由hex文件提供。
3.2.3 FPGA验证
在完成硬件仿真,确认仿真中功能正确之后,生成比特文件。之后将比特文件烧写进FPGA开发板中,启动C语言调试工具并下载程序进入安全芯片,进行单步调试及整体功能测试。所有外设测试结果正常,可以完成全部功能,可以正常产生中断。
3.3 性能评估
使用Vivado 2017.4 进行逻辑综合,目标器件为xc7a200tfbg484-2,综合优化策略为默认。综合结果如表所示。从表中可以看到,SM2外设作为最重要的外设,占用了超过一半的主要资源。
本文在后仿时使用55nm工艺库可以实现50 MHz的总线时钟和200MHz的外设时钟。关键路径是从核到cache的路径。生成的芯片数字版图4如图所示。电路总面积为3.98 mm2,约1.2×106个MOS管。
3.4 同类成果对比
表2将本文和其它已有的车联网安全芯片对比,通过比较结果可以看出,本文所提出的用于V2X的安全芯片相较于其它安全芯片,可以计算更高位数的加密算法,同时具备更多的外设接口。总体而言具有较高的兼容性。
4 结束语
本文设计并验证了一块支持国密算法的安全芯片,能够满足V2X场景对高速高安全性的要求。在支持SM2,SM3和SM4算法的同时,带有足够种类的接口。本文对非对称算法外设的兼容性进行了优化,通过挖掘SM2,ECC和RSA三种算法的底层通用性,使得设计可以支持多种非对称加密算法。本文最终完成了设计,通过仿真、FPGA实现验证了逻辑功能的正确性,并进行了流片。
参考文献:
[1]国家密码管理局.GM/T 0003—2012 SM2 椭圆曲线公钥密码算法[S].北京:国家商用密码管理办公室,2012.
[2]国家密码管理局.GM/T 0004—2012 SM3 密码杂凑算法[S].北京:国家商用密码管理办公室,2012.
[3]国家密码管理局.GM/T 0002—2012 SM4分组密码算法[S].北京:国家商用密码管理办公室,2012.
[4]国家密码管理局GM/T 0009,SM2密码算法使用规范[S]. 北京:国家商用密码管理办公室,2012
[5]邹雪城,周家乐,刘文超,刘政林.小面积高兼容性RSA&SM2的硬件实现方法[J].华中科技大学学报(自然科学版), 2019,47(01):79-84.
[6]于哲,支持国密算法SM1-SM4的通用数据安全芯片. 北京市,北京华大智宝电子系统有限公司,2019-01-04.
[7]孙荣燕,蔡昌曙,周洲,赵燕杰,杨金铭.国密SM2数字签名算法与ECDSA算法对比分析研究[J].网络安全技术与应用,2013(02):60-62.
[8]吴志红,赵建宁,朱元,陆科.国密算法和国际密码算法在车载单片机上应用的对比研究[J].信息網络安全,2019(08):68-75.
[9]刘丽敏,王小云,张振峰,王鹏.商用密码算法国际标准提案研究[J].信息技术与标准化,2018(05):17-20.
[10]王小云,于红波.SM3密码杂凑算法[J].信息安全研究,2016,2(11):983-994.
[11]苏州国芯科技股份有限公司. 车载SE芯片CCM3310S-T(车规级)[EB/OL].[2023.3.29].https://www.china-core.com/products_show.php?id=7&xlm=14&lm=14.
[12]上海芯钛信息科技有限公司. Mizar TTM20.[EB/OL].[2023.3.29].http://www.think-tech.com.cn/ProductDetail/2727275.html.
[13]国民技术股份有限公司.产品及解决方案.[EB/OL].[2023.3.29].https://www.nationstech.com/N32A455/.
汪钊旭
华中科技大学本科学历,目前正在攻读华中科技大学博士研究生。研究方向为微电子学与固体电子学。
专家推荐语
饶云华
武汉大学电子信息学院
电子科学与技术 副教授
在车联网行业标准和算法国产化的大背景下,本文针对车联网通信所需的加解密和签名验签算法,设计了一块用于V2X的国密算法SOC,并进行了前仿,后仿与流片。设计的SOC较好的挖掘了不同非对称加密算法之间的底层相似度,相较于以往的产品能支持更高位数的非对称加密算法,拥有更多使用场景。本文格式清晰,条理清楚,具有一定的科研与应用价值。