User Ui: |
|
|
Insert ⟨ID
i, PW
i⟩ |
|
|
Smartcard: |
|
|
Select a random number r
|
|
|
Compute s
2 = H(H(PW
i∣∣s
1), c
i = c
i + 1 |
|
|
Compute M
1 = (ID
i∣∣N∣∣s
2∣∣r∣∣c
i)2 mod n
|
|
|
|
|
|
|
|
Extract ⟨ID
i, N, s
2, r, c
i⟩ from M
1
|
|
|
Obtain ⟨ID
i, from database |
|
|
If () |
|
|
abort the session |
|
|
Else |
|
|
update ⟨ID
i, to ⟨ID
i, c
i⟩ |
|
|
Compute v = H(K⊕ID
i),
|
|
|
If () |
|
|
abort the session |
|
|
Else |
|
|
authenticate U
i
|
|
|
Compute the session key SK = H(s
2∣∣r∣∣1) |
|
|
Compute M
2 = H(s
2∣∣r∣∣0) |
|
|
|
Smartcard: |
|
|
Compute = H(s
2∣∣r∣∣0) |
|
|
If (
M
2) |
|
|
abort the session |
|
|
Else |
|
|
authenticate S
|
|
|
Compute the session key SK = H(s
2∣∣r∣∣1) |
|
|