一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

硬件加速装置、方法、设备及存储介质与流程

2022-03-26 16:24:23 来源:中国专利 TAG:


1.本发明涉及硬件加速技术领域,尤其是指硬件加速装置、方法、设备及存储介质。


背景技术:

2.加密技术在信息安全领域发挥着重要的作用。对称加密算法因计算开销小、加密速度快和可达到高保密强度等特点,是目前用于信息加密的主要算法。如图1所示的现有技术,sm4加密的轮次计算次数为32,是aes轮次计算次数的2倍,运算时间相差较大,单元运算速度不够均衡,系统的加解密速度未能达到最优,无法满足需求。


技术实现要素:

3.本发明的目的在于克服现有技术的不足,提供硬件加速装置、方法、设备及存储介质。
4.为了解决上述技术问题,本发明采用如下技术方案:
5.硬件加速装置,包括:16个加密计算单元,分别为加密计算单元1至加密计算单元16;其中,加密计算单元1至加密计算单元14包括sm4计算单元1和aes计算单元1至sm4计算单元14和aes计算单元14,加密计算单元15包括sm4计算单元15,加密计算单元16包括sm4计算单元16;其中,加密计算单元11还包括aes128计算单元11,加密计算单元13还包括aes192计算单元13,加密计算单元15还包括aes256计算单元15;该装置共有4种加密模式,通过sm4_en、aes128_en和aes192_en配置相应的加密模式,分别为sm4加密、aes128加密、aes192加密和aes256加密;其中,sm4加密包括sm4计算单元1至sm4计算单元16,共需16次计算;aes128加密需11次计算,aes128加密所需的计算单元包括aes计算单元1至aes计算单元10,及aes128计算单元11;aes192加密需13次计算,aes192加密所需的计算单元包括aes计算单元1至aes计算单元12,及aes192计算单元13;aes256加密需15次计算,aes256加密所需的计算单元包括aes计算单元1至aes计算单元14,及aes256计算单元15。
6.其进一步技术方案为:所述aes计算单元1至aes计算单元10用于aes128加密、aes192加密和aes256加密,三种不同的加密模式复用;所述aes计算单元11和aes计算单元12用于aes192加密和aes256加密,两种不同的加密模式复用。
7.其进一步技术方案为:所述aes计算单元1的处理计算包括轮密钥加,aes计算单元2至aes计算单元14的处理计算包括字节替换、行移位、列混合和轮密钥加。
8.其进一步技术方案为:所述aes128计算单元11、aes192计算单元13和aes256计算单元15,三者的处理计算相同,分别复用了aes计算单元11、aes计算单元13和aes计算单元15中的处理计算,包括:字节替换、行移位、轮密钥加。
9.硬件加速方法,基于如上述所述的硬件加速装置,包括以下步骤:
10.获取128位明文;
11.根据128位明文,通过sm4计算单元1至sm4计算单元16,16次迭代计算,以得出sm4密文;通过aes计算单元1至aes计算单元10,及aes128计算单元11,11次迭代计算,以得出
aes128密文;通过aes计算单元1至aes计算单元12,及aes192计算单元13,13次迭代计算,以得出aes192密文;通过aes计算单元1至aes计算单元14,及aes256计算单元15,15次迭代计算,以得出aes256密文。
12.其进一步技术方案为:所述aes计算单元1至aes计算单元10用于aes128加密、aes192加密和aes256加密,三种不同的加密模式复用;所述aes计算单元11和aes计算单元12用于aes192加密和aes256加密,两种不同的加密模式复用。
13.其进一步技术方案为:所述aes计算单元1的处理计算包括轮密钥加,aes计算单元2至aes计算单元14的处理计算包括字节替换、行移位、列混合和轮密钥加。
14.其进一步技术方案为:所述aes128计算单元11、aes192计算单元13和aes256计算单元15,三者的处理计算相同,分别复用了aes计算单元11、aes计算单元13和aes计算单元15中的处理计算,包括:字节替换、行移位、轮密钥加。
15.硬件加速设备,所述硬件加速设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现如上述所述的硬件加速方法。
16.一种存储介质,所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时可实现如上述所述的硬件加速方法。
17.本发明与现有技术相比的有益效果是:通过集成和复用的方式,在不过多占用硬件资源的情形下,支持4种加密模式;对传统aes/sm4加密处理流程进行优化,大幅提升了加解密速度,使得整个系统的吞吐率达到最优。
18.下面结合附图和具体实施例对本发明作进一步描述。
附图说明
19.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
20.图1为现有技术的sm4加密流程示意图;
21.图2为aes sm4加密装置的示意图;
22.图3为本发明实施例提供的硬件加速装置的示意性框图;
23.图4为本发明实施例提供的硬件加速方法的流程示意图;
24.图5为本发明实施例提供的aes加密流程示意图;
25.图6为本发明实施例提供的sm4加密流程示意图;
26.图7为本发明实施例提供的sm4单轮次处理流程示意图;
27.图8为本发明实施例提供的aes256加密4kb数据流的应用示意图;
28.图9为本发明实施例提供的sm4加密4kb数据流的应用示意图;
29.图10为本发明实施例提供的硬件加速设备的示意性框图。
具体实施方式
30.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发
明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
31.应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
32.还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
33.还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
34.其中,如图2所示,aes(advanced encryption standard高级加密标准) sm4(sm4分组密码算法)加密装置,集成了sm4和aes加密算法,支持两种模式:ecb(electronic code book电子密码本模式)和xts(xex tweakable block cipher with ciphertext stealing分组密码工作模式)。因解密与加密存在对称相似性,故以加密进行展开叙述。
35.其中,加密电路主要由两部分组成:a、轮密钥生成单元,将输入参数key(密钥)和hash_key(哈希密钥)分别进行密钥扩展单元运算和密钥加密单元运算,对应分别生成random_key(轮密钥)和cipher hash key(哈希密钥密文);b、aes/sm4加密单元,对plain(明文)进行encrypt(加密)运算,生成cipher(密文)。模式选择通过xts en(xts使能)选配,当其为0时,ecb模式,对应经典的加密处理流程;可以理解为对加密运算前输入的明文和加密运算后生成的密文不做处理。xts en选配为1时,xts模式,对应安全系数更高的加解密处理流程;可以理解为需要对加密运算前的输入明文和加密运算后生成的密文需要与cipher hash key以及alpha(扰动因子)做异或运算。
36.请参阅图3到图10所示的具体实施例,其中,请参阅图3所示,本发明公开了硬件加速装置,包括:16个加密计算单元,分别为加密计算单元1至加密计算单元16;具体为:加密计算单元1、加密计算单元2、加密计算单元3、加密计算单元4、加密计算单元5、加密计算单元6、加密计算单元7、加密计算单元8、加密计算单元9、加密计算单元10、加密计算单元11、加密计算单元12、加密计算单元13、加密计算单元14、加密计算单元15及加密计算单元16。其中,加密计算单元1至加密计算单元14包括sm4计算单元1和aes计算单元1至sm4计算单元14和aes计算单元14,具体为:加密计算单元1包括sm4计算单元1和aes计算单元1;加密计算单元2包括sm4计算单元2和aes计算单元2;加密计算单元3包括sm4计算单元3和aes计算单元3;加密计算单元4包括sm4计算单元4和aes计算单元4;加密计算单元5包括sm4计算单元5和aes计算单元5;加密计算单元6包括sm4计算单元6和aes计算单元6;加密计算单元7包括sm4计算单元7和aes计算单元7;加密计算单元8包括sm4计算单元8和aes计算单元8;加密计算单元9包括sm4计算单元9和aes计算单元9;加密计算单元10包括sm4计算单元10和aes计算单元10;加密计算单元11包括sm4计算单元11和aes计算单元11;加密计算单元12包括sm4计算单元12和aes计算单元12;加密计算单元13包括sm4计算单元13和aes计算单元13;加密计算单元14包括sm4计算单元14和aes计算单元14;加密计算单元15包括sm4计算单元15,加密计算单元16包括sm4计算单元16;其中,加密计算单元11还包括aes128计算单元11,加密计算单元13还包括aes192计算单元13,加密计算单元15还包括aes256计算单元15;该装置
共有4种加密模式,通过sm4_en、aes128_en和aes192_en配置相应的加密模式,分别为sm4加密、aes128加密、aes192加密和aes256加密;其中,sm4加密包括sm4计算单元1至sm4计算单元16,共需16次计算;aes128加密需11次计算,aes128加密所需的计算单元包括aes计算单元1至aes计算单元10,及aes128计算单元11;aes192加密需13次计算,aes192加密所需的计算单元包括aes计算单元1至aes计算单元12,及aes192计算单元13;aes256加密需15次计算,aes256加密所需的计算单元包括aes计算单元1至aes计算单元14,及aes256计算单元15。
37.其中,所述aes计算单元1至aes计算单元10用于aes128加密、aes192加密和aes256加密,三种不同的加密模式复用;所述aes计算单元11和aes计算单元12用于aes192加密和aes256加密,两种不同的加密模式复用。
38.其中,所述aes计算单元1的处理计算包括轮密钥加,aes计算单元2至aes计算单元14的处理计算包括字节替换、行移位、列混合和轮密钥加。
39.其中,所述aes128计算单元11、aes192计算单元13和aes256计算单元15,三者的处理计算相同,分别复用了aes计算单元11、aes计算单元13和aes计算单元15中的处理计算,包括:字节替换、行移位、轮密钥加。
40.其中,如图5所示,aes加密单元运算操作包括:1、轮密钥加;2、字节替换;3、行移位;4、列混合;根据key(密钥)的位宽不同,对应的aes迭代次数也不同,在每次计算中,均需要传递对应的轮密钥w[i]。
[0041]
当key的位宽为128bit(位)时,对应aes128总的计算次数为11次,需要的轮密钥包含:w[0]、w[1]、

