工业控制 | 能源技术 | 汽车电子 | 通信网络 | 安防监控 | 智能电网 | 移动手持 | 无线技术 | 家用电器 | 数字广播 | 消费电子 | 应用软件 | 其他方案

电路设计->通信电路图->无线通信电子电路图->基于FPGA的无线通信安全协议

基于FPGA的无线通信安全协议

作者:angelazhang时间:2015-07-29

1应用背景

在无线网络中,安全问题是一个非常严重的问题。为了消除在先前标准中的一些漏洞,802.11i标准在媒体接入层加强了安全措施。这个认证方法由几部分构成,包括一个802.1X认证方法,这个方法在扩展认证协议之上使用安全传输层协议,扩展认证协议使用一个四次握手协议来建立一个对话密钥,并且为成组通信使用一个可选择的群组交握协议。这些工作的目的都是为了分析IEEE802.11标准使之保持数据的机密性、完整性、相互认证性及有效性。在系统受到威胁的情况下,计数器模式密码块链接消息身份验证代码(CBC-MAC) 协议使802.11标准能提供有效的数据机密性和完整性。802.11标准可能也能够提供令人满意的相互认证和密钥管理,尽管一些潜在的执行疏漏可能引起严重的问题。另一方面,我们可以识别出一些拒绝服务攻击。各种各样的方法被提出来解决这些漏洞,这使得802.11i标准改良,并产生一个更有效的错误恢复机制。


为满足小型、低成本设备的无线联网要求,2000年12月IEEE成立了IEEE802.15.4工作组,致力于定义一种适于固定、便携或移动设备使用的极低复杂度、成本和功耗的低速率无线连接技术——ZigBee技术。本文针对使用PIC18系列单片机及CC2420为RF收发器,从ZigBee节点的硬件及ZigBee通信协议和协议栈方面,介绍了ZigBee无线通信网络的组成。


2002年8月ZigBee联盟成立,由英国Invensys公司、日本三菱电气公司、美国摩托罗拉公司以及荷兰飞利浦半导体公司组成。IEEE802.15.4的ZigBee标准于2003年5月获得批准。


ZigBee技术的物理层和链路层协议主要采用IEEE802.15.4标准,而ZigBee联盟负责网络层和应用层的开发,以及制定其安全协议和市场推广等。IEEE802.15.4定义了两个物理层标准,分别是2.4GHz物理层和868/915 MHz物理层。两个物理层都基于DSSS直接序列扩频技术,使用相同的物理层数据包格式。ZigBee在2.4 GHz频段有16个信道,能够提供250 kb/s的传输速率,采用O-QPSK调制;915 MHz和868 MHz分别是欧洲和美国的ISM 频段,这两个频段的引入避免了2.4 GHz附近各种无线通信设备的相互干扰。在916MHz频段有10个信道,传输速率为是40 kb/s,在868 MHz频段只有一个信道,传输速率为20 kb/s,这两个频段都采用BPSK调制。


2开发环境

赛灵思公司(Xilinx, Inc.)宣布推出其ISE  Design Suite10.1版。这一统一的整体解决方案为FPGA逻辑、嵌入式和DSP设计人员提供了赛灵思的整个设计工具产品线,其中的设计工具具有完全的互操作能力。ISE Design Suite 10.1版以平均运行速度快两倍的特性极大地加快了设计实施速度。因此设计人员可以在一天时间里完成多次反复设计。今天的发布另外一个重要意义就是新版本采用了SmartXplorer 技术, 这一技术专门为解决设计人员所面临的时序收敛和生产力这两大艰巨挑战而开发。SmartXplorer技术支持在多台Linux主机上进行分布式处理,可在一天时间里完成更多次实施过程。通过利用分布式处理和多种实施策略,性能可以提升多达38%。SmartXplorer技术同时还为用户利用独立的时序报告监控每个运行实例提供相应的工具。  


ISE  Foundation 中PlanAhead Lite工具的应用,为用户提供了屡获殊荣的PlanAhead设计和分析工具所拥有的强大布局规划和分析功能的一个子集。免费提供的PlanAhead Lite采用了革命性的PinAhead技术。这一直观的解决方案旨在简化管理目标FPGA和PCB之间接口的复杂性。PinAhead技术支持在设计较早阶段智能实现引脚定义,从而避免了通常在设计后期发生的与引脚布局相关的修改。这种修改过去通常必须通过交互式引脚布局才能完成设计规模检查。在PinAhead工具中,引脚分配完成后,还可以使用逗号分割值(CSV)文件或通过VHDL或Verilog头文件输出I/O端口信息。


ISE Design Suite10.1的推出还进一步简化了确定最优实现设置的过程。现在设计人员还可规定和设置自己独特的设计目标,可以是性能最大、优化器件利用、降低动态功耗、或者是实施时间最短。利用这一资源面积优化策略,逻辑资源利用情况平均可节约10%。 


ISE Design Suite 10.1还同时受益于赛灵思公司与业界领先的EDA供应商之一Mentor Graphics公司的联合协作。通过使用IEEE IP加密模型,ISE Design Suite 10.1的运行速度最快可达原来的两倍。新的性能优化BRAM, DSP和 FIFO仿真模型进一步将RTL仿真运行时间缩短了一倍。 


业界研究表明,满足功率预算是FPGA设计人员面临的一项越来越大的挑战,特别是工艺几何尺寸的不断缩小进一步加剧了这一问题。ISE Design Suite 10.1为用户提供了在设计过程中尽早分析功率要求的功能,同时还可以在设计过程中优化动态功率。 


第二代XPower功率分析工具提供了改善的用户接口,按照模块、结构层次、电源轨和使用的资源分析功率更为容易,因此进一步增强了功率估算功能。信息可以文本和HTML报告格式给出。与其它逻辑供应商提供的静态估算网页相比,这是一项巨大进步,同时在提供准确的功耗信息方面是一个飞跃。


ISE Design Suite 10.1提供了便捷全面的功率优化功能。利用集成的“功率优化设计目标”功能,用户可以简单地一步完成功率优化流程。通过映射和布局布线算法的改进,对于采用65nm Virtex -5器件和Spartan -3 Generation FPGA的设计动态功率平均可降低10%和12%。


为帮助用户更快速地实现优化嵌入式和DSP设计,ISE Design Suite 10.1 还对赛灵思嵌入式和DSP工具进行了进一步的易用性改进。例如统一的互操作性保证了用户可以在ISE Design Suite 10.1 容易地增添System Generator模块。EDK 和 System Generator for DSP技术之间不同工具的集成得到进一步增强,从而能够为同时涉及嵌入式和信号处理的更复杂FPGA SoC设计提供支持。


ISE Design Suite 10.1 包括 ISE Foundation、嵌入式开发套件 (EDK)、System Generator for DSP、 AccelDSP 综合工具、ChipScope  Pro 分析仪和ChipScope Pro Serial I/O 工具、 PlanAhead设计和分析工具以及ISE仿真器。用户可以通过购买DVD或网络下载方式安装领域专用的DSP、嵌入式和逻辑设计产品。利用电子交付流程做为主要的产品提供方法,因此用户不仅可以获得所购买的产品,还可以快速获得赛灵思其它设计工具的评估版本。 


3系统方案



4实现原理

CC2420有33个16位配置寄存器、15个命令选通寄存器、1个128字节的RX RAM、1个128字节的TX RAM、1个112字节的安全信息存储器。TX和RX RAM的存取可通过地址或者用两个八位的寄存器,第二种情况对内存的访问象访问FIFO缓冲区那样。不能读/写任何数据到安全信息RAM并且不能把TX RAM和RX RAM作为内存来访问,只能以FIFOS的方式。对寄存器的操作通过SPI接口,如下所述的一个3线接口。以从属方式使用SPI还必须考虑以下几个引脚上的信号:FIFO、FIFOP、SFD、CCA和VREG_EN与 RF_RESET_的驱动。通过寄存器赋值可以实现CC2420无线通信的控制,还可以实现往TXFIFO传送数据和RXFIFO读取数据。


AES(The Advanced Encryption Standard)是美国国家标准与技术研究所用于加密电子数据的规范。它被预期能成为人们公认的加密包括金融、电信和政府数字信息的方法。美国国家标准与技术研究所(NIST)在2002年5月26日建立了新的高级数据加密标准(AES)规范。AES 是一个新的可以用于保护电子数据的加密算法。明确地说,AES 是一个迭代的、对称密钥分组的密码,它可以使用128、192 和 256 位密钥,并且用 128 位(16字节)分组加密和解密数据。与公共密钥密码使用密钥对不同,对称密钥密码使用相同的密钥加密和解密数据。通过分组密码返回的加密数据的位数与输入数据相同。迭代加密使用一个循环结构,在该循环中重复置换(permutations )和替换(substitutions)输入数据


5系统实现

本作品使用Xilinx公司的FPGA产品系列Spartan 3E,射频模块采用Ti-Chipcon公司的CC2420,工作在2.4GHz频段。程序使用Verilog语言编写,可以实现两块板子之间的双工通信,支持250kbps的传输速率。通信采用AES加密,带有CRC校验及地址验证,实现了基于FPGA的无线通信安全协议。


5.1加密算法

AES分组密码算法通常由密钥扩展算法和加密(解密)算法两部分组成。本作品采用128位AES加密算法。密钥扩展算法将4字节用户主密钥扩展成10个子密钥。加密算法由,字节替换,行变换,列混合,以及轮密钥加密组成。混乱和密钥扩散是分组密码算法的基本原则。流程图如下图:

图:128位AES加密流程图


图:128位AES解密流程图

代码实现使用如下几个模块:

module aes(clk,reset,load_i,decrypt_i,data_i,key_i,ready_o,data_o);

module subbytes(clk,reset,start_i,decrypt_i,data_i,ready_o,data_o,sbox_data_o,sbox_data_i,sbox_decrypt_o);

module mixcolum(clk,reset,decrypt_i,start_i,data_i,ready_o,data_o);

module word_mixcolum(in,outx,outy);

module keysched(clk,reset,start_i,round_i,last_key_i,new_key_o,ready_o,sbox_access_o,sbox_data_o,sbox_data_i,sbox_decrypt_o);


5.2通信模块

流程图如下:






评论

技术专区