CN101848081A - 一种s盒构造方法及s盒 - Google Patents

一种s盒构造方法及s盒 Download PDF

Info

Publication number
CN101848081A
CN101848081A CN 201010204508 CN201010204508A CN101848081A CN 101848081 A CN101848081 A CN 101848081A CN 201010204508 CN201010204508 CN 201010204508 CN 201010204508 A CN201010204508 A CN 201010204508A CN 101848081 A CN101848081 A CN 101848081A
Authority
CN
China
Prior art keywords
unit
input
xor
output
bit
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
CN 201010204508
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.)
Institute of Software of CAS
Original Assignee
Institute of Software 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 Institute of Software of CAS filed Critical Institute of Software of CAS
Priority to CN 201010204508 priority Critical patent/CN101848081A/zh
Priority to PCT/CN2010/001048 priority patent/WO2011153666A1/zh
Publication of CN101848081A publication Critical patent/CN101848081A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Error Detection And Correction (AREA)

Abstract

本发明公开了一种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盒具有良好密码学性质、运行效率高。

Description

一种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以及三个n进n出的变换单元:P1、P2、P3;其中P2为置换单元,n为大于等于2的整数数;
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位输出。
进一步的,所述整数m的取值为1~2n-1;所述P1、P3为n进n出的映射;所述n为大于等于2的整数。
进一步的,采用一个线序置换单元将信息t循环左移m位输出。
进一步的,所述步骤3)~5)中的变换采用组合逻辑电路实现;其中组合逻辑电路的关键路径为:x2→P1→异或→P2→异或→P3→异或。
进一步的,所述步骤3)~5)中的变换采用时序电路实现。
进一步的,所述采用时序电路实现变换的方法为:
1)将P1、P2、P3中的信息分别存储在一存储器中;
2)根据P1的基地址,以x2为偏移地址读出所述存储器中存储的P1信息,将其与x1进行异或后更新到一n比特寄存器L中;
3)根据P2的基地址,以该寄存器L的输出作为偏移地址,读取所述寄存器中存储的P2信息,将其与x2进行异或后更新到一n比特寄存器R中;
4)根据P3的基地址,以该寄存器R的输出作为偏移地址,读取所述寄存器中存储的P3
信息,将其与该寄存器L进行异或。
一种S盒,其特征在于包括三个异或单元A、B、C,三个变换单元P1、P2、P3,一个线序置换单元;其中异或单元A的两输入端分别与一n比特信息数据端和变换单元P1的输出端连接,异或单元A的输出端分别与变换单元P2的输入端和异或单元C的输入端连接;另一n比特信息数据端分别与变换单元P1的输入端和异或单元B的输入端连接;异或单元B的另一输入端与变换单元P2的输出端连接;异或单元B的输出端分别与所述线序置换单元的输入端和变换单元P3的输入端连接;异或单元C的输出端与所述线序置换单元的输入端连接;变换单元P3的输出端与异或单元C的输入端连接;其中P2为置换单元,n为自然数。
进一步的,S盒为8比特输入接口和8比特输出接口;所述n取值为4;所述P1、P3为4进4出的变换。
一种S盒,其特征在于包括三个异或单元A、B、C,三个变换单元P1、P2、P3,一个线序置换单元,两个寄存器L、R,一存储器;其中变换单元P1、P2、P3分别通过基地址线与所述存储器连接;异或单元A的两输入端分别与一n比特信息数据端和变换单元P1的输出端连接,且其输出端与所述寄存器L的输入端连接;另一n比特信息数据端分别与变换单元P1的输入端和异或单元B的输入端连接;异或单元B的另一输入端与变换单元P2的的输出端连接,且其输出端与所述寄存器R的输入端连接;所述寄存器R的输出端分别与变换单元P3的输入端和所述线序置换单元的输入端连接;所述寄存器L的输出端分别与异或单元C的输入端和变换单元P2的输入端连接;异或单元C的另一输入端与变换单元P3的输出端连接,且其输出端与所述线序置换单元的输入端连接,其中P2为置换单元,n为自然数。
进一步的,S盒为8比特输入接口和8比特输出接口;所述n取值为4;所述P1、P3为4进4出的变换。
具体的,针对于8进8出的S盒具体构造方法为:
a.选定4进4出的变换P1、P2、P3,其中P2为置换;
b.选定一个整数m。
对于任意给定的8比特信息
Figure BSA00000162002500031
经S盒变换后的信息y=S(x)计算过程如下:
1)取x的高4位为x1,低4位为x2,x1、x2作为下一步的输入;
2)令x2经过P1变换后与x1异或,结果记作t1,输出t1、x2作为下一步的输入;
3)令t1经过P2变换后与x2异或,结果记作t2,输出t1、t2作为下一步的输入;
4)令t2经过P3变换后与t1异或,结果记作t3,输出t3、t2作为下一步的输入;
5)将t3作为高4位,t2作为低4位连接成为一个8比特的信息记做t;将t循环左移m位输出。
所述S盒结构分为三层,将输入的8比特分做两部分,在三层中依次对两部分值进行更新。在最后一步中,将两部分值组合后输出。
所述步骤a中,选取的变换应由易于计算机实现、硬件实现的基本运算构造。
所述步骤a中,P2为置换,P1、P3可以是置换,也可以是非置换。
所述步骤b中,m的取值范围为1到7之间的整数。
所述步骤2-4中,接收之前步骤的输出作为输入,对两个输入的值中的一个进行更新。
所述步骤2-4中,更新方法为将不需更新的数值经4进4出的变换作用后异或到需要被更新的数值上,得到的值替换原来的数值。
所述步骤5中,将前一步骤的输出两部分值组合后输出。
S盒的设计方法有很多种,例如AES的S盒是利用有限域上的多项式
Figure BSA00000162002500042
构造。
这种方法构造的S盒如果硬件实现的时候用有限域运算来实现,效率非常低,所以通常用查表的方法实现,一般需要500门电路。
而本发明方法构造的8进8出的S盒,由实现代价较小的小规模变换多层组合而成,只需大约100门电路即可。使用本发明方法构造的S盒构造算法,不仅能够提供良好的密码学性质,并且硬件实现效率比其它方法更高。
本发明的另一目的为一种高效的S盒硬件模块,接口为8比特输入和8比特输出。包括3层运算和一个线序置换单元,其中每一层包括一个4比特到4比特的变换和两个4比特数的按位异或运算。其硬件实现结构分为两种:
对于方式1)纯组合逻辑电路实现方式,模块内包括三个异或单元和三个查表单元(即4比特到4比特的变换单元)P1、P2、P3和一个线序置换单元<<<m。
所述异或单元完成4比特的二输入异或,异或单元的电路实现简单,是硬件设计的基本组件,不是本发明所强调的内容。
所述查表单元完成对4比特查表运算,相当于对4比特索引值进行检索。例如2个非门(非逻辑电路)可对2比特信息实现一种查表,即输入为二进制“00”时输出为“11”;输入为二进制“01”时输出为“10”;输入为二进制“10”时输出为“01”;输入为二进制“11”时输出为“00”。依次该查表运算可表示为二进制形式:
S = 11 10 01 00
对应的十进制形式为:
S = 3 2 1 0
对于4比特查表可依此类推。实际上,当前的硬件电路设计普遍采用硬件描述语言,如Verilog或VHDL等,只需对输出进行定义后,如:
Case(input)
00:out<=11;
01:out<=10;
10:out<=01;
11:out<=00;
Endcase
即可进一步通过综合工具得到实际逻辑结构得到P1、P2、P3的电路结构。
在硬件实现时,电路是否满足时序约束的一个重要指标就是最长组合逻辑路径时延,也称为关键路径。该方式关键路径为:x2→P1→异或→P2→异或→P3→异或。通常一个逻辑门的时间延迟远小于ns级。所以,对于方式1)纯组合逻辑电路的实现,可以在远小于一个时钟周期的时间内保证所有门电路翻转完毕,从而完成整个查表过程。
对于方式2)时序电路实现方式,则需要设计有限状态机以多个时钟周期完成查表。模块中包括存储P1、P2、P3内容的存储器,用于存储中间计算结果的寄存器资源(至少为8个1比特,如果为n比特,且能被q整除(n、q为自然数),则硬件描述时可以定义为任意n/q个q比特寄存器,无论如何划分,在工作时须保证n/2比特寄存器同时更新),三个异或单元、以及寄存器更新控制逻辑。所述查表步骤至少分为三个时钟周期。
设输入为x,高4位为x1,低4位为x2,设寄存器资源为8比特,分为一个4比特的L和一个4比特的R分别进行定义,则查表处理步骤为:
1)设P1内容存在的基地址为P1_base,以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出的变换P1、P2、P3,其中P2为置换。3个变换均采用计算机基本运算复合构造即可。第二,选定整数值m。
在选定上述参数后,对于输入为x,则输出y=S(X)具体计算过程如下:
x=x1‖x2
t1=x1⊕P1(x2)
t2=x2⊕P2(t1)
t3=t1⊕P3(t2)
y=(t3‖t2)<<<m
其中‖表示比特串的连接操作,x1为x的高4比特,x2为x的低4比特。
下面,给出一个具体实施例并分析它的硬件实现效率及密码学性质。
1.参数选取
令m=5。
非置换P1对于输入x=(x3,x2,x1,x0),输出y=(y3,y2,y1,y0)的代数表达式为:
y3=x3x1+x1x0+x3+x1+1;
y2=x2x1+x2x0+x0+x2
y1=x3x0+x2x0+x0+x2
y0=x3x1+x3x2+x3+x1+1。
即P1={9,15,0,14,15,15,2,10,0,4,0,12,7,5,3,9}。
置换P2对于输入x=(x3,x2,x1,x0),输出y=(y3,y2,y1,y0)的代数表达式为:
y3=x2x1x0+x3x1x0+x3x0+x3x1+x3x2+x2+x1+1;
y2=x3x2x0+x3x2x1+x3x0+x1x0+x2x1+x0+x1+x2
y1=x3x2x1+x1x0+x2x0+x3x0+x3x1+x3x2+x1+x2+x3
y0=x2x1x0+x2x1+x3x1+x3x0+x3x2+x0+x2+x3
即P2={8,13,6,5,7,0,12,4,11,1,14,10,15,3,9,2}。
非置换P3对于输入x=(x3,x2,x1,x0),输出y=(y3,y2,y1,y0)的代数表达式为:
y3=x1x0+x2x0+x1
y2=x3x0+x3x1+x0
y1=x2x1+x3x1+x2+1;
y0=x2x0+x3x2+x3
即P3={2,6,10,6,0,13,10,15,3,3,13,5,0,9,12,13}。
2.S盒表格
选定上述变换及m后,对于所有
Figure BSA00000162002500071
以x的高4位为行号,低4位为列号,可计算S
盒输出并构造表1:
表1、S盒输出表
  0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F
  0   3E   72   5B   47   CA   E0   00   33   04   D1   54   98   09   B9   6D   CB
  1   7B   1B   F9   32   AF   9D   6A   A5   B8   2D   FC   1D   08   53   03   90
  2   4D   4E   84   99   E4   CE   D9   91   DD   B6   85   48   8B   29   6E   AC
  3   CD   C1   F8   1E   73   43   69   C6   B5   BD   FD   39   63   20   D4   38
  4   76   7D   B2   A7   CF   ED   57   C5   F3   2C   BB   14   21   06   55   9B
  5   E3   EF   5E   31   4F   7F   5A   A4   0D   82   51   49   5F   BA   58   1C
  6   4A   16   D5   17   A8   92   24   1F   8C   FF   D8   AE   2E   01   D3   AD
  7   3B   4B   DA   46   EB   C9   DE   9A   8F   87   D7   3A   80   6F   2F   C8
  8   B1   B4   37   F7   0A   22   13   28   7C   CC   3C   89   C7   C3   96   56
  9   07   BF   7E   F0   0B   2B   97   52   35   41   79   61   A6   4C   10   FE
  A   BC   26   95   88   8A   B0   A3   FB   C0   18   94   F2   E1   E5   E9   5D
  B   D0   DC   11   66   64   5C   EC   59   42   75   12   F5   74   9C   AA   23
  C   0E   86   AB   BE   2A   02   E7   67   E6   44   A2   6C   C2   93   9F   F1
  D   F6   FA   36   D2   50   68   9E   62   71   15   3D   D6   40   C4   E2   0F
  E   8E   83   77   6B   25   05   3F   0C   30   EA   70   B7   A1   E8   A9   65
  0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F
  F   8D   27   1A   DB   81   B3   A0   F4   45   7A   19   DF   EE   78   34   60
