Research Article

Efficient and Secure Biometric-Based User Authenticated Key Agreement Scheme with Anonymity

Box 1

Role specification in HLPSL for the user .
role user (Ui,Sj: agent,
    SKuisj: symmetric_key,
    %H  : one-way/bio hash function
    H  : hash_func,
    Snd,Rcv: channel(dy))
played_by Ui
def=
 local State  : nat,
    IDi, PWi, RPWi, BIOi, X, Ai, Bi, Ci, R1, Di, Ei, Fi, R2, Gi, Vi  : text
 const user_server_r1, server_user_r2,
    subs1, subs2  : protocol_id
 init State 0
 transition
%%%%% Registration phase
 1. State = 0 Rcv(start)
   State' 1 RPWi' H(PWi.H(BIOi))
   Snd(IDi.RPWi'_SKuisj)
   secret(, subs1, Sj)
   secret(, subs2, Ui)
 2. State = 1 Rcv(xor(H(xor(IDi, X)), H(IDi.H(PWi.H(BIOi)))).xor(H(xor(IDi, X).H(PWi.H(BIOi))), X) _SKuisj)
%%%%% Login phase
   State' 2 R1' new()
    RPWi' H(PWi.H(BIOi))
    Ai' xor(xor(H(xor(IDi, X)), H(IDi.H(PWi.H(BIOi)))), H(IDi.RPWi'))
    Ci' xor(H(Ai'.H(PWi.H(BIOi))), X)
    Di' xor(IDi, R1')
    Ei' xor(IDi, H(Ai'.RPWi'))
    Fi' H(IDi.R1'.Ai')
    Snd(Ci'.Di'.Ei'.Fi')
    witness(Ui, Sj, user_server_r1, R1')
%%%%% Verification phase
 3. State = 2 Rcv(xor(R2', H(R1'.H(IDi.R1'.Ai'))).H(H(R1'.R2'.H(xor(IDi, X)).IDi).R1'.R2'))
   State' 3 request(Sj, Ui, server_user_r2, R2')
end role