pub enum SboxVerdict {
Affine,
LinearComponent,
DeterministicDifference,
Quadratic,
NoStructuralWeaknessFound {
differential_uniformity: u32,
linearity: u64,
min_degree: usize,
boomerang_uniformity: Option<u32>,
},
}Expand description
The structural-security verdict on an S-box — the vectorial analogue of rsa_full_audit. It flags
only PROVABLE weaknesses (an exact linear relation, a deterministic difference, a quadratic system); a
clean profile is the honest ceiling, “no structural weakness of these classes,” never a proof of
security (the Chaitin frame in the symmetric world).
Variants§
Affine
Every component is affine — trivially broken; linear cryptanalysis is exact.
LinearComponent
Some component ⟨b, S(x)⟩ is affine (linearity = 2ⁿ): a linear relation among the outputs holds
with probability 1.
DeterministicDifference
Some input difference forces a single output difference (differential uniformity = 2ⁿ).
Quadratic
Algebraic degree 2 — the S-box is a system of quadratic equations, the classic algebraic-attack target.
NoStructuralWeaknessFound
No structural weakness of the above classes. The profile is the honest ceiling, not a security proof.
Trait Implementations§
Source§impl Clone for SboxVerdict
impl Clone for SboxVerdict
Source§fn clone(&self) -> SboxVerdict
fn clone(&self) -> SboxVerdict
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for SboxVerdict
impl Debug for SboxVerdict
Source§impl PartialEq for SboxVerdict
impl PartialEq for SboxVerdict
Source§fn eq(&self, other: &SboxVerdict) -> bool
fn eq(&self, other: &SboxVerdict) -> bool
self and other values to be equal, and is used by ==.