一种实现sms4加解密算法的设备的制作方法

文档序号:7955481阅读:150来源:国知局
专利名称:一种实现sms4加解密算法的设备的制作方法
技术领域
本发明涉及一种实现SMS4加解密算法的设备。
背景技术
实现SMS4加解密算法的关键部件是密钥扩展部件和加解密部件。加解密部件主要由三部分构成,即数据寄存部件、常数阵列存储部件、数据转换部件。密钥扩展部件与加解密部件的内部结构及处理过程基本相同。
数据寄存部件采用通用触发器,用于数据的寄存。在一个时钟周期内,该部件所寄存的数据是不改变的。通用触发器是在时钟上沿或下沿把数据输入端的数据输至触发器输出端,而在其他时刻触发器输出端的数据不发生变化的数据暂存器件。
常数阵列存储部件是存储常数阵列的存储部件。现有技术中的常数阵列一般是加解密处理之前已经准备好的宽度为32比特、深度为32的数据阵列。常数阵列存储部件的数据按照地址的高低顺序排列,可命名为rk0,rk1,…rk31。
数据转换部件是按照密码算法要求进行数据处理的部件。例如,按照国家的SMS4密码算法要求进行数据处理,数据转换部件完成的操作中只有一次密码算法所规定的合成置换。
目前,按照SMS4密码算法要求进行加解密数据处理的方法如下1)将外部数据输入数据寄存部件。外部数据输入到数据寄存部件后,数据寄存部件的输出端输出数据。例如,128bit的外部数据,分为4个32bit的数据,可分别命名为A0、A1、A2、A3。经数据寄存部件后输出端的数据仍为128bit,分为4个32bit的数据,分别相应地命名为a0、a1、a2、a3。
2)进行数据转换处理。将数据寄存部件的输出端数据输入数据转换部件进行数据转换处理。数据寄存部件的输出端数据a0、a1、a2、a3经数据转换部件转换为128bit的数据C0、C1、C2、C3。
3)进行再次数据转换处理。将前次数据转换处理后的数据再次存至数据寄存部件,然后将数据寄存部件输出端的数据再次输入数据转换部件,进行再次数据转换。
4)重复再次数据转换处理,得到最终的数据处理结果。对128bit的外部数据,再次数据转换处理须循环处理30次。即数据转换处理共要进行32次,才能得到最终的数据处理结果。
上述按照SMS4密码算法要求进行的加解密数据处理存在如下缺点
1.数据转换处理的循环次数多。例如,加密128bit数据,至少需运行32个数据转换处理周期才能得到最终数据处理结果。
2.加解密效率低。加解密效率即单位时间内加解密的数据数量。加密128bit数据需数据转换处理32次,即需要32个时钟周期,由于目前实际应用中的时钟频率一般都较低,使得单位时间内加密的数据数量少,效率低。如果指定加解密效率,则需提高时钟频率,而实际应用中的时钟频率往往无法提高,所以实际加解密效率仍较低。
3.采用现有技术,为了得到较高的加解密效率就必须提高时钟频率,所设计的集成电路会导致(1)芯片的信号完整性不好。
(2)芯片设计困难,产品实施困难。
(3)芯片设计成本高。
4.采用现有技术的集成电路应用于系统中,时钟频率的提高会导致(1)印制电路板(PCB)成本增加。
(2)印制电路板(PCB)设计困难,产品实施困难。
(3)系统中的干扰很大,会影响其他设备、器件的正常、高效工作。

