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

一种基于Feistel的线性变换构造方法及系统

文献发布时间:2023-06-19 19:30:30


一种基于Feistel的线性变换构造方法及系统

技术领域

本发明涉及通信加密技术领域,特别涉及一种基于Feistel的线性变换构造方法及系统。

背景技术

本发明涉及通信加密技术领域,具体涉及一种基于Feistel结构的分支数为6的线性变换构造方法。

扩散部件的设计是密码算法设计的重要组成部分,为密码算法提供良好的扩散性质,保障密码算法抵抗差分和线性等攻击方法的安全性。在SPN(SubstitutionPermutation Network)、Feistel等密码结构中,扩散层主要用于将混淆层的局部非线性等密码学特性扩散到更多的整体分组中。线性变换常用于密码算法的扩散层,直接影响密码算法的安全性和效率,构造结构简单且分支数较大的线性变换是密码算法设计中非常重要的环节,采用分支数较大的线性变换可以使密码算法更好地抵抗差分攻击和线性攻击,采用结构简单的扩散部件有利于密码算法的快速实现。

目前的线性变换主要有MDS矩阵、基于循环移位和异或运算的线性变换、比特置换、二元矩阵等,如AES算法,Twofish算法,SMS4算法、AIRA算法、HIEROCRYPT算法等都采用线性变换作为扩散部件。为了保证密码算法的快速有效实现,线性变换对应的矩阵应具有较少的元素和较小的数值,例如AES算法中使用有限域GF(28)上的MDS矩阵为循环移位矩阵,Twofish算法中使用GF(28)上的MDS矩阵为Hadamard矩阵,AIRA算法中使用GF(2)上的0/1矩阵为对合矩阵等。如何设计有限域GF(2n)上能够快速实现的MDS矩阵一直是人们关心的重要问题,具有较好的理论基础和丰富的研究成果,如基于循环移位矩阵、Cauchy矩阵以及Hadamard矩阵等特殊矩阵来设计MDS矩阵的思想和构造方法,也可以借助计算机程序搜索出大量便于实现的MDS矩阵。但由于有限域GF(2n)上的乘法运算较为复杂,导致有限域上的MDS矩阵无法满足移动互联网、物联网中诸多资源受限应用场景下的密码算法扩散部件的设计要求。

基于循环移位、异或等简单逻辑运算设计的线性变换具有结构简单、运算快速、计算资源消耗低等轻量化特征,特别适用于移动互联网、物联网等应用场景下的轻量级密码算法设计。通常情形下,衡量一个密码算法部件的资源占用情况可以通过基本运算数目的多少来大致刻画,主要目标是寻找具有最少异或数、最少循环移位数、最优分支数等轻量化特征的最简形式线性变换的设计方法。

目前,在实际的密码算法方案中,如何实现线性变换分支数(密码学指标)和轻量运算(实现资源开销)之间好的平衡,是线性变换构造方法设计中的关键问题。因此,设计分支数大且便于软硬件实现的线性变换构造方法,对设计安全高效的密码算法方案具有重要意义。

发明内容

针对现有技术中存在的问题,提供了一种基于Feistel的线性变换构造方法及系统,通过2个4阶0/1矩阵、2个循环移位和3个异或运算来构造新的线性变换,得到的线性变换达到了已知最优的分支数,在不同计算平台均能高效实现,并给出了该类分支数最优线性变换的计数结果和相应实例,能够为密码算法设计提供大量轻量化且密码性质好的扩散部件

本发明采用的技术方案如下:一种基于Feistel的线性变换构造方法,应用于密码算法的扩散层,包括:

步骤1、定义分支数为4的线性变换运算A;

步骤2、将基于Feistel密码结构的两个输入X

步骤3、对中间变量T进行循环移位后再与A(X

进一步的,所述步骤1中,线性变换运算A具体为:

y=A(x)

其中,

进一步的,所述步骤2、步骤3的具体运算过程为:对于输入X

(1)计算中间变量T,T=(A(X

(2)计算输出Y

(3)计算输出Y

进一步的,所述步骤3中,中间变量的循环移位与输出Y

本发明还提出了一种基于Feistel的线性变换系统,包括两个相同的第一线性变换模块、第二线性变换模块,第一异或模块、第二异或模块、第三异或模块以及第一循环移位运算模块、第二循环移位运算模块;两个输入X

进一步的,所述第一线性变换模块及第二线性变换模块的实现原理为:

y=A(x)

其中,

本发明还提出了一种电子设备,包括存储器和处理器,所述存储器上存储有能够被处理器加载并执行如上述的基于Feistel密码结构的线性变换构造方法对应的计算机程序。

本发明还提出了一种计算机可读存储介质,其上存储有计算机程序指令,其中,所述程序指令被处理器执行时用于实现上述的基于Feistel密码结构的线性变换构造方法对应的过程。

与现有技术相比,采用上述技术方案的有益效果为:本发明设计了一种构造分支数为6的线性变换构造方法,该方法基于Feistel密码结构、循环移位和异或运算设计密码算法线性扩散层,构造的线性变换分支数(密码性质)达到了已知公开结果中的最优分支数,且线性变换的结构简洁,运算逻辑均为基本运算,软、硬件实现资源开销低,能够在不同计算平台上高效实现。采用本发明设计的线性变换,能很好满足实际密码算法的设计和使用要求,具有较大创新性和较好实际应用价值。

附图说明

图1为本发明提出的线性变换构造方法流程图。

图2为本发明一实施例中线性变换示意图。

具体实施方式

下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的模块或具有相同或类似功能的模块。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能理解为对本申请的限制。相反,本申请的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。

实施例1

在实际的密码算法方案设计中,如何实现密码学指标和实现资源开销之间良好的平衡折中,是其中的关键问题。线性变换作为密码算法的扩散部件,可以通过分支数来刻画其密码学指标的优劣,通过基本运算数目的多少来大致刻画其资源占用情况,设计者的主要目标是设计具有运算数目少且分支数最优的线性变换构造方法。

本实施例基于Feistel结构、循环移位和异或运算,提出一种新的线性变换的构造方法,通过2个4阶0/1矩阵、2个循环移位和3个异或运算来构造新的线性变换,得到的线性变换达到了已知最优的分支数,在不同计算平台均能高效实现,并给出了该类分支数最优线性变换的计数结果和相应实例,能够为密码算法设计提供大量轻量化且密码性质好的扩散部件。具体方案如下:

如图1所示,一种基于Feistel的线性变换构造方法,应用于密码算法中线性扩散层所使用的密码模型及部件,从而以较低的实现代价获得高效的密码扩散部件,包括:

步骤1、定义分支数为4的线性变换运算A;

步骤2、将基于Feistel密码结构的两个输入X

步骤3、对中间变量T进行循环移位后再与A(X

具体的,步骤1的具体过程包括:

定义分支数:

对于y=(y

对于GF(2

B=min{W(α)+W(Aα)|α∈GF(2

图2为本发明的原理结构示意图,图中用“<<<”表示比特循环移位,用“⊕”表示异或,“A”表示矩阵变换。本实施例中,矩阵A为:

则线性变换运算A具体为:

y=A(x)

其中,

在建立好分支数为4的线性变换模块A后,在结合2个循环移位和3个异或运算,即可构造分支数为6的线性变换。具体的:

对于循环移位中循环参数i、j,对应的线性变换的运算流程如下:

如图2所示,记:左侧输入为X

对线性变化的输入X

1)T=(A(X

2)Y

3)Y

上述Y

在基于上述构造方法下,可以获得分支数最优的线性变换,满足密码学性质要求,且循环移位、异或等基本运算面向软硬件实用友好,资源开销较小。

本实施例提出的构造方法通过改变密码结构中的循环移位运算,设计分支数较大的扩散层线性变换模型,使得实现简单、高效;验证思路为基于现有数学最优值求解方法,将模型中密码结构的分支数计算转化为SAT求解问题,结合SAT辅助求解软件进行分析、测试,验证目标模型的分支数。

图2所示的密码结构模型中,包含两个循环移位和三个异或。遍历所有不同的循环参数i、j,通过SAT求解,得到了196组最大分支数为6的线性变换,结果如表1。

表1 i、j遍历得到的196个最大分支数为6的线性变换

也就是说,在本实施例中,循环参数i、j在上表中进行选取设置,此情况下能够得到最大分支数为6的线性变换。

实施例2

本实施例还提出了一种基于Feistel的线性变换系统,包括两个相同的第一线性变换模块、第二线性变换模块,第一异或模块、第二异或模块、第三异或模块以及第一循环移位运算模块、第二循环移位运算模块;两个输入X

本实施例中,所述第一线性变换模块及第二线性变换模块的实现原理为:

y=A(x)

其中,

实施例3

本实施例还提出了一种电子设备,包括存储器和处理器,所述存储器上存储有能够被处理器加载并执行如实施例1所述的基于Feistel密码结构的线性变换构造方法对应的计算机程序。

实施例4

本实施例还提出了一种计算机可读存储介质,其上存储有计算机程序指令,其中,所述程序指令被处理器执行时用于实现实施例1所述的基于Feistel密码结构的线性变换构造方法对应的过程。

需要说明的是,在本发明实施例的描述中,除非另有明确的规定和限定,术语“设置”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是直接连接,也可以通过中间媒介间接连接。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义;实施例中的附图用以对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。

尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

技术分类

06120115935955