一种s盒构造方法及s盒的制作方法

文档序号:7751840阅读:394来源:国知局
专利名称:一种s盒构造方法及s盒的制作方法
技术领域
本发明涉及一种信息传输与处理的方法,尤其涉及一种S盒构造方法及S盒,属于 通信技术领域。
背景技术
密码技术历史悠久,最初用于保护军事和外交通信安全。但是,随着通信网络和计 算机网络的普及,现代密码学的应用不再局限于政治、军事和外交,其商业价值和社会价值 得到了广泛的认同。保密是密码学的核心,而加密是获得信息保密的实用工具。密码算法分为公钥密码算法和私钥密码算法。私钥密码算法又分为分组密码算法 和序列密码算法。分组密码算法一般对消息进行分块加密,算法运行一次加密一个较大的 消息块。序列密码算法一般用一个短的密钥,用特定的密钥流生成算法,生成与要加密的消 息长度相当的密钥流序列,将密钥流序列与明文按位异或达到加密的目的。而解密方生成 同样的密钥流序列,与密文异或,即可得到明文。
设计安全、高效的密码算法,一直是各国争相研究的热点。在已有的许多分组密码 算法和序列密码算法中,S盒是必不可少的非线性组件。如美国加密标准中的AES分组密 码算法,欧洲通信标准中的SNOW 3G序列密码算法中,S盒是提供整个算法非线性性的主要 部分。因此,设计好的S盒,是设计一个密码算法的基础。同时,S盒的高效硬件实现,对于 密码算法的实现至关重要。尤其对于硬件资源受限的加、解密设备,要求S盒的硬件实现门 数尽可能的少。S盒的设计,一般基于某种结构的运算,例如AES的S盒是基于有限域上的求逆运 算。由于有限域上的运算,要消耗大量的资源,所以实现这种S盒,通常通过查表来实现。对 于8进8出的S盒,一般需要500门的电路规模。为此,我们提出了一个基于结构构造S盒的方法,该结构利用简单的易于硬件实 现的置换和非置换变换,构造具有良好密码学性质的S盒。同时我们基于这种结构构造了 一种高效的S盒硬件模块,其硬件规模是查表实现的1/5。

