公开密钥算法RSA的分析及其IP核的实现与验证

公开密钥算法RSA的分析及其IP核的实现与验证

论文摘要

随着电子商务的发展,出现了智能卡、电子钥匙USB KEY等,广泛应用于交通、身份认证等领域,极大的方便了人们的工作和生活。RSA是目前应用最广泛的公开密钥算法,在智能卡等小型移动设备中实现RSA密钥算法,具有十分重大的意义。本设计的设计目标定义为面向低端,兼顾小面积和高性能,设计内容是包括RSA IP核设计和RSA密钥生成在内的一整套RSA算法解决方案。为保证安全性,可支持密钥长度要达到2048比特。本文首先对RSA加解密算法进行了深入分析,确定使用RL方式的二进制扫描算法实现模幂,使用Montgomery CIOS算法实现模乘,详细分析算法参数的选择,并对模平方等算法进行优化。通过软件建模,明确了算法实现的层次,为硬件实现奠定了良好的基础。在IP核设计中,根据设计目标选择32位高基模乘器作为核心硬件结构。之后合理划分层次模块,根据算法优化控制逻辑。在模乘器数据通路中,使用两级流水线,4-2压缩器等技术缩短关键路径,并使用两倍于模乘器字长的T SRAM存储运算中间结果,进一步提高了硬件利用率。存储系统使用5个SRAM存储操作数、中间结果和最终结果,有效缩小IP面积;用反相时钟技术和高效的存储策略,将其他模块与存储系统交互的开销降到最低。最终使IP核实现小面积、高性能,在100Mhz时钟下,2048位模幂(操作数长度均为2048位)的速度约为3.7次/秒,1024位模幂速度约为33次/秒,性能优良。IP核支持大于32位,小于2048位的模幂和模乘运算,采用通用接口设计,利于SOC集成,且具备密钥保护功能,操作简便。为了达到商用标准,本设计对RSA IP核进行了严格的测试验证,包括功能测试、性能测试和压力测试。遵循经典ASIC设计流程,搭建符合C*Bus总线时序的仿真环境,做综合,静态时序分析,形式验证,以及版图设计。本设计在smic 0.18um工艺下最终版图面积小于1mm2,在100Mhz时钟下满足前端定义的时序约束。由于RSA密钥更换频率较低,为了节省硬件资源,采用嵌入式软件的方式实现RSA密钥生成算法。本设计使用的算法用于生成1024位和2048位RSA密钥,基于国产32位CPU核(C*CORE C340),使用硬件真随机数发生器HRNG和RSA协处理器进行硬件加速。通过对算法原理和步骤进行深入分析,提出生成素数的三个步骤:随机产生奇数候选数,预筛选,素性测试。通过研究和优化预筛选算法,大大提高了产生素数的效率。分别使用Euclid算法和扩展Euclid算法求解最大公约数和模逆。最后根据嵌入式系统的特点对整个算法进行了优化,测试结果与同类产品相比有一定优势。

论文目录

  • 摘要
  • ABSTRACT
  • 第一章 绪论
  • 1.1 密码技术简介
  • 1.2 公钥密码系统
  • 1.3 研究动态
  • 1.4 研究背景
  • 1.5 本章小结
  • 第二章 RSA 数学基础及算法原理
  • 2.1 RSA 算法原理
  • 2.2 RSA 加解密算法分析
  • 2.2.1 RSA 模幂运算
  • 2.2.2 RSA 模乘运算
  • 2.2.3 模幂和模乘的结果调整
  • 2.2.4 算法实现层次
  • 2.3 RSA 的安全性分析
  • 2.4 本章小结
  • 第三章 RSA IP 核的RTL 设计
  • 3.1 IP 核技术
  • 3.1.1 IP 软核和硬核
  • 3.1.2 IP 核的特点
  • 3.2 设计目标
  • 3.3 RSA 核心模乘器实现方式
  • 3.3.1 线性脉动阵列
  • 3.3.2 高基模乘器结构
  • 3.3.3 配合Wallace 树的大规模乘法器
  • 3.4 RSA IP 功能
  • 3.5 总体结构框图及接口
  • 3.6 寄存器及操作流程介绍
  • 3.7 控制逻辑
  • 3.7.1 控制逻辑实现方式
  • 3.7.2 顶层控制逻辑——CTRL 模块
  • 3.7.3 模幂、模乘控制逻辑——EXP 模块
  • 3.7.4 小结
  • 3.8 MONTGOMERY 模乘器数据通路
  • 3.9 存储系统
  • 3.10 本章小结
  • 第四章 RSA IP 的测试验证及ASIC 设计流程
  • 4.1 RSA IP 测试
  • 4.1.1 IP 核仿真
  • 4.1.2 FPGA 大量数据测试
  • 4.2 ASIC 设计流程
  • 4.3 逻辑综合
  • 4.4 静态时序分析
  • 4.5 形式验证
  • 4.6 后端版图设计
  • 4.7 本章小结
  • 第五章 RSA 密钥生成的实现
  • 5.1 RSA 密钥生成算法原理
  • 5.2 素数的分布
  • 5.3 随机数生成
  • 5.4 素性测试
  • 5.5 预筛选
  • 5.6 最大公约数和模逆算法
  • 5.7 实现算法的技巧及测试结果
  • 5.8 本章小结
  • 第六章 全文总结
  • 6.1 主要结论
  • 6.2 研究展望
  • 参考文献
  • 符号与标记(附录1)
  • RSA IP SYNTHESIS AREA REPORT (附录2)
  • 致谢
  • 攻读硕士学位期间已发表或录用的论文及专利
  • 上海交通大学硕士学位论文答辩决议书
  • 相关论文文献

    标签:;  ;  ;  

    公开密钥算法RSA的分析及其IP核的实现与验证
    下载Doc文档

    猜你喜欢