论文部分内容阅读
在当今高速发展的电子信息时代,信息安全的问题也日益突出,如何保证在易被攻击的网络中安全的通信成为大家越来越关注的问题。密码学针对信息安全问题派生出数字签名技术,可以保证信息的真实性、完整性和不可抵赖性,而当前椭圆曲线数字签名算法ECDSA以其安全性高、密钥短、运算速度快等优势成为研究的热点。在实时响应的要求下,用软件实现ECDSA椭圆曲线数字签名算法已经不能满足需求,而且容易被恶意攻击。目前已有相关研究用硬件的方式实现椭圆曲线数字签名算法,但主要是针对GF(p)域或GF(2m)域单有限域的运算,而且只支持特定位宽的操作数,适用情况有限,不能随着不同的需求和应用环境的安全性进行灵活的配置。本文基于系统安全性的考虑,首先对椭圆曲线数字签名算法的安全性进行研究,并提出改进措施;然后为了提高运算速度,本文采用软件和硬件协同设计的方式实现椭圆曲线数字签名算法,硬件用于运算模块的加速,软件调用底层硬件运算模块实现算法流程,其中硬件架构采用流水线结构,多个运算单元并行计算的方式;而且本文设计的硬件结构具有很好的可扩展性和灵活性,可以同时支持GF(p)域和GF(2m)域双有限域的运算,并且支持768bit以内的任意位宽的操作数的运算。在完成硬件设计之后,本文基于Modelsim软件对所有的硬件运算模块进行了功能测试,并基于Xilinx KC705对电路进行FPGA测试,分析讨论了不同的设计参数对电路性能的影响。最后,本文还基于SMIC 0.13μm eFlash工艺完成电路ASIC的实现,并且成功流片。测试结果表明,本设计的最高工作频率为109MHz,电路共占用894923.734μm2,即221k等效逻辑门,计算192bit的操作数,GF(p)域完成一次签名时间是562μs,GF(2m)域一次签名的时间是515μs。与相关文献相比,运算速度有所提高,并且能够同时支持双有限域的运算,以及不同位宽操作数的运算,有很好的可扩展性和灵活性。