关键词:
信息安全
SM9
双线性对
签名验签
摘要:
保障信息安全,在信息时代成为了人们最广泛的需求,而信息安全技术,离不开密码学。国密SM9算法是一种基于椭圆曲线的标识密码算法,由我国自主研发,在我国的商用密码体系中具有重要的意义。目前,SM9算法还面临着成本高、应用不够成熟、计算速度慢等问题。对于SM9算法的实现和研究都对SM9的进一步发展和应用有着重要意义。本文提出了一种基于SoC的软硬件协同实现的SM9签名验签系统。该系统通过硬件实现SM9算法中复杂且耗时的双线性对和椭圆曲线运算,然后通过软件调度实现签名验签的流程。系统以软硬件结合的优势,在提高计算速度的同时,保证了灵活性和通用性。首先,提出了基于SoC的SM9算法实现方法,将算法实现划分为硬件和软件两个部分。提出了整体系统架构,并分层次完成各个功能模块的设计。硬件分为三个层次设计,实现了双线性对、点乘、模幂以及其他的各种模运算和点运算。软件中实现了辅助函数、密钥生成、签名生成和签名验证等功能。然后,本文探究了提升SM9算法计算效率的方法。硬件中采用了蒙哥马利的方法计算模乘以提高计算速度;系统针对硬件结构,对双线性对的计算过程进行改进,以减少硬件寄存器的使用;通过算式的变形和分解,将线函数的计算从十二次扩域的计算转换到二次扩域进行,大大减少了计算时间;软件中,将固定参数的双线性对运算结果进行预存储,使签名验签的步骤得到压缩简化,提高了计算效率。最后,搭建了仿真测试环境,测试系统功能。编写testbench验证硬件模块功能。搭建SoC仿真环境,验证系统的签名验签过程。仿真结果表明,本设计的SM9签名验签系统能够成功完成签名验签过程。在100MHz时钟频率下,系统完成一次签名需要5.45ms,完成一次验签需要10.23ms,性能达到了预期效果。在TSMC90nm工艺下,完成了硬件部分的DC综合,面积约为584k门。