-
Notifications
You must be signed in to change notification settings - Fork 28
Structure
PROLEAD's structure consists of two directories.
- The
inc
folder contains all header files (.hpp
) encompassing the function declarations. - The
src
folder contains all source files (.cpp
) encompassing the function definitions.
All files related to the evaluation of hardware circuits are stored in the Hardware
subdirectories (inc/Hardware
and inc/Hardware
) while the Util
subdirectory stores all files that declare and define generic functions.
The PROLEAD file (src/PROLEAD.cpp
) defines the main function of PROLEAD.
The Execute files (inc/Hardware/Execute.hpp
and src/Hardware/Execute.cpp
) define the execution of PROLEAD based on a given set of command line parameters. These files implement the following functions:
Executes PROLEAD based on a given set of command line parameters.
CommandLineParameterStruct& Parameter - The command line parameters.
(none)
The Prepare files (inc/Hardware/Prepare.hpp
and src/Hardware/Prepare.cpp
) define all functions for preparation before the actual evaluation takes place. These files implement the following functions:
Prepares everything for the evaluation.
CommandLineParameterStruct& Parameter - The command line parameters.
Hardware::CircuitStruct& Circuit - The hardware circuit.
Hardware::LibraryStruct& Library - The circuit library.
Hardware::SettingsStruct& Settings - The evaluation settings.
Hardware::ProbesStruct& Probes - The probes.
Hardware::SimulationStruct& Simulation - The simulation settings.
Hardware::SharedDataStruct*& SharedData - The shared data.
(none)
Computes the combinational depth (number of subsequent combaintionl gates) of all cells and signals.
Hardware::CircuitStruct& Circuit - The hardware circuit.
Hardware::LibraryStruct& Library - The circuit library.
(none)
Places standard probes on all considered register inputs and primary outputs of the circuit.
Hardware::CircuitStruct& Circuit - The hardware circuit.
Hardware::LibraryStruct& Library - The circuit library.
Hardware::SettingsStruct& Settings - The evaluation settings.
Hardware::ProbesStruct& Probes - The probes.
(none)
Extends a standard probe to a glitch-extended probe.
Hardware::CircuitStruct* Circuit - The hardware circuit.
Hardware::LibraryStruct* Library - The circuit library.
Hardware::SettingsStruct* Settings - The evaluation settings.
int MainSignalIndex - The signal index of the standard probe.
int SignalIndex - The signal index of the current probe extension.
int* Buffer_int - The list of glitch-extensions.
(none)
Prepares the simulation settings.
Hardware::CircuitStruct& Circuit - The hardware circuit.
Hardware::SettingsStruct& Settings - The evaluation settings.
Hardware::ProbesStruct& Probes - The probes.
Hardware::SimulationStruct& Simulation - The simulation settings.
char* EvaluationResultFolderName - The name of the result directory.
(none)
Prepares the shared data.
Hardware::CircuitStruct* Circuit - The hardware circuit.
Hardware::SettingsStruct* Settings - The evaluation settings.
Hardware::SharedDataStruct* SharedData - The shared data.
(none)
The GenerateProbingSets files (inc/Hardware/GenerateProbingSets.hpp
and src/Hardware/GenerateProbingSets.cpp
) define all functions for generating the probing sets for evaluation. These files implement the following functions:
Does the complete generation of all required probing sets.
Hardware::SettingsStruct& Settings - The evaluation settings.
Hardware::SimulationStruct& Simulation - The simulation settings.
Hardware::TestStruct& Test - The evaluation details.
(none)
Generates a list of all considered standard probes and a second list with all considered glitch extensions.
Hardware::SimulationStruct& Simulation - The simulation settings.
Hardware::TestStruct& Test - The evaluation details.
(none)
Generates all multivariate probing sets.
Hardware::SettingsStruct& Settings - The evaluation settings.
Hardware::SimulationStruct& Simulation - The simulation settings.
Hardware::TestStruct& Test - The evaluation details.
(none)
Generates all univariate probing sets.
Hardware::SimulationStruct& Simulation - The simulation settings.
Hardware::TestStruct& Test - The evaluation details.
(none)
Checks whether a probing set satisfies the distance bounds.
Hardware::SettingsStruct& Settings - The evaluation settings.
Hardware::TestStruct& Test - The evaluation details.
std::vector& ProbingSet - A single probing set.
(none)
Extend probing sets to glitch-extended probing sets.
Hardware::SimulationStruct& Simulation - The simulation settings.
Hardware::TestStruct& Test - The evaluation details.
unsigned int Start - The index of the first probing set.
unsigned int End - The index of the last probing set.
(none)
Removes all duplicates (probes that occur twice or more) from the probing sets.
Hardware::TestStruct& Test - The evaluation details.
unsigned int Start - The index of the first probing set.
unsigned int End - The index of the last probing set.
(none)
Removes all probing sets which are fully covered by another probing set.
Hardware::SettingsStruct& Settings - The evaluation settings.
Hardware::SimulationStruct& Simulation - The simulation settings.
Hardware::TestStruct& Test - The evaluation details.
unsigned int Start - The index of the first probing set.
unsigned int End - The index of the last probing set.
(none)
Initialize (pre-allocate) the distributions of all probing set in compact mode.
Hardware::SettingsStruct& Settings - The evaluation settings.
Hardware::SimulationStruct& Simulation - The simulation settings.
Hardware::TestStruct& Test - The evaluation details.
(none)
The Simulate files (inc/Hardware/Simulate.hpp
and src/Hardware/Simulate.cpp
) define all functions for the simulation procedure. These files implement the following functions:
Simulates the result of a single operation.
Hardware::OperationStruct Operation - The operation to evaluate.
uint64_t *Values - The input state.
char Intermediate - The intermediate state index.
(none)
Simulates the whole circuit.
Hardware::CircuitStruct& Circuit - The hardware circuit.
Hardware::LibraryStruct& Library - The circuit library.
Hardware::SettingsStruct& Settings - The evaluation settings.
Hardware::SimulationStruct& Simulation - The simulation settings.
Hardware::SharedDataStruct* SharedData - The shared data.
int SimulationIndex - The simulation index.
boost::mt19937& ThreadRng - The PRNG.
(none)
The Analyze files (inc/Hardware/Analyze.hpp
and src/Hardware/Analyze.cpp
) define the main functions for the leakage detection. These files implement the following functions:
Does the whole leakage detecttion.
CommandLineParameterStruct& Parameter - The command line parameters.
Hardware::CircuitStruct& Circuit - The hardware circuit.
Hardware::LibraryStruct& Library - The circuit library.
Hardware::SettingsStruct& Settings - The evaluation settings.
Hardware::ProbesStruct& Probes - The probes.
Hardware::SimulationStruct& Simulation - The simulation settings.
Hardware::SharedDataStruct* SharedData - The shared data.
Hardware::TestStruct& Test - The evaluation details.
(none)
Evaluates the robust probing security of the circuit.
CommandLineParameterStruct& Parameter - The command line parameters.
Hardware::CircuitStruct& Circuit - The hardware circuit.
Hardware::LibraryStruct& Library - The circuit library.
Hardware::SettingsStruct& Settings - The evaluation settings.
Hardware::ProbesStruct& Probes - The probes.
Hardware::SimulationStruct& Simulation - The simulation settings.
Hardware::SharedDataStruct* SharedData - The shared data.
Hardware::TestStruct& Test - The evaluation details.
(none)