Académique Documents
Professionnel Documents
Culture Documents
C ONTENTS
I Introduction 1
II Preliminaries 2
II-A Code linéaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
II-B Codes raccourcis et codes poinçonnés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
II-C Codes blocs sur E = Fm q . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
II-D Isométrie linéaire des codes m-bloc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
II-E q -ary images of a code of length n over Fq m . . . . . . . . . . . . . . . . . . . . . . . . . . 5
References 6
Abstract
La plupart des codes avec un algorithme de décodage algébrique sont dérivés des codes de Reed-Solomon.
Ils sont obtenus en prenant des codes équivalents, par exemple, les codes de Reed-Solomon gén’eralisés, ou en
utilisant la méthode dite de sous code sur le corps premier, qui conduit á des codes alternants sur le corps premier
sous-jacent, ou sur un sous corps intermédiaire. Le principal avantage de ces constructions est de préserver á la fois
la distance minimale et l’algorithme de décodage du code de Reed-Solomon sous-jacent.
Dans ce cours, nous explorons en détail la construction de sous-codes sur des sous espaces vectoriel. Ce genre
de codes a été étudié dans le cas particulier des codes cycliques Reed-Solomon. Nous étendons cette approche á
un code linéaire sur l’extension d’un corps fini. Nous nous intéressons aux codes additifs qui sont profondément
reliés aux subfield subcodes-. Nous caractérisons les duaux des sous-codes sur les sous-espaces vectoriels. Nous
introduisons la notion de sous-codes sur les sous-espaces vectoriels généralisés. Nous appliquons nos résultats aux
codes de Reed-Solomon généralisés qui ménent á des codes avec des paramétres intéressants, en particulier sur un
grand alphabet. Pour conclure notre document, nous discutons de la sécurité de l’utilisation de sous-codes sur les
sous-espaces vectoriels généralisés des codes de Reed-Solomon dans un contexte cryptographique.
Index Terms
Additive code, subfield subcode, subspace subcode, punctured code, shortened code, projected code.
I. I NTRODUCTION
La notion de sous-codes sur les sous-espace vectoriels des codes de Reed-Solomon (SS-RS) a été introduite au
milieu des années 1990 par Hattori et al. [15]. Toutefois, ce travail ne concerne que les sous-codes sur les sous-
espaces vectoriels des codes cycliques de Reed-Solomon de longueur q m − 1 sur les corps fini Fqm . Le probléme
était de trouver une formule exacte pour la dimension des sous-codes sur les sous-espace vectoriels en fonction des
racines du polynomial générateur du code cyclique.
Notre approche est plus générale puisque nous examinons les propriétés des sous-codes sur les sous-espaces
d’un code linaire sur Fqm quelconque. Nous généralisons également l’étude aux sous-codes sur les sous-espaces
généralisés, pour lesquels les sous-espaces de projection peuvent varier d’une coordonnée á une autre.
Ce document est organisé comme suit : dans la section II nous rappelons quelques définitions et résultats dans
la théorie des codes. Nous examinons en particulier les notions de codes raccourcis et poinçonnés, la notion de
Cheikh Thiécoumba GUEYE is with Université Cheikh Anta Diop, Faculté des Sciences et Techniques, DMI, LACGAA, Dakar, Sénégal,
cheikht.gueye@ucad.edu.sn
The course were supported in part by CEA-MITIC for CBC project and the government of Senegal’s Ministry of Hight Education and
Research for ISPQ project.
2
codes additifs sur Fqm et leur lien avec les images q -aire d’un code défini sur Fqm . Nous précisons également les
différentes notions d’équivalence dans le contexte des codes m-bloc sur Fqm .
La section III est consacrée á l’étude des subspace subcodes(sous-codes sur les sous-espaces) et de leurs duaux,
les codes projetés. Nous précisons ces notions dans le contexte de image q -aire et nous expliquons pourquoi les
sous-codes sur les sous-corps(subfield subcodes) et les codes trace sont des cas particuliers de sous-codes sur les
sous-espaces et de codes projetés.
Dans la section IV nous généralisons les notions de sous-codes sur le sous-espaces et de codes projetés en
modifiant les projections sur chaque bloc d’un code additif sur Fqm . Dans le cas particulier des sous-espaces de
dimension 1 ou m − 1, nous clarifierons le lien entre les generalized subspace subcodes (les sous-codes sur les
sous-espaces généralisés) d’un code C et les subspaces subcodes des codes Fqm -linéairement équivalents de C . Nous
donnons également une caractérisation des projections qui préservent certains éléments du groupe de permutation
du code parent.
Dans la section ?? nous donnons des résultats dans le contexte des codes Reed-Solomon et des codes Reed-
Solomon généralisés et donnons quelques exemples. Nous introduisons également la notion de sous-codes sur les
sous-espaces particuliers. Dans ce cas particulier, nous introduirons une construction orthogonale de sous-codes sur
les sous-espaces et fournir quelques exemples intéressants.
Enfin, dans la section ?? nous présentons quelques résultats sur la sécurité des sous-codes sur les sous-espaces
généralisés de Reed-Solomon pour les applications cryptographiques. En particulier, nous étendons l’attaque Sidel’nikov
Shestakov aux codes qui sont GLq (m)-équivalent par multiplication á une image q -aire d’un code de Reed-Solomon
généralisé. Nous introduisons un algorithme efficace pour une recherche exhaustive des projections pour un sous-
code sur les sous-espaces d’une image q -aire d’un code. Nous concluons en montrant que l’attaque par folding
présentée dans [12] [13] est valable également pour les sous-codes sur les sous-espaces généralisés des codes quasi
cycliques ou quasi-dyadiques induits des codes de Reed-Solomon.
II. P RELIMINARIES
A. Code linéaire
Soit Fqm un corps fini de cardinal q m . On appelle code linaire C de longueur n et de dimension k ≤ n coefficeint
sur Fqm ou [n, k]qm -linéaire code, tout sous-espace vectoriel de Fnqm de dimension de k .
Tout vecteur de Fnqm es appelé mot et tout élément de C est appelé mot de code.
On appelle distance entre deux mots x = (x1 , ..., xn et y = (y1 , ..., yn ) de Fqm le nombre not d(x, y) correspon-
dant au nombre coefficients ou des positions qui les différencient c’est-á-dire
d(x, y) = card ({i tel que xi 6= yi })
On appelle distance minimale d’un code la plus petite des distances entre deux mots de code distincts.
lorsqu’un code C est un code Fqm -linaire de longueur n, de dimension k et de distance minimale d, il sera dit
[n, k, d]qm -linaire.
On appelle matrice génératrice d’un code linaire C une matrice dont les lignes forment une base de C .
On appelle la capacité de détection d’un code linaire, le nombre des erreurs qu’il peut détecter et la capacité de
détection d’un code le nombre d’erreurs qu’il peut corriger. Ainsi, lorsqu’un code linéaire est de distance minimale
d−1
d, il peut détecter t = d − 1 erreurs et corriger e = b c erreurs.
2
Definition 2:
Le code raccourci de C sur les positions I est le code ShortI (C) obtenu en poinçonnant son sous-code C˜I sur I .
Ainsi: ShortI (C) = PunctI (C˜I ).
Si I = {j}, nous notons PunctI (C) par Punctj (C) et ShortI (C) de Shortj (C).
Soit C un code [n, k, d]-linéaire et i un entier tel que 1 ≤ i ≤ n. Si les paramtres de Puncti (C) et Shorti (C)
sont respectivement [n − 1, kp , dp ] et [n − 1, ks , ds ], alors ds ≥ d, ds ≥ dp ≥ d − 1 et, si Puncti (Cc) 6= Shorti (C),
alors kp = k et ks = k − 1.
Plus généralement, si |I| = r, alors nous avons ds ≥ d, ks ≥ k − r, dp ≥ d − r et kp ≥ k − r.
La proposition suivante est un résultat bien connu décrivant le lien entre les codes poinçonnés ([17] p. 91 Lemma
8.5.1):
Proposition 1: Le dual d’un code raccourci est le poinçonnés du code dual sur les mêmes positions : (ShortI (C))⊥ =
PunctI (C ⊥ ).
Plus précisément, si π ∈ Sym(n) est une permutation du groupe symétrique agissant sur {1, ..., n}, puis π(x) =
(xπ−1 (1) , ..., xπ−1 (n) ). Une permutation appliqué aux mot de codes peut être représentée par une multiplication des
mots de code par sa représentation matricielle á droite . Cependant, dans le cas des codes blocs, nous devons être
attentif sur le niveau auquel nous travaillons, car il est possible de travailler avec matrices de taille n × n si nous
sommes sur E n ou une matrices nm × nm lorsque on est sur Fnm q .
Pour une permutation donnée π ∈ Symn , nous notons par Π la matrice de permutation de la taille n × n et par
Π = Π ⊗ Im la matrice de taille nm × nm correspondante. Par exemple, si
n = 3, m = 2 et π est la permutation circulaire
de trois éléments
0 0 1 0 0 0
0 0 0 1 0 0
0 1 0
0 0 0 0 1 0
Π = 0 0 1 et Π = 0 0 0 0 0 1 .
1 0 0
1 0 0 0 0 0
0 1 0 0 0 0
L’opération correspondant aux multiplications scalaires consiste á appliquer des automorphismes linéaires de E
sur chaque coordonnée (en tant qu’élément de E ). Soit GLq (m) le groupe de matrices inversibles de taille m á
coefficients sur Fq . Si x ∈ E et M ∈ GLq (m), alors l’application x 7→ xM est un automorphisme linéaire de E et
GLq (m) est isomorphe au groupe d’automorphismes linaires de E.
Soit L = (M1 , ..., Mn ) ∈ GLq (m)n un ensemble ordonné d’éléments de GLq (m). Il est facile de vérifier que
l’application x = (x1 , ..., xn ) 7→ L(x) = (x1 M1 , ..., xn Mn ) est une isométrie linéaire pour la distance m-bloc.
D’un point du point de vue matriciel, il consiste á multiplier á droite les éléments de En = Fnm q par la matrice
n-bloc diagonale Diag(L) = Diag(M1 , ..., Mn ).
Un tel ensemble L est appelé multiplicateur. Le théoréme suivant donne une caractérisation compléte des
isométries pour la distance m-bloc.
Theorem 1: Les Fq -isométries de En (i.e. isomorphismes linéaires préservant le Hamming poids bloc) est le
groupe généré par les m-bloc permutations et les m-bloc multiplicateurs.
Proof: Nous avons déjá vu que m-bloc permutations et multiplicateurs sont des isométries linéaires.
Réciproquement, soit g une isométrie de En . Nous regardons les images d’éléments de En de poids de bloc 1
par g . Pour 1 ≤ i ≤ n, soit Vi le sous-espace des éléments de En tel que tous les composants de bloc sont égaux
á 0, sauf le i-iéme terme: si x ∈ Vi , alors x = (0, ..., 0, xi , 0, ..., 0), xi ∈ E. Soit un élément x ∈ Vi . Puisque g
est une isométrie par bloc, y = g(x) ∈ Vj pour un j , avec 1 ≤ j ≤ n. Supposons qu’il existe un autre élément
x0 ∈ Vi de telle sorte que g(x0 ) ∈ Vj 0 , avec j 6= j 0 . Clairement wm (x + x0 ) = 1 et wm (g(x + x0 )) = 2. Cela
implique que g(Vi ) = Vj . Ainsi, g agit comme une permutation sur l’ensemble des Vi , ce qui définit une partie de
la permutation-bloc de notre isomérie. En appliquant l’inverse de cette permutation á g , nous pouvons maintenant
supposons que, pour tous les i, g(Vi ) = Vi . Si gi est la restriction de g á Vi , gi doit être Fq -linaire, d’ailleurs,
puisque gi préserve le poids du bloc, alors Ker(gi ) = 0, donc gi est un automorphisme, et g est un multiplicateur.
Nous sommes maintenant en mesure de définir la notion d’équivalence des codes blocs.
Definition 5: Soient C et C 0 deux code m-bloc de longueur n sur E. Le code C et C 0 sont equivalents s’il existe
une isometrie f = L ◦ π , (ou L est multiplieur et π une permutation) telle que C 0 = f (C).
Pour simplifier la présentation de nos résultats, nous introduisons trois notions plus restrictives d’équivalence des
codes.
Definition 6: Soient C et C 0 deux code m-bloc de longueur n sur E.
0 0
• C et C sont equivalent par permutation s’il existe une permutation π ∈ Sym(n) telle que C = π(C).
0 n 0
• C et C sont equivalent par multiplieur s’il existe un multiplieur L ∈ GLq (m) tel que C = L(C).
0 0
• C et C sont scalaire equivalent s’il existe une matrice M ∈ GLq (m) telle que C = LM (C) ou LM est le
“scalaire” multiplieur (M, ..., M ).
Si m = 1, la multiplication par M ∈ GLq (m) correspond á la multiplication par un élément β ∈ F∗q . Ainsi, la
notion d’équivalence scalaire est triviale, puisqu’elle est juste la multiplication des mots de code par un scalaire β .
Toutefois, cette notion d’équivalence á un sens pour des codes m-bloc avec m > 1.
Il n’y a pas de notion naturelle de dualité pour la structure de bloc d’un code Fq -linear sur En . Toutefois, nous
pouvons examiner le dual d’un code bloc C considéré comme un code de longueur nm sur de Fq .
5
Proposition 2: Soit C un code additif de longueur n sur E. Soient L = (M1 , ..., Mn ) ∈ GLq (m)n un multiplieur
et C 0 = L(C). Soit L∗ = ((M1−1 )T , ..., (Mn−1 )T ) ∈ GLq (m)n . La relation entre le duel de C et le duel de C 0 est:
C 0⊥ = L∗ (C ⊥ ).
Proof: Soit < ., . > le produit scalaire defini sur Fnm n n
q . Si x = (x1 , ..., xn ) ∈ E et y = (y 1 , ..., y n ) ∈ E ,
n
XX m X n
alors on aura < x, y >= xi,j yi,j = xi y Ti . En appliquant cette propriete a L(x) et L∗ (y), on obtient
i=1 j=1 i=1
n
X Xn
< L(x), L∗ (y) >= xi Mi (y i (Mi−1 )T )T = xi Mi Mi−1 y Ti =< x, y >.
i=1 i=1
Par consequent < x, y >= 0 si et seulement si < L(x), L∗ (y) >= 0.
En outre, il est facile de vérifier que le dual d’un code bloc permuté est le permuté de son dual.
En outre, notez que, á une permutation prés du support, un code C admet toujours un matrice generatrice
systématique. Il est facile de voir que l’image canonique q -aire d’une matrice génératrice systématique est elle-
même la matrice génératrice systématique de l’image q -aire =q (C). Ainsi, si un code m-bloc C est une image de
q -aire d’un autre code C sur l’extension Fqm , il est toujours possible de récupérer l’extension de depart.
Si B est une base de Fqm sur Fq , la base duale B ∗ de B est l’unique base de Fqm sur Fq telle que, pour tout
élément β ∈ Fqm , si Mβ est la matrice correspondant á la multiplication par β dans la représentation associée á B ,
la matrice correspondant á la multiplication par β associé á B ∗ est son transpose MβT .
La proposition suivante décrit le lien entre la dualité sur Fq et la dualité sur Fqm .
Proposition 5: Soit C un code sur Fqm et C ⊥ son Fqm -dual. Le dual de l’image q -aire de C relativement a la
base B est l’image q -aire de son dual C ⊥ relativement a la base duale B ∗ of B .
Proof: Soit G = (βi,j ) et H = (γi,j ) respectivement une matrice generatrice de C de son dual C ⊥ . Une
matrice generatrice de l’image q -aire de C relativement a B , resp. de C ⊥ relativement a B ∗ est G = (Mβi,j ), resp.
H = (MγTi,j ). Par definition nous avons G × HT = 0, ce qui implique que
G × H T = (Mβi,j ) × (MγTi,j )T = 0.
Example 1: Nous choisissons q = 2 et m = 3. Ainsi ,Fqm = F2 (α), oú α est une racine de X 3 + X + 1.
L’identification entre F8 á F23 se fait á l’aide de la base B = (1, α, α2 ).
La matrice suivante est une matrice génératrice d’un code Reed-Solomon de paramétres [7, 2, 5]8 sur F8 . Un tel
code sera défini dans la section ??. Il est noté RS2 puisque sa dimension est de 2.
1 0 α α4 α6 α3 α2
G= .
0 1 α3 α5 α2 α α6
0 1 0
La reprsentation matricielle de la multiplication par α en F32 est Mα = 0 0 1.
1 1 0
Pour i ∈ [1, 7], Mαi = Mαi . Ainsi, nous pouvons construire la matrice gnratrice canonique de son image binaire
C par rapport B :
100 000 010 001 101 110 001
010 000 001 111 100 011 110
001 000 110 101 010 111 011
G=
000 100 110 111 001 010 101
000 010 011 101 110 001 100
000 001 111 100 011 110 010
En tant que code 3 blocs, les paramétres de C sont [7, 2, 5]8 . En tant que code binaire, ses paramétres sont
[21, 6, 7]2 (sa distance minimale d a été calculée á l’aide de MAGMA [9]).
R EFERENCES
[1] T. P. Berger. “Cyclic alternant codes induced by an automorphism of a GRS code”, In R. Mullin and G. Mullen, editors, Finite fields:
Theory, Applications and Algorithms, vol. 225, pp. 143–154, Waterloo, Canada, 1999. AMS, Contemporary Mathematics.
[2] T. P. Berger. “On the cyclicity of Goppa codes, parity-check subcodes of Goppa codes and extended Goppa codes”, Finite Fields and
Applications, vol. 6, pp. 255–281, 2000.
[3] T. P. Berger. “Goppa and related codes invariant under a prescribed permutation”, IEEE Trans. Inform. Theory, vol. 46(7), pp. 2628–
1233, 2000.
[4] T. P. Berger and N. E. Amrani, “Codes over L(GF(2)m , GF(2)m ), MDS diffusion matrices and cryptographic applications,” in Codes,
Cryptology, and Information Security - C2SI 2015, Proceedings, ser. Lecture Notes in Computer Science, S. E. Hajji, A. Nitaj, C. Carlet,
and E. M. Souidi, Eds., vol. 9084. Springer, 2015, pp. 197–214.
[5] T. P. Berger, P. Cayrel, P. Gaborit, and A. Otmani, “Reducing key length of the McEliece cryptosystem,” in Progress in Cryptology -
AFRICACRYPT Proceedings, ser. Lecture Notes in Computer Science, B. Preneel, Ed., vol. 5580. Springer, 2009, pp. 77–97.
[6] T. Berger and P. Charpin. “The automorphism group of BCH codes and of some affine-invariant codes on an extension field”, Design,
Codes and Cryptography, vol. 18 pp. 29–53, 1999.
7
[7] T. P. Berger, P. Gaborit and O. Ruatta, “Gabidulin Matrix Codes and Their Application to Small Ciphertext Size Cryptosystems,” In
Patra, A. and Smart N.P., ed.: Progress in Cryptology - INDOCRYPT ’17. vol. 10698 of LNCS., Springer (2017) 247–265
[8] T. P. Berger and P. Loidreau, “How to mask the structure of codes for a cryptographic use”, Des. Codes Cryptography, vol. 35, no. 1,
pp. 63–79, 2005.
[9] W. Bosma, J. Cannon, and C. Playoust, “The Magma algebra system. I. The user language”, Journal of Symbolic Computation, vol. 24,
no. 3, p. 235-265, (1997)
[10] G. Cohen, I Honkala, S. Lytsin and A. Lobstein, “Covering codes” North Holland Mathematical Library, 1997.
[11] A. Dür, “The automorphism group of Reed–Solomon codes”. Journal of Combinatorial Theory, series A, 4(1), 1987.
[12] J. Faugère, A. Otmani, L. Perret, F. de Portzamparc and J. Tillich, “Structural cryptanalysis of McEliece schemes with compact keys,”
Des. Codes Cryptography, vol. 79, no. 1, pp. 87–112, 2016.
[13] J. Faugère, A. Otmani, L. Perret and J. Tillich, “Algebraic cryptanalysis of McEliece variants with compact keys,” in Advances in
Cryptology - EUROCRYPT 2010, Proceedings, ser. Lecture Notes in Computer Science, H. Gilbert, Ed., vol. 6110. Springer, 2010,
pp. 279–298.
[14] E. M. Gabidulin and P. Loidreau. “Properties of subspace subcodes of Gabidulin codes,” Adv. in Math. of Comm., vol. 2, no. 2, pp.
147–157, 2008.
[15] M. Hattori, R.J. McEliece and G. Solomon. “subspace subcodes of Reed-Solomon Codes,” IEEE Trans. Information Theory, vol. 44,
no. 5, pp. 1861–1880, 1998.
[16] W.C. Huffman, “Groups and codes” in V.S. Pless and W.C. Huffman, editors, Handbook of Coding Theory, chapter 17. Elsevier,
Amsterdam, The Netherlands, 1998.
[17] Justesen, J., Høholdt, T.: A course in Error-correcting Codes. European Mathematical Society (2004)
[18] R. McEliece, “A public-key cryptosystem based on algebraic coding theory” DSN Prog. Rep., Jet Prop. Lab., California Inst. Technol.,
Pasadena, CA (January 1978) pp. 114–116.
[19] F.J. MacWilliams and N.J.A. Sloane, “The Theory of Error Correcting Codes” North-Holland, Amsterdam, 1986.
[20] R. Misoczki and P.S.L.M. Barreto. “Compact McEliece Keys from Goppa Codes”. In Selected Areas in Cryptography - SAC 2009,
volume 5867 of Lecture Notes in Computer Science, pages 376-392. Springer, 2009.
[21] V. M. Sidel’nikov and S. O. Shestakov. “On cryptosystems based on generalized Reed-Solomon codes,” Discrete Mathematics, vol. 4,
no. 3, pp. 57–63, 1992.
[22] S. A. Spence, “Identifying High-Dimension subspace subcodes of Reed-Solomon Codes”, IEEE Trans. Information Theory, vol. 50,
no. 6, pp. 1280–1282, 2004.
[23] C. Wieschebrink, “Cryptanalysis of the Niederreiter public key scheme based on GRS subcodes,” in Post-Quantum Cryptography,
PQCrypto 2010, Proceedings, ser. Lecture Notes in Computer Science, N. Sendrier, Ed., vol. 6061. Springer, 2010, pp. 61–72.