APP下载

基于单片机的SM3算法优化及Verilog模型验证

2015-12-20曾小波唐忠彪

电子科技 2015年2期
关键词:移位消息密码

曾小波,唐忠彪,焦 歆

(1.湖南理工职业技术学院太阳能工程系,湖南湘潭 411104;2.湖南省耒阳师范学校,湖南耒阳 421800;3.上海滕维信息科技有限公司,上海 200072)

自Shannon发表了《保密系统的通信理论》,将已有数千年的密码技术推向了科学的轨道,商用密码技术在近10年间得到了广泛的应用及检测。2005年SHA-1和MD5被提出碰撞攻击方法,从此MD5算法和SHA-1算法不再列入安全算法。美国国家标准与技术研究所(NIST)于2012年公布了新一代杂凑算法Keccak。我国也由国家密码管理局在2010年12月发布了中国商用密码杂凑算法标准SM3。

SM3是一种近似于SHA-256杂凑算法的结构,但算法本身更复杂,比如压缩函数的每一轮都使用两个消息字。杂凑算法本身就是把任意长的输入消息串变化成固定长的输出串的一种函数,SM3最终产生的杂凑值为256 bit[1]。在SM2的数字签名、验证与公钥加密算法,及随机数生成等商用密码应用中有广泛应用。

作为首个国家公开发布的杂凑密码,SM3的硬件实现及评估文献也相对较少,本文利用Ncverilog探究了SM3的硬件实现方法,并采用8051软核为控制器,将SM3作为可移植的IP进行了顶层调试,并给出其相应Verilog模型的仿真结果。文中采用的Verilog行为模型为RTL级(Register Transfer Level),指的是用寄存器这一级别的描述方式来描述电路的数据流方式,即可综合的。模型接口为标准的Wishbone总线及51接口。

1 算法描述

SM3算法可对长度为l(l<264)bit的消息m进行杂化。SM3算法流程可分为4步,如图1所示[2]。

图1 SM3算法流程图

(1)将消息以512 bit的倍数进行填充。若数据尺寸为l位,先将比特“1”添加到信息的末尾,再添加k个“0”,k满足l+1+k≡448mod512的最小非负整数。最后再添加一个64位比特串,改比特串为尺寸l的二进制表示。所以被填充过的数据为512的倍数。

(2)先将填充后的消息m'以进行分组m'=B(0),B(1),…,B(n-1),每组长度为 512 bit,再将各组信息扩展成132个32 bit的字。B(i)为512 bit,故可将B(i)分成 16 个 32 bit的字 W0,W1,…,W15。

(3)所有B(i)组数据处理完毕后,最后分组的输出V(n)即为最终杂凑值。

2 系统框架结构设计

由于SM3IP由8051软核控制,及考虑到消息尺寸较大的情况,故消息填充交由CPU处理。SM3IP功能包括B(i)数据的填充、压缩及数据从XRAM的读写。IP的控制信号及信息地址数据由51软核控制,B(i),V(i)和最后结果V(n)则存放在XRAM中,系统框架如图2所示。

图2 片上系统结构图

此外图2中还标注了IP内部结构,主要包括核心的控制器及扩展模块、置换模块、压缩模块和循环表4个子模块。控制器的主要功能为提供子模块的使能及复位信号。子模块接收到控制信号后开始从XRAM或其它子模块读取数据,进行处理后将处理结果交还给其控制模块或直接写入XRAM[3]。

图3为系统的工作流程。由于m'尺寸可能较大,将其分组后的B(i)存于XRAM中,IP每次只处理一组B(i),故B(i)地址由CPU输入给IP。所以硬件流程的第一步为初始化地址寄存器,紧接着第二步使能IP,IP接收到使能信号后开始从XRAM读取数据。数据读取完毕后IP开始进行杂凑运算,最后将杂凑结果写入XRAM。

图3 系统工作流程

3 IP逻辑优化设计

SM3算法包含了大量的循环左移操作,兼顾运算速度和占用资源是设计的关键。方案中根据不同条件提供了两种设计方案。第一、固定位移实现。数据从XRAM读出后存入寄存器,由于门级电路所占资源较少,所以在寄存器读取数据后直接由门级电路重新排列即可得到移位结果,并将移位后的数据作相应的处理。例如,SS2←SS1⊕(A<<<12)中,从XRAM得到A值后,直接用相同位宽的门级排列得到结果直接异或SS1,这样,在读取A之后的一个周期内就可处理得到SS2[4]。在占用较少资源的情况下对数据进行处理。第二种方案为通过查表法实现。在压缩过程中需要对数据按照循环次数进行移位操作,这就大幅增加了不确定性。若每个数据的移位操作都根据循环次数来选择移位器,逻辑选择就会显得较为臃肿,而且无重复利用性[5]。查表法在增加一个周期的情况下,即可读出移位相应的结果,这大幅降低了资源成本,增强了可重复利用性。

