掌桥专利:专业的专利平台
掌桥专利
首页

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

文献发布时间:2024-04-18 19:54:45


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

技术领域

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

背景技术

随着信息技术的高速发展,嵌入式设备得到普及,其通信安全也越来越受到重视。由于嵌入式设备存储空间、运行速度的制约,加密速度快、易于实现的分组加密算法如经典的高级加密标准AES等被广泛研究与应用。

近几年,国内外不少研究者基于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。

2021年,刘等人[1]基于AES算法提出一个高效的密码算法ROCCA。ROCCA能利用SIMD指令集里的AESNI指令集在软硬件资源充裕的高端设备环境下进行高效实现,但AESNI指令集是一种特殊的SIMD指令集,应用成本高,其在资源受限的嵌入式设备中难以使用,这导致ROCCA算法在资源受限的嵌入式设备中实现效率低下。此外,2022年,Musashino等人[2]提出对ROCCA的完全密钥恢复攻击,表明ROCCA算法的安全性也存在一定的缺陷。

参考文献:

[1]Sakamoto K,Liu F,Nakano Y,et al.Rocca:An Efficient AES-basedEncryption Scheme for Beyond 5G[J].IACR Trans on Symmetric Cryptology,2021,2021(2)1-30。

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

发明内容

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

实现本发明目的的技术方案是:

一种针对ROCCA算法的改进算法SAFE的实现方法,包括如下步骤:

(1)SAFE算法轮函数设计

