CN109039591B - 基于fpga的物联网络信息加密系统的实现方法 - Google Patents

基于fpga的物联网络信息加密系统的实现方法 Download PDF

Info

Publication number
CN109039591B
CN109039591B CN201710435872.4A CN201710435872A CN109039591B CN 109039591 B CN109039591 B CN 109039591B CN 201710435872 A CN201710435872 A CN 201710435872A CN 109039591 B CN109039591 B CN 109039591B
Authority
CN
China
Prior art keywords
module
data
tcp
algorithm module
cryptographic algorithm
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710435872.4A
Other languages
English (en)
Other versions
CN109039591A (zh
Inventor
郭凯乐
熊晓明
詹瑞典
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chipeye Microelectronics Foshan Ltd
Original Assignee
Chipeye Microelectronics Foshan Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Chipeye Microelectronics Foshan Ltd filed Critical Chipeye Microelectronics Foshan Ltd
Priority to CN201710435872.4A priority Critical patent/CN109039591B/zh
Publication of CN109039591A publication Critical patent/CN109039591A/zh
Application granted granted Critical
Publication of CN109039591B publication Critical patent/CN109039591B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms

Abstract

本发明公开了一种基于FPGA的物联网络信息加密系统的实现方法,包括如下步骤:编代码分别实现AES密码算法模块、RSA加密算法模块、TCP/IP协议栈模块和物理不可克隆模块;分别对AES密码算法模块、RSA加密算法模块、TCP/IP协议栈模块和物理不可克隆模块进行逻辑功能的仿真验证;采用SoC FPGA器件,编写相应约束脚本,把AES密码算法模块、RSA加密算法模块、TCP/IP协议栈模块、物理不可克隆模块和约束文件导入软件开发工具,进行综合布局布线和时序分析,把配置数据文件下载到SoC FPGA器件。本发明能保证物联网信息的安全、具有更高的安全性和抗攻击能力。

Description

基于FPGA的物联网络信息加密系统的实现方法
技术领域
本发明涉及信息加密领域,特别涉及一种基于FPGA的物联网络信息加密系统的实现方法。
背景技术
物联网信息保密系统在与云端数据交互的过程中,数据的加解密都是在TCP/IP模型中的应用层进行的,都是采用软件的实现方式;网络协议栈的封装也都是通过内核软件的方式实现的,加密数据通过总线发送到PHY接口芯片,然后传送到云端控制端,云端控制端返回的数据也是加密的,在传送到物联网终端后利用软件实现的方式对数据进行解密,应用层拿到明文后再进行控制信息的响应,依次运行下去。如图1所示,在TCP/IP模型中,网络信息的数据封装是从应用层开始的,首先由应用层加密网络数据,然后依次传送到传输层、网络层、数据链路层和物理层,经过协议层的层层封装最后转换为二进制比特流信号,在传输介质中传送到目的主机,协议层的封装都是采用的软件方式实现的。
由于物联网终端的资源有限,采用处理器软件串行实现的方式,网络信息数据交互较慢,会占用较多的处理器资源,造成信息处理的拥堵;技术难点在于在资源有限的物联网终端中如何提高信息数据处理的吞吐量和并行加密速度;由于软件本身的特点,采用软件实现的方式很容易被黑客攻击、跟踪、调试和反编译等,成为保密系统的安全瓶颈;技术难点在于如何提高系统的抗攻击能力和安全性。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种能保证物联网信息的安全、具有更高的安全性和抗攻击能力的基于FPGA的物联网络信息加密系统的实现方法。
本发明解决其技术问题所采用的技术方案是:构造一种基于FPGA的物联网络信息加密系统的实现方法,包括如下步骤:
A)根据AES对称密码算法ECB模式的数学理论描述,结合硬件描述语言和系统总线AMBA从模块的时序,采用二级流水线的方式,按照每轮的运算流程实现AES密码算法模块;
B)根据RSA的数学原理,采用蒙哥马利模乘算法和5级流水线的设计实现2048比特的RSA加密算法模块,并实现AMBA从模块的时序;
C)根据以太网络帧的封装格式,用Verilog HDL实现用于对传输层、网络层和数据链路层的封包与解包的TCP/IP协议栈模块,通过硬件实现PHY驱动模块;所述PHY驱动模块封装在所述TCP/IP协议栈模块的内部;
D)采用二路选择器实现64级仲裁器PUF电路,将所述64级仲裁器PUF电路和表决器电路进行结合,实现物理不可克隆模块;
E)编写实现底层接口函数;
F)编写相应的testbench测试激励文件,分别对所述AES密码算法模块、RSA加密算法模块、TCP/IP协议栈模块和物理不可克隆模块进行逻辑功能的仿真验证,检验其设计的功能是否正确;
G)分别对所述AES密码算法模块、RSA加密算法模块、TCP/IP协议栈模块和物理不可克隆模块的顶层模块进行逻辑功能的仿真验证,检验整体设计的功能是否正确;
H)在时序验证通过以后,编写ARM应用层C语言测试程序,对所述底层接口函数的正确性进行调试和测试,同时分别针对所述AES密码算法模块、RSA加密算法模块、TCP/IP协议栈模块和物理不可克隆模块编写测试用例,校验模板整体的正确性;
I)采用SoC FPGA器件,编写相应的AMBA从模块的工作时钟、输入输出延时和运行环境的约束脚本,把AES密码算法模块、RSA加密算法模块、TCP/IP协议栈模块、物理不可克隆模块和约束文件导入软件开发工具,进行综合布局布线和时序分析,把生成的配置数据文件下载到SoC FPGA器件,结合ARM硬核和软件进行硬件验证,检验模块设计是否达到时序要求。
在本发明所述的基于FPGA的物联网络信息加密系统的实现方法中,所述底层接口函数包括set_config(address,value)、get_config(address)、read(address)、write(address,value)、chip_check()和ctl_mode(address,value)。
在本发明所述的基于FPGA的物联网络信息加密系统的实现方法中,在对所述AES密码算法模块的电子密码本模式的编写中,支持128比特、192比特和256比特的分组,在每轮变换中仿射变换过程采用ROM查表模式,所述AES密码算法模块的秘钥的存储采用FLASH,通过配置接口配置所述AES密码算法模块的秘钥,在所述AES密码算法模块的顶层封装AMBA的从模块协议,所述AES密码算法模块直接挂在到系统总线上,所述AES密码算法模块的输出直接通过AMBA控制器传送到所述TCP/IP协议栈模块的缓存区。
在本发明所述的基于FPGA的物联网络信息加密系统的实现方法中,所述RSA加密算法模块的实现最高支持2048比特的密钥,采用Montgomery算法实现大数模乘,基于5级流水线实现,所述RSA加密算法模块的顶层的接口封装AMBA协议,所述RSA加密算法模块直接挂载到所述系统总线上,所述RSA加密算法模块的运算密钥存储在其内部的寄存器区,通过内核接口函数对所述RSA加密算法模块的内部寄存器进行配置。
在本发明所述的基于FPGA的物联网络信息加密系统的实现方法中,所述TCP/IP协议栈模块的输出和输入缓存区的大小均是400KB,所述TCP/IP协议栈模块的顶层模块的接口封装AMBA协议,所述传输层支持TCP和UDP协议,所述网络层支持的协议IP和ICMP协议,所述数据链路层支持ARP协议;所述TCP/IP协议栈模块把封装好的以太网帧发送到所述PHY驱动模块,接收时在读取到LAN口接入网线时启动接收状态机并检测数据的有效状态,接收数据时边接收边开始CRC校验和CHECKSUM校验计算,在校验通过后将所述数据写入到接收缓存区,然后产生中断,告知内核已接收到数据,然后通过应用层读取数据。
在本发明所述的基于FPGA的物联网络信息加密系统的实现方法中,所述物理不可克隆模块采用二输入多路选择器结构,内部保留64个64比特的向量表,通过AMBA总线对寄存器区域进行配置,所述物理不可克隆模块的整体输出是一个64比特的指纹数据。
在本发明所述的基于FPGA的物联网络信息加密系统的实现方法中,所述步骤F)中仿真验证的实现过程为:分别对所述AES密码算法模块、RSA加密算法模块、TCP/IP协议栈模块和物理不可克隆模块编写相应的时钟和数据激励文件,启动VCS仿真工具,在波形窗口中观察数据输出结果,借助计算机AES和RSA算法工具和网络协议分析工具,验证数据波形输出的正确性;ARM驱动层和应用层软件调试与验证通过结合gdb调试工具进行操作。
在本发明所述的基于FPGA的物联网络信息加密系统的实现方法中,分别将所述AES密码算法模块、RSA加密算法模块、TCP/IP协议栈模块和物理不可克隆模块例化,结合Vivado Design Suite中提供的先入先出IP核和SoC FPGA器件的ARM硬核,连接成实际的工作门级电路,数据发送时应用层的软件调用底层驱动接口分别对所述AES密码算法模块、RSA加密算法模块、TCP/IP协议栈模块和物理不可克隆模块进行回路测试,先把数据发送到所述AES密码算法模块中的加密模块,数据传回来后再发送到所述AES密码算法模块中的解密模块;在调试所述TCP/IP协议栈模块时采用回路测试的方法,把以太网络接口的发送信号与输出信号相连接,应用层启动传送数据,然后读取数据,比对数据正确性;所述指纹数据通过应用层的软件自动化获取,然后选择64组矢量数据存入所述物理不可克隆模块,并对所述指纹数据进行测试与认证。
实施本发明的基于FPGA的物联网络信息加密系统的实现方法,具有以下有益效果:由于通过软硬件协同交互的方式,这样能保证物联网信息的安全,网络协议封装处理和密码实现均采用硬件的方式实现,结合物理不可克隆技术,相比传统的在应用层以软件方式实现的保密系统具有更高的安全性和抗攻击能力。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为TCP/IP模型的示意图;
图2为本发明基于FPGA的物联网络信息加密系统的实现方法一个实施例中的流程图;
图3为所述实施例中基于FPGA的物联网络信息加密系统的结构示意图;
图4为所述实施例中加密的变换表;
图5为所述实施例中解密的变换表;
图6为所述实施例中采用二级流水线实现的AES密码算法模块的结构示意图;
图7为所述实施例中RSA加密算法模块的结构示意图;
图8为所述实施例中TCP/IP协议栈模块的工作流程图;
图9为所述实施例中物理不可克隆模块的结构示意图;
图10为所述实施例中采集指纹数据后的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明基于FPGA的物联网络信息加密系统的实现方法实施例中,该基于FPGA的物联网络信息加密系统的实现方法的流程图如图2所示。图2中,该基于FPGA的物联网络信息加密系统的实现方法包括如下步骤:
步骤S01根据AES对称密码算法ECB模式的数学理论描述,结合硬件描述语言和系统总线AMBA从模块的时序,采用二级流水线的方式,按照每轮的运算流程实现AES密码算法模块:本步骤中,根据AES对称密码算法ECB模式的数学理论描述,结合硬件描述语言和系统总线AMBA从模块的时序,采用二级流水线的方式,按照每轮的运算流程实现AES密码算法模块。
步骤S02根据RSA的数学原理,采用蒙哥马利模乘算法和5级流水线的设计实现2048比特的RSA加密算法模块,并实现AMBA从模块的时序:本步骤中,根据RSA的数学原理,采用蒙哥马利模乘算法和5级流水线的设计实现2048比特的RSA加密算法模块,并实现AMBA从模块的时序。
步骤S03根据以太网络帧的封装格式,用Verilog HDL实现用于对传输层、网络层和数据链路层的封包与解包的TCP/IP协议栈模块,通过硬件实现PHY驱动模块:本步骤中,根据以太网络帧的封装格式,用硬件描述语言Verilog HDL实现TCP/IP协议栈模块,然后通过硬件实现PHY驱动模块。上述该TCP/IP协议栈模块用于对传输层、网络层和数据链路层的封包与解包,PHY驱动模块封装在TCP/IP协议栈模块的内部,PHY驱动模块为100Mbps PHY芯片的驱动模块。
步骤S04采用二路选择器实现64级仲裁器PUF电路,将64级仲裁器PUF电路和表决器电路进行结合,实现物理不可克隆模块:本步骤中,采用二路选择器实现64级仲裁器PUF电路,将64级仲裁器PUF电路和表决器电路进行结合,实现物理不可克隆模块。
步骤S05编码实现底层接口函数:本步骤中,结合C语言和ARM内核驱动知识,编码实现底层接口函数。该底层接口函数包括set_config(address,value)、get_config(address)、read(address)、write(address,value)、chip_check()和ctl_mode(address,value)。
步骤S06编写相应的testbench测试激励文件,分别对AES密码算法模块、RSA加密算法模块、TCP/IP协议栈模块和物理不可克隆模块进行逻辑功能的仿真验证,检验其设计的功能是否正确:本步骤中,编写相应的testbench测试激励文件,分别对AES密码算法模块、RSA加密算法模块、TCP/IP协议栈模块和物理不可克隆模块进行逻辑功能的仿真验证,检验各模块设计的功能是否正确。
步骤S07分别对AES密码算法模块、RSA加密算法模块、TCP/IP协议栈模块和物理不可克隆模块的顶层模块进行逻辑功能的仿真验证,检验整体设计的功能是否正确:本步骤中,分别对AES密码算法模块、RSA加密算法模块、TCP/IP协议栈模块和物理不可克隆模块的顶层模块进行逻辑功能的仿真验证,检验整体设计的功能是否正确。
步骤S08在时序验证通过以后,编写ARM应用层C语言测试程序,对底层接口函数的正确性进行调试和测试,同时分别针对AES密码算法模块、RSA加密算法模块、TCP/IP协议栈模块和物理不可克隆模块编写测试用例,校验模板整体的正确性:本步骤中,在时序验证通过以后,编写ARM应用层C语言测试程序,对底层接口函数的正确性进行调试和测试,同时分别针对AES密码算法模块、RSA加密算法模块、TCP/IP协议栈模块和物理不可克隆模块编写测试用例,校验模板整体的正确性。
步骤S09采用SoC FPGA器件,编写相应的AMBA从模块的工作时钟、输入输出延时和运行环境的约束脚本,把AES密码算法模块、RSA加密算法模块、TCP/IP协议栈模块、物理不可克隆模块和约束文件导入软件开发工具,进行综合布局布线和时序分析,把生成的配置数据文件下载到SoC FPGA器件,结合ARM硬核和软件进行硬件验证,检验模块设计是否达到时序要求:本步骤中,采用SoC FPGA器件,编写相应的AMBA从模块的工作时钟、输入输出延时和运行环境的约束脚本,把AES密码算法模块、RSA加密算法模块、TCP/IP协议栈模块、物理不可克隆模块和约束文件导入软件开发工具,进行综合布局布线和时序分析,把生成的配置数据文件下载到SoC FPGA器件,结合ARM硬核和软件进行硬件验证,检验模块设计是否达到时序要求。
本发明与现有技术相比,采用了通过硬件实现的TCP/IP协议栈模块,应用层将要传送的数据通过总线直接发送到AES密码算法模块,接着发送到TCP/IP协议栈模块,由TCP/IP协议栈模块完成协议栈的封装与发送;在接收数据的时候刚好相反,先有TCP/IP协议栈模块解析数据,然后发送到AES密码算法模块,最后通过总线直接传送到应用层,这时候应用层得到的数据就是明文。通过软硬件协同交互的方式,保证物联网信息的安全,网络协议封装处理和密码实现均采用硬件的方式实现,结合物理不可克隆技术,相比传统的在应用层以软件方式实现的保密系统具有更高的安全性和抗攻击能力。
图3为本实施例中基于FPGA的物联网络信息加密系统的结构示意图,图3中,Securituy FLASH是安全的闪存存储器,ROM是只读存储器,DDR RAM是多端口内存,EEPROM是可擦写的存储器,USB是通用串行输入输出总线,PHY是网络物理层芯片,Flash CTL是闪存控制器,DRAM CTL是内存控制器,GPIO是通用输入输出接口,PUF module是物理不可克隆模块,ARM CORE是ARM嵌入式处理器核,TCP/IP stack是TCP/IP协议栈,LED是发光二极管,Clock是时钟,OLED是有机电激光显示,VGA是显示器,JTAG是FPGA配置接口,SW是按键。
本实施例中,在对AES密码算法模块的电子密码本模式的编写中,支持128比特、192比特和256比特的分组,在每轮变换中仿射变换过程采用ROM查表模式。图4为本实施例中加密的变换表,图4中,x代表字节的高4比特,y代表字节的低4比特,sbox表示加密字节替代盒。图5为本实施例中解密的变换表。图5中,x代表字节的高4比特,y代表字节的低4比特,S'表示解密字节替代盒。
本实施例中,AES密码算法模块的秘钥的存储采用FLASH,通过配置接口配置AES密码算法模块的秘钥,在AES密码算法模块的顶层封装AMBA的从模块协议,使得AES密码算法模块直接挂在到系统总线上,AES密码算法模块的输出直接通过AMBA控制器传送到TCP/IP协议栈模块的缓存区。
图6为本实施例中采用二级流水线实现的AES密码算法模块的结构示意图,轮变换的总数分为两个相等的部分,分成两个过程实现。图6中,Text_in为输入明文,Key-reg128bit为128比特的密钥寄存器,state为运算的中间状态,SBox为字节替换盒,Shift为字节移位,Mixcol为列混淆变换,Reg 128bit为128比特的寄存器,Logic为组合逻辑,E-key为扩展密钥,X为异或运算,<为比较器。
本实施例中,RSA加密算法模块的实现最高支持2048比特的密钥,采用Montgomery算法实现大数模乘,基于5级流水线实现,图7为本实施例中RSA加密算法模块的结构示意图。图7中,HRESETn引脚用于总线复位,低电平有效;HCLK引脚用于产生总线时钟,所有的信号与该时钟的上升沿相关;HADDR引脚32-bit系统地址总线引脚,HBURST引脚用于Burst类型指示,支持固定长度的4、8和16拍;HPROT引脚用于保护控制信号以外的关于总线访问的信息,主要用在一些需要调用某种级别保护的Slave模块中,该信号表示传输的是否是一个指令或数据访问,或者传输的是特权方式或用户方式,如果Master是内存管理单元,则用来指定是高速缓存还是缓冲器;HSIZE引脚用于传输大小,最大可达1024位;HTRANS引脚用于指示当前传输类型,HWDATA引脚用于在写操作时,写数据总线从Master传输数据到Slave,推荐最小的数据总线宽度为32,但是可以扩展为更高的操作带宽。HWRITE引脚用于表示传输方向,高表示写传输,低表示读传输,该信号与地址信号具有相同的时序,但在Burst传输中,必须保持常值。
HRDATA引脚用于在读操作时,读数据总线将数据从选定的Slave传送到转换器,转换器再传送到Master,数据总线最小的宽度建议为32位,但也可以通过扩展使用更高的位宽。HREADYOUT引脚为高时,HREADYOUT信号表示传输在总线上结束,该信号可以通过拉低来对传输进行扩展。HRESP引脚用于传输响应,如果有传输通过转换器,将向Master提供传输状态信息。当为低时,HRESP信号表示传输状态正常,当为高时,表示传输状态错误。
RSA加密算法模块的顶层的接口封装AMBA协议,用于使RSA加密算法模块直接挂载到系统总线上,RSA加密算法模块的运算密钥存储在其内部的寄存器区,可以通过内核接口函数对RSA加密算法模块的内部寄存器进行配置。
本实施例中,TCP/IP协议栈模块的输出和输入缓存区的大小均是400KB,TCP/IP协议栈模块的顶层模块的接口封装AMBA协议,传输层支持TCP和UDP协议,网络层支持的协议IP和ICMP协议,数据链路层支持ARP协议;UDP协议在传输层的报文头部禁用了CHECKSUM字段,MTU只支持的是1500,禁用了在使用TCP协议时的网络层IP分段,硬件实现TCPCHECKSUM;该TCP/IP协议栈模块内部封装实现了PHY芯片的驱动模块(即PHY驱动模块),可以设置PHY的工作模式,读写PHY芯片的内部寄存器。
发送时,TCP/IP协议栈模块把封装好的以太网帧发送到PHY驱动模块,接收时在读取到LAN口接入网线时启动接收状态机并检测数据的有效状态,接收数据时边接收边开始CRC校验和CHECKSUM校验计算,在校验通过后将数据写入到接收缓存区,然后产生中断,告知内核已接收到数据,然后通过应用层读取数据,发送的时候过程刚好相反。
图8为本实施例中TCP/IP协议栈模块的工作流程图,图8中,在与云端控制端通信时,物联网终端的应用控制端调用内核层的接口函数,把数据传送到AMBA总线控制器模块,然后再传送到AES密码算法模块,接着传递到TCP/IP协议栈模块,最后经由数据链路层传递到云端控制端,接收时刚好相反。
图9为本实施例中物理不可克隆模块的结构示意图,图9中,DFF为触发器,Vectortable为选通矢量表。本实施例中,物理不可克隆模块采用二输入多路选择器结构,内部保留64个64比特的向量表,可以通过AMBA总线对寄存器区域进行配置,仲裁器的输出后紧跟表决器电路,该物理不可克隆模块也实现了AMBA从模块协议,激励脉冲信号的传入是通过寄存器转态转换实现的,物理不可克隆模块的整体输出是一个64比特的指纹数据,用于注册和校验系统的完整性和正确性。
对于上述步骤S06中的仿真验证,其实现过程为:分别对AES密码算法模块、RSA加密算法模块、TCP/IP协议栈模块和物理不可克隆模块编写相应的时钟和数据激励文件,启动VCS仿真工具,在波形窗口中观察数据输出结果,借助计算机AES和RSA算法工具和网络协议分析工具,验证数据波形输出的正确性;ARM驱动层和应用层软件调试与验证通过结合gdb调试工具进行操作;编写相应的testbench测试激励文,采用新思科技的verilogcompiled simulator仿真工具进行模块的功能验证。
本实施例中,硬件验证具体的实现过程如下:分别将AES密码算法模块、RSA加密算法模块、TCP/IP协议栈模块和物理不可克隆模块例化,结合Vivado Design Suite中提供的先入先出IP核和SoC FPGA器件的ARM硬核,连接成实际的工作门级电路,数据发送时应用层的软件调用底层驱动接口分别对AES密码算法模块、RSA加密算法模块、TCP/IP协议栈模块和物理不可克隆模块进行回路测试,先把数据发送到AES密码算法模块中的加密模块,数据传回来后再发送到AES密码算法模块中的解密模块;这样可以比较AES密码算法模块的正确性。
在调试TCP/IP协议栈模块时采用回路测试的方法,把以太网络接口的发送信号与输出信号相连接,应用层启动传送数据,然后读取数据,比对数据正确性;指纹数据通过应用层的软件自动化获取,然后选择64组矢量数据存入所述物理不可克隆模块,并对指纹数据进行测试与认证。
在经过综合布局布线之后,配置数据流下载到FPGA配置芯片中,结合FPGA开发板网络接口,采用联机测试的方式,利用计算机辅助分析工具分析网络帧数据处理的正确性。作为优选的技术方案,把相应的Verilog模块和约束文件导入Xilinx公司综合性的PLD/FPGA开发软件Vivado Design Suite中,借助内嵌的综合器,完成从Verilog设计输入到硬件配置文件的生成。
图10为本实施例中采集指纹数据后的流程图,采集过物理不可克隆的指纹数据以后,在系统首次启动时,会检测系统是否注册,如果没有注册就会提示输入一组相关的指纹数据,若输入正确,则注册成功进入系统,否则无法进入系统,注册数据会永久保存在系统的安全储存区域,在每次系统启动的时候都会检测硬件指纹与注册数据是否匹配,如果匹配则可以安全进入系统,否则不可进入系统。
总之,在TCP/IP协议栈模块的实现过程中,各个协议层的数据段填充、检验和的计算等都是采用硬件并行实现的方式,传输层数据的发送与接收采用的是高速的缓存块,缓存块按照FIFO的调度方式,可以快速的实现数据接收与数据封装,充分利用网络带宽,减少传输延时和网络丢包,减少微处理器的运算负担与系统开销,提高系统的响应速度。
分组密码算法采用硬件并行实现的方式,结合二级流水线设计,提高网络信息加密的速度;AES密码算法模块的硬件化实现增加了密码算法的反编译,调试跟踪的难度,提高系统的抗攻击能力,结合物理不可克隆技术,增加了系统的反克隆能力,提高了系统的安全性。
当用于物联网智能家居时,TCP/IP协议栈模块的硬件化实现,使微处理器的利用率大大降低,在传送较大网络数据信息的时候,至少减少50%的利用率;AES密码算法模块的硬件实现,使密码算法的运算速度大大提高,在与传统的软件实现的相比中,密码的运算速度至少提高3倍。该基于FPGA的物联网络信息加密系统采用的是FPGA可编程门阵列实现,在密码算法的更新迭代中与ASIC专用密码芯片相比,至少可以减少6个月的更新迭代周期;结合物理不可克隆技术使系统的安全性增加了1倍以上;可以大大简化应用层软件的开发与调试,效率增加20%以上。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种基于FPGA的物联网络信息加密系统的实现方法,其特征在于,包括如下步骤:
A)根据AES对称密码算法ECB模式的数学理论描述,结合硬件描述语言和系统总线AMBA从模块的时序,采用二级流水线的方式,按照每轮的运算流程实现AES密码算法模块;在所述AES密码算法模块的顶层封装AMBA的从模块协议,所述AES密码算法模块直接挂载到系统总线上;
B)根据RSA的数学原理,采用蒙哥马利模乘算法和5级流水线的设计实现2048比特的RSA加密算法模块,并实现AMBA从模块的时序;所述RSA加密算法模块的顶层的接口封装AMBA协议,所述RSA加密算法模块直接挂载到所述系统总线上;
C)根据以太网络帧的封装格式,用Verilog HDL实现用于对传输层、网络层和数据链路层的封包与解包的TCP/IP协议栈模块,所述TCP/IP协议栈模块的顶层模块的接口封装AMBA协议,通过硬件实现PHY驱动模块;所述PHY驱动模块封装在所述TCP/IP协议栈模块的内部;所述AES密码算法模块的输出直接通过AMBA控制器传送到所述TCP/IP协议栈模块的缓存区;
D)采用二路选择器实现64级仲裁器PUF电路,将所述64级仲裁器PUF电路和表决器电路进行结合,实现物理不可克隆模块,该物理不可克隆模块实现了AMBA的从模块协议;
E)编写实现底层接口函数;
F)编写相应的testbench测试激励文件,分别对所述AES密码算法模块、RSA加密算法模块、TCP/IP协议栈模块和物理不可克隆模块进行逻辑功能的仿真验证,检验其设计的功能是否正确;
G)分别对所述AES密码算法模块、RSA加密算法模块、TCP/IP协议栈模块和物理不可克隆模块的顶层模块进行逻辑功能的仿真验证,检验整体设计的功能是否正确;
H)在时序验证通过以后,编写ARM应用层C语言测试程序,对所述底层接口函数的正确性进行调试和测试,同时分别针对所述AES密码算法模块、RSA加密算法模块、TCP/IP协议栈模块和物理不可克隆模块编写测试用例,校验模板整体的正确性;
I)采用SoC FPGA器件,编写相应的AMBA从模块的工作时钟、输入输出延时和运行环境的约束脚本,把AES密码算法模块、RSA加密算法模块、TCP/IP协议栈模块、物理不可克隆模块和约束文件导入软件开发工具,进行综合布局布线和时序分析,把生成的配置数据文件下载到SoC FPGA器件,结合ARM硬核和软件进行硬件验证,检验模块设计是否达到时序要求;
所述硬件验证具体的实现过程如下:分别将所述AES密码算法模块、RSA加密算法模块、TCP/IP协议栈模块和物理不可克隆模块例化,结合Vivado Design Suite中提供的先入先出队列IP核和SoC FPGA器件的ARM硬核,连接成实际的工作门级电路,数据发送时应用层的软件调用底层驱动接口分别对所述AES密码算法模块、RSA加密算法模块、TCP/IP协议栈模块和物理不可克隆模块进行回路测试,先把数据发送到所述AES密码算法模块中的加密模块,数据传回来后再发送到所述AES密码算法模块中的解密模块;
在调试所述TCP/IP协议栈模块时采用回路测试的方法,把以太网络接口的发送信号与输出信号相连接,应用层启动传送数据,然后读取数据,比对数据正确性;指纹数据通过应用层的软件自动化获取,然后选择64组矢量数据存入所述物理不可克隆模块,并对所述指纹数据进行测试与认证。
2.根据权利要求1所述的基于FPGA的物联网络信息加密系统的实现方法,其特征在于,所述底层接口函数包括set_config(address,value)、get_config(address)、read(address)、write(address,value)、chip_check()和ctl_mode(address,value)。
3.根据权利要求1或2所述的基于FPGA的物联网络信息加密系统的实现方法,其特征在于,在对所述AES密码算法模块的电子密码本模式的编写中,支持128比特、192比特和256比特的分组,在每轮变换中仿射变换过程采用ROM查表模式,所述AES密码算法模块的秘钥的存储采用FLASH,通过配置接口配置所述AES密码算法模块的秘钥。
4.根据权利要求1或2所述的基于FPGA的物联网络信息加密系统的实现方法,其特征在于,所述RSA加密算法模块的实现最高支持2048比特的密钥,采用Montgomery算法实现大数模乘,基于5级流水线实现,所述RSA加密算法模块的运算密钥存储在其内部的寄存器区,通过内核接口函数对所述RSA加密算法模块的内部寄存器进行配置。
5.根据权利要求1或2所述的基于FPGA的物联网络信息加密系统的实现方法,其特征在于,所述TCP/IP协议栈模块的输出和输入缓存区的大小均是400KB,所述传输层支持TCP和UDP协议,所述网络层支持IP协议和ICMP协议,所述数据链路层支持ARP协议;所述TCP/IP协议栈模块把封装好的以太网帧发送到所述PHY驱动模块,接收时在读取到LAN口接入网线时启动接收状态机并检测数据的有效状态,接收数据时边接收边开始CRC校验和CHECKSUM校验计算,在校验通过后将所述数据写入到接收缓存区,然后产生中断,告知内核已接收到数据,然后通过应用层读取数据。
6.根据权利要求1或2所述的基于FPGA的物联网络信息加密系统的实现方法,其特征在于,所述物理不可克隆模块采用二输入多路选择器结构,内部保留64个64比特的向量表,通过AMBA总线对寄存器区域进行配置,所述物理不可克隆模块的整体输出是一个64比特的指纹数据。
7.根据权利要求1或2所述的基于FPGA的物联网络信息加密系统的实现方法,其特征在于,所述步骤F)中仿真验证的实现过程为:分别对所述AES密码算法模块、RSA加密算法模块、TCP/IP协议栈模块和物理不可克隆模块编写相应的时钟和数据激励文件,启动VCS仿真工具,在波形窗口中观察数据输出结果,借助计算机AES和RSA算法工具和网络协议分析工具,验证数据波形输出的正确性;ARM驱动层和应用层软件调试与验证通过结合gdb调试工具进行操作。
CN201710435872.4A 2017-06-08 2017-06-08 基于fpga的物联网络信息加密系统的实现方法 Active CN109039591B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710435872.4A CN109039591B (zh) 2017-06-08 2017-06-08 基于fpga的物联网络信息加密系统的实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710435872.4A CN109039591B (zh) 2017-06-08 2017-06-08 基于fpga的物联网络信息加密系统的实现方法

