CN104065473A - Sm4分组密码算法s盒的紧凑实现方法 - Google Patents

Sm4分组密码算法s盒的紧凑实现方法 Download PDF

Info

Publication number
CN104065473A
CN104065473A CN201410290907.6A CN201410290907A CN104065473A CN 104065473 A CN104065473 A CN 104065473A CN 201410290907 A CN201410290907 A CN 201410290907A CN 104065473 A CN104065473 A CN 104065473A
Authority
CN
China
Prior art keywords
box
circleplus
bits
finite field
algorithm
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.)
Pending
Application number
CN201410290907.6A
Other languages
English (en)
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.)
Chengdu University of Information Technology
Chengdu Information Technology Co Ltd of CAS
Original Assignee
Chengdu Information Technology Co Ltd of CAS
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 Chengdu Information Technology Co Ltd of CAS filed Critical Chengdu Information Technology Co Ltd of CAS
Priority to CN201410290907.6A priority Critical patent/CN104065473A/zh
Publication of CN104065473A publication Critical patent/CN104065473A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Mobile Radio Communication Systems (AREA)

Abstract

SM4分组密码算法S盒的紧凑实现方法,涉及加密技术。本发明包括下述步骤:1)将有限域GF(28)中的元素从标准表示转换为用复合域方法表示;2)将用复合域方法表示的有限域元素用复合域方法求其逆元;3)将所求出的逆元从复合域表示转换为有限域GF(28)中的标准表示;4)将步骤3)的结果与一个常量进行异或运算。本发明的有益效果是,实现本发明的方法所需要的电路面积更小,在SMIC0.18um工艺下,用查找表方法实现SM4算法的S盒需要655个与非门,用文献1中的方法实现SM4算法的S盒需要402个与非门,用本发明的方法实现SM4算法的S盒需要278个与非门。根据现有文献记载,本发明是目前所需电路面积最小的实现方法。

Description

