Research Article

Privacy-Preserving Two-Factor Key Agreement Protocol Based on Chebyshev Polynomials

Table 4

Simulation of send oracle queries.


(i) On a query Send(Ui; start), assuming Ui is in the correct state, we proceed as follows:
Choose a positive integer i and a real number x over and compute Ti(x), mod n, ,  = h(c||x||Ti(x)||h(ID||n1)). Then, the answer to the query is returned.
(ii) On a query Send(Sj; ), assuming Sj is in the correct state, we proceed as follows:
Solve the square roots of e and obtain ,. Decrypt and get . Compute , c0 = h(ID||), and check if the received  = h(||x||Ti(x)||c0). If the equation does not hold, the server instance terminates without accepting. Otherwise, choose randomly a nonce n2, a positive integer j, and compute , SK = h(||Ti(x)||Tj(x)||||n2||Tj(Ti(x))),  = h(c0||(Tj(x)h(n2))||SK). Then, the answer to the query is returned.
(iii) On a query Send(Ui; ), assuming Ui is in the correct state, we proceed as follows:
Compute , SK = h(ID||Ti(x)||Tj(x)||n1||n2||Ti(Tj(x))), and check whether  = h(c||(Tj(x)h(n2))||SK). If the equation does not hold, the user instance terminates without accepting. Otherwise, compute  = h(SK||(n1n2)||c0), authenticate Sj, and establish SK as the session key. Then, the answer {} to the query is returned.
(iv) On a query Send(Sj; {}), assuming Sj is in the correct state, we proceed as follows:
Check if  = h(SK||( n2)||). If the equation does not hold, the server instance terminates without accepting and aborts the session. Otherwise, S accepts the session key SK.