Keywords

1 Introduction

The concept of invariant subcode was proposed by Krouk [1]. The methods for constructing the representation of linear block codes under permutation were reported in [1, Lemma 8.4] (via sequential constructing a basis for an invariant subcode of a linear block code) and in [25] (via block circulant representation of a linear block code). The different representations of linear block codes such as double circulant and quasi-cyclic codes are described in [6, Chapter 16.7].

The concept of invariant subcode has two types of applications. The first type is decoding of linear block codes given the group of symmetry [3, 5]. The second type is the attack the McEliece cryptosystem based on codes correcting errors [1].

The remainder of this paper is organized as follows. In Sect. 2, we propose the invariant subcode concept. In Sect. 3, we presented several examples illustrating the concept.

2 Invariant Subcode Concept

Let (nk) code \(\mathcal G\) be a binary linear block code with a codelength n and k information symbols. The code \(\mathcal G\) has a generator matrix G and a parity-check matrix H. Let us introduce a permutation matrix for the code. The permutation matrix P for the code \(\mathcal G\) has a property \(GP=MG\) for some nonsingular matrix M. Let codeword \(a \in \mathcal G\) be an invariant vector under the permutation matrix P such that \(aP=a\). Then \(aP=aI\) and \(a(P-I)=0\) where I is an identity matrix. All invariant codewords under the permutation matrix P form a subcode \(\mathcal S\) of the code \(\mathcal G\). Therefore