SM4分组密码算法S盒的紧凑实现方法
技术领域
本发明涉及加密技术。
技术背景
SM4算法是国家商用密码管理办公室于2006年公布的分组密码算法,是国内官方公布的第一个商用密码算法。
S盒是SM4算法中唯一的非线性运算部件,由于它作用于每一轮的加解密运算,也作用于密钥扩展,因此,S盒的硬件实现对整个SM4算法的硬件实现性能、电路面积、功耗等有一定的影响。
智能卡和RFID标签是资源十分有限的系统。因此,在智能卡和RFID标签上实现SM4算法时,应尽量减少的电路面积。因为,S盒的电路面积对整个SM4算法的电路面积影响比较大,所以,应该尽量较小S盒的电路面积。
到目前为止,只在参考文献1中,白雪飞等提出了一种适合于SM4算法S盒的硬件实现方法,但是该实现方法所选择的参数不是很优,因此需要的电路面积还是比较大。
参考文献1:徐艳华,白雪飞,郭立。适合SMS4算法硬件实现的S盒构造新方法,中国科学技术大学学报,第39卷第11期,2009年11月。
发明内容
本发明解决所述技术问题采用的技术方案是,SM4分组密码算法S盒的紧凑实现方法,其特征在于,包括下述步骤:
1)将有限域GF(28)中的元素从标准表示转换为用复合域方法表示;
2)将用复合域方法表示的有限域元素用复合域方法求其逆元;
3)将所求出的逆元从复合域表示转换为有限域GF(28)中的标准表示;
4)将步骤3)的结果与一个常量进行异或运算。
进一步的,所述步骤1)包括以下子步骤:
1.1)将有限域GF(28)中用标准表示法表示的元素A乘以矩阵M1,其中A是GF(2)上长度为8的向量,M1是GF(2)上8行8列的矩阵;
1.2)将A乘以M1的积再与常量C1进行异或运算,其中C1是长度为8的GF(2)上的向量。
所述步骤2)包括以下子步骤:
2.1)利用布尔函数的性质优化运算(a*b)⊕(a*b)2*N,其中a表示求逆运算的8比特输入的高4比特,b表示求逆运算的8比特输入的低4比特,N是一个4比特的常数向量,⊕表示异或运算,*表示GF(16)的乘法运算,记c=(a*b)⊕(a*b)2*N;
2.2)在GF(16)中计算c的逆元,记该逆元为d;
2.3)在GF(16)中计算b与d的乘积,将此乘积记为p;
2.4)在GF(16)中计算a与d的乘积,将此乘积记为q;
2.5)将p作为高4比特,将q作为低4比特,组合成一个8比特的向量Q,作为求逆运算的结果。
所述步骤3)为:
将求逆输出Q乘以一个GF(2)上的8行8列的矩阵M2。
所述步骤4)为:将步骤3)运算结果与一个GF(2)上的长度为8的向量C2进行异或运算。
本发明的有益效果是,实现本发明的方法所需要的电路面积更小,在SMIC0.18um工艺下,用查找表方法实现SM4算法的S盒需要655个与非门,用文献1中的方法实现SM4算法的S盒需要402个与非门,用本发明的方法实现SM4算法的S盒需要278个与非门。根据现有文献记载,本发明是目前所需电路面积最小的实现方法。
具体实施方式
S盒是SMS4算法中唯一的非线性运算,它一般的实现方法是用查找表的形式,S盒的代换规则如下:以输入的前半字节为行号,后半字节为列号,行列交叉点处的数据即为S盒的输出。假设输入为‘0x01’,则行号为0,列号为1,经过非线性变换S盒后的值为S盒第0行第1列的交叉点的值,即Sbox(0x01)=0x90,如表1所示,表中数据均采用十六进制表示。
表1
采用查找表方法实现SM4算法的S盒在SMIC0.18um工艺库下需要665个逻辑门。本发明的实现方法不同于一般的实现方法,而是采用了有限域中的复合域计算方法,该实现方法在SMIC0.18um工艺库下只需要278个逻辑门,大约是采用查找表实现方法所需逻辑门的42%,大大减小了电路的面积。
具体的说,本发明提供SM4分组密码算法S盒的紧凑实现方法,包括下述步骤:
1、将有限域GF(28)中的元素从标准表示转换为用复合域方法表示;
2、将用复合域方法表示的有限域元素用复合域方法求其逆元;
3、将所求出的逆元从复合域表示转换为有限域GF(28)中的标准表示;
4、将步骤③的结果与一个常量进行异或运算。
所述步骤1进一步包括以下子步骤:
1.1将有限域GF(28)中用标准表示法表示的元素A乘以矩阵M1,其中A是GF(2)上长度为8的向量,M1是GF(2)上8行8列的矩阵,矩阵M1具体表示为
M 1 = 0 1 0 0 0 0 0 0 1 0 1 0 1 1 0 1 1 0 1 1 0 0 1 1 0 0 1 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 0 0 0 0 0 1 1 0 1
A乘以M1的具体运算为
A*M1=(0,a6,0,0,0,0,0,0)⊕(a7,0,a5,0,a3,a2,0,a0)⊕(a7,0,a5,a4,0,0,a1,a0)⊕(0,0,a5,0,a3,a2,a1,a0)⊕(a7,0,0,0,0,0,0,0)⊕(a7,a6,0,a4,a3,0,0,0)⊕(a7,a6,a5,a4,0,0,a1,0)⊕(0,0,0,0,a3,a2,0,a0),
其中A=(a7,a6,a5,a4,a3,a2,a1,a0),⊕表示异或运算。
1.2将A乘以M1的积再与常量C1进行异或运算,其中C1是长度为8的GF(2)上的向量,并且C1=(0,0,1,0,1,0,0,0)。
所述步骤2进一步包括以下子步骤:
2.1利用布尔函数的性质优化运算(a*b)⊕(a*b)2*N,其中a表示求逆运算的8比特输入的高4比特,b表示求逆运算的8比特输入的低4比特,N是一个4比特的常数向量,⊕表示异或运算,*表示GF(16)的乘法运算,记c=(a*b)⊕(a*b)2*N,c是一个长度为4的二元向量,可表示为c=(c3,c2,c1,c0),其具体的计算过程为:
c 3 = { ~ [ ( a 3 ⊕ a 2 ⊕ a 1 ⊕ a 0 ) | ( b 3 ⊕ b 2 ⊕ b 1 ⊕ b 0 ) ] } ⊕ { ~ [ ( a 3 ⊕ a 1 ) | ( b 3 ⊕ b 1 ) ] } ⊕ { ~ [ ( a 3 ⊕ a 2 ) | ( b 3 ⊕ b 2 ) ] } ⊕ { ~ ( a 2 ⊗ b 2 ) } ;
c 2 = { ~ [ ( a 3 ⊕ a 2 ⊕ a 1 ⊕ a 0 ) | ( b 3 ⊕ b 2 ⊕ b 1 ⊕ b 0 ) ] } ⊕ { ~ [ ( a 2 ⊕ a 1 ) | ( b 2 ⊕ b 0 ) ] } ⊕ { ~ [ ( a 2 | a 2 ) ] } ⊕ { ~ ( a 3 ⊗ b 3 ) } ;
c 1 = { ~ [ ( a 3 ⊕ a 1 ) | ( b 3 ⊕ b 1 ) ] } ⊕ { ~ [ a 0 | b 0 ] } ⊕ { ~ [ ( a 3 ⊕ a 2 ⊕ a 1 ⊕ a 0 ) ⊗ ( b 3 ⊕ b 2 ⊕ b 1 ⊕ b 0 ) ] } ⊕ { ~ [ ( a 1 ⊕ a 0 ) ] ( b 1 ⊕ b 0 ) } ;
c 0 = { ~ [ ( a 3 ⊕ a 2 ⊕ a 1 ⊕ a 0 ) | ( b 3 ⊕ b 2 ⊕ b 1 ⊕ b 0 ) ] } ⊕ { ~ ( a 0 | b 0 ) } ⊕ { ~ [ ( a 1 ⊕ b 1 ) ] } ⊕ { ~ ( a 2 ⊗ a 0 ) ⊗ ( b 2 ⊕ b 0 ) } ;
其中,~表示取反运算,⊕表示异或运算,表示与运算,|表示或运算;
2.2在GF(16)中计算①中c的逆元,记逆元为d,并记c=(c3,c2,c1,c0),
d=(d3,d2,d1,d0),则d的具体计算为:
t=(t1,t0),
其中, t 1 = { ~ [ ( c 3 ⊕ c 2 ) ⊗ ( c 1 ⊕ c 0 ) ] } ⊕ [ ~ ( c 2 | c 0 ) ] , t 0 = [ ~ ( c 2 ⊗ c 0 ) ] ⊕ [ ~ ( c 3 | c 1 ) ] ;
d 3 = [ ( t 1 ⊕ t 0 ) ⊗ c 0 ] ⊕ [ t 0 ⊗ ( c 1 ⊕ c 0 ) ] , d 2 = [ ( t 1 ⊕ t 0 ) ⊗ c 0 ] ⊕ [ t 1 ⊗ c 1 ] ,
d 1 = [ ( t 1 ⊕ t 0 ) ⊗ c 2 ] ⊕ [ t 0 ⊗ ( c 3 ⊕ c 2 ) ] , d 0 = [ ( t 1 ⊕ t 0 ) ⊗ c 2 ] ⊕ [ t 1 ⊗ c 3 ] ;
2.3在GF(16)中计算①中b与②中d的乘积,将此乘积记为p,其具体计算为:
2.4在GF(16)中计算①中a与②中d的乘积,将此乘积记为q,具体计算为:
2.5将步骤2.3中的p作为高4比特,将步骤2.4中q作为低4比特,组合成一个8比特的向量Q,作为求逆运算的结果,求逆运算的具体结果为Q=(p3,p2,p1,p0,q3,q2,q1,q0)。
所述步骤3为:将步骤2.5的求逆输出Q乘以一个GF(2)上的8行8列的矩阵M2,其中矩阵M2为:
M 2 = 1 0 1 0 1 0 0 0 1 0 0 0 1 0 1 0 1 1 1 1 1 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 1 1 0 1 1 1 1 0 0 0 0 0 0 0 0 1 0 ,
Q乘以M2的具体计算为:
Q*M1=(p3,0,p1,0,q3,0,0,0)⊕(p3,0,0,0,q3,0,q1,0)⊕(p3,p2,p1,p0,q3,0,0,0)⊕(0,0,p1,0,q3,q2,0,0)⊕(0,0,0,p0,q3,0,0,0)⊕(0,0,0,0,q3,q2,q1,q0)⊕(p3,0,p1,p0,q3,q2,0,0)⊕(0,0,0,0,0,0,q1,0),
其中Q=(p3,p2,p1,p0,q3,q2,q1,q0),⊕表示异或运算。
所述步骤4为:将步骤3的运算结果与一个GF(2)上的长度为8的向量C2进行异或运算,其中向量C2=(1,1,0,1,0,0,1,1)。
本发明属于对现有的加密算法的改进,其效果主要在于使实现电路紧凑化。说明书已经详细说明了本发明的原理和必要技术内容,普通技术人员能够依据说明书实施本发明,故不再赘述更具体的细节。

