一种混合差分字节级区分器搜索方法技术

技术编号:38669860 阅读:8 留言:0更新日期:2023-09-02 22:48
本发明专利技术涉及一种混合差分字节级区分器搜索方法,属于网络信息安全分组密码设计与分析技术领域。首先对使用(半)字节级置换作为线性扩散层的分组密码中的每一个状态矩阵的每个输入字节和每个输出字节,引入混合差分模式编码变量,并对每一层线性扩散层的异或操作引入概率变量。针对加密流程中的非线性层S盒操作,无需生成新的编码变量。以最小化分组密码中所有线性扩散层XOR操作的概率变量之和为目标,对每一轮线性扩散层的每一个XOR操作的输入(半)字节混合差分编码变量、输出(半)字节混合差分编码变量、概率变量赋予所述限制,建立一个混合整数的线性规划问题;最后通过求解混合整数线性规划问题,获得高概率的混合差分区分器。器。器。

【技术实现步骤摘要】
一种混合差分字节级区分器搜索方法


[0001]本专利技术涉及一种混合差分字节级区分器搜索方法,属于网络信息安全分组密码设计与分析


技术介绍

[0002]对称密码,是指加密和解密使用同一密钥的密码算法,主要用于数据加密。其中,分组密码是一种广泛使用的对称密码。分组密码的加密是指在长度为m比特主密钥的控制下,将固定长度(如n比特)的明文变为相同长度(如果明文长度是n,则密文长度也为n)的密文;解密是指将密文在同一密钥的控制下恢复出明文。n为明文的分组长度,m为主密钥长度,m为正整数,n为正整数。
[0003]分组密码不仅可以用于数据加密,还可用于构造杂凑函数(Hash Function)和消息认证码(MAC,Message Authentication Code)等,这使得分组密码的应用非常广泛。如何设计一个安全高效的分组密码,是信息安全研究领域一个至关重要的课题。
[0004]SPN(替换置换网络)结构,是设计分组密码中最常采用的结构之一。设计一个SPN结构分组密码的核心在于设计一个合适的轮函数,并将轮函数迭代数次以达到足够的安全性。一个将轮函数迭代R次的SPN分组密码,称该分组密码有R轮,其中R为正整数。一个分组长度为N的R轮SPN分组密码,每轮需要使用一个N比特子密钥,每轮用到的子密钥是由该分组密码的主密钥通过一个确定的密钥扩展算法得到的。
[0005]分组长度为N的SPN结构分组密码的轮函数结构通常包括三个操作,如图1所示。这三个操作依次为:
[0006]1.轮密钥异或操作。将轮函数的N个输入比特与相应轮的子密钥进行异或操作,并输出N个输出比特。
[0007]2.分组S盒操作。将轮密钥异或操作中的N个输出比特分成N/w组输出比特,其中w为正整数,N被w整除,从而每组输出比特均为w比特;每组输出比特经过一个S盒后得到新的输出比特,其中所述S盒的输入和输出都为w比特,共有N/w个S盒分别处理经过步骤1的异或操作之后并分组的输出比特。
[0008]如图2所示,为一个S盒的输入输出示意图。一个输入和输出都为w比特的S盒本质上是一个映射:其中是有两个元素的有限域,简称二元域。通常S盒由一个表给出其映射规则,如表1中给出了CRAFT算法的4比特输入4比特输出S盒的映射规则。
[0009]表1:4比特输入4比特输出S盒的映射规则表(十六进制表示)
[0010]x0123456789abcdefS(x)cad3ebf789150246
[0011]由表1可知:S(0)=c、S(1)=a、S(2)=d、S(3)=3、S(4)=e、S(5)=b、S(6)=f、S(7)=7、S(8)=8、S(9)=9、S(a)=1、S(b)=5、S(c)=0、S(d)=2、S(e)=4、S(f)=6。
[0012]3.线性扩散层操作。将分组S盒操作中S盒输出的输出比特经过一个线性变换得到
输出比特作为下一个轮函数的输入比特。
[0013]图1中,分组S盒操作和操作线性扩散层操作也分别称为非线性替换层和线性扩散层。
[0014]现代信息社会中微型计算设备的广泛使用,使得对轻量级分组密码的需求越来越迫切。如何设计一个实现后电路面积小,功耗低又安全的轻量级分组密码,已在密码学界和工业界引起了广泛兴趣。如CRAFT(一种轻量级分组密码的名称)就是一种新型SPN结构的类AES型轻量级可调分组密码,它主要的设计标准之一是有效地抵抗差分故障攻击,同时还应该可以应对线性攻击、差分攻击、积分攻击、中间相遇攻击和零相关攻击等。
[0015]差分攻击是所有已知攻击中的一种重要方法,它通过分析特定明文对的差值对应于密文对的差值的影响来获得某些密钥比特。差分攻击可以用来攻击和分析任何由迭代一个固定的轮函数构造的密码体制,包括SPN分组密码,其中包括DES(Data Encryption Standard,数据加密算法),AES(Advanced Encryption Standard,高级加密标准)以及CRAFT(一种类AES轻量级分组密码)和Midori(一种轻量级分组密码算法的名称)。其中,CRAFT算法是一种新型SPN结构的类AES型轻量级可调分组密码算法,可以有效地抵抗差分故障攻击,以半字节作为单个元素构成4*4矩阵进行非线性层操作与线性层操作,具体的非线性混淆层以及线性扩散层如图3所示。线性扩散层分为(半)字节替换与列混淆层,列混淆层利用列混淆矩阵以及每一列的(半)字节元素生成新的(半)字节元素。Midori算法与CRAFT算法类似,是一种SPN结构轻量级分组密码算法,分组长度为64比特和128比特,分别以半字节和字节为运算单位。以64比特为例,64比特分组按照半字节划分为16个子块,同样用4*4矩阵来进行表示,加密流程如图4所示,在进行混合差分分析时,重点需要关注的是加密流程中的列混淆层。差分攻击涉及选择具有某种特殊差分模式的明文对,使得具有某种特殊差分模式的密文对出现的概率较高,差分攻击用这些特征来计算可能的密钥。差分攻击很大程度上依赖于S盒的结构。
[0016]因此,为了抵抗差分攻击,新设计的所有分组密码,都必须证明其对差分攻击的安全性。2001年,美国国家标准技术研究所(NIST,National Institute of Standards and Technology)推出了新的数据加密算法标准AES(Advanced Encryption Standard,高级加密标准)。AES基于SPN结构,其设计采用了字节置换和极大距离可分码作为其线性扩散层,该设计可以证明AES能够抵抗差分攻击。
[0017]差分攻击的有效性依赖于选定的差分特征的概率,概率越高,攻击越有效。混合差分分析是差分攻击的一种变种方法。混合差分密码分析的核心思想是研究四个明文状态以及其对应的四个密文的性质,它们之间存在着密切的关系。这个性质首先由Grassi等人在Eurocrypt 2017中提出,他们首先发现了一个针对5轮AES的密钥恢复区分器。在FSE/ToSC2019上正式将这个性质定义为混合差分性质,具体而言,就是特别构造的4个明文对应的4个密文以概率1位于特定的子空间中,而这与随机置换不同。混合差分分析的目的是在相应的算法上获取到混合差分的区分器,混合差分的区分器由一对差分(输入差分与输出差分),以及这对差分的概率构成。为了与随机置换区分开,混合差分区分器的概率大于在随机置换情况下得到这对差分的概率。
[0018]目前,混合差分的性质已经从不同的角度进行了研究,也已经扩展到了更多的分组密码,即对多种不同的分组密码进行了混合差分性质的实验,并设置了具有更多轮数的
区分器。
[0019]但是,现有的这些混合差分性质都是通过手动检查类AES密码算法的构造结构来推断的。并且多数的密码分析中的混合差分器的搜索依赖于较大的文本集之间的依赖关系,以进行区分,从而发现更多的非随机属性以构建有效的明文结构,工作量较大。因此,针对(半)字节级线性置换层的自动化的混合差分本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种混合差分字节级区分器搜索方法,其特征在于,包括以下步骤:首先,对使用(半)字节级置换作为线性扩散层的分组密码中的每一个状态矩阵的每个输入字节和每个输出字节,引入混合差分模式编码变量,并对每一层线性扩散层的XOR操作引入概率变量,其中,所有变量均为二元变量,即取值为0或1;然后,针对加密流程中的非线性层S盒操作,无需生成新的编码变量,以最小化分组密码中所有线性扩散层XOR操作的概率变量之和为目标,对每一轮线性扩散层的每一个XOR操作的输入(半)字节混合差分编码变量、输出(半)字节混合差分编码变量、概率变量赋予限制,建立一个混合整数的线性规划问题;求解该混合整数线性规划问题,获得满足要求的混合差分区分器。2.如权利要求1所述的一种混合差分字节级区分器搜索方法,其特征在于:分组密码的分组长度为N比特,分组密码共有R轮,每一轮状态矩阵含T个(半)字节,每个(半)字节的宽度为w,其中,N=T
×
w,N、R、T、w均为正整数,且N能够被T整除;分组密码每轮的线性层由M个(半)字节级的XOR运算构成;在分组密码中,第i轮输入状态矩阵的任意一个字节位置所引入的混合差分模式编码变量表示为(c2
i

1,k
,c1
i

1,k
,c0
i

1,k
),c为code的简写,i∈[1,R+1],k∈[0,T

1];对于XOR的输出不在状态矩阵中而是作为中间状态的情况,引入中间状态上的混合差分模式编码变量输出不在状态矩阵中而是作为中间状态的情况,引入中间状态上的混合差分模式编码变量J是中间变量的个数,设置如下:若(c2
i

1,k
,c1
i

1,k
,c0
i

1,k
)=000,则表示该(半)字节所代表的混合差分模式为
“‑”
;若(c2
i

1,k
,c1
i

1,k
,c0
i

1,k
)=001,则表示该(半)字节所代表的混合差分模式为“s”;若(c2
i

1,k
,c1
i

1,k
,c0
i

1,k
)=010,则表示该(半)字节所代表的混合差分模式为“c”;若(c2
i

1,k
,c1
i

1,k
,c0
i

1,k
)=100,则表示该(半)字节所代表的混合差分模式为“x”;若(c2
i

1,k
,c1
i

1,k
,c0
i

1,k
)=101,则表示该(半)字节所代表的混合差分模式为“*”;若则表示该中间状态(半)字节所代表的混合差分模式为
“‑”
;若则表示该中间状态(半)字节所代表的混合差分模式为“s”;若则表示该中间状态(半)字节所代表的混合差分模式为“c”;若则表示该中间状态(半)字节所代表的混合差分模式为“x”;若则表示该中间状态(半)字节所代表的混合差分模式为“*”;其中,i的取值范围为从1到R+1的整数,k的取值范围为从0到T

