Articles

Security to wireless sensor networks against malicious attacks using Hamming residue method

A digitális kommunikációban a Hamming-kódokat használják a hibák észlelésére és javítására; ennek eredményeként minden kommunikációs rendszer ismeri ezeket a kódokat. A WSN-ek autonómok és kevesebb energiafogyasztást igényelnek, és az ilyen kódok további infrastruktúra nélkül használhatók a WSN-rendszer védelmére. A bemutatott megközelítésben (a felhasználók által meghatározott) kezdeti biztonsági biteket használnak, és egy sor további biztonsági ellenőrző bitet csatolnak hozzá a biztonsági kódszó létrehozásához. Az “n” biztonsági kódszó hosszától és a “k” kezdeti biztonsági bitek számától függően használhatók Hamming-kódok (n, k) (például (6, 3) és (7, 4) kódok) vagy ennél sokkal több. A “W” biztonsági kódszót úgy kapjuk meg, hogy az “SC” n – k biztonsági ellenőrzőbitet csatolunk az “S” kezdeti biztonsági bitekhez (lásd az 1. egyenletet)

$$ 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)

ahol p = n – k

“Si” az “S” i-edik bitje, i = 1, 2, 3….. k

“SCj” az “SC” j-edik bitje, j = 1, 2, 3… p

“Wm” a “W” m-edik bitje, m = 1, 2, 3… n

Ha a kezdeti biztonsági bitek száma k, akkor a lehetséges kezdeti biztonsági bitek “SB” mátrixblokkja a következőképpen ábrázolható:

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

ahol Sab az ath sor és bth oszlop elemét jelenti, q = 2k = a sorok teljes száma, és k = az SB oszlopok teljes száma.

Ez a megközelítés a (7, 4) Hamming-kódot használja a “W” biztonsági kódszó előállítására. A Hamming-kódot azonban a kívánt kezdeti biztonsági biteknek és a biztonsági kódszó hosszának megfelelően lehet kiválasztani. Itt a kezdeti biztonsági bitek száma 4, és a lehetséges kezdeti biztonsági bitek mátrixblokkja (azaz, 0-15 bináris bitekben ábrázolva)

$$$ {\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)

A bemutatott megközelítésben a kezdeti biztonsági bitek a forráscsomópontban 0 0 0 0 0 (azaz, ugrás 0), tehát az 1. ugrásnál a biztonsági bitek 0 0 0 0 1, és így tovább a 15. ugrásig, mivel a javasolt megközelítés csak 15 ugrásig van kialakítva. Így egyszerűen azt mondhatjuk, hogy a kezdeti biztonsági bitek az ugrásszám bináris egyenértékűek.

$$$ \mathrm{Initial}\ \mathrm{Security}\ \mathrm{bits}=\mathrm{hop}\ \mathrm{number}\ \left(\mathrm{reprezentált}\\ \mathrm{in}\ \mathrm{a}\ \mathrm{binary}\ \mathrm{system}\right) $$

A kezdeti biztonsági bitek megszerzése után, a biztonsági ellenőrző biteket hozzáadjuk hozzájuk. Ezeket az ellenőrző biteket a kezdeti biztonsági biteknek az egyenletben ábrázolt biztonsági mátrixszal való szorzásával és modulo 2-es összeadásával hozzuk létre. 4

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

ahol SPm a (k × p) biztonsági mátrix, amelyet a következőképpen ábrázolunk

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

(5)

amelyben “lrf” az r-edik sor és f-edik oszlop elemét jelenti.

A biztonsági mátrix a (7, 4) Hamming-kód paritásmátrixa, amelyet vagy a paritásellenőrző mátrixából, vagy a generátormátrixából kapunk. Ez a két mátrix már definiálva van a Hamming-kódok esetében. A bemutatott modellben az SPm a hálózat összes forráscsomópontja számára közös, és a következőképpen van definiálva:

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

A forráscsomópontban például a kezdeti biztonsági bitek (0 0 0 0 0 0); így a biztonsági ellenőrző bitek

$$ {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}\right)=\left(0\kern0.62em 0\kern0.24em 0\right) $$$

ahol SChr az ellenőrzési bitek az r-edik ugrásnál

Shr a biztonsági bitek az r-edik ugrásnál, r = 0, 1, 2, 3 …. ….

A biztonsági kódszót a forráscsomópontban tehát úgy kapjuk meg, hogy SCℎ0-t hozzáadjuk a forráscsomópont biztonsági bitjeihez, és a következőképpen ábrázolható

$$$ {W}_{h0}={S}_1\kern0.5em {S}_2\kern0.5em {S}_3\kern0.5em {S}_4\kern0.5em.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\kern0.5em 0 $$

ahol Wℎr a biztonsági kódszó az r ugrásnál, r = 0, 1, 2,…..

