CN1719766A - 一种AES加解密电路中Sbox模块优化方法及优化电路 - Google Patents

一种AES加解密电路中Sbox模块优化方法及优化电路 Download PDF

Info

Publication number
CN1719766A
CN1719766A CN 200510085160 CN200510085160A CN1719766A CN 1719766 A CN1719766 A CN 1719766A CN 200510085160 CN200510085160 CN 200510085160 CN 200510085160 A CN200510085160 A CN 200510085160A CN 1719766 A CN1719766 A CN 1719766A
Authority
CN
China
Prior art keywords
circuit
gating
affine transformation
gating switch
inverting
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.)
Granted
Application number
CN 200510085160
Other languages
English (en)
Other versions
CN100561911C (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.)
Vimicro Corp
Original Assignee
Vimicro Corp
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 Vimicro Corp filed Critical Vimicro Corp
Priority to CNB2005100851601A priority Critical patent/CN100561911C/zh
Publication of CN1719766A publication Critical patent/CN1719766A/zh
Application granted granted Critical
Publication of CN100561911C publication Critical patent/CN100561911C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Logic Circuits (AREA)
  • Error Detection And Correction (AREA)

Abstract

本发明涉及AES算法中Sbox模块优化方法及优化电路,通过对GF256求逆电路的优化减小AES算法电路实现的规模,功耗和电路实现成本。本发明的方法是在AES算法中Sbox模块的GF256求逆电路中,采取如下优化方法:(1)通过线性变换T将GF256上的元素X映射到GF16上的元素b,c;(2)构建相应的GF16,定义所述的GF16上的加法,乘法和求逆运算;(3)构造GF16上的元素的一次多项式,进行加法、乘法和求逆运算,得到GF16上的元素b,c的逆p,q;(4)构造一个线性变换T-1来实现GF16上的元素P,q到GF256上元素的映射,从而得到GF256上的元素X的逆Y=T-1·(p,q)。本发明还根据上述方法得到优化电路,其包括映射电路、GF16运算电路、以及逆映射电路。

Description

一种AES加解密电路中Sbox模块优化方法及优化电路
技术领域
本发明涉及AES加解密技术,尤其涉及AES加解密电路中Sbox模块优化方法及优化电路。
背景技术
AES算法是The Advanced Encryption Standard(高级加密标准)的简称,是美国国家标准与技术研究所(NIST)公布的一种用于加密电子数据的规范,其被广泛地讨论和认可,成为全球信息安全领域中应用最广泛的一种分组密码算法。明确地说,AES是一个迭代的、对称密钥分组的密码,它可以使用128、192和256位密钥,并且用128位(16字节)分组加密和解密数据。与公共密钥密码使用密钥对不同,对称密钥密码使用相同的密钥加密和解密数据。通过分组密码返回的加密数据的位数与输入数据相同。迭代加密使用一个循环结构,在该循环中重复置换(permutations)和替换(substitutions)输入数据。
AES加密算法使用相当简单明了的技术来代替和置换,其中所用的加法和乘法是基于数学的域论。尤其是AES基于有限域GF(256),GF(256)由一组从0x00到0xff的256个值组成,加上加法和乘法,因此是(256)。GF代表伽罗瓦域,以发明这一理论的数学家的名字命名。GF(256)的一个特性是一个加法或乘法的操作的结果必须是在{0x00...0xff}这组数中。虽然域论是相当深奥的,但GF(256)加法的最终结果却很简单。GF(256)加法就是异或(XOR)操作。
目前在AES算法的实现方法中,大多数是采用软件方法实现,而硬件实现方法存在硬件开销大,成本过高等缺点,对芯片的面积有一定的要求,限制了运用的场合。一般情况下,在硬件实现AES算法中Sbox的电路中,通用的做法是事先计算好求逆过程中每个输入对应的输出,将GF256上的求逆运算加上仿射变换用查找一个8输入8输出的表来表示。电路的原理如图1所示。Sbox模块分为加密Sbox和解密Sbox。
在具体实现一个Sbox模块的过程中,需要用比较多的逻辑电路来实现,例如一个查表需要800个等效逻辑门(一个二输入与门可以看作一个等效逻辑门)当我们希望12个时钟周期来实现一个128bit分组加密的时候,这样的Sbox在AES加密电路中需要16个,同样对于AES解密电路也需要16个解密Sbox。如此计算,在一个同时支持加解密的AES电路中,Sbox就需要800*32=25600个等效逻辑门,其规模大,功耗大,成本高。由于电路规模的大小决定了系统的功耗、造价、体积等特征,所以我们需要优化Sbox来减小电路规模。
在同一申请人的申请号为“2005100753990”、申请日为“2005年6月16日”、发明名称为“AES加解密电路优化方法及复用Sbox模块”的专利申请中,其根据AES算法的结构,设计出了一种AES加解密算法可以复用的Sbox电路模块。由于AES算法是一种分组密码算法,对于加密和解密模式而言,其电路结构是相同的,使用的都是8入8出的Sbox,而不论加密还是解密,Sbox都是实现GF256上求逆运算和仿射变换的组合,只是对加密而言,是先做求逆后做仿射变换,对解密而言,是先做仿射变换后做求逆,所以该申请通过采用选通开关,使得加解密电路复用一个GF256求逆电路,从而节省了一个GF256求逆电路,使得电路规模、功耗、成本相应减少。然而,在AES加解密算法中,如果既要支持加密运算又要支持解密运算,最起码我们需要16个GF256求逆运算电路,而GF256求逆运算电路通常用查表电路实现,规模在800*16=12800门左右,其规模、功耗、成本依然很大,不利于生产、生活中应用。因此,还需要进一步减小电路的规模。
发明内容
本发明的目的在于提供一种AES算法中Sbox模块优化方法及优化电路,从而降低运算复杂度,减小电路规模。
AES算法的强度是基于基为256的有限域上的求逆运算,而有限域上的特性决定了一个GF256上的元素可以用GF16上的一次多项式表示,也就是说,GF256上的求逆可以转换到GF16上进行,由于GF16上求逆的运算复杂度要比GF256上求逆的运算复杂度要低得多,相应地,其电路规模都要比原来的电路规模小得多。
为了实现本发明的上述目的,一方面,本发明提供一种AES加解密电路中Sbox模块优化方法,将Sbox模块的中的GF256求逆电路上的GF256上的求逆转变成GF16上的求逆。所述将GF256上的求逆转变成GF16上的求逆包括如下步骤:
步骤1:通过GF16上的既约的二次多项式p(x)=x2+x+A构造线性变换T,根据如下公式(1)将GF256上的输入X映射为GF16上的元素b,c:
                {b[3:0],c[3:0]}=T·X                 (1)
