A round candidate constructed from a previously discovered register candidate.
An S-box candidate discovered within the round function of a round candidate.
SBoxCandidate()=default
Default constructor for SBoxCandidate.
std::set< Gate * > m_output_gates
The output gates of the S-box candidate (usually combinational logic that is input to the linear laye...
const RoundCandidate * m_candidate
The RoundCandidate that the S-box candidate belongs to.
std::vector< Gate * > m_component
The gates of the component which the S-box candidate is part of.
std::set< Gate * > m_input_gates
The input gates of the S-box candidate (will be flip-flops).
~SBoxCandidate()=default
Default destructor for SBoxCandidate.
Database of known S-boxes.
Result< std::vector< SBoxCandidate > > locate_sboxes(const RoundCandidate *candidate)
Try to locate S-box candidates within the combinational next-state logic of the round function candid...
Result< std::string > identify_sbox(const SBoxCandidate &sbox_candidate, const SBoxDatabase &db)
Try to identify an S-box candidate by matching it against a database of known S-boxes under affine eq...
This file contains the S-box database class that holds and manages known cryptographic S-boxes up to ...