表格中数字采用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),输出的每一个分量关于所有输入分量的表达式为:
y7=x4x3x2x1x0+x5x3x2x1x0+x4x3x2x0+x4x3x1x0+x4x3x2x1+x5x3x1x0
+x5x3x2x0+x5x3x2x1+x6x2x1x0+x6x3x2x0+x6x3x2x1+x6x4x3x1
+x6x4x1x0+x6x5x1x0+x6x5x3x1+x7x2x1x0+x7x3x1x0+x7x3x2x0
+x7x4x2x0+x7x4x2x1+x7x5x2x0+x7x5x2x1+x7x6x2x0+x7x6x3x0
+x7x6x3x1+x7x6x3x2+x3x2x1+x4x1x0+x4x2x1+x4x3x2+x4x3x1
+x5x3x0+x5x3x1+x6x2x1+x6x3x2+x6x3x1+x6x4x3+x6x4x1+x6x5x1
+x6x5x3+x7x6x2+x7x4x2+x7x3x1+x7x1x0+x7x3x2+x7x4x0+x7x5x0
+x7x5x2+x7x6x0+x7x6x1+x7x6x3+x7x6x4+x7x6x5+x3x2+x2x1
+x3x0+x4x1+x4x3+x5x1+x5x3+x5x4+x6x1+x6x3+x6x4
+x7x4+x7x6+x7x3+x7x1+x2+x7
y6=x5x3x2x1x0+x6x3x2x1x0+x7x3x2x1x0+x3x2x1x0+x7x5x2x0+x7x5x2x1
+x5x3x2x0+x5x3x1x0+x5x3x2x1+x7x6x2x0+x6x2x1x0+x6x3x2x0
+x6x3x2x1+x6x5x1x0+x6x5x3x1+x7x6x3x0+x2x1x0+x7x2x0+x3x1x0
+x4x3x0+x4x1x0+x4x2x1+x4x3x1+x5x1x0+x7x5x0+x7x5x2+x5x2x0
+x5x2x1+x5x3x0+x6x1x0+x7x6x0+x7x6x2+x6x2x0+x6x2x1+x6x3x0
+x7x6x5+x6x5x3+x6x5x1+x7x3x1+x7x3x2+x7x0+x7x1+x1x0
+x3x2+x7x2+x2x0+x7x4+x4x3+x4x1+x7x5+x5x0+x5x2
+x5x4+x7x6+x6x0+x6x2+x6x4+x6x5+x7x3+x0+x1+x2+x4+x5+x6
y5=x4x3x2x1x0+x5x3x2x1x0+x6x3x2x1x0+x5x2x1x0+x5x3x1x0+x5x3x2x0
+x5x4x2x0+x5x4x2x1+x6x2x1x0+x6x3x1x0+x6x5x3x1+x6x3x2x1
+x6x4x3x0+x6x4x2x0+x6x5x3x2+x5x3x1+x5x4x0+x4x1x0+x4x2x0
+x4x2x1+x4x3x0+x4x3x1+x5x3x0+x5x4x2+x6x5x1+x6x2x1+x6x5x3
+x6x3x1+x6x4x2+x6x4x0+x6x5x4+x7x2x1+x7x3x0+x7x3x2+x7x3x1
+x3x2+x5x3+x3x1+x5x1+x2x1+x2x0+x4x0+x4x1+x4x2
+x4x3+x6x1+x6x3+x7x4+x7x6+x7x1+x7x3+x7x5+x2+x5+x3+x1+1
y4=x5x3x2x1x0+x5x4x2x1x0+x6x3x2x1x0+x6x4x2x1x0+x6x4x3x2x0+x7x3x2x1x0
+x7x4x2x1x0+x7x6x3x1x0+x7x6x3x2x0+x4x2x1x0+x4x3x2x1+x4x3x1x0
+x4x3x2x0+x5x2x1x0+x5x3x2x1+x5x3x1x0+x5x4x2x1+x5x4x3x1
+x6x4x3x0+x6x3x2x0+x6x3x2x1+x6x4x2x1+x6x4x3x1+x6x5x2x1
+x6x5x4x2+x6x5x4x1+x7x2x1x0+x7x6x3x0+x7x3x2x0+x7x6x3x2
+x7x6x3x1+x7x3x2x1+x7x4x2x1+x7x4x3x0+x7x5x3x2+x7x5x3x1
+x7x6x1x0+x7x6x4x0+x3x2x1+x4x1x0+x4x2x0+x4x3x2+x4x3x1
+x5x2x1+x5x3x0+x5x4x1+x5x4x2+x5x4x3+x6x4x2+x6x2x1+x6x3x2
+x6x4x3+x6x3x1+x6x4x1+x6x5x0+x6x5x1+x7x6x2+x7x4x1+x7x1x0
+x7x2x1+x7x3x2+x7x6x3+x7x3x1+x7x4x0+x7x4x1+x7x5x0+x7x5x2
+x7x5x3+x7x5x4+x7x6x4+x3x2+x5x2+x1x0+x3x0+x3x1+x4x3
+x6x4+x6x3+x7x4+x7x6+x7x3+x7x5+x2+x5+x3+1
y3=x4x3x2x1x0+x5x3x2x1x0+x5x4x3x2x0+x5x4x3x1x1+x5x4x3x1x0+x6x4x2x1x0
+x6x4x3x1x0+x6x4x3x2x0+x6x5x3x2x0+x6x5x3x2x1+x7x4x2x1x0+x7x4x3x1x0
+x7x5x3x1x0+x7x6x3x2x0+x4x2x1x0+x4x3x2x0+x5x4x3x2+x5x4x1x0
+x5x4x3x1+x6x3x2x1+x6x4x2x1+x6x4x3x0+x6x4x3x1+x6x4x3x2
+x6x5x1x0+x6x5x3x0+x6x5x3x2+x6x5x4x0+x6x5x4x1+x6x5x4x3
+x7x2x1x0+x7x3x2x0+x7x3x1x0+x7x4x1x0+x7x5x3x1+x7x5x4x1
+x7x5x1x0+x7x5x4x0+x7x6x3x1+x7x6x5x3+x2x1x0+x3x1x0+x3x2x1
+x4x1x0+x4x2x1+x4x3x0+x4x3x2+x5x1x0+x5x2x0+x5x2x1+x5x4x1
+x6x1x0+x6x2x0+x6x3x0+x6x3x1+x6x4x0+x6x4x1+x6x5x0+x6x5x3
+x7x2x0+x7x3x2+x7x3x0+x7x4x1+x7x5x4+x7x5x3+x7x6x0+x7x6x4
+x7x6x3+x3x0+x7x0+x6x3+x2x1+x3x2+x4x0+x4x3+x5x2
+x5x1+x5x0+x5x3+x6x2+x6x5+x7x2+x7x5+x0+x6+x7+x3+1
y2=x4x3x2x1x0+x5x3x2x1x0+x5x4x2x1x0+x6x4x2x1x0+x6x4x3x1x0+x6x5x2x1x0
+x6x5x3x1x0+x7x4x3x1x0+x7x5x2x1x0+x7x5x3x2x0+x7x6x2x1x0+x7x6x3x1x0
+x7x6x3x2x1+x3x2x1x0+x4x2x1x0+x4x3x2x0+x4x3x1x0+x5x2x1x0
+x5x4x1x0+x5x4x3x1+x6x2x1x0+x6x3x1x0+x6x4x1x0+x6x4x2x1
+x6x4x3x1+x6x5x4x1+x6x5x1x0+x6x5x2x1+x6x5x3x2+x7x2x1x0
+x7x3x2x1+x7x4x3x0+x7x5x3x0+x7x5x1x0+x7x5x4x1+x7x5x2x1
+x7x5x3x1+x7x6x1x0+x7x6x2x1+x7x6x3x1+x7x6x4x1+x7x6x5x3
+x7x6x5x1+x7x6x5x2+x4x3x2+x4x2x0+x4x3x0+x5x1x0+x5x2x0
+x5x3x2+x5x3x1+x5x4x2+x6x1x0+x6x5x2+x6x2x0+x6x3x0+x6x4x1
+x6x4x2+x6x5x1+x7x1x0+x7x3x0+x7x4x2+x7x4x3+x7x5x4+x7x6x4
+x4x0+x2x0+x7x2+x4x1+x2x1+x3x1+x5x0+x5x1+x5x2+x5x4+x6x5
+x6x3+x6x0+x6x2+x7x3+x7x5+x7x6+x0+x2+x4+x7+x1+1
y1=x5x4x2x1x0+x5x4x3x2x1+x7x4x2x1x0+x7x4x3x2x1+x7x5x3x2x0+x7x5x2x1x0
+x7x6x3x1x0+x3x2x1x0+x5x4x3x1+x4x3x1x0+x4x2x1x0+x4x3x2x0
+x4x3x2x1+x5x3x2x0+x5x3x2x1+x5x4x1x0+x5x4x2x1+x5x4x3x2
+x6x2x1x0+x6x3x1x0+x6x3x2x1+x6x3x2x0+x6x4x1x0+x6x4x3x1
+x6x4x3x0+x6x5x3x1+x6x5x1x0+x6x5x3x0+x7x5x3x1+x7x2x1x0
+x7x3x2x0+x7x4x2x1+x7x4x3x2+x7x5x3x0+x7x5x2x0+x7x5x4x2
+x7x6x1x0+x7x6x2x0+x7x6x3x0+x7x6x3x1+x7x6x3x2+x7x6x4x3
+x7x6x4x0+x7x6x5x3+x7x6x5x0+x7x5x3+x3x2x0+x5x2x1+x3x2x1
+x4x3x1+x5x4x1+x4x1x0+x5x1x0+x5x4x0+x5x2x0+x5x3x2+x5x4x2
+x6x1x0+x6x2x0+x6x2x1+x6x3x2+x6x4x3+x6x4x0+x6x4x1+x6x5x2
+x6x5x1+x7x3x1+x7x5x1+x7x2x0+x7x5x4+x7x4x3+x7x4x2+x7x6x0
+x7x6x1+x7x6x2+x7x6x3+x7x6x4+x7x6x5+x7x5+x5x3+x7x3
+x2x0+x2x1+x4x1+x5x0+x6x0+x6x3+x6x5+x7x1+x7x2
+x7x4+x7x6+x7+x5+x3+1
y0=x6x3x2x1x0+x7x3x2x1x0+x7x2x1x0+x4x3x2x0+x4x3x2x1+x5x2x1x0
+x5x3x1x0+x5x3x2x0+x5x4x1x0+x5x4x2x0+x5x4x2x1+x5x4x3x1
+x6x2x1x0+x6x3x1x0+x6x5x3x2+x6x3x2x1+x6x4x2x0+x6x4x3x0
+x6x5x3x1+x7x2x1x0+x7x3x1x0+x7x3x2x1+x7x4x2x0+x7x4x3x0
+x7x5x3x1+x7x5x3x2+x2x1x0+x3x1x0+x3x2x0+x3x2x1+x4x1x0
+x4x3x1+x4x3x2+x5x2x0+x5x2x1+x5x3x0+x5x4x1+x5x4x0+x5x4x2
+x5x4x3+x6x2x0+x6x2x1+x6x3x0+x6x5x3+x6x3x1+x6x4x0+x6x4x2
+x6x5x1+x6x5x4+x7x2x0+x7x5x3+x7x3x1+x7x1x0+x7x3x2+x7x5x4
+x7x4x0+x7x4x2+x7x5x1+x3x1+x6x1+x2x1+x3x0+x3x2+x4x3
+x4x1+x5x0+x5x2+x6x5+x5x4+x6x0+x6x2+x6x3+x7x0
+x7x2+x7x6+x7x3+x7x1+x7x4+x1+x4+x5+x7
表2给出了S盒的每一个分量函数中各个次数的项出现的个数及数学期望值。
表2、S盒的每一个分量函数中各个次数的项出现的个数及数学期望值表
  项数的次数   8   7   6   5   4   3   2   1   0
