Professional Documents
Culture Documents
Irwansyah 2021 J. Phys. Conf. Ser. 1722 012030
Irwansyah 2021 J. Phys. Conf. Ser. 1722 012030
Irwansyah 2021 J. Phys. Conf. Ser. 1722 012030
Abstract. The Maximum Distance Separable (MDS) matrices have an important application
in cryptography, for example see [1]. In order to reduce the implementation complexities, it is
important to consider MDS matrices which are involutory. Some constructions of involutory
MDS matrices can be found in [2, 3]. In this paper, we give some properties related to a
construction of involutory MDS matrices using orthogonal matrices derived from Euclidean
self-dual MDS codes. Then, we do a computer search to find involutory MDS matrices with
small sizes using classical simulated annealing algorithm. The proposed construction is different
compared to the ones in [2, 3].
1. Introduction
A maximum Distance Separable (MDS) matrix is a matrix with all its minors are non-zero.
Also, this matrix can be viewed as a redundant part of the generator matrix of an MDS code.
This type of matrices can be used as a diffusion layer between input and output in an associated
cipher in cryptosystem. For the implementation purpose, it is important to use a MDS matrix
which can reduce the complexities for encryption and decryption process. One way to achieve
lower complexities in those process is to use involutory or orthogonal MDS matrices, see [4].
Generally, the construction of involutory MDS matrices over finite fields is by using some
particular matrices such as Hadamard matrices and Cauchy matrices. Sajadieh et al. [5] proposed
a way to construct involutory MDS matrices by the multiplication of one Vandermonde matrix
and the inverse of another Vandermonde matrix. Gupta and Ray [3] used Cauchy matrices for the
construction of involutory MDS matrices. Recently, Jian et al. [2] described a new structures of
involutory MDS matrices. Moreover, they provided new approaches for constructing lightweight
involutory MDS matrices of size 4 × 4 over F2m . Some other constructions for general MDS
matrices can be found in [9, 10].
In this paper, we describe a different approach to search involutory MDS matrices over
F2m . First, we use the generator matrix of an Euclidean self-dual MDS code to construct an
orthogonal MDS matrix. Then, we use a classical simulated annealing algorithm to construct
an involutory MDS matrix from a given orthogonal MDS matrix. This paper is organized as
follows. Section 2 collects some basic definitions and concepts from coding theory and matrices.
Section 3 describes some properties related to Euclidean self-dual MDS codes, orthogonal MDS
matrices, and involutory MDS matrices. This section also discuss an algorithm for a search of
Content from this work may be used under the terms of the Creative Commons Attribution 3.0 licence. Any further distribution
of this work must maintain attribution to the author(s) and the title of the work, journal citation and DOI.
Published under licence by IOP Publishing Ltd 1
ICW-HDDA-X 2020 IOP Publishing
Journal of Physics: Conference Series 1722 (2021) 012030 doi:10.1088/1742-6596/1722/1/012030
an involutory MDS matrix from a given orthogonal MDS matrix. Section 4 gives a conclusion
and an open problem related to this research.
2. Method
Let F2m be the finite field of 2m elements, and Fn2m be the n-tuple of elements in F2m . Note that,
F2m is an n-dimensional vector space over F2m . A code C of length n over F2m is a subset of Fn2m .
Moreover, a code C is said to be a linear code if it is a subspace of Fn2m . For any c = (c1 , . . . , cn )
in Fn2m , define the Hamming weight of c as wH (c) = |{i|ci 6= 0}| . Moreover, for any linear code
C in Fn2m , define the Hamming distance of C as dH (C) = min c∈C wH (c). A linear code C of
c6=0
length n, dimension k, and Hamming distance d usually noted as [n, k, d] code. We have to note
that, the distance for any [n, k, d] linear code always satifies the Singleton bound as follows
d ≤ n − k + 1.
A linear code which satifies this bound is called Maximum Distance Separable (MDS) code
as described in the following definition.
Definition 1. Let C be an [n, k, d] linear code over F2m . Then C is an MDS code if d = n−k +1.
Let Mm,n (F2m ) be the set of matrices with m rows and n columns with entries in F2m . A
matrix G in Mk,n (F2m ) is called a generator matrix of a linear code C if its rows form a basis
for the code C.
Definition 2. [6] A matrix M in Mk,n−k (F2m ) is called MDS if and only if it satisfies one of
the following properties:
(i) All its minors are non-zero
(ii) It is the redundant part of the generator matrix of an MDS code C under systematic form
i.e. the generator matrix G of C is in the form G = (Ik |M ), where Ik is the identity matrix
of size k × k.
Note that, for application purpose, we only consider MDS matrices of size n × n. These
matrices are redundant part of generator matrices of MDS codes of length 2n and dimension n.
In the set Mn,n (F2m ), we have the following special classes of matrices.
Definition 3. A matrix B in Mn,n (F2m ) is called orthogonal if BB T = B T B = In , where B T
is the transpose of B.
Let c1 = (c1,1 , . . . , c1,n ) and c2 = (c2,1 , . . . , c2,n ) be any two elements in Fn2m . Define a
Euclidean product between c1 and c2 as follows.
n
X
c1 · c2 = c1,i c2,i .
i=1
Moreover, for any linear code C in Fn2m , define the Euclidean dual of C as follows.
C ⊥ = {a ∈ Fn2m |a · c = 0, ∀c ∈ C}.
A linear code C is called Euclidean self-dual if C = C ⊥ .
In this paper, based on the above notions, we develop some conditions related to MDS
orthogonal matrices and MDS involutory. Moreover, we give a search algorithm for the
construction of MDS involutory matrices from a given orthogonal MDS matrices.
2
ICW-HDDA-X 2020 IOP Publishing
Journal of Physics: Conference Series 1722 (2021) 012030 doi:10.1088/1742-6596/1722/1/012030
Proof. Since Gauss-Jordan elimination only use row operations, we have that G0 = (In |M ) is also
a generator matrix for C. Let gi0 be the ith -row of G0 . The row gi0 can be written as gi0 = (ei , Mi ),
where ei = (0, 0, . . . , 0, 1, 0 . . . , 0) ∈ Fn2m (the standard vector) and Mi is the ith -row of M. By
self-duality of C, for any i and j we have
T
gi0 · gj0 = gi0 gj0 = ei · ej + Mi · Mj = ei eTj + Mi MjT = 0
Note that, ei · ej = ei eTj = δij , where δij is the Kronecker’s delta function. So, we have that
Mi · Mj = Mi MjT = δij
We have to note that Euclidean self-dual MDS codes over F2m of length n, where n ≤ 2m ,
are always exist. A constructive proof of this fact can be found in [7]. So, we can always use
the given constructive proof in [7] to construct Euclidean self-dual MDS codes over F2m . This
means, by combining the constructive proof given in [7] and Proposition 5, we can construct
orthogonal MDS matrices in Mn,n (F2m ).
Let Pσ be a permutation matrix related to a permutation σ in the symmetric group Sn . Also,
let Mσ = DPσ be a monomial matrix, where Pσ is a permutation matrix and D is a diagonal
matrix. The following lemma shows that a MDS matrix is invariant under the multiplication
with a monomial matrix.
Proposition 6. If A is a MDS matrix and Mσ1 , . . . , Mσt , Mσ10 , . . . , Mσs0 are monomial matrices
in Mn,n (F2m ), then
B = Mσt · · · Mσ1 AMσ10 · · · Mσs0
is also a MDS matrix.
Let A be a matrix in Mn,n (F2m ) and σ be a permutation in Sn . Also, let c Ai and Aj be the
ith -column
and j th -row of A respectively, for all i, j = 1, 2, . . . , n. Define actions of σ on c Ai and
Aj as
Aσ−1 (1),i
Aσ−1 (2),i
σ(c Ai ) =
..
.
Aσ−1 (n),i
3
ICW-HDDA-X 2020 IOP Publishing
Journal of Physics: Conference Series 1722 (2021) 012030 doi:10.1088/1742-6596/1722/1/012030
and
σ(Aj ) = Aj,σ−1 (1) , . . . , Aj,σ−1 (n) .
Let A be an orthogonal MDS matrix and Mσ = DPσ , be a monomial matrix, where
D = diag(α1 , . . . , αn ). Let Bi = (bi,1 , . . . , bi,n ). We have the following proposition.
Proposition 7. The matrix B = Mσ A is an involutory MDS matrix if and only if ni=1 αi = 1
Q
and
αi Aσ−1 (i) Dσ(c Aj ) = δij
for all i, j = 1, 2, . . . , n.
Qn
Proposition 8. The matrix B = AMσ is an involutory MDS matrix if and only if i=1 αi =1
and
Dσ(Ai )αj c Aσ−1 (j) = δij
for all i, j = 1, 2, . . . , n.
Corollary 10. If A is an orthogonal MDS matrix and σ(Ai ) = Aσ−1 (i) , for all i = 1, . . . , n,
then B = APσ is an involutory MDS matrix.
where
1, if wi,i 6= 1
fi =
0, otherwise
4
ICW-HDDA-X 2020 IOP Publishing
Journal of Physics: Conference Series 1722 (2021) 012030 doi:10.1088/1742-6596/1722/1/012030
and
1, if wi,j 6= 0
fi,j =
0, otherwise
The following algorithm can be used to search an involutory MDS matrix.
Algorithm 11. Given an orthogonal MDS matrix A in Mn,n (F2m ). Then,
(1) Let T = 0, α ∈ (0, 1), β ∈ (0, 1)
(2) Let S = A and fS = fA .
(3) Generate a random number r ∈ {1, 2}
(4) Generate random numbers id1 and id2 in {1, . . . , n}, and let S 0 = S
(5) 0
If r = 1, then swap(Sind 0
, Sind 0
), or If r = 2, then swap(c Sind 0
, Sind )
1 2 1 c 2
(6) Calculate fS 0 and ∆ = fS − fS 0
(7) If ∆ > 0, then S = S 0 . Otherwise,
(a) Generate a random number r2 ∈ (0, 1)
∆
(b) Calculate E = e T
(c) If r2 < E, then S = S 0
(8) Calculate fS and T = αT
(9) Repeat steps (3)-(8) until T < β
Note that, at the end of iterations, if we have fS = 0, then the last S is a MDS involutory
matrix. Otherwise, S is not a MDS involutory matrix. In the following examples, we use
generator matrices of Euclidean self-dual MDS codes in [8].
Example 12. Let ω be a root of f (x) = x3 + x + 1 ∈ F2 [x]. The element ω is a primitive element
in F23 . Consider the following generator matrix of a Euclidean self-dual MDS code of length 6
over F23 .
0 1 ω2 ω ω4
1
G1 = ω 2 ω 2 1 0 ω ω 3
1 1 1 1 1 1
After Gauss-Jordan elimination process, we have that
0 ω5 ω6 ω3
1 0
G1 ∼ 0 1 0 ω6 ω3 ω5 .
0 0 1 ω3 ω5 ω6
ω5 ω6 ω3
M1 = ω 6 ω 3 ω 5
ω3 ω5 ω6
is an orthogonal MDS matrix. In fact, M1 is also an involutory MDS matrix, because M12 = I3 .
The following matrices are examples of outputs from Algorithm 11 implemented in python. We
use the matrix M1 as the input.
3
ω ω5 ω6
M10 = ω 5 ω 6 ω 3
ω6 ω3 ω5
5
ICW-HDDA-X 2020 IOP Publishing
Journal of Physics: Conference Series 1722 (2021) 012030 doi:10.1088/1742-6596/1722/1/012030
and
ω5 ω3 ω6
M100 = ω 3 ω 6 ω 5 .
ω6 ω5 ω3
We can check that (M10 )2 = (M100 )2 = I3 . Therefore, M10 and M100 are also involutory MDS
matrices.
Example 13. Let α be a root of f (x) = x4 + x + 1 ∈ F2 [x]. The element α is a primitive element
in F24 . Let G2 be the following matrix.
0 1 α4 α14 α9
1
G2 = α13 α13 1 0 α α4
1 1 1 1 1 1
The matrix G2 is a generator matrix of Euclidean self-dual MDS code of length 6 over F24 . By
Gauss-Jordan elimination, we have
1 0 0 α3 α8 α6
G2 ∼ 0 1 0 α α 3 α 7 .
0 0 1 α7 α6 α5
So, the matrix
α3 α8 α6
M2 = α α 3 α 7
α7 α6 α5
is an orthogonal MDS matrix. We can check that M22 6= I3 . Using Algorithm 11 implemented
in python. We use the matrix M2 as an input, we get the following involutory MDS matrices,
α α3 α7
M20 = α3 α8 α6
α7 α6 α5
and
α8 α3 α6
M200 = α3 α α7 .
α6 α7 α5
4. Conclusion
In this paper we show how to search for MDS involutory matrices using generator matrices
of Euclidean self-dual MDS codes and simulated annealing. However, the convergence of such
search not yet been guaranteed. Therefore, we need to prove whether the proposed search always
give MDS involutory matrices or not.
Acknowledgements
The authors thank to Ministry of Education and Culture Indonesia for the support through
Fundamental Research Funding 2019. Also, thanks to anonymous reviewers for their valuable
suggestions.
6
ICW-HDDA-X 2020 IOP Publishing
Journal of Physics: Conference Series 1722 (2021) 012030 doi:10.1088/1742-6596/1722/1/012030
References
[1] Chand Gupta K. and Ghosh Ray I. 2014. On constructions of circulant MDS matrices for lightweight
cryptography. In: Huang X., Zhou J. (eds) Information Security Practice and Experience (ISPEC). Lecture
Notes in Computer Science, vol 8434. Springer, Cham.
[2] Bai J., Sun Y. and Wang D.. 2020. On the construction of involutory MDS matrices over F2m . J Syst Sci
Complex 33, 836—848.
[3] Chand Gupta K., Ghosh Ray I.. 2013. On constructions of involutory MDS matrices. In: Youssef A., Nitaj A.,
Hassanien A.E. (eds) Progress in Cryptology – AFRICACRYPT 2013. Lecture Notes in Computer Science,
vol 7918. Springer, Berlin, Heidelberg.‘
[4] Chand Gupta K. et al. 2019. Cryptographically significant MDS matrices over finite fields: A brief survey and
some generalized results. Adv. in Math. Comm. 13 No. 4, 779–843.
[5] Sajadieh M., Dakhilalian M., Mala H. et al. 2012. On construction of involutory MDS matrices from
Vandermonde matrices in GF (2q ). Des. Codes Cryptogr. 64, 287—308. https://doi.org/10.1007/
s10623-011-9578-x
[6] Cauchois, V., and Loidreau, P.. 2019. On circulant involutory MDS matrices. Des. Codes Cryptogr. 87, 249—
260. https://doi.org/10.1007/s10623-018-0520-3
[7] Grassl M. and Gulliver T.A.. 2008. On self-dual MDS codes. IEEE International Symposium on Information
Theory, 1954-1957. Doi: 10.1109/ISIT.2008.4595330.
[8] Kim J.L. and Lee Y.. 2004. Euclidean and Hermitian self-dual MDS codes over large finite fields. J. Combin.
Theory, Series A 105 Issue 1, 79–95. Doi: 10.1016/j.jcta.2003.10.003.
[9] Rishakani A.M., Dehnavi S.M., Dabanloo Y.F., and Maimani H.. 2015. Construction of MDS matrices from
minors of an MDS matrix. Proceeding of 12th International Iranian Society of Cryptology Conference on
Information Security and Cryptology (ISCISC), 48–51. https://doi.org/10.1109/ISCISC.2015.7387897
[10] Yin D. and Gao Y.. 2017. A new construction of lightweight MDS matrices. Proceeding of 3rd IEEE
International Conference on Computer and Communications (ICCC), 2560–2563. https://doi.org/10.
1109/CompComm.2017.8322997