CN111585579B - 基于布尔函数的分组密码s盒快速实现方法及装置 - Google Patents
基于布尔函数的分组密码s盒快速实现方法及装置 Download PDFInfo
- Publication number
- CN111585579B CN111585579B CN202010285557.XA CN202010285557A CN111585579B CN 111585579 B CN111585579 B CN 111585579B CN 202010285557 A CN202010285557 A CN 202010285557A CN 111585579 B CN111585579 B CN 111585579B
- Authority
- CN
- China
- Prior art keywords
- boolean function
- box
- combination
- input variables
- block cipher
- 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
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/61—Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
- H03M13/615—Use of computational or mathematical techniques
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Algebra (AREA)
- Computational Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开了基于布尔函数的分组密码S盒快速实现方法及装置,涉及信息安全领域。该方法包括:获取待优化的S盒,将S盒的输出转换成真值表;找出真值表中满足预设取值条件的输入变量的组合,根据输入变量的组合构建每个输出变量的布尔函数表达式。本发明非常适合ASIC实现,具有节省元器件、工作效率高的优点,这种方法不仅能降低面积,还能提高效率,且易于编程实现。
Description
技术领域
本发明涉及信息安全领域,尤其涉及基于布尔函数的分组密码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盒快速实现装置,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,实现如上述实施例所述的基于布尔函数的分组密码S盒快速实现方法。
在本发明的其他实施例中,还提供一种存储介质,所述存储介质中存储有输出变量为布尔函数表达式形式的S盒。
需要说明的是,该S盒可以通过以下方式实现:
获取待优化的S盒,将所述S盒的输出转换成真值表;
找出所述真值表中满足预设取值条件的输入变量的组合,根据所述输入变量的组合构建每个输出变量的布尔函数表达式。
具体地,找出所述真值表中使第i个输出变量为1的输入变量的组合,确定每组所述输入变量的组合的乘积项的数值,将所述乘积项取值为1的输入变量的组合写入原变量,将所述乘积项取值为0的输入变量的组合写入反变量,将得到的全部所述乘积项相加,得到第i个输出变量的布尔函数表达式,其中,i=1,2,……,N,N为输出变量的数量。
优选地,还可以通过优化相邻最小项的方法,对每个所述输出变量的布尔函数表达式进行优化。
在本发明的其他实施例中,还提供一种专用集成电路,包括:门电路,所述门电路的结构为通过上述实施例所述的基于布尔函数的分组密码S盒快速实现方法构建的S盒的输出变量的布尔函数表达式。
如图2所示,提供一种示例性的专用集成电路结构框架图,为便于说明,以3比特输入输出的S盒为例,提供了一种实例性的逻辑电路图,其中,x0、x1和x2为输入,y0、y1和y2为输出,6、11、1表示或非门,7、12、2、10、15、5表示或门,8、13、3、4、9、14表示与门。
在本发明的其他实施例中,还提供一种密码运算设备,包括如上述实施例所述的存储介质,或,包括如上述实施例所述的专用集成电路。
读者应理解,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的方法实施例仅仅是示意性的,例如,步骤的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个步骤可以结合或者可以集成到另一个步骤,或一些特征可以忽略,或不执行。
上述方法如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (6)
1.一种基于布尔函数的分组密码S盒快速实现方法,其特征在于,包括:
获取待优化的S盒,将所述S盒的输出转换成真值表;
找出所述真值表中满足预设取值条件的输入变量的组合,根据所述输入变量的组合构建每个输出变量的布尔函数表达式;
找出所述真值表中满足预设取值条件的输入变量的组合,根据所述输入变量的组合构建每个输出变量的布尔函数表达式,具体包括:
找出所述真值表中使第i个输出变量为1的输入变量的组合,确定每组所述输入变量的组合的乘积项的数值,将所述乘积项取值为1的输入变量的组合写入原变量,将所述乘积项取值为0的输入变量的组合写入反变量,将得到的全部所述乘积项相加,得到第i个输出变量的布尔函数表达式,其中,i=1,2,……,N,N为输出变量的数量。
2.根据权利要求1所述的基于布尔函数的分组密码S盒快速实现方法,其特征在于,还包括:
通过优化相邻最小项的方法,对每个所述输出变量的布尔函数表达式进行优化。
3.一种存储介质,其特征在于,所述存储介质中存储有指令,当计算机读取所述指令时,使所述计算机执行如权利要求1或2所述的基于布尔函数的分组密码S盒快速实现方法。
4.一种基于布尔函数的分组密码S盒快速实现装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,实现如权利要求1或2所述的基于布尔函数的分组密码S盒快速实现方法。
5.一种专用集成电路,其特征在于,包括:门电路,所述门电路的结构为通过权利要求1或2所述的基于布尔函数的分组密码S盒快速实现方法构建的S盒的输出变量的布尔函数表达式。
6.一种密码运算设备,其特征在于,包括如权利要求5所述的专用集成电路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010285557.XA CN111585579B (zh) | 2020-04-13 | 2020-04-13 | 基于布尔函数的分组密码s盒快速实现方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010285557.XA CN111585579B (zh) | 2020-04-13 | 2020-04-13 | 基于布尔函数的分组密码s盒快速实现方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111585579A CN111585579A (zh) | 2020-08-25 |
CN111585579B true CN111585579B (zh) | 2023-08-18 |
Family
ID=72124427
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010285557.XA Active CN111585579B (zh) | 2020-04-13 | 2020-04-13 | 基于布尔函数的分组密码s盒快速实现方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111585579B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113255257B (zh) * | 2021-05-26 | 2023-04-07 | 山东大学 | 基于工艺库的s盒电路的优化方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104301089A (zh) * | 2014-09-23 | 2015-01-21 | 电子科技大学 | 用于对任意变量的两个布尔函数进行仿射等价的判定方法 |
CN110022202A (zh) * | 2019-03-12 | 2019-07-16 | 中国科学院软件研究所 | 一种搜索s盒的最少硬件实现门数的方法和s盒电路结构 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9390292B2 (en) * | 2013-12-30 | 2016-07-12 | Wisconsin Alumni Research Foundation | Encrypted digital circuit description allowing circuit simulation |
-
2020
- 2020-04-13 CN CN202010285557.XA patent/CN111585579B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104301089A (zh) * | 2014-09-23 | 2015-01-21 | 电子科技大学 | 用于对任意变量的两个布尔函数进行仿射等价的判定方法 |
CN110022202A (zh) * | 2019-03-12 | 2019-07-16 | 中国科学院软件研究所 | 一种搜索s盒的最少硬件实现门数的方法和s盒电路结构 |
Non-Patent Citations (1)
Title |
---|
李云强 ; 孙怀波 ; 王爱兰 ; .布尔函数和伪布尔函数多项式表示的快速实现算法.计算机工程与应用.2007,(第01期),第50-52页. * |
Also Published As
Publication number | Publication date |
---|---|
CN111585579A (zh) | 2020-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Aumasson | Too much crypto | |
CN103299576A (zh) | 比特生成装置以及比特生成方法 | |
CN111585579B (zh) | 基于布尔函数的分组密码s盒快速实现方法及装置 | |
Durrleman et al. | A simple transformation of copulas | |
Zhou et al. | A dynamic duopoly Cournot model with R&D efforts and its dynamic behavior analysis | |
Chun et al. | Dorcis: depth optimized quantum implementation of substitution boxes | |
CN110515591B (zh) | 基于区块链的随机数生成方法及装置 | |
Hamoudi et al. | Quantum-classical tradeoffs in the random oracle model | |
JP2010107947A (ja) | Shaアルゴリズム基盤のメッセージスケジュール演算方法、メッセージ圧縮演算方法及びこれを行う暗号装置 | |
Amsaad et al. | An innovative delay based algorithm to boost PUF security against machine learning attacks | |
CN111194448A (zh) | 伪数据生成装置及其方法和程序 | |
CN110213037B (zh) | 一种适合硬件环境的流密码加密方法及系统 | |
JP5354914B2 (ja) | 暗号処理装置及び復号処理装置及びプログラム | |
Alcock et al. | A Note on the Security of Equihash | |
JP5791562B2 (ja) | 圧縮関数演算装置、圧縮関数演算方法、およびプログラム | |
CN116820397B (zh) | 基于CRYSTALS-Kyber的快速数论变换电路 | |
JP3907976B2 (ja) | F関数内部にspn構造を用いた演算装置および演算方法 | |
WO2020121527A1 (ja) | 学習識別装置、学習識別方法、及び、学習識別プログラム | |
Thomson | Circuit evolution and visualisation | |
CN110659508A (zh) | 一种基于卢卡斯数列的加解密方法、设备及可读介质 | |
Khairallah et al. | Arguments for Tweakable Block Cipher-Based Cryptography | |
US20240154786A1 (en) | Encryption processing apparatus and encryption processing method | |
Li | A new CAM based S/S/sup-1/-box look-up table in AES | |
DE112021007029T5 (de) | Verschlüsselungseinrichtung, entschlüsselungseinrichtung, verschlüsselungsverfahren, verschlüsselungsprogramm, entschlüsselungsverfahren, und entschlüsselungsprogramm | |
JP3401207B2 (ja) | 換字置換装置及びそのプログラム記録媒体 |
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 | ||
CB02 | Change of applicant information |
Address after: 100102 room 1406, 14th floor, building 2, yard 16, Guangshun North Street, Chaoyang District, Beijing Applicant after: Sanwei Xin'an Technology Co.,Ltd. Address before: 100102 room 1406, 14th floor, building 2, yard 16, Guangshun North Street, Chaoyang District, Beijing Applicant before: BEIJING SANSEC TECHNOLOGY DEVELOPMENT Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |