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

基于SAT求解器搜索S盒的NCT电路最优实现方法

文献发布时间:2024-04-18 20:01:30


基于SAT求解器搜索S盒的NCT电路最优实现方法

技术领域

本发明涉及S盒的NCT电路优化方法领域,具体涉及一种基于SAT求解器搜索S盒的NCT电路最优实现方法。

背景技术

信息化时代,有关数据泄露、数据窃听、数据滥用等安全事件屡见不鲜,保护信息交互过程中的数据安全已引起人们的高度重视。密码是保护数据安全最经济、最可靠、最有效的手段,其中对称密码算法因其加解密速度快、易于软硬件实现等优点得到了广泛的应用。

然而,随着量子技术的快速发展,以Shor算法、Simon算法、Grover算法为代表的量子算法被提出并对现代密码学的安全性带来了严峻考验。例如,与经典密钥穷举攻击相比,基于Grover算法对分组密码进行密钥穷搜能实现二次加速。此外,量子计算机的建造过程不断推进,量子模型机能够处理的量子比特也越来越多,这使得基于上述量子算法攻击密码算法逐渐成为可能。

为了应对量子技术的发展对现代密码带来的挑战,美国国家标准与技术研究院于2016年启动了后量子密码标准的征集,并且将密码算法的抗量子安全性等级定义为与对该算法进行密钥穷举攻击所需量子资源相关。值得注意的是,在利用Grover算法穷举搜索对称密码的密钥时,该算法的量子实现电路是Grover算法的核心。此外,S盒常作为对称密码算法中唯一的非线性部件,其实现对对称密码算法整体的实现性能具有重要影响。因此,研究对称密码S盒的量子优化实现具有重要的现实意义。

发明内容

基于SAT求解器搜索S盒的NCT电路最优实现方法,包括以下步骤:

步骤1、S盒为4比特S盒,根据S盒的类型确定S盒的输入数据

下式中,

同时,满足以下约束条件:

其中

步骤2、使用SAT求解器求解模型的各项待求解系数,确定满足有解条件的最小值,即S盒的NCT最优实现,将最小值下的各项系数中代入模型的代数表达式,且其余未涉及到的变量均保持不变,即

进一步的,根据

本发明的有益效果为:采用本发明的方法可以获得采用逻辑门最少的4比特S盒NCT电路实现方式,降低硬件面积,进而缩减了整体密码算法在实现过程中所需成本。

附图说明

图1 为4比特S盒的NCT电路实现的状态变化图。

图2为本方法的得到的GIFT算法S盒的NCT电路实现图。

图3为使用本方法搜索4比特S盒NCT最优实现的一般流程图。

具体实施方式

以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。

本发明的构造原理是将S盒的NCT逻辑门转化为代数表达式的表示形式,S盒的NCT电路实现即为K个逻辑门组成的一组代数表达式,生成的代数表达式模型使用SAT求解器进行求解,SAT求解器输出有解时的最小K值就是S盒的NCT电路实现所需的最少逻辑门,即S盒的NCT最优实现。将此时SAT求解器输出的各个变量的结果代入到生成的代数表达式中,即可获得S盒的NCT电路实现,具体步骤为:

S1、编码4比特S盒的NCT电路

NCT电路实现包括NOT门、CNOT门、Toffoli门三种门,其运算逻辑分别如下:

NOT门:单量子比特门,其功能对应的表达式为:NOT(a)=a⊕1。单量子的状态发生改变。

CNOT门:双量子比特门,其功能对应的表达式为:CNOT(a,b)=(a,b⊕a)。只有第二个量子的状态发生改变。

Toffoli门:多量子比特门,其功能对应的表达式为:Toffoli(a,b,c)=(a,b,c⊕a⋅b)。只有第三个量子的状态发生改变。

