APP下载

基于单轮循环结构的SMS4加密芯片的研究与设计

2016-12-05蔡玉莹曲英杰

电子设计工程 2016年22期
关键词:加解密解密时序

蔡玉莹,曲英杰

(青岛科技大学 信息科学技术学院,山东 青岛266061)

基于单轮循环结构的SMS4加密芯片的研究与设计

蔡玉莹,曲英杰

(青岛科技大学 信息科学技术学院,山东 青岛266061)

文章在分析SMS4原理的基础上提出了一种基于单轮循环结构的SMS4加密方案,通过复用单一的加密单元,经过32次循环迭代完成加密,大大减少了硬件资源的使用。该设计的开发平台是Altera公司的Quartus II 9.0,使用的FPGA(Field-Programmable Gate Array)开发板是Cyclone II EP2C8Q208C8。运行结果表明,SMS4加密芯片使用了5 268个逻辑单元和139 264位存储器资源,系统的时钟频率可以达到51.35 MHz,信息加/解密的峰值速度为3.2Gb/ s,系统功耗为132.30 mW。

SMS4;对称密码算法;FPGA;单轮循环

21世纪以来,信息技术在一步步的改变传统的生产和生活模式,信息工业已经成为新的经济增长点,并已经发展成当今时代的灵魂和核心[1]。因为通信网络是开放的、共享的,因此许多敏感的信息可以经过网络和通信设备进行交换,加解密技术成为保障国家信息安全的根本支撑,也决定了国际战略竞争的高度。在这样的背景下,信息安全工业得到了最大程度的发展时机。它作为安全技术的实践者,承担着巨大的社会责任,在国家发展为网络强国的道路上发挥了极其重要的作用[2]。

SMS4对称密码算法在2006年1月25日被国家密码管理办公室公布,成为我国官方公布的第一个分组密码算法。作为一种分组密码算法,它被广泛的应用到商业领域中,在数据的加解密储存、加密传输等方面发挥了重要作用。SMS4算法的主要实现结构是非线性代换,经过32轮完成密钥产生和数据加密[3]。完成置换功能的模块主要是S盒,这是一种拥有非常好的密码学特点,并且很容易被替换的模块。正是由于这一系列的优点,所以在实现SMS4时可选择的模块十分灵活,系统在处理突然性的安全危险时速度和反应能力更强。

文中通过对SMS4算法的研究,提出一种基于单轮循环结构的SMS4加密芯片的设计方案并进行实现,本设计在使用尽量少的硬件资源的情况下,提高了系统的加密速度,实现了性能与面积的双保障。

1 SMS4加密算法介绍

1.1置换及变换T

1.1.1合成置换T

SMS4算法以一个字(即32比特)作为处理单元,以非线性代换作为基本结构,一次迭代就是一轮变换。假设(X0,X1,X2,X3)∈()4为明文,rk∈为子密钥,则我们称F(X0,X1,X2,X3,rk)=X0⊕T(X1⊕X2⊕X3⊕rk)为轮函数。→,T的变换是可逆的[4],它由两种变换组合而成:一种是非线性的变换τ,另一种是线性的变换L,即T(.)=L(τ(.))。

1.1.2非线性变换τ

τ由4个并行的S盒构成。设输入为A=(a0,a1,a2,a3)∈,输出为B=(b0,b1,b2,b3)∈,则(b0,b1,b2,b3)=τ(A)= (Sbox(a0),Sbox(a1),Sbox(a2),Sbox(a3))[5]。

1.1.3线性变换L

1.1.4S盒

S盒里面存储的数据[7]的形式均为16进制。

例如:当S盒的输入为6a时,代表选择S盒中第6行和第a列的值,查表可知,输出为7c,即sbox(6a)=7c。

1.2加/解密算法

定义反序变换R为:R(A0,A1,A2,A3)=(A3,A2,A1,A0),其中Ai∈,i=0,1,2,3[8]。假设明文是(X0,X1,X2,X3)∈()4,对应的密文为(Y0,Y1,Y2,Y3)∈()4,子密钥为rki∈,i= 0,1,2,……,31。则本算法的加密变换为:

表1 sbox模块数据

加密解密运算的变换函数是一样的,但子密钥的应用顺序相反。加密时轮密钥的使用顺序为:(rk0,rk1,…,rk31)解密时轮密钥的使用顺序为:(rk31,rk30,…,rk0)。

1.3密钥扩展算法

密钥扩展算法的输入是种子密钥,输出是32轮轮密钥。

