首页|基于二进制域的多位宽数字签名系统的硬件设计

基于二进制域的多位宽数字签名系统的硬件设计

盛志豪

基于二进制域的多位宽数字签名系统的硬件设计

盛志豪1
扫码查看

作者信息

  • 1. 广东工业大学
  • 折叠

摘要

近些年来随着互联网和信息技术的飞速发展,信息安全的问题越来越受到人们的关注,椭圆曲线密码系统ECC(EllipiticCurveCryptography)是现在主流的公钥加密系统RSA(RivestShamirAdleman)的有效替代。2010年国家密码局发布了国产ECC算法标准《SM2椭圆曲线公钥密码算法》,升级代替之前的RSA密码系统。数字签名则是ECC中的一个重要应用,它在如今电子身份加密上有着不可或缺的作用。本文的目标是完成二进制域下SM2多位宽数字签名系统的硬件设计。 本文选取三种位宽163,233,283的一般随机曲线、Koblitz曲线,使系统满足多曲线多功能设计需求。从理论基础,算法设计,硬件实现,功能验证四方面阐述整个系统设计。 首先对密码学基础、有限域、椭圆曲线以及数字签名协议理论进行阐述,并在此基础上提出SM2多位宽数字签名系统的算法架构,基于架构对每个层次的算法进行分析优化。 对于椭圆曲线运算层。一般随机曲线的点乘采用Montgomery点乘算法。通过标量k交换坐标的方式对算法做路径上的合并改进,并将初始化的过程加入点乘循环运算中完善算法。对于Koblitz曲线点乘运算,因为曲线本身的性质,要先将标量k转换成?基表达式形式,因此在?基非相邻表达式(?Non-AdjacentForm,?NAF)生成算法和懒惰约减法的基础上,提出优化的混合坐标输出的懒惰约减法以及混合坐标输入的?NAF生成算法,减少硬件资源消耗。在此基础上将Koblitz曲线的点加倍点运算转化成点加-Frobenius运算,并通过从低位到高位扫描的点乘算法将点加与Frobenius运算并行处理来加速点乘。 对于模运算层,提出组合逻辑实现的模约减方案,使约减运算不消耗任何时钟。采用串并行乘法器的设计思路设计两级KOA(Karatsuba-Ofman)乘法器的硬件架构,完成面积与速率均衡优化。使用ITA(ItohandTsujii’sAlgorithm)算法将模逆运算转换成乘法和平方运算,并在硬件架构中将模逆优化至点加倍点同一层次来共用底层乘法器和平方器,降低硬件资源消耗。 本文使用VerilogHDL语言完成设计,对每一个模块进行功能仿真。对于一般随机曲线,位宽m=163,233,283的在最高工作频率下点乘时间分别为17.8us,25.6us和31.2us。对于Koblitz曲线,点乘时间分别为11.7us,16.5us和19.9us。使用Xilinx公司Artix-7系列进行FPGA(FieldProgrammableGateArray,现场可编程门阵列)原型验证,并通过AHB总线挂载到片上系统(SystemonChip,SOC)进行测试。最后使用SMIC55nm工艺进行DC(DesignCompiler)逻辑综合,确保设计能够无误的进行数字签名验签,密钥生成等工作。本设计消耗的资源约为13.3万门,其中点乘面积约为8.2万门,FPGA消耗资源为24431Slices,最高运行频率达到271.75Mhz。

关键词

椭圆曲线公钥密码算法/数字签名系统/硬件设计/二进制域

引用本文复制引用

授予学位

硕士

学科专业

控制科学与工程

导师

张学习

学位年度

2023

学位授予单位

广东工业大学

语种

中文

中图分类号

TN
段落导航相关论文