Articles

Seguridad de las redes de sensores inalámbricos contra ataques maliciosos utilizando el método de residuos de Hamming

En la comunicación digital, los códigos de Hamming se utilizan para detectar y corregir los errores; como resultado, todos los sistemas de comunicación son conscientes de estos códigos. Las WSN son autónomas y requieren un menor consumo de energía, y estos códigos pueden utilizarse para asegurar el sistema WSN sin ninguna infraestructura adicional. En el enfoque presentado, se utilizan bits de seguridad iniciales (definidos por los usuarios) y se añade un conjunto de bits de comprobación de seguridad adicionales para generar la palabra de código de seguridad. Dependiendo de la longitud del código de seguridad «n» y del número de bits de seguridad iniciales «k», pueden utilizarse códigos Hamming (n, k) (como los códigos (6, 3) y (7, 4)) o muchos más. La palabra de código de seguridad «W» se obtiene añadiendo n – k bits de comprobación de seguridad «SC» a los bits de seguridad iniciales «S» (véase la Ecuación 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)

donde p = n – k

«Si» es el iésimo bit de «S», i = 1, 2, 3…. k

«SCj» es el jº bit de «SC», j = 1, 2, 3… p

«Wm» es el mº bit de «W», m = 1, 2, 3… n

Si el número de bits de seguridad iniciales es k, entonces el posible bloque de matriz de bits de seguridad inicial «SB» se representa como

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

donde Sab representa el elemento de la fila a y de la columna b, q = 2k = número total de filas, y k = número total de columnas en SB.

En este enfoque, se utiliza el código Hamming (7, 4) para generar la palabra clave de seguridad «W». Sin embargo, se puede seleccionar el código Hamming según los bits de seguridad iniciales deseados y la longitud de la palabra de código de seguridad. En este caso, los bits de seguridad iniciales son 4 y el posible bloque de matriz de bits de seguridad inicial es (es decir 0-15 representados en bits binarios)

