Skip to main content

Table 3 Simulation of oracles

From: Rotating behind security: an enhanced authentication protocol for IoT-enabled devices in distributed cloud computing architecture

On a query Send\((\Pi _{U_i}^x, start)\), \(\Pi _{U_i}^x\) chooses \(UN_{i}, TS_i, CSID_j\) to compute \(R_i,RID_i, TB_i, UH_i, t_i, UJ_i, UK_i\). Then, the query is returned \(M_1 = \{UH_i,UJ_i,UK_i,RID_i,TS_i\}\).

On a query Send\((\Pi _{S_j}^y, (UH_i,UJ_i,UK_i,RID_i,TS_i))\), \(\Pi _{S_j}^y\) selects \(CN_{j},TS_j\) to compute \(TSID_j, CL_j, CM_j\). Then, the query is returned \(M_2=\{UH_i,UJ_i,UK_i,CL_j,CM_j,RID_i,RSID_j,TS_j\}\).

On a query Send\((\Pi _{CS}^z, ((UH_i,UJ_i,UK_i,CL_j,CM_j,RID_i,RSID_j,TS_j))\), \(\Pi _{CS}^z\) computes \(TB_i,UN_{i},CSID_j,UH_i^*\) to check \(UH_i^*\). If true, it continues to calculate \(TSID_j,CN_{j},CM_j^*\), and checks \(CM_j^*\). If true, \(\Pi _{CS}^z\) chooses \(TN_{CS}\) to compute \(TP_{CS},TR_{CS}, SK_{CS}, TQ_{CS}, TV_{CS}\). Then, the query is returned \(M_3 = \{TP_{CS}, TR_{CS}, TQ_{CS},TV_{CS}\}\).

On a query Send\((\Pi _{S_j}^y, (TP_{CS}, TR_{CS}, TQ_{CS},TV_{CS}))\), \(\Pi _{S_j}^y\) computes \(CW_j, UN_{i}\oplus TN_{CS}\), \(SK_j\), \(TV_{CS}^*\) to check \(TV_{CS}^*\). If the verification does not equal, it will be terminated. Otherwise, the query is returned \(M_4 = \{TP_{CS},TQ_{CS}\}\).

On a query Send\((\Pi _{U_i}^x, (TP_{CS},TQ_{CS}))\), \(\Pi _{U_i}^x\) verifies \(TQ_{CS}\). If the verifications holds, \(\Pi _{U_i}^x\) returns true. Otherwise, it terminates.

On a query Execute, we use Send queries to simulate it.

\((UH_i,UJ_i,UK_i,RID_i,TS_i)\longleftarrow\) Send\((\Pi _{U_i}^x, start)\),

\((UH_i,UJ_i,UK_i,CL_j,CM_j,RID_i,RSID_j,TS_j) \longleftarrow\) Send\((\Pi _{S_j}^y,(UH_i,UJ_i,UK_i,RID_i,TS_i))\),

\((TP_{CS},TR_{CS},TQ_{CS},TV_{CS})\longleftarrow\) Send\((\Pi _{CS}^z,(UH_i,UJ_i,UK_i,CL_j,CM_j,RID_i,RSID_j,TS_j))\),

\((TP_{CS},TQ_{CS})\longleftarrow\) Send\((\Pi _{S_j}^y,TP_{CS},TR_{CS}, TQ_{CS},TV_{CS}))\). This query is returned \((UH_i,UJ_i,UK_i,RID_i,TS_i)\), \((UH_i,UJ_i,UK_i,CL_j,CM_j,RID_i,RSID_j,TS_j)\), \((TP_{CS},TR_{CS},TQ_{CS},TV_{CS})\), and \((TP_{CS},TQ_{CS})\).

For a Hash(M) query, it returns a random value h. Note that a record (M, h) is required in the query.