其中A是GF16上的常量元素,T是一个8x8的矩阵,矩阵的元素是0或1,T矩阵由A的取值决定;
步骤2:构建GF16,定义GF16上的加法、乘法和求逆运算:
a)所述加法为按位异或;
b)所述乘法为多项式乘法然后用q(x)取模,其中q(x)=x4+x+1作为本原多项式;
c)所述求逆为根据公式INVi·INVo=1modq(x),计算GF16上元素INVi的逆INVo;
步骤3:构造GF16上的一次多项式,并利用上述GF16上的加法、乘法和求逆运算进行运算,得到GF16上的元素b,c的逆p,q,
步骤4:构造线性变换T-1,GF16上的逆p,q映射到GF256上逆的元素Y=T1·(p,q),其中,线性变换T-1和步骤1中线性变换T满足T-1·T=I,
其中,上述的线性变换T、T-1、GF16上定义的加法、乘法和求逆运算用逻辑电路来实现。
根据本发明的上述优化方法,当在所述步骤1中,取A=9时,则T表示成如下矩阵:
T = 1 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 1 1 0 0 0 0 1 0 0 1 0 1 1 1 0 0 0 0 1
这时,在所述步骤3中,所得到的逆p,q为:
                        p=b(9b2bcc2)-1
                        q=(bc)(9b2bcc2)-1
根据本发明的上述优化方法,在将GF256上的求逆转换成GF16上的求逆的基础上,可以对AES加解密电路进行进一步的优化。具体地,在所述GF256求逆电路的输入端连接第一选通开关,在所述GF256求逆电路的输出端连接第二选通开关;将一解密仿射变换电路连接于所述GF256求逆电路的输入端且由第一选通开关控制该解密仿射变换电路是否选通,一加密仿射变换电路连接于GF256求逆电路的输出端且由第二选通开关控制该加密仿射变换电路是否选通;对两个选通开关进行控制,使得在加密模式下,只选通加密仿射变换电路,在解密模式下,只选通解密仿射变换电路。例如,使解密仿射变换电路连接于GF256求逆电路输入端的选通开关的高位,加密仿射变换电路连接于GF256求逆电路输出端的选通开关的低位;在加密模式下,控制两个选通开关同时处于低位,在解密模式下,控制两个选通开关同时处于高位。
另一方面,本发明提供一种AES加解密电路中Sbox模块优化电路,其中,GF256求逆电路包括映射电路、GF16运算电路以及逆映射电路。所述映射电路,用于将GF256上的输入X映射为GF16上的元素b,c;所述GF16运算电路,其包括分别完成在GF16上定义的加法、乘法、求逆运算功能的加法器、乘法器、GF16求逆电路,所述GF16运算电路通过构造GF16上的一次多项式,利用所述加法器、乘法器、GF16求逆电路,求得GF16上的元素b,c的逆元素p,q;所述逆映射电路,用于将GF16上的元素p,q映射到GF256上的元素。
根据本发明的上述优化电路,所述映射电路根据如下公式(1)完成映射:
        {b[3:0],c[3:0]}=T·X               (1)