y7   0   0   0   2   24   27   15   2   0
y6   0   0   0   3   13   24   19   6   0
y5   0   0   0   3   12   20   17   4   1
y4   0   0   0   9   29   32   12   3   1
y3   0   0   0   14   26   28   15   4   1
y2   0   0   0   13   31   21   17   5   1
y1   0   0   0   7   38   33   14   3   1
  项数的次数   8   7   6   5   4   3   2   1   0
  y0   0   0   0   2   24   32   20   4   0
  期望值   1/2   4   14   28   35   28   14   4   1/2
4.S盒硬件实现效率分析
所述一种高效的S盒硬件模块可采用两种方式实现:
1)纯组合逻辑电路实现方式;
2)时序电路实现方式。
对于实现方式1),所述接口为8比特输入和8比特输出,模块内包括三个异或单元A、B、C和三个查表单元P1、P2、P3和一个线序置换单元“<<<m”。如图2所示。
在硬件实现时,电路是否满足时序约束的一个重要指标就是最长组合逻辑路径时延,也称为关键路径。该方式关键路径为:x2→P1→异或→P2→异或→P3→异或。通常一个逻辑门的时间延迟远小于ns级。所以,对于方式1)纯组合逻辑电路的实现,可以在远小于一个时钟周期的时间内保证所有门电路翻转完毕,从而完成整个查表过程。
该电路的查表时间小于一个时钟周期,若输出在每个时钟周期当即寄存,则在80MHz时钟下,实现吞吐率为640Mbps(8*80MHz),实现面积约100门,查表过程全部采为组合逻辑实现。
对于方式2)P1、P2、P3内容存储在存储器中的时序电路实现方式,则需要设计有限状态机以多个时钟周期完成查表。设输入为x,高4位为x1,低4位为x2,则查表处理过程如图3所示,至少需要三次寄存,每次需一个时钟周期来更新相应的寄存器,具体工作电路如图4所示。
作为一种实施例,如P1、P2、P3内容存放在RAM介质中,则处理步骤如下:
1)图4(a),设P1内容存在的基地址为P1_base,以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),采用时序逻辑电路实现。

