一种实现SMS4密码算法中加解密处理的方法技术

技术编号:3510555 阅读:230 留言:0更新日期:2012-04-11 18:40
一种实现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次,由于目前实际应用中的时钟频率一般都较低,使得单位时间内加密的数据数量少,效率低。如果指定加密效率,则需提高时钟频率,而实际应用中的时钟频率往往无法提高,所以实际加密效率仍较低。3.采用现有技术的方法,为了得到较高的加密效率就必须提高时钟频率,实现该方法的集成电路会导致(1)芯片的信号完整性不好。(2)芯片设计困难,产品实施困难。(3)芯片设计成本高。4.采用现有技术方法设计的集成电路,应用于系统中,时钟频率的提高会导致(1)印制电路板(PCB)成本增加。(2)印制电路板(PCB)设计困难,产品实施困难。(3)系统中的干扰很大,会影响其他设备、器件的正常、高效工作。
技术实现思路
本专利技术的目的在于提供一种实现SMS4密码算法中加解密处理的方法,其解决了
技术介绍
中数据转换处理的循环次数多,加密效率低的技术问题。本专利技术的技术解决方案是一种实现SMS4密码算法中加解密处理的方法,其特殊之处在于该方法包括循环加解密数据处理,所述循环加解密数据处理的实现步骤包括1)准备常数阵列根据数据转换处理部件的个数安排常数阵列数据的宽度和深度,相同深度的数据构成一行;2)将外部数据输入数据寄存部件在时钟上沿或下沿,把数据寄存部件输入端的数据传送至该数据寄存部件的输出端;3)进行首次数据转换处理 (1)在该时钟周期内,将常数阵列存储部件所存储常数阵列的第一行对应的数据分别输至所有的数据转换部件;(2)在同一个时钟周期内,数据寄存部件输出端的数据输入第一个数据转换部件进行数据转换处理;第一个数据转换部件输出的数据再输入到下一个数据转换部件进行数据转换处理;依此方式,直至所有的数据转换部件顺序完成数据转换处理;4)进行再次数据转换处理(1)在下一个时钟沿到来的时刻,将前次数据转换处理的数据存至数据寄存部件;(2)在该时钟周期内,将常数阵列存储部件所存储常数阵列的下一行对应的数据分别输至所有的数据转换部件;(3)在同一个时钟周期内,数据寄存部件输出端的数据输入第一个数据转换部件进行数据转换处理;第一个数据转换部件输出的数据再输入到下一个数据转换部件进行数据转换处理;依此方式,直至所有的数据转换部件顺序完成数据转换处理;5)重复再次数据转换处理重复再次数据转换处理过程,直至完成所有规定的数据转换处理过程,得到循环加解密数据处理结果。上述准备常数阵列满足的条件包括(1)将密钥扩展处理所得到的常数阵列数据按照地址高低顺序排列,存入常数阵列存储部件;(2)根据数据转换处理中数据转换处理部件的个数安排对应宽度和深度,且宽度与深度的乘积为1024;(3)常数阵列中相同深度的数据构成一行。上述循环加解密数据处理之前可加有附加加解密数据处理,所述附加加解密数据处理的实现步骤包括1)准备常数阵列根据附加加解密数据处理中数据转换处理部件的个数安排常数阵列数据的宽度,常数阵列数据的深度为1;相同深度的数据构成一行;2)将外部数据输入数据寄存部件(1)将外部数据输至数据寄存部件的输入端;(2)在时钟上沿或下沿,把数据寄存部件输入端的数据传送至该数据寄存部件的输出端; 3)进行附加数据转换处理(1)在该时钟周期内,将常数阵列存储部件所存储常数阵列对应的数据分别输至附加加解密处理中的所有数据转换部件;(2)在同一个时钟周期内,数据寄存部件输出端的数据输入到第一个数据转换部件进行数据转换处理;第一个数据转换部件输出的数据再输入到下一个数据转换部件进行数据转换处理;依此方式,直至附加加解密数据处理中的所有数据转换部件顺序完成数据转换处理,得到附加加解密数据处理结果;4)以附加加解密数据处理结果作为循环加解密数据处理中的外部数据。上述循环加解密数据处理之后可加有附加加解密数据处理,所述附加加解密数据处理的实现步骤包括1)准备常数阵列根据附加加解密数据处理中数据转换处理部件的个数安排常数阵列数据的宽度,常数阵列数据的深度为1;相同深度的数据构成一行;2)将循环加解密数据处理得到的数据输入数据寄存部件(1)将循环加解密数据处理得到的数据输至数据寄存部件的输入端;(2)在时钟上沿或下沿,把数据寄存部件输入端的数据传送至该数据寄存部件的输出端;3)进行附加数据转换处理(1)在该时钟周期内,将常数阵列存储部件所存储常数阵列对应的数据分别输至附加加解密数据处理中的所有数据转换部件;(2)在同一个时钟周期内,数据寄存部件输出端的数据输入到第一个数据转换部件进行数据转换处理;第一个数据转换部件输出的数据再输入到下一个数据转换部件进行数据转换处理;依此方式,直至附加加解密数据处理中的所有数据转换部件顺序完成数据转换处理,得到附加加解密数据处理结果;4)附加加解密数据处理结果即为最终加解密数据处理结果。上述准备常数阵列满足的条件包括1)将密钥扩展处理所得到的常数阵列数据按照地址高低顺序排列,存入常数阵列存本文档来自技高网
...

【技术保护点】
一种实现SMS4密码算法中加解密处理的方法,其特征在于:该方法包括循环加解密数据处理,所述循环加解密数据处理的实现步骤包括:1)准备常数阵列根据数据转换处理部件的个数安排常数阵列数据的宽度和深度,相同深度的数据构成一行; 2)将外部数据输入数据寄存部件在时钟上沿或下沿,把数据寄存部件输入端的数据传送至该数据寄存部件的输出端;3)进行首次数据转换处理(1)在该时钟周期内,将常数阵列存储部件所存储常数阵列的第一行对应的数据分别输至所有 的数据转换部件;(2)在同一个时钟周期内,数据寄存部件输出端的数据输入第一个数据转换部件进行数据转换处理;第一个数据转换部件输出的数据再输入到下一个数据转换部件进行数据转换处理;依此方式,直至所有的数据转换部件顺序完成数据转换处理; 4)进行再次数据转换处理(1)在下一个时钟沿到来的时刻,将前次数据转换处理的数据存至数据寄存部件;(2)在该时钟周期内,将常数阵列存储部件所存储常数阵列的下一行对应的数据分别输至所有的数据转换部件;(3)在同 一个时钟周期内,数据寄存部件输出端的数据输入第一个数据转换部件进行数据转换处理;第一个数据转换部件输出的数据再输入到下一个数据转换部件进行数据转换处理;依此方式,直至所有的数据转换部件顺序完成数据转换处理;5)重复再次数据转换处理   重复再次数据转换处理过程,直至完成所有规定的数据转换处理过程,得到循环加解密数据处理结果。...

【技术特征摘要】

【专利技术属性】
技术研发人员:鹿甲寅曹军颜湘黄振海
申请(专利权)人:西安西电捷通无线网络通信有限公司
类型:发明
国别省市:87[中国|西安]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利