发明内容
本发明的目的在于提供一种实现SMS4加解密算法的设备,其解决了背景技术中数据转换处理的循环次数多,加解密效率低的技术问题。
本发明的技术解决方案是一种实现SMS4加解密算法的设备,包括数据寄存部件1、数据转换部件组2和常数阵列存储部件3,其特征在于所述的数据寄存部件1、数据转换部件组2和常数阵列存储部件3构成循环加解密数据处理4;所述的数据寄存部件1是寄存外部数据及上一次数据转换处理结果的数据寄存部件,所述的数据转换部件组2是输入端接于数据寄存部件1输出端、输出端接入数据寄存部件1的输入端的数据转换部件,所述的常数阵列存储部件3是输出端接入数据转换部件组2输入端的常数阵列存储部件;所述的数据转换部件组2由依次串接的至少二个数据转换部件构成,所述常数阵列存储部件3的输出端分别与数据转换部件组2中各数据转换部件的输入端相接。
上述常数阵列存储部件3是存储加解密处理所用常数阵列数据的数据存储器件;该常数阵列存储部件3所存储的常数阵列是满足下列条件的数据阵列1)密钥扩展处理所得到的结果数据;
2)按照地址高低顺序排列;3)按照数据转换部件组2中数据转换部件的个数安排数阵列对应的宽度和深度;4)宽度与深度的乘积为1024。
上述循环加解密数据处理4中的数据转换部件组2的数据转换部件的个数以是32的约数为佳。
上述循环加解密数据处理4的输入端可接有补充处理循环加解密数据处理4未完成数据转换处理的附加加解密数据处理501;该附加加解密数据处理501包括用于寄存外部数据的数据寄存部件101,输入端接于数据寄存部件101输出端、输出端接入循环加解密数据处理4输入端的附加数据转换部件21,输出端接入附加数据转换部件21输入端的常数阵列存储部件301;所述的附加数据转换部件21由一个数据转换部件构成,或由二个或多个依次串接的数据转换部件构成;所述常数阵列存储部件301的输出端分别与附加数据转换部件21中的各数据转换部件的输入端相接。
上述常数阵列存储部件301是存储加解密处理所用常数阵列数据的数据存储器件;该常数阵列存储部件301所存储的常数阵列是满足下列条件的数据阵列1)密钥扩展处理所得到的结果数据;2)按照地址高低顺序排列;3)循环加解密数据处理4中常数阵列存储部件3的常数阵列数据宽度与深度的乘积,附加加解密数据处理501中常数阵列存储部件301的常数阵列数据宽度与深度的乘积,两者之和为1024;所述常数阵列存储部件301中常数阵列数据的宽度为附加数据转换部件21中数据转换部件的个数乘以32,所述常数阵列存储部件301中常数阵列数据的深度为1。
上述循环加解密数据处理4的输出端可接有补充处理循环加解密数据处理4未完成数据转换处理的附加加解密数据处理502;该附加加解密数据处理502包括用于寄存循环加解密数据处理4处理结果的数据寄存部件102,输入端接于数据寄存部件102输出端的附加数据转换部件22,输出端接入附加数据转换部件22输入端的常数阵列存储部件302;所述的附加数据转换部件22由一个数据转换部件构成,或由二个或多个依次串接的数据转换部件构成;所述常数阵列存储部件302的输出端分别与附加数据转换部件22中的各数据转换部件的输入端相接。
上述常数阵列存储部件302是存储加解密处理所用常数阵列数据的数据存储器件;该常数阵列存储部件302所存储的常数阵列是满足下列条件的数据阵列1)循环加解密数据处理4所得到的常数阵列数据;2)按照地址高低顺序排列;3)循环加解密数据处理4中常数阵列存储部件3的常数阵列数据宽度与深度的乘积,附加加解密数据处理502中常数阵列存储部件302的常数阵列数据宽度与深度的乘积,两者之和为1024;所述常数阵列存储部件302中常数阵列数据的宽度为附加数据转换部件22中数据转换部件的个数乘以32,所述常数阵列存储部件302中常数阵列数据的深度为1。
上述输入端接有附加加解密数据处理501的循环加解密数据处理4,其输出端可连接附加加解密数据处理502;该附加加解密数据处理502包括用于寄存循环加解密数据处理4处理结果的数据寄存部件102,输入端接于数据寄存部件102输出端的附加数据转换部件22,输出端接入附加数据转换部件22输入端的常数阵列存储部件302;所述的附加数据转换部件22由一个数据转换部件构成,或由二个或多个依次串接的数据转换部件构成;所述常数阵列存储部件302的输出端分别与附加数据转换部件22中的各数据转换部件的输入端相接。
上述常数阵列存储部件301、302分别是存储加解密处理所用常数阵列数据的数据存储器件;所述常数阵列存储部件301、302所存储的常数阵列是满足下列条件的数据阵列1)所述常数阵列存储部件301存储的是密钥扩展处理所得到的结果数据;所述常数阵列存储部件302存储的是循环加解密数据处理4所得到的常数阵列数据;2)按照地址高低顺序排列;3)循环加解密数据处理4中常数阵列存储部件3的常数阵列数据宽度与深度的乘积,附加加解密数据处理501中常数阵列存储部件301的常数阵列数据宽度与深度的乘积,附加加解密数据处理502中常数阵列存储部件302的常数阵列数据宽度与深度的乘积,三者之和为1024;所述常数阵列存储部件301中常数阵列数据的宽度为附加数据转换部件21中数据转换部件的个数乘以32,所述常数阵列存储部件301中常数阵列数据的深度为1;所述常数阵列存储部件302中常数阵列数据的宽度为附加数据转换部件22中数据转换部件的个数乘以32,所述常数阵列存储部件302中常数阵列数据的深度为1。
上述数据寄存部件1可采用在时钟上沿或下沿时刻将输入端数据传至输出端、而其他时刻输出端数据不发生变化的数据暂存器件;所述数据转换部件组2、附加数据转换部件21及附加数据转换部件22中的数据转换部件是按照密码算法要求进行数据处理、操作中只有一次密码算法所规定的合成置换的数据处理器件。
本发明具有以下优点1.数据转换处理的循环次数少。例如,加密128bit的数据,若采用4个数据转换部件,只需循环运行8个周期就能输出最终数据处理结果。
2.加解密效率高。由于单位时间内加解密的数据数量大大增加,所以加解密效率高。例如,若采用4个数据转换部件,只需循环运行8个周期就能加密128bit数据,所以,在时钟频率相同的的情况下,可以使加密效率提高4倍。
3.采用本发明设计集成电路,在满足所要求加解密效率的情况下,由于时钟频率仅为原来的1/n,故时钟频率只需原来的1/n。例如,加密128bit的数据,若采用4个数据转换部件,时钟频率只需原来的1/4。所以,在相同处理效率的情况下,实现该方法的芯片具有下述特点(1)可使芯片信号的完整性大大优化;(2)芯片的设计、产品易于实现;(3)芯片的设计成本降低。
4.采用本发明设计集成电路,在满足所要求加解密效率的情况下,由于时钟频率仅为原来的1/n,故时钟频率只需原来的1/n。在相同处理效率下具有下述特点(1)印制电路板(PCB)成本降低;(2)印制电路板(PCB)设计、产品易于实现;(3)系统中的干扰降低,对其他设备、器件正常、高效工作的影响大幅度降低。


