一种针对ROCCA算法的改进算法SAFE的实现方法技术

技术编号:38193906 阅读:10 留言:0更新日期:2023-07-20 21:13
本发明专利技术针对ROCCA算法的安全性问题和其在资源受限的嵌入式环境下的低效实现问题,在ARM Cortex系列嵌入式微处理器环境下,提供一种针对ROCCA算法的改进算法SAFE的实现方法。SAFE轮函数采用AES二次迭代的部件,使SAFE在资源受限的嵌入式设备中能基于半固定切片进行高效实现;且为提高算法安全性,SAFE算法对ROCCA算法结构进行了改进,一方面增加了密钥异或初始化和密钥异或生成标签的二组操作,另一方面对ROCCA算法的初始化、加密明文和生成标签部分进行了相应修改,相比ROCCA,SAFE能更好的抵抗密钥恢复攻击、状态恢复攻击和差分攻击,具有更好的安全性。具有更好的安全性。具有更好的安全性。

【技术实现步骤摘要】
一种针对ROCCA算法的改进算法SAFE的实现方法


[0001]本专利技术涉及信息安全领域,具体是在ARM Cortex系列嵌入式微处理器环境下,提供一种针对ROCCA算法的改进算法SAFE的实现方法。

技术介绍

[0002]随着信息技术的高速发展,嵌入式设备得到普及,其通信安全也越来越受到重视。由于嵌入式设备存储空间、运行速度的制约,加密速度快、易于实现的分组加密算法如经典的高级加密标准AES等被广泛研究与应用。
[0003]近几年,国内外不少研究者基于ARM Cortex系列嵌入式微处理器研究分组密码算法AES的优化实现。2018年,Benjamin等人基于ARM Cortex

A8,利用比特切片的AES的16个独立S盒实现数据级并行。2020年亚密会,Wang等人利用ARM Cortex

M系列板,将AES字节替换的速度提高了33%,并且节省了68%的随机比特。2021年,Alexandre等人利用固定切片技术在ARM Cortex

M系列上对AES

128进行实现,减少了AES

128线性层所需的52%操作量;同时,Alexandre等人完成了半固定切片技术在ARM上对AES

128的实现,其相对于固定切片实现代码量缩小一半以上,更适用于嵌入式设备。其中,半固定切片AES是基于固定切片AES扩展的,当AES应用固定切片技术实现时,首先固定AES一轮中比特位不变,即相当于省略了行移位操作;其次,为了S盒操作比特位能对齐,AES一轮中的其他切片也需固定不动;最后,调整AES连续四轮的列混淆操作。固定切片AES的缺点是需要四种不同的线性层实现,导致代码量增加,为了解决这个问题,每两轮计算一次行移位,这样就只需要两个不同的列混淆实现,即半固定切片AES。
[0004]2021年,刘等人[1]基于AES算法提出一个高效的密码算法ROCCA。ROCCA能利用SIMD指令集里的AESNI指令集在软硬件资源充裕的高端设备环境下进行高效实现,但AESNI指令集是一种特殊的SIMD指令集,应用成本高,其在资源受限的嵌入式设备中难以使用,这导致ROCCA算法在资源受限的嵌入式设备中实现效率低下。此外,2022年,Musashino等人[2]提出对ROCCA的完全密钥恢复攻击,表明ROCCA算法的安全性也存在一定的缺陷。
[0005]参考文献:
[0006][1]Sakamoto K,Liu F,Nakano Y,et al.Rocca:An Efficient AES

based Encryption Scheme for Beyond 5G[J].IACR Trans on Symmetric Cryptology,2021,2021(2)1

30。
[0007][2]Hosoyamada A,Inoue A,Ito R,et al.Cryptanalysis of Rocca and feasibility of its security claim[J].IACR Trans on Symmetric Cryptology,2022,2022(1)123

151。

技术实现思路