w[43],对应图中i的取值范围为[1,9],j=10。
[0042]
当key的位宽为192bit时,对应aes192总的计算次数为13次,需要的轮密钥包含:w[0]、w[1]、

w[51],对应图中i的取值范围为[1,11],j=12。
[0043]
当key的位宽为256bit时,对应aes256总的计算次数为15次,需要的轮密钥包含:w[0]、w[1]、

w[59],对应图中i的取值范围为[1,13],j=14。
[0044]
其中,在本实施例中,所述aes128计算单元11,aes192计算单元13及aes256计算单元15的处理计算包括字节替换、行移位和轮密钥加。
[0045]
其中,如图6所示,sm4加密流程中轮次与状态信息对应关系,f(round 1)—[x0、x1、x2、x3]、f(round 2)—[x2、x3、x4、x5]、

、f(round i)—[x
2i
、x
2i 1
、x
2i 2
、x
2i 3
]、

、f(round 16)—[x
32
、x
33
、x
34
、x
35
],迭代次数为16轮次。xi表示为sm4加密运算前所需的状态信息;f(round i)表示第i轮次sm4加密计算单元。
[0046]
其中,如图7所示的sm4中单轮次加密处理流程的加密函数可表示成如下形式:[x
i 4
,x
i 5
]=[f(xi,x
i 1
,x
i 2
,x
i 3
,rki),f(x
i 1
,x
i 2
,x
i 3
,x
i 4
,rk
i 1
)]=[xi⊕
t(x
i 1

x
i 2

x
i 3

rki),x
i 1

t(x
i 2

x
i 3

x
i 4

rk
i 1
)];其中t变换是一个合成变换,由非线性变换τ(sbox查表替换)和线性变换l(循环移位操作)复合而成,即t(x)=l(τ(x))。但是,需要注意的有以下3点:a、本方案中的单轮次加密处理流程可以理解为传统sm4的两次加密处理流程;b、本方案中的单轮次生成的状态信息较传统sm4生成的状态信息只有1个相比,多1个;c、本方案中的单轮次处理前的4个状态信息按如下方式更替:[x0、x1、x2、x3]、[x2、x3、x4、x5]、

