第9卷第1期信息工程大学学报
Vol 19No 11
2008年3月Journal of I nfor mati on Engineering University Mar 12008
收稿日期:2007-09-14
作者简介:光 焱(1983-),男,硕士生,主要研究方向为密码芯片设计;
祝跃飞(1963-),男,教授,博士生导师,主演研究方向为密码学,信息安全。
一种基于FPG A 的S HA 2512算法高速实现
光 焱,祝跃飞,吴树华,姚 刚
(信息工程大学信息工程学院,河南郑州450002)
摘要:研究了一种新的SHA 2512算法基于FPG A 的高速实现方案。为了获得较高的加密处理速度,本方案在关键计算路径上进行了加法器结构的优化;并且实现了分组数据输入与循环运算的并行进行,减少了加密一个分组所需的时钟周期数,提高了加密效率。在FPG A 器件上实际运行,芯片工作在103Mhz 的时钟频率下,数据处理速率达到1300Mbits/sec 。关键词:SHA 2512;FPG A;硬件描述语言;中图分类号:TP309 文献标识码:A 文章编号:1671-0673(2008)01-0094-03
H i gh 2Speed I m plem en t a ti on of SHA 2512A lgor ith m Ba sed on FPGA
G UANG Yan,ZHU Yue 2fei,WU Shu 2hua,Y AO Gang
(I nstitute of I nfor mati on Engineering,I nfor mati on Engineering University,Zhengzhou 450002,China )
Abstract:This article intr oduces a ne w high 2s peed i m p le mentati on of SHA 2512algorithm.T o i m 2p r ove the rate of encry p ti on,the structure of adders on the critical path of calculati on is op ti m ized .By parallel inputting and calculating different bl ocks,the nu mber of cl ock cycles needed f or encryp t 2ing a single bl ock is considerably reduced and the encryp ting efficiency is i m p r oved .The chi p works under a cl ock frequency of 103Mhz when synthesized p laced and r outed in an FPG A device and a 2chieves a thr oughput of 1300Mbits/sec .Key words:SHA 2512;FPG A;VHDL;adder
Hash 函数是一类目前广泛使用的加密算法,主要用来配合公钥加密算法实现数字签名方案,同时也可实现构建MAC 码,进行数据完整性检查,密钥存储和认证,以及计算机病毒检测等功能,是I T 2Pec 等网络安全协议的关键组成部分。
SHA (secure hashing standard 安全哈希标准),是由美国国家标准技术研究所(N I ST )和美国国家安全局(NS A )一道设计的Hash 函数算法,是目前使用最为广泛的Hash 函数算法之一。该算法于1993年5月11日起采纳为标准。后经不断改进现已经发布5种安全标准,分别为SHA 21、SHA 2224、SHA 2256、SHA 2384、SHA 2512。但随着MD5、SHA 21等密码先后被破解,美国国家标准技术研究所(N I ST )表示,为配合先进的计算机技术,美国政
府5年内将不再使用SHA 21,并计划在2010年以前改用先进的SHA 2224、SHA 2256、SHA 2384及SHA 2512的密码系统。由此可见。SHA 2512等算
法在不久的将来将会广泛使用。
自2002年8月F I TP 218022标准发布以来,已相继有多种SHA 2512算法的软硬件实现方案出现[1~3]。然而,SHA 2512算法的软件加密方法由于存在着加密速度慢,占用CP U 资源,安全性不高等诸多缺点,已经越来越不能够适应网络安全应用的需求,因此,使用硬件实现算法就成为未来应用的必然选择。
在各种实现方式中,基于FPG A 的硬件实现具有研发周期短,相对成本低,容易向I C 转化等优势,是当前研究和改进的主流方向,也产生了很多
第1期
光 焱等:一种基于FPG A 的SHA 2512算法高速实现
95
不同的实现方案[5,6,8]
。文献[8]的工作是这其中较为领先的,并且取得了较好的结果,加密速率达到了670Mbits/sec 。其后又出现了多种相似的设计,加密速率从499Mbits/sec 到681Mbits/sec 之间不等(见表1)。
本文在分析SHA 2512算法和参考前人工作的基础上,用Veril og 语言进行描述,给出了该算法基于LEON2处理器体系结构的实现方案。由于综合采用多种优化,本方案与前人的设计相比较,具有资源占用更小,加密速度更快,实现功能齐全,控制方式多样等特点。其最大加密数据率达到了1300Mbits/sec,优于以往的实现结果。
1 SHA 2512算法介绍
SHA 2512算法输入明文最大长度不超过2
128
2bits,输入明文按照10242bits 的长度分组进行处
理,最终产生的输出是一个5122bits 的报文摘要。该算法对输入明文的处理分为两个阶段:明文预处理阶段和迭代加密阶段。其中,明文预处理阶段所作的工作包括把明文按照10242bit 的长度进行分组,在最后一个分组后面附加填充比特以及128位二进制数表示的明文长度值,以便使每个分
组具有相同的长度。本方案这一阶段工作在处理
器中由软件完成,并将处理后的分组依次输入芯片。
第2阶段即为对每个明文分组依次进行处理,每轮处理都是对一组642bits H i 值所进行的的80轮迭代,其中第1轮的初始H i 为确定的值,从第2轮开始则为上一轮加密的结果。明文分组被处理为80个642bit W t 值,加到每次迭代过程中。在迭代中使用了6种逻辑函数来实现数据的混乱和扩散,此外,每轮迭代中还加入了一个642bit 常数值Kt 。每轮迭代完成后,产生的结果作为下一轮迭代的初始H i 值,开始新一轮计算,并由此实现整个明
文的H sah 过程[1,2]
。
2 硬件设计
2.1 顶层模块设计
芯片由3个主要的功能模块组成:计算模块、存储模块以及总线接口模块。
计算模块负责完成算法中的迭代加密运算,分别实现了算法中的6种逻辑函数。
存储模块为两块4k 2bit 存储容量的RAM 存储
器,其中存储了8个642bit 初始H i 值和80个642bit Kt 值,并以计算模块中的轮数寄存器的值作为其输出地址值。
芯片通过总线接口模块连接到LEON2的总线上,从处理器接收明文数据并将最终结果返回处理器,并与处理器进行控制信号的交互。LEON2处理器采用了AMBA 总线结构,通过7个输入信号和2个输出信号控制芯片的运行状态以及数据总线的数据传输(如图1)。
图1 芯片模块结构图
2.2 子模块设计与优化2.2.1 计算模块
计算模块是整个芯片的核心,本设计中计算模
块设置了a ~h 8个寄存器,用来锁存加密运算中出现的中间值。在所有计算路径中,延时最长的一条是寄存器a 的输入计算,共有7个加法计算构成(如图2)。为了减少延时,加快运算速度,本设计
使用了两个5进3并行计数器PC [4]
,该并行计数器有5个输入值和3个输出值,一次可以减少2个加法操作数。两个级联的并行计数器使得加法计算的操作数从7个减到了3个,再使用一个进位保留加法器(CS A )和一个串行进位加法器(CP A ),即可得到最终的计算结果。由于PC 和CS A 的计算延时相差无几,因此此种设计相比于5级CS A 的实现方法,计算时延缩短了三分之一。图中寄存器只有8个,相同字母代表同一个寄存器,寄存器a 的输入值计算路径由7个加法运算组成。2.2.2 总线接口模块
以往的SHA 2512算法硬件实现方案中,明文分组的输入和运算模块的运算是以串行方式运行的,即在输入完成之后才开始80轮循环运算。本文所实现的设计中,明文输入和循环运算并行进行,即明文分组的每一个642bit 字一经输入立即参与循环运算(如图3)。
96
信息工程大学学报
2008年
在前16个时钟上升沿处,明文分组中的前16个642bit 字直接作为W t 被送入运算模块,同时送入寄存器M15进行锁存。与此同时,在每个时钟上升沿,M15到M0的寄存器序列依次将值往前传递,到第16个时钟周期结束,刚好明文分组的第i 个字被锁存在M i 寄存器之中。从第17个时钟上升沿开始,W t 的产生方法改变,后续有计算生成的W t 依次被送入运算模块,从而实现了不间断连续运算,将加密一个分组所需的最少时钟周期数从97个减少到81个,使得芯片总的加密速率提高了19.7%。
此外,在总线接口模块中,M7~M0还被用作结果输出寄存器,实现了寄存器的重用,减少了资源占用。
3 综合及仿真结果
本文给出的设计采用Veril ogHDL 语言编程,并下载到Xilinx 公司的V I RTEX2系列2V1000FG256器件中进行测试,芯片运行正常,测试结果正确。得益于在加法器结构和数据输入方式等方面作的改进,本设计加密数据率达到了1300Mbits/sec,在加密速率方面优于以往的实现结果,实现了高速加密的设计目标。表1为比较结果。
表1 芯片性能比较
参考文献年份
最小周期
(ns )最大频率
(MHz )加密速率
(Mbits/sec )
文献[4]
200219.850.5670文献[5]200226.338479文献[6]200325.639499文献[7]2004
19.451.3681本文
9.6
103.9
1300
可以看出,本文所实现的芯片其最大工作频率比文献[4]提高了105.8%,比文献[7]提高了102.5%、而加密速率则分别提高了96%和93%,在性能上实现了较大幅度提升,达到了项目目标。
4 结束语
本文给出了Hash 函数SHA 2512算法基于LE 2ON2处理器体系结构的硬件实现方案,芯片可作为LEON2处理器的Hash 协处理器使用,功能扩展性强,性能领先于同类设计,可以为用户提供高速率,高安全性,低资源占用的Hash 函数加密服务。
参考文献:
[1] N I ST .
FiTP Pub 18022,Secure Hash Standard
[S].2002.
[2] N I ST .Cryp t ographic Toolkit,Secure Hashing [E B /
OL ].[2006210205]htt p:∥csrc .nist .gov/encryp ti on /tkhash .ht m l .
[3] 张惟淙,杨中皇.基于Java Card 与H MAC 2SHA 22的
档案完整性稽核软体设计与实现[E B /OL ].[20052
09210].
htt p:∥cryp t o .nknu .edu .t w /publicati ons/
2005NCC .pdf .
[4] Ti m Gre mbowski,Roar L ien,Kris Gaj .Comparative A 2
nalysis of the Hard ware I m p le mentati ons of Hash Func 2ti ons S HA 21and SHA -512[E B /OL ].[2002211215].htt p:
∥w w w .east .isi .edu /~bschott/pubs/
gre mbo wski02co mparative .pdf .
[5] M c Loone M ,McCanny J V.Efficient Single 2Chi p I m p le 2
mentati on of SHA 2384and S HA 2512[C ]∥I EEE .I nter 2nati onal Conference on Field 2Pr ogra mmable Technol ogy (FPT ).Hong Kong .July 2002:311.
[6] Francis Cr owes,W illia m M arnane .Hard ware Accelera 2
ti on of Cryp t ographic Ci phers used in the Trans port Layer Security (T LS )Pr ot ocol[E B /OL ].[2003210211].ht 2t p://rennes .ucc .
ie /~francisc /papers/I TSRS03_
T LS .pdf .
[7] Nguyen Truong Son,Keisuke I W A I,Takakazu K URO 2
K AWA.H MAC 2SHA 2512Hard ware I m p le mentati on for I TPec [E B /OL ].[2006205220].htt p://www .nda .ac .j p /~kqcsec /research /seika /abst/abst_s on .pdf .