基于布尔函数的分组密码S盒快速实现方法及装置制造方法及图纸

技术编号:25405458 阅读:50 留言:0更新日期:2020-08-25 23:08
本发明专利技术公开了基于布尔函数的分组密码S盒快速实现方法及装置,涉及信息安全领域。该方法包括:获取待优化的S盒,将S盒的输出转换成真值表;找出真值表中满足预设取值条件的输入变量的组合,根据输入变量的组合构建每个输出变量的布尔函数表达式。本发明专利技术非常适合ASIC实现,具有节省元器件、工作效率高的优点,这种方法不仅能降低面积,还能提高效率,且易于编程实现。

【技术实现步骤摘要】
基于布尔函数的分组密码S盒快速实现方法及装置
本专利技术涉及信息安全领域,尤其涉及基于布尔函数的分组密码S盒快速实现方法及装置。
技术介绍
S盒是分组密码算法中的唯一的非线性部件,其本质是一张置换表,对于给定的输入,能够通过查找该置换表得出相应的输出,是影响整个算法性能的关键。目前,S盒的实现主要基于查找表或复合域,基于查找表的实现方式是给定输入,从全部数据中选出唯一的输出,因此该实现方式的效率较低;基于复合域的实现方式是将S盒变换到复合域进行求逆,这种实现方式较为复杂,不易于变成实现。
技术实现思路
本专利技术所要解决的技术问题是针对现有技术的不足,提供一种基于布尔函数的分组密码S盒快速实现方法及装置,以及包含该S盒的存储介质、专用集成电路和密码运算设备。本专利技术解决上述技术问题的技术方案如下:一种基于布尔函数的分组密码S盒快速实现方法,包括:获取待优化的S盒,将所述S盒的输出转换成真值表;找出所述真值表中满足预设取值条件的输入变量的组合,根据所述输入变量的组合构建每个输出变量的布尔函数表达式。本专利技术的有益效果是:本专利技术基于最优布尔函数表达式,用更少的门电路完成S盒的实现,由于硬件实现本质是基于“与”、“或”、“非”逻辑电路的组合,因此本专利技术采用布尔函数表达式来实现S盒,通过布尔函数表达式直接操作与、或、非门,非常适合ASIC实现,具有节省元器件、工作效率高的优点,这种方法不仅能降低面积,还能提高效率,且易于编程实现。本专利技术解决上述技术问题的另一种技术方案如下:一种存储介质,所述存储介质中存储有指令,当计算机读取所述指令时,使所述计算机执行如上述技术方案所述的基于布尔函数的分组密码S盒快速实现方法。本专利技术解决上述技术问题的另一种技术方案如下:一种基于布尔函数的分组密码S盒快速实现装置,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序,实现如上述技术方案所述的基于布尔函数的分组密码S盒快速实现方法。本专利技术解决上述技术问题的另一种技术方案如下:一种存储介质,所述存储介质中存储有输出变量为布尔函数表达式形式的S盒。本专利技术解决上述技术问题的另一种技术方案如下:一种专用集成电路,包括:门电路,所述门电路的结构为通过上述技术方案所述的基于布尔函数的分组密码S盒快速实现方法构建的S盒的输出变量的布尔函数表达式。本专利技术解决上述技术问题的另一种技术方案如下:一种密码运算设备,包括如上述技术方案所述的存储介质,或,包括如上述技术方案所述的专用集成电路。本专利技术附加的方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本专利技术实践了解到。附图说明图1为本专利技术分组密码S盒快速实现方法的实施例提供的流程示意图;图2为本专利技术专用集成电路的实施例提供的结构框架图。具体实施方式以下结合附图对本专利技术的原理和特征进行描述,所举实施例只用于解释本专利技术,并非用于限定本专利技术的范围。如图1所示,为本专利技术分组密码S盒快速实现方法的实施例提供的流程示意图,该方法包括:S1,获取待优化的S盒,将所述S盒的输出转换成真值表;S2,找出所述真值表中满足预设取值条件的输入变量的组合,根据所述输入变量的组合构建每个输出变量的布尔函数表达式。以SM4密码算法标准的S盒实现为例进行说明,SM4的S盒为固定的8比特输入8比特输出的置换,为了方便描述S盒的布尔函数,采用(x0,x1,x2,x3,x4,x5,x6,x7)表示S盒8比特的输入,(y0,y1,y2,y3,y4,y5,y6,y7)表示8比特的输出,则S盒的布尔函数可以表示为:y0=S0(x0,x1,x2,x3,x4,x5,x6,x7)y1=S1(x0,x1,x2,x3,x4,x5,x6,x7)y2=S2(x0,x1,x2,x3,x4,x5,x6,x7)y3=S3(x0,x1,x2,x3,x4,x5,x6,x7)y4=S4(x0,x1,x2,x3,x4,x5,x6,x7)y5=S5(x0,x1,x2,x3,x4,x5,x6,x7)y6=S6(x0,x1,x2,x3,x4,x5,x6,x7)y7=S7(x0,x1,x2,x3,x4,x5,x6,x7)可以将S盒输入变量所有取值下对应的输出值列成真值表,找出真值表中使输出变量yi=1(i=0,1…7)的所有输入变量的组合,每组输入变量取值的组合对应一个乘积项,其中取值为1的写入原变量,取值为0的写入反变量,最后将这些乘积项相加,即得到yi=1(i=0,1…7)的布尔函数。此时得到的布尔函数表达式有128个因子项,以y0为例,表1中给出了示例。表1本实施例基于最优布尔函数表达式,用更少的门电路完成S盒的实现,由于硬件实现本质是基于“与”、“或”、“非”逻辑电路的组合,因此本专利技术采用布尔函数表达式来实现S盒,通过布尔函数表达式直接操作与、或、非门,非常适合ASIC实现,具有节省元器件、工作效率高的优点,这种方法不仅能降低面积,还能提高效率,且易于编程实现。可选地,在一些可能的实施方式中,找出所述真值表中满足预设取值条件的输入变量的组合,根据所述输入变量的组合构建每个输出变量的布尔函数表达式,具体包括:找出所述真值表中使第i个输出变量为1的输入变量的组合,确定每组所述输入变量的组合的乘积项的数值,将所述乘积项取值为1的输入变量的组合写入原变量,将所述乘积项取值为0的输入变量的组合写入反变量,将得到的全部所述乘积项相加,得到第i个输出变量的布尔函数表达式,其中,i=1,2,……,N,N为输出变量的数量。可选地,在一些可能的实施方式中,还包括:通过优化相邻最小项的方法,对每个所述输出变量的布尔函数表达式进行优化。例如,(~A)B(~C)和AB(~C)两个最小项仅第一个因子不同,所以它们具有相邻性。这两个最小项相加时一定能合并成一项并将这一对不同的因子消去:(~A)B(~C)+AB(~C)=((~A)+A)B(~C)=B(~C)以y0为例,表2中给出了优化后的表达式,其中因子项个数由128项降低到50项左右。表2通过优化相邻最小项的方法对得到的布尔函数表达式进行优化,能够有效减少布尔函数表达式中的因子项数量,从而使得在ASIC实现时,减少门电路的数目,减少路径延时,提高效率,减少面积。在本专利技术的其他实施例中,还提供一种存储介质,所述存储介质中存储有指令,当计算机读取所述指令时,使所述计算机执行如上述实施例所述的基于布尔函数的分组密码S盒快速实现方法。在本专利技术的其他实施例中,还提供一种基于布尔函数的分组密码S盒快速实现装置,包括:存储器,用于存储计算机程序;处理器,用于执本文档来自技高网...

