CN101848081A - 一种s盒构造方法及s盒 - Google Patents
一种s盒构造方法及s盒 Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution 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盒是必不可少的非线性组件。如美国加密标准中的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。
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盒如果硬件实现的时候用有限域运算来实现,效率非常低,所以通常用查表的方法实现,一般需要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”。依次该查表运算可表示为二进制形式:
对应的十进制形式为:
对于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盒表格
盒输出并构造表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出的变换。
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)
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)
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)
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 |
-
2010
- 2010-06-11 CN CN 201010204508 patent/CN101848081A/zh active Pending
- 2010-07-13 WO PCT/CN2010/001048 patent/WO2011153666A1/zh active Application Filing
Patent Citations (2)
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)
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 |