2024年4月24日发(作者:三星7000手机多少钱)
JournalofComputerApplications
计算机应用,
2021,41(4):1136-1141
文章编号:1001-9081(2021)04-1136-06
ISSN1001⁃9081
CODENJYIIDU
2021⁃04⁃10
http:
//
DOI:10.11772/.1001-9081.2020071060
基于CUDA的SKINNY加密算法并行实现与分析
解文博
1
,韦永壮
1*
,刘争红
2
2.广西无线宽带通信与信号处理重点实验室(桂林电子科技大学),广西桂林541004)
(∗通信作者电子邮箱walker_wyz@)
(1.广西密码学与信息安全重点实验室(桂林电子科技大学),广西桂林541004;
摘要:针对SKINNY加密算法在中央处理器(CPU)下实现效率偏低的问题,提出一种基于图形处理器(GPU)的
快速实现方法。首先,结合SKINNY算法的结构特征提出优化方案,将5个分步操作优化整合为1个整体运算;然后,
分析该算法的电子密码本(ECB)模式和计数器(CTR)模式的特性,并给出并行粒度、内存分配等并行设计方案。实验
结果表明,与传统的CPU实现方法下的SKINNY算法相比,基于计算统一设备架构(CUDA)实现的SKINNY算法的效
率和吞吐量得到很大提升。具体来说,当处理的数据达到16MB及以上时,在所提实现方法下,SKINNY算法的ECB
模式的加速效率提升峰值为99.85%,加速比峰值为671,CTR模式的加速效率提升峰值为99.87%,加速比峰值为
是它们的吞吐量的1.29倍和2.55倍。
中图分类号:TP309.7
765;而与已有AES-256(ECB)和SKINNY_ECB并行算法比较,新提出的SKINNY-256(ECB)并行算法的吞吐量分别
关键词:SKINNY密码算法;并行计算;统一计算架构;图形处理器;电子密码本模式;计数器模式
文献标志码:A
ParallelimplementationandanalysisofSKINNYencryptionalgorithmusingCUDA
(iKeyLaboratoryofCryptographyandInformationSecurity
iKeyLaboratoryofWirelessWidebandCommunicationandSignalProcessing
(GuilinUniversityofElectronicTechnology),GuilinGuangxi541004,China)
(GuilinUniversityofElectronicTechnology),GuilinGuangxi541004,China;
XIEWenbo
1
,WEIYongzhuang
1*
,LIUZhenghong
2
fastimplementationmethodwasproposedbasedonGraphicProcessingUnit(GPU).Inthefirstplace,anoptimization
er,thecharacteristicsoftheElectronicCodeBook
mentalresultsillustratethattheefficiencyandthroughputofSKINNY
Abstract:FocusingontheissueoflowefficiencyofSKINNYencryptionalgorithminCentralProcessingUnit(CPU),a
schemewasproposedbycombiningthestructuralcharacteristicsofSKINNYalgorithm,andonewholecalculation,where
(ECB)modeandcounter(CTR)modeofthisalgorithmwereanalyzed,andtheparalleldesignschemessuchasparallel
algorithmimplementedbyComputingUnifiedDeviceArchitecture(CUDA)aresignificantlyimproved,whencomparedto
ecifically,fordatasizeof16MBorlargesize,theSKINNY
algorithmimplementationwithECBmodeachievesmaximumefficiencyimprovementof99.85%andmaximumspeedupratio
therhand,theSKINNYalgorithmimplementationwithCTRmodeachievesmaximumefficiency
improvementof99.87%andmaximumspeedupratioof765.
SKINNY_ECBparallelalgorithms,respectively.
Inparticular,thethroughputoftheproposed
SKINNY-256(ECB)parallelalgorithmhas1.29timesand2.55timesofthoseoftheexistingAES-256(ECB)and
ProcessingUnit(GPU);ElectronicCodeBook(ECB)mode;Counter(CTR)mode
Keywords:SKINNYcryptionalgorithm;parallelcomputing;ComputeUnifiedDeviceArchitecture(CUDA);Graphic
0引言
图形处理器(GraphicProcessingUnit,GPU)的架构与中
并且计算速度也要明显高于CPU的计算速度。GPU设计之
初是用于图形图像处理,但随着GPU的发展,它被不断地用
于大数据、多并行的计算。计算统一设备架构(Compute
UnifiedDeviceArchitecture,CUDA)是NVDIA发布的并行计
算平台和接口模型,支持C、C++等多种编程语言,使得GPU
央处理器(CentralProcessingUnit,CPU)不同,相对于CPU来
说,GPU的线程更多,带宽更高,延迟更低,更适合并行计算,
收稿日期:2020⁃07⁃21;修回日期:2020⁃10⁃14;录用日期:2020⁃10⁃15。
基金项目:广西无线宽带通信与信号处理重点实验室主任基金资助项目(GXKL06160112)。
作者简介:解文博(1996—),男,山东枣庄人,硕士研究生,主要研究方向:分组密码算法、GPU并行计算;韦永壮(1976—),男,广西田阳
人,教授,博士,主要研究方向:对称密码算法设计与分析;刘争红(1979—),男,湖北红安人,讲师,硕士,主要研究方向:无线宽带通信、FPGA、
GPU并行运算。
第4期解文博等:基于CUDA的SKINNY加密算法并行实现与分析
1137
并行计算变得更为容易,是目前最受欢迎的应用编程接口
之一。
Olano等
[2]
使用PixelFlow图像引擎快速破解了UNIX系统的
密钥,这使得原本用于解决图像处理问题的GPU开始用于密
[3]
作为Beierle等
[11]
新推出的分组密码算法SKINNY虽与AES结
构类似,都是代换−置换网络(Substitution-Permutation
Network,SPN)结构,但由于采用新型设计理念,具有安全性
好、使用灵活等优点,特别适合在微控制器和软件上快速实
现,备受业界广泛关注,所以对其快速并行实现是目前亟待解
决的问题。
本文基于Linux系统下的CUDA平台,通过分析SKINNY
算法的特性,对该算法的ECB和计数器(Counter,CTR)模式
进行并行加速,在数据量达到64MB的加密环境下分析测试
了GPU并行算法的性能,并对基于CPU实现和基于GPU实现
的SKINNY算法进行了时间、加速效率、加速比和吞吐量的
分析。
利用GPU解决密码学问题的最早工作是Kedem等
[1]
和
码学问题。Cook等第一次尝试对对称密码算法使用GPU进
行优化,于2006年利用OpenGL实现了高级加密标准
(AdvancedEncryptionStandard,AES);但由于软件的不足和
硬件的限制,GPU比CPU的性能提升仅有2.3%。2007年
Manavski等
第一次利用CUDA进行AES算法的加速,在显卡
[4]
NVIDIAGeforce8800GTX上实现了128位的AES算法,加密
等
[5]
利用GPU的强大计算能力来降低网络编码和同态哈希的
计算成本,他们通过在GPU上实现网络编码和同态哈希函数
(HomomorphicHashingFunction,HHF),所得结果比CPU上
8MB的数据,加密吞吐量可以达到8.28Gb/s。2009年Chu
计算速度提高显著,这种实现方式可以为防御分布式系统中
的污染攻击提供解决方案。Li等
[6]
于2012年提出在GPU上
组链接(CipherBlockChaining,CBC)模式的实现,通过将T盒
分配在共享存储器上并采用每个线程处理16字节的粒度,使
得GPU运行速度比CPU快50倍。Cheong等
[7]
在2015年在具
有Kepler架构的NVIDIAGTX690上提出加速分组密码IDEA
(InternationalDataEncryptionAlgorithm)、Blowfish和Threefish
的技术,对于三个算法分别实现了90.3Gb/s、50.82Gb/s和
使用不同粒度值在三种不同的GPU架构上的AES-128算法
83.71Gb/s的加密吞吐量。2017年,Abdelrahman等
[8]
提出了
(ECB模式)实现。他们的实验结果表明,使用NVIDIA
GTX1080(Pascal)、NVIDIAGTXTITANX(Maxwell)和
GTX780(Kepler)GPU架构,吞吐率分别达到277Gb/s、
201Gb/s和78Gb/s。同年,Ma等
[9]
在CBC模式下实现了AES
解密,他们对基于GPU的不同参数设置下的实现进行了全面
分析,这些参数包括:输入数据的大小、每个块的线程数、内存
分配的方式和并行粒度。最终GPU上的最优性能是CPU上
的112倍。2020年,Yeoh等
[10]
提出一种基于GPU的快速搜索
密码学算法差分特性的分支定界算法,文章针对TRIFLE-BC-
128算法,利用中间相遇方法与GPU相结合,所得结果与基于
CPU的方法相比,搜索效率提高了约58倍。综上可知,关于
AES的电子密码本(ElectronicCodeBook,ECB)模式和密文分
1.1
1SKINNY算法
SKINNY算法是一种新的轻量级密码算法,该算法加密
算法简介
分组为64和128位的明文数据,可以使用64、128、192、256和
384位的密钥来加密。本文快速实现的算法是数据分组长度
为128位、密钥长度为256位的SKINNY算法,简记为
该数组的初始状态如式(1)所示:
SKINNY-256。SKINNY算法的操作是在二维数组上执行的,
é
a
0
ê
a
ê
4
a=
ê
ê
ê
a
8
ê
ë
a
12
SKINNY-256的轮函数由以下5个操作组成,分别是:
另一个字节。
a
1
a
5
a
9
a
13
a
2
a
6
a
10
a
14
a
3
ù
a
7
ú
ú
ú
ú
a
11
ú
ú
a
15
û
(1)
1)字节替换(SubCells,SC):通过S盒将一个字节替换为
2)轮加常数(AddConstants,AC):状态矩阵异或轮常数。
行、第二行和状态矩阵相应的位置异或。
3)轮加密钥(AddRoundTweakey,ART):轮密钥的第一
4)行移位(ShiftRows,SR):简单的位移。矩阵从第0行
5)列混淆(MixColumns,MC):状态矩阵与二进制矩阵
SKINNY的加密轮函数过程如图1所示,由48个轮函数
到第3行,依次循环移动0、1、2、3个字节。
相乘。
分组密码在GPU上的快速实现研究较多的是对AES的优化,迭代而成,解密过程相似。密钥编排算法可参考文献[11]。
1.2
分组密码常用的工作模式有5种
[12-14]
,分别是:电子密码
SKINNY加密模式的选择
Fig.1EncryptionroundfunctionofSKINNYalgorithm
图1SKINNY算法加密轮函数
1.2.1
表1列出了5种加密模式的并行特性
[6]
:ECB、CTR模式都
模式比较
本(ECB)模式、计数器(CTR)模式、密码块链接(CBC)模式和
密码反馈(CipherFeedBack,CFB)模式及输出反馈(Output
FeedBack,OFB)模式。
支持并行计算,因为它们的每个单个分组都可以独立加密;而
其他三种模式不支持,因为它们的分组输入都与前一段的输
出有一定关系,具有串行特性。本文SKINNY算法实现选择
1138
计算机应用
TK
k,j
表示轮密钥。
第41卷
的是可以并行实现的ECB模式和CTR模式。接下来对ECB
和CTR这两种模式进行简单介绍。
Tab.1
加密模式
ECB
CTR
CBC
Comparisonofencryptionmodes
[6]
并行特性
可并行
可并行
不可并行
加密模式
CFB
OFB
并行特性
不可并行
不可并行
表1加密模式比较
[6]
1.2.2电子密码本(ECB)模式
在ECB模式下,数据会被分组独立进行加密。这种加密
模式加密方便,应用广泛。此模式的表达式如式(2)所示:
C
i
=encrypt(P
i
)
(2)
P
表示输入的明文;
C
表示输出的密文。
i=1,2,…,n
;其中:
1.2.3计数器(CTR)模式
计数器模式有一个自增的连续值,将这个自增值用密钥
进行加密,加密之后的中间值与明文进行异或,得到密文,相
当于一次一密。此模式的加密方式快速简单,可靠安全,但它
容易遭受攻击者的攻击。此模式的表达式如式(3)所示:
C
i
=P
i
⊕CTR(R+i)
(3)
R={0,1,…,2
(|P|-1)
}
;
i=1,2,…,n
。
其中:
2.1
Fig.2RoundtransformationofSKINNYalgorithm
图2SKINNY算法的轮变换
为了得到更好的实现性能,本文将5个步骤进行化简合
并成为一个公式,如式(4)所示,然后将其前4个表分别定义
为
T
表,两组轮密钥矩阵合并定义为
TK
,轮常数矩阵定
义为
C
。
2
é
f
0,j
ù
êú
f
1,
ê
j
ú
êú
êú
=
êú
f
êú
2,j
êú
ê
f
ú
j
ûë
3,
SKINNY的并行优化
a
i,
SKINNY的每一轮的操作如图2所示,
j
表示输入明文,
CUDA加速SKINNY
é
1
ê
1
ê
ê
0
ê
ë
1
0
0
1
0
1
0
1
0
1
ù
0
ú
ú
⋅
0
ú
ú
0
û
最终的表达式化简为4个
T
表和5个异或运算,如式(5)
所示,这样可以避免大量的逻辑计算。
F=T
0
[a
0,j
]⊕T
1
[a
1,j+1
]⊕T
2
[a
2,j+2
]⊕
T
3
[a
3,
j
j+3
]⊕C⊕TK
k,
é
TK2
0,j
ù
j
ù
ö
æ
é
1
ù
ö
é
C
0
000
ù
é
TK1
0,
æ
é
1
ù
ö
æ
é
0
ù
ö
æ
é
1
ù
êúêú
÷
ç
ê
0
ú
÷
ê
C
000
ú
ç
ê
1
ú
÷
ç
ê
0
ú
÷
ç
ê
0
ú
TK1TK2
êúêú
êúêú
êúêú
1,j1,j
1
êú
ç
êú
⋅S[a]
÷
⊕
ç
êú
⋅S[a
÷
ç
êú
÷
ç
êú
÷
úú
⊕
ê
⊕
ê
0,j
÷
1,j+1
]
÷
⊕
ç
êú
⋅S[a
2,j+2
]
÷
⊕
ç
êú
⋅S[a
3,j+3
]
÷
⊕
ê
êúêú
ú
êú
ú
ç
ê
ç
ê
1
úê
0
ú
ê
0
úê
1
ú
C
2
000
êúê
ú
ê
0
úê
0
ú
ç
êú
÷
ç
êú
÷
ç
êú
÷
ç
êú
÷
ê
ú
è
ë
1
û
ø
è
ë
0
û
ø
è
ë
0
û
ø
è
ë
1
û
ø
ë
0000
û
ë
0
ûë
0
û
具有相互依赖性,线程间不用相互等待。
(5)
é
S[a
0,j
]
ù
TK1
0,
é
TK2
0,j
ù
j
ù
êú
é
C
0
000
ù
é
êúêú
êú
S[a
]
ê
1,j+1
ú
TK1TK2
C
000
êúêú
êú
1,j1,j
1
ú
⊕
ê
êú
úú
⊕
ê
⊕
ê
=
êúêú
êú
êú
S[a
]
C
000
êú
êúêú
2,j+2
2
00
êú
êú
êêú
ê
S[a
ú
0000
ëû
ë
0
ú
]0
ûëû
3,j+3
ëû
(4)
况下,每个GPU线程可以独立完成,因为不同线程的矩阵不
i,j=0,1,2,3;k=0,1
。轮常数
C
只影响输入矩阵的其中:
第一列;轮密钥TK只影响输入矩阵的前两行。
2.2
并行粒度的设计会影响算法的实现效果,所以在设计并
并行粒度
Fig.3
图3
Fine-grainedparallelscheme
细粒度并行方案
行粒度时要遵循两个原则:1)提高分配线程的利用率;2)减少
各线程间的通信开销
[15]
。并行粒度的设计一般分为两种:一
种为细粒度,一个GPU线程处理16字节分组中的4字节,如
图3所示;另一种称为粗粒度处理,一个线程处理16个字节的
分组,如图4所示。在细粒度实现中,它可以调度更多线程增
大吞吐量,但是线程之间的通信开销也随之增大。在粗粒度
实现中,单个线程处理一个独立的SKINNY分组,GPU上的线
程无须同步,并且每个线程都独立运行,从而减少了通信时
间。通过实验对比发现,粗粒度的设计方式要优于细粒度。
基于以上分析,将SKINNY的并行粒度设计为“每个线程
一个分组”,也就是说每个线程处理16字节的数据。数据被
分为多个16字节矩阵,这些矩阵由GPU同步执行。在这种情
2.3
同的内存
[16]
,每种内存的特性在一定程度上相互不同。内存
分配策略的不同会对性能带来明显的影响。
CUDA的内存分配策略非常重要,因为CUDA具有5种不
内存分配
Fig.4
图4
Coarse-grainedparallelscheme
粗粒度并行方案
第4期解文博等:基于CUDA的SKINNY加密算法并行实现与分析
1139
2.3.1
输入明文被分为几个互相独立的块进行加密。本文使用
明文内存分配
的是一个线程处理一个分组,例如,当处理1000个分组,就需
要1000个GPU线程。因为明文数量较大,所以将整体明文存
储到全局内存中。每个线程获得16个字节的数据后,将会暂
存在线程的寄存器中,寄存器对于各个线程是私有的,即彼此
无法互相访问。所有线程完加密后,再将数据从GPU内存中
取回。
2.3.2
T
表本质上是查找表,
T
表内存分配
在线程间是只读数据,用户可以通
过它们快速实现部分加密操作。每个线程在每一轮加密操作
中都需要随机访问
GPU
T
表。因此,本文需要将
T
表提前加载到
存中。另一种分配方案是将
的内存中。根据这些属性,
T
表分配到共享内存中,
将
T
表分配到CUDA常量内
但是此
种分配方式会存在一些问题,即存储体冲突,如果多个地址请
求落在相同的内存存储体时,就会发生存储体冲突,导致请求
被重复执行。
2.3.3
密钥的保密性和密钥的长度是保证密码的安全性的基
轮密钥内存分配
础。在SKINNY算法的实现中,每一轮加密都需要密钥异或
操作。CUDA的每个线程都需要输入不同的轮密钥。在这种
情况下,本文将轮密钥放入常量存储器中,所有线程在常量内
存中共享轮密钥。
2.4
每个
线程数的分配
GPU块中线程数的数量也会影响运行性能。每个
块的线程数如何分配,存在一些原则。在分配时一个块的线
程数最好是32的倍数,因为连续的线程会以32个为一组组成
一个线程束(warp),同一warp里的线程会对不同的数据执行
相同的指令。而如果线程数不是32的倍数,GPU会将不足32
的线程的warp补全,造成资源的浪费。本文使用的设备的一
个块最大线程数为1024,设置线程数不能超过其最大值,虽
然说一个块中的线程越多越能隐藏延迟,但是这样会使每个
线程可以使用的资源变少,考虑到所用的其他资源:共享内
存、寄存器等,为了达到更好的性能,决定每块分配512个
线程。
综上所述,最终的分配方案如表2所示。基于GPU实现
的SKINNY算法加密部分流程如图5所示,解密部分与加密
相似。
Fig.5
图
Parallel
5SKINNY
flowchart
算法并行流程
ofSKINNYalgorithm
表2GPU变量分配方案
Tab.2GPUvariableallocationscheme
分配变量
16
分配方案
并行粒度
明文全局内存
字节/线程
T
表
常量内存
轮密钥常量内存
线程数
512线程/块
3.
3
1
实验与结果分析
本
实验环境
实验所使用的CPU为:InterXeonE5-2643v4@
3.
存为
40GHz
12GB
;GPU
;操作系统为:
:GeForceGTX
Ubuntu
TITAN
18.
X
04.
,内存为
2LTS,
32
64
GB
bit;
,全局内
编程环
境为:CUDA10.1,GCC7.5.0。本实验的CPU代码用的C语
言编写,GPU代码用CUDAC编写。
3.2
实
实验结果
验操作是对相同大小的明文分别进行基于CPU和
GPU
录运行的时间和吞吐量。为了降低实验误差,
的加密运算,明文大小从16B开始二倍递增到
每种规格的明
64MB,记
文均运行10次,取平均值。用加速效率和加速比来作为衡量
算法性能提升的指标,加速效率表示并行程序的运行效率的
提升情况,加速效率
S
的定义如式(6)所示;加速比表示并行
程序对比串行程序的性能提升,加速比
E
的定义如式(7)
所示。
S=(T
C
-T
G
)/
(6)
E=T
T
C
C
其中:表示
/T
G
(7)
T
C
CPU串行加密时间;
T
3.2.1
G
表示GPU并行加密时间。
对比以及吞吐量的变化趋势如表
SKINNY
SKINNY
算法的
算法
ECB
ECB
模式在
模式的实验结果与分析
CPU
3和图
和
6
GPU
所示。从表
上运行的效果的
3和图6
可以看出:随着输入数据的倍速增长,基于CPU的SKINNY算
法的运行时间也倍速增长,而基于GPU的该算法的运行时间
却以缓慢的速度增长。随着明文数据增到16MB左右,加速
比和加速效率达到峰值。并且随着输入数据的增大,基于
GPU
GPU
的吞吐量增幅明显,而CPU吞吐量相对稳定,
吐量趋于稳定。对于
吞吐量的峰值出现在明文大小在
ECB模式来说,加速比峰值可达
16MB左右时,
增幅不大。
此后吞
671,加
速效率峰值可达99.85%。
Fig.
图6
6
SKINNY_ECB
Throughputof
加密串行和并行吞吐量对比
SKINNY_ECB()
1140
计算机应用
第41卷
表3SKINNY_ECB实现性能比较(CPU对比GPU)
Tab.3SKINNY_ECB
(
implementation
)
performancecomparison
明文大小
CPU
时间
运行
加速比
16
32
B0.
/ms
GPU
时间
运行
加速效率/%
0.
080.
/ms
0.
0.
150.
28-273.
0.
26
128
64
B
B
0.
280.
28-91.
33
0.
50
256
B
1.
560.
29-3.
78
1.
97
512
B
1.
110.
3046.
20
3.
87
1
B
2.
440.
3171.
58
3.
53
2
KB
4.
26
30
0.
3476.
67
0.
3584.
32
5.
14
4
KB
13.
7.790.
3791.
70
14.
9.
55
69
16
8
KB
KB
25.
770.
4893.
34
95.
89
20.
70
32
KB
KB48.
130.
64
0.
6497.
34
98.
4638.
60
128
64KB
184.
93.
11
110.
66
99.
63
137.
72.
77
64
256
KB
367.
400.
68
1.
7599.
27
246.
22
512
KB99.
59
298.
51
1
KB
1
735.
72
051.
23
99.
67
2
467.783.
80
4399.
76409.
83
2
MB
99.
77427.
28
4
MB
11
5
959.
865.
30
4110.
5.88
99.
80498.
95
24
760.0120.
58
99.
82554.
02
16
8
MB
MB
46
145.36.
24
4199.
83580.
18
32
MB
93
934.
64
869.
48
86140.
69.96
59
99.
85663.
77
64
MB
MB99.
85
85
670.
12
667.
90
65
3.2.2
对比以及吞吐量的变化趋势如表
SKINNY
SKINNY
算法的
算法
CTR
CTR
模式在
模式的实验结果与分析
CPU
4和图
和
7
GPU
所示。
上运行的效果的
表4SKINNY_CTR实现性能比较(CPU对比GPU)
Tab.4SKINNY_CTR
(
implementation
CPUvsGPU)
performancecomparison
明文大小
CPU
时间
运行
加速比
16
32
B0.
/ms
GPU
时间
运行
加速效率/%
0.
070.
/ms
0.
0.
140.
27-285.
0.
26
128
64
B
B
0.
270.
26-85.
71
1.
52
256
B
1.
550.
27
2.
02
512
B
1.
110.
2849.
0.
71
00
3.
00
1
B
2
KB2.
730.
3072.
45
3.
400.
3082.
97
0.
3087.
664.
70
4
KB90.
50
12.
5.
10
800.
30
93.
3210.
8.
65
28
16
8
KB
KB
24.
560.
36
96.
7916.
03
32
KB
45.
210.
47
0.
5197.
2626.
23
98.
8947.
46
29
128
64
KB
KB
183.
91.
78
900.
51
99.
89
256
KB
365.
90
60
0.
55
0.
6199.
40167.
89.95
512
KB99.
67301.
20
1
KB
1
735.1.
90
99.
75396.
42
2
MB
2
471.
00
832.
60
5.
92
17
99.
78459.
14
4
MB99.
80504.
65
568.
05
11
5
942.
886.
10
99.
82
23
767.
02
0115.
8.47
99.
86694.
55
16
8
MB
MB
47
621.0331.
94
99.
86738.
24
94
167.
196.
20
11117.
61.
13
47
00
99.
87756.
01
64
32
MB
MB
MB
99.
87
87
765.
01
760.
01
32
Fig.
图7
7
SKINNY_CTR
Throughputof
加密串行和并行吞吐量对比
SKINNY_CTR()
它的增长与变化曲线与ECB模式类似,但CTR模式的实
现速度要稍快于ECB模式的实现速度。CTR和ECB模式最
大的区别在于
counter加1,所以加密速度更快。它的加速比和加速效率峰
CTR有一个16字节的计数器counter,每次加密
值也都出现在明文数据输入为16MB左右,其中加速比最高
可达
3.3
765,加速效率最高可达99.87%。
64
因为数据量太小,
B
综合两种加密模式的分析,
实验讨论
时,加速比要小于
GPU开启的线程数少,
1,说明基于
发现当输入明文大小在
CPU
无法通过线程级并行
的性能要优于GPU
16B~
。
来隐藏延迟;也说明一个线程的GPU并行运算的时间效果远
没有单线程CPU好。但是,当输入明文变大,例如16MB,基
于GPU的性能要明显优于CPU,当处理大量数据时,GPU可
以通过多个线程之间的乱序执行和多个线程间的灵活切换来
隐藏延迟,从而提高吞吐量。
也就是说:当输入明文大小较小(小于64B)时,基于CPU
的性能要好于GPU性能;但是,当输入明文大小变大(64B及
以上)
CPU
时,GPU的性能要比CPU好得多,GPU在性能方面比
GPU
优势显著。虽然当可并行化数据的大小越来越大时,
得到提升,
的性能就可以得到充分利用,
由于受到GPU自身硬件条件的限制,
但GPU的性能并不能无限
它的速度提
升也是有边界的,比如当输入明文超过2MB时,吞吐量增长
趋于平稳,执行时间开始呈线性增长。由图4~5可以得出,并
行GPU的吞吐量变化大致分为三个阶段:16B~128KB吞吐量
为指数增长,128KB~4MB吞吐量为线性增加,4MB及以上吞
吐量增加趋于稳定。
3.4
文
实验结果对比
OpenCL
献[17]报告了ECB模式下SKINNY不同版本的在
分布操作进行优化,
中的并行实现,
但是没有提及线程块的配置、
他们的优化方法是分别对加密算法的
存储方式选
择等问题。相较于文献[17]的ECB模式下的SKINNY-256并
行实现,本文基于GPU实现并行算法的最高吞吐量是其1.29
倍。并且由于
SKINNY-256具有相同的明文分组和密钥分组长度,
AES是目前主流的密码算法,且AES-256和
的实验结果与文献[18]关于ECB模式下的AES-256加速的并
还将本文
行算法进行对比,对比结果表明:本文的结果有2.55倍的性
能提升。具体比较如表
SKINNY
力。本文通过将
的ECB模式在
5所示。这说明,本文采用的方法对
SKINNY
GPU
的
下能有效地发挥其并行计算能
5个加解密步骤进行组合形成1
个整体表达式,使得SKINNY的实现只需要4个
T
表查找和5
个XOR运算,减少了代码数量、降低了内存占用面积,提高了
并行性;采用粗粒度的并行方式即“每个线程一个分组”用于
线程调度,避免了线程间的频繁数据交互;线程块数的设置非
定值而是随明文大小和线程数个数变化,其计算公式为:明文
第4期解文博等:基于CUDA的SKINNY加密算法并行实现与分析
1141
总数/每块线程数/分组大小,有助于提高并行性能。同时本文
还对CTR模式在GPU下的实现方法进行了探究,针对CTR模
式与ECB模式的不同,将CTR模式特有的计数器初始值存储
到寄存器中,其他操作与ECB模式基本相似,结果发现CTR
模式的并行也可以在GPU上充分发挥其并行计算能力。
表5不同算法的吞吐量比较
Tab.5Throughputcomparisonofdifferentalgorithms
算法平台
编程最大性能提升
架构吞吐量(/Gb·s
-1
)倍数
文献[17]算法
文献[18]算法
940MX
—
OpenCL3.1.
本文算法
GTX
CUDA
TAN
TI
X
-
CUDA
1.
28
2.
29
4.
66
24
55
—
4
本文基于
结语
GPU下的CUDA编程模型,利用SKINNY-256
算法的结构和特点,提出其ECB和CTR模式的并行优化方
案。实验结果表明,对于SKINNY算法的ECB和CTR模式,当
处理数据在16MB及以上时,GPU加速效率可以达到99.85%
和99.87%,加速比分别可达到671和765。进一步的研究工
作可以考虑对其他分组密码算法如国密SM4进行GPU下的
并行加速。
参考文献(References)
[1]
with
KEDEM
SIMD
G,orceattackonUNIXpasswords
Symposium.
computer[C]//Proceedings
[2]
[
OLANO
C]//Proceedings
M,LASTRA
Berkeley:
of
A.
USENIX
the
A
25th
shading
Association
ofthe
Annual
language
,1999
8thUSENIX
Conference
ongraphics
:8-8.
Security
onComputer
hardware
[3]
159
Graphics
-168.
k:ACM,1998:
Cards
COOK
for
D,
Security
KEROMYTIS
[M].Boston
Graphics
:Springer,2006
:
:
Exploiting
97-101.
Graphics
[4]MANAVSKI
IEEE
accelerator
International
for
SA.
AES
CUDA
cryptography
compatible
Conference
[C
on
]
GPU
//
Signal
Proceedings
asanefficienthardware
Processing
ofthe2007
and
[5]
Communications.
CHU
coding
X,
Conference
on
ZHAO
Piscataway:IEEE,2007:65-68.
GPUs
K
onResearch
[
,
C
WANG
]//Proceedings
calrandomlinearnetwork
inNetworking
of
,
the
LNCS
8th
5550.
International
Springer
Berlin:
[6]LI
AES
Q,ZHONG
,2009:
C
573
,ZHAO
-585.
K,entationandanalysisof
International
encryption
Conference
onGPU[
on
C]
High
//Proceedings
Performance
ofthe
Computing
IEEE14th
and
[7]
Software
Communication/
CHEONG
and
H
Systems.
IEEE
S,LEE
Piscataway
9thInternational
:
implementation
IEEE,
Conference
2012:843
of
-
on
848.
Embedded
and
blockciphers
5th
PRNGsforKeplerGPUarchitecture[C]//Proceedings
Piscataway
International
ABDELRAHMAN
:IEEE,
ConferenceonITConvergenceandSecurity.
ofthe
[8]
performance
A
2015
A,
:
FOUAD
1-5.
MM,DAHSHANH,
analysisapproach
CUDA
[
AES
C]//
implementation
Proceedings
:aquantitativeperformance
[9]
Conference.
MAJ,CHEN
Piscataway
X,XU
:
R,
IEEE
etal.
,2017
Implementation
:1077
of
-
the
1085.
2017Computing
andevaluationof
different
the
Piscataway
2ndInternational
paralleldesignsofAESusingCUDA[C]//Proceedingsof
[10]YEOHW
:IEEE
Z,TEH
,2017
Conference
:606-614.
onDataScienceinCyberspace.
cipherdifferentials
C]//Proceedings
:
JS,
a
tedsearch
-and
for
-bound
block
algorithm
Information
[
SecurityandPrivacy
of
GPU
the
-
,
25th
accelerated
LNCS
Australasian
branch
Conference
:Springer
on
,
[11]
2020
BEIERLE
:160-179.
blockciphers
C,
and
JEAN
itslow
J,
-latency
KÖLBL
variant
S,et
MANTIS
[
SKINNY
C]//Proceedings
familyof
the36thAnnualInternationalCryptologyConference
of
[12]
Berlin
BLACK
:Springer
parallelizable
J,ROGAWAY
,2016:123
messageauthentication
P.
-
A
153.
,LNCS9815.
block-cipher
[C]//
mode
Proceedings
ofoperation
ofthe
for
2002
Cryptographic
International
Techniques
Conference
,LNCS
onthe
2332.
Theory
Berlin
and
:Springer
Applications
,2002
of
:
[13]
384
DWORKIN
-397.
operation:methods
endation
forformat
-01]
-
.
preserving
forblock
https://nvlpubs.
encryption
cipher
/nistpubs/
:
modes
NISTSP
of
[14]
SpecialPublications/NIST.
800-38G[R/OL].[2020-02
费雄伟,
.
的研究与实现
李肯立,
[J]
阳王东
.小型微型计算机系统,
.基于CTR模式的GPU
2015
并行
,36(
AES
3):
算法
529-
533.
implementation
(FEIXW,LIKL,YANGWD.
model[J].Journal
ofGPU
ofChinese
parallel
Computer
AESalgorithm
Systems,
based
Research
2015,
on
36(
CTR
and
529-533.)
3):
[15]顾青,
的实现和优化
高能,包珍珍,
[J].中国科学院研究生院学报,
等.基于GPGPU和CUDA的高速
2011
AES
,28(
算法
6):
776
optimization
-785.(GU
CUDA[J].Journal
of
Q
high
,GAO
of
speed
N,
Graduate
AES
BAO
algorithm
ZZ,etal.
based
Implementation
onGPGPU
and
and
[16]
Sciences
NVIDIA
,
Corporation.
2011,28(6)
CUDA
:776-785.
University
C++
)
ofChineseAcademyof
[2020-03-01].https://.
programming
com/cuda/cuda
guide
-c-programming
[EB/OL].
-
[17]司法鉴定科学研究院
guide/.
存储介质,2.
.Skinny
2
算法优化实现方法、
[P].2019-07-09.(
系统、
Academy
终端、
of
Forensic
method,system
Science.
,terminal
Skinny
,storage
algorithm
medium
optimization
,
implementation
[18]
2019
WANG
-07-
C
09.
,
)
2.2[P].
[2020-03-01]
CHU
.https
X.
://arxiv.
GPUaccelerated
org/pdf/1902.
AES
05234.
algorithm
pdf.
[EB/OL].
Wireless
Thisof
GXKL06160112
Broadband
workispartiallysupportedbytheGuangxiKeyLaboratory
).
CommunicationandSignalProcessingDirectorFund
XIEWenbo,bornin1996,earchinterests
include
WEI
block
Yongzhuang
cipheralgorithm
,born
,GPU
in1976
parallel
,Ph.
computing.
D.,earch
interests
LIU
include
Zhenghong
symmetric
,born
cryptographic
in1979,M
algorithm
,S.,lecturer.
designand
His
analysis.
research
interests
GateArray
include
(FPGA
wireless
);GPU
broadband
parallelcomputing.
communications,FieldProgrammable
(
发布者:admin,转转请注明出处:http://www.yc00.com/num/1713913897a2343535.html
评论列表(0条)