Skip to main content
. 2023 Jan 18;23(3):1122. doi: 10.3390/s23031122

Table 4.

The proposed scheme.

User(Ui) Gateway Sensor Node(SNj)
{User Registration}
(1) Enter: IDi, PWi, Bi
Generate: rU1 (2) Generate: rGW1, rGW2, rGW3
Compute: Gen(Bi)=(Ri,Rbi), Compute:
HPWi=h(PWiRirU1) TIDi=h(IDirGW1KGW),
Transmit: IDi Si1=h(IDirGW2KGW),
Si2=h(IDirGW3KGW)
(3) Compute: Store: IDi, TIDi, Si1, Si2
UiM1=TIDiHPWi, ⟵ Transmit: TIDi, Si1, Si2
UiM2=Si1HPWi
UiM3=Si2HPWi
UiM4=h(PWiRiIDi)rU1
UiM5=h(rU1TIDiSi1Si2)
Store: UiM1, UiM2, UiM3, UiM4, UiM5
{Sensor Node Registration}
(2) Generate: rGW4 (1) Transmit: SIDj
Compute:
TSIDj=h(SIDjrGW4KGW)
Store: SIDj, TSIDj
Delete: Si2
Transmit: TSIDj, TIDi, Si2 (3) Store: SIDj, TSIDj, TIDi, Si2
{Authentication and Key distribution}
(1) Verify Password
Enter: IDi, PWi, Bi
Compute: Ri=Rep(Bi,Rbi), (2) Verify the user
rU1=h(PWiRiIDi)UiM4, Retrieve: rU2=UiM6Si1
HPWi=h(PWiRirU1) Compute: (3) Verify the gateway
TIDi=UiM1HPWi, UiM8*=h(rU2TIDitsU) Retrieve: rGW5=GM1TSIDj
Si1=UiM2HPWi, Verify: rU2’s freshness, tsU TIDi=GM2rGW5
Si2=UiM3HPWi, UiM8= ?UiM8* TIDinew=GM3rGW5
UiM5*=h(rU1TIDiSi1Si2) rU3=UiM7Si2
Verify: UiM5 = ? UiM5* Generate: rGW5 Compute:
TIDinew=h(IDirGW5KGW), GM4*
Generate: rU2, rU3, tsU GM1=TSIDjrGW5, =h(rGW5TSIDjTIDiTIDinew)
Compute: GM2=TIDirGW5 Verify: GM4= ?GM4*
UiM6=rU2Si1, GM3=TIDinewrGW5
UiM7=rU3Si2 GM4
UiM8=h(rU2TIDitsU) =h(rGW5TSIDjTIDiTIDinew)
Transmit: Transmit: GM1, GM2, GM3
UiM6, UiM7, UiM8, TIDi, tsU GM4, UiM7 Generate: SK
Compute:
(4) Verify the sensor node SNjM1=SKSi2
(5) Verify the gateway Compute: SNjM2=h(SKTIDinewrU3)
Compute: SNjM3* SNjM3
TIDinew=GM6Si1, =h(SNjM1SNjM2TSIDj) =h(SNjM1SNjM2TSIDj)
GM5*=h(TIDiTIDinew) Verify: SNjM3 = ? SNjM3* Replace: TIDiTIDinew
UiM1new=TIDinewHPWi Transmit: SNjM1, SNjM2
Verify: GM5 = ? GM5* Compute: SNjM3
Replace: UiM1UiM1new GM5=h(TIDiTIDinew),
GM6=TIDinewSi1
Retrieve: SK=SNjM1Si2 Replace: TIDiTIDinew
Compute: Transmit: GM5, GM6, SNjM1,
SNjM2*=h(SKTIDinewrU3) SNjM2
Verify: SNjM2 = ? SNjM2*