种子密钥MK=(MK0,MK1,MK2,MK3),MKi(i=0,1,2,3)[9];

令 Ki∈,i=0,1,2,……,35,轮密钥为 rki∈,i= 0,1,2,……,31。则轮密钥生成方法为:

对i=0,1,2,……,31有rki=Ki+4=K⊕T′(Ki+1⊕Ki+2⊕Ki+3⊕CKi)。其中,T′变换中的线性变换L′改为:L′(B)=B⊕(B<<<13)⊕(B<<<23)[10];其他部分与L相同。FK与CK这两个系统参数都是固定数值,均使用16进制表示。

2 基于FPGA的设计开发流程

一个完善的FPGA设计主要包括如下几步:RTL模型建立、功能仿真、综合、综合后仿真、布局布线、时序仿真、实现和板级验证等[11]。

RTL模型建立是根据自上而下的设计方案把要实现的功能通过硬件描述语言进行描述,由EDA工具进行解析。模型建立好后,下一步骤是功能仿真,这需要使用专门的仿真工具来进行,从而判断电路的功能是否满足设计需求。综合(SYNTHESIZE)是把设计的输入转换为存储器、与、非、或等逻辑电路的组合,并依据约束要求对生成的网表(netlist)进行优化,来得到EDF与EDN文件,FPGA工厂的布局布线工具会根据这种文件完成实现操作[12]。把网表转换为布局(layout)的过程称为后端(backend)。后端的主要工作是:把网表实现成版图(APR);验证得到的版图是否满足时序的需求、符合设计的规范;提取出版图的延时信息,在时序仿真时使用。在时序仿真时,版图的延时信息被添加进来,因此时序仿真包括两种延时信息:线延时、门延时。设计开发的最后一步是板级验证与在线调试,这需要把产生的配置文件烧写进芯片中。分步骤进行设计开发的优点就是不论哪个步骤发生问题,都可以通过问题进行定位,从而回到相应的步骤重新设计或修改[13]。

3 SMS4加密芯片的总体结构设计

3.1算法特点

SMS4对称密码算法中的循环迭代结构主要通过一些基本的组合逻辑实现,如异或、移位、置换等,因此算法的数据结构非常简单。该算法实现的重点是32轮迭代运算,每轮运算都是相同的并且都须要一个轮密钥进行异或操作,轮密钥和种子密钥之间有一种特定的对应关系,因此轮密钥能提前产生,提供给轮函数F使用[14]。

3.2SMS4整体框图

图1 SMS4模块框图

3.3外部信号说明

表2 SMS4模块外部信号说明

3.4SMS4系统体系结构

SMS4顶层模块由密钥产生、数据产生、加解密状态机和显示模块这几个子模块构成。加解密状态机输出的控制信号来控制数据生成模块和密钥生成模块完成相应操作,最终经过32轮的循环迭代完成加密。由于数据通路的设计采用了循环迭代方式,因此32轮加密可以通过复用由单一的加密单元实现,可以大大减少硬件资源的消耗。

4 各子模块的设计及功能仿真

4.1密钥产生模块

此模块的作用是生成32轮子密钥,其硬件结构与数据产生模块大致相同。在控制信号的影响下,32个轮密钥在数据加/解密操作前提前产生,轮密钥产生后立即使用,不进行存储。其中为节省LUT资源,sbox使用ROM实现[15]。

图2 密钥产生模块电路结构图

图3 功能仿真波形图

4.2数据产生模块

数据产生模块是利用初始的明文(密文)和轮密钥进行相应的操作得到32个数据(每个数据为32位)。数据产生模块的电路均由组合逻辑实现,内部结构如图4所示。

图4 数据产生模块电路结构图

图5 数据产生模块功能仿真波形

4.3加解密状态机

加解密模块状态机提供密钥产生模块和数据稀产生模块的控制信号,加解密状态机是SMS4算法的核心模块,其中解密时使用控制信号使密钥逆序给出,实现算法功能。

图6 加密模块结构图

二选一选通器(MUX)的主要功能是根据控制信号选择进入每一轮迭代操作的是加/解密数据还是原始的明(密)文,通过32轮循环代换后,得到最终的密文(加密操作结果)或明文(解密操作结果)。

图7 加密模块波形图

5 SMS4密码芯片的综合与验证

综合工具采用的是Altera公司FPGA配套的开发工具QuartusⅡ9.0,SMS4加密芯片的综合结果如图8所示。

图8 SMS4加密芯片的综合结果

