论文部分内容阅读
椭圆曲线数字签名算法是数字签名算法的椭圆曲线版本。它已成为ANSI,IEEE,NIST和ISO的标准,其它的一些组织也正在考虑使其成为标准。与普通的离散对数问题和因数分解问题不同,椭圆曲线离散对数问题没有已知的亚指数算法,所以使用椭圆曲线的算法在密钥的位强度上是足够高的。本文分析了椭圆曲线有限域的基本概念和运算,椭圆曲线运算分成三个层次,自顶向下分别是椭圆曲线密码协议,椭圆曲线上点的运算和有限域运算。并介绍了椭圆曲线密码的安全性基础,离散对数问题,以及如何适当的选择参数组来确保椭圆曲线的安全性。在此基础上介绍了四种签名算法,阐述了椭圆曲线签名算法相对其它算法的优势。本文所设计的椭圆曲线签名模块主要由模乘器,模加器,模逆器,点乘模块和杂凑函数模块等部分组成,采用有限状态机来控制整体模块的工作和模块间的通信,其中本文具体介绍了除了点乘模块以外的四个模块的设计。模乘器采用流水线方式实现改进的蒙哥马利算法提高了实现的并行度,同时有效的缩短了关键路径,改进的模乘器节省了23个时钟周期。模加模块采用串并结合的加法器结构,有效的减小了资源的耗费。模逆模块采用的是有利于硬件实现的扩展的Euclidean算法,将复杂的除法运算转变成简单的移位运算,同时通过对算法具体实现的改进有效的减少了运算需要的总周期数。杂凑函数模块既可以支持从数据的封装到最终的摘要生成,也可以支持直接输入封装完毕的数据。针对每个具体模块采用行为级的模型来验证功能的正确性。当所有基本模块全都完成后完成签名算法顶层的设计,并进行仿真验证,使用Synopsys公司的Design Complier对设计进行了电路的逻辑综合,通过填加一定的约束条件,最终综合后能够达到的最大工作频率为100MHz,单元面积为15.2mm2,功耗为128mW。