Articles

Sécurité des réseaux de capteurs sans fil contre les attaques malveillantes en utilisant la méthode des résidus de Hamming

Dans la communication numérique, les codes de Hamming sont utilisés pour détecter et corriger les erreurs ; par conséquent, tous les systèmes de communication connaissent ces codes. Les WSN sont autonomes et nécessitent moins de consommation d’énergie, et de tels codes peuvent être utilisés pour sécuriser le système WSN sans infrastructure supplémentaire. Dans l’approche présentée, des bits de sécurité initiaux (définis par les utilisateurs) sont utilisés et un ensemble de bits de contrôle de sécurité supplémentaires y est ajouté pour générer le mot de code de sécurité. En fonction de la longueur du mot de code de sécurité « n » et du nombre de bits de sécurité initiaux « k », des codes de Hamming (n, k) (tels que les codes (6, 3) et (7, 4)) peuvent être utilisés ou bien d’autres encore. Le mot de code de sécurité « W » est obtenu en ajoutant n – k bits de contrôle de sécurité « SC » aux bits de sécurité initiaux « S » (voir l’équation 1)

$$ W={W}_1..{W}_2..{W}_3\dots {W}_n={S}_1..{S}_2..{S}_3\dots {S}_k{SC}_1..{SC}_2…{SC}_3\dots {SC}_p $$
(1)

où p = n – k

« Si » est le ième bit de « S, » i = 1, 2, 3…. k

« SCj » est le jème bit de « SC », j = 1, 2, 3… p

« Wm » est le mème bit de « W », m = 1, 2, 3… n

Si le nombre de bits de sécurité initiaux est k, alors le bloc matriciel de bits de sécurité initial possible « SB » est représenté comme suit

$$ {\mathrm{S}}_{\mathrm{B}}=\left(\begin{array}{c}{\mathrm{S}}_{11}\kern1em {\cdot {\mathrm{S}}_{12}\cdots {\mathrm{S}}_{1k}\\{\mathrm{S}}_{21}\kern1em {\mathrm{S}}}_{22}\cdot \cdots {\mathrm{S}}_{2k}\\\dots \dots \dots \dots \dots \dots \dots \\\\dots {}{\mathrm{S}}}_{q1}\kern1em {\mathrm{S}}_{q2}\cdots {\mathrm{S}}_{qk}\end{array}\right) $$
(2)

où Sab représente l’élément de la ath rangée et de la bième colonne, q = 2k = nombre total de lignes, et k = nombre total de colonnes dans SB.

Dans cette approche, le code de Hamming (7, 4) est utilisé pour générer le mot de code de sécurité « W ». Cependant, on peut choisir le code de Hamming en fonction des bits de sécurité initiaux souhaités et de la longueur du mot de code de sécurité. Ici, les bits de sécurité initiaux sont 4 et le bloc matriciel de bits de sécurité initial possible est (c’est-à-dire, 0-15 représentés en bits binaires)

$$ {\mathrm{S}}_{\mathrm{B}}=\left(\begin{array}{c}0\kern0.5em 0\kern0.5em 0\kern0.5em 0\\\\ {}0\kern0.5em 0\;0\kern0.5em 1\\\\\\ {}0\kern0.5em 0\;1\kern0.5em 0\\\ {}\begin{array}{l}..\dots \dots \\\\\ {}1\kern0.5em 1\kern0.5em 11\end{array}\end{array}\right) $$
(3)

Ici, dans l’approche présentée, les bits de sécurité initiaux au nœud source sont 0 0 0 0 0 (c’est-à-dire, hop 0), donc au hop 1, les bits de sécurité sont 0 0 0 1 et ainsi de suite jusqu’au hop 15 puisque l’approche proposée est conçue jusqu’à 15 hops seulement. Ainsi, on peut dire simplement que les bits de sécurité initiaux sont l’équivalent binaire du nombre de sauts.

$$ \mathrm{Initial}\ \mathrm{Security}\ \mathrm{bits}=\mathrm{hop}\ \mathrm{number}\ \left(\mathrm{represented}\ \mathrm{in}\\\N- \mathrm{a}\N\N\N\N\N\N\N\N\N- droite) $$

