高效可配的对称密钥算法硬件架构设计

2015-01-02 07:38金孝飞修思文唐从学严晓浪
计算机工程 2015年9期
关键词:架构设计密钥密码

黄 凯,金孝飞,修思文,唐从学,严晓浪

(1.浙江大学超大规模集成电路研究所,杭州310027;2.中国计量学院光学与电子科技学院,杭州310018;3.杭州朔天科技有限公司,杭州310012)

1 概述

21世纪是信息的时代,信息成为一种重要的战略资源,信息安全对国家安全、社会稳定都有极为重要的作用,因此,必须采取有效的措施确保信息安全。近年来,信息安全领域的理论和技术发展十分迅速,已经取得了许多重要成果[1]。对称密钥算法指加密和解密使用相同密钥,或者加密和解密密钥可以互相推算的算法,有时又称为传统密码算法[2]。对称密钥算法具有算法公开、计算量小、加密速度快、加密效率高等特点,因此,SM4(原SMS4无线局域网算法标准)、AES(Advanced Encryption Standard)、DES(Data Encryption Standard)、RC6[3-6](Ronald L.Rivest 6)等对称密钥算法已经被广泛应用于各类加密通信系统中,用以保证信息安全。由于AES、RC6的密钥长度、数据长度是可选的,本文选定AES-128、RC6-32/20/128作为研究对象。

目前,对于对称密钥的重点研究方向为新型密码的设计、密码体制的软件优化、硬件实现(包括FPGA实现和专用密码芯片)等[1]。虽然软件实现比较灵活,但是运算速率较慢,无法满足高性能的需求;在硬件实现方面,文献[7-8]对AES单个算法进行了FPGA上架构设计实现,并采用单元阵列重构的方式减小电路面积开销;文献[9]对SM4、AES两种对称密钥算法进行可重构的架构设计,其设计思路是将AES的S盒(S盒的功能就是一种“代换”操作,一个n输入、m输出的S盒所实现的是从二元域F2上的n维向量空间到二元域F2上的m维向量空间的映射[2])与逆S盒用逻辑方式[10]构造在同一模块中,然后简单地将SM4算法加入到架构设计中,但其并没有很好地复用 AES中的运算单元;文献[11-12]对部分对称密钥算法SM4,AES,DES和非对称密钥算法RSA,ECC进行可重构架构设计,其主要设计思路是:SM4,AES的S盒采用查找表[10]的方式用RAM实现,同时RSA,ECC需要的大量中间运算结果也存放在RAM中,可以有效减小电路面积。但其缺点是:对于作为S盒的RAM,每次使用都需要被配置,并且使用的RAM越小,为满足算法描述的多个字节变换需要的访问次数越多,严重影响了数据吞吐率。

近年来云计算在信息行业中的使用越来越广泛,其中的信息安全保障往往需要多种对称密钥算法的结合使用[13],已有文献中的设计架构中对称密钥算法只有1~2种,无法满足这种需求。为此,本文设计一种高效可配的对称密钥算法硬件架构,应用基础运算单元可重构的方法,集成多种对称密钥算法,提供一种简单的接口,便于密码用户选取某个(些)密码算法便利、高效地开发加密应用。

2 高效可配的硬件架构设计

2.1 算法分析

笔者分析了多种对称密钥算法的加解密过程所需要的运算逻辑,最终选取 SM4,AES,DES,RC6作为设计对象,因为这些算法不仅应用广泛,而且具有各自不同的设计特点:对于SM4和AES,都是基于整数域上的运算提出的,被称为同构类型的算法;DES,RC6则与其完全不同,被称为异构类型的算法。这样选取的多个算法能够很好地说明本文架构设计的普遍适用性和良好的可扩展性。各算法使用的运算逻辑如表1所示。

表1 各算法使用的运算逻辑

进一步,将这些粗粒度的运算逻辑细分成基础运算逻辑。对于SM4算法,其定义的每一轮运算需要经过 S盒的代换操作[3],而这个 S盒是定义在整数域GF(28)上的乘法和求逆运算:S(x)=A1(A1x+C1)-1+C1,其中,A1和 C1是矩阵变量:

文献[14]提出了一种基于复合域求逆方法的SM4的S盒硬件构造方法,本文参考其设计思想,对SM4选取特征向量 v1、映射矩阵 T1、映射逆矩阵

