APP下载

对分组密码算法ARIA算法不可能差分分析的改进

2020-03-13欧海文王湘南李艳俊雷亚超

计算机应用与软件 2020年3期

欧海文 王湘南 李艳俊 雷亚超

1(北京电子科技学院信息安全系 北京 100070)2(西安电子科技大学通信工程学院 陕西 西安 710071)

0 引 言

ARIA算法[1]由韩国学者设计,从开始的ARIA 0.8版、ARIA 1.0版和ARIA 1.2版,确定最终版本为1.2版。ARIA算法是分组长度为128 bit的SPN型的分组密码[2],密钥长度支持:128 bit、192 bit和256 bit,迭代轮数分别为12、14、16轮[3]。采用了与AES算法[4]相似的结构,很多AES算法的分析方法也适用于ARIA,结合ARIA算法的研究,实现了对ARIA算法的不可能差分攻击。

不可能差分分析是由Knudsen和Biham分别独立提出[5-6]。与差分不同,不可能差分分析的理念是凭借概率为0的差分特征,将那些会导致概率为0的差分出现的候选密钥去除,因为若使用正确的密钥来对明文进行加密,不可能得到这样的密文差分特征[3]。筛除这些候选密钥值,剩下的就是正确的密钥值。

1 ARIA算法

1.1 ARIA算法介绍

ARIA是分组长度为128 bit的SPN型密码,ARIA每一轮由3个部件构成:

1) 轮密钥加(RKA)。由每一轮的输入状态和轮密钥ki两者之间按字节进行异或构成,而轮密钥ki是由密钥扩展算法得到的。

SLo=S1S2S1-1S2-1S1S2S1-1S2-1S1S2S1-1S2-1S1S2S1-1S2-1

SLe=S1-1S2-1S1S2S1-1S2-1S1S2S1-1S2-1S1S2S1-1S2-1S1S2

SLo、SLe分别在单数轮中用和在双数轮中用。

y0=x3⊕x4⊕x6⊕x8⊕x9⊕x13⊕x14y1=x2⊕x5⊕x7⊕x8⊕x9⊕x12⊕x15y2=x1⊕x4⊕x6⊕x10⊕x11⊕x12⊕x15y3=x0⊕x5⊕x7⊕x10⊕x11⊕x13⊕x14y4=x0⊕x2⊕x5⊕x8⊕x11⊕x14⊕x15y5=x1⊕x3⊕x4⊕x9⊕x10⊕x14⊕x15y6=x0⊕x2⊕x7⊕x9⊕x10⊕x12⊕x13y7=x1⊕x3⊕x6⊕x8⊕x11⊕x12⊕x13y8=x0⊕x1⊕x4⊕x7⊕x10⊕x13⊕x15y9=x0⊕x1⊕x5⊕x6⊕x11⊕x12⊕x14y10=x2⊕x3⊕x5⊕x6⊕x8⊕x13⊕x15y11=x2⊕x3⊕x4⊕x7⊕x9⊕x12⊕x14y12=x1⊕x2⊕x6⊕x7⊕x9⊕x11⊕x12y13=x0⊕x3⊕x6⊕x7⊕x8⊕x10⊕x13y14=x0⊕x3⊕x4⊕x5⊕x9⊕x11⊕x14y15=x1⊕x2⊕x4⊕x5⊕x8⊕x10⊕x15

1.2 符号说明

本文使用的符号及标注如表1所示。

表1 使用的符号及标注

续表1

2 对7轮ARIA-256的不可能差分分析

在Yu Sasaki和Yosuke Todo给出的4轮不可能差分区分器上添加2轮前置路径、1轮后置路径,得到7轮不可能差分路径。

2.1 ARIA算法的2个性质

性质1如图1所示,存在一差分对,在字节(1,4)处差分值非0,其余字节处差分值为0,4轮变换后,ΔX4的差分特征不会是如下式子:

(h⊕g,0,0,0,h⊕g,h,h,0,0,h,0,0,0,g,0,g)

这一不可能差分性质可用下式表示:

(0,a,0,0,a,0,0,0,0,0,0,0,0,0,0,0)→/

(h⊕g,0,0,0,h⊕g,h,h,0,0,h,0,0,0,g,0,g)

式中:a、h和g为任意非零值。

图1 ARIA算法的4轮不可能差分

登录APP查看全文