其中T是通过GF16上的既约的二次多项式p(x)=x2+x+A构造的线性变换,是一个8x8的矩阵,矩阵的元素是0或1,用逻辑电路来实现,T矩阵由A的取值决定,A是GF16上的常量元素。
根据本发明的上述优化电路,所述加法器完成的在GF16上定义的加法为按位异或;所述乘法器完成的在GF16上定义的乘法为多项式乘法然后用q(x)取模,其中q(x)=x4+x+1作为本原多项式;所述GF16求逆电路完成的在GF16上定义的求逆运算为,根据公式INVi·INVo=modq(x),计算GF16上元素INVi的逆INVo。
根据本发明的上述优化电路,所述逆映射电路,通过线性变换T-1求得GF256上的逆Y=T1·(p,q),其中,T-1·T=I,所述线性变换T-1用逻辑电路实现。
根据本发明的上述优化电路,取A=9,则T表示成如下矩阵:
T = 1 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 1 1 0 0 0 0 1 0 0 1 0 1 1 1 0 0 0 0 1
这时,所得到的GF16上的逆元素p,q为:
                      p=b(9b2bcc2)-1
                      q=(bc)(9b2bcc2)-1
根据本发明的上述优化电路,还包括第一选通开关和第二选通开关、加密仿射变换电路、解密仿射变换电路、控制单元,其中所述第一选通开关连接于所述GF256求逆电路的输入端,用于是否选通解密仿射变换电路,所述第二选通开关连接于所述GF256求逆电路的输出端,用于是否选通加密仿射变换电路,所述控制单元和两个选通开关的控制端相连,控制所述第一选通开关和第二选通开关,使得在加密模式下只选通加密仿射变换电路,在解密模式下只选通解密仿射变换电路。
根据本发明的上述优化电路,所述第一选通开关的高位与所述解密仿射变换电路连接,所述第二选通开关的低位与所述加密仿射变换电路连接,在加密状态下,所述控制单元控制所述第一选通开关和第二选通开关同时处于低位,在解密状态下,所述控制单元控制所述第一选通开关和第二选通开关同时处于高位。
根据本发明的上述优化电路,所述加密仿射变换电路、解密仿射变换电路均由逻辑电路形成。
通过上述优化方法或优化电路,减小了AES算法电路中Sbox部分所占的电路规模,降低了电路整体规模,从而减小了AES算法系统的功耗、造价以及体积。
附图说明
图1是现有技术AES加解密电路的简单原理图;
图2是现有技术AES加密Sbox模块的运算原理框图;
图3是现有技术AES解密Sbox模块的运算原理框图;
图4是本发明中的GF256到GF16上的映射(Map)电路图;
图5是本发明中GF16加法器(ADD16)电路图;
图6是本发明中GF16乘法器(MUL16)电路图;
图7是本发明中GF16求逆电路(INV16)电路图;
图8是本发明中逆映射(iMap)电路图;
图9是根据本发明的AES加解密电路中GF256求逆电路结构的方框示意图;
图10是本发明的GF256求逆电路结构方框示意图;
图11是与图10相对应的GF256求逆电路的具体结构方框示意图;
图12示出了本发明的AES加解密电路中Sbox模块优化电路的另一实施例的结构的方框示意图。
具体实施方式
下面参照附图详细说明本发明的AES算法中Sbox模块优化方法及优化电路。所给出的附图仅用于说明,并不限制本发明。
根据本发明的AES算法中Sbox模块优化方法包括如下步骤:
(1)通过线性变换T将GF256上的元素X映射到GF16上的元素b,c
为了实现将GF256上的求逆转换成GF16上的求逆,以降低电路的规模,需要一个线性变换T将GF256上的元素映射到GF16上的元素。通过这个线性变换T,可以将GF256上的每一个元素用GF16上的一次多项式来表示。为了构造这个线性变换,首先需要一个在GF16上既约的二次多项式p(x)。所谓既约是指将GF16上的任何一个元素代入p(x),得到的值都不为0。这里,存在如下形式的既约多项式:
                      p(x)=x2+x+A
