Research Article

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

Algorithm 2

Role specification for registration server of our protocol in HLPSL.
role rserver (RC, Ui, ASj: agent,
SKey1  :  symmetric_key,
SKey2  :  symmetric_key,
H, MUL, SUB: hash_func,
Snd, Rcv: channel(dy) )
played_by RC
def=
local State  : nat,
IDj, IDi, Ej, P, Q, N, W, Dj, G, Yj: text,
Ai, Bi, Ci, Di, Ei, Fi, X, M1, M2, M3: 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(IDj}_SKey1)
State ≔ 1 Ej ≔ new()
Dj ≔new()
P ≔new()
Q ≔new()
N ≔ MUL(P,Q)
W ≔ MUL(SUB(P,1), SUB(Q,1))
Yj ≔ h(Ej.Dj)
Snd(Ej.Dj}_SKey1)
secret(Dj}, sec4, ASj,RC})
secret(P,Q}, sec5, RC})
2. State = 1 Rcv(IDi.Ai}_SKey2)
State ≔ 2 Bi ≔ exp(G,MUL(X,IDi))
Ci ≔ exp(IDi,Ai)
Di ≔ xor(Bi,Ci)
Ei ≔h(Ai.Bi)
FiIDi}_X
Snd(Di.Ei.Fi.N}_SKey2)
3. State = 2 Rcv(M1.M2.Fi.IDj)
State ≔ 3 M3 ≔ xor(Yj,IDi)
Snd(Ej.M3)
end role