KeccakTools
|
#include <Keccak-fDCLC.h>
Public Member Functions | |
ListOfRowPatterns () | |
void | add (RowValue aValue, int aWeight) |
void | display (ostream &fout) const |
Public Attributes | |
vector< RowValue > | values |
vector< int > | weights |
bool | minMaxInitialized |
int | maxWeight |
int | minWeight |
As a utility class for KeccakFDCLC, this class lists the output row patterns (differences or linear masks) compatible with a given row input pattern through either χ or χ-1. The main attribute is values, which lists all the corresponding output row patterns. Associated with each output value (same index in the vector), its propagation weight is in the vector weights. Note that the values are sorted in increasing weight order, so one can start looking for the outputs with lowest weight first. The maxWeight and minWeight attributes indicate the maximum and minimum propagation weights present, respectively.
ListOfRowPatterns::ListOfRowPatterns | ( | ) | [inline] |
This constructor initializes the output patterns to the empty set.
void ListOfRowPatterns::add | ( | RowValue | aValue, |
int | aWeight | ||
) |
This function adds a possible output pattern, along with an associated propagation weight, while inserting it at the right place to ensure that they are listed with increasing propagation weights.
aValue | An output pattern. |
aWeight | Its associated propagation weight. |
void ListOfRowPatterns::display | ( | ostream & | fout | ) | const |
This function displays the possible patterns and their weights.
fout | The stream to display to. |
The maximum propagation weight in weights.
True iff maxWeight and minWeight are meaningful.
The minimum propagation weight in weights.
vector<RowValue> ListOfRowPatterns::values |
The list of output row patterns (differences or selection vectors) compatible with a given row input pattern.
vector<int> ListOfRowPatterns::weights |
The list of propagation weights, for each row pattern, i.e., weights[i] is the weight of values[i].