分组密码轮函数的构造方法、装置、电子设备及存储介质

文档序号:34364713发布日期:2023-06-04 19:25阅读:84来源:国知局
分组密码轮函数的构造方法、装置、电子设备及存储介质

本申请涉及信息安全,特别涉及一种分组密码轮函数的构造方法、装置、电子设备及存储介质。


背景技术:

1、分组密码是最重要的一类对称密码算法,广泛的应用于网络通信中,替换-置换网络(spn)结构是目前广泛采用的分组密码结构,国际上重要的密码算法标准aes、present等都采用该结构。spn结构通过多次迭代轮函数实现,轮函数是设计的关键。轮函数包括混淆层和扩散层,混淆层由非线性运算构成如s盒,模加运算,与运算等,扩散层由可逆的线性运算构成。s盒是非线性的,最常用的混淆技术,根据s盒的输入输出长度,8比特和4比特是最常用的两种,其中算法采用8比特的s盒,硬件占用面积较大,软件实现效率较高;而采用4比特的s盒,硬件占用面积小,同时4比特位s盒并行查询可以由simd指令实现,从而在现代pc机上具有高的软件实现效率。线性运算需要具有较强扩散性,通常采用mds矩阵,比特置换,异或和循环移位等操作构成。轮函数要具有强雪崩性,由轮函数迭代生成的算法要可以抵抗差分、线性、中间相遇等分析方法的攻击,还要具有好的实现效率。

2、轮函数的构造是分组密码设计中最重要的环节,其中结合s盒和线性层最常见的轮函数构造方法,便于进行算法的安全强度评估,提供强的安全性,同时轮函数也是影响算法加解密速度的关键部件。

3、现代分组密码算法大多遵循轮函数多轮迭代的设计准则,spn是最常用的一种结构之一,国际标准aes算法就是采用这种结构,但是aes算法基于8比特s盒硬件实现资源占用比较高。基于该类结构,系列轻量级算法被提出,像midori、skinny等,这类算法的设计跟aes算法的结构比较相近,根据分组长度划分为16个单元,按照4*4的矩阵排列,分组长度为64比特的分组,划分为16个4比特单元,而分组长度为128比特的分组划分为16个字节单元。非线性层采用4比特或者8比特s盒,由单元大小决定。线性层包括单元位置置换和类mds码等简单的运算。基于128比特分组的分组密码,采用4比特s盒作为非线性层,这类算法通常具有比较复杂的线性运算,如ublock,fesh等,从而导致算法的整体硬件资源占用较高。

4、对于分组长度128比特的分组密码算法,采用4比特s盒,128比特状态可以划分为32个4比特单元,基于32个4比特单元如何设计线性层,即能满足很好的扩散性,同时花费很少的资源。这方面置换orthros采用4比特s盒和32位的4比特单元设计,但是在设计中引入了128比特的比特置换,这样虽然可以产生强的扩散性,但是对于算法的安全性证明带来了困难,同时对于算法的软件实现也带来了问题,导致软件实现效率很低。


技术实现思路

1、本申请提供一种分组密码轮函数的构造方法、装置、电子设备及存储介质,以解决现有的分组密码算法硬件高效实现时资源占用较高,以及软件实现效率较低的问题。

2、本申请第一方面实施例提供一种分组密码轮函数的构造方法,包括以下步骤:将明文分组逐比特异或白化密钥生成轮函数初始状态,利用多比特的s盒对所述轮函数进的32个s盒单元逐个行替换;将替换后的轮函数进行比特分组后异或多位常量,并对所述轮函数以s盒为单元的32个位置进行位置置换,使得基于所述轮函数的迭代不存在9轮的不可能差分,同时不存在9轮有效差分路线;利用预设矩阵左乘所述轮函数中间状态矩阵的每一列以进行列混合,并将列混合后的轮函数逐比特异或轮密钥,经过多轮迭代后,得到所述轮函数的最终状态。

3、可选地,在本申请的一个实施例中,对所述轮函数以s盒为单元的32个位置进行位置置换时的运算性质包括:每一行均进行置换,同1列的元素置换后变到不同的列,两次位置置换后同一列的元素变到不同的列,以及分组密码算法迭代4轮后任何一个s盒将影响到输出的32个s盒单元。

4、可选地,在本申请的一个实施例中,所述多比特的s盒包括4比特的s盒或8比特的s盒;所述s盒的数量为32个。

