-
Notifications
You must be signed in to change notification settings - Fork 27
Hardware beginner's guide
Welcome to the beginner's guide to PROLEAD for hardware design evaluation! Whether you're a hardware enthusiast, an engineer, or a designer, PROLEAD is here to assist you in evaluating your own masked hardware designs. With its powerful features and user-friendly interface, PROLEAD aims to simplify the evaluation process and help you maximize the potential of your designs. In this comprehensive guide, we will take you through the essential steps to effectively evaluate your hardware designs using PROLEAD. By the end of this guide, you will have a solid understanding of how to leverage this amazing tool and make the most out of its features.
Before diving into the evaluation process with PROLEAD, it's important to ensure that you have successfully installed the tool. If you haven't done so already, please refer to Installation for detailed instructions on the installation steps. Once you have PROLEAD up and running, we can begin exploring the step-by-step process of evaluating your masked hardware designs.
The first step in evaluating the side-channel security of a masked hardware design is to design the masked hardware circuit itself. You have the flexibility to use any hardware description language of your choice. However, it is essential to ensure that your final design is synthesizable. To help you understand the concept of a masked hardware circuit and provide you with an example to work with, we have provided a masked VHDL implementation of the AES refered to as CMS, byte-serial AES-128. In the following, we focus on this example. For more examples, we refer to our Examples.
Hint: Designing a masked hardware circuit can be a challenging task. However, there is a solution that can simplify the process and ensure provable security. If you are not familiar with hardware masking or want to streamline the construction of masked hardware designs, AGEMA can help you. With AGEMA, all you need to do is provide your hardware design without masking, and the tool takes care of the rest.
As PROLEAD expects a gate-level netlist written in Verilog, the next step in the process is to synthesize the RTL (Register Transfer Level) code of your design. Synthesis is the process of transforming the RTL description into an optimized gate-level representation suitable for evaluation. For a more detailed description of this step, we refer to Synthesis. To accomplish synthesis effectively, we recommend utilizing either the commercial Synopsys Design Compiler, or the open-source tool, Yosys. In the case of Yosys, we have already provided a ready-to-use synthesis script along with a custom cell library. If you opt for Yosys, you can execute the synthesis script on the RTL code of CMS, byte-serial AES-128 by simply typing the following commands:
cd yosys/syn
bash synthesize.sh vhdl ../../examples/Hardware/AES_Enc_CMS_d1/rtl/ aes_top
Hence, we continue with the netlist created in this step.
In the last step, we invoke PROLEAD to evaluate the probing security of the generated netlist.