Articles

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

I digital kommunikation används Hammingkoder för att upptäcka och korrigera fel, vilket innebär att alla kommunikationssystem känner till dessa koder. WSN är autonoma och kräver mindre energiförbrukning, och sådana koder kan användas för att säkra WSN-systemet utan någon ytterligare infrastruktur. I det presenterade tillvägagångssättet används initiala säkerhetsbitar (som definieras av användarna) och en uppsättning ytterligare säkerhetskontrollbitar läggs till för att generera säkerhetskodordet. Beroende på säkerhetskodordets längd ”n” och antalet initiala säkerhetsbitar ”k” kan Hammingkoder (n, k) (t.ex. (6, 3) och (7, 4) koder) användas eller många fler. Säkerhetskodordet ”W” erhålls genom att lägga till n – k säkerhetskontrollbitar ”SC” till de initiala säkerhetsbitarna ”S” (se ekv. 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)

där p = n – k

”Si” är den tionde biten i ”S”, i = 1, 2, 3…. k

”SCj” är den j:e biten i ”SC”, j = 1, 2, 3… p

”Wm” är den m:e biten i ”W”, m = 1, 2, 3… n

Om antalet initiala säkerhetsbitar är k, så representeras det möjliga initiala säkerhetsbitsmatrisblocket ”SB” som

$$$ {\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 \dots \dots \\{\mathrm{S}}_{q1}\kern1em {\mathrm{S}}_{q2}\cdot \cdots {\mathrm{S}}}_{qk}\end{array}\right) $$
(2)

där Sab representerar elementet i ath rad och b kolumn, q = 2k = totalt antal rader och k = totalt antal kolumner i SB.

I detta tillvägagångssätt används (7, 4) Hamming-kod för att generera säkerhetskodordet ”W”. Man kan dock välja Hammingkod i enlighet med önskade initiala säkerhetsbitar och säkerhetskodordets längd. Här är de initiala säkerhetsbitarna 4 och det möjliga matrisblocket med initiala säkerhetsbitar är (dvs, 0-15 representerade i binära bitar)

$$$ {\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 \dots \\ {}1\kern0.5em 1\kern0.5em 11\end{array}\end{array}\right) $$
(3)

Här, i det presenterade tillvägagångssättet, är de initiala säkerhetsbitsen vid källnoden 0 0 0 0 0 (dvs, hopp 0), så vid hopp 1 är säkerhetsbitarna 0 0 0 0 0 1 och så vidare till hopp 15, eftersom det föreslagna tillvägagångssättet endast är utformat för upp till 15 hopp. Man kan alltså helt enkelt säga att de initiala säkerhetsbitarna är binära motsvarigheter till antalet hopp.

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

Efter att ha erhållit de initiala säkerhetsbitarna, läggs säkerhetskontrollbitarna till dem. Dessa kontrollbitar genereras genom att multiplicera och utföra modulo 2-additioner av de initiala säkerhetsbitarna med säkerhetsmatrisen enligt Eq. 4

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

där SPm är (k × p) säkerhetsmatris som representeras som

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

där ”lrf” står för elementet i den r:e raden och f:e kolumnen.

Säkerhetsmatrisen är paritetsmatrisen för (7, 4) Hammingkoden som erhålls antingen från dess paritetskontrollmatris eller från dess generatormatris. Dessa två matriser är redan definierade för Hammingkoderna. I den presenterade modellen är SPm gemensam för alla källnoder i nätverket och definieras som

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

Till exempel är de initiala säkerhetsbitarna vid källnoden (0 0 0 0 0 0); Därför är säkerhetskontrollbitarna

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

där SChr är kontrollbitarna vid rth hop

Shr är säkerhetsbitarna vid rth hop, r = 0, 1, 2, 3 ….

Säkerhetskodordet i källnoden erhålls genom att lägga till SCℎ0 till källnodens säkerhetsbitar och kan representeras som

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

där Wℎr är säkerhetskodordet vid hopp r, r = 0, 1, 2,….

