随着移动互联网和工业智能化的快速发展,以智能网联汽车为中心的车联网逐渐深入人们的生活,车辆之间高效安全的通信需求也成为关注的焦点。密码算法是保障车联网安全的核心技术与基础支撑,为车联网的接入身份认证、交通管理、数据通信等提供安全保障。sm2椭圆曲线公钥密码算法是我国公钥密码一种更先进安全的算法标准,能够在相同密钥长度情况下提供更高的安全性。针对车联网在通信过程中存在的安全威胁、高时延等问题进行研究,提出了一种车联网场景下安全高效的sm2数字签名算法,并对该算法进行了硬件实现。
签名系统设计中选取了NIST(National Institute of Standards and Technology)推荐的m=233的Koblitz椭圆曲线(K-233),在二元域下实现了运算速度快、签名数据短、安全性高的国密sm2数字签名算法。通过搭载Cortex M0的ARM核与FPGA开发板集成了完整的系统,利用ARM核对sm2数字签名算法的读写进行访问控制。首先,针对模乘运算设计了可在一个时钟周期内进行多步迭代计算的方法,从而平衡了速度和资源。其次,对有限域底层运算中最耗时的模逆运算进行优化,利用费马小定理的模逆运算方法,使部分乘法和平方并行计算,节省了时钟周期。最后,基于能够抵抗侧信道攻击的Montgomery点乘核心算法,采用三级流水线结构在Lopez-Dahab投影坐标下对其进行研究。通过硬件设计和算法的优化,点乘的运算速度得到明显提高,从而提高了sm2数字签名算法的签名验签效率。
利用Verilog HDL硬件语言在NIST推荐的二元域K-233曲线上完成sm2数字签名算法的硬件设计后,利用Modelsim仿真软件对所有模块进行了功能测试,并且使用Vivado 2019.1设计工具对系统进行了实验验证。实验结果表明,优化之后,点乘运算效率提升了26.7%,签名运算效率提升了23.8%。相比于传统设计方案具有低开销、更高效的优势,非常适用于车联网这种对时效性和安全性要求特别高的应用场景,课题研究达到了预期研究目标。
暂无评论