第30卷第4期北京电子科技学院学报2022年12月Vol.30No.4JournalofBeijingElectronicScienceandTechnologyInstituteDec.2022大数模乘硬件模块的研究与实现∗段晓毅黄烨曹佳乐北京电子科技学院,北京市100070摘要:当前主流公钥密码算法如RSA、各类椭圆曲线加密算法等都会涉及到大数运算,特别是模乘、模幂运算。此类计算资源消耗大、运算处理时间长,成为制约密码算法运行速度的瓶颈,因此设计一款高效的大数模乘模块对于促进公钥密码体系的应用就显得尤为重要。蒙哥马利算法是一种常用的大数模乘算法,基于其算法设计的大数模乘模块结构简单、运算效率较高,且易于硬件实现。本文以蒙哥马利算法为基础,结合数论知识,提出了一种改进的蒙哥马利算法,改进后的蒙哥马利模乘算法结构简单,易于硬件描述实现,然后利用Verilog硬件描述语言完成算法设计,最后进行功能仿真测试,完成蒙哥马利大数模乘硬件模块研究与实现。关键词:蒙哥马利算法;模乘;FPGA;硬件描述语言中图分类号:TM344.1文献标识码:A文章编号:1672-464X(2022)4-15-23∗基金项目:高精尖学科建设基金(项目编号:20210032Z0401,20210033Z0402)∗∗作者简介:段晓毅(1979-),男,副教授,博士,主要研究方向:信息安全。黄烨(1999-),女,硕士在读,主要研究方向:信息安全。曹佳乐(2000-),男,本科,主要研究方向:信息安全。1简介RSA、ECC(EllipticCurveCryptography)算法是常用的公钥算法,而素数域上的模乘运算[1]是公钥加密算法中的基础算法。但在密码体系的运算中,其运算操作数一般是任意大整数,即位数为256bit或以上的数据结构,算法复杂度较大,已经成为影响当前公钥加密体系发展的重要问题。素数域中的模乘算法是最费时的计算,所以为了提升公钥密码系统的计算效率,选择计算速度快、资源耗费少的高效硬件模块非常重要[2]。当前国内外对于大数模乘问题的研究方案大致可分为两种:第一种即利用各类基本算法及其改进算法,通过算法结构构建对应的硬件电路,实现大数模乘功能,例如加法型算法[3]、估商型算法[4]、蒙哥马利算法,其中又以蒙哥马利型算法应用范围最广,相继提出多种改进方式,实现效果良好。另一种则从硬件结构出发,对于硬件架构进行重构,高效利用计算资源,提升模乘计算速度[5],以FPGA细粒度映射技术为例[6],此在各类硬件载体上都有相关运用,例如通过加密智能卡实现[7]。大数模乘在基础研究以及密码学等领域都有大量应用,特别是在公钥密码算法方面[8]。模乘通常情况下表示为:C=(A×B)modN,其中A、B、N都为kbit二进...