【技术实现步骤摘要】
一种基于AES
‑
NI指令集的SM4快速软件实现方法
[0001]本专利技术属于计算机软件工程和安全技术交叉领域,具体涉及一种基于AES
‑
NI指令集的SM4快速软件实现方法,能够提升SM4算法的实现效率。
技术介绍
[0002]随着处理器性能的提升,目前大部分CPU架构都提供了基于硬件加速的扩展指令集。为了进一步提高软件实现速度,国内外许多学者开始尝试将SIMD指令集,如AVX2指令集应用到密码算法的软件快速实现中。在SIMD指令集中,AES
‑
NI指令集是Intel推出的实现AES算法的方案,从硬件设计上大幅度提升了AES算法的实现效率。
[0003]SM4算法作为我国自主设计的第一个商用对称密码算法,在各个领域都有广泛的应用。由于针对AES算法指令集的推出,SM4的性能明显落后于AES的实现。AES算法和SM4算法的S盒所使用的不可约多项式都为GF(28)上的多项式,通过找到有限域之间的同构关系,将SM4的S盒映射到AES的S盒上,利用AES
‑
NI指令集实现SM4算法,能够提高SM4算法的实现效率。
技术实现思路
[0004]本专利技术基于AVX2指令集以及AES
‑
NI扩展指令集,提出了一种新的SM4快速软件实现方法。专利技术涉及一个部分:通过找到SM4算法的S盒与AES算法的S盒的有限域之间的同构关系,利用AES
‑
NI指令集提高了SM4算法的实现效率。
[0005] ...
【技术保护点】
【技术特征摘要】
1.一种基于AES
‑
NI指令集的SM4快速软件实现方法,其特征在于,包括以下几个步骤:步骤1:同构映射矩阵求解:将SM4算法中S盒的有限域和AES算法中S盒的有限域映射至同一个复合域上,得到有限域之间的同构映射矩阵;步骤2:S盒表达式求解:基于映射矩阵给出SM4算法中S盒的代数表达式;步骤3:AES
‑
NI指令集实现S盒:使用AES
‑
NI指令集实现SM4算法中的S盒;步骤4:实现SM4算法:对数据进行编排,实现8组数据的并行加解密;步骤5:矩阵运算优化:使用AVX2指令集中的shuffle指令实现轮函数中的矩阵运算。2.根据权利要求1所述的基于AES
‑
NI指令集的SM4快速软件实现方法,其特征在于,步骤1中,将SM4算法中S盒的有限域和AES算法中S盒的有限域映射到同一个复合域上,求出各自的映射矩阵T1和T2,之后通过T1和T2求出两个有限域之间的映射矩阵T。3.根据权利要求1所述的基于AES
‑
NI指令集的SM4快速软件实现方法,其特征在于,步骤2中,基于同构映射矩阵,给出SM4算法中S盒新的代数表达式:S
SM4
(x)=ATA
·
S
AES
(TA
·
x+TC)+ATA...
【专利技术属性】
技术研发人员:郭华,陈晨,龚子睿,霍嘉荣,刘源灏,张习勇,刘建伟,
申请(专利权)人:北京航空航天大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。