Articles

Bezpieczeństwo bezprzewodowych sieci sensorowych przed złośliwymi atakami z wykorzystaniem metody reszt Hamminga

W komunikacji cyfrowej kody Hamminga są używane do wykrywania i korygowania błędów; w rezultacie wszystkie systemy komunikacyjne są świadome tych kodów. Sieci WSN są autonomiczne i wymagają mniejszego zużycia energii, a takie kody mogą być wykorzystane do zabezpieczenia systemu WSN bez dodatkowej infrastruktury. W prezentowanym podejściu wykorzystywane są początkowe bity bezpieczeństwa (definiowane przez użytkownika), do których dołączany jest zestaw dodatkowych bitów sprawdzających bezpieczeństwo w celu wygenerowania bezpiecznego słowa kodowego. W zależności od długości zabezpieczającego słowa kodowego „n” i liczby początkowych bitów bezpieczeństwa „k”, mogą być użyte kody Hamminga (n, k) (takie jak kody (6, 3) i (7, 4)) lub wiele innych. Słowo kodowe bezpieczeństwa „W” uzyskuje się przez dołączenie n – k bitów kontroli bezpieczeństwa „SC” do początkowych bitów bezpieczeństwa „S” (patrz równanie 1)

$$ W={W}_1..{W}_2..{W}_3}kropki {W}_n={S}_1..{S}_2..{S}_3}kropki {S}_k{SC}_1..{SC}_2..{SC}_3_p $$
(1)

gdzie p = n – k

„Si” jest i-tym bitem „S”, i = 1, 2, 3…. k

„SCj” to j-ty bit „SC”, j = 1, 2, 3… p

„Wm” to m-ty bit „W”, m = 1, 2, 3… n

Jeżeli liczba początkowych bitów bezpieczeństwa wynosi k, wtedy możliwy blok macierzy początkowych bitów bezpieczeństwa „SB” jest przedstawiony jako

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

gdzie Sab reprezentuje element a-tego wiersza i b-tej kolumny, q = 2k = całkowita liczba wierszy i k = całkowita liczba kolumn w SB.

W tym podejściu, (7, 4) kod Hamminga jest używany do generowania słowa kodowego bezpieczeństwa „W.” Jednakże, można wybrać kod Hamminga zgodnie z pożądanymi początkowymi bitami bezpieczeństwa i długością zabezpieczającego słowa kodowego. Tutaj, początkowe bity bezpieczeństwa wynoszą 4, a możliwy blok macierzy początkowych bitów bezpieczeństwa to (tzn, 0-15 reprezentowane w bitach binarnych)

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

Tutaj, w prezentowanym podejściu, początkowe bity bezpieczeństwa w węźle źródłowym wynoszą 0 0 0 0 (tzn, hop 0), więc w hop 1, bity bezpieczeństwa są 0 0 0 1 i tak dalej aż do hop 15, ponieważ proponowane podejście jest zaprojektowane tylko do 15 hopów. Można więc powiedzieć, że początkowe bity bezpieczeństwa są binarnym odpowiednikiem numeru hopu.

$$ \mathrm{Initial} \mathrm{Security} \mathrm{bits}= \mathrm{hop} \mathrm{number} \left(\mathrm{represented}} \mathrm{in} \mathrm{a} \mathrm{binary} \mathrm{system} \prawa) $$

Po uzyskaniu początkowych bitów bezpieczeństwa, dodaje się do nich bity kontrolne bezpieczeństwa. Te bity kontrolne są generowane przez pomnożenie i wykonanie modulo 2 dodawania początkowych bitów bezpieczeństwa z macierzą bezpieczeństwa przedstawioną w równaniu. 4

$$ SC=Czas {SP}_m $$
(4)

gdzie SPm jest (k × p) macierzą zabezpieczeń reprezentowaną jako

$$ {SP}_m= lewa strona(^begin{array}{c}{l}_{11}}kern1em {l}_{12}}kern0.5em {l}_{1p} {l}_{21}}kern1em {l}_{22} {l}_{2p}} {l}_{2p}} {l}_{kern1em} {$$
(5)

gdzie „lrf” reprezentuje element r-tego wiersza i f-tej kolumny.

Macierz bezpieczeństwa jest macierzą parzystości (7, 4) kodu Hamminga, którą otrzymuje się albo z jego macierzy kontroli parzystości, albo z jego macierzy generatora. Te dwie macierze są już zdefiniowane dla kodów Hamminga. W prezentowanym modelu, SPm jest wspólna dla wszystkich węzłów źródłowych w sieci i jest zdefiniowana jako

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

Na przykład, w węźle źródłowym, początkowe bity bezpieczeństwa są (0 0 0 0 0); stąd bity kontroli bezpieczeństwa wynoszą

$$ {SC}_{h0}={S}_{h0}}czasy {SP}_m=czasy \left(\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) $$

gdzie SChr są bitami kontrolnymi w r-tym skoku

Shr są bitami bezpieczeństwa w r-tym skoku, r = 0, 1, 2, 3 ….

Więc, słowo kodowe bezpieczeństwa w węźle źródłowym jest otrzymywane przez dołączenie SCℎ0 do bitów bezpieczeństwa węzła źródłowego i może być przedstawione jako

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