对于4比特S盒,有4个输入变量(

表1 4比特S盒的NCT逻辑门作用方式

NCT电路的逻辑门可以看作是XOR或AND逻辑门。其中,CNOT门可看作XOR逻辑门,Toffoli门可看作XOR逻辑门和AND逻辑门的组合。而两个单比特向量和经过XOR逻辑门和AND逻辑门的运算分别对应比特加法和比特乘法,如表2所示。

表2 比特操作和逻辑运算

根据上述的运算,S盒的每个NCT逻辑门都可以使用输入变量的比特加法和比特乘法的运算表示。这样,查找S盒的NCT最优实现可转化为编码S盒输入变量经过一系列的比特加法和比特乘法的运算,生成S盒的输出变量的过程。其中,逻辑门的类型和具体的作用方式都是待定的,S盒的NCT电路可以使用一系列变量的代数表达式表示。

对于一个4比特S盒,可以编码生成一组包含所有逻辑门可能组合的NCT电路实现的代数表达式。然后使用SAT求解器来求解这样的一组代数表达式,如果SAT输出无解,则表明当前表达式不成立,仅使用当前逻辑门数的NCT电路并不能实现此S盒,需要增加额外的逻辑门,然后再次进行上述编码然后求解的操作。如果SAT输出有解,则证明当前表达式成立,代入各个变量的值即可求得S盒的NCT电路实现。

对于4比特S盒,其NCT电路实现的状态变化过程都可以表示成图1的形式。其中,(

和S盒的输出变量(

对于一个4比特S盒由

涉及到的变量及其含义如下:

:S盒的输入变量

:S盒的输出变量

:第/>

:第/>

:第/>

:第/>

:经过/>

:S盒的输入变量与输出变量的对应关系

S盒的输入输出变量由S盒的查找表决定,对于GIFT算法的S盒,其查找表如表3所示。

表3 GIFT算法S盒的查找表

其中第一行

表4 GIFT算法S盒的查找表二进制表示

此时S盒的输入变量

有了S盒的输入输出变量,接下来就是对这些输入变量进行逻辑门的编码,每个逻辑门都可能是表1中的一种。其不同点在于逻辑门的输入变量个数不同,最多为3个输入变量。为了编码所有的逻辑门,将逻辑门的输入变量设置为3个,其逻辑门的类型和输入变量的个数由其系数决定。下面是对第

其中

表5 逻辑门的类型

取不同值时对应的逻辑门类型如表5所示。当

此时的输入变量

其中

除此之外,还要保证

经过第

上述过程编码了S盒的个逻辑门,经过

下面的表达式可以实现

S2、编码应用于4比特S盒的实现

上述的编码适用于每个4比特S盒,唯一的不同之处在于输入变量

(1)SAT求解器输出有解,证明该S盒存在

(2)SAT求解器输出无解,证明仅用

在已知S盒的NCT最优实现的情况下,将SAT求解器输出的结果代入到编码的S盒的NCT实现的代数表达式中,就可以获得S盒的NCT最优实现电路。

在目前的一些工具或启发式算法中,部分不能直接用于构造量子NCT实现,需要对这些工具输出的结果进行一定的变换才能用于构造NCT电路。此外,目前所有的工具或启发式算法均不能保证其搜索出的结果为最优,然而本发明结合SAT求解器设计的方法,在直接输出给定S盒的NCT实现的同时,能够保证结果是最优的。

以GIFT算法的S盒(1,10,4,12,6,15,3,9,2,13,11,7,5,0,8,14)为例,首先对其输入输出变量进行初始化。

输入变量为:

输出变量为:

输入变量与输出变量一一对应。

将上述的所有代数表达式写成CVC语言的形式,然后存入文件中,使用SAT求解器即可对其进行求解。此时SAT求解器输出无解,显然该S盒无法使用3个逻辑门的NCT电路表示,因此需要更多的逻辑门。将逻辑门依次增加,直到

其余未涉及到的变量均保持不变,即

除此之外,对于部分算法的S盒进行求解,所得到的NCT最优实现如表6所示。

表6 部分算法S盒的最优NCT实现

根据S盒查找表确定各算法S盒的输入数据如下:

PICCOLO=[14,4,11,2,3,8,0,9,1,10,7,15,6,12,5,13]

SKINNY=[12,6,9,0,1,10,2,11,3,8,5,13,4,14,7,15]

PRESENT=[12,5,6,11,9,0,10,13,3,14,15,8,4,7,1,2]

RECTANGLE=[6,5,12,10,1,14,7,9,11,0,3,13,8,15,4,2]

LAC=[14,9,15,0,13,4,10,11,1,2,8,3,7,6,12,5]

GIFT=[1,10,4,12,6,15,3,9,2,13,11,7,5,0,8,14]

PROST=[0,4,8,15,1,5,14,9,2,7,10,12,11,13,6,3]

以上所述为本发明最佳实施方式的举例,其中未详细述及的部分均为本领域普通技术人员的公知常识。本发明的保护范围以权利要求的内容为准,任何基于本发明的技术启示而进行的等效变换,也在本发明的保护范围之内。

技术分类

06120116556605