文档介绍:上海交通大学
硕士学位论文
公开密钥算法RSA的分析及其IP核的实现与验证
姓名:李佳璐
申请学位级别:硕士
专业:电路与系统
指导教师:周玉洁
20081201
上海交通大学工学硕士学位论文摘要
公开密钥算法 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 位)的速度约为 次/秒,1024
第 I 页
上海交通大学工学硕士学位论文摘要
位模幂速度约为 33 次/秒,性能优良。IP 核支持大于 32 位,小于 2048
位的模幂和模乘运算,采用通用接口设计,利于 SOC 集成,且具备密钥
保护功能,操作简便。
为了达到商用标准,本设计对 RSA IP 核进行了严格的测试验证,包
括功能测试、性能测试和压力测试。遵循经典 ASIC 设计流程,搭建符合
C*Bus 总线时序的仿真环境,做综合,静态时序分析,形式验证,以及
版图设计。本设计在 smic 工艺下最终版图面积小于 1mm2, 在
100Mhz 时钟下满足前端定义的时序约束。
由于 RSA 密钥更换频率较低,为了节省硬件资源,采用嵌入式软件
的方式实现 RSA 密钥生成算法。本设计使用的算法用于生成 1024 位和
2048 位 RSA 密钥,基于国产 32 位 CPU 核(C*CORE C340), 使用硬件真随
机数发生器 HRNG 和 RSA 协处理器进行硬件加速。通过对算法原理和步骤
进行深入分析,提出生成素数的三个步骤:随机产生奇数候选数,预筛
选,素性测试。通过研究和优化预筛选算法,大大提高了产生素数的效
率。分别使用 Euclid 算法和扩展 Euclid 算法求解最大公约数和模逆。最
后根据嵌入式系统的特点对整个算法进行了优化,测试结果与同类产品
相比有一定优势。
关键词:RSA,模幂,模乘,Montgomery,IP,密钥生成
第 II 页
上海交通大学工学硕士学位论文 ABSTRACT
ANALYSIS OF PUBLIC-KEY CRYPTOGRAPHY RSA AND
IP IMPLEMENTATION AND VERIFICATION
ABSTRACT
With the development of electronic business, smart card, USB Key and
other small mobile devices are widely used in areas like traffic and identity
authentication, and are very helpful in people's work and life. Nowadays,
RSA is the most widely-spread public-key cryptography. It is highly
significant to implement RSA in small mobile devices like smart card.
Th