[0008]本专利技术的目的是针对ROCCA算法的安全性问题和其在资源受限的嵌入式环境下的低效实现问题,在ARM Cortex系列嵌入式微处理器环境下,提供针对ROCCA算法的改进算法
SAFE的实现方法。SAFE轮函数采用AES二次迭代的部件,使SAFE在资源受限的嵌入式设备中能基于半固定切片进行高效实现;且为提高算法安全性,SAFE算法对ROCCA算法结构进行了改进,一方面增加了密钥异或初始化和密钥异或生成标签的二组操作,另一方面对ROCCA算法的初始化、加密明文和生成标签部分进行了相应修改,相比ROCCA算法,SAFE算法能更好的抵抗密钥恢复攻击、状态恢复攻击和差分攻击,具有更好的安全性。
[0009]实现本专利技术目的的技术方案是:
[0010]一种针对ROCCA算法的改进算法SAFE的实现方法,包括如下步骤:
[0011](1)SAFE算法轮函数设计
[0012]SAFE算法轮函数结构与ROCCA算法一样,采用八输入八输出的结构,由P置换和非线性部件构成;为提高算法的安全性,通过搜索和测试,重新选取了比ROCCA算法扩散混淆性更好的P置换;为降低实现开销,以便于在ARM Cortex系列嵌入式微处理器中利用半固定切片进行实现,将ROCCA算法非线性部件中一轮迭代的4个AES部件,改为采用4个AES二轮迭代(AES2)部件完成,同时在初始化等操作中降低轮函数的迭代次数;
[0013](2)SAFE算法整体结构设计
[0014]为提高算法的安全性,SAFE算法对ROCCA算法结构进行了改进,一方面增加了2组操作,即密钥异或初始化和密钥异或生成标签,使得SAFE算法结构包括初始化、密钥异或初始化、处理关联数据、加密明文、密钥异或生成标签和生成标签六个部分;
[0015]另一方面SAFE算法对ROCCA算法的初始化、加密明文和生成标签部分进行了相应修改,具体地,在初始化部分,基于设计的轮函数结构及差分分析评估,在初始化时将ROCCA轮函数迭代次数由20轮减少为9轮;在加密明文部分,将明文与状态位的简单异或操作改成明文与状态位的非线性操作NL,并将2个不同的128比特明文块作为轮函数R的输入参数进一步更新状态,使得明文块能更好地混淆以防止攻击者利用明文块轻易恢复密码算法内部状态,相比ROCCA,SAFE能更好的抵抗密钥恢复攻击;在生成标签部分,同样基于设计的轮函数结构及差分分析评估,轮函数迭代次数由ROCCA的20轮减少到9轮;
[0016](3)SAFE算法针对ARM Cortex系列嵌入式微处理器的实现方法
[0017]在配置好运行工具Keil uVision5和串口调试工具XCOM的环境后,根据SAFE算法结构确定输入、输出变量以及实现模块,利用半固定切片AES技术在STM32F4开发板上对SAFE进行集成实现。
[0018]本专利技术的有益效果是:
[0019](1)本专利技术针对ROCCA算法的安全性问题及效率问题,基于半固定切片AES技术设计了一种针对资源受限ARM环境下的ROCCA改进算法SAFE的实现方法,该算法在安全性和实现成本及实现性能上都优于ROCCA算法。
[0020](2)本专利技术SAFE算法具有更好的抵抗差分攻击能力,SAFE在初始化时,在单密钥设置下以MILP求解器测的第1轮活跃S盒数量下界比ROCCA算法第3轮活跃S盒数量下界多2个,第2轮跟ROCCA算法第5轮一样,第3轮比ROCCA算法第7轮多8个,第4轮比ROCCA算法第9轮多9个,第5轮比ROCCA算法第11轮多25个,ROCCA的第20轮活跃S盒下界大于186个,而SAFE的第9本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种针对ROCCA算法的改进算法SAFE的实现方法,其特征在于,包括如下步骤:(1)SAFE算法轮函数设计SAFE轮函数结构与ROCCA算法一样,采用八输入八输出的结构,由P置换和非线性部件构成;(2)SAFE算法整体结构设计SAFE算法结构包括初始化、密钥异或初始化、处理关联数据、加密明文、密钥异或生成标签和生成标签六个部分;SAFE算法对ROCCA算法结构进行了改进,一方面增加了2组操作,即密钥异或初始化和密钥异或生成标签;另一方面SAFE算法对ROCCA算法的初始化、加密明文和生成标签部分进行了相应修改,具体地,在初始化部分,基于设计的轮函数结构及差分分析评估,在初始化时将ROCCA轮函数迭代次数由20轮减少为9轮;在加密明文部分,将明文与状态位的简单异或操作改成明文与状态位的非线性操作NL,并将2个不同的128比特明文块作为轮函数R的输入参数进一步更新状态;在生成标签部分,同样基于设计的轮函数结构及差分分析评估,轮函数迭代次数由ROCCA的20轮减少到9轮;(3)SAFE算法针对ARM Cortex系列嵌入式微处理器的实现方法在配置好运行工具Keil uVision5和串口调试工具XCOM的环境后,根据SAFE算法结构确定输入、输出变量以及实现模块,利用半固定切片AES技术在STM32F4开发板上对SAFE进行集成实现。2.根据权利要求1所述的针对ROCCA算法的改进算法SAFE的实现方法,其特征在于:步骤(1)所述的SAFE算法轮函数设计,具体步骤如下:(1.1)SAFE轮函数输入输出都是8个128比特的状态,首先对输入状态进行一个P置换打乱输入状态顺序,其次对P置换后的状态通过非线性部件进行操作获得输出状态,其中非线性部件由4个异或部件和4个AES二轮迭代AES2部件构成;(1.2)为提高SAFE算法的安全性,重新选取了比ROCCA轮函数结构扩散混淆性更好的P置换,其通过以下的穷搜法获取新的P置换:(1.2.1)随机打乱8个128比特的输入状态,通过搜索获得新的P置换;(1.2.2)测试新的P置换的严格雪崩效应,若新的P置换严格雪崩效应效果更好则转(1.2.3),否则转(1.2.1)继续穷搜;(1.2.3)通过MILP求解器测试新的P置换下的轮函数活跃S盒的数量下界,若新的P置换下的轮函数活跃S盒的数量下界大于ROCCA轮函数活跃S盒的数量下界,则选取这个新的P置换作为SAFE的P置换,转(1.2.4)结束搜索,否则转(1.2.1)继续穷搜新的P置换;(1.2.4)结束搜索;(1.3)基于半固定切片AES的实现思想,将ROCCA算法非线性部件中一轮迭代的4个AES部件,改为采用4个AES二轮迭代AES2部件完成,同时基于轮函数结构和差分分析评估在初始化操作中降低轮函数的迭代次数;(1.4)基于新的P置换和变换的非线性部件,SAFE轮函数结构具体描述如下:轮函数R从输入到输出用R(S,x0,x1)