此外,SM3算法还包括了模加运算。但模值恰好为232,因此在计算模加运算时只需定义32位的加法器就好,若有进位则直接溢出,即可满足模加运算要求。若定义33位加法器,则每次加法运算完成后便要判断第33位是否为高,若为高则需置为0。采用直接溢出结构,省去判断过程加快运算速度。

本IP另一个突破点是,在硬件设计时兼顾了软件的智能控制,大幅减小逻辑的占用量,实现了逻辑功能。首先,消息填充由软件执行。若此步骤由硬件执行,虽然在填充时速度较软件快很多,但充分考虑到消息长度的不确定性,应由软件执行更加合理。第一个理由为,数据为外部输入,由软件控制存放、计数更加合理。第二,SM3定义的最大可杂化消息的长度为(264-1),对于硬件来说,如此长的消息相当于无穷大,若由硬件存储将占用量的资源,很不合理。此外,此IP还增加了DMA功能,使其可自主从XRAM读取、存入数据,减轻了CPU的工作量。扩展模块中包含了计数器,每扩展一个字后计数器增加一位,DMA的输入地址也增加一位,同时写入XRAM。为方便软件处理数据,此IP中增加了智能选择,以选择高位数据写入低位地址或高位地址。

4 基于NC-Verilog的仿真

该IP算法用RTL实现后,在Red-Hat Linux仿真环境下进行了仿真,工具为NC-Verilog,填充信息从SM3国密算法附录中得到,系统仿真时钟为60 MHz。测试结果显示,完成一组B(i)的杂凑过程,需要耗时不足1 ms,约60 000个时钟周期。图4为国密算法SM3中示例仿真结果。

图4 国密算法SM3仿真结果

5 逻辑综合

在RTL级电路仿真完成后,使用SMIC 180μm工艺进行了综合,最终生成了门级网表电路。综合是针对一个给定的设计,根据设计应实现的功能与相应的约束调剂,通过EDA工具进行优化处理,最终获得结构级网表。整个IP的面积如图5所示,最终cell所用面积为149 434μm2,<160 000μm2,满足设计要求。

图5 综合面积报告

6 结束语

在愈加开放的通信网络环境中,信息面临的攻击种类繁多。SM3通过明文到密文的不可逆映射,即只有加密过程,不存在解密过程,确保了消息的来源真实有效,保障了收到和发送消息的一致性[6]。本文讨论了片上系统中SM3算法的设计、实现及可移植性。定义了CPU的接口和XRAM数据接口,使IP核在商用密码片上系统中占用资源更少,提高工作效率。目前,SHA-256实现消息杂凑速度约为 57.1 kbit·s-1,而通过RTL行为级模型仿真所得到的SM3杂凑速度为250 kbit·s-1,可见我国所提出的 SM3,在算法硬件实现上有较强的速度优势,可应用于实际的工程开发。下一步工作,将选择合适的FPGA芯片及EDA工具,定义时序,面积约束条件,完成网表的综合优化,并最终在FPGA平台上实现。

SM3能够将可变长度的数字串,通过填充、压缩、迭代将数字串转换成较短的固定长度的输出数字串的一种函数。通过RTL模型仿真结果及逻辑综合报告,可看出该算法在占用较小硬件资源的情况下,较快地实现了数据杂化。确保了在信息交互过程中信息的真实有效。

[1]Mcevoy R P,Crowe F M,Murphy C C,et al.Optimisation of the SHA -2 family of hash functions on FPGAs[C].IEEE Computer Society Annual Symposium on Emerging VLSITechnologiesand Architectures(ISVLSI'06),2006:317 -322.

[2]国家密码管理局.SM3密码杂凑算法[EB/OL].(2010-12-22)[2014 -06 -12]http://www.oscca.gov.cn/Up-File/201012221418577866.pdf.

[3]Singh R P P,Kumar P,Singh B.Performance analysis of 32-bit array multiplier with a carry save adder and with a carry look ahead adder[J].International Journal of Recent Trends in Engineering,2009,2(6):83 -86.

[4]刘宗斌,马原,夏鲁宁.SM3哈希算法的硬件实现与研究[J].信息网络安全,2011(9):191 -193.

[5]王晓燕,杨先文.基于FPGA的SM3算法优化设计与实现[J].计算机工程,2012,38(6):244 -246.

[6]曾旭,高献伟,路而红,等.Hash算法 MD5的高速实现[J].成都信息工程学院学报,2009(2):129 -132.

猜你喜欢

移位消息密码
MDT诊疗模式在颞下颌关节盘不可复性盘前移位中的治疗效果
密码里的爱
再生核移位勒让德基函数法求解分数阶微分方程
一张图看5G消息
大型总段船坞建造、移位、定位工艺技术
密码抗倭立奇功
微小移位的B型股骨假体周围骨折的保守治疗
密码藏在何处
夺命密码
消息