Research Article

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.