• Aucun résultat trouvé

Nous présentons, dans cette section, une méthode de conception de codes LDPC, caractérisés par des ensembles d’arrêts afin d’améliorer la sécurité de la couche physique.

Considérons un code LDPC défini par sa matrice de parité H(n−k)×n[26], de longueur de mot de code net de dimension de message k. La longueur des mots de codes poinçonnés est npi et est différente

de n. La matrice H est représentée sous forme du graphe de Tanner GT. L’ensemble des nœuds de

variables est

V = (v1, v2, . . . , vn) (5.2)

indiquant les n bits, où n œud de variables, dans un mot de code, alors que l’ensemble des nœuds de parité est

U = (u1, u2, . . . , un−k). (5.3)

soit n − k lignes de la matrice de parité H.

L’ensemble de nœuds de variables qui participent aux équations de parité ui(c’est-à-dire, les éléments non nuls sur le ièmeligne de H) est défini par [6] :

Ni= j: Hi, j=1 (5.4)

Ainsi, nous pouvons exprimer le ièmenœud de parité par : ui=

j∈N

L’ensemble de nœuds de parité qui affectent les nœuds de variables vj (c’est-à-dire, les éléments non nuls sur le jèmecolonne de H) est défini comme [6] :

Mj=i: Hi, j=1 (5.6)

Ainsi, tous les calculs du ième nœud de parité sont effectués sur le Corps de Galois GF(2), selon l’équation (5.5). Le jèmenœud de variable connecté au ièmenœud de parité est indiqué dans le graphe de Tanner GT si et seulement si j ∈ Ni. La figure 5.2 montre un exemple de graphe de Tanner. Le choix s’est établi sur l’utilisation de l’algorithme de décodage itératif d’échanges de messages MP, basé sur le graphe de Tanner pour les mots de codes LDPC transmis via un canal BEC.

Nœuds de variables

Nœuds de parité

1

v

v

2

v

3

v

4

v

5

v

7 1

u

2

u

u

3 6

v

? ? ?

FIGURE5.2: Graphe de Tanner GT pour le décodage itératif avec échange de messages MP avec un

ensemble d’arrêt dû aux effacements aux nœuds de variables v2, v5et v7.

5.3.1 Décodage itératif avec échange de messages (MP)

Chaque mot de code xi∈ {0,1} ∈ C, envoyé sur un canal d’effacement binaire BEC aura comme sor-

tie le vecteur yi ∈ {0, 1, ?}. Le décodage repose sur un processus d’échange de messages entre les ensembles de nœuds de parité et de variables, U et V, le long des branches du graphe de Tanner GT. L’algorithme de décodage itératif avec échange de messages MP entre les nœuds de variables et de parité choisi est défini plus bas dans l’algorithme1. La cardinalité de l’ensemble des plus petites va- leurs des bits effacés qui doivent être retransmis pour décoder tous les bits restants du message reçu, représente le nombre de degrés de liberté DMPdans le décodeur MP [14], [5], [15]. On dit que l’opé- ration de décodage est réussi si et seulement si DMP=0. Parce que, et d’aprés la définition de degrés de liberté, toute combinaison de bits pour ces bits DMPdécode à un mot de code valide, et chacun est également probable d’être correcte. Harrison et al. [14] donne une limite sur les capacités de correc- tion du décodeur MP.

Proposition 1 [14] : L’algorithme de décodage MP sur un canal BEC peut corriger au plus n − k bits effacés.

Pour l’algorithme MP, on voit qu’un nœud de parité permet de corriger au plus un nœud de variable, et |U| = n − k. Le décodeur MP est sous optimal par rapport au décodeur à vraisemblance maximale ML, bien que le décodeur MP ait une complexité linéaire en fonction de la longueur du bloc [6]. Algorithm 1:Décodeur MP (échange de messages) sur le BEC [14], [5], [15]

Données: pour yi6=?, définir vi= yiet A = vi: yi6=?. siA = φ et aucun nœud de parité est de degré 1 alors

Ecrire le mot de code et arrêter sinon

