KeccakTools

Keccak-fParity.h File Reference

#include "Keccak-fParts.h"
Include dependency graph for Keccak-fParity.h:
This graph shows which files directly or indirectly include this file:

Typedefs

typedef UINT64 PackedParity

Functions

PackedParity getPackedParityFromParity (const RowValue &parity, const unsigned int &z)
RowValue getParityFromPackedParity (const PackedParity &parity, const unsigned int &z)
PackedParity packParity (const vector< RowValue > &parity)
void unpackParity (PackedParity packedParity, vector< RowValue > &parity, unsigned int laneSize)
RowValue getParity (SliceValue slice)
PackedParity getParity (const vector< SliceValue > &state)
void getParity (const vector< SliceValue > &state, vector< RowValue > &parity)
void getParity (const vector< LaneValue > &state, vector< LaneValue > &parity)
void fromSlicesToSheetsParity (const vector< RowValue > &paritySlices, vector< LaneValue > &paritySheets)
void fromSheetsToSlicesParity (const vector< LaneValue > &paritySheets, vector< RowValue > &paritySlices)
void displayParity (ostream &fout, const vector< RowValue > &C, const vector< RowValue > &D)
void writeParity (ostream &out, const vector< RowValue > &C)
void readParity (istream &in, vector< RowValue > &C)

Typedef Documentation

The PackedParity type is one 64-bit word, containing up to 8 5-bit parities, coming from up to 8 slices. The parity of slice z is in the bits corresponding to (0-31)*32^z in the word. See getPackedParityFromParity() and getParityFromPackedParity() for more details.


Function Documentation

void displayParity ( ostream &  fout,
const vector< RowValue > &  C,
const vector< RowValue > &  D 
)

Displays the parity and the θ-effect on an ostream.

Parameters:
foutThe stream to display to.
CThe parity as a vector of rows.
DThe θ-effect as a vector of rows.
void fromSheetsToSlicesParity ( const vector< LaneValue > &  paritySheets,
vector< RowValue > &  paritySlices 
)

This function converts the parity of a state expressed as a vector of parities of each sheet into a vector of parities of each slice.

Precondition:
paritySlices must be initialized with the correct size (lane size).
Parameters:
paritySheetsThe parity as a vector of lanes.
paritySlicesThe parity as a vector of rows.
void fromSlicesToSheetsParity ( const vector< RowValue > &  paritySlices,
vector< LaneValue > &  paritySheets 
)

This function converts the parity of a state expressed as a vector of parities of each slice into a vector of parities of each sheet.

Parameters:
paritySlicesThe parity as a vector of rows.
paritySheetsThe parity as a vector of lanes.
PackedParity getPackedParityFromParity ( const RowValue parity,
const unsigned int &  z 
) [inline]

This function returns a PackedParity with bits set to zero, except for parity at slice z, with a given value.

Parameters:
parityThe parity of the slice with z-coordinate z.
zThe z-coordinate.
Returns:
A value of type PackedParity with the given parity.
RowValue getParity ( SliceValue  slice)

This function computes the parity of a slice.

Parameters:
sliceThe value of a slice.
Returns:
The parity of the given slice value.
void getParity ( const vector< LaneValue > &  state,
vector< LaneValue > &  parity 
)

This function computes the parity of a state, sheet per sheet, and returns it in a vector of lane values.

Parameters:
stateThe value of the state given as a vector of lanes.
parityThe parity of state as a vector of 5 lane values.
PackedParity getParity ( const vector< SliceValue > &  state)

This function computes the parity of a state, and returns it in a PackedParity.

Parameters:
stateThe value of the state given as a vector of slices.
Returns:
The parity of the state.
void getParity ( const vector< SliceValue > &  state,
vector< RowValue > &  parity 
)

This function computes the parity of a state, slice per slice, and returns it in a vector of row values.

Parameters:
stateThe value of the state given as a vector of slices.
parityThe parity of state as a vector of row values.
RowValue getParityFromPackedParity ( const PackedParity parity,
const unsigned int &  z 
) [inline]

This function returns the parity value at slice z in the given PackedParity value.

Parameters:
parityThe parity to read from.
zThe z-coordinate to read from.
Returns:
The parity of the slice with z-coordinate z.
PackedParity packParity ( const vector< RowValue > &  parity)

This function converts from a vector of parity of each slice to a PackedParity value.

Parameters:
parityThe parity of a state as vector of row values.
Returns:
The parity of a state as a PackedParity value.
void readParity ( istream &  in,
vector< RowValue > &  C 
)

Reads the parity from a stream or a file.

Parameters:
foutThe stream to read from.
CThe read parity as a vector of rows.
void unpackParity ( PackedParity  packedParity,
vector< RowValue > &  parity,
unsigned int  laneSize 
)

This function converts from a PackedParity value to a vector of parity of each slice.

Parameters:
packedParityThe parity of a state as a PackedParity value.
parityThe parity of a state as a vector of row values.
laneSizeThe number of slices.
void writeParity ( ostream &  out,
const vector< RowValue > &  C 
)

Writes the parity to a stream or a file.

Parameters:
foutThe stream to write to.
CThe parity as a vector of rows.