发明内容
本发明的技术方案的目的在于提供一种S盒构造方法及S盒,本方法是一种基于 结构构造S盒的方法,利用三个4进4出的变换,构造8进8出的置换S盒。这种S盒易于 软硬件实现且能够提供良好的代数、差分、非线性性等密码学性质,在分组密码算法和序列 密码算法的设计中都有着重要的作用,是不可缺少的组件。本发明的另一目的在于提供一 种S盒硬件模块,该模块规模较一般S盒模块小。本发明的技术方案为一种S盒构造方法,其步骤为1)选定一整数m以及三个η进η出的变换单元斤、P2> P3 ;其中P2为置换单元,η 为大于等于2的整数数;
2)将输入的2η比特信息χ分为两部分,记为Xl、x2,其中,X1为输入信息的高η位、 X2为输入信息的低η位;3)将X2经过P1变换后与X1异或,输出结果记作、;4)将、经过P2变换后与X2异或,输出结果记作t2;5)将、经过P3变换后与、异或,输出结果记作t3;6)将t3作为高η位,t2作为低η位连接成为一个2η比特的信息,记作t ;7)将信息t循环左移m位输出。进一步的,所述整数m的取值为1 2n-l ;所述Pp P3为η进η出的映射;所述η 为大于等于2的整数。进一步的,采用一个线序置换单元将信息t循环左移m位输出。 进一步的,所述步骤3) 5)中的变换采用组合逻辑电路实现;其中组合逻辑电路 的关键路径为X2 — P1 —异或一P2 —异或一P3 —异或。进一步的,所述步骤3) 5)中的变换采用时序电路实现。进一步的,所述采用时序电路实现变换的方法为1)将Pp P2, P3中的信息分别存储在一存储器中;2)根据P1的基地址,以X2为偏移地址读出所述存储器中存储的P1信息,将其与X1 进行异或后更新到一 η比特寄存器L中;3)根据P2的基地址,以该寄存器L的输出作为偏移地址,读取所述寄存器中存储 的P2信息,将其与X2进行异或后更新到一 η比特寄存器R中;4)根据P3的基地址,以该寄存器R的输出作为偏移地址,读取所述寄存器中存储 的P3信息,将其与该寄存器L进行异或。一种S盒,其特征在于包括三个异或单元Α、B、C,三个变换单元P^ P2、P3, 一个线 序置换单元;其中异或单元A的两输入端分别与一 η比特信息数据端和变换单元P1的输出 端连接,异或单元A的输出端分别与变换单元P2的输入端和异或单元C的输入端连接;另 一 η比特信息数据端分别与变换单元P1的输入端和异或单元B的输入端连接;异或单元B 的另一输入端与变换单元P2的输出端连接;异或单元B的输出端分别与所述线序置换单元 的输入端和变换单元P3的输入端连接;异或单元C的输出端与所述线序置换单元的输入端 连接;变换单元P3的输出端与异或单元C的输入端连接;其中P2为置换单元,η为自然数。进一步的,S盒为8比特输入接口和8比特输出接口 ;所述η取值为4 ;所述PpP3 为4进4出的变换。一种S盒,其特征在于包括三个异或单元Α、B、C,三个变换单元P^ P2、P3, 一个线 序置换单元,两个寄存器L、R,一存储器;其中变换单元Pp P2、P3分别通过基地址线与所述 存储器连接;异或单元A的两输入端分别与一 η比特信息数据端和变换单元P1的输出端连 接,且其输出端与所述寄存器L的输入端连接;另一η比特信息数据端分别与变换单元P1W 输入端和异或单元B的输入端连接;异或单元B的另一输入端与变换单元P2的的输出端连 接,且其输出端与所述寄存器R的输入端连接;所述寄存器R的输出端分别与变换单元P3的 输入端和所述线序置换单元的输入端连接;所述寄存器L的输出端分别与异或单元C的输 入端和变换单元P2的输入端连接;异或单元C的另一输入端与变换单元P3的输出端连接,且其输出端与所述线序置换单元的输入端连接,其中P2为置换单元,η为自然数。进一步的,S盒为8比特输入接口和8比特输出接口 ;所述η取值为4 ;所述P1J3 为4进4出的变换。具体的,针对于8进8出的S盒具体构造方法为a.选定4进4出的变换P^ P2、P3,其中P2为置换;b.选定一个整数m。对于任意给定的8比特信息xeF28,经S盒变换后的信息y = S(χ)计算过程如下1)取χ的高4位为X1,低4位为x2,Xl、X2作为下一步的输入;2)令X2经过P1变换后与X1异或,结果记作、,输出、、X2作为下一步的输入;
3)令、经过P2变换后与X2异或,结果记作t2,输出、、t2作为下一步的输入;4)令t2经过P3变换后与、异或,结果记作t3,输出t3、t2作为下一步的输入;5)将t3作为高4位,t2作为低4位连接成为一个8比特的信息记做t ;将t循环 左移m位输出。所述S盒结构分为三层,将输入的8比特分做两部分,在三层中依次对两部分值进 行更新。在最后一步中,将两部分值组合后输出。所述步骤a中,选取的变换应由易于计算机实现、硬件实现的基本运算构造。所述步骤a中,P2为置换,P” P3可以是置换,也可以是非置换。所述步骤b中,m的取值范围为1到7之间的整数。所述步骤2-4中,接收之前步骤的输出作为输入,对两个输入的值中的一个进行更新。所述步骤2-4中,更新方法为将不需更新的数值经4进4出的变换作用后异或到 需要被更新的数值上,得到的值替换原来的数值。所述步骤5中,将前一步骤的输出两部分值组合后输出。S盒的设计方法有很多种,例如AES的S盒是利用有限域&上的多项式/(X) = +构造。这种方法构造的S盒如果硬件实现的时候用有限域运算来实现,效率非常低,所 以通常用查表的方法实现,一般需要500门电路。而本发明方法构造的8进8出的S盒,由实现代价较小的小规模变换多层组合而 成,只需大约100门电路即可。使用本发明方法构造的S盒构造算法,不仅能够提供良好的 密码学性质,并且硬件实现效率比其它方法更高。本发明的另一目的为一种高效的S盒硬件模块,接口为8比特输入和8比特输出。 包括3层运算和一个线序置换单元,其中每一层包括一个4比特到4比特的变换和两个4 比特数的按位异或运算。其硬件实现结构分为两种对于方式1)纯组合逻辑电路实现方式,模块内包括三个异或单元和三个查表单 元(即4比特到4比特的变换单元)P^ P2、P3和一个线序置换单元<<< m。所述异或单元完成4比特的二输入异或,异或单元的电路实现简单,是硬件设计 的基本组件,不是本发明所强调的内容。所述查表单元完成对4比特查表运算,相当于对4比特索引值进行检索。例如2个非门(非逻辑电路)可对2比特信息实现一种查表,即输入为二进制“00”时输出为“11”; 输入为二进制“01”时输出为“10”;输入为二进制“10”时输出为“01”;输入为二进制“11” 时输出为“00”。依次该查表运算可表示为二进制形式 对应的十进制形式为 对于4比特查表可依此类推。实际上,当前的硬件电路设计普遍采用硬件描述语 言,如Ve rilog或VHDL等,只需对输出进行定义后,如Case (input)OO :out <= 11 ;Ol :out <= 10 ;10 :out <= Ol ;11 :out <= OO ;Endcase即可进一步通过综合工具得到实际逻辑结构得到ΡρΡ2、Ρ3的电路结构。在硬件实现时,电路是否满足时序约束的一个重要指标就是最长组合逻辑路径时 延,也称为关键路径。该方式关键路径为χ2 — P1 —异或一P2 —异或一P3 —异或。通常一 个逻辑门的时间延迟远小于ns级。所以,对于方式1)纯组合逻辑电路的实现,可以在远小 于一个时钟周期的时间内保证所有门电路翻转完毕,从而完成整个查表过程。对于方式2)时序电路实现方式,则需要设计有限状态机以多个时钟周期完成查 表。模块中包括存储Pi、p2、P3内容的存储器,用于存储中间计算结果的寄存器资源(至少 为8个1比特,如果为η比特,且能被q整除(n、q为自然数),则硬件描述时可以定义为任 意n/q个q比特寄存器,无论如何划分,在工作时须保证η/2比特寄存器同时更新),三个异 或单元、以及寄存器更新控制逻辑。所述查表步骤至少分为三个时钟周期。设输入为X,高4位为X1,低4位为χ2,设寄存器资源为8比特,分为一个4比特的 L和一个4比特的R分别进行定义,则查表处理步骤为1) SP1内容存在的基地址为P1J3ase,以X2偏移地址读出相应地址中的内容,与X1 进行异或后更新到4比特寄存器L中;2)将寄存器L的输出作为偏移地址,选中P2中相应的内容(基地址为P2 base), 读出数据后与X2进行异或后更新到4比特寄存器R中;3)将寄存器R的输出作为偏移地址,选中P3中相应的内容(基地址为P3 base), 读出的数据与4比特寄存器L进行异或后与R的输出拼接为T,对T按左循环移位m进行线 序排列,输出y。根据上述步骤中各操作输入、输出的依存关系,可知方式2)的实现至少需3个时 钟周期。由于各步骤间采用寄存器存储中间结果,如此电路实现代价约80门,关键路径相 比方式1)更短,但执行时间相对长许多,不适合用于高速实现场合。与现有技术相比,本发明具有的积极效果为
该结构利用简单的易于硬件实现的置换和非置换变换,构造具有良好密码学性质 的S盒。同时基于这种结构构造了一种高效的S盒硬件模块,其硬件规模是通常查表实现 方法的1/5。


