CN112507644B - 优化的sm4算法线性层电路 - Google Patents

优化的sm4算法线性层电路 Download PDF

Info

Publication number
CN112507644B
CN112507644B CN202011406329.XA CN202011406329A CN112507644B CN 112507644 B CN112507644 B CN 112507644B CN 202011406329 A CN202011406329 A CN 202011406329A CN 112507644 B CN112507644 B CN 112507644B
Authority
CN
China
Prior art keywords
module
algorithm
output signal
matrix
exclusive
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
Application number
CN202011406329.XA
Other languages
English (en)
Other versions
CN112507644A (zh
Inventor
林达
向泽军
张莎莎
曾祥勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hubei University
Original Assignee
Hubei University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hubei University filed Critical Hubei University
Priority to CN202011406329.XA priority Critical patent/CN112507644B/zh
Publication of CN112507644A publication Critical patent/CN112507644A/zh
Application granted granted Critical
Publication of CN112507644B publication Critical patent/CN112507644B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/337Design optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2115/00Details relating to the type of the circuit
    • G06F2115/06Structured ASICs

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Algebra (AREA)
  • Geometry (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明涉及优化的SM4算法线性层电路,具体包括第一模块、第二模块、第三模块、第四模块、第五模块和第六模块,第一模块的输出信号受部分总输入信号影响,第二模块的输出信号受部分总输入信号以及第一模块的部分输出信号影响,第三模块的输出信号受部分总输入信号以及第一模块和第二模块的部分输出信号影响,第四模块的输出信号受第一模块、第二模块以及第三模块的部分输出信号影响,第五模块的输出信号受第二模块以及第四模块的部分输出信号影响,第六模块的输出信号受第二模块以及第五模块的部分输出信号影响。本发明的SM4算法线性层电路中异或门电路数目前已知最少,降低了整体密码算法硬件实现的成本及面积。

Description

优化的SM4算法线性层电路
技术领域
本发明涉及SM4算法的加密实现技术,具体的涉及一种优化的SM4算法线性层电路。
背景技术
随着轻量级应用越来越普遍,为了适应资源受限平台,密码算法的优化实现越来越受到广泛关注,如图1所示,我国商用分组密码标准(SM4算法)属于常用密码算法的一种,是我国国家密码管理局发布的密码行业标准,适用于无线局域网和可信计算系统,在我国密码行业中占据着极其重要的地位。
扩散作为设计密码算法的两个基本准则之一,对于密码算法的安全性起着至关重要的作用,而密码算法的线性部件是实现扩散的主要组件。因此,在研究密码算法的硬件实现时,线性部件的硬件实现开销也不容忽视。
密码算法线性层可由矩阵表示,其实现代价也可由实现该矩阵所需异或数来评估。研究表明,求解线性矩阵的最少异或数实现(即最优实现)是一个NP-困难问题。因此,学者们提出了一系列高效的启发式算法搜索矩阵的优化实现,比如算法Paar1、RPaar1、Paar2、BP、BFI(Banik等人的方法)、RNBP、A1以及A2。值得注意的是,这些算法给出的矩阵实现与矩阵的大小以及稠密度有关,对于较大、较稠密的矩阵,上述搜索算法给出的实现仍有进一步优化的空间。
发明内容
本发明要解决的技术问题是针对以上不足,提供一种优化的SM4算法线性层电路,可减少电路所需异或门电路数量来降低密码算法线性层的实现成本以及所需硬件面积,从而达到优化整体密码算法硬件实现的目的。
为解决以上技术问题,本发明采用以下技术方案:
优化的SM4算法线性层电路,包括第一模块、第二模块、第三模块、第四模块、第五模块和第六模块,设线性层电路总输入信号为{x0,x1,…,x31},输出信号为{y0,y1,…,y31},寄存器记为ti,则所述第一模块的输入信号为:
x0,x1,x2,x3,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,输出信号为:
t32,t33,t34,t35,t36,t37,t38,t40,t41,t42,t43,t44,t45,t47,t48,t50,t54,t57,t58,t60,t66,具体包括21个异或门电路,分别为:
t32=x30⊕x14,t33=x14⊕x22,t34=x29⊕x13,t35=x25⊕x17,t36=x2⊕x7,t37=x26⊕x18,t38=x17⊕x9,t40=x24⊕x8,t41=x8⊕x0,t42=x9⊕x1,t43=x20⊕x28,t44=x28⊕x12,t45=x7⊕x31,t47=x18⊕x10,t48=x19⊕x27,t50=x10⊕x2,t54=x5⊕x3,t57=x27⊕x11,t58=x13⊕x21,t60=x6⊕x12,t66=x31⊕x15
所述第二模块的输入信号为:
x0,x1,x2,x4,x5,x6,x11,x12,x15,x16,t32,t33,t34,t35,t36,t37,t38,t40,t41,t43,t44,t45,t47,t48,t54,t57,t58,t60,输出信号为:
t39,t46,t49,t51,t52,t53,t55,t59,t61,t62,t63,t67,t69,t70,t71,t72,t73,t74,t75,t77,t92,具体包括21个异或门电路,分别为:
t39=x16⊕t33,t46=x1⊕t45,t49=t45⊕t34,t51=x2⊕t41,t52=t41⊕t32,t53=t34⊕x5,t55=t32⊕x6,t59=t54⊕x11,t61=x0⊕t33,t62=x12⊕t43,t63=t33⊕t44,t67=x11⊕t48,t69=t43⊕t47,t70=x15⊕t58,t71=t48⊕t38,t72=t58⊕t57,t73=t44⊕t37,t74=t57⊕t35,t75=t38⊕t36,t77=t60⊕x4,t92=t47⊕t40
所述第三模块的输入信号为:
x3,x4,x21,x22,t35,t36,t37,t39,t40,t42,t43,t46,t48,t49,t50,t51,t52,t53,t55,t59,t61,t62,t63,t67,t69,t70,t71,t72,t73,t74,t75,t77,t92,输出信号为:
t56,t64,y28,y27,y25,y18,y17,t80,t81,t82,y9,y29,t85,y26,t87,y10,y22,y4,y30,y31,y3,y0,具体包括22个异或门电路,分别为:
t56=x22⊕t55,t64=x21⊕t53,t65=t55⊕t43[y28],t68=t53⊕t48[y27],t76=t74⊕x3[y25],t78=t69⊕x4[y18],t79=x3⊕t71[y17],t80=t71⊕t42,t81=t36⊕t70,t82=t37⊕t51,t83=t67⊕t42[y9],t84=t70⊕t49[y29],t85=t35⊕t46,t86=x4⊕t73[y26],t87=t73⊕t50,t88=t62⊕t50[y10],t91=t61⊕t40[y22],t100=t77⊕t63[y4],t103=t39⊕t52[y30],t104=t46⊕t75[y31],t106=t59⊕t72[y3],t108=t51⊕t92[y0];
所述第四模块的输入信号为:
t40,t42,t50,t56,t59,t61,t63,t64,t65,t66,t68,t72,t76,t77,t78,t80,t81,t82,t85,t87;输出信号为y8,t90,y7,t94,y15,y21,y5,y11,y12,y20,y19,y1,y2;具体包括13个异或门电路,分别为:
t89=t50⊕t82[y8],t90=t82⊕t61,t93=t42⊕t85[y7],t94=t40⊕t56,t95=t85⊕t66[y15],t96=t66⊕t81[y21],t97=t81⊕t64[y5],t98=t64⊕t59[y11],t99=t56⊕t77[y12],t105=t63⊕t65[y20],t107=t72⊕t68[y19],t109=t80⊕t76[y1],t112=t87⊕t78[y2];
所述第五模块的输入信号为t39,t49,t75,t90,t94,t95,t97,输出信号为y16,y6,y23,y13,具体包括4个异或门电路,分别为:
t101=t90⊕t39[y16],t102=t94⊕t39[y6],t110=t75⊕t95[y23],t114=t49⊕t97[y13];
所述第六模块的输入信号为t52,t92,t101,t102,输出信号为y14,y24,具体包含两个异或门电路,分别为:t111=t52⊕t102[y14],t113=t92⊕t101[y24]。
本发明的有益效果为:本发明给出的优化的SM4算法线性层电路中异或门电路数目前已知最优(即最少)。本发明减少了SM4算法线性变换的实现代价,进而降低了整体密码算法硬件实现的成本及面积。
下面结合附图和实施例对本发明进行详细说明。
附图说明
图1为SM4算法原始实现流程图;
图2为SM4算法迭代搜索矩阵的优化实现框架图;
图3为本发明的优化的SM4算法线性层模块连接图;
图4为本发明的第一模块电路图;
图5为本发明的第二模块电路图;
图6为本发明的第三模块电路图;
图7为本发明的第四模块电路图;
图8为本发明的第五模块电路图;
图9为本发明的第六模块电路图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
如图1所示为SM4密码算法流程图,本发明涉及的电路是优化整个算法中的线性层L部分对应电路。
本发明的线性层电路的得到方法为,扩充SM4算法线性部件对应的矩阵,得到该矩阵在二元域上的表示;优化矩阵的实现,减少实现该矩阵所需异或门电路数量;列出算法线性部件的门级硬件电路图。具体步骤为:
S1、扩充算法线性部件对应的矩阵,得到该矩阵在二元域上的表示
对于SM4算法,其线性变换可由矩阵
Figure BDA0002814387610000041
表示,其中B1,B2,B3分别定义为如下8×8矩阵,
Figure BDA0002814387610000042
于是,矩阵L可扩充为二元域F2上的32×32矩阵,即
Figure BDA0002814387610000051
S2.优化矩阵的实现,减少实现该矩阵所需异或门电路数量
线性部件的输出为其输入的线性表达,相应的,在硬件实现其对应的矩阵时,任一输出信号可由输入信号线性表示。因此,目前的研究通常通过统计实现矩阵所有输出信号所消耗的异或门电路数目来评估算法线性层的实现代价。本发明沿用这种方法,设硬件实现时矩阵的输入信号为{x0,x1,…,x31},输出信号为{y0,y1,…,y31}。
本发明基于如图2所示框架,迭代搜索SM4算法线性层线性变换对应矩阵L的优化实现。
下面,我们介绍利用该框架搜索矩阵L的优化实现的步骤。
S2.1:将矩阵L作为该框架的输入,并从Paar1、RPaar1、BP、BFI、RNBP、A1以及A2中随机选择一个算法求解矩阵L的初始实现A。A由有限个(设为n)形如ti=tj⊕tk的异或操作构成,其中t为寄存器,其存储值为矩阵L的输入或异或操作得到的中间值;
S2.2:从上述实现A中截取长度为LEN(LEN∈[2,n-1],且初始值为n-1。)的连续片段,记为片段2,并依此恢复出矩阵L’。下面我们给出根据片段2恢复出矩阵L’的一般过程:
S2.2.1:求矩阵L’的输出;
片段2也是由若干形如ti=tj⊕tk的异或操作构成。设片段
Figure BDA0002814387610000061
Figure BDA0002814387610000062
我们将片段2中的所有异或操作等式左边的寄存器组成的集合记为SO,即
Figure BDA0002814387610000063
从SO中剔除掉仅在片段2中被使用并且储存值不等于矩阵L的任意输出的寄存器,筛选后SO集合中的元素即为矩阵L’的输出。
S2.2.2:求矩阵L’的输入;
由步骤S2.2.1可得矩阵L’的输出集合SO,将SO中的元素展开为关于矩阵L的输入(即x0,x1,…,x31)的线性表达式,所有线性表达式中的变量组成的集合Si即为矩阵L’的输入;
S2.2.3:根据输入集合Si以及输出集合SO即可恢复矩阵L’;
S2.3:再次从Paar1、RPaar1、BP、BFI、RNBP、A1以及A2中随机选择一个算法求解矩阵L’的实现,该实现与截取片段2等价。用矩阵L’的实现替换片段2,得到矩阵L新的实现。
S2.4:使用下列有助于减少实现代价的约简规则优化替换后矩阵L的实现;
如表1所示,我们以规则2为例简要说明上述规则实现约简的原理。假设给定的实现形如{…,tu=ta⊕tb,…,tv=ta⊕tu,…},则寄存器tv可改写为tv=ta⊕tu=ta⊕(ta⊕tb)=tb。因此,该实现转换为{…,tu=ta⊕tb,…,tv=tb,…}。因为寄存器tu最初只用作生成tv,而寄存器tv与寄存器tb存储的值相同且与寄存器tu无关,故我们可以从该实现中删除tu=ta⊕tb以及tv=tb,并将该实现中所有异或操作数tv改为tb。因此,规则2减少了两个异或数,从而优化了该给定实现。
表1约简规则表
Figure BDA0002814387610000071
Figure BDA0002814387610000081
对于替换后矩阵L的实现,我们从该实现中任取2或3个寄存器(形如tu=ta⊕tb。)分别判断选取寄存器是否满足上表所示约简规则,约简之后矩阵的实现记为B,则实现B与原始实现A等价。若实现B所需异或门电路数较少,则用实现B替换原始实现A回到步骤S2.2重新搜索;否则,从实现A中截取下一个长为LEN的连续片段回到步骤S2.2继续搜索。若实现A中所有长度为LEN的连续片段均已被截取以恢复L’,则从A中截取LEN-1的连续片段继续搜索,直至截取片段长度LEN=1停止搜索。
利用上述框架,我们得到如下表2所示SM4线性层线性变换对应矩阵L的优化实现。
表2 SM4算法线性变换矩阵L的优化实现
Figure BDA0002814387610000082
S3.列出算法线性部件的门级硬件电路图
利用目前已知基于g-xor标准求解矩阵实现的技术(Paar1,RPaar1,Paar2,BP,BFI,RNBP,A1,A2),本发明涉及的SM4算法线性层线性变换对应矩阵L的实现代价如下表所示:
表3、现有技术实现SM4算法线性层线性层异或门数量
Paar1 RPaar1 Paar2 BP BFI RNBP A1 A2
96 96 96 88 88 88 87 86
本发明的SM4算法线性层线性变换对应矩阵实现所消耗的异或数为83,目前已知最优。
如表2所示,实现SM4算法线性变换对应矩阵所需异或门电路数为83,深度为6,因此,如图3所示,SM4算法线性变换的硬件实现可分为六个模块。所有模块均为异或门电路的集成,除初始模块(第一模块),其他各模块均受深度较浅模块的影响。各模块的输入输出分析如下:
(1)第一模块:
第一模块的输出信号受SM4算法线性变换的部分输入信号影响,该模块的输出信号又会影响第二模块、模块三以及第四模块的输出信号值。
输入:
x0,x1,x2,x3,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31
输出:
t32,t33,t34,t35,t36,t37,t38,t40,t41,t42,t43,t44,t45,t47,t48,t50,t54,t57,t58,t60,t66,具体包括21个异或门电路,分别为:
t32=x30⊕x14,t33=x14⊕x22,t34=x29⊕x13,t35=x25⊕x17,t36=x23⊕x7,t37=x26⊕x18,t38=x17⊕x9,t40=x24⊕x8,t41=x8⊕x0,t42=x9⊕x1,t43=x20⊕x28,t44=x28⊕x12,t45=x7⊕x31,t47=x18⊕x10,t48=x19⊕x27,t50=x10⊕x2,t54=x5⊕x3,t57=x27⊕x11,t58=x13⊕x21,t60=x6⊕x12,t66=x31⊕x15
(2)第二模块
第二模块的输出信号受SM4算法线性变换的部分输入信号以及第一模块的部分输出信号影响,该模块的输出信号又会影响第三模块、第四模块、第五模块以及第六模块的输出信号值。
输入:
x0,x1,x2,x4,x5,x6,x11,x12,x15,x16,t32,t33,t34,t35,t36,t37,t38,t40,t41,t43,t44,t45,t47,t48,t54,t57,t58,t60
输出:
t39,t46,t49,t51,t52,t53,t55,t59,t61,t62,t63,t67,t69,t70,t71,t72,t73,t74,t75,t77,t92
具体包括21个异或门电路集成,分别为:
t39=x16⊕t33,t46=x1⊕t45,t49=t45⊕t34,t51=x2⊕t41,t52=t41⊕t32,t53=t34⊕x5,t55=t32⊕x6,t59=t54⊕x11,t61=x0⊕t33,t62=x12⊕t43,t63=t33⊕t44,t67=x11⊕t48,t69=t43⊕t47,t70=x15⊕t58,t71=t48⊕t38,t72=t58⊕t57,t73=t44⊕t37,t74=t57⊕t35,t75=t38⊕t36,t77=t60⊕x4,t92=t47⊕t40
(3)第三模块
第三模块的输出信号受SM4算法线性变换的部分输入信号以及第一模块和第二模块的部分输出信号影响,该模块的输出信号又会影响第四模块的输出信号值。
输入:
x3,x4,x21,x22,t35,t36,t37,t39,t40,t42,t43,t46,t48,t49,t50,t51,t52,t53,t55,t59,t61,t62,t63,t67,t69,t70,t71,t72,t73,t74,t75,t77,t92
输出:
t56,t64,y28,y27,y25,y18,y17,t80,t81,t82,y9,y29,t85,y26,t87,y10,y22,y4,y30,y31,y3,y0;具体包括22个异或门电路集成,分别为:
t56=x22⊕t55,t64=x21⊕t53,t65=t55⊕t43[y28],t68=t53⊕t48[y27],t76=t74⊕x3[y25],t78=t69⊕x4[y18],t79=x3⊕t71[y17],t80=t71⊕t42,t81=t36⊕t70,t82=t37⊕t51,t83=t67⊕t42[y9],t84=t70⊕t49[y29],t85=t35⊕t46,t86=x4⊕t73[y26],t87=t73⊕t50,t88=t62⊕t50[y10],t91=t61⊕t40[y22],t100=t77⊕t63[y4],t103=t39⊕t52[y30],t104=t46⊕t75[y31],t106=t59⊕t72[y3],t108=t51⊕t92[y0]。
(4)第四模块
第四模块的输出信号受SM4算法线性变换实现第一模块、第二模块以及第三模块的部分输出信号影响,该模块的输出信号又会影响第五模块的输出信号值。
输入:
t40,t42,t50,t56,t59,t61,t63,t64,t65,t66,t68,t72,t76,t77,t78,t80,t81,t82,t85,t87
输出:y8,t90,y7,t94,y15,y21,y5,y11,y12,y20,y19,y1,y2
具体包括13个异或门电路,分别为:
t89=t50⊕t82[y8],t90=t82⊕t61,t93=t42⊕t85[y7],t94=t40⊕t56,t95=t85⊕t66[y15],t96=t66⊕t81[y21],t97=t81⊕t64[y5],t98=t64⊕t59[y11],t99=t56⊕t77[y12],t105=t63⊕t65[y20],t107=t72⊕t68[y19],t109=t80⊕t76[y1],t112=t87⊕t78[y2];
(5)第五模块
第五模块的输出信号受SM4算法线性变换实现第二模块以及第四模块的部分输出信号影响,该模块的输出信号又会影响第六模块的输出信号值。
输入:t39,t49,t75,t90,t94,t95,t97
输出:y16,y6,y23,y13
具体包括4个异或门电路集成,分别为:
t101=t90⊕t39[y16],t102=t94⊕t39[y6],t110=t75⊕t95[y23],t114=t49⊕t97[y13],所述第六模块的输入信号为t52,t92,t101,t102,输出信号为y14,y24,包含两个异或门电路,输出信号为:t111=t52⊕t102[y14],t113=t92⊕t101[y24]。
(6)第六模块
第六模块的输出信号受SM4算法线性变换实现第二模块以及第五模块的部分输出信号影响。
输入:t52,t92,t101,t102
输出:y14,y24
具体包含两个异或门电路,输出信号为:t111=t52⊕t102[y14],t113=t92⊕t101[y24]。
图3中所有模块均为异或门电路的集成,各模块的电路实现已由图4-9具体给出。由于各模块所需异或门电路总数达到目前已知最优,图4-9给出的电路实现降低了算法线性部件的实现代价。基于上述实现,本发明可以减少对应模块的实现成本以及面积,从而达到优化整体算法硬件实现的目的。
由表3的结果可知,与现有技术给出的SM4算法线性层硬件电路相比,本发明给出的SM4算法线性层硬件电路中异或门数量最优。以上所述为本发明最佳实施方式的举例,其中未详细述及的部分均为本领域普通技术人员的公知常识。本发明的保护范围以权利要求的内容为准,任何基于本发明的技术启示而进行的等效变换,也在本发明的保护范围之内。

Claims (1)

1.优化的SM4算法线性层电路,其特征在于,包括第一模块、第二模块、第三模块、第四模块、第五模块和第六模块,设线性层电路总输入信号为{x0,x1,…,x31},输出信号为{y0,y1,…,y31},寄存器记为ti,则所述第一模块的输入信号为:
x0,x1,x2,x3,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,输出信号为:
t32,t33,t34,t35,t36,t37,t38,t40,t41,t42,t43,t44,t45,t47,t48,t50,t54,t57,t58,t60,t66,具体包括21个异或门电路,分别为:t32=x30⊕x14,t33=x14⊕x22,t34=x29⊕x13,t35=x25⊕x17,t36=x23⊕x7,t37=x26⊕x18,t38=x17⊕x9,t40=x24⊕x8,t41=x8⊕x0,t42=x9⊕x1,t43=x20⊕x28,t44=x28⊕x12,t45=x7⊕x31,t47=x18⊕x10,t48=x19⊕x27,t50=x10⊕x2,t54=x5⊕x3,t57=x27⊕x11,t58=x13⊕x21,t60=x6⊕x12,t66=x31⊕x15
所述第二模块的输入信号为:
x0,x1,x2,x4,x5,x6,x11,x12,x15,x16,t32,t33,t34,t35,t36,t37,t38,t40,t41,t43,t44,t45,t47,t48,t54,t57,t58,t60,输出信号为:
t39,t46,t49,t51,t52,t53,t55,t59,t61,t62,t63,t67,t69,t70,t71,t72,t73,t74,t75,t77,t92,具体包括21个异或门电路,分别为:
t39=x16⊕t33,t46=x1⊕t45,t49=t45⊕t34,t51=x2⊕t41,t52=t41⊕t32,t53=t34⊕x5,t55=t32⊕x6,t59=t54⊕x11,t61=x0⊕t33,t62=x12⊕t43,t63=t33⊕t44,t67=x11⊕t48,t69=t43⊕t47,t70=x15⊕t58,t71=t48⊕t38,t72=t58⊕t57,t73=t44⊕t37,t74=t57⊕t35,t75=t38⊕t36,t77=t60⊕x4,t92=t47⊕t40,所述第三模块的输入信号为:
x3,x4,x21,x22,t35,t36,t37,t39,t40,t42,t43,t46,t48,t49,t50,t51,t52,t53,t55,t59,t61,t62,t63,t67,t69,t70,t71,t72,t73,t74,t75,t77,t92,输出信号为:
t56,t64,y28,y27,y25,y18,y17,t80,t81,t82,y9,y29,t85,y26,t87,y10,y22,y4,y30,y31,y3,y0,具体包括22个异或门电路,分别为:
t56=x22⊕t55,t64=x21⊕t53,t65=t55⊕t43[y28],t68=t53⊕t48[y27],t76=t74⊕x3[y25],t78=t69⊕x4[y18],t79=x3⊕t71[y17],t80=t71⊕t42,t81=t36⊕t70,t82=t37⊕t51,t83=t67⊕t42[y9],t84=t70⊕t49[y29],t85=t35⊕t46,t86=x4⊕t73[y26],t87=t73⊕t50,t88=t62⊕t50[y10],t91=t61⊕t40[y22],t100=t77⊕t63[y4],t103=t39⊕t52[y30],t104=t46⊕t75[y31],t106=t59⊕t72[y3],t108=t51⊕t92[y0];所述第四模块的输入信号为:
t40,t42,t50,t56,t59,t61,t63,t64,t65,t66,t68,t72,t76,t77,t78,t80,t81,t82,t85,t87;输出信号为y8,t90,y7,t94,y15,y21,y5,y11,y12,y20,y19,y1,y2;具体包括13个异或门电路,分别为:
t89=t50⊕t82[y8],t90=t82⊕t61,t93=t42⊕t85[y7],t94=t40⊕t56,t95=t85⊕t66[y15],t96=t66⊕t81[y21],t97=t81⊕t64[y5],t98=t64⊕t59[y11],t99=t56⊕t77[y12],t105=t63⊕t65[y20],t107=t72⊕t68[y19],t109=t80⊕t76[y1],t112=t87⊕t78[y2];
所述第五模块的输入信号为t39,t49,t75,t90,t94,t95,t97,输出信号为y16,y6,y23,y13,具体包括4个异或门电路,分别为:
t101=t90⊕t39[y16],t102=t94⊕t39[y6],t110=t75⊕t95[y23],t114=t49⊕t97[y13];
所述第六模块的输入信号为t52,t92,t101,t102,输出信号为y14,y24,包含两个异或门电路,输出信号为:t111=t52⊕t102[y14],t113=t92⊕t101[y24]。
CN202011406329.XA 2020-12-03 2020-12-03 优化的sm4算法线性层电路 Active CN112507644B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011406329.XA CN112507644B (zh) 2020-12-03 2020-12-03 优化的sm4算法线性层电路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011406329.XA CN112507644B (zh) 2020-12-03 2020-12-03 优化的sm4算法线性层电路

Publications (2)

Publication Number Publication Date
CN112507644A CN112507644A (zh) 2021-03-16
CN112507644B true CN112507644B (zh) 2021-05-14

Family

ID=74969998

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011406329.XA Active CN112507644B (zh) 2020-12-03 2020-12-03 优化的sm4算法线性层电路

Country Status (1)

Country Link
CN (1) CN112507644B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113255923B (zh) * 2021-05-31 2021-09-14 湖北大学 Sm4算法的量子实现电路
CN114422111B (zh) * 2022-03-30 2022-06-17 湖北大学 一种轻量级的sm4算法的硬件实现电路
CN115276955B (zh) * 2022-06-27 2023-03-31 湖北大学 一种优化的clefia算法线性层实现电路
CN117134886B (zh) * 2023-08-21 2024-01-30 湖北大学 一种优化的fox算法线性层电路

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106712930A (zh) * 2017-01-24 2017-05-24 北京炼石网络技术有限公司 一种sm4加密方法及装置
CN106998249A (zh) * 2017-05-08 2017-08-01 芜湖职业技术学院 应用于SM4与Camellia密码算法的可重构S盒电路结构
CN110058842A (zh) * 2019-03-14 2019-07-26 西安电子科技大学 一种结构可变的伪随机数生成方法及装置
CN110166223A (zh) * 2019-05-22 2019-08-23 北京航空航天大学 一种国密sm4的快速软件实现方法
CN110197076A (zh) * 2019-05-22 2019-09-03 北京航空航天大学 一种sm4加密算法的软件优化实现方法
CN110474761A (zh) * 2019-07-11 2019-11-19 北京电子科技学院 一种16轮sm4-256白盒密码实现方法
CN110995403A (zh) * 2019-10-31 2020-04-10 湖北大学 一种搜索密码算法线性层硬件实现优化的启发式算法
CN111224747A (zh) * 2019-12-19 2020-06-02 湖北大学 可降低修复带宽和磁盘读取开销的编码方法及其修复方法
CN111736902A (zh) * 2020-07-16 2020-10-02 北京炼石网络技术有限公司 基于simd指令的sm4的并行计算方法及装置、可读存储介质
CN111800255A (zh) * 2020-06-08 2020-10-20 北京电子科技学院 一种适用于分组密码白盒化的动态白盒库生成和使用方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102446866B1 (ko) * 2014-08-28 2022-09-23 삼성전자주식회사 부채널 공격을 방지하는 암복호화기 및 이의 구동 방법 그리고 이를 포함하는 제어 장치
US9503256B2 (en) * 2014-12-24 2016-11-22 Intel Corporation SMS4 acceleration hardware

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106712930A (zh) * 2017-01-24 2017-05-24 北京炼石网络技术有限公司 一种sm4加密方法及装置
CN106998249A (zh) * 2017-05-08 2017-08-01 芜湖职业技术学院 应用于SM4与Camellia密码算法的可重构S盒电路结构
CN110058842A (zh) * 2019-03-14 2019-07-26 西安电子科技大学 一种结构可变的伪随机数生成方法及装置
CN110166223A (zh) * 2019-05-22 2019-08-23 北京航空航天大学 一种国密sm4的快速软件实现方法
CN110197076A (zh) * 2019-05-22 2019-09-03 北京航空航天大学 一种sm4加密算法的软件优化实现方法
CN110474761A (zh) * 2019-07-11 2019-11-19 北京电子科技学院 一种16轮sm4-256白盒密码实现方法
CN110995403A (zh) * 2019-10-31 2020-04-10 湖北大学 一种搜索密码算法线性层硬件实现优化的启发式算法
CN111224747A (zh) * 2019-12-19 2020-06-02 湖北大学 可降低修复带宽和磁盘读取开销的编码方法及其修复方法
CN111800255A (zh) * 2020-06-08 2020-10-20 北京电子科技学院 一种适用于分组密码白盒化的动态白盒库生成和使用方法
CN111736902A (zh) * 2020-07-16 2020-10-02 北京炼石网络技术有限公司 基于simd指令的sm4的并行计算方法及装置、可读存储介质

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
"Improved Integral Attacks on PRESENT-80";Shi Wang et al.;《Inscrypt 2018》;20190221;163-182页 *
"Optimizing Implementations of Linear Layers";Zejun Xiang et al.;《IACR Transactions on Symmetric Cryptology》;20200724;120-145页 *
"SM4加密算法可裁剪式结构设计与硬件实现";刘金峒 等;《南开大学学报(自然科学版)》;20190831;第52卷(第4期);41-45页 *
"SM4算法CBC模式的高吞吐率ASIC实现";符天枢 等;《微电子学与计算机》;20161031;第33卷(第10期);13-18页 *
"基于复合域的SM4算法的设计与实现";梁浩 等;《微电子学与计算机》;20150531;第32卷(第5期);16-20页 *
"抗旁路攻击的可重构AES/SM4 IP核设计";刘摇平;《中国优秀硕士学位论文全文数据库 信息科技辑》;20180315(第03期);论文第二章-第五章 *

Also Published As

Publication number Publication date
CN112507644A (zh) 2021-03-16

Similar Documents

Publication Publication Date Title
CN112507644B (zh) 优化的sm4算法线性层电路
Ye et al. Chaotic image encryption algorithm using wave-line permutation and block diffusion
Penchalaiah et al. Design and Implementation of Low Power and Area Efficient Architecture for High Performance ALU
Horcík et al. An algebraic approach to valued constraint satisfaction
CN110022202B (zh) 一种搜索s盒的最少硬件实现门数的方法和s盒电路结构
Lu et al. Fast Successive-Cancellation Decoding of Polar Codes with Sequence Nodes
CN115276955B (zh) 一种优化的clefia算法线性层实现电路
Wang et al. A necessary and sufficient condition for a class of nonsingular Galois NFSRs
Wang et al. An efficient construction of polar codes based on the general partial order
CN114925640A (zh) 一种多级mprm逻辑电路功耗优化方法
Wang et al. An optimized encoding algorithm for systematic polar codes
Song et al. Secret sharing with a class of minimal linear codes
CN114911455A (zh) 基于fpga的高速伪随机数生成方法及高速伪随机数生成器
Rathore et al. A systematic map method for realizing minimal logic functions of arbitrary number of variables
CN114282469A (zh) 一种Camellia算法P函数的硬件电路及优化方法
Zeng et al. Word oriented cascade jump σ− LFSR
KhudaBukhsh et al. Functional central limit theorem for susceptible-infected process on configuration model graphs
WO2021046950A1 (zh) 一种基于度序列最佳分组进行图结构修改的网络匿名方法
Zhao Robustness of complex networks with applications to random graphs
CN117134886B (zh) 一种优化的fox算法线性层电路
Jiang et al. Toward Lower Repair Bandwidth and Optimal Repair Complexity of Piggybacking Codes with Small Sub-packetization
KR100578721B1 (ko) XOR 논리를 이용한 n 비트 순환 중복 검사 생성 방법및 이를 이용한 병렬 순환 중복 검사 생성기
Lu et al. Point visibility computing in polygons with holes
Zhang On the tightness of the Buhrman-Cleve-Wigderson simulation
US20230047879A1 (en) Methods and systems for reducing propagation delays in hardware implementation of zuc cryptographic algorithms

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