Supprimer tous les vi∈ A avec leurs connections adjacentes.; fin

Pour chaque nœud de variable vj connecté à un nœud de parité uide degré 1, déclarer vj comme connu et définir vj= ∑k∈Ni, jvk.

5.3.2 Ensembles d’arrêt

Afin de faire face à d’éventuelles intrusions d’un espion qui utiliserait le décodeur MP, il est important pour le système de communication que le nombre de degrés de liberté D soit le plus grand possible. L’élaboration du codeur en bloc pour augmenter les degrés de libertés, se traduit par l’ajout d’un degré de liberté pour chaque bit effacé par le canal tel que montré à la figure5.1. Pour ce faire nous utilisons les ensembles d’arrêt.

Définition : Un ensemble d’arrêt (stopping set) est défini comme un ensemble V de nœuds de va-

riables adjacent à l’ensemble U de nœuds de parité. Un ensemble ne peut être un ensemble d’arrêt S ⊆ V du graphe de Tanner GT que si tous les nœuds de parité dans son voisinage U sont connectés à au moins deux nœuds de variables dans S. Ainsi toute tentative de décodage de mots de codes in- terceptés, amènera le décodeur itératif MP dans un état d’ambiguité ou de blocage, d’où l’appellation ensemble d’arrêt [14], [5].

Les symboles effacés ne pourront être reconstruits, dans le cas où tous les symboles sont effacés, fai- sant ainsi qu’aucune valeur ne sera déduite vu les nœuds de contrainte auxquels ils sont adjacents. Ceci est vérifié vu que plus d’un symbole est effacé dans son voisinage, alors qu’une reconstruc- tion n’est possible si un seul symbole est effacé. La figure5.2 montre un ensemble d’arrêt de taille 3. En effet, les nœuds de variable V = {v2, v5, v7} sont connectés uniquement aux nœuds de parité U = {u1, u2, u3}, et chacun de ces nœuds de parité est connecté à deux symboles ou plus de V. Notez que l’ensemble vide, par définition, est un ensemble d’arrêt, de même que toute union des ensembles de l’arrêt. Ainsi, un ensemble de nœuds de variable dispose d’un seul ensemble d’arrêt maximal. La figure5.2montre clairement que les effacements ne peuvent pas être résolus en utilisant l’algorithme MP.

Lemme 1 [14] : Soit le graphe de Tanner GTdéfini par la matrice de parité H d’un code bloc linéaire binaire C et supposons que C est utilisé pour transmettre dans le canal BEC. Soit A l’ensemble de bits effacés dans le mot de code reçu. En utilisant l’algorithme MP sur GT, l’ensemble des effacements qui restent après le décodage comprennent un seul ensemble d’arrêt maximal en A [14], [5], [15], [39]. Puisque les ensembles d’arrêt causent l’échec du décodeur MP, le poinçonnage dans le codeur vise à infliger à Eve l’arrêt du processus de décodage. Le décodeur dans cette conception utilise un ensemble particulier de codes LDPC, assurant ainsi le codage secret de l’information quel que soit le décodeur utilisé par Eve. La simplicité de décodage MP est également conservée pour tous les récepteurs légi- times.

5.3.3 Conception de l’encodeur

Dans le but de minimiser l’information durant le traitement, la conception de l’encodeur est basée sur

la chaine de Markov : M −→ X −→ Z où I(M; Z) ≤ I(M; X) [20]. Le but principal du décodeur est

de récupérer le message envoyé sans erreurs. Le mot de code Y récu par Bob permet de récupérer le message M, alors que pour Eve il y a la possibilité de ne rien pouvoir récupérer si X est effacé dans le canal Qw: cela peut se traduire par la maximisation du nombre de degrés de liberté D pour Eve [14]. La figure5.3 illustre la conception de l’encodeur et les étapes à suivre pour atteindre l’objectif de sécurité et de fiabilité. La conception est basée sur les points suivants [14] :

– Cacher les bits du message m dans son propre mot de code en utilisant des codes LDPC non systématiques.

– "Amplifier" les erreurs en employant le chiffrement mis en œuvre par une matrice de brouillage Savant codage.

