PROLEAD
A Probing-Based Leakage Detection Tool for Hardware and Software
|
Defines all settings regarding software simulations. More...
#include <Definitions.hpp>
Classes | |
struct | CodeSection |
Defines how the Emulator models the code section. More... | |
struct | MemoryRange |
Defines how the Emulator models the memory. More... | |
Public Attributes | |
int | Max_no_of_Threads |
The maximum number of threads PROLEAD can use for parallelism. | |
int | NumberOfGroups |
The number of user-defined groups. | |
int | NumberOfGroupValues |
The size of the group values, i.e. their bit length. | |
char | CompactDistributions |
Decision whether the evaluation should be performed in compact or normal mode. | |
char | MinimizeProbeSets |
Decision whether the number of probing sets should be minimized before the evaluation. | |
int ** | Group_Values = NULL |
The values assigned to the user-defined groups. | |
int * | MaxNumberOfSharesGroupValues |
The number of shares per input bit. | |
int | Hardware = 0 |
Decistion whether PROLEAD will be used for software or hardware. | |
int | ClockSignal = 0 |
The index of the clock signal. | |
int | Max_No_ClockCycles = 0 |
The maximum number of clock cycles to simulate. | |
int | Max_No_ReportEntries |
The maximum number of entries in the report. | |
int | NumberOfAlwaysRandomInputs |
Number of fresh random inputs. | |
int * | AlwaysRandomInputs = NULL |
Indices of the fresh random input signals. | |
int | InitialSim_NumberOfInputs |
The number of inputs which are assigned to initialize the simulation. | |
int | InitialSim_NumberOfClockCycles |
The number of clock cycles to initialize the simulation. | |
int ** | InitialSim_Inputs = NULL |
The indices of the initialization signals. | |
char ** | InitialSim_InputName = NULL |
A list of input names to create a link for the emulator. | |
std::unordered_map< std::string, uint32_t > | InitialSim_PositionInEmulatorRam |
int * | InitialSim_InputsLength = NULL |
uint64_t ** | InitialSim_Values = NULL |
The signal values during the initialization cycles. | |
uint8_t * | InitialSim_IsInitialized = NULL |
int | EndSimCondition_ClockCycles |
The number of clock cycles after which the simulation terminates. | |
int | EndSimCondition_NumberOfSignals |
The bit width of the signal which terminates the simulation. | |
int * | EndSimCondition_Signals = NULL |
The indices of the single-bit signals terminating the simulation. | |
uint64_t * | EndSimCondition_Values = NULL |
The values the signals have to reach to terminate the simulation. | |
int | EndSim_NumberOfWaitCycles = 0 |
Number of cycles to wait after each simulation. | |
int | TestOrder = 0 |
The security order to test. | |
int | TestMultivariate = 0 |
Decision whether univariate or multivariate adversaries should be considered. | |
int | MaxDistanceMultivariet = 0 |
The maximum distance in time, i.e. clock cycles, for multivariate adversaries. | |
int | TestTransitional = 0 |
Decision whether transitional leakage is included. | |
int | NumberOfTestClockCycles = 0 |
The number of clock cycles in which the adversary can place probes. | |
int * | TestClockCycles = NULL |
The particular clock cycles the adversary can target. | |
uint64_t | NumberOfSimulations = 0 |
The total number of simulations. | |
uint64_t | NumberOfStepSimulations = 0 |
The number of simulations before the simulations are evaluated. | |
uint64_t | NumberOfStepSimulationsToWrite = 0 |
The number of simulations before a report is written. | |
mulator::Architecture | arch |
ISA version of the binary. | |
MemoryRange | flash |
Flash memory region for emulator. | |
MemoryRange | ram |
RAM memory region for emulator. | |
mulator::u32 | start_address |
address of cipher where PROLEAD starts to evaluate | |
mulator::u32 | main_address |
start address of main function | |
std::vector< CodeSection > | binary |
std::vector< mulator::u32 > | halt_addresses |
std::vector< mulator::u32 > | symbol_addresses |
std::unordered_map< mulator::u32, std::string > | symbol_names |
mulator::u32 | length_occupied_ram |
mulator::u32 | randomness_start_addr |
start address of emulator internal randomness section | |
mulator::u32 | randomness_end_addr |
end address of emulator internal randomness section | |
mulator::u32 | randomness_segment_length |
length of emulator internal randomness section | |
mulator::u32 | num_threads |
uint32_t | NumberOfPipelineStages |
number of pipeline stages provided by the user | |
std::string | funcContainingCipher |
name of function containing cipher to search in disassembled file | |
std::string | compilerFlags |
compiler flags that will be parsed to tell the compiler how to compile | |
std::vector< std::string > | externalBinaryInformation |
contains path to binary, disassembled file and .map file in case of directly provided binary | |
std::string | externalMake |
Defines all settings regarding software simulations.
Definition at line 30 of file Definitions.hpp.
int* Software::SettingsStruct::AlwaysRandomInputs = NULL |
Indices of the fresh random input signals.
Definition at line 47 of file Definitions.hpp.
mulator::Architecture Software::SettingsStruct::arch |
ISA version of the binary.
Definition at line 97 of file Definitions.hpp.
std::vector<CodeSection> Software::SettingsStruct::binary |
Definition at line 102 of file Definitions.hpp.
int Software::SettingsStruct::ClockSignal = 0 |
The index of the clock signal.
Definition at line 42 of file Definitions.hpp.
char Software::SettingsStruct::CompactDistributions |
Decision whether the evaluation should be performed in compact or normal mode.
Definition at line 35 of file Definitions.hpp.
std::string Software::SettingsStruct::compilerFlags |
compiler flags that will be parsed to tell the compiler how to compile
Definition at line 114 of file Definitions.hpp.
int Software::SettingsStruct::EndSim_NumberOfWaitCycles = 0 |
Number of cycles to wait after each simulation.
Definition at line 62 of file Definitions.hpp.
int Software::SettingsStruct::EndSimCondition_ClockCycles |
The number of clock cycles after which the simulation terminates.
Definition at line 58 of file Definitions.hpp.
int Software::SettingsStruct::EndSimCondition_NumberOfSignals |
The bit width of the signal which terminates the simulation.
Definition at line 59 of file Definitions.hpp.
int* Software::SettingsStruct::EndSimCondition_Signals = NULL |
The indices of the single-bit signals terminating the simulation.
Definition at line 60 of file Definitions.hpp.
uint64_t* Software::SettingsStruct::EndSimCondition_Values = NULL |
The values the signals have to reach to terminate the simulation.
Definition at line 61 of file Definitions.hpp.
std::vector<std::string> Software::SettingsStruct::externalBinaryInformation |
contains path to binary, disassembled file and .map file in case of directly provided binary
Definition at line 115 of file Definitions.hpp.
std::string Software::SettingsStruct::externalMake |
Definition at line 116 of file Definitions.hpp.
MemoryRange Software::SettingsStruct::flash |
Flash memory region for emulator.
Definition at line 98 of file Definitions.hpp.
std::string Software::SettingsStruct::funcContainingCipher |
name of function containing cipher to search in disassembled file
Definition at line 113 of file Definitions.hpp.
int** Software::SettingsStruct::Group_Values = NULL |
The values assigned to the user-defined groups.
Definition at line 37 of file Definitions.hpp.
std::vector<mulator::u32> Software::SettingsStruct::halt_addresses |
Definition at line 103 of file Definitions.hpp.
int Software::SettingsStruct::Hardware = 0 |
Decistion whether PROLEAD will be used for software or hardware.
Definition at line 40 of file Definitions.hpp.
char** Software::SettingsStruct::InitialSim_InputName = NULL |
A list of input names to create a link for the emulator.
Definition at line 52 of file Definitions.hpp.
int** Software::SettingsStruct::InitialSim_Inputs = NULL |
The indices of the initialization signals.
Definition at line 51 of file Definitions.hpp.
int* Software::SettingsStruct::InitialSim_InputsLength = NULL |
Definition at line 54 of file Definitions.hpp.
uint8_t* Software::SettingsStruct::InitialSim_IsInitialized = NULL |
Definition at line 56 of file Definitions.hpp.
int Software::SettingsStruct::InitialSim_NumberOfClockCycles |
The number of clock cycles to initialize the simulation.
Definition at line 50 of file Definitions.hpp.
int Software::SettingsStruct::InitialSim_NumberOfInputs |
The number of inputs which are assigned to initialize the simulation.
Definition at line 49 of file Definitions.hpp.
std::unordered_map<std::string, uint32_t> Software::SettingsStruct::InitialSim_PositionInEmulatorRam |
Definition at line 53 of file Definitions.hpp.
uint64_t** Software::SettingsStruct::InitialSim_Values = NULL |
The signal values during the initialization cycles.
Definition at line 55 of file Definitions.hpp.
mulator::u32 Software::SettingsStruct::length_occupied_ram |
Definition at line 106 of file Definitions.hpp.
mulator::u32 Software::SettingsStruct::main_address |
start address of main function
Definition at line 101 of file Definitions.hpp.
int Software::SettingsStruct::Max_No_ClockCycles = 0 |
The maximum number of clock cycles to simulate.
Definition at line 43 of file Definitions.hpp.
int Software::SettingsStruct::Max_no_of_Threads |
The maximum number of threads PROLEAD can use for parallelism.
Definition at line 32 of file Definitions.hpp.
int Software::SettingsStruct::Max_No_ReportEntries |
The maximum number of entries in the report.
Definition at line 44 of file Definitions.hpp.
int Software::SettingsStruct::MaxDistanceMultivariet = 0 |
The maximum distance in time, i.e. clock cycles, for multivariate adversaries.
Definition at line 66 of file Definitions.hpp.
int* Software::SettingsStruct::MaxNumberOfSharesGroupValues |
The number of shares per input bit.
Definition at line 38 of file Definitions.hpp.
char Software::SettingsStruct::MinimizeProbeSets |
Decision whether the number of probing sets should be minimized before the evaluation.
Definition at line 36 of file Definitions.hpp.
mulator::u32 Software::SettingsStruct::num_threads |
Definition at line 110 of file Definitions.hpp.
int Software::SettingsStruct::NumberOfAlwaysRandomInputs |
Number of fresh random inputs.
Definition at line 46 of file Definitions.hpp.
int Software::SettingsStruct::NumberOfGroups |
The number of user-defined groups.
Definition at line 33 of file Definitions.hpp.
int Software::SettingsStruct::NumberOfGroupValues |
The size of the group values, i.e. their bit length.
Definition at line 34 of file Definitions.hpp.
uint32_t Software::SettingsStruct::NumberOfPipelineStages |
number of pipeline stages provided by the user
Definition at line 112 of file Definitions.hpp.
uint64_t Software::SettingsStruct::NumberOfSimulations = 0 |
The total number of simulations.
Definition at line 70 of file Definitions.hpp.
uint64_t Software::SettingsStruct::NumberOfStepSimulations = 0 |
The number of simulations before the simulations are evaluated.
Definition at line 71 of file Definitions.hpp.
uint64_t Software::SettingsStruct::NumberOfStepSimulationsToWrite = 0 |
The number of simulations before a report is written.
Definition at line 72 of file Definitions.hpp.
int Software::SettingsStruct::NumberOfTestClockCycles = 0 |
The number of clock cycles in which the adversary can place probes.
Definition at line 68 of file Definitions.hpp.
MemoryRange Software::SettingsStruct::ram |
RAM memory region for emulator.
Definition at line 99 of file Definitions.hpp.
mulator::u32 Software::SettingsStruct::randomness_end_addr |
end address of emulator internal randomness section
Definition at line 108 of file Definitions.hpp.
mulator::u32 Software::SettingsStruct::randomness_segment_length |
length of emulator internal randomness section
Definition at line 109 of file Definitions.hpp.
mulator::u32 Software::SettingsStruct::randomness_start_addr |
start address of emulator internal randomness section
Definition at line 107 of file Definitions.hpp.
mulator::u32 Software::SettingsStruct::start_address |
address of cipher where PROLEAD starts to evaluate
Definition at line 100 of file Definitions.hpp.
std::vector<mulator::u32> Software::SettingsStruct::symbol_addresses |
Definition at line 104 of file Definitions.hpp.
std::unordered_map<mulator::u32, std::string> Software::SettingsStruct::symbol_names |
Definition at line 105 of file Definitions.hpp.
int* Software::SettingsStruct::TestClockCycles = NULL |
The particular clock cycles the adversary can target.
Definition at line 69 of file Definitions.hpp.
int Software::SettingsStruct::TestMultivariate = 0 |
Decision whether univariate or multivariate adversaries should be considered.
Definition at line 65 of file Definitions.hpp.
int Software::SettingsStruct::TestOrder = 0 |
The security order to test.
Definition at line 64 of file Definitions.hpp.
int Software::SettingsStruct::TestTransitional = 0 |
Decision whether transitional leakage is included.
Definition at line 67 of file Definitions.hpp.