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