您现在的位置: 范文先生网 >> 理工论文 >> 电子通信论文 >> 正文

数字签名算法SHA-1的FPGA高速实现

时间:2007-1-20栏目:电子通信论文

、D和E),而F1234代表SHA-1算法中的4组非线性函数ft(X,Y,Z),根据需要用多路选择器Mux-1选择其中一个(ft(X,Y,Z)=(X∧Y)∨((X)∧Z),对于t=0至19;ft(X,Y,Z)=X臲臵,对于t=20至39;ft(X,Y,Z)=(X∧Y)∨(X∧Z)∨(Y∧Z),对于t=40至59;ft(X,Y,Z)=X臲臵,对于t=60至79),4个常数为Kt存在ROM中(即组件),32×5加法器将5个32位数相加,为加快相加的计算速度使用先行进位加法器来执行,具体连接结构见图4。
  
  
  
  
  采用Aldec公司的ActiveHDLV5.1对SHA-1算法进行功能模拟,测试值和中间结果使用Crypto++中的库函数的输入值和运算结果,并使用这些测试值和中间结果对SHA-1算法的VHDL语言描述进行验证和查错,经验证的SHA-1算法的VHDL语言描述使用Xilinx公司的ISE4.1进行逻辑综合、映射、布局和布线,生成网表用于时序仿真,最后将bitstream文件下载FPGA器件上,完成设计开发。
  
  FPGA的外围电路和控制软件
  
  将SHA-1算法的FPGA实现做在PCI卡(安全性算法协处理器)上,实现协议中的安全性算法。在安全性算法协处理器中,FPGA执行加密解密操作,PIC控制器(用Zenic公司的ZEN7201AF)作为PIC总线与协处理器的接口,SRAM存置FPGA的配置数据,配置控制器(用Xilinx公司的XC95108-7实现)输出地址和数据信号对FPGA进行配置,用Realtek公司的网络控制器RTL8019AS实现PCI卡与网络连接,协处理器的结构见图5。而FPGA的配置数据(加密
  
  
  
  算法的FPGA高速实现)放在硬盘上,通过操作系统BSDUnix4.4中的PCI卡设备驱动程序,经由PCI总线下载到安全性算法协处理器的SRAM中,后用各种加密算法的配置数据对FPGA进行配置,实现真正“现场可编程”,各种加密解密算法都可以通过FPGA的内部配置用硬件结构实现了。
  
  
  
  在软件控制方面,安全性算法协处理器驱动程序是通过函数Sebsw_intr()直接控制协处理器,此函数有来自网络控制器的中断和来自操作系统内核的时钟中断两个输入;Sebsw_hdr_chk()检验消息包的头部,如果发生硬件中断,Sebsw_intr()调用Sebsw_hdr_chk()函数;函数ether_input()检查接收到的数据类型,将接收到的分组加入到队列处理;函数ipinput()决定分组的最终地址,如果最终地址为本地地址,函数将分组传给更上一层软件,如果最终地址为非本地地址,则将分组传给ip_forward();函数ip_output()从收到的数据中生成IP数据包,然后Sebsw_start()将数据包传给网络控制器。软件控制结构见图6。
  
  
  
  
  
  结束语
  
  实验结果表明,在FPGA的频率为31.42MHz时,数据处理速度为214Mb/s,完全满足设计要求。本设计是课题“因特网协议安全性(IPSec)标准FPGA高速实现”的一部分,设计中还将包括三重DES算法、IDEA算法、高级加密标准AES等。

上一页  [1] [2] [3] 下一页

下页更精彩:1 2 3 4 下一页