Research Article

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

Algorithm 3

Role specification for the application-server of our protocol in HLPSL.
role aserver (ASj, Ui, RC: agent,
SKey1  : symmetric_key,
SKey2  : symmetric_key,
% H is hash function
H,MUL,SUB: hash_func,
Snd, Rcv: channel(dy) )
played_by ASj
def=
local State  : nat,
IDi, IDj, Ej, Dj, Yj: text,
M5, M9, Ri, M4, Rj, Rij, SKj, M6: 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 ∧ IDj ≔new()
∧ Snd(IDj}_SKey1)
∧ Rcv(Ej.Dj}_SKey1)
2. State = 1 ∧ Rcv(M5)
State ≔ 2 ∧ M9 ≔ exp(M5,Dj)
∧ M9 ≔ (IDi.Ri.M4)
∧ Yj ≔ h(Ej.Dj)
∧ Rj ≔ new()
∧ Rij ≔ xor(Ri,Rj)
∧ SKj ≔ h(IDi.IDj.Ri.Rj)
∧ M6 ≔ h(SKj.Rj.IDj)
∧ Snd(M6.Rij)
∧ secret(Ri,Rj}, sec6, ASj,Ui})
∧ witness(Ui, ASj, aserver_user, Rj)
end role