一种搜索S盒的最少硬件实现门数的方法和S盒电路结构技术

技术编号:21634052 阅读:21 留言:0更新日期:2019-07-17 12:47
本发明专利技术公开一种搜索S盒的最少硬件实现门数的方法和S盒电路结构。搜索采用迭代分层的算法,在满足当前层硬件门数的前提下,当前层的布尔函数集是由若干基本操作作用于前若干层布尔函数集的结果;如此重复迭代,保证每层的布尔函数都有相同且最少的硬件门数。该方法包括:GE 0层,n个输入值本身就是布尔函数;GE 0.5层,使用NOT作用于GE0层的布尔函数;GE 1层,使用NAND、NOR作用于GE0层中的两个不同的布尔函数;GE 1.5‑2.5层,采用3种方式产生布尔函数;GE g≥3层,采用4种方式产生布尔函数。本发明专利技术可搜索出S盒最优的硬件实现逻辑过程,能够明显降低芯片面积、功耗和延迟,提高实现性能。

A Method of Searching for the Minimum Hardware Gate Number of S-Box and the Circuit Structure of S-Box

【技术实现步骤摘要】
一种搜索S盒的最少硬件实现门数的方法和S盒电路结构
本专利技术提出了一种搜索S盒的最少硬件门数的优化实现方法和S盒电路结构,属于通信

技术介绍
随着物联网的发展,人们对轻量化密码算法的需求愈加旺盛。而物联网中嵌入式系统中的微处理芯片属于资源受限设备的一种,这类设备都有共同的特点:计算能力和存储空间有限。这些特点对轻量化密码算法提出了新的要求:在有限的硬件资源的前提下,轻量化密码可以提供足够的安全性。在某些特定场景下,嵌入式处理器芯片的门电路数目十分有限,除了实现业务逻辑部分以外,能够为安全算法保留的电路门数不到2000GE,其中GE为GateEquivalences(门等价),是一个等效的门,代表一个度量单位。这一限制远低于目前一些密码算法的最小硬件实现电路面积。因此,需要最小化密码算法基本构件的硬件代价,如S盒。S盒(Substitution-box)是大多数分组密码中至关重要的非线性部件,高代数次数S盒是安全密码的一个必要条件。密码算法中S盒的硬件实现是一系列逻辑门的组合。S盒的硬件实现代价直接关系到密码算法的实现代价,因此给出S盒硬件实现代价测试工具,搜索S盒的较优的硬件实现代价,对于密码算法的设计者来说意义重大。目前国际上关于S盒的研究一直是热点话题,其中一个方向是搜索给定S盒的优化硬件实现。比如利用启发式搜索算法来发现最小基本操作(XOR、NXOR、AND、OR、NAND、NOR和NOT)序列实现目标S盒;Stoffelen构造了S盒搜索的SAT求解器来发现低深度的S盒;同时有用暴力搜索算法挖掘S盒硬件逻辑实现,比如:基于指令数的搜索方式。基于指令数的搜索方式是根据用户输入的S盒内容,将S盒内容转换为真值表,搜索程序根据S盒内容的真值表进行匹配搜索,给出该S盒较优的硬件实现代价。以S盒输入输出规模为4比特为例进行说明,首先,S盒的输入需要4个无符号整型变量a,b,c,d存储,S盒的输出同样按照S盒输入的形式存储在4个无符号整型变量e,f,g,h中。然后,将当前有效的输入变量存放在一个容器中,该容器的初始有效变量为l,a,b,c,d。另外,搜索程序中对容器中的变量要进行异或、与、或三个逻辑运算操作(取反操作归为异或操作实现),为了便于恢复运算过程,用常数1,2,3分别标识三个逻辑运算操作。然后,设置一个硬件实现代价的上界,按照深度优先算法思想,对容器中的所有有效变量两两依次进行异或、与、或运算得到一个临时变量,如果该临时变量已出现在容器中,则不保存该临时变量,直接跳转到下一运算;否则将该临时变量暂存起来,此时该临时变量分别与容器的有效变量依次进行异或、与、或三个逻辑运算得到一个中间值,若该中间值跟S盒内容e,f,g,h中的一个发生了匹配(二者值相等,我们称为匹配),则将e,f,g,h匹配的变量状态设置为已匹配,并将临时变量(不是中间值)存放到容器中,表示该临时变量是有效变量;否则直接进入下一步操作。若在以上过程中e,f,g,h全部完成了匹配,说明找到了该S盒的硬件逻辑过程,此时,根据容器中的有效状态变量,恢复硬件逻辑实现过程,并更新硬件实现代价的上界,这样在搜索过程可及时剪枝,但是这里得到的硬件逻辑实现可能不是最优,回溯一步继续搜索寻找更优的硬件实现代价。最后,输出较优的硬件实现逻辑过程。
技术实现思路
本专利技术提供了一种搜索给定S盒最少硬件门数的优化实现方法,可以为S盒提供更好的硬件实现。日常硬件实现会用到以下基本操作:XOR(异或)、XNOR(同或)、AND(与)、OR(或)、NAND(与非)、NOR(或非)和NOT(非)。下面表1给出了各种基本操作的GE数,是基于TSMC库进行硬件实现的:表1.基本操作的硬件门数本专利技术的搜索S盒的最少硬件实现门数的方法,采用迭代分层算法来搜索S盒的布尔函数,在满足当前层硬件门数的前提下,当前层的布尔函数集是由若干基本操作作用于其相对应的前若干层布尔函数集的结果;如此重复迭代,可以保证每层的布尔函数都有相同且最少的硬件门数。进一步地,以n比特S盒的布尔函数为例说明本专利技术的方法,包括以下步骤:1)GE0层:n个输入值本身就是布尔函数;2)GE0.5层:使用基本操作NOT作用于GE0层的布尔函数;3)GE1层:使用基本操作NAND、NOR作用于GE0层中的两个不同的布尔函数;4)GE1.5-2.5层:有3种方式产生布尔函数:a.使用基本操作AND、OR作用于GE(g-1.5)层中的两个不同布尔函数,其中g表示硬件门数,“-”表示减号;b.使用基本操作NAND、NOR作用于GE(g-1)层中的两个不同布尔函数;c.使用基本操作NOT作用于GE(g-0.5)层中的两个不同布尔函数。5)GEg≥3层:其中g表示硬件门数,有4种方式产生布尔函数:a.分别使用基本操作XOR、XNOR作用于GE(g-2)层布尔函数上或者作用于GE和为g-2的两层布尔函数上;b.分别使用基本操作AND、OR作用于GE(g-1.5)层布尔函数上或者作用于GE和为g-1.5的两层布尔函数上;c.分别使用基本操作NAND、NOR作用于GE(g-1.5)层布尔函数上或者作用于GE和为g-1.5的两层布尔函数上;d.使用基本操作NOT作用于GE(g-0.5)层或者是作用于GE和为g-0.5的两层布尔函数上。上述方法中的“层”是“虚拟层”,是按照硬件门数划分的层。本专利技术提供的方法通过搜索给定S盒,找到硬件门数最少的S盒实现。下面表2给出一个4比特S盒,其中x表示S盒的输入,s(x)表示S盒的输出。表2.4比特S盒x0123456789101112131415S(x)0210964141317158111235搜索S盒的最少硬件门数方法是按层迭代的,各层的布尔函数来自于各自对应的前4层布尔函数的逻辑门运算。下面给出上表中S盒搜索最少硬件门数的具体过程,如图1所示,其中ti表示中间值,a,b,c,d代表S盒的输入比特,e,f,g,h代表S盒的输出比特:1)t1=aNANDb;2)t2=bNORc;3)t3=cNANDd;4)t4=bNANDd;5)t5=aNANDt4;6)e=cXNORt1;7)f=dXNORt2;8)h=t3XORt5;9)t6=aNANDf;10)g=bXNORt6当S盒的所有输出比特均得到匹配时,上述搜索停止。因此,此S盒硬件逻辑实现需要18门,最大延迟门数为8(硬件实现门数等于基本操作硬件门数之和,延迟是指最长序列中基本操作的延迟之和)。相比于本专利技术,现有的基于指令的暴力求解方式需要更多的延迟门数。基于上述方法,本专利技术还提供一种S盒电路结构,采用上面方法搜索得到的S盒的最少硬件门数实现该电路结构。基于上述方法,本专利技术还提供一种芯片,如嵌入式处理器芯片,其包含采用上述方法得到的S盒电路结构。本专利技术针对给定S盒,搜索出最少硬件门数的布尔函数表达式。与现有基于指令数的搜索方式相比,本专利技术可以输出最优的硬件实现逻辑过程,能够明显降低芯片面积、功耗和延迟,提高实现性能。附图说明图1是S盒的硬件逻辑实现实例的示意图。具体实施方式为使本专利技术的上述目的、特征和优点能够更加明显易懂,下面通过具体实施例和附图,对本专利技术做进一步详细说明。本实施例以表2的4比特S盒举例,具体介绍本专利技术如何本文档来自技高网
...