– Limiter la capacité de correction d’erreurs par l’application du poinçonnage sur les mots de codes.

– Entrelacer les bits de blocs codés en plusieurs paquets, de sorte qu’un seul paquet effacé en- gendre plusieurs effacements dans les blocs codés.

p b m Encodeur x LDPC Bloc poinçonné Mémoire tampon Enterlacement blocs de longueur L k blocs de longueur L n blocs de longueur i p L n paquets de longueur L  

FIGURE5.3: Diagramme bloc détaillé de l’encodeur [14].

5.3.3.1 Codes LDPC non systématique

Soit m = (m1, m2, . . . , mL) un message où mi= (mi

1, mi1, . . . , mik)∈ M pour i = 1, 2, ..., L. Le message m est codé par un codeur LDPC non systématique en un mot de code de longueur n et de dimension k. Le résultat du codage donne aussi L blocs de mots de code b de longueur n, dénote par

b = (b1, b2, . . . , bL)où chaque vecteur bi= (bi

1, bi1, . . . , bin).

Certes, dans le cas de codage systématique, les bits de message mi sont représentés explicitement dans le bloc codé bi. On ajoute pour cette raison une contrainte de secret. On préfère utiliser les codes LDPC non systématiques pour augment le taux d’erreur sur les textes chiffrés observés par Eve aprés le décodage . Dans la méthode que nous considérons, Alice met en œuvre le codage LDPC non systématique comme suit :

bi= mi· S · G (5.7)

où S, est défini comme une matrice de brouillage inversible k ×k dans GF(2) avec un poids de ligne et poids de colonne > 1. Le processus de codage LDPC applique la matrice de brouillage S et la matrice génératrice systématique G pour obtenir un bloc de mot de code bide longueur n [16]. Dans la partie de décodage et après l’obtention des bits manquants par l’algorithme de décodage MP, on applique l’opération inverse comme suit [14] :

1. Prendre la partie systématique m0iqui à correspond la partie systématique de la matrice G. 2. Multiplier m0ipar la matrice inverse de la matrice de brouillage S−1.

mi= m0i· S−1 (5.8)

Sachant que S · S−1= I

k×k définit la matrice identité de rang k, l’obtention de S−1, l’inverse de la matrice de brouillage, repose sur un algorithme de décomposition, par exemple l’algorithme de dé- composition LU [40] sur GF(2).

Pour les objectifs de la présente étude, il est utile d’obtenir au préalable une incertitude maximale en présence d’une (ou plusieurs) erreur(s). On utilise une technique de brouillage que nous appelons de brouillage parfait, où une seule erreur dans le mot décodé est suffisante pour assurer un taux d’erreur d’environ 50% après décodage.

Afin d’atteindre le brouillage parfait, il est conseillé d’utiliser une matrice S avec inverse avec une forte densité de symboles "1" [16], [14]. L’efficacité du brouillage est obtenue lorsque la densité pour chaque ligne de S−1 est d’environ k/2. Dans le cas où la densité est plus faible, on peut assurer un effet de brouillage presque parfait.

5.3.3.2 Poinçonnage des mots de code

Dans cette section, nous introduisons le poinçonnage, dans le but de parer au décodage des données interceptées par l’espion, en introduisant des ensembles d’arrêts. L’ensemble R ⊆ V définit le modèle de poinçonnage, où les éléments de l’ensemble R sont les bits à poinçonner dans chaque bloc bi de mot de code b, et V représente l’ensemble des nœuds de variables du graphe de Tanner GT. Pour ce faire, chaque mot de code b doit être poinçonné de façon à obtenir un mot de code poinçonné p de longueur n comme montré à la figure5.3[14] :

p = (p1, p2, . . . , pL) où pi= (pi1, pi2, . . . , pin). (5.9) La longueur npi de chaque bloc poinçonné est égal à la cardinalité de l’ensemble Q, où Q ⊆ V repré-

