预览加载中,请您耐心等待几秒...
1/3
2/3
3/3

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

SM2加密算法硬件设计与实现的中期报告 一、课题背景 在信息化发展的今天,加密技术已经成为网络安全的重中之重,特别是在金融、电子商务等行业。SM2算法作为国家密码局推荐的国家密码算法,其具有实现简单、扩展性好、安全性高等特点,被广泛应用于我国数字证书体系和电子政务等领域。因此,对SM2算法的研究和硬件实现具有重要的意义。 二、研究内容 本课题选用VerilogHDL编程语言,设计了一种基于FPGA的SM2加密算法硬件,并完成了部分的模块设计与测试。 1.系统设计 本系统采用流水线的设计方法,分为五个主要模块:输入模块、椭圆曲线点的乘模块、椭圆曲线点的加模块、输出模块和控制单元。 输入模块:将输入的明文、密钥和初始点分别输入到对应的寄存器中,作为加密算法的输入。 椭圆曲线点的乘模块:该模块实现SM2算法中点的倍乘运算,主要包括椭圆曲线点的加、点的双倍乘和点的一般倍乘三个子模块。 椭圆曲线点的加模块:该模块实现SM2算法中椭圆曲线点的加运算,包括对椭圆曲线点的两种情况下的加法运算实现及逻辑判断。 输出模块:将加密结果通过指定的接口输出给使用者,以便使用者进行后续处理。 控制单元:实现整个系统的流程控制,以及各个模块之间的数据传输和状态控制。 2.硬件总体设计 本系统采用了Xilinx公司的Virtex-5系列FPGA芯片,资源可编程、容量大、速度快、性能高。具体设计如下: 位宽设计:对于本系统输入数据的位宽,分别采用64位、128位和256位来处理,以适应不同的计算需求。 存储器设计:为了方便存储输入和输出数据、中间过程数据和有限状态机控制信号,设计了8个存储器单元,分别存储不同的输入参数和中间状态数据。其中,每个存储器单元由4×128(位宽为128)大小的RAM实现,并可随时读取/写入数据。 时钟设计:系统主时钟为50MHz,使用PLL生成100MHz的时钟作为SM2算法中椭圆曲线点的加、点的双倍乘模块的基准时钟,并通过控制单元完成模块之间平滑调度和状态控制。 三、实验进展 在本课题的前期设计阶段中,已基本完成了椭圆曲线点的加、点的双倍乘和点的一般倍乘三个子模块的Verilog语言编写,并能够成功仿真运行。目前已完成以下的实验: 1.逻辑实验 通过ModelSim仿真软件,编写了仿真代码并进行了仿真对比测试,测试结果表明SM2算法在硬件实现上的正确性和可靠性。 2.通信实验 通过串口通信方式,将本系统和PC机本地计算机连接起来,利用PC机的串口助手软件进行数据通信,采用16进制进行输入输出数据的传输。实验结果显示,本系统的数据传输速度快,运行稳定。 3.抗干扰实验 在通信实验的基础上,进行了100MHz、1V的电源干扰测试,结果表明系统具有一定的抗电源干扰能力。 四、存在问题 1.尚未完成对模块硬件的优化设计,需要进一步对SM2加密算法硬件结构优化和升级。 2.系统对输入和输出的数据长度有限制,需要针对不同的数据长度,进一步完善存储器设计。 3.未进行对输入和输出数据的安全性设计,需进一步完善系统的安全性设计。 五、研究展望 在后续的研究中,本课题将重点对下列内容进行深入研究: 1.对SM2算法硬件优化的研究,以提高系统的性能和速度,并进一步降低系统的成本。 2.进一步完善系统的输入、输出安全性设计,以满足金融、电子商务等领域的需求。 3.对SM2算法的加密优化进行研究,以提高加密性能和安全性。 4.对SM2算法在物联网、移动互联网、云计算等领域的应用进行研究,以满足信息科技产业的对安全技术的需求。