$$ {{mathrm{S}}_{mathrm{B}}=left(\begin{array}{c}0\kern0.5em 0\kern0,5em 0\kern0,5em 0\\\nmás..\dots \dots \ {}1\kern0.5em 1\kern0.5em 11\end{array}\nd{array}\right) $$
(3)

Aquí, en el enfoque presentado, los bits de seguridad iniciales en el nodo fuente son 0 0 0 (es decir, salto 0), por lo que en el salto 1, los bits de seguridad son 0 0 0 1 y así sucesivamente hasta el salto 15, ya que el enfoque propuesto está diseñado sólo hasta 15 saltos. Así, se puede decir simplemente que los bits de seguridad iniciales son el equivalente binario del número de saltos.

$$ \mathrm{inicial}{mathrm{seguridad}{mathrm{bits}=mathrm{hop}{mathrm{número}{left(\mathrm{representado}} \mathrm{in}\mathrm{a}\mathrm{binary}\mathrm{system}\mathrm{right) $$

Después de obtener los bits de seguridad iniciales, se les añaden los bits de comprobación de seguridad. Estos bits de comprobación se generan multiplicando y realizando sumas en módulo 2 de los bits de seguridad iniciales con la matriz de seguridad representada en la Ec. 4

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

donde SPm es la matriz de seguridad (k × p) representada como

$$ {SP}_m=\left(\begin{array}{c}{l}_11}\kern1em {l}_{12}\kern0.5em \cdot {l}_{1p} {l}{21}\kern1em {l}_{22}\cdot {l}{2p}\cdot {l}{2p}\cdot {l}{2p}\cdot} {l}_{k2}\cdot {k}_{kp}\end{array}\right) $$
(5)

donde «lrf» representa el elemento de rª fila y fª columna.

La matriz de seguridad es la matriz de paridad del código de Hamming (7, 4) que se obtiene a partir de su matriz de comprobación de paridad o de su matriz generadora. Estas dos matrices ya están definidas para los códigos Hamming. En el modelo presentado, la SPm es común a todos los nodos fuente de la red y se define como

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

Por ejemplo, en el nodo origen, los bits de seguridad iniciales son (0 0 0 0); por lo tanto, los bits de comprobación de seguridad son

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

donde SChr son los bits de comprobación en el salto r

Shr son los bits de seguridad en el salto r, r = 0, 1, 2, 3 ….

Por lo tanto, la palabra clave de seguridad en el nodo de origen se obtiene añadiendo SCℎ0 a los bits de seguridad del nodo de origen y puede representarse como

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

donde Wℎr es la palabra clave de seguridad en el salto r, r = 0, 1, 2,….

Después de evaluar la palabra clave de seguridad, el residuo cuadrático se utiliza para proporcionar seguridad adicional, ya que sólo los códigos Hamming pueden no ser eficientes para proporcionar la seguridad deseada a las WSN. Los residuos cuadráticos están definidos por el usuario, son seguros, fáciles de implementar y están fácilmente disponibles. En este enfoque, se considera el residuo de 7, ya que la longitud del código de seguridad obtenido es de 7 y cubre el máximo de bits en el código de seguridad para mejorar la seguridad. Los residuos de 7 son 1, 2 y 4; aquí, en el enfoque presentado, estas posiciones de bits (es decir, 1, 2 y 4) se complementan en el codeword. Así, la palabra clave de seguridad final generada puede representarse como

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

donde «Rw0» es la palabra clave de seguridad final (tras complementar las posiciones de los residuos en Wℎ0) en el salto r. Aparte de la sincronización de la palabra clave de seguridad final, se supervisa continuamente la relación de entrega de paquetes (PDR) (véase la ecuación 6) de los nodos. Si el valor de PDR es aceptable, sólo entonces se transfieren los datos, y si está más allá del límite aceptable, los datos no se transmiten más. De forma similar, este proceso continúa hasta el nodo de destino.

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

donde R.P son los paquetes recibidos y T.P son los paquetes transmitidos

Proceso de coincidencia de nodos

La figura 1 representa una red multisalto en la que el nodo origen se comunica con el nodo destino a través de nodos intermedios. El nodo origen envía Rw0 a todos sus nodos vecinos que están a un salto del nodo origen. La operación requerida en varios saltos se discute en las secciones 4.1.1 y 4.1.2.

Fig. 1
figure1

Red multisalto con nodo rival

En el salto 1

Los bits de seguridad iniciales son 0 0 0 1; los bits de comprobación de seguridad se generan multiplicando estos bits con 푆푃푚

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

Y la palabra clave en el salto 1 puede evaluarse como sigue

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

Complementando el residuo (de 7) posiciones (es decir, primera, segunda y cuarta posiciones) en Wℎ1, la palabra clave de seguridad final en el salto 1 se representa como

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

Si el nodo vecino envía Rw1 como acuse de recibo al nodo fuente y su valor PDR es aceptable, entonces el nodo fuente transferirá los datos originales a ese nodo vecino. El acuse de recibo no debe exceder el tiempo de vida (TTL) proporcionado. Ahora, este nodo vecino se convierte en el nodo fuente para otros nodos de la red y transmite Rw1 a sus nodos vecinos.

En el salto 2

Los bits de seguridad son 0 0 1 0, y los bits de comprobación son

$$ {\displaystyle \begin{array}{l}{C}_{h2}={S}_{h2}\times {SP}_m\ {}kern2.5em =\a la izquierda(1\kern1em 1\kern0,62em 1\a la derecha)\a la derecha). $$
$$ {W}_{h2}=0\kern1em 0\kern0.62em 1\kern0.62em 0\kern1em 1\kern1em 1\kern1em 1 $$

Complementando las posiciones de los residuos en Wℎ2, la palabra clave de seguridad final en el salto 2 puede calcularse como

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

Si el nodo fuente es reconocido con Rw2, entonces pasará los datos al nodo del que ha recibido el reconocimiento. Si no, el nodo se considera un nodo rival y los datos no se transmiten a ese nodo. Este proceso continúa hasta que el nodo de destino recibe la información o los datos. Este proceso puede entenderse fácilmente utilizando el diagrama del protocolo (véase la Fig. 2). Como la palabra clave de seguridad se cambia en cada salto y resulta muy difícil para los nodos rivales engañar al nodo activo en la red, el enfoque presentado no sólo mejora la autenticación del nodo activo, sino que también proporciona más confidencialidad a los nodos finales mediante el diseño de múltiples palabras clave en la red. En la Fig. 2 se observa que los datos se transfieren al nodo intermedio 1 (IN1) desde el nodo fuente, ya que éste da el acuse de recibo positivo (+ACK), es decir, 푅푤1, al nodo fuente. Una vez que IN1 recibe los datos, actúa como nodo fuente para sus nodos vecinos y les transmite 푅푤1. Los datos no se transfieren al nodo intermedio 2 (IN 2) ya que éste da acuse de recibo negativo (-ACK) a IN1, por lo que se considera un nodo rival.

Fig. 2
figure2

Diagrama del protocolo

.