S
new
简要表示,其中以S表示SAFE算法的状态,S由8个部分组成,S=(S0,S1,...S7),每个部分大小都为128比特;x0,x1是128比特常数值;以AES2(X,Y)表示AES二轮迭代,即AES2(X,Y)=AES(AES(X,Y),Y),其中X,Y是128比特变量值,(X,Y)=AES(AES(X,Y),Y),其中X,Y是128比特变量值,MC、SR和SB分别是AES算法中的列混淆、行移位和S盒
的操作;以S
new
表示更新后的状态,即SAFE轮函数对状态S进行更新获得新的状态,其主要包括异或线性运算或AES轮函数的二次调用(AES2)两者运算,其中和是利用异或线性运算获取,而和是利用AES2函数计算所得;SAFE轮函数状态更新计算如公式(1)所示:3.根据权利要求2所述的ROCCA改进算法SAFE的实现方法,其特征在于:步骤(2)所述的SAFE算法整体结构设计,具体步骤如下:(2.1)SAFE算法初始化:首先基于轮函数结构,通过MILP求解器测试初始化部分活跃S盒的下界,然后与ROCCA算法初始化部分活跃S盒下界测试情况进行对比,ROCCA的第20轮活跃S盒下界大于186个,而SAFE的第9轮活跃S盒下界大于219个,因此,确定SAFE在初始化部分将SAFE迭代轮函数次数由20轮减少为9轮,其抵抗差分攻击的安全性高于ROCCA算法;同时,相比ROCCA,SAFE在初始化部分少了8个AES指令操作和44个XOR指令操作,更适用于在嵌入式设备高效实现;(2.2)密钥异或初始化:基于(2.1)初始化部分更新后得到的新状态,从中选取S2和S6,然后通过公式(2)进一步更新状态和和其中,K0和K1分别是256比特的密钥K的高128比特和低128比特;(2.3)处理关联数据:同ROCCA算法,SAFE算法根据关联数据长度,以256比特为单位划分迭代次数,通过轮函数R来获得新的状态;(2.4)在加密明文部分,通过以下操作来提高SAFE抵抗状态恢复攻击的能力;(2.4.1)首先,采用AES2对处理关联数据后获得的新状态的某二个状态位进行操作,让其与明文M进行非线性操作NL来获得密文C,NL操作NL(t0,t1,res)是采用或、与、非的简单逻辑运算来进行非线性运算,t0、t1、res分别为状态位、明文块、输出密文块,且res=((t0^FK)|t1)&(~(t0&t1)^FK2),其中FK和FK2采用的是SM4算法里的128比特系统参数;最终,密文C计算方法如下:
其中M0、M1、M2和M3分别指4个128比特的明文块,C0、C1、C2和C3指4个128比特的密文块;(2.4.2)其次,采用和作为二个参数传入轮函数R(S,M0⊕
M
1,
M2⊕
M3)来进一步更新状态S,这里对明文块进行了混淆使得攻击者不易恢复内部状态;(2.5)密钥异或生成标签:基于(2.4)加密明文部分更新后得到的新状态,从中选取状态位S2和S6,然后通过公式(2)计算并更新状态位置和其余6个状态位其余6个状态位和保持(2.4)加密明文部分更新后的状态;(2.6)生成标签:与(2.1)所述相同的测试方法确定迭代轮函数次数由20轮减少到9轮来更好的抵抗差分攻击。4.根据权利要求3所述的ROCCA改进算法SAFE的实现方法,其特征在于:步骤(3)所述的SAFE算法针对ARM Cortex系列嵌入式微处理器的实现方法,具体步骤如下:(3.1)在Keil uVisi...

【专利技术属性】
技术研发人员:韦永壮李珂悫张润莲武小年
申请(专利权)人:桂林电子科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1