CN110022202B - 一种搜索s盒的最少硬件实现门数的方法和s盒电路结构 - Google Patents
一种搜索s盒的最少硬件实现门数的方法和s盒电路结构 Download PDFInfo
- Publication number
- CN110022202B CN110022202B CN201910184416.6A CN201910184416A CN110022202B CN 110022202 B CN110022202 B CN 110022202B CN 201910184416 A CN201910184416 A CN 201910184416A CN 110022202 B CN110022202 B CN 110022202B
- Authority
- CN
- China
- Prior art keywords
- layer
- box
- boolean
- boolean function
- hardware
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明公开一种搜索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盒最优的硬件实现逻辑过程,能够明显降低芯片面积、功耗和延迟,提高实现性能。
Description
技术领域
本发明提出了一种搜索S盒的最少硬件门数的优化实现方法和S盒电路结构,属于通信技术领域。
背景技术
随着物联网的发展,人们对轻量化密码算法的需求愈加旺盛。而物联网中嵌入式系统中的微处理芯片属于资源受限设备的一种,这类设备都有共同的特点:计算能力和存储空间有限。这些特点对轻量化密码算法提出了新的要求:在有限的硬件资源的前提下,轻量化密码可以提供足够的安全性。在某些特定场景下,嵌入式处理器芯片的门电路数目十分有限,除了实现业务逻辑部分以外,能够为安全算法保留的电路门数不到2000GE,其中GE为Gate Equivalences(门等价),是一个等效的门,代表一个度量单位。这一限制远低于目前一些密码算法的最小硬件实现电路面积。因此,需要最小化密码算法基本构件的硬件代价,如S盒。
S盒(Substitution-box)是大多数分组密码中至关重要的非线性部件,高代数次数S盒是安全密码的一个必要条件。密码算法中S盒的硬件实现是一系列逻辑门的组合。S盒的硬件实现代价直接关系到密码算法的实现代价,因此给出S盒硬件实现代价测试工具,搜索S盒的较优的硬件实现代价,对于密码算法的设计者来说意义重大。
目前国际上关于S盒的研究一直是热点话题,其中一个方向是搜索给定S盒的优化硬件实现。比如利用启发式搜索算法来发现最小基本操作(XOR、XNOR、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)GE 0层:n个输入值本身就是布尔函数;
2)GE 0.5层:使用基本操作NOT作用于GE0层的布尔函数;
3)GE 1层:使用基本操作NAND、NOR作用于GE0层中的两个不同的布尔函数;
4)GE 1.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)GE g≥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盒
x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
S(x) | 0 | 2 | 10 | 9 | 6 | 4 | 14 | 13 | 1 | 7 | 15 | 8 | 11 | 12 | 3 | 5 |
搜索S盒的最少硬件门数方法是按层迭代的,各层的布尔函数来自于各自对应的前4层布尔函数的逻辑门运算。下面给出上表中S盒搜索最少硬件门数的具体过程,如图1所示,其中ti表示中间值,a,b,c,d代表S盒的输入比特,e,f,g,h代表S盒的输出比特:
1)t1=a NAND b;
2)t2=b NOR c;
3)t3=c NAND d;
4)t4=b NAND d;
5)t5=a NANDt4;
6)e=c XNORt1;
7)f=d XNORt2;
8)h=t3XORt5;
9)t6=a NAND f;
10)g=b XNOR t6
当S盒的所有输出比特均得到匹配时,上述搜索停止。因此,此S盒硬件逻辑实现需要18门,最大延迟门数为8(硬件实现门数等于基本操作硬件门数之和,延迟是指最长序列中基本操作的延迟之和)。相比于本发明,现有的基于指令的暴力求解方式需要更多的延迟门数。
基于上述方法,本发明还提供一种S盒电路结构,采用上面方法搜索得到的S盒的最少硬件门数实现该电路结构。
基于上述方法,本发明还提供一种芯片,如嵌入式处理器芯片,其包含采用上述方法得到的S盒电路结构。
本发明针对给定S盒,搜索出最少硬件门数的布尔函数表达式。与现有基于指令数的搜索方式相比,本发明可以输出最优的硬件实现逻辑过程,能够明显降低芯片面积、功耗和延迟,提高实现性能。
附图说明
图1是S盒的硬件逻辑实现实例的示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面通过具体实施例和附图,对本发明做进一步详细说明。
本实施例以表2的4比特S盒举例,具体介绍本发明如何搜索给定S盒的最少门数的硬件实现。
Step 1:利用S盒真值表为四个变量a,b,c,d赋值,为GE0层;
Step 2:使用逻辑门NOT对GE 0层的布尔函数进行计算,生成新的一层布尔函数,门数为0.5GE,为GE0.5层;
Step 3:使用逻辑门NAND、NOR对GE 0层的布尔函数进行计算,生成新的一层布尔函数,门数为1GE,为GE1层;
Step 4:当层数为GE 1.5层至GE 2.5层时,各层均可以用以下3种方式产生各自层的布尔函数:
a.使用基本操作AND、OR作用于GE(g-1.5)层中的两个不同布尔函数,其中g表示硬件门数;
b.使用基本操作NAND、NOR作用于GE(g-1)层中的两个不同布尔函数;
c.使用基本操作NOT作用于GE(g-0.5)层中的两个不同布尔函数。
Step 5:GE g≥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的两层布尔函数上。
Step 6:如果Step1-Step5中一旦找到S盒的4个输出值所对应的布尔函数,那么搜索结束;否则,重复step5,直到找到S盒所有输出比特对应的布尔函数。
本发明另一实施例提供一种采用上述方法得到的S盒电路结构,即采用上面方法搜索得到的S盒的最少硬件门数实现该电路结构。
本发明另一实施例提供一种芯片,如嵌入式处理器芯片,其包含采用上述方法得到的S盒电路结构。
以上对本发明方法进行了详细的说明,但显然本发明的具体实现形式并不局限于此。对于本技术领域的一般技术人员来说,在不背离本发明所述方法的精神和权利要求范围的情况下对它进行的各种显而易见的改变都在本发明的保护范围之内。
Claims (5)
1.一种搜索S盒的硬件实现门数的方法,其特征在于,在满足当前层硬件门数的前提下,当前层的布尔函数集是由至少一个基本操作作用于其相对应的前至少一层布尔函数集的结果;如此重复迭代,保证每层的布尔函数都有相同的硬件门数;
所述基本操作包括:异或XOR、同或XNOR、与AND、或OR、与非NAND、或非NOR、非NOT;
所述方法包括以下步骤,其中GE表示一个等效的门,是一个度量单位:
1)GE 0层:n个输入值本身就是布尔函数;
2)GE 0.5层:使用基本操作NOT作用于GE0层的布尔函数;
3)GE 1层:使用基本操作NAND、NOR作用于GE0层中的两个不同的布尔函数;
4)GE 1.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)GE g≥3层,采用以下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的两层布尔函数上。
2.根据权利要求1所述的方法,其特征在于,如果步骤1)~5)中一旦找到S盒的各输出值所对应的布尔函数,则搜索结束;否则重复步骤5),直到找到S盒所有输出比特对应的布尔函数。
3.根据权利要求1所述的方法,其特征在于,所述S盒为4比特S盒,搜索硬件门数的过程如下,其中ti表示中间值,a,b,c,d代表S盒的输入比特,e,f,g,h代表S盒的输出比特:
1)t1=a NAND b;
2)t2=b NOR c;
3)t3=c NAND d;
4)t4=b NAND d;
5)t5=a NAND t4;
6)e=c XNOR t1;
7)f=d XNOR t2;
8)h=t3XOR t5;
9)t6=a NAND f;
10)g=b XNOR t6;
当S盒的所有输出比特均得到匹配时,上述搜索停止。
4.一种S盒电路,其特征在于,所述S盒电路包含逻辑门,逻辑门的门数为采用权利要求1~3中任一权利要求所述方法搜索得到的S盒的硬件门数。
5.一种嵌入式处理器芯片,其特征在于,包含权利要求4所述的S盒电路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910184416.6A CN110022202B (zh) | 2019-03-12 | 2019-03-12 | 一种搜索s盒的最少硬件实现门数的方法和s盒电路结构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910184416.6A CN110022202B (zh) | 2019-03-12 | 2019-03-12 | 一种搜索s盒的最少硬件实现门数的方法和s盒电路结构 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110022202A CN110022202A (zh) | 2019-07-16 |
CN110022202B true CN110022202B (zh) | 2020-10-27 |
Family
ID=67189486
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910184416.6A Active CN110022202B (zh) | 2019-03-12 | 2019-03-12 | 一种搜索s盒的最少硬件实现门数的方法和s盒电路结构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110022202B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111585579B (zh) * | 2020-04-13 | 2023-08-18 | 三未信安科技股份有限公司 | 基于布尔函数的分组密码s盒快速实现方法及装置 |
CN113255257B (zh) * | 2021-05-26 | 2023-04-07 | 山东大学 | 基于工艺库的s盒电路的优化方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2439652A1 (en) * | 2010-10-11 | 2012-04-11 | Fujitsu Limited | Binary decision diagrams |
CN102185606B (zh) * | 2011-03-04 | 2013-05-01 | 宁波大学 | 一种减少数字逻辑电路面积的方法 |
CN103236837A (zh) * | 2013-04-08 | 2013-08-07 | 宁波大学 | 一种数字逻辑电路的子电路提取方法 |
CN103368725A (zh) * | 2012-04-06 | 2013-10-23 | 中国科学院软件研究所 | 一种g0类s盒构造方法及其电路 |
CN103378968A (zh) * | 2012-04-16 | 2013-10-30 | 中国科学院软件研究所 | 一种g1类s盒构造方法及其电路 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101938349A (zh) * | 2010-10-01 | 2011-01-05 | 北京航空航天大学 | 一种适用于硬件实现的s盒及其电路实现方法 |
CN105681026B (zh) * | 2016-03-10 | 2019-06-18 | 中国科学院计算技术研究所 | 适用于轻量级加密算法的动态s盒构造方法及系统 |
-
2019
- 2019-03-12 CN CN201910184416.6A patent/CN110022202B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2439652A1 (en) * | 2010-10-11 | 2012-04-11 | Fujitsu Limited | Binary decision diagrams |
CN102185606B (zh) * | 2011-03-04 | 2013-05-01 | 宁波大学 | 一种减少数字逻辑电路面积的方法 |
CN103368725A (zh) * | 2012-04-06 | 2013-10-23 | 中国科学院软件研究所 | 一种g0类s盒构造方法及其电路 |
CN103378968A (zh) * | 2012-04-16 | 2013-10-30 | 中国科学院软件研究所 | 一种g1类s盒构造方法及其电路 |
CN103236837A (zh) * | 2013-04-08 | 2013-08-07 | 宁波大学 | 一种数字逻辑电路的子电路提取方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110022202A (zh) | 2019-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8443205B2 (en) | Secure function evaluation techniques for circuits containing XOR gates with applications to universal circuits | |
Goodrich | Zig-zag sort: A simple deterministic data-oblivious sorting algorithm running in o (n log n) time | |
Vergos et al. | On modulo 2^ n+ 1 adder design | |
US8832614B2 (en) | Technology mapping for threshold and logic gate hybrid circuits | |
EP2097841B1 (en) | Polynomial synthesis | |
US8495116B2 (en) | Circuit and method converting boolean and arithmetic masks | |
CN110022202B (zh) | 一种搜索s盒的最少硬件实现门数的方法和s盒电路结构 | |
Liu et al. | A stream cipher algorithm based on 2D coupled map lattice and partitioned cellular automata | |
Ueno et al. | High throughput/gate AES hardware architectures based on datapath compression | |
Guinet et al. | Arybo: Manipulation, canonicalization and identification of mixed boolean-arithmetic symbolic expressions | |
Boyar et al. | Small low-depth circuits for cryptographic applications | |
Li et al. | A image encryption algorithm based on coexisting multi-attractors in a spherical chaotic system | |
CN112507644A (zh) | 优化的sm4算法线性层电路 | |
Chattopadhyay et al. | Reversible logic synthesis via biconditional binary decision diagrams | |
Jang et al. | Parallel quantum addition for Korean block ciphers | |
CN101183945A (zh) | 基于旁路算子的椭圆曲线抗旁路攻击方法 | |
Courtois et al. | Exact logic minimization and multiplicative complexity of concrete algebraic and cryptographic circuits | |
Kole et al. | Exact synthesis of ternary reversible functions using ternary Toffoli gates | |
Nikova et al. | Using normal bases for compact hardware implementations of the AES S-Box | |
Sampson et al. | Exact ESOP expressions for incompletely specified functions | |
US7023990B1 (en) | Secure parameter generating device and parameter generating method in algebraic curve crytography | |
KR20220072760A (ko) | 암호학적 해시 함수의 원상 요소를 결정하기 위한 방법, 컴퓨터 프로그램, 및 데이터 처리 시스템 | |
Czygrinow et al. | Distributed approximation algorithms for the minimum dominating set in k_h-minor-free graphs | |
Hattori et al. | Mapping a quantum circuit to 2D nearest neighbor architecture by changing the gate order | |
Mishra et al. | Novel substitution box architectural synthesis for lightweight block ciphers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |