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

文档序号:35287645发布日期:2023-09-01 09:18阅读:37来源:国知局
一种混合差分字节级区分器搜索方法

本发明涉及一种混合差分字节级区分器搜索方法,属于网络信息安全分组密码设计与分析。


背景技术:

1、对称密码,是指加密和解密使用同一密钥的密码算法,主要用于数据加密。其中,分组密码是一种广泛使用的对称密码。分组密码的加密是指在长度为m比特主密钥的控制下,将固定长度(如n比特)的明文变为相同长度(如果明文长度是n,则密文长度也为n)的密文;解密是指将密文在同一密钥的控制下恢复出明文。n为明文的分组长度,m为主密钥长度,m为正整数,n为正整数。

2、分组密码不仅可以用于数据加密,还可用于构造杂凑函数(hash function)和消息认证码(mac,message authentication code)等,这使得分组密码的应用非常广泛。如何设计一个安全高效的分组密码,是信息安全研究领域一个至关重要的课题。

3、spn(替换置换网络)结构,是设计分组密码中最常采用的结构之一。设计一个spn结构分组密码的核心在于设计一个合适的轮函数,并将轮函数迭代数次以达到足够的安全性。一个将轮函数迭代r次的spn分组密码,称该分组密码有r轮,其中r为正整数。一个分组长度为n的r轮spn分组密码,每轮需要使用一个n比特子密钥,每轮用到的子密钥是由该分组密码的主密钥通过一个确定的密钥扩展算法得到的。

4、分组长度为n的spn结构分组密码的轮函数结构通常包括三个操作,如图1所示。这三个操作依次为:

5、1.轮密钥异或操作。将轮函数的n个输入比特与相应轮的子密钥进行异或操作,并输出n个输出比特。

6、2.分组s盒操作。将轮密钥异或操作中的n个输出比特分成n/w组输出比特,其中w为正整数,n被w整除,从而每组输出比特均为w比特;每组输出比特经过一个s盒后得到新的输出比特,其中所述s盒的输入和输出都为w比特,共有n/w个s盒分别处理经过步骤1的异或操作之后并分组的输出比特。

7、如图2所示,为一个s盒的输入输出示意图。一个输入和输出都为w比特的s盒本质上是一个映射:其中是有两个元素的有限域,简称二元域。通常s盒由一个表给出其映射规则,如表1中给出了craft算法的4比特输入4比特输出s盒的映射规则。

8、表1:4比特输入4比特输出s盒的映射规则表(十六进制表示)

9、 x 0 1 2 3 4 5 6 7 8 9 a b c d e f s(x) c a d 3 e b f 7 8 9 1 5 0 2 4 6

10、由表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。

11、3.线性扩散层操作。将分组s盒操作中s盒输出的输出比特经过一个线性变换得到输出比特作为下一个轮函数的输入比特。

12、图1中,分组s盒操作和操作线性扩散层操作也分别称为非线性替换层和线性扩散层。

13、现代信息社会中微型计算设备的广泛使用,使得对轻量级分组密码的需求越来越迫切。如何设计一个实现后电路面积小,功耗低又安全的轻量级分组密码,已在密码学界和工业界引起了广泛兴趣。如craft(一种轻量级分组密码的名称)就是一种新型spn结构的类aes型轻量级可调分组密码,它主要的设计标准之一是有效地抵抗差分故障攻击,同时还应该可以应对线性攻击、差分攻击、积分攻击、中间相遇攻击和零相关攻击等。

14、差分攻击是所有已知攻击中的一种重要方法,它通过分析特定明文对的差值对应于密文对的差值的影响来获得某些密钥比特。差分攻击可以用来攻击和分析任何由迭代一个固定的轮函数构造的密码体制,包括spn分组密码,其中包括des(data encryptionstandard,数据加密算法),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盒的结构。

15、因此,为了抵抗差分攻击,新设计的所有分组密码,都必须证明其对差分攻击的安全性。2001年,美国国家标准技术研究所(nist,national institute of standards andtechnology)推出了新的数据加密算法标准aes(advanced encryption standard,高级加密标准)。aes基于spn结构,其设计采用了字节置换和极大距离可分码作为其线性扩散层,该设计可以证明aes能够抵抗差分攻击。

16、差分攻击的有效性依赖于选定的差分特征的概率,概率越高,攻击越有效。混合差分分析是差分攻击的一种变种方法。混合差分密码分析的核心思想是研究四个明文状态以及其对应的四个密文的性质,它们之间存在着密切的关系。这个性质首先由grassi等人在eurocrypt 2017中提出,他们首先发现了一个针对5轮aes的密钥恢复区分器。在fse/tosc2019上正式将这个性质定义为混合差分性质,具体而言,就是特别构造的4个明文对应的4个密文以概率1位于特定的子空间中,而这与随机置换不同。混合差分分析的目的是在相应的算法上获取到混合差分的区分器,混合差分的区分器由一对差分(输入差分与输出差分),以及这对差分的概率构成。为了与随机置换区分开,混合差分区分器的概率大于在随机置换情况下得到这对差分的概率。