Définition : Soit G = {V, E} un graphe avec un ensemble de sommets V = {v1, v2, . . . , vn} et un ensemble de arcs E du graphe. Notons l’arc entre les sommets vi et vj que vivj. En outre, considérer

un sous-ensemble de sommets V0∈ V. Le graph V0 qui a comme ensemble de sommets. Un graphe

G0={V0,E0} est un sous-graphe d’un autre graphe [41], si et seulement si

V0⊆ V et E0⊆ E. (5.10)

Un sous-graphe G0={V0,E0} d’un graphe G = {V,E} est présenté dans la figure5.4: c’est un sous- graphe induit si E0est formé de tous les arcs (ou arêtes) de G ayant leurs extrémités dans V0.

∀x, y ∈ V0, (xy)∈ E0⇐⇒ (xy) ∈ E (5.11) 4 3 1 5 2 4 1 3 G G'

FIGURE5.4: Sous graphe induit par V0={1, 3, 4}.

Définition : Un modèle de poinçonnage R est dit acceptable, si R est dépourvu d’ensemble d’arrêt

et que R + V peut contenir des ensembles d’arrêt non vides, définis par Sv pour chaque nœud de

variables v ∈ Q [14], [5], [15].

Le modèle de poinçonnage élaboré repose sur l’algorithme 2 de recherche de poinçonnage. Il est

basé sur une technique aléatoire de choix de variables de nœuds v et fait appel à l’algorithme3 qui recherche systématiquement les ensembles d’arrêt non vides, de façon itérative, pour vérifier s’il y a

des ensembles d’arrêts en utilisant la notion de sous-graphe induit.

Algorithm 2:Recherche un modèle de poinçonnage acceptable R ⊆ V [14], [5], [15] Données: R = v, pour au choix aléatoire v ∈ V, et Q = φ.

Résultat: R,Q où R ⊆ V, Q ⊆ V et V = (R ∪ Q).

tant que (V/(R ∪ Q) 6= φ) faire

Choisir un autre v au hasard dans V (R ∪ Q);

Exécuter l’algorithme3avec A = R + v pour vérifier l’ensembles d’arrêt;

si (R + v possède un ensemble d’arrêt, c’est à dire l’algorithme3retourne vrai) ;alors Q = Q + v;

sinon

R = R + v; fin

fin

Algorithm 3:Vérifie l’existence des ensembles non-vide d’arrêts dans A ⊆ V [14], [5], [15]

Données: S = A.

Résultat: S

tant queS 6= φ faire

Sous-graphe induit G0dans G[S ∪ n(S)];

si∃ un nœud de contrôle dans G0de degré 1alors

Supprimer des nœuds variables de S qui sont adjacents à vérifier nœuds de degré 1 dans G0; sinon

Retour vrai. S est l’ensemble d’arrêt maximale non vide en A; fin

fin

Retourne faux : il n’y a pas un ensemble d’arrêt non vide en A.

Lemme 2 [14] : Un modèle de poinçonnage acceptable R est toujours généré par l’algorithme2. Si A est un ensemble d’arrêt non-vide, alors l’algorithme3retourne toujours vrai, sinon le contraire [14].

Considérons que l’algorithme1est utilisé pour récupérer les bits de l’ensemble A, qui correspondent aux bits effacés sur un BEC, et les effacements récupérés dans la ièmeitération correspondent exacte- ment aux nœuds supprimés dans la ième itération de l’algorithme3. Ceci peut se poser dans le cas où tous les bits sont corrigés par le décodage MP. L’algorithme 3retourne "faux" (absence d’ensemble d’arrêt non vide en A).

Le cas contraire peut se poser si le décodage MP fait face à un ensemble d’arrêt, où seulement quelques bits effacés sont corrigés, et retourne un mot de code partiel. Ceci retourne "vrai" (S est l’ensemble d’arrêt maximal non vide en A), ce qui implique que tous les bits restants ont un degré supérieur à "1"

dans le G0de sous-graphe induit [14].

5.3.3.3 Modèles de poinçonnage des codes

Dans la méthode présenté dans [14] , le taux du code LDPC poinçonné résultant, Rres=n−|R|k = nk

