高效率实现sms4算法的加解密处理方法

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

发明内容
本发明的目的在于提供一种实现SMS4密码算法中加解密处理的方法,其解决了背景技术中数据转换处理的循环次数多,加密效率低的技术问题。
本发明的技术解决方案是一种高效率实现SMS4算法的加解密处理方法,其特殊之处在于该方法的实现步骤包括1)准备常数阵列根据数据转换处理部件的个数安排常数阵列数据的宽度和深度,相同深度的数据构成一行;2)将外部数据输入A数据寄存部件101在A时钟的触发时钟上沿/下沿到来时,把A数据寄存部件101输入端的数据传送至该A数据寄存部件101的输出端;3)进行首次数据转换处理(3.1)在A时钟的触发时钟上沿/下沿到来时,将常数阵列存储部件3所存储常数阵列的第一行所对应的数据分别输送到所有的数据转换部件;
(3.2)在A时钟的同一个触发时钟周期内,A数据寄存部件101输出端的数据输入A数据转换部件102进行数据转换处理;在紧接着的D时钟的触发时钟上沿/下沿到来之前,A数据转换部件102把转换处理结果输送到D数据寄存部件401的输入端;(3.3)在D时钟的触发时钟上沿/下沿到来时,把D数据寄存部件401输入端的数据传送至该D数据寄存部件401的输出端;(3.4)在D时钟的同一个触发时钟周期内,D数据寄存部件401输出端的数据输入D数据转换部件402进行数据转换处理;在紧接着的A时钟的下一个触发时钟上沿/下沿到来之前,把处理结果输送到A数据寄存部件101的输入端;4)进行再次数据转换处理(4.1)在下一个A时钟的触发时钟上沿/下沿到来时,将常数阵列存储部件3所存储常数阵列的下一行所对应的数据分别输至所有的数据转换部件;(4.2)在A时钟的同一个触发时钟周期内,A数据寄存部件101输出端的数据输入A数据转换部件102进行数据转换处理;在紧接着的D时钟的触发时钟上沿/下沿到来之前,A数据转换部件102把转换处理结果输送到D数据寄存部件401的输入端;(4.3)在D时钟的触发时钟上沿/下沿到来时,把D数据寄存部件401输入端的数据传送至该D数据寄存部件401的输出端;(4.4)在D时钟的同一个触发时钟周期内,D数据寄存部件401输出端的数据输入D数据转换部件402进行数据转换处理;在A时钟的再下一个触发时钟上沿/下沿到来之前,把处理结果输送到A数据寄存部件101的输入端;5)重复再次数据转换处理重复再次数据转换处理过程,直至完成所有规定的数据转换处理过程,得到循环加解密数据处理结果。
上述准备常数阵列满足的条件包括1)将密钥扩展处理所得到的常数阵列数据按照地址高低顺序排列,存入常数阵列存储部件3;2)根据数据转换处理中数据转换处理部件的个数安排对应宽度和深度,且宽度与深度的乘积为1024;3)常数阵列中相同深度的数据构成一行;所述的常数阵列存储部件3所存储常数阵列的第一行,在加密过程中是指常数阵列存储部件3的首地址;所述的常数阵列存储部件3所存储常数阵列的第一行,在解密过程中是指常数阵列存储部件3的末地址。
上述A时钟与D时钟的频率相同,所述A时钟与D时钟间具有固定的相位差。
上述A时钟与D时钟间的相位差以相等为佳,其易于实现。
上述A时钟与D时钟间的相位差以180度为最佳,其最易于实现。
一种高效率实现SMS4算法的加解密处理方法,其特殊之处在于该方法的实现步骤包括1)准备常数阵列根据数据转换处理部件的个数安排常数阵列数据的宽度和深度,相同深度的数据构成一行;2)将外部数据输入A数据寄存部件101在A时钟的触发时钟上沿/下沿到来时,把A数据寄存部件101输入端的数据传送至该A数据寄存部件101的输出端;3)进行首次数据转换处理(3.1)在A时钟的触发时钟上沿/下沿到来时,将常数阵列存储部件3所存储常数阵列的第一行所对应的数据分别输送到所有的数据转换部件;(3.2)在A时钟的同一个触发时钟周期内,A数据寄存部件101输出端的数据输入A数据转换部件102进行数据转换处理;在紧接着的B时钟的触发时钟上沿/下沿到来之前,A数据转换部件102把转换处理结果输送到B数据寄存部件201的输入端;(3.3)在B时钟的触发时钟上沿/下沿到来时,把B数据寄存部件201输入端的数据传送至该B数据寄存部件201的输出端;(3.4)在B时钟的同一个触发时钟周期内,B数据寄存部件201输出端的数据输入B数据转换部件202进行数据转换处理;在紧接着的C时钟的触发时钟上沿/下沿到来之前,B数据转换部件202把转换处理结果输送到C数据寄存部件301的输入端;(3.5)在C时钟的触发时钟上沿/下沿到来时,把C数据寄存部件301输入端的数据传送至该C数据寄存部件301的输出端;(3.6)在C时钟的同一个触发时钟周期内,C数据寄存部件301输出端的数据输入C数据转换部件302进行数据转换处理;在紧接着的D时钟的下一个触发时钟上沿/下沿到来之前,把处理结果输送到D数据寄存部件401的输入端;(3.7)在D时钟的触发时钟上沿/下沿到来时,把D数据寄存部件401输入端的数据传送至该D数据寄存部件401的输出端;(3.8)在D时钟的同一个触发时钟周期内,D数据寄存部件401输出端的数据输入D数据转换部件402进行数据转换处理;在紧接着的A时钟的下一个触发时钟上沿/下沿到来之前,把处理结果输送到A数据寄存部件101的输入端;4)进行再次数据转换处理
(4.1)在下一个A时钟的触发时钟上沿/下沿到来时,将常数阵列存储部件3所存储常数阵列的下一行所对应的数据分别输至所有的数据转换部件;(4.2)在A时钟的同一个触发时钟周期内,A数据寄存部件101输出端的数据输入A数据转换部件102进行数据转换处理;在紧接着的B时钟的触发时钟上沿/下沿到来之前,A数据转换部件102把转换处理结果输送到B数据寄存部件401的输入端;(4.3)在B时钟的触发时钟上沿/下沿到来时,把B数据寄存部件201输入端的数据传送至该B数据寄存部件201的输出端;(4.4)在B时钟的同一个触发时钟周期内,B数据寄存部件201输出端的数据输入B数据转换部件202进行数据转换处理;在紧接着的C时钟的下一个触发时钟上沿/下沿到来之前,把处理结果输送到C数据寄存部件301的输入端;(4.5)在C时钟的触发时钟上沿/下沿到来时,把C数据寄存部件301输入端的数据传送至该C数据寄存部件301的输出端;(4.6)在C时钟的同一个触发时钟周期内,C数据寄存部件301输出端的数据输入C数据转换部件302进行数据转换处理;在紧接着的D时钟的下一个触发时钟上沿/下沿到来之前,把处理结果输送到D数据寄存部件401的输入端;(4.7)在D时钟的触发时钟上沿/下沿到来时,把D数据寄存部件401输入端的数据传送至该D数据寄存部件401的输出端;(4.8)在D时钟的同一个触发时钟周期内,D数据寄存部件401输出端的数据输入D数据转换部件402进行数据转换处理;在紧接着的A时钟的再下一个触发时钟上沿/下沿到来之前,把处理结果输送到A数据寄存部件101的输入端;5)重复再次数据转换处理重复再次数据转换处理过程,直至完成所有规定的数据转换处理过程,得到循环加解密数据处理结果。
上述准备常数阵列满足的条件包括1)将密钥扩展处理所得到的常数阵列数据按照地址高低顺序排列,存入常数阵列存储部件3;2)根据数据转换处理中数据转换处理部件的个数安排对应宽度和深度,且宽度与深度的乘积为1024;3)常数阵列中相同深度的数据构成一行;所述的常数阵列存储部件3所存储常数阵列的第一行,在加密过程中是指常数阵列存储部件3的首地址;所述的常数阵列存储部件3所存储常数阵列的第一行,在解密过程中是指常数阵列存储部件3的末地址。
上述A时钟、B时钟、C时钟及D时钟的频率相同,所述A时钟、B时钟、C时钟及D时钟依次间具有固定的相位差。
上述A时钟、B时钟、C时钟及D时钟依次间的相位差以相等为佳,其易于实现。
上述A时钟、B时钟、C时钟及D时钟依次间的相位差以90度为最佳,其最易于实现。
本发明具有以下优点1.数据转换处理的循环次数少。例如,加密128bit的数据,在实际时钟频率不高的情况下,循环运行16个周期即能输出最终数据。即单位时间内加密的数据大大增加。
2.加密效率高。由于单位时间内加密的数据数量大大增加,所以加密效率高。若指定加密效率,则可以在频率不高的情况下达到要求的加密效率。
3.采用本发明设计集成电路,在满足所要求加密效率的情况下,由于时钟频率仅为原来的1/2,故时钟频率只需原来的1/2。在相同处理效率的情况下,实现该方法的芯片具有下述特点(1)可使芯片信号的完整性大大优化;(2)简化了芯片设计,使芯片易于实现;(3)芯片的设计成本降低。
4.采用本发明设计集成电路,在满足所要求加密效率的情况下,由于时钟频率仅为原来的1/2,时钟频率只需原来的1/2。在相同处理效率的情况下还具有下述特点(1)印制电路板(PCB)成本降低;(2)简化了印制电路板(PCB)设计,使印制电路板易于实现;(3)系统中的干扰降低,对其他设备、器件正常、高效工作的影响大幅度降低。


