An MDS matrix (maximum distance separable) is a
matrix representing a function with certain
diffusion properties that have useful applications in
cryptography. Technically, an
matrix
over a
finite field is an MDS matrix if it is the
transformation matrix of a
linear transformation from
to
such that no two different
-tuples of the form
coincide in
or more components.
Equivalently, the set of all
-tuples
is an
MDS code
In coding theory, the Singleton bound, named after Richard Collom Singleton, is a relatively crude upper bound on the size of an arbitrary block code C with block length n, size M and minimum distance d. It is also known as the Joshibound. proved b ...
, i.e., a
linear code that reaches the
Singleton bound.
Let
be the matrix obtained by joining the
identity matrix
In linear algebra, the identity matrix of size n is the n\times n square matrix with ones on the main diagonal and zeros elsewhere.
Terminology and notation
The identity matrix is often denoted by I_n, or simply by I if the size is immaterial o ...
to
. Then a necessary and sufficient condition for a matrix
to be MDS is that every possible
submatrix obtained by removing
rows from
is
non-singular. This is also equivalent to the following: all the sub-determinants of the matrix
are non-zero. Then a binary matrix
(namely over the field with two elements) is never MDS unless it has only one row or only one column with all components
.
Reed–Solomon codes have the MDS property and are frequently used to obtain the MDS matrices used in cryptographic algorithms.
Serge Vaudenay
Serge Vaudenay (born 5 April 1968) is a French cryptographer and professor, director of the Communications Systems Section at the École Polytechnique Fédérale de Lausanne
Serge Vaudenay entered the École Normale Supérieure in Paris as a '' ...
suggested using MDS matrices in
cryptographic primitive
Cryptographic primitives are well-established, low-level cryptographic algorithms that are frequently used to build cryptographic protocols for computer security systems. These routines include, but are not limited to, one-way hash functions and ...
s to produce what he called ''multipermutations'', not-necessarily linear functions with this same property. These functions have what he called ''perfect diffusion'': changing
of the inputs changes at least
of the outputs. He showed how to exploit imperfect diffusion to
cryptanalyze functions that are not multipermutations.
MDS matrices are used for diffusion in such
block cipher
In cryptography, a block cipher is a deterministic algorithm operating on fixed-length groups of bits, called ''blocks''. Block ciphers are specified cryptographic primitive, elementary components in the design of many cryptographic protocols and ...
s as
AES
AES may refer to:
Businesses and organizations Companies
* AES Corporation, an American electricity company
* AES Data, former owner of Daisy Systems Holland
* AES Eletropaulo, a former Brazilian electricity company
* AES Andes, formerly AES Gener ...
,
SHARK,
Square,
Twofish,
Anubis,
KHAZAD
In cryptography, KHAZAD is a block cipher designed by Paulo S. L. M. Barreto together with Vincent Rijmen, one of the designers of the Advanced Encryption Standard ( Rijndael). KHAZAD is named after Khazad-dûm, the fictional dwarven realm in t ...
,
Manta,
Hierocrypt
In cryptography, Hierocrypt-L1 and Hierocrypt-3 are block ciphers created by
Toshiba in 2000. They were submitted to the NESSIE project, but were not selected. Both
algorithms were among the cryptographic techniques recommended for Japanese gover ...
,
Kalyna and
Camellia, and in the
stream cipher
stream cipher is a symmetric key cipher where plaintext digits are combined with a pseudorandom cipher digit stream (keystream). In a stream cipher, each plaintext digit is encrypted one at a time with the corresponding digit of the keystream ...
MUGI
In cryptography, MUGI is a pseudorandom number generator (PRNG) designed for use as a stream cipher. It was among the cryptographic techniques recommended for Japanese government use by CRYPTREC in 2003, however, has been dropped to "candidate" ...
and the
cryptographic hash function Whirlpool.
References
*
*
*
{{crypto-stub
Cryptography