APP下载

Hummingbird加密算法的硬件架构设计

2013-10-17黄开臣罗永红

电子科技 2013年6期
关键词:加密算法寄存器加密

赵 维,黄开臣,罗永红

(中国航空工业西安航空计算技术研究所第5研究室,陕西西安 710068)

目前大多低配置的设备中均涉及到信息的传递,例如:智能卡、RFID标签等[1-2]。若这些信息被非授权用户获取将带来安全威胁。因此研究可嵌入此设备中的加密算法是必要的。当前有多种加密标准算法,例如DES、AES等,但这些算法通常需要大量的硬件资源来实现,同时响应时间较长,并不适合资源受限的系统[3]。

在众多加密算法中,Hummingbird加密算法是Revere Security开发的一种轻型算法。由于其所需的硬件资源少、功耗低,被广泛应用于一些硬件资源受限的应用场合,例如:RFID和简易嵌入式系统等。Hummingbird加密算法易于软件实现,在不同的嵌入式平台中均有相应的实现和优化方案。

目前有多种不同的硬件架构被提出[4-7],以便使Hummingbird加密算法能适用于多种硬件资源受限的平台。但这些方法所使用的硬件资源同样较多,且加密速度较慢。针对这些问题,文中在基于FPGA硬件平台下,提出了一种Hummingbird加密算法的硬件架构。在响应时间基本相同的情况下,该硬件架构所占用的硬件资源相比其他的解决方案较少。

1 Hummingbird加密算法简介

Hummingbird加密算法结合了基于块和流的加密。整个加密过程包含两部分:初始化过程和加密/解密过程。在Hummingbird算法中,使用16 bit的块长度、256 bit的密钥长度和80 bit的内部状态寄存器。

1.1 初始化过程

Hummingbird算法的初始化过程包括,初始化4个内部状态寄存器,同时计算LFSR的初始值。4个状态寄存器RS1~RS4首先由16 bit的随机数产生器产生。初始化过程中,4个状态寄存器经过4次的更新过程,而同时更新的结果则作为LFSR的初始值。初始化过程的流程如图1(a)所示。

1.2 加密解密过程

在初始化过程后,明文首先与状态寄存器RS1进行模216的加运算,然后再进行块加密。在加密过程中,这些操作重复进行4轮,并得到最终的密文。其中,对应的4个状态寄存器也要经过相应的更新,同样LFSR也进行更新。整个加密过程如图1(b)所示。解密过程可参照加密过程的逆运算。

图1 Hummingbird加密算法流程

1.3 块加密过程

Hummingbird加密算法采用4个相同的块加密模块,每个块加密过程均是16 bit,密钥为64 bit。其过程如图2所示。块加密过程中的S-Box如下表所示。当中的线性变换过程定义如下

2 算法的FPGA硬件架构实现

由于Hummingbird加密算法是一种轻型加密算法,主要针对硬件资源受限的平台和应用场合,因此,提出了一种硬件资源使用较少的FPGA架构。

图2 块加密过程

表1 块加密中的S-Box

首先,对于块加密过程,用4个时钟周期来完成4轮的块加密,由于每轮加密过程的密钥均不同,因此需要一个选择器来选择正确的密钥,块加密过程的FPGA架构如图3所示。

图3 块加密过程的FPGA实现

在这一架构中,需要5个异或器、8个S-Box、一个线性变换过程及两个多路选择器。Hummingbird加密算法FPGA架构的顶层设计如图4所示。

图4 Hummingbird加密算法FPGA实现的顶层架构

在顶层架构中,块加密的输出首先被锁存器锁存,在初始化和每轮的加密过程反馈,以便更新状态寄存器。由于初始状态和每轮加密的状态寄存器更新机制不同,因此需要数据选择器来实现正确的更新,更新后的状态寄存器在每轮加密过程中,分别输入至块加密过程。同时,由于初始化过程需要随机数产生,因此,使用LFSR来实现,以便节省硬件资源。

3 结果分析

文中使用Xilinx FPGA Spartan-3平台,利用Verilog HDL来实现所提出的硬件架构。将所提出的架构和其他设计进行比较[4-5]。文献[4]第一次提出了Hummingbird加密算法的FPGA实现架构,但其所需的硬件资源较多。文献[5]提出的方法虽然花费得硬件资源少,但速度较慢,同时需要更多的存储器,实际所需的硬件资源并未减少。同时,文献[5]使用的是协处理器方法,并不能算作是硬件架构。

在表2中,给出了本次的方法和文献[4]的性能比较。

表2 与文献[4]的性能比较

表2所示,提出方法所需的硬件资源比文献[4]少25%,同时速度也提升了6%。而在表3中,给出了文中的方法和文献[5]的性能比较。

表3 与文献[5]的性能比较

相比于文献[5],提出方法虽然所需的Slices数量较多,却无需存储器,同时速度可提升约30%。

4 结束语

文中提出了一种有效针对Hummingbird加密算法的FPGA硬件实现。该硬件架构相比其他方法可使用更少的硬件资源,同时速度上也优于其他方法。因此该架构可广泛用于RFID等硬件资源受限的加密平台中。

[1]范文兵,葛峥,王耀.超高频RFID系统设计与仿真[J].计算机工程,2010,36(17):90-92.

[2]肖梦琴,沈翔,杨玉庆,等.Hummingbird算法在射频识别标签中的应用[J].计算机工程,2011,37(17):78-80.

[3]DZUNG D,NAEDELE M,VON T P,et al.Security for industrial communication system [J].Proceedings of the IEEE,2005(6):571-580.

[4]FAN X,GONG G,LAUFFENBURGER K,et al.FPGA implementations oftheHummingbird cryptographic algorithm[C].Italy:IEEE International Symposium on Hardware-O-riented Security and Trust(HOST),2010.

[5]SMAIL S.Enhanced FPGA implementation of the Hummingbird cryptographic algorithm[M].UK:Sonylike Press,2005.

[6]THOMAS E,SANDEEP K,CHRISTOF P,et al.A survey of lightweight-cryptography implementations [J].IEEE Design & Test of Computers,2007,24(6):522-533.

[7]FAN X,HU H,GONG G,et al.Lightweight implementation of Hummingbird cryptographic algorithm on 4-bit microcontrollers[C].Torento:The 1st International Workshop on RFID Security and Cryptography 2009(RISC'09),2009:838-844.

猜你喜欢

加密算法寄存器加密
Lite寄存器模型的设计与实现
一种基于熵的混沌加密小波变换水印算法
分簇结构向量寄存器分配策略研究*
认证加密的研究进展
基于小波变换和混沌映射的图像加密算法
Hill加密算法的改进
基于ECC加密的电子商务系统
基于格的公钥加密与证书基加密
对称加密算法RC5的架构设计与电路实现
基于Arnold变换和Lorenz混沌系统的彩色图像加密算法