17、目前,混合差分的性质已经从不同的角度进行了研究,也已经扩展到了更多的分组密码,即对多种不同的分组密码进行了混合差分性质的实验,并设置了具有更多轮数的区分器。

18、但是,现有的这些混合差分性质都是通过手动检查类aes密码算法的构造结构来推断的。并且多数的密码分析中的混合差分器的搜索依赖于较大的文本集之间的依赖关系,以进行区分,从而发现更多的非随机属性以构建有效的明文结构,工作量较大。因此,针对(半)字节级线性置换层的自动化的混合差分区分器的搜索方法,十分有必要。


技术实现思路

1、本发明的目的是针对现有技术存在的问题和不足,为了解决本领域中面临的(半)字节级线性置换层的自动化的混合差分区分器的搜索问题,提出一种新的混合差分(半)字节级区分器搜索方法,能够自动获取使用(半)字节级别置换作为线性扩散层分组密码的混合差分区分器。本方法同样适用于线性扩散层是非极大距离可分码的情况。

2、本发明采用以下技术方案实现。

3、一种混合差分(半)字节级区分器搜索方法,包括以下步骤:

4、首先,对使用(半)字节级置换作为线性扩散层的分组密码中的每一个状态矩阵的每个输入字节和每个输出字节,引入混合差分模式编码变量,并对每一层线性扩散层的xor(异或)操作引入概率变量。其中,所有变量均为二元变量,即取值为0或1。

5、然后,针对加密流程中的非线性层s盒操作,无需生成新的编码变量,因为s盒操作不会改变混合差分模式。以最小化分组密码中所有线性扩散层xor操作的概率变量之和为目标,对每一轮线性扩散层的每一个xor操作的输入(半)字节混合差分编码变量、输出(半)字节混合差分编码变量、概率变量赋予所述限制,建立一个混合整数的线性规划问题;

6、最后,通过求解混合整数线性规划问题,获得高概率的混合差分区分器。

7、进一步地,所述分组密码的分组长度为n比特,所述分组密码共有r轮,每一轮状态矩阵含t个(半)字节,每个(半)字节的宽度为w。其中,n=t×w,n、r、t、w均为正整数,且n能够被t整除。所述分组密码每轮的线性层由m个(半)字节级的xor运算构成。

8、进一步地,所述分组密码中,第i轮输入状态矩阵的任意一个字节位置所引入的混合差分模式编码变量表示为(c2i-1,k,c1i-1,k,c0i-1,k),c为code的简写,i∈[1,r+1],k∈[0,t-1]。对于xor的输出不在状态矩阵中而是作为中间状态的情况,引入中间状态上的混合差分模式编码变量i∈[1,r],j∈[0,j-1],j是中间变量的个数。具体设置如下:

9、若(c2i-1,k,c1i-1,k,c0i-1,k)=000,则表示该(半)字节所代表的混合差分模式为“-”;

10、若(c2i-1,k,c1i-1,k,c0i-1,k)=001,则表示该(半)字节所代表的混合差分模式为“s”;

11、若(c2i-1,k,c1i-1,k,c0i-1,k)=010,则表示该(半)字节所代表的混合差分模式为“c”;

12、若(c2i-1,k,c1i-1,k,c0i-1,k)=100,则表示该(半)字节所代表的混合差分模式为“x”;

13、若(c2i-1,k,c1i-1,k,c0i-1,k)=101,则表示该(半)字节所代表的混合差分模式为“*”;

14、若则表示该中间状态(半)字节所代表的混合差分模式为“-”;

15、若则表示该中间状态(半)字节所代表的混合差分模式为“s”;

16、若则表示该中间状态(半)字节所代表的混合差分模式为“c”;

17、若则表示该中间状态(半)字节所代表的混合差分模式为“x”;

18、若则表示该中间状态(半)字节所代表的混合差分模式为“*”;

19、其中,i的取值范围为从1到r+1的整数,k的取值范围为从o到t-1的整数,用三元码来表示状态矩阵中每一个(半)字节的混合差分模式。具体图例表示见图5。

20、进一步地,所述分组密码中,将任意一个xor操作可能引起混合差分模式变化所引入的概率变量表示为m∈[0,m-1],m为正整数,即经过xor操作导致的模式变化的概率为其中:

21、若则表示输入混合差分模式经过xor操作后得到输出混合差分模式的概率为1;

22、若则表示输入混合差分模式经过xor操作后得到输出混合差分模式的概率为2-w;

23、若则表示输入混合差分模式经过xor操作后得到输出混合差分模式的概率为2-2w;

24、若则表示输入混合差分模式经过xor操作后得到输出混合差分模式的概率为2-3w;

25、其中,i的取值范围为从1到r的整数,m的取值范围为从0到m-1的整数。

26、进一步地,所述限制包括:对于混合差分模式变量与混合差分概率变量所对应的xor操作,不失一般性,将两个输入混合差分模式变量分别记为(cl2,cl1,cl0)与(cr2,cr1,cr0),输出混合差分模式变量记为(co2,co1,co0),概率变量记为(ph,pl),其中,cl、cr表示分别表示xor运算两侧输入混合差分模式编码,co表示xor运算输出混合差分模式编码。对混合差分模式的可行传播以及相应的概率进行枚举,在混合差分模式变量和概率变量表示下为50个11维点,代表9个模式变量和2个概率变量的可行取值,规则如下:

27、“s”⊕“s”→“s”概率为1,变量取值为(001 001 000 00);

28、“s”⊕“s”→“-”概率为2-w,变量取值为(001 001 000 01);

29、“s”⊕“x”→“c”概率为2-w,变量取值为(001 100 010 01);

30、“x”⊕“x”→“-”概率为2-w,变量取值为(100 100 000 01);

31、“*”⊕“*”→“-”概率为2-w,变量取值为(101 101 000 11);

32、50个中选取一部分在正文中,全部的以附图形式给出,如图6所示。

33、进一步,所述限制包括:

34、用不等式刻画可行点集。每个不等式是关于11个对应当前xor操作的模式变量和概率变量的不等式。上述可行点集由如下不等式进行刻画:

35、-cl2-3cl1-cl0-cr2-3cr1-cr0-2co2-3co1-2co0-2ph-3pl+9≥0;

36、3cl2+3cl1+2cl0+3cr2+3cr1+2cro-co2-co1-2co0-6ph-4pl≥0;

37、-cr2-2cr1-cr0+co2+2co1+co0+ph+2pl≥0;

38、-3cl2-4cl1-3cl0+cr1+co2+co0+3ph-pl+≥0;

39、-cl1-cl0-2cr2-3cr0-co1+4co0+5ph+2pl+2≥0;

40、-cl2-cr2+2co2-co1-co0+2ph+pl+1≥0;

41、-cl2-2cl1-cl0+cr1+co2+2co1+co0+ph+pl≥0;

42、cl1+cl0+cr1+cr0-2co2-co1-co0-2ph-2pl+2≥0;

43、-cl0-cr0-co2-co1+2co0+2ph+pl+1≥0;

44、cl1-2cl0-3cr2-4cr1-cr0+3co2+2co1+co0+3ph+pl+2≥0;

45、2cl2+cl1+2cl0+2cr2+cr0-co2-co0-3ph-pl≥0;

46、-2cl2-cl1+cl0+cr2+2co2+co1+co0+pl≥0;

47、cl2+cl1+cr2+cr1-co2-co1-2co0-2ph-2pl+2≥0;

48、进一步,所述限制包括:

49、为了将混合差分区分器与随机置换区分开来,需要将随机置换下得到输出模式的概率变量之和作为所述分组密码的混合差分区分器概率变量之和的上界:

50、对于随机置换的输出混合差分模式而言,每个(半)字节上包含5种传播情况,以三元码模式进行表示,即:000、010、100、001、101。其中,针对不同的混合差分模式,存在不同的概率,因此利用可行点进行表示,可以得到5个可行点,维数为5,以(co2,co1,co0)代表输出混合差分模式,以随机置换下得到该输出混合差分模式的概率变量。表示为:00011、01010、10010、00110、10100。

51、进一步,将5个可行点用线性不等式进行表示,得到四个线性不等式约束,即:

52、

53、

54、

55、

56、其中,r表示混合差分区分器覆盖的轮数,b表示上界。

57、限制所述分组密码的输入混合差分到输出混合差分对应的概率变量之和小于随机置换下概率变量之和:∑(2ph+pl)+∑kδk<n。

58、进一步,所述限制包括:

59、对于采用了几乎最大距离可分码(almost-mds)作为列混淆矩阵的密码算法来说,为了避免搜索的混合差分路径中出现的无效差分,除了对xor运算进行约束之外,还需要添加额外的约束。

60、对于midori算法而言,其中的列混淆层,当输出差分为0时,对应的输入差分也应该为0,当出现输入差分非0,而输出差分为0时,则称这部分的差分传播是无效的差分传播。

61、因此,利用混合差分传播模式的三元码表示得到三个线性不等式约束,其中j表示状态矩阵的列的编号,i表示状态矩阵行的编号,即:

62、

63、

64、

65、当三元码全0时,表示模式”-”,此时混合差分模式中各个状态矩阵对应的(半)字节的值相等,当三元码中出现非0时,表示其他非0混合差分模式。因此,利用输出与输入差分模式的三元码表示,保证任意非0输入差分不会得到0输出差分。

66、从上述方案可以看出,本发明方法,将一个字节级线性置换层分组密码体制的混合差分传播性质描述成一个混合整数线性规划问题,求解该混合整数线性规划问题,获得可与随机置换区分开的高概率混合差分区分器,进而大大降低了手工寻找混合差分区分器的工作量和出错概率。

67、有益效果

68、与现有技术相比,本发明的方法实现了对于使用(半)字节级置换作为线性扩散层的分组密码,自动寻找高概率混合差分区分器,而现有技术中尚没有能够自动化寻找使用(半)字节级异或操作作为线性扩散层的分组密码中高概率混合差分区分器的方法。同时,本发明也同样可扩展于采用比特级置换以及非极大距离可分码构造的线性扩散层的分组密码上。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1