#include <Keccak-fDCEquations.h>


Public Member Functions | |
| KeccakFDCEquations (unsigned int aWidth) | |
| void | buildDCTrailFromPair (vector< SliceValue > &a1, vector< SliceValue > &a2, Trail &trail) const |
| void | genDCEquations (ostream &fout, const Trail &trail, bool forSage=false) const |
Protected Member Functions | |
| void | getDCEquations (const vector< SliceValue > &diffIn, const vector< SliceValue > &diffOut, const vector< SymbolicLane > &input, vector< SymbolicBit > &inputRelations) const |
| void | getDCEquations (RowValue diffIn, RowValue diffOut, const vector< SymbolicBit > &inputVariables, vector< SymbolicBit > &inputRelations) const |
| void | displayEquations (ostream &fout, const vector< SymbolicLane > &state, const string &prefixOutput, bool forSage=false) const |
| KeccakFDCEquations::KeccakFDCEquations | ( | unsigned int | aWidth | ) |
This constructor initializes the Keccak-f instance with the given width, see KeccakF::KeccakF().
| void KeccakFDCEquations::buildDCTrailFromPair | ( | vector< SliceValue > & | a1, | |
| vector< SliceValue > & | a2, | |||
| Trail & | trail | |||
| ) | const |
This method produces a differential trail from a pair of inputs. The state values are given before θ, as in the normal order of the round function.
| a1 | The first state of the pair, as a vector of slices. | |
| a2 | The second state of the pair, as a vector of slices. | |
| trail | The output trail. |
| void KeccakFDCEquations::genDCEquations | ( | ostream & | fout, | |
| const Trail & | trail, | |||
| bool | forSage = false | |||
| ) | const |
This method displays the equations from round to round that a pair has to satisfy to follow the given trail.
| fout | The stream to display to. | |
| trail | The trail to follow. | |
| forSage | If true, the equations are displayed in a format suitable for SAGE. In this case, the equations form a comma-separated list of polynomials that must be equal to zero. Otherwise, the equations are displayed in the form X=f(Y). |
| void KeccakFDCEquations::getDCEquations | ( | const vector< SliceValue > & | diffIn, | |
| const vector< SliceValue > & | diffOut, | |||
| const vector< SymbolicLane > & | input, | |||
| vector< SymbolicBit > & | inputRelations | |||
| ) | const [protected] |
This method creates the list of equations that the input of χ must satisfy for the given input difference to propagate to the given output difference.
| void KeccakFDCEquations::getDCEquations | ( | RowValue | diffIn, | |
| RowValue | diffOut, | |||
| const vector< SymbolicBit > & | inputVariables, | |||
| vector< SymbolicBit > & | inputRelations | |||
| ) | const [protected] |
This method creates the list of equations that the input of χ (for one row) must satisfy for the given input difference to propagate to the given output difference.
| void KeccakFDCEquations::displayEquations | ( | ostream & | fout, | |
| const vector< SymbolicLane > & | state, | |||
| const string & | prefixOutput, | |||
| bool | forSage = false | |||
| ) | const [protected] |
This method produces the display of the equations.
1.5.6