Claims (10)

1.一种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-1;所述P1、P3为n进n出的映射;所述n为整数、且n≥2。
3.如权利要求1或2所述的方法,其特征在于采用一个线序置换单元将信息t循环左移m位输出。
4.如权利要求1或2所述的方法,其特征在于所述步骤3)~5)中的变换采用组合逻辑电路实现;其中组合逻辑电路的关键路径为:x2→P1→异或→P2→异或→P3→异或。
5.如权利要求1或2所述的方法,其特征在于所述步骤3)~5)中的变换采用时序电路实现。
6.如权利要求5所述的方法,其特征在于所述采用时序电路实现变换的方法为:
1)将P1、P2、P3中的信息分别存储在一存储器中;
2)根据P1的基地址,以x2为偏移地址读出所述存储器中存储的P1信息,将其与x1进行异或后更新到一n比特寄存器L中;
3)根据P2的基地址,以该寄存器L的输出作为偏移地址,读取所述寄存器中存储的P2信息,将其与x2进行异或后更新到一n比特寄存器R中;
4)根据P3的基地址,以该寄存器R的输出作为偏移地址,读取所述寄存器中存储的P3信息,将其与该寄存器L进行异或。
7.一种S盒,其特征在于包括三个异或单元A、B、C,三个变换单元P1、P2、P3,一个线序置换单元;其中异或单元A的两输入端分别与一n比特信息数据端和变换单元P1的输出端连接,异或单元A的输出端分别与变换单元P2的输入端和异或单元C的输入端连接;另一n比特信息数据端分别与变换单元P1的输入端和异或单元B的输入端连接;异或单元B的另一输入端与变换单元P2的输出端连接;异或单元B的输出端分别与所述线序置换单元的输入端和变换单元P3的输入端连接;异或单元C的输出端与所述线序置换单元的输入端连接;变换单元P3的输出端与异或单元C的输入端连接;其中P2为置换单元,n为自然数。
8.如权利要求7所述的S盒,其特征在于S盒为8比特输入接口和8比特输出接口;所述n取值为4;所述P1、P3为4进4出的变换。
9.一种S盒,其特征在于包括三个异或单元A、B、C,三个变换单元P1、P2、P3,一个线序置换单元,两个寄存器L、R,一存储器;其中变换单元P1、P2、P3分别通过基地址线与所述存储器连接;异或单元A的两输入端分别与一n比特信息数据端和变换单元P1的输出端连接,且其输出端与所述寄存器L的输入端连接;另一n比特信息数据端分别与变换单元P1的输入端和异或单元B的输入端连接;异或单元B的另一输入端与变换单元P2的的输出端连接,且其输出端与所述寄存器R的输入端连接;所述寄存器R的输出端分别与变换单元P3的输入端和所述线序置换单元的输入端连接;所述寄存器L的输出端分别与异或单元C的输入端和变换单元P2的输入端连接;异或单元C的另一输入端与变换单元P3的输出端连接,且其输出端与所述线序置换单元的输入端连接,其中P2为置换单元,n为整数、且n≥2。
10.如权利要求9所述的S盒,其特征在于S盒为8比特输入接口和8比特输出接口;所述n取值为4;所述P1、P3为4进4出的变换。
CN 201010204508 2010-06-11 2010-06-11 一种s盒构造方法及s盒 Pending CN101848081A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN 201010204508 CN101848081A (zh) 2010-06-11 2010-06-11 一种s盒构造方法及s盒
PCT/CN2010/001048 WO2011153666A1 (zh) 2010-06-11 2010-07-13 一种s盒构造方法及s盒

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010204508 CN101848081A (zh) 2010-06-11 2010-06-11 一种s盒构造方法及s盒

