Articles

Sicurezza delle reti di sensori wireless contro gli attacchi malevoli usando il metodo dei residui di Hamming

Nella comunicazione digitale, i codici di Hamming sono usati per rilevare e correggere gli errori; di conseguenza, tutti i sistemi di comunicazione sono a conoscenza di questi codici. Le WSN sono autonome e richiedono un minore consumo di energia, e tali codici possono essere utilizzati per proteggere il sistema WSN senza alcuna infrastruttura aggiuntiva. Nell’approccio presentato, i bit di sicurezza iniziali (definiti dagli utenti) sono usati e un insieme di bit di controllo di sicurezza aggiuntivi è aggiunto per generare la codifica di sicurezza. A seconda della lunghezza del codice di sicurezza “n” e del numero di bit di sicurezza iniziali “k”, possono essere utilizzati codici di Hamming (n, k) (come i codici (6, 3) e (7, 4) o molti altri. Il codice di sicurezza “W” è ottenuto aggiungendo n – k bit di controllo di sicurezza “SC” ai bit di sicurezza iniziali “S” (fare riferimento all’Eq. 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 punti {SC}_p $$
(1)

dove p = n – k

“Si” è l’iesimo bit di “S,” i = 1, 2, 3…. k

“SCj” è il jesimo bit di “SC”, j = 1, 2, 3… p

“Wm” è il mesimo bit di “W”, m = 1, 2, 3… n

Se il numero di bit di sicurezza iniziali è k, allora il possibile blocco di matrice dei bit di sicurezza iniziali “SB” è rappresentato come

$$ {mathrm{S}}_{mathrm{B}}==sinistra(\begin{array}{c}{mathrm{S}}_{11}\kern1em \{mathrm{S} {mathrm{S}{2k} {mathrm{S} {mathrm{S}{2k} {mathrm{S} {mathrm{S} {mathrm{S} {mathrm{S}{2kern1em {mathrm{S} {mathrm{S}{q2} {mathrm{S} {mathrm{S}{2kern1em {$$
(2)

dove Sab rappresenta l’elemento di a riga e b colonna, q = 2k = numero totale di righe e k = numero totale di colonne in SB.

In questo approccio, il codice di Hamming (7, 4) è usato per generare la parola chiave di sicurezza “W”. Tuttavia, si può selezionare il codice di Hamming in base ai bit di sicurezza iniziali desiderati e alla lunghezza della parola chiave di sicurezza. Qui, i bit di sicurezza iniziali sono 4 e il possibile blocco di matrice di bit di sicurezza iniziale è (cioè, 0-15 rappresentati in bit binari)

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

Qui, nell’approccio presentato, i bit di sicurezza iniziale al nodo sorgente sono 0 0 0 0 (cioè, hop 0), quindi all’hop 1, i bit di sicurezza sono 0 0 0 1 e così via fino all’hop 15 poiché l’approccio proposto è progettato solo fino a 15 hop. Così, semplicemente si può dire che i bit di sicurezza iniziali sono l’equivalente binario del numero di hop.

$$ \mathrm{Initial}\mathrm{Security}\mathrm{bits}=mathrm{hop}\mathrm{number}\mathrm{number}\sinistra(\mathrm{represented}\mathrm{represented} \$$

Dopo aver ottenuto i bit di sicurezza iniziali, vengono aggiunti i bit di controllo di sicurezza. Questi bit di controllo sono generati moltiplicando ed eseguendo addizioni modulo 2 dei bit di sicurezza iniziali con la matrice di sicurezza rappresentata in Eq. 4

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

dove SPm è la matrice di sicurezza (k × p) rappresentata come

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

dove “lrf” rappresenta l’elemento della rª riga e della fª colonna.

La matrice di sicurezza è la matrice di parità del codice di Hamming (7, 4) che si ottiene o dalla sua matrice di controllo di parità o dalla sua matrice generatrice. Queste due matrici sono già definite per i codici di Hamming. Nel modello presentato, la SPm è comune a tutti i nodi sorgente della rete ed è definita come

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

Per esempio, al nodo sorgente, i bit di sicurezza iniziali sono (0 0 0 0); quindi, i bit di controllo di sicurezza sono

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

dove SChr sono i bit di controllo al resimo salto

Shr sono i bit di sicurezza al resimo salto, r = 0, 1, 2, 3 ….

Quindi, il codice di sicurezza al nodo sorgente si ottiene aggiungendo SCℎ0 ai bit di sicurezza del nodo sorgente e può essere rappresentato come

$$ {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\kern0.5em 0\kern0.5em 0 $$

dove Wℎr è il codice di sicurezza al salto r, r = 0, 1, 2,….

Dopo aver valutato il codice di sicurezza, il residuo quadratico viene utilizzato per fornire ulteriore sicurezza, poiché solo i codici di Hamming potrebbero non essere efficienti per fornire la sicurezza desiderata alle WSN. I residui quadratici sono definiti dall’utente, sicuri, facili da implementare e facilmente disponibili. In questo approccio, il residuo di 7 è considerato, in quanto la lunghezza della parola chiave di sicurezza ottenuta è 7 e copre il massimo di bit nella parola chiave di sicurezza per migliorare la sicurezza. I residui di 7 sono 1, 2 e 4; qui, nell’approccio presentato, queste posizioni di bit (cioè 1, 2 e 4) sono completate nel codeword. Quindi, il codice di sicurezza finale generato può essere rappresentato come

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

dove “Rw0” è il codice di sicurezza finale (dopo aver completato le posizioni dei residui in Wℎ0) al resimo hop. Oltre alla sincronizzazione della codifica di sicurezza finale, il rapporto di consegna dei pacchetti (PDR) (vedi Eq. 6) dei nodi viene continuamente monitorato. Se il valore PDR è accettabile, solo allora che i dati vengono trasferiti, e se è oltre il limite accettabile, i dati non vengono passati ulteriormente. In modo simile, questo processo continua fino al nodo di destinazione.

$$ \mathrm{PDR}=\mathrm{No}.\$$
(6)

dove R.P è il pacchetto ricevuto e T.P è il pacchetto trasmesso

Processo di corrispondenza dei nodi

La figura 1 mostra una rete multi-hop in cui il nodo sorgente comunica con il nodo destinazione attraverso nodi intermedi. Il nodo sorgente invia Rw0 a tutti i suoi nodi vicini che sono a un hop di distanza dal nodo sorgente. Il funzionamento richiesto ai vari hop è discusso nelle sezioni 4.1.1 e 4.1.2.

Fig. 1
figure1

Rete multi-hop con nodo rivale

Al salto 1

I bit di sicurezza iniziali sono 0 0 0 1; i bit di controllo di sicurezza sono generati moltiplicando questi bit con 푆푃푚

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

E la parola chiave al passo 1 può essere valutata come segue

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

Complementando il residuo (di 7) posizioni (cioè, prima, seconda e quarta posizione) in W210E↩1, il codice di sicurezza finale all’hop 1 è rappresentato come

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

Se il nodo vicino invia Rw1 come riconoscimento al nodo sorgente e il suo valore PDR è accettabile, allora il nodo sorgente trasferirà i dati originali a quel nodo vicino. La conferma non dovrebbe superare il tempo di vita previsto (TTL). Ora, questo nodo vicino diventa il nodo sorgente per altri nodi della rete e trasmette Rw1 ai suoi nodi vicini.

Al salto 2

I bit di sicurezza sono 0 0 1 0, e i bit di controllo sono

$$ {displaystyle \begin{array}{l}{C}_{h2}={S}_{h2}{SP}_m\\code(1).5em ==sinistra(1\kern1em 1\kern0.62em 1\destra)\end{array}} $$
$$ {W}_{h2}=0\kern1em 0\kern0.62em 1\kern0.62em 0\kern1em 1\kern1em 1\kern1em 1 $$

Complementando le posizioni dei residui in Wℎ2, il codice di sicurezza finale al passo 2 può essere calcolato come

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

Se il nodo sorgente viene riconosciuto con Rw2, allora passerà i dati al nodo da cui ha ricevuto l’accettazione. In caso contrario, il nodo viene considerato un nodo rivale e i dati non vengono trasmessi a quel nodo. Questo processo continua fino a quando l’informazione o i dati sono ricevuti dal nodo di destinazione. Questo processo può essere facilmente compreso usando il diagramma di protocollo (vedi Fig. 2). Poiché il codice di sicurezza viene cambiato ad ogni salto e diventa molto difficile per i nodi rivali ingannare il nodo attivo nella rete, così l’approccio presentato non solo migliora l’autenticazione del nodo attivo ma dà anche più riservatezza ai nodi finali progettando più codici nella rete. Dalla Fig. 2, si osserva che i dati vengono trasferiti al nodo intermedio 1 (IN1) dal nodo sorgente in quanto dà il riconoscimento positivo (+ACK), cioè 푅푤1, al nodo sorgente. Una volta che i dati vengono ricevuti da IN1, esso agisce come nodo sorgente per i suoi nodi vicini e trasmette 푅푤1 a loro. I dati non vengono trasferiti al nodo intermedio 2 (IN 2) in quanto dà un riconoscimento negativo (-ACK) a IN1, quindi considerato un nodo rivale.

Fig. 2
figure2

Schema di protocollo