基于单片机和FPGA的网络数据加密实现

来源:电子工程世界 作者:—— 时间:2010-05-27 09:39

2.3 W7算法原理

  W7H算法与A5/1算法在结构原理上有相似之处。W7算法由8个类似于A5/1算法硬件结构模块并行组成,每一个模块都包含3个线性反馈移位寄存器和多数函数。不同的是w7算法是128位的初始密钥,线性反馈移位寄存器的长度图2 A5/1算法的硬件实现原理和反馈结构都不同于A5/1算法。3个线性反馈移位寄存器长度分别为38、43、47位。8个并行模块采用同一初始密钥。但反馈结构和多数函数的输入位均各不相同。8个模块的输出组成8位密码流,加密效率更高。各线性移位寄存器由固定数据位通过逻辑与产生1位数据,再将该位数据与最高位输出异或,最后将3个移位寄存器输出再异或输出作为本并行块的密码位输出。由于有8个并行块,最后总的输出8 bit,即1字节。设计时,每隔8个时钟周期输出一次,保证数据速率的一致性。

  3 系统硬件设计

  该系统硬件设计由单片机,FPGA和El接121等组成,如图3所示。单片机用于输入用户初始密钥;FPGA负责密钥流产生以及加解密;E1接口实现数据流的发送和接收,完成HDB3码和TTL电平之间的转换,实现通信接口单元和协议数据处理单元之间的全双工通信。

系统硬件设计由单片机

  由于通信链路采用E1标准,该系统设计的外部数据链路接121采用E1接口,选用接口器件DS21348。DS21348支持El和T1线接口单元,通过寄存器设置选择E1线接口单元。DS21348可配置为硬件模式,完成HDB3到TTL、TTL到HDB3的电平转换,时钟同步、数据信号格式转换以及数据帧处理。该系统可并行处理两路数据,一路加密,一路解密,实现全双工通信。

  由于TI公司的MSP430系列微处理器平台具有低功耗和小体积等特点,适合便携式应用场合,所以单片机采用MSP430系列,并通过SPI接口实现与FPGA的数据通信。单片机外接一键盘,用于输入初始密钥。考虑到用户输入密钥位数不能很多,可设置简短的密钥,并在单片机内部扩展至算法所需的位数,然后通过单片机SPI接口传送至FGPA。SPI接口共4条信号线:串行时钟(SCK),主机输出/从机输入(MOSI),主机输入/从机输出(MISO),从机片选(SS)。SPI接口可配置为主或从模式。设计配置为主模式。当单片机向FPGA传输命令或数据时,应用SPIO模式。当片选信号丙拉低,在每个时钟(SCK)的上升沿发送数据,无需FPGA向单片机输人数据,所以不使用MISO数据线。片选信号SS与FP-CA的RAM的使能相连,控制数据读入。当用户输人初始密钥后,经过数据扩展,与算法选择数据通过SPI接口传送至FPGA。SPI接口时序如图4所示。

SPI接口时序

  FPGA采用CyeloneII系列中的EP20F256C6,该器件是低成本架构FPGA,可提供多达18 752个逻辑单元.152个用户IO,239 616 bit的存储位,密度超过CyeloneI FPGA的3倍,完全满足系统设计需要。CycloneII FPGA内部的逻辑资源可实现复杂应用。CyeloneII器件采用的低成本串行配置器件,这种串行配置器件最大可提供64 Mbit的nash存储器。所以,采用EP20F256C6可高效完成系统核心算法,有效节约成本。其内部算法由VHDL语言编程实现。主要程序模块:加解密算法模块(A5/1和W7)、数据存储模块、同步产生模块、同步检测模块。加密和解密各有一套独立的模块集合。其中A5/1算法模块的VHDL代码如下:

资讯排行榜

  • 每日排行
  • 每周排行
  • 每月排行

华强资讯微信号

关注方法:
· 使用微信扫一扫二维码
· 搜索微信号:华强微电子