同时,选取GF(24)域上的模约化等式m(x)=x4+x+1(*),利用整数域上的同构变换,将GF(28)域上的求逆变换转换为同构域GF((24)2)上的求逆变换矢量:

该等式右边的求逆运算可以用组合逻辑简化实现:

从而实现对SM4算法S盒的逻辑方式构造。对于AES算法,其定义的每一轮运算需要经过S盒的代换操作,而解密时的每一轮运算则需要经过逆S盒的代换操作[4],这个S盒及逆S盒是定义在整数域上的乘法和求逆运算:S(x)=A2x-1+C2,S-1(x)=(A2'x+C2')-1,其中,A2,C2是矩阵变量:

AES的每一轮运算还需要列混合操作,这是定义在整数域GF(28)上的矩阵乘法:

文献[15]提出了一种适合AES算法ASIC设计的S盒构造方法,该方法通过整数域上的计算方法将加/解密需要的S盒可重构的设计在一个模块上,同时基于复合域上的求逆的方法进一步减少了电路面积开销。本文参考其设计方法,选取特征向量v2,映射矩阵T2,逆映射矩阵T2:

同样选取(*)式描述的GF(24)域上的模约化等式,将 GF(28)域上的求逆变换转换为同构域GF((24)2)上的求逆变换,从而实现对AES算法S盒及逆S盒逻辑方式的构造。至此,SM4、AES算法的运算简化为整数域上的乘法和与、或运算,而整数域上的乘法可以转化为移位和异或操作。

对于DES算法,置换运算是固定的位扩展和选择,硬件实现非常简单,同时DES需要随机的S盒查找表(LUT,区别于SM4,AES的S盒),必须独立实现。对于RC6算法,其核心运算是模232的加法、减法和乘法操作,而这些运算最终都可以转化为移位和加法操作。最终,得到如表2所示的个算法使用的基础运算逻辑。

表2 各算法使用的基础运算逻辑

2.2 架构设计

按照高效可配的设计需求和一般功能IP核的设计方法,本文给出了密码算法的顶层架构设计,如图1所示。图中的总线接口模块用于连接片上系统(System on Chip,SoC)中的总线,接收密码用户的配置信息、获取密码明文、密文和种子密钥,提供密/明文。寄存器模块用于存储用户的配置信息、模块的状态信息。控制逻辑根据用户的配置信息灵活的生成控制信息,控制加/解密核心选择对应算法的数据通路进行加/解密运算,得到正确的密/明文。加/解密核心模块实现了各个密码算法的运算逻辑。由于SM4、AES的S盒组合逻辑实现方法关键路径延时较大,为改善电路性能,引入了流水线结构,使得密钥扩展部分在密码算法部分前一个时钟周期计算轮密钥,这样密码算法和密钥扩展可以在经过S盒的路径延时不会叠加,具体的流水线结构如图1中stage0和stage1所示,图中各个流水线级由粗线划分。关于S盒的实现细节将在下文介绍。

图1 顶层架构设计框图

图2是密码算法模块的数据通路示意图,密钥扩展模块架构与之类似,且设计方法完全一致。图中各个算法的数据通路均会经过可以共用的基础运算单元,而无法共用的部分则通过多路选择器分开,从左到右依次是 DES,RC6,SM4,AES的数据通路。其中,S盒被简化描述为整数域上的乘法和求逆运算。

图2 密码算法模块

对于同构类型的SM4,AES算法,本文按照整数域上的逻辑运算实现了S盒,如图3所示。其中,⊗指整数域上的乘法;^2指整数域上的乘方;⊕指异或操作;“-1”是前面所述组合逻辑实现的求逆运算。模块在控制信号作用下选择前文描述的具体的矩阵进行整数域上的乘法,以及所需的求逆运算,得到对应的“代换”值,实现 S盒的功能。其中,整数域GF(28)上的求逆运算已经按照前文的描述映射的GF(24)上实现。特别的,为了提高电路的最高主频,对电路进行静态时序分析,找出关键路径即S盒中的路径,对其进行进一步的优化设计,引入如图3所示的流水结构。

图3 SM4和AES的S盒架构框图

以上各个架构中所有的乘法、整数域上的乘法和求逆运算均以基础运算移位、加法及异或的方式实现,与第2.1节中算法分析的结果对应,在此过程中,不同算法的数据通路将进一步得到重用,最终得到本文提出的基于基础运算单元可重构的对称密钥算法硬件架构。