Publications (1)

Publication Number Publication Date
CN101848081A true CN101848081A (zh) 2010-09-29

Family

ID=42772549

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010204508 Pending CN101848081A (zh) 2010-06-11 2010-06-11 一种s盒构造方法及s盒

Country Status (2)

Country Link
CN (1) CN101848081A (zh)
WO (1) WO2011153666A1 (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102185690A (zh) * 2011-01-27 2011-09-14 中国科学院软件研究所 一种最优s盒构造方法及其电路
CN103368725A (zh) * 2012-04-06 2013-10-23 中国科学院软件研究所 一种g0类s盒构造方法及其电路
CN103378968A (zh) * 2012-04-16 2013-10-30 中国科学院软件研究所 一种g1类s盒构造方法及其电路
CN104683096A (zh) * 2013-11-29 2015-06-03 中国航天科工集团第三研究院第八三五七研究所 动态s盒变换方法及***
CN109905231A (zh) * 2019-02-26 2019-06-18 清华大学 一种新型的密码专用的4×4的s盒构造方法
CN111339577A (zh) * 2020-02-12 2020-06-26 南京师范大学 一种具有优良dpa抗性s盒的构造方法
CN112511293A (zh) * 2020-09-21 2021-03-16 中国电子科技集团公司第三十研究所 基于比特与运算的s盒参数化设计方法及存储介质
CN112636899A (zh) * 2020-09-21 2021-04-09 中国电子科技集团公司第三十研究所 一种轻量化s盒设计方法
CN113162755A (zh) * 2021-02-03 2021-07-23 北京信息科学技术研究院 一种轻量级8比特s盒的构造方法及其电路
CN114710285A (zh) * 2022-05-19 2022-07-05 北京大学 一种面向异构并行架构的高性能sm4比特切片优化方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6658569B1 (en) * 1999-02-04 2003-12-02 Bull Cp8 Secret key cryptographic process for protecting a computer system against attacks by physical analysis
CN101719823A (zh) * 2009-10-30 2010-06-02 中国科学院软件研究所 一种实现s-盒线性变换的方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6243470B1 (en) * 1998-02-04 2001-06-05 International Business Machines Corporation Method and apparatus for advanced symmetric key block cipher with variable length key and block
JP2008058830A (ja) * 2006-09-01 2008-03-13 Sony Corp データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
WO2009104827A1 (en) * 2008-02-20 2009-08-27 Industry-Academic Cooperation Foundation, Yonsei University Method and apparatus for generating key stream for stream cipher, s-box for block cipher and method for substituting input vector using the s-box

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6658569B1 (en) * 1999-02-04 2003-12-02 Bull Cp8 Secret key cryptographic process for protecting a computer system against attacks by physical analysis
CN101719823A (zh) * 2009-10-30 2010-06-02 中国科学院软件研究所 一种实现s-盒线性变换的方法

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102185690A (zh) * 2011-01-27 2011-09-14 中国科学院软件研究所 一种最优s盒构造方法及其电路
CN102185690B (zh) * 2011-01-27 2013-11-27 中国科学院软件研究所 一种最优s盒构造方法及其电路
CN103368725A (zh) * 2012-04-06 2013-10-23 中国科学院软件研究所 一种g0类s盒构造方法及其电路
CN103368725B (zh) * 2012-04-06 2016-08-31 中国科学院软件研究所 一种g0类s盒构造方法及其电路
CN103378968A (zh) * 2012-04-16 2013-10-30 中国科学院软件研究所 一种g1类s盒构造方法及其电路
CN103378968B (zh) * 2012-04-16 2016-08-03 中国科学院软件研究所 一种g1类s盒构造方法及其电路
CN104683096A (zh) * 2013-11-29 2015-06-03 中国航天科工集团第三研究院第八三五七研究所 动态s盒变换方法及***
CN104683096B (zh) * 2013-11-29 2017-12-22 中国航天科工集团第三研究院第八三五七研究所 动态s盒变换方法及***
CN109905231A (zh) * 2019-02-26 2019-06-18 清华大学 一种新型的密码专用的4×4的s盒构造方法
CN111339577A (zh) * 2020-02-12 2020-06-26 南京师范大学 一种具有优良dpa抗性s盒的构造方法
CN112511293A (zh) * 2020-09-21 2021-03-16 中国电子科技集团公司第三十研究所 基于比特与运算的s盒参数化设计方法及存储介质
CN112636899A (zh) * 2020-09-21 2021-04-09 中国电子科技集团公司第三十研究所 一种轻量化s盒设计方法
CN112636899B (zh) * 2020-09-21 2022-03-18 中国电子科技集团公司第三十研究所 一种轻量化s盒设计方法
CN112511293B (zh) * 2020-09-21 2022-03-18 中国电子科技集团公司第三十研究所 基于比特与运算的s盒参数化设计方法及存储介质
CN113162755A (zh) * 2021-02-03 2021-07-23 北京信息科学技术研究院 一种轻量级8比特s盒的构造方法及其电路
CN114710285A (zh) * 2022-05-19 2022-07-05 北京大学 一种面向异构并行架构的高性能sm4比特切片优化方法

Also Published As

Publication number Publication date
WO2011153666A1 (zh) 2011-12-15

Similar Documents

Publication Publication Date Title
CN101848081A (zh) 一种s盒构造方法及s盒
CN101764686B (zh) 一种用于网络与信息安全的加密方法
Deshpande et al. Efficient implementation of AES algorithm on FPGA
CN101952870B (zh) 数据转换器和数据转换方法
CN103444124B (zh) 加密处理装置、加密处理方法
CN102204158A (zh) 低等待时间的分块密码术
CN101938349A (zh) 一种适用于硬件实现的s盒及其电路实现方法
KR100800468B1 (ko) 저전력 고속 동작을 위한 하드웨어 암호화/복호화 장치 및그 방법
CN105916141B (zh) 一种自同步的祖冲之加解密算法的实现***及其方法
CN101841415A (zh) 一种面向字的密钥流生成方法及加密方法
CN106982116A (zh) 一种基于可逆逻辑电路的aes的本地文件加密方法
JP2015191107A (ja) 暗号処理装置、および暗号処理方法、並びにプログラム
CN109039583A (zh) 复用轮变换电路、aes加密电路及加密方法
CN101848078A (zh) 一种密钥流序列扰动方法及加密方法
CN107171782A (zh) 一种基于可逆逻辑电路的aes私密日志加密方法
CN109033847B (zh) Aes加密运算单元、aes加密电路及其加密方法
Hammad Efficient hardware implementations for the advanced encryption standard algorithm
CN101848079B (zh) 一种面向字、带记忆的序列扰动方法及加密方法
Rais et al. A novel FPGA implementation of AES-128 using reduced residue of prime numbers based S-Box
CN104871476A (zh) 用于可计算、大型、可变及安全的替换盒的方法及设备
CN104753662A (zh) 基于aes算法的加密密钥流产生方法
CN115022000A (zh) 铁路信号***的通信方法、装置及电子设备
US7433905B2 (en) Device and method for processing digital values in particular in non-adjacent form
Barrera et al. Improved mix column computation of cryptographic AES
Somasagar et al. Clefia-a encryption algorithm using novel s-box architecture

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20100929