Claims (5)

1.SM4分组密码算法S盒的紧凑实现方法,其特征在于,包括下述步骤:
1)将有限域GF(28)中的元素从标准表示转换为用复合域方法表示;
2)将用复合域方法表示的有限域元素用复合域方法求其逆元;
3)将所求出的逆元从复合域表示转换为有限域GF(28)中的标准表示;
4)将步骤3)的结果与一个常量进行异或运算。
2.根据权利要求1所述的SM4算法S盒的紧凑实现方法,其特征在于,所述步骤1)包括以下子步骤:
1.1)将有限域GF(28)中用标准表示法表示的元素A乘以矩阵M1,其中A是GF(2)上长度为8的向量,M1是GF(2)上8行8列的矩阵;
1.2)将A乘以M1的积再与常量C1进行异或运算,其中C1是长度为8的GF(2)上的向量。
3.如权利要求1所述的SM4分组密码算法S盒的紧凑实现方法,其特征在于:
所述步骤2)包括以下子步骤:
2.1)利用布尔函数的性质优化运算(a*b)⊕(a*b)2*N,其中a表示求逆运算的8比特输入的高4比特,b表示求逆运算的8比特输入的低4比特,N是一个4比特的常数向量,⊕表示异或运算,*表示GF(16)的乘法运算,记c=(a*b)⊕(a*b)2*N;
2.2)在GF(16)中计算c的逆元,记该逆元为d;
2.3)在GF(16)中计算b与d的乘积,将此乘积记为p;
2.4)在GF(16)中计算a与d的乘积,将此乘积记为q;
2.5)将p作为高4比特,将q作为低4比特,组合成一个8比特的向量Q,作为求逆运算的结果。
4.如权利要求3所述的SM4分组密码算法S盒的紧凑实现方法,其特征在于:
所述步骤3)为:
将求逆输出Q乘以一个GF(2)上的8行8列的矩阵M2。
5.如权利要求4所述的SM4分组密码算法S盒的紧凑实现方法,其特征在于:
所述步骤4)为:将步骤3)运算结果与一个GF(2)上的长度为8的向量C2进行异或运算。
CN201410290907.6A 2014-06-25 2014-06-25 Sm4分组密码算法s盒的紧凑实现方法 Pending CN104065473A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410290907.6A CN104065473A (zh) 2014-06-25 2014-06-25 Sm4分组密码算法s盒的紧凑实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410290907.6A CN104065473A (zh) 2014-06-25 2014-06-25 Sm4分组密码算法s盒的紧凑实现方法