Efter utvärdering av säkerhetskodordet används den kvadratiska residualen för att ge ytterligare säkerhet eftersom enbart Hammingkoder kanske inte är effektiva för att ge önskad säkerhet till WSNs. Kvadratiska rester är användardefinierade, säkra, lätta att genomföra och lätt tillgängliga. I detta tillvägagångssätt beaktas restvärdet 7, eftersom längden på det erhållna säkerhetskodordet är 7 och täcker maximalt antal bitar i säkerhetskodordet för att öka säkerheten. Residualerna av 7 är 1, 2 och 4. I det presenterade tillvägagångssättet kompletteras dessa bitpositioner (dvs. 1, 2 och 4) i kodordet. Så det genererade slutliga säkerhetskodordet kan representeras som

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

där ”Rw0” är det slutliga säkerhetskodordet (efter att ha kompletterat restpositionerna i Wℎ0) vid det r:e hopp. Förutom synkroniseringen av det slutliga säkerhetskodordet övervakas nodernas paketleveransförhållande (PDR) (se ekv. 6) kontinuerligt. Om PDR-värdet är acceptabelt är det bara då som data överförs, och om det ligger över den acceptabla gränsen överförs data inte vidare. På liknande sätt fortsätter denna process fram till destinationsnoden.

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

varvid R.P är de mottagna paketen och T.P är de överförda paketen

Nodmatchningsprocess

Figur 1 visar ett nätverk med flera hopp där källnoden kommunicerar med destinationsnoden genom mellanliggande noder. Källnoden skickar Rw0 till alla sina grannnoder som befinner sig ett hopp bort från källnoden. Den nödvändiga operationen vid olika hopp diskuteras i avsnitten 4.1.1 och 4.1.2.

Fig. 1
figure1

Nätverk med flera hopp med rivaliserande nod

Vid hopp 1

De inledande säkerhetsbitsna är 0 0 0 0 1; säkerhetskontrollbitarna genereras genom att multiplicera dessa bitar med 푆푃푚

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

Och kodordet vid hopp 1 kan utvärderas enligt nedan

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

Som kompletterar resterande (av 7) positioner (dvs, första, andra och fjärde positionerna) i Wℎ1, representeras det slutliga säkerhetskodordet vid hopp 1 som

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

Om grannnoden sänder Rw1 som en bekräftelse till källnoden och dess PDR-värde är acceptabelt, kommer källnoden att överföra originaldata till den grannnoden. Bekräftelsen bör inte överskrida den tillhandahållna TTL-tiden (Time to Live). Denna grannnod blir nu källnod för andra noder i nätverket och överför Rw1 till sina grannnoder.

På hopp 2

Säkerhetsbitarna är 0 0 0 1 0 0, och kontrollbitarna är

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

Med komplettering av restpositionerna i Wℎ2 kan det slutliga säkerhetskodordet vid hopp 2 beräknas som

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

Om källnoden får en bekräftelse med Rw2 kommer den att vidarebefordra data till den nod från vilken den har fått bekräftelsen. Om inte, anses noden vara en rivaliserande nod och data överförs inte till den noden. Denna process fortsätter tills informationen eller uppgifterna tas emot av destinationsnoden. Denna process kan lätt förstås med hjälp av ett protokolldiagram (se figur 2). Eftersom säkerhetskodordet ändras vid varje hopp och det blir mycket svårt för rivaliserande noder att vilseleda den aktiva noden i nätverket, så förbättrar det presenterade tillvägagångssättet inte bara autentiseringen av den aktiva noden utan ger också större konfidentialitet till slutnoderna genom att utforma flera kodord i nätverket. Av figur 2 framgår att data överförs till mellanliggande nod 1 (IN1) från källnoden eftersom den ger en positiv bekräftelse (+ACK), dvs. 푅푤1, till källnoden. När IN1 tar emot data agerar den som källnod för sina grannnoder och sänder 푅푤1 till dem. Data överförs inte till mellanliggande nod 2 (IN 2) eftersom den ger en negativ bekräftelse (-ACK) till IN1 och därmed anses vara en rivaliserande nod.

Fig. 2
figure2

Protokolldiagram

.