pi,

est défini en fonction du taux du code LDPC systématique et de la taille de l’ensemble des modèles de poinçonnage R où n est la longueur de mot de code avant le poinçonnage et npi est la longueur

de mot de code après le poinçonnage. Nous effectuons une série de simulation sur des codes LDPC pour déterminer le modèles de poinçonnage de chaque code et pour démontrer que |R| est en fonction de la distribution des degrés des nœuds de variable et des nœuds de parité du code LDPC (régulier et irrégulier) [14].

Exemple 1 : code LDPC régulier : On choisit ici un code LDPC régulier (1000, 4, 8) de taux 1/2,

où n = 1000, wc=4, et wr=8. Il s’agit du même code utilisé dans [14]. On exécute l’algorithme2 plusieurs fois, pour construire le modèle de poinçonnage, et puis pour calculer la taille moyenne de l’ensemble |R| [14].

Exemple 2 : code LDPC irrégulier : Un code LDPC irrégulier ayant un taux 1/2, un poids de

nœuds de variables selon la distribution λ (x) = 0.32660x + 0.11960x2+0.18393x3+0.36988x4 et un poids de nœuds de parité selon la distribution de degré ρ(x) = 0.78555x5+0.21445x6 [5]. On cherche le modèle de poinçonnage R à l’aide de l’algorithme2. La taille moyenne de R est entre 498 et 500, avec une probabilité 0.1 d’obtenir |R| = 500, 0.56 pour |R| = 499, et pour |R| = 498 avec une probabilité proche de 0.26 [14], [5], [15], [40]. Nous pouvons affirmer que le caractère aléatoire de l’algorithme2, quand on l’applique sur les codes LDPC irréguliers de taux 1/2, résulte en un modèle de poinçonnage de taille prés ou égal à de n − k.

Des résultats de simulation pour valider l’algorithme de poinçonnage [5] sont présenté au tableau

5.1, ces résultats sont obtenus par l’application de l’algorithme de poinçonnage2avec certains codes

LDPC. On remarque que la perte de 2 paquets (ligne 3 du tableau 5.1) entraine une perte de 273

paquets après décodage.

Le nombre de paquets manquants pour Eve représente les paquets effacés par le canal, le nombre totale de paquets manquants pour Eve égale la cardinalité de modèle de poinçonnage plus le nombre de paquets manquants. Après le décodage, Eve restauré certains paquets (le nombre de paquets restaurés par Eve) et infligé dans une ensemble d’arrêt. Le reste de paquets où l’espion n’a pas l’information représentée par le nombre de paquets restants.

Lemme 3 [14] : On désigne les indices du BEC correspondant aux indices des bits effacés dans pi par Rc, et les degrés de libertés après le décodage MP par DMP. Si un code LDPC irrégulier est utilisé sur le BEC avec l’application intentionnelle d’un modèle de poinçonnage, telle que, |R| = n−k, alors le nombre de degrés de liberté restants aprés le décodage DMP=|Rc|.

Code LDPC Dimension Taux Nombre Nombre Nombre

taux 0.5 du modèle de code de paquets de paquets de paquets

de poinçonnage résultant manquants pour Eve restaurés par Eve restants

|R| Rres Irrégulier 500 1 4 267 237 n=1000 Irrégulier 500 1 56 72 484 n=1000 Régulier 482 0.965 2 211 273 (1000,3,6) Régulier 478 0.957 40 81 437 (1000,3,6) Régulier 403 0.837 61 24 464 (1000,5,10) Régulier 398 0.830 11 60 409 (1000,5,10)

Tableau 5.1: Effet du poinçonnage sur le numbre de paquets restaurés par Eve.

Le décodeur MP peut corriger un maximum de n−k effacements (proposition 2). Puisque |R| = n−k, tout effacement par le canal |Rc| est garanti de donner un degré de liberté dans le décodeur.

5.3.3.4 Entrelacement de bits