图1、本发明的S盒结构图;图2、实现方式1)的电路结构示意图;图3、实现方式2)的电路结构示意图;图4、实现方式2)的各步实现电路结构示意图; (a)方式2)的步骤1的实现数据路径,(b)方式2)的步骤2的实现数据路径,(c)方式2)的步骤3的实现数据路径。
具体实施例方式现结合附图,以8进8出的置换S盒为例,对本发明进行进一步详细描述本发明基于结构设计的S盒具体结构如附图1所示。S盒结构分为三层,将输入的 8比特分做两部分,在三层中依次对两部分值进行更新。最后将两部分值组合后输出。利用本发明的S盒结构构造S盒,首先要选定3个4进4出的变换ΡρΡ2、Ρ3,其中 P2为置换。3个变换均采用计算机基本运算复合构造即可。第二,选定整数值m。在选定上述参数后,对于输入为X,则输出y = S(X)具体计算过程如下χ = X1 Il X2ti = X1 P1 (X2)t2 = X2 P2 (ti)t3 = ti P3 (t2)y = (t3 Il t2) <<< m其中II表示比特串的连接操作,X1为χ的高4比特,X2为χ的低4比特。下面,给出一个具体实施例并分析它的硬件实现效率及密码学性质。1.参数选取令m = 5。非置换P1对于输入χ = (x3, x2, X1, χ。),输出y = (y3,y2,Y1, y0)的代数表达式为y3 = χ3Χι+ΧιΧ0+Χ3+χι+1 ;J2 = x2x1+x2x0+x0+x2 ;Y1 = x3x0+x2x0+x0+x2 ;y0 = x3x1+x3x2+x3+xI+1 ο即 P1 = {9,15,0,14,15,15,2,10,0,4,0,12,7,5,3,9}。置换P2对于输入χ = (x3,x2 x1 X0),输出y = (y3,y2,y” y0)的代数表达式为y3 = X2X1X0+X3XiXo+X3X0+X3X1+X3X2+X2+X1 + 1 ;Y2 = Χ3Χ2Χ0+Χ3Χ2Χ1+Χ3Χ0+Χ1Χ0+Χ2Χ1+Χ0+Χ1+Χ2 ;J1 = Χ3Χ2Χι+ΧιΧ0+Χ2Χ0+Χ3Χ0+Χ3Χ1+Χ3Χ2+Χ1+Χ2+Χ3 ;
y。= X^^o + X^^XgX^XgXo + XgX^Xg + X^Xg ;即卩2= {8,13,6,5,7,0,12,4,11,1,14,10,15,3,9,2}。非置换P3对于输入χ = (x3, x2, X1, xQ),输出ι = (y3,J2, J1, y0)的代数表达式为y3 = X1XfX2Xc^X1 ;J2 = X3Xo+X3Xi+X0 ;J1 = x2x1+x3x1+x2+l ;y0 = x2x0+x3x2+x3 ;即 P3= {2,6,10,6,0,13,10,15,3,3,13,5,0,9,12,13}。
2. S盒表格选定上述变换及m后,对于所有xeF28,以χ的高4位为行号,低4位为列号,可计 算S盒输出并构造表1:表1、S盒输出表 表格中数字采用16进制表示。3. S盒各项密码学指标上述S盒的各项密码学指标为差分均勻性为8,非线性度为96,代数免疫度为2。 对于输入 X = (x7, X6, X5, X4, X3, X2, X1, X0),输出 y = (y7, y6, y5, y4, y3, y2, Y1, y0), 输出的每一个分量关于所有输入分量的表达式为J7 — X4X3X2Xi xO
+XgXi^X 1乂0+乂3乂5义1义0+义6义5义3义1+义7义2 X 1义0+义7义3义1义0+义7义3义2义0X0+X7X4X2 X1+X7X5X2X0+X7X5X2 X1+义7义6义2 义0+义7义6义3义0 +X^XgXgX 1+乂7义6义3义2+义3义2 X 1+义4义1义0+义4义2义1+义4义3义2+义4义3义1
+X7X4+X7X6 X7X3+X7Xι+X2+X7Ye — X5X3X2X1X0+X6X3X2X1X0+X7X3X2X1X0+X3X2X1X0+X7X5X2X0+X7X5X2X1+X5X3X2Xc^X5X3X1 Xc^X5X3X2X1+X7X6X2Xc^X6X2X1XoiX6X3X2Xo+X6X3X2X^X6X5X1 Xc^X6X5X3X1+X7X6X3Xc^X2X1XoiX7X2XoiX3X1 X0+^^^^3义0+义4义1义0+义4义2义1+义4义3义1+义5义1义0+义7义5义0+义7义5义2+义5义2义0+X5X2X1+X7X6X5+X6X5X3+X6X5X1+X7X3X1+X7X3X2+X7X0+X7X1+X1X0
+X2X2+X7X2 X2X0+X7X4+X4X3+X4X1+X7X5+X5X0+X5X2
+X5X4+X7X6+X6X0+X6X2 + X6X4+X6X5+X7X3+X0+X1+X2+X4+X5+X6y5 — X4X3X2X1X0+X5X3X2X1X0+X6X3X2X1X0+X5X2X1X0+X5X3X1X0+X5X3X2X0
+X5X4X2Xc^X5X4X2XAX6X2X1XoiX6X3X1 Xc^X6X5X3X1+X6X3X2Xi+X6X4X3Xo+X6X4X2Xo~^X6X5X3X2~^X5X3X1~^X5X4X0~^X4X1X0~^X4X2X0+X4X2X1+X4X3Xo+X4X3Xi+X5X3Xo~^X5X4X2~^X6X5X1~^X6X2X1~^X6X5X3
+X2X2+X5X3+X3X1+X5X1+X2X1+X2X0+X4X0+X4X1+X4X2
+1y4 — XsXgXgXiXo+XsXqXgXiXo+XgXsXgXiXo+XgXqXgXiXo+XgXqXsXgXo+XTXgXgXiXo+17^^12乂1乂()+乂7乂5乂3乂1乂()+乂7乂5乂3乂2义0+义4义2义1义0+义4义3义2义1+义4义3义1义0+X4X3X2Xo+X5X2X1X0~^X5X3X2X1~^X5X3X1X0~^X5X4X2X1~^X5X4X3X1
+X6X4X3XoiX6X3X2Xc^X6X3X2X1+X6X4X2X^X6X4X3X1+X6X5X2Xi+XgXgX^Xg+XgXgX^^X 1+X7X2 X1 义0+义7义6义3义0+义7义3义2 义0+义7义6义3义2+X^XgX^X ι+X7X3X2 X ι+X7X4X2X ι+X7X4X3X0+X7X5X3X2+X7X5X3X ι
+Χ6Χ4+Χ6Χ3+Χ7Χ4+Χ7Χ6+Χ7Χ3+Χ7Χ5+Χ2+Χ5+Χ3+1y3 — ^^^χ^χο+χ^χ^χ^χ^χο+χ^χ^χι^χο+χ^χ^χ^χ^χ^+χ^χ^χ^χ^χο+χ^χ^χ^χ^χο
+X6X4X3X1Xc^X6X4X3X2XoiX6X5X3X2XoiX6X5X3X2X1+X7X4X2xI X0+X7X4X3X1 xO+Χ7Χ5Χ3Χ1Χ0+Χ7Χ6Χ3Χ2ΧΟ^Χ4^2Χ1Χ0^Χ4Χ3Χ2Χ0^Χ5Χ4-^3Χ2~'~^-5Χ4Χ1Χ0+χ
+Xfi
+Xfi+X+Xk Χ^,ΧβΧι +X+X6X5X1 Χ0+Χ6Χ5Χ3Χο+Χ6Χ5Χ3Χ2^Χ6Χ5Χ4Χ0~^Χ6Χ5Χ4Χ1^Χ6Χ5Χ4Χ3+乂7^^2义1乂0+义7乂3义2义0+义7义3义1义0+义7义4义1义0+义7乂5义3义1+义7义5义4义1
〔0165]+χ Xq+X ^XgX! +叉4Χ3Χ0+Χ4Χ3Χ2+Χ5Χ1X0+X5X2X0+X5X2X1 +X5X4X1

