ACTA Scientiarum Naturalium Universitatis Pekinensis
异步低功耗 RSA电路结构的设计和实现
张奇惠 曹健 曹喜信 于敦山 张兴†
北京大学软件与微电子学院, 北京 102600; † 通信作者, E-mail: zhx@pku.edu.cn
摘要 提出一种适用于智能卡和电子标签的异步低功耗 RSA电路结构及其模乘电路结构, 使用GTECH的优化方法和Brzcallmux的实现策略, 基于TSMC 130 nm CMOS标准工艺进行 ASIC 实现。结果表明, 所提出的异步低功耗RSA的面积最低仅为其他RSA面积的4%, 一次加解密时间最低仅为其他RSA加解密时间的0.216%, 功耗最低仅为其他RSA功耗的16.99%。关键词 异步; 低功耗; RSA; GTECH; ASIC中图分类号 TN492
随着片上网络(NOC)和片上系统(SOC)复杂度和功耗的不断增加, 同步电路设计中的时钟偏移、功耗、多时钟域集成和可复用问题等愈发凸显。异步电路具有低功耗、高平均性能、剔除了全局时钟树、对环境和工艺的高度自适应、更少的电磁辐射噪声、更好的模块化和兼容性等优势[1–3],并且因其对环境变化的自适应性及对数据流控制的固有机制, 在很多场合的效果显著优于同步电路。
RSA 算法是一种非对称加密算法, 在密码学领域具有划时代的意义。RSA加密算法的基本原理是数论原理中的大数分解问题, 是当前应用最广的非对称加密算法, 可以用于加密和数字签名。RSA加密算法的安全性极高, 可以抵抗当前所有的已知
攻击方法, 被国际标准化组织推荐为公钥数据加密标准。
目前, 智能卡和电子标签领域发展迅速, 对于安全性能、成本和功耗的需求也不断增加。目前,已经提出很多同步 RSA 电路结构和安全策略[4–8]。基于请求–应答的握手机制和基于锁存器的存储结构, 使得异步电路技术不仅可以提高安全芯片的抗攻击性能, 还可以有效地降低面积和功耗。因此,开展异步低功耗 RSA 电路的设计和实现研究极具理论和现实意义。
1 异步低功耗RSA 结构
本文提出的异步低功耗 RSA 结构包括 1 个移
位器、1 个模乘器和 4 个选择器, 如图 1 所示。加密电路上电后, 首先锁存明文、幂指数和模; 然后根据幂指数的最低位, 使用MUX2_1和MUX2_2选择用于模乘运算的被乘数为明文或为 1, 并进行模乘运算; 将被乘数和乘数都选择为明文, 进行模幂运算; 使用移位器 SHIFTER 将幂指数右移一位;根据幂指数右移后的最低位, 使用MUX2_3和MUX2_4 选择用于模乘运算的乘数为模幂输出或为1, 并进行模乘运算; 将被乘数和乘数都选择为模幂输出, 进行模幂运算; 重复以上步骤, 直到移位后的幂指数为 0。
本文提出的异步低功耗 RSA 模乘结构包括 1个加法器、3 个减法器、3个移位器和 3 个选择器,如图 2 所示。首先使用移位器 LEFTSHIFTER2 将模左移一位; 然后使用加法器 ADDER 将乘积与被乘数相加, 根据乘数的最低位, 乘积 1 由加法器ADDER 的输出或者乘积通过 MUX2_2 选择得到;乘积 2 由乘积 1 与模通过减法器 SUBTRACTOR3相减得到; 乘积 3 由乘积 1与模左移一位通过减法器 SUBTRACTOR2 相减得到; 根据乘积 2 的最高位和乘积 3 的最高位, 通过 MUX3 选择得到乘积;被乘数 1由被乘数与模通过减法器 SUBTRACTOR1相减得到; 相减结果的次高位控制 MUX2_1 选择被乘数 1 是锁存相减后的结果, 还是锁存被乘数;将被乘数 1 通过移位器 LEFTSHIFTER1 左移一位得到新的被乘数, 将乘数通过移位器 RIGHTSHIFTER右移一位得到新的乘数; 重复以上步骤, 直到移位后的乘数为 0。以上电路采用基于请求–应答的异步握手机制实现, 其基于锁存器的存储结构能够降低电路的面积, 其事件驱动的特性可以达到“极致”精细门控的效果, 能够显著地降低电路的动态功耗。
2 优化方案及实现策略
异步电路的设计方法主要分为 3 类: 基于Petri网的异步设计、基于 VERILOGHDL/VHDL 硬件描述语言的异步设计和基于行为级综合的异步设计。由于需要采用繁琐的网表输入, 所以基于 Petri 网的异步设计只适用于小规模电路。由于需要自定义控制电路以及详细分析电路时序, 所以基于 Veriloghdl/ VHDL硬件描述语言的异步设计需要大量的人工参与, 效率偏低, 不利于工程实现。基于行为级综合的异步设计方法无需过多关注细节, 而将主要精力放在设计本身。本文采用面向语法的行为级综合异
[9]步设计方法, 结合异步 Balsa 综合工具 以及同步EDA工具, 适合大规模异步集成电路的设计和实现。
2.1 基于 GTECH 的优化方法
在 Balsa 推荐的异步电路设计和实现流程中,异步单元库由同步单元库中的基本单元构建得到,经过 Balsa 综合后, 直接得到基于同步基本单元库的门级网表。
采用基于 GTECH 的优化方案, 可有效地降低异步设计的面积和功耗。使用 GTECH 公用单元库构建异步单元库, 然后将由 Balsa 综合后生成的基于 GTECH 的门级网表导入 Design Compiler 中进行综合, 并映射到目标单元库, 生成基于目标单元库的门级网表。结果表明, 未使用 GTECH 优化方
案前, C 单元由 AO222 (34 μm2)实现, 使用GTECH优化方案后,C单元由面积较小的 MAJ3 (14 μm2)实现, 面积降低至原来的43%。
2.2 Brzcallmux 的实现策略
异步 Brzcallmux 单元的实现包括多输入和二输入两种情况。原始的多输入Brzcallmux 由“OR+ C+NKEEP+TRINV”实现, 而有些同步基本单元库中没有实现 NKEEP 和 TRINV 所需要的busholder和 tri-state 门。二输入Brzcallmux由“SRFF+AND +MUX2”实现, 如果不先对 SRFF 的输出赋初值,则无法正确仿真, 并且下载到 FPGA 开发板上功能也将不正确。针对以上两个问题, 本文采用“OR+ C+NAND”的实现策略。实验结果如表 1 所示, 二输入 Brzcallmux_48_2 的面积从1007.6 μm2增加到1367.6 μm2, 而多输入 Brzcallmux_48_8的面积从12124.1 μm2大幅度地降低为6311.2 μm2, 降幅高达 48%。从表 1 可以看出, 与原始实现策略相比,使用“OR+C+NAND”实现的二输入 Brzcallm-ux 的面积稍有增加, 但多输入 Brzcallmux 的面积大幅度降低。
3 实现结果及对比分析
基于 TSMC 130 nm CMOS 标准工艺, 本文提出的异步低功耗 RSA 芯片分别使用 Balsa, Design Compiler, IC Compiler, Starrc 和 Primetime 进行设 计、综合、布局布线、参数提取以及功耗评估, 芯片版图如图 3 所示。
基于 32-bit 位宽, 将本文提出的异步 RSA 分别与其他异步和同步 RSA 进行对比, 结果如表 2所示。
与在 Opencores 上采用相同工艺实现的同步RSA相比, 本文提出的异步低功耗RSA的面积是其面积的 90.2%。与采用 STM 65 nm CMOS 工艺实现的异步 RSA 相比, 本文异步低功耗 RSA 的门数分别仅是其门数的4%和 5.8%。当前异步低功耗RSA 结构中的异步基本单元(如C 单元、S单元和 T单元等)均由同步基本单元搭建, 如果定制这些异步基本单元, 面积还可以再减少 30%[12]。
自动布局布线之后, 将导出的 DEF 文件使用Starrc 进行参数提取, 并生成 SPEF 文件, 然后使用 Primetime 转化为 SDF 文件, 并反标到版图后的门级网表中进行时序仿真, 结果如表 2 所示。由表 2 可知, 执行一次 RSA 加解密所需时间分别为34.084, 104.31, 0.240 和 0.225 μs, 提出的异步低功耗 RSA 的一次加解密时间最少仅为其他 RSA 加解
密时间的0.216%。
采用 6 组不同位长的明文进行加解密操作, 结果如表 2 所示。由表 2 可以看出, 除 Internal 功耗外, 本文提出的异步 RSA 的其他各项功耗和总功耗都是最低的, 总功耗最低值仅为其他 RSA 总功耗的16.99%。
在Opencores上, 同步 RSA 实现的功耗主要消耗在 Internal的功耗上(占总功耗的 92.81%), 而Switching功耗仅占总功耗的7.09%。本文提出的异步RSA的Switching功耗却占总功耗的 20.83%。这是由于异步电路具有较小的存储单元, 因而控制逻辑和握手电路较复杂, 导致 Switching 功耗所占比重较大。
4 结论
本文提出一种异步低功耗 RSA 电路结构及其模乘电路结构, 并进行 ASIC 实现。采用基于请求–应答的异步握手机制进行设计,能够达到精细门控的目的,使得没有参与握手的电路只消耗静态功耗,因此降低了 RSA 电路的功耗。实验结果表明,本文提出的异步低功耗 RSA 芯片的面积最小仅为其他 RSA 面积的 4%, 一次加解密时间最少仅为其他 RSA 加解密时间的 0.216%, 其功耗最低仅是其他 RSA 功耗的 16.99%。如果定制异步基本单元,本文提出的异步低功耗RSA芯片的面积和功耗还可以大幅度地降低。另外, 本文提出的异步低功耗RSA电路结构非常适合应用于集成到智能卡和电子标签中。
参考文献
[1] Spars J, Furber S. Principles of asynchronous circuit design — a systems perspective. Boston: Kluwer, 2001: 3–4 [2] Ebergen J, Finchelstein D, Kao R, et al. An evaluation of asynchronous stacks. IEEE Design & Test of Computers, 2011, 28(5): 52–61 [3] Zhang Q H, Cao J, Cao X X, et al. An asynchronous design method and its application on a low-power RFID baseband processor // IEEE Advanced Information Technology, Electronic and Automation Control Conference. Chongqing, 2017: 328–331 [4] Zhao B, Wang L H, Jiang K, et al. An improved power attack on small RSA public exponent // IEEE International Conference on Computational Intelligence and Security. Wuxi, 2016: 578–581 [5] Huang X M, Wang W. A novel and efficient design for an RSA cryptosystem with a very large key size. IEEE Transactions on Circuits and Systems II: Express Briefs, 2015, 62(10): 972–976 [6] Bhadada R, Sharma A. Montgomery implantation of ECC over RSA on FPGA for public key cryptography application // IEEE International Conference on Emerging Technology Trends in Electronics, Communication and Networking. Surat, 2014: 1–5 [7] Shao C, Li H Y, Zhang X L. Cryptographic implementation of RSA for ion fault injection attack // IEEE Consumer Communications and Networking Conference. Las Vegas, 2014: 791–796 [8] Borodzhieva A N. Software implementation of a module for encryption and decryption using the RSA algorithm // IEEE International Scientific Conference Electronics. Sozopol, 2016: 1–4 [9] Moreira M T, Magalhães F G, Gibiluka M, et al. BABANOC: an asynchronous network-on-chip described in Balsa. IEEE International Symposium on Rapid System Prototyping, 2013, 46(1): 37–43 [10] Matheus M, Bruno O, Julian P, et al. A 65 nm standard cell set and flow dedicated to automated asynchronous circuits design. IEEE International SOC Conference, 2011, 42(4): 99–104 [11] Matheus M, Bruno O, Fernando M, et al. Impact of Celements in asynchronous circuits // IEEE International Symposium on Quality Electronic Design. Santa Clara, 2012: 437–343 [12] Teifel J. Asynchronous cryptographic hardware design. IEEE International Carnahan Conference on Security Technology, 2006, 23(10): 221–227