L’entrelacement consiste à permuter une séquence de bits de manière à ce que deux symboles ini- tialement proches soient les plus éloignés possibles l’un de l’autre. Cela permet en particulier de transformer une séquence d’erreur portant sur des bits regroupés en une séquence d’erreur répartie sur l’ensemble de la séquence originale. D’après [14], le processus d’entrelacement permet de rassembler les blocs dans η paquets, de sorte que

x = (x1, x2, . . . , xη) (5.12)

Pour ce faire, Alice choisit un entier positif qui divise npi, où η = npi/α. L’équation (5.13) illustre

une méthode pour former l’un de ces paquets [14],[5],[15] : xi= xi1, xi2, . . . , xα Li 

=P(i1−1)α+1, . . . , P1, P(i2−1)α+1, . . . , P2, . . . , P(iL−1)α+1, . . . ,PL (5.13) Le paquet xi est construit par la concaténation des α bits de chaque bloc codé et poinçonné pj pour j=1, 2,..., L, de sorte que l’effacement d’une seul paquet engendre α effacements dans chaque bloc poinçonné au niveau du décodeur. La figure5.5montre un exemple d’entrelacement d’un mot de code xde 16 bits, divisé en L = 4 blocs de longueur 4 et en paquets η = npi/α =4 de longueur α · L = 4

avec α = 1. Un autre exemple est présenté à la figure5.6pour un mot de code de 16 bits, divisé en L=4 bloc de longueur 4 et en nombre de paquets η = npi/α =2 de longueur α · L = 8.

Par conséquent, nous appliquons le modèle de poinçonnage R pour infliger à l’espion un ensemble d’arrêt lors le décodage MP. Si R peut être conçu de telle sorte que |R| = n − k, nous pouvons être assurés que tout paquet effacé fera que tous les L blocs contiennent des effacements, permettant ainsi de mettre le décodeur MP de Eve en échec. On conclut que l’application de l’entrelacement assure un décodage MP sans blocage (succès) après l’obtention de tous les paquets sans erreurs.

1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16 1 5 9 13 2 6 10 14 4 8 12 16 1 2 3 5 6 7 9 10 11 13 14 16 mot de code Entrelacement Paquet effacé Désentrelacement 4 8 12 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

FIGURE5.5: Entrelacement d’un mot de code x de 16 bits, divise en L = 4 blocs de longueur 4, et en

paquets η = n/α =4 avec α = 1. 1 2 5 6 9 10 13 14 3 4 7 8 11 12 15 16 1 2 3 5 6 7 9 10 11 13 14 16 mot de code Entrelacement Paquet effacé Désentrelacement 4 8 12 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 5 6 9 10 13 14 3 4 7 8 11 12 15 16

FIGURE5.6: Entrelacement d’un mot de code X de 16 bits, divise en L = 4 blocs de longueur 16, et

Corollaire [14] : Si |R| = n−k et si les paquets sont formés selon l’équation (5.13), alors le nombre de degrés de liberté dans le ième mot de code est Di

MP=

Ric = α|Rp| pour i = 1, 2,..., L, où Rp représente l’ensemble de tous les paquets effacés et Ri

c représente les bits effacés par le BEC du ième mot de code.

5.3.4 Conception du décodeur

Le décodeur illustré à la figure5.7définit les étapes à suivre par un utilisateur légitime pour décoder tous les mots de codes reçus sans erreur, sachant que, pour les paquets effacés, le récepteur légitime fait des demandes de retransmission via le canal de retour authentifié. Ces mêmes paquets seront reçus par le canal principal.

Les opérations du décodeur étant à l’inverse de celles de l’encodeur, le processus de décodage com- mence par le désentrelacement pour désassembler les paquets sous forme des L blocs poinçonnés ˜p, puis applique le décodage MP, de complexité linéaire, en fonction la longueur du bloc, pour obtenir ˜b. Comme dernière étape, le message estimé ˜m est obtenu par l’application de l’inverse de la ma- trice de brouillage sur la partie systématique du mot de code ˜B. Le décodeur assure que ˜m = m aussi longtemps que les paquets seront connus.

y Mémoire p b m

tampon Désentrelacement MP Mapper à M

paquets de longueur L   blocs de longueur