搜档网
当前位置:搜档网 › 一种基于FPGA的SHA_512算法高速实现

一种基于FPGA的SHA_512算法高速实现

一种基于FPGA的SHA_512算法高速实现
一种基于FPGA的SHA_512算法高速实现

第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 .

相关主题