SM4算法CTR模式的高吞吐率ASIC实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第42卷第1期2019年2月

电子器件

ChineseJournalofElectronDevices

Vol 42㊀No 1Feb.2019

项目来源:重庆市教委科研项目(KJ1738463)

收稿日期:2018-01-23㊀㊀修改日期:2018-04-19

AHigh ̄ThroughputASICImplementationof

SM4AlgorithminCTRMode∗

WANGZefang∗ꎬTANGZhongjian

(DepartmentofInformationEngineeringꎬChongqingYouthVocationalandTechnicalCollegeꎬChongqing400712ꎬChina)

Abstract:BasedonSM4algorithminCounter(CTR)modethatsupportstheparallelimplementationꎬahigh ̄perfor ̄manceandscalablearchitectureisproposedꎬaimingatmeetingtherequirementsofbothhighsecurityandhighthroughput.Byseparatingcontrolplaneanddataplaneꎬandparameterizingthedataplaneꎬthecircuitperformancecanbescaledaccordingtorequirementofthroughput.Throughtheproposedarchitectureꎬboththesecurityperformanceandthehighthroughputcanbeguaranteed.ResultsofFPGAimplementationdemonstratethatthethroughputcanachieveupto14.647Gbit/sofsinglechannelwith7423ALMsꎬandthesynthesisresultsbasedon0.18μmCMOStechnologyshowsthattheareaofchipis0.271mm2.

Keywords:cryptographyꎻSM4algorithmꎻASICImplementationꎻCTRmodeꎻhigh ̄throughputEEACC:7220㊀㊀㊀㊀doi:10.3969/j.issn.1005-9490.2019.01.033

SM4算法CTR模式的高吞吐率ASIC实现∗

王泽芳∗ꎬ唐中剑

(重庆青年职业技术学院信息工程系ꎬ重庆400712)

摘㊀要:针对同时要求安全性能高和吞吐率高的应用场景ꎬ基于支持并行实现的计数器模式SM4算法ꎬ提出一种高性能㊁可

扩展的电路结构ꎮ该结构分离了控制平面和数据平面ꎬ并对数据平面进行了参数化ꎬ使得电路性能可依据吞吐率需求进行扩展ꎮ通过该结构ꎬ既可保障数据的安全性能ꎬ又可保证较高的吞吐率ꎮFPGA实现结果显示ꎬ单通道设计的吞吐率可达14.647Gbit/sꎬ而资源开销仅为7423ALMsꎮ在0.18μmCMOS工艺下进行综合的芯片面积为0.271mm2ꎮ

关键词:加密ꎻSM4算法ꎻASIC实现ꎻCTR模式ꎻ高吞吐率

中图分类号:TP309.7㊀㊀㊀㊀文献标识码:A㊀㊀㊀㊀文章编号:1005-9490(2019)01-0173-05㊀㊀SM4算法是一种分组对称密码算法ꎬ该算法于2006年公开发布ꎬ2012年成为密码行业标准(GM/T000-2012)ꎬ2016年成为国家标准(GB/T32907-

2016)[1]ꎮ作为一种分组密码算法ꎬSM4每次能够处

理128bit的数据块ꎮ与美国NIST公布的AES算法相比ꎬSM4的算法结构比AES简洁清晰ꎬ并且更易理解ꎬ更易实现

[1]

分组密码算法具有多种类型的工作模式ꎬ比如电子密码本ECB(ElectronicsCodeBlock)㊁密码分组链CBC(CipherBlockChaining)㊁密文反馈CFB(Cipher

Feedback)㊁输出反馈OFB(OutputFeedback)㊁计数器

CTR(Counter)模式[2-3]ꎮ其中ꎬCBC模式和CTR模式安全性能最高[4]ꎮ但是ꎬ在CBC模式下ꎬ前后分组存在数据依赖性ꎬ因此ꎬ不适合于并行实现ꎬ仅适合于对数据吞吐率要求不高的场景ꎮ相比于CBC模式ꎬCTR模式下的各个数据分组不存在数据依赖性ꎬ非常适合于并行实现ꎮ因此ꎬCTR模式可保证安全性能的同时ꎬ实现较高的数据吞吐率ꎮ

在网络功能虚拟化[5]场景中ꎬ为了满足用户对于使用体验和质量的需求ꎬ需要将部分计算密集型的网络功能卸载到加速设备上运行ꎬ以实现网络加速和计算加速ꎮIPSEC网关就是一种很具代表性的

电㊀子㊀器㊀件第42卷

计算密集型网络功能ꎮ在IPSEC网关中ꎬ需要执行密钥协商和报文加密ꎮ其中ꎬ报文加密是指采用分组密码算法对报文进行加密ꎮ为了推广国密算法ꎬ国家商业密码管理局公布了«GM/T0024-2014:SSL