其中A是GF16上的常量元素。
只要p(x)保持既约,就可以选择那些使硬件发挥最优性能的A值。在满足这样条件的既约多项式中,取A=9可以使得硬件的规模比较小,所以选择既约多项式为:
                      p(x)=x2+x+9
得到p(x)之后,就得到了一个线性变换,用矩阵T来表示,
T = 1 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 1 1 0 0 0 0 1 0 0 1 0 1 1 1 0 0 0 0 1
对于一个GF256上的8位元素X[7:0]可以用下面的公式转换到GF16上的两个元素b[3:0]和c[3:0],其中:
                      {b[3:0],c[3:0]}=T·X
上述映射可以用逻辑电路来实现,如图4所示,其给出了GF256到GF16映射的电路图。
(2)构建GF16上的运算,定义GF16上的加法,乘法和求逆运算
选择多项式q(x)=x4+x+1作为本原多项式,可以构造一个GF16,并且定义GF16上的加法、乘法和求逆运算,其中:
a)定义GF16上的加法为按位异或(XOR),例如,对于GF16上的两个元素IN1和IN2的加法,即,OUT=IN1IN2,可以用一个逻辑电路模块ADD16来实现,如图5所示。
b)定义GF16上的乘法为多项式乘法然后用q(x)取模。
其中GF16上多项式乘法然后用q(x)取模用下面的公式实现,其中,假设两个多项式A、B相乘得到C:
A=a3x3+a2x2+a1x+a0
B=b3x3+b2x2+b1x+b0
Ax=a3x4+a2x3+a1x2+a0x=(a3a3)x4+a2x3+a1x2+(a0a3)x+a3
=a2x3+a1x2+(a0a3)x+a3
Ax2=a2x4+a1x3+(a0a3)x2+a3x=(a2a2)x4+a1x3+(a0a3)x2+(a3a2)x+a2
=a1x3+(a0a3)x2+(a3a2)x+a2
Ax3=a1x4+(a0a3)x3+(a3a2)x2+a2x=(a1a1)x4+(a0a3)x3+(a3a2)x2+(a2a1)x+a1
=(a0a3)x3+(a3a2)x2+(a2a1)x+a1
C=A·B=b3Ax3+b2Ax2+b1Ax+b0A
=b3((a0a3)x3+(a3a2)x2+(a2a1)x+a1)
+b2(a1x3+(a0a3)x2+(a3a2)x+a2)
+b1(a2x3+a1x2+(a0a3)x+a3)
+b0(a3x3+a2x2+a1x+a0)
=((b3(a0a3))b2a1b1a2b0a3x3
+(b3(a3a2))(b2(a0a3))b1a1b0a2x2
+(b3(a2a1))(b2(a3a2))(b1(a0a3))b0a1x
+b3a1b2a2b1a3b0a0
 c3=((b3(a0a3))b2a1b1a2b0a3
 c2=(b3(a3a2))(b2(a0a3))b1a1b0a2
 c1=(b3(a2a1))(b2(a3a2))(b1(a0a3))b0a1
 c0=b3a1b2a2b1a3b0a0
由上述公式推导得到可以用A、B的系数的组合逻辑表示多项式C的系数。
上述GF16上的乘法运算可以用逻辑电路来实现,这里将进行上述GF16上的乘法运算的模块称为MUL16模块。例如,对于GF16上两个元素IN1和IN2的乘法,即OUT=IN1·IN2,可以MUL16模块来实现,如图6所示。
c)GF16上的逆运算
如果需要计算GF16上某个元素INVi的逆INVo,根据在上述b)中定义GF16上的乘法,可知:
INVi·INVo=1modq(x)
由上述公式即可计算出GF16上每个元素的逆,如表1所示,其中INVi表示GF16中的一个元素,INVo表示INVi在GF16上的逆:
表1:
  INVi   0x0   0x1   0x2   0x3   0x4   0x5   0x6   0x7   0x8   0x9   0xA   0xB   0xC   0xD   0xE   0xF
  INVo   0x0   0x1   0x9   0xE   0xD   0xB   0x7   0x6   0xF   0x2   0xC   0x5   0xA   0xE   0x3   0x8