图1为本发明的原理框图;图2为本发明循环加解密数据处理的结构示意图;图3为本发明循环加解密数据处理之前设附加加解密数据处理的结构示意图;图4为本发明循环加解密数据处理之后设附加加解密数据处理的结构示意图;图5为本发明循环加解密数据处理之前、之后均设有附加加解密数据处理的结构示意图。
附图标号说明1-数据寄存部件,2-数据转换部件组,3-常数阵列存储部件,4-循环加解密数据处理;21-附加数据转换部件,22-附加数据转换部件;101-数据寄存部件,102-数据寄存部件;200-数据转换部件,201-数据转换部件,202-数据转换部件,203-数据转换部件;210-数据转换部件,211-数据转换部件;220-数据转换部件,221-数据转换部件;301-常数阵列存储部件,302-常数阵列存储部件;501-附加加解密数据处理,502-附加加解密数据处理。
具体实施例方式
参见图1,本发明主要由数据寄存部件1、常数阵列存储部件3及数据转换部件组2构成。
数据寄存部件1用于寄存外部数据及上一次数据转换处理的结果,可采用通用触发器,如D触发器、JK触发器等。该类通用触发器是在时钟上沿或下沿把数据输入端的数据传至触发器的输出端,在其他时刻触发器输出端的数据不发生变化的数据暂存器件。在同一个数据转换处理周期内,数据寄存部件1所寄存的数据是不改变的。
数据转换部件组2是按照密码算法要求进行数据处理的部件。例如,按照国家的SMS4密码算法要求进行数据处理,数据转换部件组2完成的操作中只有一次密码算法所规定的合成置换。
常数阵列存储部件3用于存储常数阵列数据。本发明采用的常数阵列是密钥扩展处理所得到的结果数据,按照地址高低顺序排列,按照数据转换部件组2中数据转换部件的个数安排常数阵列对应的宽度和深度,并且宽度与深度的乘积为1024。例如,采用4个数据转换部件,那么常数阵列的宽度是128bit,深度是8。若采用8个数据转换部件,常数阵列的宽度则是256bit,深度是4。
本发明数据转换部件组2中数据转换部件的个数是32的约数时,以仅采用循环加解密数据处理的结构为佳。
参见图2,本发明的循环加解密数据处理中,数据寄存部件1的输入端与外部数据的输入端相连,数据寄存部件1的输出端接数据转换部件组2,常数阵列存储部件3的输出端分别与数据转换部件组2中各个数据转换部件200-203的输入端相连接。各个数据转换部件200-203依次串接,其输出接入数据寄存部件1的输入端。数据转换部件组2由依次串接的至少二个数据转换部件构成。
数据转换部件组2以采用4个数据转换部件200-203为例,常数阵列宽度为128bit,深度为8,采用循环加解密数据处理的方法进行加解密处理。过程如下1)准备常数阵列。将常数阵列存入常数阵列存储部件3。若数据转换处理中的数据转换处理部件为4个,则常数阵列的宽度为128bit、深度为8。将128bit的常数阵列数据与深度8对应划分为8行,每行分别命名为rk0,rk1,…rk7;将每行128bit的常数阵列数据分为4个32bit的数据。rk0分为rk0a、rk0b、rk0c、rk0d;rk1分为rk1a、rk1b、rk1c、rk1d……2)将外部数据输至数据寄存部件1的输入端。外部数据是128bit的数据,分为4个32bit的数据,分别命名为A0、A1、A2、A3。在时钟上沿或下沿,把数据寄存部件1输入端的数据传送至数据寄存部件1的输出端,数据寄存部件1输出128bit,分为4个32bit数据的数据,分别命名为a0、a1、a2、a3。
3)进行首次数据转换处理。在该时钟周期内,将常数阵列存储部件3所存储常数阵列的第一行对应的数据分别输至所有的数据转换部件200-203。在同一个时钟周期内,数据寄存部件1输出端的数据输入第一个数据转换部件即数据转换部件200进行数据转换处理;第一个数据转换部件即数据转换部件200输出的数据再输入下一个数据转换部件即数据转换部件201进行数据转换处理;依此方式,直至所有的数据转换部件即数据转换部件200-203顺序完成数据转换处理。具体如下数据寄存部件1输出端的数据a0、a1、a2、a3及常数阵列存储部件3输出的数据rk0a输至数据转换部件200,转换处理后的数据仍然是128bit,分别命名为B0、B1、B2、B3;数据转换部件200输出的数据B0、B1、B2、B3及常数阵列存储部件3输出的数据rk0b输至数据转换部件201,转换处理后的数据仍然是128bit,分别命名为C0、C1、C2、C3;数据转换部件201输出的数据C0、C1、C2、C3及常数阵列存储部件3输出的数据rk0c输至数据转换部件202,转换处理后的数据仍然是128bit,分别命名为D0、D1、D2、D3;数据转换部件202输出的数据D0、D1、D2、D3及常数阵列存储部件3输出的数据rk0d输至数据转换部件203,转换处理后的数据仍然是128bit,分别命名为E0、E1、E2、E3;E0、E1、E2、E3即是首次数据转换处理的结果数据。
4)进行再次数据转换处理。在时钟沿到来的时刻,将前次数据转换处理的数据E0、E1、E2、E3存至数据寄存部件1;将数据寄存部件1的输出端数据e0、e1、e2、e3依次输入数据转换部件200-203。将常数阵列存储部件3所存储的常数阵列的下一行对应的数据rk1a、rk1b、rk1c、rk1d分别输入数据转换部件200-203。
5)重复再次数据转换处理,得到加解密数据处理结果。再次数据转换处理每进行一次,即完成一个数据转换处理周期。将再次数据转换处理循环处理6次,即数共进行8次,最后一次数据转换处理后输出的数据即为最终数据处理结果。
采用二个数据转换部件时,循环加解密数据处理共进行16个时钟周期完成一次加解密处理。采用八个数据转换部件时,循环加解密数据处理共进行4个时钟周期完成一次加解密处理。采用十六个数据转换部件时,循环加解密数据处理共进行2个时钟周期完成一次加解密处理。
附加加解密数据处理用于补充完成循环加解密数据处理4未完成的数据转换处理,尤其是当数据转换部件组2中数据转换部件的个数不是32的约数时,可通过循环加解密数据处理4与附加加解密数据处理共同完成数据转换处理。
参见图3,循环加解密数据处理4的输入端可接附加加解密数据处理,用于补充处理循环加解密数据处理4未完成的数据转换处理。附加加解密数据处理501主要由用于寄存外部数据的数据寄存部件101,输入端接于数据寄存部件101输出端、输出端接入循环加解密数据处理4输入端的附加数据转换部件21,输出端接入附加数据转换部件21输入端的常数阵列存储部件301构成。附加数据转换部件21可采用一个、二个或多个依次串接的数据转换部件构成。常数阵列存储部件301的输出端分别与附加数据转换部件21中的每个数据转换部件210、211……的输入端相接。常数阵列存储部件301所存储的常数阵列是满足下列条件的数据阵列1)密钥扩展处理所得到的结果数据;2)按照地址高低顺序排列;3)循环加解密数据处理4中常数阵列存储部件3的常数阵列数据宽度与深度的乘积,附加加解密数据处理501中常数阵列存储部件301的常数阵列数据宽度与深度的乘积,两者之和为1024;所述常数阵列存储部件301中常数阵列数据的宽度为附加数据转换部件21中数据转换部件的个数乘以32,所述常数阵列存储部件301中常数阵列数据的深度为1。
附加加解密数据处理501进行数据处理的过程如下1)将外部数据输至数据寄存部件1的输入端,在时钟上沿或下沿,把数据寄存部件1输入端的数据传送至数据寄存部件1的输出端。
2)在该时钟周期内,将常数阵列存储部件301所存储常数阵列对应的数据分别输至附加加解密数据处理501中的所有数据转换部件210、211等。
3)在同一个时钟周期内,数据寄存部件1输出端的数据输入到第一个数据转换部件210进行数据转换处理;第一个数据转换部件210输出的数据再输入到下一个数据转换部件211进行数据转换处理;依此方式,直至附加加解密数据处理501中的所有附加数据转换部件21顺序完成数据转换处理,得到附加加解密数据处理501的数据处理结果。
4)以附加加解密数据处理结果作为循环加解密数据处理中的外部数据,用来完成循环加解密数据处理。
参见图4,附加加解密数据处理也可接于循环加解密数据处理4的输出端。补充处理循环加解密数据处理4未完成的数据转换处理。附加加解密数据处理502主要由用于寄存循环加解密数据处理4处理结果的数据寄存部件102,输入端接于数据寄存部件102输出端的附加数据转换部件22,输出端接入附加数据转换部件22输入端的常数阵列存储部件302构成。据转换部件22可采用一个数据转换部件构成,或由二个或多个依次串接的数据转换部件构成。常数阵列存储部件302的输出端分别与附加数据转换部件22中的每个数据转换部件的输入端相接220、221……的输入端相接。常数阵列存储部件302所存储的常数阵列是满足下列条件的数据阵列1)循环加解密数据处理4所得到的常数阵列数据;2)按照地址高低顺序排列;3)循环加解密数据处理4中常数阵列存储部件3的常数阵列数据宽度与深度的乘积,附加加解密数据处理502中常数阵列存储部件302的常数阵列数据宽度与深度的乘积,两者之和为1024;所述常数阵列存储部件302中常数阵列数据的宽度为附加数据转换部件22中数据转换部件的个数乘以32,所述常数阵列存储部件302中常数阵列数据的深度为1。
附加加解密数据处理502进行数据处理的过程与附加加解密数据处理501相似,其是对循环加解密数据处理4处理的数据进行转换处理。附加加解密数据处理502的数据处理结果为最终加解密数据处理结果。附加加解密数据处理501或502中的数据转换处理部件均可采用是一个、二个或多个。
附加加解密数据处理加至循环加解密数据处理4之前或之后进行均可,也可在循环加解密数据处理4之前和之后均附加,参见图5。该结构中的常数阵列存储部件301、302所存储的常数阵列是满足下列条件的数据阵列1)所述常数阵列存储部件301存储的是密钥扩展处理所得到的结果数据;所述常数阵列存储部件302存储的是循环加解密数据处理4所得到的常数阵列数据;2)按照地址高低顺序排列;3)循环加解密数据处理4中常数阵列存储部件3的常数阵列数据宽度与深度的乘积,附加加解密数据处理501中常数阵列存储部件301的常数阵列数据宽度与深度的乘积,附加加解密数据处理502中常数阵列存储部件302的常数阵列数据宽度与深度的乘积,三者之和为1024;所述常数阵列存储部件301中常数阵列数据的宽度为附加数据转换部件21中数据转换部件的个数乘以32,所述常数阵列存储部件301中常数阵列数据的深度为1;所述常数阵列存储部件302中常数阵列数据的宽度为附加数据转换部件22中数据转换部件的个数乘以32,所述常数阵列存储部件302中常数阵列数据的深度为1。
权利要求
1.一种实现SMS4加解密算法的设备,包括数据寄存部件(1)、数据转换部件组(2)和常数阵列存储部件(3),其特征在于所述的数据寄存部件(1)、数据转换部件组(2)和常数阵列存储部件(3)构成循环加解密数据处理(4);所述的数据寄存部件(1)是寄存外部数据及上一次数据转换处理结果的数据寄存部件,所述的数据转换部件组(2)是输入端接于数据寄存部件(1)输出端、输出端接入数据寄存部件(1)的输入端的数据转换部件,所述的常数阵列存储部件(3)是输出端接入数据转换部件组(2)输入端的常数阵列存储部件;所述的数据转换部件组(2)由依次串接的至少二个数据转换部件构成,所述常数阵列存储部件(3)的输出端分别与数据转换部件组(2)中各数据转换部件的输入端相接。
2.根据权利要求1所述的实现SMS4加解密算法的设备,其特征在于所述的常数阵列存储部件(3)是存储加解密处理所用常数阵列数据的数据存储器件;所述常数阵列存储部件(3)所存储的常数阵列是满足下列条件的数据阵列1)密钥扩展处理所得到的结果数据;2)按照地址高低顺序排列;3)按照数据转换部件组(2)中数据转换部件的个数安排数阵列对应的宽度和深度;4)宽度与深度的乘积为1024。
3.根据权利要求1或2所述的实现SMS4加解密算法的设备,其特征在于所述循环加解密数据处理(4)中的数据转换部件组(2)的数据转换部件的个数是32的约数。
4.根据权利要求1所述的实现SMS4加解密算法的设备,其特征在于所述的循环加解密数据处理(4)的输入端接有补充处理循环加解密数据处理(4)未完成数据转换处理的附加加解密数据处理(501);所述的附加加解密数据处理(501)包括用于寄存外部数据的数据寄存部件(101),输入端接于数据寄存部件(101)输出端、输出端接入循环加解密数据处理(4)输入端的附加数据转换部件(21),输出端接入附加数据转换部件(21)输入端的常数阵列存储部件(301);所述的附加数据转换部件(21)由一个数据转换部件构成,或由二个或多个依次串接的数据转换部件构成;所述常数阵列存储部件(301)的输出端分别与附加数据转换部件(21)中的各数据转换部件的输入端相接。
5.根据权利要求4所述的实现SMS4加解密算法的设备,其特征在于所述的常数阵列存储部件(301)是存储加解密处理所用常数阵列数据的数据存储器件;所述常数阵列存储部件(301)所存储的常数阵列是满足下列条件的数据阵列1)密钥扩展处理所得到的结果数据;2)按照地址高低顺序排列;3)循环加解密数据处理(4)中常数阵列存储部件(3)的常数阵列数据宽度与深度的乘积,附加加解密数据处理(501)中常数阵列存储部件(301)的常数阵列数据宽度与深度的乘积,两者之和为1024;所述常数阵列存储部件(301)中常数阵列数据的宽度为附加数据转换部件(21)中数据转换部件的个数乘以32,所述常数阵列存储部件(301)中常数阵列数据的深度为1。
6.根据权利要求1所述的实现SMS4加解密算法的设备,其特征在于所述的循环加解密数据处理(4)的输出端接有补充处理循环加解密数据处理(4)未完成数据转换处理的附加加解密数据处理(502);所述的附加加解密数据处理(502)包括用于寄存循环加解密数据处理(4)处理结果的数据寄存部件(102),输入端接于数据寄存部件(102)输出端的附加数据转换部件(22),输出端接入附加数据转换部件(22)输入端的常数阵列存储部件(302);所述的附加数据转换部件(22)由一个数据转换部件构成,或由二个或多个依次串接的数据转换部件构成;所述常数阵列存储部件(302)的输出端分别与附加数据转换部件(22)中的各数据转换部件的输入端相接。
7.根据权利要求6所述的实现SMS4加解密算法的设备,其特征在于所述的常数阵列存储部件(302)是存储加解密处理所用常数阵列数据的数据存储器件;所述常数阵列存储部件(302)所存储的常数阵列是满足下列条件的数据阵列1)循环加解密数据处理(4)所得到的常数阵列数据;2)按照地址高低顺序排列;3)循环加解密数据处理(4)中常数阵列存储部件(3)的常数阵列数据宽度与深度的乘积,附加加解密数据处理(502)中常数阵列存储部件(302)的常数阵列数据宽度与深度的乘积,两者之和为1024;所述常数阵列存储部件(302)中常数阵列数据的宽度为附加数据转换部件(22)中数据转换部件的个数乘以32,所述常数阵列存储部件(302)中常数阵列数据的深度为1。
8.根据权利要求4所述的实现SMS4加解密算法的设备,其特征在于所述的循环加解密数据处理(4)的输出端接有附加加解密数据处理(502);所述的附加加解密数据处理(502)包括用于寄存循环加解密数据处理(4)处理结果的数据寄存部件(102),输入端接于数据寄存部件(102)输出端的附加数据转换部件(22),输出端接入附加数据转换部件(22)输入端的常数阵列存储部件(302);所述的附加数据转换部件(22)由一个数据转换部件构成,或由二个或多个依次串接的数据转换部件构成;所述常数阵列存储部件(302)的输出端分别与附加数据转换部件(22)中的各数据转换部件的输入端相接。
9.根据权利要求8所述的实现SMS4加解密算法的设备,其特征在于所述的常数阵列存储部件(301)和常数阵列存储部件(302)分别是存储加解密处理所用常数阵列数据的数据存储器件;所述常数阵列存储部件(301)和常数阵列存储部件(302)所存储的常数阵列是满足下列条件的数据阵列1)所述常数阵列存储部件(301)存储的是密钥扩展处理所得到的结果数据;所述常数阵列存储部件(302)存储的是循环加解密数据处理(4)所得到的常数阵列数据;2)按照地址高低顺序排列;3)循环加解密数据处理(4)中常数阵列存储部件3的常数阵列数据宽度与深度的乘积,附加加解密数据处理(501)中常数阵列存储部件(301)的常数阵列数据宽度与深度的乘积,附加加解密数据处理502中常数阵列存储部件(302)的常数阵列数据宽度与深度的乘积,三者之和为1024;所述常数阵列存储部件(301)中常数阵列数据的宽度为附加数据转换部件(21)中数据转换部件的个数乘以32,所述常数阵列存储部件(301)中常数阵列数据的深度为1;所述常数阵列存储部件(302)中常数阵列数据的宽度为附加数据转换部件(22)中数据转换部件的个数乘以32,所述常数阵列存储部件(302)中常数阵列数据的深度为1。
10.根据权利要求1或5或7所述的实现SMS4加解密算法的设备,其特征在于所述的数据寄存部件(1)是在时钟上沿或下沿时刻将输入端数据传至输出端、而其他时刻输出端数据不发生变化的数据暂存器件;所述数据转换部件组(2)、附加数据转换部件(21)及附加数据转换部件(22)中的数据转换部件是按照密码算法要求进行数据处理、操作中只有一次密码算法所规定的合成置换的数据处理器件。
全文摘要
一种实现SMS4加解密算法的设备,主要包括寄存外部数据及上一次数据转换处理结果的数据寄存部件,输入端接于数据寄存部件输出端、输出端接入数据寄存部件的输入端的数据转换部件,输出端接入数据转换部件输入端的常数阵列存储部件。数据转换部件由依次串接的至少二个数据转换部件构成,常数阵列存储部件的输出端分别与各数据转换部件的输入端相接。本发明解决了背景技术中数据转换处理的循环次数多,加解密效率低的技术问题。采用本发明设计集成电路,可使芯片信号的完整性大大优化,产品易于实现,成本低。系统中的干扰也会大幅度降低。
文档编号H04L9/28GK1983925SQ200610042608
公开日2007年6月20日 申请日期2006年3月31日 优先权日2006年3月31日
发明者鹿甲寅, 曹军, 颜湘, 黄振海 申请人:西安西电捷通无线网络通信有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1