CN102006161B - 一种对称密钥加密的非线性变换方法及其实现装置 - Google Patents
一种对称密钥加密的非线性变换方法及其实现装置 Download PDFInfo
- Publication number
- CN102006161B CN102006161B CN2010105697729A CN201010569772A CN102006161B CN 102006161 B CN102006161 B CN 102006161B CN 2010105697729 A CN2010105697729 A CN 2010105697729A CN 201010569772 A CN201010569772 A CN 201010569772A CN 102006161 B CN102006161 B CN 102006161B
- Authority
- CN
- China
- Prior art keywords
- circleplus
- box
- module
- hardware
- compositum
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Complex Calculations (AREA)
Abstract
本发明提供了一种对称密钥加密的非线性变换方法及装置,可作为S盒直接使用,该S盒使用有限域上的函数复合仿射变换,在保持AES的S盒原有的结构和密码学性质的基础上,通过增加非线性运算的次数,在提高S盒的代数免疫度的同时又不降低其复合域硬件实现方式的复杂度。本发明还提供了实现该S盒的硬件实现方法,该方法引入了元素的复合域表示,把原域的求逆转化为复合域的求逆,并将若干线性与仿射变换进行合并,其中复合域求逆涉及到的子域上的运算,包括乘法、平方、常量乘法和求逆等均转化为比特之间的异或运算和与运算。整个S盒的硬件实现过程只需使用简单的逻辑门电路,无需查表,减少了硬件实现的开销,并降低了路径延迟。
Description
技术领域
本发明属于信息安全领域,具体涉及到一种分组密码算法中的非线性变换(S盒)的设计及其复合域硬件实现方式。
背景技术
信息安全涉及到信息的保密性、完整性、认证性等内容。其中,密码理论是信息安全的基础。密码算法主要分为对称密码算法和非对称密码算法两大类。对称加密算法指加密密钥和解密密钥相同,或知道密钥之一很容易推导得到另一个密钥。通常情况下,对称密码算法的设计不仅要考虑到算法的安全强度,更要注重算法的实现性能:软件实现性能和硬件实现性能。软件实现主要考虑的是算法的实现速度以及与内存的需求,有时候还与具体运行环境(如CPU的计算能力)以及源代码的质量有关。硬件实现因为具备更高的速度和更强的物理安全性,实现价值更强,但除了实现的速度与内存,硬件实现的总体代价也是必须考虑的。
以分组密码为例,一个分组密码算法大体上都包含混淆层与扩散层。混淆层一般是用若干并置、独立的S盒构成,作为提供混淆作用的部件,S盒多采用随机置换或有限域上的非线性函数,而扩散层则多采用线性变换。从算法实现的角度来看,线性变换的复杂度相对较低,因此混淆层的实现方式,特别是S盒的实现方式在很大程度上决定了整个密码算法的实现性能,这也是分组密码的研究热点之一。作为分组密码的典型代表,高级加密标准(AES)的S盒是用有限域GF(28)上的求乘法逆和GF(2)上的仿射变换复合而成。根据设计者的介绍,该S盒所选取的函数具备比较理想的密码学性质。然而,因为代数结构过于清晰简洁,以有限域求逆复合放射变换作为S盒并不具备较强的抗代数攻击的性能。
AES的S盒的软件实现一般采用查表的方式,但8×8的S盒的存储量为28×8比特,这对于芯片面积有着严格要求的嵌入式系统是难以接受的。因此对于S盒的硬件实现,必须作相应的转化,特别针对于其中求乘法逆这一非线性操作。目前比较流行的技术是引入元素的复合域表示,其基本思想是通过一个可逆的线性变换T将原域GF(28)上的每个元素映射到复合域GF((24)2)上同构的元素,并在复合域GF((24)2)中求乘法逆,再用线性变换T-1还原到原域进行余下的操作。这种基于复合域的转化方法有效地减少了芯片的面积,对于硬件实现来说既减少开销,又避免了内存读写数据产生的延迟。不过原域与复合域之间的转化,以及复合域求逆引入的一系列子域GF(24)的运算。
综上所述,一个好的密码算法应当既具备理想的安全强度,又能在软硬件实现中体现出优越性。但算法理论上的安全性与实际的实现性能往往是一对矛盾,如何在其中找到一个平衡点是一个非常复杂的问题。
发明内容
本发明旨在提供一种密码学性能较强的8×8的S盒,在保持AES的S盒原有的结构和密码学性质的基础上,通过增加非线性运算的次数,在提高S盒的代数免疫度的同时又不降低其复合域硬件实现方式的复杂度。
本发明的技术方案概述如下:
一种对称密钥加密的非线性变换方法,该非线性变换可看作一个8×8的S盒,其特征在于,
-该S盒选自于有限域GF(28)=GF(2)/(x8+x4+x3+x2+1),GF(28)中的任一元素x均可看作一个字节,记x=(x7,x6,…,x0)T,xi∈GF(2)代表字节x不同的比特位。
-该S盒的运算为:
S:GF(28)→GF(28)
代数结构见图1,以下说明所用的符号与图1一致。
-S盒由有限域中的三个函数复合而成,其中函数g(x)表示有限域GF(28)中的乘法逆函数:
g:GF(28)→GF(28)
-p(w)定义有限域GF(28)中的一个线性化单项式:
p:GF(28)→GF(28)
本发明同时提供了实现该方法的装置,包括如下模块:
-T模块,实现线性变换矩阵:
-复合域求逆模块,实现GF((24)2)的求逆操作;
-仿射变换模块AB,实现
本发明的有益效果:本发明提供的S盒的构造相对比较简单,使用的有限域函数的复杂性较低,且密码学性质不弱于AES的S盒,但具备更强的代数免疫性,可以作为一个分组密码算法的混淆层部件;另一方面,由于使用的都是有限域上的运算,若采用复合域的方法,S盒的实现方式可以完全被转化为GF(2)的乘法与加法(见具体实施方式),这样整个S盒的硬件实现只需要简单的逻辑电路,无需查表,减少了开销,且与AES的S盒的复合域硬件实现方法具有相同的复杂度。
附图说明
图1是S盒的代数结构图。
图2是S盒的代数结构,硬件实现采用复合域方法的结构与本发明的具体实施方式所提供的硬件实现方法的结构之间的关系。
图3是本发明提供的硬件实现方法的总体设计图,其中的圆角矩形表示数据,直角矩阵表示电路中使用的子模块,包括“T模块”、“AB模块”、“乘法模块”、“平方模块”、“λ模块”和“求逆模块”,符号代表按位异或运算。
图4是T模块的门级电路图,T模块实现了图1所示的最终实现步骤的GF(2)同构变换T,图中的a7到a0代表输入的8比特,b7到b0代表输出的8比特。
图5是AB模块的门级电路图,AB模块实现了图1所示的最终实现步骤的GF(2)仿射变换,图中的a7到a0代表输入的8比特,b7到b0代表输出的8比特。
图6是乘法模块的门级电路图,乘法模块实现了GF(24)的两个元素的乘法运算,图中的a3到a0与b3到b0分别代表两个乘法的4比特输入,c3到c0代表4比特输出。
图7是平方模块的门级电路图,平方模块实现了GF(24)元素的平方运算,图中的a3到a0代表平方的4比特输入,b3到b0代表4比特输出。
图8是λ模块的门级电路图,λ模块实现了GF(24)元素与常量λ相乘的运算,图中的a3到a0代表4比特输入,b3到b0代表4比特输出。
图9是求逆模块的门级电路图。求逆模块实现了GF(24)元素的求逆运算,图中的a3到a0代表4比特输入,b3到b0代表4比特输出。
具体实施方式
下面结合具体的实例对本发明进行进一步说明。
本发明提供的S盒的硬件实现可以使用复合域方法,其代数结构,硬件实现采用复合域方法的运算结构与简化之后的运算结构之间的关系如图2所示,根据简化后的结构,图3给出了总体设计图,它可分为如下三个部分:
1.对输入的8比特数据进行线性变换T,它的矩阵形式为:
这一变换使用单独的“T模块”即可实现,图4是T模块的门级电路图。
2.在复合域GF((24)2)中求逆,其中GF((24)2)=GF(24)/(x2+x+λ),λ=ω14=ω3+1∈GF(24),ω是子域GF(24)的本原元GF(24)=GF(2)/(x4+x+1)。GF((24)2)的每一个元素都可以表示成GF(24)上的一个一次多项式ax+b,这里的a和b都是4比特数据,构成的字节记为(a,b),令px+q=(ax+b)-1=invc(a,b),函数invc表示复合域GF((24)2)的求逆,则有:
由于上式运算都定义在域GF(24)中,因此这一步需要实现GF(24)的乘法、平方、常量λ乘法和求逆等运算的子模块。
3.对上一步输出的8比特数据进行仿射变换AB,它的矩阵形式为:
其中,
(p,q)代表第2步输出的字节,y是整个模块电路的输出。这一变换使用单独的“AB模块”即可实现,图5是AB模块的门级电路图。
第2步的操作涉及了域GF(24)的乘法、平方、常量乘法与求逆的运算,这些运算都可通过比特的异或、与和取反等简单的操作实现,以下是具体计算公式:令a,b∈GF(24),其中a=a3ω3+a2ω2+a1ω+a0,b=b3ω3+b2ω2+b1ω+b0,若c=c3ω3+c2ω2+c1ω+c0=a×b,根据有限域乘法的意义可得如下公式
在上式中令b=a,就得到平方的计算公式
因为λ=ω3+1,可令b3=b0=1,b1=b2=0,就得到常量λ乘法的计算公式
利用逆函数的代数正规型,可得到求逆的计算公式
图2中的“乘法模块”、“平方模块”、“λ模块”和“求逆模块”分别对应上述功能的子模块,图6到图9是这4个模块的门级电路图。
本发明提供了一种对称密钥加密的非线性变换及其高效的硬件实现方法,按硬件实现中运算,该方法对8比特数据的处理过程具体如下:
1.对8比特数据a=(a7,a6,…,a0)进行线性变换T,矩阵形式见发明内容,这一步的输出为b=(b7,…,b0);
2.将b看作复合域GF((24)2)中的元素,即b=c1x+c0,c1=(b7,…b4),c0=(b3,…b0),对b=c1x+c0在GF((24)2)中求逆,令d1x+d0=invc(c1x+c0),,1nvc的计算公式见发明内容;
3.令e=d1x+d0;
4.对e进行仿射变换AB,矩阵形式见发明内容,得到f;
5.输出f。
假定模块电路的输入的8比特数据为10110101,则按发明内容中S盒的运算步骤进行计算,每一步的计算如下:
1.对a=(1,0,1,1,0,1,0,1)进行线性变换T,这一步的输出为b=(1,0,1,0,0,0,1,1):
2.b=c1x+c0,c1=(1,0,1,0),c0=(0,0,1,1),对b=c1x+c0在GF((24)2)中求逆,令d1x+d0=invc(c1x+c0),
3.e=d1x+d0=(1,0,0,0,0,1,0,1);
4.对e进行仿射变换AB,矩阵形式见发明内容,得到f
输出f=(1,0,1,1,1,1,1,1)。
Claims (9)
2.如权利要求1所述的方法,其特征在于,所述S盒对数据的处理过程如下:
-对输入的8比特数据进行线性变换;
-在复合域GF((24)2)中求逆;
-对上一步输出的8比特数据进行仿射变换AB。
3.如权利要求2所述的方法,其特征在于,所述复合域GF((24)2)=GF(24)/(x2+x+λ),λ=ω14=ω3+1∈GF(24),ω是子域GF(24)的本原元,GF(24)=GF(2)/(x4+x+1)。
4.一种实现权利要求1所述方法的装置,其特征在于,所述装置包括如下模块:
-T模块,实现线性变换矩阵:
-复合域求逆模块,实现GF((24)2)的求逆操作,其中GF((24)2)=GF(24)/(x2+x+λ),λ=ω14=ω3+1∈GF(24),ω是子域GF(24)的本原元GF(24)=GF(2)/(x4+x+1);
-仿射变换模块AB,实现
其中
5.如权利要求4所述的装置,其特征在于,所述复合域求逆模块的实现被分解为GF(24)的乘法、平方、常量乘法与求逆的运算。
6.如权利要求5所述的装置,其特征在于,所述乘法运算对应于
7.如权利要求5所述的装置,其特征在于,所述平方运算对应于
8.如权利要求5所述的装置,其特征在于,所述常量乘法运算对应于
9.如权利要求5所述的装置,所述求逆运算对应于
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105697729A CN102006161B (zh) | 2010-12-02 | 2010-12-02 | 一种对称密钥加密的非线性变换方法及其实现装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105697729A CN102006161B (zh) | 2010-12-02 | 2010-12-02 | 一种对称密钥加密的非线性变换方法及其实现装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102006161A CN102006161A (zh) | 2011-04-06 |
CN102006161B true CN102006161B (zh) | 2012-06-27 |
Family
ID=43813256
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010105697729A Expired - Fee Related CN102006161B (zh) | 2010-12-02 | 2010-12-02 | 一种对称密钥加密的非线性变换方法及其实现装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102006161B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9584310B2 (en) * | 2014-03-19 | 2017-02-28 | Nxp B.V. | Protecting a white-box implementation against attacks |
CN104065473A (zh) * | 2014-06-25 | 2014-09-24 | 成都信息工程学院 | Sm4分组密码算法s盒的紧凑实现方法 |
US9819486B2 (en) * | 2014-12-19 | 2017-11-14 | Nxp B.V. | S-box in cryptographic implementation |
CN105577362B (zh) * | 2015-12-28 | 2019-04-26 | 中山大学花都产业科技研究院 | 一种应用于aes算法的字节替换方法及系统 |
CN106452726B (zh) * | 2016-06-22 | 2020-04-07 | 深圳华视微电子有限公司 | 一种s盒及其构造方法 |
KR101924067B1 (ko) * | 2016-10-28 | 2019-02-22 | 삼성에스디에스 주식회사 | 암호화 장치 및 방법 |
CN108234107B (zh) * | 2016-12-21 | 2022-11-22 | 国民技术股份有限公司 | 一种带仿射掩码的s盒变换方法及装置 |
CN106788978B (zh) * | 2016-12-30 | 2020-04-21 | 桂林电子科技大学 | 变元分解限门掩码方法 |
CN112769551B (zh) * | 2020-12-29 | 2022-07-26 | 杭州电子科技大学 | 基于fpga的sm4-gcm网络加密传输系统实现方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1719766A (zh) * | 2005-07-21 | 2006-01-11 | 北京中星微电子有限公司 | 一种AES加解密电路中Sbox模块优化方法及优化电路 |
CN101626289A (zh) * | 2009-07-14 | 2010-01-13 | 青岛科技大学 | Aes加密芯片的设计方法及电脑加密机 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008058830A (ja) * | 2006-09-01 | 2008-03-13 | Sony Corp | データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム |
-
2010
- 2010-12-02 CN CN2010105697729A patent/CN102006161B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1719766A (zh) * | 2005-07-21 | 2006-01-11 | 北京中星微电子有限公司 | 一种AES加解密电路中Sbox模块优化方法及优化电路 |
CN101626289A (zh) * | 2009-07-14 | 2010-01-13 | 青岛科技大学 | Aes加密芯片的设计方法及电脑加密机 |
Also Published As
Publication number | Publication date |
---|---|
CN102006161A (zh) | 2011-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102006161B (zh) | 一种对称密钥加密的非线性变换方法及其实现装置 | |
CN106100844B (zh) | 基于点盲化方法的优化自动双线性对加密方法及装置 | |
CN101938349A (zh) | 一种适用于硬件实现的s盒及其电路实现方法 | |
Gutub et al. | Hybrid crypto hardware utilizing symmetric-key and public-key cryptosystems | |
CN104639314A (zh) | 基于aes加密/解密算法的装置和流水控制方法 | |
JP4682852B2 (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
CN103516512A (zh) | 基于aes算法的加解密方法及加解密器 | |
CN100428140C (zh) | 椭圆曲线密码体制协处理器的实现方法 | |
CN106712930A (zh) | 一种sm4加密方法及装置 | |
CN107579813A (zh) | 信息加密、解密方法及装置 | |
CN110166223A (zh) | 一种国密sm4的快速软件实现方法 | |
Shahbazi et al. | Design and implementation of an ASIP-based cryptography processor for AES, IDEA, and MD5 | |
CN103152165A (zh) | 基于fpga的超高速aes处理器及其实现方法 | |
CN103761068A (zh) | 优化的蒙哥马利模乘方法、模平方方法和模乘硬件 | |
CN101848081A (zh) | 一种s盒构造方法及s盒 | |
CN103746796A (zh) | 一种实现智能卡sm4密码算法的协处理器 | |
CN103812658B (zh) | 一种基于流密码的安全通信协议 | |
GADED et al. | Composite field arithematic based s-box for aes algorithm | |
CN106982116A (zh) | 一种基于可逆逻辑电路的aes的本地文件加密方法 | |
CN101969374B (zh) | 分组密码算法中混淆层的实现方法 | |
CN101267300A (zh) | 基于互素序列和杠杆函数的多变量公钥加密方法 | |
CN107171782A (zh) | 一种基于可逆逻辑电路的aes私密日志加密方法 | |
CN100561911C (zh) | 一种AES加解密电路中Sbox模块优化方法及优化电路 | |
CN106452726B (zh) | 一种s盒及其构造方法 | |
CN102064938A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120627 Termination date: 20151202 |
|
EXPY | Termination of patent right or utility model |