时间:2022-05-19 08:49:19
摘 要 本文研究了基于Ad-Hoc的ECC嵌入式协处理器系统。构造了一个通用的模型,其大大增强ad-hoc中网络节点的性能,从而实现基于ECC的Ad-hoc安全网络协议。这里我们采用软硬件协同设计技术,实现处理器和专用硬件模块设计在同一芯片中。该系统在利用Xilinx MicroBlaze进行FPGA实现。
【关键词】ECC Ad-Hoc FPGA
1 引言
ECC在最近几年变得越来越普及,尤其是在嵌入式应用中。因为密钥宽度小、处理速度快、安全性能高,ECC非常适合嵌入式系统。
本文研究实现了一个基于混合系统的协处理器,可以大大提高基于ECC的ad-hoc网络系统的安全性能。网络计算节点通过API访问程序与设备进行通信。在该系统中,所有的密码计算模块嵌入在的混合单元中。这不仅能提高其性能,也能增加其安全性,由于私钥被嵌入到嵌入式单元中而无法访问。协处理器在Xilinx的Spartan 6装置上使用Xilinx开发套件实现。本系统的软件部分实现了一个32位MicroBlaze处理器,硬件部分通过VHDL模块实现。
2 ECC加密体制
ECC的主要操作是点乘kP运算,点乘kP的最直接方法是使用倍点和点加相结合的double-and-add方法。如果ki=0,则仅执行倍点计算;如果ki=1,则执行倍点计算和点加计
算。Double-and-add算法需要(m-1)次倍点运算和m/2次点加运算,而使用非相邻(NAF)编码思想的二进制点乘算法可以将计算点加的平均次数减少至m/3。
基于上述乘法器模块,本文实现的是使用NAF编码的163 bit二进制域上的椭圆曲线点乘算法。
算法:二进制NAF的方法计算点乘。
输入:一个正整数k,P∈GF(q)。
输出:kP。
(1)计算NAF(k)。
(2)Q∞。
(3)对于i从l-1到0,重复执行以下步骤:
1Q2Q。
②若ki=1,则QQ+P。
③若ki=-1,则QQ-P。
(4)返回Q。
3 协处理器的设计
协处理器的软件部分C程序来实现,硬件部分采用VHDL模块实现。系统采用Xilinx的EDK进行开发。MicroBlaze采用哈佛结构,具有独立的数据和指令总线。MicroBlaze程序直接存储在FPGA的内存块,双端口存储器模块用来连接MicroBlaze的指令和数据总线与独立的内存控制器。
3.1点乘器
点乘模块采用有限状态机实现。乘法完成后,结果赋值给A,最后的仿射点R传输回MicroBlaze。为了最大限度地利用并行计算,首先传输标量乘积,这样起始点坐标接收数据的同时NAF也可以进行计算。此外,点加和倍乘模块可并行操作。其关键是相比计算平方,点乘大约两倍的时间。因为点加就是简单的异或操作,所以点加的时间可以忽略不计。
3.2 API接口
API接口可以实现921600波特率的串行通信。每个API函数与FPGA之间有一个唯一的ID。MicroBlaze检查API传输的第一个字节来确定其功能。如果有更多的数据,它读取合并进行处理,然后发送返回所需的结果。
4 性能测试结果
本实验在Xilinx Spartan6 LX45 上进行FPGA仿真。相比纯软件,混合系统的点乘器性能总的执行时间包括FIFO接口模块与MicroBlaze数据传输的时间。软件实现需要平均耗时751.5ms,而混合系统只需要1.05毫秒,两者相差 716倍的速度。硬件资源的使用情况,如表1所示。
5 总结
本文,利用软硬件协同设计思想,采用Xilinx MicroBlaze处理器和专用硬件模块相结合的方法对椭圆曲线密码系统进行FPGA设计。结果表明,基本点乘法运算在混合体系结构的系统比纯软件实现快700倍的速度。同时,设计简单灵活,利用软件来控制硬件模块,为高速计算提供了API接口。
参考文献
[1]W.Qingxian,“The application of elliptic curves cryptography in embedded systems,” in International Conference on Embedded Software and Systems, 2005, pp. 154-161.
[2]JOY M,TYMEN pact encoding Of NAF with applications to ECC [J].Public Key Cryptography,LNCS 1992,Springer,PP.353-364,2001.
[3]邹候文,王峰,唐歧.椭圆曲线点乘ip核的设计与实现[J].计算机应用,2006,26,09:2131-2133.
[4]An ECC Primer, Certicom Corp., June2004, the Certicom ‘Catch the Curve’ White Paper Series.
[5]田耘.Xilinx FPGA开发实用教程[M].北京:清华大学出版社,2008.
[6]B. MuthuKumar and S. Jeevananthan, “Design of an efficient ecc coprocessor,” in Advanced Computing, 2009. First International Conference on, Dec. 2009, pp. 3437.
作者单位
莱芜职业技术学院 山东省莱芜市 271100