VPN技术规范»ꎬ将SM4作为IPSEC网关中使用的分组密码算法ꎮ

为了满足网络功能虚拟化场景的需求ꎬ以及密码行业标准的要求ꎬ针对SM4分组密码算法ꎬ本文设计了一款高吞吐率可扩展的SM4-CTR的电路结构ꎮFPGA实现结果显示ꎬ单个加/解密通道时ꎬ吞吐率分别可达14.647Gbit/sꎮ本文的设计灵活可扩展ꎬ并可以IP核的形式集成到支持国密算法的IPSEC网关中ꎬ以实现报文加密加速的目的ꎮ本文第1节介绍了SM4算法应用背景及工作模式ꎻ第2节介绍了SM4算法原理及CTR模式ꎻ第3节介绍了SM4-CTR电路结构及设计过程ꎻ第4节介绍了FPGA实现结果及性能对比ꎻ第5节给出结论ꎮ1㊀SM4算法简介

SM4算法包括密钥扩展算法和加解密算法ꎮ加解密算法与密钥扩展算法结构基本相似ꎬ略有差别ꎬ二者均需经过32轮计算才能得到最后结果ꎮ1.1㊀加解密算法

SM4算法的加密和解密流程基本一致ꎬ均需32轮的迭代计算ꎬ区别在于每一轮迭代使用的轮密钥的顺序不同ꎮ图1即为SM4加解密流程示意图

图1㊀SM4加解密流程示意图

Xi+4=F(XiꎬXi+1ꎬXi+2ꎬXi+3ꎬrki)=

㊀Xi T(Xi+1 Xi+2 Xi+3 rki)ꎬ㊀i=0ꎬ1ꎬ2ꎬ (1)式(1)即为加密和解密过程中使用的迭代计算ꎬ其中T()为合成变换ꎬ由两部分组成非线性变换()和线性变换L()ꎬ先执行()ꎬ然后执行L()ꎬT()=L(())ꎮ()由4个并行的S盒构成ꎮ具体定义为:设输入为A=(a0ꎬa1ꎬa2ꎬa3)ꎬ输出为B=(b0ꎬb1ꎬb2ꎬb3)ꎬ那么B=(b0ꎬb1ꎬb2ꎬb3)=(A)=(S(a0)ꎬS(a1)ꎬS(a2)ꎬS(a3))ꎬ其中S()代表的是查找S盒ꎬ即以S盒的输入为索引ꎬ查找S盒中存放的数值ꎬ然后将输入替换为S盒中存放的数值ꎮ线性变换L的定义为:

C=L(B)=B (B≪2) (B≪10)

(B≪18) (B≪24)(2)1.2㊀密钥扩展算法

图2给出了密钥扩展算法的流程示意ꎬ从图中可以看出ꎬ与加解密算法相比ꎬ除了去除了反序变换ꎬ轮函数中的合成变换略有区别之外ꎬ其他基本相同

图2㊀密钥扩展算法示意图

在SM4加解密过程中ꎬ每一次迭代都需要一个轮密钥ꎮ轮密钥就是通过密钥扩展算法生成的ꎮ该算法的描述如下:

rki=Ki+4=Ki Tᶄ(Ki+1 Ki+2 Ki+3 CKi)(3)式中:Tᶄ()函数包含非线性变换()和线性变换Lᶄ()ꎮ非线性变换()与前文描述的一致ꎮ线性变换Lᶄ()与前文略有差别ꎬ定义为:

C=Lᶄ(B)=B (B≪13) (B≪23)(4)密钥扩展算法中包含的参数 CKi ꎬ这个参数的定义为:设ckiꎬj为CKi的第jbitꎬ即CKi=(ckiꎬ0ꎬckiꎬ1ꎬckiꎬ2ꎬckiꎬ3)ꎬi=0ꎬ1ꎬ ꎬ31ꎬ则ckiꎬj=(4ˑi+j)ˑ7(mod256)ꎮ

1.3㊀CTR模式简介

分组密码算法只能加密固定长度的分组ꎬ但是我们需要加密的明文长度可能会超过分组密码的分组长度ꎬ这时就需要对分组密码算法进行迭代ꎬ以便将一段很长的明文全部加密ꎬ而迭代的方法就成为分组密码的模式ꎮ

CTR模式是一种先对逐次累加的计数器进行加密ꎬ然后再与明文进行的异或的加密方式ꎮ在CTR模式中ꎬ每个数据分组都对应一个计数值ꎬ而加密和解密流程时完全一样的ꎬ如图3所示ꎮ从图3可以看出ꎬCTR模式下明文/密文分组是没有数据依赖性的ꎮ

471

相关文档
最新文档