上述表1可以用一个四输入四输出的查表电路来实现,这里称为INV16模块。INV16的内部逻辑用Verilog可以描述为:
always@(in)
begin
case(in)
4′h0:out=4′h0;
4′h1:out=4′h1;
4′h2:out=4′h9;
4′h3:out=4′hE;
4′h4:out=4′hD;
4′h5:out=4′hB;
4′h6:out=4′h7;
4′h7:out=4′h6;
4′h8:out=4′hF;
4′h9:out=4′h2;
4′hA:out=4′hC;
4′hB:out=4′h5;
4′hC:out=4′hA;
4′hD:out=4′h4;
4′hE:out=4′h3;
4′hF:out=4′h8;
endcase
end
这里INVi用in来表示,INVo用out来表示。
将上面的Verilog描述解释成逻辑门,即INV16可以用逻辑门表示,如图7所示。
(3)构造GF16上的元素b,c的一次多项式,并利用在步骤(2)中所定义的GF16上的加法、乘法和求逆运算进行运算,得到GF16上的元素b,c的逆p,q。
在步骤(1)中得到GF16上的两个元素b和c之后,根据步骤(2)中所定义的GF16上的加法、乘法和求逆运算,构造GF16上的一次多项式bx+c,假设bx+c在GF16上的逆为px+q,则这两个GF16上的一次多项式满足公式:
                  (px+q)(bx+c)modq(x)=1
这里,q(x)是指上述步骤(2)多项式q(x)。
从而得到p,q的表示:
                  p=b(9b2bcc2)-1
                  q=(bc)(9b2bcc2)-1
(4)构造线性变换T-1,将在步骤(3)中得到的GF16上的元素p,q映射到GF256上的元素,求得输入X在G256上的逆Y=T-1·{p[3:0],q[3:0]},其中,线性变换T-1和步骤(1)中线性变换T满足T-1·T=I其中
I = 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1
由此可得
T - 1 = 1 1 0 1 1 1 0 0 0 1 1 1 1 1 1 0 0 1 0 1 1 1 0 0 1 1 0 1 0 0 1 0 1 0 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 1 0 1 0 0 0 0 1 1 1 1 1 1 1 1
从GF16映射到GF256可以用逻辑电路来实现,如图8所示。
经过上面处理后的电路实现,其规模在400标准逻辑门左右,和优化之前的电路相比,电路规模减小了50%。
另外,为了进一步减少SBOX模块的规模,可以采用同一申请人在申请号为“2005100753990”的专利申请中公开的“AES加解密电路优化方法”,即在本发明的经过优化的GF256求逆电路的输入端连接第一选通开关,在该GF256求逆电路的输出端连接第二选通开关;将一解密仿射变换电路连接于GF256求逆电路的输入端且由第一选通开关控制该解密仿射变换电路是否选通,一加密仿射变换电路连接于GF256求逆电路的输出端且由第二选通开关控制该加密仿射变换电路是否选通;对两个选通开关进行控制,使得在加密模式下,仅使输出端的加密仿射变换电路选通,在解密模式下,仅使输入端的解密仿射变换电路选通,例如,使求逆电路输入端的选通开关的高位与解密仿射变换电路连接,求逆电路输出端的选通开关的低位与加密仿射变换电路连接,在加密模式下,控制两个选通开关同时处于低位,在解密模式下,控制两个选通开关同时处于高位。
图9是根据本发明的AES加解密电路复用Sbox模块优化电路的方框示意图。如图9所示,GF256求逆电路100包括映射电路101、GF16运算电路102以及逆映射电路103。其中,所述映射电路101,其根据如下公式(1)将GF256上的输入X映射为GF16上的元素b,c,
            {b[3:0],c[3:0]}=T·X              (1)
其中T是通过GF16上的既约的二次多项式p(x)=x2+x+A构造的线性变换,是一个8x8的矩阵,矩阵的元素是0或1,用逻辑电路来实现,T矩阵由A的取值决定,A是GF16上的常量元素。当A=9时,T表示成如下矩阵:
T = 1 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 1 1 0 0 0 0 1 0 0 1 0 1 1 1 0 0 0 0 1
GF16运算电路102,其根据在GF16上定义的加法、乘法、求逆运算,通过构造GF16上的一次多项式,利用分别完成在GF16上定义的加法、乘法、求逆运算功能的加法器、乘法器、GF16求逆电路,求得GF16上的元素b,c的逆元素p,q。其中,可以定义在GF16上的加法为按位异或;在GF16上的乘法为多项式乘法然后用q(x)取模,其中q(x)=x4+x+1作为本原多项式;在GF16上的求逆运算为,根据公式INVi·INVo=1modq(x),计算GF16上元素INVi的逆INVo。当A=9时,所得到的GF16上的逆元素p,q为:
                       p=b(9b2bcc2)-1
                       q=(bc)(9b2bcc2)-1
