## 1 Introduction  
Network activity has increased significantly in the last two decades. From wired communication, networking data has evolved towards wireless communication thanks to the widespread diffusion of smart mobile devices [1]. Web applications have continued to increase in number and cover a large number of applications, such as healthcare [2], smart mobility [3], e-commerce [4] and social networks [5]. Similarly, in recent years, the interconnection of sensors and actuators with high-performance computing devices and wireless communication has led to the deployment of cyber-physical systems in the paradigm of the Internet-of-Things [6, 7, 8]. The high volume of exchanged data traffic has resulted in increased security threats due to cyber-attacks that exploit the system's vulnerabilities for unauthorized access to the system, stealing personal information and/or creating damage to the system [9, 10]. Several techniques have been adopted to mitigate the risks of cyber-attacks, such as authentication procedures to prevent unauthorized access to the system [11, 12], cryptographic data obfuscation to make the information useless to malicious users listening to private communications [13; 14], as well as firewalls [15; 16] and packet sniffers [17; 18] for the control and monitoring of network traffic. In the case of identity authentication and data obfuscation, the procedure is carried out by using passwords and cryptographic keys that are usually stored in a non-volatile memory. This poses significant security threats since the non-volatile memory can be hacked to disclose confidential information. A technique to mitigate this issue is to replace the non-volatile memory with a physical unclonable function (PUF), a device that generates a unique fingerprint by exploiting the random variations in its parameters generated during the production process [19; 20; 21]. Firewalls and packet sniffers are the basic building blocks for intrusion detection/ prevention systems (IDSs, IPSs). They are used to control and monitor the network traffic and mitigate the security risks resulting from malicious data that exploit the network to reach and compromise vulnerable systems. Firewalls are devices working in active mode, featuring two full duplex ports, which can block the passage of network data if security threats are detected. Packet sniffers, on the other hand, are devices working in passive mode, analyzing the network traffic and sending an alarm message to a remote server if security threats are detected. Firewalls and packet sniffers are usually implemented as software running on a PC. Many software firewalls have been proposed in the literature for the GNU/Linux operating system, exploiting the lptables kernel feature (now superseded by nftables) to set the rules for the discrimination between safe and potentially dangerous data [22; 23; 24]. Similarly, many packet sniffers implemented in software exist, where the most popular are Wireshark [25] and TCPdump [26]. Firewalls and packet sniffers implemented in software can reliably detect network security issues as long as the network data throughput is not too high. On the contrary, when the network data throughput exceeds a certain threshold, the software implementation can lose effectiveness, mainly due to the CPU being unable to keep up with the full network data speed. In the case of high network data throughput, a hardware implementation is preferable. The hardware implementation of firewalls and packet sniffers is usually realized using Application Specific Integrated Circuits (ASICs) since this approach provides the best performance and the minimization of power consumption. However, the ASIC implementation of firewalls and packet sniffers also has significant drawbacks, such as high non-recurring engineering costs and long times for the system design.