Après avoir obtenu les bits de sécurité initiaux, on leur ajoute les bits de contrôle de sécurité. Ces bits de contrôle sont générés en multipliant et en effectuant des additions modulo 2 des bits de sécurité initiaux avec la matrice de sécurité telle que représentée dans l’Eq. 4

$$ SC=S\times {SP}_m $$
(4)

où SPm est une matrice de sécurité (k × p) représentée par

$$ {SP}_m=\left(\begin{array}{c}{l}_{11}\kern1em {l}_{12}\kern0. {l}_{k2}\cdot \cdots {k}_{kp}\end{array}\right) $$
(5)

où « lrf » représente l’élément de la rième ligne et de la fième colonne.

La matrice de sécurité est la matrice de parité du code de Hamming (7, 4) qui est obtenue soit à partir de sa matrice de contrôle de parité, soit à partir de sa matrice génératrice. Ces deux matrices sont déjà définies pour les codes de Hamming. Dans le modèle présenté, la SPm est commune à tous les nœuds sources du réseau et est définie comme suit

$$ {SP}_m=\left(\begin{array}{c}1\kern0.62em 1\kern1em 0\\\\{0\kern1em 1\kern1em 1\{{1\kern1em 1\kern0.62em 1\\\\\\N {}1\kern1em 0\kern1em 1\end{array}\right) $$

Par exemple, au niveau du noeud source, les bits de sécurité initiaux sont (0 0 0 0) ; par conséquent, les bits de contrôle de sécurité sont

$$ {SC}_{h0}={S}_{h0}\times {SP}_m=\left\times \left(\begin{array}{c}1\kern1em 1\kern1em 0\\\\\\\\{0}0\kern1em 1\kern0.24em 1\\\ {}1\kern0.24em 1\kern0.24em 1\\ {}1\kern0.24em 0\kern0.24em 1\end{array}\right)=\left(0\kern0.62em 0\kern0.24em 0\right) $$

où SChr sont les bits de contrôle au rième saut

Shr sont les bits de sécurité au rième saut, r = 0, 1, 2, 3 …..

Donc, le mot de code de sécurité au niveau du nœud source est obtenu en ajoutant SCℎ0 aux bits de sécurité du nœud source et peut être représenté comme

$$ {W}_{h0}={S}_1\kern0.5em {S}_2\kern0.5em {S}_3\kern0.5em {S}_4\kern0.5em {C}_1\kern0.5em {C}_2\kern0.5em {S}_3=0\kern0.5em 0\kern0.5em 0\;0\kern0.5em 0\kern0.5em 0\kern0.5em 0 $$

où Wℎr est le mot-code de sécurité au saut r, r = 0, 1, 2,….

Après avoir évalué le mot de code de sécurité, le résidu quadratique est utilisé pour fournir une sécurité supplémentaire car seuls les codes de Hamming peuvent ne pas être efficaces pour fournir la sécurité souhaitée aux WSN. Les résidus quadratiques sont définis par l’utilisateur, sûrs, faciles à mettre en œuvre et facilement disponibles. Dans cette approche, le résidu de 7 est considéré, car la longueur du mot de code de sécurité obtenu est de 7 et couvre un maximum de bits dans le mot de code de sécurité pour améliorer la sécurité. Les résidus de 7 sont 1, 2 et 4 ; ici, dans l’approche présentée, ces positions binaires (c’est-à-dire 1, 2 et 4) sont complétées dans le mot de code. Ainsi, le mot de code de sécurité final généré peut être représenté comme

$$ {R}_{w0}=1\kern1em 1\kern0.24em 0\kern0.62em 1\kern0.62em 0\kern0.24em 0 $$

où « Rw0 » est le mot de code de sécurité final (après complémentation des positions de résidus dans Wℎ0) au rième saut. Outre la synchronisation du mot de code de sécurité final, le rapport de livraison de paquets (PDR) (voir Eq. 6) des noeuds est surveillé en permanence. Si la valeur PDR est acceptable, alors seulement les données sont transférées, et si elle est au-delà de la limite acceptable, les données ne sont plus transmises. De façon similaire, ce processus continue jusqu’au nœud de destination.

$$ \mathrm{PDR}=\mathrm{No}.\mathrm{de}\N{P}/\mathrm{No}.\mathrm{de}\N{T}.\mathrm{P} $$
(6)

où R.P est les paquets reçus et T.P est les paquets transmis

Processus d’appariement des nœuds

La figure 1 représente un réseau multi-sauts dans lequel le nœud source communique avec le nœud de destination à travers des nœuds intermédiaires. Le noeud source envoie Rw0 à tous ses noeuds voisins qui sont à un saut du noeud source. Le fonctionnement requis aux différents sauts est discuté dans les sections 4.1.1 et 4.1.2.

Fig. 1
figure1

Réseau à bonds multiples avec nœud rival

Au saut 1

Les bits de sécurité initiaux sont 0 0 0 1 ; les bits de contrôle de sécurité sont générés en multipliant ces bits par 푆푃푚

$$ {C}_{h1}{\displaystyle \begin{array}{c}={S}_{h1}\times {SP}_m\\ {}=\left(1\kern1.12em 0\kern1.5em 1\right)\end{array}} $$

Et le mot de code au saut 1 peut être évalué comme suit

$$ {W}_{h1}=0\kern1em 0\kern0.62em 0\kern0.24em 1\kern0.62em 1\kern0.5em 0\kern0.24em 1 $$

Complémentant le résidu (de 7) positions (c’est-à-dire, première, deuxième et quatrième positions) dans Wℎ1, le mot de code de sécurité final au saut 1 est représenté comme

$$ {R}_{w1}=1\kern1em 1\kern1em 0\kern1em 0\kern1em 1\kern1em 0\kern1em 1 $$

Si le noeud voisin envoie Rw1 comme accusé de réception au noeud source et que sa valeur PDR est acceptable, alors le noeud source transférera les données originales à ce noeud voisin. L’accusé de réception ne doit pas dépasser le temps de vie (TTL) prévu. Maintenant, ce nœud voisin devient le nœud source pour les autres nœuds du réseau et transmet Rw1 à ses nœuds voisins.

Au saut 2

Les bits de sécurité sont 0 0 1 0, et les bits de contrôle sont

$$ {\displaystyle \begin{array}{l}{C}_{h2}={S}_{h2}\times {SP}_m\\\ {}\kern2.5em =\left(1\kern1em 1\kern0.62em 1\right)\end{array}} $$
$$ {W}_{h2}=0\kern1em 0\kern0.62em 1\kern0.62em 0\kern1em 1\kern1em 1\kern1em 1 $$

Complémentant les positions des résidus dans Wℎ2, le mot de code de sécurité final au saut 2 peut être calculé comme

$$ {R}_{w2}=1\kern0.5em 1\kern0.5em 1\kern0.5em 1\kern0.5em 1\;1\;1 $$

Si le nœud source reçoit un accusé de réception avec Rw2, alors il transmet les données au nœud duquel il a reçu l’accusé de réception. Dans le cas contraire, le nœud est considéré comme un nœud rival et les données ne sont pas transmises à ce nœud. Ce processus se poursuit jusqu’à ce que l’information ou les données soient reçues par le nœud de destination. Ce processus peut être facilement compris en utilisant le diagramme du protocole (voir Fig. 2). Comme le mot de code de sécurité est modifié à chaque saut et qu’il devient très difficile pour les nœuds rivaux de tromper le nœud actif du réseau, l’approche présentée améliore non seulement l’authentification du nœud actif mais assure également une plus grande confidentialité aux nœuds finaux en concevant des mots de code multiples dans le réseau. D’après la figure 2, on observe que les données sont transférées au noeud intermédiaire 1 (IN1) depuis le noeud source, car il donne un accusé de réception positif (+ACK), c’est-à-dire 푅푤1, au noeud source. Une fois que les données sont reçues par IN1, il agit comme le nœud source pour ses nœuds voisins et leur transmet 푅푤1. Les données ne sont pas transférées au nœud intermédiaire 2 (IN 2) car il donne un accusé de réception négatif (-ACK) à IN1, donc considéré comme un nœud rival.

Fig. 2
figure2

Diagramme du protocole

.