gdzie Wℎr jest słowem kodowym bezpieczeństwa w hopie r, r = 0, 1, 2,….

Po ocenie słowa kodowego bezpieczeństwa, resztę kwadratową wykorzystuje się do zapewnienia dodatkowego bezpieczeństwa, ponieważ tylko kody Hamminga mogą nie być wydajne, aby zapewnić pożądane bezpieczeństwo sieciom WSN. Pozostałości kwadratowe są definiowane przez użytkownika, bezpieczne, łatwe do wdrożenia i łatwo dostępne. W tym podejściu rozważana jest reszta 7, ponieważ długość uzyskanego bezpiecznego słowa kodowego wynosi 7 i obejmuje maksymalną ilość bitów w bezpiecznym słowie kodowym w celu zwiększenia bezpieczeństwa. Resztki 7 to 1, 2 i 4; w prezentowanym podejściu, te pozycje bitowe (tj. 1, 2 i 4) są uzupełniane w słowie kodowym. Tak więc, wygenerowane końcowe słowo kodowe bezpieczeństwa można przedstawić jako

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

gdzie „Rw0” jest końcowym słowem kodowym bezpieczeństwa (po uzupełnieniu pozycji reszt w Wℎ0) w r-tym skoku. Oprócz synchronizacji końcowego zabezpieczającego słowa kodowego, stale monitorowany jest współczynnik dostarczania pakietów (PDR) (patrz równanie 6) w węzłach. Jeśli wartość PDR jest akceptowalna, tylko wtedy dane są przesyłane, a jeśli jest poza akceptowalną granicą, dane nie są przekazywane dalej. W podobny sposób proces ten jest kontynuowany aż do węzła docelowego.

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

gdzie R.P to pakiety odebrane, a T.P to pakiety przesłane

Proces dopasowania węzłów

Rysunek 1 przedstawia sieć typu multi-hop, w której węzeł źródłowy komunikuje się z węzłem docelowym poprzez węzły pośrednie. Węzeł źródłowy wysyła Rw0 do wszystkich swoich sąsiednich węzłów, które są oddalone o jeden hop od węzła źródłowego. Wymagane operacje przy różnych hopach omówiono w punktach 4.1.1 i 4.1.2.

Fig. 1
figure1

Sieć multi-hop z węzłem rywalizującym

W węźle 1

Wstępne bity zabezpieczające mają wartość 0 0 0 1; bity sprawdzające bezpieczeństwo są generowane przez pomnożenie tych bitów przez 푆푃푚

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

A słowo kodowe w hopie 1 można oszacować jak poniżej

$$ {W}_{h1}=0$kern1em 0$0,62em 0$0,24em 1$$

Podsumowując resztę (z 7) pozycji (tj, pierwszej, drugiej i czwartej pozycji) w Wℎ1, końcowe słowo kodowe bezpieczeństwa w hopie 1 jest reprezentowane jako

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

Jeśli węzeł sąsiedni wyśle Rw1 jako potwierdzenie do węzła źródłowego, a jego wartość PDR jest akceptowalna, to węzeł źródłowy przekaże oryginalne dane do tego węzła sąsiedniego. Potwierdzenie nie powinno przekraczać przewidzianego czasu życia (TTL). Teraz, ten sąsiedni węzeł staje się węzłem źródłowym dla innych węzłów w sieci i przesyła Rw1 do swoich sąsiednich węzłów.

Przy skoku 2

Bity bezpieczeństwa to 0 0 1 0, a bity kontrolne to

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

Podsumowując pozycje reszt w Wℎ2, końcowe słowo kodowe bezpieczeństwa w hopie 2 można obliczyć jako

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

Jeśli węzeł źródłowy otrzyma potwierdzenie Rw2, to przekaże dane do węzła, od którego otrzymał potwierdzenie. Jeśli nie, węzeł ten jest uważany za węzeł rywalizujący i dane nie są przekazywane do tego węzła. Proces ten jest kontynuowany do momentu otrzymania informacji lub danych przez węzeł docelowy. Proces ten można łatwo zrozumieć za pomocą schematu protokołu (patrz Rys. 2). Ponieważ słowo kodowe bezpieczeństwa jest zmieniane przy każdym skoku i staje się bardzo trudne do rywalizujących węzłów do wprowadzenia w błąd aktywnego węzła w sieci, więc przedstawione podejście nie tylko poprawia uwierzytelnianie aktywnego węzła, ale także daje więcej poufności do węzłów końcowych poprzez projektowanie wielu słów kodowych w sieci. Z Rys. 2 wynika, że dane są przesyłane do węzła pośredniego 1 (IN1) z węzła źródłowego, który przekazuje węzłowi źródłowemu pozytywne potwierdzenie (+ACK), czyli 푅푤1. Po odebraniu danych przez węzeł IN1 działa on jako węzeł źródłowy dla swoich sąsiednich węzłów i przesyła do nich dane 푅푤1. Dane nie są przekazywane do węzła pośredniego 2 (IN 2), ponieważ przekazuje on negatywne potwierdzenie (-ACK) do IN1, stąd jest uważany za węzeł rywalizujący.

Rys. 2
figure2

Schemat protokołu

.