论文部分内容阅读
通讯安全是通讯领域里的一个热点问题。公钥密码体制是目前解决信息安全问题的最有效方法。RSA算法被公认为是目前实际应用中最为成熟和完善的一种公钥密码算法,它既可以用来加密,又可以用来进行数字签名和身份验证。用微电子技术将加密算法转换成硬件实现的ASIC芯片,不仅加解密速度快,而且抗物理攻击能力强,所以研究如何用硬件快速实现RSA公钥密码算法有着重要的现实意义。本课题为教育部科学技术研究重点项目,完成了基于1024位公钥的RSA密码算法的加密芯片设计。
本文介绍了密码学的基本概念,包括数论的基础知识和模运算的概念,分析了RSA密码体制的原理,比较了RSA密码算法的各种VLSI实现算法,并设计了在本芯片中使用的硬件算法。对整个RSA加密芯片的系统结构进行了模块划分,并按照划分的子模块,设计了数据输入输出模块、数据存储模块、模乘计算模块和系统控制模块。系统控制模块由控制状态机构成,模乘计算模块由普通串并乘法器和改进的串并乘法器组成,数据寄存模块由9个寄存器组构成。利用平方运算中被乘数和乘数相同的特点,设计了一种快速平方电路,这种电路克服了使用普通串并乘法器作平方运算时需要先得到整个被乘数的缺点,在对串行到来的数据进行平方运算时,快速平方电路的计算速度比普通串并乘法器提高了1/3。宽位的设计产生了部分控制信号负载较大,延时较长的问题,本文提出了预计算控制信号和利用寄存器传播的方法来解决大负载的信号驱动能力不足的问题。整个设计采用Verilog-HDL语言进行系统级的算法验证,RTL级的电路描述,利用EDA工具进行了仿真、综合,并且完成了版图的设计。在设计过程中采用“Top-Down”的设计方法和“Bottom-Up”的测试方法,设计了一个自动测试平台,能够在无需人工干预的情况下随机产生测试数据,对比测试结果,并生成测试结果报告,提高了测试的效率和准确性。