论文部分内容阅读
RSA与ECC加解密算法是非对称加解密技术中基石,也是非对称体制中最为安全与成熟的代表性算法。RSA与ECC不仅在加解密方面有非常高安全性,还能提供数字签名与身份认证等功能。在当下这个对安全性的要求越来越高的时代,密钥位宽因此也变得越来越大,对复杂运算的需求也更加庞大,传统的软件实现已经无法满足高速度与高安全性的要求。因此,硬件化实现非对称的核心算法RSA与ECC具有重要的意义。基于非对称加解密体制,设计了一款可配置的RSA/ECC加解密协处理器。在协议层以上由软件实现,对核心运算采用ASIC实现。首先深入分析了RSA与ECC的各种实现算法,经过比较选择了适合硬件实现的算法。对RSA,模乘层采用经过优化后的Montgomery(蒙哥马利)算法来实现,模幂层采用二进制展开算法实现。对ECC,椭圆曲线使用NIST推荐的基于二进制域GF(2~n)位宽为233的Koblitz曲线,椭圆曲线层采用基于投影坐标系的Montgomery算法实现,有限域层的基础运算分别采用针对硬件优化的算法实现,模逆运算采用基于小费马定理优化后的算法,通过调用有限域上的基础运算来实现模逆。在实现过程中,对硬件资源进行优化,使其在性能方面明显的提高。且对功耗、时序与故障攻击都经过仔细的考虑,有很好的抗旁路攻击特性。在实现过程中,本文首先基于原始算法做了总体框架的设计,然后对硬件实现具体结构进行了优化,再分层分模块完成了RTL级代码的设计。其次,本文设计的配置工具针对面积与速度之间不同的需求,可对位宽,算法以及并行度等方面进行配置。基于可重构/配置计算(Reconfigurable Computing,RC)思想,将设计分为静态可配置与动态可配置两部分。对于静态可配置而言,本文实现了两种方式:1.可通过配置工具进行人机交互,产生相应配置的RTL级代码与仿真环境;2.可对使用Perl实现的脚本进行配置,从而可直接调用相应的模块。对于动态配置而言,大位宽可以向下兼容小位宽,从而减少对资源的浪费。因此,整个设计具有高灵活度的特点。本设计旨在尽量满足各种数据加解密与数字签名中不同应用的不同要求,进而可以直接生成经过验证的Verilog代码,从而大大缩短设计时间,提高产品竞争力。本文对各种不同配置的RSA核与ECC核分别进行了RTL级的设计与验证,列举了各种配置以及并行度的仿真图,并且分析了各个配置下仿真结果的原因。并基于TSMC 28nm的工艺使用DC工具进行了综合,分析不同配置的综合结果。如ECC在全并行的输入下主时钟频率可达到2.38GHz,每秒可实现4×10~6次标量乘。当使用配置工具将RSA算法设置为1024位R-L扫描基2Montgomery全串行时,门资源为21k门,主时钟频率为2.5GHz,每次可达到加解密36000次,一次标量乘仅需27μs,达到最初设计目标。