仿真是指使计算机根据一定的仿真库和一定的算法,利用EDA工具对设计进行模拟,来检查设计的错误。时序仿真(后仿真)是FPGA设计的重要步骤之一,它通常在做完布局布线后进行,它与特定的器件相关,并且包含了器件和布线的延时信息,主要验证程序在目标器件中的时序关系[16]。后仿真文件里包括器件的硬件特征参数,与功能仿真相比,后仿真的仿真精度更高。本设计经过QuartusII 9.0进行编译后,用产生的延时文件和网表文件进行时序仿真。

图9 时序仿真结果

图10 加密数据显示

6 结 论

该加密(解密)芯片采用具有高性能与高容量的Cyclone板卡为硬件平台,软件设计采用模块化设计思想,提高了系统的准确性与安全性。该芯片已用于某可移动的电脑加密机,通过USB接口实现FPGA与电脑的通信,实际应用表明该加密(解密)芯片具有测试准确、稳定可靠、加解密速度快、资源消耗少等优点,达到了设计要求。

[1]马秉琪.浅谈知识经济社会中的信息化 [J].经济问题,2001,1(12):18-19.

[2]袁胜.网络强国战略激活安全产业 [J].中国信息安全,2005,4(3):62-63.

[3]赵旭鑫.密码算法SMS4的硬件实现研究[D].浙江:浙江大学, 2006.

[4]国家密码管理局公告.无线局域网产品使用的SMS4密码算法 [EB/OL].(2006-01-6).http://download.csdn.net/detail/ yusan47831858642.

[5]李浪,李仁发,李静等.一种SMS4加密算法差分功耗攻击[J].计算机科学,2010,6(7):39-41.

[6]蒋继娅,刘彤,胡祥义.动态SMS4算法的研究与实现[J].网络安全技术与应用,2008,4(9):92-93.

[7]陈良.一种优化DES算法[J].计算机工程与应用,2004,17(6): 74-76.

[8]郑秀林,金丽娜.SMS4算法在DSP中的实现研究[J].北京电子科技学院学报,2006,8(4):34-37.

[9]魏军,杨秀芝.基于FPGA的IDEA加解密算法的研究与实现[J].通信技术及应用,2009,2(11):34-39.

[10]刘文华,杜现朝,耿乔科.一种提高SMS4安全性的算法[J].自动化与仪器仪表,2009,5(3):96-98.

[11]薛宇艳.开放式运动控制系统中的可编程逻辑设计与实现[D].天津:南开大学,2005.

[12]胡军.基于FPGA的无人机大气数据测试系统[D].西安:西北工业大学,2005.

[13]周屹.基于ARM7指令集的嵌入式CPU设计[D].北京:北京工业大学,2005.

[14]曲英杰.可重构密码协处理器的概念及其设计原理[J].计算机工程与应用,2003,25(4):30-34.

[15]马云.基于可重组体系结构的密码芯片设计及其FPGA实现[D].长沙:国防科技大学,2002.

[16]戚新宇.基于FPGA设计的功能仿真和时序仿真[J].航空电子技术,2005,26(3):51-54.

Research and design of SMS4 cryptographic chip based on full iteration architecture

CAI Yu-ying,QU Ying-jie
(College of Information Science and Technology,Qingdao University of Science and Technology,Qingdao 266061,China)

Based on analyzing the principle of SMS4,the paper puts forward a scheme of SMS4 cryptographic chip based on full iteration architecture.By multiplexing a single encryption unit,the design completes encryption after loop iteration 32 rounds,thus it greatly reduces the consumption of resources.This design's development platform is the Quartus II 9.0 of Altera company,the FPGA(Field-Programmable Gate Array)development board is the Cyclone II EP2C8Q208C8.The results shows: this design only uses 5 268 logic elements and 139 264 memory bits,the highest clock frequency is up to 51.35 MHz,the encryption speed is up to 3.2 Gb/s,and the power of the system is 132.30 mW.

SMS4;symmetric cryptography algorithm;FPGA;full iteration

TN918

A

1674-6236(2016)22-0039-04

2015-12-28稿件编号:201512275

山东省科技计划项目(2013YD 01038)

蔡玉莹(1991—),女,山东日照人,硕士研究生。研究方向:集成电路设计。

猜你喜欢

加解密解密时序
清明
炫词解密
解密“一包三改”
基于不同建设时序的地铁互联互通方案分析
炫词解密
基于FPGA 的时序信号光纤传输系统
PDF中隐私数据的保护方法
电子取证中常见数据加解密理论与方法研究
基于模体演化的时序链路预测方法
网络数据传输的加解密系统研究