Privacy-Preserving Two-Factor Key Agreement Protocol Based on Chebyshev Polynomials
Table 3
Simulation of hash, reveal, test, corrupt, and execute oracle queries.
(i) Hash simulation query performs as follows: If the record (;h) is found in the list Lh corresponding to the hash query h(), return the hash function h. Otherwise, select a string and add (;h) into Lh. If the query is initiated by A, (;h) is stored in LA.
(ii) Reveal(Ui/Sj) simulation query performs as follows: If Ui/Sj is in the accepting state, the current session key SK formed by Ui/Sj and its partner is returned.
(iii) Test(Ui/Sj) simulation query performs as follows: Through Reveal(Ui/Sj) query, obtain the current session SK and then flip an unbiased coin b. If b = 1, return SK. Otherwise, return a random string from {0,1}l.
(iv) Corrupt(U, a) simulation query performs as follows: If a = 1, the query returns the password PW of U. If a = 2, the query returns the secret information stored in the user smart card.
(v) Simulation of Execute(Ui, Sj) query occurs in succession with the simulation of Send queries as shown below. ←Send(Ui; start), ←Send(Sj; ) and {}←Send(Ui; ). Finally, M1 = ,M2 = , and M3 = {} are returned.