Publications (2)

Publication Number Publication Date
CN109039591A CN109039591A (zh) 2018-12-18
CN109039591B true CN109039591B (zh) 2022-04-01

Family

ID=64629373

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710435872.4A Active CN109039591B (zh) 2017-06-08 2017-06-08 基于fpga的物联网络信息加密系统的实现方法

Country Status (1)

Country Link
CN (1) CN109039591B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3709201A1 (en) * 2019-03-13 2020-09-16 Siemens Aktiengesellschaft Method for verifying an execution environment used for execution of at least one hardware-application provided by a configurable hardware module
CN112100698B (zh) * 2020-09-23 2023-10-31 北京万协通信息技术有限公司 一种实现NorFlash安全访问的系统及方法
US11379125B1 (en) 2021-03-31 2022-07-05 International Business Machines Corporation Trusted field programmable gate array
CN113282286B (zh) * 2021-05-31 2024-01-30 北京经纬恒润科技股份有限公司 一种算法开发方法及装置
CN113542377B (zh) * 2021-07-02 2024-04-19 中科亿海微电子科技(苏州)有限公司 一种将不同格式码流下载到fpga的方法及系统
CN113726741B (zh) * 2021-07-28 2024-01-19 浪潮电子信息产业股份有限公司 一种加速卡数据下载方法及相关装置
CN114860570B (zh) * 2022-03-28 2023-12-12 湖南智擎科技有限公司 面向SaaS模式的开发板测评方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102663326A (zh) * 2012-03-12 2012-09-12 东南大学 用于SoC的数据安全加密模块
CN106341266A (zh) * 2016-09-12 2017-01-18 武汉理工大学 具有主动和被动传输模式的硬件tcp/ip协议栈

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1305266C (zh) * 2003-12-19 2007-03-14 深圳国人通信有限公司 基于嵌入式系统的无线局域网接入点设备
CN101145033A (zh) * 2007-10-10 2008-03-19 南京林业大学 农药自动对靶喷雾系统构件化与模块化设计方法
CN103188075B (zh) * 2013-02-01 2016-01-06 广州大学 一种密钥和真随机数发生器及生成密钥和真随机数的方法
CN103839013B (zh) * 2014-02-27 2017-01-25 杭州晟元数据安全技术股份有限公司 基于三延时链的物理不可克隆函数电路结构
CN103973432A (zh) * 2014-05-23 2014-08-06 浪潮电子信息产业股份有限公司 一种基于fpga和usb接口芯片的sm4算法加密设备
CN105933106B (zh) * 2016-04-08 2019-03-05 广东工业大学 基于aes的网络信息加密ip核的设计与实现方法
CN106571924B (zh) * 2016-10-21 2019-07-05 北京智芯微电子科技有限公司 一种物理不可克隆函数电路

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102663326A (zh) * 2012-03-12 2012-09-12 东南大学 用于SoC的数据安全加密模块
CN106341266A (zh) * 2016-09-12 2017-01-18 武汉理工大学 具有主动和被动传输模式的硬件tcp/ip协议栈

