首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

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

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

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通信模块
        流程图如下:

       

继承事业,薪火相传
返回列表