A biztonsági kódszó kiértékelése után a kvadratikus maradékot használjuk további biztonság nyújtására, mivel csak a Hamming-kódok nem biztos, hogy hatékonyan biztosítják a WSN-ek kívánt biztonságát. A kvadratikus maradékok felhasználó által meghatározottak, biztonságosak, könnyen megvalósíthatók és könnyen elérhetők. Ebben a megközelítésben a 7-es maradékot vesszük figyelembe, mivel a kapott biztonsági kódszó hossza 7, és a biztonság növelése érdekében a biztonsági kódszó maximális bitjeit fedi le. A 7 maradékai 1, 2 és 4; itt, a bemutatott megközelítésben ezeket a bitpozíciókat (azaz 1, 2 és 4) kiegészítik a kódszóban. Így a generált végső biztonsági kódszó a következőképpen ábrázolható:

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

ahol “Rw0” a végső biztonsági kódszó (a Wℎ0 maradékpozíciók kiegészítése után) az r-edik ugrásnál. A végső biztonsági kódszó szinkronizálása mellett a csomópontok csomagkézbesítési arányát (PDR) (lásd 6. egyenlet) folyamatosan figyelik. Ha a PDR értéke elfogadható, csak akkor kerül sor az adatok továbbítására, ha pedig az elfogadható határértéket meghaladja, akkor az adatok nem kerülnek továbbításra. Ez a folyamat hasonló módon folytatódik a célcsomópontig.

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

hol R.P a fogadott csomagok és T.P az átvett csomagok

Kapcsolategyeztetési folyamat

Az 1. ábra egy többugrós hálózatot ábrázol, amelyben a forráscsomópont köztes csomópontokon keresztül kommunikál a célcsomóponttal. A forráscsomópont Rw0-t küld az összes szomszédos csomópontjának, amelyek egy ugrásnyira vannak a forráscsomóponttól. A különböző ugrásoknál szükséges műveleteket a 4.1.1. és 4.1.2. szakaszok tárgyalják.

Ábra. 1
figure1

Multi-hop hálózat rivális csomóponttal

Az 1. ugrásnál

A kezdeti biztonsági bitek 0 0 0 0 1; a biztonsági ellenőrző biteket úgy generáljuk, hogy ezeket a biteket megszorozzuk 푆푃푚

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

És az 1. ugrásnál lévő kódszó az alábbiak szerint értékelhető

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

A maradék (a 7) pozícióból származó) pozíciókat kiegészítve (ill, első, második és negyedik pozícióját) a Wℎ1-ben, a végső biztonsági kódszó az 1. ugrásnál a következőképpen ábrázolható:

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

Ha a szomszédos csomópont Rw1-et küld visszaigazolásként a forráscsomópontnak, és annak PDR értéke elfogadható, akkor a forráscsomópont az eredeti adatokat továbbítja az adott szomszédos csomópontnak. A nyugtázás nem haladhatja meg a megadott élettartamot (TTL). Most ez a szomszédos csomópont lesz a hálózat többi csomópontja számára a forráscsomópont, és továbbítja az Rw1-et a szomszédos csomópontjainak.

A 2. ugrásnál

A biztonsági bitek 0 0 1 0, az ellenőrző bitek pedig

$$$ {\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 $$$

A Wℎ2-ben lévő maradékpozíciókat kiegészítve a 2. ugrásnál a végső biztonsági kódszó a következőképpen számítható

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

Ha a forráscsomópont Rw2-vel nyugtázza, akkor továbbítja az adatokat annak a csomópontnak, ahonnan a nyugtázást kapta. Ha nem, akkor a csomópontot rivális csomópontnak tekinti, és az adatot nem továbbítja az adott csomópontnak. Ez a folyamat addig folytatódik, amíg a célcsomópont meg nem kapja az információt vagy az adatot. Ez a folyamat könnyen megérthető a protokolldiagram segítségével (lásd a 2. ábrát). Mivel a biztonsági kódszó minden ugrásnál változik, és nagyon nehéz a rivális csomópontoknak félrevezetni a hálózat aktív csomópontját, ezért a bemutatott megközelítés nemcsak az aktív csomópont hitelesítését javítja, hanem a hálózatban több kódszó kialakításával a végcsomópontok számára is nagyobb bizalmasságot biztosít. A 2. ábrán megfigyelhető, hogy az adatok a forráscsomópontból az 1. közbenső csomóponthoz (IN1) kerülnek, mivel az pozitív visszaigazolást (+ACK), azaz 푅푤1-t ad a forráscsomópontnak. Miután az IN1 megkapta az adatot, forráscsomópontként viselkedik a szomszédos csomópontjai számára, és továbbítja nekik az 푅푤1-et. A 2. köztes csomópont (IN 2) nem továbbítja az adatot, mivel negatív visszaigazolást (-ACK) ad az IN1-nek, ezért rivális csomópontnak minősül.

2. ábra
figure2

Protokolldiagram

.