Skip to main content
. 2017 Mar 24;17(4):670. doi: 10.3390/s17040670

Table 2.

Local set for EKM.

1. Sender (Li)
POSS(Li) = {IDLi, KLi − CHj}
BEL(Li) = {#(IDLi), #(KLi − CHj) }
BL(Li) = Hash(h(.); IDLi) → HLi
Concat(IDLi, nonceLi, Join-Req, MAC_ADRSLi, HLi) → PLi
Encrypt({PLi}, KLi − CHj ) → C1
Send(CHj, {IDLi, C1}) → M1
Update(nonceLi, HLi)
Receive(Li, {IDCHj, M4})
Split({IDCHj, M4})
If message does not equal “Join_Success” then abort
2. Cluster Head (CH)
POSS(CH) = {IDCHj, KLi - CHi, K, KBS-CHj, KM}
BEL(CH) = {#(IDCHj), #(KLi - CHi), #(KBS-CHj), #(KM)}
BL(CH) =
Receive(CHj, {IDLi, C1})
Split({IDLi, C1})
Decrypt({C1}, KCHj-Li) to get
[IDLi, nounceLi, Join-Req, MAC_ADRSLi, HLi]
Concat(IDCHj, IDLi, nonceCHj, Ver-Req,
MAC_ADRSLi)→PCHj
Encrypt({PCHj, HLi}, KCHj-BS ) → C2
Send(BS, {IDCHj, C2}) → M2
Update(MID)
Receive(CHj, {IDBS, C3})
Split({IDBS, C3})
Decrypt({C3}, KCHj-BS) to get
[IDBS, IDLi, Join-CodeT, MAC(Concat(IDBS, IDLi)]
Verify Join-CodeT for IDLi
If false then abort
Add IDLi in node_list
Concat(IDCHj, ‘Join_Success’) → PCHj~
Send(BS, {PCHj~}) → M4
3. Base Station (BS)
POSS(BS) = { IDBS, KBS–CHi, KBS–CHj, List_Nodes}
BEL(BS) = {#(IDBS), #(KBS–CHi), #(KBS–CHj)}
BL(BS) =
Receive(BS, {IDCHj, C2})
Split({IDCHj, C2})
Decrypt({C2}, KCHj-BS) to get [IDCHj, IDLi, nonceCHj, Ver-Req, MAC_ADRSLi, HLi]
Verify Li and check in Block_List
If not verified then Abort
Concat(IDBS, IDLi, Join-CodeT) → PBS
Encrypt({PBS, MAC(Concat(IDBS, IDLi)}, KCHj-BS) → C3
Send(CHj, {IDBS, C3}) → M3
Update(MID)