Also Published As

Publication number Publication date
CN109039591A (zh) 2018-12-18

Similar Documents

Publication Publication Date Title
CN109039591B (zh) 基于fpga的物联网络信息加密系统的实现方法
CN108628791B (zh) 基于pcie接口的高速安全芯片
CN109194491B (zh) 一种密码评测试验系统及密码评测试验方法
CN108768892A (zh) 一种基于p4的可编程数据平面交换原型的设计与实现
US20130124934A1 (en) Packetizing jtag across industry standard interfaces
Hoffman et al. A high-speed dynamic partial reconfiguration controller using direct memory access through a multiport memory controller and overclocking with active feedback
CN112861468B (zh) 一种软硬件协同仿真验证的方法、装置和介质
CN110958215A (zh) 安全的在线接收的网络分组处理
CN105933106B (zh) 基于aes的网络信息加密ip核的设计与实现方法
CN106650411A (zh) 密码算法验证系统
Mahesh et al. Verification of memory transactions in AXI protocol using system verilog approach
CN105939238B (zh) 一种基于SOC隔离Memory的10Gbps以太网实时数据采集方法
Saarinen Simple AEAD hardware interface (SÆHI) in a SoC: implementing an on-chip Keyak/WhirlBob coprocessor
CN102884744B (zh) 用于保护有待于通过接口传输的数据包的方法和设备
US9727673B1 (en) Simultaneous simulation of multiple blocks using efficient packet communication to emulate inter-block buses
Plasencia-Balabarca et al. A flexible UVM-based verification framework reusable with avalon, AHB, AXI and wishbone bus interfaces for an AES encryption module
CN107770228B (zh) 一种基于CPCI主控的1-Wire通信系统及方法
EP2135386B1 (en) Hardware interface board for connecting an emulator to a network
US11474826B1 (en) Boot image file having a global partition for data processing engines of a programmable device
Tang et al. A debug probe for concurrently debugging multiple embedded cores and inter-core transactions in NoC-based systems
Hessel et al. On the design of a suitable hardware platform for protocol stack processing in LTE terminals
Grammatikakis et al. Multilayer NoC firewall services: case-study on e-health
Badhe et al. Accelerating functional verification of PCI express endpoint by emulating host system using PCI express core
CN111901363B (zh) 一种基于FPGA的5G—Profibus-DP数据加密传输装置
EP4095704B1 (en) Processing system, related integrated circuit, device and method

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant