基于FPGA 的祖冲之算法硬件实现
2014-12-02郭泓键董秀则高献伟
郭泓键,董秀则,高献伟
(1.西安电子科技大学通信工程学院,西安 710071;2.北京电子科技学院,北京 100070)
1 概述
长期演进(Long Term Evolution,LTE)于2010 年底被指定为第4 代移动通信标准,其中安全技术是LTE 的关键技术[1]。祖冲之(ZUC)算法是LTE 加密算法128-EEA3 和完整性算法128-EIA3 的核心,在2011 年被3GPP LTE 采纳为第4 代移动通信国际加密标准,是第一个我国自主研究设计并成为国际密码标准的密码算法[2]。
ZUC 算法是一种流密码,和分组密码相比,具有加解密速度快、适合硬件实现等特点[3]。随着集成电路技术的高速发展,硬件电路实现加密算法与传统软件加密方法相比具有安全性好、计算速度快、成本低、性能可靠等优点[4]。现场可编程门阵列(Field Programmable Gate Array,FPGA)器件因其现场可编程和低成本等特性在密码算法实现领域有着突出的优势[5]。因此,基于FPGA 器件实现ZUC 算法具有一定的现实意义。
目前,已有多篇文献对ZUC 算法的FPGA 实现进行了研究。但大都不能同时兼顾高吞吐量和低资源占用。例如文献[6]提出的方法逻辑资源占用为385 个slice,但是只达到了2.08 Gb/s 的吞吐量。文献[7]提出复用S 盒和CSA 树的设计方法,在分别占用311 个slice 和356 个slice 的情况下只达到2.0 Gb/s和3.456 Gb/s 的吞吐量。文献[8]提出的方法在CSA 树结构的基础上进行了改进,在占用395 个slice 的情况下达到5.504 Gb/s 的吞吐量。文献[3]采用流水线的设计方法仅对ZUC1.4 版本的工作阶段进行了实现,其实现的内容相比现在的ZUC 1.6 版本完整算法要简单很多,参考价值不大。本文提出了一种新的方法,通过使用占用逻辑资源较少的简单加法器完成了复杂的mod(231-1)加法运算,在仅占用305 个slice 的情况下达到了5.647 Gb/s的吞吐量。……