$$\begin{aligned} {\left\{ \begin{array}{ll} aH^T=0 \\ a(P-I)=0, \end{array}\right. } \end{aligned}$$
$$\begin{aligned} a \left( \frac{H}{(P-I)^T} \right) ^T=0. \end{aligned}$$

The matrix

$$\begin{aligned} S = \left( \frac{H}{(P-I)^T} \right) ^T=0. \end{aligned}$$

is a parity-check matrix of the subcode \(\mathcal S\). Finally, we obtain an invariant subcode \(\mathcal S \subset \mathcal G\) under the permutation matrix P.

Proposition 1

If the permutation matrix \(P=(p_{i,j}), \quad i,j=1,\ldots ,n\), has properties

  1. 1.

    \(p_{i,i}=0\) for \(i=1,\ldots ,n\),

  2. 2.

    ord P = l, l is a prime,

then the invariant subcode \(\mathcal S \subset \mathcal G\) under the permutation matrix P consists of l repeating submatrices. Thus a generator matrix \(G_P\) of code \(\mathcal S\) has the form

$$\begin{aligned} G_P = \mathop {(\underbrace{\, C \,|\, C \,|\cdots |\, C \,})}_{l\ \mathrm{times}}. \end{aligned}$$

Proof

The proof is trivial.    \(\square \)

3 Examples

3.1 The Golay Code Under Order 2 Permutation

The generator matrix of the Golay code is given by

$$ G = \begin{pmatrix} \begin{array}{ll} G_1 &{} G_2 \\ C &{} C \end{array} \end{pmatrix} $$
figure a

Let permutation matrix be

$$ P = \begin{pmatrix} \begin{array}{ll} 0 &{} I_{12} \\ I_{12} &{} 0 \end{array} \end{pmatrix}, $$

where \(I_{12}\) is the \(12 \times 12\) identity matrix. The generator matrix of the invariant subcode under the permutation matrix P is

$$\begin{aligned} G_P = (C \vert C). \end{aligned}$$

3.2 The Golay Code Under Order 3 Permutation

Let us consider the Turyn-construction of the Golay code [6, Chapter 18.7.4]. The generator matrix of the Golay code is given by

$$ G = \begin{pmatrix} \begin{array}{lll} G_1 &{} 0 &{} G_1 \\ 0 &{} G_1 &{} G_1 \\ C &{} C &{} C \end{array} \end{pmatrix} $$
figure b

Let permutation matrix be

$$ P = \begin{pmatrix} \begin{array}{lll} 0 &{} I_8 &{} 0 \\ 0 &{} 0 &{} I_8 \\ I_8 &{} 0 &{} 0 \end{array} \end{pmatrix}, $$

where \(I_8\) is the \(8 \times 8\) identity matrix. The generator matrix of the invariant subcode under the permutation matrix P is

$$\begin{aligned} (G_P = C \vert C \vert C). \end{aligned}$$

3.3 The Golay Code Under Order 4 Permutation

The generator matrix of the Golay code is given by

$$ G = \begin{pmatrix} \begin{array}{llll} G_1 &{} G_2 &{} 0 &{} G_3 \\ G_3 &{} G_1 &{} G_2 &{} 0 \\ 0 &{} G_3 &{} G_1 &{} G_2 \\ C &{} C &{} C &{} C \end{array} \end{pmatrix} $$
figure c

Let permutation matrix be

$$ P = \begin{pmatrix} \begin{array}{llll} 0 &{} I_6 &{} 0 &{} 0 \\ 0 &{} 0 &{} I_6 &{} 0 \\ 0 &{} 0 &{} 0 &{} I_6 \\ I_6 &{} 0 &{} 0 &{} 0 \end{array} \end{pmatrix}, $$

where \(I_6\) is the \(6 \times 6\) identity matrix. The generator matrix of the invariant subcode under the permutation matrix P is

$$\begin{aligned} G_P = ( C \vert C \vert C \vert C). \end{aligned}$$

3.4 The Golay Code Under Order 6 Permutation

The generator matrix of the Golay code is given by

$$ G = \begin{pmatrix} \begin{array}{llllll} G_1 &{} 0 &{} 0 &{} G_2 &{} G_3 &{} G_4 \\ G_4 &{} G_1 &{} 0 &{} 0 &{} G_2 &{} G_3 \\ G_3 &{} G_4 &{} G_1 &{} 0 &{} 0 &{} G_2 \\ G_2 &{} G_3 &{} G_4 &{} G_1 &{} 0 &{} 0 \\ 0 &{} G_2 &{} G_3 &{} G_4 &{} G_1 &{} 0 \\ C &{} C &{} C &{} C &{} C &{} C \end{array} \end{pmatrix} $$
figure d

Let permutation matrix be

$$ P = \begin{pmatrix} \begin{array}{llllll} 0 &{} I_4 &{} 0 &{} 0 &{} 0 &{} 0 \\ 0 &{} 0 &{} I_4 &{} 0 &{} 0 &{} 0 \\ 0 &{} 0 &{} 0 &{} I_4 &{} 0 &{} 0 \\ 0 &{} 0 &{} 0 &{} 0 &{} I_4 &{} 0 \\ 0 &{} 0 &{} 0 &{} 0 &{} 0 &{} I_4 \\ I_4 &{} 0 &{} 0 &{} 0 &{} 0 &{} 0 \end{array} \end{pmatrix}, $$

where \(I_4\) is the \(4 \times 4\) identity matrix. The generator matrix of the invariant subcode under the permutation matrix P is

$$\begin{aligned} G_P = (C \vert C \vert C \vert C \vert C \vert C). \end{aligned}$$

3.5 The (48,24) Quadratic Residue Code Under Order 2 Permutation

The generator matrix of the (48,24) quadratic residue code is given by

$$ G = \begin{pmatrix} \begin{array}{ll} G_1 &{} G_2 \\ C &{} C \end{array} \end{pmatrix} $$
figure e

Let permutation matrix be

$$ P = \begin{pmatrix} \begin{array}{ll} 0 &{} I_{24} \\ I_{24} &{} 0 \end{array} \end{pmatrix}, $$

where \(I_{24}\) is the \(24 \times 24\) identity matrix. The generator matrix of the invariant subcode under the permutation matrix P is

$$\begin{aligned} G_P = (C \vert C ). \end{aligned}$$

3.6 The (48,24) Quadratic Residue Code Under Order 3 Permutation

The generator matrix of the (48,24) quadratic residue code is given by

$$ G = \begin{pmatrix} \begin{array}{lll} G_1 &{} G_2 &{} 0 \\ 0 &{} G_1 &{} G_2 \\ C &{} C &{} C \end{array} \end{pmatrix} $$
figure f

Let permutation matrix be

$$ P = \begin{pmatrix} \begin{array}{lll} 0 &{} I_{16} &{} 0 \\ 0 &{} 0 &{} I_{16} \\ I_{16} &{} 0 &{} 0 \end{array} \end{pmatrix}, $$

where \(I_{16}\) is the \(16 \times 16\) identity matrix. The generator matrix of the invariant subcode under the permutation matrix P is

$$\begin{aligned} G_P = (C \vert C \vert C ). \end{aligned}$$

3.7 The (48,24) Quadratic Residue Code Under Order 4 Permutation

The generator matrix of the (48,24) quadratic residue code is given by

$$ G = \begin{pmatrix} \begin{array}{llll} G_1 &{} 0 &{} G_2 &{} G_3 \\ G_3 &{} G_1 &{} 0 &{} G_2 \\ G_2 &{} G_3 &{} G_1 &{} 0 \\ C &{} C &{} C &{} C \end{array} \end{pmatrix} $$
figure g

Let permutation matrix be

$$ P = \begin{pmatrix} \begin{array}{llll} 0 &{} I_{12} &{} 0 &{} 0 \\ 0 &{} 0 &{} I_{12} &{} 0 \\ 0 &{} 0 &{} 0 &{} I_{12} \\ I_{12} &{} 0 &{} 0 &{} 0 \end{array} \end{pmatrix}, $$

where \(I_{12}\) is the \(12 \times 12\) identity matrix. The generator matrix of the invariant subcode under the permutation matrix P is

$$\begin{aligned} G_P = (C \vert C \vert C \vert C) \end{aligned}$$

3.8 The (48,24) Quadratic Residue Code Under Order 6 Permutation

The generator matrix of the (48,24) quadratic residue code is given by

$$ G = \begin{pmatrix} \begin{array}{llllll} G_1 &{} 0 &{} 0 &{} G_2 &{} G_3 &{} G_4 \\ G_4 &{} G_1 &{} 0 &{} 0 &{} G_2 &{} G_3 \\ G_3 &{} G_4 &{} G_1 &{} 0 &{} 0 &{} G_2 \\ G_2 &{} G_3 &{} G_4 &{} G_1 &{} 0 &{} 0 \\ 0 &{} G_2 &{} G_3 &{} G_4 &{} G_1 &{} 0 \\ C &{} C &{} C &{} C &{} C &{} C \end{array} \end{pmatrix} $$
figure h

Let permutation matrix be

$$ P = \begin{pmatrix} \begin{array}{llllll} 0 &{} I_8 &{} 0 &{} 0 &{} 0 &{} 0 \\ 0 &{} 0 &{} I_8 &{} 0 &{} 0 &{} 0 \\ 0 &{} 0 &{} 0 &{} I_8 &{} 0 &{} 0 \\ 0 &{} 0 &{} 0 &{} 0 &{} I_8 &{} 0 \\ 0 &{} 0 &{} 0 &{} 0 &{} 0 &{} I_8 \\ I_8 &{} 0 &{} 0 &{} 0 &{} 0 &{} 0 \end{array} \end{pmatrix}, $$

where \(I_8\) is the \(8 \times 8\) identity matrix. The generator matrix of the invariant subcode under the permutation matrix P is

$$\begin{aligned} G_P = (C \vert C \vert C \vert C \vert C \vert C). \end{aligned}$$

4 Conclusion

The invariant subcode concept is introduced. The two types of applications (decoding of linear block codes and the attack the McEliece cryptosystem) are pointed out.