3 实验结果及分析

本节对上文所述使用基础运算单元级可重构方法设计的高效可配的对称密钥算法硬件架构进行了性能测试实验。本文所采用的SoC实验平台结构如图4所示,集成了32位嵌入式处理器 CK803[16]、AHB总线(包括数据总线、地址总线和系统总线)、SRAM(包括指令SRAM和数据SRAM)以及本文设计的对称密钥算法模块。为了简化实验,在进行吞吐率测试时,本文的验证平台不考虑处理器和总线实际的极限频率,均在算法模块可以达到的200 MHz下进行仿真。测试程序通过配置寄存器输入密码明/密文数据以及所需密钥,选取相应的算法进行加解密测试。为了更好地与参考文献中提供的性能指标进行对比,对于同时实现本文算法和其他算法的,本文按照文献中提出的设计方法,相应的重现了其相同算法部分的电路架构;由于不同文献中对电路的实现存在工艺上的差别,本文对各种架构均作了等效电路门数(与非门)的转化;对于数据吞吐率也在100 MHz下做了归一化处理。

图4 SoC实验平台结构

表3列出了参考文献中各种架构设计的性能指标,包括实现的算法、工艺、电路面积开销、数据吞吐率和电路最高主频,同时最后给出了按照本文架构设计所对应的实验数据。

表3 现有密码算法架构的性能指标

3.1 电路面积开销和最高频率

实验使用综合工具Design Compiler基于SMIC 0.13 μm 逻辑工艺,时序约束 200 MHz,采用“compile_ultra-scan”参数,根据实验对象所实现的具体算法,对所设计的对称密钥算法模块的RTL代码进行综合,统计相应的电路面积和电路最高主频。图5的结果显示,电路面积开销方面,本文构在实现单一算法和实现2种~3种算法时都有3%以上的优势。其原因在于:实现单个AES算法时,本文采用组合逻辑方式实现S盒,相较于文献[7]采用的查找表方式面积有明显的优势;在实现多个算法时,不仅S盒的面积体现优势,基础运算单元可重构方法使得整体电路结构更加紧凑,有效缩减了电路面积。

图5 各架构的电路面积比较

图6的结果显示本文架构的电路最高主频仅低于文献[7]架构,而与其他架构持平或有9%以上的优势,并且200 MHz的主频能够符合广泛的设计需求。本文架构设计在考虑面积优势的情况下,为满足200MHz的时序要求,对于AES和SM4算法的密钥扩展和加密算法在连续的不同时钟周期进行S盒的替换操作,有效缩减组合逻辑路径延时,达到设计需求;同时,为了进一步提升电路最高主频,增强电路性能,对S盒的设计增加了流水线结构。

图6 各架构的最高主频

3.2 数据吞吐率

实验使用仿真工具VCS在200 MHz频率下对加解密测试程序进行仿真,统计数据吞吐率绝对值,并计算吞吐率与电路面积的比值作为性能指标。图7是本文架构设计中各算法的单位面积吞吐率。由于不同算法和相同算法的加解密部分定义形式不同,需要的加/解密轮数不同,因此各算法之间以及相同算法的加解密之间数据吞吐率存在一定的差异。

图7 应用本文架构实现各算法的单位面积吞吐率

图8是本文与其他架构在实现不同算法时的情况对比,图8(a)显示实现单一算法时(AES),本文架构有12%以上的优势;图8(b)和图8(c)分别显示在实现2种算法:AES+DES以及SM4+AES时,本文架构均有明显的优势。图8(d)显示在实现SM4+AES+DES 3种算法时,本文架构有24%以上的优势。

图8 不同架构的单位面积吞吐率对比

其原因在于,一方面本文利用基础运算单元可重构的方法设计的电路面积很小;另一方面本文按照各个密码算法的定义每一轮变只消耗一个时钟周期(除了SM4和AES算法的加密部分引入流水线结构需要额外的多消耗一个时钟周期)使得完成一次加解密操作需要的时钟周期数最少,数据吞吐率绝对值高。因此,本文架构的单位面积吞吐率较高。

4 结束语