逆映射电路103,其通过线性变换T-1将GF16上的逆元素p,q映射到GF256上的逆元素Y=T1·(p,q)。其中,T-1·T=I,所述线性变换T-1用逻辑电路实现。
在图9中所示的GF256求逆电路100,其通过实现将GF256上的求逆转换成在GF16上的求逆,大大降低了电路规模。
图10示出了A=9时的GF256求逆电路的优化电路的简化结构图;图11示出了与图10相对应的GF256求逆电路的优化电路的具体结构图。如图10所示,Map101是实现从GF256到GF16的映射电路,iMap103是实现从GF256到GF16的逆映射的逆映射电路,GF16运算电路102实现如下运算:
                       p=b(9b2bcc2)-1
                       q=(bc)(9b2bcc2)-1
其中,×表示实现GF16上的乘法的乘法器,X2表示实现GF16上的两个相同的元素的平方的乘法器,×9表示实现GF16上的一个元素和十六进制的9相乘的乘法器,+表示实现GF16上的加法的加法器,X-1表示实现GF16上的求逆的GF16求逆电路。如图11所示,相同名字的箭头表示同样的信号线。其中,输入为X[7:0],输出为Y[7:0],Map是实现从GF256到GF16的映射电路,iMap是实现从GF256到GF16的逆映射的逆映射电路,MUL16是实现GF16上的乘法的乘法器,ADD16是实现GF16上的加法的加法器,INV16是实现GF16上的求逆的GF16求逆电路,INVo表示INVi在GF16上的逆。
图12示出了本发明的AES加解密电路中Sbox模块优化电路的另一实施例的方框示意图。该实施例是在图9所示的优化的GF256求逆电路的基础上,再通过增加第一选通开关2、第二选通开关3、加密仿射变换电路4、解密仿射变换电路5、控制单元6使Sbox模块进一步优化。其中,本发明的AES加解密电路复用Sbox模块包括本发明的图9所示的GF256求逆电路1、第一选通开关2、第二选通开关3、加密仿射变换电路4、解密仿射变换电路5、控制单元6。其中,第一选通开关2连接于求逆电路1的输入端,解密仿射变换电路5连接于第一选通开关2的高位1端;第二选通开关3连接于求逆电路1的输出端,加密仿射变换电路4连接于第二选通开关3的低位0端;控制单元6连接于两个选通开关的控制端,用来控制第一选通开关2和第二选通开关3:在加密模式下,控制单元6控制两个选通开关的高位1端关闭,低位0端开启,数据经第一选通开关2的0端,通过GF256求逆电路1进行在GF256上的求逆运算后,进入连接于第二选通开关3的0端的加密仿射变换电路4,在其中进行加密仿射变换A后输出;在解密模式下,控制单元6控制两个选通开关的低位0端关闭,高位1端开启,数据经连接于第一选通开关2的1端的解密仿射变换电路5,在其中进行解密仿射变换A-1后,经GF256求逆电路1在GF256上进行求逆运算,然后经第二选通开关3的1端输出。利用这种方法,将使AES加解密电路Sbox模块的电路规模进一步降低40%左右。
在上述实施例中,所述加密仿射变换电路、解密仿射变换电路可由逻辑电路形成。

Claims (13)

1.一种AES加解密电路中Sbox模块优化方法,其特征在于,
将Sbox模块的中的GF256求逆电路上的GF256上的求逆转变成GF16上的求逆。
2.根据权利要求1的优化方法,其特征在于,
GF256上的求逆转变成GF16上的求逆包括如下步骤:
步骤1:通过GF16上的既约的二次多项式p(x)=x2+x+A构造线性变换T,根据如下公式(1)将GF256上的输入X映射为GF16上的元素b,c:
                {b[3:0],c[3:0]}=T·X             (1)
其中A是GF16上的常量元素,T是一个8x8的矩阵,矩阵的元素是0或1,T矩阵由A的取值决定;
步骤2:构建GF16,定义GF16上的加法、乘法和求逆运算:
a)所述加法为按位异或;
b)所述乘法为多项式乘法然后用q(x)取模,其中q(x)=x4+x+1作为本原多项式;
c)所述求逆为根据公式INVi·INVo=1modq(x),计算GF16上元素INVi的逆INVo;
步骤3:构造GF16上的一次多项式,并利用上述GF16上的加法、乘法和求逆运算进行运算,得到GF16上的元素b,c的逆p,q,
步骤4:构造线性变换T-1,将GF16上的逆元素p,q映射到GF256上的逆元素Y=T1·(p,q),其中,线性变换T-1和步骤1中的线性变换T之间满足T-1·T=I,
其中,上述的线性变换T、T-1、GF16上定义的加法、乘法和求逆运算用逻辑电路来实现。
3.根据权利要求2所述的优化方法,其特征在于,
在所述步骤1中,取A=9,
则T表示成如下矩阵:
T = 1 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 1 1 0 0 0 0 1 0 0 1 0 1 1 1 0 0 0 0 1
在所述步骤3中,所得到的逆p,q为:
                       p=b(9b2bcc2)-1
                     q=(bc)(9b2bcc2)-1