【技术保护点】
1.一种基于布尔函数的分组密码S盒快速实现方法,其特征在于,包括:/n获取待优化的S盒,将所述S盒的输出转换成真值表;/n找出所述真值表中满足预设取值条件的输入变量的组合,根据所述输入变量的组合构建每个输出变量的布尔函数表达式。/n

【技术特征摘要】
1.一种基于布尔函数的分组密码S盒快速实现方法,其特征在于,包括:
获取待优化的S盒,将所述S盒的输出转换成真值表;
找出所述真值表中满足预设取值条件的输入变量的组合,根据所述输入变量的组合构建每个输出变量的布尔函数表达式。


2.根据权利要求1所述的基于布尔函数的分组密码S盒快速实现方法,其特征在于,找出所述真值表中满足预设取值条件的输入变量的组合,根据所述输入变量的组合构建每个输出变量的布尔函数表达式,具体包括:
找出所述真值表中使第i个输出变量为1的输入变量的组合,确定每组所述输入变量的组合的乘积项的数值,将所述乘积项取值为1的输入变量的组合写入原变量,将所述乘积项取值为0的输入变量的组合写入反变量,将得到的全部所述乘积项相加,得到第i个输出变量的布尔函数表达式,其中,i=1,2,……,N,N为输出变量的数量。


3.根据权利要求1所述的基于布尔函数的分组密码S盒快速实现方法,其特征在于,还包括:
通过优化相邻最小项的方法,对...

【专利技术属性】
技术研发人员:陈彦琴杨国强
申请(专利权)人:北京三未信安科技发展有限公司
类型:发明
国别省市:北京;11

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

1