1的整数,用三元码来表示状态矩阵中每一个(半)字节的混合差分模式;其中,限制包括:对于混合差分模式变量与混合差分概率变量所对应的XOR操作,不失
一般性,将两个输入混合差分模式变量分别记为(c
l2
,c
l1
,c
l0
)与(c
r2
,c
r1
,c
r0
),输出混合差分模式变量记为(c
o2
,c
o1
,c
o0
),概率变量记为(ph,pl),c
l
、c
r
表示分别表示XOR运算两侧输入混合差分模式编码,c
o
表示XOR运算输出混合差分模式编码;ph表示概率变量高位,pl表示概率变量低位;对混合差分模式的可行传播以及相应的概率进行枚举,在混合差分模式变量和概率变量表示下为50个11维点,代表9个模式变量和2个概率变量的可行取值,规则如下:概率为1,变量取值为(001 001 000 00);概率为2

w
,变量取值为(001 001 000 01);概率为2

w
,变量取值为(001 100 010 01);概率为2

w
,变量取值为(100 100 000 01);概率为2

w
,变量取值为(101 101 000 11);限制还包括:用不等式刻画可行点集,每个不等式是关于11个对应当前XOR操作的模式变量和概率变量的不等式,上述可行点集由如下不等式进行刻画:

c
l2

3c
l1

c
l0

c
r2

3c
r1

c
r0

2c
o2

3c
o1

2c
o0

2ph

3pl+9≥0;3c
l2
+3c
l1
+2c
l0
+3c
r2
+3c
r1
+2c
r0

c
o2

c
o1

2c
o0

6ph

4pl≥0;

c
r2

2c
r1

c
ro
+c
o2
+2c
o1
+c
o0
+ph+2pl≥0;

...

【专利技术属性】
技术研发人员:乔珂欣吴泽瀚祝烈煌
申请(专利权)人:北京理工大学
类型:发明
国别省市:

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

1