Research Article

A Two-Factor RSA-Based Robust Authentication System for Multiserver Environments

Algorithm 1

Role specification for the user of our protocol in HLPSL.
role user (Ui, RC, ASj: agent,
SKey1  : symmetric_key,
SKey2  : symmetric_key,
H, MUL, SUB: hash_func,
Snd, Rcv: channel(dy))
played_by Ui
def=
local State  :  nat,
IDi, PWi, IDj, N, Ej, Yj: text,
Di, Ei, Fi, Ai, Bi, Ci, Ri, M1, M2, M3, M4, M6, Rij, Rj, M5,
SKi: message,
Inc  :  hash_func
const user_rserver, rserver_aserver,
aserver_user, sec1, sec2, sec3, sec4, sec5, sec6: protocol_id
init State ≔0
transition
1. State = 0 ∧ Rcv(start)
State ≔ 1 ∧ Ai ≔ h(IDi.PWi)
∧ Snd(IDi.Ai}_SKey2)
2. State = 1 ∧ Rcv(Di.Ei.Fi.N}_SKey2)
State ≔ 2 ∧ Ci ≔ exp(IDi, Ai)
∧ Bi ≔ xor(Di,Ci)
∧ Ri ≔new()
∧ M1 ≔h(Bi.Ri)
∧ M2 ≔ xor(h(Bi), Ri)
∧ Snd(M1.M2.Fi.IDj)
∧ secret(PWi}, sec1, Ui})
3. State = 2 ∧ Rcv(Ej.M3)
State ≔ 3 ∧ Yj ≔ xor(M3,IDi)
∧ M4 ≔ h(IDi. Ri. Yj.IDj)
∧ M5 ≔exp((IDi.Ri.M4), Ej)
∧ Snd(M5)
∧ secret(Yj}, sec2, Ui,ASj,RC})
∧ witness(ASj, Ui, aserver_user, Ri)
4. State = 3 ∧ Rcv(M6,Rij)
State ≔ 4 ∧ Rj ≔ xor(Rij,Ri)
∧ SKi ≔ h(IDi.IDj.Ri.Rj)
∧ secret(SKi}, sec3, Ui,ASj})
end role