
About the Project
Introduction:
For our final project, we wanted to build better hardware security by implementing look-up-table obfuscation onto an FPGA. To do this, we built a sobel edge detector. We used the edge detector to show how the image looks when the design is obfuscated and when it isn't obfuscated.
Obfuscation is when you hide select gates inside a memory chip. You have the option to hide all the gates or only a select amount of gates, which have a major impacts towards the circuit and design. From the gates you selected you can make it appear as if it was a different gate or as if it had a different inputs. By using obfuscation it helps prevent against reverse engineering.
Sobel edge decor is a gray or black and white image that defines the edge of an image.

Abstract:
For our project our goal was to built a better method towards hardware security. There are many approaches to building better hardware security such as IP encryption and permutation blocks. We choose the cheapest and most reliable method, logic locking with obfuscation. Logic locking with obfuscation is a method where you can hide some or all of the gates inside of a memory chip. By hiding some or all of the gates we are able to prevent reverse engineering, malware, trojans and etc.
How we implemented logic locking technique was by hiding some of the gates in our FPGA designs by creating LUTs. We used the FPGA because it is less disruptive towards the design flow, cost effective and flexible.
Our approach started with a simple ALU. We created a simple ALU and uploaded it onto the FPGA. Once we upload the ALU onto the FPGA, we applied the obfuscation algorithm on the ALU and changed some of the gates into LUTs. Afterwards, we applied the key that was given from the obfuscation algorithm to the ALU to allow for it to work correctly. Without it, the ALU would not function properly.
After we finished the ALU, we created a Sobel edge detector. First, we will inputed a static image into the Sobel edge detector. The sobel edge detector will detect the edges of the image and create a white and black image highlighting the edges. Next, we applied the obfuscation algorithm on the edge detector design. Then, we displayed the image onto an external monitor through a VGA. The image displayed depend on the input key. If the input key was correct the image will display correctly, if the key was wrong the image did not display correctly.

Approaches


ALU
To test our approach to obfuscation, an ALU design was proposed. ALU, or arithmetic logic units, are a simple digital design to build, and as such, made a good candidate for our first design to remove difficulty when designing a larger digital design. By removing the difficulty, the group could focus on making sure the process of obfuscating a design and putting it on an FPGA efficiently.
Sobel Edge Detector
With the obfuscation tested and its functionality confirmed it was time to start working on a design that we could visually show. A sobel edge detector with an interactable key was decided as the system to be built because it is easy to see when an edge detector is functioning as intended or not.