SAFE算法轮函数结构与ROCCA算法一样,采用八输入八输出的结构,由P置换和非线性部件构成;为提高算法的安全性,通过搜索和测试,重新选取了比ROCCA算法扩散混淆性更好的P置换;为降低实现开销,以便于在ARM Cortex系列嵌入式微处理器中利用半固定切片进行实现,将ROCCA算法非线性部件中一轮迭代的4个AES部件,改为采用4个AES二轮迭代(AES

(2)SAFE算法整体结构设计

为提高算法的安全性,SAFE算法对ROCCA算法结构进行了改进,一方面增加了2组操作,即密钥异或初始化和密钥异或生成标签,使得SAFE算法结构包括初始化、密钥异或初始化、处理关联数据、加密明文、密钥异或生成标签和生成标签六个部分;

另一方面SAFE算法对ROCCA算法的初始化、加密明文和生成标签部分进行了相应修改,具体地,在初始化部分,基于设计的轮函数结构及差分分析评估,在初始化时将ROCCA轮函数迭代次数由20轮减少为9轮;在加密明文部分,将明文与状态位的简单异或操作改成明文与状态位的非线性操作NL,并将2个不同的128比特明文块作为轮函数R的输入参数进一步更新状态,使得明文块能更好地混淆以防止攻击者利用明文块轻易恢复密码算法内部状态,相比ROCCA,SAFE能更好的抵抗密钥恢复攻击;在生成标签部分,同样基于设计的轮函数结构及差分分析评估,轮函数迭代次数由ROCCA的20轮减少到9轮;

(3)SAFE算法针对ARM Cortex系列嵌入式微处理器的实现方法

在配置好运行工具Keil uVision5和串口调试工具XCOM的环境后,根据SAFE算法结构确定输入、输出变量以及实现模块,利用半固定切片AES技术在STM32F4开发板上对SAFE进行集成实现。

本发明的有益效果是:

(1)本发明针对ROCCA算法的安全性问题及效率问题,基于半固定切片AES技术设计了一种针对资源受限ARM环境下的ROCCA改进算法SAFE的实现方法,该算法在安全性和实现成本及实现性能上都优于ROCCA算法。

(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轮活跃S盒下界大于219个,因此,相比于ROCCA的20轮,SAFE轮函数即使设置为9轮,其依然能很好地抵抗差分攻击,且抵抗差分攻击的安全性高于ROCCA算法。

(3)针对ROCCA算法被全轮密钥恢复攻击的安全性问题,本发明SAFE算法通过密钥前馈的解决方案和在加密明文部分引入NL操作能很好的抵抗密钥恢复攻击。

附图说明

图1为本发明改进算法SAFE的整体结构示意图;

图2为本发明改进算法SAFE轮函数R结构图;

图3为本发明改进算法SAFE加密结构图;

图4为本发明改进算法SAFE解密结构图;

图5为在STM32F4开发板上SAFE与ROCCA的加密的速度对比图。

具体实施方式

下面结合附图和实施例对本发明内容作进一步的说明,但不是对本发明的限定。

实施例

一种针对ROCCA算法的改进算法SAFE的实现方法,包括如下步骤:

(1)SAFE算法轮函数设计

SAFE轮函数结构与ROCCA算法一样,采用八输入八输出的结构,由P置换和非线性部件构成;

(2)SAFE算法整体结构设计

参照图1,SAFE算法结构包括初始化、密钥异或初始化、处理关联数据、加密明文、密钥异或生成标签和生成标签六个部分;

(3)SAFE算法针对ARM Cortex系列嵌入式微处理器的实现方法

在配置好运行工具Keil uVision5和串口调试工具XCOM的环境后,根据SAFE算法结构确定输入、输出变量以及实现模块,利用半固定切片AES技术在STM32F4开发板上对SAFE进行集成实现。

进一步地,实施例中,步骤(1)所述的SAFE算法轮函数设计,参照图2,具体步骤如下:

(1.1)SAFE轮函数输入输出都是8个128比特的状态,首先对输入状态进行一个P置换打乱输入状态顺序,其次对P置换后的状态通过非线性部件进行操作获得输出状态,其中非线性部件由4个异或部件和4个AES二轮迭代(AES

(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是基于固定切片AES扩展的,目的是缩减在受限制的嵌入式设备实现的代码量;为降低SAFE算法在嵌入式设备的实现开销,以便于在ARM Cortex系列嵌入式微处理器中利用半固定切片进行实现,故基于半固定切片AES的实现思想,将ROCCA算法非线性部件中一轮迭代的4个AES部件,改为采用4个AES二轮迭代(AES

(1.4)基于新的P置换和变换的非线性部件,SAFE轮函数结构具体描述如下:

轮函数R从输入到输出用R(S,x

以S

SAFE轮函数状态更新计算如公式(1)所示:

进一步地,实施例中,步骤(2)所述的SAFE算法整体结构设计,参照图1,具体步骤如下:

(2.1)SAFE算法初始化:

为使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)密钥异或初始化:

因ROCCA算法128比特的标签太小容易被恢复内部状态,故SAFE算法通过在初始化部分完成后,添加某些状态位与密钥异或的操作来防止攻击者在不知道密钥的情况下进一步的密钥恢复攻击,即基于(2.1)初始化部分更新后得到的新状态,从中选取S

其中,K

(2.3)处理关联数据:

同ROCCA算法,SAFE算法根据关联数据长度,以256比特为单位划分迭代次数,通过轮函数R来获得新的状态;

(2.4)加密明文:在加密明文部分,通过以下操作来提高SAFE抵抗状态恢复攻击的能力;

(2.4.1)考虑到防止攻击者利用解密先知轻易获得完整的内部状态,首先,采用AES

其中M

(2.4.2)其次,采用

(2.5)密钥异或生成标签:

为防止伪造攻击,在生成128比特的标签前,增加密钥异或生成标签部分完成某些状态位与密钥异或的操作,使得攻击者即使知道内部状态,但在不知道密钥的情况下,攻击者也不能进行伪造攻击,具体地,首先基于(2.4)加密明文部分更新后得到的新状态,从中选取状态位S

(2.6)生成标签:

与(2.1)所述相同的测试方法确定迭代轮函数次数由20轮减少到9轮来更好的抵抗差分攻击;且相比ROCCA,SAFE在生成标签部分少了8个AES指令操作和44个XOR指令操作,更适用于在嵌入式设备高效实现。

进一步地,实施例中,步骤(3)所述的SAFE算法针对ARM Cortex系列嵌入式微处理器的实现方法,参照图3,具体步骤如下:

(3.1)在Keil uVision5开发工具里进行开发,导入需要的头文件#include"sys.h"、#include"delay.h"、#include"usart.h"、#include"beep.h"和#include"key.h";

(3.2)设置初始化的延迟为168,串口初始化波特率为115200;

(3.3)通过下列操作对SAFE算法加密一次;

(3.3.1)输入128比特的随机数N和256比特的密钥KEY,其=中256比特的密钥KEY分为高128比特的密钥KEY

设置z

(3.3.2)根据(3.3.1)得到的S以及z

(3.3.3)根据(3.3.2)得到的新的S

(3.3.4)输入256比特关联数据AD,其中AD分为高128比特AD

(3.3.5)如果输入AD非空,根据(3.3.3)得到的S

(3.3.6)输入明文P、P的比特长度size以及状态S

(3.3.6.1)计算迭代的次数d=size/512,根据迭代次数d对明文P以512比特为单位进行划分,且每一次迭代过程中512比特明文再划分为P

(3.3.6.2)每一次迭代过程中,CT

(3.3.6.3)根据S

(3.3.6.4)d=d-1;

(3.3.6.5)若d不为0则转(3.3.6.2)继续迭代;否则结束迭代计算,转(3.3.7);

(3.3.7)通过CT

(3.3.8)根据(3.3.6)得到的新的S

(3.3.9)根据S

(3.3.10)根据更新的S

(3.3.11)完成一次加密;

参照图4,在该环境下,解密过程在初始化、密钥异或初始化和处理关联数据这三部分与上述加密步骤(3.3.1)~(3.3.5)相同;在加密明文部分,在步骤(3.3.6)~(3.3.7)中将明文参数P和密文参数CT对换;在密钥异或生成标签部分与上述加密步骤(3.3.8)相同;在最后生成标签部分,首先根据S

参照图5,在ARM Cortex系列嵌入式微处理器的嵌入式设备中,本发明所述的SAFE算法基于半固定切片技术减少了较多的操作,相比ROCCA算法降低了硬件实现成本,提高了数据加解密的实现速度,测试SAFE算法的吞吐量cpb指标,cpb是加密所用的时钟周期数,其值越小越好,结果表明SAFE算法加解密速度约为ROCCA算法的2.35倍。

技术分类

06120116380451