+X7X2X0+X7X3X2+X7X3X0+X7X4X1+X7X5X4+X7X5X3+X7X6X0+X7X6X4+Χ7Χ6Χ3+^3Χ0+Χ7Χ0+Χ6Χ3+Χ2Χ1+Χ3Χ2+Χ4Χ0+Χ4Χ3+Χ5Χ2+Χ5Χ1+Χ5Χ0+Χ5Χ3+Χ6Χ2+Χ6Χ5+Χ7Χ2+Χ7Χ5+Χ0+Χ6+Χ7+Χ3+1Y2 —+X6X5X3X1Xc^X7X4X3X1 Xc^X7X5X2X1 XoiX7X5X3X2X0^X7X6X2X1 Xc^X7X6X3X1 X0+X^XgX^XgX Ι+Χ3Χ') X 1义0+义4义2义1义0+^^4义3义2义0+义4义3义1义0+义5义2义1义0
〔0175]+Χ7Χ2Χ2Χ1+Χ7Χ4Χ3Χ0+Χ7Χ5Χ3Χ0+Χ7Χ5Χ1Χ0+Χ7Χ5Χ4Χ1+Χ7Χ5Χ2Χ1
〔01 76]+X^XgXgX 1+义7义6义1义0+义7义6义2义1+义7义6义3义1+义7义6义4义1+义7义6义5义3
+XgX^Xg+Χ6Χ5Χ1+Χ7Χ1Χ0+Χ7Χ3Χ0+Χ7Χ4Χ2+Χ7Χ4Χ3+Χ7Χ5Χ4+Χ7Χ6Χ4
+ X4XQ+X2X0+X7X2+X4X1+X2X1+X3X1+X5X0+X5X1+X5X2+X5X4+X6X5J1 — XsXjaXiXo+XsX^XsX^Xi+x^xggXiXo+x^xgi^Xi+x^XsXsXgXo+XTXsX^XiXo+X4X3X2XAX5X3X2X1^X5X3X2X1+X5WXc^X5X4X2X1+X5X^X3X2
+X^XgXl ^^0+^^^^2义2乂0+义7义6义3义0+义7义6义3义1+义7义6义3^^2+义7义6义4义3
C。1 9θ1+Xi^XgX ]_+乂5乂4乂1+乂4乂1义0+"^5义1乂0+义5乂4乂0+乂5兄)乂0+叉5乂3乂2+乂5乂4叉2
+X6X1Xq+X6X2Xo+X6X2X1^X6X3X2^X6X4X3^X6X4X0~'~X6X4X1~'~X6X5X2
+XgXgXi+XyXgX 1+X7X5X1+X7X2X0+X7X5X4+X7X4X3+X7X4X2+X7X6X0
+X7X4+X7X6+X7+X5+X
Yo —
+X6X2X1 +^^^^!}^2乂1+乂7乂2义1义0+义7义3义1义0+义7义3义2义1+义7义4义2义0+义7义4义3义0 +X7X5X2X1+X7X5X3X2+X2X1X0+X3X1X0+X3X2X0+X3X2X1+X4X1X0 +X4X3X1+X4X3X2+X5X2XO~^X5X2X1~^X5X3X0~^X5X4X1~^X5X4X0~^X5X4X2
+X5X4X3+X6X2Xo^X6X2X1^X6X3X0^X6X5X3^X6X3X1~'~X6X4X0~'~X6X4X2+XgXgXl+XgXgX^^+XyXgXQ+XyXgXg+XyXgXi+XyXiXQ+XyXgXg+XyXsXA+^^7^^4^^0+^^^^4^^2+乂7乂5乂1+乂3乂1+乂5乂1+乂2义1+义3义0+义3义2+义4义3+x4x1+x5x0+x5x2+x6x5+x5x4+x6x0+x6x2+x6x3+x7x0
+X7X2+X7X6+X7X3+X7X1+X7X4+X1+X4+X5+X7表2给出了 S盒的每一个分量函数中各个次数的项出现的个数及数学期望值。表2、S盒的每一个分量函数中各个次数的项出现的个数及数学期望值表 4. S盒硬件实现效率分析所述一种高效的S盒硬件模块可采用两种方式实现1)纯组合逻辑电路实现方式;2)时序电路实现方式。对于实现方式1),所述接口为8比特输入和8比特输出,模块内包括三个异或单元 Α、B、C和三个查表单元P1、P2、P3和一个线序置换单元“< < < m”。如图2所示。在硬件实现时,电路是否满足时序约束的一个重要指标就是最长组合逻辑路径时 延,也称为关键路径。该方式关键路径为χ2 — P1 —异或一P2 —异或一P3 —异或。通常一 个逻辑门的时间延迟远小于ns级。所以,对于方式1)纯组合逻辑电路的实现,可以在远小 于一个时钟周期的时间内保证所有门电路翻转完毕,从而完成整个查表过程。该电路的查表时间小于一个时钟周期,若输出在每个时钟周期当即寄存,则在 80MHz时钟下,实现吞吐率为640Mbps (8*80MHz),实现面积约100门,查表过程全部采为组 合逻辑实现。对于方式2)Pp P2, P3内容存储在存储器中的时序电路实现方式,则需要设计有限 状态机以多个时钟周期完成查表。设输入为X,高4位为X1,低4位为X2,则查表处理过程 如图3所示,至少需要三次寄存,每次需一个时钟周期来更新相应的寄存器,具体工作电路 如图4所示。作为一种实施例,如P” P2、P3内容存放在RAM介质中,则处理步骤如下1)图4(a),设P1内容存在的基地址为P1J3ase,以X2偏移地址读出相应地址中的 内容,与X1进行异或后更新到4比特寄存器L中;2)图4(b),设P2内容存在的基地址为P2 base,以L的内容为偏移地址读出相应地 址中的内容,与X2进行异或后更新到4比特寄存器R中;3)图4(c),将寄存器R的输出作为偏移地址,选中P3中相应的内容(基地址为P3 base),读出数据后与4比特寄存器L进行异或后与R拼接为T,对T按左循环移位m进行线 序排列,输出y。方式2)的实现至少需3个时钟周期。由于各步骤间采用寄存器存储中间结果,如 此电路逻辑部分实现代价约80门(不包括RAM单元),关键路径相比方式1)更短,但执行 时间相对长许多,例如在80MHz时钟下,实现吞吐率最高为213Mbps (8比特*80MHz/3),采用 时序逻辑电路实现。
权利要求
一种S盒构造方法,其步骤为1)选定一整数m以及三个n进n出的变换单元P1、P2、P3;其中P2为置换单元,n为自然数;2)将输入的2n比特信息x分为两部分,记为x1、x2,其中,x1为输入信息的高n位、x2为输入信息的低n位;3)将x2经过P1变换后与x1异或,输出结果记作t1;4)将t1经过P2变换后与x2异或,输出结果记作t2;5)将t2经过P3变换后与t1异或,输出结果记作t3;6)将t3作为高n位,t2作为低n位连接成为一个2n比特的信息,记作t;7)将信息t循环左移m位输出。
2.如权利要求1所述的方法,其特征在于所述整数m的取值为1 2n-l;所述Ρ”Ρ3* η进η出的映射;所述η为整数、且η彡2。
3.如权利要求1或2所述的方法,其特征在于采用一个线序置换单元将信息t循环左 移m位输出。
4.如权利要求1或2所述的方法,其特征在于所述步骤3) 5)中的变换采用组合逻 辑电路实现;其中组合逻辑电路的关键路径为x2 — P1 —异或一P2 —异或一P3 —异或。
5.如权利要求1或2所述的方法,其特征在于所述步骤3) 5)中的变换采用时序电 路实现。
6.如权利要求5所述的方法,其特征在于所述采用时序电路实现变换的方法为1)将?工、‘。中的信息分别存储在一存储器中;2)根据P1的基地址,以X2为偏移地址读出所述存储器中存储的P1信息,将其与X1进 行异或后更新到一 η比特寄存器L中;3)根据P2的基地址,以该寄存器L的输出作为偏移地址,读取所述寄存器中存储的P2 信息,将其与X2进行异或后更新到一 η比特寄存器R中;4)根据P3的基地址,以该寄存器R的输出作为偏移地址,读取所述寄存器中存储的P3 信息,将其与该寄存器L进行异或。
7.一种S盒,其特征在于包括三个异或单元Α、B、C,三个变换单元Pp P2、P3, 一个线序 置换单元;其中异或单元A的两输入端分别与一 η比特信息数据端和变换单元P1的输出端 连接,异或单元A的输出端分别与变换单元P2的输入端和异或单元C的输入端连接;另一 η比特信息数据端分别与变换单元P1的输入端和异或单元B的输入端连接;异或单元B的 另一输入端与变换单元P2的输出端连接;异或单元B的输出端分别与所述线序置换单元的 输入端和变换单元P3的输入端连接;异或单元C的输出端与所述线序置换单元的输入端连 接;变换单元P3的输出端与异或单元C的输入端连接;其中P2为置换单元,η为自然数。
8.如权利要求7所述的S盒,其特征在于S盒为8比特输入接口和8比特输出接口; 所述η取值为4 ;所述Pp P3为4进4出的变换。
9.一种S盒,其特征在于包括三个异或单元Α、B、C,三个变换单元Pp P2、P3, 一个线序 置换单元,两个寄存器L、R,一存储器;其中变换单元Pp P2、P3分别通过基地址线与所述存 储器连接;异或单元A的两输入端分别与一η比特信息数据端和变换单元P1W输出端连接, 且其输出端与所述寄存器L的输入端连接;另一 η比特信息数据端分别与变换单元P1的输入端和异或单元B的输入端连接;异或单元B的另一输入端与变换单元P2的的输出端连接, 且其输出端与所述寄存器R的输入端连接;所述寄存器R的输出端分别与变换单元P3的输 入端和所述线序置换单元的输入端连接;所述寄存器L的输出端分别与异或单元C的输入 端和变换单元P2的输入端连接;异或单元C的另一输入端与变换单元P3的输出端连接,且 其输出端与所述线序置换单元的输入端连接,其中P2为置换单元,η为整数、且η ^ 2。
10.如权利要求9所述的S盒,其特征在于S盒为8比特输入接口和8比特输出接口 ; 所述η取值为4 ;所述P” P3为4进4出的变换。
全文摘要
本发明公开了一种S盒构造方法及S盒,属于通信技术领域。本方法为1)选定一整数m以及三个n进n出的变换单元P1、P2、P3;其中P2为置换单元,n为大于等于2的整数;2)取输入的2n比特信息x的高n位记为x1、低n位记为x2;3)将x2经P1变换后与x1异或,输出记作t1;4)将t1经P2变换后与x2异或,输出记作t2;5)将t2经P3变换后与t1异或,输出记作t3;6)将t3作为高n位,t2作为低n位连接成为一个2n比特的信息,记作t;7)将信息t循环左移m位输出。本发明的S盒包括三个异或单元A、B、C,三个变换单元P1、P2、P3,一个线序置换单元。与现有技术相比,本发明的S盒方法易于实现,且所构造的S盒具有良好密码学性质、运行效率高。
文档编号H04L9/06GK101848081SQ201010204508
公开日2010年9月29日 申请日期2010年6月11日 优先权日2010年6月11日
发明者冯秀涛, 吴文玲, 周春芳 申请人:中国科学院软件研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1