[x
2i
、x
2i 1
、x
2i 2
、x
2i 3
]、

[x
32
、x
33
、x
34
、x
35
]。
[0047]
其中,如图3所示,该硬件加速装置集成了sm4、aes128、aes192和aes256四种加密
处理流程,共16级运算。该硬件加速装置成了4种加密方式,可通过sm4_en、aes128_en、aes192_en进行配置,默认情况是开启aes256。
[0048]
4种加密方式与sm4_en、aes128_en、aes192_en的配置关系如下表所示:
[0049]
sm4_enaes128_enaes192_en描述onoffoff开启sm4offonoff开启aes128offoffon开启aes192offoffoff开启aes256
[0050]
该硬件加速装置中的单轮次加密计算单元集成了单轮次sm4计算单元和单轮次aes计算单元。其中,单轮次的sm4计算单元处理流程如图7所示;单轮次的aes计算单元处理流程如图5所示。加密计算单元1中包含的aes计算单元1的处理流程为轮密钥加,与图5中aes计算单元1一致。加密计算单元2-14中分别包含的aes计算单元2-14的处理流程包含:字节替换、行移位、列混合和轮密钥加,与图5中aes计算单元2-14一致。在加密计算单元11、加密计算单元13和加密计算单元15分别包含了aes128计算单元11、aes192计算单元13和aes256计算单元15,是为了标识出aes128、aes192和aes256生成密文前的计算单元的处理流程同图5中aes计算单元15一致,包含:字节替换、行移位、轮密钥加。在硬件设计时,可以采用复用技术,不存在过多地消耗硬件资源。其中,sm4、aes128、aes192和aes256加密处理需要处理的级数分别是:16、11、13和15。
[0051]
其中,如图8所示的aes256加密4kb数据流的应用示意图;如图9所示的sm4加密4kb数据流的应用示意图;以加密方式为aes256,加密模式为ecb,明文数据4kb(32768bit)为例,进行如下说明:将256bit key经过set aes256 key中的key expand处理后生成1920bit的random key;将4kb明文数据按照颗粒度为128bit和1920bit random key经过aes256加密运算单元处理后生成4kb的密文。aes256加密处理中的数据流通路如图8所示。图中datai,j表示加密计算单元j处理的数据块为i。在aes256加密计算单元共15轮次,对应j的取值范围[1:15];4kb明文数据按照颗粒度128bit换算成的数据块共256个,对应i的取值范围[0:255]。可以看到明文中的每个数据块在经过15轮次的加密计算后生成对应的密文。例如第1、2、