4.根据权利要求1-3中之一所述的Sbox模块的优化方法,其特征在于,
在所述GF256求逆电路的输入端连接第一选通开关,在所述GF256求逆电路的输出端连接第二选通开关,
将一解密仿射变换电路连接于所述GF256求逆电路的输入端且由第一选通开关控制该解密仿射变换电路是否选通,一加密仿射变换电路连接于GF256求逆电路的输出端且由第二选通开关控制该加密仿射变换电路是否选通,
对两个选通开关进行控制,使得在加密模式下,只选通加密仿射变换电路,在解密模式下,只选通解密仿射变换电路。
5.根据权利要求4所述的Sbox模块的优化方法,其特征在于,
解密仿射变换电路连接于GF256求逆电路输入端的选通开关的高位,加密仿射变换电路连接于GF256求逆电路输出端的选通开关的低位;
在加密模式下,控制两个选通开关同时处于低位,在解密模式下,控制两个选通开关同时处于高位。
6.一种AES加解密电路中Sbox模块优化电路,包括GF256求逆电路,其特征在于,
GF256求逆电路包括映射电路、GF16运算电路以及逆映射电路,其中,
所述映射电路,用于将GF256上的输入X映射为GF16上的元素b,c;
所述GF16运算电路,其包括分别完成在GF16上定义的加法、乘法、求逆运算功能的加法器、乘法器、GF16求逆电路,所述GF16运算电路通过构造GF16上的一次多项式,利用所述加法器、乘法器、GF16求逆电路,求得GF16上的元素b,c的逆元素p,q;
所述逆映射电路,用于将GF16上的元素p,q映射到GF256上的逆元素。
7.根据权利要求6所述的Sbox模块的优化电路,其特征在于,
所述映射电路根据如下公式(1)完成映射:
        {b[3:0],c[3:0]}=T·X              (1)
其中T是通过GF16上的既约的二次多项式p(x)=x2+x+A构造的线性变换,是一个8x8的矩阵,矩阵的元素是0或1,其用逻辑电路来实现,T矩阵由A的取值决定,A是GF16上的常量元素。
8.根据权利要求6或7所述的Sbox模块的优化电路,其特征在于,
所述加法器完成的在GF16上定义的加法为按位异或;
所述乘法器完成的在GF16上定义的乘法为多项式乘法然后用q(x)取模,其中q(x)=x4+x+1作为本原多项式;
所述GF16求逆电路完成的在GF16上定义的求逆运算为,根据公式INVi·INVo=1modq(x),计算GF16上元素INVi的逆INVo。
9.根据权利要求6-8中之一所述的Sbox模块的优化电路,其特征在于,
所述逆映射电路,通过线性变换T-1求得GF256上的逆Y=T1·(p,q),其中,T-1·T=I,所述线性变换T-1用逻辑电路实现。
10.根据权利要求9所述的Sbox模块的优化电路,其特征在于,
取A=9,则T表示成如下矩阵:
T = 1 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 1 1 0 0 0 0 1 0 0 1 0 1 1 1 0 0 0 0 1
这时,所得到的GF16上的逆元素p,q为:
                      p=b(9b2bcc2)-1
                   q=(bc)(9b2bcc2)-1
11.根据权利要求6-10中之一所述的Sbox模块的优化电路,其特征在于,还包括第一选通开关和第二选通开关、加密仿射变换电路、解密仿射变换电路、控制单元,其中所述第一选通开关连接于所述GF256求逆电路的输入端,用于是否选通解密仿射变换电路,所述第二选通开关连接于所述GF256求逆电路的输出端,用于是否选通加密仿射变换电路,所述控制单元和两个选通开关的控制端相连,控制所述第一选通开关和第二选通开关,使得在加密模式下只选通加密仿射变换电路,在解密模式下只选通解密仿射变换电路。
12.根据权利要求11所述的Sbox模块的优化电路,其特征在于,所述第一选通开关的高位与所述解密仿射变换电路连接,所述第二选通开关的低位与所述加密仿射变换电路连接,在加密状态下,所述控制单元控制所述第一选通开关和第二选通开关同时处于低位,在解密状态下,所述控制单元控制所述第一选通开关和第二选通开关同时处于高位。
13.根据权利要求11或12所述的Sbox模块的优化电路,其特征在于,所述加密仿射变换电路、解密仿射变换电路均由逻辑电路形成。
CNB2005100851601A 2005-07-21 2005-07-21 一种AES加解密电路中Sbox模块优化方法及优化电路 Expired - Fee Related CN100561911C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2005100851601A CN100561911C (zh) 2005-07-21 2005-07-21 一种AES加解密电路中Sbox模块优化方法及优化电路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2005100851601A CN100561911C (zh) 2005-07-21 2005-07-21 一种AES加解密电路中Sbox模块优化方法及优化电路

