CN107181586B - 可重构s盒电路结构 - Google Patents
可重构s盒电路结构 Download PDFInfo
- Publication number
- CN107181586B CN107181586B CN201710365122.4A CN201710365122A CN107181586B CN 107181586 B CN107181586 B CN 107181586B CN 201710365122 A CN201710365122 A CN 201710365122A CN 107181586 B CN107181586 B CN 107181586B
- Authority
- CN
- China
- Prior art keywords
- constant
- matrix
- box
- unit
- selector
- 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
- 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
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/122—Hardware reduction or efficient architectures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Complex Calculations (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供的可重构S盒电路结构,包括:合成矩阵乘法单元1、合成矩阵乘法单元2、常数加单元1、常数加单元2、常数加单元3、常数加单元4、常数加单元5、常数加单元6、复合域乘法逆单元、选择器1、选择器2、字节数据输入端口、字节数据输出端口和控制信号输入端口,所述选择器1和所述选择器2均为四选一选择器。本发明提供的可重构S盒电路结构,通过复用复合域乘法逆单元方式,实现AES加密S盒、AES解密S盒、SM4S盒运算和Camellia S盒运算的可重构功能,大大减少了电路面积,同时合成矩阵结构有利于电路优化效率的提高,从而进一步减少电路面积。
Description
技术领域
本发明涉及密码电路技术领域,尤其涉及一种可重构S盒电路结构。
背景技术
1.AES密码算法、SM4密码算法和Camellia密码算法
AES(Advanced Encryption Standard,高级加密标准)是由美国国家标准与技术研究院2001年制定的新一代分组对称密码算法,用于取代原来的DES(Data EncryptionStandard,数据加密标准)。AES密码算法的数据分组长度为128比特,密钥长度有128,192和256比特三种。AES密码算法被多个国际标准组织所采用,是目前使用最广泛的分组密码算法。
SM4加密算法是由我国国家商用密码管理办公室于2006年1月公布的第一个商用分组密码算法,其分组长度和密钥长度均为128比特。Camellia算法是由日本电报电话公司和三菱公司于2000年共同设计,Camellia算法的数据分组长度也是128比特,密钥长度为128比特、192比特和256比特三种。
Camellia已被许多组织选为标准算法,包括欧洲的NESSIE标准、日本的CRYPTREC标准、以及国际标准化组织与国际电工委员会制定的ISO/IEC 18033-3标准。
分组密码标准的多样性为密码系统实现带来巨大挑战,为了满足不同地区和不同行业的应用需求,往往需要将不同的算法集成到一个硬件平台中。
2.AES S盒运算、SM4 S盒运算和Camellia S盒运算
在AES密码算法、SM4密码算法和Camellia密码算法中,字节替换运算(通常称为S盒运算)是唯一的非线性运算,运算复杂度最高。因此在AES密码算法、SM4密码算法电路和Camellia密码算法电路,S盒运算电路是最主要的运算部件,在这三个密码算法电路中分别占据了大部分逻辑资源。
2.1AES S盒运算
在AES密码算法中,加密过程和解密过程采用不同的S盒运算,在加密S盒运算中,输入字节首先进行一个有限域GF(28)域上乘法逆运算,然后进行一个仿射运算,其表达式为:
其中x为输入字节,()A -1为有限域GF(28)域上的乘法逆运算,MA为8×8bit常数矩阵,cA为8bit常数向量,MA和cA用于完成加密S盒中的仿射运算。AES密码算法中所指定的GF(28)域的不可约多项式为f(x)=x8+x4+x3+x+1
常数矩阵MA和常数向量cA分别为:
解密S盒运算是加密S盒运算的逆运算,其表达式为:
其中M'A为MA矩阵的逆矩阵,M'A和cA用于完成解密S盒中的仿射运算,其它运算与公式(1)运算相同。
2.2SM4 S盒运算
在SM4密码算法中,加密过程和解密过程采用同一个S盒运算。SM4S盒首先对输入字节进行一个仿射运算,然后再进行一个GF(28)域乘法逆运算,最后再次进行仿射运算,其表示式为
其中()S -1为SM4密码算法指定的GF(28)域上的乘法逆运算,MS为8×8bit常数矩阵,cS为8bit常数向量,MS和cS用于完成仿射运算。SM4密码算法中所指定的GF(28)域的不可约多项式为
f(x)=x8+x7+x6+x5+x4+x2+1
常数矩阵MS和常数向量cS分别为:
2.3Camellia S盒运算
Camellia密码算法加密过程采用了4个不同的S盒运算,分别为:
其中x为输入字节,()C -1为有限域GF((24)2)上的乘法逆运算,MCf和MCh为8×8bit常数矩阵,cCf和cCh为8bit常数向量,MCf和cCf用于完成仿射运算f,MCh和cCh用于完成仿射运算h,<<<1为循环左移一位运算,>>>1为循环右移一位运算。
由公式(4)可知,S盒SC1的输出循环左移一位构成了S盒SC2,S盒SC1的输出循环右移一位构成了S盒SC3,S盒SC1的输入循环左移一位构成了S盒SC4。由于在硬件电路实现中,循环左移和循环右移不需要任何电路逻辑,只需要将总线顺序进行调换,因此,在硬件实现时,只需要实现SC1电路即可。S盒SC1首先对输入字节进行一个仿射运算(仿射运算f),然后再进行一个GF((24)2)域乘法逆运算,最后再进行一个仿射运算(仿射运算h)。Camellia密码算法中所指定的GF((24)2)域的不可约多项式为
其中ω={1001}2,常数矩阵MCf和常数矩阵MCh分别为:
常数向量cCf和常数向量cCh分别为:
Camellia密码算法的解密运算采用与加密运算相同的4个S盒运算。3.AES S盒运算、SM4 S盒运算和Camellia S盒运算的同构映射3.1AES加密S盒的复合域映射
基于复合域的AES加密S盒运算表达式为:
其中()M -1为目标复合域上的乘法逆运算,所述的目标复合域为任意与GF(28)域同构的复合域,DA为8×8bit映射矩阵,其作用是将输入字节x从GF(28)域映射到目标复合域上,D'A为DA逆矩阵,其作用是将运算结果从目标复合域映射回到AES密码算法所指定的GF(28)域。在公式(5)中,MA和D'A都为8×8bit矩阵,因此可以合并成一个8×8bit矩阵,合并之后的AES加密S盒运算表达式为:
其中常数矩阵QA为MA和D'A合并矩阵,即QA=MA×D'A,常数矩阵QA也为8×8bit常数矩阵。
3.2AES解密S盒的复合域映射
基于复合域的SM4 S盒运算表达式为:
上式中的相关运算与公式(5)相同。同样,映射矩阵DA和常数矩阵M'A可以合并成一个矩阵,合并之后的AES解密S盒运算表达式为:
其中常数矩阵Q'A=DA×M'A,常数向量dA=Q'A×cA。
3.3SM4 S盒的复合域映射
基于复合域的SM4 S盒运算表达式为:
其中()M -1为目标复合域上的乘法逆运算,所述的目标复合域为任意与GF(28)域同构的复合域,DS为8×8bit映射矩阵,其作用是将输入字节x从SM4指定的GF(28)域映射到目标复合域上,D'A为DA逆矩阵,其作用是将运算结果从目标复合域映射回到SM4指定的GF(28)域。在公式(9)中,MS和D'S都为8×8bit矩阵,因此可以合并成一个8×8bit矩阵。同样,DS和MS也可以合并成一个8×8bit矩阵,合并之后的SM4 S盒运算表达式为:
其中常数矩阵QS=MS×D'S,常数矩阵RS=DS×MS,常数向量dS=DS×cS。
3.4Camellia S盒的同构映射
为了与SM4 S盒复用有限域乘法逆运算单元,Camellia S盒的有限域乘法逆()C -1也需要映射到目标复合域上。映射之后的Camellia S盒运算表达式为:
其中()M -1为目标复合域上的乘法逆运算,DC为映射矩阵,D'C为逆映射矩阵。同样,将公式(11)中的相关矩阵进行合并,合并之后的Camellia S盒运算表达式为:
其中常数矩阵QCh=MCh×D'C,常数矩阵QCf=DC×MCf,常数向量dCf=DC×cCf。
由于现有技术中,在一个电子装置中同时集成AES密码算法、SM4密码算法与Camellia密码算法,AES加密S盒运算、AES解密S盒运算、SM4 S盒运算和Camellia S盒运算分别是通过不同的电路实现,造成整体的密码算法的电路面积较大,从而使得应用该加密方法的硬件体积较大,不符合人们对于电子装置轻、薄、短、小的要求。
发明内容
本发明提供了一种可重构S盒电路结构,用以在同一个电子装置中同时集成AES密码算法、SM4密码算法与Camellia密码算法时,减少总的电路面积。
为了解决上述问题,本发明提供了一种可重构S盒电路结构,包括:合成矩阵乘法单元1、合成矩阵乘法单元2、常数加单元1、常数加单元2、常数加单元3、常数加单元4、常数加单元5、常数加单元6、复合域乘法逆单元、选择器1、选择器2、字节数据输入端口、字节数据输出端口和控制信号输入端口,所述选择器1和所述选择器2均为四选一选择器;所述合成矩阵乘法单元1的输入端口与字节数据输入端口相连接;合成矩阵乘法单元1的输出端PA、输出端PV、输出端PS、输出端PC分别与选择器1的输入端、常数加单元1的输入端、常数加单元2的输入端、常数加单元3的输入端一一对应连接;所述常数加单元1的输出端、常数加单元2的输出端、常数加单元3的输出端均与选择器1的输入端相连接;所述选择器1的输出端与所述复合域乘法逆单元的输入端相连接;所述复合域乘法逆单元的输出端与合成矩阵乘法单元2的输入端相连接;所述合成矩阵乘法单元2的输出端PA、输出端PV、输出端PS、输出端PC分别与常数加单元4的输入端、选择器2的输入端、常数加单元5的输入端、常数加单元6的输入端一一对应连接;所述常数加单元4的输出端、常数加单元5的输出端、常数加单元6的输出端均与选择器2的输入端相连接;所述选择器2的输出端与字节数据输出端口相连接;所述选择器1和选择器2的选择端均与控制信号输入端口相连接;所述可重构S盒电路结构有四个工作模式:AES加密S盒工作模式、AES解密S盒工作模式、SM4 S盒工作模式和Camellia S盒工作模式;在选择信号的控制下,选择器1和选择器2分别选择不同的信号通道,从而实现可重构S盒不同的工作模式:在AES加密S盒工作模式下,选择器1输出合成矩阵乘法单元1的输出端PA上的运算结果,选择器2输出常数加单元4的运算结果;在AES解密S盒工作模式下,选择器1输出常数加单元1的运算结果,选择器2输出合成矩阵乘法单元2的输出端PV上的运算结果;在SM4 S盒工作模式下,选择器1输出常数加单元2的运算结果,选择器2输出常数加单元5的运算结果;在Camellia S盒工作模式下,选择器1输出常数加单元3的运算结果,选择器2输出常数加单元6的运算结果;所述的选择信号由控制信号输入端口输入。
优选的,所述的合成矩阵乘法单元1实现合成矩阵乘法运算Φ×;所述的合成矩阵Φ由AES加密S盒中的常数矩阵DA、AES解密S盒中的常数矩阵Q'A、SM4 S盒中的常数矩阵RS和Camellia S盒中的常数矩阵QCf组合而成;合成矩阵乘法单元1的输出端PA、输出端PV、输出端PS、输出端PC一一对应输出常数矩阵乘法DA×的运算结果、常数矩阵乘法Q'A×的运算结果、常数矩阵乘法RS×的运算结果、常数矩阵乘法QCf×的运算结果;所述的合成矩阵乘法单元2实现合成矩阵乘法运算Ψ×;所述的合成矩阵Ψ由AES加密S盒中的常数矩阵QA、AES解密S盒中的常数矩阵D'A、SM4 S盒中的常数矩阵QS和Camellia S盒中的常数矩阵QCh组合而成;合成矩阵乘法单元2的输出端PA、输出端PV、输出端PS、输出端PC一一对应输出常数矩阵乘法QA×的运算结果、常数矩阵乘法D'A×的运算结果、常数矩阵乘法QS×的运算结果、常数矩阵乘法QCh×的运算结果;所述的常数加单元1实现AES解密S盒中的加常数dA运算;所述的常数加单元2实现SM4 S盒中的加常数dS运算;所述的常数加单元3实现Camellia S盒中的加常数dCf运算;所述的常数加单元4实现AES加密S盒中的加常数cA运算;所述的常数加单元5实现SM4 S盒中的加常数cS运算;所述的常数加单元6实现Camellia S盒中的加常数cCh运算;所述的复合域乘法逆单元实现输入字节在复合域上乘法逆运算。
优选的,所述的常数dA为常数矩阵Q'A与常数cA的乘积;所述的常数dS为常数矩阵DS与常数cS的乘积;所述的常数dCf为常数矩阵DC与常数cCf的乘积;所述的常数cA为AES密码算法中指定的仿射运算中的常数向量;所述的常数cS为SM4密码算法中指定的仿射运算中的常数向量;所述的常数cCf为Camellia密码算法中指定的仿射运算f中的常数向量;所述的常数cCh为Camellia密码算法中指定的仿射运算h中的常数向量;所述的常数矩阵QA为常数矩阵MA与常数矩阵D'A的乘积;所述的常数矩阵QS为常数矩阵MS与常数矩阵D'S的乘积;所述的常数矩阵QCh为常数矩阵MCh与常数矩阵D'C的乘积;所述的常数矩阵Q'A为常数矩阵DA与常数矩阵M'A的乘积;所述的常数矩阵RS为常数矩阵DS与常数矩阵MS的乘积;所述的常数矩阵QCf为常数矩阵DC与常数矩阵MCf的乘积;所述的常数矩阵DA为映射矩阵,其作用是将AES密码算法中指定的GF(28)域上的元素映射到目标复合域上;所述的常数矩阵D'A为映射矩阵,其作用是将目标复合域上的元素映射到AES密码算法中指定的GF(28)域上;所述的常数矩阵DS为映射矩阵,其作用是将SM4密码算法中指定的GF(28)域上的元素映射到目标复合域上;所述的常数矩阵D'S为映射矩阵,其作用是将目标复合域上的元素映射到SM4密码算法中指定的GF(28)域上;所述的常数矩阵DC为映射矩阵,其作用是将Camellia密码算法中指定的GF((24)2)域上的元素映射到目标复合域上;所述的常数矩阵D'C为映射矩阵,其作用是将目标复合域上的元素映射到Camellia密码算法中指定的GF((24)2)域上;所述的常数矩阵MA为AES密码算法中指定的加密流程仿射运算中的常数矩阵;所述的常数矩阵M'A为AES密码算法中指定的解密流程仿射运算中的常数矩阵;所述的常数矩阵MS为SM4密码算法中指定的仿射运算中的常数矩阵;所述的常数矩阵MCf为Camellia密码算法中指定的仿射运算f中的常数矩阵;所述的常数矩阵MCh为Camellia密码算法中指定的仿射运算h中的常数矩阵;所述的复合域为任意与GF(28)域同构的复合域。本发明提供的可重构S盒电路结构,基于复合域实现有限域乘法逆,并通过复用有限域乘法逆单元方式,实现AES加密S盒运算、AES解密S盒运算、SM4 S盒运算和Camellia S盒运算的可重构功能,因此,在同一个电子装置中同时集成AES密码算法、SM4密码算法与Camellia密码算法时,可以大大减少了电路面积,同时可重构S盒中的合成矩阵结构有利于电路优化效率的提高,从而进一步减少电路面积。
附图说明
图1为本发明具体实施方式的可重构S盒电路结构示意图;
图2为本发明具体实施方式可重构S盒在AES加密S盒工作模式下的示意图;
图3为本发明具体实施方式可重构S盒在AES解密S盒工作模式下的示意图;
图4为本发明具体实施方式可重构S盒在SM4 S盒工作模式下的示意图;
图5为本发明具体实施方式可重构S盒在Camellia S盒工作模式下的示意图。
具体实施方式
下面结合附图对本发明提供的可重构S盒电路结构的具体实施方式做详细说明。
本具体实施方式提供了一种可重构S盒电路结构,图1为本发明具体实施方式的可重构S盒电路结构示意图。
如图1所示,本具体实施方式提供的可重构S盒电路结构,包括:合成矩阵乘法单元1、合成矩阵乘法单元2、常数加单元1、常数加单元2、常数加单元3、常数加单元4、常数加单元5、常数加单元6、复合域乘法逆单元、选择器1、选择器2、字节数据输入端口、字节数据输出端口和控制信号输入端口,所述选择器1和所述选择器2均为四选一选择器。
所述合成矩阵乘法单元1的输入端口与字节数据输入端口相连接;合成矩阵乘法单元1的输出端PA、输出端PV、输出端PS、输出端PC分别与选择器1的输入端、常数加单元1的输入端、常数加单元2的输入端、常数加单元3的输入端一一对应连接;所述常数加单元1的输出端、常数加单元2的输出端、常数加单元3的输出端均与选择器1的输入端相连接;所述选择器1的输出端与所述复合域乘法逆单元的输入端相连接;所述复合域乘法逆单元的输出端与合成矩阵乘法单元2的输入端相连接;所述合成矩阵乘法单元2的输出端PA、输出端PV、输出端PS、输出端PC分别与常数加单元4的输入端、选择器2的输入端、常数加单元5的输入端、常数加单元6的输入端一一对应连接;所述常数加单元4的输出端、常数加单元5的输出端、常数加单元6的输出端均与选择器2的输入端相连接;所述选择器2的输出端与字节数据输出端口相连接;所述选择器1和选择器2的选择端均与控制信号输入端口相连接。
所述的合成矩阵乘法单元1实现合成矩阵乘法运算Φ×;所述的合成矩阵Φ由AES加密S盒中的常数矩阵DA、AES解密S盒中的常数矩阵Q'A、SM4 S盒中的常数矩阵RS和Camellia S盒中的常数矩阵QCf组合而成,即
合成矩阵乘法单元1的输出端PA、输出端PV、输出端PS、输出端PC一一对应输出常数矩阵乘法DA×的运算结果、常数矩阵乘法Q'A×的运算结果、常数矩阵乘法RS×的运算结果、常数矩阵乘法QCf×的运算结果。
所述的合成矩阵乘法单元2实现合成矩阵乘法运算Ψ×;所述的合成矩阵Ψ由AES加密S盒中的常数矩阵QA、AES解密S盒中的常数矩阵D'A、SM4 S盒中的常数矩阵QS和Camellia S盒中的常数矩阵QCh组合而成,即
合成矩阵乘法单元2的输出端PA、输出端PV、输出端PS、输出端PC一一对应输出常数矩阵乘法QA×的运算结果、常数矩阵乘法D'A×的运算结果、常数矩阵乘法QS×的运算结果、常数矩阵乘法QCh×的运算结果。
所述的常数加单元1实现AES解密S盒中的加常数dA运算;所述的常数加单元2实现SM4 S盒中的加常数dS运算;所述的常数加单元3实现Camellia S盒中的加常数dCf运算;所述的常数加单元4实现AES加密S盒中的加常数cA运算;所述的常数加单元5实现SM4S盒中的加常数cS运算;所述的常数加单元6实现Camellia S盒中的加常数cCh运算;所述的复合域乘法逆单元实现输入字节在复合域上乘法逆运算。
本具体实施方式所述可重构S盒电路结构有四个工作模式:AES加密S盒工作模式、AES解密S盒工作模式、SM4 S盒工作模式和Camellia S盒工作模式;在选择信号的控制下,选择器1和选择器2分别选择不同的信号通道,从而实现可重构S盒不同的工作模式。AES S盒运算、SM4 S盒运算和Camellia S盒运算都是由有限域乘法逆运算和仿射运算构成,但是AES S盒运算、SM4 S盒运算和Camellia S盒运算是定义在不同的有限域上。通过同构映射可以将AES S盒的GF(28)域、SM4 S盒的GF(28)域和Camellia S盒的GF((24)2)域映射到同一个有限域中。因此,当AES密码算法、SM4密码算法和Camellia密码算法在同一硬件平台实现时,本具体实施方式通过运算单元复用方式对有限域乘法逆进行复用,大大降低实现密码算法的总电路面积。由于基于复合域GF((24)2)域或基于复合域GF(((22)2)2)域的有限域乘法逆电路的硬件复杂度要远远小于基于GF(28)域的有限域乘法逆电路,因此本具体实施方式进一步将AES S盒中的有限域乘法逆运算、SM4 S盒中的有限域乘法逆运算和Camellia S盒中的有限域乘法逆运算映射到同一个复合域中实现,并通过复用有限域乘法逆的方式,降低密码算法实现的电路面积。
AES加密S盒工作模式
图2为本发明具体实施方式可重构S盒在AES加密S盒工作模式下的示意图。如图2所示,在AES加密S盒工作模式下,可重构S盒输入一个字节向量x,输入的字节向量x首先进入合成矩阵乘法单元1进行合成矩阵乘法运算,即
运算结果DA×x从合成矩阵乘法单元1的输出端PA输出,运算结果Q'A×x从合成矩阵乘法单元1的输出端PV输出,运算结果RS×x从合成矩阵乘法单元1的输出端PS输出,运算结果QCf×x从合成矩阵乘法单元1的输出端PC输出。
选择器1在选择信号控制下选择合成矩阵乘法单元1的输出端PA上的运算结果DA×x输出到复合域乘法逆单元,经过复合域乘法逆单元后输出运算结果运算结果进一步输入到合成矩阵乘法单元2中进行合成矩阵乘法运算,即
运算结果从合成矩阵乘法单元2的输出端PA输出,运算结果从合成矩阵乘法单元2的输出端PV输出,运算结果/>从合成矩阵乘法单元2的输出端PS输出,运算结果/>从合成矩阵乘法单元2的输出端PC输出。其中合成矩阵乘法单元2的输出端PA上的运算结果/>进一步进入常数加单元4中进行加常数cA运算,运算结果为/>选择器2在选择信号控制下将合成矩阵乘法单元2的输出端PA上的运算结果/>从字节数据输出端口输出。对比公式(6)可知,该运算结果即为AES加密S盒运算结果SA(x)。选择器1和选择器2的选择信号从控制信号输入端口输入。
AES解密S盒工作模式
图3为本发明具体实施方式可重构S盒在AES解密S盒工作模式下的示意图。如图3所示,在AES解密S盒工作模式下,可重构S盒输入一个字节向量x,输入的字节向量x首先进入合成矩阵乘法单元1进行合成矩阵乘法运算,即
运算结果DA×x从合成矩阵乘法单元1的输出端口PA输出,运算结果Q'A×x从合成矩阵乘法单元1的输出端PV输出,运算结果RS×x从合成矩阵乘法单元1的输出端PS输出,运算结果QCf×x从合成矩阵乘法单元1的输出端口PC输出。其中合成矩阵乘法单元1的输出端PV上的运算结果Q'A×x进一步输入到常数加单元1中进行加常数dA运算,运算结果为Q'A×x+dA。
选择器1在选择信号控制下选择常数加单元1的运算结果Q'A×x+dA输出到复合域乘法逆单元,经过复合域乘法逆单元后输出运算结果运算结果进一步输入到合成矩阵乘法单元2中进行合成矩阵乘法运算,即
运算结果从合成矩阵乘法单元2的输出端PA输出,运算结果从合成矩阵乘法单元2的输出端口PV输出,运算结果从合成矩阵乘法单元2的输出端口PS输出,运算结果从合成矩阵乘法单元2的输出端口PC输出。
选择器2在选择信号控制下将合成矩阵乘法单元2的输出端PV上输出的运算结果从字节数据输出端口输出。对比公式(8)可知,该运算结果即为AES解密S盒运算结果S'A(x)。选择器1和选择器2的选择信号从控制信号输入端口输入。
SM4 S盒工作模式
图4为本发明具体实施方式可重构S盒在SM4 S盒工作模式下的示意图。如图4所示,在SM4 S盒工作模式下,可重构S盒输入一个字节向量x,输入的字节向量x首先进入合成矩阵乘法单元1进行合成矩阵乘法运算,即
/>
运算结果DA×x从合成矩阵乘法单元1的输出端PA输出,运算结果Q'A×x从合成矩阵乘法单元1的输出端PV输出,运算结果RS×x从合成矩阵乘法单元1的输出端PS输出,运算结果QCf×x从合成矩阵乘法单元1的输出端PC输出。其中,合成矩阵乘法单元1的输出端PS上输出的运算结果RS×x进一步输入到常数加单元2中进行加常数dS运算,运算结果为RS×x+dS。
选择器1在选择信号控制下选择常数加单元2的运算结果RS×x+dS输出到复合域乘法逆单元,经过复合域乘法逆单元后输出运算结果运算结果进一步输入到合成矩阵乘法单元2中进行合成矩阵乘法运算,即
运算结果从合成矩阵乘法单元2的输出端PA输出,运算结果从合成矩阵乘法单元2的输出端PV输出,运算结果从合成矩阵乘法单元2的输出端口PS输出,运算结果从合成矩阵乘法单元2的输出端口PC输出。其中,合成矩阵乘法单元2的输出端PS上的运算结果/>进一步进入常数加单元5中进行加常数cS运算,运算结果为/>选择器2在选择信号控制下将合成矩阵乘法单元2的输出端PS上输出的运算结果/>从字节数据输出端口输出。对比公式(10)可知,该运算结果即为SM4 S盒运算结果SS(x)。选择器1和选择器2的选择信号从控制信号输入端口输入。
Camellia S盒工作模式
图5为本发明具体实施方式可重构S盒在Camellia S盒工作模式下的示意图。如图5所示,在Camellia S盒工作模式下,可重构S盒输入一个字节向量x,输入的字节向量x首先进入合成矩阵乘法单元1进行合成矩阵乘法运算,即
运算结果DA×x从合成矩阵乘法单元1的输出端PA输出,运算结果Q'A×x从合成矩阵乘法单元1的输出端PV输出,运算结果RS×x从合成矩阵乘法单元1的输出端PS输出,运算结果QCf×x从合成矩阵乘法单元1的输出端PC输出。其中,合成矩阵乘法单元1的输出端PC上输出的运算结果QCf×x进一步输入到常数加单元3中进行加常数dCf运算,运算结果为QCf×x+dCf。
选择器1在选择信号控制下选择常数加单元2的运算结果QCf×x+dCf输出到复合域乘法逆单元,经过复合域乘法逆单元后输出运算结果运算结果进一步输入到合成矩阵乘法单元2中进行合成矩阵乘法运算,即
运算结果从合成矩阵乘法单元2的输出端PA输出,运算结果/>从合成矩阵乘法单元2的输出端PV输出,运算结果从合成矩阵乘法单元2的输出端PS输出,运算结果从合成矩阵乘法单元2的输出端PC输出。其中,合成矩阵乘法单元2的输出端PC上输出的运算结果/>进一步进入常数加单元6中进行加常数cCh运算,运算结果为/>
选择器2在选择信号控制下将合成矩阵乘法单元2的输出端PS上输出的运算结果从字节数据输出端口输出。对比公式(12)可知,该运算结果即为Camellia S盒运算结果SC1(x)。选择器1和选择器2的选择信号从控制信号输入端口输入。本具体实施方式提供的可重构S盒电路结构,基于复合域实现有限域乘法逆,并通过复用有限域乘法逆单元方式,实现AES加密S盒运算、AES解密S盒运算、SM4 S盒运算和Camellia S盒运算的可重构功能,因此,在同一个电子装置中同时集成AES密码算法、SM4密码算法与Camellia密码算法时,可以大大减少了电路面积,同时可重构S盒中的合成矩阵结构有利于电路优化效率的提高,从而进一步减少电路面积。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (2)
1.一种可重构S盒电路结构,其特征在于,包括:合成矩阵乘法单元1、合成矩阵乘法单元2、常数加单元1、常数加单元2、常数加单元3、常数加单元4、常数加单元5、常数加单元6、复合域乘法逆单元、选择器1、选择器2、字节数据输入端口、字节数据输出端口和控制信号输入端口,所述选择器1和所述选择器2均为四选一选择器;
所述合成矩阵乘法单元1的输入端口与字节数据输入端口相连接;合成矩阵乘法单元1的输出端PA、输出端PV、输出端PS、输出端PC分别与选择器1的输入端、常数加单元1的输入端、常数加单元2的输入端、常数加单元3的输入端一一对应连接;所述常数加单元1的输出端、常数加单元2的输出端、常数加单元3的输出端均与选择器1的输入端相连接;所述选择器1的输出端与所述复合域乘法逆单元的输入端相连接;所述复合域乘法逆单元的输出端与合成矩阵乘法单元2的输入端相连接;所述合成矩阵乘法单元2的输出端PA、输出端PV、输出端PS、输出端PC分别与常数加单元4的输入端、选择器2的输入端、常数加单元5的输入端、常数加单元6的输入端一一对应连接;所述常数加单元4的输出端、常数加单元5的输出端、常数加单元6的输出端均与选择器2的输入端相连接;所述选择器2的输出端与字节数据输出端口相连接;所述选择器1和选择器2的选择端均与控制信号输入端口相连接;
所述的合成矩阵乘法单元1实现合成矩阵乘法运算Φ×;所述的合成矩阵Φ由AES加密S盒中的常数矩阵DA、AES解密S盒中的常数矩阵Q'A、SM4 S盒中的常数矩阵RS和Camellia S盒中的常数矩阵QCf组合而成;合成矩阵乘法单元1的输出端PA、输出端PV、输出端PS、输出端PC一一对应输出常数矩阵乘法DA×的运算结果、常数矩阵乘法Q'A×的运算结果、常数矩阵乘法RS×的运算结果、常数矩阵乘法QCf×的运算结果;
所述的合成矩阵乘法单元2实现合成矩阵乘法运算Ψ×;所述的合成矩阵Ψ由AES加密S盒中的常数矩阵QA、AES解密S盒中的常数矩阵D'A、SM4 S盒中的常数矩阵QS和Camellia S盒中的常数矩阵QCh组合而成;合成矩阵乘法单元2的输出端PA、输出端PV、输出端PS、输出端PC一一对应输出常数矩阵乘法QA×的运算结果、常数矩阵乘法D'A×的运算结果、常数矩阵乘法QS×的运算结果、常数矩阵乘法QCh×的运算结果;
所述的常数加单元1实现AES解密S盒中的加常数dA运算;所述的常数加单元2实现SM4 S盒中的加常数dS运算;所述的常数加单元3实现Camellia S盒中的加常数dCf运算;所述的常数加单元4实现AES加密S盒中的加常数cA运算;所述的常数加单元5实现SM4 S盒中的加常数cS运算;所述的常数加单元6实现Camellia S盒中的加常数cCh运算;所述的复合域乘法逆单元实现输入字节在复合域上乘法逆运算。
所述可重构S盒电路结构有四个工作模式:AES加密S盒工作模式、AES解密S盒工作模式、SM4 S盒工作模式和Camellia S盒工作模式;在选择信号的控制下,选择器1和选择器2分别选择不同的信号通道,从而实现可重构S盒不同的工作模式:在AES加密S盒工作模式下,选择器1输出合成矩阵乘法单元1的输出端PA上的运算结果,选择器2输出常数加单元4的运算结果;在AES解密S盒工作模式下,选择器1输出常数加单元1的运算结果,选择器2输出合成矩阵乘法单元2的输出端PV上的运算结果;在SM4 S盒工作模式下,选择器1输出常数加单元2的运算结果,选择器2输出常数加单元5的运算结果;在Camellia S盒工作模式下,选择器1输出常数加单元3的运算结果,选择器2输出常数加单元6的运算结果;所述的选择信号由控制信号输入端口输入;
所述可重构S盒电路结构将AES S盒、SM4S盒和Camellia S盒中的有限域乘法逆映射到同一个复合域中,当AES密码算法、SM4密码算法和Camellia密码算法在同一硬件平台实现时,可以通过复用复合域乘法逆方式大大降低电路面积。
2.根据权利要求1所述的可重构S盒电路结构,其特征在于,所述的常数dA为常数矩阵Q'A与常数cA的乘积;
所述的常数dS为常数矩阵DS与常数cS的乘积;
所述的常数dCf为常数矩阵DC与常数cCf的乘积;
所述的常数cA为AES密码算法中指定的仿射运算中的常数向量;
所述的常数cS为SM4密码算法中指定的仿射运算中的常数向量;
所述的常数cCf为Camellia密码算法中指定的仿射运算f中的常数向量;
所述的常数cCh为Camellia密码算法中指定的仿射运算h中的常数向量;
所述的常数矩阵QA为常数矩阵MA与常数矩阵D'A的乘积;
所述的常数矩阵QS为常数矩阵MS与常数矩阵D'S的乘积;
所述的常数矩阵QCh为常数矩阵MCh与常数矩阵D'C的乘积;
所述的常数矩阵Q'A为常数矩阵DA与常数矩阵M'A的乘积;
所述的常数矩阵RS为常数矩阵DS与常数矩阵MS的乘积;
所述的常数矩阵QCf为常数矩阵DC与常数矩阵MCf的乘积;
所述的常数矩阵DA为映射矩阵,其作用是将AES密码算法中指定的GF(28)域上的元素映射到目标复合域上;
所述的常数矩阵D'A为映射矩阵,其作用是将目标复合域上的元素映射到AES密码算法中指定的GF(28)域上;
所述的常数矩阵DS为映射矩阵,其作用是将SM4密码算法中指定的GF(28)域上的元素映射到目标复合域上;
所述的常数矩阵D'S为映射矩阵,其作用是将目标复合域上的元素映射到SM4密码算法中指定的GF(28)域上;
所述的常数矩阵DC为映射矩阵,其作用是将Camellia密码算法中指定的GF((24)2)域上的元素映射到目标复合域上;
所述的常数矩阵D'C为映射矩阵,其作用是将目标复合域上的元素映射到Camellia密码算法中指定的GF((24)2)域上;
所述的常数矩阵MA为AES密码算法中指定的加密流程仿射运算中的常数矩阵;
所述的常数矩阵M'A为AES密码算法中指定的解密流程仿射运算中的常数矩阵;
所述的常数矩阵MS为SM4密码算法中指定的仿射运算中的常数矩阵;
所述的常数矩阵MCf为Camellia密码算法中指定的仿射运算f中的常数矩阵;
所述的常数矩阵MCh为Camellia密码算法中指定的仿射运算h中的常数矩阵;
所述的复合域为任意与GF(28)域同构的复合域。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710365122.4A CN107181586B (zh) | 2017-05-22 | 2017-05-22 | 可重构s盒电路结构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710365122.4A CN107181586B (zh) | 2017-05-22 | 2017-05-22 | 可重构s盒电路结构 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107181586A CN107181586A (zh) | 2017-09-19 |
CN107181586B true CN107181586B (zh) | 2023-09-15 |
Family
ID=59831898
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710365122.4A Active CN107181586B (zh) | 2017-05-22 | 2017-05-22 | 可重构s盒电路结构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107181586B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109033023B (zh) * | 2018-06-11 | 2022-01-04 | 安徽工程大学 | 一种普通轮变换运算单元、普通轮变换电路及aes加密电路 |
CN109033892B (zh) * | 2018-06-11 | 2021-08-31 | 安徽工程大学 | 基于合成矩阵的轮变换复用电路及aes解密电路 |
CN108964876B (zh) * | 2018-06-11 | 2021-02-12 | 安徽工程大学 | 普通轮变换运算单元、普通轮变换电路及aes加密电路 |
CN108809627B (zh) * | 2018-06-11 | 2021-03-05 | 安徽工程大学 | 轮变换复用电路及aes解密电路 |
CN108964875B (zh) * | 2018-06-11 | 2021-03-05 | 安徽工程大学 | 普通轮变换运算单元、普通轮变换电路及aes解密电路 |
CN113507357B (zh) * | 2021-07-08 | 2022-03-11 | 无锡沐创集成电路设计有限公司 | 兼容sm4和aes算法s盒的实现方法和电路模块 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010045843A1 (zh) * | 2008-10-23 | 2010-04-29 | 国民技术股份有限公司 | 抵御差分能量攻击的aes加密方法 |
CN102801519A (zh) * | 2012-07-10 | 2012-11-28 | 记忆科技(深圳)有限公司 | 一种实现aes加解密的方法及装置 |
CN104639314A (zh) * | 2014-12-31 | 2015-05-20 | 深圳先进技术研究院 | 基于aes加密/解密算法的装置和流水控制方法 |
CN106209358A (zh) * | 2016-07-12 | 2016-12-07 | 黑龙江大学 | 一种基于长密钥的sm4密钥扩展算法的实现系统及其方法 |
CN207184503U (zh) * | 2017-05-22 | 2018-04-03 | 芜湖职业技术学院 | 可重构s盒电路结构 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030198345A1 (en) * | 2002-04-15 | 2003-10-23 | Van Buer Darrel J. | Method and apparatus for high speed implementation of data encryption and decryption utilizing, e.g. Rijndael or its subset AES, or other encryption/decryption algorithms having similar key expansion data flow |
-
2017
- 2017-05-22 CN CN201710365122.4A patent/CN107181586B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010045843A1 (zh) * | 2008-10-23 | 2010-04-29 | 国民技术股份有限公司 | 抵御差分能量攻击的aes加密方法 |
CN102801519A (zh) * | 2012-07-10 | 2012-11-28 | 记忆科技(深圳)有限公司 | 一种实现aes加解密的方法及装置 |
CN104639314A (zh) * | 2014-12-31 | 2015-05-20 | 深圳先进技术研究院 | 基于aes加密/解密算法的装置和流水控制方法 |
CN106209358A (zh) * | 2016-07-12 | 2016-12-07 | 黑龙江大学 | 一种基于长密钥的sm4密钥扩展算法的实现系统及其方法 |
CN207184503U (zh) * | 2017-05-22 | 2018-04-03 | 芜湖职业技术学院 | 可重构s盒电路结构 |
Non-Patent Citations (2)
Title |
---|
Hai Cheng,Qun Ding.Overview of Block Cipher.《2012 Second International Conference on Instrumentation & Measurement, Computer, Communication and Control》.2012,全文. * |
曾纯,吴宁,张肖强,周芳,叶云飞.基于多因子CSE算法的AES S-盒电路优化设计.《 电子学报》.2014,第42卷(第42期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN107181586A (zh) | 2017-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106921487B (zh) | 可重构s盒电路结构 | |
CN107181586B (zh) | 可重构s盒电路结构 | |
CN106992852B (zh) | 应用于AES与Camellia密码算法的可重构S盒电路结构 | |
Chen et al. | High performance data encryption with AES implementation on FPGA | |
CN106998249B (zh) | 应用于SM4与Camellia密码算法的可重构S盒电路结构 | |
CN104639314A (zh) | 基于aes加密/解密算法的装置和流水控制方法 | |
CN207184503U (zh) | 可重构s盒电路结构 | |
CN110166223A (zh) | 一种国密sm4的快速软件实现方法 | |
CN109033892B (zh) | 基于合成矩阵的轮变换复用电路及aes解密电路 | |
Proença et al. | Compact CLEFIA implementation on FPGAs | |
Jing et al. | Reconfigurable system for high-speed and diversified AES using FPGA | |
CN109150495B (zh) | 一种轮变换复用电路及其aes解密电路 | |
CN109039583B (zh) | 复用轮变换电路、aes加密电路及加密方法 | |
Arrag et al. | Design and Implementation A different Architectures of mixcolumn in FPGA | |
Gangadari et al. | FPGA implementation of compact S-box for AES algorithm using composite field arithmetic | |
CN207010694U (zh) | 应用于AES与Camellia密码算法的可重构S盒电路结构 | |
CN108809627B (zh) | 轮变换复用电路及aes解密电路 | |
CN109033847B (zh) | Aes加密运算单元、aes加密电路及其加密方法 | |
CN108566271B (zh) | 复用轮变换电路、aes加密电路及其加密方法 | |
CN109033893B (zh) | 基于合成矩阵的aes加密单元、aes加密电路及其加密方法 | |
JP2006510067A (ja) | ラインドールのサブバイトファンクションの小さなハードウェア実現 | |
Bajaj et al. | AES algorithm for encryption | |
Sireesha et al. | A novel approach of area optimized and pipelined FPGA implementation of AES encryption and decryption | |
CN108989018B (zh) | 一种aes加密单元、aes加密电路及加密方法 | |
CN207184502U (zh) | 应用于SM4与Camellia密码算法的可重构S盒电路结构 |
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 |