5、可选地,在本申请的一个实施例中,所述多位常量为32位常量。

6、本申请第二方面实施例提供一种分组密码轮函数的构造装置,包括:替换模块,用于将明文分组逐比特异或白化密钥生成轮函数初始状态,利用多比特的s盒对所述轮函数的32个s盒单元逐个进行替换;置换模块,用于将替换后的轮函数进行比特分组后异或多位常量,对所述轮函数以s盒为单元的32个位置进行位置置换,使得基于所述轮函数的迭代不存在9轮的不可能差分,同时不存在9轮有效差分路线;输出模块,用于利用预设矩阵左乘所述轮函数中间状态矩阵的每一列以进行列混合,并将列混合后的轮函数逐比特异或轮密钥,经过多轮迭代后,得到所述轮函数的最终状态。

7、可选地,在本申请的一个实施例中,对所述轮函数以s盒为单元的32个位置进行位置置换时的运算性质包括:每一行均进行置换,同1列的元素置换后变到不同的列,两次位置置换后同一列的元素变到不同的列,以及分组密码算法迭代4轮后任何一个s盒将影响到输出的32个s盒单元。

8、可选地,在本申请的一个实施例中,所述多比特的s盒包括4比特的s盒或8比特的s盒;所述s盒的数量为32个。

9、可选地,在本申请的一个实施例中,所述多位常量为32位常量。

10、本申请第三方面实施例提供一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序,以执行如上述实施例所述的分组密码轮函数的构造方法。

11、本申请第四方面实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行,以执行如上述实施例所述的分组密码轮函数的构造方法。

12、本申请的分组密码轮函数的构造方法、装置、电子设备及存储介质,基于spn结构采用4比特或8比特s盒,对线性扩散层进行了精细化研究,设计提出的轮函数能够提供充分的混淆扩散,4轮可以实现全扩散,同时基于该轮函数构造的分组密码算法便于对抵抗差分和线性攻击的进行安全性证明。算法硬件占用资源少,采用低延时的s盒获得低延时属性,同时算法便于simd指令实现,在软件方面具有高实现效率,以及支持多种运行平台,灵活性强。

13、本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。



技术特征:

1.一种分组密码轮函数的构造方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的方法,其特征在于,对所述轮函数以s盒为单元的32个位置进行位置置换时的运算性质包括:每一行均进行置换,每次置换后同1列的元素置换后变到不同的列,两次位置置换后同一列的元素变到不同的列,以及分组密码算法迭代4轮后任何一个s盒将影响到输出的32个s盒单元。

3.根据权利要求1所述的方法,其特征在于,

4.根据权利要求1所述的方法,其特征在于,

5.一种分组密码轮函数的构造装置,其特征在于,包括:

6.根据权利要求5所述的装置,其特征在于,对所述轮函数以s盒为单元的32个位置进行位置置换时的运算性质包括:每一行均进行置换,每次置换后同1列的元素置换后变到不同的列,两次位置置换后同一列的元素变到不同的列,以及分组密码算法迭代4轮后任何一个s盒将影响到输出的32个s盒单元。

7.根据权利要求5所述的装置,其特征在于,

8.根据权利要求5所述的装置,其特征在于,

9.一种电子设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序,以实现如权利要求1-4任一项所述的分组密码轮函数的构造方法。

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行,以用于实现如权利要求1-4任一项所述的分组密码轮函数的构造方法。


技术总结
本申请公开了一种分组密码轮函数的构造方法、装置、电子设备及存储介质,其中,方法包括:将明文分组逐比特异或白化密钥生成轮函数初始状态,利用多比特的S盒对轮函数的32个S盒单元逐个进行替换;将替换后的轮函数进行比特分组后异或多位常量,并对轮函数以S盒为单元的32个位置进行位置置换,使得基于轮函数的迭代不存在9轮的不可能差分,同时不存在9轮有效差分路线;利用预设矩阵左乘轮函数中间状态矩阵的每一列以进行列混合,并将列混合后的轮函数逐比特异或轮密钥,经过多轮迭代后,得到轮函数的最终状态。由此,解决了现有的分组密码算法硬件高效实现时资源占用较高,以及软件实现效率较低的问题。

技术研发人员:贾珂婷,王小云
受保护的技术使用者:清华大学
技术研发日:
技术公布日:2024/1/13
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1