【技术保护点】
1.一种搜索S盒的最少硬件实现门数的方法,其特征在于,在满足当前层硬件门数的前提下,当前层的布尔函数集是由若干基本操作作用于其相对应的前若干层布尔函数集的结果;如此重复迭代,保证每层的布尔函数都有相同且最少的硬件门数。

【技术特征摘要】
1.一种搜索S盒的最少硬件实现门数的方法,其特征在于,在满足当前层硬件门数的前提下,当前层的布尔函数集是由若干基本操作作用于其相对应的前若干层布尔函数集的结果;如此重复迭代,保证每层的布尔函数都有相同且最少的硬件门数。2.根据权利要求1所述的方法,其特征在于,所述基本操作包括:XOR、XNOR、AND、OR、NAND、NOR和NOT。3.根据权利要求2所述的方法,其特征在于,包括以下步骤:1)GE0层:n个输入值本身就是布尔函数;2)GE0.5层:使用基本操作NOT作用于GE0层的布尔函数;3)GE1层:使用基本操作NAND、NOR作用于GE0层中的两个不同的布尔函数;4)GE1.5-2.5层,采用以下3种方式产生布尔函数:a.使用基本操作AND、OR作用于GE(g-1.5)层中的两个不同布尔函数,其中g表示硬件门数,“-”表示减号;b.使用基本操作NAND、NOR作用于GE(g-1)层中的两个不同布尔函数;c.使用基本操作NOT作用于GE(g-0.5)层中的两个不同布尔函数;5)GEg≥3层,采用以下4种方式产生布尔函数:a.分别使用基本操作XOR、XNOR作用于GE(g-2)层布尔函数上或者作用于GE和为g-2的两层布尔函数上;b.分别使用基本操作AND、OR作用于GE(g-1.5)层布尔函数上或者作用于GE和...

【专利技术属性】
技术研发人员:张蕾张芮
申请(专利权)人:中国科学院软件研究所
类型:发明
国别省市:北京,11

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

1