图1为背景技术的原理框图;图2为本发明实施例一的原理框图;图3为本发明实施例一的时钟图;图4为本发明实施例二的原理框图;图5为本发明实施例二的时钟图。
附图标号说明1-数据寄存部件,2-数据转换部件,3-常数阵列存储部件,101-A数据寄存部件,102-A数据转换部件,201-B数据寄存部件,202-B数据转换部件,301-C数据寄存部件,302-C数据转换部件,401-D数据寄存部件,402-D数据转换部件。
具体实施例方式
本发明主要通过数据寄存部件、数据转换部件及常数阵列存储部件实现。
数据寄存部件,用于寄存外部数据及上一次数据转换处理的结果。数据寄存部件一般可采用通用触发器,如D触发器、JK触发器等。该类通用触发器是在时钟上沿或下沿把数据输入端的数据传至触发器的输出端,在其他时刻触发器输出端的数据不发生变化的数据暂存器件。即在同一个数据转换处理周期内,数据寄存部件所寄存的数据是不改变的。
数据转换部件,是按照密码算法要求进行数据处理的部件。例如,按照国家的SMS4密码算法要求进行数据处理,数据转换部件完成的操作中只有一次密码算法所规定的合成置换。
常数阵列存储部件,用于存储常数阵列数据。本发明采用的常数阵列是密钥扩展处理所得到的结果数据,按照地址高低顺序排列,按照循环体中数据转换部件的个数安排常数阵列对应的宽度和深度,并且宽度与深度的乘积为1024。例如,宽度为32比特、深度为32的常数阵列。常数阵列存储部件的数据按照地址的高低顺序排列,可命名为rk0,rk1,…rk31。
参见图2、3,实施例一的实现步骤如下1)准备常数阵列(1)将密钥扩展处理所得到的常数阵列数据按照地址高低顺序排列,存入常数阵列存储部件3。
(2)根据数据转换处理中数据转换处理部件的个数安排对应宽度和深度,且宽度与深度的乘积为1024。取2个数据转换处理部件,则常数阵列的宽度为64bit,深度为16。
(3)常数阵列中相同深度的数据构成一行。128bit的常数阵列数据与深度16对应划分为16行,每行分别命名为rk0,rk1,…rk15。
在加密过程中,常数阵列存储部件3所存储常数阵列的第一行是指常数阵列存储部件3的首地址,该地址对应的数据是rk0;在整个数据转换处理中,依次取常数阵列存储部件3的数据为rk0,rk1,…rk31。
在解密过程中,常数阵列存储部件3所存储常数阵列的第一行是指常数阵列存储部件3的末地址,该地址对应的数据是rk31;在整个数据转换处理中,依次取常数阵列存储部件3的数据为rk31,rk30,…rk0。
2)将外部数据输入A数据寄存部件101在A时钟的触发时钟上沿/下沿到来时,把A数据寄存部件101输入端的数据传送至该A数据寄存部件101的输出端。
3)进行首次数据转换处理
(1)在A时钟的触发时钟上沿/下沿到来时,将常数阵列存储部件3所存储常数阵列的第一行所对应的数据分别输送到所有的数据转换部件。
(2)在A时钟的同一个触发时钟周期内,A数据寄存部件101输出端的数据输入A数据转换部件102进行数据转换处理;在紧接着的D时钟的触发时钟上沿/下沿到来之前,A数据转换部件102把转换处理结果输送到D数据寄存部件401的输入端。
(3)在D时钟的触发时钟上沿/下沿到来时,把D数据寄存部件401输入端的数据传送至该D数据寄存部件401的输出端。
(4)在D时钟的同一个触发时钟周期内,D数据寄存部件401输出端的数据输入D数据转换部件402进行数据转换处理;在紧接着的A时钟的下一个触发时钟上沿/下沿到来之前,把处理结果输送到A数据寄存部件101的输入端。
4)进行再次数据转换处理(1)在下一个A时钟的触发时钟上沿/下沿到来时,将常数阵列存储部件3所存储常数阵列的下一行所对应的数据分别输至所有的数据转换部件。
(2)在A时钟的同一个触发时钟周期内,A数据寄存部件101输出端的数据输入A数据转换部件102进行数据转换处理;在紧接着的D时钟的触发时钟上沿/下沿到来之前,A数据转换部件102把转换处理结果输送到D数据寄存部件401的输入端。
(3)在D时钟的触发时钟上沿/下沿到来时,把D数据寄存部件401输入端的数据传送至该D数据寄存部件401的输出端。
(4)在D时钟的同一个触发时钟周期内,D数据寄存部件401输出端的数据输入D数据转换部件402进行数据转换处理;在A时钟的再下一个触发时钟上沿/下沿到来之前,把处理结果输送到A数据寄存部件101的输入端。
5)重复再次数据转换处理重复再次数据转换处理过程,直至完成所有规定的数据转换处理过程,得到循环加解密数据处理结果。对于2个数据转换部件,重复再次数据转换处理过程进行15次。
参见图4、5,实施例二的实现步骤如下1)准备常数阵列(1)将密钥扩展处理所得到的常数阵列数据按照地址高低顺序排列,存入常数阵列存储部件3。
(2)根据数据转换处理中数据转换处理部件的个数安排对应宽度和深度,且宽度与深度的乘积为1024。取4个数据转换处理部件,则常数阵列的宽度为128bit,深度为8。
(3)常数阵列中相同深度的数据构成一行。128bit的常数阵列数据与深度8对应划分为8行,每行分别命名为rk0,rk1,…rk7;将每行128bit的常数阵列数据分为4个32bit的数据。rk0分为rk0a、rk0b、rk0c、rk0d;rk1分为rk1a、rk1b、rk1c、rk1d……2)将外部数据采用明文输入数据寄存部件101(1)外部数据采用明文输入A数据寄存部件101。128bit外部数据,分为4个32bit的数据,分别命名为A0、A1、A2、A3。
(2)在A时钟控制下,即在A时钟的触发时钟上沿/下沿到来时,把A数据寄存部件101输入端的数据传送至该A数据寄存部件101的输出端。A数据寄存部件101输出128bit,分为4个32bit数据的数据,分别命名为a0、a1、a2、a3。
3)进行首次数据转换处理(1))在A时钟的触发时钟上沿/下沿到来时,将常数阵列存储部件3所存储常数阵列的第一行所对应的数据分别输送到所有的数据转换部件,即A数据转换部件102、B数据转换部件202、C数据转换部件302、D数据转换部件402。
(2)在A时钟的同一个触发时钟周期内,A数据寄存部件101输出端的数据a0、a1、a2、a3及常数阵列存储部件3输出的数据rk0a输送至A数据转换部件102进行数据转换处理。转换处理后的数据仍然是128bit,分别命名为B0、B1、B2、B3。在紧接着的B时钟的触发时钟上沿/下沿到来之前,A数据转换部件102把转换处理结果输送到B数据寄存部件201的输入端。
(3)在B时钟的触发时钟上沿/下沿到来时,把B数据寄存部件201输入端的数据传送至该B数据寄存部件201的输出端,分别命名为b0、b1、b2、b3。
(4)在B时钟的同一个触发时钟周期内,B数据寄存部件201输出端的数据b0、b1、b2、b3及常数阵列存储部件3输出的数据rk0b输入B数据转换部件202进行数据转换处理;转换处理后的数据仍然是128bit,分别命名为C0、C1、C2、C3。在紧接着的C时钟的触发时钟上沿/下沿到来之前,B数据转换部件202把转换处理结果输送到C数据寄存部件301的输入端。
(5)在C时钟的触发时钟上沿/下沿到来时,把C数据寄存部件301输入端的数据传送至该C数据寄存部件301的输出端;分别命名为c0、c1、c2、c3。
(6)在C时钟的同一个触发时钟周期内,C数据寄存部件301输出端的数据c0、c1、c2、c3及常数阵列存储部件3输出的数据rk0c输入C数据转换部件302进行数据转换处理;转换处理后的数据仍然是128bit,分别命名为D0、D1、D2、D3。在紧接着的D时钟的触发时钟上沿/下沿到来之前,C数据转换部件302把转换处理结果输送到D数据寄存部件401的输入端。
(7)在D时钟的触发时钟上沿/下沿到来时,把D数据寄存部件401输入端的数据传送至该D数据寄存部件401的输出端,分别命名为d0、d1、d2、d3。
(8)在D时钟的同一个触发时钟周期内,D数据寄存部件401输出端的数据d0、d1、d2、d3及常数阵列存储部件3输出的数据rk0d输入D数据转换部件402进行数据转换处理;转换处理后的数据仍然是128bit,分别命名为E0、E1、E2、E3。在紧接着的A时钟的触发时钟上沿/下沿到来之前,D数据转换部件402把转换处理结果输送到A数据寄存部件101的输入端。E0、E1、E2、E3即是首次数据转换处理的结果数据。
4)进行再次数据转换处理(1)在下一个A时钟的触发时钟上沿/下沿到来时,将常数阵列存储部件3所存储常数阵列的下一行所对应的数据rk1a、rk1b、rk1c、rk1d分别输至所有的数据转换部件。
(2)在A时钟的同一个触发时钟周期内,A数据寄存部件101输出端的数据e0、e1、e2、e3及常数阵列存储部件3输出的数据rk1a输入A数据转换部件102进行数据转换处理;在紧接着的D时钟的触发时钟上沿/下沿到来之前,A数据转换部件102把转换处理结果输送到D数据寄存部件401的输入端。
(3)在D时钟的触发时钟上沿/下沿到来时,把D数据寄存部件401输入端的数据传送至该D数据寄存部件401的输出端。
(4)在D时钟的同一个触发时钟周期内,D数据寄存部件401输出端的数据输入D数据转换部件402进行数据转换处理;在A时钟的再下一个触发时钟上沿/下沿到来之前,把处理结果输送到A数据寄存部件101的输入端。
5)重复再次数据转换处理重复再次数据转换处理过程,直至完成所有规定的数据转换处理过程,得到循环加解密数据处理结果。对于4个数据转换部件,重复再次数据转换处理过程进行7次。
本发明的时钟频率相同,具有固定的相位差。相位差以相等为佳,以360度被时钟个数等分最易于实现。触发时钟或者均用上沿控制,或者均用下沿控制。
权利要求
1.一种高效率实现SMS4算法的加解密处理方法,其特征在于该方法的实现步骤包括1)准备常数阵列根据数据转换处理部件的个数安排常数阵列数据的宽度和深度,相同深度的数据构成一行;2)将外部数据输入A数据寄存部件(101)在A时钟的触发时钟上沿/下沿到来时,把A数据寄存部件(101)输入端的数据传送至该A数据寄存部件(101)的输出端;3)进行首次数据转换处理(3.1)在A时钟的触发时钟上沿/下沿到来时,将常数阵列存储部件(3)所存储常数阵列的第一行所对应的数据分别输送到所有的数据转换部件;(3.2)在A时钟的同一个触发时钟周期内,A数据寄存部件(101)输出端的数据输入A数据转换部件(102)进行数据转换处理;在紧接着的D时钟的触发时钟上沿/下沿到来之前,A数据转换部件(102)把转换处理结果输送到D数据寄存部件(401)的输入端;(3.3)在D时钟的触发时钟上沿/下沿到来时,把D数据寄存部件(401)输入端的数据传送至该D数据寄存部件(401)的输出端;(3.4)在D时钟的同一个触发时钟周期内,D数据寄存部件(401)输出端的数据输入D数据转换部件(402)进行数据转换处理;在紧接着的A时钟的下一个触发时钟上沿/下沿到来之前,把处理结果输送到A数据寄存部件(101)的输入端;4)进行再次数据转换处理(4.1)在下一个A时钟的触发时钟上沿/下沿到来时,将常数阵列存储部件(3)所存储常数阵列的下一行所对应的数据分别输至所有的数据转换部件;(4.2)在A时钟的同一个触发时钟周期内,A数据寄存部件(101)输出端的数据输入A数据转换部件(102)进行数据转换处理;在紧接着的D时钟的触发时钟上沿/下沿到来之前,A数据转换部件(102)把转换处理结果输送到D数据寄存部件(401)的输入端;(4.3)在D时钟的触发时钟上沿/下沿到来时,把D数据寄存部件(401)输入端的数据传送至该D数据寄存部件(401)的输出端;(4.4)在D时钟的同一个触发时钟周期内,D数据寄存部件(401)输出端的数据输入D数据转换部件(402)进行数据转换处理;在A时钟的再下一个触发时钟上沿/下沿到来之前,把处理结果输送到A数据寄存部件(101)的输入端;5)重复再次数据转换处理重复再次数据转换处理过程,直至完成所有规定的数据转换处理过程,得到循环加解密数据处理结果。
2.根据权利要求1所述的高效率实现SMS4算法的加解密处理方法,其特征在于所述准备常数阵列满足的条件包括1)将密钥扩展处理所得到的常数阵列数据按照地址高低顺序排列,存入常数阵列存储部件(3);2)根据数据转换处理中数据转换处理部件的个数安排对应宽度和深度,且宽度与深度的乘积为1024;3)常数阵列中相同深度的数据构成一行;所述的常数阵列存储部件(3)所存储常数阵列的第一行,在加密过程中是指常数阵列存储部件(3)的首地址;所述的常数阵列存储部件(3)所存储常数阵列的第一行,在解密过程中是指常数阵列存储部件(3)的末地址。
3.根据权利要求2所述的高效率实现SMS4算法的加解密处理方法,其特征在于所述A时钟与D时钟的频率相同,所述A时钟与D时钟间具有固定的相位差。
4.根据权利要求2所述的高效率实现SMS4算法的加解密处理方法,其特征在于所述A时钟与D时钟间的相位差相等。
5.根据权利要求1或2所述的高效率实现SMS4算法的加解密处理方法,其特征在于所述A时钟与D时钟间的相位差为180度。
6.一种高效率实现SMS4算法的加解密处理方法,其特殊之处在于该方法的实现步骤包括1)准备常数阵列根据数据转换处理部件的个数安排常数阵列数据的宽度和深度,相同深度的数据构成一行;2)将外部数据输入A数据寄存部件(101)在A时钟的触发时钟上沿/下沿到来时,把A数据寄存部件(101)输入端的数据传送至该A数据寄存部件(101)的输出端;3)进行首次数据转换处理(3.1)在A时钟的触发时钟上沿/下沿到来时,将常数阵列存储部件(3)所存储常数阵列的第一行所对应的数据分别输送到所有的数据转换部件;(3.2)在A时钟的同一个触发时钟周期内,A数据寄存部件(101)输出端的数据输入A数据转换部件(102)进行数据转换处理;在紧接着的B时钟的触发时钟上沿/下沿到来之前,A数据转换部件(102)把转换处理结果输送到B数据寄存部件(201)的输入端;(3.3)在B时钟的触发时钟上沿/下沿到来时,把B数据寄存部件(201)输入端的数据传送至该B数据寄存部件(201)的输出端;(3.4)在B时钟的同一个触发时钟周期内,B数据寄存部件(201)输出端的数据输入B数据转换部件(202)进行数据转换处理;在紧接着的C时钟的触发时钟上沿/下沿到来之前,B数据转换部件(202)把转换处理结果输送到C数据寄存部件(301)的输入端;(3.5)在C时钟的触发时钟上沿/下沿到来时,把C数据寄存部件(301)输入端的数据传送至该C数据寄存部件(301)的输出端;(3.6)在C时钟的同一个触发时钟周期内,C数据寄存部件(301)输出端的数据输入C数据转换部件(302)进行数据转换处理;在紧接着的D时钟的下一个触发时钟上沿/下沿到来之前,把处理结果输送到D数据寄存部件(401)的输入端;(3.7)在D时钟的触发时钟上沿/下沿到来时,把D数据寄存部件(401)输入端的数据传送至该D数据寄存部件(401)的输出端;(3.8)在D时钟的同一个触发时钟周期内,D数据寄存部件(401)输出端的数据输入D数据转换部件(402)进行数据转换处理;在紧接着的A时钟的下一个触发时钟上沿/下沿到来之前,把处理结果输送到A数据寄存部件(101)的输入端;4)进行再次数据转换处理(4.1)在下一个A时钟的触发时钟上沿/下沿到来时,将常数阵列存储部件(3)所存储常数阵列的下一行所对应的数据分别输至所有的数据转换部件;(4.2)在A时钟的同一个触发时钟周期内,A数据寄存部件(101)输出端的数据输入A数据转换部件(102)进行数据转换处理;在紧接着的B时钟的触发时钟上沿/下沿到来之前,A数据转换部件(102)把转换处理结果输送到B数据寄存部件(401)的输入端;(4.3)在B时钟的触发时钟上沿/下沿到来时,把B数据寄存部件(201)输入端的数据传送至该B数据寄存部件(201)的输出端;(4.4)在B时钟的同一个触发时钟周期内,B数据寄存部件(201)输出端的数据输入B数据转换部件(202)进行数据转换处理;在紧接着的C时钟的下一个触发时钟上沿/下沿到来之前,把处理结果输送到C数据寄存部件(301)的输入端;(4.5)在C时钟的触发时钟上沿/下沿到来时,把C数据寄存部件(301)输入端的数据传送至该C数据寄存部件(301)的输出端;(4.6)在C时钟的同一个触发时钟周期内,C数据寄存部件(301)输出端的数据输入C数据转换部件(302)进行数据转换处理;在紧接着的D时钟的下一个触发时钟上沿/下沿到来之前,把处理结果输送到D数据寄存部件(401)的输入端;(4.7)在D时钟的触发时钟上沿/下沿到来时,把D数据寄存部件(401)输入端的数据传送至该D数据寄存部件(401)的输出端;(4.8)在D时钟的同一个触发时钟周期内,D数据寄存部件(401)输出端的数据输入D数据转换部件(402)进行数据转换处理;在紧接着的A时钟的再下一个触发时钟上沿/下沿到来之前,把处理结果输送到A数据寄存部件(101)的输入端;5)重复再次数据转换处理重复再次数据转换处理过程,直至完成所有规定的数据转换处理过程,得到循环加解密数据处理结果。
7.根据权利要求6所述的高效率实现SMS4算法的加解密处理方法,其特征在于所述准备常数阵列满足的条件包括1)将密钥扩展处理所得到的常数阵列数据按照地址高低顺序排列,存入常数阵列存储部件(3);2)根据数据转换处理中数据转换处理部件的个数安排对应宽度和深度,且宽度与深度的乘积为1024;3)常数阵列中相同深度的数据构成一行;所述的常数阵列存储部件(3)所存储常数阵列的第一行,在加密过程中是指常数阵列存储部件(3)的首地址;所述的常数阵列存储部件(3)所存储常数阵列的第一行,在解密过程中是指常数阵列存储部件(3)的末地址。
8.根据权利要求6所述的高效率实现SMS4算法的加解密处理方法,其特征在于所述A时钟、B时钟、C时钟及D时钟的频率相同,所述A时钟、B时钟、C时钟及D时钟依次间具有固定的相位差。
9.根据权利要求6所述的高效率实现SMS4算法的加解密处理方法,其特征在于所述A时钟、B时钟、C时钟及D时钟依次间的相位差相等。
10.根据权利要求6或7所述的高效率实现SMS4算法的加解密处理方法,其特征在于所述A时钟、B时钟、C时钟及D时钟依次间的相位差为180度。
全文摘要
一种高效率实现SMS4算法的加解密处理方法,其准备常数阵列后,将外部数据输入数据寄存部件,先进行首次数据转换处理,然后进行再次数据转换处理,最后重复再次数据转换处理过程,直至完成所有规定的数据转换处理过程,得到循环加解密数据处理结果。本发明解决了背景技术中数据转换处理的循环次数多,加密效率低的技术问题。本发明不仅简化了芯片设计,使芯片信号的完整性大大优化,而且可提高系统的抗干扰性,降低系统成本。
文档编号H04L9/28GK1905441SQ20061010443
公开日2007年1月31日 申请日期2006年7月31日 优先权日2006年7月31日
发明者鹿甲寅, 曹军, 黄振海, 颜湘 申请人:西安西电捷通无线网络通信有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1