Publications (2)

Publication Number Publication Date
CN1719766A true CN1719766A (zh) 2006-01-11
CN100561911C CN100561911C (zh) 2009-11-18

Family

ID=35931499

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100851601A Expired - Fee Related CN100561911C (zh) 2005-07-21 2005-07-21 一种AES加解密电路中Sbox模块优化方法及优化电路

Country Status (1)

Country Link
CN (1) CN100561911C (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102006161A (zh) * 2010-12-02 2011-04-06 北京航空航天大学 一种对称密钥加密的非线性变换方法及其实现装置
CN106452726A (zh) * 2016-06-22 2017-02-22 深圳华视微电子有限公司 一种s盒及其构造方法
CN106506142A (zh) * 2016-11-22 2017-03-15 北京航空航天大学 一种低复杂度的aes一体化加解密器实现方法
CN109818732A (zh) * 2019-03-12 2019-05-28 南京航空航天大学 一种动态路径s盒及可防御功耗攻击的aes加密电路
CN110166223A (zh) * 2019-05-22 2019-08-23 北京航空航天大学 一种国密sm4的快速软件实现方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102006161A (zh) * 2010-12-02 2011-04-06 北京航空航天大学 一种对称密钥加密的非线性变换方法及其实现装置
CN102006161B (zh) * 2010-12-02 2012-06-27 北京航空航天大学 一种对称密钥加密的非线性变换方法及其实现装置
CN106452726A (zh) * 2016-06-22 2017-02-22 深圳华视微电子有限公司 一种s盒及其构造方法
CN106506142A (zh) * 2016-11-22 2017-03-15 北京航空航天大学 一种低复杂度的aes一体化加解密器实现方法
CN109818732A (zh) * 2019-03-12 2019-05-28 南京航空航天大学 一种动态路径s盒及可防御功耗攻击的aes加密电路
CN109818732B (zh) * 2019-03-12 2021-05-11 南京航空航天大学 一种动态路径s盒及可防御功耗攻击的aes加密电路
CN110166223A (zh) * 2019-05-22 2019-08-23 北京航空航天大学 一种国密sm4的快速软件实现方法
CN110166223B (zh) * 2019-05-22 2021-08-13 北京航空航天大学 一种国密分组密码算法sm4的快速实现方法

Also Published As

Publication number Publication date
CN100561911C (zh) 2009-11-18

Similar Documents

Publication Publication Date Title
CN1172235C (zh) 扩充密钥发生器、加密/解密单元、扩充密钥产生方法
CN1663172A (zh) 为aes rijndael分组密码产生轮次密钥
CN1282325C (zh) 能快速解密的密码系统与方法
CN1898896A (zh) 高级加密标准算法的可编程数据加密引擎
CN1682479A (zh) 用于数据处理系统的有效加密和认证
CN1682483A (zh) 用于数据处理系统的有效加密和认证
CN1870499A (zh) 产生新的多变量公钥密码系统的方法
CN1801693A (zh) 分组加密算法中对短分组的处理方法
CN101060408A (zh) 消息认证码生成装置、消息认证码验证装置和认证系统
CN1121754A (zh) 数据加密的装置和方法
CN1483271A (zh) 安全通信包处理装置及其方法
CN1168041A (zh) 加密和解密方法以及加密和解密装置
CN1921382A (zh) 一种基于aes算法的加解密方法及加解密器
CN1719766A (zh) 一种AES加解密电路中Sbox模块优化方法及优化电路
CN1758591A (zh) 在加密系统中处理已屏蔽数据的方法、电路和程序产品
CN101079701A (zh) 高安全性的椭圆曲线加解密方法和装置
CN1338166A (zh) 公用与专用密钥加密方法
CN1287302C (zh) 加密电路和解密电路以及数据处理装置
CN1402920A (zh) 使用单向函数的数学约束型密钥的生成
CN1697369A (zh) 分组密码加密解密的方法及其加密解密器
CN1697365A (zh) 一种面向移动代理的安全传输方法
CN1180351C (zh) 强化错乱的分组密码加密方法
CN1835586A (zh) 流密码生成器、随机数生成方法、加密系统及加密方法
CN1592196A (zh) 数据共享方法、委托处理方法及装置
CN1735858A (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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20091118

Termination date: 20120721