本文利用基础运算单元可重构的方法,设计并实现了高效可配的对称密钥算法硬件架构,在满足各类技术指标(包括电路面积开销、最高频率、数据吞吐率等)的情况下,提供一种简单的用户接口,使得选取某个(些)密码算法开发通信系统变得便利、高效,同时根据这种方法设计的硬件架构具有很好的扩展性。该架构电路面积小、数据吞吐率(包括单位面积吞吐率)高,电路最高主频满足实际应用需求。此外,由于本文使用基础运算单元级的重构方法,新的对称密钥算法将很容易地集成设计到新的架构上,具有较好的扩展性,能进一步满足多种对称密钥算法的应用设计需求。

由于本文没有特别考虑密码攻击的情况,所设计架构对于对差分能量攻击[17]等能量攻击方法的抵抗能力可能存在缺陷,因此下一步将研究在保证当前架构设计性能的情况下增加相应的抗攻击能力。

[1] 沈昌祥,张焕国,冯登国,等.信息安全综述[J].中国科学 E 辑:技术科学,2007,37(2):1-22.

[2] Stinson D R.Cryptography Theory and Practice[M].[S.l.]:CRC Press,2006:58-66.

[3] Liu Fen,Wen Ji,Hu Lei,et al.Analysis of the SMS4 Block Cipher[C]//Proceedings of the 4th Australasian Conference on Information Security and Privacy.Berlin,Germany:Springer,2007:158-170.

[4] Joan D,VincentR.Advanced Encryption Standard(AES)[Z].National Institute of Standards and Technology,2001.

[5] Coppersmith D,Holloway C,Matyas S,et al.The Data Encryption Standard[J].Information Security Technical Report,1997,2(2):22-24.

[6] Rivest R,Robaw M,Sidney R,et al.The RC6 Block Cipher V1.1[Z].National Institute of Standards and Technology,1998

[7] Banu R,Vladimirova T.Fault-tolerantEncryption for Space Applications[J].IEEE Transactions on Aerospace and Electronic Systems,2009,45(1):266-279.

[8] Li Hongge,DingJinpeng,Pan Yongjun.CellArray Reconfigurable Architecture forHigh-efficiency AES System[J].Microelectronics Reliability,2012,52(11):2829-2836.

[9] Yan Weiwei,YouKaidi,Han Jun,etal.Low-cost Reconfigurable VLSI Implementation of the SMS4 and AES Algorithms[C]//Proceedings of the 8th IEEE International Conference on ASIC.Washington D.C.,USA:IEEE Press,2009:135-138.

[10] Morioka S,Satoh A.An Optimized S-Box Circuit Architecture for Low Power AES Design[C]//Proceedings of the Workshop on Cryptographic Hardware and Embedded Systems.San Francisco,USA:[s.n.],2002:172-186.

[11] Li Chao,Zhou Jun,Jiang Yuan,et al.Reconfigurable and Scalable Architecture for Security Coprocessor[C]//Proceedings of the 5th IEEE Conference on Industrial Electronics and Applications.Washington D.C.,USA:IEEE Press,2010:1826-1831.

[12] Eslami Y,Sheikholeslami A,Gulak P G,et al.Areaefficient Universal Cryptography Processor for Smart Card[J].IEEE Transactions on Very Large Scale Integration(VLSI)Systems,2006,14(1):43-56.

[13] Mohamed E,Abdelkader H,El-Etriby S.Enhanced Data Security Model for Cloud Computing[C]//Proceedings of the 8th International Conference on Informatics and Systems.Washington D.C.,USA:IEEE Press,2012:12-17.

[14] 徐艳华,白雪飞,郭 立.适合SMS4算法硬件实现的S盒构造新方法[J].中国科学技术大学学报,2009,39(11):1164-1170.

[15] Johannes W,Elisabeth O,Mario L.An ASIC Implementa-tion of the AES SBoxes[C]//Proceedings of CT-RSA’02.Berlin,Germany:Springer,2002:67-78.

[16] 潘 赟.CK-CPU嵌入式系统开发教程[M].北京:科学出版社,2011.

[17] Stefan M,Elisabeth O,Thomas P.Power Analysis Attacks[M].Berlin,Germany:Springer-Verlag,2007:97-128.

猜你喜欢
架构设计密钥密码
密码里的爱
基于安全性需求的高升力控制系统架构设计
密码系统中密钥的状态与保护*
密码抗倭立奇功
一种对称密钥的密钥管理方法及系统
基于ECC的智能家居密钥管理机制的实现
密码藏在何处
夺命密码
对称加密算法RC5的架构设计与电路实现
应用于SAN的自动精简配置架构设计与实现