256个明文块对应生成的密文块分别data0,15、data1,15、

、data255,15。连续输入的明文块经过加密运算单元后对应生成的密文块也是连续的,提升了硬件处理数据的吞吐率。
[0052]
其中,该装置中集成的加密方式的多种组合也是属于本方案的变形,属于本发明的保护范围内。
[0053]
请参阅图4所示,本发明还公开了硬件加速方法,基于如上述所述的硬件加速装置,包括以下步骤:
[0054]
s1,获取128位明文;
[0055]
s1,根据128位明文,通过sm4计算单元1至sm4计算单元16,16次迭代计算,以得出sm4密文;通过aes计算单元1至aes计算单元10,及aes128计算单元11,11次迭代计算,以得出aes128密文;通过aes计算单元1至aes计算单元12,及aes192计算单元13,13次迭代计算,以得出aes192密文;通过aes计算单元1至aes计算单元14,及aes256计算单元15,15次迭代计算,以得出aes256密文。
[0056]
其中,所述aes计算单元1至aes计算单元10用于aes128加密、aes192加密和aes256加密,三种不同的加密模式复用;所述aes计算单元11和aes计算单元12用于aes192加密和aes256加密,两种不同的加密模式复用。
[0057]
其中,所述aes计算单元1的处理计算包括轮密钥加,aes计算单元2至aes计算单元14的处理计算包括字节替换、行移位、列混合和轮密钥加。
[0058]
其中,所述aes128计算单元11、aes192计算单元13和aes256计算单元15,三者的处理计算相同,分别复用了aes计算单元11、aes计算单元13和aes计算单元15中的处理计算,包括:字节替换、行移位、轮密钥加。
[0059]
其中,加密计算单元1中包含的aes计算单元1的处理流程为轮密钥加,与图5中aes计算单元1一致。加密计算单元2-14中分别包含的aes计算单元2-14的处理流程包含:字节替换、行移位、列混合和轮密钥加,与图5中aes计算单元2-14一致。在加密计算单元11、加密计算单元13和加密计算单元15分别包含了aes128计算单元11、aes192计算单元13和aes256计算单元15,是为了标识出aes128、aes192和aes256生成密文前的计算单元的处理流程同图5中aes计算单元15一致,包含:字节替换、行移位、轮密钥加。
[0060]
本发明针对传统的aes/sm4加解密中轮次计算进行优化,将sm4的轮次由32次降至16次,使其与aes128/192/256轮次计算次数接近;sm4 aes算法的数据处理单元具有单流向特性,可将每轮的迭代看作为一级流水线,将16轮迭代分为16级流水线,每级运算的时间相同,从而大幅提升了加解密速度,通过集成和复用的方式,在不过多占用硬件资源的情形下,支持4种加密模式;对传统aes/sm4加密处理流程进行优化,大幅提升了加解密速度,使得整个系统的吞吐率达到最优。
[0061]
需要说明的是,所属领域的技术人员可以清楚地了解到,上述方法实施例的具体实现过程,可以参考前述硬件加速装置和各单元的的相应描述,为了描述的方便和简洁,在此不再赘述。
[0062]
上述硬件加速装置可以实现为一种计算机程序的形式,该计算机程序可以在如图10所示的硬件加速设备上运行。
[0063]
请参阅图10,图10是本技术实施例提供的硬件加速设备的示意性框图;该硬件加速设备500可以是终端,也可以是服务器,其中,终端可以是智能手机、平板电脑、笔记本电脑、台式电脑、个人数字助理和穿戴式设备等具有通信功能的电子设备。服务器可以是独立的服务器,也可以是多个服务器组成的服务器集群。
[0064]
参阅图10,该硬件加速设备500包括通过系统总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括非易失性存储介质503和内存储器504。
[0065]
该非易失性存储介质503可存储操作系统5031和计算机程序5032。该计算机程序5032包括程序指令,该程序指令被执行时,可使得处理器502执行硬件加速方法。
[0066]
该处理器502用于提供计算和控制能力,以支撑整个硬件加速设备500的运行。
[0067]
该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行硬件加速方法。
[0068]
该网络接口505用于与其它设备进行网络通信。本领域技术人员可以理解,图10中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的硬件加速设备500的限定,具体的硬件加速设备500可以包括比图中所示更多或更
少的部件,或者组合某些部件,或者具有不同的部件布置。
[0069]
应当理解,在本技术实施例中,处理器502可以是中央处理单元(central processing unit,cpu),该处理器502还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0070]
本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成。该计算机程序包括程序指令,计算机程序可存储于一存储介质中,该存储介质为计算机可读存储介质。该程序指令被该计算机系统中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。
[0071]
因此,本发明还提供一种存储介质。该存储介质可以为计算机可读存储介质。该存储介质存储有计算机程序,其中计算机程序包括程序指令,所述程序指令当被处理器执行时可实现上述的硬件加速方法。
[0072]
所述存储介质可以是u盘、移动硬盘、只读存储器(read-only memory,rom)、磁碟或者光盘等各种可以存储程序代码的计算机可读存储介质。
[0073]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0074]
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
[0075]
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本发明实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。
[0076]
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台硬件加速设备(可以是个人计算机,终端,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
[0077]
上述实施例为本发明较佳的实现方案,除此之外,本发明还可以其它方式实现,在不脱离本技术方案构思的前提下任何显而易见的替换均在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献