MMB (cipher)
MMB is a symmetric-key block cipher algorithm submitted to the NESSIE project by Paulo S. L. M. Barreto and Vincent Rijmen. It's a substitution-permutation network (SPN) based cipher. The cipher's design aimed for simplicity and strong security against differential and linear cryptanalysis.
MMB operates on a 128-bit block of data and can support key sizes of 128, 192, and 256 bits. The number of rounds varies depending on the key size, with more rounds generally providing greater security. The round function consists of three main layers: a key addition layer, a substitution layer (S-box), and a diffusion layer.
-
Key Addition: The round key is XORed with the current state.
-
Substitution Layer (S-box): MMB utilizes a byte-oriented S-box, which is a highly nonlinear transformation designed to provide confusion. This is a critical component for resisting linear cryptanalysis.
-
Diffusion Layer: This layer provides diffusion by spreading the influence of each input bit across multiple output bits. MMB employs a Maximum Distance Separable (MDS) matrix in its diffusion layer to ensure high branch number, which is beneficial for resistance against differential cryptanalysis.
While MMB was considered a promising candidate during the NESSIE evaluation, it ultimately wasn't selected as one of the final recommended algorithms. Nonetheless, it contributed to the research and understanding of block cipher design principles. Later cryptanalysis revealed potential weaknesses, which are documented in subsequent research papers.