Publications (1)

Publication Number Publication Date
CN104065473A true CN104065473A (zh) 2014-09-24

Family

ID=51553018

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410290907.6A Pending CN104065473A (zh) 2014-06-25 2014-06-25 Sm4分组密码算法s盒的紧凑实现方法

Country Status (1)

Country Link
CN (1) CN104065473A (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105553646A (zh) * 2015-12-31 2016-05-04 清华大学无锡应用技术研究院 面向分组密码算法并行计算的可重构s盒电路结构
CN105790923A (zh) * 2016-04-26 2016-07-20 深圳市证通电子股份有限公司 密码算法抗功耗分析的实现方法及装置
CN106330429A (zh) * 2016-08-24 2017-01-11 中国信息安全测评中心 Sm4算法的s盒的生成方法及装置
CN106936569A (zh) * 2017-05-18 2017-07-07 北京万协通信息技术有限公司 一种抗功耗攻击的sm4算法掩码s盒的实现方法
CN109450632A (zh) * 2019-01-11 2019-03-08 西安电子科技大学 基于白盒分组密码clefia分析的密钥恢复方法
CN110197076A (zh) * 2019-05-22 2019-09-03 北京航空航天大学 一种sm4加密算法的软件优化实现方法
CN111162898A (zh) * 2019-12-27 2020-05-15 北京航空航天大学 一种基于Android端的SM4快速软件实现方法及装置
CN113255923A (zh) * 2021-05-31 2021-08-13 湖北大学 Sm4算法的量子实现电路
CN113940028A (zh) * 2019-03-29 2022-01-14 爱迪德技术有限公司 实现白盒密码的方法和装置
CN114710285A (zh) * 2022-05-19 2022-07-05 北京大学 一种面向异构并行架构的高性能sm4比特切片优化方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101938349A (zh) * 2010-10-01 2011-01-05 北京航空航天大学 一种适用于硬件实现的s盒及其电路实现方法
CN101969374A (zh) * 2010-10-27 2011-02-09 北京航空航天大学 分组密码算法中混淆层的实现方法
CN102006161A (zh) * 2010-12-02 2011-04-06 北京航空航天大学 一种对称密钥加密的非线性变换方法及其实现装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101938349A (zh) * 2010-10-01 2011-01-05 北京航空航天大学 一种适用于硬件实现的s盒及其电路实现方法
CN101969374A (zh) * 2010-10-27 2011-02-09 北京航空航天大学 分组密码算法中混淆层的实现方法
CN102006161A (zh) * 2010-12-02 2011-04-06 北京航空航天大学 一种对称密钥加密的非线性变换方法及其实现装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
徐艳华 等: "适合SMS4算法硬件实现的S盒构造新方法", 《中国科学技术大学学报》 *

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105553646A (zh) * 2015-12-31 2016-05-04 清华大学无锡应用技术研究院 面向分组密码算法并行计算的可重构s盒电路结构
CN105553646B (zh) * 2015-12-31 2018-09-18 清华大学无锡应用技术研究院 面向分组密码算法并行计算的可重构s盒电路结构
CN105790923A (zh) * 2016-04-26 2016-07-20 深圳市证通电子股份有限公司 密码算法抗功耗分析的实现方法及装置
CN106330429B (zh) * 2016-08-24 2019-08-06 中国信息安全测评中心 Sm4算法的s盒的生成方法及装置
CN106330429A (zh) * 2016-08-24 2017-01-11 中国信息安全测评中心 Sm4算法的s盒的生成方法及装置
CN106936569A (zh) * 2017-05-18 2017-07-07 北京万协通信息技术有限公司 一种抗功耗攻击的sm4算法掩码s盒的实现方法
CN109450632A (zh) * 2019-01-11 2019-03-08 西安电子科技大学 基于白盒分组密码clefia分析的密钥恢复方法
CN113940028A (zh) * 2019-03-29 2022-01-14 爱迪德技术有限公司 实现白盒密码的方法和装置
CN113940028B (zh) * 2019-03-29 2024-03-15 爱迪德技术有限公司 实现白盒密码的方法和装置
CN110197076A (zh) * 2019-05-22 2019-09-03 北京航空航天大学 一种sm4加密算法的软件优化实现方法
CN111162898A (zh) * 2019-12-27 2020-05-15 北京航空航天大学 一种基于Android端的SM4快速软件实现方法及装置
CN113255923A (zh) * 2021-05-31 2021-08-13 湖北大学 Sm4算法的量子实现电路
CN114710285A (zh) * 2022-05-19 2022-07-05 北京大学 一种面向异构并行架构的高性能sm4比特切片优化方法

Similar Documents

Publication Publication Date Title
CN104065473A (zh) Sm4分组密码算法s盒的紧凑实现方法
Zhang et al. Digital image encryption based on advanced encryption standard (AES)
Singh et al. Image encryption and decryption using blowfish algorithm in MATLAB
CN105049194B (zh) 一种流水线结构的sm4算法实现系统
Xu et al. An improved chaotic cryptosystem based on circular bit shift and XOR operations
CN104333446B (zh) 一种新型超轻量级qtl分组密码实现方法
Liu et al. An AES S-box to increase complexity and cryptographic analysis
CN104639314A (zh) 基于aes加密/解密算法的装置和流水控制方法
CN101938349A (zh) 一种适用于硬件实现的s盒及其电路实现方法
Zhang et al. A new chaotic algorithm for image encryption
CN106357380B (zh) Sm4算法的掩码方法及装置
CN104333447A (zh) 一种可抵御能量分析攻击的sm4方法
CN108111295A (zh) 一种基于类模运算的同态加密算法
CN103916248A (zh) 一种全同态加密公钥空间压缩方法
CN101848081A (zh) 一种s盒构造方法及s盒
CN107070636A (zh) 一种标准密文输出格式的商密sm4算法的白盒软件实现方法
CN103905182A (zh) 基于动态改变中间数据存储位置的抗攻击方法及电路实现
CN103916236A (zh) 面向aes算法的抗功耗攻击方法及电路实现
Fadhil et al. A new lightweight AES using a combination of chaotic systems
CN101826959B (zh) 一种面向字节的密钥流生成方法及加密方法
JunLi et al. Email encryption system based on hybrid AES and ECC
CN104219045B (zh) Rc4 流密码生成器
CN107070629A (zh) 一种针对sm4密码算法轮输出的模板攻击方法
CN103780794A (zh) 一种基于混沌系统的图像加密改进方法
CN101860796B (zh) 一种抗同谋攻击的网络组播信息加密方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20140924

WD01 Invention patent application deemed withdrawn after publication