基于RISC-V,和密码协处理器的SOC,设计

明洋,曲英杰

(青岛科技大学信息科学技术学院,山东青岛 266061)

随着工业互联网和物联网关键技术的发展,越来越多的嵌入式设备应用于工业生产和社会应用中,随之而来的网络安全和隐私问题也愈发严重[1-2],IoT(Internet of Things,物联网)设备机器及其传感器所产生的大量的敏感数据需要通过加密的方式进行保存和传输,但是拘泥于其超低的功耗和有限的计算资源无法进行全面有效地部署[3]。

加解密算法可以用软件和硬件两种方式实现,使用软件实现,利用CPU 中原有的计算资源去做数据加解密的效率是非常低的。对延迟敏感的物联网设备,为其扩展加解密专用的协处理器是提高加解密效率的有效解决方式[4-7]。文献[8]基于ARM 平台设计实现了SM2 算法扩展的SOC,但是在实际应用中,为了提高加密效率,经常会使用多种算法复合加密的方式进行[9-10],AES 和RSA 算法分属对称和不对称密码算法,在国际上使用广泛。基于这两种密码算法设计开发密码协处理器,搭配蜂鸟E203 MCU 组成适用于嵌入式应用场景的信息安全SOC。

在开源蜂鸟E203 MCU基础上,通过EAI(Extension Accelerator Interface)接口设计扩展AES、RSA 算法核,整个SOC 的体系结构如图1 所示,EAI 接口是通过RISC-V 指令集中预留的Custom 指令扩展协处理器的接口。协处理器可通过EAI 接口中的存储器访存通道调用E203 核内的存储器资源,配合E203 内核完成加解密的任务。

图1 SOC系统架构

RISC-V 32 位指令集中预留了4 条Custom 指令,指令12-14 位为控制读源寄存器和写目标寄存器的Funct3 区间,25-31 位为作为额外编码空间的Funct7区间。在本设计中,AES 使用Custom0,RSA 使用Custom1,并通过对Funct3 和Funct7 区间进行编码;
如表1 与表2 所示,扩展出加载数据,开始加解密以及写回数据的对应指令。

表1 Custum0扩展指令定义

表2 Custom1扩展指令定义

如图2 所示,密码协处理器核A&R(AES 和RSA)在蜂鸟E203 MCU 两级流水线的位置与核内的ALU(Arithmetic and Logic Unit,算术逻辑单元)平行。当译码器译到Custom 指令时,就会将指令以及所用的操作数通过EAI 接口转发到协处理器中进行二次译码,完成对协处理的控制;
通过EAI 接口的存储器访问通道占用LSU(Load Storage Unit,读写存储器单元),访存MCU 内部的存储器资源,完成数据在MCU 与协处理之间的传输。

图2 协处理器在MCU流水线的位置

如图3 所示,协处理器核主要由控制单元、寄存器堆和AES、RSA 算法核组成。译码器在指令请求通道中译到协处理器对应的Custom 指令,会立刻通过指令反馈通道给MCU 反馈,进入工作态或者进入数据传输状态。协处理器内部设置了5×1 024 bit的寄存器堆,在访问DTCM(Data Tightly Coupled Memory,数据紧耦合存储器)存储的数据时,将数据暂存在寄存器堆中,等待分组数据完整加载后,再传至AES、RSA 算法核进行运算。数据传输完毕后,就会关闭存储器访问通道,使协处理器单独工作。

图3 协处理器系统架构图

为了更高效地利用EAI 接口的存储器访存通道,在协处理内部设计了地址自增的逻辑,使用EAI接口中的32 位数据总线,协处理器可以在32 个周期内完成1 024 位数据的传输。当协处理器完成加解密运算后,会将结果保存到协处理器的Regfile中,AES、RSA 算法核可以继续进行下一组任务,控制器单独响应程序中的写回指令,将计算结果写回到MCU,整个过程在MCU 内软件程序的控制下完成。

2.1 AES算法核设计

AES 算法主要分两部分——加解密算法和密钥扩展算法,是迭代型分组密码算法。加解密运算主要由四种变换组成,分别是SubBytes(S 盒变换)、ShiftRow(行移位变换)、MixColumn(列混合变换)、AddRoundKey(轮密钥加变换)[11]。该文实现的是128 bit 密钥长度的AES 算法,前Nr轮操作相同,Nr+1 轮所做操作缺少MixCloumn,但仍可通过复用前Nr轮的逻辑电路进行运算。

为了降低ASIC(Application Specific Integrated Circuit,专用集成电路)实现的资源开销,摒弃了使用寄存器堆或者RAM(Random Access Memory,随机存取存储器)单元实现S 盒变换的方式,而采用组合逻辑实现。除此之外,为了尽量减少核内寄存器的使用,如图4 所示,采用在线实时产生轮密钥的方法,大量减少保存轮密钥所需的寄存器,且明文密文共享一个寄存器。整个AES 核仅使用4 组128 位的寄存器,较传统实现方法,节省了9 组128 位的寄存器。对于AES 算法中多轮迭代的结构,仅需实现一轮电路通过FSM(Finite State Machine,有限状态机)控制分时复用,大大减少了电路规模。同时,为了保证AES 的加解密速度,并没有采用S 盒复用的架构,AES 核内同时实例化了16 个S盒,保留了AES 算法内部固有的并行性,使得轮逻辑可以高速运行。

图4 AES 的数据路径

2.2 RSA算法核设计

RSA 作为一种经典的非对称密码算法,其可靠性在于大数的因式分解,其系统核心是模幂运算P=ME(modn)。设计采用基于改进的蒙哥马利算法的R-L 扫描法实现模幂运算,算法需要两个操作数进行模乘循环n次实现。如算法1 所示,模乘主要是通过基2 的蒙哥马利算法,转化成模加运算和移位操作实现。

算法1:(改进的蒙哥马利算法)

如图5 所示,RSA 算法核由控制模块(Control),蒙哥马利模乘模块(MM)和寄存器堆(Regfile)组成,参数N,C需要在软件部分提前计算,通过Indata 端口直接输入至RSA 核中,由RSA 核完成模幂运算最终完成加解密流程。为了保证RSA 核的运算速度,MM 模块内部采用脉动阵列结构来解决长进位链的问题。为了减小MM 的面积资源开销,仅实现一行脉动阵列结构,将1 024 位加法分成32 个32 位加法器模块,并进行复用。

图5 RSA的系统架构

考虑到加法器模块的复用,对蒙哥马利模乘模块中的加法器进行了重新设计,如图6 所示,将qi的计算放到模块外,模块由两个32 bit 的加法器组成,中间插入两级寄存器,形成流水线,分别计算Ri中的两次加法。

图6 加法器的结构设计

在华虹40 nm 工艺下单独对AES 进行综合,并对其进行静态时序分析,其主频可达400 MHz,面积为30 805 μm2,经过详细的物理设计后,版图的面积为44 944 μm2(212 μm×212 μm),版图后的静态时序分析结果与综合后的一致。根据设计中的电路结构,13 个时钟周期即可完成一次128 bit 的加/解密,估算数据吞吐率为3.9 Gbps,对比同为逻辑复用结构的低开销ASIC 实现AES 算法的方案,如表3 所示,虽然面积要比同为低开销设计的相关研究要大,但数据吞吐率与面积之比,该设计仍有较大优势。造成这一现象的原因主要是设计的侧重点不同,如文献[12]瞄准的是超小面积,而该文的目的是在速度与面积之间达到平衡。

表3 AES ASIC实现与其他文献的对比

设计中AES 算法核已在SMIC180 nm 工艺下顺利流片,图7为流片后的显微照片。由于IO pad(Input&Output pad,输入输出端口)数量和性能的限制,设计改为8 bit输入输出,芯片尺寸为1 256 μm×1 028 μm,主频可达100 MHz,数据吞吐率达980 Mbps。

图7 AES芯片显微照片

单独对RSA 算法核在华虹40 nm 工艺下综合,所用标准单元面积为94 552 μm2,主频可达到100 MHz,对其进行详细的物理设计后,面积为129 600 μm2(360 μm×360 μm),版图后的静态时序分析结果与综合后一致,根据蒙哥马利模乘模块的运算流程分析,1 024 bit RSA 共需执行1 026 次模乘,单次模乘所需要的时钟周期数为[2×(1 024+2)+1],可以估算一次RSA 加密所需要的时间为20.53 ms,吞吐率估算为49.87 kbps,对比同为低开销ASIC 实现RSA 算法的方案,如表4 所示,所用等效门数与文献[15]相比减少了29.5%。

表4 RSA ASIC实现与文献的对比

在Xlinx-Artix 7 系列开发板上做SOC 的软硬件联合测试,测试之前分别编写使用协处理器和不使用协处理器的C 程序,使用RISC-V 的编译工具编译后,通过JTAG(Joint Test Action Group,联合测试工作组)接口将其上载到FPGA(Field Programmable Gate Array,可编程门阵列)开发板上。通过测试可见,AES、RSA协处理核可以正常进行加解密,如表5、6所示,与没有使用协处理器的AES 和RSA 算法程序相比,128 bit AES 加解密所用的处理器周期数减少为235.42,1 024 bit RSA 所用的处理器周期数减少了240.92。

表5 AES 有/无扩展指令所用时钟周期和指令条数对比

表6 RSA有/无扩展指令所用指令条数核时钟周期对比

面向工业互联网和物联网的加密应用场景,使用EAI 接口将AES、RSA 算法核扩展至蜂鸟E203 MCU上,完成了复合加密场景的RISC-V SOC 的设计,针对协处理器核的ASIC 实现面积资源与运算速度之间的平衡设计。在SOC 的软硬件测试中可以看出,相对于无协处理器,AES 和RSA 的处理速度都得到了很大的提升。

猜你喜欢 加解密存储器寄存器 静态随机存储器在轨自检算法北京航空航天大学学报(2021年6期)2021-07-20Lite寄存器模型的设计与实现计算机应用(2020年5期)2020-06-07二进制翻译中动静结合的寄存器分配优化方法计算机研究与发展(2019年4期)2019-04-18移位寄存器及算术运算应用电子技术与软件工程(2018年1期)2018-03-22PDF中隐私数据的保护方法软件导刊(2017年4期)2017-06-20电子取证中常见数据加解密理论与方法研究网络空间安全(2016年3期)2016-06-15网络数据传输的加解密系统研究软件工程(2014年11期)2014-11-15存储器——安格尔(墨西哥)▲环球时报(2014-06-18)2014-06-18Lx5280模拟器移植设计及实施科技视界(2011年5期)2011-08-22一种存储器容错设计方法空间控制技术与应用(2009年3期)2009-01-20

推荐访问:处理器 密码 设计