基于单片机和FPGA的网络数据加密实现
FPGA的模块控制由两个独立的状态机组成,用于处理加密算法和解密算法,其状态转换如图5所示。本文引用地址://m.amcfsurvey.com/article/192015.htm
系统上电初始化后,由用户向单片机输入初始密钥和算法选择数据,通过SPI接口送入FPGA,FPGA接收到密钥后将初始密钥传给算法模块,算法模块初始化后产生同步Gold码,并等待数据,当待加密数据有效时,启动加密算法;当数据无效时,再次进入等待数据状态。相应地,解密模块先检测起始的同步Gold码,检测到后,当待解密数据有效时,启动解密算法,当待解密数据无效时,再次进入等待数据状态。如此往复,完成数据的加密解密过程。在密钥传输过程中,由于两种算法所需的初始密钥位数不同,当使用w7算法时,初始密钥在送入FPGA中后还需二次扩展达到所需的位数。
4 仿真与分析
采用QuartuslI 8.0软件仿真FPGA功能。共用4 865个逻辑单元,1 024 bit的片上存储位,时序分析得到最大工作频率为95.79 MHz。仿真加密时序如图6所示。
5 结论
通过对整个设计的调试验证,结果满足设计要求。整个系统具有较高的安全性和保密性,可为要求通信安全的网络应用提供一种基于硬件的加密方式,基于FPGA的加密算法设计具有很高的灵活性,如果采用更加先进的加密算法,可进一步提高系统的安全性和保密性。
pos机相关文章:pos机原理
评论